I want to show you a two-wheeled mobile robot for a mini-sumo competition designed and made in 2011.
Assumptions concerning the mechanical part of the robot:
- Length and height below 10 cm, mass below 500 g (minimum category requirements).
- Set low the center of gravity of the robot.
- Drives based on two DC motors placed in the bottom part of the construction. The robot has three points of contact with the ground (2 wheels and front edge).
- Use of easily accessible and light materials.
Assumptions concerning the electronic part of the robot:
- The control system of the robot based on AVR microcontroller which generates two PWMs to regulate the rotational speed of the motors shafts.
- A robot equipped with a set of sensors to detect white lines (ring contour).
- Four sensors for enemy detection, placed at the front and sides of the robot.
- The system for monitoring the battery charge level.
- Measurement of robot displacement from at least two independent sources.
Mobile robot gallery
The casing was made of epoxy laminate covered with copper. It was used soldered connections. It is enough reliable, cheap and easy. The robot case has proper holes for white lines sensors and IR distance sensors Sharp GP2Y0D340K.
They were designed and made wheels of polyurethane adhesive. Wheels have very well adhesion to the ground and they have low inertia. Hubs were made of aluminum.
It was used two motors Pololu HP geared 30:1 because of the small size and significant power. The greater part of motors was placed inside of wheels what allows to use of wider wheels to receive better adhesion. Moreover, such an arrangement of motors protects gears from dust.
White lines sensors
It was used analog TCRT1010 sensors because of their small size and THT montage. The state of the sensors is checked by the A/D converter of the microcontroller. If the white line is below the sensor then the phototransistor is open, current flow increase,s and measured voltage too is higher.
Sensors for enemy detection
It was used two infrared (IR) sensors Sharp GP2Y0D340K placed in the front part of the robot to detect an enemy located in front of the robot. Sensors have about 8 ms measurement time.
The mobile robot was equipped with analog accelerometer MMA7361 to detect if the robot is on the ground. Moreover, the accelerometer is an additional sensor for displacement measurement (except for encoders). It was designed to separate PCB for the accelerometer and proper power supply system.
The robot was equipped with a microcontroller ATmega 32A and an external quartz resonator 16 MHz. This 8bit microcontroller is very cheap and has a lot of useful integrated circuits.
Motors are controlled by TB6612 H-bridges. Every IC has two channels but because of significant current consumption two channels of every IC control one motor. The signals which determine rotation direction and PWM duty are connected directly from the microcontroller. The scheme of the circuit as shown below.
Power supply system
It was used a lithium polymer battery with a 500 mAh capacity. The battery has three cells and a nominal voltage of about 11.1 V. To protect the battery was used circuit shown in the next part.
Stabilization and filtration of power supply
It was used L1117 Low-dropout (LDO) stabilization because most of the control electronics of the robot need a 5V power supply. To filtrate the power supply it was used several electrolytic capacitors. The second stabilizer was placed in the accelerometer circuit because the accelerometer needs a 3.3 V.
Accumulator charge monitoring
The robot was equipped with a circuit to monitor the charge level of the battery. It used a voltage comparator which compares voltage from Zener diode with divided voltage from the battery. The value of R14 was calculated to current flows through diode has about 5 mA. The voltage divider was calculated to receive a shutdown threshold of about 9.25 V. As the comparator was used LM358 double operational amplifier.
The software was written in C language. The states of sensors are checked in interruption from timer. In dependence on which state was detected it is choosen properly action. It was implemented diagnostic mode which allows to check all robot components. Moreover, it was implemented graphical user application in C++ with Qt library which allows to control robot and change it setting. A communication with robot was made with UART interface.
The construction of minisumo robot was my first designed robot. Unfortunatelly, not all assumptions are equally done. The used encoders are not completly useful especially because of not enough reliability. Moreover, the accelerometer circuit for slides detection too is not enough precise. The weight of robot with battery was about 170 g, so it was neccesary to weight on it. It was used the lead weights for that. Used motors were not enough reliable. Two of them were damaged by brushes burning.