Code Monkey home page Code Monkey logo

ground_vio's Introduction

Ground-vision toolkit

A toolkit for ground feature processing, inverse perspective mapping (IPM) and so on, which is applied in our preprint Ground-VIO.

News

  • [2023/07/11] - Initial release of code and dataset.

Introduction

This toolkit fully utilizes the camera-ground geometry for accurate ground feature tracking. In the preprint, we verify that the estimation of vehicle states, the calibration of camera-ground geometry and stable feature tracking could be leveraged in a monocular visual-inertial estimator.

Dataset

This repo also provides the urban road visual-inertial dataset used in Ground-VIO.

The dataset contains both Carla simulated data sequences (S-A, S-B) and real-world data squences (R-A, R-B, R-C, R-D, R-E and R-F). The detail information is listed below. For real-world data sequences, the GT poses are obtained from the forward-and-backward smoothed solution of PPK/tactical-grade IMU integration.

Simulation Data (Carla)

Sequence Date Length Sensors Features Image
S-A - 110 s IMU/Camera/Semantic Urban road
S-B - 135 s IMU/Camera/Semantic Urban road

Real-World Data

Sequence Date Length Sensors Features Image
R-A 2022/10/12 180 s IMU/Camera Urban road
R-B 2022/10/12 180 s IMU/Camera Urban road
R-C 2022/10/12 180 s IMU/Camera Urban road
R-D 2022/10/12 180 s IMU/Camera Urban road
R-E 2022/10/12 270 s IMU/Camera Highway
R-F 2022/10/12 270 s IMU/Camera Highway

Dataset is available at OneDrive.

Dependencies

The dependencies include Eigen and OpenCV. We use the camodocal project to handle camera models, while we modify it to a minimal version which doesn't need Ceres.

Getting Started

The project could be built either with or without ROS.

Building with ROS

Follow the steps to build the project in a ROS workspace

mkdir catkin_ws
mkdir catkin_ws/src
cd catkin_ws/src
git clone https://github.com/GREAT-WHU/gv_tools
cd ..
catkin_make

To run the ground tracker node, following

source devel/setup.bash
roslaunch gv_tools track_carla_example.launch

and a rviz viewer would be simultaneously launched.

Then, play the data bag in another terminal

rosbag play s_a.bag

Building without ROS

To build the project just as a plain CMake project

git clone https://github.com/GREAT-WHU/gv_tools
cd gv_tools
mkdir build && cd build
cmake ..
make -j8

Run the example track_dataset following

./build/track_dataset ./config/realworld/tracker.yaml DATASET_DIR/data_r_a/cam0/ DATASET_DIR/data_r_a/stamp.txt DATASET_DIR/data_r_a/gt_pose.txt 

Acknowledgements

The toolkit is developed by GREAT (GNSS+ REsearch, Application and Teaching) Group, School of Geodesy and Geomatics, Wuhan University.

image

Thanks to VINS-Fusion for excellent open-source codes. Thanks to msckf-vio for inspring grid-based feature extraction method.

Credit / Licensing

@article{zhou2023groundvio,
  title={Ground-VIO: Monocular Visual-Inertial Odometry with Online Calibration of Camera-Ground Geometric Parameters},
  author={Yuxuan Zhou, Xingxing Li, Shengyu Li, Xuanbin Wang, Zhiheng Shen},
  journal={arXiv preprint arXiv:arXiv:2306.08341},
  year={2023}
}

The codebase and documentation is licensed under the GNU General Public License v3 (GPL-3).

ground_vio's People

Contributors

zhoutangtang avatar yaoli1992 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.