概要

コントローラの動作には、RTコンポーネントとしての設定を記述するrtc.confファイルと、コントローラブリッジとRTコンポーネントとの接続設定を記述したスクリプト(バッチ)ファイルが必要です。 コントローラブリッジは、シミュレーション対象のロボットと各OpenRTMコンポーネント間の入出力を介するプロセスで、ロボットの入出力用のRTコンポーネントも作成します。 ここでは、2つのファイルの作成方法を説明します。

GUIを利用して作成する方法

Controller ViewでロボットのリストからSampleを選択し、Editボタンを押します。


図1 : Controller View

Controllerの名前とコントローラの動作間隔を設定し"new File"ボタンを押します。
既にファイルを作成している場合は、"select File"ボタンを押してファイルを選択した後、"open file"ボタンを押すと、ファイルを編集できます。


図2 : Controller View

ファイル設定用のダイアログが開きます。コントローラの名前は、Controller Viewで設定した名前と一致していなければならないので、既に表示されています。
他にもデフォルトの内容が表示されています。


図3 : Controller Bridge Dialog

制御対象のロボットの入出力ポートを設定します。
テーブルを右クリックして"add"を選択してください。削除したい場合は、テーブルの行を選択してから右クリックして、"delete"を選択してください。
行が追加されるので、各セルを選択して図のように設定します。


図4 : Controller Bridge Dialog

idのセルを選択すると、id編集用のダイアログが開きます。ロボットのリンク名、センサ名が表示されるので、チェックを入れてください。
"All joints"ボタンを選択すると、Joint IDを持つリンクが全て選択されます。また、入出力順はチェックボタンが並んでいる順番になります。ボタンはドラッグ&ドロップ操作で順番を入れ替えることができます。
propertyの設定と矛盾しないように設定してください。詳しい設定の内容は「コントローラーブリッジ使用マニュアル」をご覧ください。


図5 : Controller Bridge ID Dialog

Module NameとController RTC Nameを設定し、"check"ボタンを押してください。
ファイルの内容とエラーメッセージが表示されていないことを確認してください。


図6 : Controller Bridge Dialog

接続設定は、別ファイルに保存することもできます。
その場合は、Use the configuration fileにチェックを入れて、ファイル名を入れた後、"check"ボタンを押してください。


図7 : Controller Bridge Dialog

"Save as"ボタンを押してファイルを選択し、内容を保存します。本ドキュメントの例ではmySamplePDディレクトリにSamplePD.sh(.bat)として保存してください。 "Close"ボタンを押してDialogを閉じてください。

テキストエディタを利用して作成する方法

2つの設定ファイルは、テキスト形式ですので、使い慣れたエディタを用いて編集することができます。
GUIでは対応していないrtc.confの詳細な設定や、スクリプトに環境変数の設定を含める場合などは、エディタを使用してください。

rtc.conf

rtc.conf はこのコントローラブリッジを起動する際のカレントディレクトリに配置します。
本ドキュメントの例ではmySamplePDディレクトリに配置してください。

rtc.conf には以下の内容を記述してください。

環境に合わせてネームサーバの場所を記述します。

corba.nameservers: localhost:2809

ログファイル作りの有無を設定します。

  • ログファイル作りを無効にする場合
      logger.enable:NO
  • ログファイル作りを有効にする場合
      logger.enable:YES
  • ログファイルの作り先(パス)と名前形式を設定します。以下の例のようにパスを直接記述することも可能です。

      logger.file_name: D:\\Temp\\rtc%p.log

    ログレベルの設定です。

      logger.log_level: TRACE

モジュールファイル名と、コンポーネント名を設定します。

manager.modules.preload: SamplePD
manager.components.precreate: SamplePD

以下の内容は基本的には変更しないでください。

naming.formats: %n.rtc
manager.modules.load_path: .
exec_cxt.periodic.rate: 1000000
manager.modules.abs_path_allowed: yes
exec_cxt.periodic.type: SynchExtTriggerEC

RTコンポーネントの設定オプションに関する詳しい説明は、OpenRTM マニュアルの コンフィギュレーション で確認してください。

なお、"OpenHRP3/sample/controller/SamplePD/rtc.conf" に設定ファイルのサンプルがありますので、それをコピーし、変更を行って使用してください。
β4から対応したバイナリパッケージによるインストールでは、

  • Ubuntu環境の場合:/usr/share/
  • Windows環境の場合:OpenHRPSDK/share/
以下のOpenHRP-3.1/sample/controller/SamplePD/rtc.confをご使用ください。
ファイル内容はいずれの場合も同じです。


コントローラブリッジ用設定ファイル

各コンポーネント毎に実装を分離する目的は、開発における保守性・可搬性の向上です。 ここでは、コントローラブリッジとコンポーネントとの接続設定を説明します。
OpenHRP-3.1/sample/controller/SamplePDにあるSamplePD.sh(.bat)をmySamplePDにコピーして使用してください。

SamplePD.sh

#!/bin/sh

openhrp-controller-bridge \
--server-name SamplePDController \
--out-port angle:JOINT_VALUE \
--in-port torque:JOINT_TORQUE \
--connection angle:angle \
--connection torque:torque

server-name:OpenHRPコントローラの名前を指定します。
上述では、"SamplePDController"という名前でネームサーバにコンポーネントを登録します。

out-port:出力ポート名と出力するプロパティの順にコロンで区切って指定します。
上述では、出力ポート名"angle"がJOINT_VALUEプロパティを出力するよう指定します。

in-port:入力ポート名と入力するプロパティの順にコロンで区切って指定します。
上述では、入力ポート名"torque"にJOINT_TORQUEプロパティを入力するよう指定します。

connection:ポートどうしを接続します。モデル側入出力ポート名、コントローラ側入出力ポート名の順にコロンで区切って指定します。
上述では、ロボット側ポート"angle"とコントローラ側ポート"angle"を接続します。同様に次の行ではロボット側ポート"torque"とコントローラ側ポート"torque"も接続します。

起動オプションの詳細、その他の起動オプションについては「コントローラーブリッジ使用マニュアル」をご覧ください。