在《 搭建ORB_SLAM3在Linux下的编译和运行环境 》这篇博文的最后
运行了开源ORB_SLAM3算法 和 开源数据集"Vicon Room 1 01":
kmavvisualinertialdatasets – ASL Datasets
现在就以"Vicon Room 1 01" 数据集为例
解析一个标准VIO设备和SLAM3算法的数据流(DataFlow)
进一步了解VIO设备和SLAM3算法的运行机制
1.VIO DataFlow Overview
废话不多说,上图上注解:
图解:
(1).本图示是一个标准VIO(视觉惯性里程计/视觉惯性系统)的数据传输流程(DataFlow)
(2).双目Camera + IMU + 6DoF,是一个十分标准/典型的VIO
(3).6DOF即为SLAM
(4).SLAM输入(Input):单/双Camera + IMU
(5).SLAM输出(OutPut): TUM格式的位姿数据(Pose)
(6).位姿(Pose):位置(3D坐标)+姿态(3D旋转角)
(6).TUM格式Pose:{时间戳,坐标,四元数}/{Timestamp,x,y,z,qx,qy,qz,qw}
(7).IMU输入频率:最高能达到1000Hz
(8).6DOF输出频率:受限于Camera数据输入频率(30Hz),也只有30Hz
(9).6DOF输出30HZ的Pose数据后,可以再和1000Hz的IMU数据做插值提频和位姿预测
(10).Pose插值提频:理论上最高能提到和IMU频率一样,达到1000Hz
(11).插值提频和位姿预测在一个VIO系统中不是必须的
(12).提频和预测后的Pose会存放在一块缓存中,上层需要Pose时申请获取
2.SLAM数据集:Overview
开源数据集"Vicon Room 1 01",上图:
Mav0:Micro Air Vehicles(微型飞行器),VIO设备可以看作是一个微型飞行器。
Cam0/Cam1:设备运行过程中,双目Tracking Camera采集的图像数据
IMU:设备运行的IMU数据
Pointcloud:设备运行过程中生成的点云信息
State_groundtruth_estimate:动捕系统测出的GT值(真值/地面实况),也是最精准的位姿值
Vicon:动捕系统中用于定位的反射标志的位置
3.SLAM数据集:Camera
Cam0数据信息,mav0/cam0/data.csv:
其中记录了图像的时间戳和文件名:
mav0/cam0/data 中的图像:
SLAM的tracking camera都是mono黑白的,分辨率是640x480
4.SLAM数据集:IMU
R:测试这个开源数据集的LEICA动捕系统坐标系
S:Sensor坐标系
RS:指原始的值是从Sensor坐标系下测到的,后来转变为R坐标系的值
w代表mav在R坐标系下的角速度信息,单位rad/s
•w_RS_S_x [rad s^-1]
•w_RS_S_y [rad s^-1]
•w_RS_S_z [rad s^-1]
rad是角度单位,既弧度
弧度等于角度对应的圆弧长度除以半径
a代表这是MAV在R坐标系下的线加速度信息,单位m/s^2
•a_RS_S_x [m s^-2]
•a_RS_S_y [m s^-2]
•a_RS_S_z [m s^-2]
5.SLAM数据集:PointCloud
点云特征点保存的具体信息有:
(1).x, y, z 点的坐标
(2).Intensity 点的色彩强度
(3).R,G,B 都是0
色彩强度(intensity)示例图:
6.SLAM数据集:Ground truth
Groundtruth(地面实况):动捕系统测出来的精准的mav位姿信息,也称GT值
Groundtruth释义:
R/S/RS,在前文中已注解,再简略复述一次:
RS表示,值是在Sensor坐标系下的测到,然后被变换到了R坐标系下
p:position,空间3D坐标,x代表这是3D位置的x轴方向上的值。[m]单位米
•p_RS_R_x [m]
•p_RS_R_y [m]
•p_RS_R_z [m]
q代表quaternion四元数,表达了MAV的朝向信息,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]
(1).Groundtruth:动捕系统测出来的精准的mav位姿信息,也称GT值
(2).SLAM计算得到的原始位姿数据是与GT值格式相同的EuRoc数据集,每一行都包含了时间戳在内的17个信息。
(3).EuRoc格式数据不能直接被SDK,上层应用以及PC端的轨迹绘制工具EVO等直接使用,需要转换成TUM数据格式
(4).SLAM在输出位姿信息时,需要在内部做一次EuRoc到TUM格式转换
TUM数据格式: (timestamp ,tx ,ty ,tz ,qx ,qy ,qz ,qw)
例如:1317354879.544785976 , 0.33350 , -0.00480 , -0.07558 , -0.49915 , 0.50408 , -0.49682 , 0.49992
7.SLAM数据集:动捕系统
本文中多次提到了动捕系统,标识角度信息的四元数,反光标识等
下面就通过几个图示展示下动捕系统:
(1).动捕系统图解,捕捉到的数据类型,欧拉角图解:
(2).动捕系统各组件:
(3).动捕系统摄像头、贴在被测试物体上的反光标识等: