=============================================================================
実時間自己／他者運動分離認識コンポーネント群 version 1.4 2012/03/07
東京大学　情報理工学系研究科　情報システム工学室　次世代プロジェクト担当
Mail: itngr@jsk.t.u-tokyo.ac.jp
=============================================================================

-----概要-----

特徴点群の3次元フロー認識とモーションセンサ(IMU)の認識の組み合わせにより，
自分自身の位置や回転量を推定しながら，
特徴点群をラベリングして他者の位置や移動判定をするコンポーネント群です．

3次元フロー認識には，株式会社富士通研究所製画像処理認識ハードウェア
モジュールNXV1-1394-PCBの中で動作するコンポーネントを用いることで，
コンポーネント群全体で基本的に30fpsを保って出力することが可能です．

-----コンポーネント動作に必要なハードウェア-----

-- 9軸ワイヤレスモーションセンサ（株式会社ロジカルプロダクト様ご提供）
-- 画像認識ハードウェアモジュールNXV1-1394-PCB（富士通研究所様ご提供）
-- 画像認識ハードウェアモジュールに接続可能なカメラ2個

-----コンポーネント動作に必要なパッケージ-----

-- 画像認識ボード用組込Linux（富士通研究所様ご提供）
-- 3次元フロー生成コンポーネントFeatureTS(別途登録済み)
-- RTMEXTender(別途登録済み)

-----コンポーネント動作確認環境-----

-- ubuntu 10.04 (x86)
-- OpenRTM-aist-1.0.0-RELEASE
-- g++/gcc 4.4.3
-- Octave 3.2.3

-----各ディレクトリの説明-----

ClassifiedPointsConverter コンポーネント群テスト用データ変換コンポーネント
MotionClassifier	自己／他者運動分離認識コンポーネント
NxMotionEstimator	自己姿勢推定コンポーネント
NxWMSReader		モーションセンサデータ取得コンポーネント
functions		各種コンポーネント群で用いられる関数群
idl			独自idl型定義

ClassifiedPointsConverter, MotionClassifier，NxMotionEstimator，NxWMSReader各コンポーネントについては，
それぞれのフォルダにあるREADME.txtを参照してください．

-----コンポーネント群の使い方-----

-- ハードウェア設定
ステレオカメラとIMUをmc_alignment.jpgのような向きで一体となって動くように配置します．
この図におけるIMUの各軸の矢印は，加速度の軸の向きです．
IMUは回転方向のデータのみ用いるので，並進方向に多少ずれていても構いません．
ステレオカメラは画像認識ボードに接続し，ボード内で動作する，別途登録済みのコンポーネントで利用します．

-- confファイルの設定
このディレクトリにあるrtc.confを必要に応じて編集します．
以下のconfファイルに関しても，各ディレクトリにあるREADME.txtを参考にして編集します．
./NxWMSReader/NxWMSReaderTest.conf
./NxMotionEstimator/NxMotionEstimatorTest.conf

-- コンパイル
このディレクトリで
% make
を行ってください．
各フォルダでmakeが行われます．
依存関係があるので，個別にmakeする場合は順番に注意して下さい．

-- 各コンポーネントの起動
MotionClassifier，NxMotionEstimator，NxWMSReader各コンポーネントを，
それぞれのフォルダにあるREADME.txtを参考にして起動します．

-- 3次元フロー生成コンポーネントの起動
3次元フロー生成コンポーネント(FeatureTS)を，
付属のREADME.txtを参考にして画像認識ボード内で起動します．

-- 各コンポーネントの接続
コンポーネントの接続方法はmc_connection.pngを参考にしてください．
コンポーネント入出力のための通信型はidl/Extended3DdataTypes.idlに記述
してあります。

-- 動作実行
接続後，全てのコンポーネントをActivateします．
Activateするタイミングは全てのコンポーネントにおいて同時で構いません．
Activate後は特に何も操作する必要はありません．

-- 出力仕様
コンポーネント群全体としての出力はMotionClassifierコンポーネントの
out_coords	推定した自己位置・姿勢
out_staticpcl	静止特徴点群の情報
out_movingpcl	移動特徴点群の情報
の3つのOutPortとなります．
これらについての詳細は./MotionClassifier/README.txtを参考にしてください．

-----コンポーネント群のテスト方法-----

ClassifiedPointsConverterと別途公開しているGTKPickview(大局地図への３
次元情報追記コンポーネント)を用いることで動作テストを行うことができま
す。各々のコンポーネントのコンパイル等に関してはそれぞれのREADMEをご参
照ください。テスト方法については、動作確認動画を本コンポーネント群と共
に公開しておりますので、そちらを御覧ください。

-----ライセンス-----

本ソフトウェアは new BSD License に基づき配布されます．
詳しくはLICENSE.txtファイルをご覧ください．
