There were two physical restrictions which the sumo robot must abide by. The robot must weight no more than 1000g and is required to fit within a 200mm x 200mm x 300mm (WxLxH) measuring box. Other restrictions included the robot had to be completely autonomous with zero human interaction, must cost under $150 AUD (not including the micro-controller) and the robot must begin each round in the same orientation in which it was place in the measuring box.
We were given the option for adding a lifting/flipping system to our robots. I knew it would require a lot more work but I couldn't resist the temptation of adding a "weapon" to the bot.
The arena was circular with a diameter of 1.54m with a matt black surface and a 2cm wide white line around the perimeter.
Step 1: Components
2 x Motors 47:1 Metal Gearmotor 25Dx52L mm HP
1 x Motor Controller 10A H-bridge Dual DC Motor Driver Controller / High-power Strong braking
4 x Pulley Hub FingerTech Timing Pulley 26T
2 x Belt FingerTech Timing Belt 276mm (92T)
4 x Wheels Dave Brown Lite Flite Wheels 2"
4 x Line Sensors TCRT5000 Module Line Tracking Photoelectric Sensor
3 x Sonar HC-SR04 ultrasonic sensor distance measuring module
1 x Battery ZIPPY Flightmax 1300mAh 3S1P 15-25C
2 x Pneumatic Cylinder Air Actuator 25mm
1 x Tank 100CC Air Cylinder
1 x Pneumatic Switch Servo Operated Air Retract Actuator (Air up/Down)
1 x One way valve One Way Air Refill Valve
1 x Tubing Air retract pipe D3x1.7mm x 1m
1 x Indicator LED ShiftBrite
Non-Cost Items USE
Aluminium Sheet 50cmX50cmX1mm________________________ Chassis
Aluminium L-Section _____________________________________Chassis support
Super Glue____________________________________________Sensor mounting
Tarzan Grip___________________________________________ Wheel to pulley mounting
Pop Rivets____________________________________________ Chassis assembly
Double Sided Tape______________________________________ Insulation, component mounting
Heat Shrink____________________________________________ Insulation
Connecting wires_______________________________________ Interface with components
Power Switch__________________________________________ Main power cut-off
Selection Button_________________________________________ To select between attack/evade modes
Solder_________________________________________________ Component wire connections
ATMega128 Microcontroller ________________________________Sumo robot controller
10 wire IDE Plugs________________________________________ Connect sensors to the microcontroller
Microcontroller power plug_________________________________ Deliver power to the microcontroller
Zip Ties________________________________________________ Hold pneumatics in place and tidy up electronics
Elastic Bands___________________________________________ Support pneumatic cylinder
M3 cap screws_________________________________________ Hold front wheel pins in place
Transistor______________________________________________ Switch motor controller on and off
Resistor_______________________________________________ Limit current to transistor
9g Servo_______________________________________________Control pneumatic switch
Female Crimp Pins_______________________________________ Connect microcontroller to the motor controller
Crimp Pin Housings______________________________________ Insulation over crimp pins
Electrical Tape__________________________________________ Insulation
0.8mm Steel Wire________________________________________ Link servo to the pneumatic switch
6mmX6mm square bar ____________________________________Flipper arm connection
Aluminium Sheet 20x15x3mm_______________________________Flipper arm
Step 2: The Sensors
The boundary of the arena is identified by a distinctive 2cm thick white line. This white line was used by the sumo robot to detect where the edge is located. The white line is detected using 4 digital IR line sensors. This sensor was chosen due to its integrated comparator circuitry which converts the output into a digital signal. The benefit of the digital signal is that it is simple to interface with and the microcontroller is able to respond faster to line detection.
Name: TCRT5000 Module Line Tracking Photoelectric Sensor Comparator
Max Dimensions: 10.6x34.7x9.45 (WxLxD)
Interfacing Method: 3 pin interface, VCC, Output and GND.
Power Supply: 5V DC
Output Current: 1mA
Effectual range: 0.2 mm to 15 mm
Connection and Power:
TCRT5000 Module Line Tracking Photoelectric Sensor Comparator is powered by 5v DC using its VCC and GND pins. This power is delivered through the voltage regulator built into the ATMega128 microcontroller board and by the 11.1v 1300mah lithium polymer battery. The output pin on the line sensor delivers a low level signal when over a black line and a high level signal when over a white line. Therefore, the sensor can simply interface with the microcontroller through a single digital input pin. An electrical connection schematic is given later.
The digital line sensors have been place in front of the front wheels and near the rear of the back wheels. This allows detection of the arena’s white boundary line while moving in all directions, and signals to the robot that it is at the edge and need to move away. The sensors were chosen for their small size, lightweight and cost effectiveness.
For object detection ultrasonic sensors were chosen for their ability to detect objects in close proximity as well as from the full diameter of the arena (~1.5m). The ultrasonic sensors selected are lightweight, simple to interface with and inexpensive.
Name: HC-SR04 Ultrasonic Range Sensors
Max Dimensions: 45x20.6x15 mm (WxHxD)
Interfacing Method: 4 pin interface, VCC, Trigger, Echo and GND.
Power Supply: 5V DC
Quiescent Current: <2mA
Effectual Angle: <15°
Ranging Distance: 2cm – 500 cm
Resolution: 0.3 cm
Connection and Power:
The HC-SR04 Ultrasonic Range Sensor is powered by 5v DC using its VCC and GND pins. This power is delivered through the voltage regulator built into the AtMega128 microcontroller board and by the 11.1v 1300mah lithium polymer battery.
The HC-SR04 interfaces to the microcontroller through its Trigg and Echo pins. Each of these pins are connected to one of the digital IO pins of the microcontroller. An electrical connection schematic is given later.
Acquiring a range reading involves the following process:
1. 10μs pulse is sent to the trigger pin
2. Ultrasonic sensor outputs eight 40 kHz ultrasonic pulses
3. Detects the echo back.
4. Measured distance is proportional to the Echo pulse width
5. Distance calculated by the formula: Distance = ((Duration of high level)*(340m/s))/2
6. If no obstacle is detected, the Echo pin will give a high level signal for 38ms
This process is repeated each time a sensor reading is required. The AVR C code is given later.
The ultrasonic sensors have been positioned for maximum effectiveness and coverage. Each sensor has a detection angle of 15° from its centreline each way. The maximum range of the selected ultrasonic sensor is 5 meters, due to the size of the arena this was limited in software to only look for objects within a 1.4 meter range.
Step 3: Motors and Motor Controller
The target speed of the sumo robot was 1m/s.
Using the equation, Speed = distance/time , the robot covers the diameter of the arena, minus the length of the robot, in just over a second. This speed is ample for the robot to catch opponents and evade when necessary.
The greater the torque the larger the robots pushing power, therefore the more torque which can be put into the system the better. However, it has to be noted that the torque is transferred to the ground through the wheels, and for that reason the wheel choice is also vital in generating maximum pushing force. Many different motors were considered, each with different torques and voltages. Additionally a range of wheel diameters were used to select the right motor and wheel combination to achieve maximum torque with a speed of ~1m/s.
The motor choice was the 47:1 Metal Gearmotor 25Dx52L mm HP from Pololu , with 51mm (2") foam rubber wheels. Each motor generates 4.5kg of pushing force at the ground. This results in a total of 9kg of total pushing which should be sufficient to push around any 1kg robot.
To generate the maximum traction from the motors, a belt drive system is used between the front and rear wheels. This addition doubles the contact area with the arena floor, resulting in a greater pushing power.
The motors are controlled by a dual H-bridge style motor controller with PWM inputs enabling variable speeds. The motor controller can control the speed and direction of the motor by receiving input commands from the microcontroller. The controller is capable of supporting voltages from 6v to 36v and a continuous current of 10A (peak 60A). It consists of two half-bridge driver chips and low resistance N-channel MOSFET’s. The two half-bridge driver chips make losses due to the MOSFET switching minimal.
The control pins on the motor controller include 2 direction pins, one for each motor, when high the motor spins forward and when low motor spins backward. It also contains 2 PWM inputs, 1 for each motor, which take a 1kHz to 100kHz pulse frequency to control the motor speed. Setting the PWM pin to low applies the breaks to the motor for stopping.
Step 4: The Flipper System
The flipper has been designed to penetrate under an incoming robot then activate. The end of the flipper is within 0.5mm of the ground, which allows for penetration under most opponents. The actuators chosen for the flipper mechanism are micro-pneumatic rams.
Pneumatics are extremely powerful for their weight, and are the perfect choice for this task. The force generated by a single pneumatic ram was found to be insufficient to effectively flip an opponent, therefore dual rams were used to increase the lifting power of the flipper. The rams have a stroke length of 25mm, which when coupled with the flipper design generates enough height to overturn an opponent. The components of the flipper system are shown in the image.
The flipper is activated using range information gathered from the two front ultrasonic sensors. The compressed air is stored in a 100cc cylinder. A compressor is used to pressurise the system to 115 psi. The pneumatic rams are controlled by a servo operated pneumatic switch; a schematic of the pneumatic system is given later.
Step 5: The Microcontroller and Indicator LED
The microcontroller used was the ATMega128, programmed in C using AVR studio 5. This microcontroller has a 16Mhz processor, and a large number of IO ports which is sufficient for interfacing with and controlling the sumo robot. However an Arduino could also easily be used.
A RGB LED is used to indicate to the user which mode the robot is currently in. The LED is called a ShiftBrite and is available from Pololu. It is capable of producing any colour by mixing the red, green and blue light at varying intensities and combinations. I used blue to show the robot is in mode selection mode, red for attack mode and green for evade mode. The LED is also pulsed at varying rates to show initial start delays.
Step 6: The Chassis Design
The chassis is constructed from 1mm sheet Aluminium with thicker L-section Aluminium reinforcement. The external shell of the chassis has been designed to be folded from a single sheet of 1mm Aluminium and held together by the reinforcing members and pop rivets.
The chassis cut out pattern is shown above and given later.
This final chassis design has been chosen for its ability to deliver high strength and rigidity in a lightweight unit.
The design iterations can be seen in the following clips.
The positioning of the internal components within the chassis can be seen in the above video. The motors have been positioned so the wheels protrude back past the rear of the robot, this allows for continual traction if accidental mounting of another robot’s ramp occurs. Due to the battery being the heaviest component, it has been placed centrally over the wheel base to disperse its mass evenly and generate maximum traction.
Due to the differential drive system, the bot is capable of on the spot turning when the wheels are spun in opposite directions . Therefore the effective turning radius is 0.
PDF's of the chassis components are be supplied at the end of this instructable.
Step 7: The Flipper Design
The basic shape of the flipper arm was designed to fit within the chassis and have zero ground clearance at its tip.
The Flipper is cut from 3mm Aluminium in two halves. The two halves are then joined by (6) 6mmX6mmX22mm square bars.
Each bar had a 3.3mm hole drilled into each end to accommodate a 3mm rivet.
The two halves were then joined with the rivets to form the finished flipping arm.
The cross sectional view of the sumo bot shows how the pneumatic rams were attached to the flipping arm. The pin which holds the end of the rams in place is the scrap shaft off one of the 3mm rivets.
Step 8: Assembly Pictures
It can be seen that the sumo bot chassis is held together by a large number of light weight pop rivets.
The final assembly was extremely rigid and strong. It could comfortably support my weight (~70kg) without plastically deforming.
Step 9: Testing the Flipper
The flipping system was found to be fast, powerful and could easily flip most opponents. Even if the flipper was unable to flip an opponent, it was still able to lift it up which results in less traction for the opponent and more traction for my sumo bot.
This video shows the 3 possible states of the flipper
In arena test 1
Step 10: The AI and Component Interfacing Code
Evading another robot has the same requirements as attacking. One additional extra which is required for evasion is either a reverse or side facing sensor to keep track of the pursuing robot. Alternatively the robot could move in reverse.
The autonomous abilities of the sumo robot are only required to be fairly basic. The control code involved in creating the robot’s autonomy should be able to cope with the readings from all of the on-board sensors and respond to threats in a quick and efficient fashion.
To enable the robot to perform the required tasks of autonomous attacking and evading a reactive code structure was implemented. This resulted in an agile robot which can respond quickly to an opponent’s actions.
When first switched on the sumo robot enters a mode selection state, identified by the flashing blue indicator LED, this state lasts for 5 seconds. This state allows the user to select between an Evade mode or an Autonomous Sumo Competition / Attack mode.
The robot automatically enters the evade mode if the user does not press the red button during the mode selection state. Once in evade mode the indicator LED will flash green, showing that the robot is waiting for its start command.
To select the Autonomous Sumo Competition / Attack mode the user must press the red button during the mode selection state. In the Autonomous Sumo Competition / Attack mode the LED will flash red, indicating the robot is waiting for its start command. Once the start button is presses the respective LED colours will flash fast for 5 seconds, during this time the user must move more than 1.5m away from the arena. The LED will then become the solid colour and the robot will begin its selected mode.
Evade Mode Goal
The main goal of the evade mode is to avoid contact with a pursuing object, while maintaining within the arena’s boundary. This is be achieved by locating the object then tracking it with the two front ultrasonic sensors. The pursuing object is tracked on the spot until it gets within 50cm. The sumo robot then moves in reverse trying to maintain the 50cm distance. The robot keeps moving backwards until it contacts the white boundary line, at which point it rotates away from the pursuing object and moves back towards the centre of the arena. The robot then detects the object again and the process is repeated. A flow-chart of the evade mode is shown in the images.
Attack Mode Goal
The goal for the Autonomous Sumo Competition / Attack mode is to push or flip the opponent out of the arena, while remaining within the arena. The sumo robot scans for objects using its ultrasonic sensors. Once an opponent is found the robot rotates until the opponent is visible in its two front sensors. Next, it rams forwards and tries to push the opponent out of the arena. The flipper then activates given the following conditions:
1. The opponent is visible to both the front ultrasonic sensors
2. The opponent is within 10cm
Unless both of these conditions are met, the flipper will not actuate. Once the flipper has actuated, the robot continues to ram forward, then lower then flipper after 0.75 seconds. The process is then repeated if required. A flow-chart of the Autonomous Sumo Competition / Attack mode is shown in the images.
As stated earlier, both the evade and attack functions of the sumo robot are purely reactive. If an object is detected, an action is performed. A reactive method was chosen due to its quick response time, effectiveness and ease of implementation.
Interfacing With Ultrasonic Sensors
This tutorial will guide you though how to interface with the HC-SR04 ultrasonic sensors.
Interfacing Ultrasonic Rangefinder with AVR MCUs – AVR Tutorial
Interfacing with the IR Line Sensors
The line sensors can simply attach to a digital input of the AtMega128 MCU. Then the MCU can read the sensors current state.
Interfacing with the ShiftBrite
The ShiftBrite was controlled using a method called bit banging. The attached document contains working example code for interfacing with the ShiftBrite.
Interfacing with the Motor Controller
The motor controller only requires digital high/low direction signals and PWM signals. Both of which a simple to implement with the AtMega128.
Step 11: Schematics and Part Drawings/Stencils
The wiring diagram for connecting the 4 line sensors, 3 ultrasonics, ShiftBrite LED, switch, Button, motor controller and the servo for the pneumatic system is shown above.
Pneumatic System Connection Schematic
The connection diagram for piping the pneumatic system is also shown above.
Fabricated Parts Drawings
The attached drawings of the sumo robots fabricated parts are all at a 1:1 scale.
These parts can be printed off, glued to the aluminium sheet or L-section and then its simply a matter of cutting along the lines. Alternatively the main chassis part could be cut out using a CNC mill or laser cutter.
Step 12: Overall Performance
I was able to get my weight and dimensions so close to the mark by utilising weight calculation software incorporated into the 3D modeling program.
On the competition day the sumo bot performed very well, taking out the competition in most battles.
The flipper worked exactly as designed and managed to flip multiple opponents out of the arena.
However during some of the later rounds, a small leak occurred in one of the seals in the pneumatic switch which resulted in pressure loss. This issue can be simply fixed using an o-ring sealant.
My sumo robot won 1st place in the competition. The video below shows my robots competition highlights.