説明

脚式歩行ロボットの歩容生成器

【課題】実験やシミュレーションによる試行錯誤的なパターン生成作業や,ハードディスクなどの大容量記録媒体を必要とせず,両脚支持期を含む歩容でも容易に高速にオンライン生成することができる二足歩行ロボットの歩容生成器を提供する。
【解決手段】1歩の片脚支持の時間を定常歩容でも過渡歩容でも同じ固定値とし,倒立振子モデルより得られた数式により歩容を生成する。1歩ごとに歩行速度指令を確認し,新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容を生成し,異なれば2歩先の着地時に新しい歩行速度指令での定常歩容となるように過渡歩容の前後方向着地位置を決定する。両脚支持期にはZMPが常に重心の真下となるように歩容を生成する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は,脚式歩行ロボットの制御装置において,歩行速度指令通りの歩容をリアルタイムに生成する歩容生成器に関する。
【背景技術】
【0002】
従来の二足歩行ロボットのリアルタイム歩容生成器は,あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し,ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき,それらを組み合わせることにより歩容を生成している(例えば,特許文献1参照)。
【0003】
以下では,図11を用いて従来の二足歩行ロボットの制御装置の全体構成を説明する。図11において,600は歩容生成器であり,上位コンピュータまたは操作者から歩行指令を受け取り,歩行指令の要求を満たすようにベース歩容を生成する。本従来例では,歩行指令とは要求される歩幅と旋回角の組であり,歩容とは上体位置姿勢軌道,足平位置姿勢軌道,ZMP軌道の組である。610は安定化制御器であり,予測しなかった外乱により歩行ロボットが転倒するのを防ぐため,各種センサ情報を用いて歩容生成器600が生成した歩容を修正する。620は逆キネマティクス演算器であり,安定化制御器610が生成した修正歩容を,逆キネマティクス演算により各関節のモータ位置指令に変換する。ロボットの関節の角度とサーボモータの回転量は一対一に対応する。630はモータ位置制御器であり,エンコーダ670からのモータ位置情報を用いて,逆キネマティクス演算器620が生成したモータ位置指令どおりの位置にモータを動作させるようにモータトルクを変化させる。660はモータおよび脚構造であり,モータ位置制御器630によって操作されるモータと脚構造である。脚構造は地面等と接触することにより二足歩行ロボットを移動させる力を発生する。670はエンコーダであり,モータの位置を検出し,モータ位置制御器630へフィードバックする。モータおよび脚構造660が動作した結果,各種状態量が変化する。680は各種センサであり,各種状態量を検出して安定化制御器にフィードバックする。具体的には,各種状態量とは二足歩行ロボットの上体の傾き,向き,またはそれらの速度,足裏に受ける圧力であり,各種センサとは,傾斜センサ,ジャイロセンサ,加速度センサ,地磁気センサ,圧力センサ,6軸力センサ,カメラなどが用いられる例が多い。
【0004】
以下では,図12を用いて前述の歩容生成器600の構成をより詳細に説明する。図12において,600は歩容生成器,610は安定化制御器,620は逆キネマティクス演算器であり,図11で説明したものである。
歩容生成器100の内部動作をより詳しく説明すると,111は標準歩容の集合である。標準歩容とは,あらかじめ動力学シミュレーションや試行錯誤的な実験や数式モデルを用いた解析的な手法により,オフラインで求められた安定な歩容の集合をデータベースとして保存したものである。離散的な複数の歩幅と旋回角に対して,それを実現する歩容のパターンを標準歩容としてマトリックス状に保有している。歩幅と旋回角が指令として与えられた場合,これらの標準歩容の中から最も近いものを1つ選択すれば指令に近い歩容を生成することはできるが,指令に近い歩容を生成するためにはマトリックスの間隔を狭める必要があり,データ量が増加する。本従来技術では,指令の要求が歩幅と旋回角の2つであるが,将来さらに拡張して3つ以上に増やす場合にはさらにデータ量は膨大になる。この問題を解決するため,本従来技術では,標準歩容を組み合わせてマトリックスの間を補完した混合歩容を生成している。112は歩容混合器であり,歩行指令として与えられた歩幅と旋回角を実現する歩容を生成するために,標準歩容の集合111から3つの標準歩容を選び出し,それらの番号と歩容混合の重みを生成する。3つの標準歩容とは,歩行指令として与えられた歩幅と旋回角に最も近い標準歩容であるベース歩容と,ベース歩容と歩幅のみが異なる標準歩容と,ベース歩容と旋回角のみが異なる標準歩容の3つである。歩幅のみが異なる標準歩容は,その歩幅とベース歩容の歩幅との間に指令の歩幅が存在するように選ばれる。同様に,旋回角のみが異なる標準歩容は,その旋回角とベース歩容の旋回角との間に指令の旋回角が存在するように選ばれる。選んだ3つの標準歩容を線形補完するための重みを算出する。さらに運動パラメータとZMPパラメータも生成する。114は上体水平位置発生器であり,歩容混合器112が生成した標準歩容の番号と歩容混合の重みを元に標準歩容の集合111から上体水平位置の時系列データを組み合わせて上体水平位置姿勢の瞬時値を算出する。上体水平位置発生器114での具体的処理については,特許文献2に述べられている技術を用いて実現できる。115は足平軌道生成器であり,歩容混合器112が生成した運動パラメータから足平位置姿勢の瞬時値を算出する。足平軌道発生器115での具体的処理については,特許文献2や特許文献3に述べられている技術を用いて実現できる。116は上体高さ決定器であり,歩容混合器112が生成した運動パラメータから上体高さの瞬時値を算出する。上体高さ決定器116の具体的処理については,特許文献4に述べられている技術を用いて実現できる。117はZMP生成器であり,歩容混合器112が生成したZMPパラメータからZMP軌道を生成する。118はタイマであり,歩容混合器112に切り替えのタイミングを与え,さらに混合歩容瞬時値発生器113に時刻のパラメータを与えている。
【0005】
このように,従来の二足歩行ロボットの歩容生成器は,あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し,ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき,それらを組み合わせることにより歩容を生成するのである。
また,倒立振子モデルより得られた数式を用いて歩容をオンライン生成することができるようにしているものもある(例えば,特許文献5参照)。本従来技術では,1歩ごとに進行方向歩行速度指令を確認し,今回の指令が前回の指令と同じならば,定常速度歩容を生成する。前回の指令と異なれば,2歩先の軸足切り替え時に新しい歩行速度での定常歩容となるように過渡歩容を生成する。つまり,n−1歩目の途中で前回と異なる歩行速度指令を受け取ったとすると,n歩目が過渡歩容となり,n+1歩目の着地の瞬間から新しい歩行速度での定常歩容となる。ここで,本従来技術では,n歩目からn+1歩目の切り替えタイミングおよび横方向の着地位置を変えることにより,前の歩行速度での定常歩容と新しい歩行速度での定常歩容を滑らかにつなぐような過渡歩容を生成する。本従来技術の過渡状態を含む重心軌道と着地位置は図8のようになる。
【特許文献1】特許第3658147号公報(第31頁,図3)
【特許文献2】特許第3233450号公報
【特許文献3】特許第3273443号公報
【特許文献4】特許第3663034号公報
【特許文献5】特開2008−80418号公報
【発明の開示】
【発明が解決しようとする課題】
【0006】
従来の二足歩行ロボットの歩容生成器は,あらかじめ動力学シミュレーションや実験により様々なパターンの安定な歩容を試行錯誤的に作成し,ロボットに搭載したハードディスクなどの記録媒体の中にデータベースとして保存しておき,それらを組み合わせることにより歩容を生成しており,元となる歩容は,ロボットの設計が変更されるたびにそれぞれのロボット専用の歩容を人間が算出しなければならず,試行錯誤の実験やシミュレーションに多くの時間と手間がかかるという問題があった。また,元となる歩容を数多く記憶させておくために大容量のハードディスクなどの記憶装置が必要で,コストが高くなるなどの問題もあった。このような問題に対し,本発明人が先に考案した特許文献5の発明では,実験やシミュレーションによる試行錯誤的なパターン生成作業や,ハードディスクなどの大容量記録媒体を必要とせず,倒立振子モデルより得られた数式を用いて歩容をオンライン生成することができるようにしていた。
しかし,この方法では,進行方向の速度指令が変化したとき,前述のようにn歩目からn+1歩目の切り替えタイミングを変えていたため,進行方向の歩容生成が横方向の歩容生成にも影響を及ぼしてしまい,進行方向の歩容に合わせて横方向の歩容も修正する必要があった。そのため,様々な歩容を生成しようとすれば,より多くの歩容パターンの数式を用意しておく必要があり,数式の導出やソフトウェアの実装,デバッグ等に手間がかかるため,歩容の種類を増やすのが難しくなるという問題があった。また,両脚支持期を含む歩容の生成方法については言及していなかった。
【0007】
本発明はこのような問題点に鑑みてなされたものであり,実験やシミュレーションによる試行錯誤的なパターン生成作業や,ハードディスクなどの大容量記録媒体を必要とせず,また,進行方向と横方向の歩容を独立に設計できるようにし,さらに両脚支持期を含む歩容でも容易にパターンを作成できるようにした二足歩行ロボットの歩容生成器を提供することを目的とする。
【課題を解決するための手段】
【0008】
上記問題を解決するため,本発明は,次のように構成したのである。
請求項1に記載の発明は,脚構造と,歩行速度指令に従ってベース歩容を生成する歩容生成器と,前記脚構造を動作させるための複数のアクチュエータと,各種状態量を検出して各種センサ情報を生成する各種センサと,前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と,前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と,アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと,前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え,前記歩容生成器は,少なくとも1歩ごとに前記歩行速度指令を確認しており,前記ベース歩容は,新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり,新しい歩行速度指令が前回の歩行速度指令と異なれば2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において,前記ベース歩容は,1歩の片脚支持の時間が定常歩容でも過渡歩容でも同じであり,2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるように前記過渡歩容の前後方向着地位置を決定するものである。
また,請求項2に記載の発明は,前記歩容生成器は,倒立振子モデルから解析的に与えられる数式を用いて前記ベース歩容を生成するものである。
また,請求項3に記載の発明は,脚構造と,歩行速度指令に従ってベース歩容を生成する歩容生成器と,前記脚構造を動作させるための複数のアクチュエータと,各種状態量を検出して各種センサ情報を生成する各種センサと,前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と,前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と,アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと,前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え,前記歩容生成器は,少なくとも1歩ごとに前記歩行速度指令を確認しており,前記ベース歩容は,新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり,新しい歩行速度指令が前回の歩行速度指令と異なれば2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において,前記ベース歩容は,両脚支持期を含み,両脚支持期には重心速度を定常歩容切替時速度で一定とし,ゼロモーメントポイントが常に重心の真下にあるものである。
また,請求項4に記載の発明は,両脚支持期を含まない歩容の歩行速度を含両脚歩容歩行速度とし,両脚支持期を含む歩容の歩行速度を無両脚歩容歩行速度とし,前記歩容生成器は,前記含両脚歩容歩行速度と前記無両脚歩容歩行速度の関係式を保有しており,与えられた含両脚歩容歩行速度の指令を無両脚歩容歩行速度の指令に変換することにより両脚支持期を含む歩容の片脚支持期の歩容を生成するものである。
また,請求項5に記載の発明は,両脚支持期を含まない歩容の横方向着地位置の差を含両脚歩容スタンスとし,両脚支持期を含む歩容の横方向着地位置の差を無両脚歩容スタンスとし,前記歩容生成器は,前記含両脚歩容スタンスと前記無両脚歩容スタンスの関係式を保有しており,与えられた含両脚歩容スタンスの指令を無両脚歩容スタンスの指令に変換することにより両脚支持期を含む歩容の横方向着地位置の差を決定するものである。
【発明の効果】
【0009】
請求項1に記載の発明によると,前後方向の歩容と左右方向の歩容の干渉が無くなり,進行方向と横方向の歩容をそれぞれ独立に設計できるため容易にパターンを作成でき,プログラム量も減らすことができる。
また,請求項2に記載の発明によると,安定な歩容を高速にオンラインで生成することができる。
また,請求項3に記載の発明によると,両脚支持期を含む歩容を生成する際に,着地時にも安定で,重心速度が連続となる滑らかな軌道の歩容を容易に高速に生成ことができる。
また,請求項4に記載の発明によると,両脚支持期を含む場合でも歩行速度指令通りの歩容を生成することができる。
また,請求項5に記載の発明によると,両脚支持期を含む場合でも指定したとおりのスタンスの歩容を生成ことができる。
【発明を実施するための最良の形態】
【0010】
以下,本発明の実施の形態について図を参照して説明する。
【実施例1】
【0011】
本発明の歩容生成器は,従来と同じく図11のように構成された脚式歩行ロボットの制御装置の中の,歩容生成器600に関するものである。図11で,歩容生成器600は,歩行指令を受け取り,歩行指令の要求を満たすようにベース歩容を生成する。本実施例では,歩行指令は歩行速度の指令であり,ベース歩容は,絶対座標で軸足着地位置と重心位置をそれぞれ与えるか,またはそれらの差を取って重心位置と軸足着地位置との相対位置として与える。安定化制御器610は,各種センサ情報を用いて歩容生成器600が生成した歩容を修正する。この修正歩容も,ベース歩容と同じく,絶対座標で軸足着地位置と重心位置をそれぞれ与えるか,またはそれらの差を取って重心位置と軸足着地位置との相対位置として与える。請求項の「複数のアクチュエータ」とは,本実施例では,モータおよび脚構造660に含まれる各関節のモータであり,「複数のアクチュエータそれぞれに対する指令」とは,各関節のモータに対するモータ位置指令であり,「アクチュエータ指令生成装置」とは,逆キネマティクス演算器620であり,「アクチュエータ状態量」とは,各関節のモータ位置であり,「アクチュエータセンサ」とは,各関節のモータに取り付けられたエンコーダ670であり,「アクチュエータ状態量情報」とは,エンコーダ670によって検出された各関節のモータ位置情報であり,「アクチュエータ制御器」とは,モータ位置制御器630である。
【0012】
脚式歩行ロボットを安定に歩行させるためには,フィードフォワード的に転倒しにくい歩行パターンを与える歩容生成器600と,外乱などによって体が傾いたときセンサ情報をもとにフィードバック的に姿勢を立て直す安定化制御器610の2つが必要である。本発明の歩容生成器を,さらに安定化制御器と組み合わせることで予測が困難な外乱に対する安定性を向上させることができる。以下では,脚式歩行ロボットの例として二足歩行ロボットを想定して説明するが,三足以上のロボットであっても,着地している足を支持脚,着地していない足を遊脚とみなせば二足歩行の場合と同じ方法を適用できる。
ここでは,歩容生成器で生成される歩行パターンは,常に片脚のみで支持しており,軸足が地面から離れると同時に次の足を着地するものとして説明する。これは単に説明の簡単のためであり,本発明にとっての制約とはならない。両脚支持期を含む歩容の生成方法は次の実施例で示す。
【0013】
以下では,ロボットが歩行している床面上のどこかに設定された点を原点とした絶対座標系と,ロボットの重心位置に固定した相対座標系を定義する。脚が上体に比べ軽い場合,重心位置は上体の中の固定点とみなすことができ,目標支持脚足平相対位置は上体に対する相対位置と考えてもよい。相対座標系は,ロボットが直立した状態で,鉛直上方向をZ軸,前方をX軸,左方向をY軸と定義する。また,特に断りがない限り,絶対座標系のX軸およびY軸と相対座標系のX軸およびY軸はそれぞれ一致しているものとする。片脚支持状態の脚式歩行ロボットを図2のような倒立振子モデルで表す。質量mのロボットが重力加速度gをうけており,垂直方向に加速度
【0014】
【数1】

