border shadow

Robby: About the making of an electronic pet

The first try on the field of autonomous robots. This was a pure fun project with no specific goal in mind. My brother Stephan an me built this car like robot based on a remote controlled car. It could drive around on its own and interact somewhat with the environment. For example it could hide in a dark place, run away from people or scare cats.

Above the robot as it appeared in its final stage. At the botton the remainings of the RC car are visible, including the wheels. In the back and front there are the bumpers (black) that could detect an impact. The rack in the middle contained the electronics. Up at front there is the superstructure supporting the turnable sensor block housing the IR detector and visible light sensor.

Components

  • Z80 micro controller board originally from an electronic type writer.
  • I/O board with some relais, a simple A/D converter and driver stages.
  • RC servo motor for stearing the two front wheels.
  • RC servo motor to control the driving motor (fast fwd, slow fwd, stop, slow bwd, fast bwd).
  • RC servo motor to turn the sensor block 90 degrees to both sides.
  • NiCd battery pack for motion and the electric consumers.
  • Planetary gear to slow down the car and give it more momentum.
  • 4 mechanical switches used as bumpers and to detect an impact. 2 in front, 2 in the back. It took some time to figure out how to build them, so that they fit onto the car and still could detect impacts from different angles (i.e. don't have dead spots). In addition, they must have been strong enough to support the impact, the robby got quite heavy at the end.
  • Infra red motion detector. Any temperature contrast that moves relative to the sensor triggers an impulse. In order to use it, the car and the sensor had to stay in place.
  • Visible light sensor. It consisted of a opto resistor in a small piece of plastic tube at the left side of the IR detector.

Detail view of the back and the front. One can get a glimpse of the mechanical construction of the bumpers.

Software

The programming was mostly done in C, with some assembler low level drivers. A 8085 compiler generated the executable code which could be debugged with a simple emulator. Then the program was burned in an EEPROM and plugged onto the board. There were very limited ressources in terms of program and data memory.

 

A different view of the robot.

Behaviour

The robby had different behaviour modes. At the beginning we were quite excited by just watching it drive around, bump into walls, chairs and other obstacles, stop, reverse, turn around and go on. Then we gradually increased the complexity. We ended up with a rather shy little pet. It searched the room for the darkest place, moved there, turned around and sat there waiting. Perjodically it looked to the left and to the right with its IR detector to see if somebody was approaching. If so, it fled into the other direction, again searching for a dark place to hide. It also changed position spontaniously when it go bored of just sitting somewhere.

It was great fun to have this artificial pet around. Sometimes one forgot about its presence when it suddenly appeared from underneath of something, trying to run away.

Our cat however didn't like it too much, it probably was a little too impulsive. Another problem was staires: the Robby couldn't detect a stair to a lower floor, it would have driven over the first step and tubled down.

We experimented with different sensors and actors, for example we developped a flywheel based ping-pong ball gun. It shot the balls so hard that I got a blue spot on my arm after getting hit. So we didn't mount it on the robot, to spare our cat and other lifeforms in the vicinity. :-)

The Robby "totally naked", stripped of all the electronics. On the inner side of the right rear wheel one can see the additional gear box to slow down the robot and give it more momentum.