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

1. 首先是安装相应的mynt SDK.

  • http://www.myntai.com/mynteye/depth小觅官网,在sdk下拉菜单中点击MYNT EYE Depth SDK,然后选择Linux Installation
  • 安装安装步骤说明一步步的安装,安装sample后,测试一下安装是否成功.

 

 我的电脑上安装了ROS,所以可以点击上面第一幅图中的ROS Installation,主要是操作下面这些步骤,尤其是RViz Display和Publish,

  •  

 

launch文件在/home/yunlei/mynt-sdk/MYNT-EYE-D-SDK/wrappers/ros/src/mynteye_wrapper_d/launch/mynteye.launch

执行Publish之后,通过 Rviz界面可以查看目前关于mynt相机发布的话题后哪些,也可以设置发布或者屏蔽一些topics.发布出来的topics都是按照mynteye.launch文件中的参数设置呈现出来的,比如默认打开IR并且IR density是4,如果想关掉IR那么就把

<!-- IR intensity -->
  <arg name="ir_intensity" default="4" />中的"4"改成0

如果获取进行畸变矫正之后的图像数据,那么就把

 <arg name="color_mode" default="$(arg color_raw)" />中的color_raw改成color_rectified

 

二. 使用rosbag record录制mynt相机发布的图像和IMU数据.

1. 首先查看目前可以订阅哪些topics,一个简单的方法就是试一下指令: rosbag record -a 

 

使用下面这条指令录制双目灰度图另外加IMU数据

rosbag record newbag /mynteye/left/image_mono /mynteye/right/image_mono /mynteye/imu/data_raw 
 

然后使用kalibr中的kalibr_bagextractor工具将上一步生成的bag提取出来,检查图像和IMU数据

三.获取两个小时的IMU数据标定IMU的bias和noise参数

四.使用kalibr中的kalibr_calibration_imu_camera工具标定相机和IMU之间的外参.

1.首先是IMU的参数文件imu_mynt.yaml

rostopic: /mynteye/imu/data_raw
update_rate: 200.0 #Hzaccelerometer_noise_density: 0.0268014618074 #continous
accelerometer_random_walk: 0.00262960861593 
gyroscope_noise_density: 0.00888232829671 #continous
gyroscope_random_walk: 0.000379565782927

2. 相机的参数文件camchain.yaml

单目

cam0:camera_model: pinholedistortion_coeffs: [0, 0, 0, 0]distortion_model: radtanintrinsics: [698.4000, 698.4000, 625.39611, 362.95666]resolution: [1280, 720]rostopic: /mynteye/left/image_mono

双目(要注意写左右目相机的平移量时应该是以米为单位,我刚开始就写成了以毫米为单位,119.907,导致最后的标定结果很差)

cam0:camera_model: pinholedistortion_coeffs: [0, 0, 0, 0]distortion_model: radtanintrinsics: [698.4000, 698.4000, 625.39611, 362.95666]resolution: [1280, 720]rostopic: /mynteye/left/image_mono
cam1:T_cn_cnm1:- [1.0, 0.0, 0.0, -0.11990736389160156250]- [0.0, 1.0, 0.0, 0.00000000000000000]- [0.0, 0.0, 1.0, 0.00000000000000000]- [0.0, 0.0, 0.0, 1.0]camera_model: pinholedistortion_coeffs: [0, 0, 0, 0]distortion_model: radtanintrinsics: [698.4000, 698.4000, 625.39611, 362.95666]resolution: [1280, 720]rostopic: /mynteye/right/image_mono

标定板的参数文件(我使用的是april_6x6_80x80的标定板)

target_type: 'aprilgrid' #gridtype
tagCols: 6               #number of apriltags
tagRows: 6               #number of apriltags
tagSize: 0.088           #size of apriltag, edge to edge [m]
tagSpacing: 0.3          #ratio of space between tags to tagSize

五/总结

下面前两幅图是我标定的结果,后两幅图是下载的dynamic数据集使用kalibr标定的结果,这样比较下来,误差还是有些大的,不知需要注意哪些细节可以让标定效果更好.

 dynamic数据集使用kalibr的标定结果.

d 

 

 分析标定结果精度不高的原因

