Tightly-Coupled Radar-Visual-Inertial Odometry
This repository contains the implementation of the work Tightly-Coupled Radar-Visual-Inertial Odometry, accepted for publication at the 2026 European Control Conference (ECC). The method augments visual-inertial odometry (VIO) to showcase more robust performance in environments with visual degradation through the radar fusion (via Doppler updates and radar-based feature depth intialization). The method can operate in either vision- or radar-only modes, thus making it also robust to temporary dropout from either exteroceptive sensor. This method is developed over ROVIO (IROS 2015, IJRR 2017).
For more information, please see our preprint.
Assuming you have already installed ros-noetic-desktop-full, you can build RadVIO by
mkdir -p catkin_ws/src
cd catkin_ws
catkin config --cmake-args -DCMAKE_BUILD_TYPE=Release
cd src
git clone https://github.com/ethz-asl/kindr.git
git clone https://github.com/ntnu-arl/radvio.git --recursive
rosdep install --from-paths src --ignore-src -r -y
catkin build radvioExemplary launch files for running the node and running from the bag can be seen in launch/
- Camera matrix and distortion parameters should be provided by a yaml file
- Both camera and radar extrinsic transforms should be provided in
cfg/radvio.info- For low-excitation trajectories, it can be helpful to disable the camera extrinsic estimation (
doVECalibration) - The radar extrinsics can also be enabled/disabled (
doRECalibration), however the method performance is sensitive to poor radar extrinsics
- For low-excitation trajectories, it can be helpful to disable the camera extrinsic estimation (
- Doppler measurement update (
DopplerUpdate)- Assuming this is triggered, such that
chirp_duration_scan be set to accurately reference the mid-chirp timestamp
- Assuming this is triggered, such that
- Radar depth initialization (
ImgUpdate/Radar)- Depending on the density/accuracy of the radar point cloud, can be configured appropriately or disabled entirely (
doRadarInitialization) - Performance can be sensitive to initialization covariance (
featureCovScaleFactor)
- Depending on the density/accuracy of the radar point cloud, can be configured appropriately or disabled entirely (
- We thank M. Bloesch, M. Burri, S. Omari, M. Hutter, and R. Siegwart for ROVIO (IROS 2015, IJRR 2017), upon which this work is based.
- We thank Nikhil Khedekar for initial support with voxel mapping.
If you use this work in your research, please cite the following publication:
@misc{nissov2026radvio,
title={Tightly-Coupled Radar-Visual-Inertial Odometry},
author={Morten Nissov and Mohit Singh and Kostas Alexis},
year=2026,
eprint={2603.23052},
archivePrefix={arXiv},
primaryClass={cs.RO},
}