2006 Striker
Although Boris was rebuilt for the internationals, we still used two ATMega32 microcontrollers to run it. They run at 16MHz, giving them a throughput of 16MIPS (million instructions per second), and have 32 digital input/output pins, 8 of which can be used as ADC's (analogue to digital converters) and 4 of which can function as timer-driven PWM (pulse width modulation) outputs.
The two microcontrollers communicate via a bit-banged serial connection. The master chip processes all the sensors and decides what to do. It then sends instructions to the slave about where it wants the robot to move. This instruction can be an angle at which to move, x and y velocities or individual wheel velocities, as well as an additional rotational velocity. The slave code never has to be modified. This is a very cool way to control the omnidirection. All of the electronics are mounted on PCBs which I designed in Protel 99SE and then had manufactured by Futurlec (www.futurlec.com).
The robot has a total of eleven phototransistors, which are connected to comparators so I can tune them easily and so they return a digital value (on or off). Six of these sensors face outwards and five are on top facing downards, so we can detect when we have possession. The striker also has an analogue greyscale sensor, comprised of a blue LED and an LDR (light dependent resistor) in a tube.
We bought two SRF04 ultrasonics sensors from Robot Parts in Brisbane (www.robotparts.com.au). This enables the striker to aim for the actual goal rather than just facing down the field. The brown tubes are sound attenuating material from Jaycar which reduce the angular sensitivity of the sensors. We use a CMPS03 sensor (also from Robot Parts) to give the robot a sense of direction. It is a serial (I²C, also known as TWI or Two-Wire Interface) sensor that sends a heading from 0 to 3599.
The robot's structure was designed in Autodesk Inventor. The outline and drilling plan was printed 1:1 and then glued to aluminium to be cut out. Originally the bottom two plates were made out of 3mm aluminium, but the weight limit meant that this had to be reduced to 1.6mm. The dribbler and each wheel are powered by two Lego motors each. These motors are extremely efficient and easy to control. The motor controllers are LMD18200's.
We used a solenoid as a kicker. It has a rubber tip which was cut from old car tyres. In order to get a powerful kick, we have a switch-mode power supply that steps up to a nice high voltage. The topology we used was a full-bridge converter. It works by generating a square AC wave using a h-bridge, the AC voltage is then applied across a transformer, the output from the transformer is rectified using a bridge of four diodes and used to charge a large capacitor. At the internationals we had a large solenoid on the goalie and a small one on the striker. Before the 2006 Australian competitions, we moved the big solenoid to the striker and ditched the goalie's kicker.
A big thanks to Jeff Lynne for showing me how to implement integral-gain feedback for the converter. When the voltage across the capacitance reaches the desired voltage, the h-bridge switches off. Then when the voltage drops back, the controller increases the duty cycle slightly and sustains a constant voltage on the capacitor. Unfortunately the h-bridge gets very hot from switching so fast. I built a fan into the robot on the Saturday night of the 2006 Aus Open. More information on switch-mode power supplies can be found here and here.
Back to Robots