1. 在之一中使用kalibr标定mynt相机和内置imu的外参数,使用的是720p,30fps的双目图像和200hz的imu数据,标定结果误差比较大,这一次我们改用480p,60hz的双目图像和200hz的imu数据进行标定,需要在mynt_sdk中的mynteye.launch中进行如下修改.

默认获取图像的2560x720,30fps,可以在<arg name="stream_mode" default="$(arg stream_2560x720)" />处修改图像分辨率,如果分辨率改为stream_1280x480那么就可以将<arg name="framerate" default="30" />中的帧率改为60,如果分辨率是720p,那么此处最大是30.

MYNT D1000-IR-120双目相机和IMU外参标定

一、使用工具:安装了ROS的Ubuntu16.04系统,D1000-IR-120系列的小觅相机一部,april_6x6_80x80的标定板一块。

二、前期准备工作:

  1. 从mynt官网上下载对应标定相机的Linux Installation 版本的SDK,并按照安装说明安装到电脑上(http://www.myntai.com/mynteye/depth)。

  1. 根据需求在mynt-sdk/MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch文件中设置相机获取图像的参数,主要设置参数项如下:1)将

<arg name="ir_intensity" default="4" />中的"4"改成0

  1. 默认获取的图像是未经过双目畸变校正后的图像,如果需要畸变校正后的图像则将 <arg name="color_mode" default="$(arg color_raw)" />中的color_raw改成color_rectified.根据实验结果,无论是否进行过rectified处理,只要标定过程中使用的相机配置文件中的相机内参数,以及相机畸变系数写正确了,对实验结果的精度影响不大。
  2. 默认获取图像的2560x720,30fps,可以在<arg name="stream_mode" default="$(arg stream_2560x720)" />处修改图像分辨率,如果分辨率改为stream_1280x480那么就可以将<arg name="framerate" default="30" />中的帧率改为60,如果分辨率是720p,那么此处最大是30.根据标定结果推荐使用60fps的640x480的图像来标定。
  • 开始标定
  1. 首先使用在上面terminal 2中打开的Rviz窗口中勾选需要的topics,只有勾选上的topics,才可以被subscribe,我们需要勾选上的项包括,Left Image以及其下的image_mono,Right Image以及其下的image_mono(因为灰度图完全可以完成标定所以使用灰度图就可以了),还有imu也要勾选上。

然后使用指令:rosbag record bagname.bag topics将我们需要的话题数据直接写入到bag文件,这里的话我们使用的指令为:rosbag record mynt_480p_rectified.bag /mynteye/left/image_mono /mynteye/right/image_mono /mynteye/imu/data_raw .

  1. 使用rosbag record imu0.bag /mynteye/imu/data_raw录制相机静置两个小时的imu数据,使用imu_utils工具标定imu的高斯白噪声和随机游走参数。
  1. 在使用kalibr工具开始标定之前,首先生成标定所需要的三个配置文件camchain.yaml, imuchain.yaml, april.yaml.

  1. 使用kalibr工具中的kalibr_calibration_imu_camera脚本标定相机和imu的外参数,使用指令:kalibr_calibration_imu_camera --bag record mynt_480p_rectified.bag --cam camchain.yaml --imu imuchain.yaml --traget april.yaml --bag-from-to 5 50.(可以使用--bag-from-to参数截取数据集中5s到50s的数据用来标定)。
  • 标定结果与相机提供的数据对比

  • 总结

通过标定的结果与官方提供的参数对比,标定的相机和imu的旋转变换的精度较高,但是平移量的两者差距比较大,得亏相机和IMU之间的平移向量对VIO系统的影响不会很大,而旋转变换则是很关键的。以30fps帧率获取的2560x720的图像,尽管在运动比较平稳的情况下,也会存在拖影的情况,但是改用60fps帧率获取的1280x720的图像,拖影现象不大明显,标定效果更好。

六、注意事项

  1. Camchain.yaml文件中左目图像到右目图像平移变换数据要以米为单位,不能以毫米或者厘米。
  2. Camchain.yaml文件中的相机模型要选“pinhole”,相机畸变模型要选择”radtan”不能选”equidistant”,否则标定误差将很大。
  3. 使用原始图像还是经过rectified处理后的图像,只要在camchain.yaml文件中的相机参数设置正确,一般不会对标定结果造成影响。

使用60fps的1280x480的图像标定结果比30fps的2560x480的图像精度高。

使用用来标定mynt相机的数据集跑一下vins系统.

