相机标定 matlab opencv ROS三种方法标定步骤(3)

本文涉及的产品
资源编排,不限时长
简介: 三 ,  ROS 环境下 如何进行相机标定    刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机,  要知道如何查看节点之间的流程图  rosrun rqt_graph rqt_graph ,如何查看我们运行的节点  rosnode l...

 

三 ,  ROS 环境下 如何进行相机标定

    刚开始做到的时候遇到一些问题没有记录下来,现在回头写的时候都是没有错误的结果了,首先使用ROS标定相机,

  要知道如何查看节点之间的流程图  rosrun rqt_graph rqt_graph ,如何查看我们运行的节点  rosnode list,    查看运行的话题 rostopic list  或者rostopic list -v 查看每个节点的性质

    首先需要学习的是  wiki.ros.org/cv_bridge/Tutorials/UsingCvBridgeToConvertBetweenROSImagesAndOpenCVImages

    了解cv_bridge 这个程序包是连接ROS和Opencv的程序包,就好像是一个桥梁的作用一样,关系图:

                cvbridge4.png

     紧接着可以学习     wiki.ros.org/image_common?distro=indigo   这个就是就是教你如何去订阅和发布图像或者视频的话题等问题

      那么其中功能最多的就是   wiki.ros.org/image_pipeline?distro=indigo  这个程序包里面就有我们想要的相机标定的程序以及方法

同时最重要的是  要驱动摄像头安装包就在于  wiki.ros.org/image_pipeline?distro=indigo   这里我用的是USB 的就可以对应下载该程序包然后

catkin_make一下就可以驱动摄像头,可以看到原始图像,运行看到的结果:

顺利的启动摄像头就可以学习如何去标定相机了

 因为就是用别人的代码也没什么改动,所以直接下载所提及的程序包,然后catkin_make

一般都不会有什么错误出现,命令窗口执行            

                                               $ roscore

                                               $ roslaunch usb_cam usb_cam-test.launch   (可以在.launch文件里修改要用的摄像头,比如笔记本的摄像头是/dev/video0,外接USB摄像头是/dev/video1)

                                               $  rosrun camera_calibration cameracalibrator.py --size 8x6 --square 0.035 image:=/usb_cam/image_raw camera:=/usb_cam

   (这里的标定模板我是用A3纸张打印出来,为8*6     35mm的标定棋盘)

    所以   参数要改为与实际标定模板一致的数据        --size 8x6 --square 0.035               

   image:=/usb_cam/image_raw camera:=/usb_cam     就是要对应USB 摄像头的原始的节点和话题(我就刚开始没有对上号)

   (完全按照网上的步骤来是不会出现想要的结果的)

 我们可以使用  rosrun rqt_graph rqt_graph  来查看是否calibraton节点是否已经订阅成功如图:(倘若cameracalibrator与usb_cam没有订阅成功,就需要使用

rostopic list -v 查看话题)

  

运行的结果           如图

直到采集了50个采样点  左边的CALIBRATE变为绿色  就可以点击开始标定,结束后会将标定结果打印到命令窗口:

后续还有很多内容可以写上去,暂时就到这里

(大神请忽略,谢谢)

 

相关实践学习
使用ROS创建VPC和VSwitch
本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。
阿里云资源编排ROS使用教程
资源编排(Resource Orchestration)是一种简单易用的云计算资源管理和自动化运维服务。用户通过模板描述多个云计算资源的依赖关系、配置等,并自动完成所有资源的创建和配置,以达到自动化部署、运维等目的。编排模板同时也是一种标准化的资源和应用交付方式,并且可以随时编辑修改,使基础设施即代码(Infrastructure as Code)成为可能。 产品详情:https://www.aliyun.com/product/ros/
相关文章
|
4月前
|
计算机视觉 索引
OpenCV4学习笔记(2):显示相机视频流的帧率
这篇文章是OpenCV4学习笔记的第二部分,介绍了如何通过OpenCV4在显示相机视频流时计算并显示其帧率,使用`getTickCount`和`getTickFrequency`函数来测量帧时间,并用`putText`在图像上绘制帧率信息。
OpenCV4学习笔记(2):显示相机视频流的帧率
|
4月前
|
算法 计算机视觉 Python
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
该文章详细介绍了使用Python和OpenCV进行相机标定以获取畸变参数,并提供了修正图像畸变的全部代码,包括生成棋盘图、拍摄标定图像、标定过程和畸变矫正等步骤。
python利用opencv进行相机标定获取参数,并根据畸变参数修正图像附有全部代码(流畅无痛版)
|
4月前
|
传感器 机器人 测试技术
ROS相机内参标定详细步骤指南
本文是关于ROS相机内参标定的详细步骤指南,包括了标定的目的、原理、所需材料、具体操作流程以及标定结果的分析。文章以Ubuntu20.04和ROS1 Noetic为测试环境,适用于单目RGB相机的内参标定,使用ros-noetic-camera-calibration工具包进行操作,并提供了标定过程中的注意事项和建议。
256 1
ROS相机内参标定详细步骤指南
|
4月前
|
算法 定位技术 vr&ar
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
577 0
一文了解PnP算法,python opencv中的cv2.solvePnP()的使用,以及使用cv2.sovlePnP()方法标定相机和2D激光雷达
|
7月前
|
存储 监控 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现相机图像转换为AVI视频格式(C++)
78 0
|
7月前
|
算法 数据安全/隐私保护
matlab程序,地震波三联反应谱,标定三联谱,三联反应谱
地震波格式转换、时程转换、峰值调整、规范反应谱、计算反应谱、计算持时、生成人工波、时频域转换、数据滤波、基线校正、Arias截波、傅里叶变换、耐震时程曲线、脉冲波合成与提取、三联反应谱、地震动参数、延性反应谱、地震波缩尺、功率谱密度
|
7月前
|
Ubuntu
【ubuntu】ubuntu20.04安装ros noetic(亲测有效,附操作步骤)
【ubuntu】ubuntu20.04安装ros noetic(亲测有效,附操作步骤)
|
7月前
|
存储 传感器 算法
相机标定系列---opencv相关标定算子
相机标定系列---opencv相关标定算子
157 0
|
7月前
|
存储 新制造 C#
Baumer工业相机堡盟工业相机如何使用OpenCV实现相机图像的显示(C#)
Baumer工业相机堡盟工业相机如何使用OpenCV实现相机图像的显示(C#)
73 1
|
7月前
|
监控 算法 开发工具
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现获取图像并对图像进行边缘检测(C++)
Baumer工业相机堡盟工业相机如何联合NEOAPI SDK和OpenCV实现获取图像并对图像进行边缘检测(C++)
64 1

热门文章

最新文章

推荐镜像

更多