JP3674789B2 - 脚式移動ロボットの歩容生成装置 - Google Patents
脚式移動ロボットの歩容生成装置 Download PDFInfo
- Publication number
- JP3674789B2 JP3674789B2 JP2003557767A JP2003557767A JP3674789B2 JP 3674789 B2 JP3674789 B2 JP 3674789B2 JP 2003557767 A JP2003557767 A JP 2003557767A JP 2003557767 A JP2003557767 A JP 2003557767A JP 3674789 B2 JP3674789 B2 JP 3674789B2
- Authority
- JP
- Japan
- Prior art keywords
- gait
- posture
- time
- floor reaction
- reaction force
- 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 - Lifetime
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
- B62D57/032—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members with alternately or sequentially lifted supporting base and legs; with alternately or sequentially lifted feet or skid
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B62—LAND VEHICLES FOR TRAVELLING OTHERWISE THAN ON RAILS
- B62D—MOTOR VEHICLES; TRAILERS
- B62D57/00—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track
- B62D57/02—Vehicles characterised by having other propulsion or other ground- engaging means than wheels or endless track, alone or in addition to wheels or endless track with ground-engaging propulsion means, e.g. walking members
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Transportation (AREA)
- Robotics (AREA)
- Manipulator (AREA)
Description
【産業上の利用分野】
本発明は、脚式移動ロボットの歩行のみならず、走行にも適した歩容生成装置に関する。
【0002】
【従来技術】
脚式移動ロボット、例えば2足移動ロボットの移動動作を行なわせるための歩容(目標歩容)の生成は、従来、主にロボットにスムーズな歩行動作を行なわせる歩容(歩行歩容)を生成することを主目的として行なわれてきた。しかし、近年では、脚式移動ロボットの開発が進むにつれて、該ロボットに歩行だけでなく、走行も行なわせることができる歩容を生成することが望まれている。
【0003】
尚、「歩容」という漢字に「歩」が入っているので歩行に限定されると誤解されやすいが、本来「歩容」とは、トロットなど、馬の走行形態を指す言葉として用いられているように、走行も含んだ概念である。
【0004】
ここで、歩行と走行の特徴の違いを説明しておく。
同時に全脚が空中に存在する瞬間がある移動形態を走行と定義することが一般的ではある。しかし、この定義によって歩行と走行が明確に区別できるとは限らない。たとえば、速いジョギングでは、ほとんどの人間において、同時に全脚が空中に存在する瞬間があるが、遅いジョギングでは、かなりの人間において、常にいずれかの脚が接地している。速いジョギングは走行であるのに遅いジョギングは歩行である、と定義するのは、感覚的に少し無理がある。
【0005】
図48に、典型的な走行における上体鉛直位置と床反力鉛直成分(左右の脚に作用する床反力鉛直成分の和)のパターンを示し、図49には、典型的な歩行における上体鉛直位置と床反力鉛直成分のパターンを示す。
【0006】
尚、上体鉛直位置速度は、上体代表点の鉛直位置とその速度を意味する。上体水平位置速度は、上体代表点の水平位置とその速度を意味する。上体鉛直位置速度と上体水平位置速度を合わせて、上体位置速度と呼ぶ。
【0007】
また、「床反力鉛直成分」は、厳密には、床反力の鉛直軸まわりのモーメント成分と区別するために、「並進床反力鉛直成分」と記述すべきであるが、言葉が長くなるので、ここでは「並進」を省略する。
【0008】
まず上体の動きを見てみると、歩行においては、支持脚の上を上体が通過する瞬間に上体は最も高く、走行においては、この瞬間に最も低い。すなわち、歩行と走行では、上体の上下動パターンの位相が反転している。
【0009】
一方、床反力に関しては、歩行では比較的一定であるのに対し、走行においては、大きく変動し、支持脚の上を上体が通過する瞬間に床反力は最も大きい。また、当然のことながら、同時に全脚が空中に存在する瞬間において床反力は0になっている。より詳しく観察すると、走行では、支持脚を縮めた量にほぼ比例した大きさの床反力が発生する。言いかえると、走行では、脚をばねのように使って跳ねながら移動していると言える。
【0010】
遅いジョギングでは、典型的な走行と同じ上体上下動の位相を持つ。また、遅いジョギングでは、同時に全脚が空中に存在する瞬間がない場合が多いが、その場合でも、支持脚と遊脚の切り換えが行われる瞬間において、床反力は、完全には0にならないがほぼ0になっている。
【0011】
したがって、以上のように、上体の上下動や床反力のパターンの上記特徴から歩行と走行を区別した方が、遅いジョギングも走行とみなされ、感覚とも一致して、より適切と言えよう。
【0012】
特に、最も特徴的な点で両者を区別するならば、走行とは、支持脚の切り換えが行われる瞬間において、床反力が0またはほぼ0になる移動形態であり、歩行は、それ以外の移動形態(床反力鉛直成分が比較的一定)であると言えよう。
【0013】
一方、本出願人は先に特願2000−352011号において、脚式移動ロボットの床反力を含む歩容を、動力学的平衡条件(目標歩容の重力と慣性力と床反力との釣り合い条件のことである。狭義では、目標歩容の運動による重力と慣性力の合力が目標ZMPまわりに作用するモーメントが0であること。詳細は後述する。)をほぼ満足しながら、自在かつリアルタイムに生成する技術を先に提案した。この場合、基本的には、各脚体の先端部の運動を決定すると共に、上体の鉛直位置を幾何学的条件によって決定した上で、上体の水平運動が動力学的平衡条件を満たすように決定される。この技術や、特開平10−86081号公報(特許文献1)、特開平10−277969号公報(特許文献2)などにて本出願人が提案してきた一連の脚式移動ロボットの制御装置は、歩行のみならず走行にも適用できるものである。
【0014】
ところで、特に、全脚体が空中に浮く期間あるいは十分な並進床反力を発生できない時期(離床直前や着地直後等)を有するロボットの走行、あるいは、低摩擦路面でのロボットの移動等では、動力学的平衡条件を満たす適切な歩容を生成する上で、ロボットの重心回りの回転運動も重要になる。
【0015】
しかるに、前記の技術においては、基本的には上体姿勢をほぼ一定として目標歩容を生成するようにしているため、その目標歩容の生成処理に用いる動力学モデルでは、上体姿勢の変化運動等の回転運動に伴う床反力の影響については十分に考慮されていない。このため、ロボットの走行等を適切に行い得る歩容を生成することができない場合が生じる恐れがあった。
【0016】
この場合、ロボットの厳密な動力学モデルを用いて歩容を生成することで、適切な歩容を生成することは可能である。しかるに、このような厳密なモデルを用いることは、非線形性が高まることから、動力学的平衡条件を満たす目標歩容を決定する処理に要する演算量が非常に多くなる。このため、走行のように高速な移動をロボットに行なわせるための歩容をリアルタイムに生成することが困難である。
【0017】
【特許文献1】
特開平10−86081号公報
【0018】
【特許文献2】
特開平10−277969号公報
【0019】
【発明が解決しようとする課題】
したがって、本発明の目的は、脚式移動ロボットの歩行のみならず走行等の高速移動に対しても、より一層適する歩容を生成することができる歩容生成装置を提供することにある。
【0020】
より具体的には、複雑な動力学モデルを用いることなく、走行、歩行等の移動を支障なく行なうことができる歩容をリアルタイムで生成することができる歩容生成装置を提供することを目的とする。
【0021】
【課題を解決するための手段】
本発明の脚式移動ロボットの歩容生成装置は、上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、少なくとも前記上体の水平方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合によって表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成することを特徴とする(第1発明)。
【0022】
かかる第1発明によれば、前記動力学モデルでは、前記姿勢変化運動と上体の水平方向運動とを合成してなる運動によって発生する総床反力は、各運動による床反力の和として表される。つまり、各運動の変化に対する床反力の変化の線形性が高まる。このため、各運動によって発生する慣性力と重力との合力に関する前記動力学的平衡条件を満たす上体の水平方向並進運動と前記姿勢変化運動との組、ひいては上体水平位置軌道と前記所定の部位の姿勢軌道とを少ない演算量で決定することが可能となる。またさらに、該動力学モデルに含まれる前記姿勢変化運動は、重心位置を略一定に維持する姿勢変化運動であるので、該姿勢変化運動は、並進床反力(もしくは並進慣性力)をほとんど変化させずに床反力モーメントを発生させる運動である。従って、発生させるべき並進床反力が制限される走行や低摩擦路での移動等においても、上記姿勢変化運動の調整によって動力学的平衡条件を満たし得る歩容を決定できる。
【0023】
従って、第1発明によれば、複雑な動力学モデルを用いることなく、走行、歩行等の移動を支障なく行なうことができる歩容をリアルタイムで生成することができる。つまり、歩行のみならず走行等の高速移動に対しても、より一層適する歩容を生成することができる。
【0024】
かかる第1発明における前記動力学モデルは、少なくとも前記上体の水平方向並進運動と前記姿勢変化運動とこれらの各運動により発生する床反力との関係を表すものであるが、該上体の水平方向並進運動及び姿勢変化運動に加えて、各脚体先端部の運動が含まれていてもよく(第2発明)、さらには上体の鉛直方向並進運動が含まれていてもよい(第3発明)。より詳しくは、第2発明では、少なくとも各脚体先端部の運動と上体の水平方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合によって表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成する。
【0025】
また、第3発明では、少なくとも各脚体先端部の運動と上体の水平方向並進運動と上体の鉛直方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合によって表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成する。
【0026】
前記第2発明では、前記第1発明と同様の作用効果を奏することに加えて、前記動力学モデルが各脚体先端部の運動を含むため、該動力学モデルの近似精度が高まる。その結果、前記動力学的平衡条件をより高い精度で満足する目標歩容を生成できる。なお、この第2発明では、例えば各脚体先端部の運動を動力学的平衡条件によらずに、各脚体先端部の着地位置姿勢や着地時刻の要求値等に応じて決定することで、動力学的平衡条件を満たす目標歩容の生成がより容易になる。
【0027】
また、前記第3発明では、前記第1発明と同様の作用効果を奏することに加えて、前記動力学モデルが各脚体先端部の運動と上体の鉛直方向運動とを含むため、該動力学モデルの近似精度がさらに高まる。その結果、前記動力学的平衡条件をさらに高い精度で満足する目標歩容を生成できる。なお、この第3発明では、例えば各脚体先端部の運動を前記第2発明で説明したごとく動力学的平衡条件によらずに決定すると共に、上体の鉛直方向運動(上体の鉛直位置軌道)を各脚体の関節の変位に関する所定の幾何学的条件に基づき決定し(好ましくは歩行歩容を生成するとき)、あるいは目標床反力鉛直成分もしくはロボットの全体重心の加速度鉛直成分に応じて決定する(好ましくは走行歩容を生成するとき)ことが好ましい。これにより、動力学的平衡条件を満たす目標歩容の生成がより容易になると共に、生成しようとする歩容の形態により適した目標歩容を生成できる。
【0028】
前記第1〜第3発明では、前記ロボットの目標ZMPを設定する手段を備え、前記動力学的平衡条件は、前記目標歩容の運動によって前記目標ZMP回りに発生するモーメントが略零であるという条件であることが望ましい(第4発明)。これにより、ロボットの移動時の安定性の高い目標歩容を生成できる。なお、この他に前記動力学的平衡条件は、特定の成分に対して前記合力と床反力とを釣り合わせるというような条件でもよい。
【0029】
また、前記第1〜第4発明では、前記所定の部位は、ロボットの上体であることが好ましい(第5発明)。すなわち、ロボットの上体は一般に比較的重いので、その上体の姿勢変化運動の変化によって床反力モーメントの変化が生じやすい。従って、並進床反力を十分に発生させることができない状況(走行で全脚体が空中に浮く時期等)でも、ロボットの全体の運動の変動を少ないものとしつつ動力学的平衡条件を満たすような目標歩容を生成できる。
【0030】
また、前記第1発明では、前記動力学モデルは、前記上体の水平方向並進運動を質点の水平方向並進運動により表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることが好ましい(第6発明)。
【0031】
同様に、前記第2発明では、前記動力学モデルは、前記各脚体先端部の運動をそれぞれ各脚体に対応する質点の運動により表し、前記上体の水平方向並進運動を該上体に対応する質点の水平方向並進運動で表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることが好ましい(第7発明)。
【0032】
同様に、前記第3発明では、前記動力学モデルは、前記各脚体先端部の運動をそれぞれ各脚体に対応する質点の運動により表し、前記上体の水平方向並進運動及び鉛直方向並進運動をそれぞれ該上体に対応する質点の水平方向並進運動及び鉛直方向並進運動で表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることが好ましい(第8発明)。
【0033】
すなわち、上記第6〜第8発明のように質点の運動とフライホイールの運動とで前記動力学モデルの各運動を表現することによって、各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合によって表される動力学モデルを好適に構築することができると共に、該動力学モデルを用いることで、動力学的平衡条件を満たす目標歩容の生成処理が容易になる。
【0034】
【発明を実施するための最良の形態】
以下、添付図面を参照して本発明の一実施形態に係る脚式移動ロボットの歩容生成装置及び制御装置を説明する。尚、本発明の実施形態では、脚式移動ロボットとしては2足移動ロボットを例にとる。
【0035】
図1は、本実施形態に係る歩容生成装置及び制御装置が適用される脚式移動ロボットとしての2足移動ロボットの全体的構成の概略を示す概略図である。
【0036】
図示の如く、2足移動ロボット(以下、ロボットという)1は上体24から下方に延設された左右一対の脚体(脚部リンク)2,2を備える。両脚体2,2は同一構造であり、それぞれ6個の関節を備える。その6個の関節は上体24側から順に、股(腰部)の回旋(回転)用(上体24に対するヨー方向の回転用)の関節10R,10L(符号R、Lはそれぞれ右側脚体、左側脚体に対応するものであることを意味する符号である。以下同じ)と、股(腰部)のロール方向(X軸まわり)の回転用の関節12R,12Lと、股(腰部)のピッチ方向(Y軸まわり)の回転用の関節14R,14Lと、膝部のピッチ方向の回転用の関節16R,16Lと、足首のピッチ方向の回転用の関節18R,18Lと、足首のロール方向の回転用の関節20R,20Lとから構成される。
【0037】
各脚体2の足首の2つの関節18R(L),20R(L)の下部には、各脚体2の先端部を構成する足平(足部)22R(L)が取着されると共に、両脚体2,2の最上位には、各脚体2の股の3つの関節10R(L),12R(L),14R(L)を介して前記上体(基体)24が取り付けられている。上体24の内部には、詳細を後述する制御ユニット26などが格納されている。なお、図1では図示の便宜上、制御ユニット26を上体24の外部に記載している。
【0038】
上記構成の各脚体2においては、股関節(あるいは腰関節)は関節10R(L),12R(L),14R(L)から構成され、膝関節は関節16R(L)から構成され、足関節(足首関節)は関節18R(L),20R(L)から構成される。また股関節と膝関節とは大腿リンク28R(L)で連結され、膝関節と足関節とは下腿リンク30R(L)で連結される。
【0039】
尚、図示は省略するが、上体24の上部の両側部には左右一対の腕体が取り付けられると共に、上体24の上端部には頭部が配置される。これらの腕体及び頭部は、本発明の要旨と直接的な関連を有しないので詳細な説明は省略するが、各腕体は、それに備える複数の関節によって、該腕体を上体24に対して前後に振る等の運動を行なうことが可能となっている。
【0040】
各脚体2の上記構成により、各脚体2の足平22R(L)は、上体24に対して6つの自由度を与えられている。そして、ロボット1の移動に際して両脚体2,2を合わせて6*2=12個(この明細書で「*」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す)の関節を適宜な角度で駆動することで、両足平22R,22Lの所望の運動を行なうことができる。これによりロボット1は任意に3次元空間を移動することができる。
【0041】
尚、この明細書で後述する上体24の位置および速度は、上体24の所定位置、具体的には上体24のあらかじめ定めた代表点(例えば左右の股関節の間の中央点等)の位置およびその移動速度を意味する。同様に、各足平22R,22Lの位置及び速度は、各足平22R,22Lのあらかじめ定めた代表点の位置及びその移動速度を意味する。この場合、本実施形態では各足平22R,22Lの代表点は、例えば各足平22R,22Lの底面上(より具体的には各脚体2の足首関節の中心から各足平22R,22Lの底面への垂線が該底面と交わる点等)に設定される。
【0042】
図1に示す如く、各脚体2の足首関節18R(L),20R(L)の下方には足平22R(L)との間に公知の6軸力センサ34が介装されている。該6軸力センサ34は、各脚体2の足平22R(L)の着地の有無、および各脚体2に作用する床反力(接地荷重)などを検出するためのものであり、該床反力の並進力の3方向成分Fx,Fy,Fz並びにモーメントの3方向成分Mx,My,Mzの検出信号を制御ユニット26に出力する。また、上体24には、Z軸(鉛直方向(重力方向))に対する上体24の傾き(姿勢角)とその角速度とを検出するための傾斜センサ36が設置され、その検出信号が該傾斜センサ36から制御ユニット26に出力される。また、詳細構造の図示は省略するが、ロボット1の各関節には、それを駆動するために電動モータ32(図3参照)と、その電動モータ32の回転量(各関節の回転角)を検出するためのエンコーダ(ロータリエンコーダ)33(図3参照)とが設けられ、該エンコーダ33の検出信号が該エンコーダ33から制御ユニット26に出力される。
【0043】
図2に示すように、各足平22R(L)の上方には、前記6軸力センサ34との間にばね機構38が装備されると共に、足底(各足平22R(L)の底面)にはゴムなどからなる足底弾性体40が貼られている。これらのばね機構38及び足底弾性体40によりコンプライアンス機構42が構成されている。ばね機構38は具体的には、足平22R(L)の上面部に取り付けられた方形状のガイド部材(図示せず)と、足首関節18R(L)(図2では足首関節20R(L)を省略している)および6軸力センサ34側に取り付けられ、前記ガイド部材内に弾性材(ゴムやばね)を介して微動自在に収納されるピストン状部材(図示せず)とから構成されている。
【0044】
図2に実線で表示された足平22R(L)は、床反力を受けていないときの状態を示している。各脚体2が床反力を受けると、コンプライアンス機構42のばね機構38と足底弾性体40とがたわみ、足平22R(L)は図中に点線で例示したような位置姿勢に移る。このコンプライアンス機構42の構造は、着地衝撃を緩和するためだけでなく、ロボット1の制御性を高めるためにも重要なものである。尚、その詳細は本出願人に先に提案した特開平5−305584号に記載されているので、詳細な説明は省略する。
【0045】
さらに、図1では図示を省略するが、ロボット1の外部には、該ロボット1の操縦用のジョイスティック(操作器)44(図3参照)が設けられ、そのジョイスティック44を操作することで、直進移動しているロボット1を旋回させるなど、ロボット1の歩容に対する要求を必要に応じて制御ユニット26に入力できるように構成される。この場合、入力できる要求は、例えばロボット1の移動時の歩容形態(歩行、走行等)、遊脚の着地位置姿勢や着地時刻、あるいはこれらの着地位置姿勢や着地時刻を規定する指令データ(例えばロボット1の移動方向、移動速度等)である。
【0046】
図3は制御ユニット26の構成を示すブロック図である。該制御ユニット26はマイクロコンピュータにより構成されており、CPUからなる第1の演算装置60及び第2の演算装置62、A/D変換器50、カウンタ56、D/A変換器66、RAM54、ROM64、並びにこれらの間のデータ授受を行なうバスライン52を備えている。この制御ユニット26では、前記各脚体2の6軸力センサ34、傾斜センサ36、ジョイスティック44等の出力信号はA/D変換器50でデジタル値に変換された後、バスライン52を介してRAM54に入力される。また、ロボット1の各関節のエンコーダ33(ロータリエンコーダ)の出力はカウンタ56を介してRAM54に入力される。
【0047】
前記第1の演算装置60は後述の如く、目標歩容を生成すると共に、関節角変位指令(各関節の変位角もしくは各電動モータ32の回転角の指令値)を算出し、RAM54に送出する。また第2の演算装置62はRAM54から関節角変位指令と、前記エンコーダ33の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出してD/A変換器66とサーボアンプ32aとを介して各関節を駆動する電動モータ32に出力する。
【0048】
図4は、本実施形態におけるロボット1の歩容生成装置及び制御装置の機能的構成を全体的に示すブロック図である。この図4中の「実ロボット」の部分以外の部分が制御ユニット26が実行する処理機能(主として第1の演算装置60及び第2の演算装置62の機能)によって構成されるものである。尚、以下の説明では、脚体2の左右を特に区別する必要がないときは、前記符号R,Lを省略する。
【0049】
以下説明すると、制御ユニット26は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置100を備えている。該歩容生成装置100は、その機能によって、本願発明の各手段を構成するものである。この歩容生成装置100が出力する目標歩容は、目標上体位置姿勢軌道(上体24の目標位置及び目標姿勢の軌道)、目標足平位置姿勢軌道(各足平22の目標位置及び目標姿勢の軌道)、目標腕姿勢軌道(各腕体の目標姿勢の軌道)、目標全床反力中心点(目標ZMP)軌道、および目標全床反力軌道から構成される。尚、脚体2や腕体以外に、上体24に対して可動な部位を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。
【0050】
ここで、上記歩容における「軌道」は時間的変化のパターン(時系列パターン)を意味し、以下の説明では、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。具体的には、例えば上体姿勢はZ軸(鉛直軸)に対するロール方向(X軸まわり)の上体24の傾斜角(姿勢角)とピッチ方向(Y軸まわり)の上体24の傾斜角(姿勢角)とで表され、足平姿勢は各足平22に固定的に設定された2軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。
【0051】
尚、以下の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。また、歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット1の運動に係わる歩容を総称的に「運動」という。また、各足平22に作用する床反力(並進力及びモーメントからなる床反力)を「各足平床反力」と呼び、ロボット1の全て(2つ)の足平22R,22Lについての「各足平床反力」の合力を「全床反力」という。ただし、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。
【0052】
目標床反力は、一般的には、作用点とその点に作用する並進力及びモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点(全床反力の中心点の目標位置)を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分(鉛直軸(Z軸)まわりのモーメント)を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分(水平軸(X軸及びY軸)回りのモーメント)は零になる。
【0053】
尚、動力学的平衡条件を満足する歩容では、ロボット1の目標運動軌道から算出されるZMP(目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点)と目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ZMP軌道を与えると言っても同じことである(詳細は、本願出願人による特願2000−352011号等を参照)。
【0054】
このような背景から、上記特願2000−352011号の明細書では目標歩容を、次のように定義していた。
a)広義の目標歩容とは、1歩ないしは複数歩の期間の目標運動軌道とその目標床反力軌道との組である。
b)狭義の目標歩容とは、1歩の期間の目標運動軌道とそのZMP軌道との組である。
c) 一連の歩容は、いくつかの歩容がつながったものとする。
【0055】
歩行においては、本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法によってロボット1の上体24の鉛直位置(上体高さ)が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ZMPまわりに発生するモーメントの水平成分が零になるようにロボット1の上体水平位置軌道を決定することで、並進床反力水平成分も決定される。このため、特願2000−352011号の明細書では、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ZMPだけで十分であった。したがって、狭義の目標歩容の定義としては、上記のb)で十分であった。それに対し、本実施形態で説明するロボット1の走行歩容(詳細は後述する)においては、床反力鉛直成分(並進床反力鉛直成分)も制御上重要である。このため本発明では、この床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット1の目標上体鉛直位置等の軌道を決定する。そこで、本明細書では、狭義の目標歩容の定義として、次のb’)を用いる。
b’)狭義の目標歩容とは、1歩の期間の目標運動軌道とその目標ZMP軌道と目標並進床反力鉛直成分軌道との組である。
【0056】
この明細書では以降、理解を容易にするために、特にことわらない限り、目標歩容は上記b’)の狭義の目標歩容の意味で使用する。この場合、目標歩容の「1歩」は、ロボット1の片方の脚体2が着地してからもう一方の脚体2が着地するまでの意味で使用する。尚、以下の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分(鉛直軸回り成分)は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。
【0057】
また、歩容における両脚支持期とは言うまでもなく、ロボット1がその自重を両脚体2,2で支持する期間、片脚支持期とはいずれか一方のみの脚体2でロボット1の自重を支持する期間、空中期とは両脚体2,2が床から離れている(空中に浮いている)期間を言う。片脚支持期においてロボット1の自重を支持しない側の脚体2を「遊脚」と呼ぶ。尚、本実施形態で説明する走行歩容では、両脚支持期は無く、片脚支持期(着地期)と空中期とが交互に繰り返される。この場合、空中期では両脚2,2とも、ロボット1の自重を支持しないこととなるが、該空中期の直前の片脚支持期において遊脚であった脚体2、支持脚であった脚体2をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。
【0058】
図5に示す走行歩容を例にして、歩容生成装置100が生成する目標歩容の概要を説明する。なお、歩容に関するその他の定義および詳細は、先に本願出願人が提案した特開平10−86081号公報にも記載されているので、以下では、特開平10−86081号公報に記載されていない内容を主に説明する。
【0059】
まず、図5に示す走行歩容を説明する。この走行歩容は、人間の通常的な走行歩容と同様の歩容である。この走行歩容では、ロボット1の左右いずれか一方のみの脚体2(支持脚)の足平22が着地(接地)する片脚支持期と、両脚体2,2が空中に浮く空中期とが交互に繰り返される。図5の1番目の状態は片脚支持期の開始時(初期)の状態、2番目の状態は片脚支持期の中間時点の状態、3番目の状態は片脚支持期に続く空中期の開始時(片脚支持期の終了時)の状態、4番目の状態は空中期の中間時点の状態、5番目の状態は空中期の終了時(次の片脚支持期の開始時)の状態を示している。
【0060】
この走行歩容では、ロボット1は、図5の1番目の状態で示すように、片脚支持期の開始時において支持脚(ロボット1の進行方向前側の脚体2)側の足平22のかかとで着地する。続いて、図5の2番目の状態で示すように、ロボット1は、着地した足平22(支持脚側の足平22)の底面のほぼ全面を着地させた後、図5の3番目の状態で示すように、その支持脚側の足平22(図5の3番目の状態におけるロボット1の進行方向後側の脚体2の足平22)のつま先で床を蹴って空中に飛び上がる。これより片脚支持期が終了すると共に空中期が開始する。尚、片脚支持期における遊脚は、図5の1番目の状態で示すように、片脚支持期の開始時では、支持脚の後側に存在するが、図5の2番目及び3番目の状態で示すように次の着地予定位置に向かって支持脚の前側に振り出される。次いで、図5の4番目の状態で示す空中期を経た後、ロボット1は、遊脚(空中期の開始直前の片脚支持期で遊脚となっていた脚体2)の足平22のかかとで着地し、次の片脚支持期が開始される。
【0061】
図5の走行歩容を考慮しつつ、前記歩容生成装置100が生成する目標歩容の基本的な概要を説明する。詳細は後述するが、歩容生成装置100が目標歩容を生成するとき、遊脚側の足平22の着地位置姿勢(着地予定位置姿勢)や着地時刻(着地予定時刻)等の目標歩容生成用の基本的な要求値(要求パラメータ)が、前記ジョイスティック44の所要の操作等に応じて歩容生成装置100に与えられる。そして、歩容生成装置100は、その要求パラメータを用いて目標歩容を生成する。より詳しく言えば、歩容生成装置100は、上記要求パラメータに応じて、目標歩容の目標足平位置姿勢軌道、目標床反力鉛直成分軌道等、目標歩容の一部の構成要素を規定するパラメータ(歩容パラメータという)を決定した上で、その歩容パラメータを用いて目標歩容の瞬時値を逐次決定し、該目標歩容の時系列パターンを生成する。
【0062】
この場合、目標足平位置姿勢軌道(より詳しくは、足平の位置及び姿勢の空間的な各成分(X軸成分等)の目標軌道)は、例えば本出願人が特許第3233450号にて提案した有限時間整定フィルタを用いて各足平22毎に生成される。この有限時間整定フィルタは、可変時定数の1次遅れフィルタ、すなわち、伝達関数が1/(1+τs)の形で表されるフィルタ(τは可変の時定数。以下、このフィルタを単位フィルタという)を複数段(本実施形態では3段以上)、直列に接続したものであり、所望の指定時刻に指定値に到達するような軌道を生成・出力することができるものである。この場合、各段の単位フィルタの時定数τは、いずれも、有限時間整定フィルタの出力生成を開始してから、上記指定時刻までの残時間に応じて逐次可変的に設定される。より詳しくは、該残時間が短くなるに伴いτの値が所定の初期値(>0)から減少されていき、最終的には、該残時間が0になる指定時刻にて、τの値が0になるように設定される。そして、有限時間整定フィルタには、前記指定値(より詳しくは、有限時間整定フィルタの出力の初期値から前記指定値への変化量)に応じた高さのステップ入力が与えられる。このような有限時間整定フィルタは、指定時刻にて指定値に達するような出力が生成されるだけでなく、指定時刻における有限時間整定フィルタの出力の変化速度を0もしくはほぼ0にすることができる。特に、単位フィルタを3段以上(3段でよい)、接続した場合には、有限時間整定フィルタの出力の変化加速度(変化速度の微分値)をも0もしくはほぼ0にすることができる。
【0063】
このような有限時間整定フィルタを用いる足平位置姿勢軌道(足平22が着地してから次に着地するまでの位置姿勢軌道)の生成は、例えば次のように行なわれる。例えばX軸方向(前後方向)の目標足平位置軌道は次のように生成される。すなわち、前記要求パラメータにより定まる各足平22の次の着地予定位置のX軸方向位置(より詳しくは、次の着地予定位置のひとつ前の着地位置に対するX軸方向の変化量(移動量)。これは前記指定値に相当する)に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に前記時定数τが所定の初期値に初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、足平22のX軸方向位置の軌道生成が開始される。そして、この軌道生成時には、前記時定数τは、足平22の着地予定時刻(これは前記指定時刻に相当する)までに初期値から0まで減少していくように、逐次可変設定される。これにより、着地予定時刻で着地予定位置に達するような、足平22のX軸方向の位置の軌道が生成される。
【0064】
また、Z軸方向(鉛直方向)の目標足平位置軌道は、例えば次のように生成される。すなわち、まず、足平22の次の着地予定位置及び着地予定時刻に応じて、該足平22の高さ(鉛直位置)が最大になるときの該足平22のZ軸方向位置(以下、最高点位置という)とその最高点位置への到達時刻とが決定される。そして、その最高点位置(これは前記指定値に相当する)に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に時定数τが初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、前記最高点位置までのZ軸方向の足平位置軌道が逐次生成される。この際、時定数τは、最高点位置への到達時刻(前記指定時刻に相当)までに初期値から0まで減少するように逐次可変設定される。さらに、最高点位置までのZ軸方向位置の軌道の生成が終了したら、時定数τを初期化すると共にいままでのステップ入力と逆極性のステップ入力(より詳しくは、最高点位置から次の着地予定位置までのZ軸方向の変化量(これは前記指定値に相当する)に応じた高さの逆極性のステップ入力)が有限時間整定フィルタに入力され、該最高点位置から着地予定位置までのZ軸方向の足平位置の軌道が逐次生成される。この際、時定数τは足平22の着地予定時刻までに初期値から0まで減少するように逐次可変設定される。
【0065】
尚、Z軸方向の足平位置軌道の生成においては、時定数τを軌道生成開始時刻から足平22の着地予定時刻まで、初期値から0まで継続的に減少するように可変設定すると共に、最高点位置への到達時刻もしくはその近傍時刻で、ステップ入力の極性を逆極性に切り替えることで、Z軸方向の足平位置軌道を生成するようにしてもよい。この場合には、足平22を所望の最高点位置に精度よく到達させることはできないが、着地予定時刻での着地予定位置への到達は問題なく行なうことができる。
【0066】
足平姿勢軌道についても、上述した足平位置軌道と同様に有限時間整定フィルタを用いて生成することができる。この場合、足平姿勢の空間的な各成分のうち、その姿勢の角度変化が単調的(単調増加もしくは単調減少)なものとなる成分については、前記したX軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。また、姿勢の角度変化が極大値もしくは極小値をもつような成分については、前記したZ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。
【0067】
尚、上記のように有限時間整定フィルタにより生成される目標足平位置姿勢軌道は、床面に固定された後述の支持脚座標系での各足平22の目標位置姿勢軌道である。
【0068】
上述のように生成される目標足平位置姿勢軌道は、各足平22の位置が、その初期接地状態(目標歩容の初期時刻の状態)から着地予定位置に向かって徐々に加速しながら移動を開始するように生成される。そして、該目標足平位置姿勢軌道は、最終的に着地予定時刻までに徐々に位置の変化速度を0またはほぼ0にまで減速し、着地予定時刻にて着地予定位置に到達して停止するように生成される。このため、各足平22の着地瞬間における対地速度(床に固定された支持脚座標系での各足平22の位置の変化速度)が0またはほぼ0になる。したがって、走行歩容において同時に全脚体2,2が空中に存在する状態(空中期での状態)から着地しても、着地衝撃が小さくなる。
【0069】
前記走行歩容においては、ロボット1に作用する重力によって空中期後半から上体24の鉛直速度は下向きになり、着地時でも下向きのままである。したがって、上記のように各足平22の着地瞬間における対地速度が0またはほぼ0になるように目標足平位置姿勢軌道を生成すると共に、後述する如く動力学的平衡条件を満たすように上体24の目標位置姿勢軌道を生成したとき、着地直前において、上体24に対する遊脚側の足平22の相対速度は、上向きになる。すなわち、走行歩容の着地瞬間では、ロボット1の目標歩容は遊脚側の脚体2を上体24側に引っ込めながら着地するような歩容となる。言い換えれば、本実施例での目標歩容では、ロボット1は、着地瞬間において、遊脚側の足平22の対地速度が0またはほぼ0になるように、上体24から見て該足平22を引き上げるようにして着地する。これによって、着地衝撃は小さくなり、着地衝撃が過大になるのを防止するようにしている。
【0070】
また、本実施形態では、有限時間整定フィルタは、単位フィルタを3段以上(例えば3段)、直列に接続したものであるため、着地予定時刻までに各足平22の速度(足平位置の変化速度)が0またはほぼ0になるだけでなく、各足平22は、その加速度も着地予定時刻にて0またはほぼ0になって停止する。つまり、着地瞬間における対地加速度も0またはほぼ0になる。したがって、着地衝撃がより一層小さくなる。特に、実際のロボット1の着地時刻が目標の着地時刻からずれても、衝撃があまり増大しなくなる。補足すると、着地予定時刻にて各足平22の対地速度を0またはほぼ0にする上では、有限時間整定フィルタの単位フィルタの段数は2段でもよいが、この場合には、着地予定時刻での各足平22の加速度は一般には0にならない。
【0071】
尚、足平姿勢に関しては、各足平22が着地予定時刻にてその踵で着地した後、該足平22の底面のほぼ全面が床に接地するまで動き続ける。このため、該足平22の底面のほぼ全面が床に接地する時刻を前記指定時刻に設定して、前記有限時間整定フィルタにより足平姿勢軌道が生成される。
【0072】
また、本実施形態では、有限時間整定フィルタを用いて足平位置軌道を生成したが、着地予定時刻での足平位置の変化速度が0またはほぼ0になる(足平位置の時間微分値が0になる)ように、さらには、該着地予定時刻での足平位置の変化加速度(変化速度の時間微分値)が0またはほぼ0になるように設定された多項式などの関数を用いて目標足平位置軌道を生成するようにしても良い。このことは、目標足平姿勢軌道の生成に関しても同様である。但し、該目標足平姿勢軌道の生成に関しては、上述の如く、各足平22の底面のほぼ全面が床に設置する時刻にて、各足平22の姿勢の変化速度、さらにはその変変化加速度が0またはほぼ0になるように多項式などの関数が設定される。
【0073】
目標床反力鉛直成分軌道は、例えば図6のように設定される。本実施形態では、走行歩容における目標床反力鉛直成分軌道の形状(詳しくは片脚支持期での形状)は、台形状(床反力鉛直成分の増加側に凸の形状)に定められており、その台形の高さ、折れ点の時刻を目標床反力鉛直成分軌道を規定する歩容パラメータとして、それらの歩容パラメータ(床反力鉛直成分軌道パラメータ)が決定される。尚、走行歩容の空中期では、目標床反力鉛直成分は定常的に0に設定される。この例のように、目標床反力鉛直成分軌道は、実質的に連続になるように(値が不連続にならないように)設定するのが良い。これは床反力を制御する際のロボット1の関節の動作を滑らかにするためである。尚、「実質的に連続」というのは、アナログ的に連続な軌道(真の意味での連続な軌道)を離散時間系でデジタル表現したときに必然的に生じる値の飛びは、該軌道の連続性を失わせるものではないということを意味するものである。
【0074】
目標ZMP軌道は次のように設定される。図5の走行歩容においては、前記したように支持脚側足平22のかかとで着地し、次にその支持脚側足平22のつま先で蹴って空中に飛び上がり、最後に遊脚側足平22のかかとで着地する。したがって、片脚支持期での目標ZMP軌道は、図7の上段図に示すように、支持脚側足平22のかかとを初期位置として、次に支持脚側足平22の底面のほぼ全面が接地する期間において該足平22の前後方向の中央に移動し、その後、離床時までに支持脚側足平22のつまさきに移動するように設定される。ここで、図7の上段図は、X軸方向(前後方向)の目標ZMP軌道を示すものであり、図7の下段図はY軸方向(左右方向)の目標ZMP軌道を示すものである。尚、片脚支持期におけるY軸方向の目標ZMP軌道は、図7の下段図に示すように、Y軸方向での支持脚側脚体2の足首関節の中心位置と同じ位置に設定される。
【0075】
走行歩容では、さらに片脚支持期の終了後、両脚体2,2が床から離れ、床反力鉛直成分が0になる。床反力鉛直成分が0の時、すなわち空中期には、ロボット1の全体重心は自由落下運動をし、全体重心まわりの角運動量変化は零である。この時、床の任意の点において、ロボット1に作用する重力と慣性力との合力のモーメントは0であるので、目標ZMPは不定である。すなわち、床のいずれの点も、「重力と慣性力との合力が作用するモーメントの水平成分が0である作用点」というZMPの条件を満たす。言いかえれば、任意の点に目標ZMPを設定しても、上記合力が目標ZMP回りに作用するモーメントの水平成分が0であるという動力学的平衡条件を満足する。したがって、目標ZMPを不連続に設定しても構わない。例えば、空中期では、目標ZMPを、離床時(片脚支持期の終了時)の目標ZMP位置から移動しないように設定し、空中期終端において、着地時の目標ZMP位置に不連続(ステップ状)に移動するように該目標ZMP軌道を設定しても構わない。しかし本実施形態では、図7の上段図に示すように、空中期における目標ZMP軌道のX軸方向位置は、次の遊脚側脚体2の着地までに支持脚側足平22のつまさきから遊脚側足平22のかかとの着地位置まで連続的に移動するようにした。また、図7の下段図に示すように、空中期における目標ZMP軌道のY軸方向位置は、次の遊脚側脚体2の着地までに支持脚側脚体2の足首関節の中心のY軸方向位置から遊脚側脚体2の足首関節の中心のY軸方向位置まで連続的に移動するようにした。すなわち、歩容の全期間において目標ZMP軌道を連続(実質的に連続)にした。そして、後述するように、目標ZMPまわりの重力と慣性力との合力のモーメント(鉛直成分を除く)が零になるように目標歩容を生成する(より具体的には目標上体位置姿勢軌道を調整する)ようにした。
【0076】
以下に目標ZMP軌道を連続的にする理由を述べる。空中期においては、厳密動力学モデルを用いて、重力と慣性力との合力が目標ZMPまわりに作用するモーメントが0になり、且つ目標床反力鉛直成分を0として目標歩容を生成すれば、生成された目標歩容による重力と慣性力との合力が、床に固定されたある座標系(これをグローバル座標系と呼ぶ)の原点まわりに作用するモーメントの真値(厳密動力学モデルによって算出される重力と慣性力との合力が前記座標系原点まわりに作用するモーメントのことであり、以降、原点まわり真モーメントと呼ぶ。)は0となる。
【0077】
しかし、上記のごとく生成する時に用いる動力学モデルが厳密モデルでなく近似モデルの場合には、生成された歩容の原点まわり真モーメントは0とならない場合がある。しかも、近似モデルが、動力学を表現するのに一般的である微分(差分)方程式または積分方程式で記述されているとすると、原点まわり真モーメントは目標ZMPの位置に依存し、目標ZMPの位置を微小量だけ変更すると、原点まわり真モーメントも微小量だけ移動する場合がある。したがって、この場合に、目標ZMPの位置を不連続に移動させると、原点まわり真モーメントも不連続に変化する。
【0078】
これは、生成された歩容の真の慣性力(厳密モデルで算出された慣性力)が不連続になることを意味する。さらにこれは、ロボット1のいずれかまたはすべての関節変位の加速度(角加速度)が不連続になることを意味する。
【0079】
以上の理由により、モデルの近似誤差を考慮すると、生成された歩容が滑らかになるようにするために、空中期においても目標ZMP軌道を連続(実質的に連続)にしておくのが望ましい。但し、本実施形態で用いる後述の動力学モデルでは、目標ZMPの位置によらずに、目標ZMP回りモーメントの水平成分を0にするような目標歩容を一義的に生成できるので、必ずしも目標ZMPを連続にしておく必要はない。
【0080】
尚、本実施形態では、図7に示したような目標ZMP軌道の折れ点の位置や時刻が、ZMP軌道パラメータ(目標ZMP軌道を規定するパラメータ)として設定される。また、上記したZMP軌道の「実質的に連続」の意味は、前記床反力鉛直成分軌道の場合と同様である。
【0081】
ZMP軌道パラメータは、安定余裕が高く、かつ急激な変化をしないように決定される。ここで、ロボット1の接地面を含む最小の凸多角形(いわゆる支持多角形)の中央付近に目標ZMPが存在する状態を安定余裕が高いと言う(詳細は特開平10−86081号公報を参照)。図7の目標ZMP軌道はこのような条件を満たすように設定したものである。
【0082】
また、目標腕姿勢は、上体24に対する相対姿勢で表す。
【0083】
また、目標上体位置姿勢、目標足平位置姿勢および後述の基準上体姿勢はグローバル座標系で記述される。グローバル座標系は前述のごとく床に固定された座標系である。グローバル座標系としては、より具体的には、後述する支持脚座標系が用いられる。
【0084】
本実施形態では、歩容生成装置100は、目標上体姿勢だけでなく、基準上体姿勢も生成する。この基準上体姿勢は、歩容に対する要求(歩容生成装置100に対する行動計画部などの装置または外部(前記ジョイスティック44等)からの要求)にそのまま従って生成される上体姿勢である。
【0085】
目標上体姿勢(以降、「基準」が付いていない場合には、目標上体姿勢を表す)は、長期的には基準上体姿勢に追従するかまたは一致するように生成される。
【0086】
目標上体姿勢は、歩行においては、本願出願人による特願2000−352011号の明細書に記載した実施形態のごとく通常、常に基準上体姿勢に一致させておけば良い。特願2000−352011号では、基準上体姿勢という概念は記載されていないが、目標上体姿勢パターンを、明示的かつ優先的に与えていたので、基準上体姿勢に目標上体姿勢が常に一致していることと同じことである。
【0087】
しかし、走行など空中期がある歩容や低摩擦床面での歩行においては、単に上体水平加速度を調整するだけでは、目標歩容の床反力水平成分が許容範囲以内(あるいは摩擦限界以内)に存在するようにしつつ動力学的平衡条件を満足することができない。
【0088】
そこで、本実施形態においては、目標上体姿勢を必要に応じて基準上体姿勢から故意にずらすこととした。より具体的には、以下に説明するふたつの運動モードを複合的に発生させることにより、目標歩容の床反力水平成分が許容範囲以内(あるいは摩擦限界以内)に存在しつつ動力学的平衡条件を満足させるようにした。
【0089】
図8のように、ロボット1のある運動状態から、上体水平加速度だけを摂動(微小変化)させると、ロボット1の全体重心水平加速度と全体重心まわりの角運動量が摂動する。すなわち、上体水平加速度の摂動は、それによって発生するロボット1の慣性力と重力との合力に対して動力学的に釣り合う床反力鉛直成分を摂動させずに(ロボット1の全体重心鉛直加速度を摂動させずに)、目標ZMPまわりの床反力モーメント成分(ただし鉛直軸まわり成分を除く)と床反力水平成分とを摂動させる。このようにロボット1の上体水平加速度を摂動させる運動モードを上体並進モードと呼ぶ。
【0090】
言いかえると、床反力鉛直成分を変化させずに、目標ZMPまわりの床反力モーメント成分(ただし鉛直軸まわり成分を除く)と床反力水平成分とを変化させる運動を上体並進モードと呼ぶ。
【0091】
この時の単位加速度当たりの床反力モーメント成分の変化をΔMp、単位加速度当たりの床反力水平成分の変化をΔFpとする。図8に示す状況で上体24を前方に水平加速すると、ΔMpとΔFpは図8に示す矢印の向きに作用する。
【0092】
感覚的に判り易くするために、運動によって発生する慣性力と重力との合力に釣り合う床反力を用いて表現したが、慣性力と重力との合力を用いて表現した方が、理論的には的確である。なお、上記合力と床反力とは、互いに大きさが同じで向きが逆になっている。
【0093】
それに対し、図9のように、ロボット1のある運動状態から、ある点Prまわりに上体姿勢角加速度(上体24の姿勢角の角加速度)を摂動させると、ロボット1の全体重心は摂動せずに、全体重心まわりの角運動量が摂動する。すなわち、点Prまわりの上体姿勢角加速度の摂動は、床反力鉛直成分と床反力水平成分とを摂動させずに、目標ZMPまわりの床反力モーメント成分(鉛直軸まわり成分を除く)を摂動させる。このようにロボット1の上体姿勢角加速度を摂動させる運動モードを上体回転モードと呼ぶ。
【0094】
言いかえると、床反力鉛直成分と床反力水平成分を変化させずに、目標ZMPまわりの床反力モーメント成分(鉛直軸まわり成分を除く)を変化させる運動を上体回転モードと呼ぶ。
【0095】
この時の単位角加速度当たりの床反力モーメント成分の変化をΔMr、単位角加速度当たりの床反力水平成分の変化をΔFrとする。ΔFrは零である。図9に示す状況で上体24が前傾するように上体姿勢角の角加速度を発生させると、ΔMrは図9に示す矢印の向きに作用する。
【0096】
次に、本実施形態に用いられるロボット動力学モデルについて説明する。本実施形態では単純化された(近似された)以下に示す動力学モデルを用いる。ただし、以下に示す動力学モデルに関しては、キネマティクスモデル(関節、リンクの構造や寸法を表すモデルであり、言い換えると、関節変位とリンクの位置姿勢との関係を表すモデルである。)も必要である。
【0097】
図10は、本実施形態に用いられるロボット動力学モデルである。図示の如く、この動力学モデルは、ロボット1の各脚体2にそれぞれ対応する2つの質点2m,2m、及び上体24に対応する質点24mからなる合計3質点と、イナーシャがあって質量のないフライホイールFHとから構成されるモデルである。この動力学モデルでは、デカップルド、即ち、脚体2,2の動力学(各質点2m,2mの動力学)と上体24の動力学(質点24m及びフライホイールFHの動力学)とが相互に非干渉に構成されると共に、ロボット1全体の動力学は、それらの線形結合で表される。また、さらに、上体24の運動と床反力との関係も、上体24の並進運動(上体並進モード)と床反力との関係、並びに上体24の回転運動(上体回転モード)と床反力との関係に分離される。具体的には、上体質点24mの水平運動によって発生する床反力は、上体24の水平方向並進運動(上体並進モード)によって発生する床反力に対応し、フライホイールの回転運動によって発生する床反力は、上体24の姿勢角の回転運動(上体回転モード)によって発生する床反力に対応する。
【0098】
尚、ロボット1の腕体の質量は上体24に含まれるものとし、上体質点24mは腕体の質量を含む質量をもつ。本実施形態では、目標歩容における腕体の運動(腕振り運動)は、後述するように、ロボット1の腕振り以外の運動によってロボット1に発生する鉛直軸まわりの慣性力のモーメントを打ち消しつつも、上体24に対する両腕体の全体の重心の相対位置が動かないように行なわれるので、腕体の腕振り運動による(鉛直軸まわり成分を除く)床反力モーメントへの影響と床反力水平成分への影響とは無視する。
【0099】
以下に上記単純化モデルを数式化する。ただし、説明を簡単にするために、サジタルプレーン(前後軸(X軸)と鉛直軸(Z軸)を含む平面)での運動方程式のみを記述し、ラテラルプレーン(左右軸(Y軸)と鉛直軸(Z軸)を含む平面)での運動方程式を省略した。
【0100】
説明の便宜上、動力学モデルに関する変数およびパラメータを以下のように定義する。なお、各質点2m,2m,24mはそれが対応する部位の代表点であるか、あるいはその部位の位置姿勢から幾何学的に一義的に決定される点に相当する。例えば、支持脚側脚体2の質点2mの位置は、該脚体2の足平22の底面の前記代表点から所定の距離だけ上方の点とする。
Zsup:支持脚質点鉛直位置
Zswg:遊脚質点鉛直位置
Zb:上体質点鉛直位置(上体鉛直位置とは一般的には異なる。)
ZGtotal:全体重心鉛直位置
Xsup:支持脚質点水平位置
Xswg:遊脚質点水平位置
Xb:上体質点水平位置(前記点Prから前後にある所定の距離だけオフセットした点である。オフセットは、直立時などにおいて、厳密モデルの重心位置と、本動力学モデルの重心位置がなるべく一致するように、決定される。上体水平位置とは一般的には異なる。)
XGtotal:全体重心水平位置
θby:鉛直方向に対するY軸回りの上体姿勢角(傾斜角)
mb:上体質点質量
msup:支持脚質点質量
mswg:遊脚質点質量
mtotal:ロボット総質量(=mtotal+msup+mswg)
J:上体慣性モーメント(上体回転モードにおける等価慣性モーメントである。実ロボット1の上体24部位の慣性モーメントとは一般的には一致しない。)
Fx:床反力水平成分(詳しくは並進床反力の前後方向(X軸)成分)
Fz:床反力鉛直成分(詳しくは並進床反力の鉛直方向(Z軸)成分。本実施形態では、これは目標並進床反力鉛直成分に等しい)
My:目標ZMPまわりの床反力モーメント(詳しくは床反力モーメントの左右軸(Y軸)まわり成分)
尚、本実施形態では、各脚体2の質点2mの位置と、その脚体2の足平22の位置(足平22のあらかじめ定めた代表点の位置)との位置関係はあらかじめ定められており、一方の位置が決まれば、他方の位置は一義的に定まるものとされている。また、上体質点24mと、上体24の位置(上体24のあらかじめ定められた代表点の位置)との位置関係は、上体24の姿勢角に応じてあらかじめ定められており、一方の位置と姿勢角とが決まれば、他方の位置は一義的に定まるものとされている。
【0101】
また、任意の変数Xに対して、dX/dtはXの1階微分を表わし、d2X/dt2はXの2階微分を表わす。したがって、変数Xが変位ならば、dX/dtは速度、d2X/dt2は加速度を意味する。gは重力加速度定数を示す。ここでは、gは正の値とする。
【0102】
上記動力学モデルの運動方程式(動力学的平衡条件を表す式)は、式01、式02、式03で表される。
【0103】
以下に上記動力学モデルと前記ΔFp、ΔMp、ΔFr、ΔMrの関係を示す。
【0104】
前記ΔFpは、式02において、d2Xb/dt2を単位量だけ摂動させたときのFxの摂動量であるから、次式によって求められる。
ΔFp=mb …式06
すなわち、上体並進モードの単位加速度当たりの床反力の水平成分の変化ΔFpは、上記動力学モデルの上体質点24mの質量に相当する。
【0105】
前記ΔMpは、式03において、d2Xb/dt2を単位量だけ摂動させたときのMyの摂動量であるから、次式によって求められる。
ΔMp=mb*(Zb−Zzmp) …式07
すなわち、上体並進モードの単位加速度当たりの床反力モーメント成分の変化ΔMpは、上記動力学モデルの上体質点質量に、上体質点24mの目標ZMPからの高さ(鉛直位置)を乗じたものになる。このときの上体質点24m及び目標ZMPの位置と、上体質点24mの運動との関係は、上体質点24mを倒立振子質点、目標ZMPを倒立振子支点に対応づけたときの倒立振子の挙動に相当する。
【0106】
前記ΔFrは、式02において、d2θby/dt2を単位量だけ摂動させたときのFxの摂動量であるから、次式によって求められる。
ΔFr=0 …式08
すなわち、上体回転モードの単位加速度当たりの並進床反力水平成分の変化ΔFrは、0である。
【0107】
前記ΔMrは、式03において、d2θby/dt2を単位量だけ摂動させたときのMyの摂動量であるから、次式によって求められる。
ΔMr=J …式09
すなわち、上体回転モードの単位加速度当たりの床反力モーメント成分の変化ΔMrは、フライホイールの慣性モーメントに相当する。
【0108】
本実施形態における歩容生成装置100は、ロボット1の片方の脚体2が着地してから他方の脚体2が着地するまでの1歩分の目標歩容(前記狭義の意味での目標歩容)を単位として、その1歩分の目標歩容を順番に生成する。従って、本実施形態で生成する図5の走行歩容では、該目標歩容は片脚支持期の開始時から、これに続く空中期の終了時(次の片脚支持期の開始時)までの目標歩容が順番に生成される。ここで、新たに生成しようとしている目標歩容を「今回歩容」、その次の目標歩容を「次回歩容」、さらにその次の目標歩容を「次次回歩容」、というように呼ぶ。また、「今回歩容」の一つ前に生成した目標歩容を「前回歩容」と呼ぶ。
【0109】
また、歩容生成装置100が今回歩容を新たに生成するとき、該歩容生成装置100には、ロボット1の2歩先までの遊脚側足平22の着地予定位置姿勢、着地予定時刻の要求値(要求)が歩容に対する要求パラメータとして入力される(あるいは歩容生成装置100が記憶装置から要求パラメータを読み込む)。そして、歩容生成装置100は、これらの要求パラメータを用いて、目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ZMP軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道等を生成する。このとき、これらの軌道を規定する歩容パラメータの一部は、歩行の継続性を確保するように適宜修正される。
【0110】
以下に図5の走行歩容を生成することを例にして、歩容生成装置100の歩容生成処理の詳細を図12〜図38を参照しつつ説明する。図12は、その歩容生成装置100が実行する歩容生成処理を示すフローチャート(構造化フローチャート)である。
【0111】
まずS010において時刻tを0に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置100の起動時等に行なわれる。次いで、S012を経てS014に進み、歩容生成装置100は、制御周期(図12のフローチャートの演算処理周期)毎のタイマ割り込みを待つ。制御周期はΔtである。
【0112】
次いで、S016に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはS018に進むと共に、切り替わり目でないときはS030に進む。ここで、上記「歩容の切り替わり目」は、前回歩容の生成が完了し、今回歩容の生成を開始するタイミングを意味し、例えば前回歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。
【0113】
S018に進むときは時刻tが0に初期化され、次いでS020に進み、次回歩容支持脚座標系、次次回歩容支持脚座標系、今回歩容周期および次回歩容周期が読み込まれる。これらの支持脚座標系及び歩容周期は、前記要求パラメータにより定まるものである。すなわち、本実施形態では、歩容生成装置100にジョイスティック44等から与えらる要求パラメータは、2歩先までの遊脚側足平22の着地予定位置姿勢(足平22が着地してから足底を床面にほぼ全面的に接触させるように、滑らさずに回転させた状態での足平位置姿勢)、着地予定時刻の要求値を含んでおり、その1歩目の要求値、2歩目の要求値がそれぞれ、今回歩容、次回歩容に対応するものとして、今回歩容の生成開始時(前記S016の歩容の切り替わり目)以前に歩容生成装置100に与えられたものである。なお、これらの要求値は今回歩容の生成途中でも変更することは可能である。
【0114】
そして、上記要求パラメータにおける1歩目の遊脚側足平22(今回歩容での遊脚側足平22)の着地予定位置姿勢の要求値に対応して次回歩容支持脚座標系が定まる。
【0115】
例えば図15を参照して、今回歩容(1歩目)に係わる遊脚側足平22(図では22L)の着地予定位置姿勢の要求値が、今回歩容の支持脚側足平22(図では22R)の着地位置姿勢に対して、今回歩容支持脚座標系のX軸方向(今回歩容の支持脚側足平22Rの前後方向)及びY軸方向(今回歩容の支持脚側足平22Rの左右方向)に、それぞれxnext、ynextだけ移動し、且つZ軸回り(鉛直軸回り)にθznextだけ回転させた位置姿勢であるとする。ここで、支持脚座標系は、支持脚側足平22を水平姿勢(より一般的には床面に平行な姿勢)にして該支持脚側足平22の底面のほぼ全面を床面に接触(密着)させた状態において、該支持脚側脚体2の足首中心から床面に延ばした垂線が該床面と交わる点(この点は、本実施形態の例では支持脚側足平22の底面のほぼ全面を床面に接触させた状態では、該足平22の代表点と合致する)を原点とし、その原点を通る水平面をXY平面とするグローバル座標系(床に固定された座標系)である。この場合、X軸方向、Y軸方向は、それぞれ支持脚側足平22の前後方向、左右方向である。尚、支持脚座標系の原点は、必ずしも支持脚側足平22の底面のほぼ全面を床面に接触させた状態での該足平22の代表点(足平22の位置を代表する点)に合致する必要はなく、該代表点と異なる床面上の点に設定されてもよい。
【0116】
このとき、次回歩容支持脚座標系は、図示のように今回歩容の遊脚側足平22Lの着地予定位置姿勢の要求値に従って該足平22を着地させた場合(足平22の代表点を着地予定位置の要求値に一致させ、且つ、足平22の姿勢(向き)を着地予定姿勢の要求値に一致させた場合)における該足平22Lの代表点(より詳しくは該代表点に合致する床上の点)を原点とし、該原点を通る水平面内における該足平22Lの前後方向、左右方向をそれぞれX’軸方向、Y’軸方向とする座標系である。
【0117】
上記と同様に、2歩目の遊脚側足平22の着地予定位置姿勢の要求値に応じて次々回歩容支持脚座標系(図15のX”Y”座標を参照)が定まる。また、今回歩容周期は、今回歩容の支持脚側足平22の着地予定時刻(要求値)から、1歩目(今回歩容)の遊脚側足平22の着地予定時刻(要求値)までの時間として定まり、次回歩容周期は、1歩目の遊脚側足平22の着地予定時刻(要求値)から2歩目の遊脚側足平22の着地予定時刻(要求値)までの時間として定まる。
【0118】
尚、前記要求パラメータは、本実施形態ではジョイスティック44の所要の操作によって歩容生成装置100に入力されるものであるが、あらかじめ該要求パラメータあるいはこれに対応する上記の支持脚座標系の位置姿勢及び歩容周期をロボット1の移動スケジュールとして記憶しておいても良い。あるいは、ジョイスティック44などの操縦装置からの指令(要求)とそのときまでのロボットの1の移動履歴とを基に前記次回及び次次回歩容支持脚座標系、並びに今回及び次回歩容周期を決定しても良い。
【0119】
次いでS022に進み、歩容生成装置100は、今回歩容に続く仮想的な周期的歩容としての定常旋回歩容の歩容パラメータを決定する。該歩容パラメータは、定常旋回歩容における目標足平位置姿勢軌道を規定する足平軌道パラメータ、基準とする上体姿勢軌道を規定する基準上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕軌道パラメータ、目標ZMP軌道を規定するZMP軌道パラメータ、目標床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータを含む。さらに、目標床反力水平成分許容範囲を規定するパラメータも歩容パラメータに含まれる。
【0120】
尚、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界(本実施形態では1歩毎の歩容の境界)においてロボット1の運動状態(足平位置姿勢、上体位置姿勢等の状態)に不連続が生じないような周期的歩容を意味するものとして使用する。以降、「定常旋回歩容」を「定常歩容」と略す場合もある。
【0121】
周期的歩容である定常旋回歩容は、本実施形態では、ロボット1の2歩分の歩容、すなわち今回歩容に続く第1旋回歩容と該第1旋回歩容に続く第2旋回歩容とからなる歩容を該定常旋回歩容の1周期分の歩容として、その1周期分の歩容を繰り返す歩容である。尚、ここで「旋回」なる用語を用いたのは、旋回率を零とするときは直進を意味するので、直進も広義の意味で旋回に含ませることができるからである。また、生成する目標歩容が前記図5の走行歩容であると、その目標歩容の今回歩容は、片脚支持期及び空中期を有する走行歩容であるので、定常旋回歩容の第1旋回歩容及び第2旋回歩容は、いずれも今回歩容と同様に片脚支持期と空中期とを有する歩容である。つまり、第1旋回歩容及び第2旋回歩容の基本的な歩容形態は今回歩容と同一である。
【0122】
定常旋回歩容について補足すると、2足移動ロボットでは、定常旋回歩容の1周期分は、前記した狭義の意味での歩容が、少なくとも2歩分、必要である。そして、3歩以上の歩容を1周期分の歩容とする複雑な定常旋回歩容を設定することも可能である。但し、定常旋回歩容は、後述の如く、今回歩容の終端(終了時刻)における発散成分(詳細は後述する)を決定するためだけに用いられる。このため、3歩以上の歩容を1周期とする定常旋回歩容を用いることは、歩容生成の処理が煩雑となるにも関わらず、効果は少ない。そこで、本実施形態での定常旋回歩容の1周期分の歩容を2歩分の歩容(第1及び第2旋回歩容)により構成するようにしている。尚、3足以上の脚式移動ロボットにあっては、それに応じて定常旋回歩容を定義するに足る歩容数が増加する。以下では、説明の便宜上、複数の狭義の歩容(本実施形態では2歩分の歩容)から成る定常旋回歩容を1歩の歩容とみなす。
【0123】
定常旋回歩容は、歩容生成装置100で今回歩容の終端における発散成分や上体鉛直位置速度、上体姿勢角及びその角速度等のロボット1の運動状態を決定するために暫定的に作成されるものであり、歩容生成装置100からそのまま出力されるものではない。
【0124】
尚、「発散」とは、図13に示すように、2足移動ロボット1の上体24の位置が両足平22,22の位置からかけ離れた位置にずれてしまうことを意味する。発散成分の値とは、2足移動ロボット1の上体24の位置が両足平22,22の位置(より具体的には、支持脚側足平22の接地面に設定されたグローバル座標系(支持脚座標系)の原点)からかけ離れていく具合を表す数値である。
【0125】
本実施形態では、目標歩容が、前記発散を生じることなく、継続的に生成されるように、発散成分を指標にして歩容を生成するようにした。ただし、継続的な歩容の代表例である定常歩容(歩容の軌道の不連続を発生することなく、同じパターンの歩容を繰り返すことができる周期的歩容であり、原理上、無限回繰り返しても発散しない歩容)の初期発散成分(定常歩容の初期時刻での発散成分)であっても、単純に0ではなく、定常歩容のパラメータが変われば、その初期発散成分も変わる。すなわち、歩き方あるいは走り方等の歩容形態によって、適切な発散成分が変わる。そこで、本実施形態では、これから生成しようとする今回歩容の後に続く定常歩容が前記今回歩容に係わる要求パラメータに応じて設定され、定常歩容の初期発散成分を求めてから、今回歩容の終端発散成分を定常歩容の初期発散成分に一致させる(より一般的には、今回歩容を定常歩容に連続させもしくは近づける)ように、今回歩容を生成する。これのような歩容生成の基本的な指針は本出願人が先に提案した特願2000−352011号のものと同様である。
【0126】
本発明の実施形態では、特願2000−352011号の第1実施形態で用いたような線形な3質点動力学モデルを用いていないが、次式で定義される発散成分および収束成分の概念は、図10に示したモデルのような非線形な動力学モデルの挙動の摂動分に対しても、近似的に十分な精度で適用することができる。
【0127】
ただし、ここでの上体質点水平位置は、図10に示す前記動力学モデルにおいては、上体質点水平位置Xbを表す。
【0128】
また、ω0はある所定の値であり、走行時では、特願2000−352011号の歩行歩容生成時の値に対して若干変更する必要がある。
【0129】
発散成分および収束成分に関するその他の詳細は、特願2000−352011号に記述されているので、ここではこれ以上言及しない。
【0130】
本実施形態においては、特願2000−352011号に示した方式に加え、さらに、後述するように、目標床反力鉛直成分軌道を規定する歩容パラメータを設定し、この目標床反力鉛直成分を動力学的に満足するようにロボット1の全体重心鉛直位置を決定する。この場合、床反力鉛直成分の2階積分値がロボット1の全体重心鉛直位置を規定するものになるので、目標床反力鉛直成分の設定が悪いと、ロボット1の全体重心鉛直位置もしくは上体鉛直位置が高くなり過ぎたり低くなり過ぎたりする。したがって、目標床反力鉛直成分の設定方法も重要な課題である。しかし、床反力鉛直成分と上体鉛直位置との関係は、ZMPと上体水平位置との関係に似ているので、上体水平位置速度を適切にするための目標ZMP決定手法の一部を、以下の本実施形態に示すように、少し変更するだけで、上体鉛直位置速度を適切にするための目標床反力鉛直成分の決定手法に適用することができる。
【0131】
本題に戻り、S022では、図14に示すフローチャートに従って、以下の処理が行われる。
【0132】
まず、S100において、今回歩容、第1旋回歩容、第2旋回歩容の順に足平位置姿勢軌道がつながるように、定常歩容の歩容パラメータのうちの足平軌道パラメータが決定される。以下に具体的な設定方法を図15を参照して説明する。尚、以降の説明では、支持脚側の脚体2の足平22を支持脚足平と称し、遊脚側の脚体2の足平22を遊脚足平を称する。また、歩容の「初期」、「終端」はそれぞれ歩容の開始時刻、終了時刻もしくはそれらの時刻における瞬時歩容を意味する。
【0133】
足平軌道パラメータは、第1旋回歩容および第2旋回歩容の初期及び終端のそれぞれにおける支持脚足平及び遊脚足平のそれぞれの位置姿勢、各旋回歩容の歩容周期等から構成される。この足平軌道パラメータのうち、第1旋回歩容初期遊脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。この場合、走行歩容では、今回歩容終端における支持脚足平22は、空中に移動している。そして、今回歩容終端支持脚足平位置姿勢は、今回歩容初期支持脚足平位置姿勢(=前回歩容終端遊脚足平位置姿勢)から、前記要求パラメータにおける2歩目の遊脚側足平22の着地予定位置姿勢の要求値(今回歩容の支持脚足平22の次回歩容における着地予定位置姿勢の要求値)もしくは該要求値に対応する次次回歩容支持脚座標系に応じて定まる次回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道(詳しくは次回歩容支持脚座標系から見た軌道)を、今回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。
【0134】
尚、次回歩容終端遊脚足平位置姿勢は、その位置姿勢から足平22を接地させたまま、つま先を下げるように該足平22を水平姿勢までピッチ方向に所定角度回転させたときの該足平の位置姿勢が次次回歩容支持脚座標系の位置姿勢に合致するように決定される。換言すれば、次回歩容終端遊脚足平位置姿勢は、前記要求パラメータにおける2歩目の遊脚側足平22の着地位置姿勢の要求値から、該足平22をすべらないように接地させたまま、つま先を持ち上げるように該足平22をピッチ方向に所定角度回転させた状態(つま先を上げてかかとを着地させた状態)での該足平22の位置姿勢である。
【0135】
また、第1旋回歩容初期支持脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端遊脚足平位置姿勢とされる。この場合、今回歩容終端遊脚足平位置姿勢は、前記次回歩容終端遊脚足平位置姿勢の場合と同様、前記次回歩容支持脚座標系もしくはこれに対応する前記要求パラメータの1歩目(今回歩容)の遊脚着地予定位置姿勢の要求値に応じて定まるものである。すなわち、該今回歩容終端遊脚足平位置姿勢は、その位置姿勢から、足平22を接地させたまま、つま先を下げるように該足平22を回転させて該足平22の底面のほぼ全面を床面に接地させたときの該足平の代表点が次回歩容支持脚座標系の原点に合致するように決定される。
【0136】
第1旋回歩容終端遊脚足平位置姿勢は、今回歩容終端遊脚足平位置姿勢や次回歩容終端遊脚足平位置姿勢の決定手法と同様に、次回歩容支持脚座標系から見た次次回歩容支持脚座標系の位置姿勢に基づいて決定される。より具体的には、第1旋回歩容終端遊脚足平位置姿勢は、その位置姿勢から足平22を接地させたまま、すべらないように該足平22を水平姿勢まで所定角度回転させたときの足平位置姿勢が、次回歩容支持脚座標系から見た次次回歩容支持脚座標系の位置姿勢に合致するように設定される。
【0137】
第1旋回歩容終端では、支持脚足平22は離床して空中にある。支持脚足平22が離床してから後の軌道を決定するために、第1旋回歩容支持脚足平着地予定位置姿勢が設定される。第1旋回歩容支持脚足平着地予定位置姿勢は、次回歩容支持脚座標系から見た次次次回歩容支持脚座標系の位置姿勢に基づいて設定される。より具体的には、第1旋回歩容支持脚足平着地予定位置姿勢は、次回歩容支持脚座標系から見た次次次回歩容支持脚座標系の位置姿勢である。なお、次次次回歩容支持脚座標系は、次次回歩容支持脚座標系と次次次回歩容支持脚座標系との相対的位置姿勢関係が、今回歩容支持脚座標系と次回歩容支持脚座標系との相対的位置姿勢関係と一致するように設定される。
【0138】
第1旋回歩容終端支持脚足平位置姿勢は、第1旋回歩容初期支持脚足平位置姿勢を求めた場合と同様に、第1旋回歩容初期支持脚足平位置姿勢から、前記第1旋回歩容支持脚足平着地予定位置姿勢に至る足平位置姿勢軌道(より詳しくは次回歩容支持脚座標系から見た軌道)を、第1旋回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。
【0139】
第2旋回歩容初期遊脚足平位置姿勢は、次次回歩容支持脚座標系から見た第1旋回歩容終端支持脚足平位置姿勢とされる。第2旋回歩容初期支持脚足平位置姿勢は、次次回歩容支持脚座標系から見た第1旋回歩容終端遊脚足平位置姿勢とされる。
【0140】
第2旋回歩容終端遊脚足平位置姿勢は、今回歩容支持脚座標系から見た今回歩容終端遊脚足平位置姿勢とされる。第2旋回歩容終端支持脚足平位置姿勢は、今回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。
【0141】
第1旋回歩容および第2旋回歩容の歩容周期は、次回歩容周期と同一に設定される。これらの第1旋回歩容及び第2旋回歩容の歩容周期は、互いに同一にすることは必ずしも必要ではないが、いずれの周期も、少なくとも次回歩容周期に応じて決定するのが好ましい。尚、今回歩容、第1旋回歩容および第2旋回歩容の上記以外の運動パラメータ(両脚支持期時間などの時間パラメータを含む)は、上記決定されたパラメータに応じて、歩容の条件(アクチュエータの速度が許容範囲に入っているか、可動角を超えていないか、床などと干渉していないかなど)を満足するように適宜決定する。
【0142】
次に、S102に進み、目標上体姿勢が追従すべき基準上体姿勢軌道を規定する基準上体姿勢軌道パラメータが決定される。基準上体姿勢は、定常歩容の初期(第1旋回歩容の初期)と終端(第2旋回歩容の終端)とでつながるように(定常歩容の初期、終端での基準上体姿勢の姿勢角及びその角速度が一致するように)に設定されている限り、一定姿勢である必要はないが、本実施形態では理解を容易にするため、基準上体姿勢は、直立姿勢(鉛直姿勢)に設定される。つまり、本実施形態では、基準上体姿勢は、定常歩容の全期間において直立姿勢に設定される。従って、本実施形態では、基準上体姿勢の姿勢角の角速度及び角加速度は0である。
【0143】
次に、S104に進み、腕姿勢軌道パラメータ、より詳しくは鉛直軸(あるいは上体体幹軸)まわりの両腕体の角運動量変化に関すること以外の腕姿勢軌道パラメータが決定される。たとえば、上体24に対する腕体の手先の相対高さや腕全体の相対重心位置などの腕姿勢軌道パラメータが決定される。尚、本実施形態では、腕全体の相対重心位置は、上体に対して一定に維持されるように設定される。
【0144】
次に、S106に進み、床反力鉛直成分軌道パラメータが設定される。この場合、該パラメータにより規定される床反力鉛直成分軌道が、第1旋回歩容および第2旋回歩容のいずれにおいても図6のように実質的に連続な(値がステップ状に飛ばない)ものとなるように床反力鉛直成分軌道パラメータが設定される。すなわち、定常旋回歩容の目標床反力鉛直成分軌道は図16のようなパターンで設定される。そのパターンでは、第1旋回歩容及び第2旋回歩容のいずれにおいても、片脚支持期では床反力鉛直成分が台形状に変化し、空中期では床反力鉛直成分が0に維持される。そして、このパターンの折れ点の時刻や、台形部分の高さ(ピーク値)が床反力鉛直成分軌道パラメータとして設定される。
【0145】
この床反力鉛直成分軌道パラメータの設定に際しては、床反力鉛直成分の歩容全期間(第1旋回歩容と第2旋回歩容両方の期間を合わせた期間で定常歩容の1周期の期間)における平均値をロボット1の自重と一致させる。すなわち、床反力鉛直成分の平均値がロボット1に作用する重力と同じ大きさで反対向きになるようにする。
【0146】
上記のごとく床反力鉛直成分軌道を設定することは、定常歩容の条件を満たすために必要である。定常歩容の条件とは、支持脚座標系(支持脚側足平22の接地面に設定された座標系)から見た歩容のあらゆる状態変数(ロボット1の各部の位置、姿勢、速度等)の初期状態(第1旋回歩容の初期状態)と次の支持脚座標系(次の第1旋回歩容の支持脚座標系)から見た歩容の終端状態(第2旋回歩容の終端状態)が一致していることである(以下、この条件を定常歩容の境界条件ということがある)。したがって、定常歩容終端におけるロボット1の全体重心鉛直速度と定常歩容初期における全体重心鉛直速度との差(詳細には、第2旋回歩容終端の全体重心鉛直速度と第1旋回歩容初期の全体重心鉛直速度との差)も零でなければならない。上記差は床反力鉛直成分と重力との差の積分値(1階積分値)であるから、上記差を零にするためには、上記のごとく床反力鉛直成分軌道を設定する必要がある。
【0147】
尚、本実施形態では、床反力鉛直成分の第1旋回歩容、第2旋回歩容それぞれの期間における平均値をロボット1の自重と一致させるようにした。より具体的には、例えば第1旋回歩容及び第2旋回歩容の歩容周期に応じて各旋回歩容における床反力鉛直成分軌道の台形部分の折れ点の時刻を設定した上で、その台形部分の高さを、床反力鉛直成分の第1旋回歩容、第2旋回歩容それぞれの期間における平均値がロボット1の自重と一致するように決定した(台形の高さを未知数として、上記平均値及び自重の一致条件を表す方程式を解くことで台形の高さを求める)。
【0148】
こうすることにより、第1旋回歩容終端の全体重心鉛直速度と第1旋回歩容初期の全体重心鉛直速度との差も0、第2旋回歩容終端の全体重心鉛直速度と第2旋回歩容初期の全体重心鉛直速度との差も0になる。ただし、このようにする必然性はない。例えば、第1旋回歩容と第2旋回歩容との境界あたりで上体鉛直位置が高くなり過ぎたり低くなり過ぎたりして無理な姿勢になりそうな場合には、各旋回歩容で上記平均値及び自重を一致させた状態から各旋回歩容の床反力鉛直成分軌道の台形の高さ等を修正するようにしてもよい。
【0149】
次に、S108に進み、上記のごとく図16のように設定された床反力鉛直成分軌道に応じて、床反力水平成分の許容範囲[Fxmin,Fxmax](より詳しくはこれを規定するパラメータ)が図17のように設定される。図17の負側の折れ線が床反力水平成分許容下限値Fxmin、正側の折れ線が床反力水平成分許容上限値Fxmaxを表す。これらの設定方法に関して以下に補足する。以下では、床面が水平である場合について説明する。
【0150】
床反力水平成分は、床と足平22との間の摩擦によって発生するが、摩擦はいくらでも発生できるわけではなく、限界がある。したがって、生成された目標歩容に従って実際のロボット1が移動した時にスリップしないようにするためには、目標歩容の床反力水平成分が、常に摩擦限界以内になければならない。そこで、この条件を満足させるために、床反力水平成分許容範囲を設定し、後述するように、目標歩容の床反力水平成分がこの許容範囲内になるように、目標歩容を生成することとした。
【0151】
床と足平22との間の摩擦係数をμとすると、Fxminは、常に−μ*床反力鉛直成分以上に、Fxmaxはμ*床反力鉛直成分以下に設定されなければならない。最も単純な設定方法は、次式による設定である。ただし、kaは1より小さい正の定数である。
図17の床反力水平成分許容範囲は、式12にしたがって設定した例である。床反力水平成分許容範囲を規定するパラメータとして、図17の台形波形などの折れ点での値と時刻を設定してもよいが、式12により床反力水平成分許容範囲を決定するときには、単に式12における(ka * μ)の値をパラメータとして設定するだけでも良い。
【0152】
尚、上記条件(目標歩容の床反力水平成分を常に摩擦限界以内にするという条件)を満足しているならば、他の設定方法で床反力水平成分許容範囲を設定するようにしても構わない。
【0153】
次に、S110に進み、第1旋回歩容および第2旋回歩容を合わせた定常歩容のZMP軌道を規定するZMP軌道パラメータが設定される。この場合、目標ZMP軌道は、前述したように安定余裕が高くかつ急激な変化をしないように設定される。
【0154】
さらに詳細には、図5の走行歩容においては、支持脚足平22のかかとで着地した後、しばらくして該支持脚足平22の底面のほぼ全面が接地し、さらにしばらくして、支持脚足平22のつま先だけが接地する。そして、次に支持脚足平22のつま先で蹴って空中に飛び上がり、最後に遊脚足平22のかかとで着地する。また、目標ZMPは接地面内に存在しなければならない。そこで、本実施形態では、定常歩容の第1旋回歩容及び第2旋回歩容のそれぞれの目標ZMPのX軸方向の位置は、前記図7の上段図に示したように、支持脚足平22のかかとを初期位置として、該足平22の底面のほぼ全体が接地するまでその位置に留まるように設定される。次に、目標ZMPは支持脚足平22の中央に移動し、該足平22がつま先接地状態になるまでにつま先に移動し、その後、離床時まで支持脚足平22のつまさきに留まるように設定される。さらにその後は、目標ZMPは、前述のごとく、次の遊脚足平22の着地までに目標ZMPが、支持脚足平22のつまさきから遊脚足平22のかかとの着地位置まで連続的に移動するように設定される。したがって、第1旋回歩容と第2旋回歩容とから成る定常歩容の目標ZMP軌道(X軸方向の軌道)は、図18のようになる。そして、この目標ZMP軌道の折れ点の時刻及び位置がZMP軌道パラメータとして設定される。この場合、折れ点の時刻は、前記要求パラメータに応じて定めた第1旋回歩容及び第2旋回歩容の歩容周期に応じて設定され、該折れ点の位置は、次回歩容支持脚座標系及び次次回歩容支持脚座標系の位置姿勢あるいはこれらの座標系を規定する要求パラメータの1歩目及び2歩目の遊脚側足平着地予定位置姿勢の要求値に応じて設定される。尚、ZMP軌道のY軸方向の位置は、前記図7の下段図に示したものと同様に設定される。より詳しくは、第1旋回歩容における目標ZMPのY軸方向位置の軌道は、図7の下段図のものと同一パターンで設定され、第2旋回歩容における目標ZMPのY軸方向位置の軌道は、第1旋回歩容のものと同じ形の軌道で、該軌道の終端につながるものに設定される。
【0155】
最後に、S112に進み、定常歩容1歩(1周期)の初期時刻、終端時刻、期間が以下のように再定義される。
【0156】
定常歩容は、その初期と終端での状態変数が連続的につながる歩容でなければならない。このような歩容の決定を容易にするために、本実施形態では、定常歩容を決定するまでは、前述の狭義の歩容の定義とは異なり、定常歩容の1歩の初期、終端、期間を便宜上、図16のように定める。すなわち、第1旋回歩容の片脚支持期の後半において床反力鉛直成分がある程度減少した時刻を定常歩容の初期時刻Tsとして設定する。なお、初期時刻Tsは、図7に示すように、支持脚足平22の底面のほぼ全面が接地した状態からつま先接地に変わる瞬間あるいはその直前の時刻(図7の足底全面接地期間の終了時刻もしくはその直前の時刻)に設定するのが望ましい。また、S110において設定した図18(または図7)に示す目標ZMPと時刻Tsとの関係を説明すると、第1旋回歩容において支持脚足平22の底面のほぼ全面が接地した後に、目標ZMPが支持脚足平22の中央に移動し、つま先接地状態になるまでにつま先に移動を完了した瞬間が、時刻Tsとなっているのが望ましい。このような初期時刻Tsは例えば先に設定した目標ZMP軌道パラメータに応じて設定される。上記のごとく初期時刻Tsを設定する理由は後述する。
【0157】
また、図16に示すように、定常歩容の周期Tcycは第1旋回歩容と第2旋回歩容の歩容周期の和である。定常歩容の終端時刻をTeとする。Teは、TsにTcycを加えた時刻に設定される。
【0158】
定常歩容が決定された時点(後述の図19のS204のループを抜けた時点)から、改めて、歩容の初期、終端等の定義を、前述の狭義の歩容の定義に戻すこととする。以下の説明では、前述の狭義の歩容の定義による初期時刻(支持脚側足平22の着地当初の時刻)を0とし、定常歩容を決定するまで用いる上記初期時刻Tsを参照符号Tsを用いて(単に「Ts」と省略することもある)本来の初期時刻0と区別する。
【0159】
図12のS010からS022までに示す処理が行われた後、S024に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度(水平方向での初期上体位置及び初期上体速度)、初期上体鉛直位置速度(鉛直方向での初期上体位置及び初期上体速度)、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、図19のフローチャートに従って、探索的に行なわれる。
【0160】
図19フローチャートにおいては、先ず、S200において、定常歩容の歩容パラメータ(前記図12のS022で設定したパラメータ)に基づいて、目標足平位置姿勢、目標腕姿勢、および目標上体姿勢角(姿勢角と方向)の初期状態(初期時刻Tsでの状態)が決定される。ここで状態とは、位置や姿勢角とその変化率(時間微分)とを表す。
【0161】
この場合、支持脚側の目標足平位置姿勢の初期状態は、前記図14のS100で決定した足平軌道パラメータの第1旋回歩容初期支持脚足平位置姿勢から、第2旋回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道(次回歩容支持脚座標系から見た軌道)を時刻Tsまで有限時間整定フィルタにより生成することにより決定される。遊脚側の目標足平位置姿勢の初期状態は、次回歩容支持脚座標系から見た今回歩容初期支持脚足平位置姿勢から、第1旋回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道を時刻Tsまで有限時間整定フィルタにより生成することにより決定される。また、目標腕姿勢の初期状態は、図14のS104で決定した腕姿勢軌道パラメータに基づいて時刻Tsにおける腕姿勢(上体24に対する両腕体の全体重心位置等)を求めることで決定される。また、目標上体姿勢角の初期状態は、図14のS102で決定した基準上体姿勢軌道パラメータにより定まる時刻Tsにおける基準上体姿勢(姿勢角)及びその角速度が該目標上体姿勢角の初期状態として決定される。なお、本実施形態では、基準状態姿勢角は鉛直姿勢であるので、目標上体姿勢角の初期状態(姿勢角及びその角速度)は0である。また、本実施形態では、定常歩容の目標足平位置姿勢軌道、床反力鉛直成分軌道、及び目標ZMP軌道は、それぞれ、図14のフローチャートで決定した足平軌道パラメータ、床反力鉛直成分軌道パラメータ、ZMP軌道パラメータにより互いに独立的に決定される。例えば定常歩容の瞬時瞬時の目標足平位置姿勢は、床反力鉛直成分の瞬時値に依存することなく足平軌道パラメータに応じて決定される。
【0162】
次いでS202において初期上体水平位置速度の候補(すなわち初期時刻Tsでの上体水平位置速度候補)である(Xs,Vxs)(Xs:水平位置、Vxs:水平速度)が仮決めされる。ここで仮決めする候補(Xs,Vxs)は、任意でよいが、例えば前回歩容の生成時に求めた定常歩容の初期状態における上体水平位置速度を仮決め候補(Xs,Vxs)とすればよい。
【0163】
尚、説明を簡略にするため、サジタルプレーン上でX方向(前後方向)での定常歩容の初期状態を探索する場合を例にとるが、実際には位置・速度ともX方向(前後方向),Y方向(左右方向)を別々にあるいは同時に定常歩容の初期状態(定常歩容の前記境界条件を満たす初期状態)を探索する必要がある。
【0164】
探索的な決定手法としては、擬似ヤコビアン(感度マトリックス)を求め、最急降下法などにより次候補を決定する方法や、シンプレックス法などを用いれば良い。本実施例では、最急降下法を用いる。
【0165】
次いで、S204を経てS206において、初期(時刻Ts)上体鉛直位置速度(Zs、Vzs)(Zs:鉛直位置、Vzs:鉛直速度)が決定される。
【0166】
初期上体鉛直速度Vzsは、本実施形態では以下のように解析的に決定される。
【0167】
ロボット1には、動力学的関係として、次式が成立する。
【0168】
また、定常歩容では、終端全体重心鉛直位置と初期全体重心鉛直位置は一致するので、上式13の右辺は零にならなければならない。したがって、これらの関係から初期全体重心鉛直速度を求めることができる。具体的には、まず、前記図14のS104で設定した床反力鉛直成分パラメータによって算出される床反力鉛直成分をロボット1の全体質量で割った値を1歩の期間(時刻Tsから時刻Teまで)2階積分することにより、床反力鉛直成分による全体重心移動量(式13の右辺第1項)が求められる。さらに、重力加速度を一歩の期間2階積分することにより、重力による全体重心移動量(式13の右辺第2項)が求められる。そして、上記求めた床反力による全体重心移動量と重力による全体重心移動量との和を符号反転し、これを1歩の時間(定常歩容の1周期Tcyclの時間)で割ることにより、初期全体重心鉛直速度が求められる。
【0169】
次に、初期上体鉛直位置Zsを求めるために、次式を用いて、時刻0の全体重心鉛直速度が求められる。この際、次式における時刻Tsの全体重心鉛直速度には、式13に基づいて上記の通り求めた値を代入し、積分期間は時刻0から時刻Tsまでとする。
【0170】
次に、本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法を用いて時刻0における(すなわち着地瞬間における)上体高さ(上体鉛直位置)が決定される。このとき、時刻0における足平位置姿勢(前記図14のS100で決定した第1旋回歩容初期(時刻0)支持脚足平位置姿勢及び第1旋回歩容初期(時刻0)遊脚足平位置姿勢)と、各脚体2の膝部の曲げ角に関する所定の幾何学的条件とに基づいて、時刻0での各脚体2,2の膝部が伸び切らないような上体鉛直位置(上体高さ)が決定される。具体的には、支持脚側脚体2の膝曲げ角をθsup、遊脚側脚体2の膝曲げ角をθswgとしたとき、例えばそれらの膝曲げ角θsup,θswgの正弦値の逆数の和がある所定値(有限値)になるように、上体鉛直位置が決定される。ここで、膝曲げ角θsup,θswgは、各脚体2の大腿部の軸心に対する下腿部の軸心の角度であり、各脚体2が伸びきった状態から膝部を曲げていくに伴い、0から増加していく角度である。なお、このような上体24の鉛直位置の決定手法は、上記特開平10−86080号公報に詳細に説明されているので、ここでは以上の説明に留める。
【0171】
次に、このように決定した時刻0における上体鉛直位置や、足平位置姿勢などから時刻0における全体重心鉛直位置がロボット1のモデルを用いて求められる。例えば図10のモデルに対応する前記式04のキネマティクスモデルを用いることで、時刻0における全体重心鉛直位置が求められる。具体的には、時刻0での上体鉛直位置と上体姿勢角(本実施形態では0)とから上体質点24mの鉛直位置が求められ、時刻0での支持脚足平位置姿勢及び遊脚足平位置姿勢(これらは、前記図14のS100で設定した第1旋回歩容初期支持脚足平位置姿勢及び第1旋回歩容初期遊脚足平位置姿勢である)とからそれぞれ支持脚質点2m及び遊脚質点2mの鉛直位置が求められる。そして、これらの求めた上体質点24m、支持脚質点2m及び遊脚質点2mの鉛直位置を、前記式04のZb、Zsup、Zswgに代入することで、全体重心鉛直位置(式04のZGtotal)が求められる。尚、ロボット1のより厳密なモデル(例えば図11に示すような多質点モデル)を用い、時刻0での上体水平位置や腕姿勢をも考慮して、時刻0での全体重心鉛直位置を求めるようにしてもよい。
【0172】
次に、前記式13において、上記求めた時刻0における全体重心鉛直位置を同式13の左辺の初期全体重心鉛直位置に代入し、上記求めた時刻0の全体重心鉛直速度を同式13の右辺の初期全体重心鉛直速度に代入し、さらに、同式13の1歩の時間をTsとし、積分期間を時刻0から時刻Tsまでとすることで、式13の左辺の終端全体重心鉛直位置の値が算出され、この算出値が初期(時刻Ts)全体重心鉛直位置として得られる。さらに、この求めた初期(時刻Ts)全体重心鉛直位置と時刻Tsにおける足平位置姿勢(S200で求めたもの)などから、ロボット1のモデル(例えば式04のキネマティクスモデル)を用いて、初期(時刻Ts)上体鉛直位置Zsが求められる。具体的には、時刻Tsにおける支持脚及び遊脚の各平位置姿勢から、図10のモデルの支持脚質点2m及び遊脚質点2mの鉛直位置が求められ、これらの鉛直位置と、上記求めた初期(時刻Ts)全体重心鉛直位置とを式04に適用することで、上体質点24mの鉛直位置(式04のZb)が求められる。そして、この上体質点24mの鉛直位置と時刻Tsでの上体姿勢(本実施形態では0)とから逆算的に初期(時刻Ts)上体鉛直位置Zsが求められる。尚、この場合も、より厳密なモデルを用い、上体水平位置や腕姿勢をも考慮して初期上体鉛直位置Zsを求めるようにしてもよい。
【0173】
最後に、前記S200で決定した足平位置姿勢の初期状態や、S206で求めた初期全体重心鉛直速度等から、ロボット1のモデル(例えば式04のキネマティクスモデル)を用いて、初期上体鉛直速度が求められる。具体的には、式04の両辺を時間微分してなる式に、前記式13に基づいて求めた初期全体重心鉛直速度と、支持脚側及び遊脚側の各足平位置姿勢の初期状態により定まる支持脚質点2m及び遊脚質点2mの鉛直速度とを適用することで、上体質点24mの鉛直速度が求められる。そして、この上体質点24mの鉛直速度と上体姿勢角の初期状態(S200もしくは後述のS208で決定されたもの)とから、上体鉛直速度が求められる。尚、各足平位置姿勢の初期状態や、初期全体重心鉛直速度のほか、腕姿勢の初期状態(S200で決定されたもの)、仮決定した上体水平位置の初期状態(S202もしくは後述のS216もしくはS218で仮決定された最新のもの)、上記求めた初期上体鉛直位置を考慮し、上記求めた初期全体重心鉛直速度を満足するような初期上体鉛直速度を、ロボット1のより厳密なモデルを用いて求めるようにしてもよい。
【0174】
補足すると、ロボット1のモデルが図11のような複雑なもの(厳密なモデル)であっても、ロボット1は、片脚当たり6自由度であることから、足平位置姿勢軌道および上体位置姿勢軌道の初期状態(位置姿勢とその変化率)が与えられれば、ロボットの初期状態は一義的にすべて決定されることになる。したがって、初期全体重心鉛直速度もこれらが与えられれば一義的に決定される。逆に、片脚当たり6自由度であることから、足平位置姿勢軌道および上体位置姿勢軌道の初期状態の内で速度に関する状態のひとつ(例えば初期上体鉛直速度)が未定であっても、初期全体重心鉛直速度が与えられれば、未定の初期状態は一義的に決定される。
【0175】
S206の処理の後、次いでS208に進み、定常旋回歩容が仮に生成される。より具体的には、前記図12のS022で決定した定常歩容の歩容パラメータを基に、初期時刻Tsから終端時刻Teまでの各瞬間における目標ZMP、目標床反力鉛直成分、目標足平位置姿勢、基準上体姿勢、目標腕姿勢および床反力水平成分許容範囲が逐次求められる。そして、求めた目標ZMPと目標床反力鉛直成分とに関する動力学的平衡条件、並びに床反力水平成分許容範囲の条件を満足するように、前記動力学モデル(図10のモデル)を用いて、前記上体水平位置速度(Xs,Vxs)、上体鉛直位置速度(Zs、Vzs)を上体24の初期(時刻Ts)状態として、上体位置姿勢を逐次決定することによって、時刻Tsから終端時刻Teまでの歩容を生成する。また、この時、上体姿勢は、基準上体姿勢になるべく一致するように生成される。
【0176】
尚、この定常歩容の歩容生成は歩容生成装置100の内部で行われるだけであって、実際のロボット1を駆動するための目標値として、後述する複合コンプライアンス動作決定部104に出力されることはない。
【0177】
以下に、S208の処理である逐次演算による定常歩容生成処理の詳細を説明する。
【0178】
図20はその処理を示すサブルーチンフローチャートである。
【0179】
以下説明すると、S300において、諸々の初期化が行われる。具体的には、仮歩容生成用時刻kに初期時刻Tsを代入する。さらに、上体水平位置速度に、現在仮決定されている(Xs,Vxs)(図19のS202もしくは後述のS216もしくはS218で決定されたもの)が代入され、上体鉛直位置速度に、前記S206で求めた最新の(Zs、Vzs)が代入される。また、目標上体姿勢角には、基準上体姿勢角初期値(時刻Tsでの基準上体姿勢角)、目標上体姿勢角速度には、基準上体姿勢角速度初期値(時刻Tsでの基準上体姿勢角速度)を代入する。補足すると、後述するごとく最終的には初期目標上体姿勢角速度は変更されるので、基準上体姿勢角速度初期値と異なる値を代入しても良い。
【0180】
次いで、S302を経てS304において、仮歩容生成用時刻kが歩容終端時刻以前であるか否か(k ≦ Ts + Tcycであるか否か)が判断され、その判断結果がYESである場合には、S306の歩容瞬時値決定サブルーチンに進み、歩容瞬時値が決定される。次いで歩容生成装置100の処理は、S308に進み、仮歩容生成用時刻kをΔkだけ増やした後、S304に戻る。
【0181】
ここで、Δkは、仮歩容生成のインターバルであり、通常、制御周期Δtと一致させておけば良い。なお、Δkは、仮歩容の動力学的精度を落としても良いならば、演算量を低減するために、ΔkをΔtよりも長く設定しても良い。
【0182】
S304の判断結果がNOである場合には、S310に進む。以上の処理により、S310に進むまでに定常歩容が初期から終端まで生成される。
【0183】
以下に、S306の歩容瞬時値決定サブルーチンの詳細を図21を参照して説明する。
【0184】
まず図21のS400において、定常歩容パラメータ(床反力鉛直成分軌道パラメータ)を基に、前記図16に示した目標床反力鉛直成分の時刻kにおける値(今回値)が求められる。さらに、S402において、定常歩容パラメータ(ZMP軌道パラメータ)を基に、前記図18に示した目標ZMP軌道の時刻kにおける値(今回値)が求められる。
【0185】
次いでS404に進み、定常歩容パラメータ(足平軌道パラメータ、基準上体姿勢軌道パラメータ、及び腕姿勢軌道パラメータ)を基に、時刻kにおける目標両足平位置姿勢(支持脚側及び遊脚側の両者の目標足平位置姿勢)、基準上体姿勢および目標腕姿勢の値(今回値)が求められる。ただし、目標腕姿勢に関しては、より詳しくは両腕体の全体重心位置が決定されるが、鉛直軸(または上体体幹軸)まわりの角運動量を変化させる腕体の運動(腕振り運動)は、未だ決定されていない。尚、目標足平位置姿勢の今回値(時刻kでの値)は、前記図19のS200で初期時刻Tsでの足平位置姿勢を求めた場合と同様に求められる。
【0186】
次いでS406に進み、目標床反力鉛直成分を満足する(ロボット1の鉛直方向の慣性力と重力との和を目標床反力鉛直成分に釣り合わせる)ような時刻kにおける全体重心鉛直位置速度の値(今回値)が算出される。具体的には、例えば前記図10の動力学モデルに係わる前記式01と式04とに基づいて、全体重心鉛直位置速度が算出される。すなわち、式01と式04とによれば、ロボット1の運動による全体重心鉛直加速度と重力加速度との和にロボット1の全体質量を乗算したものが床反力鉛直成分に等しいという関係式(ロボット1の全体重心の鉛直方向に関する運動方程式)が得られる。従って、この関係式と目標床反力鉛直成分とから、全体重心鉛直加速度が求められる。
【0187】
尚、この関係式自体は、ロボット1のモデルに依存することなく一般的に成立するものである。そして、この求めた全体鉛直加速度を積分することにより、全体重心鉛直速度が算出され、さらにその全体重心鉛直速度を積分することにより、全体重心鉛直位置が算出される。これらの算出は、より一般的には、次式15および式16で表される動力学関係式(ニュートンの運動方程式を離散化した式)を用いて行なわれる。
【0188】
次いでS408に進み、全体重心鉛直位置を満足する上体鉛直位置が算出される。具体的には、例えば前記図10のモデルに係わる式04を用いて上体鉛直位置が算出される。すなわち、支持脚側及び遊脚側の目標足平位置姿勢の今回値から、図10のモデルの支持脚質点2m及び遊脚質点2mの鉛直位置が求められる。そして、これらの求めた支持脚質点2m及び遊脚質点2mの鉛直位置と、S407で求めた全体重心鉛直位置の今回値とを式04に適用することで、上体質点24mの鉛直位置が求められる。さらに、この求めた上体質点24mの鉛直位置と目標上体姿勢角の現在値(S404で設定された基準上体姿勢角または後述のS414で決定された前回(時刻k−Δk)の目標上体姿勢角)とから上体鉛直位置が求められる。
【0189】
尚、より厳密なモデル(例えば図11に示すようにロボット1の各リンクに対応する質点をもたせたようなモデル)を用いて上体鉛直位置を求めてもよい。この場合には、前記求めた目標両足平位置姿勢の今回値(時刻kの値)、時刻(k−Δk)の目標上体姿勢(または前記求めた基準上体姿勢の今回値)、前記求めた目標腕姿勢(両腕の重心位置)の今回値、時刻(k−Δk)の上体水平位置と、求めたい上体鉛直位置とから決定される全体重心鉛直位置が、前記求めた全体重心鉛直位置の今回値に一致するように上体鉛直位置が求められる。
【0190】
この場合、時刻kの上体姿勢と上体水平位置は、未だ決定されていないので、代わりに時刻(k−Δk)の値を用いた。より精度を高めるために、時刻kでの推定値を、時刻(k−Δk)での歩容状態から外挿によって求めても良い。
【0191】
次いでS410に進み、前記図14のS108で決定した歩容パラメータ(床反力水平成分許容範囲を規定するパラメータ)に基づいて、図17に示した床反力水平成分許容範囲[Fxmin,Fxmax]の時刻kにおける値(今回値)が求められる。
【0192】
次いでS412に進み、目標ZMPに関する動力学的平衡条件(ロボット1の慣性力と重力との合力が目標ZMPまわりに発生するモーメントの水平成分が0であるという条件)を満足するように、上体水平加速度と上体姿勢角加速度との今回値が決定される。ただし、床反力水平成分Fxが[Fxmin,Fxmax]を越えず、かつ、上体姿勢角速度が定常歩容の初期と終端とで一致するように、上体水平加速度と上体姿勢角加速度とが決定される。以下にこの詳細を説明する。
【0193】
この時点において、前記の如く足平位置姿勢および上体鉛直位置の瞬時値(今回値)が決定されているので、残りの上体水平位置と上体姿勢角とを決定すれば、鉛直軸まわりの角運動量を変化させる腕体の運動自由度を除いて、ロボット1の目標運動は一義的に決定できる。したがって、上体水平位置と上体姿勢角とを決定すれば、床反力の鉛直軸まわりのモーメントを除き、すべての床反力も一義的に決定される。なお、本実施形態では、定常歩容の目標床反力鉛直成分及び目標ZMPは、それぞれ前記図12のS022で決定した床反力鉛直成分軌道パラメータ及び目標ZMP軌道パラメータによって規定される。したがって、上体水平位置と上体姿勢角の決定に応じて従属的に決定される床反力は、床反力水平成分のみである。また、補足すると、前述したように、ロボット1は片脚当たり6自由度であることから、目標足平位置姿勢と目標上体位置姿勢とから脚体2の各部の位置姿勢は一義的に決定される。なお、鉛直軸まわりの角運動量を変化させる腕の運動自由度は、後述するように、スピン力を打ち消すために用いられる。
【0194】
ところで、歩容生成において、前記上体並進モードをあまり用いずに主に上体回転モードを用いることにより、目標ZMPを満足させる(目標ZMPまわりの床反力モーメントの水平成分を0にする)と、上体姿勢角が大きく振れ過ぎてしまう恐れがある。したがって、これを防ぐためには、なるべく上体並進モードを用いるべきである。しかし、上体並進モードは、床反力水平成分の変化を伴うので、床反力水平成分許容範囲が狭い場合には、上体並進モードを強く働かせるとスリップする恐れがある。この場合には、上体回転モードに頼るしかない。特に、前記走行歩容のように床反力水平成分許容範囲が0となる期間では、床反力水平成分を発生させるような歩容を生成することはできないので、上体回転モードに頼らざるを得ない。以上のことを考慮し、本実施形態では、図22に示すフローチャートに従って、上体水平加速度と上体姿勢角加速度とが決定される。
【0195】
まず、S500において、初期時刻Tsから第1旋回歩容の空中期を経て第2旋回歩容になり、床反力鉛直成分がある所定の大きさまで増加した時刻Tmが設定される。さらに、第2旋回歩容の片脚支持期の後半において床反力鉛直成分がある程度減少した時刻Ts2が設定される。さらに、第2旋回歩容の空中期を経て第1旋回歩容になり、床反力鉛直成分がある所定の大きさまで増加した時刻Tm2が設定される。
【0196】
図16にこれらの時刻を示す。時刻Tmは、支持脚足平22の底面のほぼ全面が接地した瞬間あるいはその直後に設定するのが望ましい。時刻Tm2も同様である。また、時刻Ts2は、前記初期時刻Ts同様、足平22の底面のほぼ全面が接地した状態からつま先接地に変わる瞬間あるいはその直前に設定するのが望ましい。
【0197】
また、前記図14のS110において設定した図18の目標ZMPとこれらの時刻Tm,Ts2,Tm2との関係を説明すると、第2旋回歩容において、目標ZMPが、支持脚足平22のかかとを初期位置として、該足平22の底面のほぼ全体が接地するまでその位置に留まり、次に支持脚足平22の中央に移動し始める瞬間を時刻Tmとすることが望ましい。その後、支持脚足平22のつま先だけ接地した状態になるまでに、目標ZMPがつま先に移動を完了した瞬間を、時刻Ts2とすることが望ましい。さらに次の第1旋回歩容において、目標ZMPが、支持脚足平22のかかとを初期位置として該足平22の底面のほぼ全体が接地するまでその位置に留まり、次に支持脚足平22の中央に移動し始める瞬間を時刻Tm2とすることが望ましい。
【0198】
上記のごとく設定する理由は後述する。
【0199】
次にS502において現在時刻(定常歩容作成用タイマーの値)kが、時刻TsからTmの間または時刻Ts2からTm2の間にあるか否かが判定される。S502の判定結果がYESであるならば、S504に進み、NOであるならばS518に進む。
【0200】
S504では、ロボット1の前回瞬時歩容状態(時刻k−1の歩容状態)から、仮に、上体回転モードの角加速度を0にして、上体並進モードの運動をロボット1にさせた場合に今回(時刻k)の目標ZMPを満足するために必要な上体水平加速度αtmpが求められる。このαtmpは、例えば前記図10の動力学モデルに係わる前記式03を用いて求められる。より具体的には、例えば、現在時刻kまでに求められた目標足平位置姿勢の時系列値を用いて、現在時刻kにおける支持脚質点2m及び遊脚質点2mの鉛直加速度が求められると共に、現在時刻k(今回)の目標足平位置姿勢を用いて支持脚質点2m及び遊脚質点2mの鉛直位置が求められる。また、現在時刻k(今回)の床反力鉛直位置を用いて上体質点24mの鉛直位置が求められると共に、現在時刻kまでに求めた目標上体鉛直位置の時系列値を用いて現在時刻kにおける上体質点24mの鉛直加速度が求められる。そして、これらの求めた値を前記式03に代入すると共に、同式03のMy、d2θby/dt2を0にしてなる式を、d2Xb/dt2について解くことにより、上体質点水平加速度d2Xb/dt2が上体水平加速度αtmpとして求められる。尚、より厳密な動力学モデルを用いて、目標ZMP回りの床反力モーメントの水平成分を零にするような上体水平加速度αtmpを探索的に求めるようにしてもよい。また、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が0であるため、上体回転モードの角加速度を0にして上体水平加速度αtmpを求めるようにした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合で、それにより定まる現在時刻kにおける基準上体姿勢角加速度が0でない場合には、上体回転モードの角加速度をその0でない基準上体姿勢角加速度の値にして、上体水平加速度αtmpを動力学モデルを用いて求める(例えば式03のd2θby/dt2を0でない基準上体姿勢角加速度に設定して上記と同様に上体水平加速度αtmpを求める)ようにすればよい。
【0201】
次に、S506に進み、上体水平加速度がαtmpの場合の時刻kにおける床反力水平成分Fxtmpが動力学モデルを用いて求められる。本実施形態においては、前記動力学モデルの式02を用いてFxtmpが求められる。すなわち、次式17によってFxtmpが求められる。但し、d2Xsup/dt2およびd2Xswg/dt2はそれぞれ時刻kにおける支持脚足平質点水平加速度、遊脚足平質点水平加速度を表す。
【0202】
このようにして求められるFxtmpの例を図23に示す。図23に、Fxtmpが床反力水平成分許容範囲[Fxmin,Fxmax]を越えている部分を斜線で示す。
【0203】
次に、S508に進み、上体並進モードの上体水平加速度α、これによって発生する床反力水平成分Fx、上体回転モードの上体角加速度βが次のように決定される(S508〜S516)。
すなわち、
Fxtmp > Fxmaxならば、S510に進み、次式によりFxが決定される。
【0204】
Fx = Fxmax …式18
Fxtmp < Fxminならば、S512に進み、次式によりFxが決定される。
【0205】
Fx = Fxmin …式19
それ以外、すなわち、Fxtmpが、床反力水平成分許容範囲[Fxmin,Fxmax]内に存するならば、S514に進み、次式によりFxが決定される。
【0206】
Fx = Fxtmp …式20
いずれの場合においても、次いでS516に進み、次式により上体水平加速度α、上体姿勢角加速度βが決定される。
【0207】
α =αtmp + (Fx−Fxtmp)/ ΔFp …式21
β = (αtmp−α) *ΔMp /ΔMr …式22
ただし、ΔFp、ΔMpおよびΔMrはそれぞれ前記式06、07、および式09により決定される。
【0208】
補足すると、より動力学演算の精度を高めようとするならば、上記のごとく上体角加速度βを求めた後、上体並進モードと上記求めた上体角加速度βの上体回転モードとを合成した運動が目標ZMPを満足するように、上体並進モードの上体水平加速度αを、より厳密な動力学モデルを用いて解析的あるいは探索的に決定した方が良い。なお、探索的な決定法としては、擬似ヤコビアン(感度マトリックス)を求め、擬似ニュートン法などにより次候補を決定する方法や、シンプレックス法などを用いれば良い。
【0209】
さらに床反力水平成分Fxが床反力水平成分許容範囲[Fxmin,Fxmax]を厳密に越えないようにするために、S510においては、Fx = Fxmax かつ目標ZMPまわりの床反力モーメントの水平成分が0になるように、S512においては、Fx = Fxmin かつ目標ZMPまわりの床反力モーメントの水平成分が0になるように、上体水平加速度αと上体角加速度βとの組を探索的に求めても良い。
【0210】
上記のように求められるFxを図24に示す。Fxは、Fxtmpの値を床反力水平成分許容範囲[Fxmin,Fxmax]から越えないように制限(飽和)させたものになっている。より詳しくは、上体並進モードのみによる上体水平加速度αtmpに応じたFxtmpが許容範囲[Fxmin,Fxmax]内にある場合には、FxtmpがそのままFxとなる。また、上体並進モードのみによる上体水平加速度αtmpに応じたFxtmpが許容範囲[Fxmin,Fxmax]の上限を超え、もしくは下限を下回った場合には、それぞれFxは、それぞれ強制的にFxmax、Fxminに制限される。特に走行歩容の空中期では、常に、Fxmax=Fxmin=0であるので、Fx=0となる。
【0211】
また、上記のように求められる上体姿勢角加速度βを図25に示す。上体並進モードによって発生するFxが許容範囲[Fxmin,Fxmax]を越えないように、上体並進モードの加速度を制限したことによって不足した床反力モーメント(より詳しくは目標ZMP回りの床反力モーメントの水平成分を0にする上で必要な慣性力モーメントから、制限した上体水平運動と両脚体2,2の運動とによるモーメント成分を差し引いたモーメント)を、上体回転モードで補ったことになる。なお、走行歩容の空中期では、上体並進モードによる上体水平加速度αは常に0に制限されることとなるので、上体回転モードによる上体姿勢角加速度βのみによって、上記不足分の床反力モーメントが補われることとなる。
【0212】
以上が、時刻kが時刻TsからTmの間または時刻Ts2からTm2の間の場合の処理である。
【0213】
S502の判定結果がNOである場合には以下の処理が行われる。まず、S518に進み、上体姿勢角速度を、現在時刻kが時刻Ts2以前ならば時刻Ts2までに、そうでないならば時刻Teまでに、初期値(現在時刻kが時刻Ts2以前ならば時刻Tsでの値、そうでないならば時刻Ts2での値)に戻すための上体姿勢角加速度を発生させる床反力モーメントのZMP換算値(以降、上体姿勢復元モーメントZMP換算値と呼び、ZMPrecと略す)のパターンを設定する。
【0214】
これについて以下に詳細に説明する。現在時刻kが時刻Tm2以降の時期の処理は、時刻Ts2以前の時期の処理と同様なので、現在時刻kが時刻Ts2以前までの時期の処理だけを解説する。
【0215】
時刻Tmから時刻Ts2までに、上体回転モードを用いて上体姿勢角加速度を発生させることにより、上体姿勢角速度を初期値(時刻Tsでの値)に戻すことを考える。このための上体姿勢角加速度パターンを、β(k)とする。
【0216】
上体回転モードでは、上体姿勢角加速度β(k)を発生させようとすると、床反力モーメントβ(k)*ΔMrが発生する。この結果、その瞬間における床反力鉛直成分がFz(k)であるとすると、(目標ZMPでなく)運動から算出されるZMP(k)は、次式で求められるΔZMPだけずれる。
【0217】
ΔZMP(k) =−β(k)*ΔMr/Fz(k) …式23
したがって、ΔMrのパターンとFz(k)のパターンが決まっていれば(既知であれば)、ΔZMP(k)のパターンを適当に設定することによって、式23を満足する上体姿勢角加速度パターンを発生させて、上体姿勢角速度を初期値(時刻Tsでの値)、すなわち基準上体姿勢軌道の初期(時刻Ts)状態における上体姿勢角速度に戻すことができる。
【0218】
前記上体姿勢復元モーメントZMP換算値(ZMPrec)は、そのように適切に設定されたΔZMP(k)を意味する。前記式23を用いて上体姿勢復元モーメントZMP換算値を設定する際に、ΔMrは厳密には変動するが、近似的に一定値としても良い。定常歩容は仮に生成されるだけであり、実際のロボットをこの歩容に追従させるわけではないので、定常歩容の動力学的精度はあまり高くなくても良いからである。
【0219】
図26にZMPrecの一例を示す。図26では、そのパターンは台形パターンとされている。その台形部の折れ点の時刻は、時刻Tmと時刻Ts2との間の期間における目標ZMPパターンの折れ点の時刻(図18参照)に一致させてある。これは、後述するが、今回歩容の目標ZMPパターンの修正が簡単になるからである。式23のΔZMP(k)にZMPrecを代入することにより次式が得られる。
【0220】
β(k) =−ZMPrec* Fz(k)/ΔMr …式24
したがって、この式24で求められるβ(k)は、図27の実線で示すようになる。なお、図27の点線で示すものは、時刻Tsから時刻Tmまでの上体姿勢角加速度(図25の実線示のもの)である。
【0221】
ところで、定常歩容では、時刻Ts2での上体姿勢角速度が時刻Tsでの上体姿勢角速度に一致していることが望ましい。一致していると、上体姿勢角の変動が小さくなるからである。
【0222】
そこで、時刻Ts2での上体姿勢角速度を時刻Tsでの上体姿勢角速度に一致させるため、時刻TsからTs2までの上体姿勢角加速度βの積分値が0になるように、上体姿勢角加速度パターンを設定する。すなわち、時刻Tmから時刻Ts2までの期間のβ(k)の積分値(図27の実線部の積分値)が、時刻Tsから時刻Tmまでの上体姿勢角加速度(これは図22のS504〜S516で前述のように求められる)の積分値(図27の点線部の積分値、言い換えれば時刻Tmにおける上体姿勢角速度と時刻Tsにおける上体姿勢角速度の差)に−1を乗じた値になるように設定される。
【0223】
より具体的には、本実施形態では、図26のZMPrecの台形パターンにおいて、台形の折れ点の時刻(これは前述のように定常歩容の目標ZMP軌道に基づいて決定される)を既知とし、台形高さを未知数とすることで、上記関係を満足するZMPrecの台形高さ(ZMPrecパターンを規定するパラメータ)が求められる。
【0224】
第1旋回歩容におけるZMPrecの台形高さを第1旋回歩容上体姿勢復元モーメントZMP換算値台形高さacyc1と呼ぶ。第2旋回歩容におけるZMPrecの台形高さを第2旋回歩容上体姿勢復元モーメントZMP換算値台形高さacyc2と呼ぶ。なお、第2旋回歩容におけるZMPrecは、時刻Tm2からTeまでの期間で設定される台形パターンである。
【0225】
補足すると、今回歩容を1歩生成している途中で歩容パラメータが変更されない限り、時刻TmとTs2との間の期間、又は時刻Tm2とTeとの間の期間においてS518で決定されるZMPrecパターンは変わらない(同一パラメータ値が算出される)ので、S518の処理は、時刻Tmと時刻Tm2でのみ実行しても良い。
【0226】
次いでS520に進み、時刻kにおける上体姿勢復元モーメントZMP換算値ZMPrecの瞬間値(今回値)が、上記のごとく決定したパラメータ(台形高さ)を基に算出される。
【0227】
次いでS522に進み、前記式24を用いて、時刻kにおける上記上体姿勢角加速度パターンの瞬間値(今回値)βが算出される。
【0228】
次いでS524に進み、ロボットの前回瞬時目標歩容状態(時刻k−1の目標歩容状態)から、仮に上体回転モードをさせずに上体並進モードの運動のみをさせた場合に、今回(時刻k)の目標ZMPを満足するために必要な上体水平加速度αtmpが、ロボット1の動力学モデルを用いて求められる。この算出は、S504と同様に行なわれる。
【0229】
次いでS526に進み、次式を用いて、上体並進モードの上体水平加速度αが算出される。
【0230】
α = αtmp−(ΔMr /ΔMp)* β …式25
さらにS528に進み、上体水平加速度が上記の如く求めたαである場合の時刻kにおける床反力水平成分Fxが、前記式17と同様の次式26によって求められる。
【0231】
補足すると、より動力学演算の精度を高めようとするならば、上記のごとく上体角加速度βを求めた後、S526において、式25を用いた上体水平加速度αの算出を実行する代わりに、S516の補足で解説した手法と同様、上体並進モードと上記求めた上体角加速度βの上体回転モードを合成した運動が目標ZMPを満足するように、上体並進モードの上体水平加速度αを、より厳密な動力学モデルを用いて、解析的あるいは探索的に決定した方が良い。
【0232】
以上が、時刻kが時刻TsからTmの間または時刻Ts2からTm2の間のいずれでもない場合の処理である。
【0233】
以上の処理を時刻Ts2まで完了した時の、床反力水平成分Fxを図28に示す。さらに、以上の処理を時刻Teまで完了した時の、床反力水平成分Fxを図29に、上体姿勢角加速度βを図30に示す。なお、以上に示したS412の処理(上体水平加速度と上体姿勢角加速度を決定するサブルーチン)は、時刻kにおける上体水平加速度と上体姿勢角加速度の瞬間値が決定されるのであって、時刻Teまでのこれらの時系列が一度に生成されるわけではない。
【0234】
なお、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が0であるため、上記の如く求めた上体回転モードの角加速度βをS412の処理で決定される上体姿勢角加速度とした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合には、上記の如く求めた上体回転モードの角加速度βと基準上体姿勢角加速度の和をもって、S412の処理で決定される上体姿勢角加速度とすべきである。
【0235】
時刻Ts、Tm、Ts2およびTm2を前記のごとく設定した理由は、時刻TmからTs2までの期間と時刻Tm2からTeまでの期間とにおいて、上体姿勢角速度を基準上体姿勢軌道の初期角速度に戻すように上体姿勢角加速度βを発生させても、床反力水平成分Fxが許容範囲[Fxmin,Fxmax]を越えないようにするためである。換言すれば、時刻TmからTs2までの期間と時刻Tm2からTeまでの期間とにおいては、床反力水平成分許容範囲が十分に大きいため、目標ZMPを満足しつつ、上体姿勢角速度を戻すように上体姿勢角加速度βを発生させても、床反力水平成分Fxは、許容範囲を越えることがない。
【0236】
また、時刻Tsでの上体姿勢角速度を時刻Tsでの上体姿勢角速度に一致させることを考えず、acyc1とacyc2を同一値として(acyc1=acyc2として)、時刻Teでの上体姿勢角速度と時刻Tsでの上体姿勢角速度に一致させるようにacyc1およびacyc2の値を決定しても良い。
【0237】
次いで図21のS414に進み、S412で求めた上体水平加速度を逐次積分する(時刻Tsから現在時刻kまで累積加算する)ことにより上体水平速度が求められ、さらにその上体水平速度を逐次積分する(時刻Tsから現在時刻kまで累積加算する)ことにより、上体水平位置(今回値)が求められる。また、S412で求めた上体姿勢角加速度を逐次積分する(時刻Tsから現在時刻kまで累積加算する)ことにより上体姿勢角速度が求められ、さらにその上体姿勢角速度を逐次積分する(時刻Tsから現在時刻kまで累積加算する)ことにより、上体姿勢角(今回値)が求められる。
【0238】
以上のごとく図20のS306の定常歩容瞬時値決定サブルーチンが実行された後、S308に進み、歩容生成用時刻kの値が歩容生成インターバルΔkだけ増加される。次いでS304に戻り、S304に示す条件が成立している限り、S306とS308の処理が繰り返され、S304に示す条件が成立しなくなったら、すなわち終端(時刻Te=Ts+Tcyc)まで仮定常歩容の生成が完了したら、S310に進む。S310では、次式に従って初期(時刻Ts)上体姿勢角と初期(時刻Ts)上体姿勢角速度が、上記求めた仮歩容の終端(時刻Te)上体姿勢角などを基に修正される。この修正は、上体姿勢角及びその角速度に関する定常歩容の境界条件(定常歩容の初期と終端とで上体姿勢角及び角速度を一致させる)を満たすようにするためのものである。尚、ここでの説明では、ロボット1の歩容は、該ロボット1を直線的に移動させる歩容であるとする。
【0239】
この場合、次式の新たな値が修正された値である。
【0240】
ここで、上記式30により初期状態姿勢角速度を修正する理由を以下に説明する。定常歩容では、それを繰り返したときに境界でロボット1の運動状態が不連続にならないように(前記境界条件を満たすように)初期状態姿勢角及びその角速度を決定する必要がある。この場合、上述のように求めた仮定常歩容の終端上体姿勢角速度は、前述した上体姿勢復元モーメントZMP換算値ZMPrecに対応する上体姿勢角加速度パターンの設定によって、初期上体姿勢角速度初期値(基準上体姿勢角速度初期値)に一致するように生成されているので、残りの条件である次式を満たせば、上体姿勢角及び角速度に関する上記条件を満足する。
【0241】
終端上体姿勢角 = 初期上体姿勢角 …式32
また、
上体姿勢角の2階微分 = 上体姿勢角加速度 …式33
であるから、この式33の両辺を定常歩容の初期から終端まで2階積分することにより、次式の関係を得る。
【0242】
一方、定常歩容生成においては、前記の如く目標ZMPを満足するために、基本的には上体並進運動モードを用いて上体24の水平加速度(水平加減速)を調整するが、目標ZMPを満足するための上体24の水平加速度が、十分に発生できない状況(十分な摩擦力が発生できない状況)では、上体回転運動モードを用いて全体重心加速度が変わらないようにしつつ上体姿勢角の角加速度を調整することで、上体並進運動モードによる上体水平加速度の不足分が補われる。
【0243】
上記上体回転運動モードを用いて上体姿勢角加速度を調整する動作は、図10に示すフライホイールFHが備わったロボット1において、そのフライホイールFHの角加速度を調整することと近似的に等価である。フライホイールFHの回転速度が0に近いならば、ジャイロ効果は発生せず、フライホイールFHが発生する力は、フライホイールFHの角加速度だけで決定される。したがって、上体24にフライホイールFHが備わったロボット1においては、フライホイールFHの初期角度・角速度が多少変わっても、該フライホイールFHを同じパターンの角加速度で動かせば、発生する力はほとんど変わらない。それ故、ロボット動力学方程式である式01、式02、式03ではジャイロ効果を無視している。したがって、本実施形態のロボット1において、式01、式02、式03、あるいは、より一般的で厳密な動力学モデルのいずれを用いた場合でも、全体重心加速度が変わらないようにしつつ上体姿勢角を同じパターンの角加速度で動かせば(すなわち上体回転運動モードを用いて、上体姿勢角を同じパターンの角加速度で動かせば)、初期上体姿勢角度・角速度を少々変えても、発生する慣性力と重力との合力はほぼ同じになる。言い換えれば、初期上体姿勢角度・角速度を少々変えても、上記のフローチャートに従って生成される歩容の上体姿勢角加速度は同じになる。
【0244】
つまり、式34における上体姿勢角加速度の2階積分値は、初期上体姿勢角度・角速度に依存しなくなる。すなわち、式34における上体姿勢角加速度の2階積分値は、初期上体姿勢角度・角速度の値に関わらず、一定値として扱うことができる。
【0245】
初期上体姿勢角の値が仮歩容の初期上体姿勢角、かつ初期上体姿勢角速度の値が仮歩容の初期上体姿勢角速度であった場合に、終端上体姿勢角が仮歩容の終端上体姿勢角になったのであるから、この関係を式34に代入して次式を得る。
【0246】
上記議論により上体姿勢角加速度の2階積分値は定数扱いできる(初期上体姿勢角度・角速度に依存しない)ので、上式を式34に代入し、次式が得られる。
【0247】
式37と式32とから前記式30が得られる。
【0248】
なお、初期上体姿勢角は、本実施形態では、式31のように基準上体姿勢角初期値に一致させるようにしたが、定常歩容の上体姿勢角の平均値が基準上体姿勢角初期値に一致するように初期上体姿勢角を設定するようにしてもよい。あるいは、定常歩容の上体姿勢角の最大値と最小値の平均値が基準上体姿勢角初期値に一致するように初期上体姿勢角を設定しても良い。
【0249】
また、前記ではロボット1を直進移動させる場合に限定した例を説明したが、旋回移動を含む定常歩容を決定する場合には、その初期と終端とではロボット1の進行方向が変わる。このため初期上体姿勢角速度は初期上体姿勢角に依存するようになる。したがって、これを考慮して初期上体姿勢角および角速度を決定する必要がある。この場合には、例えば次の式37a、37bを満たすように初期上体姿勢角及び初期上体姿勢角速度を更新するようにすればよい。
【0250】
なお、式37a、37bのそれぞれの右辺第1項の積分期間は、時刻TsからTmまでの期間と、Ts2からTm2までの期間とを合わせた期間であり、右辺第2項の積分期間は、時刻TmからTs2までの期間とTm2からTeまでの期間とを合わせた期間である。
【0251】
より具体的に説明すると定常歩容では、第1旋回歩容の支持脚座標系(次回歩容支持客座標系)から見た初期状態姿勢角及び角速度が、それぞれ、次の第1旋回歩容の支持脚座標系(次次次回歩容支持脚座標系)から見た終端上体姿勢角および角速度に一致していなければならない。そこで、本実施形態では、新たな初期上体姿勢角は、前記式31により決定し、この新たな初期上体姿勢角と、これを定常歩容におけるロボット1のトータルの旋回角(鉛直軸回りの旋回角)に応じたマトリクス(回転座標変換のマトリクス)により次回歩容支持脚座標系から見た値に座標変換したものとをそれぞれ式37aの左辺の初期上体姿勢角、終端上体姿勢角に代入する。また、式37a,37bのそれぞれの右辺第1項の積分に係る上体姿勢角加速度は、前記図22のS516で逐次求められたものが用いられる。
【0252】
そして、式37a,37bの初期上体姿勢角速度と、式37a,37bの右辺第2項の積分に係るZMPrec(図26の台形状のパターン)の台形高さをと未知数として(但し、ZMPrecの台形パターンの折れ点の時刻はあらかじめ定める。また、第1旋回歩容のZMPrecの台形高さacyc1と第2旋回歩容のZMPrecの台形高さacyc2を同一値とする。)、それらの未知数を含む式37a,37bの連立方程式を解くことにより求められる初期上体姿勢角速度を新たな初期上体姿勢角速度として決定する。この場合、式37bの終端上体姿勢角速度は、未知数である初期上体姿勢角速度を、定常歩容の上記トータルの旋回角に応じたマトリクスにより次回支持脚座標系から見た値に座標変換したものである。
【0253】
ロボット1の移動が旋回を含む移動である場合には、上記のようにして、新たな初期上体姿勢角および角速度を決定すればよい。
【0254】
なお、定常歩容の境界条件を満たすような初期上体姿勢角速度を探索的に求めることも可能である。
【0255】
図20のS310の処理を完了した後、図19のS210に進み、生成した歩容(仮定常歩容)の終端上体水平位置・速度を、その瞬間の支持脚に対応する支持脚座標系(図31のX''',Y''' ,Z'''座標系)から見た値に変換し、その値を(Xe,Vxe)とする(Xe:終端上体水平位置、Vxe:終端上体水平速度)。
【0256】
次いでS212に進み、図示の如く、初期上体水平位置速度(Xs,Vxs)と終端上体水平位置速度(Xe,Vxe)との差を算出する。この差(Xs−Xe,Vxs−Vxe)を上体水平位置速度境界条件誤差(errx,errvx)と呼ぶ。定常歩容では、前記境界条件を満たす必要があるので、(Xs,Vxs)と(Xe,Vxe)とが一致していなければならない。従って、上体水平位置速度境界条件誤差(errx,errvx)が零またはほぼ零でなければならない。本実施形態では、以下のように、上体水平位置速度境界条件誤差(errx,errvx)がほぼ零となる(Xs,Vxs)が探索的に求められる。
【0257】
次いでS214に進み、算出した上体水平位置速度境界条件誤差(errx,errvx)が、あらかじめ適宜設定された許容範囲内にあるか否かが判断される。尚、このように上体水平位置速度境界条件誤差の許容範囲を設定する代わりに、初期発散成分(Xs+Vxs/ω0)と終端発散成分(Xe+Vxe/ω0)との差、および初期収束成分(Xs−Vxs/ω0)と終端収束成分(Xe−Vxe/ω0)との差がそれぞれある許容範囲内にあるか否か判断するようにしても良い。ただしω0は、前述したように、ある所定の値である。
【0258】
S214の判断結果がNOであるときにはS216に進む。このS216では、(Xs,Vxs)の付近に複数(本実施形態では2つ)の初期値候補(Xs+ΔXs,Vxs),(Xs,Vxs+ΔVxs)が決定される。ここで、ΔXs,ΔVxsは、それぞれXs,Vxsに対する所定の微小変化量を意味している。そして、これらの初期値候補のそれぞれを上体水平位置速度の初期状態として、前記S208と同様の処理によって定常歩容が歩容パラメータを用いて生成される。さらに、その生成された定常歩容の終端上体位置速度を、その瞬間の支持脚に対応する支持脚座標系(図31のX''',Y''' ,Z'''座標系)から見た値に変換した値(Xe+ΔXe1,Vxe+ΔVxe1),(Xe+ΔXe2,Vxe+ΔVxe2)が求められる。ここで、(Xe+ΔXe1,Vxe+ΔVxe1)は(Xs+ΔXs,Vxs)に対応する終端上体位置速度を意味し、(Xe+ΔXe2,Vxe+ΔVxe2)は(Xs,Vxs+ΔVxs)に対応する終端上体位置速度を意味している。なお、この場合の定常歩容(仮歩容)の生成処理では、上体水平位置速度以外の変数の初期状態(時刻Tsでの状態)は、例えば上体水平位置速度の初期値候補を(Xs,Vxs)とした場合と同一に設定すればよい。S216ではさらに、前記S210と同様の処理によって、各初期値候補とこれに対応する終端上体位置速度との差、すなわち、各初期値候補(Xs+ΔXs,Vxs),(Xs,Vxs+ΔVxs)のそれぞれに対応する上体水平位置速度境界条件誤差が求められる。
【0259】
次いでS218に進み、(Xs,Vxs)およびその付近の初期値候補(Xs+ΔXs,Vxs),(Xs,Vxs+ΔVxs)のそれぞれに対する上体水平位置速度境界条件誤差を基に、(Xs,Vxs)の次の初期値候補が探索法(擬似ヤコビアン(感度マトリックス)を求め、最急降下法などにより次候補を決定する方法や、シンプレックス法など)により決定される。すなわち、(Xs,Vxs)およびその付近の初期値候補(Xs+ΔXs,Vxs),(Xs,Vxs+ΔVxs)のそれぞれに対する上体水平位置速度境界条件誤差によって、上体水平位置及び上体水平速度をそれぞれ初期値候補(Xs,Vxs)から微小変化させたときの、上体水平位置速度境界条件誤差の変化度合いを示す感度マトリックスが求められ、その感度マトリックスに基づいて、上体水平位置速度境界条件誤差をより小さくするような初期値候補(Xs,Vxs)が新たに決定される。そして、このように上体水平位置速度の新たな初期値候補(Xs,Vxs)が決定された後、S206に戻る。
【0260】
S214の判断結果がNOとなる限りは上記した処理(S206〜S218の処理)が繰り返される。なお、この場合、上体水平位置速度の新たな初期値候補(Xs,Vxs)に対応する定常歩容の生成処理(S208)におけるS300(図20参照)では、上体姿勢角速度の初期値は、基準上体姿勢角速度の初期値ではなく、上体水平位置速度の前回の初期値候補(Xs,Vxs)に対応するS208の処理におけるS310(図20参照)で決定したものに設定される。そして、S214の判断結果がYESになると、繰り返しループ(S204)を抜けてS220に進む。なお、S204の繰り返しループを抜けたときの直前に生成された仮定常歩容が、境界条件を満たす定常歩容として得られることとなる。
【0261】
S220では、本来の初期時刻0(今回歩容の終端時刻)における初期上体水平位置速度(X0,V0)と初期時刻0における初期上体鉛直位置速度(Z0、Vz0)と初期時刻0における初期上体姿勢角および角速度が求められる。
【0262】
具体的には、(X0,V0)と(Z0,Vz0)は、前記図21に示した定常歩容瞬時値決定サブルーチンのS408およびS414において、第2旋回歩容から第2旋回歩容に切り換わった瞬間の時刻、すなわち、時刻k=Tcyc(時刻Te−Ts)であるときに決定された上体水平位置速度と上体鉛直位置速度とを、それぞれ時刻Tcycから始まる一歩(すなわち2度目の第1旋回歩容)の支持脚に対応する支持脚座標系(図31のX''',Y''',Z'''座標系)から見た値に変換した値に決定される。同様に、初期状態姿勢角および角速度は、時刻k=Tcyc(時刻Te−Ts)であるときに決定された上体姿勢角及び角加速度を、時刻Tcycから始まる一歩(すなわち2度目の第1旋回歩容)の支持脚に対応する支持脚座標系(図31のX''',Y''',Z'''座標系)から見た値に変換した値に決定される。
【0263】
次いでS222に進み、定常歩容初期発散成分q[0]が次式から求められる。
【0264】
q[0] = X0 + V0/ω0 …式40
ただしω0は、発散についての解説で述べたように、ある所定の値である。
【0265】
さらに、S224に進み、定常歩容初期発散成分q[0]が今回歩容支持脚座標系から見た値に変換され、これがq”[0]として求められる。また、初期上体鉛直位置速度(Z0,Vz0)が今回歩容支持脚座標系から見た値に変換され、これが(Z0”,Vz0”)として求められる。
【0266】
補足すると、(Z0”,Vz0”)は、第2旋回歩容の支持脚座標系(図15のX”,Y”,Z”座標系)から見た第2旋回歩容終端上体鉛直位置速度に一致している。また、q”[0]も第2旋回歩容の支持脚座標系(図15のX”,Y”,Z”座標系)から見た第2旋回歩容終端発散成分に一致している。したがって、これらの性質を用いて、(Z0”,Vz0”)およびq”[0]を算出するようにしても良い。
【0267】
以上により、図12のS024の処理、すなわち定常歩容の初期状態を求めるサブルーチン処理が終了する。
【0268】
次いで、図12のS026に進み、今回歩容の歩容パラメータを決定(一部は仮決定)する。S026では、より具体的には、図32に示すフローチャートに従って、以下の処理が行われる。
【0269】
まず、S600において、今回歩容の足平位置姿勢軌道が定常歩容の足平位置姿勢軌道につながるように、今回歩容の足平軌道パラメータが設定される。
【0270】
具体的には、今回歩容初期遊脚足平位置姿勢(今回歩容遊脚足平位置姿勢の初期値)は、今回歩容支持脚座標系から見た現在遊脚位置姿勢(前回歩容終端遊脚位置姿勢)に設定される。今回歩容初期支持脚足平位置姿勢(今回歩容支持脚足平位置姿勢の初期値)は、今回歩容支持脚座標系から見た現在支持脚足平位置姿勢(前回歩容終端支持脚足平位置姿勢)に設定される。また、今回歩容終端遊脚足平位置姿勢は、今回歩容支持脚座標系から見た次回歩容支持脚座標系(今回歩容に係わる1歩目の遊脚着床位置姿勢の要求値)に対応して決定される。すなわち、今回歩容終端遊脚足平位置姿勢から遊脚足平22を床に接触させたまま、すべらないように該足平22をその底面のほぼ全面が接地するまで回転させたときの、該足平22の代表点が今回歩容支持脚座標系から見た次回歩容支持脚座標系の原点に合致するように今回歩容終端遊脚足平位置姿勢が決定される。
【0271】
今回歩容終端では、支持脚足平22は離床して空中にある。支持脚足平22が離床してから後の軌道を決定するために、支持脚足平着地予定位置姿勢を設定する。支持脚足平着地予定位置姿勢は、今回歩容支持脚座標から見た次次回歩容支持脚座標(今回歩容に係わる2歩目の遊脚足平位置姿勢の要求値)に対応して設定される。より具体的には、支持脚足平着地予定位置姿勢は、その位置姿勢から、足平22を床に接触させたまま、すべらないように該足平22をその底面のほぼ全面が床に接地するまで回転させたときの該足平22の代表点が今回歩容支持脚座標から見た次次回歩容支持脚座標の原点に合致するように設定される。
【0272】
今回歩容終端支持脚足平位置姿勢は、現在支持脚位置姿勢(今回歩容初期支持脚足平位置姿勢)から、次回歩容支持脚座標系に対応する足平着地予定位置姿勢(前記要求パラメータにおける2歩目の遊脚側足平着地位置姿勢の要求値)に至る足平位置姿勢軌道を、今回歩容終端まで前記有限時間整定フィルタにより生成することにより求められる。
【0273】
次いで、S602に進み、今回歩容の基準上体姿勢軌道パラメータが、定常歩容の第1旋回歩容や第2旋回歩容と同様に決定される。ただし、今回歩容の基準上体姿勢軌道が前記定常歩容の基準上体姿勢軌道に連続してつながる(今回歩容終端での基準上体姿勢角及び角速度がそれぞれ定常歩容初期の基準上体姿勢角及び角速度に一致する)ように上記パラメータが設定される。なお、本実施形態では、基準上体姿勢は、今回歩容及び定常歩容のいずれでも定常的な鉛直姿勢である。
【0274】
次いで、S604に進み、今回歩容の腕姿勢軌道パラメータが、定常歩容の第1旋回歩容や第2旋回歩容と同様に決定される。ただし、今回歩容の腕姿勢軌道が前記定常歩容の腕姿勢軌道に連続してつながるように上記パラメータを設定する。なお、ここで決定される腕姿勢軌道パラメータは、定常歩容パラメータの決定(図14のS104)の場合と同様、鉛直軸(あるいは上体体幹軸)まわりの両腕体の角運動量変化に関すること以外の運動パラメータであり、両腕体の重心位置の軌道を規定するパラメータである。
【0275】
次いで、S606に進み、今回歩容の床反力鉛直成分軌道パラメータが、定常歩容の第1旋回歩容や第2旋回歩容と同様、該パラメータにより規定される床反力鉛直成分軌道が前記図6のように実質的に連続な(値がステップ状に飛ばない)軌道になるように設定される。
【0276】
ただし、床反力鉛直成分軌道パラメータは、今回歩容の全体重心鉛直位置速度と床反力鉛直成分軌道とのいずれもが、前記定常歩容と連続してつながるように決定される。
【0277】
具体的には、まず、前記図12のS024の処理(定常歩容初期状態の決定処理)で最終的に求めた定常歩容の初期上体鉛直位置速度を今回歩容支持脚座標系から見た値に変換した値(Z0”,Vz0”)、すなわち、図19のS224で求めた(Z0”,Vz0”)等を基に、例えば前記式04(あるいはロボット1のキネマティクスモデル)を用いて、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直位置速度が求められる。具体的には、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直位置は、S224で求めた定常歩容の上体鉛直位置Z0”に対応する図10のモデルの上体質点鉛直位置と、定常歩容初期の各足平位置を今回歩容支持脚座標系から見た値に変換したものに対応する支持脚側及び遊脚側の脚体質点鉛直位置とを式04に代入することで求められる。また、今回歩容支持脚座標系から見た定常歩容の初期全体重心鉛直速度は、S224で求めた定常歩容の上体鉛直速度Vz0”に対応する図10のモデルの上体質点鉛直速度と、定常歩容初期の各足平鉛直速度を今回歩容支持脚座標系から見た値に変換したものに対応する支持脚側及び遊脚側の脚体質点鉛直速度とを式04の両辺を微分してなる式に代入することにより求められる。なお、この初期全体重心鉛直位置速度の算出は、より厳密なモデルを用いて行なうようにしてもよい。
【0278】
そして、このようにして求めた定常歩容の初期全体重心鉛直位置速度を、前記式13と下記式41の終端全体重心鉛直位置速度に代入すると共に、前回の目標歩容瞬時値(より厳密には、前回目標歩容の終端状態を今回支持脚座標系に変換したもの)の全体重心鉛直位置および速度を、前記式13と下記式41の初期全体重心鉛直位置および速度に代入し、式13と式41の関係を満足するように、今回歩容の床反力鉛直成分パターン(より具体的にはパラメータ値)が決定される。ただし、式13と式41における積分値は今回歩容の初期から終端までの期間の積分値とする。
【0279】
ただし、重力加速度は負の値とする。
【0280】
より具体的には、まず、図6のような床反力鉛直成分パターンを規定する床反力鉛直成分パラメータ(折れ点の時刻等)のうちの、少なくとも2つのパラメータを独立な未知変数として、その未知変数の値を、式13と式41とからなる連立方程式を解いて決定する。
【0281】
未知変数とする床反力鉛直成分パラメータには、例えば、図6の台形の高さ(床反力鉛直成分のピーク値)と幅(片脚支持期時間)とを選択すれば良い。この場合、図6の台形の両側部分の傾きは今回歩容周期等に応じてあらかじめ定めた値とし、あるいは、片脚支持期から空中期に移行する時刻を除く床反力鉛直成分パターンの折れ点の時刻を今回歩容周期等に応じてあらかじめ定めた値とする。補足すると、未知変数を1つとすると、一般的には式13と式41の連立方程式を満足する解が存在しない。
【0282】
次いで、S608に進み、床反力水平成分許容範囲[Fxmin,Fxmax](具体的には該床反力水平成分許容範囲のパターンを規定するパラメータ)が、定常歩容の第1旋回歩容や第2旋回歩容と同様に設定される。たとえば図33に示すようなパターンで床反力水平成分許容範囲が設定される。本実施形態では、先にS606で決定した床反力鉛直成分パターンに応じて前記式12に基づいて床反力水平成分許容範囲が設定される。
【0283】
次いで、S610に進み、今回歩容のZMP軌道(具体的にはZMP軌道を規定するパラメータで、軌道の折れ点の時刻や位置)が、定常歩容の第1旋回歩容や第2旋回歩容と同様、安定余裕が高くかつ急激な変化をしないように、前記図7に示すごとく設定される。ただし、今回歩容のZMP軌道が前記定常歩容のZMP軌道に連続してつながるように上記パラメータを設定される。つまり、今回歩容終端におけるZMPの位置が定常歩容初期のZMP位置に一致するように、ZMP軌道パラメータが決定される。この場合、走行歩容では、片脚支持期におけるZMP軌道の折れ点の時刻や位置の設定の仕方は、前述した定常歩容のZMP軌道パラメータの設定の仕方と同様でよい。そして、空中期における目標ZMP軌道が、空中期開始時から、定常歩容初期のZMP位置まで、直線的に連続して変化するようにZMP軌道パラメータを設定すればよい。
【0284】
なお、S610で決定される今回歩容のZMP軌道パラメータは、仮決定されただけであり、後述するように修正される。そこで、上記のごとく設定した今回歩容のZMP軌道を、以降、今回歩容の仮目標ZMP軌道と呼ぶこととする。
【0285】
最後に、S612に進み、上体姿勢角復元期間[Ta,Tb]が設定される。上体姿勢角復元開始時刻Taは、定常歩容の第2旋回歩容におけるTmに相当し、上体姿勢角復元修了時刻Tbは、定常歩容の第2旋回歩容におけるTs2に相当するものである。これらの時刻Ta,Tbの設定の仕方は、それぞれTmおよびTs2の設定の仕方と同様である。
【0286】
図12の説明に戻って、上記のごとくS026に示す処理(今回歩容の歩容パラメータ決定処理)を行って後、次いでS028に進み、今回歩容の歩容パラメータ(ZMP軌道パラメータ)が修正される。この処理では、上体位置姿勢軌道を定常歩容に連続させ、もしくは近づけるべくZMP軌道パラメータが修正される。
【0287】
図34はその処理を示すサブルーチン・フロー・チャートである。
【0288】
まずS700を経てS702に進み、仮目標ZMPパターンとその他の今回歩容パラメータを基に、今回歩容終端時刻までの仮今回歩容が仮生成される。
【0289】
S702では、図35に示すフローチャートに従って、以下の処理が行われる。
【0290】
以下説明すると、S800において、諸々の初期化が行われる。具体的には、仮歩容生成用時刻kに0が代入される。また、前回目標歩容の終端状態(より具体的には、上体水平位置速度、上体鉛直位置速度、上体姿勢角及びその角速度、目標足平位置姿勢、目標腕姿勢などの歩容状態の終端値)を今回支持脚座標系に変換したものを、今回歩容初期状態とする。
【0291】
次いで、S802を経てS804において、仮歩容生成用時刻kが今回歩容終端時刻Tcurr以前であるか否か(k ≦ Tcurrであるか否か)が判断され、その判断結果がYESある場合には、S806の今回歩容瞬時値決定サブルーチンに進み、今回歩容の時刻kの瞬時値が決定される。次いでS808に進み、仮歩容生成用時刻kがΔkだけ増加され、S804に戻る。
【0292】
S804の判断結果がNOである場合には、図35に示すフローチャートの処理が完了する。
【0293】
以上の処理により、仮の今回歩容が初期から終端まで生成される。
【0294】
S806の歩容瞬時値決定サブルーチンでは、図36に示す処理が行われる。以下にこれを説明する。
【0295】
まずS900において、今回歩容パラメータの床反力鉛直成分軌道パラメータを基に、図6に示した目標床反力鉛直成分の時刻kにおける値(今回値)が求められる。次いで、S902において、今回歩容パラメータのZMP軌道パラメータを基に、図7に示す目標ZMP軌道(仮目標ZMP軌道)の時刻kにおける値(今回値)を求める。
【0296】
次いでS904に進み、今回歩容パラメータ(足平軌道パラメータ、基準上体姿勢軌道パラメータおよび腕姿勢軌道パラメータ)を基に、時刻kにおける目標両足平位置姿勢、基準上体姿勢および目標腕姿勢の値(今回値)がそれぞれ求められる。ただし、目標腕姿勢に関しては、腕全体重心位置は決定されるが、鉛直軸(または上体体幹軸)まわりの角運動量を変化させる運動自由度は、未だ決定されていない。なお、定常歩容の場合と同様、今回歩容の目標足平位置姿勢軌道及び床反力鉛直成分軌道は、それぞれ、図32のフローチャートで決定した足平軌道パラメータ、床反力鉛直成分軌道パラメータに応じて互いに独立的に決定される。
【0297】
次いでS906に進み、S900で求めた目標床反力鉛直成分の今回値を満足する(ロボット1の鉛直方向の慣性力と重力との和を目標床反力鉛直成分に釣り合わせる)ような時刻kにおける全体重心鉛直位置が算出される。この算出は、具体的には前記図21のS406と同様の処理により行なわれる。
【0298】
次いでS908に進み、上記の如く求めた全体重心鉛直位置を満足する上体鉛直位置の今回値が算出される。この算出は、具体的には、前記図21のS408と同様の処理により行なわれる。
【0299】
次いでS910に進み、前記図32のS608で決定した床反力水平成分許容範囲のパラメータに基づいて、図33に示す床反力水平成分許容範囲[Fxmin,Fxmax]の時刻kにおける値(今回値)が求められる。
【0300】
次いでS912に進み、目標ZMPを満足する(目標ZMP回りに発生するモーメント水平成分が0になる)ように、今回仮歩容の上体水平加速度と上体姿勢角加速度が決定される。ただし、これらの加速度は、床反力水平成分Fxが[Fxmin,Fxmax]を越えないように決定される。この処理は、図21のS412の詳細を示す図22のフローチャートの処理とは若干異なる。
【0301】
S912では、具体的には、図37のフローチャートに示す処理が行われる。図37のフローチャートでは、まずS1000おいて、時刻kが前記図32のS612で設定した上体姿勢角復元期間[Ta,Tb]にあるか否かが判断される。
【0302】
この判断結果がNOである場合(床反力水平成分許容範囲が0もしくは狭い場合)には、S1002からS1014までの処理が実行される。S1002からS1014までの処理は、前述の図22のS504からS516までの処理と同じであるので、説明を省略する。
【0303】
S1000の判断結果がYESである場合には、S1016に進み、上体姿勢復元モーメントZMP換算値パターンZMPrecが設定される。この場合、定常歩容の生成に係わる前記図22のS518と異なり、ZMPrecは、一定値0のパターン(すなわち図26に示す台形パターンの高さが0であるパターン)に設定される。次に、S1018からS1026までの処理が行われる。S1018からS1026までの処理は、前記図22のS520からS528までの処理と同じであるので説明を省略する。なお、S1016〜S1026の処理では、上体姿勢復元モーメントZMP換算値ZMPrecの瞬時値は常に0になるので、S1020で求められる上体回転モードの上体姿勢角加速度βも0になる。従って、β=0として、S1022、S1024及びS1026の処理のみを行なうようにしてもよい。S1000の判断結果がYESである場合、すなわち、上体姿勢角復元期間[Ta,Tb]では、上記のようにβ=0となることから、S912の処理では、上体姿勢角復元期間[Ta,Tb]の期間(床反力水平成分許容範囲が十分に大きい期間)で、定常歩容生成の場合と異なり、上体姿勢角速度の復元方向への上体姿勢変化の運動軌道は生成されないこととなる。
【0304】
なお、本実施形態では、基準上体姿勢が鉛直姿勢で、基準上体姿勢による上体姿勢角加速度が0であるため、上記の如く求めた上体回転モードの角加速度βをS912の処理で決定される上体姿勢角加速度とした。但し、基準上体姿勢が変化するように該基準上体姿勢軌道パラメータを設定した場合には、上記の如く求めた上体回転モードの角加速度βと基準上体姿勢角加速度の和をもって、S912の処理で決定される上体姿勢角加速度とすべきである。
【0305】
以上のごとく図36のS912の処理を完了した後、次いでS914に進み、上記S912で求めた上体水平加速度を逐次積分する(今回歩容初期(時刻k=0)から現在時刻kまで累積加算する)ことによって上体水平速度が求められ、さらにその上体水平速度を逐次積分する(今回歩容初期(時刻k=0)から現在時刻kまで累積加算する)ことによって、上体水平位置(今回値)が求められる。また、上記S912で求めた上体姿勢角加速度を逐次積分する(今回歩容初期(時刻k=0)から現在時刻kまで累積加算する)ことによって、上体姿勢角速度が求められ、さらにその上体姿勢角速度を逐次積分する(今回歩容初期(時刻k=0)から現在時刻kまで累積加算する)ことによって、上体姿勢角の今回値が求められる。このS914の処理は図21のS414と同様の処理である。
【0306】
以上のごとく図35のS806の今回歩容瞬時値決定サブルーチンが実行され、次いでS808に進み、歩容生成用時刻kの値が歩容生成インターバルΔkだけ増加される。次いでS804に戻り、S804に示す条件が成立している限り、S806とS808の処理が繰り返される。そして、S804に示す条件が成立しなくなったら、すなわち終端まで仮今回歩容の生成が完了したら、図34のS704に進む。
【0307】
S704では、上記のごとくS702で求めた今回歩容終端での上体水平位置速度(Xe,Vxe)から、終端発散成分q0[k](k=Tcurr)が図示の式(前記式10)を用いて求められる。
【0308】
次いでS706に進み、今回歩容終端発散成分q0[k]と定常歩容初期発散成分q”(図19のS224で求めたもの)との差である終端発散成分誤差errqが図示の式を用いて求められる。さらに、S708に進んで、その求めた終端発散成分誤差errqが許容範囲内(0近傍の範囲)にあるか否か判断する。
【0309】
S708の判断結果がNOであるときはS710に進み、a=Δa(Δaは所定の微小量)とし、図38の関係に従って現在の仮目標ZMPパターンに台形状の修正を加えた目標ZMPを基に、前記S702と同様に、終端までの仮今回歩容を計算する。ここで、図38を参照して、aは、今回歩容終端発散成分を定常歩容初期発散成分にできるだけ一致させる(今回歩容の上体水平位置姿勢軌道を定常歩容の上体水平位置姿勢軌道に近づける)ために、仮目標ZMPを修正するための台形パターンの高さである。この場合、本実施形態では、仮目標ZMPの修正は、支持脚足平22の底面のほぼ全面が接地する期間(足底全面接地期間)、すなわち、床反力水平成分許容範囲が十分に広いものとなる期間において行なうようにしており、上記台形パターンの折れ点の時刻は、足底全面接地期間における仮目標ZMPの折れ点の時刻に合わせて設定されている。なお、S710でa=Δaとするのは、現在の仮目標ZMP軌道を上記台形パターンによって微小量、修正したときの前記終端発散成分誤差errqの変化を観測するためである。
【0310】
上記のようにS710にて、a=Δaとして仮目標ZMP軌道を修正したときの仮今回歩容を終端まで生成した後、さらにS712に進み、S710で求めた仮今回歩容終端での上体水平位置速度(Xe1,Vxe1)を基に、この仮今回歩容における終端発散成分q1[k]が図示の式(前記式10)を用いて求められる。
【0311】
尚、S710においてΔaは、本実施形態では、適宜に設定される微小量の定数としたが、以下に説明する繰り返し演算によって終端発散成分誤差errqが小さくなるにつれてΔaを減少させるように該Δaを設定するようにしても良い。ただし、定数にしておいても、数回の繰り返し演算で終端発散成分誤差errqを許容範囲内に収めることができる。
【0312】
次いでS714に進み、パラメータ感度r(Δaに対する終端発散成分誤差の変化の割合)が図示の式から求められる。さらに、S716に進み、a=−errq/r、すなわちS706で求めた終端発散成分誤差errqを、S714で求めたパラメータ感度rで割った値を高さaとする台形パターンの修正量を図38の関係に従って仮目標ZMPパターンに加えることにより、仮目標ZMPパターンが修正される(新たな仮目標ZMPパターンが決定される)。
【0313】
次いでS702に戻る。そして、S708の判断結果がNOである限りは、上記したS702〜S716の処理が繰り返され、S708の判断結果がYESになったときには、その繰り返しループ(S700)を抜けてS718に進む。
【0314】
S718では、仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角との差、および仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度との差などを基に、今回歩容の上体姿勢角が定常歩容の上体姿勢角に近づくように、今回歩容の上体姿勢復元モーメントZMP換算値(ZMPrec)のパターンが決定される。ここで決定するZMPrecは、後述する今回歩容瞬時値の生成処理で、床反力水平成分許容範囲が十分に大きいものとなる期間(片脚支持期内の期間)において、上体姿勢角軌道を定常歩容につながらせる(近づける)ように上体姿勢角加速度を発生させても、今回歩容終端発散成分と定常歩容初期発散成分との一致性(S708の条件)を維持できるように、仮目標ZMPを修正するためのものである。
【0315】
このZMPrecは、前記定常歩容生成処理で説明したものと同様に台形状のパターンであり、具体的には次のように決定される。すなわち、図26に示したZMPrecの台形パターンにおいて、台形の頂点(折れ点)の時刻は既知とする(より具体的には台形の折れ点の時刻を目標ZMPの折れ点時刻に合わせる)と共に、台形高さを未知数とし、以下のようにZMPrecの台形高さ(パラメータ)が求められる。ただし、S718では図26におけるTmおよびTs2をそれぞれTa,Tbに置き換えるものとする。
【0316】
上記のように上体姿勢復元モーメントZMP換算値パターンの未知パラメータがひとつの場合には、今回歩容の終端において上体姿勢角と上体姿勢角速度の両方を定常歩容に連続につなげることは一般的にはできない。そこで、本実施形態では、複数歩に渡って徐々に、生成される歩容の状態が定常歩容の状態に近づけるように、未知パラメータを決定することとする。
【0317】
補足すると、1歩容の中でのZMPrecパターンを複雑にし、未知パラメータを2つ以上にして、今回歩容の終端において上体姿勢角と上体姿勢角速度との両者を定常歩容に連続につなげても良いが、ZMPrecパターンがジグザグに大きく変動し過ぎる恐れがある。
【0318】
以下では、算出原理を説明した後、算出手順を説明する。
【0319】
前述のごとくS702でZMPrecパターンの台形高さを0として求めた仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角との差を求め、これをθerrとする。また、仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度との差を求め、これをvθerrとする。
【0320】
ここで、ZMPrecパターンの台形高さをある値bcurrとして今回歩容が生成され、引き続いて、今回歩容と同様のアルゴリズムによって第1旋回歩容が生成されると想定する。ただし、第1旋回歩容の上体姿勢復元モーメントZMP換算値ZMPrecパターンは、図22のS518において求められた第1旋回歩容のZMPrecパターン(高さが前記acyc1である図26の台形パターン)とある値b1の和であるとする。
【0321】
このようにして生成された歩容をZMPrec修正歩容と呼び、その終端(第1旋回歩容の終端)上体姿勢角と角速度をそれぞれθ1、vθ1とする。
【0322】
S024における定常歩容の初期状態を求めるサブルーチンの処理が完了した時点で求められた本来の定常歩容(最終的にS310の式30、式31によって決定された定常歩容初期上体姿勢角および角速度を初期値とし、ZMPrecパターンをS518において求められたパターン(高さがacyc1である図26の台形パターン)とした場合の定常歩容)の第1旋回歩容終端上体姿勢角と角速度をそれぞれθ1org、vθ1orgとする。
【0323】
ここで、Δθ1、Δvθ1を次のように定義する。
【0324】
Δθ1 =θ1−θ1org …式50
Δvθ1 =vθ1−vθ1org …式51
Δθ1およびΔvθ1は、ZMPrec修正歩容と本来の定常歩容を第1旋回歩容の終端まで生成した時点において、両者間における上体姿勢角の差及び角速度の差を意味する。もし、Δθ1およびΔ v θ 1が0になれば、ZMPrec修正歩容に引き続いて、今回歩容と同様のアルゴリズムによって、ZMPrecパターンの台形高さを前記acyc2として第2旋回歩容が生成されると、この歩容は、本来の定常歩容に一致する。
【0325】
したがって、Δθ1およびΔvθ1が0となる今回歩容台形高さbcurr、第1旋回歩容台形高さb1を求め、求めたbcurrを今回歩容の台形高さとして最終的に決定すれば良い。
【0326】
ところで、ロボット1の上体姿勢角に関する動力学モデルが図10に示すフライホイールFHのような線形特性を持つことから、Δθ1およびΔ v θ 1は、今回歩容台形高さbcurr、第1旋回歩容台形高さb1、仮今回歩容の終端上体姿勢角と定常歩容の初期上体姿勢角の差θerr、仮今回歩容の終端上体姿勢角速度と定常歩容の初期上体姿勢角速度の差vθerrと以下の関係を持つ。
Δθ1 = c11 * bcurr + c12* b1 + θerr + e1 * vθerr …式52
Δvθ1 = c21 * bcurr + c22 * b1 + e2 * vθerr …式53
だだし、c11、c12、c21、c22、e1、e2は、今回歩容、第1旋回歩容の歩容周期、上体姿勢復元モーメントZMP換算値ZMPrecパターンのパラメータ(特に時間に関するパラメータ)などによって一義的に決定される係数である。
【0327】
以上の原理に基づき、算出手順として、まず、仮今回歩容と定常歩容との境界での上体姿勢角の差θerrと角速度の差Vθerrが求められる。
【0328】
次いで、式52,53の係数であるc11、c12、c21、c22、e1、e2が、今回歩容、第1旋回歩容の歩容周期、上体姿勢復元モーメントZMP換算値ZMPrecパターンのパラメータ(特に時間に関するパラメータ)などを基に求められる。
【0329】
次いで式52、式53の右辺が0となるように今回歩容台形高さbcurr、第1旋回歩容台形高さb1が決定される。すなわち、式52、式53の右辺を0とした連立方程式を解くことによって、bcurr、b1が求められる。
【0330】
最後に、今回歩容の上体姿勢復元モーメントZMP換算値(ZMPrec)の台形パターンの台形高さが、上記求めた今回歩容台形高さbcurrに設定される。
【0331】
次いでS720に進み、現在の仮目標ZMPパターン(S700の繰り返しループを抜けたときの仮目標ZMPパターン)に、S718で上記のように求めた上体姿勢復元モーメントZMP換算値パターンを加算してなるパターンが今回歩容の目標ZMPパターンとして決定される。なお、この処理は、S710においてΔaの高さの台形パターンを仮目標ZMPパターンに加える処理と同様である。
【0332】
以下に仮目標ZMPパターンに上体姿勢復元モーメントZMP換算値パターンを加算した理由を述べる。
【0333】
S700のループにおいて生成される仮今回歩容は、前述の如く、上体姿勢復元モーメントZMP換算値ZMPrecを0(ZMPrecの台形パターンの高さパラメータを0)にして生成される。このようにしてS700のループで最終的に生成された仮今回歩容では、その上体位置速度は、定常歩容に連続し、もしくは近づくが、上体姿勢角は、定常歩容の上体姿勢角からずれ、場合によっては発散してしまう。
【0334】
S718で求められた上体姿勢復元モーメントZMP換算値パターンは、上体姿勢角の定常歩容に対するずれを0に近づけるための上体姿勢角加速度を発生させるものである。
【0335】
しかし、S700のループで最終的に得られた仮目標ZMPパターンを修正することなく、S718で求められた上体姿勢復元モーメントZMP換算値パターンに応じた上体姿勢角加速度を発生させると、動力学的平衡条件(ロボットの重力と慣性力の合力が目標ZMPに作用するモーメントが鉛直成分を除いて0になること)を満足させるために、上体水平位置軌道を前記仮今回歩容の上体水平位置軌道からずらさざるを得なくなる。そこで、本実施例では、上体水平位置軌道をS700のループで最終的に得られるものからずらさなくて済むように、ZMPrecによって仮目標ZMPパターンを修正することとした。
【0336】
前記仮今回歩容の運動に加えて、S718で求めた上体姿勢復元モーメントZMP換算値パターンに対応する上体姿勢角加速度を発生させると、ZMP(運動によって発生する重力と慣性力の合力の鉛直成分を除くモーメントが0になる点)は上体姿勢復元モーメントZMP換算値だけずれる。したがって、逆に、仮目標ZMPパターンに上体姿勢復元モーメントZMP換算値パターンを加算したパターンを目標ZMPパターンとして、S718で求めた上体姿勢復元モーメントZMP換算値パターンに対応する上体回転モードの上体姿勢角加速度を発生させながら、目標ZMPパターンを満足する今回歩容を生成すれば、前記仮今回歩容と同じ上体並進運動となる。
【0337】
以上が、仮目標ZMPパターンに上体姿勢復元モーメントZMP換算値パターンを加算したパターンを目標ZMPパターンとした理由である。
【0338】
図12に戻って、上記のごとくS028において今回歩容パラメータを修正した後、あるいはS016の判断結果がNOである場合には、S030に進み、今回歩容瞬時値が決定される。
【0339】
S030では、図36のS900からS910までと同一の処理が行なわれ、次に、S912のサブルーチンである図37のS1000〜S1026の処理が行なわれる。ただし、この場合、図37のS1016においては、上体姿勢復元モーメントZMP換算値(ZMPrec)パターンは、0に設定されるのではなく、図34のS718で設定した上体姿勢復元モーメントZMP換算値(ZMPrec)パターンに設定される。次いで図36のS914と同一の処理が実行され、これにより、図12のS030の処理が完了する。
【0340】
次いでS032に進み、スピン力をキャンセルする(ロボット1の腕以外の運動によって目標ZMP回りに発生する床反力モーメント鉛直成分を略零にする)ための腕動作が決定される。具体的には、腕を振らなかった場合の目標ZMPにおける床反力モーメント鉛直成分軌道(厳密には、腕を振らずに歩容を生成した場合において、ロボットの重力と慣性力の合力が目標ZMPに作用するモーメント鉛直成分軌道の各瞬時値の符号を反転したもの)が求められる。すなわち、S030の処理によって生成された歩容の運動(これには腕振りの運動は含まれていない)の瞬時値に釣り合う目標ZMP(瞬時値)回りの床反力モーメント鉛直成分で瞬時値が求められる。そして、これを、腕振り運動の等価慣性モーメントで割ることにより、スピン力キャンセルに必要な腕振り動作の角加速度が求められる。なお、補足すると、腕の振りが大き過ぎる場合には、等価慣性モーメントよりも大きな値で割れば良い。
【0341】
次に、この角加速度を2階積分し、これを積分値が過大になるのを防ぐためのローカットフィルタに通して得た角度を腕振り動作角とする。ただし、腕振り動作では、左右の腕を前後逆方向に振り、両腕体の重心位置を変化させないようにする。なお、スピン力をキャンセルするための腕振り運動を定常歩容でも生成しておき、これにつながるように、今回歩容における腕振り運動を決定するようにしてもよい。
【0342】
次いでS034に進み、歩容生成用時刻tをΔtだけ増やし、S014に戻り、以上のごとく歩容生成を続ける。
【0343】
以上が、歩容生成装置100における目標歩容生成処理である。
【0344】
図4を参照して本実施形態に係る装置の動作をさらに説明すると、歩容生成装置100において、上記したように目標歩容が生成される。生成された目標歩容のうち、目標上体位置姿勢(軌道)、目標腕姿勢(軌道)が、ロボット幾何学モデル(逆キネマティクス演算部)102に送出される。
【0345】
また、目標足平位置姿勢(軌道)、目標ZMP軌道(目標全床反力中心点軌道)、および目標全床反力(軌道)(目標床反力水平成分と目標床反力鉛直成分)は、複合コンプライアンス動作決定部104に送られると共に、目標床反力分配器106にも送られる。そして、目標床反力分配器106で、床反力は各足平22R,22Lに分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部104に送られる。
【0346】
複合コンプライアンス動作決定部104から、機構変形補償付き修正目標足平位置姿勢(軌道)がロボット幾何学モデル102に送られる。ロボット幾何学モデル102は、目標上体位置姿勢(軌道)と機構変形補償付き修正目標足平位置姿勢(軌道)を入力されると、それらを満足する脚体2,2の12個の関節(10R(L)など)の関節変位指令(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の12個の関節の変位を追従制御する。また、ロボット幾何学モデル102は、目標腕姿勢を満足する腕関節の変位指定(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の腕体の12個の関節の変位を追従制御する。
【0347】
ロボット1に生じた床反力(詳しくは実各足床反力)は6軸力センサ34によって検出される。その検出値は前記複合コンプライアンス動作決定部104に送られる。また、ロボット1に生じた姿勢傾斜偏差θerrx,θerry(詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向(X軸回り)の姿勢角偏差がθerrxであり、ピッチ方向(Y軸回り)の姿勢角偏差がθerryである)が傾斜センサ36を介して検出され、その検出値は姿勢安定化制御演算部112に送られる。この姿勢安定化制御演算部112で、ロボット1の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点(目標ZMP)まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部104に送られる。複合コンプライアンス動作決定部104は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点(目標ZMP)回りに補償全床反力モーメントが作用するように目標床反力を修正する。
【0348】
複合コンプライアンス動作決定部104は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢(軌道)を決定する。ただしすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差(あるいは制御偏差の2乗)の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。
【0349】
尚、この発明の要旨は歩容生成装置100におけるロボット1の歩容生成にあり、上記した複合コンプライアンス動作決定部104などの構成および動作は、本出願人が先に出願した特開平10−277969号公報などに詳細に記載されているので、説明を以上に止める。
【0350】
S028において、今回歩容は、前述のごとく、今回歩容の終端発散成分が、定常旋回初期発散成分q[0]を今回歩容の支持脚座標系から見た値であるq”に一致するように修正される。
【0351】
実は、発散成分とは、動力学モデルを用いて今回歩容パラメータに従って歩容を生成し、そのまま連続して定常旋回歩容パラメータに従って歩容を繰り返し生成したとき、生成した歩容の上体水平位置が定常旋回歩容に収束するか否かを評価する指標である。収束する場合にちょうど、今回歩容の終端発散成分が、定常旋回初期発散成分q[0]を今回歩容の支持脚座標系から見た値であるq”に一致するように、本来、発散成分は定義されなければならない。
【0352】
式10で定義した発散成分は、実は、上記の性質を近似的に満足する発散成分である。
【0353】
したがって、本実施形態においては、動力学モデルを用いて今回歩容パラメータに従って歩容を生成し、そのまま連続して定常旋回歩容パラメータに従って歩容を繰り返し生成したとき、生成した歩容の上体水平位置が定常旋回歩容の上体水平位置に収束する(近づく)ように、今回歩容パラメータを修正した、と言える。
【0354】
これは、特願2000−352011号のものと同様である。
【0355】
特に、本実施形態においては、その条件(今回歩容が定常歩容に近づく)を満足するように、今回歩容の歩容パラメータの中の目標ZMPパターンを修正するようにした。図39を参照して説明すると、同図に符合Bで示す軌道は、上記したように歩容の境界において発散成分が一致するように生成した上体水平位置軌道を示す。
【0356】
同図に符合Aで示す軌道は、定常旋回歩容との境界における上体水平位置速度が一致するように今回歩容を生成し、続いて定常歩容を繰り返し生成した場合の上体水平位置軌道を示す。
【0357】
図示の如く、符合Bで示す軌道は、今回歩容と最初の定常旋回歩容との境界においては、一般的に符合Aで示す軌道からずれているが、その後、徐々に符合Aで示す軌道に収束し(近づき)、次の定常旋回歩容時期において符合Aで示す軌道にほぼ一致する。このように、歩容境界で発散成分のみを一致させる歩容生成手法でも、歩容境界で位置速度両方を一致させる歩容生成手法と同様、歩容の発散を防止することができる。尚、同図に符合Cで示す例は、それらを考慮せずに軌道を生成した場合を示す。このような場合は、生成した軌道は経時的に発散してしまう。当然、目標ZMPパターンを複雑なものにし、複数のパラメータを調整して、位置速度両方を一致させても良いが、目標ZMPパターンがジグザグになる恐れがある。なお、位置速度両方を一致させれば、発散成分も一致するから、位置速度両方を一致させる方法も発散成分を一致させる方法の特殊例であると言える。
【0358】
またさらに、本実施形態においては、動力学モデルを用いて今回歩容パラメータに従って歩容を生成し、そのまま連続して定常旋回歩容パラメータに従って歩容を繰り返し生成したとき、生成した歩容の上体姿勢角が定常旋回歩容の上体姿勢角に収束し(近づき)、もしくは一致するように、今回歩容パラメータを修正した、と言える。
【0359】
本実施形態に係る脚式移動ロボットの歩容生成装置は上記の如く構成したので、動力学モデルを用いて今回歩容パラメータに従って歩容を生成し、そのまま連続して定常旋回歩容パラメータに従って歩容を繰り返し生成したとき、生成した歩容の上体水平位置が定常旋回歩容に収束する条件を満足する今回歩容の終端上体水平位置と終端上体水平速度との関係は、厳密には、図41の実線のように曲線関係になる。発散成分の本来の定義から言えば、図41の実線の関係を満足する終端上体水平位置と終端上体水平速度とのいかなる組から決定される発散成分の値は同一でなければならない。また、発散成分を指標として物理的にわかり易くするためには、終端上体水平速度が0の時に終端上体水平位置と発散成分の値とが一致していることが望ましい。
【0360】
すなわち、発散成分を求める関数をfとすると、図41の実線を表す式が次式60の形で表され、かつ、次式61を満足するのが望ましい。
【0361】
関数f(終端上体水平位置, 終端上体水平速度)の値が発散成分の値になる。
【0362】
発散成分定義式である前述の式10は、関数fの近似式である。式10で定義される発散成分がある定数である場合、終端上体水平位置と終端上体水平速度の関係は、図41の点線になり、前記実線に対する近似直線になっている。
【0363】
発散成分を表す関数fは、直線近似する代わりに、多項式などを用いて曲線で近似しても良い。または、関数fをマップ化して記憶しても良い。
【0364】
また、近似精度を高めるには、定常歩容パラメータに応じて、関数fを変えるべきである。
【0365】
なお、発散成分の定義式である式10において、上体位置速度の代わりに、ロボット全体重心位置速度を用いても良い。
【0366】
本実施形態では、理解を容易にするために、床反力水平成分許容範囲は、前後方向(X軸方向)成分と左右方向(Y軸方向)成分それぞれ独立に設定できることとしたが、前後方向と左右方向の関係式で表した方が、よりスリップし難い歩容が生成される。
【0367】
例えば、次式のようにいわゆる摩擦円を許容範囲としても良い。
【0368】
ただし、Fzは、目標床反力鉛直成分をμは摩擦係数、kaは1以下の正の定数を表す。
【0369】
ただし、以上のように、床反力水平成分許容範囲を前後方向と左右方向の関係式で表す場合、許容範囲を同時にあるいは交互に満足するように、サジタルプレーン上での運動とラテラルプレーン上での運動を同時あるいは交互に求める必要がある。
【0370】
尚、ロボットの全体重心鉛直加速度と重力加速度との和は床反力鉛直成分に比例するので、歩容パラメータとして、床反力鉛直成分軌道の代わりにロボットの全体重心鉛直加速度軌道を規定するパラメータを明示的に設定しても構わない。本質的に同じことである。また、ロボットの全体重心軌道に近い挙動をする部位の鉛直加速度軌道を規定するパラメータを明示的に設定しても構わない。例えば、脚体の質量が上体の質量に比べて十分に小さい場合には、上体鉛直加速度軌道とロボットの全体重心鉛直加速度軌道は、ほぼ同じか比例関係になるので、床反力鉛直成分軌道の代わりに上体鉛直加速度軌道を用いても良い。同様に、床反力水平成分とロボットの全体重心水平加速度は、比例関係にあるので、本実施例における床反力水平成分およびその許容範囲の代わりに、ロボット全体重心水平加速度およびその許容範囲を用いても構わない。また、ロボットの全体重心水平軌道に近い挙動をする部位の水平加速度軌道に関するパラメータを明示的に設定しても構わない。例えば、脚体の質量が上体の質量に比べ十分に小さい場合には、上体水平加速度軌道とロボットの全体重心水平加速度軌道は、ほぼ同じか比例関係にあるので、床反力水平成分およびその許容範囲の代わりに上体水平加速度およびその許容範囲を用いても良い。
【0371】
前記実施形態では、床反力水平成分と目標ZMPまわりの床反力モーメントを適切な値にするために、上体回転モードと上体並進モードとの2つの運動モードを用いたが、これら以外の運動モードを用いても良い。
【0372】
例えば、図40のように、股関節を中心に上体姿勢を回転させると、全体重心まわりの角運動量が変化すると共に全体重心も変化する。この運動と前記上体並進モードをある所定の割合で重ね合わせると(合成すると)、前記上体回転モードとほとんど同じ運動になり、床反力水平成分が発生しなくなる。したがって、これを改めて前記上体回転モードとみなせば、本実施例のアルゴリズムにしたがって、同様の歩容を生成することができる。
【0373】
したがって、運動モードのひとつが床反力水平成分を発生しない運動モードである必要もない。いかなるモードの組み合わせであっても、床反力水平成分と目標ZMPまわりの床反力モーメントの発生の割合が異なるふたつの運動モードを用いさえすれば、上記例のように、任意の床反力水平成分と目標ZMPまわりの床反力モーメントを発生させることができるからである。
【0374】
また、上体姿勢を変化させる運動モード以外の運動モードを用いても良い。ただし、なるべく小さい変位で大きな床反力水平成分または目標ZMPまわりの床反力モーメントが発生できる運動モードを選ぶことが好ましい。
【0375】
例えば、左右の腕を同一回転方向に振りまわす運動モード、接地していない(空中に存在する)足平の位置を摂動させる運動モードでも良い。ただし、遊脚軌道を摂動させる場合には、着地位置が変わらないように着地直前までには、摂動量を実質的に0に戻すべきである。
【0376】
また、3つ以上の運動モードを用いても良い。
【0377】
また、選択した運動モードのうちの少なくとも2つは、その運動モードによる床反力水平成分と目標ZMPまわりの床反力モーメントとの発生比率が、互いに異なるものである必要がある。そうでないと、一般的に連立方程式の解がなくなる(各運動モードの挙動を一義的に決定できない)からである。
【0378】
さらにできる限り、床反力水平成分をあまり変化させないで目標ZMPまわりの床反力モーメントを十分に大きく変化させることができる運動モードと、目標ZMPまわりの床反力モーメントをあまり変化させないで床反力水平成分を十分に大きく変化させることができる運動モードとを組み合わせることが望ましい。
【0379】
言いかえると、全体重心をあまり変化させないで角運動量を十分に大きく変化させることができる運動モードと、角運動量をあまり変化させないで全体重心を十分に大きく変化させることができる運動モードとを組み合わせることが望ましい。このようにすると、運動モードの変位が小さくなるからである。
【0380】
前記実施形態に用いた動力学モデル以外にも以下のモデルを用いても良い。
1)図11に示したように複数のリンクに質点を設定した非線形なモデル(多質点モデル)
2)本願出願人による特願2000−352011号に示された3質点モデル
3)上体にのみ質量がある1質点モデル
4)全体重心まわりの角運動量変化によって生じる慣性力のモーメントを無視したモデル
5)重力と慣性力との合力(またはこれと釣り合う床反力)と上体並進運動との関係を表す部分モデルと、上記合力と上体回転運動との関係を表す部分モデルとを分離して持つ分離型モデル。例えば、図10に示す質点は、上記合力と上体並進運動との関係を表す部分モデルであり、図10に示すフライホイールは、上記合力と上体回転運動との関係を表す部分モデルである。
【0381】
また、各処理で用いられるモデルは同一でも良いし、処理に応じて適宜、モデルを使い分けても良い。例えば、前記定常歩容は今回歩容の終端状態を決定するためだけに生成されるものであるので、その定常歩容の動力学的な精度に対する要求は、今回歩容に比べて小さい。そこで、例えば、今回歩容の生成処理では、図10の動力学モデル(3質点+フライホイールのモデル)を用いる一方、定常歩容の生成処理(特に図21のS408、S412)では、各脚体2の質量を無視し、上体24に対応する上体質点24mと、フライホールFHとで構成される動力学モデル(図10のモデルで脚質点2m,2mを除去した1質点+フライホイールのモデル)を用いて定常歩容を生成するようにしてもよい。この場合の定常歩容の生成処理では、前記実施形態において、脚質点2mの質量を0として前記図21のS408、S412の処理を行なうようにすればよい。このようにすると、定常歩容の生成処理における演算量を大幅に削減できる。
【0382】
尚、前記実施形態において、ブロック線図、フローチャート、およびアルゴリズムなどは、演算処理順序を変えるなどの等価変形をしても良い。また、適宜ローパスフィルタを挿入しても良い。
【0383】
また、前記実施形態を2足移動ロボットに関して説明してきたが、3足以上の多脚ロボットにも応用することができる。
【0384】
前記図19のS206において初期(時刻Ts)上体鉛直位置Zsを決定する手法について補足すると、本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法では、両脚体の膝曲げ角がある関係を満足するように、上体鉛直位置が決定されるが、時刻0における(すなわち着地瞬間における)上体鉛直位置を決定方法としては、これ以外に、着地したばかりの脚体の膝曲げ角がある所定の角度あるいは角度範囲になるように決定しても良い。着地衝撃吸収能力は、主に着地する脚の膝曲げ角に依存するからである。補足すると、膝曲げ角が0に近いと(伸び過ぎていると)着地衝撃吸収能力が落ちる傾向がある。逆に曲げ過ぎると、膝関節アクチュエータのトルクが過大になるおそれがある。
【0385】
さらに補足すると、本実施形態では、図19のS206において、着地瞬間では上体鉛直位置をキネマティクス的(幾何学的)に決定し、それ以外の時期では目標鉛直床反力を基に動力学を満足するように上体鉛直位置を決定した。但し、より一般的に、着地前後または離床前後など、最も脚体が伸びる(言いかえると、膝曲げ角が最も零度に近い、あるいは股関節と足首の間の距離が最も長い)時における上体鉛直位置をキネマティクス的(幾何学的)に決定し、それ以外は、目標鉛直床反力を基に動力学を満足するように上体鉛直位置を決定しても良い。
【0386】
実施例のごとく、探索手法をもちいたり部分的に解析手法を用いたりして、定常歩容の初期状態(主に初期上体水平位置速度、初期上体鉛直位置速度のこと)を決定する手法の代わりに、あらかじめ、上記手法を用いて様々な定常歩容パラメータに対して計算しておき、定常歩容パラメータと定常歩容の初期状態との関係をマップ化あるいは近似式化して記憶して置き、実移動時には、マップ化あるいは近似式化された上記関係を基に、定常歩容の初期値を決定しても良い。
【0387】
さらには、マップ化あるいは近似式化された上記関係と上記関数fを合成した関数をマップ化あるいは近似式化して記憶しても良い。すなわち、前記した足平軌道パラメータ、床反力鉛直軌道パラメータ等からなる定常歩容パラメータから、定常歩容の発散成分を直接求める関数をマップ化あるいは近似式化して記憶しても良い。例えば、複数種類の代表的な定常歩容パラメータの組のそれぞれに対して、事前に定常歩容を生成しておき、各組の定常歩容パラメータに対する定常歩容の初期状態(図12のS024で求めるもの)を求めておき、さらにその各組の定常歩容パラメータと、定常歩容初期状態との関係を表すマップをあらかじめ作成しておく。そして、目標歩容を生成する際に、決定された定常歩容パラメータの組から、上記マップに基づいて選択あるいは補間によって定常歩容初期状態を求めるようにすればよい。このようにすれば、今回歩容の生成毎に、定常歩容を生成する必要がなくなり、目標歩容生成処理の演算量を大幅に削減できる。
【0388】
定常歩容につなげる(近づける)ための今回歩容の修正方法として、本実施形態では、今回歩容の目標ZMPパラメータを修正したが、それ以外のパラメータを修正しても良い。
【0389】
たとえば、今回歩容の遊脚の空中での軌道を変えても良い。また、たとえば、上体水平位置が定常歩容よりも後方にずれてしまいそうな場合には、遊脚を離床後すばやく前方に移動させて遊脚重心位置を前方にずらす。こうすることにより、目標ZMPを満足するための上体水平位置は、前方により一層加速せざるを得なくなる。この結果、上体水平位置が今回歩容終端において、より一層前方に移動し、定常歩容に一致させることができる。
【0390】
また、目標ZMPパラメータを修正する代わりに、今回歩容の周期を修正しても良い。たとえば、上体水平位置が定常歩容よりも後方にずれてしまいそうな場合には、今回歩容の周期を長くすれば良い。今回歩容の周期を長くことで、上体水平位置が移動する時間が延び、それだけ前方に移動できるからである。
【0391】
ただし、探索手法によって、上体水平位置等の適正値を決定するときに、目標ZMPパラメータを修正する場合では、目標ZMPの修正量にほぼ比例して、今回歩容終端上体水平位置が変化するので、上記適正値の探索回数が少なくて済む。これに対して、遊脚重心軌道や歩容の周期を修正する場合には、その修正に対して、今回歩容終端上体水平位置が、かなり非線形に変化するので、上記適正値の探索により多くの探索回数を要する。
【0392】
定常歩容につなげる(近づける)ための今回歩容の修正方法として、本実施形態では、今回歩容の目標ZMPパラメータを修正した。この方法では、場合によっては、目標ZMPパラメータの修正量(前記図38の修正量a)が過大になることがある。たとえば、その場でホッピングしている歩容からいきなり高速で移動する要求(走行要求)が与えられると、高速の定常歩容(走行の定常歩容)につなげる(近づける)ために、目標ZMPパラメータは、進行方向に対して後ろに極端に大きくずらす必要が生じる。この場合には、上記したように目標ZMPパラメータ以外の歩容パラメータも修正することが望ましい。但し、この場合では、実は、急激な加速を要求すること自体に無理があったわけであるから、要求値自身を修正しても良い。
【0393】
要求値の修正を行なう場合には、例えば、とりあえず本実施形態に示した手順に従って、要求(要求パラメータ)を満足する定常歩容を求め、この定常歩容につながるように今回歩容パラメータを決定した時点で、今回歩容の目標ZMP軌道の安定余裕が少なくなり過ぎたか否かを判定する。そして、安定余裕が少なくなり過ぎた場合(いわゆる支持多角形から目標ZMPが外れたり、支持多角形の端部付近に目標ZMPが位置するような場合)には、要求を修正するようにすれば良い。
【0394】
または、あらかじめ歩容の加減速度(次回歩容初期速度−今回歩容初期速度)/今回歩容の周期)の許容範囲を設定して置き、要求(歩容周期に関する要求パラメータ)を受けた時点で、該要求に対応する加減速度を求め、その求めた加減速度が許容範囲を越えていたら、許容範囲になるように、要求を修正しても良い。
【0395】
今回歩容の終端上体鉛直位置速度を定常歩容の初期上体鉛直位置速度に一致させるための床反力鉛直成分パラメータがロボットの能力を超えている場合には、前記位置速度両方を一致させる代わりに、少なくとも上体鉛直位置だけは一致させるように床反力鉛直成分パラメータを決定しても良い。
【0396】
あるいは、今回歩容の終端上体鉛直位置を定常歩容の初期上体鉛直位置よりも低くし、今回歩容の終端上体鉛直速度を定常歩容の初期上体鉛直速度よりも上向きに大きくなるように床反力鉛直成分パラメータを決定しても良い。
【0397】
あるいは、ある所定の重みを用いて、今回歩容の終端上体鉛直位置と今回歩容の終端上体鉛直速度の加重平均(重み付平均)を求め、求めた加重平均が、定常歩容の初期上体鉛直位置と初期上体鉛直速度の加重平均と一致するように床反力鉛直成分パラメータを決定しても良い。
【0398】
あるいは、ロボットの位置エネルギーと運動エネルギーとの和が、今回歩容の終端と定常歩容の初期で一致するように床反力鉛直成分パラメータを決定しても良い。
【0399】
あるいは、図34のS718において今回歩容の上体姿勢角が定常歩容の上体姿勢角に近づくように、上体姿勢復元モーメントZMP換算値(ZMPrec)のパターンを決定する手法を用いても良い。すなわち、S718の手法あるいは後述する今回歩容の上体姿勢復元モーメントZMP換算値(ZMPrec)を決定する別手法において、上体姿勢角を上体鉛直位置に、上体姿勢復元モーメントZMP換算値を床反力鉛直成分に置きかえた手法を用いて、床反力鉛直成分パラメータを決定しても良い。
【0400】
床反力水平成分許容範囲[Fxmin,Fxmax]を、式62と式63を満足するように設定しても良い。
【0401】
ただし、Fxmaxは、式12でKa=1とした場合のFxmaxの値より大きくならないように設定し、Fxminは、式12でKa=1とした場合のFxminの値より小さくならないように設定する。
【0402】
ここで、ZMPxは目標ZMPの水平位置、ZMPzは目標ZMPの鉛直位置を表す。
【0403】
またここで、(XG,ZG)は、少なくとも上体の質点を含む質点集合の重力と慣性力との合力を近似的に発生する質点の位置とする(XGは水平位置、ZGは鉛直位置を表す)。言い換えると、(XG,ZG)は、少なくとも上体の質点を含む質点集合を代表する質点の位置とする。例えば、全体重心位置、または脚体の一部を除く全体重心位置とする。あるいは、前記実施例に用いた図10に示す動力学モデルの上体質点24mの位置(Xb,Xz)でも良い。
【0404】
上記式62でkc = 0と設定した場合には、前記実施形態と同じになる(前記式12を参照)。
【0405】
kc = 1、かつFxmaxとFxminをほぼ0に設定した場合には、目標ZMP(ZMPx,ZMPz)に作用する目標床反力(Fx,Fz)のベクトルが、おおよそ(XG,ZG)を指すので、目標床反力の向きの変動(特に高い周波数の変動)を小さくすることができる。
【0406】
その結果、目標床反力水平成分Fxの変化が穏やかになって、接地性が高まりスリップを防止することができる。
【0407】
また、上体水平位置軌道の加速度はFxに比例するので、上体水平位置軌道の加速度の変化も穏やかになり、目標ZMPを修正したときの歩容終端上体水平位置の変化が線形的(直線的、リニア)になり、定常歩容や今回歩容の探索における収束が速くなり、探索回数を減らすことができる。
【0408】
さらに、kc = 1かつ、kmax = kmin = 0と設定した場合には、1質点モデルの挙動になる(特に、(XG,ZG)が全体重心の場合)。この場合、定常歩容の上体水平位置軌道が容易に探索可能である。
【0409】
また、式62において、(ZG−ZMPz)の代わりにある所定の定数にしても良い。歩行や走行中では、(ZG−ZMPz)は、大きく変動しない(変動しても10パーセント程度である)からである。
【0410】
kc = 1かつ、kmax = kmin = 0、かつ式62において、(ZG−ZMPz)の代わりにある所定の定数とし、(XG,ZG)を全体重心位置とした場合、1質点線形倒立振子の挙動になるので、挙動を解析的に解くことができ、探索手法を用いなくても、定常歩容や今回歩容を決定することができる。ただし、上体回転モードの角加速度の変動は大きくなる。
【0411】
補足すると、前記ΔMp、ΔFp、ΔMrおよびΔFrは、上記のごとく単純な動力学モデルを用いる場合には、動力学演算により解析的に求めても良いが、一般的なより複雑な動力学モデルを用いる場合には、上体を上体並進モードで微小量だけ加速または上体回転モードで微小量だけ加速させた場合の床反力を求め、加速させなかった場合の床反力との差を求め、この差を上記微小量で割ることによって求めれば良い。
【0412】
また、あらかじめ標準的な歩容におけるΔMp、ΔFp、ΔMr、ΔFrおよびΔMp /ΔMrなどのそれぞれの平均値を求めておいて、それを用いても良い。ΔMp、ΔFp、ΔMr、ΔFrおよびΔMp /ΔMrは、状態(姿勢とその変化率)によって変わるので、各瞬間の状態ごとに求める方法に較べて、精度は若干低下するが、上記モデルよりも複雑なモデルを用いた場合には、演算量を大幅に低減できる。
【0413】
前記図22のS504からS516までの処理および図37のS1002からS1014までの処理において、床反力水平成分Fxに許容限界まで余裕があれば、この余裕を用いて、その時点までの上体姿勢角加速度βの積分値、すなわち上体姿勢角速度を、徐々に元に(初期状態に)戻すようにしても良い。
【0414】
具体的には、S506およびまたはS1004において、まず、上体姿勢角加速度βの積分値を徐々に戻すための上体姿勢角加速度βの値(これをβrecと呼ぶ)をそれまでの上体姿勢角加速度βの積分値などから決定する。例えば、上体姿勢角加速度βの積分値に負のゲインを乗じた値をβrecとしても良い。
次に、Fxtmpを前記式17の代わりに次式70で決定する。
【0415】
式70の右辺第2項は、上体姿勢角加速度がβrecである上体回転モードの運動をさせた時に、目標ZMPまわりに発生するモーメント(βrec*ΔMr)を打ち消すために必要な上体並進モードの加速度(−βrec*ΔMr/ΔMp)によって生じる床反力水平成分を意味する。
【0416】
式70によって決定されるFxtmpは、ロボットの前回瞬時目標歩容状態(時刻k−1の目標歩容状態)から、仮に上体姿勢角加速度がβrecである上体回転モードの運動をさせながら上体並進モードの運動をさせた場合に、今回(時刻k)目標ZMPを満足するために必要な上体並進モードの上体水平加速度を意味する。
【0417】
それ以降の処理は、前記実施形態の通りとする。以上の処理により、床反力水平成分Fxの余裕を用いて、ある程度、上体姿勢角速度を復元することができるので、上体姿勢角速度変動をより一層小さく抑えることができる。
【0418】
図37のS1016において値が0に一定であるZMPrecのパターンを設定した場合に、仮今回歩容の終端上体姿勢角が定常歩容の初期上体姿勢角から大きくずれてしまう場合には、ずれが小さくなるように図26に示す台形パターンの高さを0以外に設定しても構わない。その代わりに、それ以降の図34のS718において、S718で求められる上体姿勢復元モーメントZMP換算値パターンに、S1016において設定した上体姿勢復元モーメントZMP換算値パターンを加算する必要がある。このようにすれば、最終的に得られる歩容は、S1016において値が0に一定であるパターンを設定した場合と同一またはほぼ同一の歩容になる。
【0419】
ただし、図34のS700の探索ループの処理を開始してから完了するまでの間は、図37のS1016において設定する上体姿勢復元モーメントZMP換算値パターン(図26に示すZMPrecの台形パターンの高さ)を変更しないことが望ましい。途中で変更すると、終端発散成分errqが収束しなくなり、ループを抜け出すことができなくなるおそれがあるからである。
【0420】
今回歩容の上体姿勢復元モーメントZMP換算値(ZMPrec)パターンの台形高さbcurrを決定する方法として、以下の方法を用いても良い。
【0421】
前記ZMPrec修正歩容(図34のS718の説明を参照)の今回歩容終端時点での上体姿勢角と角速度をそれぞれθcurr、vθcurrとし、これらと、定常歩容の初期上体姿勢角、角速度との差をΔθcerr、Δvθcerrとする。
【0422】
歩容周期をインターバルとし、仮今回歩容の終端上体姿勢角、角速度と定常歩容の初期上体姿勢角、角速度との差θerr、vθerrを前回状態、bcurrを入力、Δθcerr、Δvθcerrを今回状態とする離散系の状態方程式を立てて、Δθcerr、Δvθcerrを0に収束させるように、現代制御理論等を用いてフィードバック則を決定し、これに基づいてbcurrを求めても良い。
【0423】
今回歩容およびまたは定常歩容のZMPrecは、台形パターンとせず、各瞬間において、目標上体姿勢角・角速度と基準上体姿勢角・角速度との差などを基に、その差が0に収束するように、状態フィードバックなど則を用いて、各瞬間におけるZMPrecの値を決定しても良い。
【0424】
今回歩容のZMPrecは、台形パターンとせず、各瞬間において今回歩容の目標上体姿勢角・角速度を基に、これらが第1旋回歩容の初期上体姿勢角・角速度に近づくように、状態フィードバック則などを用いて、各瞬間におけるZMPrecを決定しても良い。
【0425】
次に、ロボット1の歩行歩容の生成に関して説明する。なお、ここで、歩行歩容は、空中期がなく、片脚支持期と両脚支持期とが交互に繰り返される歩容である。
【0426】
歩行歩容を生成する場合には、S106およびS606において以下のような処理を行う。すなわち、膝の曲げ角度が適切であるかなど、少なくとも各脚体の関節の変位に関する幾何学的条件(幾何学的制約条件)から決定した上体鉛直位置軌道(本出願人による特開平10−86080号公報に示される上体高さ決定手法などを用いた上体鉛直位置軌道)の位相や振幅などの特徴量をできる限り満足するように床反力鉛直成分軌道を決定する。
【0427】
これにより、歩容生成のアルゴリズムの主要部を走行と歩行とで共通化しつつ、歩行途中から走行へ、または走行途中から歩行に移行することもできるようになる。
【0428】
図43を用いてその処理を説明すると、まず、S1300において、本出願人が先に特開平10−86080号公報に提案した上体高さ決定法などを用いて、少なくとも各脚体2の関節の変位に関する所定の幾何学的制約条件を満足する上体鉛直位置軌道を求める。以降、これを基準上体鉛直位置軌道と呼ぶ。より具体的には、まず、要求パラメータに応じて決定した足平軌道パラメータや目標ZMP軌道パラメータなどを基に、本出願人が先に提案した特願2000−352011号の第1実施形態を用いて、上体水平位置軌道が求められる。なお、この場合、上体水平位置軌道は、床反力鉛直成分がロボット1の自重に一致し、また、上体鉛直位置が、あらかじめ定めた一定値であるとして、目標ZMP回りの床反力モーメントの水平成分が0になるように決定される。また、このときの上体姿勢軌道は例えば一定姿勢(鉛直姿勢等)の軌道でよい。
【0429】
次に、本願出願人が先に提案した上体高さ決定法(特開平10−86080号公報。より具体的には同公報の図6の手法等)を用いて、足平軌道パラメータにより定まる足平軌道や上記の如く決定した上体水平位置軌道、上体姿勢軌道を基に上体鉛直位置軌道が算出され、これをもって前記基準上体鉛直位置軌道とする。
【0430】
次にS1302に進み、基準上体鉛直位置軌道になるべく似た目標上体鉛直位置軌道を生成することが可能な床反力鉛直成分軌道を決定するために、基準上体鉛直位置軌道の振幅や位相などの特徴量が算出(抽出)される。例えば、基準上体鉛直位置軌道の振幅(最小値と最大値との差)が特徴量として算出される。
【0431】
次にS1304に進み、床反力鉛直成分軌道パラメータを基に生成される上体鉛直位置軌道が、前記特徴量をできる限り満足し得るように(前記基準上体鉛直位置軌道にできるだけ似たパターンになるように)、床反力鉛直成分軌道パラメータ(折れ点での時刻や床反力鉛直成分の値)が決定される。より具体的には、歩行歩容の場合、定常歩容の第1旋回歩容と第2旋回歩容、および今回歩容の床反力鉛直成分軌道は、例えば、図42のような折れ線状に設定される。すなわち、両脚支持期では、床反力鉛直成分の増加側に凸(上に凸)の台形状に設定され、片脚支持期では床反力鉛直成分の減少側に凸(下に凸)の台形状に設定される。そして、この床反力鉛直成分軌道を歩容初期(両脚支持期の開始時刻)から終端(片脚支持期の終了時刻)まで2階積分して得られるロボット1の全体重心鉛直位置軌道に対応する上体鉛直位置軌道の最大値と最小値との差が前記特徴量に一致するように、床反力鉛直成分軌道パラメータ、例えば該床反力鉛直成分軌道の2つの台形の高さC1,C2が決定される(この例では床反力鉛直成分軌道の折れ点の時刻は歩容周期に関する要求パラメータに応じて決定される)。
【0432】
ただし、定常歩容の床反力鉛直成分軌道のパラメータは、前述のごとく以下の条件も満足するように決定される。
条件)床反力鉛直成分軌道の定常歩容全期間(第1旋回歩容と第2旋回歩容両方の期間)における平均値をロボットの自重と一致させる。すなわち、床反力鉛直成分の平均値がロボットに作用する重力と同じ大きさで反対向きになるようにする。
【0433】
また、今回歩容の床反力鉛直成分軌道のパラメータは、前述のごとく、上体(全体重心)鉛直位置軌道が定常歩容に連続してつながるあるいは近づくように決定される。
【0434】
以上により、歩行歩容における目標床反力鉛直成分軌道(これを規定するパラメータ)が決定されることとなる。以上説明した目標床反力鉛直成分軌道の決定処理以外の歩容生成処理は、前記した走行歩容に係る実施形態と同一でよい。
【0435】
上記のごとく基準上体鉛直位置軌道を求めるために要する演算量はかなり多いので、定常歩容の運動パラメータ(足平軌道パラメータなど)と上体(全体重心)鉛直位置軌道の特徴量(振幅など)との関係を表すマップをあらかじめ作成して記憶しておいて、与えられた定常歩容パラメータから、上記マップを参照することで、特徴量を求めるようにしてもよい。
【0436】
または、床反力鉛直成分から生成される上体(全体重心)鉛直位置軌道の特徴量が基準上体鉛直位置軌道の特徴量にほぼ一致する場合における定常歩容の運動パラメータと床反力鉛直成分軌道パラメータとの関係を表すマップをあらかじめ作成して記憶しておいて、与えられた定常歩容パラメータから、上記マップを参照することで、床反力鉛直成分軌道パラメータを直接的に求めるようにしてもよい。
【0437】
なお、前記特徴量は、基本的には、前記幾何学的制約条件に基づく基準上体鉛直位置軌道の形状の特徴を表すものであればよく、該基準上体鉛直位置軌道の振幅や位相などのほか、周波数成分等(例えば基本周波数成分の振幅など)を特徴量として用いてもよい。
【0438】
さらには、上記の例では、1歩分の基準上体鉛直位置軌道の特徴量を用いたが、基準上体鉛直位置軌道の初期状態(位置・速度)を特徴量として用いて、以下のように床反力鉛直成分軌道パラメータを決定するようにしても良い。
【0439】
すなわち、図44に示すごとく、まずS1400において、本出願人が先に提案した上体高さ決定法(特開平10−86080号公報)などを用いて、少なくとも幾何学的制約条件に基づいて、歩容の初期時刻とそれからΔt秒後(制御周期後)の基準上体鉛直位置を決定し、これらの初期時刻及びΔt秒後の基準状態鉛直位置の差を基に、初期基準上体鉛直速度を算出する。なお、初期時刻とΔt秒後の基準状態鉛直位置は、例えば前記図43のS1300の処理を初期時刻からΔt秒後まで実行すれば決定できる。
【0440】
次いで、S1402に進み、初期基準上体鉛直速度と足平軌道パラメータにより定まる足平位置軌道とを基に、ロボット幾何学モデル(例えば式04の両辺を微分したもの)を用いて、初期基準全体重心鉛直速度を算出する。
【0441】
最後に、S1404に進み、床反力鉛直成分軌道から生成される全体重心鉛直位置軌道の初期速度が、上記の如く求めた初期基準全体重心鉛直速度に一致するように、床反力鉛直成分軌道パラメータを決定する。なお、この場合も、上記初期速度の条件だけでなく、定常歩容と今回歩容とでそれらに係わる前記した条件(図43の処理に関して説明した条件)をも満たすように床反力鉛直成分軌道パラメータが決定される。
【0442】
また、図44の処理を図14のS106で行うと、その時点で初期(時刻Ts)上体鉛直速度Vzsが決定されるので、当然、図19のS206においては、上体鉛直速度Vzsを求める処理を省略できる。
【0443】
歩行歩容を生成する場合には、本出願人が先に提案した上体高さ決定法(特開平10−86080号公報)などを用いて、少なくとも幾何学的制約条件に基づいて上体鉛直位置を決定し、走行歩容を生成する場合には、前記図36のS906、S908のごとく床反力鉛直成分から決定されるようにしても良い。この場合、歩行から走行あるいは走行から歩行に移行する際の歩容における最終的な上体鉛直位置は、幾何学的制約条件に基づいて決定される歩行用の上体鉛直位置Zgと、床反力鉛直成分から動力学的に決定される走行用の上体鉛直位置Zfとを合成することにより決定することが好ましい。より具体的には、例えば次式71のように、それらの上体鉛直位置Zg,Zfの重み付き平均により最終的な上体鉛直位置Zを決定する。この場合、重みwを1から0あるいは0から1に徐々に変化させる。
【0444】
これにより、歩行と走行の間の移行時の上体鉛直位置軌道を滑らかに変化させることができる。
【0445】
上体鉛直位置Z =(1−w)*Zg + w*Zf …式71
具体的な処理を図45を用いて説明すると、まず、S1500において、前記の実施形態で説明した如く(図36のS908を参照)、目標床反力鉛直成分軌道に応じて定まる全体重心鉛直位置軌道を満足する上体鉛直位置Zfを算出する。次いでS1502に進み、本出願人が先に提案した上体高さ決定法などを用いて、少なくとも各脚体2の関節(膝関節)の変位に関する幾何学的制約条件に基づいて決定される上体鉛直位置Zgを生成する。
【0446】
次いで、S1504に進み、歩容の時期に応じて重みwを決定する。例えば、歩容の初期から終端にかけて、0から1または1から0に徐々に変化するように前記式71の重みwを決定する。この場合、歩行から走行への移行時には、wを0から1に変化させ、走行から歩行への移行時には、wを1から0に変化させるように重みwを決定する。なお、この時、重みwの変化率(重みの1階時間微分)も連続的に変化するように設定すると良い。さらには、重みwの変化率の変化率(重みの2階時間微分)も連続的に変化するように設定すると良い。こうすることにより、最終的に生成される上体鉛直位置軌道が滑らかになる。
【0447】
最後に、S1506に進み、前記式71により、最終的な上体鉛直位置を決定する。
【0448】
なお、上記のごとく、歩行から走行あるいは走行から歩行に移行する時にだけ、重みwが0と1の中間の値をとるのではなく、それ以外の時でも重みwが0と1の中間の値をとるようにしても良い。また、歩行から走行、または走行から歩行への移行は、1歩容で行なう必要はなく、複数歩容で行なうようにしてもよい。
【0449】
斜面移動時(傾斜した床面でロボット1を移動させるとき)の歩容生成においては、床反力水平成分許容範囲や全体重心加速度水平成分の代わりに、並進床反力の床面平行成分(床面に平行な成分)、すなわち摩擦力の許容範囲、あるいは全体重心加速度の床面平行成分(これは摩擦力に比例する)の許容範囲を設定するようにしてもよい。例えば、並進床反力の床面平行成分(摩擦力)の許容範囲を設定する場合に関して説明(この説明は全体重心加速度の床面平行成分の許容範囲を設定する場合でも同様である)すると、該摩擦力は、床面の水平面に対する傾斜角度θf(ロボット1の進行方向に向かって前下がり斜面の場合を正とする)とすると、次式72の関係が成立する。従って、前記実施形態と同様のアルゴリズムに歩容を生成する場合、この式72の関係を用いて、摩擦力許容範囲を床反力水平成分許容範囲に変換することで、該床反力水平成分許容範囲を設定するようにすればよい。なお、この場合、式72の床反力鉛直成分には、目標床反力鉛直成分を用いればよい。
【0450】
今回歩容のパラメータ決定は、前記実施形態のように前回歩容が完了した時点で行う以外に、本願出願人による特願2000−352011号に記述されているように、今回歩容の生成途中で、再決定しても良い。こうすることにより、演算量は増えるが、歩容に対する要求に変更があった時に即応できるからである。
【0451】
また、歩容の修正(今回歩容パラメータを再決定すること)が、今回制御周期で間に合わない場合には、とりあえず今回は、修正しない歩容あるいは暫定的に修正した歩容(探索途中の歩容であって、完全には、探索完了条件(歩容境界条件のずれが許容値以内に入っていること)を満足していない歩容)を出力し、次回制御周期までに、あるいは複数制御周期後までに(暫定的でない)適切な修正歩容にしても良い。修正された目標ZMP軌道と目標床反力鉛直成分軌道は連続であり、短時間後では、これらが急激に変化することはないので、今回歩容の目標ZMP軌道と目標床反力鉛直成分軌道が若干ぎざぎざになるだけで、ほとんど問題はない。
【0452】
前記図12のS032における、スピン力をキャンセルする腕振り動作の代わりに、上体24をその体幹軸(あるいは鉛直軸)まわりに回転させる(ひねる)動作を行っても良い。あるいは、腕振り動作と上体24をその体幹軸(あるいは鉛直軸)まわりに回転させる(ひねる)動作とを併用しても良い。
【0453】
前記図21のS408および図36のS908において、全体重心鉛直位置速度を満足する上体鉛直位置を決定する際には、前述のごとく式04などを用いて解析的に上体鉛直位置を決定する代わりに、以下の別手法1または2によって上体鉛直位置を決定しても良い。
別手法1
図46に、別手法1の演算処理フローチャートを示す。
【0454】
まずS1100において、前回瞬時目標歩容状態(時刻k−1に決定された目標歩容状態)などを基に動力学モデルを用いて全体重心鉛直位置・速度が算出される。以降、動力学モデルを用いて算出した全体重心鉛直位置・速度をモデル全体重心鉛直位置・速度と呼ぶ。すなわち、S1100では、前回モデル全体重心鉛直位置・速度が算出される。なお、上記動力学モデルは例えば前記図11のような多質点モデル等を用いればよい。
【0455】
次いで、S1102に進み、上記の如く求めた前回モデル全体重心鉛直位置・速度と、図21のS406または図36のS906において算出された全体重心鉛直位置速度、すなわち目標床反力鉛直成分の今回値(時刻kの値)を満足する全体重心鉛直位置・速度との差(位置の差と速度の差の両者。以降この差を重心鉛直位置・速度偏差と呼ぶ)が求められる。すなわち、次式80により重心鉛直位置・速度偏差が決定される。
次いで、S1104に進み、目標床反力鉛直成分を満足する全体重心鉛直位置・速度に前記モデル全体重心鉛直位置・速度が追従するように、少なくとも前記重心鉛直方向偏差と前回上体鉛直位置(時刻k−1で決定された上体鉛直位置)を基に、今回上体鉛直位置(上体鉛直位置の今回値)を決定する。例えば、次式によって今回上体鉛直位置が決定される。
【0456】
ただし、Kgz、Kgvzはゲインである。
【0457】
Kgvzは0でも構わない。この場合、モデル全体重心鉛直速度、目標床反力鉛直成分を満足する全体重心鉛直速度および重心鉛直方向速度偏差を算出する必要はない。
【0458】
以上のごとく、今回上体鉛直位置が算出される。この場合、式81によるときには、重心鉛直位置偏差及び重心鉛直速度偏差に応じて今回上体鉛直位置が算出されることとなる。
【0459】
また、今回上体鉛直位置を求めるために、重心鉛直位置偏差に応じた成分や、重心鉛直速度偏差に応じた成分の他、さらに、例えば以下のようにロボット1のモデル(例えば図10のモデルからフライホイールFHを除いた3質点モデル)を用いて求めた上体鉛直位置に応じた成分(フィードフォワード成分)を前回上体鉛直位置に加算することで、今回上体鉛直位置を求めるようにしてもよい。この場合には、図21のS406または図36のS906において算出された全体重心鉛直位置速度、すなわち目標床反力鉛直成分の今回値(時刻kの値)を満足する全体重心鉛直位置速度と、図21のS404または図36のS904において算出された目標両足平位置姿勢の今回値(時刻kの値)とから、例えば上記3質点モデルを用いて仮上体鉛直位置(これをここでは、FF上体鉛直位置という)を求める。なお、図21のS408または図36のS908において前述の如く図10のモデルを用いて上体鉛直位置を求めていた場合には、それをそのまま上記FF上体鉛直位置として用いればよい。そして、このようにして求めたFF上体鉛直位置に適当なゲインを乗算したものをフィードフォワード成分として、前記式81の右辺にさらに加算し、これにより、今回上体鉛直位置を求める。つまり、重心鉛直位置偏差及び重心鉛直速度偏差と(重心鉛直速度偏差は省略してもよい)、FF上体鉛直位置とに応じて前回上体鉛直位置を補正することで、今回上体鉛直位置が求められる。このようにすると、最終的に求められる今回上体鉛直位置の変動を抑えることができる。なお、この手法で前回上体鉛直位置を求めるために用いるロボット1のモデルは、より厳密なモデルであることが好ましい。
別手法2
また、以下に示すように繰り返し探索手法を用いた別手法2によって今回上体鉛直位置を決定しても良い。
【0460】
図47に、その手法の演算処理フローチャートを示す。
【0461】
まずS1200において、上体鉛直位置速度(より詳しくは上体鉛直位置速度の今回値の候補)が仮決定される。例えば、前回目標歩容瞬時値の上体鉛直位置速度(前回値)が上体鉛直位置速度の候補値として仮決定される。あるいは、上体鉛直位置の前回値に、前回目標歩容瞬時値の上体鉛直速度と制御周期Δtとの積を加えた値を上体鉛直位置の候補値として仮決定しても良い。
【0462】
次いで、S1202を経て、S1204に進み、上体鉛直位置速度(候補)の現在値(現在の仮決定値)と、前記求めた目標両足平位置姿勢の今回値、時刻(k−Δk)の目標上体姿勢(または前記求めた基準上体姿勢の今回値)、前記求めた目標腕姿勢の今回値、時刻(k−Δk)の上体水平位置およびそれらの変化率から決定されるロボット1の姿勢状態から今回モデル全体重心鉛直位置・速度が算出される。なお、今回モデル全体重心鉛直位置・速度の算出で用いる一部の変数には前回値が用いられている。
【0463】
次いで、S1206に進み、次式82により、重心鉛直方向位置・速度偏差を算出する。
【0464】
次いで、S1208に進み、式82で求めた重心鉛直位置偏差が所定の許容範囲内にあれば、最終的に求められた上体鉛直位置(現在値)を上体鉛直位置の今回値(今回上体鉛直位置)として決定し、今回上体鉛直位置決定の処理を完了する。また、S1208の判断で重心鉛直位置偏差が所定の許容範囲内にない場合には、S1210に進み、次式により、上体鉛直位置の次候補を決定する。
【0465】
次いで、S1212に進み、上体鉛直位置次候補を改めて上体鉛直位置とし(上体鉛直位置の候補を更新する)、再びS1204に進む。そして、この新たな上体鉛直位置の候補を基に今回モデル全体重心鉛直位置・速度が求められ、以下、重心鉛直方向位置・速度偏差が所定の許容範囲内になるまで、上記の処理が繰り返される。
【0466】
これらの手法1、2は、モデル全体重心鉛直位置が、図21のS406または図36のS908において算出された全体重心鉛直位置、すなわち目標床反力鉛直成分の今回値を全体質量で割った値を2階積分することにより得られる全体重心鉛直位置に追従またはほぼ一致するように、上体鉛直位置を決定するものである。
【0467】
この代わりに、モデル全体重心鉛直速度が、目標床反力鉛直成分の今回値を全体質量で割った値を1階積分することにより得られる全体重心鉛直速度に追従またはほぼ一致するように、手法1または手法2と同様の手法により上体鉛直速度を決定し、これを1階積分することにより上体鉛直位置を決定しても良い。
【0468】
または、モデル全体重心鉛直加速度が、目標床反力鉛直成分の今回値を全体質量で割った値に追従またはほぼ一致するように、手法1または手法2と同様の手法により上体鉛直加速度を決定し、これを2階積分することにより上体鉛直位置を決定しても良い。
【0469】
ただし、前記別手法1および2に較べ、瞬間的な動力学的誤差は少ないが、積分誤差によって、モデル全体重心鉛直位置が、目標床反力鉛直成分の今回値を全体質量で割った値を2階積分することにより得られる全体重心鉛直位置からずれても、そのずれを0に収束される作用が働かないので、歩容の動力学的精度が長期的には低下する傾向がある。
【0470】
言いかえると、前記別手法1および2においては、瞬間的な動力学的誤差は若干大きいが、長期的な動力学的誤差は少ないので、ロボットの姿勢の安定性が高くなる。
[産業上の利用可能性]
以上のように本発明は2足移動ロボット等の脚式移動ロボットを、様々な歩容形態で円滑に移動させることが可能な歩容を生成することができるものとして有用である。
【図面の簡単な説明】
【図1】本発明の実施形態における脚式移動ロボットとしての2足移動ロボットの全体的構成の概略を示す概略図。
【図2】図1のロボットの各脚体の足平部分の構成を示す側面図。
【図3】図1のロボットに備えた制御ユニットの構成を示すブロック図。
【図4】図3の制御ユニットの機能的構成を示すブロック図。
【図5】図1のロボットの走行歩容を例示する説明図。
【図6】目標床反力鉛直成分の設定例を示す線図。
【図7】目標ZMPの設定例を示す線図。
【図8】ロボットの運動モード(上体並進モード)の説明図。
【図9】ロボットの運動モード(上体回転モード)の説明図。
【図10】ロボットの動力学モデルの説明図。
【図11】ロボットの動力学モデルの説明図。
【図12】図3の制御ユニットに備えた歩容生成装置のメインルーチン処理を示すフローチャート。
【図13】ロボットの上体位置の発散状態を示す説明図。
【図14】図12のフローチャートサブルーチン処理を示すフローチャート。
【図15】定常歩容足平着地位置姿勢及び座標系の関係を示す説明図。
【図16】定常歩容の目標床反力鉛直成分の設定例を示す線図。
【図17】定常歩容の床反力水平成分許容範囲の設定例を示す線図。
【図18】定常歩容の目標ZMPの設定例を示す線図。
【図19】図12のフローチャートのサブルーチン処理を示すフローチャート。
【図20】図19のフローチャートのサブルーチン処理を示すフローチャート。
【図21】図20のフローチャートのサブルーチン処理を示すフローチャート。
【図22】図21のフローチャートのサブルーチン処理を示すフローチャート。
【図23】図22のフローチャートの要部の処理を説明するための線図。
【図24】図22のフローチャートの要部の処理を説明するための線図。
【図25】図22のフローチャートの要部の処理を説明するための線図。
【図26】図22のフローチャートの要部の処理を説明するための線図。
【図27】図22のフローチャートの要部の処理を説明するための線図。
【図28】図22のフローチャートの要部の処理を説明するための線図。
【図29】図22のフローチャートの要部の処理を説明するための線図。
【図30】図22のフローチャートの要部の処理を説明するための線図。
【図31】定常歩容における上体位置の軌道の例を示す説明図。
【図32】図12のフローチャートのサブルーチン処理を示すフローチャート。
【図33】今回歩容の床反力水平成分許容範囲の設定例を示す線図。
【図34】図12のフローチャートのサブルーチン処理を示すフローチャート。
【図35】図34のフローチャートのサブルーチン処理を示すフローチャート。
【図36】図35のフローチャートのサブルーチン処理を示すフローチャート。
【図37】図36のフローチャートのサブルーチン処理を示すフローチャート。
【図38】図37のフローチャートの要部の処理を説明するための線図。
【図39】今回歩容と定常歩容とにおける上体水平位置軌道の関係を示す線図。
【図40】ロボットの運動のモードの他の例を示す説明図。
【図41】定常歩容に収束する今回歩容の終端における上体水平位置と上体水平速度との関係を示す線図。
【図42】歩行歩容における目標床反力鉛直成分の設定例を示す線図。
【図43】歩行歩容における目標床反力鉛直成分の設定処理を例示するフローチャート。
【図44】歩行歩容における目標床反力鉛直成分の設定処理を例示するフローチャート。
【図45】歩行と走行との間の歩容の切換に関する処理を示すフローチャート。
【図46】目標上体鉛直位置の決定処理を例示するフローチャート。
【図47】目標上体鉛直位置の決定処理を例示するフローチャート。
【図48】走行歩容における上体鉛直位置と床反力鉛直成分との関係を示す線図。
【図49】歩行歩容における上体鉛直位置と床反力鉛直成分との関係を示す線図。
Claims (8)
- 上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
少なくとも前記上体の水平方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合により表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成することを特徴とする脚式移動ロボットの歩容生成装置。 - 上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
少なくとも各脚体先端部の運動と上体の水平方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合により表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成することを特徴とする脚式移動ロボットの歩容生成装置。 - 上体から延設された複数の脚体を運動させて移動する脚式移動ロボットの目標歩容を生成する歩容生成装置において、
少なくとも各脚体先端部の運動と上体の水平方向並進運動と上体の鉛直方向並進運動と前記ロボットの重心位置を維持しつつ該ロボットの所定の部位の姿勢を変化させる姿勢変化運動とこれらの各運動により発生する床反力との関係を表し、且つ該各運動を合成してなる運動によって発生する総床反力が各運動に対応する床反力の線形結合により表されるものとしてあらかじめ定められた動力学モデルを用い、ロボットに作用する重力と慣性力との合力が所定の動力学的平衡条件を満たすように前記目標歩容を生成することを特徴とする脚式移動ロボットの歩容生成装置。 - 前記ロボットの目標ZMPを設定する手段を備え、前記動力学的平衡条件は、前記目標歩容の運動によって前記目標ZMP回りに発生するモーメントが略零であるという条件であることを特徴とする請求項1〜3のいずれか1項に記載の脚式移動ロボットの歩容生成装置。
- 前記所定の部位は、ロボットの上体であることを特徴とする請求項1〜3のいずれか1項に記載の脚式移動ロボットの歩容生成装置。
- 前記動力学モデルは、前記上体の水平方向並進運動を質点の水平方向並進運動により表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることを特徴とする請求項1記載の脚式移動ロボットの歩容生成装置。
- 前記動力学モデルは、前記各脚体先端部の運動をそれぞれ各脚体に対応する質点の運動により表し、前記上体の水平方向並進運動を該上体に対応する質点の水平方向並進運動で表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることを特徴とする請求項2記載の脚式移動ロボットの歩容生成装置。
- 前記動力学モデルは、前記各脚体先端部の運動をそれぞれ各脚体に対応する質点の運動により表し、前記上体の水平方向並進運動及び鉛直方向並進運動をそれぞれ該上体に対応する質点の水平方向並進運動及び鉛直方向並進運動で表し、前記所定の部位の姿勢変化運動をフライホイールの回転運動により表すモデルであることを特徴とする請求項3記載の脚式移動ロボットの歩容生成装置。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2001399496 | 2001-12-28 | ||
| JP2001399496 | 2001-12-28 | ||
| PCT/JP2002/013598 WO2003057426A1 (en) | 2001-12-28 | 2002-12-26 | Gait producing device for leg type movable robot |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPWO2003057426A1 JPWO2003057426A1 (ja) | 2005-05-19 |
| JP3674789B2 true JP3674789B2 (ja) | 2005-07-20 |
Family
ID=19189479
Family Applications (7)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003557767A Expired - Lifetime JP3674789B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557763A Expired - Lifetime JP3674788B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557764A Expired - Lifetime JP3672100B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557770A Expired - Lifetime JP3640255B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557765A Expired - Lifetime JP3672101B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557771A Expired - Lifetime JP3672103B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置及び制御装置 |
| JP2003557766A Expired - Lifetime JP3672102B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置及び制御装置 |
Family Applications After (6)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2003557763A Expired - Lifetime JP3674788B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557764A Expired - Lifetime JP3672100B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557770A Expired - Lifetime JP3640255B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557765A Expired - Lifetime JP3672101B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置 |
| JP2003557771A Expired - Lifetime JP3672103B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置及び制御装置 |
| JP2003557766A Expired - Lifetime JP3672102B2 (ja) | 2001-12-28 | 2002-12-26 | 脚式移動ロボットの歩容生成装置及び制御装置 |
Country Status (6)
| Country | Link |
|---|---|
| US (7) | US7487011B2 (ja) |
| EP (7) | EP1470900B1 (ja) |
| JP (7) | JP3674789B2 (ja) |
| KR (7) | KR100881608B1 (ja) |
| DE (7) | DE60236460D1 (ja) |
| WO (7) | WO2003057422A1 (ja) |
Families Citing this family (117)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US7319918B2 (en) * | 2001-12-28 | 2008-01-15 | Honda Giken Kogyo Kabushiki Kaisha | Gait generation device for legged mobile robot |
| US7487011B2 (en) * | 2001-12-28 | 2009-02-03 | Honda Giken Kogyo Kabushiki Kaisha | Gait generation device for legged mobile robot |
| DE60313952T2 (de) * | 2002-01-18 | 2008-01-24 | Honda Giken Kogyo K.K. | Steuerung für mobilen roboter mit beinen |
| EP2208581B1 (en) | 2002-04-26 | 2011-09-07 | Honda Giken Kogyo Kabushiki Kaisha | Control device of legged mobile robot |
| KR100956539B1 (ko) | 2002-04-26 | 2010-05-07 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 자기자세 추정 장치 |
| JP3599244B2 (ja) | 2002-11-06 | 2004-12-08 | ソニー株式会社 | ロボット装置、ロボット装置の運動制御装置並びに運動制御方法 |
| US7238079B2 (en) * | 2003-01-14 | 2007-07-03 | Disney Enterprise, Inc. | Animatronic supported walking system |
| CN100344416C (zh) * | 2003-03-23 | 2007-10-24 | 索尼株式会社 | 机器人装置和控制该装置的方法 |
| KR101112496B1 (ko) | 2003-06-27 | 2012-08-01 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 제어장치 |
| KR101083417B1 (ko) | 2003-06-27 | 2011-11-14 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 제어장치 |
| KR20050005995A (ko) * | 2003-07-08 | 2005-01-15 | 삼성전자주식회사 | 2족 보행 이동 장치의 보행 제어 방법 |
| JP4592276B2 (ja) * | 2003-10-24 | 2010-12-01 | ソニー株式会社 | ロボット装置のためのモーション編集装置及びモーション編集方法、並びにコンピュータ・プログラム |
| JP4513320B2 (ja) * | 2003-12-17 | 2010-07-28 | ソニー株式会社 | ロボット装置、並びにロボット装置の運動制御方法 |
| WO2005075156A1 (ja) * | 2004-02-06 | 2005-08-18 | Honda Motor Co., Ltd. | 移動ロボットの歩容生成装置 |
| EP1738878B1 (en) | 2004-02-16 | 2011-09-28 | Honda Motor Co., Ltd. | Gait generator for mobile robot |
| US7715945B2 (en) * | 2004-02-27 | 2010-05-11 | Honda Motor Co., Ltd. | Gait producing device for moving robot |
| JP4744092B2 (ja) * | 2004-03-23 | 2011-08-10 | 本田技研工業株式会社 | 脚式移動ロボットおよびその制御装置 |
| JP4971977B2 (ja) * | 2004-03-31 | 2012-07-11 | 本田技研工業株式会社 | 角運動量の変化率に基づいて脚式ロボットを制御する方法 |
| JP4613539B2 (ja) * | 2004-07-16 | 2011-01-19 | トヨタ自動車株式会社 | ロボットの動作計画方法 |
| JP4410051B2 (ja) * | 2004-07-22 | 2010-02-03 | 本田技研工業株式会社 | 角速度計測装置および脚式移動ロボット |
| JP4485279B2 (ja) | 2004-08-02 | 2010-06-16 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置および制御装置 |
| JP2006068872A (ja) * | 2004-09-03 | 2006-03-16 | Honda Motor Co Ltd | 脚式移動ロボット |
| WO2006040868A1 (ja) | 2004-10-15 | 2006-04-20 | Honda Motor Co., Ltd. | 脚式移動ロボットの歩容生成装置 |
| JP4531520B2 (ja) * | 2004-10-15 | 2010-08-25 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
| US8014896B2 (en) | 2004-12-14 | 2011-09-06 | Honda Motor Co., Ltd. | Legged mobile robot and control program |
| WO2006064598A1 (ja) | 2004-12-14 | 2006-06-22 | Honda Motor Co., Ltd. | 脚式移動ロボットおよびその制御プログラム |
| JP4440761B2 (ja) * | 2004-12-24 | 2010-03-24 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
| JP4548135B2 (ja) | 2005-02-03 | 2010-09-22 | トヨタ自動車株式会社 | 脚式ロボットとその制御方法 |
| JP4492395B2 (ja) * | 2005-03-09 | 2010-06-30 | トヨタ自動車株式会社 | 脚式ロボットとその動作制御方法 |
| US7835822B2 (en) * | 2005-03-30 | 2010-11-16 | Honda Motor Co., Ltd. | Systems and methods for controlling a legged robot using a two-phase disturbance response strategy |
| US7689320B2 (en) * | 2005-12-20 | 2010-03-30 | Intuitive Surgical Operations, Inc. | Robotic surgical system with joint motion controller adapted to reduce instrument tip vibrations |
| JP4951732B2 (ja) * | 2006-05-02 | 2012-06-13 | ソニー株式会社 | 駆動方法、駆動制御装置及びロボット |
| KR100835354B1 (ko) * | 2006-07-05 | 2008-06-04 | 삼성전자주식회사 | 보행로봇 및 그의 제어방법 |
| JP4591419B2 (ja) * | 2006-07-18 | 2010-12-01 | トヨタ自動車株式会社 | ロボットとその制御方法 |
| JP4692443B2 (ja) | 2006-09-06 | 2011-06-01 | トヨタ自動車株式会社 | 脚式ロボット |
| US8180486B2 (en) * | 2006-10-02 | 2012-05-15 | Honda Motor Co., Ltd. | Mobile robot and controller for same |
| JP4930003B2 (ja) * | 2006-11-20 | 2012-05-09 | 株式会社日立製作所 | 移動ロボット |
| US7949430B2 (en) * | 2006-11-29 | 2011-05-24 | Honda Motor Co., Ltd. | Determination of foot placement for humanoid push recovery |
| JP4985776B2 (ja) * | 2007-09-25 | 2012-07-25 | 富士通株式会社 | ロボット制御装置、ロボット制御方法およびロボット制御プログラム |
| WO2009067458A1 (en) * | 2007-11-21 | 2009-05-28 | Honda Motor Co., Ltd. | Learning capture points for humanoid push recovery |
| KR100958114B1 (ko) * | 2007-12-17 | 2010-05-18 | 한국과학기술연구원 | 인간형 로봇의 보행 안정화 및 자세 제어 방법 |
| JP2010058253A (ja) * | 2008-09-08 | 2010-03-18 | Waseda Univ | 2足歩行ロボットの制御装置、及び2足歩行ロボットの制御方法 |
| US8352077B2 (en) * | 2008-12-19 | 2013-01-08 | Honda Motor Co., Ltd. | Inertia shaping for humanoid fall direction change |
| TW201031507A (en) * | 2009-02-25 | 2010-09-01 | Micro Star Int Co Ltd | Control apparatus of a multi-axial joint and control method thereof |
| JP5219956B2 (ja) * | 2009-07-23 | 2013-06-26 | 本田技研工業株式会社 | 移動体の制御装置 |
| JP5506618B2 (ja) * | 2009-12-28 | 2014-05-28 | 本田技研工業株式会社 | ロボットの制御装置 |
| KR101687631B1 (ko) * | 2010-01-18 | 2016-12-20 | 삼성전자주식회사 | 로봇의 보행 제어 장치 및 그 제어 방법 |
| JP5398592B2 (ja) * | 2010-03-01 | 2014-01-29 | 本田技研工業株式会社 | 脚式移動ロボットの運動状態評価装置 |
| US8396593B2 (en) | 2010-03-01 | 2013-03-12 | Honda Motor Co., Ltd. | Gait generating device of legged mobile robot |
| US8428780B2 (en) * | 2010-03-01 | 2013-04-23 | Honda Motor Co., Ltd. | External force target generating device of legged mobile robot |
| JP5398589B2 (ja) | 2010-03-01 | 2014-01-29 | 本田技研工業株式会社 | 脚式移動ロボットの目標運動評価装置 |
| US9120512B2 (en) | 2010-04-22 | 2015-09-01 | Honda Motor Co., Ltd. | Control device and gait generating device for bipedal mobile robot |
| JP5468974B2 (ja) * | 2010-04-22 | 2014-04-09 | 本田技研工業株式会社 | 2足移動ロボットの制御装置及び歩容生成装置 |
| KR101200191B1 (ko) * | 2010-07-14 | 2012-11-13 | 서울대학교산학협력단 | 데이터 기반 바이페드 제어 장치 및 방법 |
| US8880221B2 (en) * | 2011-03-21 | 2014-11-04 | Honda Motor Co., Ltd. | Damage reduction control for humanoid robot fall |
| JP5752500B2 (ja) | 2011-06-27 | 2015-07-22 | 本田技研工業株式会社 | 軌道生成システム |
| US20130077820A1 (en) * | 2011-09-26 | 2013-03-28 | Microsoft Corporation | Machine learning gesture detection |
| KR20130073591A (ko) * | 2011-12-23 | 2013-07-03 | 삼성전자주식회사 | 지지모듈 및 이를 포함하는 로봇 |
| KR101985790B1 (ko) * | 2012-02-21 | 2019-06-04 | 삼성전자주식회사 | 보행 로봇 및 그 제어 방법 |
| US9605952B2 (en) * | 2012-03-08 | 2017-03-28 | Quality Manufacturing Inc. | Touch sensitive robotic gripper |
| US9156159B2 (en) * | 2012-03-08 | 2015-10-13 | Disney Enterprises Inc. | Robot cyclic locomotion using a dynamic object |
| CN102672719B (zh) * | 2012-05-10 | 2014-11-19 | 浙江大学 | 一种仿人机器人手臂作业动态稳定控制方法 |
| KR101348404B1 (ko) * | 2012-05-29 | 2014-01-09 | 이학용 | 와이어가이드 및 그를 이용한 구동장치 |
| JP5642214B2 (ja) * | 2013-02-15 | 2014-12-17 | 株式会社神戸製鋼所 | 多関節ロボットの弾性変形補償制御装置 |
| JP6071815B2 (ja) * | 2013-09-06 | 2017-02-01 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
| KR101456797B1 (ko) | 2013-10-10 | 2014-10-31 | 재단법인대구경북과학기술원 | 다리식 이동 로봇의 방향 전환 제어 장치 및 그 방법 |
| JP5859036B2 (ja) * | 2014-02-04 | 2016-02-10 | 本田技研工業株式会社 | ロボット |
| JP5897644B2 (ja) * | 2014-06-02 | 2016-03-30 | 株式会社神戸製鋼所 | ロボットの制御装置 |
| US9618937B1 (en) | 2014-08-25 | 2017-04-11 | Google Inc. | Slip detection using robotic limbs |
| US10081098B1 (en) | 2014-08-25 | 2018-09-25 | Boston Dynamics, Inc. | Generalized coordinate surrogates for integrated estimation and control |
| US9387896B1 (en) * | 2014-08-25 | 2016-07-12 | Google Inc. | Slip avoidance |
| US9387588B1 (en) | 2014-08-25 | 2016-07-12 | Google Inc. | Handling gait disturbances with asynchronous timing |
| US9623556B1 (en) * | 2014-09-03 | 2017-04-18 | X Development Llc | Robotic sole joint |
| JP6228097B2 (ja) * | 2014-10-06 | 2017-11-08 | 本田技研工業株式会社 | 移動ロボット |
| US9446518B1 (en) * | 2014-11-11 | 2016-09-20 | Google Inc. | Leg collision avoidance in a robotic device |
| US9499218B1 (en) | 2014-12-30 | 2016-11-22 | Google Inc. | Mechanically-timed footsteps for a robotic device |
| CN104765372B (zh) * | 2015-03-02 | 2017-11-10 | 湘潭大学 | 一种多足机器人保持直线平动的步态规划方法 |
| JP6407409B2 (ja) * | 2015-04-02 | 2018-10-17 | 国立大学法人大阪大学 | 脚型機構体、歩行ロボット、姿勢制御方法及びプログラム |
| US9594377B1 (en) | 2015-05-12 | 2017-03-14 | Google Inc. | Auto-height swing adjustment |
| JP6450279B2 (ja) * | 2015-08-05 | 2019-01-09 | 本田技研工業株式会社 | 移動ロボットの目標zmp軌道の生成装置 |
| US9586316B1 (en) | 2015-09-15 | 2017-03-07 | Google Inc. | Determination of robotic step path |
| US9789607B1 (en) | 2015-11-03 | 2017-10-17 | Google Inc. | Achieving a target gait in a legged robot based on steering commands |
| US10017218B1 (en) | 2015-11-11 | 2018-07-10 | Boston Dynamics, Inc. | Achieving a target gait behavior in a legged robot |
| CN106741277B (zh) * | 2015-11-20 | 2020-10-30 | 沈阳新松机器人自动化股份有限公司 | 一种混合式机械腿机构 |
| JP6498597B2 (ja) * | 2015-12-14 | 2019-04-10 | 本田技研工業株式会社 | 移動ロボットの制御装置 |
| US9925667B1 (en) | 2016-01-25 | 2018-03-27 | Boston Dynamics, Inc. | Continuous slip recovery |
| US9789919B1 (en) | 2016-03-22 | 2017-10-17 | Google Inc. | Mitigating sensor noise in legged robots |
| JP7069155B2 (ja) * | 2017-06-29 | 2022-05-17 | 株式会社ソニー・インタラクティブエンタテインメント | ロボットの制御装置、制御方法および制御プログラム |
| JP6823569B2 (ja) * | 2017-09-04 | 2021-02-03 | 本田技研工業株式会社 | 目標zmp軌道の生成装置 |
| CN109693234B (zh) * | 2017-10-20 | 2021-08-27 | 深圳市优必选科技有限公司 | 机器人跌倒预测方法、装置、终端设备及计算机存储介质 |
| CN109693236B (zh) * | 2017-10-23 | 2021-03-02 | 深圳市优必选科技有限公司 | 足式机器人着地控制方法及装置 |
| CN109634100B (zh) * | 2018-12-30 | 2021-11-02 | 深圳市优必选科技有限公司 | 仿人机器人行走加速度补偿方法、装置及仿人机器人 |
| CN109856991B (zh) * | 2019-01-22 | 2021-10-15 | 华东师范大学 | 一种基于动能热力分布图的动态虚拟人仿真方法 |
| CN110001813B (zh) * | 2019-04-19 | 2021-06-15 | 常州大学 | 一种单足驱动同时能够滚动摩擦与滑动的机器人腿 |
| US11292126B2 (en) * | 2019-10-17 | 2022-04-05 | Disney Enterprises, Inc. | Robots with robust bipedal locomotion supported with non-conventional physics |
| JP2021130183A (ja) * | 2020-02-21 | 2021-09-09 | ソニーグループ株式会社 | 情報処理装置及び情報処理方法、コンピュータプログラム、並びに移動ロボット |
| JP2021133487A (ja) * | 2020-02-28 | 2021-09-13 | ソニーグループ株式会社 | 脚式ロボット、および脚式ロボットの制御方法 |
| CN114474034B (zh) * | 2020-10-26 | 2024-05-28 | 腾讯科技(深圳)有限公司 | 足式机器人运动控制方法、装置、设备及介质 |
| CN112757295B (zh) * | 2020-12-28 | 2022-03-01 | 武汉远图信息科技有限公司 | 一种基于强化学习的双足机器人重心控制方法与仿真系统 |
| JP2022128093A (ja) * | 2021-02-22 | 2022-09-01 | ソニーグループ株式会社 | 情報処理装置、情報処理方法及びプログラム |
| DE102021112485B3 (de) | 2021-05-12 | 2022-08-11 | Deutsches Zentrum für Luft- und Raumfahrt e.V. | Verfahren zur Balancierung eines Roboters, Verfahren zur Ganzkörpersteuerung eines Roboters, Regler sowie Roboter |
| CN113297798B (zh) * | 2021-06-10 | 2022-10-11 | 重庆邮电大学工业互联网研究院 | 一种基于人工神经网络的机器人外界接触力估计方法 |
| US20240294221A1 (en) * | 2021-06-30 | 2024-09-05 | Agility Robotics, Inc. | Leg and Foot Configuration for Spring-Free Legged Locomotion |
| CN114489104B (zh) * | 2022-01-21 | 2023-11-10 | 深圳市优必选科技股份有限公司 | 机器人迈步控制方法及装置、机器人控制设备和存储介质 |
| KR102802343B1 (ko) * | 2022-02-01 | 2025-04-29 | 애니보틱스 아게 | 정전기 방전 조립체를 갖는 보행 로봇 및 로봇 다리 |
| US12384046B2 (en) * | 2022-02-14 | 2025-08-12 | International Business Machines Corporation | Robotic assistance continuity using pedestrian gait recognition |
| JP7571764B2 (ja) * | 2022-05-18 | 2024-10-23 | トヨタ自動車株式会社 | ロボットの動作データ生成システム、ロボットの動作データ生成方法、及びロボットの動作データ生成プログラム |
| CN116985110B (zh) * | 2022-07-25 | 2026-01-30 | 腾讯科技(深圳)有限公司 | 控制足式机器人的方法和装置及足式机器人 |
| US11738452B1 (en) * | 2022-07-29 | 2023-08-29 | Sarcos Corp. | Sole with various compliant regions for robots |
| US12539618B1 (en) | 2023-04-17 | 2026-02-03 | Figure Ai Inc. | Head and neck assembly of a humanoid robot |
| US12403611B2 (en) | 2023-04-17 | 2025-09-02 | Figure Ai Inc. | Head and neck assembly for a humanoid robot |
| US12365094B2 (en) * | 2023-04-17 | 2025-07-22 | Figure Ai Inc. | Head and neck assembly for a humanoid robot |
| US12420434B1 (en) | 2024-01-04 | 2025-09-23 | Figure Ai Inc. | Kinematics of a mechanical end effector |
| US12605824B2 (en) | 2024-02-26 | 2026-04-21 | Figure Ai Inc. | Humanoid robot |
| US12578733B2 (en) | 2024-09-04 | 2026-03-17 | Figure Ai Inc. | Bipedal action model for humanoid robot |
| US12611767B2 (en) | 2024-09-06 | 2026-04-28 | Figure Ai Inc. | System and method for efficient control of a humanoid robot |
| US12611766B2 (en) | 2024-09-13 | 2026-04-28 | Figure Ai Inc. | Humanoid robot with advanced kinematics |
Family Cites Families (36)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH08369B2 (ja) * | 1988-08-09 | 1996-01-10 | 工業技術院長 | 歩行脚運動軌跡制御装置 |
| JP3078009B2 (ja) * | 1990-11-30 | 2000-08-21 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
| JP3148827B2 (ja) | 1992-04-30 | 2001-03-26 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
| US5455497A (en) | 1992-04-20 | 1995-10-03 | Honda Giken Kogyo Kabushiki Kaisha | Legged mobile robot and a system for controlling the same |
| JP3233450B2 (ja) | 1992-05-22 | 2001-11-26 | 本田技研工業株式会社 | 指定時刻到達関数発生器 |
| JP3132156B2 (ja) * | 1992-05-22 | 2001-02-05 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
| JP3273443B2 (ja) * | 1992-05-22 | 2002-04-08 | 本田技研工業株式会社 | ロボットのリンクなどの軌道生成方法及び装置 |
| US5644204A (en) * | 1994-11-03 | 1997-07-01 | Nagle; John | Anti-slip control for a legged robot and realisitc simulation of a legged creature |
| US5808433A (en) | 1995-09-29 | 1998-09-15 | Honda Giken Kogyo Kabushiki Kaisha | Method of generating gait of legged walking robot and system for controlling its locomotion |
| JP3662996B2 (ja) * | 1996-01-25 | 2005-06-22 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
| JP3658147B2 (ja) | 1996-07-25 | 2005-06-08 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
| JP3663034B2 (ja) | 1996-07-25 | 2005-06-22 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
| DE69725764T2 (de) * | 1996-07-25 | 2004-08-05 | Honda Giken Kogyo K.K. | Vorrichtung zur nachbildung des ganges für einen zweibeinigen robotor |
| US5872893A (en) * | 1996-07-25 | 1999-02-16 | Honda Giken Kogyo Kabushiki Kaisha | Gait generation system of legged mobile robot |
| JP3672406B2 (ja) | 1997-01-31 | 2005-07-20 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
| JP3629133B2 (ja) | 1997-01-31 | 2005-03-16 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
| US6243623B1 (en) * | 1997-01-31 | 2001-06-05 | Honda Giken Kogyo Kabushiki Kaisha | Leg type mobile robot control apparatus |
| JP3592886B2 (ja) | 1997-04-08 | 2004-11-24 | 同和鉱業株式会社 | 弗化炭素類の分解方法および分解用反応剤 |
| US6064168A (en) * | 1998-03-13 | 2000-05-16 | Fanuc Robotics North America, Inc. | Method of controlling robot movement |
| US6289265B1 (en) * | 1998-04-20 | 2001-09-11 | Honda Giken Kogyo Kabushiki Kaisha | Controller for legged mobile robot |
| JP2000352011A (ja) | 1999-06-11 | 2000-12-19 | Gakunan Koki Kk | 視覚障害者用警告形道路ラインの施工方法 |
| JP4660870B2 (ja) | 1999-11-08 | 2011-03-30 | ソニー株式会社 | 脚式移動ロボット及びその制御方法 |
| JP3555107B2 (ja) * | 1999-11-24 | 2004-08-18 | ソニー株式会社 | 脚式移動ロボット及び脚式移動ロボットの動作制御方法 |
| JP3615702B2 (ja) * | 1999-11-25 | 2005-02-02 | ソニー株式会社 | 脚式移動ロボットの動作制御装置及び動作制御方法、並びに、脚式移動ロボット |
| JP2001260063A (ja) * | 2000-03-21 | 2001-09-25 | Sony Corp | 多関節型ロボット及びその動作制御方法 |
| JP2001322079A (ja) * | 2000-05-15 | 2001-11-20 | Sony Corp | 脚式移動ロボット及びその動作教示方法 |
| JP3634238B2 (ja) | 2000-05-19 | 2005-03-30 | 本田技研工業株式会社 | 脚式移動ロボットの床形状推定装置 |
| DE60141092D1 (de) * | 2000-11-17 | 2010-03-04 | Honda Motor Co Ltd | Gangmustererzeugungssystem für beweglichen Roboter mit Beinen |
| JP3726032B2 (ja) | 2001-04-27 | 2005-12-14 | 本田技研工業株式会社 | 脚式移動ロボットの目標運動生成装置 |
| US7487011B2 (en) * | 2001-12-28 | 2009-02-03 | Honda Giken Kogyo Kabushiki Kaisha | Gait generation device for legged mobile robot |
| DE60313952T2 (de) * | 2002-01-18 | 2008-01-24 | Honda Giken Kogyo K.K. | Steuerung für mobilen roboter mit beinen |
| JP4404639B2 (ja) * | 2002-02-15 | 2010-01-27 | ソニー株式会社 | 脚式移動ロボットの脚装置並びに脚式移動ロボットの制御方法 |
| KR100960552B1 (ko) * | 2002-04-26 | 2010-06-03 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 제어장치 및 족적결정 장치 |
| KR100956539B1 (ko) * | 2002-04-26 | 2010-05-07 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 자기자세 추정 장치 |
| KR101083417B1 (ko) * | 2003-06-27 | 2011-11-14 | 혼다 기켄 고교 가부시키가이샤 | 다리식 이동 로봇의 제어장치 |
| JP4513320B2 (ja) * | 2003-12-17 | 2010-07-28 | ソニー株式会社 | ロボット装置、並びにロボット装置の運動制御方法 |
-
2002
- 2002-12-26 US US10/499,936 patent/US7487011B2/en not_active Expired - Lifetime
- 2002-12-26 EP EP02792001A patent/EP1470900B1/en not_active Expired - Lifetime
- 2002-12-26 EP EP02806077A patent/EP1475197B1/en not_active Expired - Lifetime
- 2002-12-26 DE DE60236460T patent/DE60236460D1/de not_active Expired - Lifetime
- 2002-12-26 US US10/499,516 patent/US7319917B2/en not_active Expired - Lifetime
- 2002-12-26 KR KR1020047010283A patent/KR100881608B1/ko not_active Expired - Fee Related
- 2002-12-26 JP JP2003557767A patent/JP3674789B2/ja not_active Expired - Lifetime
- 2002-12-26 WO PCT/JP2002/013591 patent/WO2003057422A1/ja not_active Ceased
- 2002-12-26 KR KR1020047010281A patent/KR100917181B1/ko not_active Expired - Fee Related
- 2002-12-26 EP EP02806079A patent/EP1466705B1/en not_active Expired - Lifetime
- 2002-12-26 JP JP2003557763A patent/JP3674788B2/ja not_active Expired - Lifetime
- 2002-12-26 EP EP02806078A patent/EP1466706B1/en not_active Expired - Lifetime
- 2002-12-26 KR KR1020047010274A patent/KR100917184B1/ko not_active Expired - Fee Related
- 2002-12-26 WO PCT/JP2002/013595 patent/WO2003057429A1/ja not_active Ceased
- 2002-12-26 US US10/499,696 patent/US7308336B2/en not_active Expired - Lifetime
- 2002-12-26 DE DE60237470T patent/DE60237470D1/de not_active Expired - Lifetime
- 2002-12-26 JP JP2003557764A patent/JP3672100B2/ja not_active Expired - Lifetime
- 2002-12-26 US US10/499,909 patent/US7493192B2/en not_active Expired - Lifetime
- 2002-12-26 DE DE60235839T patent/DE60235839D1/de not_active Expired - Lifetime
- 2002-12-26 WO PCT/JP2002/013597 patent/WO2003057430A1/ja not_active Ceased
- 2002-12-26 KR KR1020047010262A patent/KR100889598B1/ko not_active Expired - Fee Related
- 2002-12-26 JP JP2003557770A patent/JP3640255B2/ja not_active Expired - Lifetime
- 2002-12-26 EP EP02806074A patent/EP1475195B1/en not_active Expired - Lifetime
- 2002-12-26 JP JP2003557765A patent/JP3672101B2/ja not_active Expired - Lifetime
- 2002-12-26 KR KR1020047010277A patent/KR100971473B1/ko not_active Expired - Fee Related
- 2002-12-26 DE DE60236457T patent/DE60236457D1/de not_active Expired - Lifetime
- 2002-12-26 KR KR1020047010276A patent/KR100961901B1/ko not_active Expired - Fee Related
- 2002-12-26 EP EP02806075A patent/EP1475196B1/en not_active Expired - Lifetime
- 2002-12-26 WO PCT/JP2002/013592 patent/WO2003057423A1/ja not_active Ceased
- 2002-12-26 JP JP2003557771A patent/JP3672103B2/ja not_active Expired - Lifetime
- 2002-12-26 DE DE60237041T patent/DE60237041D1/de not_active Expired - Lifetime
- 2002-12-26 KR KR1020047010278A patent/KR100881609B1/ko not_active Expired - Fee Related
- 2002-12-26 WO PCT/JP2002/013598 patent/WO2003057426A1/ja not_active Ceased
- 2002-12-26 EP EP02792002A patent/EP1475192B1/en not_active Expired - Lifetime
- 2002-12-26 US US10/499,513 patent/US7337039B2/en not_active Expired - Lifetime
- 2002-12-26 DE DE60236546T patent/DE60236546D1/de not_active Expired - Lifetime
- 2002-12-26 DE DE60234790T patent/DE60234790D1/de not_active Expired - Lifetime
- 2002-12-26 JP JP2003557766A patent/JP3672102B2/ja not_active Expired - Lifetime
- 2002-12-26 US US10/499,839 patent/US7496428B2/en not_active Expired - Lifetime
- 2002-12-26 WO PCT/JP2002/013594 patent/WO2003057424A1/ja not_active Ceased
- 2002-12-26 WO PCT/JP2002/013596 patent/WO2003057425A1/ja not_active Ceased
- 2002-12-26 US US10/499,517 patent/US7308335B2/en not_active Expired - Lifetime
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3674789B2 (ja) | 脚式移動ロボットの歩容生成装置 | |
| JP4199236B2 (ja) | 脚式移動ロボットの歩容生成装置 | |
| JP4246638B2 (ja) | 脚式移動ロボットの制御装置 | |
| JP3679105B2 (ja) | 脚式移動ロボットの歩容生成装置 | |
| JP4181175B2 (ja) | 脚式移動ロボットの制御装置 | |
| US7765030B2 (en) | Gait generator for mobile robot | |
| US7715945B2 (en) | Gait producing device for moving robot |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20050309 |
|
| 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: 20050419 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20050420 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 3674789 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080513 Year of fee payment: 3 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090513 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090513 Year of fee payment: 4 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100513 Year of fee payment: 5 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110513 Year of fee payment: 6 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120513 Year of fee payment: 7 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130513 Year of fee payment: 8 |
|
| FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140513 Year of fee payment: 9 |
|
| EXPY | Cancellation because of completion of term |
