15-494 Cognitive Robotics Spring 2009 |
|
Part I: Localization With the Particle Filter
In this part of the lab you will create a world map, then move the
robot to another location, build a local map, and use the particle
filter to estimate where the robot is on the world map.
Start with the files Lab6a.h.fsm and Lab6a.cc. Arrange three plastic easter egg halves in an L-shape, with adjacent easter eggs about 100 mm apart. Use at least two different colors. Be sure to do "gettekkotsu" at the start of the lab so you are using the current versin of libtekkotsu.so. Compile and run the Lab6a behavior and observe the robot performing a visual search for the landmarks. Examine the world map to see what the MapBuilder found. Move the robot to a slightly different location. Then type !msg
foo in the ControllerGUI's Send Input window to tell the
behavior to continue. It will look around again, constructing a new
local map, and then call the particle filter to localize the robot on
the world map. Examine the world map to see what the particle filter
concluded about the robot's position.Hand in: snapshots of your local map and the corresponding world map. You can use the "Save Image" button in the SketchGUI to save a picture of the local map or world map. Part II: Exploring the Walk Parameters
In this section we will experiment with the parameters controlling the
Chiara's walk engine. The walk engine is very new and has a bunch of
problems waiting to be fixed, but you can still learn a lot by playing
with it.
Place the robot on the floor for this exercise. Instead of using the Walk Remote Control, go to Root Control > Mode Switch > XWalk Edit. When the robot stands up, its initial leg placement is not very good, and this will eventually cause servos to overheat unless you move the robot to a more comfortable position.. To do this, have the robot walk forward a few steps. Then try the following exercises:
Part III: Find and Knock Down A Green Pillar
The Pilot can be used to search for an object by performing a map
building operation. If the desired object isn't found, the Pilot can
rotate the body and try again. Since the Pilot doesn't know what
we're searching for, we must supply an exitTest() function to tell it
when to stop searching. In this exercise we're going to look around
for green blobs, and then try to run over the biggest one.
Compile the file Lab6b.h.fsm. Use an upright green soda bottle as your search target. Try starting the Chiara close to and facing the target, and see how well it can do at knocking it over. Then try starting the robot from further away from the target, and see if it can find it. Dave Touretzky and Ethan Tira-Thompson |