DOI: 10.5281/zenodo.13150844
title: AAU_Multi_Agent_UVDAR_Dataset

description: AAU_Multi_Agent_UVDAR_Dataset

## Introduction 

The aim of the dataset is to collect relative position measurements (with the origin in the body of the vehicle) between a set of UAVs with precise groundtruthing through a motion capture system for evaluations.

This dataset was recorded in the [Dronehall](https://www.aau.at/en/research/research-profile/the-drone-hall-at-the-university-of-klagenfurt/) of the University Klagenfurt, with three autonomous [F450](https://github.com/ctu-mrs/mrs_uav_system?tab=readme-ov-file#unmanned-aerial-vehicles) unmanned aerial vehicles (UAVs) from [Multi-robot Systems (MRS) group](http://mrs.felk.cvut.cz/) of the [Czech Technical University in Prague](https://www.cvut.cz/en).

The UAVs were equipped with the [UVDAR system](https://github.com/ctu-mrs/uvdar_core), a planar scanning LIDAR sensor (RPLIDAR A3), a laser range finder (Garmin LidarLite V3) and a Pixhawk 6C flight controller.The UVDAR system is a visual mutual relative localization (position and orientation) system for cooperating micro-scale UAVs based on ultraviolet-sensitive cameras and blinking ultraviolet markers.Note: the UVDAR system was configured to provide relative position information only, thus the estimated orientation is wrong and set to identity! To assess the measurements obtained from the UVDAR system, a [relative pose evaluation python package] was implemented.

To evaluate the measurments recorded, execute the [eval.sh](./tools/eval.sh) script in the tools folder, which creates a folder `eval` in the root of that directory with various plots and statistics for each sequence listed below. Note that the package needs to be installed first, see below. 

A hybrid dataset with a synthetic Gaussian measurement noise for the UVDAR measurement can be generated with the [add_noise.sh](./tools/add_noise.sh) script.

Each sequence contains the recored bag file in the root, the ground truth pose of the UAVs in a CSV file, and image of the 3D trajectory and a subfolder `real` (orientation measurements set to identity) and `hybrid` (syntehthic UVDAR measurmeents with a standard deviation of 0.2m for the position and 0.2 rad for the orientation). Different synthetic datasets can be generated on demand. 

## Setup

```pip install --upgrade  cnspy-relative-pose-evaluation```

## Sequences



 ## Contained topics:

```topics:      /tf                                      300628 msgs    : tf2_msgs/TFMessage                                  /tf_static                                   24 msgs    : tf2_msgs/TFMessage                                  /uav10/data_handler/uvdar_fcu               321 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav10/hector_mapping/slam_out_pose        1692 msgs    : geometry_msgs/PoseStamped                           /uav10/hw_api/distance_sensor             11189 msgs    : sensor_msgs/Range                                   /uav10/hw_api/status                      26451 msgs    : mrs_msgs/HwApiStatus                                /uav10/mavros/distance_sensor/garmin      11188 msgs    : sensor_msgs/Range                                   /uav10/mavros/extended_state                132 msgs    : mavros_msgs/ExtendedState                           /uav10/mavros/imu/data                    13200 msgs    : sensor_msgs/Imu                                     /uav10/mavros/imu/data_raw                13198 msgs    : sensor_msgs/Imu                                     /uav10/mavros/imu/mag                     11472 msgs    : sensor_msgs/MagneticField                           /uav10/mavros/imu/static_pressure          2452 msgs    : sensor_msgs/FluidPressure                           /uav10/mavros/imu/temperature_imu          2452 msgs    : sensor_msgs/Temperature                             /uav10/mavros/state                       13198 msgs    : mavros_msgs/State                                   /uav10/mrs_uav_status/uav_status            132 msgs    : mrs_msgs/UavStatus                                  /uav10/mrs_uav_status/uav_status_short     1188 msgs    : mrs_msgs/UavStatusShort                             /uav10/rplidar/scan_raw                    1697 msgs    : sensor_msgs/LaserScan                               /uav10/uvdar/measuredPosesL                 170 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav10/uvdar/measuredPosesR                 245 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav10/vrpn_client/estimated_odometry      7252 msgs    : nav_msgs/Odometry                                   /uav10/vrpn_client/estimated_transform     7252 msgs    : geometry_msgs/TransformStamped                      /uav10/vrpn_client/raw_pose                7252 msgs    : geometry_msgs/PoseStamped                           /uav10/vrpn_client/raw_transform           7252 msgs    : geometry_msgs/TransformStamped                      /uav11/data_handler/uvdar_fcu               466 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav11/hector_mapping/slam_out_pose        1662 msgs    : geometry_msgs/PoseStamped                           /uav11/hw_api/distance_sensor             11167 msgs    : sensor_msgs/Range                                   /uav11/hw_api/status                      26409 msgs    : mrs_msgs/HwApiStatus                                /uav11/mavros/distance_sensor/garmin      11170 msgs    : sensor_msgs/Range                                   /uav11/mavros/extended_state                132 msgs    : mavros_msgs/ExtendedState                           /uav11/mavros/imu/data                    13183 msgs    : sensor_msgs/Imu                                     /uav11/mavros/imu/data_raw                13184 msgs    : sensor_msgs/Imu                                     /uav11/mavros/imu/mag                     11422 msgs    : sensor_msgs/MagneticField                           /uav11/mavros/imu/static_pressure          2452 msgs    : sensor_msgs/FluidPressure                           /uav11/mavros/imu/temperature_imu          2452 msgs    : sensor_msgs/Temperature                             /uav11/mavros/state                       13184 msgs    : mavros_msgs/State                                   /uav11/mrs_uav_status/uav_status            132 msgs    : mrs_msgs/UavStatus                                  /uav11/mrs_uav_status/uav_status_short     1187 msgs    : mrs_msgs/UavStatusShort                             /uav11/rplidar/scan_raw                    1665 msgs    : sensor_msgs/LaserScan                               /uav11/uvdar/measuredPosesL                 388 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav11/uvdar/measuredPosesR                 339 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav11/vrpn_client/estimated_odometry     15840 msgs    : nav_msgs/Odometry                                   /uav11/vrpn_client/estimated_transform    15840 msgs    : geometry_msgs/TransformStamped                      /uav11/vrpn_client/raw_pose               15840 msgs    : geometry_msgs/PoseStamped                           /uav11/vrpn_client/raw_transform          15840 msgs    : geometry_msgs/TransformStamped                      /uav12/data_handler/uvdar_fcu              2743 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav12/hector_mapping/slam_out_pose        1591 msgs    : geometry_msgs/PoseStamped                           /uav12/hw_api/distance_sensor             11104 msgs    : sensor_msgs/Range                                   /uav12/hw_api/status                      26236 msgs    : mrs_msgs/HwApiStatus                                /uav12/mavros/distance_sensor/garmin      11108 msgs    : sensor_msgs/Range                                   /uav12/mavros/extended_state                131 msgs    : mavros_msgs/ExtendedState                           /uav12/mavros/imu/data                    13097 msgs    : sensor_msgs/Imu                                     /uav12/mavros/imu/data_raw                13097 msgs    : sensor_msgs/Imu                                     /uav12/mavros/imu/mag                     11347 msgs    : sensor_msgs/MagneticField                           /uav12/mavros/imu/static_pressure          2441 msgs    : sensor_msgs/FluidPressure                           /uav12/mavros/imu/temperature_imu          2441 msgs    : sensor_msgs/Temperature                             /uav12/mavros/state                       13099 msgs    : mavros_msgs/State                                   /uav12/mrs_uav_status/uav_status            131 msgs    : mrs_msgs/UavStatus                                  /uav12/mrs_uav_status/uav_status_short     1179 msgs    : mrs_msgs/UavStatusShort                             /uav12/rplidar/scan_raw                    1595 msgs    : sensor_msgs/LaserScan                               /uav12/uvdar/measuredPosesL                2121 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav12/uvdar/measuredPosesR                2151 msgs    : mrs_msgs/PoseWithCovarianceArrayStamped             /uav12/vrpn_client/estimated_odometry      5808 msgs    : nav_msgs/Odometry                                   /uav12/vrpn_client/estimated_transform     5809 msgs    : geometry_msgs/TransformStamped                      /uav12/vrpn_client/raw_pose                5809 msgs    : geometry_msgs/PoseStamped                           /uav12/vrpn_client/raw_transform           5806 msgs    : geometry_msgs/TransformStamped

types:       geometry_msgs/PoseStamped               [d3812c3cbc69362b77dc0b19b345f8f5]             geometry_msgs/TransformStamped          [b5764a33bfeb3588febc2682852579b0]             mavros_msgs/ExtendedState               [ae780b1800fe17b917369d21b90058bd]             mavros_msgs/State                       [65cd0a9fff993b062b91e354554ec7e9]             mrs_msgs/HwApiStatus                    [8161228afbd5dfe19fab9500c96bba39]             mrs_msgs/PoseWithCovarianceArrayStamped [3dc32bc5b82667712bb3f8fdf00477a4]             mrs_msgs/UavStatus                      [91f20f62a88b2befe33c455c114fee1e]             mrs_msgs/UavStatusShort                 [799c7489ad9979eb43be3571ef53b456]             nav_msgs/Odometry                       [cd5e73d190d741a2f92e81eda573aca7]             sensor_msgs/FluidPressure               [804dc5cea1c5306d6a2eb80b9833befe]             sensor_msgs/Imu                         [6a62c6daae103f4ff57a132d6f95cec2]             sensor_msgs/LaserScan                   [90c7ef2dc6895d81024acba2ac42f369]             sensor_msgs/MagneticField               [2f3b0b43eed0c9501de0fa3ff89a45aa]             sensor_msgs/Range                       [c005c34273dc426c67a020a87bc24148]             sensor_msgs/Temperature                 [ff71b307acdbe7c871a5a6d7ed359100]             tf2_msgs/TFMessage                      [94810edda583a504dfda3829e70d7eec]```

## Credit

This code was written by the maintainer with the [Control of Networked System (CNS)](https://www.aau.at/en/smart-systems-technologies/control-of-networked-systems/), University of Klagenfurt, Klagenfurt, Austria.The dataset was recorded in collaboration with the [Multi-robot Systems (MRS) group](http://mrs.felk.cvut.cz/) of the [Czech Technical University in Prague](https://www.cvut.cz/en).

* [Roland Jung](https://www.aau.at/team/jung-roland/)* [Jiří Horyna ](https://mrs.fel.cvut.cz/members/phdstudents/jiri-horyna)* [Martin Saska](https://mrs.fel.cvut.cz/members/martin-saska)* [Stephan Weiss](https://www.aau.at/team/weiss-stephan-michael/)

## License

This software is made available to the public to use (_source-available_), licensed under the terms of the BSD-2-Clause-License with no commercial use allowed, the full terms of which are made available in the `LICENSE` file. No license in patents is granted.

Usage for academic purposes

If you use this software in an academic research setting, please cite thecorresponding [academic paper] and consult the `LICENSE` file for a detailed explanation.

```latex@inproceedings{jung_uvdarbdataset_2024,   author   = {Roland Jung, Jiri Horyna, Martin Saska, and Stephan Weiss},   journal  = {tbd},   doi      = {tbd},   title    = {tbd},   year     = {2024},}```