RRxIO - Robust Radar Visual/Thermal Inertial Odometry: Robust and accurate state estimation even in challenging visual conditions.

Related tags

Miscellaneous rrxio
Overview

RRxIO - Robust Radar Visual/Thermal Inertial Odometry

RRxIO offers robust and accurate state estimation even in challenging visual conditions. RRxIO combines radar ego velocity estimates and Visual Inertial Odometry (VIO) or Thermal Inertial Odometry (TIO) in a single filter by extending rovio. Thus, state estimation in challenging visual conditions (e.g. darkness, direct sunlight, fog) or challenging thermal conditions (e.g. temperature gradient poor environments or outages caused by non uniformity corrections) is possible. In addition, the drift free radar ego velocity estimates reduce scale errors and the overall accuracy as compared to monocular VIO/TIO. RRxIO runs many times faster than real-time on an Intel NUC i7 and achieves real-time on an UpCore embedded computer.

Cite

If you use RRxIO for your academic research, please cite our related paper:

@INPROCEEDINGS{DoerIros2021,
  author={Doer, Christopher and Trommer, Gert F.},
  booktitle={2021 IEEE/RSJ International Conference on Intelligent Rotots and Sytems (IROS)}, 
  title={Radar Visual Inertial Odometry and Radar Thermal Inertial Odometry: Robust Navigation even in Challenging Visual Conditions}, 
  year={2021}}

Demo Result: IRS Radar Thermal Visual Inertial Datasets IROS 2021

Motion Capture Lab (translational RMSE (ATE [m]))

image

Indoor and Outdoors (translational RMSE (ATE [m]))

image

Runtime (Real-time factor)

image

Getting Started

RRxIO depends on:

Additional dependencies are required to run the evaluation framework:

  • sudo apt-get install texlive-latex-extra texlive-fonts-recommended dvipng cm-super
  • pip2 install -U PyYAML colorama ruamel.yaml==0.15.0

The following dependencies are included via git submodules (run once upon setup: git submodule update --init --recursive):

Build in Release is highly recommended:

catkin build rrxio --cmake-args -DCMAKE_BUILD_TYPE=Release

Run Demos

Download the IRS Radar Thermal Visual Inertial Datasets IROS 2021 datasets.

Run the mocap_easy datasets with visual RRxIO:

roslaunch rrxio rrxio_visual_iros_demo.launch rosbag_dir:=<path-to-rtvi_datastets_iros_2021> rosbag:=mocap_easy

Run the outdoor_street datasets with thermal RRxIO:

roslaunch rrxio rrxio_thermal_iros_demo.launch rosbag_dir:=<path-to-rtvi_datastets_iros_2021> rosbag:=outdoor_street

Run Evaluation IRS Radar Thermal Visual Inertial Datasets IROS 2021

The evaluation script is also provided which does an extensive evaluation of RRxIO_10, RRxIO_15, RRxIO_25 on all IRS Radar Thermal Visual Inertial Datasets IROS 2021 datasets:

rosrun rrxio evaluate_iros_datasets.py <path-to-rtvi_datastets_iros_2021>

After some time, the results can be found at <path-to-rtvi_datastets_iros_2021>/results/evaluation/<10/15/25>/evaluation_full_align. These results are also shown in the table above.

