目的:本文旨在使用Kalibr实现小觅双目相机和IMU的联合标定

Kalibr 是一个工具箱(a toolbox)。
The camera-imu calibration tool (其中的一个工具)estimates the spatial and temporal parameters of a camera system with respect to an intrinsically calibrated IMU.
The calibration parameters (待标定参数被估计出来) are estimated in a full batch optimization using splines to model the pose of the system.

因此,Kalibr正是我们所需要的!
获得Kalibr工具箱有两种方式:1.从源码编译;2.CDE包。
1.源码编译:它依赖于ROS indigo和一个catkin工作空间。这种方式的标定有两个优势:比CDE包更快、提供所有(tools)工具。
2.CDE包:所有依赖都被打包在了包里,无需任何其他依赖。但Camera focusCalibration validator工具无法使用(因为依赖ROS)。
先选择2!。

一、kalibr的Camera-IMU calibration

下 载网址见参考[1]

1.如何使用它?

1)预备项
IMU的内参(intrinsic parameters)如:标度因数、轴非正交角、非线性度等需要提前标定好,并将这些参数应用于原始数据。
此外需要创建一个IMU的配置YAML文件,其中包含加速度计和陀螺仪的以下统计属性:

  • 噪声强度(noise density)
  • 偏值随机游走(bias random walk)

2)预备项2
创建一个ROS包,包里记录原始的图像流。
具体方法或通过直接录制(recording)来自于ROS传感器的流,或使用图像文件列表上的bagcreater脚本和包含IMU测量值的CSV文件(后一种是指本地保存有许多张图片,用他们创建一个bag文件)。
标定目标(the calibration target,即打印的A4纸图案)是固定的,camera-imu系统在该图案之前移动来激发所有IMU轴。同样重要的是,确保该图案的良好的均匀的照明(good and even illumination)以及保证相机快门时间低来避免过度的运动模糊。
已经验证过,相机以20Hz,IMU以100Hz频率采集数据,可以得到很好的结果。

今天晚上的目标:
1:使用提供的数据跑一下程序(以完成证明CDE包没有问题)
2!录制一个bag!!
首先,运行起来小觅相机的驱动,使其将Camera和IMU的数据以topic的形式发布出来。具体使用如下命令:

roslaunch mynt_eye_ros_wrapper display.launch

然后,降低采样频率到4Hz,参考文献[2]。具体使用如下命令:

rosrun topic_tools throttle messages /mynteye/left/image_raw 4.0 /left
rosrun topic_tools throttle messages /mynteye/right/image_raw 4.0 /right

【注】:该指令并非小觅相机库中的函数,而是ROS中的。就效果来看,有点类似于订阅了/mynteye/left/image_raw,然后将采样频率降到4Hz,并降低采样频率后的图像数据发布新的名为/left的topic。

最后,使用rosbag录制感兴趣的三个话题!

rosbag record -O stereo_imu_calibra.bag /left /right /mynteye/imu/data_raw

【注】:录制好的bag可以使用rqt进行可视化查看。具体操作如下:
roscore,然后运行rqt,菜单栏Plugins->Logging->Bag,右键View->image即可。

进行纯相机标定的命令如下:

./kalibr_calibrate_cameras --target dynamic/april_6x6.yaml --bag dynamic/stereo_imu_calibra.bag --models pinhole-radtan pinhole-radtan --topic /left /right

记录了2小时的IMU数据,接下来使用Allan方差进行分析。

3)开始标定
使用如下命令执行(以后续例程中的命令为例):
./kalibr_calibrate_imu_camera --target dynamic/april_6x6.yaml --bag dynamic/dynamic.bag --cam camchain-homechangshendeskkalibr-cdedynamicdynamic.yaml --imu dynamic/imu_adis16448.yaml
【注】:CDE版和源码编译版命令略有不同。
其中,参数的含义:

  • --bag包含相机图像数据和IMU数据的ROS包;
  • --cam保存相机系统的内参和外参校准参数的文件(intrinsic and extrinsic calibration parameters)。可以在这里使用multiple-camera-calibration tool标定的结果,因此文件名那么长!(详见第二大节);
  • --imu保存IMU的统计特性和话题名称(the IMU statistics and the IMU’s topic)的文件;
  • --target保存目标图案尺寸信息的文件。

