(57)【要約】【課題】実験やシミュレーションによる試行錯誤的なパターン生成作業や，ハードディスクなどの大容量記録媒体を必要とせず，両脚支持期を含む歩容でも容易に高速にオンライン生成することができる二足歩行ロボットの歩容生成器を提供する。【解決手段】１歩の片脚支持の時間を定常歩容でも過渡歩容でも同じ固定値とし，倒立振子モデルより得られた数式により歩容を生成する。１歩ごとに歩行速度指令を確認し，新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容を生成し，異なれば２歩先の着地時に新しい歩行速度指令での定常歩容となるように過渡歩容の前後方向着地位置を決定する。両脚支持期にはＺＭＰが常に重心の真下となるように歩容を生成する。【選択図】図１
2010017806.tif 000002
【特許請求の範囲】
【請求項１】
脚構造と，
歩行速度指令に従ってベース歩容を生成する歩容生成器と，前記脚構造を動作させるための複数のアクチュエータと，各種状態量を検出して各種センサ情報を生成する各種センサと，前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と，前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と，アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してアクチュエータ状態量情報を生成するためのアクチュエータセンサと，前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え，前記歩容生成器は，少なくとも１歩ごとに前記歩行速度指令を確認しており，前記ベース歩容は，新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり，新しい歩行速度指令が前回の歩行速度指令と異なれば２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において，
前記ベース歩容は，１歩の片脚支持の時間が定常歩容でも過渡歩容でも同じであり，２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるように前記過渡歩容の前後方向着地位置を決定することを特徴とする二足歩行ロボットの制御装置。
【請求項２】
前記歩容生成器は，倒立振子モデルから解析的に与えられる数式を用いて前記ベース歩容を生成することを特徴とする請求項１記載の二足歩行ロボットの制御装置。
【請求項３】
脚構造と，歩行速度指令に従ってベース歩容を生成する歩容生成器と，前記脚構造を動作させるための複数のアクチュエータと，各種状態量を検出して各種センサ情報を生成する各種センサと，前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と，前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と，アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと，前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え，前記歩容生成器は，少なくとも１歩ごとに前記歩行速度指令を確認しており，前記ベース歩容は，新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり，新しい歩行速度指令が前回の歩行速度指令と異なれば２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において，
前記ベース歩容は，両脚支持期を含み，両脚支持期には重心速度を定常歩容切替時速度で一定とし，ゼロモーメントポイントが常に重心の真下にあることを特徴とする二足歩行ロボットの制御装置。
【請求項４】
両脚支持期を含まない歩容の歩行速度を含両脚歩容歩行速度とし，
両脚支持期を含む歩容の歩行速度を無両脚歩容歩行速度とし，
前記歩容生成器は，前記含両脚歩容歩行速度と前記無両脚歩容歩行速度の関係式を保有しており，与えられた含両脚歩容歩行速度の指令を無両脚歩容歩行速度の指令に変換することにより両脚支持期を含む歩容の片脚支持期の歩容を生成することを特徴とする請求項３記載の二足歩行ロボットの制御装置。
【請求項５】
両脚支持期を含まない歩容の横方向着地位置の差を含両脚歩容スタンスとし，
両脚支持期を含む歩容の横方向着地位置の差を無両脚歩容スタンスとし，
前記歩容生成器は，前記含両脚歩容スタンスと前記無両脚歩容スタンスの関係式を保有しており，与えられた含両脚歩容スタンスの指令を無両脚歩容スタンスの指令に変換することにより両脚支持期を含む歩容の横方向着地位置の差を決定することを特徴とする請求項３記載の二足歩行ロボットの制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，脚式歩行ロボットの制御装置において，歩行速度指令通りの歩容をリアルタイムに生成する歩容生成器に関する。
【背景技術】
【０００２】
従来の二足歩行ロボットのリアルタイム歩容生成器は，あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し，ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき，それらを組み合わせることにより歩容を生成している（例えば，特許文献１参照）。
【０００３】
以下では，図１１を用いて従来の二足歩行ロボットの制御装置の全体構成を説明する。図１１において，６００は歩容生成器であり，上位コンピュータまたは操作者から歩行指令を受け取り，歩行指令の要求を満たすようにベース歩容を生成する。本従来例では，歩行指令とは要求される歩幅と旋回角の組であり，歩容とは上体位置姿勢軌道，足平位置姿勢軌道，ＺＭＰ軌道の組である。６１０は安定化制御器であり，予測しなかった外乱により歩行ロボットが転倒するのを防ぐため，各種センサ情報を用いて歩容生成器６００が生成した歩容を修正する。６２０は逆キネマティクス演算器であり，安定化制御器６１０が生成した修正歩容を，逆キネマティクス演算により各関節のモータ位置指令に変換する。ロボットの関節の角度とサーボモータの回転量は一対一に対応する。６３０はモータ位置制御器であり，エンコーダ６７０からのモータ位置情報を用いて，逆キネマティクス演算器６２０が生成したモータ位置指令どおりの位置にモータを動作させるようにモータトルクを変化させる。６６０はモータおよび脚構造であり，モータ位置制御器６３０によって操作されるモータと脚構造である。脚構造は地面等と接触することにより二足歩行ロボットを移動させる力を発生する。６７０はエンコーダであり，モータの位置を検出し，モータ位置制御器６３０へフィードバックする。モータおよび脚構造６６０が動作した結果，各種状態量が変化する。６８０は各種センサであり，各種状態量を検出して安定化制御器にフィードバックする。具体的には，各種状態量とは二足歩行ロボットの上体の傾き，向き，またはそれらの速度，足裏に受ける圧力であり，各種センサとは，傾斜センサ，ジャイロセンサ，加速度センサ，地磁気センサ，圧力センサ，６軸力センサ，カメラなどが用いられる例が多い。
【０００４】
以下では，図１２を用いて前述の歩容生成器６００の構成をより詳細に説明する。図１２において，６００は歩容生成器，６１０は安定化制御器，６２０は逆キネマティクス演算器であり，図１１で説明したものである。
歩容生成器１００の内部動作をより詳しく説明すると，１１１は標準歩容の集合である。標準歩容とは，あらかじめ動力学シミュレーションや試行錯誤的な実験や数式モデルを用いた解析的な手法により，オフラインで求められた安定な歩容の集合をデータベースとして保存したものである。離散的な複数の歩幅と旋回角に対して，それを実現する歩容のパターンを標準歩容としてマトリックス状に保有している。歩幅と旋回角が指令として与えられた場合，これらの標準歩容の中から最も近いものを１つ選択すれば指令に近い歩容を生成することはできるが，指令に近い歩容を生成するためにはマトリックスの間隔を狭める必要があり，データ量が増加する。本従来技術では，指令の要求が歩幅と旋回角の２つであるが，将来さらに拡張して３つ以上に増やす場合にはさらにデータ量は膨大になる。この問題を解決するため，本従来技術では，標準歩容を組み合わせてマトリックスの間を補完した混合歩容を生成している。１１２は歩容混合器であり，歩行指令として与えられた歩幅と旋回角を実現する歩容を生成するために，標準歩容の集合１１１から３つの標準歩容を選び出し，それらの番号と歩容混合の重みを生成する。３つの標準歩容とは，歩行指令として与えられた歩幅と旋回角に最も近い標準歩容であるベース歩容と，ベース歩容と歩幅のみが異なる標準歩容と，ベース歩容と旋回角のみが異なる標準歩容の３つである。歩幅のみが異なる標準歩容は，その歩幅とベース歩容の歩幅との間に指令の歩幅が存在するように選ばれる。同様に，旋回角のみが異なる標準歩容は，その旋回角とベース歩容の旋回角との間に指令の旋回角が存在するように選ばれる。選んだ３つの標準歩容を線形補完するための重みを算出する。さらに運動パラメータとＺＭＰパラメータも生成する。１１４は上体水平位置発生器であり，歩容混合器１１２が生成した標準歩容の番号と歩容混合の重みを元に標準歩容の集合１１１から上体水平位置の時系列データを組み合わせて上体水平位置姿勢の瞬時値を算出する。上体水平位置発生器１１４での具体的処理については，特許文献２に述べられている技術を用いて実現できる。１１５は足平軌道生成器であり，歩容混合器１１２が生成した運動パラメータから足平位置姿勢の瞬時値を算出する。足平軌道発生器１１５での具体的処理については，特許文献２や特許文献３に述べられている技術を用いて実現できる。１１６は上体高さ決定器であり，歩容混合器１１２が生成した運動パラメータから上体高さの瞬時値を算出する。上体高さ決定器１１６の具体的処理については，特許文献４に述べられている技術を用いて実現できる。１１７はＺＭＰ生成器であり，歩容混合器１１２が生成したＺＭＰパラメータからＺＭＰ軌道を生成する。１１８はタイマであり，歩容混合器１１２に切り替えのタイミングを与え，さらに混合歩容瞬時値発生器１１３に時刻のパラメータを与えている。
【０００５】
このように，従来の二足歩行ロボットの歩容生成器は，あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し，ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき，それらを組み合わせることにより歩容を生成するのである。
また，倒立振子モデルより得られた数式を用いて歩容をオンライン生成することができるようにしているものもある（例えば，特許文献５参照）。本従来技術では，１歩ごとに進行方向歩行速度指令を確認し，今回の指令が前回の指令と同じならば，定常速度歩容を生成する。前回の指令と異なれば，２歩先の軸足切り替え時に新しい歩行速度での定常歩容となるように過渡歩容を生成する。つまり，ｎ−１歩目の途中で前回と異なる歩行速度指令を受け取ったとすると，ｎ歩目が過渡歩容となり，ｎ＋１歩目の着地の瞬間から新しい歩行速度での定常歩容となる。ここで，本従来技術では，ｎ歩目からｎ＋１歩目の切り替えタイミングおよび横方向の着地位置を変えることにより，前の歩行速度での定常歩容と新しい歩行速度での定常歩容を滑らかにつなぐような過渡歩容を生成する。本従来技術の過渡状態を含む重心軌道と着地位置は図８のようになる。
【特許文献１】特許第３６５８１４７号公報（第３１頁，図３）
【特許文献２】特許第３２３３４５０号公報
【特許文献３】特許第３２７３４４３号公報
【特許文献４】特許第３６６３０３４号公報
【特許文献５】特開２００８−８０４１８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従来の二足歩行ロボットの歩容生成器は，あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し，ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき，それらを組み合わせることにより歩容を生成しており，元となる歩容は，ロボットの設計が変更されるたびにそれぞれのロボット専用の歩容を人間が算出しなければならず，試行錯誤の実験やシミュレーションに多くの時間と手間がかかるという問題があった。また，元となる歩容を数多く記憶させておくために大容量のハードディスクなどの記憶装置が必要で，コストが高くなるなどの問題もあった。このような問題に対し，本発明人が先に考案した特許文献５の発明では，実験やシミュレーションによる試行錯誤的なパターン生成作業や，ハードディスクなどの大容量記録媒体を必要とせず，倒立振子モデルより得られた数式を用いて歩容をオンライン生成することができるようにしていた。
しかし，この方法では，進行方向の速度指令が変化したとき，前述のようにｎ歩目からｎ＋１歩目の切り替えタイミングを変えていたため，進行方向の歩容生成が横方向の歩容生成にも影響を及ぼしてしまい，進行方向の歩容に合わせて横方向の歩容も修正する必要があった。そのため，様々な歩容を生成しようとすれば，より多くの歩容パターンの数式を用意しておく必要があり，数式の導出やソフトウェアの実装，デバッグ等に手間がかかるため，歩容の種類を増やすのが難しくなるという問題があった。また，両脚支持期を含む歩容の生成方法については言及していなかった。
【０００７】
本発明はこのような問題点に鑑みてなされたものであり，実験やシミュレーションによる試行錯誤的なパターン生成作業や，ハードディスクなどの大容量記録媒体を必要とせず，また，進行方向と横方向の歩容を独立に設計できるようにし，さらに両脚支持期を含む歩容でも容易にパターンを作成できるようにした二足歩行ロボットの歩容生成器を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記問題を解決するため，本発明は，次のように構成したのである。
請求項１に記載の発明は，脚構造と，歩行速度指令に従ってベース歩容を生成する歩容生成器と，前記脚構造を動作させるための複数のアクチュエータと，各種状態量を検出して各種センサ情報を生成する各種センサと，前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と，前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と，アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと，前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え，前記歩容生成器は，少なくとも１歩ごとに前記歩行速度指令を確認しており，前記ベース歩容は，新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり，新しい歩行速度指令が前回の歩行速度指令と異なれば２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において，前記ベース歩容は，１歩の片脚支持の時間が定常歩容でも過渡歩容でも同じであり，２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるように前記過渡歩容の前後方向着地位置を決定するものである。
また，請求項２に記載の発明は，前記歩容生成器は，倒立振子モデルから解析的に与えられる数式を用いて前記ベース歩容を生成するものである。
また，請求項３に記載の発明は，脚構造と，歩行速度指令に従ってベース歩容を生成する歩容生成器と，前記脚構造を動作させるための複数のアクチュエータと，各種状態量を検出して各種センサ情報を生成する各種センサと，前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と，前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と，アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと，前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え，前記歩容生成器は，少なくとも１歩ごとに前記歩行速度指令を確認しており，前記ベース歩容は，新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり，新しい歩行速度指令が前回の歩行速度指令と異なれば２歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において，前記ベース歩容は，両脚支持期を含み，両脚支持期には重心速度を定常歩容切替時速度で一定とし，ゼロモーメントポイントが常に重心の真下にあるものである。
また，請求項４に記載の発明は，両脚支持期を含まない歩容の歩行速度を含両脚歩容歩行速度とし，両脚支持期を含む歩容の歩行速度を無両脚歩容歩行速度とし，前記歩容生成器は，前記含両脚歩容歩行速度と前記無両脚歩容歩行速度の関係式を保有しており，与えられた含両脚歩容歩行速度の指令を無両脚歩容歩行速度の指令に変換することにより両脚支持期を含む歩容の片脚支持期の歩容を生成するものである。
また，請求項５に記載の発明は，両脚支持期を含まない歩容の横方向着地位置の差を含両脚歩容スタンスとし，両脚支持期を含む歩容の横方向着地位置の差を無両脚歩容スタンスとし，前記歩容生成器は，前記含両脚歩容スタンスと前記無両脚歩容スタンスの関係式を保有しており，与えられた含両脚歩容スタンスの指令を無両脚歩容スタンスの指令に変換することにより両脚支持期を含む歩容の横方向着地位置の差を決定するものである。
【発明の効果】
【０００９】
請求項１に記載の発明によると，前後方向の歩容と左右方向の歩容の干渉が無くなり，進行方向と横方向の歩容をそれぞれ独立に設計できるため容易にパターンを作成でき，プログラム量も減らすことができる。
また，請求項２に記載の発明によると，安定な歩容を高速にオンラインで生成することができる。
また，請求項３に記載の発明によると，両脚支持期を含む歩容を生成する際に，着地時にも安定で，重心速度が連続となる滑らかな軌道の歩容を容易に高速に生成ことができる。
また，請求項４に記載の発明によると，両脚支持期を含む場合でも歩行速度指令通りの歩容を生成することができる。
また，請求項５に記載の発明によると，両脚支持期を含む場合でも指定したとおりのスタンスの歩容を生成ことができる。
【発明を実施するための最良の形態】
【００１０】
以下，本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１１】
本発明の歩容生成器は，従来と同じく図１１のように構成された脚式歩行ロボットの制御装置の中の，歩容生成器６００に関するものである。図１１で，歩容生成器６００は，歩行指令を受け取り，歩行指令の要求を満たすようにベース歩容を生成する。本実施例では，歩行指令は歩行速度の指令であり，ベース歩容は，絶対座標で軸足着地位置と重心位置をそれぞれ与えるか，またはそれらの差を取って重心位置と軸足着地位置との相対位置として与える。安定化制御器６１０は，各種センサ情報を用いて歩容生成器６００が生成した歩容を修正する。この修正歩容も，ベース歩容と同じく，絶対座標で軸足着地位置と重心位置をそれぞれ与えるか，またはそれらの差を取って重心位置と軸足着地位置との相対位置として与える。請求項の「複数のアクチュエータ」とは，本実施例では，モータおよび脚構造６６０に含まれる各関節のモータであり，「複数のアクチュエータそれぞれに対する指令」とは，各関節のモータに対するモータ位置指令であり，「アクチュエータ指令生成装置」とは，逆キネマティクス演算器６２０であり，「アクチュエータ状態量」とは，各関節のモータ位置であり，「アクチュエータセンサ」とは，各関節のモータに取り付けられたエンコーダ６７０であり，「アクチュエータ状態量情報」とは，エンコーダ６７０によって検出された各関節のモータ位置情報であり，「アクチュエータ制御器」とは，モータ位置制御器６３０である。
【００１２】
脚式歩行ロボットを安定に歩行させるためには，フィードフォワード的に転倒しにくい歩行パターンを与える歩容生成器６００と，外乱などによって体が傾いたときセンサ情報をもとにフィードバック的に姿勢を立て直す安定化制御器６１０の２つが必要である。本発明の歩容生成器を，さらに安定化制御器と組み合わせることで予測が困難な外乱に対する安定性を向上させることができる。以下では，脚式歩行ロボットの例として二足歩行ロボットを想定して説明するが，三足以上のロボットであっても，着地している足を支持脚，着地していない足を遊脚とみなせば二足歩行の場合と同じ方法を適用できる。
ここでは，歩容生成器で生成される歩行パターンは，常に片脚のみで支持しており，軸足が地面から離れると同時に次の足を着地するものとして説明する。これは単に説明の簡単のためであり，本発明にとっての制約とはならない。両脚支持期を含む歩容の生成方法は次の実施例で示す。
【００１３】
以下では，ロボットが歩行している床面上のどこかに設定された点を原点とした絶対座標系と，ロボットの重心位置に固定した相対座標系を定義する。脚が上体に比べ軽い場合，重心位置は上体の中の固定点とみなすことができ，目標支持脚足平相対位置は上体に対する相対位置と考えてもよい。相対座標系は，ロボットが直立した状態で，鉛直上方向をＺ軸，前方をＸ軸，左方向をＹ軸と定義する。また，特に断りがない限り，絶対座標系のＸ軸およびＹ軸と相対座標系のＸ軸およびＹ軸はそれぞれ一致しているものとする。片脚支持状態の脚式歩行ロボットを図２のような倒立振子モデルで表す。質量ｍのロボットが重力加速度ｇをうけており，垂直方向に加速度
【００１４】
【数１】
2010017806.tif 000003
【００１５】
で動かしたいとする。そのためには，次式の床反力を受ければよい。
【００１６】
【数２】
2010017806.tif 000004
【００１７】
また，水平方向には加速度
【００１８】
【数３】
2010017806.tif 000005
【００１９】
で動かしたいとする。そのためには，次式の摩擦力を床から受ければよい。
【００２０】
【数４】
2010017806.tif 000006
【００２１】
床反力によってモーメントを生じないようにするためには，図２に示すように，床反力の作用線上に重心がある必要がある。この条件は以下のように表される。
【００２２】
【数５】
2010017806.tif 000007
【００２３】
ただし，xcog，zcogは重心のｘ座標，ｚ座標である。xzmp，zzmpはゼロモーメントポイント(ＺＭＰ)のｘ座標，ｚ座標であり，歩容生成器の演算では，支持脚着地位置の足裏中央と考えてよい。（１）式，（２）式の運動方程式を代入して，モーメントを生じないための条件として，次式を得る。
【００２４】
【数６】
2010017806.tif 000008
【００２５】
ただし，xzmpは歩容生成器内の演算では，支持脚着地位置の中央と考えてよい。ここで，ロボットは，重心の高さzcog-zzmpを一定値Hに保ちつつ水平に運動するものとする。このように重心の高さを一定とした倒立振子を線形倒立振子とよぶ。このようにすると（４）式は以下のような線形の方程式となるので考えやすい。
【００２６】
【数７】
2010017806.tif 000009
【００２７】
（５）式はＺＭＰ方程式と呼ばれる。式を解くと
【００２８】
【数８】
2010017806.tif 000010
【００２９】
ここで，C1x，C2xは積分定数である。同様に横方向について，以下のＺＭＰ方程式が成り立つ。ただし，yzmpはＺＭＰのy座標，ycogは重心のy座標である。
【００３０】
【数９】
2010017806.tif 000011
【００３１】
これを解いて
【００３２】
【数１０】
2010017806.tif 000012
【００３３】
C1y，C2yは積分定数である。支持脚が左の時の軌道と右の時の軌道は，符号の違いだけであるため，どちらか一方だけ求めておき，符号を変えて用いればよい。以上のことを用いて，一定速度での定常歩行時の歩容生成方法を説明する。第ｎ歩目の着地時刻をt＝0，第ｎ＋１歩目の着地時刻をt＝Tとする。本発明では，定常歩容でも過渡歩容でも１歩の時間Ｔを一定とすることにより，進行方向と横方向の歩容の干渉を無くし，独立に歩容を生成できるようにしている。まず始めに進行方向の歩容生成方法を説明する。
t＝0での重心位置をx0とする。
【００３４】
【数１１】
2010017806.tif 000013
【００３５】
この条件を（６）式に当てはめると，次式を得る。
【００３６】
【数１２】
2010017806.tif 000014
【００３７】
また，x軸方向すなわち進行方向について，定常状態では軸脚切替時の進行方向速度が等しいという条件を与える。
【００３８】
【数１３】
2010017806.tif 000015
【００３９】
この条件を（７）式に当てはめると，次式を得る。
【００４０】
【数１４】
2010017806.tif 000016
【００４１】
（１２）式と（１４）式を連立させて解くと，
【００４２】
【数１５】
2010017806.tif 000017
【００４３】
となる。このとき，
【００４４】
【数１６】
2010017806.tif 000018
【００４５】
となっている。ただし，xstrideは歩幅を表し，
【００４６】
【数１７】
2010017806.tif 000019
【００４７】
である（図３参照）。歩行速度指令をvxrefとすると，
【００４８】
【数１８】
2010017806.tif 000020
【００４９】
となっていなければならない。（１７），（１８）式より，（１５）式は次のように表せる。
【００５０】
【数１９】
2010017806.tif 000021
【００５１】
速度指令が与えられたとき，（１９）式によりC1x，C2xを求め，（６）式に代入すれば定常状態でのｎ歩目の進行方向重心軌道を求めることができる。次に，横方向の歩容生成方法を説明する。y軸方向すなわち横方向について，定常状態では，切替時の重心位置が等しく，速度が逆という条件を満たす。
【００５２】
【数２０】
2010017806.tif 000022
【００５３】
このとき，
【００５４】
【数２１】
2010017806.tif 000023
【００５５】
横方向の左右の着地位置の差（スタンス）を指定しておく。スタンスをystanceとおくと，右脚支持の時の切替時重心位置とＺＭＰ位置の関係は以下のようになる。
【００５６】
【数２２】
2010017806.tif 000024
【００５７】
これを代入して，右脚支持の時の積分係数は以下のようになる。
【００５８】
【数２３】
2010017806.tif 000025
【００５９】
（２３）式によりC1y，C2yを求め，（９）式に代入すれば定常状態右脚支持での横方向重心軌道を求めることができる。左脚支持の時には符号を逆にすればよい。Ｘ方向およびＹ方向の定常歩容切替時速度は，（７）式および（１０）式でt＝0とすれば次式で与えられる。
【００６０】
【数２４】
2010017806.tif 000026
【００６１】
定常状態での重心軌道と切換時速度は図４のようになる。また，時系列で見た定常歩容の位置，速度，加速度を図６，および図７に示す。図６は進行方向，図７は横方向について示したものである。以上の定常歩容の生成方法については，従来の特許文献５と同じである。
【００６２】
本発明の特徴は，以下の過渡歩容の生成方法にある。ｎ−１歩目の動作中に受け取った速度指令が前の速度指令と異なる場合には，ｎ歩目の着地時までは前の速度指令での定常歩容の重心位置軌道とし，ｎ＋１歩目の着地時に新しい速度指令から求めた定常動作になるようにｎ歩目の過渡歩容を生成する。過渡歩容パターン生成では，前回受け取った歩行速度指令と今回受け取った速度指令が異なるため，単純に定常歩容パターン生成と同じ方法で今回受け取った歩行速度指令をｎ歩目の歩容生成に用いると，ｎ−１歩目とｎ歩目の切り替え時に重心速度が不連続な歩容となり，ロボットは瞬間的に無限大の推力を発生させようとするため多くの場合転倒するほど不安定になる。そのため，ｎ−１歩目の動作中に受け取った速度指令が前の速度指令と異なる場合には，ｎ−１歩目とｎ歩目の切り替え時ではなくｎ歩目とｎ＋１歩目の切り替え時に，今回受け取った歩行速度での歩行となるように歩容を生成する。その方法を以下に述べる。
【００６３】
進行方向速度指令が変化したときには，まず，前の速度指令での切替時速度Vx(n-1)と，新しい速度指令での切替時速度Vx(n+1)を求める。前の速度指令と新しい速度指令それぞれについて， （１９）式によりC1x，C2xを求め，（２４）式に代入すればそれぞれの速度指令での定常歩容切替時速度が求められる。それらがそれぞれ，過渡歩容となるｎ歩目の初期速度および終端速度となる。過渡歩容は以下の条件を満たす必要がある。
【００６４】
【数２５】
2010017806.tif 000027
【００６５】
これを解いて
【００６６】
【数２６】
2010017806.tif 000028
【００６７】
ここで，ｎ歩目の進行方向の着地位置nxzmpを変えることにより（４）式の条件を満たした過渡歩容を生成する。上式の積分係数を用いて，（６）式でt =0とおけば，ｎ歩目の着地位置は次のように与えられる。
【００６８】
【数２７】
2010017806.tif 000029
【００６９】
ただし，ｎ歩目の初期重心位置nxcog(0)はｎ−１歩目の終端重心位置n-1xcog(T)として与えられる。また，ｎ＋１歩目の着地位置は
【００７０】
【数２８】
2010017806.tif 000030
【００７１】
とする。ここで，ｎ歩目の終端重心位置nxcog(T)は次式で与えられる。
【００７２】
【数２９】
2010017806.tif 000031
【００７３】
過渡状態を含む歩行の重心軌道は図５のようになる。また，時系列で見た進行方向過渡歩容の位置，速度，加速度を図８に示す。本発明では，過渡歩容でも定常歩容でも１歩の時間が同じであるため，横方向の歩容は定常歩容の場合と同じでよい。
【００７４】
以上のように倒立振子モデルを用いて解析的に得られた数式を用いて，どのように歩容を生成するかを図１のフローを用いて以下に説明する。図１は，本発明の二足歩行ロボットの歩容生成器の歩容生成処理を表すフロー図である。図１で表される歩容生成処理は，一歩ごとに行われ，第ｎ歩目の歩容を表す数式の係数を算出する。算出された係数を用いて，より速い制御周期ごとに重心軌道を算出する。本発明の歩容生成処理では，片脚支持期間すなわち１歩の時間を固定としているので，進行方向の歩容と横方向の歩容を独立に求めることができる。
【００７５】
始めに，進行方向の歩容生成処理について説明する。進行方向歩容生成処理は，まずｓｔｅｐ１で，その時点で最新の進行方向歩行速度指令を確認する。このときｎ−１歩目の動作中であるとする。ｓｔｅｐ２に移り，ｓｔｅｐ１で受け取った歩行速度指令が前回すなわちｎ−２歩目の動作中に受け取った歩行速度指令と比較し，それらが同じ値である場合はｓｔｅｐ３の定常歩容パターン生成のフローへ，異なる値である場合はｓｔｅｐ５の過渡歩容パターン生成のフローへと移る。ｓｔｅｐ３では，ｎ歩目の重心軌道を決定する。具体的には，受け取った歩行速度指令を用いて，（１９）式によりC1x，C2xを求める。以上で定常歩容パターン生成時の歩容生成処理は終了し，ｎ歩目の制御周期ごとの演算では，ここで決定されたC1x，C2xを（６）式に代入して進行方向重心軌道を求める。次に，過渡歩容パターン生成のフローを説明する。まずｓｔｅｐ５で，前回受け取った歩行速度指令を用いて，（１９）式によりC1x，C2xを求め，これを（２４）式に代入して切替時速度Vx(n-1)を求める。ｓｔｅｐ６に移り，新しく受け取った歩行速度指令を用いて，（１９）式によりC1x，C2xを求め，これを（２４）式に代入して切替時速度Vx(n+1)を求める。ｓｔｅｐ７に移り，ｎ歩目の初期速度がVx(n-1)，終端速度がVx(n+1)となるようにｎ歩目の進行方向着地位置と重心軌道を決定する。ここでは，まず（２７）式でnC1x，nC2xを求め，次に，これらを（２８）式に代入してｎ歩目の着地位置を求める。以上で過渡歩容パターン生成フローは終了し，ｎ歩目はｓｔｅｐ７で求めた進行方向着地位置に着地し，ｎ歩目の制御周期ごとの演算では，重心軌道はnC1x，nC2x，C1y，C2yを用いて算出する。
【００７６】
次に，横方向の歩容生成処理について説明する。本発明では，横方向の歩容は，常に定常歩容である。ｓｔｅｐ８では横方向の着地位置yzmpを指定しておき，（２３）式によりC1y，C2yを求める。右脚支持のときはこの係数をそのまま用い，左脚支持のときは符号を逆にして用いる。ｎ歩目の制御周期ごとの演算では，ここで決定されたC1y，C2yを（９）式に代入して横方向重心軌道を求める。
【実施例２】
【００７７】
ここでは，両脚支持期を含むような歩容を生成する場合の例を示す。従来，ＺＭＰが不連続な指令を与えると不安定になると考えられており，ＺＭＰが連続になるように両脚支持期の軌道を生成するものが多い。しかし，そもそも足先を位置制御して動かす場合，着地の瞬間の床反力を想定したとおりに得ることは困難であり，着地した足に受ける床反力は急激に増加するため，ＺＭＰも軸足から着地した足の方へ急激に移動する。そのため，ＺＭＰが連続になるように指令を与えれば，想定したＺＭＰと実際のＺＭＰとのずれが大きくなり，かえって不安定になりやすい。そこで，本技術では，ＺＭＰが常に重心の真下となるように歩容を生成する。この場合，ＺＭＰは着地の瞬間と離床の瞬間に不連続になるが，その方が想定通りの動作を得やすいと言える。また，このように歩容を生成すれば，重心の水平方向加速度は０となり，一定の速度となるため，両脚支持期がないとして生成した歩容に位置軌道が滑らかにつながる。このようにして求めた定常歩容のＸ軸方向の時系列重心位置・速度・加速度軌道を図９に，Ｙ軸方向の時系列重心位置・速度・加速度軌道を図１０に示す。この場合，実施例１と同様の方法で歩行速度指令を与えると，両脚支持期の進行方向速度が平均速度より若干早いため指令よりも歩行速度が速くなるが，通常，歩行速度指令は人間がジョイスティックの傾きで操作するなど感覚的に与えられるものであるため，単に操作量にほぼ比例するだけでよく，正確に指令通りの速度で動作しなくてもよい場合が多い。必要であれば，両脚支持期を含まない歩容と両脚支持期を含む歩容との平均速度の関係を数式的に求め，指令速度を両脚支持期を含まない歩容の平均速度に変換して用いればよい。まず，Ｘ軸方向について両脚支持期を含む定常歩容生成方法を述べる。両脚支持期の時間をT2，両脚支持期を含まない歩容の平均速度をと両脚支持期を含む歩容の平均速度をv'xrefとおく。両脚支持期の重心位置の移動量はVx T2となり，vxrefと v'xrefとの関係は次式のように得られる。
【００７８】
【数３０】
2010017806.tif 000032
【００７９】
歩行速度指令v'xrefが与えられたとき，上式によりvxrefに変換し，実施例１に示した方法で両脚支持期を含まない歩容を求め，これを片脚支持期の歩容として用い，両脚支持期の歩容を加えれば歩行速度指令通りの両脚支持期を含む歩容を生成することができる。このとき，Ｘ軸方向の着地位置はストライドが次式となるように決定する。
【００８０】
【数３１】
2010017806.tif 000033
次に，Ｙ軸方向について両脚支持期を含む定常歩容の生成方法を述べる。両脚支持期を含まない歩容のスタンスをystance，両脚支持期を含む歩容のスタンスをy'stanceとおく。両脚支持期の重心位置の移動量はVy T2となり，ystanceと y'stanceとの関係は次式のように得られる。
【００８１】
【数３２】
2010017806.tif 000034
【００８２】
スタンスがy'stanceで指定されたとき，上式によりystanceに変換し，実施例１に示した方法で両脚支持期を含まない歩容を求め，これを片脚支持期の歩容として用い，両脚支持期の歩容を加えれば歩行速度指令通りの両脚支持期を含む歩容を生成することができる。このとき，Ｙ軸方向の着地位置はスタンスがy'stanceで指定された幅となるように決定する。
あるいは，これらの関係をあらかじめ計算機で離散的に求めて多項式等でフィッティングしておき，補正して用いればよい。
【図面の簡単な説明】
【００８３】
【図１】本発明の第１実施例を示す歩容生成器の歩容生成処理フロー図
【図２】本発明の歩容生成器で想定している二足歩行ロボットの倒立振子モデルの説明図
【図３】本発明の歩容生成器で想定している二足歩行ロボットの倒立振子モデルの軸足切り替え時の着地位置と重心位置の定義を表す説明図
【図４】本発明の歩容生成器が生成する定常歩容の着地位置と重心軌道を表す説明図
【図５】本発明の歩容生成器が生成する過渡歩容を含む歩容の着地位置と重心軌道を表す説明図
【図６】本発明の歩容生成器が生成する定常歩容のＸ軸方向の時系列重心位置・速度・加速度軌道
【図７】本発明の歩容生成器が生成する定常歩容のＹ軸方向の時系列重心位置・速度・加速度軌道
【図８】本発明の歩容生成器が生成する過渡歩容を含む歩容のＸ軸方向の時系列重心位置・速度・加速度軌道
【図９】本発明の歩容生成器が生成する両脚支持期を含む定常歩容のＸ軸方向の時系列重心位置・速度・加速度軌道
【図１０】本発明の歩容生成器が生成する両脚支持期を含む定常歩容のＹ軸方向の時系列重心位置・速度・加速度軌道
【図１１】従来の二足歩行ロボット制御装置の全体構成を表すブロック図
【図１２】従来の二足歩行ロボット歩容生成器を表すブロック図
【図１３】従来の歩容生成器で動作する二足歩行ロボットの過渡状態を含む歩行時の着地位置と重心軌道を表す説明図
【符号の説明】
【００８４】
６００  歩容生成器
６１０  安定化制御器
６２０  逆キネマティクス演算器
６３０  モータ位置制御器
６６０  モータおよび脚構造
６７０  エンコーダ
６８０  各種センサ
１１１  標準歩容の集合（オフライン）
１１２  歩容混合器
１１３  混合歩容瞬時値発生器
１１４  上体水平位置発生器
１１５  足平軌道発生器
１１６  上体高さ決定器
１１７  ＺＭＰ生成器
１１８  タイマ
【図１】
2010017806.tif 000035
【図２】
2010017806.tif 000036
【図３】
2010017806.tif 000037
【図４】
2010017806.tif 000038
【図５】
2010017806.tif 000039
【図６】
2010017806.tif 000040
【図７】
2010017806.tif 000041
【図８】
2010017806.tif 000042
【図９】
2010017806.tif 000043
【図１０】
2010017806.tif 000044
【図１１】
2010017806.tif 000045
【図１２】
2010017806.tif 000046
【図１３】
2010017806.tif 000047