#########################################
# RunControlコンポーネントの使い方　　　#
#                                       #
# Zentaro Nemoto, Yuta Kimura, TUS #
#                                       #
# 2011/7/7                              #
#########################################

1.概要
本プログラムは指定されたゴール地点に向かって、ロボットのオドメトリー情報を基に速度・角速度を制御するコンポーネントです.
Inputポートにゴール地点の情報とロボットのオドメトリー情報を入力します.
Outputポートからはゴール地点の情報とオドメトリー情報から算出された速度指令を出力します.

ゴール地点の情報については、ポートからの入力ではなくプログラム内で直接指定することも出来ます.

入出力の型は自己定義のTimedVelocity,TimedOdometryなどを使用しています.ご利用の際はご注意ください.


<ロボット(センサ)を用いたローカル座標系>
Y（正面）
↑
＋→X

2.コンパイル
　cd src/
　make

3.実行
　./RunControlComp

  コンポーネントの実行(Activate),DataPortの接続などの操作はeclipse及びRTSystemEditorを用いて動作確認を行っております.その他の環境ではまだ確認をしておりませんのでご了承ください.

4.操作方法
　このコンポーネントを使用する場合は,最低限オドメトリ情報を出力する台車制御モジュールがないといけません．
  台車制御モジュールに関しては,再利用センターの「SegwayRMP制御RTC（オープンソース）」というモジュールが使用出来ます.
　また、以下に記述する操作方法はゴール地点の情報をポートからの入力ではなくプログラム内で直接指定した場合のものです.
　設定をするプログラムは「RunControl.cpp」です.166・167行目で指定しています.

  1.コンポーネント起動(Initialize)した後,RunControlの出力ポート(Velocity)と台車制御コンポーネント（SegwayRMP）の入力ポート(Velocity),
　　台車制御コンポーネント（SegwayRMP）の出力ポート(Odometry)とRunControlの入力ポート(Odometry)を接続します.
  2.両コンポーネントをアクティブ(Activated)にします.
  3.台車が指定のゴール地点に移動し始めます．台車の位置とゴールの位置が閾値（1[m]）以下になったら,RunControlから台車制御コンポーネント（SegwayRMP）に停止指令が出力されます．
    閾値設定をするプログラムは「RunControl.cpp」です.176行目で指定しています.
　4.コンポーネントを停止する際は,両コンポーネントをディアクティブ（Deactivated）にします．

5.入出力仕様
　5.1 入力ポート
　　- TargetPos (TimedOdometry): ゴール地点の情報
    - Odometry (TimedOdometry): ロボットの位置情報

　5.2 出力ポート
　　- Velocity (TimedVelocity): ゴール地点の情報とロボットの位置情報から算出された速度指令
　　
6.開発環境
　- gcc 4.2.4
　- ubuntu 8.04
　- OpenRTM-aist-1.0.0-RELEASE
　
7.動作確認環境
  - Eclipse 3.2.1
  - RTSystemEditor 1.0.0
　
8.ディレクトリ構成
　- doc：ドキュメント
　- src：ソースコード
