Update Project 2: Localization.

Fix bugs in sensor model autograder tests. Specifically, the probability table
was being normalized along the wrong axis.

Add test suite for particle initializer. Add new tests to catch resampling
errors earlier.

Fix small issue in sensor model likelihood plot that affected some maps. Add new
small map to help with sensor model tuning.

Reduce excessive locking in particle filter, motion model, and sensor model.
2 jobs for main in 8 minutes and 52 seconds (queued for 1 second)
Name Stage Failure
failed
test_packages Test
  >>>

Summary: 72 tests, 6 errors, 34 failures, 0 skipped
Uploading artifacts for failed job
Uploading artifacts...
/builds/cse478/21sp/mushr478/.workspaces/**/test_results/**/*.xml: found 23 matching files and directories

Uploading artifacts as "junit" to coordinator... ok
id=1284059 responseStatus=201 Created token=P3xsd1Bj
Cleaning up file based variables
ERROR: Job failed: exit code 1
failed
lint Test
$ pip3 -q install flake8 pep8-naming typing
$ python3 -m flake8
./localization/src/localization/particle_filter.py:44:9: F841 local variable 'n_particles' is assigned to but never used
./localization/src/localization/particle_filter.py:156:9: E303 too many blank lines (2)
./localization/src/localization/particle_filter.py:369:1: W391 blank line at end of file
./localization/src/localization/resampler.py:4:1: F401 'numpy as np' imported but unused
./localization/src/localization/motion_model.py:92:9: F841 local variable 'n_particles' is assigned to but never used
Cleaning up file based variables
ERROR: Job failed: exit code 1