Tartancalib标定OAK-FFC_4p(上)

前言:

        1.使用Tartancalib标定双目或多目相机前,先对单个相机标定获得内参,再获得外参

一.环境准备

参考我之前的文章:

Kalibr&TartanCalib开源项目进行单目相机标定_kalibr 标定单目相机-CSDN博客

二.数据集准备

 略-推荐使用ROSbag工具录制数据集,录制方式参考视频:

OmniNxt 四目标定包录制流程_哔哩哔哩_bilibili

1.推荐使用ROSbag工具

2. 过程中用到的标定板

三.执行过程

1.单目标定

rosrun kalibr tartan_calibrate --bag bag/oak_ffc_2.bag --target yaml/checkerboard_v3_11_8.yaml --topics /camd/image_raw --models omni-radtan --save_dir res/ --debug_image_dir res/debug/

2.执行结果

        出现了一个segmentation的错误,我这里使用的是棋盘格!

        但是在另外一组实验中,我使用Aprilgrid标定板的实验成功执行了。因为这组实验采用的标定板太小导致相机得到的图像质量低,身边大的标定板只有棋盘格,故换用棋盘格标定。

        于是,我再次验证。我使用了非OAK_FFC的普通相机(之前使用Aprilgrid标定板验证成功过)和棋盘格标定板,使用同样的方法验证,结果:

        现在有理由怀疑是标定板的原因,导致出现了不好寻找的报错。接下来更换标定板再做尝试

 四.问题排查和验证

我这里不再采用显示屏做标定板(因为屏幕反光对OAK相机成像质量有影响),打印出一张A3纸张大小的AprilGrid(9*6)的标定板做测试。

标定板生成网址:

Camera Calibration Pattern Generator – calib.io

 1.验证过程

 第一次验证:

  apri,普通双目相机,手动录制数据集

 rosrun kalibr tartan_calibrate --target yaml/ApirGird_9_6.yaml  --models pinhole-equi pinhole-equi  --topics /cam0/image_raw /cam1/image_raw  --bag bag/nomal_apri_2.bags

 结果:执行成功

第二次验证:

apri,oak_ffc_4p相机组中的两个相机,ROSBAG录制数据集。 

 rosrun kalibr tartan_calibrate --target yaml/ApirGird_9_6.yaml  --models omni-radtan omni-radtan --topics /rgb/image_raw /left/image_raw --bag bag/oak_apri_9_6.bag

 结果:执行成功

 2.验证结论        

        经过上述验证后,再次查阅官方文档后发现。

 tartancalib衍生与于Kalibr算法,它理论上支持kacalib的三种标定板进行标定,我这里对他的理解是标定的yaml文件要做调整。但是tartancalib推荐使用AprilTags标定板,这更稳重!

 我的结论:不要用棋盘格,用AprilTags!

  • 5
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
感谢您提出的问题!根据您的描述,您想要使用depthimage_to_laserscan节点将订阅的depth话题重映射为oak-d发布的/stereo/depth,并将订阅的depth_camera_info话题重映射为oak-d发布的/stereo/camera_info。然后,您希望将发布的scan重映射为/oak_scan。此外,您还需要运行静态tf变换,将camera_depth_optical_frame变换到oak-d_frame。 要实现这个功能,您可以按照以下步骤进行操作: 1. 在launch文件或终端中,使用remap命令来重映射订阅的depth话题和depth_camera_info话题。例如: ``` <node name="depthimage_to_laserscan" pkg="depthimage_to_laserscan" type="depthimage_to_laserscan" output="screen"> <remap from="depth" to="/oak-d/stereo/depth"/> <remap from="depth_camera_info" to="/oak-d/stereo/camera_info"/> </node> ``` 2. 在同一个launch文件或终端中,使用remap命令将发布的scan话题重映射为/oak_scan。例如: ``` <node name="scan_publisher" pkg="depthimage_to_laserscan" type="scan_publisher"> <remap from="scan" to="/oak_scan"/> </node> ``` 3. 运行静态tf变换,将camera_depth_optical_frame变换到oak-d_frame。您可以使用tf_static发布器来完成此操作。具体实现方式取决于您所使用的ROS版本。 请注意,这些步骤是一种可能的实现方法,具体的实现方式可能因您的代码结构和需求而有所不同。请根据您的实际情况进行调整。 希望这可以帮助到您!如果您还有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值