[Ubuntu][HDMICapture]

何を学習するのか?

Aliで購入した激安HDMI CaptureをUbuntuで試してみる。
USB-UVC対応なのでドライバーなど気にせず動く予定。。。

Hd 1080p 4 hdmiビデオキャプチャカードusbへのhdmi 2.0 3.0 ビデオキャプチャボードゲーム記録ライブストリーミング放送ローカルループアウト|ビデオ & テレビチューナーカード| – AliExpress

Ubuntuに繋いで確認する

$ ls -la /dev/video*
crw-rw----+ 1 root video 81, 0  8月 17 17:27 /dev/video0
crw-rw----+ 1 root video 81, 1  8月 17 17:27 /dev/video1

$sudo apt-get install -y v4l-utils qv4l2
$ v4l2-ctl -d /dev/video0 --all  
Driver Info (not using libv4l2):
	Driver name   : uvcvideo
	Card type     : USB Video: USB Video
	Bus info      : usb-0000:0a:00.3-3
	Driver version: 5.4.44
	Capabilities  : 0x84A00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps   : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 1920/1080
	Pixel Format      : 'MJPG'
	Field             : None
	Bytes per Line    : 0
	Size Image        : 4147200
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Full Range)
	Flags             : 
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 1920, Height 1080
	Default     : Left 0, Top 0, Width 1920, Height 1080
	Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080
Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 30.000 (30/1)
	Read buffers     : 0
                     brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180
                            hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0
// -d 0 /dev/video0
$ v4l2-ctl -d 0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Index       : 0
	Type        : Video Capture
	Pixel Format: 'MJPG' (compressed)
	Name        : Motion-JPEG
		Size: Discrete 1920x1080
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1360x768
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x1024
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x960
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1024x768
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 720x576
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 720x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)

	Index       : 1
	Type        : Video Capture
	Pixel Format: 'YUYV'
	Name        : YUYV 4:2:2
		Size: Discrete 1920x1080
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1360x768
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x1024
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x960
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1024x768
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 720x576
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 720x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
$  lsmod | grep uvcvideo
uvcvideo               94208  0
videobuf2_vmalloc      20480  2 gspca_main,uvcvideo
videobuf2_v4l2         24576  2 gspca_main,uvcvideo
videobuf2_common       53248  3 gspca_main,videobuf2_v4l2,uvcvideo
videodev              217088  5 gspca_main,videobuf2_v4l2,uvcvideo,videobuf2_common,gspca_vc032x
mc                     53248  5 videodev,snd_usb_audio,videobuf2_v4l2,uvcvideo,videobuf2_common

どうみてもFHD キャプチャにみえる。
あああ、4K UHD Input、FHD Capture ってAliのページに書いてあるw

以下のコマンドで表示を確認

$ qv4l2
$cheese

ROS で利用する

// terminal 1
$roscore
// terminal 2
$rosrun uvc_camera uvc_camera_node
// terminal 3
$rosrun image_view image_view image:=/image_raw
 OR
$rqt_image_view image:=/image_raw

表示されたが アスペクト比、解像度がやばい。

ROS 入力の設定

ROS uvc_cameraを起動する時
以下のような表示が確認できる。

$ rosrun uvc_camera uvc_camera_node 
[ INFO] [1597659279.084749574]: using default calibration URL
[ INFO] [1597659279.085553083]: camera calibration URL: file:///home/max/.ros/camera_info/camera.yaml
[ INFO] [1597659279.085607083]: Unable to open camera calibration file [/home/max/.ros/camera_info/camera.yaml]
[ WARN] [1597659279.085639133]: Camera calibration file /home/max/.ros/camera_info/camera.yaml not found.
opening /dev/video0
pixfmt 0 = 'MJPG' desc = 'Motion-JPEG'
  discrete: 1920x1080:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1600x1200:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1360x768:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x1024:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x960:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x720:   1/60 1/50 1/30 1/20 1/10 
  discrete: 1024x768:   1/60 1/50 1/30 1/20 1/10 
  discrete: 800x600:   1/60 1/50 1/30 1/20 1/10 
  discrete: 720x576:   1/60 1/50 1/30 1/20 1/10 
  discrete: 720x480:   1/60 1/50 1/30 1/20 1/10 
  discrete: 640x480:   1/60 1/50 1/30 1/20 1/10 
