EuRoC数据集简介与使用

EuRoC Dataset数据集.md

综述

用于室内MAV的双目+IMU数据集,包含两个场景

  1. 苏黎世联邦理工学院ETH的一个machine hall
  2. 普通房间

硬件设备

  • 飞行器机体: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坐标系中的坐标。

旋转坐标系变换约定

设相机坐标系 p c p_{c} pc下的向量 ( c 1 , c 2 , c 3 ) T (c1,c2,c3)^T (c1,c2,c3)T变换为世界坐标系 p w p_{w} pw下的向量 ( w 1 , w 2 , w 3 ) T (w1,w2,w3)^T (w1,w2,w3)T
则公式为:
P w = R W C ∗ P c P_{w}=R_{WC}*P_{c} Pw=RWCPc
注意

R_WC  //意思是将一个在C坐标系下表示的点的坐标,变换成以W坐标系下表示的点的坐标

所以 T B S T_{BS} TBS表示将所有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轴的负方向,故是负值

### 运行OrbSLAM3处理立体视觉数据集使用OrbSLAM3运行立体(stereo)相机的数据集,需按照以下方法操作并确保环境配置正确。 #### 配置文件设置 OrbSLAM3的配置文件通常存储在`config`目录下。对于立体相机模式,需要编辑对应的`.yaml`文件来定义相机参数和其他必要选项。具体来说: - **Camera Parameters**: 在`CameraParameters.yml`中指定相机内参矩阵、畸变系数以及其他相关属性[^5]。 - **Vocabulary File Path**: 确认词汇表路径指向正确的二进制文件位置,例如 `ORBSLAM_VOCABULARY=/path/to/ORBvoc.txt`[^4]。 以下是典型的`stereo.yaml`模板结构: ```yaml # Vocabulary path (relative to the current folder or absolute) VocFile: ../Vocabulary/ORBvoc.txt # Camera calibration and distortion parameters (OpenCV) Camera.K: [fx, 0, cx, 0, fy, cy, 0, 0, 1] Camera.DistCoef: [k1, k2, p1, p2, k3] # Image dimensions Camera.width: 640 Camera.height: 480 # Camera frames per second Camera.fps: 30 # Stereo baseline multiplied by fx Camera.bf: 79.5 # ORB Extractor Parameters ORBextractor.nFeatures: 1200 ORBextractor.scaleFactor: 1.2 ORBextractor.nLevels: 8 ORBextractor.iniThFAST: 20 ORBextractor.minThFAST: 7 ``` 上述参数中的`K`表示相机内参矩阵,而`DistCoef`则描述径向和切向畸变项[^3]。 #### 数据加载方式 如果采用ROS节点形式加载数据,则可以通过命令启动rosbag回放工具,并映射话题名称至OrbSLAM3期望的标准输入格式。例如: ```bash rosbag play --pause MH_02_easy.bag \ /cam0/image_raw:=/camera/left/image_raw \ /cam1/image_raw:=/camera/right/image_raw ``` 此脚本将Euroc MAV数据集中左视图右视图分别发布到对应主题上供算法订阅[^2]。 另外需要注意的是,当利用实际硬件设备采集图像流时,应调整程序逻辑适配实时传输特性;而对于离线序列测试情况,则只需保证时间戳同步即可正常工作。 #### 初始化过程改进 针对某些复杂环境下可能出现初始化失败的问题,新版框架引入了一种更加快捷精准的方法替代传统方案——即通过融合加速度计陀螺仪读数辅助估计初始位姿关系从而加速收敛速度同时提升鲁棒性表现。 最后提醒一点,在执行之前务必确认所有依赖库均已成功编译链接无误后再尝试正式运行整个流程! ---
评论 21
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值