Skip to main content

ROS_Opencv基础

ROS_Opencv基础1、概述2、进入Docker3、启动USB相机3.1、启动彩色图订阅节点3.2、查看节点图

1、概述

ROS在安装的过程中就已经集成了Opencv3.0以上的版本,所以安装配置几乎不需要过多考虑,ROS 以自己的sensor_msgs/Image消息格式传递图像,无法直接进行图像处理,但是提供的【CvBridge】可以完美转换和被转换图像数据格式。【CvBridge】是一个 ROS 库,相当于ROS和Opencv之间的桥梁。

Opencv和ROS图像数据转换如下图所示:

image-20231016181447397

虽然安装配置不需要过多考虑,但是使用环境还是需要配置的,主要是【package.xml】和【CMakeLists.txt】这两个文件。该功能包不仅仅是使用【CvBridge】,还需要【Opencv】和【PCL】,所以一起配置完毕。

  • package.xml

添加如下内容,

< build_depend > sensor_msgs </ build_depend > < build_export_depend > sensor_msgs </ build_export_depend > < exec_depend > sensor_msgs </ exec_depend > < build_depend > std_msgs </ build_depend > < build_export_depend > std_msgs </ build_export_depend > < exec_depend > std_msgs </ exec_depend > < build_depend > cv_bridge </ build_depend > < build_export_depend > cv_bridge </ build_export_depend > < exec_depend > cv_bridge </ exec_depend > < exec_depend > image_transport </ exec_depend >

【cv_bridge】:图像转换依赖包。

  • CMakeLists.txt

该文件配置内容较多,具体内容请查看源文件。

2、进入Docker

​ x sh ~/ros_melodic.sh

image-20250115195931931

3、启动USB相机

终端输入,

xxxxxxxxxx roslaunch usb_cam usb_cam-test.launch

查看话题

xxxxxxxxxx rostopic list

image-20231016181841522

常用的有/usb_cam/image_raw和/usb_cam/image_raw/compressed。前者是正常的图像,后者是压缩后的图像。

查看话题的编码格式:rostopic echo +【topic】+encoding,例如,

xxxxxxxxxx rostopic echo /usb_cam/image_raw/encoding

image-20231016182212833

3.1、启动彩色图订阅节点

xxxxxxxxxx roslaunch usb_cam usb_cam-test.launch rosrun yahboomcar_visual usb_cam_image.py

3.2、查看节点图

终端输入,

xxxxxxxxxx rqt_graph

image-20231016182814425