JP3658147B2 - Gait generator for legged mobile robot - Google Patents

Gait generator for legged mobile robot Download PDF

Info

Publication number
JP3658147B2
JP3658147B2 JP21395397A JP21395397A JP3658147B2 JP 3658147 B2 JP3658147 B2 JP 3658147B2 JP 21395397 A JP21395397 A JP 21395397A JP 21395397 A JP21395397 A JP 21395397A JP 3658147 B2 JP3658147 B2 JP 3658147B2
Authority
JP
Japan
Prior art keywords
gait
parameter
mobile robot
legged mobile
zmp
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP21395397A
Other languages
Japanese (ja)
Other versions
JPH1086081A (en
Inventor
透 竹中
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Honda Motor Co Ltd
Original Assignee
Honda Motor Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Honda Motor Co Ltd filed Critical Honda Motor Co Ltd
Priority to JP21395397A priority Critical patent/JP3658147B2/en
Publication of JPH1086081A publication Critical patent/JPH1086081A/en
Application granted granted Critical
Publication of JP3658147B2 publication Critical patent/JP3658147B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)
  • Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、脚式移動ロボットの歩容生成装置に関し、より詳しくは脚式移動ロボットにおいてその歩容を自在かつリアルタイムに生成できるようにしたものに関する。
【0002】
【従来の技術】
従来の脚式移動ロボットにおいて、例えば特開平5−285868号公報記載の技術に示されるように、直進、方向転換などの種々の歩容を予めオフラインで設計し、設計値をロボットに搭載した制御用マイクロコンピュータのメモリに記憶させておき、歩行時に適当な順で出力して実行することが提案されている。
【0003】
また、特開昭62−97006号(特公平5−62363号)公報記載の技術も同様に予めオフラインで生成した歩行パターンデータをメモリに記憶させておき、歩行時に出力すると共に、必要に応じて記憶された時系列データ間を時間的に補間して刻み時間を細分化することを提案している。
【0004】
【発明が解決しようとする課題】
しかしながら、上記した従来技術にあっては、歩容データが予め決められているので、任意の歩幅や旋回角を実現するなど歩容を自在かつリアルタイムに生成することができなかった。
【0005】
この発明の第1の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて、床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現できるようにした脚式移動ロボットの歩容生成装置を提供することにある。
【0006】
この発明の第2の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて歩容を自在かつリアルタイムに生成すると共に、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続であるようにした脚式移動ロボットの歩容生成装置を提供することにある。
【0007】
この発明の第3の目的は従来技術の上記した不都合を解消し、脚式移動ロボットにおいて、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御するようにした脚式移動ロボットの歩容生成装置を提供することにある。
【0008】
【課題を解決するための手段】
上記の第1および第2の目的を達成するために、例えば請求項1項において、少なくとも上体と、前記上体に関節を介して連結される複数本の脚部リンクとからなる脚式移動ロボットの歩容生成装置において、少なくとも1歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段、歩容に関する要求を行う歩容要求手段、および前記歩容に関する要求に対して前記標準歩容を1個から複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段を備える如く構成した。
【0009】
請求項2項にあっては、前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求める如く構成した。
【0010】
請求項3項にあっては、前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【0011】
請求項4項にあっては、前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【0012】
請求項5項にあっては、前記歩容生成手段は、前記標準歩容の少なくとも1個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【0013】
請求項6項にあっては、前記標準歩容生成手段は、前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段、を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成する如く構成した。
【0014】
請求項7項にあっては、前記その他のパラメータの摂動が上体の水平位置の摂動である如く構成した。
【0015】
請求項8項にあっては、前記関係が線形モデルで表現される如く構成した。
【0016】
請求項9項にあっては、前記関係が倒立振子モデルで表現される如く構成した。
【0017】
請求項10項にあっては、前記関係が時系列値で表現される如く構成した。
【0018】
請求項11項にあっては、前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求める如く構成した。
【0019】
請求項12項にあっては、前記歩容生成手段は、前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段、および算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆制御手段を備える如く構成した。
【0020】
請求項13項にあっては、前記関節角度決定手段は、前記ロボットの状態量を検出する検出手段、および検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出する如く構成した。
【0021】
【作用】
床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現することができる。また、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続させることができる。更に、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御することができる。
【0022】
【発明の実施の形態】
以下、添付図面を参照してこの発明に係る脚式移動ロボットの歩容生成装置を説明する。尚、脚式移動ロボットとしては2足歩行ロボットを例にとる。
【0023】
図1はその2足歩行ロボット1を含む装置全体の説明図である。
【0024】
図示の如く、2足歩行ロボット1は左右それぞれの脚部リンク2に6個の関節を備える(理解の便宜のために各関節をそれを駆動する電動モータで示す)。6個の関節は上から順に、股(腰部)の脚部回旋用の関節10R,10L(右側をR、左側をLとする。以下同じ)、股(腰部)のピッチ方向(Y軸まわり)の関節12R,12L、同ロール方向(X軸まわり)の関節14R,14L、膝部のピッチ方向の関節16R,16L、足部のピッチ方向の関節18R,18L、同ロール方向の関節20R,20Lから構成される。
【0025】
足部には足平22R,22Lが取着されると共に、最上位には上体(基体)24が設けられ、その内部に図2に関して後述するマイクロコンピュータからなる制御ユニット26などが格納される。上記において股関節(あるいは腰関節)は関節10R(L),12R(L),14R(L)から、足関節は関節18R(L),20R(L)から構成される。また股関節と膝関節とは大腿リンク28R,28L、膝関節と足関節とは下腿リンク30R,30Lで連結される。
【0026】
上記の構成により、脚部リンク2は左右の足についてそれぞれ6つの自由度を与えられ、歩行中にこれらの6*2=12個の関節を適宜な角度で駆動することで、足全体に所望の動きを与えることができ、任意に3次元空間を歩行させることができる(この明細書で「*」は乗算を示す)。
【0027】
尚、この明細書で後述する上体の位置およびその速度は、上体24の所定位置、具体的には上体24の重心位置などの代表点およびその(変位)速度を意味する。
【0028】
図1に示す如く、足関節の下方には公知の6軸力センサ44が取着され、力の3方向成分Fx,Fy,Fzとモーメントの3方向成分Mx,My,Mzとを測定し、足部の着地の有無ないしは接地荷重などを検出する。また、上体24には傾斜センサ60が設置され、Z軸(鉛直方向)に対する傾きとその角速度を検出する。また各関節の電動モータには、その回転量を検出するロータリエンコーダが設けられる。
【0029】
更に、図1では図示を省略するが、2足歩行ロボット1の適宜な位置にはジョイスティック62が設けられ、外部から必要に応じて直進歩行しているロボットを旋回させるなど要求歩容を入力できるように構成される。
【0030】
図2は制御ユニット26の詳細を示すブロック図であり、マイクロ・コンピュータから構成される。そこにおいて傾斜センサ60などの出力はA/D変換器70でデジタル値に変換され、その出力はバス72を介してRAM74に送られる。また各電動モータに隣接して配置されるエンコーダの出力はカウンタ76を介してRAM74内に入力される。
【0031】
制御ユニット内にはCPUからなる第1、第2の演算装置80,82が設けられており、第1の演算装置80は後述の如く、ROM84に格納されている標準歩容に基づいて自在かつリアルタイムに歩容を生成すると共に目標関節角を算出し、RAM74に送出する。また第2の演算装置82はRAM74からその目標値と検出された実測値とを読み出し、各関節の駆動に必要な制御値を算出してD/A変換器86とサーボアンプを介して各関節を駆動する電動モータに出力する。
【0032】
図3はこの装置の動作を機能的に示すブロック図であり、図4はその中の歩容混合ないし歩容生成処理を示すフロー・チャート(構造化フロー・チャート)である(この明細書では歩容生成を『歩容混合』ともいう)。
【0033】
最初にこの装置が生成する歩容について説明すると、この発明の目的は前記したように歩容をリアルタイムに生成する装置を提供することにあり、より具体的には本出願人が先に特開平5−305585号公報において提案した両脚コンプライアンス制御によるロボットの姿勢安定化制御を行うために必要な目標歩容を自在に生成することを目的としている。
【0034】
そこで先ず、先に提案した姿勢安定化制御について簡単に説明すると、その技術にあっては床反力(ZMP)の目標位置と実測位置の偏差を検出し、その偏差を解消するように脚部の一方または双方を駆動して姿勢の安定化を図っている。それと共に、ロボットが倒れそうになると、目標床反力を意図的にずらすことによって実床反力をずらし、姿勢復元力を得るようにしている。
【0035】
かかる如く、脚式移動ロボットにおいては、目標運動軌跡と目標床反力パターンの関係が動力学的平衡条件を満足していなければ、安定した歩行が実現できない。動力学的平衡条件とは、具体的には、例えば、目標床反力中心点(目標床反力分布の2次モーメントが0になる床上の作用点)とZMP(Zero Moment Point...運動による慣性力と重力の合力が床と交わる点)が一致することである。一致していないと、コンプライアンス制御が働いた時に、慣性力と重力の合力と床反力との間の動バランスを崩し、転倒する。
【0036】
先に提案した技術においては、それをロボットが不安定となったときの姿勢回復に逆用しているが、上記から明らかな如く、脚式移動ロボットにおいてはこのように歩行制御に与える目標値として、目標の運動パターンだけではなく、目標の運動パターンと動力学的平衡条件を満足する目標床反力パターンも必要である。
【0037】
目標床反力は、一般的には、作用点とその点に作用する力と力のモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に前述の目標床反力中心点を作用点にして目標床反力を表現すると、力のモーメントは、床に垂直な成分を除けば、0になる。
【0038】
尚、前述のように、目標の運動軌道と動力学的平衡条件を満足する目標床反力中心点軌道はZMPと一致するから、目標床反力作用中心点軌道の代わりに目標ZMP軌道を与えると言っても同じことである。
【0039】
従って、上記は、『歩行制御に与える目標値としては、目標運動軌跡だけでなく、目標ZMP軌道(目標床反力パターン)も必要である』と言い換えることができる。このような背景から、この明細書では目標歩容を、次のように定義する。
【0040】
a)広義の目標歩容とは、1歩ないしは複数歩の期間の目標運動軌跡とその目標床反力パターンの組である。
b)狭義の目標歩容とは、1歩の期間の目標運動軌跡とそのZMP軌道の組である。
c) 一連の歩行は、いくつかの歩容がつながったものとする。
【0041】
尚、以下では、理解を容易にするために、特にことわらない限り、目標歩容は狭義の目標歩容の意味で使用する。より詳しくは、この明細書では、目標歩容は、両脚支持期の初期から片脚支持期の終端までの意味で使用する。尚、両脚支持期とは言うまでもなく、ロボット1がその自重を脚部リンク2の双方で支持する期間を、片脚支持期とは脚部リンク2の一方で支持する期間をいう。片脚支持期においてロボット1の自重を支持しない側の脚部(リンク)を遊脚と呼ぶ。
【0042】
この発明は、具体的には、上記に定義した目標歩容を自在かつリアルタイムに生成することを目的としている。自在かつリアルタイムに生成できれば、例えばロボット1を遠隔操縦によってオペレータが自由自在に操ることができ、また、自動操縦においても、単なる固定シーケンス通りに移動するだけでなく、誘導制御やデリケートな位置決めも可能となる。
【0043】
ここで、目標歩容としての条件を説明する。
【0044】
目標歩容が満たさなければならない条件は、大きく分けて以下の5つに分類される。
条件1)動力学的平衡条件を満足していること。即ち、ロボット1の目標運動軌跡から動力学的に算出されるZMP軌道が目標ZMP軌道と一致していること。
条件2)ロボット1の歩行計画部や歩行経路誘導部(共に図示せず)、あるいはオペレータから歩幅や旋回角など歩容が満たすべき条件が要求される場合、それらの要求条件を満たしていること。
【0045】
条件3)足平が床を掘ったり擦ったりしない、関節角度が可動範囲を超えない、関節速度が限界を超えないなどの、キネマティクス(運動学)に関する制約条件を満たしていること。
条件4)片脚支持期においてZMPが支持脚足平接地面内になければならない、駆動系の最大能力を超えないなどの、ダイナミクスに関する制約条件を満たしていること。
【0046】
条件5)境界条件を満たしていること。即ち、条件1)の当然の帰結として、歩容と歩容の境界では、少なくとも、各部位の変位と(変位)速度が連続であるという境界条件が導かれる(不連続であれば、無限大の力が発生したり、ZMPが接地面からはるかに遠くの点に移動してしまうから)。
【0047】
また、第n+1回歩容の初期状態は、第n回歩容の終端状態(特に、足平位置に対する上体の位置・姿勢および速度)に一致するように設定されなければならない。このとき、第n回歩容の終端状態は、第n+1回歩容の初期状態が決まっていれば、第n+1回歩容の初期状態に一致させれば良い。
【0048】
決まっていなければ、第n回歩容の終端状態が、姿勢が崩れないで長期的な歩行ができる範囲に入っていれば良い。但し、後述するように、姿勢が崩れないで長期的な歩行ができるための終端状態の範囲を求めることは、極めて難しい。
【0049】
一般的に、目標歩容は、後述する標準歩容のように、パラメータ値あるいは時系列テーブルを含む歩容発生アルゴリズムによって発生させられる(歩容を決定するということは、パラメータ値あるいは時系列テーブルを適当に設定することに他ならない)。
【0050】
パラメータ値あるいは時系列テーブルを変えることによって、様々な歩容が生成される。しかし、パラメータ値あるいは時系列テーブルを十分な配慮もせずに設定しただけでは、作成された歩容が前記の歩容条件をすべて満足しているか否かは分からない。
【0051】
特に、長期的歩行に適した終端上***置および速度の範囲が分かっていたとしても、ZMP軌道に基づいて上記した条件1)を満足する上体の軌道を歩容発生アルゴリズムに従って生成する場合には、発生した歩容の終端での上***置と速度の両方がその範囲に入るようにZMP軌道に関するパラメータを設定することは、極めて難しい。
【0052】
その理由は次の通りである。
理由1)上体は、一旦、ZMPから遠くに離れると、さらに遠くに離れようとする発散傾向がある。これを説明するために、ロボットの上体の挙動に近い倒立振子の挙動を例に挙げる。
【0053】
倒立振子は重心の床投影点が支点からずれると、ずれが発散して倒れる。しかし、そのときも倒立振子の慣性力と重力の合力は支点上に作用し(即ち、ZMPが支点に一致し)、支点から受ける床反力に釣り合っている。即ち、動力学的平衡条件は、運動する物体のその瞬間における慣性力と重力と床反力の関係を表すだけのものである。
【0054】
動力学的平衡条件を満足していればロボットの長期歩行が保証されたように錯覚しやすいが、ロボットの姿勢が崩れているか否かとは全く関係がない。倒立振子の重心が支点の真上から離れると、ますます遠くに離れようとする傾向があるように、ロボットの重心がZMPの真上から遠くに離れるとますます遠くに離れようとする発散傾向がある。
【0055】
理由2)片脚支持期においてZMPが支持脚足平接地面内になければならないなどの厳しい制約条件があるために、上体の加減速パターンを恣意的に設定することができず、位置を合わせようとすると速度が合わず、速度を合わせようとすると位置が合わず、なかなか両方を同時に一致させることは難しい。例えて言えば、自動車の運転において、ブレーキを踏む力をある狭い範囲に限定されている状況で、決められた時刻にぴったりと目標停止線の上で停止するようなものである。
【0056】
以上の問題点のために、前記歩容条件を全て満たした目標歩容のパラメータやテーブルをリアルタイムに決定することは、従来では不可能であった。そのため、前記した従来技術では、自在な歩行は実現されていなかった。
【0057】
上記を前提として図3を参照してこの発明に係る装置を説明する。尚、同図は、図4フロー・チャートに示すこの装置の動作を理解の便宜のために機能的に示すブロック図である。
【0058】
この装置にあっては図示の如く、オフラインで作成され、ROM84に格納されている標準歩容に基づき、歩行時にリアルタイムに発せられる歩容に対する要求(歩容の変更など)を満足するように、混合歩容瞬時値発生器において歩容が生成される。
【0059】
標準歩容はオフラインにおいて種々の歩容を試行錯誤して作成し、その中から上体が発散せず、その後の継続的な歩行が保証される終端状態を持つ歩容を選択し、前記ROM84に記憶されてなる。例えば、静止状態から歩き始める歩容、加速歩容、等速度歩容、減速歩容、停止歩容など、一連の継続した歩容の列などは、継続的な歩行が保証された標準歩容の代表例である。
【0060】
歩容は、歩容パラメータによって記述される。歩容パラメータは、運動パラメータとZMPパラメータ(より一般的に表現すれば、床反力パラメータ)から構成される。尚、この明細書で『床反力パラメータ』なる語は、『床反力の時間的なパターンに関するパラメータ』を意味するものとして使用する。
【0061】
ZMPパラメータは後で図7などに示すように、X,Y,Z座標(方向)について折れ線グラフ状のZMP軌道の折れ点の位置と通過時刻で示す(X座標のみ図示)。混合歩容瞬時値発生器においては、ZMPパラメータに基づいてZMP生成器でZMP(軌道)の瞬時値(今回(現在時刻)制御周期の値)が算出される。
【0062】
運動パラメータは、足平(軌道)パラメータと上体(軌道)パラメータとから構成される。
【0063】
足平軌道パラメータは、初期(離床時)遊脚位置および姿勢、終端(着床時)遊脚位置および姿勢、両脚支持期時間、片脚支持期時間などを含む。これらに基づき、足平軌道発生器において先に本出願人が特開平5−318339号および特開平5−324115号公報などで提案した技術を用いて、両足平の位置(xf ,yf ,zf )および姿勢(θxf ,θyf ,θzf )の瞬時値が求められる。尚、ここで『姿勢は空間上の傾斜または向き』を意味する。
【0064】
上体軌道パラメータは、上体の姿勢(空間上の上体24の向きあるいは傾き)を決定するパラメータ、上体高さ(Z方向の値)を決定するパラメータ、初期の上***置(変位)および速度パラメータなどから構成される。
【0065】
上体水平位置発生器においては、上体の位置および姿勢を決定するパラメータに基づいて時間関数または先に特開平5−324115号公報で本出願人が提案した技術などで上体の水平位置(xb ,yb )および姿勢(θxb ,θyb ,θzb )の瞬時値が求められる。尚、前記したように上体の位置は、上体24の重心位置などの代表点を意味する。また上体高さ決定器において、上体高さzb は適宜な手法、例えばこの出願と同時に本出願人が提案する手法で決定される。
【0066】
脚式移動ロボット1の関節は図1に示すように12関節から構成されているので、得られた両足平の位置・姿勢と上***置・姿勢とから、逆キネマティックス演算によって目標関節変位が一義的に決定される。即ち、今回のロボットの目標姿勢が一義的に決定される。(正確には、両足平の目標位置・姿勢が両脚コンプライアンス制御によって修正された後、目標関節変位が計算される。)
【0067】
尚、本来、歩容は歩容パラメータだけで一義的に表現されているが、この実施の形態では歩行時の演算量を低減するために、標準歩容の上体軌跡をあらかじめオフラインで計算しておいて時系列テーブルにして記憶させておき、制御周期毎に現在時刻データを吐き出すようにした。尚、若干誤差が発生するが、ROM84の容量が少ない場合には標準歩容の上体軌跡を多項式で近似し、時系列テーブルの代わりに、その近似式の係数を歩容パラメータの一種として記憶しても良い。
【0068】
ここで標準歩容についての説明を補足すると、標準歩容はより具体的には、この明細書で時間関数として表し、1つの歩容は次のように定義されるg(t)とf(t)の組で表すようにした。
g(t):運動を記述する関数(この関数値は、時刻tにおけるロボット全体の位置・姿勢を表す。具体的には全体の位置・姿勢は図3に示すように、上体の位置・姿勢、両足平の位置・姿勢で表される)。
f(t):ZMP軌道を記述する関数(この関数の値は前記の如く、時刻tにおけるZMPの位置(x,y,z)を表す)。
【0069】
また歩容関数はパラメータを意識して記号表記するようにした。即ち、g(t)とf(t)は、共に歩容パラメータをパラメータとして持つ関数である。異なる歩容を明確に示すためには全パラメータを明示的に表記すべきであるが、パラメータの種類は非常に多いので、以降の説明に必要なパラメータ変数だけを明記した、以下の表記を用いることとする。
g( t: a, b, c, d, x(k), y(k)):運動軌道を記述する関数
f( t: a, b, c, d):ZMP軌道を記述する関数(床反力を記述する関数)
但し、
a :初期遊脚足平向き(ロボット旋回角)
b :初期遊脚足平前後位置(歩幅)
c :片脚支持期のZMPのX座標
d :片脚支持期のZMPのY座標
x(k) :上***置のX座標時系列
y(k) :上***置のY座標時系列
【0070】
この表記では、時系列も一種のパラメータとして扱っている。本来は、初期上***置・速度パラメータを与えれば、上***置の時系列テーブルがなくても歩容は一義的に定まる。即ち、上***置の時系列は冗長なものであるが、前述したようにリアルタイム歩容生成の演算時間短縮のために、上***置の時系列テーブルも歩容を記述するパラメータのように扱っている。
【0071】
この実施の形態では、初期上***置・速度パラメータも歩容によって異なるが、上***置の時系列を明記している場合には、時系列の最初の2つから初期上***置・速度パラメータ値が算出できるので、その記述を省略する。
【0072】
この実施の形態においては標準歩容として、前記した如く、静止状態から歩き始める歩容など複数種の歩容をオフラインで予め作成しておくが、以下3種の歩容を具体例として例示する。
第0標準歩容
g( t: a0, b0, c0, d0, x0(k), y0(k))
f( t: a0, b0, c0, d0)
第1標準歩容
g( t: a1, b0, c1, d1, x1(k), y1(k))
f( t: a1, b0, c1, d1)
第2標準歩容
g( t: a0, b2, c2, d2, x2(k), y2(k))
f( t: a0, b2, c2, d2)
【0073】
これら標準歩容の初期遊脚足平位置・姿勢と終端遊脚足平位置・姿勢などを、図5ないし図11に示す。歩容を表現するために、座標系を本図に示すように、支持脚足平接地位置のある基準点を原点にし、支持脚足平の前後方向をX軸、左右方向をY軸にとる。
【0074】
図4フロー・チャートの説明に入る前に、ここで図12および図13に示すような歩容に関する要求が与えられたと仮定し、上記した標準歩容から前記歩容条件を満たすように要求歩容(前記した近似歩容)(以下「第3歩容」と言う)を生成する作業を例にとってこの装置の動作を説明する。尚、第3歩容は、任意の初期遊脚足平向きa3および任意の初期遊脚足平前後位置b3を持つ。
【0075】
当然、第3歩容のパラメータaの値はa3、bの値はb3である。問題は、歩容の条件を満たすように、その他のパラメータc,dおよびテーブルx(k), y(k)を如何に決定するかである。
【0076】
そこで、第3歩容を
g( t: a3, b3, c3, d3, x3(k), y3(k))
f( t: a3, b3, c3, d3)
とおき、パラメータc3, d3および時系列テーブルx3(k), y3(k)を決定する。
【0077】
ここで、用語を定義すると、パラメータaおよびbは、この装置以外の外部(オペレータのジョイスティック62などの操作による)または別の装置(図3ブロック図において両脚コンプライアンス制御器など)からこの装置に対して要求設定値(前記した「歩容に関する要求」に同じ)として入力される値を含む。このように、直接的にある設定値を要求されるパラメータを直接設定パラメータと呼ぶ。
【0078】
この実施の形態では説明の簡略化のため、初期遊脚足平向きと前後位置(歩幅)のみを任意に変更できるようにしたが、これ以外に要求設定値として入力されるものは、今述べた
1)オペレータからの指示(旋回角度および角速度指令、移動速度指令など)
2)他の処理装置(軌道誘導装置など)を設けた場合、それからの要求(終端遊脚足平位置・姿勢など)
の他に、
3)前および/または次の歩容との境界条件(初期上***置および姿勢、初期遊脚足平位置・姿勢など)
を挙げることができる。3)については第4の実施の形態で触れる。
【0079】
それに対し、パラメータc,dおよびテーブルx(k), y(k)のように、直接設定パラメータの値に応じて歩容の条件を満たすように値が決定されるパラメータ(またはテーブル)を、従属パラメータ(または従属テーブル)と呼ぶ。時系列テーブルを直接的に設定することは極めて難しいので、時系列テーブルが直接設定パラメータとなることはほとんどない。
【0080】
また、第0標準歩容以外の第1および第2標準歩容は、第0標準歩容を基準として、直接設定パラメータ(ここでは、パラメータaとb)の内でただひとつだけを変えたものである。このように、選択された標準歩容の核となる歩容(第0標準歩容)をベース歩容と呼ぶ。
【0081】
ここで、要求歩容のパラメータ(この明細書では要求歩容のパラメータを「混合パラメータ」とも言う)の求め方を説明すると、従属パラメータc3, d3および従属時系列テーブルx3(k), y3(k)は、いずれも、歩容の条件を満たすために、直接設定パラメータaとbに応じて変化する。しかも、パラメータaとbの変化に対して、これらの値は連続的に変化するものと考えられる。即ち、これらは、パラメータaとbの連続関数である。そこで以下に述べる近似原理を利用することができる。即ち、近似演算を行うことにより要求歩容のパラメータを求めることができる。
【0082】
関数Pが滑らかな連続関数であるならば、
P(a0+Δa, b0+Δb) = P(a0, b0) + δP /δa|(a=a0,b=b0)*Δa + δP
/δb|(a=a0,b=b0) *Δb・・・近似式1
但し、
δP /δa|(a=a0,b=b0) :a=a0,b=b0でのPのaに関する偏微分値
δP /δb|(a=a0,b=b0) :a=a0,b=b0でのPのbに関する偏微分値
【0083】
更に、
δP /δa|(a=a0,b=b0) = ( P(a0+ Δa1, b0) - P(a0, b0) ) / Δa1
δP /δb|(a=a0,b=b0) = ( P(a0, b0+ Δb2) - P(a0, b0) ) / Δb2
であるので、近似式1は
P(a0+Δa, b0+Δb) = P(a0, b0)
+ ( P(a0+Δa1, b0) - P(a0, b0) )/ Δa1*Δa
+ ( P(a0, b0+Δb2) - P(a0, b0) )/Δb2*Δb
・・・・・・・・・・・・・・近似式2
【0084】
第1の実施の形態は近似式2を発展させたものであり、後述する第2の実施の形態は近似式1を発展させたものである。
【0085】
要求歩容のパラメータの求め方の説明を続けると、具体的には以下の式のように全ての従属パラメータ、全ての従属時系列テーブルに対して内分または外分することによって、標準歩容から第3歩容のパラメータを求める。これは、直接設定パラメータと従属パラメータとは比例関係にあると考えることができるからである。
【0086】
a3がa1とa2の内側にあれば内分、外側にあれば外分である。また、違いが動力学的に無視できる一部のパラメータ、一部の時系列テーブルは、内分、外分せず、ベース歩容のままであっても良い。更に、時系列テーブルに関しては、全時刻のデータをすべて一度に計算すると第1の演算装置80の負荷が大き過ぎるので、制御周期毎に今回時刻のデータだけ内分、外分すれば良い。
【0087】
以下に従属パラメータおよび従属テーブルの混合式(内分または外分による)を示す(後でこの混合式を「式1」と言う)。
c3 = c0
+ ( c1 - c0 ) *( a3 - a0 ) / ( a1 - a0 )
+ ( c2 - c0 ) *( b3 - b0 ) / ( b2 - b0 )
d3 = d0
+ ( d1 - d0 ) *( a3 - a0 ) / ( a1 - a0 )
+ ( d2 - d0 ) *( b3 - b0 ) / ( b2 - b0 )
x3(k) = x0(k)
+ ( x1(k) - x0(k) ) *( a3 - a0 ) / ( a1 - a0 )
+ ( x2(k) - x0(k) ) *( b3 - b0 ) / ( b2 - b0 )
y3(k) = y0(k)
+ ( y1(k) - y0(k) ) *( a3 - a0 ) / ( a1 - a0 )
+ ( y2(k) - y0(k) ) *( b3 - b0 ) / ( b2 - b0 )
【0088】
上記の式1は、各標準パラメータおよびテーブル値の加重平均(重み付き平均)となっている。例えば、c3を求める式を変形すると、
c3 = ( 1 - ( a3 - a0 ) / ( a1 - a0 ) - ( b3 - b0 ) / ( b2 - b0 ) ) *c0
+ ( a3 − a0 ) / ( a1 − a0 )*c1
+ ( b3 − b0 ) / ( b2 − b0 )* c2
となり、c0とc1とc2の係数の和が1になっているので、c3は、c0とc1と c2 に対する重みがそれぞれ
( 1 - ( a3 - a0 ) / ( a1 - a0 ) - ( b3 - b0 ) / ( b2 - b0 ) )
( a3 - a0 ) / ( a1 - a0 )
( b3 − b0 ) / ( b2 − b0 )
の加重平均となっている。
【0089】
尚、終端上***置・速度も直接設定パラメータとして任意の値に設定したい場合には、ベース歩容とZMPパラメータが異なる標準歩容をいくつか選択して加重平均すれば良い。混合歩容の終端状態は混合される各標準歩容の終端状態の加重平均にほぼ一致するので、混合歩容の終端状態の全て(上体の前後左右の位置・速度)が要求値になるように加重平均の重みを求めれば良い。
【0090】
また上***置を時系列テーブルから求める場合には、終端条件は完全に一致する。但し、後で第7の実施の形態で触れるように、動力学演算でZMP設定軌道を満足するように上***置を逐次的に求める場合には若干ずれる。
【0091】
またこのとき、重みを決定するためには、混合される各標準歩容の終端状態が必要であるので、各標準歩容の終端状態を予め記憶したテーブルを利用すれば、処理時間を短縮することができる。
【0092】
上記の手法によって混合歩容のパラメータを決定し、次いでオフラインで作成された標準歩容と同一の歩容生成アルゴリズムによって要求歩容の各時刻における瞬時値を生成する、ないし発生させることができる。
【0093】
以下、図4フロー・チャートを参照してこの装置の動作を説明すると、S10でオフラインで作成した前記標準歩容のデータ群をROM84に予め記憶させておくものとする。次いでS12に進み、各々の標準歩容の終端上***置および速度を求めて記憶する。
【0094】
先に述べた如く、上体24の位置が関数x(k),y(k) としてテーブル化されているので、速度はテーブルの最後とその直前の時刻のデータから求める。具体的には最後の時刻の値を位置とすると共に、最後とその直前の時刻の値の差分を求めて速度とする。
【0095】
次いで、S14に進んでタイマ値tを0とし(タイマをスタートさせ)、S16を経てS18に進み、タイマ割り込みを待つ(S14のタイマとは異なる)。図4のフロー・チャートは例えば、20msごとに起動される。即ち、制御周期は20msごとである。
【0096】
次いでS20に進んで歩容の切り替わり目、具体的には1歩の切り替わり目であるか否か判断し、肯定されるときはS22に進んでタイマを0にリセットし、S24に進んで歩容に対する要求値(具体的には今回歩容の直接設定パラメータの要求値(前記したa,b)を読み込む。
【0097】
次いでS26に進んで歩容の混合処理を行う。
【0098】
図14はその作業を示すサブルーチン・フロー・チャートである。
【0099】
先ず、S100において直接設定パラメータの値が要求値に近い標準歩容をベース歩容として選択する。図15を参照して説明すると、直接設定パラメータa,bの値が要求値(第3歩容)のa3,b3に近い標準歩容は第0標準歩容であるので、それをベース歩容として選択する。
【0100】
次いでS102に進んで上記の直接設定パラメータに着目し、そのパラメータの1つだけがベース歩容と異なる標準歩容を1つずつ選択する。候補が複数個ある場合には、その候補のパラメータ値が着目したパラメータの値になるべく近く、また、できれば、ベース歩容のパラメータ値とその候補のパラメータ値の間に要求値が位置するものを選択する。例えば図16に示すような場合では、パラメータaについて標準歩容候補1を採用する。
【0101】
尚、後で第5の実施の形態で述べるように、脚部リンク2の質量が上体24に較べて十分に小さい場合には、直接設定パラメータの中、終端遊脚足平位置・姿勢パラメータだけを少し変更しても、ロボット1が発生する慣性力はほとんど変わらない。即ち、そのパラメータ値を変更しても、動力学的平衡条件を満足する上でその他のパラメータにほとんど影響を与えないものと考えることが可能である。
【0102】
従って、終端遊脚足平位置・姿勢パラメータがベース歩容と少し違うだけなら、ベース歩容のそのパラメータ値を要求値通りに書き換えてしまえば良い。従って、終端遊脚足平位置・姿勢パラメータだけがベース歩容と異なる歩容を混合のために選択する必要もない。
【0103】
次いでS104に進んで混合歩容の直接設定パラメータに要求値を代入し、S106に進んで前記のパラメータ算出式(式1)により混合歩容の従属パラメータ値を算出し、混合歩容パラメータに代入する。
【0104】
図4に戻ると、続いてS28に進んで混合歩容パラメータ(テーブル)を目標歩容パラメータ(テーブル)に代入し、S30に進んで目標歩容の瞬時値(今回制御周期の値)を算出する。
【0105】
図17はその作業を示すサブルーチン・フロー・チャートである。
【0106】
先ず、S200において混合歩容パラメータに基づいて時刻tのZMPを求め、S202に進んで混合歩容パラメータに基づき、前記の提案技術を用いて時刻tの両足平位置・姿勢を求める。
【0107】
続いてS204に進んで時刻tの両足平位置・姿勢と時刻t−Δtの上体水平位置から時刻tの上体高さを求める。尚、その詳細は先にも述べたように同時に提案する別の出願に記載されており、この発明の要旨と直接の関連を有しないので、省略する。
【0108】
続いてS206に進んで選択した標準歩容(ベース歩容含む)の時刻tの上***置に基づいて先に述べた混合式(式1)に従い、時刻tの混合歩容上体水平位置を算出する。
【0109】
続いて図4フロー・チャートのS32に戻って時刻tをΔtだけ更新し、S18に戻って上記の処理を繰り返す。
【0110】
尚、上記の如くして生成した歩容に基づいて両脚コンプライアンス制御器において両脚コンプライアンスが行われ、次いで目標関節角が求められ、目標値に向けて駆動制御される。
【0111】
図18フロー・チャートを参照して両脚コンプライアンス制御について簡単に説明すると、先ずS300で両脚コンプライアンス操作量が演算される。
【0112】
図19はその作業を示すサブルーチン・フロー・チャートであり、S400において6軸力センサ44の検出値を読み込み、S402に進んで検出値からZMPの実測位置(実床反力中心点)を求め、S404に進んでZMP目標位置と比較して偏差、即ち、ずれ方向およびずれ量Xを求め、S406に進んで図示の式に従って足平の操作量を求め、S408に進んで両足平の目標位置・姿勢を求めた操作量に応じてずらす。尚、実ZMP位置と実床反力中心点は一致するため、この明細書では同義として扱う。
【0113】
図18フロー・チャートに戻ると、次いでS302に進んで足平位置・姿勢(コンプライアンス制御により修正されたときは修正値)および上***置・姿勢に基づいて公知の逆キネマティクス演算を介して12個の関節の目標角度を算出し、S304に進んで傾斜センサ11の出力からロボット1が不安定と判断されるときは、床反力中心点を故意にずらすように目標姿勢を修正する。次いでS306に進んで全関節を目標角度に追従制御する。これは具体的には第2の演算装置82が行う。
【0114】
この実施の形態は上記の如く構成したので、歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角を実現することができる。更には、リアルタイムに生成された歩容に基づいて脚式移動ロボットを目標関節角度に駆動制御させつつ、自在に歩行させることができる。
【0115】
より詳しくは、歩幅や旋回角についての任意の要求に対して記憶された幾つかの標準歩容からベースとなる歩容を適当に選択し、合成や変形などの混合操作、即ち、前記した近似演算を行うことにより、前記した歩容条件や歩容に関する要求を満足する近似歩容をリアルタイムに生成することができる。
【0116】
更には上記の如く構成したことから、微妙な角度・歩幅に設定することができ、ある程度(境界状態が近ければ)既存の標準歩容同士を組み合わせて混合することにより、それらの中間的な歩容を任意に生成することも可能である。
【0117】
また、上記の如く構成したことで演算量を低減することができる。具体的には、リアルタイムにダイナミクスを解くのに比べて第1の演算装置80の演算量が1/10程度に低減する。更に、最適な標準歩容を記憶しておき、それらを混合して歩容を生成するので、メモリ(ROM84)の容量も低減させることができる。更に、最適性を満足するので、条件1)から5)を満足する歩容を、試行錯誤を経ずに、容易に得ることができる。
【0118】
図20は、この発明の第2の実施の形態を示すフロー・チャートである。
【0119】
第2の実施の形態においては、標準歩容と共に、歩容パラメータについての感度を用いた。一般的に、「感度」は、システムの出力や特性が入力やパラメータ、あるいは環境状況の変化によって受ける影響の程度を意味するが、第2の実施の形態においてはある歩容パラメータの単位変更量当たりの他のパラメータの変更量(以下「歩容パラメータ感度」という)を求め、それを用いてパラメータの変更量(あるいは変化量)を求めるようにした。
【0120】
より具体的には、歩容パラメータ感度は、標準歩容において、直接設定パラメータ(例えば、第1の実施の形態の初期遊脚向きa、初期遊脚前後位置bなど)を微小量変更したときに、その歩容が望ましい標準歩容となるためには、他の従属的なパラメータをどれだけ変化させなければならないかを示す意味で使用する。このように具体的には、歩容パラメータ感度は、直接設定パラメータの単位量変更あたりの従属パラメータの変更量と定義する。
【0121】
その結果として、第2の実施の形態においては標準歩容の個数を低減し、ベース歩容となるものだけを用いるようにした。即ち、例えば静止状態から歩き始める歩容、加速歩容、等速度歩容、減速歩容、停止歩容など、一連の継続したベース歩容の列などを用意するが、それらから各種パラメータを少しずらした標準歩容は用意しないようにした。
【0122】
具体的には、ある標準歩容i においてパラメータpに対するパラメータqの感度をDi (q,p) と記述する。時系列テーブルも同様、パラメータpに対するk番目データx(k)の感度をDi (x(k),p) と記述する。
【0123】
第2の実施の形態における要求歩容の生成手法について説明する。
【0124】
先の第0標準歩容におけるパラメータaに対するパラメータcの感度D0(c,a) などと、第1標準歩容との関係は、以下のようになる。
(a1 - a0) が十分に小さければ、定義に従って、
D0(c,a ) = (c1 - c0) / (a1 - a0)
D0( d ,a ) = (d1 - d0) / (a1 - a0)
D0( x(k) ,a ) = (x1(k) - x0(k) ) / (a1 - a0)
D0( y(k) ,a ) = (y1(k) - y0(k) ) / (a1 - a0)
である。
【0125】
同様に、第0標準歩容におけるパラメータbに対するパラメータcの感度D0(c,b) などと、第2標準歩容との関係は、以下のようになる。
(b2 - b0) が十分に小さければ、定義に従って、
D0(c,b) = (c2 - c0) / (b2 - b0)
D0( d ,b) = (d2 - d0) / (b2 - b0)
D0( x(k) ,b) = (x2(k) - x0(k) ) / (b2 - b0)
D0( y(k) ,b) = (y2(k) - y0(k) ) / (b2 - b0)
である。
【0126】
第1の実施の形態のパラメータおよびテーブルの混合式にこれらを代入することにより、パラメータ決定式(パラメータ感度を用いた)として次式(以下「式2」という)を得る。
【0127】
c3 = c0
+ D0( c,a )*( a3 - a0 )
+ D0( c,b )*( b3 - b0 )
d3 = d0
+ D0( d,a )*( a3 - a0 )
+ D0( d,b )*( b3 - b0 )
x3(k) = x0(k)
+ D0( x(k) ,a )* ( a3 - a0 )
+ D0( x(k) ,b )*( b3 - b0 )
y3(k) = y0(k)
+ D0( y(k) ,a )* ( a3 - a0 )
+ D0( y(k) ,b )* ( b3 - b0 )
【0128】
上記を前提として図20フロー・チャートを参照して説明すると、S500においてオフラインで作成したベース歩容と歩容パラメータ感度を記憶しておき、S502からS514まで第1の実施の形態と同様の処理を行ってS516に進み、歩容の混合処理を行う。
【0129】
図21はその作業を示すサブルーチン・フロー・チャートであり、S600で直接設定パラメータの値が要求値に近いベース歩容を選択し、S602に進んで混合歩容の直接設定パラメータに要求値を代入し、S604に進んで式2に従って従属パラメータを求める。尚、上体水平位置の時系列テーブルは一度に計算しても良いが、演算量が多いので、後述する瞬時値発生サブルーチンの中で制御周期ごとに必要な値だけを演算しても良い。
【0130】
図20に戻り、S518およびS510を経てS520に進んで目標歩容の瞬時値を算出する。
【0131】
図22はその作業を示すサブルーチン・フロー・チャートであり、第1の実施の形態と同様にS700からS706までの処理を行って足平および上体の位置・姿勢を算出する。尚、S706では式2の中のx,yに関する式に従って上体水平位置を算出する。続いて図20に戻ってS522を経てS508に戻って以上の処理を繰り返す。
【0132】
第2の実施の形態は上記の如く構成したことから、第1の実施の形態と同様の効果を得ることができる。
【0133】
但し、記憶する標準歩容の組合せや標準歩容の性質によっては、第1の実施の形態に対する第2の実施の形態の優位性は異なる。例えば、直接設定パラメータの組が作る全空間をパラメータ空間と呼ぶとき、第1の実施の形態において直接設定パラメータのそれぞれに対してある間隔毎に離散化し、パラメータ空間内に格子状の不連続部分空間を作り、その不連続部分空間のすべての直接設定パラメータの組に対して望ましい標準歩容を作成する。即ち、直接設定パラメータ以外のパラメータ(従属パラメータ)の値を望ましい歩容になるように調整する。
【0134】
このようにして作成した標準歩容を持っていれば、ほとんどの標準歩容がベース歩容としての条件を満たす(ベース歩容の条件は、その歩容から全ての変更したいパラメータに対してその1つだけが異なる標準歩容が存在することである)。従って、第1の実施の形態の手法で任意の歩容が作成でき、パラメータ感度を持つ必要がない。
【0135】
尚、第2の実施の形態において、広範囲の歩容に対してパラメータ感度がほぼ等しい場合には、1つ1つの歩容に対してパラメータ感度を持つのではなく、広範囲の歩容において共有すれば良い。こうすれば、メモリ(ROM84)の容量を節約することができ、その場合には第1の実施の形態に比較してはるかに少ないメモリ容量で足る。
【0136】
例えば、D0(c, a),D1(c, a),D2(c, a),...Dn(c, a) がほぼ同一値であるならば、その平均値をD(c, a)として、上記のパラメータ感度を用いたパラメータ決定式におけるD0(c, a),D1(c, a),..の代わりにD(c, a)を共通に使えば良い。
【0137】
図23はこの発明の第3の実施の形態を示すフロー・チャートである。
【0138】
第3の実施の形態においては、第1の実施の形態と同様の標準歩容を用いると共に、第2の実施の形態の歩容パラメータ感度も用いるようにした。
【0139】
第3の実施の形態における要求歩容の生成手法を説明する。
【0140】
第3の実施の形態においては、従属パラメータの値を求めるに当たって、直接設定パラメータの影響を、一部は第1の実施の形態の手法で、残りは第2の実施の形態の手法を用いて求める。即ち、歩容の混合と、歩容パラメータ感度による摂動分の加算を併用するようにした。
【0141】
例えば、直接設定パラメータの内のaの影響に対しては第1の実施の形態、bの影響に対しては第2の実施の形態の手法を用いると、次式のようになる。
c3 = c0
+ ( c1 − c0 ) *( a3 - a0 ) / ( a1 - a0 )
+ D0( c,b )*( b3 - b0 )
d3 = d0
+ ( d1 - d0 ) *( a3 - a0 ) / ( a1 - a0 )
+ D0( d,b )*( b3 - b0 )
x3(k) = x0(k)
+ ( x1(k) - x0(k) ) *( a3 - a0 ) / ( a1 - a0 )
+ D0( x(k) ,b )*( b3 - b0 )
y3(k) = y0(k)
+ ( y1(k) - y0(k) ) *( a3 - a0 ) / ( a1 - a0 )
+ D0( y(k) ,b )*( b3 - b0 )
【0142】
図23を参照して説明すると、S800においてオフラインで作成した標準歩容と歩容パラメータ感度を記憶し、S802以降に進んで第1の実施の形態と同様の処理を行い、S816から図24フロー・チャートに進んでS900以降において歩容の混合を行う。また図23フロー・チャートのS820から図25フロー・チャートのS1000以降に進んで瞬時値を算出する。
【0143】
第3の実施の形態は上記の如く構成したことから、従前の実施の形態と同様の効果を有する。
【0144】
図26はこの発明の第4の実施の形態を示すフロー・チャートである。
【0145】
標準歩容から得られる混合歩容(要求歩容)同士は、図27に示す如く、歩容境界における上***置・速度が少しずれる傾向があるので、ある混合歩容の終端上***置・速度を次の混合歩容の初期上***置・速度に合わせる必要が生じる。そこで第4の実施の形態では、上***置・速度の境界条件を任意に設定するようにした。即ち、初期上***置・速度および終端上***置・速度も直接設定パラメータとして考慮し、上***置・速度が境界条件において連続するようにした。
【0146】
その手法を要約すると、先ず第1ないし第3の実施の形態の手法を用いて、初期上***置・速度および終端上***置・速度を除く、直接設定パラメータが全て望み通りに設定された混合歩容を生成し、次いで初期上***置・速度および終端上***置・速度も望み通りになるように、ZMPパラメータを補正する。
【0147】
前半の処理は従前の実施の形態と同様であるので説明を省略し、以下、後半の初期上***置・速度および終端上***置・速度も望み通りになるようにZMPパラメータを補正する手法を説明する。
【0148】
前述の歩容生成手法において、初期上***置・速度、終端上***置・速度およびZMPパラメータ以外の歩容パラメータが固定されている場合を考える。
【0149】
この場合、初期上***置・速度とZMPパターンを設定すると動力学的平衡条件を満足する歩容が一義的に決定されるので、終端上***置・速度も一義的に決定される。逆に、終端上***置・速度とZMPパターンを与えると、初期上***置・速度が一義的に決定される。従って、初期上***置・速度と終端上***置・速度を任意に設定するためには、ZMPパターンはそれに合わせて調整しなければならない。即ち、ZMPパターンを決めてしまえば、初期上***置・速度と終端上***置・速度は、1対1写像の関係になっている。
【0150】
以下では、説明を簡単にするために上体の前後方向(X方向)の挙動だけを考えることとすると、状態量は位置と速度の2変数であるから、これらに関する境界条件を任意に設定できるようにするためには、ZMPパターンに2個以上のパラメータが必要である。
【0151】
ここでは、ZMPパラメータの一部をわずかに変更するだけで、上体境界位置・速度を大きく変更できるように、ZMPパターンとそのパラメータを図28のように設定する。
【0152】
これは、従前の実施の形態で用いるZMPパターンよりも複雑なパターンとなっている。なぜなら、従前の実施の形態で用いたのと同様のZMPパターンを用いると、上体の前後方向の位置と速度の両方を同時に満足させるためには、パラメータc以外に足平軌道に影響を与えない時間のパラメータt2も変更しなくてはならないが、t2を大きく変更しても、上体境界位置・速度はわずかしか修正できないからである。
【0153】
第4の実施の形態においてZMPパラメータの決定は、第1の実施の形態あるいは第2の実施の形態のいずれの手法を用いても可能であるが、ここでは第2の実施の形態の手法を採用してZMPパラメータの補正量と上体の補正軌跡を以下の手順で決定するようにした。尚、ZMPパラメータの補正量は、混合歩容の上体境界条件を望みの値にするために混合歩容のZMPパラメータに加える補正量を意味する。
【0154】
図26を参照して第4の実施の形態の動作を説明すると、S1100において従前の実施の形態と同様にオフラインで作成した標準歩容を記憶しておき、S1102に進んで各種標準歩容の終端上***置・速度を求めて記憶した後、S1104に進んで以下の処理を行う。
【0155】
先ず、混合歩容においてZMPパラメータcに着目し、これを図29に示すようにΔcだけ微小摂動させ、それに伴って、動力学平衡条件を満足するように上***置の時系列データの摂動分Δx(k)を求める。
【0156】
このとき、
Rmix(x(k),c)=Δx(k)/Δc
とおく。このRmix(x(k), c)をcに対するx(k)の偏微分的感度(前記歩容パラメータ感度に相当)と呼ぶ。同様に、図30に示すように、ZMPパラメータeに関してRmix(x(k),e)を求める。
【0157】
第2の実施の形態においては、ある注目したパラメータに対するx(k)の感度を求めるときに、制約条件として歩容の最適性を維持しながら、注目したパラメータとx(k)を除く複数の従属パラメータを調整した。それに対して、第4の実施の形態では、歩容の最適性を無視して、注目したパラメータとx(k)を除く全てのパラメータを固定して感度を求めるようにした。言ってみれば、第2の実施の形態は最適性を制約条件にした全微分、第4の実施の形態は最適性を無視した偏微分を求めることになる。
【0158】
次にS1106に進み、Rmix(x(k), c)とRmix(x(k), e)の終端とその直前の値から、混合歩容におけるZMPパラメータcに対する終端上***置の偏微分的感度Rmix(Xe, c)、終端上体速度の偏微分的感度Rmix(Ve, c)、ZMPパラメータeに対する終端上***置の偏微分的感度Rmix(Xe, e)、終端上体速度の偏微分的感度Rmix(Ve, e)を次式によって求める。
【0159】
Rmix(Xe,c)=Rmix(x(ke),c)
Rmix(Ve,c)=(Rmix(x(ke),c) -Rmix(x(ke-1),c)) / Δt
Rmix(Xe,e)=Rmix(x(ke),e)
Rmix(Ve,e)=(Rmix(x(ke),e) - Rmix(x(ke-1),e)) / Δt
但し、ke:時系列の最後の配列番号、Δt:時系列の刻み時間(離散系のサンプル時間)である。
【0160】
次いでS1108に進み、求めた感度から第1行第1列の要素がRmix(Xe, c)、第1行第2列の要素がRmix(Xe, e)、第2行第1列の要素がRmix(Ve, c)、第2行第2列の要素がRmix(Ve, e)の2*2行列を作成する。
【0161】
次いでS1110に進んで作成した行列の逆行列を求める。この逆行列の第1行第1列の要素は、終端上***置Xe に対するパラメータcの偏微分的感度Rmix(c, Xe)、第2行第1列の要素は、終端上***置Xe に対するパラメータeの偏微分的感度Rmix(e, Xe)、第1行第2列の要素は、終端上体速度Ve に対するパラメータcの偏微分的感度Rmix(c, Ve)、第2行第2列の要素は、終端上体速度Ve に対するパラメータeの偏微分的感度Rmix(e, Ve)とする。
【0162】
尚、あらゆる混合歩容において上記感度がほとんど変化しない場合には、その平均的な値をそれぞれR(c, Xe),R(e, Xe),R(c, Ve),R(e, Ve) として、全歩容に共通に用いれば良い。
【0163】
次いでS1112に進んで混合歩容において初期上***置に着目し、これだけを図31に示すようにΔx0だけ微小摂動させ、それに伴って、動力学平衡条件を満足するように上***置の時系列データの摂動分Δx(k)を求める。当然、
Δx(0)=Δx0
である。
【0164】
このとき、
Rmix(x(k), x0)=Δx(k)/Δx0
とおく。同様に、図32に示すように初期上体速度だけをΔv0だけ微小摂動させ、Rmix(x(k), v0)を求める。
【0165】
次にS1114に進み、求めた感度Rmix(x(k), x0) とRmix(x(k), v0) の終端とその直前の値に基づいて、混合歩容における初期上***置に対する終端上***置の偏微分的感度Rmix(Xe, x0) 、終端上体速度の偏微分的感度Rmix(Ve, x0) 、初期上体速度に対する終端上***置の偏微分的感度Rmix(Xe, v0) 、終端上体速度の偏微分的感度Rmix(Ve, v0) を次式によって求める。
【0166】
Rmix(Xe, x0)=Rmix(x(ke), x0)
Rmix(Ve, x0)=(Rmix(x(ke), x0) - Rmix(x(ke-1), x0)) / Δt
Rmix(Xe, v0)=Rmix(x(ke), v0)
Rmix(Ve, v0)=(Rmix(x(ke), v0) - Rmix(x(ke-1), v0)) / Δt
但し、ke:時系列の最後の配列番号、Δt:時系列の刻み時間である。
【0167】
続いてS1116に進んでタイマを0にリセットしてスタートさせ、S1118を経てS1120に進んでタイマ割り込みを待機し、S1122に進んで歩容の切り替わり目にあるか否か判断し、肯定されるときはS1124に進んでタイマを0にリセットし、次いでS1126に進んで直接設定パラメータの要求値を読み込み、S1128に進んで歩容の混合を行う。
【0168】
即ち、図33サブルーチン・フロー・チャートのS1200に進んで第1ないし第3の実施の形態と同様の手法を用いて混合歩容パラメータを作成する。この際に、初期上***置・速度および終端上***置・速度も要求値に近いものをベース歩容として選択する。
【0169】
但し、ベース歩容を選択した後、初期上***置・速度および終端上***置・速度に関しては、直接設定パラメータから除外し、従前の実施の形態と同様に混合歩容を生成する。
【0170】
次いでS1202に進んで初期上***置・速度要求値と混合歩容の初期上***置・速度との差を求め、これをΔx0,Δv0 とする。同様に、終端上***置・速度要求値と混合歩容の終端上***置・速度との差を求め、これをΔXe,ΔVeとする。
【0171】
次いでS1204に進み、混合歩容において初期上***置・速度だけを初期上***置・速度要求値に変更し、それに伴って、動力学平衡条件を満足するように、上***置の時系列データを摂動させた歩容の、終端上***置・速度の摂動量ΔXse、ΔVseを次式により求める。
ΔXse=Rmix(Xe, x0)*Δx0+Rmix(Xe, v0)*Δv0
ΔVse=Rmix(Ve, x0)*Δx0+Rmix(Ve, v0)*Δv0
【0172】
S1204の歩容は、初期上***置・速度は要求値に一致しているが、終端上***置・速度要求値とこの歩容の終端上***置・速度との差は、ΔXe +ΔXse,ΔVe +ΔVseである。そこでS1206に進み、その差を0にするためのZMPパラメータの補正量Δc,Δeを次式によって求める。
Δc=Rmix(c, Xe)*(ΔXe +ΔXse)+Rmix(c, Ve)*(ΔVe +ΔVse)
Δe=Rmix(e, Xe)*(ΔXe +ΔXse)+Rmix(e, Ve)*(ΔVe +ΔVse)
【0173】
次いでS1208に進んでZMPパラメータc,eを次式によって求める。
c=cmix+Δc
e=emix+Δe
但し、cmix:混合歩容のパラメータcの値、emix:混合歩容のパラメータeの値である。
【0174】
次いで図26フロー・チャートに戻り、S1130に進んで目標歩容のパラメータに上記混合歩容のパラメータを代入する。但し、ZMPパラメータc,eには、S1208で求めた値を代入する。次いでS1122を経てS1132に進んで目標歩容の瞬時値を算出する。
【0175】
具体的には、図34サブルーチン・フロー・チャートのS1300に進んで従前の実施の形態と同様の手法で時刻tのZMPを求め、S1302に進んで従前の実施の形態と同様の手法で時刻tの両足平の位置・姿勢を求め、S1304に進んで目標歩容の上***置を次式で求める。
x(k) =xmix(x) +Rmix(x(k),c) *Δc+Rmix(x(k),e) *Δe +Rmix(x(k),x0)*Δx0+Rmix(x(k),v0)*Δv0
但し、xmix(x) :混合歩容の上体軌道時系列のk番データである。尚、説明は省略するが、Y方向の上***置も同様に算出することは言うまでもない。また、Z方向の上***置はX,Y方向の値と同様に算出しても、前記のこの出願と同時に提案する手法で算出しても良い。
【0176】
上記した処理によって具体的には図27および図29ないし図32に示す波形を重ね合わせることとなり、それにより図35に示すように、所望の境界条件を備えた目標歩容を生成することができる。尚、図35に示す状況では、
c<0,c+Δc<0,e<0,e+Δe>0
とした。
【0177】
第4の実施の形態は上記の如く構成したので、歩容を自在かつリアルタイムに生成すると共に、生成された歩容同士の境界においてロボットの各部位の変位および変位速度を連続させることができる。
【0178】
図36はこの発明の第5の実施の形態を示すフロー・チャートである。
【0179】
先の第4の実施の形態では、混合歩容におけるZMPパラメータcに対する上***置時系列の偏微分的感度Rmix(x(k), c)、ZMPパラメータeに対する上***置時系列の偏微分的感度Rmix(x(k), e)、初期上***置に対する上***置時系列の偏微分的感度Rmix(x(k), x0) 、初期上体速度に対する上***置時系列の偏微分的感度Rmix(x(k), v0) を用いていた。言わば、ZMPの摂動に対する上体軌道の摂動のモデルを時系列テーブルの形で持っていたと言える。
【0180】
第5の実施の形態では、その代わりに、以下の式で表されるロボットの線形摂動動力学モデル(ZMPの摂動に対する上***置速度の摂動の関係を表す線形化モデル)を用いて、上***置・速度に関する境界条件を要求値に一致させるようにした。
【0181】
以下に、この手法の基本原理を説明する。尚、以下の説明では上体挙動とZMP軌道の前後方向(X方向)成分についてのみ議論するが、左右方向(Y方向)も同様に考えれば良い。
【0182】
ロボット1の上体24の質量がそれ以外の部位の質量に較べて十分に大きく、かつ歩行時に上体の上下加速度が小さいとする。この特殊条件が成立する場合には、ZMPの摂動に対する上***置・速度の摂動の関係、即ち、摂動動力学モデルは、次式および図37で示される線形倒立振子モデルで近似される。図示の如く、このモデルにあっては支点22aも移動自在である。
【0183】
dxmdl/dt=v
dvmdl/dt =ω0*(xmdl‐ZMPmdl)
ここで、xmdlは線形倒立振子の重心位置、vmdlは線形倒立振子の重心速度である。またω0は正の定数であり、上体重心高さhおよび重力加速度gとほ次の関係を持つ。
ω0=√(g /h)
【0184】
上記特殊条件が成立している場合には、第4の実施の形態における一般性の高い摂動動力学モデルRmix(x(k), c), Rmix(x(k), e), Rmix(x(k), x0),Rmix(x(k), v0)の代わりに、上記した線形倒立振子モデルを用いることができる。以降、モデルの状態の表記に、時刻tを明示したい場合には、
xmdl(t) ,vmdl(t)
と表記する。
【0185】
上記を前提として図36フロー・チャートを参照して説明する。尚、ZMPパターンの構造は、第4の実施の形態と同一にする。
【0186】
先ず、S1400において標準歩容を記憶しておき、S1402に進んで各標準歩容の終端上***置・速度を求めて記憶した後、S1404に進み、ZMPパラメータの内でcとeをc=1,e=0、またp(図35に示すように時刻0におけるZMPの値)=0、その他の折点でのZMPの値を0、初期状態をx0=0,v0=0とし、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【0187】
具体的には、図29におけるΔcを1に設定したときのΔcによるZMPパターン補正量をモデル入力としてモデルの挙動を得、モデル終端状態を求め、続いてZMPパラメータcに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe,c)=Xe
【0188】
同様にZMPパラメータcに対する終端モデル速度Veの偏微分的感度を次式によって求める。
R(Ve,c)=Ve
【0189】
尚、摂動動力学モデルの挙動の計算は、モデルを離散化してから逐次演算によって求めても良いし、解析的に解いても良い。
【0190】
次いでS1406に進み、ZMPパラメータの内でcとeをc=0,e=1、またp=0、その他の折点でのZMPの値を0、初期状態をx0=0,v0=0として、歩容の終端時刻まで、摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【0191】
次いでZMPパラメータeに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe,e)=Xe
【0192】
同様にZMPパラメータeに対する終端モデル速度の偏微分的感度を次式によって求める。
R(Ve,e)=Ve
【0193】
次いでS1408に進み、ZMPパラメータの内でcとeをc=0,e=0、またp=0、その他の折点でのZMPの値を0、初期状態をx0=1,v0=0として、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【0194】
次いで初期モデル位置x0に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe, x0)=Xe
【0195】
同様に、初期モデル位置x0に対する終端モデル速度Veの偏微分的感度を次式によって求める。
R(Ve, x0)=Ve
【0196】
次いでS1410に進み、ZMPパラメータの内でcとeをc=0,e=0、またp=0、その他の折点でのZMPの値を0、初期状態をx0=0,v0=1として、歩容の終端時刻まで、摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【0197】
次いで初期モデル速度v0に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe, v0)=Xe
【0198】
同様に、初期モデル速度v0に対する終端モデル速度Veの偏微分的感度を次式によって求める。
R(Ve, v0)=Ve
【0199】
次いでS1411に進み、c=0,e=0,p=1、その他の折点でのZMPを0、初期状態をx0=0,v0=0として歩容の終端時刻までの摂動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veの偏微分感度を求める。
【0200】
次いで初期モデル速度v0 に対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe, p)=Xe
【0201】
次いで初期モデル速度v0 に対する終端モデル速度Veの偏微分的感度を次式によって求める。
R(Ve, p)=Ve
【0202】
次いでS1412に進み、求めた感度から第1行第1列の要素がR(Xe, c) 、第1行第2列の要素がR(Xe, e) 、第2行第1列の要素がR(Ve, c) 、第2行第2列の要素がR(Ve, e) の2*2行列を作成する。
【0203】
次いでS1414に進み、作成した行列の逆行列を求める。逆行列の第1行第1列の要素は、終端モデル位置Xeに対するパラメータcの偏微分的感度R(c, Xe) 、第2行第1列の要素は、終端モデル位置Xeに対するパラメータeの偏微分的感度R(e, Xe) 、第1行第2列の要素は、終端モデル速度Veに対するパラメータcの偏微分的感度R(c, Ve) 、第2行第2列の要素は、終端モデル速度Veに対するパラメータeの偏微分的感度R(e, Ve)とする。
【0204】
次いでS1416でタイマを0にリセットしてスタートさせ、S1418,S1420を経てS1422に進んで歩容の切り替わり目にあるか否か判断し、否定されるときはS1432に進むと共に、肯定されるときはS1424,S1426を経てS1428に進んで歩容の混合を行う。
【0205】
図38フロー・チャートを参照してその歩容の混合処理を説明すると、S1500において従前の実施の形態のいずれかの手法で混合歩容パラメータを生成する。このとき、初期および終端上***置・速度要求値に近い標準歩容をベース歩容として選択するが、それ以外の混合歩容パラメータを生成する過程では、初期および終端上***置・速度を直接設定パラメータから除外し、他の実施の形態と同様に、混合歩容パラメータを求める。次いでS1502に進んで初期および終端上***置・速度要求値と混合歩容の初期および終端上***置・速度との差Δx0, Δv0, ΔXe, ΔVeを求める。
【0206】
続いてS1504に進み、モデルの初期位置・速度をΔx0,Δv0 とし、ZMPを0とした場合の終端位置・速度ΔXse, ΔVseを次式により求める。
ΔXse=R(Xe, x0)*Δx0+R(Xe, v0)*Δv0
ΔVse=R(Ve, x0)*Δx0+R(Ve, v0)*Δv0
【0207】
次いでS1506に進み、ZMPパラメータの補正量Δc,Δeを次式によって求める。
Δc=R(c, Xe)*(Δx+ΔXse)+R(c, Ve)*(Δv+ΔVse)
Δe=R(e, Xe)*(Δx+ΔXse)+R(e, Ve)*(Δv+ΔVse)
【0208】
次いでS1508に進んでZMPパラメータc,eをS1208で用いたのと同じ式によって求める。続いて図36フロー・チャートのS1430,S1432を経て図39フロー・チャートに進み、S1600およびS1602で第4の実施の形態と同様の処理を行ってS1604に進み、ZMP軌道補正量を求める。これは、図28においてパラメータc=Δc,e=Δe、その他の折点のZMPの値を0としたパターンである。
【0209】
次いでS1606に進み、モデル初期位置・速度を xmdl(0)=Δx0,vmdl(0)=Δv0とし、ZMPmdl として上記ZMP軌道補正量を入力し、モデルの挙動を逐次演算によって計算する。即ち、モデルの前回(時刻t−Δt)の位置・速度と今回(時刻t)のZMP軌道補正量に基づいて離散化モデル式によってモデルの今回(時刻t)の位置・速度を求める。但し、最初の制御周期では、モデルの今回の位置・速度を xmdl(0)=Δx0、vmdl(0)=Δv0とする。尚、離散化モデルには、現代制御理論で一般的に用いられるマトリクス表現モデルを用いれば良い。
【0210】
次いでS1608に進んで次式に従って、モデル位置を補正量として混合上***置に加えることによって目標上***置を求める。
x(k)=xmix(k)+xmdl(kΔt)
但し、x(k):目標上***置
xmix(k):混合歩容の上体軌跡時系列のk番データ
xmdl(kΔt):時刻kΔtのモデル位置、である。
【0211】
第5の実施の形態は上記の如く構成したことから、第4の実施の形態と同様の効果を得ることができる。
【0212】
より具体的には線形倒立振子モデルを用いたことから、メモリ(ROM84)の容量が僅少で足り、逐次演算などによってわずかな計算量でリアルタイムに上体軌道の摂動を計算することができる。また、このモデル式は厳密解が容易に求められ、この厳密解から将来の挙動予測を容易に行うことができる。
【0213】
尚、ZMPパラメータに対する終端上***置・速度の感度は厳密解によって求められるが、指数関数演算を含んでいるので、予めその値を求めて記憶しておいた方が演算時間を一層節約することができる。
【0214】
図40はこの発明の第6の実施の形態を示すフロー・チャートである。
【0215】
先にも触れたが、初期遊脚足平位置、終端遊脚足平位置を摂動させても、それによる慣性力が無視できる場合、すなわちZMPがほとんど変化しない場合には、歩容の生成を簡略化することができる。第6の実施の形態は、それを意図した。
【0216】
この明細書で定義する歩容では、終端時刻は遊脚が着地した瞬間であり、そのときにはZMPは未だ支持脚足平の接地面に設定されている。従って、終端遊脚足平位置を変えても、それによる慣性力が無視できるなら、ZMPパラメータを変える必要はないが、設定ZMPパターンの初期位置が初期遊脚足平位置・姿勢のつまさきに存在するように通常設定されることから、初期遊脚足平位置を変えるときは、ZMPパターンも変更しなければならない。
【0217】
以下、初期遊脚足平位置を変えるなどZMPパラメータを変更する場合を例にとって、第5の実施の形態との相違点に焦点をおいて説明する。
【0218】
図40フロー・チャートにおいてS1700からS1710まで第5の実施の形態と同様の処理を経てS1712に進む。第6の実施の形態では動力学的平衡条件を満足させるために、ZMPパターンの変更に伴い、以下の処理を追加変更した。
【0219】
即ち、S1712においては図41に示すように、時刻0におけるZMPの値をpとすると共に、ZMPパラメータの内でcとeとpを、c=0,e=0,p=1、その他の折点でのZMPの値を0、初期状態をx0=0,v0=0として、歩容の終端時刻まで摂動動力学モデルの挙動を計算し、終端モデル位置Xe、終端モデル速度Veを求める。
【0220】
次いでZMPパラメータpに対する終端モデル位置Xeの偏微分的感度を次式によって求める。
R(Xe,p)=Xe
【0221】
同様に、ZMPパラメータpに対する終端モデル速度Veの偏微分的感度を次式によって求める。
R(Ve,p)=Ve
【0222】
続いてS1728まで第5の実施の形態と同様の処理を行い、S1730に進んで歩容の混合を行う。即ち、図42フロー・チャートのS1800において従前の実施の形態のいずれかの手法で混合歩容パラメータを作成する。このとき、初期上***置・速度、終端上***置・速度、初期遊脚足平位置および終端遊脚足平位置も要求値に近いものをベース歩容として選択する。
【0223】
但し、ベース歩容を選択した後、初期上***置・速度、終端上***置・速度、初期遊脚足平位置および終端遊脚足平位置に関しては、直接設定パラメータから除外して、他の実施例と同様に混合歩容を作成する。従って、初期上***置・速度、終端上***置・速度、初期遊脚足平位置および終端遊脚足平位置は、ベース歩容のままの値となる。
【0224】
続いてS1802,S1804の処理を経てS1806に進み、初期遊脚足平位置要求値と混合歩容の初期遊脚足平位置との差を求め、それをΔpとする。続いてS1808に進んでモデルの初期ZMPをΔpとし、その他の折点でのZMPを0とした場合の終端位置・速度ΔXpe、ΔVpeを次式により求める。
ΔXpe=R(Xe, p)*Δp
ΔVpe=R(Ve, p)*Δp
【0225】
続いてS1810に進んでZMPパラメータの補正量Δc,Δeを次式によって求める。
Δc=R(c, Xe)*(ΔXe +ΔXse+ΔXpe)+R(c, Ve)*(ΔVe +ΔVse+ΔVpe)
Δe=R(e, Xe)*(ΔXe +ΔXse+ΔXpe)+R(e, Ve)*(ΔVe +ΔVse+ΔVpe)
【0226】
続いて図40フロー・チャートに戻り、S1732に進んで目標歩容のパラメータに上記混合歩容のパラメータを代入する。但し、ZMPパラメータc,eには、S1812で求めた値を代入する。また、初期遊脚足平位置パラメータおよび終端遊脚足平位置パラメータには要求値を代入する。
【0227】
続いてS1734から図43フロー・チャートに進み、S1900,S1902で第5の実施の形態と同様の処理を行う。これによって初期遊脚足平位置と終端遊脚足平位置の要求を満足する足平軌道と、補正されたZMP軌道が得られる。次いでS1904に進み、ZMP軌道補正量を求める。これは図44に示す如く、パラメータc=Δc,e=Δe,p=Δp、その他の折点のZMPの値を0としたZMPパターンである。
【0228】
尚、残余の構成は、第5の実施の形態と異ならない。
【0229】
第6の実施の形態は上記の如く構成したので、第4ないし第5の実施の形態と同様の効果を得ることができると共に、初期上***置・速度が異なる歩容を標準歩容として記憶しておく必要がないので、記憶容量を一層低減することができる。
【0230】
図45はこの発明の第7の実施の形態を示す、図3に示す第1の実施の形態と同様の歩容生成装置のブロック図である。但し、第7の実施の形態では上体水平位置の算出手法が異なる。
【0231】
第7の実施の形態においては、得られた今回(時刻t)の混合歩容の両足平の位置・姿勢、ZMPおよび上体高さZと前回(時刻t−Δt)の状態(上***置・速度など)をロボット運動モデル(ダイナミクスとキネマティクスと各種拘束式、制約条件式からなる)に入力して、動力学的平衡条件を満足した上***置の水平座標(X、Y)の今回値(瞬時値)を算出するようにした。
【0232】
即ち、第7の実施の形態においては、第2の実施の形態と同様に、図46フロー・チャートのS2000ないし2014から図47フロー・チャートのS2100ないしS2104の処理を経て図46に戻り、S2022から図48のS2200以降に進み、S2206において混合歩容の上体と混合歩容の足平の運動から動力学的に計算されるZMPが混合歩容のZMPパラメータから求められる設定ZMPに一致するように、混合歩容の上体軌道を逐次演算によって求めるようにした。
【0233】
但し、歩容初期では、上体の位置・速度には適宜設定した初期上***置・速度パラメータ値を使用する。即ち、1歩の歩容は、初期上***置・速度パラメータ値から始まって、逐次演算によって順々に計算することによって求められる。
【0234】
この手法では、演算量が多く、終端上***置姿勢が要求値から若干ずれる欠点があるが、動力学的平衡条件を厳密に満足させることができる。
【0235】
尚、第7の実施の形態において、今回の上体高さと上体水平位置を、動力学的平衡条件と上体高さ決定法の拘束式を同時に満足するように求めても良い。従前の実施の形態では、演算時間短縮のため、上体高さは短時間に大きく変化することはないと仮定して、前回上体水平位置を用いて上体高さを算出した。
【0236】
このように上記した第1ないし第7の実施の形態において、少なくとも上体24と、前記上体に関節10,12,14R(L)を介して連結される複数本の脚部リンク2とからなる脚式移動ロボットの歩容生成装置において、少なくとも1歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段(S10など)、歩容に関する要求を行う歩容要求手段(S24など)、および前記歩容に関する要求に対して前記標準歩容を1個ないし複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段(S26ないしS30,S100ないしS106,S200ないしS206など)を備える如く構成した。
【0237】
また、前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求める(S100ないしS106,S200ないしS206など)如く構成した。
【0238】
また、前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める(S500,S600ないしS604、S700ないしS706など)如く構成した。
【0239】
また、前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求める(S800,S900ないしS906,S1000ないしS1006など)如く構成した。
【0240】
また、前記歩容生成手段は、前記標準歩容の少なくとも1個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段(S500,S800など)を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求める如く構成した。
【0241】
また、前記標準歩容生成手段は、前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段(S1104ないしS1114など)を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成する(S1128,S1200ないしS1208)如く構成した。
【0242】
また、前記その他のパラメータの摂動が上体の水平位置の摂動である如く構成した。
【0243】
また、前記関係が線形モデルで表現される如く構成した。
【0244】
また、前記関係が倒立振子モデルで表現される如く構成した。
【0245】
また、前記関係が時系列値で表現される如く構成した。
【0246】
また、前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求める(S1730,S1800ないしS1812)如く構成した。
【0247】
また、前記歩容生成手段は、前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段(S302)、および算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆制御手段(S306)を備える如く構成した。
【0248】
また、前記関節角度決定手段は、前記ロボットの状態量を検出する検出手段(S300,S400ないしS406)、および検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段(S408)を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出する如く構成した。
【0249】
尚、上記した第1ないし第7の実施の形態において、近似演算の例は図示のもの止まらず、他にも種々の変形が可能である。
【0250】
また、上記した第1ないし第7の実施の形態において、上***置は上体24内のある基準点を支持脚接地点から見た座標で記述している。この基準点は左右方向に関しては、中心に設定すべきであるが、前後方向に対しては以下のように幾つかの設定法がある。
設定法1)上体の重心に設定する(第1ないし第7の実施の形態で採用)
設定法2)直立時に全体重心位置と一致するような位置に設定する。
設定法3)試行錯誤によって、適当な位置に設定する。
【0251】
いずれの設定方式を採用しても、上体の向きが一定である歩行の場合には差が生じないが、旋回歩行など、上体の向きが変化する場合には、基準点の取り方によって誤差の生じ方が異なってくる。たとえば、図49に示すように、基準点を紙面右方向に移動させながら、基準点まわりに上体を回転させる場合を考えると、基準点が上体の中央にある場合と、前寄りにある場合とでは、明らかに上体の位置関係が異なっていることが分かる。
【0252】
混合歩容(要求歩容)を生成する際に、異なる旋回角を持つ歩容を混合する例を示したが、歩容を混合することは一種の近似である。しかし、以上の理由から、基準点の設定次第で混合された歩容が微妙に異なり、動力学平衡条件に対する近似精度が変化する。
【0253】
従って基準点は、なるべく動力学平衡条件に対する誤差が小さくなるように設定されるべきである。上記の設定法のいずれが最適であるか、または、いずれであっても支障ないかは、ロボットの構造や歩行のさせ方による。
【0254】
更に、動力学平衡条件の精度を高めるために、上***置の時系列テーブルの代わりに、ロボット全体重心の時系列テーブルを使うことも考えられる。但し、欠点として、ロボット全体重心が指示された位置になるようにロボットの姿勢を求めるために、かなりの演算が必要となる。
【0255】
また、上記において、歩容パラメータとして(変位)加速度については述べなかったが、歩容の境界において加速度まで合わせる方が、より滑らかな歩容が生成されることは言うまでもない。
【0256】
また、この発明を2足歩行ロボットに関して説明してきたが、2足歩行ロボットに限らず、多脚ロボットにも応用することができる。
【0257】
【発明の効果】
床反力を含む歩容を自在かつリアルタイムに生成して任意の歩幅や旋回角などを実現することができる。また、生成された歩容同士の境界においてロボットの各部位の変位および速度が連続させることができる。更に、リアルタイムに生成した歩容に基づいて脚式移動ロボットを駆動制御することができる。
【図面の簡単な説明】
【図1】この発明に係る脚式移動ロボットの歩容生成装置を全体的に示す説明図である。
【図2】図1に示す2足歩行ロボットの制御ユニットの詳細を示すブロック図である。
【図3】この発明に係る脚式移動ロボットの歩容生成装置の動作を機能的に示すブロック図である。
【図4】この発明に係る脚式移動ロボットの歩容生成装置の動作を示すメイン・フロー・チャートである。
【図5】図3および図4の歩容生成動作で使用する標準歩容の中の第0標準歩容の遊脚位置および姿勢を示す説明図である。
【図6】図5の第0標準歩容の足平軌跡を示すタイミング・チャートである。
【図7】図5の第0標準歩容のZMP(X座標)のタイミング・チャートである。
【図8】図3および図4の歩容生成動作で使用する標準歩容の中の第1標準歩容の遊脚位置および姿勢を示す説明図である。
【図9】図8の第1標準歩容のZMP(X座標)のタイミング・チャートである。
【図10】図3および図4の歩容生成動作で使用する標準歩容の中の第2標準歩容の遊脚位置および姿勢を示す説明図である。
【図11】図10の第2標準歩容のZMP(X座標)のタイミング・チャートである。
【図12】図3および図4の歩容生成動作で要求された要求歩容の遊脚位置および姿勢を示す説明図である。
【図13】図12の要求歩容のZMP(X座標)のタイミング・チャートである。
【図14】図4フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図15】図14フロー・チャートの動作を説明する説明図である。
【図16】図15と同様に図14フロー・チャートの動作を説明する説明図である。
【図17】図4フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図18】図3および図4の歩容生成動作で生成された歩容に基づいて行われる、本出願人が先に提案した両脚コンプライアンス制御のフロー・チャートである。
【図19】図18フロー・チャートの中の両脚コンプライアンス操作量算出作業を示すサブルーチン・フロー・チャートである。
【図20】この発明の第2の実施の形態に係る装置の動作を示す、図4と同様のメイン・フロー・チャートである。
【図21】図20フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図22】図20フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図23】この発明の第3の実施の形態に係る装置の動作を示す、図4と同様のメイン・フロー・チャートである。
【図24】図23フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図25】図23フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図26】この発明の第4の実施の形態に係る装置の動作を示す、図4と同様のメイン・フロー・チャートである。
【図27】従前の実施の形態で生成された上***置などの歩容を示すタイミング・チャートである。
【図28】図26フロー・チャートの動作における境界条件合わせを説明するZMP(X座標)のタイミング・チャートである。
【図29】図26フロー・チャートの動作の動作を説明するZMP(X座標)のタイミング・チャートである。
【図30】同様に図26フロー・チャートの動作の動作を説明するZMP(X座標)のタイミング・チャートである。
【図31】同様に図26フロー・チャートの動作の動作を説明するZMP(X座標)のタイミング・チャートである。
【図32】同様に図26フロー・チャートの動作の動作を説明するZMP(X座標)のタイミング・チャートである。
【図33】図26フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図34】図26フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図35】図26フロー・チャートに示す第4の実施の形態で生成される歩容を示す説明タイミング・チャートである。
【図36】この発明の第5の実施の形態に係る装置の動作を示す、図4と同様のメイン・フロー・チャートである。
【図37】第5の実施の形態で使用する倒立振子モデルの説明図である。
【図38】図36フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図39】図36フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図40】この発明の第6の実施の形態に係る装置の動作を示す、図4と同様のメイン・フロー・チャートである。
【図41】図40フロー・チャートの第5の実施の形態の動作を説明するタイミング・チャートである。
【図42】図40フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図43】図40フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図44】図40フロー・チャートの動作を説明するタイミング・チャートである。
【図45】この発明の第7の実施の形態に係る装置の構成および動作を示す、図3と同様のブロック図である。
【図46】第7の実施の形態に係る装置の動作を示すメイン・フロー・チャートである。
【図47】図44フロー・チャートの中の歩容混合作業を示すサブルーチン・フロー・チャートである。
【図48】図44フロー・チャートの中の目標歩容の瞬時値算出作業を示すサブルーチン・フロー・チャートである。
【図49】この発明に係る脚式移動ロボットの歩容生成装置が生成する歩容における上体の位置を説明する説明図である。
【符号の説明】
1 2足歩行ロボット(脚式移動ロボット)
2 脚部リンク
10,12,14R,L 股関節
16R,L 膝関節
18,20R,L 足関節
22R,L 足平
24 上体
26 制御ユニット
[0001]
BACKGROUND OF THE INVENTION
The present invention relates to a gait generating device for a legged mobile robot, and more particularly to a legged mobile robot capable of generating its gait freely and in real time.
[0002]
[Prior art]
In a conventional legged mobile robot, for example, as shown in the technique described in Japanese Patent Laid-Open No. 5-285868, various gaits such as straight ahead and direction change are designed offline in advance, and the design value is mounted on the robot. It has been proposed that the data is stored in the memory of a microcomputer for use and output and executed in an appropriate order when walking.
[0003]
Similarly, the technique described in Japanese Patent Application Laid-Open No. Sho 62-97006 (Japanese Patent Publication No. 5-62363) also stores walking pattern data generated off-line in advance in a memory, and outputs the walking pattern data when walking. It has been proposed to subdivide the ticking time by temporally interpolating between stored time-series data.
[0004]
[Problems to be solved by the invention]
However, in the above-described prior art, since the gait data is determined in advance, the gait cannot be generated freely and in real time by realizing an arbitrary stride or turning angle.
[0005]
The first object of the present invention is to solve the above-mentioned disadvantages of the prior art, and in a legged mobile robot, a gait including a floor reaction force can be generated freely and in real time to realize an arbitrary stride or turning angle. An object of the present invention is to provide a gait generator for a legged mobile robot.
[0006]
The second object of the present invention is to eliminate the above-mentioned disadvantages of the prior art, and to generate a gait freely and in real time in a legged mobile robot, as well as displacement of each part of the robot at the boundary between the generated gaits and An object is to provide a gait generator for a legged mobile robot in which the speed is continuous.
[0007]
A third object of the present invention is to solve the above-mentioned disadvantages of the prior art, and in a legged mobile robot, the walking of the legged mobile robot that controls the legged mobile robot based on the gait generated in real time. It is to provide a capacity generation device.
[0008]
[Means for Solving the Problems]
In order to achieve the above first and second objects, for example, in claim 1, a legged movement comprising at least the upper body and a plurality of leg links connected to the upper body via joints. In a robot gait generator, a standard gait storage means for storing a plurality of types of standard gaits each of which includes a parameter relating to a floor reaction force for at least one gait, and a gait request. One standard gait for the gait requesting means to be performed and the gait request From A plurality of gait generating means for generating an approximate gait that satisfies the requirements related to the gait by selecting a plurality and performing an approximate operation based on the selected standard gait is provided.
[0009]
According to a second aspect of the present invention, the gait generator is configured to obtain the approximate gait by weighted averaging the selected gaits.
[0010]
According to a third aspect of the present invention, the gait generator is configured to obtain the approximate gait using the parameter sensitivity of the selected gait.
[0011]
According to a fourth aspect of the present invention, the gait generator is configured to perform a weighted average of the selected gaits and obtain the approximate gait using parameter sensitivity of the selected gaits.
[0012]
6. The storage according to claim 5, wherein the gait generating means obtains and stores a change amount of another parameter per unit change amount as a parameter sensitivity of the gait for at least one of the standard gaits. Means for determining the approximate gait using the stored parameter sensitivity of the gait.
[0013]
The standard gait generating means may include expression means for expressing a perturbation relationship of other parameters to a parameter related to a floor reaction force of the standard gait, and The approximate gait is corrected based on the relationship, and a gait that satisfies the gait requirement is generated so that at least the displacement and the speed are continuous in the boundary condition.
[0014]
According to a seventh aspect of the present invention, the perturbation of the other parameter is a perturbation of the horizontal position of the upper body.
[0015]
According to an eighth aspect of the present invention, the relationship is expressed by a linear model.
[0016]
In the ninth aspect, the relationship is expressed by an inverted pendulum model.
[0017]
In the tenth aspect, the relationship is expressed by a time series value.
[0018]
In the eleventh aspect, the gait generating means is configured to obtain the approximate gait by excluding the parameter when the parameter relating to the floor reaction force is in a predetermined condition.
[0019]
The gait generating means includes a joint angle calculating means for calculating a joint angle of the robot based on the generated gait, and the robot so as to have the calculated joint angle. To drive and control the joints Movement It comprised so that a control means might be provided.
[0020]
In claim 13, the joint angle determining means includes a detecting means for detecting a state quantity of the robot, and a correcting means for correcting the position and posture of the robot based on the detected state quantity, The joint angle calculating means is configured to calculate the joint angle of the robot so that the corrected position and posture are obtained.
[0021]
[Action]
Arbitrary stride and turning angle can be realized by generating gait including floor reaction force freely and in real time. Further, the displacement and speed of each part of the robot can be made continuous at the boundary between the generated gaits. Furthermore, the legged mobile robot can be driven and controlled based on the gait generated in real time.
[0022]
DETAILED DESCRIPTION OF THE INVENTION
Hereinafter, a gait generator for a legged mobile robot according to the present invention will be described with reference to the accompanying drawings. As a legged mobile robot, a biped walking robot is taken as an example.
[0023]
FIG. 1 is an explanatory diagram of the entire apparatus including the biped robot 1.
[0024]
As shown in the figure, the bipedal walking robot 1 has six joints on the left and right leg links 2 (for convenience of understanding, each joint is shown by an electric motor that drives it). The six joints are, in order from the top, joints 10R, 10L for leg rotation of the crotch (waist) (R is the right side, L is the left side, the same applies hereinafter), and the pitch direction of the crotch (waist part) (around the Y axis) Joints 12R, 12L, joints 14R, 14L in the same roll direction (around the X axis), joints 16R, 16L in the knee pitch direction, joints 18R, 18L in the foot pitch direction, joints 20R, 20L in the same roll direction Consists of
[0025]
Foot feet 22R and 22L are attached to the feet, and an upper body (base) 24 is provided at the uppermost position, and a control unit 26 including a microcomputer, which will be described later with reference to FIG. . In the above, the hip joint (or waist joint) is composed of joints 10R (L), 12R (L), 14R (L), and the ankle joint is composed of joints 18R (L), 20R (L). The hip joint and knee joint are connected by thigh links 28R and 28L, and the knee joint and ankle joint are connected by crus links 30R and 30L.
[0026]
With the above configuration, the leg link 2 is given six degrees of freedom for the left and right feet, and by driving these 6 * 2 = 12 joints at an appropriate angle during walking, it is desired for the entire foot. And can be arbitrarily walked in a three-dimensional space ("*" indicates multiplication in this specification).
[0027]
Note that the position of the upper body and its speed described later in this specification mean a predetermined position of the upper body 24, specifically, a representative point such as the position of the center of gravity of the upper body 24 and its (displacement) speed.
[0028]
As shown in FIG. 1, a known six-axis force sensor 44 is attached below the ankle joint to measure three-direction components Fx, Fy, Fz of force and three-direction components Mx, My, Mz of moment, The presence or absence of landing on the foot or the ground load is detected. In addition, an inclination sensor 60 is installed on the body 24 to detect the inclination with respect to the Z axis (vertical direction) and its angular velocity. Each electric motor of each joint is provided with a rotary encoder that detects the amount of rotation.
[0029]
Further, although not shown in FIG. 1, a joystick 62 is provided at an appropriate position of the biped robot 1, and a requested gait can be input from the outside, such as turning a robot that is moving straight forward as needed. Configured as follows.
[0030]
FIG. 2 is a block diagram showing details of the control unit 26, which is composed of a microcomputer. The output from the tilt sensor 60 and the like is converted into a digital value by the A / D converter 70, and the output is sent to the RAM 74 via the bus 72. The output of the encoder arranged adjacent to each electric motor is input into the RAM 74 via the counter 76.
[0031]
The control unit is provided with first and second arithmetic devices 80 and 82 composed of a CPU, and the first arithmetic device 80 can be freely set based on the standard gait stored in the ROM 84, as will be described later. A gait is generated in real time and a target joint angle is calculated and sent to the RAM 74. Further, the second arithmetic unit 82 reads out the target value and the detected actual value detected from the RAM 74, calculates a control value necessary for driving each joint, and each joint via the D / A converter 86 and the servo amplifier. Is output to the electric motor that drives.
[0032]
FIG. 3 is a block diagram functionally showing the operation of this apparatus, and FIG. 4 is a flow chart (structured flow chart) showing gait mixing or gait generation processing (in this specification). Gait generation is also called “gait mixing”).
[0033]
First, the gait generated by this apparatus will be described. An object of the present invention is to provide an apparatus for generating a gait in real time as described above. An object of the present invention is to freely generate a desired gait necessary for performing posture stabilization control of the robot by the both-leg compliance control proposed in Japanese Patent No. 5-30585.
[0034]
Therefore, first, the proposed posture stabilization control will be briefly described. In the technology, the leg portion detects the deviation between the target position of the floor reaction force (ZMP) and the actually measured position, and cancels the deviation. One or both of them are driven to stabilize the posture. At the same time, when the robot is about to fall down, the actual floor reaction force is shifted by intentionally shifting the target floor reaction force to obtain posture restoring force.
[0035]
As described above, in a legged mobile robot, stable walking cannot be realized unless the relationship between the target motion trajectory and the target floor reaction force pattern satisfies the dynamic equilibrium condition. Specifically, the dynamic equilibrium condition is, for example, the target floor reaction force center point (the point of action on the floor where the second moment of the target floor reaction force distribution is 0) and ZMP (Zero Moment Point ... motion. The point where the inertial force and the resultant force of gravity intersect with the floor) is the same. Otherwise, when the compliance control is activated, the dynamic balance between the inertial force, the resultant force of gravity, and the floor reaction force is broken and falls.
[0036]
In the previously proposed technology, this is reversed for posture recovery when the robot becomes unstable. As is apparent from the above, the target value given to walking control in this way for legged mobile robots. Therefore, not only the target motion pattern but also the target floor reaction force pattern that satisfies the target motion pattern and the dynamic equilibrium condition is necessary.
[0037]
The target floor reaction force is generally expressed by an action point, a force acting on the point, and a moment of the force. Since the point of action is good everywhere, innumerable expressions can be considered even with the same target floor reaction force, but when the target floor reaction force is expressed using the above-mentioned target floor reaction force center point as the action point, the moment of force is Except for the component perpendicular to the floor, it is zero.
[0038]
As described above, since the target floor reaction force center point trajectory that satisfies the target motion trajectory and the dynamic equilibrium condition coincides with ZMP, the target ZMP trajectory is given instead of the target floor reaction force action center point trajectory. The same is true.
[0039]
Therefore, the above can be rephrased as “the target value given to the walking control requires not only the target motion trajectory but also the target ZMP trajectory (target floor reaction force pattern)”. From this background, in this specification, the target gait is defined as follows.
[0040]
a) A target gait in a broad sense is a set of a target motion trajectory and a target floor reaction force pattern for a period of one step or a plurality of steps.
b) A target gait in a narrow sense is a set of a target motion trajectory and its ZMP trajectory for one step period.
c) A series of walks shall be connected by several gaits.
[0041]
In the following, in order to facilitate understanding, the target gait is used in the sense of a target gait in a narrow sense unless otherwise specified. More specifically, in this specification, the target gait is used from the beginning of the both-leg support period to the end of the one-leg support period. Needless to say, both legs support period, the period in which the robot 1 supports its own weight with both leg links 2, and the one leg support period refers to the period in which one leg link 2 supports. The leg portion (link) on the side that does not support the weight of the robot 1 in the one-leg support period is called a free leg.
[0042]
Specifically, an object of the present invention is to freely and in real time generate the target gait defined above. If it can be generated freely and in real time, the operator can freely operate the robot 1 by remote control, for example, and also in automatic control, it not only moves according to a fixed sequence, but also allows guidance control and delicate positioning. It becomes.
[0043]
Here, the condition as the target gait will be described.
[0044]
The conditions that the target gait must satisfy are roughly classified into the following five.
Condition 1) The kinetic equilibrium condition is satisfied. That is, the ZMP trajectory dynamically calculated from the target motion trajectory of the robot 1 matches the target ZMP trajectory.
Condition 2) When the robot 1 has a walking planning unit, a walking route guiding unit (both not shown), or a condition that the gait such as a stride and a turning angle is required from the operator, the requirements are satisfied. .
[0045]
Condition 3) Kinematics (kinematics) constraints such as the foot does not dig or rub the floor, the joint angle does not exceed the movable range, and the joint speed does not exceed the limit.
Condition 4) The dynamics constraints such as ZMP must be in the ground plane of the supporting leg foot in the single leg support period and not exceed the maximum capacity of the drive system.
[0046]
Condition 5) The boundary condition is satisfied. That is, as a natural consequence of the condition 1), at the boundary between the gait and the gait, at least a boundary condition that the displacement of each part and the (displacement) speed are continuous is derived (if it is discontinuous, it is infinite. Or the ZMP moves to a point far away from the ground plane).
[0047]
Further, the initial state of the (n + 1) th gait must be set so as to coincide with the terminal state of the nth gait (particularly, the position / posture and speed of the upper body with respect to the foot position). At this time, if the initial state of the (n + 1) th gait is determined, the terminal state of the nth gait may be made to coincide with the initial state of the (n + 1) th gait.
[0048]
If it is not decided, the terminal state of the nth gait may be in a range where long-term walking can be performed without losing posture. However, as will be described later, it is extremely difficult to obtain the range of the terminal state that allows long-term walking without losing posture.
[0049]
Generally, a target gait is generated by a gait generation algorithm including a parameter value or a time series table, as in a standard gait described later (determining a gait is a parameter value or a time series table. Is an appropriate setting).
[0050]
Various gaits are generated by changing parameter values or time series tables. However, it is not known whether or not the created gait satisfies all the above-mentioned gait conditions only by setting the parameter value or the time series table without giving sufficient consideration.
[0051]
In particular, even when the terminal body position and velocity range suitable for long-term walking are known, a body trajectory that satisfies the above condition 1) is generated according to the gait generation algorithm based on the ZMP trajectory. It is extremely difficult to set parameters related to the ZMP trajectory so that both the body position and velocity at the end of the generated gait are within the range.
[0052]
The reason is as follows.
Reason 1) Once the upper body is far away from the ZMP, it tends to diverge further away. In order to explain this, the behavior of an inverted pendulum that is close to the behavior of the upper body of the robot is taken as an example.
[0053]
Inverted pendulums fall off when the floor projection point of the center of gravity deviates from the fulcrum. However, even at that time, the resultant force of the inverted pendulum and the gravity acts on the fulcrum (that is, ZMP coincides with the fulcrum) and balances the floor reaction force received from the fulcrum. That is, the dynamic equilibrium condition merely represents the relationship between the inertial force, gravity, and floor reaction force at the moment of the moving object.
[0054]
If the dynamic equilibrium condition is satisfied, an illusion is likely as if long-term walking of the robot is guaranteed, but it has nothing to do with whether or not the posture of the robot is broken. As the center of gravity of the inverted pendulum tends to move away from the fulcrum, the tendency of the robot to diverge further away from the center of the ZMP. There is.
[0055]
Reason 2) Because of severe restrictions such as the ZMP must be in the ground plane of the supporting leg in the single leg support period, the acceleration / deceleration pattern of the upper body cannot be arbitrarily set, and the position When trying to match, the speed does not match, and when trying to match the speed, the position does not match, and it is difficult to match both at the same time. For example, when driving a car, the force applied to the brake is limited to a narrow range, and the vehicle is stopped exactly on the target stop line at a predetermined time.
[0056]
Due to the above problems, it has been impossible in the past to determine in real time the parameters and table of the target gait that satisfies all the gait conditions. Therefore, in the above-described conventional technology, free walking has not been realized.
[0057]
Based on the above, the apparatus according to the present invention will be described with reference to FIG. FIG. 4 is a block diagram functionally showing the operation of this apparatus shown in the flow chart of FIG. 4 for the convenience of understanding.
[0058]
In this device, as shown in the figure, based on the standard gait created off-line and stored in the ROM 84, the gait issued in real time during walking (gait change etc.) is satisfied. A gait is generated in the mixed gait instantaneous value generator.
[0059]
The standard gait is created by trial and error in various gaits offline, and the gait having a terminal state in which the upper body does not diverge and the subsequent continuous walking is guaranteed is selected. To be remembered. For example, a series of continuous gaits such as a gait that starts walking from a stationary state, an acceleration gait, a constant speed gait, a deceleration gait, and a stop gait are standard gaits that guarantee continuous walking. This is a representative example.
[0060]
The gait is described by gait parameters. The gait parameter is composed of a motion parameter and a ZMP parameter (more generally, a floor reaction force parameter). In this specification, the term “floor reaction force parameter” is used to mean “a parameter relating to a temporal pattern of the floor reaction force”.
[0061]
As shown later in FIG. 7 and the like, the ZMP parameter is indicated by the position of the break point of the ZMP trajectory in the form of a line graph and the passage time with respect to the X, Y, and Z coordinates (directions) (only the X coordinate is shown). In the mixed gait instantaneous value generator, an instantaneous value of ZMP (trajectory) (current (current time) control cycle value) is calculated by the ZMP generator based on the ZMP parameter.
[0062]
The motion parameters are composed of foot (orbit) parameters and upper body (orbit) parameters.
[0063]
The foot trajectory parameters include an initial (at the time of getting off) free leg position and posture, a terminal (at the time of landing) free leg position and posture, a both-leg support period, a one-leg support period, and the like. Based on these, in the foot trajectory generator, the positions of both feet (xf, yf, zf) using the techniques previously proposed by the present applicant in Japanese Patent Laid-Open Nos. 5-318339 and 5-324115, etc. And instantaneous values of postures (θxf, θyf, θzf). Here, “attitude means inclination or direction in space”.
[0064]
The body trajectory parameters are parameters that determine the posture of the body (the direction or inclination of the body 24 in space), parameters that determine the body height (value in the Z direction), initial body position (displacement), and It consists of speed parameters.
[0065]
In the body horizontal position generator, the horizontal position of the body (by the time function based on the parameters for determining the body position and posture or the technique previously proposed by the present applicant in Japanese Patent Laid-Open No. 5-324115, etc.) xb, yb) and instantaneous values of posture (θxb, θyb, θzb) are obtained. As described above, the position of the upper body means a representative point such as the position of the center of gravity of the upper body 24. In the body height determiner, the body height zb is determined by an appropriate method, for example, the method proposed by the applicant at the same time as this application.
[0066]
Since the joint of the legged mobile robot 1 is composed of 12 joints as shown in FIG. 1, the target joint displacement is calculated by inverse kinematics calculation from the obtained position / posture of both feet and the body position / posture. Is uniquely determined. That is, the target posture of the current robot is uniquely determined. (To be precise, the target joint displacement is calculated after the target positions and postures of both feet are corrected by the both-leg compliance control.)
[0067]
Originally, the gait is uniquely expressed only with the gait parameters, but in this embodiment, the body trajectory of the standard gait is previously calculated offline in order to reduce the amount of computation during walking. The time data is stored as a time series table, and the current time data is discharged every control cycle. Although a slight error occurs, when the ROM 84 has a small capacity, the body trajectory of the standard gait is approximated by a polynomial, and the coefficient of the approximate expression is stored as a kind of gait parameter instead of the time series table. You may do it.
[0068]
Here, supplementing the explanation of the standard gait, the standard gait is more specifically expressed as a time function in this specification, and one gait is defined as g (t) and f ( It was expressed as a set of t).
g (t): a function describing motion (this function value represents the position / posture of the entire robot at time t. Specifically, the whole position / posture is shown in FIG. Posture and position / posture of both feet)
f (t): a function describing the ZMP trajectory (the value of this function represents the position (x, y, z) of the ZMP at time t as described above).
[0069]
Also, the gait function is symbolized noting the parameters. That is, g (t) and f (t) are both functions having gait parameters as parameters. In order to clearly indicate different gaits, all parameters should be explicitly described. However, since there are so many kinds of parameters, the following notation is used, specifying only the parameter variables necessary for the following explanation. I will do it.
g (t: a, b, c, d, x (k), y (k)): function that describes the motion trajectory
f (t: a, b, c, d): Function that describes the ZMP trajectory (function that describes the floor reaction force)
However,
a: Initial swing leg position (robot turning angle)
b: Initial swing leg foot position (step length)
c: X-coordinate of ZMP during single leg support
d: Y coordinate of ZMP in single leg support period
x (k): X coordinate time series of body position
y (k): Y coordinate time series of body position
[0070]
In this notation, the time series is also treated as a kind of parameter. Originally, if the initial body position / velocity parameters are given, the gait is uniquely determined without the time series table of body positions. In other words, the body position time series is redundant, but as described above, the body position time series table is also treated as a parameter describing the gait in order to shorten the computation time for real-time gait generation. ing.
[0071]
In this embodiment, the initial body position / velocity parameters also vary depending on the gait. However, if the time series of the body position is clearly specified, From two Initial body position / velocity parameter values Can be calculated Therefore, the description is omitted.
[0072]
In this embodiment, as described above, as the standard gait, as described above, a plurality of types of gaits such as a gait that starts walking from a stationary state are created in advance offline. The following three types of gaits will be exemplified as specific examples. .
0th standard gait
g (t: a0, b0, c0, d0, x0 (k), y0 (k))
f (t: a0, b0, c0, d0)
First standard gait
g (t: a1, b0, c1, d1, x1 (k), y1 (k))
f (t: a1, b0, c1, d1)
Second standard gait
g (t: a0, b2, c2, d2, x2 (k), y2 (k))
f (t: a0, b2, c2, d2)
[0073]
The initial free leg foot position / posture and the final free leg foot position / posture of these standard gaits are shown in FIGS. In order to express the gait, as shown in this figure, the coordinate system is shown with the reference point at the support leg foot contact position as the origin, the front and rear direction of the support leg foot is the X axis, and the left and right direction is the Y axis. .
[0074]
Before entering the description of the flow chart of FIG. 4, it is assumed here that a request relating to a gait as shown in FIGS. 12 and 13 is given, and the required gait so as to satisfy the gait condition from the standard gait described above. The operation of this apparatus will be described by taking as an example the operation of generating a content (the above-mentioned approximate gait) (hereinafter referred to as “third gait”). The third gait has an arbitrary initial free leg foot orientation a3 and an arbitrary initial free leg foot front-rear position b3.
[0075]
Naturally, the value of the parameter a of the third gait is a3, and the value of b is b3. The problem is how to determine the other parameters c and d and the tables x (k) and y (k) so as to satisfy the gait condition.
[0076]
So the third gait
g (t: a3, b3, c3, d3, x3 (k), y3 (k))
f (t: a3, b3, c3, d3)
Then, parameters c3 and d3 and time series tables x3 (k) and y3 (k) are determined.
[0077]
Here, defining terms, parameters a and b can be transmitted to the device from outside the device (by the operator's operation of the joystick 62, etc.) or from another device (such as the two-leg compliance controller in the block diagram of FIG. 3). And a value input as a request setting value (same as the above-mentioned “request regarding gait”). In this way, a parameter that directly requires a certain setting value is called a direct setting parameter.
[0078]
In this embodiment, for the sake of simplification of explanation, only the initial free leg foot direction and the front / rear position (step length) can be arbitrarily changed. The
1) Instructions from the operator (turning angle and angular velocity command, moving speed command, etc.)
2) When other processing devices (such as trajectory guidance devices) are provided, requests from them (terminal free leg foot position / posture, etc.)
Others,
3) Boundary conditions with the previous and / or next gait (initial body position and posture, initial free leg foot position / posture, etc.)
Can be mentioned. 3) will be described in the fourth embodiment.
[0079]
On the other hand, parameters (or tables) whose values are determined so as to satisfy gait conditions according to the directly set parameter values, such as parameters c and d and tables x (k) and y (k), It is called a dependent parameter (or dependent table). Since it is extremely difficult to set the time series table directly, the time series table hardly becomes a setting parameter directly.
[0080]
The first and second standard gaits other than the 0th standard gait are obtained by changing only one of the directly set parameters (here, parameters a and b) with the 0th standard gait as a reference. It is. Thus, the gait (0th standard gait) that is the core of the selected standard gait is called a base gait.
[0081]
Here, how to obtain the parameters of the requested gait (the parameters of the requested gait are also referred to as “mixed parameters” in this specification) will be described. The dependent parameters c3, d3 and the dependent time series tables x3 (k), y3 ( Both k) change directly according to the setting parameters a and b in order to satisfy the gait conditions. Moreover, it is considered that these values change continuously with respect to changes in the parameters a and b. That is, these are continuous functions of parameters a and b. Therefore, the approximation principle described below can be used. In other words, the required gait parameter can be obtained by performing an approximate calculation.
[0082]
If function P is a smooth continuous function,
P (a0 + Δa, b0 + Δb) = P (a0, b0) + δP / δa | (a = a0, b = b0) * Δa + δP
/ Δb | (a = a0, b = b0) * Δb Approximation 1
However,
δP / δa | (a = a0, b = b0): Partial differential value of P with respect to a at a = a0, b = b0
δP / δb | (a = a0, b = b0): partial differential value of P with respect to b at a = a0, b = b0
[0083]
Furthermore,
δP / δa | (a = a0, b = b0) = (P (a0 + Δa1, b0)-P (a0, b0)) / Δa1
δP / δb | (a = a0, b = b0) = (P (a0, b0 + Δb2)-P (a0, b0)) / Δb2
Therefore, the approximate expression 1 is
P (a0 + Δa, b0 + Δb) = P (a0, b0)
+ (P (a0 + Δa1, b0) −P (a0, b0)) / Δa1 * Δa
+ (P (a0, b0 + Δb2)-P (a0, b0)) / Δb2 * Δb
・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ ・ Approximate expression 2
[0084]
The first embodiment is an expansion of the approximate expression 2, and the second embodiment described later is an expansion of the approximate expression 1.
[0085]
Continuing with the explanation of how to calculate the parameters of the requested gait, the standard gait can be divided by dividing internally or externally for all dependent parameters and all dependent time series tables as shown in the following formula. To determine the parameters of the third gait. This is because it can be considered that the directly set parameter and the dependent parameter are in a proportional relationship.
[0086]
If a3 is inside a1 and a2, it is an inner part, and if it is outside, it is an outer part. Also, some parameters whose differences can be ignored in terms of dynamics and some time series tables may be left as base gaits without being divided into internal and external parts. Further, regarding the time series table, if all the time data is calculated at once, the load on the first arithmetic unit 80 is too large, and therefore, only the current time data may be divided internally and externally for each control cycle.
[0087]
The following is a mixing formula (depending on internal or external division) of dependent parameters and dependent tables (hereinafter, this mixing formula is referred to as “Formula 1”).
c3 = c0
+ (c1-c0) * (a3-a0) / (a1-a0)
+ (c2-c0) * (b3-b0) / (b2-b0)
d3 = d0
+ (d1-d0) * (a3-a0) / (a1-a0)
+ (d2-d0) * (b3-b0) / (b2-b0)
x3 (k) = x0 (k)
+ (x1 (k)-x0 (k)) * (a3-a0) / (a1-a0)
+ (x2 (k)-x0 (k)) * (b3-b0) / (b2-b0)
y3 (k) = y0 (k)
+ (y1 (k)-y0 (k)) * (a3-a0) / (a1-a0)
+ (y2 (k)-y0 (k)) * (b3-b0) / (b2-b0)
[0088]
The above Equation 1 is a weighted average (weighted average) of each standard parameter and table value. For example, transforming the equation to find c3
c3 = (1-(a3-a0) / (a1-a0)-(b3-b0) / (b2-b0)) * c0
+ (A3-a0) / (a1-a0) * c1
+ (B3-b0) / (b2-b0) * c2
Since the sum of the coefficients of c0, c1, and c2 is 1, c3 has weights for c0, c1, and c2, respectively.
(1-(a3-a0) / (a1-a0)-(b3-b0) / (b2-b0))
(a3-a0) / (a1-a0)
(B3-b0) / (b2-b0)
It is a weighted average.
[0089]
If it is desired to set the terminal body position / velocity directly to an arbitrary value as a setting parameter, several standard gaits having different base gaits and ZMP parameters may be selected and weighted averaged. Since the terminal state of the mixed gait is almost equal to the weighted average of the terminal state of each standard gait to be mixed, all the terminal states of the mixed gait (position / velocity of front / rear / right / left of the upper body) are required values. Thus, the weighted average weight may be obtained.
[0090]
Further, when the body position is obtained from the time series table, the termination conditions are completely matched. However, as will be described later in the seventh embodiment, when the body position is sequentially obtained so as to satisfy the ZMP setting trajectory by the dynamic calculation, there is a slight deviation.
[0091]
At this time, in order to determine the weight, the termination state of each standard gait to be mixed is necessary. Therefore, if a table in which the termination state of each standard gait is stored in advance is used, the processing time is shortened. be able to.
[0092]
The parameters of the mixed gait can be determined by the above method, and then the instantaneous value at each time of the requested gait can be generated or generated by the same gait generation algorithm as the standard gait created offline.
[0093]
Hereinafter, the operation of this apparatus will be described with reference to the flow chart of FIG. 4. The standard gait data group created off-line in S10 is stored in the ROM 84 in advance. Next, in S12, the final body position and speed of each standard gait are obtained and stored.
[0094]
As described above, since the position of the body 24 is tabulated as functions x (k), y (k), the speed is obtained from the data at the end of the table and the time immediately before it. Specifically, the value of the last time is set as the position, and the difference between the value of the last time and the time immediately before is obtained as the speed.
[0095]
Next, the process proceeds to S14, the timer value t is set to 0 (the timer is started), the process proceeds to S18 via S16, and a timer interrupt is waited (different from the timer of S14). The flow chart of FIG. 4 is activated every 20 ms, for example. That is, the control cycle is every 20 ms.
[0096]
Next, the process proceeds to S20, where it is determined whether or not it is a gait change, specifically, a one-step change. If the determination is affirmative, the process proceeds to S22, the timer is reset to 0, and the process proceeds to S24. (Specifically, the request values (a and b described above) of the direct setting parameter of the current time's gait are read).
[0097]
Next, in S26, a gait mixing process is performed.
[0098]
FIG. 14 is a subroutine flow chart showing the work.
[0099]
First, in S100, a standard gait whose direct setting parameter value is close to the required value is selected as a base gait. Referring to FIG. 15, the standard gait whose direct setting parameters a and b are close to the required values (third gait) a3 and b3 is the zeroth standard gait. Choose as.
[0100]
Next, the process proceeds to S102, paying attention to the directly set parameters, and selects one standard gait that differs from the base gait only by one of the parameters. If there are multiple candidates, the parameter value of the candidate is as close as possible to the value of the parameter of interest, and if possible, the request value is located between the parameter value of the base gait and the parameter value of the candidate. select. For example, in the case shown in FIG. 16, standard gait candidate 1 is adopted for parameter a.
[0101]
As will be described later in the fifth embodiment, when the mass of the leg link 2 is sufficiently smaller than that of the upper body 24, the end free leg foot position / posture parameters are included in the direct setting parameters. Even if only a small change is made, the inertial force generated by the robot 1 hardly changes. That is, even if the parameter value is changed, it can be considered that the other parameters are hardly affected in satisfying the dynamic equilibrium condition.
[0102]
Therefore, if the foot position / posture parameters of the end free leg are slightly different from the base gait, the parameter values of the base gait may be rewritten as required. Therefore, it is not necessary to select a gait that differs from the base gait only for the end free leg foot position / posture parameters for mixing.
[0103]
Next, the process proceeds to S104, where the required value is substituted into the direct setting parameter of the mixed gait, and the process proceeds to S106, where the dependent parameter value of the mixed gait is calculated by the parameter calculation formula (Equation 1) and substituted into the mixed gait parameter. To do.
[0104]
Returning to FIG. 4, the process proceeds to S28, where the mixed gait parameter (table) is substituted into the target gait parameter (table), and the process proceeds to S30 to calculate the instantaneous value of the target gait (the value of the current control cycle). To do.
[0105]
FIG. 17 is a subroutine flow chart showing the work.
[0106]
First, in step S200, the ZMP at time t is obtained based on the mixed gait parameter, and the process proceeds to step S202, where the both foot positions / postures at time t are obtained based on the mixed gait parameter.
[0107]
Subsequently, the process proceeds to S204 where both foot positions / postures at time t and time t−Δt Upper body The body height at time t is obtained from the horizontal position. The details are described in another application that is proposed at the same time as described above, and are not directly related to the gist of the present invention, and are therefore omitted.
[0108]
Subsequently, the process proceeds to S206, and the mixed gait body horizontal position at time t is determined in accordance with the mixing formula (formula 1) described above based on the body position at time t of the selected standard gait (including the base gait). calculate.
[0109]
Subsequently, the process returns to S32 in the flowchart of FIG. 4 to update the time t by Δt, and the process returns to S18 to repeat the above processing.
[0110]
Note that the both-leg compliance controller performs the both-leg compliance based on the gait generated as described above, and then the target joint angle is obtained and driven and controlled toward the target value.
[0111]
Briefly describing the both-leg compliance control with reference to the flowchart of FIG. 18, first, in S300, the both-leg compliance operation amount is calculated.
[0112]
FIG. 19 is a subroutine flow chart showing the work. In S400, the detected value of the six-axis force sensor 44 is read, and the process proceeds to S402 to determine the actual measured position of ZMP (actual floor reaction force central point) from the detected value. The process proceeds to S404 to determine the deviation, that is, the shift direction and the shift amount X in comparison with the ZMP target position. The posture is shifted according to the operation amount obtained. Since the actual ZMP position and the actual floor reaction force central point coincide with each other, they are treated as synonymous in this specification.
[0113]
Returning to the flowchart of FIG. 18, the process then proceeds to S302, where 12 is obtained via a known inverse kinematics calculation based on the foot position / posture (corrected value when corrected by compliance control) and the body position / posture. The target angle of each joint is calculated, and when the process proceeds to S304 and the robot 1 is determined to be unstable from the output of the tilt sensor 11, the target posture is corrected so as to intentionally shift the floor reaction force center point. In step S306, all joints are controlled to follow the target angle. Specifically, the second arithmetic unit 82 performs this.
[0114]
Since this embodiment is configured as described above, it is possible to generate a gait freely and in real time to realize an arbitrary stride or turning angle. Furthermore, the legged mobile robot can be freely walked while being driven and controlled to the target joint angle based on the gait generated in real time.
[0115]
More specifically, the base gait is appropriately selected from several standard gaits stored for any request for stride and turning angle, and mixed operations such as composition and deformation, that is, the approximation described above. By performing the calculation, it is possible to generate an approximate gait that satisfies the above-described requirements regarding the gait condition and the gait in real time.
[0116]
Furthermore, since it is configured as described above, it is possible to set subtle angles and stride lengths, and to some extent (if the boundary state is close), by combining and mixing existing standard gaits together, It is also possible to generate the content arbitrarily.
[0117]
Moreover, the amount of calculation can be reduced by having comprised as mentioned above. Specifically, the calculation amount of the first arithmetic unit 80 is reduced to about 1/10 compared to solving the dynamics in real time. Furthermore, since the optimum standard gait is stored and mixed to generate a gait, the capacity of the memory (ROM 84) can also be reduced. Furthermore, since the optimality is satisfied, a gait that satisfies the conditions 1) to 5) can be easily obtained without trial and error.
[0118]
FIG. 20 is a flow chart showing the second embodiment of the present invention.
[0119]
In the second embodiment, the sensitivity for the gait parameters is used together with the standard gait. In general, “sensitivity” means the degree of influence of changes in the output and characteristics of the system due to changes in inputs, parameters, or environmental conditions. In the second embodiment, the unit change amount of a certain gait parameter. The amount of change of other parameters per hit (hereinafter referred to as “gait parameter sensitivity”) is obtained, and the amount of change (or amount of change) of the parameter is obtained using it.
[0120]
More specifically, the gait parameter sensitivity is obtained when the direct setting parameters (for example, the initial free leg direction a, the initial free leg front-and-rear position b in the first embodiment) are changed by a small amount in the standard gait. In order to make the gait a desirable standard gait, it is used to indicate how much other dependent parameters must be changed. Specifically, the gait parameter sensitivity is defined as the change amount of the dependent parameter per unit amount change of the directly set parameter.
[0121]
As a result, in the second embodiment, the number of standard gaits is reduced, and only the one that becomes the base gait is used. That is, for example, a series of continuous base gaits such as a gait that starts walking from a stationary state, an acceleration gait, a constant speed gait, a deceleration gait, and a stop gait are prepared. A staggered standard gait was not prepared.
[0122]
Specifically, the sensitivity of the parameter q to the parameter p in a standard gait i is described as Di (q, p). Similarly in the time series table, the sensitivity of the kth data x (k) with respect to the parameter p is described as Di (x (k), p).
[0123]
A method for generating a requested gait in the second embodiment will be described.
[0124]
The relationship between the sensitivity D0 (c, a) of the parameter c with respect to the parameter a in the previous 0th standard gait and the first standard gait is as follows.
If (a1-a0) is small enough, according to the definition,
D0 (c, a) = (c1-c0) / (a1-a0)
D0 (d, a) = (d1-d0) / (a1-a0)
D0 (x (k), a) = (x1 (k) -x0 (k)) / (a1-a0)
D0 (y (k), a) = (y1 (k) -y0 (k)) / (a1-a0)
It is.
[0125]
Similarly, the relationship between the sensitivity D0 (c, b) of the parameter c to the parameter b in the 0th standard gait and the second standard gait is as follows.
If (b2-b0) is small enough, according to the definition,
D0 (c, b) = (c2-c0) / (b2-b0)
D0 (d, b) = (d2-d0) / (b2-b0)
D0 (x (k), b) = (x2 (k)-x0 (k)) / (b2-b0)
D0 (y (k), b) = (y2 (k) -y0 (k)) / (b2-b0)
It is.
[0126]
By substituting these into the parameter and table mixing formulas of the first embodiment, the following formula (hereinafter referred to as “Formula 2”) is obtained as a parameter determination formula (using parameter sensitivity).
[0127]
c3 = c0
+ D0 (c, a) * (a3-a0)
+ D0 (c, b) * (b3-b0)
d3 = d0
+ D0 (d, a) * (a3-a0)
+ D0 (d, b) * (b3-b0)
x3 (k) = x0 (k)
+ D0 (x (k), a) * (a3-a0)
+ D0 (x (k), b) * (b3-b0)
y3 (k) = y0 (k)
+ D0 (y (k), a) * (a3-a0)
+ D0 (y (k), b) * (b3-b0)
[0128]
With reference to the flowchart of FIG. 20 based on the above, the base gait and gait parameter sensitivity created offline in S500 are stored, and the same processing as in the first embodiment from S502 to S514 is stored. The process proceeds to S516, where gait mixing processing is performed.
[0129]
FIG. 21 is a subroutine flow chart showing the work. In S600, a base gait whose direct setting parameter value is close to the required value is selected, and in S602, the required value is assigned to the direct setting parameter of the mixed gait. Then, the process proceeds to S604, and the dependent parameter is obtained according to Equation 2. Although the time series table of the horizontal body position may be calculated at a time, since the amount of calculation is large, only a necessary value may be calculated for each control cycle in an instantaneous value generation subroutine described later.
[0130]
Returning to FIG. 20, the process proceeds to S520 through S518 and S510, and the instantaneous value of the target gait is calculated.
[0131]
FIG. 22 is a subroutine flowchart showing the work, and the processing from S700 to S706 is performed as in the first embodiment to calculate the position and posture of the foot and upper body. In step S706, the horizontal body position is calculated according to the expressions x and y in expression 2. Subsequently, returning to FIG. 20, the process returns to S508 via S522 and the above processing is repeated.
[0132]
Since the second embodiment is configured as described above, the same effects as those of the first embodiment can be obtained.
[0133]
However, the superiority of the second embodiment over the first embodiment differs depending on the combination of stored standard gaits and the nature of the standard gait. For example, when the entire space created by a set of directly set parameters is called a parameter space, the first set of discretizations are made discrete at certain intervals with respect to each of the directly set parameters, and a lattice-like discontinuous portion is formed in the parameter space. Create a space and create the desired standard gait for all directly set parameter sets in that discontinuous subspace. In other words, the values of parameters (dependent parameters) other than the directly set parameters are adjusted so as to have a desired gait.
[0134]
If you have a standard gait created in this way, most standard gaits will satisfy the condition as a base gait (the condition of the base gait is that for all parameters you want to change from that gait. There is only one standard gait that is different). Therefore, an arbitrary gait can be created by the method of the first embodiment, and there is no need to have parameter sensitivity.
[0135]
In the second embodiment, when the parameter sensitivity is almost equal to a wide range of gaits, the parameter sensitivity is not set to each gait, but the gait is shared in a wide range of gaits. It ’s fine. In this way, the capacity of the memory (ROM 84) can be saved, and in that case, a much smaller memory capacity is sufficient as compared with the first embodiment.
[0136]
For example, if D0 (c, a), D1 (c, a), D2 (c, a),... Dn (c, a) are almost the same value, the average value is expressed as D (c, a ), D (c, a) may be used in common instead of D0 (c, a), D1 (c, a),... In the parameter determination formula using the parameter sensitivity.
[0137]
FIG. 23 is a flow chart showing the third embodiment of the present invention.
[0138]
In the third embodiment, the standard gait similar to that of the first embodiment is used, and the gait parameter sensitivity of the second embodiment is also used.
[0139]
A method for generating a requested gait in the third embodiment will be described.
[0140]
In the third embodiment, in determining the value of the dependent parameter, the influence of the direct setting parameter is partially used by the method of the first embodiment, and the rest is used by the method of the second embodiment. Ask. That is, gait mixing and perturbation addition based on gait parameter sensitivity are used together.
[0141]
For example, if the method of the first embodiment is used for the influence of a among the direct setting parameters and the method of the second embodiment is used for the influence of b, the following equation is obtained.
c3 = c0
+ (C1-c0) * (a3-a0) / (a1-a0)
+ D0 (c, b) * (b3-b0)
d3 = d0
+ (d1-d0) * (a3-a0) / (a1-a0)
+ D0 (d, b) * (b3-b0)
x3 (k) = x0 (k)
+ (x1 (k)-x0 (k)) * (a3-a0) / (a1-a0)
+ D0 (x (k), b) * (b3-b0)
y3 (k) = y0 (k)
+ (y1 (k)-y0 (k)) * (a3-a0) / (a1-a0)
+ D0 (y (k), b) * (b3-b0)
[0142]
Referring to FIG. 23, the standard gait and gait parameter sensitivity created off-line in S800 are stored, the process proceeds to S802 and the subsequent steps, the same processing as in the first embodiment is performed, and the flow from S816 to FIG. Proceed to the chart and mix gaits after S900. Further, the process proceeds from S820 in the flowchart of FIG. 23 to S1000 and subsequent in the flowchart of FIG. 25 to calculate an instantaneous value.
[0143]
Since the third embodiment is configured as described above, it has the same effect as the previous embodiment.
[0144]
FIG. 26 is a flowchart showing the fourth embodiment of the present invention.
[0145]
Since the mixed gaits (requested gaits) obtained from the standard gait tend to be slightly shifted in body position / velocity at the gait boundary as shown in FIG. It is necessary to adjust the speed to the initial body position / speed of the next mixed gait. Therefore, in the fourth embodiment, the boundary condition of the body position / velocity is arbitrarily set. That is, the initial body position / velocity and the terminal body position / velocity are directly considered as setting parameters so that the body position / velocity is continuous in the boundary condition.
[0146]
To summarize the method, first, using the method of the first to third embodiments, the direct setting parameters are all set as desired except for the initial body position / velocity and the terminal body position / velocity. A gait is generated and then the ZMP parameters are corrected so that the initial body position / velocity and the terminal body position / velocity are also as desired.
[0147]
Since the first half of the process is the same as the previous embodiment, a description thereof will be omitted. Hereinafter, a method for correcting the ZMP parameters so that the initial body position / velocity and the final body position / velocity in the second half are also as desired. explain.
[0148]
Consider the case where the gait parameters other than the initial body position / velocity, the terminal body position / velocity, and the ZMP parameter are fixed in the above-described gait generation method.
[0149]
In this case, when the initial body position / velocity and the ZMP pattern are set, the gait that satisfies the dynamic equilibrium condition is uniquely determined, so that the terminal body position / velocity is also uniquely determined. Conversely, when the terminal body position / velocity and the ZMP pattern are given, the initial body position / velocity is uniquely determined. Therefore, in order to arbitrarily set the initial body position / velocity and the terminal body position / velocity, the ZMP pattern must be adjusted accordingly. That is, once the ZMP pattern is determined, the initial body position / velocity and the terminal body position / velocity have a one-to-one mapping relationship.
[0150]
In the following, if only the behavior in the front-rear direction (X direction) of the upper body is considered in order to simplify the explanation, since the state quantity is two variables of position and velocity, boundary conditions relating to these can be arbitrarily set. To do so, two or more parameters are required for the ZMP pattern.
[0151]
Here, the ZMP pattern and its parameters are set as shown in FIG. 28 so that the body boundary position / velocity can be largely changed by slightly changing a part of the ZMP parameters.
[0152]
This is a more complicated pattern than the ZMP pattern used in the previous embodiment. This is because if the same ZMP pattern as that used in the previous embodiment is used, the foot trajectory is affected in addition to the parameter c in order to satisfy both the position and velocity of the upper and lower body at the same time. This is because the parameter t2 of the non-time must also be changed, but even if t2 is greatly changed, the body boundary position / velocity can be corrected only slightly.
[0153]
In the fourth embodiment, the determination of the ZMP parameter can be performed using any of the methods of the first embodiment or the second embodiment, but here, the method of the second embodiment is used. The ZMP parameter correction amount and upper body correction trajectory are determined by the following procedure. The correction amount of the ZMP parameter means a correction amount added to the ZMP parameter of the mixed gait in order to set the upper body boundary condition of the mixed gait to a desired value.
[0154]
The operation of the fourth embodiment will be described with reference to FIG. 26. In S1100, the standard gait created offline is stored as in the previous embodiment, and the process proceeds to S1102, where various standard gaits are stored. After obtaining and storing the terminal body position / velocity, the process proceeds to S1104 to perform the following processing.
[0155]
First, paying attention to the ZMP parameter c in the mixed gait, this is minutely perturbed by Δc as shown in FIG. 29, and accordingly, the perturbation component of the time series data of the body position so as to satisfy the dynamic equilibrium condition. Find Δx (k).
[0156]
At this time,
Rmix (x (k), c) = Δx (k) / Δc
far. This Rmix (x (k), c) is called partial differential sensitivity of x (k) with respect to c (corresponding to the gait parameter sensitivity). Similarly, as shown in FIG. 30, Rmix (x (k), e) is obtained for the ZMP parameter e.
[0157]
In the second embodiment, when obtaining the sensitivity of x (k) with respect to a certain parameter of interest, a plurality of parameters excluding the parameter of interest and x (k) are maintained while maintaining the optimality of the gait as a constraint. Dependent parameters were adjusted. On the other hand, in the fourth embodiment, the gait optimality is ignored, and the sensitivity is obtained by fixing all the parameters except the noticed parameter and x (k). In other words, the second embodiment obtains the total differential with the optimality as a constraint, and the fourth embodiment obtains the partial differential with the optimality ignored.
[0158]
Next, proceeding to S1106, from the end of Rmix (x (k), c) and Rmix (x (k), e) and the immediately preceding value, the partial differential of the terminal body position with respect to the ZMP parameter c in the mixed gait. Sensitivity Rmix (Xe, c), Partial differential sensitivity Rmix (Ve, c) of terminal body velocity, Partial differential sensitivity Rmix (Xe, e) of terminal body position with respect to ZMP parameter e, Deviation of terminal body velocity The differential sensitivity Rmix (Ve, e) is obtained by the following equation.
[0159]
Rmix (Xe, c) = Rmix (x (ke), c)
Rmix (Ve, c) = (Rmix (x (ke), c) -Rmix (x (ke-1), c)) / Δt
Rmix (Xe, e) = Rmix (x (ke), e)
Rmix (Ve, e) = (Rmix (x (ke), e)-Rmix (x (ke-1), e)) / Δt
Here, ke is the last sequence number in the time series, and Δt is the time interval in the time series (discrete system sample time).
[0160]
Next, the process proceeds to S1108, where the element in the first row and the first column is Rmix (Xe, c), the element in the first row and the second column is Rmix (Xe, e), and the element in the second row and the first column is determined from the obtained sensitivity. Create a 2 * 2 matrix with Rmix (Ve, c) and elements in the second row and second column of Rmix (Ve, e).
[0161]
Next, in S1110, an inverse matrix of the created matrix is obtained. The element of the first row and first column of the inverse matrix is the partial differential sensitivity Rmix (c, Xe) of the parameter c with respect to the terminal body position Xe, and the element of the second row and first column is the terminal body position Xe. The partial differential sensitivity Rmix (e, Xe) of the parameter e, the first row and the second column are the partial differential sensitivity Rmix (c, Ve) of the parameter c with respect to the terminal body velocity Ve, the second row and the second column. Is a partial differential sensitivity Rmix (e, Ve) of the parameter e with respect to the terminal body velocity Ve.
[0162]
When the sensitivity hardly changes in any mixed gait, the average values are R (c, Xe), R (e, Xe), R (c, Ve), R (e, Ve), respectively. ) As common to all gaits.
[0163]
Next, the processing proceeds to S1112 and attention is paid to the initial body position in the mixed gait. Only this is perturbed by Δx0 as shown in FIG. 31, and accordingly, the time series of the body position is satisfied so as to satisfy the dynamic equilibrium condition. Find the perturbation Δx (k) of the data. Of course,
Δx (0) = Δx0
It is.
[0164]
At this time,
Rmix (x (k), x0) = Δx (k) / Δx0
far. Similarly, as shown in FIG. 32, only the initial body velocity is slightly perturbed by Δv0 to obtain Rmix (x (k), v0).
[0165]
Next, in S1114, based on the end of the obtained sensitivities Rmix (x (k), x0) and Rmix (x (k), v0) and the immediately preceding value, the end of the mixed body gait with respect to the initial body position. Partial differential sensitivity Rmix (Xe, x0) of body position, Partial differential sensitivity Rmix (Ve, x0) of terminal body velocity, Partial differential sensitivity Rmix (Xe, v0) of terminal body position to initial body speed Then, the partial differential sensitivity Rmix (Ve, v0) of the terminal body velocity is obtained by the following equation.
[0166]
Rmix (Xe, x0) = Rmix (x (ke), x0)
Rmix (Ve, x0) = (Rmix (x (ke), x0)-Rmix (x (ke-1), x0)) / Δt
Rmix (Xe, v0) = Rmix (x (ke), v0)
Rmix (Ve, v0) = (Rmix (x (ke), v0)-Rmix (x (ke-1), v0)) / Δt
Where ke is the last sequence number in the time series, and Δt is the time step in the time series.
[0167]
In step S1116, the timer is reset to 0 and started. In step S1118, the process proceeds to step S1120 to wait for a timer interrupt. In step S1122, it is determined whether the gait is switched. Advances to S1124 to reset the timer to 0, then advances to S1126 to directly read the requested value of the setting parameter, and advances to S1128 to perform gait mixing.
[0168]
That is, the process proceeds to S1200 in the subroutine flow chart of FIG. 33 to create a mixed gait parameter using the same method as in the first to third embodiments. At this time, the initial body position / velocity and the terminal body position / velocity that are close to the required values are selected as the base gait.
[0169]
However, after selecting the base gait, the initial body position / velocity and the final body position / velocity are directly excluded from the setting parameters, and a mixed gait is generated as in the previous embodiment.
[0170]
Next, in S1202, the difference between the initial body position / speed request value and the initial body position / speed of the mixed gait is obtained, and these are set as Δx0, Δv0. Similarly, the difference between the terminal body position / speed request value and the terminal body position / speed of the mixed gait is obtained, and these are set as ΔXe and ΔVe.
[0171]
Next, in S1204, in the mixed gait, only the initial body position / velocity is changed to the initial body position / speed required value, and accordingly, the time series data of the body position so as to satisfy the dynamic equilibrium condition. The perturbation amounts ΔXse and ΔVse of the terminal body position / velocity of the gait perturbed by the following equation are obtained by the following equations.
ΔXse = Rmix (Xe, x0) * Δx0 + Rmix (Xe, v0) * Δv0
ΔVse = Rmix (Ve, x0) * Δx0 + Rmix (Ve, v0) * Δv0
[0172]
In the gait of S1204, the initial body position / velocity matches the required value, but the difference between the terminal body position / velocity required value and the terminal body position / velocity of this gait is ΔXe + ΔXse, ΔVe. + ΔVse. In step S1206, ZMP parameter correction amounts Δc and Δe for making the difference zero are obtained by the following equations.
Δc = Rmix (c, Xe) * (ΔXe + ΔXse) + Rmix (c, Ve) * (ΔVe + ΔVse)
Δe = Rmix (e, Xe) * (ΔXe + ΔXse) + Rmix (e, Ve) * (ΔVe + ΔVse)
[0173]
Next, in S1208, ZMP parameters c and e are obtained by the following equations.
c = cmix + Δc
e = emix + Δe
Where cmix is the value of the mixed gait parameter c, and emix is the value of the mixed gait parameter e.
[0174]
Next, returning to the flowchart of FIG. 26, the process proceeds to S1130, and the mixed gait parameter is substituted into the target gait parameter. However, the value obtained in S1208 is substituted for the ZMP parameters c and e. Next, the process proceeds to S1132 through S1122, and the instantaneous value of the target gait is calculated.
[0175]
Specifically, the process proceeds to S1300 in the subroutine flow chart of FIG. 34 to obtain the ZMP at time t by the same method as in the previous embodiment, and the process proceeds to S1302 to perform time t by the same method as in the previous embodiment. The position / posture of both feet is obtained, and the process proceeds to S1304 to obtain the body position of the desired gait by the following equation.
x (k) = xmix (x) + Rmix (x (k), c) * Δc + Rmix (x (k), e) * Δe + Rmix (x (k), x0) * Δx0 + Rmix (x (k), v0) * Δv0
Where xmix (x) is k-th data of the upper body trajectory time series of the mixed gait. Although explanation is omitted, it goes without saying that the body position in the Y direction is calculated in the same manner. Further, the body position in the Z direction may be calculated in the same manner as the values in the X and Y directions, or may be calculated by the method proposed simultaneously with this application.
[0176]
Specifically, the above-described processing superimposes the waveforms shown in FIG. 27 and FIGS. 29 to 32, whereby a desired gait having a desired boundary condition can be generated as shown in FIG. . In the situation shown in FIG.
c <0, c + Δc <0, e <0, e + Δe> 0
It was.
[0177]
Since the fourth embodiment is configured as described above, a gait can be generated freely and in real time, and the displacement and displacement speed of each part of the robot can be continued at the boundary between the generated gaits.
[0178]
FIG. 36 is a flow chart showing the fifth embodiment of the present invention.
[0179]
In the fourth embodiment, the partial differential sensitivity Rmix (x (k), c) of the body position time series with respect to the ZMP parameter c in the mixed gait and the partial differential of the body position time series with respect to the ZMP parameter e. Sensitivity Rmix (x (k), e), partial differential sensitivity of body position time series relative to initial body position Rmix (x (k), x0), partial differentiation of body position time series relative to initial body speed Sensitivity Rmix (x (k), v0) was used. In other words, it can be said that it had a model of perturbation of the upper body trajectory with respect to the perturbation of ZMP in the form of a time series table.
[0180]
In the fifth embodiment, instead, a robot's linear perturbation dynamics model (linearization model representing the relationship between the body position velocity perturbation and the ZMP perturbation) expressed by the following equation is used. Boundary conditions related to body position / velocity were made to match the required values.
[0181]
The basic principle of this method will be described below. In the following description, only the body behavior and the front-back direction (X direction) component of the ZMP trajectory will be discussed.
[0182]
Assume that the mass of the upper body 24 of the robot 1 is sufficiently larger than the mass of other parts, and the vertical acceleration of the upper body is small during walking. When this special condition is satisfied, the relationship between the body position / velocity perturbation to the ZMP perturbation, that is, the perturbation dynamics model is approximated by the linear inverted pendulum model shown in the following equation and FIG. As shown in the figure, in this model, the fulcrum 22a is also movable.
[0183]
dxmdl / dt = v
dvmdl / dt = ω0 * (xmdl-ZMPmdl)
Here, xmdl is the center of gravity position of the linear inverted pendulum, and vmdl is the center of gravity speed of the linear inverted pendulum. Also, ω0 is a positive constant, and the center of gravity height h and gravitational acceleration g The Has the following relationship:
ω0 = √ (g / h)
[0184]
If the above special condition is satisfied, the general perturbation dynamic model Rmix (x (k), c), Rmix (x (k), e), Rmix (x Instead of (k), x0) and Rmix (x (k), v0), the above-described linear inverted pendulum model can be used. From now on, if you want to specify the time t in the notation of the model state,
xmdl (t), vmdl (t)
Is written.
[0185]
Based on the above premise, description will be made with reference to the flowchart of FIG. The structure of the ZMP pattern is the same as that in the fourth embodiment.
[0186]
First, in step S1400, the standard gait is stored, and in step S1402, the terminal body position / velocity of each standard gait is obtained and stored. In step S1404, c and e are set as c = e in the ZMP parameters. 1, e = 0, p (ZMP value at time 0 as shown in FIG. 35) = 0, ZMP value at other break points is 0, initial state is x0 = 0, v0 = 0, The behavior of the perturbation dynamic model is calculated until the end time of the case, and the end model position Xe and the end model velocity Ve are obtained.
[0187]
Specifically, the model behavior is obtained using the ZMP pattern correction amount by Δc when Δc in FIG. 29 is set to 1 as a model input, the model end state is obtained, and then the deviation of the end model position Xe with respect to the ZMP parameter c is obtained. The differential sensitivity is obtained by the following equation.
R (Xe, c) = Xe
[0188]
Similarly, the partial differential sensitivity of the terminal model velocity Ve with respect to the ZMP parameter c is obtained by the following equation.
R (Ve, c) = Ve
[0189]
The calculation of the behavior of the perturbation dynamics model may be obtained by sequential calculation after the model is discretized or may be solved analytically.
[0190]
Next, in S1406, among the ZMP parameters, c and e are set to c = 0, e = 1, p = 0, the value of ZMP at other break points is set to 0, the initial state is set to x0 = 0, and v0 = 0. The behavior of the perturbation dynamic model is calculated until the end time of the gait, and the end model position Xe and the end model speed Ve are obtained.
[0191]
Next, the partial differential sensitivity of the terminal model position Xe with respect to the ZMP parameter e is obtained by the following equation.
R (Xe, e) = Xe
[0192]
Similarly, the partial differential sensitivity of the terminal model speed with respect to the ZMP parameter e is obtained by the following equation.
R (Ve, e) = Ve
[0193]
Next, in S1408, among the ZMP parameters, c and e are set to c = 0, e = 0, p = 0, the value of ZMP at other break points is set to 0, the initial state is set to x0 = 1, and v0 = 0. The behavior of the perturbation dynamics model is calculated until the end time of the gait, and the end model position Xe and the end model velocity Ve are obtained.
[0194]
Next, the partial differential sensitivity of the terminal model position Xe with respect to the initial model position x0 is obtained by the following equation.
R (Xe, x0) = Xe
[0195]
Similarly, the partial differential sensitivity of the terminal model velocity Ve with respect to the initial model position x0 is obtained by the following equation.
R (Ve, x0) = Ve
[0196]
In step S1410, c and e are set to c = 0, e = 0, p = 0, ZMP values at other break points are set to 0, and an initial state is set to x0 = 0 and v0 = 1. The behavior of the perturbation dynamic model is calculated until the end time of the gait, and the end model position Xe and the end model speed Ve are obtained.
[0197]
Next, the partial differential sensitivity of the terminal model position Xe with respect to the initial model speed v0 is obtained by the following equation.
R (Xe, v0) = Xe
[0198]
Similarly, the partial differential sensitivity of the terminal model speed Ve with respect to the initial model speed v0 is obtained by the following equation.
R (Ve, v0) = Ve
[0199]
Next, the processing proceeds to S1411, where c = 0, e = 0, p = 1, ZMP at other break points is 0, the initial state is x0 = 0, v0 = 0, and the behavior of the perturbation model up to the end time of the gait. And the partial differential sensitivity of the terminal model position Xe and the terminal model speed Ve is obtained.
[0200]
Next, the partial differential sensitivity of the terminal model position Xe with respect to the initial model velocity v0 is obtained by the following equation.
R (Xe, p) = Xe
[0201]
Next, the partial differential sensitivity of the terminal model velocity Ve with respect to the initial model velocity v0 is obtained by the following equation.
R (Ve, p) = Ve
[0202]
Next, the processing proceeds to S1412, where the element of the first row and the first column is R (Xe, c), the element of the first row and the second column is R (Xe, e), and the element of the second row and the first column is determined from the obtained sensitivity. Create a 2 * 2 matrix with R (Ve, c) and second row and second column elements R (Ve, e).
[0203]
In step S1414, an inverse matrix of the created matrix is obtained. The element of the first row and first column of the inverse matrix is the partial differential sensitivity R (c, Xe) of the parameter c with respect to the terminal model position Xe, and the element of the second row and first column is the parameter e of the parameter e with respect to the terminal model position Xe. The partial differential sensitivity R (e, Xe), the first row and second column elements are the partial differential sensitivity R (c, Ve) of the parameter c with respect to the terminal model velocity Ve, and the second row and second column elements are: Let the partial differential sensitivity R (e, Ve) of the parameter e with respect to the terminal model velocity Ve.
[0204]
Next, in S1416, the timer is reset to 0 and started, and the process proceeds to S1422 through S1418 and S1420 to determine whether or not it is a gait change, and if not, the process proceeds to S1432, and if affirmed Through S1424 and S1426, the process proceeds to S1428 to perform gait mixing.
[0205]
The gait mixing process will be described with reference to the flowchart of FIG. 38. In S1500, a mixed gait parameter is generated by any method of the previous embodiment. At this time, the standard gait close to the initial and final body position / velocity requirements is selected as the base gait. However, in the process of generating other mixed gait parameters, the initial and final body positions / velocities are directly selected. The mixed gait parameter is obtained by excluding the setting parameter as in the other embodiments. Next, in S1502, differences Δx0, Δv0, ΔXe, ΔVe between the initial and final body position / velocity requested values and the initial and final body positions / velocities of the mixed gait are obtained.
[0206]
In step S1504, the initial position / velocity of the model is set to Δx0, Δv0, and the end position / velocity ΔXse, ΔVse when ZMP is set to 0 are obtained by the following equations.
ΔXse = R (Xe, x0) * Δx0 + R (Xe, v0) * Δv0
ΔVse = R (Ve, x0) * Δx0 + R (Ve, v0) * Δv0
[0207]
Next, in S1506, ZMP parameter correction amounts Δc and Δe are obtained by the following equations.
Δc = R (c, Xe) * (Δx + ΔXse) + R (c, Ve) * (Δv + ΔVse)
Δe = R (e, Xe) * (Δx + ΔXse) + R (e, Ve) * (Δv + ΔVse)
[0208]
Next, in S1508, the ZMP parameters c and e are obtained by the same equation as that used in S1208. Subsequently, the flow advances to the flow chart of FIG. 39 through S1430 and S1432 of the flow chart of FIG. 36. In S1600 and S1602, the same processing as that of the fourth embodiment is performed, and the flow advances to S1604 to obtain the ZMP trajectory correction amount. This is a pattern in which the parameters c = Δc and e = Δe in FIG. 28 and the ZMP values of other break points are set to zero.
[0209]
In step S1606, the initial model position / velocity is set to xmdl (0) = Δx0, vmdl (0) = Δv0, the ZMP trajectory correction amount is input as ZMPmdl, and the behavior of the model is calculated by sequential calculation. That is, based on the previous position (speed t-Δt) of the model and speed and the current (time t) ZMP trajectory correction amount, the position and speed of the current time (time t) of the model are obtained by the discretized model equation. However, in the first control cycle, the current position / velocity of the model is xmdl (0) = Δx0 and vmdl (0) = Δv0. The discretization model may be a matrix expression model generally used in modern control theory.
[0210]
Next, in S1608, the target body position is obtained by adding the model position as a correction amount to the mixed body position according to the following equation.
x (k) = xmix (k) + xmdl (kΔt)
Where x (k): target body position
xmix (k): k-th data of upper body time series of mixed gait
xmdl (kΔt): model position at time kΔt.
[0211]
Since the fifth embodiment is configured as described above, the same effects as those of the fourth embodiment can be obtained.
[0212]
More specifically, since the linear inverted pendulum model is used, the capacity of the memory (ROM 84) is small, and perturbations of the body trajectory can be calculated in real time with a small amount of calculation by sequential calculation or the like. In addition, an exact solution can be easily obtained from this model equation, and future behavior prediction can be easily performed from this exact solution.
[0213]
Note that the sensitivity of the terminal body position / velocity with respect to the ZMP parameter can be obtained by exact solution, but since it includes exponential function calculation, the calculation time can be further saved by storing the value in advance. Can do.
[0214]
FIG. 40 is a flow chart showing the sixth embodiment of the present invention.
[0215]
As mentioned above, if the inertial force caused by the perturbation of the initial free leg foot position and the final free leg foot position is negligible, that is, the ZMP hardly changes, gait generation is performed. It can be simplified. The sixth embodiment intended it.
[0216]
In the gait defined in this specification, the end time is the moment when the free leg lands, and at that time ZMP is still set on the ground contact surface of the supporting leg foot. Therefore, even if the end free leg foot position is changed, if the resulting inertial force can be ignored, there is no need to change the ZMP parameter, but the initial position of the set ZMP pattern is a stumbling block between the initial free leg foot position and posture. Since it is normally set to exist, the ZMP pattern must also be changed when changing the initial free leg foot position.
[0217]
Hereinafter, the case where the ZMP parameter is changed, such as changing the initial free leg foot position, will be described as an example, focusing on the difference from the fifth embodiment.
[0218]
In the flowchart of FIG. 40, the process proceeds from S1700 to S1710 in the same manner as in the fifth embodiment, and proceeds to S1712. In the sixth embodiment, in order to satisfy the dynamic equilibrium condition, the following processing is additionally changed in accordance with the change of the ZMP pattern.
[0219]
That is, in S1712, as shown in FIG. 41, the ZMP value at time 0 is set to p, and c, e, and p are set to c = 0, e = 0, p = 1, The behavior of the perturbation dynamics model is calculated until the gait termination time, with the ZMP value at the break point being 0, the initial state being x0 = 0, and v0 = 0, and the termination model position Xe and termination model velocity Ve are obtained.
[0220]
Next, the partial differential sensitivity of the terminal model position Xe with respect to the ZMP parameter p is obtained by the following equation.
R (Xe, p) = Xe
[0221]
Similarly, the partial differential sensitivity of the terminal model speed Ve with respect to the ZMP parameter p is obtained by the following equation.
R (Ve, p) = Ve
[0222]
Subsequently, the same processing as in the fifth embodiment is performed up to S1728, and the process proceeds to S1730 to mix gaits. That is, the mixed gait parameter is created by the method of any of the previous embodiments in S1800 of the flowchart of FIG. At this time, the initial body position / speed, the terminal body position / speed, the initial free leg foot position, and the final free leg foot position that are close to the required values are selected as the base gaits.
[0223]
However, after selecting the base gait, the initial body position / velocity, terminal body position / velocity, initial free leg foot position and terminal free leg foot position are excluded from the direct setting parameters, and other A mixed gait is created as in the example. Therefore, the initial body position / velocity, the terminal body position / speed, the initial free leg foot position, and the final free leg foot position are values that remain as the base gait.
[0224]
Subsequently, the processing proceeds to S1806 through the processing of S1802 and S1804, and the difference between the initial free leg foot position request value and the initial free leg foot position of the mixed gait is obtained and is set as Δp. Subsequently, the processing proceeds to S1808, where the initial ZMP of the model is Δp, and the end positions / velocities ΔXpe and ΔVpe when the ZMP at other break points is 0 are obtained by the following equations.
ΔXpe = R (Xe, p) * Δp
ΔVpe = R (Ve, p) * Δp
[0225]
In step S1810, the ZMP parameter correction amounts Δc and Δe are obtained by the following equations.
Δc = R (c, Xe) * (ΔXe + ΔXse + ΔXpe) + R (c, Ve) * (ΔVe + ΔVse + ΔVpe)
Δe = R (e, Xe) * (ΔXe + ΔXse + ΔXpe) + R (e, Ve) * (ΔVe + ΔVse + ΔVpe)
[0226]
Subsequently, returning to the flowchart of FIG. 40, the process proceeds to S1732, and the parameters of the mixed gait are substituted for the parameters of the target gait. However, the values obtained in S1812 are substituted for the ZMP parameters c and e. In addition, a required value is substituted for the initial free leg foot position parameter and the end free leg foot position parameter.
[0227]
Subsequently, the flow proceeds from S1734 to the flowchart of FIG. 43, and the same processing as that of the fifth embodiment is performed in S1900 and S1902. As a result, a foot trajectory that satisfies the requirements of the initial free leg foot position and the final free leg foot position and a corrected ZMP trajectory are obtained. Next, in S1904, the ZMP trajectory correction amount is obtained. As shown in FIG. 44, this is a ZMP pattern in which the parameters c = Δc, e = Δe, p = Δp, and the ZMP values of other break points are set to zero.
[0228]
The remaining configuration is not different from that of the fifth embodiment.
[0229]
Since the sixth embodiment is configured as described above, the same effects as those of the fourth to fifth embodiments can be obtained, and gaits having different initial body positions and velocities are stored as standard gaits. Therefore, the storage capacity can be further reduced.
[0230]
FIG. 45 is a block diagram of a gait generator similar to that of the first embodiment shown in FIG. 3, showing the seventh embodiment of the present invention. However, the calculation method of the horizontal body position is different in the seventh embodiment.
[0231]
In the seventh embodiment, the obtained position (posture) of both feet of the mixed gait of this time (time t), ZMP and body height Z and the previous state (time t-Δt) (body position / Speed) is input to a robot motion model (consisting of dynamics, kinematics, various constraint equations, and constraint equation), and the horizontal coordinates (X, Y) of the body position satisfying the dynamic equilibrium conditions (Instantaneous value) was calculated.
[0232]
That is, in the seventh embodiment, similarly to the second embodiment, the process returns from FIG. 46 to S2000 through S2104 to S2104 in FIG. 48, the process proceeds to S2200 and subsequent steps in FIG. 48. In S2206, the ZMP dynamically calculated from the motion of the upper body of the mixed gait and the foot of the mixed gait coincides with the set ZMP obtained from the ZMP parameter of the mixed gait. Thus, the upper body trajectory of the mixed gait was obtained by sequential calculation.
[0233]
However, at the initial stage of the gait, initial body position / velocity parameter values set appropriately are used as the body position / velocity. That is, the gait of one step is obtained by starting from the initial body position / velocity parameter value and calculating sequentially by sequential calculation.
[0234]
This method has a large amount of calculation and has a drawback that the terminal body position / posture is slightly deviated from the required value, but the dynamic equilibrium condition can be strictly satisfied.
[0235]
In the seventh embodiment, the body height and the body horizontal position at this time may be obtained so as to satisfy the dynamic equilibrium conditions and the constraint formula of the body height determination method at the same time. In the previous embodiment, in order to shorten the calculation time, the body height was calculated using the previous body horizontal position on the assumption that the body height does not change greatly in a short time.
[0236]
As described above, in the first to seventh embodiments described above, at least the upper body 24 and the plurality of leg links 2 connected to the upper body via joints 10, 12, 14R (L). In the gait generating device for a legged mobile robot, a standard gait storage means (S10) for storing a plurality of types of standard gaits each of which includes a parameter relating to a floor reaction force for at least one gait. Gait request means (S24, etc.) for making a gait request, and one or more standard gaits are selected for the gait request and approximated based on the selected standard gait. A gait generating means (S26 to S30, S100 to S106, S200 to S206, etc.) for generating an approximate gait that satisfies the gait requirement by performing an operation is provided. It was constructed as that.
[0237]
Further, the gait generating means is configured to obtain the approximate gait by weighted averaging the selected gaits (S100 to S106, S200 to S206, etc.).
[0238]
The gait generating means is configured to obtain the approximate gait (S500, S600 to S604, S700 to S706, etc.) using the parameter sensitivity of the selected gait.
[0239]
Further, the gait generating means calculates the approximate gait (S800, S900 to S906, S1000 to S1006, etc.) while performing weighted averaging of the selected gait and using the parameter sensitivity of the selected gait. Configured.
[0240]
Further, the gait generating means obtains and stores a change amount of another parameter per unit change amount for at least one of the standard gaits as a parameter sensitivity of the gait (S500, S800, etc.) And the approximate gait is obtained using the parameter sensitivity of the stored gait.
[0241]
The standard gait generating means includes expression means (such as S1104 to S1114) that expresses the relation of perturbation of other parameters to the parameter related to the floor reaction force of the standard gait. Based on the above, the approximate gait is corrected and a gait that satisfies the gait requirement is generated so that at least the displacement and the speed are continuous in the boundary condition (S1128, S1200 to S1208).
[0242]
In addition, the other parameter perturbation is a perturbation of the horizontal position of the upper body.
[0243]
Further, the relationship is expressed by a linear model.
[0244]
Further, the relationship is expressed by an inverted pendulum model.
[0245]
Further, the relationship is expressed as a time series value.
[0246]
Further, the gait generating means is configured to obtain the approximate gait by excluding the parameter when the parameter relating to the floor reaction force is in a predetermined condition (S1730, S1800 to S1812).
[0247]
Further, the gait generating means drives a joint of the robot so as to obtain a joint angle calculating means (S302) for calculating a joint angle of the robot based on the generated gait, and a calculated joint angle. It is configured to include a joint drive control means (S306) for controlling.
[0248]
The joint angle determination means includes detection means (S300, S400 to S406) for detecting the state quantity of the robot, and correction means (S408) for correcting the position and posture of the robot based on the detected state quantity. The joint angle calculating means is configured to calculate the joint angle of the robot so that the corrected position and posture are obtained.
[0249]
In the first to seventh embodiments described above, examples of the approximate calculation are not limited to those shown in the drawings, and various other modifications are possible.
[0250]
In the first to seventh embodiments described above, the body position is described in coordinates obtained by viewing a reference point in the body 24 from the support leg grounding point. This reference point should be set at the center in the left-right direction, but there are several setting methods for the front-rear direction as follows.
Setting method 1) Set to the center of gravity of the upper body (adopted in the first to seventh embodiments)
Setting method 2) The position is set so as to coincide with the position of the center of gravity when standing upright.
Setting method 3) Set to an appropriate position by trial and error.
[0251]
Regardless of which setting method is used, there is no difference when walking with a constant upper body orientation. The way in which errors occur is different. For example, as shown in FIG. 49, when the upper body is rotated around the reference point while moving the reference point in the right direction on the paper, the reference point is in the center of the upper body and the front point is closer to the front. It can be seen that the positional relationship of the upper body is clearly different from the case.
[0252]
An example of mixing gaits having different turning angles when generating a mixed gait (requested gait) has been shown, but mixing gaits is a kind of approximation. However, for the reasons described above, the mixed gaits differ slightly depending on the setting of the reference point, and the approximation accuracy with respect to the dynamic equilibrium condition changes.
[0253]
Therefore, the reference point should be set so that the error with respect to the dynamic equilibrium condition is as small as possible. Which of the above setting methods is optimal or which one does not cause any problem depends on the structure of the robot and the way of walking.
[0254]
Furthermore, in order to improve the accuracy of the dynamic balance condition, it is conceivable to use a time series table of the entire center of gravity of the robot instead of the time series table of the body position. However, as a drawback, considerable calculation is required to determine the posture of the robot so that the entire center of gravity of the robot is in the designated position.
[0255]
In the above description, (displacement) acceleration is not described as a gait parameter, but it goes without saying that a smoother gait is generated by adjusting to the acceleration at the boundary of the gait.
[0256]
Although the present invention has been described with respect to a biped robot, the present invention can be applied not only to a biped robot but also to a multi-legged robot.
[0257]
【The invention's effect】
Arbitrary stride and turning angle can be realized by generating gait including floor reaction force freely and in real time. Further, the displacement and speed of each part of the robot can be made continuous at the boundary between the generated gaits. Furthermore, the legged mobile robot can be driven and controlled based on the gait generated in real time.
[Brief description of the drawings]
FIG. 1 is an explanatory diagram generally showing a gait generator for a legged mobile robot according to the present invention.
FIG. 2 is a block diagram showing details of a control unit of the biped robot shown in FIG.
FIG. 3 is a block diagram functionally showing the operation of the gait generator of the legged mobile robot according to the present invention.
FIG. 4 is a main flow chart showing the operation of the gait generator of the legged mobile robot according to the present invention.
5 is an explanatory diagram showing the free leg position and posture of the 0th standard gait among the standard gaits used in the gait generating operation of FIGS. 3 and 4. FIG.
6 is a timing chart showing a foot trajectory of the 0th standard gait in FIG. 5. FIG.
7 is a timing chart of ZMP (X coordinate) of the 0th standard gait in FIG. 5. FIG.
FIG. 8 is an explanatory diagram showing the free leg position and posture of the first standard gait among the standard gaits used in the gait generating operation of FIGS. 3 and 4;
FIG. 9 is a timing chart of ZMP (X coordinate) of the first standard gait in FIG. 8;
10 is an explanatory diagram showing the free leg position and posture of the second standard gait in the standard gait used in the gait generating operation of FIGS. 3 and 4. FIG.
FIG. 11 is a timing chart of ZMP (X coordinate) of the second standard gait in FIG. 10;
12 is an explanatory diagram showing the free leg position and posture of a requested gait requested in the gait generating operation of FIGS. 3 and 4. FIG.
13 is a timing chart of ZMP (X coordinate) of the requested gait in FIG. 12;
FIG. 14 is a subroutine flow chart showing a gait mixing operation in the flow chart of FIG. 4;
FIG. 15 is an explanatory diagram for explaining the operation of the flowchart of FIG. 14;
16 is an explanatory diagram for explaining the operation of the flowchart of FIG. 14 as in FIG.
FIG. 17 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flow chart of FIG. 4;
18 is a flow chart of both-leg compliance control previously proposed by the present applicant, which is performed based on the gait generated by the gait generation operation of FIGS. 3 and 4. FIG.
FIG. 19 is a subroutine flow chart showing a calculation operation of both-leg compliance operation amount in the flow chart of FIG. 18;
FIG. 20 is a main flow chart similar to FIG. 4 showing the operation of the apparatus according to the second embodiment of the present invention.
FIG. 21 is a subroutine flowchart showing gait mixing work in the flowchart of FIG. 20;
FIG. 22 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flowchart of FIG. 20;
FIG. 23 is a main flow chart similar to FIG. 4, showing the operation of the apparatus according to the third embodiment of the present invention.
FIG. 24 is a subroutine flow chart showing gait mixing work in the flow chart of FIG. 23;
FIG. 25 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flow chart of FIG. 23.
FIG. 26 is a main flow chart similar to FIG. 4, showing the operation of the apparatus according to the fourth embodiment of the present invention.
FIG. 27 is a timing chart showing gaits such as body positions generated in the previous embodiment.
FIG. 28 is a ZMP (X coordinate) timing chart for explaining alignment of boundary conditions in the operation of the flowchart of FIG. 26;
FIG. 29 is a ZMP (X coordinate) timing chart for explaining the operation of the flowchart of FIG. 26;
30 is a ZMP (X coordinate) timing chart for explaining the operation of the flowchart of FIG.
31 is a ZMP (X coordinate) timing chart for explaining the operation of the flowchart of FIG.
FIG. 32 is a ZMP (X coordinate) timing chart for explaining the operation of the flowchart of FIG.
FIG. 33 is a subroutine flow chart showing gait mixing work in the flow chart of FIG. 26;
FIG. 34 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flowchart of FIG. 26.
FIG. 35 is an explanatory timing chart showing a gait generated in the fourth embodiment shown in the flow chart of FIG. 26;
FIG. 36 is a main flow chart similar to FIG. 4, showing the operation of the apparatus according to the fifth embodiment of the present invention;
FIG. 37 is an explanatory diagram of an inverted pendulum model used in the fifth embodiment.
FIG. 38 is a subroutine flow chart showing a gait mixing operation in the flow chart of FIG. 36.
FIG. 39 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flow chart of FIG. 36.
FIG. 40 is a main flow chart similar to FIG. 4, showing the operation of the apparatus according to the sixth embodiment of the present invention.
FIG. 41 is a timing chart for explaining the operation of the fifth embodiment of the flow chart of FIG. 40;
FIG. 42 is a subroutine flow chart showing a gait mixing operation in the flow chart of FIG. 40.
FIG. 43 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flowchart of FIG. 40.
44 is a timing chart for explaining the operation of the flow chart of FIG. 40. FIG.
45 is a block diagram similar to FIG. 3, showing the configuration and operation of the apparatus according to the seventh embodiment of the present invention. FIG.
FIG. 46 is a main flowchart showing the operation of the apparatus according to the seventh embodiment.
47 is a subroutine flow chart showing gait mixing work in the flow chart of FIG. 44. FIG.
FIG. 48 is a subroutine flow chart showing an operation for calculating an instantaneous value of a desired gait in the flowchart of FIG. 44.
FIG. 49 is an explanatory diagram illustrating the position of the upper body in the gait generated by the gait generator of the legged mobile robot according to the present invention.
[Explanation of symbols]
1 Biped walking robot (legged mobile robot)
2 Leg links
10, 12, 14R, L Hip joint
16R, L Knee joint
18, 20R, L Ankle joint
22R, L Foot
24 upper body
26 Control unit

