This project provides a Python reimplementation of the Stereo Multi-State Constraint Kalman Filter (S-MSCKF) for visual-inertial odometry. This implementation has been inspired from the C++ implementation by KumarRobotics/msckf_vio.
MSCKF (Multi-State Constraint Kalman Filter) is an Extended Kalman Filter (EKF) based, tightly-coupled visual-inertial odometry algorithm. S-MSCKF is the stereo version of MSCKF. This algorithm is designed to provide robust and accurate visual-inertial odometry, especially for applications requiring fast and autonomous flight.
- Robust Stereo Visual Inertial Odometry for Fast Autonomous Flight by Ke Sun et al. (2017)
- A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation by Anastasios I. Mourikis et al. (2006)
- Python 3.6+
- numpy
- scipy
- cv2
- pangolin (optional, for trajectory/poses visualization)
- This project utilizes the EuRoC MAV dataset, which contains visual-inertial datasets collected onboard a Micro Aerial Vehicle (MAV). The datasets include stereo images, synchronized IMU measurements, and ground-truth data.
- EuRoC MAV: The dataset can be found here.
-
To run the visual-inertial odometry algorithm with visualization, use the following command:
python vio.py --view --path path/to/your/EuRoC_MAV_dataset/MH_01_easy
-
For running the algorithm without visualization, use:
python vio.py --path path/to/your/EuRoC_MAV_dataset/MH_01_easy
-
Final Output