Homework 1: Basic robot maneuvers

CS88: Senior Seminar on "Natural" AI Methods
Spring 1998
Susan Fox

For this assignment you must work in groups of three or four working with the Handyboard robot controller and the Legobug (or some variation) robot chassis. There are only three Handyboards, but enough parts to build 6 Legobugs. You must share the Handyboards.

Be careful with this equipment, it is expensive and delicate!!

This assignment has three main phases, due at different times. If folks get these going on time, we'll try some more difficult tasks, so don't procrastinate! The more difficult tasks are also more fun! At the end of this assignment, we'll have a public robot demonstration during and/or after class.

You must hand in one write-up per group for each phase. This write-up should describe your algorithms, your experience, and should include your (clean, commented, well-organized) code.

Unsolicited Advice: It is very easy to write hacked-up, "dirty" code when working with actual robots. You write a bit of code, then try it out, then tweak it. This will get you in a deep, deep hole when it comes to more sophisticated tasks. Use good programming style. Use data abstraction as you can. Good procedural abstraction will save you endless time! Comment your code, and keep around previous versions: don't overwrite unless you are sure you won't need it.


Phase I: Basic wandering

Due Tuesday, February 3

In this phase you will become familiar with the basics of Lego construction, and you will learn about Interactive C, the language for programming the Handyboard. You'll start to implement some very simple behaviors for the Robot.


Phase II: Follow the yellow-brick road

Due Friday, February 6

In this phase you will program your bug to use its light sensor(s) and follow a path marked on the ground. The bug will have to successfully stay on the path and get from a starting point to a goal. The path will be more constrained than in the previous section.


Phase III: Light-seeking

Due Wednesday, February 11

In this phase you will program your bug to navigate a playpen, seeking to approach a light source. When it has approached close to the light source, it should stop.