Repository Summary
Description | Sparsify and Densify Visual Inertial Odometry |
Checkout URI | https://github.com/isae-pnx/sadvio.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-03-28 |
Dev Status | UNKNOWN |
CI status | No Continuous Integration |
Released | UNRELEASED |
Tags | state-estimation visual-inertial-odometry visual-odometry |
Contributing |
Help Wanted (0)
Good First Issues (0) Pull Requests to Review (0) |
Packages
Name | Version |
---|---|
isae_slam_ros | 0.0.0 |
README
SaDVIO
This library provide a modular C++ framework dedicated on research about Visual Odometry (VO) and Visual Inertial Odometry (VIO). It also contains implementations of research works done at ISAE such as: factor graph sparsification, traversability estimation with 3D mesh and non overlapping field of view VO. This version is compatible with the middleware ROS2.
Installation
Here are the dependencies:
- OpenCV for image processing
- CERES a non linear solver from google
- Eigen a linera algebra library
- yaml-cpp to parse config files
You can either run this code with ROS2, the famous robotic middleware, or without ROS2. For now it has been tested with Galactic and Humble. A few changes are needed for Jazzy but only in the ros folder.
ROS2 install
Once these are all installed, use the following commands to build:
cd ~/your_ws/src
git clone https://github.com/ISAE-PNX/SaDVIO.git
cd ..
colcon build --symlink-install --packages-select isae_slam_ros
Then launch the program with:
ros2 launch isae_slam_ros isae_slam.xml
You can then play a rosbag with the topics specified in the config files.
Classic install
Go in the cpp folder and build it
cd ~/your_ws/src
git clone https://github.com/ISAE-PNX/SaDVIO.git
cd SaDVIO/cpp
mkdir build
cd build
cmake ..
make
You can then run this executable, adding the folder of the config files and the folder of your dataset:
./isaeslam "/ur/path/SaDVIO/ros/config" "/ur/path/V1_01_easy/mav0"
Your dataset must be at the EUROC dataset format and you must edit properly the files in the config folder.
Docker install
We have included a docker installation of SaDVIO in the docker folder. Simply run the run.sh script to build and run the image. A sequence of the EUROC dataset is downloaded for a first try. To run it, do the following:
cd SaDVIO/cpp/build/
./isaeslam "/root/SaDVIO/ros/config" "/root/V1_01_easy/mav0/"
Disclaimer
A few functionnalities are currently being tested, their performances are not guaranteed and were not presented in any paper:
- The lines as features and landmarks
- The mono and monovio modes work decently
Please consider citing one of the related work if you use our system in your research:
@inproceedings{sparsifDebeunne,
author={Debeunne, César and Vallvé, Joan and Torres, Alex and Vivet, Damien},
booktitle={2023 IEEE/RSJ International Conference on Intelligent Robots and Systems },
title={Fast Bi-Monocular Visual Odometry Using Factor Graph Sparsification},
year={2023},
pages={10716-10722},
}
@inproceedings{debeunne2023non,
title={Non-Recovering Field-of-View Imaging-Based SLAM for Lava Tubes Exploration},
author={Debeunne, C{\'e}sar and Vivet, Damien and Torres, Alex},
booktitle={17th Symposium on Advanced Space Technologies in Robotics and Automation (ASTRA)},
year={2023}
}
@article{debeunne2024sadvio,
title={SaDVIO: Sparsify and Densify VIO for UGV Traversability Estimation},
author={Debeunne, C{\'e}sar and Torres, Alex and Vivet, Damien},
journal={IEEE Robotics and Automation Letters},
year={2024}
}