(57)【特許請求の範囲】
【請求項１】
基体と前記基体を床面上で移動させる移動機構とを備える移動体の所定の期間における動作を規定する複数のパラメータの組である運動パラメータを決定し、その決定した運動パラメータと前記移動体の動力学モデルとを用いることにより、前記移動体の第１形態における目標運動、及び前記第１形態と前記基体の重心の高さが前記第１形態における前記基体の重心の高さと異なる第２形態との間の目標遷移動作を生成する移動体の制御装置であって、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記動力学モデルでの前記移動体は、少なくとも前記基体の重心の位置に依存する重心位置成分と、前記基体の回転運動の運動量に依存する回転運動成分とで表現され、
前記重心位置成分の所定の時刻における変化量は、前記上下方向運動パラメータにより規定される前記目標慣性力の時系列のうちの前記所定の時刻における前記目標慣性力の瞬時値に応じて変化する慣性力依存性操作量成分と、前記上下方向運動パラメータにより規定される前記目標変位の時系列のうちの前記所定の時刻における前記目標変位の瞬時値に応じて変化する変位依存性操作量成分とを用いて表現され、
前記目標運動及び前記目標遷移動作のそれぞれは、所定の時点における基体の重心位置の変位量を含むことを特徴とする移動体の制御装置。
【請求項２】
請求項１記載の移動体の制御装置において、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することを特徴とする移動体の制御装置。
【請求項３】
基体と前記基体を床面上で移動させる移動機構とを備える移動体の所定の期間における動作を規定する複数のパラメータの組である運動パラメータを決定し、その決定した運動パラメータと前記移動体の動力学モデルとを用いることにより、前記移動体の第１形態における目標運動を生成する移動体の制御装置であって、
前記移動機構は、前記第１形態及び前記第１形態と前記基体の重心の高さが前記第１形態における前記基体の重心の高さと異なる第２形態の両方において前記移動機構として機能する第１の移動機構と、前記第２形態において前記移動機構として機能する第２の移動機構とを備え、
前記基体は、前記第１の移動機構に対して回転可能に連結された第１基体と、当該第１基体に対して回転可能に連結されるとともに前記第２の移動機構と連結された第２基体とを備え、
前記動力学モデルでの前記移動体は、少なくとも前記基体の重心の位置に依存する重心位置成分と、前記第1基体の回転量に依存する第１の回転運動成分と、前記第２基体の回転量に依存する第２の回転運動成分とを用いて表現されることを特徴とする移動体の制御装置。
【請求項４】
請求項３記載の移動体の制御装置において、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記第２の回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することを特徴とする移動体の制御装置。
【請求項５】
請求項３又は４記載の移動体の制御装置において、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記第１の回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することを特徴とする移動体の制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、移動体の制御装置に関する。
【背景技術】
【０００２】
基体と、基体を床面上で移動させる移動機構とを備えた移動体としては、たとえば２肢移動ロボットが一般に知られている。該２肢移動ロボットでは、その脚体が上記移動機構、上体が上記基体に相当する。
【０００３】
そして、たとえば、２肢移動ロボットにおいて、ＺＭＰ安定度規範に基づいて目標運動軌道を設定する技術が提案されている（たとえば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第５２３２１２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
近年、さらなる運動能力の向上を目的として、通常の両脚による２肢状態と、狭所の移動のため又は躓いた際の４肢状態との間の遷移動作が脚式移動ロボットには求められている。
【０００６】
２肢状態から４肢状態への遷移動作又は４肢状態から２肢状態への遷移動作をスムーズに行うためには、途中でモデルの切り替えのための初期化処理等を伴わないようにするため、２肢移動における歩容生成と２肢状態及び４肢状態間の遷移動作の目標値を同一のモデルに基づいて生成することが好ましい。
【０００７】
しかしながら、特許文献１の技術は２肢移動を前提としているため、２肢状態及び４肢状態間の遷移動作生成に、特許文献１の歩容生成の動作モデルをそのまま適用することは困難である。
【０００８】
この結果、スムーズな遷移動作の実現は困難であった。
【０００９】
そこで、本発明は、第１形態及び第２形態間の遷移動作をスムーズに行うことが出来る移動体の制御装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の移動体の制御ユニットは、
基体と前記基体を床面上で移動させる移動機構とを備える移動体の所定の期間における動作を規定する複数のパラメータの組である運動パラメータを決定し、その決定した運動パラメータと前記移動体の動力学モデルとを用いることにより、前記移動体の第１形態における目標運動、及び前記第１形態と前記基体の重心の高さが前記第１形態における前記基体の重心の高さと異なる第２形態との間の目標遷移動作を生成する移動体の制御ユニットであって、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記動力学モデルでの前記移動体は、少なくとも前記基体の重心の位置に依存する重心位置成分と、前記基体の回転運動の運動量に依存する回転運動成分とで表現され
前記重心位置成分の所定の時刻における変化量は、前記上下方向運動パラメータにより規定される前記目標慣性力の時系列のうちの前記所定の時刻における前記目標慣性力の瞬時値に応じて変化する慣性力依存性操作量成分と、前記上下方向運動パラメータにより規定される前記目標変位の時系列のうちの前記所定の時刻における前記目標変位の瞬時値に応じて変化する変位依存性操作量成分とを用いて表現され、
前記目標運動及び前記目標遷移動作のそれぞれは、所定の位置における基体の重心位置の変位量を含むことを特徴とする。
【００１１】
重心高さが互いに異なる第１形態と第２形態と間の目標遷移動作においては、重心高さの変化を伴う遷移動作があるところ、上下方向の目標変位の瞬時値に応じて時系列の変化する変位依存性操作量成分を用いて動力学モデルを表現することにより、目標遷移動作が動力学モデルでより適切に表現される。この結果、第１形態の目標運動及び第１形態と第２形態との間の目標遷移動作がよりスムーズに実現されうる。
【００１２】
移動体の制御ユニットにおいて、前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することが好ましい。
【００１３】
当該構成の移動体の制御装置によれば、回転運動成分が基体の上下方向の目標変位の瞬時値に依存するので、回転運動成分が重心移動を伴う遷移動作をより的確に表現しうる。この結果、第１形態と第２形態との間の遷移動作がよりスムーズに行われうる。
【００１４】
本発明の移動体の制御ユニットは、
基体と前記基体を床面上で移動させる移動機構とを備える移動体の所定の期間における動作を規定する複数のパラメータの組である運動パラメータを決定し、その決定した運動パラメータと前記移動体の動力学モデルとを用いることにより、前記移動体の第１形態における目標運動を生成する移動体の制御ユニットであって、
前記移動機構は、前記第１形態及び前記第１形態と前記基体の重心の高さが前記第１形態における前記基体の重心の高さと異なる第２形態の両方において前記移動機構として機能する第１の移動機構と、前記第２形態において前記移動機構として機能する第２の移動機構とを備え、
前記基体は、前記第１の移動機構に対して回転可能に連結された第１基体と、当該第１基体に対して回転可能に連結されるとともに前記第２の移動機構と連結された第２基体とを備え、
前記動力学モデルでの前記移動体は、少なくとも前記基体の重心の位置に依存する重心位置成分と、前記第１基体の回転運動の運動量に依存する第１の回転運動成分と、前記第２基体の回転量に依存する第２の回転運動成分とを用いて表現されることを特徴とする。
【００１５】
当該構成の移動体の制御装置によれば、重心高さが互いに異なる第１形態及び第２形態の間の遷移動作に際して、第２基体が回転することにより、重心の高さを変動させることが出来る一方、第１形態及び第２形態の両方において移動機構として機能する第１の移動機構の第１基体に対する当該遷移動作における姿勢の大きな変動が軽減または防止されうる。また、第１形態の目標運動を生成するために用いられる動力学モデルにおける移動体が第１回転運動成分及び第２回転運動成分を用いて表現されることにより、第１基体の回転運動と第２基体の回転運動とを伴う移動ロボットの遷移動作が当該動力学モデルで表現される。この結果、第１形態の目標運動を生成するために用いられる動力学モデルと同一の動力学モデルを用いて目標遷移動作が生成される。この結果、遷移動作を行うに当たり、動力学モデルの切り替えが不要となるので、目標遷移動作の生成から遷移動作の実行の一連の動作がスムーズに実現されうる。
【００１６】
当該構成の移動体の制御装置において、
前記基体の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記第２の回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することが好ましい。
【００１７】
当該構成の移動体の制御装置によれば、第２の回転運動成分が基体の上下方向の目標変位の瞬時値に依存するので、第２の回転運動成分が重心移動を伴う遷移動作をより的確に表現しうる。この結果、第１形態と第２形態との間の遷移動作がよりスムーズに行われうる。
【００１８】
本発明の移動体の制御装置において、
前記基体４の上下方向の目標慣性力及び目標変位の時系列を規定する前記運動パラメータの一つのパラメータとしての上下方向運動パラメータを決定する上下方向運動パラメータ決定手段を備え、
前記第１の回転運動成分は、前記上下方向運動パラメータにより規定される目標変位の時系列のうちの所定の時刻での目標変位の瞬時値に依存することが好ましい。
【００１９】
当該構成の移動体の制御装置によれば、第１の回転運動成分が基体の上下方向の目標変位の瞬時値に依存するので、第１の回転運動成分が重心移動を伴う遷移動作をより的確に表現しうる。この結果、第１形態と第２形態との間の遷移動作がよりスムーズに行われうる。
【図面の簡単な説明】
【００２０】
【図１】この発明の第１実施例に係る肢式移動ロボットの歩容生成装置を全体的に示す概略図。
【図２】図１に示す制御装置の詳細を示すブロック図。
【図３】図１に示す肢式移動ロボットの歩容生成装置の構成を機能的に示すブロック図。
【図４】ロボットが２肢歩行（ｔ１〜ｔ３）、２肢−４肢遷移（ｔ４〜ｔ７）、４肢歩行（ｔ８〜ｔ９、トロット歩行）、４肢―２肢遷移（ｔ１０〜ｔ１３）を行う場合におけるロボットの歩容を示す図。
【図５】図４においてロボットの各肢の離着床状態を示す図。
【図６】図４における各状態量の時系列変化を示す図で、（ａ）はＸ軸方向の位置、（ｂ）はＺ軸方向の位置、（ｃ）は各肢にかかる力の大きさ、（ｄ）はロボットのＸ軸回り及びＹ軸回りの傾斜角度、（ｅ）はＸ軸方向の目標ＺＭＰの位置、（ｆ）はＹ軸方向の目標ＺＭＰの位置を示す図。
【図７】ロボットが２肢歩行（ｔ１〜ｔ３）、２肢−４肢遷移（ｔ４〜ｔ７）、４肢歩行（ｔ８’〜ｔ９’’、クロール歩行）、４肢―２肢遷移（ｔ１０〜ｔ１３）を行う場合におけるロボットの歩容を示す図。
【図８】図３に示す構成の中の歩容生成装置で使用する、図１に示す肢式移動ロボットを倒立振子で近似して得た動力学モデルを示す説明図。
【図９】図８に示す動力学モデルを用いて図３に示す歩容生成装置が行う動力学演算を示すブロック図。
【図１０】図１に示す肢式移動ロボットの歩容生成装置の動作を示すフロー・チャート。
【図１１】図１０フロー・チャートで使用する定常旋回歩容を着地位置などから説明する説明図。
【図１２】図１０フロー・チャートの定常旋回歩容の初期発散成分の算出作業を示すサブルーチン・フロー・チャート。
【図１３】図１２フロー・チャートで算出される初期発散成分に基づいて図１０フロー・チャートにおいて今回歩容の歩容パラメータである目標ＺＭＰを修正する動作を説明するタイム・チャート。
【図１４】図１０フロー・チャートの初期発散成分に基づく今回歩容の歩容パラメータの目標ＺＭＰの修正動作を示すサブルーチン・フロー・チャート。
【図１５】図１０フロー・チャートの今回歩容の瞬時値算出作業を示すサブルーチン・フロー・チャート。
【図１６】クロール歩容における各肢の離着床状態の時系列を示すグラフ。
【図１７】トロット歩容における各肢の離着床状態の時系列を示すグラフ。
【図１８】クロール歩容における仮目標ＺＭＰの算出処理を説明する図で、（ａ）が右上肢が遊肢の場合、（ｂ）が左下肢が遊肢の場合、（ｃ）が左上肢が遊肢の場合、（ｄ）が右下肢が遊肢の場合の図。
【図１９】ＺＭＰ許容範囲と仮目標ＺＭＰ候補の修正とを説明する図。
【図２０】クロール歩容における仮目標ＺＭＰの軌跡を説明する図で、（ａ）が直進の場合、（ｂ）が旋回の場合の図。
【図２１】クロール歩容における重心位置と仮目標ＺＭＰと修正後の目標ＺＭＰとの位置の変化の時系列を示すグラフで、（ａ）がＸ軸方向、（ｂ）がＹ軸方向のグラフ。
【図２２】トロット歩容における仮目標ＺＭＰの算出処理を説明する図で、（ａ）が右上肢及び左下肢が遊肢の場合、（ｂ）が左上肢及び右下肢が遊肢の場合の図。
【図２３】トロット歩容における重心位置と仮目標ＺＭＰと修正後の目標ＺＭＰとの位置の変化の時系列を示すグラフで、（ａ）がＸ軸方向、（ｂ）がＹ軸方向のグラフ。
【図２４】図４のｔ４〜ｔ７の期間における各状態量の時系列的変化を示す図で、（ａ）は、上体質点鉛直位置、（ｂ）は腰関節の回転角度、（ｃ）は腰椎関節の回転角度、（ｄ）は手平鉛直位置（右上肢の手平の高さ）、（ｅ）は実ＺＭＰ及び実重心水平位置のＸ方向の位置を示す図。
【図２５】図３１と同期間において、各実施形態及び比較形態間の比較をするグラフで、（ａ）は重心及び右手の高さ、（ｂ）は腰関節および腰椎関節の回転角度、（ｃ）は第１実施形態〜第３実施形態及び比較形態のＹ軸回り（ピッチ方向）の傾斜角度、（ｄ）は第１実施形態〜第３実施形態及び比較形態のＸ方向の実ＺＭＰの位置、（ｅ）はＸ軸における目標ＺＭＰ及び仮目標ＺＭＰの位置、（ｆ）はＹ軸における目標ＺＭＰ及び仮目標ＺＭＰの位置、（ｇ）は腰関節の回転加速度、（ｈ）は腰椎関節の回転加速度を示す図。
【図２６】時刻ｔ６付近の各実施形態及び比較形態間の比較をするグラフで、（ａ）は第１実施形態〜第３実施形態及び比較形態のＹ軸回り（ピッチ方向）の傾斜角度、（ｂ）は第１実施形態〜第３実施形態及び比較形態のＸ方向の実ＺＭＰの位置。
【図２７】クロール歩容における仮目標ＺＭＰの軌跡を説明する図で、今回の支持多角形の重心を全床反力中心点要求位置とした場合の図。
【発明を実施するための形態】
【００２１】
以下、移動体として２肢−４肢式移動ロボットを例にとって、本発明の一実施形態を説明する。
【００２２】
（２肢−４肢移動ロボットの構成）
図１に示す如く、第１実施形態の２肢−４肢移動ロボット１（以下、単にロボット１という）は、基体としての上体４(本発明の「基体」に相当する。)と、この上体４を床面上で移動させる移動機構として、該上体４と床との間に介在する左右一対の下肢（脚体）２Ｒ，２Ｌ（本発明の「第１の移動機構」に相当する。）と、上体４の上部の両側部に取り付けられた左右一対の上肢（腕体）３Ｒ，３Ｌ（本発明の「第２の移動機構」に相当する。）とを備える。
【００２３】
ロボット１は、接地した下肢２Ｒ、２Ｌにより上体４が床面の上方に支持される２肢状態（第１形態）と、接地した下肢２Ｒ、２Ｌ及び上肢３Ｒ、３Ｌにより上体４が床面の上方に支持される４肢状態（第２形態）とに遷移可能に構成されている。
【００２４】
上体４は、上部上体４ａ（本発明の「第２基体」に相当する。）と、下部上体４ｂ（本発明の「第１基体」に相当する。）とを備える。上部上体４ａと下部上体４ｂは、後述する腰椎関節を介して連結されている。上部上体４ａは、両上肢３Ｒ、３Ｌの基端部（上端部）に後述する肩関節を介して連結されている。下部上体４ｂは、両下肢２Ｒ，２Ｌの基端部（上端部）に後述する腰関節（股関節）を介して連結されている。
【００２５】
なお、第１実施形態の説明では、符号Ｒは、右側下肢（右下肢）又は右側上肢（右上肢）に対応するものであることを意味し、Ｌは左側下肢（左下肢）又は左側上肢（左上肢）に対応するものであることを意味する。また、Ｘ軸、Ｙ軸、Ｚ軸は、後述する支持肢座標系の３つの座標軸を意味する。この支持肢座標系のＸ軸方向、Ｙ軸方向は、水平面上で互いに直交する２軸方向であり、Ｘ軸方向はロボット１の前後方向（ロール軸方向）、Ｙ軸方向はロボット１の左右方向（ピッチ軸方向）に相当する。また、Ｚ軸方向は鉛直方向（重力方向）であり、ロボット１の上下方向（ヨー軸方向）に相当する。この場合、第１実施形態では、Ｚ軸方向である鉛直方向が、本発明における上下方向としての意味を持つ。
【００２６】
両下肢２Ｒ，２Ｌは同一構造であり、それぞれ６個の関節を備える。その６個の関節は上体４側から順に、腰（股）の回旋用（上体４に対するヨー方向（Ｚ軸回り）の回転用）の関節１０Ｒ，１０Ｌと、腰（股）のロール方向（Ｘ軸まわり）の回転用の関節１１Ｒ，１１Ｌと、腰（股）のピッチ方向（Ｙ軸まわり）の回転用の関節１２Ｒ，１２Ｌと、膝部のピッチ方向の回転用の関節１３Ｒ，１３Ｌと、足首部のピッチ方向の回転用の関節１４Ｒ，１４Ｌと、足首部のロール方向の回転用の関節１５Ｒ，１５Ｌとから構成される。
【００２７】
各下肢２の関節１０Ｒ（Ｌ），１１Ｒ（Ｌ），１２Ｒ（Ｌ）によって３自由度の腰関節（股関節）が構成され、関節１３Ｒ（Ｌ）によって１自由度の膝関節が構成され、関節１４Ｒ（Ｌ），１５Ｒ（Ｌ）によって２自由度の足首関節が構成されている。
【００２８】
そして、腰関節（股関節）１０Ｒ（Ｌ），１１Ｒ（Ｌ），１２Ｒ（Ｌ）と膝関節１３Ｒ（Ｌ）とは大腿リンク１７Ｒ（Ｌ）で連結され、膝関節１３Ｒ（Ｌ）と足首関節１４Ｒ（Ｌ），１５Ｒ（Ｌ）とは下腿リンク１８Ｒ（Ｌ）で連結されている。また、各下肢２の足首関節１４Ｒ（Ｌ），１５Ｒ（Ｌ）の下部に、各下肢２の先端部（下端部）を構成する接地部（下肢接地部）１６Ｒ（Ｌ）が取着されている。また、各下肢２の上端部（基端部）が、腰関節（股関節）１０Ｒ（Ｌ），１１Ｒ（Ｌ），１２Ｒ（Ｌ）を介して上体４に連結されている。
【００２９】
両上肢３Ｒ，３Ｌは同一構造であり、それぞれ７個の関節を備える。その７個の関節は上体４側から順に、肩の回旋用（上体４に対するピッチ方向の回転用）の関節３０Ｒ、３０Ｌと、肩のロール方向の回転用の関節３１Ｒ，３１Ｌと、肩のヨー方向の回転用の関節３２Ｒ，３２Ｌと、肘のピッチ方向の回転用の関節３３Ｒ，３３Ｌと、手首部のヨー方向の回転用の関節３４Ｒ，３４Ｌと、手首部のロール方向の回転用の関節３５Ｒ，３５Ｌと、手首部のピッチ方向の回転用の関節３６Ｒ，３６Ｌとから構成される。
【００３０】
各上肢３Ｒ（Ｌ）の関節３０Ｒ（Ｌ），３１Ｒ（Ｌ），３２Ｒ（Ｌ）によって３自由度の肩関節が構成され、関節３３Ｒ（Ｌ）によって１自由度の肘関節が構成され、関節３４Ｒ（Ｌ），３５Ｒ（Ｌ）、３６Ｒ（Ｌ）によって３自由度の手首関節が構成されている。
【００３１】
そして、肩関節（股関節）３０Ｒ（Ｌ），３１Ｒ（Ｌ），３２Ｒ（Ｌ）と肘関節３３Ｒ（Ｌ）とは上腕リンク３８Ｒ（Ｌ）で連結され、肘関節３３Ｒ（Ｌ）と手首関節３４Ｒ（Ｌ），３５Ｒ（Ｌ）、３６Ｒ（Ｌ）とは前腕リンク３９Ｒ（Ｌ）で連結されている。また、各上肢３Ｒ（Ｌ）の手首関節３５Ｒ（Ｌ），３６Ｒ（Ｌ）の下部に、各上肢３Ｒ（Ｌ）の先端部（下端部）を構成する手平（上肢接地部）３７Ｒ（Ｌ）が取着されている。また、各上肢３Ｒ（Ｌ）の上端部（基端部）が、肩関節３０Ｒ（Ｌ），３１Ｒ（Ｌ），３２Ｒ（Ｌ）を介して上体４に連結されている。接地部３７Ｒは、２肢状態において、物をつかむ等の各種の作業ができるよう複数の指を持つように構成されていてもよい。
【００３２】
上体４は、上部上体４ａと下部上体４ｂとの間にピッチ方向の回転用の１個の関節４ｃを備える。関節４ｃによって１自由度の腰椎関節が構成されている。
【００３３】
上記した各関節は、例えば本出願人が特開平３−１８４７８２号公報などにて提案した公知の構造のものでよい。この場合、各関節を回転駆動するアクチュエータは、減速機を備える電動モータ４２（図２参照）により構成される。
【００３４】
各下肢２Ｒ（Ｌ）の上記構成により、各下肢２Ｒ（Ｌ）の接地部１６Ｒ（Ｌ）は、上体４に対して６自由度を有する。そして、ロボット１の移動に際して両下肢２Ｒ、２Ｌを合わせて６＊２＝１２個（この明細書で「＊」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す）の関節をそれぞれ適宜な角度に駆動することで、接地部１６Ｒ，１６Ｌの所望の運動を行なうことができる。
【００３５】
また、各上肢３Ｒ（Ｌ）の上記構成により、各上肢３Ｒ（Ｌ）の接地部３７Ｒ（Ｌ）は、上体４に対して７自由度を有する。そして、ロボット１の移動に際して両上肢３Ｒ、３Ｌを合わせて７＊２＝１４個の関節をそれぞれ適宜な角度に駆動することで、両接地部３７Ｒ，３７Ｌの所望の運動を行なうことができる。
【００３６】
また、上体４の上記構成により、下部上体４ｂは、上部上体４ａに対して１自由度を有する。ロボット１の移動に際して上体４の１個の関節を適宜な角度に駆動することで、２肢状態−４肢状態間の遷移動作、４肢歩行等の所望の運動を行なうことができる。
【００３７】
これにより、ロボット１は２肢歩行動作、２肢走行動作、４肢歩行動作（クロール歩行動作、トロット歩行動作）等、３次元空間を移動する運動を行うことが可能となっている。
【００３８】
２肢歩行、２肢走行の場合、両下肢２Ｒ、２Ｌが基体としての上体４を床面上で移動させる移動機構として機能する。また、基体としての上体４は、腰関節（股関節）を介して、下肢２Ｒ、２Ｌに対して相対運動を行い得るように該下肢２Ｒ、２Ｌに支持されることとなる。さらに、両下肢２Ｒ、２Ｌの各関節の駆動制御によって、床面に対する上体４の運動を制御することが可能である。
【００３９】
尚、この明細書で後述する上体４の位置およびその速度は、上体４の所定位置、具体的には上体４の代表点の位置およびその移動速度を意味する。それについては後述する。
【００４０】
４肢歩行の場合、両下肢２Ｒ、２Ｌ及び両上肢３Ｒ、３Ｌが基体としての上体４を床面上で移動させる移動機構として機能する。また、基体としての上体４は、腰関節（股関節）、肩関節を介して、下肢２Ｒ、２Ｌ、上肢３Ｒ、３Ｌに対して相対運動を行い得るように該下肢２Ｒ、２Ｌ、該上肢３Ｒ、３Ｌに支持されることとなる。さらに、両下肢２Ｒ、２Ｌ、両上肢３Ｒ、３Ｌの各関節の駆動制御によって、床面に対する上体４の運動を制御することが可能である。
【００４１】
ここで、上体４の運動には、上体４の水平方向（又は床面に平行な方向）の運動に加えて、上下方向（鉛直方向や、床面に垂直な方向等）の運動や、上体４の姿勢を変化させる運動も含まれる。
【００４２】
なお、第１実施形態では、上体４の上端部には頭部５が搭載される。頭部は無くてもよい。
【００４３】
上体４の内部にはロボット１の動作制御を行う制御ユニット２６が格納されている。なお、図１では図示の便宜上、制御ユニット２６を上体４の外部に記載している。
【００４４】
各下肢２の足首関節１４Ｒ（Ｌ），１５Ｒ（Ｌ）と接地部１６Ｒ（Ｌ）との間には、６軸力センサ４１ａが介装されている。また、各上肢３Ｒ（Ｌ）の手首関節３５Ｒ（Ｌ）、３６Ｒ（Ｌ）と、接地部３７Ｒ（Ｌ）との間には、６軸力センサ４１ｂが介装されている。６軸力センサ４１ａ、４１ｂは、床から接地部１６Ｒ（Ｌ）、接地部３７Ｒ（Ｌ）を介して各下肢２Ｒ（Ｌ）、各上肢３Ｒ（Ｌ）に伝達される床反力の３軸方向の並進力成分Ｆｘ，Ｆｙ，Ｆｚ及び３軸まわりのモーメント成分Ｍｘ，Ｍｙ，Ｍｚを検出し、その検出信号を制御ユニット２６に出力する。
【００４５】
上体４には、鉛直方向（重力方向）に対する上体４の傾斜角（ロール方向及びピッチ方向の傾斜角）とその変化速度（角速度）とを計測するための傾斜センサ４０が搭載されている。この傾斜センサ４０は、より詳しくは、加速度センサとジャイロセンサ等のレートセンサ（角速度センサ）とから構成され、これらのセンサの検出信号を制御ユニット２６に出力する。そして、制御ユニット２６において、傾斜センサ４０の出力を基に、公知の手法によって鉛直方向に対する上体４の傾斜角と角速度とが計測される。
【００４６】
また、各関節を回転駆動する電動モータ４２（図２参照）には、各関節の回転角を検出するためのエンコーダ（ロータリエンコーダ）４４（図２参照）が付設され、該エンコーダ４４の検出信号が制御ユニット２６に出力される。
【００４７】
図２は制御ユニット２６の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ４０などの出力はＡ／Ｄ変換器（図に「Ａ／Ｄ」と示す）５４でデジタル値に変換され、その出力はバス６４を介してＲＡＭ６０に送られる。また各電動モータ４２に隣接して配置されるエンコーダ４４の出力はカウンタ５６を介してＲＡＭ６０内に入力される。
【００４８】
制御ユニット２６の内部にはそれぞれＣＰＵからなる第１、第２の演算装置５０，５２が設けられており、第１の演算装置５０は後述の如く、目標歩容を生成すると共に、後述の如く関節変位指令を算出し、ＲＡＭ６０に送出する。また第２の演算装置５２はＲＡＭ６０からその指令と検出された実測値とを読み出し、各関節の駆動に必要な操作量を算出してＤ／Ａ変換器（図に「Ｄ／Ａ」と示す）５８とサーボアンプ４６を介して各関節を駆動する電動モータ４２に出力する。
【００４９】
図３は、この実施例に係る肢式移動ロボットの歩行（姿勢）制御装置の構成および動作を全体的に示すブロック図である。
【００５０】
以下説明すると、第１の演算装置５０は歩容生成装置１００を備える。歩容生成装置１００は後述の如く目標歩容を自在かつリアルタイムに生成して出力する。目標歩容は、目標上体位置姿勢（軌道）、目標接地部位置姿勢（軌道）、目標全床反力中心点（目標ＺＭＰ）（軌道）および目標全床反力（軌道あるいはパターン）からなる。
【００５１】
尚、各接地部（２肢歩行の場合、足平１６Ｒ，Ｌ、４肢歩行の場合、足平１６Ｒ，Ｌ、手平３７Ｒ，Ｌ）の床反力を「各接地部床反力」と呼び、全ての接地部の床反力の合力を「全床反力」と呼ぶ。ただし、以降においては、各接地部床反力はほとんど言及しないので、断らない限り、「床反力」は「全床反力」と同義として扱う。
【００５２】
この歩行制御装置が生成する歩容は、大きく分けて、２肢で歩行するための歩容である２肢歩容（図４／時刻ｔ１〜ｔ３参照）、２肢状態から４肢状態へ遷移するための歩容である２肢−４肢遷移歩容（図４／時刻ｔ４〜ｔ７参照）、４肢で歩行するための歩容である４肢歩容（図４／時刻ｔ８〜ｔ９参照）、４肢状態から２肢状態へ遷移するための歩容である４肢―２肢遷移歩容（図４／時刻ｔ１０〜ｔ１３参照）である。より具体的には、本歩行制御装置は、本出願人が先に特開平１０−２７７９６９号公報において提案した複合コンプライアンス制御によるロボットの姿勢安定化制御を行うために必要な目標歩容を自在に生成する。
【００５３】
その先に提案した姿勢安定化制御にあっては、床反力中心点（ＺＭＰ）の目標位置と実測位置の偏差を検出し、その偏差を解消するように接地部を駆動して姿勢の安定化を図っている。それと共に、ロボットが倒れそうになると、目標床反力を意図的にずらすことによって実床反力をずらし、姿勢復元力を得るようにしている。
【００５４】
かかる如く、肢式移動ロボットにおいては、目標運動軌跡と目標床反力パターンの関係が動力学的平衡条件を満足していなければ、安定した歩行が実現できない。動力学的平衡条件は前記した如く、具体的には、例えば、目標床反力中心点（目標床反力分布の２次モーメントが０になる床上の作用点）とＺＭＰが一致することである。一致していないと、コンプライアンス制御が働いたときに、慣性力と重力の合力と床反力との間のバランスを崩し、最悪の場合、転倒する。
【００５５】
先に提案した技術においては、それをロボットが不安定となったときの姿勢回復に逆用しているが、上記から明らかな如く、本出願人が提案する肢式移動ロボットにおいてはこのように歩行制御に与える目標値として、目標の運動パターンだけではなく、目標の運動パターンに対して動力学的平衡条件を満足する目標床反力パターンも必要である。
【００５６】
目標床反力は、一般的には、作用点とその点に作用する力と力のモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に前述の目標床反力中心点を作用点にして目標床反力を表現すると、力のモーメントは、床に垂直な成分を除けば、０になる。
【００５７】
尚、前述のように、動力学的平衡条件を満足する歩容では、目標とする運動軌跡から算出されるＺＭＰと目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ＺＭＰ軌道を与えると言っても同じことである。
【００５８】
従って、上記は、『歩行制御に与える目標値としては、目標運動軌跡だけでなく、目標ＺＭＰ軌道（目標床反力パターン）も必要である』と言い換えることができる。このような背景から、この明細書では目標歩容を、次のように定義する。
【００５９】
ａ）広義の目標歩容とは、１歩ないしは複数歩の期間の目標運動軌跡とその目標床反力パターンの組である。
【００６０】
ｂ）狭義の目標歩容とは、１歩の期間の目標運動軌跡とそのＺＭＰ軌道の組である。
【００６１】
ｃ) 一連の歩行は、いくつかの歩容がつながったものとする。
【００６２】
尚、以下では、理解を容易にするために、特にことわらない限り、目標歩容は狭義の目標歩容の意味で使用する。
【００６３】
より詳しくは、この明細書では目標歩容は、１歩分の歩容の意味で使用する。２肢歩行の場合における１歩分の期間とは、図５に示されるように、両脚支持期の初期から片脚支持期の終端までの期間である。
【００６４】
４肢歩行の場合における１歩分の期間とは、図５に示されるように、４肢支持期の初期から２肢支持期（又は３肢支持期）の終端までの期間ある。２肢−４肢遷移における１歩分の期間とは、２肢−４肢遷移の一連の遷移動作を所定のタイミングで複数の期間（手平着床期、ＺＭＰ移動期、４肢歩行準備期）に分割した場合におけるそのうちの一の期間を言う。
【００６５】
４肢―２肢遷移における１歩分の期間とは、４肢―２肢遷移の一連の遷移動作を所定のタイミングで複数の期間（腰移動期、ＺＭＰ移動期、手平離床期）に分割した場合におけるそのうちの一の期間を言う。
【００６６】
また、２肢歩行時において、両脚支持期とは、ロボット１がその自重を脚体２の双方で支持する期間を、片脚支持期とは脚体２の一方で支持する期間をいう。
【００６７】
片脚支持期においてロボット１の自重を支持しない側の脚部（リンク）を「遊肢」と呼ぶ。２肢歩行時の各支持期の定義の詳細は、先に提案した特開平１０−８６０８１号公報に記載されているので、この程度の説明に止める。
【００６８】
４肢歩行は、クロール歩行、トロット歩行、ベース歩行、ギャロップ歩行等の様々な歩行に分類されるが、第１実施形態では、図４に示されるロボット１が「左上肢及び右下肢」−「右上肢及び左下肢」の順に２肢ずつ持ち上げ及び接地を繰り返すトロット歩行をする場合及び図７に示されるロボット１が「左上肢」−「右下肢」−「右上肢」−「左下肢」の順に１肢ずつ持ち上げ及び接地を繰り返すクロール歩行をする場合について説明する。
【００６９】
４肢歩行時における２肢支持期とは、図４〜図６の時刻ｔ８〜ｔ９に示されるように、トロット歩行において、ロボット１がその自重を脚体２及び腕体３のうちの２肢で支持する期間をいう。３肢支持期及び２肢支持期においてロボット１の自重を支持しない側の肢体（脚体２、腕体３）を２肢歩行の場合と同様に「遊肢」とよぶ。
【００７０】
４肢歩行時における３肢支持期とは、図７／時刻ｔ８’〜ｔ９’’に示されるように、クロール歩行において、ロボット１がその自重を脚体２及び腕体３のうちの３肢で支持する期間をいう。
【００７１】
また、４肢歩行時における４肢支持期とは、ロボット１がその自重を脚体２及び腕体３のすべてで支持する期間をいう。
【００７２】
なお、本実施形態においては、トロット歩行及びクロール歩行のいずれにおいても、たとえば、図５に示されるように、各２肢支持期間又は各３肢支持期間の間に４肢支持期間が設けられている。
【００７３】
２肢−４肢遷移時における手平着床期とは、図４〜図７の時刻ｔ４〜ｔ５に示されるように、２肢歩行における両脚支持期の初期から、腰関節及び腰椎関節の回転により、両腕体３がロボット１の自重を支えるまで（より厳密には、両腕体３が空中にある期間の終端まで）の期間を言う。
【００７４】
２肢−４肢遷移時におけるＺＭＰ移動期とは、図４〜図７の時刻ｔ６に示されるように、両腕体３がロボット１の自重を支えてから（より厳密には、両腕体３が着床した期間の初期から）、ＺＭＰを両脚支持期における最適位置から４肢支持期における最適位置に移動させるようにロボット１の姿勢を整える（ＺＭＰが４肢支持期における最適位置に移動する期間の終端）までの期間を言う。
【００７５】
２肢−４肢遷移時における４肢歩行準備期とは、図４〜図７の時刻ｔ７に示されるように、ＺＭＰ移動期の終端から、腰の位置を４肢歩行に適した姿勢（４肢歩行における４肢支持期の姿勢）となるようにロボット１の姿勢を整えるまで（４肢歩行における４肢支持期の初期まで）の期間を言う。
【００７６】
４肢―２肢遷移時における腰移動期とは、図４〜図７の時刻ｔ１０に示されるように、４肢歩行における４肢支持期の初期から、ロボット１の姿勢が２肢遷移に適した姿勢となるように、腰の位置を所定の位置まで移動させる期間を言う。
【００７７】
４肢―２肢遷移時におけるＺＭＰ移動期とは、図４〜図７の時刻ｔ１１に示されるように、ＺＭＰの位置を手平離床期（両脚体２のみでロボット１の自重を支持する期間）に最適な位置まで移動させるまでの期間を言う。
【００７８】
４肢―２肢遷移時における手平離床期とは、図４〜図７の時刻ｔ１２〜時刻ｔ１３に示されるように、ＺＭＰ移動期の終端から、腰関節及び腰椎関節の回転により、ロボット１が２肢で直立するまで（腰関節及び腰椎関節の回転が終了するまで）の期間をいう。
【００７９】
ここで、目標歩容としての条件を説明する。
【００８０】
目標歩容が満たさなければならない条件は、大きく分けて以下の５つに分類される。
【００８１】
条件１）動力学的平衡条件を満足していること。即ち、ロボット１の目標運動軌跡から動力学的に算出されるＺＭＰ軌道が目標ＺＭＰ軌道と一致していること。
【００８２】
条件２）ロボット１の歩行計画部や歩行経路誘導部（共に図示せず）、あるいはオペレータから歩幅や旋回角など歩容が満たすべき条件が要求される場合、それらの要求条件を満たしていること。
【００８３】
条件３）接地部（２肢歩行の場合「足平」、４肢歩行の場合「足平」及び「手平」）が床を掘ったり擦ったりしない、関節角度が可動範囲を越えない、関節速度が限界を越えないなどの、キネマティクス（運動学）に関する制約条件を満たしていること。
【００８４】
条件４）ＺＭＰが後述する支持肢多角形内になければならない、駆動系の最大能力を越えないなどの、動力学に関する制約条件を満たしていること。
【００８５】
条件５）境界条件を満たしていること。即ち、条件１）の当然の帰結として、歩容と歩容の境界では、少なくとも、各部位の位置と速度が連続であるという境界条件が導かれる（不連続であれば、無限大の力が発生したり、ＺＭＰが接地面からはるかに遠くの点に移動してしまう）。
【００８６】
また、第ｎ＋１回歩容の初期状態は、第ｎ回歩容の終端状態（特に、接地部に対する上体の位置・姿勢および速度）に一致するように設定されなければならない。このとき、第ｎ回歩容の終端状態は、第ｎ＋１回歩容の初期状態が決まっていれば、第ｎ＋１回歩容の初期状態に一致させれば良い。
【００８７】
決まっていなければ、第ｎ回歩容の終端状態が、姿勢が崩れないで長期的な歩行ができる範囲に入っていれば良い。
【００８８】
歩容の説明を続けると、歩容は、歩容パラメータによって記述される。歩容パラメータは、運動パラメータとＺＭＰパラメータ（より一般的に表現すれば、床反力パラメータ）から構成される。尚、この明細書で『床反力パラメータ』なる語は、『床反力の時間的なパターンに関するパラメータ』を意味するものとして使用する。ＺＭＰパラメータは後で図１３に示すように、Ｘ，Ｙ，Ｚ座標（方向）について折れ線グラフ状のＺＭＰ軌道の折れ点の位置と通過時刻で示す（Ｘ座標のみ図示）。
【００８９】
運動パラメータは、接地部（軌道）パラメータと上体（軌道）パラメータとから構成される。
【００９０】
接地部軌道パラメータは、足平１６の初期（離床時）遊肢位置および姿勢、終端（着床時）遊肢位置および姿勢、手平３７の初期（離床時）遊肢位置および姿勢、終端（着床時）遊肢位置および姿勢、両脚支持期時間、片脚支持期時間、４肢支持期時間、３肢支持期時間、２肢支持期時間、手平着床期時間、ＺＭＰ移動期時間、４肢歩行準備期時間、腰移動期時間、ＺＭＰ移動期時間、２肢歩行準備期時間などを含む。これらに基づき、先に本出願人が特開平５−３１８３３９号および特開平５−３２４１１５号公報などで提案した技術を用いて、両足平の位置（ｘf ，ｙf ，ｚf ）および姿勢（θｘf ，θｙf ，θｚf ）の瞬時値及び両手平の位置（ｘｈ ，ｙｈ ，ｚｈ ）および姿勢（θｘｈ ，θｙｈ ，θｚｈ ）の瞬時値が求められる。尚、ここで姿勢は『空間上の傾斜または向き』を意味する。
【００９１】
上体軌道パラメータは、下部上体４ｂの姿勢（空間上の下部上体４ｂの向きあるいは傾き）を決定するパラメータ、上部上体４ａの下部上体４ｂに対する姿勢（下部上体４ｂに対する傾き）を決定するパラメータ、上体（上部上体４ａ）高さ（Ｚ方向の値）を決定するパラメータ、初期の上体（代表点）の位置（変位）および速度パラメータなどから構成される。
【００９２】
上体の位置および姿勢を決定するパラメータに基づき、時間関数または先に特開平５−３２４１１５号公報で本出願人が提案した技術や後述する手法から上体（上部上体４ａ）の水平位置（ｘb ，ｙb ）および姿勢（θｘb ，θｙb ，θｚb ）の瞬時値が求められる。上体（上部上体４ａ）高さｚb は適宜な手法、例えば本出願人が特開平１０−８６０８０号公報で提案する手法で決定される。
【００９３】
肢式移動ロボット１の関節は図１に示すように２７関節から構成されているので、得られた各接地部の位置・姿勢と上体位置・姿勢とから、後述するように逆キネマティクス演算によって目標関節変位が一義的に決定される。即ち、今回のロボットの目標姿勢が一義的に決定される。
【００９４】
ところで、理想的目標歩容は、物理法則に逆らうことができないので、希望する状態にすぐに到達することはできない。許容範囲内でＺＭＰの軌道、着地位置および着地時期などの歩容パラメータを変更することによって、時間をかけて希望する状態に遷移しなければならない。特に、この実施例において２肢−４肢歩行ロボットの動力学系は、ＺＭＰを入力、上体位置を出力とする系とみなすと発散系になるので、慎重に歩容パラメータを変更しないと、正常な状態に復元するのが困難となる。
【００９５】
したがって、目標歩容を自在かつリアルタイムに生成するときは、ロボットの将来の挙動を予測し、どのように歩容パラメータ値を設定すれば、ロボットの将来、例えば数歩先の挙動が発散しないか否かを判断すると共に、発散する可能性が予測されるときは発散を防止するように歩容を調整することが、望ましい。
【００９６】
この実施例においては、ロボット１の動力学的挙動を記述する動力学モデルを単純化し、リアルタイムかつ解析的に将来挙動が予測計算できるようにした。図８に、その単純化した動力学モデルを示す。図示の如く、この動力学モデルは１質点モデルである。図９は、歩容生成装置１００の動力学演算部において、図８に示す動力学モデルを用いて行われる動力学演算を示すブロック図である。
【００９７】
以下、この動力学モデルを説明する。
【００９８】
１）このモデルは、倒立振子の１質点から構成される。
【００９９】
２）倒立振子は、水平に移動するフリーの支点ａと、支点aと質点２４ｂとを結ぶ質量のない可変長のリンク２４ａと、ひとつの質点２４ｂと、から構成される。
【０１００】
３）このモデルは質点２４ｂを共通の中心とする回転成分を表す２つの無質量のフライホイールを含んでいる。
【０１０１】
倒立振子質点は、物理的意味としては上体４の質点（必ずしも重心位置を意味しない）に対応する。したがって、倒立振子質点と上体質点は、今後、同意語として扱う。上体質点の位置（より広義に言えば変位）を、以降、略して「上体質点位置」と呼ぶ。
【０１０２】
３）上体の水平位置は、上体質点の水平位置から幾何学的に決定される。具体的には、例えば、上体のある固定された代表点（この点を以降、「上体代表点」と呼ぶ）の水平位置（支持肢座標系から見たＸＹ座標）を、上体質点の水平位置から傾斜センサが示す上体４が傾斜している方向へ所定距離移動させた点の水平位置として決定される。
【０１０３】
次いで、図示の動力学演算モデルに関する変数およびパラメータなどの記述法について説明する。
【０１０４】
この動力学モデルの挙動は、以下に示すように数式化される。ただし、説明を簡単にするために、サジタルプレーン（支持肢座標系のＸ軸とＺ軸とを含む平面）での運動方程式のみを記述し、ラテラルプレーン（支持肢座標系のＹ軸とＺ軸とを含む平面）での運動方程式を省略した。
【０１０５】
説明の便宜上、動力学モデルに関する変数およびパラメータを以下のように定義する。
Ｚｂ：上体質点鉛直位置（Ｚ軸方向位置）
Ｘｂ：上体質点水平位置（Ｘ軸方向位置）
Ｖｘｂ：上体質点水平速度（Ｘ軸方向速度）
ｍｂ：上体質点質量
Ｘｚｍｐ：目標ＺＭＰの水平位置（Ｘ軸方向位置）
Ｚｚｍｐ：目標ＺＭＰの鉛直位置（Ｚ軸方向位置）
Ｆｘ：床反力水平成分（詳しくは並進床反力のＸ軸方向成分）
Ｆｚ：床反力鉛直成分（詳しくは並進床反力のＺ軸方向成分）
Ｍｚｍｐ＿ｙ：目標ＺＭＰまわりの床反力モーメント（詳しくは該床反力モーメントのＹ軸まわり成分）
Ｍｂ＿ｙ：支持肢座標系の原点まわりの床反力モーメント（詳しくは該床反力モーメントのＹ軸まわり成分）
θ１：腰関節の回転角度（下肢２に対する下部上体４ｂの関節１２回り（ピッチ方向）の回転角度）
θ２：腰椎関節の回転角度（下部上体４ｂに対する上部上体４ａの関節４ｃ回り（ピッチ方向）の回転角度）
また、任意の変数Ａに対して、ｄＡ／ｄｔはＡの１階時間微分値を表わし、ｄ２Ａ／ｄｔ２はＡの２階時間微分値を表わす。したがって、変数Ａが変位（位置）ならば、ｄＡ／ｄｔは速度、ｄ２Ａ／ｄｔ２は加速度を意味する。ｇは重力加速度定数を示す。ここでは、ｇは正の値とする。
【０１０６】
上記動力学モデルの運動方程式は、式０１〜０４で表される。
【０１０７】
Ｆｚ＝ｍｂ＊（ｇ＋ｄ２Ｚｂ／ｄｔ２）  ……式０１
Ｆｘ＝ｍｂ＊ｄ２Ｘｂ／ｄｔ２  ……式０２
Ｍｂ＿ｙ＝−ｍｂ＊Ｘｂ＊（ｇ＋ｄ２Ｚｂ／ｄｔ２）
＋ｍｂ＊Ｚｂ＊（ｄ２Ｘｂ／ｄｔ２）  ……式０３
Ｍｚｍｐ＿ｙ＝−ｍｂ＊（Ｘｂ−Ｘｚｍｐ）＊（ｇ＋ｄ２Ｚｂ／ｄｔ２）
＋ｍｂ＊（Ｚｂ−Ｚｚｍｐ）＊（ｄ２Ｘｂ／ｄｔ２）  ……式０４
この場合、Ｍｂ＿ｙとＭｚｍｐ＿ｙとの間の関係は、次式０５により表される。
【０１０８】
Ｍｂ＿ｙ＝Ｍｚｍｐ＿ｙ−ｍｂ＊Ｘｚｍｐ＊（ｇ＋ｄ２Ｚｂ／ｄｔ２）
＋ｍｂ＊Ｚｚｍｐ＊（ｄ２Ｘｂ／ｄｔ２）
＝Ｍｚｍｐ＿ｙ−Ｘｚｍｐ＊Ｆｚ＋Ｚｚｍｐ＊Ｆｘ  ……式０５
なお、目標ＺＭＰと支持肢座標系の原点との鉛直方向（Ｚ軸方向）での位置の差は通常、“０”又はほぼ“０”となるので、Ｚｚｍｐ＝０と見なしてもよい。
【０１０９】
上体質点の水平位置及び速度は、以下の状態方程式により表される。
【０１１０】
【数１】
0006356033.tif 000002
【０１１１】
なお、Ｘｚｍｐ（ｔ）はＺＭＰ軌道、Ｉ１は腰関節の慣性モーメント、Ｉ２は腰椎関節の慣性モーメントである。
【０１１２】
式１００ｂの右辺第２要素と式１００ｄの右辺第２列とを掛け合わせた値が本発明の「第１の回転運動成分」に相当し、式１００ｂの第３行と式１００ｄの第３列とを掛け合わせた値が本発明の「第２の回転運動成分」に相当し、式１００ｅの右辺分母が本発明の「重心位置成分」に相当し、式１００ｅの右辺分子第２項が本発明の「慣性力依存操作量成分」に相当する。
【０１１３】
なお、「第１の回転運動成分」及び「第２の回転運動成分」は、第１基体４ｂ及び第２基体４ａの回転のみならず、たとえば上肢３Ｒ，３Ｌの回転等によっても変化する成分である。
【０１１４】
ここで、式１００ｂにおけるｄ２θ１／ｄｔ２（ｔ）およびｄ２θ２／ｄｔ２（ｔ）は、たとえば平地における２肢歩行及び２肢走行の場合０に固定されてもよい。一方、２肢−４肢遷移、４肢歩行の場合、式１００ｂにおけるｄ２θ１／ｄｔ２（ｔ）およびｄ２θ２／ｄｔ２（ｔ）は、０以外の値をとる。また、２肢歩行、２肢走行、４肢歩行の場合、Ｚｂ（ｔ）を一定値とみなしてもよい。たとえば、Ｚｂ（ｔ）として、２肢歩行、２肢走行の場合、２肢歩行又は２肢走行の重心の鉛直位置の平均値ｈ１、４肢歩行の場合、４肢歩行の重心の鉛直位置の平均値ｈ２が採用されうる。
【０１１５】
式１００を離散時間系での表現に書き直すことによって、次式１０２の状態方程式が得られる。
【０１１６】
【数２】
0006356033.tif 000003
【０１１７】
なお、添え字（ｋ）、（ｋ＋１）を付した変数は、それぞれ、離散時間系のｋ番目の時刻での値、ｋ＋１番目の時刻での値を意味する。以降の説明では、ｋ番目の時刻、ｋ＋１番目の時刻をそれぞれ、単に時刻ｋ、時刻ｋ＋１、というように表現する場合がある。
【０１１８】
式１０２におけるＸＶｂ（ｋ）は、式１００に関するただし書きで定義した通り、上体質点２４ｂの水平位置Ｘｂと、その時間的変化率である水平速度Ｖｘｂとをそれぞれ状態変数とする状態変数ベクトル（縦ベクトル）である。
【０１１９】
また、式１０２におけるＡ（ｋ）、Ｂ（ｋ）は、それぞれ、２次の正方行列（状態遷移行列）、２行３列の行列であり、それぞれの各成分値が以下の式１０４ａ，１０６ａの如く決定されるものである。なお、ΔＴは離散時間系の刻み時間であり、ωは下記のただし書きの式１０８ｃによって定義される角周波数値である。また、ｅｘｐ（  ）は、自然対数の底の指数関数である。なお、重力ｇとｄ２Ｚｂ（ｔ）／ｄｔ２との和がゼロよりも大きいか否かにより、Ａ（Ｋ）、Ｂ（Ｋ）を決定する式は変化するが、通常の歩行においては、重力ｇとｄ２Ｚｂ（ｔ）／ｄｔ２との和はゼロよりも大きい。このため、以下では、重力ｇとｄ２Ｚｂ（ｔ）／ｄｔ２との和がゼロよりも大きい場合についてのみ説明する。
【０１２０】
【数３】
0006356033.tif 000004
【０１２１】
また、本発明の第２実施形態は、第１実施形態の式１０８ｃ及び式１０８ｄに代えて、以下の式１０８ｅ及び式１０８ｆを使用する点で第１実施形態と相違する。なお、ｈ１は、２肢歩行時のロボット１の重心位置の平均値である。
【０１２２】
【数４】
0006356033.tif 000005
【０１２３】
また、本発明の第３実施形態は、第１実施形態の式１０６ａに代えて、以下の式１０６ｂを使用する点で第１実施形態と相違する。
【０１２４】
【数５】
0006356033.tif 000006
【０１２５】
また、比較形態は、第１実施形態の式１０６ａ、式１０８ａｃ及び式１０８ｄに代えて、上記式１０６ｂ、式１０８ｅ及び式１０８ｆを使用する点で第１実施形態と相違する。
【０１２６】
図９を参照して歩容生成装置１００（図１に示す）の動力学演算部の動作を説明する。動力学演算部の水平位置算出部２００は、式１００により、目標ＺＭＰから上体質点水平位置Ｘbを算出する。
【０１２７】
さらに、図９に示す如く、動力学演算部は、動力学演算部は上体位置決定器２０２を備える。上体位置決定器２０２は、上体質点水平位置Ｘｂから上体の水平位置を決定する。
【０１２８】
次いで、歩容の継続的姿勢安定性について述べる。
【０１２９】
ここまで述べてきた動力学モデル自身は、単に、各瞬間における動力学的平衡条件を近似的に満足するように、目標ＺＭＰから上体軌道を算出するだけのものであり、上体軌道が発散すること（上体２４の位置が接地部の位置からかけ離れた位置にずれてしまうこと）を防止するものではない。
【０１３０】
以下では、上体軌道の発散を防止し、上体と接地部の間の適切な位置関係を継続させるための手段について説明する。
【０１３１】
まず、同一の歩容が無限に繰り返された場合に発散性を有する運動成分である発散成分について定義する。
【０１３２】
上記式１０２の状態方程式により表される系では、状態変数ベクトルＸＶｂの初期値ＸＶｂ［０］（ｋ＝０の時刻（時刻０）でのＸＶｂの値）と、時刻０から時刻ｋ−１までの入力モーメントＭｉｎ（床反力モーメントの水平成分Ｍｂ＿ｙ）の時系列とが与えられたとき、任意の時刻ｋ（＞０）での状態変数ベクトルＸＶｂの値ＸＶｂ［ｋ］は、次式１１０により与えられることとなる。
【０１３３】
【数６】
0006356033.tif 000007
【０１３４】
なお、上記式のＩは単位行列である。
【０１３５】
次に、前記した歩容での倒立振子モデルの挙動に着目し、歩容の初期時刻Ｔｓをｋ＝０の時刻、歩容の終端時刻Ｔｅ（＝Ｔｓ＋Ｔｃｙｃ）をｋ＝ｋｃｙｃ（ただし、ｋｃｙｃ≡Ｔｃｙｃ／ΔＴ）の時刻とし、初期時刻Ｔｓでの歩容の運動により規定される状態変数ベクトルＸＶｂがＸＶｂ（０）であるとする。そして、歩容の終端時刻Ｔｅ（ｋ＝ｋｃｙｃの時刻）における状態変数ベクトルＸＶｂのうち、歩容の初期時刻Ｔｓでの状態変数ベクトルの値ＸＶｂに依存する成分をＸＶｂ（ｋｃｙｃ）とおく。このとき、ＸＶｂ（ｋｃｙｃ）と、ＸＶｂ（０）との間の関係は、上記式１１０に基づいて、次式１１２により表されることとなる。
【０１３６】
ＸＶｂ（ｋｃｙｃ）＝φ（ｋｃｙｃ，０）＊ＸＶｂ（０）  ……式１１２
ただし、φ（ｋｃｙｃ，０）＝Ａ（ｋｃｙｃ−１）＊……＊Ａ（１）＊Ａ（０）
さらに、この式１１２の右辺の行列φ（ｋｃｙｃ，０）の２つの固有値をλ１，λ２、それぞれの固有値に対応する固有ベクトル（縦ベクトル）を（ａ１１，ａ２１）Ｔ、（ａ１２，ａ２２）Ｔ（なお、上付きのTはベクトル又は行列の転置を表す）、これらの固有ベクトルをそれぞれ第１列、第２列とする２次の正方行列をΓｃｙｃとおき、この行列Γｃｙｃを用いてφ（ｋｃｙｃ，０）を対角化してなる行列をΛとおく。すなわち、Λを次式１１４により定義する。以降、行列Γｃｙｃを対角化用行列という。
【０１３７】
【数７】
0006356033.tif 000008
【０１３８】
この式１１４と前記式１１２とから次式１１６が得られる。
【０１３９】
Γｃｙｃ−１＊ＸＶｂ（ｋｃｙｃ）＝Λ＊Γｃｙｃ−１＊ＸＶｂ（０）  ……式１１６
ここで、任意の時刻ｋでの状態変数ベクトルＸＶｂ（ｋ）を、対角化用行列Γｃｙｃの逆行列Γｃｙｃ−１によって線形変換してなるベクトル（以降、変換状態変数ベクトルという）を（ｐ（ｋ），ｑ（ｋ））Ｔとおく。すなわち、変換状態変数ベクトル（ｐ（ｋ），ｑ（ｋ））Ｔを次式１１８により定義する。
（ｐ（ｋ），ｑ（ｋ））Ｔ≡Γｃｙｃ−１＊ＸＶｂ（ｋ）  ……式１１８
【０１４０】
この式１１８と前記式１１６とから、次式１２０が得られる。
（ｐ（ｋｃｙｃ），ｑ（ｋｃｙｃ））Ｔ＝Λ＊（ｐ（０），ｑ（０））Ｔ  ……式１２０
【０１４１】
この式１２０において、λ１＞１であれば、ｐ（ｋｃｙｃ）の絶対値＞初期値ｐ（０）の絶対値となり、λ１≦１であれば、ｐ（ｋｃｙｃ）の絶対値≦初期値ｐ（０）の絶対値となる。同様に、λ２＞１であれば、ｑ（ｋｃｙｃ）の絶対値＞初期値ｑ（０）の絶対値となり、λ２≦１であれば、ｑ（ｋｃｙｃ）の絶対値≦初期値ｑ（０）となる。
【０１４２】
一方、第１実施形態における歩容では、一般にφ（ｋｃｙｃ，０）の２つの固有値λ１，λ２の一方が、“１”よりも大きい値となり、他方が“１”よりも小さい値となる。
【０１４３】
そこで、以降、λ１＜１、λ２＞１であるとする。すなわち、変換状態変数ベクトル（ｐ（ｋ），ｑ（ｋ））Ｔのうちの、第１成分ｐ（ｋ）が、“１”よりも小さい固有値λ１に対応する成分、第２成分ｑ（ｋ）が、“１”よりも大きい固有値λ２に対応する成分であるとする。このとき、ｐ（ｋ）は、無限に繰り返される歩容において収束性を有する運動成分の状態量としての意味を持ち、ｑ（ｋ）は、無限に繰り返される歩容において発散性を有する運動成分の状態量としての意味を持つ。
【０１４４】
そこで、第１実施形態では、式１１８により定義した変換状態変数ベクトル（ｐ（ｋ），ｑ（ｋ））Ｔのうちの第２成分ｑ（ｋ）を前記発散成分として定義する。このようにして定義される発散成分ｑ（ｋ）は、状態変数Ｘｂ（ｋ），Ｖｘｂ（ｋ）の線形結合値となる。この場合、その線形結合において、Ｘｂ（ｋ），Ｖｘｂ（ｋ）にそれぞれ掛かる重み係数は、定常歩容の１周期の期間内での上体質点２４ｂの慣性力の時系列に依存して定まるものとなる。なお、式１１８により定義した変換状態変数ベクトル（ｐ（ｋ），ｑ（ｋ））Ｔのうちの第１成分ｐ（ｋ）を収束成分と言う。
【０１４５】
なお、前記式１１８で定義される収束成分ｐ（ｋ）及び発散成分ｑ（ｋ）は、詳しくはサジタルプレーン上での収束成分ｐ（ｋ）及び発散成分ｑ（ｋ）（Ｘ軸方向での上体質点２４ｂの水平位置Ｘｂと水平速度Ｖｘｂとを成分とする状態変数ベクトルＸＶｂに対応する収束成分及び発散成分）であるが、これと同様に、ラテラルプレーン上での収束成分及び発散成分も定義される。具体的には、式１１８の右辺の状態変数ベクトルＸＶｂ（ｋ）の各成分Ｘｂ、Ｖｘｂをそれぞれ、Ｙ軸方向での上体質点２４ｂの水平位置と水平速度とに置き換えた式によって、ラテラルプレーン上での収束成分及び発散成分が定義される。この場合、式１１８の行列Γｃｙｃ−１はＸ軸方向及びＹ軸方向のいずれの軸方向に関しても同一である。
【０１４６】
次いで、前記発散成分を利用して歩行の継続性を保証する歩容生成アルゴリズムについて述べる。
【０１４７】
先に、上体軌道の発散を防止し、上体と接地部の間の適切な位置関係を継続させるためには、発散成分を歩行に支障ない範囲（姿勢が大きく崩れない範囲）から越えないように、ＺＭＰ軌道パラメータなどを適切に決定することが重要であると述べた。次の問題は、歩行に支障ない発散成分の範囲あるいは適切な発散成分の値を如何に求めるかである。
【０１４８】
この実施例に係る歩容生成装置１００は、今回生成する歩容につながるべき歩容（以下「定常旋回歩容」と呼ぶ。これについては後述する）を仮に想定することによって、適切な発散成分の値を決定するようにした。以下に歩容生成装置１００の動作を詳細に説明する。
【０１４９】
歩容生成装置１００は、２歩先までの遊肢接地部着地位置姿勢、着地時刻の要求値（要求）を入力として、目標上体位置姿勢軌道、目標接地部位置姿勢軌道、目標ＺＭＰ軌道を決定する。このとき、歩容パラメータの一部は、歩行の継続性を満足するように修正される。生成しようとしている歩容を「今回歩容」、その次の歩容を「次回歩容」、さらにその次の歩容を「次次回歩容」と呼ぶ。
【０１５０】
図１０は、その歩容生成装置１００の歩容生成処理を示すフロー・チャート（構造化フロー・チャート）である。
【０１５１】
以下説明すると、まずＳ０１０において時刻ｔを０に初期化するなど種々の初期化作業を行う。次いでＳ０１２を経てＳ０１４に進み、制御周期毎のタイマ割り込みを待つ。制御周期はΔｔである。次いでＳ０１６に進み、歩容切り変わり目であるか否かを判断し、肯定されるときはＳ０１８に進むと共に、否定されるときはＳ０２０に進む。
【０１５２】
Ｓ０１８に進むときは時刻ｔを０に初期化し、次いでＳ０２２に進み、次回歩容支持肢座標系、次次回歩容支持肢座標系、今回歩容周期および次回歩容周期を読み込む。これらは前記した要求に相当するが、あらかじめ歩行スケジュールとして記憶しておいても良く、あるいは無線ネットワークなどを介した外部からの指令（要求）とそのときまでの歩行履歴を基に決定しても良い。
【０１５３】
次いで、Ｓ０２４に進み、今回歩容の歩容パラメータを仮決定（仮に算出）する。
【０１５４】
今回歩容初期遊肢接地部位置姿勢は、今回支持肢座標系から見た現在遊肢位置姿勢にする（初期値とする）。今回歩容初期支持肢接地部位置姿勢は、今回支持肢座標系から見た現在支持肢位置姿勢にする（初期値とする）。今回歩容終端遊肢接地部位置姿勢は、今回支持肢座標系から見た次回支持肢座標系に対応して決定する。即ち、今回歩容終端遊肢接地部位置姿勢から接地部を床に接触させたまま、すべらないように接地部を水平まで回転させたときの位置姿勢が、次回支持肢座標系となるように設定する。
【０１５５】
今回歩容終端支持肢接地部位置姿勢は、現在支持肢位置姿勢から接地部を床に接触させたまま、すべらないように接地部を床に面接触するまで回転させたときの位置姿勢とする。したがって、床が平面であるならば、今回歩容終端支持肢接地部位置姿勢は、今回支持肢座標系に一致する。尚、この歩容では、歩容終端において支持肢接地部は水平になるが、必ずしも、このように設定する必要はない。
【０１５６】
今回歩容のＺＭＰ軌道パラメータは、安定余裕が高く、かつ急激な変化をしないように決定する。（接地面を含む最小の凸多角形（凸領域）（いわゆる支持多角形）の中央付近にＺＭＰが存在する状態を安定余裕が高いと言う（詳細は特開平１０−８６０８１号公報に記述））。ただし、今回歩容のＺＭＰ軌道パラメータは、仮決定されただけであり、後述するように修正される。
【０１５７】
Ｓ０２４により歩容生成装置１００が上下方向運動パラメータ決定手段として機能する。
【０１５８】
なお、第１〜第３実施形態では、接地面を含む凸多角形を「支持多角形」と表現しているが、接地面を含む領域は、必ずしも多角形である必要はなく、たとえば、円形の領域であってもよい。
【０１５９】
４肢歩行のＺＭＰ決定方法については後述する。
【０１６０】
次いでＳ０２６に進み、今回歩容につながる定常旋回歩容の歩容パラメータを決定する。
【０１６１】
尚、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界において運動状態に不連続が生じないような周期的歩容を意味するものとして使用する。
【０１６２】
定常旋回歩容は、各歩容に応じて第１旋回歩容〜第ｎ旋回歩容が構成される。
【０１６３】
より具体的には、２肢歩行歩容の場合、次の２歩分の歩容が第１旋回歩容及び第２旋回歩容として構成される。
【０１６４】
４肢歩行歩容のうち、クロール歩行歩容の場合、次の４歩分が第１旋回歩容〜第４旋回歩容として構成される。
【０１６５】
４肢歩行歩容のうち、トロット歩行歩容の場合、次の２歩分が第１旋回歩容〜第２旋回歩容として構成される。
【０１６６】
２肢−４肢遷移歩容の場合、その遷移状態に応じて、手平着床期の１歩、ＺＭＰ移動期の１歩、４肢歩行準備期の１歩及び続く４肢歩行の第１歩〜第４歩（又は第１歩〜第２歩）のうち、必要に応じた歩数分の歩容により、定常旋回歩容が構成される。
【０１６７】
４肢―２肢遷移歩容の場合、その遷移状態に応じて、腰移動期の１歩、ＺＭＰ移動期の１歩、手平離床期の１歩及び続く２肢歩行の第１歩〜第２歩のうち、必要に応じた歩数分の歩容により定常旋回歩容が構成される。
【０１６８】
尚、ここで「旋回」なる用語を用いたのは、旋回率を零とするときは直進を意味するので、直進も広義の意味で旋回に含ませることができるからである。定常旋回歩容は、歩容生成装置１００で今回歩容の終端における発散成分を決定するために暫定的に作成されるものであり、歩容生成装置１００からそのまま出力されるものではない。
【０１６９】
先ず、今回歩容、第１旋回歩容、‥、第ｎ旋回歩容の順に脚軌道がつながるように、第１旋回歩容〜第ｎ旋回歩容の歩容パラメータ中の脚軌道の境界条件を設定する。
【０１７０】
具体的には、第１旋回歩容初期遊肢接地部位置姿勢は、次回歩容支持肢座標系から見た今回歩容終端支持肢接地部位置姿勢とする。第１旋回歩容初期支持肢接地部位置姿勢は、次回歩容支持肢座標系から見た今回歩容終端遊肢接地部位置姿勢とする。
【０１７１】
第１旋回歩容終端遊肢接地部位置姿勢は、今回歩容終端遊肢接地部位置姿勢の決定手法と同様に、次回歩容支持肢座標系から見た次次回歩容支持肢座標系に対応して決定する。第１旋回歩容終端支持肢接地部位置姿勢は、次回歩容支持肢座標系に一致させた接地部を床に接触させたまま、すべらないように接地部を床に面接触するまで回転させたときの位置姿勢とする。したがって、床が平面であるならば、第１旋回歩容終端支持肢接地部位置姿勢は、次回支持肢座標系に一致する。
【０１７２】
第２旋回歩容初期遊肢接地部位置姿勢は、次次回歩容支持肢座標系から見た第１旋回歩容終端支持肢接地部位置姿勢にする。第２旋回歩容初期支持肢接地部位置姿勢は、次次回歩容支持肢座標系から見た第１旋回歩容終端遊肢接地部位置姿勢にする。
【０１７３】
第２旋回歩容終端遊肢接地部位置姿勢は、今回支持肢座標系から見た今回歩容終端遊肢接地部位置姿勢にする。第２旋回歩容終端支持肢接地部位置姿勢は、今回支持肢座標系から見た今回歩容終端支持肢接地部位置姿勢にする。
【０１７４】
これらの関係を図１１に示す。
【０１７５】
第１旋回歩容および第２旋回歩容の歩行周期は、次回歩容周期と同一にする（尚、同一にすることは必ずしも必要ではないが、次回歩容周期に応じて決定するのが好ましい）。今回歩容、第１旋回歩容および第２旋回歩容の上記以外の運動パラメータ（両脚支持期時間などの時間パラメータを含む）は、上記決定されたパラメータに応じて、歩容の条件（電動モータ（アクチュエータ）の速度が許容範囲に入っていることなど）を満足するように適宜決定する。
【０１７６】
第１旋回歩容および第２旋回歩容のＺＭＰ軌道パラメータも、安定余裕が高くかつ急激な変化をしないように決定する。
【０１７７】
ところで、上体代表点の初期位置と速度をある値Ｘｂ０，Ｖｂ０に設定すると、図８に示す単純モデルを用いて上記第１旋回歩容〜第ｎ旋回歩容を生成し、再び第１旋回歩容の生成を開始するときの初期上体代表点位置速度が、前記設定した初期上体代表点位置速度の値Ｘｂ０，Ｖｂ０に一致する。
【０１７８】
このように設定すると、図８に示す単純モデルを用いて第１旋回歩容〜第ｎ旋回歩容（のうちの２肢歩行又は４肢歩行の部分）を繰り返し生成しても、演算誤差が蓄積しない限り、第１旋回歩容の初期上体代表点位置速度は、値Ｘｂ０，Ｖｂ０になる。即ち、歩行の継続性が保証される。このときの発散成分を、「定常旋回歩容の初期発散成分」と呼ぶ。
【０１７９】
図１０の説明に戻ると、次いでＳ０２８に進み、定常旋回歩容の初期発散成分を求める。
【０１８０】
図１２は、図１０フロー・チャートのＳ０２８の定常旋回歩容の初期発散成分を算出するサブルーチン・フロー・チャートである。
【０１８１】
ここで、同図の説明に入る前に、定常旋回歩容の初期発散成分の算出原理を説明する。
【０１８２】
先に説明した発散成分ｑの定義に従って、定常歩容初期発散成分ｑ［０］は次のように算出される。
【０１８３】
定常歩容パラメータを基に、定常歩容の初期時刻０及び終端時ｋｃｙｃにおける上体質点鉛直位置Ｚｂ（０）、Ｚｂ（ｋｃｙｃ）、上体質点の鉛直加速度ｇ＋ｄ２Ｚｂ／ｄｔ２（０）、ｇ＋ｄ２Ｚｂ／ｄｔ２（ｋｃｙｃ）及びｕ（０）、ｕ（ｋｃｙｃ）を求める。
【０１８４】
ここで、Γｃｙｃ−１＝（ｖｐＴ、ｖｑＴ）Ｔとおく。この時、時刻ｋの発散成分は、以下の式１２２により与えられる。
【０１８５】
【数８】
0006356033.tif 000009
【０１８６】
一方、前述した定常歩容の境界条件により、次の式１２４が成り立つ。
【０１８７】
【数９】
0006356033.tif 000010
【０１８８】
ただし、Ｒｚは、対象の定常歩容の支持肢座標系からみた次の定常歩容の座標系（対象の定常歩容の第ｎ旋回歩容に続く第１旋回歩容の座標系）の支持肢座標系の姿勢角θｎｅｘｔだけの回転移動の写像、ｏｎｅｘｔは、対象の定常歩容の支持肢座標系からみた次の定常歩容の支持肢座標系の原点の座標、keは対象の定常歩容の第ｎ旋回歩容の終端時刻である。
【０１８９】
一方、前記した式１２２から、次式１２６が成り立つ。
【０１９０】
【数１０】
0006356033.tif 000011
【０１９１】
式１２４、式１２６を整理して、次式１２８が得られる。
【０１９２】
【数１１】
0006356033.tif 000012
【０１９３】
以上の如く定常歩容の初期発散成分ｑ［０］を算出することが出来る。
【０１９４】
上記した算出原理を前提とし、図１２フロー・チャートを参照して説明すると、Ｓ１００において目標ＺＭＰによって発生する終端発散成分を上記手法で求め、次いでＳ１０２に進み、式１２８を用いて定常旋回初期発散成分ｑ［０］を求める。定常旋回初期発散成分ｑ［０］は、定常旋回歩容の支持肢座標系から見た値になっている。
【０１９５】
次いで、Ｓ１０４に進み、定常旋回初期発散成分ｑ［０］を今回歩容の支持肢座標系から見た値に変換する。これをｑ”とする。
【０１９６】
次の課題は、今回歩容の終端発散成分がｑ”に一致するように、上記仮決定した今回歩容のパラメータを修正することである。この処理においては、上記定常旋回歩容における処理とほとんど同じであるので、以下では、変数、値、および記号を、改めて今回歩容に対応させる。
【０１９７】
この実施例では、ＺＭＰ軌道パラメータを修正することとする。その他の歩容パラメータを修正しても良い。
【０１９８】
前記した仮決定された目標ＺＭＰ（これを「仮目標ＺＭＰ」と呼ぶ）に、ＺＭＰ修正量（補正量あるいは付加量）を加えることにより、ＺＭＰを修正する。修正されたＺＭＰを改めて目標ＺＭＰという。これらの関係を図１３（ａ）（ｂ）に示す。
【０１９９】
同図に示す如く、目標ＺＭＰ＝仮目標ＺＭＰ＋ＺＭＰ修正量、となるように、目標ＺＭＰパラメータを修正する。
【０２００】
ＺＭＰ修正量は図１３（ａ）及び（ｂ）の中段に示すように台形状であり、その高さをａとする。この高さａは、次の式１３０で示される。
【０２０１】
たとえば、上記ａは、以下の式１３０により算出される。
【０２０２】
【数１２】
0006356033.tif 000013
【０２０３】
ただし、ｑｔｅｍｐｌａｔｅはＺＭＰ修正量を調整するためのあらかじめ定められた係数である。
【０２０４】
最後に、ＺＭＰ修正量を仮目標ＺＭＰに加算したものが目標ＺＭＰとなるように、目標ＺＭＰのパラメータを修正すれば、今回歩容の終端発散成分が、定常旋回歩容の初期発散成分を今回歩容から見た値ｑ" に一致する。
【０２０５】
図１０フロー・チャートの説明に戻ると、次いでＳ０３０に進み、今回歩容パラメータを修正する。具体的には、今回歩容の終端発散成分が定常旋回歩容の初期発散成分ｑ" に一致するように、今回歩容のパラメータを修正する。
【０２０６】
図１４はその処理を示すサブルーチン・フロー・チャートである。
【０２０７】
以下説明すると、Ｓ２００において今回歩容の仮目標ＺＭＰパターンによって発生する終端発散成分を求め、次いでＳ２０２に進み、ａ＝１とした場合のＺＭＰ修正量によって発生する終端発散成分を求める。
【０２０８】
次いでＳ２０４に進み、今回歩容の初期発散成分ｑ［０］を初期上体質点位置と速度から求め、求めた値を式１３０に代入してＺＭＰ補正量の台形高さａを求める。次いでＳ２０６に進み、前記したように目標ＺＭＰのパラメータを修正する。
【０２０９】
以上が、歩容の切り変わり目の処理である。
【０２１０】
図１０フロー・チャートの説明に戻ると、次いでＳ０２０に進み、決定された歩容パラメータから今回歩容の瞬時値を決定する。
【０２１１】
図１５はその処理を示すサブルーチン・フロー・チャートである。
【０２１２】
以下説明すると、Ｓ３００において、今回歩容パラメータを基に、時刻ｔにおける目標ＺＭＰを求め、Ｓ３０２に進み、今回歩容パラメータを基に、時刻ｔにおける目標接地部位置姿勢を求める。Ｓ３０４に進み、今回歩容パラメータを基に、時刻ｔにおける目標上体位置姿勢を求める。
【０２１３】
Ｓ３０６に進み、式１００を用いて、目標ＺＭＰから上体質点水平位置を算出する。次いでＳ３０８に進み、上体質点水平位置から上体の水平位置を決定する。
【０２１４】
次いでＳ３１０に進み、本出願人が先に特開平１０−８６０８０号公報で提案した上体高さ決定手法を用いて上体高さを決定する。
【０２１５】
図１０フロー・チャートの説明に戻ると、次いでＳ０３２に進み、時刻ｔにΔｔを加え、再びＳ０１４に戻り、上記の処理を繰り返す。
【０２１６】
図３を参照してこの実施例に係る歩容生成装置の動作をさらに説明すると、歩容生成装置１００において、上記したように目標歩容が生成される。生成された目標歩容の歩容パラメータの中、目標上体位置姿勢（軌道）は、ロボット幾何学モデル（逆キネマティクス演算部）１０２に直接送られる。
【０２１７】
また、その他の目標接地部位置姿勢（軌道）、目標全床反力中心点（即ち、目標ＺＭＰ）軌道、および目標全床反力（軌道）は、複合コンプライアンス動作決定部１０４に直接送られる一方、目標床反力分配器１０６にも送られ、そこで床反力は各接地部に分配され、目標各接地部床反力中心点および目標各接地部床反力が決定されて複合コンプライアンス動作決定部１０４に送られる。
【０２１８】
複合コンプライアンス動作決定部１０４から、機構変形補償付き修正目標接地部位置姿勢（軌道）がロボット幾何学モデル１０２に送られる。ロボット幾何学モデル１０２は、目標上体位置姿勢（軌道）、機構変形補償付き修正目標接地部位置姿勢（軌道）を入力されると、それらを満足する２７個の関節（１０Ｒ（Ｌ）など）の関節変位指令（値）を算出して変位コントローラ１０８に送る。変位コントローラ１０８は、ロボット幾何学モデル１０２で算出された関節変位指令（値）を目標値としてロボット１の２７個の関節の変位を追従制御する。
【０２１９】
よってロボット１に生じた床反力は実各接地部床反力検出器１１０（６軸力センサ４１ａ、４１ｂ）によって検出される。検出値は前記した複合コンプライアンス動作決定部１０４に送られる。また、ロボット１に生じた姿勢傾斜偏差θerrx, θerryは傾斜センサ４０によって検出され、検出値は姿勢安定化制御演算部１１２に送られ、そこで姿勢傾斜を復元する目標全床反力中心点まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部１０４に送られる。複合コンプライアンス動作決定部１０４は、入力値に基づいて目標値を修正する。
【０２２０】
尚、この発明の要旨は歩容生成装置１００におけるロボットの歩容生成にあり、上記した複合コンプライアンス動作決定部１０４などの構成および動作は、本出願人が先に出願した特開平１０−２７７９６９号公報などに詳細に記載されているので、説明は以上に止める。
【０２２１】
（４肢歩行の概要）
上記した目標歩容生成処理を前提として、以下、歩容生成装置１００によるロボット１の４肢歩行における目標歩容生成処理について説明する。
【０２２２】
図７及び図１６を参照して、ロボット１のクロール歩行について説明する。図１６は、縦軸を各肢（右上肢、左上肢、右下肢、左下肢）の離床状態及び着床状態、横軸を時間として、クロール歩行時の各肢の着床状態及び離床状態を示すグラフである。ロボット１は、時刻ｔ＝ｔａにおいて、４肢で支持されている状態（４肢支持期、４肢すべてが着床している状態）である。ここから、ロボット１は、右上肢３Ｒを持ち上げ残りの３肢で支持されている状態（３肢支持期、４肢のうち３肢が着床している状態）を経て（図１６の期間ｄ１、図７のｔ８’参照）、その右上肢３Ｒを所定の位置に移動させて接地させる。以下、４肢支持期をはさみながら、ロボット１は、右上肢３Ｒと同様に、左下肢２Ｌ（図１６の期間ｄ２、図７のｔ８’’参照）、左上肢３Ｌ（図１６の期間ｄ３、図７のｔ９’参照）、右下肢２Ｒ（図１６の期間ｄ４、図７のｔ９’’参照）の持ち上げ及び接地を行う。ロボット１は、右下肢２Ｒの持ち上げ及び接地が終了した後、再び右上肢３Ｒの持ち上げ及び接地を行う（図１６の期間ｄ５以降参照）。
【０２２３】
第１実施形態では、歩容生成装置１００は、クロール歩容のうち、４肢支持期の開始時点から当該４肢支持期に続く１肢を持ち上げ残りの３肢で支持する３肢支持期の終了時点までを１歩の歩容と捉え、前記した歩容生成処理により目標歩容を生成する。
【０２２４】
また、図４及び図１７を参照して、ロボット１のトロット歩行について説明する。ロボット１は、図１７の時刻ｔ＝ｔｂにおいて、４肢で支持されている状態である。図１７は、縦軸を各肢（右上肢、左上肢、右下肢、左下肢）の離床状態及び着床状態、横軸を時間として、トロット歩行時の各肢の着床状態及び離床状態を示すグラフである。ここから、ロボット１は、右上肢３Ｒ及び左下肢２Ｌを持ち上げ残りの２肢で支持されている状態（２肢支持期、４肢のうち２肢が着床している状態）を経て（図１７の期間ｄ６、図４のｔ８参照）、その右上肢３Ｒ及び左下肢２Ｌを所定の位置に移動させて接地させる。その後、ロボット１は、４肢支持期をはさんで、右上肢３Ｒ及び左下肢２Ｌと同様に、左上肢３Ｌ及び右下肢２Ｒの持ち上げ及び接地を行う（図１７の期間ｄ７、図４のｔ９参照）。以下、ロボット１は、右上肢３Ｒ及び左下肢２Ｌの持ち上げ及び接地と左上肢３Ｌ及び右下肢２Ｒの持ち上げ及び接地とを繰り返し行う（図１７の期間ｄ８以降参照）。
【０２２５】
第１実施形態では、歩容生成装置は、トロット歩容のうち、４肢支持期の開始時点から当該４肢支持期に続く２肢を持ち上げ残りの２肢で支持する２肢支持期の終了時点までを１歩の歩容と捉え、前記した歩容生成処理により目標歩容を生成する。
【０２２６】
目標歩容生成処理の基本的な流れは前記の通りであるが、定常歩容又は今回歩容におけるＺＭＰ軌道パラメータの仮決定（図１０／Ｓ０２４）の算出処理がクロール歩容とトロット歩容とに応じて異なるため、以下で、詳しく説明する。
【０２２７】
（４肢歩行におけるＺＭＰ軌道パラメータの決定処理の概要）
歩容生成装置１００は、図１０／Ｓ０２４において、ＺＭＰ軌道パラメータの仮決定の基礎となる４肢歩行の２肢支持期又は３肢支持期における仮目標ＺＭＰ候補Ｐｚｍｐを、以下の式２００により算出する。
【０２２８】
【数１３】
0006356033.tif 000014
【０２２９】
ただし、ＳＰ（ｉ）は、今回の支持肢座標系で表される、今回の支持多角形と次回の支持多角形とに基づいて定められる床面上の点である。たとえば、今回支持多角形と次回の支持多角形との重複領域の中心を基準として広がる領域に含まれる１点がＳＰ（ｉ）として採用されうる。
【０２３０】
重複領域の中心とは、たとえば、その重複領域の重心であってもよいし、重複領域が縦長で線とみなせる場合には、その線の中点であってもよい。
【０２３１】
重複領域の中心を基準として広がる領域としては、たとえば、重複領域の中心を円の中心とする、重複領域の内接円（より正確には、重複領域に完全に内包される円のうち、最大の大きさの円）により定められる範囲が採用されうる。
【０２３２】
また、ＥＰ（ｉ）は、今回の支持肢座標系で表される床面上の点であり、遊肢線と支持肢線との交点を基準として広がる領域に含まれる１点である。ここで、遊肢線とは、遊肢（遊肢が複数の場合は右上肢→左上肢→右下肢の優先順で一つの遊肢を定める）の離床位置又は着床位置と当該遊肢の対角にある肢の位置とを結んだ線であり、支持肢線とは、残りの２つの支持肢の位置を結んだ線を言う。
【０２３３】
交点の中心を基準として広がる領域としては、たとえば、交点を円の中心とする、重複領域の内接円（より正確には、重複領域に完全に内包される円のうち、最大の大きさの円）により定められる領域が採用されうる。
【０２３４】
α（ｉ）は、加減速に応じて現在のマージンと将来の安定度との重みを変化させる０≦α（ｉ）＜１のパラメータであり、たとえば以下の式２０２で定義される。これに代えて、α（ｉ）は定数（たとえば０．５）であってもよい。
【０２３５】
【数１４】
0006356033.tif 000015
【０２３６】
なお、Ｘｓｗｇ［ｉ］は、今回の遊肢（遊肢が複数の場合は右上肢→左上肢→右下肢の優先順で一つの遊肢を定める）の歩幅（移動量）を示し、Ｘｓｗｇ［ｉ＋１］は、次回の遊肢の歩幅（移動量）を示す。
【０２３７】
今回の遊肢の移動量に対する次回の遊肢の移動量が大きいほど式２０２の分母が大きくなるので、αは小さくなる。この結果、式２００により、Ｐｚｍｐ（ｉ）は、ＳＰ（ｉ）に近づくように決定される。
【０２３８】
一方、今回の遊肢の移動量に対する次回の遊肢の移動量が小さいほど式２０２の分母が小さくなるので、αは大きくなる。この結果、式２００により、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）は、ＥＰ（ｉ）に近づくように決定される。
【０２３９】
また、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）は、線分ＳＰ（ｉ）−ＥＰ（ｉ）上に存在することとなる。
【０２４０】
このように決定された仮目標ＺＭＰ候補のうち、今回歩容の仮目標ＺＭＰ候補（仮目標ＺＭＰ）は、前記したように、図１０のＳ０３０で修正される。
【０２４１】
（クロール歩容における仮目標ＺＭＰ候補の決定処理の具体例）
次に、図１６及び図１８〜図２１を参照して、クロール歩容における仮目標ＺＭＰ候補の決定処理の具体例を説明する。クロール歩容において、ＳＰは、今回の３肢支持期における支持多角形と次回の３肢支持期における支持多角形との重複領域の中心を基準として広がる領域内の１点として定義される。また、第１実施形態のクロール歩容における遊肢線は、遊肢の着地予定位置と遊肢の対角にある肢の着地位置を結んだ線で定義される。また、これに代えて、クロール歩容における遊肢線が、遊肢の離床位置と遊肢の対角にある肢の着地位置を結んだ線で定義されてもよい。
【０２４２】
まず、図１６に示される期間ｄ１（ｉ＝１）が今回の３肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０２４３】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ（１）を求める。
【０２４４】
まず、歩容生成装置１００は、今回の３肢支持期（期間ｄ１）における支持肢（遊肢でない肢）３Ｌ，２Ｌ及び２Ｒの夫々の着地位置を囲む領域を今回の３肢支持期における支持多角形Ｓｄ１として求める。
【０２４５】
そして、歩容生成装置１００は、次回の３肢支持期（期間ｄ２）における支持肢３Ｒ、３Ｌ及び２Ｒの夫々の着地位置又は着地予定位置を囲む領域を次回の３肢支持期における支持多角形Ｓｄ２として求める。
【０２４６】
歩容生成装置１００は、今回の支持多角形Ｓｄ１と次回の支持多角形Ｓｄ２との重複領域ＤＲ１を求める。
【０２４７】
歩容生成装置１００は、今回の３肢支持期における遊肢３Ｒの着地予定位置と、その対角にある肢２Ｌの着地位置とを結ぶ線（より詳しくは、図１８（ａ）における遊肢３Ｒの着地予定位置内に定めた点（たとえば、着地予定位置の中心点又は下辺の中点）と、肢２Ｌの着地位置内に定めた点（たとえば、着地位置の中心点又は上辺の中点）とを結ぶ線）により、遊肢線Ｌ１を求める。
【０２４８】
また、歩容生成装置１００は、残りの２肢３Ｌ、２Ｒとを結ぶ線（より詳しくは、図１８（ａ）における遊肢３Ｌの着地位置内に定めた点と肢２Ｒの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ２を求める。
【０２４９】
また、歩容生成装置１００は、重複領域ＤＲ１内において、重複領域ＤＲ１の中心としての支持肢線Ｌ２の中点を基準として広がる領域（ＤＲ１の内接円）ＳＣ１を求める。
【０２５０】
歩容生成装置１００は、重複領域ＤＲ１内において、遊肢線Ｌ１と支持肢線Ｌ２との交点を基準として広がる領域ＥＣ１を求める。
【０２５１】
歩容生成装置１００は、領域ＳＣ１に含まれる１点を（本実施形態では、支持肢線Ｌ２の中点）を、点ＳＰ（１）として求める。
【０２５２】
なお、図１８（a）〜（ｄ）、後述する図２０、図２２では、ＳＰ（１）、ＥＰ（１）、Ｐｚｍｐ（１）を単にＳＰ１、ＥＰ１、Ｐｚｍｐ１のように示している。
【０２５３】
また、歩容生成装置１００は、領域ＥＣ１に含まれる１点（本実施形態では、遊肢線Ｌ１と支持肢線Ｌ２との交点）を点ＥＰ（１）として求める。
【０２５４】
歩容生成装置１００は、上記式２００により、２点ＳＰ（１）、ＥＰ（１）をα（１）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（１）を求め、それを仮目標ＺＭＰとする。
【０２５５】
なお、図１８（ａ）〜図１８（ｄ）においては、α（ｉ）＝０．５として、Ｐｚｍｐ（ｉ）を記載している。
【０２５６】
この後、歩容生成装置１００は、４肢支持期を経て、図１６に示される期間ｄ２に遷移する。この４肢支持期において、歩容生成装置１００は、図２１（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（１）の位置から後述するＰｚｍｐ（２）の位置まで移動させる。なお、図２１及び後述する図２３において、Ｐｚｍｐ（ｉ）のＸの値をＰｚｍｐ（ｉ）ｘとして表し、Ｐｚｍｐ（ｉ）のＹの値をＰｚｍｐ（ｉ）ｙとして表している。
【０２５７】
次に、図１６に示される期間ｄ２（ｉ＝２）が今回の３肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０２５８】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ（２）を求める。
【０２５９】
まず、歩容生成装置１００は、今回の３肢支持期（期間ｄ２）における支持肢３Ｒ，３Ｌ及び２Ｒの夫々の着地位置を囲む領域を今回の３肢支持期における支持多角形Ｓｄ２として求める。
【０２６０】
そして、歩容生成装置１００は、次回の３肢支持期（期間ｄ３）における支持肢３Ｒ、２Ｌ及び２Ｒの夫々の着地位置又は着地予定位置を囲む領域を次回の３肢支持期における支持多角形Ｓｄ３として求める。
【０２６１】
歩容生成装置１００は、今回の支持多角形Ｓｄ２と次回の支持多角形Ｓｄ３との重複領域ＤＲ２を求める。
【０２６２】
歩容生成装置１００は、今回の３肢支持期における遊肢２Ｌの着地予定位置と、その対角にある肢３Ｒの着地位置とを結ぶ線（より詳しくは、図１８（ｂ）における遊肢２Ｌの着地予定位置内に定めた点と肢３Ｒの着地位置内に定めた点とを結ぶ線）により、遊肢線Ｌ３を求める。
【０２６３】
また、歩容生成装置１００は、残りの２肢３Ｌ、２Ｒとを結ぶ線（より詳しくは、図１８（ｂ）における肢３Ｌの着地位置内に定めた点と、遊肢２Ｒの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ４を求める。
【０２６４】
また、歩容生成装置１００は、重複領域ＤＲ２内において、重複領域ＤＲ２の中心としての重複領域ＤＲ２の重心を基準として広がる領域（ＤＲ２の内接円）ＳＣ２を求める。
【０２６５】
歩容生成装置１００は、重複領域ＤＲ１内において、遊肢線Ｌ３と支持肢線Ｌ４との交点を基準として広がる領域ＥＣ２を求める。
【０２６６】
歩容生成装置１００は、領域ＳＣ２に含まれる１点を（本実施形態では、重複領域ＤＲ２の重心）を、点ＳＰ（２）として求める。
【０２６７】
また、歩容生成装置１００は、領域ＥＣ２に含まれる１点（本実施形態では、遊肢線Ｌ３と支持肢線Ｌ４との交点）を点ＥＰ（２）として求める。
【０２６８】
歩容生成装置１００は、上記式２００により、２点ＳＰ（２）、ＥＰ（２）をα（２）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（２）として求め、それを仮目標ＺＭＰとする。
【０２６９】
この後、４肢支持期を経て、図１６に示される期間ｄ３に遷移する。この４肢支持期において、歩容生成装置１００は、図２１（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（２）の位置から後述するＰｚｍｐ（３）の位置まで移動させる。
【０２７０】
次に、図１６に示される期間ｄ３（ｉ＝３）が今回の３肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０２７１】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ（３）を求める。
【０２７２】
まず、歩容生成装置１００は、今回の３肢支持期（期間ｄ３）における支持肢３Ｒ，２Ｌ及び２Ｒの夫々の着地位置を囲む領域を今回の３肢支持期における支持多角形Ｓｄ３として求める。
【０２７３】
そして、歩容生成装置１００は、次回の３肢支持期（期間ｄ４）における支持肢３Ｒ、３Ｌ及び２Ｌの夫々の着地位置又は着地予定位置を囲む領域を次回の３肢支持期における支持多角形Ｓｄ４として求める。
【０２７４】
歩容生成装置１００は、今回の支持多角形Ｓｄ３と次回の支持多角形Ｓｄ４との重複領域ＤＲ３を求める。
【０２７５】
歩容生成装置１００は、今回の３肢支持期における遊肢３Ｌの着地予定位置と、その対角にある肢２Ｒの着地位置とを結ぶ線（より詳しくは、図１８（ｃ）における遊肢３Ｌの着地予定位置内に定めた点と、肢２Ｒの着地位置内に定めた点とを結ぶ線）により、遊肢線Ｌ５を求める。
【０２７６】
また、歩容生成装置１００は、残りの２肢３Ｒ、２Ｌとを結ぶ線（より詳しくは、図１８（ｃ）における遊肢３Ｒの着地位置内に定めた点と肢２Ｌの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ６を求める。
【０２７７】
また、歩容生成装置１００は、重複領域ＤＲ３内において、重複領域ＤＲ３の中心としての支持肢線Ｌ６の中点を基準として広がる領域（ＤＲ３の内接円）ＳＣ３を求める。
【０２７８】
歩容生成装置１００は、重複領域ＤＲ３内において、遊肢線Ｌ５と支持肢線Ｌ６との交点を基準として広がる領域ＥＣ３を求める。
【０２７９】
歩容生成装置１００は、領域ＳＣ３に含まれる１点を（本実施形態では、支持肢線Ｌ６の中点）を、点ＳＰ（３）として求める。
【０２８０】
また、歩容生成装置１００は、領域ＥＣ３に含まれる１点（本実施形態では、遊肢線Ｌ５と支持肢線Ｌ６との交点）を点ＥＰ（３）として求める。
【０２８１】
歩容生成装置１００は、上記式２００により、２点ＳＰ（３）、ＥＰ（３）をα（３）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（３）として求め、それを仮目標ＺＭＰとする。
【０２８２】
この後、４肢支持期を経て、図１６に示される期間ｄ４に遷移する。この４肢支持期において、歩容生成装置１００は、図２１（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（３）の位置から後述するＰｚｍｐ（４）の位置まで移動させる。
【０２８３】
次に、図１６に示される期間ｄ４（ｉ＝４）が今回の３肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０２８４】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ４）を求める。
【０２８５】
まず、歩容生成装置１００は、今回の３肢支持期（期間ｄ４）における支持肢３Ｒ，３Ｌ及び２Ｌの夫々の着地位置を囲む領域を今回の３肢支持期における支持多角形Ｓｄ４として求める。
【０２８６】
そして、歩容生成装置１００は、次回の３肢支持期（期間ｄ５）における支持肢３Ｌ、２Ｌ及び２Ｒの夫々の着地位置又は着地予定位置を囲む領域を次回の３肢支持期における支持多角形Ｓｄ５として求める。
【０２８７】
歩容生成装置１００は、今回の支持多角形Ｓｄ２と次回の支持多角形Ｓｄ３との重複領域ＤＲ４を求める。
【０２８８】
歩容生成装置１００は、今回の３肢支持期における遊肢２Ｒの着地予定位置と、その対角にある肢３Ｌの着地位置とを結ぶ線（より詳しくは、図１８（ｄ）における遊肢２Ｒの着地予定位置内に定めた点と肢３Ｌの着地位置内に定めた点とを結ぶ線）により、遊肢線Ｌ７を求める。
【０２８９】
また、歩容生成装置１００は、残りの２肢３Ｒ、２Ｌとを結ぶ線（より詳しくは、図１８（ｄ）における肢３Ｒの着地位置内に定めた点と、遊肢２Ｌの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ８を求める。
【０２９０】
また、歩容生成装置１００は、重複領域ＤＲ４内において、重複領域ＤＲ４の中心としての重複領域ＤＲ４の重心を基準として広がる領域（ＤＲ４の内接円）ＳＣ４を求める。
【０２９１】
歩容生成装置１００は、重複領域ＤＲ４内において、遊肢線Ｌ７と支持肢線Ｌ８との交点を基準として広がる領域ＥＣ４を求める。
【０２９２】
歩容生成装置１００は、領域ＳＣ４に含まれる１点を（本実施形態では、重複領域ＤＲ４の重心）を、点ＳＰ（４）として求める。
【０２９３】
また、歩容生成装置１００は、領域ＥＣ４に含まれる１点（本実施形態では、遊肢線Ｌ７と支持肢線Ｌ８との交点）を点ＥＰ（４）として求める。
【０２９４】
歩容生成装置１００は、上記式２００により、２点ＳＰ（４）、ＥＰ（４）をα（４）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（４）として求め、それを仮目標ＺＭＰとする。
【０２９５】
この後、４肢支持期を経て、図１６に示される期間ｄ５に遷移する。この４肢支持期において、歩容生成装置１００は、図２４（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（４）の位置から次の仮目標ＺＭＰの位置まで移動させる。
【０２９６】
また、歩容生成装置１００は、今回の支持多角形Ｓｄに基づき、ＺＭＰ許容領域ＰＲｄを求める。ＺＭＰ許容領域ＰＲｄは、たとえば、図１９に示されるように、今回の支持多角形Ｓｄ内に今回の支持多角形Ｓｄよりも小さい領域として定義される。換言すれば、ＺＭＰ許容領域ＰＲｄは、今回の支持多角形Ｓｄのうち、安定余裕（マージン）が高い領域として設定される。
【０２９７】
また、歩容生成装置１００は、歩行環境におけるロボットの歩行の安定性に応じてＺＭＰ許容領域ＰＲｄの大きさを設定することが好ましい。
【０２９８】
より詳しくは、歩容生成装置１００は、歩行環境が平地のように、ロボットの安定的な歩行が可能な場合はＺＭＰ許容領域が比較的大きくなるように（図１９のＰＲｄ’参照）ＺＭＰ許容領域を設定する一方、歩行環境が平地でなく、ロボットの安定的な歩行が困難な場合はＺＭＰ許容領域が比較的小さくなるように（図１９のＰＲｄ’’参照）ＺＭＰ許容領域を設定することが好ましい。
【０２９９】
そして、歩容生成装置１００は、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）がＺＭＰ許容領域ＰＲｄ内に存在しない場合、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）を仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）から最短の距離にあるＺＭＰ許容領域ＰＲｄの境界上のの点(たとえば図１９では、ＰＲｄ’に対しては、Ｐｚｍｐ’（ｉ）、ＰＲｄ’’に対してはＰｚｍｐ’’（ｉ））に修正して、仮目標ＺＭＰとして定める。歩容生成装置１００は、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）がＺＭＰ許容領域ＰＲｄ内に存在する場合、仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）をそのまま仮目標ＺＭＰとして定める。
【０３００】
また、修正後の位置は、最短の距離にあるＺＭＰ許容領域ＰＲｄの境界線上の点に限られず、ＺＭＰ許容領域ＰＲｄの境界線の仮目標ＺＭＰに対向する部分上であればどの位置でもよい。
【０３０１】
より詳細には、仮目標ＺＭＰを出発点として、ＺＭＰ許容領域ＰＲｄを通るように一の半直線（ＺＭＰ許容領域ＰＲｄを横断する直線（線分））を引くと、当該一の半直線とＺＭＰ許容領域ＰＲｄの境界線との交点が１または複数存在する。これらの交点のうちで仮目標ＺＭＰとの距離が最短となる交点を、ここでは「最短交点」と呼ぶ。最短交点は、仮目標ＺＭＰを出発点としてＺＭＰ許容領域ＰＲｄを通る一の半直線に対し１つ存在する。このような最短交点を仮目標ＺＭＰを出発点としてＺＭＰ許容領域ＰＲｄを通るすべての半直線に対して考えた時、最短交点により１つの集合が形成される。ＺＭＰ許容領域ＰＲｄの境界線の仮目標ＺＭＰに対向する部分は、これらの最短交点の集合により構成される部分である。
【０３０２】
修正後の位置の説明に戻ると、ＺＭＰ許容領域ＰＲｄに内包される１の基準位置と仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）とを結んだ線分と、ＺＭＰ許容領域ＰＲｄの境界線との交点が修正後の位置とされてもよい。
【０３０３】
ＺＭＰ許容領域ＰＲｄに内包される１の基準位置としては、たとえば、上記の点ＳＰ（ｉ）、又はＺＭＰ許容領域ＰＲｄの重心等が採用されうる。
【０３０４】
点ＳＰ（ｉ）は、必ずしもＺＭＰ許容領域ＰＲｄに内包されるわけではないので、歩容生成装置１００は、たとえばＳＰ（ｉ）がＺＭＰ許容領域ＰＲｄに内包にされるかどうかを判定し、点ＳＰ（ｉ）がＺＭＰ許容領域ＰＲｄに内包される場合には、点ＳＰ（ｉ）を前記基準位置とする一方、点ＳＰ（ｉ）がＺＭＰ許容領域ＰＲｄに内包されない場合には、ＺＭＰ共領域ＰＲｄの重心を前記基準位置とするように構成されていてもよい。
【０３０５】
また、制御ユニット２６は、特許第５４０４５４４号公報に記載される「コンプライアンス制御用目標床反力モーメントを出力する補償全床反力モーメント分配器」を備えてもよい。この場合、「ＺＭＰ許容領域ＰＲｄのうち、実ロボットの外力操作量（目標ＺＭＰまわりの補償全床反力モーメント）が“０”であると仮定して決定されるコンプライアンス制御用目標床反力モーメント（制御対象外力要素の目標値）により規定される全床反力中心点の位置」が前記基準位置として採用されてもよい。
【０３０６】
なお、この仮目標ＺＭＰ候補Ｐｚｍｐ（ｉ）のＺＭＰ共領域ＰＲｄの境界線上への修正は、後述するトロット歩行においても同様に適用できる。
【０３０７】
（クロール歩容における仮目標ＺＭＰ候補の軌跡）
図２０（ａ）は、上記により生成された直進時の仮目標ＺＭＰ候補の軌跡を示している。ＬＳ１〜４は、それぞれ、右上肢３Ｒ、左下肢２Ｌ、左上肢３Ｌ、右下肢２Ｒの初期位置を示し、ＣＳ１〜ＣＳ１０はクロール歩容における各遊肢の着地位置のそれぞれを示し、Ｐｚｍｐ１〜１０は生成された仮目標ＺＭＰ候補を示す。なお、着地位置ＣＳ１〜ＣＳ１０及びＰｚｍｐ１〜１０は番号が若いほど初期状態に近い点である。
【０３０８】
また、図２７は、仮目標ＺＭＰ候補を静的に安定する点（各時点の今回の支持多角形の重心とした点）として生成した場合の直進時の仮目標ＺＭＰの軌跡を示している。図２７において、ＬＳ１〜４は、それぞれ、右上肢３Ｒ、左下肢２Ｌ、左上肢３Ｌ、右下肢２Ｒの初期位置を示し、ＣＳ１〜ＣＳ１０はクロール歩容における各遊肢の着床点のそれぞれを示し、ＣＰｚｍｐ１〜１０は生成された仮目標ＺＭＰを示す。
【０３０９】
図２７と比較すると、図２０（ａ）の仮目標ＺＭＰ候補の軌跡は、左右に大きく振れることがなく、安定している。この結果、図１０／Ｓ０３０におけるＺＭＰの修正量も小さくなり、安定した歩行が可能となる。
【０３１０】
また、図２０（ｂ）は、左方向に旋回した場合の仮目標ＺＭＰ候補の軌跡を示している。図からもわかるように、左方向に旋回する場合でも、仮目標ＺＭＰ候補が大きく左右に振れることがなく、安定している。
【０３１１】
上記仮目標ＺＭＰ候補決定処理によって決定された仮目標ＺＭＰ候補により決定された仮目標ＺＭＰの図１０／Ｓ０３０における修正量について、図２１を参照して説明する。図２１（ａ）（ｂ）は、クロール歩容におけるロボット１の仮目標ＺＭＰ（一点鎖線）、修正後の目標ＺＭＰ（二点鎖線）及び重心位置（実線）の時間的変化を示したグラフである。図２１（ａ）の縦軸がＸ軸方向における位置を示し、横軸が時間を示す。図２１（ｂ）は縦軸がＹ軸方向における位置を示し、横軸が時間を示す。図２１（ａ）（ｂ）からもわかるように、移動開始直後（時刻ｔ＝ｔｃ〜ｔ＝ｔｄまで）は仮目標ＺＭＰと修正後の目標ＺＭＰが異なっているが、時刻ｔ＝ｔｄ以後では、仮目標ＺＭＰと修正後の目標ＺＭＰとが一致している。移動開始直後（時刻ｔ＝ｔｃ〜ｔ＝ｔｄまで）における仮目標ＺＭＰの合計修正量は、接地部１６Ｒ，１６Ｌの大きさの１０％程度と、かなり小さくなっている。この結果、ロボット１の安定した歩行が可能となる。
【０３１２】
（トロット歩容における仮目標ＺＭＰ候補の決定処理の具体例）
次に、図１７及び図２２を参照して、トロット歩容における仮目標ＺＭＰ候補の決定処理の具体例を説明する。トロット歩容において、ＳＰは、今回の２肢支持期における支持多角形と次回の２肢支持期における支持多角形との重複領域の中心を基準として広がる領域内の１点として定義される。本実施形態においては、ＳＰは、支持肢線と遊肢の着床位置及び遊肢の対角にある肢の着床位置を結んだ線との交点として定義される。
【０３１３】
また、第１実施形態のトロット歩容における遊肢線は、遊肢の離床位置及び遊肢の対角にある肢の離床位置を結んだ線で定義される。これに代えて、トロット歩容における遊視線が、遊肢の着床予定位置及び遊肢の対角にある肢の着床予定位置を結んだ線で定義されてもよい。
【０３１４】
まず、図１７に示される期間ｄ６（ｉ＝６）が今回の２肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０３１５】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ６）を求める。
【０３１６】
まず、歩容生成装置１００は、今回の２肢支持期（期間ｄ６）における支持肢３Ｌ及び２Ｒの夫々の着地位置を囲む領域を今回の２肢支持期における支持多角形Ｓｄ６として求める。
【０３１７】
そして、歩容生成装置１００は、次回の２肢支持期（期間ｄ７）における支持肢３Ｌ及び２Ｒの夫々の着地予定位置を囲む領域を次回の２肢支持期における支持多角形Ｓｄ７として求める。
【０３１８】
歩容生成装置１００は、今回の支持多角形Ｓｄ６と次回の支持多角形Ｓｄ７との重複領域ＤＲ６を求める。
【０３１９】
歩容生成装置１００は、今回の２肢支持期における遊肢３Ｒ、２Ｌの離床位置を結ぶ線（より詳しくは、図２２（ａ）における遊肢３Ｒの離床位置内に定めた点と肢２Ｌの離床位置内に定めた点とを結ぶ線）により、第１の遊肢線Ｌ１１を求める。
【０３２０】
また、歩容生成装置１００は、残りの２肢３Ｌ、２Ｒとを結ぶ線（より詳しくは、図２２（ａ）における肢３Ｌの着地位置内に定めた点と、遊肢２Ｒの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ１２を求める。
【０３２１】
歩容生成装置１００は、今回の２肢支持期における遊肢３Ｒ、２Ｌの着床予定位置を結ぶ線（より詳しくは、図２２（ａ）における遊肢３Ｒの着床予定位置内に定めた点と肢２Ｌの着床予定位置内に定めた点とを結ぶ線）により、第２の遊肢線Ｌ１３を求める。
【０３２２】
また、歩容生成装置１００は、重複領域ＤＲ６内において、重複領域ＤＲ６の中心としての支持肢線Ｌ１２と第２の遊肢線Ｌ１３との交点を基準として広がる領域（ＤＲ６の内接円）ＳＣ６を求める。
【０３２３】
歩容生成装置１００は、重複領域ＤＲ６内において、第１の遊肢線Ｌ１１と支持肢線Ｌ１２との交点を基準として広がる領域ＥＣ６を求める。
【０３２４】
歩容生成装置１００は、領域ＳＣ６に含まれる１点を（本実施形態では、支持肢線Ｌ１２と第２の遊肢線Ｌ１３との交点）を、点ＳＰ（６）として求める。
【０３２５】
また、歩容生成装置１００は、領域ＥＣ６に含まれる１点（本実施形態では、第１の遊肢線Ｌ１１と支持肢線Ｌ１２との交点）を点ＥＰ（６）として求める。
【０３２６】
歩容生成装置１００は、上記式２００により、２点ＳＰ（６）、ＥＰ（６）をα（６）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（６）として求め、それを仮目標ＺＭＰとする。
【０３２７】
この後、４肢支持期を経て、図１６に示される期間ｄ７に遷移する。この４肢支持期において、歩容生成装置１００は、図２３（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（６）の位置から後述するＰｚｍｐ（７）の位置まで移動させる。
【０３２８】
次に、図１７に示される期間７（ｉ＝７）が今回の２肢支持期である場合についての仮目標ＺＭＰ候補の決定処理を説明する。
【０３２９】
歩容生成装置１００は、以下のようにして、式２００により仮目標ＺＭＰ候補Ｐｚｍｐ７）を求める。
【０３３０】
まず、歩容生成装置１００は、今回の２肢支持期（期間ｄ７）における支持肢３Ｒ及び２Ｌの夫々の着地位置を囲む領域を今回の２肢支持期における支持多角形Ｓｄ７として求める。
【０３３１】
そして、歩容生成装置１００は、次回の２肢支持期（期間ｄ８）における支持肢３Ｌ及び２Ｒの夫々の着地予定位置を囲む領域を次回の２肢支持期における支持多角形Ｓｄ８として求める。
【０３３２】
歩容生成装置１００は、今回の支持多角形Ｓｄ７と次回の支持多角形Ｓｄ８との重複領域ＤＲ７を求める。
【０３３３】
歩容生成装置１００は、今回の２肢支持期における遊肢３Ｌ、２Ｒの離床位置を結ぶ線（より詳しくは、図２２（ｂ）における遊肢３Ｌの離床位置内に定めた点と肢２Ｒの離床位置内に定めた点とを結ぶ線）により、第１の遊肢線Ｌ１４を求める。
【０３３４】
また、歩容生成装置１００は、残りの２肢３Ｒ、２Ｌとを結ぶ線（より詳しくは、図２２（ｂ）における肢３Ｒの着地位置内に定めた点と、遊肢２Ｌの着地位置内に定めた点とを結ぶ線）により、支持肢線Ｌ１５を求める。
【０３３５】
歩容生成装置１００は、今回の２肢支持期における遊肢３Ｌ、２Ｒの着床予定位置を結ぶ線（より詳しくは、図２２（ｂ）における遊肢３Ｌの着床予定位置内に定めた点と肢２Ｒの着床予定位置内に定めた点とを結ぶ線）により、第２の遊肢線Ｌ１６を求める。
【０３３６】
また、歩容生成装置１００は、重複領域ＤＲ７内において、重複領域ＤＲ７の中心としての支持肢線Ｌ１５と第２の遊肢線Ｌ１６との交点を基準として広がる領域（ＤＲ６の内接円）ＳＣ６を求める。
【０３３７】
歩容生成装置１００は、重複領域ＤＲ７内において、第１の遊肢線Ｌ１４と支持肢線Ｌ１５との交点を基準として広がる領域ＥＣ７を求める。
【０３３８】
歩容生成装置１００は、領域ＳＣ７に含まれる１点を（本実施形態では、支持肢線Ｌ１５と第２の遊肢線Ｌ１６との交点）を、点ＳＰ（７）として求める。
【０３３９】
また、歩容生成装置１００は、領域ＥＣ７に含まれる１点（本実施形態では、第１の遊肢線Ｌ１４と支持肢線Ｌ１５との交点）を点ＥＰ（７）として求める。
【０３４０】
歩容生成装置１００は、上記式２００により、２点ＳＰ（７）、ＥＰ（７）をα（７）で重みづけをした点を仮目標ＺＭＰ候補Ｐｚｍｐ（７）として求め、それを仮目標ＺＭＰとする。
【０３４１】
この後、４肢支持期を経て、図１６に示される期間ｄ８に遷移する。この４肢支持期において、歩容生成装置１００は、図２３（ａ）（ｂ）に示されるように、仮目標ＺＭＰをＰｚｍｐ（７）の位置から次回の仮目標ＺＭＰの位置まで移動させる。
【０３４２】
歩容生成装置１００は、クロール歩容と同様に、ＺＭＰ許容領域に基づいて仮目標ＺＭＰ候補の修正を行う。
【０３４３】
（トロット歩容における仮目標ＺＭＰ候補の軌跡）
図２２（ａ）（ｂ）に示されるように、仮目標ＺＭＰ候補Ｐｚｍｐ（６）〜Ｐｚｍｐ（７）は左右に大きく振れることがなく、安定している。この結果、図１０／Ｓ０３０におけるＺＭＰの修正量も小さくなり、安定した歩行が可能となる。
【０３４４】
図１０／Ｓ０３０におけるＺＭＰの修正量が小さくなることを図２３（ａ）（ｂ）を参照して説明する。図２３（ａ）（ｂ）は、トロット歩容におけるロボット１の仮目標ＺＭＰ（一点鎖線）、修正後の目標ＺＭＰ（二点鎖線）及び重心位置（実線）の時間的変化を示したグラフである。図２３（ａ）の縦軸がＸ軸方向における位置を示し、横軸が時間を示す。図２３（ｂ）は縦軸がＹ軸方向における位置を示し、横軸が時間を示す。図２３（ａ）（ｂ）からもわかるように、移動開始直後（時刻ｔ＝ｔｅ〜ｔ＝ｔｆまで）は仮目標ＺＭＰと修正後の目標ＺＭＰが異なっているが、時刻ｔ＝ｔｆ以後では、仮目標ＺＭＰと修正後の目標ＺＭＰとが一致している。移動開始直後（時刻ｔ＝ｔｅ〜ｔ＝ｔｆまで）における仮目標ＺＭＰの合計修正量は、接地部１６Ｒ，１６Ｌの大きさの１０％程度と、かなり小さくなっている。この結果、ロボット１の安定した歩行が可能となる。
【０３４５】
（２肢−４肢遷移）
次に、図４〜図６を参照して、２肢−４肢遷移（４肢―２肢遷移）について説明する。図５は、２肢歩行状態（時刻ｔ１〜ｔ３）から、２肢−４肢遷移（時刻ｔ４〜ｔ７）を経て、トロット歩行状態（時刻ｔ８〜ｔ９）となったのち、４肢―２肢遷移（時刻ｔ１０〜ｔ１３）を経て、２肢起立状態（時刻ｔ１３以降）となるまでの、各肢２，３の離着床状態を示したものである。図４は、この一連の流れにおけるロボット１の姿勢の左側面図であり、図６（ａ）は、この一連の流れにおける上体質点水平位置Ｘｂの変化を示すグラフ（縦軸：Ｘｂ、横軸：経過時間）である。図６（ｂ）は、上体質点鉛直位置Ｚｂの変化を示すグラフ（縦軸：Ｚｂ、横軸：経過時間）である。図６（ｃ）は、６軸力センサ４１ａ、４１ｂにより検出された各肢２，３の夫々に係る力を示すグラフ（縦軸：力の大きさ、横軸：経過時間）であり、実線が右上肢３Ｒに係る力、破線が左上肢３Ｌに係る力、一点鎖線が左下肢２Ｌに係る力、二点鎖線が右下肢２Ｒに係る力をそれぞれ示す。図６（ｄ）は、Ｘ軸回り及びＹ軸回りの回転角度を示したグラフ（縦軸：回転角度、横軸：経過時間）であり、実線がＸ軸回りの傾斜角度、破線がＹ軸回りの傾斜角度を示す。図６（ｅ）は、Ｘ軸方向の目標ＺＭＰの位置を示し、図６（ｆ）はＹ軸方向の目標ＺＭＰの位置を示す。
【０３４６】
２肢歩行においては、図５〜図６の時刻ｔ１、ｔ３に示される片脚支持期と、時刻ｔ２に示される両脚支持期を交互に繰り返す。図５に示すように、歩容生成装置１００は、両脚支持期と、それに続く片脚支持期とを１歩とみなして、上述した目標歩容生成処理を行う。この２肢歩行については、図６（ａ）に示されるように、上体質点水平位置Ｘｂが前方に移動する一方で、図６（ｂ）に示されるように、上体質点鉛直位置Ｚｂはほぼ一定である（時刻ｔ１〜ｔ３）。また、図６（ｃ）に示されるように、右下肢２Ｒと左下肢２Ｌに交互に所定の大きさの床反力が働く（時刻ｔ１〜ｔ３）。この床反力は１歩の期間で平均するとロボットの自重と同じ大きさとなる。傾き角度についても、図６（ｄ）に示されるように、Ｘ軸回り及びＹ軸回り夫々に比較的大きな傾斜角度が発生するが、周期は緩やかである（時刻ｔ１〜ｔ３）。
【０３４７】
２肢歩行時の歩容切り替わり目において（図１０／Ｓ０１６‥ＹＥＳ）、今回の歩容の運動種別の要求値が２肢−４肢遷移（又は次回歩容の運動種別の要求値が４肢歩容）であった場合、歩容生成装置１００は、図４〜図６の時刻ｔ＝ｔ４〜ｔ＝ｔ７に示されるような２肢−４肢遷移のための歩容を生成する。この場合、歩容生成装置１００は、図１０／Ｓ０２２〜Ｓ０３０において２肢−４肢遷移を手平着床期、ＺＭＰ移動期、４肢歩行準備期に分け、夫々の繊維状態に応じて、今回の歩容パラメータを作成する。
【０３４８】
２肢−４肢遷移においては、図６（ａ）〜図６（ｆ）に示されるように、各パラメータが連続的に遷移する。また、図６（ｂ）に示されるように、上体質点鉛直位置Ｚｂは、２肢歩行時の平均高さｈ１（時刻ｔ４）から、一時的に高さｈ３（ｈ１＞ｈ２＞ｈ３）（時刻ｔ６〜ｔ７）まで低くなり、その後４肢歩行時の平均高さｈ２（時刻ｔ８付近）にまで戻る。各支持肢が受ける床反力については、図６（ｃ）に示されるように、手平着床期において下肢２Ｒ、２Ｌのみが床反力を受けている状態（時刻ｔ４〜ｔ５）から、ＺＭＰ移動期及び４肢歩行準備期において各上肢３Ｒ、３Ｌ、下肢２Ｒ、２Ｌが床反力を負担する状態（時刻ｔ６〜ｔ７）に遷移する。また、図６（ｄ）に示されるように、Ｘ軸回り、Ｙ軸回りの傾斜については、傾斜角度が比較的大きい状態（時刻ｔ４）から傾斜角度が小さい状態（時刻ｔ７）に変化する。また、図６（ｅ）に示されるように、ＺＭＰ移動期ｔ６において、Ｘ軸方向の目標ＺＭＰの位置が前方に移動する。
【０３４９】
歩容切り替わり目において（図１０／Ｓ０１６‥ＹＥＳ）、今回の歩容の運動種別の要求値が４肢歩行であった場合、歩容生成装置１００は、図４〜図６の時刻ｔ＝ｔ８〜ｔ＝ｔ９に示されるような４肢歩行のための歩容を生成する。この場合、歩容生成装置１００は、図１０／Ｓ０２２〜Ｓ０３０において次回以降の歩容を４肢歩容として今回歩容パラメータを決定する。
【０３５０】
４肢歩行（トロット歩行）においては、図６（ａ）に示されるように、上体質点水平位置Ｘｂは、２肢歩行時よりも早く前方に移動する（時刻ｔ８〜ｔ１０参照）。各支持肢３Ｒ，３Ｌ，２Ｒ，２Ｌが受ける各床反力の大きさは、図６（ｃ）に示されるように、２肢歩行時に両下肢２Ｒ，２Ｌが受ける各床反力よりも小さい（時刻ｔ１〜ｔ３、時刻ｔ８〜ｔ１０）。また、上肢３Ｒ（Ｌ）が受ける床反力よりも下肢２Ｒ（Ｌ）が受ける床反力の方が大きい（時刻ｔ８及びｔ９）。また、図６（ｄ）に示されるように、Ｘ軸回り、Ｙ軸回りの傾斜については、その傾斜角度は歩行時よりも小さいが、周期は短い（時刻ｔ１〜ｔ３、時刻ｔ８〜ｔ１０）。
【０３５１】
４肢歩行時の歩容切り替わり目において（図１０／Ｓ０１６‥ＹＥＳ）、今回の歩容の運動種別の要求値が４肢−２肢遷移（又は次回の歩容の運動種別の要求値が２肢歩行）であった場合、歩容生成装置１００は、時刻ｔ１０〜ｔ１３に示されるような４肢−２肢遷移のための歩容を生成する。この場合、歩容生成装置１００は、図１０／Ｓ０２２〜Ｓ０３０において次回以降の歩容を２肢歩容として今回歩容パラメータを決定する。
【０３５２】
４肢−２肢遷移においては、図６（ａ）〜図６（ｆ）に示されるように、各パラメータが連続的に遷移する。また、図６（ｂ）に示されるように、上体質点鉛直位置Ｚｂは、４肢歩行の平均高さｈ２（時刻ｔ１０）から一時的に高さｈ３（時刻ｔ１１）まで低くなり、その後２肢歩行時の平均高さｈ１（時刻ｔ１２〜ｔ１３）にまで戻る。各支持肢が受ける床反力については、図６（ｃ）に示されるように、腰移動期及びＺＭＰ移動期において各上肢３Ｒ、３Ｌ、下肢２Ｒ，２Ｌが床反力を負担する状態（時刻ｔ１０〜ｔ１１）から手平離床期において下肢２Ｒ、２Ｌのみが床反力を受けている状態（時刻ｔ１２〜ｔ１３）に遷移する。また、図６（ｄ）に示されるように、Ｘ軸回り、Ｙ軸回りの傾斜については、傾斜角度が小さい状態（時刻ｔ１０〜ｔ１１）から傾斜角度が大きい状態（時刻ｔ１２〜ｔ１３）に変化する。また、図６（ｅ）に示されるように、ＺＭＰ移動期ｔ１２において、Ｚ軸方向の目標ＺＭＰの位置が後方に移動する。
【０３５３】
上述した各歩行のうち、２肢−４肢遷移及び４肢−２肢遷移を、２肢−４肢遷移を例にとってより詳しく説明する。
【０３５４】
まず、図４を参照して、２肢−４肢遷移の動きの概略を説明する。これらの動きは、前述した目標歩容生成処理により生成された目標歩容に従って行われる。ロボット１は、２肢歩行状態からまず、手平着床期へと遷移する（時刻ｔ＝ｔ４）。次に、ロボット１は、腰関節及び腰椎関節を回転させることにより、前傾姿勢を経て（時刻ｔ＝ｔ５）。接地部３７Ｒ，３７Ｌを地面に着かせるＺＭＰ移動期に遷移する（時刻ｔ＝ｔ６）。ＺＭＰ移動期及び続く４肢歩行準備期（時刻ｔ＝ｔ７）において、ロボット１は、ＺＭＰの位置及び腰の位置等を４肢歩行に適した状態へ遷移させる。
【０３５５】
次に、図２４を参照して、２肢−４肢遷移時における上体質点鉛直位置、腰関節回転角度、腰椎関節回転角度、右手（右上肢接地部）及び左手（左上肢接地部）の高さ、実ＺＭＰ及び実重心水平位置（Ｘ位置）との関係を説明する。
【０３５６】
両脚支持期（時刻ｔ＝ｔ４）においては、図２４（ａ）に示されるように、上体質点鉛直位置は２肢歩行時の平均高さｈ１であり、図２４（ｂ）（ｃ）に示されるように、腰関節回転角度θ１及び腰椎関節回転角度θ２はゼロ、図２４（ｄ）に示されるように、右手及び左手の高さ（接地部３７Ｒ、３７Ｌの最下端の位置）は２肢歩行時に手を下方向に伸ばした場合の高さｈ４、図２４（ｅ）に示されるように、ＺＭＰ及び実重心水平位置は初期状態となっている。
【０３５７】
前述したように、手平着床期の初期（時刻ｔ＝ｔ４）から腰関節及び腰椎関節を回転させることにより、前傾姿勢を経て、ＺＭＰ移動期及び４肢歩行準備期（時刻ｔ＝ｔ６〜ｔ＝ｔ７）に遷移する。手平着床期（時刻ｔ＝ｔ４）〜前傾姿勢（時刻ｔ＝ｔ５）〜ＺＭＰ移動期（時刻ｔ＝ｔ６）において、図２４（ａ）に示されるように、上体質点鉛直位置は高さｈ３まで減少する一方、図２４（ｂ）（ｃ）に示されるように、腰関節回転角度θ１及び腰椎関節回転角度θ２はそれぞれ所定角度θａ、θｂ（θａ＜θｂ）まで増加する。手平着床期（時刻ｔ＝ｔ４）〜前傾姿勢（時刻ｔ＝ｔ５）〜ＺＭＰ移動期（時刻ｔ＝ｔ６）において、図２４（ｄ）に示されるように、右手及び左手高さは、高さｈ４からゼロまで変化する。手平着床期（時刻ｔ＝ｔ４）〜前傾姿勢（時刻ｔ＝ｔ５）〜ＺＭＰ移動期の開始時点（時刻ｔ＝ｔ６）において、図２４（ｅ）に示されるように、Ｘ方向のＺＭＰの位置は、開始時点において少し後退したのち、緩やかに前方に移動し、実重心水平位置は、緩やかに前方に移動する。
【０３５８】
時刻ｔ＝ｔ６から時刻ｔ＝ｔ７までは、上体質点鉛直位置、腰関節回転角度θ１及び腰椎関節回転角度θ２、右手及び左手高さ、Ｘ方向のＺＭＰ及び実重心の位置はほとんど変化しない。
【０３５９】
（第１実施形態〜第３実施形態の作用効果）
図２５及び図２６を参照して、第１実施形態〜第３実施形態の作用効果を説明する。
【０３６０】
図２５（ａ）（ｂ）は、２肢−４肢遷移時（時刻ｔ＝ｔ４〜ｔ＝ｔ７）における、上体質点鉛直位置Ｚｂ，右手高さ、腰関節回転角度θ１及び腰椎関節回転角度θ２の時間的変化態様をそれぞれ示したグラフである。
【０３６１】
図２５（ｃ）（ｄ）は、同時期（２肢−４肢遷移時（時刻ｔ＝ｔ４〜ｔ＝ｔ７））における、Ｙ軸回り（ピッチ方向）の傾斜角度及び実ＺＭＰのＸ方向の位置を、第１〜第３実施形態と比較形態との間で比較したグラフである。
【０３６２】
図２５（ｅ）（ｆ）は、同時期（２肢−４肢遷移時（時刻ｔ＝ｔ４〜ｔ＝ｔ７））における、Ｘ軸方向及びＹ軸方向の仮目標ＺＭＰの位置を示すグラフである。
【０３６３】
図２５（ｇ）（ｈ）は、同時期（２肢−４肢遷移時（時刻ｔ＝ｔ４〜ｔ＝ｔ７））における、腰関節及び腰椎関節の回転加速度を示すグラフである。
【０３６４】
ここで、第２実施形態は、第１実施形態の目標歩容生成処理における図１５／Ｓ３０６における式１００においてＺ（ｔ）を固定値ｈとした実施形態である。また、第３実施形態は、第１実施形態の目標歩容生成処理における図１５／Ｓ３０６における式１００においてθ２をゼロに固定した実施形態（又は腰椎関節を設けない形態）である。また、比較形態は、第１実施形態の目標歩容生成処理における図１５／Ｓ３０６における式１００においてＺ（ｔ）を固定値ｈとし、かつ、θ２をゼロに固定した形態である。
【０３６５】
第１実施形態のＹ軸回りの傾斜角度は、手平着床期（時刻ｔ＝ｔ４）においてゼロであり、その後、徐々に増大し、ＺＭＰ移動期の開始時点（時刻ｔ＝ｔ６）前後においてピークを迎える。その後、時刻ｔ＝ｔ７までにほぼゼロに収束する。
【０３６６】
また、第１実施形態の実ＺＭＰのＸ方向の位置は、手平着床期（時刻ｔ＝ｔ４）の初期状態（ゼロ）から、徐々に前方に移動し、ＺＭＰ移動期（時刻ｔ＝ｔ６）前後において、前方及び後方にやや変動し、その後、時刻ｔ＝ｔ７までにほぼ所定の値に収束する。
【０３６７】
第２実施形態のＹ軸回りの傾斜角度は、手平着床期（時刻ｔ＝ｔ４）においてゼロであり、その後、徐々に増大し、ＺＭＰ移動期の開始時点（時刻ｔ＝ｔ６）前後においてピークを迎え、その後、時刻ｔ＝ｔ７までにほぼゼロに収束する点で、第１実施形態のＹ軸回りの傾斜角度の変化と類似する。他方、その変化量は第１実施形態のＹ軸回りの傾斜角度の変化量よりもやや大きい。
【０３６８】
また、第２実施形態の実ＺＭＰのＸ方向の位置は、手平着床期（時刻ｔ＝ｔ４）の初期状態（ゼロ）から、徐々に前方に移動し、ＺＭＰ移動期（時刻ｔ＝ｔ６）前後において、前方及び後方にやや変動し、その後時刻ｔ＝ｔ７までにほぼ所定の値に収束する点で、第１実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化と類似する。他方、その変化量は、第１実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化量よりもやや大きい。
【０３６９】
第３実施形態のＹ軸回りの傾斜角度は、手平着床期（時刻ｔ＝ｔ４）においてゼロであり、その後、徐々に増大し、ＺＭＰ移動期の開始時点（時刻ｔ＝ｔ６）前後においてピークを迎え、その後、時刻ｔ＝ｔ７までにほぼゼロに収束する点で、第１実施形態のＹ軸回りの傾斜角度の変化と類似する。他方、その変化量は第１実施形態及び第２実施形態のＹ軸回りの傾斜角度の変化量よりもかなり大きい。
【０３７０】
また、第３実施形態の実ＺＭＰのＸ方向の位置は、手平着床期（時刻ｔ＝ｔ４）の初期状態（ゼロ）から、徐々に前方に移動し、ＺＭＰ移動期（時刻ｔ＝ｔ６）前後において、前方及び後方にやや変動し、その後時刻ｔ＝ｔ７までにほぼ所定の値に収束する点で、第１実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化と類似する。他方、その変化量は、第１実施形態及び第２実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化量よりもかなり大きい。
【０３７１】
比較形態のＹ軸回りの傾斜角度は、手平着床期（時刻ｔ＝ｔ４）においてゼロであり、その後、徐々に増大し、ＺＭＰ移動期の開始時点（時刻ｔ＝ｔ６）前後においてピークを迎え、その後、時刻ｔ＝ｔ７までにほぼゼロに収束する点で、第３実施形態のＹ軸回りの傾斜角度の変化と類似する。他方、その変化量は第３実施形態のＹ軸回りの傾斜角度の変化量よりもやや大きい。
【０３７２】
さらに、図２６（ａ）に示されるように、時刻ｔ６付近（２−４肢遷移時）において、第１実施形態〜第３実施形態におけるＹ軸回りの傾斜角度の変化量の最大値Δｇ１〜Δｇ３は、それぞれ比較形態におけるＹ軸回りの傾斜角度の変化量の最大値Δｇ４よりも小さく抑えられている。特に、第１実施形態及び第２実施形態における変化量の最大値Δｇ１及びΔｇ２は、２度程度とかなり小さく抑えらている。
【０３７３】
また、比較形態の実ＺＭＰのＸ方向の位置は、手平着床期（時刻ｔ＝ｔ４）の初期状態（ゼロ）から、徐々に前方に移動し、ＺＭＰ移動期（時刻ｔ＝ｔ６）前後において、前方及び後方にやや変動し、その後時刻ｔ＝ｔ７までにほぼ所定の値に収束する点で、第３実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化と類似する。他方、その変化量は、第３実施形態のＹ軸回りの実ＺＭＰのＸ方向の位置の変化量よりもやや大きい。
【０３７４】
さらに、図２６（ｂ）に示されるように、時刻ｔ６付近（２−４肢遷移時）において、第１実施形態〜第３実施形態におけるＸ方向の実ＺＭＰ位置の変化量の最大値Δｓ１〜Δｓ３は、それぞれ比較形態におけるＸ方向の実ＺＭＰ位置の変化量の最大値Δｓ４と同等かΔｓ４よりも小さくなっている。また、第１実施形態〜第３実施形態におけるＸ方向の実ＺＭＰ位置の変化量が大きい期間Δｐｔ１〜Δｐｔ３は、比較形態におけるＸ方向の実ＺＭＰ位置の変化量が大きい期間Δｐｔ４よりも短い。
【０３７５】
以上の通り、本発明の実施形態である第１〜第３実施形態は、いずれも比較形態と比較して、２肢〜４肢遷移時において、Ｙ軸回りの傾斜角度及び実ＺＭＰ位置の急劇な変化を緩和できるとともに、２肢〜４肢遷移にかかる時間を短縮することが出来る。
【０３７６】
これは、第１〜第３実施形態のロボット１が、それぞれ比較形態のロボットよりも安定かつ迅速な２肢−４肢遷移を行えることを意味している。
【０３７７】
また、第１実施形態〜第３実施形態では、上述した目標歩容生成処理において、同一の動力学モデルに基づいて２肢歩行、２肢走行、２肢−４肢遷移、４肢―２肢遷移、４肢歩行の目標歩容が生成されるので、動力学モデルの切り替えに伴う初期化をすることなく、各動作における目標歩容が生成される。これにより、長時間停止することなく、各動作の切り替えがスムーズに行われうる。
【符号の説明】
【０３７８】
１…２肢−４肢移動ロボット（移動体）、２…下肢（第１の移動機構）、３‥（第２の移動機構）、４…上体（基体）、４ａ‥第２基体、４ｂ‥第１基体、１００…歩容生成装置（上下方向慣性力パラメータ決定手段）。
【図１】
0006356033.tif 000016
【図２】
0006356033.tif 000017
【図３】
0006356033.tif 000018
【図４】
0006356033.tif 000019
【図５】
0006356033.tif 000020
【図６】
0006356033.tif 000021
【図７】
0006356033.tif 000022
【図８】
0006356033.tif 000023
【図９】
0006356033.tif 000024
【図１０】
0006356033.tif 000025
【図１１】
0006356033.tif 000026
【図１２】
0006356033.tif 000027
【図１３】
0006356033.tif 000028
【図１４】
0006356033.tif 000029
【図１５】
0006356033.tif 000030
【図１６】
0006356033.tif 000031
【図１７】
0006356033.tif 000032
【図１８】
0006356033.tif 000033
【図１９】
0006356033.tif 000034
【図２０】
0006356033.tif 000035
【図２１】
0006356033.tif 000036
【図２２】
0006356033.tif 000037
【図２３】
0006356033.tif 000038
【図２４】
0006356033.tif 000039
【図２５】
0006356033.tif 000040
【図２６】
0006356033.tif 000041
【図２７】
0006356033.tif 000042