The ROS wrapper for collaborative multi sensors odometry using a hybrid SLAM-MSCKF tightly-coupled approach.
See the xWiki for more information about x_vio_ros.
This is the code for the paper Data-Efficient Collaborative Decentralized Thermal-Inertial Odometry (PDF) by Vincenzo Polizzi , Robert Hewitt, Javier Hidalgo-Carrió , Jeff Delaune and Davide Scaramuzza. For an overview of our method, check out our webpage.
If you use any of this code, please cite the following publication:
@ARTICLE{Polizzi22RAL,
author={Polizzi, Vincenzo and Hewitt, Robert and Hidalgo-Carrió, Javier and Delaune, Jeff and Scaramuzza, Davide},
journal={IEEE Robotics and Automation Letters},
title={Data-Efficient Collaborative Decentralized Thermal-Inertial Odometry},
year={2022},
volume={7},
number={4},
pages={10681-10688},
doi={10.1109/LRA.2022.3194675}
}
Clone, build and source the ROS package
$ mkdir -p x_vio_ws/src && cd x_vio_ws/src
$ git clone [email protected]:jpl-x/x_multi_agent_ros.git
$ cd ..
$ catkin build x_vio_ros -DCMAKE_BUILD_TYPE=Release
$ source devel/setup.bash
Create the ROS workspace as in the wiki then run:
- Single VIO visual data
$ roslaunch x_vio_ros vio.launch
- Multi VIO visual data
$ roslaunch x_vio_ros vio_multi.launch nr:=N # N is the number of UAVs you want to launch
- Single VIO thermal data
$ roslaunch x_vio_ros vio_multi_thermal.launch nr:=1
- Multiple VIO thermal data
$ roslaunch x_vio_ros vio_multi_thermal.launch nr:=2
The visualization is made out of the RViz and rqt tools from the ROS software stack.
Supported visualization for two UAVs:
$ roscd x_vio_ros/scripts/ && ./load_gui_duo.sh
Download the bag files from here.
- Run the thermal dataset.
$ rosbag play mars_yard_duo_tf.bag --clock -s 9 -u 41 -r 0.1
- Inveraray castle parallel with four UAVs
$ rosbag play inveraray_around_4.bag --clock /UAV0/cam0/image_raw:=/UAV0/image_raw /UAV0/imu0:=/UAV0/imu /UAV0/ground_truth_pose:=/UAV0/true_pose /UAV1/cam0/image_raw:=/UAV1/image_raw /UAV1/imu0:=/UAV1/imu /UAV1/ground_truth_pose:=/UAV1/true_pose /UAV2/cam0/image_raw:=/UAV2/image_raw /UAV2/imu0:=/UAV2/imu /UAV2/ground_truth_pose:=/UAV2/true_pose /UAV3/cam0/image_raw:=/UAV3/image_raw /UAV3/imu0:=/UAV3/imu /UAV3/ground_truth_pose:=/UAV3/true_pose -r 0.05
- Inveraray castle around with four UAVs
$ rosbag play inveraray_parallel.bag --clock /UAV0/cam0/image_raw:=/UAV0/image_raw /UAV0/imu0:=/UAV0/imu /UAV0/ground_truth_pose:=/UAV0/true_pose /UAV1/cam0/image_raw:=/UAV1/image_raw /UAV1/imu0:=/UAV1/imu /UAV1/ground_truth_pose:=/UAV1/true_pose /UAV2/cam0/image_raw:=/UAV2/image_raw /UAV2/imu0:=/UAV2/imu /UAV2/ground_truth_pose:=/UAV2/true_pose /UAV3/cam0/image_raw:=/UAV3/image_raw /UAV3/imu0:=/UAV3/imu /UAV3/ground_truth_pose:=/UAV3/true_pose -r 0.05
The research was funded by the Combat Capabilities Development Command Soldier
Center and Army Research Laboratory. This research was carried out at the Jet
Propulsion Laboratory, California Institute of Technology, and was sponsored
by the JPL Visiting Student Research Program (JVSRP) and the National
Aeronautics and Space Administration (80NM0018D0004).