SLAM Course
Skills Used: Mapping (Occupancy Grids), Probability Theory, Particle Filter Localization, EKF/UKF SLAM, briefly covered graph based methods (gtsam), Python, Numba, numpy
This graduate level course focused on Occupancy Grids for the Mapping and filter-based methods (Particle Filters and Kalman filtering) for Localization. It was a fun course, and it helped me to understand autonomous robots better. See below results of the projects that I completed in this course (note: boiler plate code was given for visualization and reading data, but I implemented the actual algorithms listed)
Occupancy Grid Mapping
Here, given laser range data from a mobile robot, the task was to recreate the environment that the robot traversed. I implemented the inverse sensor model to determine the likelihood that a cell was occupied or empty.
Particle Filter Localization
For the particle filter I used the same environment that I had already mapped with the Occupancy grid, but now performing localization. As you can see below, there was a major difference when using a warm-start particle to help the algorithm converge vs no warm start.
Particle Filter with warm start
Particle Filter without warm start
EKF Localization
Implementing a EKF for localization in a simple Robosoccer environment
UKF Localization
Implementing a UKF for localization in a simple Robosoccer environment
EKF SLAM - Nearest Neighbor
Implementing EKF SLAM using nearest neighbor for data association
EKF SLAM - Double Gated Nearest Neighbor
Implementing EKF SLAM using double gated nearest neighbor for data association
Victoria Park SLAM
For this project I implemented EKF SLAM on the Victoria Park dataset. This problem became much more difficult for the algorithm to solve due to the number of landmarks. I was able to optimize my implementation and achieve faster than real time SLAM.