Robotics and autonomous systems
Localization Examples
To illustrate some of the ideas in localization you can have a look at two example programs that you find under
/usr/local/pkg/localizationdemo
on the lab computers. In order to see what is going on you alos need to run the visualization tool called RoboLook that you find under
/usr/local/pkg/RoboLook
The order of business is
- cd /usr/local/pkg/RoboLook
- ./RoboLook
This should bring up a screen with a robot filling most of it. You can move the camera to observe the seen from different directions. Notice that running this program remotely will make it quite slow.
- left button + move mouse = move camera angle
- middle button + move mouse = zoom in/out
- right button + move mouse = translate camera
- if you click the right button you get a menu that you can use to reset the bounding box for example which comes in handy when you load a new scene into RoboLook. You can also switch to parallel projection if you prefer that over pespective projection.
- In another window cd /usr/local/pkg/localizationdemo
- ./ekfLocalizer -P
- right click and select reset in RoboLook to adjust bounding box (you only need to do this the first time you run a program as the environment look the same in all examples).
- You will see the options you can use. Th most important one here are 'u' to drive forward, 'h' and 'k' to turn, 'n' to reduce speed and SPACE to stop. This will show you how the uncertainty ellipse grows as the robot moves. The angular uncertainty is shown as the "wedge".
- If you press 's' you can change some of the parameters of the program and see what happens (odomNoiseCoeff is what we called k_r and k_l in the lectures).
- Also investigate what happens when you increase the uncertainty in position or angle or introduce an error in position or angle with keys 1-4.
- Pressing 'i' will return the program to the initial state
- You can also run ./ekfLocalizer without any argument if you want to experiment with localization.
- Check the difference between using and not using range information (press 'b' to toggle bearing-only on/off)
- Try ./particleLocalizer -P to see how the uncertainty is estimated in a particle filter
- Then try ./particleLocalizer and play with localization with a particle filter. Thinsg to test here include changing number of sample ('s' to change params), bearing-only on/off 'b' and using discriminative landmarks or not 'd'.