インターフェースの説明の前に、多足歩行ロボットのRTCの設計方針について述べる。 まず、対象とする多足歩行ロボットは自律移動機能共通インタフェースに準拠し、起動追従RTC等から目標速度を入力可能とする。
四足歩行ロボットの歩容だけでもクロール歩容、間歇クロール歩容、トロット歩容等様々な種類があり、ロボットの機構もさまざまであることから、四足歩行ロボット制御RTCを適当な粒度に分割する。
脚運動生成系に関しては四足歩行ロボットの機構への依存が小さく,脚の可動範囲が同じであれば関節の配置や自由度が違っていても歩行は可能である. 足先軌道制御系に関しては四足歩行ロボットの機構に大きく依存する部分であり,脚のリンク長さ,関節位置等詳細なパラメータが既知である必要がある. 駆動サーボ制御系に関しては四足歩行ロボットのハードウェアに直接依存する部分であるが,使用する駆動サーボが同じ場合は四足歩行ロボット以外にも適用可能である.
よって,機構への依存が小さい部分,機構への依存が大きい部分,ハードウェアに依存する部分の3 種類に分割できたため,以下の3 種類の処理を行うRTCを作成しシステムを作成する.
足先軌道制御コンポーネントと駆動サーボ制御コンポーネントの間の通信には,駆動サーボ制御コンポーネントが既存のRTC を利用できる可能性があることからデータポートによりTimedDoubleSeq 型等の基本データ型を利用した通信を行うべきである.
脚運動生成コンポーネントと足先軌道制御コンポーネントの間の通信には既存のインターフェースで適当なものが存在しないため、独自のデータ型を定義する。
多足歩行ロボット制御用共通インターフェースとして、以下のIDLファイルを作成した。
// -*- IDL -*- #ifndef LEGGEDROBOTINTERFACE_IDL #define LEGGEDROBOTINTERFACE_IDL #include "BasicDataType.idl" #include "ExtendedDataTypes.idl" module RTC { struct Leg { RTC::Pose3D pose; RTC::Velocity3D velocity; boolean onGround; }; struct LeggedRobot { RTC::Time tm; sequence<Leg> leg_data; RTC::Velocity3D body_velocity; RTC::Pose3D body_pose; }; }; /* module */ #endif /* LEGGEDROBOTINTERFACE_IDL */
この共通インターフェースでは以下の図の座標系を使用する。 Σwは床に固定された座標系(ワールド座標系)、Σrはロボットの重心を原点とした座標系(ロボット重心座標系)とする。
新たに定義したデータ型LeggedRobot型は以下の足先軌道の通信に使用する。 LeggedRobot型はLeg型の配列を保持しており、各脚の目標位置、目標速度をLeg型オブジェクトに格納する。 四足歩行ロボットの場合は、以下のように脚番号を設定してある。
配列leg_dataには脚0から順に格納する。
Leg型、LeggedRobot型の各変数の内容は以下のとおりである。
モーションエディタ/シミュレータ
動力学シミュレータ
統合開発プラットフォーム
産総研が提供するRTC集
東京オープンソースロボティクス協会
ネットワーク分散環境でデータ収集用ソフトウェアを容易に構築するためのソフトウェア・フレームワーク
RTCの設計方針について
インターフェースの説明の前に、多足歩行ロボットのRTCの設計方針について述べる。 まず、対象とする多足歩行ロボットは自律移動機能共通インタフェースに準拠し、起動追従RTC等から目標速度を入力可能とする。
四足歩行ロボットの歩容だけでもクロール歩容、間歇クロール歩容、トロット歩容等様々な種類があり、ロボットの機構もさまざまであることから、四足歩行ロボット制御RTCを適当な粒度に分割する。
脚運動生成系に関しては四足歩行ロボットの機構への依存が小さく,脚の可動範囲が同じであれば関節の配置や自由度が違っていても歩行は可能である. 足先軌道制御系に関しては四足歩行ロボットの機構に大きく依存する部分であり,脚のリンク長さ,関節位置等詳細なパラメータが既知である必要がある. 駆動サーボ制御系に関しては四足歩行ロボットのハードウェアに直接依存する部分であるが,使用する駆動サーボが同じ場合は四足歩行ロボット以外にも適用可能である.
よって,機構への依存が小さい部分,機構への依存が大きい部分,ハードウェアに依存する部分の3 種類に分割できたため,以下の3 種類の処理を行うRTCを作成しシステムを作成する.
足先軌道制御コンポーネントと駆動サーボ制御コンポーネントの間の通信には,駆動サーボ制御コンポーネントが既存のRTC を利用できる可能性があることからデータポートによりTimedDoubleSeq 型等の基本データ型を利用した通信を行うべきである.
脚運動生成コンポーネントと足先軌道制御コンポーネントの間の通信には既存のインターフェースで適当なものが存在しないため、独自のデータ型を定義する。
独自データ型について
多足歩行ロボット制御用共通インターフェースとして、以下のIDLファイルを作成した。
この共通インターフェースでは以下の図の座標系を使用する。 Σwは床に固定された座標系(ワールド座標系)、Σrはロボットの重心を原点とした座標系(ロボット重心座標系)とする。
新たに定義したデータ型LeggedRobot型は以下の足先軌道の通信に使用する。 LeggedRobot型はLeg型の配列を保持しており、各脚の目標位置、目標速度をLeg型オブジェクトに格納する。 四足歩行ロボットの場合は、以下のように脚番号を設定してある。
配列leg_dataには脚0から順に格納する。
Leg型、LeggedRobot型の各変数の内容は以下のとおりである。