Claims (13)

少なくとも上体と、前記上体に関節を介して連結される複数本の脚部リンクとからなる脚式移動ロボットの歩容生成装置において、
a.少なくとも1歩分の歩容について、それぞれ床反力に関するパラメータを含むパラメータの集合からなる複数種の標準歩容を記憶する標準歩容記憶手段、
b.歩容に関する要求を行う歩容要求手段、
および
c.前記歩容に関する要求に対して前記標準歩容を1個から複数個選択し、前記選択した標準歩容を基に近似演算を行うことにより、前記歩容に関する要求を満足する近似歩容を生成する歩容生成手段、
を備えたことを特徴とする脚式移動ロボットの歩容生成装置。
In a gait generator for a legged mobile robot comprising at least an upper body and a plurality of leg links connected to the upper body via joints,
a. Standard gait storage means for storing a plurality of types of standard gaits each including a set of parameters each including a parameter relating to floor reaction force for at least one gait;
b. A gait request means for making a gait request;
And c. By selecting one or more standard gaits from the gait-related request and performing an approximate operation based on the selected standard gait, an approximate gait that satisfies the gait-related request is generated. A gait generating means,
A gait generator for a legged mobile robot, comprising:
前記歩容生成手段は、前記選択した歩容を加重平均して前記近似歩容を求めることを特徴とする請求項1項記載の脚式移動ロボットの歩容生成装置。  The gait generating device for a legged mobile robot according to claim 1, wherein the gait generating means obtains the approximate gait by weighted averaging the selected gaits. 前記歩容生成手段は、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項1項記載の脚式移動ロボットの歩容生成装置。  The gait generating device for a legged mobile robot according to claim 1, wherein the gait generating means obtains the approximate gait using parameter sensitivity of the selected gait. 前記歩容生成手段は、前記選択した歩容を加重平均すると共に、前記選択した歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項1項記載の脚式移動ロボットの歩容生成装置。  2. The legged mobile robot according to claim 1, wherein the gait generating means calculates the approximate gait using a weighted average of the selected gait and using parameter sensitivity of the selected gait. Gait generator. 前記歩容生成手段は、
d.前記標準歩容の少なくとも1個についてその単位変更量当たりの他のパラメータの変更量を前記歩容のパラメータ感度として求めて記憶する記憶手段、
を備え、前記記憶された歩容のパラメータ感度を用いて前記近似歩容を求めることを特徴とする請求項3項または4項記載の脚式移動ロボットの歩容生成装置。
The gait generating means includes
d. Storage means for determining and storing a change amount of another parameter per unit change amount for at least one of the standard gaits as a parameter sensitivity of the gait;
5. The gait generating device for a legged mobile robot according to claim 3, wherein the approximate gait is obtained using parameter sensitivity of the stored gait.
前記標準歩容生成手段は、
e.前記標準歩容の床反力に関するパラメータに対するその他のパラメータの摂動の関係を表現する表現手段、
を備え、前記表現された摂動の関係に基づいて前記近似歩容を補正し、境界条件において少なくとも変位および速度が連続するように前記歩容に関する要求を満足する歩容を生成することを特徴とする請求項1項から5項のいずれかに記載の脚式移動ロボットの歩容生成装置。
The standard gait generating means includes
e. Expressing means for expressing the relationship of perturbation of other parameters to the parameters related to floor reaction force of the standard gait,
And correcting the approximate gait based on the expressed perturbation relationship, and generating a gait that satisfies the gait requirement so that at least displacement and velocity are continuous in a boundary condition. The gait generator for a legged mobile robot according to any one of claims 1 to 5.
前記その他のパラメータの摂動が上体の水平位置の摂動であることを特徴とする請求項6項記載の脚式移動ロボットの歩容生成装置。  The gait generator for a legged mobile robot according to claim 6, wherein the perturbation of the other parameter is a perturbation of a horizontal position of the upper body. 前記関係が線形モデルで表現されることを特徴とする請求項6項または7項記載の脚式移動ロボットの歩容生成装置。  The gait generator for a legged mobile robot according to claim 6 or 7, wherein the relation is expressed by a linear model. 前記関係が倒立振子モデルで表現されることを特徴とする請求項8項記載の脚式移動ロボットの歩容生成装置。  9. The gait generator for a legged mobile robot according to claim 8, wherein the relationship is expressed by an inverted pendulum model. 前記関係が時系列値で表現されることを特徴とする請求項6項または7項記載の脚式移動ロボットの歩容生成装置。  The gait generator for a legged mobile robot according to claim 6 or 7, wherein the relation is expressed by a time series value. 前記歩容生成手段は、前記床反力に関するパラメータが所定の条件にあるときは、そのパラメータを除外して前記近似歩容を求めることを特徴とする請求項1項から10項のいずれかに記載の脚式移動ロボット歩容生成装置。The gait generating means, when the parameter relating to the floor reaction force is in a predetermined condition, to claim 1 wherein 10 wherein, characterized in that determining the approximate gait by excluding the parameters The described legged mobile robot gait generator. 前記歩容生成手段は、
f.前記生成された歩容に基づいて前記ロボットの関節角度を算出する関節角度算出手段、
および
g.算出された関節角度となるように前記ロボットの関節を駆動制御する関節駆制御手段、
を備えることを特徴とする請求項1項から11項のいずれかに記載の脚式移動ロボットの歩容生成装置。
The gait generating means includes
f. Joint angle calculating means for calculating a joint angle of the robot based on the generated gait;
And g. Joint drive movement control means controls driving of the joints of the robot such that the calculated joint angle,
The gait generator for a legged mobile robot according to any one of claims 1 to 11, further comprising:
前記関節角度決定手段は、
h.前記ロボットの状態量を検出する検出手段、
および
i.検出された状態量に基づいて前記ロボットの位置および姿勢を修正する修正手段、
を備え、前記関節角度算出手段は、修正された位置および姿勢となるように前記ロボットの関節角度を算出することを特徴とする請求項12項記載の脚式移動ロボットの歩容生成装置。
The joint angle determining means includes
h. Detecting means for detecting a state quantity of the robot;
And i. Correction means for correcting the position and posture of the robot based on the detected state quantity;
Wherein the joint angle calculating means, corrected position and orientation become like the robot gait generation system of a legged mobile robot to that請 Motomeko 12 Claims, characterized in that to calculate the joint angle .
JP21395397A 1996-07-25 1997-07-25 Gait generator for legged mobile robot Expired - Fee Related JP3658147B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP21395397A JP3658147B2 (en) 1996-07-25 1997-07-25 Gait generator for legged mobile robot

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP8-214261 1996-07-25
JP21426196 1996-07-25
JP21395397A JP3658147B2 (en) 1996-07-25 1997-07-25 Gait generator for legged mobile robot

