## Homework 5: particle filter

Due 5/2/2012 (Thursday).

This homework assignment is to use a particle filter to localize the
position of the robot.

The position of the robot is not observed directly. However, there are
two range beacons in the environment located at coordinates (2,0) and
(5,0) (shown as the two circles in the figure). On each time step, the
robot makes a noisy measurement of its distance to the *closest*
beacon. Each measurement is corrupted by zero mean Gaussian noise with
variance 0.25. For example, if the robot is located at (3,1), it will
make a noisy distance measurement with a mean distance equal to 1.414
(the distance to the beacon at (2,0)).

The actions of the robot are as follows. On each time step, the robot
chooses one of the four cardinal directions. The resulting
displacement is a distance of 0.2 in that direction with Gaussian
process noise with variance 0.2.

The actual path taken by the robot is a predefined path beginning at
the point labeled "start" and ending in the position labeled
"end". The robot follows this path by taking a series of fifteen moves
(moving a distance of 0.2 on each time step). Estimation ends after 15
time steps.

Prior to the observation at time 1, the belief state is approximately
uniform over the free space. You should use 200 particles in this
assignment.

The programming should be done in MATLAB or Octave. Students may get
access to
MATLAB here. Alternatively,
students may code in Python (using Numpy). If the student would rather
code in a different language, please see Dr Platt.

Students should submit their homework via email to the TA in the
form of a ZIP file that includes the following:

1. a PDF file containing 16 plots of the particle distribution (the
prior distribution plus the distribution over each of the 15 time
steps). The plots should show locations for all particles. The first
plot should show the prior distribution (roughly uniform). The last
plot should show the particle distribution after the update made on at
the last via point.

2. A directory containing all source code for your project.

### Notes and updates: