Asuro - Differential drive robot


click on image for top view

From the Assembly and Operation MANUAL by Arexx Engineering: "ASURO is a mobile mini-robot, completely programmable in C and especially developed for education at the German Aerospace Center DLR, department for Robotics and Mechatronics. Assembly is easy for experienced electronic technicians and feasible for a novice. Except for the printed circuit boards (PCB) only standard parts for assembly will be used. For programming we use freeware only. Therefore ASURO is exceptionally suitable as an introduction into processor-controlled hobby electronics, for projects in schools and universities, for studies and adult education centres. Special tools, which are freeware for private users, have been used for all electronic development phases and software design, proving how robots can be designed without using expensive tools or machines.

ASURO is equipped with a RISC-processor (ATmega8), two independently controlled motors, an optical linetracer, six collision-detector switches, two odometer-sensors, three optical displays, and an infrared communication set for programming and remote control by a PC."

We develop two programs: A code for the PC to communicate to the ASURO robot via serial port. Every message that we send via IR communication to the robot consists of 5 bytes:

127 - delimiter that indicates begin of message
cmd - value between 0 and 31 or 96 and 126
v1  - byte with possibly additional information
v2  - byte with possibly additional information
xor - checksum

Secondly, we develop C code for the ATmega8 microcontroller. Every message that the robot sends to the PC consists of 5 bytes:

127 - delimiter that indicates begin of message
cmd - value between 64 and 95
v1  - byte with possibly additional information
v2  - byte with possibly additional information
xor - checksum

As mentioned above, the ASURO is equipped with several sensors: An optical linetracer, six collision-detector switches, and two odometer-sensors. All sensor information is gained from analog-to-digital conversion on the chip. The result of each conversion is a number between 0 and 1023. The value is distributed to the bytes v1, v2, and then sent via IR.

Any physical barrier between IR transmitter and receiver intercepts the communication link. For reliable communication the two devices should not be more than 1.5 meter apart. Because of the low qualilty communication hardware, transmission is often corrupted. Adding redundancy to the message, such as by a checksum is absolutely necessary.

The software below contains an operating system for the ASURO differential drive robot, and the counterpart application for your PC. The code performs calibration, and testing of all actuators, and sensors. The user can change the speed of the wheels, switch the leds, read the light intensity at the front of ASURO, as well as detect collisions. The data is transmitted via the serial port and infrared link.

The main functionality of the application is to invoke small control maneuvres. An sequence of commands such as: wait, set speed, drive distance, turn degrees, switch lights, drive until collision, and sidewards slide are combined into a program, which the ASURO will carry out.

Using the stereo light-sensitive sensors in the front of the ASURO, the robot can theoretically follow a line. However, we have not implemented an algorithm to perform this operation. In practice, difficulties arise due to the lack of contrast and a low update frequency.

Major parts of source code (Java, avr-gcc C) asuro_main.zip 13 kB
Okay, Houston, we've had a problem here.
John Leonard Swigert, Jr.