Issues
  • How to start it

    How to start it

    `SUMMARY

    CLEAR PARAMETERS

    • /rrxio/

    PARAMETERS

    • /odom_to_path_rrxio_visual/filter_name: RRxIO Visual
    • /odom_to_path_rrxio_visual/topic_odom: /rrxio/rovio/odom...
    • /plot_states_uncertainty/topic_prefix: /rrxio/rovio/
    • /rosdistro: melodic
    • /rosversion: 1.14.12
    • /rrxio/N_ransac_points: 3
    • /rrxio/allowed_outlier_percentage: 0.25
    • /rrxio/azimuth_thresh_deg: 60
    • /rrxio/bag_dur: 10000
    • /rrxio/bag_start: 0
    • /rrxio/cam0_topic_name: /sensor_platform/...
    • /rrxio/cam1_topic_name: cam1_not_used
    • /rrxio/camera0_config: /home/linux/datab...
    • /rrxio/camera_frame: camera
    • /rrxio/elevation_thresh_deg: 60
    • /rrxio/filter_config: /home/linux/catki...
    • /rrxio/filter_max_z: 100
    • /rrxio/filter_min_z: -100
    • /rrxio/imu_frame: base_link
    • /rrxio/imu_topic_name: /sensor_platform/imu
    • /rrxio/inlier_thresh: 0.25
    • /rrxio/l_b_r_x: 0.0
    • /rrxio/l_b_r_y: 0.03
    • /rrxio/l_b_r_z: 0.06
    • /rrxio/max_dist: 100
    • /rrxio/max_frame_ctr: 2000000
    • /rrxio/max_r_cond: 1000
    • /rrxio/max_sigma_x: 0.5
    • /rrxio/max_sigma_y: 0.5
    • /rrxio/max_sigma_z: 0.5
    • /rrxio/min_db: 5
    • /rrxio/min_dist: 0.25
    • /rrxio/outlier_prob: 0.4
    • /rrxio/q_b_r_w: 0.00524
    • /rrxio/q_b_r_x: 0.69946
    • /rrxio/q_b_r_y: 0.71461
    • /rrxio/q_b_r_z: 0.00723
    • /rrxio/radar_velocity_correction_factor: 1.0
    • /rrxio/rosbag_filename: /home/linux/datab...
    • /rrxio/sigma_offset_radar_x: 0.1
    • /rrxio/sigma_offset_radar_y: 0.05
    • /rrxio/sigma_offset_radar_z: 0.1
    • /rrxio/sigma_v_d: 0.125
    • /rrxio/sigma_zero_velocity_x: 0.025
    • /rrxio/sigma_zero_velocity_y: 0.025
    • /rrxio/sigma_zero_velocity_z: 0.025
    • /rrxio/success_prob: 0.999999
    • /rrxio/thresh_zero_velocity: 0.05
    • /rrxio/timeshift_cam_imu: -0.004
    • /rrxio/topic_radar_scan: /sensor_platform/...
    • /rrxio/topic_radar_trigger: /sensor_platform/...
    • /rrxio/topic_vel: not_used
    • /rrxio/use_cholesky_instead_of_bdcsvd: True
    • /rrxio/use_odr: True
    • /rrxio/use_ransac: True
    • /rrxio/world_frame: odom

    NODES / odom_to_path_rrxio_visual (rrxio/odom_to_path.py) plot_states_uncertainty (rrxio/plot_states_uncertainty.py) rrxio (rrxio/rrxio_rosbag_loader_10) rviz (rviz/rviz)

    ROS_MASTER_URI=http://localhost:11311

    process[rrxio-1]: started with pid [4360] process[odom_to_path_rrxio_visual-2]: started with pid [4362] process[plot_states_uncertainty-3]: started with pid [4363] process[rviz-4]: started with pid [4364] [ INFO] [1656057227.880663612]: RRxIO started`

    Hello, i successfully run the code using roslaunch rrxio rrxio_thermal_iros_demo.launch rosbag_dir:=/home/linux/database/irs_rtvi rosbag:=outdoor_street N:=10 but nothing happened, the terminal stuck at "RRxIO started" what should i do? Did i do somthing wrong?How can i start the VIO?

    opened by BlueAkoasm 5
  • Error when using custom dataset

    Error when using custom dataset

    opened by Ericwen2001 1
Owner
Christopher Doer
Christopher Doer
Tightly coupled GNSS-Visual-Inertial system for locally smooth and globally consistent state estimation in complex environment.

GVINS GVINS: Tightly Coupled GNSS-Visual-Inertial Fusion for Smooth and Consistent State Estimation. paper link Authors: Shaozu CAO, Xiuyuan LU and Sh

HKUST Aerial Robotics Group 490 Aug 11, 2022
A Robust LiDAR-Inertial Odometry for Livox LiDAR

LIO-Livox (A Robust LiDAR-Inertial Odometry for Livox LiDAR) This respository implements a robust LiDAR-inertial odometry system for Livox LiDAR. The

livox 300 Aug 2, 2022
LVI-SAM: Tightly-coupled Lidar-Visual-Inertial Odometry via Smoothing and Mapping

LVI-SAM This repository contains code for a lidar-visual-inertial odometry and mapping system, which combines the advantages of LIO-SAM and Vins-Mono

Tixiao Shan 1k Aug 10, 2022
Continuous-Time Spline Visual-Inertial Odometry

