(57)【特許請求の範囲】
【請求項１】
コンピュータが実現するロボットの転倒時のロボット制御方法であって、
ロボットコントローラにより、検出された前記ロボットの状態を受信するステップと、
前記検出された前記ロボットの状態に基づいて、前記ロボットの転倒が回避できないことを判定するステップと、
前記ロボットの転倒が回避できないとした判定に応じて、
前記検出された前記ロボットの状態を考慮して、前記ロボットの所定の目標身体部分が最初に地面に接触して地面と衝突させるのに望ましい前記ロボットの胴部の回転速度を、前記ロボットの前記胴部の傾斜線回りのスピン速度から決定するステップであって、前記傾斜線がロボットの質量中心および圧力中心を通る直線であるステップと、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、前記ロボットの転倒時に、前記ロボットの動きを制御する制御信号を生成するステップと、
前記ロボットの複数のアクチュエータに前記制御信号を出力し、前記所定の目標身体部位が最初に地面に接触するように、前記望ましい前記ロボットの前記胴部の前記回転速度で前記ロボットを回転させるステップと、
を備えるコンピュータにより実現されるロボットの制御方法。
【請求項２】
前記望ましい前記ロボットの前記胴部の前記回転速度の決定するステップが、
前記検出された前記ロボットの状態に基づいて、衝突させる前記目標身体部分が地面と衝突するまでの時間を推定するステップと、
固定された関節配置の下で、衝突の瞬間に前記目標身体部分が向く方向を推定するステップと、
前記推定された衝突するまでの時間と前記推定された衝突の瞬間に前記目標身体部分が向く方向とに基づいて、前記望ましい前記ロボットの前記胴部の前記傾斜線回りの前記スピン速度を決定するするステップと、
を含む請求項１に記載のコンピュータにより実現されるロボットの制御方法。
【請求項３】
さらに、前記ロボットの物理的な制約に基づいて、前記望ましい前記ロボットの前記胴部の前記傾斜線回りの前記スピン速度を許容し得る速度に調整するステップを含む、
請求項２に記載のコンピュータにより実現されるロボットの制御方法。
【請求項４】
前記制御信号を生成するステップが、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、望ましい複数の関節加速度と望ましい地面反力とを決定するステップと、
前記望ましい複数の関節加速度と前記望ましい地面反力とを得るための複数の関節トルクを決定するステップと、
前記決定した複数の関節トルクが得られるような制御信号を生成するステップと、
を含む請求項１に記載のコンピュータにより実現されるロボットの制御方法。
【請求項５】
前記制御信号は、前記ロボットに前記胴部の前記回転速度と反対の方向に回転足を回転させるものであり、かつ
前記制御信号は、前記ロボットに前記胴部を後方に曲げさせるものである、
請求項１に記載のコンピュータにより実現されるロボットの制御方法。
【請求項６】
さらに、転倒時に、前記ロボットの状態を周期的に再検出するステップと、
再検出された前記ロボットの状態に基づいて、既に決定された前記望ましい前記ロボットの前記胴部の前記回転速度を、転倒時に周期的に更新するステップと、
を含む請求項１に記載のコンピュータにより実現されるロボットの制御方法。
【請求項７】
さらに、周期的に更新された前記望ましい前記ロボットの前記胴部の前記回転速度に基づき、前記制御信号を周期的に再生成するステップであって、前記周期的に再生成された制御信号を再生成する周期が、前記望ましい前記ロボットの前記胴部の前記回転速度の更新周期よりも小さくなるステップと、
前記再検出された前記ロボットの状態に基づいて、ロボット転倒時に、前記望ましい前記ロボットの前記胴部の前記回転速度を周期的に更新するステップと、
を含む請求項６に記載のコンピュータにより実現されるロボットの制御方法。
【請求項８】
前記予め設定された目標身体部分がバックパックを含む、
請求項１に記載のコンピュータにより実現されるロボットの制御方法。
【請求項９】
コンピュータにより実現される、ロボットの転倒時の制御を行うコンピュータプログラム命令を格納するための、一時的でない読込可能なコンピュータ記憶媒体であって、
前記プログラム命令が、プロセッサによる実行時に、
ロボットコントローラにより、検出された前記ロボットの状態を受信するステップと、
前記検出された前記ロボットの状態に基づいて、前記ロボットの転倒が回避できないことを判定するステップと、
前記ロボットの転倒が回避できないとした判定に応じて、
前記検出された前記ロボットの状態を考慮して、前記ロボットの所定の目標身体部分が最初に地面に接触して地面と衝突させるのに望ましい前記ロボットの胴部の回転速度を、前記ロボットの前記胴部の傾斜線回りのスピン速度から決定するステップであって、前記傾斜線がロボットの質量中心および圧力中心を通る直線であるステップと、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、前記ロボットの転倒時に、前記ロボットの動きを制御する制御信号を生成するステップと、
前記ロボットの複数のアクチュエータに前記制御信号を出力し、前記所定の目標身体部位が最初に地面に接触するように、前記望ましい前記ロボットの前記胴部の前記回転速度で前記ロボットを回転させるステップと、
を含む複数のステップをプロセッサに実行させるコンピュータプログラム命令を格納するための、一時的でない読込可能なコンピュータ記憶媒体。
【請求項１０】
前記望ましい前記ロボットの前記胴部の前記回転速度の決定するステップが、
前記検出された前記ロボットの状態に基づいて、衝突させる前記目標身体部分が地面と衝突するまでの時間を推定するステップと、
固定された関節配置の下で、衝突の瞬間に前記目標身体部分が向く方向を推定するステップと、
前記推定された衝突するまでの時間と前記推定された衝突の瞬間に前記目標身体部分が向く方向とに基づいて、前記望ましい前記ロボットの前記胴部の前記傾斜線回りの前記スピン速度を決定するするステップと、
を含む請求項９に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１１】
さらに、前記ロボットの物理的な制約に基づいて、前記望ましい前記ロボットの前記傾斜線回りの前記スピン速度を許容し得る速度に調整するステップを含む、
請求項１０に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１２】
前記制御信号の生成が、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、望ましい複数の関節加速度と望ましい地面反力とを決定するステップと、
前記望ましい複数の関節加速度と前記望ましい地面反力とを得るための関節トルクを決定するステップと、
前記決定された関節トルクが得られるように、制御信号を生成するステップと、
を含む請求項９に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１３】
前記制御信号は、前記ロボットに前記胴部の前記回転速度と反対の方向に回転足を回転させるものであり、かつ
前記制御信号は、前記ロボットに胴部を後方向に曲げさせるものである、
請求項９に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１４】
さらに、転倒時に、前記ロボットの状態を周期的に再検出するステップと、
再検出された前記ロボットの状態に基づいて、既に決定された前記望ましい前記ロボットの前記胴部の前記回転速度を、転倒時に周期的に更新するステップと、
を含む請求項９に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１５】
さらに、周期的に更新された前記望ましい前記ロボットの前記胴部の前記回転速度に基づき、前記制御信号を周期的に再生成するステップであって、前記周期的に再生成された制御信号を再生成する周期が、前記望ましい前記ロボットの前記胴部の前記回転速度の更新周期よりも小さくなるステップと、
前記再検出された前記ロボットの状態に基づいて、ロボット転倒時に、前記望ましい前記ロボットの前記胴部の前記回転速度を周期的に更新するステップと、
を含む請求項１４に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１６】
前記予め設定された目標身体部分がバックパックを含む、
請求項９に記載の一時的でない読込可能なコンピュータ記憶媒体。
【請求項１７】
ロボットの転倒時に、前記ロボットを制御するためのロボットコントローラであって、
前記ロボットの状態を検出・決定する複数のセンサと、
前記複数のセンサから検出された前記ロボットの状態を受信し、前記検出された前記ロボットの状態に基づいて、前記ロボットの転倒が回避できないことを判定するハイレベルコントローラと、
前記ロボットの転倒が回避できないとした判定に応答して、ロボットの動きを制御する転倒コントローラと、からなり、
前記転倒コントローラが、
前記検出された前記ロボットの状態に基づいて、前記ロボットの転倒が回避できないことを判定するステップと、
前記ロボットの転倒が回避できないとした判定に応じて、
前記検出された前記ロボットの状態を考慮して、前記ロボットの所定の目標身体部分が最初に地面に接触して地面と衝突させるのに望ましい前記ロボットの胴部の回転速度を、前記ロボットの前記胴部の傾斜線回りのスピン速度から決定するステップであって、前記傾斜線がロボットの質量中心および圧力中心を通る直線であるステップと、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、前記ロボットの転倒時に、前記ロボットの動きを制御する制御信号を生成するステップと、
前記ロボットの複数のアクチュエータに前記制御信号を出力し、前記所定の目標身体部位が最初に地面に接触するように、前記望ましい前記ロボットの前記胴部の前記回転速度で前記ロボットを回転させるステップと、
を実行するロボットコントローラ。
【請求項１８】
前記転倒コントローラが、
前記検出された前記ロボットの状態に基づいて、衝突させる前記目標身体部分が地面と衝突するまでの時間を推定するステップと、
固定された関節配置の下で、衝突の瞬間に前記目標身体部分が向く方向を推定するステップと、
前記推定された衝突するまでの時間と前記推定された衝突の瞬間に前記目標身体部分が向く方向とに基づいて、前記望ましい前記ロボットの前記傾斜線回りの前記スピン速度を決定するするステップと、
を実行する請求項１７に記載のロボットコントローラ。
【請求項１９】
前記転倒コントローラが、
さらに、前記ロボットの物理的な制約に基づいて、前記望ましい前記ロボットの前記傾斜線回りの前記スピン速度を許容し得る速度に調整するステップを実行する、
請求項１８に記載のロボットコントローラ。
【請求項２０】
前記転倒コントローラが、
前記望ましい前記ロボットの前記胴部の前記回転速度に基づいて、望ましい複数の関節加速度と望ましい地面反力とを決定するステップと、
前記望ましい複数の関節加速度と前記望ましい地面反力とを得るための関節トルクを決定するステップと、
前記決定された関節トルクが得られるように、制御信号を生成するステップと、
を実行する請求項１９に記載のロボットコントローラ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、二脚ロボット工学、具体的には、転倒による人型ロボットの損傷の低減に関する。
【背景技術】
【０００２】
人型ロボットあるいは他の脚付ロボットは、現在、管理された実験室環境において操作されている。
しかし、人型ロボットが自由に移動し、人や物を含む周囲の環境と、物理的に相互作用するためには、安全かつロバストな操作を行う問題が主要関心事となるだろう。
物理的相互作用のある人間環境において、人型ロボットの安全・円滑な操作にとって、あるいは周囲の環境の人や物の安全性に対して、悲惨な転倒は大きな脅威である。
人型ロボットに上記のような転倒を避ける対処が施されているが、転倒を避けることができない場合がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
これらの事例において、自身の損傷と、他者に与える被害を最小にする包括的な転倒管理戦略が、人型ロボットに備えられることが望まれている。
しかし、従来の人型ロボット技術において、現在でも、転倒制御は見過ごされている。
【課題を解決するための手段】
【０００４】
本発明の第一の実施形態は、コンピュータにより実現されるロボット転倒時の制御方法である。
まず、ロボットの状態が検出される。この検出された状態に基づいて、ロボットの転倒が回避できないことを判断する。ロボットの転倒が回避できないと判断した場合、ロボットが所定の目標身体部分に接地させて衝撃を受けるように、ロボットの所望の回転速度を決定する。
この所望の回転速度に基づいて、ロボット転倒時にロボットの動きを制御する制御信号を生成する。この制御信号は、複数のアクチュエータに制御信号を出力される。
【０００５】
他の実施形態の一つは、プランニング段階の間に、所望の回転速度が決定される。この段階では、ロボット・コントローラが、検出されたロボットの状態に基づいて、接地する目標身体部分が衝撃を受けるまでの時間を推定する。
また、転倒時にロボットの関節が固定された条件の下で、衝撃の瞬間の目標身体部分の方向を推定する。
所望の回転速度は、推定された衝撃の瞬間までの時間と推定された方向とに基づいて、決定される。
【０００６】
他の実施形態の一つは、制御信号の生成が、所望の回転速度に基づいて、所望の複数の関節加速度と所望の地面反力とを決定し、
所望の複数の関節加速度と前記の所望の地面反力とを得るための関節トルクを決定し、
決定した関節トルクが得られるような制御信号を生成する。
【０００７】
明細書で記載された特徴や利点は、全てを言いつくしたものではない。特に、付加的な特徴や利点の多くは、図、明細書、特許請求の範囲から考えれば、当業者なら明白なものである。また、明細書を記載した言語は、読み易さと教育目的で選択されたものであり、発明内容の表現、描写の観点から選択されたものではない。
【０００８】
本発明の実施形態は、以下の発明の詳細な説明と、対応する図面とから考えることで、容易に理解できる。
【図面の簡単な説明】
【０００９】
【図１】図１（ａ）は、本発明の実施の人型ロボットの立姿を示す。図１（ｂ）は、本発明の実施形態の人型ロボットが転倒後に接地する様を示す。
【図２】図２（ａ）は、本発明の実施形態の回転脚を用いた運動量の制御テクニックを示す。図２（ｂ）は、本発明の実施形態の人型ロボットが、バックパックが接地しやすいように背中を後方向に反らせる制御テクニックを示す。
【図３】図３は、本発明の実施形態のロボット・コントローラのブロック・ダイアグラムを示す。
【図４】図４は、本発明の実施形態の転倒コントローラを示すブロック・ダイアグラムである。
【図５】図５は、本発明の実施形態の、転倒時のロボットの動きを制御するプランニング段階を示すフローチャートである。
【図６】図６は、本発明の実施形態の、ロボットのスピン座標系を示すダイアグラムである。
【図７】図７は、本発明の実施形態の、ロボット転倒の動きモデルを示すダイアグラムである。
【図８】図８は、本発明の実施形態の、ロボットの転倒制御の背面を反らす戦略を示すダイアグラムである。
【図９】図９は、本発明の実施形態の、転倒時のロボットの動きを制御する実行段階を示すフローチャートである。
【図１０】図１０は、本発明の実施形態で、ロボットを押した後の転倒の軌跡を示すダイアグラムである。
【発明を実施するための形態】
【００１０】
発明の実施形態を、図面を参照して説明する。ここで、参照番号は同一の、あるいは、機能的に類似した要素を示す。また、図において、各参照番号の最も左の数字は、その参照番号が最も早く使用された図番と一致する。
【００１１】
明細書において「一つの実施形態」あるいは「ある実施形態」を参照することは、固有な特徴、構造、あるいは、実施形態と関連して述べられている特色が、少なくても一つの実施形態には含まれることを意味する。明細書中に「一つの実施形態において」あるいは「ある実施形態において」というフレーズが多く現れたら、同じ実施形態に必ずしも全て言及する必要はない。
【００１２】
以下のような発明の詳細な説明のある部分では、アルゴリズムやコンピュータメモリ内データ・ビットの命令記号で表現されている。
これらのアルゴリズム的な記述・表現は、データ処理分野の当業者が他の当業者に発明の実質を伝える最も効率的な手段である。
ここでアルゴリズムは、一般的に、所望の結果を導く、首尾一貫したステップ（命令）の列である。
命令は、物理量の物理的操作を要求するものである。一般に、必要ではないが、これらの量は、電気的、磁気的、光学的な信号の形を取り、記憶、移動、結合、比較、他の操作がなされる。
これらは、時として、一般的に用いられるという理由が主ではあるが、ビット、変数、要素、シンボル、文字、語句、数、などのような信号に言及することが便利である。
また、時として、一般性を失うことなく、物理的な操作、物理量の変換、物理量の表示などの、ある一群のステップの配置に言及することが便利である。
【００１３】
しかし、これらや同様の語句の全ては、適切な物理量と関連付けられており、これらの量に適用される便利なラベルに過ぎない。
次の議論から明らかなように、特に他に述べられていない限りは、「処理すること」、「演算すること」、「計算すること」、「決定すること」、「表示すること」、他、それに類する語句を用いて、メモリやレジスタ内で、物理（電気）量として表現されるデータを操作・変換するコンピュータ・システムや同様の電子計算装置（例えば、特定用途の計算機など）の作用や処理に言及することが適当である。
【００１４】
実施形態のある様相では、複数の処理手順や複数の命令が、ここでは、アルゴリズムの形で述べられている。前記の実施形態の複数の処理手順や複数の命令は、ソフトウェア、ファームウェア、あるいは、ハードウェアで実施できる。ソフトウェアで実施する場合、前記の複数の処理手順や命令は、様々なオペレーティング・システムによって使用される異なったプラットフォームにダウンロードされ、このプラットフォームから操作することができる。
【００１５】
この実施形態は、ここでの操作を実行する装置と関連している。この装置は、特に、目的に応じて、例えば、特定用途向けのコンピュータ、あるいは、選択的に機能させるか、コンピュータ内に格納されたコンピュータ・プログラムで再設定される汎用コンピュータを含む。コンピュータ・プログラムのようなものは、例えば（これらに制約されるものではないが）フロッピー（登録商標）・ディスク、光学ディスク、ＣＤ−ＲＯＭ、光磁気ディスクを含む各種のディスク、読出専用メモリ（ＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、消去プログラム可能読出専用メモリ（ＥＰＲＯＭ）、電気的消去プログラム可能読出専用メモリ（ＥＥＰＲＯＭ）、磁気または光学カード、ＡＳＩＣ（特定用途集積回路）、あるいは、各種の電気命令を格納するのに適したメディア、であり、これらはコンピュータのシステムバスと結合している。このメモリ／記憶素子は、一時的あるいは永久的なものが使用できる。メモリは、上記の、かつ／または他の情報・データ・プログラムを格納することが可能なデバイスを含む。さらに、この明細書で言及しているコンピュータは、単一プロセッサでも良いし、計算性能を向上させるためのマルチ・プロセッサ構成を採用してもよい。
【００１６】
ここで提示されているアルゴリズムやディスプレーは、本質的に、特定のコンピュータや装置とは何れも関係ない。
多くの汎用システムが、ここで示された教示に従ってプログラムを使用できる。
あるいは、この方法の手順を実行するために、より特化した装置を構成することが便利であることがわかるであろう。
これらのシステムの多様な構成は、以下の記載に表れている。さらに、この実施形態は特定のプログラム言語と関連して記載されたものではない。数多くのプログラム言語が、ここで述べられた実施形態の教示を実現するために使用され、以下のような特定の言語に対する言及は、使用可能性及びベストモードを開示するために用意されたものであることは、十分に理解されるべきことである。
【００１７】
さらに、明細書で使用されるプログラム言語は、第一義的に読み易く、説明目的により選択されたものであり、発明内容を描写し、あるいは、拘束するものではない。従って、この実施形態の開示は実施形態の内容を説明するためのものであり、しかし、制限するものではなく、これによりクレームが説明されるものである。
［概要］
【００１８】
このロボット・コントローラは、回避不可能な転倒をする場合、ロボットの損傷を最小にするように、ロボットの動きを制御するものである。このロボット・コントローラは、所定の目標身体部分を接地させて衝撃を受けるように、転倒する間にロボットを所望の方向に向けるような制御戦略を採用している。所定の目標身体部分は、ロボットに対する損傷が最小となるような部分として選択される。例えば、所定の目標身体部分は、転倒の衝撃を吸収するために設計された衝撃吸収部材とする。
さらに、所定の目標身体部分は、ロボットにとって最も重要かつ高価な部品の損傷を最小とするように、これらの部品と実質的に隔絶されているように設計できる。
【００１９】
一般に、ここで述べられている制御の枠組みは、異なった枝節を動的に結合させることによって、ロボットが任意の目標身体部分から転倒するようにする。しかし、例えば、特定の実施形態では、ロボット・コントローラがロボットの背負うバックパックから転倒するように説明されている。あるいは、他の考えられる転倒戦略として、ロボットの肘、手、膝、臀部、から転倒するものも含まれる。
【００２０】
図１（ａ）、（ｂ）は、周囲より突き出した格好のバックパックを備えた人型ロボットの例を示す。
図１（ａ）は、背中にしっかり固定したバックパックを示す。この設計と３次元の輪郭から考えて、ロボットが転倒したならば、バックパックは地面に接触する可能性が高いであろう。
従って、このバックパックを、他の部分に衝撃が伝搬する効果を抑えるように、適切に設計することができる。例えば、落下の衝撃を吸収する衝撃抵抗性内部フレームを備えるように設計することができる。
【００２１】
図１（ｂ）は、ロボットがバックパックから転倒するような、所望の転倒戦略を示す。ここで述べたように、ロボット・コントローラは、ロボットが異なった方向に転倒し始めたときであっても（例えば、横に転倒しても）、ロボット・コントローラは、ロボットがバックパックから転倒するように制御する。
［転倒制御の枠組み］
【００２２】
転倒中のロボットの制御目標は、二つの部分に分けて考えられる。
第一に、足を除いてた他の全ての身体部分が、接地するときに地面より上になることを保証する。
第二に、接地するとき、バックパックが地面を向くように、胴体の向きを設定する。
第一の目標は、バックパックが最初に地面に接地し、邪魔にならない所に腕を保持することが主要な意味である。
この目標を達成するためには、ロボットが自然な形で骨盤の前面に手を置くデフォルト姿勢となるように腕を操作しなければならない。
これは、ロボットが衝撃を受けたとき、腕が地面の上にあることを保証する。
【００２３】
第二の目標を達成するためには、接地するときにロボットが所望の方向を向くように、転倒中のロボットの動きが制御される。
ロボットがバックパックから接地するように、胴部を所望の方向に向けさせるために、ロボットは転倒するロボットの身体部分の動的結合を考慮する。
例えば、ロボットの別の部分を動かすことにより、ロボットは間接的に胴部の向く方向を制御する。
【００２４】
図２（ａ）、２（ｂ）は、転倒時にロボット自身により所望の方向を向くための二つの型の動きが示されている。
第一は、図２（ａ）において、ロボットはロボットの旋回足を回転させて、胴部の抗回転を試みている。
第二は、図２（ｂ）において、バックパックが接地する確率を増加させるように、転倒時に胴部を後ろ側に反らせている。
【００２５】
図２（ａ）、２（ｂ）に示されるように、典型的な横転の間に、ロボットの一方の足を床に接地させ（ロボットが回転する際の軸足になる）、他方は自由である（軸足の回りを回転できる）。
以下、前者を支持足（例えば、支持足２０２）、後者を回転足（例えば、回転足２０４）と呼ぶ。
図２（ａ）に示されるように、回転している回転足２０４の慣性効果を使って、胴部の方向を間接的に制御できる。
ここで、ロボットの「傾斜線２０６」は、圧力中心（ＣｏＰ）Ｐと質量中心（ＣｏＭ）Ｇを結んだ線である。
ロボットが転倒しているとき、もし、支持足２０２と地面が一点で接触しているようにモデル化し、支持足２０２と地面との間に働く回転摩擦力を０と近似できるならば、地面反力（ＧＲＦ）と重力は、単にロボットに対して働く外力となる。
これら全ての外力は、傾斜線２０６からのモーメント・アームが０となるため、転倒するロボットの傾斜線２０６の回りの角運動量は保存される。この挙動は回転体のスピン軸の回りの角運動量が回転体の頂上部で保存されることに似ている。
転倒する人型ロボットは、あまり大きな量のスピン軸の回りの角速度が得られることを期待できない。
従って、高速スピンする頂上部で観測されるプレセッション効果は、ここでは無視することができる。
従って、傾斜線２０６の回りの胴部の角速度の変化は、他の身体部分が反対方向に回転することによって得られる。
一方で、接地することで、他の方向の角運動量は保存されず変化する。
【００２６】
傾斜線２０６は、スピン軸として重要な役割を担う。
重力とＧＲＦは、スピン軸と交差し、スピン軸の回りのトルクを発生させないために、角運動量に関して、対応する部品は保存する。これは傾斜線２０６における胴部のスピン角を、他の部材の、例えば回転足２０４の、回転によって制御できることを意味する。
しかし、旋回足の回転は関節制限によって制約されるため、この手段によるだけでは、常にロボットの胴部を所望の方向に向けられるとは限らない。
バックパックから接地するように転倒する機会を増やすために、図２（ｂ）に示すように、胴部を後ろに反らせる付加的なヒューリスティック手法も適用している。
これらの転倒戦略を、さらに詳しく以下で述べる。
【００２７】
図３は、ロボットの動きを制御するためのロボット・コントローラ３００の実施形態を示したブロック・ダイアグラムである。
ある実施形態において、ロボットは、人間のような関節構造（例えば、各足６自由度）と全質量（例えば、４０〜６０ｋｇ）を持つ。
他の実施形態において、ロボットは、さらに二本以上足が多い脚付ロボット（例えば、四本足、六本足など）でもよいし、または、人型が要求されない二足ロボット（例えば、鳥型ロボット、あるいは、上半身がないロボットなど）でもよい。
ロボット・コントローラ３００は、ロボットの所望の動きを特定する動作制御入力信号３０２を受信する。
動作制御入力信号３０２は、例えば、ロボットに対しての一般命令（例えば、左に１０フィート歩け、階段を降りろ、まだ立っていろ、等々）から引き出せる。
ある状況では、動作制御入力信号３０２は、ロボットが動かずにいるべき（すなわち、目標角運動量と質量中心（ＣｏＭ）の速度が０）ことを示す。
ロボット・コントローラは、また、ロボットの様々なセンサからのセンサ情報３０６を受信する。
例えば、センサ情報３０６は、（１）胴部の位置や方向、その線形及び角速度、（２）ＣｏＰの位置に関する情報、（３）ロボットの様々な関節の接合の角かつ／または速度、に関連する情報を含む。
これらの値は、例えば、ジャイロスコープ（姿勢制御装置）、アクセレロメータ（加速度計）、ジョイントエンコーダ（関節トルクセンサ）、のようなロボットの各センサから計測あるいは計算できる。
ロボットの所望の動きと検知された状態に基づき、ロボット・コントローラ３００は、ロボットを動かす関節アクチュエータ３５０を制御する制御出力信号３０４を生成する。
ある実施形態において、制御出力信号３０４は、各アクチュエータがロボットの関節の各々に適用するトルクを示す関節トルクのベクトルを含む。
【００２８】
ロボット・コントローラ３００は、押されるなど外乱に応答する場合であっても、動作制御入力信号３０２で特定される所望の動きを実行するように、ロボット制御するように試みる（じっとして動かなくともよい）。
ある事例において、ロボットのバランス上の制約と物理的制約から、特に外乱が起きたときに、動作制御入力信号３０２で特定される所望の動きを達成できないことがある。
この場合、ロボットがバランスを保つことを許容と同時に、動作制御入力信号３０２によって特定される動きに最適に近い許容しうる動きを行う。
例えば、ロボットが押されたとき、ロボットはその姿勢を変化させるか、バランスを保つために一歩踏み出すことができる。
ロボットがバランスを保つ他の行動を取れない場合、ロボット・コントローラ３００は取り得る最も安全な方法で（例えば、予め衝撃を受け止めるように設計された身体部分が接地するようにロボットを制御することで）ロボットを転倒させることを試みる。
【００２９】
ある実施形態では、ロボット・コントローラ３００は、プロセッサ３２０とメモリ３１０を含む。
プロセッサ３２０はデータ信号を処理し、例えば、複合命令セット計算機（ＣＩＳＣ）アーキテクチャ、縮小命令セット計算機（ＲＩＳＣ）アーキテクチャ、あるいは、これらの命令セットを組み合わせて実現したアーキテクチャなど、様々なコンピューティング・アーキテクチャを含む。
シングル・プロセッサ３２０だけが図３に示されているが、マルチ・プロセッサも含まれる。
プロセッサ３２０は、計算論理ユニット、マイクロ・プロセッサ、汎用コンピュータ、あるいは、メモリ３１０あるいは外部入力からの電気的データ信号を、受信し、伝送し、処理することのできる他の情報機器を含む。
【００３０】
メモリ３１０は、計算機実行可能命令、及び、計算機読出可能データを記憶できる計算機読出可能記憶媒体を含む。命令は、ここで述べられている任意かつ／または全ての技術を実行するためのコードを含む。
メモリ３１０は、ロボット・コントローラ３００に入力されたデータ（例えば、動作制御入力信号３０２かつ／またはセンサ情報３０６）、ロボット・コントローラ３００により出力されるデータ（例えば、制御出力信号３０４）、ここで述べられたロボット・コントローラ３００の処理手順を実行するために使われる任意の中間データを、一時的または持続的にさらに記憶する。
メモリ３１０は、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）デバイス、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）デバイス、フラッシュ・ＲＡＭ（不揮発記憶）、これらの組合せ、あるいは当技術で知られている他のメモリ・デバイスである。
プロセッサ３２０は、ここで述べられた処理手順を実行するために、コンピュータ実行可能命令かつ／またはデータをロードする。
【００３１】
ある実施形態において、メモリ３１０は、ハイレベル・コントローラ３１６、バランス・コントローラ３１２、転倒コントローラ３１８として実施されているコンピュータ実行可能命令を記憶する。
ハイレベル・コントローラ３１６は、ロボットの動作制御を、バランス・コントローラ３１２、転倒コントローラ３１８、の何れによって制御するかを決定する。
一般に、ハイレベル・コントローラ３１６は、ロボットのバランスが維持できると判断したときに、バランス・コントローラ３１２に制御を渡す。
例えば、ハイレベル・コントローラ３１６は、動作制御入力信号３０２によって特定される動作を達成できるとき、あるいは、異なる行動によってバランスを保持するときに、バランス・コントローラ３１２に制御を渡す。
ある実施形態においては、バランス・コントローラ３１２は、運動量に基づいてロボット制御させうるコントローラであって、ロボットの物理的制約の範囲内で作用し、ロボットがバランスを保つことを保証すると同時に、ロボットの所望の動作にできるだけ近い許容し得る動作を達成させる。例えば、バランス・コントローラ３１２は、押される等の外乱に応答してバランスを保つために、ロボットに姿勢を変えさせるか一歩踏み出させる。
ハイレベル・コントローラ３１６は、バランスを保つバランス・コントローラ３１２の努力にもかかわらず転倒が不可避であることを検出したとき、転倒コントローラ３１８にロボット制御をさせる。
例えば、ある実施形態においては、ハイレベル・コントローラ３１６は、傾斜線と地面の垂線方向とのなす角が一定の閾値（例えば、１５度）を超えたとき、転倒コントローラ３１８にロボット制御させる。
転倒コントローラ３１８は、ロボットが所望の目標身体部分（例えば、バックパック）から転倒するように、転倒する間にロボットの向きを変えるため、手足を動的に結合してロボットの各手足の各運動量を再配分する
【００３２】
ロボット・コントローラ３００は、本発明の内容から離れることなく、図３に示された部品以上または以下の部品から構成することができる。例えば、コンピュータ・システム３００は、例えば、一次または二次キャッシュのような付加的メモリ、または、一つ以上の特定用途向けＩＣ（ＡＳＩＣ）を含むことができる。
他の実施形態として、ロボット・コントローラ３００全体を、ハードウェアで実現することができる。
【００３３】
図４には、ロボットに使用するための転倒コントローラ３１８の実施形態を示す。転倒コントローラ３１８は、計画コントローラ４０２と実行コントローラ４０４を含む。切迫かつ不可避な転倒をロボットが検知したとき、計画コントローラ４０２は先ずどのように転倒するかを計画する。
特に、どのようにして、ロボットに、パックパックで地面からの衝撃を受けさせるかを決定するために、計画コントローラ４０２はロボット状態信号４１４の情報を（例えば、ロボット状態メモリ４１２から）受信し、現在のロボット状態４１４が与えられると、所望の転倒軌跡を達成できるように、胴部の回転速度を決定する。
ある実施形態では、計画コントローラ４０２は、ロボットが転倒する間に胴部の所望の回転速度を更新するために、転倒中に周期的に（例えば、５０〜１００ｍｓ毎に）プランニング手順を実行する。
実行コントローラ４０４は、ロボットの現在の状態に基づき、周期的に回転速度４０６を実現する関節加速度とトルクを決定し、この決定された関節加速度とトルクを達成するため、ロボット本体４１０のアクチュエータを制御する制御出力信号３０４を提供する。
ある実施形態において、制御出力信号３０４を再決定する迄の期間を、実質的に、回転速度４０６より短くしている。ロボット状態記憶４１２は、例えば、胴部の位置と方向、その線形・角速度、関節角と速度、ＣｏＭやＣｏＰの情報など、ロボットの位置的かつ／または動的な状態を記述する様々なパラメータを格納する。
ある実施形態においては、ロボット状態記憶４１２は、ロボット本体のセンサから受信されたセンサ情報３０６に基づいて、周期的に、更新される（例えば、実行コントローラ４０４の実行期間に１回）。
［転倒制御のプランニング段階］
【００３４】
図５は、プランニング・コントローラ４０２によって実行されるプランニング段階の、ある実施形態を示す。ロボット・コントローラ３００が、転倒が不可避であって、ロボット制御が転倒コントローラ３１８に任されたことを検知したら、プランニング段階が実行される。
プランニング段階の間は、プランニング・コントローラ４０２が、ロボットの状態情報５０２（例えば、関節角かつ／または速度）を受信する。
プランニング・コントローラ４０２は、関節が固定されていることを（すなわち、制御の行動が取られなかった場合の転倒の仕方を）仮定したときに、目標身体部分（例えば、バックパック）が地面と衝突する迄の時間を予測し（５０４）、目標身体部分（例えば、バックパック）の向く方向を予測する（５０６）。
これらの予測と現在の状態が与えられたなら、プランニング・コントローラ４０２は、所望の目標身体部分を地面に衝突させる制御目標を達成する所望の回転速度を決定する。
ロボットの物理的な制約によって、所望の回転速度が常に達成できるとは限らない。
それゆえに、プランニング・コントローラ４０２は、ロボットが現実に達成し得る許容し得る値に、所望の回転速度を調整する（５１０）。
例えば、ある実施形態では、プランニング・コントローラ４０２は、所望の回転速度に最も近い許容回転速度を決定する。
ここで所望の回転速度とは、異なる複数の回転軸（例えば、矢状軸、前額軸、垂直軸、など）についての複数の回転速度のベクトルで記述されることに留意すべきである。
ある実施形態では、転倒時にこのプランニング段階を複数回（例えば、周期的に）実行して、更新された推定を得て、計算されたこれらの推定を出力する。
【００３５】
この推定を得るためには、ロボットのスピン座標系が定義され、ロボットの重心のダイナミクスが、この基準座標系との関係で記述される。
図６は、前額、曲げ、回転に対応した各々の軸｛ｔ，ｂ，ｓ｝によって定義された質量中心（ＣｏＭ）（Ｇ）に位置するロボットのスピン座標系を示す。このスピン軸ｓは傾斜線ＧＰと一致する。前額軸ｔはｓに対して垂直な平面と胴部の矢状面との交差線により与えられる。胴部曲げ方向は、ｓ×ｔによって与えられる。ロボットの角運動量を重心に射影したものである重心角運動量ｋと、一般化速度ベクトルｑ・とは、次のような線形関係がある。
【数１】
0005897105.tif 000002
ここで、ｋは３×１ベクトル、ｎ関節を持つロボットに対して、ｑ・∈ Ｒn+6 は、一般化速度ベクトルであり、Ｋ ∈ Ｒ3×(n+6) は、一般化速度ベクトルを、角運動量に変換する。
Ｋは、ｋが質量中心（ＣｏＭ）の回りの角運動量を表す場合、重心運動量行列と呼ばれる。
着目した結合物（例えば、胴部）の動きを引き出すため、ｑ・＝（ω，ν，θ・）は、胴部の角速度と線形速度（ω，ν）と、関節速度ベクトルθ・∈ Ｒn に分割される。
式１は、次のように展開できる。
【数２】
0005897105.tif 000003
ここで、Ｋw，Ｋv，Ｋθ は、各々、ω，ν，θ・ と対応するＫの部分行列である。
ｋ，ω，νが、スピン座標系（または、より詳しくは、瞬間的にスピン座標系と一致する固定座標系）を基準として表現される場合、回転座標系が質量中心（ＣｏＭ）に位置し、胴部の線形速度ν がｋ に影響しない。線形項は消去される。
【数３】
0005897105.tif 000004
ここで、Ｋw は、固定されたロボットの回転慣性であり、対称正定値行列で与えられる。
ｋ＝（ｋt，ｋb，ｋs ）のスピン成分ｋs については、さらに以下で詳細に説明する。
【００３６】
バックパックが最初に地面と接触するように、バックパックの向きを制御するために、ロボットが何時地面に接触するかを知ることは有益である。接地の正確な時間はロボットの動きに依存するけれども、大まかな推定値をロボットの簡易モデルに基づいて得ることはできる。
高速計算するために、ロボット全体が単一の剛体と扱えるように、ロボットの全ての関節が固定されているものと近似する。
地面に衝突する迄の剛体の動きはモデル化される。基本的には、ロボット胴部の角速度と同じ初期角速度を伴い、ロボットの圧力中心の回りの回転として、モデル化される。
角速度のスピン成分は、ωs,0 で表される。動的モデルは、ＣｏＭの高さが閾値ｈt以下になる迄、剛体の方向を追跡する
そして、ロボットと地面の衝突を概算して、転倒までの時間ｔf を推定する。
例えば、ある実施形態では、ｈt は初期設定姿勢で立つロボットのＣｏＭの３分の１に設定される。しかし、ｈt に他の値を用いてもよい。
さらに、ある実施形態では、接地する時のバックパックの方向が推定される。ロボットが何も行動しなければ、すなわち、ロボットが転倒時に全ての関節を固定した場合に、この推定と（実際の）バックパックの向きは一致する。
転倒までの時間ｔf とロボットの方向の推定は、以下で述べる所望の胴部の角速度の推定を決定することに使われる。
［所望の胴部の角速度の推定］
【００３７】
一般的な事例において、ロボットのバックパックは、バックパックの特定された衝突点の位置にかかわらず、他の身体部分に対して衝撃の伝搬を妨げる。
この実施形態において、ロボット・コントローラはバックパックが最初に接地することを目標に動作するが、バックパック上の全ての点を、等しく、所望し得る最初の衝撃点と扱う。言い換えれば、接地時の胴部の任意の前額面方向が許容される。
これを実現するため、転倒コントローラ３１８は、ＧＰとｎによって作られる平面が、地面と垂直となるような向きで、ベクトルｎ（バックパックに対して垂直であり胴部から後向きの方向である）を向かせるようにする。
これは、前額面のｎの実際の方向とは無関係に地面とバックパックが向かい合うことを保証するであろう。
図７には、全ての関節を固定し、単一の剛体として転倒するロボットのモデルを示す。
転倒するまでの時間ｔf と、バックパックから後向きの垂直方向の位置を表すベクトルｎは、質量中心（ＣｏＭ）が高さｈt  にまで落ちた位置で推定される。
ここで、ｎは傾斜線ＧＰに対して直交している必要はない。ｎ'の方向は、ＧＰとｎ'によって作られる平面が地面に対して直交するように、傾斜線の回りにｎを回転させることによって決定される、所望のｎの値である。
【００３８】
ＧＰとｎによって作られる平面が、衝突時に地面に対して垂直となるように、ベクトルｎを向かせるために、上記の図２（ａ）−２（ｂ）に示されるように、転倒コントローラ３１８は、ロボットの回転かつ／または後方への曲げ動作を用いることができる。
図８には、バックパックから転倒するという制御目標をロボットが達成できるように、どのように曲げ戦略が役に立つかを示している。
ボックス８０２は、ロボットが直立しているときのバックパックの位置を示している。
ボックス８０４は、ロボット・コントローラが転倒は不可避であると決定した場合に、転倒コントローラが作動しているときのバックパックの向きを示している。
ボックス８０６は、回転戦略だけが使われる場合のバックパックの位置を示している。
ボックス８０８は、回転戦略と曲げ戦略が両方とも使われる場合のバックパックの位置を示している。
曲げ戦略で見られることだが、衝撃時に地面に対してより直交するようにしている。
【００３９】
接地時の衝突法線ベクトルｎが与えられたら、所望のベクトルｎ'へのスピン方向回りのｎの回転を達成するスピン角が決定される（図７）。
この時、φ/ｔf は、ロボットをバックパックを接地させるよう転倒させるために、ロボットが持つべき「付加的なスピン速度」を表している。
それゆえに、所望のスピン速度ωs,d は式４のように決定される。
【数４】
0005897105.tif 000005
【００４０】
ここで、ωs,0 は予見段階における胴部の角速度のスピン成分の初期値であり、これはシミュレーションの間は定数として扱える。また、ｔf は事前に計算された転倒するまでの時間の推定値である。
しかし、旋回足の速度と関節角の制約から、ωs,dは物理的に達成できると限らない。
その場合、許容できる値を決定すればよい。このために、式３の運動量関係式の第３列を、次の数５を用いる。
【数５】
0005897105.tif 000006
【００４１】
スピン軸の回りのトルクを誘導する外力が働かないため、角運動量ｋs のスピン成分は保存される。
式５を簡単にすると、次のような近似式が作られる。
１）ｋs に対する前額と曲げの各成分の貢献は無視できる。
すなわち、Ｋw(3,1)ωt≒0, Ｋw(3,1)ωb≒0
２）腰と膝関節の関節速度だけがスピンに対して相当の貢献をする。
従って、式５は式６のように近似できる。
【数６】
0005897105.tif 000007
【００４２】
ここで、θ・swg は、回転足の関節速度ベクトルである。ωs の存在可能範囲は、回転足の関節角と速度の制約から決定される。
【数７】
0005897105.tif 000008
ここで、
【数８】
0005897105.tif 000009
【数９】
0005897105.tif 000010
【００４３】
各関節のθ・swg の極値は、現在の関節角とともに、関節角の上限と下限値から決定される。
例えば、関節速度θ・i の持つことのできる最大速度は、min{θ・iu,(θiu -θ・i)/ｔf } により設定される。
但し、θiu, θ・iu は、関節角と関節速度の上限値である。
【００４４】
もし、所望のスピン速度が許容範囲内であったら、許容されるスピン速度ωs,a は、所望の値に設定できる。さもなければ許容されるスピン速度ωs,a はωsl かωsu とされる。
【００４５】
次に、所望の曲げ速度を決定する。もし、所望のスピン速度が許容されるものならば、ロボットは胴部を後方向に回転することなく、バックパックから接地できる。
もし、所望の値と許容すべき値との差が大きいなら、図８に示すように、バックパックから転倒する可能性を大きくするために、後向きに回転させなければならない。
この原理を用いて、経験的手法により、後向き曲げ速度ωbは、許容されるスピン速度ωs,aと、所望のスピン速度ωs,d  との差に比例するように決定できる。
【数１０】
0005897105.tif 000011
ここで、ｃは比例係数（倍率）である。例えば、ある実施形態においてはｃ＝３に設定される。
結局、所望の胴部の角速度は、以下のように設定される。
【数１１】
0005897105.tif 000012
【００４６】
式１１において、上記の制御戦略とはあまり関係しない回転成分を減少させるために、ωd の最初の成分は０に設定される。
［転倒制御の実行段階］
【００４７】
図９には、転倒コントローラ３１８の実行コントローラ４０４によって実行される実行段階の実施形態を示す。
実行コントローラ４０４は、プランニング・コントローラ４０２から、式１１の所望の角速度を受信し（９０２）する。
所望の角速度に基づいて、実行コントローラ４０４は所望の関節加速度と所望のＧＲＦを決定する（９０４）。
実行コントローラ９０８は、所望の関節加速度と所望のＧＲＦを実現する関節トルクを決定する（９０６）。
関節トルクに基づいて、ロボットのアクチュエータを制御するために、制御信号が生成される（９０８）。
これらの手順を実行するための支配方程式を以下に示す。
［支配方程式］
【００４８】
接地点のＧＲＦと正味の空間運動量の変化速度との関係は、以下のようになる。
【数１２】
0005897105.tif 000013
【数１３】
0005897105.tif 000014
ここで、ｆはＧＲＦ、ｌは線形モーメント、ｍはロボットの全質量、ｇは重力ベクトル、ＧＰはＣｏＭ（質量中心）とＣｏＰ（圧力中心）に接続する傾斜線である。行列Ｌ ∈ Ｒ3×(n+6) は、一般化速度ベクトルを線形モーメントに変換する。すなわち、ｌ＝Ｌｑ・となる。
【００４９】
さらにロボットが接地し続けるなら（すなわち、ＣｏＰが動かないなら）、次のように運動定数は保存する。
【数１４】
0005897105.tif 000015
ここで、Ｊ＝dP/dq となる。
この時間微分は、
【数１５】
0005897105.tif 000016
によって与えられる。
【００５０】
式２のように、ｑ・・ は、基本座標系（ω・，ν・）の関節加速度θ・・ を、線形加速度と角加速度に分離する。
このとき、式１２、式１３、式１５は、各々以下のように記述される。
【数１６】
0005897105.tif 000017
【数１７】
0005897105.tif 000018
【数１８】
0005897105.tif 000019
【００５１】
スピン座標系、角及び線形加速度と関係する式１６〜１８において、ωと、νとが分離できるなら、すなわち、Ｋv＝Ｌw＝０，Ｊv＝Ｌv＝単位行列で、Ｊw＝−［ＧＰ］（ここで、［・］は３×３の交代行列であり、[a]b＝a×b のように外積を表す）。
これにより、
【数１９】
0005897105.tif 000020
【数２０】
0005897105.tif 000021
【数２１】
0005897105.tif 000022
【００５２】
式２１を式２０に代入することでν・は消去できる。
【数２２】
0005897105.tif 000023
【００５３】
式１９と式２２は、胴部の角加速度と関節加速度と運動制約時のＧＲＦとの動的結合を示す。
これに見られるように、関節加速度θ・・ は完全にω・とfを決定し、唯一θ・・と関係しているω・を表現するfを消去できる。
しかし、fは、ロボット全体の線形動作（すなわち、ｒ・・G＝f/m＋g、但しｒG・はＣｏＭである）と同様に、制約（摩擦円錐内に働く接触力）を便利に記述できる。
［転倒制御コマンド］
【００５４】
転倒コントローラの目的は、衝突時に胴部の所望の方向が達成されるような関節加速度θ・・と地面反力fを決定することにある。
上記で述べたプランニング段階の間、ロボットは胴部の回転加速度の所望の値ω・ｄと、所望の関節加速度θ・・ｄと、所望のＧＲＦfｄ とを得る。
所望の値が与えられたら、ｑ・・とfを式１９と式２２から決定することで、次のような最小二乗問題として記述できる。
【数２３】
0005897105.tif 000024
ここで、
【数２４】
0005897105.tif 000025
【数２５】
0005897105.tif 000026
【数２６】
0005897105.tif 000027
【００５５】
式２４において、ｘｄＴ＝（ωｄＴ，θ・・ｄＴ，fｄＴ）はｘに対する所望の値を表している。Ａｘ＝ｂは不定問題であるから、小さな重み係数ｗ（例えば、ある実施形態では0.01）での所望の値ｘｄ に近い値を得るために、付加的な評価関数 ||ｘ−ｘｄ||2 を含める。
【００５６】
関節制約を満足させるθ・・についての不等制約を果すこともできる。これは経験的に、例えば、関節が上限値に近い値を取る場合、関節加速度の上限値を小さく与えるようにすることによる。
ｘｄ 成分の詳細な設定を以下に示す。
【００５７】
実行コントローラ４０４の各制御時間ステップにおいて、所望の胴部の角加速度ωｄ・は式２７のように設定される。
【数２７】
0005897105.tif 000028
ここで、γはフィードバック・ゲイン・パラメータである。例えば、ある実施形態ではγ＝２０に設定する。
次に、θ・・ｄとfｄ を決定する。ある実施形態では、θ・・ｄを予め規定した動き（例えば、デフォルトの腕姿勢に保持する）に導く。
さらに、足の動きを最小にするように、足関節をθ・・ｄ＝０とする。
fｄ の設定は、転倒コントローラの効果に大きく影響する。
fｄ を大きくし過ぎると、ロボットはジャンプする。小さ過ぎると、コントロール目標を達成する前に転倒してしまう。
ある実施形態では、ロボットが，あたかも３Ｄ質量点振子が転倒するように、ロボットのＣｏＭを動かすように設定する。
ある実施形態では、質量点の位置をロボットのＣｏＭに設定する。振り子の角速度φ・は、質量点の速度（すなわち、φ・×ｒ）がロボットのＣｏＭの傾斜線に対する法線方向の速度と等しくなるように設定する。
そのとき、所望のＧＲＦは、式２８のように、３Ｄ質量点振子のＧＲＦを設定する。
【数２８】
0005897105.tif 000029
ここで、ｒ＝ＰＧである。
ωｄ，θ・・ｄ，fｄが与えられたら、式２３はθ・・，fを計算して解くことができる。
ここで、逆ダイナミクスが関節トルクを決定するための入力が用いられる。
ある実施形態では、この目的に、ハイブリッド・システム・ダイナミクス・アルゴリズムが使用される。
【００５８】
ロボットが転倒している間、地面との接触は回転を妨げるような大きな摩擦を被ることになるため、支持足が地面に着いている点を維持するように、ロボット・コントローラは支持足を制御する。
この目的のため、足の角の一つにロボットのＣｏＰがある場合でなければ、ロボットは支持足を曲げるか延ばしても良い。
もし、ＣｏＰが足の甲に近ければ、ＣｏＰが甲を押すように、足を曲げる。
もし、ＣｏＰが足のつま先に近ければ、ＣｏＰがつま先を押すように、足を伸ばす。
［転倒の軌跡の例］
【００５９】
図１０は、転倒時にロボット自身の向きを変えるための回転と曲げを用いたロボットの動きを、様々な角度からの連続的なスナップショットを示している。
旋回足を上げることにより、ロボットはスピン軸の回りに反時計回りに回転することを試みる。胴部の後向きの回転により、バックパックから接地する可能性が高くなる。
その結果として、バックパックから転倒することに成功している（図１０（ｇ））。
ここで見られるように、回転足の角運動量は体の角運動量と反対方向である。この図は体（含む胴部）の角運動量は、回転足と反対方向に制御されていることを説明している。
［付加的な実施形態の例］
【００６０】
付加的な選択的な実施形態として、ロボットの上半身を垂直方向に回転できる腰関節を持つことで、ロボットの動ける範囲を大きくすることができる。
あるいは、衝撃吸収素材をロボットの様々な場所に設けることもできる。
例えば、ロボットが膝当を設けることで、前に転倒した際に最初に膝から接地したことによる損傷を減少できる。
多くの目標身体部分を持つ場合には、ロボット・コントローラは、最初に最適な目標身体部分を選択し、その部分から転倒させるようにする。
【００６１】
他の実施形態としては、ロボット・コントローラは、近くの障害物との衝突を避ける制御戦略を採用することができる。
例えば、ロボット・コントローラは、ロボット自身へのダメージと同様に、環境に対するダメージを減らすように考慮した統合アプローチを使うことができる。
例えば、足の接地位置を変えることは、この目的に対して有効である。もし、ロボットが転倒時にステップできるなら、ロボットは転倒方向を変えることができるし、胴部の向きを変えることもできる。
足の接地位置を変えることで、例えば、足の甲からつま先に変えれば、胴部の向きを制御するのに効果的である。
【００６２】
この開示により、当業者は、ここで述べた特徴を持つロボット・コントローラの付加的かつ選択的な設計を理解できるであろう。
従って、本発明の特定の実施形態と応用を図示し述べたが、本発明は、ここで述べた構成及び構成要素に限定されるものではなく、ここで請求された発明内容と精神を逸脱することなく、ここで述べられた方法・装置の配置・操作・詳細によって、当業者ならば様々な改良・変更が可能である。
【図３】
0005897105.tif 000030
【図４】
0005897105.tif 000031
【図５】
0005897105.tif 000032
【図９】
0005897105.tif 000033
【図１】
0005897105.tif 000034
【図２】
0005897105.tif 000035
【図６】
0005897105.tif 000036
【図７】
0005897105.tif 000037
【図８】
0005897105.tif 000038
【図１０】
0005897105.tif 000039