【0015】
で動かしたいとする。そのためには,次式の床反力を受ければよい。
【0016】
【数2】

【0017】
また,水平方向には加速度
【0018】
【数3】

【0019】
で動かしたいとする。そのためには,次式の摩擦力を床から受ければよい。
【0020】
【数4】

【0021】
床反力によってモーメントを生じないようにするためには,図2に示すように,床反力の作用線上に重心がある必要がある。この条件は以下のように表される。
【0022】
【数5】

【0023】
ただし,xcog,zcogは重心のx座標,z座標である。xzmp,zzmpはゼロモーメントポイント(ZMP)のx座標,z座標であり,歩容生成器の演算では,支持脚着地位置の足裏中央と考えてよい。(1)式,(2)式の運動方程式を代入して,モーメントを生じないための条件として,次式を得る。
【0024】
【数6】

【0025】
ただし,xzmpは歩容生成器内の演算では,支持脚着地位置の中央と考えてよい。ここで,ロボットは,重心の高さzcog-zzmpを一定値Hに保ちつつ水平に運動するものとする。このように重心の高さを一定とした倒立振子を線形倒立振子とよぶ。このようにすると(4)式は以下のような線形の方程式となるので考えやすい。
【0026】
【数7】

【0027】
(5)式はZMP方程式と呼ばれる。式を解くと
【0028】
【数8】

【0029】
ここで,C1x,C2xは積分定数である。同様に横方向について,以下のZMP方程式が成り立つ。ただし,yzmpはZMPのy座標,ycogは重心のy座標である。
【0030】
【数9】

【0031】
これを解いて
【0032】
【数10】

【0033】
C1y,C2yは積分定数である。支持脚が左の時の軌道と右の時の軌道は,符号の違いだけであるため,どちらか一方だけ求めておき,符号を変えて用いればよい。以上のことを用いて,一定速度での定常歩行時の歩容生成方法を説明する。第n歩目の着地時刻をt=0,第n+1歩目の着地時刻をt=Tとする。本発明では,定常歩容でも過渡歩容でも1歩の時間Tを一定とすることにより,進行方向と横方向の歩容の干渉を無くし,独立に歩容を生成できるようにしている。まず始めに進行方向の歩容生成方法を説明する。
t=0での重心位置をx0とする。
【0034】
【数11】

【0035】
この条件を(6)式に当てはめると,次式を得る。
【0036】
【数12】

【0037】
また,x軸方向すなわち進行方向について,定常状態では軸脚切替時の進行方向速度が等しいという条件を与える。
【0038】
【数13】

【0039】
この条件を(7)式に当てはめると,次式を得る。
【0040】
【数14】

