CS 154 Homework #5
Due Monday, Feb 28, 2005
Readings for HW 5:
Dervish: An office-navigating robot
by Illah Nourbakhsh, R. Powers, and Stan Birchfield, AI Magazine, vol 16 (1995), pp. 53-60. (pdf)
Monte Carlo Localization: Efficient Position Estimation for
Mobile Robots by
Dieter Fox, Wolfram Burgard, Frank Dellaert, Sebastian Thrun, Proceedings of the 16th AAAI,
1999 pp. 343-349. Orlando, FL. (pdf)
Lab Project Week 5: "Exploring" the Libra Complex (40 points)
- Sonar mounting (10 points)
For this part, you should attach one of the sonar set-ups in the
lab to your robot in such a way that it can obtain unobstructed
readings from a variety of angles. There is very sticky
velcro tape in the lab, as well as the old standby, duct tape.
First, however, I would suggest setting up one or two posts on the
upper beam of the frame, similar to the camera. There are three boxes
of extra ER1 beams on the floor by the door. Then, I would mount
the sonar, the circuit, and the battery pack to the posts. Depending
on how you do this, you may need to solder longer connectors... .
Be sure that the rotation of the sonar won't pull the wires
from the sensor or the circuit. Also, you'll want to be sure that
an open laptop does not interfere with the range sensing.
You don't need to calibrate the sonar for this week, though you
certainly may -- for the following assignment, it will be important
to map raw sonar readings to distances.
- A curious wandering client (20 points)
For this week, you should extend your remote-control client to
include an autonomous "wandering/exploring behavior" that keeps
it safe as it explores the Libra complex.
Note that you should always be close enough to grab
the robot before some catastrophe befalls it or someone in
its path! This is closely guarded autonomy... .
Note #2 Be sure to run the robot at a reasonable
speed. You can easily secure the laptop with a bungee or
two from the lab.
With these warnings in mind, you should write a program that
send the robot autonomously roaming the halls. The best roaming
programs will send the robot (either randomly or deterministically)
through as wide a portion of its environment as possible. That is,
the robot should be "curious" about its surroundings and should
not spin in circles or continuously pace in one place (unless
it has no choice).
You will have to compose a number of behaviors in order to
accomplish this: the following might help get you started
in your thinking:
- An emergency behavior to stop and back slowly away from
obstacles (including dynamic obstacles, e.g., people).
- A "normal" behavior that progresses, perhaps, to the
next obstacle
- A "decision" behavior that chooses where to head after
the "normal" roaming has been stopped for some reason.
This decision might be made deterministically or randomly,
with or without sensing, etc.
- An "escape" sequence that it might use to safely "unwedge"
itself from situations in which the robot is stuck.
- The web write-up (10 points)
In your write-up, be sure to
- Stay up-to-date in citing all of the papers we've
read in the class so far!
- Describe how you are using the IR sensors (calibration
you computed, if any)
- Describe how you are using the sonar sensor (again,
with any calibration strategy you are using, e.g., you
simply have a look-up table, or you fit a function to
the responses, or you aren't even using the calibration
at all)
- Include a description of your wandering strategy, e.g.,
as a state-machine or in another appropriate form.
- Include one or two screen shots of the path that it
thinks it took (from its odometry) on its successful runs.
Unsuccessful runs are great, in addition to (but less great
when they are in place of) successful runs.
- You can use the map-visualization code on the
software page to get these screen shots.
- Include your wandering code, as well.
- Anything else you'd like to add is also welcome!
Movies of the robot are great (especially of the robot
confused), but since a movie of the robot wandering successfully
does not capture much insight, don't feel you need to
include one this week.