Publications (2)

Publication Number Publication Date
JPH1086081A JPH1086081A (en) 1998-04-07
JP3658147B2 true JP3658147B2 (en) 2005-06-08

Family

ID=26520069

Family Applications (1)

Application Number Title Priority Date Filing Date
JP21395397A Expired - Fee Related JP3658147B2 (en) 1996-07-25 1997-07-25 Gait generator for legged mobile robot

Country Status (1)

Country Link
JP (1) JP3658147B2 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210147017A1 (en) * 2015-11-11 2021-05-20 Boston Dynamics, Inc. Achieving a Target Gait Behavior in a Legged Robot

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1514777B1 (en) 1997-01-31 2009-03-11 Honda Giken Kogyo Kabushiki Kaisha Control system of legged mobile robot
JP3655056B2 (en) * 1997-08-04 2005-06-02 本田技研工業株式会社 Control device for legged mobile robot
WO1999054095A1 (en) 1998-04-20 1999-10-28 Honda Giken Kogyo Kabushiki Kaisha Controller for legged mobile robot
US6961640B2 (en) 2000-11-17 2005-11-01 Sony Corporation Motion control for a legged robot
KR100661333B1 (en) 2000-11-17 2006-12-27 혼다 기켄 고교 가부시키가이샤 Gait pattern generating device for legged mobile robot
US6789338B2 (en) 2000-11-17 2004-09-14 Honda Giken Kogyo Kabushiki Kaisha Remote controller of biped robot
JP3627057B2 (en) * 2001-11-19 2005-03-09 独立行政法人科学技術振興機構 Biped humanoid robot
JP3679105B2 (en) 2001-12-28 2005-08-03 本田技研工業株式会社 Gait generator for legged mobile robot
DE60234790D1 (en) 2001-12-28 2010-01-28 Honda Motor Co Ltd GEARING DEVICE FOR MOVING ROBOTS WITH LEGS
EP1475198B1 (en) 2002-01-18 2007-05-23 Honda Giken Kogyo Kabushiki Kaisha Controller of legged mobile robot
JP3731118B2 (en) * 2002-02-18 2006-01-05 独立行政法人科学技術振興機構 Biped walking humanoid robot
WO2005000535A1 (en) 2003-06-27 2005-01-06 Honda Motor Co., Ltd. Gait generating device of legged mobile robot and legged mobile robot controller
KR101112496B1 (en) 2003-06-27 2012-08-01 혼다 기켄 고교 가부시키가이샤 Gait generation device for legged mobile robot
JP4735927B2 (en) * 2004-06-28 2011-07-27 独立行政法人産業技術総合研究所 Humanoid robot controller
US7860613B2 (en) 2004-12-14 2010-12-28 Honda Motor Co., Ltd. Legged mobile robot and control program for the robot
US8014896B2 (en) 2004-12-14 2011-09-06 Honda Motor Co., Ltd. Legged mobile robot and control program
CN101068662B (en) 2004-12-14 2012-03-28 本田技研工业株式会社 Legged mobile robot and control method
JP4833121B2 (en) * 2007-03-16 2011-12-07 敏男 福田 System comprising a legged robot, a gait generator and a gait modifier
KR101687630B1 (en) * 2010-01-11 2016-12-20 삼성전자주식회사 Walking robot and method for controlling balancing the same

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20210147017A1 (en) * 2015-11-11 2021-05-20 Boston Dynamics, Inc. Achieving a Target Gait Behavior in a Legged Robot

Also Published As

Publication number Publication date
JPH1086081A (en) 1998-04-07

Similar Documents

Publication Publication Date Title
EP1018467B1 (en) Gait generating device for leg type moving robot
JP3658147B2 (en) Gait generator for legged mobile robot
JP3672406B2 (en) Gait generator for legged mobile robot
JP3640255B2 (en) Gait generator for legged mobile robot
JP4641252B2 (en) Gait generator for legged mobile robot
JP3726096B2 (en) Gait generator for legged mobile robot
US7765030B2 (en) Gait generator for mobile robot
US7715945B2 (en) Gait producing device for moving robot
JPH06170758A (en) Control device for link type mobile robot

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20041124

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20050124

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20050222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050311

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080318

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090318

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100318

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100318

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120318

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130318

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130318

Year of fee payment: 8

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140318

Year of fee payment: 9

LAPS Cancellation because of no payment of annual fees