䢴䣃䢴䢯䣅䢳䢴

OpenRT Platform / 動作パターン設計ツール
OpenRT Platform / Motion Pattern Composition Tool
○中岡慎一郎 比留川博久 (産総研)

Shin’ichiro NAKAOKA and Hirohisa HIRUKAWA (AIST)
Abstract— This paper intoroduces a “Motion Pattern Composition Tool”, which is being developed as a part of theOpenRT platform. The tool is a GUI tool that allows developpers, researchers or users of a robot to easily create motion
patterns of the robot with graphical visualization. The tool provides various basic features needed for the interactive edit
operation and allows users to add their own features so that it can be used for various purposes in developing or opearating
various robots.
Key Words: OpenRT Platform, OpenHRP3, Motion Pattern, GUI Framework, Excade

1. はじめに
経済産業省による「次世代ロボット知能化技術開発 プ ロ ジェク ト 」に お い て 開 発 中 の 共 通 ソ フ ト ウ
ェア プ ラット フォー ム で あ る “OpenRT Platform”[1]
で は 、OpenRTM[2] を 中 心 と し た ミ ド ル ウェア や 、OpenHRP3[3] を中心としたシミュレーション環境に加えて、ロボットの開発・運用において需要が高いと思われる各種基本ツール群の提供も行う。本稿では、そのような基本ツールのひとつとして我々が開発を進めている「動作パターン設計ツール」の概要を説明する。
ロボットの開発・運用においては、最終的にエンドエフェクタの位置姿勢の軌道や関節角軌道などで表わされる「動作パターン」を予め作成しておくことが必要となる場面がある。動作パターンの作成は、エンターテインメント用途などで、与えられたパターンを提示すること自体が目的となる場合はもちろん必要である
し、そうでない場合にも様々な形で使用され得る。例えば、ロボット設計時の寸法の決定やアクチュエータ等のハードウェア部品の選定の際に、与えられたパターンによるテストやシミュレーションが有用である。また、人間とのインタラクションやその場の状況にあわせた作業など、一定のパターンを再生するだけでは達成できない行動においても、いくつかの基本動作パターン群をその場で組み合わたり部分的に利用するといったかたちでパターンが必要となることも多い。近年開発の盛んなヒューマノイドロボットを始めとする複雑な関節構造をもつロボットは動作の自由度が高く、それを活かすための動作パターン作成の重要度が高まっていると考えられる。
しかしながら、現状ではロボットの動作パターンを作成する標準的なツールは存在せず、対象とするロボットや動作の種類に合わせて個別に作成されたプログラムによって動作パターンを生成することが多かった。そのような手法が有効である場面も多いが、専門家でないユーザでも簡単にロボットを利用できるようにした
り、テストやデモのための動作を迅速に作成する、あるいはヒューマノイドロボット等自由度の多いロボットの動作を効率的に作成するといった目的に対しては、むしろ視覚的な動作提示とインタラクティブな編集操作を連携させた GUI ツールが有効である。そのようなツールの例として、宮本らは小型二足歩行ヒューマノ
イドロボット QRIO を対象とした動作編集ツールの構成法を提案している [4]。しかしこのツールは一般への公開はされておらず、操作方法や実装手法の詳細について、同等の機能をもつツールを作れるほど十分に公開されているとは言えない。このようにロボット開発機関が内部で使用するツールを開発することはあっても、十分な汎用性をもち一般にも利用可能なツールまでは至っていないのが現状である。
ロボットの動作パターン作成と同様の要素をもつツールとして、3DCG ツールのアニメーション作成機能が挙げられる。しかし CG ツールの機能は、機構設計や物理法則の厳密な制約の下にある実際のロボットに対してそのまま適用できるものではなく、やはりロボットには専用のツールが必要である。その実現にあたっては、ユーザの意図する動作とロボットの制約への適応の間でいかに整合性をとっていくか、その処理をいかに自動化・効率化していくかが、興味深い研究課題となる。
このようなの背景のもと、グラフィカルでインタラクティブな編集機能を備え、様々なロボットに対して汎用的に利用可能な動作パターン設計ツールを開発し、その成果を一般のロボット開発者やユーザにも提供していくことが、本開発項目の目標である。

