Name(s) _____________________________________This page is at http://www.cs.hmc.edu/courses/2003/spring/cs154/assignments/short6.html
Reading for this week, linked here:
An Introduction to the Kalman Filter
by Greg Welch and Gary Bishop.
Consider the two bug algorithms described in class. As a reminder, Bug 1 always circumnavigated obstacles; Bug 2 left an obstacle as soon as it reached the S-line at a point closer than the hit point.
In analyzing these algorithms we considered at worlds for which Bug1 traversed less distance than Bug 2 -- call these worlds "Bug 2 killers." We also looked at situations in which Bug2 traversed less distance than Bug1 -- call these worlds "Bug 1 killers."
Construct an algorithm that performs better than Bug 1 in some "Bug 1 killer" worlds and better than Bug 2 in some "Bug 2 killer" worlds. If you like, you may combine the two bug algorithms. Alternatively, you may start from scratch. Your algorithm should assume that it has the same information available that the Bug algorithms do (a known direction to the goal and known encoder readings). It does not have to outperform Bug 1 or Bug 2 for situations in which those strategies do well, but your algorithm should always reach the goal (as long as the goal is reachable).
Also, draw/describe an environment in which your algorithm does better than Bug 1. Draw/describe another (likely different) environment in which your algorithm does better than Bug 2.
This problem asks you to use a Kalman filter to estimate the position of walls around a Nomad 200 robot (we'll use the simulator for this).
Start from the code in the directory /cs/cs154/as/shortHW6.
In it, the file kalman.cc has the robot traveling
slowly to the right along the x-axis. In addition, it plots in
small circles from the sonar readings to the walls above it
when using the map kalmanmap. It also shows the
robot's naive estimates of the wall above it with overlaid lines.
Finally, the code allows control over the amount of error in its
sonar and encoder readings with parameters
read in from the file kalmanparams.txt.
Program and tune a Kalman filter to improve on the robot's estimates of the wall positions over time. Use the example line-drawing code to overlay your line estimates onto the world map as the robot moves. Hand in by email or by posting to a webpage the code you write and a short description of how well it works.
Completely Optional Extra Credit
Provide a visual indication of the uncertainty of your filter's current estimate of the wall's position. How you want to do this -- additional lines, points, etc. -- is entirely up to you.