= 手先拘束下でのマニピュレーション知能モジュール
== 内容物
ファイルの内容物は以下のとおりです。

  force_pos_hybrid_module-????????.tar.gz
    手先拘束下でのマニピュレーション知能モジュール
    
  arm_moving_pid_pa10_module-????????.tar.gz
    関節移動モジュール
    
  port_splitter-????????.tar.gz
    ポートスプリッターモジュール
    
  direction_pa10_hybrid_scenario-????????.tar.gz
    サンプルシナリオ実行モジュール
    
  module_connector.tar.gz
    モジュール接続ツール
    
  hybrid-demo.xml
    GrxUI用サンプルプロジェクトファイル

  PA10_owa-????????.tar.gz
    サンプルシミュレーション用モデルファイル

== 必要環境
  * Ubuntu 8.04
  * OpenRTM-aist
    * OpenRTM-aist 0.4.2を使用してください。
  * OpenHRP3 3.0.5
  * Eclipse(RTCLink)
    * http://www.is.aist.go.jp/rt/OpenRTM-aist/htmlからUNIX用全部入りバージョンを
      ダウンロードし、インストールしてください。
  * log4cxx
    * sudo apt-get install liblog4cxx9c2a liblog4cxx9-dev liblog4cxx9-doc
      でインストールしてください。
  * Ruby 1.8
    * スクリプトの一部で使用しています。
    * sudo apt-get install rubyでインストールしてください。

各モジュールをコンパイル・実行する際には、事前に環境変数OPENHRP3_HOMEを
設定してください。このOPENHRP3_HOMEには、OpenHRP3を展開・インストールした
ディレクトリを指定してください。

  export OPENHRP3_HOME=~/OpenHRP-3.0.5
  ※ 例はホームディレクトリにOpenHRP3を展開している場合
    
== コンパイル
次の手順で各モジュールをコンパイルします。
force_pos_hybrid_module-????????.tar.gz はホームディレクトリにダウンロード、
各モジュールは~/work/以下に展開する前提で説明します。

  $ cd ~
  $ tar xvfz force_pos_hybrid_module-????????.tar.gz 
  $ mv force_pos_hybrid_module-???????? work
  $ cd work
  $ ls
  Makefile                                   force_pos_hybrid_module-????????.tar.gz
  PA10_owa-????????.tar.gz                   hybrid-demo.xml
  README.txt                                 module_connector.tar.gz
  arm_moving_pid_pa10_module-????????.tar.gz port_splitter-????????.tar.gz
  build.rb                                   redundancy_minimize_norm-????????.tar.gz

  $ make extract
  $ make

== サンプルシミュレーションの実行手順
次の手順でプログラムを実行します。

(1) GrxUI用のプロジェクトファイル・モデルファイルを次の要領でコピーします

  $ cd ~/work/
  $ tar xvfz PA10_owa-????????.tar.gz
  $ cp hybrid-demo.xml $OPENHRP3_HOME/client/gui/project/
  $ cp -r PA10_owa $OPENHRP3_HOME/etc/
  $ cp PA10_owa/box4.wrl $OPENHRP3_HOME/etc/
  $ cp PA10_owa/floor.wrl $OPENHRP3_HOME/etc/
 
(2) GrxUIを起動し、サンプルシミュレーションファイルhybrid-demo.xmlを開きます

  GrxUIの起動
  $ cd $OPENHRP3_HOME/bin/unix/
  $ ./GrxUI.sh

(3) module_connectorを展開したディレクトリでmake runを実行します
    シミュレーションに必要なモジュールが自動的に起動し、
    各ポートが自動的に接続されます。

  $ cd ~/work/module_connector
  $ make run

(4) GrxUIの"Start Simulation"ボタンを押すと、シミュレーションが開始されます
　　* ロボットアームの手先が壁に接触した後、50Nの力で壁を押しながら
      壁をなぞる動作を行います。

(5) シミュレーションを終了する場合はmodule_connectorを展開したディレクトリ内で
    make killを実行します

  $ cd ~/work/module_connector
  $ make kill
  
