Final Projects


Sunday, 04/01/01

Interacting with humans (Hors d'oeuvres Anyone?)

Build a robot that communicates in an intelligent manner using body language and synthesized tones. E.g., make a robot that notices interesting behavior in its environment and responds by investigating the behavior and responding playfully. If you were programming the Sony Aibo, how would you make the robot behave to engage children and keep adults interested? Could you make a robot to pass Mark Tilden's "Purring test"? Think of how a cat fancier can entertain a cat with a feather, a newspaper or a twig. Incorporate adaptive behaviors from playful, to frightened, to bored, to dismissive. Make the movements, i.e., body language consistent with the sounds that the robot emits. You might also want to build in some variation on Isimov's laws of robotics.

Interacting with other robots (RoboCup)

Design a pair of robots that exhibit cooperative behavior, e.g., ball handling on a soccer field: this would involve two robots working together to move a ball down a soccer field. The robots would have to use signals for handing off the ball from one to the other and strategies for working together to keep the ball in bounds. You should finesse the hard problem of finding the ball by using an easily distinguished ball, e.g., a ball with a transparent cover and an internal light and power supply of the sort you can find at Toys 'R Us or Radio Shack. You can also design robots to exhibit adversarial behavior, e.g., robot tag or one-on-one soccer matches.

Interacting with the world (Escape the Office)

Build a robot that learns to escape from mazes. The demonstration might involve two phases: in the first, an environment is set up on a standard size board and the robot is given a period of time in which to explore the environment. In the second phase, the robot has to move from one location to another or, alternatively, find its way out of the maze. In the second phase the robot is timed in competitions.

A related task is searching an area (Clean up the Office) - this also involves an initial exploration phase but, in the second phase, the robot is instructed to find some particular object. In another version of this task, the robot is required to clean up a room by shoving objects to some designated area.

Object recognition and selection (Recycling Soda Cans and Styrofoam Cups)

In this task you are given a set of simple patterns, e.g., triangles, squares and circles. These patterns appear in the robot's environment as black patches on a white surface, the competition field. The task is to identify all instances of a specified pattern by, say, circling the instance and emitting a specific sound or by depositing a marker on each instance. You might specify a pattern by placing an instance of the target pattern in one corner of the field. Alternatively, the robot might be required to "fetch" a single instance of the specified pattern as quickly as possible.

Adaptive control tasks

There are lots of interesting learning tasks. There is for example a version of the inverted pendulum task that it is possible to implement in lego. In this variant the pendulum is horizontal and is analogous to the trailer in a tractor trailer combination. Jack knifing the trailor is equivalent to having the pendulum fall over and so that task is really that of effectively backup up a trailor. The learning system should allow the program to learn to backup trailers of different lengths.

Group behaviors

Building simple robots whose collective behavior is interesting. Especially interesting are simple flocking, foraging, and related behaviors that are facilitated by very simple communication and loosely coupled collaboration of the sort typically observed in bees or ants.

Aspects we'd like to see you emphasize in your projects

self calibration - demonstrate that your robot is robust to variations in ambient lighting, signals and shapes.

adaptivity of all sorts - demonstrate that your robot can tell when conditions deviate from some norm and then act appropriately.

software robustness - software that runs on multiple robots and that is self configuring in the sense that it figures out what sensors are available, perhaps periodically reconfigures itself if the sensors malfunction, and does it's best to carry out it's "goals" no matter what hardware is available.

software modularity and reuse - components that can be shared among tasks or combined in different ways to implement different behaviors.

Aspects we'd just as soon you not emphasize

complicated robot designs - you can do a lot with a tankbot with a few strategically designed augmentations. Read Fred Martin's chapter on succumbing to the siren's song of building "better" hardware.

specialized sensor hardware - try to make do with basic sensors; focus instead on combining sensors and repeated and clever use of sensors and sensor interpretation software.


Previous Home Next


Last updated on April 1, 2001.

Home Courses