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}
}
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
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
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 |