【0041】
(12)式と(14)式を連立させて解くと,
【0042】
【数15】

【0043】
となる。このとき,
【0044】
【数16】

【0045】
となっている。ただし,xstrideは歩幅を表し,
【0046】
【数17】

【0047】
である(図3参照)。歩行速度指令をvxrefとすると,
【0048】
【数18】

【0049】
となっていなければならない。(17),(18)式より,(15)式は次のように表せる。
【0050】
【数19】

【0051】
速度指令が与えられたとき,(19)式によりC1x,C2xを求め,(6)式に代入すれば定常状態でのn歩目の進行方向重心軌道を求めることができる。次に,横方向の歩容生成方法を説明する。y軸方向すなわち横方向について,定常状態では,切替時の重心位置が等しく,速度が逆という条件を満たす。
【0052】
【数20】

【0053】
このとき,
【0054】
【数21】

【0055】
横方向の左右の着地位置の差(スタンス)を指定しておく。スタンスをystanceとおくと,右脚支持の時の切替時重心位置とZMP位置の関係は以下のようになる。
【0056】
【数22】

【0057】
これを代入して,右脚支持の時の積分係数は以下のようになる。
【0058】
【数23】

【0059】
(23)式によりC1y,C2yを求め,(9)式に代入すれば定常状態右脚支持での横方向重心軌道を求めることができる。左脚支持の時には符号を逆にすればよい。X方向およびY方向の定常歩容切替時速度は,(7)式および(10)式でt=0とすれば次式で与えられる。
【0060】
【数24】

