This prototype was developed for the class Special topics in computer science, the topic for this semester being building and programming mobile robots. The body was built with Lego blocks, which support the big red block containing the computer that runs the sensors and motors. The goal was to build an autonomous robot that could perform different tasks in this predefined environment.
The board is about the size of a ping pong table and the surface is white. Several walls, as well a black line on the floor, define possible trajectories the robot can follow. On one side of the board the walls are colored black, whereas on the other they are white. The surface of the ramp is colored black and bears no line.
The first step was to build the robot itself. Since the computer block does not naturally fit on a Lego structure, the body was built as a case, surrounding the computer, which holds in place as long as the robot is not turned upside down :-). The wheels, two DC motors, and the sensors were then attached. A front wheel drive locomotion system was chosen, as it provides greater stability, and gear trains were designed to increase the power output of the motors on the two powered wheels.
This upside down photograph shows the configuration of the gear trains. The two white blocks carefully keep the computer from falling off. The motors (not visible in this picture) were placed on a tray on the back of the robot, which also provides support for the rear, non-motorized, wheel. The four small black tubes on the front of the robot are the photoresistors used for eyes, which had to be enclosed in black tape so that they could get readings from small areas. The wide piece located on the front acts as a touch sensor, and was added for the two last stages of the project, in which the robot must be able to adjust its trajectory in the event of a collision with an unexpected obstacle or another robot.
The next step was to bring the robot to life. This was accomplished with a program developed in Interactive C, which is a subset of the C programming language. The program was written and compiled on a desktop computer, and then downloaded to the robot via telephone wire, which acts as an umbilical cord supplying the onboard computer with executable code, as well as with energy when the battery needs to be recharged.
When the robot is turned on, a "Ready" message is presented on the display
and a beep signals that the program is now running.
The project was divided into progressive stages. Each stage makes use of the features developed for preceding stages.
Alejandro J. Trejo
University of Texas at El Paso
Last update: 09 Apr 1999.