ROS下获取USB免驱动高速摄像头图像数据

开发环境

PC系统 ubuntu14.04
USB摄像头:Logitech C920
ROS版本 indigo
ROS_package uvc_camera
uvc_camera ROS pkg and camera_calibration.yaml for ARTag

大前提,大家的电脑已经安装了Linux系统,并安装了相应的ROS

使用uvc_camera package

1. 安装uvc_camera package

方法一
sudo apt-get install ros-indigo-uvc-camera
source /opt/ros/indigo/setup.bash 、
但是因为我的软件源,无法下载安装,为此我尝试了更改源,并把一些ROS源添加到/etc/apt/sources.list中,但都没有成功
deb http://ros.exbot.net/rospackage/ros/ubuntu/ trusty main #易科实验室做的ROS镜像源

deb http://mirrors.ustc.edu.cn/ros/ubuntu/ trusty main
deb http:/ros.exbot.NET/rospackage/ros/ubuntu $(lsb_release -sc) main

方法二 直接下载uvc camera package ,然后自己编译

-下载 uvc_camera ROS pkg and camera_calibration.yaml for ARTag
-编译
将下载的package 放在ROS的工作空间中,一般为~/catkin_ws/src/。
然后在工作空间的根目录下(~/catkin_ws)进行编译:

catkin_make

2. 测试和查看安装结果

为了验证自己uvc_camera是否安装成功,首先进行查看

rospack list //查看package列表中是否有uvc_camera
rospack find uvc_camera //这个就是我们刚才安装时候的路径
roscd uvc_camera //定位到这个功能包的路径下
rosls //查看它的文件结构
.launch文件是一个多节点同时运行的一个配置文件 src是源码文件夹

测试一下是否能用 uvc_camera获取到图像

开启一个终端 roscore
开启一个终端 rosrun uvc_camera uvc_camera_node
开启一个终端 rqt_image_view 选择/image_raw
如果看到图像,说明uvc_camera可以正常运行

3. 配置自己的.launch文件

定位到 uvc_camera的launch文件夹下

roscd uvc_camera
ls
cd launch
vim my_camera_node.launch

<launch>  
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">  
    <param name="width" type="int" value="1920" />  
    <param name="height" type="int" value="1080" />  
    <param name="fps" type="int" value="30" />  
    <param name="frame" type="string" value="wide_stereo" />  

    <param name="auto_focus" type="bool" value="False" />  
    <param name="focus_absolute" type="int" value="0" />  
    <!-- other supported params: auto_exposure, exposure_absolute, brightness, power_line_frequency -->  

    <param name="device" type="string" value="/dev/video0" />  
    <param name="camera_info_url" type="string" value="file://$(find uvc_camera)/example.yaml" />  
  </node>  
</launch>  

测试,自己的Lauren文件 要在launch文件夹下运行

runlaunch my_camera_node.launch

运行的过程
启动roscore –>运行节点 (launch文件)–>查看图像
查看图像有两种方法

一 rqt_image_view
二 rosrun image_view image_view image:=/image_raw

深入研究库文件

git clone https://github.com/ros-drivers/camera_umd.git
然后将 uvc_camera package 放到自己的ROS workspace中,
然后catkin_make 发现有一个错误,找不到libv4l2.h
说明这个包是通过v4l2来捕获图像的,所以缺少v4l2的库文件
sudo apt-get install libv4l-dev
再编译 OK 通过

参考
ROS下UVC免驱高速摄像头图像读取以及利用image_transport进行图像传递
./launch文件分析
uvc_camera_wiki

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
您好!要在ROS中使用USB摄像头,您需要进行以下步骤: 1. 首先,确保您已经安装了ROS,并且创建了一个ROS工作空间。 2. 连接您的USB摄像头到计算机上,并确保它已被正确识别。您可以通过运行`lsusb`命令来查看已连接的USB设备列表,确认摄像头是否显示在其中。 3. 在ROS工作空间的src目录下,创建一个新的包,例如`camera_pkg`,并初始化该包: ``` cd ~/catkin_ws/src catkin_create_pkg camera_pkg rospy ``` 4. 在`camera_pkg`包下创建一个新的节点文件,例如`camera_node.py`,并添加以下内容: ```python #!/usr/bin/env python import rospy from sensor_msgs.msg import Image from cv_bridge import CvBridge import cv2 def camera_callback(data): bridge = CvBridge() cv_image = bridge.imgmsg_to_cv2(data, "bgr8") cv2.imshow("USB Camera", cv_image) cv2.waitKey(1) def camera_node(): rospy.init_node("camera_node", anonymous=True) rospy.Subscriber("/usb_camera_topic", Image, camera_callback) rospy.spin() if __name__ == '__main__': try: camera_node() except rospy.ROSInterruptException: pass ``` 5. 保存并关闭文件后,给节点文件添加可执行权限: ``` chmod +x camera_node.py ``` 6. 编译ROS工作空间: ``` cd ~/catkin_ws catkin_make ``` 7. 运行节点: ``` rosrun camera_pkg camera_node.py ``` 这样,ROS节点将订阅名为`/usb_camera_topic`的图像消息,并显示在名为"USB Camera"的窗口中。您可以根据需要修改节点文件中的话题名称和图像显示方式。 希望这对您有帮助!如有任何问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一銤阳光

希望分享的内容对你有帮助

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值