(57)【要約】【課題】  実際のロボットの運動状態が目標とするロボットの運動状態から大きく外れる場合であっても、安定して歩行を継続することが可能な技術を提供する。【解決手段】  体幹と、一対の脚リンクと、各々の脚リンクを体幹に対して独立に揺動させるアクチュエータ群と、アクチュエータ群を制御するコントローラを備え、そのコントローラはアクチュエータ群を制御して与えられたロボットの重心軌道と脚リンクの足先軌道を実現するようにプログラムされており、そのコントローラは、一方の脚リンクが接地してからその後に振り出す他方の脚リンクが接地するまでの間に、その他方の脚リンクが接地した後のロボットの重心軌道を更新し、更新された重心軌道に基づいてその他方の脚リンクの接地予定位置を決定し、決定された接地予定位置に基づいてその他方の脚リンクが接地するまでのその他方の脚リンクの足先軌道を更新するロボット。【選択図】  図３
2008023612.tif 000002
【特許請求の範囲】
【請求項１】
体幹と、体幹に対して揺動可能に連結されている一対の脚リンクと、各々の脚リンクを体幹に対して独立に揺動させるアクチュエータ群と、アクチュエータ群を制御するコントローラを備えており、一方の脚リンクを体幹に対して振り出してから接地させる動作を一対の脚リンクの間で交互に繰り返すことによって歩行するロボットであって、
前記コントローラは、ロボットの重心軌道と脚リンクの足先軌道が与えられたときに、アクチュエータ群を制御して与えられた重心軌道と足先軌道を実現するようにプログラムされており、
前記コントローラは、一方の脚リンクが接地してからその後に振り出す他方の脚リンクが接地するまでの間に、
（１）前記他方の脚リンクが接地した後のロボットの重心軌道を更新し、
（２）更新された重心軌道に基づいて、前記他方の脚リンクの接地予定位置を決定し、
（３）決定された接地予定位置に基づいて、前記他方の脚リンクが接地するまでの前記他方の脚リンクの足先軌道を更新することを特徴とするロボット。
【請求項２】
両方の脚リンクが接地している期間における重心軌道の水平方向成分が等速軌道として与えられることを特徴とする請求項１のロボット。
【請求項３】
体幹と、体幹に対して揺動可能に連結されている一対の脚リンクと、各々の脚リンクを体幹に対して独立に揺動させるアクチュエータ群と、ロボットの重心軌道と脚リンクの足先軌道が与えられると与えられた重心軌道と足先軌道を実現するようにアクチュエータ群を制御するコントローラを備えており、一方の脚リンクを体幹に対して振り出してから接地させる動作を一対の脚リンクの間で交互に繰り返すことによって歩行するロボットの制御方法であって、
一方の脚リンクが接地してからその後に振り出す他方の脚リンクが接地するまでの間に、以下の各工程、すなわち、
（１）前記他方の脚リンクが接地した後のロボットの重心軌道を更新する工程と、
（２）更新された重心軌道に基づいて、前記他方の脚リンクの接地予定位置を決定する工程と、
（３）決定された接地予定位置に基づいて、前記他方の脚リンクが接地するまでの前記他方の脚リンクの足先軌道を更新する工程と、
を実施することを特徴とするロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットとその動作を制御する方法に関する。
【背景技術】
【０００２】
少なくとも１つの脚リンクを備え、移動しようとする方向へ脚リンクを振り出し、振り出して接地した脚リンクを支持脚とする動作を繰り返して移動するロボットが開発されている。
上記のようなロボットは、ＺＭＰ（Zero Moment Point）に着目して制御することによって、安定した歩行を実現できることが知られている。ＺＭＰは、ロボットに作用する外力（慣性力を含む）によるモーメントの総和が０となる床上の点を意味する。１つの脚リンクのみが接地している状態でも、ＺＭＰが床反力作用点と一致していれば、ロボットを倒そうとするモーメントが作用しない。１つの脚リンクのみが接地している状態では、床反力作用点は支持脚の足平内に位置するため、ロボットを安定して歩行させるためには、ＺＭＰが支持脚の足平内に維持されるように制御する必要がある。
例えば一対の脚リンクを備えるロボットの場合、一方の脚リンクを支持脚とし、他方の脚リンクを遊脚として前方に振り出すことによって移動する。この一方の脚リンクのみが接地している間、ＺＭＰが支持脚の足平内に存在していれば、ロボットは倒れることがない。遊脚としていた脚リンクが接地し、両方の脚リンクが接地している間に、ＺＭＰがそれまで支持脚であった脚リンクの足平内から新たに接地した脚リンクの足平内へ移行すれば、ロボットは倒れることがなく、それまで支持脚であった脚リンクを前方に振り出すことが可能となる。それまで支持脚であった脚リンクを前方に振り出す時に、ＺＭＰが新たな支持脚の足平内に存在していれば、ロボットは倒れることがない。上記のように、一方の脚リンクを振り出してから接地させる動作を、一対の脚リンクの間で交互に繰り返すことによって、ロボットは倒れることなく歩行を継続することができる。
【０００３】
一般に、ロボットが安定して歩行することができる経時的な動作態様は、実際にロボットが動作を行う前に予め計算されている。以下では、ロボットの経時的な動作態様を表現するデータを歩容データとよぶ。安定して歩行することができるように計算された歩容データを記憶しておき、記憶された歩容データが表現する動作態様を逐次実現していくことで、ロボットは安定して歩行することができる。
【０００４】
ロボットに予期せぬ外乱力が作用することがある。路面の予期せぬ凹凸によって予期せぬ外乱力が作用することもあるし、ロボットに外界から押したり引いたりする外力が加えられることもある。ロボットの構造上のたわみや、ロボットの関節のガタや、ロボットの応答遅れ等に起因して歩容データから外れれば、予期せぬ外乱力が作用したのと同じことになる。予期せぬ外乱力が作用すると、ロボットがバランスを崩す場合がある。
予期せぬ外乱力が作用しても歩行を継続するためには、記憶されている歩容データをリアルタイムに更新していくことが有効である。ロボットの歩容データをリアルタイムに生成する技術は、例えば特許文献１に開示されている。
【０００５】
【特許文献１】特開２００４−１１４２４３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の技術では、実際のロボットの運動状態に基づいて更新されるのはロボットの重心の軌道のみであり、脚リンクの足先の軌道は更新されない。なお本明細書で「軌道」とは、位置の経時的な変化を記述するデータのことを言う。従来の技術では、脚リンクの足先の軌道は、実際のロボットの運動状態に関わらず、歩幅・歩行周期・旋回角などの歩行態様や、環境形状などに基づいて、予め設定されている。従来の技術のように、脚リンクの足先軌道を更新することなく、ロボットの重心軌道のみをリアルタイムに更新していく場合、実際のロボットの運動状態が目標とする運動状態からわずかに外れた場合であっても、ロボットに予め設定された歩行態様を実現させることができるという点で有効である。
【０００７】
しかしながら、実際のロボットの運動状態が、目標とする運動状態から大きく外れた場合には、上記した技術ではロボットの動作を安定させることができない。上記した技術では、例えばロボットに予期せぬ外力が作用して、実際の重心軌道が目標とする重心軌道から大きく外れた場合であっても、目標とする脚リンクの足先軌道については変更されない。従って、ロボットは無理な体勢からでも目標とする脚リンクの足先軌道を実現しようとするため、その後の動作が不安定なものとなりがちである。
【０００８】
本発明は上記課題を解決する。本発明では、歩行動作を実現するロボットにおいて、実際のロボットの運動状態が目標とするロボットの運動状態から大きく外れる場合であっても、安定して歩行を継続することが可能な技術を提供する。
【課題を解決するための手段】
【０００９】
本発明はロボットとして具現化される。そのロボットは、体幹と、体幹に対して揺動可能に連結されている一対の脚リンクと、各々の脚リンクを体幹に対して独立に揺動させるアクチュエータ群と、アクチュエータ群を制御するコントローラを備えている。そのロボットは、一方の脚リンクを体幹に対して振り出してから接地させる動作を一対の脚リンクの間で交互に繰り返すことによって歩行する。そのコントローラは、ロボットの重心軌道と脚リンクの足先軌道が与えられたときに、アクチュエータ群を制御して与えられた重心軌道と足先軌道を実現するようにプログラムされている。そのコントローラは、一方の脚リンクが接地してからその後に振り出す他方の脚リンクが接地するまでの間に、（１）その他方の脚リンクが接地した後のロボットの重心軌道を更新し、（２）更新された重心軌道に基づいて、その他方の脚リンクの接地予定位置を決定し、（３）決定された接地予定位置に基づいて、その他方の脚リンクが接地するまでのその他方の脚リンクの足先軌道を更新する。
【００１０】
上記のロボットは、一方の脚リンクが接地する度に、その後に振り出される他方の脚リンクが接地する際の接地予定位置を決定して、決定された接地予定位置に基づいてその他方の脚リンクの足先軌道を更新する。その接地予定位置は、その他方の脚リンクが接地した後のロボットの動作が安定なものとなるように、その他方の脚リンクが接地した後のロボットの重心軌道に基づいて決定される。
例えば上記のロボットは、右脚リンクが接地すると、その後に振り出される左脚リンクが接地する際の接地予定位置を決定して、決定された接地予定位置に基づいて左脚リンクの足先軌道を更新する。左脚リンクの接地予定位置は、左脚リンクが接地した後のロボットの重心軌道に基づいて決定される。
【００１１】
本発明のロボットによれば、歩行を行う際の脚リンクの接地予定位置を、その後の動作における重心軌道に応じて動的に更新することができる。これによって、例えば予期せぬ外乱力がロボットに作用して、その後のロボットの歩行を安定させるためにその外乱力に応じてロボットの重心軌道を修正する場合であっても、修正された重心軌道に応じて脚リンクの接地予定位置を修正して、安定な動作を継続することができる。また、ロボットが歩行している間に、ユーザーから重心軌道を変更する指令（例えば、重心速度を増減する指令）が出された場合であっても、変更された重心軌道に基づいて脚リンクの接地予定位置を変更して、安定な動作を継続することができる。
【００１２】
上記のロボットにおいては、両方の脚リンクが接地している期間における重心軌道の水平方向成分が等速軌道として与えられることが好ましい。
ロボットの重心が水平方向に関して等速で移動する場合、ＺＭＰは重心の鉛直下方に位置することになる。従って、後方で接地している脚リンクの足平内から、前方で接地している脚リンクの足平内へＺＭＰを移動させる際に、上記のように重心軌道の水平方向成分を等速軌道として与えることによって、安定した動作を実現する重心軌道を簡便な演算によって決定することができ、少ない計算量で歩行の安定化をはかることができる。
【００１３】
本発明はロボットの制御方法としても具現化される。その方法は、体幹と、体幹に対して揺動可能に連結されている一対の脚リンクと、各々の脚リンクを体幹に対して独立に揺動させるアクチュエータ群と、ロボットの重心軌道と脚リンクの足先軌道が与えられると与えられた重心軌道と足先軌道を実現するようにアクチュエータ群を制御するコントローラを備えるロボットの制御方法である。そのロボットは、一方の脚リンクを体幹に対して振り出してから接地させる動作を一対の脚リンクの間で交互に繰り返すことによって歩行する。その方法では、一方の脚リンクが接地してからその後に振り出す他方の脚リンクが接地するまでの間に、以下の各工程、すなわち、（１）その他方の脚リンクが接地した後のロボットの重心軌道を更新する工程と、（２）更新された重心軌道に基づいてその他方の脚リンクの接地予定位置を決定する工程と、（３）決定された接地予定位置に基づいてその他方の脚リンクが接地するまでのその他方の脚リンクの足先軌道を更新する工程を実施する。
【発明の効果】
【００１４】
本発明の技術を用いることによって、歩行動作を実現するロボットにおいて、実際のロボットの運動状態が目標とするロボットの運動状態から大きく外れる場合であっても、安定して歩行を継続することができる。
【発明を実施するための最良の形態】
【００１５】
以下に説明する実施例の主要な特徴を列記する。
（形態１）  コントローラは、ロボットの重心軌道を更新する際に、片足接地相において実現されるロボットのＺＭＰが支持脚の足平内に維持されるように、片足接地相におけるロボットの重心軌道を更新する。
（形態２）  コントローラは、ロボットの重心軌道を更新する際に、両足接地相において重心が等速移動するように、両足接地相におけるロボットの重心軌道を更新する。
（形態３）  ロボットの実際の重心速度を検出する手段をさらに備え、コントローラは、検出された重心速度に基づいて、ロボットの重心軌道を更新する。
【実施例】
【００１６】
図面を参照しながら、本発明の一実施例に係るロボット２の動作制御技術について説明する。図１は本実施例のロボット２の概要を示している。ロボット２は体幹４と左脚リンク６と右脚リンク８と制御部１０と入出力装置１２とセンサ群１４を備えている。左脚リンク６は一方の端部を股関節を介して体幹４に揺動可能に接続されている。左脚リンク６はさらに膝関節と足首関節を備え、先端には足平を備えている。右脚リンク８は股関節を介して体幹４に揺動可能に接続されている。右脚リンク８はさらに膝関節と足首関節を備え、先端には足平を備えている。左脚リンク６と右脚リンク８の足平の中心には、それぞれ基準点Ｌ０、Ｒ０が設けられている。基準点Ｌ０、Ｒ０は、ロボット２の歩容データを生成する際の基準となる点である。図中Ｇは、ロボット２の重心の位置を示す。
【００１７】
ロボット２の各関節はアクチュエータ群３１８（図１では図示されない）を備えており、それらのアクチュエータ群３１８は制御部１０からの指示によって各関節を回転駆動する。またロボット２の各関節にはエンコーダ群３２０（図１では図示されない）が設けられており、それらのエンコーダ群３２０は制御部１０に各関節の関節角の経時的変化を出力する。
【００１８】
制御部１０はＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク等を有するコンピュータ装置である。制御部１０は入出力装置１２と通信可能であり、ユーザーが操作する入出力装置１２からユーザー指令値を入力する。制御部１０はユーザー指令値に基づいて、ロボット２の歩容データを生成する。制御部１０は生成した歩容データを記憶し、記憶された歩容データが表現する動作を実現するように各関節を駆動する。制御部１０の詳細については、後に詳述する。
【００１９】
センサ群１４は体幹４に位置と姿勢を固定された加速度センサ３２２（図１では図示されない）とジャイロセンサ３２４（図１では図示されない）を備えている。加速度センサ３２２は３軸の加速度を計測可能であり、ジャイロセンサ３２４は３軸まわりの角速度を計測可能である。加速度センサ３２２およびジャイロセンサ３２４の計測点は、ロボット２が直立して静止した状態での重心の位置Ｇとほぼ一致するように、その位置を調整されている。センサ群１４は制御部１０に接続されており、計測される加速度と角速度をそれぞれ制御部１０へ送信する。
【００２０】
図２は本実施例のロボット２が実現する歩行動作の概要を示している。
図２の（Ａ）に示すように、ある時点においてロボット２は両方の脚リンクが接地した姿勢Ｐ１をとっている。姿勢Ｐ１をとっているときには、ロボット２の重心は位置Ｇ１にある。ロボット２はこの姿勢Ｐ１から、ロボット２の前方側で接地している脚リンク（図２の（Ａ）では左脚リンク６）を支持脚として接地させたまま、ロボット２の後方側で接地している脚リンク（図２の（Ａ）では右脚リンク８）を遊脚として浮遊させて前方へ振り出す。前方へ振り出した脚リンクが接地すると、ロボット２は両方の脚リンクが接地した姿勢Ｐ２となる。姿勢Ｐ１も姿勢Ｐ２も、ともにロボット２が両方の脚リンクを接地した姿勢であるが、姿勢Ｐ１でロボット２の前方側で接地していた脚リンク（左脚リンク６）は、姿勢Ｐ２ではロボット２の後方側で接地しており、姿勢Ｐ１でロボット２の後方側で接地していた脚リンク（右脚リンク８）は、姿勢Ｐ２ではロボット２の前方側で接地している。ロボット２が姿勢Ｐ１から姿勢Ｐ２へと姿勢を変化させることによって、ロボット２の重心は位置Ｇ１から位置Ｇ２へ移動する。
【００２１】
その後、図２の（Ｂ）に示すように、ロボット２は両方の脚リンクを接地させたまま、重心を前方へ移動させる。この動作では、ロボット２は姿勢Ｐ２から姿勢Ｐ３へと姿勢を変化させる。この動作によって、ロボット２の重心は位置Ｇ２から位置Ｇ３へ移動する。
【００２２】
その後、図２（Ｃ）に示すように、ロボット２は前方側で接地している脚リンク（右脚リンク８）を支持脚として接地させたまま、後方側で接地している脚リンク（左脚リンク６）を遊脚として浮遊させて前方へ振り出す。前方へ振り出した脚リンクが接地すると、ロボット２は両方の脚リンクが接地した姿勢Ｐ４となる。ロボット２が姿勢Ｐ３から姿勢Ｐ４へと姿勢を変化させることによって、ロボット２の重心は位置Ｇ３から位置Ｇ４へ移動する。
上記のような動作を繰り返すことで、ロボット２は前方へ歩行する。
【００２３】
本実施例のロボット２では、実現させる動作を幾つかの動作区間に分割して扱う。本実施例のロボット２では、一方の脚リンクのみが接地している動作状態（片足接地相）と、それに続く両方の脚リンクが接地している動作状態（両足接地相）を、１つの動作区間として扱う。図２の例では、図２の（Ａ）および図２の（Ｃ）は片足接地相でのロボット２の動作を示しており、図２の（Ｂ）は両足接地相でのロボット２の動作を示している。図２の例では、図２の（Ａ）の片足接地相と図２の（Ｂ）の両足接地相が、１つの動作区間に含まれる。ロボット２が歩行を実現する際には、片足接地相と両足接地相が交互に繰り返される。
【００２４】
以下では、ロボット２の軌道を表現する座標系として、ロボット２の外部で床に固定された座標系を（x, y, z）で表現する。またロボット２上の基準点に固定された座標系を（x'、y'、z'）で表現する。
本実施例のロボット２では、図２の（Ａ）や図２の（Ｃ）に示すように、一方の脚リンクのみが接地している片足接地相においては、支持脚の足平の基準点を座標系（x'、y'、z'）の原点とする。また、図２（Ｂ）のように、両方の脚リンクが接地している両足接地相においては、便宜上、ロボット２の後方側で接地している脚リンク（すなわち、その両足接地相の直前の片足接地相において支持脚であった脚リンク）を支持脚として扱い、その足平の基準点を座標系（x'、y'、z'）の原点とする。以下ではロボット２上の基準点に固定された座標系（x', y', z'）で記述された位置、速度、加速度および軌道を、それぞれ相対位置、相対速度、相対加速度および相対軌道と表現する。また、座標系（x', y', z'）で記述されたＺＭＰを相対ＺＭＰと表現する。
【００２５】
本実施例のロボット２は、各動作区間の歩容データを生成して記憶しており、記憶された歩容データを逐次読み出して動作を実現していく。
また本実施例のロボット２は、片足接地相から両足接地相に切換わる際に、エンコーダ群３２０やセンサ群１４によって計測される実際の重心速度と、入出力装置１２を介してユーザーから与えられるユーザー指令値に応じて、それ以降の歩容データを再度生成して、記憶されている歩容データを更新する。ロボット２の動作中にユーザー指令値が新たに入力されると、そのユーザー指令値は制御部１０に記憶されて、その後に行われる歩容データの更新において反映される。
【００２６】
以下では制御部１０の動作の詳細について説明する。
図３は制御部１０の機能の構成を示すブロック図である。制御部１０はユーザー指令値記憶装置３０４と、歩容データ生成装置３０２と、歩容データ記憶装置３０８と、関節角目標値生成装置３１２と、アクチュエータ制御装置３１４と、重心速度計算装置３１６と、歩容データ更新装置３１０を備えている。
【００２７】
ユーザー指令値記憶装置３０４は、ユーザーから入力されるユーザー指令値を記憶する。ロボット２の動作中に新たなユーザー指令値が入力されると、制御部１０はユーザー指令値記憶装置３０４に記憶されているユーザー指令値を、新たに入力されたユーザー指令値に更新する。新たに入力されたユーザー指令値は、その後に歩容データが更新される際に、ロボット２の歩容データの生成に反映される。ユーザーは、ロボット２の運動を視認しながら入出力装置１２を用いてユーザー指令値を入力することで、ロボット２の動作をリアルタイムに制御することができる。
【００２８】
歩容データ生成装置３０２は、ユーザー指令値記憶部３０２に記憶されているユーザー指令値に基づいて、各動作区間におけるロボット２の重心の相対軌道と、遊脚の足先の相対軌道を生成する。歩容データ生成装置３０２で生成される重心の相対軌道は、ロボット２の支持脚の足平に設けられた基準点を原点とする座標系（x', y', z'）で重心の軌道を記述したものである。歩容データ生成装置３０２で生成される遊脚の足先の相対軌道は、ロボット２の支持脚の足平に設けられた基準点を原点とする座標系（x', y', z'）で記述されたものである。歩容データ生成装置３０２が重心の相対軌道と遊脚の足先の相対軌道を生成する処理の詳細については、後に詳述する。歩容データ生成装置３０２は、各動作区間におけるロボット２の重心の相対軌道と、遊脚の足先の相対軌道を、歩容データ記憶装置３０８に記憶する。
【００２９】
歩容データ記憶装置３０８は、各動作区間におけるロボット２の重心の相対軌道と遊脚の足先の相対軌道を記憶する。
【００３０】
関節角目標値生成装置３１２は、歩容データ記憶装置３０８に記憶されているロボット２の重心の相対軌道と、遊脚の足先の相対軌道に基づいて、いわゆる逆キネマティクス演算を行うことによって、ロボット２の各関節の関節角目標値の経時的データを生成する。関節角目標値生成装置３１２は、生成された関節角目標値の経時的データをアクチュエータ制御装置３１４へ出力する。
【００３１】
アクチュエータ制御装置３１４は、関節角目標値生成装置３１２で生成された関節角目標値の経時的データに基づいて、アクチュエータ群３１８を駆動する。アクチュエータ制御装置３１４がアクチュエータ群３１８を駆動することによって、ロボット２は各関節を回転させて姿勢を変化させ、歩行動作を実現する。
【００３２】
重心速度計算装置３１６は、エンコーダ群３２０から出力されるロボット２の各関節の関節角と、加速度センサ３２２から出力される体幹４の加速度と、ジャイロセンサ３２４から出力される体幹４の角速度に基いて、ロボット２の重心速度を計算する。
ロボット２の重心速度は、例えば加速度センサ３２２から出力される体幹４の加速度を積分して体幹４の速度を算出し、エンコーダ群３２０から出力されるロボット２の各関節の関節角からロボット２の重心と体幹４との位置関係の時間変化率を算出して、両者の和をとることによって計算することができる。計算された重心速度は、歩容データ更新装置３１０へ出力される。
【００３３】
歩容データ更新装置３１０は、ユーザー指令値記憶装置３０４に記憶されたユーザー指令値と、重心速度計算装置３１６で計算されたロボット２の重心速度に基づいて、各動作区間におけるロボット２の重心の相対軌道と、遊脚の足先の相対軌道を新たに生成する。歩容データ更新装置３１０が重心の相対軌道と遊脚の足先の相対軌道を生成する処理の詳細については、後に詳述する。生成された各動作区間におけるロボット２の重心の相対軌道と遊脚の足先の相対軌道は、歩容データ記憶装置３０８にそれまで記憶されていた重心の相対軌道と遊脚の足先の相対軌道と置き換えられる。
【００３４】
以下では図４を参照しながら、歩容データ生成装置３０２がロボット２の歩容データを生成する処理について説明する。
【００３５】
ステップＳ４０２では、動作を生成する動作区間の番号を示す変数kを１に設定する。
【００３６】
ステップＳ４０４では、ユーザー指令値をユーザー指令値記憶装置３０４から読み出す。ユーザー指令値としては、以下のパラメータを与えることができる。
（１）重心の高さ（鉛直方向位置）
（２）片足接地相の継続時間
（３）両足接地相の継続時間
（４）目標とする相対ＺＭＰ軌道
（５）目標とする角運動量の経時的データ
（６）動作の切替りにおける重心の水平方向速度
【００３７】
上記（１）の重心の高さ（鉛直方向位置）は、ロボット２の重心が位置する高さである。重心の高さは、ロボット２の機構が幾何学的に許す範囲内で、ユーザーが任意に与えることができる。本実施例のロボット２では、すべての動作区間において、重心の高さは一定値となるように設定する。
【００３８】
上記（２）の片足接地相の継続時間は、片足接地相が継続する時間である。上記（３）の両足接地相の継続時間は、両足接地相が継続する時間である。片足接地相の継続時間と両足接地相の継続時間は、それぞれユーザーが任意に与えることができる。
【００３９】
上記（４）の目標とする相対ＺＭＰ軌道は、目標ＺＭＰの支持脚の足平の基準点に対する相対的な位置の経時的データである。片足接地相に関しては、目標とする相対ＺＭＰ軌道は、支持脚となる脚リンクの足平内に存在するという制約のもとで、ユーザーが任意に与えることができる。支持脚となる脚リンクの足平内にＺＭＰが存在していれば、他方の脚リンクが遊脚として浮遊している状況でも、ロボット２は転倒することなく動作を継続することができる。
なお、本実施例のロボット２では、両足接地相に関しては、目標とする相対ＺＭＰ軌道を設定することなく重心の相対軌道を生成する。後に詳述するが、本実施例のロボット２では両足接地相においては重心が等速移動するように重心の相対軌道を生成する。重心が等速移動する場合、ロボット２が実現するＺＭＰの位置は、重心の鉛直下方に維持される。従って、両足接地相において、ロボット２の重心が後方側で接地している脚リンクの接地位置から前方側で接地している脚リンクの接地位置に向けて移動する限り、ロボット２は転倒することなく動作を継続することができる。
【００４０】
本実施例のロボット２では、片足接地相において目標とする相対ＺＭＰ軌道を、支持脚の足平の中心に固定するように設定する。このような相対ＺＭＰ軌道が実現される場合、ロボット２は転倒することなく、安定して動作を実現することができる。なお片足接地相において目標とする相対ＺＭＰ軌道は、その片足接地相の間で足平の内部に維持されていれば、どのような軌道を与えてもよい。例えば片足接地相の間に支持脚の足平の内部の後方から前方へ移動するような軌道を用いてもよい。このような相対ＺＭＰ軌道が実現される場合も、ロボット２は転倒することなく、安定して動作を実現することができる。
【００４１】
上記（５）の目標とする角運動量の経時的データは、ロボット２の重心まわりの角運動量の経時的データである。目標とする角運動量の経時的データは、アクチュエータの性能が許す範囲内で、ユーザーが任意に与えることができる。ロボット２のロール軸（x'軸）およびピッチ軸（y'軸）まわりの角運動量は、ロボット２が所望の姿勢を実現するように設定することが可能である。ヨー軸（z'軸）まわりの角運動量は、ロボット２が所望の旋回動作を実現するように設定することが可能である。
本実施例のロボット２では、すべての動作区間において、ロール軸、ピッチ軸およびヨー軸まわりの角運動量は０となるように設定する。
【００４２】
上記（６）の動作の切替りにおける重心の水平方向速度は、ロボット２の動作が片足接地相と両足接地相の間で切り替わるときの、ロボット２の重心の水平方向速度である。重心の水平方向速度は、ロボット２のアクチュエータの性能が許す範囲内で、ユーザーが任意に与えることができる。
【００４３】
ステップＳ４０６では、最初の動作区間である動作区間１の重心の軌道を生成する。ステップＳ４０６における動作区間１の重心の軌道の生成は、ステップＳ４１０で後述する一般的な動作区間kにおける重心の軌道の生成と同様である。重心軌道の生成処理の詳細についてはステップＳ４１０で後述する。ステップＳ４０６の処理を実行することによって、動作区間１における重心の鉛直方向軌道と水平方向軌道が生成される。
【００４４】
ステップＳ４０８では、動作を生成する動作区間を示す番号kに１を加える。
【００４５】
ステップＳ４１０では、動作区間kにおける重心の鉛直方向軌道と水平方向軌道を生成する。
【００４６】
動作区間kにおける重心の鉛直方向軌道は、ユーザー指令値として与えられる重心の高さから決定される。本実施例のロボット２においては、片足接地相においても、両足接地相においても、常に重心の高さが一定となるように、重心の鉛直方向軌道が決定される。
【００４７】
動作区間kにおける重心の水平方向軌道は、片足接地相と両足接地相で生成の手法が異なる。まず動作区間kの片足接地相での重心の水平方向軌道の生成について説明する。重心の水平方向軌道は、その片足接地相での重心の鉛直方向軌道と、目標とする相対ＺＭＰ軌道と、目標とする角運動量の経時的データと、その片足接地相の開始時と終了時における重心の水平方向速度の条件に基づいて決定される。ステップＳ４１０では、重心の鉛直方向軌道と水平方向軌道を実現したときの相対ＺＭＰ軌道が、目標とする相対ＺＭＰ軌道に一致するように、重心の水平方向軌道を計算する。
重心の鉛直方向軌道はユーザー指令値として与えられる重心の高さから決定されている。目標とする相対ＺＭＰ軌道および目標とする角運動量の経時的データは、ユーザー指令値として与えられている。動作区間の開始時における重心の水平方向速度は、すでに生成されている区間k-1の重心軌道から、区間k-1の終了時における重心の水平方向速度を特定することで与えられる。接地相の終了時における重心の水平方向速度は、ユーザー指令値の動作の切替りにおける重心の水平方向速度として与えられている。ステップＳ４１０では、これらの条件を満足するように、重心の水平方向軌道を計算する。
【００４８】
ロボット２が実現する相対ＺＭＰ位置（px'，py'）は、ロボット２の相対重心位置（x'，y'，z'）と支持脚の足平の基準点を原点とする座標系から見たロボット２の重心まわりの角速度（ωx'，ωy'）から計算することができる。ロボット２の相対重心位置とロボット２の重心まわりの角速度から、ロボットが実現するＺＭＰを計算する下記の式をＺＭＰ方程式と呼ぶ。
【００４９】
【数１】
2008023612.tif 000003
【００５０】
ここで、（１）は時間tに関する１階微分を示し、（２）は時間tに関する２階微分を示している。また、mはロボット２の質量である。
上式のｚ'およびｚ'（２）は、ロボット２の支持脚の足平の基準点を原点とする重心の鉛直方向位置と鉛直方向加速度である。ロボット２の支持脚の足平は床に対して移動しないため、ｚ'およびｚ'（２）は重心の鉛直方向軌道から特定することができる。本実施例では、すべての動作区間においてロボット２の重心の高さは一定であるから、重心の鉛直方向加速度ｚ'（２）は０である。
上式のIx'ωx'（１）とIy'ωy'（１）は、ロボット２の回転慣性の影響を示す。本実施例では、すべての動作区間においてロール軸（x'軸）およびピッチ軸（y'軸）まわりの角運動量を０としており、Ix'ωx'（１）とIy'ωy'（１）は０である。
【００５１】
上記のＺＭＰ方程式を離散化することによって、重心の水平方向位置（x'、y'）の経時的データを算出する式を導出することができる。ここで言う離散化は、前述のように、時間tに関して単位時間Δtを用いて行う。例えば重心のx'方向の軌道に関しては、下記の関係式を得る。
【００５２】
【数２】
2008023612.tif 000004
【００５３】
ここでx'iとpx'iは、それぞれ重心のx'方向軌道x'(t)と、x'方向の相対ＺＭＰ軌道px'(t)を離散化した変数である。iは単位時間で区分した時刻の順序を示す。数式２は、時刻iにおけるＺＭＰのx'方向座標px'iが、直前のx'方向座標x'i-1と、そのときのx'方向座標x'iと、直後のx'方向座標x'i+1から計算できることを示している。係数ai，bi，ciは、下記によって算出される係数である。
【００５４】
【数３】
2008023612.tif 000005
【００５５】
上記のΔtはＺＭＰ方程式の離散化に用いる時間幅であり、z'iとz'（２）iはそれぞれ重心の鉛直方向の位置と加速度を離散化した変数である。本実施例では、Δtは片足接地相の継続時間をn等分する時間幅である。
【００５６】
また係数diは、下記によって算出される係数である。
【００５７】
【数４】
2008023612.tif 000006
【００５８】
ここでIy'ωy'（１）iは、目標とするピッチ軸（y'軸）まわりの角運動量を離散化した変数である。なお本実施例のロボット２では、目標とする角運動量は０としているから、diは全て０である。
【００５９】
本実施例のロボット２では、片足接地相の開始時と終了時において、重心の軌道が滑らかになるように、ロボット２の動作を計算する。このように動作を計算することで、ロボット２が遊脚を接地する時点（片足接地相の終了時点）や、支持脚を入れ替えてそれまで支持脚であった脚リンクを新たに遊脚として振り出す時点（片足接地相の開始時点）でも、ロボット２の重心位置は滑らかに推移し、ロボット２は安定した動作を実現する。
動作区間kの片足接地相の開始時の重心のx'方向速度ｖx'0は、分割時間幅Δtと、重心の位置x'0、x'1とを用いて、以下によって表現される。
【００６０】
【数５】
2008023612.tif 000007
【００６１】
上記した動作区間kの片足接地相の開始時における重心のx'方向速度ｖx'0は、すでに計算されている動作区間k-1の重心の軌道から設定される。例えばkが２である場合、区間２の開始時での重心の水平方向速度ｖx'0は、区間１の水平方向軌道から特定される区間１の終了時での重心の水平方向速度とする。
【００６２】
同じように、動作区間kの片足接地相の終了時における重心のx'方向速度ｖx'n-1は、分割時間幅Δtと、重心の位置x'n-2、x'n-1と、以下の関係がある。
【００６３】
【数６】
2008023612.tif 000008
【００６４】
上記した動作区間kの片足接地相の終了時における重心のx'方向速度ｖx'n-1は、ユーザー指令値で与えられる動作の切替りにおける重心の水平方向速度とする。
【００６５】
上記した関係を整理すると、結局のところ、実現される相対ＺＭＰ軌道が目標とする相対ＺＭＰ軌道と等しくなる、動作区間kの片足接地相における重心のx'方向軌道（x'0，x'1，・・・，x'n-1）は、以下の３重対角行列で示される方程式（３項方程式）を解くことによって算出することができる。
【００６６】
【数７】
2008023612.tif 000009
【００６７】
上式において、左辺は行列と列ベクトルの積で表現されており、その行列は鉛直方向軌道から計算される係数を持つ３重対角行列である。３重対角行列とは、対角成分とそれに隣接する副対角成分のみが有意な値を備え、それ以外の成分が０である行列のことを言う。左辺の列ベクトルは、重心のx'方向軌道（x'0，x'1，・・・，x'n-1）を示す列ベクトルである。右辺の列ベクトルは、目標とする相対ＺＭＰ軌道に目標とする角運動量に基づく補正を加えたものと、片足接地相の開始時における重心のx'方向速度ｖx'0に単位時間Δtを乗じて距離に変換した値ｖx'0Δtと、片足接地相の終了時における重心のx'方向速度ｖx'n-1に単位時間Δtを乗じて距離に変換した値ｖx'n-1Δtとを備える列ベクトルである。
【００６８】
数式７において、左辺の３重対角行列の逆行列を算出し、その逆行列と右辺との積を計算することによって、未知数（x'0，x'1，・・・，x'n-1）を計算することができる。これによって、重心のx'方向軌道を計算することができる。
【００６９】
動作区間kの片足接地相におけるy'方向の重心軌道（y'1，・・・，y'n-1）についても、y'方向の相対ＺＭＰ位置（py'1，・・・，py'n-2）と、目標とするロール軸（x'軸）まわりの角運動量と、動作区間kの片足接地相の開始時の重心速度ｖy'0と終了時の重心速度ｖy'n-1から、x'方向の重心軌道（x'0，x'1，・・・，x'n-1）と同様にして算出することができる。
【００７０】
上記した計算では、試行錯誤的に重心の水平方向軌道を計算することなく、直接的に目標とする相対ＺＭＰ軌道を満足する重心の水平方向軌道を計算することができる。上記した計算は少ない計算量で実施することが可能であり、高速で計算を実施することができる。
【００７１】
なお上記した水平方向速度ｖx'0，ｖy'0の代わりに、重心が移動する方向を示す水平方向の単位ベクトルnx'，ny'と速度絶対値|ｖ|を、動作の切替りにおける重心の水平方向速度としてユーザーが与えてもよい。このような場合、水平方向速度ｖx'0，ｖy'0は、以下によって算出される。
【００７２】
【数８】
2008023612.tif 000010
【００７３】
上述した方法によって生成される重心軌道の場合、片足接地相の開始時と終了時において、ＺＭＰ方程式で計算されるＺＭＰが、目標ＺＭＰに一致することは必ずしも保証されていない。しかしながら、片足接地相の開始時と終了時において重心速度を滑らかに接続していることと、ＺＭＰ方程式を満足しない期間が非常に短い（ＺＭＰ方程式の離散化に用いる時間幅Δtの２倍程度である）ことから、上記で生成される動作を実現するロボット２は転倒することなく安定した動作をすることができる。
【００７４】
次に、動作区間kの両足接地相における重心の水平方向軌道の計算について説明する。本実施例のロボット２では、両足接地相においては、重心を等速で移動させる。従って、両足接地相における重心の水平方向軌道は、両足接地相の開始時の重心の位置と、両足接地相における重心速度と、両足接地相の継続時間から生成することができる。両足接地相の開始時における重心位置は、その直前の片足接地相の終了時における重心位置を特定することによって与えられる。両足接地相における重心速度は、上記した水平方向速度ｖx'0，ｖy'0で与えられる。両足接地相の継続時間は、ユーザー指令値として与えられている。これによって、両足接地相における重心の水平方向軌道を生成することができる。
【００７５】
ロボット２の重心を等速で移動させる場合、ロボット２に作用する外力の水平方向成分の合計は０であるから、ロボット２が実現するＺＭＰは重心の鉛直下方に位置することになる。従って、両足接地相においては、重心の水平方向位置が、後方側で接地している脚リンクの接地から前方側で接地している脚リンクの接地位置に向けて移動していれば、ロボット２は転倒することなく安定した動作をすることができる。
【００７６】
ステップＳ４１２では、区間k-1において片足接地相から両足接地相に移行する際の遊脚の接地位置を計算する。遊脚の接地位置は、区間k-1の片足接地相の終了時における、遊脚の足平の基準点の、支持脚の足平の基準点に対する相対的な位置として算出される。区間k-1の片足接地相で遊脚であった脚リンクは、区間kの片足接地相では支持脚となる。従って、区間k-1において遊脚を接地する位置に応じて、区間kの片足接地相において支持脚の足平が接地することになる床上の位置も変化する。本実施例のロボット２では、区間kにおける片足接地相の動作が安定なものとなるように、区間k-1における遊脚の接地位置を決定する。
【００７７】
まず、ステップＳ４１０で生成された区間kの片足接地相における重心の相対軌道から、区間kの開始時における支持脚の足平の基準点からの重心の相対位置（Δxf'、Δyf'））を特定する。特定された重心の相対位置（Δxf'、Δyf'）は、区間k-1の両足接地相の終了時における、前方側で接地している脚リンクの足平の基準点からの重心の相対位置に相当する。
次いで、すでに生成されている区間k-1の両足接地相における重心の相対軌道から、区間k-1の両足接地相の終了時における、後方側で接地している脚リンクの足平の基準点からの重心の相対位置（Δxb'、Δyb'）を特定する。
そして、区間k-1の両足接地相の終了時における、前方側で接地している脚リンクの足平の基準点からの重心の相対位置（Δxf'、Δyf'）と、後方側で接地している脚リンクの足平の基準点からの重心の相対位置（Δxb'、Δyb'）の差をとることによって、後方側で接地している脚リンクの足平の基準点からの前方側で接地している脚リンクの足平の基準点の相対位置（sx、sy）を特定する。両足接地相においては何れの脚リンクの足平も床に対して移動しないから、上記のようにして特定される相対位置（sx、sy）は、区間k-1の片足接地相の終了時における支持脚の足平の基準点からの遊脚の足平の基準点の相対位置、すなわち遊脚の接地位置に相当する。
【００７８】
ステップＳ４１４では、区間k-1における遊脚の足先の相対軌道を生成する。遊脚の足先の相対軌道は、区間k-1の片足接地相の開始時の遊脚の相対位置（すなわち、遊脚となる脚リンクを浮遊させる直前の接地位置）と、区間k-1の片足接地相の終了時の遊脚の相対位置（すなわち、ステップＳ４１２で決定された遊脚の接地位置）と、ユーザー指令値として与えられる片足接地相の継続時間から生成される。図５に、遊脚の足先の相対軌道５１０が生成される様子を模式的に示す。図５に示すように、区間k-1の片足接地相において、支持脚の足平を接地位置５０４に接地した状態で、遊脚の足平を接地位置５０２から浮遊させてから、片足接地相の継続時間が終了する時点で、遊脚の足平を接地位置５０６まで移動させるように、遊脚の足先の相対軌道５１０が生成される。遊脚の足先の相対軌道５１０は、例えば多項式補間を用いることによって、生成することができる。
【００７９】
ステップＳ４１６では、全ての動作区間について、重心の相対軌道の生成が終了しているか否かを判断する。この判断は、処理の対象としている動作区間の番号kを、最後の動作区間の番号kmaxと比較することによって行う。kがkmax以上の場合（ステップＳ４１６でＹＥＳの場合）、全ての動作区間について、重心の相対軌道の生成が終了したと判断して、処理はステップＳ４１８へ進む。kがkmax未満の場合（ステップＳ４１６でＮＯの場合）、未だ重心軌道を生成していない動作区間について重心軌道を生成するために、処理はステップＳ４０８へ移行し、ステップＳ４０８からステップＳ４１４までの処理を繰返し実施する。
【００８０】
ステップＳ４１８では、最後の動作区間kmaxについて、遊脚の接地位置を決定する。最後の動作区間kmaxについては、遊脚の接地位置は任意に決定することができる。本実施例のロボット２では、最後の動作区間kmaxの終了後にロボット２が直立姿勢となるように、遊脚の接地位置を支持脚の接地位置の側方に設定する。
ステップＳ４２０では、最後の動作区間k = kmaxについて、遊脚の足先の相対軌道を生成する。ステップＳ４２０の処理は、ステップＳ４１４の処理と同様であるので、説明を省略する。
【００８１】
上記した図４の処理によって、ロボット２が歩行動作を実現するための、重心の相対軌道と遊脚の足先の相対軌道が生成される。生成された重心の相対軌道と遊脚の足先の相対軌道は、歩容パターン記憶装置３０８に記憶される。
【００８２】
ロボット２に歩行動作を開始させると、関節角目標値生成装置３１２が歩容データ記憶装置３０８から重心の相対軌道と遊脚の足先の相対軌道を読み込んで、逆キネマティクス演算によって各関節の関節角目標値の経時的データを生成する。生成された関節角目標値の経時的データに基づいて、アクチュエータ制御装置３１４がアクチュエータ群３１８を駆動し、ロボット２はユーザー指令値に基づいた歩行動作を実現する。
【００８３】
ロボット２が歩行動作を実現している間、制御部１０は片足接地相から両足接地相への切替わりを看視している。片足接地相から両足接地相への切替わりは、例えば関節角目標値生成装置３１２が歩容データ記憶装置３０８から読込んだ遊脚の足先の相対軌道から判断することができる。制御部１０は、ロボット２の動作が片足接地相から両足接地相へ切替わった時点で、その後の動作区間における歩容データを更新する。
【００８４】
図６は、制御部１０の歩容データ更新装置３１０がロボット２の歩容データを更新する処理を説明するフローチャートである。
【００８５】
ステップＳ６０２では、その時点でロボット２が動作を実現している、現在の動作区間mを特定する。
【００８６】
ステップＳ６０４では、重心速度計算装置３１６を用いて、実際の重心の速度を検出する。
【００８７】
ステップＳ６０６では、ユーザー指令値記憶装置３０４に記憶されているユーザー指令値を読込む。
【００８８】
ステップＳ６０８では、歩容データの更新対象とする動作区間kを設定する。本実施例のロボット２では、ステップＳ６０２で特定された現在の動作区間mの次の動作区間を、歩容データの更新対象とする動作区間kとして設定する。
【００８９】
ステップＳ６１０では、動作区間kにおける重心の相対軌道を生成する。ステップＳ６１０で行う重心の相対軌道の生成の処理は、片足接地相の開始時における重心の水平方向速度の与え方を除いて、図４のステップＳ４１０での処理とほぼ同様である。ステップＳ６１０では、動作区間kの片足接地相の開始時における重心の水平方向速度として、ステップＳ６０４で検出された実際の重心の速度を用いる。
【００９０】
ステップＳ６１２からステップＳ６２４までの処理は、図４のステップＳ４０８からステップＳ４２０までの処理と同様であるから、ここでは詳細な説明を省略する。これによって、動作区間k+1以降の重心の相対軌道と、動作区間k以降の遊脚の接地予定位置と、動作区間k以降の遊脚の足先の相対軌道がそれぞれ更新される。
【００９１】
上記のように、本実施例のロボット２は、片足接地相から両足接地相へと動作を切換える度に、歩容データの更新処理を行う。従って、ロボット２の動作中にユーザーから新たなユーザー指令値が入力された場合に、新たなユーザー指令値に適合するように動作を変更することができる。
【００９２】
本実施例のロボット２は、上記した歩容データの更新を行う際に、センサ群１４およびエンコーダ群３２０を用いて実際の重心の速度を計測して、計測された重心の速度と滑らかに接続するように、その後の重心軌道を更新する。ロボット２に予期せぬ外乱力が作用した場合であっても、その外乱力に応じてその後の重心軌道を更新して、ロボット２は安定して歩行を継続することができる。
【００９３】
本実施例のロボット２では、片足接地相から両足接地相へ動作が切替わる際の遊脚の接地位置を、その両足接地相における重心の相対軌道と、その後に続く片足接地相における重心の相対軌道に基づいて、その後の動作が安定なものとなるように設定する。このように遊脚の接地位置を設定することによって、ロボット２は大域的に安定した歩行動作を実現することができる。
【００９４】
上記の実施例では、体幹４に設けられた加速度センサ３２２の計測値と、各関節に設けられたエンコーダ群３２０の計測値から、重心の加速度を算出し、重心の加速度を積分することによって重心速度を検出する例を説明した。重心加速度の検出はこれに限らず、例えば複数の加速度センサをロボット２に搭載して、それらの加速度センサの計測点の位置と計測値から、重心の加速度を算出してもよい。また加速度センサの計測値とジャイロセンサの計測値から、重心の加速度を算出してもよい。
【００９５】
上記ではセンサ群１４から計測される加速度に基づいて重心速度を計測する例を説明したが、重心速度の計測はこれに限らない。
例えばロボット２の外部の床に固定された測距センサを用いてロボット２の代表点の位置を計測し、代表点と重心との相対的な位置関係を各関節の関節角から算出し、重心と代表点の相対位置と計測される代表点の位置とから重心の位置を算出し、その時間変化率を算出することによっても、重心の速度を知ることができる。また、ＧＰＳ受信機を体幹４に搭載し、ＧＰＳ受信機によって取得される位置と各関節の関節角から重心の位置を算出し、重心位置の経時的変化から重心速度を算出してもよい。
また、各関節の関節角の経時的変化のみを用いて直接的に重心速度を算出してもよい。
【００９６】
上記の実施例では、ロボット２が実際に歩行を行っている間に、動作区間mで遊脚を接地したタイミングで、動作区間m+1以降の遊脚の接地予定位置を更新する例を説明した。このように、ロボット２が動作区間m+1の動作を開始する前に、動作区間m+1の遊脚の接地予定位置を更新することで、片足接地相での動作の急変を防ぎ、ロボット２は安定して動作を行うことができる。
また上記とは異なり、ロボット２が動作区間mの片足接地相の動作を行っているときに、その動作区間mの遊脚の接地予定位置を更新する構成としてもよい。このような場合には、動作区間mの片足接地相においてロボットに予期せぬ外乱力が作用した場合であっても、その外乱力に応じて動作区間m+1以降の重心の相対軌道を更新し、その更新された重心の相対軌道に応じて動作区間mの遊脚の接地予定位置および遊脚の足先の相対軌道を更新することができる。ロボット２に作用する外乱力に速やかに対応して、安定な歩行動作に速やかに復帰することができる。
【００９７】
上記の実施例では、ユーザー指令値として与えられるロボット２の重心の高さをすべての動作区間において一定値とする例を説明したが、ロボット２の重心の高さは経時的に変化させてもよい。ロボット２の重心の垂直方向軌道が、ロボット２の重心の水平方向軌道を生成する前に取得されていれば、上述した３項方程式を解くことによって、その垂直方向軌道に応じた水平方向軌道を生成することができる。
【００９８】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００９９】
【図１】図１は本発明のロボット２の概観を示す図である。
【図２】図２は本発明のロボット２の動作の概要を示す図である。
【図３】図３は本発明のロボット２の制御部１０の構成を示すブロック図である。
【図４】図４は本発明のロボット２の歩容データ生成の処理を示すフローチャートである。
【図５】図５は本発明のロボット２の遊脚の足先の相対軌道を示す図である。
【図６】図６は本発明のロボット２の歩容データ更新の処理を示すフローチャートである。
【符号の説明】
【０１００】
２・・・ロボット
４・・・体幹
６・・・左脚リンク
８・・・右脚リンク
１０・・・制御部
１２・・・入出力装置
１４・・・センサ群
３０２・・・歩容データ生成装置
３０４・・・ユーザー指令値記憶装置
３０８・・・歩容データ記憶装置
３１０・・・歩容データ更新装置
３１２・・・関節角目標値生成装置
３１４・・・アクチュエータ制御装置
３１６・・・重心速度計算装置
３１８・・・アクチュエータ群
３２０・・・エンコーダ群
３２２・・・加速度センサ
３２４・・・ジャイロセンサ
５０２、５０６・・・遊脚の接地位置
５０４・・・支持脚の接地位置
５１０・・・遊脚の足先の相対軌道
【図１】
2008023612.tif 000011
【図２】
2008023612.tif 000012
【図３】
2008023612.tif 000013
【図４】
2008023612.tif 000014
【図５】
2008023612.tif 000015
【図６】
2008023612.tif 000016