4)输出
标定会产生如下输出文件:
– report-imucam-%BAGNAME%.pdf
– results-imucam-%BAGNAME%.txt
– camchain-imucam-%BAGNAME%.yaml

2. 使用样例数据集的例子下载解压数据集。

存档中将会包含.bag包,标定目标和IMU配置文件。使用如下命令进行标定:kalibr_calibrate_imu_camera --target april_6x6.yaml --cam camchain.yaml --imu imu_adis16448.yaml --bag dynamic.bag --bag-from-to 5 45
【注】:因为在数据集的开头和结尾(拿起/放下期间)存在有抖动,只有5~45之间的数据被使用。

二、Kalibr的Multiple camera calibration

multiple camera calibration工具能够估计出一个多相机系统的内参和外参(the intrinsic and extrinsic parameters)。支持好多种模型。

1.如何使用?

1)创建一个ROS bag
该ROS bag中记录了传感器的流数据。相机系统固定,标定目标物在相机前运动以获得标定图像。推荐在采集标定数据的时候将相机流的频率降低到4Hz。这可以降低信息的冗余,同时缩短标定时间。
2)运行标定使用下面的命令运行标定:
同样使用上述样例中的数据及文件:
./kalibr_calibrate_cameras --target dynamic/april_6x6.yaml --bag dynamic/dynamic.bag --models pinhole-equi --topic /cam0/image_raw
其中,参数的含义如下:

  • --topics:bag中所有相机的话题列表,和models相对应。
  • --models:(camera/distortion)相机/畸变模型

【注】:有可能,优化刚开始运行就发散,由于焦距初值估计不好。这时,只需重新再开始标定过程。
3)输出
标定会产生如下输出文件:
– report-cam-%BAGNAME%.pdf
– results-cam-%BAGNAME%.txt
– camchain-%BAGNAME%.yaml
4)验证
如果你是从源码编译来的,那么可以使用验证(Calibration validator)工具对标定结果进行验证。

【注】:实际标定时注意两件事:
1.修改--target对应的文件中的值,为自己实际打印出来的图案的值;
2.相机/畸变模型的选择:pinhole-radtan

参考网址及文献
[1]. Kalibr官方wiki链接
[2].标定mynt小觅相机(仅双目)