【0061】
定常状態での重心軌道と切換時速度は図4のようになる。また,時系列で見た定常歩容の位置,速度,加速度を図6,および図7に示す。図6は進行方向,図7は横方向について示したものである。以上の定常歩容の生成方法については,従来の特許文献5と同じである。
【0062】
本発明の特徴は,以下の過渡歩容の生成方法にある。n−1歩目の動作中に受け取った速度指令が前の速度指令と異なる場合には,n歩目の着地時までは前の速度指令での定常歩容の重心位置軌道とし,n+1歩目の着地時に新しい速度指令から求めた定常動作になるようにn歩目の過渡歩容を生成する。過渡歩容パターン生成では,前回受け取った歩行速度指令と今回受け取った速度指令が異なるため,単純に定常歩容パターン生成と同じ方法で今回受け取った歩行速度指令をn歩目の歩容生成に用いると,n−1歩目とn歩目の切り替え時に重心速度が不連続な歩容となり,ロボットは瞬間的に無限大の推力を発生させようとするため多くの場合転倒するほど不安定になる。そのため,n−1歩目の動作中に受け取った速度指令が前の速度指令と異なる場合には,n−1歩目とn歩目の切り替え時ではなくn歩目とn+1歩目の切り替え時に,今回受け取った歩行速度での歩行となるように歩容を生成する。その方法を以下に述べる。
【0063】
進行方向速度指令が変化したときには,まず,前の速度指令での切替時速度Vx(n-1)と,新しい速度指令での切替時速度Vx(n+1)を求める。前の速度指令と新しい速度指令それぞれについて, (19)式によりC1x,C2xを求め,(24)式に代入すればそれぞれの速度指令での定常歩容切替時速度が求められる。それらがそれぞれ,過渡歩容となるn歩目の初期速度および終端速度となる。過渡歩容は以下の条件を満たす必要がある。
【0064】
【数25】

【0065】
これを解いて
【0066】
【数26】

【0067】
ここで,n歩目の進行方向の着地位置nxzmpを変えることにより(4)式の条件を満たした過渡歩容を生成する。上式の積分係数を用いて,(6)式でt =0とおけば,n歩目の着地位置は次のように与えられる。
【0068】
【数27】

【0069】
ただし,n歩目の初期重心位置nxcog(0)はn−1歩目の終端重心位置n-1xcog(T)として与えられる。また,n+1歩目の着地位置は
【0070】
【数28】

【0071】
とする。ここで,n歩目の終端重心位置nxcog(T)は次式で与えられる。
【0072】
【数29】

【0073】
過渡状態を含む歩行の重心軌道は図5のようになる。また,時系列で見た進行方向過渡歩容の位置,速度,加速度を図8に示す。本発明では,過渡歩容でも定常歩容でも1歩の時間が同じであるため,横方向の歩容は定常歩容の場合と同じでよい。
【0074】
以上のように倒立振子モデルを用いて解析的に得られた数式を用いて,どのように歩容を生成するかを図1のフローを用いて以下に説明する。図1は,本発明の二足歩行ロボットの歩容生成器の歩容生成処理を表すフロー図である。図1で表される歩容生成処理は,一歩ごとに行われ,第n歩目の歩容を表す数式の係数を算出する。算出された係数を用いて,より速い制御周期ごとに重心軌道を算出する。本発明の歩容生成処理では,片脚支持期間すなわち1歩の時間を固定としているので,進行方向の歩容と横方向の歩容を独立に求めることができる。
【0075】
始めに,進行方向の歩容生成処理について説明する。進行方向歩容生成処理は,まずstep1で,その時点で最新の進行方向歩行速度指令を確認する。このときn−1歩目の動作中であるとする。step2に移り,step1で受け取った歩行速度指令が前回すなわちn−2歩目の動作中に受け取った歩行速度指令と比較し,それらが同じ値である場合はstep3の定常歩容パターン生成のフローへ,異なる値である場合はstep5の過渡歩容パターン生成のフローへと移る。step3では,n歩目の重心軌道を決定する。具体的には,受け取った歩行速度指令を用いて,(19)式によりC1x,C2xを求める。以上で定常歩容パターン生成時の歩容生成処理は終了し,n歩目の制御周期ごとの演算では,ここで決定されたC1x,C2xを(6)式に代入して進行方向重心軌道を求める。次に,過渡歩容パターン生成のフローを説明する。まずstep5で,前回受け取った歩行速度指令を用いて,(19)式によりC1x,C2xを求め,これを(24)式に代入して切替時速度Vx(n-1)を求める。step6に移り,新しく受け取った歩行速度指令を用いて,(19)式によりC1x,C2xを求め,これを(24)式に代入して切替時速度Vx(n+1)を求める。step7に移り,n歩目の初期速度がVx(n-1),終端速度がVx(n+1)となるようにn歩目の進行方向着地位置と重心軌道を決定する。ここでは,まず(27)式でnC1xnC2xを求め,次に,これらを(28)式に代入してn歩目の着地位置を求める。以上で過渡歩容パターン生成フローは終了し,n歩目はstep7で求めた進行方向着地位置に着地し,n歩目の制御周期ごとの演算では,重心軌道はnC1xnC2x,C1y,C2yを用いて算出する。
【0076】
次に,横方向の歩容生成処理について説明する。本発明では,横方向の歩容は,常に定常歩容である。step8では横方向の着地位置yzmpを指定しておき,(23)式によりC1y,C2yを求める。右脚支持のときはこの係数をそのまま用い,左脚支持のときは符号を逆にして用いる。n歩目の制御周期ごとの演算では,ここで決定されたC1y,C2yを(9)式に代入して横方向重心軌道を求める。
【実施例2】
【0077】
ここでは,両脚支持期を含むような歩容を生成する場合の例を示す。従来,ZMPが不連続な指令を与えると不安定になると考えられており,ZMPが連続になるように両脚支持期の軌道を生成するものが多い。しかし,そもそも足先を位置制御して動かす場合,着地の瞬間の床反力を想定したとおりに得ることは困難であり,着地した足に受ける床反力は急激に増加するため,ZMPも軸足から着地した足の方へ急激に移動する。そのため,ZMPが連続になるように指令を与えれば,想定したZMPと実際のZMPとのずれが大きくなり,かえって不安定になりやすい。そこで,本技術では,ZMPが常に重心の真下となるように歩容を生成する。この場合,ZMPは着地の瞬間と離床の瞬間に不連続になるが,その方が想定通りの動作を得やすいと言える。また,このように歩容を生成すれば,重心の水平方向加速度は0となり,一定の速度となるため,両脚支持期がないとして生成した歩容に位置軌道が滑らかにつながる。このようにして求めた定常歩容のX軸方向の時系列重心位置・速度・加速度軌道を図9に,Y軸方向の時系列重心位置・速度・加速度軌道を図10に示す。この場合,実施例1と同様の方法で歩行速度指令を与えると,両脚支持期の進行方向速度が平均速度より若干早いため指令よりも歩行速度が速くなるが,通常,歩行速度指令は人間がジョイスティックの傾きで操作するなど感覚的に与えられるものであるため,単に操作量にほぼ比例するだけでよく,正確に指令通りの速度で動作しなくてもよい場合が多い。必要であれば,両脚支持期を含まない歩容と両脚支持期を含む歩容との平均速度の関係を数式的に求め,指令速度を両脚支持期を含まない歩容の平均速度に変換して用いればよい。まず,X軸方向について両脚支持期を含む定常歩容生成方法を述べる。両脚支持期の時間をT2,両脚支持期を含まない歩容の平均速度をと両脚支持期を含む歩容の平均速度をv'xrefとおく。両脚支持期の重心位置の移動量はVx T2となり,vxrefと v'xrefとの関係は次式のように得られる。
【0078】
【数30】

