(57)【要約】【課題】  実ロボットのダイナミックで且つエレガントなモーション・パフォーマンスを実現するためのモーション編集システムを提供する。【解決手段】  モーション編集システムは、上体並びに機体全体のモーションを編集するモーション・エディタと、歩行パターンや下半身のモーションを生成して機体全体の安定化処理を行なう脚軌跡エディタからなる。脚軌跡エディタは、実ロボットに搭載されているものと同じ歩行パターン・ジェネレータとモーション・スタビライザを備える。実ロボット上で実演する前に、３Ｄビューア上で、モーションの作成、修正、安定化処理を行なう。【選択図】  図９
2005125460.tif 000002
【特許請求の範囲】
【請求項１】
機体は上体と歩行を行なう複数の脚からなる下半身を持ち、複数の関節角を備えたロボット装置のためのモーション編集装置であって、
前記上体並びに前記機体全体のモーションを編集するモーション・エディタと、
前記脚による歩行パターンや前記下半身のモーションを生成するとともに、該生成した下半身のモーションと前記モーション・エディタにより編集された上体又は前記機体全体のモーションを併合して前記機体全体の安定化処理を行なう脚軌跡エディタと、
を具備することを特徴とするロボット装置のためのモーション編集装置。
【請求項２】
前記脚軌跡エディタは、実ロボットに搭載されているものと同じ運動エンジンを備える、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項３】
前記運動エンジンは、歩行パターン・ジェネレータとモーション・スタビライザからなる、
ことを特徴とする請求項２に記載のロボット装置のためのモーション編集装置。
【請求項４】
前記運動エンジンは、全身協調型の制御により、歩行パターンを実時間で生成するとともに、ＺＭＰ方程式を用いて脚部のモーション並びに全身のモーションを安定化する、
ことを特徴とする請求項２に記載のロボット装置のためのモーション編集装置。
【請求項５】
前記モーション・エディタ及び前記脚軌跡エディタによるモーションの作成、修正、安定化処理を３Ｄビューア上で行なう、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項６】
前記脚軌跡エディタは、安定化処理後のモーション・データを所定のファイル・フォーマット形式で出力する、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項７】
前記脚軌跡エディタは、安定化処理後の機体全体の関節角の軌跡に関するデータを、制御点と制御点間の補間式に関する情報で構成されるファイル・フォーマット形式で出力する、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項８】
前記モーション・エディタは、編集した関節角度値をコピーするために、選択された関節において、それぞれ対称的な関節角度値のコピーを行なうミラー・コピー機能と、両方向においてコピーを行なう対称コピー機能を備える、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項９】
前記歩行パターン・ジェネレータは、歩行コマンド及び歩行パラメータのシーケンスから、左右両脚の足の位置と向きを表した一連の軌跡を作成する、
ことを特徴とする請求項３に記載のロボット装置のためのモーション編集装置。
【請求項１０】
前記歩行パターン・ジェネレータは、歩行期間中のそれぞれの脚における歩の軌跡として歩行パターンを表現する、
ことを特徴とする請求項９に記載のロボット装置のためのモーション編集装置。
【請求項１１】
前記モーション・スタビライザは、歩行パターンと、上体における骨盤の移動と、関節の移動を、制御サイクル毎に受信して、ＺＭＰ安定度判別規範に基づいて、安定した２足歩行を実現するような全身のモーションを計算する、
ことを特徴とする請求項３に記載のロボット装置のためのモーション編集装置。
【請求項１２】
前記脚軌跡エディタは、編集済みの歩行パターン中の特定の歩についての歩行パラメータを修正することを許容する、
ことを特徴とする請求項９に記載のロボット装置のためのモーション編集装置。
【請求項１３】
歩の修正に伴い、歩行パターン全体を自動修正する自動修正手段をさらに備える、
ことを特徴とする請求項１２に記載のロボット装置のためのモーション編集装置。
【請求項１４】
前記自動修正手段は、自動修正時において、変更が好ましくないようなパラメータを拘束条件としてユーザが指定することができる、
ことを特徴とする請求項１３に記載のロボット装置のためのモーション編集装置。
【請求項１５】
前記自動修正手段は、同じ拘束条件を持つ連続した歩の集まりを拘束グループとして定義する、
ことを特徴とする請求項１４に記載のロボット装置のためのモーション編集装置。
【請求項１６】
拘束グループ内では、修正可能な歩行パラメータが優先順位付けされる、
ことを特徴とする請求項１５に記載のロボット装置のためのモーション編集装置。
【請求項１７】
前記自動修正手段は、歩の挿入、削除、移動、又は設定変更が行なわれたことに応答して、歩が挿入又は削除された拘束グループとその前後の拘束グループ（但し、存在する場合）の関係に基づいて、影響を受けるすべての歩を自動修正する、
ことを特徴とする請求項１６に記載のロボット装置のためのモーション編集装置。
【請求項１８】
前記自動修正手段は、拘束条件又は制限事項を満たさない歩がある場合には、拘束条件と制限事項を満足させる案（歩の追加又は削除）を生成してこれをユーザに提示する、
ことを特徴とする請求項１６に記載のロボット装置のためのモーション編集装置。
【請求項１９】
前記自動修正手段は、ユーザが前記の提示案を選択しない場合には、開放させる拘束条件の案をユーザに提示する、
ことを特徴とする請求項１８に記載のロボット装置のためのモーション編集装置。
【請求項２０】
前記自動修正手段は、拘束グループ外の歩に影響が出ないように、できるだけ拘束グループ内で完結して処理できるように、拘束グループ内の歩に関して設定されているパラメータを、優先順位に従って処理を行なう、
ことを特徴とする請求項１６に記載のロボット装置のためのモーション編集装置。
【請求項２１】
前記自動修正手段は、拘束グループ外の歩に影響が出る場合は、拘束グループ外の歩に設定されているパラメータの優先順位（同位が可能）に従って、可能な限り修正量が少なくなるように処理を行なう、
ことを特徴とする請求項２０に記載のロボット装置のためのモーション編集装置。
【請求項２２】
前記自動修正手段は、拘束グループの前後の拘束条件の無い歩がどちらも同条件である場合は、後又は前のいずれか一方の歩を優先的に修正する、
ことを特徴とする請求項２１に記載のロボット装置のためのモーション編集装置。
【請求項２３】
同時に複数台のロボットのモーションを作成・編集するマルチロボット編集環境をサポートする、
ことを特徴とする請求項１に記載のロボット装置のためのモーション編集装置。
【請求項２４】
機体は上体と歩行を行なう複数の脚からなる下半身を持ち、複数の関節角を備えたロボット装置のためのモーション編集方法であって、
前記上体並びに前記機体全体のモーションを編集するモーション編集ステップと、
前記脚による歩行パターンや前記下半身のモーションを生成するとともに、該生成した下半身のモーションと前記モーション・エディタにより編集された上体又は前記機体全体のモーションを併合して前記機体全体の安定化処理を行なう脚軌跡編集ステップと、
を具備することを特徴とするロボット装置のためのモーション編集方法。
【請求項２５】
機体は上体と歩行を行なう複数の脚からなる下半身を持ち、複数の関節角を備えたロボット装置のためのモーション編集処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記上体並びに前記機体全体のモーションを編集するモーション編集モジュールと、
前記脚による歩行パターンや前記下半身のモーションを生成するとともに、該生成した下半身のモーションと前記モーション・エディタにより編集された上体又は前記機体全体のモーションを併合して前記機体全体の安定化処理を行なう脚軌跡編集モジュールと、
を具備することを特徴とするコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの所定の動作パターンを記述するモーションの作成・編集を支援するためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムに係り、特に、可動脚によりさまざまな作業を行なうロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムに関する。
【背景技術】
【０００２】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の“ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ ｒｏｂｏｔ）であった。
【０００３】
最近では、ヒトやサルなどの２足直立歩行を行なう動物の身体メカニズムや動作を模した脚式移動ロボットに関する研究開発が進展し、実用化への期待も高まってきている。２足直立による脚式移動は、クローラ式や、４足又は６足式などに比し不安定で姿勢制御や歩行制御が難しくなるが、不整地や障害物など作業経路上に凹凸のある歩行面や、階段や梯子の昇降など不連続な歩行面に対応することができるなど、柔軟な移動作業を実現できるという点で優れている。
【０００４】
また、ヒトの生体メカニズムや動作を再現した脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上のさまざまな場面における人的活動の支援などを行なうことができる。
【０００５】
人間の作業空間や居住空間のほとんどは、２足直立歩行という人間が持つ身体メカニズムや行動様式に合わせて形成されおり、車輪その他の駆動装置を移動手段とした現状の機械システムが移動するのには多くの障壁が存在する。したがって、機械システムすなわちロボットがさまざまな人的作業を代行し、さらに人間の住空間に深く浸透していくためには、ロボットの移動可能範囲が人間のそれとほぼ同じであることが好ましい。これが、脚式移動ロボットの実用化が大いに期待されている所以でもある。
【０００６】
昨今の脚式移動ロボットは高い情報処理能力を備えており、ロボットそのものを一種の計算機システムとして捉えることができる。言い換えれば、ロボット上で実現される動作パターン、あるいは、複数の基本的な動作パターンの組合せによって構成される高度且つ複雑な一連の動作シーケンスすなわちモーションは、コンピュータ・プログラミングと同様の作業によって構築される。
【０００７】
実機を動作するためのモーション・データが数多く普及されることが、ロボット本体が普及していくためには必須である。したがって、ロボット用のモーション編集を行なうための開発環境の構築が強く望まれている。
【０００８】
また、今後、産業界のみならず一般家庭や日常生活にもロボットが深く浸透していくことが予想される。とりわけ、エンタティンメント性を追求する製品に関しては、コンピュータやコンピュータ・プログラミングに加え，運動制御に関する高度な知識を持たくとも、振付師やデザイナーがモーション・コンテンツを作成できることが強く望まれるとともに、一般消費者層がロボットを購入して使用するケースも多いと予想される。このような一般ユーザにとっても、ロボットの動作シーケンスを対話的な処理により比較的容易且つ効率的に作成・編集することを支援するためのツール、すなわちモーション編集システムを提供することが好ましい。
【０００９】
ロボットは、関節などの複数の制御点で構成されており、したがって、各制御点における位置や速度（関節角やその角速度）を入力していくことにより、機体動作を編集することができる。この点では、コンピュータ・グラフィックスにおけるキャラクタのアニメーション生成に類似する。しかしながら、仮想空間上での動作と実機動作とでは自ずと相違がある。脚式移動ロボットの場合には、単に関節角を駆動させただけでは所望の動作を実行することはできず、転倒することなく脚式作業を継続している必要がある。言い換えれば、実機上での動作を確認し、モーション実行中に機体が姿勢の安定度を維持していることが、所望動作を実現することの前提となる。
【００１０】
多くの場合、脚式移動ロボットの姿勢安定制御には、足底接地点と路面の形成する支持多角形の内側にモーメントがゼロとなる点を探索するというＺＭＰ安定度判別規範を用いる（例えば、非特許文献１を参照のこと）。２足の脚式移動ロボットの場合、この支持多角形が極めて小さいことから、姿勢安定制御はとりわけ困難とされている。
【００１１】
機体の各制御点における指示値を画面入力してロボットのモーションを組むというモーション編集システムは既に存在するが、しかしながら、編集されたモーションで実機動作させる場合の姿勢安定性をチェックしたり、姿勢が安定化するように所望のモーションを修正したりするようなシステムは未だない。せっかく組まれたモーションでは機体の姿勢安定性を維持できず、モーション自体を実行することができないのでは、実質的にモーションを編集したことにはならない。
【００１２】
【非特許文献１】ヴコブラトビッチ（Ｍｉｏｍｉｒ Ｖｕｋｏｂｒａｔｏｖｉｃ）著「脚式移動ロボット（ＬＥＧＧＥＤ ＬＯＣＯＭＯＴＩＯＮ ＲＯＢＯＴＳ）」（加藤一郎外著『歩行ロボットと人工の足』（日刊工業新聞社））
【発明の開示】
【発明が解決しようとする課題】
【００１３】
本発明の目的は、実機上での実行可能性を考慮しながら動作パターンの編集を支援することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムを提供することにある。
【００１４】
本発明のさらなる目的は、実機上で動作を確認しながら編集されたモーションを修正することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムを提供することにある。
【課題を解決するための手段】
【００１５】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、機体は上体と歩行を行なう複数の脚からなる下半身を持ち、複数の関節角を備えたロボット装置のためのモーション編集装置であって、
前記上体並びに前記機体全体のモーションを編集するモーション・エディタと、
前記脚による歩行パターンや前記下半身のモーションを生成するとともに、該生成した下半身のモーションと前記モーション・エディタにより編集された上体又は前記機体全体のモーションを併合して前記機体全体の安定化処理を行なう脚軌跡エディタと、
を具備することを特徴とするロボット装置のためのモーション編集装置である。
【００１６】
ここで、前記脚軌跡エディタは、実ロボットに搭載されているものと同じ運動エンジンを備えている。ここで言う運動エンジンは、例えば、歩行パターン・ジェネレータとモーション・スタビライザからなる。そして、運動エンジンは、全身協調型の制御により、歩行パターンを実時間で生成するとともに、ＺＭＰ方程式を用いて脚部のモーション並びに全身のモーションを安定化するようになっている。
【００１７】
したがって、本発明に係るモーション編集システムによれば、モーションのデザイナーは、ロボットの上体及び下半身のモーションが一旦生成した後、実機上で再生する前に、機体モーション全体を検査することができる。したがって、このようなモーションの編集・生成作業を通して、アップテンポなダンス・パフォーマンスなどのアトラクティブなロボットのアプリケーションを実現することかできる。
【００１８】
また、前記モーション・エディタ及び前記脚軌跡エディタによるモーションの作成、修正、安定化処理を３Ｄビューア上で行なうようにしてもよい。
【００１９】
すなわち、本発明に係るモーション編集システムは、リッチなユーザ・インターフェースを備え、安定した２足歩行を始めとし、音楽に同期したダンス・パフォーマンスなど、さまざまなモーションを生成し、編集することに適している。モーション生成には、実ロボットに搭載されているものと同じ歩行パターン生成処理と姿勢安定化処理を取り入れているので、実ロボット上で正確に作動する行動を生成することができる。
【００２０】
また、前記脚軌跡エディタは、安定化処理後のモーション・データを所定のファイル・フォーマット形式で出力するようにしてもよい。このような場合、例えばメモリ・スティックのような可搬型の記憶媒体を介してモーション・データ・ファイルを実ロボットへ移動することができる。
【００２１】
また、出力データのファイル・フォーマットの一例として、安定化処理が施された機体全体の関節角の軌跡に関するデータを、制御点と制御点間の補間式に関する情報で構成されるデータ形式としてもよい。このようなデータ・フォーマットによれば、機体全体の関節角データを時系列的に配置して構成されるデータ・フォーマットに比べ、データ・サイズの著しい削減を実現することができる。
【００２２】
また、前記モーション・エディタは、編集した関節角度値をコピーするために、選択された関節において、それぞれ対称的な関節角度値のコピーを行なうミラー・コピー機能と、両方向においてコピーを行なう対称コピー機能を備えていてもよい。
【００２３】
ミラー・コピーによれば、例えば、右腕を選んだ場合、右腕の各関節の角度値は、左腕のそれぞれ対応する関節にコピーされる。また、対称コピーは、両方向においてコピーを行なうという以外は、同様の機能を提供する。例えば、左右の腕が選択された場合、各腕の関節角度値はスワップされる。
【００２４】
また、運動エンジンに含まれる歩行パターン・ジェネレータは、歩行コマンド及び歩行パラメータのシーケンスから、左右両脚の足の位置と向きを表した一連の軌跡を作成するようにしてもよい。ここで言う歩行パラメータには、歩幅（ｓｔｅｐ  ｌｅｎｇｔｈ）や、歩行周期（ｓｔｅｐ  ｃｙｃｌｅ）、あるいはその他の幾つかのパラメータが含まれる。ここで、歩行期間中における左右両脚の歩の軌跡として歩行パターンを表現することにより、編集中の歩行パターンを扱い易くすることができる。すなわち、歩（ｓｔｅｐ）毎に歩行パラメータを設定することにより、歩行パターンをデザインすることができる。例えば、歩行（ｗａｌｋｉｇ）やダンスなどのさまざまな歩は、適当な歩行パラメータで構成される。本発明に係る歩行パターン・ジェネレータによれば、モーションのデザイナーは、２足歩行における脚の関節の詳細な軌跡を指定する必要はない。何故ならば、ソフトウェアによる処理を実行により、これらのデータは歩行パラメータから導き出されるからである。
【００２５】
また、運動エンジンに含まれるモーション・スタビライザは、歩行パターンと、上体における骨盤の移動と、関節の移動を、制御サイクル毎に受信して、ＺＭＰ安定度判別規範に基づいて、安定した２足歩行を実現するような全身のモーションを計算するようにしてもよい。
【００２６】
脚軌跡エディタのこのような機能によって、実ロボット上で試験する前に、モーション編集システム上で、実ロボット上で実演されるものと同じモーションを観察し、そのモーションの実行可能性（ｆｅａｓｉｂｉｌｉｔｙ）を検証することができる。
【００２７】
本発明に係るモーション編集システムは、モーション・データが指定されたとき、制御システムに対し、歩行コマンドのシーケンスと、骨盤のキーフレームと、上体のモーションを転送するだけでよい。何故ならば、制御システム自身で全身のモーションの詳細を決定することができるからである。このような制御システムとモーション編集システム間の協調的な設計方針により、ロボットへロードする際に転送するためのモーション・データのサイズを削減することができる。
【００２８】
また、前記脚軌跡エディタは、編集済みの歩行パターン中で、特定の歩についての歩行パラメータを修正することを許容するようにしてもよい。さらに、歩の修正に伴い、歩行パターン全体を自動修正する自動修正手段をさらに備えていてもよい。
【００２９】
歩行パターンの自動修正を実行する際、例えば、自動修正時において、変更が好ましくないようなパラメータを拘束条件としてユーザが指定することができる。また、同じ拘束条件を持つ連続した歩の集まりを「拘束グループ」として定義することができる。拘束グループ内では、修正可能な歩行パラメータが優先順位付けされており、それに基づいて自動修正処理が行なわれる。
【００３０】
自動修正処理手順では、原則的に、拘束グループ外の歩に影響が出ないように、できるだけ拘束グループ内で完結して処理できるように、拘束グループ内の歩に関して設定されているパラメータを、優先順位に従って処理を行なうようにする。
【００３１】
また、拘束グループ外の歩に影響が出る場合は、拘束グループ外の歩に設定されているパラメータの優先順位（同位が可能）に従って、可能な限り修正量が少なくなるように処理を行なう。
【００３２】
また、拘束条件の無い歩は、他の歩が修正されたことによって、受動的にパラメータを修正されることがある。拘束グループの前後に存在する拘束条件の無い歩がどちらも同条件である場合は、後の歩が優先的に修正される。但し、内部設定によりこの限りではない。
【００３３】
そして、自動修正を行なうときには、その旨をユーザ・インターフェース経由でユーザに判断と確認を要求するようにする。
【００３４】
また、本発明に係るモーション編集システムは、同時に複数台のロボットのモーションを作成・編集するマルチロボット編集環境をサポートしていてもよい。
【００３５】
このような場合、まず１台目の実ロボットのモーションを作成し、続いて残りの実ロボットのモーションを作成する際、１台目の実ロボットのモーション・データを再利用することにより、作業を著しく簡素化することができる。
【００３６】
そして、最終的に、フォーメーションをチェックするために、すべての実ロボットのモーション・データを脚軌跡エディタにロードしてこれらを観察し、各々のロボットの振る舞いが期待された通りかどうかを検査することができる。
【００３７】
また、本発明の第２の側面は、機体は上体と歩行を行なう複数の脚からなる下半身を持ち、複数の関節角を備えたロボット装置のためのモーション編集処理をコンピュータ・システム上で実行するようにコンピュータ可読形式で記述されたコンピュータ・プログラムであって、
前記上体並びに前記機体全体のモーションを編集するモーション編集モジュールと、
前記脚による歩行パターンや前記下半身のモーションを生成するとともに、該生成した下半身のモーションと前記モーション・エディタにより編集された上体又は前記機体全体のモーションを併合して前記機体全体の安定化処理を行なう脚軌跡編集モジュールと、
を具備することを特徴とするコンピュータ・プログラムである。
【００３８】
本発明の第２の側面に係るコンピュータ・プログラムは、コンピュータ・システム上で所定の処理を実現するようにコンピュータ可読形式で記述されたコンピュータ・プログラムを定義したものである。換言すれば、本発明の第２の側面に係るコンピュータ・プログラムをコンピュータ・システムにインストールすることによって、コンピュータ・システム上では協働的作用が発揮され、本発明の第１の側面に係るロボットのためのモーション編集装置又はモーション編集方法と同様の作用効果を得ることができる。
【発明の効果】
【００３９】
本発明によれば、実機上での実行可能性を考慮しながら動作パターンの編集を支援するロボット装置のための優れたロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムを提供することができる。
【００４０】
また、本発明によれば、実機上で動作を確認しながら編集されたモーションを修正することができる、優れたロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラムを提供することができる。
【００４１】
本発明に係るモーション編集システムは、上体並びに機体全体のモーションを編集するモーション・エディタと、歩行パターンや下半身のモーションを生成して機体全体の安定化処理を行なう脚軌跡エディタからなる。脚軌跡エディタは、実ロボットに搭載されているものと同じ歩行パターン・ジェネレータとモーション・スタビライザを備える。実ロボット上で実演する前に、３Ｄビューア上で、モーションの作成、修正、さらには安定化処理を行なうので、実ロボットのダイナミックで且つエレガントなモーション・パフォーマンスを簡易な編集作業により実現することができる。
【００４２】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００４３】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００４４】
Ａ．脚式移動ロボットの機械的構成
図１及び図２には、本発明に係る動作編集システムによる動作編集となる脚式移動ロボット１００の外観構成を示している。この脚式移動ロボット１００は、「人間形」又は「人間型」と呼ばれ、図示の通り、脚式移動ロボット１００は、胴体部と、頭部と、左右の上肢部と、脚式移動を行う左右２足の下肢部とで構成され、例えば胴体に内蔵されている制御部（図示しない）により機体の動作を統括的にコントロールするようになっている。
【００４５】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって体幹部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部の上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【００４６】
制御部は、この脚式移動ロボット１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【００４７】
このように構成された脚式移動ロボット１００は、制御部による全身協調的な動作制御により、２足歩行を実現することができる。かかる２足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
【００４８】
（１）右脚を持ち上げた、左脚による単脚支持期
（２）右足が接地した両脚支持期
（３）左脚を持ち上げた、右脚による単脚支持期
（４）左足が接地した両脚支持期
【００４９】
脚式移動ロボット１００における歩行制御は、あらかじめ下肢の目標軌道を計画し、上記の各期間において計画軌道の修正を行なうことによって実現される。すなわち、両脚支持期では、下肢軌道の修正を停止して、計画軌道に対する総修正量を用いて腰の高さを一定値で修正する。また、単脚支持期では、修正を受けた脚の足首と腰との相対位置関係を計画軌道に復帰させるように修正軌道を生成する。
【００５０】
歩行動作の軌道修正を始めとして、機体の姿勢安定制御には、一般に、ＺＭＰを歩行の安定度判別の規範として用いている。ＺＭＰによる安定度判別規範は、歩行系から路面には重力と慣性力、並びにこれらのモーメントが路面から歩行系への反作用としての床反力並びに床反力モーメントとバランスするという「ダランベールの原理」に基づく。力学的推論の帰結として、足底接地点と路面の形成する支持多角形（すなわちＺＭＰ安定領域）の内側にピッチ軸及びロール軸モーメントがゼロとなる点、すなわちＺＭＰが存在する。この場合、ＺＭＰに対する偏差を小さくするための位置、速度、及び加速度が連続となるように、５次多項式を用いた補間計算により行なう。
【００５１】
図３には、この脚式移動ロボット１００が具備する関節自由度構成を模式的に示している。同図に示すように、脚式移動ロボット１００は、２本の腕部と頭部１を含む上肢と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部とで構成された、複数の肢を備えた構造体である。
【００５２】
頭部を支持する首関節（Ｎｅｃｋ）は、首関節ヨー軸１と、首関節ピッチ軸２と、首関節ロール軸３という３自由度を有している。
【００５３】
また、各腕部は、その自由度として、肩（Ｓｈｏｕｌｄｅｒ）における肩関節ピッチ軸４と、肩関節ロール軸５と、上腕ヨー軸６、肘（Ｅｌｂｏｗ）における肘関節ピッチ軸７と、手首（Ｗｒｉｓｔ）における手首関節ヨー軸８と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・多自由度構造体である。
【００５４】
また、体幹部（Ｔｒｕｎｋ）は、体幹ピッチ軸９と、体幹ロール軸１０という２自由度を有する。
【００５５】
また、下肢を構成する各々の脚部は、股関節（Ｈｉｐ）における股関節ヨー軸１１と、股関節ピッチ軸１２と、股関節ロール軸１３と、膝（Ｋｎｅｅ）における膝関節ピッチ軸１４と、足首（Ａｎｋｌｅ）における足首関節ピッチ軸１５と、足首関節ロール軸１６と、足部とで構成される。
【００５６】
但し、エンタティンメント向けの脚式移動ロボット１００が上述したすべての自由度を装備しなければならない訳でも、あるいはこれに限定される訳でもない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【００５７】
上述したような脚式移動ロボット１００が持つ各自由度は、実際にはアクチュエータを用いて実装される。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行なうことなどの要請から、アクチュエータは小型且つ軽量であることが好ましい。本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした（この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報に開示されている）。本実施形態では、直結ギアとして低減速ギアを採用することにより、人間との物理的インタラクションを重視するタイプのロボット１００に求められている駆動系自身の受動的特性を得ている。
【００５８】
Ｂ．脚式移動ロボットの制御システム構成
図４には、脚式移動ロボット１００の制御システム構成を模式的に示している。同図に示すように、脚式移動ロボット１００は、ヒトの四肢を表現した各機構ユニット３０、４０、５０Ｒ／Ｌ、６０Ｒ／Ｌと、各機構ユニット間の協調動作を実現するための適応制御を行なう制御ユニット８０とで構成される（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下同様）。
【００５９】
脚式移動ロボット１００全体の動作は、制御ユニット８０によって統括的に制御される。制御ユニット８０は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）やメモリなどの主要回路コンポーネント（図示しない）で構成される主制御部８１と、電源回路やロボット１００の各構成要素とのデータやコマンドの授受を行なうインターフェース（いずれも図示しない）などを含んだ周辺回路８２とで構成される。
【００６０】
本発明を実現する上で、この制御ユニット８０の設置場所は特に限定されない。図４では体幹部ユニット４０に搭載されているが、頭部ユニット３０に搭載してもよい。あるいは、脚式移動ロボット１００外に制御ユニット８０を配備して、脚式移動ロボット１００の機体とは有線若しくは無線で交信するようにしてもよい。
【００６１】
図３に示した脚式移動ロボット１００内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。すなわち、頭部ユニット３０には、首関節ヨー軸１、第１及び第２の首関節ピッチ軸２Ａ及び２Ｂ、首関節ロール軸３の各々を表現する首関節ヨー軸アクチュエータＡ1、首関節ピッチ軸アクチュエータＡ2A及びＡ2B、首関節ロール軸アクチュエータＡ3が配設されている。
【００６２】
また、体幹部ユニット４０には、体幹ピッチ軸９、体幹ロール軸１０の各々を表現する体幹ピッチ軸アクチュエータＡ9、体幹ロール軸アクチュエータＡ10が配備されている。
【００６３】
また、腕部ユニット５０Ｒ／Ｌは、上腕ユニット５１Ｒ／Ｌと、肘関節ユニット５２Ｒ／Ｌと、前腕ユニット５３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸４、肩関節ロール軸５、上腕ヨー軸６、肘関節ピッチ軸７、手首関節ヨー軸８の各々を表現する肩関節ピッチ軸アクチュエータＡ4、肩関節ロール軸アクチュエータＡ5、上腕ヨー軸アクチュエータＡ6、肘関節ピッチ軸アクチュエータＡ7、手首関節ヨー軸アクチュエータＡ8が配備されている。
【００６４】
また、脚部ユニット６０Ｒ／Ｌは、大腿部ユニット６１Ｒ／Ｌと、膝ユニット６２Ｒ／Ｌと、脛部ユニット６３Ｒ／Ｌに細分化されるが、股関節ヨー軸１１、股関節ピッチ軸１２、股関節ロール軸１３、膝関節ピッチ軸１４、足首関節ピッチ軸１５、足首関節ロール軸１６の各々を表現する股関節ヨー軸アクチュエータＡ11、股関節ピッチ軸アクチュエータＡ12、股関節ロール軸アクチュエータＡ13、膝関節ピッチ軸アクチュエータＡ14、足首関節ピッチ軸アクチュエータＡ15、足首関節ロール軸アクチュエータＡ16がそれぞれ配備されている。
【００６５】
各関節に用いられるアクチュエータＡ1、Ａ2、Ａ3…は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータ（前述）で構成することができる。
【００６６】
頭部ユニット３０、体幹部ユニット４０、腕部ユニット５０、各脚部ユニット６０などの機構ユニット毎に、アクチュエータ駆動制御用の副制御部３５、４５、５５、６５が配備されている。
【００６７】
機体の体幹部４０には、加速度センサ９５と姿勢センサ９６が配設されている。加速度センサ９５は、Ｘ，Ｙ，Ｚ各軸方向に配置する。機体の腰部に加速度センサ９５を配設することによって、質量操作量が大きな部位である腰部を制御目標点として設定して、その位置における姿勢や加速度を直接計測して、ＺＭＰに基づく姿勢安定制御を行なうことができる。
【００６８】
また、各脚部６０Ｒ、６０Ｌには、接地確認センサ９１及び９２と、加速度センサ９３及び９４がそれぞれ配設されている。接地確認センサ９１及び９２は、例えば足底に圧力センサを装着することにより構成され、床反力の有無により足底が着床したか否かを検出することができる。また、加速度センサ９３及び９４は、少なくともＸ及びＹの各軸方向に配置する。このように左右の足部に加速度センサ９３及び９４を配設することにより、ＺＭＰ釣合い方程式を組み立てるために必要な加速度などのパラメータをＺＭＰ位置に最も近い足部で直接獲得することができる（後述）。
【００６９】
質量操作量が大きな部位である腰部にのみ加速度センサを配置した場合、腰部のみが制御目標点に設定され、足部の状態は、この制御目標点の計算結果を基に相対的に算出しなければならず、足部と路面との間では以下の条件を満たすことが、前提となってしまう。
【００７０】
（１）路面はどんな力やトルクが作用しても動くことがない。
（２）路面での並進に対する摩擦係数は充分に大きく、滑りが生じない。
【００７１】
これに対し、本実施形態では、路面との接触部位である足部にＺＭＰと力を直接する反力センサ・システム（床反力センサなど）を配備するとともに、制御に用いるローカル座標とその座標を直接的に計測するための加速度センサを配設する。この結果、ＺＭＰ位置に最も近い足部で直接ＺＭＰ釣合い方程式を組み立てることができ、上述したような前提条件に依存しない、より厳密な姿勢安定制御を高速で実現することができる。この結果、力やトルクが作用すると路面が動いてしまう砂利上や毛足の長い絨毯上や、並進の摩擦係数が充分に確保できずに滑りが生じ易い住居のタイルなどであっても、機体の安定歩行（運動）を保証することができる。
【００７２】
主制御部８０は、各センサ９１〜９３の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部３５、４５、５５、６５の各々に対して適応的な制御を行ない、脚式移動ロボット１００の上肢、体幹、及び下肢が協調して駆動する全身運動パターンを実現する。
【００７３】
ロボット１００の機体上での全身運動は、足部運動、ＺＭＰ軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容に従った動作を指示するコマンドを各副制御部３５、４５、５５、６５に転送する。そして、各々の副制御部３５、４５…では、主制御部８１からの受信コマンドを解釈して、各アクチュエータＡ1、Ａ2、Ａ3…に対して駆動制御信号を出力する。ここで、ＺＭＰは歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、ＺＭＰ軌道とは、例えばロボット１００の歩行動作期間中にＺＭＰが動く軌跡を意味する。
【００７４】
本実施形態に係るロボット１００は、人間形のエンタティンメント指向のロボットであり、ダイナミックで且つエレガントなパフォーマンスを実演することができる。このようなパフォーマンスは、ロボット向けの小型でインテリジェントなアクチュエータと、全身協調型で実時間の適応的運動制御を行なう制御システム（Ｒｅａｌ−ｔｉｍｅ  Ｉｎｔｅｇｒａｔｅｄ  Ａｄａｐｔｉｖｅ  Ｍｏｔｉｏｎ  Ｃｏｎｔｒｏｌ）によって実現される。
【００７５】
この制御システムによれば、歩行パターンを実時間で生成するとともに、ＺＭＰ方程式を用いて脚部のモーション並びに全身のモーションを安定化することができる。このような全身協調型の制御は、運動エンジン（Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）と呼ばれるソフトウェア・モジュールに統合されている。Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅは、歩行コマンドや上体の関節角、骨盤の位置や向きを制御周期毎に他のソフトウェア・モジュールから受信して、すべての関節角についての参照角を生成する。また、Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅは、未知の不整地や外力に適応するために、センサ値を用いて全身のモーションを安定化する。
【００７６】
Ｃ．モーション編集システム
ダイナミックで且つエレガントなパフォーマンスパフォーマンスは、ロボット向けの小型でインテリジェントなアクチュエータと、全身協調型で実時間の適応的運動制御を行なう制御システムによって実現される。モーション制御を支援するために、本発明者らは、このようなロボットに適用可能で、一般的なパーソナル・コンピュータ上でも動作するモーション編集システムを開発した。このモーション編集システムが提供する環境下では、エンジニアやデザイナー、さらにはアーティストなどロボットの専門家以外の人達であっても、ロボットのクリエイティブなモーション・パフォーマンスを制作することができる。
【００７７】
本発明に係るモーション編集システムは、例えば、ロボット１００の上体（ｕｐｐｅｒ  ｂｏｄｙ）のモーション並びに機体全体のモーションを編集する「モーション・エディタ（Ｍｏｔｉｏｎ  Ｅｄｉｔｏｒ）」と、姿勢安定化処理（Ｓｔａｂｉｌｉｚｅ）が施された下半身（ｌｏｗｅｒ  ｂｏｄｙ）のモーションを編集する「脚軌跡エディタ（Ｆｏｏｔ  Ｔｒａｊｅｃｔｏｒｙ  Ｅｄｉｔｏｒ）」の２部で構成される（後述）。
【００７８】
実ロボットには、運動エンジン（Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）と呼ばれるソフトウェア・モジュールが搭載されており、全身協調型の制御により、歩行パターンを実時間で生成するとともに、ＺＭＰ方程式を用いて脚部のモーション並びに全身のモーションを安定化することができる（前述）。これに対し、モーション編集システムは、このような実ロボットと密接な協働動作を行なうようにデザインされている。
【００７９】
このモーション編集システムによれば、モーションのデザイナーは、ロボットの上体及び下半身のモーションが一旦生成した後、実機上で再生する前に、機体モーション全体を検査することができる。したがって、このようなモーションの編集・生成作業を通して、アップテンポなダンス・パフォーマンスなどのアトラクティブなロボットのアプリケーションを実現することかできる。
【００８０】
本実施形態に係るモーション編集システムは、リッチなユーザ・インターフェースを備え、安定した２足歩行を始めとし、音楽に同期したダンス・パフォーマンスなど、さまざまなモーションを生成し、編集することに適している。モーション生成には、実ロボットに搭載されているものと同じ歩行パターン生成処理と姿勢安定化処理を取り入れているので、実ロボット上で正確に作動する行動を生成することができる。
【００８１】
例えば、機体の３Ｄアニメーション・キャラクタを介してポーズを指示するためのユーザ・インターフェースを備えている。図５には、その画面構成例を示している。
【００８２】
オペレータは、図示の３Ｄビューア画面に表示されている３Ｄキャラクタ上で指定された部位をマウスでドラッグすることにより、その部位に所望の動きを与えることができる。
【００８３】
このビューア画面の左側縁には、カメラ・モード・ボタンが配設されており、”Ｆｒｏｎｔ”、”Ｂａｃｋ”、”Ｌｅｆｔ”、”Ｒｉｇｈｔ”、”Ｔｏｐ”、”Ｂｏｔｔｏｍ”など、３Ｄキャラクタを眺める（表示する）向きを指定することができる。
【００８４】
また、ビューア画面の下端縁には、部位指定ボタンが配置されており、オペレータは、これらのうちいずれかを押すことによって、動きを与えたい部位を指定することができる。図示の例では、左から順に、左腕、右腕、左脚、右脚を指定するボタンが配設されている。また、Ａ、Ｂ、Ｃの各ボタンの定義はユーザ・プログラムブルであり、オペレータは２以上の部位を同時指定する場合のショートカット・ボタンとして利用することができる。
【００８５】
また、ビューア画面の左下端には、ＩＫ（逆キネマティクス）ボタンが配設されている。このＩＫボタンを選択すると、図６に示すようなＩＫ関節角グループ化ウィンドウが出現する。
【００８６】
このＩＫ関節角グループ化ウィンドウ内では、機体の関節自由度構成が描かれており、オペレータはポーズを変更したい部位を直接クリックすることによって指定することができる。あるいは、画面右端縁に沿って配設された部位指定ボタンを利用して、グループ化したい部位を選択することもできる。
【００８７】
また、同ウィンドウの上方には、ＩＫ関節角グループの属性を指定するためのチェック・ボックスが配設されている。
【００８８】
“Ｍａｉｎｔａｉｎ Ｅｎｄ Ｅｆｆｅｃｔ Ｏｒｉｅｎｔａｔｉｏｎ”をチェックすることにより、脚部を操作するときの足底の姿勢を維持するようにすることができる。
【００８９】
また、“Ｍｏｖｅ Ｘ／Ｍｏｖｅ Ｙ／Ｍｏｖｅ Ｚ”をチェックすることにより、３Ｄキャラクタの指定部位を操作するときの操作方向を各方向に限定することができる。
【００９０】
このようにポーズを変更したい部位を指定した後、図５に示す３Ｄビューア画面に戻って、３Ｄキャラクタ上で指定された部位をマウスでドラッグすることにより、ポーズを変更する。図７には、左右両足を変更部位として指定した後、３Ｄキャラクタを用いてポーズを変更する様子を描いている。この場合、オペレータは、例えば股関節付近をマウス・カーソルでつかんで、画面上を上下左右に走査することができる。図７に示す例では、オペレータが印加する操作に応じて、足底の位置や姿勢を変化させずに、腰の位置や姿勢だけを変化させている。
【００９１】
逆キネマティクスによるポーズ指定方式は、ポーズを変更したい部位を指定した後、実ロボットをシミュレーションした３Ｄキャラクタ上の指定部位に動きを与える。指定部位の操作には、マウスのドラッグなどの機能を利用することができる。そして、指定部位を動作後、逆キネマティクスにより、画面上のポーズを形成するための各関節角の変位量が算出される。
【００９２】
また、ポーズの入力方式として、機体の３Ｄアニメーション・キャラクタを介して指示されたポーズから逆キネマティクスにより各関節軸の変位角を求めるという上述の方式の他に、各関節軸の変位角の直接入力する方法も備えている。
【００９３】
後者の直接入力方式では、例えば図８に示すような入力画面を用いてポーズを指示することができる。同図に示す画面では、機体の関節自由度構成に沿って関節角入力ボックスが配設されているので、オペレータは所望の関節付近の入力ボックス内にマウスでカーソルを置いた後、キーボードを使って所望の値を与えることができる。また、入力ボックスの右端の“＋”ボタンをクリックすることによって、既に入力されている値をインクリメントすることができる。入力ボックスに新しい値を書き込むと、現在実行中のポーズとして保管される。また、逆キネマティクスによるポーズ指定方式により得られた関節角の算出値も、図８に示した変位角指定画面の入力ボックスに反映される。
【００９４】
なお、直接入力方式の場合、図８に示すような入力画面上でユーザのマニュアル入力に頼る以外に、モーション・キャプチャや、実機上でのダイレクト・ティーチングにより得られた各関節角の変位量を入力データとして用いることもできる。
【００９５】
図９には、本発明の一実施形態に係るモーション編集システムの機能構成を模式的に示している。
【００９６】
モーション編集システムは、主に、ロボット１００の上体（ｕｐｐｅｒ  ｂｏｄｙ）のモーション並びに機体全体のモーションを編集する「モーション・エディタ（Ｍｏｔｉｏｎ  Ｅｄｉｔｏｒ）」と、姿勢安定化処理（Ｓｔａｂｉｌｉｚｅ）が施された下半身（ｌｏｗｅｒ  ｂｏｄｙ）のモーションを編集する「脚軌跡エディタ（Ｆｏｏｔ  Ｔｒａｊｅｃｔｏｒｙ  Ｅｄｉｔｏｒ）」の２部で構成される。
【００９７】
脚軌跡エディタは、実ロボット制御用のモーション・データを生成するための２つの主要な機能を備えている。１つの機能は歩行パターン・ジェネレータ（Ｇａｉｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）であり、他の一つの機能はモーション・スタビライザ（Ｍｏｔｉｏｎ  Ｓａｔｂｉｌｉｚｅｒ）である。
【００９８】
図１０には、このモーション編集システムにより実ロボットのモーションを生成するための処理手順をフローチャートの形式で示している。
【００９９】
モーションのデザインに関するコンセプトが一旦出来上がると（ステップＳ１）、プロジェクト・マネージャ経由でモーション・エディタを起動することができる（ステップＳ２）。
【０１００】
モーション・エディタによれば、各ポーズ（姿勢）の設定並びにポーズ間の遷移を逐次入力していくことで、実ロボットの上体のモーション、並びに全身のモーションを生成することができる。ここで、実ロボットのアトラクティブなポーズを生成し修正するために、順キネマティクス及び逆キネマティクスの両方が用いられる。
【０１０１】
生成されたモーションは、３Ｄウィンドウ画面上で再生され、ユーザはこれを確認することができる。
【０１０２】
次いで、脚軌跡エディタ内の歩行パターン・ジェネレータは、２足歩行における下半身のモーションである歩行パターンを生成する（ステップＳ３）。
【０１０３】
そして、ユーザがモーション・エディタを用いて上体のモーション・データを生成するとともに、脚軌跡エディタを用いて下半身のモーション・データを生成し終えると、これらのモーションの組は併合される（ステップＳ４）。
【０１０４】
モーション・スタビライザは、併合された全身のモーションを、姿勢安定化が可能であるか、あるいは実ロボットのモーション制御に適用することができるかによって評価する（ステップＳ５）。そして、評価に合格すると（ステップＳ６）、出力される（ステップＳ７）。
【０１０５】
このようなモーション編集システムによる編集結果は、所定フォーマットのモーション・ファイルとして保管される。このモーション・ファイルを脚式移動ロボットにインストールすることによって、実機動作によりモーションを再生することができる。
【０１０６】
Ｄ．モーション・エディタ
Ｄ−１．タイムライン上での編集
モーション・エディタは、オペレータから入力された機体のポーズに従って、ポーズ間の動きの補間などを行ない、モーションを編集する。このとき、２以上のポーズをタイムライン上で時系列的に組み合わせていくだけでなく、部位毎に編集されたポーズを並列的に組み合わせることも可能である。
【０１０７】
ここで、タイムラインは、複数の機能ボタンや、時間や複数のトラックを操作するためのコントロールを備えている。ここで言う複数のトラックには、モーションのトラック、関節のリミット・エラー・トラック、オーディオ・トラックなどが含まれる。機体上の異なる部位におけるモーションを別々のモーション・トラックに割り当ててタイムラインを構成することもできる（後述並びに図１１、図１２を参照のこと）。各トラックは、首関節群、右腕の関節群、左腕の関節群といった具合に、機体上の異なる部位グループに関連している。同じ関節のモーションについて２以上のトラックで規定されている場合には、より上位に配置されているトラックが優先される。図５に示したような３Ｄウィンドウ画面には、すべてのトラックの中から優先付けされたモーション・データを用いてシミュレートされたものが表示される。
【０１０８】
図５に示すような３Ｄビューア画面上で指示され逆キネマティクスにより求められたポーズ、あるいは、図８に示すような関節軸の変位角入力画面により指定されたポーズ、トラック上に逐次配置されていく。図１１には、あるトラック上に複数のポーズが時系列的に配置されている様子を示している。
【０１０９】
トラックの横軸は時間軸に相当する。作成されたポーズを表わすアイコンが、トラック上でデフォルト間隔をおいて順次配置されていく。トラック上でアイコンを水平方向にドラッグすることにより、ポーズの再生時刻をスライドさせることができる。隣接するポーズ間は、例えば線形補間やスプライン補間などの手法を用いて補間されて、モーションとなる。
【０１１０】
１つのトラック上では、指定部位が同じポーズしか扱われない。すなわち、ＩＫ関節角グループ毎にトラックが用意される。例えば、あるトラック上で右腕を指定部位としたポーズからなるモーションを編集中に、左脚を指定部位とするポーズが入力されてきた場合（あるいは、右腕以外の部位、又は右腕とともにそれ以外の部位が指定されている場合）、別のトラックに登録される。
【０１１１】
図１２には、ＩＫ関節角グループ毎にトラックが配設されている様子を示している。各トラックは、該当するＩＫ関節角グループにおいて規定されたポーズからなるモーションを取り扱う。図示の例では、上から順に、右腕、左脚、左脚、…、全身の順にトラックが配置されている。
【０１１２】
優先順位に従って上からトラックが配置されるようになっている。図示のようにトラック単位すなわちＩＫ関節角グループ単位でポーズの作成を行なった後、再生を行なうと、優先順位に従って機体動作の再生が行なわれる。
【０１１３】
図１２に示す例では、優先順位の高い右腕のポーズの発現が優先される。次いで、左脚のポーズの発現が優先されるが、右腕と左脚とでは機体ハードウェアの干渉はないので、左脚のポーズはほぼそのまま再生されることになる。
【０１１４】
また、左脚をＩＫ関節角グループとするトラックがさらに続いた場合には、優先順位が上位のトラックと緩衝するので、モーション再生時にこのトラックのポーズは発現されない。
【０１１５】
また、全身を指定部位とするトラックが続く場合、右腕、左脚など優先するトラックと競合しない範囲でポーズの発現が行なわれる。
【０１１６】
このようなトラック毎に部位単位でのポーズの編集を許容するようなシステムにおいては、高優先順位のトラックを特定の部位に割り当て、上半身や下半身、全身など比較的大きな部位の組み合わせのポーズ編集には低優先順位のトラックを使用することが、編集作業の効率上好ましいと思料される。
【０１１７】
Ｄ−２．ポーズ間の補間
モーション・エディタを用いて編集を行なう１つの形態として、まずポーズを作成し、続いてポーズ間の補間（ｉｎｔｅｒｐｏｌａｔｅ）を行なう。各トラック上でポーズを設定するとともに補間を行なうことによって、多くのさまざまなモーションを簡単に作成することができる。この手法によれば、関節角が複雑な軌跡を描く場合であっても、モーションを容易に作成することができる。
【０１１８】
本実施形態に係るモーション・エディタは、線形補間、多項式（ｐｏｌｙｎｏｍｉａｌ）補間、立方スプライン（ｃｕｂｉｃ  ｓｐｌｉｎｅ）など、幾つかの補間機能を備えている。それぞれの補間機能により、分散的に編集された個々のポーズを、単一の連続したモーションへと滑らかに接続することができる。
【０１１９】
ポーズは、実ロボットを構成するすべての関節で構成されるが、モーション・トラック上でイネーブルされた関節角度のみが、実際のモーションに影響する。
【０１２０】
Ｄ−３．関節角のリミットと関節角速度リミット
タイムライン上で生成される複雑な関節角の軌跡を実現しようとする際、実ロボットにおける関節角のリミットや関節角速度のリミットを越えてしまうこともある。モーションのデザイン上、このようなリミットを違反しないように検出する手段は重要である。
【０１２１】
本実施形態に係るモーション・エディタは、タイムラインに沿って、このようなリミットを違反したすべての時点を視覚的にフィードバックすることができる、関節角リミット並びに関節角速度リミットのチェック機能を備えている。すべての関節角についてのリミット値は、リミット設定ファイルに格納されている。
【０１２２】
Ｄ−４．モーションの混合
ある時刻におけるモーションから他の時刻におけるモーションまでが滑らかに組み合わされた一連のモーションを作成したいという場合がある。
【０１２３】
本実施形態に係るモーション・エディタは、この目的のため、さまざまなモーション混合（Ｂｌｅｎｄ）機能を備えている。線形混合機能は、混合比を線形的に増大または現象さながら、２つのモーションのオーバーラップを組み合わせるために適用される。境界において位置だけでなく速度や加速度が滑らかに接続するような混合機能も装備している。
【０１２４】
Ｄ−５．姿勢編集
本実施形態に係るモーション・エディタは、関節角度値をコピーするための２タイプの機能を備えている。１つはミラー・コピー機能であり、もう１つは対称コピーである。
【０１２５】
ミラー・コピーによれば、選択された関節において、それぞれ対称的な関節角度値のコピーを行なうことができる。例えば、右腕を選んだ場合、右腕の各関節の角度値は、左腕のそれぞれ対応する関節にコピーされる。
【０１２６】
また、対称コピーは、両方向においてコピーを行なうという以外は、同様の機能を提供する。例えば、左右の腕が選択された場合、各腕の関節角度値はスワップされる。
【０１２７】
Ｄ−６．関節編集（Ｊｏｉｎｔ  Ｅｄｉｔｏｒ）
関節編集ウィンドウ内では、指やこれらの関節角度値を含んだほぼすべての関節が表示される（図８を参照のこと）。関節角度値を編集する方法は２種類ある。１つは、関節角度値を直接入力する方法であり、もう１つは、ポップアップ・スライダを利用して入力する方法である。後者の場合、複数のスライダを同時に表示することにより、ポーズ作成を簡素化することができる。関節編集ウィンドウに、角度リミッタ違反を表示することもできる。
【０１２８】
Ｄ−７．直接編集（Ｄｉｒｅｃｔ  Ｅｄｉｔｉｎｇ）
モーション・エディタのポーズ編集モードでは、図５に示したような３Ｄビューア上で操作して、関節角やロボットの姿勢の修正を直接的に行なうことができる。ある関節を選択したとき、その関節についての自由度がグラフィック・リング状のハンドルとともに表示される（図１３を参照のこと）。このリング・ハンドル上でマウスのクリックとマウスのドラッグを行なうだけで、ポーズ編集を行なうことができる。
【０１２９】
また、ＩＫ（逆キネマティクス）編集モードでは、３Ｄビューア・ウィンドウ内で、画面上でシミュレートされたロボットの肢や連鎖の終点位置や方向を操作することができる（図１４を参照のこと）。逆キネマティクス並びにポーズ編集モードを用いたこれらの操作手順によって得られたポーズは、タイムライン（図１２を参照のこと）上で表示される。
【０１３０】
Ｄ−８．３Ｄビューアの特徴
３Ｄビューア画面上では、直接入力に加え、モーションをプレイバックさせて観察することができる。すなわち、タイムライン・ウィンドウ上で、プレイバックの始点と終点を設定し、プレイバック速度を調整する。
【０１３１】
また、３Ｄビューアには、カメラ・モード・ボタンが配設されている。幾つかのカメラ・ビューを、そのときのカメラの配置、注視点、視野などとともに保存することができる。例えば、注視点がロボットの右手に設定されている場合、モーションを再生すると、右手が常に３Ｄビューア画面の中心に設定される。このような機能によれば、作成または編集したモーションをより精緻に観察することができる。
【０１３２】
編集されたポーズやモーションは、一種の資産として、ポーズ・データ・ファイルやモーション・データ・ファイルとして保存され、ライブラリ化され、複数のプロジェクトにまたがって効率的に再利用することができる。
【０１３３】
Ｅ．脚軌跡エディタ（Ｆｏｏｔ  Ｔｒａｊｅｃｔｏｒｙ  Ｅｄｉｔｏｒ）
Ｅ−１．歩行パターン・ジェネレータ及びモーション・スタビライザ
脚軌跡エディタの特徴の１つとして、実ロボット上に搭載されているものと同じ歩行パターン・ジェネレータと実時間モーション・スタビライザを装備している、という点を挙げることができる。
【０１３４】
歩行パターン・ジェネレータ（Ｇａｉｔ  Ｐａｔｔｅｒｎ  Ｇｅｎｅｒａｔｏｒ）は、歩行コマンド及び歩行パラメータのシーケンスから、左右両脚の足の位置と向きを表した一連の軌跡を作成する。軌跡は、当該歩行期間中の両脚の歩（ｓｔｅｐ：足跡に相当）の軌跡として表される。ここで言う歩行パラメータには、歩幅（ｓｔｅｐ  ｌｅｎｇｔｈ）や、歩行周期（ｓｔｅｐ  ｃｙｃｌｅ）、あるいはその他の幾つかのパラメータが含まれる（後述）。
【０１３５】
実時間モーション・スタビライザ（Ｒｅａｌ−ｔｉｍｅ  Ｍｏｔｉｏｎ  Ｓｔａｂｉｌｉｚｅｒ）は、歩行パターンと、上体における骨盤の移動と、関節の移動を、制御サイクル毎に受信して、ＺＭＰ安定度判別規範に基づいて、安定した２足歩行を実現するような対応する全身のモーションを計算する。
【０１３６】
脚軌跡エディタのこのような機能によって、実ロボット上で試験する前に、モーション編集システム上で、実ロボット上で実演されるものと同じモーションを観察し、そのモーションの実行可能性（ｆｅａｓｉｂｉｌｉｔｙ）を検証することができる。
【０１３７】
モーション編集システムは、モーション・データが指定されたとき、制御システムに対し、歩行コマンドのシーケンスと、骨盤のキーフレームと、上体のモーションを転送するだけでよい。何故ならば、制御システム自身で全身のモーションの詳細を決定することができるからである。このような制御システムとモーション編集システム間の協調的な設計方針により、ロボットへロードする際に転送するためのモーション・データのサイズを削減することができる。
【０１３８】
Ｅ−２．歩行パターンの設計
歩（ｓｔｅｐ）毎に歩行パラメータを設定することにより、歩行パターンをデザインすることができる。例えば、歩行（ｗａｌｋｉｇ）やダンスなどのさまざまな歩は、適当な歩行パラメータで構成される。
【０１３９】
本実施形態に係る歩行パターン・ジェネレータによって取り扱うことができる歩行パラメータを以下に例示しておく。
【０１４０】
（１）歩行周期ω［ｓｅｃ／ｓｔｅｐ］：一歩の時間
（２）両脚支持割合ｄ［％］：一歩の中に占める両脚支持の割合
【０１４１】
図１５には、両脚支持割合を変化させたときにおける片脚の軌跡の相違を示している。
【０１４２】
（３）前後歩幅ｘ［ｍ］：Ｘ軸方向の歩幅
（４）左右歩幅ｙ［ｍ］：Ｙ軸方向の歩幅
（５）旋回角θ［ｄｅｇ］
【０１４３】
ここで、１歩とは、一方の脚の足底が着地してから他方の脚の足底が着地するまでの動作を指す。また、歩幅は、一歩で移動した距離に相当する。前後歩幅をｘ、左右歩幅をｙ（図１６を参照のこと）、旋回角をθとおくと、例えば右足を一歩移動させたときは図１７に示す通りとなる。
【０１４４】
（６）着床高さｌ［ｍ］：遊脚の立脚位置から着床位置までの高さ（物体の上に足を置くなど）
（７）脚上げ高さｈ［ｍ］：着床位置から脚を上げる高さ
【０１４５】
図１８には、１歩を行なう際の着床高さｌと脚上げ高さｈを示している。
【０１４６】
（８）遊脚指定［Ｒｉｇｈｔ  ｆｏｏｔ  ｏｒ  Ｌｅｆｔ  ｆｏｏｔ］：遊脚となる脚の指定
（９）支持脚維持指定［Ｔｒｕｅ  ｏｒ  Ｆａｌｓｅ］
（１０）ＺＭＰ軌道通過点［ＺＭＰ1（ｔ1，ｘ1，ｙ1，ｚ1），ＺＭＰ2（ｔ2，ｘ2，ｙ2，ｚ2），…，ＺＭＰn（ｔn，ｘn，ｙn，ｚn）］：離床片着床までの時間内の任意の時間ｔ1，ｔ2，…，ｔnにおける、支持脚足底座標系を基準とするＺＭＰ軌道の通過する１以上の点
（１１）ＺＭＰ軌道通過点指定［Ｔｒｕｅ  ｏｒ  Ｆａｌｓｅ］：ＺＭＰ起動通過点で示される点の通過指定
（１２）停止指定［Ｔｒｕｅ  ｏｒ  Ｆａｌｓｅ］：Ｔｒｕｅの場合、ＺＭＰ軌道を両足底の中間に収束させる。
（１３）方向θ'： あるグローバルな位置を基準にした向き（図１９を参照のこと）
（１４）方向指定［Ｔｒｕｅ  ｏｒ  Ｆａｌｓｅ］
【０１４７】
歩行パターンを作成し編集する作業には、歩毎に適当な歩行パラメータを入力し、これらを時間軸上に配置することが含まれる。本実施形態に係る歩行パターン・ジェネレータによれば、モーションのデザイナーは、２足歩行における脚の関節の詳細な軌跡を指定する必要はない。何故ならば、ソフトウェアによる処理を実行により、これらのデータは歩行パラメータから導き出されるからである。
【０１４８】
図２０並びに図２１には、歩行パターン・ジェネレータによる歩行パターンの編集作業画面の構成例を示している。同図に示すように、デザインされた歩行パラメータは、タイムライン・ウィンドウ内で表示され、ロボットの下半身のモーションは３Ｄビューア内で表示される。以下、この編集画面の構成について説明する。
【０１４９】
（１）標準ツールバー：
図２０中において参照番号１で示される領域には、編集データのＳａｖｅやＬｏａｄ、編集のＵｎｄｏやＲｅｄｏなどの指示を行なうツール・ボタンが配列されている。
【０１５０】
（２）再生ツールバー：
図２０中において参照番号２で示される領域には、編集したデータを時間軸に沿って再生、停止、スロー再生、コマ送り、指定した範囲の再生などを支持するためのツール・ボタンが配列されている。
【０１５１】
（３）３Ｄビューア：
図２０中において参照番号３で示される領域は、編集したモーション・データを表示し確認するためのウィンドウである。現在指定されている時刻におけるロボットの状態が３Ｄキャラクタとして表示される。この３Ｄ画面では、表示位置、回転、拡大を自由に指定し、ロボット任意の角度や大きさで表示することができる。また、再生などで時刻が変化すると、刻々と３Ｄ表示が更新され、ロボットのモーションを確認することができる。
【０１５２】
（４）ロボットの状態表示ウィンドウ：
図２０中において参照番号４で示される領域は、現時刻の３Ｄ表示ウィンドウで表示されているロボットの状態を表示するウィンドウである。図示の例では、機体の各関節角、角速度、角加速度、世界座標系から見たロボットの位置姿勢、足底の位置姿勢などが表示される。また、再生などで時刻が変化すると、これらの値の表示も時々刻々と更新される。
【０１５３】
（５）タイムライン・ウィンドウ：
図２０中において参照番号５で示される領域は、歩の編集内容を時系列に表示するウィンドウである。ウィンドウ内で左から右に向かって時刻スケジュールが進行する。時刻スケジュールのスケールは自由に変更することができる。このタイムライン・ウィンドウ内では、上下２本の帯状のタイムラインが表示されているが、上側のタイムラインで左足の歩を表示し、下側のタイムラインで右足の歩を表示する。すなわち、各タイムライン上の該当する時刻に１歩に相当する四角いブロックを配置することで、歩を表現している。例えば、１０歩の編集データがあった場合には、１０個のブロックがタイムライン上に配置される。
【０１５４】
図２２には、タイムライン・ウィンドウを拡大して示している。同図に示す例では、最初の５秒で５歩だけ歩き、５秒から１０秒の間静止し、さらに１０秒から５秒間で５歩だけ歩くという編集内容が表示されている。ここで、５秒から１０秒の間は、歩を生成せず静止状態を維持するという意味を持つ。歩を生成しない区間を明示的に表示するために、タイムライン編集では、歩の他にポーズ（静止）という概念を導入している。歩行パターンの編集作業画面上では、歩は図２３に示すアイコンで表示され、静止は図２４に示すアイコンで表示される。
【０１５５】
図２１には、歩を編集するために必要なコマンドやボタン、ウィンドウを追加したときにおける歩行パターンの編集作業画面の構成例を示している。
【０１５６】
挿入ボタンは、現在時刻（タイムライン上で現在注目している時点）で歩又は静止を挿入したいことを指定するためのボタンであり、これを利用した挿入操作を行なうことにより、タイムライン上では現在時刻に歩又は静止が挿入された表示に更新される。また、追加ボタンは、タイムラインの最後尾に歩又は静止を追加したいことを指定するためのボタンであり、これを利用した追加操作により、タイムライン上では最後尾に歩又は静止が追加された表示に更新される。
【０１５７】
（６）歩生成ウィンドウ：
図２１中において参照番号６で示される領域は、歩を生成するためのウィンドウであり、歩行パラメータの入力フィールドが配列されている。このウィンドウを介して、歩を生成するためのパラメータを自由に設定した後、同ウィンドウ下部の挿入ボタン又は追加ボタン（前述）を押下することで、歩が追加される。追加された歩は、即座にタイムライン・ウィンドウ及び３Ｄ表示ウィンドウへ反映される。
【０１５８】
（７）パラメータ・ウィンドウ：
図２１中において参照番号７で示される領域は、タイムライン上で選択された歩のパラメータが表示されるパラメータ・ウィンドウである。ここでパラメータを変更すると、即座にタイムライン・ウィンドウ及び３Ｄ表示ウィンドウへ反映される。また、パラメータ・ウィンドウでは、歩の時刻を編集することができる。すなわち、移動先又はコピー先の時刻を入力することで、歩の時刻スケジュールに対して移動やコピーを行なうことができる。
【０１５９】
なお、脚軌跡エディタでは、大まかに歩行パターンを作成するために、「パス・プランニング」という機能も用意されている。この場合、歩行パターンの最初の歩の位置と方向、一部の経由位置と方向、最後の位置と方向、及び次経由または最後の位置までの歩数と時間を指定することにより、最短距離での歩行プランニングを行なうことができる。経由位置と方向のポイントは複数設定することができる。また、経由位置と方向は省略することができる。図２５には、１点の経由ポイントを設定した場合のプランニング結果を示している。
【０１６０】
Ｅ−３．歩の変更に伴う自動修正
脚軌跡エディタでは、図２０及び図２１に示したような編集画面を介して、歩毎の歩行パラメータを設定することにより歩行パターンを作成・編集することができるとともに、さらにパラメータ・ウィンドウを介して編集済みの歩行パターン中において特定の歩についての歩行パラメータを修正することが許容される。さらに、歩の修正に伴い、歩行パターン全体を自動修正する機能を備えている。
【０１６１】
歩行パターンの自動修正を実行する際、例えば、自動修正時において、変更が好ましくないようなパラメータを拘束条件としてユーザが指定することができる。また、同じ拘束条件を持つ連続した歩の集まりを「拘束グループ」として定義することができる。拘束グループ内では、修正可能な歩行パラメータが優先順位付けされており、それに基づいて自動修正処理が行なわれる。主な拘束条件を以下に例示しておく。
【０１６２】
（１）歩行周期拘束
（２）両脚支持割合拘束
（３）歩幅拘束
（４）着床高さ拘束
（５）脚上げ高さ拘束
（６）旋回角拘束
（７）遊脚拘束
（８）支持脚維持拘束
（９）ＺＭＰ通過点拘束
（１０）方向拘束（拘束指定持に、現方向で拘束又は設定されている方向で拘束するかを選択する）
（１１）絶対位置拘束
（１２）絶対時間拘束
（１３）相対位置拘束
（１４）相対時間拘束
【０１６３】
上記の拘束条件のうち、相対位置拘束と相対時間拘束については、拘束グループを指定することが許容されている。また、拘束グループの編集制限として、拘束条件を持つ歩又は拘束グループ型の拘束グループにコピー（挿入）された場合には、挿入先の拘束グループの属性となる。
【０１６４】
図２６には、編集された歩行パターンを歩の軌跡で示すとともに、歩行パターンに対して拘束条件を設定しているタイムラインのイメージを併せて示している。
【０１６５】
また、歩行パターンの自動修正を実行する際、上記の拘束条件とともに、実ロボットの物理的・機械的仕様上好ましくない又は不可能とされているような制限事項も考慮される。ここで言う制限事項には、例えば、関節角度リミットや、角速度リミット、角加速度リミットなどが挙げられる。
【０１６６】
図２７には、拘束条件を設定し、拘束条件のある１以上の歩のグループに対して歩を挿入、削除又は移動を行なった後に実行される、歩行パターンの自動修正処理手順をフローチャートの形式で示している。
【０１６７】
歩の挿入、削除、移動、又は設定変更が行なわれると（ステップＳ１１）、歩が挿入又は削除された拘束グループとその前後の拘束グループ（但し、存在する場合）の関係に基づいて、影響を受けるすべての歩を自動修正する（ステップＳ１２）。
【０１６８】
次いで、すべての歩が拘束条件と制限事項を満たすかどうかをチェックする（ステップＳ１３）。ここで、すべての歩が拘束条件と制限事項を満たす場合には、続いて、自動修正を行なうかどうかをチェックする（ステップＳ２０）。自動修正を行なわない場合には、編集を元に戻す（ステップＳ１８）。そして、ユーザが編集を終了するかどうかを訊ね（ステップＳ２１）、編集終了を指定した場合には本処理ルーチン全体を終了し、終了しない場合には、ステップＳ１１に戻り、歩がさらに挿入、削除、移動、又は設定変更されたときの処理を続けて行なう。
【０１６９】
一方、拘束条件又は制限事項を満たさない歩がある場合には、拘束条件と制限事項を満足させる案（歩の追加又は削除）を生成してこれをユーザに提示する（ステップＳ１４）。
【０１７０】
ユーザが提示案を選択した場合には（ステップＳ１５）、提示案の選択及び修正の実行を行なう（ステップＳ１９）。そして、ユーザが編集を終了するかどうかを訊ね（ステップＳ２１）、編集終了を指定した場合には本処理ルーチン全体を終了し、終了しない場合には、ステップＳ１１に戻り、歩がさらに挿入、削除、移動、又は設定変更されたときの処理を続けて行なう。
【０１７１】
ユーザが提示案を選択しない場合には（ステップＳ１５）、開放させる拘束条件の案をユーザに提示する（ステップＳ１６）。そして、この提示案をユーザが選択した場合には（ステップＳ１７）、提示案の選択及び修正の実行を行なう（ステップＳ１９）。そして、ユーザが編集を終了するかどうかを訊ね（ステップＳ２１）、編集終了を指定した場合には本処理ルーチン全体を終了し、終了しない場合には、ステップＳ１１に戻り、歩がさらに挿入、削除、移動、又は設定変更されたときの処理を続けて行なう。
【０１７２】
また、ユーザが提示案を選択しない場合には（ステップＳ１７）、編集を元に戻す（ステップＳ１８）。そして、ユーザが編集を終了するかどうかを訊ね（ステップＳ２１）、編集終了を指定した場合には本処理ルーチン全体を終了し、終了しない場合には、ステップＳ１１に戻り、歩がさらに挿入、削除、移動、又は設定変更されたときの処理を続けて行なう。
【０１７３】
上述した歩の自動修正処理手順では、原則的に、拘束グループ外の歩に影響が出ないように、できるだけ拘束グループ内で完結して処理できるように、拘束グループ内の歩に関して設定されているパラメータを、優先順位に従って処理を行なうようにする。
【０１７４】
また、拘束グループ外の歩に影響が出る場合は、拘束グループ外の歩に設定されているパラメータの優先順位（同位が可能）に従って、出来るだけ修正量が少なくなるように処理を行なう。
【０１７５】
また、拘束条件の無い歩は、他の歩が修正されたことによって、受動的にパラメータを修正されることがある。拘束グループの前後の拘束条件の無い歩がどちらも同条件である場合は、後の歩が優先的に修正される。但し、内部設定によりこの限りではない。
【０１７６】
そして、自動修正を行なうときには、その旨をＵＩ経由でユーザに判断と確認を要求するようにする。
【０１７７】
図２８には、１つ以上の歩のグループ内で歩幅が拘束され、他の拘束条件が存在しない場合に、歩の挿入を行なったときの自動修正した結果の例を示している。
【０１７８】
歩幅拘束では、１つ以上の歩のグループ内で歩幅が拘束される。図示のように他の拘束条件の存在しないときに歩の挿入や削除を行なった場合、当該グループの前後に他の拘束条件が無ければ、単に一歩が挿入（削除）される。そして、挿入された時刻以降にある歩は、相対的に変化する。勿論、挿入された時刻以降ではなく、それ以前の歩を相対的に変化させるようにしてもよい。
【０１７９】
また、歩に対しては、複数の拘束条件の論理積をとることが可能である。例えば、開始の歩については、絶対位置拘束、方向拘束、絶対時間拘束を設定することで、開始の位置と時間と向きを拘束することができる。
【０１８０】
また、図２９には、１つ以上の歩のグループ内で歩幅が拘束され、他の拘束条件が存在する場合に、歩の挿入を行なったときの自動修正した結果の例を示している。この場合、図示の通り、歩が挿入され、自動的に歩の順序と拘束条件の無い歩で歩行パラメータの優先順位に従って自動修正が行なわれる。
【０１８１】
また、図３０には、１つ以上の歩のグループ内で歩行周期が拘束され、他の拘束条件の存在しない場合に歩の挿入や削除を行なったときの自動修正した結果の例を示している。
【０１８２】
この場合、グループの前後に他の拘束条件が無ければ、単に一歩が挿入（又は削除）されるが、挿入された時刻以降にある歩は相対的に変化する。勿論、挿入された時刻以降ではなく、それ以前の歩を相対的に変化させるようにしてもよい。
【０１８３】
図示の例では、挿入した時刻以後の歩が優先的に修正されることから、それ以前の歩は、拘束条件が存在しなくても、影響を受けない。これに対し、挿入した時刻以後の歩は、歩が挿入されたことによって、自動的に歩の順序とパラメータが修正される。
【０１８４】
遊脚拘束条件が無い場合、挿入位置以降の歩の順序を入れ替えるかどうかはユーザに問うようにする。入れ替えない場合は、２歩挿入するかどうか改めて問う。
【０１８５】
また、図３１には、一連の歩行パターンにおいて歩を削除した場合の自動修正する様子を示している。元の歩行パターンは実線で示されている。但し、歩行では交互に脚を出すという制約を守る必要があることを前提とする。
【０１８６】
破線で示す一歩を抜くと、旋回開始位置を変えることが許容される場合には、歩幅優先により、ペアとなる２歩を抜くようにユーザに促し、この結果、一点鎖線で示す歩行パターンに修正される。
【０１８７】
これに対し、旋回開始位置を変えないという拘束条件下では、旋回開始位置が優先され、ペアとなる２歩を抜くとともに、削除した歩の前の歩幅を自動調整する。この結果、二点鎖線で示す歩行パターンに修正される。
【０１８８】
Ｅ−４．骨盤の移動のデザイン
左右それぞれの脚の関節角は、骨盤と足の位置と姿勢に基づいて、逆キネマティクスを用いて計算される。歩行パターンで決定される時系列に従って骨盤の位置と姿勢の軌跡を編集することにより、骨盤の移動をデザインすることができる。脚の関節角の軌跡は、歩行パターンと骨盤の移動に基づいて計算される。骨盤の移動は、制御点と上述した補間機能によって編集される。脚軌跡に基づいて決定されるデフォルトの骨盤の軌跡からわずかに変更するだけで、骨盤の移動を編集することができる。図２０や図２１に示したような脚軌跡エディタの３Ｄビューア画面上で、骨盤の移動を観察することができる。
【０１８９】
Ｅ−５．上体との統合
上体における関節角の軌跡は、モーション・エディタから脚軌跡エディタへインポートされ、下半身のモーション・データと統合される。３Ｄビューア画面上では、ロボットの機体全体についてのモーション・データが表示される。脚軌跡エディタでは、上体のモーションと調整された下半身のモーション・データを編集することができる。さらに、実ロボット上で利用されている歩行同期型腕モーション・ジェネレータ（Ｇａｉｔ−Ｓｙｎｃｈｒｏｎｏｕｓ  Ａｒｍ  Ｍｏｔｉｏｎ  Ｇｅｎｅｒａｔｏｒ）のソフトウェア・モジュールを必要に応じて脚軌跡エディタで利用することができ、歩行パターンに同期した状態の自然なモーションを生成することができる。
【０１９０】
Ｅ−６．実行可能性の検証
脚軌跡エディタは、実ロボットへ適用する前に、作成・編集したモーション・データの実行可能性を効率的に検証することができる。
【０１９１】
実行可能性の検証を行なう前に、脚軌跡エディタは、モーション・スタビライザと歩行パターン・ジェネレータを上述のようなプロセスで作成したモーション・データに適用して、機体全体として安定化されたモーションを生成する。このような操作は、すべてのセンサ値が無視されるという点を除いては、実ロボット上で行なわれるのと全く同様である。
【０１９２】
タイムライン上のモーション・データは、開始点（ｔ＝０）から終了点（ｔ＝Ｔ）に至るまで、制御周期ｄｔ毎に反復して取り出され、運動エンジン（Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）に投入される。
【０１９３】
図３２には、運動エンジン（Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）の機能構成を模式的に示している。同図に示すように、運動エンジンは、上述の実時間モーション・スタビライザと、歩行パターン・ジェネレータを備えている。歩行パターン・ジェネレータは、歩行パラメータを入力して、歩行パターンを構成するそれぞれの歩における足の位置と方向を出力する。また、実時間モーション・スタビライザは、歩行パターンと上体の関節角と骨盤の位置及び姿勢をシステム外部から入力するとともに、歩行パターン・ジェネレータから歩行パターンを構成するそれぞれの歩における足の位置と方向を内部パラメータとして取得し、全身協調運動による安定化処理を施して、全身の関節角を出力する。そして、出力される全身の関節角は、タイムライン上の対応するタイムスロットに挿入される。
【０１９４】
図３３の左右には、観察前の実ロボットの歩行モーションと、歩毎に安定化処理が施された後の歩行モーションそれぞれについての３Ｄビューア画面を示している。
【０１９５】
脚軌跡エディタにより安定化された処理結果は、センサ入力がない実ロボットのそれと完全に同一であるので、これを用いてモーションの実行可能性を検証するのは理に適うことである。脚軌跡エディタは、各関節における可動角や角速度の制限の下で、障害を検証するために、安定化処理結果を利用する。限界値は、適応制御によって得られる関節角のオフセットの効果を考慮して、幾分の許容値を持っている。関節の軌道がこれら限界値を超えたとき、詳細な情報が編集ウィンドウ上に表示される。
【０１９６】
Ｅ−７．エクスポートされたファイル
脚軌跡エディタは、編集後のモーション・データをモーション・データ・ファイルとして出力する機能を持ち、例えばメモリ・スティックのような可搬型の記憶媒体を解してこのようなデータ・ファイルを実ロボットへ移動することができる。機体全体の関節角の軌跡に関する出力データは、制御点と、制御点間の補間式に関する情報のみで構成される。このようなデータ・フォーマットによれば、機体全体の関節角データを時系列的に配置して構成されるデータ・フォーマットに比べ、データ・サイズの著しい削減を実現することができる。
【０１９７】
Ｆ．アプリケーション開発
本発明者らは、ダンス・パフォーマンス、アカペラ・コーラス・パフォーマンス、あるいは感情表現を行なうようなパフォーマンスといったさまざまなモーション・パフォーマンスの制作を試みている。この項では、本発明に係るモーション編集システムの適用例の紹介として、ハイテンポなダンス・パフォーマンスの制作過程について説明する。
【０１９８】
本発明に係るモーション編集システムは、マルチロボット編集環境を提供し（図３５を参照のこと）、同時に複数台のロボットのモーションを作成・編集することができる。ここで作成されたハイテンポ・ダンス・パフォーマンスは、４台の実ロボットによって実演されるダンス・モーションを含むものとし、実ロボット上では、約２分間の音楽に同期してフォーメーションを変更する。
【０１９９】
まず、音楽を当該システムにロードする。そして、音楽を聴きながら、モーション・エディタを用いて上体のモーションを作成する。次いで、脚軌跡エディタを用いて、ダンス・ステップを作成する。
【０２００】
この過程で、プロジェクト・マネージャは、モーション・プロジェクトを管理し、上体のデータと下半身のモーション・データを交換することにより、それぞれの編集の同期をとる。したがって、機体全体を考慮しながら編集作業を行なうことができる。
【０２０１】
まず、１台目の実ロボットのモーションを作成する。続いて、残り３台の実ロボットのモーションを作成する。残り３台の実ロボットのモーションを作成する際、１台目の実ロボットのモーション・データを再利用することにより、作業を著しく簡素化することができる。
【０２０２】
最終的に、フォーメーションをチェックするために、４台の実ロボットのモーション・データを脚軌跡エディタにロードしてこれらを観察し、各々のロボットの振る舞いが期待された通りかどうかを検査する。
【０２０３】
図３４には、脚軌跡エディタの編集ウィンドウ上で、複数のロボットの機体動作を同時に編集している様子を示している。図示のステップ編集用アプリケーションでは複数のロボットを同時に編集することが可能である。編集ウィンドウ内では、現在、編集対象になっているロボットはハイライト表示され（図示の例では、対象とするロボットのコーナーを囲うインジケータが表示される）、３Ｄ画面上で視覚的に確認することができる。また、３Ｄ表示ウィンドウ右側のロボットの状態表示ウィンドウや下方のタイムラインは、編集対象になっているロボットに合わせてその表示内容が切り替わる。また、図３６には、複数台のロボットを用いた実際のモーション・パフォーマンスの様子を示している。
【産業上の利用可能性】
【０２０４】
本明細書では、特定の実施形態を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施形態の修正や代用を成し得ることは自明である。
【０２０５】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置あるいはその他一般的な移動体装置であるならば、例えば玩具などのような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０２０６】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２０７】
【図１】図１は、本発明の実施に供される脚式移動ロボットが直立している様子を前方から眺望した様子を示した図である。
【図２】図２は、本発明の実施に供される脚式移動ロボットが直立している様子を後方から眺望した様子を示した図である。
【図３】図３は、脚式移動ロボットが具備する関節自由度構成を模式的に示した図である。
【図４】図４は、脚式移動ロボット１００の制御システム構成を模式的に示した図である。
【図５】図５は、機体の３Ｄアニメーション・キャラクタを介してポーズを指示するためのユーザ・インターフェース画面の構成例を示した図である。
【図６】図６は、ＩＫ関節角グループ化ウィンドウの構成例を示した図である。
【図７】図７は、左右両足を変更部位として指定した後、３Ｄキャラクタを用いてポーズを変更する様子を描いた図である。
【図８】図８は、ロボットのポーズを規定する各関節軸の変位角を指定するための画面の構成例を示した図である。
【図９】図９は、本発明の一実施形態に係るモーション編集システムの機能構成を模式的に示した図である。
【図１０】図１０は、モーション編集システムにより実ロボットのモーションを生成するための処理手順を示したフローチャートである。
【図１１】図１１は、あるトラック上に複数のポーズが時系列的に配置されている様子を示した図である。
【図１２】図１２は、ＩＫ関節角グループ毎にトラックが配設されている様子を示した図である。
【図１３】図１３は、モーション・エディタのポーズ編集モードの画面を示した図である。
【図１４】図１４は、モーション・エディタのＩＫ編集モードの画面を示した図である。
【図１５】図１５は、両脚支持割合を変化させたときの片脚の軌跡の相違を示した図である。
【図１６】図１６は、前後歩幅と左右歩幅を説明するための図である。
【図１７】図１７は、前後歩幅ｘ、左右歩幅ｙ、旋回角θの関係を説明するための図である。
【図１８】図１８は、着床高さｌと脚上げ高さｈを説明するための図である。
【図１９】図１９は、あるグローバルな位置を基準にした足底の向きθ'を示した図である。
【図２０】図２０は、歩行パターン・ジェネレータによる歩行パターンの編集作業画面の構成例を示した図である。
【図２１】図２１は、歩行パターン・ジェネレータによる歩行パターンの編集作業画面の構成例を示した図である。
【図２２】図２２は、タイムライン・ウィンドウを拡大して示した図である。
【図２３】図２３は、歩を表すアイコンを示した図である。
【図２４】図２４は、静止を表すアイコンを示した図である。
【図２５】図２５は、１点の経由ポイントを設定した場合のパス・プランニング結果を示した図である。
【図２６】図２６は、編集された歩行パターンを歩の軌跡で示すとともに、歩行パターンに対して拘束条件を設定しているタイムラインのイメージを併せて示した図である。
【図２７】図２７は、拘束条件を設定し、拘束条件のある１以上の歩のグループに対して歩を挿入、削除又は移動を行なった後に実行される、歩行パターンの自動修正処理手順を示したフローチャートである。
【図２８】図２８は、１つ以上の歩のグループ内で歩幅が拘束され、他の拘束条件が存在しない場合に、歩の挿入を行なったときの自動修正した結果の例を示した図である。
【図２９】図２９は、１つ以上の歩のグループ内で歩幅が拘束され、他の拘束条件が存在する場合に、歩の挿入を行なったときの自動修正した結果の例を示した図である。
【図３０】図３０は、１つ以上の歩のグループ内で歩行周期が拘束され、他の拘束条件の存在しない場合に歩の挿入や削除を行なったときの自動修正した結果の例を示した図である。
【図３１】一連の歩行パターンにおいて歩を削除した場合の自動修正する様子を示した図である。
【図３２】図３２は、運動エンジン（Ｌｏｃｏｍｏｔｉｏｎ  Ｅｎｇｉｎｅ）の機能構成を模式的に示した図である。
【図３３】図３３は、観察前の実ロボットの歩行モーションと、歩毎に安定化処理が施された後の歩行モーションそれぞれについての３Ｄビューア画面を示した図である。
【図３４】図３４は、脚軌跡エディタの編集ウィンドウ上で、複数のロボットの機体動作を同時に編集している様子を示した図である。
【図３５】図３５は、マルチロボット編集環境の構成を模式的に示した図である。
【図３６】図３６は、複数台のロボットを用いた実際のモーション・パフォーマンスの様子を示した図である。
【符号の説明】
【０２０８】
１…首関節ヨー軸
２Ａ…第１の首関節ピッチ軸
２Ｂ…第２の首関節（頭）ピッチ軸
３…首関節ロール軸
４…肩関節ピッチ軸
５…肩関節ロール軸
６…上腕ヨー軸
７…肘関節ピッチ軸
８…手首関節ヨー軸
９…体幹ピッチ軸
１０…体幹ロール軸
１１…股関節ヨー軸
１２…股関節ピッチ軸
１３…股関節ロール軸
１４…膝関節ピッチ軸
１５…足首関節ピッチ軸
１６…足首関節ロール軸
３０…頭部ユニット，４０…体幹部ユニット
５０…腕部ユニット，５１…上腕ユニット
５２…肘関節ユニット，５３…前腕ユニット
６０…脚部ユニット，６１…大腿部ユニット
６２…膝関節ユニット，６３…脛部ユニット
８０…制御ユニット，８１…主制御部
８２…周辺回路
９１，９２…接地確認センサ
９３，９４…加速度センサ
９５…姿勢センサ
９６…加速度センサ
【図１】
2005125460.tif 000003
【図２】
2005125460.tif 000004
【図３】
2005125460.tif 000005
【図４】
2005125460.tif 000006
【図５】
2005125460.tif 000007
【図６】
2005125460.tif 000008
【図７】
2005125460.tif 000009
【図８】
2005125460.tif 000010
【図９】
2005125460.tif 000011
【図１０】
2005125460.tif 000012
【図１１】
2005125460.tif 000013
【図１２】
2005125460.tif 000014
【図１３】
2005125460.tif 000015
【図１４】
2005125460.tif 000016
【図１５】
2005125460.tif 000017
【図１６】
2005125460.tif 000018
【図１７】
2005125460.tif 000019
【図１８】
2005125460.tif 000020
【図１９】
2005125460.tif 000021
【図２０】
2005125460.tif 000022
【図２１】
2005125460.tif 000023
【図２２】
2005125460.tif 000024
【図２３】
2005125460.tif 000025
【図２４】
2005125460.tif 000026
【図２５】
2005125460.tif 000027
【図２６】
2005125460.tif 000028
【図２７】
2005125460.tif 000029
【図２８】
2005125460.tif 000030
【図２９】
2005125460.tif 000031
【図３０】
2005125460.tif 000032
【図３１】
2005125460.tif 000033
【図３２】
2005125460.tif 000034
【図３３】
2005125460.tif 000035
【図３４】
2005125460.tif 000036
【図３５】
2005125460.tif 000037
【図３６】
2005125460.tif 000038