pixfmt 1 = 'YUYV' desc = 'YUYV 4:2:2'
  discrete: 1920x1080:   1/5 
  discrete: 1600x1200:   1/5 
  discrete: 1360x768:   1/8 
  discrete: 1280x1024:   1/8 
  discrete: 1280x960:   1/8 
  discrete: 1280x720:   1/10 
  discrete: 1024x768:   1/10 
  discrete: 800x600:   1/20 1/10 1/5 
  discrete: 720x576:   1/25 1/20 1/10 1/5 
  discrete: 720x480:   1/30 1/20 1/10 1/5 
  discrete: 640x480:   1/30 1/20 1/10 1/5 
terminate called after throwing an instance of 'std::runtime_error'
  what():  pixel format unavailable

uvc_camera 設定項目を確認してみる

uvc_camera – ROS Wiki

$ rostopic list
/camera_info
/image_raw
/image_raw/compressed
/image_raw/compressed/parameter_descriptions
/image_raw/compressed/parameter_updates
/image_raw/compressedDepth
/image_raw/compressedDepth/parameter_descriptions
/image_raw/compressedDepth/parameter_updates
/image_raw/theora
/image_raw/theora/parameter_descriptions
/image_raw/theora/parameter_updates
$ rostopic echo /camera_info
header: 
  seq: 428
  stamp: 
    secs: 1597701883
    nsecs: 839161815
  frame_id: "camera"
height: 1080
width: 1920
distortion_model: ''
D: []
K: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
R: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
P: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
binning_x: 0
binning_y: 0
roi: 
  x_offset: 0
  y_offset: 0
  height: 0
  width: 0
  do_rectify: False
---
header: 
  seq: 429
  stamp: 
    secs: 1597701884
    nsecs:  37835990
  frame_id: "camera"
height: 1080
width: 1920
distortion_model: ''
D: []
K: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
R: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
P: [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]
binning_x: 0
binning_y: 0
roi: 
  x_offset: 0
  y_offset: 0
  height: 0
  width: 0
  do_rectify: False
---
$ rostopic echo /image_raw/compressed/parameter_descriptions
groups: 
  - 
    name: "Default"
    type: ''
    parameters: 
      - 
        name: "format"
        type: "str"
        level: 0
        description: "Compression format"
        edit_method: "{'enum_description': 'Enum to set the compression format', 'enum': [{'srcline': 9,\
  \ 'description': 'JPEG lossy compression', 'srcfile': '/tmp/binarydeb/ros-melodic-compressed-image-transport-1.9.5/cfg/CompressedPublisher.cfg',\
  \ 'cconsttype': 'const char * const', 'value': 'jpeg', 'ctype': 'std::string', 'type':\
  \ 'str', 'name': 'jpeg'}, {'srcline': 10, 'description': 'PNG lossless compression',\
  \ 'srcfile': '/tmp/binarydeb/ros-melodic-compressed-image-transport-1.9.5/cfg/CompressedPublisher.cfg',\
  \ 'cconsttype': 'const char * const', 'value': 'png', 'ctype': 'std::string', 'type':\
  \ 'str', 'name': 'png'}]}"
      - 
        name: "jpeg_quality"
        type: "int"
        level: 0
        description: "JPEG quality percentile"
        edit_method: ''
      - 
        name: "png_level"
        type: "int"
        level: 0
        description: "PNG compression level"
        edit_method: ''
    parent: 0
    id: 0
max: 
  bools: []
  ints: 
    - 
      name: "jpeg_quality"
      value: 100
    - 
      name: "png_level"
      value: 9
  strs: 
    - 
      name: "format"
      value: ''
  doubles: []
  groups: 
    - 
      name: "Default"
      state: True
      id: 0
      parent: 0
min: 
  bools: []
  ints: 
    - 
      name: "jpeg_quality"
      value: 1
    - 
      name: "png_level"
      value: 1
  strs: 
    - 
      name: "format"
      value: ''
  doubles: []
  groups: 
    - 
      name: "Default"
      state: True
      id: 0
      parent: 0
dflt: 
  bools: []
  ints: 
    - 
      name: "jpeg_quality"
      value: 80
    - 
      name: "png_level"
      value: 9
  strs: 
    - 
      name: "format"
      value: "jpeg"
  doubles: []
  groups: 
    - 
      name: "Default"
      state: True
      id: 0
      parent: 0
---

ROS launchファイルで設定

画面解像度を設定してみる

<launch>
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
    <param name="width" type="int" value="1920" />
    <param name="height" type="int" value="1080" />
    <param name="fps" type="int" value="30" />
    <param name="device" type="string" value="/dev/video0" />
  </node>
</launch>
$ roslaunch  ./usb_cam.launch 
$ rqt_image_view image:=/image_raw

launchで記載したとおり、1920×1020 で確認できた。

USB Cameraと共存する

Captureカードのカメラ映像を配信する topics を変更する
image_cap にする nodeのnameをそれぞれ別にする
複数台のUSBカメラやUSBキャプチャがある場合にも応用出来る

<launch>
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera0" output="screen">
    <param name="width" type="int" value="1920" />
    <param name="height" type="int" value="1080" />
    <param name="fps" type="int" value="30" />
    <param name="device" type="string" value="/dev/video0" />
    <remap from="image_raw" to="image_raw_cap"/>
</node>
</launch>
<remap from="image_raw" to="image_cap"/>

USB カメラを追加で接続し確認

$ ls -la /dev/video*
crw-rw----+ 1 root video 81, 0  8月 17 17:27 /dev/video0
crw-rw----+ 1 root video 81, 1  8月 17 17:27 /dev/video1
crw-rw----+ 1 root video 81, 2  8月 18 06:23 /dev/video2
crw-rw----+ 1 root video 81, 3  8月 18 06:23 /dev/video3

Webカメラ映像を配信する topics を変更する
image_cam にする

<launch>
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera2" output="screen">
    <param name="width" type="int" value="1920" />
    <param name="height" type="int" value="1080" />
    <param name="fps" type="int" value="30" />
    <param name="device" type="string" value="/dev/video2" />
    <remap from="image_raw" to="image_raw_cam"/>
</node>
</launch>
# terminal 1
$ roscore
# terminal 2
$ roslaunch  ./usb_cap.launch 
# terminal 3
$ roslaunch  ./usb_cam.launch 

ROS topicsを確認する
無事に USB HDMIキャプチャ と USB Webカメラ 2台が別々に 配信されて
いるのが確認できる。

$ rostopic list
/camera_info
/image_cam
/image_cam/compressed
/image_cam/compressed/parameter_descriptions
/image_cam/compressed/parameter_updates
/image_cam/compressedDepth
/image_cam/compressedDepth/parameter_descriptions
/image_cam/compressedDepth/parameter_updates
/image_cam/theora
/image_cam/theora/parameter_descriptions
/image_cam/theora/parameter_updates
/image_cap
/image_cap/compressed
/image_cap/compressed/parameter_descriptions
/image_cap/compressed/parameter_updates
/image_cap/compressedDepth
/image_cap/compressedDepth/parameter_descriptions
/image_cap/compressedDepth/parameter_updates
/image_cap/theora
/image_cap/theora/parameter_descriptions
/image_cap/theora/parameter_updates
/rosout
/rosout_agg

映像を確認する
無事に USB-UVC ビデオキャプチャとWebCAM
同時に映像が配信されているのが確認出来る。

# terminal 4
$ rqt_image_view image:=/image_cap
# terminal 5
$ rqt_image_view image:=/image_cam

ROS launch GROUPタグ

ROS launch ファイルを別々に書くのではなく
一つにまとめてみる

<launch>
  <group ns="camera_cap">
    <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
      <param name="width" type="int" value="1920" />
      <param name="height" type="int" value="1080" />
      <param name="fps" type="int" value="30" />
      <param name="device" type="string" value="/dev/video0" />
      <remap from="image_raw" to="image_cap"/>
      <param name="pixel_format" value="mjpeg"/>
      <param name="camera_frame_id" value="usb_cam"/>
      <param name="io_method" value="mmap"/>
      <param name="frame_id" value="camera"/>
    </node>
  </group>
  <group ns="camera_cam">
    <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera" output="screen">
      <param name="width" type="int" value="1920" />
      <param name="height" type="int" value="1080" />
      <param name="fps" type="int" value="30" />
      <param name="device" type="string" value="/dev/video2" />
      <remap from="image_raw" to="image_cap"/>
      <param name="pixel_format" value="mjpeg"/>
      <param name="camera_frame_id" value="usb_cam"/>
      <param name="io_method" value="mmap"/>
      <param name="frame_id" value="camera"/>
    </node>
  </group>

</launch>
# Terminal 1
$ roscore

# Terminal 2
$ roslaunch usb_cap_web.launch

# Terminal 3
$ rostopic list
/camera_cam/camera_info
/camera_cam/image_cap
/camera_cam/image_cap/compressed
/camera_cam/image_cap/compressed/parameter_descriptions
/camera_cam/image_cap/compressed/parameter_updates
/camera_cam/image_cap/compressedDepth
/camera_cam/image_cap/compressedDepth/parameter_descriptions
/camera_cam/image_cap/compressedDepth/parameter_updates
/camera_cam/image_cap/theora
/camera_cam/image_cap/theora/parameter_descriptions
/camera_cam/image_cap/theora/parameter_updates
/camera_cap/camera_info
/camera_cap/image_cap
/camera_cap/image_cap/compressed
/camera_cap/image_cap/compressed/parameter_descriptions
/camera_cap/image_cap/compressed/parameter_updates
/camera_cap/image_cap/compressedDepth
/camera_cap/image_cap/compressedDepth/parameter_descriptions
/camera_cap/image_cap/compressedDepth/parameter_updates
/camera_cap/image_cap/theora
/camera_cap/image_cap/theora/parameter_descriptions
/camera_cap/image_cap/theora/parameter_updates
/rosout
/rosout_agg

GROUPを使うと名前が階層になり綺麗になる。

他のパラメータ

uvc_camera – ROS Wiki
ROS Kineticで複数カメラノードの起動 – Qiita
上記のサイトを確認すると
pixcel_format
camera_frame_id
io_method
frame_id
なども使えるよう。

ソースコードからパラメータの設定確認出来る
camera_umd/camera.cpp at master · ros-drivers/camera_umd

<launch>
  <node pkg="uvc_camera" type="uvc_camera_node" name="uvc_camera1" output="screen">
    <param name="width" type="int" value="1920" />
    <param name="height" type="int" value="1080" />
    <param name="fps" type="int" value="30" />
    <param name="device" type="string" value="/dev/video0" />
    <remap from="image_raw" to="image_cap"/>
    <param name="pixel_format" value="mjpeg"/>
    <param name="camera_frame_id" value="usb_cam"/>
    <param name="io_method" value="mmap"/>
    <param name="frame_id" value="camera"/>
</node>
</launch>

他のHDMI to USB UVC キャプチャ

Rullz 4 18kビデオキャプチャカードusb 3.0 2.0 hdmiビデオグラバー記録ボックスPS4 ためゲームdvdビデオカメラカメラ録音ライブストリーミング|ビデオ & テレビチューナーカード| – AliExpress
URL 頻繁に変わるので 画像で確認ください。

$ v4l2-ctl -d /dev/video0 --all  
Driver Info (not using libv4l2):
	Driver name   : uvcvideo
	Card type     : USB Video: USB Video
	Bus info      : usb-0000:01:00.0-1
	Driver version: 5.4.44
	Capabilities  : 0x84A00001
		Video Capture
		Metadata Capture
		Streaming
		Extended Pix Format
		Device Capabilities
	Device Caps   : 0x04200001
		Video Capture
		Streaming
		Extended Pix Format
Priority: 2
Video input : 0 (Camera 1: ok)
Format Video Capture:
	Width/Height      : 1920/1080
	Pixel Format      : 'MJPG'
	Field             : None
	Bytes per Line    : 0
	Size Image        : 4147200
	Colorspace        : sRGB
	Transfer Function : Default (maps to sRGB)
	YCbCr/HSV Encoding: Default (maps to ITU-R 601)
	Quantization      : Default (maps to Full Range)
	Flags             : 
Crop Capability Video Capture:
	Bounds      : Left 0, Top 0, Width 1920, Height 1080
	Default     : Left 0, Top 0, Width 1920, Height 1080
	Pixel Aspect: 1/1
Selection: crop_default, Left 0, Top 0, Width 1920, Height 1080
Selection: crop_bounds, Left 0, Top 0, Width 1920, Height 1080
Streaming Parameters Video Capture:
	Capabilities     : timeperframe
	Frames per second: 30.000 (30/1)
	Read buffers     : 0
                     brightness 0x00980900 (int)    : min=-128 max=127 step=1 default=-11 value=-11
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=148 value=148
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=180 value=180
                            hue 0x00980903 (int)    : min=-128 max=127 step=1 default=0 value=0
