Assigned: Thurs, May 9.
Part I due: Wed, May 23.
Part II due: Wed, May 30.
Here is the new binary particleFilterDemo. Put this file into the cse473-project2/bin directory. After that, the demo-laser, demo-sonar, and demo scripts should work.
Here is an update of the script class.
The change is that now the script acts like a real robot, i.e. it considers the time it takes to integrate the sensor information. You can switch between real time and non realtime (the current script class) by setting _realTimeMode(false) in script.cc. Please compile and try it out.
You should do the following experiments:
Determine the quality of localization for different sizes of sample sets. To do so, you have to do several test runs with the floor data (about 10 for each sample set size). The test runs for each sample set size should differ in the start points for script data. This start point can be set in ParticleFilter.cc when the script is initialized. To set the start point of the script to 200 seconds, you would have to do:
_script = new script( scriptFile, refPosFile, useSonar, useLaser, 0.0, integrationThreshold, 200, 2, SCRIPT_TYPE_NOT_SET);
Next, use a new floor script. This data log is the same as the old one, it's just longer. Again, you should use the scripts with different start points (e.g. 0 seconds, 200 seconds, 400 seconds, 800 seconds). You should do this for different sample set sizes (1000 - 50000). For each run, you should compute the average distance of all samples from the reference position stored in _referencePosition of the sensor scans. Averaging over all runs and all time points gives a pretty good estimate for how good this sample set size works. The result should be a graph plotting average distance against number of samples. Please provide the mean and standard deviation of your results.
You should generate this graph for sonar and laser and discuss your findings.
For the best sample set size determined above, you should generate an additional graph. This time, the graph should plot the average distance against time since the start of the localization runs (again averaged over the different runs for this sample set size). This should give a high error in the beginning and the error should go down over time as the robot determines its position. In addition to computing the average distance from the reference position, you should compute the distance between your mostlikely state estimate and the reference position. You should generate a graph plotting distance of most likely position from reference position against time since start of the test run (i.e., you have to average over the different test runs for this sample set size). You should also describe how you determine the most likely position.
Read Sections 17.4 and 17.5 in Russell & Norvig.
Read this paper on Monte Carlo Localization to learn how localization works.