Giter Site home page Giter Site logo

cggos / vins_mono_cg Goto Github PK

View Code? Open in Web Editor NEW
114.0 5.0 46.0 946 KB

Modified version of VINS-Mono (commit 9e657be)

License: GNU General Public License v3.0

CMake 7.37% C++ 91.96% Dockerfile 0.20% Makefile 0.05% Shell 0.17% C 0.24%
visual-inertial-odometry vins slam

vins_mono_cg's Introduction

vins_mono_cg

Modified version of VINS-Mono (commit 9e657be on Jan 9, 2019), a Robust and Versatile Monocular Visual-Inertial State Estimator.

VINS-Mono uses an optimization-based sliding window formulation for providing high-accuracy visual-inertial odometry. It features efficient IMU pre-integration with bias correction, automatic estimator initialization, online extrinsic calibration, failure detection and recovery, loop detection, and global pose graph optimization, map merge, pose graph reuse, online temporal calibration, rolling shutter support.

[1] VINS-Mono: A Robust and Versatile Monocular Visual-Inertial State Estimator
[2] Online Temporal Calibration for Monocular Visual-Inertial Systems


Prerequisites

tested on Ubuntu 16.04 (ROS Kinetic) and Ubuntu 18.04 (ROS Melodic)

Build

catkin_make -j2
# or
catkin build

Run

with Dataset

  • EuRoC MAV dataset MH_01_easy.bag
    roslaunch vins_estimator euroc.launch
    rosbag play <YOUR_PATH_TO_DATASET>/MH_01_easy.bag

with live camera

with Docker

  • make sure ROS and docker are installed on your machine
  • add your account to docker group by sudo usermod -aG docker $YOUR_USER_NAME
  • run
    cd docker
    make build
    ./run.sh LAUNCH_FILE_NAME   # ./run.sh euroc.launch
  • modified the code, simply run ./run.sh LAUNCH_FILE_NAME after your changes

ROS Graph

  • rqt_graph

Evaluation

Evaluate the output trajectory vins_result_loop.tum with ground truth trajectory in the standard dataset (e.g. for EuRoC MAV dataset, the ground truth file is <sequence>/mav0/state_groundtruth_estimate0/data.csv ) using the evo tools.

  1. copy the ground truth file data.csv to the directory as same to vins_result_loop.tum

  2. evaluate (APE & RPE)

    evo_traj euroc data.csv --save_as_tum # --> data.tum
    evo_ape tum data.tum vins_result_loop.tum --align --plot
    evo_rpe tum data.tum vins_result_loop.tum --align --plot
    
    # or
    
    evo_ape euroc data.csv vins_result_loop.tum --align --plot
    evo_rpe euroc data.csv vins_result_loop.tum --align --plot
  3. get results

    APE w.r.t. translation part (m)
    (with SE(3) Umeyama alignment)
         max	0.157368
        mean	0.081223
      median	0.076672
         min	0.021434
        rmse	0.086200
         sse	7.809322
         std	0.028865
    

Tutorial

Related Code

vins_mono_cg's People

Contributors

cggos avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.