$ v4l2-ctl -d 0 --list-formats-ext
ioctl: VIDIOC_ENUM_FMT
	Index       : 0
	Type        : Video Capture
	Pixel Format: 'MJPG' (compressed)
	Name        : Motion-JPEG
		Size: Discrete 1920x1080
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1360x768
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x1024
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x960
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1024x768
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 720x576
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 720x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.017s (60.000 fps)
			Interval: Discrete 0.020s (50.000 fps)
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)

	Index       : 1
	Type        : Video Capture
	Pixel Format: 'YUYV'
	Name        : YUYV 4:2:2
		Size: Discrete 1920x1080
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1600x1200
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 1360x768
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x1024
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x960
			Interval: Discrete 0.125s (8.000 fps)
		Size: Discrete 1280x720
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 1024x768
			Interval: Discrete 0.100s (10.000 fps)
		Size: Discrete 800x600
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 720x576
			Interval: Discrete 0.040s (25.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 720x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
		Size: Discrete 640x480
			Interval: Discrete 0.033s (30.000 fps)
			Interval: Discrete 0.050s (20.000 fps)
			Interval: Discrete 0.100s (10.000 fps)
			Interval: Discrete 0.200s (5.000 fps)
$ roslaunch  ./usb_cam.launch 
... logging to /home/max/.ros/log/3a761662-e36b-11ea-b29c-144f8a3bd049/roslaunch-max-desktop-10050.log
Checking log directory for disk usage. This may take a while.
Press Ctrl-C to interrupt
Done checking log file disk usage. Usage is <1GB.

started roslaunch server http://max-desktop:42585/

SUMMARY
========

PARAMETERS
 * /rosdistro: melodic
 * /rosversion: 1.14.6
 * /uvc_camera2/device: /dev/video0
 * /uvc_camera2/fps: 30
 * /uvc_camera2/height: 1080
 * /uvc_camera2/width: 1920

NODES
  /
    uvc_camera2 (uvc_camera/uvc_camera_node)

ROS_MASTER_URI=http://localhost:11311

process[uvc_camera2-1]: started with pid [10065]
[ INFO] [1597986158.333946537]: using default calibration URL
[ INFO] [1597986158.334714017]: camera calibration URL: file:///home/max/.ros/camera_info/camera.yaml
[ INFO] [1597986158.334763040]: Unable to open camera calibration file [/home/max/.ros/camera_info/camera.yaml]
[ WARN] [1597986158.334781350]: Camera calibration file /home/max/.ros/camera_info/camera.yaml not found.
opening /dev/video0
pixfmt 0 = 'MJPG' desc = 'Motion-JPEG'
  discrete: 1920x1080:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1600x1200:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1360x768:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x1024:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x960:   1/60 1/30 1/25 1/20 1/10 
  discrete: 1280x720:   1/60 1/50 1/30 1/20 1/10 
  discrete: 1024x768:   1/60 1/50 1/30 1/20 1/10 
  discrete: 800x600:   1/60 1/50 1/30 1/20 1/10 
  discrete: 720x576:   1/60 1/50 1/30 1/20 1/10 
  discrete: 720x480:   1/60 1/50 1/30 1/20 1/10 
  discrete: 640x480:   1/60 1/50 1/30 1/20 1/10 
pixfmt 1 = 'YUYV' desc = 'YUYV 4:2:2'
  discrete: 1920x1080:   1/5 
  discrete: 1600x1200:   1/5 
  discrete: 1360x768:   1/8 
  discrete: 1280x1024:   1/8 
  discrete: 1280x960:   1/8 
  discrete: 1280x720:   1/10 
  discrete: 1024x768:   1/10 
  discrete: 800x600:   1/20 1/10 1/5 
  discrete: 720x576:   1/25 1/20 1/10 1/5 
  discrete: 720x480:   1/30 1/20 1/10 1/5 
  discrete: 640x480:   1/30 1/20 1/10 1/5 
  int (Brightness, 0, id = 980900): -128 to 127 (1)
  int (Contrast, 0, id = 980901): 0 to 255 (1)
  int (Saturation, 0, id = 980902): 0 to 255 (1)
  int (Hue, 0, id = 980903): -128 to 127 (1)

参考サイト

uvc_camera – ROS Wiki
USBカメラ(UVCカメラ)を使う`
智能机器人(41):USB-camera – 罗伯特罗尔斯智能系统(杭州)有限公司
ROS Kineticで複数カメラノードの起動 – Qiita

投稿者: yoshimax

Software Engineer #Unity #iOS