Return
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:
-
Handy Board with the Motorola 68HC11A1FN microprocessor with a system clock
running at 2Mhz and 32Kb of static RAM.
-
Serial interface cable (9-pin to 25-pin "AT").
-
Serial Interface/Charger Board.
-
DC wall adapter.
-
RJ11 telephone cable.
-
Software disk, including interactive C compiler for MS-DOS.
-
9volt DC Motor
-
SPDT Lever Switch
-
CdS Photocell sensor
-
Infrared reflectance sensor
-
Rolling Ball Inclinometer
-
Legos
Back to top
Assignment 1 Part 1: Get to top of ramp from a chosen side of test arena
Mission:
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.
Strategy
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 Grid
Figure
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.
Problems
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
Mission:
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.
Strategy
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.
Problems
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
Mission:
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
Stategy
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.
Problems
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
Mission:
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.
Strategy
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.
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.
Problems
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 top