1. 拍摄的图像不够清晰

2. 给定的imu的参数精度不高(现在使用的数据是参考一位网友的数据,,自己还没有标定,这个需要标定一下,或者查看一下资料,找到我这款相机的IMU的具体参数,)

3. 图像的帧率会影响标定结果吗?我目前的是30fps

4. 我使用的图像是去过畸变并进行了畸变矫正后的图像,这样的操作会影响标定结果吗?

6.我对比了dynamic数据集的图像,虽然他们的分辨率只有752*480但是图像清晰度很高,图像中的标定板区域亮度高于其余部分.

虽然我们获取的是720p的图像,虽然我们采集数据集时运动比较缓慢,但是查看图像,仍然有不少图像出现了模糊.

帧率大致在20fps

7.还有通过查看数据集的图像可以看出,录制的bag文件初始几秒时间,相机保持不动,然后再采取不同的动作尽可能的让IMU激励起来,与我们的数据相比,数据集中,运动更猛烈一些.

 

8. 明天做测试(1) 使用原始的图像数据,(2)在采集过程中运动更加剧烈有些,(2)开始采集后要先静置相机几秒再开始运动,

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252438.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

吉林省第二条国际铁路联运大通道“长珲欧”启动测试

29日&#xff0c;吉林省第二条国际铁路联运大通道“长珲欧”在俄罗斯启动测试。吉林省商务厅供图 29日&#xff0c;吉林省第二条国际铁路联运大通道“长珲欧”在俄罗斯启动测试。吉林省商务厅供图 中新网长春1月29日电 (郭佳)记者29日从吉林省商务厅获悉&#xff0c;该省第二条…

使用Ajax解析数据遇到的问题

数据格式 我最近在使用JQuery的$.ajax访问后台的时候&#xff0c;发现竟然无法解析返回的数据&#xff0c;具体的错误记不清了(以后在遇到问题先截个图)&#xff0c;可以在浏览器的Console中看到一个错误&#xff0c;但是去看这条请求是有数据返回的&#xff0c;所以刚开始我一…

隐藏界面没有必要应用场景

转载于:https://www.cnblogs.com/zengsf/p/8366572.html

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&#…

AODp

一、AOP是OOP的延续&#xff0c;是&#xff08;Aspect Oriented Programming&#xff09;的缩写&#xff0c;意思是面向切面编程。 AOP&#xff08;Aspect Orient Programming&#xff09;&#xff0c;作为面向对象编程的一种补充&#xff0c;广泛应用于处理一些具有横切性质的…

使用ros发布UVC相机和串口IMU数据

&#xff11;&#xff0e;目的&#xff1a;为了可以标定普通USB相机和固定在相机上的外置IMU的外参,我希望通过ROS获取更高分辨率和更高频率的图像数据,并且可以将图像和imu的topic发布出来,直接使用rosbag record录制话题数据,写入bag文件,这样获得的bag文件直接可以用于相机和…

API自动化测试利器——Postman

自从开始做API开发之后&#xff0c;我就在寻找合适的API测试工具。一开始不是很想用Chrome扩展&#xff0c;用的WizTools的工具&#xff0c;后来试过一次Postman之后就停不下来了&#xff0c;还买了付费的Jetpacks。推出Team Sync Beta之后我又把这个工具推广给团队&#xff0c…

云原生实践之 RSocket 从入门到落地:Servlet vs RSocket

技术实践的作用在于&#xff1a;除了用于构建业务&#xff0c;也是为了验证某项技术或框架是否值得大规模推广。 本期开始&#xff0c;我们推出《RSocket 从入门到落地》系列文章&#xff0c;通过实例和对比来介绍RSocket。主要围绕RSocket如何实现Polyglot RPC、Service Regis…

制作.sens数据集跑通bundlefusion

1. 主要参考这篇博客实现 https://blog.csdn.net/Wuzebiao2016/article/details/94426905 2. 首先就是将自己采集的RGBD图像的保存格式向Bundlefusion需要的格式对齐&#xff0c;如彩色图的命名格式是frame-000000.color.png&#xff0c;深度图的命名规则是frame-000000.depth…

python之moviepy库的安装与使用

