2020年9月24日 星期四

[ROS] 使用 USB Camera 攝影機 (使用 usb_cam 套件)

前面已經介紹過了,如何透過 libuvc_camera 套件來使用 USB Camera。這一篇要介紹的是另一個套件 usb_cam,透過這個套件一樣可以在 ROS 中使用 USB Camera 攝影機。

 

 

安裝 usb_cam 套件

 

在使用 usb_cam 套件之前,先執行下列指令進行安裝。這個套件包含標準的 V4L USB Camera Driver,可以用來驅動大部分的 USB Camera

 

安裝指令:

 

$ sudo apt-get install ros-kinetic-usb-cam

 

 

檢查 USB Camera 設備檔案是否存在

 

和先前使用 libuvc_camera 套件一樣,先執行下列指令,確認一下 USB Camera 設備檔案是否存在。下面出現的 /dev/video0 設備檔案就是我的 USB Camera 啦!

 

$ ls /dev/video*

/dev/video0

 

 

啟動 usb_cam 節點

 

接下來,分別執行下列三個指令,啟動 ROS Master, usb_cam node,以及 image_view

 

$ roscore

$ rosrun usb_cam usb_cam_node

$ rosrun image_view image_view image:=/usb_cam/image_raw

 

usb_cam 預設會從 /dev/video0 讀取 USB Camera 影像串流,並且發佈到 /usb_cam/image_raw 主題 (Topic),預設採用的 width/height/frame_rate 640x480 30FPS

 

image_view 透過訂閱 /usb_cam/image_raw 來接收 usb_cam 發佈的影像串流,並顯示在螢幕上。所以,如果正常的話,執行上面三個指令之後,應該就可以看到螢幕上顯示 USB Camera 的影像。

 

 

使用 Launch 文件啟動 usb_cam 節點

 

usb_cam 套件有內建一個 Launch 文件,可以直接取代上面三個指令,並且還可以在 Launch 文件裡面修改一些 USB Camera 的參數。如下:

 

-- /opt/ros/kinetic/share/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="1280" />

    <param name="image_height" value="720" />

    <param name="pixel_format" value="mjpeg" />

    <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>

 

可以自行視需要調整上述設定,修改完之後,再執行下列指令啟動 Launch 文件,就可以看到 USB Camera 的影像顯示在螢幕上了。

 

$ roslaunch usb_cam usb_cam-test.launch

 

 

參考資料

 

  1. ROS 下利用 usb_cam 读取图像、opencv 图像、摄像头的标定

https://blog.csdn.net/dengheCSDN/article/details/78983993

 

  1. ROS.org Wiki - usb_cam

http://wiki.ros.org/usb_cam

沒有留言:

張貼留言

和我聯絡

名稱

以電子郵件傳送 *

訊息 *