Harvey Mudd College
Computer Science 154 - Robotics
Assignment H

Behavior-based Control

Introduction

A robot does not have to have range sensors (sonar sensors) in order to execute a wall-following algorithm. The Rug Warrior has three touch sensors, two infrared emitters and one sensor, shaft encoders, and two light sensors. The purpose of this project is to build a behavior-based controller that will allow the rug warrior to roam the halls of a building and remember where it has been



Part 1 - Testing the waters

Start by familiarizing yourself with the robot and its capabilities by programming the robot to perform a series of tasks in Interactive C. Interactive C, is a programming environment available for the Rug Warrior (as well as the Handyboards used in the Extinguisher project. An online reference is available, as well as documentation in the Rug Warrior's assembly guide.

Checking the sensors

As a starting point, you should write Interactive C programs to use and test the sensitivity of the following subsystems on the Rug Warrior: Chapter 6 in the Rug Warrior Pro Assembly Guide describes a number of example programs. Chapter 7 in Jones & Flynn's book suggests a method for implementing a behavior-based architecture using the multitasking capabiltiies of Interactive C. get a sense for what the robot can do.



Part 2 - Wall following

The basic idea is to build a program that will follow walls in an indoor environment.



Part 3 - Returning home

Once the wall follower is working, the final task is to keep track of "landmarks," i.e., large right- or left-turns. Then, add the capability of returning to the robot's approximate starting point upon hearing a signal (a clap or another loud noise). Basically, the rug warrior should reverse direction, start following the wall on its other side, and stop when it has passed the "landmarks" it encountered on the trip out.

You might also consider creating landmarks (bright lights that would be picked up by the photodetectors, for example) to help this homing procedure.

I apologize that I haven't written a more detailed description of this, I'll let you know when the specification is revised.