UVCカメラ

USB接続のカメラ、いわゆるwebカメラを接続し、ROSで画像処理を行う準備をします。

USBカメラは、UVC(USB Video Class)に準拠していれば、たぶん問題なく画像取り込みできるでしょう。

カメラの接続と確認

USBカメラをPCに接続します。

#lsusb
Bus 002 Device 003: ID 0411:0261 BUFFALO INC. (formerly MelCo., Inc.) 

#ls -la /dev/video*
crw-rw----+ 1 root video 81, 0  3月  7 14:06 /dev/video0  <--- videoグループでRWになっていることを確認
#less /etc/group | grep video
video:x:44:    <--- videoグループにユーザが登録されていない場合、以下で追加登録
#usermod -a -G video USER   <--- USERはユーザ名
		

video4linux2のユーティリティとqv4l2をインストール

#apt-get install -y v4l-utils qv4l2
		

カメラの詳細情報を表示

$v4l2-ctl -d /dev/video0 --all   
		

カメラがサポートする解像度とフレームレートの表示

(-d 0で/dev/video0を指定)

$v4l2-ctl -d 0 --list-formats-ext
		

解像度などを設定

$v4l2-ctl -d 0 --set-fmt-video=width=640,height=480 --set-parm=15
		

qv4l2でカメラ画像を表示します。

解像度などを指定して表示できます。

$qv4l2 &
		

ubuntuにインストール済みのCheeseを使っても、カメラ画像を表示して確認できます。

$cheese &
		

ROSでカメラ画像を取り込む

UVCカメラ画像関連のパッケージをインストールします。

ここからは、以前紹介した本にも紹介されている手順です。

#apt-get install -y ros-indigo-uvc-camera
#apt-get install -y ros-indigo-image-*
#apt-get install -y ros-indigo-rqt-image-view  <--インストール済み?
		
$roscore
$rosrun uvc_camera uvc_camera_node
$rostopic list   <--- /camera_infoと/image_rawトピックが配信されているか確認
		

/image_raw(カメラ画像のトピック)を表示して確認

$rosrun image_view image_view image:=/image_raw
		

RQtで画像を表示します。

$rqt_image_view image:=/image_raw
		

RVizでも画像表示してみます。

$rosrun rviz rviz
		

Displays->[Add]でImageを追加、ImageTopicに/image_rawを指定すれば、カメラノードがpublishするカメラ画像が表示されます。