設計方針

2.

本ツールは以下の方針に基づいて設計した。

1. 編集方式を特定しない。
2. ユーザによる独自機能の構築を可能とする。
3. 実行効率を重視する。
4. マルチプラットフォームとする。
方針 1 に基づき、ツールの実態は特定の編集方式とはしない。これは、ロボットのハードウェアや応用分野の多様さを考えると、特定の編集方式をツールとして提供しても使用範囲が限られてしまうからである。むしろ雑多な編集方式の集合体としてのツールを提供した方が、ロボットの研究開発において有用なツールになり得る。このため、ツールの設計においては、様々な編集方式を実装し統合していくためのフレームワークとしての役割を意識している。もちろん「動作パターン設計ツール」としての具体的な機能は必要であり、こ䣝䣐䣱䢰䢢䢲䢻䢯䢶䣟䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢲䢻䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣈䣷䣭䣷䣱䣭䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢶䢯䢴䢸䢮䢢䢴䢲䢲䢻䢴䣃䢴䢯䣅䢳䢴䢪䢳䢫

れについては 4. 節で既に実装されている基本機能を紹介する。
ツールがフレームワークという性格をもつ以上、方針 2 に示したように、ユーザが必要に応じて独自の機能をフレームワーク上に構築可能とすることが自然である。これは、ある特定の種類の拡張が行えるというのではなく、ツール開発者と同じレベルでユーザも一から編集方式を構築可能なものとする。その際に、すでにツールがもっている機能は容易に再利用できるものとし、これによって新たな機能の構築も効率的に行えるものとする。
方針 3 は、ツールの扱う課題を考えると非常に重要である。すなわち、自由度が高いロボットについて、逆運動学や物理制約を考慮した最適化などの内部計算をこなし、3DCG も含む各種情報の提示をし、それらをユーザの GUI 操作とスムーズに結びつけるためには、実行効率も十分に考慮する必要がある。この結果、本ツールは他の OpenRT Platform のツールと同様に Eclipse プラグインとして実装することは見送り、本ツールを実現するフレームワークを C++言語を用いて独自に構築することにした。これは必ずしも Eclipse や Java が実行効率の面で C++による実装に劣るという意味ではなく、一般的にロボットに関る各種モデル計算、アルゴリズムの実装が、C/C++で行われることが多いことが大きな理由である。その種の計算については、豊富なライブラリ資産、CPU を最大限に活用するコーディングが可能であること、C++においては演算子オーバーロードが可能といった背景から、依然として C/C++が実装言語として最有力であり、実際 OpenHRP3 の内部計算用ライブラリも C++で実装されている。そして、それら C/C++の資産をツールから利用する場合、Javaからは JNI や CORBA といったレイヤを介す必要があり、同じ言語から直接呼び出す場合と比べて、開発効率・実行効率の面で劣ってしまう。本ツールについては GUI 操作と内部計算が密接に結びつく場面が多くこの問題は無視できないため、C++による新たなフレームワークの構築に至った。
方針 4 については、オープンなプラットフォームになり得るために押さえておくべき要素であり、この点も考慮してフレームワーク実装のためのライブラリ選定等を行った。
以上述べたように、ツールの設計方針から、「ロボット研究開発のための多様な機能を統合可能な C++による効率的な GUI フレームワークを構築する」ことがツー
ル開発のひとつの目標となった。今後このフレームワー
クを”Excade (Extensible C++ Application DevelopmentEnvironment)” と呼ぶことにし、この上に「動作パターン設計ツール」を構築していく。

3. Excade フレームワークの概要
Excade では、GUI ツールキットとして Gtk+の C++ラッパである Gtkmm を採用しており、3DCG の描画には OpenGL の上に構築されたシーングラフライブラリである OpenSceneGraph を利用している。また、行列計算やロボットのモデル計算には、OpenHRP3 の提供するライブラリを利用している。これらはいずれも定評のあるオープンソースでマルチプラットフォームなライブラリであり、これらの採用により高品質なフレームワークを低コストで実現することができた。
Excade で機能構築の基本単位となるのがデータアイ
テムとビューである。データアイテムはユーザによる編集操作の対象となるデータを明示化したものであり、ビューはデータアイテムの可視化や編集を行うものとなっている。この構成は、いわゆるドキュメント・ビュー、あるいはモデル・ビュー・コントローラと呼ばれるフレームワークと類似のフレームワークであり、様々なデータに対して様々な閲覧・操作方式を柔軟に連携させることが可能なものである。
Fig.1 に Excade の上に構築された動作パターン設計
ツールの画面の例を示す。この図の全体を占めるメインウィンドウの中で分割された領域のひとつひとつがビューに対応する。また、メインウィンドウの上部に並ぶツールバーもビューと同様に扱うことが可能である。この画面で左上に位置する領域が次節で紹介する
ItemTreeView となっており、ここにリストアップされているのがデータアイテムである。
いくつかの種類のデータアイテムやビューをまとめたものはプラグインというかたちでフレームワーク上に追加される。そもそもツールの基本機能もプラグインとして構築されており、ユーザによる独自機能も同様に構築可能となっている。

4.

基本機能

現在のところ、動作パターン設計ツールとして基本的な機能を実現するために、主に以下に示すデータアイテムやビュー、ツールバー等が実装されている。

BodyItem ロボットのリンクモデルに対応するアイテム。OpenHRP3 ライブラリにおける Body クラスをラップしたものであり、各リンクの形状や状態、リンク間のツリー構造などを格納する。OpenHRP3のモデルファイルから構築可能。
BodyMotionItem 主にロボットの関節角軌道とベースリンクの位置姿勢の軌道を表すデータアイテム。
基本的にはこのデータが最終的な動作パターンとなる。ファイルフォーマットは OpenRT Platform で策定する動作記述方式に対応する。
PoseSeqItem キーポーズの時系列を格納するアイテム。
ロボットの姿勢の管理や補間による動作生成に利用。ファイルフォーマットは OpenRT Platform で策定する動作記述方式に対応する。
AudioItem 音声データを格納したアイテム。音声と動きをシンクロさせる際に利用する。
ItemTreeView ツールに読み込まれている全アイテムをツリー表示するビュー。ここで編集対象データの選択や、コピー&ペースト等を行う。(Fig.1 左上）
MessageView ツールからのメッセージをテキスト表示するビュー。
SceneView BodyItem 等、CG による可視化が可能なものを 3DCG によって表示するビュー。また、逆運動学などについて、CG を直接ドラッグすること䣝䣐䣱䢰䢢䢲䢻䢯䢶䣟䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢲䢻䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣈䣷䣭䣷䣱䣭䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢶䢯䢴䢸䢮䢢䢴䢲䢲䢻䢴䣃䢴䢯䣅䢳䢴䢪䢴䢫Fig.1 A screenshot of the Motion Pattern Composition Tool

によるビジュアルかつインタラクティブな操作も実現する。(Fig.1 右上）

GraphView 関節角軌道などをグラフ表示する。また、フリーライン、直線、スプラインなどによる軌道のエディットも可能。(Fig.1 右下）
LinkSelectionView ロボットのリンクや関節をリスト表示し、表示・編集の対象とするリンクや関節の選択を行うためのビュー。(Fig.1 の ItemTreeView 右）LinkStateView ロボットのリンクの位置姿勢、関節角などの各種パラメータを閲覧・編集するためのビュー。
JointSliderView 複数のスライダーを用いてロボットの関節角を閲覧・編集するためのビュー。(Fig.1 左下）
PoseSeqView PoseSeqItem に格納されたキーポーズの表示と編集を行うビュー。(Fig.1 中央上）TimeBar 編集結果を提示する際の時間を管理するツールバー。(Fig.1 メインウィンドウ上部）
関節角/角速度リミットフィルタ BodyMotionItem に格納された関節角軌道について、角度や角速度の範囲をロボットの仕様値内に収めるためのフィルタ。パターンを実機に適用する際に必要に応じて利用する。
以上の要素を用いて、軌道やキーポーズの入力による基本的な動作パターン編集が可能となっている。また、このような基本的な機能が提供されているため、これらの機能をそのまま利用することにより、独自の機能を効率的に構築することが可能となっている。

5.

おわりに本稿では、OpenRT Platform を構成するツールのひとつである動作パターン設計ツールについて、その開発背景、設計方針、フレームワークと基本機能の概要について説明した。
今後は、現在までに開発された基本機能をベースとして、ヒューマノイドロボットの全身動作を対象とした力学バランスの整合化、自己干渉の回避など、より複雑な動作の設計に対応するための研究開発を行っていく。また、著者らはモーションキャプチャによって取得した人の動作データのロボットへの適用も実現しており [5]、この技術も容易に利用可能な形でツールに取り入れて行きたいと考えている。最終的には、3DCGツールによって CG キャラクタのアニメーションを作成するのと同じ要領でロボット実機に適用可能な動作パターンを作成できるツールにするのが目標である。
ツールの配布は、2009 年度初頭にまず参加機関への配布を開始する。そこでのテストを経て、2009 年度中に一般へのリリースを行うことを検討している。
参考文献[1] 原, 比留川, 平井, 高野, 中本, 齋藤：“ロボット知能ソフトウェアプラットフォーム”, 第 26 回日本ロボット学会学術講演会, pp. RSJ2008AC1F1–02 (2008).
[2] N. Ando, T. Suehiro, K. Kitagaki, T. Kotoku and W.-K.
Yoon: “RT-Middleware: Distributed component middleware for RT (Robot Technology)”, Proceedings of the 2005
IEEE/RSJ International Conference on Intelligent Robots andSystems, Edmonton, Canada, pp. 3555–3560 (2005).
[3] 中岡, 山野辺, 比留川, 山根, 川角：“分散コンポーネント型ロボットシミュレータ OpenHRP3”, 日本ロボット学会誌,
26, 5, pp. 399–406 (2008).

䣝䣐䣱䢰䢢䢲䢻䢯䢶䣟䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢲䢻䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣈䣷䣭䣷䣱䣭䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢶䢯䢴䢸䢮䢢䢴䢲䢲䢻䢴䣃䢴䢯䣅䢳䢴䢪䢵䢫[4] 宮本, 三上, 永野, 長阪, 黒木, 山口：“小型二足歩行エンターテインメントロボットのためのダイナミックモーショ
ンクリエーティングシステム”, 第 22 回日本ロボット学会
学術講演会, 岐阜, p. 3L23 (2004).
[5] 中岡, 中澤, 金広, 金子, 森澤, 比留川, 池内：“脚タスクモデルを用いた２足歩行ヒューマノイドロボットによる人の舞踊動作の再現”, 日本ロボット学会誌, 24, 3, pp. 112–123(2006).

䣝䣐䣱䢰䢢䢲䢻䢯䢶䣟䢢䣒䣴䣱䣥䣧䣧䣦䣫䣰䣩䣵䢢䣱䣨䢢䣶䣪䣧䢢䢴䢲䢲䢻䢢䣌䣕䣏䣇䢢䣅䣱䣰䣨䣧䣴䣧䣰䣥䣧䢢䣱䣰䢢䣔䣱䣤䣱䣶䣫䣥䣵䢢䣣䣰䣦䢢䣏䣧䣥䣪䣣䣶䣴䣱䣰䣫䣥䣵䢮䢢䣈䣷䣭䣷䣱䣭䣣䢮䢢䣌䣣䣲䣣䣰䢮䢢䣏䣣䣻䢢䢴䢶䢯䢴䢸䢮䢢䢴䢲䢲䢻䢴䣃䢴䢯䣅䢳䢴䢪䢶䢫