ROS下使用usb_cam驱动读取摄像头数据

因为darknet_ros会直接订阅指定的图像话题名,然后对图像进行检测,绘制检测框,并发布相应的检测话题,因此首先需要找一个能够发布图像话题的ROS包,这里经推荐使用ROS官方提供的usb_cam驱动包,可以直接将小车摄像头采集的图像发布为ROS图像话题。

1、下载摄像头驱动包usb_cam

# 方式一:直接终端输入,通过apt便捷安装
cd test/src/
sudo apt-get install ros-melodic-usb-cam
# 方式二:通过下载源码安装
git clone https://github.com/ros-drivers/usb_cam

2、发布摄像头图像话题

cd usb_cam
roslaunch usb_cam usb_cam-test.launch

其中usb_cam-test.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"/>
  </node>
  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">
    <remap from="image" to="/usb_cam/image_raw"/>
    <param name="autosize" value="true" />
  </node>
</launch>

pkg 指定的是 usb_cam功能包 

type 指定的是 python 编写的 usb_cam_node.py 文件 

name 是 launch 里对节点重命的名为 usb_cam,也可以是其他名称 

output 输出方式为在屏幕输出 编写保存后即可通过 launch 的方法启动

如果出现如下报错:
在这里插入图片描述解决办法:

cd usb_cam
sudo apt-get install ros-melodic-image-view
roslaunch usb_cam usb_cam-test.launch

此时可看到摄像头发布的图像话题。

3、查看节点和话题

bingda@ubuntu:~$ rosnode list
/image_view
/rosout
/usb_cam
bingda@ubuntu:~$ rostopic list
/image_view/output
/image_view/parameter_descriptions
/image_view/parameter_updates
/rosout
/rosout_agg
/usb_cam/camera_info
/usb_cam/image_raw

4、在rviz中显示摄像头数据

虚拟机终端命令打开rviz:

rviz

然后Add添加topic,在By topic中选择/usb_cam/image_raw,点击ok,即可实时显示摄像头数据。

  • 4
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要订阅usb_cam读取到的摄像头信息,你可以使用ROS中的图像订阅器。以下是一些步骤来实现这个目标: 1. 首先,确保你已经安装了usb_cam驱动包。你可以通过apt-get命令或者从源码进行安装。 2. 启动usb_cam节点,发布摄像头图像话题。你可以使用roslaunch命令来启动usb_cam节点,例如: ``` roslaunch usb_cam usb_cam-test.launch ``` 3. 查看节点和话题,确保usb_cam节点已经在运行并发布了图像话题。你可以使用rosnode list命令查看节点列表,使用rostopic list命令查看话题列表。 4. 创建一个ROS订阅器节点,订阅usb_cam发布的图像话题。你可以使用rospy(Python)或者roscpp(C++)来编写订阅器节点的代码。 - 在Python中,你可以使用rospy.Subscriber来创建一个订阅器对象,并指定要订阅的话题和回调函数。回调函数将在接收到新的图像消息时被调用。 - 在C++中,你可以使用ros::Subscriber类来创建一个订阅器对象,并指定要订阅的话题和回调函数。回调函数将在接收到新的图像消息时被调用。 在回调函数中,你可以处理接收到的图像数据,例如显示图像、进行图像处理等。 请注意,你需要确保订阅器节点和usb_cam节点在同一个ROS网络中运行,以便它们可以相互通信。 希望这些步骤可以帮助你订阅usb_cam读取到的摄像头信息。 #### 引用[.reference_title] - *1* *3* [ROS使用usb_cam驱动读取摄像头数据](https://blog.csdn.net/Yangxiaoaijiejie/article/details/127061479)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [【ROS2】使用摄像头功能包 usb_cam](https://blog.csdn.net/u010168781/article/details/131120968)[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^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值