In this project, we implement VI-SLAM (Visual-Inertial SLAM) using IMU and stereo camera data. An EKF (Extended Kalman Filter) is formulated with prediction using IMU data and SE(3) motion dynamics and correction using landmark observations from stereo camera. Landmark map and vehicle trajectory are estimated jointly.
To set up the required environment and install the necessary packages, execute the following commands:
conda create -n <ENV_NAME> python=3.8
conda activate <ENV_NAME>
pip install -r requirements.txtThe project is organized as follows:
├── data
│ ├── 03.npz
│ └── 10.npz
├── EKF.py
├── VI_SLAM.py
├── utils.py
└── main.py
Execute the following command to run the main program,
python3 main.py --dataset 10Additional arguments:
--dataset: two datasets03and10are available.--downsample: camera features downsampling factor (default:5)
Note: After running the script, 3 pop-up windows will sequentially in the order
- Trajecrory plot based on IMU localization (EKF prediction)
- Landmark mapping, prior and after EKF update
- VI-SLAM based trajectory and landmark mapping
