CS460 Project 3
Due: In class demo: Thursday April 2nd with project
report turned in the following Tuesday April 7th. One report per group.
Overview and Objective:
You will design and program a robot which will navigate a random 3
dimensional environment with walls and a light. The robot's goal is
to find a light which will be somewhere in the environment. Your robot
will start somewhere in 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. Your robot must be programed using behaviors and the subsumption archtecture.
Materials:
You will have the same robot kits as before. You will have
- An XBC (with charger and interface board and cables)
- ET sensors (2)
- Top Hat sensors(2)
- Touch Sensors (several and varied)
- Light sensors (2 possibly 3 if I have enough)
- Breakbeam encoder
- Lamp and maze (shared with all groups in the class)
- 2 black motors with gears attached
The maze:
The maze is constructed of foamboard. Setup the maze so that the
large pieces 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. (though you will not need to deal with the debris as seen in
these older photos. 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. The walls are all about 25 cm high. I will try to setup
the maze in a
perminant spot, however, there is another class in here along with a
robot competition team and we may not
be able to keep it out all the time.
Your Task:
You are to create a robot that can find a light in an arbitrary maze
with obsticles (made of the same maze materials) in it. Your robot must
be programmed using the subsumtion architecture. You will have to
program parallel behaviors at different levels. Behviors at level N may
subsumre (via either inhibition or supression) the output of a behavior
at level N-1) Your robot will somewhere in 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. You will be penalized for moving any part of the
enviroment. (the walls of the maze can be easily moved the light is
less movable, but more dangerous for the robot)
The software environment:
For this lab we will be using the Interactive C environment as before.
A few useful notes
- Don't forget to charge your robot. If you ever start to see wierd behavior running the
same program that used to work, try recharging the xbc.
- All of the issues that you learned about in your last lab still apply including
- sometimes the same powerlevel produces different speeds in different motors
- sometimes the same stimulus will produce different output from two different sensors.
- Check to see if your sensors are working. I've replaced at least
one sensor that stopped working. I don't have many more spares so
check them early.
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.
- Introduction
- this is where you explain the problem you wer trying to solve and why it is relevent
- Robot design
- Here tell me what sort of robot you designed (in hardware).
Tell me what worked and what did not work. Discuss what you learned
based on what worked and what did not.
- Software design
- Here discuss what sort of control program you built. Again tell
me what worked and what did not. Discuss what you learned about robot
control software from your experience. Discuss your approach and its
relevence to both the current task at hand and the general problem of
robots acting in the world.
- Include
a diagram of your behaviors and their interactions, including which
behaviors can subsume lower level behaviors and what subsumption
mechanism is used.
- Evaluate your robot
- Fro both design robot and software design, consider the four
standards we are using to evaluate a robotic architecture and consider
how your robot meets each of them. For niche targetability, include
your robot's actual performance in the demo.
- Concuding discussion
- Summarize what you learned. Consider the following target
audience: next year's robotics students. In this section, summarize
from the preceding sections all of the worthwhile dos and don'ts that
you discovered in doing this lab. It is not really relevent that your
robot did really great unless you tell the reader why. Think about what
you would have liked to know when you first saw this lab, and if you
have any insights after doing the lab, share them here.