(57)【要約】【課題】最適かつ実現可能な動作パターンを容易かつ迅速に生成する移動ロボットの制御方法を提供する【解決手段】設定条件を設定する条件設定工程と、動作の軌道を計算する軌道計算工程と、軌道計算工程にて生成された軌道に基づいた移動動作を実行する移動動作実行工程と、を備える。条件設定工程にて設定される条件には各関節を構成するモータの性能値が含まれる。軌道計算工程は、モータの性能値を織り込んで重心速度と各モータの出力レベルとを関係づけるように規格化された規格化ヤコビアンを用いて前記重心軌道を実現する各モータの出力レベルを算出する。モータの性能値を織り込んでヤコビアンを規格化しているので、重心速度を実現するモータの出力レベルを直接に算出することができ、モータの性能値を超えるような実行不可能な解はなくなるので、移動ロボットの動作を安定に継続させることができる。【選択図】なし【特許請求の範囲】
【請求項１】
遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットの移動動作を制御する移動ロボットの制御方法において、
設定条件を設定する条件設定工程と、
動作の軌道を計算する軌道計算工程と、
前記軌道計算工程にて生成された軌道に基づいた移動動作を実行する移動動作実行工程と、を備え、
前記条件設定工程にて設定される条件には各関節を構成するモータの性能値が含まれ、
前記軌道計算工程は、
安定な移動を実現する重心の軌道を算出する重心軌道算出工程と、
モータの性能値を織り込んで重心速度と各モータの出力レベルとを関係づけるように規格化された規格化ヤコビアンを用いて前記重心軌道を実現する各モータの出力レベルを算出するモータ出力レベル算出工程と、を備える
ことを特徴とする移動ロボットの制御方法。
【請求項２】
請求項１に記載の移動ロボットの制御方法において、
前記条件設定工程にて設定されるモータの性能値としてはモータの最高回転速度とモータからそれぞれの関節動作への減速比とが含まれ、
前記モータ出力レベル算出工程において前記規格化ヤコビアンは各モータの最高回転速度とモータから関節速度への減速比とを織り込んで規格化されている
ことを特徴とする移動ロボットの制御方法。
【請求項３】
請求項１または請求項２に記載の移動ロボットの制御方法において、
前記条件設定工程にて設定される条件には各関節を構成するモータごとに設定された重みを要素とする重み行列が含まれ、
前記出力レベル算出工程は、前記各モータの出力レベルを算出するにあたり前記重み行列を用いて各モータの負担を分配する
ことを特徴とする移動ロボットの制御方法。
【請求項４】
請求項３に記載の移動ロボットの制御方法において、
前記重み行列を移動ロボットの移動動作の段階に応じて変化させる
ことを特徴とする移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、自律的に二脚で歩行または走行する移動ロボットの制御方法に関する。
【背景技術】
【０００２】
自律的に二脚で歩行する人型の脚式ロボット（二足歩行型ロボット）の開発が進められている。脚式ロボットはクローラ式の移動体とは異なり、二本の脚部がそれぞれ着床および離床動作を繰り返すことにより歩行移動が実現される。脚部は、複数の関節とこれらの関節を連結接続する複数のリンクとによって構成されている。これにより脚部は多自由度を有し、所定範囲内の任意動作が実現可能となる。
【０００３】
移動ロボットの歩行動作制御にあたっては、まず、移動ロボットの重心について安定な軌道を求め、この軌道を実現する各関節速度の指令情報を算出する方法が採用される。すなわち、目標ＺＭＰを姿勢の安定をはかる位置に設定しながら歩行軌道の生成を行い、この生成された軌道に基づいた歩行を行うべく各関節の動作制御が実行される。
【０００４】
各関節への速度指令を算出する方法としては、位置の微小変位と各関節角度の微小変位とを関連づけるヤコビ行列を用いたヤコビアン方程式の解法によるものが知られている（例えば特許文献１）。特許文献１にあっては、位置の変位ｘ'と関節速度θ'との関係をヤコビアンＪにより、ｘ'＝Ｊ・θ'と表す。そして、特許文献１にはヤコビアンの逆行列Ｊ−１を用いて関節速度θ'を求める解法、および、逆行列Ｊ-1ではなく転置行列ＪＴを利用して関節速度θ'を求める解法が開示されている。
このように求められた関節速度θ'により各関節が駆動制御されて所望の動作が実現される。
【０００５】
なお、ロボットの歩行制御に関しては、特許文献２から特許文献６にも関連の記載がある。
【０００６】
【特許文献１】特開平０６−３２８３７８号公報
【特許文献２】特開平１０−２７７９６９号公報
【特許文献３】特開２００３−８４８０２号公報
【特許文献４】特開２００５−１７７８８４号公報
【特許文献５】特開平７−６８４８０号公報
【特許文献６】特開平８−２６３１２８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、上記のごとくヤコビアン方程式を解いて得られた関節速度指令によって移動ロボットを駆動制御しようとした場合、その関節速度指令の組み合わせが適切とは言えない場合がありうる。たとえば、単純にヤコビアン方程式を解いて解を求めると、関節速度の自乗和が最小になる組み合わせが求められるが、このような解の組み合わせは各関節の駆動量を適切に配分しているわけではない。そのため、たとえば、特定の関節の負担が過度に大きくなったり、さらには、ある関節への速度指令値がその関節を構成するモータの最大速度を超過している場合もありうる。
【０００８】
そこで従来は、移動ロボットに教示する動作パターンを予め実験的あるいはシミュレーションによって動かしてみて、実現可能なように各関節の負担を調整していた。たとえば、ある軸にかかる負担が大きすぎる場合にはその関節の動きが少なくなるように各関節の速度を再調整して計算しなおしていた。
しかしながら、実験的あるいはシミュレーションによる試行錯誤によって好適な解の組み合わせにたどり着くには無理があり、脚部の自由度（一般には７自由度）が多いほどその調整には膨大な時間がかかる。
【０００９】
なお、従前は、二脚式の移動ロボットを安定的に歩行させる制御系を実現させること自体が困難であったため、安定歩行が優先され、ロボットの動作速度は比較的ゆっくりでもよかった。そのため、各関節のモータの出力に余裕があり、ある程度適当に関節動作の分担を割り振ったとしてもモータ出力をオーバーすることはなかった。
【００１０】
しかし近年では移動ロボットの動作速度を向上させる要求が高まっており、よりスピーディーで滑らかな動作が求められている。
このような状況なもと、各関節はモータ出力の上限値に近いところでの動作が求められており、バランスよく関節速度を配分しないと特定の関節の動作に無理が生じてしまう。そして、各関節がモータ出力の上限値に近いところで動作することが要求されると許容される解の組み合わせ範囲がますます狭くなるため、実現可能な関節動作の配分を試行錯誤で探ることにはますますの困難が生じている。そのため、最適で実行可能なヤコビアン方程式の解を求め、移動ロボットを最適に制御する方法が求められていた。
【００１１】
本発明の目的は、最適かつ実現可能な動作パターンを容易かつ迅速に生成する移動ロボットの制御方法を提供することにある。
【課題を解決するための手段】
【００１２】
本発明の移動ロボットの制御方法は、遊脚と支持脚とを交互に交替して移動を自律的に実行する二脚式移動ロボットの移動動作を制御する移動ロボットの制御方法において、設定条件を設定する条件設定工程と、動作の軌道を計算する軌道計算工程と、前記軌道計算工程にて生成された軌道に基づいた移動動作を実行する移動動作実行工程と、を備え、前記条件設定工程にて設定される条件には各関節を構成するモータの性能値が含まれ、前記軌道計算工程は、安定な移動を実現する重心の軌道を算出する重心軌道算出工程と、モータの性能値を織り込んで重心速度と各モータの出力レベルとを関係づけるように規格化された規格化ヤコビアンを用いて前記重心軌道を実現する各モータの出力レベルを算出するモータ出力レベル算出工程と、を備えることを特徴とする。
【００１３】
このような構成において、軌道計算工程のモータ出力レベル算出工程により規格化ヤコビアンＪＢを用いて重心速度Ｑ'からモータの出力レベルΛを算出する。
このように算出されたモータの出力レベルΛに基づいて各関節を駆動制御して移動ロボットの動作制御を行う（移動動作実行工程）。例えば、モータの出力レベルΛから関節速度ΘＪ'を算出して移動ロボットの動作制御を行う。
【００１４】
本発明では、モータの性能値を織り込んでヤコビアンを規格化しているので、重心速度を実現するモータの出力レベルを直接に算出することができる。
このようなモータ出力レベル算出工程を経ることにより、モータの性能値を超えるような実行不可能な解はなくなるので、移動ロボットの動作を安定に継続させることができる。
さらには、モータの出力レベルの自乗和を最小にする解を得ることにより、モータの負担を適正に配分することができ、特定の軸に大きな負担がかかるような事態を回避することができる。したがって、再調整の手間をかけなくても円滑で安定した移動ロボットの動作制御を実行することができる。そして、各モータの出力の上限値付近までロボットの動作速度を上げた場合でも適正で実行可能な解を得ることができるので、スピーディーで滑らかな動作を実現するという画期的な効果を奏することができる。
【００１５】
本発明では、前記条件設定工程にて設定されるモータの性能値としてはモータの最高回転速度とモータからそれぞれの関節動作への減速比とが含まれ、前記モータ出力レベル算出工程において前記規格化ヤコビアンは各モータの最高回転速度とモータから関節速度への減速比とを織り込んで規格化されていることが好ましい。
【００１６】
このような構成によれば、前記規格化ヤコビアンは各モータの最高回転速度とモータから関節速度への減速比とを織り込んで規格化されるので、この規格化ヤコビアンを用いて重心速度と各モータの出力レベルとを直接に関係づけることができる。また、従来は、モータや減速比の変更があるたびに実験やシミュレーションを繰り返して適切な関節速度の配分を再調整する必要があったところ、本発明によれば、モータや減速比の変更があった場合でもそれに対応したモータ出力が簡便に得られるので、ロボット制御の調整を非常に簡素化することができる。
【００１７】
本発明では、前記条件設定工程にて設定される条件には各関節を構成するモータごとに設定された重みを要素とする重み行列が含まれ、前記モータ出力レベル算出工程は、前記各モータの出力レベルを算出するにあたり前記重み行列を用いて各モータの負担を分配することが好ましい。
【００１８】
このように重み行列を導入して適切に関節ごとの重みｗを設定することにより、すべての関節に最適に負担を配分して、特定の関節に負担が集中することを防ぐことができる。
【００１９】
本発明では、前記重み行列を移動ロボットの移動動作の段階に応じて変化させることが好ましい。
【００２０】
このような構成によれば、動作中のすべての段階において特定のモータに過度の負担がかかることを回避して、円滑な動作を実現できる。
【発明の効果】
【００２１】
本発明によれば、モータの性能値を織り込んでヤコビアンを規格化しているので重心速度を実現するモータの出力レベルを直接に算出することができる。その結果、モータの性能値を超えるような実行不可能な解はなくなるので、移動ロボットの動作を安定に継続させることができる。
【発明を実施するための最良の形態】
【００２２】
以下に、本発明を実施するための最良の形態について説明する。
本発明の移動ロボットの制御方法に係る第１実施形態について説明する。
図１は、移動ロボット１００の外観を示す図である。
移動ロボット１００は、体幹部１１０に左脚リンク２００と右脚リンク３００とが股関節部１３０を介して揺動可能に設けられている。脚リンク２００、３００にも膝関節部４１０、足首関節部４２０、つま先関節部４３０をはじめとする関節部が設けられている。移動ロボット１００の各関節はアクチュエータ（不図示）を備え、各アクチュエータは体幹部１１０に内蔵された制御部１２０により駆動制御される。すなわち、制御部１２０は、後述する各工程をそれぞれ実行する機能部を格納し、本発明の制御方法を実現するものである。
【００２３】
移動ロボット１００には、撮像カメラあるいはレーザー送受信手段によって構成されるセンサ手段（不図示）が設けられている。そして、センサ手段にて取得された情報に基づいて周囲の環境情報（環境地図）および自己位置情報が制御部にて同時認識される。環境地図情報および自己位置情報に基づいて、制御部は自律的に移動動作を計画し、各アクチュエータに制御指令を与えて歩行動作（移動動作）を実現する。
【００２４】
次に、フローチャートを参照して、本実施形態に係る移動ロボットの制御方法について説明する。
図２は、移動ロボットの制御方法の全体構成を示すフローチャートである。
まず、本実施形態に係る移動ロボットの移動制御方法は、初期設定工程（ＳＴ１００）と、動作の軌道を計算する軌道計算工程（ＳＴ２００）と、歩行動作実行工程（移動動作実行工程）（ＳＴ３００）と、を備える。
以下、順に説明する。
【００２５】
初期設定工程（ＳＴ１００）では、まず、初期条件の読み込みを行う。
これは、操作者によって予め入力された初期条件や初期設定を読み込む工程である。
操作者が与える初期条件としては、走行あるいは歩行などの移動の動作態様、移動速度、相対ＺＭＰ軌道、終了条件（継続時間あるいは移動距離）、などが例として挙げられる。さらには、移動ロボットの各関節を構成している各モータの仕様、すなわち、各モータの最高回転速度Ｖmaxが設定される。また、各関節を構成しているモータの回転速度Ｖと実際の関節速度ΘJ'との比（減速比）Ｒが設定される。
【００２６】
さらに、重心速度Ｑ'と関節を構成するモータの出力レベルΛとの関係を表す規格化ヤコビアンＪＢが設定される。
この規格化ヤコビアンＪＢは、重心速度Ｑ'と関節速度ΘＪ'との関係を表すヤコビアンＪＡに対し、各モータの最高回転速度Ｖmaxと各モータから関節速度への減速比Ｒとを織り込んだものである。
この規格化ヤコビアンＪＢについては後に詳細に説明する。
【００２７】
ここで、動作態様を走行とすると、両脚がともに空中に浮く空中相が存在することになる。
動作態様を歩行とすると、遊脚と支持脚とが交互に右脚３００と左脚２００とで入れ替わり、その間に空中相を挟むことなく接地相の連続となる。
本実施形態では主に歩行を例にして説明する。
【００２８】
移動速度は、移動ロボット１００の重心の水平方向速度として与えることができる。相対ＺＭＰ軌道は、支持脚の足平の基準点に対する目標ＺＭＰの位置の経時的データである。例えば、相対ＺＭＰ軌道を支持脚の足平の中心に固定するように設定することができる。あるいは、支持脚の足平の内部において後方から前方へ移動するような軌道を設定してもよい。
【００２９】
初期設定（ＳＴ１００）の終了後、次に、安定歩行を実現する軌道を計算する軌道計算工程（ＳＴ２００）が実行される。
軌道計算工程（ＳＴ２００）の手順を図３のフローチャートを参照しつつ説明する。軌道計算工程（ＳＴ２００）にあっては、まず、重心軌道Ｑの算出を行う（重心軌道算出工程、ＳＴ２１０）。重心の相対軌道Ｑは、初期条件として与えた重心の水平方向速度のもとで実際のＺＭＰが目標ＺＭＰの軌道に一致するように算出される。
【００３０】
次に、重心軌道算出工程（ＳＴ２１０）にて算出された重心の軌道Ｑを実現するための各関節のモータ出力レベルΛを算出する（モータ出力レベル算出工程、ＳＴ２２０）。
モータ出力レベルΛは次の式（１）で求められる。
【００３１】
Λ＝ＪB-1・Ｑ'  ………（１）
【００３２】
ここで、モータ出力レベルΛは、モータ最高出力に対する出力割合である。
モータ出力レベルΛの要素である各モータの出力割合をλ１、λ２、λ３・・λｉ・・λｎ（ｎは脚リンクを構成する関節数）として表すと、０≦λｉ≦１である。
【００３３】
Ｑ'は、重心軌道Ｑの時間微分であり、重心軌道Ｑが重心の並進と回転の要素を有するところ、重心速度Ｑ'は次のように表現される。
【００３４】
【数１】
2009226563.tif 000002
【００３５】
ＪＢは重心速度とモータ出力とを関係づける規格化ヤコビアンである。
ここで、規格化ヤコビアンＪＢとともに式（１）の導出について説明する。
【００３６】
関節速度ΘＪ'と重心速度Ｑ'とはヤコビアンＪＡにより関係づけられる。
【００３７】
Ｑ'＝ＪＡ・ΘＪ'………（２）
【００３８】
なお、ΘＪ'は関節速度であり、各要素である各関節の速度をθ１'、θ２'、θ３'・・・θｎ'（ｎは脚リンクの関節数）として、ΘＪ'＝［θ１'、θ２'、θ３'・・・θｎ'］Ｔである。
【００３９】
また、ヤコビアンＪＡは次のように表わされる。
【００４０】
JＡ＝［ｊ１、ｊ２、・・・、ｊｉ、・・・、ｊｎ］
【００４１】
【数２】
2009226563.tif 000003
【００４２】
【数３】
2009226563.tif 000004
【００４３】
関節速度ΘＪ'とモータ出力レベルΛとの関係は、減速比Ｒと各モータの最高回転速度Ｖmaxとを用いて次ように表わされる。
【００４４】
モータ回転速度Ｖ＝Ｖmax・Λ
ΘＪ'＝Ｒ・Ｖ
＝Ｒ・Ｖmax・Λ………（３）
【００４５】
ここで、減速比Ｒ、モータの最高回転速度Ｖmaxは各関節のモータごとに設定され、次のように表わされる。
【００４６】
Ｒ＝diag（ｒ1、ｒ2、ｒ3、…ｒn、）
Ｖmax＝diag(ｖ1_max、ｖ2_max、ｖ3_max、…ｖｎ_max)
【００４７】
式（３）と式（２）とにより、次の関係が導出される。
【００４８】
Ｑ'＝ＪＡ・ΘＪ'
＝ＪＡ・Ｒ・Λ・Ｖmax………（４）
なお、Ｑ'は重心速度、ＪＡはヤコビ行列、ΘJ'は関節速度、Ｒは減速比、Λはモータ出力レベル、Ｖmaxはモータ最高回転速度。
【００４９】
ここで、式（４）において、モータ出力レベルΛと重心速度Ｑ'とを関係づける規格化ヤコビアンとしてＪＢを定義すると、規格化ヤコビアンＪＢは次のように表わされる。
【００５０】
ＪＢ＝ＪＡ・Ｒ・Ｖmax  ………（４）
【００５１】
このように定義した規格化ヤコビアンＪＢを用いて式（４）を書きなおし、重心速度Ｑ'とモータ出力レベルΛとの関係を規格化ヤコビアンＪＢで表わすと次のようになる。
【００５２】
Ｑ'＝ＪＢ・Λ  ………（５）
【００５３】
したがって、この式（５）より、重心速度Ｑ'を実現するモータ出力レベルΛは、ＪＢの逆行列ＪＢ-1を用いて次のように表わされる。
すなわち、上記式（１）が導出される。
【００５４】
Λ＝ＪB-1・Ｑ'  ………（１）
【００５５】
ここに、モータ出力レベルΛが重心速度Ｑ'より算出される（ＳＴ２２０）。
【００５６】
このようにモータ出力レベル算出工程（ＳＴ２２０）においてモータ出力レベルΛが算出されたところで、次に、関節速度算出工程（ＳＴ２３０）において関節速度ΘＪ'が算出される。
すなわち、上記式（３）のとおり、関節速度Θ'は、モータ出力レベルΛと、モータ最高回転速度Ｖmax、減速比Ｒを用いて次のように求められる。
【００５７】
ΘＪ'＝Ｒ・Ｖmax・Λ  ………（３）
【００５８】
このように重心速度Ｑ'を実現する関節速度ΘＪ'が求められたところで、軌道計算工程（ＳＴ２００）が終了し、次に、ＳＴ３００において歩行動作実行工程が行われる。
歩行動作実行工程（ＳＴ３００）では、実現すべき動作（関節速度ΘＪ'）を読み込んで歩行動作を実行する。すると、遊脚に設定されている脚を持ち上げて離床させ、その脚を軌道に沿って振り出し、着地位置に着床させるという歩行動作が実行される。
【００５９】
終了条件（ＳＴ４００）が満たされていない場合には（ＳＴ４００：ＮＯ）、軌道計算工程（ＳＴ２００）に戻って歩行動作が実行される。
これにより、新たに計算された軌道に基づいて歩行動作が実行される。
【００６０】
終了条件を満たす場合には（ＳＴ４００：ＹＥＳ）、終了処理により移動ロボット１００の移動制御を終了する。
【００６１】
以上、このような制御構成を備える第１実施形態によれば、次の効果を奏することができる。
（１）本実施形態では、軌道計算工程（ＳＴ２００）において、上記式（１）に示すごとく規格化ヤコビアンＪＢを用いて重心速度Ｑ'からモータの出力レベルΛを算出している。このモータの出力レベルΛから関節速度ΘＪ'を算出して移動ロボットの動作制御を行っている。規格化ヤコビアンＪＢは、モータの最高回転速度Ｖmaxおよび減速比Ｒを考慮にいれたヤコビ行列であり、この規格化ヤコビアンＪＢによってロボットの動作軌道と各モータの出力レベルとを直接に関係づけることができる。このような式（１）を用いたモータ出力レベル算出工程（ＳＴ２２０）により、モータ出力レベルΛの自乗和を最小にした解の組み合わせを得る。したがって、このようなモータ出力算出工程（ＳＴ２２０）を経ればモータの最高回転速度Ｖmaxをオーバーする実行不可能な解はでないので、移動ロボットの動作を安定に継続することができる。
さらには、出力レベルが最適に配分されることになり、特定の軸（関節）に大きな負担がかかることなく、再調整するなどの手間をかけなくても円滑で安定した動作を実行することができる。そして、各モータの出力の上限値付近までロボットの動作速度を上げた場合でも適正で実行可能な解を得ることができるので、スピーディーで滑らかな動作を実現するという画期的な効果を奏することができる。
【００６２】
（２）ロボットのモータや減速比を変更した場合でも、規格化ヤコビアンＪＢの設定をそれに合わせて変えるだけで最適な制御を継続することができる。
従来は、モータや減速比の変更があるたびに実験やシミュレーションを繰り返して適切な関節速度の配分を再調整する必要があった。
この点、本実施形態によればモータや減速比の変更があった場合でもそれに対応したモータ出力比が簡便に得られるので、ロボット制御の調整が非常に簡素化される。
【００６３】
（第２実施形態）
次に、本発明の第２実施形態について説明する。
第２実施形態の基本的構成は第１実施形態に同様であり、第２実施形態が特徴とするところはモータ出力レベル算出工程において重み設定を導入する点にある。
すなわち、初期設定工程（ＳＴ１００）において重み行列Ｗを設定する。
重みは関節ごとに設定され、重み行列Ｗは次のように表わされる。
【００６４】
Ｗ＝diag［ｗ１、ｗ２、ｗ３、……ｗｎ］
【００６５】
そして、モータ出力レベル算出工程（ＳＴ２２０）においては、規格化ヤコビアンＪＢと前記重み行列Ｗとにより、次のようにモータ出力レベルΛを算出する。
【００６６】
Λ＝Ｗ-1・ＪBT・（ＪB・Ｗ-1・ＪBT）-1・Ｑ'………式（６）
【００６７】
ここで、Ｑ'は重心速度、ＪBは規格化ヤコビアン、Λはモータ出力レベル、Ｗは重み行列である。
【００６８】
このようにして算出されたモータ出力レベルΛから関節速度算出工程（ＳＴ２３０）において関節速度ΘＪ'を算出し、この関節速度ΘJ'を読み込んで歩行動作が実行される（ＳＴ３００）。
【００６９】
このような第２実施形態によれば、上記実施形態の効果に加えて次の効果を奏することができる。
（３）重み行列を導入して適切に関節ごとの重みｗを設定することによりすべての関節に最適に負担を配分して、特定の関節に負担が集中することを防ぐことができる。
【００７０】
（４）モータ出力レベル算出工程（ＳＴ２２０）において、ヤコビアンにモータ仕様および減速比を織り込んだ規格化ヤコビアンＪＢを導入しており、このうえに重みを設定している。
従前の方法では関節速度に重み付けを行わなければならないことからモータの負担と直結せず、わかりにくい構成となっていた。
この点、本実施形態では、重みの意味付けがモータ出力の負担率ということになり、初期設定工程における重み設定において操作者が認識しやすい値であり、設定作業が簡単になる。
【００７１】
（変形例）
次に、本発明の変形例について説明する。
変形例の基本的構成は第２実施形態に同様であるが、変形例にあっては重みを固定した値ではなく可変にした点に特徴がある。
移動ロボットが歩行または走行する際には、離床時、振り出し時、着床時などの動きのタイミングによってどの関節の負担が大きいかが異なってくる。
そこで、このようなタイミングに応じて重みを適切に変更し、どのタイミングにおいても特定のモータに過度の負担がかからないようにする。
このような重み変更の一例を図４、図５に示す。
図４、図５ともに、ある関節を構成するモータに対する重みを変更するタイミングを示す一例である。
【００７２】
歩行、走行の場合にどのタイミングでどの関節に負担が生じるかは既知の情報であることから、たとえば図４に示されるように、動きのタイミングに応じて重みを変更したうえで上記式（６）を適用してモータ出力レベルを算出してもよい。
たとえば、遊脚を振り出すときの股ピッチ軸、立脚から遊脚に遷移するときの足首ピッチ軸、着床するときの膝ピッチ軸、などが関節に負担のかかる瞬間であるので、このようなタイミングで重みを変更（この場合は重みを大きく）して、各モータの出力レベルを算出する。
【００７３】
あるいは、図５に示されるように、関節速度が閾値を超えてしまう恐れがあるタイミングに応じて重みを変更してもよい。
重心速度Ｑ'からヤコビアンＪＡを用いることにより関節速度ΘJ'を算出ことができる（上記式（２）参照）。
そこで、式（２）により関節速度Θ'を試算しておく。
そして、予め設定した関節速度の閾値を超えるところで重みを変更させる。
このように重みを変更するタイミングを決めたうえで上記式（６）を適用してモータ出力レベルを算出してもよい。
【００７４】
または、モータ出力レベルに応じて重みを変更してもよく、たとえば、仮に重みを設定せずに上記式（１）（Λ＝ＪB-1・Ｑ'）によってモータ出力レベルを算出したうえで、この試算において予め設定された閾値を超えるタイミングに合わせて重みを設定してもよい。
なお、上記の例では重みをデジタルに変更する場合を説明したが、関節速度やモータ出力レベルに応じて連続的に重みを変更させてもよいことはもちろんである。
【００７５】
このような変形例によれば、動作中のすべての段階において特定のモータに過度の負担がかかることを回避して、円滑な動作を実現できる。
【００７６】
なお、本発明は上記実施形態に限定されず、本発明の目的を達成できる範囲での変形、改良等は本発明に含まれる。
上記の説明では主として歩行する場合を例にして説明したが、移動態様が走行であっても本発明を適用できることはもちろんである。
【図面の簡単な説明】
【００７７】
【図１】移動ロボットの外観を示す図。
【図２】移動ロボットの制御方法の全体構成を示すフローチャート。
【図３】軌道計算工程の手順を示すフローチャート。
【図４】変形例において、重みを変更する一例を示す図。
【図５】変形例において、重みを変更する一例を示す図。
【符号の説明】
【００７８】
１００…移動ロボット、１１０…体幹部、１２０…制御部、１３０…股関節部、２００…左脚リンク、３００…右脚リンク、４１０…膝関節部、４２０…足首関節部、４３０…つま先関節部、ＪＡ…ヤコビアン、ＪＢ…規格化ヤコビアン、Ｑ…重心軌道、Ｑ'…重心速度、Ｒ…減速比、Ｖ…モータ回転速度、Ｖmax…モータ最高回転速度、Ｗ…重み行列、Θ、θ、ΘJ…関節角度、Θ'、θ'、ΘJ'…関節速度、Λ、λｉ…モータ出力レベル。
【図１】
2009226563.tif 000005
【図２】
2009226563.tif 000006
【図３】
2009226563.tif 000007
【図４】
2009226563.tif 000008
【図５】
2009226563.tif 000009