mynt product model: D1000-IR-120标定相机和IMU外参之二
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的标定板一块。
二、前期准备工作:
- 从mynt官网上下载对应标定相机的Linux Installation 版本的SDK,并按照安装说明安装到电脑上(http://www.myntai.com/mynteye/depth)。
- 根据需求在mynt-sdk/MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch文件中设置相机获取图像的参数,主要设置参数项如下:1)将
<arg name="ir_intensity" default="4" />中的"4"改成0
- 默认获取的图像是未经过双目畸变校正后的图像,如果需要畸变校正后的图像则将 <arg name="color_mode" default="$(arg color_raw)" />中的color_raw改成color_rectified.根据实验结果,无论是否进行过rectified处理,只要标定过程中使用的相机配置文件中的相机内参数,以及相机畸变系数写正确了,对实验结果的精度影响不大。
- 默认获取图像的2560x720,30fps,可以在<arg name="stream_mode" default="$(arg stream_2560x720)" />处修改图像分辨率,如果分辨率改为stream_1280x480那么就可以将<arg name="framerate" default="30" />中的帧率改为60,如果分辨率是720p,那么此处最大是30.根据标定结果推荐使用60fps的640x480的图像来标定。
- 开始标定
- 首先使用在上面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 .
- 使用rosbag record imu0.bag /mynteye/imu/data_raw录制相机静置两个小时的imu数据,使用imu_utils工具标定imu的高斯白噪声和随机游走参数。
- 在使用kalibr工具开始标定之前,首先生成标定所需要的三个配置文件camchain.yaml, imuchain.yaml, april.yaml.
- 使用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的图像,拖影现象不大明显,标定效果更好。
六、注意事项
- Camchain.yaml文件中左目图像到右目图像平移变换数据要以米为单位,不能以毫米或者厘米。
- Camchain.yaml文件中的相机模型要选“pinhole”,相机畸变模型要选择”radtan”不能选”equidistant”,否则标定误差将很大。
- 使用原始图像还是经过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外参之二相关推荐
- mynt product model: D1000-IR-120标定相机和IMU外参
1. 首先是安装相应的mynt SDK. http://www.myntai.com/mynteye/depth小觅官网,在sdk下拉菜单中点击MYNT EYE Depth SDK,然后选择Linux ...
- imu相机标定_解放双手——相机与IMU外参的在线标定
本文作者 沈玥伶,公众号:计算机视觉life,编辑部成员 一.相机与IMU的融合 在SLAM的众多传感器解决方案中,相机与IMU的融合被认为具有很大的潜力实现低成本且高精度的定位与建图.这是因为这两个 ...
- 小觅相机 相机以及IMU外参标定
最近在使用IMU和双目相机进行相关VIO算法的测试,首先要对IMU和相机的外参进行标定,本文主要是对标定过程做一个全面的记录,方便总结和讨论.测试中采用的是小觅双目模组标准版S1030-IR-120/ ...
- Ubuntu16.04 在ROS中配置RealSence D435 并标定深度相机与rplidar外参
Ubuntu16.04系统,在ROS中配置RealSence D435 ,并标定其与rplidar的外参 主要目的是为rplidar标定深度相机外参,为机器人导航的过程提供障碍物识别的功能,因此需要知 ...
- 使用Kalibr标定相机和IMU(ZED+px4)外参
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 使用Kalibr标定相机和IMU(ZED+px4)外参 前言 一.Kalibr介绍 二.CAM-IMU外参标定 1.相机内参 2.IM ...
- 安卓手机标定相机IMU外参过程
本文阐述安卓手机标定相机IMU外参过程,包括以下主要流程: 1. 制作标定板 2. 单独标定单目相机的外参 3. 单独标定IMU的外参 4. 相机IMU的联合标定 1.为什么要进行相机标定? 在图像测 ...
- 【相机标定基于消失点的外参标定】
[相机标定&基于消失点的外参标定] 文章一:Camera calibration using two or three vanishing points 文章二:Online Extrinsi ...
- ros --- 双目相机内参与外参标定
ros --- 双目相机内参与外参标定 小觅相机直接获取参数 手动重新标定 1. 双目相机内外参标定 生成标定板 录制 stereo_calibra.bag 标定 标定结果 标定验证 2. 双目 + ...
- 相机内参和外参的解释
这个我觉得说清楚了,说相机内参包括内参矩阵和畸变矩阵,这样就好理解了,我之前把内参等同于内参矩阵了. 转载自:https://blog.csdn.net/weixin_42872123/article ...
最新文章
- LeetCode简单题之交替合并字符串
- idea项目依赖导入失败_解决idea导入项目后依赖报错问题
- python sql解析引擎_python SQLAlchemy 中的Engine详解
- 水滴石穿之IFRANME加载完成判断、获取函数的动态参数信息
- CSS伪元素 after 实现鼠标悬浮信息及动画效果
- oracle存储过程中数组的使用
- 使用Linux docker容器中的集成安全性对SQL Server的.Net Core客户端进行身份验证
- 一杯“咸水”的人生哲理
- Python爬虫安居客房价信息(并利用百度地图API查询坐标)
- SQL Server 函数的使用(转换函数)
- 中标麒麟(linux)下Qt调用python数据转换
- Codeforces Round #555 (Div. 3) E. Minimum Array
- jdk1.8 64位 32位免费下载
- 2021年全国职业院校技能大赛(中职组)网络安全竞赛试题(3)(总分100分)
- tan和cot的梗_“sin对cos说 我们今晚是tan呢?还是cot呢?”啥意思
- 3D动画(CSS3)-animation
- android studio sdk samples,qcloud-sdk-android-samples
- 钉钉windows端多开软件_电脑便签需要下载吗?电脑上用什么桌面便签软件工具好...
- VS 利用Picture Control的Bitmap属性显示一张图片
- pythonista模板_Python——Code Like a Pythonista: Idiomatic Python