This release is dedicated to distributing bag files used for tuning the localization system, with a focus on configuring and evaluating the Extended Kalman Filter (EKF). The aim of this release is to enable users to utilize these bag files for verification of the EKF configuration and for other relevant applications. All files are licensed under the same Apache Licence, Version 2.0, as the sirius_calibration
package.
Experiments Overview
The experiments were designed to collect localization data from all available sources on the robot while it traversed terrain in an environment similar to what it might encounter during ERC or URC competitions. All experiments lasted 10 minutes and were conducted using the marsyard2022
map from the leo_gazebo_worlds
package. Two types of experiments were conducted:
- Manual traversal: The robot was manually operated by a user.
- Random traversal: The robot's control commands were randomly generated by a script, with velocities drawn from a uniform distribution within the robot's achievable range. Command intervals were also randomized, drawn from a uniform distribution between 0 and 10 seconds.
Experiments Objectives
A total of five experiments were conducted: three manual traversals and two random traversals.
- First manual and first random traversal were utilized to derive covariance matrices for IMU orientation and marker-based localization for EKF usage. Additionally, the data from these traversals was used to tune wheel odometry by fitting the best values for
wheel_separation_coefficient
andwheel_radius_coefficient
parameters of thediff_drive_controller
. - Second manual traversal aimed to determine the covariance matrix for wheel odometry after tuning. This data was also used to manually optimize
sensor_threshold
parameters for wheel odometry and marker-based localization. - Third manual and second random traversal served as the final evaluation of the localization system (Extended Kalman Filter localization).
Content of the Release
The dataset includes bag files and YAML files for each experiment, organized in the following directory structure:
manual_traversal
1
- Data for the first experiment with manual traversal2
- Data for the second experiment with manual traversal3
- Data for the third experiment with manual traversal
random_traversal
1
- Data for the first experiment with random traversal2
- Data for the second experiment with random traversal
Each folder contains the following files:
all.bag
- Records all the robot's localization sources, which are:- Satellite Navigation
- Inertial Odometry
- Marker-based Localization
- Wheel Odometry
all.yaml
- Contains metrics for all localization topics inall.bag
kalman_gps.bag
- Records localization from the Extended Kalman Filter, excluding fusion of marker-based localization. The first minute of the experiment was removed from the recording to prevent skewing metrics with large discrepancies between initial estimates and the actual robot state.kalman_gps.yaml
- Contains metrics for all localization topics inkalman_gps.bag
kalman_markers.bag
- Records localization from the Extended Kalman Filter, excluding fusion of satellite navigation. As withkalman_gps.bag
, the first minute of the experiment was removed from the recording.kalman_markers.yaml
- Contains metrics for all localization topics inkalman_markers.bag
All metrics were calculated using the localization_evaluation.py
script from the sirius_navigation
package. The following metrics are provided:
- Root Mean Square Error (RMSE)
- Error Mean
- Error Variance
- Max Error
- Error Circular Mean
- Error Circular Variance
- Linear Fit Scale
- Linear Fit Bias
The last two parameters are calculated by fitting a first-order polynomial to the data using the least square method. The main purpose was to tune wheel odometry utilizing the linear fit scale value.