SLAM Course

GitHub Repo

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.