关于TUM的视觉惯性数据集 Visual-Inertial Dataset
最近想使用TUM的VIO数据集,发现网上关于它的资料比较少,大多数都是对TUM RGBD的介绍,所以将自己踩得坑记录一下,方便大家学习,有不对的地方还请指出.
资料:
TUM Visual-Inertial Dataset
具体的资料介绍,请查看官网内容,此处不在赘述.着重记录自己遇到的问题
真实轨迹
位置
每个数据集的真实轨迹都位于对应的tar文件中的dso/imu_gt.csv
格式
真实轨迹的格式为time/tx/ty/tz/qw/qx/qy/qz
,时间是ns
,
由于我想使用EVO工具来对其进行测评,而EVO不支持这种格式,所以是需要转换的.EVO支持的具体格式见使用evo工具可视化和评测SLAM算法性能.
真实轨迹解决方法:(方法比较low):
思路:通过evo_traj euroc gt_imu.csv --save_as_tum
来进行修改.
Euroc格式
timestamp,px,py,pz,qw,qx,qy,qz,vx,vy,vz,bwx,bwy,bwz,bax,bay,baz
每行17个元素,逗号隔开,时间以纳秒为单位
- 用excel首先把更改时间戳的单元格格式,全部改为数值
- 然后将列数扩展为17列.
evo_traj euroc gt_imu.csv --save_as_tum
与真实轨迹进行比较
在TUM的VIO数据集中,有很多数据集仅提供了初始和结尾部分的真实轨迹, 一开始不清楚这种情况怎么和算法结果进行比较,后来发现EVO可以只比较有真实轨迹的部分.下图是corridor4的vins-mono和真实轨迹比较结果
轨迹对比 | 结果评估 |
---|---|
相机模型的问题
官网所说的相机模型与想要用的相机模型不匹配
官网上说提供的相机模型为:pinhole和omi
但是根据这个博文SLAM 中常用的相机模型&畸变模型总结
中所说,他们对应的应该是KB模型和MEI模型. 同时通过VINS-MONO中自带的TUM的yaml文件也说明,官网所说的pinhole确实是KB模型
相机模型是由 投影模型(也就是传统意义的相机模型) 和畸变模型组成的
radtan畸变模型中,没有k1,k2,p1,p2
而是参数d0-4表示的.
在vikit(pl-svo的一个依赖库)中,使用五个参数d表示的
然后,根据其opencv中的描述
有时候会对高阶项进行省略,k456全省略了.k3有时候省略,这也就是对应的五个参数
标定自己想要的针孔模型(pinhole-radtan)
- 安装kalibr
- 官网下载TUM的相机校准数据集和对应的yaml文件
-
source 3worksapce/2kalibr_workspace/devel/setup.bash rosrun kalibr kalibr_calibrate_cameras --bag 2data/TUM/camera/dataset-calib-cam1_512_16.bag --topic /cam0/image_raw /cam1/image_raw --models pinhole-radtan pinhole-radtan --target 2data/TUM/camera/april_6x6_80x80cm.yaml
- 结果暂时还没出来,打算有了结果之后,在放入vins-mono中进行优化.后续更新