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

  1. 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.

  2. 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.)

  3. 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.)

  4. 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.)

  5. 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.)