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


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 設定項目を確認してみる
$ 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
Software Engineer #Unity #iOS