(57)【要約】【課題】  複数台のロボットが協調的に動作し、全体としてある特定の目的を実現するマルチロボット・システムに関する。【解決手段】  マルチロボット・システムは、舞台上で活動する複数のロボットと、舞台上のロボットの動作を監視するモニタ・システムと、マルチロボットの運用を行なう統括コントローラで構成される。統括コントローラは、ロボットの状態と、モニタされた位置及び方向に基づいて、ロボットに対する動作指示や、ロボットに対する位置及び方向の補正指示、異常発生（若しくは予測）時におけるロボットへの動作指示を、無線ＬＡＮ経由でリアルタイムに行なう。【選択図】  図１
2006000954.tif 000002
【特許請求の範囲】
【請求項１】
特定の動作フィールド上で動作する１以上のロボット装置の制御システムにおいて、
前記動作フィールド上の各ロボット装置の位置及び方向を監視する監視手段と、
各ロボット装置との通信手段を備え、前記監視手段による監視結果並びに各ロボット装置から取得されるロボット装置の状態情報に基づいて、各ロボット装置による同期協調的な動作を制御する統括制御手段と、
を具備することを特徴とするロボット装置の制御システム。
【請求項２】
前記監視手段は、前記動作フィールドを撮影する画像入力手段と、前記入力画像を処理して各ロボット装置の位置及び方向に関する情報を取得する画像処理手段を備える、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項３】
前記動作フィールド上の各ロボット装置の配役が決められ、
前記統括制御手段は、配役毎に決められているロボット装置の動作計画の集合をシナリオとして管理する、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項４】
配役毎のロボット装置の動作計画は、該当するロボット装置に対する１以上の指示動作を時間軸上に配置して構成され、
前記統括制御手段は、各配役の動作計画の実行を同じ時間軸上で管理する、
ことを特徴とする請求項３に記載のロボット装置の制御システム。
【請求項５】
前記統括制御手段は、２以上のシナリオを時間軸上に連結し、マルチロボットによる１つのパフォーマンスとして管理する、
ことを特徴とする請求項３に記載のロボット装置の制御システム。
【請求項６】
前記統括制御手段は、各シナリオにおいて異常事態の発生により続行が困難又は不可能となった場合に備えて、代替的に実行される予備シナリオを用意する、
ことを特徴とする請求項５に記載のロボット装置の制御システム。
【請求項７】
前記統括制御手段は、実行不能となった後続の１以上のシナリオをスキップし、元のシナリオの連結に復帰するために予備シナリオを利用する、
ことを特徴とする請求項６に記載のロボット装置の制御システム。
【請求項８】
前記統括制御手段は、パフォーマンスを完結できない異常事態が発生したときに、実行不能となった後続のすべてのシナリオに代えて、パフォーマンスを完結させるために予備シナリオを利用する、
ことを特徴とする請求項６に記載のロボット装置の制御システム。
【請求項９】
前記統括制御手段は、ある１つのシナリオにおいて異常事態が発生した場面に応じた予備シナリオを利用する、
ことを特徴とする請求項６に記載のロボット装置の制御システム。
【請求項１０】
前記統括制御手段は、前記動作フィールド上の各ロボット装置との時刻同期を獲得する同期獲得手段を備え、各配役のロボット装置がそれぞれの動作計画を該時刻に合わせて同期協調的に実行するように制御する、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項１１】
前記統括制御手段は、前記監視手段により得られた各ロボット装置の位置及び方向に関する情報を基に、前記動作フィールド上での各ロボット装置の位置及び方向を画面表示する現在状態表示手段を備える、
ことを特徴とする請求項２に記載のロボット装置の制御システム。
【請求項１２】
前記現在状態表示手段は、各ロボット装置の動作計画上の目標位置及び方向と前記監視手段により得られた現実の位置及び方向の偏差を提示する、
ことを特徴とする請求項１１に記載のロボット装置の制御システム。
【請求項１３】
前記統括制御手段は、前記動作フィールド上の各ロボット装置の転倒領域を算出する転倒領域算出手段と、各ロボット装置の最大可動範囲を算出する最大可動範囲算出手段と、該算出された各ロボット装置の転倒領域又は最大可動範囲の重なりをロボット装置間の干渉領域として画面表示する干渉領域表示手段とを備える、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項１４】
各ロボット装置は１以上の転倒動作を備え、
前記統括制御手段は、前記干渉領域を転倒領域に持ち若しくは前記干渉領域を転倒方向とする転倒動作の使用を禁止する、
ことを特徴とする請求項１３に記載のロボット装置の制御システム。
【請求項１５】
前記統括制御手段は、過去に行なったロボット装置の動作に基づいて当該ロボットの運動特性を算出し、将来行なう動作計画を実行したときの計画値との偏差を当該ロボット装置の運動特性に基づいて予測する偏差予測手段を備える、
ことを特徴とする請求項２に記載のロボット装置の制御システム。
【請求項１６】
前記偏差予測手段は、過去一定期間ｔs〜ｔm1にモーションを実行したときに生じた誤差を観測する手段と、過去一定期間ｔs〜ｔm1に実行したモーションを要素運動毎に分割し要素運動毎に生じる誤差を推定する手段と、以後ｔm2〜ｔeに至るまでの期間に実行するモーションを要素運動に分割し、これらの要素運動が持つ推定誤差を合計することにより、時刻ｔeにおける位置及び方向の目標値との偏差を推定する手段とを備える、
ことを特徴とする請求項１５に記載のロボット装置の制御システム。
【請求項１７】
前記統括制御手段は、前記予測された偏差を画面表示する偏差予測表示手段を備える、
ことを特徴とする請求項１５に記載のロボット装置の制御システム。
【請求項１８】
前記統括制御手段は、ロボット装置の前記動作フィールド上での軌道を表示する軌道表示手段を備える、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項１９】
前記軌道表示手段は、Ｚ軸を時間軸においた歩の軌道表示を行なう、
ことを特徴とする請求項１８に記載のロボット装置の制御システム。
【請求項２０】
前記統括制御手段は、各ロボット装置の動作計画上の目標位置及び方向と前記監視手段により得られた現実の位置及び方向の偏差を補正する位置方向補正手段を備える、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項２１】
前記位置方向補正手段は、動作計画を実行中のロボット装置の位置又は方向の誤差を当該動作計画内の既存の歩を用いて補正する補正計画手段を備える、
ことを特徴とする請求項２０に記載のロボット装置の制御システム。
【請求項２２】
前記位置方向補正手段は、ロボット装置が動作計画を実行していない場面を利用して、新たな１つ以上の歩を生成して位置方向の偏差を修正する移動計画手段を備える、
ことを特徴とする請求項２０に記載のロボット装置の制御システム。
【請求項２３】
前記統括制御手段は、複数のロボットが前記動作フィールドでシナリオを実行するマルチロボット環境下において、異常の程度に応じた異常状態を定義し、各異常状態に陥ったときに適当な修復処理を行なう異常処理手段を備える、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項２４】
前記異常処理手段は、１体のロボット装置だけで異常処理が完結する第１の異常状態において、当該ロボット装置についての異常処理を実行する、
ことを特徴とする請求項２３に記載のロボット装置の制御システム。
【請求項２５】
前記異常処理手段は、前記マルチロボット全体に対して異常処理が必要な第２の状態において、前記動作フィールド内で動作するロボット装置間で配役の交代、前記動作フィールド内又は外で待機する予備ロボットの前記動作フィールドへの投入、又は前記マルチロボットにおけるフォーメーションの修正を行なう、
ことを特徴とする請求項２３に記載のロボット装置の制御システム。
【請求項２６】
前記異常処理手段は、シナリオの一部が続行不可能となる第３の異常状態において、前記マルチロボットにおける全体フォーメーションの修正を行なう、
ことを特徴とする請求項２３に記載のロボット装置の制御システム。
【請求項２７】
前記異常処理手段は、シナリオ全体が続行不可能な第４の異常状態において、シナリオの続行を停止する、
ことを特徴とする請求項２３に記載のロボット装置の制御システム。
【請求項２８】
前記動作フィールド内又は外で待機する予備ロボットをさらに備え、
前記統括制御手段は、前記予備ロボットの前記動作フィールドへの投入を制御する、
ことを特徴とする請求項１に記載のロボット装置の制御システム。
【請求項２９】
特定の動作フィールド上で動作する１以上のロボット装置の制御方法において、
前記動作フィールド上の各ロボット装置の位置及び方向を監視する監視ステップと、
各ロボット装置との通信ステップと、
前記監視ステップにおける監視結果並びに各ロボット装置から通信により取得されるロボット装置の状態情報に基づいて、各ロボット装置による同期協調的な動作を制御する統括制御ステップと、
を具備することを特徴とするロボット装置の制御方法。
【請求項３０】
前記監視ステップは、前記動作フィールドを撮影する画像入力ステップと、前記入力画像を処理して各ロボット装置の位置及び方向に関する情報を取得する画像処理ステップを備える、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項３１】
前記動作フィールド上の各ロボット装置の配役が決められ、
前記統括制御ステップでは、配役毎に決められているロボット装置の動作計画の集合をシナリオとして管理する、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項３２】
配役毎のロボット装置の動作計画は、該当するロボット装置に対する１以上の指示動作を時間軸上に配置して構成され、
前記統括制御ステップでは、各配役の動作計画の実行を同じ時間軸上で管理する、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項３３】
前記統括制御ステップでは、２以上のシナリオを時間軸上に連結し、マルチロボットによる１つのパフォーマンスとして管理する、
ことを特徴とする請求項３１に記載のロボット装置の制御方法。
【請求項３４】
前記統括制御ステップでは、各シナリオにおいて異常事態の発生により続行が困難又は不可能となった場合に備えて、代替的に実行される予備シナリオを用意する、
ことを特徴とする請求項３３に記載のロボット装置の制御方法。
【請求項３５】
前記統括制御ステップでは、実行不能となった後続の１以上のシナリオをスキップし、元のシナリオ連結に復帰するために予備シナリオを利用する、
ことを特徴とする請求項３４に記載のロボット装置の制御方法。
【請求項３６】
前記統括制御ステップでは、パフォーマンスを完結できない異常事態が発生したときに、実行不能となった後続のすべてのシナリオに代えて、パフォーマンスを完結させるために予備シナリオを利用する、
ことを特徴とする請求項３４に記載のロボット装置の制御方法。
【請求項３７】
前記統括制御ステップでは、ある１つのシナリオにおいて異常事態が発生した場面に応じた予備シナリオを利用する、
ことを特徴とする請求項３４に記載のロボット装置の制御方法。
【請求項３８】
前記統括制御ステップでは、前記動作フィールド上の各ロボット装置との時刻同期を獲得し、各配役のロボット装置がそれぞれの動作計画を該時刻に合わせて同期協調的に実行するように制御する、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項３９】
前記統括制御ステップは、前記監視手段により得られた各ロボット装置の位置及び方向に関する情報を基に、前記動作フィールド上での各ロボット装置の位置及び方向を画面表示する現在状態表示ステップを備える、
ことを特徴とする請求項３０に記載のロボット装置の制御方法。
【請求項４０】
前記現在状態表示ステップでは、各ロボット装置の動作計画上の目標位置及び方向と前記監視ステップにおいて得られた現実の位置及び方向の偏差を提示する、
ことを特徴とする請求項３９に記載のロボット装置の制御方法。
【請求項４１】
前記統括制御ステップは、前記動作フィールド上の各ロボット装置の転倒領域を算出する転倒領域算出ステップと、各ロボット装置の最大可動範囲を算出する最大可動範囲算出ステップと、該算出された各ロボット装置の転倒領域又は最大可動範囲の重なりをロボット装置間の干渉領域として画面表示する干渉領域表示ステップとを備える、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項４２】
各ロボット装置は１以上の転倒動作を備え、
前記統括制御ステップでは、前記干渉領域を転倒領域に持ち若しくは前記干渉領域を転倒方向とする転倒動作の使用を禁止する、
ことを特徴とする請求項４１に記載のロボット装置の制御方法。
【請求項４３】
前記統括制御ステップは、過去に行なったロボット装置の動作に基づいて当該ロボットの運動特性を算出し、将来行なう動作計画を実行したときの計画値との偏差を当該ロボット装置の運動特性に基づいて予測する偏差予測ステップを備える、
ことを特徴とする請求項３０に記載のロボット装置の制御方法。
【請求項４４】
前記偏差予測ステップは、過去一定期間ｔs〜ｔmにモーションを実行したときに生じた誤差を観測するとともに、過去一定期間ｔs〜ｔmに実行したモーションを要素運動毎に分割し要素運動毎に生じる誤差を推定し、以後ｔm〜ｔeに至るまでの期間に実行するモーションを要素運動に分割し、これらの要素運動が持つ推定誤差を合計することにより、時刻ｔeにおける位置及び方向の目標値との偏差を推定する、
ことを特徴とする請求項４３に記載のロボット装置の制御方法。
【請求項４５】
前記予測された偏差を画面表示する偏差予測表示ステップを備える、
ことを特徴とする請求項４３に記載のロボット装置の制御方法。
【請求項４６】
ロボット装置の前記動作フィールド上での軌道を表示する軌道表示ステップをさらに備える、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項４７】
前記軌道表示ステップでは、Ｚ軸を時間軸においた歩の軌道表示を行なう、
ことを特徴とする請求項４６に記載のロボット装置の制御方法。
【請求項４８】
各ロボット装置の動作計画上の目標位置及び方向と前記監視ステップにおいて得られた現実の位置及び方向の偏差を補正する位置方向補正ステップをさらに備える、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項４９】
前記位置方向補正ステップでは、動作計画を実行中のロボット装置の位置又は方向の誤差を当該動作計画内の既存の歩を用いて補正する補正計画を立てる、
ことを特徴とする請求項４８に記載のロボット装置の制御方法。
【請求項５０】
前記位置方向補正ステップでは、ロボット装置が動作計画を実行していない場面を利用して、新たな１つ以上の歩を生成して位置方向の偏差を修正する移動計画を立てる、
ことを特徴とする請求項４８に記載のロボット装置の制御方法。
【請求項５１】
複数のロボットが前記動作フィールドでシナリオを実行するマルチロボット環境下において、異常の程度に応じて定義される各異常状態に陥ったときに適当な修復処理を行なう異常処理ステップを備える、
ことを特徴とする請求項２９に記載のロボット装置の制御方法。
【請求項５２】
前記異常処理ステップでは、１体のロボット装置だけで異常処理が完結する第１の異常状態において、当該ロボット装置についての異常処理を実行する、
ことを特徴とする請求項５１に記載のロボット装置の制御方法。
【請求項５３】
前記異常処理ステップでは、前記マルチロボット全体に対して異常処理が必要な第２の状態において、前記動作フィールド内で動作するロボット装置間で配役の交代、前記動作フィールド内又は外で待機する予備ロボットの前記動作フィールドへの投入、又は前記マルチロボットにおけるフォーメーションの修正を行なう、
ことを特徴とする請求項５１に記載のロボット装置の制御方法。
【請求項５４】
前記異常処理ステップでは、シナリオの一部が続行不可能となる第３の異常状態において、前記マルチロボットにおける全体フォーメーションの修正を行なう、
ことを特徴とする請求項５１に記載のロボット装置の制御方法。
【請求項５５】
前記異常処理ステップでは、シナリオ全体が続行不可能な第４の異常状態において、シナリオの続行を停止する、
ことを特徴とする請求項５１に記載のロボット装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の可動部を備えたロボット装置の動作若しくは行動を制御するロボット装置の制御システム及び制御方法に係り、特に、複数台のロボット装置の動作若しくは行動を同時に並行して制御するロボット装置の制御システム及び制御方法に関する。
【０００２】
さらに詳しくは、本発明は、複数のロボット装置を用いたデモンストレーションやその他の連携的若しくは同期協調的な行動を統括的に制御するロボット装置の制御システム及び制御方法に係り、特に、複数のロボットが特定の空間内で連携的な行動を行なう際のロボット装置間の干渉や転倒、故障に対してロバストな制御を行なうロボット装置の制御システム及び制御方法に関する。
【背景技術】
【０００３】
電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行う機械装置のことを「ロボット」という。ロボットの語源は、スラブ語の“ＲＯＢＯＴＡ（奴隷機械）”に由来すると言われている。わが国では、ロボットが普及し始めたのは１９６０年代末からであるが、その多くは、工場における生産作業の自動化・無人化などを目的としたマニピュレータや搬送ロボットなどの産業用ロボット（ｉｎｄｕｓｔｒｉａｌ ｒｏｂｏｔ）であった。
【０００４】
近年では、イヌやネコのように４足歩行の動物の身体メカニズムやその動作を模したペット型ロボット、あるいは、ヒトやサルなどの２足直立歩行を行う動物の身体メカニズムや動作を模した「人間形」若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）など、脚式移動ロボットの構造やその安定歩行制御に関する研究開発が進展し、実用化への期待も高まってきている。これら脚式移動ロボットは、クローラ式ロボットに比し不安定で姿勢制御や歩行制御が難しくなるが、階段の昇降や障害物の乗り越えなど、柔軟な歩行・走行動作を実現できるという点で優れている。
【０００５】
また、ヒトの生体メカニズムや動作を再現した脚式移動ロボットのことを、特に、「人間形」、若しくは「人間型」のロボット（ｈｕｍａｎｏｉｄ ｒｏｂｏｔ）と呼ぶ。人間型ロボットは、例えば、生活支援、すなわち住環境その他の日常生活上のさまざまな場面における人的活動の支援などを行なうことができる。
【０００６】
脚式移動ロボットは高い情報処理能力を備えており、ロボットそのものを一種の計算機システムとして捉えることができる。言い換えれば、ロボット上で実現される動作パターン、あるいは、複数の基本的な動作パターンの組合せによって構成される高度且つ複雑な一連の動作シーケンスすなわちモーションは、コンピュータ・プログラミングと同様の作業によって作成若しくは編集される。
【０００７】
実機を動作するためのモーション・データが数多く普及されることが、ロボット本体が普及していくためには必須である。したがって、ロボット用のモーション編集を行なうための開発環境の構築が強く望まれている。
【０００８】
また、今後、産業界のみならず一般家庭や日常生活にもロボットが深く浸透していくことが予想される。とりわけ、エンターティンメント性を追求する製品に関しては、コンピュータやコンピュータ・プログラミングに加え、運動制御に関する高度な知識を持たなくとも、振付師やデザイナーがモーション・コンテンツを作成できることが強く望まれる。また、一般消費者層がロボットを購入して使用するケースも多いと予想される。このような一般ユーザにとっても、ロボットの動作シーケンスを対話的な処理により比較的容易且つ効率的に作成・編集することを支援するためのツール、すなわちモーション編集システムを提供することが好ましい。
【０００９】
例えば、オペレータから入力された機体のポーズに従って、ポーズ間の動きの補間などを行ない、モーションを編集する動作編集装置について提案がなされている（例えば、特許文献１を参照のこと）。この動作編集装置によれば、モーションを編集した後、モーションが実機上で姿勢を安定させながら動作可能であるか否かを、ＺＭＰ安定度判別規範に基づいて検証するとともに、姿勢安定化が可能な動作パターンへの修正を行なうことができる。
【００１０】
また、ロボット装置の自律化が進展し、身の回りには人間と同様に多数のロボットが比較的高い密度で存在するという時代が到来することも予想される。このような場合、複数台のロボット装置の動作若しくは行動を統括的にコントロールできるシステムが必要となってくる。
【００１１】
例えば、操作したいロボットの台数の増大に伴う操作の煩雑さを解消するために、複数のロボットを群としてまとめて制御する群ロボット・システムについて提案がなされている（例えば、非特許文献１を参照のこと）。群ロボット・システムは、複数のエージェント全体をまとめて制御することが可能である。エージェント固体間の相互作用力により群を形成することができ、さらに、エージェントの視界の半径を変更することにより、相互作用力のバランスを意図的に崩しエージェントが群内を移動する行動が可能である。
【００１２】
また、群れを成す生物の各個体それぞれが局所的情報のみに基づいて行動し、その相互作用から全体の協調を生み出すという現象を利用して、大域的な情報交換をせずに必要最低限の機能だけで複数台のロボットによる集団行動を行なうことができる（例えば、非特許文献２を参照のこと）。すなわち、群行動をなす生物の群形成をシミュレートするとともに、習性をアルゴリズムにより再現することで、すべてのロボットを同一のプログラムで制御し、集団で同方向へ移動させ、リーダが存在しないにも拘らず秩序ある行動を行なうができる。
【００１３】
また、複数ロボットによる協調搬送の代表的な手法として、１台のロボットが要求を持つリーダとなり、他のロボットがこれに従うフォロワとなるリーダ・フォロワ・アルゴリズムが知られている。この手法を未知環境での障害物回避に適用した場合、障害物を発見したロボットが障害物から遠ざかる点に目標位置を設定することで回避を実現することができる（例えば、非特許文献３を参照のこと）。
【００１４】
ここで、複数のヒューマノイドロボットが協調して対象物を持ちながら移動する場合、歩行時に胴体の振動のために協調動作が乱れるという問題がある。この動作の乱れによるお互いの位置のずれを修正する行動を獲得する学習を行なうことが考えられる（例えば、非特許文献４を参照のこと）。例えば、強化学習の１つであるＱ学習や、遺伝的アルゴリズムを利用したクラシファイシステムなどの方法を用いることができる。
【００１５】
しかしながら、複数台のロボットが協調的に動作し、全体としてある特定の目的を実現する、というマルチロボット・システムに関する研究開発はいまだ不十分である、と本発明者らは思料する。例えば、演目のある舞台やデモンストレーションなど、複数台のロボットが限定された作業空間上で、それぞれ役割を分担しながら、１つの目的若しくはパフォーマンスを実現しなければならない。この場合、個々のロボットはそれぞれ配役に応じた行動（動作指令若しくは制御プログラム）を実行しながら、周囲のロボットとの調和を図りながら、複数のロボット全体としてストーリー性のあるパフォーマンスを観衆に提供しなければならない。
【００１６】
このようなマルチロボット環境下では、ロボット装置間で十分に同期が確保されていなければ、人の目から見て同期協調しているとは映らない。また、狭い作業空間で比較的高い密度で複数のロボット装置が動作する場合、実演中にロボット装置間で干渉を生じたり、互いの位置関係が計画から外れてきたり、転倒や故障といったことも起こり得る。このような不測の事態に対してロバストな制御を実現したマルチロボット・システムに関する技術の成果は、本出願時において希少である。
【００１７】
【特許文献１】特開２００３−２６６３４７号公報
【非特許文献１】高嶋淳、牧野浩二、松尾芳樹共著「全方位視覚センサを用いた自律移動ロボット群の群内挙動の生成」（第２１回ロボット学会学術講演会（２００３年９月２０日〜２２日）２Ｂ２６）
【非特許文献２】高信英明、愛甲哲弘、後藤寛勝、水越陽一、三浦宏文共著「小型移動ロボットによる群知能の研究」（第２１回ロボット学会学術講演会（２００３年９月２０日〜２２日）２Ｂ２２）
【非特許文献３】加藤健太郎、井上健司、新井健生、前泰志共著「異なる目標位置を持った複数ロボットによる単一物体の協調搬送―障害物回避を伴う搬送―」（第１９回ロボット学会学術講演会（２００１年９月１８日〜２０日）３Ｃ３４）
【非特許文献４】井上豊、峰隆広、伊庭斉志共著「ヒューマノイドロボットによる協調的な荷物搬送―位置修正のための学習―」（第２１回ロボット学会学術講演会（２００３年９月２０日〜２２日）３Ｂ１８）
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明の目的は、複数台のロボット装置の動作若しくは行動を同時に並行して制御することができる、優れたロボット装置の制御システム及び制御方法を提供することにある。
【００１９】
本発明のさらなる目的は、複数のロボット装置を用いたデモンストレーションやその他の連携的若しくは同期協調的な行動を統括的に制御することができる、優れたロボット装置の制御システム及び制御方法を提供することにある。
【００２０】
本発明のさらなる目的は、複数のロボットが特定の空間内で連携的な行動を行なう際のロボット装置間の干渉や転倒、故障に対してロバストな制御を行なうことができる、優れたロボット装置の制御システム及び制御方法を提供することにある。
【課題を解決するための手段】
【００２１】
本発明は、上記課題を参酌してなされたものであり、その第１の側面は、特定の動作フィールド上で動作する１以上のロボット装置の制御システムにおいて、
前記動作フィールド上の各ロボット装置の位置及び方向を監視する監視手段と、
各ロボット装置との通信手段を備え、前記監視手段による監視結果並びに各ロボット装置から取得されるロボット装置の状態情報に基づいて、各ロボット装置による同期協調的な動作を制御する統括制御手段と、
を具備することを特徴とするロボット装置の制御システムである。
【００２２】
但し、ここで言う「システム」とは、複数の装置（又は特定の機能を実現する機能モジュール）が論理的に集合した物のことを言い、各装置や機能モジュールが単一の筐体内にあるか否かは特に問わない。
【００２３】
ロボット装置の自律化が進展し、身の回りには人間と同様に多数のロボットが比較的高い密度で存在するという時代が到来することも予想される。このような場合、複数台のロボット装置の動作若しくは行動を統括的にコントロールできるシステムが必要である。
【００２４】
本発明に係るロボット装置の制御システムによれば、複数台のロボットが協調的に動作するというマルチロボット環境下において、全体としてある特定の目的を実現することができる。例えば、演目のある舞台やデモンストレーションなど、複数台のロボットが限定された作業空間上で、それぞれ役割を分担しながら、１つの目的若しくはパフォーマンスを実現することができる。すなわち、個々のロボット装置がそれぞれ配役に応じた行動（指令動作若しくは制御プログラム）を実行しながら、周囲のロボットとの調和を図りながら、複数のロボット全体としてストーリー性のあるパフォーマンスを観衆に提供することができる。
【００２５】
本発明に係るロボット装置の制御システムでは、前記監視手段は、前記動作フィールドを撮影する画像入力手段と、前記入力画像を処理して各ロボット装置の位置及び方向に関する情報を取得する画像処理手段を備えている。そして、前記統括制御手段は、画像処理結果に基づいて得られる各ロボット装置の位置及び方向、並びにロボット装置からリアルタイム通信により得られる状態情報に基づいて、動作フィールド（舞台など）上で行なわれる複数のロボット装置によるパフォーマンスの実現を統括的にコントロールすることができる。
【００２６】
このようなマルチロボットによるパフォーマンス上では、各ロボット装置の配役が決められている。配役毎のロボット装置の動作計画は、該当するロボット装置に対する１以上の指示動作を時間軸上に配置して構成されている。そして、前記統括制御手段は、配役毎に決められているロボット装置の動作計画の実行を同じ時間軸上で管理し、各配役の動作計画の集合をシナリオとして管理する。
【００２７】
また、前記統括制御手段は、２以上のシナリオを時間軸上に連結し、マルチロボットによる１つのパフォーマンスとして管理することができる。さらに、各シナリオにおいて異常事態の発生により続行が困難又は不可能となった場合に備えて、代替的に実行される予備シナリオを用意するようにしてもよい。
【００２８】
ここで、前記統括制御手段は、実行不能となった後続の１以上のシナリオをスキップし、元のシナリオ連結に復帰するために、予備シナリオを利用することができる。あるいは、パフォーマンスを完結できない異常事態が発生したときに、実行不能となった後続のすべてのシナリオに代えて、パフォーマンスを完結させるために、予備シナリオを利用することができる。あるいは、ある１つのシナリオにおいて異常事態が発生した場面に応じた予備シナリオを利用することができる。
【００２９】
このようなマルチロボット環境下では、ロボット装置間で十分に同期が確保されていなければ、人の目から見て同期協調しているとは映らない。そこで、前記統括制御手段は、前記動作フィールド上の各ロボット装置との時刻同期を獲得する同期獲得手段を備え、各配役のロボット装置がそれぞれの動作計画を該時刻に合わせて同期協調的に実行するように制御するようにしている。
【００３０】
また、狭い作業空間で比較的高い密度で複数のロボット装置が動作する場合、実演中にロボット装置間で干渉を生じたり、互いの位置関係が計画から外れてきたり、転倒や故障といったことも起こり得る。そこで、統括制御手段は、動作フィールド上でパフォーマンスを実演している各ロボット装置の位置や方向、状態を画面表示し、オペレータがパフォーマンスの実行状況を視覚的に容易に確認できるようにしている。
【００３１】
例えば、前記統括制御手段は、前記監視手段により得られた各ロボット装置の位置及び方向に関する情報を基に、前記動作フィールド上での各ロボット装置の位置及び方向を画面表示する現在状態表示手段を備えている。前記現在状態表示手段は、各ロボット装置の動作計画上の目標位置及び方向と前記監視手段により得られた現実の位置及び方向の偏差を提示する。各ロボットの目標位置と現実の位置及び方向のそれぞれを提示することにより、オペレータは、画面を介して目標位置と現在位置姿勢を視覚的に確認し、現在のマルチロボットの状態を的確に判断することができる。
【００３２】
また、前記統括制御手段は、前記動作フィールド上の各ロボット装置の転倒領域を算出する転倒領域算出手段と、各ロボット装置の最大可動範囲を算出する最大可動範囲算出手段と、該算出された各ロボット装置の転倒領域又は最大可動範囲の重なりをロボット装置間の干渉領域として画面表示する干渉領域表示手段とを備えている。
【００３３】
このように、ロボット間の干渉領域は、それぞれの最大可動範囲の重なり具合という形で視覚的に表示されるので、オペレータは、パフォーマンス実演上の問題を理解し易くなる。また、このような干渉領域の情報を利用して、周囲のロボットの可動範囲に進入しないように、転倒方向の制限を課すこともできる。
【００３４】
例えば、各ロボット装置は１以上の転倒動作を備えている場合に、前記統括制御手段は、前記干渉領域を転倒領域に持つ若しくは前記干渉領域を転倒方向とする転倒動作の使用を禁止するようにしてもよい。
【００３５】
また、前記統括制御手段は、過去に行なったロボット装置の動作に基づいて当該ロボットの運動特性を算出し、将来行なう動作計画を実行したときの計画値との偏差を当該ロボット装置の運動特性に基づいて予測する偏差予測手段と、前記予測された偏差を画面表示する偏差予測表示手段を備えている。例えば、ある「動作計画」の中にマイクが置かれている場所へ正確に移動しなければいけない場面がある場合や、動作フィールドの端で落下の可能性がある場所へ移動しなければいけない場面がある場合に、オペレータは偏差推定を利用することで、重大なトラブルが発生する前に処置すべき内容を判断することができる。
【００３６】
ここで、前記偏差予測手段は、過去一定期間ｔs〜ｔm1にモーションを実行したときに生じた誤差を観測するとともに、過去一定期間ｔs〜ｔm1に実行したモーションを要素運動毎に分割し要素運動毎に生じる誤差を推定し、さらに以後ｔm2〜ｔeに至るまでの期間に実行するモーションを要素運動に分割して、これらの要素運動が持つ推定誤差を合計することにより、時刻ｔeにおける位置及び方向の目標値との偏差を推定することができる。
【００３７】
また、前記統括制御手段は、ロボット装置の前記動作フィールド上での軌道を表示する軌道表示手段を備えている。前記軌道表示手段は、Ｚ軸を時間軸においた歩の軌道表示を行なうようにしてもよい。ロボットの作業領域は、一般に平面すなわちＺ軸方向に変化する頻度が低く、歩を空間的に表示する上でＺ軸の重要性は低い。そこで、Ｚ軸を時間軸に指定してロボットの軌跡を描画することにより、ＸＹ軸への移動と姿勢（ロール，ピッチ，ヨー）の軌道が時刻の経過に沿って視覚的に確認し易くしている。
【００３８】
前記現在状態表示手段は、各ロボット装置の動作計画上の目標位置及び方向と前記監視手段により得られた現実の位置及び方向の偏差を補正する位置方向補正手段を備えている。ロボット装置の目標値との位置及び方向のずれは観衆に与える見栄えに影響するとともに、ロボット装置間の干渉などパフォーマンス自体へも影響する。何故なら、本来いるはずのない場所にロボットが立つことになり、本来同じ場所にいるべき他のロボットと干渉又は衝突してしまうことになる。そこで、本発明では、いずれかのロボットの現在位置と目標位置との位置方向偏差が大きいとき、あるいは将来推定される位置と目標位置との位置方向偏差が大きいときには、位置及び方向の修正処理を起動するようにした。
【００３９】
前記位置方向補正手段は、動作計画を実行中のロボット装置の位置又は方向の誤差を当該動作計画内の既存の歩を用いて補正するという「補正計画」、あるいは、ロボット装置が動作計画を実行していない場面を利用して、新たな１つ以上の歩を生成して位置方向の偏差を修正するという「移動計画」を立てることができる。
【００４０】
また、前記統括制御手段は、複数のロボットが前記動作フィールドでシナリオを実行するマルチロボット環境下において、異常の程度に応じた異常状態を定義し、各異常状態に陥ったときに適当な修復処理を行なう異常処理手段を備えている。すなわち、本発明によれば、異常状態になったロボットが復帰できるかどうか、他のロボットの動作が復帰動作に干渉しないかなど、全体の構成を考慮して適切な処理を行なう手段が確立されている。統括制御手段は、このような異常状態を位置方向情報やロボット状態などから検知することができ、異常状態が検知されると、その状況に応じた処理を実行することができる。
【００４１】
前記異常処理手段は、１体のロボット装置だけで異常処理が完結する第１の異常状態において、当該ロボット装置についての異常処理を実行する。
【００４２】
また、前記異常処理手段は、前記マルチロボット全体に対して異常処理が必要な第２の状態において、前記動作フィールド内で動作するロボット装置間で配役の交代、前記動作フィールド内又は外で待機する予備ロボットの前記動作フィールドへの投入、又は前記マルチロボットにおけるフォーメーションの修正を行なう。
【００４３】
また、前記異常処理手段は、シナリオの一部が続行不可能となる第３の異常状態において、前記マルチロボットにおける全体フォーメーションの修正を行なう。
【００４４】
また、前記異常処理手段は、シナリオ全体が続行不可能な第４の異常状態において、シナリオの続行を停止する。
【発明の効果】
【００４５】
本発明によれば、複数台のロボット装置の動作若しくは行動を同時に並行して制御することができる、優れたロボット装置の制御システム及び制御方法を提供することができる。
【００４６】
また、本発明によれば、複数のロボット装置を用いたデモンストレーションやその他の連携的若しくは同期協調的な行動を統括的に制御することができる、優れたロボット装置の制御システム及び制御方法を提供することができる。
【００４７】
また、本発明によれば、複数のロボットが特定の空間内で連携的な行動を行なう際のロボット装置間の干渉や転倒、故障に対してロバストな制御を行なうことができる、優れたロボット装置の制御システム及び制御方法を提供することができる。
【００４８】
本発明のさらに他の目的、特徴や利点は、後述する本発明の実施形態や添付する図面に基づくより詳細な説明によって明らかになるであろう。
【発明を実施するための最良の形態】
【００４９】
以下、図面を参照しながら本発明の実施形態について詳解する。
【００５０】
本発明は、複数台のロボットが協調的に動作し、全体としてある特定の目的を実現するマルチロボット・システムに関する。本発明に係るマルチロボット・システムは、とりわけ左右の可動脚を備え歩行運動を行なう脚式移動ロボットを対象とし、１台以上の脚式移動ロボットを舞台やその他の作業領域からなる動作フィールドでのデモンストレーションの運用などを実現する。
【００５１】
従来の群ロボット・システムにおいては、運用中に路面の滑りや個々のロボット装置の状態により、所定時刻に目標位置に到達していない、転倒又は故障するといったトラブルに対し、自動で対処することはできず、ロボットを操作するオペレータ若しくはテクニカル・サポータの知識や経験、手作業に頼らざるを得なかった。これに対し、本発明によれば、人手に頼る運用に変わって、運用中のトラブルに対し、自動で適切且つ適応的な処理を行なうとともに、トラブルを事前に回避し又はオペレータに回避方法を促すことができる。
【００５２】
Ａ．マルチロボット・システムの構成
図１には、本発明の一実施形態に係るマルチロボット・システムの概要を示している。図示の通り、マルチロボット・システムは、舞台や作業領域などの動作フィールド上で活動可能な１台以上のロボットと、これらのロボットの動作フィールド上での動作を監視するモニタ・システムと、これらロボットの動作を統括的に管理及び制御し、マルチロボットによる演劇若しくはデモンストレーションの運用を行なう統括コントローラで構成される。
【００５３】
本実施形態で対象とするロボット装置は、左右の可動脚を備え歩行運動を行なう脚式移動ロボットであるが、その構成については後述に譲る。
【００５４】
個々のロボットにはあらかじめ役が決められており、主役や脇役などの配役に応じた区々の動作計画が与えられる。動作計画は、再生モーションなどからなる指示動作を時間軸上で組み合わせて構成される。そして、舞台上のすべてのロボット装置が行なう動作計画の集合により、演劇やデモンストレーションといった１つのシナリオが構成される。動作計画やシナリオの詳細については後述に譲る。舞台に上がる各ロボットに対し配役に応じた動作計画をあらかじめインストールしておいてもよいし、演技やデモンストレーションなどパフォーマンスが進行する毎に、指示動作をリアルタイムで転送するようにしてもよい。
【００５５】
配役に応じて定まる動作計画を実行する上で、ロボット装置に求められる運動性能若しくは運動特性は区々である（例えば、下肢の運動中心の役柄や、上肢の運動中心の役柄、特定の静止姿勢中心の役柄など）。一方、ロボット装置にも個体差があり、持ち合わせている運動性能や運動特性は装置毎に相違がある。そこで、配役毎に要求される運動性能と、利用可能な各ロボット装置が備えている運動性能とをすり合せして機体に役を割り当てていくという、配役取り決めシステムも必要である。
【００５６】
なお、マルチロボットを構成する複数台のロボットのうち１台以上は、舞台上で配役が与えられたロボット装置の故障に備えて待機するスペアとしての「予備ロボット」（図示）に割り当ててもよい。
【００５７】
モニタ・システムは、例えば、舞台などの動作フィールドを一望できるカメラが捉えた映像を画像処理することにより、各ロボットの位置及び方向を取得し、これを統括コントローラに通知する。図２には、舞台上のマルチロボットをその上方からカメラが捕らえている様子を側面から示している。また、図３には、舞台上方のカメラから捉えたマルチロボット環境下の舞台の鳥瞰図を示している。勿論、モニタ・システムは、カメラ以外のセンサ・システムを用いてロボットの位置及び方向を計測するようにしてもよい。
【００５８】
統括コントローラは、モニタ・システムから得られた各ロボットの位置及び方向などの情報に基づいて、ロボットの動作を統括的に管理しながらシナリオの実行を制御することにより、マルチロボットによる演劇若しくはデモンストレーションの運用を実現する。
【００５９】
また、統括コントローラとの各ロボット間は、ＩＥＥＥ８０２．１１などの無線ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などの無線通信により接続されており、統括コントローラは、シナリオ実行中のロボットの状態をリアルタイムで取得することができる。そして、統括コントローラは、モニタ・システムから得られたロボットの位置及び方向と、ロボットから得られた状態などに基づいて、ロボットに対する動作指示や、ロボットに対する位置及び方向の補正指示、異常発生（若しくは予測）時におけるロボットへの動作指示などを、無線ＬＡＮ経由でリアルタイムに行なう。
【００６０】
なお、図示の例では、統括コントローラとモニタ・システムは別個の装置として描かれているが、勿論単一の計算機システムで動作する個々のアプリケーションとして実装することも可能である。
【００６１】
Ｂ．ロボットに対する指示動作
マルチロボット・システムでは、個々のロボットにはあらかじめ役が決められており、主役や脇役などの配役に応じた区々の動作計画が与えられる。動作計画は、再生モーションなどからなる指示動作を時間軸上で組み合わせて構成される。そして、舞台上のすべてのロボット装置が行なう動作計画の集合により、演劇やデモンストレーションといった１つのシナリオが構成される。
【００６２】
ロボットに与えられる指示動作は、発声、発光、機体動作（歩行やダンス、姿勢遷移、情動表出など機体の動きで実現される外部出力）などに大別される。また、歩行をしながら発声するなどといった複数の指示動作が組み合わさり、１つの指示動作になることもある（図４を参照のこと）。
【００６３】
機体動作に関しては、例えば、本出願人に既に譲渡されている特開２００３−２６６３４７号公報に記載の動作編集装置を用いて編集することができる。この動作編集装置によれば、モーションを編集した後、モーションが実機上で姿勢を安定させながら動作可能であるか否かを、ＺＭＰ安定度判別規範に基づいて検証するとともに、姿勢安定化が可能な動作パターンへの修正を行なうことができる。
【００６４】
これらの指示動作を時間軸上で組み合わせることにより、１つの動作計画が構成される（図５を参照のこと）。複数台のロボットが協調的に動作し、全体としてある特定の目的を実現するというマルチロボット・システムでは、各ロボットには主役や脇役などの役が割り振られており、配役に応じた区々の動作計画が与えられる。すなわち、動作計画を構成する指示動作の集合は配役毎に異なる。
【００６５】
マルチロボット・システムでは、配役が与えられた各ロボットがそれぞれの動作計画を同じ時間軸上で同期協調的に実行することにより、演劇やデモンストレーションといった１つのパフォーマンスをシナリオ通りに実現する。このため、動作計画は、ロボット単体での指示動作以外に、動作計画の開始タイミングに相当する「シナリオ内での開始時刻」と、動作フィールド上でのロボットの開始位置及び方向（立ち位置）に相当する「シナリオ内での開始位置方向」を添付したフォーマット（図６を参照のこと）がシナリオに使用される。
【００６６】
シナリオは、演劇やデモンストレーションといった、マルチロボット・システムによるパフォーマンスの実体を記述したものであり、役が与えられたすべてのロボットの動作計画の集合により構成される。図７には、シナリオの構造を模式的に示している。個々のロボットの役割は、役を演じるための複数の動作計画を時間軸上で組み合わせることで決定する。図示のように、シナリオ内では、それぞれの役割毎の動作計画の組み合わせが記述されている。また、各動作計画には、役割の重要度（主役、脇役など）が記述されている。
【００６７】
マルチロボット・システムでは、単一のシナリオのみでパフォーマンスを行なう以外に、複数のシナリオを連結して運用するということも可能である。図８には、複数シナリオの連結した構成例を示している。この場合、複数のシナリオを時間軸上で直列的に連結することを基本形とする。
【００６８】
また、各シナリオにおいて異常事態の発生により続行が困難又は不可能となった場合に備えて、代替的に実行される予備シナリオを用意することができる。予備シナリオは、実行不能となった後続の１以上のシナリオをスキップし、元のシナリオ連結に復帰するために利用することができる。図示の例では、予備シナリオ１は、シナリオ１の実行中に異常が発生したときに、実行不能となったシナリオ２をスキップし、シナリオ３に合流するための動作計画群で構成されている。
【００６９】
あるいは、予備シナリオは、パフォーマンスを完結できない異常事態が発生したときに、実行不能となった後続のすべてのシナリオに代えて、パフォーマンスを完結させるために利用することができる。図示の例では、予備シナリオ２及び予備シナリオ３は、シナリオ３の実行中にパフォーマンスを完結できない異常事態が発生したときに、後続のシナリオ４を完全にキャンセルし、見かけ上パフォーマンスが無事に終了したかのように装う、又は当初の動作目的達成のために利用される。
【００７０】
また、ある１つのシナリオにおいて異常事態の発生により続行が困難又は不可能となった場合に備えて、代替的な予備シナリオを複数用意しておいてもよい。さらに、異常状態が発生した時刻に応じて、代替的な予備シナリオを複数用意しておいてもよい。図示の例では、シナリオ４は、予備シナリオ４及び予備シナリオ５を用意しており、当該シナリオの前半で異常が発生したときには予備シナリオ４を利用し、後半で異常が発生したときには予備シナリオ５を利用することで、それぞれ見かけ上パフォーマンスが無事に終了したかのように装う、又は当初の動作目的達成のために利用される。
【００７１】
Ｃ．マルチロボット・システムにおける各ロボットの時刻管理
上述したようにマルチロボット・システムでは、役が割り当てられた各ロボットがそれぞれ与えられた動作計画を同期的に実行することにより、舞台などの動作フィールド上で連携した協調的な行動を振る舞い、シナリオ通りのパフォーマンスを提示することができる。
【００７２】
ここで、マルチロボット環境下では、ロボット装置間で十分に同期が確保されていなければ、人の目から見て同期協調しているとは映らない、という時刻同期の問題がある。ロボット同士を同期して動作させ、特に同じ動作をさせる場合、早い動きになればなるほど見た目の動作の違いが顕著になる。
【００７３】
また、ロボットの音声や音楽を、ロボットに内蔵されているスピーカーからではなく、ロボット外の装置からのライン出力から出力することがある。これは会場が広く、ロボットの音声や音楽が会場の視聴者に届かない場合や、高音質な音を使用したい場合があるためである。ロボットの動作と外部機器からの音響を同期させるためには、これらの装置で計時される時刻が上記の精度で同期している必要がある。
【００７４】
時刻同期の問題は、見栄えの効果だけでなく、ロボット装置間の干渉などパフォーマンス事態へも影響する。何故なら、同期を十分に確保していないため、本来いるはずのない場所にロボットが立つことになり、本来同じ場所にいるべき他のロボットと干渉又は衝突してしまうことになる。
【００７５】
統括コントローラが動作計画の実行タイミングに合わせて指示動作に関するコマンドを転送することで同期をとる、という方法も考えられる。すなわち、ＰＣ内の時計やタイマーを用いて、任意の時刻又は経過時間後に、ロボットに対してコマンドを無線ＬＡＮ経由で送出する。この場合、ロボット間、あるいはロボットとＰＣ間では時刻を共有しておらず、ロボットはコマンドを受け取ると同時に直ちにそれを実行する。例えば、複数体のロボットを用いてミュージカルや劇といったシナリオをベースにしたロボットのモーション再生や音楽再生を行おうとした場合、動作させたい時刻に統括コントローラから各ロボットへコマンドを同時並行して送出して同期をとる。しかし、この場合、使用する無線の電波状況の良し悪しによりコマンドの到達遅延が生じ、ロボット同士が同期して動作しないという問題がある。
【００７６】
そこで、本実施形態では、ロボット間で、あるいはロボットと統括コントローラ（若しくは時刻を管理するその他の装置）間で時刻同期をあらかじめ行ない、その時刻になったらロボットが動作するようにしている。
【００７７】
図９には、ロボット間、並びにロボットと統括コントローラ間で時刻同期をとるための仕組みを図解している。図示の例では、当該時刻管理システムを動作させているシステム（統括コントローラ）と有線ケーブルとケーブル出力をコントロールするアプリケーション・ソフトウェアを用い、統括コントローラのオペレーティング・システム上の時刻を、各ロボットと通信を行ない設定している。
【００７８】
また、図１０には、ロボット間、並びにロボットと統括コントローラ間で時刻同期をとるための仕組みについての他の例を図解している。図示の例では、当該時刻管理システムを動作させているシステム（統括コントローラ）と同システムに接続された無線通信装置と、それをコントロールするアプリケーション・ソフトウェアを用い、統括コントローラのオペレーティング・システム上の時刻を無線送信し、各ロボットがこの無線信号を受信することにより時刻を設定している。
【００７９】
Ｄ．コントローラ・アプリケーション
統括コントローラは、モニタ・システムから得られた各ロボットの位置及び方向などの情報に基づいて、ロボットの動作を統括的に管理することにより、シナリオが円滑に進行するようにマルチロボットを運用する。さらに、統括コントローラのＧＵＩ画面を介して、動作フィールド上の各ロボットの位置確認、各ロボットの最大可動範囲並びに転倒範囲、ロボット間の干渉領域を表示し、オペレータはこれらを視覚的に確認することができる。
【００８０】
図１１には、統括コントローラが提供する、マルチロボット運用ＧＵＩ画面の構成例を示している。
【００８１】
図示のＧＵＩ画面のメインビューは、動作フィールド上でのマルチロボットの現在状態の表示と、ロボット間の干渉領域の表示と、偏差予測の表示と、軌道表示とを、タブの選択により切り替えられるようになっている。
【００８２】
図１１に示す例では、メインビューは、マルチロボットの現在状態の表示がなされている。図示の例では、Ｃｈａｌｉｅ、Ａｕｄｒｅｙ、Ｋｅｎ、Ｍａｒｃｏとそれぞれ名付けられた４台のロボットが動作フィールドで動作計画上にある。現在状態表示は、例えば、鳥瞰図による２次元表示と斜視３次元表示の２通りで提示されるが、その他の視野での表示を行なうようにしてもよい。図示の例では、鳥瞰図において、各ロボットの目標位置と現実の位置及び方向のそれぞれをこれらのフットプリントにより提示しているので、オペレータは、画面を介して目標位置と現在位置姿勢を視覚的に確認し、現在のマルチロボットの状態を的確に判断することができる。
【００８３】
また、メインビューの下方では、マルチロボットに関する位置情報の２次元並びに３次元表示に併せて、各ロボットの位置情報を数値で提示している。位置情報の数値表示の形態として、図１１に示す例では、位置偏差、目標位置、現在位置、状態、動作計画の表示をタブの選択により切り替えるようになっている。図示の例では、位置偏差が選択されており、４台の各ロボットのＸ、Ｙ、Ｚ、並びにロール、ピッチ、ヨーの６軸についての目標位置と現在位置及び方向との偏差が数値表示されている。
【００８４】
各ロボットの現在位置及び方向は、モニタ・システムがカメラの撮像画像を画像処理して得ることができる。位置偏差が大きいときには、位置及び方向の修正処理を起動することができるが、この点については後述に譲る。
【００８５】
干渉領域：
メインビューで干渉領域タブを選択すると、図１２に示すような干渉領域の確認画面に切り替わり、オペレータは、ロボット同士の安全距離を視覚的に確認することができる。図中で４つの大きな円は、各ロボットが転倒に使用されうる場所を表している。また、各円に含まれる楕円は、動作中のロボットの最大可動範囲を表している。
【００８６】
最大可動範囲は、より詳細な情報として、ロボットに割り当てられた動作計画から当該ロボットが使用する領域をあらかじめ導入しておいたものを使用することができる。
【００８７】
このように、ロボット間の干渉領域は、それぞれの最大可動範囲の重なり具合という形で視覚的に表示される。また、このような干渉領域の情報を利用して、周囲のロボットの可動範囲に進入しないように、転倒方向の制限を課すこともできる。
【００８８】
図１３には、ロボットの転倒方向に制限を課する処理手順をフローチャートの形式で示している。
【００８９】
まず、ロボット装置間の干渉領域を算出するとともに（ステップＳ１）、各ロボットの転倒動作に対応した転倒領域を算出する（ステップＳ２）。例えば、転倒方向が前でも強制的に後ろに転倒する転倒動作の転倒領域は、ロボットの後方に生じる。
【００９０】
次いで、ロボット装置間で、干渉領域や転倒領域の重複領域を算出し（ステップＳ３）、重複領域があるかどうかを判別する（ステップＳ４）。
【００９１】
ここで、重複領域がある場合には、重複領域を含む転倒領域群を算出し（ステップＳ５）、各ロボットが備えている転倒領域群のうち、重複領域を含む転倒領域群に対応する転倒動作を使用禁止にする（ステップＳ６）。
【００９２】
一方、ロボット装置間で重複領域がない場合には（ステップＳ４）、各ロボット装置において使用禁止に設定されていた転倒動作群を使用可能にする（ステップＳ７）。
【００９３】
そして、処理を継続する場合には（ステップＳ８）、当該処理ルーチンの先頭に戻り、処理を終了することができる場合には本処理ルーチン全体を終了する。
上記の例はロボット装置間の転倒時における転倒重複領域を考慮した転倒方向の制限に関する内容であるが、転倒方向の制限はロボット装置が動作フィールド端にいる場合やロボット装置以外の障害物がある場合などでも考慮される。
【００９４】
偏差予測：
メインビューで偏差予測タブを選択すると、図１４に示すような、特定時刻での各ロボットの目標位置との偏差を示した偏差推定画面に切り替わる。オペレータは、シナリオを運用中に、特定時刻における位置方向偏差を推定し、画面上でその推定偏差を確認することができる。例えば、ある「動作計画」の中にマイクが置かれている場所へ正確に移動しなければいけない場面がある場合や、動作フィールドの端で落下の可能性がある場所へ移動しなければいけない場面がある場合に、オペレータは偏差推定を利用することで、重大なトラブルが発生する前に処置すべき内容を判断することができる。
【００９５】
本実施形態では、ロボットの位置方向の偏差を、過去実行したモーションの結果に基づいて予測する。過去に行なったロボットの動作に基づいて当該ロボットの運動特性を算出することができる。そして、将来行なう動作計画を実行したときの計画値との誤差を、ロボットの運動特性に基づいて予測する。
【００９６】
より具体的に言えば、過去一定期間ｔs〜ｔm1にモーションを実行したときに生じた誤差を観測するとともに、過去一定期間ｔs〜ｔm1に実行したモーションを要素運動毎に分割し、要素運動毎に生じる誤差を推定する。ここで言う要素運動とは、モーションを時間軸又は部位運動毎に分割したものを言う。そして、以後ｔm2〜ｔeに至るまでの期間に実行するモーションを要素運動に分割し、これらの要素運動が持つ推定誤差を合計することにより、時刻ｔeにおける位置及び方向の誤差を推定することができる。
【００９７】
図１５には、位置方向の偏差を推定するための処理手順をフローチャートの形式で示している。
【００９８】
まず、時刻ｔs、ｔm1、ｔm2、ｔeを設定する（ステップＳ１１）。通常はｔm1＝ｔm2である。
【００９９】
そして、時刻ｔs〜ｔm1間に実行されたｌ番目のロボットの要素運動ｊによって生じた移動誤差と方向誤差の算出する（ステップＳ１２）。移動誤差と方向誤差は下式のように表される。
【０１００】
【数１】
2006000954.tif 000003
【０１０１】
また、時刻ｔm2〜ｔe間に実行予定の目標運動列を要素運動ｊの数ｎjに分解する（ステップＳ１３）。
【０１０２】
また、時刻ｔm2における移動誤差と方向誤差（初期誤差）を取得する（ステップＳ１４）。移動誤差及び方向誤差は下式のように表される。
【０１０３】
【数２】
2006000954.tif 000004
【０１０４】
次いで、時刻ｔm2〜ｔe間に実行予定の目標運動列をｌ番目のロボットを用いて実行した場合に生じる移動誤差と方向誤差の推定値を算出する（ステップＳ１５）。移動誤差と方向誤差は下式のように表される。
【０１０５】
【数３】
2006000954.tif 000005
【０１０６】
そして、時刻ｔeにおけるｌ番目のロボットの移動誤差と方向誤差の推定値を算出する（ステップＳ１６）。移動誤差と方向誤差は下式のように表される。
【０１０７】
【数４】
2006000954.tif 000006
【０１０８】
位置方向の偏差が大きいときには、位置及び方向の修正処理を起動することができるが、この点については後述に譲る。
【０１０９】
軌道表示：
メインビューで軌道表示タブを選択すると、各ロボットの軌道を表示する画面に切り替わる。軌道表示の簡単な例は、鳥瞰図又は斜視した動作フィールド路面に、各ロボットの過去、現在、未来に渡る歩すなわち足跡（フットプリント）を該当する場所に配置していくというものである。脚式移動ロボットにおいては、歩を基本に動作計画が立てられるので、このように歩を利用した軌道の表示は極めて有効である。このとき、時間軸に応じて（例えば過去か未来かに応じて）色分け表示してもよいし、ロボット毎に別の色で足跡を表示するようにしてもよい。
【０１１０】
ここで、３Ｄ画面で歩の軌道を表示する場合、足踏みが非常に多かったり、ダンスのように同じ場所を何度も行き来したりするような場面では、特定の場所に歩の表示が密集するため、時刻の経過に伴う歩の軌道を画面表示で確認することが困難になる、という問題がある。
【０１１１】
そこで、本実施形態では、Ｚ軸を時間軸においた歩の軌道表示を行なうようにした。脚式移動ロボットの作業領域は、一般に平面すなわちＺ軸方向に変化する頻度が低く、歩を空間的に表示する上でＺ軸の重要性は低い。そこで、Ｚ軸を時間軸に指定し、ＸＹ軸への移動と姿勢（ロール，ピッチ，ヨー）の軌道が時刻の経過に沿って視覚的に確認できるようにした。
【０１１２】
図１６には、Ｚ軸を時間軸においた歩の軌道を３Ｄ表示の例を示している。同図に示す例では、Ｚ軸正方向を時間軸に設定しており、足踏みを行なった場所では複数の歩がＺ軸方向に積み重ねられて表示されている。勿論、時間軸をＺ軸正方向ではなく負方向に割り当ててもよい。
【０１１３】
脚式移動ロボットの作業領域がＺ軸方向に変化する頻度が低いとはいえ、全くない訳ではない。例えば、階段の昇降などである。図１７には、ロボットが階段を昇降したときの通常の歩の３Ｄ表示例を示している。これに対し、図１８には、Ｚ軸負方向に時間軸を設定して、階段の昇降したときの歩を表示した前額面、矢状面、並びに斜視図を示している。
【０１１４】
上述したような歩の軌道表示は、シナリオの運用では、時刻の経過に伴う各ロボットの位置を把握することは非常に重要であり、オペレータは干渉領域確認や偏差表示との組み合わせで状況判断がより的確に行なえるようになる。
【０１１５】
Ｅ．マルチロボット・システムにおける各ロボットの位置及び方向の監視、状態監視
上述したようにマルチロボット・システムでは、役が割り当てられた各ロボットがそれぞれ与えられた動作計画を同期的に実行することにより、舞台などの動作フィールド上で連携した協調的な行動を振る舞うことにより、シナリオ通りのパフォーマンスを提示することができる。
【０１１６】
各ロボットにはそれぞれの役が割り振られており、役に応じた開始時刻や開始位置方向がシナリオ内で記述されている（前述並びに図６を参照のこと）。ところが、シナリオの運用中には、滑りや傾斜などの路面状態といった外的要因、個々のロボット装置の状態などの内的要因により、所定時刻に目標位置に到達していない、あるいは目標方向に向いていない、という事態が発生し得る。こういった現状が一連の動作中に蓄積すると、計画した動作を遂行することができなくなり、マルチロボットの位置及び方向のずれとして顕在化する。
【０１１７】
そこで、本実施形態では、モニタ・システムが動作フィールドを一望できるカメラが捉えた映像を画像処理して各ロボットの位置及び方向を取得し、統括コントローラは、モニタ・システムから得られた各ロボットの位置及び方向などの情報に基づいて、動作フィールド内で時々刻々と変化する各ロボットの位置、方向、状態を把握するようになっている。
【０１１８】
舞台などの動作フィールドの上方には天井カメラが設置されており、シナリオを実行するマルチロボットの様子を鳥瞰図として得ることができる。モニタ・システムは、天井カメラによる撮影画像を画像認識して、時々刻々変わる各ロボットの位置と方向を特定することができる（図１９を参照のこと）。そして、統括コントローラは、モニタ・システムから、各ロボットのある時刻における位置と方向に関する情報を取得することができる（図２０を参照のこと）。
【０１１９】
図２１には、統括コントローラがモニタ・システムから、ある時刻におけるロボットの位置及び方向に関する情報を取得するための処理手順をフローチャートの形式で示している。図示の例では、位置情報の取得は、統括コントローラからの要求ベースで行なわれる。すなわち、統括コントローラが、モニタシステムーデータの取得要求を発行すると、モニタ・システムは、時刻、位置、方向データを取得し、統括コントローラへ転送する。
【０１２０】
また、図２２には、モニタ・システムが天井カメラの撮影画像を基に、ロボットの位置及び方向を取得し、統括コントローラへ転送するための処理手順をフローチャートの形式で示している。
【０１２１】
モニタ・システムは、天井カメラから画像データを取得すると、所定の画像処理を施すことにより、視野内又は動作フィールド上の各ロボットの位置及び方向データを作成する。そして、統括コントローラからデータ要求があると、この作成データを転送する。
【０１２２】
ロボットの状態検出については、ロボット内蔵のセンサによりロボット自身が認識することができる。ここで言うロボットの状態には、現在の姿勢情報（立ち姿勢、寝姿勢）、動作が正常又は異常か、バッテリの残量などが含まれる。また、統括コントローラは各ロボットと無線ＬＡＮ経由で接続されており、ロボットの状態をリアルタイムに取得することができる。
【０１２３】
Ｆ．マルチロボット・システムにおける各ロボットの位置及び方向の修正計画
マルチロボット・システムでは、役が割り当てられた各ロボットがそれぞれ与えられた動作計画を同期的に実行することにより、舞台などの動作フィールド上で連携した協調的な行動を振る舞うことにより、シナリオ通りのパフォーマンスを提示することができる。
【０１２４】
各ロボットにはそれぞれの役が割り振られており、役に応じた開始時刻や開始位置方向がシナリオ内で記述されている（前述並びに図６を参照のこと）。ところが、シナリオの運用中には、滑りや傾斜などの路面状態といった外的要因、個々のロボット装置の状態などの内的要因により、所定時刻に目標位置に到達していない、あるいは目標方向に向いていない、という事態が発生し得る。こういった現状が一連の動作中に蓄積すると、計画した動作を遂行することができなくなり、マルチロボットの位置及び方向のずれとして顕在化する。
【０１２５】
このような位置及び方向のずれは観衆に与える見栄えに影響するとともに、ロボット装置間の干渉などパフォーマンス自体へも影響する。何故なら、本来いるはずのない場所にロボットが立つことになり、本来同じ場所にいるべき他のロボットと干渉又は衝突してしまうことになる。
【０１２６】
そこで、本実施形態では、モニタ・システムが動作フィールドを一望できるカメラが捉えた映像を画像処理して各ロボットの位置及び方向を取得し、統括コントローラは、モニタ・システムから得られた各ロボットの位置及び方向などの情報に基づいて、ロボットの動作を統括的に管理することで、シナリオが円滑に進行するようにマルチロボットを運用する。
【０１２７】
統括コントローラは、上述したコントローラ・アプリケーションにより、ロボットの目標とする位置方向と現在の位置方向の偏差を随時確認することができる（図１１を参照のこと）。さらに、いずれかのロボットの現在位置と目標位置との位置方向偏差が大きいとき、あるいは将来推定される位置と目標位置との位置方向偏差が大きいときには、位置及び方向の修正処理を起動することができる。
【０１２８】
本実施形態に係る位置及び方向の修正計画では、状況に応じて、２種類の位置方向の修正方法を用意している。１つは、「補正計画」であり、これはロボットが動作計画を実行中に動作計画内の既存の歩を補正することで位置方向の偏差を修正するというものである。もう１つは、「移動計画」であり、これはロボットが動作計画を実行していない場面を利用して、新たな１つ以上の歩を生成して位置方向の偏差を修正するものである。
【０１２９】
図２３には、位置及び方向の修正計画の手順をフローチャートの形式で示している。
【０１３０】
統括コントローラは、モニタ・システムから取得したデータに基づいて、動作フィールドで活動しているいずれかのロボットについて、位置及び方向を補正する必要があるかどうかを判別する（ステップＳ２１）。
【０１３１】
いずれかのロボットにおいて、位置及び方向を補正する必要があると判断したときには、続いて、当該ロボットが現在シナリオを実行中であるかどうかを判別する（ステップＳ２２）。ここで、シナリオを実行中でなければ、移動計画を立てることに決定する（ステップＳ２５）。移動計画を立てるための処理手順の詳細については、後述に譲る。
【０１３２】
また、ロボットがシナリオを実行中であれば、さらに当該ロボットがシナリオ内で動作計画を実行中又は動作計画間の途切れであるか、あるいは移動計画を実行中であるかを判別する（ステップＳ２３）。ここで、ロボットが動作計画及び移動計画のいずれも実行していないときには、移動計画を立てることに決定する（ステップＳ２５）。
【０１３３】
一方、当該ロボットが動作計画又は移動計画のいずれかを実行していることには、補正計画を立てることに決定する（ステップＳ２４）。補正計画は、現在実行中の計画が成功裏に終了するよう、当該計画内の既存の歩を補正する補正計画を立てることに決定する。
【０１３４】
ロボットへ通知する計画がある場合には（ステップＳ２６）、当該計画をロボットへ通知する（ステップＳ２７）。そして、当該処理ルーチンを終了可能であれば終了し、そうでなければステップＳ２１に戻り、上述と同じ処理を繰り返し行なう。
【０１３５】
Ｆ−１．補正計画
動作計画の中で、脚の軌道は、ロボットの足底軌道となる「歩」を１単位として管理されている。図２４には、脚の軌道を歩で管理している様子を示している。ある時刻での歩は（ｘ，ｙ，ｚ，ｒｏｌｌ，ｐｉｔｃｈ，ｙａｗ）のパラメータで表され、その座標原点は通常、動作計画の開始点となる。なお、空間を表す単位であれば、オイラー角空間でなくてもよい。図２４に示した歩のパラメータは例えば下表のように表される。
【０１３６】
【表１】
2006000954.tif 000007
単位
ｘ，ｙ，ｘ：［ｍ］
ｒｏｌｌ．ｐｉｔｃｈ．ｙａｗ：［ｄｅｇ］
【０１３７】
この例では、座標の原点を初期位置、時間は開始時刻を０とした相対値を用いているが、座標・時刻それぞれについて絶対値を用いても良い。
【０１３８】
続いて、歩の偏差について説明する。動作計画の運用時に発生する位置方向偏差の蓄積量を（ｘ1，ｙ1，ｚ1，ｒｏｌｌ1，ｐｉｔｃｈ1，ｙａｗ1）と表す。位置補正は、基本的にある時刻における位置方向偏差の各成分を０にすることが目的であり、偏差から算出された補正量（ｘ2，ｙ2，ｚ2，ｒｏｌｌ2，ｐｉｔｃｈ2，ｙａｗ2）を計画した歩に付加し、それをロボットが実行することでこの目的を達成する。計画した歩に補正量を付加したものを「補正歩」とここでは呼ぶことにする。補正歩（Ｘ，Ｙ，Ｚ，ＲＯＬＬ，ＰＩＴＣＨ，ＹＡＷ）は次式のように表すことができる。
【０１３９】
【数５】
2006000954.tif 000008
【０１４０】
本明細書では、動作計画の中で偏差が無くなるように補正歩を組み合わせた軌道計画のことを「補正計画」と呼ぶ。  
【０１４１】
図２５には、図２４に示した計画軌道に対して、動作計画の運用時に発生した偏差を示している。また、図示の歩の偏差を下表に示している。
【０１４２】
【表２】
2006000954.tif 000009
単位
ｘ，ｙ，ｘ：［ｍ］
ｒｏｌｌ．ｐｉｔｃｈ．ｙａｗ：［ｄｅｇ］
【０１４３】
補正量（ｘ2，ｙ2，ｚ2，ｒｏｌｌ2，ｐｉｔｃｈ2，ｙａｗ2）は、偏差量から求まるので、基本的には下式のように表すことかできる。
【０１４４】
【数６】
2006000954.tif 000010
【０１４５】
しかしながら、実際には、補正量は、実際に使用しているロボットの特性や舞台（動作フィールド）の状態、脚関節角やアクチュエータ速度、加速度、自己干渉によるロボットに課される運用上の制限を考慮して算出する必要がある。このため、実際の補正量は、一般に、下式に示すように、動作計画の運用時に発生する時間や位置方向偏差の蓄積量の関数として表される。
【０１４６】
【数７】
2006000954.tif 000011
【０１４７】
ここで、ロボットの特性は、事前に基準環境下で調査されている。１歩毎の平均的な偏差量が、他のパラメータと同様（ｘ3，ｙ3，ｚ3，ｒｏｌｌ3，ｐｉｔｃｈ3，ｙａｗ3）で数値化されているため、偏差量からこの値を差し引いた値が補正量となる。
【０１４８】
また、動作フィールドの状態によってロボットの挙動が左右される。特に、動作フィールドの路面環境で歩の偏差量は大きく影響を受ける。動作計画を運用する際、開始時からの歩の偏差統計を取り１歩毎の平均偏差量（ｘ4，ｙ4，ｚ4，ｒｏｌｌ4，ｐｉｔｃｈ4，ｙａｗ4）を算出する。この値はこの先発生する偏差の予測量であり、修正量は予めこの値を考慮して算出する。
【０１４９】
ロボットに課される制約には、機体に課される制約と運用上の制約がある。上式［数５］並び［数７］により得られた歩の軌道に対して、逆運動学などを用いて脚関節の軌道を算出する。さらに、（時間的に可能であれば）個々の関節に対する速度・加速度や自己干渉についても調べ、それぞれの制限事項を満足しているか判断する。制限事項を満たしていない場合は、一定の基準で補正量を減らす。また、ロボット機体が持つ制約に関しては、見栄えの面や安全な運用を考えて、より強い制約を課すことがある。
【０１５０】
図２６には、補正計画を立てるための処理手順をフローチャートの形式で示している。
【０１５１】
まず、統括コントローラは、シナリオから得られる該当するロボットの位置方向の計画値と、モニタ・システムから取得された現在値から、補正用の偏差（ｘ1，ｙ1，ｚ1，ｒｏｌｌ1，ｐｉｔｃｈ1，ｙａｗ1）を算出する（ステップＳ３１）。
【０１５２】
次いで、現在時刻以降で、動作計画内の既存の歩のうち補正する歩を選択し、補正の暫定量を導出する（ステップＳ３２）。
【０１５３】
次いで、暫定的に得られた補正量に対し、ロボットの特性や動作フィールドの状態を考慮した補正量へ修正を行なう（ステップＳ３３）。
【０１５４】
さらに、このようにして得られた補正量から、現在のロボットの姿勢やロボットの制約（関節角制限、角速度制限、角加速度制限、自己干渉など）を考慮した厳密な補正量へ更新する（ステップＳ３４）。
【０１５５】
そして、ロボットの制約を考慮した補正量に対して、見栄えや安全性を考慮した制約を基に補正量を更新する（ステップＳ３５）。
【０１５６】
統括コントローラは、得られた補正量（ｘ2，ｙ2，ｚ2，ｒｏｌｌ2，ｐｉｔｃｈ2，ｙａｗ2）を該当するロボットの補正歩（Ｘ，Ｙ，Ｚ，ＲＯＬＬ，ＰＩＴＣＨ，ＹＡＷ）に反映させる（ステップＳ３６）。
【０１５７】
図２７には、上記のステップＳ３２における、補正計画の対象となる歩について補正の暫定量を導出するための詳細な処理手順をフローチャートの形式で示している。
【０１５８】
統括コントローラは、シナリオの中から、位置方向修正の処理対象となっているロボットの動作計画を参照し、現在時刻以降で補正のために使用することができる歩数を得る（ステップＳ４１）。
【０１５９】
次いで、この歩数から、補正計画で使用する１又はそれ以上の歩を選択する（ステップＳ４２）。
【０１６０】
次いで、選択した歩に対して、歩が持つパラメータ（歩幅、旋回角、速度など）から推測できる補正の近似的な上限値を得る（ステップＳ４３）。
【０１６１】
そして、得られた情報を基に、次に修正する歩の補正量を決定する（ステップＳ４４）。
【０１６２】
Ｆ−２．移動計画
位置方向を修正しなければならないロボットが、現在動作計画又は移動計画を実行中のときには、上述したように補正歩を組み合わせた補正計画により修正を行なう。これに対し、位置方向を修正しなければならないロボットがいずれの動作計画も行なっていないときには、新たな歩を生成し、次の動作計画を実施するまでの間に位置方向を修正する移動計画を立てる（前述）。図２８には、移動計画を立てるための処理手順をフローチャートの形式で示している。
【０１６３】
まず、その場において、例えば異なる足運びの集合から成る歩容ライブラリから選択するといった方法によって、印象のよい（見栄え若しくはその場に適した印象を与えられる）歩容を使用し（ステップＳ５１）、役の優先順位に従い軌道計画を行なう（ステップＳ５２）。
【０１６４】
ここで、ロボット装置駆動用バッテリの残エネルギの推定を行なう（ステップＳ５３）。
【０１６５】
残エネルギが尽きると推定された場合には（ステップＳ５４）、印象のよさではなく、より効率の高い他の歩容があるかどうかを検索する（ステップＳ５８）。より効率の高い歩がある場合には、それに変更し（ステップＳ５９）、ステップＳ５２に復帰する。一方、より効率のよい歩容がない場合には、移動計画を終了する。
【０１６６】
残エネルギがあると推定された場合には（ステップＳ５４）、さらにその残時間を推定する（ステップＳ５５）。
【０１６７】
次いで、より効率の高い歩容に変更されたかどうかを判別する（ステップＳ５６）。
【０１６８】
より効率の高い歩容に変更されている場合には、次の動作計画が開始するまでの残時間が一定時間以上かどうかをさらに判別する（ステップＳ５７）。そして、残時間が一定時間以上であれば移動計画を終了する。また、残時間が一定時間以下であれば、移動計画を中止、すなわち次の動作計画が開始するまでの位置方向の修正を諦める。
【０１６９】
また、より効率の高い歩容に変更されていない場合には、次の動作計画が開始するまでの残時間が一定時間以上かどうかをさらに判別する（ステップＳ６０）。そして、残時間が一定時間以上であれば移動計画を終了する。これに対し、残時間が一定時間以下であれば、より高速な歩容がある場合には（ステップＳ６１）、より高速の歩容に変更し（ステップＳ６２）、ステップＳ５２に戻る。
【０１７０】
Ｇ．マルチロボット・システムにおける異常処理
シナリオを運用する際、路面状態・傾斜といった外的要因やロボット自身の内的要因、あるいはロボット同士の接触などによって、転倒回避動作が発動したり転倒したりすることがある。また、バッテリ残量の低下などのエネルギ不足による動作停止といったさまざまな異常状態が想定される。
【０１７１】
従来、異常状態の処理は操作人の技能が求められ、他のロボットの動作を予測しながら異常からの復帰を図ることは非常に困難であった。
【０１７２】
これに対し、本実施形態に係るマルチロボット・システムでは、異常状態になったロボットが復帰できるかどうか、他のロボットの動作が復帰動作に干渉しないかなど、全体の構成を考慮して適切な処理を行なう手段が確立されている。すなわち、統括コントローラは、このような異常状態を位置方向情報やロボット状態などから検知することができる。異常状態が検知されると、その状況に応じた処理が実行される。
【０１７３】
本実施形態に係るマルチロボット・システムでは、異常の程度に応じて以下の４つのレベルの異常状態を定義している。
【０１７４】
異常レベル１：１体のロボットだけで異常処理が完結する状態
異常レベル２：マルチロボット・システム全体に対して異常処理が必要な状態
異常レベル３：シナリオの一部が続行不可能となる状態
異常レベル４：シナリオ全体が続行不可能な状態
【０１７５】
以下、各異常レベルについて説明する。
【０１７６】
異常レベル１：
>異常状態であるロボットの「動作計画」続行を判断
異常状態が発生したことにより、そのロボットの「動作計画」が持つ目的が達成できるかどうかを、所定の評価式を用いて判断する。ここで、ロボットの動作計画の続行可能性の判断方法とその評価式について説明しておく。
【０１７７】
シナリオ上で役を与えられている各ロボット装置は、実行すべきモーションなどの動作計画がシナリオ内で規定されている。モーションは要素運動（前述）に分割することができる。要素運動とは、右旋回、左旋回、前進、後退、右横、左横、前進跳躍、後退跳躍、右旋回跳躍、左旋回跳躍、前進走行、後退走行、右旋回走行、左旋回走行、右横走行、左横走行など、例えば動作命令の最小単位となるものである。
【０１７８】
各要素運動は単位運動に分解することができる。ここで、要素運動についての動作の遂行可能性を判断するために、パフォーマンス・ベクトルという概念を導入する。ｊ番目の要素運動の単位運動数ｎjとし、ｋ番目の役が与えられたロボットの時刻ｔ以降の計画パフォーマンスを単位要素運動数分解すると、そのパフォーマンス・ベクトルＰk(t)は下式のように表される。
【０１７９】
【数８】
2006000954.tif 000012
【０１８０】
一方、ｌ番目のロボットの要素運動ｊの単位運動当たりの達成度をａjlとすると、ロボットｌの時刻ｔにおける１単位パフォーマンス・ベクトルＳlは下式のように表される。
【０１８１】
【数９】
2006000954.tif 000013
【０１８２】
再パスプラニング時に、許容値を満たさない要素運動を、使用可能要素運動から削除する。そして、動作続行可能性を行なう評価値を下式のように定義し、この値が許容値ε以上であれば計画動作の続行が可能であると判断する。
【０１８３】
【数１０】
2006000954.tif 000014
【０１８４】
なお、各要素運動間に評価の重みがある場合は、時刻ｔ以降における重み対角行列Ｉk（ｔ）をパフォーマンス・ベクトルＰk（ｔ）tの積などをＰk（ｔ）tとして評価値を算出して最終的な評価を行なうようにしてもよい。
【０１８５】
【数１１】
2006000954.tif 000015
【０１８６】
>異常状態からの復帰
異常レベル１異常状態の一例として、あるロボットが転倒した場合を考える。そのロボットが起き上がれる状態にある場合は、そのロボットへ起き上がりの指示を出す。起き上がれるかどうかの判断は、統括コントローラとロボットの通信が確立しており、転倒したロボットの内部状態に問題が無く、且つ、その他のロボットとの干渉の問題が発生しないかどうかで決まる。起き上がったロボットは、位置方向偏差を補正しながら「動作計画」を続行する。
【０１８７】
異常レベル２：
>配役の交代
あるロボットが異常状態になり、特にそのロボットが主役といった重要な役割を担っているような場合は、配役の交代が行なわれる。例えば、ロボットＡの役をロボットＢが行うことになった場合は、ロボットＢがロボットＡの位置に付き、その後、ロボットＡの「動作計画」を実行することになる。
【０１８８】
>予備ロボットの導入
あるロボットが異常状態になり、予備ロボットが準備されている場合は、そのロボットが動作フィールド内に移動、又は、人によって動作フィールド内に置かれ、異常状態になったロボットの「動作計画」を実行する。図２９には、予備ロボット導入のための処理手順をフローチャートの形式で示している。
【０１８９】
まず、導入場所までの移動軌道を計画する（ステップＳ７１）。
【０１９０】
次いで、移動軌道を「動作計画」とし、予備ロボット導入後に実行し、シナリオ中の一連の「動作計画」と併合する（ステップＳ７２）。
【０１９１】
次いで、併合された一連の「動作計画」を予備ロボットにアップロードする（ステップＳ７３）
【０１９２】
そして、シナリオの時刻進行を考慮し、予備ロボットを導入したい場面で統括コントローラが自動で、又はオペレータが手動で、アップロードされた「動作計画」を開始する（ステップＳ７４）。
【０１９３】
>フォーメーションの修正
あるロボットが異常状態になり、その復帰動作中に他のロボットとの干渉が予想された場合、一部、フォーメーションを修正することで、異常状態のロボットが復帰するための領域を確保する。
【０１９４】
異常レベル３：
>全体フォーメーションの再計画
あるロボットが異常状態になり移動できない状態になった場合で且つ撤去できず、結果として、動作フィールド内で他のロボットが立ち入れない領域が発生し、且つ、将来その場所で干渉が発生すると予想された場合、全体の「動作計画」内で軌道が再計画される。その際は、極力主役の軌道変化が無いような計画が立てられる。
【０１９５】
異常レベル４：
>シナリオ停止
発生した異常状態によって、シナリオが成立しなくなったと判断されると、全体を停止する。各ロボットは動作している状態から、停止状態へ移行する。シナリオの停止後、状況に応じて（又は、オペレータの判断によって）以下の４つの中からいずれかの処理が実行される（図８を参照のこと）。
【０１９６】
・現在のシナリオを先頭から開始（リターン）
・現在のシナリオを飛ばして、次以降のシナリオを開始（スキップ）
・予備シナリオを開始
・すべてのシナリオの実行を破棄
【０１９７】
図３０には、異常レベルを判定するための処理手順をフローチャートの形式で示している。
【０１９８】
まず、異常状態のロボットが、以下の条件で復帰可能かどうかを判別する（ステップＳ８１）。
【０１９９】
ここで、異常状態のロボットが復帰可能と判断された場合には、続いて、当該ロボットが他のロボットと干渉せずに復帰可能かどうかを判別する（ステップＳ８２）。
【０２００】
異常状態のロボットが、他のロボットと干渉せずに復帰できる場合には、復帰後に役割を続行できるかどうかをさらに判別する（ステップＳ８３）。そして、役割を続行可能な場合には、異常レベル１と判定する。
【０２０１】
一方、異常状態のロボットが、復帰後に役割を続行できない場合には、配役の交代が可能かどうかを判別する（ステップＳ８４）。配役の後退が可能であれば、異常レベル２と判定する。
【０２０２】
また、異常状態のロボットが他のロボットと干渉せずに復帰できない場合には（ステップＳ８２）、全体のフォーメーションを変更することにより復帰が可能かどうかを判別する（ステップＳ８５）。ここで復帰が可能と判断された場合も、異常レベル２と判定する。
【０２０３】
一方、全体のフォーメーションを変更しても復帰できない場合や（ステップＳ８５）、異常状態のロボットが復帰不可能と判断された場合には（ステップＳ８１）、異常状態を動作フィールド（舞台）から撤去又は放置することが可能かどうかをさらに判別する（ステップＳ８６）。
【０２０４】
異常状態のロボットを撤去又は放置することができる場合には、予備ロボット（前述）を出すことが可能かどうかを判別する（ステップＳ８７）。予備ロボットを出すことができる場合も、異常レベル２と判定する。
【０２０５】
予備ロボットを出すことができない場合には（ステップＳ８７）、異常状態のロボットを撤去又は放置してもシナリオを続行可能かどうかを判別する（ステップＳ８８）。シナリオの続行が可能であれば、異常レベル３と判定する。
【０２０６】
また、異常状態から復帰できないロボットを撤収又は放置することができない場合には（ステップＳ８６）、当該ロボットが動作フィールドに残った状態でシナリオを継続可能かどうかを判別する（ステップＳ８９）。
【０２０７】
異常状態のロボットを動作フィールドに残したままシナリオを継続することができる場合にも、異常レベル３と判定する。
【０２０８】
一方、異常状態のロボットを動作フィールドに残したままシナリオを継続することができない場合（ステップＳ８９）、並びに、異常状態のロボットを撤去又は放置してシナリオを継続することができない場合には（ステップＳ８８）、異常レベル４と判定する。
【０２０９】
その他、異常時に行なう処理：
>ログデータの回収
あるロボットが異常状態になった場合は、ロボット内に蓄積されたログデータが回収される。回収したデータを解析することで、異常が起きた原因を解析する助けとなる。
【０２１０】
>コントローラと通信不能となったロボットの自己処理
コントローラと通信が不能になったと認識したロボットは、外部からの制御が不能状態に入ったと判断し自己処理として動作を停止する。実行環境によっては「動作計画」といった重要度の高い情報に対し、外部へ流出することがないよう、消去などの処理を行なう。
【０２１１】
Ｈ．ロボット装置の構成
これまではマルチロボット・システムの構成や機能について説明してきた。この項では、マルチロボットの一員として動作することができるロボット装置について詳解する。
【０２１２】
図３１及び図３２には本発明の実施に供される「人間形」又は「人間型」のロボット装置１００が直立している様子を前方及び後方の各々から眺望した様子を示している。図示の通り、ロボット装置１００は、体幹部と、胴体部と、頭部と、左右の上肢部と、脚式移動を行なう左右２足の下肢部とで構成され、例えば体幹部に内蔵されている制御部（図示しない）によりロボット装置の動作を統括的にコントロールするようになっている。
【０２１３】
左右各々の下肢は、大腿部と、膝関節と、脛部と、足首と、足平とで構成され、股関節によって腰部の略最下端にて連結されている。また、左右各々の上肢は、上腕と、肘関節と、前腕とで構成され、肩関節によって体幹部の上方の左右各側縁にて連結されている。また、頭部は、首関節によって体幹部の略最上端中央に連結されている。
【０２１４】
このように構成されたロボット装置１００は、制御部（図３１及び図３２には図示しない）による全身協調的な動作制御により、２足歩行を実現することができる。かかる２足歩行は、一般に、以下に示す各動作期間に分割される歩行周期を繰り返すことによって行なわれる。すなわち、
【０２１５】
（１）右脚を持ち上げた、左脚による単脚支持期
（２）右足が接地した両脚支持期
（３）左脚を持ち上げた、右脚による単脚支持期
（４）左足が接地した両脚支持期
【０２１６】
制御部は、このロボット装置１００を構成する各関節アクチュエータの駆動制御や各センサ（後述）などからの外部入力を処理するコントローラ（主制御部）や、電源回路その他の周辺機器類を搭載した筐体である。制御部は、その他、遠隔操作用の通信インターフェースや通信装置を含んでいてもよい。
【０２１７】
歩行動作の軌道修正を始めとして、ロボット装置の姿勢安定制御には、ＺＭＰを歩行の安定度判別の規範として用いている。このため、ＺＭＰに対する偏差を小さくするための位置、速度、及び加速度が連続となるように、５次多項式を用いた補間計算により行なう。ＺＭＰによる安定度判別規範は、歩行系から路面には重力と慣性力、並びにこれらのモーメントが路面から歩行系への反作用としての床反力並びに床反力モーメントとバランスするという「ダランベールの原理」に基づく。当該原理の力学的推論の帰結として、足底接地点と路面の形成する支持多角形の内側にピッチ軸及びロール軸モーメントがゼロとなる点、すなわちＺＭＰが存在する。
【０２１８】
図３３には、このロボット装置１００が具備する関節自由度構成を模式的に示している。同図に示すように、ロボット装置１００は、２本の腕部と頭部１を含む上肢と、移動動作を実現する２本の脚部からなる下肢と、上肢と下肢とを連結する体幹部と、腰部で構成された、複数の肢を備えた構造体である。
【０２１９】
頭部を支持する首関節（Ｎｅｃｋ）は、首関節ヨー軸１と、第１及び第２の首関節ピッチ軸２ａ及び２ｂと、首関節ロール軸３という４自由度を有している。
【０２２０】
また、各腕部は、その自由度として、肩（Ｓｈｏｕｌｄｅｒ）における肩関節ピッチ軸４と、肩関節ロール軸５と、上腕ヨー軸６、肘（Ｅｌｂｏｗ）における肘関節ピッチ軸７と、手首（Ｗｒｉｓｔ）における手首関節ヨー軸８と、手部とで構成される。手部は、実際には、複数本の指を含む多関節・多自由度構造体である。
【０２２１】
また、体幹部（Ｔｒｕｎｋ）は、体幹ピッチ軸９と、体幹ロール軸１０という２自由度を有する。
【０２２２】
また、下肢を構成する各々の脚部は、股関節（Ｈｉｐ）における股関節ヨー軸１１と、股関節ピッチ軸１２と、股関節ロール軸１３と、膝（Ｋｎｅｅ）における膝関節ピッチ軸１４と、足首（Ａｎｋｌｅ）における足首関節ピッチ軸１５と、足首関節ロール軸１６と、足部とで構成される。
【０２２３】
但し、ロボット装置１００が上述したすべての自由度を装備しなければならない訳でも、あるいはこれに限定される訳でもない。設計・製作上の制約条件や要求仕様などに応じて、自由度すなわち関節数を適宜増減することができることは言うまでもない。
【０２２４】
上述したようなロボット装置１００が持つ各自由度は、実際には回転型アクチュエータを用いて実装され、これらの回転位置制御に基づいて運動制御を行なうようになっている。外観上で余分な膨らみを排してヒトの自然体形状に近似させること、２足歩行という不安定構造体に対して姿勢制御を行なうことなどの要請から、これら関節アクチュエータは小型且つ軽量であることが好ましい。
【０２２５】
本実施形態では、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニットに内蔵したタイプの小型ＡＣサーボ・アクチュエータを搭載することとした。この種のＡＣサーボ・アクチュエータに関しては、例えば本出願人に既に譲渡されている特開２０００−２９９９７０号公報に開示されている。各関節アクチュエータには、モータ・トルクを検出するトルク・センサや、回転位置若しくは関節位置を検出する角度・位置センサがそれぞれ配設されているものとする。
【０２２６】
また、本実施形態では、アクチュエータ・モータの直結ギアとして低減速ギアを採用することにより、人間との物理的インタラクションを重視するタイプのロボット１００に求められている駆動系自身の受動的特性を得ている。
【０２２７】
図３４には、ロボット装置１００の制御システム構成を模式的に示している。同図に示すように、ロボット装置１００は、ヒトの四肢を表現した各機構ユニット３０、４０、５０Ｒ／Ｌ、６０Ｒ／Ｌと、各機構ユニット間の協調動作を実現するための適応制御を行なう制御ユニット８０とで構成される（但し、Ｒ及びＬの各々は、右及び左の各々を示す接尾辞である。以下同様）。
【０２２８】
ロボット装置１００全体の動作は、制御ユニット８０によって統括的に制御される。制御ユニット８０は、ＣＰＵ（Ｃｅｎｔｒａｌ Ｐｒｏｃｅｓｓｉｎｇ Ｕｎｉｔ）やメモリなどの主要回路コンポーネント（図示しない）で構成される主制御部８１と、電源回路やロボット１００の各構成要素とのデータやコマンドの授受を行なうインターフェース（いずれも図示しない）などを含んだ周辺回路８２とで構成される。
【０２２９】
ここで言う周辺回路８２は、ロボット装置に搭載される周辺機器類の他、ケーブルや無線を通して接続される外付けの周辺機器、充電ステーション（図示しない）やその他の周辺機器を接続するためのインターフェース・コネクタなどを含むものとする。
【０２３０】
本発明を実現する上で、この制御ユニット８０の設置場所は特に限定されない。図３４では体幹部ユニット４０に搭載されているが、頭部ユニット３０に搭載してもよい。あるいは、ロボット装置１００外に制御ユニット８０を配備して、ロボット装置１００本体とは有線若しくは無線で交信するようにしてもよい。
【０２３１】
図３３に示したロボット装置１００内の各関節自由度は、それぞれに対応するアクチュエータによって実現される。すなわち、頭部ユニット３０には、首関節ヨー軸１、首関節ピッチ軸２、首関節ロール軸３の各々を表現する首関節ヨー軸アクチュエータＭ1、首関節ピッチ軸アクチュエータＭ2、首関節ロール軸アクチュエータＭ3が配設されている。
【０２３２】
また、体幹部ユニット４０には、体幹ピッチ軸９、体幹ロール軸１０の各々を表現する体幹ピッチ軸アクチュエータＭ9、体幹ロール軸アクチュエータＭ10が配設されている。
【０２３３】
また、腕部ユニット５０Ｒ／Ｌは、上腕ユニット５１Ｒ／Ｌと、肘関節ユニット５２Ｒ／Ｌと、前腕ユニット５３Ｒ／Ｌに細分化されるが、肩関節ピッチ軸４、肩関節ロール軸５、上腕ヨー軸６、肘関節ピッチ軸７、手首関節ヨー軸８の各々を表現する肩関節ピッチ軸アクチュエータＭ4、肩関節ロール軸アクチュエータＭ5、上腕ヨー軸アクチュエータＭ6、肘関節ピッチ軸アクチュエータＭ7、手首関節ヨー軸アクチュエータＭ8が配設されている。
【０２３４】
また、脚部ユニット６０Ｒ／Ｌは、大腿部ユニット６１Ｒ／Ｌと、膝ユニット６２Ｒ／Ｌと、脛部ユニット６３Ｒ／Ｌに細分化されるが、股関節ヨー軸１１、股関節ピッチ軸１２、股関節ロール軸１３、膝関節ピッチ軸１４、足首関節ピッチ軸１５、足首関節ロール軸１６の各々を表現する股関節ヨー軸アクチュエータＭ11、股関節ピッチ軸アクチュエータＭ12、股関節ロール軸アクチュエータＭ13、膝関節ピッチ軸アクチュエータＭ14、足首関節ピッチ軸アクチュエータＭ15、足首関節ロール軸アクチュエータＭ16が配設されている。
【０２３５】
各関節に用いられるアクチュエータＭ1、Ｍ2、Ｍ3…は、より好ましくは、ギア直結型で且つサーボ制御系をワンチップ化してモータ・ユニット内に搭載したタイプの小型ＡＣサーボ・アクチュエータ（前述）で構成することができる。
【０２３６】
頭部ユニット３０、体幹部ユニット４０、腕部ユニット５０、各脚部ユニット６０などの機構ユニット毎に、アクチュエータ駆動制御用の副制御部３５、４５、５５、６５が配設されている。
【０２３７】
腰部４１には、姿勢センサ９５と加速度センサ９６が配設されている。加速度センサ９６は、ＸＹＺの各軸方向に配置する。また、腰部４１に加速度センサ９６を配設することによって、質量操作量が大きな部位である腰部４１を制御対象点として設定して、その位置における姿勢や加速度を直接計測して、ＺＭＰに基づく姿勢安定制御を行なうことができる。姿勢センサ９５と加速度センサ９６は、図３中ではそれぞれ加速度センサＡ１及びジャイロ・センサＧ１として構成されている。
【０２３８】
また、各脚部６０Ｒ及び６０Ｌには、接地確認センサ９１及び９２と、加速度センサ９３及び９４がそれぞれ配設されている。接地確認センサ９１及び９２は、例えば足底に圧力センサを装着することにより構成され、床反力の有無により足底が着床したか否かを検出することができる。また、加速度センサ９３及び９４は、少なくともＸ及びＹの各軸方向に配置する。左右の足部に加速度センサ９３及び９４を配設することにより、ＺＭＰ位置に最も近い足部で直接ＺＭＰ方程式を組み立てることができる。図３３中では、左右の足首に、足平における加速度を計測するセンサＡ２及びＡ２と、足平の姿勢を計測するジャイロ・センサＧ２及びＧ３がそれぞれ配設されている。また、左右の足底の四隅に、接地並びに床反力を計測する力センサＦ１〜Ｆ４、Ｆ５〜Ｆ８が配設されている。
【０２３９】
ここで、質量操作量が大きな部位である腰部４１にのみ加速度センサを配置した場合、腰部４１のみが制御対象点に設定され、足部の状態は、この制御対象点の計算結果を基に相対的に算出しなければならず、足部と路面との間では以下の条件を満たすことが、前提となってしまう。
【０２４０】
（１）路面はどんな力やトルクが作用しても動くことがない。
（２）路面での並進に対する摩擦係数は充分に大きく、滑りが生じない。
【０２４１】
これに対し、本実施形態では、路面との接触部位である足部にＺＭＰと力を直接する反力センサ・システム（床反力センサなど）を配備するとともに、制御に用いるローカル座標とその座標を直接的に計測するための加速度センサを配設する。この結果、ＺＭＰ位置に最も近い足部で直接的にＺＭＰ釣合い方程式を組み立てることができる。したがって、より厳密な姿勢安定化制御を高速で実現することができる。この結果、力やトルクが作用すると路面が動いてしまう砂利上や毛足の長い絨毯上や、並進の摩擦係数が充分に確保できずに滑りが生じ易い住居のタイルなどであっても、ロボット装置の安定歩行（運動）を保証することができる。
【０２４２】
主制御部８０は、各センサＡ１〜Ａ３、Ｇ１〜Ｇ３、Ｆ１〜Ｆ８の出力に応答して制御目標をダイナミックに補正することができる。より具体的には、副制御部３５、４５、５５、６５の各々に対して適応的な制御を行ない、ロボット装置１００の上肢、体幹、及び下肢が協調して駆動する全身運動パターンを実現する。
【０２４３】
ロボット装置１００の全身運動は、足部運動、ＺＭＰ軌道、体幹運動、上肢運動、腰部高さなどを設定するとともに、これらの設定内容に従った動作を指示するコマンドを各副制御部３５、４５、５５、６５に転送する。そして、各々の副制御部３５、４５…では、主制御部８１からの受信コマンドを解釈して、各アクチュエータＭ1、Ｍ2、Ｍ3…に対して駆動制御信号を出力する。ここで言う「ＺＭＰ」とは、歩行中の床反力によるモーメントがゼロとなる床面上の点のことであり、また、「ＺＭＰ軌道」とは、例えばロボット１００の歩行動作期間中にＺＭＰが動く軌跡を意味する。
【０２４４】
脚式移動ロボットは、ＺＭＰを歩行の安定度判別の規範として用いることができる。ＺＭＰによる安定度判別規範は、系が適切なＺＭＰ空間を形成し、支持多角形の内側にＺＭＰがある場合は、系に回転運動や並進運動が発生せず、回転や並進に関する運動方程式を解く必要がない。これに対し、支持多角形の内側にＺＭＰがない場合や、外界に対する支持作用点が存在しない場合は、ＺＭＰ方程式に代えて、運動方程式を解く必要がある。例えば、ジャンプしたときや高台から飛び降りたときなど離床時には支持多角形が存在しないので、ＺＭＰ方程式に代えて運動方程式を解くようにすればよい。
【０２４５】
ＺＭＰ方程式は、目標ＺＭＰ上での各モーメントの釣合い関係を記述したものである。本実施形態に係る制御システムでは、ロボット装置に関するマスプロパティ（すなわち質量の分布情報）を持ち、ロボット装置を多数の質点ｍiで表している。そして、これらの質点ｍiを制御対象点とした場合、すべての制御対象点ｍiにおいて発生する目標ＺＭＰ上でのモーメントの総和がゼロとなる各制御点の軌道を求める式がＺＭＰ釣合い方程式である。
【０２４６】
世界座標系で記述されたＺＭＰ釣合い方程式は以下の通りとなる。
【０２４７】
【数１２】
2006000954.tif 000016
【０２４８】
また、ロボット装置のローカル座標系で記述されたＺＭＰ釣合い方程式は以下の通りとなる。
【０２４９】
【数１３】
2006000954.tif 000017
【０２５０】
上記の各式は、各質点（又は制御対象点）ｍiにおいて印加された加速度成分により生成されるＺＭＰ回り（半径ｒi−Ｐzmp）のモーメントの総和と、印加されたｊ番目の外力モーメントＭjの総和と、外力Ｆkにより生成されるＺＭＰ回り（ｋ番目の外力Ｆkの作用点をＳkとする）のモーメントの総和が釣り合うということを記述している。
【０２５１】
このＺＭＰ釣合い方程式は、目標ＺＭＰにおける床反力モーメント（モーメント・エラー成分）Ｔを含んでいる。このモーメント・エラーをゼロ又は所定の許容範囲内に抑えることによって、ロボット装置の姿勢安定性が維持される。言い換えれば、モーメント・エラーをゼロ又は許容値以下となるように運動（足部運動や上半身の各部位の軌道など）を修正することが、ＺＭＰを安定度判別規範とした姿勢安定化制御の本質である。
【０２５２】
上述したように、路面との接触部位である足部足底に加速度センサを設けている場合には、世界座標系に対する実ロボットのローカル座標系を設定し、その原点としての足部足底を求め、ＺＭＰ釣合い方程式を直接的に導き出すことができる。さらに、腰部４１を始めとして質量操作量が大きな制御対象点にも加速度センサを配置することで、これら制御対象点毎のＺＭＰ回りのモーメント量を、加速度センサ出力値を用いて直接的に導き出すことができる。
【０２５３】
ここで、制御対象としての実ロボットは移動体装置であることから、各制御対象点における世界座標上の位置ベクトルを求めることは難しい。その代案として、ローカル座標上における制御対象点の位置ベクトルは、逆キネマティクス演算など比較的容易な計算方法により求まる。そこで、ロボット装置のローカル座標系で記述された後者のＺＭＰ釣合い方程式を用いて実際の姿勢安定化処理を行なうようにすればよい。（ＺＭＰ軌道を正確に世界座標系で計測することがロボットに搭載された状態検出器では困難であることから、一般には、世界座標系に固定された外部計測器が必要となり、ロボット単体での行動（歩行など）が不可能となる。これに対し、接地部に荷重センサＦ１〜Ｆ８を配置してＺＭＰ軌道を計測することにより、ローカル座標でＺＭＰ軌道を正確且つ直接的に得ることができる。且つ、ローカル座標原点付近に加速度センサを配置することにより、高速運動において支配的となる情報を直接的に計測することができる。このような理由により、本実施形態では、ローカル座標系でのＺＭＰ釣合い方程式を用いている。）
【０２５４】
なお、ロボット装置１００は、腰部位置に重心が設定されており、姿勢安定制御の重要な制御対象点であるとともに、装置の「基体」を構成する。
【産業上の利用可能性】
【０２５５】
以上、特定の実施例を参照しながら、本発明について詳解してきた。しかしながら、本発明の要旨を逸脱しない範囲で当業者が該実施例の修正や代用を成し得ることは自明である。
【０２５６】
本発明の要旨は、必ずしも「ロボット」と称される製品には限定されない。すなわち、電気的若しくは磁気的な作用を用いて人間の動作に似せた運動を行なう機械装置であるならば、例えば玩具等のような他の産業分野に属する製品であっても、同様に本発明を適用することができる。
【０２５７】
要するに、例示という形態で本発明を開示してきたのであり、本明細書の記載内容を限定的に解釈するべきではない。本発明の要旨を判断するためには、冒頭に記載した特許請求の範囲の欄を参酌すべきである。
【図面の簡単な説明】
【０２５８】
【図１】図１は、本発明の一実施形態に係るマルチロボット・システムの概要を示した図である。
【図２】図２は、舞台上のマルチロボットをその上方からカメラが捉えている様子を示した舞台の側面図である。
【図３】図３は、舞台上方のカメラから捉えたマルチロボット環境下の舞台の鳥瞰図を示した図である。
【図４】図４は、指示動作例を示した図である。
【図５】図５は、動作計画の構成例を示した図である。
【図６】図６は、動作計画の構成例を示した図である。
【図７】図７は、シナリオの構成例を示した図である。
【図８】図８は、複数のシナリオを連結した構成例を示した図である。
【図９】図９は、ロボット間、並びにロボットと統括コントローラ間で時刻同期をとるための仕組みを説明するための図である。
【図１０】図１０は、ロボット間、並びにロボットと統括コントローラ間で時刻同期をとるための仕組みを説明するための図である。
【図１１】図１１は、統括コントローラが提供するマルチロボット運用ＧＵＩ画面の構成例を示した図である。
【図１２】図１２は、干渉領域の確認画面の構成例を示した図である。
【図１３】図１３は、ロボットの転倒方向に制限を課する処理手順を示したフローチャートである。
【図１４】図１４は、偏差推定画面の構成例を示した図である。
【図１５】図１５は、位置と方向の偏差を推定するための処理手順を示したフローチャートである。
【図１６】図１６は、Ｚ軸を時間軸においた歩の軌道表示を説明するための図である。
【図１７】図１７は、Ｚ軸を時間軸においた歩の軌道表示を説明するための図である。
【図１８】図１８は、Ｚ軸を時間軸においた歩の軌道表示を説明するための図である。
【図１９】図１９は、マルチロボット・システムにおけるロボットの位置及び方向の監視メカニズムを説明するための図である。
【図２０】図２０は、マルチロボット・システムにおけるロボットの位置及び方向の監視メカニズムを説明するための図である。
【図２１】図２１は、統括コントローラがモニタ・システムから、ある時刻におけるロボットの位置及び方向に関する情報を取得するための処理手順を示したフローチャートである。
【図２２】図２２は、モニタ・システムが天井カメラの撮影画像を基に、ロボットの位置及び方向を取得し、統括コントローラへ転送するための処理手順を示したフローチャートである。
【図２３】図２３は、位置及び方向の修正計画の手順を示したフローチャートである。
【図２４】図２４は、脚の計画軌道を歩で管理している様子を示した図である。
【図２５】図２５は、図２４に示した計画軌道に対する動作計画の運用時に発生した偏差を示した図である。
【図２６】図２６は、補正計画を立てるための処理手順を示したフローチャートである。
【図２７】図２７は、補正計画の対象となる歩について補正の暫定量を導出するための処理手順を示したフローチャートである。
【図２８】図２８は、移動計画を立てるための処理手順を示したフローチャートである。
【図２９】図２９は、予備ロボット導入のための処理手順を示したフローチャートである。
【図３０】図３０は、異常レベルを判定するための処理手順を示したフローチャートである。
【図３１】図３１は、本発明の実施に供される「人間形」又は「人間型」のロボット装置１００が直立している様子を前方から眺望した様子を示した図である。
【図３２】図３２は、本発明の実施に供される「人間形」又は「人間型」のロボット装置１００が直立している様子を後方から眺望した様子を示した図である。
【図３３】図３３は、ロボット装置１００が具備する関節自由度構成を模式的に示した図である。
【図３４】図３４は、ロボット装置１００の制御システム構成を模式的に示した図である。
【符号の説明】
【０２５９】
１…首関節ヨー軸
２Ａ…第１の首関節ピッチ軸
２Ｂ…第２の首関節（頭）ピッチ軸
３…首関節ロール軸
４…肩関節ピッチ軸
５…肩関節ロール軸
６…上腕ヨー軸
７…肘関節ピッチ軸
８…手首関節ヨー軸
９…体幹ピッチ軸
１０…体幹ロール軸
１１…股関節ヨー軸
１２…股関節ピッチ軸
１３…股関節ロール軸
１４…膝関節ピッチ軸
１５…足首関節ピッチ軸
１６…足首関節ロール軸
３０…頭部ユニット，４０…体幹部ユニット，４１…腰部ユニット
５０…腕部ユニット，５１…上腕ユニット
５２…肘関節ユニット，５３…前腕ユニット
６０…脚部ユニット，６１…大腿部ユニット
６２…膝関節ユニット，６３…脛部ユニット
８０…制御ユニット，８１…主制御部
８２…周辺回路
９１，９２…接地確認センサ
９３，９４…加速度センサ
９５…姿勢センサ
９６…加速度センサ
１００…脚式移動ロボット
【図１】
2006000954.tif 000018
【図２】
2006000954.tif 000019
【図３】
2006000954.tif 000020
【図４】
2006000954.tif 000021
【図５】
2006000954.tif 000022
【図６】
2006000954.tif 000023
【図７】
2006000954.tif 000024
【図８】
2006000954.tif 000025
【図９】
2006000954.tif 000026
【図１０】
2006000954.tif 000027
【図１１】
2006000954.tif 000028
【図１２】
2006000954.tif 000029
【図１３】
2006000954.tif 000030
【図１４】
2006000954.tif 000031
【図１５】
2006000954.tif 000032
【図１６】
2006000954.tif 000033
【図１７】
2006000954.tif 000034
【図１８】
2006000954.tif 000035
【図１９】
2006000954.tif 000036
【図２０】
2006000954.tif 000037
【図２１】
2006000954.tif 000038
【図２２】
2006000954.tif 000039
【図２３】
2006000954.tif 000040
【図２４】
2006000954.tif 000041
【図２５】
2006000954.tif 000042
【図２６】
2006000954.tif 000043
【図２７】
2006000954.tif 000044
【図２８】
2006000954.tif 000045
【図２９】
2006000954.tif 000046
【図３０】
2006000954.tif 000047
【図３１】
2006000954.tif 000048
【図３２】
2006000954.tif 000049
【図３３】
2006000954.tif 000050
【図３４】
2006000954.tif 000051