目的&#xff1a;因为需要保存一个大大的.mp4视频&#xff0c;以防过程中设备出现异常导致整个长长的视频无法正常保存&#xff0c;所以采用分段保存视频的方式&#xff0c;每500帧保存一段&#xff0c;然后再将视频合到一起&#xff0e;最近刚开始学习python,发现python真的很…

使用iai_kinect2标定kinectV2相机

实验背景&#xff1a;因为需要制作bundlefusion需要的数据集&#xff0c;所以需要使用kinectV2相机获取rgbd图像&#xff0c;年前的时候在我的笔记本上安装了libfreenect2库和iai_kinect2&#xff0c;标定过一次kinecv2相机&#xff0c;然后使用kinectv2相机实时获取的图像实现…

Linux下配置tomcat+apr+native应对高并发

摘要&#xff1a;在慢速网络上Tomcat线程数开到300以上的水平&#xff0c;不配APR&#xff0c;基本上300个线程狠快就会用满&#xff0c;以后的请求就只好等待。但是配上APR之后&#xff0c;Tomcat将以JNI的形式调用Apache HTTP服务器的核心动态链接库来处理文件读取或网络传输…

Firefox 66 将阻止自动播放音频和视频

百度智能云 云生态狂欢季 热门云产品1折起>>> 当我们点击一个链接&#xff0c;或者打开新的浏览器选项卡时&#xff0c;浏览器就开始自动播放视频和声音&#xff0c;这是一件十分烦人的事。Chrome 浏览器早已对这些行为下手了&#xff0c;现在 Firefox 也明确表示要…

Windows 10 关闭Hyper-V

以管理员身份运行命令提示符 关闭 bcdedit /set hypervisorlaunchtype off 启用 bcdedit / set hypervisorlaunchtype auto 禁用DG 转载于:https://www.cnblogs.com/Robbery/p/8397767.html

bundlefusion论文阅读笔记

4. 全局位姿对齐(glob pose alignment) 输入系统的是使用消费级的传感器获取的RGBD数据流&#xff0c;并且保证这些数据中的彩色图像和深度图像是时间和空间上都对齐的。图像分辨率是640x480,频率是30hz。我们的目的就是要找到frames之间的3D对应&#xff0c;然后根据这些对应…

IOC和DI的区别详解

IOC 是英文inversion of control的缩写&#xff0c;意思是控制反转DI 是英文Dependency Injection的缩写&#xff0c;意思是依赖注入 下面用一个简单的例子来描述一下IOC和DI的关系 先看下总结&#xff1a; 依赖注入(DI)和控制反转(IOC)是从不同的角度的描述的同一件事情&#…

TOMCAT启动到一半停止如何解决

当你的项目过大的时候&#xff0c;往往会导致你的TOMCAT启动时间过长&#xff0c;启动失败&#xff0c;遇到该情况可以试一下下面两招&#xff1a; TOmcat启动到一半的时候停止了&#xff0c;以下原因&#xff1a; 1、 tomcat启动时间超过了设置时间&#xff1a; 解决办法&…

python中将四元数转换为旋转矩阵

在制作bundlefusion时,想测试TUM数据集,并且将groundtruth写入到数据集中,TUM中给定的groundtruth中的旋转是使用四元数表示的,而bundlefusion中需要SE3的形式,所以我需要首先将四元数转换为旋转矩阵,然后再将其与平移向量合并在一起,因为我之前关于生成bundlefusion数据集写了…

19、Fragment

一、Fragment 1.1、fragment介绍 fragment的出现是为了同时适应手机和平板&#xff0c;可以将其看做Activity的组成部分&#xff0c;甚至Activity界面完全由不同的Fragment组成&#xff0c;它拥有自己的生命 周期和接收、处理用户的事件&#xff0c;更为重要的是&#xff0c;可…

将TUM数据集制作成BundleFusion数据集

在上一篇文章中,我写到了如何将TUM数据生成BundleFusion所需要的数据集,生成的数据集如下图中所示.并且是将每一组数据的groundtruth.txt中的位姿数据写如到这里的pose文件中,作为每一帧图像的先验位姿. 今天我便将生成的数据集转换为了.sens格式,然后运行bundlefusion算法,第…