(57)【特許請求の範囲】
【請求項１】
遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットの移動動作を制御する移動ロボットの移動制御方法において、
軌道算出の計算を実行して目標の軌道を求め、
前記目標の軌道に従う一歩分の動作を実現する目標関節角度に従って遊脚を離床させ、移動方向に振り出し、遊脚を着床させる前に遊脚の関節のゲインを下げ、さらに遊脚を着床させて支持脚とし、
この着床後、目標関節角度に対して実際の関節角度がもつ関節角度ずれを算出し、
前記関節角度ずれが減少するように目標関節角度の値を変更し、
支持脚のゲインを上げて、関節の角度を変更後の新たな目標関節角度とし、
変更後の新たな目標関節角度に基づいた実際の重心位置と、目標軌道の重心位置と、の偏差である重心位置ずれを求め、
前記重心位置ずれが減少するように目標重心位置を更新し、
更新した目標重心位置から出発する次の一歩を実現する軌道を算出する
ことを特徴とする移動ロボットの移動制御方法。
【請求項２】
請求項１に記載の移動ロボットの移動制御方法において、
前記重心位置ずれが減少するように目標重心位置を更新する工程では、
重心の位置ずれ方向とは逆の方向に相対ＺＭＰを設定更新する
ことを特徴とする移動ロボットの移動制御方法。
【請求項３】
請求項１または請求項２に記載の移動ロボットの移動制御方法において、
前記重心位置ずれが減少するように目標重心位置を更新する工程では、
重心の位置ずれ方向とは逆向きに上体姿勢を回転させる回転運動量を軌道計算に加える
ことを特徴とする移動ロボットの移動制御方法。
【請求項４】
請求項１から請求項３のいずれかに記載の移動ロボットの移動制御方法において、
前記重心位置ずれが減少するように目標重心位置を更新する工程では、
重心の位置ずれ方向とは逆向きに足平を回動させる動きを軌道計算に加える
ことを特徴とする移動ロボットの移動制御方法。
【請求項５】
遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットであって、
軌道算出の計算を実行して目標の軌道を求め、
前記目標の軌道に従う一歩分の動作を実現する目標関節角度に従って遊脚を離床させ、移動方向に振り出し、遊脚を着床させる前に遊脚の関節のゲインを下げ、さらに遊脚を着床させて支持脚とし、
この着床後、目標関節角度に対して実際の関節角度がもつ関節角度ずれを算出し、
前記関節角度ずれが減少するように目標関節角度の値を変更し、
支持脚のゲインを上げて、関節の角度を変更後の新たな目標関節角度とし、
変更後の新たな目標関節角度に基づいた実際の重心位置と、目標軌道の重心位置と、の偏差である重心位置ずれを求め、
前記重心位置ずれが減少するように目標重心位置を更新し、
更新した目標重心位置から出発する次の一歩を実現する軌道を算出する
ことを特徴とする移動ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動ロボットの移動制御方法および移動ロボットに関する。詳しくは、自律的に二脚歩行または走行する移動ロボットの移動制御方法および移動ロボットに関する。
【背景技術】
【０００２】
自律的に二脚で歩行する人型の脚式ロボット（二足歩行型ロボット）の開発が進められている。このような脚式ロボットは、目標ＺＭＰを姿勢の安定をはかる位置に設定しながら歩行軌道の生成を行い、この生成された軌道に基づいた歩行を行うべく各関節の動作制御を実行する。
ここで、脚式ロボットはクローラ式の移動体とは異なり、二本の脚がそれぞれ着床および離床動作を繰り返すことにより歩行移動が実現される。そのため、着床時には床面からの反力が衝撃として脚部およびロボット全体に対して印加されることになり、あまりに強い衝撃は関節を構成するアクチュエータやその他の構成部材の破損や故障を招来する。
【０００３】
そこで、着床時に床面から受ける衝撃を緩和する制御方法が特許文献１に開示されている。
特許文献１には、脚式移動ロボットが記載されている。この脚式移動ロボットは、インピーダンス可変のアクチュエータにより関節を構成し、脚が離床したときに関節アクチュエータのインピーダンスを低下させ、関節のインピーダンスを低くした状態で着床させる。すると、着床時には関節アクチュエータが緩衝材として機能し、着床時の衝撃が緩和される。そして、着床後、低下させたインピーダンスを元に戻す。
【０００４】
【特許文献１】特開２００１−１３８２７３号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、脚が着床する際に関節アクチュエータのインピーダンスを下げてゲインを低くすると、着地衝撃吸収は確かにできるものの、関節のゲインが低い分だけ関節の駆動角に目標値からの偏差が生じやすくなる。たとえば、ロボット自体の重量を十分に支えきれずに重心が沈み過ぎたり、外乱に弱くなったりするため目標値からのずれ（偏差）が生じやすくなる。着床時に目標値からの偏差が発生した場合に、特許文献１のごとく着床検出に応答してアクチュエータのゲインを元に戻すと急激な姿勢変化が発生し、ロボットが不安定な状態になってしまう。
【０００６】
ここで、仮に、関節アクチュエータのインピーダンス（ゲイン）を戻すタイミングをゆっくりにして急激な姿勢変動を回避させるという考え方もある。
しかしながら、この場合、目標値からのずれ（偏差）が残った状態で次の一歩を振り出して着床させることになるため、目標値からのずれが累積して大きくなってしまう。そして、想定している床面と実際の床面とのずれが大きくなり過ぎると、脚を床面にぶつけてしまったり、転倒してしまうなどの問題が生じてしまう。
【０００７】
本発明の目的は、円滑な移動動作を安定して行う移動ロボットの移動制御方法および移動ロボットを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の移動ロボットの移動制御方法は、遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットの移動動作を制御する移動ロボットの移動制御方法において、遊脚を離床させてから移動方向に振り出して着床させるまでの一歩分動作を実行させる移動動作実行工程と、前記移動動作実行工程による一歩分の動作を実行中に次の移動動作実行工程で遊脚の振り出しを行うまでの間に次の前記移動動作実行工程における動作の軌道を再計算する再計算工程と、を備え、前記再計算工程は、前記移動動作実行工程における一歩分の動作の後に目標とする重心位置と実際の重心位置との位置ずれを算出する重心位置ずれ算出工程と、目標とする重心位置を実際の重心位置に基づいて更新する重心位置更新工程と、前記重心位置更新工程にて更新された更新重心位置を基準にして次の移動動作実行工程において実行する移動動作の軌道を計算する軌道計算工程と、を備えることを特徴とする。
【０００９】
このような構成において、移動動作実行工程において移動動作を実行中に次の移動動作実行工程における動作の軌道を再計算工程によって再計算する。そして、次の一歩動作は、再計算された軌道に基づいて実行される。このように次の動作を無理なく円滑に進行可能な軌道の再計算を行うので、常に安定した移動動作を継続させることができる。
【００１０】
一歩動作を行って遊脚を着地させる際の自重や外乱の影響等によって着地位置が目標からずれたり、姿勢が傾いたりして動作が目標からずれてしまうことが起こりえる。
従来、このように目標からのずれが発生した場合には偏差に応じた補正指令を発して目標軌道に引き戻す制御が行われていた。この場合、偏差が大きい場合には偏差に応じて大きなトルクがかかり、急峻な動きが生じることがあった。そして、偏差が大きいと動きが急峻になってバランスを崩して倒れてしまったり、あるいは、目標軌道に戻しきれずに制御不能に陥ってその後の歩行動作が継続できなくなってしまうこともあった。
【００１１】
この点、本発明では、一歩動作（移動動作実行工程）のあと、実際の重心位置を確認して新たに重心位置を更新し、次の一歩動作の軌道を計算するための条件を変更させる。すると、仮に外乱等によって重心軌道がずれた場合でも次の動作に連続的に滑らかに移行して安定した動作を継続する。その結果、急峻な動作や累積偏差のために制御不能に陥るといった事態を回避することができる。
【００１２】
本発明では、前記再計算工程は、目標とする関節角度に対して実際の関節角度がもつ関節角度ずれを算出する関節角度ずれ算出工程と、前記関節角度ずれが減少するように関節角度の目標値を変更する目標関節角度変更工程を備えることが好ましい。
【００１３】
このような構成において、関節角度ずれ算出工程にて目標からの角度ずれを算出し、目標関節角度変更工程にて関節角度のずれをある程度受け入れて目標値を変更する。
このように関節角度のずれ補正を行うことで着地位置のずれを補正し、次の動作に円滑に移行させることができる。
【００１４】
ここで、前記目標関節角度変更工程にて関節角度の目標値を変更した後、関節を構成するアクチュエータのゲインを上げて関節角度を目標値にすることが好ましい。
このような構成によれば、目標からのずれが無くなり、制御が安定する。
なお、ゲインを上げる速度は実際の角度と目標値とのずれの大きさに応じたものとすることが好ましい。例えば、偏差が大きい場合には緩やかにゲインを戻し（高め）、偏差が小さいときには速やかにゲインを戻して（高めて）もよい。
【００１５】
ここで、関節角度の目標値を変更するにあたっては、角度偏差がある制限値を超えた場合に目標変更を行うこととして目標の変更を行わない偏差の制限値を設定しておくことが好ましい。
例えば、この偏差の制限値を２°に設定したとし、ある関節において角度の目標値が５０°であったところ実際は４８°になっており角度偏差が２°ある場合、角度偏差を減少させる目標値の設定変更は行わず、目標値は５０°のままで維持する。
わずかなずれであれば通常の補正動作によって目標軌道に修正できるので、このような場合には当初の目標のまま維持して目標軌道にのせることとする。
また、一回で目標角度を変更する量の上限を設定しておくことが好ましい。
例えば、変更する上限量を５°に設定したとし、ある関節において角度の目標値が５０°であったところ実際は４０°になっており角度偏差が１０°ある場合、角度偏差を減少させるように目標値の設定変更を行い、この例では目標値を４５°にする。
すべての角度ずれを受け入れてしまって角度目標を変更してしまうと補正が過剰になってしまい、かえって外乱等に影響され過ぎて移動動作のバランスが維持できなってしまうという不都合を回避することができる。
【００１６】
本発明では、前記移動動作実行工程は、遊脚を着床させる前に遊脚の関節のゲインを下げる遊脚関節ゲイン下げ工程を備えることが好ましい。
【００１７】
このような構成において、着床前に遊脚のゲインを下げるので、着床時の衝撃を緩和することができる。
ここで、遊脚のゲインを下げて着床させてしまうと自分の重みによって沈み込み過ぎたり、外乱の影響を受けやすくなってしまうという問題が生じやすくなるが、本発明では再計算工程により再計算された軌道に基づいて次の一歩動作を行うので、自重による沈みや外乱の影響があっても円滑に移動動作を継続することができる。
これにより、着床の衝撃を緩和しつつも円滑な移動動作を実行することができるという画期的な効果を奏することができる。
【００１８】
本発明では、前記軌道計算工程は、前記重心位置ずれ算出工程にて算出された重心位置ずれに応じて、重心の位置ずれ方向とは逆の方向に相対ＺＭＰを設定更新する相対ＺＭＰ更新工程を備えることが好ましい。
【００１９】
このような構成において、重心ずれが生じる方向とは逆方向に相対ＺＭＰをずらすことによって、移動動作時の重心ずれをより少なくし、目標とする軌道に沿った動作をすることができる。
その結果、移動動作のより一層の安定化を図ることができる。
相対ＺＭＰ軌道は、支持脚の足平の基準点に対する目標ＺＭＰの位置の経時的データであって、接地相では支持脚の足平内にＺＭＰが存在していればロボットは安定である。
ここで、たとえば、移動動作時に重心が目標より後ろ側にずれを生じる場合には、相対ＺＭＰの位置を調整する（例えば前にずらす）ことにより重心ずれが起こらないようにし、移動動作をより一層安定させることができる。
【００２０】
本発明では、前記軌道計算工程は、前記重心位置ずれ算出工程にて算出された重心位置ずれに応じて、重心の位置ずれ方向とは逆向きに上体姿勢を回転させる回転運動量を軌道計算に加える上体姿勢調整工程を備えることが好ましい。
【００２１】
このような構成によれば、上体姿勢を調整するので適正な姿勢で移動動作を継続することができる。
本発明では、重心位置のずれが生じた場合に実際の位置に応じて重心位置を更新することとしているため、そのままでは姿勢の傾斜を残すことになる。
この点、上体姿勢を適正に戻す回転運動量を軌道計算に組み込むことによって、姿勢の安定化も図ることができる。
【００２２】
本発明では、前記軌道計算工程は、前記重心位置ずれ算出工程にて算出された重心位置ずれに応じて、重心の位置ずれ方向とは逆向きに足平を回動させる動きを軌道計算に加える足平角度調整工程を備えることが好ましい。
【００２３】
このような構成によれば、足平を床面に倣わせることができ、ロボットをより一層安定化させることができる。
【００２４】
本発明の移動ロボットは、遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットであって、遊脚を離床させてから移動方向に振り出して着床させるまでの一歩分動作を実行させる移動動作実行部と、一歩分の動作の実行中に次の一歩における動作の軌道を再計算する再計算部と、を備え、前記再計算部は、一歩分の動作の後に目標とする重心位置と実際の重心位置との位置ずれを算出する重心位置ずれ算出部と、目標とする重心位置を実際の重心位置に基づいて更新する重心位置更新部と、前記重心位置更新部にて更新された更新重心位置を基準にして次の移動動作において実行する移動動作の軌道を計算する軌道計算部と、を備えることを特徴とする。
【００２５】
このような構成によれば、前記発明と同様の作用効果を奏することができる。すなわち、次の動作を無理なく円滑に進行可能な軌道計算を行うので、常に安定した移動動作を継続させることができる。
【発明の効果】
【００２６】
本発明によれば、実際の重心位置を確認しつつ新たに重心位置を更新して次の一歩動作の軌道を計算するための条件を変更させるので、仮に外乱等によって重心軌道がずれた場合でも次の動作に連続的に滑らかに移行して安定した歩行を継続できる。
【発明を実施するための最良の形態】
【００２７】
以下に、本発明を実施するための最良の形態について図を参照して説明する。
本発明の移動ロボットの移動制御方法に係る第１実施形態について説明する。
図１は、移動ロボット１００の外観を示す図である。
移動ロボット１００は、体幹部１１０に左脚リンク２００と右脚リンク３００とが股関節部１３０を介して揺動可能に設けられている。
脚リンク２００、３００にも膝関節部４１０、足首関節部４２０、つま先関節部４３０をはじめとする関節部が設けられている。
移動ロボット１００の各関節はアクチュエータ（不図示）を備え、各アクチュエータは体幹部１１０に内蔵された制御部１２０により駆動制御される。すなわち、制御部１２０は、後述する各工程をそれぞれ実行する機能部を格納し、本発明の移動制御方法を実現するものである。
移動ロボット１００には、撮像カメラあるいはレーザー送受信手段によって構成されるセンサ手段（不図示）が設けられている。そして、センサ手段にて取得された情報に基づいて周囲の環境情報（環境地図）および自己位置情報が制御部にて同時認識される。
環境地図情報および自己位置情報に基づいて、制御部は自律的に移動動作を計画し、各アクチュエータに制御指令を与えて歩行動作（移動動作）を実現する。
【００２８】
次に、フローチャートを参照して、本実施形態に係る移動ロボットの移動制御方法について説明する。
図２は、移動ロボットの移動制御方法の全体構成を示すフローチャートである。
まず、本実施形態に係る移動ロボットの移動制御方法は、初期設定工程（ＳＴ１００）と、遊脚を離床させてから移動方向に振り出して着床させるまでの一歩分動作を実行させる歩行動作実行工程（移動動作実行工程）（ＳＴ２００）と、次の歩行動作実行工程における動作の軌道を再計算する再計算工程（ＳＴ３００）と、を備える。
以下、順に説明する。
【００２９】
図３は、初期設定工程（ＳＴ１００）の手順を示すフローチャートである。
初期設定工程（ＳＴ１００）では、まず、初期条件の読み込みを行う（ＳＴ１１０）。
これは、操作者によって予め入力された初期条件や初期設定を読み込む工程である。
操作者が与える初期条件としては、走行あるいは歩行などの移動の動作態様、移動速度、相対ＺＭＰ軌道、終了条件（継続時間あるいは移動距離）、などが例として挙げられる。
【００３０】
動作態様を走行とすると、両脚がともに空中に浮く空中相が存在することになる。
動作態様を歩行とすると、遊脚と支持脚とが交互に右脚３００と左脚２００とで入れ替わり、その間に空中相を挟むことなく接地相の連続となる。本実施形態では歩行を例にして説明する。
【００３１】
移動速度は、移動ロボット１００の重心の水平方向速度として与えることができる。相対ＺＭＰ軌道は、支持脚の足平の基準点に対する目標ＺＭＰの位置の経時的データである。例えば、相対ＺＭＰ軌道を支持脚の足平の中心に固定するように設定することができる。あるいは、支持脚の足平の内部において後方から前方へ移動するような軌道を設定してもよい。
【００３２】
次に、初期軌道の計算が実行され、動作開始から数歩目（例えば二歩目）の着地までの重心の相対軌道が算出される（ＳＴ１２０）。重心の相対軌道は、初期条件として与えた重心の水平方向速度のもとで実際のＺＭＰが目標ＺＭＰの軌道に一致するように算出される。
【００３３】
次に、ＳＴ１２０にて算出された重心の相対軌道を実現する各関節の角度を算出する（ＳＴ１３０）。これは、重心の速度（ｑ′）と各関節の速度（θ′）とを関係づけるヤコビ方程式を解くことによって求められる。
このようにして実現すべき動作（関節角度）が求められたところで初期設定工程（ＳＴ１００）を終了し、次の歩行動作実行工程（ＳＴ２００）に移行する。
【００３４】
図４は、歩行動作実行工程（移動動作実行工程）（ＳＴ２００）の手順を示すフローチャートである。
歩行動作実行工程（ＳＴ２００）では、まず、実現すべき動作（関節角度）を読み込んで歩行動作を開始し（ＳＴ２１０）、遊脚に設定されている脚を離床させて持ち上げる（図５参照）。
なお、片脚による立脚状態になった段階では脚の関節を構成するアクチュエータのゲインを大きくして設定条件内の最大値にする。
ここでいう脚とは遊脚および立脚の両方であり、両脚の関節のゲインを最大化する。
この状態で遊脚を移動方向に振り出して着地位置に向けて駆動させる（ＳＴ２２０）（図６参照）。
【００３５】
そして、遊脚が着地位置に着床する直前において遊脚の関節を構成するアクチュエータのゲインを下げる（ＳＴ２３０）。ゲインを下げる関節としては、遊脚の足首およびつま先部である末端部分の関節４２０、４３０だけでもよい。あるいは、末端部分の関節ではなく、膝関節４１０のゲインを下げてもよい。または、末端部分および膝関節を含めた遊脚の関節すべてのゲインを下げてもよい。下げるゲインの程度は姿勢制御が保たれる範囲内において適宜設定可能である。
例えば、最大値の２０％から５０％程度にすることが例として挙げられる。
【００３６】
このように遊脚の関節のゲインを下げた状態で遊脚を着床させる（ＳＴ２４０）（図７参照）。すると、着床時の衝撃が緩和され、滑らかな歩行動作になるとともに脚２００、３００および体幹部１１０の損壊が防止される。そして、遊脚として着床した脚の足平内にＺＭＰを移し、遊脚と支持脚とを交替させる（ＳＴ２５０）。
これで歩行動作の一歩が終了し、再計算工程（ＳＴ３００）が開始する。
【００３７】
図８は再計算工程（ＳＴ３００）の手順を示すフローチャートである。
再計算工程（ＳＴ３００）にあっては、まず、現状データの取得を行う（ＳＴ３１０）。すなわち、各関節の実際の角度データを取得する。
本実施形態では、前述の歩行動作実行工程（ＳＴ２００）において、遊脚を着床させる直前に遊脚の関節のゲインを下げる（ＳＴ２３０）。これにより着床時の衝撃は緩和されるが、同時にロボット自体の重量によって遊脚が沈みこみ過ぎたり、外乱に対する頑健さが低下してしまう。そのため目標とする関節角度に対して実際の関節角度がずれてしまうことが生じやすい。
例えば、前方から後方に向けての外乱が作用した場合、図９に示すように移動ロボット１００が後ろ向きに傾斜してしまう。そこで、実際の関節角度を取得したうえで（ＳＴ３１０）、この現状データと目標関節角度とを対比して関節角度のずれを算出する（ＳＴ３２０）。
【００３８】
このように関節角度のずれを求めたところで（ＳＴ３２０）、この関節角度のずれに応じて目標値の変更を行う（ＳＴ３３０）。
ＳＴ３２０において関節角度の目標値からの偏差（ずれ）を求めているところ、角度偏差を減少させるように関節角度の目標値を変更する（ＳＴ３３０）。
【００３９】
ここで、関節角度の目標値を変更するにあたっては、角度偏差がある制限値を超えた場合に目標変更を行うこととして目標の変更を行わない偏差の制限値を設定しておく。
例えば、この偏差の制限値を２°に設定したとし、ある関節において角度の目標値が５０°であったところ実際は４８°になっており角度偏差が２°ある場合、角度偏差を減少させる目標値の設定変更は行わず、目標値は５０°のままで維持する。
一方、ある関節において関節角度の目標値が５０°であったところ実際は４６°になっており角度偏差が４°ある場合、角度偏差を減少させるように目標値の設定変更を行い、この例では目標値を４６°にする。
【００４０】
また、一回で変更する量の上限を設定しておく。
例えば、変更する上限量を５°に設定したとし、ある関節において角度の目標値が５０°であったところ実際は４０°になっており角度偏差が１０°ある場合、角度偏差を減少させるように目標値の設定変更を行い、この例では目標値を４５°にする。
【００４１】
そして、ＳＴ３４０において、支持脚のゲインを戻す。
これは、ＳＴ２３０において着床前に脚関節のゲインを下げていたところ、下げていたゲインを戻して新たに設定した関節角度の目標値に向けて駆動させる。
このとき、現状と目標値との差が小さい関節のゲインについては早く戻し、現状と目標との差が大きい関節のゲインはゆっくり戻すようにする。
例えば、先のＳＴ３３０にて関節角度の目標値を設定変更したところ、この変更量の大きさに応じてゲインを戻す速さを変化させる。
【００４２】
次に、ＳＴ３５０において、重心ずれを算出する。すなわち、ＳＴ１２０において算出した重心の目標軌道に対して実際の重心位置がもつ偏差を求める。
関節角度としてはＳＴ３３０にて変更した関節角度の設定目標に基づいて移動ロボット１００の状態を把握し、移動ロボット１００の重心位置を求めるとともに目標軌道からのずれ（偏差）を算出する。
重心のずれは、脚末端の関節（例えばつま先の関節）を中心にした回転角Δθとして求める（図１０参照）。そして、ＳＴ３６０において、実際の重心位置に基づいて重心位置を更新する。
ここで、重心位置を更新するにあたっては、目標重心位置と実際の重心位置とが一致するように目標重心位置を更新してもよく、あるいは重心位置ずれが減少するように目標重心位置を更新してもよい。たとえば、重心位置ずれが５０％減少するように目標重心位置を設定更新してもよい。ある程度重心位置ずれを解消するようにすれば累積偏差が増大することもなく、また、目標重心位置を実際の位置に合わせ過ぎると外乱に影響されすぎて却って不安定になる場合もありうる。したがって、目標重心位置を実際の位置にどの程度まで合わせるかは適宜設定しておくことが望ましい。
【００４３】
次に、ＳＴ３７０において、軌道計算を実行する。すなわち、ＳＴ３６０にて新たに更新された重心位置から出発して、次の一歩の歩行を実現するための重心軌道および脚の軌道を算出する。
軌道の再計算にあたって加味する点を含めて図１１を参照して説明する。
【００４４】
図１１は、軌道計算工程の手順を示すフローチャートである。
軌道の再計算にあたっては、まず、重心ずれと更新した重心位置の読み込みを行う（ＳＴ３７１）。そして、次に、軌道計算する際の相対ＺＭＰを調整する（ＳＴ３７２）。相対ＺＭＰは初期設定で入力しているところ、移動ロボット１００の重心が予定の軌道からずれる場合には安定化を図るために相対ＺＭＰの位置を調整する。
例えば、相対ＺＭＰを足平の中心に固定したときに重心が後ろにずれる場合には、相対ＺＭＰを前にずらす（図１２中のＰ１からＰ２へ）。
このように重心ずれの方向とは逆方向に相対ＺＭＰをずらすことによって安定化を実現するように相対ＺＭＰを調整する。相対ＺＭＰの位置変更量としては、急な変化は避け、たとえば、重心ずれの５％から１０％を一歩の間に改善する程度の変更を加える。
【００４５】
次に、上体姿勢角の調整を行う（ＳＴ３７３）。
関節角度のずれに応じて関節角度の目標値を変更したところ（ＳＴ３３０）、このような変更により上体姿勢が目標値からずれることになってしまう。
脚のゲイン下げや外乱の影響で例えば重心のずれが後ろ方向に発生した場合、移動ロボット１００の上体姿勢は直立よりも後ろに反った姿勢になってしまう。そこで、前回り方向の回転運動量を軌道計算に加味することで上体姿勢を目標値に近づける（図１３参照）。すなわち、重心位置ずれに応じて、重心の位置ずれ方向とは逆向きに上体姿勢を回転させる回転運動量を軌道計算に加える。
加味する回転運動量は、一回でずれを全部直すのではなく、ずれ分の２０％〜４０％を一歩の間に改善する程度を加える。
移動ロボット１００の目標ＺＭＰが適切に制御されていれば、上体姿勢のずれが移動ロボット１００の歩行安定性に与える影響は小さいが、関節の可動範囲の問題や見た目の印象の観点から上体姿勢の適正化を図ることが好ましい。
【００４６】
次に、脚末端角度の調整を行う（ＳＴ３７４）。
これは、ＳＴ３７３にて上体姿勢の目標値からのずれ分を軌道計算に加えることとしたが、これとは別に上体姿勢が目標値からずれたずれ分を末端関節の目標角度に加味する。上体姿勢が目標値からずれた分だけ移動ロボット１００が床面に対して傾斜していると見積もれるため、足平も床面に対して傾斜してしまっていることになる。そこで、上体姿勢の傾き分を足平の角度に加味することで足平を床面に倣わせることができる（図１３参照）。すなわち、上体姿勢の傾き分は重心位置ずれに応じて求められるので、重心位置ずれに応じた量の角度分を脚末端関節の動きの軌道に加算することで足平の床面倣いを適切にすることができる。
脚末端関節としては、足首および／またはつま先の関節とすることで動きの反応が速くなり好ましい。
【００４７】
以上のようにＳＴ３７２からＳＴ３７４の情報を加味して、ＳＴ３７５において軌道の再計算を実行する。これにより、新たな重心位置から次の一歩の着地までの軌道が計算される。
【００４８】
軌道の再計算が終了したところで（ＳＴ３７５）、次にＳＴ３８０において、算出された軌道を実現する関節角度を算出する。そして、目標関節角度が算出されたところで再計算工程（ＳＴ３００）が終了する。
【００４９】
終了条件（ＳＴ４００）が満たされていない場合には（ＳＴ４００：ＮＯ）、歩行動作実行工程（ＳＴ２００）に戻って歩行動作が実行される。
これにより、新たに計算された軌道に基づいて歩行動作が実行され、遊脚の振り出し（ＳＴ２２０）、着床前のゲイン下げ（ＳＴ２３０）および着床（ＳＴ２４０）によって移動ロボット１００の歩行が進行される。
【００５０】
終了条件を満たす場合には（ＳＴ４００：ＹＥＳ）、終了処理により移動ロボット１００の移動制御を終了する。
【００５１】
以上、このような制御構成を備える第１実施形態によれば、次の効果を奏することができる。
（１）再計算工程（ＳＴ３００）により、次の一歩動作は再計算された軌道に基づいて実行される。このように次の動作を無理なく円滑に進行可能な軌道計算を行うので、姿勢が傾いたりして動作が目標からずれてしまうことがあっても、常に安定した歩行動作を継続させることができる。
【００５２】
（２）関節角度ずれ算出工程（ＳＴ３２０）にて目標からの角度ずれを算出し、目標関節角度変更工程（ＳＴ３３０）にて関節角度のずれをある程度受け入れて目標値を変更するので、着地位置のずれを補正して次の動作に円滑に移行させることができる。
【００５３】
（３）遊脚を着床させる前に遊脚の関節のゲインを下げる遊脚関節ゲイン下げ工程（ＳＴ２３０）を備えることにより、着床時の衝撃を緩和することができる。遊脚のゲインを下げて着床させてしまうと自分の重みによって沈み込み過ぎたり、外乱の影響を受けやすくなってしまうという問題が生じやすくなるが、本発明では再計算工程（ＳＴ３００）により再計算された軌道に基づいて次の一歩動作を行うので、自重による沈みや外乱の影響があっても円滑に移動動作を継続することができる。
【００５４】
（４）重心位置ずれと逆方向に相対ＺＭＰを設定更新する相対ＺＭＰ更新工程（ＳＴ３７２）を備えるので、移動動作時における目標軌道からのずれを少なくすることができる。これにより、移動動作のより一層の安定化を図ることができる。
【００５５】
（５）重心の位置ずれ方向とは逆向きに上体姿勢を回転させる回転運動量を軌道計算に加える上体姿勢調整工程（ＳＴ３７３）を備えることにより、適正な姿勢で移動動作を継続することができる。
【００５６】
（６）重心の位置ずれ方向とは逆向きに足平を回動させる動きを軌道計算に加える足平角度調整工程（ＳＴ３７４）を備えるので、足平を床面に倣わせることができ、ロボット１００をより一層安定化させることができる。
【００５７】
なお、本発明は上記実施形態に限定されず、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれる。
相対ＺＭＰ更新工程および上体姿勢調整工程では、その調整量を判断するにあたり、重心ずれの累積値を計算しておき、その累積値に基づいて調整量を決定してもよい。毎回の軌道計算で前回のずれ分を全て解消しようとすると補正が利きすぎてしまって却って安定性を失う場合もあるところ、重心ずれの累積値の所定％ずつを調整していくことにより急激な補正を回避して安定性を保つことができる。
上記実施形態では歩行動作を例にして説明したが、空中相を間に挟む走行動作であっても本発明を適用できることはもちろんである。
移動ロボットが移動動作する際にすべての区間において本発明の制御方法を用いてもよいが、すべてを本発明の形態としなくても移動経路の一部の区間において本発明を採用してもよい。
上記実施形態においては説明の都合上、歩行動作実行工程ＳＴ２００と再計算工程ＳＴ３００との手順をシリアルに一つずつ説明したが、歩行動作を円滑に進行させるため、歩行動作実行工程ＳＴ２００と再計算工程ＳＴ３００とはパラレルに進行するものである。すなわち、現在の歩行動作実行工程ＳＴ２００を実行中に次の歩行動作実行工程における軌道を再計算工程ＳＴ３００にて計算する。
【図面の簡単な説明】
【００５８】
【図１】移動ロボットの外観を示す図である。
【図２】移動ロボットの移動制御方法の全体構成を示すフローチャート。
【図３】初期設定工程の手順を示すフローチャート。
【図４】歩行動作実行工程の手順を示すフローチャート。
【図５】歩行動作において遊脚を離床させた様子を示す図。
【図６】歩行動作において遊脚を振り出している様子を示す図。
【図７】歩行動作において遊脚を着床させた様子を示す図。
【図８】再計算工程の手順を示すフローチャート。
【図９】着床時に外乱の影響で後傾した様子を示す図。
【図１０】重心ずれの算出を説明するための図。
【図１１】軌道計算工程の手順を示すフローチャート。
【図１２】相対ＺＭＰをずらして歩行姿勢を安定させる様子を説明するための図。
【図１３】上体姿勢および足平角度を調整する様子を説明するための図。
【符号の説明】
【００５９】
１００…移動ロボット、１１０…体幹部、１２０…制御部、１３０…股関節部、２００…左脚リンク、３００…右脚リンク、４１０…膝関節部、４２０…足首関節部、４３０…つま先関節部。
【図１】
0005286878.tif 000002
【図２】
0005286878.tif 000003
【図３】
0005286878.tif 000004
【図４】
0005286878.tif 000005
【図５】
0005286878.tif 000006
【図６】
0005286878.tif 000007
【図７】
0005286878.tif 000008
【図８】
0005286878.tif 000009
【図９】
0005286878.tif 000010
【図１０】
0005286878.tif 000011
【図１１】
0005286878.tif 000012
【図１２】
0005286878.tif 000013
【図１３】
0005286878.tif 000014