Continuous-Time Spline Visual-Inertial Odometry Related Publications Direct Sparse Odometry, J. Engel, V. Koltun, D. Cremers, In IEEE Transactions on

Minnesota Interactive Robotics and Vision Laboratory 46 Aug 9, 2022
Visual-inertial-wheel fusion odometry, better performance in scenes with drastic changes in light

VIW-Fusion An visual-inertial-wheel fusion odometry VIW-Fusion is an optimization-based viusla-inertial-wheel fusion odometry, which is developed as a

庄庭达 189 Aug 6, 2022
Livox-Mapping - An all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR

Livox-Mapping This repository implements an all-in-one and ready-to-use LiDAR-inertial odometry system for Livox LiDAR. The system is developed based

null 208 Aug 11, 2022
A ros package for robust odometry and mapping using LiDAR with aid of different sensors

W-LOAM A ros package for robust odometry and mapping using LiDAR with aid of different sensors Demo Video https://www.bilibili.com/video/BV1Fy4y1L7kZ?

Saki-Chen 45 Jun 14, 2022
A water tank level sensor **Built With WisBlock** to detect overflow and low level conditions.

RAK12014 Laser TOF sensor coming soon WisBlock Watertank Level Sensor Watertank Overflow detection using the RAKwireless WisBlock modules. It implemen

Bernd Giesecke 3 Feb 3, 2022
Adafruit GFX compatible arduino library for using cat thermal printers with the ESP32

CatGFX This library offers a Adafruit GFX "driver" for ESP32 and the cheap cat (or rabbit?) BLE thermal printers like this one: For usage information

Claus Näveke 2 Jul 15, 2022
Phan Sang 8 Jul 30, 2022
CRC32 slice-by-16 implementation in JS with an optional native binding to speed it up even futher

CRC32 slice-by-16 implementation in JS with an optional native binding to speed it up even futher. When used with Webpack/Browserify etc, it bundles the JS version.

Mathias Buus 8 Aug 4, 2021
D2R mod generator. Provide quick tool to generate .txt files to change game balance: increase drop, monster density or even randomize items.

Diablo 2 mod generator Generator is inspired by d2modmaker. It provides fast and easy way to create mod without any modding knowledge. Features includ

Smirnov Vladimir 19 Jul 28, 2022
This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robotics and Perception Group (RPG).

rpg_svo_pro This repo includes SVO Pro which is the newest version of Semi-direct Visual Odometry (SVO) developed over the past few years at the Robot

Robotics and Perception Group 937 Aug 11, 2022
A dataset containing synchronized visual, inertial and GNSS raw measurements.

GVINS-Dataset Author/Maintainer: CAO Shaozu (shaozu.cao AT gmail.com), LU Xiuyuan (xluaj AT connect.ust.hk) This repository hosts dataset collected du

HKUST Aerial Robotics Group 104 Jul 25, 2022
Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras

Fast and Accurate Extrinsic Calibration for Multiple LiDARs and Cameras The pre-print version of our paper is available here. The pre-release code has

HKU-Mars-Lab 201 Aug 7, 2022
Fuses IMU readings with a complementary filter to achieve accurate pitch and roll readings.

SimpleFusion A library that fuses accelerometer and gyroscope readings quickly and easily with a complementary filter. Overview This library combines

Sean Boerhout 6 Aug 12, 2022
Solve 20 simple math questions and see how accurate/fast you are!

Math-Quiz Solve 20 simple math questions and see how accurate/fast you are! Want to try? Clone this repository $ git clone https://github.com/Mini-War

Mini Ware 8 Apr 10, 2022
BLEND: A Fast, Memory-Efficient, and Accurate Mechanism to Find Fuzzy Seed Matches

BLEND is a mechanism that can efficiently find fuzzy seed matches between sequences to significantly improve the performance and accuracy while reducing the memory space usage of two important applications: 1) finding overlapping reads and 2) read mapping.

SAFARI Research Group at ETH Zurich and Carnegie Mellon University 11 Jul 29, 2022
Accurate C port of AHX's Amiga replayer

ahx2play Aims to be an accurate C port of AHX 2.3d-sp3's internal replayer. The project contains example code in the ahx2play folder on how to interfa

Olav Sørensen 10 Aug 16, 2022