ROS中使用摄像头的问题
ROS中使用攝像頭的問題
0.prepare
4 . 安裝uvc_cam
??? $ sudo apt-get install ros-indigo-uvc-camera
??? $ source /opt/ros/indigo/setup.bash
采用apt-get的方式,直接裝在了ROS的安裝路徑中,并設置工作路徑。
安裝成功后在/opt/ros/hydro/的路徑中就會找到uvc_camera_node。
5 . 運行節點顯示攝像頭內容
??? $ rosrun uvc_camera uvc_camera_node
??? $ rosrun image_view image_view image:=/image_raw
以上測試均可用于啟動usb攝像頭。
?
一、前言
在ROS下常用的主要有兩種驅動包:usb_cam和uvc_cam
我這里用的是usb_cam包
第一次使用首先要安裝這個包,安裝完了之后就可以很方便的運行攝像頭節點了
二、安裝usb_cam包
首次使用需要下載安裝usb_cam包
這里參考博客:How to Use a Webcam in ROS with the usb_cam Package
三種方式安裝:
1、可以直接用apt-get install命令
[html] view plain copy
- $?sudo?apt-get?install?ros-hydro-bosch-drivers??
注意上面的hydro要替換成你的ROS版本
?
2、也可以下載usb_cam源代碼自己編譯
有網友提示說第二種方法不能運行,可能是因為svn上源碼版本太低,編譯無法生成可執行文件,所以launch文件找不到usb_cam_node節點
[html] view plain copy
- $?cd?catkin_ws??
- $?svn?co?https://bosch-ros-pkg.svn.sourceforge.net/svnroot/bosch-ros-pkg/trunk/stacks/bosch_drivers??
- $?rospack?profile??
- $?roscd?usb_cam??
- $?rosmake?--rosdep-install??
上面的catkin_ws是你創建的catkin工作空間的名字,一般會將軟件包建在catkin空間中
3、還有第三種安裝方式,我是用這種方法下載并編譯的
[html] view plain copy
- $?cd?catkin_ws/src??
- $?git?clone?https://github.com/bosch-ros-pkg/usb_cam.git??
- $?cd?..??
- $?catkin_make??
需要確保usb_cam安裝過程中沒有錯誤
- Bug / feature tracker:?https://github.com/bosch-ros-pkg/usb_cam/issues
- Source: git?https://github.com/bosch-ros-pkg/usb_cam.git?(branch: master)
- ROS wiki:http://wiki.ros.org/usb_cam
三、運行usb_cam_node開啟攝像頭
打開一個新的終端,運行roscore
[html] view plain copy
- $?roscore??
新版本的usb_cam包在launch文件夾下有自帶的launch文件,名叫usb_cam-test.launch
我們可以直接cd到這個文件夾下運行它
[html] view plain copy
- $?cd??
- $?cd?catkin_ws/src/usb_cam/launch??
- $?roslaunch?usb_cam-test.launch??
如果工作空間的usb_cam包中不帶這個launch文件我們就要新建它:
打開catkin_ws/src/usb_cam/launch文件夾,在其中新建一個文件,把名字改為usb_cam-test.launch
用文本編輯器打開,寫入以下代碼:
[html] view plain copy
- <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>??
保存,并關閉這個文件。然后同樣要cd到launch文件夾才能運行這個文件:
[html] view plain copy
- $?cd??
- $?cd?catkin_ws/src/usb_cam/launch??
- $?roslaunch?usb_cam-test.launch?
?
四、遇到的問題
1、報錯[usb_cam-test.launch] is not a launch file name
運行完roslaunch usb_cam-test.launch后報錯說usb_cam-test.launch不是一個launch文件,這是因為沒有cd到catkin_ws/src/usb_cam/launch文件夾下,系統找不到這個launch文件
或者如果事先source了該工作空間,可以在任意目錄下運行roslaunch usb_cam usb_cam-test.launch都行
2、對于有些節點沒有跑起來的情況,可以從下載的catkin_ws/src/usb_cam中找到相應的.py文件然后用cp命令復制到opt/ros/hydro/的相應文件夾下
這篇文章:配置ROS工作空間catkin+rosbuild對于理解ROS的文件系統很有幫助
3、如果出現報錯“sh: 1: v4l2-ctl: not found”則需要安裝v4l2
運行:sudo apt-get install v4l-utils
?
?
?
?
?
總結
以上是生活随笔為你收集整理的ROS中使用摄像头的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 为啥台风暴雨没有绿色预警信号?
- 下一篇: 值多少?100速来拜托了