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] ****************************************
© Copyright 2024 ExpyDoc