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图像数据转换如下图所示:

虽然安装配置不需要过多考虑,但是使用环境还是需要配置的,主要是【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

3、启动USB相机
终端输入,
xxxxxxxxxx roslaunch usb_cam usb_cam-test.launch
查看话题
xxxxxxxxxx rostopic list

常用的有/usb_cam/image_raw和/usb_cam/image_raw/compressed。前者是正常的图像,后者是压缩后的图像。
查看话题的编码格式:rostopic echo +【topic】+encoding,例如,
xxxxxxxxxx rostopic echo /usb_cam/image_raw/encoding

3.1、启动彩色图订阅节点
xxxxxxxxxx roslaunch usb_cam usb_cam-test.launch rosrun yahboomcar_visual usb_cam_image.py
3.2、查看节点图
终端输入,
xxxxxxxxxx rqt_graph