小觅相机运行VINS-Fusion(二)——Camera-IMU参数标定相关推荐

  1. 小觅相机运行VINS-Fusion(一)

    写在前面的话: 1.本文基于自己的另一篇博文win10+ubuntu16.04+ROS Kinetic 2.参考[4]是一篇非常好的帖子,但由于小觅托管在github的代码在不断更新,故需在某些步骤及 ...

  2. 小觅相机深度版运行Vins-mono

    首先声明,本人自己也是slam新手,此贴只因为自己在用小觅相机深度版运行Vins的时候太过无助,所以想写个自己运行出结果的完整过程,仅供参考,如有不对之处,还望不吝指教. 我的电脑是Ubuntu16. ...

  3. SLAM学习 | 小觅相机的图像与IMU时间戳对齐分析

    SLAM学习 | 小觅相机的图像与IMU时间戳对齐分析 1 在时间轴上标注时间戳 2 时间戳对齐误差 3 通过增加IMU频率减小对齐误差 概要: 接前文--SLAM学习 | 使用小觅相机MYNTEYE ...

  4. SLAM之小觅相机跑开源方案(ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map)

    传感器: 小觅相机标准版 开源SLAM方案: ORB_SLAM2,VINS MONO,VINS FUSION,RTAB-Map 测试地点: 室内大厅(光线不均)/ 露天阳台 实现形式: 小觅相机 / ...

  5. 小觅相机D系列跑vins fusion

    有幸使用一款D系列小觅相机.今天测试了下它跑vins fusion的表现.其中有一个注意点,官方文档没有说明.这里记录一下. D系列小觅相机添加了IR散斑投射器,用来恢复没有纹理细节时的深度.这与老版 ...

  6. 小觅相机 相机以及IMU外参标定

    最近在使用IMU和双目相机进行相关VIO算法的测试,首先要对IMU和相机的外参进行标定,本文主要是对标定过程做一个全面的记录,方便总结和讨论.测试中采用的是小觅双目模组标准版S1030-IR-120/ ...

  7. 安装小觅相机(1030)驱动以及如何将Ubuntu18.04的内核降到4.15.0版本

    小觅相机驱动安装以及可能出现的问题 小觅相机的驱动安装非常的简单,因为他们的服务非常的好,还有非常完善的官网. 话不多说,小觅驱动安装链接如下: https://mynt-eye-s-sdk.read ...

  8. Ubuntu18.04 配置orbslam2环境+小觅相机测试(零基础)

    写在前面: ubuntu的安装建议采用双系统模式,不建议用虚拟机,会出现奇怪错误导致配置环境失败. 本教程使用 ubuntu18.04 ,双系统的安装请自行搜索教程安装. 本人的毕业设计做的是slam ...

  9. 小觅相机问题解决后开始进行标定的事

    小觅相机问题解决后开始进行标定的事项: 0:一定确保环境安装正常,这里出了问题就等于白给,测试环境可以参考https://blog.csdn.net/u011392872/article/detail ...

  10. 小觅相机的相机标定全家桶(相机IMU,相机内参,相机外参)

    性感帅哥博主在线标定小觅双目相机!!!(亲测有效系列!) 刚刚入手新小觅相机,结果飘出天际,很让人头疼!所以- 话不多说,开始骚操作! mkdir mynt_ws #创建文件夹 cd ~/mynt_w ...

最新文章

  1. 观点:云大数据服务一定是终极形态吗?
  2. springboot web 服务器选择
  3. apache缓存清理_深挖 Mybatis 源码:缓存模块
  4. 缴满15年能领多少钱 养老金计算公式网上疯传
  5. 将一个项目布到服务器上,怎么在云服务器上布项目
  6. 看完微信抢红包算法你就明白,为啥你不是手气最佳
  7. Python列表元素的循环删除问题
  8. Go语言之map练习
  9. 英国高中A-Level和IB课程介绍
  10. cygwin安装linux教程,cygwin安装教程 cygwin安装使用方法
  11. python求三位水仙花数
  12. iOS 小数向上、下取整
  13. 世界树服务器bug位置,四叶草剧场世界树bug怎么获得 世界树bug神器获取位置图文详解...
  14. 20190904携程机试
  15. 服务器内存占用太高如何解决及知识点介绍
  16. 说句心里话python怎么写_说句心里话作文
  17. oppo--软件测试工程师岗位面试总结(二)
  18. CCAI 2017 人工智能科学与艺术论坛 | 科学、艺术、女性之间的碰撞
  19. python商品管理系统_Python信息系统实验:仓库管理!
  20. CAD二次开发发送命名 带objectId、导出igs格式

热门文章

  1. PostgreSQL数据库——Pigsty grafana dashboards
  2. java 过载_过载保护【转载】
  3. MATLAB RGB转YUV YUV转RGB
  4. 如何获取音乐的地址链接
  5. 超清楚!麦克风阵列学习笔记(一)——线性麦克风阵列的时间延迟Beamforming算法(Time-Delay Beamforming of Microphone ULA Array)
  6. 单片机学习(三)中断
  7. 惠普打印机双击之后没有扫描_惠普打印机 找不到 扫描图标 怎么办,急需扫描一些证件 ,求救...
  8. 读《富爸爸,穷爸爸》后感(二)
  9. 黑鲨官网装机大师工具如何重装win10系统,win10系统重装
  10. 用python做youtube自动化下载器!附完整代码!