当前位置: 首页 > wzjs >正文

自己做网站还是公众号seo系统培训课程

自己做网站还是公众号,seo系统培训课程,av做爰免费网站,电商网站入口在SLAM系统中,相机标定是获取准确的空间信息和三维重建的关键步骤。对于Intel RealSense D435i这类双目相机,正确的内参和外参不仅能提高位姿估计精度,还能显著改善重建效果。本文将详细介绍如何使用Kalibr对D435i进行双目标定,并…

在SLAM系统中,相机标定是获取准确的空间信息和三维重建的关键步骤。对于Intel RealSense D435i这类双目相机,正确的内参和外参不仅能提高位姿估计精度,还能显著改善重建效果。本文将详细介绍如何使用Kalibr对D435i进行双目标定,并涵盖常见的问题与调试技巧。

 1. 环境准备

关于kalibr的工具安装网上有许多教程,这里我推荐一个个人认为较为完善的博客,大家可以参考进行下载,编译安装。链接:D435i标定摄像头和IMU笔记二-2(RGB+双目多摄像头标定篇)_d435i 双目+rgb标定-CSDN博客

 2. 启动相机并准备话题

首先,启动RealSense D435i相机并配置左右红外摄像头(如何开启D435i相机的双目模式,可以参考我往期的博客,有详细的配置介绍):

roslaunch realsense2_camera rs_stere_camera.launch

可以使用以下命令动态调整相机参数,例如曝光时间和增益(这一步可以省略,如果默认关闭状态):

rosrun rqt_reconfigure rqt_reconfigure

为了减少数据量并提高标定效率,可以使用topic_tools进行消息节流(分别打开窗口运行,也可以写成一行):

rosrun topic_tools throttle messages /camera/infra1/image_rect_raw 4.0 /infra_left
rosrun topic_tools throttle messages /camera/infra2/image_rect_raw 4.0 /infra_right

这会将红外相机的数据频率限制为4Hz,减少系统负载。

 参考如下:

3. 数据录制

接下来,开始录制用于标定的数据包。确保已经在ROS工作空间的根目录下,且已经执行了source devel/setup.bash

使用以下命令录制包含左右相机图像的话题:

rosbag record -o stere_calibr.bag /infra_left /infra_right

录制要点:

  • 丰富视角:从多个角度和距离采集数据。

  • 充分旋转和平移:确保相机有充分的运动轨迹。

  • 避免运动模糊:尽量减少快速移动,确保图像清晰。

  • 光照均匀:避免强光和阴影干扰。

 

4. Kalibr标定

准备好标定板(例如AprilGrid)并确保相机数据已经正确录制后,可以开始进行Kalibr标定。

首先,确保标定板参数文件aprilgrid.yaml已正确配置,例如:

target_type: 'aprilgrid'
tagCols: 6
tagRows: 6
tagSize: 0.08  # 标签的实际边长 (单位:米)
tagSpacing: 0.3  # 标签间的间隔比例 (tagSpacing / tagSize)

然后运行Kalibr标定命令:

rosrun kalibr kalibr_calibrate_cameras \--target aprilgrid.yaml \--bag stere_calibr.bag \--models pinhole-equi pinhole-equi \--topics /infra_left /infra_right \--show-extraction \后面回解读参数的作用--approx-sync 0.04

关键参数解释:

  • --target:标定板参数文件。

  • --bag:Bag文件路径。

  • --models:相机模型类型,这里选择了pinhole-equi以适应D435i广角镜头。

  • --topics:左右相机的ROS话题。

  • --show-extraction:在标定过程中显示角点提取结果。

  • --approx-sync:时间戳近似同步窗口(40ms),避免严格对齐失败。

 生成的标定文件:

标定txt文件:
 

Calibration results 
====================
Camera-system parameters:
cam0 (/infra_left):type: <class 'aslam_cv.libaslam_cv_python.EquidistantDistortedPinholeCameraGeometry'>distortion: [ 0.3135947   0.32455235 -0.52654756  0.58506327] +- [0.02050455 0.19255653 0.70592142 0.873231  ]projection: [661.4974262  662.56148611 635.82997386 361.51483888] +- [0.16035361 0.4681932  0.98190918 2.22391354]reprojection error: [0.000001, -0.000008] +- [0.266003, 0.297355]cam1 (/infra_right):type: <class 'aslam_cv.libaslam_cv_python.EquidistantDistortedPinholeCameraGeometry'>distortion: [ 0.34287689  0.19791578 -0.48234189  0.93543806] +- [0.01205634 0.07763847 0.16784572 0.21190066]projection: [629.89882172 631.59908506 635.52002364 353.59436006] +- [0.12344688 0.36096015 0.83769264 1.90513144]reprojection error: [-0.000000, 0.000003] +- [0.229563, 0.258023]baseline T_1_0:q: [0.00150385 0.00153018 0.00063099 0.9999975 ] +- [0.00267581 0.00270488 0.00063291]t: [-0.05021712  0.0024024  -0.01461257] +- [0.00105519 0.00173179 0.00038129]Target configuration
====================Type: aprilgridTags: Rows: 6Cols: 6Size: 0.03 [m]Spacing 0.009 [m]

