我做了4个实验
(1)一个是刚接触就按照github教程把例子照样来了一遍,标定了给定数据集的单目相机
(2)另一个是使用这个工具标定我手上的Davis 240c的相机
(3)第三个实验是标定Davis 240cIMU
(4)最后一个是标定Davis 240C的的相机与IMU外参数T。
下面分为(1)(2)(3)(4)共4个部分进行,大部分都是截图的形式展示:
(1)样例部分:
先打开roscore:
rosore
下载他们提供的rosbag,并回放数据:
查看话题并同时看看类型:
在标定之前,文件夹中的文件:
下面进行标定:
标定完成后,生成了一些pdf文件,以及相机参数:
下面使用这个程序,进行标定自己的摄像头和IMU信息
(2)标定部分:
设备DAVIS 240C
下载标定板:https://github.com/ethz-asl/kalibr/wiki/calibration-targets
打印下来,我测量得到的a=2.1cm=0.021m b=0.6cm=0.006m,b/a=0.285714
更改yaml文件对应的参数
打开DVS驱动,然后查看话题名字:
录制数据包:
使用throttle节点进行修改发布的频率:
录制数据包:
录制好了,下面就开始标定相机:
很快,就弄好了,先把几个图放出来:
看看结果文件吧:
现在已经完成了相机部分的标定。接下来就是相机和IMU一起标定的实验。
(3)相机和IMU一起标定
这个正好与我之前做过的一个实验内容一致,只不过这一篇文章中使用的是仿真的数据,但是现在我需要使用真实的数据。
由于IMU需要静止采集大概2个小时,所以昨天晚上已经采集了数据。
采集数据命令:
rosbag record /dvs/imu -O dvs_imu.bag
现在,打开
roscore
然后,回放IMU数据:
rosbag play -r 200 dvs_imu.bag
同时打开IMU的标定程序:
roslaunch imu_utils wy.launch
其中,wy.launch文件内容:(就是copy的A3.launch文件,只不过更改了话题名字)
最终生成的IMU是:
现在按照这个结果,以github上给出的形式,制作一个IMU的yaml文件:
(4),现在我已经完成了DAVIS 240C的相机标定,IMU数据标定,最后一个就是标定IMU与相机之间的外参。
现在还需要录制一个数据集,我是按照YouTube上面的方式进行的三维运动,前后,左右,上下,随机画8这种顺序进行的。
制作好rosbag制作好,之后,就可以开始标定了:
现在只需要等待结果啦,出来后,再次更新。
==结果已经出来了,可是在优化部分出错了,现在根据提示,修改了时间的参数。跑一下需要大概二十个小时,所以,还是需要等待结果。
=======================更新2019-07-11
果然,更改了时间的参数后,就得到了结果,这里给出一张结果图:
下面是命令行全部的输出内容: