このページではRTCEditorアイテム、ComponentListアイテムの利用方法を四足歩行ロボットのシミュレータ作成を例にして解説します。
まずはワールドアイテム、シミュレータアイテムを追加します。 ファイル、新規からワールドとAISTシミュレータを選択して追加してください。
この時点でアイテムツリーは以下のようになります。
World(ワールドアイテム) |-AISTSimulator(AISTシミュレータ)
次に地面、四足歩行ロボットのモデルを追加します。
ファイル、読み込みからOpenHRP モデルファイルを選択後、以下のファイルを読み込んでください。
すると以下のように3Dモデルが表示されます。 表示されない場合はアイテムツリー上の該当アイテムのチェックボタンをオンにしてください。
World(ワールドアイテム) |-AISTSimulator(AISTシミュレータ) |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml) |-floor(model/house/floor.body)
RTコンポーネントを追加します。 ファイル、新規からPyRTCItemを選択して追加してください。
QuadrupedRobotアイテムの下にアイテムを追加して、QuadrupedRobotIOと名前を付けてください。
World(ワールドアイテム) |-AISTSimulator(AISTシミュレータ) |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml) |-QuadrupedRobotIO(PyRTCItem) |-floor(model/house/floor.body)
QuadrupedRobotIOのプロパティからRTC moduleという項目を設定してください。
ファイル名にQuadrupedRobot_Choreonoid.pyを設定してください。 これで四足歩行ロボット用の入出力RTCが起動します。
RTCランチャーを起動します。ファイル、アイテムからComponentListItemを選択して追加してください。
実行(rtcd、周期実行)ボタンを押すだけで起動できます。
※本来はトリガー駆動の実行コンテキストを使用したいのですが、OpenRTM-aist C++版のバグにより実現できていません。
RTCエディタを起動します。ファイル、アイテムからRTCEditorItemを選択してワールドアイテムの下に追加してください。
四足歩行ロボットの目標速度を設定するアウトポートを追加します。 右側のウインドウから以下の設定を行ってください。
作成ボタンを押すとデータポートを作成します。
ソースコードの編集を行います。
先ほど作成したデータポートにかかわる変数名については、右側のデータポート変数名タブからコピーできます。
左側のコード編集ウインドウは各アクティビティ+α(setBody、inputFromSimulator、outputToSimulator、グローバル)で実行する処理が記述できます。
onExecute関数の処理に以下を記述してください。
self._d_out.data.vx = 0.03 self._d_out.data.va = 0 self._outOut.write() return RTC.RTC_OK
変更した内容は更新ボタンを押すと反映されます。
World(ワールドアイテム) |-AISTSimulator(AISTシミュレータ) |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml) |-QuadrupedRobotIO(PyRTCItem) |-floor(model/house/floor.body) |-ComponentList |-RTCEditor
RTシステムアイテム追加後、表示、ビューの表示からRTCダイアグラムを表示してください。
RTCの各ポートを以下のように接続してください。
World(ワールドアイテム) |-AISTSimulator(AISTシミュレータ) |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml) |-QuadrupedRobotIO(PyRTCItem) |-floor(model/house/floor.body) |-ComponentList |-RTCEditor |-RTSystem
最後にシミュレーションを開始すると四足歩行ロボットが前進します。
シミュレータ起動中に例えば以下のようにRTCEditorのonExecute関数のコードを変更して更新ボタンを押すと、シミュレーション実行中に四足歩行ロボットが前進から旋回する運動に変化することが確認できます。
self._d_out.data.vx = 0 self._d_out.data.va = 0.8 self._outOut.write() return RTC.RTC_OK
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
このページではRTCEditorアイテム、ComponentListアイテムの利用方法を四足歩行ロボットのシミュレータ作成を例にして解説します。
アイテム追加
ワールド、シミュレータ
まずはワールドアイテム、シミュレータアイテムを追加します。 ファイル、新規からワールドとAISTシミュレータを選択して追加してください。
この時点でアイテムツリーは以下のようになります。
モデル
次に地面、四足歩行ロボットのモデルを追加します。
ファイル、読み込みからOpenHRP モデルファイルを選択後、以下のファイルを読み込んでください。
すると以下のように3Dモデルが表示されます。 表示されない場合はアイテムツリー上の該当アイテムのチェックボタンをオンにしてください。
この時点でアイテムツリーは以下のようになります。
RTコンポーネント
PyRTCアイテム
RTコンポーネントを追加します。 ファイル、新規からPyRTCItemを選択して追加してください。
QuadrupedRobotアイテムの下にアイテムを追加して、QuadrupedRobotIOと名前を付けてください。
この時点でアイテムツリーは以下のようになります。
Pythonファイルの設定
QuadrupedRobotIOのプロパティからRTC moduleという項目を設定してください。
ファイル名にQuadrupedRobot_Choreonoid.pyを設定してください。 これで四足歩行ロボット用の入出力RTCが起動します。
ComponentListアイテム
RTCランチャーを起動します。ファイル、アイテムからComponentListItemを選択して追加してください。
次にビューの表示からComponentListを選択してください。
すると以下のウインドウが表示されます。
RTCはカテゴリ別に分類されており、タブを切り替えることでほかのカテゴリのRTCを表示できます。 Controllerのタブを開いて、以下の2つのRTCを起動します。
実行(rtcd、周期実行)ボタンを押すだけで起動できます。
※本来はトリガー駆動の実行コンテキストを使用したいのですが、OpenRTM-aist C++版のバグにより実現できていません。
この時点でRTCリストビューを更新すると以下のように表示されます。
RTCEditorアイテム
RTCエディタを起動します。ファイル、アイテムからRTCEditorItemを選択してワールドアイテムの下に追加してください。
すると以下のウインドウが表示されます。
データポート追加
四足歩行ロボットの目標速度を設定するアウトポートを追加します。 右側のウインドウから以下の設定を行ってください。
作成ボタンを押すとデータポートを作成します。
コード編集
ソースコードの編集を行います。
データポート変数名について
先ほど作成したデータポートにかかわる変数名については、右側のデータポート変数名タブからコピーできます。
コード記述
左側のコード編集ウインドウは各アクティビティ+α(setBody、inputFromSimulator、outputToSimulator、グローバル)で実行する処理が記述できます。
onExecute関数の処理に以下を記述してください。
変更した内容は更新ボタンを押すと反映されます。
この時点でアイテムツリーは以下のようになります。
RTシステム構築
RTシステムアイテム追加後、表示、ビューの表示からRTCダイアグラムを表示してください。
RTCの各ポートを以下のように接続してください。
この時点でアイテムツリーは以下のようになります。
シミュレータ起動
最後にシミュレーションを開始すると四足歩行ロボットが前進します。
実行中のコード変更
シミュレータ起動中に例えば以下のようにRTCEditorのonExecute関数のコードを変更して更新ボタンを押すと、シミュレーション実行中に四足歩行ロボットが前進から旋回する運動に変化することが確認できます。