1.本 RT コンポーネント群の概要 2.開発環境 3.本 RT コンポーネント

1.本 RT コンポーネント群の概要
著者らは、複数台の Kinect を連携し、測定範囲を簡便に拡大する RT コンポーネント群
の開発を行いました。これにより、広い範囲で人物の位置を計測することを可能とします。
また、Kinect から得られる点群を処理しているので,ロボットの位置を計測、OpenHRP3
に用いる為のモデリングに応用する等の発展が見込まれます。
今回は、① Kinect から点群を取得する RT コンポーネント(pcl_out)、② 点群の位置合
わせと統合を行う RT コンポーネント(merge_pcd)、③ 点群情報から人物発見を行う RT コ
ンポーネント(detect_people)を開発しました。以下に動作までの手順を説明します。
2.開発環境
本 RT コンポーネント群の開発環境は以下の通りです。
● OS:Ubuntu 14.04 (32bit or 64 bit)
● RT ミドルウエア(C++):OpenRTM-aist-1.1.0-RELEASE(C++版)
● Eclipse:Eclipse-3.8.1
● CMake:CMake-2.8.8
● Point Cloud Library (PCL):PCL-1.7.1 released
● RTC:PCL
3.本 RT コンポーネント群の説明
① Kinect による点群取得 RT コンポーネント(RTC 名:pcd_out)
Fig.1 pcd_out
Table 1
・OutPort
名称
データ型
説明
pcdout
PointCloudTypes
点群
② 点群の位置合わせと統合を行う RT コンポーネント(RTC 名:merge_pcd)
この RT コンポーネントは図 3 の様に、2 台の Kinect の共通領域部分を平面検出により自
動的に抽出している為、Kinect を並べて置いてください。また、Kinect は向かい合わせて
置くと、干渉が起こりやすいので注意が必要です。
Fig.2 merge_pcd
Table 2
・InPort
名称
データ型
説明
target_pcd
PointCloudTypes
基準となる点群
source_pcd
PointCloudTypes
位置合わせされる点群
名称
データ型
説明
merge_pcd
PointCloudTypes
統合された点群
target_pcd_org
PointCloudTypes
基準となる点群
source_pcd_trans
PointCloudTypes
位置合わせされた点群
・OutPort
Fig.3 merge_pcd の使用例
③ 点群情報を利用した室内人物発見 RT コンポーネント(RTC 名:detect_people)
以下のプログラムを参考に RT コンポーネント化を行いました。単体の Kinect に対応した
もの、2 台の Kinect に対応したものの 2 種類があります。
参考 URL:http://pointclouds.org/documentation/tutorials/ground_based_rgbd_people_detection.php
※単体の Kinect から得られた点群に対応
Fig.4 detect_people
Table 3
・InPort
名称
データ型
説明
cloud
PointCloudTypes
点群
名称
データ型
説明
people_cloud
PointCloudTypes
人物の点群
people_position
TimedDoubleSeq
人物の位置 [m]
・OutPort
RTC 名:detect_people(ver.2)
※2台の Kinect から得られた点群に対応
Fig.5 detect_people(Ver.2)
Table 4
・InPort
名称
データ型
説明
target_pcd
PointCloudTypes
基準となる点群
Source_trans_pcd
PointCloudTypes
位置合わせされた点群
merge_pcd
PointCloudTypes
統合された点群
名称
データ型
説明
person_pcd
PointCloudTypes
人物の点群
person_position
TimedDoubleSeq
人物の位置 [m]
・OutPort
4.本 RT コンポーネント群のコンパイルまでの手順
本 RT コンポーネントを動作させるまでの手順を以下に記します。
① Point Cloud Library をインストールします。
参考 URL:http://pointclouds.org/downloads/linux.html
参考 URL:http://pointclouds.org/downloads/source.html
② RTC:PCL をインストールします。
参考 URL:http://choreonoid.org/GraspPlugin/i/ja/node/42
pc_type フォルダ下の librtcpcl_pointcloud_type.so を/usr/lib にコピーします。
③ 各 RT コンポーネントをコンパイルします。
ダウンロードした multikinect_RTCs.tar.gz を解凍します。
次に各 RT コンポーネントを解凍し、cmake . && make のコマンドを打ちます。
※detect_people の実行ファイルと同じ場所に以下のファイルが必要です。
trainedLinearSVMForPeopleDetectionWithHOG.yaml
④ 各 RT コンポーネントをつなぎ合わせ、動作させます。
図 6、もしくは図 7 の様に RT コンポーネントを繋ぎ、All Activate を押してください。も
しくは、先に RT コンポーネントの pcd_out を動作させてください。
(最初の点群情報は安
定していません)
Fig.6 RT system 1(Kinect 単体の場合)
Fig.7 RT system 2 (Kinect 2 台の場合)
5.お問い合わせ先
本コンポーネント群についての質問やアドバイス等がございましたら、以下のメールア
ドレスにまでご連絡をください。
****************************************
東京理科大学大学院 理工学研究科 機械工学専攻
溝口研究室 修士2年
久原 太志
Mail to : [email protected]
****************************************