Homework 4: histogram filter

Due 4/13/2012 (Friday).

This homework assignment is to use a histogram filter to localize the robot.

The figure illustrates the environment. There are 22 possible states in which the robot might be represented by the open squares. The shaded areas are obstacles.

The position of the robot is not observed. However, on each time step, the robot observes whether each of the four neighboring states (up, down, left, right) are free or an obstacle. That is, the robot observes four binary values on each time step.

Although the robot is not aware of it (at first), it takes the path indicated by the eight sequential numbers in the figure. (On the first time step, the robot is in the location labelled "1"; on the second time step, it is at "2", and so on.) After eight time steps, estimation terminates.

Prior to the observation at time 1, the belief state is a uniform distribution over the 22 states. The process model is as follows: on each time step, there is a 0.1 chance that the robot fails to move to the next state and instead remains in the current state. The observation model is as follows: there is a 0.05 (independent) chance that EACH of the four bits is in error -- 0.05 of the time, each bit is read as its opposite value.

The histogram filter should execute for eight time steps.

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 (zihechen@buffalo.edu) in the form of a ZIP file that includes the following:

1. a PDF file containing 9 plots of the belief state distribution over the state space. The first plot shold show the prior distribution and the other eight plots should show the distribution after executing the histogram filter update on that time step. You may display this probability distribution as a numerical array or as a plot where the probability of cells is denoted by gray level.

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

Notes and updates:

None yet...