Skip to content

ashishd/lightweight_vio

 
 

Repository files navigation

Lightweight Stereo VIO

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.

License

This project is licensed under the 🚀MIT License🚀 - see the LICENSE file for details.

Demo

Stereo VIO Demo

Installation

📋 Installation Guide - Complete installation instructions for both Docker and native builds

Dataset Download

📁 Dataset Download Guide - Dataset download and preparation

Running the Application

🚀 Running Examples - Usage examples

Performance Analysis and Evaluation

📊 Performance Analysis Guide - Comprehensive performance evaluation and benchmarking

Project Structure

The source code is organized into the following directories:

  • app/: Main application entry points
  • src/:
    • database/: Data structures for Frame (including IMU data), MapPoint, and Feature
    • processing/: Core VIO modules, including Estimator, FeatureTracker, IMUHandler, and Optimizer
    • optimization/: Ceres Solver cost functions for visual reprojection errors and IMU pre-integration constraints
    • viewer/: Pangolin-based visualization
    • util/: Utility functions for configuration and data loading
  • thirdparty/: External libraries (Ceres, Pangolin, Sophus, spdlog)
  • config/: Configuration files for VO and VIO modes
  • docs/: Detailed documentation guides

Contributing

Contributions are welcome! Please feel free to submit issues and pull requests.

References

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}
}

About

Lightweight Stereo VIO

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 96.2%
  • Shell 2.9%
  • Other 0.9%