GithubHelp home page GithubHelp logo

codingonion / violet Goto Github PK

View Code? Open in Web Editor NEW

This project forked from pekkaran/violet

1.0 1.0 0.0 336 KB

A toy stereo visual inertial odometry (VIO) system

License: GNU General Public License v3.0

Python 9.65% Rust 90.35%

violet's Introduction

Violet

A toy stereo visual inertial odometry (VIO) system. Built upon HybVIO, which was built upon PIVO, which was built upon MSCKF by Mourikis and Roumeliotis.

Status

The implementation of the VIO is not yet complete, but some of the sub-components have been tested to work:

  • Data input:
    • IMU parsing
    • Video decoding
    • Calibration parsing
  • Stereo feature tracker:
    • Feature detection: FAST corners
    • Optical flow: Pyramidal Lucas-Kanade
    • Track spatial distribution enhancement
  • Odometry: Extended Kalman Filter (EKF)
    • Prediction step (the dynamic model)
    • Update step
    • Stationarity update
    • Visual update
  • Camera models: Pinhole with radial distortion
  • Visualizations
    • Various 2D visualizations
    • VIO output track visualization, 3D

Goals:

  • Do not depend on any computer vision libraries such as OpenCV, implement all the relevant algorithms from scratch.
  • Demonstrate plausibility and advantages of using Rust over C++ for this kind of real-time sensor fusion applications. Consequently a goal is to make the implementation run relatively fast.

Non-goals:

  • Simultaneous Localization and Mapping (SLAM).
  • State-of-the-art accuracy and robustness. For a commercial-grade solution, please see Spectacular AI.

Obtaining test data

The input data format supported by the VIO is the same as described here, except that the calibration is read from a JSON format. A conversion for the EuRoC dataset exists:

  • Install ffmpeg
  • Install Python dependencies, eg by pip install pyyaml numpy
  • Run download and conversion, eg by: python scripts/download_euroc.py --fast --case v1-01-easy

The converted datasets are saved under data/benchmark/. Note that about 10 GB of space is required for converting all the EuRoC datasets.

To implement conversion for other datasets, please examine format of the converted EuRoC datasets.

Running the VIO

Install Rust, see for example the official get started guide. Clone this git repository and run from its root:

cargo run -- -i data/benchmark/euroc/v1-01-easy --show-tracks

See all the available visualizations and options with:

cargo run -- --help

License

Licensed under GPLv3. Note that the algorithms are heavily based on HybVIO which is licensed under GPLv3.

violet's People

Contributors

pekkaran avatar

Stargazers

 avatar

Watchers

 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.