概要

コントローラブリッジは、シミュレーション対象のモデルと各OpenRTMコンポーネント間の入出力を介するプロセスです。
起動オプションまたは、設定ファイルによって入出力ポートを設定しポート間の接続を指定します。

マニュアル

起動オプション

起動オプションは以下の通りです。

起動オプション(書式)説明
--module モジュールファイル名[:初期化関数名]モジュールファイルを指定します
--server-name コントローラ名CORBAネームサーバにコンポーネントを生成するファクトリサーバの名前を指定します
--in-port ポート名[:識別名]:プロパティ名入力ポート名を与えプロパティを指定します
--out-port ポート名[:識別名]:プロパティ名出力ポート名を与えプロパティを指定します
--connection ポート名[:コントローラ側インスタンス名]:ポート名ポート間接続を指定します
-h / --help起動オプションの表示
--config-file 設定ファイル名起動オプションを設定したファイルを指定します
--robot-name 対象モデル名対象モデル名を与えます
--name-server ネームサーバホスト名:ポートOpenHRPのCORBAネームサーバを指定します
Table 1:起動オプション一覧

--module モジュールファイル名[:初期化関数名]
コンポーネントをコンパイルして生成したモジュールファイルを指定し、必要なら初期化関数名を指定できます。
初期化関数名のデフォルト値は "モジュールファイル名" + "Init" です。
拡張子を省略した場合、Unix環境では ".so" 、Windows環境では ".dll" のモジュールファイルを自動でロードします。
例:--module SamplePD
Windows環境の場合SamplePD.dllをロード、Unix環境の場合SamplePD.soをロードし初期化関数はSamplePDInitが呼ばれます。

--server-name コントローラ名
ブリッジのCORBA側コンポーネントを生成するファクトリサーバの名前を指定します。GrxUIのOpenHRPタブcontrollerタブControllerプルダウンに表示されます。


Fig.1: GrxUI controllerタブ

--in-port ポート名[:識別名]:プロパティ名
入力ポート名を与え、そのポートのプロパティを指定します。識別名を指定すれば特定の部位の値だけ入力します。
識別名はVRMLモデルのノード名を指定します。
例:--in-port r_arm_elbow:RARM_ELBOW:JOINT_VALUE
関節名称RARM_ELBOWのJOINT_VALUEプロパティの値を入力します。

--out-port ポート名[:識別名]:プロパティ名
出力ポート名を与え、そのポートのプロパティを指定します。識別名を指定すれば特定の部位の値だけ出力します。
識別名はVRMLモデルのノード名を指定します。
画像データを出力する場合には、識別名のかわりに必ずVisionSensorのsensorIdの値を指定します。
例:--out-port image:0:COLOR_IMAGE
sensorIdが0のVisionSensorのカラー画像を出力します。

--connection ポート名[:コントローラ側インスタンス名]:ポート名
入出力ポート間の接続を指定します。左は対象モデル側のポート名、右はコントローラ側のポート名を指定しコロンで区切ります。
コントローラ側のインスタンス名は省略できます。
例:--connection angle:JoystickController0:angle
対象モデル側のポートangleとインスタンス名JoystickController0のポートangleを接続します。

-h / --help
起動オプションの表示と説明を英文で標準出力します。 -h または --help が使えます。

--config-file 設定ファイル名
起動オプションを設定したファイルを指定します。 起動オプションを一元化したり複雑な入出力ポート設定の時に利用してください。 サンプルフォルダには設定ファイル"bridge.conf"がありますので参考にしてください。
OpenHRP/Controller/rtc/SamplePD/bridge.conf の場合

server-name = SamplePDController
in-port     = torque:JOINT_TORQUE
out-port    = angle:JOINT_VALUE
connection  = angle:angle
connection  = torque:torque
module      = SamplePD
という記述です。
書式は起動オプションからハイフンを取り除き '=' でオプションに文字列を与えたテキストファイルです。
'='の左右に連続して隣接する半角空白とtabは無視されます。
Unix環境の運用も考慮してWindows環境でも改行コードはLFに統一した方が無難です。

※:Ver3.0.0より前にはありません。さらにVer3.0.2では書式を一部変更いたしましたので最新のOpneHRPを導入してください。

--robot-name 対象モデル名
入出力ポートを備えた通信対象モデル名を指定します。デフォルト値は"VirtualRobot"です。
インスタンスが複数生成されることも考慮して名前にindex番号を0から割り振りますから、ネームサーバーには"対象モデル名0"が最初に登録されます。

--name-server ネームサーバホスト名:ポート
OpenHRPのCORBAネームサーバを指定します。
デフォルト値は"localhost:2809"です。
例:--name-server 192.168.1.10:2809
IPアドレス192.168.1.10のポート番号2809で接続待ちするOpenHRPのCORBAネームサーバを指定します。

プロパティ

指定可能なプロパティは以下の通りです。

プロパティ名In Port / Out Port関節情報形式説明
JOINT_VALUEyes/yesdouble関節角度または関節位置
JOINT_VELOCITYyes/yesdouble同上微分
JOINT_ACCELERATIONyes/yesdouble同上2階微分
JOINT_TORQUEyes/yesdouble関節トルク
EXTERNAL_FORCEyes(※1)/nodouble*6力, トルク
ABS_TRANSFORMyes(※1)/nodouble*12関節位置(最初の3要素が位置ベクトル、9要素が姿勢)
FORCE_SENSORno/yesdouble*6力, トルク
RATE_GYRO_SENSORno/yesdouble*3ジャイロセンサー(3次元ベクトル)
ACCELERATION_SENSORno/yesdouble*3加速度センサー(3次元ベクトル)
COLOR_IMAGE(※3)no/yes(※2)long*画像サイズcolor画像
GRAYSCALE_IMAGE(※3)no/yes(※2)octet*画像サイズgray scale画像
DEPTH_IMAGE(※3)no/yes(※2)float*画像サイズdepth画像
Table 2:プロパティ一覧

※1:in-portオプションで[:識別名]を指定した場合のみ有効 
※2:out-portオプションで[:識別名(sensorId)]を指定した場合のみ有効
※3:Ver3.0.3 以降に対応予定