ROS中使用攝像頭的問題

一、前言

在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命令

$ sudo apt-get install ros-hydro-bosch-drivers
注意上面的hydro要替換成你的ROS版本


2、也可以下載usb_cam源代碼自己編譯

有網友提示說第二種方法不能運行,可能是因爲svn上源碼版本太低,編譯無法生成可執行文件,所以launch文件找不到usb_cam_node節點

$ 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、還有第三種安裝方式,我是用這種方法下載並編譯的

$ cd catkin_ws/src
$ git clone https://github.com/bosch-ros-pkg/usb_cam.git
$ cd ..
$ catkin_make

需要確保usb_cam安裝過程中沒有錯誤

三、運行usb_cam_node開啓攝像頭

打開一個新的終端,運行roscore
$ roscore
新版本的usb_cam包在launch文件夾下有自帶的launch文件,名叫usb_cam-test.launch
我們可以直接cd到這個文件夾下運行它
$ 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
用文本編輯器打開,寫入以下代碼:
<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文件夾才能運行這個文件:
$ 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







發佈了40 篇原創文章 · 獲贊 153 · 訪問量 44萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章