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するカメラ画像が表示されます。