【0079】
歩行速度指令v'xrefが与えられたとき,上式によりvxrefに変換し,実施例1に示した方法で両脚支持期を含まない歩容を求め,これを片脚支持期の歩容として用い,両脚支持期の歩容を加えれば歩行速度指令通りの両脚支持期を含む歩容を生成することができる。このとき,X軸方向の着地位置はストライドが次式となるように決定する。
【0080】
【数31】


次に,Y軸方向について両脚支持期を含む定常歩容の生成方法を述べる。両脚支持期を含まない歩容のスタンスをystance,両脚支持期を含む歩容のスタンスをy'stanceとおく。両脚支持期の重心位置の移動量はVy T2となり,ystanceと y'stanceとの関係は次式のように得られる。
【0081】
【数32】

【0082】
スタンスがy'stanceで指定されたとき,上式によりystanceに変換し,実施例1に示した方法で両脚支持期を含まない歩容を求め,これを片脚支持期の歩容として用い,両脚支持期の歩容を加えれば歩行速度指令通りの両脚支持期を含む歩容を生成することができる。このとき,Y軸方向の着地位置はスタンスがy'stanceで指定された幅となるように決定する。
あるいは,これらの関係をあらかじめ計算機で離散的に求めて多項式等でフィッティングしておき,補正して用いればよい。
【図面の簡単な説明】
【0083】
【図1】本発明の第1実施例を示す歩容生成器の歩容生成処理フロー図
【図2】本発明の歩容生成器で想定している二足歩行ロボットの倒立振子モデルの説明図
【図3】本発明の歩容生成器で想定している二足歩行ロボットの倒立振子モデルの軸足切り替え時の着地位置と重心位置の定義を表す説明図
【図4】本発明の歩容生成器が生成する定常歩容の着地位置と重心軌道を表す説明図
【図5】本発明の歩容生成器が生成する過渡歩容を含む歩容の着地位置と重心軌道を表す説明図
【図6】本発明の歩容生成器が生成する定常歩容のX軸方向の時系列重心位置・速度・加速度軌道
【図7】本発明の歩容生成器が生成する定常歩容のY軸方向の時系列重心位置・速度・加速度軌道
【図8】本発明の歩容生成器が生成する過渡歩容を含む歩容のX軸方向の時系列重心位置・速度・加速度軌道
【図9】本発明の歩容生成器が生成する両脚支持期を含む定常歩容のX軸方向の時系列重心位置・速度・加速度軌道
【図10】本発明の歩容生成器が生成する両脚支持期を含む定常歩容のY軸方向の時系列重心位置・速度・加速度軌道
【図11】従来の二足歩行ロボット制御装置の全体構成を表すブロック図
【図12】従来の二足歩行ロボット歩容生成器を表すブロック図
【図13】従来の歩容生成器で動作する二足歩行ロボットの過渡状態を含む歩行時の着地位置と重心軌道を表す説明図
【符号の説明】
【0084】
600 歩容生成器
610 安定化制御器
620 逆キネマティクス演算器
630 モータ位置制御器
660 モータおよび脚構造
670 エンコーダ
680 各種センサ
111 標準歩容の集合(オフライン)
112 歩容混合器
113 混合歩容瞬時値発生器
114 上体水平位置発生器
115 足平軌道発生器
116 上体高さ決定器
117 ZMP生成器
118 タイマ

