Skip to content
/ rio Public

Graph-based, sparse radar-inertial odometry estimation

License

Notifications You must be signed in to change notification settings

ethz-asl/rio

Repository files navigation

rio

Graph-based, sparse radar-inertial odometry m-estimation with barometer support and zero-velocity tracking.

Paper: https://arxiv.org/pdf/2408.05764

@inproceedings{girod2024brio,
author = {Rik Girod and Marco Hauswirth and Patrick Pfreundschuh and Mariano Biasio and Roland Siegwart},
title = {A robust baro-radar-inertial odometry m-estimator for multicopter navigation in cities and forests},
booktitle={IEEE Int. Conf. Multisensor Fusion Integration Intell. Syst.},
year={2024}
}

Installation

Install ROS noetic.

sudo apt install git build-essential python3-rosdep python3-catkin-tools ros-noetic-rqt-multiplot -y
mkdir catkin_ws
cd catkin_ws
mkdir src
catkin init
cd src
git clone https://github.com/ethz-asl/rio.git
git clone https://github.com/ethz-asl/lpp.git
git clone https://github.com/rikba/gtsam_catkin.git
cd ..
rosdep install --from-paths src --ignore-src -r -y
catkin build

Launch

Start RIO in one terminal

source ~/catkin_ws/devel/setup.bash
roslaunch rio rio.launch visualize:=true

Download an example dataset sequence.

Replay the bag

rosbag play 01_urban_night_H_raw.bag

Supported sensors

Sensor Default topic Message type Required Note
IMU /imu/data_raw sensor_msgs/Imu Yes Calibrate gyro turn-on-bias!
IMU filtered /imu/data sensor_msgs/Imu Yes for initialization
Radar /radar/cfar_detections sensor_msgs/PointCloud2 Yes
Barometer  /baro/pressure sensor_msgs/FluidPressure No Activate in cfg

Radar point cloud format, see also mav_sensors_ros.

| Field name | Size    |
| ---------- | ------- |
| x          | FLOAT32 |
| y          | FLOAT32 |
| z          | FLOAT32 |
| doppler    | FLOAT32 |
| snr        | INT16   |
| noise      | INT16   |

Dataset