概括
用于室内MAV的双目+IMU数据集,包含两个场景
- 苏黎世联邦理工学院ETH的一个machine hall
- 普通房间
硬件设备
- 飞行器机体: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坐标系中的坐标。
旋转坐标系变换约定
注意
R_WC //意思是将一个在C坐标系下表示的点的坐标,变换成以W坐标系下表示的点的坐标
表示将所有Sensor坐标系下的向量,变为以Body Frame坐标系下的向量。
数据集结构
- mav0
- cam0
- data dir
- data.csv
- sensor.yaml
- cam1
- 上同
- imu0
- data.csv
- sensor.yaml
- leica0
- data.csv
- sensor.yaml
- state_groundtruth_estimate0
- data.csv
- sensor.yaml
- body.yaml
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]
解释ROBSLAM中StereoEuRoC数据集的Right.P
Right.P[1][4]第1行第4列的元素是-47.90,这是因为这个投影矩阵能将以左目为原点的世界坐标系中的点投影到右目的像素坐标系上,所以左目在右目坐标系上平移向量朝向X轴的负方向,故是负值