Lab 11: Localization (real)
Lab Background
The purpose of this week's lab was to perform grid-based localization on our real robot using a provided Bayes Filter implementation.
Pre-Lab
To set up for this week's lab, I followed the lab instructions to copy over my simulation base code from Lab 10 and added the BLE connection modules from previous labs to integrate Bluetooth control of my physical robot into my simulation code.
Lab Tasks
I first began by running the provided Bayes Filter implementation in lab11_sim.ipynb
and recorded the plotted results.

I then implemented perform_observation_loop()
.
This function obtains 18 evenly spaced observations from the real robot, and returns a numpy array containing the recorded measurements.
To reuse functions that I had already created in previous labs, I implemented perform_observation_loop()
such that it called the BLE commands established in Lab 9 to engage the PID loop, cycle through setpoints in 20 degree increments,
and append the recorded measurements onto Python lists.
I then ran the provided Bayes filter update and prediction steps from the Jupyter notebook, and obtained the following results:
(-3,-2)
(5,3)
(5,-3)
(0,3)
Collaboration Statement
I referenced Nila Narayan's website for this lab.
Discussion
To Professor Helbling and all the TA staff that made this course possible, thank you! This course has been one of my favorite (and most challenging) classes that I have ever taken at Cornell, and it was truly a joy to be a part of it.