【特許請求の範囲】
【請求項1】
脚構造と,
歩行速度指令に従ってベース歩容を生成する歩容生成器と,前記脚構造を動作させるための複数のアクチュエータと,各種状態量を検出して各種センサ情報を生成する各種センサと,前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と,前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と,アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してアクチュエータ状態量情報を生成するためのアクチュエータセンサと,前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え,前記歩容生成器は,少なくとも1歩ごとに前記歩行速度指令を確認しており,前記ベース歩容は,新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり,新しい歩行速度指令が前回の歩行速度指令と異なれば2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において,
前記ベース歩容は,1歩の片脚支持の時間が定常歩容でも過渡歩容でも同じであり,2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるように前記過渡歩容の前後方向着地位置を決定することを特徴とする二足歩行ロボットの制御装置。
【請求項2】
前記歩容生成器は,倒立振子モデルから解析的に与えられる数式を用いて前記ベース歩容を生成することを特徴とする請求項1記載の二足歩行ロボットの制御装置。
【請求項3】
脚構造と,歩行速度指令に従ってベース歩容を生成する歩容生成器と,前記脚構造を動作させるための複数のアクチュエータと,各種状態量を検出して各種センサ情報を生成する各種センサと,前記各種センサ情報を元に前記ベース歩容を修正した修正歩容を生成する安定化制御器と,前記修正歩容をもとに前記複数のアクチュエータそれぞれに対する指令を生成するアクチュエータ指令生成装置と,アクチュエータの位置または速度または力または電流のうちのいずれかまたはすべてを含むアクチュエータ状態量を検出してモータ位置情報を生成するためのアクチュエータセンサと,前記アクチュエータ指令どおりにアクチュエータを動作させるためのアクチュエータ制御器とを備え,前記歩容生成器は,少なくとも1歩ごとに前記歩行速度指令を確認しており,前記ベース歩容は,新しい歩行速度指令が前回の歩行速度指令と同じならば定常歩容であり,新しい歩行速度指令が前回の歩行速度指令と異なれば2歩先の着地時に新しい歩行速度指令での定常歩容切替時速度となるような過渡歩容である二足歩行ロボットの制御装置において,
前記ベース歩容は,両脚支持期を含み,両脚支持期には重心速度を定常歩容切替時速度で一定とし,ゼロモーメントポイントが常に重心の真下にあることを特徴とする二足歩行ロボットの制御装置。
【請求項4】
両脚支持期を含まない歩容の歩行速度を含両脚歩容歩行速度とし,
両脚支持期を含む歩容の歩行速度を無両脚歩容歩行速度とし,
前記歩容生成器は,前記含両脚歩容歩行速度と前記無両脚歩容歩行速度の関係式を保有しており,与えられた含両脚歩容歩行速度の指令を無両脚歩容歩行速度の指令に変換することにより両脚支持期を含む歩容の片脚支持期の歩容を生成することを特徴とする請求項3記載の二足歩行ロボットの制御装置。
【請求項5】
両脚支持期を含まない歩容の横方向着地位置の差を含両脚歩容スタンスとし,
両脚支持期を含む歩容の横方向着地位置の差を無両脚歩容スタンスとし,
前記歩容生成器は,前記含両脚歩容スタンスと前記無両脚歩容スタンスの関係式を保有しており,与えられた含両脚歩容スタンスの指令を無両脚歩容スタンスの指令に変換することにより両脚支持期を含む歩容の横方向着地位置の差を決定することを特徴とする請求項3記載の二足歩行ロボットの制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate