$24
This assignment will introduce you to the idea of first building an
occupancy grid then using that grid to estimate a robot's motion using a
particle filter.
There are two questions to complete (5 marks each):
Question 1: code occupancy mapping algorithm
Question 2: see ass2_q2.m
Fill in the required sections of this script with your code, run it to
generate the requested plot/movie, then paste the plots into a short report
that includes a few comments about what you've observed. Append your
version of this script to the report. Hand in the report as a PDF file
and the two resulting AVI files from Questions 1 and 2.
requires: basic Matlab, 'gazebo.mat'
=======================================
Question 1: build an occupancy grid map
=======================================
Write an occupancy grid mapping algorithm that builds the map from the
perfect ground-truth localization. Some of the setup is done for you
below. The resulting map should look like "ass2_q1_soln.png". You can
watch the movie "ass2_q1_soln.mp4" to see what the entire mapping process
should look like. At the end you will save your occupancy grid map to
the file "occmap.mat" for use in Question 2 of this assignment.
Question 2: localization from an occupancy grid map using particle filter
Write a particle filter localization algorithm to localize from the laser
rangefinder readings, wheel odometry, and the occupancy grid map you
built in Question 1. We will only use two laser scan lines at the
extreme left and right of the field of view, to demonstrate that the
algorithm does not need a lot of information to localize fairly well. To
make the problem harder, the below lines add noise to the wheel odometry
and to the laser scans. You can watch the movie "ass2_q2_soln.mp4" to
see what the results should look like. The plot "ass2_q2_soln.png" shows
the errors in the estimates produced by wheel odometry alone and by the
particle filter look like as compared to ground truth; we can see that
the errors are much lower when we use the particle filter.