Homework 1: A Robot Obstacle Course
CS65: Artificial Intelligence
Fall 1998
Due: Thursday, October 1
For this homework assignment you will work in a group of about five
people. You should hand in one write-up for your entire group. The
write-up should include a report detailing your approach, plus a
printout of well-commented, well-organized clean
code that implements your approach. You must also demo your robot in
action. There are several performance tasks listed below; you may choose
to have some group members work on one task and some work on another.
Your report should be a short paper describing your approaches
to the robot body design and its control methods for tackling
the obstacle course. Explain the strengths and shortcomings of
your approach, and describe those situations in which your robot
will succeed or fail. Give a brief description of what features
you would add to your robot given the opportunity. These features
may include software changes or improvements in the robot's physical
characteristics. You may include sensors that we don't currently
possess.
Step by step instructions for completing this assignment
- Build the basic robot chassis using the Legobug instructions you are given.
Once you get the basic chassis working, you may customize it in any
way that suits you. Explain any non-decorative customizations and why
they were made in your report.
- Practice with Interactive C by: making the robot move in a circle,
then in a one-foot square, on the table top. Experiment with attaching
a light sensor to your robot, and reporting the light values to the
LCD screen on the robot. (You do not need to hand in or demonstrate
these behaviors.)
- Begin by implementing "wandering" behavior. You might try to implement
"directed" wandering where the robot goes generally in one direction but
may zig zag along the way, or where it wanders generally towards a light
source. (You do not need to hand in or demonstrate
these behaviors.)
- Next, examine the obstacle course. The robot must be able to
get out of corners, go around obstacles, and seek the light source.
You may not assume that the obstacle course will always have the same
form: obstacles may be moved around. Develop a program for your robot
that maneuvers in the obstacle course. The robot should stop when
it gets very close to the light source. (Describe this program in
your report, and hand in code for it.)
- Create a separate program for your robot which can navigate from
the hallway outside the Intro lab to our normal classroom, OLRI 243.
Your robot will be started generally facing towards the north/south
hallway at the east end of the building, but may not be precisely
centered in the hallway nor facing exactly parallel to the walls.
Your robot should deal with pedestrians to a limited extent: it may
assume that a pedestrian will move out of its way after being bumped,
but a wall will not. (Describe this program in your report, and hand
in code for it.)