前面已經介紹過了,如何透過 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
參考資料
- ROS 下利用 usb_cam 读取图像、opencv 图像、摄像头的标定
https://blog.csdn.net/dengheCSDN/article/details/78983993
- ROS.org Wiki - usb_cam
沒有留言:
張貼留言