关于TUM的视觉惯性数据集 Visual-Inertial Dataset

关于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个元素,逗号隔开,时间以纳秒为单位

  1. 用excel首先把更改时间戳的单元格格式,全部改为数值
  2. 然后将列数扩展为17列.
  3. evo_traj euroc gt_imu.csv  --save_as_tum

与真实轨迹进行比较

在TUM的VIO数据集中,有很多数据集仅提供了初始和结尾部分的真实轨迹, 一开始不清楚这种情况怎么和算法结果进行比较,后来发现EVO可以只比较有真实轨迹的部分.下图是corridor4的vins-mono和真实轨迹比较结果

轨迹对比 结果评估
关于TUM的视觉惯性数据集 Visual-Inertial Dataset_第1张图片 关于TUM的视觉惯性数据集 Visual-Inertial Dataset_第2张图片

相机模型的问题

官网所说的相机模型与想要用的相机模型不匹配

官网上说提供的相机模型为:pinhole和omi
关于TUM的视觉惯性数据集 Visual-Inertial Dataset_第3张图片
但是根据这个博文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)

  1. 安装kalibr
  2. 官网下载TUM的相机校准数据集和对应的yaml文件
  3. 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
    
  4. 结果暂时还没出来,打算有了结果之后,在放入vins-mono中进行优化.后续更新

标定结果的误差很大!!
以上做法不可取,相机模型不可随意更改

你可能感兴趣的:(slam开源软件学习)