$ sudo apt install libgstreamer1.0-0 gstreamer1.0-tools
$ sudo apt install v4l-utils
下記で認識しているか確認
v4l2-ctl --list-devices
下記のように表示されればOK
GMSL2-USB3.0 Conversion Kit (usb-0000:00:14.0-4):
/dev/video0
/dev/video1
v4lでvideo0にアクセスすれば画像が取れる。
https://github.com/tier4/usb_cam
ただし、ここのソースを落としてcolcon buildしてもエラーが発生。
下記のバイナリーで実行
aptでインストール
$ sudo apt get install ros-<ros2-distro>-usb-cam
foxyでもOKだった。
下記のコマンドで実行
$ ros2 run usb_cam usb_cam_node_exe --ros-args --params-file ~/ros2_ws/src/usb_cam/config/params.yaml
ファイルのパラメータはHPのgit cloneではなぜか落とせないので、直接落としてくる必要あり?
このリポジトリもsrcにおいておいてもコンパイルできないので、別にパラメータを置く場所を決めたほうが良い。
また、デフォルトで設定してある
pixel_format: "yuyv"
では色がおかしくなるので下記に変更
pixel_format: "uyvy"
というか、下記のコマンドをコマンドラインに書けばOK
ros2 run usb_cam usb_cam_node_exe --ros-args \
-p video_device:=/dev/video0 \
-p framerate:=30.0 \
-p pixel_format:=uyvy \
-p image_width:=1920 \
-p image_height:=1280
#下記RQTで画面確認
$ ros2 run rqt_image_view rqt_image_view
ROS2をやらなくても下記のpythonのプログラムで画像取得可能
import cv2
cap = cv2.VideoCapture(0)
while True:
ret, frame = cap.read()
if not ret:
break
key = cv2.waitKey(1)
if key == 27: # when ESC key is pressed break
break
cv2.imshow('camera', frame)
cap.release()
cv2.destroyAllWindows()