The mini sumo robot competition consists of two robots going head to head with the goal of knocking the enemy robot off of the dohyo. The main criteria of creating an autonomous mini robot includes its mechanical features, interfacing it with numerous sensors and motors, and programming its microcontroller. Its mechanical feature will consist of a calculated center of mass to ensure maximum torque and stability when pushing the enemy sumbot. Its sensors will be tuned to ensure proper detection of an enemy robot in a high paced environment. The motors selected will provide maximum torque and speed necessary for our robot to push an opponent off the dohyo. Programming its microcontroller will allow for precise movement as well as bot detection to ensure it will locate and knock the enemy off the dohyo.
Yoko-Zoom-Bot is a uniquely designed robot to fit within the specifications set by Robogames United Sumo. Yoko-Zoom-Bot takes full advantage of the 10cm x 10cm width and length and the unlimited height. With the exploitation of the unlimited height specification, Yoko-Zoom-Bot is designed to have paint rollers drop down at the start of the match as a unique solution to using a ramp to push out the opposing robot. Alongside the unique mechanical design of the robot, the software and sensors that are used to track the robot are a step above the competition. Yoko-Zoom-Bot is equipped with 6 PIC microcontrollers, 5 ST-Time-of-Flight sensors, magnetic quadrature encoders, digital contrast sensors and an IR receiver. Through these unique features, Yoko-Zoom-Bot is designed to be low budget, fast and consistent sensing, unique from every other robot, and lastly with the goal of winning.
This block diagram shows the three different levels of operation that make up Yoko-Zoom-Bot. The first layer consists of the power that is required for everything to operate as well as a battery voltage indicator. The second layer, which we call the “Master PIC” is in charge of everything, including talking to the Time-of-Flight sensors, controlling the motor speeds, processing encoder values, detecting the edge, and triggering the IR start. On the third layer of operation, we have 5 PIC16’s abstracting the Time-of-Flight sensors and sending back the distance information through a serial peripheral interface bus.
The requirements and operation specifications when our robot is in operation.
- Speed of ~1.2 m/s, possible torque of 2.2 kg-cm.
- 7.4v 600 mAh LiPo Battery @ 20C to provide continuous discharge current up to 12 A.
- Maximum load of total system (motors, drivers, MCU, sensors) should not exceed 8 A.
- 2x 32-bit MCU @ 40 MHz with 28 pins to efficiently manage our system. One chip will serve as motor control and robot logic while a slave chip will interface with the sensors and send a simplified signal back to the master.
- 6v 10:1 Motors @ 625 - 1000 RPM paired with drivers to control speed and facilitate maneuverability. Will provide 2.2 kg-cm of torque altogether.
- 6v 10:1 Motors @ 100 - 200 RPM on two arm rollers. Slower speed will ideally provide a better grip. Motors run on startup to help drop the arms in second using inertia.
- Encoders to adjust PWM and keep desired speed as battery voltage drops. Motor speed with adjustment should not exceed 5% error.
- Motor Drivers allow continuous current of 1.7 A to allow long periods (1-2 minutes) of stalling without significant damage.
- Edge Reflectance sensors with current reading time of ~18 ms for non-black surface. Could be brought down with further testing. Faster readings mean faster reaction times to prevent falling off dohyo.
- Time-of-flight sensors with 3 cm to 2 m range. 1 mm resolution and I2C interface allows communication with MCU to be quick and easy readings corresponding with distance.
This software diagram shows the basic flow of the interaction between the Time-of-Flight sensors, and the PIC16s and PIC32. The basic flow consists of setting up an I2C communication with the Time-of-Flights, reading the distance of the sensors, and sending the data to the PIC32 when the SPI slave select gets chosen.