Coilinator 300V

  • Mechanics
  • Electronics
  • Software

The mechanics part of the Coilinator 300V consists of 3 sub modules.  The locomotion module, the environment detection module directly on top of it and finally the catch and throw module at the very top of the robot.

Two wheels are driven by a motor each. Further two polymer rolls guarantee a stable position of the robot. With this build, a rotation around its own axis is possible. The base print is located on the base plate and there is further place available to store the battery during operation.

Environment recognition
The environment recognition is mounted on top of the locomotion module. This module consists of a servomotor on which three ToF-sensors are mounted via a 3D print part. The motor turns back and forth during operation to scan the surroundings around the Coilinator 300V. Like this, it’s possible to recognize the partner robot and enemies standing in its way.

Catch and throw
The catch and throw module is located on the very top of our robot. It consists mainly of our funnel to reach the best catch rate. Last, but not least there is our selfplanned and selfmade voice coil. With this construction we are able to throw the ball across the field into the basket. Voice coils are more commonly used in speakers. Ours throws a ball though. Additionally there is a print added to generate enough power for the coil.

The electronics of the Coilinator 300V consist of 4 printed circuit boards, multiple sensors, motors and the name giving voice-coil.
Let us start at the bottom: Located on the base plate of the chassis are the drive motors, the battery and the base PCB. Mounted o top of it are the Raspberry Pi Zero W, the motor drivers, all the connectors and much more. From there, the signals go to the other components of the robot and thus it could be called the brain of the Coilinator. Attached to the motors are encoders, which are responsible for counting their turns. For additional orientation and acceleration measuring while driving, a 9-axis gyroscope is installed on the base print.

Directly above the base print are three rotating Time-of-Flight sensors on a separate board. Those sensors scan the environment permanently. With his laser eyes, our robot comes a step closer to his idol, the Terminator.
Located at the top part of the robot is its self-made voice coil, which propels the ball. Integrated in the funnel is an infrared diode and a photo transistor, which are responsible to check ball possession. For sating the energy hunger of the coil there are two prints packed to the brim with capacitors sitting below the funnel. This guarantees termination targets, even if they are far away.

Even if the robot runs with the latest technology and has great potential, without the software controlling it, it is nothing more than a motionless lump of different metals and plastics. To make it live, the software is crucial. It is written in the programming language Java. The state machine attached below shows the basic logic of our software implementation.

Environment recognition
The ToF-sensors constantly scan the environment 360° around the robot and deliver distance data of obstacles in short intervals to the software. This distance data is then saved as points by the software. By constructing a 2D map with the help of all the points from the sensor data, the robot recognizes the enemy positions, its partner robot, the playing field borders and the basket. Even calculating the positioning of the Coilinator is possible with this method. As an example, we placed the sensors in a box and scanned the environment showed in the pictures below.

Shoot and catch mechanism
The capacitors installed in the Coilinator get charged by the software as much as needed. The shooting distance is directly dependent on how long the pin is energised. Prior to this, precise data about the positioning and alignment of the robot and that of the partner robot is needed. This is realized by utilizing the 2D map, which gets updated through the whole match. This guarantees that no one of the audience gets shot at.
The catching mechanism needs no software control, because it is stationary. Most important is the sensor, which checks ball possession in the funnel. This tells the software that it is now forbidden to drive and the shooting and adjusting sequence has to be initiated.

Drive mode
The drive motors get controlled by the software as well. From speed to rotation direction and driving time, everything gets dictated by the software. To realize this, the 2D map is used here too to prevent ramming into obstacles. 
If the robot is in ball possession, the robot turns towards the partner or the basket. For driving on the field an A* algorithm is in use. Usually known for it’s use in video game ai, it calculates the shortest path between the robot and its goal in consideration of the obstacles that may prevent the robot from directly passing through. This path is then processed and executed by the motors.