1. 首先生成mynt相机的launch文件和config文件,其中有一个问题是,mynt是鱼眼相机,如果我将config文件中的fisheye选1,那么程序会自动加载一个mask图像,但是运行是提示opencv出错,所以换成使用经过畸变矫正后的图像,然后将fisheye选为0.这样就正确了,程序中提供了两个mask图像,一个是512x512的,另一个是752x480的,是不是需要提供自己数据集对应的一个mask图像呢.

去年的时候使用自己的开发板获取普通双目相机和一片9250的imu数据,运行vins运行结果很差,飘的不行,这次试一下mynt相机采集的数据,虽然偶尔也会飘,但是总的来说比之前的体验是好了很多.

mynt product model: D1000-IR-120标定相机和IMU外参之二相关推荐

  1. mynt product model: D1000-IR-120标定相机和IMU外参

    1. 首先是安装相应的mynt SDK. http://www.myntai.com/mynteye/depth小觅官网,在sdk下拉菜单中点击MYNT EYE Depth SDK,然后选择Linux ...

  2. imu相机标定_解放双手——相机与IMU外参的在线标定

    本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...

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

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

  4. Ubuntu16.04 在ROS中配置RealSence D435 并标定深度相机与rplidar外参

    Ubuntu16.04系统,在ROS中配置RealSence D435 ,并标定其与rplidar的外参 主要目的是为rplidar标定深度相机外参,为机器人导航的过程提供障碍物识别的功能,因此需要知 ...

  5. 使用Kalibr标定相机和IMU(ZED+px4)外参

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用Kalibr标定相机和IMU(ZED+px4)外参 前言 一.Kalibr介绍 二.CAM-IMU外参标定 1.相机内参 2.IM ...

  6. 安卓手机标定相机IMU外参过程

    本文阐述安卓手机标定相机IMU外参过程,包括以下主要流程: 1. 制作标定板 2. 单独标定单目相机的外参 3. 单独标定IMU的外参 4. 相机IMU的联合标定 1.为什么要进行相机标定? 在图像测 ...

  7. 【相机标定基于消失点的外参标定】

    [相机标定&基于消失点的外参标定] 文章一:Camera calibration using two or three vanishing points 文章二:Online Extrinsi ...

  8. ros --- 双目相机内参与外参标定

    ros --- 双目相机内参与外参标定 小觅相机直接获取参数 手动重新标定 1. 双目相机内外参标定 生成标定板 录制 stereo_calibra.bag 标定 标定结果 标定验证 2. 双目 + ...

  9. 相机内参和外参的解释

    这个我觉得说清楚了,说相机内参包括内参矩阵和畸变矩阵,这样就好理解了,我之前把内参等同于内参矩阵了. 转载自:https://blog.csdn.net/weixin_42872123/article ...

最新文章

  1. LeetCode简单题之交替合并字符串
  2. idea项目依赖导入失败_解决idea导入项目后依赖报错问题
  3. python sql解析引擎_python SQLAlchemy 中的Engine详解
  4. 水滴石穿之IFRANME加载完成判断、获取函数的动态参数信息
  5. CSS伪元素 after 实现鼠标悬浮信息及动画效果
  6. oracle存储过程中数组的使用
  7. 使用Linux docker容器中的集成安全性对SQL Server的.Net Core客户端进行身份验证
  8. 一杯“咸水”的人生哲理
  9. Python爬虫安居客房价信息(并利用百度地图API查询坐标)
  10. SQL Server 函数的使用(转换函数)
  11. 中标麒麟(linux)下Qt调用python数据转换
  12. Codeforces Round #555 (Div. 3) E. Minimum Array
  13. jdk1.8 64位 32位免费下载
  14. 2021年全国职业院校技能大赛(中职组)网络安全竞赛试题(3)(总分100分)
  15. tan和cot的梗_“sin对cos说 我们今晚是tan呢?还是cot呢?”啥意思
  16. 3D动画(CSS3)-animation
  17. android studio sdk samples,qcloud-sdk-android-samples
  18. 钉钉windows端多开软件_电脑便签需要下载吗?电脑上用什么桌面便签软件工具好...
  19. VS 利用Picture Control的Bitmap属性显示一张图片
  20. pythonista模板_Python——Code Like a Pythonista: Idiomatic Python

热门文章

  1. ubuntu每次登陆都用root账号登陆
  2. [转]js判断url是否有效
  3. 巧用apply让javascript函数仅执行一次
  4. 必然的宿命,绚然的《暗花》
  5. js利用HTML5的拖拽API做流程图
  6. 如何通过RFID开发来迎接第四次工业革命(转)
  7. depends用于测试程序运行所缺少的文件,可以帮我们很快找到问题
  8. Spring Cloud(F版)搭建高可用服务注册中心
  9. EF中Take和Skip的区别
  10. PHP学习笔记--抽象类和抽象方法的应用