ROS摄像头标定

一、内容概要

  1. 配置ubuntu摄像头环境
  2. 进行摄像头标定

二、 配置ubuntu摄像头环境

2.1 硬件准备

1.电脑自带摄像头

2.USB外设摄像头
在原系统测试下相机是否可用
在这里插入图片描述
在这里插入图片描述
没问题
3. 标定板
Ⅰ 购买成品标定板(略贵)
Ⅱ 将标定图案打印在A4纸上 (精度略低)
文件下载地址:
https://gitee.com/liangbo1996/chessboard_27mm

2.2 软件准备

  1. 安装usb_cam相机驱动
sudo apt-get install ros-noetic-usb-cam
  1. 安装标定功能包
sudo apt-get install ros-noetic-camera-calibration
  1. 检测虚拟机相机状态
ls ~/dev/video*

在这里插入图片描述

如若无结果则需进行如下配置

关闭虚拟机,进入虚拟机设置
将USB兼容性设置为3.1版本

在这里插入图片描述
启动虚拟机
在移动设备中找到末尾是camera的设备,将其与主机断开
在这里插入图片描述
然后再次输入

ls ~/dev/video*

在这里插入图片描述
环境配置完成
测试一下usb_cam

	roslaunch usb_cam usb_cam-test.launch

成功启动
在这里插入图片描述

三、 完成摄像头标定

首先启动roscore

roscore

然后启动摄像头

rosrun usb_cam usb_cam_node

最后启动摄像头标定
注意!,这段代码里面--size后面的8x5是根据实际情况定的,即x方向和y方向角点数量,我此次标定使用的为8x5,可以看下面成功标定图,上面的彩色点就是角点。(最外层的黑白方块不能算,因为探测不到最外层的角点)。

rosrun camera_calibration cameracalibrator.py --size 8x5 --square 0.02 image:=/usb_cam/image_raw

在这里插入图片描述
成功标定是这样:

在这里插入图片描述
将标定板在摄像头前进行移动后,CALIBRATE按钮会亮起,点击一下后等待系统恢复运行即标定完毕,点击SAVE后即可得到标定数据(/tmp 目录下,可以这样进入:

cd ~/../../tmp/

)
可以看到标定文件:
在这里插入图片描述

四、 标定结果运用

将展示运用标定结果进行摄像头矫正
创建功能包:

在这里插入图片描述
将标定文件解压后,yaml文件放在config里,launch文件写入以下代码:

<launch>
  <node name="usb_cam" pkg="usb_cam" type="usb_cam_node" output="screen" >
    <param name="video_device" value="/dev/video0" />
    <param name="image_width" value="640" />
    <param name="image_height" value="480" />
    <param name="pixel_format" value="yuyv" />
    <param name="camera_frame_id" value="usb_cam" />
    <param name="io_method" value="mmap"/>
    <param name="camera_name" value="my_camera"/>
    <param name="camera_info_url" type="string" value="file://$(find bingda_tutorials)/config/ost.yaml"/>
  </node>
</launch>

然后打开yaml文件,找到:
在这里插入图片描述
记住这里的配置信息,前往launch文件把对应词条修改一下

在这里插入图片描述
记得修改包名
在这里插入图片描述

然后运行launch文件

接下来订阅imag_proc:

ROS_NAMESPACE=usb_cam rosrun image_proc image_proc

两个终端打开两个rqt_image_view

rqt_image_view

选择usb_cam/image_raw(原始),/usb_cam/image_rect_color(修复后)
在这里插入图片描述
在这里插入图片描述

最后是对比:
在这里插入图片描述

五、 实验心得

在进行ROS摄像头标定的过程中,我深刻体会到了ROS(Robot Operating System)在机器人视觉系统中的重要性和实用性。以下是我的一些心得体会:

ROS生态系统的便捷性:
ROS为机器人开发者提供了一个强大的生态系统,其中包含了大量的开源工具和库。通过安装ros-noetic-usb-cam和ros-noetic-camera-calibration这两个功能包,我能够快速地搭建起摄像头标定的环境,而无需从头开始编写代码。这种模块化、标准化的开发方式大大提高了开发效率。

硬件与软件的兼容性:
在配置摄像头环境时,我遇到了虚拟机无法识别USB摄像头的问题。通过调整虚拟机的USB兼容性设置和断开与主机的连接,我最终解决了这个问题。这让我意识到在机器人开发中,硬件与软件的兼容性是一个重要而复杂的问题,需要耐心和细心地调试。

标定过程的精确性:
摄像头标定是机器视觉系统中的关键步骤,其精度直接影响到后续图像处理和分析的准确性。通过仔细调整标定板的大小和角点数量,我得到了较为准确的标定结果。这让我深刻体会到了精确标定对于机器人视觉系统的重要性。

ROS社区的支持:
在标定过程中,我参考了ROS社区的大量教程和文档,这些资源对我解决遇到的问题起到了很大的帮助。同时,我也通过ROS论坛和其他开发者进行了交流,共同探讨和解决问题。这让我感受到了ROS社区的强大凝聚力和支持力。

实践中的挑战与收获:
虽然整个标定过程充满了挑战,但我也从中收获了很多。通过实际操作,我更加深入地理解了摄像头标定的原理和方法,也提高了自己的动手能力和解决问题的能力。同时,我也意识到了在机器人开发中,理论知识和实践经验是相辅相成的,需要不断地学习和实践。

总之,这次ROS摄像头标定的经历让我深刻体会到了ROS在机器人视觉系统中的重要性和实用性,也让我更加深入地了解了摄像头标定的原理和方法。我相信这些经验和收获将对我未来的机器人开发工作产生积极的影响。

参考链接

  1. https://blog.csdn.net/qq_45990036/article/details/127579251
  2. https://blog.csdn.net/wakeup_high/article/details/138030786?spm=1001.2014.3001.5502
  • 8
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 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
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值