Building and Programming a Mobile Robot
Spring 1999 CS 3490
Group 4 
Lori Alvarado & Kenny Laviers
Instructor: Dr. Baral


Robot Building Materials

Robot Kit contained the following: Back to top

Assignment 1 Part 1: Get to top of ramp from a chosen side of test arena


To build a Lego robot with the Handy Board processor as brains, and program the robot to reach the top of the ramp in the the test arena.


Build a three wheeled robot
Use 2 motors for two wheels last wheel has no motor
Use photo sensors to read the black line up to ramp
Follow the black line to top of ramp.

Figure 1.Sensor Gridsensor grid
processorFigure 2. Processor

5 Photo sensors are located in the front of the robot in the sensor grid. These are used to follow the black line. If the outside sensors are black then there is a turn left or right routine that it will go into. If only the middle sensors are black then there is an adjust left or right routine that takes place. When all sensors are black then the robot is aware that it is at the ramp and enters a ramp routine. This routine takes place for the amount of time that the robot needs to get to the top of the ramp.


The photo sensors were very hard to work with. This is why we have so many. Depending on the amount of light that is present the thresh holds may need to be adjusted. The way that we did our gears had to be changed to allow for more power.
Back to top

Assignment 1 Part 2: Get to top of ramp from either (unknown) side of test area


To program the robot to reach the top of the ramp in the the test arena from when put on either side of the test arena.


Add to the program that was used in first part. Added two more sensors on the side of the robot so that it would know what side of the arena it was on. Our first program was robust enough to use on either side. There was not much adjusting done to complete the second assignment. We set a flag to know if we were on black or white side of the arena. Then we knew how to adjust the threshholds for the sensors.


Once again we had lots of problems with the threshholds on the other side of the arena. We had to put two new sensors to know what side we were on and add to the thresholds so that we could read the lines using the sensors.
Back to top

Assignment 2: Obstacles


To program the robot to reach the top of the ramp in the the test arena as well as deal with any obstacles that get in the way of the mission.

Obstacles included:

Obstacle on black line is blocked
There is no line


Used the previous program and added routines to deal with obstacles. These routines included Turn Around, Go Around, and bumpers. When a bumper was hit in the front the robot would automatically go into turn around which would just a 360 degree turn and go the opposit direction. Go around allowed the robot to hit an obstacle and bump its way around it. Bumpers allowed the robot to use the bumpers to creep along obstacles such as walls or objects.


Trying to think of obstacles to avoid and get by. Using bumpers to inch along an obstacle. Back to top

Assignment 3: Hide and Seek


To program the robot to play Hide and Seek with another robot. The robot will be able to hide from the other robot and wait until it is found as well as seek the hiding robot. When a robot is found or has found the hiding robot the two robots will then race to the top of the ramp. Which ever robot reaches the top of the ramp first wins.


Once again we wanted to build on or reuse components of our previous program. We figured out how to use the seconds(), a function that is part of Interactive C, which keeps track of the cpu clock. We were able to synchronize with the other robot that was playing on how long we would wait to seek for or how long to hide for.

We had to add two new bumbers to the sides of our robot to make sure that we would know when we were hit if the seeking robot bumped us on the sides. We also had to make a down the ramp procedure that moved the robot down the ramp instead of up the ramp. A find the line routine that looks for the black line when it got down the ramp was implemented as well. Some procedures were able to be reused. Follow the line as well as turn around were reused.
More bumbers Figure 3.More Bumbers are added

If the robot found by being bumped from behind or the sides it continues to go forwarad to find the ramp . If it is found by being bumped from the front it will turn around and then begin to go to the ramp.


We had to add 2 more bumpers which brought our total digial and analog input count to 12 sensors. One bug was once the robot got down the ramp it would not read the line when it was found. This was fixed by opening the sensor opening wider. It then read the line correctly. Sometimes when the battery is low it does not read the sensors well. This was avoided by always haveing a charged robot to work with.
Back to topclunker