RoboCup project Christine


Gallery   Technical   Diary   About   Links



The robot we are currently using for the competition is the third one we built. Below, you can find descriptions of each vehicle:

Christine 2008 -

We had become fed up with the limitations of the old robot and therefore decided to build a new one from scratch.


Scratch!

Steering

Each wheel is equipped with its own motor, timing belt, and servo as can be seen below. This gives very accurate steering and allows us to rotate around the center of the robot as well as driving orthogonal.


Wheels and servos mounted

Processor

The processor board is a TS-7260 with a 200 MHz ARM9 core from Technology Systems. It is running Debian from a 1 GB SD-card. A nice feature is that it only uses about 1 Watt.


The TS7260 board mounted on the robot.

Other boards

The communication board uses an Atmel AVR Mega32. Signals from wheel encoders, distance sensors, and voltages are gathered and sent to the TS board.



Due to lack of time we did not build our own motor and servo controllers this year. The MCUs are Dimension Engineering Sabertooth 2x10 which can control two motors each. The servo controller can control up to 8 servos and is from Pololu.

Camera

We also decided to venture into the world of image processing. We got a Logitech Quick Cam. It will most likely be replaced next year with a better one. It is used to detect the orange golf balls, which is done by fitting an ellipse. This gives us the coordinates of the ball. Images of the ball are shown below. Furthermore the blinking gate is detected by applying a bandpass filter to the intensity of the pictures.


Original color picture



Hue



Grey scale image of ball with fitted ellipse

Top

Christine 2005 - 2007

The Donor Car

The robot is built on the basis of a Ford F-150 4 WD from Tamiya (TA-02 Chassis). The springs of the suspension have been replaced with harder ones, and the servo has been replaced with a high torque servo (110 Ncm)

The car with open gear box
The car with open gear box

The Main Processor

To enable more sophisticated control strategies, the relatively powerful processor, LPC P2106, from Philips with an ARM7 core has been chosen. It was bought on an evaluation board from Olimex.

  • Type: 32-Bit ARM7TDMI-S
  • Clock frequency: 60 MHz
  • Memory: 64 kB SRAM, 128 kB Flash

The main processor

The Line Sensor

On the 2004 robot the line sensor was made with 6 photo diodes and constant red light. This construction was very sensitive to external light, and the resolution was not satisfactory.
The new line sensor has been equipped with 8 infrared sensors and 9 infrared LEDs. The light is modulated with 40 kHz, and the intensity can be changed by changing the pulse width of the signal. The generation of the frequency and the polling of the sensors are performed by an ATmega 16 from Atmel.


The line sensor

The Motor Controller

The motor controller is a standard H-bridge. It is controlled by an ATmega 8.


The motor controller

On the old car the speed was estimated by switching off the bridge and measuring the EMF from the motor. The accuracy was sufficient for the control of the speed, but for distance measurements it wasn't good enough. Therefore a 120 pulse encoder has been mounted on the propeller shaft. To enable a feed forward, when the battery voltage drops due to load from the servo, and for monitoring, both battery voltages are measured.




The encoder
Top




Christine 2004 - 2004

The vehicle

In order to save time and money a used RC car was bought. The choice fell on a monster truck from Nikko. The main advantages of the car were:

  • Due to it's huge wheels it should be able to take the stairs.
  • Due to it's size in general there would be plenty of space for PCBs, sensors etc.
  • It was cheap.
  • The seller lived only 15 km away.

The car, however, did have some obvious disadvantages:

  • It wasn't sold as a kit, so the control of the steering servo and the speed controller were integrated on a PCB with a customized ASIC, which could not be reused in the project.
  • The turning-circle diameter was about 1.5 m.
  • The width of the bumper was about 38 cm, leaving very little free space in the ports which were 41.5 to 45 cm wide.


The car just before the contest

The processor

After having read an article about programming AVR Microcontrollers with GCC (unfortunatly no longer available on the net) it was decided to use an 8 bit microcontroller from Atmel for the project.
The choice fell on the ATmega 162 which I guess was the one with the largest program memory of the controllers in DIL package. A description of the different devices can be found on www.avrfreaks.net



The main board

The motor controller

The motor controller consists of an H-bridge with two IRF 1310 N N-channel, 36 A hexfets and two IRF 5210 N P-channel, 40 A hexfets. The driver IC is a TC 4469 which apart from switching the hexfets also prevents simultaneous activation of two hexfets in the same leg.
The PWM signal is generated by the microcontroller and is modulated with 15 kHz, which eliminates the noise in the audible frequency range. The actual speed is measured by turning off the H-bridge for approximately 1 ms every 100 ms and measuring the induced voltage from the motor.

The servo controller

As earlier mentioned the controller for the servo was integrated on the main board of the original car. Therefor a new controller had to be build. For the purpose the IC, MC51669L was used. The IC requires, like normal integrated servos, a signal with a pulse width of 1 - 2 ms which is repeated every 18 - 25 ms.
Since the servo tends to generate very large current peaks, it was supplied with it's own batteries, so it wouldn't disturb the line sensors or the motor controller.

The distance sensor

In order to choose the correct branches on the track, the current section has to be known. This problem has been solved differently by different teams. The most simple way is to mount a contact that is activated when the vehicle passes a port. An other way is to detect the branches. I decided to do the detection with the distance sensor, GP2D120, from Sharp. It delivers an analog voltage in the range from 0.4 V to 2.25 V according to a distance from 4 cm to 30 cm to the object. (non linear).
For the detection of the ports the output of the sensor was simply compared to a constant, adjustable voltage using an op-amp. The output from the op-amp was connected to an interrupt on the processor.
The scheme worked just fine in my apartment and in the garage, where I was alone. But on the real track, where people would walk around testing their own robots it made a few false detections. And at the final race the flash light from a camera made it detect a port extra, which made the robot take the the left branch one section too early and loose the race....

The line sensor

For detecting the line I chose the most simple variant, using 6 high power red 10 mm LEDs (25000 mcd) and 6 photodiodes (BPW 24). The reverse current of the photo diodes was amplified (as a voltage) and compared to a constant, adjustable voltage. (one separate for each diode in series with a master voltage). The light of the LED was not modulated, which made it very sensitive to daylight etc. Therefor a shield was mounted on the bumper.



The line sensors

Top