(57)【特許請求の範囲】
【請求項１】
上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、
前記目標歩容を構成する目標運動及び目標床反力の仮瞬時値を決定する仮瞬時値決定手段と、
前記ロボットの運動と床反力との関係を表す動力学モデルに、少なくとも前記仮瞬時値決定手段が決定した前記目標運動の仮瞬時値を入力し、該動力学モデルの出力としてのモデル床反力瞬時値を求めるモデル演算手段と、
前記仮瞬時値決定手段が決定した目標運動の仮瞬時値を補正して目標運動の目標瞬時値を決定する目標瞬時値決定手段とを備え、
該目標瞬時値決定手段は、少なくとも前記モデル演算手段が求めた前記モデル床反力瞬時値と前記仮瞬時値決定手段が決定した目標床反力の仮瞬時値との差と、前記許容範囲設定手段が設定した許容範囲とに基づき、決定しようとする前記目標運動の目標瞬時値によって発生するロボットの慣性力と重力との合力に前記動力学モデル上で釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲内に収まるように前記目標運動の仮瞬時値を補正することを特徴とする脚式移動ロボットの歩容生成装置。
【請求項２】
前記モデル演算手段が求めるモデル床反力瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰのモデル値を含むと共に、前記仮瞬時値決定手段が決定する前記目標床反力の仮瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰの仮目標瞬時値を含み、前記目標瞬時値決定手段が用いる前記差は、前記床反力モーメント水平成分又はＺＭＰのモデル値と、該床反力モーメント水平成分又はＺＭＰの仮目標瞬時値との差であることを特徴とする請求項１記載の脚式移動ロボットの歩容生成装置。
【請求項３】
前記目標瞬時値決定手段は、前記目標運動の目標瞬時値によって発生するロボットの慣性力と重力との合力に前記動力学モデル上で釣り合う床反力の瞬時値を目標床反力の目標瞬時値として決定することを特徴とする請求項１記載の脚式移動ロボットの歩容生成装置。
【請求項４】
前記目標瞬時値決定手段は、前記ロボットの摂動運動と摂動床反力との関係を表す摂動モデルと、
少なくとも前記差と前記許容範囲とに基づき前記摂動モデルの摂動床反力を操作する摂動モデル操作量を決定する手段と、
その決定した摂動モデル操作量を前記摂動モデルに入力することにより前記目標運動の補正量を求める手段と、
該補正量により前記目標運動の仮瞬時値を補正することにより前記目標運動の目標瞬時値を決定する手段とを備えることを特徴とする請求項１記載の脚式移動ロボットの歩容生成装置。
【請求項５】
少なくとも前記摂動モデルの状態量に応じて前記摂動モデル操作量の要求値を決定する手段を備え、前記摂動モデル操作量を決定する手段は、前記差、前記許容範囲、及び前記要求値に基づき前記摂動モデルに入力する摂動モデル操作量を決定することを特徴とする請求項４記載の脚式移動ロボットの歩容生成装置。
【請求項６】
前記摂動モデル操作量の要求値を前記摂動モデルの状態量と該状態量に対する目標値との偏差に応じたフィードバック制御則により逐次決定する手段を備えたことを特徴とする請求項５記載の脚式移動ロボットの歩容生成装置。
【請求項７】
前記摂動モデルは、前記摂動運動に対する並進床反力水平成分と床反力モーメント水平成分との摂動比率が互いに異なる複数の摂動運動を含むモデルであり、前記摂動モデル操作量は、各摂動運動にそれぞれ対応する複数の操作量からなると共に、前記目標運動の補正量は、各摂動運動にそれぞれ対応する複数の補正量からなることを特徴とする請求項４記載の脚式移動ロボットの歩容生成装置。
【請求項８】
前記複数の摂動運動は、前記ロボットの上体の並進運動と、該ロボットの重心位置を維持しつつロボットの所定部位の姿勢を変化させる姿勢変化運動とからなることを特徴とする請求項７記載の脚式移動ロボットの歩容生成装置。
【請求項９】
前記複数の摂動運動は、前記ロボットの上体の並進水平運動と、該ロボットの上体の姿勢変化運動とからなることを特徴とする請求項７記載の脚式移動ロボットの歩容生成装置。
【請求項１０】
前記制限対象量は、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとからなることを特徴とする請求項７記載の脚式移動ロボットの歩容生成装置。
【請求項１１】
前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含み、
前記摂動モデル操作量を決定する手段は、前記第１操作量成分のみを前記摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項４記載の脚式移動ロボットの歩容生成装置。
【請求項１２】
前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び前記許容範囲に基づき決定される第２操作量成分とを含み、
前記摂動モデル操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量成分と共に前記摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項５記載の脚式移動ロボットの歩容生成装置。
【請求項１３】
前記制限対象量は、前記並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分を含んでおり、
前記摂動モデル操作量を決定する手段は、前記制限対象量の推定値を求めるために前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることを特徴とする請求項１１又は１２記載の脚式移動ロボットの歩容生成装置。
【請求項１４】
前記摂動モデルは、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量は、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとからなり、
前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することを特徴とする請求項１２記載の脚式移動ロボットの歩容生成装置。
【請求項１５】
前記目標瞬時値決定手段は、前記制限済制限対象量に対応する床反力を前記目標床反力の目標瞬時値として決定することを特徴とする請求項１１又は１２記載の脚式移動ロボットの歩容生成装置。
【請求項１６】
前記目標瞬時値決定手段は、前記目標運動の仮瞬時値を補正するための補正量を前記動力学モデルにフィードバックとして追加的に入力する手段と、
前記モデル床反力瞬時値に対応する前記制限対象量が前記許容範囲内の値に維持され、且つ前記差が安定するように前記補正量を決定する手段とを備えることを特徴とする請求項１記載の脚式移動ロボットの歩容生成装置。
【請求項１７】
前記目標瞬時値決定手段は、前記目標運動の補正量を、前記動力学モデルにフィードバックとして追加的に入力する手段を備えると共に、前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含み、
前記摂動モデル操作量を決定する手段は、前記第１操作量成分のみを前記摂動モデルに入力したと仮定した場合に前記動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項４記載の脚式移動ロボットの歩容生成装置。
【請求項１８】
前記目標瞬時値決定手段は、前記目標運動の補正量を、前記動力学モデルにフィードバックとして追加的に入力する手段を備えると共に、前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２操作量成分とを含み、
前記摂動モデル操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量と共に前記摂動モデルに入力したと仮定した場合に前記動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項５記載の脚式移動ロボットの歩容生成装置。
【請求項１９】
前記第２操作量成分は前記床反力モーメント水平成分又はＺＭＰを含むと共に、前記差は少なくとも該床反力モーメント水平成分又はＺＭＰに係わる差を含み、
前記摂動モデル操作量を決定する手段は、前記差のうちの床反力モーメント水平成分又はＺＭＰと、前記第２操作量成分の床反力モーメント水平成分又はＺＭＰとが等しくなるように前記第１操作量成分を決定する手段を備えることを特徴とする請求項１７又は１８記載の脚式移動ロボットの歩容生成装置。
【請求項２０】
前記制限対象量は、前記並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分を含んでおり、
前記摂動モデル操作量を決定する手段は、前記制限対象量の推定値を求めるために前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることを特徴とする請求項１７又は１８記載の脚式移動ロボットの歩容生成装置。
【請求項２１】
前記摂動モデルは、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量は、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとからなり、
前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することを特徴とする請求項１８記載の脚式移動ロボットの歩容生成装置。
【請求項２２】
前記目標瞬時値決定手段は、前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定することを特徴とする請求項１６記載の脚式移動ロボットの歩容生成装置。
【請求項２３】
上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、
前記目標歩容を構成する目標運動及び目標床反力のうちの少なくとも目標床反力の仮瞬時値を逐次決定する目標床反力仮瞬時値決定手段と、
前記ロボットの運動と床反力との関係を表す第１動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第１動力学モデルの出力としての目標運動の仮瞬時値を求める第１モデル演算手段と、
前記ロボットの運動と床反力との関係を表す第２動力学モデルに、少なくとも前記第１モデル演算手段が求めた目標運動の仮瞬時値を入力し、該第２動力学モデルの出力としてのモデル床反力瞬時値を求める第２モデル演算手段と、
前記第１モデル演算手段の処理で前記第１動力学モデルに入力される目標床反力の仮瞬時値を補正するための補正量を求め、その求めた補正量を前記第１動力学モデルにフィードバックとして追加的に入力する第１モデル入力補正手段と、
少なくとも前記第２モデル演算手段の処理での前記第２動力学モデルの入力に基づいて前記目標運動の目標瞬時値を決定する手段とを備え、
前記第１モデル入力補正手段は、少なくとも前記第２モデル演算手段が求めた前記モデル床反力瞬時値と前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値との差と、前記許容範囲設定手段が設定した許容範囲とに基づき、前記第２モデル演算手段の処理で前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量が前記許容範囲に収まるように前記補正量を求める手段であることを特徴とする脚式移動ロボットの歩容生成装置。
【請求項２４】
前記第２モデル演算手段が求めるモデル床反力瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰのモデル値を含むと共に、前記仮瞬時値決定手段が決定する前記目標床反力の仮瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰの仮目標瞬時値を含み、前記第１モデル入力補正手段が用いる前記差は、前記床反力モーメント水平成分又はＺＭＰのモデル値と、該床反力モーメント水平成分又はＺＭＰの仮目標瞬時値との差であることを特徴とする請求項２３記載の脚式移動ロボットの歩容生成装置。
【請求項２５】
前記第２動力学モデルが出力する前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定することを特徴とする請求項２３記載の脚式移動ロボットの歩容生成装置。
【請求項２６】
前記目標床反力の補正量の要求値を決定する手段を備え、
前記第１モデル入力補正手段が求める前記目標床反力の補正量は、少なくとも前記差に応じて決定される第１補正量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２補正量成分とを含み、
前記第１モデル入力補正手段は、前記第２補正量成分を前記要求値に一致させて前記第１補正量成分と共に前記第１動力学モデルにフィードバックとして追加的に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２補正量成分を決定する手段とを備えることを特徴とする請求項２３記載の脚式移動ロボットの歩容生成装置。
【請求項２７】
少なくとも前記差と前記許容範囲とに基づき前記目標運動の補正量を求め、その求めた補正量を前記第２動力学モデルにフィードバックとして追加的に入力する第２モデル入力補正手段を備えたことを特徴とする請求項２３記載の脚式移動ロボットの歩容生成装置。
【請求項２８】
前記ロボットの摂動運動と摂動床反力との関係を表す摂動モデルと、
少なくとも前記差と前記許容範囲とに基づき床反力操作量を決定する手段と、
その決定した床反力操作量を、前記第１動力学モデルに入力する前記目標床反力の補正量と前記摂動モデルに入力する摂動モデル操作量とに分配する分配手段とを備え、
前記第２モデル入力補正手段は、前記摂動モデル操作量を前記摂動モデルに入力することにより前記目標運動の補正量を求めることを特徴とする請求項２７記載の脚式移動ロボットの歩容生成装置。
【請求項２９】
少なくとも前記摂動モデルの状態量に応じて前記床反力操作量の要求値を決定する手段を備え、前記床反力操作量を決定する手段は、前記差、前記許容範囲、及び前記要求値に基づき前記分配手段に与える床反力操作量を決定することを特徴とする請求項２８記載の脚式移動ロボットの歩容生成装置。
【請求項３０】
前記床反力操作量の要求値を前記摂動モデルの状態量と該状態量に対する目標値との偏差に応じたフィードバック制御則により逐次決定する手段を備えたことを特徴とする請求項２９記載の脚式移動ロボットの歩容生成装置。
【請求項３１】
前記摂動モデルは、前記摂動運動に対する並進床反力水平成分と床反力モーメント水平成分との摂動比率が互いに異なる複数の摂動運動を含むモデルであり、前記床反力操作量は各摂動運動にそれぞれ対応する複数の操作量からなると共に、前記第２モデル入力補正手段が求める前記目標運動の補正量は、各摂動運動にそれぞれ対応する複数の補正量からなることを特徴とする請求項２８記載の脚式移動ロボットの歩容生成装置。
【請求項３２】
前記複数の摂動運動は、前記ロボットの上体の並進運動と、該ロボットの重心位置を維持しつつロボットの所定の部位の姿勢を変化させる姿勢変化運動とからなることを特徴とする請求項３１記載の脚式移動ロボットの歩容生成装置。
【請求項３３】
前記複数の摂動運動は、前記ロボットの上体の並進水平運動と、該ロボットの上体の姿勢変化運動とからなることを特徴とする請求項３１記載の脚式移動ロボットの歩容生成装置。
【請求項３４】
前記制限対象量は、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとからなることを特徴とする請求項３１記載の脚式移動ロボットの歩容生成装置。
【請求項３５】
前記床反力操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含み、
前記床反力操作量を決定する手段は、前記第１操作量成分のみを前記分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項２８記載の脚式移動ロボットの歩容生成装置。
【請求項３６】
前記床反力操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２操作量成分とを含み、
前記床反力操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量成分と共に前記分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、
その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、
少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備えることを特徴とする請求項２９記載の脚式移動ロボットの歩容生成装置。
【請求項３７】
前記第２操作量成分は前記床反力モーメント水平成分又はＺＭＰを含むと共に、前記差は少なくとも該床反力モーメント水平成分又はＺＭＰに係わる差を含み、
前記摂動モデル操作量を決定する手段は、前記差のうちの床反力モーメント水平成分又はＺＭＰと、前記第２操作量成分の床反力モーメント水平成分又はＺＭＰとが等しくなるように前記第１操作量成分を決定する手段を備えることを特徴とする請求項３５又は３６記載の脚式移動ロボットの歩容生成装置。
【請求項３８】
前記制限対象量は、前記並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分を含んでおり、
前記床反力操作量を決定する手段は、前記制限対象量の推定値を求めるために、前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることを特徴とする請求項３５又は３６記載の脚式移動ロボットの歩容生成装置。
【請求項３９】
前記摂動モデルは、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量は、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとからなり、
前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することを特徴とする請求項３６記載の脚式移動ロボットの歩容生成装置。
【請求項４０】
上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、
前記目標歩容を構成する目標運動及び目標床反力のうちの少なくとも目標床反力の仮瞬時値を逐次決定する目標床反力仮瞬時値決定手段と、
前記ロボットの運動と床反力との関係を表す第１動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第１動力学モデルの出力としての目標運動の第１仮瞬時値を求める第１モデル演算手段と、
前記ロボットの運動と床反力との関係を表す第２動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第２動力学モデルの出力としての目標運動の第２仮瞬時値を、該目標運動の第２仮瞬時値によって発生するロボットの慣性力と重力との合力に前記第２動力学モデル上で釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲設定手段が設定した許容範囲内に収まるように求める第２モデル演算手段と、
少なくとも前記第１モデル演算手段が求めた目標運動の第１仮瞬時値と前記第２モデル演算手段が求めた目標運動の第２仮瞬時値との差に基づいて、該差が零に近づくように床反力操作量を求める操作量算出手段と、
前記操作量算出手段が求めた床反力操作量を前記第１動力学モデル及び第２動力学モデルのうちの少なくともいずれか一方にフィードバックとして追加的に入力するモデル入力補正手段とを備え、
前記第２モデル演算手段が求めた目標運動の第２仮瞬時値を該目標運動の目標瞬時値として決定することを特徴とする脚式移動ロボットの歩容生成装置。
【請求項４１】
前記目標運動の第１仮瞬時値と第２仮瞬時値との差は、前記ロボットの所定の部位の位置の差を含み、又は、該ロボットの重心の位置の差と該ロボットの所定の部位の姿勢の差とを含むことを特徴とする請求項４０記載の脚式移動ロボットの歩容生成装置。
【請求項４２】
少なくとも前記目標床反力の仮瞬時値を、前記ロボットの運動と床反力との関係を表す第３動力学モデルに入力し、該第３動力学モデルの出力としての目標運動の第３仮瞬時値を求める第３モデル演算手段を備え、前記目標床反力の補正量の要求値を決定する手段は、前記決定した前記目標運動の目標瞬時値と前記目標運動の第３仮瞬時値との差に基づいて、該差が零に近づくように前記要求値を決定することを特徴とする請求項２６記載の脚式移動ロボットの歩容生成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、脚式移動ロボットの歩容生成装置に関する。
【背景技術】
【０００２】
本出願人は先に特願２０００−３５２０１１号（ＰＣＴ国際公開公報WO/02/40224A1）において、比較的単純なロボット動力学モデルを用いて、近似的に動力学的平衡条件を満足しつつ継続的に移動できる（すなわち発散しない）自在な歩容（以降、近似歩容と呼ぶ）をリアルタイムに生成する技術を提案している。
【０００３】
さらには、特願２００１−１３３６２１号において、動力学的平衡条件を精度良く満足しつつ、かつ、上記生成された近似歩容にほぼ追従して発散することのないように補正された歩容を生成する技術を提案している。以降、補正された目標歩容を補正目標歩容あるいは補正歩容と呼ぶ。
【０００４】
しかし、特願２００１−１３３６２１号においては、補正歩容の発散を防止するために、元々の適切に設計された目標床反力をずらしてしまう。つまり、元々の適切に設計された目標ＺＭＰのまわりに床反力モーメントを発生（作用）させるように変更されてしまうか、あるいは、目標ＺＭＰ自身が修正される。
【０００５】
以降、適切に設計された目標床反力を理想目標床反力と呼び、適切に設計された目標ＺＭＰを理想目標ＺＭＰと呼ぶ。
【０００６】
次式に示すように、目標ＺＭＰを理想目標ＺＭＰからずらすことは、理想目標ＺＭＰのまわりに、（目標ＺＭＰのずらし量）*（並進床反力鉛直成分）の床反力モーメント水平成分を発生させることと等価である。
【０００７】
0003679105.tif 000002
尚、並進床反力鉛直成分は、床反力の鉛直軸まわりモーメントと誤解するおそれがない限り、以降、床反力鉛直成分と略す場合がある。
【０００８】
ところで、補正歩容の発散を防止し安定化させる能力は、理想目標ＺＭＰのまわりに発生可能な床反力モーメントの最大値（最小値）に依存する。
【０００９】
ロボットの歩行を行なう場合には、床反力鉛直成分が常にほぼ自重相当であり、また目標ＺＭＰの存在可能範囲（接地面を囲む最小多角形であり、支持多角形とも呼ばれる）も広いので、存在可能範囲内で目標ＺＭＰをずらすことによって、理想目標ＺＭＰのまわりに床反力モーメント水平成分を発生させて、補正歩容の発散を防止することができる。
【００１０】
それに対し、ロボットの走行を行なう場合には、ロボットの全脚体が空中に存在して、床反力鉛直成分が０になることがしばしば発生する。この時には、通常、床反力のすべての成分（並進力およびモーメントの各成分）は０となる。したがって、全脚体が空中に存在している時には、理想目標ＺＭＰのまわりに床反力モーメントを発生させることによって補正歩容の発散を防止することはできない。
【００１１】
また、いずれかの脚体が接地していても、床反力鉛直成分が０に近い場合には、目標ＺＭＰの存在可能範囲内で目標ＺＭＰをずらしても、これによって発生する理想目標ＺＭＰまわりの床反力モーメント水平成分はわずかしかない。なぜなら、理想目標ＺＭＰまわりのモーメント水平成分は、上記のごとく目標ＺＭＰ修正量と床反力鉛直成分の積であるからである。したがって、この場合にも、やはり補正歩容の発散を防止することができない。
【００１２】
上記のごとく、床反力鉛直成分が０または０に近い場合には、理想目標ＺＭＰのまわりに発生可能な床反力モーメントの絶対値が小さいために、補正歩容の発散を防止することができない。したがって、床反力鉛直成分が十分に大きい時に、補正歩容を近似歩容に近づける必要がある。
【００１３】
補足すると、床とロボットの足裏が接触していて、その間に粘着力（吸引力）が発生できる場合には、床反力鉛直成分が０でも床反力モーメントを発生させることが可能であるが、一般的に、脚式移動ロボットの制御においては、粘着力（吸引力）はないものと想定している。また、ロボットの通常的な動作環境下では、床と足裏との間にはほとんど粘着力が発生しない。
【００１４】
また、床反力鉛直成分が０の場合には、目標ＺＭＰは、不定であり、任意の位置に設定できるが、床反力のすべての成分は０であり、目標ＺＭＰをずらしても、理想目標ＺＭＰのまわりに床反力モーメント水平成分を発生させることはできない。
【００１５】
ところで、前記特願２００１−１３３６２１号において具体的に指摘していないもうひとつ重要な問題として、スリップがある。
【００１６】
特願２００１−１３３６２１号の実施形態においては、ロボットの運動によって発生する慣性力と重力との合力が元々の目標ＺＭＰまわりに発生するモーメントを０にし、または上記のごとく補正歩容の発散を防止するための床反力モーメント（特願２００１−１３３６２１号に記載の目標ＺＭＰまわりのフルモデル補正モーメント）に一致させるように、補正歩容の上体水平加速度が調整（変化）される。言い換えると、全体重心水平加速度が調整（変化）される。したがって、結果的に該全体重心水平加速度に釣り合う床反力水平成分も変化する。
【００１７】
ところで、水平床面を移動する場合、床反力水平成分は摩擦によって発生する。
【００１８】
摩擦係数が高いある床面を歩行する場合には、床反力鉛直成分が常にほぼ自重相当であるので、摩擦力（すなわち床反力水平成分）の限界値が高く、上記のごとく補正歩容の上体水平加速度を変化させてもスリップしにくい。
【００１９】
これに対し、摩擦係数が低い床面を歩行する場合には、摩擦力（床反力水平成分）の限界値が低いので、上記のごとく補正歩容の上体水平加速度を変化させると、それに釣り合う床反力水平成分を発生できずに、スリップする恐れがある。
【００２０】
また、走行においては、床反力鉛直成分がほぼ０になる時があり、この時には、床面の摩擦係数が高くとも、摩擦力（床反力水平成分）の限界値はほぼ０になる。したがって、走行の場合も、上記のごとく補正歩容の上体水平加速度を変化させると、スリップする恐れがある。
【００２１】
しかも、走行においては、床反力鉛直成分が０になる時（両脚体が空中に存在する時）があり、この時には、摩擦力（床反力水平成分）も０になるので、全体重心水平加速度は０（等速運動）とならざるを得ない。換言すれば、ロボットの歩容は、全体重心水平加速度が０になるような歩容にならざるを得ない。
【００２２】
以上のように、ロボットの走行および低摩擦係数床面での歩行においては、重力と慣性力との合力が理想目標ＺＭＰまわりに発生するモーメントを０にし、または上記のごとく補正歩容の発散を防止するための床反力モーメントに一致させるように、補正歩容の上体水平加速度（または全体重心水平加速度）を調整する（変化させる）ことが困難または不可能な場合が生じる。
【００２３】
一方、本出願人は、ロボットの走行や低摩擦係数床面での歩行などを考慮して、目標ＺＭＰ軌道、目標床反力鉛直成分軌道および床反力水平成分許容範囲を明示的に設定し、目標床反力ＺＭＰ軌道と目標床反力鉛直成分軌道を満足し、かつ床反力水平成分が床反力水平成分許容範囲内になるように、歩容の運動（足平位置姿勢軌道や上体位置姿勢軌道）を生成する技術を試みている。
【００２４】
この技術では、厳密な動力学モデルを用いれば、厳密に動力学的平衡条件（重力と慣性力との合力が目標ＺＭＰまわりに作用するモーメントが０であること）を満足することに加えて、床反力水平成分は、常に床反力水平成分許容範囲内に収めることができる。しかし、厳密な動力学モデルを用いると、運動方程式を解く演算量が多くなる。さらに、厳密な動力学モデルの非線形性が強いために、本願出願人が先に提案した特願２０００−３５２０１１号で説明されている定常歩容の境界条件（歩容の初期と終端との上体位置速度等が一致することなど）を満足する歩容パラメータ、すなわち、ロボットの継続的な安定した運動を可能とする歩容パラメータを探索する際に、収束率が低下して探索回数も増える。このため、全体の演算量が多大になり、高速コンピュータないしは動力学モデル演算を行う専用ICが必要となる。また、ロボットの運動を行ないながら、リアルタイムで歩容を生成することも困難となる。
【００２５】
逆に、単純な近似動力学モデルを用いると、演算量は少なくなるが、動力学的平衡条件を十分な精度で満足できなくなる、あるいは、実際に生成される歩容のＺＭＰが存在可能範囲を越える、あるいは、床反力水平成分が床反力水平成分許容範囲（摩擦力限界）を越える等の不都合を生じる。このため、この生成された歩容を目標値にして実際のロボットを運動させた時に、ロボットの動作が不安定になったりスリップしたりする恐れが大きくなる。
【特許文献１】
ＰＣＴ国際公開公報WO/02/40224A1
【発明の開示】
【発明が解決しようとする課題】
【００２６】
従って、本発明の目的は先に提案した技術の不都合を解消することにあり、通常の歩行以外にも、走行や低摩擦係数床面での歩行などの多様な目標歩容が、比較的少ない演算量で生成できる歩容生成装置を提供することにある。またさらに、本発明は、生成した歩容が動力学的平衡条件を精度良く満足し、ＺＭＰや床反力水平成分等が適切な許容範囲内に存在するようにすることができる歩容生成装置を提供することを目的とする。
【課題を解決するための手段】
【００２７】
本願の第１発明は、上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、前記目標歩容を構成する目標運動及び目標床反力の仮瞬時値を決定する仮瞬時値決定手段と、前記ロボットの運動と床反力との関係を表す動力学モデルに、少なくとも前記仮瞬時値決定手段が決定した前記目標運動の仮瞬時値を入力し、該動力学モデルの出力としてのモデル床反力瞬時値を求めるモデル演算手段と、前記仮瞬時値決定手段が決定した目標運動の仮瞬時値を補正して目標運動の目標瞬時値を決定する目標瞬時値決定手段とを備え、該目標瞬時値決定手段は、少なくとも前記モデル演算手段が求めた前記モデル床反力瞬時値と前記仮瞬時値決定手段が決定した目標床反力の仮瞬時値との差と、前記許容範囲設定手段が設定した許容範囲とに基づき、決定しようとする前記目標運動の目標瞬時値によって発生するロボットの慣性力と重力との合力に前記動力学モデル上で釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲内に収まるように前記目標運動の仮瞬時値を補正することを特徴とするものである。
【００２８】
なお、本発明（第１発明以外の発明を含む）において、前記並進床反力の水平成分又は該並進床反力の床面平行成分（詳しくは床面に平行な成分）又はロボットの全体重心加速度の水平成分又は該全体重心加速度の床面平行成分は、いずれも摩擦力に比例もしくはほぼ比例するものである。そこで、以下の説明では、便宜上、これらを総称的に摩擦力成分ということがある。
【００２９】
かかる第１発明によれば、前記モデル演算手段では、少なくとも目標運動の仮瞬時値（脚体先端部の位置姿勢等の瞬時値）を入力として、モデル床反力瞬時値（目標運動の仮瞬時値に対応して、前記動力学モデル上で慣性力と重力との合力に釣り合う床反力の瞬時値）を求めるだけであるので、前記動力学モデルが比較的厳密なものであっても、比較的少ない演算量でモデル床反力瞬時値を求めることができる。この場合、このモデル床反力瞬時値と目標床反力の仮瞬時値との差は、前記動力学モデルに入力される目標運動および目標床反力の仮瞬時値の動力学的平衡条件（運動によって発生する慣性力と重力との合力と、床反力との釣り合いに関する条件）に対する誤差（以下、上記差を仮瞬時値誤差という）を表すものとなる。ただし、第１発明を必要要件とする後述の第１６〜第２２発明においては、前記動力学モデルに入力される目標運動は、該目標運動の仮瞬時値を補正したものなので、厳密な意味での誤差ではないが、便宜上、誤差と呼ぶ。そして、第１発明では、少なくともこの仮瞬時値誤差と、前記制限対象量の許容範囲とに基づいて、目標運動の仮瞬時値が補正され、目標運動の目標瞬時値が決定される。このとき、目標運動の目標瞬時値によって発生するロボットの慣性力と重力との合力に前記動力学モデル上で略釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲に収まるように前記目標運動の仮瞬時値が補正される。これにより、探索的な演算処理等を行なうことなく、前記制限対象量（前記摩擦力成分又はＺＭＰ又は床反力モーメント水平成分）が許容範囲内に収まるような目標歩容の目標瞬時値を少ない演算量で決定することができる。また、前記摩擦力成分等の制限対象量が許容範囲内に収まるような目標歩容の目標瞬時値を決定できることで、通常の歩行以外にも、走行や低摩擦係数床面での歩行など、多様な目標歩容を適正に生成することができる。
【００３０】
なお、前記動力学モデルは、基本的には、近似精度の高いものを用いることが好適である。これにより、動力学平衡条件を精度よく満足し得る目標歩容を生成できる。
【００３１】
また、第１発明では基本的には、前記制限対象量を許容範囲内に収めつつ、前記仮瞬時値誤差をできるだけ安定化するまたは０に近づくように（該誤差の変動ができるだけ少なくなるように）、前記仮瞬時値を補正することが好ましい。
【００３２】
かかる第１発明では、前記モデル演算手段が求めるモデル床反力瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰのモデル値を含むと共に、前記仮瞬時値決定手段が決定する前記目標床反力の仮瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰの仮目標瞬時値を含み、前記目標瞬時値決定手段が用いる前記差は、前記床反力モーメント水平成分又はＺＭＰのモデル値と、該床反力モーメント水平成分又はＺＭＰの仮目標瞬時値との差であることが好適である（第２発明）。これによれば、前記仮瞬時値誤差が、動力学的平衡条件に対する誤差を表すものとしての信頼性が高まる。従って、仮目標瞬時値の補正を適正に行い、動力学的平衡条件を精度良く満足し得る目標歩容を生成できる。
【００３３】
また、前記第１および第２発明では、前記目標瞬時値決定手段は、前記目標運動の目標瞬時値によって発生するロボットの慣性力と重力との合力に前記動力学モデル上で釣り合う床反力の瞬時値を目標床反力の目標瞬時値として決定することが好ましい（第３発明）。
【００３４】
前記第１〜第３発明では、前記目標瞬時値決定手段は、前記ロボットの摂動運動と摂動床反力との関係を表す摂動モデルと、少なくとも前記差と前記許容範囲とに基づき前記摂動モデルの摂動床反力を操作する摂動モデル操作量を決定する手段と、その決定した摂動モデル操作量を前記摂動モデルに入力することにより前記目標運動の補正量を求める手段と、該補正量により前記目標運動の仮瞬時値を補正することにより前記目標運動の目標瞬時値を決定する手段とを備えることを好ましい（第４発明）。
【００３５】
すなわち、ロボットの摂動運動とそれに対する摂動床反力との関係は線形性が高いので、前記摂動モデルを用いることで、適正な目標運動の補正量の算出が容易になると共に、その補正量による前記仮瞬時値の補正が容易になる。また、摂動モデルの摂動床反力を操作するものを摂動モデル操作量として決定することで、床反力に密接に関連する前記制限対象量を前記許容範囲内に制限するための適切な摂動操作量を決定することができる。
【００３６】
さらに、摂動モデルを用いる第４発明では、少なくとも前記摂動モデルの状態量に応じて前記摂動モデル操作量の要求値を決定する手段を備え、前記摂動モデル操作量を決定する手段は、前記差（仮瞬時値誤差）、前記許容範囲、及び前記要求値に基づき前記摂動モデルに入力する摂動モデル操作量を決定することが好ましい（第５発明）。
【００３７】
これによれば、前記仮瞬時値誤差や許容範囲だけでなく、摂動モデルの状態量（摂動モデルの要素としての質点や回転体の位置や回転角、あるいはそれらの変化速度等）の要求値を考慮して、前記摂動モデル操作量が決定される。これにより、摂動モデルの挙動の安定性を高め、ひいては、不適正な目標運動の補正量が求められてしまうような事態を防止できる。
【００３８】
この場合、特に、前記摂動モデル操作量の要求値を前記摂動モデルの状態量と該状態量に対する目標値との偏差に応じたフィードバック制御則により逐次決定する手段を備えることが好適である（第６発明）。
【００３９】
これによれば、摂動モデルの状態量がある目標値近傍に概ね維持されるように前記摂動モデル操作量が決定される。これにより、摂動モデルの挙動の安定性をより確実に高めることができる。
【００４０】
前記第４〜第６発明では、前記摂動モデルは、前記摂動運動に対する並進床反力水平成分と床反力モーメント水平成分との摂動比率が互いに異なる複数の摂動運動を含むモデルであり、前記摂動モデル操作量は、各摂動運動にそれぞれ対応する複数の操作量からなると共に、前記目標運動の補正量は、各摂動運動にそれぞれ対応する複数の補正量からなることが好ましい（第７発明）。
【００４１】
これによれば、前記目標運動の仮瞬時値を補正するためにロボットの複数種の摂動運動を操作できる。このため、ある１つの摂動モデルを操作しただけでは、前記制限対象量を許容範囲内に収めることができないような場合であっても、他の摂動モデルを操作し、あるいは複数種の摂動モデルを合成的に操作することで、制限対象量を許容範囲に収めることができるような床反力を発生し得る目標運動の補正量を決定できる。従って、制限対象量の許容範囲の広さ等によらずに、制限対象量を許容範囲に収め得る目標運動の目標瞬時値を決定できる。
【００４２】
さらにこの第７発明では、前記複数の摂動運動は、前記ロボットの上体の並進運動と、該ロボットの重心位置を維持しつつロボットの所定部位の姿勢を変化させる姿勢変化運動とからなることが好適である（第８発明）。これによれば、前記上体の並進運動によって、主に並進床反力を操作でき、また、前記姿勢変化運動によって床反力モーメントを操作できるので、それらの運動の合成によって所望の床反力（制限対象量が許容範囲に収まるような床反力）を発生し得る目標運動の目標瞬時値を決定できる。
【００４３】
あるいは、前記第７発明では、前記複数の摂動運動は、前記ロボットの上体の並進水平運動と、該ロボットの上体の姿勢変化運動とからなることが好ましい（第９発明）。すなわち、ロボットの上体は一般に脚体等、他の部位に比べて質量が大きいので、それらの摂動運動に対する床反力の変化の感度が高い。従って、それらの摂動運動によるロボットの目標運動の仮瞬時値の補正量を小さくでき、目標歩容におけるロボットの姿勢の安定性を高めることができる。
【００４４】
また、前記第７〜第９発明においては、前記制限対象量は、前記ロボットに作用する摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなる場合に好適である（第１０発明）。
【００４５】
すなわち、第７〜第９発明では、複数の摂動モデルを備えるため、前記摩擦力成分と、床反力モーメント水平成分又はＺＭＰとの両者を制限対象量とする場合であっても、該制限対象量を許容範囲内に収め得る目標運動の仮瞬時値の補正量を確実に決定できる。その結果、ロボットの走行や、低摩擦係数の床面での歩行等、多種多様な条件下での目標歩容を適正に生成できる。
【００４６】
前記摂動モデルを備えた前記第４発明にあっては、より具体的には、例えば前記摂動モデル操作量は、少なくとも前記差（仮瞬時値誤差）に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含み、前記摂動モデル操作量を決定する手段は、前記第１操作量成分のみを前記摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第１１発明）。
【００４７】
すなわち、第１１発明では、前記摂動モデル操作量を決定するとき、まず、前記許容範囲を考慮せずに（制限対象量の許容範囲が無いものと仮定して）前記仮瞬時値誤差だけを考慮した第１操作量成分（これは基本的には、仮瞬時値誤差が安定になるまたは０に近づくように決定する）のみを、摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値が求められる。そして、この制限対象量の推定値を許容範囲内に制限してなる制限済制限対象量を決定した上で、少なくともその制限済制限対象量に基づき第２操作量成分が決定される。これにより、制限対象量を許容範囲内に収めるために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とが摂動モデルに入力されることで、前記仮瞬時値誤差を安定化になるまたは０に近づくようにしつつ、制限対象量を許容範囲内に収め得る目標運動の仮瞬時値の補正量、すなわち、適正な補正量を該摂動モデルから出力することができる。
【００４８】
なお、前記制限済制限対象量を決定する場合、基本的には、制限対象量の推定値にできるだけ近く、且つ許容範囲に存在するような値を制限済制限対象量として決定することが好ましい。
【００４９】
また、特に、摂動モデルに対する前記要求値を有する前記第５発明および第６発明にあっては、前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び前記許容範囲に基づき決定される第２操作量成分とを含み、前記摂動モデル操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量成分と共に前記摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第１２発明）。
【００５０】
すなわち、第１２発明では、前記摂動モデル操作量を決定するとき、まず、前記仮瞬時値誤差だけを考慮した第１操作量成分（これは基本的には、仮瞬時値誤差が安定になるまたは０に近づくように決定する）と、前記許容範囲を考慮せずに（制限対象量の許容範囲が無いものと仮定して）、前記要求値に一致させた第２操作量成分とを、摂動モデルに入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値が求められる。そして、この制限対象量の推定値を許容範囲内に制限してなる制限済制限対象量を決定した上で、少なくともその制限済制限対象量に基づき第２操作量成分が決定される。これにより、制限対象量を許容範囲内に収め、且つ摂動モデルを安定な状態にするために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とが摂動モデルに入力されることで、前記仮瞬時値誤差を安定化すると共に摂動モデルの安定性を確保しつつ、制限対象量を許容範囲内に収め得る目標運動の仮瞬時値の補正量、すなわち、適正な補正量を該摂動モデルから出力することができる。
【００５１】
上記第１１発明あるいは第１２発明では、前記制限対象量が、前記摩擦力成分を含んでいるときには、前記摂動モデル操作量を決定する手段は、前記制限対象量の推定値を求めるために前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることが好ましい（第１３発明）。これによれば、前記制限対象量としての摩擦力成分の推定値（許容範囲を無視して、前記仮瞬時値誤差や要求値のみを考慮した制限対象量）を適正に求めることができ、ひいては、信頼性の高い制限済制限対象量（摩擦力成分を許容範囲内に制限したもの）を決定できる。
【００５２】
また、前記第１２発明あるいはこれを必要要件とする第１３発明では、前記摂動モデルが、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量が、前記ロボットに作用する摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなるときには、前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することが好ましい（第１４発明）。
【００５３】
すなわち、前記第１０発明に関して説明した如く、前記制限対象量が前記摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなるときには、複数の摂動運動を含む摂動モデル、例えば、上体の並進運動と上体の姿勢変化運動とを含むモデルであることが好ましいが、制限対象量を許容範囲内に収めるために、上体の姿勢変化運動の摂動を多くすると、上体の姿勢が大きく変動し易い。従って、前記第２操作量成分のうち、上体姿勢変化運動に対応する操作量成分は、できるだけ要求値に近いことが望ましい。そこで、第１４発明では、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定する。これにより、上体の姿勢変化運動の変化をできるだけ抑えるとともに摂動モデルの安定性をできるだけ確保しつつ、制限対象量を許容範囲に収めることが可能な目標運動の目標瞬時値を決定できる。
【００５４】
なお、前記第１１〜第１４発明では、前記目標瞬時値決定手段は、前記制限済制限対象量に対応する床反力を前記目標床反力の目標瞬時値として決定する（第１５発明）。これにより、前記目標運動の目標瞬時値に対して、前記動力学モデル上で発生する慣性力と重力との合力に釣り合う目標床反力の目標瞬時値を決定できる。
【００５５】
また、前記第１〜第１０発明では、前記目標瞬時値決定手段は、前記目標運動の仮瞬時値を補正するための補正量を前記動力学モデルにフィードバックとして追加的に入力する手段と、前記モデル床反力瞬時値に対応する前記制限対象量が前記許容範囲内の値に維持され、且つ前記差が安定するように前記補正量を決定する手段とを備えるようにしてもよい（第１６発明）。
【００５６】
これによれば、前記動力学モデルには、前記目標運動の仮瞬時値に加えて、該仮瞬時値を補正するための補正量がフィードバックとして追加的に入力されるので、該動力学モデルの出力である前記モデル床反力瞬時値は、補正後の目標運動に対して、該動力学モデル上で動力学的平衡条件を満たすものとなる。従って、モデル床反力瞬時値に対応する前記制限対象量が前記許容範囲内の値に略維持され、且つ前記差が安定するように前記補正量を決定することにより、動力学的平衡条件を精度よく満たしつつ、制限対象量を許容範囲に収め得る目標運動の目標瞬時値を決定できることとなる。なお、この場合、目標運動の仮瞬時値を上記補正量により補正したもの、すなわち、目標運動の目標瞬時値を動力学モデルに入力すればよい。
【００５７】
また、摂動モデルを備える前記第４発明では、上記第１６発明のように前記目標瞬時値決定手段に、前記目標運動の補正量を、前記動力学モデルにフィードバックとして追加的に入力する手段を備えた場合には、前記摂動モデル操作量は、少なくとも前記差（仮瞬時値誤差）に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含む。そして、前記摂動モデル操作量を決定する手段は、前記第１操作量成分のみを前記摂動モデルに入力したと仮定した場合に前記動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第１７発明）。
【００５８】
これにより、前記第１１発明と同様に、制限対象量を許容範囲内に収めるために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とが摂動モデルに入力されることで、前記仮瞬時値誤差を安定化しつつ、動力学モデルが出力するモデル床反力瞬時値に対応する制限対象量を許容範囲内に収め得る目標運動の仮瞬時値の補正量、すなわち、適正な補正量を該摂動モデルから出力することができる。
【００５９】
また、特に、摂動モデルに対する前記要求値を有する前記第５発明および第６発明にあっては、第１６発明と同様に前記目標瞬時値決定手段に、前記目標運動の補正量を前記動力学モデルにフィードバックとして追加的に入力する手段を備えた場合には、前記摂動モデル操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２操作量成分とを含む。そして、前記摂動モデル操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量と共に前記摂動モデルに入力したと仮定した場合に前記動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第１８発明）。
【００６０】
これによれば、前記第１２発明と同様に、制限対象量を許容範囲内に収め、且つ摂動モデルを安定な状態にするために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とが摂動モデルに入力されることで、前記仮瞬時値誤差を安定化すると共に摂動モデルの安定性を確保しつつ、制限対象量を許容範囲内に収め得る目標運動の仮瞬時値の補正量、すなわち、適正な補正量を該摂動モデルから出力することができる。
【００６１】
上記第１７発明又は第１８発明においては、前記第２操作量成分が前記床反力モーメント水平成分又はＺＭＰを含むと共に、前記差（仮瞬時値誤差）が少なくとも該床反力モーメント水平成分又はＺＭＰに係わる差を含む場合には、前記摂動モデル操作量を決定する手段は、前記差（仮瞬時値誤差）のうちの床反力モーメント水平成分又はＺＭＰと、前記第２操作量成分の床反力モーメント水平成分又はＺＭＰとが等しくなるように前記第１操作量成分を決定する手段を備えることが好ましい（第１９発明）。
【００６２】
これによれば、仮瞬時値誤差の床反力モーメント水平成分又はＺＭＰを好適に安定化できるような目標運動の目標瞬時値を決定できる。
【００６３】
さらに、前記第１７〜第１９発明では、前記制限対象量が、前記摩擦力成分を含んでいる場合には、前記摂動モデル操作量を決定する手段は、前記第１３発明と同様に、前記制限対象量の推定値を求めるために前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることが好ましい（第２０発明）。これによれば、前記第１３発明と同様に、前記制限対象量としての摩擦力成分の推定値（許容範囲を無視して、前記仮瞬時値誤差や要求値のみを考慮した制限対象量）を適正に求めることができ、ひいては、信頼性の高い制限済制限対象量（摩擦力成分を許容範囲内に制限したもの）を決定できる。
【００６４】
また、前記第１８発明あるいは、これを必要要件とする第１９〜第２０発明においては、前記摂動モデルが、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量が、前記摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなる場合には、前記第１４発明と同様に、前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することが好ましい（第２１発明）。
【００６５】
これによれば、前記第１４発明と同様に、上体の姿勢変化運動の変化をできるだけ抑えるとともに摂動モデルの安定性をできるだけ確保しつつ、制限対象量を許容範囲に収めることが可能な目標運動の目標瞬時値を決定できる。
【００６６】
なお、第１６〜第２１発明においては、前記目標瞬時値決定手段は、前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定する（第２２発明）。すなわち、前述したように、第１６〜第２１発明では、前記動力学モデルには、前記目標運動の仮瞬時値に加えて、該仮瞬時値を補正するための補正量がフィードバックとして追加的に入力されるので、該動力学モデルの出力である前記モデル床反力瞬時値は、補正後の目標運動に対して、該動力学モデル上で動力学的平衡条件を満たすものとなる。従って、前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定することで、前記目標運動の目標瞬時値に対して、前記動力学モデル上で発生する慣性力と重力との合力に釣り合う目標床反力の目標瞬時値を決定できる。
【００６７】
次に、本願の第２３発明は、上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、前記目標歩容を構成する目標運動及び目標床反力のうちの少なくとも目標床反力の仮瞬時値を逐次決定する目標床反力仮瞬時値決定手段と、前記ロボットの運動と床反力との関係を表す第１動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第１動力学モデルの出力としての目標運動の仮瞬時値を求める第１モデル演算手段と、前記ロボットの運動と床反力との関係を表す第２動力学モデルに、少なくとも前記第１モデル演算手段が求めた目標運動の仮瞬時値を入力し、該第２動力学モデルの出力としてのモデル床反力瞬時値を求める第２モデル演算手段と、前記第１モデル演算手段の処理で前記第１動力学モデルに入力される目標床反力の仮瞬時値を補正するための補正量を求め、その求めた補正量を前記第１動力学モデルにフィードバックとして追加的に入力する第１モデル入力補正手段と、少なくとも前記第２モデル演算手段の処理での前記第２動力学モデルの入力に基づいて前記目標運動の目標瞬時値を決定する手段とを備え、前記第１モデル入力補正手段は、少なくとも前記第２モデル演算手段が求めた前記モデル床反力瞬時値と前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値との差と、前記許容範囲設定手段が設定した許容範囲とに基づき、前記第２モデル演算手段の処理で前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量が前記許容範囲に収まるように前記補正量を求める手段であることを特徴とするものである。
【００６８】
かかる第２３発明では、目標床反力の仮瞬時値を入力として、目標運動の仮瞬時値を出力する第１動力学モデルと、この第１動力学モデルの出力（目標運動の仮瞬時値）を入力としてモデル床反力瞬時値を出力する第２動力学モデルとの２つの動力学モデルが備えられる。そして、第２動力学モデルの出力であるモデル床反力瞬時値と第１動力学モデルの入力である目標床反力の仮瞬時値との差が、前記第１発明に関して説明した場合と同様に、第２モデルに入力される目標運動および目標床反力の仮瞬時値の動力学的平衡条件からの誤差を表す仮瞬時値誤差として得られる。ただし、第２３発明を必要要件とする後述の第２７〜第３９発明においては、第２モデルに入力される目標運動は、該目標運動の仮瞬時値を補正したものなので、厳密な意味での誤差ではないが、便宜上誤差と呼ぶ。そして、少なくともこの仮瞬時値誤差と前記制限対象量の許容範囲とに基づいて、前記第２動力学モデルが出力する前記モデル床反力瞬時値に対応する前記制限対象量（前記摩擦力成分又はＺＭＰ又は床反力モーメント水平成分）が前記許容範囲内に収まるように前記目標床反力の補正量を求め、その求めた補正量を前記第１動力学モデルにフィードバックとして追加的に入力するので、第１動力学モデルから、前記仮瞬時値誤差を安定化しつつ、制限対象量を許容範囲内に収め得るような目標運動の瞬時値を出力させることができるようになる。従って、第２動力学モデルの入力に基づいて目標運動の目標瞬時値を決定することで、前記制限対象量が許容範囲内に収まるような目標歩容の目標瞬時値を得ることができる。この場合、第１動力学モデルの出力は、前記目標床反力の補正量によって操作されることとなるので、第１動力学モデルは、さほど近似精度の高いものである必要はない。従って、この第１動力学モデルの演算を行なう前記第１モデル演算手段の演算量を低減できる。また、第２動力学モデルの演算を行なう第２モデル演算手段では、前記第１発明におけるモデル演算手段と同様に、少なくとも目標運動の仮瞬時値（脚体先端部の位置姿勢等の瞬時値）を入力として、モデル床反力瞬時値（目標運動の仮瞬時値に対応して、前記動力学モデル上で慣性力と重力との合力に釣り合う床反力の瞬時値）を求めるだけであるので、前記第２動力学モデルが比較的厳密なものであっても、比較的少ない演算量でモデル床反力瞬時値を求めることができる。その結果、第２３発明によれば、第１発明と同様に、前記制限対象量が許容範囲内に収まるような目標歩容の目標瞬時値を比較的少ない演算量で決定することができる。また、前記摩擦力成分等の制限対象量が許容範囲内に収まるような目標歩容の目標瞬時値を決定できることで、通常の歩行以外にも、走行や低摩擦係数床面での歩行など、多様な目標歩容を適正に生成することができる。
【００６９】
なお、前記第１動力学モデルは、基本的には、近似精度が比較的低いものでよいが、第２動力学モデルは、近似精度が比較的高いものを用いることが好適である。これにより、動力学平衡条件を精度よく満足し得る目標歩容を生成できる。
【００７０】
かかる第２３発明では、前記第２モデル演算手段が求めるモデル床反力瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰのモデル値を含むと共に、前記仮瞬時値決定手段が決定する前記目標床反力の仮瞬時値は少なくとも床反力モーメント水平成分又はＺＭＰの仮目標瞬時値を含み、前記第１モデル入力補正手段が用いる前記差は、前記床反力モーメント水平成分又はＺＭＰのモデル値と、該床反力モーメント水平成分又はＺＭＰの仮目標瞬時値との差であることが好ましい（第２４発明）。これによれば、前記第２発明と同様に、前記仮瞬時値誤差が、動力学的平衡条件に対する誤差を表すものとしての信頼性が高まり、ひいては、動力学的平衡条件を精度良く満足し得る目標歩容を生成できる。
【００７１】
また、上記第２３および第２４発明では、前記第２動力学モデルが出力する前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定する（第２５発明）。すなわち、第２動力学モデルには、前記制限対象量を許容範囲内に収め得る適正な目標運動の目標瞬時値が入力されることとなるので、前記第２２発明の場合と同様に、第２動力学モデルの出力である前記モデル床反力瞬時値は、目標運動の目標瞬時値に対して、第２動力学モデル上で動力学的平衡条件を満たすものとなる。従って、前記モデル床反力瞬時値を前記目標床反力の目標瞬時値として決定することで、前記目標運動の目標瞬時値に対して、第２動力学モデル上で発生する慣性力と重力との合力に釣り合う目標床反力の目標瞬時値を決定できる。
【００７２】
また、第２３〜第２５発明では、前記目標床反力の補正量の要求値を決定する手段を備え、前記第１モデル入力補正手段が求める前記目標床反力の補正量は、少なくとも前記差に応じて決定される第１補正量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２補正量成分とを含み、前記第１モデル入力補正手段は、前記第２補正量成分を前記要求値に一致させて前記第１補正量成分と共に前記第１動力学モデルにフィードバックとして追加的に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２補正量成分を決定する手段とを備えることが好ましい（第２６発明）。
【００７３】
すなわち、第２６発明では、前記第１動力学モデルに入力する前記目標床反力の補正量を決定するとき、まず、前記仮瞬時値誤差だけを考慮した第１補正量成分（これは基本的には、仮瞬時値誤差が安定になるように決定する）と、前記許容範囲を考慮せずに（制限対象量の許容範囲が無いものと仮定して）、前記要求値に一致させた第２補正量成分とを、前記第１動力学モデルにフィードバックとして追加的に入力したと仮定した場合に決定される目標運動の目標瞬時値に対応する前記制限対象量の推定値が求められる。そして、この制限対象量の推定値を許容範囲内に制限してなる制限済制限対象量を決定した上で、少なくともその制限済制限対象量に基づき第２補正量成分を決定する。これにより、制限対象量を許容範囲内に収めるために必要な第２補正量成分が適正に決定される。そして、このように決定された第２補正量成分と前記第１補正量成分とが第１動力学モデルに追加的に入力されることで、前記仮瞬時値誤差を安定化すると共に制限対象量を許容範囲内に収め得る目標運動の瞬時値を第１動力学モデルから第２動力学モデルに入力することができる。
【００７４】
また、第２３〜第２５発明では、少なくとも前記差（仮瞬時値誤差）と前記許容範囲とに基づき前記目標運動の補正量を求め、その求めた補正量を前記第２動力学モデルにフィードバックとして追加的に入力する第２モデル入力補正手段を備えてもよい（第２７発明）。これによれば、第１動力学モデルの安定性を高めつつ、動力学的精度を高め得る目標歩容を生成できる。
【００７５】
この第２７発明では、前記ロボットの摂動運動と摂動床反力との関係を表す摂動モデルと、少なくとも前記差と前記許容範囲とに基づき床反力操作量を決定する手段と、その決定した床反力操作量を、前記第１動力学モデルに入力する前記目標床反力の補正量と前記摂動モデルに入力する摂動モデル操作量とに分配する分配手段とを備え、前記第２モデル入力補正手段は、前記摂動モデル操作量を前記摂動モデルに入力することにより前記目標運動の補正量を求めることが好適である（第２８発明）。
【００７６】
これによれば、前記床反力操作量を前記第１動力学モデルに入力する前記目標床反力の補正量と前記摂動モデルに入力する摂動モデル操作量とに分配するので、第１動力学モデルと摂動モデルとのそれぞれの特性に適した入力をそれぞれのモデルに入力することができ、第１動力学モデルや、摂動モデルが不安定になるのを防止しつつ、前記仮瞬時値誤差を安定化し、且つ制限対象量を許容範囲内に収め得る目標運動の目標瞬時値を決定できる。また、摂動モデルを用いることで、第２動力学モデルにフィードバックとして追加的に入力する目標運動の補正量の算出が容易になる。
【００７７】
なお、床反力操作量を前記第１動力学モデルに入力する前記目標床反力の補正量と前記摂動モデルに入力する摂動モデル操作量とに分配する場合、基本的には、第１動力学モデルには、床反力操作量の大局的な変動分（直流的な変動分等）を分配することが好ましく、摂動モデルには、局所的な変動分（微小な変動分等）を分配することが好適である。
【００７８】
このように摂動モデルを備える第２８発明では、少なくとも前記摂動モデルの状態量に応じて前記床反力操作量の要求値を決定する手段を備え、前記床反力操作量を決定する手段は、前記差（仮瞬時値誤差）、前記許容範囲、及び前記要求値に基づき前記分配手段に与える床反力操作量を決定することが好ましい（第２９発明）。
【００７９】
これによれば、前記第５発明と同様に、前記仮瞬時値誤差や許容範囲だけでなく、摂動モデルの状態量（摂動モデルの要素としての質点や回転体の位置や回転角、あるいはそれらの変化速度等）の要求値を考慮して、前記分配手段に入力する床反力操作量が決定されるので、摂動モデルの挙動の安定性を高め、ひいては、該摂動モデルにより不適正な目標運動の補正量が求められてしまうような事態を防止できる。
【００８０】
さらに、上記第２９発明では、前記床反力操作量の要求値を前記摂動モデルの状態量と該状態量に対する目標値との偏差に応じたフィードバック制御則により逐次決定する手段を備えることが好ましい（第３０発明）。これによれば、前記第６発明と同様に、摂動モデルの挙動の安定性をより確実に高めることができる。
【００８１】
また、上記第２８〜第３０発明では、前記摂動モデルは、前記摂動運動に対する並進床反力水平成分と床反力モーメント水平成分との摂動比率が互いに異なる複数の摂動運動を含むモデルであり、前記床反力操作量は各摂動運動にそれぞれ対応する複数の操作量からなると共に、前記第２モデル入力補正手段が求める前記目標運動の補正量は、各摂動運動にそれぞれ対応する複数の補正量からなることが好ましい（第３１発明）。
【００８２】
これによれば、前記第７発明と同様に、前記目標運動の仮瞬時値を補正するためにロボットの複数種の摂動運動を操作できるため、制限対象量の許容範囲の広さ等によらずに、制限対象量を許容範囲に収め得る目標運動の目標瞬時値を決定できる。
【００８３】
さらに、この第３１発明では、前記複数の摂動運動は、前記ロボットの上体の並進運動と、該ロボットの重心位置を維持しつつロボットの所定の部位の姿勢を変化させる姿勢変化運動とからなることが好適である（第３２発明）。これによれば、前記第８発明と同様に、前記上体の並進運動と姿勢変化運動との合成によって所望の床反力（制限対象量が許容範囲に収まるような床反力）を発生し得る目標運動の目標瞬時値を決定できる。
【００８４】
あるいは、第３１発明では、前記複数の摂動運動は、前記ロボットの上体の並進水平運動と、該ロボットの上体の姿勢変化運動とからなることが好ましい（第３３発明）。
【００８５】
これによれば、前記第９発明と同様に、目標運動の仮瞬時値の補正量を小さくでき、目標歩容におけるロボットの姿勢の安定性を高めることができる。
【００８６】
また、上記第３１〜第３３発明は、前記制限対象量は、前記ロボットに作用する摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなる場合に好適である（第３４発明）。
【００８７】
これによれば、前記第１０発明と同様に、ロボットの走行や、低摩擦係数の床面での歩行等、多種多様な条件下での目標歩容を適正に生成できる。
【００８８】
前記摂動モデルを備えた前記第２８発明にあっては、より具体的には、例えば前記床反力操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記許容範囲に基づき決定される第２操作量成分とを含み、前記床反力操作量を決定する手段は、前記第１操作量成分のみを前記分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第３５発明）。
【００８９】
すなわち、第３５発明では、前記床反力操作量を決定するとき、まず、前記許容範囲を考慮せずに（制限対象量の許容範囲が無いものと仮定して）前記仮瞬時値誤差だけを考慮した第１操作量成分（これは基本的には、仮瞬時値誤差が安定になるように決定する）のみを、前記分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値が求められる。そして、この制限対象量の推定値を許容範囲内に制限してなる制限済制限対象量を決定した上で、少なくともその制限済制限対象量に基づき第２操作量成分が決定される。これにより、制限対象量を許容範囲内に収めるために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とを含む床反力操作量が、分配手段に入力され、第１動力学モデルへの目標床反力の補正量と、摂動モデルへの摂動モデル操作量とに分配されることで、第１動力学モデルや摂動モデルの安定性を高めると共に前記仮瞬時値誤差を安定化しつつ、制限対象量を許容範囲内に収め得る目標運動の目標瞬時値を第２動力学モデルに入力することができる。
【００９０】
なお、前記制限済制限対象量を決定する場合、基本的には、制限対象量の推定値にできるだけ近く、且つ許容範囲に存在するような値を制限済制限対象量として決定することが好ましい。
【００９１】
また、特に、摂動モデルに対する要求値を有する前記第２９発明および第３０発明においては、前記床反力操作量は、少なくとも前記差に応じて決定される第１操作量成分と、少なくとも前記要求値及び許容範囲に基づき決定される第２操作量成分とを含み、前記床反力操作量を決定する手段は、前記第２操作量成分を前記要求値に一致させて前記第１操作量成分と共に前記分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値を求める手段と、その求めた制限対象量の推定値を前記許容範囲と比較し、その比較に基づき該許容範囲内に制限してなる制限済制限対象量を決定する手段と、少なくとも該制限済制限対象量に基づき前記第２操作量成分を決定する手段とを備える（第３６発明）。
【００９２】
すなわち、第３６発明では、前記床反力操作量を決定するとき、まず、前記仮瞬時値誤差だけを考慮した第１操作量成分（これは基本的には、仮瞬時値誤差が安定になるように決定する）と、前記許容範囲を考慮せずに（制限対象量の許容範囲が無いものと仮定して）、前記要求値に一致させた第２操作量成分とを、分配手段に入力したと仮定した場合に前記第２動力学モデルが出力するモデル床反力瞬時値に対応する前記制限対象量の推定値が求められる。そして、この制限対象量の推定値を許容範囲内に制限してなる制限済制限対象量を決定した上で、少なくともその制限済制限対象量に基づき第２操作量成分が決定される。これにより、制限対象量を許容範囲内に収め、且つ摂動モデルを確実に安定な状態にするために必要な第２操作量成分が適正に決定される。そして、このように決定された第２操作量成分と前記第１操作量成分とを含む床反力操作量が、分配手段に入力され、第１動力学モデルへの目標床反力の補正量と、摂動モデルへの摂動モデル操作量とに分配されることで、第１動力学モデルや摂動モデルの安定性を高めると共に前記仮瞬時値誤差を安定化しつつ、制限対象量を許容範囲内に収め得る目標運動の目標瞬時値を第２動力学モデルに入力することができる。
【００９３】
上記第３５発明あるいは第３６発明では、前記第２操作量成分が前記床反力モーメント水平成分又はＺＭＰを含むと共に、前記差（仮瞬時値誤差）が少なくとも該床反力モーメント水平成分又はＺＭＰに係わる差を含む場合には、前記摂動モデル操作量を決定する手段は、前記差（仮瞬時値誤差）のうちの床反力モーメント水平成分又はＺＭＰと、前記第２操作量成分の床反力モーメント水平成分又はＺＭＰとが等しくなるように前記第１操作量成分を決定する手段を備えることが好ましい（第３７発明）。
【００９４】
これによれば、前記第１９発明と同様に、仮瞬時値誤差の床反力モーメント水平成分又はＺＭＰを好適に安定化できるような目標運動の目標瞬時値を決定できる。
【００９５】
さらに、前記第３５〜第３７発明では、前記制限対象量が、前記摩擦力成分を含んでいる場合には、前記床反力操作量を決定する手段は、前記制限対象量の推定値を求めるために、前記モデル床反力瞬時値として前記動力学モデルにより求められる並進床反力水平成分の瞬時値又は並進床反力の床面平行成分の瞬時値を用いることが好ましい（第３８発明）。これによれば、前記第２０発明と同様に、前記制限対象量としての摩擦力成分の推定値（許容範囲を無視して、前記仮瞬時値誤差や要求値のみを考慮した制限対象量）を適正に求めることができ、ひいては、信頼性の高い制限済制限対象量（摩擦力成分を許容範囲内に制限したもの）を決定できる。
【００９６】
また、前記第３６発明、あるいはこれを必要要件とする第３７発明、第３８発明では、前記摂動モデルが、前記ロボットの上体の並進運動と、該ロボットの上体の姿勢変化運動とを含むモデルであると共に、前記制限対象量が、前記摩擦力成分と、床反力モーメント水平成分又はＺＭＰとからなるときには、前記制限済制限対象量を決定する手段は、前記第２操作量成分のうち、前記上体の姿勢変化運動に対応する操作量成分の前記要求値からの変化が最小になり、且つ、各制限済制限対象量の前記推定値からの変化が最小になるように各制限済制限対象量を決定することが好ましい（第３９発明）。これによれば、前記第１４発明や、第２１発明と同様に、上体の姿勢変化運動の変化をできるだけ抑えるとともに摂動モデルの安定性をできるだけ確保しつつ、制限対象量を許容範囲に収めることが可能な目標運動の目標瞬時値を決定できる。
【００９７】
次に、本願の第４０発明は、上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、前記ロボットに作用する並進床反力水平成分又は並進床反力の床面平行成分又は該ロボットの全体重心加速度水平成分又は全体重心加速度の床面平行成分と、床反力モーメント水平成分又はＺＭＰとのうちの少なくともいずれかを制限対象量とし、該制限対象量の許容範囲を設定する許容範囲設定手段と、前記目標歩容を構成する目標運動及び目標床反力のうちの少なくとも目標床反力の仮瞬時値を逐次決定する目標床反力仮瞬時値決定手段と、前記ロボットの運動と床反力との関係を表す第１動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第１動力学モデルの出力としての目標運動の第１仮瞬時値を求める第１モデル演算手段と、前記ロボットの運動と床反力との関係を表す第２動力学モデルに、少なくとも前記目標床反力仮瞬時値決定手段が決定した目標床反力の仮瞬時値を入力し、該第２動力学モデルの出力としての目標運動の第２仮瞬時値を、該目標運動の第２仮瞬時値によって発生するロボットの慣性力と重力との合力に前記第２動力学モデル上で釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲設定手段が設定した許容範囲内に収まるように求める第２モデル演算手段と、少なくとも前記第１モデル演算手段が求めた目標運動の第１仮瞬時値と前記第２モデル演算手段が求めた目標運動の第２仮瞬時値との差に基づいて、該差が零に近づくように床反力操作量を求める操作量算出手段と、前記操作量算出手段が求めた床反力操作量を前記第１動力学モデル及び第２動力学モデルのうちの少なくともいずれか一方にフィードバックとして追加的に入力するモデル入力補正手段とを備え、前記第２モデル演算手段が求めた目標運動の第２仮瞬時値を該目標運動の目標瞬時値として決定することを特徴とするものである。
【００９８】
かかる第４０発明では、目標床反力の仮瞬時値を入力として、目標運動の仮瞬時値（第１仮瞬時値および第２仮瞬時値）をそれぞれ出力する第１動力学モデルおよび第２動力学モデルが備えられる。この場合、第２動力学モデルの演算では、制限対象量の許容範囲が考慮され、目標運動の第２仮瞬時値によって発生するロボットの慣性力と重力との合力に第２動力学モデル上で略釣り合う床反力の瞬時値に対応する前記制限対象量が前記許容範囲内に収まるように、目標運動の第２仮瞬時値が求められる。そして、少なくとも前記目標運動の第１仮瞬時値と第２仮瞬時値との差に基づいて、該差が零に近づくように床反力操作量が求められ、この床反力操作量が前記第１動力学モデル及び第２動力学モデルのうちの少なくともいずれか一方にフィードバックとして追加的に入力される。さらに、前記目標運動の第２仮瞬時値が該目標運動の目標瞬時値として決定される。
【００９９】
この場合、基本的には、第１動力学モデルは比較的動力学的な近似精度の低いものでよく、また、第２動力学モデルは、第１動力学モデルよりも動力学的な近似精度が高いものであればよい。このため、それぞれの動力学モデルの演算を行なう前記第１モデル演算手段と第２モデル演算手段とは、それぞれ比較的少ない演算量でそれぞれの動力学モデルの出力を演算できる。そして、前記目標運動の第１仮瞬時値と第２仮瞬時値との差が零に近づくように求めた床反力操作量を第１動力学モデル及び第２動力学モデルのうちの少なくともいずれか一方にフィードバックとして追加的に入力するので、前記第２動力学モデルが出力する目標運動の第２仮瞬時値が、前記制限対象量を許容範囲に収めつつ、安定性の高いものとなり、目標運動の目標瞬時値として好適なものとなる。その結果、通常の歩行以外にも、走行や低摩擦係数床面での歩行などの多様な目標歩容を、比較的少ない演算量で生成することが可能となる。
【０１００】
かかる第４０発明では、前記目標運動の第１仮瞬時値と第２仮瞬時値との差は、前記ロボットの所定の部位の位置の差を含み、又は、該ロボットの重心の位置の差と該ロボットの所定の部位の姿勢の差とを含むことが好ましい（第４１発明）。これによれば、前記所定の部位の位置姿勢や、ロボットの重心位置がロボットの安定性を損なうような状態になったりすることを防止して、目標運動の目標瞬時値によるロボットの安定性を高めることができる。なお上記所定の部位としては、ロボットの上体が好適である。
【０１０１】
上述のような第４０発明は、例えば前記第２６発明の構成を用いることで、容易に実現できる。すなわち、前記第２６発明において、前記目標床反力の補正量の要求値を決定する手段を除いたものが、前記第４０発明における前記第２モデル演算手段の処理に相当するものとなる。そこで、第２６発明において、少なくとも前記目標床反力の仮瞬時値を、前記ロボットの運動と床反力との関係を表す第３動力学モデルに入力し、該第３動力学モデルの出力としての目標運動の第３仮瞬時値を求める第３モデル演算手段を備え、前記目標床反力の補正量の要求値を決定する手段は、前記決定した前記目標運動の目標瞬時値と前記目標運動の第３仮瞬時値との差に基づいて、該差が零に近づくように前記要求値を決定する（第４２発明）。
【０１０２】
かかる第４２発明では、上記第３動力学モデルと第３モデル演算手段とが、それぞれ第４０発明における第１動力学モデル、第１モデル演算手段に相当するものとなる。従って、第４２発明は、第４０発明と同等のものとなり、第４０発明と同様の効果を奏することができる。
【発明を実施するための最良の形態】
【０１０３】
以下、添付図面を参照して本発明の実施形態に係る脚式移動ロボットの歩容生成装置及び制御装置を説明する。尚、本発明の実施形態では、脚式移動ロボットとしては２足移動ロボットを例にとる。
【０１０４】
図１は、本実施形態に係る歩容生成装置及び制御装置が適用される脚式移動ロボットとしての２足移動ロボットの全体的構成の概略を示す概略図である。
【０１０５】
図示の如く、２足移動ロボット（以下、ロボットという）１は上体２４から下方に延設された左右一対の脚体（脚部リンク）２，２を備える。両脚体２，２は同一構造であり、それぞれ６個の関節を備える。その６個の関節は上体２４側から順に、股（腰部）の回旋（回転）用（上体２４に対するヨー方向の回転用）の関節１０Ｒ，１０Ｌ（符号Ｒ、Ｌはそれぞれ右側脚体、左側脚体に対応するものであることを意味する符号である。以下同じ）と、股（腰部）のロール方向（Ｘ軸まわり）の回転用の関節１２Ｒ，１２Ｌと、股（腰部）のピッチ方向（Ｙ軸まわり）の回転用の関節１４Ｒ，１４Ｌと、膝部のピッチ方向の回転用の関節１６Ｒ，１６Ｌと、足首のピッチ方向の回転用の関節１８Ｒ，１８Ｌと、足首のロール方向の回転用の関節２０Ｒ，２０Ｌとから構成される。
【０１０６】
各脚体２の足首の２つの関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下部には、各脚体２の先端部を構成する足平（足部）２２Ｒ（Ｌ）が取着されると共に、両脚体２，２の最上位には、各脚体２の股の３つの関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）を介して前記上体（基体）２４が取り付けられている。上体２４の内部には、詳細を後述する制御ユニット２６などが格納されている。なお、図１では図示の便宜上、制御ユニット２６を上体２４の外部に記載している。
【０１０７】
上記構成の各脚体２においては、股関節（あるいは腰関節）は関節１０Ｒ（Ｌ），１２Ｒ（Ｌ），１４Ｒ（Ｌ）から構成され、膝関節は関節１６Ｒ（Ｌ）から構成され、足関節（足首関節）は関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）から構成される。また股関節と膝関節とは大腿リンク２８Ｒ（Ｌ）で連結され、膝関節と足関節とは下腿リンク３０Ｒ（Ｌ）で連結される。
【０１０８】
尚、図示は省略するが、上体２４の上部の両側部には左右一対の腕体が取り付けられると共に、上体２４の上端部には頭部が配置される。これらの腕体及び頭部は、本発明の要旨と直接的な関連を有しないので詳細な説明は省略するが、各腕体は、それに備える複数の関節によって、該腕体を上体２４に対して前後に振る等の運動を行なうことが可能となっている。
【０１０９】
各脚体２の上記構成により、各脚体２の足平２２Ｒ（Ｌ）は、上体２４に対して６つの自由度を与えられている。そして、ロボット１の移動に際して両脚体２，２を合わせて６*２＝１２個（この明細書で「*」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す）の関節を適宜な角度で駆動することで、両足平２２Ｒ，２２Ｌの所望の運動を行なうことができる。これによりロボット１は任意に３次元空間を移動することができる。
【０１１０】
尚、この明細書で後述する上体２４の位置および速度は、上体２４の所定位置、具体的には上体２４のあらかじめ定めた代表点（例えば左右の股関節の間の中央点等）の位置およびその移動速度を意味する。同様に、各足平２２Ｒ，２２Ｌの位置及び速度は、各足平２２Ｒ，２２Ｌのあらかじめ定めた代表点の位置及びその移動速度を意味する。この場合、本実施形態では各足平２２Ｒ，２２Ｌの代表点は、例えば各足平２２Ｒ，２２Ｌの底面上（より具体的には各脚体２の足首関節の中心から各足平２２Ｒ，２２Ｌの底面への垂線が該底面と交わる点等）に設定される。
【０１１１】
図１に示す如く、各脚体２の足首関節１８Ｒ（Ｌ），２０Ｒ（Ｌ）の下方には足平２２Ｒ（Ｌ）との間に公知の６軸力センサ３４が介装されている。該６軸力センサ３４は、各脚体２の足平２２Ｒ（Ｌ）の着地の有無、および各脚体２に作用する床反力（接地荷重）などを検出するためのものであり、該床反力の並進力の３方向成分Ｆｘ，Ｆｙ，Ｆｚ並びにモーメントの３方向成分Ｍｘ，Ｍｙ，Ｍｚの検出信号を制御ユニット２６に出力する。また、上体２４には、Ｚ軸（鉛直方向（重力方向））に対する上体２４の傾き（姿勢角）とその角速度とを検出するための傾斜センサ３６が設置され、その検出信号が該傾斜センサ３６から制御ユニット２６に出力される。また、詳細構造の図示は省略するが、ロボット１の各関節には、それを駆動するために電動モータ３２（図３参照）と、その電動モータ３２の回転量（各関節の回転角）を検出するためのエンコーダ（ロータリエンコーダ）３３（図３参照）とが設けられ、該エンコーダ３３の検出信号が該エンコーダ３３から制御ユニット２６に出力される。
【０１１２】
図２に示すように、各足平２２Ｒ（Ｌ）の上方には、前記６軸力センサ３４との間にばね機構３８が装備されると共に、足底（各足平２２Ｒ（Ｌ）の底面）にはゴムなどからなる足底弾性体４０が貼られている。これらのばね機構３８及び足底弾性体４０によりコンプライアンス機構４２が構成されている。ばね機構３８は具体的には、足平２２Ｒ（Ｌ）の上面部に取り付けられた方形状のガイド部材（図示せず）と、足首関節１８Ｒ（Ｌ）（図２では足首関節２０Ｒ（Ｌ）を省略している）および６軸力センサ３４側に取り付けられ、前記ガイド部材内に弾性材（ゴムやばね）を介して微動自在に収納されるピストン状部材（図示せず）とから構成されている。
【０１１３】
図２に実線で表示された足平２２Ｒ（Ｌ）は、床反力を受けていないときの状態を示している。各脚体２が床反力を受けると、コンプライアンス機構４２のばね機構３８と足底弾性体４０とがたわみ、足平２２Ｒ（Ｌ）は図中に点線で例示したような位置姿勢に移る。このコンプライアンス機構４２の構造は、着地衝撃を緩和するためだけでなく、ロボット１の制御性を高めるためにも重要なものである。尚、その詳細は本出願人に先に提案した特開平５−３０５５８４号に記載されているので、詳細な説明は省略する。
【０１１４】
さらに、図１では図示を省略するが、ロボット１の外部には、該ロボット１の操縦用のジョイスティック（操作器）４４（図３参照）が設けられ、そのジョイスティック４４を操作することで、直進移動しているロボット１を旋回させるなど、ロボット１の歩容に対する要求を必要に応じて制御ユニット２６に入力できるように構成される。この場合、入力できる要求は、例えばロボット１の移動時の歩容形態（歩行、走行等）、遊脚の着地位置姿勢や着地時刻、あるいはこれらの着地位置姿勢や着地時刻を規定する指令データ（例えばロボット１の移動方向、移動速度等）である。
【０１１５】
図３は制御ユニット２６の構成を示すブロック図である。該制御ユニット２６はマイクロコンピュータにより構成されており、ＣＰＵからなる第１の演算装置６０及び第２の演算装置６２、Ａ／Ｄ変換器５０、カウンタ５６、Ｄ／Ａ変換器６６、ＲＡＭ５４、ＲＯＭ６４、並びにこれらの間のデータ授受を行なうバスライン５２を備えている。この制御ユニット２６では、前記各脚体２の６軸力センサ３４、傾斜センサ３６、ジョイスティック４４等の出力信号はＡ／Ｄ変換器５０でデジタル値に変換された後、バスライン５２を介してＲＡＭ５４に入力される。また、ロボット１の各関節のエンコーダ３３（ロータリエンコーダ）の出力はカウンタ５６を介してＲＡＭ５４に入力される。
【０１１６】
前記第１の演算装置６０は後述の如く、目標歩容を生成すると共に、関節角変位指令（各関節の変位角もしくは各電動モータ３２の回転角の指令値）を算出し、ＲＡＭ５４に送出する。また第２の演算装置６２はＲＡＭ５４から関節角変位指令と、前記エンコーダ３３の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出してＤ／Ａ変換器６６とサーボアンプ３２ａとを介して各関節を駆動する電動モータ３２に出力する。
【０１１７】
図４は、本実施形態におけるロボット１の歩容生成装置及び制御装置の機能的構成を全体的に示すブロック図である。この図４中の「実ロボット」の部分以外の部分が制御ユニット２６が実行する処理機能（主として第１の演算装置６０及び第２の演算装置６２の機能）によって構成されるものである。尚、以下の説明では、脚体２の左右を特に区別する必要がないときは、前記符号Ｒ，Ｌを省略する。
【０１１８】
以下説明すると、制御ユニット２６は、後述の如く目標歩容を自在かつリアルタイムに生成して出力するフルモデル補正入り歩容生成装置１００（以下、歩容生成装置１００と略称する）を備えている。該歩容生成装置１００は、その機能によって本願発明の各手段を構成するものである。この歩容生成装置１００が出力する目標歩容は、補正目標上体姿勢軌道（上体２４の目標姿勢の軌道）、補正目標上体位置軌道（上体２４の目標位置の軌道）、目標足平位置姿勢軌道（各足平２２の目標位置及び目標姿勢の軌道）、目標腕姿勢軌道（各腕体の目標姿勢の軌道）、目標ＺＭＰ（目標全床反力中心点）軌道、目標ＺＭＰまわりの補正目標床反力モーメント軌道および目標全床反力軌道から構成される。尚、脚体２や腕体以外に、上体２４に対して可動な部位を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。
【０１１９】
ここで、上記歩容における「軌道」は時間的変化のパターン（時系列パターン）を意味し、以下の説明では、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。具体的には、例えば上体姿勢はＺ軸（鉛直軸）に対するロール方向（Ｘ軸まわり）の上体２４の傾斜角（姿勢角）とピッチ方向（Ｙ軸まわり）の上体２４の傾斜角（姿勢角）とで表され、足平姿勢は各足平２２に固定的に設定された２軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。
【０１２０】
補正目標上体姿勢および補正目標上体位置は、詳細は後述するが、それぞれ単純化モデルによって生成された仮目標上体姿勢および仮目標上体位置をフルモデル補正によって補正したものである。
【０１２１】
尚、以下の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。また、歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット１の運動に係わる歩容を総称的に「運動」という。また、各足平２２に作用する床反力（並進力及びモーメントからなる床反力）を「各足平床反力」と呼び、ロボット１の全て（２つ）の足平２２Ｒ，２２Ｌについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。
【０１２２】
目標床反力は、一般的には、作用点とその点に作用する並進力及びモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点（全床反力の中心点の目標位置）を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分（鉛直軸（Ｚ軸）まわりのモーメント）を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分（水平軸（Ｘ軸及びＹ軸）回りのモーメント）は零になる。
【０１２３】
尚、動力学的平衡条件を満足する歩容では、ロボット１の目標運動軌道から算出されるＺＭＰ（目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点）と目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである（詳細は、本願出願人による特願２０００−３５２０１１号等を参照）。
【０１２４】
このような背景から、上記特願２０００−３５２０１１号の明細書では目標歩容を、次のように定義していた。
ａ）広義の目標歩容とは、１歩ないしは複数歩の期間の目標運動軌道とその目標床反力軌道との組である。
ｂ）狭義の目標歩容とは、１歩の期間の目標運動軌道とそのＺＭＰ軌道との組である。
ｃ) 一連の歩容は、いくつかの歩容がつながったものとする。
【０１２５】
歩行においては、本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法によってロボット１の上体２４の鉛直位置（上体高さ）が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ＺＭＰまわりに発生するモーメントの水平成分が零になるようにロボット１の上体水平位置軌道を決定することで、並進床反力水平成分も決定される。このため、特願２０００−３５２０１１号の明細書では、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ＺＭＰだけで十分であった。したがって、狭義の目標歩容の定義としては、上記のｂ）で十分であった。それに対し、本実施形態で主に説明するロボット１の走行歩容（詳細は後述する）においては、床反力鉛直成分（並進床反力鉛直成分）も制御上重要である。このため本実施形態では、この床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット１の目標上体鉛直位置等の軌道を決定する。
【０１２６】
さらに、本発明では、目標ＺＭＰまわりに補正目標床反力モーメントを発生させる。そこで、本明細書では、狭義の目標歩容を次のように定義する。
ｂ''）狭義の目標歩容とは、１歩の期間の目標運動軌道、目標ＺＭＰ軌道、目標ＺＭＰまわりの補正目標床反力モーメントおよび床反力鉛直成分軌道の組である。
【０１２７】
本明細書では、特にことわらない限り、目標歩容は上記ｂ''）の狭義の目標歩容の意味で使用する。但し、詳細は後述するが、本明細書の実施形態においては、最終的な目標歩容を生成するまでの過程で作成する仮目標歩容では、目標ＺＭＰまわりの補正目標床反力モーメント水平成分は、本来の目標ＺＭＰの定義に基づいて零とする場合がある。従って、最終的に決定する目標歩容以外の仮目標歩容（例えば後述の単純化モデル歩容）では、上記b''）で定義した狭義の目標歩容から、補正目標床反力モーメントを除いたもの、すなわち、次のｂ’）で定義されるものを目標歩容の意味で使用する場合がある。
ｂ’）狭義の目標歩容とは、１歩の期間の目標運動軌道、目標ＺＭＰ軌道、および床反力鉛直成分軌道の組である。
【０１２８】
なお、本明細書では、目標歩容の「１歩」は、ロボット１の片方の脚体２が着地してからもう一方の脚体２が着地するまでの意味で使用する。また、以下の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分（鉛直軸回り成分）は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。
【０１２９】
また、歩容における両脚支持期とは言うまでもなく、ロボット１がその自重を両脚体２，２で支持する期間、片脚支持期とはいずれか一方のみの脚体２でロボット１の自重を支持する期間、空中期とは両脚体２，２が床から離れている（空中に浮いている）期間を言う。片脚支持期においてロボット１の自重を支持しない側の脚体２を「遊脚」と呼ぶ。尚、本実施形態で主に説明する走行歩容では、両脚支持期は無く、片脚支持期と空中期とが交互に繰り返される。この場合、空中期では両脚２，２とも、ロボット１の自重を支持しないこととなるが、該空中期の直前の片脚支持期において遊脚であった脚体２、支持脚であった脚体２をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。
【０１３０】
ここで、本実施形態で主に説明する図５の走行歩容を例にとって、歩容生成装置１００が生成する目標歩容（特に脚体２，２の運動）の基本的な概要を説明する。なお、歩容に関するその他の定義および詳細は、先に本願出願人が提案した特開平１０−８６０８１号公報にも記載されているので、以下では、特開平１０−８６０８１号公報に記載されていない内容を主に説明する。
【０１３１】
まず、図５に示す走行歩容を説明する。この走行歩容は、人間の通常的な走行歩容と同様の歩容である。この走行歩容では、ロボット１の左右いずれか一方のみの脚体２（支持脚）の足平２２が着地（接地）する片脚支持期と、両脚体２，２が空中に浮く空中期とが交互に繰り返される。図５の１番目の状態は片脚支持期の開始時（初期）の状態、２番目の状態は片脚支持期の中間時点の状態、３番目の状態は片脚支持期に続く空中期の開始時（片脚支持期の終了時）の状態、４番目の状態は空中期の中間時点の状態、５番目の状態は空中期の終了時（次の片脚支持期の開始時）の状態を示している。
【０１３２】
この走行歩容では、ロボット１は、図５の１番目の状態で示すように、片脚支持期の開始時において支持脚（ロボット１の進行方向前側の脚体２）側の足平２２のかかとで着地する。続いて、図５の２番目の状態で示すように、ロボット１は、着地した足平２２（支持脚側の足平２２）の底面のほぼ全面を着地させた後、図５の３番目の状態で示すように、その支持脚側の足平２２（図５の３番目の状態におけるロボット１の進行方向後側の脚体２の足平２２）のつま先で床を蹴って空中に飛び上がる。これより片脚支持期が終了すると共に空中期が開始する。尚、片脚支持期における遊脚は、図５の１番目の状態で示すように、片脚支持期の開始時では、支持脚の後側に存在するが、図５の２番目及び３番目の状態で示すように次の着地予定位置に向かって支持脚の前側に振り出される。次いで、図５の４番目の状態で示す空中期を経た後、ロボット１は、遊脚（空中期の開始直前の片脚支持期で遊脚となっていた脚体２）の足平２２のかかとで着地し、次の片脚支持期が開始される。
【０１３３】
図５の走行歩容を考慮しつつ、前記歩容生成装置１００が生成する目標歩容の基本的な概要を説明する。詳細は後述するが、歩容生成装置１００が目標歩容を生成するとき、遊脚側の足平２２の着地位置姿勢（着地予定位置姿勢）や着地時刻（着地予定時刻）等の目標歩容生成用の基本的な要求値（要求パラメータ）が、前記ジョイスティック４４の所要の操作等に応じて歩容生成装置１００に与えられる。そして、歩容生成装置１００は、その要求パラメータを用いて目標歩容を生成する。より詳しく言えば、歩容生成装置１００は、上記要求パラメータに応じて、目標歩容の目標足平位置姿勢軌道、目標床反力鉛直成分軌道等、目標歩容の一部の構成要素を規定するパラメータ（歩容パラメータという）を決定した上で、その歩容パラメータを用いて目標歩容の瞬時値を逐次決定し、該目標歩容の時系列パターン（軌道）を生成する。
【０１３４】
この場合、目標足平位置姿勢軌道（より詳しくは、足平の位置及び姿勢の空間的な各成分（Ｘ軸成分等）の目標軌道）は、例えば本出願人が特許第３２３３４５０号にて提案した有限時間整定フィルタを用いて各足平２２毎に生成される。この有限時間整定フィルタは、可変時定数の１次遅れフィルタ、すなわち、伝達関数が１／（１＋τｓ）の形で表されるフィルタ（τは可変の時定数。以下、このフィルタを単位フィルタという）を複数段（本実施形態では３段以上）、直列に接続したものであり、所望の指定時刻に指定値に到達するような軌道を生成・出力することができるものである。この場合、各段の単位フィルタの時定数τは、いずれも、有限時間整定フィルタの出力生成を開始してから、上記指定時刻までの残時間に応じて逐次可変的に設定される。より詳しくは、該残時間が短くなるに伴いτの値が所定の初期値（＞０）から減少されていき、最終的には、該残時間が０になる指定時刻にて、τの値が０になるように設定される。そして、有限時間整定フィルタには、前記指定値（より詳しくは、有限時間整定フィルタの出力の初期値から前記指定値への変化量）に応じた高さのステップ入力が与えられる。このような有限時間整定フィルタは、指定時刻にて指定値に達するような出力が生成されるだけでなく、指定時刻における有限時間整定フィルタの出力の変化速度を０もしくはほぼ０にすることができる。特に、単位フィルタを３段以上（３段でよい）、接続した場合には、有限時間整定フィルタの出力の変化加速度（変化速度の微分値）をも０もしくはほぼ０にすることができる。
【０１３５】
このような有限時間整定フィルタを用いる足平位置姿勢軌道（足平２２が着地してから次に着地するまでの位置姿勢軌道）の生成は、例えば次のように行なわれる。例えばＸ軸方向（前後方向）の目標足平位置軌道は次のように生成される。すなわち、前記要求パラメータにより定まる各足平２２の次の着地予定位置のＸ軸方向位置（より詳しくは、次の着地予定位置のひとつ前の着地位置に対するＸ軸方向の変化量（移動量）。これは前記指定値に相当する）に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に前記時定数τが所定の初期値に初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、足平２２のＸ軸方向位置の軌道生成が開始される。そして、この軌道生成時には、前記時定数τは、足平２２の着地予定時刻（これは前記指定時刻に相当する）までに初期値から０まで減少していくように、逐次可変設定される。これにより、着地予定時刻で着地予定位置に達するような、足平２２のＸ軸方向の位置の軌道が生成される。
【０１３６】
また、Ｚ軸方向（鉛直方向）の目標足平位置軌道は、例えば次のように生成される。すなわち、まず、足平２２の次の着地予定位置及び着地予定時刻に応じて、該足平２２の高さ（鉛直位置）が最大になるときの該足平２２のＺ軸方向位置（以下、最高点位置という）とその最高点位置への到達時刻とが決定される。そして、その最高点位置（これは前記指定値に相当する）に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に時定数τが初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、前記最高点位置までのＺ軸方向の足平位置軌道が逐次生成される。この際、時定数τは、最高点位置への到達時刻（前記指定時刻に相当）までに初期値から０まで減少するように逐次可変設定される。さらに、最高点位置までのＺ軸方向位置の軌道の生成が終了したら、時定数τを初期化すると共にいままでのステップ入力と逆極性のステップ入力（より詳しくは、最高点位置から次の着地予定位置までのＺ軸方向の変化量（これは前記指定値に相当する）に応じた高さの逆極性のステップ入力）が有限時間整定フィルタに入力され、該最高点位置から着地予定位置までのＺ軸方向の足平位置の軌道が逐次生成される。この際、時定数τは足平２２の着地予定時刻までに初期値から０まで減少するように逐次可変設定される。
【０１３７】
尚、Ｚ軸方向の足平位置軌道の生成においては、時定数τを軌道生成開始時刻から足平２２の着地予定時刻まで、初期値から０まで継続的に減少するように可変設定すると共に、最高点位置への到達時刻もしくはその近傍時刻で、ステップ入力の極性を逆極性に切り替えることで、Ｚ軸方向の足平位置軌道を生成するようにしてもよい。この場合には、足平２２を所望の最高点位置に精度よく到達させることはできないが、着地予定時刻での着地予定位置への到達は問題なく行なうことができる。
【０１３８】
足平姿勢軌道についても、上述した足平位置軌道と同様に有限時間整定フィルタを用いて生成することができる。この場合、足平姿勢の空間的な各成分のうち、その姿勢の角度変化が単調的（単調増加もしくは単調減少）なものとなる成分については、前記したＸ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。また、姿勢の角度変化が極大値もしくは極小値をもつような成分については、前記したＺ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。
【０１３９】
尚、上記のように有限時間整定フィルタにより生成される目標足平位置姿勢軌道は、床面に固定された後述の支持脚座標系での各足平２２の目標位置姿勢軌道である。
【０１４０】
上述のように生成される目標足平位置姿勢軌道は、各足平２２の位置が、その初期接地状態（目標歩容の初期時刻の状態）から着地予定位置に向かって徐々に加速しながら移動を開始するように生成される。そして、該目標足平位置姿勢軌道は、最終的に着地予定時刻までに徐々に位置の変化速度を０またはほぼ０にまで減速し、着地予定時刻にて着地予定位置に到達して停止するように生成される。このため、各足平２２の着地瞬間における対地速度（床に固定された支持脚座標系での各足平２２の位置の変化速度）が０またはほぼ０になる。したがって、走行歩容において同時に全脚体２，２が空中に存在する状態（空中期での状態）から着地しても、着地衝撃が小さくなる。
【０１４１】
前記走行歩容においては、ロボット１に作用する重力によって空中期後半から上体２４の鉛直速度は下向きになり、着地時でも下向きのままである。したがって、上記のように各足平２２の着地瞬間における対地速度が０またはほぼ０になるように目標足平位置姿勢軌道を生成すると共に、後述する如く動力学的平衡条件を満たすように上体２４の目標位置姿勢軌道を生成したとき、着地直前において、上体２４に対する遊脚側の足平２２の相対速度は、上向きになる。すなわち、走行歩容の着地瞬間では、ロボット１の目標歩容は遊脚側の脚体２を上体２４側に引っ込めながら着地するような歩容となる。言い換えれば、本実施例での目標歩容では、ロボット１は、着地瞬間において、遊脚側の足平２２の対地速度が０またはほぼ０になるように、上体２４から見て該足平２２を引き上げるようにして着地する。これによって、着地衝撃は小さくなり、着地衝撃が過大になるのを防止するようにしている。
【０１４２】
また、本実施形態では、有限時間整定フィルタは、単位フィルタを３段以上（例えば３段）、直列に接続したものであるため、着地予定時刻までに各足平２２の速度（足平位置の変化速度）が０またはほぼ０になるだけでなく、各足平２２は、その加速度も着地予定時刻にて０またはほぼ０になって停止する。つまり、着地瞬間における対地加速度も０またはほぼ０になる。したがって、着地衝撃がより一層小さくなる。特に、実際のロボット１の着地時刻が目標の着地時刻からずれても、衝撃があまり増大しなくなる。補足すると、着地予定時刻にて各足平２２の対地速度を０またはほぼ０にする上では、有限時間整定フィルタの単位フィルタの段数は２段でもよいが、この場合には、着地予定時刻での各足平２２の加速度は一般には０にならない。
【０１４３】
尚、足平姿勢に関しては、各足平２２が着地予定時刻にてその踵で着地した後、該足平２２の底面のほぼ全面が床に接地するまで動き続ける。このため、該足平２２の底面のほぼ全面が床に接地する時刻を前記指定時刻に設定して、前記有限時間整定フィルタにより足平姿勢軌道が生成される。
【０１４４】
また、本実施形態では、有限時間整定フィルタを用いて足平位置軌道を生成したが、着地予定時刻での足平位置の変化速度が０またはほぼ０になる（足平位置の時間微分値が０になる）ように、さらには、該着地予定時刻での足平位置の変化加速度（変化速度の時間微分値）が０またはほぼ０になるように設定された多項式などの関数を用いて目標足平位置軌道を生成するようにしても良い。このことは、目標足平姿勢軌道の生成に関しても同様である。但し、該目標足平姿勢軌道の生成に関しては、上述の如く、各足平２２の底面のほぼ全面が床に設置する時刻にて、各足平２２の姿勢の変化速度、さらにはその変変化加速度が０またはほぼ０になるように多項式などの関数が設定される。
【０１４５】
目標床反力鉛直成分軌道は、例えば図６のように設定される。本実施形態では、走行歩容における目標床反力鉛直成分軌道の形状（詳しくは片脚支持期での形状）は、台形状（床反力鉛直成分の増加側に凸の形状）に定められており、その台形の高さ、折れ点の時刻を目標床反力鉛直成分軌道を規定する歩容パラメータとして、それらの歩容パラメータ（床反力鉛直成分軌道パラメータ）が決定される。尚、走行歩容の空中期では、目標床反力鉛直成分は定常的に０に設定される。この例のように、目標床反力鉛直成分軌道は、実質的に連続になるように（値が不連続にならないように）設定するのが良い。これは床反力を制御する際のロボット１の関節の動作を滑らかにするためである。尚、「実質的に連続」というのは、アナログ的に連続な軌道（真の意味での連続な軌道）を離散時間系でデジタル表現したときに必然的に生じる値の飛びは、該軌道の連続性を失わせるものではないということを意味するものである。
【０１４６】
目標ＺＭＰ軌道は基本的には次のように設定される。図５の走行歩容においては、前記したように支持脚側足平２２のかかとで着地し、次にその支持脚側足平２２のつま先で蹴って空中に飛び上がり、最後に遊脚側足平２２のかかとで着地する。したがって、片脚支持期での目標ＺＭＰ軌道は、図７の上段図に示すように、支持脚側足平２２のかかとを初期位置として、次に支持脚側足平２２の底面のほぼ全面が接地する期間において該足平２２の前後方向の中央に移動し、その後、離床時までに支持脚側足平２２のつまさきに移動するように設定される。ここで、図７の上段図は、Ｘ軸方向（前後方向）の目標ＺＭＰ軌道を示すものであり、図７の下段図はＹ軸方向（左右方向）の目標ＺＭＰ軌道を示すものである。尚、片脚支持期におけるＹ軸方向の目標ＺＭＰ軌道は、図７の下段図に示すように、Ｙ軸方向での支持脚側脚体２の足首関節の中心位置と同じ位置に設定される。
【０１４７】
図７の上段図に示すように、空中期における目標ＺＭＰ軌道のＸ軸方向位置は、次の遊脚側脚体２の着地までに支持脚側足平２２のつまさきから遊脚側足平２２のかかとの着地位置まで連続的に移動するようにした。また、図７の下段図に示すように、空中期における目標ＺＭＰ軌道のＹ軸方向位置は、次の遊脚側脚体２の着地までに支持脚側脚体２の足首関節の中心のＹ軸方向位置から遊脚側脚体２の足首関節の中心のＹ軸方向位置まで連続的に移動するようにした。すなわち、歩容の全期間において目標ＺＭＰ軌道を連続（実質的に連続）にした。ここで、上記したＺＭＰ軌道の「実質的に連続」の意味は、前記床反力鉛直成分軌道の場合と同様である。
【０１４８】
なお、目標歩容の生成に用いる動力学モデルの近似精度等を考慮すると、目標歩容の目標運動をできるだけ連続的なものとする上で、目標ＺＭＰ軌道は上記のように空中期でも実質的に連続であることが望ましい。但し、本実施形態で用いる後述の動力学モデルでは、必ずしも目標ＺＭＰが連続的である必要はない。また、本実施形態では、図７に示したような目標ＺＭＰ軌道の折れ点の位置や時刻が、ＺＭＰ軌道パラメータ（目標ＺＭＰ軌道を規定するパラメータ）として設定される。
【０１４９】
また、目標腕姿勢は、上体２４に対する相対姿勢で表わされる。
【０１５０】
また、目標上体位置姿勢、目標足平位置姿勢および後述の基準上体姿勢はグローバル座標系で記述される。グローバル座標系は床に固定された座標系である。グローバル座標系としては、より具体的には、後述する支持脚座標系が用いられる。
【０１５１】
本実施形態では、歩容生成装置１００は、目標上体姿勢だけでなく、基準上体姿勢も生成する。この基準上体姿勢は、歩容に対する要求（歩容生成装置１００に対する行動計画部などの装置または外部（前記ジョイスティック４４等）からの要求）にそのまま従って生成される上体姿勢である。
【０１５２】
目標上体姿勢（以降、「基準」が付いていない場合には、目標上体姿勢を表す）は、長期的には基準上体姿勢に追従するかまたは一致するように生成される。
【０１５３】
図８は、歩容生成装置１００の詳細を示すブロック図である。この図８を参照して、歩容生成装置１００の処理の概要を以下に説明する。
【０１５４】
図示の如く、歩容生成装置１００は歩容パラメータ決定部１００ａを備える。歩容パラメータ決定部１００ａは、目標歩容のパラメータ（目標歩容を規定するパラメータ）の値あるいは時系列テーブルを決定する。これは、後述の図１３のフローチャートのＳ０１８からＳ０３０までの処理に相当する。
【０１５５】
詳細は後述するが、歩容パラメータ決定部１００ａが決定するパラメータには、目標足平位置姿勢軌道、目標腕姿勢軌道、基準上体姿勢軌道、目標ＺＭＰ軌道、目標床反力鉛直成分軌道等を規定するパラメータが含まれる他、床反力水平成分許容範囲と規定するパラメータと、ＺＭＰ許容範囲を規定するパラメータとが含まれる。この場合、本実施形態で設定する床反力水平成分許容範囲は、後述のＳ０２６の処理で設定される単純化モデル歩容用のものと、Ｓ０３０で設定される歩容補正用のものとの２種類がある。一方、ＺＭＰ許容範囲は、Ｓ０３０処理で設定される歩容補正用のものだけである。
【０１５６】
ここで、ＺＭＰ許容範囲について簡単に説明しておく。
【０１５７】
後述するように、目標歩容は、目標ＺＭＰのまわりに補正目標床反力モーメント水平成分を発生するように修正される。したがって、目標ＺＭＰは、本来の定義（床反力モーメント水平成分が０である点という定義）とは異なる点となり、本来の定義を満足するＺＭＰは、補正目標床反力モーメント水平成分を目標床反力鉛直方向成分で割った値だけ目標ＺＭＰの位置からずれた位置に移る。以降、本来の定義を満足するＺＭＰを「真のＺＭＰ」と呼ぶ。
【０１５８】
修正された歩容の真のＺＭＰは、少なくともＺＭＰ存在可能範囲（いわゆる支持多角形のこと。床と足平２２の底面との間に粘着力が作用しないと仮定した場合における床反力作用点（ＺＭＰ）の存在可能範囲）内になければならない。さらにロボット１の安定余裕を十分にとるためには、修正された歩容の真のＺＭＰは、ＺＭＰ存在可能範囲のなかの中心付近の範囲にあることが望ましい。そこで、本実施形態では修正された歩容の真のＺＭＰが存在できる許容範囲を設定する。この範囲をＺＭＰ許容範囲と呼ぶ。
【０１５９】
ＺＭＰ許容範囲は、ＺＭＰ存在可能範囲と一致あるいはＺＭＰ存在可能範囲内に包含されるように設定される。その設定方法の詳細は後述する。
【０１６０】
歩容パラメータ決定部１００ａで決定された歩容パラメータは目標瞬時値発生部１００ｂに入力される。目標瞬時値発生部１００ｂは入力された歩容パラメータに基づき、目標足平位置姿勢、目標ＺＭＰ、目標床反力鉛直成分、目標腕姿勢、目標全体重心鉛直位置、目標上体鉛直位置、床反力水平成分許容範囲、ＺＭＰ許容範囲および基準上体姿勢角の、現在時刻ｔにおける瞬時値を逐次算出（発生）する（図８では一部の目標瞬時値のみを記載している）。この目標瞬時値発生部１００ｂの処理は、後述の図１３のフローチャートＳ０３２の処理のなかで実行される図３７のＳ９００〜Ｓ９１０の処理、並びに、図１３のＳ０３４、Ｓ０３６の処理に相当する。なお、本実施形態では、目標瞬時値発生部１００ｂが算出する目標瞬時値のうち、一部の瞬時値（具体的には目標上体鉛直位置の瞬時値）は仮値であり、後に修正される。また、目標瞬時値発生部１００ｂが算出する床反力水平成分許容範囲の瞬時値は、単純化モデル歩容用の瞬時値と歩容補正用の瞬時値とがある。
【０１６１】
目標瞬時値発生部１００ｂで算出（発生）された目標瞬時値（一部は仮瞬時値）は、フルモデル補正部１００ｃに入力される。フルモデル補正部１００ｃは、動力学モデルとして、単純化モデル１００ｃ１とフルモデル１００ｃ２とを備える。該フルモデル補正部１００ｃは、単純化モデル１００ｃ１に基づいて、入力値から目標上体位置姿勢の仮瞬時値等を決定すると共に、さらに決定された上体位置姿勢の仮瞬時値等をフルモデル１００ｃ２を用いて修正する。
【０１６２】
尚、単純化モデル１００ｃ１をフルモデル補正部１００ｃに含ませない構成も可能である。また、フルモデル１００ｃ２は、後述するように、逆フルモデル（逆動力学フルモデル）と順フルモデル（順動力学フルモデル）とのいずれかを含む。
【０１６３】
フルモデル補正部１００ｃは、より具体的には、次のA1〜A3の条件を満足するように、B1あるいはB2の処理を実行する。すなわち、フルモデル補正部１００ｃは、
A1）単に単純化モデルに基づいて生成した歩容（以降、これを単純化モデル歩容と呼ぶ）よりも高い精度で動力学的平衡条件を満足する。
A2）真のＺＭＰ（目標ＺＭＰのまわりに補正目標床反力モーメント水平成分を発生させることによって修正された本来の定義を満足するＺＭＰ）は、ＺＭＰ許容範囲（安定余裕が十分維持できる許容範囲）に存在する。
A3）床反力水平成分は歩容補正用の床反力水平成分許容範囲内になる。という条件を満足するように、
B1）単純化モデルを用いて決定された単純化モデル歩容の上体位置姿勢を補正する。
あるいは
B2）単純化モデルを用いて決定された単純化モデル歩容の上体位置姿勢を補正すると共に、目標ＺＭＰまわりの補正目標床反力モーメント水平成分を出力する（目標床反力を補正する）。
【０１６４】
尚、目標ＺＭＰまわりの補正目標床反力モーメント水平成分は、前記した式ｂ０１に従って、ＺＭＰ換算値に変換しても良い。また、ＺＭＰ許容範囲は、前記式ｂ０１に従って、補正目標床反力モーメント水平成分許容範囲に変換しても良い。
【０１６５】
ロボット１の脚体２，２の関節は図１に示したように１２関節から構成されているので、得られた両足平２２Ｒ，２２Ｌの位置姿勢と上体位置姿勢とから、後述するように逆キネマティクス演算によって目標関節変位が一義的に決定される。即ち、今回の（現在時刻ｔの）ロボット１の目標姿勢が一義的に決定される。
【０１６６】
補正目標歩容の瞬時値（瞬時姿勢）は、図４に示す複合コンプライアンス制御装置（図４で破線で囲んだ部分）に入力され、実ロボット１のバランスを保ちつつ、目標歩容に追従するように関節アクチュエータ（電動モータ３２）が制御される。
【０１６７】
以上が、本実施形態の装置構成およびその動作の概要である。
【０１６８】
次に、本実施形態で歩容生成に用いられる上体運動モードと前記単純化モデルとについて説明する。
【０１６９】
走行など、空中期がある歩容や、低摩擦床面での歩行においては、特願２０００−３５２０１１号等にて本願出願人が先に提案した技術のように単に上体水平加速度を調整するだけでは、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足することができない場合がある。そこで、本実施形態では、以下に説明する上体２４の２つの運動モード（上体並進モード及び上体回転モード）を複合的に発生させることにより、目標歩容の床反力水平成分が許容範囲内（あるいは摩擦限界内）に存在しつつ動力学的平衡条件を満足するようにしている。
【０１７０】
図９のように、ある運動状態から、上体水平加速度だけを摂動させると、全体重心水平加速度と全体重心まわりの角運動量が摂動する。すなわち、上体水平加速度の摂動は、（それによって発生する慣性力と重力の合力に対して動力学的に釣り合う）床反力鉛直成分を摂動させずに、目標ＺＭＰまわりの床反力モーメント（ただし鉛直軸まわり成分を除く）と床反力水平成分（厳密には、並進床反力水平成分）とを摂動させる。この運動モードを上体並進モードと呼ぶ。
【０１７１】
言いかえると、床反力鉛直成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分と床反力水平成分（並進床反力水平成分）を変化させる運動を上体並進モードと呼ぶ。
【０１７２】
この時の単位加速度当たりの床反力モーメント水平成分の変化をΔMｐ、単位加速度当たりの床反力水平成分の変化をΔFpとする。図９に示す状況で上体２４を前方に水平加速すると、ΔMｐとΔFpは図９に示す矢印の向きに作用する。
【０１７３】
感覚的に判り易くするために、運動によって発生する慣性力と重力の合力に釣り合う床反力を用いて表現したが、慣性力と重力の合力を用いて表現した方が、理論的には的確である。なお、上記合力と床反力は、互いに大きさが同じで向きが逆になっている。
【０１７４】
ΔMｐとΔFpの比を上体並進モード床反力比率ｈと呼ぶ。すなわち、次式により、上体並進モード床反力比率ｈを定義する。
【０１７５】
ｈ =ΔMｐ/ΔFp              …式a７
一方、図１０のように、ある運動状態から、ある点Pｒまわりに上体姿勢角加速度を摂動させると、全体重心は摂動せずに、全体重心まわりの角運動量が摂動する。すなわち、点Pｒまわりの上体姿勢角加速度摂動は、床反力鉛直成分と床反力水平成分（厳密には、並進床反力鉛直成分と並進床反力水平成分）を摂動させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を摂動させる。この運動モードを上体回転モードと呼ぶ。
【０１７６】
言いかえると、床反力鉛直成分と床反力水平成分を変化させずに、目標ＺＭＰまわりの床反力モーメントの水平成分を変化させる運動を上体回転モードと呼ぶ。
【０１７７】
この時の単位角加速度当たりの床反力モーメント水平成分の変化をΔMｒ、単位角加速度当たりの床反力の水平成分の変化をΔFｒとする。ΔFｒは零である。図１０に示す状況で上体が前傾するように角加速度を与えると、ΔMｒは図１０に示す矢印の向きに作用する。
【０１７８】
上体２４の運動には、上体並進モードと上体回転モード以外に、上体鉛直移動モードがある。これは、上体２４を鉛直方向に移動させる運動である。
【０１７９】
目標瞬時値発生部１００ｂでは、以下に示す単純化（動力学）モデルを用いて歩容を生成する。単純化モデルは、動力学的精度よりも、演算量低減や挙動解析のし易さに重点を置いた動力学モデルであり、動力学的に一部無視があったり（例えば、重心まわりの角運動量変化を無視したり）、矛盾があるもの（厳密さを欠くもの）でも良い。
【０１８０】
図１１に、単純化した動力学モデル（単純化モデル）の例を示す。図示の如く、この動力学モデルはロボット１の各脚体２にそれぞれ対応する２つの質点２ｍ，２ｍ、及び上体２４に対応する質点２４ｍからなる合計３質点と、イナーシャがあって質量のないフライホイールＦＨとから構成されるモデルである。この動力学モデルでは、デカップルド、即ち、脚体２，２の動力学（各質点２ｍ，２ｍの動力学）と上体２４の動力学（質点２４ｍ及びフライホイールＦＨの動力学）とが相互に非干渉に構成されると共に、ロボット１全体の動力学は、それらの線形結合で表される。また、さらに、上体２４の運動と床反力との関係も、上体２４の並進運動（上体並進モード）と床反力との関係、並びに上体２４の回転運動（上体回転モード）と床反力との関係に分離される。具体的には、上体質点２４ｍの水平運動によって発生する床反力は、上体２４の水平方向並進運動（上体並進モード）によって発生する床反力に対応し、フライホイールの回転運動によって発生する床反力は、上体２４の姿勢角の回転運動（上体回転モード）によって発生する床反力に対応する。
【０１８１】
尚、ロボット１の腕体の質量は上体２４に含まれるものとし、上体質点２４ｍは腕体の質量を含む質量をもつ。本実施形態では、目標歩容における腕体の運動（腕振り運動）は、後述するように、ロボット１の腕振り以外の運動によってロボット１に発生する鉛直軸まわりの慣性力のモーメントを打ち消しつつも、上体２４に対する両腕体の全体の重心の相対位置が動かないように行なわれるので、腕体の腕振り運動による（鉛直軸まわり成分を除く）床反力モーメントへの影響と床反力水平成分への影響とは無視する。
【０１８２】
以下に上記単純化モデルを数式化する。ただし、説明を簡単にするために、サジタルプレーン（前後軸（Ｘ軸）と鉛直軸（Ｚ軸）を含む平面）での運動方程式のみを記述し、ラテラルプレーン（左右軸（Ｙ軸）と鉛直軸（Ｚ軸）を含む平面）での運動方程式を省略した。
【０１８３】
説明の便宜上、動力学モデルに関する変数およびパラメータを以下のように定義する。なお、各質点２ｍ，２ｍ，２４ｍはそれが対応する部位の代表点であるか、あるいはその部位の位置姿勢から幾何学的に一義的に決定される点に相当する。例えば、支持脚側脚体２の質点２ｍの位置は、該脚体２の足平２２の底面の前記代表点から所定の距離だけ上方の点とする。
Ｚsup：支持脚質点鉛直位置
Ｚswg：遊脚質点鉛直位置
Ｚb：上体質点鉛直位置（上体鉛直位置とは一般的には異なる。）
ＺGtotal：全体重心鉛直位置
Ｘsup：支持脚質点水平位置
Ｘswg：遊脚質点水平位置
Ｘb：上体質点水平位置（前記点Pｒから前後にある所定の距離だけオフセットした点である。オフセットは、直立時などにおいて、厳密モデルの重心位置と、本動力学モデルの重心位置ができる限り一致するように、決定される。上体水平位置とは一般的には異なる。）
ＸGtotal：全体重心水平位置
θby：鉛直方向に対するＹ軸回りの上体姿勢角（傾斜角）
mb：上体質点質量
msup：支持脚質点質量
mswg：遊脚質点質量
mtotal：ロボット総質量（＝mtotal＋msup＋mswg）
Ｊ：上体慣性モーメント（上体回転モードにおける等価慣性モーメントである。実ロボット１の上体２４部位の慣性モーメントとは一般的には一致しない。）
Fx：床反力水平成分（詳しくは並進床反力の前後方向（Ｘ軸）成分）
Fz：床反力鉛直成分（詳しくは並進床反力の鉛直方向（Ｚ軸）成分。本実施形態では、これは目標並進床反力鉛直成分に等しい）
My：目標ＺＭＰまわりの床反力モーメント（詳しくは床反力モーメントの左右軸（Y軸）まわり成分）
尚、本実施形態では、各脚体２の質点２ｍの位置と、その脚体２の足平２２の位置（足平２２のあらかじめ定めた代表点の位置）との位置関係はあらかじめ定められており、一方の位置が決まれば、他方の位置は一義的に定まるものとされている。また、上体質点２４ｍと、上体２４の位置（上体２４のあらかじめ定められた代表点の位置）との位置関係は、上体２４の姿勢角に応じてあらかじめ定められており、一方の位置と姿勢角とが決まれば、他方の位置は一義的に定まるものとされている。
【０１８４】
また、任意の変数Ｘに対して、dX/dtはＸの１階微分を表わし、d2X/dt2はＸの２階微分を表わす。したがって、変数Ｘが変位ならば、dX/dtは速度、d2X/dt2は加速度を意味する。ｇは重力加速度定数を示す。ここでは、ｇは正の値とする。
【０１８５】
上記動力学モデルの運動方程式（動力学的平衡条件を表す式）は、式ａ８、式ａ９、式ａ１０で表される。
【０１８６】
0003679105.tif 000003
また、ロボット全体重心位置には次の関係式が成立する。
ＺGtotal＝(mb*Zb + msup*Zsup + mswg*Zswg)/mtotal  …式ｂ１１
ＸGtotal＝(mb*Xb + msup*Xsup + mswg*Xswg)/mtotal  …式ｂ１２
以下に上記動力学モデルと前記ΔFp、ΔMp、ΔFｒ、ΔMｒの関係を示す。
【０１８７】
前記ΔFpは、式ａ９において、d2Xb/dt2を単位量だけ摂動させたときのFxの摂動量であるから、次式によって求められる。
ΔFp＝mb          …式ｃ０６
すなわち、上体並進モードの単位加速度当たりの床反力の水平成分の変化ΔFpは、上記動力学モデルの上体質点２４ｍの質量に相当する。
【０１８８】
前記ΔMpは、式ａ１０において、d2Xb/dt2を単位量だけ摂動させたときのMyの摂動量であるから、次式によって求められる。
ΔMp＝mb*(Zb−Zzmp)      …式ｃ０７
すなわち、上体並進モードの単位加速度当たりの床反力モーメント水平成分の変化ΔMｐは、上記動力学モデルの上体質点質量に、上体質点２４ｍの目標ＺＭＰからの高さ（鉛直位置）を乗じたものになる。このときの上体質点２４ｍ及び目標ＺＭＰの位置と、上体質点２４ｍの運動との関係は、上体質点２４ｍを倒立振子質点、目標ＺＭＰを倒立振子支点に対応づけたときの倒立振子の挙動に相当する。
【０１８９】
前記ΔFｒは、式ａ９において、d2θby/dt2を単位量だけ摂動させたときのFxの摂動量であるから、次式によって求められる。
ΔFｒ＝0      …式ｃ０８
すなわち、上体回転モードの単位加速度当たりの並進床反力水平成分の変化ΔFrは、０である。
【０１９０】
前記ΔMｒは、式ａ１０において、d2θby/dt2を単位量だけ摂動させたときのMyの摂動量であるから、次式によって求められる。
ΔMｒ＝Ｊ      …式ｃ０９
すなわち、上体回転モードの単位加速度当たりの床反力モーメント水平成分の変化ΔMrは、フライホイールの慣性モーメントに相当する。
【０１９１】
詳細は後述するが、上記例の単純化動力学モデルを用いた歩容（単純化モデル歩容）の生成は、以下の手順で実行される。
【０１９２】
まず、歩容パラメータから算出される両足平位置姿勢軌道および目標床反力鉛直方向成分などを基に、式ａ８を用いて上体鉛直加速度が求められる。さらに、この求めた上体鉛直加速度を２階積分して、上体鉛直移動モードの上体鉛直位置Zbが求められる。
【０１９３】
最後に、式ａ９、式ａ１０を用いて、床反力水平成分が許容範囲（単純化モデル歩容用の床反力水平成分許容範囲）を越えないように、上体水平加速度d2(Xb)/dt2と上体姿勢角加速度d2(θb)/dt2が決定される。さらに、これらの加速度を２階積分して、上体並進モードの上体水平位置Xbおよび上体回転モードの上体姿勢角θb（より詳しくはそれらの仮瞬時値）が求められる。
【０１９４】
より一般的に言うと、単純化動力学モデルを用いた歩容（単純化モデル歩容）は、歩容パラメータから決定される両足平位置姿勢軌道、目標ＺＭＰおよび目標床反力鉛直成分などを基に、重力と慣性力との合力が目標ＺＭＰまわりに作用するモーメント水平成分が０になり、かつ重力と慣性力との合力の並進力鉛直成分と目標床反力鉛直成分の和が０になり、かつ、目標床反力水平成分（すなわち重力と慣性力の合力の並進力水平成分の符号を反転したもの）が床反力水平成分許容範囲を越えないように、上体位置軌道と上体姿勢角軌道を算出することにより、生成される。
【０１９５】
この明細書の実施形態において、「フルモデル」は、今回歩容パラメータを決定する際に用いるものとは異なるロボット動力学モデルを意味する。これは、今回歩容パラメータを決定する際に用いるものよりも近似精度の高いロボット動力学モデルであることが望ましい。図示例で説明すれば、本実施形態では、前記図１１に示した単純化モデルを今回歩容パラメータの決定に用いるので、それよりも、近似精度の高い、例えば図１２に示す多質点モデル（ロボット１の各リンクにそれぞれ質点を有するモデル）のようなロボット動力学モデルをフルモデルとして用いることが望ましい。この場合、該フルモデルは、質点のまわりに慣性モーメントを設定するものであっても良い。
【０１９６】
しかし、単純化モデルとフルモデルとは、必ずしもモデルの近似精度が異なる必要はない。単純化モデルとフルモデルとは、動力学方程式が同じで、床反力水平成分許容範囲が異なっている、すなわち、単純化モデル歩容用の許容範囲と、歩容補正用の許容範囲とが異なっているだけでも良い。たとえば、単純化モデルを用いた歩容を生成する際の床反力水平成分許容範囲を大きくとり（摩擦限界を越えていても良い）、フルモデルを用いて歩容を修正する際の床反力水平成分許容範囲をスリップしにくいように狭く設定するだけでも良い。
【０１９７】
尚、この明細書において、目標足平位置姿勢、目標床反力（特に、目標ＺＭＰと目標床反力鉛直成分）に基づいて（入力して）上体位置姿勢を算出する（出力させる）のに使用するモデルを「順動力学モデル」と呼び、目標足平位置姿勢、目標上体姿勢、目標上体位置に基づいて（入力して）床反力（特に、目標ＺＭＰもしくは目標ＺＭＰまわりの床反力モーメントと床反力水平成分）を算出する（出力させる）のに使用するモデルを「逆動力学モデル」と呼ぶ。順動力学モデルの入力には、少なくとも目標床反力が含まれ、逆動力学モデルの入力には、少なくとも目標運動が含まれる。
【０１９８】
フルモデル補正部１００ｃが備えるフルモデルは、逆動力学フルモデル（しばしば「逆フルモデル」と略称）または順動力学フルモデル（しばしば「順フルモデル」と略称）を備える。一般的には、逆動力学モデルの演算に比べ、順動力学モデルの演算は、演算量が多くなりがちである。
【０１９９】
次に、本発明の第１実施形態に関して、歩容生成装置１００の処理の詳細をより具体的に説明する。
【０２００】
本実施形態における歩容生成装置１００は、ロボット１の片方の脚体２が着地してから他方の脚体２が着地するまでの１歩分の目標歩容（前記ｂ''により定義した目標歩容）を単位として、その１歩分の目標歩容を順番に生成する。例えば、図５の走行の目標歩容を生成する場合、該目標歩容は片脚支持期の開始時から、これに続く空中期の終了時（次の片脚支持期の開始時）までの目標歩容が順番に生成される。ここで、新たに生成しようとしている目標歩容を「今回歩容」、その次の目標歩容を「次回歩容」、さらにその次の目標歩容を「次次回歩容」、というように呼ぶ。また、「今回歩容」の一つ前に生成した目標歩容を「前回歩容」と呼ぶ。
【０２０１】
また、歩容生成装置１００が今回歩容を新たに生成するとき、該歩容生成装置１００には、ロボット１の２歩先までの遊脚側足平２２の着地予定位置姿勢、着地予定時刻の要求値（要求）が歩容に対する要求パラメータとして入力される（あるいは歩容生成装置１００が記憶装置から要求パラメータを読み込む）。そして、歩容生成装置１００は、これらの要求パラメータを基に、補正目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ＺＭＰ軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道、補正目標床反力モーメント軌道等を生成する。
【０２０２】
以下に図５の走行歩容を生成することを例にして、歩容生成装置１００の歩容生成処理の詳細を図１３〜図３９を参照しつつ説明する。図１３は、その歩容生成装置１００が実行する歩容生成処理を示すフローチャート（構造化フローチャート）である。
【０２０３】
まずＳ０１０において時刻ｔを０に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置１００の起動時等に行なわれる。次いで、Ｓ０１２を経てＳ０１４に進み、歩容生成装置１００は、制御周期（図１３のフローチャートの演算処理周期）毎のタイマ割り込みを待つ。制御周期はΔｔである。
【０２０４】
次いで、Ｓ０１６に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはＳ０１８に進むと共に、切り替わり目でないときはＳ０３０に進む。ここで、上記「歩容の切り替わり目」は、前回歩容の生成が完了し、今回歩容の生成を開始するタイミングを意味し、例えば前回歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。
【０２０５】
Ｓ０１８に進むときは時刻ｔが０に初期化され、次いでＳ０２０に進み、次回歩容支持脚座標系、次次回歩容支持脚座標系、今回歩容周期および次回歩容周期が読み込まれる。これらの支持脚座標系及び歩容周期は、前記要求パラメータにより定まるものである。すなわち、本実施形態では、歩容生成装置１００にジョイスティック４４等から与えらる要求パラメータは、２歩先までの遊脚側足平２２の着地予定位置姿勢（足平２２が着地してから足底を床面にほぼ全面的に接触させるように、滑らさずに回転させた状態での足平位置姿勢）、着地予定時刻の要求値を含んでおり、その１歩目の要求値、２歩目の要求値がそれぞれ、今回歩容、次回歩容に対応するものとして、今回歩容の生成開始時（前記Ｓ０１６の歩容の切り替わり目）以前に歩容生成装置１００に与えられたものである。なお、これらの要求値は今回歩容の生成途中でも変更することは可能である。
【０２０６】
そして、上記要求パラメータにおける１歩目の遊脚側足平２２（今回歩容での遊脚側足平２２）の着地予定位置姿勢の要求値に対応して次回歩容支持脚座標系が定まる。
【０２０７】
例えば図１６を参照して、今回歩容（１歩目）に係わる遊脚側足平２２（図では２２Ｌ）の着地予定位置姿勢の要求値が、今回歩容の支持脚側足平２２（図では２２Ｒ）の着地位置姿勢に対して、今回歩容支持脚座標系のＸ軸方向（今回歩容の支持脚側足平２２Ｒの前後方向）及びＹ軸方向（今回歩容の支持脚側足平２２Ｒの左右方向）に、それぞれxnext、ynextだけ移動し、且つＺ軸回り（鉛直軸回り）にθznextだけ回転させた位置姿勢であるとする。ここで、支持脚座標系は、支持脚側足平２２を水平姿勢（より一般的には床面に平行な姿勢）にして該支持脚側足平２２の底面のほぼ全面を床面に接触（密着）させた状態において、該支持脚側脚体２の足首中心から床面に延ばした垂線が該床面と交わる点（この点は、本実施形態の例では支持脚側足平２２の底面のほぼ全面を床面に接触させた状態では、該足平２２の代表点と合致する）を原点とし、その原点を通る水平面をＸＹ平面とするグローバル座標系（床に固定された座標系）である。この場合、Ｘ軸方向、Ｙ軸方向は、それぞれ支持脚側足平２２の前後方向、左右方向である。尚、支持脚座標系の原点は、必ずしも支持脚側足平２２の底面のほぼ全面を床面に接触させた状態での該足平２２の代表点（足平２２の位置を代表する点）に合致する必要はなく、該代表点と異なる床面上の点に設定されてもよい。
【０２０８】
このとき、次回歩容支持脚座標系は、図示のように今回歩容の遊脚側足平２２Ｌの着地予定位置姿勢の要求値に従って該足平２２を着地させた場合（足平２２の代表点を着地予定位置の要求値に一致させ、且つ、足平２２の姿勢（向き）を着地予定姿勢の要求値に一致させた場合）における該足平２２Ｌの代表点（より詳しくは該代表点に合致する床上の点）を原点とし、該原点を通る水平面内における該足平２２Ｌの前後方向、左右方向をそれぞれＸ’軸方向、Ｙ’軸方向とする座標系である。
【０２０９】
上記と同様に、２歩目の遊脚側足平２２の着地予定位置姿勢の要求値に応じて次々回歩容支持脚座標系（図１５のＸ”Ｙ”座標を参照）が定まる。また、今回歩容周期は、今回歩容の支持脚側足平２２の着地予定時刻（要求値）から、１歩目（今回歩容）の遊脚側足平２２の着地予定時刻（要求値）までの時間として定まり、次回歩容周期は、１歩目の遊脚側足平２２の着地予定時刻（要求値）から２歩目の遊脚側足平２２の着地予定時刻（要求値）までの時間として定まる。
【０２１０】
尚、前記要求パラメータは、本実施形態ではジョイスティック４４の所要の操作によって歩容生成装置１００に入力されるものであるが、あらかじめ該要求パラメータあるいはこれに対応する上記の支持脚座標系の位置姿勢及び歩容周期をロボット１の移動スケジュールとして記憶しておいても良い。あるいは、ジョイスティック４４などの操縦装置からの指令（要求）とそのときまでのロボットの１の移動履歴とを基に前記次回及び次次回歩容支持脚座標系、並びに今回及び次回歩容周期を決定しても良い。
【０２１１】
次いでＳ０２２に進み、歩容生成装置１００は、今回歩容に続く仮想的な周期的歩容としての定常旋回歩容の歩容パラメータを決定する。該歩容パラメータは、定常旋回歩容における目標足平位置姿勢軌道を規定する足平軌道パラメータ、基準とする上体姿勢軌道を規定する基準上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕軌道パラメータ、目標ＺＭＰ軌道を規定するＺＭＰ軌道パラメータ、目標床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータを含む。さらに、目標床反力水平成分許容範囲を規定するパラメータも歩容パラメータに含まれる。
【０２１２】
尚、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界（本実施形態では１歩毎の歩容の境界）においてロボット１の運動状態（足平位置姿勢、上体位置姿勢等の状態）に不連続が生じないような周期的歩容を意味するものとして使用する。以降、「定常旋回歩容」を「定常歩容」と略す場合もある。
【０２１３】
周期的歩容である定常旋回歩容は、本実施形態では、ロボット１の２歩分の歩容、すなわち今回歩容に続く第１旋回歩容と該第１旋回歩容に続く第２旋回歩容とからなる歩容を該定常旋回歩容の１周期分の歩容として、その１周期分の歩容を繰り返す歩容である。尚、ここで「旋回」なる用語を用いたのは、旋回率を零とするときは直進を意味するので、直進も広義の意味で旋回に含ませることができるからである。また、生成する目標歩容が前記図５の走行歩容であると、その目標歩容の今回歩容は、片脚支持期及び空中期を有する走行歩容であるので、定常旋回歩容の第１旋回歩容及び第２旋回歩容は、いずれも今回歩容と同様に片脚支持期と空中期とを有する歩容である。つまり、第１旋回歩容及び第２旋回歩容の基本的な歩容形態は今回歩容と同一である。
【０２１４】
定常旋回歩容について補足すると、２足移動ロボットでは、定常旋回歩容の１周期分は、前記した狭義の意味での歩容が、少なくとも２歩分、必要である。そして、３歩以上の歩容を１周期分の歩容とする複雑な定常旋回歩容を設定することも可能である。但し、定常旋回歩容は、後述の如く、今回歩容の終端（終了時刻）における発散成分（詳細は後述する）を決定するためだけに用いられる。このため、３歩以上の歩容を１周期とする定常旋回歩容を用いることは、歩容生成の処理が煩雑となるにも関わらず、効果は少ない。そこで、本実施形態での定常旋回歩容の１周期分の歩容を２歩分の歩容（第１及び第２旋回歩容）により構成するようにしている。尚、３足以上の脚式移動ロボットにあっては、それに応じて定常旋回歩容を定義するに足る歩容数が増加する。以下では、説明の便宜上、複数の狭義の歩容（本実施形態では２歩分の歩容）から成る定常旋回歩容を１歩の歩容とみなす。
【０２１５】
定常旋回歩容は、歩容生成装置１００で今回歩容の終端における発散成分や上体鉛直位置速度、上体姿勢角及びその角速度等のロボット１の運動状態を決定するために暫定的に作成されるものであり、歩容生成装置１００からそのまま出力されるものではない。
【０２１６】
尚、「発散」とは、図１４に示すように、２足移動ロボット１の上体２４の位置が両足平２２，２２の位置からかけ離れた位置にずれてしまうことを意味する。発散成分の値とは、２足移動ロボット１の上体２４の位置が両足平２２，２２の位置（より具体的には、支持脚側足平２２の接地面に設定されたグローバル座標系（支持脚座標系）の原点）からかけ離れていく具合を表す数値である。
【０２１７】
本実施形態では、目標歩容が、前記発散を生じることなく、継続的に生成されるように、発散成分を指標にして歩容を生成するようにした。ただし、継続的な歩容の代表例である定常歩容（歩容の軌道の不連続を発生することなく、同じパターンの歩容を繰り返すことができる周期的歩容であり、原理上、無限回繰り返しても発散しない歩容）の初期発散成分（定常歩容の初期時刻での発散成分）であっても、単純に０ではなく、定常歩容のパラメータが変われば、その初期発散成分も変わる。すなわち、歩き方あるいは走り方等の歩容形態によって、適切な発散成分が変わる。そこで、本実施形態では、これから生成しようとする今回歩容の後に続く定常歩容が前記今回歩容に係わる要求パラメータに応じて設定され、定常歩容の初期発散成分を求めてから、今回歩容の終端発散成分を定常歩容の初期発散成分に一致させる（より一般的には、今回歩容を定常歩容に連続させもしくは近づける）ように、今回歩容を生成する。これのような歩容生成の基本的な指針は本出願人が先に提案した特願２０００−３５２０１１号のものと同様である。
【０２１８】
本発明の実施形態では、特願２０００−３５２０１１号の第１実施形態で用いたような線形な３質点動力学モデルを用いていないが、次式で定義される発散成分および収束成分の概念は、図１１に示した単純化モデルのような非線形な動力学モデルの挙動の摂動分に対しても、近似的に十分な精度で適用することができる。
【０２１９】
0003679105.tif 000004
ただし、ここでの上体質点水平位置は、図１１に示す前記単純化モデル（動力学モデル）においては、上体質点水平位置Xbを表す。
【０２２０】
また、ω0はある所定の値であり、走行時では、特願２０００−３５２０１１号の歩行歩容生成時の値に対して若干変更する必要がある。
【０２２１】
発散成分および収束成分に関するその他の詳細は、特願２０００−３５２０１１号に記述されているので、ここではこれ以上言及しない。
【０２２２】
本実施形態においては、特願２０００−３５２０１１号に示した方式に加え、さらに、後述するように、目標床反力鉛直成分軌道を規定する歩容パラメータを設定し、この目標床反力鉛直成分を動力学的に満足するようにロボット１の全体重心鉛直位置を決定する。この場合、床反力鉛直成分の２階積分値がロボット１の全体重心鉛直位置を規定するものになるので、目標床反力鉛直成分の設定が悪いと、ロボット１の全体重心鉛直位置もしくは上体鉛直位置が高くなり過ぎたり低くなり過ぎたりする。したがって、目標床反力鉛直成分の設定方法も重要な課題である。
【０２２３】
本題に戻り、Ｓ０２２では、図１５に示すフローチャートに従って、以下の処理が行われる。
【０２２４】
まず、Ｓ１００において、今回歩容、第１旋回歩容、第２旋回歩容の順に足平位置姿勢軌道がつながるように、定常歩容の歩容パラメータのうちの足平軌道パラメータが決定される。以下に具体的な設定方法を図１６を参照して説明する。尚、以降の説明では、支持脚側の脚体２の足平２２を支持脚足平と称し、遊脚側の脚体２の足平２２を遊脚足平を称する。また、歩容の「初期」、「終端」はそれぞれ歩容の開始時刻、終了時刻もしくはそれらの時刻における瞬時歩容を意味する。
【０２２５】
足平軌道パラメータは、第１旋回歩容および第２旋回歩容の初期及び終端のそれぞれにおける支持脚足平及び遊脚足平のそれぞれの位置姿勢、各旋回歩容の歩容周期等から構成される。この足平軌道パラメータのうち、第１旋回歩容初期遊脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。この場合、走行歩容では、今回歩容終端における支持脚足平２２は、空中に移動している。そして、今回歩容終端支持脚足平位置姿勢は、今回歩容初期支持脚足平位置姿勢（＝前回歩容終端遊脚足平位置姿勢）から、前記要求パラメータにおける２歩目の遊脚側足平２２の着地予定位置姿勢の要求値（今回歩容の支持脚足平２２の次回歩容における着地予定位置姿勢の要求値）もしくは該要求値に対応する次次回歩容支持脚座標系に応じて定まる次回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道（詳しくは次回歩容支持脚座標系から見た軌道）を、今回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。
【０２２６】
尚、次回歩容終端遊脚足平位置姿勢は、その位置姿勢から足平２２を接地させたまま、つま先を下げるように該足平２２を水平姿勢までピッチ方向に所定角度回転させたときの該足平の位置姿勢が次次回歩容支持脚座標系の位置姿勢に合致するように決定される。換言すれば、次回歩容終端遊脚足平位置姿勢は、前記要求パラメータにおける２歩目の遊脚側足平２２の着地位置姿勢の要求値から、該足平２２をすべらないように接地させたまま、つま先を持ち上げるように該足平２２をピッチ方向に所定角度回転させた状態（つま先を上げてかかとを着地させた状態）での該足平２２の位置姿勢である。
【０２２７】
また、第１旋回歩容初期支持脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端遊脚足平位置姿勢とされる。この場合、今回歩容終端遊脚足平位置姿勢は、前記次回歩容終端遊脚足平位置姿勢の場合と同様、前記次回歩容支持脚座標系もしくはこれに対応する前記要求パラメータの１歩目（今回歩容）の遊脚着地予定位置姿勢の要求値に応じて定まるものである。すなわち、該今回歩容終端遊脚足平位置姿勢は、その位置姿勢から、足平２２を接地させたまま、つま先を下げるように該足平２２を回転させて該足平２２の底面のほぼ全面を床面に接地させたときの該足平の代表点が次回歩容支持脚座標系の原点に合致するように決定される。
【０２２８】
第１旋回歩容終端遊脚足平位置姿勢は、今回歩容終端遊脚足平位置姿勢や次回歩容終端遊脚足平位置姿勢の決定手法と同様に、次回歩容支持脚座標系から見た次次回歩容支持脚座標系の位置姿勢に基づいて決定される。より具体的には、第１旋回歩容終端遊脚足平位置姿勢は、その位置姿勢から足平２２を接地させたまま、すべらないように該足平２２を水平姿勢まで所定角度回転させたときの足平位置姿勢が、次回歩容支持脚座標系から見た次次回歩容支持脚座標系の位置姿勢に合致するように設定される。
【０２２９】
第１旋回歩容終端では、支持脚足平２２は離床して空中にある。支持脚足平２２が離床してから後の軌道を決定するために、第１旋回歩容支持脚足平着地予定位置姿勢が設定される。第１旋回歩容支持脚足平着地予定位置姿勢は、次回歩容支持脚座標系から見た次次次回歩容支持脚座標系の位置姿勢に基づいて設定される。より具体的には、第１旋回歩容支持脚足平着地予定位置姿勢は、次回歩容支持脚座標系から見た次次次回歩容支持脚座標系の位置姿勢である。なお、次次次回歩容支持脚座標系は、次次回歩容支持脚座標系と次次次回歩容支持脚座標系との相対的位置姿勢関係が、今回歩容支持脚座標系と次回歩容支持脚座標系との相対的位置姿勢関係と一致するように設定される。
【０２３０】
第１旋回歩容終端支持脚足平位置姿勢は、第１旋回歩容初期支持脚足平位置姿勢を求めた場合と同様に、第１旋回歩容初期支持脚足平位置姿勢から、前記第１旋回歩容支持脚足平着地予定位置姿勢に至る足平位置姿勢軌道（より詳しくは次回歩容支持脚座標系から見た軌道）を、第１旋回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。
【０２３１】
第２旋回歩容初期遊脚足平位置姿勢は、次次回歩容支持脚座標系から見た第１旋回歩容終端支持脚足平位置姿勢とされる。第２旋回歩容初期支持脚足平位置姿勢は、次次回歩容支持脚座標系から見た第１旋回歩容終端遊脚足平位置姿勢とされる。
【０２３２】
第２旋回歩容終端遊脚足平位置姿勢は、今回歩容支持脚座標系から見た今回歩容終端遊脚足平位置姿勢とされる。第２旋回歩容終端支持脚足平位置姿勢は、今回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。
【０２３３】
第１旋回歩容および第２旋回歩容の歩容周期は、次回歩容周期と同一に設定される。これらの第１旋回歩容及び第２旋回歩容の歩容周期は、互いに同一にすることは必ずしも必要ではないが、いずれの周期も、少なくとも次回歩容周期に応じて決定するのが好ましい。尚、今回歩容、第１旋回歩容および第２旋回歩容の上記以外の運動パラメータ（両脚支持期時間などの時間パラメータを含む）は、上記決定されたパラメータに応じて、歩容の条件（アクチュエータの速度が許容範囲に入っているか、可動角を超えていないか、床などと干渉していないかなど）を満足するように適宜決定する。
【０２３４】
次に、Ｓ１０２に進み、目標上体姿勢が追従すべき基準上体姿勢軌道を規定する基準上体姿勢軌道パラメータが決定される。基準上体姿勢は、定常歩容の初期（第１旋回歩容の初期）と終端（第２旋回歩容の終端）とでつながるように（定常歩容の初期、終端での基準上体姿勢の姿勢角及びその角速度が一致するように）に設定されている限り、一定姿勢である必要はないが、本実施形態では理解を容易にするため、基準上体姿勢は、直立姿勢（鉛直姿勢）に設定される。つまり、本実施形態では、基準上体姿勢は、定常歩容の全期間において直立姿勢に設定される。従って、本実施形態では、基準上体姿勢の姿勢角の角速度及び角加速度は０である。
【０２３５】
次に、Ｓ１０４に進み、腕姿勢軌道パラメータ、より詳しくは鉛直軸（あるいは上体体幹軸）まわりの両腕体の角運動量変化に関すること以外の腕姿勢軌道パラメータが決定される。たとえば、上体２４に対する腕体の手先の相対高さや腕全体の相対重心位置などの腕姿勢軌道パラメータが決定される。尚、本実施形態では、腕全体の相対重心位置は、上体に対して一定に維持されるように設定される。
【０２３６】
次に、Ｓ１０６に進み、床反力鉛直成分軌道パラメータが設定される。この場合、該パラメータにより規定される床反力鉛直成分軌道が、第１旋回歩容および第２旋回歩容のいずれにおいても図６のように実質的に連続な（値がステップ状に飛ばない）ものとなるように床反力鉛直成分軌道パラメータが設定される。すなわち、定常旋回歩容の目標床反力鉛直成分軌道は図１７のようなパターンで設定される。そのパターンでは、第１旋回歩容及び第２旋回歩容のいずれにおいても、片脚支持期では床反力鉛直成分が台形状に変化し、空中期では床反力鉛直成分が０に維持される。そして、このパターンの折れ点の時刻や、台形部分の高さ（ピーク値）が床反力鉛直成分軌道パラメータとして設定される。
【０２３７】
この床反力鉛直成分軌道パラメータの設定に際しては、床反力鉛直成分の歩容全期間（第１旋回歩容と第２旋回歩容両方の期間を合わせた期間で定常歩容の１周期の期間）における平均値をロボット１の自重と一致させる。すなわち、床反力鉛直成分の平均値がロボット１に作用する重力と同じ大きさで反対向きになるようにする。
【０２３８】
上記のごとく床反力鉛直成分軌道を設定することは、定常歩容の条件を満たすために必要である。定常歩容の条件とは、支持脚座標系（支持脚側足平２２の接地面に設定された座標系）から見た歩容のあらゆる状態変数（ロボット１の各部の位置、姿勢、速度等）の初期状態（第１旋回歩容の初期状態）と次の支持脚座標系（次の第１旋回歩容の支持脚座標系）から見た歩容の終端状態（第２旋回歩容の終端状態）が一致していることである（以下、この条件を定常歩容の境界条件ということがある）。したがって、定常歩容終端におけるロボット１の全体重心鉛直速度と定常歩容初期における全体重心鉛直速度との差（詳細には、第２旋回歩容終端の全体重心鉛直速度と第１旋回歩容初期の全体重心鉛直速度との差）も零でなければならない。上記差は床反力鉛直成分と重力との差の積分値（１階積分値）であるから、上記差を零にするためには、上記のごとく床反力鉛直成分軌道を設定する必要がある。
【０２３９】
尚、本実施形態では、床反力鉛直成分の第１旋回歩容、第２旋回歩容それぞれの期間における平均値をロボット１の自重と一致させるようにした。より具体的には、例えば第１旋回歩容及び第２旋回歩容の歩容周期に応じて各旋回歩容における床反力鉛直成分軌道の台形部分の折れ点の時刻を設定した上で、その台形部分の高さを、床反力鉛直成分の第１旋回歩容、第２旋回歩容それぞれの期間における平均値がロボット１の自重と一致するように決定した（台形の高さを未知数として、上記平均値及び自重の一致条件を表す方程式を解くことで台形の高さを求める）。
【０２４０】
こうすることにより、第１旋回歩容終端の全体重心鉛直速度と第１旋回歩容初期の全体重心鉛直速度との差も０、第２旋回歩容終端の全体重心鉛直速度と第２旋回歩容初期の全体重心鉛直速度との差も０になる。ただし、このようにする必然性はない。例えば、第１旋回歩容と第２旋回歩容との境界あたりで上体鉛直位置が高くなり過ぎたり低くなり過ぎたりして無理な姿勢になりそうな場合には、各旋回歩容で上記平均値及び自重を一致させた状態から各旋回歩容の床反力鉛直成分軌道の台形の高さ等を修正するようにしてもよい。
【０２４１】
次に、Ｓ１０８に進み、上記のごとく図１７のように設定された床反力鉛直成分軌道に応じて、単純化モデル歩容用（より詳しくは、単純化モデル歩容の定常歩容用）の床反力水平成分の許容範囲[Fxmin，Fxmax]（より詳しくはこれを規定するパラメータ）が図１８のように設定される。図１８の負側の折れ線が床反力水平成分許容下限値Fxmin、正側の折れ線が床反力水平成分許容上限値Fxmaxを表す。これらの設定方法に関して以下に補足する。以下では、床面が水平である場合について説明する。
【０２４２】
床反力水平成分は、床と足平２２との間の摩擦によって発生するが、摩擦はいくらでも発生できるわけではなく、限界がある。したがって、生成された目標歩容に従って実際のロボット１が移動した時にスリップしないようにするためには、目標歩容の床反力水平成分が、常に摩擦限界以内になければならない。そこで、この条件を満足させるために、床反力水平成分許容範囲を設定し、後述するように、目標歩容の床反力水平成分がこの許容範囲内になるように、目標歩容を生成することとした。
【０２４３】
床と足平２２との間の摩擦係数をμとすると、Fxminは、常に−μ*床反力鉛直成分以上に、Fxmaxはμ*床反力鉛直成分以下に設定されなければならない。最も単純な設定方法は、次式による設定である。ただし、kaは１より小さい正の定数である。
0003679105.tif 000005
図１８の床反力水平成分許容範囲は、式ｃ１２にしたがって設定した例である。床反力水平成分許容範囲を規定するパラメータとして、図１８の台形波形などの折れ点での値と時刻を設定してもよいが、式ｃ１２により床反力水平成分許容範囲を決定するときには、単に式ｃ１２における(ka * μ)の値をパラメータとして設定するだけでも良い。
【０２４４】
尚、上記条件（目標歩容の床反力水平成分を常に摩擦限界以内にするという条件）を満足しているならば、他の設定方法で床反力水平成分許容範囲を設定するようにしても構わない。また、単純化モデル歩容用の床反力水平成分許容範囲は、仮歩容（単純化モデル歩容）を生成するために使用するものであるので、必ずしも厳密な摩擦限界に基づいて決定する必要はなく、例えば片脚支持期の床反力水平成分許容範囲を摩擦限界を越えるような範囲に設定してもよい。このことは、空中期でも同様である。
【０２４５】
次に、Ｓ１１０に進み、第１旋回歩容および第２旋回歩容を合わせた定常歩容のＺＭＰ軌道を規定するＺＭＰ軌道パラメータが設定される。この場合、目標ＺＭＰ軌道は、前述したように安定余裕が高くかつ急激な変化をしないように設定される。
【０２４６】
さらに詳細には、図５の走行歩容においては、支持脚足平２２のかかとで着地した後、しばらくして該支持脚足平２２の底面のほぼ全面が接地し、さらにしばらくして、支持脚足平２２のつま先だけが接地する。そして、次に支持脚足平２２のつま先で蹴って空中に飛び上がり、最後に遊脚足平２２のかかとで着地する。また、目標ＺＭＰは接地面内に存在しなければならない。そこで、本実施形態では、定常歩容の第１旋回歩容及び第２旋回歩容のそれぞれの目標ＺＭＰのＸ軸方向の位置は、前記図７の上段図に示したように、支持脚足平２２のかかとを初期位置として、該足平２２の底面のほぼ全体が接地するまでその位置に留まるように設定される。次に、目標ＺＭＰは支持脚足平２２の中央に移動し、該足平２２がつま先接地状態になるまでにつま先に移動し、その後、離床時まで支持脚足平２２のつまさきに留まるように設定される。さらにその後は、目標ＺＭＰは、前述のごとく、次の遊脚足平２２の着地までに目標ＺＭＰが、支持脚足平２２のつまさきから遊脚足平２２のかかとの着地位置まで連続的に移動するように設定される。したがって、第１旋回歩容と第２旋回歩容とから成る定常歩容の目標ＺＭＰ軌道（Ｘ軸方向の軌道）は、図１９のようになる。そして、この目標ＺＭＰ軌道の折れ点の時刻及び位置がＺＭＰ軌道パラメータとして設定される。この場合、折れ点の時刻は、前記要求パラメータに応じて定めた第１旋回歩容及び第２旋回歩容の歩容周期に応じて設定され、該折れ点の位置は、次回歩容支持脚座標系及び次次回歩容支持脚座標系の位置姿勢あるいはこれらの座標系を規定する要求パラメータの１歩目及び２歩目の遊脚側足平着地予定位置姿勢の要求値に応じて設定される。尚、ＺＭＰ軌道のＹ軸方向の位置は、前記図７の下段図に示したものと同様に設定される。より詳しくは、第１旋回歩容における目標ＺＭＰのＹ軸方向位置の軌道は、図７の下段図のものと同一パターンで設定され、第２旋回歩容における目標ＺＭＰのＹ軸方向位置の軌道は、第１旋回歩容のものと同じ形の軌道で、該軌道の終端につながるものに設定される。
【０２４７】
最後に、Ｓ１１２に進み、定常歩容１歩（１周期）の初期時刻、終端時刻、期間が以下のように再定義される。
【０２４８】
定常歩容は、その初期と終端での状態変数が連続的につながる歩容でなければならない。このような歩容の決定を容易にするために、本実施形態では、定常歩容を決定するまでは、前述の狭義の歩容の定義とは異なり、定常歩容の１歩の初期、終端、期間を便宜上、図１７のように定める。すなわち、第１旋回歩容の片脚支持期の後半において床反力鉛直成分がある程度減少した時刻を定常歩容の初期時刻Tsとして設定する。なお、初期時刻Tsは、図７に示すように、支持脚足平２２の底面のほぼ全面が接地した状態からつま先接地に変わる瞬間あるいはその直前の時刻（図７の足底全面接地期間の終了時刻もしくはその直前の時刻）に設定するのが望ましい。また、Ｓ１１０において設定した図１９（または図７）に示す目標ＺＭＰと時刻Tsとの関係を説明すると、第１旋回歩容において支持脚足平２２の底面のほぼ全面が接地した後に、目標ＺＭＰが支持脚足平２２の中央に移動し、つま先接地状態になるまでにつま先に移動を完了した瞬間が、時刻Tsとなっているのが望ましい。このような初期時刻Tsは例えば先に設定した目標ＺＭＰ軌道パラメータに応じて設定される。上記のごとく初期時刻Tsを設定する理由は後述する。
【０２４９】
また、図１７に示すように、定常歩容の周期Tcycは第１旋回歩容と第２旋回歩容の歩容周期の和である。定常歩容の終端時刻をTeとする。Teは、TsにTcycを加えた時刻に設定される。
【０２５０】
定常歩容が決定された時点（後述の図２０のＳ２０４のループを抜けた時点）から、改めて、歩容の初期、終端等の定義を、前述の狭義の歩容の定義に戻すこととする。以下の説明では、前述の狭義の歩容の定義による初期時刻（支持脚側足平２２の着地当初の時刻）を０とし、定常歩容を決定するまで用いる上記初期時刻Tsを参照符号Tsを用いて（単に「Ts」と省略することもある）本来の初期時刻０と区別する。
【０２５１】
図１３のＳ０１０からＳ０２２までに示す処理が行われた後、Ｓ０２４に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度（水平方向での初期上体位置及び初期上体速度）、初期上体鉛直位置速度（鉛直方向での初期上体位置及び初期上体速度）、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、図２０のフローチャートに従って、探索的に行なわれる。
【０２５２】
図２０のフローチャートにおいては、先ず、Ｓ２００において、定常歩容の歩容パラメータ（前記図１３のＳ０２２で設定したパラメータ）に基づいて、目標足平位置姿勢、目標腕姿勢、および目標上体姿勢角（姿勢角と方向）の初期状態（初期時刻Tsでの状態）が決定される。ここで状態とは、位置や姿勢角とその変化率（時間微分）とを表す。
【０２５３】
この場合、支持脚側の目標足平位置姿勢の初期状態は、前記図１５のＳ１００で決定した足平軌道パラメータの第１旋回歩容初期支持脚足平位置姿勢から、第２旋回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道（次回歩容支持脚座標系から見た軌道）を時刻Tsまで有限時間整定フィルタにより生成することにより決定される。遊脚側の目標足平位置姿勢の初期状態は、次回歩容支持脚座標系から見た今回歩容初期支持脚足平位置姿勢から、第１旋回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道を時刻Tsまで有限時間整定フィルタにより生成することにより決定される。また、目標腕姿勢の初期状態は、図１５のＳ１０４で決定した腕姿勢軌道パラメータに基づいて時刻Tsにおける腕姿勢（上体２４に対する両腕体の全体重心位置等）を求めることで決定される。また、目標上体姿勢角の初期状態は、図１５のＳ１０２で決定した基準上体姿勢軌道パラメータにより定まる時刻Tsにおける基準上体姿勢（姿勢角）及びその角速度が該目標上体姿勢角の初期状態として決定される。なお、本実施形態では、基準状態姿勢角は鉛直姿勢であるので、目標上体姿勢角の初期状態（姿勢角及びその角速度）は０である。また、本実施形態では、定常歩容の目標足平位置姿勢軌道、床反力鉛直成分軌道、及び目標ＺＭＰ軌道は、それぞれ、図１５のフローチャートで決定した足平軌道パラメータ、床反力鉛直成分軌道パラメータ、ＺＭＰ軌道パラメータにより互いに独立的に決定される。例えば定常歩容の瞬時瞬時の目標足平位置姿勢は、床反力鉛直成分の瞬時値に依存することなく足平軌道パラメータに応じて決定される。
【０２５４】
次いでＳ２０２において初期上体水平位置速度の候補（すなわち初期時刻Tsでの上体水平位置速度候補）である（Ｘs，Ｖxs）（Ｘs：水平位置、Ｖxs：水平速度）が仮決めされる。ここで仮決めする候補（Ｘs，Ｖxs）は、任意でよいが、例えば前回歩容の生成時に求めた定常歩容の初期状態における上体水平位置速度を仮決め候補（Ｘs，Ｖxs）とすればよい。
【０２５５】
尚、説明を簡略にするため、サジタルプレーン上でＸ方向（前後方向）での定常歩容の初期状態を探索する場合を例にとるが、実際には位置・速度ともＸ方向（前後方向），Ｙ方向（左右方向）を別々にあるいは同時に定常歩容の初期状態（定常歩容の前記境界条件を満たす初期状態）を探索する必要がある。
【０２５６】
探索的な決定手法としては、擬似ヤコビアン（感度マトリックス）を求め、最急降下法などにより次候補を決定する方法や、シンプレックス法などを用いれば良い。本実施例では、最急降下法を用いる。
【０２５７】
次いで、Ｓ２０４を経てＳ２０６において、初期（時刻Ts）上体鉛直位置速度（Zs、Ｖzs）（Zs：鉛直位置、Ｖzs：鉛直速度）が決定される。
【０２５８】
初期上体鉛直速度Ｖzsは、本実施形態では以下のように解析的に決定される。
【０２５９】
ロボット１には、動力学的関係として、次式が成立する。
【０２６０】
0003679105.tif 000006
（ただし、重力加速度は負の値とする。）
また、定常歩容では、終端全体重心鉛直位置と初期全体重心鉛直位置は一致するので、上式ｃ１３の右辺は零にならなければならない。したがって、これらの関係から初期全体重心鉛直速度を求めることができる。具体的には、まず、前記図１５のＳ１０４で設定した床反力鉛直成分パラメータによって算出される床反力鉛直成分をロボット１の全体質量で割った値を１歩の期間（時刻Tsから時刻Teまで）２階積分することにより、床反力鉛直成分による全体重心移動量（式ｃ１３の右辺第１項）が求められる。さらに、重力加速度を一歩の期間２階積分することにより、重力による全体重心移動量（式ｃ１３の右辺第２項）が求められる。そして、上記求めた床反力による全体重心移動量と重力による全体重心移動量との和を符号反転し、これを１歩の時間（定常歩容の１周期Tcyclの時間）で割ることにより、初期全体重心鉛直速度が求められる。
【０２６１】
次に、初期上体鉛直位置Zsを求めるために、次式を用いて、時刻０の全体重心鉛直速度が求められる。この際、次式における時刻Tsの全体重心鉛直速度には、式ｃ１３に基づいて上記の通り求めた値を代入し、積分期間は時刻０から時刻Tsまでとする。
【０２６２】
0003679105.tif 000007
（ただし、重力加速度は負の値とする。）
次に、本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法を用いて時刻０における（すなわち着地瞬間における）上体高さ（上体鉛直位置）が決定される。このとき、時刻０における足平位置姿勢（前記図１５のＳ１００で決定した第１旋回歩容初期（時刻０）支持脚足平位置姿勢及び第１旋回歩容初期（時刻０）遊脚足平位置姿勢）と、各脚体２の膝部の曲げ角に関する所定の幾何学的条件とに基づいて、時刻０での各脚体２，２の膝部が伸び切らないような上体鉛直位置（上体高さ）が決定される。具体的には、支持脚側脚体２の膝曲げ角をθsup、遊脚側脚体２の膝曲げ角をθswgとしたとき、例えばそれらの膝曲げ角θsup，θswgの正弦値の逆数の和がある所定値（有限値）になるように、上体鉛直位置が決定される。ここで、膝曲げ角θsup，θswgは、各脚体２の大腿部の軸心に対する下腿部の軸心の角度であり、各脚体２が伸びきった状態から膝部を曲げていくに伴い、０から増加していく角度である。なお、このような上体２４の鉛直位置の決定手法は、上記特開平１０−８６０８０号公報に詳細に説明されているので、ここでは以上の説明に留める。
【０２６３】
次に、このように決定した時刻０における上体鉛直位置や、足平位置姿勢などから時刻０における全体重心鉛直位置が前記単純化モデルを用いて求められる。例えば図１１の単純化モデルに対応する前記式ｂ１１のキネマティクスモデルを用いることで、時刻０における全体重心鉛直位置が求められる。具体的には、時刻０での上体鉛直位置と上体姿勢角（本実施形態では０）とから上体質点２４ｍの鉛直位置が求められ、時刻０での支持脚足平位置姿勢及び遊脚足平位置姿勢（これらは、前記図１５のＳ１００で設定した第１旋回歩容初期支持脚足平位置姿勢及び第１旋回歩容初期遊脚足平位置姿勢である）とからそれぞれ支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置が求められる。そして、これらの求めた上体質点２４ｍ、支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置を、前記式ｂ１１のＺb、Ｚsup、Zswgに代入することで、全体重心鉛直位置（式ｂ１１のＺGtotal）が求められる。尚、ロボット１のより厳密なモデル（例えば図１２に示すようなフルモデル（多質点モデル））を用い、時刻０での上体水平位置や腕姿勢をも考慮して、時刻０での全体重心鉛直位置を求めるようにしてもよい。
【０２６４】
次に、前記式ｃ１３において、上記求めた時刻０における全体重心鉛直位置を同式ｃ１３の左辺の初期全体重心鉛直位置に代入し、上記求めた時刻０の全体重心鉛直速度を同式ｃ１３の右辺の初期全体重心鉛直速度に代入し、さらに、同式ｃ１３の１歩の時間をTsとし、積分期間を時刻０から時刻Tsまでとすることで、式ｃ１３の左辺の終端全体重心鉛直位置の値が算出され、この算出値が初期（時刻Ts）全体重心鉛直位置として得られる。さらに、この求めた初期（時刻Ts）全体重心鉛直位置と時刻Tsにおける足平位置姿勢（Ｓ２００で求めたもの）などから、ロボット１のモデル（例えば式ｂ１１のキネマティクスモデル）を用いて、初期（時刻Ts）上体鉛直位置Zsが求められる。具体的には、時刻Tsにおける支持脚及び遊脚の各平位置姿勢から、図１１のモデルの支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置が求められ、これらの鉛直位置と、上記求めた初期（時刻Ts）全体重心鉛直位置とを式ｂ１１に適用することで、上体質点２４ｍの鉛直位置（式ｂ１１のZb）が求められる。そして、この上体質点２４ｍの鉛直位置と時刻Tsでの上体姿勢（本実施形態では０）とから逆算的に初期（時刻Ts）上体鉛直位置Zsが求められる。尚、この場合も、より厳密なモデル（例えば図１２のフルモデル）を用い、上体水平位置や腕姿勢をも考慮して初期上体鉛直位置Zsを求めるようにしてもよい。
【０２６５】
最後に、前記Ｓ２００で決定した足平位置姿勢の初期状態や、Ｓ２０６で求めた初期全体重心鉛直速度等から、ロボット１のモデル（例えば式ｂ１１のキネマティクスモデル）を用いて、初期上体鉛直速度が求められる。具体的には、式ｂ１１の両辺を時間微分してなる式に、前記式ｃ１３に基づいて求めた初期全体重心鉛直速度と、支持脚側及び遊脚側の各足平位置姿勢の初期状態により定まる支持脚質点２ｍ及び遊脚質点２ｍの鉛直速度とを適用することで、上体質点２４ｍの鉛直速度が求められる。そして、この上体質点２４ｍの鉛直速度と上体姿勢角の初期状態（Ｓ２００もしくは後述のＳ２０８で決定されたもの）とから、上体鉛直速度が求められる。尚、各足平位置姿勢の初期状態や、初期全体重心鉛直速度のほか、腕姿勢の初期状態（Ｓ２００で決定されたもの）、仮決定した上体水平位置の初期状態（Ｓ２０２もしくは後述のＳ２１６もしくはＳ２１８で仮決定された最新のもの）、上記求めた初期上体鉛直位置を考慮し、上記求めた初期全体重心鉛直速度を満足するような初期上体鉛直速度を、ロボット１のより厳密なモデル（例えば図１２のフルモデル）を用いて求めるようにしてもよい。
【０２６６】
補足すると、ロボット１のモデルが図１２のような複雑なもの（厳密なモデル）であっても、ロボット１は、片脚当たり６自由度であることから、足平位置姿勢軌道および上体位置姿勢軌道の初期状態（位置姿勢とその変化率）が与えられれば、ロボットの初期状態は一義的にすべて決定されることになる。したがって、初期全体重心鉛直速度もこれらが与えられれば一義的に決定される。逆に、片脚当たり６自由度であることから、足平位置姿勢軌道および上体位置姿勢軌道の初期状態の内で速度に関する状態のひとつ（例えば初期上体鉛直速度）が未定であっても、初期全体重心鉛直速度が与えられれば、未定の初期状態は一義的に決定される。
【０２６７】
Ｓ２０６の処理の後、次いでＳ２０８に進み、定常旋回歩容が仮に生成される。より具体的には、前記図１３のＳ０２２で決定した定常歩容の歩容パラメータを基に、初期時刻Tsから終端時刻Teまでの各瞬間における目標ＺＭＰ、目標床反力鉛直成分、目標足平位置姿勢、基準上体姿勢、目標腕姿勢および床反力水平成分許容範囲が逐次求められる。そして、求めた目標ＺＭＰと目標床反力鉛直成分とに関する動力学的平衡条件、並びに床反力水平成分許容範囲の条件を満足するように、前記図１１の単純化モデル（動力学モデル）を用いて、前記上体水平位置速度（Ｘs，Ｖｘs）、上体鉛直位置速度（Zs、Ｖｚs）を上体２４の初期（時刻Ts）状態として、上体位置姿勢を逐次決定することによって、時刻Tsから終端時刻Teまでの歩容（定常歩容の仮歩容）を生成する。また、この時、上体姿勢は、基準上体姿勢になるべく一致するように生成される。
【０２６８】
尚、この定常歩容の歩容生成は歩容生成装置１００の内部で行われるだけであって、実際のロボット１を駆動するための目標値として、後述する複合コンプライアンス動作決定部１０４に出力されることはない。
【０２６９】
以下に、Ｓ２０８の処理である逐次演算による定常歩容生成処理の詳細を説明する。
【０２７０】
図２１はその処理を示すサブルーチンフローチャートである。
【０２７１】
以下説明すると、Ｓ３００において、諸々の初期化が行われる。具体的には、仮歩容生成用時刻kに初期時刻Tsを代入する。さらに、上体水平位置速度に、現在仮決定されている（Ｘs，Ｖｘs）（図２０のＳ２０２もしくは後述のＳ２１６もしくはＳ２１８で決定されたもの）が代入され、上体鉛直位置速度に、前記Ｓ２０６で求めた最新の（Zs、Ｖｚs）が代入される。また、目標上体姿勢角には、基準上体姿勢角初期値（時刻Tsでの基準上体姿勢角）、目標上体姿勢角速度には、基準上体姿勢角速度初期値（時刻Tsでの基準上体姿勢角速度）を代入する。補足すると、後述するごとく最終的には初期目標上体姿勢角速度は変更されるので、基準上体姿勢角速度初期値と異なる値を代入しても良い。
【０２７２】
次いで、Ｓ３０２を経てＳ３０４において、仮歩容生成用時刻kが歩容終端時刻以前であるか否か（k ≦ Ts + Tcycであるか否か）が判断され、その判断結果がＹＥＳである場合には、Ｓ３０６の歩容瞬時値決定サブルーチンに進み、歩容瞬時値が決定される。次いで歩容生成装置１００の処理は、Ｓ３０８に進み、仮歩容生成用時刻kをΔkだけ増やした後、Ｓ３０４に戻る。
【０２７３】
ここで、Δkは、仮歩容生成のインターバルであり、通常、制御周期Δｔと一致させておけば良い。なお、Δkは、仮歩容の動力学的精度を落としても良いならば、演算量を低減するために、ΔkをΔｔよりも長く設定しても良い。
【０２７４】
Ｓ３０４の判断結果がＮＯである場合には、Ｓ３１０に進む。以上の処理により、Ｓ３１０に進むまでに定常歩容が初期から終端まで生成される。
【０２７５】
以下に、Ｓ３０６の歩容瞬時値決定サブルーチンの詳細を図２２を参照して説明する。
【０２７６】
まず図２２のＳ４００において、定常歩容パラメータ（床反力鉛直成分軌道パラメータ）を基に、前記図１７に示した目標床反力鉛直成分の時刻kにおける値（今回値）が求められる。さらに、Ｓ４０２において、定常歩容パラメータ（ＺＭＰ軌道パラメータ）を基に、前記図１９に示した目標ＺＭＰ軌道の時刻kにおける値（今回値）が求められる。
【０２７７】
次いでＳ４０４に進み、定常歩容パラメータ（足平軌道パラメータ、基準上体姿勢軌道パラメータ、及び腕姿勢軌道パラメータ）を基に、時刻kにおける目標両足平位置姿勢（支持脚側及び遊脚側の両者の目標足平位置姿勢）、基準上体姿勢および目標腕姿勢の値（今回値）が求められる。ただし、目標腕姿勢に関しては、より詳しくは両腕体の全体重心位置が決定されるが、鉛直軸（または上体体幹軸）まわりの角運動量を変化させる腕体の運動（腕振り運動）は、未だ決定されていない。尚、目標足平位置姿勢の今回値（時刻ｋでの値）は、前記図２０のＳ２００で初期時刻Tsでの足平位置姿勢を求めた場合と同様に求められる。
【０２７８】
次いでＳ４０６に進み、目標床反力鉛直成分を満足する（ロボット１の鉛直方向の慣性力と重力との和を目標床反力鉛直成分に釣り合わせる）ような時刻kにおける全体重心鉛直位置速度の値（今回値）が算出される。具体的には、前記図１１の単純化モデルに係わる前記式ａ８と式ｂ１１とに基づいて、全体重心鉛直位置速度が算出される。すなわち、式ａ８と式ｂ１１とによれば、ロボット１の運動による全体重心鉛直加速度と重力加速度との和にロボット１の全体質量を乗算したものが床反力鉛直成分に等しいという関係式（ロボット１の全体重心の鉛直方向に関する運動方程式）が得られる。従って、この関係式と目標床反力鉛直成分とから、全体重心鉛直加速度が求められる。
【０２７９】
尚、この関係式自体は、ロボット１のモデルに依存することなく一般的に成立するものである。そして、この求めた全体鉛直加速度を積分することにより、全体重心鉛直速度が算出され、さらにその全体重心鉛直速度を積分することにより、全体重心鉛直位置が算出される。これらの算出は、より一般的には、次式ｃ１５および式ｃ１６で表される動力学関係式（ニュートンの運動方程式を離散化した式）を用いて行なわれる。
【０２８０】
0003679105.tif 000008
次いでＳ４０８に進み、全体重心鉛直位置を満足する上体鉛直位置が算出される。具体的には、前記図１１の単純化モデルに係わる式ｂ１１を用いて上体鉛直位置が算出される。すなわち、支持脚側及び遊脚側の目標足平位置姿勢の今回値から、図１１の単純化モデルの支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置が求められる。そして、これらの求めた支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置と、Ｓ４０７で求めた全体重心鉛直位置の今回値とを式ｂ１１に適用することで、上体質点２４ｍの鉛直位置が求められる。さらに、この求めた上体質点２４ｍの鉛直位置と目標上体姿勢角の現在値（Ｓ４０４で設定された今回値または後述のＳ４１４で決定された前回（時刻ｋ−Δｋ）の目標上体姿勢角）とから上体鉛直位置が求めらる。
【０２８１】
尚、より厳密なモデル（例えば図１２に示すようフルモデル）を用いて上体鉛直位置を求めてもよい。この場合には、前記求めた目標両足平位置姿勢の今回値（時刻ｋの値）、時刻(k−Δk)の目標上体姿勢（または前記求めた基準上体姿勢の今回値）、前記求めた目標腕姿勢（両腕の重心位置）の今回値、時刻(k−Δk)の上体水平位置と、求めたい上体鉛直位置とから決定される全体重心鉛直位置が、前記求めた全体重心鉛直位置の今回値に一致するように上体鉛直位置が求められる。
【０２８２】
この場合、時刻kの上体姿勢と上体水平位置は、未だ決定されていないので、代わりに時刻(k−Δk)の値を用いた。より精度を高めるために、時刻kでの推定値を、時刻(k−Δk)での歩容状態から外挿によって求めても良い。
【０２８３】
次いでＳ４１０に進み、前記図１５のＳ１０８で決定した歩容パラメータ（床反力水平成分許容範囲を規定するパラメータ）に基づいて、図１８に示した床反力水平成分許容範囲[Fxmin，Fxmax]の時刻kにおける値（今回値）が求められる。
【０２８４】
次いでＳ４１２に進み、目標ＺＭＰに関する動力学的平衡条件（ロボット１の慣性力と重力との合力が目標ＺＭＰまわりに発生するモーメントの水平成分が０であるという条件）を満足するように、前記図１１の単純化モデルの基づいて、上体水平加速度と上体姿勢角加速度との今回値が決定される。ただし、床反力水平成分Fxが[Fxmin，Fxmax]を越えず、かつ、上体姿勢角速度が定常歩容の初期と終端とで一致するように、上体水平加速度と上体姿勢角加速度とが決定される。以下にこの詳細を説明する。
【０２８５】
この時点において、前記の如く足平位置姿勢および上体鉛直位置の瞬時値（今回値）が決定されているので、残りの上体水平位置と上体姿勢角とを決定すれば、鉛直軸まわりの角運動量を変化させる腕体の運動自由度を除いて、ロボット１の目標運動は一義的に決定できる。したがって、上体水平位置と上体姿勢角とを決定すれば、床反力の鉛直軸まわりのモーメントを除き、すべての床反力も一義的に決定される。なお、本実施形態では、定常歩容の目標床反力鉛直成分及び目標ＺＭＰは、それぞれ前記図１２のＳ０２２で決定した床反力鉛直成分軌道パラメータ及び目標ＺＭＰ軌道パラメータによって規定される。したがって、上体水平位置と上体姿勢角の決定に応じて従属的に決定される床反力は、床反力水平成分のみである。また、補足すると、前述したように、ロボット１は片脚当たり６自由度であることから、目標足平位置姿勢と目標上体位置姿勢とから脚体２の各部の位置姿勢は一義的に決定される。なお、鉛直軸まわりの角運動量を変化させる腕の運動自由度は、後述するように、スピン力を打ち消すために用いられる。
【０２８６】
ところで、歩容生成において、前記上体並進モードをあまり用いずに主に上体回転モードを用いることにより、目標ＺＭＰを満足させる（目標ＺＭＰまわりの床反力モーメントの水平成分を０にする）と、上体姿勢角が大きく振れ過ぎてしまう恐れがある。したがって、これを防ぐためには、なるべく上体並進モードを用いるべきである。しかし、上体並進モードは、床反力水平成分の変化を伴うので、床反力水平成分許容範囲が狭い場合には、上体並進モードを強く働かせるとスリップする恐れがある。この場合には、上体回転モードに頼るしかない。特に、前記走行歩容のように床反力水平成分許容範囲が０となる期間では、床反力水平成分を発生させるような歩容を生成することはできないので、上体回転モードに頼らざるを得ない。以上のことを考慮し、本実施形態では、図２３に示すフローチャートに従って、上体水平加速度と上体姿勢角加速度とが決定される。
【０２８７】
まず、Ｓ５００において、初期時刻Tsから第１旋回歩容の空中期を経て第２旋回歩容になり、床反力鉛直成分がある所定の大きさまで増加した時刻Tmが設定される。さらに、第２旋回歩容の片脚支持期の後半において床反力鉛直成分がある程度減少した時刻Ts2が設定される。さらに、第２旋回歩容の空中期を経て第１旋回歩容になり、床反力鉛直成分がある所定の大きさまで増加した時刻Tm2が設定される。
【０２８８】
図１７にこれらの時刻を示す。時刻Tmは、支持脚足平２２の底面のほぼ全面が接地した瞬間あるいはその直後に設定するのが望ましい。時刻Tm2も同様である。また、時刻Ts2は、前記初期時刻Ts同様、足平２２の底面のほぼ全面が接地した状態からつま先接地に変わる瞬間あるいはその直前に設定するのが望ましい。
【０２８９】
また、前記図１５のＳ１１０において設定した図１９の目標ＺＭＰとこれらの時刻Tm，Ts2，Tm2との関係を説明すると、第２旋回歩容において、目標ＺＭＰが、支持脚足平２２のかかとを初期位置として、該足平２２の底面のほぼ全体が接地するまでその位置に留まり、次に支持脚足平２２の中央に移動し始める瞬間を時刻Tmとすることが望ましい。その後、支持脚足平２２のつま先だけ接地した状態になるまでに、目標ＺＭＰがつま先に移動を完了した瞬間を、時刻Ts2とすることが望ましい。さらに次の第１旋回歩容において、目標ＺＭＰが、支持脚足平２２のかかとを初期位置として該足平２２の底面のほぼ全体が接地するまでその位置に留まり、次に支持脚足平２２の中央に移動し始める瞬間を時刻Tm2とすることが望ましい。
【０２９０】
上記のごとく設定する理由は後述する。
【０２９１】
次にＳ５０２において現在時刻（定常歩容作成用タイマーの値）kが、時刻TsからTmの間または時刻Ts2からTm2の間にあるか否かが判定される。Ｓ５０２の判定結果がＹＥＳであるならば、Ｓ５０４に進み、ＮＯであるならばＳ５１８に進む。
【０２９２】
Ｓ５０４では、ロボット１の前回瞬時歩容状態（時刻ｋ−１の歩容状態）から、仮に、上体回転モードの角加速度を０にして、上体並進モードの運動をロボット１にさせた場合に今回（時刻ｋ）の目標ＺＭＰを満足する（目標ＺＭＰまわりの床反力モーメント水平成分を０にする）ために必要な上体水平加速度αtmpが求められる。このαtmpは、前記図１１の単純化モデル（動力学モデル）に係わる前記式ａ１０を用いて求められる。より具体的には、例えば、現在時刻ｋまでに求められた目標足平位置姿勢の時系列値を用いて、現在時刻ｋにおける支持脚質点２ｍ及び遊脚質点２ｍの鉛直加速度が求められると共に、現在時刻ｋ（今回）の目標足平位置姿勢を用いて支持脚質点２ｍ及び遊脚質点２ｍの鉛直位置が求められる。また、現在時刻ｋ（今回）の床反力鉛直位置を用いて上体質点２４ｍの鉛直位置が求められると共に、現在時刻ｋまでに求めた目標上体鉛直位置の時系列値を用いて現在時刻ｋにおける上体質点２４ｍの鉛直加速度が求められる。そして、これらの求めた値を前記式ａ１０に代入すると共に、同式ａ１０のMy、d2θby/dt2を０にしてなる式を、d2Xb/dt2について解くことにより、上体質点水平加速度d2Xb/dt2が上体水平加速度αtmpとして求められる。
【０２９３】
なお、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が０であるため、上体回転モードの角加速度を０にして上体水平加速度αtmpを求めるようにした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合で、それにより定まる現在時刻ｋにおける基準上体姿勢角加速度が０でない場合には、上体回転モードの角加速度をその０でない基準上体姿勢角加速度の値にして、上体水平加速度αtmpを動力学モデルを用いて求める（例えば式ａ１０のd2θby/dt2を０でない基準上体姿勢角加速度に設定して上記と同様に上体水平加速度αtmpを求める）ようにすればよい。
【０２９４】
次に、Ｓ５０６に進み、上体水平加速度がαtmpの場合の時刻ｋにおける床反力水平成分Fxtmpが前記図１１の単純化モデルに係わる式ａ９を用いてFxtmpが求められる。すなわち、次式ｃ１７によってFxtmpが求められる。但し、d2Xsup／dt2およびd2Xswg／dt2はそれぞれ時刻ｋにおける支持脚足平質点水平加速度、遊脚足平質点水平加速度を表す。
【０２９５】
0003679105.tif 000009
このようにして求められるFxtmpの例を図２４に示す。図２４に、Fxtmpが床反力水平成分許容範囲[Fxmin，Fxmax]を越えている部分を斜線で示す。
【０２９６】
次に、Ｓ５０８に進み、上体並進モードの上体水平加速度α、これによって発生する床反力水平成分Fx、上体回転モードの上体角加速度βが次のように決定される（Ｓ５０８〜Ｓ５１６）。
すなわち、
Fxtmp ＞ Fxmaxならば、Ｓ５１０に進み、次式によりＦxが決定される。
【０２９７】
Fx = Fxmax        …式ｃ１８
Fxtmp ＜ Fxminならば、Ｓ５１２に進み、次式によりＦxが決定される。
【０２９８】
Fx = Fxmin        …式ｃ１９
それ以外、すなわち、Fxtmpが、床反力水平成分許容範囲[Fxmin，Fxmax]内に存するならば、Ｓ５１４に進み、次式によりＦxが決定される。
【０２９９】
Fx = Fxtmp        …式ｃ２０
いずれの場合においても、次いでＳ５１６に進み、次式により上体水平加速度α、上体姿勢角加速度βが決定される。
【０３００】
α =αtmp + (Fx−Fxtmp)/ ΔFp      …式ｃ２１
β = (αtmp−α) *ΔMｐ /ΔMｒ      …式ｃ２２
ただし、ΔＦp、ΔMｐおよびΔMｒはそれぞれ前記式ｃ０６、ｃ０７、および式ｃ０９により決定される。
【０３０１】
補足すると、より動力学演算の精度を高めようとするならば、上記のごとく上体角加速度βを求めた後、上体並進モードと上記求めた上体角加速度βの上体回転モードとを合成した運動が目標ＺＭＰを満足するように、上体並進モードの上体水平加速度αを、より厳密な動力学モデルを用いて解析的あるいは探索的に決定した方が良い。なお、探索的な決定法としては、擬似ヤコビアン（感度マトリックス）を求め、擬似ニュートン法などにより次候補を決定する方法や、シンプレックス法などを用いれば良い。
【０３０２】
さらに床反力水平成分Fxが床反力水平成分許容範囲[Fxmin，Fxmax]を厳密に越えないようにするために、Ｓ５１０においては、Fx = Fxmax かつ目標ＺＭＰまわりの床反力モーメントの水平成分が０になるように、Ｓ５１２においては、Fx = Fxmin かつ目標ＺＭＰまわりの床反力モーメントの水平成分が０になるように、上体水平加速度αと上体角加速度βとの組を探索的に求めても良い。
【０３０３】
上記のように求められるFxを図２５に示す。Fxは、Fxtmpの値を床反力水平成分許容範囲[Fxmin，Fxmax]から越えないように制限（飽和）させたものになっている。より詳しくは、上体並進モードのみによる上体水平加速度αtmpに応じたFxtmpが許容範囲[Fxmin，Fxmax]内にある場合には、FxtmpがそのままFxとなる。また、上体並進モードのみによる上体水平加速度αtmpに応じたFxtmpが許容範囲[Fxmin，Fxmax]の上限を超え、もしくは下限を下回った場合には、それぞれFxは、それぞれ強制的にFxmax、Fxminに制限される。特に走行歩容の空中期では、常に、Fxmax＝Fxmin＝０であるので、Fx＝０となる。
【０３０４】
また、上記のように求められる上体姿勢角加速度βを図２６に示す。上体並進モードによって発生するFxが許容範囲[Fxmin，Fxmax]を越えないように、上体並進モードの加速度を制限したことによって不足した床反力モーメント（より詳しくは目標ＺＭＰ回りの床反力モーメントの水平成分を０にする上で必要な慣性力モーメントから、制限した上体水平運動と両脚体２，２の運動とによるモーメント成分を差し引いたモーメント）を、上体回転モードで補ったことになる。なお、走行歩容の空中期では、上体並進モードによる上体水平加速度αは常に０に制限されることとなるので、上体回転モードによる上体姿勢角加速度βのみによって、上記不足分の床反力モーメントが補われることとなる。
【０３０５】
以上が、時刻ｋが時刻TsからTmの間または時刻Ts2からTm2の間の場合の処理である。
【０３０６】
Ｓ５０２の判定結果がＮＯである場合には以下の処理が行われる。まず、Ｓ５１８に進み、上体姿勢角速度を、現在時刻ｋが時刻Ts2以前ならば時刻Ts2までに、そうでないならば時刻Teまでに、初期値（現在時刻ｋが時刻Ts2以前ならば時刻Tsでの値、そうでないならば時刻Ts2での値）に戻すための上体姿勢角加速度を発生させる床反力モーメント水平成分のＺＭＰ換算値（以降、上体姿勢復元モーメントＺＭＰ換算値と呼び、ＺＭＰrecと略す）のパターンを設定する。
【０３０７】
これについて以下に詳細に説明する。現在時刻ｋが時刻Tm2以降の時期の処理は、時刻Ts2以前の時期の処理と同様なので、現在時刻ｋが時刻Ts2以前までの時期の処理だけを解説する。
【０３０８】
時刻Tmから時刻Ts2までに、上体回転モードを用いて上体姿勢角加速度を発生させることにより、上体姿勢角速度を初期値（時刻Tsでの値）に戻すことを考える。このための上体姿勢角加速度パターンを、β(ｋ)とする。
【０３０９】
上体回転モードでは、上体姿勢角加速度β(ｋ)を発生させようとすると、床反力モーメント水平成分β(ｋ)*ΔMｒが発生する。この結果、その瞬間における床反力鉛直成分がFz(ｋ)であるとすると、（目標ＺＭＰでなく）運動から算出されるＺＭＰ(ｋ)は、次式で求められるΔＺＭＰだけずれる。
【０３１０】
ΔＺＭＰ(ｋ) =−β(ｋ)＊ΔMｒ/Fz(ｋ)      …式ｃ２３
したがって、ΔMｒのパターンとFz(ｋ)のパターンが決まっていれば（既知であれば）、ΔＺＭＰ(ｋ)のパターンを適当に設定することによって、式ｃ２３を満足する上体姿勢角加速度パターンを発生させて、上体姿勢角速度を初期値（時刻Tsでの値）、すなわち基準上体姿勢軌道の初期（時刻Ts)状態における上体姿勢角速度に戻すことができる。
【０３１１】
前記上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）は、そのように適切に設定されたΔＺＭＰ(ｋ)を意味する。前記式ｃ２３を用いて上体姿勢復元モーメントＺＭＰ換算値を設定する際に、ΔMｒは厳密には変動するが、近似的に一定値としても良い。定常歩容は仮に生成されるだけであり、実際のロボットをこの歩容に追従させるわけではないので、定常歩容の動力学的精度はあまり高くなくても良いからである。
【０３１２】
図２７にＺＭＰrecの一例を示す。図２７では、そのパターンは台形パターンとされている。その台形部の折れ点の時刻は、時刻Tmと時刻Ts2との間の期間における目標ＺＭＰパターンの折れ点の時刻（図１９参照）に一致させてある。これは、後述するが、今回歩容の目標ＺＭＰパターンの修正が簡単になるからである。式ｃ２３のΔＺＭＰ(ｋ)にＺＭＰrecを代入することにより次式が得られる。
【０３１３】
β(ｋ) =−ＺＭＰrec＊ Fz(ｋ)/ΔMｒ      …式ｃ２４
したがって、この式ｃ２４で求められるβ(ｋ)は、図２８の実線で示すようになる。なお、図２８の点線で示すものは、時刻Tsから時刻Tmまでの上体姿勢角加速度（図２６の実線示のもの）である。
【０３１４】
ところで、定常歩容では、時刻Ts2での上体姿勢角速度が時刻Tsでの上体姿勢角速度に一致していることが望ましい。一致していると、上体姿勢角の変動が小さくなるからである。
【０３１５】
そこで、時刻Ts2での上体姿勢角速度を時刻Tsでの上体姿勢角速度に一致させるため、時刻TsからTs2までの上体姿勢角加速度βの積分値が０になるように、上体姿勢角加速度パターンを設定する。すなわち、時刻Tmから時刻Ts2までの期間のβ(ｋ)の積分値（図２８の実線部の積分値）が、時刻Tsから時刻Tmまでの上体姿勢角加速度（これは図２３のＳ５０４〜Ｓ５１６で前述のように求められる）の積分値（図２８の点線部の積分値、言い換えれば時刻Tmにおける上体姿勢角速度と時刻Tsにおける上体姿勢角速度の差）に−１を乗じた値になるように設定される。
【０３１６】
より具体的には、本実施形態では、図２７のＺＭＰrecの台形パターンにおいて、台形の折れ点の時刻（これは前述のように定常歩容の目標ＺＭＰ軌道に基づいて決定される）を既知とし、台形高さを未知数とすることで、上記関係を満足するＺＭＰrecの台形高さ（ＺＭＰrecパターンを規定するパラメータ）が求められる。
【０３１７】
第１旋回歩容におけるＺＭＰrecの台形高さを第１旋回歩容上体姿勢復元モーメントＺＭＰ換算値台形高さacyc1と呼ぶ。第２旋回歩容におけるＺＭＰrecの台形高さを第２旋回歩容上体姿勢復元モーメントＺＭＰ換算値台形高さacyc2と呼ぶ。なお、第２旋回歩容におけるＺＭＰrecは、時刻Tm2からTeまでの期間で設定される台形パターンである。
【０３１８】
補足すると、今回歩容を１歩生成している途中で歩容パラメータが変更されない限り、時刻TmとTs2との間の期間、又は時刻Tm2とTeとの間の期間においてＳ５１８で決定されるＺＭＰrecパターンは変わらない（同一パラメータ値が算出される）ので、Ｓ５１８の処理は、時刻Tmと時刻Tm2でのみ実行しても良い。
【０３１９】
次いでＳ５２０に進み、時刻ｋにおける上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecの瞬間値（今回値）が、上記のごとく決定したパラメータ（台形高さ）を基に算出される。
【０３２０】
次いでＳ５２２に進み、前記式ｃ２４を用いて、時刻ｋにおける上記上体姿勢角加速度パターンの瞬間値（今回値）βが算出される。
【０３２１】
次いでＳ５２４に進み、ロボットの前回瞬時目標歩容状態（時刻ｋ−１の目標歩容状態）から、仮に上体回転モードをさせずに上体並進モードの運動のみをさせた場合に、今回（時刻ｋ）の目標ＺＭＰを満足するために必要な上体水平加速度αtmpが、ロボット１の動力学モデルを用いて求められる。この算出は、Ｓ５０４と同様に行なわれる。
【０３２２】
次いでＳ５２６に進み、次式を用いて、上体並進モードの上体水平加速度αが算出される。
【０３２３】
α = αtmp−（ΔMｒ /ΔMｐ）* β      …式ｃ２５
さらにＳ５２８に進み、上体水平加速度が上記の如く求めたαである場合の時刻ｋにおける床反力水平成分Fxが、前記式ｃ１７と同様の次式ｃ２６によって求められる。
【０３２４】
0003679105.tif 000010
補足すると、より動力学演算の精度を高めようとするならば、上記のごとく上体角加速度βを求めた後、Ｓ５２６において、式ｃ２５を用いた上体水平加速度αの算出を実行する代わりに、Ｓ５１６の補足で解説した手法と同様、上体並進モードと上記求めた上体角加速度βの上体回転モードを合成した運動が目標ＺＭＰを満足するように、上体並進モードの上体水平加速度αを、より厳密な動力学モデルを用いて、解析的あるいは探索的に決定した方が良い。
【０３２５】
以上が、時刻ｋが時刻TsからTmの間または時刻Ts2からTm2の間のいずれでもない場合の処理である。
【０３２６】
以上の処理を時刻Ts2まで完了した時の、床反力水平成分Fxを図２９に示す。さらに、以上の処理を時刻Teまで完了した時の、床反力水平成分Fxを図３０に、上体姿勢角加速度βを図３１に示す。なお、以上に示したＳ４１２の処理（上体水平加速度と上体姿勢角加速度を決定するサブルーチン）は、時刻ｋにおける上体水平加速度と上体姿勢角加速度の瞬間値が決定されるのであって、時刻Teまでのこれらの時系列が一度に生成されるわけではない。
【０３２７】
なお、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が０であるため、上記の如く求めた上体回転モードの角加速度βをＳ４１２の処理で決定される上体姿勢角加速度とした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合には、上記の如く求めた上体回転モードの角加速度βと基準上体姿勢角加速度の和をもって、Ｓ４１２の処理で決定される上体姿勢角加速度とすべきである。
【０３２８】
時刻Ts、Tm、Ts2およびTm2を前記のごとく設定した理由は、時刻TmからTs2までの期間と時刻Tm2からTeまでの期間とにおいて、上体姿勢角速度を基準上体姿勢軌道の初期角速度に戻すように上体姿勢角加速度βを発生させても、床反力水平成分Fxが許容範囲[Fxmin，Fxmax]を越えないようにするためである。換言すれば、時刻TmからTs2までの期間と時刻Tm2からTeまでの期間とにおいては、床反力水平成分許容範囲が十分に大きいため、目標ＺＭＰを満足しつつ、上体姿勢角速度を戻すように上体姿勢角加速度βを発生させても、床反力水平成分Ｆxは、許容範囲を越えることがない。
【０３２９】
また、時刻Tsでの上体姿勢角速度を時刻Tsでの上体姿勢角速度に一致させることを考えず、acyc1とacyc2を同一値として（acyc1＝acyc2として）、時刻Teでの上体姿勢角速度と時刻Tsでの上体姿勢角速度に一致させるようにacyc1およびacyc2の値を決定しても良い。
【０３３０】
次いで図２２のＳ４１４に進み、Ｓ４１２で求めた上体水平加速度を逐次積分する（時刻Tsから現在時刻ｋまで累積加算する）ことにより上体水平速度が求められ、さらにその上体水平速度を逐次積分する（時刻Tsから現在時刻ｋまで累積加算する）ことにより、上体水平位置（今回値）が求められる。また、Ｓ４１２で求めた上体姿勢角加速度を逐次積分する（時刻Tsから現在時刻ｋまで累積加算する）ことにより上体姿勢角速度が求められ、さらにその上体姿勢角速度を逐次積分する（時刻Tsから現在時刻ｋまで累積加算する）ことにより、上体姿勢角（今回値）が求められる。
【０３３１】
以上のごとく図２１のＳ３０６の定常歩容瞬時値決定サブルーチンが実行された後、Ｓ３０８に進み、歩容生成用時刻kの値が歩容生成インターバルΔｋだけ増加される。次いでＳ３０４に戻り、Ｓ３０４に示す条件が成立している限り、Ｓ３０６とＳ３０８の処理が繰り返され、Ｓ３０４に示す条件が成立しなくなったら、すなわち終端（時刻Te＝Ts＋Tcyc）まで仮定常歩容の生成が完了したら、Ｓ３１０に進む。Ｓ３１０では、次式に従って初期（時刻Ts）上体姿勢角と初期（時刻Ts）上体姿勢角速度が、上記求めた仮歩容の終端（時刻Te）上体姿勢角などを基に修正される。この修正は、上体姿勢角及びその角速度に関する定常歩容の境界条件（定常歩容の初期と終端とで上体姿勢角及び角速度を一致させる）を満たすようにするためのものである。尚、ここでの説明では、ロボット１の歩容は、該ロボット１を直線的に移動させる歩容であるとする。
【０３３２】
この場合、次式の新たな値が修正された値である。。
【０３３３】
0003679105.tif 000011
ここで、上記式ｃ３０により初期状態姿勢角速度を修正する理由を以下に説明する。定常歩容では、それを繰り返したときに境界でロボット１の運動状態が不連続にならないように（前記境界条件を満たすように）初期状態姿勢角及びその角速度を決定する必要がある。この場合、上述のように求めた仮定常歩容の終端上体姿勢角速度は、前述した上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecに対応する上体姿勢角加速度パターンの設定によって、初期上体姿勢角速度初期値（基準上体姿勢角速度初期値）に一致するように生成されているので、残りの条件である次式を満たせば、上体姿勢角及び角速度に関する上記条件を満足する。
【０３３４】
終端上体姿勢角  ＝  初期上体姿勢角        …式ｃ３２
また、
上体姿勢角の２階微分 = 上体姿勢角加速度      …式ｃ３３
であるから、この式ｃ３３の両辺を定常歩容の初期から終端まで２階積分することにより、次式の関係を得る。
【０３３５】
0003679105.tif 000012
一方、定常歩容生成においては、前記の如く目標ＺＭＰを満足するために、基本的には上体並進運動モードを用いて上体２４の水平加速度（水平加減速）を調整するが、目標ＺＭＰを満足するための上体２４の水平加速度が、十分に発生できない状況（十分な摩擦力が発生できない状況）では、上体回転運動モードを用いて全体重心加速度が変わらないようにしつつ上体姿勢角の角加速度を調整することで、上体並進運動モードによる上体水平加速度の不足分が補われる。
【０３３６】
上記上体回転運動モードを用いて上体姿勢角加速度を調整する動作は、図１１に示すフライホイールFHが備わったロボット１において、そのフライホイールFHの角加速度を調整することと近似的に等価である。フライホイールFHの回転速度が０に近いならば、ジャイロ効果は発生せず、フライホイールFHが発生する力は、フライホイールFHの角加速度だけで決定される。したがって、上体２４にフライホイールFHが備わったロボット１においては、フライホイールFHの初期角度・角速度が多少変わっても、該フライホイールFHを同じパターンの角加速度で動かせば、発生する力はほとんど変わらない。それ故、ロボット動力学方程式である式ａ８、式ａ９、式ａ１０ではジャイロ効果を無視している。したがって、本実施形態のロボット１において、式ａ８、式ａ９、式ａ１０、あるいは、より一般的で厳密な動力学モデルのいずれを用いた場合でも、全体重心加速度が変わらないようにしつつ上体姿勢角を同じパターンの角加速度で動かせば（すなわち上体回転運動モードを用いて、上体姿勢角を同じパターンの角加速度で動かせば）、初期上体姿勢角度・角速度を少々変えても、発生する慣性力と重力との合力はほぼ同じになる。言い換えれば、初期上体姿勢角度・角速度を少々変えても、上記のフローチャートに従って生成される歩容の上体姿勢角加速度は同じになる。
【０３３７】
つまり、式ｃ３４における上体姿勢角加速度の２階積分値は、初期上体姿勢角度・角速度に依存しなくなる。すなわち、式ｃ３４における上体姿勢角加速度の２階積分値は、初期上体姿勢角度・角速度の値に関わらず、一定値として扱うことができる。
【０３３８】
初期上体姿勢角の値が仮歩容の初期上体姿勢角、かつ初期上体姿勢角速度の値が仮歩容の初期上体姿勢角速度であった場合に、終端上体姿勢角が仮歩容の終端上体姿勢角になったのであるから、この関係を式ｃ３４に代入して次式を得る。
【０３３９】
0003679105.tif 000013
これより、
0003679105.tif 000014
上記議論により上体姿勢角加速度の２階積分値は定数扱いできる（初期上体姿勢角度・角速度に依存しない）ので、上式を式ｃ３４に代入し、次式が得られる。
【０３４０】
0003679105.tif 000015
式ｃ３７と式ｃ３２とから前記式ｃ３０が得られる。
【０３４１】
なお、初期上体姿勢角は、本実施形態では、式ｃ３１のように基準上体姿勢角初期値に一致させるようにしたが、定常歩容の上体姿勢角の平均値が基準上体姿勢角初期値に一致するように初期上体姿勢角を設定するようにしてもよい。あるいは、定常歩容の上体姿勢角の最大値と最小値の平均値が基準上体姿勢角初期値に一致するように初期上体姿勢角を設定しても良い。
【０３４２】
また、前記ではロボット１を直進移動させる場合に限定した例を説明したが、旋回移動を含む定常歩容を決定する場合には、その初期と終端とではロボット１の進行方向が変わる。このため初期上体姿勢角速度は初期上体姿勢角に依存するようになる。したがって、これを考慮して初期上体姿勢角および角速度を決定する必要がある。この場合には、例えば次の式ｃ３７ａ、ｃ３７ｂを満たすように初期上体姿勢角及び初期上体姿勢角速度を更新するようにすればよい。
【０３４３】
0003679105.tif 000016
なお、式ｃ３７ａ、ｃ３７ｂのそれぞれの右辺第１項の積分期間は、時刻TsからTmまでの期間と、Ts2からTm2までの期間とを合わせた期間であり、右辺第２項の積分期間は、時刻TmからTs2までの期間とTm2からTeまでの期間とを合わせた期間である。
【０３４４】
より具体的に説明すると定常歩容では、第１旋回歩容の支持脚座標系（次回歩容支持脚座標系）から見た初期状態姿勢角及び角速度が、それぞれ、次の第１旋回歩容の支持脚座標系（次次次回歩容支持脚座標系）から見た終端上体姿勢角および角速度に一致していなければならない。そこで、本実施形態では、新たな初期上体姿勢角は、前記式ｃ３１により決定し、この新たな初期上体姿勢角と、これを定常歩容におけるロボット１のトータルの旋回角（鉛直軸回りの旋回角）に応じたマトリクス（回転座標変換のマトリクス）により次回歩容支持脚座標系から見た値に座標変換したものとをそれぞれ式ｃ３７ａの左辺の初期上体姿勢角、終端上体姿勢角に代入する。また、式ｃ３７ａ，ｃ３７ｂのそれぞれの右辺第１項の積分に係る上体姿勢角加速度は、前記図２３のＳ５１６で逐次求められたものが用いられる。
【０３４５】
そして、式ｃ３７ａ，ｃ３７ｂの初期上体姿勢角速度と、式ｃ３７ａ，ｃ３７ｂの右辺第２項の積分に係るＺＭＰrec（図２７の台形状のパターン）の台形高さをと未知数として（但し、ＺＭＰrecの台形パターンの折れ点の時刻はあらかじめ定める。また、第１旋回歩容のＺＭＰrecの台形高さacyc1と第２旋回歩容のＺＭＰrecの台形高さacyc2を同一値とする。）、それらの未知数を含む式ｃ３７ａ，ｃ３７ｂの連立方程式を解くことにより求められる初期上体姿勢角速度を新たな初期上体姿勢角速度として決定する。この場合、式ｃ３７ｂの終端上体姿勢角速度は、未知数である初期上体姿勢角速度を、定常歩容の上記トータルの旋回角に応じたマトリクスにより次回歩容支持脚座標系から見た値に座標変換したものである。
【０３４６】
ロボット１の移動が旋回を含む移動である場合には、上記のようにして、新たな初期上体姿勢角および角速度を決定すればよい。
【０３４７】
なお、定常歩容の境界条件を満たすような初期上体姿勢角速度を探索的に求めることも可能である。
【０３４８】
図２１のＳ３１０の処理を完了した後、図２０のＳ２１０に進み、生成した歩容（仮定常歩容）の終端上体水平位置・速度を、その瞬間の支持脚に対応する支持脚座標系（図３２のＸ'''，Ｙ''' ，Z'''座標系）から見た値に変換し、その値を（Ｘｅ，Ｖｘｅ）とする（Ｘｅ：終端上体水平位置、Ｖｘｅ：終端上体水平速度）。
【０３４９】
次いでＳ２１２に進み、図示の如く、初期上体水平位置速度（Ｘｓ，Ｖｘｓ）と終端上体水平位置速度（Ｘｅ，Ｖｘｅ）との差を算出する。この差（Ｘｓ−Ｘｅ，Ｖｘｓ−Ｖｘｅ）を上体水平位置速度境界条件誤差（errx，errvx）と呼ぶ。定常歩容では、前記境界条件を満たす必要があるので、（Ｘｓ，Ｖｘｓ）と（Ｘｅ，Ｖｘｅ）とが一致していなければならない。従って、上体水平位置速度境界条件誤差（errx，errvx）が零またはほぼ零でなければならない。本実施形態では、以下のように、上体水平位置速度境界条件誤差（errx，errvx）がほぼ零となる（Ｘｓ，Ｖｘｓ）が探索的に求められる。
【０３５０】
次いでＳ２１４に進み、算出した上体水平位置速度境界条件誤差（errx，errvx）が、あらかじめ適宜設定された許容範囲内にあるか否かが判断される。尚、このように上体水平位置速度境界条件誤差の許容範囲を設定する代わりに、初期発散成分（Ｘｓ＋Ｖｘｓ／ω0）と終端発散成分（Ｘｅ＋Ｖｘｅ／ω0）との差、および初期収束成分（Ｘｓ−Ｖｘｓ／ω0）と終端収束成分（Ｘｅ−Ｖｘｅ／ω0）との差がそれぞれある許容範囲内にあるか否か判断するようにしても良い。ただしω0は、前述したように、ある所定の値である。
【０３５１】
Ｓ２１４の判断結果がＮＯであるときにはＳ２１６に進む。このＳ２１６では、（Ｘｓ，Ｖｘｓ）の付近に複数（本実施形態では２つ）の初期値候補（Ｘｓ＋ΔＸｓ，Ｖｘｓ），（Ｘｓ，Ｖｘｓ＋ΔＶｘｓ）が決定される。ここで、ΔＸｓ，ΔＶｘｓは、それぞれＸｓ，Ｖｘｓに対する所定の微小変化量を意味している。そして、これらの初期値候補のそれぞれを上体水平位置速度の初期状態として、前記Ｓ２０８と同様の処理によって定常歩容が歩容パラメータを用いて生成される。さらに、その生成された定常歩容の終端上体位置速度を、その瞬間の支持脚に対応する支持脚座標系（図３２のＸ'''，Ｙ''' ，Z'''座標系）から見た値に変換した値（Ｘｅ＋ΔＸｅ１，Ｖｘｅ＋ΔＶｘｅ１），（Ｘｅ＋ΔＸｅ２，Ｖｘｅ＋ΔＶｘｅ２）が求められる。ここで、（Ｘｅ＋ΔＸｅ１，Ｖｘｅ＋ΔＶｘｅ１）は（Ｘｓ＋ΔＸｓ，Ｖｘｓ）に対応する終端上体位置速度を意味し、（Ｘｅ＋ΔＸｅ２，Ｖｘｅ＋ΔＶｘｅ２）は（Ｘｓ，Ｖｘｓ＋ΔＶｘｓ）に対応する終端上体位置速度を意味している。なお、この場合の定常歩容（仮歩容）の生成処理では、上体水平位置速度以外の変数の初期状態（時刻Ｔｓでの状態）は、例えば上体水平位置速度の初期値候補を（Ｘｓ，Ｖｘｓ）とした場合と同一に設定すればよい。Ｓ２１６ではさらに、前記Ｓ２１０と同様の処理によって、各初期値候補とこれに対応する終端上体位置速度との差、すなわち、各初期値候補（Ｘｓ＋ΔＸｓ，Ｖｘｓ），（Ｘｓ，Ｖｘｓ＋ΔＶｘｓ）のそれぞれに対応する上体水平位置速度境界条件誤差が求められる。
【０３５２】
次いでＳ２１８に進み、（Ｘｓ，Ｖｘｓ）およびその付近の初期値候補（Ｘｓ＋ΔＸｓ，Ｖｘｓ），（Ｘｓ，Ｖｘｓ＋ΔＶｘｓ）のそれぞれに対する上体水平位置速度境界条件誤差を基に、（Ｘｓ，Ｖｘｓ）の次の初期値候補が探索法（擬似ヤコビアン（感度マトリックス）を求め、最急降下法などにより次候補を決定する方法や、シンプレックス法など）により決定される。すなわち、（Ｘｓ，Ｖｘｓ）およびその付近の初期値候補（Ｘｓ＋ΔＸｓ，Ｖｘｓ），（Ｘｓ，Ｖｘｓ＋ΔＶｘｓ）のそれぞれに対する上体水平位置速度境界条件誤差によって、上体水平位置及び上体水平速度をそれぞれ初期値候補（Ｘｓ，Ｖｘｓ）から微小変化させたときの、上体水平位置速度境界条件誤差の変化度合いを示す感度マトリックスが求められ、その感度マトリックスに基づいて、上体水平位置速度境界条件誤差をより小さくするような初期値候補（Ｘｓ，Ｖｘｓ）が新たに決定される。そして、このように上体水平位置速度の新たな初期値候補（Ｘｓ，Ｖｘｓ）が決定された後、Ｓ２０６に戻る。
【０３５３】
Ｓ２１４の判断結果がＮＯとなる限りは上記した処理（Ｓ２０６〜Ｓ２１８の処理）が繰り返される。なお、この場合、上体水平位置速度の新たな初期値候補（Ｘｓ，Ｖｘｓ）に対応する定常歩容の生成処理（Ｓ２０８）におけるＳ３００（図２１参照）では、上体姿勢角速度の初期値は、基準上体姿勢角速度の初期値ではなく、上体水平位置速度の前回の初期値候補（Ｘｓ，Ｖｘｓ）に対応するＳ２０８の処理におけるＳ３１０（図２０参照）で決定したものに設定される。そして、Ｓ２１４の判断結果がＹＥＳになると、繰り返しループ（Ｓ２０４）を抜けてＳ２２０に進む。なお、Ｓ２０４の繰り返しループを抜けたときの直前に生成された仮定常歩容が、境界条件を満たす定常歩容として得られることとなる。
【０３５４】
Ｓ２２０では、本来の初期時刻０（今回歩容の終端時刻）における初期上体水平位置速度（Ｘ0，Ｖ0）と初期時刻０における初期上体鉛直位置速度（Ｚ0、Ｖｚ0）と初期時刻０における初期上体姿勢角および角速度が求められる。
【０３５５】
具体的には、（Ｘ0，Ｖ0）と（Ｚ0，Ｖｚ0）は、前記図２２に示した定常歩容瞬時値決定サブルーチンのＳ４０８およびＳ４１４において、第２旋回歩容から第２旋回歩容に切り換わった瞬間の時刻、すなわち、時刻ｋ＝Tcyc（時刻Te−Ts）であるときに決定された上体水平位置速度と上体鉛直位置速度とを、それぞれ時刻Tcycから始まる一歩（すなわち２度目の第１旋回歩容）の支持脚に対応する支持脚座標系（図３２のＸ'''，Ｙ'''，Z'''座標系）から見た値に変換した値に決定される。同様に、初期状態姿勢角および角速度は、時刻ｋ＝Tcyc（時刻Te−Ts）であるときに決定された上体姿勢角及び角加速度を、時刻Tcycから始まる一歩（すなわち２度目の第１旋回歩容）の支持脚に対応する支持脚座標系（図３２のＸ'''，Ｙ'''，Z'''座標系）から見た値に変換した値に決定される。
【０３５６】
次いでＳ２２２に進み、定常歩容初期発散成分ｑ［０］が次式から求められる。
【０３５７】
ｑ[0] =  Ｘ0 + Ｖ0／ω0            …式４０
ただしω0は、発散についての解説で述べたように、ある所定の値である。
【０３５８】
さらに、Ｓ２２４に進み、定常歩容初期発散成分ｑ［０］が今回歩容支持脚座標系から見た値に変換され、これがｑ”［０］として求められる。また、初期上体鉛直位置速度（Ｚ０，Ｖｚ０）が今回歩容支持脚座標系から見た値に変換され、これが（Z０”，Ｖｚ０”）として求められる。
【０３５９】
補足すると、（Ｚ０”，Ｖｚ０”）は、第２旋回歩容の支持脚座標系（図１６のＸ”，Ｙ”，Ｚ”座標系）から見た第２旋回歩容終端上体鉛直位置速度に一致している。また、ｑ”［０］も第２旋回歩容の支持脚座標系（図１５のＸ”，Ｙ”，Ｚ”座標系）から見た第２旋回歩容終端発散成分に一致している。したがって、これらの性質を用いて、（Ｚ０”，Ｖｚ０”）およびｑ”［０］を算出するようにしても良い。
【０３６０】
以上により、図１３のＳ０２４の処理、すなわち定常歩容の初期状態を求めるサブルーチン処理が終了する。
【０３６１】
次いで、図１３のＳ０２６に進み、今回歩容の歩容パラメータを決定（一部は仮決定）する。Ｓ０２６では、より具体的には、図３３に示すフローチャートに従って、以下の処理が行われる。
【０３６２】
まず、Ｓ６００において、今回歩容の足平位置姿勢軌道が定常歩容の足平位置姿勢軌道につながるように、今回歩容の足平軌道パラメータが設定される。
【０３６３】
具体的には、今回歩容初期遊脚足平位置姿勢（今回歩容遊脚足平位置姿勢の初期値）は、今回歩容支持脚座標系から見た現在遊脚位置姿勢（前回歩容終端遊脚位置姿勢）に設定される。今回歩容初期支持脚足平位置姿勢（今回歩容支持脚足平位置姿勢の初期値）は、今回歩容支持脚座標系から見た現在支持脚足平位置姿勢（前回歩容終端支持脚足平位置姿勢）に設定される。また、今回歩容終端遊脚足平位置姿勢は、今回歩容支持脚座標系から見た次回歩容支持脚座標系（今回歩容に係わる１歩目の遊脚着床位置姿勢の要求値）に対応して決定される。すなわち、今回歩容終端遊脚足平位置姿勢から遊脚足平２２を床に接触させたまま、すべらないように該足平２２をその底面のほぼ全面が接地するまで回転させたときの、該足平２２の代表点が今回歩容支持脚座標系から見た次回歩容支持脚座標系の原点に合致するように今回歩容終端遊脚足平位置姿勢が決定される。
【０３６４】
今回歩容終端では、支持脚足平２２は離床して空中にある。支持脚足平２２が離床してから後の軌道を決定するために、支持脚足平着地予定位置姿勢を設定する。支持脚足平着地予定位置姿勢は、今回歩容支持脚座標から見た次次回歩容支持脚座標（今回歩容に係わる２歩目の遊脚足平位置姿勢の要求値）に対応して設定される。より具体的には、支持脚足平着地予定位置姿勢は、その位置姿勢から、足平２２を床に接触させたまま、すべらないように該足平２２をその底面のほぼ全面が床に接地するまで回転させたときの該足平２２の代表点が今回歩容支持脚座標から見た次次回歩容支持脚座標の原点に合致するように設定される。
【０３６５】
今回歩容終端支持脚足平位置姿勢は、現在支持脚位置姿勢（今回歩容初期支持脚足平位置姿勢）から、次回歩容支持脚座標系に対応する足平着地予定位置姿勢（前記要求パラメータにおける２歩目の遊脚側足平着地位置姿勢の要求値）に至る足平位置姿勢軌道を、今回歩容終端まで前記有限時間整定フィルタにより生成することにより求められる。
【０３６６】
次いで、Ｓ６０２に進み、今回歩容の基準上体姿勢軌道パラメータが、定常歩容の第１旋回歩容や第２旋回歩容と同様に決定される。ただし、今回歩容の基準上体姿勢軌道が前記定常歩容の基準上体姿勢軌道に連続してつながる（今回歩容終端での基準上体姿勢角及び角速度がそれぞれ定常歩容初期の基準上体姿勢角及び角速度に一致する）ように上記パラメータが設定される。なお、本実施形態では、基準上体姿勢は、今回歩容及び定常歩容のいずれでも定常的な鉛直姿勢である。
【０３６７】
次いで、Ｓ６０４に進み、今回歩容の腕姿勢軌道パラメータが、定常歩容の第１旋回歩容や第２旋回歩容と同様に決定される。ただし、今回歩容の腕姿勢軌道が前記定常歩容の腕姿勢軌道に連続してつながるように上記パラメータを設定する。なお、ここで決定される腕姿勢軌道パラメータは、定常歩容パラメータの決定（図１５のＳ１０４）の場合と同様、鉛直軸（あるいは上体体幹軸）まわりの両腕体の角運動量変化に関すること以外の運動パラメータであり、両腕体の重心位置の軌道を規定するパラメータである。
【０３６８】
次いで、Ｓ６０６に進み、今回歩容の床反力鉛直成分軌道パラメータが、定常歩容の第１旋回歩容や第２旋回歩容と同様、該パラメータにより規定される床反力鉛直成分軌道が前記図６のように実質的に連続な（値がステップ状に飛ばない）軌道になるように設定される。
【０３６９】
ただし、床反力鉛直成分軌道パラメータは、今回歩容の全体重心鉛直位置速度と床反力鉛直成分軌道とのいずれもが、前記定常歩容と連続してつながるように決定される。
【０３７０】
具体的には、まず、前記図１３のＳ０２４の処理（定常歩容初期状態の決定処理）で最終的に求めた定常歩容の初期上体鉛直位置速度を今回歩容支持脚座標系から見た値に変換した値（Z０”，Ｖｚ０”）、すなわち、図２０のＳ２２４で求めた（Z０”，Ｖｚ０”）等を基に、例えば前記式ｂ１１（あるいはロボット１のキネマティクスモデル）を用いて、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直位置速度が求められる。具体的には、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直位置は、Ｓ２２４で求めた定常歩容の上体鉛直位置Z0”に対応する図１１の単純化モデルの上体質点鉛直位置と、定常歩容初期の各足平位置を今回歩容支持脚座標系から見た値に変換したものに対応する支持脚側及び遊脚側の脚体質点鉛直位置とを式ｂ１１に代入することで求められる。また、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直速度は、Ｓ２２４で求めた定常歩容の上体鉛直速度Vz0”に対応する図１１の単純化モデルの上体質点鉛直速度と、定常歩容初期の各足平鉛直速度を今回歩容支持脚座標系から見た値に変換したものに対応する支持脚側及び遊脚側の脚体質点鉛直速度とを式ｂ１１の両辺を微分してなる式に代入することにより求められる。なお、この初期全体重心鉛直位置速度の算出は、より厳密なモデルを用いて行なうようにしてもよい。
【０３７１】
そして、このようにして求めた定常歩容の初期全体重心鉛直位置速度を、前記式ｃ１３と下記式ｃ４１の終端全体重心鉛直位置速度に代入すると共に、前回の目標歩容瞬時値（より厳密には、前回目標歩容の終端状態を今回支持脚座標系に変換したもの）の全体重心鉛直位置および速度を、前記式ｃ１３と下記式ｃ４１の初期全体重心鉛直位置および速度に代入し、式ｃ１３と式ｃ４１の関係を満足するように、今回歩容の床反力鉛直成分パターン（より具体的にはパラメータ値）が決定される。ただし、式ｃ１３と式ｃ４１における積分値は今回歩容の初期から終端までの期間の積分値とする。
【０３７２】
0003679105.tif 000017
ただし、重力加速度は負の値とする。
【０３７３】
より具体的には、まず、図６のような床反力鉛直成分パターンを規定する床反力鉛直成分パラメータ（折れ点の時刻等）のうちの、少なくとも２つのパラメータを独立な未知変数として、その未知変数の値を、式ｃ１３と式ｃ４１とからなる連立方程式を解いて決定する。
【０３７４】
未知変数とする床反力鉛直成分パラメータには、例えば、図６の台形の高さ（床反力鉛直成分のピーク値）と幅（片脚支持期時間）とを選択すれば良い。この場合、図６の台形の両側部分の傾きは今回歩容周期等に応じてあらかじめ定めた値とし、あるいは、片脚支持期から空中期に移行する時刻を除く床反力鉛直成分パターンの折れ点の時刻を今回歩容周期等に応じてあらかじめ定めた値とする。補足すると、未知変数を１つとすると、一般的には式ｃ１３と式ｃ４１の連立方程式を満足する解が存在しない。
【０３７５】
次いで、Ｓ６０８に進み、単純化モデル歩容用の床反力水平成分許容範囲[Fxmin，Fxmax]（具体的には該床反力水平成分許容範囲のパターンを規定するパラメータ）が、定常歩容の第１旋回歩容や第２旋回歩容と同様に設定される。たとえば図３４に示すようなパターンで床反力水平成分許容範囲が設定される。本実施形態では、先にＳ６０６で決定した床反力鉛直成分パターンに応じて前記式ｃ１２に基づいて床反力水平成分許容範囲が設定される。尚、ここで設定する単純化モデル歩容用の床反力水平成分許容範囲は、先に定常歩容生成の際に設定した床反力水平成分許容範囲と同様、摩擦力限界を超えるような範囲に設定してもよい。これは、後述するフルモデル補正によって、床反力水平成分は歩容補正用の床反力水平成分許容範囲によって制限されることとなるからである。
【０３７６】
次いで、Ｓ６１０に進み、今回歩容のＺＭＰ軌道（具体的にはＺＭＰ軌道を規定するパラメータで、軌道の折れ点の時刻や位置）が、定常歩容の第１旋回歩容や第２旋回歩容と同様、安定余裕が高くかつ急激な変化をしないように、前記図７に示すごとく設定される。ただし、今回歩容のＺＭＰ軌道が前記定常歩容のＺＭＰ軌道に連続してつながるように上記パラメータを設定される。つまり、今回歩容終端におけるＺＭＰの位置が定常歩容初期のＺＭＰ位置に一致するように、ＺＭＰ軌道パラメータが決定される。この場合、走行歩容では、片脚支持期におけるＺＭＰ軌道の折れ点の時刻や位置の設定の仕方は、前述した定常歩容のＺＭＰ軌道パラメータの設定の仕方と同様でよい。そして、空中期における目標ＺＭＰ軌道が、空中期開始時から、定常歩容初期のＺＭＰ位置まで、直線的に連続して変化するようにＺＭＰ軌道パラメータを設定すればよい。
【０３７７】
なお、Ｓ６１０で決定される今回歩容のＺＭＰ軌道パラメータは、仮決定されただけであり、後述するように修正される。そこで、上記のごとく設定した今回歩容のＺＭＰ軌道を、以降、今回歩容の仮目標ＺＭＰ軌道と呼ぶこととする。
【０３７８】
最後に、Ｓ６１２に進み、上体姿勢角復元期間[Ta，Tb]が設定される。上体姿勢角復元開始時刻Taは、定常歩容の第２旋回歩容におけるTmに相当し、上体姿勢角復元修了時刻Tbは、定常歩容の第２旋回歩容におけるTs2に相当するものである。これらの時刻Ta，Tbの設定の仕方は、それぞれTmおよびTs2の設定の仕方と同様である。
【０３７９】
図１３の説明に戻って、上記のごとくＳ０２６に示す処理（今回歩容の歩容パラメータ決定処理）を行って後、次いでＳ０２８に進み、今回歩容の歩容パラメータ（ＺＭＰ軌道パラメータ）が修正される。この処理では、上体位置姿勢軌道を定常歩容に連続させ、もしくは近づけるべくＺＭＰ軌道パラメータが修正される。
【０３８０】
図３５はその処理を示すサブルーチン・フロー・チャートである。
【０３８１】
まずＳ７００を経てＳ７０２に進み、仮目標ＺＭＰパターンとその他の今回歩容パラメータを基に、今回歩容終端時刻までの仮今回歩容が仮生成される。
【０３８２】
Ｓ７０２では、図３６に示すフローチャートに従って、以下の処理が行われる。
【０３８３】
以下説明すると、Ｓ８００において、諸々の初期化が行われる。具体的には、仮歩容生成用時刻kに０が代入される。また、前回目標歩容の終端状態（より具体的には、上体水平位置速度、上体鉛直位置速度、上体姿勢角及びその角速度、目標足平位置姿勢、目標腕姿勢などの歩容状態の終端値）を今回支持脚座標系に変換したものを、今回歩容初期状態とする。
【０３８４】
次いで、Ｓ８０２を経てＳ８０４において、仮歩容生成用時刻kが今回歩容終端時刻Tcurr以前であるか否か（k ≦ Tcurrであるか否か）が判断され、その判断結果がＹＥＳある場合には、Ｓ８０６の今回歩容瞬時値決定サブルーチンに進み、今回歩容の時刻kの瞬時値が決定される。次いでＳ８０８に進み、仮歩容生成用時刻kがΔkだけ増加され、Ｓ８０４に戻る。
【０３８５】
Ｓ８０４の判断結果がＮＯである場合には、図３６に示すフローチャートの処理が完了する。
【０３８６】
以上の処理により、仮の今回歩容が初期から終端まで生成される。
【０３８７】
Ｓ８０６の歩容瞬時値決定サブルーチンでは、図３７に示す処理が行われる。以下にこれを説明する。
【０３８８】
まずＳ９００において、今回歩容パラメータの床反力鉛直成分軌道パラメータを基に、図６に示した目標床反力鉛直成分の時刻kにおける値（今回値）が求められる。次いで、Ｓ９０２において、今回歩容パラメータのＺＭＰ軌道パラメータを基に、図７に示す目標ＺＭＰ軌道（仮目標ＺＭＰ軌道）の時刻kにおける値（今回値）を求める。
【０３８９】
次いでＳ９０４に進み、今回歩容パラメータ（足平軌道パラメータ、基準上体姿勢軌道パラメータおよび腕姿勢軌道パラメータ）を基に、時刻kにおける目標両足平位置姿勢、基準上体姿勢および目標腕姿勢の値（今回値）がそれぞれ求められる。ただし、目標腕姿勢に関しては、腕全体重心位置は決定されるが、鉛直軸（または上体体幹軸）まわりの角運動量を変化させる運動自由度は、未だ決定されていない。なお、定常歩容の場合と同様、今回歩容の目標足平位置姿勢軌道及び床反力鉛直成分軌道は、それぞれ、図３３のフローチャートで決定した足平軌道パラメータ、床反力鉛直成分軌道パラメータに応じて互いに独立的に決定される。
【０３９０】
次いでＳ９０６に進み、Ｓ９００で求めた目標床反力鉛直成分の今回値を満足する（ロボット１の鉛直方向の慣性力と重力との和を目標床反力鉛直成分に釣り合わせる）ような時刻kにおける全体重心鉛直位置が算出される。この算出は、具体的には前記図２２のＳ４０６と同様の処理により行なわれる。
【０３９１】
次いでＳ９０８に進み、上記の如く求めた全体重心鉛直位置を満足する上体鉛直位置の今回値が算出される。この算出は、具体的には、前記図２２のＳ４０８と同様の処理により行なわれる。
【０３９２】
次いでＳ９１０に進み、前記図３３のＳ６０８で決定した床反力水平成分許容範囲のパラメータに基づいて、図３４に示す床反力水平成分許容範囲[Fxmin，Fxmax]の時刻kにおける値（今回値）が求められる。
【０３９３】
次いでＳ９１２に進み、目標ＺＭＰを満足する（目標ＺＭＰ回りに発生するモーメント水平成分が０になる）ように、今回仮歩容の上体水平加速度と上体姿勢角加速度が決定される。ただし、これらの加速度は、床反力水平成分Fxが[Fxmin，Fxmax]を越えないように決定される。この処理は、図２２のＳ４１２の詳細を示す図２３のフローチャートの処理とは若干異なる。
【０３９４】
Ｓ９１２では、具体的には、図３８のフローチャートに示す処理が行われる。図３８のフローチャートでは、まずＳ１０００おいて、時刻kが前記図３３のＳ６１２で設定した上体姿勢角復元期間[Ta，Tb]にあるか否かが判断される。
【０３９５】
この判断結果がＮＯである場合（床反力水平成分許容範囲が０もしくは狭い場合）には、Ｓ１００２からＳ１０１４までの処理が実行される。Ｓ１００２からＳ１０１４までの処理は、前述の図２３のＳ５０４からＳ５１６までの処理と同じであるので、説明を省略する。
【０３９６】
Ｓ１０００の判断結果がＹＥＳである場合には、Ｓ１０１６に進み、上体姿勢復元モーメントＺＭＰ換算値パターンＺＭＰrecが設定される。この場合、定常歩容の生成に係わる前記図２３のＳ５１８と異なり、ＺＭＰrecは、一定値０のパターン（すなわち図２７に示す台形パターンの高さが０であるパターン）に設定される。次に、Ｓ１０１８からＳ１０２６までの処理が行われる。Ｓ１０１８からＳ１０２６までの処理は、前記図２３のＳ５２０からＳ５２８までの処理と同じであるので説明を省略する。なお、Ｓ１０１６〜Ｓ１０２６の処理では、上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecの瞬時値は常に０になるので、Ｓ１０２０で求められる上体回転モードの上体姿勢角加速度βも０になる。従って、β＝０として、Ｓ１０２２、Ｓ１０２４及びＳ１０２６の処理のみを行なうようにしてもよい。Ｓ１０００の判断結果がＹＥＳである場合、すなわち、上体姿勢角復元期間[Ta，Tb]では、上記のようにβ＝０となることから、Ｓ９１２の処理では、上体姿勢角復元期間[Ta，Tb]（床反力水平成分許容範囲が十分に大きい期間）で、定常歩容生成の場合と異なり、上体姿勢角速度の復元方向への上体姿勢変化の運動軌道は生成されないこととなる。
【０３９７】
なお、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が０であるため、上記の如く求めた上体回転モードの角加速度βをＳ９１２の処理で決定される上体姿勢角加速度とした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合には、上記の如く求めた上体回転モードの角加速度βと基準上体姿勢角加速度の和をもって、Ｓ９１２の処理で決定される上体姿勢角加速度とすべきである。
【０３９８】
以上のごとく図３７のＳ９１２の処理を完了した後、次いでＳ９１４に進み、上記Ｓ９１２で求めた上体水平加速度を逐次積分する（今回歩容初期（時刻k=0）から現在時刻ｋまで累積加算する）ことによって上体水平速度が求められ、さらにその上体水平速度を逐次積分する（今回歩容初期（時刻k=0）から現在時刻ｋまで累積加算する）ことによって、上体水平位置（今回値）が求められる。また、上記Ｓ９１２で求めた上体姿勢角加速度を逐次積分する（今回歩容初期（時刻k=0）から現在時刻ｋまで累積加算する）ことによって、上体姿勢角速度が求められ、さらにその上体姿勢角速度を逐次積分する（今回歩容初期（時刻k=0）から現在時刻ｋまで累積加算する）ことによって、上体姿勢角の今回値が求められる。このＳ９１４の処理は図２２のＳ４１４と同様の処理である。
【０３９９】
以上のごとく図３６のＳ８０６の今回歩容瞬時値決定サブルーチンが実行され、次いでＳ８０８に進み、歩容生成用時刻kの値が歩容生成インターバルΔｋだけ増加される。次いでＳ８０４に戻り、Ｓ８０４に示す条件が成立している限り、Ｓ８０６とＳ８０８の処理が繰り返される。そして、Ｓ８０４に示す条件が成立しなくなったら、すなわち終端まで仮今回歩容の生成が完了したら、図３５のＳ７０４に進む。
【０４００】
Ｓ７０４では、上記のごとくＳ７０２で求めた今回歩容終端での上体水平位置速度（Ｘｅ，Ｖｘｅ）から、終端発散成分ｑ0[k]（k=Tcurr）が図示の式（前記式１０）を用いて求められる。
【０４０１】
次いでＳ７０６に進み、今回歩容終端発散成分ｑ0[k]と定常歩容初期発散成分ｑ”（図２０のＳ２２４で求めたもの）との差である終端発散成分誤差errqが図示の式を用いて求められる。さらに、Ｓ７０８に進んで、その求めた終端発散成分誤差errqが許容範囲内（０近傍の範囲）にあるか否か判断する。
【０４０２】
Ｓ７０８の判断結果がＮＯであるときはＳ７１０に進み、ａ＝Δａ（Δａは所定の微小量）とし、図３９の関係に従って現在の仮目標ＺＭＰパターンに台形状の修正を加えた目標ＺＭＰを基に、前記Ｓ７０２と同様に、終端までの仮今回歩容を計算する。ここで、図３９を参照して、ａは、今回歩容終端発散成分を定常歩容初期発散成分にできるだけ一致させる（今回歩容の上体水平位置姿勢軌道を定常歩容の上体水平位置姿勢軌道に近づける）ために、仮目標ＺＭＰを修正するための台形パターンの高さである。この場合、本実施形態では、仮目標ＺＭＰの修正は、支持脚足平２２の底面のほぼ全面が接地する期間（足底全面接地期間）、すなわち、床反力水平成分許容範囲が十分に広いものとなる期間において行なうようにしており、上記台形パターンの折れ点の時刻は、足底全面接地期間における仮目標ＺＭＰの折れ点の時刻に合わせて設定されている。なお、Ｓ７１０でａ＝Δａとするのは、現在の仮目標ＺＭＰ軌道を上記台形パターンによって微小量、修正したときの前記終端発散成分誤差errqの変化を観測するためである。
【０４０３】
上記のようにＳ７１０にて、ａ＝Δａとして仮目標ＺＭＰ軌道を修正したときの仮今回歩容を終端まで生成した後、さらにＳ７１２に進み、Ｓ７１０で求めた仮今回歩容終端での上体水平位置速度（Ｘｅ1，Ｖｘｅ1）を基に、この仮今回歩容における終端発散成分ｑ1[k]が図示の式（前記式ｃ１０）を用いて求められる。
【０４０４】
尚、Ｓ７１０においてΔａは、本実施形態では、適宜に設定される微小量の定数としたが、以下に説明する繰り返し演算によって終端発散成分誤差errqが小さくなるにつれてΔａを減少させるように該Δａを設定するようにしても良い。ただし、定数にしておいても、数回の繰り返し演算で終端発散成分誤差errqを許容範囲内に収めることができる。
【０４０５】
次いでＳ７１４に進み、パラメータ感度ｒ（Δａに対する終端発散成分誤差の変化の割合）が図示の式から求められる。さらに、Ｓ７１６に進み、ａ＝−errq／r、すなわちＳ７０６で求めた終端発散成分誤差errqを、Ｓ７１４で求めたパラメータ感度ｒで割った値を高さａとする台形パターンの修正量を図３９の関係に従って仮目標ＺＭＰパターンに加えることにより、仮目標ＺＭＰパターンが修正される（新たな仮目標ＺＭＰパターンが決定される）。
【０４０６】
次いでＳ７０２に戻る。そして、Ｓ７０８の判断結果がＮＯである限りは、上記したＳ７０２〜Ｓ７１６の処理が繰り返され、Ｓ７０８の判断結果がＹＥＳになったときには、その繰り返しループ（Ｓ７００）を抜けてＳ７１８に進む。
【０４０７】
Ｓ７１８では、仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角との差、および仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度との差などを基に、今回歩容の上体姿勢角が定常歩容の上体姿勢角に近づくように、今回歩容の上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）のパターンが決定される。ここで決定するＺＭＰrecは、後述する今回歩容瞬時値の生成処理で、床反力水平成分許容範囲が十分に大きいものとなる期間（片脚支持期内の期間）において、上体姿勢角軌道を定常歩容につながらせる（近づける）ように上体姿勢角加速度を発生させても、今回歩容終端発散成分と定常歩容初期発散成分との一致性（Ｓ７０８の条件）を維持できるように、仮目標ＺＭＰを修正するためのものである。
【０４０８】
このＺＭＰrecは、前記定常歩容生成処理で説明したものと同様に台形状のパターンであり、具体的には次のように決定される。すなわち、図２７に示したＺＭＰrecの台形パターンにおいて、台形の頂点（折れ点）の時刻は既知とする（より具体的には台形の折れ点の時刻を目標ＺＭＰの折れ点時刻に合わせる）と共に、台形高さを未知数とし、以下のようにＺＭＰrecの台形高さ（パラメータ）が求められる。ただし、Ｓ７１８では図２７におけるTmおよびTs2をそれぞれTa，Tbに置き換えるものとする。
【０４０９】
上記のように上体姿勢復元モーメントＺＭＰ換算値パターンの未知パラメータがひとつの場合には、今回歩容の終端において上体姿勢角と上体姿勢角速度の両方を定常歩容に連続につなげることは一般的にはできない。そこで、本実施形態では、複数歩に渡って徐々に、生成される歩容の状態が定常歩容の状態に近づけるように、未知パラメータを決定することとする。
【０４１０】
補足すると、１歩容の中でのＺＭＰrecパターンを複雑にし、未知パラメータを２つ以上にして、今回歩容の終端において上体姿勢角と上体姿勢角速度との両者を定常歩容に連続につなげても良いが、ＺＭＰrecパターンがジグザグに大きく変動し過ぎる恐れがある。
【０４１１】
以下では、算出原理を説明した後、算出手順を説明する。
【０４１２】
前述のごとくＳ７０２でＺＭＰrecパターンの台形高さを０として求めた仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角との差を求め、これをθerrとする。また、仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度との差を求め、これをvθerrとする。
【０４１３】
ここで、ＺＭＰrecパターンの台形高さをある値bcurrとして今回歩容が生成され、引き続いて、今回歩容と同様のアルゴリズムによって第１旋回歩容が生成されると想定する。ただし、第１旋回歩容の上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecパターンは、図２３のＳ５１８において求められた第１旋回歩容のＺＭＰrecパターン（高さが前記acyc1である図２７の台形パターン）とある値b1の和であるとする。
【０４１４】
このようにして生成された歩容をＺＭＰrec修正歩容と呼び、その終端（第１旋回歩容の終端）上体姿勢角と角速度をそれぞれθ1、vθ1とする。
【０４１５】
Ｓ０２４における定常歩容の初期状態を求めるサブルーチンの処理が完了した時点で求められた本来の定常歩容（最終的にＳ３１０の式ｃ３０、式ｃ３１によって決定された定常歩容初期上体姿勢角および角速度を初期値とし、ＺＭＰrecパターンをＳ５１８において求められたパターン（高さがacyc1である図２７の台形パターン）とした場合の定常歩容）の第１旋回歩容終端上体姿勢角と角速度をそれぞれθ1org、vθ1orgとする。
【０４１６】
ここで、Δθ1、Δvθ1を次のように定義する。
Δθ1 =θ1−θ1org              …式ｃ５０
Δvθ1 =vθ1−vθ1org            …式ｃ５１
Δθ1およびΔvθ1は、ＺＭＰrec修正歩容と本来の定常歩容を第１旋回歩容の終端まで生成した時点において、両者間における上体姿勢角の差及び角速度の差を意味する。もし、Δθ1およびΔvθ1が０になれば、ＺＭＰrec修正歩容に引き続いて、今回歩容と同様のアルゴリズムによって、ＺＭＰrecパターンの台形高さを前記acyc2として第２旋回歩容が生成されると、この歩容は、本来の定常歩容に一致する。
【０４１７】
したがって、Δθ1およびΔvθ1が０となる今回歩容台形高さbcurr、第１旋回歩容台形高さb1を求め、求めたbcurrを今回歩容の台形高さとして最終的に決定すれば良い。
【０４１８】
ところで、ロボット１の上体姿勢角に関する動力学モデルが図１１に示すフライホイールFHのような線形特性を持つことから、Δθ1およびΔvθ1は、今回歩容台形高さbcurr、第１旋回歩容台形高さb1、仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角の差θerr、仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度の差vθerrと以下の関係を持つ。
【０４１９】
Δθ1 =  c11 * bcurr + c12* b1 + θerr + e1 * vθerr     …ｃ式５２
Δvθ1 = c21 * bcurr + c22 * b1 + e2 * vθerr            …ｃ式５３
だだし、c11、c12、c21、c22、e1、e2は、今回歩容、第１旋回歩容の歩容周期、上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecパターンのパラメータ（特に時間に関するパラメータ）などによって一義的に決定される係数である。
【０４２０】
以上の原理に基づき、算出手順として、まず、仮今回歩容と定常歩容との境界での上体姿勢角の差θerrと角速度の差Ｖθerrが求められる。
【０４２１】
次いで、式ｃ５２，ｃ５３の係数であるc11、c12、c21、c22、e1、e2が、今回歩容、第１旋回歩容の歩容周期、上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecパターンのパラメータ（特に時間に関するパラメータ）などを基に求められる。
【０４２２】
次いでｃ式５２、式ｃ５３の右辺が０となるように今回歩容台形高さbcurr、第１旋回歩容台形高さb1が決定される。すなわち、式ｃ５２、式ｃ５３の右辺を０とした連立方程式を解くことによって、bcurr、b1が求められる。
【０４２３】
最後に、今回歩容の上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）の台形パターンの台形高さが、上記求めた今回歩容台形高さbcurrに設定される。
【０４２４】
次いでＳ７２０に進み、現在の仮目標ＺＭＰパターン（Ｓ７００の繰り返しループを抜けたときの仮目標ＺＭＰパターン）に、Ｓ７１８で上記のように求めた上体姿勢復元モーメントＺＭＰ換算値パターンを加算してなるパターンが今回歩容の目標ＺＭＰパターンとして決定される。なお、この処理は、Ｓ７１０においてΔaの高さの台形パターンを仮目標ＺＭＰパターンに加える処理と同様である。
【０４２５】
以下に仮目標ＺＭＰパターンに上体姿勢復元モーメントＺＭＰ換算値パターンを加算した理由を述べる。
【０４２６】
Ｓ７００のループにおいて生成される仮今回歩容は、前述の如く、上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecを０（ＺＭＰrecの台形パターンの高さパラメータを０）にして生成される。このようにしてＳ７００のループで最終的に生成された仮今回歩容では、その上体位置速度は、定常歩容に連続し、もしくは近づくが、上体姿勢角は、定常歩容の上体姿勢角からずれ、場合によっては発散してしまう。
【０４２７】
Ｓ７１８で求められた上体姿勢復元モーメントＺＭＰ換算値パターンは、上体姿勢角の定常歩容に対するずれを０に近づけるための上体姿勢角加速度を発生させるものである。
【０４２８】
しかし、Ｓ７００のループで最終的に得られた仮目標ＺＭＰパターンを修正することなく、Ｓ７１８で求められた上体姿勢復元モーメントＺＭＰ換算値パターンに応じた上体姿勢角加速度を発生させると、動力学的平衡条件（ロボットの重力と慣性力の合力が目標ＺＭＰに作用するモーメントが鉛直成分を除いて０になること）を満足させるために、上体水平位置軌道を前記仮今回歩容の上体水平位置軌道からずらさざるを得なくなる。そこで、本実施例では、上体水平位置軌道をＳ７００のループで最終的に得られるものからずらさなくて済むように、ＺＭＰrecによって仮目標ＺＭＰパターンを修正することとした。
【０４２９】
前記仮今回歩容の運動に加えて、Ｓ７１８で求めた上体姿勢復元モーメントＺＭＰ換算値パターンに対応する上体姿勢角加速度を発生させると、ＺＭＰ（運動によって発生する重力と慣性力の合力の鉛直成分を除くモーメントが０になる点）は上体姿勢復元モーメントＺＭＰ換算値だけずれる。したがって、逆に、仮目標ＺＭＰパターンに上体姿勢復元モーメントＺＭＰ換算値パターンを加算したパターンを目標ＺＭＰパターンとして、Ｓ７１８で求めた上体姿勢復元モーメントＺＭＰ換算値パターンに対応する上体回転モードの上体姿勢角加速度を発生させながら、目標ＺＭＰパターンを満足する今回歩容を生成すれば、前記仮今回歩容と同じ上体並進運動となる。
【０４３０】
以上が、仮目標ＺＭＰパターンに上体姿勢復元モーメントＺＭＰ換算値パターンを加算したパターンを目標ＺＭＰパターンとした理由である。
【０４３１】
図１３に戻って、上記のごとくＳ０２８において今回歩容パラメータを修正した後、Ｓ０３０に進み、歩容補正用の床反力水平成分許容範囲とＺＭＰ許容範囲とをそれぞれ規定するパラメータを決定する。この場合、歩容補正用の床反力水平成分許容範囲は、例えば前記単純化モデル歩容用の床反力水平成分と同様、Ｘ軸方向（前後方向）、Ｙ軸方向（左右方向）のそれぞれについて、床反力鉛直成分軌道と、前記式ｃ１２とに基づいて、前記図３４に示すようなパターンに設定される。そして、例えば、前記式ｃ１２のka*μの値が歩容補正用の床反力水平成分許容範囲を規定するパラメータとして設定される。但し、この床反力水平成分許容範囲は、式ｃ１２の係数ｋaの値を、単純化モデル歩容用の床反力水平成分許容範囲よりも小さめに設定する等して、確実に摩擦限界内の範囲に設定することが望ましい。
【０４３２】
また、詳細は後述するが、ＺＭＰ許容範囲は、両足平位置姿勢軌道により定まる支持多角形に応じて決定される。このＺＭＰ許容範囲は、基本的には、支持多角形内の長方形の領域（ＸＹ座標平面の領域）に設定され、例えばＸ軸方向の両端の値とＹ軸方向の両端の値とがＺＭＰ許容範囲を規定するパラメータとして設定される。尚、走行歩容におけるＺＭＰ許容範囲は、片脚支持期では、支持脚足平２２の接地面内に設定され、空中期では、ＸＹ軸両方向に幅の無い範囲（すなわち点）となる（例えば目標ＺＭＰそのものがＺＭＰ許容範囲とされる）。
【０４３３】
Ｓ０３０の処理を実行した後、あるいはＳ０１６の判断結果がＮＯである場合には、Ｓ０３２に進み、今回歩容瞬時値（現在時刻ｔの値）が前記単純化モデルを用いて決定される。
【０４３４】
上記Ｓ０３２では、図３７のＳ９００からＳ９１０までと同一の処理が行なわれ、次に、Ｓ９１２のサブルーチンである図３８のＳ１０００〜Ｓ１０２６の処理が行なわれる。ただし、この場合、図３８のＳ１０１６においては、上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）パターンは、０に設定されるのではなく、図３５のＳ７１８で設定した上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）パターンに設定される。次いで図３７のＳ９１４と同一の処理が実行され、これにより、図１３のＳ０３２の処理が完了する。
【０４３５】
次いでＳ０３４に進み、スピン力をキャンセルする（ロボット１の腕以外の運動によって目標ＺＭＰ回りに発生する床反力モーメント鉛直成分を略零にする）ための腕動作が決定される。具体的には、腕を振らなかった場合の目標ＺＭＰにおける床反力モーメント鉛直成分軌道（厳密には、腕を振らずに歩容を生成した場合において、ロボットの重力と慣性力の合力が目標ＺＭＰに作用するモーメント鉛直成分軌道の各瞬時値の符号を反転したもの）が求められる。すなわち、Ｓ０３２の処理によって生成された歩容の運動（これには腕振りの運動は含まれていない）の瞬時値に釣り合う目標ＺＭＰ（瞬時値）回りの床反力モーメント鉛直成分で瞬時値が求められる。そして、これを、腕振り運動の等価慣性モーメントで割ることにより、スピン力キャンセルに必要な腕振り動作の角加速度が求められる。なお、補足すると、腕の振りが大き過ぎる場合には、等価慣性モーメントよりも大きな値で割れば良い。
【０４３６】
次に、この角加速度を２階積分し、これを積分値が過大になるのを防ぐためのローカットフィルタに通して得た角度を腕振り動作角とする。ただし、腕振り動作では、左右の腕を前後逆方向に振り、両腕体の重心位置を変化させないようにする。なお、スピン力をキャンセルするための腕振り運動を定常歩容でも生成しておき、これにつながるように、今回歩容における腕振り運動を決定するようにしてもよい。
【０４３７】
以上説明したＳ０３４までの処理によって生成された現在時刻ｔにおける歩容の瞬時値を、以降、単純化モデル歩容瞬時値という。本実施形態では、この単純化モデル歩容瞬時値は、単純化モデル（図１１の動力学モデル）を用いて、ロボット１にその運動によって発生する慣性力と重力との合力が目標ＺＭＰまわりに発生する床反力モーメント水平成分が０になるように（目標ＺＭＰに関する動力学的平衡条件を満たすように）決定される。従って、本実施形態における単純化モデル歩容は、前記b’）の意味での目標歩容に相当する。
【０４３８】
この場合、単純化モデル歩容瞬時値のうちの、上体位置姿勢の瞬時値と、上体鉛直位置の瞬時値とは仮瞬時値であり、後述するフルモデル補正によって補正されるものである。また、本実施形態における単純化モデル歩容瞬時値のうち、目標ＺＭＰまわりの床反力モーメント水平成分の瞬時値は０であるが、これも、仮瞬時値であり、後述するフルモデル補正によって補正されるものである。
【０４３９】
尚、以上説明した単純化モデル歩容瞬時値の決定処理においては、前記図５の走行歩容を例にとって説明したが、ロボット１の歩行歩容を生成する場合でも、上記と同様に、単純化モデル歩容瞬時値を決定できる。この場合には、床反力鉛直成分軌道（１歩分の軌道）は、例えば図４０に示すような折れ線状のパターンで設定すればよい。この例では、より詳しくは、歩行歩容用の床反力鉛直成分軌道は、両脚支持期では、床反力鉛直成分の増加側に凸（上に凸）の台形状に設定され、片脚支持期では床反力鉛直成分の減少側に凸（下に凸）の台形状に設定される。この場合、床反力鉛直成分軌道の２つの台形部分の高さＣ1，Ｃ2等は、次のように決定することが好ましい。すなわち、本願出願人が先に提案した上体高さ決定法（特開平１０−８６０８０号公報。より具体的には同公報の図６の手法等）を用いて、ロボット１の脚体２，２の関節（具体的には膝関節）の変位に関する所定の幾何学的条件（各脚体２，２が伸び切ることが無いようにするための条件）を満たす上体鉛直位置軌道を基準上体鉛直位置軌道として求めておく。そして、床反力鉛直成分軌道を歩容初期から歩容終端まで２階積分して得られるロボット１の全体重心鉛直位置軌道に対応する上体鉛直位置軌道の形状的な特徴量（例えば最大値と最小値との差）が、上記基準上体鉛直位置軌道の特徴量（例えば最大値と最小値との差）に合致するように、床反力鉛直成分軌道の２つの台形部分の高さＣ1，Ｃ2を決定する。尚、この場合、走行歩容用の床反力鉛直成分軌道の設定の場合と同様、歩行歩容用の床反力鉛直成分軌道においても、その１周期内の平均値がほぼロボット１の自重に一致するようにする。
【０４４０】
このように、歩行歩容用の床反力鉛直成分軌道を決定することで、各脚体２，２が伸び切ることが無いような適切な単純化モデル歩容瞬時値（特に上体鉛直位置の瞬時値）を決定できる。歩行歩容を生成する場合には、床反力鉛直成分軌道を上記のように設定する以外は、前述した走行歩容の場合の単純化モデル歩容瞬時値の生成処理と同様の処理を行なうことによって、歩行歩容の単純化モデル歩容瞬時値を決定すればよい。
【０４４１】
なお、歩行歩容の単純化モデル歩容瞬時値は、本出願人が先に提案した特願平２０００−３５２０１１号の第１実施形態等の手法によって決定するようにしてもよい。
【０４４２】
図１３のフローチャートの説明に戻って、次に、Ｓ０３６に進み、歩容補正用の床反力水平成分許容範囲とＺＭＰ許容範囲を規定するパラメータ（Ｓ０３０で設定したもの）を基に、歩容補正用の床反力水平成分許容範囲と、ＺＭＰ許容範囲との瞬時値（現在時刻ｔの値）が求められる。
【０４４３】
次いで、Ｓ０３８に進み、フルモデルを用いて補正歩容の発生（歩容の補正）を行い、最終的な目標歩容の瞬時値が決定される。すなわち、前記図８を参照して説明したように、補正目標上体位置姿勢や、目標ＺＭＰまわりの補正目標床反力モーメント水平成分の算出（決定）などが実行される。
【０４４４】
このＳ０３８の歩容補正手法が本願発明の主たる特徴をなす。以下、この歩容補正手法について種々の例を説明するので、その歩容補正手法をここで概説する。
【０４４５】
その歩容の補正手法を分類すると、図４１に示す如く分類される。この分類表は、本願出願人が先に提案した特願２００１−１３３６２１号の図１２に示す分類表とほぼ同一になる。ただし、単純化モデルの入力を補正しない方式の内の摂動モデルを用いない手法だけは除く。なぜなら、この手法は、床反力だけを補正して動力学的平衡条件を満足させる手法であるが、これだけでは、走行などのように床反力水平成分許容範囲とＺＭＰ許容範囲が狭い時がある歩容の生成において、これら許容範囲を越えないように歩容を補正することは事実上不可能であるからである。
【０４４６】
第１実施形態に係る装置の補正手法は、フルモデルフィードフォワード補正型である。また、逆動力学フルモデル（逆フルモデル）を用いる手法で、かつ単純化モデル歩容を補正しない手法であり、かつ摂動モデルを用いる手法である。
【０４４７】
図４２は、この発明の第１実施形態に係る歩容生成装置１００の動作、具体的には、図１３のフロー・チャートのＳ０３８の歩容の修正手法を
説明する機能ブロック図である。ただし、図４２の単純化モデル２００は、単に動力学モデルだけでなく、前述のＳ０１０からＳ０３４の処理、すなわち単純化モデル歩容瞬時値の算出（決定）処理を表す。したがって、図４２において、単純化モデル２００から先の部分がＳ０３８の処理に相当する。
【０４４８】
尚、歩容補正用の床反力水平成分許容範囲とＺＭＰ許容範囲の瞬時値を決定処理は、図１３のフローチャートの参照符号Ｓ０３６を用いて示している。
【０４４９】
実際の処理はひとつのコンピュータで実行されるので、ブロック図を離散化した後、ブロック図の上流側から下流側（歩容出力側）に向かって順に実行される。ただし、上流側に戻るフィードバック量は、前回制御周期（現在時刻ｔに対して時刻ｔ−Δｔ）に算出した値（状態量）を用いることとする。尚、以降、前回制御周期（時刻ｔ−Δｔ）に算出した値を前回値と略す。
【０４５０】
Ｓ０３８の処理が実行される毎に、ブロック図の１制御周期分の演算が実行される。
【０４５１】
補足すると、離散化手法としては、後退差分、前進差分、双一次変換などが知られており、いずれを用いても構わないが、例えば、後退差分を用いると、ある変数の今回の値（出力）を算出するために、その変数の今回の値（出力）自身が必要となる場合が生じる。これは、関数ｆに対し、y＝ｆ（u,y）を満足するyを求める場合に、ｙ含まない関数によってｙを表せるように式の変形を行うのと同じように、入出力関係を明確にしたブロック図に変形する必要がある。このように変形したブロック図が、上流側から下流側（歩容出力側）に向かって順に実行される。
【０４５２】
Ｓ０３８では、まず、上記のごとく得られた単純化モデル歩容の目標上体姿勢角（以降、単純化モデル上体姿勢角と呼ぶ）、目標上体水平位置（以降、単純化モデル上体水平位置と呼ぶ）、目標重心位置、目標足平位置姿勢、目標腕姿勢などの運動を表す変数（これを運動変数と呼ぶ）の瞬時値と、目標ＺＭＰの瞬時値とが前記逆動力学フルモデル（逆フルモデル）２０１に入力される。入力された運動変数で表される運動に釣り合う（すなわち運動によってフルモデルが発生する）床反力水平成分と目標ＺＭＰまわりの床反力モーメントが、逆フルモデル２０１の演算処理によって算出される。なお、単純化モデル歩容における目標ＺＭＰまわりの床反力モーメント水平成分は０であるので、逆フルモデル２０１によって算出される目標ＺＭＰまわりの床反力モーメント水平成分は、単純化モデル歩容の誤差としての意味を持つものである。なお、逆フルモデル２０１により求められた床反力水平成分と床反力モーメント水平成分をそれぞれ「フルモデル床反力水平成分」、「フルモデル床反力モーメント」と呼ぶ。また、以降、しばしば、フルモデル床反力水平成分をFfull、フルモデル床反力モーメントをMfullと略す。
【０４５３】
また、前記逆フルモデル２０１は、目標重心位置を満足する上体鉛直位置を算出する。さらに、図示は省略しているが、逆フルモデル２０１は、重心水平位置も算出する。
【０４５４】
補足すると、フルモデルには目標全体重心鉛直位置を入力しており、また目標床反力鉛直成分は目標全体重心鉛直位置の２階微分値から求められるので、フルモデルには、特に目標床反力鉛直成分を入力する必要はない。冗長であっても演算を減らすためなどの理由で、フルモデルに目標床反力鉛直成分を入力しても良い。
【０４５５】
ここで、歩容補正に用いられる摂動モデルについて説明する。
【０４５６】
摂動モデルは、上体水平位置補正用摂動モデル２０２および上体姿勢角補正用摂動モデル２０３から成る。尚、摂動モデルは、このようにふたつのモデルに分離しないで、図１１のようなひとつのモデルにしても良い。
【０４５７】
上体水平位置補正用摂動モデル２０２は、前記上体並進モードにおける床反力の摂動と上体水平位置の摂動との関係を表す。
【０４５８】
上体水平位置補正用摂動モデル２０２は、目標床反力モーメント水平成分の補正量を入力し、これに動力学的に釣り合う目標上体水平位置の補正量を算出する。この入力（目標床反力モーメント水平成分の補正量）を、上体水平位置補正用摂動モデルモーメントMpと呼ぶ。また、上体水平位置補正用摂動モデル２０２の出力（目標上体水平位置の補正量）を、補正用摂動モデル上体水平位置Xcと呼ぶ。また、上体水平位置補正用摂動モデル２０２が発生する床反力水平成分を上体水平位置補正用摂動モデル床反力水平成分Fpと呼ぶ。
【０４５９】
上体水平位置補正用摂動モデル２０２は、図４３のように、支点と倒立振子質点（上体質点）とこれらを結合する伸縮自在な支持棒から成る倒立振子で表される。支点の水平位置は前記した今回歩容の支持脚座標系の原点の水平位置に一致し、支点の鉛直位置は目標ＺＭＰの鉛直位置に一致するように支点の位置が設定されている。倒立振子質点の質量mbは、図１１に示す前記単純化モデル（３質点＋フライホイールのモデル）の上体質点質量と同じである。倒立振子質点の鉛直位置Zcは、単純化歩容に対応する図１１に示す単純化モデルの上体質点位置の鉛直位置Zbと同一とする。
【０４６０】
この上体水平位置補正用摂動モデル２０２は、前記単純化モデル（３質点モデル）の動力学方程式の式a８、式a９、式a１０において、床反力モーメント水平成分の摂動ΔMyと上体質点水平位置の摂動ΔXbの関係を表す。
【０４６１】
そこで、My、Xb、Zb以外は定数とみなして、床反力モーメント水平成分の摂動ΔMyと上体質点水平位置の摂動ΔXbの関係を式a１０から求めると、次式が得られる。
【０４６２】
0003679105.tif 000018
同様に、Fx、Xb以外は定数とみなして、床反力水平成分の摂動ΔFxと上体質点水平位置の摂動ΔXbの関係を式a９から求めると、次式が得られる。
【０４６３】
ΔFx = mb*d2ΔXb/dt2      …式a１３
上体水平加速度によって発生するΔMｐとΔFpの比である前記上体並進モード床反力比率ｈは、式a１２右辺のうちの上体水平加速によって発生する項（すなわち第２項）と式a１３の右辺との比であるから、次式が得られる。
【０４６４】
h = (Zb−Zzmp)        …式a１４
すなわち、上体並進モード床反力比率ｈは、単純化モデルの上体質点（倒立振子質点）の支点からの高さに相当する。
【０４６５】
よって、式a１２と式a１４より次式が得られる。
【０４６６】
ΔMy =−mb*ΔXb*(g+d2Zb/dt2) + mb*h*d2ΔXb/dt2    …式a１５
一方、上体質点（倒立振子質点）に作用する重力と慣性力との合力の並進力鉛直成分に釣り合う床反力鉛直成分を上体床反力鉛直成分Fbzと呼ぶ。すなわち、上体床反力鉛直成分Fbzは、次式で定義される。
【０４６７】
Fbz = mb*(g+d2Zb/dt2)        …式a１６
式ａ８より、上体床反力鉛直成分Fbzは次式となる。
【０４６８】
0003679105.tif 000019
言い換えると、上体床反力鉛直成分は、床反力鉛直成分Fzと図１１に示す前記単純化モデル（３質点＋フライホイールのモデル）の両脚質点に作用する重力と慣性力との合力の並進力鉛直成分との和に等しい。
【０４６９】
式a１６を式a１５に代入することにより、次式が得られる。
【０４７０】
ΔMy =−Fbz*ΔXb + mb*h*d2ΔXb/dt2          …式a１８
式a１８のΔMyを上体水平位置補正用摂動モデルモーメントMp、ΔXbを補正用摂動モデル上体水平位置Xcに対応させることにより（式a１８のΔMyに上体水平位置補正用摂動モデルモーメントMp、ΔXbに補正用摂動モデル上体水平位置Xcを代入することにより）、次式が得られる。
【０４７１】
Mp =−Fbz*Xc + mb*h*d2Xc/dt2            …式a１９
すなわち、上体水平位置補正用摂動モデル２０２は、式a１４によって求められる上体並進モード床反力比率ｈと式a１７によって求められる上体床反力鉛直成分Fbzを用いて、式a１９で表される。
【０４７２】
また、式a１３のΔFxを上体水平位置補正用摂動モデル床反力水平成分Fpに対応させることにより、次式が得られる。
【０４７３】
Fp = mb*d2Xc/dt2              …式a２０
すなわち、式a１４、式a１７、式a１９、式a２０によって上体水平位置補正用摂動モデル２０２が記述される。
【０４７４】
補足すると、ここでは、上体質点位置の摂動と上体位置（上体代表点位置）の摂動は一致するものとみなしているが、厳密には、一致するとは限らない。従って、Mp、FpとXcの関係を求めるためには、さらに上体質点水平位置と上体位置の幾何学的関係を表すモデルが必要である。
【０４７５】
一方、上体姿勢角補正用摂動モデル２０３は、前記上体回転モードにおける床反力の摂動と上体姿勢角の摂動の関係を表す。
【０４７６】
上体姿勢角補正用摂動モデル２０３は、床反力モーメント水平成分の補正量が入力され、これに動力学的に釣り合う目標上体姿勢角の補正量を算出する。この入力（床反力モーメント水平成分の補正量）を、上体姿勢角補正用摂動モデルモーメントMrと呼ぶ。また、上体姿勢角補正量摂動モデル２０３の出力（目標上体姿勢角の補正量）を補正用摂動モデル上体姿勢角θcと呼ぶ。また、上体姿勢角補正用摂動モデルが発生する床反力水平成分を上体水平位置補正用摂動モデル床反力水平成分Frと呼ぶ。Frは前述したごとく０である。すなわち、次式が常に成立する。
【０４７７】
Fr = 0            …式a２１
上体姿勢角補正用摂動モデル２０３は、図４４のように、フライホイールFHで表される。フライホイールのイナーシャは、図１１に示した前記単純化モデル（３質点モデル＋フライホイール）のフライホイールFHと同じである。この上体姿勢角補正用摂動モデル２０３のフライホイールの回転角度が補正用摂動モデル上体姿勢角θc、そのフライホイールによって発生する床反力モーメント水平成分が上体姿勢角補正用摂動モデルモーメントMrに相当する。
【０４７８】
この上体姿勢角補正用摂動モデル２０３は、前記単純化モデル（３質点＋フライホイールのモデル）の動力学方程式の前記式a１０において、床反力モーメント水平成分の摂動ΔMyと上体姿勢角の摂動Δθbの関係を表している。
【０４７９】
そこで、My、θb以外は定数とみなして、床反力モーメント水平成分の摂動ΔMyと上体姿勢角の摂動Δθbの関係を式a１０から求めると、次式が得られる。
【０４８０】
ΔMy = J*d2Δθb/dt2            …式a２２
式a２２のΔMyを上体姿勢角補正用摂動モデルモーメントMr、Δθbを補正用摂動モデル上体姿勢角θcに対応させることにより、次式が得られる。
【０４８１】
Mr = J*d2Δθc/dt2              …式a２３
すなわち、上体姿勢角補正用摂動モデル２０３は、式a２３で表される。また、上体水平位置補正用摂動モデル床反力水平成分Frは上記したごとく式a２１のようになる（Ｆr＝０）。
【０４８２】
後述するように、Ｓ０３８では、最終的に、補正歩容（より詳しくは、単純化モデル歩容の一部の瞬時値を補正した目標瞬時値）が生成（出力）される。補正歩容の目標上体姿勢角（これを以降、補正目標上体姿勢角と呼ぶ）は、前記求めた単純化モデル上体姿勢角の瞬時値（Ｓ０３２で求めた今回歩容の現在時刻ｔでの目標上体姿勢角の瞬時値）に前記補正用摂動モデル上体姿勢角θc（現在時刻ｔの制御周期で求められる値）を演算部２０４で加えることにより得られる。補正歩容の目標上体水平位置（これを以降、補正目標上体水平位置と呼ぶ）は、前記求めた単純化モデル上体水平位置の瞬時値（Ｓ０３２で求めた今回歩容の現在時刻ｔでの目標上体水平位置の瞬時値）に補正用摂動モデル上体水平位置Xc（現在時刻ｔの制御周期で求められる値）を演算部２０５で加えることにより得られる。
【０４８３】
補正歩容の目標床反力も修正される。具体的には、目標ＺＭＰまわりの床反力モーメント水平成分が０でなくなり、補正目標床反力モーメント水平成分が目標値として出力される。したがって、目標ＺＭＰは本来の意味（床反力モーメント水平成分が０である点という意味）を持たなくなる。
また、目標床反力水平成分も、補正目標床反力水平成分に修正され、出力される。
【０４８４】
上記のごとく、補正歩容の運動は、単純化モデル歩容の運動に摂動モデルの運動（詳しくは上体位置姿勢補正用摂動モデルと上体姿勢角補正用摂動モデルの運動）を加えた（合成した）運動である。
【０４８５】
一般に、ある基準運動に、ある摂動運動を加えた運動が発生する床反力は、基準運動が発生する床反力（運動によって発生する重力と慣性力に釣り合う床反力）と摂動運動によって発生する床反力の摂動分の和で近似される。
【０４８６】
したがって、補正歩容の運動によって発生する床反力（厳密には、補正歩容の運動によって発生する床反力を、逆フルモデル２０１を用いて算出した値）は、逆フルモデル２０１の床反力（単純化モデル歩容の運動によって発生する床反力を、逆フルモデル２０１を用いて算出した値）に上体水平位置補正用摂動モデル２０２の入力モーメント（前記上体水平位置補正用摂動モデルモーメントMp）と上体姿勢角補正用摂動モデル２０３の入力モーメント（前記上体姿勢角補正用摂動モデルモーメントMr）とを加えたものとなる。
【０４８７】
補正歩容が、動力学的平衡条件を精度良く満足するということは、補正歩容の運動によって発生する床反力（詳しくは補正歩容の運動によって逆フルモデル２０１上で発生する床反力）が、補正目標床反力とほぼ一致することであるから、この条件を満足するためには、以下のふたつの式を満足しなければならない。
【０４８８】
0003679105.tif 000020
また、補正歩容の真のＺＭＰは、補正目標床反力モーメント水平成分を目標床反力鉛直成分で割った値だけ、単純化モデル歩容の目標ＺＭＰ（理想目標ＺＭＰ）からずれた点に変更される。
【０４８９】
0003679105.tif 000021
尚、補正歩容の真のＺＭＰのX方向（前後方向）成分を算出する場合には、補正目標床反力モーメントのY軸（左右方向軸）まわり成分を用いる。また、補正歩容の真のＺＭＰのY方向成分を算出する場合には、補正目標床反力モーメントのX軸（前後軸）まわり成分を用いる。ただし、補正歩容の真のＺＭＰのY方向成分を算出する場合には、式７の右辺の「＋」は「−」にしなければならない。
【０４９０】
式７から求められる補正歩容の真のＺＭＰは、ＺＭＰ許容範囲内になければならない。これをＺＭＰ制約条件と呼ぶ。
【０４９１】
また、補正目標床反力水平成分は、歩容補正用の床反力水平成分許容範囲内になければならない。これを床反力水平成分制約条件と呼ぶ。
【０４９２】
以上のように、補正歩容は、式５、式６、ＺＭＰ制約条件（式７から得られる補正歩容の真のＺＭＰの存在範囲条件）および床反力水平成分制約条件を満足しなければならない。
【０４９３】
しかし、単に、これらの式や条件を満足するだけでは、前記補正用摂動モデル上体位置と前記補正用摂動モデル上体姿勢角が発散してしまう。
【０４９４】
そこで、前記上体水平位置補正用摂動モデル２０２と前記上体姿勢角補正用摂動モデル２０３の状態量（より具体的には、補正用摂動モデル上体水平位置速度、補正用摂動モデル上体姿勢角・角速度など）を基に、これらの状態量がある所定の状態に収束する（安定する）ように、補正用摂動モデル２０２，２０３の安定化制御を行う。
【０４９５】
まず、上体水平位置補正用摂動モデル２０２の安定化制御について詳細を説明する。
【０４９６】
先に本出願人が提案した特願２００１−１３３６２１号では、倒立振子型の摂動モデルを用い、補正歩容の瞬間姿勢を基にフルモデルを用いて計算される重心水平位置XGfを、単純化モデル歩容の瞬間姿勢を基に単純化モデルを用いて計算される重心水平位置XGsに収束させる制御則を持ち、その制御則で決定されたフィードバック量（フィードバック操作量）を上体水平位置補正用摂動モデルに付加的に入力していた。
【０４９７】
具体的には、式８で与えられる目標整定位置に収束するように式９の制御則が与えられていた。ただし、mtotalは前記ロボット総重量、mbは前記上体質点質量（倒立振子質量）であり、XGfは、単純化モデル歩容の瞬間姿勢を基にフルモデルを用いて計算される重心水平位置、すなわち、前記逆フルモデルが算出する重心水平位置である。また、Kp、Kvはフィードバック制御のゲインである。
【０４９８】
0003679105.tif 000022
尚、補足すると、実際にコンピュータ上で計算を実行する時には、上記右辺の変数の値には、前回値が用いられる。以降の制御則でも同様である。
【０４９９】
本出願人が今回提案するフルモデル補正手法に用いられる上体水平位置補正用摂動モデルは、非線形性は強いものの、前述のごとく、倒立振子型のモデルであるという点では、先に本願出願人が提案した特願２００１−１３３６２１号に用いられる上体水平位置補正用摂動モデルと類似している。
【０５００】
そこで、今回提案するフルモデル補正手法でも、目標整定位置は同様に決定し、目標整定位置に収束させるための制御則だけを変更することとする。
【０５０１】
上体水平位置補正用摂動モデル２０２を目標整定位置に収束（安定）させるための制御則を上体水平位置補正用摂動モデル制御則２０６と呼び、この制御則が決定するフィードバック量（操作量）を上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdと呼ぶ。ここで「要求値」を付けたのは、後述するように、真のＺＭＰが前記ＺＭＰ許容範囲内に存在し、かつ、床反力水平成分が床反力水平成分許容範囲内になるように、上記制御則で決定された値に制限が加えられて修正されるからである。制限が加えられて修正されたモーメントを、上体水平位置補正用摂動モデル安定化モーメントMpfと呼ぶ。
【０５０２】
上体水平位置補正用摂動モデル制御則２０６には、式９の代わりに、次式を用いれば良い。
【０５０３】
0003679105.tif 000023
ただし、Kpp、Kpvはフィードバック制御のゲインである。
【０５０４】
上体水平位置補正用摂動モデル２０２の説明で述べたごとく、上体質点（倒立振子質点）には鉛直方向に上体床反力鉛直成分Fbzが作用している。このため、上体質点には、上体質点位置が原点（支点位置）からずれていくと、ますますずれようとするモーメントが作用する。式１０の右辺第３項は、それを打ち消すためのモーメントである。
【０５０５】
上体水平位置補正用摂動モデル安定化モーメント要求値MpfdmdのX軸（前後方向軸）まわり成分を求める場合には、補正用摂動モデル上体水平位置速度および目標整定位置はY軸方向（左右方向）成分を用いる。
【０５０６】
上体水平位置補正用摂動モデル安定化モーメント要求値MpfdmdのY軸（左右方向軸）まわり成分を求める場合には、補正用摂動モデル上体水平位置速度および目標整定位置はX軸方向（前後方向）成分を用い、右辺第３項の「−」を「+」に代える。
【０５０７】
尚、目標整定位置は、０（倒立振子支点の水平位置）にしても良い。また、上体水平位置補正用摂動モデル制御則２０６は、先に本出願人が提案した特願２００１−１３３６２１号に述べたような各種方法のいずれかにしても良い。また、それら以外でも、少なくとも上体水平位置補正用摂動モデル２０２の状態量のいずれか（より具体的には補正用摂動モデル上体水平位置速度など）を基に、この状態量がある所定の状態に収束する（安定する）ように、上体水平位置補正用摂動モデルの安定化制御則２０６を決定すれば良い。
【０５０８】
次に、上体姿勢角補正用摂動モデル２０３の安定化制御について詳細を説明する。
【０５０９】
目標瞬時値発生部１００ｂが出力する基準上体姿勢角（図３７のＳ９０４で求められたもの）あるいは単純化モデルによる目標上体姿勢角（図３７のＳ９１４で求められたもの）に、補正目標上体姿勢角、すなわち、単純化モデルによる目標上体姿勢角に補正用摂動モデル上体姿勢角を加えたものが整定あるいは追従するように、上体姿勢角補正用摂動モデル２０３の状態に応じて、ＰＩ制御などのフィードバック制御則によってフィードバック量（操作量）を決定し、これを上体姿勢角補正用摂動モデル２０３に付加的に入力する。
【０５１０】
この制御則を上体姿勢角補正用摂動モデル制御則２０７と呼び、このフィードバック量（操作量）を上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdと呼ぶ。ここで「要求値」を付けたのは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdと同様の理由からである。制限が加えられて修正されたモーメントを、上体姿勢角補正用摂動モデル安定化モーメントMrfと呼ぶ。
【０５１１】
上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdを決定する上体姿勢角補正用摂動モデル制御則２０７は、具体的には、次式のようにすれば良い。
【０５１２】
0003679105.tif 000024
ただし、Krp、Krvはフィードバック制御のゲインである。
【０５１３】
なお、式１１において、（基準上体姿勢角−単純化モデルによる目標上体姿勢角）の代わりに０としてもよい。
【０５１４】
再び、図４２の機能ブロック図を用いてＳ０３８の処理を説明すると、上記のごとく、前記上体水平位置補正用摂動モデル制御則２０６（式１０）によって上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdが求められる。また、前記上体姿勢角補正用摂動モデル制御則２０７（式１１）によって上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdが求められる。
【０５１５】
次いで、上体水平位置補正用摂動モデル安定化モーメントMpfが０であったと仮定した場合の上体位置補正用摂動モデルの床反力推定（算出）値F0がF0演算部２０８により求められる。後述するように、上体水平位置補正用摂動モデル２０２には、フルモデル床反力モーメントMfullに、上体水平位置補正用摂動モデル安定化モーメントMpfを加えられたものが入力される。したがって、F0は、上体水平位置補正用摂動モデル２０２にフルモデル床反力モーメントMfullの符号を反転させたものだけが入力された場合に上体水平位置補正用摂動モデル２０２が発生する床反力である。
【０５１６】
具体的には、次式によってF0が求められる。
【０５１７】
F0＝mb*d2Xc/dt2−1/h * Mpf              …式１２
右辺第１項は、前回（時刻ｔ−Δｔ）の上体水平位置補正用摂動モデル２０２の床反力水平成分を表す。
【０５１８】
右辺第２項は、前回の上体水平位置補正用摂動モデル安定化モーメントMpfによって、上体水平位置補正用摂動モデル２０２に直接的に発生した（すなわち直達項の）床反力水平成分を表す。
【０５１９】
すなわち、上体水平位置補正用摂動モデル２０２の前回の上体質点水平加速度に上体質点の質量mbを乗じた値から、前回の上体水平位置補正用摂動モデル安定化モーメントMpfを上体並進モード床反力比率ｈで割った値を減じることによって、Mpfが０であったと仮定した場合の上体位置補正用摂動モデルの床反力F0の推定値が求められる。
【０５２０】
次に、前記制約（床反力水平成分制約条件およびＺＭＰ制約条件）を無視して、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致させ、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfを、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致させたと仮定した場合に、目標ＺＭＰまわりに発生する床反力モーメント水平成分MinがMin演算部２０９により求められる。この床反力モーメント水平成分を無制限時補正目標床反力モーメントMinと呼ぶ。無制限時補正目標床反力モーメントMinは、次式によって求められる。
【０５２１】
Min = Mpfdmd + Mrfdmd              …式１３
すなわち、無制限時補正目標床反力モーメントMinは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdを加算することにより得られる。
【０５２２】
式１３が成立することを証明する。後述するように、上体水平位置補正用摂動モデルモーメントMpは、上体水平位置補正用摂動モデル安定化モーメントMpfからフルモデル床反力モーメントMfullを減じた値と決定され、上体姿勢角補正用摂動モデルモーメントMrは、Mrfと決定される（後述の式２２、式２３を参照）。
【０５２３】
したがって、式５によって得られる補正目標床反力モーメント水平成分は次式のようになる。
【０５２４】
補正目標床反力モーメント水平成分＝  Mpf + Mrf          …式１４
よって、式１４において、上体水平位置補正用摂動モデル安定化モーメントMpfに上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdを代入し、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfに上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdを代入することで、前記式１３が得られる。
【０５２５】
次いで、前記制約（床反力水平成分制約条件およびＺＭＰ制約条件）を無視して、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致させ、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfを、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致させた場合に、発生する床反力水平成分FinがFin演算部２１０により求められる。この床反力水平成分を無制限時補正目標床反力水平成分Finと呼ぶ。
【０５２６】
補正目標床反力水平成分は、前記式６によって得られるが、前述のごとく、上体姿勢角補正用摂動モデル２０３の挙動によって上体姿勢角補正用摂動モデル２０３には床反力水平成分は発生しない、すなわちFrは０である。したがって、無制限時補正目標床反力水平成分Finは、上体水平位置補正用摂動モデル安定化モーメントMpfが０であったと仮定した場合の補正目標床反力水平成分に、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに変更したことによって増加する床反力水平成分を加えたものになる。
【０５２７】
ところで、上体水平位置補正用摂動モデル安定化モーメントMpfを０から上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに変更したことによって増加する床反力水平成分は、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdを上体並進モード床反力比率ｈで割った値になる。
【０５２８】
したがって、無制限時補正目標床反力水平成分Finは、前記式１５に示すように、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdを上体並進モード床反力比率ｈで割った値に、前記求めたフルモデル床反力水平成分Ffullを加算し、さらに、上体水平位置補正用摂動モデル安定化モーメントMpfが０であったと仮定した場合の上体位置補正用摂動モデルの床反力の算出値F0を加算することによって得られる。
【０５２９】
Fin = 1/h * Mpfdmd + Ffull + F0          …式１５
次いで、後に詳説する制限手段によって、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとから、これらに制限を加えた値である（目標ＺＭＰまわりの）制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdが制限処理部２１１により決定される。後述するように、補正歩容の（ＺＭＰまわりの）床反力モーメント水平成分は制限補正目標床反力モーメントMltdに一致し、補正歩容の床反力水平成分は制限補正目標床反力水平成分Fltdに一致する（後述の式２６，式２７の証明を参照）。
【０５３０】
制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとは、補正歩容の真のＺＭＰが前記ＺＭＰ許容範囲内に存在し、かつ、補正歩容の床反力水平成分が床反力水平成分許容範囲内になるように決定される。すなわち、MltdおよびFltdはＺＭＰ制約条件および床反力水平成分制約条件を満足するように決定される。
【０５３１】
また、上記制約条件下で、上体水平位置補正用摂動モデル安定化モーメントMpは、可能な限り、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致または近い値になるように決定される。同様に、上体姿勢角補正用摂動モデル安定化モーメントMrは、可能な限り上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致または近い値になるように決定される。これにより、前記補正用摂動モデル上体位置Xcと前記補正用摂動モデル上体姿勢角θcとを安定化し、発散することを防止する。
【０５３２】
次いで、以下の式により、上体水平位置補正用摂動モデル安定化モーメントMpf、および上体姿勢角補正用摂動モデル安定化モーメントMrfがそれぞれMpf演算部２１２、Mrf演算部２１３により求められる。
【０５３３】
Mpf = (Fltd−Ffull−F0)*h        …式２０
Mrf = Mltd−Mpf                …式２１
すなわち、Mpf演算部２１２では、制限補正目標床反力水平成分Fltdから、フルモデル床反力水平成分Ffullを減じ、Mpが０であったと仮定した場合の上体位置補正用摂動モデル２０２の床反力の算出値F0を減じた値に、上体並進モード床反力比率ｈを乗じることにより、前記上体水平位置補正用摂動モデル安定化モーメントMpfが得られる。また、Mrf演算部２１３では、目標ＺＭＰまわりの制限補正目標床反力モーメントMltdから前記上体水平位置補正用摂動モデル安定化モーメントMpfを減じることにより、上体姿勢角補正用摂動モデル安定化モーメントMrfが得られる。
【０５３４】
次いで、以下の式により、上体水平位置補正用摂動モデル床反力モーメントMp、および上体姿勢角補正用摂動モデル床反力モーメントMrが求められる。
【０５３５】
Mp = Mpf−Mfull      …式２２
M r = Mrf              …式２３
すなわち、Mp演算部２１４にて、上体水平位置補正用摂動モデル安定化モーメントMpfからフルモデル床反力モーメントMfullを減じることにより、上体水平位置補正用摂動モデル床反力モーメントMpが得られる。また、上体姿勢角補正用摂動モデル床反力モーメントMrは、上体姿勢角補正用摂動モデル安定化モーメントMrfと同一の値とされる。
【０５３６】
次いで、上体水平位置補正用摂動モデル床反力モーメントMpが上体位置補正用摂動モデル２０２に入力され、その入力された床反力モーメントに釣り合う補正用摂動モデル上体位置Xcが算出される。
【０５３７】
また、上体姿勢角補正用摂動モデル床反力モーメントMrが上体姿勢角補正用摂動モデル２０３に入力され、その入力された床反力モーメントに釣り合う補正用摂動モデル上体姿勢角θcが算出される。
【０５３８】
次いで、演算部２０５，２０４にて、それぞれ次式２４、式２５に従って、補正目標上体水平位置と補正目標上体姿勢角とが決定され、これらがそれぞれ上体水平位置姿勢の最終的な目標瞬時値として出力される。
【０５３９】
0003679105.tif 000025
すなわち、単純化モデル上体水平位置に補正用摂動モデル上体位置Xcを加えることにより補正目標上体水平位置が得られ、これが出力される。また、単純化モデル上体姿勢角に補正用摂動モデル上体姿勢角θcを加えることにより補正目標上体姿勢角が得られ、これが出力される。
【０５４０】
また、目標ＺＭＰまわりの補正目標床反力モーメント水平成分として制限補正目標床反力モーメントMltdが出力されると共に、補正目標床反力水平成分として制限補正目標床反力水平成分Fltdが出力される。
【０５４１】
すなわち、次式２６、式２７に従って、補正目標床反力水平成分と目標ＺＭＰまわりの補正目標床反力モーメント水平成分とがそれぞれ、床反力水平成分および床反力モーメント水平成分（目標ＺＭＰまわりのモーメント水平成分）の最終的な目標瞬時値として決定され、これらが出力される。
【０５４２】
0003679105.tif 000026
以上のごとく、Ｓ０３８の歩容補正が行われる。
【０５４３】
以上のように上体水平位置を補正上体水平位置に修正し、上体姿勢角を補正上体姿勢角に修正した歩容（補正歩容）に対し、動力学的平衡条件（逆フルモデル２０１上での動力学的平衡条件）をほぼ満足する補正目標床反力水平成分と目標ＺＭＰまわりの補正目標床反力モーメント水平成分とが式２６、式２７によって求められることを、以下に証明する。
【０５４４】
式２０、式２１，式２２、式２３を式５の左辺に代入することにより、動力学的平衡条件を満足するための補正目標床反力モーメント水平成分は、Mltdとなる。すなわち、式２６によって動力学的平衡条件を満足するための補正目標床反力モーメント水平成分が求められることが証明された。
【０５４５】
一方、式a２０、式a２１、式１２、式２０を式６の左辺に代入することにより、次式で展開されるごとく、動力学的平衡条件を満足するための補正目標床反力水平成分は、Fltdとなる。すなわち、式２７によって動力学的平衡条件を満足するための補正目標床反力水平成分が求められることが証明された。
【０５４６】
0003679105.tif 000027
尚、補足すると、第１実施形態は、フィードフォワード型の補正であり、また、摂動動力学モデルは厳密モデルではない。このため、上記のごとく式５および式６を満足するように歩容を補正しても、厳密には、動力学平衡条件を満足するするわけではなく、近似的に動力学平衡条件を満足する。
【０５４７】
次に、前述の制限手段の詳細、すなわち制限処理部２１１の処理の詳細を説明する。
【０５４８】
制限手段（制限処理部２１１）では、前述した機能を持たせるために、以下の処理が行われる。
【０５４９】
まず、目標瞬時値発生部１００ｂが決定したＺＭＰ許容範囲の瞬時値、すなわち前記図１３のＳ０３６で決定されたＺＭＰ許容範囲の瞬時値が、目標ＺＭＰまわりの床反力モーメント水平成分許容範囲の瞬時値に変換される。
【０５５０】
具体的には、次式の関係を用いて床反力モーメント水平成分許容範囲が求められる。
【０５５１】
0003679105.tif 000028
ただし、式３２においては、変数はすべてベクトルである。床反力鉛直成分ベクトルは、鉛直成分以外の成分を０にした並進床反力ベクトルである。また、「*」は外積を意味する。
【０５５２】
ＺＭＰ許容範囲は、支持多角形に応じて決定されるべきで、一般的には、複雑な形状になるが、ここでは、演算を簡素化するために、床面上の長方形の領域とする。すなわち、ＺＭＰ許容範囲、ひいては、これを床反力モーメント水平成分に変換してなる床反力モーメント水平成分許容範囲が、前後方向（X軸方向）成分と左右方向（Y軸方向）成分それぞれ独立に範囲が設定される。
【０５５３】
例えば、支持多角形と目標ＺＭＰが図４５のような状況にある場合には、図示のごとく、ＺＭＰ許容範囲は支持多角形に内包されるように設定される。また同時に、ＺＭＰ許容範囲は目標ＺＭＰを内包するように設定される。なお、図４５の例での支持多角形は、歩行歩容における両脚支持期のものであり、両端の長方形部分が各脚体２の足平２２の接地面（床面との接触面）を表している。
【０５５４】
歩行歩容あるいは走行歩容における片脚支持期では、支持多角形は、支持脚足平２２の接地面（床面との接触面）である。この場合においては、ＺＭＰ許容範囲は、目標ＺＭＰを内包しつつ、該支持多角形に内包され、もしくは、その支持多角形とほぼ一致するように設定される。また、走行歩容の空中期では、ＺＭＰ許容範囲は、例えば目標ＺＭＰを中心として、Ｘ軸、Ｙ軸両方向に幅が０の領域、すなわち、目標ＺＭＰそのものの点（これは面積が０の領域を意味する）に設定される。
【０５５５】
歩容補正用の床反力水平成分許容範囲も、前後方向（X軸方向）成分と左右方向（Y軸方向）成分それぞれ独立に範囲が設定される。この場合、単純化モデル歩容用の床反力水平成分許容範囲と同様、Ｘ軸方向、Ｙ軸方向の各軸方向について、例えば前記式ｃ１２に基づいて設定される。なお、この場合、先にも述べた如く、床反力水平成分許容範囲は、単純化モデル歩容用の許容範囲よりも狭くする等して、確実に摩擦限界内に収まるように設定することが好適である。
【０５５６】
ＺＭＰ制約条件と床反力水平成分制約条件とを考慮せず、動力学的平衡条件（特に、重力と慣性力の合力が目標ＺＭＰまわりに作用するモーメントの水平成分が０であること）だけを満足する歩容の運動は、サジタルプレーン上での運動と、ラテラルプレーン上での運動とに分離して、それぞれを動力学的平衡条件を満足するように生成してから合成しても、動力学的平衡条件を近似的に満足することが知られている。また、以上のごとくＺＭＰ許容範囲と歩容補正用の床反力水平成分許容範囲とを設定することにより、ＺＭＰ制約条件および床反力水平成分制約条件も、サジタルプレーン上での制約条件とラテラルプレーン上での制約条件とに分離できる。したがって、ＺＭＰ制約条件、床反力水平成分制約条件および動力学的平衡条件のすべてを考慮した歩容の運動も、サジタルプレーン上での運動と、ラテラルプレーン上での運動とに分離して運動を生成し、後に合成することができる。
【０５５７】
そこで、以下では、理解を容易にするために、サジタルプレーン上の運動に限定して制限手段の動作を説明するが、ラテラルプレーン上での運動に関しても同様である。
【０５５８】
以上のように簡単化することにより、補正歩容の床反力モーメント水平成分が床反力モーメント水平成分許容範囲内に存在すること（このことは補正歩容の運動による真のＺＭＰが前記ＺＭＰ許容範囲に存在することを意味する）は、次式で表現される。ただし、Mmaxは床反力モーメント水平成分許容範囲の上限値、Mminは下限値である。
【０５５９】
0003679105.tif 000029
また、補正歩容の床反力水平成分が歩容補正用の床反力水平成分許容範囲内に存在することは、次式で表現される。ただし、Fmaxは床反力水平成分許容範囲の上限値、Fminは下限値である。
【０５６０】
Fmax≧ 補正歩容の床反力水平成分 ≧ Fmin        …式３４
また、前述したように補正歩容の床反力モーメント水平成分は制限補正目標床反力モーメントMltd、補正歩容の床反力水平成分は制限補正目標床反力水平成分Fltdに一致またはほぼ一致する。
【０５６１】
したがって、式３３および式３４は、近似的にそれぞれ次式３５および式３６に変換される。
【０５６２】
Mmax≧ Mltd ≧ Mmin        …式３５
Fmax≧ Fltd ≧ Fmin          …式３６
図４６に示す、横軸に床反力水平成分のX軸まわり成分（前後軸まわり成分）、縦軸に床反力モーメントのY軸まわり成分（左右軸まわり成分）をとった座標系において、制限補正目標床反力水平成分Fltdと制限補正目標床反力モーメントMltdの組（Fltd，Mltd）を座標系上の点とすると、式３５、式３６を満足する点の集合（許容範囲）は、図４６の長方形の境界およびその内部である。
【０５６３】
図４６の白丸（同図では、白丸と後述の黒丸とが重なっている）のように、無制限時補正目標床反力モーメントMinが床反力モーメント水平成分許容範囲内に存在し、かつ、無制限時補正目標床反力水平成分Finが床反力水平成分許容範囲内に存在している場合、すなわち、床反力モーメント水平成分許容範囲と床反力水平成分許容範囲で囲まれた長方形の範囲内に点（Fin，Min）が存在している場合には、同図の黒丸で示す如く、Mltdは無制限時補正目標床反力モーメントMinにし、Fltdは無制限時補正目標床反力水平成分Finにする。当然のごとく、このようにするだけで、式３５と式３６が成立する。すなわち、補正歩容の床反力モーメント水平成分が床反力モーメント水平成分許容範囲内に存在し、かつ補正歩容の床反力水平成分が床反力水平成分許容範囲内に存在する。しかも、無制限時補正目標床反力モーメントMin、無制限時補正目標床反力水平成分Finに制限をかけずに（修正せずに）そのままMltd、Fltdとして出力されるので、前記補正用摂動モデル上体位置と前記補正用摂動モデル上体姿勢角を適切に安定化し、発散を防止することができる。
【０５６４】
図４７〜図４９の白丸のように、無制限時補正目標床反力モーメントMinが床反力モーメント水平成分許容範囲内に存在していないか、あるいは、無制限時補正目標床反力水平成分Finが床反力水平成分許容範囲内に存在していない場合、すなわち、床反力モーメント水平成分許容範囲と床反力水平成分許容範囲とで囲まれた長方形の範囲に点（Fin，Min）が存在していない場合には、次のようにMltdとFltdとが決定される。
【０５６５】
まず、MltdおよびFltdの決定法を説明する前に、その決定における方針を説明する。
【０５６６】
単に、Mltdを無制限時補正目標床反力モーメントMinにし、Fltdを無制限時補正目標床反力水平成分Finにすると、補正歩容の床反力モーメント水平成分が床反力モーメント水平成分許容範囲内に存在しない、あるいは、補正歩容の床反力水平成分が床反力水平成分許容範囲内に存在しなくなる。この時の上体水平位置補正用摂動モデル安定化モーメントMpfと上体姿勢角補正用摂動モデル安定化モーメントMrfは前記式２０および式２１において、MltdにMin、FltdにFinを代入することで得られる。補正歩容の床反力モーメント水平成分が床反力モーメント水平成分許容範囲内に存在し、かつ補正歩容の床反力水平成分が床反力水平成分許容範囲内に存在するためには、このようにして得られたMpfまたはMrfを変更する必要がある。この際、本実施形態では、Mrfが上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdにできる限り一致すること、すなわち、MrfのMrfdmdからの修正が最小になることを優先させることとする。
【０５６７】
この理由を以下に述べる。
【０５６８】
上体姿勢角補正用摂動モデル２０３で補正できる床反力モーメント水平成分は、比較的小さく、大きなモーメントを補正しようとすると、上体姿勢角が大きく変動する。したがって、逆フルモデル２０１を用いた単純化モデル歩容の補正は、できる限り上体水平位置補正用摂動モデル２０２の動きを単純化モデル歩容に加えることによって行なうことが望ましい。そして、上体水平位置補正用摂動モデル２０２の動きで補正しきれない場合に上体姿勢角補正用摂動モデル２０３の動きを単純化モデル歩容に加えることによって該単純化モデル歩容を補正するのが望ましい。故に、上体姿勢角補正用摂動モデル２０３を復元させる（基準上体姿勢角に復元させる）ことを、上体水平位置補正用摂動モデル２０２を復元させる（上体水平位置を安定な位置に復元させる）ことよりも優先するのが望ましい。すなわち、上体姿勢角補正用摂動モデル２０３を復元させるための操作量であるMrfが上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdにできる限り一致することを優先させることが望ましい。
【０５６９】
さて、Mrfが上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致するためには、式２０と式２１とにおいて、MltdにMin、FltdにFinを代入することで得られたMpfとMrfの内で、Mrfは変更されずに、Mpfだけが変更されなければならない。
【０５７０】
ここで、Fltdの変更量をΔFとし、Mltdの変更量をΔMとする。つまり、次式のようにFltdとMltdを変更するものとする。
【０５７１】
Fltd = Fin +ΔF              …式３７
Mltd = Min +ΔM            …式３８
ところで、前記式２０および式２１より、次式の関係が得られる。
【０５７２】
Mrf = Mltd−(Fltd−Ffull−F0)*h        …式３９
上記式３７〜式３９から明らかなように、次式が成立していれば、Mrfは変更されない。
【０５７３】
ΔM = ΔF * h          …式４０
以上より、ΔFおよびΔMは、上記式４０を満足しなければならない。
【０５７４】
また、その上で、Mpfが上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdにできる限り近いことが望ましいので、変更量ΔF（またはΔM）の絶対値ができる限り小さくなるように決定する。さらに式３７、式３８を用いて、FltdとMltdとを決定する。これにより、少なくとも前記補正用摂動モデル上体姿勢角θcを適切に安定化して発散を防止することができ、またその上で前記補正用摂動モデル上体水平位置Xcを可能な範囲で安定化して発散を防止することができる。
【０５７５】
このようにして決定されたFltdとMltdの組を、図４７、図４８において黒丸点（Fltd，Mltd）で表すと、黒丸点は、白丸点（Fin，Min）を通る、傾きが上体並進モード床反力比率ｈである直線と、式３５、式３６で表される許容範囲の境界との交点の内で、最も白丸点（Fin，Min）に近い点となる。
【０５７６】
補足すると、上記直線は、式３７、式３８、式４０を満足する点（Fltd，Mltd）の集合を意味する。また、白丸点の状態から、上体水平位置補正用摂動モデル安定化モーメントMpfだけを変更すると、Mltdの変更量ΔMとFltdの変更量ΔFの比が上体並進モード床反力比率ｈとなることからも、上記直線が、（Fltd、Mltd）を（Fin，Min）に一致させた状態から上体水平位置補正用摂動モデル安定化モーメントMpfだけを変更した場合の（Fltd，Mltd）の組の集合を意味することがわかる。
【０５７７】
ただし、図４９のように、式３５、式３６、式３７、式３８、式４０を満足するFltdとMltdが存在しない場合には、次のようにFltdとMltdとが決定される。この場合には、Mrを変更しないことをあきらめ、Mrの変更量ができる限り小さくなるように考慮する。
【０５７８】
そこで、式４０の代わりに式４１が用いられる。
【０５７９】
ΔM = ΔF * h + ΔMp2          …式４１
FltdとMltdは、式３５、式３６、式３７、式３８、式４１を満足するように決定される。ただし、ΔMp2が０に近いほど、Mrの変更量が小さくなるので、ΔMp2の絶対値が最小となるように決定する。また、これらの条件を満足した上で、Mpが上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdにできる限り近いことが望ましいので、ΔFの絶対値ができる限り小さくなるように決定する。これにより、少なくとも前記補正用摂動モデル上体姿勢角θcを可能な範囲で安定化して発散を防止し、またその上で、前記補正用摂動モデル上体水平位置Xcを可能な範囲で安定化して発散を防止することができる。
【０５８０】
このようにして決定されたFltdとMltdとの組を、図４９において黒丸点（Fltd，Mltd）で表すと、黒丸点は、式３５、式３６で表される許容範囲の長方形の境界線の頂点（許容範囲の上限および下限を表す４本の線の交点）のうちで（より一般的には、許容範囲の境界線上の点のうちで）、白丸点（Fin，Min）を通る、傾きが上体並進モード床反力比率ｈである直線に最も近い点となる。
【０５８１】
以上のごとく、目標ＺＭＰまわりの制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが決定される。
【０５８２】
尚、補足すると、床反力鉛直方向成分が０の時（走行歩容の空中期）には、式３５、式３６の上限値Mmax、Fmaxおよび下限値Mmin、Fminは０となるので、目標ＺＭＰまわりの制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdは共に０となる。
【０５８３】
再び図１３フロー・チャートに戻り、以上のごとくＳ０３８の処理を行った後、Ｓ０４０に進み、時刻ｔをΔｔだけ増やし、再びＳ０１４に戻り、Ｓ０１４からＳ０４０までの処理を繰り返す。
【０５８４】
図４を参照してこの実施の形態に係る歩容生成装置の動作をさらに説明すると、歩容生成装置１００において、上記したように補正歩容が生成される。補正歩容のうち、補正上体位置姿勢（軌道）と目標腕姿勢（軌道）とは、ロボット幾何学モデル（逆キネマティクス演算部）１０２に直接送られる。
【０５８５】
また、その他の目標足平位置姿勢軌道、目標全床反力中心点（即ち、目標ＺＭＰ）軌道、および目標全床反力軌道（詳細には目標床反力鉛直成分軌道、補正目標床反力水平成分軌道、目標ＺＭＰまわりの補正目標床反力モーメント軌道）は、複合コンプライアンス動作決定部１０４に直接送られると共に、目標床反力分配器１０６にも送られる。そして、該目標床反力分配器１０６にて、補正目標床反力は各足平２２Ｒ，２２Ｌに分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部１０４に送られる。
【０５８６】
複合コンプライアンス動作決定部１０４から、機構変形補償付き修正目標足平位置姿勢（軌道）がロボット幾何学モデル１０２に送られる。ロボット幾何学モデル１０２は、目標上体位置姿勢（軌道）と機構変形補償付き修正目標足平位置姿勢（軌道）を入力されると、それらを満足する両脚体２，２の１２個の関節（１０Ｒ（Ｌ）など）の関節変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の両脚体２，２の１２個の関節の変位を追従制御する。また、ロボット幾何学モデル１０２は、目標腕姿勢を満足する腕関節の変位指定（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の腕体の１０（もしくは８）個の関節の変位を追従制御する。
【０５８７】
ロボット１に生じた床反力（詳しくは実各足床反力）は前記６軸力センサ３４によって検出される。その検出値は前記した複合コンプライアンス動作決定部１０４に送られる。また、ロボット１に生じた姿勢傾斜偏差θerrx，θerry（詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向（Ｘ軸回り）の姿勢角偏差がθerrxであり、ピッチ方向（Ｙ軸回り）の姿勢角偏差がθerryである）は前記傾斜センサ３６によって検出され、その検出値は姿勢安定化制御演算部１１２に送られる。そして、該姿勢安定化制御演算部１１２にて、ロボット１の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点（目標ＺＭＰ）まわりの補償全床反力モーメントが算出される。さらに、この補償全床反力モーメント水平成分に、目標ＺＭＰまわりの前記補正目標床反力モーメント水平成分が加えられ、複合コンプライアンス動作決定部１０４に送られる。複合コンプライアンス動作決定部１０４は、入力値に基づいて補正目標床反力を修正する。具体的には、目標全床反力中心点（目標ＺＭＰ）回りに補償全床反力モーメントと補正目標床反力モーメント水平成分との和が作用するように目標床反力を修正する。
【０５８８】
複合コンプライアンス動作決定部１０４は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢（軌道）を決定する。ただしすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差（あるいは制御偏差の２乗）の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。
【０５８９】
尚、この発明の要旨は歩容生成装置１００におけるロボットの歩容生成にあり、上記した複合コンプライアンス動作決定部１０４などの構成および動作は、本出願人が先に出願した特開平１０−２７７９６９号公報などに詳細に記載されているので、説明を以上に止める。
【０５９０】
以上説明したように、本実施形態では、制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdは、補正歩容の真のＺＭＰが前記ＺＭＰ許容範囲内に存在し、かつ、補正歩容の床反力水平成分が床反力水平成分許容範囲内になるように決定される（ＺＭＰ制約条件および床反力水平成分制約条件を満足するように決定される）。
【０５９１】
また、上記制約条件下で、可能な限り、上体水平位置補正用摂動モデル安定化モーメントMpは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致または近い値になるように、上体姿勢角補正用摂動モデル安定化モーメントMrは、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致または近い値になるように決定される。これにより、前記補正用摂動モデル上体位置Xcと前記補正用摂動モデル上体姿勢角θcとを安定化し、発散することを防止する。
【０５９２】
上体姿勢角補正用摂動モデル２０３で補正できる床反力モーメント水平成分は、比較的小さく、大きなモーメントを補正しようとすると、上体姿勢角が大きく変動する。したがって、逆フルモデル２０１を用いた単純化モデル歩容の補正は、できる限り上体水平位置補正用摂動モデル２０２の動きを単純化モデル歩容に加えることによって行なわれる。そして、上体水平位置補正用摂動モデル２０２の動きによって補正しきれない場合に上体姿勢角補正用摂動モデル２０３の動きを単純化モデル歩容に加えることによって単純化モデル歩容の補正がなされることが望ましい。故に、上体姿勢角補正用摂動モデル２０３を復元させることも、上体水平位置補正用摂動モデル２０２を復元させることよりも優先するのが望ましい。すなわち、上体姿勢角補正用摂動モデル２０３を復元させるための操作量であるMrfが上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdにできる限り一致することを優先させることが望ましい。
【０５９３】
以上説明した第１実施形態と、本発明との対応関係を説明しておく。第１実施形態は、前記した本願発明のうちの第１〜第１５発明（但し第１１発明と、この第１１発明を必要要件とする発明を除く。以下、特に第１１発明に言及しない限り同様とする）に対応している。この場合、これらの第１〜第１５発明の許容範囲設定手段には、図１３のフローチャートのＳ０３０、Ｓ０３６の処理が対応しており、並進床反力水平成分とＺＭＰ（真のＺＭＰ）とを制限対象量として、それらの許容範囲が設定される。また、第１〜第１５発明の仮瞬時値決定手段には、図１３のフローチャートのＳ０３２の処理（単純モデル歩容瞬時値の算出処理）が対応している。この場合、特に、上体位置姿勢の瞬時値と、床反力水平成分の瞬時値と、目標ＺＭＰと、目標ＺＭＰまわりの床反力モーメント水平成分の瞬時値（＝０）とが仮目標瞬時値として求められる。また、第１〜第１５発明のモデル演算手段には、動力学モデルである逆フルモデル２０１により、モデル床反力瞬時値としてのフルモデル床反力水平成分Ffullおよびフルモデル床反力モーメントMfullを求める処理（特にMfullを求める処理）が対応している。また、第１〜第１５発明の目標瞬時値決定手段には、図１３のフローチャートのＳ０３８の処理が対応している。この場合、フルモデル床反力モーメントＭfullが、モデル床反力瞬時値と目標床反力の仮瞬時値との差に相当する。また、第３発明や第１５発明に係わる目標床反力の目標瞬時値として、前記目標ＺＭＰを作用点とした場合の前記補正目標床反力モーメント水平成分や補正目標床反力水平成分が求められる。
【０５９４】
さらに、第１実施形態では、第４〜第１０発明並びに第１２〜第１５発明（但し第１１発明を必要要件とするものを除く）における摂動モデルとして、上体水平位置補正用摂動モデル２０２および上体姿勢角補正量摂動モデル２０３が含まれている。この場合、摂動モデル操作量として、前記上体水平位置補正用摂動モデルモーメントMpおよび上体姿勢角補正用摂動モデルモーメントMrが決定されて、上記摂動モデル２０２，２０３に入力され、前記補正用摂動モデル上体水平位置Xcおよび補正用摂動モデル上体姿勢角θcが目標運動の補正量として求められる。また、前記フルモデル床反力モーメントMfullの符号を反転したもの（Mp演算部２１４に入力されるもの）が摂動モデル操作量の第１操作量成分として含まれると共に、上体水平位置補正用モデル安定化モーメントMpfと上体姿勢角補正用モデル安定化モーメントMrf（これは、第１実施形態では、Mrに等しい）とが摂動モデル操作量の第２操作量成分として含まれる。さらに、前記上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdおよび上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdが摂動モデル操作量の要求値として用いられる。また、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとが第１２発明および第１３発明における制限対象量の推定値として前記Min演算部２０９およびFin演算部２１０により求められると共に、制限済制限対象量として、前記制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが制限処理部２１１により求められる。この他、第８発明におけるロボットの所定の部位には、ロボット１の上体２４が対応している。
【０５９５】
なお、目標ＺＭＰまわりの床反力モーメント水平成分が０でないということは、真のＺＭＰが、該床反力モーメント水平成分を床反力鉛直成分で除算した量だけ目標ＺＭＰからずれるということと等価であるので、第１実施形態で用いる床反力モーメント水平成分は、目標床反力鉛直成分を用いて適宜、ＺＭＰに換算してもよいことはもちろんである。
【０５９６】
また、前記第１１発明は、摂動モデルに対する要求値を持たないものであり、この場合の実施形態は、前記第１実施形態において、MpfdmdおよびMrfdmdをともに、０とすればよい。これにより、第１１発明とこれを必要要件とする発明との実施形態が構築されることとなる。この実施形態と第１１発明などとの対応関係は、上記の第１実施形態に関する対応関係と同様である。
【０５９７】
次に本発明の第２実施形態を以下に説明する。第２実施形態に係る装置の補正手法は、フルモデルフィードバック補正型である。また、逆動力学フルモデル（逆フルモデル）を用いる手法で、かつ単純化モデル歩容の入力を補正しない手法であり、かつ摂動モデルを用いる手法である。
【０５９８】
図５０は、この第２実施形態に係る装置の動作、具体的には、図１３フロー・チャートのＳ０３８の歩容の修正手法を説明する機能ブロック図である。ただし、図５０の単純化モデル２００は、第１実施形態と同様、単に動力学モデルだけでなく、前述のＳ０１０からＳ０３４の処理、すなわち単純化モデル歩容瞬時値の算出（決定）処理を表す。したがって、図５０において、単純化モデル２００から先の部分がＳ０３８の処理に相当する。なお、図５０の機能部分のうち、第１実施形態に係る図４２と同一の機能分については、図４２と同一の参照符号を用いる。
【０５９９】
Ｓ０３８の処理以外の構成は第１実施形態と同じであるので説明を省略し、以下に図５０を用いてＳ０３８の処理を詳細に説明する。
【０６００】
Ｓ０３８では、まず、前述のごとく図１３のＳ０３２で求めた単純化モデル歩容の目標上体水平位置の瞬時値（現在時刻ｔの制御周期で求めた仮瞬時値）に、前回制御周期（時刻ｔ−Δｔ）で後述のごとく算出した補正用摂動モデル上体水平位置Xcを演算部２０５により加えることにより、補正目標上体水平位置が求められる。また、図１３のＳ０３２で求めた単純化モデル歩容の目標上体姿勢角の瞬時値（現在時刻ｔの制御周期で求めた仮瞬時値）に、前回制御周期（時刻ｔ−Δｔ）で算出した後述する補正用摂動モデル上体姿勢角θcを演算部２０４により加えることにより、補正目標上体姿勢角が求められる。そして、これらの補正目標上体水平位置および補正目標上体姿勢角が、それぞれ上体水平位置および上体姿勢角の最終的な目標瞬時値として出力される。
【０６０１】
すなわち、前記式２４、式２５により、補正目標上体水平位置と補正目標上体姿勢角とが求められる。
【０６０２】
次いで、補正目標上体水平位置、補正目標上体姿勢角、および前述のごとく得られた単純化モデル歩容の目標重心位置、目標足平位置姿勢、目標腕姿勢などの運動変数の瞬時値と目標ＺＭＰの瞬時値とを、前記逆動力学フルモデル２０１に入力し、その入力された運動変数で表される運動に釣り合う（すなわち運動によって逆フルモデル２０１が発生する）床反力水平成分と目標ＺＭＰまわりの床反力モーメント水平成分とが算出される。従って、本実施形態では、逆フルモデル２０１には、単純化モデル上体水平位置および上体姿勢角に加えて、補正用摂動モデル上体水平位置Xcと補正用摂動モデル上体姿勢角θcとが追加的に入力される。以降、第１実施形態と同様、逆フルモデル２０１により算出された床反力水平成分、床反力モーメント水平成分をそれぞれフルモデル床反力水平成分Ffull、フルモデル床反力モーメントMfullと呼ぶ。
【０６０３】
フルモデル床反力水平成分Ffullとフルモデル床反力モーメントMfullとは、それぞれ補正目標床反力水平成分（現在時刻ｔにおける床反力水平成分の最終的な目標瞬時値）、補正目標床反力モーメント水平成分（現在時刻ｔにおける床反力モーメント水平成分の最終的な目標瞬時値）として出力される。
【０６０４】
すなわち、以下の式により、補正目標床反力水平成分と補正目標床反力モーメント水平成分とが決定されて出力される。
【０６０５】
0003679105.tif 000030
以上の処理からわかるように、本実施形態では、フルモデル歩容は、単純化モデル歩容に上体水平位置補正用摂動モデル２０２の挙動と上体姿勢角補正用摂動モデル２０３の挙動とを加えたものになる。したがって、次式が成立する。ただし、単純化モデル床反力モーメント水平成分および単純化モデル床反力水平成分は、それぞれ、単純化モデル歩容の運動によって発生する床反力を逆フルモデル２０１を用いて算出したもののモーメント水平成分と並進力水平成分とである。
【０６０６】
0003679105.tif 000031
次いで、上体水平位置補正用摂動モデル制御則２０６により、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdが決定される。本実施形態における上体水平位置補正用摂動モデル制御則２０６は、特願２００１−１３３６２１号で本願出願人が提案した如く、設定される。例えば、次式のように該制御則２０６が決定される。
【０６０７】
0003679105.tif 000032
ただし、重心差は、次式で求められる。
【０６０８】
0003679105.tif 000033
式５２におけるKpg、Kvgはフィードバック制御のゲインであり、フルモデル重心水平位置、単純化モデル重心水平位置および補正用摂動モデル上体水平速度dXc/dtは、それぞれ、前回（時刻ｔ−Δｔ）に後述のごとく算出したフルモデル歩容瞬時値の重心水平位置、単純化モデル歩容瞬時値の重心水平位置（単純化モデル歩容の瞬間姿勢を基に単純化モデルを用いて計算される重心水平位置XGs）、および補正用摂動モデル上体水平速度dXc/dtである。
【０６０９】
即ち、フルモデル重心水平位置から単純化モデル重心水平位置を減算して得た重心差と摂動モデルの状態量のひとつである摂動モデル上体速度とに基づいて摂動モデル制御用フィードバック量（操作量）を演算するようにした。かかる摂動モデル制御則により、前記重心差の時間的平均値を、ほぼ０に制御することができる。
【０６１０】
次いで、上体姿勢角補正用摂動モデル制御則２０７により、上体姿勢補正用摂動モデル安定化モーメント要求値Mrfdmdが決定される。これは、第１実施形態と同様の制御則を用いれば良い。従って、該制御則２０７としては、例えば前記式１１が用いられる。
【０６１１】
次いで、無制限時補正目標床反力モーメントMinがMin演算部２０９により求められる（推定される）。無制限時補正目標床反力モーメントMinは、第１実施形態と同様、前記制約（ＺＭＰ制約条件および床反力水平成分制約条件）を無視して、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致させ、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfを、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致させた場合に、目標ＺＭＰまわりに発生する床反力モーメント水平成分である。
【０６１２】
無制限時補正目標床反力モーメントMinは、第１実施形態と同様、前記式１３の演算によって求められる。すなわち、無制限時補正目標床反力モーメントMinは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdを加算することにより得られる。
【０６１３】
さらに、Fin演算部２１０により、無制限時補正目標床反力水平成分Finも求められる（推定される）。無制限時補正目標床反力水平成分Finは、第１実施形態と同様、前記制約（ＺＭＰ制約条件および床反力水平成分制約条件）を無視して、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致させ、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfを、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致させたとした場合に、逆フルモデル２０１が発生する床反力水平成分（Ffullに相当）である。
【０６１４】
無制限時補正目標床反力水平成分Finは、第１実施形態とは異なり、次式により求められる。
【０６１５】
0003679105.tif 000034
ただし、上体水平位置補正用摂動モデル安定化モーメントMpfは前回値（時刻ｔ−Δｔでの値）が用いられる。すなわち、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdと上体水平位置補正用摂動モデル安定化モーメントMpfの差を求め、上体水平位置補正用摂動モデルの入力を前記差だけ増加させることに起因するフルモデル床反力水平成分Ffullの増加量を、前記差を上体並進モード床反力比率ｈで割ることにより推定する。さらに、これにフルモデル床反力水平成分Ffullを加えることにより、無制限時補正目標床反力水平成分Finが推定される。
【０６１６】
前記式１３によって無制限時補正目標床反力モーメントMinが求められ（推定され）、式５４によって無制限時補正目標床反力水平成分Finが求められる（推定される）ことの証明は後述する。
【０６１７】
次いで、第１実施形態と同様の制限手段（制限処理部２１１）によって、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとから、前記制約（ＺＭＰ制約条件および床反力水平成分制約条件）を満足するように、これらに制限を加えた値である（目標ＺＭＰまわりの）制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが決定される。この処理手法は、第１実施形態と同一である。
【０６１８】
後述するように、補正目標床反力モーメント水平成分は制限補正目標床反力モーメントMltdにほぼ一致し、補正目標床反力力水平成分は制限補正目標床反力水平成分Fltdにほぼ一致するので、上記のごとく制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdを決定することによって、補正目標床反力モーメント水平成分および補正目標床反力力水平成分は、それぞれＺＭＰ制約条件および床反力水平成分制約条件をほぼ満足する。
【０６１９】
次いで、Mpf演算部２１５によって、上体水平位置補正用摂動モデル安定化モーメントMpfが求められる。さらに詳細には、制限補正目標床反力水平成分Fltdからフルモデル床反力水平成分Ffullを減じた値にゲインKcを乗じたものを積分器２１５ａにて積分し、さらに得られた積分値に上体並進モード床反力比率ｈを乗じることにより、上体水平位置補正用摂動モデル安定化モーメントMpfが求められる。すなわち、次式により、上体水平位置補正用摂動モデル安定化モーメントMpfが得られる。
【０６２０】
Mpf = h * ∫Kc(Fltd−Ffull)dt                  …式５５
次いで、Mrf演算部２１４によって、制限補正目標床反力モーメントMltdから上体水平位置補正用摂動モデル安定化モーメントMpfを減じることにより、上体姿勢角補正用摂動モデル安定化モーメントMrfが求められる。すなわち、前記式２１により、上体姿勢角補正用摂動モデル安定化モーメントMrfが得られる。
【０６２１】
さらに、前記式２３により、上体姿勢角補正用摂動モデル床反力モーメントMrが決定される。すなわち、Mrf演算部２１４の出力である上体姿勢角補正用摂動モデル安定化モーメントMrfがそのまま上体姿勢角補正用摂動モデル床反力モーメントMrとして決定される。
【０６２２】
次いで、次式で定義されるフルモデル床反力モーメント誤差MerrがMerr演算部２１６により算出される。
【０６２３】
0003679105.tif 000035
次いで、Mp演算部２１７により、次式に従って、上体水平位置補正用摂動モデル床反力モーメントMpが求められる。
【０６２４】
Mp = Mpf−∫Km*Merr dt            …式５７
すなわち、フルモデル床反力モーメント誤差Merrに積分ゲインKmを乗じた値を積分器２１７ａにて積分すると共に、その積分値の符号を反転する。さらに、該積分器２１７ａの出力を上体水平位置補正用摂動モデル安定化モーメントMpfに加えることにより、上体水平位置補正用摂動モデル床反力モーメントMpが求められる。
【０６２５】
次いで、上体水平位置補正用摂動モデル床反力モーメントMpを上体位置補正用摂動モデル２０２に入力して、入力された床反力モーメントに釣り合う補正用摂動モデル上体位置Xcが算出される。
【０６２６】
また、上体姿勢角補正用摂動モデル床反力モーメントMrを上体姿勢角補正用摂動モデル２０３に入力して、入力された床反力モーメントに釣り合う補正用摂動モデル上体姿勢角θcが算出される。
【０６２７】
求めた補正用摂動モデル上体位置Xc、補正用摂動モデル上体姿勢角θcおよび上体水平位置補正用摂動モデル安定化モーメントMpfは、前述のごとく次回制御周期（時刻ｔ＋Δｔ）において、前回値として用いられる。
【０６２８】
残余の構成および処理は、第１実施形態と同一である。
【０６２９】
ここで、フルモデル床反力モーメントMfullが、制限補正目標床反力モーメントMltdにほぼ一致することを説明する。
【０６３０】
前記逆動力学フルモデル（逆フルモデル）２０１の入力を歩容の運動、出力を目標ＺＭＰまわりのフルモデル床反力モーメントとし、入力から出力までの伝達関数を1/G(S)とする。
【０６３１】
単純化モデル２００の入力を目標ＺＭＰまわりの床反力モーメント、出力を歩容の運動とし、入力から出力までの伝達関数を、前記逆動力学フルモデル２０１の逆関数G(S)とする。
【０６３２】
ただし、単純化モデル２００には、モデル化による誤差が含まれるので、出力は、次式のようになるとする。
【０６３３】
出力 = G(入力) + G(d)                  …式５８
ここで、dは単純化モデル２００のモデル化誤差である。単純化モデル２００が、完全に前記逆動力学フルモデル２０１の逆関数となっていれば、dは０であるが、一般的には、近似によりモデル化誤差dは０ではない。
【０６３４】
上体水平位置補正用摂動モデル２０２および上体姿勢角補正用摂動モデル２０３の入力から出力（歩容の摂動分）までの伝達関数を、Gm(S)とする。
【０６３５】
これらの伝達関数を用いて図５０を書きかえると、図５１になる。なお、図５１において、モデル化床反力モーメント誤差推定値destmは、前記Mp演算部２１７の積分器２１７ａの出力、すなわち、フルモデル床反力モーメント誤差Merrにゲイン（−Km）を乗じたものの積分値を意味している（後述の図５２〜５７においても同様）。
【０６３６】
さらに、上体水平位置補正用摂動モデル２０２および上体姿勢角補正用摂動モデル２０３は、近似精度が高く次式が近似的に成立するものとする。
【０６３７】
Gm(S)=G(S)          …式５９
この場合、図５１は、図５２に近似される。
【０６３８】
図５２を変形して制限補正目標床反力モーメントMltdからフルモデル床反力モーメント誤差Merrまでの伝達関数を求めると０になる。すなわち、フルモデル床反力モーメント誤差Merrは制限補正目標床反力モーメントMltdの影響を受けない。
【０６３９】
また、図５２を変形して、モデル化誤差dからフルモデル床反力モーメント誤差Merrまでの伝達関数を求めると、次式が得られる。
【０６４０】
Merr = S/Km/(S/Km+1)*d          ……式６０
すなわち、図５３に示すごとく、フルモデル床反力モーメント誤差Merrは、モデル化誤差dをカットオフ角周波数が前記積分器２１７ａのゲインKm[rad/s]のローカットフィルタに通したものに相当する。
【０６４１】
モデル化誤差dの周波数成分は、歩容の周期を基準周波数として、通常３倍高調波成分以下の成分がほとんどなので、積分器２１７ａのゲインKmを十分大きくすれば、フルモデル床反力モーメント誤差Merrはほぼ０になる。
【０６４２】
したがって、式５６の左辺が０になるので、フルモデル床反力モーメントMfullは、制限補正目標床反力モーメントMltdにほぼ一致する。
【０６４３】
次に、フルモデル床反力Ffullが、制限補正目標床反力水平成分Fltdにほぼ一致することを説明する。
【０６４４】
前記逆動力学フルモデル２０１の入力を上体水平位置、出力をフルモデル床反力水平成分とし、入力から出力までの伝達関数を1/Gp(S)とする。
【０６４５】
逆フルモデル２０１を用いて算出した単純化モデル歩容の床反力水平成分を単純化モデル歩容床反力水平成分Fsと呼ぶ。
【０６４６】
この定義より、単純化モデル２００の入力を単純化モデル歩容床反力水平成分Fs、単純化モデル２００の出力を単純化モデル上体水平位置とすると、入力から出力までの伝達関数はGp(S)となる。すなわち次式が成立する。
【０６４７】
上体水平位置 = Gp(S) * Fs          …式６１
また、上体姿勢角補正用摂動モデル２０３の床反力水平成分は常に０であるから、上体姿勢角補正用摂動モデル２０３の出力を前記逆動力学フルモデル２０１に入力しても、フルモデル床反力水平成分は影響を受けない。すなわち、上体姿勢角補正用摂動モデル２０３の入力からフルモデル床反力水平成分までの伝達関数は０である。
【０６４８】
これらの関係を用いて図５０を書きかえると、図５４になる。
【０６４９】
Gm(S)は、前述のごとく、上体水平位置補正用摂動モデル２０２および上体姿勢角補正用摂動モデル２０３の入力から出力（歩容の摂動分）までの伝達関数である。
【０６５０】
さらに図５４を変換すると、図５５になる。
【０６５１】
図５５の中のGm(S)/Gp(S)は、上体水平位置補正用摂動モデルの床反力モーメント水平成分Mpから床反力水平成分Fpまでの伝達関数である。Gm(S)/Gp(S)は、前記式a１９、式a２０からXcを消去することにより得られ、次式となる。
【０６５２】
Gm(S)/Gp(S) = 1/h * S2/(S2−1/h/mb*Fbz)      …式６４
ここで、S2はＳの２乗を表す。
【０６５３】
式６４で表される上体水平位置補正用摂動モデル２０２は発散系であるが、発散の時定数は低い。例えば、人間と同程度の高さのロボットでは、発散の時定数は３[rad/s]程度である。すなわち、補正用摂動モデル上体水平位置Xcはゆっくり変化する。
【０６５４】
また、前記式a１９、式a２０より、次式が成立する。
【０６５５】
Fp = 1/h * Xc * Fbz + 1/h * Mp          …式６５
上体床反力鉛直成分Fbzも補正用摂動モデル上体水平位置Xcと同様、歩容の周期を基準周波数として、通常、３倍高調波成分以下の成分がほとんどである。
【０６５６】
したがって、前記Mpf演算部２１５の積分器２１５ａのゲインKcが十分に大きければ、図５５の閉ループ系の応答速度は、式６５の右辺第１項の変動周波数よりも十分に高くなるので、式６５の右辺第１項は、補正用摂動モデル上体水平位置Xcによって発生する床反力水平成分のドリフトと考えることができる。このドリフトをd1とすると、式６５は次のように近似できる。
【０６５７】
Fp = d1 + 1/h * Mp            …式６６
故に、図５５は、図５６に近似的に変換される。
【０６５８】
ここで、フルモデル床反力水平成分誤差Ferrを次式で定義する。
【０６５９】
0003679105.tif 000036
すなわち、フルモデル床反力水平成分Ffullと制限補正目標床反力水平成分Fltdとの差をフルモデル床反力水平成分誤差Ferrとする。
【０６６０】
フルモデル床反力水平成分誤差Ferrに注目して、図５６を変換すると図５７になる。
【０６６１】
よって、次式が得られる。
【０６６２】
0003679105.tif 000037
すなわち、フルモデル床反力水平成分誤差Ferrは、(Fs−1/h * destm−Fltd + d1)をカットオフ角周波数がKc[rad/s]のローカットフィルタに通したものに相当する。
【０６６３】
(Fs−1/h * destm−Fltd + d1)内の各項は、歩容の周期を基準周波数として、通常、３倍高調波成分以下の成分がほとんどなので、Kcを十分大きくすれば、フルモデル床反力水平成分誤差Ferrはほぼ０になる。
【０６６４】
したがって、式６７の左辺が０になるので、フルモデル床反力水平成分Ffullは、制限補正目標床反力水平成分Fltdにほぼ一致する。
【０６６５】
無制限時補正目標床反力モーメントMinは、定義より、上体水平位置補正用摂動モデル安定化モーメントMpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに一致させ、かつ、上体姿勢角補正用摂動モデル安定化モーメントMrfを、上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致させた場合のフルモデル床反力モーメントMfullの値である。
【０６６６】
上記の場合におけるフルモデル床反力モーメントMltdの値は、第２実施形態では前記式２１が常に成立しているので、式２１において、MpfにMpfdmdを代入し、MrfにMrfdmdを代入することにより得られる。
すなわち、上記の場合、次式が成立する。
【０６６７】
Mltd = Mpfdmd + Mrfdmd          …式６９
ところで、前述したように、フルモデル床反力モーメントMfullは、常に、制限補正目標床反力モーメントMltdにほぼ一致する。よって、無制限時補正目標床反力モーメントMin、すなわち、上記の場合のフルモデル床反力モーメントMfullの値は、前記式１３で求められる。
【０６６８】
図５６より、次式の近似関係が得られる。
【０６６９】
Ffull = 1/h * Mpf + Fs + d1−1/h * destm            …式７１
ある瞬間に式７１が成立していると、この瞬間において、Mpfを上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに変更した場合のフルモデル床反力水平成分Ffullである無制限時補正目標床反力水平成分Finは、次式で求められる。
【０６７０】
Fin = 1/h * Mpfdmd + Fs + d1−1/h * destm      …式７２
Mpfから(Fs + d1−1/h * destm)までの伝達関数には直達項が含まれないので、瞬間的にMpfの値をMpfdmdに変更しても、(Fs + d1−1/h * destm)は瞬間的に影響を受けない。したがって、式７１と式７２の(Fs + d0−1/h * destm)は同一値である。
【０６７１】
よって、式７１、式７２から(Fs + d1−1/h * destm)を消去することにより、式５４が得られる。
【０６７２】
次に、床反力水平成分の制限と床反力モーメント水平成分の制限がいずれもかからなかった場合、すなわち、Fin=Fltd かつ  Min=Mltdの場合の性質を説明する。
【０６７３】
Fin=Fltdであるから、図５０からわかるように、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdと上体水平位置補正用摂動モデル安定化モーメントMpfの関係は次のようになる。
【０６７４】
Mpf = 1/(S/Kc + 1) * Mpfdmd          …式７３
すなわち、上体水平位置補正用摂動モデル安定化モーメントMpfは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdを時定数1/Kcの一次遅れローパスフィルタに通したものとなる。したがって、積分ゲインKcを十分大きくすれば、上体水平位置補正用摂動モデル安定化モーメントMpfは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdにほぼ一致する。したがって、上体水平位置補正用摂動モデル２０２の上体水平位置を適切に安定化することができる。すなわち、補正歩容の上体水平位置が発散することを適切に防止することができる。
【０６７５】
なお、後退差分により離散化すると、次式になる。
【０６７６】
0003679105.tif 000038
ここで、Tは時定数であり、T=1/Kcである。
【０６７７】
したがって、特に、Kcを無限大にすると（時定数Tを０にすると）、上体水平位置補正用摂動モデル安定化モーメントMpfは、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdに厳密に一致する。
【０６７８】
また、Fin=Fltd かつ  Min=Mltdであるから、上記のごとく上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdと上体水平位置補正用摂動モデル安定化モーメントMpfがほぼ一致することを踏まえると、図５０からわかるように、次式が（近似的に）成立する。
【０６７９】
Mrf = Mrfdmd          …式７５
すなわち上体姿勢角補正用摂動モデル安定化モーメントMrfは上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdに一致またはほぼ一致する。したがって、上体姿勢角補正用摂動モデル２０３の上体姿勢角を適切に安定化することができる。すなわち、補正歩容の上体姿勢角が発散することを適切に防止することができる。
【０６８０】
最後に、床反力水平成分の制限または床反力モーメント水平成分の制限の少なくともいずれかがかかった場合（Fin≠Fltd または  Min≠Mltdの場合）の性質を説明する。
【０６８１】
この場合、制限手段（制限処理部２１１）は、制限手段の詳細説明で述べたごとく、上体姿勢角補正用摂動モデル安定化モーメントMrfが上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdにできる限り一致することを優先させるので、少なくとも前記補正用摂動モデル上体姿勢角θcを優先的に可能な範囲で安定化し、また、その上で前記補正用摂動モデル上体水平位置Xcをできる限り適切に安定化することができる。
【０６８２】
以上のごとく、第２実施形態では、単純化モデル歩容を摂動モデル２０２，２０３によって補正した補正目標運動を逆フルモデル２０１に入力し、逆フルモデル２０１によって算出された床反力を補正目標床反力としたので、補正目標運動（補正目標上体位置姿勢など）と補正床反力（補正目標床反力水平成分および補正目標床反力モーメント水平成分）から成る補正歩容が動力学的平衡条件（重力と慣性力との合力が目標ＺＭＰまわりに作用するモーメント水平成分が０であること）を精度良く満足するように生成される。
【０６８３】
また、上体水平位置・姿勢角を補正するための摂動モデル２０２，２０３を持ち、その出力により、単純化モデル歩容の目標上体水平位置・姿勢角を補正するとともに、制限手段（制限処理部２１１）の出力である制限補正目標床反力水平成分Fltdおよび制限補正目標床反力モーメントMltdをそれぞれ補正目標床反力水平成分および補正目標床反力モーメント水平成分にほぼ一致するように、前記摂動モデル２０２，２０３への操作量を入力するフィードバックループを構成し、かつ、制限手段（制限処理部２１１）により制限補正目標床反力水平成分Fltdおよび制限補正目標床反力モーメントMltdが許容範囲（床反力水平成分許容範囲とＺＭＰ許容範囲）を越えないように制限したので、補正目標床反力水平成分および補正目標床反力モーメント水平成分も、前記許容範囲を越えなくなり、安定余裕が高く、かつスリップし難い歩容に補正される。
【０６８４】
また、前記摂動モデル２０２，２０３を安定化するように摂動モデル２０２，２０３に入力または付加的に入力すべき操作量の要求値を決定する制御則を持ち、前記制限手段により、制限補正目標床反力水平成分Fltdおよび制限補正目標床反力モーメントMltdをそれぞれ前記許容範囲を越えないように制限しつつ、できる限り、制御則が決定した操作量の要求値に近いように前記摂動モデル２０２，２０３への操作量を決定し前記摂動モデル２０２，２０３に入力するようにしたので、前記摂動モデル２０２，２０３の安定性が高まり、補正歩容の発散が防止される。
【０６８５】
また、制御則が決定した操作量の要求値をそのまま前記摂動モデル２０２，２０３に操作量として入力すると仮定した場合に、制限補正目標床反力水平成分Fltdおよび制限補正目標床反力モーメントMltdの少なくともいずれかが前記許容範囲を越えそうな場合には、上体水平位置（上体水平位置補正用摂動モデル）の安定化よりも上体姿勢角（上体姿勢角補正用摂動モデル）の安定化を優先するようにしたので、上体姿勢角がより一層安定になり、より自然な姿勢の歩容に補正される。
【０６８６】
ここで、以上説明した第２実施形態と本発明との対応関係を説明しておく。第２実施形態は、前記した本願発明のうちの第１〜第１０発明並びに第１６〜第２２発明（但し第１７発明と、この第１７発明を必要要件とする発明を除く。以下、特に第１７発明に言及しない限り同様とする）に対応している。この場合、これらの第１〜第１０発明並びに第１６〜第２２発明の許容範囲設定手段には、図１３のフローチャートのＳ０３０、Ｓ０３６の処理が対応しており、並進床反力水平成分とＺＭＰ（真のＺＭＰ）とを制限対象量として、それらの許容範囲が設定される。また、第１〜第１０発明並びに第１６〜第２２発明の仮瞬時値決定手段には、図１３のフローチャートのＳ０３２の処理（単純モデル歩容瞬時値の算出処理）が対応している。この場合、特に、上体位置姿勢の瞬時値と、床反力水平成分の瞬時値と、目標ＺＭＰと、目標ＺＭＰまわりの床反力モーメント水平成分の瞬時値（＝０）とが仮目標瞬時値として求められる。また、第１〜第１０発明並びに第１６〜第２２発明のモデル演算手段には、動力学モデルである逆フルモデル２０１により、モデル床反力瞬時値としてのフルモデル床反力水平成分Ffullおよびフルモデル床反力モーメントMfullを求める処理（特にMfullを求める処理）が対応している。また、第１〜第１０発明並びに第１６〜第２２発明の目標瞬時値決定手段には、図１３のフローチャートのＳ０３８の処理が対応している。この場合、フルモデル床反力モーメントＭfullが、モデル床反力瞬時値と目標床反力の仮瞬時値との差に相当する。また、第３発明に係わる目標床反力の目標瞬時値として、前記目標ＺＭＰを作用点とした場合の前記補正目標床反力モーメント水平成分や補正目標床反力水平成分が求められる。但し、この場合、第１６発明に対応して、目標運動の仮瞬時値の補正量としての、補正用摂動モデル上体水平位置Xcおよび補正用摂動モデル上体姿勢角θcが逆フルモデル２０１に追加的に入力される。そして、第２２発明に対応して、補正目標床反力モーメント水平成分や補正目標床反力水平成分は、逆フルモデル２０１の出力（モデル床反力瞬時値）として得られる。
【０６８７】
さらに、第２実施形態では、第４〜第１０発明並びに第１８〜第２２発明（但し第１７発明を必要要件とするものを除く）における摂動モデルとして、上体水平位置補正用摂動モデル２０２および上体姿勢角補正量摂動モデル２０３が含まれている。この場合、摂動モデル操作量として、前記上体水平位置補正用摂動モデルモーメントMpおよび上体姿勢角補正用摂動モデルモーメントMrが決定されて、上記摂動モデル２０２，２０３に入力され、前記補正用摂動モデル上体水平位置Xcおよび補正用摂動モデル上体姿勢角θcが目標運動の補正量として求められる。また、少なくともフルモデル床反力モーメントMfull（前記モデル床反力瞬時値と目標床反力の仮瞬時値との差に相当）に応じて決定される積分器２１７ａの出力が（Mp演算部２１４に入力されるもの）が摂動モデル操作量の第１操作量成分として含まれると共に、上体水平位置補正用モデル安定化モーメントMpfと上体姿勢角補正用モデル安定化モーメントMrf（これは、第２実施形態では、Mrに等しい）とが摂動モデル操作量の第２操作量成分として含まれる。さらに、前記上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdおよび上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdが摂動モデル操作量の要求値として用いられる。また、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとが第１８〜第２０発明における制限対象量の推定値として前記Min演算部２０９およびFin演算部２１０により求められると共に、制限済制限対象量として、前記制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが制限処理部２１１により求められる。この他、第８発明におけるロボットの所定の部位には、ロボット１の上体２４が対応している。
【０６８８】
なお、第２実施形態で用いる床反力モーメント水平成分は、目標床反力鉛直成分を用いて適宜、ＺＭＰに換算してもよいことは前記第１実施形態の場合と同様である。
【０６８９】
また、前記第１７発明は、摂動モデルに対する要求値を持たないものであり、この場合の実施形態は、前記第２実施形態において、MpfdmdおよびMrfdmdをともに、０とすればよい。これにより、第１７発明とこれを必要要件とする発明との実施形態が構築されることとなる。この実施形態と第１７発明などとの対応関係は、上記の第２実施形態に関する対応関係と同様である。
【０６９０】
次に、本発明の第３実施形態を説明する。第３実施形態に係る装置の補正手法は、フルモデルフィードバック補正型である。また、逆動力学フルモデル（逆フルモデル）を用いる手法で、かつ単純化モデル歩容の入力を補正する手法であり、かつ摂動モデルを用いない手法である。
【０６９１】
図５８は、第３実施形態に係る装置の動作、具体的には、図１３のフローチャートのＳ０３８の歩容の修正手法を説明する機能ブロック図である。なお、図５８では、第２実施形態に係る図５０と同一機能部分については、図５０を同一の参照符号を用いる。
【０６９２】
また、本実施形態の説明では、上体水平位置補正用摂動モデル安定化モーメント要求値Mpfdmdは、名称を上体水平位置安定化モーメント要求値Mpfdmdと改める。なぜなら、本実施形態は、摂動モデルを持っていず、また、Mpfdmdは、単純化モデル２００の上体水平位置を安定化させるために用いられるからである。同様に上体姿勢角補正用摂動モデル安定化モーメント要求値Mrfdmdも、上体姿勢角安定化モーメント要求値Mrfdmdと改める。同様に、上体水平位置補正用摂動モデル安定化モーメントMpfは上体水平位置安定化モーメントMpfに、上体姿勢角補正用摂動モデル安定化モーメントMrfは上体姿勢角安定化モーメントMrfに、上体姿勢角補正用摂動モデルモーメントMrは単純化モデル上体姿勢角補正用モーメントMrに、上体水平位置補正用摂動モデルモーメントMpは単純化モデル上体水平位置補正用モーメントMpに、名称を改める。
【０６９３】
ただし、図５８の単純化モデル２００は、単に動力学モデルだけでなく、前述の図１３のＳ０１０からＳ０３４の処理、すなわち単純化モデル歩容瞬時値の算出（決定）処理を表す。また、Ｓ０３２の今回歩容瞬時値（単純化モデル歩容瞬時値）の算出（決定）処理においては、前記第１実施形態で説明したように目標ＺＭＰまわりに床反力モーメント水平成分が発生しないように（補正目標床反力モーメント水平成分を０として）歩容の瞬時値を生成した上で、さらに第２実施形態において述べた上体姿勢角補正用摂動モデルモーメントMrに相当する単純化モデル上体姿勢角補正用モーメントMr（前回値）を発生する上体回転モードの摂動運動を付加すると共に、第２実施形態において述べた上体水平位置補正用摂動モデルモーメントMpに相当する単純化モデル上体水平位置補正用モーメントMp（前回値）を発生する上体並進モードの摂動運動を付加する。これにより、単純化モデル２００が出力する歩容の瞬時値を補正する。
【０６９４】
より具体的に説明すると、本実施形態における図１３のＳ０３２の処理においては、そのサブルーチン処理である図３７のＳ９１４において、単純化モデル２００で求めた上体水平加速度に、前記式ａ１０の右辺第２項をMp（前回値）に等しいとした式、すなわちMp＝mb*(Zb−Zzmp)*(d2Xb/dt2)という式に基づいて求められる上体水平加速度(d2Xb/dt2)を摂動分として加えてなる上体水平加速度を今回歩容の初期から現在時刻ｔまで２階積分することにより、現在時刻ｔにおける上体水平位置の瞬時値が求められる。また、図３７のＳ９１４において、単純化モデル２００で求めた上体姿勢角加速度に、前記式ａ１０の右辺第７項をMr（前回値）に等しいとした式、すなわち、Mr＝J*d2θb/dt2という式に基づいて求められる上体姿勢角加速度（d2θb/dt2)を摂動分として加えてなる上体姿勢角加速度を今回歩容の初期から現在時刻ｔまで２階積分することにより、現在時刻ｔにおける上体姿勢角の瞬時値が求められる。
【０６９５】
図５８において、単純化モデル２００から先の部分がＳ０３８の処理に相当する。Ｓ０３２およびＳ０３８の処理以外は第１実施形態と同じであるので説明を省略し、以下に図５８を用いてＳ０３８の処理を詳細に説明する。
【０６９６】
Ｓ０３８では、まず、Ｓ０３０において上記のごとく単純化モデル上体水平位置補正用モーメントMp（詳しくは時刻（ｔ−Δｔ）の制御周期での前回値）を基に補正された単純化モデル水平上体位置が補正目標上体水平位置（時刻ｔでの上体水平位置の最終的な目標瞬時値）として出力される。またさらに、Ｓ０３０において上記のごとく単純化モデル上体姿勢角補正用モーメントMr（詳しくは時刻（ｔ−Δｔ）の制御周期での前回値）を基に補正された単純化モデル上体姿勢角が補正目標上体姿勢角（時刻ｔでの上体姿勢角の最終的な目標瞬時値）として出力される。
【０６９７】
すなわち、式１００、式１０１により、補正目標上体水平位置と補正目標上体姿勢角とが決定される。
【０６９８】
補正目標上体水平位置 = 単純化モデル上体水平位置      …式１００
補正目標上体姿勢角 = 単純化モデル上体姿勢角          …式１０１
次いで、補正目標上体水平位置（すなわち単純化モデル上体水平位置）、補正目標上体姿勢角（すなわち単純化モデル上体姿勢角）、および前述のごとく得られた単純化モデル歩容の目標全体重心位置、目標足平位置姿勢、目標腕姿勢などの運動変数の瞬時値と目標ＺＭＰの瞬時値とを、前記逆動力学フルモデル（逆フルモデル）２０１に入力し、入力された運動変数で表される運動に釣り合う（すなわち運動によって逆フルモデル２０１が発生する）床反力水平成分と目標ＺＭＰまわりの床反力モーメントとが算出される。以降、第２実施形態と同様、これらの算出された床反力水平成分及び床反力モーメント水平成分をそれぞれフルモデル床反力水平成分Ffull、フルモデル床反力モーメントMfullと呼ぶ。
【０６９９】
第２実施形態と同様、フルモデル床反力水平成分Ffullとフルモデル床反力モーメントMfullとは、それぞれ補正目標床反力水平成分（時刻ｔでの床反力水平成分の最終的な目標瞬時値）、補正目標床反力モーメント水平成分（時刻ｔでの床反力モーメント水平成分の最終的な目標瞬時値）として出力される。
【０７００】
本実施形態では、上体姿勢角補正用摂動モデルと上体水平位置補正用摂動モデルとを備えないので、上体水平位置補正用摂動モデル制御則と上体姿勢角補正用摂動モデル制御則に相当する処理は、後述するように、第２実施形態とは異なる。
【０７０１】
このことを除けば、上記処理以降、単純化モデル上体姿勢角補正用モーメントMrと単純化モデル上体水平位置補正用モーメントMpとを決定するまでは、第２実施形態において、上体姿勢角補正用摂動モデルモーメントMrと上体水平位置補正用摂動モデルモーメントMpとを決定する処理と同一の処理が実行される。すなわち、Min演算部２０９、Fin演算部２１０、制限処理部２１１（制限手段）、Mpf演算部２１５、Merr演算部２１６、Mrf演算部２１７（＝Mr演算部）、及びMp演算部２１４の処理は、前記第２実施形態と同一である。
【０７０２】
上記のごとく求められた単純化モデル上体姿勢角補正用モーメントMrと単純化モデル上体水平位置補正用モーメントMpは、前述のごとく次回制御周期（時刻ｔ＋Δｔ）に、単純化モデル歩容瞬時値の決定（生成）時に前回値として用いられる。
【０７０３】
残余の構成及び処理は、第２実施形態と同一である。
【０７０４】
以下に、上体姿勢角安定化モーメント要求値Mrfdmdの決定方法について述べる。本実施形態では、Mrfdmdは、Mrfdmd決定処理部２１８にて、例えば次のように決定される。
【０７０５】
すなわち、上体姿勢角安定化モーメント要求値Mrfdmdは、例えば前記基準上体姿勢角に補正目標上体姿勢角が追従するように、前記上体姿勢角補正用摂動モデル制御則２０７と同様に、決定すれば良い。
【０７０６】
または、上体姿勢角安定化モーメント要求値Mrfdmdは、常に０でも良い。ただし、上体姿勢角が発散するおそれがあるので、次の１歩において歩容パラメータ（例えば前記ＺＭＰrecパターンなど）を調整することによって、上体姿勢角が発散しないようにする必要がある。
【０７０７】
次に、上体水平位置安定化モーメント要求値Mpfdmdの決定方法について述べる。本実施形態では、Mpfdmdは、Mpfdmd決定処理部２１９にて例えば次のように決定される。
【０７０８】
移動中においては、動力学的平衡条件を満足しなければならないので、基準上体姿勢角のように、基準の上体位置を任意に設定して、これに単純化モデル上体水平位置を追従または収束させることはできない。
【０７０９】
そこで、少なくとも移動中においては、上体水平位置安定化モーメント要求値Mpfdmdを、常に０とする。前述したように、目標ＺＭＰまわりの補正目標床反力モーメント水平成分は上体水平位置安定化モーメント要求値Mpfdmdにほぼ一致するので、この場合、目標ＺＭＰまわりの補正目標床反力モーメント水平成分は、常にほぼ０になる。ただし、上体水平位置が発散する傾向があるので、次の１歩において歩容パラメータを調整する（例えば図３９に関して説明したＺＭＰ修正量パターンを、上体水平位置が定常歩容につながるように調整する）ことによって、上体水平位置が発散しないようにする必要がある。
【０７１０】
直立時には、基準上体姿勢角のように、基準上体水平位置を設定し、その位置に補正目標上体位置が収束するように上体水平位置安定化モーメント要求値Mpfdmdを決定しても良い。
【０７１１】
例えば、次式で上体水平位置安定化モーメント要求値Mpfdmdを決定すれば良い。
【０７１２】
0003679105.tif 000039
ここで、補正目標上体速度は補正目標上体位置の時間微分値である。KpbおよびKvbはゲインである。
【０７１３】
なお、本実施形態では、単純化モデル２００に追加的に入力される単純化モデル上体水平位置補正用モーメントMpは、逆フルモデル２０１が出力するフルモデル床反力水平成分Ffull（＝補正目標床反力水平成分）が歩容補正用の床反力水平成分許容範囲を逸脱しないように決定されている。従って、図１３のＳ０３２で今回歩容瞬時値を決定する際に、図３７のＳ９１２の処理では、必ずしも床反力水平成分Fxが床反力水平成分許容範囲を越えないように上体水平加速度と上体姿勢角加速度とを決定する必要はない。従って、図３８のＳ１００６〜Ｓ１０１２の処理で常にFx＝Fxtmpとして、Ｓ９１２の処理を実行するようにしてもよい。
【０７１４】
ここで、以上説明した第３実施形態と本発明との対応関係を説明しておく。第３実施形態は、前記した本願発明のうちの第２３発明〜第２６発明に対応している。この場合、これらの第２３〜第２６発明の許容範囲設定手段には、図１３のフローチャートのＳ０３０、Ｓ０３６の処理が対応しており、並進床反力水平成分とＺＭＰ（真のＺＭＰ）とを制限対象量として、それらの許容範囲が設定される。また、第２３〜第２６発明の目標床反力仮瞬時値決定手段には、図１３のフローチャートのＳ０３２の処理のうちの一部（具体的には図３７のＳ９００やＳ９０２の処理、すなわち、目標床反力鉛直成分や目標ＺＭＰの瞬時値算出処理）が対応している。また、第２３〜第２６発明の第１モデル演算手段には、第１動力学モデルとしての単純化モデル２００により、図３７のＳ９１２およびＳ９１４で、上体位置姿勢の瞬時値（仮瞬時値）を求める処理が対応している。また、第２３〜第２６発明の第２モデル演算手段には、第２動力学モデルとしての逆フルモデル２０１により、モデル床反力瞬時値としてのフルモデル床反力水平成分Ffullおよびフルモデル床反力モーメントMfullを求める処理（特にMfullを求める処理）が対応している。また、第２３〜第２６発明の第１モデル入力補正手段には、図１３のフローチャートのＳ０３８の処理（逆フルモデル２０１の演算処理を除く）が対応している。この場合、フルモデル床反力モーメントＭfullが、モデル床反力瞬時値と目標床反力の仮瞬時値との差に相当する。また、前記単純化モデル上体水平位置補正用モーメントMpおよび単純化モデル上体姿勢角補正用モーメントMrが、目標床反力の補正量として求められ、それが、第１動力学モデルとしての単純化モデル２００に追加的に入力される。そして、第２動力学モデルとしての逆フルモデル２０１の入力（単純化モデル２００の出力）が目標運動の目標瞬時値（補正目標上体水平位置や、補正目標上体姿勢等）として決定される。また、第２５発明に対応して、逆フルモデル２０１の出力としての補正目標床反力モーメント水平成分や補正目標床反力水平成分が目標床反力の目標瞬時値として得られる。さらに、第２６発明に係わる第１補正量成分には、積分器２１７ａの出力が対応し、第２補正量成分には、上体水平位置安定化モーメントMpfと、上体姿勢角安定化モーメントMrf（これは第３実施形態では、Mrに等しい）とが対応している。さらに、第３実施形態では、前記上体水平位置安定化モーメント要求値Mpfdmdおよび上体姿勢角安定化モーメント要求値Mrfdmdが目標床反力の補正量の要求値として用いられる。また、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとが第２６発明における制限対象量の推定値として前記Min演算部２０９およびFin演算部２１０により求められると共に、制限済制限対象量として、前記制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが制限処理部２１１により求められる。
【０７１５】
なお、第３実施形態で用いる床反力モーメント水平成分は、目標床反力鉛直成分を用いて適宜、ＺＭＰに換算してもよいことは前記第１実施形態の場合と同様である。
【０７１６】
次に、本発明の第４実施形態を説明する。この第４実施形態に係る装置の補正手法は、前記第２実施形態と第３実施形態とを複合させた手法である。図５９は、この発明の第４実施形態に係る装置の動作、具体的には、図１３フロー・チャートのＳ０３８の歩容の修正手法を説明する機能ブロック図である。なお、図５９では、第２実施形態もしくは第３実施形態と同一機能部分については、図５７又は図５８と同一の参照符号を用いる。
【０７１７】
第４実施形態においては、上体水平位置補正用摂動モデル２０２と上体姿勢角補正用摂動モデル２０３とを備える。また、２つの分配器２２０，２２１を備える。
【０７１８】
分配器２２０，２２１を定義すると、いずれも、１入力２出力の伝達ブロックであり、入力に応じて、一方の出力を決定し（例えば、入力に周波数特性、不感帯特性、飽和特性などの信号処理を行って一方の出力を決定し）、２つの出力の和が入力に一致またはほぼ一致するように、他方の出力を決定する伝達ブロックである。
【０７１９】
分配器２２０には、制限補正目標床反力モーメントMltdと上体水平位置補正用摂動モデル安定化モーメントMpfとの差（Mr演算部２１４の出力）である上体姿勢角補正用モーメントMrが入力され、上体姿勢角補正用摂動モデル２０３に入力する上体姿勢角補正用摂動モデル入力Mriと、単純化モデル２００に入力する単純化モデル上体姿勢角補正用モーメントMrsとに分配される。この時、上体姿勢角補正用摂動モデル入力Mriと単純化モデル上体姿勢角補正用モーメントMrsとの和が上体姿勢角補正用モーメントMrに一致するように、上体姿勢角補正用摂動モデル入力Mriと単純化モデル上体姿勢角補正用モーメントMrsとが決定される（出力される）。
【０７２０】
より具体的には、上体姿勢角補正用モーメントMrに応じて、上体姿勢角補正用摂動モデル入力Mriが決定される。例えば、上体姿勢角補正用モーメントMrを不感帯特性、飽和特性、あるいは周波数特性を持つ信号処理を通して、上体姿勢角補正用摂動モデル入力Mriが決定される。また、上体姿勢角補正用モーメントMrから上体姿勢角補正用摂動モデル入力Mriを差し引いたものが、単純化モデル上体姿勢角補正用モーメントMrsとして決定される。さらに具体的に説明すると、本実施形態では、分配器２２０は、例えば、入力（上体姿勢角補正用モーメントMr）をローパスフィルタに通してなる低周波成分（直流分）を単純化モデル上体姿勢角補正用モーメントMrsとして出力すると共に、その入力（上体姿勢角補正用モーメントMr）からMrsを差し引いた成分が上体姿勢角補正用摂動モデル入力Mriとして出力される。この場合、低周波成分（直流分）である単純化モデル上体姿勢角補正用モーメントMrsに関しては、不感帯特性を持たせておき、上記ローパスフィルタの出力が、ある所定値を中心とする所定範囲内に存在する状態では、Mrsが該所定値（例えば０）に維持されるようにしておく。
【０７２１】
分配器２２０の出力である上体姿勢角補正用摂動モデル入力Mriは、前記上体姿勢角補正用摂動モデル２０３に入力され、上体姿勢角補正用摂動モデル２０３により補正用摂動モデル上体姿勢角θcが決定される。
【０７２２】
分配器２２０のもうひとつの出力である単純化モデル上体姿勢角補正用モーメントMrsは単純化モデル２００に入力される。これは、前記図５８の第３実施形態において、単純化モデル上体姿勢角補正用モーメントMrを単純化モデル２００に入力することに相当するものである。
【０７２３】
分配器２２１においては、フルモデル床反力モーメント誤差MerrにゲインKmを乗じた値を積分器２１７ａによって積分し、さらに符号を反転した値を入力とする。この入力は、前記第２実施形態で説明したモデル化床反力モーメント誤差推定値destmの符号を反転した値に相当する。
【０７２４】
分配器２２１の入力は、分配器２２０と同様、単純化モデル２００に入力する単純化モデル上体水平位置補正用モーメントMpsと、上体水平位置補正用摂動モデル２０２に入力する誤差補正モーメントMeとに分配される。より具体的には、積分器２１７ａの出力に応じて、誤差補正モーメントMeが決定される。例えば、積分器２１７ａの出力（分配器２２０の入力）を不感帯特性、飽和特性、あるいは周波数特性を持つ信号処理を通して、誤差補正モーメントMeが決定される。また、積分器２１７ａの出力から、誤差補正モーメントMeを差し引いたものが、単純化モデル上体水平位置補正用モーメントMpsとして決定される。さらに具体的に説明すると、本実施形態では、分配器２２１は、例えば、入力（積分器２１７ａの出力）をローパスフィルタに通してなる低周波成分（直流分）を単純化モデル上体水平位置補正用モーメントMpsとして出力すると共に、その入力（積分器２１７ａの出力）からMpsを差し引いた成分を誤差補正モーメントMeとして出力する。この場合、低周波成分（直流分）である単純化モデル上体水平位置補正用モーメントMpsに関しては、不感帯特性を持たせておき、上記ローパスフィルタの出力が、ある所定値を中心とする所定範囲内に存在する状態では、Mpsが該所定値（例えば０）に維持されるようにしておく。
【０７２５】
分配器２２１の出力である誤差補正モーメントMeに上体水平位置補正用モデル安定化モーメントMpfをMp演算部２１７ｂで加算することにより上体水平位置補正用摂動モデルモーメントMpが求められる。そして、上体水平位置補正用摂動モデルモーメントMpは、上体水平位置補正用摂動モデル２０２に入力され、上体水平位置補正用摂動モデル２０２により補正用摂動モデル上体水平位置Xcが決定される。
【０７２６】
分配器２２１のもうひとつの出力である単純化モデル上体水平位置補正用モーメントMpsは単純化モデル２００に入力される。これは、前記図５８の第３実施形態において、単純化モデル上体水平位置補正用モーメントMpを単純化モデル２００に入力することに相当するものである。
【０７２７】
単純化モデル２００は、第３実施例と同様、単純化モデル歩容瞬時値の算出（決定）処理において、目標ＺＭＰまわりに床反力モーメント水平成分が発生しないように歩容の瞬時値を生成した上で、単純化モデル上体姿勢角補正用モーメントMrs（前回値）を発生する上体回転モードの摂動運動を付加すると共に、単純化モデル上体水平位置補正用モーメントMps（前回値）を発生する上体並進モードの摂動運動を付加して、歩容の瞬時値を補正する。
【０７２８】
その他の構成及び処理は、第２実施例または第３実施例と同一である。より詳しくは、演算部２０４，２０５、Merr演算部２１６、上体姿勢角補正用摂動モデル制御則２０７、上体水平位置補正用摂動モデル制御則２０６、Min演算部２０９、Fin演算部２１０、制限処理部２１１、Mpf演算部２１５の処理は、前記第２実施形態と同一である。
【０７２９】
なお、本実施形態では、前記第３実施形態に関して説明した場合と同様、図１３のＳ０３２で今回歩容瞬時値を決定する際に、図３７のＳ９１２の処理では、必ずしも床反力水平成分Fxが床反力水平成分許容範囲を越えないように上体水平加速度と上体姿勢角加速度とを決定する必要はない。従って、図３８のＳ１００６〜Ｓ１０１２の処理で常にFx＝Fxtmpとして、Ｓ９１２の処理を実行するようにしてもよい。
【０７３０】
各分配器２２０，２２１の出力の和は入力に一致しているので、第２実施形態と同様、補正目標床反力モーメント水平成分（フルモデル床反力モーメントMfull）は制限補正目標床反力モーメントMltdに一致し、補正目標床反力力水平成分（フルモデル床反力水平成分Ffull）は制限補正目標床反力水平成分Fltdに一致する。したがって、前記制限手段（制限処理部２１１）により、制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdに、許容範囲を越えないように制限を加えることにより、第１〜第３実施形態と同様、許容範囲を越えない適切な歩容（補正歩容）が生成される。
【０７３１】
各分配器２２０，２２１の２つの出力のうち一方を０とし、他方を入力に一致させるようにしても良い。
【０７３２】
分配器２２０の出力である単純化モデル上体姿勢角補正用モーメントMrsを０にし、分配器２２１の出力である単純化モデル上体水平位置補正用モーメントMpsを０にすると、第２実施形態と同一の作用効果を奏することとなる（事実上、第２実施形態のものと同一構成となる）。
【０７３３】
分配器２２０の出力である上体姿勢角補正用摂動モデル入力Mriを０にし、分配器２２１の出力である誤差補正モーメントMeを０にすると、第３実施形態と同一の作用効果を奏することとなる（事実上、第３実施形態のものと同一構成となる）。
【０７３４】
すなわち、第４実施形態は第２実施形態と第３実施形態とを包含したシステムになっている。
【０７３５】
また、分配器２２０の出力である単純化モデル上体姿勢角補正用モーメントMrsを０にし、分配器２２１の出力である誤差補正モーメントMeを０にしても良い。この場合、上体姿勢角補正用摂動モデルは省略できる。
【０７３６】
また、分配器２２０の出力である上体姿勢角補正用摂動モデル入力Mriを０にし、分配器２２１の出力である単純化モデル上体水平位置補正用モーメントMpsを０にしても良い。
【０７３７】
また、さらに、誤差補正モーメントMeに上体水平位置補正用モデル安定化モーメントMpfを加算した値を図示しない第３の分配器に入力し、その出力の一方を上体水平位置補正用摂動モデルに入力し、もう一方の出力を単純化モデル上体水平位置補正用モーメントMpsに加算しても良い。この場合、分配器２２１の出力である単純化モデル上体水平位置補正用モーメントMpsを０にしても良い。すなわち、分配器２２１を省略し、フルモデル床反力モーメント誤差MerrにゲインKmを乗じた値を積分して符号を反転した値を上体水平位置補正用モデル安定化モーメントMpfに加算した値を第３の分配器に入力しても良い。
【０７３８】
ここで、以上説明した第４実施形態と本発明との関係を説明しておく。第４実施形態は、前記した本願発明のうちの第２３〜第２５発明並びに第２７〜第３９発明（但し第３５発明と、この第３５発明を必要要件とする発明を除く。以下、特に第３５発明に言及しない限り同様とする）に対応している。この場合、これらの第２３〜第２５発明並びに第２７〜第３９発明の許容範囲設定手段には、図１３のフローチャートのＳ０３０、Ｓ０３６の処理が対応しており、並進床反力水平成分とＺＭＰ（真のＺＭＰ）とを制限対象量として、それらの許容範囲が設定される。また、第２３〜第２５発明並びに第２７〜第３９発明の目標床反力仮瞬時値決定手段には、図１３のフローチャートのＳ０３２の処理のうちの一部（具体的には図３７のＳ９００やＳ９０２の処理、すなわち、目標床反力鉛直成分や目標ＺＭＰの瞬時値算出処理）が対応している。また、第２３〜第２５発明並びに第２７〜第３９発明の第１モデル演算手段には、第１動力学モデルとしての単純化モデル２００により、図３７のＳ９１２およびＳ９１４で、上体位置姿勢の瞬時値（仮瞬時値）を求める処理が対応している。また、第２３〜第２５発明並びに第２７発明〜第３９発明の第２モデル演算手段には、第２動力学モデルとしての逆フルモデル２０１により、モデル床反力瞬時値としてのフルモデル床反力水平成分Ffullおよびフルモデル床反力モーメントMfullを求める処理（特にMfullを求める処理）が対応している。また、第２３〜第２５発明並びに第２７〜第３９発明の第１モデル入力補正手段には、図１３のフローチャートのＳ０３８の処理（逆フルモデル２０１の演算処理を除く）が対応している。この場合、フルモデル床反力モーメントＭfullが、モデル床反力瞬時値と目標床反力の仮瞬時値との差に相当する。また、前記単純化モデル上体水平位置補正用モーメントMpsおよび単純化モデル上体姿勢角補正用モーメントMrsが、目標床反力の補正量として求められ、それが、第１動力学モデルとしての単純化モデル２００に追加的に入力される。そして、第２動力学モデルとしての逆フルモデル２０１の入力が目標運動の目標瞬時値（補正目標上体水平位置や、補正目標上体姿勢等）として決定される。また、第２５発明に対応して、逆フルモデル２０１の出力としての補正目標床反力モーメント水平成分や補正目標床反力水平成分が目標床反力の目標瞬時値として得られる。さらに、第２７発明の第２モデル入力補正手段の処理に対応して、第２動力学モデルとしての逆フルモデル２０１には、目標運動の補正量として、補正用摂動モデル上体水平位置Xcおよび補正用摂動モデル上体姿勢角θcが求められて追加的に入力される。
【０７３９】
また、第４実施形態は、第２８〜第２９発明に係る摂動モデルとして、上体水平位置補正用摂動モデル２０２および上体姿勢角補正用摂動モデル２０３を備えると共に、分配手段として、分配器２２０，２２１を備える。そして、これらの分配器２２０，２２１に入力する床反力操作量として、積分器２１７ａの出力と上体姿勢角補正用モーメントMrとが用いられる。また、前記第２９発明および第３０発明に係わる床反力操作量の要求値として、前記上体水平位置安定化モーメント要求値Mpfdmdおよび上体姿勢角安定化モーメント要求値Mrfdmdが用いられる。また、特に、第３６発明に対応して、床反力操作量の第１操作量成分として、積分器２１７ａの出力が用いられ、第２操作量成分として、上体水平位置補正用モデル安定化モーメントMpfと上体姿勢角補正用モデル安定化モーメントMrf（これは第４実施形態では、分配器２２０に入力する上体姿勢角補正用モーメントMrに等しい）とが用いられる。
【０７４０】
第２６発明に係わる第１補正量成分には、積分器２１７ａの出力が対応し、第２補正量成分には、上体水平位置安定化モーメントMpfと、上体姿勢角安定化モーメントMrf（これは第４実施形態では、Mrに等しい）とが対応している。さらに、第４実施形態では、前記上体水平位置安定化モーメント要求値Mpfdmdおよび上体姿勢角安定化モーメント要求値Mrfdmdが目標床反力の補正量の要求値として用いられる。また、無制限時補正目標床反力モーメントMinと無制限時補正目標床反力水平成分Finとが第２６発明における制限対象量の推定値として前記Min演算部２０９およびFin演算部２１０により求められると共に、制限済制限対象量として、前記制限補正目標床反力モーメントMltdと制限補正目標床反力水平成分Fltdとが制限処理部２１１により求められる。この他、第３２発明におけるロボットの所定の部位には、ロボット１の上体２４が対応している。
【０７４１】
なお、第４実施形態で用いる床反力モーメント水平成分は、目標床反力鉛直成分を用いて適宜、ＺＭＰに換算してもよいことは前記第１実施形態等の場合と同様である。
【０７４２】
また、前記第３５発明は、床反力操作量に対する要求値を持たないものであり、この場合の実施形態は、前記第４実施形態において、MpfdmdおよびMrfdmdをともに０とすればよい。これにより、第３５発明とこれを必要要件とする発明との実施形態が構築されることとなる。この実施形態と第３５発明などとの対応関係は、上記の第４実施形態に関する対応関係と同様である。
【０７４３】
次に本発明の第５実施形態を説明する。前記第３実施形態の歩容の修正手法を説明する機能ブロック図（図５８）における点線で囲った部分（Mrfdmd決定処理部２１９及びMpfdmd決定処理部２１８を除いた部分）は、上体水平位置安定化モーメント要求値Mpfdmd、上体姿勢角安定化モーメント要求値Mrfdmd、目標ＺＭＰ、目標床反力鉛直成分、目標足平位置姿勢および目標腕姿勢などその他の部位の運動状態を入力として、補正目標上体鉛直位置、補正目標上体水平位置、補正目標上体姿勢角、（目標ＺＭＰまわりの）補正目標床反力モーメント水平成分、および補正目標床反力水平成分を出力する順動力学フルモデルとなっている。そこで、これを擬似順動力学フルモデルと呼び、参照符号２２２を付する。この擬似順動力学フルモデル２２２（すなわち図５８の点線で囲った部分）は、図６０のような入出力関係を持った機能ブロックで表される。
【０７４４】
第５実施形態に係る装置の歩容補正手法は、第１〜第４実施形態で用いた逆動力学フルモデル（逆フルモデル）２０１に代えて、上記擬似順動力学フルモデル２２２を順動力学フルモデルとして用いた、歩容の補正手法である。
【０７４５】
図６１は、この第５実施形態に係る装置の動作、具体的には、図１３フローチャートのＳ０３８の歩容の修正手法を説明する機能ブロック図である。ここで、図６１に示す単純化モデル２２３は、本実施形態における擬似順動力学フルモデル２２２に含む単純化モデル２００とは別に備えた第２の単純化モデルである。この第２の単純化モデル２２３は、本実施形態でのその機能は、前述した単純化モデル２００と同一であり、単に動力学モデルだけでなく、前述の図１３のＳ０１０からＳ０３４の処理、すなわち単純化モデル歩容瞬時値の算出（決定）処理を表すものである。したがって、図６１において、単純化モデル２２３以外の部分がＳ０３８の処理に相当する。なお、単純化モデル２２３は、実際上は、上体姿勢角の瞬時値と、上体水平位置の瞬時値とを決定できればよく、必ずしも図１３のＳ０１０からＳ０３４の処理の全てを行なう必要はない。
【０７４６】
第５実施形態では、Ｓ０３８の処理以外の構成は第１実施形態と同じであるので説明を省略し、以下に図６１を用いてＳ０３８の処理を詳細に説明する。
【０７４７】
第５実施形態においては、歩容生成装置１００は、図６１に示す如く、前記擬似順動力学フルモデル２２２と第２の単純化モデル２２３とを備え、第２の単純化モデル２２３を用いて生成される歩容と前記擬似順動力学フルモデル２２２を用いて算出される歩容との間の上体水平位置および上体姿勢角のそれぞれの差が演算部２２４，２２５により求められる。そして、これらの差に応じて、これらの差が０に収束するようにＰＩＤなどのフィードバック制御則によって上体水平位置安定化モーメント要求値Mpfdmdおよび上体姿勢角安定化モーメント要求値Mrfdmdが決定される。すなわち、単純化モデル２２３による上体水平位置と擬似順フルモデル２２２による上体水平位置との差に応じて、フィードバック制御則からなる上体水平位置安定化制御則２２６によって、Mpfdmdが求められる。また、単純化モデル２２３による上体姿勢角と擬似順フルモデル２２２による上体姿勢角との差に応じて、フィードバック制御則からなる上体姿勢角安定化制御則２２７によって、Mrfdmdが求められる。そして、この決定されたMpfdmd及びMrfdmdは、前記擬似順動力学フルモデルにフィードバックされて入力される。つまり、前記第３実施形態に係る図５８でMpfdmd決定処理部２１８、Mrfdmd決定処理部２１９の出力の代わりに、それぞれ、上記上体水平位置安定化制御則２２６の出力（Mpfdmd）と、上体姿勢角安定化制御則２２７の出力（Mrfdmd）とが図５８の点線で囲った部分により表される擬似順フルモデル２２２に入力される。
【０７４８】
また、歩容生成装置１００は、前記擬似順動力学フルモデル２２２への入力の一部である目標ＺＭＰ、目標床反力鉛直成分、目標足平位置姿勢および目標腕姿勢などと、前記擬似順動力学フルモデルからの出力である補正目標上体鉛直位置、補正目標上体水平位置、補正目標上体姿勢角、補正目標床反力水平成分および補正目標床反力モーメント水平成分を最終的な今回歩容の目標瞬時値として出力する。
【０７４９】
ここで、以上説明した第５実施形態と本発明との対応関係を説明しておく。第５実施形態は、前記した本願発明のうちの第４０および第４１発明に対応している。なお、第５実施形態は、前記第４２発明にも対応しているが、これについては後述する。第４０、第４１発明の許容範囲設定手段には、図１３のフローチャートのＳ０３０、Ｓ０３６の処理が対応しており、並進床反力水平成分とＺＭＰ（真のＺＭＰ）とを制限対象量として、それらの許容範囲が設定される。また、第４０、第４１発明の目標床反力仮瞬時値決定手段には、図１３のフローチャートのＳ０３２の処理のうちの一部（具体的には図３７のＳ９００やＳ９０２の処理、すなわち、目標床反力鉛直成分や目標ＺＭＰの瞬時値算出処理）が対応している。また、第４０、第４２発明の第２モデル演算手段には、前述した図６１の擬似順フルモデル２２２の演算処理、すなわち、前記第３実施形態で説明した図５８の点線枠の部分の処理が対応している。また、第４０、第４２発明の第１モデル演算手段には、前述した図６１の単純化モデル２２３の処理が対応している。これらのモデル２２２，２２３は、いずれも、上体姿勢角および上体水平位置を目標運動の仮瞬時値として出力する。なお、擬似順フルモデル２２２は、前記第３実施形態で説明した図５８の点線枠の部分の処理を行なうものであるから、該擬似順フルモデル２２２が出力する床反力モーメント水平成分および床反力水平成分は、それらの許容範囲内のものとなる。また、第４０、第４１発明における操作量算出手段には、前述した図６１の上体姿勢角安定化制御則２２７および上体水平位置安定化制御則２２６の処理が対応しており、これらの制御則２２７，２２６により、上体姿勢角安定化モーメント要求値Mrfdmdおよび上体水平位置安定化モーメントMpfdmdが床反力操作量として求められる。さらに、第４０、第４１発明におけるモデル入力補正手段には、前記第５実施形態で、上記MrfdmdおよびMpfdmdが第２動力学モデルとしての擬似順フルモデル２２２に追加的に入力されることが対応している。このほか、第４１発明におけるロボットの所定の部位には、ロボット１の上体２４が対応している。
【０７５０】
なお、前記第５実施形態では、Mpfdmdを求めるために上体水平位置を用いたが、擬似順フルモデル２２２と単純化モデル２２３とで、それぞれロボット１の重心位置を求めるようにし、それらの重心位置の差から、その差を０に近づけるようにＰＩ制御則等のフィードバック制御則によりMpfdmdを求めるようにしてもよい。また、第５実施形態で用いる床反力モーメント水平成分は、目標床反力鉛直成分を用いて適宜、ＺＭＰに換算してもよいことは前記第１実施形態等の場合と同様である。
【０７５１】
前記第５実施形態は、さらに本願の第４２発明にも対応している。すなわち、第４２発明は前記第３実施形態と対応する第２６発明を必要要件とするものであり、この第４２発明における第３モデル演算手段には、前述した図６１の単純化モデル２２３の処理が対応している。そして、上体姿勢角安定化制御則２２７および上体水平位置安定化制御則２２６によりそれぞれ求められるMrfdmdおよびMpfdmdが第４２発明における要求値として用いられる。
【０７５２】
前記第５実施形態以外にも、順動力学フルモデル（順フルモデル）を用いる手法は、本出願人が先に提案した特願２００１−１２２６２１号に提示したごとく、多くの種類がある。これらそれぞれに対し、フルモデルを前記擬似順動力学フルモデルに置き換え、上体姿勢角を安定化する制御則を追加すれば、ＺＭＰ許容範囲と床反力水平成分許容範囲とを考慮したフルモデル補正手法にすることができる。
【０７５３】
すなわち、順動力学フルモデルを用いる手法をより一般的に言うならば、順動力学フルモデルと単純化モデルとを備え、前記単純化モデルを用いて生成される歩容と前記順動力学フルモデルとの間の上体水平位置およびまたは上体姿勢角の差を求める。そして、少なくともその求めたいずれかの差に応じて、この差が０に収束するように操作量を決定し、これを前記単純化モデルまたは前記順動力学フルモデルの少なくともいずれかにフィードバック（入力）し、前記順動力学フルモデルの入出力を含む歩容を、補正歩容として生成する手法が順動力学フルモデルを用いる手法である。
【０７５４】
前記擬似順フルモデル２２２には第３実施形態のフルモデル歩容生成装置（歩容補正手法）を用いる代わりに、その他の実施形態のいずれを用いても良い。ただし、摂動モデル２０２，２０３を持つものの場合（第１実施形態や、第２実施形態、第４実施形態）、摂動モデル２０２、２０３の変位が過大になり過ぎる場合があるので、１歩の歩容（今回歩容）の生成が完了する毎に摂動モデル２０２，２０３の変位を単純化モデル２００に加え、摂動モデル２０２，２０３を初期化すれば良い。
【０７５５】
また、前記操作量（上体水平位置安定化モーメント要求値Mpfdmdまたは、前記単純化モデル２００にフィードバックする操作量）を決定する際には、上体水平位置の差ではなく、重心水平位置の差を基に決定しても良い。あるいは、上体水平位置の差と重心水平位置の差の両者を基に前記操作量を決定しても良い。
【０７５６】
前述の単純化モデル歩容の生成処理に係わる定常歩容パラメータの決定、今回歩容パラメータの決定または今回歩容の瞬時値の生成のためのロボット１の動力学モデル（目標ＺＭＰなど床反力に関する変数などを入力して、動力学的平衡条件や床反力水平成分許容値などの制約条件を満足する上体位置・姿勢を生成する処理）として、前記擬似順動力学フルモデルを用いても良い。この場合、上体水平位置安定化モーメント要求値Mpfdmdは０にして置けば、目標ＺＭＰまわりのモーメント水平成分は０になる。
【０７５７】
このようにすると、探索手法を用いることなく、動力学的平衡条件と制約条件を満足する歩容の各時刻における瞬時値を算出することが可能となるので、演算量を大幅に低減することができる。
【０７５８】
床反力水平成分許容範囲とＺＭＰ許容範囲のいずれか一方を、無視あるいは削除し（許容範囲と制限処理部２１１の処理とを省略する）、あるいは許容範囲を十分に大きく設定して実質上許容範囲を無視しても良い。
【０７５９】
また、許容範囲は床面の状況や歩容の形態に応じて設定を変えても良い。
【０７６０】
例えば、滑り易い床面での歩行では、床反力水平成分許容範囲を狭く設定し、ＺＭＰ許容範囲を広く設定あるいは無視することより、滑り難い歩容が生成される。
【０７６１】
また、階段歩行で踏みしろが少ない場合やつま先立ち歩行など接地面積が小さい歩行の場合には、床反力水平成分許容範囲を広く設定あるいは無視し、ＺＭＰ許容範囲を狭く設定することより、安定余裕が高い歩容が生成される。
【０７６２】
走行の場合には、前述の実施形態のごとく、床反力水平成分許容範囲は床反力鉛直成分に応じて適切に設定される必要がある。
【０７６３】
制限手段（制限処理部２１１）の詳細説明において、前述の各実施形態では、演算を簡素化するために、ＺＭＰ許容範囲を、前後方向（X軸方向）成分と左右方向（Y軸方向）成分とでそれぞれ独立に設定した例を示したが、前述したように支持多角形に応じて、ＺＭＰ許容範囲を前後方向（X軸方向）と左右方向の関係式で表した方が、より安定余裕の高い適切な歩容が生成される。例えば、次式のようにひとつまたは複数の不等式から成る連立不等式でＺＭＰ許容範囲を表しても良い。
【０７６４】
0003679105.tif 000040
ただし、a11などは、定数
これに伴い、補正歩容の床反力モーメント水平成分の許容範囲も、式３３の代わりに連立不等式で表現される。
【０７６５】
また、前記実施形態では、演算を簡素化するために、床反力水平成分許容範囲も、前後方向（X軸方向）成分と左右方向（Y軸方向）成分とでそれぞれ独立に設定した例を示したが、これも前後方向と左右方向の関係式で表した方が、よりスリップし難い歩容が生成される。
【０７６６】
例えば、次式のようにいわゆる摩擦円を許容範囲としても良い。
【０７６７】
0003679105.tif 000041
ここで、Fzは目標床反力鉛直成分、μは摩擦係数、kaは１以下の正の定数を表す。
【０７６８】
ただし、以上のように、ＺＭＰ許容範囲や床反力水平成分許容範囲を前後方向と左右方向との関係式で表す場合、各許容範囲を同時にあるいは交互に満足するように、サジタルプレーン上での運動とラテラルプレーン上での運動を並列的に求める必要がある。
【０７６９】
単純化モデル２００を用いた歩容生成においては、床反力水平成分許容範囲を無視するか、あるいは床反力水平成分許容範囲を十分に大きくして、事実上、床反力水平成分許容範囲を無視できるようにして歩容を生成しても構わない。この場合、床反力水平成分許容範囲を越えないように上体姿勢角を変化させることが不必要になるので、生成される目標上体姿勢角は、基準上体姿勢角（目標上体姿勢角の収束目標）に常に一致させて置けば良い。こうすることにより、上体姿勢角の複雑な挙動は抑えられるので挙動予測が容易になり、単純化モデル２００を用いた歩容の生成および継続的な安定性を保証した（発散しない）歩容のパラメータを決定することが容易になる。このようにして生成された単純化モデル歩容は、動力学的平衡条件を十分に満足していない不安定な歩容であったり、スリップしやすい歩容であるかもしれない。しかし、上記したごとく、フルモデル２０１又は２２２を用いて歩容を修正することにより、安定余裕が高くスリップしにくい歩容に修正されるので問題ない。
【０７７０】
また、単純化モデル２００は、床反力鉛直成分が小さい時に、目標ＺＭＰを無視して、床反力水平成分許容範囲を重点的に満足するようにしても良い。たとえば、走行歩容の空中期では、目標ＺＭＰまわりの床反力モーメントを無視して、単に全体重心水平加速度が０になるように歩容を生成しても良い。このようにして生成された単純化モデル歩容でも、前述の各実施形態の如く、フルモデル２０１又は２２２を用いて歩容を修正することにより、安定余裕が高くスリップしにくい歩容に修正することができるので問題ない。
【０７７１】
上体水平位置補正用摂動モデル２０２においては、両脚体２，２に作用する重力と慣性力との合力の並進力鉛直成分を、両脚体２，２に作用する慣性力を無視して、両脚体２，２に作用する重力で近似しても良い。
【０７７２】
上体水平位置補正用摂動モデル２０２の上体質点は、前述の実施形態では、上体床反力鉛直成分Fbzに応じた鉛直方向運動を行うものとしたが、上体質点の鉛直方向運動を無視し、上体質点の鉛直位置が一定高さであると近似しても良い。走行においては、通常、上体位置と床との距離（鉛直方向距離）の変動は１０パーセント以下であるからである。ただし、この場合でも、上体水平位置補正用摂動モデル２０２の上体質点には、上体床反力鉛直成分Fbzに釣り合う仮想的な鉛直方向の拘束力が作用するものとして、上体水平位置補正量摂動モデル２０２の挙動を決定するのが望ましい。
【０７７３】
前述の実施形態における単純化モデル歩容の生成処理においては、上体姿勢角を初期値に戻すための上体姿勢角加速度を発生させる上体姿勢復元モーメントのＺＭＰ換算値である上体姿勢復元モーメントＺＭＰ換算値ＺＭＰrecを生成していたが、上体姿勢角補正用摂動モデル制御則としてこのモーメントを算出するアルゴリズムを用い、算出されたモーメントを上体姿勢角安定化モーメント要求値Mrfdmdとしても良い。
【０７７４】
補足すると、上体姿勢復元モーメント、あるいは、上体姿勢復元モーメントＺＭＰ換算値（ＺＭＰrec）は、床反力水平成分許容範囲、ＺＭＰ許容範囲（床反力モーメント水平成分許容範囲）が十分に大きい時に、前述したような台形状パターンなど、あらかじめ関数構造を決めたパターン（時間関数）で発生される。したがって、制限手段において制限が加わることがなく、そのまま、上体姿勢角補正用摂動モデル安定化モーメントMrf（上体姿勢角安定化モーメントMrf）となって、単純化モデルの上体姿勢角加速度を変化させるように作用する。しかも、通常の線形フィードバックのように収束に無限時間かからないと共に、適切なＺＭＰrecのパターンを発生させることで、上体姿勢角を基準あるいは目標上体姿勢角に有限時間で整定させることもできる。
【０７７５】
上体水平位置補正用摂動モデル制御則も、前述の単純化モデル歩容の生成処理における上体姿勢復元モーメントの決定法のごとく、床反力水平成分許容範囲、ＺＭＰ許容範囲（床反力モーメント水平成分許容範囲）が十分に大きい時に、上体水平位置安定化モーメント要求値Mpfdmdを、台形状パターンなど、あらかじめ関数構造を決めたパターン（時間関数）で発生するようにしても良い。したがって、制限手段において制限が加わることがなく、そのまま、上体水平位置補正用摂動モデル安定化モーメントMpf（上体水平位置安定化モーメントMpf）となって、単純化モデル２００の上体水平加速度を変化させるように作用する。
【０７７６】
歩容の補正に用いられる積分演算（ブロック図における積分器）の代わりに、ＰＩ制御などの他のフィードバック制御則を用いても良い。
【０７７７】
例えば、フルモデル床反力モーメント誤差Merrを０に収束させるための制御則には、前記積分器２１７ａの代わりに、ＰＩ制御などの他の制御則を用いても良い。
【０７７８】
同様に、例えば、制限補正目標床反力水平成分Fltdからフルモデル床反力水平成分Ffullを減じた値を入力して上体並進モード床反力比率ｈの逆数と上体水平位置補正用摂動モデル安定化モーメントMpfの積を出力する制御則には、積分器２１５ａの代わりに、ＰＩ制御などの他の制御則を用いても良い。
【０７７９】
前記実施形態に用いられるゲイン、例えば前記積分器２１７ａのゲインKm、積分器２１５ａのゲインKc、あるいは上体水平位置補正用摂動モデル制御則２０６などのフィードバック制御則のゲインは、一定値でなくても良い。例えば、床反力水平成分許容範囲、ＺＭＰ許容範囲、歩容の時期などに応じて、それらのゲインを変更するようにしてもよい。
【０７８０】
上体並進モード床反力比率ｈが、式a１４のように解析的に求めることができない場合には、式a７に示す定義に戻って、動力学モデルにおいて上体水平位置Xbの加速度を微小量だけ摂動させてみて、床反力モーメントMyと床反力水平成分Fxの摂動の比を求め、この比をもって上体並進モード床反力比率ｈとしても良い。
【０７８１】
または、精度は若干低下するが、あらかじめ標準的な歩容における上体並進モード床反力比率ｈ値の平均値を求めておいて、それを用いても良い。
【０７８２】
前記制限手段（制限処理部２１１）では、無制限時補正目標床反力モーメントMinが床反力モーメント水平成分許容範囲内に存在していないか、あるいは、無制限時補正目標床反力水平成分Finが床反力水平成分許容範囲内に存在していない場合、FltdとMltdは、式３５、式３６、式３７、式３８、式４１を満足するように決定しつつ、ΔMp2の絶対値が最小となるように決定し、また、これらの条件を満足した上で、ΔFの絶対値ができる限り小さくなるように決定したが、式４１の代わりに式１１１を用いても良い。ただし、ｃは所定の値である。
【０７８３】
ΔM = ΔF * c + ΔMp2            …式１１１
cを上体並進モード床反力比率ｈより大きくすればするほど、前記補正用摂動モデル上体水平位置が前記補正用摂動モデル上体姿勢角よりも優先的に安定化される。
【０７８４】
前記第２、第３、第４実施形態おいては、フルモデル床反力モーメントMfullと制限補正目標床反力モーメントMltdは前述のごとくほぼ一致するので、フルモデル床反力モーメントMfullの代わりに制限補正目標床反力モーメントMltdを補正目標床反力モーメント水平成分として出力しても良い。
【０７８５】
また、フルモデル床反力水平成分Ffullと制限補正目標床反力水平成分Fltdは前述のごとくほぼ一致するので、フルモデル床反力水平成分Ffullの代わりに制限補正目標床反力水平成分Fltdを補正目標床反力水平成分として出力しても良い
また、前記第１〜第４実施形態では、単純化モデル２００を用いて逆フルモデル２０１に入力する歩容瞬時値を生成して、歩容の修正を行なう例を示したが、テーブル化された歩容をフルモデルに入力して、歩容の修正を行なうようにしてもよい。
【０７８６】
制限手段（制限処理部２１１）における、補正用摂動モデル安定化モーメント要求値（上体水平位置安定化モーメント要求値）Mpfdmd、フルモデル床反力水平成分Ffull、上体水平位置補正用摂動モデル安定化モーメント（上体水平位置安定化モーメント）Mpf、フルモデル床反力水平成分Ffullと制限補正目標床反力水平成分Fltdなどから無制限時補正目標床反力水平成分Finおよび上体水平位置補正用摂動モデル安定化モーメント（上体水平位置安定化モーメント）Mpfを算出する方法としては、本願出願人が２００２年１２月２４付けで出願したＰＣＴ特許出願（名称：「制御システム」、内容は制限機能に関するもの）にて提案しているバイアス推定値を推定する手法を用いても良い。この手法と本実施例の制限手段での方法は、同ＰＣＴ特許出願に示すごとく近似的に等価変換できる。
【０７８７】
目標床反力鉛直成分を満足する目標全体重心鉛直位置とフルモデル歩容の全体重心鉛直位置（フルモデル全体重心鉛直位置）との差に基づいて、この差が０に収束するように、補正目標上体鉛直位置を決定しても良い。
【０７８８】
この手法による補正目標上体鉛直位置決定処理を表す機能ブロック図を図６２に示す。この図６２を用いて、その処理を説明すると、補正歩容の瞬時値を基に、フルモデルを用いて全体重心鉛直位置（以降、フルモデル全体重心鉛直位置と呼ぶ）が求められる。さらに、目標床反力鉛直成分を満足する目標全体重心鉛直位置と前記求めたフルモデル全体重心鉛直位置との差（フルモデル全体重心鉛直位置差）に所定のゲインKgzを乗じた値が積分され、高さ補正値が算出される。そして、単純化モデルを用いて決定した上体鉛直位置に所定のフィードフォワードゲインKffgzを乗じた値と、上記高さ補正値とを加えた高さがフルモデル上体鉛直位置（すなわち補正目標上体鉛直位置）として求められる。
【０７８９】
フィードフォワードゲインKffgzは、０から１までの間の所定の値である。フィードフォワードゲインKffgzを０にする、すなわち、単純化モデル歩容上体鉛直位置を考慮せずに、補正目標上体鉛直位置を決定しても良い。この場合には、高さ補正値と補正目標上体鉛直位置とは一致する。
【０７９０】
尚、床反力鉛直成分は、ロボット１の全体重心鉛直加速度と重力加速度との和に比例するので、歩容パラメータとして、床反力鉛直成分軌道の代わりにロボット１の全体重心鉛直加速度軌道に関するパラメータを明示的に設定しても構わない。本質的に同じことである。さらに、床反力鉛直成分軌道の代わりに、ロボット１の全体重心軌道に近い挙動をする部位の鉛直加速度軌道に関するパラメータを明示的に設定しても構わない。例えば、脚体２，２の質量が上体２４の質量に比べ十分に小さい場合には、上体鉛直加速度軌道とロボット１の全体重心鉛直加速度軌道は、ほぼ同じか比例関係になるので、床反力鉛直成分軌道の代わりに上体鉛直加速度軌道を用いても良い。
【０７９１】
同様に、床反力水平成分とロボット全体重心水平加速度は、比例関係にあるので、前記実施形態における床反力水平成分およびその許容範囲の代わりに、ロボット全体重心水平加速度およびその許容範囲を用いても構わない。また、ロボット全体重心水平軌道に近い挙動をする部位の水平加速度軌道に関するパラメータを明示的に設定しても構わない。例えば、脚体２，２の質量が上体２４の質量に比べ十分に小さい場合には、上体水平加速度軌道とロボット１の全体重心水平加速度軌道は、ほぼ同じか比例関係にあるので、床反力水平成分およびその許容範囲の代わりに上体水平加速度およびその許容範囲を用いても良い。
【０７９２】
さらに、斜面移動時（傾斜した床面でロボット１を移動させるとき）の歩容生成においては、床反力水平成分許容範囲や全体重心加速度水平成分の許容範囲の代わりに、並進床反力の床面平行成分（床面に平行な成分）、すなわち摩擦力の許容範囲、あるいは全体重心加速度の床面平行成分（これは重力成分を除けば摩擦力に比例する）の許容範囲を設定するようにしてもよい。例えば、並進床反力の床面平行成分（摩擦力）の許容範囲を設定する場合に関して説明（この説明は全体重心加速度の床面平行成分の許容範囲を設定する場合でも同様である）すると、該摩擦力は、床面の水平面に対する傾斜角度をθf（ロボット１の進行方向に向かって前下がり斜面の場合を正とする）とすると、次式ｃ７２の関係が成立する。従って、前記実施形態と同様のアルゴリズムに歩容を生成する場合、この式ｃ７２の関係を用いて、摩擦力許容範囲を床反力水平成分許容範囲に変換することで、該床反力水平成分許容範囲を設定するようにすればよい。なお、この場合、式ｃ７２の床反力鉛直成分には、目標床反力鉛直成分を用いればよい。
【０７９３】
0003679105.tif 000042
床反力水平成分と目標ＺＭＰまわりの床反力モーメント水平成分とを適切な値にするために、前記の実施形態では、上体回転モードと上体並進モードとの２つの運動モードを用いたが、これら以外の運動モードを用いても良い。
【０７９４】
例えば、図６３のように、ロボット１の股関節を中心に上体姿勢を回転させると、全体重心まわりの角運動量が変化すると共に全体重心も変化する。この運動と前記上体並進モードとをある所定の割合で重ね合わせると（合成すると）、前記上体回転モードとほとんど同じ運動になり、床反力水平成分が発生しなくなる。したがって、これを改めて前記上体回転モードとみなせば、前記実施形態のアルゴリズムにしたがって、同様の歩容を生成することができる。
【０７９５】
したがって、運動モードのひとつが床反力水平成分を発生しない運動モードである必要もない。いかなるモードの組み合わせであっても、床反力水平成分と目標ＺＭＰまわりの床反力モーメント水平成分の発生の割合が異なる２つの運動モードを用いさえすれば、上記例のように、任意の床反力水平成分と目標ＺＭＰまわりの床反力モーメント水平成分とを発生させることができるからである。
【０７９６】
また、上体姿勢以外の運動モードを用いても良い。ただし、なるべく小さい変位で大きな床反力水平成分または目標ＺＭＰまわりの床反力モーメント水平成分が発生できる運動モードを選ぶべきである。
【０７９７】
例えば、左右の腕を同一回転方向に振りまわす運動モード、接地していない（空中に存在する）足平の位置を摂動させる運動モードでも良い。ただし、遊脚軌道を摂動させる場合には、着地位置が変わらないように着地直前までには、摂動量を実質的に０に戻すべきである。
【０７９８】
また、３つ以上の運動モードを用いても良い。
【０７９９】
また、選んだモードのうちの少なくとも２つは、床反力水平成分と目標ＺＭＰまわりの床反力モーメント水平成分との発生比率が、互いに異なるものである必要がある。そうでないと、一般的に連立方程式の解がなくなるからである。
【０８００】
さらにできる限り、床反力水平成分をあまり変化させないで目標ＺＭＰまわりの床反力モーメント水平成分を十分に大きく変化させることができる運動モードと、目標ＺＭＰまわりの床反力モーメント水平成分をあまり変化させないで床反力水平成分を十分に大きく変化させることができる運動モードとを組み合わせることが望ましい。
【０８０１】
言いかえると、全体重心をあまり変化させないで角運動量を十分に大きく変化させることができる運動モードと、角運動量をあまり変化させないで全体重心を十分に大きく変化させることができる運動モードとを組み合わせることが望ましい。運動モードの変位が小さくなるからである。
【０８０２】
前記単純化モデルとして、前記実施形態に用いた動力学モデル以外にも以下のモデルを用いても良い。
１）図１２に示したように複数のリンクに質点を設定した非線形なモデル（多質点モデル）
２）本願出願人による特願２０００−３５２０１１号に示された３質点モデル
３）上体にのみ質量がある１質点モデル
４）全体重心まわりの角運動量変化によって生じる慣性力のモーメントを無視したモデル
５）重力と慣性力との合力（または床反力）と上体並進運動との関係を表す部分モデルと、上記合力と上体回転運動の関係を表す部分モデルを分離して持つ分離型モデル。例えば、図１１に示す質点は、上記合力と上体並進運動との関係を表す部分モデルであり、図１１に示すフライホイールは、上記合力と上体回転運動との関係を表す部分モデルである。
【０８０３】
尚、フルモデルは、基本的には、単純化モデルよりもより近似精度の高い動力学モデルを用いることが好ましいが、単純化モデルと同等の近似精度の動力学モデルを用いてもよい。
【０８０４】
また、特に、単純化モデル歩容の生成における各処理で用いられるモデルは同一でも良いし、処理に応じて適宜、モデルを使い分けても良い。例えば、前記定常歩容は今回歩容の終端状態を決定するためだけに生成されるものであるので、その定常歩容の動力学的な精度に対する要求は、今回歩容に比べて小さい。そこで、例えば、今回歩容の生成処理では、図１１の単純化モデル（３質点＋フライホイールのモデル）を用いる一方、定常歩容の生成処理（特に図２２のＳ４０８、Ｓ４１２）では、各脚体２の質量を無視し、上体２４に対応する上体質点２４ｍと、フライホールFHとで構成される動力学モデル（図１１のモデルで脚質点２ｍ，２ｍを除去した１質点＋フライホイールのモデル）を用いて定常歩容を生成するようにしてもよい。この場合の定常歩容の生成処理では、前記実施形態において、脚質点２ｍの質量を０として前記図２２のＳ４０８、Ｓ４１２の処理を行なうようにすればよい。このようにすると、定常歩容の生成処理における演算量を大幅に削減できる。
【０８０５】
尚、前述した各実施形態において、ブロック線図、フローチャート、およびアルゴリズムなどは、演算処理順序を変えるなどの等価変形をしても良い。また、適宜ローパスフィルタを挿入しても良い。
【０８０６】
また、前記各実施形態を２足移動ロボットに関して説明してきたが、３足以上の多脚ロボットにも本発明を適応することができる。
【０８０７】
産業上の利用可能性
以上のように本発明は２足移動ロボット等の脚式移動ロボットを、様々な歩容形態で円滑に移動させることが可能な歩容を生成することができるものとして有用である。
【図面の簡単な説明】
【０８０８】
【図１】本発明の実施形態における脚式移動ロボットとしての２足移動ロボットの全体的構成の概略を示す概略図。
【図２】図１のロボットの各脚体の足平部分の構成を示す側面図。
【図３】図１のロボットに備えた制御ユニットの構成を示すブロック図。
【図４】図３の制御ユニットの機能的構成を示すブロック図。
【図５】図１のロボットの走行歩容を例示する説明図。
【図６】目標床反力鉛直成分の設定例を示す線図。
【図７】目標ＺＭＰの設定例を示す線図。
【図８】歩容生成装置の要部構成を機能的に示すブロック図。
【図９】ロボットの運動モード（上体並進モード）の説明図。
【図１０】ロボットの運動モード（上体回転モード）の説明図。
【図１１】ロボットの動力学モデルの説明図。
【図１２】ロボットの動力学モデルの説明図。
【図１３】図３の制御ユニットに備えた歩容生成装置のメインルーチン処理を示すフローチャート。
【図１４】ロボットの上体位置の発散状態を示す説明図。
【図１５】図１３のフローチャートサブルーチン処理を示すフローチャート。
【図１６】定常歩容足平着地位置姿勢及び座標系の関係を示す説明図。
【図１７】定常歩容の目標床反力鉛直成分の設定例を示す線図。
【図１８】定常歩容の床反力水平成分許容範囲の設定例を示す線図。
【図１９】定常歩容の目標ＺＭＰの設定例を示す線図。
【図２０】図１３のフローチャートのサブルーチン処理を示すフローチャート。
【図２１】図２０のフローチャートのサブルーチン処理を示すフローチャート。
【図２２】図２１のフローチャートのサブルーチン処理を示すフローチャート。
【図２３】図２２のフローチャートのサブルーチン処理を示すフローチャート。
【図２４】図２２のフローチャートの要部の処理を説明するための線図。
【図２５】図２２のフローチャートの要部の処理を説明するための線図。
【図２６】図２２のフローチャートの要部の処理を説明するための線図。
【図２７】図２２のフローチャートの要部の処理を説明するための線図。
【図２８】図２２のフローチャートの要部の処理を説明するための線図。
【図２９】図２２のフローチャートの要部の処理を説明するための線図。
【図３０】図２２のフローチャートの要部の処理を説明するための線図。
【図３１】図２２のフローチャートの要部の処理を説明するための線図。
【図３２】定常歩容における上体位置の軌道の例を示す説明図。
【図３３】図１３のフローチャートのサブルーチン処理を示すフローチャート。
【図３４】今回歩容の床反力水平成分許容範囲の設定例を示す線図。
【図３５】図１３のフローチャートのサブルーチン処理を示すフローチャート。
【図３６】図３５のフローチャートのサブルーチン処理を示すフローチャート。
【図３７】図３６のフローチャートのサブルーチン処理を示すフローチャート。
【図３８】図３７のフローチャートのサブルーチン処理を示すフローチャート。
【図３９】図３８のフローチャートの要部の処理を説明するための線図。
【図４０】歩行時の床反力鉛直成分の設定例を示す線図。
【図４１】本発明の要部における歩容補正手法の分類を示す説明図。
【図４２】本発明の第１実施形態における歩容補正手法を機能的に示すブロック図。
【図４３】摂動モデルの説明図。
【図４４】摂動モデルの説明図。
【図４５】ＺＭＰ許容範囲の設定例を示す図。
【図４６】制限対象量（床反力水平成分および床反力モーメント水平成分）の制限手法の説明図。
【図４７】制限対象量（床反力水平成分および床反力モーメント水平成分）の制限手法の説明図。
【図４８】制限対象量（床反力水平成分および床反力モーメント水平成分）の制限手法の説明図。
【図４９】制限対象量（床反力水平成分および床反力モーメント水平成分）の制限手法の説明図。
【図５０】本発明の第２実施形態における歩容補正手法を機能的に示すブロック図。
【図５１】図５０のブロック図の機能の説明図。
【図５２】図５０のブロック図の機能の説明図。
【図５３】図５０のブロック図の機能の説明図。
【図５４】図５０のブロック図の機能の説明図。
【図５５】図５０のブロック図の機能の説明図。
【図５６】図５０のブロック図の機能の説明図。
【図５７】図５０のブロック図の機能の説明図。
【図５８】本発明の第３実施形態の歩容補正手法を機能的に示すブロック図。
【図５９】本発明の第４実施形態の歩容補正手法を機能的に示すブロック図。
【図６０】本発明の第５実施形態に係る順動力学モデルの説明図。
【図６１】本発明の第５実施形態における歩容補正手法を機能的に示すブロック図。
【図６２】ロボットの上体の鉛直位置の補正手法の他の例を機能的に示すブロック図。
【図６３】ロボットの運動のモードの他の例を示す説明図。
【符号の説明】
【０８０９】
１…２足歩行ロボット（脚式移動ロボット）、１００…歩容生成装置。
【図１】
0003679105.tif 000043
【図２】
0003679105.tif 000044
【図３】
0003679105.tif 000045
【図４】
0003679105.tif 000046
【図５】
0003679105.tif 000047
【図６】
0003679105.tif 000048
【図７】
0003679105.tif 000049
【図８】
0003679105.tif 000050
【図９】
0003679105.tif 000051
【図１０】
0003679105.tif 000052
【図１１】
0003679105.tif 000053
【図１２】
0003679105.tif 000054
【図１３】
0003679105.tif 000055
【図１４】
0003679105.tif 000056
【図１５】
0003679105.tif 000057
【図１６】
0003679105.tif 000058
【図１７】
0003679105.tif 000059
【図１８】
0003679105.tif 000060
【図１９】
0003679105.tif 000061
【図２０】
0003679105.tif 000062
【図２１】
0003679105.tif 000063
【図２２】
0003679105.tif 000064
【図２３】
0003679105.tif 000065
【図２４】
0003679105.tif 000066
【図２５】
0003679105.tif 000067
【図２６】
0003679105.tif 000068
【図２７】
0003679105.tif 000069
【図２８】
0003679105.tif 000070
【図２９】
0003679105.tif 000071
【図３０】
0003679105.tif 000072
【図３１】
0003679105.tif 000073
【図３２】
0003679105.tif 000074
【図３３】
0003679105.tif 000075
【図３４】
0003679105.tif 000076
【図３５】
0003679105.tif 000077
【図３６】
0003679105.tif 000078
【図３７】
0003679105.tif 000079
【図３８】
0003679105.tif 000080
【図３９】
0003679105.tif 000081
【図４０】
0003679105.tif 000082
【図４１】
0003679105.tif 000083
【図４２】
0003679105.tif 000084
【図４３】
0003679105.tif 000085
【図４４】
0003679105.tif 000086
【図４５】
0003679105.tif 000087
【図４６】
0003679105.tif 000088
【図４７】
0003679105.tif 000089
【図４８】
0003679105.tif 000090
【図４９】
0003679105.tif 000091
【図５０】
0003679105.tif 000092
【図５１】
0003679105.tif 000093
【図５２】
0003679105.tif 000094
【図５３】
0003679105.tif 000095
【図５４】
0003679105.tif 000096
【図５５】
0003679105.tif 000097
【図５６】
0003679105.tif 000098
【図５７】
0003679105.tif 000099
【図５８】
0003679105.tif 000100
【図５９】
0003679105.tif 000101
【図６０】
0003679105.tif 000102
【図６１】
0003679105.tif 000103
【図６２】
0003679105.tif 000104
【図６３】
0003679105.tif 000105