This project was part of the final project for the simultaneous localization and mapping (SLAM) course at BYU.
For this project, myself and 3 other students implemented the iSAM algorithm1 from scratch, in Python. We chose to do this in a simplistic 2D environment where the robot drove around in a rectangle observing landmarks.
My specific contributions
I implemented the incremental QR factorization module, as well as integration of all parts into the main simulator.
At each batch update step of the algorithm, we used numpy
’s QR factorization method.
Each incremental update between batch updates, however, we needed to perform an incremental QR factorization of the problem using Givens rotations.
Performance
Our version of iSAM seemed to work fairly well. It was not optimized for speed, and thus ran fairly slowly.