2020年9月24日 星期四

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

在前面兩篇文章中,我們已經介紹了 libuvc_camera usb_cam 這兩個 USB Camera 相關的套件。接下來,我們要介紹另外一個套件 cv_camera,這個套件透過 OpenCV 來擷取 USB Camera 的影像。除了前面兩個套件之外,也可以選擇這個套件來使用 USB Camera 攝影機。

 

 

安裝 cv_camera 套件

 

在使用 cv_camera 套件之前,先執行下列指令進行安裝。這個套件主要是透過 OpenCV 來擷取 USB Camera 的影像。

 

安裝指令:

 

$ sudo apt-get install ros-kinetic-cv-camera

 

 

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

 

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

 

$ ls /dev/video*

/dev/video0

 

 

啟動 cv_camera 節點

 

接下來,依序執行下列指令,啟動 ROS Master, cv_camera node,以及 image_view

 

啟動 ROS Master

 

$ roscore

 

設定並啟動 cv_camera

 

$ rosparam set cv_camera/device_id 0

$ rosrun cv_camera cv_camera_node

 

啟動 image_view

 

$ rosrun image_view image_view image:=/cv_camera/image_raw

 

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

 

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

 

 

使用 Launch 文件啟動 cv_camera 節點

 

我們也可以編寫一個 Launch 文件來取代上述的指令,並且還可以在 Launch 文件裡面設定一些 USB Camera 的參數。如下:

 

-- /opt/ros/kinetic/share/cv_camera/launch/mycamera.launch

<launch>

  <node name="cv_camera" pkg="cv_camera" type="cv_camera_node" output="screen" >

    <param name="device_id" type="int" value="0" />

    <param name="image_width" value="1280" />

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

  </node>

  <node name="image_view" pkg="image_view" type="image_view" respawn="false" output="screen">

    <remap from="image" to="/cv_camera/image_raw"/>

    <param name="autosize" value="true" />

  </node>

</launch>

 

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

 

$ roslaunch cv_camera mycamera.launch

 

 

參考資料

 

  1. ROS cv_camera 获取 USB 摄像头图像

https://www.jianshu.com/p/bbc8fae6710c

 

  1. ROS.org Wiki - cv_camera

http://wiki.ros.org/cv_camera

 

  1. ubuntu14.04 利用ros usb_cam包驅動攝像頭後顯示圖像上下顛倒的解決方法

https://blog.csdn.net/zhuoyueljl/article/details/78042349

沒有留言:

張貼留言

和我聯絡

名稱

以電子郵件傳送 *

訊息 *