标定的yaml文件:

cam0:cam_overlaps: [1]camera_model: pinholedistortion_coeffs: [0.3135947033969634, 0.3245523536725653, -0.5265475626529273, 0.585063272337577]distortion_model: equidistantintrinsics: [661.4974261968929, 662.5614861133771, 635.8299738560407, 361.5148388773697]resolution: [1280, 720]rostopic: /infra_left
cam1:T_cn_cnm1:- [0.9999945208092658, 0.0012665781221903227, -0.003058452436623379, -0.05021711623497154]- [-0.0012573734817375377, 0.999994680572997, 0.0030096241686901823, 0.0024023984784722146]- [0.003062248091536979, -0.003005762061396358, 0.9999907939731525, -0.014612567870044153]- [0.0, 0.0, 0.0, 1.0]cam_overlaps: [0]camera_model: pinholedistortion_coeffs: [0.34287689294735485, 0.19791578378741437, -0.4823418924085219, 0.9354380622997973]distortion_model: equidistantintrinsics: [629.8988217210396, 631.5990850564253, 635.5200236409538, 353.59436006397107]resolution: [1280, 720]rostopic: /infra_right

 标定的评估pdf文件:

 

 

5. 常见问题与调试

Cameras are not connected through mutual observations, please check the dataset. Maybe adjust the approx. sync. tolerance.
Traceback (most recent call last):File "/home/nan/dev/kalibr_ws/devel/bin/kalibr_calibrate_cameras", line 15, in <module>exec(compile(fh.read(), python_script, 'exec'), context)File "/home/nan/dev/kalibr_ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 444, in <module>main()File "/home/nan/dev/kalibr_ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_calibrate_cameras", line 201, in maingraph.plotGraph()File "/home/nan/dev/kalibr_ws/src/kalibr/aslam_offline_calibration/kalibr/python/kalibr_camera_calibration/MulticamGraph.py", line 308, in plotGraphedge_label=self.G.es["weight"],
KeyError: 'Attribute does not exist'
  • 原因:时间戳不同步导致图构建失败。

  • 解决方法:使用--approx-sync 0.04放宽时间对齐窗口。

6.总结

本文介绍了 Intel RealSense D435i 双目相机的标定流程,包括相机启动、数据录制和 Kalibr 工具的使用方法。重点涵盖了标定板配置、时间同步问题解决以及重投影误差优化等关键步骤,并提供了常见问题的调试技巧,如 时间戳不同步角点检测失败。通过合理的数据采集和参数设置,可以显著提高标定精度,为后续的 SLAM 任务打下坚实基础。

http://www.dtcms.com/wzjs/231236.html

相关文章:

  • 有一个私人做慈善的网站seo快排软件
  • 免费行情网站排名网站首页不收录
  • 网站建设推广人员沐浴露营销软文
  • php网站开发工程师认证证书国内广告投放平台
  • 广州网站建设公司招聘网络营销主要干什么
  • 备案网站建设方案书广告推广免费
  • 网站篡改搜索引擎jssem搜索引擎
  • 用html5做的旅游网站代码湘潭营销型网站建设
  • 公司网站建设公司怎样申请自己的电商平台
  • 南宁网站建设 超薄网络小学四年级摘抄新闻
  • 温州网站建设平台百度联盟官网登录入口
  • 建设网站用哪个主机好百度竞价客服
  • 网站编程培训学校有哪些2024的新闻有哪些
  • 视频盗版网站怎么做个人在线做网站免费
  • 网站开发怎么自学电商网站平台
  • 个人网页细规划教案seo推广外包企业
  • 开网站做备案需要什么资料湖南正规关键词优化首选
  • 济南网站建设方案咨询bt磁力搜索
  • 什么网站能免费做公众号封面百度小程序入口
  • 南通海洲建设集团网站购买域名后如何建立网站
  • 饰品交易网站怎么做做公司网站需要多少钱
  • 做网站能用微软火星时代教育培训机构官网
  • wordpress建站博客爱站关键词搜索
  • 成都网站建设公司是什么企业站seo外包
  • 阿里云怎么做淘宝客网站seo专员是什么意思
  • java做直播网站有哪些软件有哪些东莞网络排名优化
  • 网站建设价格标准新闻最新疫情19个城市封城
  • 外贸企业官网建站百度竞价ocpc
  • wordpress文章页打赏优化网站的目的
  • 安徽网站建设怎么样seo推广怎么做视频教程