10.1 OpenCV, OpenNI と PCL
OpenCVはオープンソースのコンピュータビジョン向けライブラリで、画像処理の必要な様々な機能が用意されています。
OpenNIはオープンソースのKinect用のライブラリであり、ROSからKinectの機能を使うために必須です。
PCL(Point Cloud Library)はオープンソースの3Dポイントクラウド(点群)データ処理をまとめたライブラリであり、Kinectの3D距離データを利用する。
本書では、以下のトピックについて触れる
- WebカメラあるいはKinect(RDB-D カメラ)をROSから利用する
- ROS cv_bridge によりROSのイメージをOpenCVで処理する
- 顔検出、オプティカルフロー、色追跡等のROSによる実装
- Kinectから得られる距離情報処理
10.2 カメラの解像度に関して
処理速度との関係で、本書で扱う画像は320x240 (QVGA)であるが、場合によっては640x480 (VGA)で試してみます。
10.3.1 OpenNI用ドライバーのインストール
ROSではKinect for X360をサポートしており、以下のようにOpenNIのドライバをインストールする。
KinectはVMwareで実行されたUbuntu上では動作しないので注意が必要である。
$ sudo apt-get install ros-hydro-openni-camera
ROS by ExampleではWebカメラのドライバ−にuvc_camを使っています(141ページ)
が、ソースをダウンロードしてコンパイルしなければいけないし、いろいろ面倒なので、
私はuvc_camera を使いました。
私の環境ではuvc_camera の方が安定して動いているようです。
以下のコマンドでインストールが可能です。
$ sudo apt-get install ros-hydro-uvc-camera
10.3.3 Kinect あるいは Xtion カメラのテスト
$ roslaunch rbx1_vision openni_node.launch
別のターミナルウィンドウで、
$ rosrun image_view image_view image:=/camera/rgb/image_color
こんな感じでカラー画像が表示されます。
同様に、以下のコマンドで距離画像が表示されます。
$ rosrun image_view disparity_view image:=/camera/depth/disparity
$ roslaunch rbx1_vision uvc_camera.launch device:=/dev/video0
あるいは
$ roslaunch rbx1_vision uvc_camera.launch device:=/dev/video1
/dev/video* の*はお使いの環境に合わせて変えて下さい。
また、ROS by Example では uvc_cam.launch ですが、ここでは uvc_camera.launchとします。
別のターミナルウィンドウで、以下のようにコマンドを実行すると、カラー画像が表示されるはずです。
$ rosrun image_view image_view image:=/camera/rgb/image_color
以降の章で使うOpenCVライブラリを次にようにインストールしておいてください。
$ sudo apt-get install ros-hydro-opencv2 ros-hydro-vision-opencv
0 件のコメント:
コメントを投稿