This is a lightweight stereo visual-inertial odometry (VIO) project designed for real-time performance. It utilizes feature tracking, IMU pre-integration, sliding window optimization with Ceres Solver, and Pangolin for visualization.
This project is licensed under the 🚀MIT License🚀 - see the LICENSE file for details.
📋 Installation Guide - Complete installation instructions for both Docker and native builds
📁 Dataset Download Guide - Dataset download and preparation
🚀 Running Examples - Usage examples
📊 Performance Analysis Guide - Comprehensive performance evaluation and benchmarking
The source code is organized into the following directories:
app/: Main application entry pointssrc/:database/: Data structures forFrame(including IMU data),MapPoint, andFeatureprocessing/: Core VIO modules, includingEstimator,FeatureTracker,IMUHandler, andOptimizeroptimization/: Ceres Solver cost functions for visual reprojection errors and IMU pre-integration constraintsviewer/: Pangolin-based visualizationutil/: Utility functions for configuration and data loading
thirdparty/: External libraries (Ceres, Pangolin, Sophus, spdlog)config/: Configuration files for VO and VIO modesdocs/: Detailed documentation guides
Contributions are welcome! Please feel free to submit issues and pull requests.
This project's IMU pre-integration implementation is based on the following paper:
@article{forster2016manifold,
author = {Forster, Christian and Carlone, Luca and Dellaert, Frank and Scaramuzza, Davide},
year = {2016},
month = {08},
title = {On-Manifold Preintegration for Real-Time Visual-Inertial Odometry},
volume = {33},
journal = {IEEE Transactions on Robotics},
doi = {10.1109/TRO.2016.2597321}
}