Skip to content

OpenCV 4, ROS Noetic, and Ceres adaptation of VINS-Fusion. An optimization-based multi-sensor state estimator

License

ARSControl/VINS-Fusion

 
 

Repository files navigation

VINS-Fusion (Fork)

Code adapted for OpenCV 4, Ceres 2.1, and ROS Noetic!

This repository is a fork of VINS-Fusion, adapted and tested for NVIDIA Jetson Nano running Ubuntu 20.04 with ROS Noetic.
The main modifications include support for modern dependencies and integration with Intel RealSense cameras via a custom fork of the realsense-ros wrapper.


VINS-Fusion Overview

VINS-Fusion is an optimization-based multi-sensor state estimator for accurate self-localization in autonomous systems (drones, cars, AR/VR).
It extends VINS-Mono and supports multiple visual-inertial configurations:

  • Stereo cameras
  • Mono camera + IMU
  • Stereo cameras + IMU
  • Experimental GPS fusion

Features:

  • Multiple sensor setups (stereo/mono+IMU)
  • Online spatial calibration (camera–IMU extrinsics)
  • Online temporal calibration (camera–IMU time offset)
  • Visual loop closure

Requirements

This fork has been tested on:

Other dependencies follow the original VINS-Fusion requirements.

Installation

  1. Clone this repository:
cd ~/catkin_ws/src
git clone https://github.com/ARSControl/VINS-Fusion.git
  1. Install Ceres 2.1

  2. Install the realsense-ros custom wrapper

cd ~/catkin_ws/src
git https://github.com/ARSControl/realsense-ros.git
  1. Install cv_bridge
cd ~/catkin_ws/src
git https://github.com/ros-perception/vision_opencv.git
  1. Build
cd ~/catkin_ws/src
catkin build

Usage

The system is typically split between the companion computer (Jetson Nano), which handles the sensor processing and VINS estimator, and the host PC, which visualizes the results in RViz.

On the Jetson Nano (companion computer)

Launch the VINS estimator with a RealSense camera:

roslaunch vins_estimator vins.launch

On the Host PC

roslaunch vins_estimator rs_vins.launch

You can also play back datasets on the Jetson Nano (see the original VINS-Fusion datasets page) while monitoring results on the host PC with RViz.

Notes

  • Optimized for Jetson Nano (4GB RAM). For better performance, adjust the number of feature points in config/*.yaml.

  • Works best with the forked RealSense wrapper due to compatibility fixes.

  • Tested with Intel RealSense D435i camera.

Acknowledgment

Contacts

For questions, issues, or collaboration related to this fork:

Feel free to open an issue or pull request in this repository.

About

OpenCV 4, ROS Noetic, and Ceres adaptation of VINS-Fusion. An optimization-based multi-sensor state estimator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 95.5%
  • CMake 3.3%
  • Other 1.2%