Choreonoid用OpenRTM連携プラグイン Python版 チュートリアル(四足歩行ロボット)

このページではRTCEditorアイテム、ComponentListアイテムの利用方法を四足歩行ロボットのシミュレータ作成を例にして解説します。


choreonoid-openrtm-py345.png

アイテム追加

ワールド、シミュレータ

まずはワールドアイテム、シミュレータアイテムを追加します。 ファイル、新規からワールドとAISTシミュレータを選択して追加してください。

この時点でアイテムツリーは以下のようになります。

 World(ワールドアイテム)
   |-AISTSimulator(AISTシミュレータ)

モデル

次に地面、四足歩行ロボットのモデルを追加します。

ファイル、読み込みからOpenHRP モデルファイルを選択後、以下のファイルを読み込んでください。

  • {Choreonoidインストールディレクトリ}/share/model/QuadrupedRobot/QuadrupedRobot.yaml
  • {Choreonoidインストールディレクトリ}/share/model/house/floor.body

すると以下のように3Dモデルが表示されます。 表示されない場合はアイテムツリー上の該当アイテムのチェックボタンをオンにしてください。


cnoid-rtm-py14.png

この時点でアイテムツリーは以下のようになります。

 World(ワールドアイテム)
   |-AISTSimulator(AISTシミュレータ)
   |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml)
   |-floor(model/house/floor.body)

RTコンポーネント

PyRTCアイテム

RTコンポーネントを追加します。 ファイル、新規からPyRTCItemを選択して追加してください。

QuadrupedRobotアイテムの下にアイテムを追加して、QuadrupedRobotIOと名前を付けてください。

この時点でアイテムツリーは以下のようになります。

 World(ワールドアイテム)
   |-AISTSimulator(AISTシミュレータ)
   |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml)
       |-QuadrupedRobotIO(PyRTCItem)
   |-floor(model/house/floor.body)

Pythonファイルの設定

QuadrupedRobotIOのプロパティからRTC moduleという項目を設定してください。

ファイル名にQuadrupedRobot_Choreonoid.pyを設定してください。 これで四足歩行ロボット用の入出力RTCが起動します。

ComponentListアイテム

RTCランチャーを起動します。ファイル、アイテムからComponentListItemを選択して追加してください。


cnoid-rtm-py9.png

次にビューの表示からComponentListを選択してください。


choreonoid-openrtm-py30.png

すると以下のウインドウが表示されます。


cnoid-rtm-py10.png

RTCはカテゴリ別に分類されており、タブを切り替えることでほかのカテゴリのRTCを表示できます。 Controllerのタブを開いて、以下の2つのRTCを起動します。

  • Foot_Position_Controller(四足歩行ロボット足先位置制御コンポーネント)
  • Intermittent_Crawl_Gait_Controller(四足歩行ロボット間歇クロール歩容コンポーネント)

実行(rtcd、周期実行)ボタンを押すだけで起動できます。

※本来はトリガー駆動の実行コンテキストを使用したいのですが、OpenRTM-aist C++版のバグにより実現できていません。


cnoid-rtm-py48.png

この時点でRTCリストビューを更新すると以下のように表示されます。


cnoid-rtm-py12.png

RTCEditorアイテム

RTCエディタを起動します。ファイル、アイテムからRTCEditorItemを選択してワールドアイテムの下に追加してください。


cnoid-rtm-py13.png

すると以下のウインドウが表示されます。


cnoid-rtm-py2-2.png

データポート追加

四足歩行ロボットの目標速度を設定するアウトポートを追加します。 右側のウインドウから以下の設定を行ってください。

ポート名 out
ポート DataOutPort
データ型 RTC::TimedVelocity2D

作成ボタンを押すとデータポートを作成します。


cnoid-rtm-py15.png

コード編集

ソースコードの編集を行います。

データポート変数名について

先ほど作成したデータポートにかかわる変数名については、右側のデータポート変数名タブからコピーできます。


cnoid-rtm-py16.png

コード記述

左側のコード編集ウインドウは各アクティビティ+α(setBody、inputFromSimulator、outputToSimulator、グローバル)で実行する処理が記述できます。

onExecute関数の処理に以下を記述してください。

 self._d_out.data.vx = 0.03
 self._d_out.data.va = 0
 self._outOut.write()
 
 return RTC.RTC_OK

変更した内容は更新ボタンを押すと反映されます。


cnoid-rtm-py17.png

この時点でアイテムツリーは以下のようになります。

 World(ワールドアイテム)
   |-AISTSimulator(AISTシミュレータ)
   |-QuadrupedRobot(model/QuadrupedRobot/QuadrupedRobot.yaml)
       |-QuadrupedRobotIO(PyRTCItem)
   |-floor(model/house/floor.body)
   |-ComponentList
   |-RTCEditor

RTシステム構築

RTシステムアイテム追加後、表示、ビューの表示からRTCダイアグラムを表示してください。

RTCの各ポートを以下のように接続してください。


cnoid-rtm-py18.png

この時点でアイテムツリーは以下のようになります。

 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

ダウンロード

最新バージョン : 2.0.1-RELESE

統計

Webサイト統計
ユーザ数:2209
プロジェクト統計
RTコンポーネント307
RTミドルウエア35
ツール22
文書・仕様書2

Choreonoid

モーションエディタ/シミュレータ

OpenHRP3

動力学シミュレータ

OpenRTP

統合開発プラットフォーム

産総研RTC集

産総研が提供するRTC集

TORK

東京オープンソースロボティクス協会

DAQ-Middleware

ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク