ROS2下进行单目相机标定

本文主要进行在ros2 -humble下大华工业相机和海康工业相机的标定,其他相机也可以参考

首先进行ros2环境的安装

2.5在ubuntu22.04安装ros2_ubuntu20.04安装ros2-CSDN博客

安装工业相机的驱动SDK

1.8安装相机SDK及测试-CSDN博客

安装相机标定工具

sudo apt install ros-humble-camera-calibration-parsers
sudo apt install ros-humble-camera-info-manager
sudo apt install ros-humble-launch-testing-ament-cmake

下载源码,进行编译

camera: ROS2下进行单目相机标定icon-default.png?t=N7T8https://gitee.com/Ludongyi/camera

在vscode中运行相机驱动功能包节点,发布图像话题

海康工业相机

. install/setup.bash 
ros2 launch hik_camera hik_camera.launch.py

大华工业相机

. install/setup.bash
ros2 run ros2_dahua ros2_dahua 

检查图像发布频率

ros2 topic hz /image_raw

下载图像查看器:

sudo apt install ros-humble-rqt-image-view

终端输入命令打开rqt ,左上角选择图像话题名称 image_raw

ros2 run rqt_image_view rqt_image_view

查看图像符不符合标定

启动相机标定节点,开始标定 (注意参数

在工作区中source install/setup.bash

 ros2 run camera_calibration cameracalibrator --size 6x5 --square 0.024 image:=/image_raw  camera:=/camera --no-service-check

参数--size表示棋盘格角点数量,如8x9个格子的棋盘格,角点个数为7x8个,size参数就要写7x8  

--square表示 棋盘格一个小格子的宽度(注意单位为m)

image:=表示:图像话题名称为/image_raw 相机标定节点将从该话题接收图像进行标定

camera:=表示:指定相机名称/camera

移动标定板:

为了达到良好的标定效果,需要在摄像机周围移动标定板,并完成以下基本需求:

(1)移动标定板到画面的最左、右,最上、下方。

(2)移动标定板到视野的最近和最远处。

(3)移动标定板使其充满整个画面。

(4)保持标定板倾斜状态并使其移动到画面的最左、右,最上、下方 。

当标定板移动到画面的最左、右方时,此时,窗口的x会达到最小或满值。同理,y指示标定板的在画面的上下位置,size表示标定板在视野中的距离,也可以理解为标定板离摄像头的远近。skew为标定板在视野中的倾斜位置。每次移动之后,请保持标定板不动直到窗口出现高亮提示。

最远处是移动不到的,所以Size的绿色线亮一半就行。标定板倾斜的时候,要不同的角度倾斜。

条形变为绿色。当calibration按钮亮起时,代表已经有足够的数据进行摄像头的标定,此时请按下calibration并等待一分钟左右,标定界面会变成灰色,无法进行操作,属于正常情况。

如果标定计算时显示python3无响应,去终端看看有标定结果没,没有的话说明你的CPU不行,换台电脑

获得标定结果:

标定完成后,终端会输出校正结果

其中,K为相机内参矩阵,distortion为畸变系数矩阵。
camera matrix:摄像头的内部参数矩阵
distortion:畸变系数矩阵
rectification:矫正矩阵,一般为单位阵
projection:外部世界坐标到像平面的投影矩阵

camera matrix内参矩阵

732.292449 -4.183893 971.275914

0.000000 738.107123 510.723666

0.000000 0.000000 1.000000

内参矩阵中,第一行第一个是 fx , 第二行第二个是 fy ,第一行第三个是 u0 ,第二行第三个是v0

distortion:畸变系数矩阵

-0.100096 0.342159 0.142579 0.11692  0.0

畸变系数的顺序是 (k1, k2, p1, p2,k3)

点击SAVE按钮保存。

如果对标定结果满意,点击COMMIT按钮将结果保存到默认文件夹,/tmp/calibrationdata.tar.gz   下次启动usb_cam节点时,会自动调用。

解压calibrationdata.tar.gz文件

tar -zxvf calibrationdata.tar.gz

查看拍的图片质量,其中ost.yaml文件即为相机的标定的参数文件。

USB相机标定

sudo apt-get install ros-humble-v4l2-camera

在工作空间src中克隆Image Pipeline软件包

git clone https://github.com/ros-perception/image_pipeline.git

编译

colcon build

启动usb相机节点:

刷新环境变量,注意你的分辨摄像头率,禁用电脑内置摄像头

ros2 run image_tools  cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1

节点发布图像的topic为 /image,如果想将topic重映射为/camera/iamge_raw,则采用如下命令

ros2 run image_tools  cam2image --ros-args -p width:=640 -p height:=480 -p frequency:=30.0 -p device_id:=-1 -r /image:=/camera/image_raw

启动相机标定节点:(注意参数

 ros2 run camera_calibration cameracalibrator --size 7x9 --square 0.20 --ros-args --remap image:=/camera/image_raw --remap camera:=/camera

标定过程与上面同理

......

  • 31
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
ROS单目相机标定是一种通过使用ROS(机器人操作系统)来校准单目相机的方法。校准相机的目的是确定相机的内部参数(例如焦距和畸变系数),以便在图像处理和计算机视觉应用中正确地测量和估计物体的位置和大小。为了进行ROS单目相机标定,可以参考ROS Wiki提供的教程。首先,需要安装相应的ROS软件包,例如使用以下命令安装ROS Melodic版本的相机标定软件包: sudo apt-get install ros-melodic-camera-calibration 然后,确保相机已经通过ROS发布了图像,可以使用以下命令列出ROS主题以检查图像是否已发布: rostopic list 通过执行以上步骤,您就可以开始进行ROS单目相机标定了。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [ROS单目相机标定](https://blog.csdn.net/weixin_44709392/article/details/124169293)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* [1.ROS机器视觉:单目摄像头的调用与标定](https://blog.csdn.net/wzfafabga/article/details/127206880)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IT小艺

如果文章对你有用,请我喝咖啡吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值