脚式移動ロボットの姿勢安定化制御装置
【構成】 2足歩行の脚式移動ロボットの姿勢安定化制御装置であって、力学モデルを追従する様にロボットを関節変位すると共に、モデルと実ロボットの上体の傾きに偏差が生じたとき、モデルの床反力をずらして姿勢安定化を図る。
【効果】 足裏を接地させたまま大きな復元力を得ることができる。
【効果】 足裏を接地させたまま大きな復元力を得ることができる。
【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は脚式移動ロボットの姿勢安定化制御装置に関し、より具体的には力学モデルを追従する様にロボットが関節変位されると共に、モデルと実ロボットに傾き偏差が生じたとき、実ロボットの床反力をずらす代わりに、モデルの床反力をずらして姿勢の安定を回復する様にしたものに関する。
【0002】
【従来の技術】脚式移動ロボット、特に2足歩行の脚式移動ロボットとしては、特開昭62−97005号、特開昭63−150176号公報記載のものなどが知られている。また脚式移動ロボットを含むロボットの制御については、「ロボット工学ハンドブック」(日本ロボット学会編、1990年10月20日)に詳しい。
【0003】
【発明が解決しようとする課題】ところで、脚式移動ロボット、特に2足歩行の脚式移動ロボットは本来的に安定性が低いことから、外乱などを受けると姿勢が不安定となる。そこでロボットの上体の傾き角度と傾き角速度を検出して姿勢制御する必要がある。その意図から本出願人は先に特願平2−336,420号(平成2年11月30日出願)において、着地候補位置を何点か予め用意しておき、一歩ごとの制御周期でいずれかを選択して目標歩容を切り換える制御を提案している。しかし、この制御によるときは、姿勢が崩れた結果、ZMP(垂直床反力の作用重心点。Zero MomentPoint)が存在可能範囲の限界付近に偏って接地性が失われても、次の一歩で歩容が修正されて姿勢が復元するまではZMPが限界付近に偏ったままなので、それまで接地性を回復できないと言う不都合がある。
【0004】そこで本出願人は近時別の出願(平成4年4月30日、整理番号A92−0116)において、ロボットの力学モデルを基に力学的平衡状態が保証される様に床反力を設定した目標歩容を生成し、モデル化誤差や外乱によって傾き角度と傾き角速度に目標値と実際値との間で偏差が生じたときは、実ロボットの接地部の変位あるいはモーメントを基準歩容から故意にずらすことによって実ロボットの床反力をモデルから計算される目標歩容のそれから故意にずらし、実ロボットの傾きをモデルの傾きに近づける復元力を得る技術を提案している(ここで言う「床反力」は、各脚に作用する床反力を全て合成した、ある作用点に働く合力と合モーメントとを意味する)。
【0005】しかし提案したこの技術によるときは、例えば2足歩行ロボットの片脚支持期では、実ロボットの床反力を故意に大きくずらそうとして足首角度を大きくずらしても、ZMPが足平接地面を超える全床反力を発生することができず、足平の一部が浮いてしまうことがある。従って、実ロボットがモデルに対して大きく傾いてしまった場合には、実ロボットの傾斜を正常に戻すために必要な十分な復元力を得ることができないことがあり、そのときは実ロボットが転倒する。即ち、この技術では目標値と実際値との偏差を縮める復元作用がZMPの存在範囲に制約される。
【0006】図で説明すると、実ロボットの関節変位をモデルの通りに追従する制御においては、実ロボットの傾き角度と傾き角速度とがそれぞれモデルのそれらと一致していれば、図1に実線で示す実ロボットのZMPはモデルから決定される目標ZMPに一致し、ロボットは所期の姿勢で歩行する。しかし、実際には先に述べた様にモデル化誤差や外乱によって破線で示す様に傾き角度と傾き角速度とに偏差が生じ、しかもそのずれは重力の作用によって偏差が大きくなるほど益々大きくなろうとする発散傾向を持つ。ところで実ZMPが目標ZMPからずれると、図2に示す様に、その間の距離xに力Fを乗じたモーメントMが目標ZMPのまわりに生じる。換言すれば、実ZMPが故意に目標ZMPからずれる様に関節変位を制御することにより、所望のモーメントを生じさせることができる。先に提案した技術ではその思想に基づき、傾き(角度と角速度)偏差が生じたときは図2R>2に示す様に、故意に実ZMPをずらして姿勢復元方向にモーメントを生じさせる様にした。しかし、この技術によるときは同図に示す如く、実ZMPをずらすことができる範囲は、足平領域xsole内に限られる。
【0007】従って、この発明の目的は近時提案した技術を改良し、更に効果的な脚式移動ロボットの姿勢安定化制御装置を提案することにある。
【0008】
【課題を解決するための手段】上記した課題を解決するためにこの発明は例えば請求項1項に示す如く、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正する様に構成した。
【0009】
【作用】
【0010】重力作用によって発散しようとする傾き偏差を零に収束させようとする作用は、実ロボットとモデルの床反力の差によって生じるものである。従って、偏差を収束させるためには、実ロボットの床反力をずらす代わりに、モデルの床反力を反対側にずらすことによっても等価な効果を得ることができる筈である。本発明はこの効果を利用する。そして、それによって図3に示す様に、ずらすZMPがモデルのそれであることから、ZMPをずらす範囲はもはや足平直下の領域内に限られることがなく、足平接地面を遠く超えた位置までずらすことができる。言い換えれば、前記した距離xを大きくすることができ、結果的にモーメントを大きくすることができて大きな姿勢復元力を得ることができる。
【0011】以下、更に説明する。分かり易くするために図4に示す様に、足平と1リンクの脚と上体から構成される単純なロボットを考える。脚の質量をm、足首まわりの脚の慣性モーメントをI、脚重心の足首との距離をhとする。上体の質量および慣性モーメントは0とする。また足首の床からの高さも0とする(こうすると、床反力と足首モーメントとが一致して議論が簡単になる)。鉛直方向に対する脚の傾き(即ち、足首と重心とを結ぶ線分の傾き角度)をθlink、鉛直方向に対する上体の傾きをθtrunk 、腰関節の曲げ角をθhip とする。尚、図でθlinkとθtrunk は負、θhip は正とする。更に、足首に作用するモーメントをMact とする( 足首の床からの高さが0であるから、床反力もMact である)。重力加速度はgとする。足首には公知のトルク制御が施されるものとし、腰の曲げ角は変位制御されるものとする。
【0012】上記において、幾何学的関係から数1の式が成立する。
【0013】
【数1】
【0014】このロボットの脚の運動方程式は数2の様になる。
【0015】
【数2】
【0016】これをラプラス変換して数3の式を得る。
【0017】
【数3】
【0018】さて、ここで、この実ロボットと全く同じ構造と全く同じパラメータ値を持つ数式モデルを用意する。その鉛直方向に対する脚の傾き(即ち、前記と同様な足首と重心とを結ぶ線分の傾き)をθmdllink 、鉛直方向に対する上体の傾きをθmdltrunk、腰関節の曲げ角をθmdlhipとし、モデルの足首に作用するモーメント( 即ち、モデルの床反力) をMmdl とすると、幾何学的な数式モデルと動力学的な数式モデルは、数4、数5に示す様になる。
【0019】
【数4】
【0020】
【数5】
【0021】次に、モデルを基に目標歩容を作成する。目標歩容は、一般的にはモデルの初期状態、モデルに加えられる操作量、および拘束条件によって表現される。具体的には、脚の初期傾き角度θreflink0と脚の初期傾き角速度ωreflink0、足首モーメントの時間関数Mref(t)、および上体の傾き角度の時間関数θreftrunk(t)によって表現される。上体の傾き角度の時間関数θreftrunk(t) は、議論を単純化するために、ここでは常に0であるものとする。
【0022】次に、以下の制御を実施する。
【0023】モデルの上体の傾き角度θmdltrunkを常にθreftrunk(t) に一致させる( θreftrunk(t) は0としているので、θmdltrunkも常に0に維持される)。モデルの足首には、Mref(t)と後述する上体の傾き角偏差に応じた操作量Mactfb の和に、実際値Mactに一致する様にトルク制御が実施される。実ロボットの腰の曲げ角度θacthipはモデルの腰の曲げ角θmdlhipを目標変位として変位制御が施される。即ち、θacthipは、θmdlhipに一致する様に制御される。実ロボットの上体には、傾斜センサが備えられており、上体の傾き角θacttrunkが検出される。
【0024】モデルに対する実ロボットの上体傾き角偏差θerr は数6の式で求められる。この例では、実ロボットの上体傾き角偏差θerr は、θmdltrunkが常に0に維持されているから、θacttrunkそのものである。
【0025】
【数6】
【0026】制御の目的は、歩行中においてモデルに対する実ロボットの上体傾き角偏差θerr を0に収束させることである。先に述べた近時提案した技術では、上体の傾き角偏差に応じた操作量Mactfb を算出し、実ロボットの足首モーメントMactに加えることによりフィードバックループを構成していた。これに対し、この発明による制御装置では、上体の傾き角偏差に応じた操作量Mmdlfb をモデルの足首モーメントMmdl に加えることによりフィードバックループを構成する。
【0027】この発明による制御と近時提案した制御の効果を比較するために、Mactfb とMmdlfb から上体の傾き角偏差θerr までのブロック図を図5に示す。但し、この図ではθerr からMactfb へのフィードバックとθerr からMmdlfb へのフィードバックを省略した。
【0028】さて、トルク制御部と変位制御部の伝達関数は、θactlink の挙動に比べて制御の応答性が十分高ければ1とみなすことができる。このとき、図5を、Mactfb,Mmdlfb およびθerr の関係のみに着目して変形すると、図6が得られる。この図から明らかな様に、例えばH(S)をフィードバック則とすると、Mact に数7の式で求められるMactfb をフィードバックすることと、Mmdl に数8の式で求められるMmdlfb をフィードバックすることは、θerr の挙動に対して同一の効果を持つ。
【0029】
【数7】
【0030】
【数8】
【0031】更に、θerr の挙動を決定するものは、Mactfb とMmdlfb との差であるから、数9の式となる様に、H(S)をMactfb とMmdlfb に分配すれば、この手法もやはり同一の効果を持つ。
【0032】
【数9】
【0033】以上が、この発明の根本原理である。実ロボットが複雑なものであっても、そのダイナミクスを忠実に模擬するモデルを用意すれば、実ロボットの床反力とモデルの床反力の差を制御することにより、上記例と全く同一原理で同一の効果を得ることができる。後で実施例で示す様に、動力学モデルを基準歩容からの摂動分で表現しても、θerr とその微分値ωerr が微小であれば、同一の効果が得られる。
【0034】この構成により、近時提案した制御と異なり、実ロボットの床反力ZMP位置を本来あるべき位置から故意にずらす必要がないので、何らかの外乱などによって前記傾き角(角速度)偏差が非常に大きくなっても、接地性を確保したまま(即ち、足裏が浮かない様にしながら)、近時提案した制御では不可能であった大きな姿勢復元作用を得ることが可能となり、短時間で偏差を0に収束させることができる。また、モデルは床と干渉しないから(但し、実ロボットの全床反力をずらすために故意に干渉させる分は除く)、モデルに追従している実ロボットも床と干渉せず、着地衝撃を小さい値に抑制することも可能となる。
【0035】尚、上記において、足平が浮かないためには、Mact(上記例ではMref +Mactfb)は、ある範囲内に制限されなければならない( 例えば、平地歩行では実ロボットのZMPが足平の接地面を超えない範囲に限定される)。従って、Mact がこの制限を超えない様な値をとり、かつ数10の式を満足する様に、Mactfb とMmdlfb は決定されるべきである。
【0036】
【数10】
【0037】尚、Mactfb からθmdllink までのオープンの伝達関数とMmdlfb からθmdllink でのオープンの伝達関数は一致しないので、近時提案した制御とこの発明による制御とでは、θmdllink の挙動に関して特性が異なる。
【0038】
【実施例】以下、脚式移動ロボットとして2足歩行の脚式移動ロボットを例にとって、この発明の実施例を説明する。図7はそのロボット1を全体的に示す説明スケルトン図であり、左右それぞれの脚部リンク2に6個の関節を備える(理解の便宜のために各関節をそれを駆動する電動モータで示す)。該6個の関節は上から順に、腰の脚部回旋用(z軸まわり)の関節10R,10L(右側をR、左側をLとする。以下同じ)、腰のロール方向(x軸まわり)の関節12R,12L、同ピッチ方向(y軸まわり)の関節14R,14L、膝部のピッチ方向の関節16R,16L、足首部のピッチ方向の関節18R,18L、同ロール方向の関節20R,20Lとなっており、その下部には足平22R,22Lが取着されると共に、最上位には上体(筐体24)が設けられ、その内部には制御ユニット26が格納される。
【0039】上記において腰関節は関節10R(L),12R(L),14R(L)から構成され、また足関節は、関節18R(L),20R(L)から構成される。また、腰関節と膝関節との間は大腿リンク32R,32Lで、膝関節と足関節との間は下腿リンク34R,34Lで連結される。ここで、脚部リンク2は左右の足についてそれぞれ6つの自由度を与えられ、歩行中にこれらの6×2=12個の関節(軸)をそれぞれ適宜な角度に駆動することで、足全体に所望の動きを与えることができ、任意に3次元空間を歩行することができる様に構成される。先に述べた様に、上記した関節は電動モータからなり、更にはその出力を倍力する減速機などを備えるが、その詳細は先に本出願人が提案した出願(特願平1−324218号、特開平3−184782号)などに述べられており、それ自体はこの発明の要旨とするところではないので、これ以上の説明は省略する。
【0040】図7に示すロボット1において、足首部には公知の6軸力センサ36が設けられ、足平を介してロボットに伝達されるx,y,z方向の力成分Fx,Fy,Fzとその方向まわりのモーメント成分Mx,My,Mzとを測定し、足部の着地の有無と支持脚に加わる力の大きさと方向とを検出する。また足平22R(L)の四隅には静電容量型の接地スイッチ38(図7で図示省略)が設けられて、足平の接地の有無を検出する。更に、上体24には傾斜センサ40が設置され、x−z平面内とy−z平面内のz軸に対する、即ち、重力方向に対する傾斜角度と傾斜角速度を検出する。また各関節の電動モータには、その回転量を検出するロータリエンコーダが設けられる。更に、図7では省略するが、ロボット1の適宜な位置には傾斜センサ40の出力を補正するための原点スイッチ42と、フェール対策用のリミットスイッチ44が設けられる。これらの出力は前記した上体24内の制御ユニット26に送られる。
【0041】図8は制御ユニット26の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ40などの出力はA/D変換器50でデジタル値に変換され、その出力はバス52を介してRAM54に送られる。また各電動モータに隣接して配置されるエンコーダの出力はカウンタ56を介してRAM54内に入力されると共に、接地スイッチ38などの出力は波形整形回路58を経て同様にRAM54内に格納される。制御ユニット内にはCPUからなる第1、第2の演算装置60,62が設けられており、第1の演算装置60は後で述べる様に目標関節角度を算出してRAM54に送出する。また第2の演算装置62はRAM54からその目標値と検出された実測値とを読み出し、各関節の駆動に必要な制御値を算出し、D/A変換器66とサーボアンプを介して各関節を駆動する電動モータに出力する。
【0042】続いて、この制御装置の動作を説明する。
【0043】図9はその動作を示すブロック図であり、図10ないし図12はその動作を示すフロー・チャートである。図10以降のフロー・チャートを参照して具体的に説明する前に、図9ブロック図を参照してこの制御を概説する。尚、以下ではx方向(進行方向)の制御だけを例にとって説明しているが、y方向(横方向)も同様である。
【0044】図9に示す様に、この実施例においてロボットの幾何学モデルとしては剛体モデルを備え、ロボットの動力学モデルとしては、基準歩容からの上体位置摂動分の挙動を倒立振子で近似したものを備える。倒立振子の質量をm、支点まわりの慣性モーメントをI、支点と重心の距離をhとする。基準歩容は、上体24の位置・姿勢、および両足平22R(L)の位置・姿勢で表現される。両足平22R(L)の位置・姿勢については、一歩ごとの足平軌道パラメータ(例えば、遊脚着地位置や着地時刻など)が、大局的姿勢制御部から目標足平軌道生成部に与えられ、目標足平軌道生成部においてリアルタイムに各瞬間のそれらの位置や姿勢が生成される。尚、この制御においてはロボットの姿勢が崩れたとき、先ずモデルの姿勢をそれに合わせて崩し、次いで安定方向に回復させると共に、実ロボットをそれに追従制御して姿勢安定を回復する様にしていることから、ここで「大局的」なる語は、瞬間々々ではなく、比較的長い時間をかけて滑らかに姿勢回復を最終的に実現する如く、この制御の特質を示す意味で使用する。
【0045】またZMP目標軌道については、一歩ごとのZMP目標軌道パラメータ(例えば、折れ線表現されているときは折れ点の座標や時刻)が、大局的姿勢制御部からZMP目標軌道生成部に与えられ、ZMP目標軌道生成部においてリアルタイムに各瞬間のその位置が算出される。上体24の位置・姿勢については、ZMP目標軌道を満足する様に、予めオフラインで作成されて時系列データとして大局的姿勢制御部に記憶され、歩行時に吐き出される。尚、以降、足平軌道パラメータとZMP目標軌道パラメータなど歩容の特徴を表現するものを総称して「歩容パラメータ」と呼ぶ。
【0046】次いで、幾何学モデルに対する実ロボットの姿勢の傾き角偏差θerr と角速度偏差ωerr を検出する(実ロボット1の関節変位が忠実にモデルに追従すると考えられるならば、姿勢の傾き角(角速度)偏差は、上体24の傾き角(角速度)偏差で代表して差し支えない。あるいは重心位置のずれを用いても良い。)。
【0047】これらを状態量として、これらを0に収束させようと働く安定化制御則から求められる制御操作量(状態フィードバック量)は、モーメントの次元で検出されて倒立振子型動力学モデルの支点に与えられる。ここで、この操作量を先に述べたと同様に、モデル操作モーメントMmdl と呼ぶ。Mmdl は、倒立振子型動力学モデルが受ける床反力モーメントであるとも言える。倒立振子型動力学モデルは、Mmdl と重心に作用する重力の影響を受けて運動する。倒立振子の状態量、即ち、傾き角θmdl とその角速度ωmdl の挙動は、過去の状態と支点に加えられるモーメントMmdl を基に逐次計算される。
【0048】数11の式により、上体24のx方向のずれΔxが求められる。但し、htrunk は上体24の高さ(より正確に表現すれば、床から腰関節1(L)までの高さ)とする。
【0049】
【数11】
【0050】ロボット幾何学モデルの上体位置は、歩容パラメータの上体位置xにΔxが加えられた位置に指定される。
【0051】また、先に述べた近時提案した技術で用いられるコンプライアンス制御によって、ZMP目標位置まわりの実床反力モーメントMact に応じて、基準歩容の足平位置・姿勢が修正され、それが幾何学モデルに与えられる。図9で用いられている制御では、Mact から床反力モーメントフィードバック則によって仮想床傾斜角指令θctrlが求められ、モデルの足平位置は、モーメント足平軌道生成部で生成される基準歩容の足平位置をZMP目標位置を中心として仮想床傾斜角指令の分だけ、座標回転させられる。これにより、実ロボット1の姿勢傾きの挙動は、基準点(例えば、ZMP目標位置)を支点とし、支点に床から傾きに比例した床反力モーメントが発生する倒立振子に近似される。
【0052】以上によって求められ、修正された上体位置・姿勢から、逆キネマティクス計算によって、幾何学モデルの各関節の変位が求められる。尚、このロボットでは可動部はすべて回転自由度しかないから、関節の変位はすべて角度で表現される。実ロボット1には、その関節変位をロボット幾何学モデルの関節変位に追従させる制御システムが備えられる。
【0053】以上のシステムにおいて、状態量θerr とωerr に応じたモデル操作モーメントMmdl をロボット動力学モデルに与えるフィードバック制御は、先に作用欄で説明した原理によって、θerr とωerr を0に収束させる様に作用する。即ち、実ロボットとモデルの傾きが一致する様に作用する。
【0054】ここで、図9において、倒立振子型動力学モデルにモデル操作モーメントMmdl が加わって、モデルの傾きθmdl とその角速度ωmdl が中立点(直立状態)から一旦ずれると、このモデルは不安定系であるので、θmdl ,ωmdl は発散する。そこで、状態量θmdl ,ωmdl に応じて、次の遊脚着地位置または着地タイミングを変更することによってθmdl ,ωmdl の発散を抑制する。
【0055】ところで、基準歩容におけるある一歩(これを「第1歩容」と呼ぶ)において着地位置を変更すると、次の一歩(これを「第2歩容」と呼ぶ)の初めでは、支持脚足平の位置だけが、基準の第2歩容の位置からずれる。このことを、第2歩容の基準座標から見ると、支持脚足平は基準歩容のままで、遊脚足平と上体の位置が変更量だけずれたことに相当する。そのまま放置すると、第1歩容と第2歩容の境界が不連続になる。そこで、ロボット幾何学モデルの歩容が連続となる様に、歩容の変わり目において次の操作を行う。
【0056】遊脚軌道は初期位置や次期着地位置などの足平軌道パラメータで与えられているので、第2歩容の足平軌道パラメータの一つである初期遊脚位置を−Δxfoottotal だけずらす。第2歩容の上体軌道はそのままとし、その代わりに倒立振子型動力学モデルの傾き角θmdl を−Δxfoottotal/htrunk だけずらす。この結果、ロボット幾何学モデルの歩容の連続性を保ちつつ、倒立振子型動力学モデルの状態量の一つである傾き角θmdl を−xfoottotal/htrunk だけ操作することができる。即ち、着地位置を変更することにより、倒立振子型動力学モデルの状態量を制御することができる。
【0057】上記を前提とし、以下図10フロー・チャートを参照して、着地位置を進行方向に変更した場合のモデル傾き制御アルゴリズムを説明する。
【0058】先ず、S10において倒立振子型モデルを安定な直立位置に初期化し、S12に進んで歩数カウンタが基準歩容で設定した目標歩数になるまで、S14からS26を繰り返す。ここで、用語を次の様に定義する。
1.一歩の歩容は、両脚支持期の初めから次の遊脚が着地するまでの期間を指す。
2.ある歩容の支持脚とは、その歩容の片脚支持期に支持脚となる脚とし、遊脚とは、その歩容の片脚支持期に遊脚となる脚とする。
3.歩容の基準座標を、その一歩の支持脚の足平接地点にとることとする。
【0059】S14では今回の歩容パラメータをセットし、S16に進んで前回の歩容の修正後の着地位置と前回の歩容の基準歩容の着地位置との差を前記したΔxfoottotal とする。次いで、S18に進んで今回の歩容の基準初期遊脚位置からΔxfoottotal を減算し、S20に進んで倒立振子型モデルの傾斜角θmdl から、Δxfoottotal /htrunk だけ減算する。
【0060】次いでS22に進み、一歩分のサンプリング回数だけS24とS26を繰り返す。即ち、S24で1周期が経過したことを確認した後、S26に進んで姿勢演算および制御のサブルーチンを実施する。
【0061】図11はそれを示し、先ずS100において実ロボットの傾斜を計測し、前記した様に幾何学モデルに対する姿勢傾き角偏差θerr と傾き角速度偏差ωerr を求め、S102に進んでそれらから前記したモデル操作モーメントMmdl を求め、S104に進んでMmdl を倒立振子型モデルの支点に加えてモデルの今回の傾斜角θmdl と角速度ωmdl を求める。次いでS106に進み、前記した理由から上体ずれΔxを図示の如く求め、S108に進んで着地までに時間の余裕があれば、倒立振子型モデルの挙動を予測して着地目標位置パラメータの修正量Δxfootを求め、基準歩容の着地目標位置パラメータにΔxfootを加算し、着地目標位置パラメータを修正する。
【0062】これについては先にも述べたが、更に敷衍すると、着地位置の変更量は、次の一歩の間に、倒立振子型動力学モデルの傾き角θmdl と傾き角速度ωmdl 、および幾何学モデルに対する実ロボットの傾き偏差θerr と傾き角速度偏差ωerr が、なるべく0に収束する様に決定するべきである。そのためには、θmdl ,ωmdl ,θerr ,ωerr などの現在状態から、着地位置の変更により、次の一歩の間にθmdl ,ωmdl ,θerr ,ωerr がどの様な挙動を示すかを推測しなければならない。
【0063】θerr とωerr はこの発明の根本原理によって0に収束するので、やや予測精度が低下するが、θerr とωerr の現在状態を無視しても支障ない。つまり、θmdl とωmdl の現在状態だけから予測計算して着地位置の変更量を決定しても差し支えない。あるいは、予め、現在状態と着地位置の変更量との関係をシミュレーションによりマップ化しておいて、実際の歩行時にこのマップを用いて着地位置の変更量を決定しても良い。
【0064】θmdl とωmdl の現在状態だけから着地位置の変更量を決定する手法としては、竹馬ロボットなどで行われている様に、倒立振子型動力学モデルの着地瞬間の全エネルギ予測値が直立時の全エネルギに一致する様に、変更量を決定する手法が一般的に知られている。以下にその手法を説明する。
【0065】着地瞬間の全エネルギ予測値が直立時の全エネルギに一致するためには、予測される着地直後のθmdl とωmdl が数12の式を満足する様に、着地位置が決定されなければならない。
【0066】
【数12】
【0067】また、直立状態に近づいていくために、θmdl とωmdl が逆極性でなければならないから、即ち、数13の式を満足しなければならない。
【0068】
【数13】
【0069】数12式、数13式より、数14の式が得られる。
【0070】
【数14】
【0071】数14式を近似すれば、数15の式が得られる。
【0072】
【数15】
【0073】つまり、予測される直立直後のωmdl とθmdl との比が、数15式で定められる比になる様に着地位置修正量Δxfootが決定されれば良い。着地位置を修正しない場合の予測される着地直後のωmdl とθmdl は、倒立振子で現在のωmdl ,θmdl ,θerr ,ωerr から動力学演算により求めることができ、それをωmdleとθmdleとする。(特に、ωmdl およびθmdl に比べてθerr およびωerr が無視できるほど小さい場合には、解析的に容易に求めることができる。)。θmdleをωmdle/平方根(2mgh/I)に修正できれば、数15式を満足する。そのためには、前述の様に、着地位置をΔxfootだけ修正することによって、θmdlを−Δxfoot/htrunk だけ操作することができるので、着地位置修正量Δxfootを数16の式より決定すれば良い。
【0074】
【数16】
【0075】以上の様に、着地位置修正量Δxfootが決定され、着地目標位置パラメータxfootは、歩容の途中で修正される。この修正は、着地目標位置を変更したときの足平の軌道生成計算が大変な場合には、一歩ごとに1つずつだけ実行されることとなるが、足平の軌道を本出願人が近時提案した別の技術(平成4年5月22日出願、整理番号A92−0493)を用いて発生させれば、着地目標位置の変更をサンプリング周期毎に行うことができる。なぜなら、この技術を用いれば、着地目標位置パラメータの変更をサンプリング周期ごとに行っても、足平の軌道は、そこからまた滑らかに修正されるからである。但し、着地時刻に近づいてから着地位置を大幅に変更すると、遊脚軌道が急激に変わるので、着地までの残り時間に応じて再修正の可能限界量を求め、それを制限値として修正量の変化率にリミットをかけるのが望ましい。
【0076】図11フロー・チャートにおいては次いでS110に進んでZMP目標軌道パラメータからZMP目標位置を算出し、S112に進んで着地目標位置パラメータなどの足平軌道パラメータから両足平の位置・姿勢を算出し、S114に進んで基準歩容の上体位置にθmdl とhtrunk の積を加算した位置を上体目標位置とし(上体の目標姿勢は基準通りとする)、S116に進んでモデル足平修正によるコンプライアンス制御を行う。
【0077】図12はそれを示すサブルーチン・フロー・チャートであり、先ずS200において6軸力センサ36の検出値を取り込み、S202に進んでそれからZMP目標位置まわりの実床反力モーメントMact を求め、S204に進んで図示の様に座標回転角θctrlを算出し、S206に進んでその値だけ両足平の位置・姿勢をZMPまわりに回転させ、幾何学モデルの両足平の位置・姿勢とする。尚、この制御は先の出願(平成4年4月30日)に詳細に述べられているので、ここではこの程度の説明に止める。
【0078】次いで、図11フロー・チャートに戻り、S118に進んで上体目標位置・姿勢と修正された足平位置・姿勢から幾何学モデルの関節変位を求め、S120に進んで実ロボットの関節変位を幾何学モデルの変位に追従させる制御を行う。
【0079】この実施例は上記の如く、モデルに対する実ロボットの傾き制御と倒立振子モデルの傾き偏差の一歩ごとの離散制御により、安定な歩行を実現することができる。更に、故意にずらすZMPをモデルのそれとしたので、先に提案した制御に比べてZMPの移動範囲を大きくとることができ、姿勢復元力を大きくすることができる。従って、何らかの外乱によって傾き偏差が非常に大きくなっても、接地性を確保したまま、姿勢を安定に回復することができる。また、姿勢が崩れたときはモデルの姿勢をそれに応じて一旦崩し、その後に姿勢を回復させると共に、実ロボットをそのモデルの姿勢を追従する様に制御することから姿勢回復を滑らかな動きで実現することができる。更に、モデルは床と干渉しないことから、モデルに追従する実ロボットも床と干渉することがなく、また着地衝撃も小さい値に抑制することができる。
【0080】図13はこの発明の第2実施例を示すブロック図である。第1実施例では倒立振子モデルの傾斜制御において、着地位置を操作量としていたが、第2実施例ではモデル操作モーメントに、新たに倒立振子モデルの傾斜に応じた操作量を加えて安定化を図る様にした。
【0081】また第2実施例においては、幾何学モデルに対する実ロボットの傾き角偏差θerr をPDなどのフィードバック則H1(S)を通して得られる実傾き偏差制御要求制御量Merrdmd(即ち、Merrdmd=H1(S)θerr )と、倒立振子モデルの傾斜角θmdl をフィードバック則H2(S)を通して得られるモデル傾き制御要求制御量Mmdldmd(即ち、Mmdldmd=H2(S)θmdl )をリミッタおよび分配器に通して実モーメント操作量Mactcomm とモデルモーメント操作量Mmdl に分配する様にした。
【0082】図14にリミッタおよび分配器を示す。この例においては、実モーメント操作量Mactcomm は、MerrdmdとMmdldmdの和にリミッタをかけることによって求められる。このリミッタ作用により、実ロボットの床反力が存在可能領域から超えない様に管理され、実ロボットの接地性が確保される(例えば、平地歩行であれば、床反力のZMPが接地面を含む最小凸多角形の中にあることが、床反力の存在可能条件である。)。
【0083】モデルモーメント操作量Mmdl は、Mmdldmdに前記リミッタの入力超過分を加えることによって求められ、第1実施例と同様、倒立振子型ロボット摂動動力学モデルに入力される。また、ZMPまわりの実床反力モーメントMact から床反力モーメントフィードバック則によって、床反力モーメントフィードバック操作量θcompが求められる。Mactcomm とコンプライアンス定数Kcompの積に床反力モーメントフィードバック操作量θcompを加えることにより、仮想床傾斜角指令が求められる。幾何学モデルの足平位置は、目標足平軌道生成部で生成される基準歩容の足平位置をZMP目標位置を中心として、仮想床傾斜角指令の分だけ、座標回転させられる。
【0084】実ロボットの傾き角偏差θerr の挙動を決定するものは、ZMPまわりの実床反力モーメントMact とモデルモーメント操作量Mmdl の差である。ところで、コンプライアンス制御が十分に柔らかければ、Mact は実モーメント操作量Mactcomm にほぼ一致する。従って、この場合、実ロボットの傾き角偏差θerr の挙動を決定するものは、Mactcomm とMmdl の差であると言っても良い。Mactcomm とMmdl の差は、前記リミッタが働いても働かなくても常にMerrdmdとなるので、幾何学モデルに対する実ロボットの傾き角偏差θerr を0に収束させる制御は常に働く。
【0085】一方、モデルの傾き角θmdl の挙動を決定するものは、Mmdl である。Mmdlは、前記リミッタが働いていないときにはMmdldmdに一致し、モデルの傾きを0に収束させる制御が正常に働く。前記リミッタが働いているときには、幾何学モデルに対する実ロボットの傾き角偏差θerr を0に収束させる制御を優先した上で、可能な範囲でモデルの傾きを0に収束させようと作用する。更に、Merrdmdがリミッタ設定値に比べて過大である場合にはモデルの傾き制御が犠牲になり、モデルの傾きは発散しようとすることもある。即ち、実ロボットのZMPが存在可能領域の限界までまだ余裕があるときのみ、倒立振子モデル傾斜制御が実行される。従って、瞬間的な外乱や微小外乱に対しては、倒立振子モデルが直立状態に回復できるが、大きな外乱が継続すると、倒立振子モデルが直立状態に回復できなくなり、ロボット幾何学モデルの姿勢が大きく崩れて転倒する。しかし、足平の軌道が基準歩容通りであるので、階段や飛び石の上を歩行するときの様に、着地位置が制約されている際には、第2実施例は好適である。
【0086】ここで、倒立振子モデルの傾き制御ゲインの設定について説明する。モデルの傾き角θmdl を0に収束させる制御則を、例えば数17の式で与えるものとする。
【0087】
【数17】
【0088】単純倒立振子を、現在状態から、支点にモーメントを加えず、フリーな運動をさせるときに、直立状態で静止するためには、現在の全エネルギが直立静止状態の全エネルギに一致していなければならない。つまり、数18の式が成立していなければならない。
【0089】
【数18】
【0090】また、直立状態に近づいていくために、ωmdl とθmdl が逆極性でなければならないから、数19の式を満足しなければならない。
【0091】
【数19】
【0092】数18、数19式より、数20の式を得る。
【0093】
【数20】
【0094】数20式を近似して数21の式を得る。
【0095】
【数21】
【0096】数21式を満足した状態にあれば、倒立振子モデルの支点にモデル操作モーメントMmdl を加えなくても、直立状態で静止する。従って、数21式を満足する状態でモデル操作モーメントMmdldmdが0になる様に制御則を設定すれば、倒立振子モデルに必要以上の余分なモデル操作モーメントMmdl を発生させず、直立状態に収束させることができる。この様な制御則で数17の式を満足するものは、数22の式である。
【0097】
【数22】
【0098】数22式を満足していても、Kωをやや小さめに設定すると、倒立振子の挙動にオーバーシュートが発生する。Kωをもっと小さく設定すると、重力モーメントに負けて直立状態に復元できなくなる。直立状態に復元できてかつオーバーシュートが発生しない様にするためには、フィードバックループの特性根が負の実数になることであり、そのためには、Kωは次の数23式を満足しなければならない。
【0099】
【数23】
【0100】数22と数23の式を満足する様にゲインを設定すれば、Mmdldmdの絶対値が小さく抑えられてMactcomm の絶対値も小さく抑えられるので、実ロボットの接地性が高くなる。
【0101】図15から図17は第2実施例の制御を示すフロー・チャートであり、うち図15はS300からS310にメイン・ルーチンを、図16はS400からS422にその姿勢演算および制御のサブ・ルーチンを、図17はS500からS506にそのコンプライアンスおよび姿勢安定化制御のサブ・ルーチンを示す。第1実施例と相違する点に焦点をおいて説明すると、図15R>5フロー・チャートにおいてS304とS306との間には第1実施例の図10のS16からS20に相当するステップは存在しない。これは、姿勢演算および制御のサブルーチンで着地位置修正を行っていないためである。また、図16の姿勢演算および制御サブルーチン・フロー・チャートにおいては、先に述べた構成からS402からS406が追加されると共に、第1実施例の図1111のS108に相当するステップは削除される。また図17サブルーチン・フロー・チャートにおいてはS504の座標回転角の演算で先に述べた様に、実ロボット操作モーメントMactcomm にコンプライアンス定数Kcompを乗じたものが加算される。尚、残余の構成は、第1実施例と相違しない。
【0102】第2実施例は足平の軌道が基準歩容通りであることから、階段や飛び石の上を歩行するときなど、着地位置が制約される際に特に好適である。
【0103】図18はこの発明の第3実施例を示すブロック図である。第3実施例では、倒立振子モデルの傾斜制御において、第1実施例と第2実施例の制御を併用した。倒立振子モデルを直立状態に回復させるために、瞬間的な外乱や微小外乱に対しては、主に倒立振子モデルにモーメントを加える制御が働き、大きな外乱が継続すると、主に着地位置や着地タイミングを修正する制御が働く。
【0104】第3実施例においても、着地位置や着地タイミングの修正量は、第1実施例と同様、倒立振子モデルが直立状態に戻る様に決定される。第1実施例に比べると、モデル傾き制御要求制御量Mmdldmdの影響がある分だけ、モデルの挙動予測演算が複雑になる様に見えるが、モデル傾き制御要求制御量Mmdldmdにより、倒立振子モデルの発散が抑えられるので、むしろ予測精度が高いとも言える。特に、第2実施例で述べた倒立振子モデルの傾き制御ゲインの設定値(数22式と数23式を満足するゲイン)を採用すれば、倒立振子モデルの全エネルギが直立時の全エネルギに一致しているときには、モデル傾き制御要求制御量Mmdldmdが0になるので、第1実施例で説明した、倒立振子型動力学モデルの着地瞬間の全エネルギ予測値が直立時の全エネルギに一致する様に、着地位置変更量を決定する手法をそのまま活用することができる。
【0105】図19は第3実施例のS600からS616よりなるメイン・ルーチン・フロー・チャート、図20R>0はS700からS724よりなるその姿勢演算および制御サブルーチン・フロー・チャート、図21はS800からS806よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートである。図19のメイン・ルーチン・フロー・チャートは第1実施例のそれと、図21のサブルーチン・フロー・チャートは第2実施例のそれと同様である。また図20の姿勢演算および制御サブルーチン・フロー・チャートは、第2実施例と比べて、着地目標位置パラメータを修正するステップS712が追加されている点で異なるのみである。尚、残余の構成は従前の実施例と相違しない。
【0106】第3実施例の場合、前述の如く、倒立振子モデルを直立状態に回復させるために、瞬間的な外乱や微小外乱に対しては主に倒立振子モデルにモーメントを加える制御が働き、大きな外乱が継続すると主に着地位置や着地タイミングを修正する制御が働くので、第1実施例に比べ、着地位置の変更量が少なくなり、歩行経路のふらつきが小さくなると共に、第1実施例、第2実施例よりも安定度が一層向上する。
【0107】図22はこの発明の第4実施例を示すブロック図である。第1から第3までの実施例では、ロボットのモデルを、基準歩容からの上体位置摂動分に対する動力学モデルと、上体や足平位置と関節角の関係を表現する幾何学モデルに分割して備えていた。それに対し、第4実施例では、剛体リンクで構成される動力学・幾何学複合モデルを備える様にした。その他は後で述べる様に、大局的姿勢制御部の詳細が異なることを除くと、第1実施例とほぼ同一構成である。
【0108】第4実施例において、歩容は、ZMP目標位置、および両足平の位置・姿勢で表現される。両足平の位置・姿勢については、一歩ごとの足平軌道パラメータ(例えば、遊脚着地位置や着地時刻など)が、大局的姿勢制御部から目標足平軌道生成部に与えられ、目標足平軌道生成部において、リアルタイムに各瞬間のそれらの位置や姿勢が算出される。ZMP目標軌道については、一歩ごとのZMP目標軌道パラメータが、大局的姿勢制御部からZMP目標軌道生成部に与えられ、ZMP目標軌道生成部においてリアルタイムに各瞬間のその位置が算出される。上体の位置・姿勢については、第1実施例ないし第3実施例ではZMP目標軌道を満足する様に、予めオフラインで作成された時系列データとして大局的姿勢制御部に記憶されていたが、第4実施例ではロボットの幾何学・動力学モデルにてモデルの両足平の位置・姿勢、ZMP目標軌道およびZMP目標位置まわりのモデル操作モーメントを基に、リアルタイムに生成される。
【0109】第4実施例のロボットモデルでは、両足平の位置・姿勢は、足平軌道生成部から与えられた足平の位置・姿勢を仮想床傾斜指令θctrlだけ座標回転させた位置・姿勢に変換される。ロボットモデルでは、上体の位置・姿勢が、ZMP目標位置に発生する床反力モーメントがMmdl となる様に動力学計算によって求められ、同時に各関節の変位が求められる。尚、Mmdl が0のときには、ロボットモデルのZMP位置はZMP目標位置に一致するが、Mmdl が0でないときには、ZMP目標位置にモーメントが発生していることから、もはやZMP目標位置はロボットモデルのZMP位置ではなく、ロボットモデルのZMP位置は、ZMP目標位置からずれたところに存在する。
【0110】モデルの床面には、あらゆる全床反力が発生可能であると仮定する。即ち、モデルの接地面には吸着力も発生可能であるとし、例えば、平地歩行においてZMPが接地面を含む最小凸多角形を超えても、接地面が離れない(脚と床の間の拘束条件が所期通り確保される)ものとする。この様に想定することによって、モデルに対する実ロボットの傾き偏差制御において、実ロボットの全床反力を操作するだけでは不可能であった大きな復元作用も発生可能となる。従って、フィードバックゲインを大きくして短時間で偏差を0に収束させることができる。つまり、実ロボットは、関節変位のみならず、傾きまでもモデルに高応答で追従する。但し、モデルの全床反力の床法線方向成分は、上向き(正)になる様にとるべきである。なぜなら、そうしないと、実ロボットが一瞬床から浮いてしまう恐れがあるからである。
【0111】第4実施例においては、大局的姿勢制御部において、モデルの挙動やモデルに対する実ロボットの傾き偏差などから、次の着地位置、着地タイミングまたはZMP目標軌道などの歩容パラメータを決定する。第1から第3実施例では基準歩容が存在するので、基準歩容からのずらし量を決定するだけで済むが、第4実施例においては基準歩容が存在しないので、歩容パラメータの決定が難しくなる。決定をなるべく容易にするためには、ある基準点から見たロボット全体の角運動量や重心位置などのマクロな状態量に着目すれば良い。局所的姿勢制御がこれらのマクロな状態量にあまり影響を与えない場合には、これらのマクロな状態量だけから将来の挙動を予測し、それらのマクロな状態量が発散しない様に歩容パラメータを決定すれば良い。具体的には、先に述べた竹馬型2足歩行ロボットの着地位置制御で行われている手法を用いたり、シミュレーションによりマクロな状態量に応じた適切な着地位置を予め学習させておく手法などが考えられる。
【0112】第4実施例のロボットにおいては、ゆっくり歩行する場合には遊脚の反動が無視でき、単純倒立振子で近似することができる。ロボットが単純倒立振子で近似できる場合には、角運動量を縦軸に、重心位置を横軸にとったときの軌跡は、双曲線上を移動することが知られているので、挙動が解析的に予測でき、着地位置決定も解析的に行うことができる。竹馬型2足歩行ロボットの着地位置制御では、これを利用している。第4実施例のロボットが高速で歩行する場合(例えば、3km/hなど)には、遊脚の反動が無視できなくなり、単純倒立振子で近似できなくなる。この場合には、解析的な決定法ではなく、マクロな状態量に応じた適切な着地位置を予め学習させる手法などが有効である。学習には、人工知能、ファジー、ニューロなどが使用できよう。
【0113】図23は第4実施例のS900からS910よりなるメイン・ルーチン・フロー・チャートを、図2424はS1000からS1014よりなるその姿勢演算および制御サブルーチン・フロー・チャートを、図25はS1100からS1106よりなるそのコンプライアンス制御サブルーチン・フロー・チャートを示す。図25R>5サブルーチン・フロー・チャートは、第1実施例のそれと同様である。
【0114】第4実施例においては、第1実施例に比べて動力学モデルがより精密になっているので、より正確な姿勢制御が実現される。特に、大きな外乱が加わってモデルの姿勢が大幅に崩れても、転倒することなく、復元することができる。
【0115】図26はこの発明の第5実施例を示すブロック図である。この例において大局的姿勢制御部はなく、歩容パラメータ決定部は、予め外乱がない状況で長期的に安定な歩行が実現できる様に設定された一連の歩容パラメータを吐き出しているだけである。
【0116】第5実施例において、ロボットの幾何学・動力学モデルとしては、第1モデルと第2モデルの2つが備えられる。第1モデルと第2のモデルの初期状態は、前記の予め設定された一連の歩容の初期状態に一致させておく。第1モデルには目標足平軌道とZMP目標軌道が与えられ、ZMP目標軌道を満足する様に上体軌道が生成される。歩容パラメータ決定部が上に述べた様に、予め外乱がない状況で長期的に安定な歩行が実現できる様に設定された一連の歩容パラメータを吐き出しているので、第1モデルの挙動は、その通り忠実に再現する。第2モデルには、目標足平軌道とZMP軌道以外に、第1モデルと第2モデルの上体位置の差を0に収束させる制御の操作量と、第2モデルと実ロボットの姿勢傾斜ずれを0に収束させる制御の操作量が、ZMP目標位置まわりにモーメントとして加えられる。
【0117】第2モデルに対する実ロボットの傾き角偏差θerr をPDなどのフィードバック則H1(S)を通して得られる実傾き偏差制御要求制御量Merrdmdと、第1モデルに対する第2モデルの上体位置ずれをフィードバック則H2(S)を通して得られるモデル上体位置制御要求制御量Mmdldmdを第2実施例で用いたと同様なリミッタおよび分配器を通して、実モーメント操作量Mactcomm とモデルモーメント操作量Mmdl に分配する。
【0118】ZMPまわりの実床反力モーメントMact から床反力モーメントフィードバック則によって床反力モーメントフィードバック操作量θcompが求められる。Mactcomm とコンプライアンス定数Kcompの積に床反力モーメントフィードバック操作量θcompを加えることにより、仮想床傾斜角指令θctrlが求められる。第2モーメントの足平位置は、目標足平軌道生成部で生成される足平位置をZMP目標位置を中心として、仮想床傾斜角指令の分だけ、座標回転させられる。
【0119】第1モデルと第2モデルは、第4実施例のそれと同一で良い。但し、第1モデルにはモデルモーメント操作量Mmdl と仮想床傾斜角指令θctrlが与えられないので、第1モデルを第2モデルと同一のプログラムで作るならば、第1モデルに入力されるMmdl とθctrlを0にしておけば良い。
【0120】図27は第5実施例のS1200からS1210よりなるメイン・ルーチン・フロー・チャートを、図28はS1300からS1318よりなるその姿勢演算および制御サブルーチン・フロー・チャートを、図29はS1400からS1406よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートを示す。第2実施例のそれらとほぼ同様である。
【0121】第2実施例では予め上体軌道が生成されているのに対し、第5実施例では目標ZMP軌道を満足する様に、第1モデルにおいてリアルタイムに上体軌道が生成される。第5実施例の効果は、本質的に第2実施例と同じである。ただ、動力学モデルがより忠実になっているため、姿勢安定化制御の精度が高く、モデルの姿勢が大きく崩れても復元することができる。
【0122】図30はこの発明の第6実施例を示すブロック図である。第6実施例ではモデルの姿勢安定化において、第4実施例と第5実施例の制御を併用した。第6実施例においては、第2モデルの角運動量や重心位置などのマクロな状態量をある範囲に収めるために、瞬間的な外乱や微小外乱に対しては主に実ロボットと第2モデルにモーメントを加える制御が働き、大きな外乱が継続すると、主に着地位置や着地タイミングを変更する制御が働く。
【0123】第1モデルは、歩容の切り替わり目において、第2モデルの状態に合わせる(つまり、一歩ごとの歩容の初めに強制的に第1モデルの初期状態を第2モデルのそのときの状態に合わせる)。こうしないと、過大な外乱が長期的に実ロボットに加わって、第2モデルに対する実ロボットの傾斜ずれが大きくなったときに、この傾斜ずれを修正しようとして第2モデルに大きな操作モーメントが作用すると、第1モデルと第2モデルの姿勢ずれを0に収束させる制御が十分効かず、第1モデルと第2モデルの姿勢ずれが発散してしまうからである。但し、第1モデルの初期状態を第2モデルに急激に合わせると、第1モデルと第2モデルの姿勢ずれを0に収束させる制御の操作量が急激に変化する恐れがあるので、第1モデルと第2モデルの姿勢ずれを0に収束させる制御のフィードバックゲインを歩容の変わり目の直前に連続的に下げておいた方が良い。
【0124】第4実施例では不確定な外乱が実ロボットに加わることによって、モデルの挙動も不確定な挙動を示すため、モデルの将来挙動の予測精度が低下する。第6実施例では、一歩の間、第2モデルは第1モデルの挙動に収束しようとする。一歩の間、第1モデルの挙動には実ロボットに加わる外乱の影響を受けないので、第1モデルの挙動は、確定的に予想できる。従って、実ロボットに加わる外乱によって第2モデルの挙動が変化しても、しばらくすれば第1モデルの挙動に収束しようとするので、第2モデルの挙動の不確定性が減少する。即ち、第6実施例では、第4実施例に比べ、着地位置などの歩容パラメータを操作することによる姿勢安定化作用がより確実に働くこととなる。
【0125】図31は第6実施例のS1500からS1510よりなるメイン・ルーチン・フロー・チャート、図32はS1600からS1620よりなるその姿勢演算および制御サブルーチン・フロー・チャート、図33はS1700からS1706よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートである。
【0126】第6実施例の場合は、第4実施例に比べ、モデルの将来の挙動の不確定性が小さいので、より確実かつ長期的な姿勢安定化が実現される。
【0127】尚、第6実施例では、第1モデルと第2モデルの偏差を歩容の切り替わり目で強制的に0にしていたが、それ以外の時期でも偏差が過大になったとき、第1モデルと第2モデルロボットの偏差を0に収束させる様に第1モデルに操作モーメントを加える制御を実行しても良い。但し、第1モデルに操作モーメントを加えると、上体の位置がずれて第1モデルの姿勢が崩れようとする。そこで、姿勢の崩れを防ぐために、第1モデルに操作モーメントを加えるときには同時に着地位置などの歩容パラメータも修正する。ところで、着地直前に、着地位置や着地時期を大きく変更すると、脚の挙動が急激に変化する。即ち、着地までの時間余裕が少なくなってくるにつれ、着地位置や着地時期の修正可能量は小さくなる。従って、第1モデルに操作モーメントを加え、それに見合った着地位置などの修正を行う際には、着地までの時間余裕が少なくなるにつれ、操作モーメントの印加量の制限値も小さくするべきである。
【0128】更に、第5、第6実施例においては、動力学モデルが2段に構成されている。これを更に段数を増やし、実ロボットとモデルとの偏差、およびモデルと他のモデルとの偏差を制御する様にしても良い。上位のモデル(即ち、多段連結モデルのうちで実ロボットから遠く離れているモデル)ほど実ロボットに作用する外乱の影響が小さくなり、モデルの挙動予測精度が高くなる。従って、上位のモデルの挙動を基に着地位置修正量を求めれば、上位のモデルの姿勢安定性が確保でき、それより下位のモデルはモデル操作モーメントを制御することによって上位のモデルに追従するので、結果的に実ロボットと全モデルすべての姿勢安定性が確保される。摂動モデルを用いた場合も同様である。
【0129】ここで、第2実施例などで用いたリミッタおよび分配器について説明を補足する。リミッタおよび分配器の目的は、実ロボットの接地性を確保しながら、制御操作量を分配することであるが、リミッタの変形例としては、第2実施例で挙げた例以外に、以下の様な手法やそれらの組み合わせが考えられる。
a.制御則によってモーメントの次元で算出される操作量に、一定の制限を加える手法b.床反力の床垂直方向成分の実際値あるいは設計値に応じて、モーメントの次元で算出される操作量の制限値を変動させる手法この場合、(ZMPのずれ量=モーメント/床反力垂直成分)であるから、リミッタは、ZMP目標位置からZMP存在領域の境界までの距離余裕×床反力垂直成分の値に応じて変動させる方が、より的確に接地性が確保される。
c.目標ZMP位置からZMP存在可能領域の境界までの余裕によって、モーメントの次元で算出される操作量の制限値を変動させる手法例えば、平地歩行では両脚支持期の間はZMP存在可能領域が大きいので、実ロボットに大きな復元力を発生させることができる。
d.制御則によって求められる操作量を一旦ZMP位置のずれに変換し、これに目標ZMP位置からZMP存在可能領域の境界までの余裕に応じた制限を加える手法e.操作量がPD制御則によって求められる場合、P成分から求められる操作量にのみ制限を加え、発振を抑えるダンピング効果を持つD成分には制限を加えない手法、あるいはその逆の手法f.実床反力モーメントMact が限界値を超えない様に、Mact に応じて制限値が可変となるリミッタに、実床反力操作モーメントMactcomm を通す手法g.Mact が限界値を超えたら、超えた分に、あるゲインを乗じてMactcomm から減算する手法h.実ロボットの床反力計測値から実ロボットのZMP位置を求め、これがZMP存在可能領域を超えそうになったら、それ以上Mactcomm の絶対値を増やさない手法
【0130】更に、分配を数24の式の様に単純に比例配分する手法も考えられる。
【0131】
【数24】
【0132】また、周波数帯域に応じて分配する手法も考えられる。例えば、実ロボットの床反力操作量Mactcomm には、実傾き偏差制御要求制御量Merrdmdとモデル傾き(あるいはモデル上体位置)制御要求制御量Mmdldmdの高域成分だけを与え、低域をモデル操作量Mmdl に与えれば、リミッタをかけなくても実ロボットの床反力操作量は小さく抑えられるので、接地性は高くなる。
【0133】また、第2実施例ではフィードバック則で操作量を求めてから、リミッタおよび分配器に通しているが、逆の順序で求めても良く、あるいは分配器の前後両方にリミッタを挿入する手法なども考えられよう。
【0134】更に、第1実施例から第6実施例で述べた歩容についての記述を補足すると、通常、歩容は接地を確保するための床反力に関する要件とその他の拘束条件により記述され、これらを満足する様に関節変位が決定される。拘束条件としては、足平軌道や上体姿勢、関節の変位が無理な挙動をしないための上体高さの決定式などが用いられる。床反力に関する要件としては、代表的なものとして例えば、平面床歩行においてはZMPの存在可能領域が知られている。接地面を含む最小凸多角形がZMPの存在可能領域であり、その中にZMP目標軌道を設定し、歩容からオイラー・ニュートン方程式などを用いて動力学的に求められるZMPが、ZMP目標軌道に一致する様に歩容が生成される。また、床反力に関する要件の代わりに、足首トルクの様なある特定の部位に作用する力やモーメントに関する要件を与えても良い。例えば、2足歩行ロボットの片脚支持期においては、支持脚足首は床に近いので、足首トルクは、足首の床への垂直投影点に作用する床反力モーメントと密接な関係を持つからである。
【0135】また、動力学モデルでは、目標床反力の要件を満足するモデルの挙動を求めなければならない。目標床反力の要件とは、例えば、ZMP目標位置にモーメントMmdl が発生することである。ところで、モデルの足平位置・姿勢と上体の姿勢は歩容生成部から与えられているので、片脚あたり6自由度の実施例に係るロボットでは、上体の姿勢を決定すれば、全関節の変位が決定される。上体のうち、高さは例えば、各瞬間における膝などの関節の変位、速度、加速度などがアクチュエータの能力を超えない様に、かつ床垂直抗力が負にならない様に決定される。従って、上体の位置のうちで、残った上体の前後左右の挙動によって目標床反力の要件を満足させることとなる。しかし、各瞬間における目標床反力の要件を満足する上体前後左右位置を解析的に直接求めることは困難であるので、実際には逆に上体の位置を与え、それに対する床反力を求めながら、擬似的なニュートン法などの収束法により、目標床反力の要件を満足する上体の位置を探索する。尚、演算の高速性を重視する場合には、多少の誤差を生じても、探索回数に制限を加えれば良い。極端な場合、探索回数は1回にしても良いであろう。
【0136】また、両脚支持期にはMact を大きくしても接地性が失われない。そこで、両脚支持期にリミッタ制限値を大きくしたり、モデル上体位置制御則などのゲインを高くしても良い。
【0137】また、歩行の環境や目的によって、姿勢を重視したいときと、階段や飛び石上の歩行の様に着地位置精度を重視したいときとがある。そこで、各制御ゲインを可変にすると、状況に応じたより緻密な制御が実現できる。例えば、姿勢安定を重視したいときには、モデル上体位置制御(あるいはモデル傾き制御)の制御ゲインを下げて要求制御量Mmdldmdを小さくし、モデル傾き(あるいはモデル上体位置)を0に収束させる制御を主に着地位置などの歩容パラメータ修正によって行う。こうすれば、実ロボットの操作モーメントMactcomm が小さくなって、実ロボットのZMP位置がZMP存在可能領域の中央付近に寄ってくるので、安定余裕が大きくなるからである。但し、その代わり着地位置などの歩容パラメータが大きく修正されるので、着地位置精度は悪くなる。また歩行の環境や目的によって、制御則の周波数ゲイン特性を調整しても、状況に応じたより緻密な制御が実現できる。
【0138】尚、上記した第1ないし第6実施例において、実ロボットの床反力のフィードバック制御として、コンプライアンス制御を導入しているが、トルク制御を導入しても良い。床の形状が既知で、床の凹凸による外乱があまり発生しない場合や、メカニカル機構によってコンプライアンスが実現されている場合には、特に床反力フィードバック制御を行わなくても良い。その場合でもこの発明の効果が失われる訳ではない。
【0139】更に、上記において2足歩行の脚式移動ロボットを例にとって説明してきたが、それに限られるものではなく、この発明は3足以上の脚式移動ロボットにも妥当し、更には脚式に限らず、車輪型やクローラ型など他の形態の移動ロボットに妥当するものである。
【0140】
【発明の効果】請求項1項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正する様に構成したので、何らかの外乱などによって前記傾き角(角速度)偏差が非常に大きくなっても、接地性を確保したまま(即ち、足裏が浮かない様にしながら)、前記モデルと実ロボットの床反力の差を活用して大きな姿勢復元作用を得ることができる。またモデルは床と干渉しないから、モデルに追従する実ロボットも床と干渉せず、着地衝撃を小さい値に抑制することができる。
【0141】請求項2項にあっては、制御対象のモデルを少なくとも2つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差及び/又は前記モデル間の傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルのいずれかにフィードバックしてモデルの挙動を修正する様に構成したので、上位のモデル(即ち、多段連結モデルのうちで実ロボットから遠く離れているモデル)ほど実ロボットに作用する外乱の影響が小さくなり、モデルの挙動予測精度が高くなって、実ロボットと全モデルすべての姿勢安定性を一層確実に実現することができる。
【0142】請求項3項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を前記モデルと実ロボットに分配しつつフィードバックしてモデルの挙動を修正する様に構成したので、請求項1項で述べた効果に加え、モデルの姿勢の崩れをある程度は抑制することができる。
【0143】請求項4項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルに対する実ロボットの傾き偏差に応じて前記モデルに与える床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させる様に構成したので、請求項1項で述べた効果をより直接的に得ることができる。
【0144】請求項5項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾き偏差に応じた操作量を前記モデルと実ロボットに分配しつつ与えて床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルも歩容を修正して前記傾き偏差を収束させる様に構成したので、請求項1項で述べた効果をより直接的に得ることができると共に、一層効果的にモデルの姿勢を回復することができる。
【0145】請求項6項にあっては、脚式移動ロボットの姿勢安定化制御装置において、実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、目標歩容と実ロボットの姿勢傾き偏差を検出する手段、および前記偏差を小さくする様に、前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を修正したものを前記目標歩容として前記実ロボットの関節変位を追従させる手段を備える様に構成したので、請求項1項で述べた効果に加えて、演算量を低減することができ、コンピュータを用いて実現するときもその能力が低いもので足りる。
【0146】請求項7項にあっては、脚式移動ロボットの姿勢安定化制御装置において、実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、実ロボットのリンク構造を表す幾何学モデル、前記幾何学モデルと実ロボットの姿勢傾き偏差を検出する手段、および前記偏差を小さくする様に前記摂動動力学モデルに床反力を加え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を前記幾何学モデル上で修正し、幾何学モデルの関節変位を目標として前記実ロボットの関節変位を追従させる手段を備える様に構成したので、請求項6項で述べた効果に加えて、床との干渉をより小さくすることができる。
【0147】請求項8項にあっては、少なくとも着地位置などの歩容パラメータを修正して前記モデルの姿勢を安定に保つ様に構成したので、従前までの請求項で述べた効果に加えて、一層簡易にモデルの姿勢を安定に回復することができる。
【0148】請求項9項にあっては、少なくとも新たな床反力を加えて前記モデルの姿勢を安定に保つ様に構成したので、請求項8項で述べたと同様の効果を得ることができる。
【0149】請求項10項にあっては、着地位置などの歩容パラメータを修正すると共に、新たな床反力を加えて前記モデルの姿勢を安定に保つ様に構成したので、従前までの請求項で述べた効果に加えて、一層効果的にモデルの姿勢を安定に回復することができる。
【図面の簡単な説明】
【図1】図1は本出願人が先に提案したZMP制御を示す説明図である。
【図2】図1に示す制御において実ZMPが目標ZMP(モデルから設定されるZMP)からずれた状態を示す説明図である。
【図3】この発明に係る脚式移動ロボットの姿勢安定化制御装置の特徴(原理)を示す説明図である。
【図4】この発明の原理(特徴)を説明するものであって、単純な実ロボットの構造パラメータと実ロボットの基本局所制御を示す説明図である。
【図5】図4に例示したものとこの発明の原理(特徴)を比較する説明ブロック図である。
【図6】図5に示すブロック図を変形したものを簡略的に示す説明図である。
【図7】この発明に係る脚式移動ロボットの姿勢安定化制御装置を全体的に示す概略図である。
【図8】図7に示す制御ユニットのブロック図である。
【図9】この発明の第1実施例の動作を示すブロック図である。
【図10】第1実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図11】図10フロー・チャートのうちの姿勢演算および制御のサブルーチン・フロー・チャートである。
【図12】図10フロー・チャートのうちのコンプライアンス制御のサブルーチン・フロー・チャートである。
【図13】この発明の第2実施例の動作を示すブロック図である。
【図14】第2実施例で使用するリミッタおよび分配器を説明するブロック図である。
【図15】第2実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図16】図15フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図17】図15フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図18】この発明の第3実施例の動作を示すブロック図である。
【図19】第3実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図20】図19フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図21】図19フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図22】この発明の第4実施例の動作を示すブロック図である。
【図23】第4実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図24】図23フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図25】図23フロー・チャートの中のコンプライアンス制御のサブルーチン・フロー・チャートである。
【図26】この発明の第5実施例の動作を示すブロック図である。
【図27】第5実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図28】図27フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図29】図27フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図30】この発明の第6実施例の動作を示すブロック図である。
【図31】第6実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図32】図31フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図33】図31フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【符号の説明】
1 脚式移動ロボット(2足歩行ロボット)
2 脚部リンク
10R,10L 脚部回旋用の関節
12R,12L 腰部のロール方向の関節
14R,14L 腰部のピッチ方向の関節
16R,16L 膝部のピッチ方向の関節
18R,18L 足首部のピッチ方向の関節
20R,20L 足首部のロール方向の関節
22R,22L 足平
24 上体
26 制御ユニット
36 6軸力センサ
【0001】
【産業上の利用分野】この発明は脚式移動ロボットの姿勢安定化制御装置に関し、より具体的には力学モデルを追従する様にロボットが関節変位されると共に、モデルと実ロボットに傾き偏差が生じたとき、実ロボットの床反力をずらす代わりに、モデルの床反力をずらして姿勢の安定を回復する様にしたものに関する。
【0002】
【従来の技術】脚式移動ロボット、特に2足歩行の脚式移動ロボットとしては、特開昭62−97005号、特開昭63−150176号公報記載のものなどが知られている。また脚式移動ロボットを含むロボットの制御については、「ロボット工学ハンドブック」(日本ロボット学会編、1990年10月20日)に詳しい。
【0003】
【発明が解決しようとする課題】ところで、脚式移動ロボット、特に2足歩行の脚式移動ロボットは本来的に安定性が低いことから、外乱などを受けると姿勢が不安定となる。そこでロボットの上体の傾き角度と傾き角速度を検出して姿勢制御する必要がある。その意図から本出願人は先に特願平2−336,420号(平成2年11月30日出願)において、着地候補位置を何点か予め用意しておき、一歩ごとの制御周期でいずれかを選択して目標歩容を切り換える制御を提案している。しかし、この制御によるときは、姿勢が崩れた結果、ZMP(垂直床反力の作用重心点。Zero MomentPoint)が存在可能範囲の限界付近に偏って接地性が失われても、次の一歩で歩容が修正されて姿勢が復元するまではZMPが限界付近に偏ったままなので、それまで接地性を回復できないと言う不都合がある。
【0004】そこで本出願人は近時別の出願(平成4年4月30日、整理番号A92−0116)において、ロボットの力学モデルを基に力学的平衡状態が保証される様に床反力を設定した目標歩容を生成し、モデル化誤差や外乱によって傾き角度と傾き角速度に目標値と実際値との間で偏差が生じたときは、実ロボットの接地部の変位あるいはモーメントを基準歩容から故意にずらすことによって実ロボットの床反力をモデルから計算される目標歩容のそれから故意にずらし、実ロボットの傾きをモデルの傾きに近づける復元力を得る技術を提案している(ここで言う「床反力」は、各脚に作用する床反力を全て合成した、ある作用点に働く合力と合モーメントとを意味する)。
【0005】しかし提案したこの技術によるときは、例えば2足歩行ロボットの片脚支持期では、実ロボットの床反力を故意に大きくずらそうとして足首角度を大きくずらしても、ZMPが足平接地面を超える全床反力を発生することができず、足平の一部が浮いてしまうことがある。従って、実ロボットがモデルに対して大きく傾いてしまった場合には、実ロボットの傾斜を正常に戻すために必要な十分な復元力を得ることができないことがあり、そのときは実ロボットが転倒する。即ち、この技術では目標値と実際値との偏差を縮める復元作用がZMPの存在範囲に制約される。
【0006】図で説明すると、実ロボットの関節変位をモデルの通りに追従する制御においては、実ロボットの傾き角度と傾き角速度とがそれぞれモデルのそれらと一致していれば、図1に実線で示す実ロボットのZMPはモデルから決定される目標ZMPに一致し、ロボットは所期の姿勢で歩行する。しかし、実際には先に述べた様にモデル化誤差や外乱によって破線で示す様に傾き角度と傾き角速度とに偏差が生じ、しかもそのずれは重力の作用によって偏差が大きくなるほど益々大きくなろうとする発散傾向を持つ。ところで実ZMPが目標ZMPからずれると、図2に示す様に、その間の距離xに力Fを乗じたモーメントMが目標ZMPのまわりに生じる。換言すれば、実ZMPが故意に目標ZMPからずれる様に関節変位を制御することにより、所望のモーメントを生じさせることができる。先に提案した技術ではその思想に基づき、傾き(角度と角速度)偏差が生じたときは図2R>2に示す様に、故意に実ZMPをずらして姿勢復元方向にモーメントを生じさせる様にした。しかし、この技術によるときは同図に示す如く、実ZMPをずらすことができる範囲は、足平領域xsole内に限られる。
【0007】従って、この発明の目的は近時提案した技術を改良し、更に効果的な脚式移動ロボットの姿勢安定化制御装置を提案することにある。
【0008】
【課題を解決するための手段】上記した課題を解決するためにこの発明は例えば請求項1項に示す如く、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正する様に構成した。
【0009】
【作用】
【0010】重力作用によって発散しようとする傾き偏差を零に収束させようとする作用は、実ロボットとモデルの床反力の差によって生じるものである。従って、偏差を収束させるためには、実ロボットの床反力をずらす代わりに、モデルの床反力を反対側にずらすことによっても等価な効果を得ることができる筈である。本発明はこの効果を利用する。そして、それによって図3に示す様に、ずらすZMPがモデルのそれであることから、ZMPをずらす範囲はもはや足平直下の領域内に限られることがなく、足平接地面を遠く超えた位置までずらすことができる。言い換えれば、前記した距離xを大きくすることができ、結果的にモーメントを大きくすることができて大きな姿勢復元力を得ることができる。
【0011】以下、更に説明する。分かり易くするために図4に示す様に、足平と1リンクの脚と上体から構成される単純なロボットを考える。脚の質量をm、足首まわりの脚の慣性モーメントをI、脚重心の足首との距離をhとする。上体の質量および慣性モーメントは0とする。また足首の床からの高さも0とする(こうすると、床反力と足首モーメントとが一致して議論が簡単になる)。鉛直方向に対する脚の傾き(即ち、足首と重心とを結ぶ線分の傾き角度)をθlink、鉛直方向に対する上体の傾きをθtrunk 、腰関節の曲げ角をθhip とする。尚、図でθlinkとθtrunk は負、θhip は正とする。更に、足首に作用するモーメントをMact とする( 足首の床からの高さが0であるから、床反力もMact である)。重力加速度はgとする。足首には公知のトルク制御が施されるものとし、腰の曲げ角は変位制御されるものとする。
【0012】上記において、幾何学的関係から数1の式が成立する。
【0013】
【数1】
【0014】このロボットの脚の運動方程式は数2の様になる。
【0015】
【数2】
【0016】これをラプラス変換して数3の式を得る。
【0017】
【数3】
【0018】さて、ここで、この実ロボットと全く同じ構造と全く同じパラメータ値を持つ数式モデルを用意する。その鉛直方向に対する脚の傾き(即ち、前記と同様な足首と重心とを結ぶ線分の傾き)をθmdllink 、鉛直方向に対する上体の傾きをθmdltrunk、腰関節の曲げ角をθmdlhipとし、モデルの足首に作用するモーメント( 即ち、モデルの床反力) をMmdl とすると、幾何学的な数式モデルと動力学的な数式モデルは、数4、数5に示す様になる。
【0019】
【数4】
【0020】
【数5】
【0021】次に、モデルを基に目標歩容を作成する。目標歩容は、一般的にはモデルの初期状態、モデルに加えられる操作量、および拘束条件によって表現される。具体的には、脚の初期傾き角度θreflink0と脚の初期傾き角速度ωreflink0、足首モーメントの時間関数Mref(t)、および上体の傾き角度の時間関数θreftrunk(t)によって表現される。上体の傾き角度の時間関数θreftrunk(t) は、議論を単純化するために、ここでは常に0であるものとする。
【0022】次に、以下の制御を実施する。
【0023】モデルの上体の傾き角度θmdltrunkを常にθreftrunk(t) に一致させる( θreftrunk(t) は0としているので、θmdltrunkも常に0に維持される)。モデルの足首には、Mref(t)と後述する上体の傾き角偏差に応じた操作量Mactfb の和に、実際値Mactに一致する様にトルク制御が実施される。実ロボットの腰の曲げ角度θacthipはモデルの腰の曲げ角θmdlhipを目標変位として変位制御が施される。即ち、θacthipは、θmdlhipに一致する様に制御される。実ロボットの上体には、傾斜センサが備えられており、上体の傾き角θacttrunkが検出される。
【0024】モデルに対する実ロボットの上体傾き角偏差θerr は数6の式で求められる。この例では、実ロボットの上体傾き角偏差θerr は、θmdltrunkが常に0に維持されているから、θacttrunkそのものである。
【0025】
【数6】
【0026】制御の目的は、歩行中においてモデルに対する実ロボットの上体傾き角偏差θerr を0に収束させることである。先に述べた近時提案した技術では、上体の傾き角偏差に応じた操作量Mactfb を算出し、実ロボットの足首モーメントMactに加えることによりフィードバックループを構成していた。これに対し、この発明による制御装置では、上体の傾き角偏差に応じた操作量Mmdlfb をモデルの足首モーメントMmdl に加えることによりフィードバックループを構成する。
【0027】この発明による制御と近時提案した制御の効果を比較するために、Mactfb とMmdlfb から上体の傾き角偏差θerr までのブロック図を図5に示す。但し、この図ではθerr からMactfb へのフィードバックとθerr からMmdlfb へのフィードバックを省略した。
【0028】さて、トルク制御部と変位制御部の伝達関数は、θactlink の挙動に比べて制御の応答性が十分高ければ1とみなすことができる。このとき、図5を、Mactfb,Mmdlfb およびθerr の関係のみに着目して変形すると、図6が得られる。この図から明らかな様に、例えばH(S)をフィードバック則とすると、Mact に数7の式で求められるMactfb をフィードバックすることと、Mmdl に数8の式で求められるMmdlfb をフィードバックすることは、θerr の挙動に対して同一の効果を持つ。
【0029】
【数7】
【0030】
【数8】
【0031】更に、θerr の挙動を決定するものは、Mactfb とMmdlfb との差であるから、数9の式となる様に、H(S)をMactfb とMmdlfb に分配すれば、この手法もやはり同一の効果を持つ。
【0032】
【数9】
【0033】以上が、この発明の根本原理である。実ロボットが複雑なものであっても、そのダイナミクスを忠実に模擬するモデルを用意すれば、実ロボットの床反力とモデルの床反力の差を制御することにより、上記例と全く同一原理で同一の効果を得ることができる。後で実施例で示す様に、動力学モデルを基準歩容からの摂動分で表現しても、θerr とその微分値ωerr が微小であれば、同一の効果が得られる。
【0034】この構成により、近時提案した制御と異なり、実ロボットの床反力ZMP位置を本来あるべき位置から故意にずらす必要がないので、何らかの外乱などによって前記傾き角(角速度)偏差が非常に大きくなっても、接地性を確保したまま(即ち、足裏が浮かない様にしながら)、近時提案した制御では不可能であった大きな姿勢復元作用を得ることが可能となり、短時間で偏差を0に収束させることができる。また、モデルは床と干渉しないから(但し、実ロボットの全床反力をずらすために故意に干渉させる分は除く)、モデルに追従している実ロボットも床と干渉せず、着地衝撃を小さい値に抑制することも可能となる。
【0035】尚、上記において、足平が浮かないためには、Mact(上記例ではMref +Mactfb)は、ある範囲内に制限されなければならない( 例えば、平地歩行では実ロボットのZMPが足平の接地面を超えない範囲に限定される)。従って、Mact がこの制限を超えない様な値をとり、かつ数10の式を満足する様に、Mactfb とMmdlfb は決定されるべきである。
【0036】
【数10】
【0037】尚、Mactfb からθmdllink までのオープンの伝達関数とMmdlfb からθmdllink でのオープンの伝達関数は一致しないので、近時提案した制御とこの発明による制御とでは、θmdllink の挙動に関して特性が異なる。
【0038】
【実施例】以下、脚式移動ロボットとして2足歩行の脚式移動ロボットを例にとって、この発明の実施例を説明する。図7はそのロボット1を全体的に示す説明スケルトン図であり、左右それぞれの脚部リンク2に6個の関節を備える(理解の便宜のために各関節をそれを駆動する電動モータで示す)。該6個の関節は上から順に、腰の脚部回旋用(z軸まわり)の関節10R,10L(右側をR、左側をLとする。以下同じ)、腰のロール方向(x軸まわり)の関節12R,12L、同ピッチ方向(y軸まわり)の関節14R,14L、膝部のピッチ方向の関節16R,16L、足首部のピッチ方向の関節18R,18L、同ロール方向の関節20R,20Lとなっており、その下部には足平22R,22Lが取着されると共に、最上位には上体(筐体24)が設けられ、その内部には制御ユニット26が格納される。
【0039】上記において腰関節は関節10R(L),12R(L),14R(L)から構成され、また足関節は、関節18R(L),20R(L)から構成される。また、腰関節と膝関節との間は大腿リンク32R,32Lで、膝関節と足関節との間は下腿リンク34R,34Lで連結される。ここで、脚部リンク2は左右の足についてそれぞれ6つの自由度を与えられ、歩行中にこれらの6×2=12個の関節(軸)をそれぞれ適宜な角度に駆動することで、足全体に所望の動きを与えることができ、任意に3次元空間を歩行することができる様に構成される。先に述べた様に、上記した関節は電動モータからなり、更にはその出力を倍力する減速機などを備えるが、その詳細は先に本出願人が提案した出願(特願平1−324218号、特開平3−184782号)などに述べられており、それ自体はこの発明の要旨とするところではないので、これ以上の説明は省略する。
【0040】図7に示すロボット1において、足首部には公知の6軸力センサ36が設けられ、足平を介してロボットに伝達されるx,y,z方向の力成分Fx,Fy,Fzとその方向まわりのモーメント成分Mx,My,Mzとを測定し、足部の着地の有無と支持脚に加わる力の大きさと方向とを検出する。また足平22R(L)の四隅には静電容量型の接地スイッチ38(図7で図示省略)が設けられて、足平の接地の有無を検出する。更に、上体24には傾斜センサ40が設置され、x−z平面内とy−z平面内のz軸に対する、即ち、重力方向に対する傾斜角度と傾斜角速度を検出する。また各関節の電動モータには、その回転量を検出するロータリエンコーダが設けられる。更に、図7では省略するが、ロボット1の適宜な位置には傾斜センサ40の出力を補正するための原点スイッチ42と、フェール対策用のリミットスイッチ44が設けられる。これらの出力は前記した上体24内の制御ユニット26に送られる。
【0041】図8は制御ユニット26の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ40などの出力はA/D変換器50でデジタル値に変換され、その出力はバス52を介してRAM54に送られる。また各電動モータに隣接して配置されるエンコーダの出力はカウンタ56を介してRAM54内に入力されると共に、接地スイッチ38などの出力は波形整形回路58を経て同様にRAM54内に格納される。制御ユニット内にはCPUからなる第1、第2の演算装置60,62が設けられており、第1の演算装置60は後で述べる様に目標関節角度を算出してRAM54に送出する。また第2の演算装置62はRAM54からその目標値と検出された実測値とを読み出し、各関節の駆動に必要な制御値を算出し、D/A変換器66とサーボアンプを介して各関節を駆動する電動モータに出力する。
【0042】続いて、この制御装置の動作を説明する。
【0043】図9はその動作を示すブロック図であり、図10ないし図12はその動作を示すフロー・チャートである。図10以降のフロー・チャートを参照して具体的に説明する前に、図9ブロック図を参照してこの制御を概説する。尚、以下ではx方向(進行方向)の制御だけを例にとって説明しているが、y方向(横方向)も同様である。
【0044】図9に示す様に、この実施例においてロボットの幾何学モデルとしては剛体モデルを備え、ロボットの動力学モデルとしては、基準歩容からの上体位置摂動分の挙動を倒立振子で近似したものを備える。倒立振子の質量をm、支点まわりの慣性モーメントをI、支点と重心の距離をhとする。基準歩容は、上体24の位置・姿勢、および両足平22R(L)の位置・姿勢で表現される。両足平22R(L)の位置・姿勢については、一歩ごとの足平軌道パラメータ(例えば、遊脚着地位置や着地時刻など)が、大局的姿勢制御部から目標足平軌道生成部に与えられ、目標足平軌道生成部においてリアルタイムに各瞬間のそれらの位置や姿勢が生成される。尚、この制御においてはロボットの姿勢が崩れたとき、先ずモデルの姿勢をそれに合わせて崩し、次いで安定方向に回復させると共に、実ロボットをそれに追従制御して姿勢安定を回復する様にしていることから、ここで「大局的」なる語は、瞬間々々ではなく、比較的長い時間をかけて滑らかに姿勢回復を最終的に実現する如く、この制御の特質を示す意味で使用する。
【0045】またZMP目標軌道については、一歩ごとのZMP目標軌道パラメータ(例えば、折れ線表現されているときは折れ点の座標や時刻)が、大局的姿勢制御部からZMP目標軌道生成部に与えられ、ZMP目標軌道生成部においてリアルタイムに各瞬間のその位置が算出される。上体24の位置・姿勢については、ZMP目標軌道を満足する様に、予めオフラインで作成されて時系列データとして大局的姿勢制御部に記憶され、歩行時に吐き出される。尚、以降、足平軌道パラメータとZMP目標軌道パラメータなど歩容の特徴を表現するものを総称して「歩容パラメータ」と呼ぶ。
【0046】次いで、幾何学モデルに対する実ロボットの姿勢の傾き角偏差θerr と角速度偏差ωerr を検出する(実ロボット1の関節変位が忠実にモデルに追従すると考えられるならば、姿勢の傾き角(角速度)偏差は、上体24の傾き角(角速度)偏差で代表して差し支えない。あるいは重心位置のずれを用いても良い。)。
【0047】これらを状態量として、これらを0に収束させようと働く安定化制御則から求められる制御操作量(状態フィードバック量)は、モーメントの次元で検出されて倒立振子型動力学モデルの支点に与えられる。ここで、この操作量を先に述べたと同様に、モデル操作モーメントMmdl と呼ぶ。Mmdl は、倒立振子型動力学モデルが受ける床反力モーメントであるとも言える。倒立振子型動力学モデルは、Mmdl と重心に作用する重力の影響を受けて運動する。倒立振子の状態量、即ち、傾き角θmdl とその角速度ωmdl の挙動は、過去の状態と支点に加えられるモーメントMmdl を基に逐次計算される。
【0048】数11の式により、上体24のx方向のずれΔxが求められる。但し、htrunk は上体24の高さ(より正確に表現すれば、床から腰関節1(L)までの高さ)とする。
【0049】
【数11】
【0050】ロボット幾何学モデルの上体位置は、歩容パラメータの上体位置xにΔxが加えられた位置に指定される。
【0051】また、先に述べた近時提案した技術で用いられるコンプライアンス制御によって、ZMP目標位置まわりの実床反力モーメントMact に応じて、基準歩容の足平位置・姿勢が修正され、それが幾何学モデルに与えられる。図9で用いられている制御では、Mact から床反力モーメントフィードバック則によって仮想床傾斜角指令θctrlが求められ、モデルの足平位置は、モーメント足平軌道生成部で生成される基準歩容の足平位置をZMP目標位置を中心として仮想床傾斜角指令の分だけ、座標回転させられる。これにより、実ロボット1の姿勢傾きの挙動は、基準点(例えば、ZMP目標位置)を支点とし、支点に床から傾きに比例した床反力モーメントが発生する倒立振子に近似される。
【0052】以上によって求められ、修正された上体位置・姿勢から、逆キネマティクス計算によって、幾何学モデルの各関節の変位が求められる。尚、このロボットでは可動部はすべて回転自由度しかないから、関節の変位はすべて角度で表現される。実ロボット1には、その関節変位をロボット幾何学モデルの関節変位に追従させる制御システムが備えられる。
【0053】以上のシステムにおいて、状態量θerr とωerr に応じたモデル操作モーメントMmdl をロボット動力学モデルに与えるフィードバック制御は、先に作用欄で説明した原理によって、θerr とωerr を0に収束させる様に作用する。即ち、実ロボットとモデルの傾きが一致する様に作用する。
【0054】ここで、図9において、倒立振子型動力学モデルにモデル操作モーメントMmdl が加わって、モデルの傾きθmdl とその角速度ωmdl が中立点(直立状態)から一旦ずれると、このモデルは不安定系であるので、θmdl ,ωmdl は発散する。そこで、状態量θmdl ,ωmdl に応じて、次の遊脚着地位置または着地タイミングを変更することによってθmdl ,ωmdl の発散を抑制する。
【0055】ところで、基準歩容におけるある一歩(これを「第1歩容」と呼ぶ)において着地位置を変更すると、次の一歩(これを「第2歩容」と呼ぶ)の初めでは、支持脚足平の位置だけが、基準の第2歩容の位置からずれる。このことを、第2歩容の基準座標から見ると、支持脚足平は基準歩容のままで、遊脚足平と上体の位置が変更量だけずれたことに相当する。そのまま放置すると、第1歩容と第2歩容の境界が不連続になる。そこで、ロボット幾何学モデルの歩容が連続となる様に、歩容の変わり目において次の操作を行う。
【0056】遊脚軌道は初期位置や次期着地位置などの足平軌道パラメータで与えられているので、第2歩容の足平軌道パラメータの一つである初期遊脚位置を−Δxfoottotal だけずらす。第2歩容の上体軌道はそのままとし、その代わりに倒立振子型動力学モデルの傾き角θmdl を−Δxfoottotal/htrunk だけずらす。この結果、ロボット幾何学モデルの歩容の連続性を保ちつつ、倒立振子型動力学モデルの状態量の一つである傾き角θmdl を−xfoottotal/htrunk だけ操作することができる。即ち、着地位置を変更することにより、倒立振子型動力学モデルの状態量を制御することができる。
【0057】上記を前提とし、以下図10フロー・チャートを参照して、着地位置を進行方向に変更した場合のモデル傾き制御アルゴリズムを説明する。
【0058】先ず、S10において倒立振子型モデルを安定な直立位置に初期化し、S12に進んで歩数カウンタが基準歩容で設定した目標歩数になるまで、S14からS26を繰り返す。ここで、用語を次の様に定義する。
1.一歩の歩容は、両脚支持期の初めから次の遊脚が着地するまでの期間を指す。
2.ある歩容の支持脚とは、その歩容の片脚支持期に支持脚となる脚とし、遊脚とは、その歩容の片脚支持期に遊脚となる脚とする。
3.歩容の基準座標を、その一歩の支持脚の足平接地点にとることとする。
【0059】S14では今回の歩容パラメータをセットし、S16に進んで前回の歩容の修正後の着地位置と前回の歩容の基準歩容の着地位置との差を前記したΔxfoottotal とする。次いで、S18に進んで今回の歩容の基準初期遊脚位置からΔxfoottotal を減算し、S20に進んで倒立振子型モデルの傾斜角θmdl から、Δxfoottotal /htrunk だけ減算する。
【0060】次いでS22に進み、一歩分のサンプリング回数だけS24とS26を繰り返す。即ち、S24で1周期が経過したことを確認した後、S26に進んで姿勢演算および制御のサブルーチンを実施する。
【0061】図11はそれを示し、先ずS100において実ロボットの傾斜を計測し、前記した様に幾何学モデルに対する姿勢傾き角偏差θerr と傾き角速度偏差ωerr を求め、S102に進んでそれらから前記したモデル操作モーメントMmdl を求め、S104に進んでMmdl を倒立振子型モデルの支点に加えてモデルの今回の傾斜角θmdl と角速度ωmdl を求める。次いでS106に進み、前記した理由から上体ずれΔxを図示の如く求め、S108に進んで着地までに時間の余裕があれば、倒立振子型モデルの挙動を予測して着地目標位置パラメータの修正量Δxfootを求め、基準歩容の着地目標位置パラメータにΔxfootを加算し、着地目標位置パラメータを修正する。
【0062】これについては先にも述べたが、更に敷衍すると、着地位置の変更量は、次の一歩の間に、倒立振子型動力学モデルの傾き角θmdl と傾き角速度ωmdl 、および幾何学モデルに対する実ロボットの傾き偏差θerr と傾き角速度偏差ωerr が、なるべく0に収束する様に決定するべきである。そのためには、θmdl ,ωmdl ,θerr ,ωerr などの現在状態から、着地位置の変更により、次の一歩の間にθmdl ,ωmdl ,θerr ,ωerr がどの様な挙動を示すかを推測しなければならない。
【0063】θerr とωerr はこの発明の根本原理によって0に収束するので、やや予測精度が低下するが、θerr とωerr の現在状態を無視しても支障ない。つまり、θmdl とωmdl の現在状態だけから予測計算して着地位置の変更量を決定しても差し支えない。あるいは、予め、現在状態と着地位置の変更量との関係をシミュレーションによりマップ化しておいて、実際の歩行時にこのマップを用いて着地位置の変更量を決定しても良い。
【0064】θmdl とωmdl の現在状態だけから着地位置の変更量を決定する手法としては、竹馬ロボットなどで行われている様に、倒立振子型動力学モデルの着地瞬間の全エネルギ予測値が直立時の全エネルギに一致する様に、変更量を決定する手法が一般的に知られている。以下にその手法を説明する。
【0065】着地瞬間の全エネルギ予測値が直立時の全エネルギに一致するためには、予測される着地直後のθmdl とωmdl が数12の式を満足する様に、着地位置が決定されなければならない。
【0066】
【数12】
【0067】また、直立状態に近づいていくために、θmdl とωmdl が逆極性でなければならないから、即ち、数13の式を満足しなければならない。
【0068】
【数13】
【0069】数12式、数13式より、数14の式が得られる。
【0070】
【数14】
【0071】数14式を近似すれば、数15の式が得られる。
【0072】
【数15】
【0073】つまり、予測される直立直後のωmdl とθmdl との比が、数15式で定められる比になる様に着地位置修正量Δxfootが決定されれば良い。着地位置を修正しない場合の予測される着地直後のωmdl とθmdl は、倒立振子で現在のωmdl ,θmdl ,θerr ,ωerr から動力学演算により求めることができ、それをωmdleとθmdleとする。(特に、ωmdl およびθmdl に比べてθerr およびωerr が無視できるほど小さい場合には、解析的に容易に求めることができる。)。θmdleをωmdle/平方根(2mgh/I)に修正できれば、数15式を満足する。そのためには、前述の様に、着地位置をΔxfootだけ修正することによって、θmdlを−Δxfoot/htrunk だけ操作することができるので、着地位置修正量Δxfootを数16の式より決定すれば良い。
【0074】
【数16】
【0075】以上の様に、着地位置修正量Δxfootが決定され、着地目標位置パラメータxfootは、歩容の途中で修正される。この修正は、着地目標位置を変更したときの足平の軌道生成計算が大変な場合には、一歩ごとに1つずつだけ実行されることとなるが、足平の軌道を本出願人が近時提案した別の技術(平成4年5月22日出願、整理番号A92−0493)を用いて発生させれば、着地目標位置の変更をサンプリング周期毎に行うことができる。なぜなら、この技術を用いれば、着地目標位置パラメータの変更をサンプリング周期ごとに行っても、足平の軌道は、そこからまた滑らかに修正されるからである。但し、着地時刻に近づいてから着地位置を大幅に変更すると、遊脚軌道が急激に変わるので、着地までの残り時間に応じて再修正の可能限界量を求め、それを制限値として修正量の変化率にリミットをかけるのが望ましい。
【0076】図11フロー・チャートにおいては次いでS110に進んでZMP目標軌道パラメータからZMP目標位置を算出し、S112に進んで着地目標位置パラメータなどの足平軌道パラメータから両足平の位置・姿勢を算出し、S114に進んで基準歩容の上体位置にθmdl とhtrunk の積を加算した位置を上体目標位置とし(上体の目標姿勢は基準通りとする)、S116に進んでモデル足平修正によるコンプライアンス制御を行う。
【0077】図12はそれを示すサブルーチン・フロー・チャートであり、先ずS200において6軸力センサ36の検出値を取り込み、S202に進んでそれからZMP目標位置まわりの実床反力モーメントMact を求め、S204に進んで図示の様に座標回転角θctrlを算出し、S206に進んでその値だけ両足平の位置・姿勢をZMPまわりに回転させ、幾何学モデルの両足平の位置・姿勢とする。尚、この制御は先の出願(平成4年4月30日)に詳細に述べられているので、ここではこの程度の説明に止める。
【0078】次いで、図11フロー・チャートに戻り、S118に進んで上体目標位置・姿勢と修正された足平位置・姿勢から幾何学モデルの関節変位を求め、S120に進んで実ロボットの関節変位を幾何学モデルの変位に追従させる制御を行う。
【0079】この実施例は上記の如く、モデルに対する実ロボットの傾き制御と倒立振子モデルの傾き偏差の一歩ごとの離散制御により、安定な歩行を実現することができる。更に、故意にずらすZMPをモデルのそれとしたので、先に提案した制御に比べてZMPの移動範囲を大きくとることができ、姿勢復元力を大きくすることができる。従って、何らかの外乱によって傾き偏差が非常に大きくなっても、接地性を確保したまま、姿勢を安定に回復することができる。また、姿勢が崩れたときはモデルの姿勢をそれに応じて一旦崩し、その後に姿勢を回復させると共に、実ロボットをそのモデルの姿勢を追従する様に制御することから姿勢回復を滑らかな動きで実現することができる。更に、モデルは床と干渉しないことから、モデルに追従する実ロボットも床と干渉することがなく、また着地衝撃も小さい値に抑制することができる。
【0080】図13はこの発明の第2実施例を示すブロック図である。第1実施例では倒立振子モデルの傾斜制御において、着地位置を操作量としていたが、第2実施例ではモデル操作モーメントに、新たに倒立振子モデルの傾斜に応じた操作量を加えて安定化を図る様にした。
【0081】また第2実施例においては、幾何学モデルに対する実ロボットの傾き角偏差θerr をPDなどのフィードバック則H1(S)を通して得られる実傾き偏差制御要求制御量Merrdmd(即ち、Merrdmd=H1(S)θerr )と、倒立振子モデルの傾斜角θmdl をフィードバック則H2(S)を通して得られるモデル傾き制御要求制御量Mmdldmd(即ち、Mmdldmd=H2(S)θmdl )をリミッタおよび分配器に通して実モーメント操作量Mactcomm とモデルモーメント操作量Mmdl に分配する様にした。
【0082】図14にリミッタおよび分配器を示す。この例においては、実モーメント操作量Mactcomm は、MerrdmdとMmdldmdの和にリミッタをかけることによって求められる。このリミッタ作用により、実ロボットの床反力が存在可能領域から超えない様に管理され、実ロボットの接地性が確保される(例えば、平地歩行であれば、床反力のZMPが接地面を含む最小凸多角形の中にあることが、床反力の存在可能条件である。)。
【0083】モデルモーメント操作量Mmdl は、Mmdldmdに前記リミッタの入力超過分を加えることによって求められ、第1実施例と同様、倒立振子型ロボット摂動動力学モデルに入力される。また、ZMPまわりの実床反力モーメントMact から床反力モーメントフィードバック則によって、床反力モーメントフィードバック操作量θcompが求められる。Mactcomm とコンプライアンス定数Kcompの積に床反力モーメントフィードバック操作量θcompを加えることにより、仮想床傾斜角指令が求められる。幾何学モデルの足平位置は、目標足平軌道生成部で生成される基準歩容の足平位置をZMP目標位置を中心として、仮想床傾斜角指令の分だけ、座標回転させられる。
【0084】実ロボットの傾き角偏差θerr の挙動を決定するものは、ZMPまわりの実床反力モーメントMact とモデルモーメント操作量Mmdl の差である。ところで、コンプライアンス制御が十分に柔らかければ、Mact は実モーメント操作量Mactcomm にほぼ一致する。従って、この場合、実ロボットの傾き角偏差θerr の挙動を決定するものは、Mactcomm とMmdl の差であると言っても良い。Mactcomm とMmdl の差は、前記リミッタが働いても働かなくても常にMerrdmdとなるので、幾何学モデルに対する実ロボットの傾き角偏差θerr を0に収束させる制御は常に働く。
【0085】一方、モデルの傾き角θmdl の挙動を決定するものは、Mmdl である。Mmdlは、前記リミッタが働いていないときにはMmdldmdに一致し、モデルの傾きを0に収束させる制御が正常に働く。前記リミッタが働いているときには、幾何学モデルに対する実ロボットの傾き角偏差θerr を0に収束させる制御を優先した上で、可能な範囲でモデルの傾きを0に収束させようと作用する。更に、Merrdmdがリミッタ設定値に比べて過大である場合にはモデルの傾き制御が犠牲になり、モデルの傾きは発散しようとすることもある。即ち、実ロボットのZMPが存在可能領域の限界までまだ余裕があるときのみ、倒立振子モデル傾斜制御が実行される。従って、瞬間的な外乱や微小外乱に対しては、倒立振子モデルが直立状態に回復できるが、大きな外乱が継続すると、倒立振子モデルが直立状態に回復できなくなり、ロボット幾何学モデルの姿勢が大きく崩れて転倒する。しかし、足平の軌道が基準歩容通りであるので、階段や飛び石の上を歩行するときの様に、着地位置が制約されている際には、第2実施例は好適である。
【0086】ここで、倒立振子モデルの傾き制御ゲインの設定について説明する。モデルの傾き角θmdl を0に収束させる制御則を、例えば数17の式で与えるものとする。
【0087】
【数17】
【0088】単純倒立振子を、現在状態から、支点にモーメントを加えず、フリーな運動をさせるときに、直立状態で静止するためには、現在の全エネルギが直立静止状態の全エネルギに一致していなければならない。つまり、数18の式が成立していなければならない。
【0089】
【数18】
【0090】また、直立状態に近づいていくために、ωmdl とθmdl が逆極性でなければならないから、数19の式を満足しなければならない。
【0091】
【数19】
【0092】数18、数19式より、数20の式を得る。
【0093】
【数20】
【0094】数20式を近似して数21の式を得る。
【0095】
【数21】
【0096】数21式を満足した状態にあれば、倒立振子モデルの支点にモデル操作モーメントMmdl を加えなくても、直立状態で静止する。従って、数21式を満足する状態でモデル操作モーメントMmdldmdが0になる様に制御則を設定すれば、倒立振子モデルに必要以上の余分なモデル操作モーメントMmdl を発生させず、直立状態に収束させることができる。この様な制御則で数17の式を満足するものは、数22の式である。
【0097】
【数22】
【0098】数22式を満足していても、Kωをやや小さめに設定すると、倒立振子の挙動にオーバーシュートが発生する。Kωをもっと小さく設定すると、重力モーメントに負けて直立状態に復元できなくなる。直立状態に復元できてかつオーバーシュートが発生しない様にするためには、フィードバックループの特性根が負の実数になることであり、そのためには、Kωは次の数23式を満足しなければならない。
【0099】
【数23】
【0100】数22と数23の式を満足する様にゲインを設定すれば、Mmdldmdの絶対値が小さく抑えられてMactcomm の絶対値も小さく抑えられるので、実ロボットの接地性が高くなる。
【0101】図15から図17は第2実施例の制御を示すフロー・チャートであり、うち図15はS300からS310にメイン・ルーチンを、図16はS400からS422にその姿勢演算および制御のサブ・ルーチンを、図17はS500からS506にそのコンプライアンスおよび姿勢安定化制御のサブ・ルーチンを示す。第1実施例と相違する点に焦点をおいて説明すると、図15R>5フロー・チャートにおいてS304とS306との間には第1実施例の図10のS16からS20に相当するステップは存在しない。これは、姿勢演算および制御のサブルーチンで着地位置修正を行っていないためである。また、図16の姿勢演算および制御サブルーチン・フロー・チャートにおいては、先に述べた構成からS402からS406が追加されると共に、第1実施例の図1111のS108に相当するステップは削除される。また図17サブルーチン・フロー・チャートにおいてはS504の座標回転角の演算で先に述べた様に、実ロボット操作モーメントMactcomm にコンプライアンス定数Kcompを乗じたものが加算される。尚、残余の構成は、第1実施例と相違しない。
【0102】第2実施例は足平の軌道が基準歩容通りであることから、階段や飛び石の上を歩行するときなど、着地位置が制約される際に特に好適である。
【0103】図18はこの発明の第3実施例を示すブロック図である。第3実施例では、倒立振子モデルの傾斜制御において、第1実施例と第2実施例の制御を併用した。倒立振子モデルを直立状態に回復させるために、瞬間的な外乱や微小外乱に対しては、主に倒立振子モデルにモーメントを加える制御が働き、大きな外乱が継続すると、主に着地位置や着地タイミングを修正する制御が働く。
【0104】第3実施例においても、着地位置や着地タイミングの修正量は、第1実施例と同様、倒立振子モデルが直立状態に戻る様に決定される。第1実施例に比べると、モデル傾き制御要求制御量Mmdldmdの影響がある分だけ、モデルの挙動予測演算が複雑になる様に見えるが、モデル傾き制御要求制御量Mmdldmdにより、倒立振子モデルの発散が抑えられるので、むしろ予測精度が高いとも言える。特に、第2実施例で述べた倒立振子モデルの傾き制御ゲインの設定値(数22式と数23式を満足するゲイン)を採用すれば、倒立振子モデルの全エネルギが直立時の全エネルギに一致しているときには、モデル傾き制御要求制御量Mmdldmdが0になるので、第1実施例で説明した、倒立振子型動力学モデルの着地瞬間の全エネルギ予測値が直立時の全エネルギに一致する様に、着地位置変更量を決定する手法をそのまま活用することができる。
【0105】図19は第3実施例のS600からS616よりなるメイン・ルーチン・フロー・チャート、図20R>0はS700からS724よりなるその姿勢演算および制御サブルーチン・フロー・チャート、図21はS800からS806よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートである。図19のメイン・ルーチン・フロー・チャートは第1実施例のそれと、図21のサブルーチン・フロー・チャートは第2実施例のそれと同様である。また図20の姿勢演算および制御サブルーチン・フロー・チャートは、第2実施例と比べて、着地目標位置パラメータを修正するステップS712が追加されている点で異なるのみである。尚、残余の構成は従前の実施例と相違しない。
【0106】第3実施例の場合、前述の如く、倒立振子モデルを直立状態に回復させるために、瞬間的な外乱や微小外乱に対しては主に倒立振子モデルにモーメントを加える制御が働き、大きな外乱が継続すると主に着地位置や着地タイミングを修正する制御が働くので、第1実施例に比べ、着地位置の変更量が少なくなり、歩行経路のふらつきが小さくなると共に、第1実施例、第2実施例よりも安定度が一層向上する。
【0107】図22はこの発明の第4実施例を示すブロック図である。第1から第3までの実施例では、ロボットのモデルを、基準歩容からの上体位置摂動分に対する動力学モデルと、上体や足平位置と関節角の関係を表現する幾何学モデルに分割して備えていた。それに対し、第4実施例では、剛体リンクで構成される動力学・幾何学複合モデルを備える様にした。その他は後で述べる様に、大局的姿勢制御部の詳細が異なることを除くと、第1実施例とほぼ同一構成である。
【0108】第4実施例において、歩容は、ZMP目標位置、および両足平の位置・姿勢で表現される。両足平の位置・姿勢については、一歩ごとの足平軌道パラメータ(例えば、遊脚着地位置や着地時刻など)が、大局的姿勢制御部から目標足平軌道生成部に与えられ、目標足平軌道生成部において、リアルタイムに各瞬間のそれらの位置や姿勢が算出される。ZMP目標軌道については、一歩ごとのZMP目標軌道パラメータが、大局的姿勢制御部からZMP目標軌道生成部に与えられ、ZMP目標軌道生成部においてリアルタイムに各瞬間のその位置が算出される。上体の位置・姿勢については、第1実施例ないし第3実施例ではZMP目標軌道を満足する様に、予めオフラインで作成された時系列データとして大局的姿勢制御部に記憶されていたが、第4実施例ではロボットの幾何学・動力学モデルにてモデルの両足平の位置・姿勢、ZMP目標軌道およびZMP目標位置まわりのモデル操作モーメントを基に、リアルタイムに生成される。
【0109】第4実施例のロボットモデルでは、両足平の位置・姿勢は、足平軌道生成部から与えられた足平の位置・姿勢を仮想床傾斜指令θctrlだけ座標回転させた位置・姿勢に変換される。ロボットモデルでは、上体の位置・姿勢が、ZMP目標位置に発生する床反力モーメントがMmdl となる様に動力学計算によって求められ、同時に各関節の変位が求められる。尚、Mmdl が0のときには、ロボットモデルのZMP位置はZMP目標位置に一致するが、Mmdl が0でないときには、ZMP目標位置にモーメントが発生していることから、もはやZMP目標位置はロボットモデルのZMP位置ではなく、ロボットモデルのZMP位置は、ZMP目標位置からずれたところに存在する。
【0110】モデルの床面には、あらゆる全床反力が発生可能であると仮定する。即ち、モデルの接地面には吸着力も発生可能であるとし、例えば、平地歩行においてZMPが接地面を含む最小凸多角形を超えても、接地面が離れない(脚と床の間の拘束条件が所期通り確保される)ものとする。この様に想定することによって、モデルに対する実ロボットの傾き偏差制御において、実ロボットの全床反力を操作するだけでは不可能であった大きな復元作用も発生可能となる。従って、フィードバックゲインを大きくして短時間で偏差を0に収束させることができる。つまり、実ロボットは、関節変位のみならず、傾きまでもモデルに高応答で追従する。但し、モデルの全床反力の床法線方向成分は、上向き(正)になる様にとるべきである。なぜなら、そうしないと、実ロボットが一瞬床から浮いてしまう恐れがあるからである。
【0111】第4実施例においては、大局的姿勢制御部において、モデルの挙動やモデルに対する実ロボットの傾き偏差などから、次の着地位置、着地タイミングまたはZMP目標軌道などの歩容パラメータを決定する。第1から第3実施例では基準歩容が存在するので、基準歩容からのずらし量を決定するだけで済むが、第4実施例においては基準歩容が存在しないので、歩容パラメータの決定が難しくなる。決定をなるべく容易にするためには、ある基準点から見たロボット全体の角運動量や重心位置などのマクロな状態量に着目すれば良い。局所的姿勢制御がこれらのマクロな状態量にあまり影響を与えない場合には、これらのマクロな状態量だけから将来の挙動を予測し、それらのマクロな状態量が発散しない様に歩容パラメータを決定すれば良い。具体的には、先に述べた竹馬型2足歩行ロボットの着地位置制御で行われている手法を用いたり、シミュレーションによりマクロな状態量に応じた適切な着地位置を予め学習させておく手法などが考えられる。
【0112】第4実施例のロボットにおいては、ゆっくり歩行する場合には遊脚の反動が無視でき、単純倒立振子で近似することができる。ロボットが単純倒立振子で近似できる場合には、角運動量を縦軸に、重心位置を横軸にとったときの軌跡は、双曲線上を移動することが知られているので、挙動が解析的に予測でき、着地位置決定も解析的に行うことができる。竹馬型2足歩行ロボットの着地位置制御では、これを利用している。第4実施例のロボットが高速で歩行する場合(例えば、3km/hなど)には、遊脚の反動が無視できなくなり、単純倒立振子で近似できなくなる。この場合には、解析的な決定法ではなく、マクロな状態量に応じた適切な着地位置を予め学習させる手法などが有効である。学習には、人工知能、ファジー、ニューロなどが使用できよう。
【0113】図23は第4実施例のS900からS910よりなるメイン・ルーチン・フロー・チャートを、図2424はS1000からS1014よりなるその姿勢演算および制御サブルーチン・フロー・チャートを、図25はS1100からS1106よりなるそのコンプライアンス制御サブルーチン・フロー・チャートを示す。図25R>5サブルーチン・フロー・チャートは、第1実施例のそれと同様である。
【0114】第4実施例においては、第1実施例に比べて動力学モデルがより精密になっているので、より正確な姿勢制御が実現される。特に、大きな外乱が加わってモデルの姿勢が大幅に崩れても、転倒することなく、復元することができる。
【0115】図26はこの発明の第5実施例を示すブロック図である。この例において大局的姿勢制御部はなく、歩容パラメータ決定部は、予め外乱がない状況で長期的に安定な歩行が実現できる様に設定された一連の歩容パラメータを吐き出しているだけである。
【0116】第5実施例において、ロボットの幾何学・動力学モデルとしては、第1モデルと第2モデルの2つが備えられる。第1モデルと第2のモデルの初期状態は、前記の予め設定された一連の歩容の初期状態に一致させておく。第1モデルには目標足平軌道とZMP目標軌道が与えられ、ZMP目標軌道を満足する様に上体軌道が生成される。歩容パラメータ決定部が上に述べた様に、予め外乱がない状況で長期的に安定な歩行が実現できる様に設定された一連の歩容パラメータを吐き出しているので、第1モデルの挙動は、その通り忠実に再現する。第2モデルには、目標足平軌道とZMP軌道以外に、第1モデルと第2モデルの上体位置の差を0に収束させる制御の操作量と、第2モデルと実ロボットの姿勢傾斜ずれを0に収束させる制御の操作量が、ZMP目標位置まわりにモーメントとして加えられる。
【0117】第2モデルに対する実ロボットの傾き角偏差θerr をPDなどのフィードバック則H1(S)を通して得られる実傾き偏差制御要求制御量Merrdmdと、第1モデルに対する第2モデルの上体位置ずれをフィードバック則H2(S)を通して得られるモデル上体位置制御要求制御量Mmdldmdを第2実施例で用いたと同様なリミッタおよび分配器を通して、実モーメント操作量Mactcomm とモデルモーメント操作量Mmdl に分配する。
【0118】ZMPまわりの実床反力モーメントMact から床反力モーメントフィードバック則によって床反力モーメントフィードバック操作量θcompが求められる。Mactcomm とコンプライアンス定数Kcompの積に床反力モーメントフィードバック操作量θcompを加えることにより、仮想床傾斜角指令θctrlが求められる。第2モーメントの足平位置は、目標足平軌道生成部で生成される足平位置をZMP目標位置を中心として、仮想床傾斜角指令の分だけ、座標回転させられる。
【0119】第1モデルと第2モデルは、第4実施例のそれと同一で良い。但し、第1モデルにはモデルモーメント操作量Mmdl と仮想床傾斜角指令θctrlが与えられないので、第1モデルを第2モデルと同一のプログラムで作るならば、第1モデルに入力されるMmdl とθctrlを0にしておけば良い。
【0120】図27は第5実施例のS1200からS1210よりなるメイン・ルーチン・フロー・チャートを、図28はS1300からS1318よりなるその姿勢演算および制御サブルーチン・フロー・チャートを、図29はS1400からS1406よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートを示す。第2実施例のそれらとほぼ同様である。
【0121】第2実施例では予め上体軌道が生成されているのに対し、第5実施例では目標ZMP軌道を満足する様に、第1モデルにおいてリアルタイムに上体軌道が生成される。第5実施例の効果は、本質的に第2実施例と同じである。ただ、動力学モデルがより忠実になっているため、姿勢安定化制御の精度が高く、モデルの姿勢が大きく崩れても復元することができる。
【0122】図30はこの発明の第6実施例を示すブロック図である。第6実施例ではモデルの姿勢安定化において、第4実施例と第5実施例の制御を併用した。第6実施例においては、第2モデルの角運動量や重心位置などのマクロな状態量をある範囲に収めるために、瞬間的な外乱や微小外乱に対しては主に実ロボットと第2モデルにモーメントを加える制御が働き、大きな外乱が継続すると、主に着地位置や着地タイミングを変更する制御が働く。
【0123】第1モデルは、歩容の切り替わり目において、第2モデルの状態に合わせる(つまり、一歩ごとの歩容の初めに強制的に第1モデルの初期状態を第2モデルのそのときの状態に合わせる)。こうしないと、過大な外乱が長期的に実ロボットに加わって、第2モデルに対する実ロボットの傾斜ずれが大きくなったときに、この傾斜ずれを修正しようとして第2モデルに大きな操作モーメントが作用すると、第1モデルと第2モデルの姿勢ずれを0に収束させる制御が十分効かず、第1モデルと第2モデルの姿勢ずれが発散してしまうからである。但し、第1モデルの初期状態を第2モデルに急激に合わせると、第1モデルと第2モデルの姿勢ずれを0に収束させる制御の操作量が急激に変化する恐れがあるので、第1モデルと第2モデルの姿勢ずれを0に収束させる制御のフィードバックゲインを歩容の変わり目の直前に連続的に下げておいた方が良い。
【0124】第4実施例では不確定な外乱が実ロボットに加わることによって、モデルの挙動も不確定な挙動を示すため、モデルの将来挙動の予測精度が低下する。第6実施例では、一歩の間、第2モデルは第1モデルの挙動に収束しようとする。一歩の間、第1モデルの挙動には実ロボットに加わる外乱の影響を受けないので、第1モデルの挙動は、確定的に予想できる。従って、実ロボットに加わる外乱によって第2モデルの挙動が変化しても、しばらくすれば第1モデルの挙動に収束しようとするので、第2モデルの挙動の不確定性が減少する。即ち、第6実施例では、第4実施例に比べ、着地位置などの歩容パラメータを操作することによる姿勢安定化作用がより確実に働くこととなる。
【0125】図31は第6実施例のS1500からS1510よりなるメイン・ルーチン・フロー・チャート、図32はS1600からS1620よりなるその姿勢演算および制御サブルーチン・フロー・チャート、図33はS1700からS1706よりなるそのコンプライアンスおよび姿勢安定化制御サブルーチン・フロー・チャートである。
【0126】第6実施例の場合は、第4実施例に比べ、モデルの将来の挙動の不確定性が小さいので、より確実かつ長期的な姿勢安定化が実現される。
【0127】尚、第6実施例では、第1モデルと第2モデルの偏差を歩容の切り替わり目で強制的に0にしていたが、それ以外の時期でも偏差が過大になったとき、第1モデルと第2モデルロボットの偏差を0に収束させる様に第1モデルに操作モーメントを加える制御を実行しても良い。但し、第1モデルに操作モーメントを加えると、上体の位置がずれて第1モデルの姿勢が崩れようとする。そこで、姿勢の崩れを防ぐために、第1モデルに操作モーメントを加えるときには同時に着地位置などの歩容パラメータも修正する。ところで、着地直前に、着地位置や着地時期を大きく変更すると、脚の挙動が急激に変化する。即ち、着地までの時間余裕が少なくなってくるにつれ、着地位置や着地時期の修正可能量は小さくなる。従って、第1モデルに操作モーメントを加え、それに見合った着地位置などの修正を行う際には、着地までの時間余裕が少なくなるにつれ、操作モーメントの印加量の制限値も小さくするべきである。
【0128】更に、第5、第6実施例においては、動力学モデルが2段に構成されている。これを更に段数を増やし、実ロボットとモデルとの偏差、およびモデルと他のモデルとの偏差を制御する様にしても良い。上位のモデル(即ち、多段連結モデルのうちで実ロボットから遠く離れているモデル)ほど実ロボットに作用する外乱の影響が小さくなり、モデルの挙動予測精度が高くなる。従って、上位のモデルの挙動を基に着地位置修正量を求めれば、上位のモデルの姿勢安定性が確保でき、それより下位のモデルはモデル操作モーメントを制御することによって上位のモデルに追従するので、結果的に実ロボットと全モデルすべての姿勢安定性が確保される。摂動モデルを用いた場合も同様である。
【0129】ここで、第2実施例などで用いたリミッタおよび分配器について説明を補足する。リミッタおよび分配器の目的は、実ロボットの接地性を確保しながら、制御操作量を分配することであるが、リミッタの変形例としては、第2実施例で挙げた例以外に、以下の様な手法やそれらの組み合わせが考えられる。
a.制御則によってモーメントの次元で算出される操作量に、一定の制限を加える手法b.床反力の床垂直方向成分の実際値あるいは設計値に応じて、モーメントの次元で算出される操作量の制限値を変動させる手法この場合、(ZMPのずれ量=モーメント/床反力垂直成分)であるから、リミッタは、ZMP目標位置からZMP存在領域の境界までの距離余裕×床反力垂直成分の値に応じて変動させる方が、より的確に接地性が確保される。
c.目標ZMP位置からZMP存在可能領域の境界までの余裕によって、モーメントの次元で算出される操作量の制限値を変動させる手法例えば、平地歩行では両脚支持期の間はZMP存在可能領域が大きいので、実ロボットに大きな復元力を発生させることができる。
d.制御則によって求められる操作量を一旦ZMP位置のずれに変換し、これに目標ZMP位置からZMP存在可能領域の境界までの余裕に応じた制限を加える手法e.操作量がPD制御則によって求められる場合、P成分から求められる操作量にのみ制限を加え、発振を抑えるダンピング効果を持つD成分には制限を加えない手法、あるいはその逆の手法f.実床反力モーメントMact が限界値を超えない様に、Mact に応じて制限値が可変となるリミッタに、実床反力操作モーメントMactcomm を通す手法g.Mact が限界値を超えたら、超えた分に、あるゲインを乗じてMactcomm から減算する手法h.実ロボットの床反力計測値から実ロボットのZMP位置を求め、これがZMP存在可能領域を超えそうになったら、それ以上Mactcomm の絶対値を増やさない手法
【0130】更に、分配を数24の式の様に単純に比例配分する手法も考えられる。
【0131】
【数24】
【0132】また、周波数帯域に応じて分配する手法も考えられる。例えば、実ロボットの床反力操作量Mactcomm には、実傾き偏差制御要求制御量Merrdmdとモデル傾き(あるいはモデル上体位置)制御要求制御量Mmdldmdの高域成分だけを与え、低域をモデル操作量Mmdl に与えれば、リミッタをかけなくても実ロボットの床反力操作量は小さく抑えられるので、接地性は高くなる。
【0133】また、第2実施例ではフィードバック則で操作量を求めてから、リミッタおよび分配器に通しているが、逆の順序で求めても良く、あるいは分配器の前後両方にリミッタを挿入する手法なども考えられよう。
【0134】更に、第1実施例から第6実施例で述べた歩容についての記述を補足すると、通常、歩容は接地を確保するための床反力に関する要件とその他の拘束条件により記述され、これらを満足する様に関節変位が決定される。拘束条件としては、足平軌道や上体姿勢、関節の変位が無理な挙動をしないための上体高さの決定式などが用いられる。床反力に関する要件としては、代表的なものとして例えば、平面床歩行においてはZMPの存在可能領域が知られている。接地面を含む最小凸多角形がZMPの存在可能領域であり、その中にZMP目標軌道を設定し、歩容からオイラー・ニュートン方程式などを用いて動力学的に求められるZMPが、ZMP目標軌道に一致する様に歩容が生成される。また、床反力に関する要件の代わりに、足首トルクの様なある特定の部位に作用する力やモーメントに関する要件を与えても良い。例えば、2足歩行ロボットの片脚支持期においては、支持脚足首は床に近いので、足首トルクは、足首の床への垂直投影点に作用する床反力モーメントと密接な関係を持つからである。
【0135】また、動力学モデルでは、目標床反力の要件を満足するモデルの挙動を求めなければならない。目標床反力の要件とは、例えば、ZMP目標位置にモーメントMmdl が発生することである。ところで、モデルの足平位置・姿勢と上体の姿勢は歩容生成部から与えられているので、片脚あたり6自由度の実施例に係るロボットでは、上体の姿勢を決定すれば、全関節の変位が決定される。上体のうち、高さは例えば、各瞬間における膝などの関節の変位、速度、加速度などがアクチュエータの能力を超えない様に、かつ床垂直抗力が負にならない様に決定される。従って、上体の位置のうちで、残った上体の前後左右の挙動によって目標床反力の要件を満足させることとなる。しかし、各瞬間における目標床反力の要件を満足する上体前後左右位置を解析的に直接求めることは困難であるので、実際には逆に上体の位置を与え、それに対する床反力を求めながら、擬似的なニュートン法などの収束法により、目標床反力の要件を満足する上体の位置を探索する。尚、演算の高速性を重視する場合には、多少の誤差を生じても、探索回数に制限を加えれば良い。極端な場合、探索回数は1回にしても良いであろう。
【0136】また、両脚支持期にはMact を大きくしても接地性が失われない。そこで、両脚支持期にリミッタ制限値を大きくしたり、モデル上体位置制御則などのゲインを高くしても良い。
【0137】また、歩行の環境や目的によって、姿勢を重視したいときと、階段や飛び石上の歩行の様に着地位置精度を重視したいときとがある。そこで、各制御ゲインを可変にすると、状況に応じたより緻密な制御が実現できる。例えば、姿勢安定を重視したいときには、モデル上体位置制御(あるいはモデル傾き制御)の制御ゲインを下げて要求制御量Mmdldmdを小さくし、モデル傾き(あるいはモデル上体位置)を0に収束させる制御を主に着地位置などの歩容パラメータ修正によって行う。こうすれば、実ロボットの操作モーメントMactcomm が小さくなって、実ロボットのZMP位置がZMP存在可能領域の中央付近に寄ってくるので、安定余裕が大きくなるからである。但し、その代わり着地位置などの歩容パラメータが大きく修正されるので、着地位置精度は悪くなる。また歩行の環境や目的によって、制御則の周波数ゲイン特性を調整しても、状況に応じたより緻密な制御が実現できる。
【0138】尚、上記した第1ないし第6実施例において、実ロボットの床反力のフィードバック制御として、コンプライアンス制御を導入しているが、トルク制御を導入しても良い。床の形状が既知で、床の凹凸による外乱があまり発生しない場合や、メカニカル機構によってコンプライアンスが実現されている場合には、特に床反力フィードバック制御を行わなくても良い。その場合でもこの発明の効果が失われる訳ではない。
【0139】更に、上記において2足歩行の脚式移動ロボットを例にとって説明してきたが、それに限られるものではなく、この発明は3足以上の脚式移動ロボットにも妥当し、更には脚式に限らず、車輪型やクローラ型など他の形態の移動ロボットに妥当するものである。
【0140】
【発明の効果】請求項1項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正する様に構成したので、何らかの外乱などによって前記傾き角(角速度)偏差が非常に大きくなっても、接地性を確保したまま(即ち、足裏が浮かない様にしながら)、前記モデルと実ロボットの床反力の差を活用して大きな姿勢復元作用を得ることができる。またモデルは床と干渉しないから、モデルに追従する実ロボットも床と干渉せず、着地衝撃を小さい値に抑制することができる。
【0141】請求項2項にあっては、制御対象のモデルを少なくとも2つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差及び/又は前記モデル間の傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルのいずれかにフィードバックしてモデルの挙動を修正する様に構成したので、上位のモデル(即ち、多段連結モデルのうちで実ロボットから遠く離れているモデル)ほど実ロボットに作用する外乱の影響が小さくなり、モデルの挙動予測精度が高くなって、実ロボットと全モデルすべての姿勢安定性を一層確実に実現することができる。
【0142】請求項3項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を前記モデルと実ロボットに分配しつつフィードバックしてモデルの挙動を修正する様に構成したので、請求項1項で述べた効果に加え、モデルの姿勢の崩れをある程度は抑制することができる。
【0143】請求項4項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルに対する実ロボットの傾き偏差に応じて前記モデルに与える床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させる様に構成したので、請求項1項で述べた効果をより直接的に得ることができる。
【0144】請求項5項にあっては、制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾き偏差に応じた操作量を前記モデルと実ロボットに分配しつつ与えて床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルも歩容を修正して前記傾き偏差を収束させる様に構成したので、請求項1項で述べた効果をより直接的に得ることができると共に、一層効果的にモデルの姿勢を回復することができる。
【0145】請求項6項にあっては、脚式移動ロボットの姿勢安定化制御装置において、実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、目標歩容と実ロボットの姿勢傾き偏差を検出する手段、および前記偏差を小さくする様に、前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を修正したものを前記目標歩容として前記実ロボットの関節変位を追従させる手段を備える様に構成したので、請求項1項で述べた効果に加えて、演算量を低減することができ、コンピュータを用いて実現するときもその能力が低いもので足りる。
【0146】請求項7項にあっては、脚式移動ロボットの姿勢安定化制御装置において、実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、実ロボットのリンク構造を表す幾何学モデル、前記幾何学モデルと実ロボットの姿勢傾き偏差を検出する手段、および前記偏差を小さくする様に前記摂動動力学モデルに床反力を加え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を前記幾何学モデル上で修正し、幾何学モデルの関節変位を目標として前記実ロボットの関節変位を追従させる手段を備える様に構成したので、請求項6項で述べた効果に加えて、床との干渉をより小さくすることができる。
【0147】請求項8項にあっては、少なくとも着地位置などの歩容パラメータを修正して前記モデルの姿勢を安定に保つ様に構成したので、従前までの請求項で述べた効果に加えて、一層簡易にモデルの姿勢を安定に回復することができる。
【0148】請求項9項にあっては、少なくとも新たな床反力を加えて前記モデルの姿勢を安定に保つ様に構成したので、請求項8項で述べたと同様の効果を得ることができる。
【0149】請求項10項にあっては、着地位置などの歩容パラメータを修正すると共に、新たな床反力を加えて前記モデルの姿勢を安定に保つ様に構成したので、従前までの請求項で述べた効果に加えて、一層効果的にモデルの姿勢を安定に回復することができる。
【図面の簡単な説明】
【図1】図1は本出願人が先に提案したZMP制御を示す説明図である。
【図2】図1に示す制御において実ZMPが目標ZMP(モデルから設定されるZMP)からずれた状態を示す説明図である。
【図3】この発明に係る脚式移動ロボットの姿勢安定化制御装置の特徴(原理)を示す説明図である。
【図4】この発明の原理(特徴)を説明するものであって、単純な実ロボットの構造パラメータと実ロボットの基本局所制御を示す説明図である。
【図5】図4に例示したものとこの発明の原理(特徴)を比較する説明ブロック図である。
【図6】図5に示すブロック図を変形したものを簡略的に示す説明図である。
【図7】この発明に係る脚式移動ロボットの姿勢安定化制御装置を全体的に示す概略図である。
【図8】図7に示す制御ユニットのブロック図である。
【図9】この発明の第1実施例の動作を示すブロック図である。
【図10】第1実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図11】図10フロー・チャートのうちの姿勢演算および制御のサブルーチン・フロー・チャートである。
【図12】図10フロー・チャートのうちのコンプライアンス制御のサブルーチン・フロー・チャートである。
【図13】この発明の第2実施例の動作を示すブロック図である。
【図14】第2実施例で使用するリミッタおよび分配器を説明するブロック図である。
【図15】第2実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図16】図15フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図17】図15フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図18】この発明の第3実施例の動作を示すブロック図である。
【図19】第3実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図20】図19フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図21】図19フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図22】この発明の第4実施例の動作を示すブロック図である。
【図23】第4実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図24】図23フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図25】図23フロー・チャートの中のコンプライアンス制御のサブルーチン・フロー・チャートである。
【図26】この発明の第5実施例の動作を示すブロック図である。
【図27】第5実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図28】図27フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図29】図27フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【図30】この発明の第6実施例の動作を示すブロック図である。
【図31】第6実施例の動作を示すメイン・ルーチン・フロー・チャートである。
【図32】図31フロー・チャートの中の姿勢演算および制御のサブルーチン・フロー・チャートである。
【図33】図31フロー・チャートの中のコンプライアンスおよび姿勢安定化制御のサブルーチン・フロー・チャートである。
【符号の説明】
1 脚式移動ロボット(2足歩行ロボット)
2 脚部リンク
10R,10L 脚部回旋用の関節
12R,12L 腰部のロール方向の関節
14R,14L 腰部のピッチ方向の関節
16R,16L 膝部のピッチ方向の関節
18R,18L 足首部のピッチ方向の関節
20R,20L 足首部のロール方向の関節
22R,22L 足平
24 上体
26 制御ユニット
36 6軸力センサ
【特許請求の範囲】
【請求項1】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項2】 制御対象のモデルを少なくとも2つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差及び/又は前記モデル間の傾斜などの状態量の偏差に応じた操作量を、少なくとも前記モデルのいずれかにフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項3】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を前記モデルと実ロボットに分配しつつフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項4】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルに対する実ロボットの傾き偏差に応じて少なくとも前記モデルに与える床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させることを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項5】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾き偏差に応じた操作量を前記モデルと実ロボットに分配しつつ与えて床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させることを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項6】 脚式移動ロボットの姿勢安定化制御装置において、a.実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、b.目標歩容と実ロボットの姿勢傾き偏差を検出する手段、およびc.前記偏差を小さくする様に、少なくとも前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を修正したものを前記目標歩容として前記実ロボットの関節変位を追従させる手段、を備えたことを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項7】 脚式移動ロボットの姿勢安定化制御装置において、a.実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、b.実ロボットのリンク構造を表す幾何学モデル、c.前記幾何学モデルと実ロボットの姿勢傾き偏差を検出する手段、およびd.前記偏差を小さくする様に、少なくとも前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を前記幾何学モデル上で修正し、幾何学モデルの関節変位を目標として前記実ロボットの関節変位を追従させる手段、を備えたことを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項8】 少なくとも着地位置などの歩容パラメータを修正して前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【請求項9】 少なくとも新たな床反力を加えて前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【請求項10】 着地位置などの歩容パラメータを修正すると共に、新たな床反力を加えて前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【請求項1】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を少なくとも前記モデルにフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項2】 制御対象のモデルを少なくとも2つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差及び/又は前記モデル間の傾斜などの状態量の偏差に応じた操作量を、少なくとも前記モデルのいずれかにフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項3】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾斜などの状態量の偏差に応じた操作量を前記モデルと実ロボットに分配しつつフィードバックしてモデルの挙動を修正することを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項4】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルに対する実ロボットの傾き偏差に応じて少なくとも前記モデルに与える床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させることを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項5】 制御対象のモデルを少なくとも1つ備えるモデル追従型の脚式移動ロボットの姿勢安定化制御装置であって、前記モデルと実ロボットの傾き偏差に応じた操作量を前記モデルと実ロボットに分配しつつ与えて床反力目標値を修正し、修正された床反力目標値を満足する様に前記モデルの歩容を修正して前記傾き偏差を収束させることを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項6】 脚式移動ロボットの姿勢安定化制御装置において、a.実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、b.目標歩容と実ロボットの姿勢傾き偏差を検出する手段、およびc.前記偏差を小さくする様に、少なくとも前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を修正したものを前記目標歩容として前記実ロボットの関節変位を追従させる手段、を備えたことを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項7】 脚式移動ロボットの姿勢安定化制御装置において、a.実ロボットの力学モデルを基に接地性が保証される様に床反力が設計された基準歩容からの挙動摂動分と、床反力摂動分の関係を模擬する少なくとも1つの摂動動力学モデル、b.実ロボットのリンク構造を表す幾何学モデル、c.前記幾何学モデルと実ロボットの姿勢傾き偏差を検出する手段、およびd.前記偏差を小さくする様に、少なくとも前記摂動動力学モデルに床反力を与え、それによって生じた摂動動力学モデルの変位に応じて前記基準歩容を前記幾何学モデル上で修正し、幾何学モデルの関節変位を目標として前記実ロボットの関節変位を追従させる手段、を備えたことを特徴とする脚式移動ロボットの姿勢安定化制御装置。
【請求項8】 少なくとも着地位置などの歩容パラメータを修正して前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【請求項9】 少なくとも新たな床反力を加えて前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【請求項10】 着地位置などの歩容パラメータを修正すると共に、新たな床反力を加えて前記モデルの姿勢を安定に保つことを特徴とする請求項1項ないし7項のいずれかに記載の脚式移動ロボットの姿勢安定化制御装置。
【図6】
【図1】
【図2】
【図3】
【図7】
【図14】
【図4】
【図5】
【図8】
【図9】
【図10】
【図11】
【図12】
【図15】
【図13】
【図16】
【図17】
【図21】
【図18】
【図19】
【図20】
【図22】
【図23】
【図25】
【図24】
【図26】
【図27】
【図29】
【図28】
【図30】
【図31】
【図33】
【図32】
【図1】
【図2】
【図3】
【図7】
【図14】
【図4】
【図5】
【図8】
【図9】
【図10】
【図11】
【図12】
【図15】
【図13】
【図16】
【図17】
【図21】
【図18】
【図19】
【図20】
【図22】
【図23】
【図25】
【図24】
【図26】
【図27】
【図29】
【図28】
【図30】
【図31】
【図33】
【図32】
【公開番号】特開平5−337849
【公開日】平成5年(1993)12月21日
【国際特許分類】
【出願番号】特願平4−164297
【出願日】平成4年(1992)5月29日
【出願人】(000005326)本田技研工業株式会社 (23,863)
【公開日】平成5年(1993)12月21日
【国際特許分類】
【出願日】平成4年(1992)5月29日
【出願人】(000005326)本田技研工業株式会社 (23,863)
[ Back to top ]