开山第一篇笔记+教程(发给热爱ROS的童鞋)——ROS下读取摄像头图像 图像转换

本文详细介绍了如何使用ROS (Robot Operating System) 和 OpenCV 创建一个图像处理节点。该节点能够从摄像头获取图像,并进行必要的图像处理后重新发布。文章包括了安装配置、代码编写及运行的全过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


写一个node节点,接收图像,并将处理后的图像发布出去。

关于(不注意Note 的童鞋在这上面浪费好多时间)
http://wiki.ros.org/cv_bridge_redesign 是针对于 diamondback版本的。
http://wiki.ros.org/image_transport/Tutorials 是针对老版本  <cv_bridge / CvBridge.h>类型的教程。但publish 和cubscribe 的形式值得学习。

言归正传,
我主要参考的是 

工具: uvc_camera
安装 uvc_camera, 打开 https://github.com/ktossell/camera_umd
选择最右边的 ,选择 到Ubuntu命令行输入
rosdep install uvc_camera 查看依赖是否满足
进入目录查看哪种编译方式,rosmake还是catkin。发现是package.xml用catkin_make -j8编译(-j8针对4核以上电脑),安装完成。

通读
此教程
在catkin目录的src文件夹下创建包cv_projects
catkin_create_pkg cv_projects sensor_msg cv_bridge roscpp std_msgs image_transport

关于CMakeList.txt文件的编写参照之前的教程 

我在最后添加
add_executable(cv_test src/cv_test.cpp)
target_link_libraries(cv_test ${catkin_LIBRARIES})

由于例子中的节点是从 " /camera/image_raw "  中订阅消息,为了保证源码的完整性,这里要通过launch文件将其路径remap一下。
image_sub_ = it_.subscribe("/camera/image_raw", 1,  &ImageConverter::imageCb, this);

这里我在cv_projects目录下新建launch目录,添加cv_test.launch文件
<launch>
     <node name="cv_test" pkg="cv_projects" type="cv_test">
          <remap from="camera/image_raw" to="image_raw"/>
     </node>
</launch>

这里将"camera/image_raw"路径改为了"image_raw"是因为我们运行
启动摄像头节点:$rosrun uvc_camera uvc_camera_node
查看话题: $rostopic list 
发现如下列表
/camera_info
/image_raw
/image_raw/compressed
/image_raw/compressed/parameter_descriptions
/image_raw/compressed/parameter_updates
/image_raw/compressedDepth
/image_raw/compressedDepth/parameter_descriptions
/image_raw/compressedDepth/parameter_updates
/image_raw/theora
/image_raw/theora/parameter_descriptions
/image_raw/theora/parameter_updates
因此改为接收/image_raw  topic

至此代码完毕。

运行:
首先启动ROS核:$roscore

启动摄像头节点:$rosrun uvc_camera uvc_camera_node

启动程序:$roslaunch cv_projects cv_test.launch





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值