(57)【要約】【課題】ロボットの各足の接地性とロボットの姿勢の安定性を両立することができる。【解決手段】脚式移動ロボットが有する鉛直力分配部は、各足の分配鉛直床反力の合計値を目標全床反力の鉛直力に一致させる条件と、各足の分配鉛直床反力の値を所定の閾値より大きくさせる条件とを制約条件として定め、各足の分配鉛直床反力に基づく目標ＺＭＰ周りの床反力モーメントと、補償モーメントとの間の誤差を第１の誤差とし、各足の分配鉛直床反力に基づく各足床反力中心点と、各足平の所定の基準位置との間の誤差を第２の誤差として、第１の誤差および第２の誤差の重み付き和を最小化する評価関数を定めて最適化問題を構成し、その最適化問題を求解することによって前記各足の分配鉛直床反力を計算する。【選択図】図６Ｂ
2014184499.tif 000002
【特許請求の範囲】
【請求項１】
凸多角形状を有する足平と、
ユーザー指令に基づいて、脚式移動ロボットの胴体の目標姿勢と、目標ＺＭＰと、目標全床反力とを計算する歩容軌道生成部と、
前記脚式移動ロボットの姿勢を回復させるための補償モーメントを、前記歩容軌道生成部により計算した前記ロボットの胴体の目標姿勢に基づいて計算する姿勢安定化制御部と、
前記歩容軌道生成部により計算した前記目標ＺＭＰ周りの前記目標全床反力と、前記姿勢安定化制御部により計算した前記補償モーメントとを用いて、前記脚式移動ロボットの足平の各頂点に対する各足の分配鉛直床反力をそれぞれ計算する鉛直力分配部と、
前記鉛直力分配部により計算した前記各足の分配鉛直床反力に基づいて、目標各足床反力中心点および当該目標各足床反力中心点周りに働く目標各足床反力を計算する各足床反力変換部と、
前記各足床反力変換部により計算した前記目標各足床反力について、当該目標各足床反力に基づく力制御を行う各足力制御部と、を備え、
前記鉛直力分配部は、
前記各足の分配鉛直床反力の合計値を前記目標全床反力の鉛直力に一致させる条件と、前記各足の分配鉛直床反力の値を所定の閾値より大きくさせる条件とを制約条件として定め、前記各足の分配鉛直床反力に基づく前記目標ＺＭＰ周りの床反力モーメントと、前記補償モーメントとの間の誤差を第１の誤差とし、前記各足の分配鉛直床反力に基づく各足床反力中心点と、各足平の所定の基準位置との間の誤差を第２の誤差として、前記第１の誤差および前記第２の誤差の重み付き和を最小化する評価関数を定めて最適化問題を構成し、当該最適化問題を求解することによって前記各足の分配鉛直床反力を計算する、
ことを特徴とする脚式移動ロボット。
【請求項２】
前記脚式移動ロボットは、前記脚式移動ロボットの実各足床反力を計測する力センサを備え、
前記鉛直力分配部は、前記力センサの出力値に基づいて前記脚式移動ロボットの足裏剥がれが発生する状況にあるか否かを判定し、当該足裏剥がれが発生する状況にあると判定した場合、前記所定の閾値を所定の値増加させる、
ことを特徴とする請求項１に記載の脚式移動ロボット。
【請求項３】
前記脚式移動ロボットは、前記脚式移動ロボットの姿勢を計測する姿勢センサを備え、
前記鉛直力分配部は、前記姿勢センサの出力値に基づいて前記脚式移動ロボットの姿勢が回復状況にあるか否かを判定し、当該姿勢が回復状況にあると判定した場合、前記第１の誤差の重みと比較して前記第２の誤差の重みを相対的に減少させる、
ことを特徴とする請求項１又は２に記載の脚式移動ロボット。
【請求項４】
前記脚式移動ロボットの前記足平は長方形状を有し、
前記鉛直力分配部は、
前記第２の誤差に関して、前記各足の分配鉛直床反力の値が互いに全て等しい場合に、前記各足の分配鉛直床反力に基づく各足床反力中心点と、前記各足平の中心とが一致するものとする、
ことを特徴とする請求項１〜３いずれか１項に記載の脚式移動ロボット。
【請求項５】
前記脚式移動ロボットが、２脚歩行ロボットである、
ことを特徴とする請求項１〜４いずれか１項に記載の脚式移動ロボット。
【請求項６】
凸多角形状を有する足平を備える脚式移動ロボットの制御方法であって、
ユーザー指令に基づいて、脚式移動ロボットの胴体の目標姿勢と、目標ＺＭＰと、目標全床反力とを計算する歩容軌道生成ステップと、
前記脚式移動ロボットの姿勢を回復させるための補償モーメントを、前記歩容軌道生成ステップにより計算した前記ロボットの胴体の目標姿勢に基づいて計算する姿勢安定化制御ステップと、
前記歩容軌道生成ステップにより計算した前記目標ＺＭＰ周りの前記目標全床反力と、前記姿勢安定化制御ステップにより計算した前記補償モーメントとを用いて、前記脚式移動ロボットの足平の各頂点に対する各足の分配鉛直床反力をそれぞれ計算する鉛直力分配ステップと、
前記鉛直力分配ステップにより計算した前記各足の分配鉛直床反力に基づいて、目標各足床反力中心点および当該目標各足床反力中心点周りに働く目標各足床反力を計算する各足床反力変換ステップと、
前記各足床反力変換ステップにより計算した前記目標各足床反力について、当該目標各足床反力に基づく力制御を行う各足力制御ステップと、を備え、
前記鉛直力分配ステップは、
前記各足の分配鉛直床反力の合計値を前記目標全床反力の鉛直力に一致させる条件と、前記各足の分配鉛直床反力の値を所定の閾値より大きくさせる条件とを制約条件として定め、前記各足の分配鉛直床反力に基づく前記目標ＺＭＰ周りの床反力モーメントと、前記補償モーメントとの間の誤差を第１の誤差とし、前記各足の分配鉛直床反力に基づく各足床反力中心点と、各足平の所定の基準位置との間の誤差を第２の誤差として、前記第１の誤差および前記第２の誤差の重み付き和を最小化する評価関数を定めて最適化問題を構成し、当該最適化問題を求解することによって前記各足の分配鉛直床反力を計算する、
ことを特徴とする脚式移動ロボットの制御方法。
【請求項７】
前記脚式移動ロボットは、前記脚式移動ロボットの実各足床反力を計測する力センサを備え、
前記鉛直力分配ステップは、前記力センサの出力値に基づいて前記脚式移動ロボットの足裏剥がれが発生する状況にあるか否かを判定し、当該足裏剥がれが発生する状況にあると判定した場合、前記所定の閾値を所定の値増加させる、
ことを特徴とする請求項６に記載の脚式移動ロボットの制御方法。
【請求項８】
前記脚式移動ロボットは、前記脚式移動ロボットの姿勢を計測する姿勢センサを備え、
前記鉛直力分配ステップは、前記姿勢センサの出力値に基づいて前記脚式移動ロボットの姿勢が回復状況にあるか否かを判定し、当該姿勢が回復状況にあると判定した場合、前記第１の誤差の重みと比較して前記第２の誤差の重みを相対的に減少させる、
ことを特徴とする請求項６又は７に記載の脚式移動ロボットの制御方法。
【請求項９】
前記脚式移動ロボットの前記足平は長方形状を有し、
前記鉛直力分配ステップは、
前記第２の誤差に関して、前記各足の分配鉛直床反力の値が互いに全て等しい場合に、前記各足の分配鉛直床反力に基づく各足床反力中心点と、前記各足平の中心とが一致するものとする、
ことを特徴とする請求項６〜８いずれか１項に記載の脚式移動ロボットの制御方法。
【請求項１０】
前記脚式移動ロボットが、２脚歩行ロボットである、
ことを特徴とする請求項６〜９いずれか１項に記載の脚式移動ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は脚式移動ロボットおよびその制御方法に関する。
【背景技術】
【０００２】
脚式移動ロボット、特に２足歩行ロボットの床反力制御手法に関して、例えば特許文献１には、ロボットに実際に作用する実全床反力および実各足平床反力の分配を適切に行い、大域的のみならず局所的な傾斜や突起を持つ路面でも安定した姿勢で歩行させることが開示されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特許第３６２９１３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
上述した従来技術に係る脚式移動ロボットの床反力分配手法では、各足平の床反力中心点を結ぶ直線上に目標ＺＭＰ（ゼロモーメントポイント）が配置されることを条件として、各足平の床反力中心点と目標ＺＭＰとの距離の内分比に応じて目標全床反力を各足に配分している。このため、各足の床反力中心点を結ぶ直線上から外れた位置に目標ＺＭＰが設定された場合には、上記条件が成立しないものである。なお、ＺＭＰとは、ロボットと床面との間の水平軸周りのモーメントがゼロになる点である。
【０００５】
ロボットの姿勢が崩れた場合には、その崩れた姿勢を回復させて安定させるために、補償モーメントをロボットに十分に発生させる必要がある。しかし、このような補償モーメントを発生させるためには、各足の床反力中心点を結ぶ直線上から外れた位置に目標ＺＭＰを設定することが必要になる場合がある。この結果、このような場合には、目標ＺＭＰに対応する各足の目標床反力中心点が足平の中心から大きく外れることになる。
【０００６】
各足の目標床反力中心点が足平の中心から大きく外れた状況では、ロボットに外乱が加わると、ロボットの足裏が容易に剥がれてしまう恐れがある。言い換えると、ロボットに外乱が加わった場合においても、ロボットの足裏剥がれをより確実に防止するためには、各足の目標床反力中心点を可能な限り各足平の中心に近い位置に設定することが好ましい。このため、本発明では、ロボットの足裏剥がれに繋がることを回避するために、各足の目標床反力中心点が足平の中心に対してどの程度一致するかを、各足の接地性として捉える。
【０００７】
しかし、ロボットの各足の接地性を高めるために、各足の目標床反力中心点を可能な限り足平の中心に近い位置に設定しようとすると、姿勢回復のための補償モーメントを十分に実現できず、ロボットは姿勢を回復できずに転倒するおそれがある。
【０００８】
このように、ロボットの姿勢を安定させるためにロボットの各足の接地性が低下することがあり、他方で、ロボットの各足の接地性を高めるためにロボットの姿勢を安定させられないことがあった。従って、ロボットの各足の接地性とロボットの姿勢の安定性を両立させることができないという問題があった。
【０００９】
本発明は、このような問題を解決するためになされたものであり、ロボットの各足の接地性とロボットの姿勢の安定性を両立することができる脚式移動ロボットおよびその制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
一実施の形態に係る脚式移動ロボットは、凸多角形状を有する足平と、ユーザー指令に基づいて、脚式移動ロボットの胴体の目標姿勢と、目標ＺＭＰと、目標全床反力とを計算する歩容軌道生成部と、前記脚式移動ロボットの姿勢を回復させるための補償モーメントを、前記歩容軌道生成部により計算した前記ロボットの胴体の目標姿勢に基づいて計算する姿勢安定化制御部と、前記歩容軌道生成部により計算した前記目標ＺＭＰ周りの前記目標全床反力と、前記姿勢安定化制御部により計算した前記補償モーメントとを用いて、前記脚式移動ロボットの足平の各頂点に対する各足の分配鉛直床反力をそれぞれ計算する鉛直力分配部と、前記鉛直力分配部により計算した前記各足の分配鉛直床反力に基づいて、目標各足床反力中心点および当該目標各足床反力中心点周りに働く目標各足床反力を計算する各足床反力変換部と、前記各足床反力変換部により計算した前記目標各足床反力について、当該目標各足床反力に基づく力制御を行う各足力制御部と、を備え、前記鉛直力分配部は、前記各足の分配鉛直床反力の合計値を前記目標全床反力の鉛直力に一致させる条件と、前記各足の分配鉛直床反力の値を所定の閾値より大きくさせる条件とを制約条件として定め、前記各足の分配鉛直床反力に基づく前記目標ＺＭＰ周りの床反力モーメントと、前記補償モーメントとの間の誤差を第１の誤差とし、前記各足の分配鉛直床反力に基づく各足床反力中心点と、各足平の所定の基準位置との間の誤差を第２の誤差として、前記第１の誤差および前記第２の誤差の重み付き和を最小化する評価関数を定めて最適化問題を構成し、当該最適化問題を求解することによって前記各足の分配鉛直床反力を計算する、ことを特徴とするものである。
【００１１】
このように、足裏剥がれを防止する条件を制約条件に含めた上で各足床反力中心点および各足への床反力分配を同時に計算することによって、足裏剥がれを防止しつつ、最適な各足の床反力中心点および各足の床反力を設定することができる。従って、ロボットの各足の接地性とロボットの姿勢の安定性を両立することができる。
【００１２】
また、前記脚式移動ロボットは、前記脚式移動ロボットの実各足床反力を計測する力センサを備え、前記鉛直力分配部は、前記力センサの出力値に基づいて前記脚式移動ロボットの足裏剥がれが発生する状況にあるか否かを判定し、当該足裏剥がれが発生する状況にあると判定した場合、前記所定の閾値を所定の値増加させる、ようにしてもよい。これにより、ロボットの足裏剥がれが発生する状況を検知して、足裏剥がれをより確実に防止することができる。
【００１３】
さらにまた、前記脚式移動ロボットは、前記脚式移動ロボットの姿勢を計測する姿勢センサを備え、前記鉛直力分配部は、前記姿勢センサの出力値に基づいて前記脚式移動ロボットの姿勢が回復状況にあるか否かを判定し、当該姿勢が回復状況にあると判定した場合、前記第１の誤差の重みと比較して前記第２の誤差の重みを相対的に減少させる、ようにしてもよい。これにより、ロボットの姿勢回復状況を検知して、より確実かつ早期にロボットの姿勢を回復させることができる。
【００１４】
また、前記脚式移動ロボットの前記足平は長方形状を有し、前記鉛直力分配部は、前記第２の誤差に関して、前記各足の分配鉛直床反力の値が互いに全て等しい場合に、前記各足の分配鉛直床反力に基づく各足床反力中心点と、前記各足平の中心とが一致するものとする、ようにしてもよい。これにより、より簡単に計算を行うことができる。さらにまた、前記脚式移動ロボットが、２脚歩行ロボットである、ようにしてもよい。
【００１５】
他の一実施の形態に係る脚式移動ロボットの制御方法は、凸多角形状を有する足平を備える脚式移動ロボットの制御方法であって、ユーザー指令に基づいて、脚式移動ロボットの胴体の目標姿勢と、目標ＺＭＰと、目標全床反力とを計算する歩容軌道生成ステップと、前記脚式移動ロボットの姿勢を回復させるための補償モーメントを、前記歩容軌道生成ステップにより計算した前記ロボットの胴体の目標姿勢に基づいて計算する姿勢安定化制御ステップと、前記歩容軌道生成ステップにより計算した前記目標ＺＭＰ周りの前記目標全床反力と、前記姿勢安定化制御ステップにより計算した前記補償モーメントとを用いて、前記脚式移動ロボットの足平の各頂点に対する各足の分配鉛直床反力をそれぞれ計算する鉛直力分配ステップと、前記鉛直力分配ステップにより計算した前記各足の分配鉛直床反力に基づいて、目標各足床反力中心点および当該目標各足床反力中心点周りに働く目標各足床反力を計算する各足床反力変換ステップと、前記各足床反力変換ステップにより計算した前記目標各足床反力について、当該目標各足床反力に基づく力制御を行う各足力制御ステップと、を備え、前記鉛直力分配ステップは、前記各足の分配鉛直床反力の合計値を前記目標全床反力の鉛直力に一致させる条件と、前記各足の分配鉛直床反力の値を所定の閾値より大きくさせる条件とを制約条件として定め、前記各足の分配鉛直床反力に基づく前記目標ＺＭＰ周りの床反力モーメントと、前記補償モーメントとの間の誤差を第１の誤差とし、前記各足の分配鉛直床反力に基づく各足床反力中心点と、各足平の所定の基準位置との間の誤差を第２の誤差として、前記第１の誤差および前記第２の誤差の重み付き和を最小化する評価関数を定めて最適化問題を構成し、当該最適化問題を求解することによって前記各足の分配鉛直床反力を計算する、ものである。
【００１６】
このように足裏剥がれを防止する条件を制約条件に含めた上で各足床反力中心点および各足への床反力分配を同時に計算することによって、足裏剥がれを防止しつつ、最適な各足の床反力中心点および各足の床反力を設定することができる。従って、ロボットの各足の接地性とロボットの姿勢の安定性を両立することができる。
【発明の効果】
【００１７】
本発明によれば、ロボットの各足の接地性とロボットの姿勢の安定性を両立することができる脚式移動ロボットおよびその制御方法を提供することができる。
【図面の簡単な説明】
【００１８】
【図１】本発明に関する床反力分配問題を説明するための図である。
【図２】本発明に関する床反力分配問題を説明するための機能ブロック図である。
【図３】本発明に関する床反力分配問題を説明するための図である。
【図４Ａ】本発明に関する床反力分配問題を説明するための図である。
【図４Ｂ】本発明に関する床反力分配問題を説明するための図である。
【図５】本発明に関する床反力分配問題を説明するための図である。
【図６Ａ】本発明に関連する歩行制御器を示す機能ブロック図である。
【図６Ｂ】実施の形態１に係る歩行制御器を示す機能ブロック図である。
【図７Ａ】実施の形態１に係る床反力分配処理を説明するための図である。
【図７Ｂ】実施の形態１に係る床反力分配処理を説明するための図である。
【図８】実施の形態１に係る足平の角に設定した鉛直床反力を説明するための図である。
【図９】実施の形態１に係る目標各足床反力と床反力中心の座標定義を説明するための図である。
【図１０】実施の形態１に係る歩行制御器の詳細な機能ブロックを示す図である。
【図１１Ａ】実施の形態１に係る記号の定義と意味を説明するための図である。
【図１１Ｂ】実施の形態１に係る記号の定義と意味を説明するための図である。
【図１２Ａ】実施の形態１に係る実験結果を示す図である。
【図１２Ｂ】実施の形態１に係る実験結果を示す図である。
【図１２Ｃ】実施の形態１に係る実験結果を示す図である。
【図１３Ａ】実施の形態１に係る実験結果を示す図である。
【図１３Ｂ】実施の形態１に係る実験結果を示す図である。
【図１３Ｃ】実施の形態１に係る実験結果を示す図である。
【図１３Ｄ】実施の形態１に係る実験結果を示す図である。
【図１４】実施の形態１に係る歩行制御器による制御処理を示すフローチャートである。
【図１５】実施の形態２に係る歩行制御器による制御処理を示すフローチャートである。
【図１６】実施の形態３に係る歩行制御器による制御処理を示すフローチャートである。
【発明を実施するための形態】
【００１９】
まず、図１〜５を参照して、本発明が対象とする床反力分配問題を簡単に説明する。図１は、本発明に係る脚式移動ロボットの一例としての２脚歩行ロボット１の模式的な構成例を示している。以下では、２脚歩行ロボット１を単にロボット１と称する。
【００２０】
ロボット１は、関節角を制御するアクチュエータと、関節角を検出するエンコーダと、が脚の各関節に内蔵されている。また、ロボット１は、制御コントローラ２を備えている。制御コントローラ２は、入力されるユーザー指令に基づいて各関節を制御する。すなわち、制御コントローラ２は、ユーザー指令に基づいて得られる各関節の目標角度に追従するように、アクチュエータを制御する。より具体的には、制御コントローラ２は、ユーザー指令（例えば、足の着地位置、歩行周期、歩行速度など）を用いて各関節の目標角の時系列データを算出し、算出した目標角に追従するように、各関節を制御する。
【００２１】
なお、制御コントローラ２は、主要なハードウェア構成として、制御処理、演算処理等と行うＣＰＵ（Central Processing Unit）と、ＣＰＵによって実行される制御プログラムと、演算プログラム等が記憶されたＲＯＭ（Read Only Memory）と、処理データ等を一時的に記憶するＲＡＭ（Random Access Memory）と、を有するマイクロコンピュータを用いて構成されている。また、これらＣＰＵ、ＲＯＭ、及びＲＡＭは、データバスによって相互に接続されている。
【００２２】
図２は、本発明に関連する歩行制御器３００の機能ブロックの構成図を示している。例えば制御コントローラ２が、歩行制御器３００を有している。歩行制御器３００は、歩容軌道生成部３１０、床反力分配部３２０、姿勢安定化制御部３３０、各足力制御部３４０を備えている。
【００２３】
図２を参照して、歩行制御器３００における処理データの流れを説明する。
まず、ユーザーからの指令（例えば、足の着地位置、歩行周期、歩行速度など）が歩容軌道生成部３１０に入力される。歩容軌道生成部３１０は、ユーザー指令に基づいて安定な目標ＺＭＰ軌道・ＺＭＰ軌道・重心軌道・各足先の位置姿勢軌道などを生成し、生成した各軌道などを実現するためのロボット１の胴体の目標姿勢（姿勢角・角速度）や目標全床反力を計算する。なお、軌道とは、位置姿勢の時系列データを指す。
【００２４】
ここで、目標全床反力とは、図１に示すように、目標全床反力中心点（目標ＺＭＰ）周りに働く６軸力（Ｆｘ、Ｆｙ、Ｆｚ、Ｍｘ、Ｍｙ、Ｍｚ）を示す。ただし、図１の左図では分かりやすさのために、並進力のみを記載している。なお、当然ながら、目標ＺＭＰ周りの床反力Ｍｘ、Ｍｙは、その定義から、補償モーメントを発生させていないこの時点においては０である。また、目標姿勢（姿勢角・角速度）は、ロボット１の胴体についての、ｘ軸およびｙ軸周りの傾き角度・角速度をそれぞれ示す。ここで、ロボット１の進行方向前方をｘ軸方向とし、ｘ軸と直交する方向であってロボット１の左方向をｙ軸とし、ｘ軸およびｙ軸と直交する鉛直方向であってロボット１の鉛直上方向をｚ軸とした。
【００２５】
歩容軌道生成部３１０はその計算結果として、ロボット１の胴体の目標姿勢（姿勢角・角速度）を姿勢安定化制御部３３０に出力し、歩容データ（例えば、目標ＺＭＰ、目標全床反力、各足の位置姿勢など）を床反力分配部３２０に出力する。
【００２６】
姿勢安定化制御部３３０は、姿勢センサ（不図示）を用いて計測された実姿勢（姿勢角・角速度）と目標姿勢（姿勢角・角速度）の誤差に基づいて、姿勢（姿勢角・角速度）偏差を減少させてロボット１胴体の姿勢を回復させるための補償モーメントＭｘ〜、Ｍｙ〜を計算する。姿勢安定化制御部３３０は、例えば以下の式に示すようにして、補償モーメントＭｘ〜、Ｍｙ〜を計算する（変数Ｍｘ〜などは、変数Ｍｘの上に符号「〜」が付されていることを示す。）。なお、ここでの姿勢センサは、例えば、ロボット１の胴体に取り付けられたジャイロなどのセンサである。
【数１】
2014184499.tif 000003
【００２７】
床反力分配部３２０は、歩容軌道生成部３１０から出力された目標全床反力のうちのｘ軸周りの成分およびｙ軸周りの成分（Ｍｘ、Ｍｙ）として、姿勢安定化制御部３１０から出力された補償モーメントＭｘ〜、Ｍｙ〜を設定する。そして、床反力分配部３２０は、この設定した値を新たな目標床反力として、各足に分配する。例えば、床反力分配部３２０は、以下の式に示すようにして、新たな目標床反力Ｍｘ、Ｍｙを設定する。
【数２】
2014184499.tif 000004
【００２８】
床反力分配部３２０の目的は、図３に示すように、目標各足床反力中心点と、目標各足床反力中心点のそれぞれに働く目標各足床反力を決定することである。即ち、目標全床反力中心点に働く目標全床反力の６軸力は、各足で発生される床反力の合力として働く。このため、床反力分配部３２０は、目標全床反力をどのように各足に振り分けるかを最終的に決定し、決定した目標各足床反力中心点および目標各足床反力を、各足力制御部３４０に出力する。
【００２９】
各足力制御部３４０は、目標各足床反力中心点周りに働く目標各足床反力について、力センサ（不図示）を用いて計測される実各足床反力と目標各足床反力の誤差に基づく力制御を行う。なお、ここでの力センサは、例えば、ロボット１の足裏に取り付けられた分布型の１軸又は３軸センサなどのセンサである。以上が、歩行制御器３００による制御の概要である。
【００３０】
次に、図４〜図６（Ａ）を参照して、本発明に関連する歩行制御器２００による床反力分配処理を簡単に説明する。
図６（Ａ）は、従来技術に係る歩行制御器２００の機能ブロックの構成図を示している。歩行制御器２００は、歩容軌道生成部２１０、床反力分配部２２０、目標床反力分配部２２１、補償モーメント分配部２２２、各足床反力リミッタ２２３、姿勢安定化制御部２３０、各足力制御部２４０を備えている。なお、歩容軌道生成部２１０、姿勢安定化制御部２３０、各足力制御部２４０については、上述した歩容軌道生成部３１０、床反力分配部３２０、姿勢安定化制御部３３０、各足力制御部３４０とそれぞれ同様の構成および動作を備えているため、ここではその詳細な説明を省略する。以下では、床反力分配部２２０が有する、目標床反力分配部２２１、補償モーメント分配部２２２、各足床反力リミッタ２２３についての構成および動作を中心に説明する。
【００３１】
床反力分配部２２０における床反力分配処理では、まず、図４（Ａ）に示すように、目標床反力分配部２２１は、直線上に目標ＺＭＰが載るように目標各足床反力中心点を決定する。そして、目標床反力分配部２２１は、決定した目標各足床反力中心点と目標ＺＭＰとの内分比の逆比に基づいて、目標全床反力を各足に目標床反力として分配する。
【００３２】
そして、図４（Ｂ）に示すように、補償モーメント分配部２２２は、目標各足床反力中心点に対して、設定される重みに従って補償モーメントを分配する。そして、補償モーメント分配部２２２は、各足に分配した目標床反力に対して、各足に分配した補償モーメントをそれぞれ加算する。ここで、補償モーメント分配部２２２は、目標各足床反力中心点周りのＭｘ，Ｍｙの絶対値が可能な限り小さくなるように、目標各足床反力の設定を行う。そして、各足床反力リミッタ２２３は、足裏が剥がれを防止するために、設定した目標各足床反力に対してリミッタ（制限）をかける処理を行う。
【００３３】
このように、床反力分配部２２０における床反力分配処理では、目標ＺＭＰに基づいて目標各足床反力中心点を最初に決定し、その後に、目標全床反力や補償モーメントの分配を行うという順序に従って処理を実行する。即ち、目標ＺＭＰに基づく目標各足床反力中心点の決定処理と、目標全床反力や補償モーメントの分配処理を同時に実行するものではない。
【００３４】
そして、床反力分配部２２０では、各足の接地性を高める目的のため、補償モーメントを各足に分配する際には、目標各足床反力中心点に働く床反力モーメントを可能な限り０に近づけるように分配を行っている。
【００３５】
このように、上述した従来技術に係る床反力分配処理では、目標各足床反力中心点を設定した後に、補償モーメントの各足への分配処理を行うものである。
【００３６】
ところで、ロボット１の姿勢を安定させるためには、補償モーメントを十分に実現させることが必要になる場合があり、この場合には、目標各足床反力中心点は、例えば足平の端に設定される必要がある。しかし、上述した従来技術に係る床反力分配処理では、目標各足床反力中心点が例えば足平の端に既に設定されてしまった場合には、目標各足床反力中心点に働く床反力モーメントの絶対値を小さくするように処理したとしても、既に設定された目標各足床反力中心点を変更することはできず、各足の目標床反力中心点を足平の中心に近づけるように修正することはできない。このため、各足の接地性を高めることには繋がらない。
【００３７】
ロボット１の各足の接地性を考慮すると、本来であれば、例えば図５に示すように、目標各足床反力中心点を各足平の中心に設定するのが理想的である。しかし、目標各足床反力中心点とそこに働く目標各足床反力の合力として、目標全床反力中心点とそこに働く目標全床反力（補償モーメントを含む）は成立する。このため、目標各足床反力中心点を自由に選択して決定することはできない。
【００３８】
即ち、「目標全床反力中心点・目標全床反力が、目標各足床反力中心点・目標各足床反力の合力であるという拘束条件の下で、目標各足床反力中心点を可能な限り理想（例えば、図５に示した状況）に近づける」というのが最良の方法である。
【００３９】
そこで、本発明では、従来技術のように目標各足床反力中心点を先に決定するのではなく、目標全床反力中心点と補償モーメントを合わせた目標全床反力から、目標各足床反力中心点と目標各足床反力を同時に決定する手法を提案する。
【００４０】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。説明の明確化のため、必要に応じて重複説明は省略される。
【００４１】
＜実施の形態１．＞
図６（Ｂ）は、本実施の形態に係る歩行制御器１００の機能ブロックの構成図を示している。歩行制御器１００は、歩容軌道生成部１０、床反力分配部２０、鉛直力分配部の一例としての最適鉛直力分配部２１、各足床反力変換部２２、姿勢安定化制御部３０、各足力制御部４０を備えている。制御コントローラ２は、歩行制御器１００を有している。なお、歩容軌道生成部１０、姿勢安定化制御部３０、各足力制御部４０については、上述した歩容軌道生成部３１０、床反力分配部３２０、姿勢安定化制御部３３０、各足力制御部３４０とそれぞれ同様の構成および動作を備えているため、ここではその詳細な説明を省略する。以下では、床反力分配部２０が有する、最適鉛直力分配部２１、各足床反力変換部２２についての構成および動作を中心に説明する。
【００４２】
図７（Ａ）、（Ｂ）を参照して、床反力分配部２０における床反力分配処理の概要を説明する。まず、図７（Ａ）に示すように、最適鉛直力分配部２１が、補償モーメントを含む目標ＺＭＰ周りの目標全床反力を、各足の鉛直方向床反力に分配する。ここで、ロボット１の足平は長方形状を有しており、各足の鉛直方向床反力を、各足平の角にそれぞれ定義する。最適鉛直力分配部２１は、具体的には、図８に示すように、目標全床反力を、各足平の角に設定した各足の鉛直床反力に分配する。ここで、分配に際しては以下の４つの条件を満たすように最適化問題を構成し、最適化計算により各足の分配鉛直床反力を決定する。
（１）各足の分配鉛直床反力の合計値を目標全床反力の鉛直力に一致させる。
（２）目標ＺＭＰ周りの床反力モーメントを可能な限り補償モーメントに一致させる。
（３）各足の分配鉛直床反力に基づく各足床反力中心点を可能な限り足平の中心点に一致させる。
（４）各足の分配鉛直床反力の値を正にする（足裏剥がれの防止）。
【００４３】
次に、図４（Ｂ）に示すように、各足床反力変換部２２は、各足平角に分配された鉛直方向床反力に基づいて、目標各足床反力中心点とそこに働く目標各足床反力を計算する。即ち、各足の分配鉛直床反力を決定した後に、各足の分配鉛直床反力に基づいて、目標各足床反力中心点およびそこに働く目標各足床反力を計算する。
【００４４】
以下、最適鉛直力分配部２１および各足床反力変換部２２による処理について具体的に説明する。
＜最適鉛直力分配部２１による処理＞
上述した条件（１）〜（４）について、以下、順に説明する。ただし、以下の説明において、ベクトルｕは、以下の式に示すように、各足平角の分配鉛直床反力を要素とするベクトルである。
【数３】
2014184499.tif 000005
【００４５】
＜条件（１）各足の分配鉛直床反力の合計値を目標全床反力の鉛直力に一致させる。＞
各足の分配鉛直床反力の合計値を目標全床反力の鉛直成分Ｆｚに一致する条件を、以下の式（４）に表すことができる。なお、この条件を満たすことによって、ロボット１の転倒を回避し、より安定な制御の実現に寄与する。この条件を満たすことによって、ロボット１に働く重力に対する床反力が重力と等しくなる。この結果、ロボット１の重心位置を低くするようにロボット１の姿勢が変化することはなく、このように姿勢が変化することに起因して発生するロボット１の転倒を回避することができる。
【数４】
2014184499.tif 000006
【００４６】
上述した式（４）は、以下の式（５）に示すベクトルａおよびスカラー量ｂを用いて、以下の式（６）に示すように表すことができる。
【数５】
2014184499.tif 000007
【数６】
2014184499.tif 000008
【００４７】
＜条件（２）目標ＺＭＰ周りの床反力モーメントを可能な限り補償モーメントに一致させる。＞
各足の分配鉛直床反力に基づく目標ＺＭＰ周りに働くｘｙ軸周りの床反力モーメントＭＬＲｘ、ＭＬＲｙは、以下の式（７）および（８）を用いて表すことができる。
【数７】
2014184499.tif 000009
【数８】
2014184499.tif 000010
【００４８】
本条件は、この各足の分配鉛直床反力に基づく目標ＺＭＰ周りの床反力モーメントＭＬＲｘ、ＭＬＲｙを補償モーメントＭｘ、Ｍｙに近づけること（即ち、ＭＬＲｘ、ＭＬＲｙ→Ｍｘ、Ｍｙを達成すること）を目標とし、この誤差を最小化しようとするものである。この目標は、以下の式（９）に示す値εＭｘｙを可能な限り０に近づけることと等価である。なお、この条件に関し、姿勢回復のための補償モーメントを十分に実現することによって、ロボット１の姿勢を安定な状態へと確実に回復させることができる。このため、ロボット１の姿勢が回復できずに転倒する事態を回避して、より安定な制御の実現に寄与する。
【数９】
2014184499.tif 000011
【００４９】
式（７）および（８）を用いると、式（９）を以下の式（１０）に示すように表すことができる。なお、式（１０）における各足平角のｘｙ座標は、歩容軌道生成部３１０が出力した各足の位置姿勢に基づいて計算することができる。
【数１０】
2014184499.tif 000012
【００５０】
＜条件（３）各足の分配鉛直床反力に基づく各足床反力中心点を可能な限り足平の中心点に一致させる。＞
本条件は、各足の分配鉛直床反力に基づく各足床反力中心点を、設定される各足平の所定の基準位置に近づけることを目標とし、この誤差を最小化しようとするものである。各足の分配鉛直床反力に基づく各足床反力中心点を、例えば足平の中心に一致させるためには、例えば各足の分配鉛直床反力を全て等しくすればよい。各足の分配鉛直床反力が全て等しい場合には、各足の分配鉛直床反力に基づく各足床反力中心点は足平の中心に一致するからである。即ち、以下の式（１１）を満たすことである。
【数１１】
2014184499.tif 000013
【００５１】
式（１１）に示した条件は、以下の式（１２）に示す値εＬＲｚｍｐを可能な限り０に近づけることと等価である。なお、この条件に関し、各足の目標床反力中心点を足平の中心に可能な限り近づけることによって、各足の接地性を向上させることができる。このため、足裏剥がれを防止して、より安定な制御の実現に寄与する。
【００５２】
【数１２】
2014184499.tif 000014
【００５３】
さらに、行列形式を用いて式（１２）を記述することによって、以下の式（１３）として表すことができる。
【数１３】
2014184499.tif 000015
【００５４】
＜条件（４）各足の分配鉛直床反力の値を正にする（足裏剥がれの防止）。＞
足平の角に設定された各足の分配鉛直床反力が０になった場合に、ロボット１の足裏が路面から剥がれ始める。このことから、各足の分配鉛直床反力を全て非負に制約することによって、足裏が剥がれることを防止することができる。この足裏剥がれの防止のための条件は、以下の式（１４）として表すことができる。なお、この条件に関しては、足裏剥がれを防止して、より安定な制御の実現に寄与する。
【数１４】
2014184499.tif 000016
【００５５】
図６（Ｂ）に示した機能ブロック図において、床反力分配部２０によって分配された各足６軸力は、後段の各足力制御部４０へと出力される。しかし、各足力制御部４０における力制御は、力センサのノイズや制御器の特性に起因して、入力された指令（ベクトルｕ）に対する遅れが生じる。そこで、各足力制御部４０における力制御に遅れが生じる場合には、式（１４）に示した非負条件に代えて、所定の閾値ｕｌ＾（変数ｕｌ＾は、変数ｕｌの上に符号「＾」が付されていることを示す。）を用いて、以下の式（２２）に示す条件を設定することができる。足裏剥がれ防止の条件に関して、制御遅れのために入力指令ｕが０を下回ってしまう可能性がある。そこで、０よりも大きな値として所定の閾値ｕｌ＾を設定することで、入力指令ｕが０を下回らないように制御に余裕を持たせることができる。これによって、入力指令が０になることをより確実に防止できるため、より確実に足裏剥がれを防止することができる。なお、閾値については、各足力制御部４０における制御器の性能に応じて、予め適当な値が設定される。
【数２２】
2014184499.tif 000017
【００５６】
以上の式をまとめることによって最適化問題を構成する。最適化問題の評価関数は、条件（１）および（４）を必ず満たす条件とした上で、条件（２）および（３）を可能な限り満たすようにεＭｘｙおよびεＬＲｚｍｐを重み付き二乗和の構成により表現し、両者の和を可能な限り０に近づける。即ち、εＭｘｙに対して重みＱを重みづけし、εＬＲｚｍｐに対して重みＲを重みづけし、これらの二乗和を最小化する。これによって、例えば、以下の式（２３）に示す評価関数を定める。
【数２３】
2014184499.tif 000018
【００５７】
例えば、重みＲと比較して相対的に重みＱを大きく設定した場合、式（２３）に示す評価関数では、εＭｘｙの値をより小さくしようとする。この結果、条件（２）の影響が大きくなり、目標ＺＭＰ周りの床反力モーメントを可能な限り補償モーメントに一致させるように各足の分配鉛直床反力が算出される。即ち、姿勢回復のための補償モーメントを十分に実現しようとする、各足の分配鉛直床反力が算出される。
【００５８】
また例えば、重みＱと比較して相対的に重みＲを大きく設定した場合、式（２３）に示す評価関数では、εＬＲｚｍｐの値をより小さくしようとする。この結果、条件（３）の影響が大きくなり、各足の分配鉛直床反力に基づく各足床反力中心点を可能な限り足平の中心点に一致させるように、各足の分配鉛直床反力が算出される。即ち、各足の接地性を向上させるようにする、各足の分配鉛直床反力が算出される。
【００５９】
式（１０）および（１３）を式（２３）に代入して整理することによって、以下の式（１５）を得ることができる。
【数１５】
2014184499.tif 000019
【００６０】
ただし、式（１５）における行列Ｈおよび行列ｆを、以下の式（１６）に示す。
【数１６】
2014184499.tif 000020
【００６１】
最終的に、式（６）、（１４）、（１６）をまとめることによって、以下の式（１７）に示す最適化問題を定めることができる。式（１７）は、凸二次計画問題（Quadratic Programming : QP）として有名な最適化問題の１つであり、高速に求解することが可能である。
【数１７】
2014184499.tif 000021
【００６２】
＜各足床反力変換部２２による処理＞
次に、各足床反力変換部２２が、最適鉛直力分配部２１が決定した各足の分配鉛直床反力に基づいて、目標各足床反力中心点と、目標各足床反力中心点周りに働く目標各足床反力を決定する。図９に、目標各足床反力中心点と目標各足床反力の定義を示す。
【００６３】
まず、目標各足床反力中心点は、以下の式（１８）に示すようにして計算することができる。なお、式（１８）における各足平角のｘｙ座標は、歩容軌道生成部３１０が出力した各足の位置姿勢に基づいて計算することができる。
【数１８】
2014184499.tif 000022
【００６４】
次に、目標各足床反力中心点に働く目標各足床反力を計算する。まず、目標各足床反力のうちのｘ軸周りの成分およびｙ軸周りの成分（ＭＬｘ、ＭＬｙ、ＭＲｘ、ＭＲｙ）については、各足の床反力中心点であることから、当然ながら０である。即ち、以下の式（１９）が成立する。
【数１９】
2014184499.tif 000023
【００６５】
また、目標各足床反力のうちの鉛直ｚ軸方向の成分（ＦＬｚ、ＦＲｚ）については、各足の目標鉛直床反力が分解された各足の分配鉛直床反力の合計と一致することから、以下の式（２０）が成立する。
【数２０】
2014184499.tif 000024
【００６６】
目標各足床反力のうちの残りの成分に関して、ｘ軸およびｙ軸方向の成分（Ｆｘ、Ｆｙ）と、ｚ軸周りの成分（Ｍｚ）については、摩擦力に応じて発生される床反力であることから、鉛直力が大きいほど大きな力を発生させることができるものと考えられる。従って、上述した式（２０）を用いて求めた目標各足反力の鉛直成分の比を用いて、目標全床反力を分配する。具体的には、例えば、以下の式（２１）に示すようにして、各足の目標床反力の各成分を計算することができる。
【数２１】
2014184499.tif 000025
【００６７】
最適鉛直力分配部２１および各足床反力変換部２２が、以上に説明したようなそれぞれの処理を行うことで、各足の接触安定性（高い接地性）と、ロボット１全体としての安定性（姿勢が崩れて転倒しないこと）を可能な限り両立させるように、床反力を各足に分配することが可能になる。
【００６８】
図１０は、図６（Ｂ）に示した機能ブロック図に対して、以上に説明した各データおよび式の関係を、例示して追加した図である。図１０に示すように、姿勢安定化制御部３０において、補償モーメントの計算処理に関して、式（１）を用いた計算が行われる。最適鉛直力分配部２１において、鉛直力の分配処理に関して、式（１０）、（１３）、（５）、（１６）、（１７）を用いた計算が行われる。各足床反力変換部２２において、各足床反力変換処理に関して、式（１８）、（１９）、（２０）、（２１）を用いた計算が行われる。
【００６９】
最後に、上記の歩行制御器１００による実験結果を説明する。図１２および図１３に実験結果を示す。各記号の定義を図１１（Ａ）、（Ｂ）に示す。なお、図１１（Ｂ）に示すように、目標ＺＭＰに補償モーメント分を考慮して変換した目標ＺＭＰを、等価目標全床反力中心点として計算する。また、指令値である目標ＺＭＰ周りの補償モーメント（Ｍｘ，Ｍｙ）、反力分配の結果としての目標ＺＭＰ周りの補償モーメント（Ｍｘｏｕｔ，Ｍｙｏｕｔ）、反力分配の結果としての全床反力中心点（ｐｚｍｐｘｏｕｔ，ｐｚｍｐｙｏｕｔ）に関して、床反力分配の結果の目標ＺＭＰ周りの補償モーメントが指令値の目標ＺＭＰ周りの補償モーメントに等しくなる場合には、当然、床反力分配の結果の全床反力中心点が等価目標全床反力中心点に等しくなる。即ち、Ｍｘｏｕｔ＝Ｍｘ，Ｍｙｏｕｔ＝Ｍｙが達成できる（実現できる）場合には、ｐｚｍｐｘｏｕｔ＝ｐｚｍｐｘ，ｐｚｍｐｙｏｕｔ＝ｐｚｍｐｙになる。
【００７０】
図１２（Ａ）、（Ｂ）、（Ｃ）は、重み係数（行列ＱおよびＲの値）を固定し、目標ＺＭＰ、補償モーメント、足位置・姿勢を変更した場合の実験結果を示す。即ち、行列Ｑ＝Ｉ、行列Ｒ＝Ｉ×１０−４として固定し、目標ＺＭＰ（ｐｚｍｐｘ，ｐｚｍｐｙ、ｐｚｍｐｘ＾，ｐｚｍｐｙ＾）、補償モーメント（Ｍｘ，Ｍｙ）、足位置・姿勢（ＰＬｆｏｏｔｘ，ＰＬｆｏｏｔｘ、ＰＲｆｏｏｔｘ，ＰＲｆｏｏｔｘ）の値を変更する。同図に示したこれらの結果から、「目標各足床反力中心点を可能な限り足平の中心に設定しながら、目標ＺＭＰに働く補償モーメントを達成する」という目的が達成できていることが分かる。
【００７１】
図１３（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）は、目標ＺＭＰ、補償モーメント、足位置・姿勢を固定し、重み係数（行列Ｑの値は固定し、行列Ｒの値のみを変更する）を変更した場合の実験結果を示す。即ち、目標ＺＭＰ（ｐｚｍｐｘ，ｐｚｍｐｙ、ｐｚｍｐｘ＾，ｐｚｍｐｙ＾）、補償モーメント（Ｍｘ，Ｍｙ）、足位置・姿勢（ＰＬｆｏｏｔｘ，ＰＬｆｏｏｔｘ、ＰＲｆｏｏｔｘ，ＰＲｆｏｏｔｘ）の値を固定し、行列Ｑの値は変更せずに固定し行列Ｒの値のみを変更する。
【００７２】
図１３（Ａ）、（Ｂ）、（Ｃ）、（Ｄ）での実験では、非常に大きな補償モーメントが働いた場合を想定しているが、いずれの実験においても、目標各足床反力中心点が足裏から出ることなく各足への床反力分配を行うことができている。また、目標各足床反力中心点を足平の中心に設定しようとする重みＲを大きくするに従って、目標各足床反力中心点が足平の中心に近づく一方で、補償モーメントが達成されにくくなっている。
【００７３】
例えば、図１３（Ａ）では、×（バツ印）を用いて示す等価目標全床反力中心点が、○（白抜き丸）を用いて示す全床反力中心点に対して一致する。一方で、□（白抜き四角形）を用いて示す目標各足床反力中心点が足平の端に位置すると共に、△（白抜き三角形）を用いて示す各足平の中心から大きく離れていることを示す。即ち、補償モーメントは達成されているものの、目標各足床反力中心点が足平の中心から大きく離れている。
【００７４】
また、例えば、図１３（Ｄ）では、□（白抜き四角形）を用いて示す目標各足床反力中心点が、△（白抜き三角形）を用いて示す各足平の中心に一致する。一方で、×（バツ印）を用いて示す等価目標全床反力中心点が、○（白抜き丸）を用いて示す全床反力中心点から大きく離れていることを示す。即ち、目標各足床反力中心点は足平の中心に位置するものの、補償モーメントが達成されにくくなっている。
【００７５】
このため、図１３（Ａ）、（Ｂ）、（Ｃ）、（Ｃ）に示したこれらの結果から、ユーザーが重み係数を変更することにより、両者のトレードオフを容易に調整可能なことも分かる。
【００７６】
以下、図１４に示すフローチャートを参照して、本実施の形態に係る歩行制御器１００による制御処理を説明する。本制御処理においては、Ｓ１０３〜Ｓ１１０にかけての処理を周期的に実行し、例えば２ｍｓごとに実行することができる。なお、図１４では、床反力分配部２０による処理を中心に説明する。
【００７７】
床反力分配部２０は、歩容軌道生成部１０から目標ＺＭＰおよび目標全床反力を取得する（Ｓ１０１）。姿勢安定化制御部３０は、例えば上述した式（１）を用いて、姿勢回復のための補償モーメントを計算する（Ｓ１０２）。
【００７８】
最適鉛直力分配部２１は、例えば上述した式（１０）を用いて、補償モーメントを達成するための条件（２）を計算する（Ｓ１０３）。最適鉛直力分配部２１は、例えば上述した式（１３）を用いて、各足床反力中心点が足平中心に一致する条件（３）を計算する（Ｓ１０４）。最適鉛直力分配部２１は、例えば上述した式（６）を用いて、分配鉛直床反力が全鉛直床反力に一致する条件（１）を計算する（Ｓ１０５）。最適鉛直力分配部２１は、例えば上述した式（１７）を用いて、凸二次計画問題を求解する（Ｓ１０６）。なお、Ｓ１０３〜Ｓ１０５における各計算処理の実行順序はこれに限定されず、順序を適宜変更してもよいし、同時に実行するものとしてもよい。
【００７９】
各足床反力変換部２２は、例えば上述した式（１８）を用いて、目標各足床反力中心点を計算する（Ｓ１０７）。各足床反力変換部２２は、例えば上述した式（１９）〜（２１）を用いて、各足の目標床反力を計算産する（Ｓ１０８）。
【００８０】
各足力制御部４０は、力センサの計測値を取得し（Ｓ１０９）、目標各足床反力と力センサ値（実各足床反力）の誤差が小さくなるように力制御を行う（Ｓ１１０）。
【００８１】
＜実施の形態２．＞
上述した実施の形態１では、足裏剥がれの防止に関する条件（４）について、式（１４）に示したように固定値０を閾値とする場合、および、式（２２）に示したように所定の閾値ｕｌ＾を使用する場合を説明した。本実施の形態では、足裏剥がれが発生する状況にある場合に、この閾値を増加させる。これにより、足裏剥がれが発生する状況である場合、条件（４）に示した制約が制御により強く反映されるように作用させることができ、この結果、より確実に足裏剥がれを防止することができる。なお、本実施の形態では、上述した実施の形態１と同一の構成・動作については説明を省略し、異なる構成・動作についてのみ説明する。
【００８２】
以下、図１５に示すフローチャートを参照して、本実施の形態に係る歩行制御器１００による制御処理を説明する。なお、図１５の説明では、図１４に示した処理と異なる処理であるＳ２０１、Ｓ２０２、Ｓ２０３を中心に説明する。
【００８３】
最適鉛直力分配部２１は、実各足床反力を計測する力センサ（不図示）の出力値に基づいて、足裏剥がれが発生する状況にあるか否かを判定する（Ｓ２０１）。具体的には、最適鉛直力分配部２１は、例えば、力センサを用いて計測される実各足床反力の鉛直成分のいずれかの出力値が０に向かって近づく場合に、足裏剥がれが発生する状況にあるものと判定する。最適鉛直力分配部２１は、例えば、力センサのいずれかの出力値が０に向かって近づく際の減少速度が所定の値よりも大きな場合に、足裏剥がれが発生する状況にあると判定するものとしてもよい。
【００８４】
最適鉛直力分配部２１は、足裏剥がれが発生する可能性があると判定した場合、足裏剥がれ防止の閾値ｕｌ＾を所定の値Δ増加させる（Ｓ２０２）。一方で、最適鉛直力分配部２１は、足裏剥がれが発生する可能性がないと判定した場合、足裏剥がれ防止の閾値ｕｌ＾を０に設定する（Ｓ２０３）。最適鉛直力分配部２１は、例えば上述した式（１７）とＳ２０２またはＳ２０３において新たに設定した閾値ｕｌ＾を用いて、凸二次計画問題を求解する（Ｓ１０６）。これにより、足裏剥がれが発生する可能性がある状況（例えば力センサの出力値が０に近づく状況）に応じて、足裏剥がれ防止の閾値ｕｌ＾を増加させることができる。この結果、足裏剥がれに関する条件（４）の制約が強く働くことになり、足裏剥がれをより確実に防止することができる。
【００８５】
＜実施の形態３．＞
本実施の形態では、ロボット１の姿勢の回復状況に応じて、上述した式（２３）において示した重みＲを、重みＱと比較して相対的に減少させる。これにより、姿勢回復の状況に応じて条件（２）に示した制約が制御により強く反映されるように作用させることができ、この結果、目標ＺＭＰ周りの床反力モーメントを可能な限り補償モーメントに一致させるように制御する。このため、ロボット１の姿勢回復状況に応じて、より確実かつ早期にロボット１の姿勢状況を回復させることが可能となり、より安定な制御が可能になる。
【００８６】
以下、図１６に示すフローチャートを参照して、本実施の形態に係る歩行制御器１００による制御処理を説明する。なお、図１６の説明では、図１５に示した処理と異なる処理であるＳ３０１、Ｓ３０２、Ｓ３０３、Ｓ３０４を中心に説明する。なお、本実施の形態では、上述した実施の形態１、２と同一の構成・動作については説明を省略し、異なる構成・動作についてのみ説明する。
【００８７】
最適鉛直力分配部２１は、姿勢センサ（不図示）の出力値に基づいて、姿勢が回復して来ているか否かを判定する（Ｓ３０１）。具体的には、最適鉛直力分配部２１は、所定のサンプリング間隔前において計算した目標姿勢と比較して、姿勢センサの出力値に基づく実姿勢が近づいている場合に、姿勢が回復して来ていると判定し、そうでない場合に、姿勢が回復してきていないと判定する。最適鉛直力分配部２１は、例えば、姿勢センサの出力値に基づく姿勢と上記目標姿勢との誤差に応じて、姿勢回復状況を判定することができる。
【００８８】
最適鉛直力分配部２１は、姿勢が回復して来ていないと判定した場合、足裏剥がれ防止に関する閾値ｕｌ＾が０に設定されているか否かを判定する（Ｓ３０２）。最適鉛直力分配部２１は、閾値ｕｌ＾が０に設定されていないと判定した場合、条件（３）に関する重みＲを所定の値、減少させる（Ｓ３０３）。これにより、姿勢が回復して来ていない状況において、補償モーメントに関する条件（２）の影響が強く制御に反映されることになり、より確実かつ早期にロボット１の姿勢を回復することができる。
【００８９】
一方で、最適鉛直力分配部２１は、Ｓ３０１において姿勢が回復して来ていると判定した場合、又は、Ｓ３０２において閾値ｕｌ＾が０に設定されていると判定した場合、条件（３）に関する重みＲを基の設定値に戻す（Ｓ３０４）。
【００９０】
＜その他の実施の形態＞
上述した実施の形態では、ロボット１は長方形状の足平を備え、当該長方形状の足平の各角に対して各足平角の分配鉛直床反力が分配されるものとして説明したが、本発明はこれに限定されない。ロボット１の足平の形状は、長方形状に限定されず、例えば、正方形、ひし形、平行四辺形、台形などの他の四角形状でもよいし、四角形状以外にも、三角形状、五角形状でもよく、凸多角形状であればよい。ロボット１の足平の形状が凸多角形状である場合には、当該凸多角形状の各頂点に対して各足平の分配鉛直床反力が分配される。
【００９１】
さらに、上述した実施の形態では、各足の分配鉛直床反力に基づく各足床反力中心点が足平の中心に近づく場合を例に説明したが、本発明はこれに限定されない。各足平において、凸多角形状の頂点からそれぞれ所定の距離離れた位置を所定の基準位置として設定し、当該設定した所定の基準位置に各足床反力中心点を近づけるものとしてもよい。
【００９２】
また、重みＱ、Ｒの設定手法については上述した実施の形態１、２、３に限定されず、ユーザー、あるいは制御コントローラ２に指令を与える上位コントローラが、目的に応じて、予め適切な値を設定するようにしてもよい。
【００９３】
上述した複数の実施の形態は、適宜組み合わせることも可能である。さらに、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。例えば、脚式移動ロボットは、２脚以上の脚を有していてもよいし、３脚以上のロボットであってもよい。
【符号の説明】
【００９４】
１  脚式移動ロボット、
２  制御コントローラ、
１０  歩容軌道生成部、
２０  床反力分配部、
２１  最適鉛直力分配部、
２２  各足床反力変換部、
３０  姿勢安定化制御部、
４０  各足力制御部、
１００  歩行制御器、
２１０  歩容軌道生成部、
２２０  床反力分配部、
２２１  目標床反力分配部、
２２２  補償モーメント分配部、
２２３  各足床反力リミッタ、
２３０  姿勢安定化制御部、
２４０  各足力制御部、
２００  歩行制御器、
３１０  歩容軌道生成部、
３２０  床反力分配部、
３３０  姿勢安定化制御部、
３４０  各足力制御部、
３００  歩行制御器、
【図１】
2014184499.tif 000026
【図２】
2014184499.tif 000027
【図３】
2014184499.tif 000028
【図４Ａ】
2014184499.tif 000029
【図４Ｂ】
2014184499.tif 000030
【図５】
2014184499.tif 000031
【図６Ａ】
2014184499.tif 000032
【図６Ｂ】
2014184499.tif 000033
【図７Ａ】
2014184499.tif 000034
【図７Ｂ】
2014184499.tif 000035
【図８】
2014184499.tif 000036
【図９】
2014184499.tif 000037
【図１０】
2014184499.tif 000038
【図１１Ａ】
2014184499.tif 000039
【図１１Ｂ】
2014184499.tif 000040
【図１２Ａ】
2014184499.tif 000041
【図１２Ｂ】
2014184499.tif 000042
【図１２Ｃ】
2014184499.tif 000043
【図１３Ａ】
2014184499.tif 000044
【図１３Ｂ】
2014184499.tif 000045
【図１３Ｃ】
2014184499.tif 000046
【図１３Ｄ】
2014184499.tif 000047
【図１４】
2014184499.tif 000048
【図１５】
2014184499.tif 000049
【図１６】
2014184499.tif 000050