Public datasets for research on state estimation based on motor angular speeds (MAS). The datasets are open-sourced as part of our T-RO publication [1]. There are 6 datasets in total, each with a specific type of motion: Hover, Forward, Lateral, Vertical, Rectangle, Loop.
The rosbags contain unsynchronized LiDAR points, MAS, measurments, IMU measurements, and raw sensor data. Ground truth is provided via RTK GPS (Emlid Reach) INT FIX solution.
If you use the datasets please cite our publication [1].
There are two types of datasets:
- raw
- raw LiDAR and IMU packets from Ouster OS0-128 LiDAR
- processed
- IMU packets are converted to
sensor_msgs/Imutopic - LiDAR packets are converted to
sensor_msgs/PointCloud2topic - points with <0.5m range are removed
- the point cloud is downsampled to 16 rows
- can be directly used in MAS-LO
- IMU packets are converted to
| Loop | Rectangle |
|---|---|
- [1] Petrlik, M.; Penicka, R.; Saska, M. Motor Angular Speed Preintegration for Multirotor UAV State Estimation, IEEE Transactions on Robotics (in review), 2024
@article{petrlik2024maslo,
author={M. Petrlik and Penicka, Robert and Saska, Martin},
journal={IEEE Transactions on Robotics},
title={{Motor Angular Speed Preintegration for Multirotor UAV State Estimation}},
year={2024},
annotation = {in review}
}- To download the datasets, run script
download_raw.shordownload_processed.sh.- Beware, the datasets can be large!
- All datasets will be downloaded into the
bag_filesdirectory.
- The ouster_ros for interpreting the Ouster OS-128 LiDAR data in the raw datasets.
- The mavros_msgs for interpreting the
mavros_msgs/ESCStatusmessages containing the MAS measurements. - The mrs_msgs for interpreting the
mrs_msgs/RtkGpsmessages containing the raw RTK data.
The ./example folder contains example tmux sessions that shows the recorded data in rviz.
Depending on whether you downloaded the raw or processed dataset, run ./example/raw/start.sh or ./example/processed/start.sh.
To change the played dataset change the DATASET variable in the beginning of the script to other dataset name.
| X500 Back | X500 Front |
|---|---|
- OS0-128 LiDAR (128 rows, 90 deg vFoV) (top-mounted):
- LiDAR packets:
/os_lidar_packetsof typeouster_ros/PacketMsg - IMU:
/os_imu_packetsof typeouster_ros/PacketMsg - use the ouster_ros to decode the packets into point cloud and IMU data (or use the processed dataset)
- LiDAR packets:
- Garmin Lidar Lite (down-facing rangefinder):
- data:
/distance_sensorof typesensor_msgs/Range
- data:
- Pixhawk4 FCU
- MAS measurements:
/pixhawk_esc_statusof typemavros_msgs/ESCStatus - IMU measurements:
/pixhawk_imuof typesensor_msgs/Imu - Magnetic field measurements:
/pixhawk_mag_fieldof typesensor_msgs/MagneticField - Barometer pressure measurements:
/pixhawk_baroof typesensor_msgs/FluidPressure
- MAS measurements:
- MRS IMU
- Measurements
/mrs_imuof typesensor_msgs/Imu - Acceleration, angular velocity (no orientation)
- Connected to camera which was not recorded
- Measurements
- Emlid Reach RTK
- Latitude, longitude, altitude measurements:
/rtk_rawof typemrs_msgs/RtkGps
- Latitude, longitude, altitude measurements:
- Fused ground truth
- More accurate:
/rtk_fused_odomof typenav_msgs/Odometry - Less accurate:
/gps_fused_odomof typenav_msgs/Odometry - GPS (RTK) fused with barometer, distance sensor, and IMU
- More accurate:
Sensor frames:
- baselink, pixhawk:
uav25/fcu - os_points:
uav25/os_lidar - os_imu:
uav25/os_imu - mrs_imu:
uav25/vio_imu - distance sensor:
uav25/garmin
uav25/fcu
├───> uav25/os_sensor
│ ├───> uav25/os_lidar
│ └───> uav25/os_imu
├───> uav25/garmin
├───> uav25/vio_imu
If you get warning messages about missing transforms, there is a static transform publisher in launch/static_tfs.launch that will publish the necessary static TFs.