数据集官网:https://projects.asl.ethz.ch/datasets/doku.php?id=kmavvisualinertialdatasets

EuRoC数据集
微型飞行器(MAV)上收集的视觉惯性数据集

数据集格式
每个场景同时保存了 .bag 的 rosbag 文件和 .zip 的压缩文件,但是在国内的网络中下载 .bag 文件异常缓慢,而 .zip 更小,下载要稍快一些。而且 .zip 文件解压后的文件夹中包含了比 rosbag 更多的信息,既包括了双目的图像和 imu 信息,还有传感器安装方位和采用外部定位设备获取的姿态和位置的真值信息,对于算法初始化和后续验证算法准确性是非常必要的。

移动平台与传感器
使用的机型为:Asctec Firefly六角旋翼直升机
视觉惯性测量的传感器包括:视觉(双相机)惯性测量单元(IMU)

硬件设备

飞行器机体:AscTec Firefly

双目VIO相机:全局快门,单色,相机频率20Hz,IMU频率200Hz,具备相机和IMU的硬件(hw)同步,双目相机型号MT9V034,IMU型号ADIS16448

VICON0:维肯动作捕捉系统的配套反射标志,叫做marker

LEICA0:是激光追踪器配套的传感器棱镜,叫做prism

Leica Nova MS50: 激光追踪器,测量棱镜prism的位置,毫米精度,帧率20Hz,

Vicon motion capture system: 维肯动作捕捉系统,提供在单一坐标系下的6D位姿测量,测量方式是通过在MAV上贴上一组反射标志,帧率100Hz,毫米精度

硬件图及坐标系图
在这里插入图片描述

传感器相对位置
在这里插入图片描述在这里插入图片描述

如上图,总共框中四个传感器,对应数据集结构中cam0,cam1,imu0,leica0四个文件夹,其中prism和marker公用一个坐标系,

飞行器的Body Frame是以IMU的中心作为Body Frame的,四个文件夹所有的传感器数据都是相对于各自的传感器坐标系(Sensor Frame)的,当然IMU的Sensor Frame就是飞行器的Body Frame

在每个传感器文件夹里配套一个senor.yaml文件,描述了该传感器相对于Body坐标系的坐标变换情况,以及传感器内参。

上图的相机现在能拍到我们,这个图画的可能不太对,IMU坐标原点实际上在两个相机后面,如下图:
在这里插入图片描述注意:
body到cam0的刚体变换矩阵,实际上这个刚体变换矩阵的(0,3),(1,3),(2,3)这三项的值分别为:cam0的坐标原点在body坐标系中的坐标。

groundtruth采集
采用以下传感器采集6自由度的运动与结构
1)Leica MS50 激光跟踪扫描仪:毫米精确定位
LEICA0:激光追踪器配套的传感器棱镜【prism】
Leica Nova MS50: 激光追踪器,测量棱镜prism的位置,毫米精度,帧率20Hz,

2)Vicon 6D运动捕捉系统
VICON0:维肯动作捕捉系统的配套反射标志,叫做marker
Vicon motion capture system: 维肯动作捕捉系统,提供在单一坐标系下的6D位姿测量,测量方式是通过在MAV上贴上一组反射标志,帧率100Hz,毫米精度

视觉惯性传感器与groundtruth数据之间,通过外部校准使得时间戳同步。

数据集内包含的数据:
· 视觉惯性传感器:
双相机 (Aptina MT9V034型号 全局快门, 单色, 相机频率20Hz)
MEMS IMU (ADIS16448型号 , 测量角速度与加速度,测量频率200 Hz)
(以视觉图像的时间戳为基准进行对齐)
· groundtruth
Vicon运动捕捉系统【marker】(6D姿势)
Leica MS50激光跟踪仪(3D位置)
Leica MS50 3D 结构扫描
· 传感器校准
相机内参
相机-IMU外参

数据集文件结构
例如: 文件名MH_01_easy [工厂场景]

 ——mav0
      — cam0
        data :图像文件
        data.csv :图像时间戳
        sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】
      — cam1
        data :图像文件
        data.csv :图像时间戳
        sensor.yaml : 相机参数【内参fu,fv,cu,cv、外参T_BS(相机相对于b系的位姿)、畸变系数】
      — imu0
        data.csv : imu测量数据【时间戳、角速度xyz、加速度xyz】
        sensor.yaml : imu参数【外参T_BS、惯性传感器噪声模型以及噪声参数】
      — leica0
        data.csv : leica测量数据【时间戳、prism的3D位置】
        sensor.yaml : imu参数【外参T_BS】
      — state_groundtruth_estimae0**
        data.csv :地面真实数据【时间戳、3D位置、姿态四元数、速度、ba、bg】
        sensor.yaml :

在每个传感器文件夹里配一个senor.yaml文件,记录传感器相对于Body坐标系的坐标变换,以及传感器自身参数信息

groundtruth输出格式

18位时间戳

timestamp

p代表position,指的是MAV的空间3D坐标,RS代表这个坐标是在R坐标系的值,也就是LEICA位姿跟踪系统坐标系下测到的值,S指的是原来的值是从Sensor坐标系下得到的,后来又变换到了R坐标系。R可能代表LEICA坐标系,x代表这是3D位置的x轴方向上的真值。单位位米

p_RS_R_x [m]
p_RS_R_y [m]
p_RS_R_z [m]

q代表quaternion四元数,表达了MAV的朝向信息,RS代表是在R坐标系下测到的朝向信息,但是实际上最开始是在Sensor坐标系下的朝向,后来只不过被变换到了R坐标系下,w为四元数的实部,xyz为虚部

q_RS_w []
q_RS_x []
q_RS_y []
q_RS_z []

v代表这是MAV的速度信息,而且是在R坐标系下的速度信息,单位m/s

v_RS_R_x [m s^-1]
v_RS_R_y [m s^-1]
v_RS_R_z [m s^-1]

w代表这是MAV在R坐标系下的角速度信息,单位rad/s

b_w_RS_S_x [rad s^-1]
b_w_RS_S_y [rad s^-1]
b_w_RS_S_z [rad s^-1]

a代表这是MAV在R坐标系下的线加速度信息,单位m/s^2

b_a_RS_S_x [m s^-2]
b_a_RS_S_y [m s^-2]
b_a_RS_S_z [m s^-2]

EuRoC数据集的使用
EuRoC数据集可用于视觉算法、视觉惯性算法的仿真测试
在VIO算法中涉及到很多坐标系的转换、在精度测量过程中也需要进行统一坐标系

(1)传感器数据的读取
以相机图像与imu测量作为算法输入,首先就是要进行数据读取、将输入输出模块化
(2)建立统一坐标系
传感器放置于统一平台上,但每个传感器都有其各自的坐标系,索性EuRoC中给出了所有传感器相对于机体body系的相对位移(sensor.yaml文件中的T_BS),因此可以将各传感器的位姿数据统一到统一坐标系下,但实际使用中需要根据代码情况灵活运用。
(3)坐标系变换:
下标表示形式【 矩阵坐标系之间的变换矩阵的下标采用双字母进行标注】
如:旋转矩阵R_BC,表示从c系旋转到b系的变换阵

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