CS460 Project 2

Due: In class demo: Thursday April 6th with project report turned in the following Tuesday April 11th. One report per group.

Overview and Objective:

You will design and program a robot which will navigate a random 3 dimensional environment with both walls and debris. The robot's goal is to find a light which will be somewhere in the environment. Your robot will start in one corner of the enclosure and then have to search for the light, stopping and playing a tune when the robot is near the light with no barriers between the light and the robot.

Materials:

Your lego bins have been updated. The RCXs and their paraphenalia have been removed. They have been replaced by handyboards like the one used in the original lab. You will have

The maze:

The maze is constructed of foamboard. There are two large pieces of the maze near the cabinet. Each consists of a side and end of the maze with a hinge made of tape holding them together. These form the outer edge of the maze. Setup the maze so that these two peices form rectangle. Then use the remaining peices of foam board placed  randomly as obsticles inside the maze itself. See the photos below for two examples. Somewhere in the maze, place the light. In final test runs, the light will always be shielded from easy view as it is in the examples below. In addition to the reconfigurable walls, there will be debris in the maze. the walls are all about 25 cm high. The debris will never be more than 2cm high and much of it will be the sorts of small items that you see in the pictues below.
view of the maze

another view of the maze 

Your Task:

You are to create a robot that can find a light in an arbitrary maze with debris in it. For more information about the maze construction, see the section on the maze above. Your robot will start in one of the four corners of the maze (chosen by the instructor on demo day) and will have to find the light. When the robot finds the light, it should stop no more than 12-13 cm (about 5 inches) from the light and play a tune for about 4 seconds. Once you start the robot in its corner, you cannot touch it again until it either runs out of time or claims to have found the light and stopped. Your robot has five minutes to perform this task.

The software environment:

For this lab we will be using the Interactive C environment. We will have a brief lecture about Interactive C on the day the lab is assigned. The IC tools are in /opt/InteractiveC6 on your computers. You should cd into the directory and then run the main executable by running

./icgui

icgui is in your path, however, if you try to run it from outside of its own directory, the machines currently do not find the libraries and you will see a blank listbox and a prompt to select the sort of robot controller that you will use.

When you run icgui, select the handboard as your robot controller. You will then be prompted to select the port. Select com1 or com2 depending on which port you plugged the controller into. You may have to download the firmware before proceeding. (we will cover how to do that in class, there is also a tutorial for downloading the firmware available from IC itself.) After IC connects to the handyboard, you will be presented with an IDE for writing, compileing, downloading and debugging Interactive C code on the handyboard.

A few useful notes


The Project report

The project report is a report of what you tried to do, what you did, what you learned and what you accomplished. To make my correcting easier, let me give you guidlines on what I'd like to see in it. Make sure you use section headings to make each section easy to find.