JPWO2005051608A1 - 移動体の制御装置 - Google Patents
移動体の制御装置 Download PDFInfo
- Publication number
- JPWO2005051608A1 JPWO2005051608A1 JP2005515856A JP2005515856A JPWO2005051608A1 JP WO2005051608 A1 JPWO2005051608 A1 JP WO2005051608A1 JP 2005515856 A JP2005515856 A JP 2005515856A JP 2005515856 A JP2005515856 A JP 2005515856A JP WO2005051608 A1 JPWO2005051608 A1 JP WO2005051608A1
- Authority
- JP
- Japan
- Prior art keywords
- node
- reaction force
- floor reaction
- target
- ground contact
- 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.)
- Granted
Links
Images
Classifications
-
- 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
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
- B25J13/085—Force or torque sensors
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Mechanical Engineering (AREA)
- Robotics (AREA)
- Chemical & Material Sciences (AREA)
- Combustion & Propulsion (AREA)
- Transportation (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
- Control Of Position, Course, Altitude, Or Attitude Of Moving Bodies (AREA)
Abstract
Description
さらに、本願出願人による特開平10−277969号公報(特許文献2)、特開2001−322076号公報(特許文献3)には、複合コンプライアンス制御の技術、および床形状の推定技術が開示されている。これらの技術では、2足移動ロボットにおいて、各脚先端部への床反力の適切な分配ができ、かつ、床形状を複合的に、具体的には各脚先端部の接地面傾斜と各接地面間の高低差とを同時に複合的に、精度良く推定することができた。これらの公報の技術は、原理的には4脚ロボット等の多脚ロボットに対応可能なものではあるが、それを具体的に適用するための技術については、記述されていない。
また、4脚ロボットの脚先端に備えた触覚(荷重センサまたは接触センサ)を用いて着地時に床の高さを推定しようとする手法も知られている。しかし、この手法は、シーケンス的な手法であり、軟弱地盤のように床が着地後に変形するような場合には対応できなかった。特に、ロボットの高速移動時等、ロボットの本体が激しく振動しているときには、床の高さを正しく推定できず、各脚への荷重の分配が適切に行われない恐れがあった。
また、ロボットの各脚のコンプライアンス制御を脚毎に独立に行う技術も知られている。しかし、この技術では、ロボットの上体の揺れを通して脚同士の干渉が生じるにもかかわらず、このことが考慮されていない。すなわち、各脚のコンプライアンス制御が個別に行なわれる。このため、各脚のコンプライアンス制御が互いに協調し合うことがないので、適切に各脚に床反力を分配することができなかった。
本発明はかかる背景に鑑みてなされたものであり、脚式移動ロボットや、アクティブサスペンションを持つ車輪型移動体などの移動体が接地する床に未知の傾斜や凹凸がある場合にも、その影響を受けにくく適切に床反力を制御する装置を提供することを目的とする。さらに床形状を精度よく推定しながら、床反力を適切に制御できる装置を提供することを目的とする。
前記接地部位のそれぞれが葉ノードとなり、且つ、該葉ノードと該葉ノードのすべてを子孫ノードとして持つ根ノードとの間に中間ノードが存在するように前記接地部位をツリー構造状に分類し、
複数の接地部位を子孫ノードとして持つノードである第Cノードのそれぞれに対し、少なくとも前記実姿勢傾斜と前記目標運動における前記所定の部位の目標姿勢傾斜との偏差である姿勢傾斜偏差に応じて、該姿勢傾斜偏差が0に近づくように、該第Cノードに属する複数の接地部位の間の目標相対高さの修正量を該第Cノード毎に決定し、その決定した修正量をすべての第Cノードについて合成してなる修正量を基に、前記目標運動に、各第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を少なくとも付加した修正目標運動を決定し、その決定した修正目標運動を満足するように前記関節を動作させるノード動作制御手段を備えたことを特徴とするものである。
なお、本発明においては、子ノードを持つ各ノードに対し、その「ノードに属する接地部位」とは、より正確に言えば、その「ノードに子孫ノードとして属する」ということを意味するものである。このことは、第1発明に限らず、本願のいずれの発明についても同じである。
かかる第1発明によれば、移動体が備える3つ以上の接地部位をツリー構造状に分類し、子ノードを持つ第Cノードのそれぞれに対し、姿勢傾斜偏差が0に近づくように、該第Cノードに属する複数の接地部位の間の目標相対高さの修正量(換言すれば操作量)を該第Cノード毎に決定する。そして、それらの修正量を全ての第Cノードについて合成してなる修正量を基に、前記目標運動に、各第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を付加した修正目標運動を決定する。そして、その決定した修正目標運動を満足するように移動体の関節を動作させる。これにより、個々の接地部位の高さをそれぞれ独立に(各別)の操作する場合に較べて、複数の接地部位の床反力の相互のバランスを採りながら、それらの接地部位の相対高さを前記姿勢傾斜偏差を0に近づけるように操作することができる。その結果、移動体が接地する床に局所的に未知の傾斜や凹凸がある場合にも、その影響を受けにくくなり、ロボットの姿勢の安定性を高めることができる。
かかる第1発明では、好ましくは、前記ツリー構造における各ノードに重みが設定されており、該ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の高さを第Bノードの高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの高さの、前記重みを用いた重み付き平均値を該第Bノードの高さとして定義したとき、
前記ノード動作制御手段は、各第Cノードのうちの任意の一つのノードのみに対して、該一つのノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標運動に付加して前記修正目標運動を決定したとき、該修正目標運動における該一つのノードの目標高さは前記目標運動における目標高さに維持される(第2発明)。
この第2発明によれば、各第Cノードの目標高さは、この第Cノードの子ノードの目標高さ(これは、第Cノードに属する接地部位の、前記目標運動における目標高さに応じて定まる)の重み付き平均値となり、各第Cノードのうちの任意の一つのノードのみに対して、該一つのノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標歩容の目標運動に付加して前記修正目標運動を決定したときには、前記一つのノードの子ノードの上記重み付き平均値が、修正目標運動と目標運動とで同じになるように前記第1の修正が目標運動に付加される。
この結果、各第Cノード毎に、それに属する複数の接地部位の床反力の相互のバランスを採りながら、各Cノードに属する複数の接地部位の間の目標相対高さを修正することができることとなる。ひいては、ロボットの姿勢の安定性をさらに高めることができる。
また、本発明の移動体の制御装置の第3発明は、互いの相対高さを操作可能に複数の関節を介して連結された3つ以上の接地部位を有する移動ロボット等の移動体の目標運動を決定する目標運動決定手段と、前記移動体の基体などの所定の部位の実姿勢傾斜を検出または推定する実姿勢傾斜検出手段とを備え、前記移動体の運動を目標運動に追従させるように該移動体の動作制御を行う移動体の制御装置において、
前記接地部位のそれぞれが葉ノードとなり、且つ、該葉ノードと該葉ノードのすべてを子孫ノードとして持つ根ノードとの間に中間ノードが存在するように前記接地部位をツリー構造状に分類したとき、前記ツリー構造における各ノードに重みが設定されており、
少なくとも前記実姿勢傾斜と前記目標運動における前記所定の部位の目標姿勢傾斜との偏差である姿勢傾斜偏差に応じて、該姿勢傾斜偏差が0に近づくように、前記目標運動に、該第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を少なくとも付加した修正目標運動を決定し、その決定した修正目標運動を満足するように前記関節を動作させるノード動作制御手段を備え、
前記ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の高さを第Bノードの高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの高さの、前記重みを用いた重み付き平均値を該第Bノードの高さとして定義したとき、前記ノード動作制御手段が、前記第Cノードのみに対して、該第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標運動に付加して前記目標運動を決定したとき、該修正目標運動における該第Cノードの目標高さは前記目標運動における目標高さに維持されることを特徴とするものである。
この第3発明によれば、前記所定の第Cノードの目標高さは、この第Cノードの子ノードの目標高さ(これは、第Cノードに属する接地部位の、前記目標運動における目標高さに応じて定まる)の重み付き平均値となり、前記第Cノードのみに対して、該第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標運動に付加して前記修正目標運動を決定したときには、該第Cノードの子ノードの上記重み付き平均値が修正目標運動と目標運動と同じになるように前記第1の修正が目標運動に付加される。
この結果、第3発明によれば、第Cノードに属する複数の接地部位の床反力の相互のバランスを採りながら、それらの接地部位の相対高さを前記姿勢傾斜偏差を0に近づけるように操作することができる。このため、第1発明や第2発明と同様に、移動体が接地する床に局所的に未知の傾斜や凹凸がある場合にも、その影響を受けにくくなり、ロボットの姿勢の安定性を高めることができる。
なお、前記第2発明、第3発明においては、前記ツリー構造において子ノードを持つ各ノードに対し、該各ノードの全ての子ノードの重みは、その全ての子ノードの重みの総和が1となるように設定されていることが好ましい(第4発明)。
また、前記第2発明、第3発明では、前記各ノードの重みを可変的に設定する手段を備え、非接地状態である各接地部位にそれぞれ対応する葉ノードを第Dノードとしたとき、前記重みを設定する手段は、各第Dノードの重み、または該第Dノードの祖先ノードのうちの少なくともいずれか1つのノードの重みを0に設定することが好ましい(第5発明)。
この第5発明によれば、前記姿勢傾斜偏差を0に近づけるために寄与できない非接地状態の接地部位の高さが無駄に修正されるのを防止できる。なお、第5発明は、第4発明と複合してもよい。
また、前記第1発明、第2発明では、前記各接地部位は、前記移動体の基体に対して移動可能に該基体に連結されている場合に、前記ノード動作制御手段は、前記修正目標運動を決定するとき、前記第Cノードに属する各接地部位の床面上でのこじりなどの滑りを抑制するための、前記基体の目標姿勢の修正を前記目標運動にさらに付加して前記修正目標運動を決定することが好ましい(第6発明)。そして、このことは、前記第3発明においても同じである(第7発明)。
ここで、移動体の基体に連結されている接地部位が多数あると、移動体の関節の自由度が不足して、それらの接地部位の間の相対高さの修正が機構的な制限を受け、決定した目標相対高さを満足するように強制的に関節を動作させると、いくつかの接地部位でこじりなどの滑りが発生する場合がある。そして、そのような滑りが生じる状況では、各接地部位の床反力が不適切なものとなると共にロボットの姿勢の安定性が却って損なわれる恐れがある。このような場合には、第6発明、第7発明の如く、第Cノードに属する接地部位の間の目標相対高さを修正するだけでなく、基体の目標姿勢の修正を目標運動にさらに付加して、前記修正目標運動を決定することことにより、上記こじりなどの滑りを抑制することができる。従って、接地部位に無理な床反力が作用したりすることなく、それらの床反力を適正なものとしつつ、移動体の姿勢の安定性を確保することができる。
前記第6発明、第7発明では、より好ましくは、前記ノード動作制御手段は、前記修正目標運動における前記移動体の全体重心の水平位置または該移動体の基体の所定の代表点の水平位置が前記目標運動における当該水平位置とほぼ同じになるように前記修正目標運動を決定する(第8発明)。この第8発明によれば、基体の目標姿勢の修正を目標運動に付加して修正目標運動を決定したときに、移動体の全体重心が、目標歩容における適正な位置に対して水平方向に大きくずれるようなことを防止できるので、移動体の安定性を適正に保ちつつ、第Cノードの接地部位の間の相対高さと基体の姿勢とを修正できる。
また、前記第6発明は、前記移動体が、その基体から延設された複数のリンク機構を備えるロボットであり、該複数のリンク機構のうちの少なくとも1つのリンク機構は、少なくともその先端部と基体側の端部との間の中間部位に関節が設けられていると共に、該中間部位が前記接地部位となっている場合に適している(第9発明)。
また、第7発明は、前記移動体が、その基体から延設された複数のリンク機構を備えるロボットであり、該複数のリンク機構のうちの少なくとも1つのリンク機構は、少なくともその先端部と基体側の端部との間の中間部位に関節が設けられていると共に、該中間部位が前記第Cノードに属する接地部位となっている場合に適している(第10発明)。
すなわち、複数のリンク機構が基体から延設されたロボットでは、それらのリンク機構の先端部で接地することが通常的であるので、該リンク機構の中間部位で接地させようとした場合(例えば人間型移動ロボットをその脚の中間部(膝)で接地させようとした場合)には、関節の自由度が不足して、前記こじりなどの滑りが生じる場合がある。従って、第6発明、第7発明は、それぞれ第9発明、第10発明の如く移動体が構成されている場合に適している。
これらの第9発明、第10発明では、前記中間部位には、その接地時に弾性変形する弾性体が設けられていることが好ましい(第11発明)。
これによれば、前記中間部位の間の相対高さの修正による床反力の調整能力が高まって、移動体(ロボット)の姿勢の安定性の確保が容易になる。
また、前記第6発明は、前記移動体が、その基体から延設されて1つ以上の関節をそれぞれ有する複数のリンク機構を備えると共に、該複数のリンク機構のうちの少なくとも1つのリンク機構と前記基体とに前記接地部位が設けられている場合にも適している(第12発明)。
また、第7発明は、前記移動体が、その基体から延設されて1つ以上の関節をそれぞれ有する複数のリンク機構を備えると共に、該複数のリンク機構のうちの少なくとも1つのリンク機構と前記基体とに前記接地部位が設けられており、前記第Cノードに属する接地部位には、少なくとも前記基体の接地部位が含まれる場合に適している(第13発明)。
例えば1つ以上の脚(リンク機構)が基体(上体など)から延設されたロボットに腰掛動作を行なわせる場合、その基体で接地することとなる。そしてこのような場合には、関節の自由度が不足して、前記こじりなどの滑りが生じる場合がある。従って、第6発明、第7発明は、それぞれ第12発明、第13発明の如く移動体が構成されている場合にも適している。
これらの第12発明、第13発明では、前記基体の少なくともひとつの接地部位には、その接地時に弾性変形する弾性体が設けられていることが好ましい(第14発明)。
これによれば、前記基体における接地部位の間の相対高さの修正による床反力の調整能力が高まって、移動体の姿勢の安定性の確保が容易になる。
なお、前記第6〜第14発明は、前記第2発明、第4発明、第5発明と複合してもよい。
また、前記第1発明、第3発明では(あるいは第1〜第14発明では)、前記各接地部位が、前記移動体の基体に対して移動可能に該基体に連結機構を介して連結されている場合に、前記修正目標運動を満足するように前記関節を動作させたときに前記第Cノードに属する各接地部位に作用すべき目標床反力の並進力成分を決定する手段を備え、
前記ノード動作制御手段は、少なくとも前記第Cノードに属する各接地部位の目標床反力の並進力成分を基に、該目標床反力の並進力成分が該第Cノードに属する各接地部位に作用したときに前記基体と該第Cノードに属する各接地部位との間の連結機構および該接地部位で発生する変形量を推定する手段を備え、その推定した変形量を打ち消すための、前記第Cノードに属する複数の接地部位の目標高さの第2の修正を前記目標運動にさらに付加して前記修正目標運動を決定することが好ましい(第15発明)。
この第15発明によれば、前記連結機構や接地部位が該接地部位の接地時に受ける床反力によってたわみなどの変形が生じることを考慮し、その変形量を目標床反力の並進力成分を基に推定する。そして、その推定した変形量を打ち消すための、前記第Cノードに属する各接地部位の目標高さの第2の修正を目標運動にさらに付加して前記修正目標運動を決定する。このため、第15発明によれば、連結機構や接地部位の変形の影響を補償しつつ、適正に前記姿勢傾斜偏差を0に近づける床反力を移動体に作用させることが可能となり、移動体の姿勢の安定性をより一層高めることができる。
また、前記第1発明、第3発明(あるいは第1〜第15発明)では、少なくとも前記第Cノードに属する複数の接地部位の接地面の間の相対高さを規定するパラメータを床形状を表す床形状パラメータとして推定する床形状推定手段を備え、
前記ノード動作制御手段は、前記修正目標運動を決定するとき、前記前記床形状パラメータの推定値に応じた、前記第Cノードに属する複数の接地部位の間の目標相対高さの第3の修正をさらに付加して前記修正目標運動を決定することが好ましい(第16発明)。
この第16発明によれば、少なくとも前記第Cノードに属する複数の接地部位の接地面の間の相対高さを規定する床形状パラメータの推定値に応じた、第Cノードに属する複数の接地部位の間の目標相対高さの第3の修正を目標運動にさらに付加するので、実際の床形状が前記目標運動で想定したものと相違しても、接地部位の接地面を、それが接地すべきときに実際の床面に適切に接地させ、ひいては、前記姿勢傾斜偏差を0に近づけるような床反力を適切に移動体に作用させることができる。従って、移動体の姿勢の安定性をより一層高めることができる。
この第16発明では、前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードに属する各接地部位の実床反力とに基づき、前記床形状パラメータを逐次更新しつつ推定することが好ましい(第17発明)。
あるいは、前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備えると共に、
前記ツリー構造における各ノードである第Aノードに対し、該第Aノードが前記葉ノードである場合には、該葉ノードである接地部位に作用する床反力を第Aノードのノード床反力と定義し、且つ、第Aノードが子ノードを持つ場合には、該第Aノードのすべての子ノードのノード床反力の合力を第Aノードのノード床反力と定義したとき、少なくとも前記第Cノードの各子ノードのノード床反力の実際値である実ノード床反力を該第Cノードに属する各接地部位の実床反力から逐次決定する手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードの各子ノードの実ノード床反力の間の相対関係とに基づき、前記床形状パラメータを逐次更新しつつ推定することが好ましい(第18発明)。
あるいは、前記各接地部位が、前記移動体の基体に対して移動可能に該基体に連結機構を介して連結されているときには、
該基体と各接地部位との間の連結機構および該接地部位で発生する変形量を検出または推定する変形量検出手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードに属する各接地部位に対応する前記変形量とに基づき、前記床形状パラメータを逐次更新しつつ推定することが好ましい(第19発明)。
これらの第17発明、第18発明、第19発明によれば、前記床形状パラメータをリアルタイムで逐次更新しながら、適切に推定できる。補足すると、第19発明では、前記連結機構は、その全てが必ずしも関節を備えている必要はない。
なお、第19発明では、例えば前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、前記変形量検出手段は、該実床反力に基づき前記変形量を推定する(第20発明)。
このように実床反力を検出または推定し、それを用いることで、前記連結機構や接地部位の変形量を適切に推定できる。
前記第16発明(あるいは前記第16〜第20発明)においては、前記ツリー構造における各ノードの重みが設定されており、該ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の接地面の高さを第Bノードの接地面の高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの接地面の高さの、前記重みを用いた重み付き平均値を第Bノードの接地面の高さとして定義したとき、前記床形状推定手段が推定する前記床形状パラメータは、前記第Cノードの複数の各子ノードの接地面の高さの間の相対関係を規定するパラメータであることが好ましい(第21発明)。
この第21発明によれば、上記のように、子ノードを持つ第Bノードの接地面の高さをその子ノードの重み付き平均値として定義することによって、前記第Cノードの複数の各子ノードの接地面の高さの間の相対関係によって、該第Cノードに属する複数の接地部位が接地する床の形状に係わる前記床形状パラメータを決定できる。従って、床形状パラメータを各接地部位の絶対高さを把握したりすることなく推定できる。そのため、床形状の推定処理が容易になる。
この第21発明では、前記床形状推定手段は、前記第Cノードの各子ノードのうちの少なくとも1つが浮きそうな状態であるときに、その浮きそうな子ノードの接地面の相対高さを一定値に保持しつつ、前記複数の子ノードの接地面の高さの相対関係を規定する前記床形状パラメータを推定することが好ましい(第22発明)。
すなわち、前記第Cノードの各子ノードのうちの少なくとも1つが浮きそうな状態であるということは、その子ノードの接地面が実際の床面から離れたか、もしくは離れそうな状態であるので、その子ノードの接地面の高さは実際の床面の高さを反映していない。そこで、第22発明では、このような状態では、当該浮きそうな状態の子ノードの接地面の相対高さを一定値に保持しつつ、前記複数の子ノードの接地面の高さの相対関係を規定する前記床形状パラメータを推定する。これにより、床形状パラメータが実際の床面形状を反映していない値に発散してしまうような事態を防止でき、実際の床面形状を反映した床形状パラメータを推定できる。ひいては、不適切な床形状パラメータを使用して、接地部位の相対高さを修正し、移動体の姿勢の安定性が損なわれるような事態を防止できる。
また、前記第16発明(あるいは第16〜第22発明)では、前記床形状推定手段は、前記床形状パラメータの変動を緩和するようにローパスフィルタを用いて該床形状パラメータを推定することが好ましい(第23発明)。このようにローパスフィルタを使用することで、移動体の移動時の振動などによって床形状パラメータが頻繁に変動したりするのを防止できる。
また、前記第16発明(あるいは第16〜第23発明)では、前記ツリー構造の各ノードには床形状の推定用の重みが設定されており、
前記ツリー構造における各葉ノードに高さ、床反力などの所定の種類の状態量を対応づけたときに、子ノードを持つ各ノードの状態量を、該ノードの全ての子ノードの状態量の、前記重みを用いた重み付き平均値とし、根ノードを除く各ノードに対し、該ノードの状態量から該ノードの親ノードの状態量を減算してなる値を該ノードのノード相対状態量として決定すると共に0を根ノードの相対状態量として決定する処理を、当該所定の種類の状態量を各ノードについて階層相対化する処理として定義し、
前記葉ノードである接地部位のそれぞれに作用する床反力Fn(n=1,2,…)を基に、各ノードについて階層相対化したノード相対床反力Fn_rel(n=1,2,…)を求め、さらに子ノードを持つ任意のノードである第nノードのすべての子ノードaj(j=1,2,…,rorは第nノードの子ノードの総数)のノード相対床反力を要素とするベクトル(Fa1_rel,Fa2_rel,…,Far_rel)を、第nノードのすべての子ノードの重みを要素とするベクトル(Wa1,Wa2,…,War)にそれぞれ直交する所定の互いに独立な複数のベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの該線形結合の係数を要素とするベクトルを、第nノードのノード拡張床反力モーメントMn expと定義し、
また、前記葉ノードである接地部位のそれぞれの接地面の高さZn(n=1,2,…)を基に、各ノードについて階層相対化したノード相対高さZn_rel(n=1,2,…)を求め、さらに前記第nノードのすべての子ノードaj(j=1,2,…,rorは第nノードの子ノードの総数)のノード相対高さを要素とするベクトル(Za1_rel,Za2_rel,…,Zar_rel)を、前記所定の互いに独立な複数のベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの線形結合の係数を要素とするベクトルを、第nノードのノード拡張傾斜角θnと定義したとき、
前記床形状推定手段は、少なくとも前記第Cノードの前記ノード拡張床反力モーメントMn_exp(n=C)またはノード拡張傾斜角θn(n=C)を用いて前記床形状パラメータを推定するようにしてもよい(第24発明)。
上記のように定義されるノード拡張床反力モーメントや、ノード拡張傾斜角を用いることで、第Cノードに属する接地部位が4つ以上であるような場合であっても、床形状を表す床形状パラメータを適切に推定できる。
この第24発明では、前記ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の接地面の高さを第Bノードの接地面の高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの接地面の高さの、前記重みを用いた重み付き平均値を第Bノードの接地面の高さとして定義したとき、
前記床形状パラメータに、前記第Cノードの各子ノードの接地面の相対高さを前記ノード拡張傾斜角を用いて表したパラメータが含まれることが好ましい(第25発明)。
これによれば、第Cノードに属する接地部位が4つ以上であっても、前記ノード拡張傾斜角を用いて、床形状パラメータを適切に推定できる。
また、第24発明では、より具体的には、前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、
前記ノード動作制御手段は、少なくとも前記各接地部位の実床反力を基に前記ノード拡張モーメントを逐次決定する手段と、この決定したノード拡張モーメントに所定の行列を乗じることにより前記ノード拡張傾斜角を逐次決定する手段とを備え、前記決定したノード拡張傾斜角と、前記床形状パラメータの推定値の過去値とを基に、新たな床形状パラメータを推定する(第25発明)。
この第25発明によれば、少なくとも前記各接地部位の実床反力を基に前記ノード拡張モーメントを逐次決定すると共に、この決定したノード拡張モーメントに所定の行列を乗じることにより前記ノード拡張傾斜角を逐次決定するので、その決定したノード拡張傾斜角と、前記床形状パラメータの推定値の過去値とを基に、新たな床形状パラメータを逐次更新しながら求めることができる。
なお、前記第1〜第25発明においては、「床反力」は、本来の意味での床(もしくは地面)から移動体に作用する反力だけを意味するものではなくでなく、移動体が接触する床以外の対象物から受ける反力をも含むものとする。そして、接地部位は、床(もしくは地面)への接触箇所だけでなく、移動体の対象物との接触箇所をも含むものとする。
本願出願人が先に提案した特開平10−277969号公報の複合コンプライアンス制御の技術においては、ロボットの脚先端部(足平)から床反力を受けることを前提として、脚毎に床反力を分別した。これに対して、本明細書の実施形態では、例えば人間型ロボットがひざまづいた状況や腰掛けた状況、腕を接地させた状況など、脚先端部以外からも床反力を受ける状況までも考慮する。このため、脚式移動ロボットの所要の動作において床と接して反力を受ける該ロボットの部位を「接地部位」と呼ぶ。この場合、「床」は、通常の意味での床(あるいは地面)だけではなく、該床(あるいは地面)に固定された椅子(ロボットが腰掛ける椅子)等のように、ロボットがその動作において接触して反力を受ける対象物も、「床」に含まれるものとする。従って、例えば2足移動ロボットが椅子などに腰掛けるときには、該ロボットの腰部は接地部位に相当するものとなる。なお、脚式移動ロボットの通常的な移動時(2足移動ロボットの歩行時など)には、各脚の先端部(足平など)が接地部位に相当するものとなることはもちろんである。
接地部位を分類(区別)するに当たっては、ロボットの同一のリンク(単一の剛体に相当する部分)上で接地部位が複数箇所に分離されて分布している場合(同一のリンクの、互いに分離した複数の部分が接地している場合)でも、すなわち同一リンク上で複数の接地面がつながっていなくても、これらをまとめてひとつの接地部位と定義する。例えば、スパイクピンが4本装着された接地部位がそれらのスパイクピンを介して接地する場合には、4本のスパイクピンのそれぞれの接地面をまとめてひとつの接地部位とみなす。ただし、それらの接地面を必ずしも一つにまとめる必要はない。
第n接地部位とは、このようなルールの基で分類(区別)されて識別番号n(n=1,2,3,…)を割り振られた接地部位の識別名称である。
接地部位床反力とは、接地部位に作用する床反力とし、特に、第n接地部位に作用する床反力を第n接地部位床反力という。また、全床反力とは、すべての接地部位に作用する床反力の合力とする。更に、床反力中心点とは、床反力がその点に発生するモーメントの水平成分が0となるような作用点とする。
なお、接地部位床反力、全床反力などの床反力は、一般的には、力の作用点と、その作用点にかかる並進力およびモーメントとの組によって表現され、同一の床反力に対して、それを表現する作用点と、並進力およびモーメントとの組は無限にある。その中には、鉛直軸まわりの成分(鉛直成分)を除くモーメント成分(モーメントの水平成分)が0となるような点を作用点として用いる床反力の表現が存在する。この表現における作用点を、本明細書では床反力中心点という。また、床反力中心点を、床反力がその点に発生するモーメントの床面平行成分(床面に平行な成分)が0となるような点として定義してもよい。
尚、この明細書で「床面」は、本願出願人が先に提案した特開平5−318340号公報に記載される仮想的な床面(目標歩容上で想定される床面であって、実際の床面とは必ずしも一致しない)であっても良い。
補足すると、接地部位の床反力中心点は、その接地部位が接地している状態では、通常、その接地面(床との接触面)上に設定される。一方、接地部位が空中を移動しているときの接地部位床反力は常に0であるので、どの点を作用点としても該接地部位床反力のモーメント水平成分は0である。つまり、床反力中心点は任意に設定できる。ただし、ロボットの動作制御を円滑に行なう上では、目標とする床反力中心点は、連続的に移動することが望ましい。そこで、本明細書の実施形態では、接地部位床反力の床反力中心点は、接地部位が空中を移動するときに、接地部位と共に移動する作用点であるとする。
本明細書の実施形態においては、少なくとも実床反力(ロボットに実際に作用する床反力)に応じて各接地部位の位置姿勢の修正を行なうコンプライアンス制御動作において、単に、各接地部位毎に、互いに無関係に(独立して)コンプライアンス制御動作を行うのではない。本明細書の実施形態は、各接地部位をツリー構造で分類し、少なくとも分類された各グループに作用する実床反力(各グループに含まれる全ての接地部位に作用する実床反力もしくはその合力)に基づき、接地部位の位置姿勢の修正動作を決定することに特徴がある。尚、以降、ツリー構造で分類することを「階層化」と呼ぶこともある。
本明細書の実施形態における脚式移動ロボットの歩容生成装置が生成する変数の目標値には、変数名の頭に「目標」を付ける。実際の脚式移動ロボットにおける当該変数の値(真の値はわからないので、実際には、検出値または推定値)には、変数名の頭に「実」を付ける。前記「実床反力」はその例である。
後述するコンプライアンス制御(床反力制御)の全床反力(ロボットのすべての接地部位に作用する実床反力の合力)の目標を目標全床反力と呼ぶ。目標全床反力のモーメント水平成分が0となる点を目標全床反力中心点と呼ぶ。
移動ロボットの目標歩容の運動(目標歩容におけるロボットの各部位の運動)が発生する慣性力と該ロボットに作用する重力との合力のモーメント水平成分が0となる床面上の点を目標ZMPと呼ぶ。なお、目標歩容の運動は、目標歩容におけるロボットの各部位の目標位置姿勢の時系列によって定まるので、その各部位の目標位置姿勢の時系列を総称的に目標歩容の運動もしくは目標運動という。補足すると、これらの時系列を規定できるならば、上記の如く定義した目標運動と異なる表現で目標運動を記述してもよい。例えば、ロボットの各関節の目標変位の時系列と基体などの特定の部位の目標位置姿勢の時系列との組を目標運動としてもよい。
目標全床反力は、通常、目標歩容の運動パターン(目標運動の時系列パターン)に対して動力学的に平衡する全床反力である。従って、通常、目標全床反力中心点は、目標ZMPに一致する。そこで、以下の説明では、多くの場合、目標全床反力中心点と目標ZMPとを区別せずに使用する。ただし、例外的に、本願出願人が先に提案した特許第3269852号などにて説明しているロボットの制御の場合には、目標全床反力中心点と目標ZMPとは一致するとは限らない。以下の説明では、目標ZMPという言葉を用いる場合もあるが、厳密には目標全床反力中心点と言うべき箇所もある。
尚、移動ロボットの目標歩容で該ロボットが床反力以外の反力(外力)を環境から受けるように想定してもよい。そして、その床反力以外の反力(外力)を、例えば目標対象物反力と称し、先に述べた目標ZMPの定義を次のように拡張しても良い。即ち、ロボットの目標歩容の運動パターンによって発生する慣性力と該ロボットに作用する重力と目標対象物反力との合力を動力学的に求め、その合力が床面上のある点に発生するモーメントが、鉛直軸まわりの成分を除いて0であるならば、その点を改めて目標ZMPとするようにしても良い。ただし、目標対象物反力も、床反力の一形態としてとらえるならば、目標ZMPの定義は、先に述べた定義のままでよい。
以上を前提として、本発明の実施形態を以下に詳細に説明する。
[第1実施形態]
図1は、第1および第2実施形態に係る一般的な多脚の移動ロボット(脚式移動ロボット)の外観図である。ただし、図1では、ロボット1は、第1脚#1〜第6脚#6までの6個の脚(脚体)を有するものとして図示しているが、第1実施形態においては、第5脚#5および第6脚#6は無いものとする。すなわち、第1実施形態では、ロボット1は、第1脚#1〜第4脚#4の4個の脚(脚体)を有する4脚ロボットであるとする。図1では、第2実施形態に係るロボット1の構成要素については、括弧付きの参照符号を付している。
図1に示すように、第1実施形態のロボット1(4脚ロボット)では、該ロボット1の基体である上体24の右側部から2個の脚(第1脚#1、第3脚#3)が前後方向に並んで延設され、これと同様に上体24の左側部から2個の脚(第2脚#2、第4脚#4)が前後方向に並んで延設されている。各脚#1〜#4の先端部には、フリージョイントである球関節12を介して円盤状の接地部位10が取り付けられている。以降、接地部位10を各脚#1〜#4毎に区別する必要があるときは、それぞれを第1接地部位、第2接地部位、第3接地部位、第4接地部位という。
各接地部位10は、その中心点を球関節12の中心点に一致させて該球関節12に係合されており、該接地部位10の中心点(厳密には球関節12)には、床反力モーメント(床反力のモーメント成分)が作用しないようになっている。すなわち接地部位10の中心点の床反力モーメント(実床反力モーメント)は常に0となる。
図示のロボット1では、各脚#1〜#4は、ロボット1の上体24寄りの部分と中間部とにそれぞれ関節14,15を備えると共に、各脚#1〜#4の先端部近傍(球関節12と関節14とを連結するリンクの球関節12寄りの部分)に、バネなどの弾性部材から構成されたコンプライアンス機構42と、接地部位10に作用する実床反力を検出する床反力検出手段としての6軸力センサ34とが介装されている。図示の例では、関節14は2軸回りの回転が可能とされ、関節15は1軸回りの回転が可能とされている。なお、コンプライアンス機構とし、接地部位の底面にスポンジやゴムなどの弾性体を設けてもよい。
各関節14,15の変位動作(各軸回りの回転動作)は、図示を省略する電動モータなどのアクチュエータにより行なわれる。そして、各関節14,15の実際の変位量(各軸回りの回転角)である実関節変位が、図示しないロータリエンコーダ等のセンサにより検出される。なお、6軸力センサ34は、3軸方向の並進力と3軸回りのモーメントとを検出可能なものであるが、第1実施形態のロボット1では、前記したように接地部位10の中心点に実床反力モーメントが作用しない。従って、6軸力センサ34の代わりに、3軸方向の並進力を検出する3軸力センサ、あるいは、実床反力の並進力の鉛直成分だけを検出する力センサを用いてもよい。
上体24には、マイクロコンピュータやアクチュエータ駆動回路等を含む電子回路ユニットから構成された制御装置50と、上体24の姿勢を検出する姿勢センサ36と、図示しない電源(2次電池、キャパシタなど)とが内蔵されている。姿勢センサ36は、例えば加速度センサとジャイロセンサとから構成されている。なお、本明細書では、「姿勢」は一般的には空間的な向きを意味する(但し、ロボットの全体の「姿勢」は、ロボットの運動の瞬時値を意味する)。そして、本実施形態では、姿勢センサ36は、上体24の姿勢のうち、例えば鉛直方向に対するピッチ方向およびロール方向の姿勢傾斜(傾き角)を検出する。すなわち、姿勢センサ36は上体24の実姿勢傾斜を検出する実姿勢傾斜検出手段として機能する。
なお、ロボット1の上体24のヨー方向の姿勢(回転角)も制御するような場合には、上体24のヨー方向の回転角も(換言すれば上体24の3軸方向の姿勢を)姿勢センサ36で検出するようにしてもよい。
図2は、前記制御装置50の機能的構成および動作を示すブロック図である。なお、図2では、図1のロボット1から、制御装置50、姿勢センサ36および6軸力センサ34を除いたものを実ロボット1と称している。ここで、前記図1に示したように、ロボット1のおおよそ前方向をX軸、おおよそ左横方向をY軸、上方向をZ軸とした、床に固定された所定の座標系(XYZ座標系)を「支持脚座標系」または「グローバル座標系」と呼ぶ。以降、特に断らない限り、位置、姿勢、並進力およびモーメントはこの支持脚座標系(グローバル座標系)の座標成分の組によって表現されるものとする。攴持脚座標系(グローバル座標系)の原点は、定常的に単一の点に固定されている必要はなく、ロボット1の移動途中で床に対する原点位置を変更してもよい。例えば、ロボット1の所定の脚が着地する毎に支持脚座標系(グローバル座標系)の原点位置を変更してもよい。
図2に示すように、制御装置50は、その機能的構成要素(機能的手段)として、歩容生成装置100、目標床反力分配器102、ロボット幾何学モデル(逆キネマティクス演算部)110、階層型コンプライアンス動作決定部114、変位コントローラ112、実床反力検出器108、姿勢偏差演算部103、および姿勢安定化制御演算部104を備えている。以下に、制御装置50のこれらの要素の概要を説明する。
歩容生成装置100は、本発明における目標歩容決定手段あるいは目標運動決定手段としての機能を持ち、ロボット1の動作を規定する目標歩容を生成(決定)して出力する。目標歩容は、本実施形態では、ロボットの目標運動の軌道(ロボットの各部位の目標位置姿勢の時系列)と目標床反力の軌道(ロボットが床から受ける反力の作用点の目標位置とその作用点にかかる並進力およびモーメントの目標値との組の時系列)とから構成される。なお、本明細書では、「軌道」は、時系列パターン(時間的変化のパターン)を意味する。
歩容生成装置100が出力する目標運動の軌道は、ロボット1の各接地部位10の位置および姿勢の目標値の軌道である目標接地部位軌道と、ロボット1の上体24の位置および姿勢の目標値の軌道である目標上体位置姿勢軌道とから構成される。なお、後述する第6実施形態のように、腕や頭部に係る関節を備えるロボットにおける歩容生成装置は、腕や頭部の目標位置姿勢軌道も目標運動の構成要素として決定して出力する。
また、歩容生成装置100が出力する目標床反力の軌道は、本実施形態では、ロボット1の全床反力中心点の目標位置の軌道である目標全床反力中心点軌道と、この目標全床反力中心点を作用点とする全床反力の目標値の軌道である目標全床反力軌道とから構成される。本実施形態では、目標全床反力中心点軌道は、ZMPの目標位置の軌道である目標ZMP軌道と同一とされている。
各接地部位10の位置は、該接地部位10のある代表点の位置であり、その代表点は、例えば、各接地部位10の中心点(球関節12の中心点)の、該接地部位10の接地面(底面)への鉛直方向の投影点あるいは該接地部位10の中心点(球関節12の中心点)とされている。以降、各接地部位10の代表点の位置を単に接地部位位置と呼ぶ。この接地部位位置の目標値の軌道(目標接地部位位置軌道)が歩容生成装置100により決定される前記目標接地部位軌道に含まれる。
ここで、本実施形態のロボット1では、各接地部位10はフリージョイントである球関節12に係合されているので、各接地部位10の姿勢を制御することはできない。このため、本実施形態では、歩容生成装置100は、実際には各接地部位10の目標姿勢の軌道を生成しない(生成する必要がない)。従って、本実施形態では、前記目標接地部位軌道は、目標接地部位位置軌道と同じものを意味する。
但し、後述する第6実施形態のロボットのように、各接地部位が各脚の先端部にその姿勢を制御可能に取り付けられている場合(各脚の先端部にアクチュエータにより動作可能な関節を介して接地部位が取り付けられている場合)には、各接地部位の目標姿勢の軌道も、前記目標接地部位軌道に含まれるべきものである。本明細書では、このような場合も一般的に考慮するために、しばしば「接地部位位置姿勢」という用語を用いるが、それは、本実施形態では、実質的には「接地部位位置」のことを意味する。
図3(a)〜図3(c)および図4(a)〜図4(c)を参照して、目標接地部位軌道(目標接地部位位置軌道)および目標全床反力中心点軌道をより具体的に説明する。第1実施形態では、脚#1〜#4のうち、第1脚#1および第4脚#4の組を支持脚、第2脚#2および第3脚#3の組を遊脚とする時期と、全ての脚#1〜#4を支持脚とする時期と、第1脚#1および第4脚#4の組を遊脚、第2脚#2および第3脚#3の組を支持脚とする時期とを順番に繰り返しつつ、遊脚となる脚の組を離床させて空中で移動させた後、所望の位置に着地させるという脚#1〜#4の運動を行なうことによりロボット1の移動を行なうようにしている。支持脚は、接地してロボット1の自重を支える脚(0でない床反力を作用させるべき脚)であり、遊脚は支持脚でない脚である。
図3(a)〜図3(c)および図4(a)〜図4(c)は、上記の如くロボット1を移動させるときの各脚#1〜#4の先端の目標接地部位位置(詳しくは水平面(XY平面)上での位置)を時系列的に順番に(時刻t1〜t6の順に)示したものである。これらの図中の参照符号Q1〜Q4に対応する三角形が、それぞれ第1〜第4接地部位10の目標接地部位位置(第1〜第4接地部位10の前記代表点の水平面(XY平面)上での位置)を示している。
補足すると、図3および図4中の参照符号Q1〜Q4を付した三角形は、正確には、各接地部位10に係る後述の目標ノード床反力中心点(目標接地部位床反力中心点)の位置を示すものである。ただし、本実施形態では、各接地部位10の代表点を前記した如く設定しているので、第1〜第4接地部位10のそれぞれの目標接地部位位置(代表点の目標位置)は、後述する目標ノード床反力中心点Qn(n=1,2,3,4)のそれぞれの位置に一致するか、もしくは、該目標ノード床反力中心点Qn(n=1,2,3,4)のそれぞれの位置と一定の位置関係を有する(水平面(XY平面)上での位置は一致する)。このため、図3および図4中の参照符号Q1,Q2,Q3,Q4に対応する三角形は、第1〜第4接地部位10のそれぞれの後述の目標ノード床反力中心点を表すと同時に、第1〜第4接地部位10のそれぞれの位置を表している。
図3(a)は、第2脚#2および第3脚#3の組を支持脚とし、遊脚としての第1脚#1および第4脚#4の組を着地させる瞬間(時刻t1)での各接地部位10の目標接地部位位置を示し、図3(b)は、全ての脚#1〜#4が攴持脚となっている状態の時刻t2での目標接地部位位置を示し、図3(c)は、第1脚#1および第4脚#4の組を支持脚とし、遊脚としての第2脚#2および第3脚#3の組を離床させる(空中に持ち上げる)直前の時刻t3での目標接地部位位置を示している。また、図4(a)は、第1脚#1および第4脚#4の組を支持脚とし、遊脚としての第2脚#2および第3脚#3の組を空中に持ち上げた状態の時刻t4での目標接地部位位置を示し、図4(b)は、第1脚#1および第4脚#4の組を支持脚とし、遊脚としての第2脚#2および第3脚#3の組を着地させた瞬間(時刻t5)での目標接地部位位置を示し、図4(c)は、第2脚#2および第3脚#3の組を支持脚とし、遊脚としての第1脚#1および第4脚#4の組を離床させる直前の時刻t6での目標接地部位位置を示している。なお、図4(a)では遊脚である第2脚#2および第3脚#3の目標接地部位位置を破線の三角形で示している。補足すると、遊脚の接地部位10の鉛直方向(Z軸方向)の位置の軌道は、床面から所定の高さまで上昇した後、下降して、再び着地するように決定される。
これらの図3および図4における点Pは、目標全床反力中心点(目標ZMP)を示している。目標全床反力中心点軌道は、ZMPの存在可能範囲(いわゆる支持多角形に相当する床面上の領域)内で該範囲の境界に近づきすぎない位置(例えばZMPの存在可能範囲のほぼ中央位置)に存在しつつ、連続的に移動するように決定される。第1実施形態では、2つの脚#1,#4または#2,#3が支持脚となるときには(図3(a),(c)、図4(a)〜(c)を参照)、それらの脚の接地部位10,10の代表点を結ぶ線分上で、その線分の端点に近づき過ぎないように目標全床反力中心点が設定される。また、全ての脚#1〜#4が支持脚となるときには(図3(b)を参照)、全ての接地部位10の代表点を頂角とする多角形内で、該多角形の境界に近づき過ぎないように目標全床反力中心点が設定される。図5(d)は、このように決定された目標全床反力中心点(目標ZMP)の位置のX軸方向(ロボット1の進行方向)の成分ZMPxの軌道を例示したグラフである。なお、図5(a)〜(c)は後述の重みの設定例を示すグラフである。
また、歩容生成装置100が決定する目標上体位置姿勢軌道は、少なくとも、ロボット1の目標運動によって発生する慣性力とロボット1に作用する重力との合力が目標ZMPまわりに作用するモーメントの水平成分が0になるようにロボット1の動力学モデルなどを使用して決定される。なお、「上体位置」は、上体24のある代表点の位置である。
また、歩容生成装置100が決定する目標全床反力は、目標全床反力中心点に作用する並進力およびモーメントの目標値から構成され、本実施形態では、ロボット1の目標運動によって発生する慣性力とロボット1に作用する重力との合力に目標全床反力中心点で釣り合うように決定される。なお、目標全床反力中心点(目標ZMP)まわりの目標全床反力のモーメント水平成分は0である。補足すると、目標全床反力中心点に作用する並進力およびモーメントの全ての成分を目標値として決定する必要はない。例えばロボット1の鉛直軸まわりの姿勢もしくは床反力を制御しない場合には、目標全床反力のモーメントの鉛直軸まわりの成分(Z軸方向成分)を決定する必要はない。
なお、歩容生成装置100が決定する目標接地部位軌道(目標接地部位位置軌道)は、後述する階層型コンプライアンス動作決定部114にて修正される。
前記目標床反力分配器102は、ロボット1の第1〜第4接地部位10をツリー構造状にグループ分けし(すなわち階層化し)、階層化された各グループに、ツリー構造のノードを対応させる。したがって、以下の説明において、ノードをグループに置き換えて表現しても構わない。各ノードは、1つ以上の接地部位10から構成されるグループである。
第1実施形態においては、図6に示す如く接地部位10が階層化される。すなわち、第n接地部位10(n=1,2,3,4)を第nノードに対応させ、第1ノードと第4ノードとを子ノードとして持つノードを第14ノードとし、第2ノードと第3ノードとを子ノードとして持つノードを第23ノードとし、第14ノードと第23ノードとを子ノードとして持つノードを第1423ノードとする。従って、第1〜第4ノードは、それぞれ第1、第2、第3、第4接地部位10から成るノード、第14ノードは、第1接地部位10と第4接地部位10とから成るノード、第23ノードは、第2接地部位10と第3接地部位10とから成るノード、第1423ノードは全ての接地部位10から成るノードである。
ツリー構造における一般的な呼び方に従い、子ノードを持たないノードを葉ノードと呼び、親ノードを持たないノードを根ノードと呼ぶ。したがって、第nノード(n=1,2,3,4)は葉ノード、第1423ノードは根ノードである。なお、本明細書では、ノードを区別するために、葉ノードには、それに対応する接地部位(もしくは脚)と同じ番号(1,2,3,…)を割り付け、葉ノード以外のノードには、葉ノードより大きい番号を割り付けることとする。また、葉ノードおよび根ノード以外のノードを中間ノードと呼ぶ。第1実施形態では、中間ノードは第14ノード、第23ノードである。
目標床反力分配器102には、歩容生成装置100で決定された目標歩容のうち、目標全床反力中心点軌道、目標全床反力軌道および目標接地部位軌道とが入力される。なお、歩容生成装置100が目標歩容を決定するために使用した歩容パラメータ(ロボット1の遊脚の接地部位10の着地予定位置、着地予定時刻など)も目標床反力分配器102に入力してもよい。そして、目標床反力分配器102は、これらの入力を基に、上記のように階層化された各ノードの床反力中心点の目標位置である目標ノード床反力中心点(目標第nノード床反力中心点)Qn(n=1,2,3,4,14,23,1423)と、根ノードを除く各ノードの重みWn(n=1,2,3,4,14,23)とを決定する。ただし、各重みWnは1以下の非負の値とする。
目標ノード床反力中心点Qn(n=1,2,3,4,14,23)および重みWn(n=1,2,3,4,14,23)の決定手法を図3(b)、図5および図7などを参照しつつ以下に詳説する。図3(b)には、同図示の状態におけるQnとWnとの関係が示され、図5(a)〜(c)にはWnの設定例が示され、図7には重みと目標ノード床反力中心点との関係が示されている。
根ノードである第1423ノードの目標ノード床反力中心点(目標第1423ノード床反力中心点)Q1423は、目標全床反力中心点(図3および図4中の点P)と同一に決定される(P=Q1423)。従って、以降の説明では、目標第1423ノード床反力中心点を示す符号として、多くの場合、目標全床反力中心点と同じ参照符号Pを用いる。
また、根ノードの重みW1423は、表現の統一性を保つために、便宜上「1」に設定される。
第n接地部位10(n=1,2,3,4)の目標床反力中心点(目標第n接地部位床反力中心点とも言う)は、本実施形態においては、常に第n接地部位10の中心点(球関節12の中心点)に設定される。そして、第n接地部位10に対応する葉ノードの目標ノード床反力中心点Qn(n=1,2,3,4)は、第n接地部位10の目標床反力中心点と同一に決定される。従って、目標ノード床反力中心点Qn(n=1,2,3,4)も常に第n接地部位10の中心点(この点の位置は該第n接地部位10の目標接地部位位置から一義的に定まる)に設定される。このように決定した葉ノードの目標ノード床反力中心点Qn(n=1,2,3,4)の位置は、第n接地部位10の目標接地部位位置から一義的に定まる。逆に言えば、葉ノードの目標ノード床反力中心点Qn(n=1,2,3,4)は、第n接地部位10の目標位置を規定するものとなる。なお、以降の説明では、葉ノードの目標ノード床反力中心点を目標接地部位床反力中心点ということもある。また、各目標接地部位軌道は、連続的に変化するように設定されるので、Qn(n=1,2,3,4)も連続的に変化するものとなる。
補足すると、本実施形態では、第n葉ノード(第n接地部位10)の目標床反力中心点Qn(n=1,2,3,4)を第n接地部位10の中心点に設定したが、接地部位の姿勢を制御できるロボットでは、各葉ノード(各接地部位)の目標床反力中心点は、例えば、その葉ノードに対応する接地部位の目標位置姿勢により定まる該接地部位の接地面(目標歩容で想定される床面との接触面)内に設定すればよい。
以降、一般に、任意の2つの点A,Bを結ぶ線分またはその長さをABというように表す。また、演算子「*」は、スカラーとスカラーとの組もしくはスカラーとベクトルとの組に対しては、乗算を意味し、ベクトルとベクトルとの組に対しては、外積(ベクトル積)を意味する。
根ノード以外の各ノードの重みWn(n=1,2,3,4,14,23)と各中間ノードの目標ノード床反力中心点Q14,Q23とは、目標第14ノード床反力中心点Q14が、Q1Q14:Q14Q4=W4:W1=(1−W1):W1という関係式を満たす線分Q1Q4の内分点、目標第23ノード床反力中心点Q23が、Q2Q23:Q23Q3=W3:W2=(1−W2):W2という関係を満たす線分Q2Q3の内分点、目標第1423ノード床反力中心点P(=目標全床反力中心点)が、Q14P:PQ23=W23:W14=(1−W14):W14を満たす線分Q14Q23の内分点となるように決定される。
言い換えると、少なくとも次式1,2,3を満足するように、Q14,Q23,Wn(n=1,2,3,4,14,23)が決定される。なお、これらの式1〜3中のQn(n=1,2,3,4,14,23)は、その点の位置(位置ベクトル)を意味している。
Wn(n=1,2,3,4,14,23)が1以下の非負の値であることから、上式1,2,3の右辺におけるQn(n=1,2,3,4,14,23)の係数(重み)は、すべて非負の値となる。
上式1〜3は、子ノードを持つ各ノード(すなわち葉ノードでない各ノード)の目標ノード床反力中心点の位置が、所定の非負の重みを用いて、そのノードの子ノードの目標ノード床反力中心点の位置の重み付き平均の位置に設定されることを意味する。言い換えると、前記図3(b)および図7に示す如く、子ノードを持つ各ノードの目標床ノード反力中心点Qn(n=14,23,1423)は、そのノードのすべての子ノードの目標ノード床反力中心点の内分点に設定される。図7は、各ノードの目標ノード床反力中心点Qn(n=1,2,3,4,14,23,1423)と重みWn(n=1,2,3,4,14,23)との関係を示す図である。なお、図3(b)中のL23,L14,L1423はそれぞれ線分Q2Q3、Q1Q4、Q23Q14の長さである。
補足すると、Q1〜Q4およびP(=Q1423)は前記した如く決定されるので、Wn(n=1,2,3,4,14,23)を決定すると、式1〜3を満たすQ14,Q23は一義的に定まり、逆に、Q14,Q23を決定すると、式1〜3を満たすWn(n=1,2,3,4,14,23)は一義的に定まる。従って、重みWn(n=1,2,3,4,14,23)を決定した上で、前記式1〜3に基づいて中間ノードの目標ノード床反力中心点Q14,Q23を決定しても、中間ノードの目標ノード床反力中心点Q14,Q23を決定した上で、前記式1〜3に基づいて重みWn(n=1,2,3,4,14,23)を決定しても、どちらでもよい。
中間ノードの目標ノード床反力中心点Q14,Q23は、図3(a)〜図3(c)および図4(a)〜図4(c)に時系列的に示したように、各接地部位10の移動に伴って移動する。この時の重みW14(=1−W23),W1(=1−W4),W3(=1−W2)は、それぞれ例えば前記図5(a)〜(c)のグラフで示す如く連続的に変化するように決定される。第nノード(n=1,2,3,4)のQnの軌道および重みWnが連続的に変化するように設定されるので、目標ノード床反力中心点Q14,Q23も連続的に移動するように決定される。つまり、すべての目標ノード床反力中心点(目標第nノード床反力中心点(n=1,2,3,4,14,23,1423))は、連続的に移動するように設定される。
目標床反力分配器102は、上記のように決定した各ノードの目標ノード床反力中心点を出力する。なお、根ノードの目標床反力中心点は、歩容生成装置100が決定する目標全床反力中心点と同じであるので、目標床反力分配器102から出力する必要はない。
目標床反力分配器102は、さらに、各ノードの目標床反力中心点に作用する床反力の目標値である目標ノード床反力を決定して出力する。出力する目標ノード床反力には、少なくとも葉ノードである第nノード(n=1,2,3,4)の目標ノード床反力中心点Qnに作用する目標ノード床反力(目標第nノード床反力)、すなわち、各接地部位10の目標床反力が含まれる。この目標ノード床反力は、後述する階層型コンプラインアス動作決定部114の処理で実行される、各脚#1〜#4のコンプライアンス機構42など(図1参照)のたわみ補償(より詳しくはコンプライアンス機構42および各脚のリンク機構のたわみによる各接地部位10の位置ずれの補償)等のために必要である。補足すると、ロボット1が、各脚#1〜#4の先端部以外にもコンプライアンス機構を備える場合には、コンプライアンス機構の変形を求めるために、目標第14ノード床反力、目標第23ノード床反力(中間ノードの目標ノード床反力)も決定して出力することが望ましい。
一般的に、各ノードの目標ノード床反力中心点に作用する目標床反力(目標ノード床反力)は、目標全床反力と各ノードの重みとから決定すればよい。具体的には、任意のノードの目標床反力は、そのノードの重みとそのノードのすべての先祖ノードの重みとの積に目標全床反力を乗じることによって決定すればよい。すなわち、次式4a(または式4b)によって目標第nノード床反力が算出される。
あるいは、葉ノードでない任意の第nノードの目標床反力が、第nノードのすべての子ノードの目標床反力の和(合力)に一致し、かつ、根ノードの目標床反力が目標全床反力に一致するように、目標各ノード床反力が決定される。この関係を示したものが図8である。
すなわち、第nノードの目標床反力である目標第nノード床反力をFn(n=1,2,3,4,14,23,1423)、目標全床反力をFtotalrefで表すと、Fnは、図8中に示す式によって、Ftotalrefと、重みWn(n=1,2,3,4,14,23)とから決定される。図8中の式は前記式4aまたは4bと等価である。
以上のごとく各ノードの目標床反力中心点(目標ノード床反力中心点)と各ノードの目標床反力(目標ノード床反力)とを決定することは、第nノードのすべての子ノードの目標床反力の合力が目標第nノード床反力中心点まわりに発生するモーメントの水平成分が0となるように各ノードの目標床反力中心点と目標床反力とを決定していることになる。従って、目標ノード床反力のモーメント水平成分は、いずれのノードについても0である。
なお、接地していない(非接地状態の)接地部位10の目標床反力(接地していない接地部位10に対応する葉ノードの目標ノード床反力)が0となるように、各目標ノード床反力中心点Qn(n=1,2,3,4,14,23)、各重みWn(n=1,2,3,4,14,23)および各目標ノード床反力Fn(n=1,2,3,4,14,23)の組が決定される。従って、第1実施形態では、図5(a)に示したように、第1接地部位10および第4接地部位10が遊脚となって離床する時期(該遊脚の接地部位10が空中を移動する時期)では、重みW14が0(W23=1)とされ、また、第2接地部位10および第3接地部位10が遊脚となって離床する時期では、重みW23が0(W14=1)とされる。このように、子ノードを持つ中間ノードの重みは、その中間ノードに葉ノードとして属する全ての接地部位が接地していない時期では0に設定される。逆に言えば、中間ノードの重みは、その中間ノードに属するいずれかの接地部位が接地している時期(厳密にはいずれかの接地部位に0でない床反力が作用している時期)では0には設定されない。
補足すると、第1実施形態では、中間ノードQ14に属する第1接地部位10および第4接地部位10のいずれか一方のみを非接地状態とする時期を有しないため、これらの接地部位10,10に対応する重みW1,W4は0または1となる時期を持たないものとなっている。ただし、第1接地部位10および第4接地部位10のいずれか一方のみが非接地状態となる時期を有するように、目標接地部位軌道を決定するようにした場合には、その時期で非接地状態となる接地部位10に対応する重みを0に設定し、且つ、接地状態となる接地部位10に対応する重みを1に設定するようにすればよい。この場合、その時期における中間ノードQ14の重みは、0で無い値に設定される。中間ノードQ23、並びにこれに属する葉ノードである第2接地部位10および第3接地部位10に係る重みについても同様である。一般的に言えば、子ノードを持つノードの重みは、そのノードに属する接地部位のいずれかが接地状態であるときには、0で無い値に設定され、そのノードに属する接地部位の全てが非接地状態となるときに、0に設定される。
上記のように求めた各目標ノード床反力は連続的に変化するので、ロボット1の衝撃の少ない移動(歩行)を実現するために適している。
以上の如く、第1実施形態では、各目標ノード床反力中心点Qn(n=1,2,3,4,14,23,1423)、各重みWn(n=1,2,3,4,14,23)および各目標各床反力Fn(n=1,2,3,4,14,23,1423)は、目標床反力分配器102によって次の条件A)〜G)を満たすように決定される。
A)各葉ノードの目標ノード床反力中心点Qn(n=1,2,3,4)は、該葉ノードに対応する接地部位10の中心点に一致する。より一般的には、Qn(n=1,2,3,4)は、目標歩容(目標接地部位軌道などの目標運動)に応じて決定される。補足すると、例えば各接地部位10の目標床反力中心点を歩容生成装置100で決定するようにしてもよく、その場合には、歩容生成装置100が決定する目標床反力を基に、目標ノード床反力中心点Qn(n=1,2,3,4)を決定すればよい。
B)根ノードの目標ノード床反力中心点は、目標全床反力中心点Pに一致する。
C)根ノードを除く各ノードの目標ノード床反力中心点Qn(n=1,2,3,4,14,23)と重みWn(n=1,2,3,4,14,23)とは、前記式1〜3の関係式を満たす。換言すれば、子ノードを持つ任意の第nノード(n=14,23,1423)の目標ノード床反力中心点Qnは、その第nノードの各子ノードの目標ノード床反力中心点の重み付き平均の点となる。
D)子ノードを持つ任意の第nノード(n=14,23,1423)の目標ノード床反力Fnは、該第nノードのすべての子ノードの目標ノード床反力の和(合力)に一致し、且つ、根ノード(第1423ノード)の目標ノード床反力F1423は目標全床反力Ftotalrefに一致する。換言すれば、第nノード(n=1,2,3,4,14,23,1423)の目標床反力Fnおよび重みWnが図8中の関係式を満たす。
E)接地していない接地部位10に対応する葉ノードの目標ノード床反力は0となる。
F)Qn,Wn,Fn(n=1,2,3,4,14,23,1423)は連続的に変化する。
G)非接地状態の接地部位10に対応する葉ノードの重み、または、その葉ノードの祖先ノードのいずれか1つの重みは0とされる。
なお、目標ノード床反力を決定する際に、前記のごとく重みを基に決定する代わりに、各目標ノード床反力中心点を基に決定しても良い。すなわち、前記A)〜C)の条件を満たすように各目標ノード床反力中心点を決定した上で、その目標ノード床反力中心点と、前記式1〜3とを基に、各重みを決定し、その決定した重みを用いて前記式4により目標各ノード床反力を決定するようにしても良い。
図2の説明に戻って、前記姿勢偏差演算部103は、ロボット1に目標上体姿勢に対する実上体姿勢の偏差を算出して出力するものである。本実施形態では、該姿勢偏差演算部103には、前記姿勢センサ36で検出された上体24の鉛直方向に対する傾き角(以下、実上体姿勢傾斜という)と、歩容生成装置100で決定された目標上体位置姿勢(詳しくは、目標上体姿勢のうちの鉛直方向に対する傾き角。以下、目標上体姿勢傾斜という)とが入力され、これらの偏差θberr(実上体姿勢傾斜−目標上体姿勢傾斜。以下、上体姿勢傾斜偏差θberrという)が算出される。算出するθberrは、X軸まわり成分(ロール方向成分)θberrxと、Y軸まわり成分(ピッチ方向成分)θberryとから構成される。なお、目標上体姿勢傾斜が例えば定常的に0であるような場合には、θberr=実上体姿勢傾斜であるので、姿勢センサ36の検出値(実上体姿勢傾斜)をそのまま、上体姿勢傾斜偏差θberrとして出力すればよい。
前記姿勢安定化制御演算部104は、一般的に言えば、前記上体姿勢傾斜偏差など、ロボット1に備えられたセンサの情報に基づいて検出または推定されるロボット1の状態に応じてロボット1の姿勢を安定化するための全床反力の補償量(目標全床反力の補正量)である補償全床反力を算出するものである。
ロボット1の姿勢を長期的に安定化させるためには、ロボット1の上体24などの所定の部位の実際の位置姿勢を望ましい位置姿勢に復元させるために必要な並進力とモーメントとを求め、これを目標全床反力中心点(目標ZMP)を作用点として付加的に発生させる必要がある。この付加的な並進力とモーメントとを補償全床反力という。また、補償全床反力のモーメント成分を「補償全床反力モーメントMdmd」(詳しくは目標全床反力中心点(目標ZMP)まわりの補償全床反力モーメントMdmd)と呼ぶ。
本実施形態では、姿勢安定化制御演算部104は、実上体姿勢傾斜を目標上体姿勢傾斜に復元する(近づける)ように補償全床反力モーメントMdmdを算出する。このために、姿勢安定化制御演算部104には、前記姿勢偏差演算部103で求められた上体姿勢傾斜偏差θberr(θberrx,θberry)が入力される。
姿勢安定化制御演算部104は、入力された上体姿勢傾斜偏差θberrを基に、前記補償全床反力モーメントMdmdを算出する。算出するMdmdは、X軸まわり成分Mdmdxと、Y軸まわり成分Mdmdyとから構成される。
MdmdxおよびMdmdyは、具体的には、例えば次式5,6のフィードバック制御則(ここではPD制御則)によって決定される。すなわち、MdmdxおよびMdmdyは、上体姿勢傾斜偏差θberrx,θberryを0に近づけるように決定される。
ここで、Kthx,Kthy,KwxおよびKwyは、所定のゲインである。また、(dθberrx/dt),(dθberry/dt)は、それぞれ上体姿勢傾斜偏差θberrx、θberryの時間微分値である。
本実施形態においては、補償全床反力モーメントMdmdのZ軸まわり成分(ヨー方向成分)Mdmdzを用いないので、Mdmdzの決定を行なわないが、ロボット1のスピン(鉛直軸回りの滑り)を防止したりするためにMdmdzを決定するようにしても良い。Mdmdzの決定法に関しては、本願出願人が先に提案した特願2003−185613号や特願2003−185930号にて詳細に説明されている。また、例えばロボット1の実際の重心の位置を目標歩容での重心の位置に復元するために、その重心の位置偏差に応じて補償全床反力の並進力を決定するようにすることも可能である。
前記床反力検出器108は、各脚#1〜#4の6軸力センサ34の出力を基に、実際のロボット1の各接地部位10に作用する床反力の実際値である実床反力(すなわち葉ノードの実床反力(実ノード床反力))を検出する。さらに、床反力検出器108は、ロボット1の各関節14,15に備えたエンコーダ等のセンサ(図示しない)によって検出される各脚#1〜#4の各関節14,15の実関節変位(各関節14,15の各回転軸まわりの実回転角)に基づき、上体24に固定された座標系に対する各接地部位10の相対位置姿勢(第1実施形態では相対位置)を算出する。なお、このとき、実関節変位の代わりに、各関節14,15の変位指令値(回転角指令値)である関節変位指令を用いたり、あるいは、実関節変位と関節変位指令との両者を使用してもよい。そして、算出した各接地部位10の相対位置姿勢を基に、各脚#1〜#4毎の6軸力センサ34の検出値(これは6軸力センサ34などに固定されたローカル座標系での値である)を座標変換して、上体24に固定された座標系で表現された実床反力を算出した後、これを攴持脚座標系(グローバル座標系)で表現された実床反力に変換する。支持脚座標系への座標変換には、姿勢センサ36の検出値、あるいは目標上体姿勢傾斜を用いればよい。補足すると、第1実施形態のロボット1では、前記したように接地部位10の中心点に床反力モーメントが作用しないので、各接地部位10の実床反力のうちのモーメント成分を検出する必要はない。この場合、前記したように6軸力センサ34の代わりに、3軸力センサを用いて、実床反力の3軸方向の並進力成分を検出したり、1軸床反力センサを用いて実床反力の並進力鉛直成分だけを検出するようにしてもよい。
前記ロボット幾何学モデル(逆キネマティクス演算部)110は、各接地部位位置姿勢の最終的な目標軌道(これは後述の階層型コンプライアンス動作決定部114により決定される)と目標上体位置姿勢などを基に、逆キネマティクスの演算によって、それらを満足するロボット1の各関節14,15の変位(回転角)の指令値である各関節変位指令を算出する。本実施形態では、逆キネマティクスの演算の解の式をあらかじめ求めておき、その式に目標上体位置姿勢と各接地部位の最終的な目標位置を代入するだけで各関節変位指令を算出するようにした。すなわち、ロボット幾何学モデル110は、歩容生成装置100で決定された目標上体位置姿勢軌道と階層型コンプライアンス動作決定部114で後述する如く修正された修正目標接地部位軌道(機構変形補償入り修正目標接地部位軌道)とが入力され、それらの入力値から逆キネマティクスの演算によって、各脚#1〜#4の各関節14,15の関節変位指令を算出する。
なお、後述する第6の実施形態のように腕関節や首関節など脚関節以外の関節があるロボットの場合には、手や頭部などの上体に対する相対位置姿勢を基に、逆キネマティクスの演算によって、脚関節以外の関節の変位が決定される。
前記変位コントローラ112は、ロボット1の各関節14,15の実関節変位(検出値)と、ロボット幾何学モデル(逆キネマティクス演算部)110で算出された関節変位指令とが入力され、該関節変位指令を目標値として、この目標値に実関節変位を追従させるように各関節14,15のアクチュエータ(図示しない)を制御(フィードバック制御)する。
階層型コンプライアンス動作決定部114は、目標全床反力と補償全床反力との合力に実全床反力を近づけるように目標接地部位軌道を修正し、その修正後の目標接地部位軌道である機構変形補償付き修正目標接地部位位置姿勢軌道を出力するものである。なお、本実施形態では、各接地部位10の姿勢は制御できないので、機構変形補償付き修正目標接地部位位置姿勢軌道は、実際には、機構変形補償付き修正目標接地部位位置軌道である。
階層型コンプライアンス動作決定部114は、一般的には、以下の3つの要求をできるだけ満足させるように各接地部位10の目標接地部位軌道を修正するものである。
要求1)ロボット1の位置姿勢を安定化するために、実全床反力を姿勢安定化制御演算部104が出力する補償全床反力(モーメントMdmd)と目標全床反力との合力に追従させる。なお、第1実施形態ではロボット1の上体24の姿勢傾斜(鉛直方向に対する傾き)を安定化するため、目標全床反力中心点まわりの実全床反力モーメントの水平成分を補償全床反力モーメントMdmdの水平成分Mdmdx,Mdmdyに追従させる。補足すると、目標全床反力中心点まわりの目標全床反力モーメントの水平成分は0であるので、これとMdmdとの合力は、Mdmdに一致する。
要求2)接地しているべき複数の接地部位10に対し、その一部の接地部位10に実床反力が集中し、それ以外のある一部の接地部位10の実床反力が減少し過ぎ、その実床反力が減少した接地部位10の接地性が極端に低下しないように、できる限り葉ノードでない各ノードの目標床反力中心点まわりの実床反力モーメントの絶対値を小さくする。なお、第1実施形態では、第14ノード、第23ノード、第1423ノードの目標床反力中心点まわりの実床反力モーメントの絶対値をできる限り小さくする。
要求3)接地しているべき各接地部位10の接地性を確保するように、すなわち各接地部位10におけるローカルな接地圧分布(実床反力の分布)が偏って、該接地部位10の局所的な接地性が低下しないように、できるかぎり各接地部位10(各葉ノード)の目標床反力中心点まわりの実床反力モーメントの絶対値を小さくする。但し、第1実施形態のロボット1では、各接地部位10の目標床反力中心点まわりの実床反力モーメントは常に0となるので、この要求3)は考慮する必要はない。
尚、一般に、要求1)〜3)の全て、あるいは要求1)、2)を完全に満足することはできない。例えば実全床反力を補償全床反力と目標全床反力との合力に一致させながら各接地部位10の目標床反力中心点まわりの実床反力モーメントを0にすることが、物理的に不可能な場合が多い。従って、階層型コンプライアンス動作決定部114は、一般には、要求1)〜3)、あるいは要求1)、2)をできるだけ満たしつつ、ある妥協点で、各接地部位10の目標接地部位軌道を修正することとなる。
以上が制御装置50の各機能的手段(機能的構成要素)の概要である。
補足すると、前記階層型コンプライアンス動作決定部114、姿勢安定化制御演算部104およびロボット幾何学モデル(逆キネマティクス演算部)110は、本発明におけるノード動作制御手段に相当するものである。
次に、図9のフローチャートを参照しつつ、制御装置50の全体的な動作(演算処理)をより詳細に説明する。図9は制御装置50のメインルーチン処理を示すフローチャート(構造化フローチャート)である。尚、図9の左端には、該当する処理を行う制御装置50の構成要素を示す。
先ず、S10において制御装置50の初期化が行なわれた後、S12を経てS14に進み、制御装置50の演算処理は、該制御装置50の制御周期毎のタイマ割り込みを待つ状態となる。制御周期は例えば50msである。
続いてS16に進んで歩容の切り替わり目か否か判断し、その判断結果がNOであるときは後述のS22に進む。また、S16の判断結果がYESであるときはS18に進んで時刻tを0に初期化した後、S20に進んで歩容パラメータを設定する。本実施形態では、例えばロボット1のある所定の脚(例えば#1)が離床してから次に離床するまで(もしくは着地してから次に着地するまで)の所定期間分の目標歩容を単位として、その所定期間分の目標歩容を規定するパラメータ(目標歩容を決定するためのアルゴリズムで使用するパラメータ)である歩容パラメータがS20で設定される。そして、S16でいうところの「歩容の切り替り目」は、上記所定期間分の目標歩容の切り替り目のことである。なお、目標歩容の切り替り目の判断は、時刻や、上記所定の脚の6軸力センサ34の検出値などを基に行えばよい。
S20で設定される歩容パラメータは、ロボット1の目標運動軌道(詳しくは目標接地部位軌道および目標上体位置姿勢軌道)を規定する運動パラメータと、目標床反力軌道(詳しくは目標全床反力軌道および目標全床反力中心点軌道)を規定する床反力パラメータとから構成される。補足すると、ロボット1の目標運動が決まれば、その目標運動によって発生する慣性力とロボット1に作用する重力との合力の符号を反転させたものを目標全床反力とすればよいので、床反力パラメータは、目標全床反力中心点軌道のみを規定するものでもよい。また、目標接地部位軌道(より一般的には目標上体位置姿勢以外の目標運動のパラメータ)と目標全床反力中心点とを決定した上で、ロボット1の動力学モデルを使用し、ロボット1の目標上体位置姿勢を含む目標運動が発生する慣性力とロボット1に作用する重力との合力が目標全床反力中心点(目標ZMP)まわりに発生するモーメントの水平成分が0になるように、目標上体位置姿勢を決定するような場合には、運動パラメータには、目標上体位置姿勢軌道を規定するパラメータが含まれていなくてもよい。
続いてS22に進み、上記歩容パラメータを基に、目標歩容の瞬時値を決定する。ここで「瞬時値」は制御周期ごとの値を意味し、目標歩容瞬時値は、目標上体位置姿勢、目標接地部位位置(目標接地部位軌道の瞬時値)、目標全床反力、および目標全床反力中心点位置(目標ZMP位置)の瞬時値から構成される。なお、本実施形態では、接地部位10の姿勢を制御できないので、各接地部位10の目標姿勢の瞬時値は決定しない。各接地部位の姿勢を制御できる場合には、前記歩容パラメータに各接地部位の目標姿勢を規定するパラメータを含めておき、そのパラメータを基に各接地部位の目標姿勢の瞬時値を決定すればよい。
上記S14〜S22の処理は、前記歩容生成装置100により実行される処理である。
続いてS24に進んで、各ノードの重みWn(n=1,2,3,4,14,23)と各ノードの目標床反力中心点(目標ノード床反力中心点)Qn(n=1,2,3,4,14,23)とが求められる。この処理は目標床反力分配器102によって前記した如く実行される処理である。
続いてS26に進んで、目標ノード床反力(少なくとも各接地部位10(各葉ノード)の目標床反力を含む)が求められる。第1実施形態では、各葉ノードの目標ノード床反力(各目標接地部位床反力)が求められる。このS26処理も、目標床反力分配器102によって前記した如く実行される処理である。なお、前述の通り、各脚#1〜#4の先端部以外にもコンプライアンス機構を設けた場合には、さらに葉ノードでない各中間ノードの目標床反力も求めた方が良い。補足すると、目標ノード床反力のモーメント水平成分は0である。
続いてS28に進み、姿勢センサ36などの出力から前記実上体姿勢傾斜などのロボット1の状態を検出する。第1実施形態では、前記姿勢偏差演算部103によって、姿勢センサ36による実上体姿勢傾斜の検出値が取り込まれ、その検出値と目標上体位置姿勢のうちの目標上体姿勢傾斜(現在時刻の瞬時値)とから、上体姿勢傾斜偏差θberrが算出される。
続いてS30に進み、S28で検出したロボット1の状態などからロボット1の姿勢を安定化するための補償全床反力を求める。第1実施形態では、前記姿勢安定化制御演算部104によって、前記上体姿勢傾斜偏差θberrから、目標全床反力中心点(目標ZMP)まわりの補償全床反力モーメントMdmdの水平成分Mdmdx,Mdmdyが前記式5および式6に従って算出される。
続いてS32に進んで各接地部位10の実床反力を検出する。これは前記実床反力検出器108によって実行される処理であり、前記の如く、6軸力センサ34によって検出された各接地部位10毎の実床反力を支持脚座標系(グローバル座標系)に変換したものが求められる。以降、各接地部位10の実床反力を実接地部位床反力ということがある。
続いてS34からS38まで、前記階層型コンプライアンス動作決定部114の処理が実行される。
以下、しばらくの間、これらのS34〜S38の処理を具体的に説明する前に、階層型コンプライアンス動作決定部114の全体的な処理を説明する。なお、この説明は、理解の便宜上、主に前記図3(b)に示す状態(ロボット1の全ての脚#1〜#4が支持脚となっている状態)を例にとって行なう。
階層型コンプライアンス動作決定部114は、目標床反力分配器102で決定された各葉ノードの目標ノード床反力などを基に、葉ノードを除く各ノードの目標ノード床反力の並進力成分とモーメント成分(より詳しくは目標ノード床反力中心点を作用点とする並進力成分とモーメント成分)とを決定する。
図3(b)の状態における各ノードの目標床反力(各目標ノード床反力)の並進力成分を、例示的に図10に示す。この図において、ベクトルFn_ref(n=1,2,3,4,14,23)が目標第nノード床反力の並進力成分を表している。また、Ftotalrefは目標全床反力(=目標第1423ノード床反力)の並進力成分を表す。前記図8に示したように、葉ノードでない任意の第nノード(n=14,23,1423)の目標第nノード床反力は、第nノードのすべての子ノードの目標ノード床反力の合力に決定される。従って、F14ref=F1ref+F4ref、F23ref=F2ref+F3ref、Ftotalref(=F1423ref)=F14ref+F23refである。階層型コンプライアンス動作決定部114は、目標床反力分配器102で決定された各葉ノード(各接地部位10)の目標ノード床反力の並進力成分Fn_ref(n=1,2,3,4)から、上記の如く、各中間ノードの目標ノード床反力の並進力成分F14ref(=F1ref+F4ref)、F23ref(=F2ref+F3ref)を求める。なお、Ftotalref(=F1423ref)は、前記歩容生成装置100で決定された目標全床反力の並進力成分に設定される。
さらに、階層型コンプライアンス動作決定部114は、目標ノード床反力の並進力成分の場合と同様に、葉ノードを除く各ノードの目標ノード床反力の、目標ノード床反力中心点を作用点とするモーメント成分を決定する。ただし、この場合、目標ノード床反力中心点Qn(n=1,2,3,4,14,23)の定義より、目標第nノード床反力のモーメント水平成分は、常に0に設定される。目標第1423ノード床反力(=目標全床反力)のモーメント水平成分も0に設定される。
本実施形態のロボット1においては、各接地部位10は各脚#1〜#4の先端部の球関節12(フリージョイント)に係合しているので、各接地部位10(各葉ノード)に床反力モーメント(水平成分および鉛直成分)を発生させることができない。このため、階層型コンプライアンス動作決定部114では、各接地部位10(各葉ノード)の目標ノード床反力のモーメント鉛直成分も0に設定される。
葉ノードでないノードの目標ノード床反力モーメント鉛直成分は、ロボット1の目標運動に動力学的に釣り合うように決定すると、一般的には0ではない値も採り得るが、本実施形態では、ロボット1の姿勢の鉛直軸まわりの回転(ヨー方向の回転)に関する制御を行なわない。このため、本実施形態では、葉ノードでないノードの目標ノード床反力のモーメントの鉛直成分の設定は省略する。このようなことから、図3(b)の状態における各目標ノード床反力のモーメント成分の図示は省略する。尚、ロボット1の姿勢の鉛直軸まわりの回転に関する制御を行なう場合には、各ノードの目標床反力モーメント鉛直成分も設定すべきである。
補足すると、葉ノードを含めた各ノードの目標ノード床反力の並進力成分およびモーメント成分の決定を、前記目標床反力分配器102で行なうようにした場合には、その決定を階層型コンプラインアンス動作決定部114で行なう必要はない。
また、階層型コンプライアンス動作決定部114は、各ノードの実床反力である実ノード床反力の並進力成分およびモーメント成分も決定する。
図3(b)の状態における各ノードの実床反力(実ノード床反力)の並進力成分を、例示的に図11に示す。この図において、ベクトルFn_act(n=1,2,3,4,14,23)が実第nノード床反力の並進力成分を表している。また、Ftotalactは実全床反力(=実第1423ノード床反力)の並進力成分を表す。一般に、葉ノードでない各ノードの実床反力の並進力成分は、そのノードのすべての子ノードの実床反力の並進力成分の合力とする。従って、第14ノード、第23ノードおよび第1423ノードの実床反力の並進力成分はF14act=F1act+F4act、F23act=F2act+F3act、Ftotalact(=F1423act)=F14act+F23actである。また、各葉ノードの実床反力の並進力成分F1act,F2act,F3act,F4actは、前記実床反力検出器108で得られる各接地部位10の実床反力(実接地部位床反力)の並進力成分である。なお、図11の点線で示したベクトルは、前記図10に示した目標ノード床反力の並進力成分である。階層型コンプライアンス動作決定部114は、上記のように、実床反力検出器108で得られた各接地部位10の実床反力から各ノードの実ノード床反力の並進力成分を決定する。
また、図3(b)の状態における各ノードの実床反力のモーメント成分を、例示的に図12に示す。この図において、ベクトルMn_act(n=14,23,1423)は実第nノード床反力のモーメント成分を表す。この場合、各ノードの実床反力の並進力成分と同様に、一般的には、葉ノードでないノードの実床反力のモーメント成分M14act、M23act、M1423act(=Mtotalact)は、そのノードのすべての子ノードの実床反力の合力のモーメント成分(そのノードの目標床反力中心点Q14,Q23,Q1423を作用点とするモーメント成分)とする。
本実施形態のロボット1においては、前記したように各接地部位10(各葉ノード)に床反力モーメントを発生させることができないので、各葉ノードの実床反力(実接地部位床反力)のモーメント成分は、常に0になる。よって、各葉ノードの実ノード床反力のモーメント成分の図示は省略する。
葉ノードでないノードの実床反力モーメント成分(本実施形態では、M14act,M23act,M1423act)は、一般的に、0にならない。例えば目標第14ノード床反力中心点Q14のまわりには、一般には、第1接地部位10(第1ノード)および第4接地部位10(第4ノード)の実床反力の並進力成分の水平成分によってモーメントが発生する。ただし、本実施形態のロボット1においては、脚の先端部にフリージョイントである球関節12を備えているので、M14actの線分Q1Q4と同方向の成分、M23actの線分Q2Q3と同方向の成分は0となる。
尚、各脚の先端部の関節にアクチュエータを備えたロボット(各脚の先端部の接地部位の姿勢を制御可能なロボット)においては、該ロボットの姿勢の鉛直軸まわり回転に関する制御を行なわない場合でも、本願出願人が先に提案した特開平10−277969号公報の実施例に示すごとく、各接地部位の目標床反力モーメント水平成分も設定し、また、各接地部位の実床反力モーメントも検出する。そして、各接地部位の実床反力モーメント水平成分を目標床反力モーメント水平成分に近づけるように、あるいは、各接地部位の実床反力モーメントを、目標床反力モーメント水平成分とその接地部位補償床反力モーメントとの和(ベクトル和)に近づけるように、各接地部位の姿勢の補正動作を行うべきである。
階層型コンプライアンス動作決定部114の処理をより詳細に説明する。この場合、図3(b)に示す状態で、ロボット1の上体24の姿勢が左後ろ側に倒れそうな状態となり、姿勢安定化制御演算部104が決定した補償全床反力モーメントMdmdが、図13のようになっている状況を想定する。
ロボット1の上体24の姿勢(鉛直方向に対する傾き)を復元させる(目標上体姿勢における傾きに復元させる)ためには、目標全床反力中心点(目標ZMP)まわりの実全床反力モーメントの水平成分を、目標全床反力モーメントMtotalref(=M1423ref)と補償全床反力モーメントMdmdとの和の水平成分に追従させれば良い。
一方、目標全床反力中心点(目標ZMP)では目標全床反力モーメントMtotalrefの水平成分は0である。従って、ロボット1の上体24の前後左右の姿勢(傾き)を復元させるためには、目標全床反力中心点(目標ZMP)まわりの実全床反力モーメントの水平成分を、Mdmdの水平成分(Mdmdx,Mdmdy)に追従させれば良い。また、本実施形態では、各接地部位10の目標床反力中心点まわりの実床反力モーメントは0である。
そこで、第1実施形態における階層型コンプライアンス動作決定部114は、前記した要求1)、2)の要求をできる限り満足するよう歩容生成装置100で決定した各接地部位10の目標接地部位位置(特に高さ方向の位置)を修正する。
この修正を行なうために、階層型コンプラインアス動作決定部114は、補償角というものを決定する。この補償角は、接地部位10の位置の間の相対関係をある点まわりの回転操作によって修正する(本実施形態では上下方向で修正する)ための操作量(回転量)である。本実施形態においては、その補償角としては、第14ノード補償角θ14、第23ノード補償角θ23、第1423ノード補償角θ1423がある。すなわち、葉ノード以外のノードの補償角である。そして、階層型コンプライアンス動作決定部114は、これらの補償角θ14,θ23,θ1423を基に、目標第nノード床反力中心点Qn(n=1,2,3,4,14,23)を修正してなる目標第nノード床反力中心点Qn’を決定する。
図15に示すように、第14ノード補償角θ14は、線分Q1Q4と線分Q1’Q4’とが成す角度、第23ノード補償角θ23は、線分Q2Q3と線分Q2’Q3’とが成す角度である。また、図16に示すように、第1423ノード補償角θ1423は、線分Q14Q23と線分Q14’Q23’とが成す角度である。これらのノード補償角θ14,θ23,θ1423の決定手法は後述する。
図15および図16を参照して、補償角θ14,θ23,θ1423を基にした目標第nノード床反力中心点Qn(n=1,2,3,4,14,23)の修正は次のように行なわれる。
図15を参照して、目標第1ノード床反力中心点Q1(第1接地部位10の目標床反力中心点)と目標第4ノード床反力中心点Q4(第2接地部位10の目標床反力中心点)とを含みかつ水平面と垂直な平面の法線ベクトルV14を求める。V14の大きさは1とする。目標第1ノード床反力中心点Q1の座標(位置)を、目標第14ノード床反力中心点Q14を回転中心として法線ベクトルV14まわり(Q14を通ってV14に平行な軸まわり)に、前記第14ノード補償角θ14だけ回転移動する。この回転移動によるQ1の移動後の点をQ1’とする。同様に、目標第4ノード床反力中心点Q4の座標(位置)を、目標第14ノード床反力中心点を回転中心として法線ベクトルV14まわりに第14ノード補償角θ14だけ回転移動する。この回転移動によるQ4の移動後の点をQ4’とする。換言すれば、線分Q1Q4をその内分点であるQ14を回転中心としてV14まわりにθ14だけ回転させて得られる線分の端点をQ1’,Q4’とする。従って、第14ノード補償角θ14は、第14ノードの目標床反力中心点Q14の位置を動かさずに、第14ノードの子ノードである第1ノードおよび第4ノードのそれぞれの目標床反力中心点Q1,Q4の位置の相対関係を動かすための操作量である。
また、目標第2ノード床反力中心点Q2と目標第3ノード床反力中心点Q3を含みかつ水平面と垂直な平面の法線ベクトルV23を求める。V23の大きさは1とする。目標第2ノード床反力中心点Q2の座標(位置)を、目標第23ノード床反力中心点Q23を回転中心として法線ベクトルV23まわり(Q23を通ってV23に平行な軸まわり)に、第23ノード補償角θ23だけ回転移動する。図15に示すように、この回転移動によるQ2の移動後の点をQ2’とする。同様に、目標第3接地部位床反力中心点Q3の座標(位置)を、目標第23ノード床反力中心点を回転中心として法線ベクトルV23まわりに第23ノード補償角θ23だけ回転移動する。この回転移動によるQ3の移動後の点をQ3’とする。換言すれば、線分Q2Q3をその内分点であるQ23を回転中心としてV23まわりにθ23だけ回転させて得られる線分の端点をQ2’,Q3’とする。従って、第23ノード補償角θ23は、第23ノードの目標床反力中心点Q23の位置を動かさずに、第23ノードの子ノードである第2ノードおよび第3ノードのそれぞれの目標床反力中心点Q2,Q3の位置の相対関係を動かすための操作量である。
次に、図16を参照して、目標第14ノード床反力中心点Q14と目標第23ノード床反力中心点Q23を含みかつ水平面と垂直な平面の法線ベクトルV1423を求める。V1423の大きさは1とする。目標第14ノード床反力中心点Q14の座標(位置)を、目標全床反力中心点P(=Q1423)を回転中心として法線ベクトルV1423まわり(Pを通ってV1423に平行な軸まわり)に、第1423補償角θ1423だけ回転移動する。この回転移動によるQ14の移動後の点をQ14’とする。同様に、目標第23接地部位床反力中心点Q23の座標(位置)を、目標全床反力中心点Pを回転中心として法線ベクトルV1423まわりに第1423補償角θ1423だけ回転移動する。この回転移動によるQ23の移動後の点をQ23’とする。換言すれば、線分Q14Q23をその内分点であるP(=Q1423)を回転中心としてV1423まわりにθ1423だけ回転させて得られる線分の端点をQ14’,Q23’とする。従って、第1423ノード補償角θ1423は、第1423ノードの目標床反力中心点Pの位置を動かさずに、第1423ノードの子ノードである第14ノードおよび第23ノードのそれぞれの目標床反力中心点Q14,Q23の位置の相対関係を動かすための操作量である。
なお、以降、一般に、始点がA、終点がBであるベクトルをベクトルABと表記する。
次に、Q1’をベクトルQ14_Q14’だけ移動した点Q1”を求める。同様に、Q4’をベクトルQ14_Q14’だけ移動した点Q4”を求める。また、Q2’をベクトルQ23_Q23’だけ移動した点Q2”を求める。同様に、Q3’をベクトルQ23_Q23’だけ移動した点Q3”を求める。
次いで、第n接地部位(n=1,2,3,4)の目標接地部位位置をベクトルQn_Qn”だけ平行移動(ほぼ上下移動)させる。これにより、各接地部位10の目標接地部位位置が修正されることとなる。補足すると、各ノードの目標床反力中心点と同様に、各葉ノードの位置を該葉ノードに対応する接地部位10の位置とし、子ノードを持つ各ノードの位置を、そのノードの全ての子ノードの位置の、前記の如く設定された重みを用いた重み付け平均の位置として定義したとき、上記のように、第14ノード、第23ノード、第1423ノードのそれぞれの各子ノードの目標床反力中心点を補償角θ14、θ23、θ1423に応じて動かす処理は、第14ノード、第23ノード、第1423ノードのそれぞれの各子ノードの位置を補償角θ14、θ23、θ1423に応じて動かすことと同じことである。
尚、各脚の先端部にフリージョイントがないロボット(接地部位の姿勢を制御可能なロボット)においては、上記平行移動を各接地部位の姿勢(目標姿勢)を変えずに行なった後に、さらに、第n接地部位をQn”を中心に、前後方向軸(X軸)まわりに、ある回転角θn_xだけ回転させると共に、左右方向軸(Y軸)まわりに、ある回転角θn_yだけ回転させる。これにより各接地部位の目標姿勢を修正する。この場合の回転角θn(θn_x、θn_yからなる2次元量)を第n接地部位補償角と呼び、θn_xを第n接地部位補償角X成分、θn_yを第n接地部位補償角Y成分と呼ぶ。第n接地部位補償角θnは、本願出願人が先に提案した特開平10−277969号公報に記載された手法に従って決定すればよい。
補足すると、前記各ノード補償角は、そのノードの目標ノード床反力中心点を作用点として、そこに本来発生すべき目標床反力モーメント(その水平成分は0)とノード補償床反力モーメントMn_dmdとの合力が発生するように決定される。この場合、ノード補償床反力モーメントMn_dmdの基となる補償全床反力モーメントMdmdは、実姿勢傾斜偏差を0に近づけるように決定されたものである。従って、各ノード補償角は、目標全床反力中心点まわりの床反力モーメントを所望のモーメント(この場合は補償全床反力モーメント)に近づけつつ、実姿勢傾斜偏差を0に近づけるよう各接地部位10の相対位置関係を操作するための操作量として機能することとなる。
以上のごとく、各接地部位10の目標接地部位位置(詳しくはその位置の相互の相対関係)を修正する処理が第1実施形態における階層型のコンプライアンス動作である。このコンプライアンス動作では、子ノードを持つ各ノード毎に、そのノードの子孫ノードとなっている各接地部位10の目標接地部位位置の間の相対関係(相対的位置関係)の操作量(修正量)が各補償角θ14,θ23,θ1423に応じて定められ、それらの操作量(修正量)を合成することで、各接地部位10の目標接地部位位置の相互の相対関係が修正されることとなる。上記のように修正された目標接地部位位置姿勢を修正目標接地部位位置姿勢という。
このようなコンプライアンス動作では、一般に、前記補償角(補償動作量)が過大でなければ、各接地部位10の接地圧力分布は変わっても、接地領域(接地面の圧力が正の領域)は変わらない。このような場合には、補償角に比例して各接地部位10に装着されたコンプライアンス機構42などが変形し、その変形量に応じた各接地部位10の実床反力が発生する。この結果、補償角と補償角によって発生する実床反力の変化量との間の関係は、以下に示す良好な特性、すなわち線形特性を持つ。
特性1)葉ノードでないノードの目標床反力中心点まわりの補償角だけを操作して各接地部位10の目標接地部位位置を移動させると、下がった接地部位10の実床反力の並進力成分が増加し、上がった接地部位10の実床反力の並進力成分が減少する。このとき、各接地部位10(各葉ノード)の修正された目標床反力中心点まわりの実床反力モーメントは、ほとんど変化しない。
特性2)第n接地部位補償角だけを操作して第n接地部位の目標姿勢を回転させると、第n接地部位の目標床反力中心点に作用する実床反力のモーメント成分が変化し、並進力成分はあまり変化しない。
特性3)葉ノードでないノードの目標床反力中心点まわりの補償角と第n接地部位補償角を同時に操作すると、各接地部位10の実床反力の変化量は、それぞれを単独に操作したときの変化量の和になる。
図17は、本実施形態における階層型コンプライアンス動作決定部114の機能を示すブロック図であり、同図を参照して階層型コンプライアンス動作決定部114の処理をさらに詳細に説明する。
階層型コンプライアンス動作決定部114は、その機能的手段として、補償全床反力モーメント分配器114a、補償角決定部114b,114c,114d、修正目標接地部位位置姿勢算出部114g、機構変形補償量算出部114n、および機構変形補償入り修正目標接地部位位置姿勢算出部114hを備えている。
補償全床反力モーメント分配器114aは、前記補償全床反力モーメントMdmd(Mdmdx,Mdmdy)を、第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdに分配するものである。
第1423ノード補償床反力モーメントM1423dmdは、第1423補償角θ1423を操作することによって発生する各接地部位10(詳しくは第1〜第4接地部位)の床反力の並進力成分が、目標第1423ノード床反力中心点(=目標全床反力中心点(目標ZMP))まわりに発生すべきモーメントの目標値である。
第1423ノード補償床反力モーメントM1423dmdの前記ベクトルV1423方向の成分(V1423方向の軸まわりの成分)をM1423dmdvと記述する。尚、ベクトルV1423は階層型コンプライアンス動作決定部114のコンプライアンス動作の全体的な説明で定義したベクトルである(図16参照)。V1423に直交し、且つ鉛直方向にも直交するベクトルをU1423とすると、本実施形態では、第1423ノード補償床反力モーメントM1423dmdのU1423方向の成分(U1423方向の軸回りの成分)M1423dmduは0に設定される。これは、本実施形態のロボット1では、第1423ノード補償角θ1423を操作しても、床反力モーメントのU1423方向成分を発生することはできないからである。また、本実施形態では鉛直軸まわりのロボット1の姿勢の回転を制御しないので、M1423dmdの鉛直方向成分M1423dmdzも0に設定される。
第14ノード補償床反力モーメントM14dmdは、第14補償角θ14を操作することによって発生する各接地部位10(詳しくは第1および第4接地部位)の床反力の並進力成分が、目標第14ノード床反力中心点まわりに発生すべきモーメントの目標値である。
第14ノード補償床反力モーメントM14dmdのベクトルV14方向成分をM14dmdvと記述する。尚、ベクトルV14は階層型コンプライアンス動作決定部114のコンプライアンス動作の全体的な説明で定義したベクトルである(図15を参照)。V14に直交し、且つ鉛直方向にも直交するベクトルをU14とすると、本実施形態では、第14ノード補償床反力モーメントM14dmdのU14方向成分M14dmduは0に設定される。これは、本実施形態のロボット1では、第14ノード補償角θ14を操作しても、床反力モーメントのU14方向成分を発生することはできないからである。なお、本実施形態では、M14dmdの鉛直方向成分も0に設定される。
第23ノード補償床反力モーメントM23dmdは、第23補償角θ23を操作することによって発生する各接地部位10(詳しくは第2および第3接地部位)の床反力の並進力成分が、目標第23ノード床反力中心点まわりに発生すべきモーメントの目標値である。
第23ノード補償床反力モーメントM23dmdのベクトルV23方向成分をM23dmdvと記述する。尚、ベクトルV23は階層型コンプライアンス動作決定部114のコンプライアンス動作の全体的な説明で定義したベクトルである(図15を参照)。V23に直交し、且つ鉛直方向にも直交するベクトルをU23とすると、本実施形態では、第23ノード補償床反力モーメントM23dmdのU23方向成分M23dmduは0に設定される。これは、本実施形態のロボット1では、第23ノード補償角θ23を操作しても、床反力モーメントのU23方向成分を発生することはできないからである。なお、本実施形態では、M23dmdの鉛直方向成分も0に設定される。
第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdは、例えば次のように決定される。
任意の第nノードに対して、目標第nノード床反力中心点に第nノード補償床反力モーメントを加えることと等価になるように、第nノード補償床反力モーメントの水平成分を0にしたまま、目標第nノード床反力中心点を修正した場合における修正された目標第nノード床反力中心点位置を、修正目標第nノード床反力中心点位置と呼ぶ。
修正目標第1423ノード床反力中心点Pmdfd(=Q1423mdfd)、修正目標第14ノード床反力中心点Q14mdfd、修正目標第23ノード床反力中心点Q23mdfdと各ノード補償床反力モーメントとの関係を次式7〜9に示す。なお、目標第1423ノード床反力中心点Q1423は全床反力中心点Pと一致するので、修正目標第1423ノード床反力中心点Pmdfdは、修正目標全床反力中心点ということもある。
なお、式7中の(Pmdfd−P)など、2つの点の差は、それらの点の位置ベクトルの差を意味する。また、Ftotalref、F14ref、F23refは図10に示したように、それぞれ第1423ノード、第14ノード、第23ノードの目標ノード床反力の並進力成分である。
ロボット1の接地性を高く保つためには、接地すべき接地部位10の床反力が0に近づき過ぎたり、負の値になろうとするように制御すべきではない。したがって、以下の条件1)〜3)を満足すべきである。
修正ノード存在位置条件1)
Pmdfdは、全床反力中心点Pから線分Q14Q23の端点に近づき過ぎず、かつ、線分Q14Q23上にあること。このように、修正目標第1423ノード床反力中心点(修正目標全床反力中心点)Pmdfdが存在すべき範囲を、修正目標第1423ノード床反力中心点(修正目標全床反力中心点)の存在許容範囲と呼ぶ。
修正ノード存在位置条件2)
Q14mdfdは、目標第14ノード床反力中心点Q14から線分Q1Q4の端点に近づき過ぎず、かつ、線分Q1Q4上にあること。このように、修正目標第14ノード床反力中心点Q14mdfdが存在すべき範囲を、修正目標第14ノード床反力中心点の存在許容範囲と呼ぶ。
修正ノード存在位置条件3)
Q23mdfdは、目標第23ノード床反力中心点Q23から線分Q2Q3の端点に近づき過ぎず、かつ、線分Q2Q3上にあること。このように、修正目標第23ノード床反力中心点Q23mdfdが存在すべき範囲を、修正目標第23ノード床反力中心点の存在許容範囲と呼ぶ。
一方、ロボット1に実際に発生する姿勢復元力(上体24の傾きの、目標上体姿勢の傾きへの復元力)を適切にするためには、第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdの合力が、補償全床反力モーメントMdmdに略一致すべきである。すなわち、以下の式10を略満足すべきである。
そこで、本実施形態では、第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdは、それらと前記式7、式8、式9とによって定まる修正目標ノード床反力中心点Pmdfd,Q14mdfdQ23mdfdの位置が前記修正ノード存在位置条件1)、2)および3)を満足している限りは、次式11〜13によって決定される。
ただし、Mat1423、Mat14、Mat23はゲイン行列(第3要素が0である1行3列の行列)であり、これらは、式11、式12および式13よって求められるM1423dmd、M14dmd、M23dmdが、式10を満足するように設定される。
より厳密には、式10、式11、式12および式13からなる連立方程式がMdmdの値にかかわらず恒等的に成立するように、ゲイン行列Mat1423、Mat14、Mat23が決定される。上記連立方程式が恒等的に成立するためのゲイン行列は一義的に決定されるわけではないので、例えば、修正ノード存在位置条件1)、2)および3)のいずれを特に重視するかによって、それに適切なゲイン行列を決定すれば良い。補足すると、各補償角θ1423,θ14,θ23を連続的に変化させるために、ゲイン行列は連続的に変化させることが望ましい。また、ロボット1の直立時であるか否かや、移動形態の違いなどによって、ゲイン行列の設定方針を変えても良い。
式11、式12および式13にしたがって決定される第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdが修正ノード存在位置条件1)、2)および3)のいずれかを満足していない場合には、該条件1)、2)、3)を満足するように、これらを修正する。より具体的には、修正目標第nノード床反力中心点(n=1423,14,23)のうち、前記存在許容範囲を越えた修正目標ノード床反力中心点をその存在許容範囲の境界の点に設定し、その他の修正目標ノード床反力中心点を、式11、式12および式13を可能な限り満足するように(左辺と右辺の差の絶対値がなるべく小さくなるように)決定する。ただし、一般的にフィードバック制御においてはフィードバック量が少々変っても、制御対象の挙動が大きく変わることはないので、式11、式12および式13を厳密あるいは強引に満足させる必要はない。
以上のごとく、補償全床反力モーメント分配器114aは、各ノード補償床反力モーメントM1423dmd、M14dmd、M23dmdを決定する。図14には、このようにして決定された各ノード補償床反力モーメントM1423dmd、M14dmd、M23dmdの例を示した。図中のMdmdは、前記図13に示したものと同じである。
また、補償全床反力モーメント分配器114aは、各接地部位10の目標床反力(各葉ノードの目標ノード床反力)である目標接地部位床反力、各ノード補償床反力モーメントM1423dmd、M14dmd、M23dmdを基に、目標接地部位床反力に各ノード補償床反力モーメントを付加することによって修正される各接地部位10の目標床反力である修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4)を求める。
この際、各接地部位10の目標床反力中心点(葉ノードの目標ノード床反力中心点)Qn(n=1,2,3,4)、目標全床反力中心点P、各目標ノード床反力中心点Q14、Q23と目標全床反力Ftotalrefとから、各目標ノード床反力を求める決定する手法と同様の手法によって、各接地部位10の目標床反力中心点Qn(n=1,2,3,4)、修正全床反力中心点Pmdfd、各修正目標ノード床反力中心点Q14mdfd、Q23mdfdと目標全床反力Ftotalrefとから、修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4)を求めればよい。すなわち、各接地部位10の目標床反力中心点Qn(n=1,2,3,4)、修正全床反力中心点Pmdfd、各修正目標ノード床反力中心点Q14mdfd、Q23mdfdから、前記式1〜3に基づいて各ノードの重みを決定し、その重みを用いて前記式4に基づいて修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4)を求めればよい。
このことから明らかなように、子ノードを持つ第nノードの目標第nノード床反力中心点にノード補償床反力モーメントを発生させる(目標第nノード床反力中心点に作用する目標床反力のモーメント成分を修正する)ということは、その第nノードの子ノードの重みを修正することと同等である。
以上説明した補償全床反力モーメント分配器114aの処理は、図18に示す機能ブロック図により表される。すなわち、目標ノード床反力中心点Qn(n=1,2,3,4,14,23)を基に、第14ノード、第23ノードおよび修正目標ノード床反力中心点Qn_mdfd(n=14,23,1423)の存在許容範囲が前記修正ノード存在位置条件1)、2)、3)に従って決定される。また、補償全床反力モーメントMdmdと、各ノードの目標床反力中心点Qn(n=1,2,3,4,14,23,1423)および目標床反力Fn_ref(n=1,2,3,4,14,23,1423)と、上記存在許容範囲とを基に、修正目標ノード床反力中心点Qn_mdfd(n=14,23,1423)およびノード補償床反力モーメントMn_dmd(n=14,23,1423)が決定される。また、修正目標ノード床反力中心点Qn_mdfd(n=14,23,1423)と、各接地部位10の目標床反力中心点Qn(n=1,2,3,4)と、目標全床反力Ftotalrefとから、修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4)が求められる。
次に、前記補償角決定部114b〜114dのうちの補償角決定部(θ1423決定部)114bの処理を図19のブロック図を参照して説明する。目標第14ノード床反力中心点Q14に実第1ノード床反力と実第4ノード床反力との合力の並進力成分(F1act+F4act)が作用すると共に、目標第23ノード床反力中心点Q23に実第2ノード床反力と実第3ノード床反力との合力の並進力成分(F2act+F3act)が作用した場合に、それらの並進力成分が、目標全床反力中心点P(目標第1423ノード床反力中心点)のまわりに発生するモーメントM1423actを、次式14により求める。
ここで、P_Q14は始点がP、終点がQ14のベクトル、P_Q23は始点がP、終点がQ23のベクトルである。
なお、式14の代わりに、次式15を用いてM1423actを算出しても実際上はほとんど問題がない。
式15の右辺は、第1〜第4ノード(各葉ノード)の実床反力の並進力成分Fn_act(n=1,2,3,4)から目標全床反力中心点Pまわりに作用する実全床反力モーメントMtotalactを算出する式になっている。補足すると、式14は、目標全床反力中心点Pまわりに作用する実全床反力モーメントMtotalactから、目標第14ノード床反力中心点Q14まわりに作用する実床反力モーメントと目標第23ノード床反力中心点Q23まわりに作用する実床反力モーメントとを減じたものになっている。
一般的に、葉ノードである任意の第nノードの実第nノード床反力モーメントMn_actは、第n接地部位の実床反力モーメントとする。また、葉ノードでない任意の第nノードに対し、そのすべての子ノードの床反力(ここでの子ノードの床反力は、厳密には、該子ノードの目標床反力中心点に作用する床反力)が目標第nノード床反力中心点に作用するモーメントを、実第nノード床反力モーメントMn_actと呼ぶ。式14および式15のように、実第nノード床反力モーメントは、子ノードの実床反力モーメントを含む定義と含まない定義とがあるがいずれを用いても構わない。特に、子ノードの実床反力モーメントの水平成分を制御するフィードバック制御の応答性が高ければ、子ノードの実床反力モーメントの水平成分はただちに0に収束するので、いずれの定義を用いても、第nノードの実床反力の制御の挙動はあまり変らない。
以下に示す式16は、式14に対応した実第nノード床反力モーメントの算出の一般式、式17は、式15に対応した実第nノード床反力モーメントの算出の一般式である。ただし、式16および式17において、Qn_Qmは始点がQn、終点がQmのベクトルである。また、葉ノードである第mノードの実床反力モーメントMm_actは、実床反力検出器で検出された各接地部位の実床反力モーメントとする。
m∈{第nノードの子ノードの番号の集合}とすると
m∈{第nノードの子孫である葉ノードの番号の集合}であるとすると
なお、式16、17中のΣは、mについての総和を意味する。補足すると、第1実施形態では、葉ノード(各接地部位)の目標床反力中心点まわりの実床反力モーメントが0となることから、前記式15の右辺では、式17のMm_actの成分が含まれていない。接地部位の姿勢を制御可能なロボットでは、一般には、式17のMm_actは0にならない。
第1423ノード補償角θ1423は、一般的には、上記のように求められるM1423actと先に補償全床反力モーメント分配器114aで求められた第1423ノード補償床反力モーメントM1423dmdとの偏差(M1423act−M1423dmd)を0に近づけるようにフィードバック制御則などにより決定すればよい。例えば該偏差に所定のゲイン行列(3次の対角行列)を乗算することでθ1423を求めればよい。
但し、本実施形態では、前記ベクトルV1423の方向の軸回りの第1423ノード補償角θ1423を決定すればよいので、M1423actのベクトルV1423方向の成分M1423actvとM1423dmdのベクトルV1423方向の成分M1423dmdvとの偏差に応じてθ1423を決定すればよい。そして、この際、本実施形態では、床反力の制御の応答性や安定性を高めるために、M1423actvとM1423dmdvとをフィルタに通した上で、それらの偏差に応じてθ1423を決定することとした。
具体的には、上記の如く求めたM1423actのベクトルV1423方向の成分M1423actvを抽出する。これは、ベクトルの内積演算「・」を用いた次式18によって得られる。
以上のようにM1423actvを算出する処理が図19の参照符号114kを付した演算部により実行される。
次に、上記M1423actvをローパスフィルタ114iに通し、M1423actvfiltを得る。また、前記第1423ノード補償床反力モーメントM1423dmdのV1423方向の成分M1423dmdvを補償フィルタ114jに通し、M1423dmdvfiltを得る。なお、M1423dmdvは、前記式18と同様に、M1423dmdとV1423との内積演算により求められる。そして、M1423dmdvfiltをM1423actvfiltから減じたものを、偏差モーメントV1423方向成分M1423errvとして得る。
尚、前記補償フィルタ114jは、制御系におけるM1423dmdvから実全床反力モーメントまでの伝達関数の周波数応答特性を改善するものである。
最後に次式19のフィードバック制御則(ここでは比例制御則)の演算によって前記第1423ノード補償角θ1423を得る。ここでK1423は制御ゲインであり、通常、これは正の値に設定する。
すなわち、偏差モーメントV1423方向成分M1423errvに制御ゲインK1423を乗じることにより、第1423ノード補償角θ1423を得る。
次に、図17の補償角決定部(θ14決定部)114cの処理を、図20を参照して説明すると、目標第1ノード床反力中心点Q1に実第1ノード床反力(第1接地部位10の実床反力)の並進力成分F1actが作用すると共に、目標第4ノード床反力中心点Q4に実第4ノード床反力(第4接地部位10の実床反力)の並進力成分F4actと作用した場合にそれらの並進力成分が、目標第14ノード床反力中心点Q14のまわりに発生するモーメントM14actを、一般式である前記式16を用いて求める。
より具体的には、次式20により求める。
ここで、Q14_Q1は始点がQ14、終点がQ1のベクトル、Q14_Q4は始点がQ14、終点がQ4のベクトルである。
また、式20の代わりに、次式21(前記式17を具体化した式)を用いても、前述の理由により、実際上はほとんど問題がない。
だたし、M1actは、実第1ノード床反力モーメント、M4actは、実第4ノード床反力モーメントである。なお、第1実施形態では各脚#1〜#4の先端部にフリージョイント(球関節12)を備えているので、M1act,M4actは0である。
式21は、第14ノードのすべての葉ノードの実床反力の合力が目標第14ノード床反力中心点まわりに作用するモーメントを算出する式になっている。尚、式20は、第14ノードのすべての葉ノードの実床反力の合力が目標第14床反力中心点まわりに作用するモーメントから、実第1ノード床反力モーメントと実第4ノード床反力モーメントとを減じたものになっている。
第14ノード補償角θ14は、一般的には、上記のように求められるM14actと先に補償全床反力モーメント分配器114aで求められた第14ノード補償床反力モーメントM1423dmdとの偏差(M14act−M14dmd)を0に近づけるようにフィードバック制御則などにより求めればよい。
但し、本実施形態では、θ1423の場合と同様の理由によって、M14actの前記ベクトルV14方向の成分M14actvとM14dmdのベクトルV14方向の成分M14dmdvとをそれぞれフィルタに通したものの偏差に応じてθ14を決定することとした。
すなわち、上記の如くもとめたM14actのベクトルV14方向成分M14actvを抽出する。これは、ベクトルの内積演算を用いた次式22によって得られる。
以上のようにM14actvを算出する処理が図20の参照符号114k’を付した演算部により実行される。
次に、上記M14actvをローパスフィルタ114i’に通し、M14actvfiltを得る。また、前記第14ノード補償床反力モーメントM14dmdのV14方向の成分M14dmdvを補償フィルタ114j’に通し、M14dmdvfiltを得る。なお、M14dmdvは、M14dmdとV14との内積演算により求められる。そして、M14dmdvfiltを、M14actvfiltから減じたものを、偏差モーメントV14方向成分M14errvとして得る。尚、補償フィルタ114j’は、制御系におけるM14dmdvから実全床反力モーメントまでの伝達関数の周波数応答特性を改善するものである。
最後に次式23のフィードバック制御則(ここでは比例制御則)の演算によって前記第14ノード補償角θ14を得る。ここでK14は制御ゲインであり、通常、これは正の値に設定する。
図17の補償角決定部(θ23決定部)114dの処理は、第14ノード補償角θ14決定部114cの処理と同様であるので、ここでは詳細な説明を省略する。その処理の概要は、次の通りである。第23ノードの子ノードの実床反力によって目標第23ノード床反力中心点Q23のまわりに発生するモーメントM23actのベクトルV23方向の成分M23actvが前記式16または17に基づいて算出される。そして、そのM23actvをローパスフィルタに通したものM23actvfiltを、前記第23ノード補償床反力モーメントM23dmdのV23方向の成分M23dmdvを補償フィルタに通したものM23dmdvfiltから減じてなる偏差モーメントV23方向成分M23errvからフィードバック制御則(比例制御則)の演算によって、前記第23ノード補償角θ23が算出される。
以上の補償角決定部114b〜114dの処理によって、目標全床反力中心点Pに作用する実モーメントMactの水平成分を補償全床反力モーメントMdmdに近づけるようにノード補償角θ1423,θ14,θ23の組が決定されることとなる。なお、θ1423は、本実施形態では、前記式19により求めたが、式19の右辺のM1423errの代わりに、M1423act+M14act+M23act(実ノード床反力モーメントの総和)と、M1423dmdとの偏差、あるいは、実ノード床反力モーメントの総和とM1423dmdとをそれぞれフィルタに通したものの偏差に応じて決定するようにしてもよい。
補足すると、本実施形態では、各ノードの目標ノード床反力中心点Qnを変更せずに、そのQnを作用点として、ノード補償床反力モーメントを決定した。そして、このノード床反力補償モーメント(より正確には、該ノード補償床反力モーメントとQnを作用点とする目標ノード床反力のモーメント成分との合力)とQnを作用点とする実ノード床反力モーメントとの偏差を制御量とし、この制御量を0に近づけるようにノード補償角を決定するようにした。このようにノード補償角を決定する代わりに次のようにノード補償角θ1423,θ14,θ23を決定するようにしてもよい。すなわち、子ノードを持つ各第nノード(n=14,23,1423)に対し、その第nノードの実ノード床反力(第nノードの全ての子ノードの実ノード床反力の合力)のモーメントの水平成分が0となるような床反力中心点を実第nノード床反力中心点として求める。あるいは、第nノード(n=14,23,1423)の実ノード床反力のモーメントから、その各子ノードの実ノード床反力が該子ノードの目標ノード床反力中心点に作用するモーメントを減じてなるモーメントの水平成分が0となるような床反力中心点を実第nノード床反力中心点として求める。例えば第14ノードに関する実第14ノード床反力中心点は、前記式16または式17により求めたM14actの水平成分を、F1actとF4actとの合力(実第14ノード床反力の並進力成分)の鉛直成分で割った値だけ、目標第14ノード床反力中心点を線分Q1Q4上でずらした点として求められる。第23ノード、第1423ノードのノード床反力中心点についても同様である。そして、第nノード(n=14,23,1423)の目標ノード床反力中心点と、上記の如く求めた実第nノード床反力中心点との偏差、あるいは、それらのノード床反力中心点のそれぞれをフィルタに通した値の偏差を制御量とし、その制御量を0に近づけるように、該制御量に応じてノード補償角θ1423,θ14,θ23を決定する(例えば制御量にあるゲインを乗算することで、θ1423,θ14,θ23を決定する)。
図17の修正目標接地部位位置姿勢算出部114gは、第1423ノード補償角θ1423、第14ノード補償角θ14、第23ノード補償角θ23に基づき、前述した階層型コンプライアンス動作の目標接地部位位置姿勢の修正手法(図15および図16を参照して説明した手法)に従って各接地部位10の目標位置および目標姿勢である目標接地部位位置姿勢を修正し、修正目標接地部位位置姿勢を得る。ただし、本実施形態においては、各脚#1〜#4の先端部にフリージョイント(球関節12)があり、意図的に各接地部位10の姿勢を変化させることはできないので、修正目標接地部位位置姿勢は、実際には、修正目標接地部位位置を意味する。
図21は、図17の前記機構変形補償量算出部114nの処理を示す機能ブロック図である。図21に示すように、機構変形補償量算出部114nは、前記補償全床反力モーメント分配器114aから出力される各接地部位10の修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4)(目標接地部位床反力に、第1423ノード補償床反力モーメントM1423dmd、第14ノード補償床反力モーメントM14dmdおよび第23ノード補償床反力モーメントM23dmdを付加することによって修正された目標接地部位床反力)によって発生が予想される各脚#1〜#4の変形量(各脚のリンク機構およびコンプライアンス機構42の変形量)である機構変形量En_mdfd(n=1,2,3,4)を求める。機構変形量En_mdfd(n=1,2,3,4)は、各脚に作用する力(あるいは床反力)と該脚の変形との関係を表す機構コンプライアンスモデルを用いて求められる。そして、機構変形補償量算出部114nは、機構変形量En_mdfd(n=1,2,3,4)を打ち消すための機構変形補償量En_cmpn(n=1,2,3,4)を求める。機構変形補償量En_cmpnは、各機構変形量にEn_mdfdに(−1)を乗じることにより求められる。
図17の機構変形補償入り修正目標接地部位位置姿勢算出部114hは、算出された機構変形量En_mdfdを打ち消すように、各接地部位10の修正目標接地部位位置姿勢(前記修正目標接地部位位置姿勢算出部114gで求められ位置姿勢)をさらに修正し、各接地部位10の機構変形補償入り修正目標接地部位位置姿勢を得る。機構変形補償入り修正目標接地部位位置姿勢は、各接地部位10の修正目標接地部位位置姿勢に、それぞれに対応する機構変形補償量En_cmpnを付加することにより決定される。
例えば、修正目標接地部位床反力によって、ある接地部位10に対応する脚のコンプライアンス機構42などが鉛直方向にzだけ縮むと算出された場合には、その接地部位10の目標位置をzだけ下げるように修正目標接地部位床反力が修正される。即ち、機構変形補償後の接地部位10の接地面(底面)が目標接地部位床反力を受けて変形したときの位置姿勢が、機構変形補償前の接地部位の接地面の目標位置姿勢に一致するように、機構変形補償入り修正目標接地部位位置姿勢を算出する。なお、これについての詳しい説明は、特開平10−277969号公報に詳細に説明されている。また、本実施形態のロボット1では、接地部位10の姿勢を制御できないので、機構変形補償入り修正目標接地部位位置姿勢算出部114hで実際に修正されるものは、各接地部位10の修正目標接地部位位置である。
上記のような機構変形補償は、コンプライアンス機構42などの変形によって生じる実接地部位位置姿勢のずれをフィードフォワード的に打ち消す制御であり、この制御がない場合に比較し、より一層、目標歩容に近い形態でのロボット1の移動を実現することができる。
以上が、階層型コンプライアンス動作決定部114の処理の詳細である。
上記を前提として図9のフローチャートの説明に戻ると、S34において、前記の如く補償角を決定する。図22は、その補償角の決定処理のサブルーチンを一般化して示したフローチャートである。
同図を参照して説明すると、先ずS100において、各接地部位10の実床反力(前記実床反力検出器108で得られる実床反力)を基に、実第nノード床反力の並進力成分Fn_act(n=1,2,3,4,14,23,1423)を算出する。この場合、各葉ノードの実ノード床反力の並進力成分Fn_act(n=1,2,3,4)は、前記実床反力検出器108による各接地部位10の実床反力の検出値の並進力成分である。また、葉ノードでない各ノードの実ノード床反力の並進力成分Fn_act(n=14,23,1423)は、前記した如く、そのノードの子ノードの実ノード床反力の合力の並進力成分である。
次いでS102に進み、実第nノード床反力モーメントMn_act(n=1,2,3,4,14,23,1423)を算出する。第1実施形態のロボット1では、各葉ノードの実ノード床反力モーメントMn_act(n=1,2,3,4)は0である。また、葉ノードでない各ノードの実ノード床反力モーメントMn_act(n=14,23,1423)は、S100で得られたFn_act(n=1,2,3,4)と、目標ノード床反力中心点Qn(n=1,2,3,4,14,23,1423)とから前記式16または式17に基づき算出される。
次いでS104に進み、前記姿勢安定化制御演算部104で求められた補償全床反力モーメントMdmdを基に、第nノード補償床反力モーメントMn_dmd(n=14,23,1423)を決定する。この処理は、前記補償全床反力モーメント分配器114aにより前記した通り行なわれる。
次いでS106に進み、階層型コンプライアンス動作の説明で定義したベクトルV1423,V14,V23およびこれに直交したベクトルU1423,U14,U23を求める。ただし、第1実施形態では、ベクトルU1423,U14,U23の方向の床反力モーメントを発生することはできないので、U1423,U14,U23を求める必要はない。
補足すると、後述する第2実施形態の如く、第nノードの子ノードの数が3以上の場合には、Vnは、時間的に急激に変化しなければ、どの向きにとっても良いので、Vnの向きは、支持脚座標系のX軸の向きや、ロボットの上体の向きに合わせるなど、適当に決定すれば良い。また、UnはVnに直交していればよい。
次いでS108に進み、実第nノード床反力モーメントMn_act(n=14,23,1423)のVn方向成分Mn_actvとUn方向成分Mn_actuとを抽出する。これは、Mn_actとVn、Unとの内積演算を行なえばよい。なお、第1実施形態のように葉ノードでない任意の第nノードの子ノードの数が2以下の場合には、Un方向成分Mn_actuは0である。従って、Mn_actuは求める必要はない。
次いでS110に進み、第nノード補償床反力モーメントMn_dmd(n=14,23,1423)のVn方向成分Mn_dmdvとUn方向成分Mn_dmduを抽出する。これは、Mn_dmdとVn、Unとの内積演算を行なえばよい。なお、第1実施形態のように葉ノードでない任意の第nノードの子ノードの数が2以下の場合には、第nノード補償床反力モーメントMn_dmdのUn方向成分Mn_dmduは0にする。あるいは、Mn_dmduを求める必要はない。
次いでS112に進み、Mn_actvをフィルタに通した値とMn_dmdvをフィルタに通した値の差にゲインKnを乗じることにより(より一般的には、当該差からフィードバック制御則により)第nノード補償角θnのVn成分を決定する。第1実施形態では、この処理は、第14ノード、第23ノード、第1423ノードについて、前記各補償角決定部114b,114c,114dにより前記した如く実行される。
次いでS114に進み、Mn_actuをフィルタに通した値とMn_dmduをフィルタに通した値の差にゲインKnを乗じることにより(より一般的には当該差からフィードバック制御則により)第nノード補償角θnのUn成分を決定する。ただし、第1実施形態のように葉ノードでない任意の第nノードの子ノードの数が2以下の場合には、第nノード補償角U成分は0にする。あるいは、S114の処理を実行する必要はない。
以上が、図9のS34のサブルーチン処理である。補足すると、S106〜S114の処理は、目標第nノード床反力中心点に作用する実第nノード床反力モーメントが第nノード補償床反力モーメント(より正確には第nノード補償床反力モーメントと目標第nノード床反力中心点に作用する目標ノード床反力モーメントとの合力)に収束するように第nノード補償角を決定する処理であると言える。
次いで、図9のフローチャートのS36に進み、前記機構変形補償量を算出する。この処理は、前記機構変形補償量算出部114nにより前記した如く行なわれる。
次いでS38に進んで目標接地部位位置姿勢をS34で求めた補償角に応じて修正し、さらにこれをS36で求めた機構変形補償量に応じて修正することによって、各接地部位10の機構変形補償入り修正目標接地部位位置姿勢を得る。第1実施形態では、前記修正目標接地部位位置姿勢算出部114gによって、前記した如く(前記15および図16を参照して説明した如く)補償角θ1423、θ14、θ23に基づき各接地部位10の修正目標接地部位位置を求める。そして、この求めた修正目標接地部位位置が前記機構変形補償入り修正目標接地部位位置姿勢算出部114hによって、前記した如く前記機構変形補償量En_cmpn(n=1,2,3,4)に応じてさらに修正され、それによって、各接地部位10の機構変形補償入り修正目標接地部位位置が得られる。
以上説明した図9のS32〜S38の処理が、階層型コンプライアンス動作決定部114の処理である。
次いでS40に進み、目標上体位置姿勢と機構変形補償入り修正接地部位位置姿勢(第1実施形態では機構変形補償入り修正接地部位位置)からロボット1の関節変位指令を算出する。この処理は、前記ロボット幾何学モデル110により前記した如く実行される。
次いでS42に進んで、実関節変位を関節変位指令に追従させる。この追従制御(サーボ制御)は、前記変位コントローラ112により実行される。
次いでS44に進んで、時刻をΔt(制御装置50の演算処理周期)だけ更新し、S14に戻って上記の処理を繰り返す。
以上説明した第1実施形態の如き階層型のコンプアライアンス動作によって、接地部位が3つ以上ある移動ロボットにおいても、各ノード床反力の制御が互いに殆ど干渉しないようになり、各ノード床反力を容易かつ適切に制御することができる。したがって、制御の干渉がなく、各ノードの実床反力が望ましい値からずれたり発振することがない。このため、床面の大域的なうねりや傾斜だけでなく、局所的な凹凸や傾斜なども含む予期しない床形状変化があっても、その影響をあまり受けずに脚式移動ロボットに作用する床反力を適切に制御することができる。また、移動ロボットの姿勢を安定化する制御を容易に実現できると共に、移動ロボットが受ける着地衝撃を低減することができ、移動ロボットの接地性を高め、移動時のスリップやスピンを防止することができる。さらに、移動ロボットのアクチュエータの負荷を低減することができる。したがって、各接地部位の床反力を適切に制御し、高い姿勢安定性を得ることができる。
ロボットの姿勢の安定化に対する効果を補足すると、ロボットが想定した床面上を想定した通りに歩行している状態から、ロボット全体が傾いた場合に、傾き角偏差θberr(θberrx,θberry)とこれに応じて発生する目標全床反力中心点まわりのモーメント水平成分の増加量ΔMとの関係が、比例関係にあることが望ましい。そうでなくても、ある回転行列T、ある対角行列diag(a,b)に対し、次式24が成立することが望ましい。なお、T,diag(a,b)は2次の正方行列である。
これらの関係を満足しない場合には、ロボットの姿勢が傾いた状態から戻る時に、直線的に傾き角偏差θberrが0に収束せずに、味噌擂り運動を起こすおそれがある。例えば、ロボットの上体が前に傾いた状態では、後ろに戻す復元力以外に、横方向への転倒力(復元力)が余計に作用し、傾き角偏差θberrが直線的に0に戻らずに、後ろ横方向に復元力が働いて、傾き角偏差θberrが渦巻き状に0に収束していく。
また、上記と同じ理由から、コンプライアンス制御においては、ロボット全体の傾き角偏差θberrの変化速度dθberr/dtとこれに応じて発生するモーメントの増加量ΔMdとの関係も、比例関係にあることが望ましい。そうでなくても、ある回転行列をT、ある対角行列diag(e,f)に対し、次式25が成立することが望ましい。なお、T,diag(a,b)は2次の正方行列である。
一般的に、ロボットの各脚に独立にコンプライアンス制御を掛けると、これらの関係を満たさず、味噌擂り運動を起こすおそれがある。第1実施形態に示した階層型コンプライアンス制御においては、前記式24,25の関係を満足することができるので、ロボットの姿勢制御の収束性が高く、また、発振や振動を防止することができる。
前記第1実施形態においては、目標接地部位位置を、各接地部位の姿勢を変えずに(姿勢を制御せずに)、各ノード床反力中心点まわりに回転移動させるように補正(修正)動作を行うことで、各接地部位10の間の相対高さを目標接地部位位置の間の相対高さから修正した。但し、目標接地部位位置を鉛直方向にだけ移動させるようにして、各接地部位10の高さだけを修正するようにしても良い。具体的には、以下の手順によって目標接地部位位置を修正する。
まず、以下の式26,27により、目標第14ノード床反力中心点の鉛直位置修正量Z14と目標第23ノード床反力中心点の鉛直位置修正量Z23を求める。
但し、ここで、θ1423には前記式19で求められる値を代入する。
次いで、各接地部位の目標床反力中心点(各葉ノードの目標ノード床反力中心点)の鉛直位置修正量Zn(n=1,2,3,4)を次式により求める。
但し、ここで、θ14には、前記式23で求められる値を代入し、θ23には、θ14と同様にして求められる値を代入する。
以上のように求めたZ1、Z2、Z3、Z4を目標接地部位位置に鉛直方向に加えることにより、修正目標接地部位位置を得る。
また、前記第1実施形態では、接地部位10を前記図6に示した如く階層化したが、その階層構造は、必ずしも1つの階層構造にあらかじめ決めておく必要はない。例えばトロット、ギャロップなど、ロボット1の移動形態(移動時の脚の運動形態)などに応じて、階層構造を変更しても良い。例えば、図23に示す如く接地部位10を階層化してもよい。図23は、例えばロボット1の全ての脚#1〜#4を攴持脚とする時期において、第1接地部位10と第2接地部位10との組を第12ノードとし、第3接地部位10と第4接地部位10との組を第34ノードとした場合の例を前記図3(b)と同様に図示したものである。この例では、各ノードの目標ノード床反力中心点Qn(n=1,2,3,4,12,34,1234)は図示の如く設定される。このようにすることで、場合によっては、前記コンプライアンス動作と、後述の床形状推定をより的確に行なうことが可能となる。
[第2実施形態]
以下に前記図1並びに図24〜図34を参照しつつ、本発明の第2実施形態を説明する。図1を参照して、第2実施形態のロボット1が第1実施形態のロボットと異なる点を中心に説明すると、第2実施形態のロボット1は、第1〜第4脚#1〜#4に加えて、これらの脚#1〜#4と同じ構造の第5脚#5および第6脚#6を備える。すなわち、第2実施形態のロボット1は6脚ロボットである。第5脚#5は、第3脚#3の後側でロボット1の上体24の右側部から延設され、第6脚#6は、第4脚#4の後側でロボット1の上体24の左側部から延設されている。これ以外のロボット1の機構的構造は、第1実施形態と同一であるので、第1実施形態と同一の参照符号を付して説明を省略する。
この第2実施形態のロボット1(6脚ロボット)の階層型コンプライアンス制御の手法の基本的な考え方は第1実施形態のものと同じである。但し、第2実施形態の階層型コンプライアンス制御では、3つの子ノードを持つノードがあることと、それに対応して制御処理が拡張されていることとが第1実施形態のものと相違している。
そこで、以降、その相違点を中心に第2実施形態のロボット1の制御処理について説明する。なお、第2実施形態の説明で用いる参照符号および用語は、第1実施形態と同等の意味を持つものは、第1実施形態と同じ参照符号および用語を用い、詳細な説明を省略する。
図24は、第2実施形態における階層構造を説明するための図であり、第1実施形態における図3(b)に対応する図である。図24に示す如く、第2実施形態では、6個の接地部位10のそれぞれを葉ノード(第1〜第6ノード)とし、その6個の全ての接地部位10の組を根ノード(第145236ノード)としていると共に、第1脚#1、第4脚#4、第5脚#5のそれぞれの接地部位である第1、第4、第5接地部位10の組を第145ノード、第2脚#2、第3脚#3、第6脚#6のそれぞれの接地部位である第2、第3、第6接地部位10の組を第236ノードとしている。つまり、第145ノードは第1、第4、第5ノード(3個の葉ノード)を子ノードとして持つ中間ノード、第236ノードは第2、第3、第6ノード(3個の葉ノード)を子ノードとして持つ中間ノードである。
第2実施形態では、例えば第145ノードの3個の接地部位10の組と、第236ノードの3個の接地部位10の組とを交互に持ち上げて着地させることにより、ロボット1の移動を行なうようにしている。図24は、両者の組を着地させた状態(両者の組を支持脚とした状態)を示しており、図中の参照符号Qn(n=1,2,3,4,5,6)を付した三角形が各接地部位10の位置に対応している。
なお、Qn(n=1,2,3,4,5,6)は、葉ノードである第1〜第6の各接地部位10の目標床反力中心点(目標ノード床反力中心点)、Q145、Q236は、それぞれ第145ノード、第236ノードの目標床反力中心点(目標ノード床反力中心点)、Pは根ノード(第145236ノード)の目標床反力中心点(目標ノード床反力中心点)Q145236としての目標全床反力中心点(=目標ZMP)を示すものである。第1実施形態と同様に、Qn(n=1,2,3,4,5,6)は、それぞれに対応する接地部位10の中心点に一致している。
第2実施形態における制御装置50の全体的な機能的構成は、前記第1実施形態に関して説明した図2のものと同じである。
この場合、第2実施形態における歩容生成装置100は、第1実施形態のものと同様に、ロボット1の目標運動軌道(目標接地部位軌道、目標上体位置姿勢軌道)と目標床反力軌道(目標全床反力中心点軌道、目標全床反力軌道)とを決定して出力する。但し、第2実施形態では、目標接地部位軌道は、6個の接地部位10のそれぞれの目標接地部位位置の軌道である。なお、各接地部位をその姿勢を制御可能に設けた場合には、目標接地部位姿勢の軌道も目標接地部位軌道に含まれる。また、目標全床反力中心点軌道は、第2実施形態における脚#1〜#6の運動形態(特に支持脚の着地予定位置)に合わせて、ZMPの存在可能範囲内で該範囲の境界に近づきすぎない位置(例えばZMPの存在可能範囲のほぼ中央位置)に存在しつつ、連続的に移動するように決定される。
また、第2実施形態における目標床反力分配器102では、第1実施形態と同様に、次の条件A’)〜F’)を満たすように、目標ノード床反力中心点と各ノードの重みと目標ノード床反力とを決定する。
A’)各葉ノードの目標ノード床反力中心点Qn(n=1,2,3,4,5,6)は、該葉ノードに対応する接地部位10の中心点に一致する。より一般的には、Qn(n=1,2,3,4,5,6)は、目標歩容(目標接地部位軌道などの目標運動)に応じて決定される。なお、例えば各接地部位10の目標床反力中心点を歩容生成装置100で決定した場合には、歩容生成装置100が決定する目標床反力を基に、目標ノード床反力中心点Qn(n=1,2,3,4,5,6)を決定すればよい。
B’)根ノードの目標床ノード反力中心点は、目標全床反力中心点Pに一致する。
C’)子ノードを持つ任意の第nノード(n=145,236,145236)の目標ノード床反力中心点Qnは、その第nノードの各子ノードの目標ノード床反力中心点の重み付き平均の点となる。より具体的には、第145ノードの目標ノード床反力中心点Q145は、その子ノード(葉ノード)である第1、4、5ノードの目標ノード床反力中心点Q1,Q4,Q5を頂点とする三角形の内分点(三角形の境界の点を含む)となり、第236ノードの目標ノード床反力中心点Q236は、その子ノード(葉ノード)である第2、3、6ノードの目標ノード床反力中心点Q2,Q3,Q6を頂点とする三角形の内分点(三角形の境界の点を含む)となる。また、第145236ノード(根ノード)の目標ノード床反力中心点Q145236(=目標全床反力中心点P)は、その子ノード(中間ノード)である第145、236ノードの目標ノード床反力中心点Q145,Q236を結ぶ線分の内分点となる。
D’)子ノードを持つ任意の第nノード(n=145,236,145236)の目標ノード床反力Fnは、該第nノードのすべての子ノードの目標ノード床反力の和(合力)に一致し、且つ、根ノード(第145236ノード)の目標ノード床反力F145236は目標全床反力Ftotalrefに一致する。あるいは、各ノードの目標ノード床反力Fn(n=1,2,3,4,5,6,145,236,145236)は、各ノードの重みと前記式4aまたは4bの関係を有する。
E’)接地していない接地部位10に対応する葉ノードの目標ノード床反力は0となる。
F’)各ノード(第nノード(n=1,2,3,4,145,236,145236))の目標ノード床反力中心点、重み、目標ノード床反力は連続的に変化する。
G’)非接地状態の接地部位10に対応する葉ノードの重み、または、その葉ノードの祖先ノードのいずれか1つの重みは0とされる。
なお、根ノードの重みは、前記第1実施形態と同様、便宜的に「1」に設定した。
第2実施形態における姿勢偏差演算部103および姿勢安定化制御演算部104の処理は、第1実施形態と同じであり、補償全床反力モーメントMdmd(Mdmdx,Mdmdy)が第1実施形態で説明した如く決定される。
また、第2実施形態における実床反力検出器108は、第1実施形態のものと同様に、各接地部位10(本実施形態では6個の接地部位)に作用する実床反力を各脚#1〜#6に備えた6軸力センサ34の出力から検出し、それを支持脚座標系(床に固定された図1に示すグローバル座標系)で表現してなる実床反力に変換する。
また、第2実施形態におけるロボット幾何学モデル(逆キネマティクス演算部)110は、第1実施形態のものと同様に、各接地部位位置の最終的な目標軌道と目標上体位置姿勢などを基に、逆キネマティクスの演算によって、それらを満足するロボット1の各関節変位指令を算出する。
また、第2実施形態における変位コントローラ112は、第1実施形態のものと同様に、前記各関節変位指令に実関節変位を追従させるようにロボット1の各関節14,15のアクチュエータ(図示しない)を制御する。
また、第2実施形態における階層型コンプライアンス動作決定部114は、第1実施形態のものと同様に前記要求1)、2)をできるだけ満足するように各接地部位10の目標接地部位軌道を修正する。但し、本実施形態では、3つの子ノードを持つ中間ノードを有するため、階層型コンプライアンス動作決定部114の具体的な処理は、第1実施形態のものより多少複雑になる。なお、各接地部位10の姿勢を制御可能にロボットを構成した場合には、階層型コンプライアンス動作決定部114は、前記要求3)もできるだけ満足するように各接地部位10の目標接地部位軌道を修正すべきである。
図25は、第2実施形態の階層型コンプライアンス動作決定部114の機能を示すブロック図であり、第1実施形態における図17に対応している。同図25を参照して、第2実施形態の階層型コンプライアンス動作決定部114も、第1実施形態と同様に、補償全床反力モーメント分配器114a、補償角決定部114b,114c,114dと、修正目標接地部位位置姿勢算出部114gと、機構変形補償量算出部114nと、機構変形補償入り修正目標接地部位位置姿勢決定部114hとを構成要素(機能的手段)として備える。なお、第2実施形態では、補償角は、第145236ノード、第145ノード、第236ノードにそれぞれ係わる第145236補償角θ145236、第145補償角θ145および第236補償角θ236があり、補償角決定部114b,114c,114dは、それぞれθ145236、θ145、θ236を決定するものである。
以下に、第2実施形態における階層型コンプライアンス動作決定部114の処理を、第1実施形態のものと異なる点を中心に説明する。
第2実施形態における階層型コンプライアンス動作決定部114は、第1実施形態のものと同様に、目標床反力分配器102の出力などを基に、各ノードの目標ノード床反力の並進力成分およびモーメント成分を決定すると共に、実床反力検出器108の出力を基に、各ノードの実ノード床反力の並進力成分およびモーメント成分を決定する。
すなわち、図26を参照して、各葉ノードの目標ノード床反力の並進力成分Fn_ref(n=1,2,3,4,5,6)は、目標床反力分配器102で決定された目標ノード床反力の並進力成分と同一とされ、根ノードの目標ノード床反力の並進力成分F145236refは、歩容生成装置100で決定された目標全床反力の並進力成分Ftotalrefと同一とされる。また、葉ノードおよび根ノード以外の中間ノードの目標ノード床反力の並進力成分Fn_ref(n=145,236)は、その中間ノードの各子ノードの目標ノード床反力の合力の並進力成分に決定される(F145ref=F1ref+F4ref+F5ref、F236ref=F2ref+F3ref+F6ref)。この場合、中間ノードの親ノードは根ノードであるので、F145ref+F236ref=Ftotalrefである。なお、図26は、第2実施形態のロボット1の全ての接地部位10が接地している状態での各ノードの目標ノード床反力の並進力成分Fn_refを例示している。
また、各ノードの目標ノード床反力のモーメント成分(詳しくは該ノードの目標ノード床反力中心点を作用点とする目標ノード床反力のモーメント成分)は、いずれも0とされる。
また、図30を参照して、各葉ノードの実ノード床反力の並進力成分Fn_act(n=1,2,3,4,5,6)は、実床反力検出器108で検出された各接地部位10の実床反力の並進力成分と同一とされる。そして、子ノードをもつ各ノードの実ノード床反力の並進力成分Fn_act(n=145,236,145236)は、そのノードの各子ノードの実ノード床反力の合力の並進力成分に決定される。従って、F145act=F1act+F4act+F5act、F236act=F2act+F3act+F6act、F145236act(=Ftotalact)=F145act+F236actである。なお、図30は、第2実施形態のロボット1の全ての接地部位10が接地している状態での各ノードの実ノード床反力の並進力成分Fn_actを例示している。
また、図31を参照して、各葉ノードの実ノード床反力のモーメント成分(該葉ノードの目標ノード床反力中心点を作用点とするモーメント成分)Mn_act(n=1,2,3,4,5,6)は、基本的には、実床反力検出器108で検出された各接地部位10の実床反力のモーメント成分と同一とされる。ただし、本実施形態では、各接地部位10の中心点、すなわち該接地部位10の目標床反力中心点に実モーメントは発生しないので、各葉ノードの実ノード床反力のモーメント成分は0に設定される。そして、子ノードをもつ各第nノード(n=145,236,145236)の実ノード床反力のモーメント成分Mn_actは、基本的にはその第nノードの各子ノードの実ノード床反力の合力が、該第nノードの目標ノード床反力中心点に作用するモーメント成分(これは一般に0にならない)に決定される。
第2実施形態における前記補償全床反力モーメント分配器114aは、前記補償全床反力モーメントMdmdを前記補償全床反力モーメントMdmd(Mdmdx,Mdmdy)を、第145236ノード補償床反力モーメントM145236dmd、第145ノード補償床反力モーメントM145dmdおよび第236ノード補償床反力モーメントM236dmdに分配するものである。
第145236ノード補償床反力モーメントM1423dmdは、第145236補償角θ145236を操作することによって(第1、第4、第5接地部位の組と、第2、第3、第5接地部位の組とを目標全床反力中心点P(=Q145236)まわりにθ145236だけ回転させることによって)発生する各接地部位10の床反力の並進力成分が、目標目標全床反力中心点P(目標ZMP)まわりに発生すべきモーメントの目標値である。
第145ノード補償床反力モーメントM145dmdは、第145補償角θ145を操作することによって(第145ノードに属する第1、第4および第5接地部位10を目標第145ノード床反力中心点Q145まわりにθ145だけ回転させることによって)発生する各接地部位10(詳しくは第1、第4、および第5接地部位)の床反力の並進力成分が、目標第145ノード床反力中心点まわりに発生すべきモーメントの目標値である。
第236ノード補償床反力モーメントM236dmdは、第236補償角θ236を操作することによって(第236ノードに属する第2、第3および第6接地部位10を目標第236ノード床反力中心点Q236まわりにθ236だけ回転させることによって)発生する各接地部位10(詳しくは第2、第3、および第6接地部位)の床反力の並進力成分が、目標第236ノード床反力中心点まわりに発生すべきモーメントの目標値である。
なお、本実施形態では、第1実施形態と同様、ロボット1の鉛直軸まわりの姿勢制御を行なわないので(補償全床反力モーメントMdmdの鉛直軸回りの成分が0であるので)、M145236dmd,M145dmd、M236dmdは、いずれも鉛直軸回りの成分が0であるモーメント(水平ベクトル)であり、補償角θ145236、θ145、θ236は、水平な軸回りの回転角である。また、特に、M145236dmdは、線分Q145Q236に垂直な水平軸回りのモーメントである。
これらのノード補償床反力モーメントM145236dmd,M145dmd,M236dmdは、基本的には、次の条件11)、12)を満たすように決定される。
11)第145ノード、第236ノード、第145236ノードに対して、前記第1実施形態で定義した如く、次式7a〜9aの関係式を満たす修正目標ノード床反力中心点Q145mdfd、Q236mdfd、Pmdfd(=Q145236mdfd)を導入したとき、これらのQ145mdfd、Q236mdfd、Pmdfdは、それぞれの所定の存在許容範囲内に在る。
Q145mdfd、Q236mdfd、Pmdfdの存在可能範囲は、例えば第2実施形態のロボット1の全ての接地部位10が接地している状態では、図29(a)に示す如く設定される。すなわち、Q145mdfdの存在許容範囲は、図中の太線の三角形上の領域(その三角形の辺および内部の領域)であり、これは、第145ノードの子ノードの目標ノード床反力中心点Q1,Q4,Q5を頂点する三角形の内部で、該三角形Q1Q4Q4の境界に近づき過ぎないように設定された領域である。Q236mdfdの存在許容範囲も同様である。また、Pmdfdの存在許容範囲は、図中の太線の線分上の領域であり、これは、第145236ノード(根ノード)の子ノードの目標床反力中心点Q145,Q236を結ぶ線分Q145Q236上で、該線分Q145Q236の端点に近づきすぎないように設定された領域である。
12)Mdmd=M145236dmd+M145dmd+M236dmdをほぼ満足する。
また、本実施形態では、根ノード(第145236ノード)の子ノードが2つであることから、M145236dmdは、前記第1実施形態における各ノード補償床反力モーメントと同様に、線分Q145Q236に直交する水平な単位ベクトル(これをV145236で表す)と同方向のベクトルに制限される。そこで、本実施形態では、次の条件13)を満たすようにM145236dmd,M145dmd,M236dmdを決定する。
13)M145236dmd+M145dmd+M236dmdの、ベクトルV145236方向の成分は、可能な限り、MdmdのベクトルV145236方向の成分に近い値とする。
これらの条件11)〜13)を満たすM145236dmd、M145dmd、M236dmdは、例えば次のように決定される。まず、M145236dmdをMdmdのV145236方向の成分に決定する。ただし、前記式7aにより定まる修正目標ノード床反力中心点Pmdfdがその存在許容範囲に収まらない場合には、Pmdfdがその存在許容範囲の境界の点になるように、M145236dmdを修正する。次いで、Mdmdから上記の如く決定したM145236dmdを差し引いたベクトルが、Mdmd145とMdmd236との和にほぼ一致し、且つ、Mdmd145+Mdmd23のV145236方向の成分がMdmd−Mdmd145236のV145236成分にできるだけ近いものとなり、且つ前記条件11)を満たすように、Mdmd145,Mdmd236を決定する。なお、この場合、Mdmd145,Mdmd236は、互いに平行なベクトルとする。
このように決定されたM145236dmd、M145dmd、M236dmdの例を図29(b)に示す。補足すると、M145236dmdは、前記したように線分Q145Q236に垂直な水平ベクトルである。
なお、ロボット1の鉛直軸回りの姿勢も制御するような場合には、M145236dmd、M145dmd、M236dmdの鉛直成分も決定するようにしてもよい。
第2実施形態における各補償角決定部114b〜114dは、基本的には、それぞれ第nノード(n=145236,145,236)の、ノード補償床反力モーメントと、実ノード床反力モーメント(目標ノード床反力中心点を作用点とするモーメント)との偏差に応じて、その偏差を0に近づけるようにノード補償角θ145236、θ145、θ236を決定する。図30および図31にその例を示す。この場合、本実施形態では、θ145は、図30に示す如く、偏差M145act−M145dmdと同方向で、目標第145ノード床反力中心点Q145を通る軸回りの回転角、θ236は、図30に示す如く、偏差M236act−M236dmdと同方向で、目標第236ノード床反力中心点Q236を通る軸回りの回転角である。また、θ145236は、図31に示す如く、偏差M145236act−M145236dmdと同方向(線分Q145Q236に垂直な水平方向)で、目標全床反力中心点Pを通る軸回りの回転角である。
但し、本実施形態においても、第1実施形態と同様に、第nノード(n=145236,145,236)の、ノード補償床反力モーメントをフィルタに通したものと、実ノード床反力モーメントをフィルタに通したものとの偏差に応じて、ノード補償角θ145236、θ145、θ236を決定するようにした。
図32は上記の如くノード補償角θ145236を決定する補償角決定部114b(θ145236決定部)の機能を示すブロック図、図33は上記の如くノード補償角θ145を決定する補償角決定部114c(θ145決定部)の機能を示すブロック図である。なお、補償角決定部114d(θ236決定部)の処理は、θ145決定部114bの処理と同様であるので詳細な説明および図示を省略する。
補償角決定部(θ145236決定部)114bでは、まず、目標第145ノード床反力中心点Q145に実第1、第4、第5ノード床反力の合力の並進力成分(F1act+F4act+F5act)が作用すると共に、目標第236ノード床反力中心点Q236に実第2、第3、第6ノード床反力の合力の並進力成分(F2act+F3act+F6act)が作用した場合に、目標全床反力中心点P(目標第145236ノード床反力中心点)のまわりに発生するモーメントM145236actを前記式16または17に基づいて求める。そして、その求めたM145236actの、ベクトルV145236方向の成分M145236actvを内積演算によって求める。ここでベクトルV145236は、線分Q145Q236に垂直で且つ水平な単位ベクトルである。なお、第145236ノードに関しては、V145236に垂直で且つ水平な単位ベクトルU145236の方向の軸回りに子ノード(第145ノードおよび第236ノード)の目標床反力中心点の位置を操作できないので、M145236actのベクトルU145236方向の成分は求める必要はない。
次いで、前記第1実施形態と同様に、このM145236actvをローパスフィルタに通したものM145236actvfiltと、前記第145236ノード補償床反力モーメントM145236dmdのベクトルV方向の成分M145236dmdvを補償フィルタに通したものM145236dmdvfiltとの偏差M145236errv(=M145236actvfilt−M145236dmdvfilt)に所定のゲインK145236を乗算することで、第145236ノード補償角θ145236が決定される。
補償角決定部(θ145決定部)114cでは、まず、目標第1、第4、第5ノード床反力中心点Q1,Q4,Q5にそれぞれ実第1、第4、第5ノード床反力の並進力成分F1act,F4act,F5actが作用した場合に、第145ノード床反力中心点Q145のまわりに発生するモーメントM145actを算出する。この場合、算出するM145actは、互いに直交する水平な単位ベクトルであるベクトルV145およびU145のそれぞれの方向の成分から構成される。ベクトルV145またはU145の向きは、任意でよい。
次いで、このM145actをローパスフィルタに通したものM145actfiltと、前記第145ノード補償床反力モーメントM145dmd(ベクトルV方向の成分およびベクトルU方向の成分)を補償フィルタに通したものM145dmdfiltとの偏差M145err(=M145actfilt−M145dmdfilt)に所定のゲイン行列K145(対角行列)を乗算することで、第145ノード補償角θ145が決定される。θ145は、ベクトルVの軸回り角度成分とベクトルUの軸回りの角度成分とから構成される。
補償角決定部(θ236決定部)114dによる第236ノード補償角θ236の決定処理も、上記したθ145決定部114cの処理と同様に行なわれる。
以上説明した補償角決定部114b〜114dの処理によって、目標全床反力中心点Pに作用する実モーメントMactの水平成分を補償全床反力モーメントMdmdに近づけるようにノード補償角θ145236,θ145,θ236の組が決定されることとなる。
なお、第1実施形態に関して補足説明したように、次のようにノード補償角θ145236,θ145,θ236を決定するようにしてもよい。すなわち、子ノードを持つ各第nノード(n=145,236,145236)に対し、その第nノードの実ノード床反力(第nノードの全ての子ノードの実ノード床反力の合力)のモーメントの水平成分が0となるような床反力中心点を実第nノード床反力中心点として求める。あるいは、第nノード(n=145,236,145236)の実ノード床反力のモーメントから、その各子ノードの実ノード床反力が該子ノードの目標ノード床反力中心点に作用するモーメントを減じてなるモーメントの水平成分が0となるような床反力中心点を実第nノード床反力中心点求める。そして、第nノード(n=145,236,145236)の目標ノード床反力中心点と、上記の如く求めた実第nノード床反力中心点との偏差、あるいは、それらのノード床反力中心点のそれぞれをフィルタに通した値の偏差を制御量とし、その制御量を0に近づけるように、該制御量に応じてノード補償角θ145236,θ145,θ236を決定する(例えば制御量にあるゲインを乗算することで、θ145236,θ145,θ236を決定する)。
図25に示した第2実施形態における修正目標接地部位位置姿勢算出部114gは、次のように、各接地部位10の目標接地部位位置姿勢(図1のロボットでは実際には目標接地部位位置)を修正し、修正目標接地部位位置姿勢を得る。すなわち、図30および図31を参照して、第145ノードの子ノードである第1、第4および第5ノードの目標床反力中心点Q1,Q4,Q5をそれぞれ、第145ノードの目標床反力中心点Q145を回転中心として、第145ノード補償角θ145(水平ベクトル)だけ回転移動する。この回転移動後のQ1,Q4,Q5をそれぞれQ1’,Q4’,Q5’とする。従って、第145ノード補償角θ145は、第145ノードの目標床反力中心点Q145の位置を動かさずに、第145ノードの子ノードである第1、第4、第5ノードのそれぞれの目標床反力中心点Q1,Q4,Q4の位置の相対関係を動かすための操作量である。
同様に、第236ノードの子ノードである第2、第3および第6ノードの目標床反力中心点Q2,Q3,Q6をそれぞれ、第236ノードの目標床反力中心点Q236を回転中心として、第236ノード補償角θ236(水平ベクトル)だけ回転移動する。この回転移動後のQ2,Q3,Q6をそれぞれQ2’,Q3’,Q6’とする。従って、第236ノード補償角θ236は、第236ノードの目標床反力中心点Q236の位置を動かさずに、第236ノードの子ノードである第2、第3、第6ノードのそれぞれの目標床反力中心点Q2,Q3,Q6の位置の相対関係を動かすための操作量である。
これらの回転移動を視覚的に示したものが図30である。
次いで、第145236ノードの子ノードである第145および第236ノードの目標床反力中心点Q145,Q236をそれぞれ、第145236ノードの目標床反力中心点P(目標全床反力中心点)を回転中心として、前記偏差M145236errvのベクトル(水平ベクトル)と同方向(線分Q145Q236と直交する水平方向)の軸心まわりに第145236ノード補償角θ145236だけ回転移動する。この回転移動後のQ145,Q236を図31に示す如くそれぞれQ145’,Q236’とする。従って、第145236ノード補償角θ145236は、第145236ノード(根ノード)の目標床反力中心点Pの位置を動かさずに、第145236ノードの子ノードである第145、第236ノードのそれぞれの目標床反力中心点Q145,Q236の位置の相対関係を動かすための操作量である。
次いで、図31を参照して、先の回転移動後の目標ノード床反力中心点Q1’,Q4’,Q5’をベクトルQ145_Q145’だけ平行移動し、これにより、第1、第4および第5ノードの最終的な修正後の目標ノード床反力中心点Q1”,Q4”,Q5”を得る。同様に、先の回転移動後の目標ノード床反力中心点Q2’,Q3’,Q6’をベクトルQ236_Q236’だけ平行移動し、これにより、第2、第3および第6ノードの最終的な修正後の目標ノード床反力中心点Q2”,Q3”,Q6”を得る。
最後に、第n接地部位(n=1,2,3,4,5,6)の目標接地部位位置を、ベクトルQn_Qn”だけ平行移動(ほぼ上下移動)させる。これにより、各接地部位10の目標接地部位位置(より正確には各接地部位10の目標接地部位位置の相対関係)が修正されることとなる。すなわち、子ノードを持つ各ノード毎に、そのノードの子孫ノードとなっている各接地部位10の目標接地部位位置の間の相対関係(相対的位置関係)の操作量(修正量)が各補償角θ145,θ236,θ145236に応じて定められ、それらの操作量(修正量)を合成することで、各接地部位10の目標接地部位位置の相互の相対関係が修正されることとなる。
なお、接地部位の姿勢を制御可能として、接地部位の目標床反力中心点まわりに床反力モーメントを発生させることができるロボットでは、各接地部位の目標接地部位床反力中心点(目標ノード床反力中心点)まわりの足平姿勢回転動作を、特開平10−277969号公報(複合コンプライアンス制御)に示した手法で行なえば良い。すなわち、第1実施形態に関して補足説明した如く、第n接地部位を上記の平行移動後のQn”を中心として、該第n接地部位の目標姿勢を修正するようにすればよい。
図25に示した第2実施形態における機構変形補償量算出部114nは、前記第1実施形態のものと同様に、各各脚#1〜#6のコンプライアンス機構42などの変形による影響を補償するための機構変形補償量En_cmpn(n=1,2,3,4,5,6)を求める。すなわち、第2実施形態における補償全床反力モーメント分配器114aから出力される各接地部位10の修正目標接地部位床反力Fn_refmdfd(n=1,2,3,4,5,6,)(目標接地部位床反力に、各ノード補償床反力モーメントM145236dmd、M145dmd、M236dmdを付加することによって修正された目標接地部位床反力)によって発生が予想される各脚#1〜#6のコンプライアンス機構42などの機構変形量En_mdfd(n=1,2,3,4,5,6)を機構コンプライアンスモデルを用いて求める。このEn_mdfdに(−1)を乗算したものを機構変形補償量En_cmpnとして求める。
図25に示した第2実施形態における機構変形補償入り修正目標接地部位位置姿勢算出部114hは、第1実施形態のものと同様に、機構変形補償入り修正目標接地部位位置姿勢は、各接地部位10の修正目標接地部位位置姿勢(前記修正目標接地部位位置姿勢算出部114gで求められ位置姿勢)に、それぞれに対応する機構変形補償量En_cmpnを付加することにより決定される。
以上が、本実施形態(第2実施形態)における階層型コンプライアンス動作決定部114の処理の詳細である。
以上説明した以外の制御装置50の演算処理は、第1実施形態と同じである。
なお、第2実施形態における階層構造は、第1実施形態の場合と同様に、ロボット1の動作形態(移動形態)などに応じて変更しても良い。例えば、図34に示す如く、階層構造を設定してもよい。この図示の例では、第1接地部位および第2接地部位を子ノード(葉ノード)としてもつ第12ノードと、第3接地部位および第4接地部位を子ノード(葉ノード)としてもつ第34ノードと、第5接地部位および第6接地部位を子ノード(葉ノード)としてもつ第56ノードと、第56ノードおよび第34ノードを子ノードとしてもつ第3456ノードとを中間ノードとして備え、根ノードは、第3456ノードと、第12ノードとを子ノードとしてもつものとされている。このようにすることで、コンプライアンス動作および後述の床形状推定をより的確に行なうことが可能となる場合がある。なお、図中の符号の意味は、前記図3(b)や図24などに示したものと同様である。
[第3実施形態]
次に、第2実施形態のロボット1(6脚ロボット)に床形状推定機能とその推定結果に応じたロボット1の動作補正機能とを付加した第3実施形態について説明する。なお、本実施形態では、主に、第2実施形態で示した6脚ロボットを中心として説明するが、4脚ロボットについても補足的に説明を付加する場合がある。また、本実施形態の理解の便宜上、2脚ロボットについても言及する場合がある。
本実施形態におけるロボット1の機構的構成は、第1または第2実施形態で説明した図1に示したもの(ただし、6個の脚#1〜#6を有するロボット1)と同じである。従って、ロボット1の機構的構成の説明は省略する。また、本実施形態におけるロボット1に備えた制御装置50の機能的構成も、前記図2に示したものと同じである。但し、本実施形態では、図2中の階層型コンプライアンス動作決定部114には、新たな機能が付加されており、その点が第2実施形態のものと相違している。そして、階層型コンプライアンス動作決定部114以外の制御装置50の構成要素の処理は、第2実施形態と同一である。そこで、本実施形態での説明では、階層型コンプライアンス動作決定部114の処理を中心に説明し、これ以外の制御装置50の処理については、詳細な説明を省略する。
図35は、本実施形態における階層型コンプライアンス動作決定部114の処理機能を示すブロック図である。このうち、第2実施形態のものと異なる機能を説明すると、本実施形態における階層型コンプライアンス動作決定部114には、新たに、床形状推定手段としての床形状推定器130と、床形状推定器130が出力(推定)する推定床形状偏差(より詳しくは各接地部位10に係る後述の床高さ偏差の推定値)を修正目標接地部位位置姿勢に加算する加算器132とが付加され、加算器132の出力を、修正目標接地部位位置姿勢の代わりに機構変形補償入り修正目標接地部位位置姿勢算出部114hに入力するようにしている。これ以外の階層型コンプライアンス動作決定部114の構成要素の処理は第2実施形態のものと同一である。
また、これに伴い、本実施形態での制御装置50のメインルーチンの制御処理は、その一部が前記図9のフローチャートに示した制御処理と相違している。図36は本実施形態における制御装置50のメインルーチンの制御処理を示すフローチャートである。図示の如く、本実施形態では、S36の後に、新たにS37で床形状偏差を推定する処理(床形状推定器130の処理)が追加される。さらに、S38’では、前記第2実施形態で説明した各補償角θ145236,θ145,θ236とS37で推定された床形状偏差とに応じて各目標接地部位位置姿勢が修正され、その修正後の目標接地部位位置姿勢をさらに機構変形補償量に応じて修正することにより、最終的な目標接地部位位置姿勢たる機構変形補償入り修正目標接地部位位置姿勢が得られる。この場合、より詳しくは、各補償角θ145236,θ145,θ236に応じて第2実施形態と同様に修正目標接地部位位置姿勢を求めた後、その修正目標接地部位位置姿勢が床形状偏差に応じて修正され、さらに、これが機構変形補償量に応じて修正されることで、機構変形補償入り修正目標接地部位位置姿勢が得られる。上記した事項以外は、図9の処理と同じである。
以降、本実施形態の第2実施形態と相違する点を具体的に説明する。
まず、本実施形態の詳細な説明に入る前に、床形状推定器130が推定する上で使用する概念と用語を以下のように定義する。なお、ここでの説明は、便宜上、本実施形態の6脚ロボット1に限らずに、一般的なロボットの簡略的な図を使用して行なう。
図37、図38および図39に示すように、目標歩容において想定された床(あるいは床面)を「想定床」と呼ぶ。ロボットが移動する実際の床を「実床」と呼ぶ。なお、説明の便宜上、図37では第1実施形態で説明した4脚ロボットを図示し、図38および図39では、2脚ロボットを図示しているが、以下に説明する用語の意味は、本実施形態における6脚ロボット1を含む任意の多脚ロボットにおいても同様である。
前記第1および第2実施形態で説明した階層型コンプライアンス制御において定義された目標第n接地部位床反力中心点Qnは、第n接地部位の中心点に設定された点であったが、その床反力中心点Qnは、該第な接地部位の接地面(底面)に設定されていてもよい。この場合、目標歩容において、目標第n接地部位床反力中心点Qnと接することが想定された想定床面上の点を「想定第n床接点Dn」と呼ぶ。
この定義から明らかなように、ロボットの目標歩容において第n接地部位が接地している時期では、目標第n接地部位床反力中心点Qnと想定第n床接点Dnとは、支持脚座標系(グローバル座標系)から見て同一座標になる。これに対し、実際にロボット1が移動しているときに、実第n接地部位の底面上における目標第n接地部位床反力中心点Qnに対応する点が、実床に接触する点を「実第n床接点Dnact」と呼ぶ。
これらの点の関係を表す例を図37、図38および図39に示す。尚、図37は4脚ロボットを、目標第1接地部位床反力中心点Q1と目標第2接地部位床反力中心点Q2とを通る垂直面の法線方向から(すなわちほぼ側方から)見た図、図38は移動(歩行)している2脚ロボットを目標第1接地部位床反力中心点Q1と目標第2接地部位床反力中心点Q2とを通る垂直面の法線方向から(すなわちほぼ側方から)見た図、図39はほぼ直立姿勢の2脚ロボットを目標第1接地部位床反力中心点Q1と目標第2接地部位床反力中心点Q2とを通る垂直面の法線方向から(すなわちほぼ背面から)見た図である。
これらの図37〜図39には、前記垂直面における想定床の断面が細線で示され、前記垂直面における実床の断面が太線で示されている。なお、図37では、ロボットの目標姿勢(目標歩容の瞬時値におけるロボットの全体的な姿勢)と、実姿勢とがそれぞれ破線、実線で示されている。また、図38および図39では、ロボットの目標姿勢(目標歩容の瞬時値におけるロボットの全体的な姿勢)と、実接地部位位置姿勢とがそれぞれ細線、太線で示されている。これらの状況における実第n床接点は、実床面上の点であり、図37、図38および図39に示す位置になる。
想定床面に対する実床面の形状偏差を床形状偏差と呼ぶ。床形状偏差を定量的に表現する指標として、第nノード床高さ偏差、第nノード床傾斜偏差を以下のように定義する。
第n床接点における床面の高さを「第n接地部位床高さ」と呼ぶ。葉である第nノードに対して、実第n接地部位床高さと想定第n接地部位床高さとの差を「第n接地部位床高さ偏差」あるいは、「第nノード床高さ偏差」と呼ぶ。第n床接点における床面の傾斜を「第n接地部位床傾斜」と呼ぶ。葉である第nノードに対して、実第n接地部位床傾斜と想定第n接地部位床傾斜との差を「第n接地部位床傾斜偏差」あるいは、「第nノード床傾斜偏差」と呼ぶ。接地部位床傾斜偏差の例を図39に示す。
葉ノードである、あらゆる第jノードに対して、目標第j接地部位位置姿勢と想定第j床面の高さと傾斜(詳しくは、想定第j床接点における想定床面の高さと傾斜)の関係と、ノード補償角の組を用いたコンプライアンス動作によって修正された修正目標第j接地部位位置姿勢と実第j床面の高さと傾斜(詳しくは、実第j床接点における実床面の高さと傾斜)の関係とが一致するためのノード補償角の組を「ノード床傾斜偏差(の組)」と呼び、このうちの第nノード補償角に対応するノード床傾斜偏差の成分を「第nノード床傾斜偏差」と呼ぶ。このように定義した「第nノード床傾斜偏差」は、第nノードが葉ノードである場合、先に上記で葉ノードに関して定義した「第nノード床傾斜偏差」(=実第n接地部位床傾斜と想定第n接地部位床傾斜との差)に一致するものである。
結局、ノード床傾斜偏差の組は、目標歩容通りに移動しているロボットの全ての接地部位を、目標床面に平行になっている状態から、実床面に平行にさせるために必要な補償量に相当する。
従って、歩行中に床形状偏差を推定し、推定した床形状偏差を目標接地部位位置姿勢に加えれば、床形状偏差があっても、各ノードの実床反力モーメントは想定床を歩行しているときと同一になる。当然、葉ノードの実床反力モーメントである接地部位の実床反力モーメントも目標接地部位床反力モーメントに一致する。
通常は、上記のごとく定義される「第nノード床傾斜偏差」を用いて床形状を表現して構わないが、あるノードが3つの子ノードを持ち、3つの子ノードの目標床反力中心点が同一直線上に並ぶ場合や、あるノードが4つ以上の子ノードを持つ場合などでは、床形状を表現することが困難になる。
そこで、以降の説明においては、葉でない第nノードに対しては、より一般的に適用できる以下の表現を用いることとする。以下の定義における所定の重み付き平均を求めるために用いる重みは、前記目標床反力分配器102が前記した如く決定した前述の重みと同一のものとする。
定義:
すべての目標接地部位の高さと傾斜を、それぞれ対応する実床面の高さと傾斜に一致させ、かつ、任意のノードの目標床反力中心点をそのすべての子ノードの目標床反力中心点の所定の重み付き平均(すなわち所定の内分比による内分点)で表したときに、任意の第nノードに対し、第nノードの目標床反力中心点の高さ(鉛直方向位置)から第nノードの親ノードの目標床反力中心点の高さ(鉛直方向位置)を減じた高さを「実第nノード相対床高さ」と呼ぶ。
定義:
すべての目標接地部位の高さと傾斜を、それぞれ対応する想定床面の高さと傾斜に一致させ、かつ、任意のノードの目標床反力中心点をそのすべての子ノードの目標床反力中心点の所定の重み付き平均(すなわち所定の内分比による内分点)で表したときに、任意の第nノードに対し、第nノードの目標床反力中心点の高さ(鉛直方向位置)から第nノードの親ノードの目標床反力中心点の高さ(鉛直方向位置)を減じた高さを「想定第nノード相対床高さ」と呼ぶ。
実第nノード相対床高さから想定第nノード相対床高さを減じた高さを「第nノード相対床高さ偏差」と呼ぶ。第nノード相対床高さ偏差は、以下のように定義しても、同一値となる。
定義:
すべての目標接地部位の高さと姿勢を、それぞれ対応する接地部位床高さ偏差と接地部位床傾斜偏差に一致させ、かつ、任意のノードの目標床反力中心点をそのすべての子ノードの目標床反力中心点の所定の重み付き平均(すなわち所定の内分比による内分点)で表したときに、任意の第nノードに対し、第nノードの目標床反力中心点高さから第nノードの親ノードの目標床反力中心点高さを減じた高さを「第nノード相対床高さ偏差」と呼ぶ。
上記した第nノード相対床高さ偏差の定義から明らかなように、子ノードを持つ各ノードに対し、その全ての子ノードの第nノード相対床高さ偏差は、床高さ偏差の相対関係を表すものとなる。また、子ノードを持つ各ノードに対し、その全ての子ノードの重み付き平均値は0となる。
本実施形態(第3実施形態)では、実床面と目標歩容上での想定床面とのずれ(すなわち床形状偏差)を補償して、接地すべき接地部位10を適正に実床面に接地させるように各接地部位10の目標位置姿勢の修正を行なう。そして、本実施形態では、上記のように定義される第nノード相対床高さ偏差を床形状偏差を表す床形状パラメータとして用い、これを基に、各第n接地部位床高さ偏差(床形状偏差)を推定する。そして、推定した各第n接地部位床高さ偏差(以下、単に第n床高さ偏差ということがある)に応じて第n接地部位10の目標位置を修正するようにした。
以上を前提として、以下に本実施形態の要部の詳細を説明する。
図35に示した階層型コンプライアンス動作決定部114の床形状推定器130への入力は、一般的には大きく分けて以下のようになる。
1)各目標床反力中心点(目標全床反力中心点P、目標第n接地部位床反力中心点Qn(n=1,2,3,4,5,6))。
2)想定床面形状(想定第n床接点の座標、想定第n接地部位床傾斜)。
3)最終的に実ロボットが追従すべき目標姿勢(機構変形入り修正目標接地部位位置姿勢)または実関節変位またはこれらの周波数重み付き平均(周波数特性を持つ重みによる重み付き平均)。
4)上体姿勢傾斜偏差。
5)実床反力(実第n接地部位床反力の並進力成分とモーメント成分)。
なお、本実施形態におけるロボット1では、各接地部位10の姿勢を制御できないので、想定床面形状のうちの、想定第n接地部位傾斜は不要である。
また、本実施形態におけるロボット1では、実床反力のうちの実第n接地部位床反力のモーメント成分は0になるので、これも床形状推定器130に入力する必要は無い。ただし、以降の本実施形態の説明では、各接地部位10の姿勢を制御できる場合も考慮し、第n接地部位床反力には、一般に、実第n接地部位床反力のモーメント成分も含まれるものとする。また、以降の説明では、接地部位の個数が4個や6個以外の場合にも容易に本実施形態を拡張的に適用できるように、接地部位の総数をしばしば「最終葉ノード番号」と表す。例えば図1の6脚ロボット1では、最終葉ノード番号は、「6」である。
図40は、床形状推定器130の処理機能を示すブロック図である。図40に示す床形状推定器130を構成する各機能要素について説明すると、床形状推定器130は機構コンプライアンスモデル134を備える。
機構コンプライアンスモデル134は、各接地部位10が実床反力Fn_act(n=1,2,…,最終葉ノード番号)を受けたときの各脚#1〜#6のコンプライアンス機構42など(各脚のコンプライアンス機構42およびリンク機構)の変形量を求め、求めた変形量を、前記ロボット幾何学モデル110(図2参照)への入力である各機構変形補償入り修正目標接地部位位置姿勢に加えることにより、機構変形後の第n接地部位(各接地部位)の位置姿勢の推定値(より詳しくは、実上体姿勢が目標上体姿勢に一致していると仮定した場合の第n接地部位位置姿勢の推定値)である推定第n接地部位位置姿勢(n=1,2,…,最終葉ノード番号)を求める。なお、このときに用いる各機構変形補償入り修正目標接地部位位置姿勢は、前回制御周期で求めた値などの過去値である。
機構変形後の各推定接地部位位置姿勢を求める際に、ロボット1の関節変位の制御の追従遅れが無視できない場合には、機構変形補償入り修正目標接地部位位置姿勢をそのまま用いる代わりに、機構変形補償入り修正目標接地部位位置姿勢を、追従遅れに相当するローパスフィルタに通してなる位置姿勢を用いれば良い。
あるいは、ロボット1の実関節変位の検出値からロボット幾何学モデル(図2のロボット幾何学モデル110と同様のモデル)を介して機構変形が無い場合の実接地部位位置姿勢である機構変形なし実接地部位位置姿勢を求め、求めた値を機構変形補償入り修正目標接地部位位置姿勢の代わりに用いれば良い。
あるいは、周波数重み(周波数特性を持つ重み)を用い、前記機構変形なし実接地部位位置姿勢と機構変形補償入り修正目標接地部位位置姿勢の重み付き平均を求め、それを機構変形補償入り修正目標接地部位位置姿勢の代わりに用いれば良い。
厳密には、前記した機構変形なし実接地部位位置姿勢を用いるべきであるが、関節変位制御の能力が高ければ、上記のいずれを用いても大差はない。
なお、機構コンプライアンスモデル134については、本出願人が先に提案した特開平10−277969号公報において詳細が説明してあるので、ここではこれ以上の説明を省略する。
補足すると、図2においてロボット幾何学モデル110への入力に機構変形補償が含まれない場合、すなわち、機構変形補償のない修正目標接地部位位置姿勢(前記修正目標接地部位位置姿勢算出部114gで求められる位置姿勢)をロボット幾何学モデル110に入力する場合には、その機構変形補償のない修正目標接地部位位置姿勢を床形状推定器130の機構コンプライアンスモデル134に入力すれば良い。
図40の説明に戻ると、次いで、機構変形後の推定各接地部位位置姿勢(n=1,2,…,6)を、目標全床反力中心点Pを回転中心として前記上体姿勢傾斜偏差θberrだけ回転移動させることにより、グローバル座標系(支持脚座標系)から見た機構変形後の第n推定接地部位位置姿勢(n=1,2,…,最終葉ノード番号)を求める。次いで、グローバル座標系から見た機構変形後の第n推定接地部位位置姿勢(n=1,2,…,最終葉ノード番号)と第n接地部位の目標接地部位位置(第n接地部位の代表点の目標位置)から見た目標第n接地部位床反力中心点の位置とを基に、グローバル座標系から見た機構変形後の目標第n接地部位床反力中心点に対応する点の位置を求める。そして、この求めた点の位置を瞬間推定床接点位置(瞬間推定第n床接点位置)Qn_estm’とする。このQn_estm’は、実第n床接点の瞬時位置の推定値に相当するものである。尚、瞬間推定床接点位置Qn_estm’の求め方の詳細は、特開平10−277969号公報中の式21のQ”を求めることに相当するので、ここではこれ以上の説明を省略する。
次いで、瞬間推定第n床接点位置Q_estm’から想定第n床接点位置Dnを減じたものを、バイアス含有瞬間第n接地部位床高さ偏差Zfn_with_bias’として得る。このZfn_with_bias’は、第n接地部位床高さ偏差の瞬時推定値に相当するものであるが、本実施形態のように上体の実高さを検出しない場合には、一般にバイアス誤差を含んでいる。そのため、Zfn_with_bias’をバイアス含有瞬間第n接地部位床高さ偏差と呼ぶ。
ここで、想定第n床接点Dnは、先に定義したように、第n接地部位が接地している時期においては、目標第n接地部位床反力中心点Qnと同一位置とする。目標歩容において第n接地部位が接地する直前の時期では、次に接地する時に想定されている目標第n接地部位床反力中心点Qnの位置を想定第n床接点Dnとする。目標歩容において第n接地部位が離床した直後の時期では、離床時に想定されていた目標第n接地部位床反力中心点Qnの位置を想定第n床接点Dnとする。
次いで、バイアス含有瞬間第n接地部位床高さ偏差Zfn_with_bias’(n=1,2,…,最終葉ノード番号)と第n接地部位床反力Fn_act(n=1,2,…,最終葉ノード番号)とを基に、図41のフローチャートで示す床高さ偏差推定処理サブルーチンによって、推定第nノード床高さ偏差Zfn_estm(n=1,2,…,最終葉ノード番号)を求める。
ここで、床高さ偏差推定処理サブルーチン等に用いられる「階層相対化処理」(または「階層相対化」)について説明する。
階層相対化処理とは、一般的に定義すると、すべての葉ノードに対する入力値(ある所定種類の状態量の値)の組に対して、すべてのノードの出力値を決定する処理である。より詳しくは、階層化相対処理は、葉ノードでない任意のノードのすべての子ノードに対応する出力値の重み付き平均が0であり、かつ、任意の葉ノードの入力値(状態量)が、そのノードの出力値とそのノードのすべての先祖ノードの出力値との和に一致するように各ノード出力値を決定する処理のことである。
以降、葉ノードに対するある種類の入力(状態量)AAから、階層相対化処理によってある種類の出力BBの値を求めることを、「AAを階層相対化してBBを求める」と言う。
以下に階層相対化処理のアルゴリズムを説明する。一般的に、階層相対化処理の入力を第n接地部位高さZfn(nは葉ノード番号)、出力を第nノード相対高さZn_rel(n=1,2,…,最終ノード番号)とする。なお、「最終ノード番号」は、全てのノード番号のうちの最大番号を意味し、例えば第2実施形態で説明した階層構造では、最終ノード番号=145236である。また、このアルゴリズムの説明では、「第n接地部位高さ」は、前記第n接地部位床高さ、あるいは第n接地部位床高さ偏差など、階層化相対化処理の入力を総称的に表した名称であり、「第nノード相対高さ」は、後述する第n接地部位相対床高さ偏差など、階層相対化処理の出力を総称的に表した名称である。
まず、バイアス含有第nノード高さZn_with_biasを以下のように決定する。すなわち、第nノードが葉ノード(すなわち接地部位)であるならば、バイアス含有第nノード高さZn_with_biasに第n接地部位高さZfnの値を代入する。第nノードが葉ノード(すなわち接地部位)でないならば、第nノードのすべての子ノードのバイアス含有第nノード高さZn_with_biasの重み付き平均を求め、これをもってバイアス含有第nノード高さZn_with_biasとする。ただし、各子ノードに対する重みには、前記目標床反力分配器102が決定した重みWj(j=1,2,…)を用いる。
すなわち、以下の式32によって、バイアス含有第nノード高さZn_with_biasを得る。
以上のルールに従って、すべてのノードに対してバイアス含有ノード高さZn_with_bias(n=1,2,…,最終ノード番号)を求める。
最後に、第nノードの親ノード(これは第hノードであるとする)のバイアス含有高さZh_with_biasをバイアス含有第nノード高さZn_with_biasから減じることにより、第nノード相対高さZn_relを求める。
すなわち、次式33により第nノード相対高さZn_relを求める。ただし、第hノードは、第nノードの親ノードであるとする。
以上のルールに従って、すべてのノードに対してノード相対床高さZn_rel(nは各ノードの番号)を求める。ただし、根ノードに対するのード相対高さZk_rel(kは根ノードの番号)は0とする。図42に第1実施形態で示した4脚ロボットのノード相対高さの算出例を示し、図43に本実施形態における6脚ロボットのノード相対高さの算出例を示す。
バイアス含有第nノード高さZn_rel_with_biasは、同一の結果が得られる以下の方法によって求めても良い。
第nノードが葉ノード(すなわち接地部位)であるならば、バイアス含有第nノード高さZn_with_biasに第n接地部位高さZfnの値を代入する。第nノードが葉ノード(すなわち接地部位)でないならば、第nノードのすべての子孫の葉ノードのバイアス含有高さの重み付き平均を求め、これをもってバイアス含有第nノード高さZn_with_biasとする。ただし、ここでの各葉ノードjに対する重みWj’は、そのノードjに対して前記目標床反力分配器102が決定した重みWjとそのノードjの祖先ノードかつ第nノードの子孫ノードであるすべてのノードに対して前記目標床反力分配器102が決定した重みとの積とする。
すなわち、以下の式34によって、バイアス含有第nノード高さZn_with_biasを得る。
補足すると、この場合の重みWj’は、目標第jノード床反力が0でなければ、各葉ノードの目標床反力を目標第jノード床反力で割った値に一致する。
以上が階層相対化処理である。
次いで、床高さ偏差の推定処理のサブルーチン処理を、それを示す図41のフローチャート等を用いて以下に説明する。なお、この処理では、階層相対化処理の入力として、第n接地部位床高さ偏差を用い、出力を第nノード相対床高さ偏差とする。そして、これらの入力および出力の参照符号として、前記式32〜34などに示したものと同様の符号を使用する。
図41を参照して、まず、S50において、前記バイアス含有瞬間第n接地部位床高さ偏差Zfn_with_bias’を階層相対化して瞬間第nノード相対床高さ偏差Zn_rel’(n=1,2,…,最終ノード番号)
を求める。
次いで、S52において、制御装置50の前回制御周期で求めた、第n接地部位床高さ偏差の推定値である推定第n接地部位床高さ偏差(以降、これを前回推定第n接地部位床高さ偏差Zfn_estm_pと呼ぶ)を階層相対化して得られる出力を前回推定第nノード相対床高さ偏差Zn_rel_estm_p(n=1,2,…,最終ノード番号)として求める。ただし、この階層相対化処理で使用する各ノードの重みには、制御装置50の今回(現在)の制御周期で前記目標床反力分配器102が決定した重みWn(n=1,2,…,最終ノード番号)を用いる。
補足すると、一般的に、今回の制御周期で決定された重み(以下、今回重みという)と前回の制御周期で決定された重み(以下、前回重みという)とが異なる場合には、実際の床の形状に変化がなくても、前回重みを用いて求めた各ノードの前回推定相対床高さ偏差の値と今回重みを用いて求めた各ノードの前回推定相対床高さ偏差の値とは異なる値となってしまう。そこで、前回の制御周期で求めた各ノードの推定相対床高さ偏差をそのまま各ノードの前回推定ノード相対床高さ偏差として用いず、上記のごとく、今回重みを用いて各ノードの前回推定ノード相対床高さ偏差を改めて計算するようにした。
次いで、S54において、次式35により、第nノード相対床高さ偏差補正量候補値Zn_inc_cand(n=1,2,…,最終ノード番号)を求める。このZn_inc_candは、第nノード相対床高さ偏差を今回の制御周期で更新するときの該偏差の補正量の仮値を意味するものである。
この場合、第nノード相対床高さ偏差補正量候補値Zn_inc_candは、次式35に示す如く、瞬間第nノード相対床高さ偏差Zn_rel’と前回推定第nノード相対床高さ偏差Zn_rel_estm_pの差と所定の係数(ΔT/(Testm+ΔT))との積に設定される。
ここで、式35中のTestmは第nノード床高さ偏差の推定(更新)における時定数(一次遅れの時定数)であり、ΔTは制御装置50の制御周期である。
このように、Zn_inc_candは設定したとき、制御装置50の制御周期毎に、Zn_inc_candをZn_rel_estm_pに加算していくことで、その加算結果の値は、徐々にZn_rel’に近づいていくように変化する。
次いで、S56において、目標歩容の時期に応じて各ノードのモードの要求値であるノード要求モード(第n要求モードmdn_dmd)を決定する。
具体的には、前記6脚ロボット1においては、第nノード要求モード(n=1,2,3,4,5,6)、第145ノード要求モードmd145dmd、第236ノード要求モードmd236dmdおよび第145236ノード要求モードmd145236dmdを、目標歩容の時間経過に対して図44のタイミングチャートで示すように設定し、これにしたがって現在の要求モードを決定する。ただし、歩容が異なれば、それに応じてノード要求モードのパターンも変えるべきである。なお、図44の第1段(最上段)および第2段のタイミングチャートにおけるON/OFFは、接地部位が接地している状態がONに対応しており、接地していない状態がOFFに対応している。
補足すると、本願出願人が、特開平10−277969号公報に示したように、接地部位として足平を持ち、接地部位における床傾斜偏差を推定することができるロボットの場合には、接地部位の床傾斜偏差推定に対応する要求モードも、同公報に説明されているように設定すべきである。
図44に示すように、各ノードのモード(以下、単にノードモードという)には、準備完了モード、ホールドモード、およびリセットモードがある。
準備完了モードは、床形状の推定を行なうモードである。ホールドモードは、床形状の推定値(推定第n接地部位床高さ偏差)をホールドする(直前の値を維持する)モードである。ホールドモードは、床形状推定値が発散する恐れがある時期と、床形状推定値の精度が低下する恐れがある時期に存在させる。また、リセットモードは、床形状推定値を、次の床形状の推定を開始する(次の準備完了モードの開始)までに所定の初期値に移行させるモードである。
葉ノードである第nノード(n=1,2,3,4,5,6)に対しては、目標歩容上で第n接地部位が接地しているならば(すなわち目標第n接地部位床反力が0でないならば)、第nノード要求モードは、準備完了モードに設定される。その後、目標歩容上で第n接地部位が離床した(すなわち目標第n接地部位床反力が0になった)ならば、その直後は第nノード要求モードがホールドモードに設定される。そして、その後しばらくしたら第nノード要求モードがリセットモードに設定される。さらに、目標歩容上で第n接地部位が接地する直前から、第nノード要求モードが準備完了モードに設定される。
また、葉ノードでない第nノード(n=145,236,145236)、すなわち、子ノードをもつ第nノードに対しては、その第nノードに属する少なくとも1つの接地部位が目標歩容上で接地している場合には、第nノード要求モードは、準備完了モードに設定される。その後、目標歩容上で第nノードに属するすべての接地部位が離床したならば、その直後までは、第nノード要求モードがホールドに設定される。なお、第nノードに属するすべての接地部位が離床する直前から第nノード要求モードをホールドモードに設定するようにしてもよい。そして、その後しばらくしたら第nノード要求モードがリセットモードに設定される。さらに、目標歩容上で第nノードに属する少なくとも1つの接地部位が接地する直前から、第nノード要求モードが準備完了モードに設定される。
次いで、S58において、推定許可条件を満足するか否かを判定し、その判定結果とノード要求モードに基づき各ノードのモードを最終的に決定する。決定される各ノードのモードは、前記準備完了モード、ホールドモード、およびリセットノードのいずれかである。前記ノード要求モードは、目標歩容上での各接地部位の接地、非接地に応じて決定したものであったが、S58では、各接地部位の実際の接地、非接地などを考慮して、各ノードのモードが決定される。
推定許可条件とは、以下のいずれかの式36、37を満足することである。この場合、式36、37のいずれも満足しないときには、推定許可条件が成立しないとする。
ここで、Fn_act_zは、実第n接地部位床反力(n=1,2,…,最終葉ノード番号)の並進力鉛直成分である。
推定許可条件とは、第nノード相対床高さ偏差を推定しても(床形状偏差を推定しても)、その推定値が発散しない条件である。ここで発散とは、後述するごとく推定された推定第n床高さ偏差Zfn_estm(床形状偏差の推定値)を用いて、実際の第n床高さ偏差の影響を打ち消すように修正目標接地部位位置姿勢を修正する補正動作を行った場合に、推定第n床高さ偏差Zfn_estmが増加し続け、第n接地部位が床から離れて行く(床からさらに浮いていく)状況を意味する。
Zfn_estmの推定が理想的に実行されるならば、所定の許容値Fn_minは、0で良いが、実際にはFn_actの検出誤差が生じ、それにより推定値が発散する場合がある。それを防ぐために、Fn_minは、Fn_actの検出誤差よりも十分に大きい値に設定する。
本実施形態では、推定許可条件とは、以上に述べた発散が生じない条件である。ただし、推定許可条件は、床形状の所要の推定精度を確保できる条件であってもよい。従って、実第n接地部位床反力Fn_actの並進力鉛直成分の代わりに、実第n接地部位床反力Fn_actの並進力成分の内の想定床面(あるいは推定床面(推定した実床面))に垂直な成分を用いても良い。
なお、床形状偏差(実床面と想定床面との形状偏差)を推定するだけで歩行動作に反映しない場合、すなわち、床形状偏差の推定値を用いて床形状偏差の影響を打ち消すように修正目標接地部位位置姿勢を修正しない場合には、床形状偏差の推定値が発散することはない。
推定許可条件を満足するか否かの判定結果とノード要求モードに基づき各ノードのモードを決定する。
第nノード要求モードが準備完了モードであり、かつ、推定許可条件を満足するならば、第nノードモードを準備完了モードとする。
第nノード要求モードが準備完了モードであり、かつ、推定許可条件を満足しないならば、第nノードモードをホールドモードとする。
第nノード要求モードがホールドモードであるならば、第nノードモードをホールドモードとする。
第nノード要求モードがリセットモードであるならば、第nノードモードをリセットモードとする。
従って、第nノードのモードは、要求モードが準備完了モードであり、且つ、推定許可条件を満足する場合に限って、最終的に準備完了モードの決定される。
次いで、S60〜S70において、すべてのノードに対し、ノードに対応する第nノード相対床高さ偏差(n=1,2,…,最終ノード番号)を推定する。
補足すると、特開平10−277969号公報に示したように、姿勢を制御可能な接地部位(足平)を持ち、接地部位における床傾斜偏差を推定することができるロボットの場合には、接地部位に対応した床傾斜偏差も推定することが望ましい。
このため、S60〜S70の処理は、接地部位の姿勢を制御可能な場合でも、床形状偏差の推定を行なうことができるように構成されている。
以下にS60〜S70の処理を具体的に説明すると、S62において、第nノードの子ノードの個数を判定する。このとき、子ノード数(子ノードの個数)が2個の場合には、S64において、その個数に対応した床形状偏差の推定処理である2子ノード用床形状推定処理が行なわれる。また、子ノード数が3個の場合には、S66において、その個数に対応した床形状偏差の推定処理である3子ノード用床形状推定処理が行なわれる。また、子ノード数が0個の場合には、S68において、該第nノードの接地部位が床反力モーメントを制御できるか否かを判定する。
子ノード数が0の場合の処理についてさらに説明すると、第nノードの子ノード数が0の場合、第nノードは葉ノードであり、第nノードは接地部位に対応している。この場合、上記の如くS68において、まず、第n接地部位が床反力モーメントを制御できるか否かを判定する。ここで、例えば、通常の2足歩行ロボットのように、接地部位として姿勢を制御可能な足平を持ち、脚にフリージョイントを含まないロボットの場合には、接地部位で床反力モーメントを発生することができる。ただし、本実施形態のロボット1(6脚ロボット)においては、各接地部位10がフリージョイントである球関節12に係合しているため、いずれの接地部位10も床反力モーメントを発生することができない。この場合には、子ノード数が0である第nノードに対する処理は実行されない。
一方、S68において、床反力モーメントを制御できると判定された場合には、S70において、接地部位床傾斜偏差推定処理が行なわれる。この処理は、各接地部位における床傾斜偏差を推定する処理である。この処理は、本出願人が先に提案した特開平10−277969号公報の中の床傾斜推定処理における足平床反力中心点を本実施形態における第n接地部位の目標床反力中心点に置き換えた処理である。したがって、本明細書では、これ以上の詳細説明を省略する。
次に、前記2子ノード用床形状推定処理を図45〜図48を参照して説明する。図45は2子ノード用床形状推定処理のサブルーチン処理を示すフローチャート、図46、図47はそれぞれ図45のS6404、S6408のサブルーチン処理を示すフローチャート、図48は図45のS6406およびS6410のサブルーチン処理を示すフローチャートである。
2子ノード用床形状推定処理では、図45のフローチャートに示されるように、S6400において、2個の子ノードをもつ第nノードのすべての子ノードのモード(図41のS58で決定されたモード)が判断される。その判断結果は、「すべて準備完了」、「すべてリセット」および、「その他(else)」の3つに分けられる。なお、以降の説明では、第nノードの2個の子ノードを第iノード、第jノードとする。
ここで、子ノードのモードが「すべて準備完了」と判断すると、S6402において、第nノードの子ノードの実ノード床反力の並進力鉛直成分Fi_act_z,Fj_act_zの合力Fn_z(=Fi_act_z+Fj_act_z)が所定の値Fn_min2より大きいか否かを判断する。Fn_zは、換言すれば、第nノードに属する全ての接地部位の実床反力の合力の並進力鉛直成分である。
S6402の判断結果がYESである場合には、S6404において、2つの子ノードを持つノード用のグループ内全推定処理(第nノードが持つ2つの子ノードのそれぞれのノード相対床高さ偏差を実質的に推定する処理)を行なう。この処理では、図46のフローチャート中に示す式に従って第nノードの2つの子ノードである第iノードおよび第jノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zj_rel_estmが求められる(更新される)。すなわち、Zi_rel_estmについて代表的に説明すると、Zi_rel_estmの前回制御周期での値Zi_rel_estm_pに、前記S54で求めた第jノード相対床高さ偏差補正量候補値Zi_inc_candを加えることで、新たな推定第jノード相対床高さ偏差Zi_rel_estmが求められる。第jノードについても同様である。
また、第nノードの2個の子ノードの床反力の合力Fn_zが所定の値Fn_min2より小さい場合(S6402の判断結果がNOである場合)には、床形状偏差の推定精度が下がり過ぎるので、実質的な推定処理を実行せずに、S6406において、2つの子ノードを持つノード用のグループ内全ホールド処理(第nノードが持つ2つの子ノードのそれぞれの推定ノード相対床高さ偏差を更新せずにホールドする処理)が行われる。そのホールド処理では、図48のフローチャート中の式で示す如く、第iノードおよび第jノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zi_rel_estmの値が、前回制御周期での値Zi_rel_estm_p、Zi_rel_estm_pに維持される。
次に、図45のS6400で、2個の子ノードのモードが「すべてリセット」と判断すると、S6408において、2つの子ノードを持つノード用グループ内全リセット処理(第nノードが持つ2つの子ノードのそれぞれの推定ノード相対床高さ偏差をリセットする処理)が行なわれる。そのリセット処理では、図47のフローチャート中の式に従って第iノードおよび第jノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zi_rel_estmが0に徐々に近づいていくように更新される。なお、同式中のΔT、Testmの意味は、前記式35のものと同じである。
このリセット処理は、より一般的に言えば、Zi_rel_estm,Zj_rel_estmを、それらの重み付き平均値が0という条件、すなわちWi*Zi_rel_estm+Wj*Zj_rel_estm=0を満足しつつ、それぞれZi_rel_estm_p,Zj_rel_estm_pよりも0に近い値に決定するという処理である。なお、このリセット処理は、一次遅れ要素を含むため、ノード相対床高さ偏差が完全に0に戻るためには無限時間を要する。そこで、本出願人が先に提案した有限整定関数発生器(特開平5−324115号公報)を用いて、ノード相対床高さ偏差を徐々に0にリセットするようにしてもよい。
また、図45のS6400で、2個の子ノードのモードが「その他」である場合、すなわち、「すべて準備完了」、「すべてリセット」のいずれでもない場合(例えば2個の子ノードのモードがすべてホールドモードである場合)には、S6406と同じ処理(図48を参照)がS6410で実行される。
以上のように、第nノードの2個の子ノードのモードがすべて準備完了である場合で、且つ、ノード相対床高さ偏差の推定処理の発散が生じる恐れが無い場合にのみ、その2個の子ノードのノード相対床高さ偏差の実質的な推定処理が行なわれる。そして、子ノードのモードがすべて準備完了である場合であっても、推定処理の発散が生じる恐れがある場合には、2個の子ノードの推定ノード相対床高さ偏差の値が、ホールドされる。また、2個の子ノードの実ノード床反力がいずれも0となる状況、すなわち、第nノードに属するすべての接地部位10に実床反力が作用しない状況では、2個の子ノードのノード相対床高さ偏差は、徐々に0になるようにリセットされる。
次に、図41のS66の3子ノード床形状推定処理を図49〜図55を参照して説明する。図49は3子ノード用床形状推定処理のサブルーチン処理を示すフローチャート、図50、図51はそれぞれ図49のS6604、S6608のサブルーチン処理を示すフローチャート、図52は図49のS6606、S6614およびS6618のサブルーチン処理を示すフローチャート、図53、図54はそれぞれ図49のS6612、S6616のサブルーチン処理を示すフローチャートである。
3子ノード用床形状推定処理では、図49のフローチャートに示されるように、S6600において、3個の子ノードをもつ第nノードのすべての子ノードのモード(図41のS58で決定されたモード)が判断される。その判断結果は、「すべて準備完了」、「すべてリセット」、「2つの子ノードのみ準備完了」、「1つの子ノードのみホールドで、残りがリセット」、「2つの子ノードのみホールドで、残りがリセット」、および「その他(else)」の6つに分けられる。
ここで、図49のフローチャートでは、3子ノード用床形状推定処理をより一般化して説明するために、前記第2実施形態で説明した如く、各中間ノード(第145ノード、第236ノード)に属する接地部位10のすべてが同時に接地したり離床する場合だけでなく、各中間ノードの接地部位のうちのいずれかが接地し、その他の接地部位が離床するようにロボットの目標歩容を生成する場合についても考慮している。この場合、子ノードが2つの時と違い、3つの子ノードのモードが、「2つの子ノードのみ準備完了」、「1つの子ノードのみホールドで、残りがリセット」、もしくは「2つの子ノードのみホールドで、残りがリセット」の場合も考慮する必要がある。なお、以降の説明では、第nノードの3個の子ノードを第iノード、第jノード、第kノードとする。
ここで、子ノードのモードが「すべて準備完了」と判断すると、S6602において、第nノードの子ノードの実ノード床反力の並進力鉛直成分Fi_act_z,Fj_act_z,Fk_act_zの合力Fn_z(=Fi_act_z+Fj_act_z+Fk_act_z)合力が所定の値Fn_min2より大きいか否かを判断する。Fn_zは、換言すれば、第nノードに属する全ての接地部位の実床反力の合力の並進力鉛直成分である。
S6602の判断結果がYESである場合には、S6604において、3つの子ノードを持つノード用グループ内全推定処理(第nノードが持つ3つの子ノードのそれぞれのノード相対床高さ偏差を実質的に推定する処理)を行なう。この処理では、図50のフローチャート中に示す式に従って第nノードの3つの子ノードである第iノード、第jノードおよび第kノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zj_rel_estm、Zk_rel_estmが求められる(更新される)。すなわち、Zi_rel_estmについて代表的に説明すると、Zi_rel_estmの前回制御周期での値Zi_rel_estm_pに、前記S54で求めた第iノード相対床高さ偏差補正量候補値Zi_inc_candを加えることで、新たな推定第iノード相対床高さ偏差Zi_rel_estmが求められる。第jノード、第kノードについても同様である。
また、S6602の判断結果がNOである場合には、床形状偏差の推定精度が下がり過ぎるので、実質的な推定処理を実行せずに、S6606において、3つの子ノードを持つノード用のグループ内全ホールド処理(第nノードが持つ3つの子ノードのそれぞれの推定ノード相対床高さ偏差を更新せずにホールドする処理)が行われる。そのホールド処理では、図52のフローチャート中の式で示す如く、第iノード、第jノードおよび第kノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zj_rel_estm、Zk_rel_estmの値が、前回制御周期での値Zi_rel_estm_p、Zj_rel_estm_p、Zk_rel_estmに維持される。
また図49のS6600で、3個の子ノードのモードが「すべてリセット」と判断すると、S6608において、3つの子ノードを持つノード用グループ内全リセット処理(第nノードが持つ3つの子ノードのそれぞれの推定ノード相対床高さ偏差をリセットする処理)が行われる。そのリセット処理では、図51のフローチャート中の式に従って第iノード、第jノードおよび第kノードのそれぞれの推定ノード相対床高さ偏差Zi_rel_estm、Zj_rel_estm、Zk_rel_estmが0に徐々に近づいていくように更新される。なお、同式中のΔT、Testmの意味は、前記式35のものと同じである。
このリセット処理はより一般的に言えば、Zi_rel_estm,Zj_rel_estm,Zk_rel_estmを、それらの重みつき平均値が0という条件、すなわちWi*Zi_rel_estm+Wj*Zj_rel_estm+Wk*Zk_rel_estm=0を満足しつつ、それぞれZi_rel_estm_p,Zj_rel_estm_p,Zk_rel_estm_pよりも0に近い値に決定するという処理である。なお、Zi_rel_estm_p,Zj_rel_estm_p,Zk_rel_estm_pを0にリセットするために、前記有限整定関数発生器(特開平5−324115号公報)を用いてもよい。
また、図49のS6600で、3個の子ノードのモードが「2つの子ノードのみ準備完了」と判断すると、第nノードの子ノードの実ノード床反力の合力(第nノードに属するすべての接地部位10の実床反力の合力)の並進力鉛直成分Fn_zが所定の値Fn_min2より大きいか否かをS6610で判断する。
この判断結果がYESである場合には、S6612において、3つの子ノードを持つノード用グループ内部分推定処理(第nノードが持つ3つの子ノードのそれぞれのノード相対床高さ偏差を実質的に推定する処理)が行われる。この処理は、図53のフローチャートに示す如く実行される。なお、ここでは、第iノードが準備完了モードでなく、第jノードおよび第kノードが準備完了モードであるとする。
まず、S66120において第iノードのモードが判断される。この判断結果がホールドモードである場合には、S66122において、新たな第iノード相対床高さ偏差補正量候補値Zi_inc_cand’を0に決定し、リセットモードである場合には、S66124において、図中の式により、新たな第iノード相対床高さ偏差補正量候補値Zi_inc_cand’を決定する。S66124で決定されるZi_inc_cand’は、Zi_rel_estm_pを徐々に0に近づけるための第iノード相対床高さ偏差補正量候補値である。なお、S66124の式中のΔT、Testmの意味は、前記式35のものと同じである。補足すると、S66124でZi_inc_cand’を決定するとき、前記有限整定関数発生器(特開平5−324115号公報)を用いてもよい。
次いで、S66126において、図中の式に従って、新たな第jノード相対床高さ偏差補正量候補値Zj_inc_cand’および新たな第kノード相対床高さ偏差補正量候補値Zk_inc_cand’を決定する。
すなわち、Wi*Zi_inc_cand’+Wj*Zj_inc_cand’+Wk*Zk_inc_cand’=0という条件(Zi_inc_cand’,Zj_inc_cand’,Zk_inc_cand’の重み付き平均値が0という条件)と、Zj_inc_cand’−Zj_inc_cand=Zk_inc_cand’−Zk_inc_candという条件を満足するようにZj_inc_cand’,Zk_inc_cand’を決定する。
次いで、S66128において、上記の如く決定されたZi_inc_cand,Zj_inc_cand,Zk_inc_cand’をそれぞれ第iノード、第jノード、第kノードの相対床高さ偏差の前回制御周期での値Zi_rel_estm_p,Zj_rel_estm_p,Zk_rel_estm_pに加えることで、新たなZi_rel_estm,Zj_rel_estm,Zk_rel_estmが決定される。
このようにZi_rel_estm,Zj_rel_estm,Zk_rel_estmを決定することで、Wi*Zi_rel_estm+Wj*Zi_rel_estm+Wk+Zk_rel_estm=0を満足しつつ、Zj_rel_estm_Zk_rel_estmがZj_inc_cand−Zk_inc_candに近づくようにZi_rel_estm,Zi_rel_estm,Zk_rel_estmが決定されることとなる。
また、図49のS6610の判断結果がNOである場合には、床形状偏差の推定精度が下がり過ぎるので、実質的な推定処理を実行せずに、S6614において、前記S6606と同じ処理(図52を参照)が実行される。
また図49のS6600で、3個の子ノードのモードが「1つの子ノードのみホールドで、残りがリセット」と判断すると、S6616において、1つの子モードのみホールドで、残りがリセットの場合に対応する処理が実行される。その処理で、図54のフローチャート中に示す式によって、新たなノード相対床高さ偏差Zi_rel_estm,Zj_rel_estm,Zk_rel_estmが決定される。なお、ここでは、第iノードのモードがホールドモードで、第jノードおよび第kノードのモードがリセットモードであるとする。また、同式中のは、ΔT、Testmの意味は、前記式35のものと同じである。
図54の処理は、より一般的には、Zi_rel_estmを0に決定し、Zj_rel_estm,Zk_rel_estmを、Wi*Zi_rel_estm+Wj*Zj_rel_estm++Wk*Zk_rel_estm=0(Zi_rel_estm,Zj_rel_estm,Zk_rel_estmの重み付け平均値が0であるという条件)を満足しつつ、Zj_rel_estm_p,Zk_rel_estm_pよりも0に近い値に決定する処理である。補足すると、第jノードおよび第kノードのモードが共にリセットモードになる時点までに、それらのノードの重みWj,Wkは0となっているはずである。従って、重みWi,Wj,Wkの和が1であるという条件から、この時点までにWiが1となっており、また、Wi*Zi_rel_estm+Wj*Zj_rel_estm+Wk*Zk_rel_estm=0であるから、この時点までに、Zi_rel_estmは0になっている。このため、第iノードのZi_rel_estmの値をホールドするということは、その値を0に維持するということである。そこで、図54の処理では、Zi_rel_estmの値を0に決定するようにしている。
なお、Zj_rel_estm,Zk_rel_estmを徐々に0にリセットする処理では、前記有限整定関数発生器(特開平5−324115号公報)を用いてもよい。
更に図49のS6600で、子ノードのモードが「2つの子ノードのみホールドで、残りがリセット」と判断すると、S6618において、2つの子モードのみホールドで、残りがリセットの場合の処理が行われる。その処理では、図55のフローチャート中の式に従って、新たなノード相対床高さ偏差Zi_rel_estm,Zj_rel_estm,Zk_rel_estmが決定される。なお、ここでは、第iノードおよび第jモードのモードが共にホールドモードで、第kノードのモードがリセットモードであるとする。また、同式中のΔT、Testmの意味は、前記式35のものと同じである。
図55の処理は、より一般的には、Zi_rel_estm,Zj_rel_estmをそれぞれ前回制御周期での値にホールドし、Zk_rel_estmを、Wi*Zi_rel_estm+Wj*Zj_rel_estm+Wk*Zk_rel_estm=0(Zi_rel_estm,Zj_rel_estm,Zk_rel_estmの重み付け平均値が0であるという条件)を満足しつつ、Zk_rel_estm_pよりも0に近い値に決定する処理である。補足すると、第kモードがリセットモードになる時点までに、Wkは0となっている。
なお、Zk_rel_estmを徐々に0にリセットする処理では、前記有限整定関数発生器(特開平5−324115号公報)を用いてもよい。
更に図49のS6620で「その他」と判断した場合(例えば3個の子ノードのモードがすべてホールドモードである場合)には、S6620において、前記S6606と同じ処理(図52を参照)が実行される。
以上のように、第nノードの3個の子ノードのモードのうち、2つ以上の子ノードのモードが準備完了である場合で、且つ、ノード相対床高さ偏差の推定処理の発散が生じる恐れが無い場合にのみ、その2個以上の子ノードのノード相対床高さ偏差の実質的な推定処理が行なわれる。そして、2つ以上の子ノードのモードが準備完了である場合であっても、推定処理の発散が生じる恐れがある場合には、3個の子ノードの推定ノード相対床高さ偏差の値が、ホールドされる。
以上のごとく、図41のS60〜S66では、推定第nノード相対床高さ偏差Zn_rel_estm(n=1,2,…,最終ノード番号)が決定される。なお、根ノードの相対床高さ偏差は0である。
図41のフローチャートの処理では、最後に、S72において、第nノード(n=1,2,…,最終葉ノード番号)のすべての先祖ノードの推定相対床高さ偏差と推定第nノード相対床高さ偏差との和を求め、求めた和を推定第n接地部位床高さ偏差(推定第n床高さ偏差)Zfn_estmとする。
以上が、図40における床高さ偏差の推定処理のサブルーチン処理である。
次に図35の説明に戻って、上述のように床形状推定器130で逐次求められた推定第n床高さ偏差Zfn_estm(n=1,2,…,最終葉ノード番号)は、加算器132により、各接地部位10の修正目標接地部位位置姿勢に加算され、これにより、床形状偏差補償入り修正目標接地部位位置姿勢が求められる。そして、この床形状偏差補償入り修正目標接地部位位置姿勢が修正目標接地部位位置姿勢の代わりに、前記機構変形補償入り修正目標接地部位位置姿勢算出部114hへ入力される。
以上の説明した床形状推定器130および加算器132を含む制御装置50の処理を該制御装置50の制御周期毎に繰り返し実行することにより、推定第n床高さ偏差Zfn_estmが実際の第n床高さ偏差に収束する。また、各目標接地部位位置姿勢は、その接地部位に対応する推定第n床高さ偏差Zfn_estmに応じて修正され、実際の第n床高さ偏差が実床反力に及ぼす影響を吸収する。
尚、すべての第n接地部位(n=1,2,…,最終葉ノード番号)が接地しているならば、第n接地部位の実際の接地面上における目標第n接地部位床反力中心点Qnに相当する点は、実第n床接点Dn_actに一致するはずである。従って、前記瞬間第nノード相対床高さ偏差Zn_rel’は、変動しないはずである。しかし、実際にはロボット1の機械系や制御系の振動および電気的なノイズにより、前記床形状推定器130の前記した計算アルゴリズムによって得られた瞬間第nノード相対床高さ偏差Zn_rel’は、激しく変動する。従って、瞬間第nノード相対床高さ偏差をそのまま推定第nノード相対床高さ偏差として用いて、これを基に推定第n床高さ偏差Zfn_estmを求め(すなわち第nノード(n=1,2,…,最終葉ノード番号)のすべての先祖ノードの瞬間相対床高さ偏差と瞬間第nノード相対床高さ偏差との和をもって推定第n床高さ偏差Zfn_estmとし)、さらに図35に示すように、推定第n床高さ偏差Zfn_estmを修正目標接地部位位置姿勢に加算したものを機構変形補償入り修正目標接地部位位置姿勢算出部114hへ入力させると、ロボット1の接地部位10は発振するかあるいは激しく振動する。
ところで、前記2つの子ノードを持つノード用グループ内全推定処理、3つの子ノードを持つノード用グループ内全推定処理、3つの子ノードを持つノード用グループ内部分推定処理では、瞬間第nノード相対床高さ偏差Zn_rel’から推定第nノード相対床高さ偏差Zn_rel_estmまでの伝達関数は、1次遅れのローパスフィルタになる。即ち、推定第nノード相対床高さ偏差Zn_rel_estmは瞬間第nノード相対床高さ偏差Zn_rel’にローパスフィルタを通したものとなる。従って、推定第nノード相対床高さ偏差Zn_rel_estmを基に求めた推定第n床高さ偏差Zfn_estmを図35に示すように修正目標接地部位位置姿勢に加算しても、各接地部位10の発振や振動を生じ難くなる。これにより、各接地部位10の発振や振動を防止することができる。
ちなみに、本実施形態では、上記ローパスフィルタの時定数はTestmである。なお、本実施形態で説明した床形状推定器130の処理以外にも、瞬間第nノード相対床高さ偏差Zn_rel’から推定第nノード相対床高さ偏差Zn_rel_estmまでの伝達関数がローパスフィルタになるように構成することは可能である。
次いで、この実施の形態における床形状推定器130の特徴を説明する。
ロボット1の姿勢安定化制御のために必要な各ノード補償モーメントを発生させようと、各ノード補償角を変化させ、最終的な目標接地部位位置姿勢である機構変形補償入り修正目標接地部位位置姿勢を変更させても、各接地部位10が実際に接地している限り、第n接地部位10の実際の接地面上における目標第n接地部位床反力中心点Qnに相当する点は、実第n床接点Dnactに一致したまま動かない。その代わりに、各脚のコンプライアンス機構42などが変形したり、上体24の位置姿勢が変化する。即ち、機構変形補償入り修正目標接地部位位置姿勢を変更させた分を打ち消すように、コンプライアンス機構42などが変形したり、上体24の位置姿勢が変化する。
本実施形態における床形状推定器130は、機構変形補償入り修正目標接地部位位置姿勢から推定第n床高さ偏差Zfn_estm(n=1,2,…,最終葉ノード番号)を算出するまでに、実床反力を基に機構コンプライアンスモデル134によって算出されたコンプライアンス機構42などの変形量と上体姿勢傾斜偏差θberrとによる推定第n床高さ偏差Zfn_estmへの影響を打ち消しているので、上体姿勢傾斜偏差が生じたり、機構変形補償入り修正目標接地部位位置姿勢が変動しても、推定第n床高さ偏差Zfn_estmはその影響を受けない。
これは、床形状の推定処理が、ロボット1のコンプライアンス制御や姿勢制御から干渉を受けないことを意味する。従って、推定第n床高さ偏差Zfn_estmを図35に示すように修正目標接地部位位置姿勢に加算しても、ロボット1の制御系の安定余裕(発振のし難さ)はほとんど低下しない。すなわち、コンプライアンス制御、姿勢制御、および床形状の推定処理と、床形状偏差の推定値を用いたロボット1の目標歩容の補正動作とを同時に行なっても、各制御・処理が干渉し合って発振することはほとんどない。すなわち、簡単に言えば、床形状偏差の複数のパラメータを同時に推定しながら、床形状偏差が床反力に及ぼす影響を打ち消すための脚の補償動作(接地部位の位置姿勢の修正動作)も同時に実行することができる。さらには、姿勢制御のための脚の補償動作(接地部位の位置姿勢の修正動作)も同時に実行することができる。
また、各接地部位10の推定第n床高さ偏差Zfn_estmを図35に示すように修正目標接地部位位置姿勢に加算すると、実際に第n床高さ偏差が存在していても、その影響を打ち消すことができるので、実全床反力は、定常的にはロボット1が想定床を移動している場合と同一になる。しかも、推定第n床高さ偏差Zfn_estmの推定と、推定第n床高さ偏差Zfn_estmを用いた修正目標接地部位位置姿勢の修正とは制御周期毎に逐次実行されるので、床形状が途中で変化しても、変化後の第n床高さ偏差を推定し、その推定値に基づいて床形状の変化の影響を打ち消すことができる。ただし、床形状推定器130には前述したようにローパスフィルタが含まれるので、各接地部位10が接地した直後や床形状が途中で変化したときには、過渡的には、実全床反力は、床形状偏差の影響を受ける。しかし、その後、時定数Testmでその影響が減衰する。
また、以下の特徴もある。
1)床形状偏差が大きくても制御が破綻し難い。これは、階層型コンプライアンス制御は微小な補償角に限定した近似を行っていないからである。
2)床形状偏差の推定精度が高い。
3)ロボットの姿勢安定化制御との干渉による発振が生じにくいので、推定処理の時定数を短くすることができる。それによって、床形状偏差が床反力に及ぼす影響を打ち消すための脚の補償動作の応答性を高めることができるので、床形状偏差が床反力に及ぼす過渡的な影響が短時間で解消される。
ロボットの移動時の1歩前の着地期(ある接地部位10が接地状態となる時期)での推定第n床高さ偏差と、当該1歩前の着地期の次の着地期での推定第n床高さ偏差との関係に相関がない場合には、本実施形態に示したように推定第n床高さ偏差を強制的に徐々に0に収束させるのが良い。しかし、例えば、想定床に考慮されていない実床面のうねりがゆったりとしていることが分かっているならば、前記関係にある程度の相関があると考えられる。この場合には、現在の着地期における推定第n床高さ偏差を、強制的に徐々に1歩前の着地期における推定第n床高さ偏差に1より小さい正の定数を乗じた値に収束させるようにしても良い。
さらに、1歩前の着地期での推定第n床高さ偏差だけでなく、複数歩前の着地期での推定第n床高さ偏差も用いて現在の着地期における推定第n床高さ偏差の収束目標値を決定しても良い。また、現在や1歩前や複数歩前の着地期における他のノードの推定第nノード床高さ偏差および推定第nノード床傾斜偏差も用いて収束目標値を決定しても良い。
本実施形態(第3実施形態)は上記の如く構成したので、従来技術では困難であった多くの接地部位を持つロボットにおいても、床形状の推定、具体的には、各接地部位に対応する床高さ偏差を同時に、換言すれば複合的に、精度良く推定することができる。さらに、ロボットの接地部位をその姿勢を制御可能に設け、床形状の推定処理において床高さ偏差だけでなく、床傾斜偏差も推定する場合には、床傾斜偏差も含めて同時に、精度良く推定することができる。
さらには、床形状の推定結果を基に目標接地部位位置姿勢軌道を修正することにより、床形状が想定していた形状と異なっていても、その影響を吸収して望み通りの床反力を発生させることができる。
特に、床形状偏差の推定値による補正がない階層型コンプライアンス制御で除去しきれなかった実床反力の制御目標値からの定常偏差を可能な限り零に近づけることができる。換言すれば床形状の偏差に起因する床反力の定常偏差を解消することができる。
また、床形状の推定精度が低下する恐れがある状況あるいはその推定値が発散する恐れがある状況では床形状の推定を中断するように構成したので、前記した作用効果に加え、推定値が不適切なものとなることがない。
尚、本実施形態に係るロボットの床形状推定装置130は前記した手法で床形状を推定すれば足り、推定値に基づいて運動を補正することは必須ではない。
[第4実施形態]
次に、本発明の第4実施形態に係る移動ロボットの制御装置(特い床形状推定装置)を説明する。第4実施形態においては、それを簡単に説明すれば、前記第3実施形態の図40に示した床形状推定器130のブロック線図を等価変換したものである。すなわち、直前に推定した床形状の推定値(前回制御周期での推定値などの該推定値の過去値)と、最終的に修正され決定された目標歩容(詳しくはコンプライアンス動作を含む機構変形補償入り修正目標接地部位位置姿勢)(もしくは実関節変位)と、実上体姿勢傾斜偏差θberrとを基に、各ノードの床反力を推定し、その推定値と各ノードの実床反力との差を基に、この差を0に近づけるように床形状の推定値の補正量候補値を決定し、床形状の推定が発散しないと判断されるならば、床形状の推定値の補正量候補値を基に、直前に推定した床形状の推定値を補正するようにした。この処理は、本出願人が先に提案した特開平10−277969号公報において、2足移動ロボットの各脚の足平の床反力中心点まわりの想定されるモーメントと実モーメントとの差が0に近づくように各足平に係る床傾斜を推定する手段、ならびに、全床反力中心点まわりの想定されるモーメントと実モーメントとの差が0に近づくように両脚間の干渉角を推定する手段を発展させた階層型の床形状推定手段に相当するものである。
このように本実施形態は、床形状推定器130の処理のみが、第3実施形態と相違するものであり、床形状推定器130以外の処理については説明を省略する。
図57は、本実施形態における床形状推定器130の機能的手段を示すブロック図である。この図57を参照して本実施形態における床形状推定器130を以下に説明する。
先ず、各接地部位10の機構変形補償入り修正目標第n接地部位位置姿勢(n=1,2,…,最終葉ノード番号)と、各接地部位10の目標接地部位位置から見た該接地部位10の目標第n接地部位床反力中心点と、前記姿勢傾斜偏差θberrとを基に、機構変形補償入り修正目標第n接地部位位置姿勢を、目標全床反力中心点を回転中心としてθberrだけ回転移動させてなる、回転後機構変形補償入り修正目標第n接地部位位置姿勢(n=1,2,…,最終葉ノード番号)を求める。求められた回転後機構変形補償入り修正目標第n接地部位位置姿勢(n=1,2,…,最終葉ノード番号)から、目標歩容上での想定第n床接地位置Dn(n=1,2,…,最終葉ノード番号)を減算し、第n接地部位干渉高さZn_intを求める。それを床形状推定器130に備えた機構コンプライアンスモデル(逆モデル)へ入力することによって、各接地部位10の床反力の推定値である推定第n接地部位床反力を求める。
なお、ここでの機構コンプライアンスモデルは、各接地部位干渉高さの互いの相対関係に応じて推定接地部位床反力の互いの相対関係を求めるものであり、絶対値に意味をもたない。また、第n接地部位の実床反力Fn_actの検出値がある閾値Fn_min3より小さい場合には、上記機構コンプライアンスモデルにおいても第n接地部位が接地していないものと想定する。
さらに、第n接地部位(n=1,2,…,最終葉ノード番号)の実床反力Fnactの検出値から、前記推定第n接地部位床反力を減算し、第n接地部位床反力推定誤差Ffn_estm_errを求める。この第n接地部位床反力推定誤差Ffn_estm_errは、力で表現されているため、換算値Cn(例えば、バネ定数の逆数のようなもの)によって高さ偏差に換算し、それを第n接地部位床高さ偏差補正量候補値Zfn_inc_candとして得る。なお、換算値Cnは、対角行列とは限らない。
次いで、求められた第n接地部位床高さ偏差補正量候補値Zfn_inc_candから、前記した「階層相対化処理」によって、階層相対化することで、第nノード相対床高さ偏差補正量候補値Zn_inc_cand(n=1,2,…,最終ノード番号)を求める。次に、床高さ偏差の推定処理のサブルーチン処理によって、第nノード相対床高さ偏差補正量候補値Zn_inc_candから、推定床高さ偏差(推定第n床高さ偏差)Zfn_estm(n=1,2,…,最終葉ノード番号)を求める。ここでの床高さ偏差の推定処理のサブルーチン処理は、図41のS56〜S72までの処理と同一である。
なお、特開平10−277969号公報に示したように、接地部位として姿勢を制御可能な足平を持ち、接地部位における床傾斜偏差を推定することができるロボットの場合には、図41のS70に関して説明した如く、接地部位床傾斜偏差推定処理を行なうのが望ましい。
ここで、第3実施形態と第4実施形態(本実施形態)とを比較する。第4実施形態は、簡単に言えば、第3実施形態の床形状推定器130のブロック線図を等価変換したものになっている。したがって、第4実施形態の作用効果は、第3実施形態の作用効果と同じである。また、第3実施形態と同様、床形状の推定値に基づいて運動を補正することは必須ではない。
尚、第3および第4実施形態において、床反力センサとして、分布圧センサを用いても良い。6軸力センサ34などの力センサよりも分布圧センサの方が実床反力による接地部位の変形をより細緻に推定することができるので、床形状推定の精度を向上させることができる。
さらには、本出願人による特許第3035051号公報の図1に示す如く、接地部位に接触センサを複数個配置(例えば接地部位の四隅に配置)し、その出力信号に基づいて接地部位がどちらの方向に浮きやすいかを判定しても良い。そして、接地していない接触センサが増々浮く方向での床形状の推定を中断したり、あるいは、全ての接触センサが浮いているときにも床形状の推定を中断するようにしてもよい。
[第5実施形態]
前記第1〜第4実施形態では、子ノードを持つノードの、該子ノードの総数が、3個以下の場合を例にとって説明したが、子ノードの数が4つ以上の場合にも、重み付き平均の概念を持ち込むことによって、以下に示すようにモーメントおよび傾斜角の概念を拡張できる。
目標値、実際値、偏差のいずれに関しても概念を拡張できるので、ここでは、目標値、実際値、偏差の区別をせず、一般的な接地部位床反力の組Fn(n=1,2,...)に対するモーメントを、以下のように拡張して、定義する。
第n接地部位の床反力の組Fn(n=1,2,...,最終葉ノード番号)を階層相対化して、第nノード相対床反力Fn_rel(n=1,2,...,最終ノード番号)を求める。
第nノードの子ノードの数をrとする。
第nノードの第j番目の子ノードの識別番号がaj(j=1,2,…,r)であるとする。
第nノードの第j番目の子ノードの重みが、Wj(j=1,2,…,r)であるとする。
第nノードの第j番目の子ノードの重みを第j要素として持つ列ベクトルをUWnとする。
すなわち、下式38のようにUWnを定義する。ここで「T」は、転置を意味し、行ベクトルの転置によって列ベクトルを表現することとする。
ベクトルUWnに直交する(すなわちベクトルUWnとの内積が0となる)r−1個の互いに独立なベクトルをR(1),R(2),…,R(r−1)とする。R(j)(j=1,2,…,r−1)は、r行1列の列ベクトルである。なお、R(j)(j=1,2,…,r−1)は、演算の容易さと制御精度を考慮すると、互いに直交することが望ましい。R(j)を第j列(j=1,2,…,r−1)とする行列をHnとする。Hnは、r行r−1列の行列である。
第nノードの第j番目の子ノードの相対床反力Faj_relを第j要素(j=1,2,…,r)とする列ベクトルを第nグループ相対床反力ベクトルFn_rel_cとする。
すなわち、次式39により、Fn_rel_cを定義する。
Fn_rel_cは、r行1列の列ベクトルである。
次式40を満足する列ベクトルMn_expを第nノード拡張床反力モーメントと呼ぶ。
Mn_expは、r−1行1列の列ベクトルである。
以上のように、接地部位床反力の組Fn(n=1,2,…)に対し、第nノード拡張床反力モーメントMn_expを定義する。
すなわち、接地部位床反力Fn(n=1,2,…)を基に、階層化したノード相対床反力Fn_rel(n=1,2,...)を求め、さらに第nノードのすべての子ノードaj(j=a1,a2,…,ar)の相対床反力を要素とするベクトル(Fa1_rel,Fa2_rel,…,Far_rel)Tを、第nノードのすべての子ノードの重みを要素とするベクトル(Wa1,Wa2,…,War)Tに直交するある所定の互いに独立なベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの線形結合の係数を要素とするベクトルを、第nノード拡張床反力モーメントMn_expと呼ぶ。
なお、第nノード拡張床反力モーメントMn_expの第j番目要素(第j行目要素)を第nノード拡張床反力モーメント第j成分と呼ぶ。
また、実接地部位床反力の組Fn(n=1,2,…)に対する第nノード拡張床反力モーメントを実第nノード拡張床反力モーメントMn_exp_actと呼ぶ。
また、目標接地部位床反力の組Fn(n=1,2,…)に対する第nノード拡張床反力モーメントを目標第nノード拡張床反力モーメントMn_exp_refと呼ぶ。目標第nノード拡張床反力モーメントは、通常0ベクトルに設定される。
また、接地部位床反力偏差の組Fn(n=1,2,…)に対する第nノード拡張床反力モーメントを第nノード拡張床反力モーメント偏差Mn_exp_errと呼ぶ。
同様に、一般的な接地部位高さの組Zn(n=1,2,...)に対する傾斜角を、以下のように拡張して、定義する。
接地部位高さの組Zn(n=1,2,…,最終葉ノード番号)を階層相対化して、第nノード相対高さZn_rel(n=1,2,…,最終ノード番号)を求める。
第nノードの第j番目の子ノードの相対高さZaj_relを第j要素(j=1,2,…,r)とする列ベクトルを第nノード相対高さベクトルZn_rel_cとする。
すなわち、次式41によりZn_rel_cを定義する。
次式42を満足する列ベクトルθn_expを第nノード拡張床反力傾斜角と呼ぶ。
θn_expは、r−1行1列の列ベクトルである。
すなわち、接地部位高さZn(n=1,2,…)を基に、階層化したノード相対高さZn_rel(n=1,2,…)を求め、さらに第nノードのすべての子ノードaj(j=1,2,…,r)の相対高さを要素とするベクトル(Za1_rel,Za2_rel,…,Zar_rel)Tを、第nノードのすべての子ノードの重みを要素とするベクトル(Wa1,Wa2,…,War)Tに直交する前記所定の互いに独立なベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの線形結合の係数を要素とするベクトルを、第nノード拡張傾斜角θnと呼ぶ。
上記のように定義された拡張床反力モーメントと拡張傾斜角とを用いることにより、第aノードの子ノードの数が4つ以上の場合にも、コンプライアンス制御および床形状推定の処理は、ほとんどそのまま拡張される。以下にその例を第5の実施形態として説明する。なお、第5実施形態は、ロボットの制御装置の機能的構成は、前記図2に示したものと同様とする。また、この場合、階層型コンプライアンス動作決定部は補償全床反力モーメント分配器、補償角決定部、および床形状推定器以外の機能的構成は、前記図35を参照して説明したものと同様でよい。
[補償全床反力モーメント分配器の処理の拡張について]
例えば、階層型コンプライアンス動作決定部の中の補償全床反力モーメント分配器の処理は、次のように拡張される。
ロボットの姿勢を復元させるために目標第nノード拡張床反力モーメントMn_exp_rel(通常0)に付加的に発生すべき拡張床反力モーメントを第nノード補償拡張床反力モーメントMn_exp_dmdと呼ぶ。
第nノード補償拡張床反力モーメントMn_exp_dmdと第nノード補償床反力モーメントMn_dmdの間には、次式43の関係がある。ただし、Cn_mechは、各目標ノード床反力中心点とロボットの機構のコンプライアンス特性とによって決定される所定の係数行列(2行r−1列の行列)である。
一方、前記式10を一般化すると次式44になる。
なお、Σは、全ての第nノードについての総和を意味する。
よって、補償全床反力モーメント分配器では、式43と式44を満足するように、第nノード補償拡張床反力モーメントMn_exp_dmd(n=1,2,…)および第nノード補償床反力モーメントMn_dmdを決定すれば良い。
[補償角決定部(θn決定部)の処理の拡張について]
第5実施形態における各第nノードの補償角決定部の処理は、例えば第3実施形態のθ145決定部(図25および図33を参照)の処理において、M145actを求めるまでの処理を、各接地部位の実床反力を基に前記の実第nノード拡張床反力モーメントMn_exp_actを求める処理に置き換え、145をnに置き換え、図33中の補償フィルタ、ローパスフィルタおよびゲインKnの次元を第nノードの子ノード数から1を減じた数に拡張すれば良い。上記の置き換えを行なった処理によって、第nノードの補償角θnを求めることができる。
[拡張床反力モーメントを用いた床形状推定ついて]
以下のように、床形状推定器の処理の一部に拡張床反力モーメントの概念を用いた手法を組み込んでも良い。
すなわち、前記第4実施形態で説明した床形状推定器の図56に示した処理の代わりに、図57のブロック図で示す処理を用いて、床形状偏差を推定する。
図57を参照して、この処理を説明すると、まず、前記図56で説明した如く算出される推定第n接地部位床反力と、第n接地部位の実床反との差(各ノード毎の差の組)から、拡張モーメントの定義にしたがって、第n接地部位床反力推定誤差Ffn_estm_err(n=1,2,...)に対応する第nノード拡張床反力モーメント推定誤差Mn_exp_estm_errを求める。なお、第nノード拡張床反力モーメント推定誤差を決定する上で必要となる前記ベクトルR(j)は、各ノードの重みを基に決定される。
次いで、次式45のように、所定の係数マトリックスKn_cmplを第nノード拡張床反力モーメント推定誤差Mn_exp_estm_errに乗算することにより、第nノード拡張傾斜角の補正量の候補値である第nノード拡張傾斜角補正量候補値θn_inc_candを求める。
なお、Kn_cmplは、対角行列とは限らない。
次いで、ベクトルR(j)(j=1,2,…r−1)に対する係数をθn_inc_candの第j要素として、ベクトルR(j)を線形結合したベクトルを求め、これをもって、第nノード相対床高さ偏差の補正量の候補値である第nノード相対床高さ偏差補正量候補値Zn_inc_candとする。
すなわち、次式46によって、Zn_inc_candを求める。
以上のごとく、第nノード床反力推定誤差Fn_estm_errから第nノード相対床高さ偏差補正量候補値Zn_inc_candを求めるまでの処理を図56のものから図57のものに置き換えればよい。
上記以外の図57の演算処理は、図56の演算処理と同様である。
また、第5実施形態における床高さ偏差の推定処理のサブルーチン処理では、第nノードの子ノード数が4以上の場合の処理が必要となる。この処理は、前記3子ノード用床形状推定処理(図41を参照)を拡張し、該3子ノード用床形状推定処理と同様に、いずれかの子ノードjに対応する接地部位が浮いて発散してしまいそうな場合には、推定第jノード相対床高さ偏差Zj_rel_estmを前回値Zj_rel_estm_pに維持する(第jノード相対床高さ偏差補正量候補値Zj_inc_candを0とする)。また、それ以外の子ノードの推定ノード相対床高さ偏差Zk_rel_estmを前回推定第kノード相対床高さ偏差Zk_rel_estm_pとZn_inc_candとの和にある所定のバイアス値cを加えた値に近づくように決定する。ただし、バイアス値cは、第nノードのすべての子ノードの推定ノード相対床高さ偏差の重み付き平均が0になるように決定される。
以上のごとく、床形状の推定処理を、4個以上の子ノードを持つノードがある場合にも、拡張することができる。ただし、このような処理を行なうよりは、4個以上の子ノードを持たないように、階層構造を決定した方が、演算処理は容易となる。
[第6実施形態]
次に、本発明の第6実施形態に係る移動ロボットの制御装置を図58〜図65を参照して説明する。図58および図59は、第6実施形態に係る脚式移動ロボット51(本実施形態では2足移動ロボットとする)が後述する膝関節56の部位を床に付けた状況(ひざまずいた状況)を側面示で示している。なお、図58ではロボット51を線状のリンクの連結体として模式化して示している。
本実施形態に係わる発明目的は、膝、肘、胴体など、ロボットの脚や腕の先端部以外の部分が床あるいは床に固定(設置)された対象物(床の延長物と考えられる対象物)と接触する状態において、該対象物を含む床から受ける反力(外力)を操作して、ロボットの姿勢を安定に制御することにある。
より具体的には、ロボットがひざまずいた状態やいすに座った状態における姿勢制御を可能とすることにある。
従来の公知の人間型ロボットには、例えば膝には、床反力を検出するセンサが備えられておらず、膝に作用する床反力を制御することはできなかった。例えば従来の人間型ロボットでは、図58および図59のようにロボットをひざまずかせた状態では、左右の膝に作用する床反力は、床の凹凸に依存(支配)され、また、床の凹凸に応じて、脚の関節角を調節することが行われていなかった。このため、床の凹凸によって、ロボットの床との接地部位が揺れるなど、その接地部位の接地状態が不安定なものとなる場合もあった。そして、このような状態では、ロボットの動作や作業を行おうとするとロボットの姿勢が不安定にある場合があった。
また、例えばロボットがひざまずいた状態から立ち上がる場合に、実際の床の傾きが目標歩容で想定していた傾きと異なっていた場合には、ロボットの重心位置が適切に制御されず、ロボットの上体の姿勢が傾いたまま立ち上がろうとしてしまうために、該ロボットが転倒してしまう恐れもあった。
また、ロボットが椅子に座ったまま、その姿勢を安定に保ちつつ動作や作業を行う場合において、椅子から立ち上がる時、あるいは椅子に座る時に、ロボットの姿勢を適切な姿勢に復元できるようにするために、ロボットの各脚の足平に作用する床反力のみならず、椅子からロボットの臀部に作用する反力も適切に制御できることが望ましい。
なお、概念的には、椅子などのように床に固定設置された対象物も床の一部と考えれば、前記反力も広義の床反力であると言える。
第6実施形態は、以上のごとき従来方式の問題点に鑑み、前記問題点を解消し、移動ロボットの膝、肘、胴体、臀部など、脚や腕の先端部以外の部分が、床あるいは床の延長物と考えられる対象物と接触して反力を受ける状態において、前記した階層型コンプライアンスの制御を使用しつつ、ロボットの脚や腕の先端部に作用する反力のみならず、脚や腕の先端部以外の部分に作用する反力をも適切に制御し、移動ロボットの姿勢を安定に保つことを可能としたものである。
以下に、図58および図59に示すロボット(2足移動ロボット)51を例にとって、第6実施形態をより具体的に説明する。
まず、ロボット51の機構的構成を説明すると、このロボット51では、上体(基体)53の下端部から2つの脚(リンク機構)52(一方の脚は図示を省略している)が延設されている。また、上体53の上部から2つの腕(リンク機構)54(一方の腕は図示を省略している)が延設されている。各脚52は、上体53側の基端部(上体53との連結箇所)と、中間部と、先端部とにそれぞれ電動モータなどのアクチュエータにより動作する股関節55、膝関節56、足首関節57を備え、足首関節57を介して各脚52の先端部に足平58が連結されている。同様に、各腕54は、上体53側の基端部(上体53との連結箇所)と、中間部と、先端部とにそれぞれ電動モータなどのアクチュエータにより動作する肩関節59、肘関節60、手首関節61を備え、手首関節61を介して手62が各腕54の先端部に連結されている。この例では、各脚2の各関節55、56、57はそれぞれ、例えば3自由度、1自由度、2自由度をもつ関節となっており、足平58は上体53に対して6自由度を有する。また、各腕54の肩関節59、肘関節60、手首関節61はそれぞれの自由度が、上体53に対して手62が6自由度以上の自由度を持つように構成されている。
なお、ロボット51の上体53には、図示を省略するが、前記第1実施形態などと同様の制御装置50が搭載されている。また、上体53の上端には、頭部63も設けられている。
このロボット1では、図58および図59のようにロボット1をひざまずかせた状態(特定姿勢状態)では、各脚52の足平58と各膝関節56の部位(より詳しくは、膝関節56の近傍で膝関節56と足首関節57とを連結するリンク(脛リンク)の表面部。以下、単に膝という)と、各腕54の手62とが接地部位となる。そして、本実施形態では、図59に示すように、接地部位である膝に床反力センサ90(荷重センサ)を備えている。この床反力センサ90の本体(センサ部)92とスポンジ等の柔軟な部材(弾性体)94とから構成され、本体92を膝(脚のリンク)に固定し、その本体92の外側を柔軟な部材(弾性体)94によって覆っている。なお、膝におけるコンプライアンス制御の精度を良くするために、膝を柔軟な部材94によって覆うだけでなく、その柔軟な部材94の表面(接地面)を丸く凸面状に形成することが望ましい。こうすることにより、ロボット51の目標運動の修正動作と床反力との関係の非線形性が小さくなるので、コンプラインス制御の制御特性が良くなる。なお、図示は省略するが、足平58と足首関節57とは6軸力センサなどの床反力センサとコンプラインス機構とを介して連結されている。同様に手62と手首関節61とは図示を省略する6軸力センサなどの床反力センサとコンプラインス機構とを介して連結されている。それらの連結構成は、公知のものでよい。
膝関節の接地部位の床反力センサ90としては、以下のいずれでも良い。
1)接地部位の床への接触面(接地面)に垂直な方向の並進力だけを検出するセンサ
2)接地部位の床への接触面(接地面)に垂直な方向の並進力だけでなく該接触面に垂直な方向以外の方向の並進力も検出するセンサ
3)分布圧センサ
4)並進力以外にモーメントも検出するセンサ(例えば6軸力センサ)
また、荷重を直接的に検出するものでなくとも、前記柔軟な部材94の変形(ひずみ)を検出する変位センサを用いても良い。
本実施形態においては、床反力センサ90として、上記2)のセンサを用いることとする。コンプライアンス制御の精度をより一層高めるためは、床反力センサ90として、上記3)または4)のセンサを用いれば良い。なお、膝の構造としては、本出願人が先に提案した特開2000−62760号公報に示すごとく、ばねを備えた保護パッド(膝の保護のためのパッド)に床反力センサを追加したものにしても良い。
本実施形態では、上記のようにひざまずいたロボット51に対して、図61に示す如く階層構造を設定している。すなわち、接地部位としての右足平58、左足平58、右膝、左膝、右手62、左手62をそれぞれ葉ノードである第1ノード、第2ノード、第3ノード、第4ノード、第5ノード、第6ノードに対応させる。また、第1ノードと第2ノードとを子ノードとして持つ第12ノード、第3ノードと第4ノードを子ノードとして持つ第34ノード、第5ノードと第6ノードを子ノードとして持つ第56ノード、並びに第12ノードと第34ノードを子ノードとして持つ第1234ノードを中間ノードとして設定した。さらに、第1234ノードと第56ノードを子ノードとして持つ第123456ノードを根ノードとして設定した。また、各ノードには、前記第1実施形態などと同様の方針によって、図示の如く、目標床反力中心点Qn(n=1,2,3,4,5,6,12,34,56,1234,123456)が対応づけられる。なお、根ノードである第123456ノードの目標床反力中心点Q123456は、目標全床反力中心点Pと同一である。
本実施形態では、制御装置50は、前記図2に示したものと同様の機能的構成を有するものとされている。
この場合、本実施形態における歩容生成装置100が出力する目標歩容のうちの目標運動の目標接地部位軌道は、各手62の目標位置姿勢軌道と各足平58の目標位置姿勢軌道と各膝の目標位置軌道とから構成される。この場合、歩容生成装置100は、想定した床面上で足平58と手62と膝が歩容に対する要求通りに接地するように、目標足平位置姿勢(目標第1、2接地部位位置姿勢)と目標手位置姿勢(目標第5、6接地部位位置姿勢)と目標膝位置(目標第3、4接地部位位置)を優先的に決定し、次いで目標ZMP(目標全床反力中心点)を各接地部位の目標接地点(あるいは目標接地線もしくは目標接地面)を含む最小凸多角形である支持多角形内に決定し、次いで、目標上体位置姿勢を、ロボット1の動力学モデルを使用して、目標足平位置姿勢と目標手位置姿勢と目標膝位置と目標ZMPとを満足するように決定する。
なお、頭部63が上体53に対して可動である場合には、その頭部63の目標位置姿勢軌道が目標運動に含まれる。
また、図2のロボット幾何学モデル(逆キネマティクス演算部)110の演算処理は、本実施形態では、後述するように、第1〜第3実施形態と異なる。
また、本実施形態では、階層型コンプライアンス動作決定部114は、その一部の処理手法が前記第1〜第3実施形態で説明したものと相違する。図62は、本実施形態の階層型コンプラインス動作決定部114の機能的構成を示している。この機能的構成の処理において、第1〜第3実施形態と相違する主な点を説明すると、補償全床反力モーメント分配器114aは、各中間ノードおよび根ノードのノード補償床反力モーメントだけでなく、葉ノードのうちの第nノード(n=1,2,5,6)のノード補償床反力モーメントMn_dmd、すなわち、目標第n接地部位床反力中心点(n=1,2,5,6)まわりの要求床反力モーメント(姿勢復元用の要求モーメント)も決定して出力する。これは、ロボット51では、接地部位としての足平58および手62にその目標床反力中心点まわりにモーメント発生できるからである。なお、これらの要求モーメントを含めたノード補償床反力モーメントMn_dmdの決定手法は、前記第1および第2実施形態で説明した手法と同じでよい。また、本実施形態では、補償全床反力モーメント分配器114aは、ノード補償床反力モーメントをそれぞれに対応する各ノードの目標床反力中心点まわりに発生させることによって修正される、目標第n接地部位床反力中心点(n=1,2,5,6)まわりの修正目標第n接地部位床反力モーメントMn_refmdfd(n=1,2,5,6)を、修正目標接地部位床反力の並進力成分Fn_refmdfd(n=1,2,3,4,5,6)と共に決定して出力する。これらは、機構変形補償量算出部114nで機構変形補償量を算出するために使用される。
また、補償角決定部(図62の仮想線で囲んだ部分)は、本実施形態では、各中間ノードおよび根ノードの補償角だけでなく、葉ノードのうちの第nノード(n=1,2,5,6)のノード補償角θnも決定して出力する。これらの第nノード補償角θn(n=1,2,5,6)を決定するθn決定部は、特開平10−277969号公報に示した足平補償角決定部と同様の処理によって、第nノード補償角θn(n=1,2,5,6)を決定する。なお、これらのノード以外の各中間ノードおよび根ノードの補償角θn(n=12,34,56,1234,123456)の決定手法は、前記第1および第2実施形態で説明した手法で同じでよい。
また、本実施形態における修正目標接地部位位置姿勢算出部114gは、前記第1および第2実施形態で説明した手法によって、各第nノード補償角θn(n=12,34,56,1234,123456)を基にしたノードの回転操作を合成することによって、目標接地部位位置を修正し、さらに、第nノード補償角θn(n=1,2,5,6)を基に、第n接地部位(n=1,2,5,6)の目標姿勢を修正し、これによって、各接地部位の修正目標接地部位位置姿勢を求める。
また、本実施形態では、床形状推定器130は、前記第3実施形態で説明した手法と同じ手法で推定第n床高さ偏差Zfn_estm(n=1,2,3,4,5,6)を求めることに加えて、第n接地部位の接地部位床傾斜偏差θfn(n=1,2,5,6)を推定する。この接地部位床傾斜偏差θfnの推定は、特開平10−277969号公報に示した床形状推定器の足平床傾斜を推定する処理と同様の処理によって行なわれる。
本実施形態の階層型コンプラインス動作決定部114の、上記した以外の機能的構成の処理手法は、第3実施形態のものと同じである。
以上説明した相違点を除けば、本実施形態における制御装置50の演算処理は、第1〜第3実施形態と同様である。
次に、本実施形態における前記ロボット幾何学モデル110の処理に関して詳説する。
本実施形態のロボット51においては、上体53から膝に至るまでの関節の自由度の数が3しかないので(股関節55に3自由度あるだけなので)、厳密に上体位置姿勢と足平位置姿勢と左右の膝の水平位置と左右の膝の高さの和とをそれらの目標に維持したまま、左右の膝の高さの差だけを変えることはできない。言い換えると、強引に左右の膝の高さの差だけを変えようとすると、接地部位(すなわち膝および足平)と床との間でこじりあるいは滑りが生じてしまう。
同様に、厳密に上体位置姿勢と両膝の位置と両足平の水平位置と左右の足平の高さの和とをそれらの目標に維持したまま、左右の足平の高さの差だけを変えることはできない。言い換えると、強引に左右の足平の高さの差だけを変えようとすると、接地部位(すなわち膝および足平)と床との間でこじりあるいは滑りが生じてしまう。
同様に、厳密に上体位置姿勢と足平位置姿勢と左右の膝の水平位置と左右の膝の高さの差とをそれらの目標に維持したまま、左右の膝の高さの和だけを変えることはできない。言い換えると、強引に左右の膝の高さの和だけを変えようとすると、接地部位(すなわち膝および足平)と床との間でこじりあるいは滑りが生じることはなくとも、上体位置が目標位置からずれる。その結果、ロボット51の全体の重心位置と慣性力とが目標値からずれ、ロボット51の安定性が低下する。
すなわち、いずれにせよ、階層型コンプライアンス動作決定部114において決定された機構変形補償付き修正目標接地部位位置姿勢と目標上体位置姿勢とを同時に厳密に満足することはできないので、ロボット51の図58および図59の姿勢状態において、該ロボット51の足平58もしくは膝と床との間でこじりあるいは滑りが生じたり、ロボット51の全体の重心位置と慣性力とが目標値からずれ、ロボット51の安定性が低下したりする。なお、接地部位のうちの手62は、上体53に対して6自由度以上の自由度を持つので、腕54の手62以外の部位で床に接地するような姿勢をロボット51に採らせない限り、手62と床との間でこじりなどの滑りが発生することは無い。
そこで、本実施形態においては、ロボット51の接地部位のうちの膝および足平58と床との間で極力こじりあるいは滑りが生じず、かつ上体53の重心位置(特に水平位置)が極力変わらないようにしつつ、左右の膝の高さの差の変化などに応じて上体53の姿勢、あるいは姿勢と位置とを修正することとする。
図63(a),(b)に、その上体53の姿勢の修正動作の例を示す。なお、図63(c)については後述する。これらの図63(a),(b),(c)では、腕54と頭部63は図示を省略している。
上体53の姿勢の修正動作の1つは、図63(a)に示すようにロボット51がひざまずいた状態から、コンプライアンス制御による左右の膝の高さの差の変化に応じて、図63(b)に示すように、おおよそ上体53の重心Gを通る体幹軸を回転軸として、上体53を回転させる(矢印y1のように回転させる)動作である。
また、図63のようなロボット51の膝付き姿勢においては、左右の足平58,58の高さの差の変化によって、左右の膝の高さの差はおおよそ左右の足平58,58の高さの差の変化の半分だけ変化する。そこで、コンプラインス制御による左右の足平58,58の高さの差の変化に応じて、左右の膝の高さの差の変化に応じた上体53の姿勢修正と同様の動作を、左右の足平の高さの差の変化の場合に較べて半分の量だけ行なうようにする。
さらに、このように上体53の姿勢を修正するとき、接地部位(膝および足平58)と床との間で極力こじりあるいは滑りが生じず、かつ上体53の重心G位置(特にその水平位置)、あるいはその重心Gと全床反力中心点と結ぶ線分の傾きが極力変わらないようにしつつ、コンプラインアンス制御による左右の膝の高さの和の変化に応じて上体53の位置と姿勢とを修正することとする。
図64に、左右の膝の高さの和の変化に応じて上体53の位置と姿勢とを修正する動作を視覚的に示す。すなわち、点線で示すロボット51の姿勢から、実線で示すロボット51の姿勢のように、コンプライアンス制御により両膝を下げる動作に伴い、上体53の下端部(あるいは腰部)を矢印y3で示す如く前方側にずらし、上体53の傾きを矢印y2で示す如く後ろに(上体53の起立方向に)ずらすようにする。すなわち、上体53の重心G位置(あるいは上体53の所定の代表点の位置)、特にその水平位置を維持しつつ上体53を後ろに傾けるようにする。あるいは、該重心Gと目標全床反力中心点Pとを結ぶ線分の傾きを維持しつつ上体53を後ろに傾けるようにする。また、コンプラインス制御により両膝を上げる動作に伴い、上記と逆に、上体53の下端部(あるいは腰部)を後ろにずらし、上体の傾きを前にずらすようにする。すなわち、上体重心G位置(あるいは上体の所定の代表点の位置)、特にその水平位置を維持しつつ上体53を前に傾けるようにする。あるいは、該重心Gと目標全床反力中心点Pとを結ぶ線分の傾きを維持しつつ上体53を後ろに傾けるようにする。なお、図64中Q1”,Q3”は、それぞれ上記のように上体53の位置姿勢を修正した後の足平58の目標床反力中心点、膝の目標床反力中心点を示しており、この例では、Q1”は修正前の足平58の目標床反力中心点Q1と同じである。
以上が、上体53の姿勢や位置の修正動作の概要である。
本実施形態におけるロボット幾何学モデル(逆キネマティクス演算部)110の処理機能を図65のブロック図に示す。
逆キネマティクス演算部110では、まず、機構変形補償入り修正目標第n接地部位位置姿勢(n=1,2,…,6)と歩容生成装置100が決定した各足平58および膝の目標接地部位位置姿勢とを基に、歩容生成装置100が決定した左右の膝の目標位置に対する、左右の膝の高さの差の修正量Zkneediffmdfdおよび左右の膝の高さの和の修正量Zkneesummdfdと、歩容生成装置100が決定した左右の足平の目標位置に対する、左右の足平58,58の高さの差の修正量Zfootdiffmdfdを求める。
具体的には、以下の式47、48、49によって、左右の膝の高さの差の修正量Zkneediffmdfd、左右の膝の高さの和の修正量Zkneesummdfd、左右の足平の高さの差の修正量Zfootdiffmdfdを求める。
なお、式47〜49の「部位位置」はより正確には、その「部位位置」の高さ成分(鉛直方向成分)である。
次いで、左右の膝の高さの差の修正量Zkneediffmdfd、左右の膝の高さの和の修正量Zkneesummdfdおよび左右の足平の高さの差の修正量Zfootdiffmdfdを基に、上体位置姿勢修正量を求める。
上体位置姿勢修正量は、膝高さ差用上体位置修正量Xbkneediffmdfd、膝高さ差用上体姿勢修正量θbkneediffmdfd、膝高さ和用上体位置修正量Xbkneesummdfd、膝高さ和用上体姿勢修正量θbkneesummdfdおよび足平高さ差用上体位置修正量Xbfootdiffmdfd、足平高さ差用上体姿勢修正量θbfootdiffmdfdから成る。具体的にこれらの値は次のように求められる。
まず、左右の膝の高さの差の修正量Zkneediffmdfdに応じて、これによって接地部位(膝および足平58)と床との間でこじりあるいは滑りが生じないための、膝高さ差用上体位置修正量Xbkneediffmdfdと膝高さ差用上体姿勢修正量θbkneediffmdfdとを、左右の膝の高さの差の修正量Zkneediffmdfdとその瞬間(現在時刻)におけるロボット51の目標姿勢(目標運動)とを基に幾何学演算によって求める。
より具体的には、例えば、次式50によって、Xbkneediffmdfdとθbkneediffmdfdとを求める。ただし、KxkneediffとKthkneediffとは、ロボット51の目標姿勢に応じた比例係数である。
これ以外にも、あらかじめ、いくつかの代表的なロボット51の目標姿勢に対して、左右の膝の高さの差の修正量(あるいは第34ノード補償角θ34)と上体位置姿勢の修正量との関係を求めておいて、これをマップあるいは関数として記憶し、これと左右の膝の高さの差の修正量Zkneediffmdfdを基にXbkneediffmdfdおよびθbkneediffmdfdを求めても良い。なお、本実施形態では、左右の膝の高さの差の修正量に対して、上体53をその体幹軸まわり回転させて上体姿勢を修正するので、膝高さ差用上体位置修正量Xbkneediffmdfdは0で良い。
次いで、上記と同様に、左右の足平58,58の高さの差の修正量Zfootdiffmdfdに応じて、これによって接地部位(膝および足平58)と床との間でこじりあるいは滑りが生じないための、足平高さ差用上体位置修正量Xbfootdiffmdfdと足平高さ差用上体姿勢修正量θbfootdiffmdfdとを、左右の足平の高さの差の修正量Zfootdiffmdfdとその瞬間(現在時刻)におけるロボット51の目標姿勢(目標運動)とを基に幾何学演算によって求める。
より具体的には、例えば、次式51によって、Xbfootdiffmdfdとθbfootdiffmdfdとを求める。ただし、KxfootdiffとKthfootdiffとは、ロボット51の目標姿勢に応じた比例係数である。前述したように足平58の高さ差の影響は膝の高さの差の影響のほぼ半分であることから、KxfootdiffとKthfootdiffとは、それぞれ、KxkneediffとKthkneediffの2分の1とする。
なお、本実施形態では、左右の足平58,58の高さの差の修正量に対して、上体53をその体幹軸まわり回転させて上体姿勢を修正するので、足平高さ差用上体位置修正量Xbfootdiffmdfdは0で良い。
次いで、上記と同様に、左右の膝の高さの和の修正量Zsummdfdに応じて、これによって接地部位(膝および足平)と床との間でこじりあるいは滑りが生じないための、膝高さ和用上体位置修正量Xbsummdfdと膝高さ和用上体姿勢修正量θbsummdfdとを、左右の膝の高さの和の修正量Zsummdfdとその瞬間(現在時刻)におけるロボット51の目標姿勢を基に幾何学演算によって求める。
これ以外にも、あらかじめ、いくつかの代表的な目標姿勢に対して、左右の膝の高さの和の修正量と上体姿勢の修正量の関係を求めておいて、これをマップあるいは関数として記憶し、これと左右の膝の高さの和の修正量Zsummdfdとを基にXbsummdfdとθbsummdfdとを求めても良い。
なお、次のように、上体位置姿勢の修正量を決定してもよい。すなわち、左右の膝の高さの差を、その差を生じさせる第34ノード補償角θ34に換算し、左右の膝の高さの和を、その和を生じさせる第1234ノード補償角θ1234に換算し、左右の足平の高さの差を、その差を生じさせる第12ノード補償角θ12に換算する。そして、これらの換算された補償角を基に、幾何学演算によって上体位置姿勢修正量を決定するようにしても良い。あるいは、あらかじめ、いくつかの代表的なロボット51の目標姿勢に対して、換算された補償角と上体位置姿勢修正量との関係を求めておいて、これをマップあるいは関数として記憶し、これと換算された補償角とを基に、上体位置姿勢修正量を決定するようにしても良い。
次いで、目標上体位置姿勢を上体位置姿勢修正量だけ移動(回転移動と平行移動)して、こじり補正入り目標上体位置姿勢を求める。具体的には、体幹軸(あるいは所定の回転軸(ほぼ鉛直面内の回転軸))まわりに目標上体位置姿勢を膝高さ差用上体姿勢修正量と足平高さ差用上体姿勢修正量との和(θbkneediffmdfd+θbfootdiffmdfd)だけ回転移動し、さらにこれを左右軸まわりに膝高さ和用上体姿勢修正量θbfootsummdfdだけ回転移動し、さらにこれをロボット51の前後方向で膝高さ差用上体位置修正量と膝高さ和用上体位置修正量と足平高さ差用上体位置修正量の和(Xbkneediffmdfd+Xbkneesummdfd+Xbfootdiffmdfd)だけ平行移動することによって、こじり補正入り目標上体位置姿勢を求める。
次いで、こじり補正入り目標上体位置姿勢と機構変形補償入り目標第n接地部位位置姿勢(n=1,2,…,6)とを基に、ロボット51の関節変位指令を求める。
以上のごとく逆キネマティクス演算部110の処理が実行される。
すなわち、第6実施形態は、ロボット51の接地部位位置姿勢の修正動作のために、幾何学的に自由度が不足している場合には、階層型コンプライアンス動作によって目標接地部位位置姿勢を修正するだけでなく、上体位置の点(上体の代表点)あるいは上体を含む複数部位の重み付き平均位置(この場合の重みは各部位の質量比となっていることが望ましい)の点(全体重心など)、特にその点の水平位置を保持するように、あるいは、その点と目標全床反力中心点(目標ZMP)とを結ぶ線の角度を目標歩容における角度にできるだけ保持するように、目標上体位置姿勢も修正するようにした。
また、別の言い方をすれば、ロボット51の全体の姿勢制御の安定性を高めるために、目標全床反力中心点(目標ZMP)まわりに発生する実床反力モーメントの制御性を優先し、ある所定の接地部位A(ここでは膝)の相対高さまたは傾斜角度の操作量、あるいはある所定の接地部位Aを子孫ノードとして持つノードの相対高さまたは傾斜角度の操作量としての補償高さおよび補償角のうちの少なくともいずれか一方を決定する手段と、前記補償高さおよび補償角のうちの少なくともいずれか一方に応じて、上体位置あるいは上体を含む複数部位の前記重み付き平均位置を概ね目標歩容での位置に保持しつつ、上体の姿勢および位置のうちの少なくともいずれか一方の修正量を決定する手段と、前記所定の接地部位Aを除く所定の接地部位B(ここでは足平)の位置および姿勢のうちの少なくともいずれか一方と、前記修正量によって修正した上体位置姿勢とに基づいて、関節変位を決定する逆キネマティクス演算手段を備えるようにした。
なお、第6実施形態では、ロボット51の上体53の体幹軸まわりに上体姿勢を回転させる代わりに、図64(c)のように、鉛直軸を回転軸として、ロボット51の腰(上体53の下端部)を中心に上体53を回転させるようにしても良い。ただし、この場合には、上体53の重心G位置の左右方向へのずれが大きくなる。あるいは、上体53の体幹軸と鉛直軸との中間的な軸を回転軸として上体姿勢を回転させるようにしても良い。あるいは上体53の位置と姿勢とを両膝の高さの差の修正量や両足平58,58の高さの差の修正量に応じて同時に修正しても良い。また、上体53の重心G位置が変わらないようにする代わりに、ロボット51の全体重心位置あるいは上体53の代表点位置が代わらないように上体53の位置姿勢を修正しても良い。
いずれにせよ、コンプライアンス動作などによるロボット51の接地部位位置姿勢の修正動作のために、幾何学的に自由度が不足している場合に、接地部位のこじりなどの滑りが生じないように、上体53の位置および姿勢のうちの少なくともいずれか一方を目標歩容の位置姿勢から修正するようにすればよい。また、上体53の位置および姿勢のうちの少なくともいずれか一方を修正する代わりに、上体53以外の所定の部位の位置および姿勢のうちの少なくともいずれか一方を修正するようにしても良い。
[第7実施形態]
次いで、本発明の第7実施形態に係る移動ロボットの制御装置を説明する。
第6実施形態においては、接地部位のこじりなどの滑りを防止し、かつロボット51の全体重心位置と慣性力とができるだけずれないようにするために、上体位置姿勢を修正するようにした。本実施形態(第7実施形態)においては、接地部位のこじりなどの滑りをある程度までは許容し、優先的にロボット51の全体重心位置と慣性力とがずれないように、関節変位(股関節55と膝関節56の変位)あるいは接地部位位置姿勢を修正するようにした。
すなわち、本実施形態においては、逆キネマティクス演算部110は、第6実施形態で説明した図65の処理に代えて、図66のブロック図で示す処理を行なうようにした。この相違点を除けば、本実施形態は、第6実施形態と同じである。
本実施形態の逆キネマティクス演算部110を図66を参照して説明すると、まず、各機構変形補償入り修正目標第n接地部位位置姿勢(n=1,2,…,6)(詳しくは位置姿勢のうちの位置)と各目標第n接地部位位置姿勢(n=1,2,…,6)(詳しくは位置姿勢のうちの位置)とを基に、前記式47、式48および式49にしたがって左右の膝の高さの差の修正量Zkneediffmdfd、左右の膝の高さの和の修正量Zkneesummdfd、および左右の足平の高さの差の修正量Zfootdiffmdfdを求め、さらに、左右の膝の高さの差を、その差を生じさせる第34ノード補償角θ34に換算する。同様に、左右の膝の高さの和を、その和を生じさせる第1234ノード補償角θ1234に換算し、左右の足平の高さの差を、その差を生じさせる第12ノード補償角θ12に換算する。
次いで、換算された各ノード補償角を基に、関節変位修正量を決定する。これは次のように行なわれる。まず、目標歩容の上体位置姿勢を固定し、且つ目標全床反力中心点(目標第123456ノード床反力中心点(図61の点P))とロボット51の全体重心(あるいは、上体重心、あるいは、上体53を含む複数の部位の重心)とを結ぶ線分の角度が変わらないようにしつつ、関節変位を修正した場合を想定し、この場合に、各接地部位(膝および足平58)に対応した第nノード(n=12,34,1234)の傾斜角度(補償角)が単位摂動量になるための第j関節変位修正量(j=1,2,…,関節の総数)を求め、これを第nノード補償角に対する第j関節変位の感度Ln_jとする。
より一般的には、目標歩容の関節変位を修正した場合に、目標全床反力中心点(目標第123456ノード床反力中心点)とロボット51の全体重心(あるいは、上体重心、あるいは、上体53を含む複数の部位の重心)を結ぶ線分と、各接地部位(膝および足平58)に対応した第nノード(n=12,34,1234)の傾斜角度との間の相対角度が単位摂動量になるための第j関節変位修正量(j=1,2,…,関節の総数)を求め、これを第nノード補償角に対する第j関節変位の感度Ln_jとする。
具体的には、Ln_knee_rを第nノード補償角(n=12,34,1234)に対する右膝関節変位の感度、Ln_knee_lを第nノード補償角に対する左膝関節変位の感度、Ln_hip_rを第nノード補償角に対する右股ピッチ関節変位の感度、Ln_hip_lを第nノード補償角に対する左股ピッチ関節変位の感度とすると、図58および図59に示すロボット51の膝付き姿勢においては、各感度は次式52のように設定する。
ただし、a12、a34は所定の定数である。
次いで、次式53〜56により各関節変位修正量を決定する。ただし、θknee_rは、右膝関節変位修正量、θknee_lは、左膝関節変位修正量、θhip_rは、右股関節変位修正量(より詳しくは、右股関節のピッチ方向の関節変位修正量)、θhip_lは、左股関節変位修正量(より詳しくは、右股関節のピッチ方向の関節変位修正量)とする。
なお、他の関節変位修正量も同様に求めるが、説明を容易にするために、ここでは省略する。
すなわち、第1234補償角θ1234に対しては、図67に示すごとく両膝関節56の変位(角度)をθ1234と同量だけ修正する。また、第12補償角θ12に対しては、右膝関節56の変位(角度)をθ12に比例して修正しつつ、左膝関節56の変位(角度)を右膝関節56の変位の修正量に−1を乗じた量だけ修正する。つまり右膝関節56の変位(角度)を図67に示すごとく修正し、左膝関節56の変位(角度)はその逆に修正する。また、第34補償角θ34に対しては、右股関節55のピッチ方向の変位(角度)をθ34に比例して修正し、左股関節55のピッチ方向の変位(角度)を右股関節55のピッチ方向の変位の修正量に−1を乗じた量だけ修正するようにした。つまり右股関節55のピッチ方向の変位(角度)を図68に示すごとく修正し、左股関節55のピッチ方向の変位(角度)はその逆に修正する。なお、図67のQ1,Q1”はそれぞれ上記のような関節変位の修正前の足平58の目標床反力中心点、修正後の足平58の目標床反力中心点を示している。また、図68のQ3,Q3”はそれぞれ上記のような関節変位の修正前の膝の目標床反力中心点、修正後の膝の目標床反力中心点を示している。
このような関節変位の修正により、目標全床反力中心点(目標第123456ノード床反力中心点)とロボット51の全体重心(あるいは、上体重心、あるいは、上体53を含む複数の部位の重心)を結ぶ線分と、接地部位(膝および足平58)に対応した第nノード(n=12,34,1234)の傾斜角度との間の相対角度が、前記換算された各ノード補償角θ12,θ23,θ1234だけ変化する。したがって、実床反力が忠実に制御され、ロボット51の姿勢安定性および接地性が向上する。
上記の如く関節変位指令(目標関節変位)を直接修正する代わりに、略同一の目標関節変位を生じさせるために優先的に位置姿勢を修正する接地部位(具体的には、足平58、手62)の修正後の目標位置姿勢である優先修正目標接地部位位置姿勢を決定するようにし、決定された優先修正目標接地部位位置姿勢を基に逆キネマティクス演算によって関節変位指令を決定するようにしても良い。
なお、関節の自由度不足のため、目標上体位置姿勢とすべての修正目標接地部位位置姿勢とを満足するように逆キネマティクス演算によって関節変位を決定することはできないので、逆キネマティクス演算を行なうときには、すべての修正目標接地部位位置姿勢のうちの一部の修正目標接地部位位置姿勢を用いることとなる。この一部の修正目標接地部位位置姿勢を前記優先修正目標接地部位位置姿勢と呼ぶ。
たとえば、図67の状況においては、第1234ノード補償角θ1234に対しては、膝を中心として目標足平位置を回転移動させた位置を優先修正目標足平位置と決定すれば良い。
なお、第6実施形態および第7実施形態では、一例として、ロボット51のひざまずき状況におけるコンプライアンス動作について説明したが、ロボットが椅子に座った状況でのコンプライアンス動作に適応する場合には、次のようにすれば良い。以下に、それを第8実施形態として説明する。
[第8実施形態]
図70は本実施形態のロボットの要部の構成を示している。このロボット71は、臀部72の底面部の左右にそれぞれ床反力を検出する床反力センサ73,73(荷重センサ。例えば6軸力センサ)を備える。なお、左右に床反力センサ73,73を設ける代わりに、臀部72の底面部の左右に加わる力の合力を検出する1つの床反力センサを備えるようにしてもよい。
この場合、また、床反力センサ73,73の外側は、図示の如くスポンジ等の柔軟な部材(弾性体)74によって覆われている。なお、臀部72の接地部位におけるコンプライアンス制御の精度を良くするために、柔軟な部材によって覆うだけでなく、図示の如く柔軟な部材(弾性体)74の表面(接地面)を丸く凸面状に形成することが望ましい。特に、ロボット71がその臀部72を介して椅子などに座った状態において床反力センサ73,73の検知位置(センサ本体の位置)と上記部材74の凸面の頂点との水平位置を一致させるように、部材74を設けておくことが望ましい。このようにすることで、ロボット71の接地部位の位置姿勢の修正動作と床反力との関係の非線形性が小さくなるので、ロボット71のコンプライアンス制御などの制御特性が良好になる。
なお、ロボット71では、臀部72の左右の側部から、脚(リンク機構)52,55が延設されている。脚55,55の構造は、例えばその関節を含めて前記第6実施形態のものと同一とされている。従って、脚5,55についての第6実施形態と同一の参照符号を用い、説明を省略する。ただし、本実形態では、脚55の膝に床反力センサを備えていなくてもよい。
また、図示のように、臀部72の上側には、胴体(上体)77が設けられ、この胴体77の上部の両側部から肩関節78,78を介して腕79,79が延設されている。なお、腕79は、前記第6実施形態のロボット51のものと同一構造でもよい。さらに、胴体77は、関節80を介して臀部72に連結されている。この場合、関節80は、臀部72に対して胴体う77をヨー方向に旋回させる胴体旋回用関節80aと、胴体77を臀部72に対して前後および左右方向に傾斜させる胴体屈曲用関節80bとから構成されている。ロボット71に上述のように備えられた各関節は、図示しないアクチュエータにより動作する。また、臀部72または胴体77には、図示を省略するが、前記第1実施形態などと同様の制御装置50が搭載されている。
本実施形態では、臀部72を介して椅子などに腰掛けるロボット71に対して、図70に示す如く階層構造を設定すればよい。すなわち、接地部位としての右足平58、左足平58、臀部72の底面部の右側部(右側床反力センサ73の取り付け部位)、臀部72の底面部の左側部(左側床反力センサ73の取り付け部位)をそれぞれ葉ノードである第1ノード、第2ノード、第3ノード、第4ノードに対応させる。また、第1ノードと第2ノードとを子ノードとして持つ第12ノード、第3ノードと第4ノードを子ノードとして持つ第34ノードを中間ノードとして設定し、第12ノードと第34ノードを子ノードとして持つ第1234ノードを根ノードとして設定した。また、各ノードには、前記第1実施形態などと同様の方針によって、図示の如く、目標床反力中心点Qn(n=1,2,3,4,12,34,1234)が対応づけられる。なお、根ノードである第1234ノードの目標床反力中心点Q1234は、目標全床反力中心点Pと同一である。
本実施形態では、制御装置50は、前記図2に示したものと同様の機能的構成を有するものとされている。
この場合、本実施形態における歩容生成装置100が出力する目標歩容のうちの目標運動の目標接地部位軌道は、各足平58の目標位置姿勢軌道と臀部72の目標位置姿勢軌道とから構成される。目標運動のうちの上体位置姿勢軌道は、本実施形態では、胴体77の位置姿勢軌道を意味する。なお、目標運動には、各腕79の先端部の位置姿勢軌道も含まれる。また、目標全床反力中心点Pは、実際の床面上にはなく、空中の仮想面上にある。
また、本実施形態では、階層型コンプライアンス動作決定部114は、その機能的構成要素は、前記第6実施形態のものと同様である(図62を参照)。ただし、本実施形態では、補償全床反力モーメント分配器は、図70に示した階層構造における各中間ノードおよび根ノードのノード補償床反力モーメントと、各足平58に対応する葉ノードのノード補償床反力モーメントとを決定して出力する。また、補償角決定部は、図70に示した階層構造における各中間ノードおよび根ノードのノード補償角と、各足平58に対応する葉ノードのノード補償角とを決定して出力する。この場合、これらのノード補償床反力モーメントおよびノード補償角の基本的な決定手法は、前記第1〜第3実施形態や第6実施形態で説明した手法と同じでよい。また、床形状推定器は、前記第6実施形態の場合と同様に、前記第3実施形態で説明した手法と同じ手法で推定第n床高さ偏差Zfn_estm(n=1,2,3,4)を求めることに加えて、各足平58の接地部位床傾斜偏差θfn(n=1,2)を推定する。
また、制御装置50の機能的構成要素であるロボット幾何学モデル(逆キネマティクス演算部)は、前記第6実施形態と同様の手法によって、基本的には、前記機構変形補償入り修正目標接地部位位置姿勢と目標上体位置姿勢とを基に、臀部72の接地部位と足平58(接地部位)とでこじりなどの滑りが発生しないように、それらの接地部位の位置姿勢を修正すると共に、上体(胴体)77の位置姿勢を修正する。
以上説明した以外の制御装置50の処理は、前記第6実施形態と同様でよい。
次に、以上説明した実施形態に係わるいくつかの変形態様を説明する。
床反力センサによって直接的に検出できない実ノード床反力は、床反力センサによって直接的に検出される他の実接地部位床反力、加速度センサの検出値、傾斜計の検出値などを用いて、オブザーバにより推定するか、もしくは、簡易的な代数関係によって推定すればよい。例えば、階層型コンプライアンス動作は、目標全床反力中心点まわりに接地部位を回転させる回転型のコンプライアンス動作であるので、コンプライアンス動作を行なっても、ロボットの全体重心の鉛直加速度(あるいは目標全床反力中心点と全体重心とを結ぶ線分の方向の加速度成分)は、ロボットの目標歩容(目標運動)における全体重心の鉛直加速度(あるいは目標全床反力中心点と全体重心とを結ぶ線分の方向の加速度成分)にほぼ一致する。したがって、すべての実接地部位床反力鉛直成分の和は、ロボットの目標歩容(目標運動)における全体重心の鉛直加速度と重力加速度との和にロボットの全体質量を乗じた値にほぼ一致する。
よって、実第nノード床反力が直接的に検出できない場合、まず、第nノードを先祖ノードに持たず、かつ、第nノードそのものでないすべての葉ノードの実床反力(実接地部位床反力)の和(以降、これを実第nノード外床反力と呼ぶ)を求める。
次いで、次式57によって、実第nノード床反力の推定値である推定第nノード床反力を求める。
上体などに加速度センサを備えている場合には、加速度センサの検出値と、目標歩容および実関節変位のうちの少なくともいずれか一方によりロボット全体の重心加速度(以降、推定全体重心加速度と呼ぶ)を推定し、次式58によって、実第nノード床反力の推定値である推定第nノード床反力を求めても良い。
例えば、前記第6実施形態において、膝の床反力を検知する床反力センサが備わっていない場合、あるいは、膝の床反力を検知する床反力センサが故障した場合には、推定第34ノード床反力を次式59によって求める。
さらに、推定第34ノード床反力を実第34ノード床反力の代わりに用いて、コンプライアンス動作処理によって第1234ノード補償角θ1234を決定し、また床形状推定処理によって推定第1234ノード相対床高さ偏差Z1234rel_estmを推定する。
第34ノード補償角θ34の決定では、想定した床通りであると仮定して、機構変形補償入り修正目標第3接地部位位置姿勢、機構変形補償入り修正目標第4接地部位位置姿勢と推定第34ノード床反力を基に、実第3ノード床反力の推定値である推定第3ノード床反力と実第4ノード床反力の推定値である推定第4ノード床反力とを求める。
さらに、推定第3ノード床反力と推定第4ノード床反力を実第3ノード床反力と実第4ノード床反力の代わりに用いて、コンプライアンス動作処理によって第34ノード補償角θ34を決定する。
ロボットの姿勢の復元要求モーメント(補償全床反力モーメント)を基に、前述の如く復元要求モーメントを加えることと等価になるように目標ノード床反力中心点まわりの修正目標ノード床反力モーメントを決定する代わりに、復元要求モーメント(補償全床反力モーメント)を基に、目標ノード床反力中心点を修正した修正目標ノード床反力中心点を決定しても良い。この場合、目標ノード床反力中心点まわりの目標ノード床反力モーメントは修正しないで0のままとする。
また、第nノード床反力の内で制御できなかった成分(予想される、または検出された制御偏差成分)を補うために、この成分に応じて、第nノードの親ノードの目標床反力を修正しても良い。すなわち、実第nノード床反力と目標第nノード床反力との差の前回制御周期の値あるいは前記差をローパスフィルタに通した値を第nノードの目標床反力に付加しても良い。
床形状の推定処理においては、コンプライアンス制御用のツリー構造と異なるツリー構造を設定してもよい。そのツリー構造は、根ノードと葉ノードとからなる2層のものであってもよい。また、各ノードの重みもコンプライアンス制御用のものと異なるものとしてもよい。ノード床反力が0となるような時期(そのノードに属する全ての接地部位、またはそのノードに対応する接地部位が空中を移動する時期)でそのノードの重みが0であれば良い。
また、床形状の推定処理においては、前述の修正目標ノード床反力中心点に基づいて、各修正ノード重みを決定し、これを要素とするベクトルを、床形状推定に用いる重みとして用いても良い。
床形状推定の処理で、各点(各接地部位)の推定相対床高さ偏差を求める際に、実床反力と機構コンプライアンスモデルと姿勢センサの検出値とを用いる代わりに、コンプライアンス機構などの変形量を検出する変形量検出器を備え、その変形量検出器の検出値と姿勢センサの検出値とを用いるようにしてもよい。
床形状を相対的に推定するだけでなく、グローバルに推定(グローバル座標系での床形状の推定)したい場合には、次のようにしてもよい。
1)ロボットの上体のグローバル座標系での高さ(以下、グローバル高さという)を検知できる場合における床のグローバル高さの推定:
上体などロボットのある所定部位のグローバル高さを検出する検出器(加速度センサを用いた上体高さ推定装置(例えば本願出願人によるPCT/JP03/05448号に記載されている推定装置)あるいは視覚センサ等の外界センサなど)を用いる。推定された上体のグローバル高さと、関節変位(実関節変位あるいは目標関節変位)、実上体姿勢傾斜の検出値および実床反力の検出値を基に、推定床高さ偏差のグローバル座標系での値を求める。従って、根ノードの推定床高さ偏差は、すべての接地部位のグローバルな推定床高さ偏差の重み付き平均値としての意味を持つこととなる。
2)上体のグローバル高さがわからない状況での床のグローバル高さの推定:
ある推定第n床高さ偏差のグローバル値(グループ内相対値ではなくグローバル座標系における偏差)がわかっているならば、それと推定各相対床高さ偏差を基に、すべての点(接地部位)の推定床高さ偏差のグローバル値を求める。ロボットの移動のスタート点での推定第n床高さ偏差のグローバル値がわかっていれば、ロボットの移動を続けることで、逐次新しく接地した接地部位の床高さ偏差のグローバル値を求められるので、これを記憶することにより、ロボットの移動軌跡上での床高さのマップを作成できる。
また、床形状の推定処理においては、前述の修正目標ノード床反力中心点に基づいて、各修正ノード重み(各ノードの重みの値を修正したもの)を決定し、これを、床形状推定において、実第nノード相対床高さ等を定義するために用いる重みとしても良い。また、床形状推定において、実第nノード相対床高さ等を定義するために用いる重みは、目標床反力分配器が決定した前述の重みと必ずしも同一のものにする必要はない。
補足すると、実第nノード相対床高さ等を定義するための重みは、目標床反力分配器が決定する重みに必ずしも一致させなくてはならない訳ではないが、一致させるならば、(この場合、自動的に、根ノードの目標床反力中心点は目標全床反力中心点に一致する、)コンプライアンス動作用の第nノード補償角(n=1,2,…)に第nノード推定床傾斜偏差を付加するだけで、床形状偏差の影響を打ち消すことができるので、床形状偏差の影響を打ち消すための演算量を低減することができる。
さらに、推定床形状偏差を床形状の地図情報として記憶しておき、次回同一場所を歩行する時に、記憶しておいた床形状の地図情報を基に目標歩容を生成するようにしても良い。
尚、前述の各実施形態における演算処理機能を示すブロック線図もしくはフローチャートにおける演算処理順序を等価変形をしても良い。
また、本発明は、移動ロボットに限らず、アクティブサスペンションを持つ車輪型移動体にも応用することが可能である。
Claims (26)
- 互いの相対高さを操作可能に複数の関節を介して連結された3つ以上の接地部位を有する移動ロボット等の移動体の目標運動を決定する目標運動決定手段と、前記移動体の基体などの所定の部位の実姿勢傾斜を検出または推定する実姿勢傾斜検出手段とを備え、前記移動体の運動を目標運動に追従させるように該移動体の動作制御を行う移動体の制御装置において、
前記接地部位のそれぞれが葉ノードとなり、且つ、該葉ノードと該葉ノードのすべてを子孫ノードとして持つ根ノードとの間に中間ノードが存在するように前記接地部位をツリー構造状に分類し、
複数の接地部位を子孫ノードとして持つノードである第Cノードのそれぞれに対し、少なくとも前記実姿勢傾斜と前記目標運動における前記所定の部位の目標姿勢傾斜との偏差である姿勢傾斜偏差に応じて、該姿勢傾斜偏差が0に近づくように、該第Cノードに属する複数の接地部位の間の目標相対高さの修正量を該第Cノード毎に決定し、その決定した修正量をすべての第Cノードについて合成してなる修正量を基に、前記目標運動に、各第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を少なくとも付加した修正目標運動を決定し、その決定した修正目標運動を満足するように前記関節を動作させるノード動作制御手段を備えたことを特徴とする移動体の制御装置。 - 前記ツリー構造における各ノードに重みが設定されており、該ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の高さを第Bノードの高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの高さの、前記重みを用いた重み付き平均値を該第Bノードの高さとして定義したとき、
前記ノード動作制御手段は、各第Cノードのうちの任意の一つのノードのみに対して、該一つのノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標運動に付加して前記修正目標運動を決定したとき、該修正目標運動における該一つのノードの目標高さは前記目標運動における目標高さに維持されることを特徴とする請求の範囲第1項に記載の移動体の制御装置。 - 互いの相対高さを操作可能に複数の関節を介して連結された3つ以上の接地部位を有する移動ロボット等の移動体の目標運動を決定する目標運動決定手段と、前記移動体の基体などの所定の部位の実姿勢傾斜を検出または推定する実姿勢傾斜検出手段とを備え、前記移動体の運動を目標運動に追従させるように該移動体の動作制御を行う移動体の制御装置において、
前記接地部位のそれぞれが葉ノードとなり、且つ、該葉ノードと該葉ノードのすべてを子孫ノードとして持つ根ノードとの間に中間ノードが存在するように前記接地部位をツリー構造状に分類したとき、前記ツリー構造における各ノードに重みが設定されており、
少なくとも前記実姿勢傾斜と前記目標運動における前記所定の部位の目標姿勢傾斜との偏差である姿勢傾斜偏差に応じて、該姿勢傾斜偏差が0に近づくように、前記目標運動に、該第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を少なくとも付加した修正目標運動を決定し、その決定した修正目標運動を満足するように前記関節を動作させるノード動作制御手段を備え、
前記ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の高さを第Bノードの高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの高さの、前記重みを用いた重み付き平均値を該第Bノードの高さとして定義したとき、前記ノード動作制御手段が、前記第Cノードのみに対して、該第Cノードに属する複数の接地部位の間の目標相対高さの第1の修正を前記目標運動に付加して前記目標運動を決定したとき、該修正目標運動における該第Cノードの目標高さは前記目標運動における目標高さに維持されることを特徴とする移動体の制御装置。 - 前記ツリー構造において子ノードを持つ各ノードに対し、該各ノードの全ての子ノードの重みは、その全ての子ノードの重みの総和が1となるように設定されていることを特徴とする請求の範囲第2項または第3項に記載の移動体の制御装置。
- 前記各ノードの重みを可変的に設定する手段を備え、非接地状態である各接地部位にそれぞれ対応する葉ノードを第Dノードとしたとき、前記重みを設定する手段は、各第Dノードの重み、または該第Dノードの祖先ノードのうちの少なくともいずれか1つのノードの重みを0に設定することを特徴とする請求の範囲第2項または第3項に記載の移動体の制御装置。
- 前記各接地部位は、前記移動体の基体に対して移動可能に該基体に連結されており、
前記ノード動作制御手段は、前記修正目標運動を決定するとき、前記第Cノードに属する各接地部位の床面上でのこじりなどの滑りを抑制するための、前記基体の目標姿勢の修正を前記目標運動にさらに付加して前記修正目標運動を決定することを特徴とする請求の範囲第1項または第2項に記載の移動体の制御装置。 - 前記各接地部位は、前記移動体の基体に対して移動可能に該基体に連結されており、
前記ノード動作制御手段は、前記修正目標運動を決定するとき、前記第Cノードに属する各接地部位の床面上でのこじりなどの滑りを抑制するための、前記基体の目標姿勢の修正をさらに付加して前記修正目標運動を決定することを特徴とする請求の範囲第3項に記載の移動体の制御装置。 - 前記ノード動作制御手段は、前記修正目標運動における前記移動体の全体重心の水平位置または該移動体の基体の所定の代表点の水平位置が前記目標運動における当該水平位置とほぼ同じになるように前記修正目標運動を決定することを特徴とする請求の範囲第6項または第7項に記載の移動体の制御装置。
- 前記移動体は、その基体から延設された複数のリンク機構を備えるロボットであり、該複数のリンク機構のうちの少なくとも1つのリンク機構は、少なくともその先端部と基体側の端部との間の中間部位に関節が設けられていると共に、該中間部位が前記接地部位となっていることを特徴とする請求の範囲第6項に記載の移動体の制御装置。
- 前記移動体は、その基体から延設された複数のリンク機構を備えるロボットであり、該複数のリンク機構のうちの少なくとも1つのリンク機構は、少なくともその先端部と基体側の端部との間の中間部位に関節が設けられていると共に、該中間部位が前記第Cノードに属する接地部位となっていることを特徴とする請求の範囲第7項に記載の移動体の制御装置。
- 前記中間部位には、その接地時に弾性変形する弾性体が設けられていることを特徴とする請求の範囲第9項または第10項に記載の移動体の制御装置。
- 前記移動体は、その基体から延設されて1つ以上の関節をそれぞれ有する複数のリンク機構を備えると共に、該複数のリンク機構のうちの少なくとも1つのリンク機構と前記基体とに前記接地部位が設けられていることを特徴とする請求の範囲第6項に記載の移動体の制御装置。
- 前記移動体は、その基体から延設されて1つ以上の関節をそれぞれ有する複数のリンク機構を備えると共に、該複数のリンク機構のうちの少なくとも1つのリンク機構と前記基体とに前記接地部位が設けられており、前記第Cノードに属する接地部位には、少なくとも前記基体の接地部位が含まれることを特徴とする請求の範囲第7項に記載の移動体の制御装置。
- 前記基体の少なくともひとつの接地部位には、その接地時に弾性変形する弾性体が設けられていることを特徴とする請求の範囲第12項または第13項に記載の移動体の制御装置。
- 前記各接地部位は、前記移動体の基体に対して移動可能に該基体に連結機構を介して連結されており、
前記修正目標運動を満足するように前記関節を動作させたときに前記第Cノードに属する各接地部位に作用すべき目標床反力の並進力成分を決定する手段を備え、
前記ノード動作制御手段は、少なくとも前記第Cノードに属する各接地部位の目標床反力の並進力成分を基に、該目標床反力の並進力成分が該第Cノードに属する各接地部位に作用したときに前記基体と該第Cノードに属する各接地部位との間の連結機構および該接地部位で発生する変形量を推定する手段を備え、その推定した変形量を打ち消すための、前記第Cノードに属する複数の接地部位の目標高さの第2の修正を前記目標運動にさらに付加して前記修正目標運動を決定することを特徴とする請求の範囲第1項または第3項に記載の移動体の制御装置。 - 少なくとも前記第Cノードに属する複数の接地部位の接地面の間の相対高さを規定するパラメータを床形状を表す床形状パラメータとして推定する床形状推定手段を備え、
前記ノード動作制御手段は、前記修正目標運動を決定するとき、前記前記床形状パラメータの推定値に応じた、前記第Cノードに属する複数の接地部位の間の目標相対高さの第3の修正をさらに付加して前記修正目標運動を決定することを特徴とする請求の範囲第1項または第3項に記載の移動体の制御装置。 - 前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードに属する各接地部位の実床反力とに基づき、前記床形状パラメータを逐次更新しつつ推定することを特徴とする請求の範囲第16項に記載の移動体の制御装置。 - 前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備えると共に、
前記ツリー構造における各ノードである第Aノードに対し、該第Aノードが前記葉ノードである場合には、該葉ノードである接地部位に作用する床反力を第Aノードのノード床反力と定義し、且つ、第Aノードが子ノードを持つ場合には、該第Aノードのすべての子ノードのノード床反力の合力を第Aノードのノード床反力と定義したとき、少なくとも前記第Cノードの各子ノードのノード床反力の実際値である実ノード床反力を該第Cノードに属する各接地部位の実床反力から逐次決定する手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードの各子ノードの実ノード床反力の間の相対関係とに基づき、前記床形状パラメータを逐次更新しつつ推定することを特徴とする請求の範囲第16項に記載の移動体の制御装置。 - 前記各接地部位は、前記移動体の基体に対して移動可能に該基体に連結機構を介して連結され、
該基体と各接地部位との間の連結機構および該接地部位で発生する変形量を検出または推定する変形量検出手段を備え、
前記床形状推定手段は、前記床形状パラメータの推定値の過去値と、前記修正目標運動と前記目標運動との差と、前記修正運動と、前記移動体の各関節の変位量である実関節変位の検出値もしくは推定値とのうちの少なくともいずれかと、前記実姿勢傾斜と、少なくとも前記第Cノードに属する各接地部位に対応する前記変形量とに基づき、前記床形状パラメータを逐次更新しつつ推定することを特徴とする請求の範囲第16項に記載の移動体の制御装置。 - 前記第Cノードに属する前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、前記変形量検出手段は、該実床反力に基づき前記変形量を推定することを特徴とする請求の範囲第19項に記載の移動体の制御装置。
- 前記ツリー構造における各ノードの重みが設定されており、該ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の接地面の高さを第Bノードの接地面の高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの接地面の高さの、前記重みを用いた重み付き平均値を第Bノードの接地面の高さとして定義したとき、
前記床形状推定手段が推定する前記床形状パラメータは、前記第Cノードの複数の各子ノードの接地面の高さの間の相対関係を規定するパラメータであることを特徴とする請求の範囲第16に記載の移動体の制御装置。 - 前記床形状推定手段は、前記第Cノードの各子ノードのうちの少なくとも1つが浮きそうな状態であるときに、その浮きそうな子ノードの接地面の相対高さを一定値に保持しつつ、前記複数の子ノードの接地面の高さの相対関係を規定する前記床形状パラメータを推定することを特徴とする請求の範囲第21項に記載の移動体の制御装置。
- 前記床形状推定手段は、前記床形状パラメータの変動を緩和するようにローパスフィルタを用いて該床形状パラメータを推定することを特徴とする請求の範囲第16項に記載の移動体の制御装置。
- 前記ツリー構造の各ノードには床形状の推定用の重みが設定されており、
前記ツリー構造における各葉ノードに高さ、床反力などの所定の種類の状態量を対応づけたときに、子ノードを持つ各ノードの状態量を、該ノードの全ての子ノードの状態量の、前記重みを用いた重み付き平均値とし、根ノードを除く各ノードに対し、該ノードの状態量から該ノードの親ノードの状態量を減算してなる値を該ノードのノード相対状態量として決定すると共に0を根ノードの相対状態量として決定する処理を、当該所定の種類の状態量を各ノードについて階層相対化する処理として定義し、
前記葉ノードである接地部位のそれぞれに作用する床反力Fn(n=1,2,…)を基に、各ノードについて階層相対化したノード相対床反力Fn_rel(n=1,2,…)を求め、さらに子ノードを持つ任意のノードである第nノードのすべての子ノードaj(j=1,2,…,r。rは第nノードの子ノードの総数)のノード相対床反力を要素とするベクトル(Fa1_rel,Fa2_rel,…,Far_rel)を、第nノードのすべての子ノードの重みを要素とするベクトル(Wa1,Wa2,…,War)にそれぞれ直交する所定の互いに独立な複数のベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの該線形結合の係数を要素とするベクトルを、第nノードのノード拡張床反力モーメントMn_expと定義し、
また、前記葉ノードである接地部位のそれぞれの接地面の高さZn(n=1,2,…)を基に、各ノードについて階層相対化したノード相対高さZn_rel(n=1,2,…)を求め、さらに前記第nノードのすべての子ノードaj(j=1,2,…,r。rは第nノードの子ノードの総数)のノード相対高さを要素とするベクトル(Za1_rel,Za2_rel,…,Zar_rel)を、前記所定の互いに独立な複数のベクトルR(j)(j=1,2,…,r−1)の線形結合で表したときの線形結合の係数を要素とするベクトルを、第nノードのノード拡張傾斜角θnと定義したとき、
前記床形状推定手段は、少なくとも前記第Cノードの前記ノード拡張床反力モーメントMn_exp(n=C)またはノード拡張傾斜角θn(n=C)を用いて前記床形状パラメータを推定することを特徴とする請求の範囲第16項に記載の移動体の制御装置。 - 前記ツリー構造における各ノードである第Bノードに対し、該第Bノードが前記葉ノードである場合には、該葉ノードである接地部位の接地面の高さを第Bノードの接地面の高さと定義し、且つ、第Bノードが子ノードを持つ場合には、該第Bノードのすべての子ノードの接地面の高さの、前記重みを用いた重み付き平均値を第Bノードの接地面の高さとして定義したとき、
前記床形状パラメータに、前記第Cノードの各子ノードの接地面の相対高さを前記ノード拡張傾斜角を用いて表したパラメータが含まれることを特徴とする請求の範囲第24に記載の移動体の制御装置。 - 前記接地部位のそれぞれに作用する実床反力を検出または推定する床反力検出手段を備え、
前記ノード動作制御手段は、少なくとも前記各接地部位の実床反力を基に前記ノード拡張モーメントを逐次決定する手段と、この決定したノード拡張モーメントに所定の行列を乗じることにより前記ノード拡張傾斜角を逐次決定する手段とを備え、前記決定したノード拡張傾斜角と、前記床形状パラメータの推定値の過去値とを基に、新たな床形状パラメータを推定することを特徴とする請求の範囲第24項に記載の移動体の制御装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003398171 | 2003-11-27 | ||
JP2003398171 | 2003-11-27 | ||
PCT/JP2004/018072 WO2005051608A1 (ja) | 2003-11-27 | 2004-11-29 | 移動体の制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPWO2005051608A1 true JPWO2005051608A1 (ja) | 2007-06-21 |
JP4126063B2 JP4126063B2 (ja) | 2008-07-30 |
Family
ID=34631559
Family Applications (3)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005515858A Expired - Fee Related JP4684892B2 (ja) | 2003-11-27 | 2004-11-29 | 2足移動ロボットの制御装置 |
JP2005515856A Expired - Fee Related JP4126063B2 (ja) | 2003-11-27 | 2004-11-29 | 移動体の制御装置 |
JP2005515857A Expired - Fee Related JP4126064B2 (ja) | 2003-11-27 | 2004-11-29 | 移動体の制御装置 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005515858A Expired - Fee Related JP4684892B2 (ja) | 2003-11-27 | 2004-11-29 | 2足移動ロボットの制御装置 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005515857A Expired - Fee Related JP4126064B2 (ja) | 2003-11-27 | 2004-11-29 | 移動体の制御装置 |
Country Status (6)
Country | Link |
---|---|
US (3) | US7603199B2 (ja) |
EP (3) | EP1695799B1 (ja) |
JP (3) | JP4684892B2 (ja) |
KR (3) | KR101112500B1 (ja) |
DE (1) | DE602004032467D1 (ja) |
WO (2) | WO2005051611A1 (ja) |
Families Citing this family (62)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2002237689B2 (en) | 2000-11-29 | 2008-01-10 | Xy, Llc. | System to separate frozen-thawed spermatozoa into X-chromosome bearing and Y-chromosome bearing populations |
US7169548B2 (en) | 2002-09-13 | 2007-01-30 | Xy, Inc. | Sperm cell processing and preservation systems |
EP1608963B1 (en) | 2003-03-28 | 2009-12-30 | Inguran, LLC | Apparatus and methods for providing sex-sorted animal sperm |
US7603199B2 (en) * | 2003-11-27 | 2009-10-13 | Honda Motor Co., Ltd. | Control device for mobile body |
PL2884258T3 (pl) | 2004-07-27 | 2017-04-28 | Beckman Coulter, Inc. | Poprawa zdolności dyskryminacji w cytometrii przepływowej przy użyciu transformacji geometrycznej realizowanej za pomocą komputera |
US20070118260A1 (en) * | 2005-11-21 | 2007-05-24 | Delphi Technologies, Inc. | Frequency-weighted vehicle suspension control |
JP4784432B2 (ja) * | 2006-08-07 | 2011-10-05 | トヨタ自動車株式会社 | 多足歩行ロボット |
JP4700584B2 (ja) | 2006-09-21 | 2011-06-15 | 株式会社ソニー・コンピュータエンタテインメント | 情報処理装置、情報処理方法及びプログラム |
US7996112B1 (en) * | 2007-06-01 | 2011-08-09 | United States Of America As Represented By The Administrator Of The National Aeronautics And Space Administration | Robot and robot system |
DE202009008144U1 (de) * | 2009-06-12 | 2009-08-20 | Steinke Technikus Gmbh | Transportmittel, insbesondere für körperbehinderte Menschen |
JP5232124B2 (ja) * | 2009-10-28 | 2013-07-10 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
JP5483997B2 (ja) * | 2009-10-28 | 2014-05-07 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
CN102470531B (zh) * | 2010-01-04 | 2016-01-20 | 松下知识产权经营株式会社 | 机器人、机器人的控制装置及控制方法 |
JP5398589B2 (ja) * | 2010-03-01 | 2014-01-29 | 本田技研工業株式会社 | 脚式移動ロボットの目標運動評価装置 |
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 |
TWI412467B (zh) * | 2011-04-11 | 2013-10-21 | Univ Nat Kaohsiung Applied Sci | 六足機械行走裝置 |
DE112011105269B4 (de) * | 2011-05-25 | 2015-06-25 | Hitachi, Ltd. | Kopfstruktur eines Roboters und Antriebsverfahren für den Kopf |
CN102267509B (zh) * | 2011-06-11 | 2012-08-29 | 吉林大学 | 对称式仿生六足行走装置 |
CN103112517B (zh) * | 2013-01-22 | 2015-12-02 | 北京理工大学 | 一种调节四足机器人身体姿态的方法和装置 |
US9292786B2 (en) * | 2014-02-03 | 2016-03-22 | Disney Enterprises, Inc. | Universal balancing controller for lateral stabilization of bipedal robots in dynamic unstable environments |
JP5859036B2 (ja) * | 2014-02-04 | 2016-02-10 | 本田技研工業株式会社 | ロボット |
JP2015182143A (ja) * | 2014-03-20 | 2015-10-22 | セイコーエプソン株式会社 | ロボットおよびロボットシステム |
US9308648B2 (en) * | 2014-07-24 | 2016-04-12 | Google Inc. | Systems and methods for robotic self-right |
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 |
US9517561B2 (en) | 2014-08-25 | 2016-12-13 | Google Inc. | Natural pitch and roll |
US9387588B1 (en) | 2014-08-25 | 2016-07-12 | Google Inc. | Handling gait disturbances with asynchronous timing |
US9895804B1 (en) * | 2014-08-26 | 2018-02-20 | Boston Dynamics, Inc. | Failure mode |
US10926409B1 (en) * | 2014-10-21 | 2021-02-23 | University Of South Florida | Systems and methods for controlling walking robots |
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 |
US9594377B1 (en) | 2015-05-12 | 2017-03-14 | Google Inc. | Auto-height swing adjustment |
US9561592B1 (en) * | 2015-05-15 | 2017-02-07 | Google Inc. | Ground plane compensation for legged robots |
GB2538714A (en) * | 2015-05-25 | 2016-11-30 | Robotical Ltd | Robot Leg |
US10603794B2 (en) * | 2015-08-27 | 2020-03-31 | Accel Robotics Corporation | Robotic camera system |
US9586316B1 (en) | 2015-09-15 | 2017-03-07 | Google Inc. | Determination of robotic step path |
JP6498597B2 (ja) * | 2015-12-14 | 2019-04-10 | 本田技研工業株式会社 | 移動ロボットの制御装置 |
US9778132B1 (en) * | 2015-12-16 | 2017-10-03 | X Development Llc | Methods and systems for force sensor calibration |
US9789919B1 (en) | 2016-03-22 | 2017-10-17 | Google Inc. | Mitigating sensor noise in legged robots |
US10059392B1 (en) * | 2016-06-27 | 2018-08-28 | Boston Dynamics, Inc. | Control of robotic devices with non-constant body pitch |
US9975244B1 (en) * | 2016-08-02 | 2018-05-22 | X Development Llc | Real-time generation of trajectories for actuators of a robot |
US10351189B2 (en) * | 2016-12-13 | 2019-07-16 | Boston Dynamics, Inc. | Whole body manipulation on a legged robot using dynamic balance |
CN107054588B (zh) * | 2017-01-22 | 2019-02-12 | 浙江大学 | 一种水下爬游式机器人及其工作方法 |
CN107054590B (zh) * | 2017-04-25 | 2019-05-07 | 重庆大学 | 振动吸附式水下四足爬壁机器人 |
US11407120B2 (en) * | 2017-04-28 | 2022-08-09 | Sony Corporation | Control device, and control method |
CN107472396B (zh) * | 2017-09-26 | 2021-04-27 | 北京航空航天大学 | 一种可实现空中姿态调整的四足机器人 |
CN109693234B (zh) * | 2017-10-20 | 2021-08-27 | 深圳市优必选科技有限公司 | 机器人跌倒预测方法、装置、终端设备及计算机存储介质 |
CN107791256B (zh) * | 2017-10-24 | 2021-06-29 | 西安航空学院 | 仿蜘蛛型救援机器人 |
US10807246B2 (en) * | 2018-01-08 | 2020-10-20 | Beijing Jingdong Shangke Information Technology Co., Ltd. | Mobile robotic device and method of controlling the same manipulator for locomotion and manipulation |
US20230191597A1 (en) * | 2018-01-10 | 2023-06-22 | Sony Corporation | Control device, control method, and program |
CN108528563B (zh) * | 2018-05-14 | 2023-11-03 | 南京大学 | 一种六足机器人 |
CN108725624B (zh) * | 2018-05-28 | 2023-06-20 | 佛山科学技术学院 | 一种多足机械人的多步态行走装置及其行走方法 |
DE112019002842T5 (de) * | 2018-06-05 | 2021-04-22 | Sony Corporation | Informationsverarbeitungsvorrichtung, informationsverarbeitungsverfahren und programm |
US11198218B1 (en) * | 2018-06-27 | 2021-12-14 | Nick Gorkavyi | Mobile robotic system and method |
WO2020116214A1 (ja) * | 2018-12-03 | 2020-06-11 | ソニー株式会社 | ロボットの脚構造 |
US11407109B2 (en) * | 2020-04-16 | 2022-08-09 | Boston Dynamics, Inc. | Global arm path planning with roadmaps and precomputed domains |
CN112123351B (zh) * | 2020-09-28 | 2022-02-11 | 河海大学常州校区 | 一种仿生蚂蚁探测机器人 |
CN112572632B (zh) * | 2020-12-22 | 2022-10-25 | 重庆文高科技有限公司 | 一种真空吸附式仿生爬壁机器人 |
CN112596531B (zh) * | 2021-03-04 | 2021-06-22 | 德鲁动力科技(成都)有限公司 | 一种四足机器人自适应负载参数调整方法 |
CN115535112B (zh) * | 2022-11-09 | 2023-07-04 | 深圳技术大学 | 一种仿生机器人 |
Family Cites Families (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB8408458D0 (en) * | 1984-04-02 | 1984-05-10 | Stewart D E S | Vehicle |
JP2676793B2 (ja) * | 1988-06-30 | 1997-11-17 | トヨタ自動車株式会社 | 倣い制御ロボット |
JPH08372B2 (ja) | 1989-11-22 | 1996-01-10 | 工業技術院長 | 脚歩行機構の制御装置 |
JP3035051B2 (ja) | 1991-12-20 | 2000-04-17 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
US5337235A (en) * | 1992-03-12 | 1994-08-09 | Honda Giken Kogyo Kabushiki Kaisha | Locomotion control system for legged mobiled robot |
JP3148828B2 (ja) | 1992-04-30 | 2001-03-26 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
US5432417A (en) * | 1992-04-30 | 1995-07-11 | Honda Giken Kogyo Kabushiki Kaisha | Locomotion control system for legged mobile robot |
JP3132156B2 (ja) | 1992-05-22 | 2001-02-05 | 本田技研工業株式会社 | 脚式移動ロボットの歩容生成装置 |
JP3233450B2 (ja) | 1992-05-22 | 2001-11-26 | 本田技研工業株式会社 | 指定時刻到達関数発生器 |
JP3269852B2 (ja) | 1992-05-29 | 2002-04-02 | 本田技研工業株式会社 | 脚式移動ロボットの姿勢安定化制御装置 |
JP3024027B2 (ja) * | 1992-07-20 | 2000-03-21 | 本田技研工業株式会社 | 脚式移動ロボット用傾斜センサの出力補正装置 |
JP3055737B2 (ja) * | 1992-08-28 | 2000-06-26 | 本田技研工業株式会社 | 脚式移動ロボットの歩行制御装置 |
JPH07132472A (ja) | 1993-11-09 | 1995-05-23 | Mitsubishi Heavy Ind Ltd | 複数距離センサによる接近手法 |
JP3446933B2 (ja) | 1996-07-08 | 2003-09-16 | ソニー株式会社 | ロボツト装置及びその制御方法 |
JP3956414B2 (ja) | 1996-11-19 | 2007-08-08 | ソニー株式会社 | ロボット装置及びロボット装置の制御方法 |
WO1998026905A1 (fr) * | 1996-12-19 | 1998-06-25 | Honda Giken Kogyo Kabushiki Kaisha | Controleur d'attitude de robot mobile sur jambes |
JP3629133B2 (ja) | 1997-01-31 | 2005-03-16 | 本田技研工業株式会社 | 脚式移動ロボットの制御装置 |
JP4279416B2 (ja) | 1999-08-30 | 2009-06-17 | 本田技研工業株式会社 | 2足歩行ロボット |
JP3555107B2 (ja) * | 1999-11-24 | 2004-08-18 | ソニー株式会社 | 脚式移動ロボット及び脚式移動ロボットの動作制御方法 |
JP2001157979A (ja) * | 1999-11-30 | 2001-06-12 | Sony Corp | ロボット装置及びその制御方法 |
JP3634238B2 (ja) | 2000-05-19 | 2005-03-30 | 本田技研工業株式会社 | 脚式移動ロボットの床形状推定装置 |
US6975970B2 (en) * | 2000-12-15 | 2005-12-13 | Soliloquy, Inc. | Method for designing an interactive system |
JP3726032B2 (ja) * | 2001-04-27 | 2005-12-14 | 本田技研工業株式会社 | 脚式移動ロボットの目標運動生成装置 |
JP3682525B2 (ja) | 2001-06-07 | 2005-08-10 | 独立行政法人科学技術振興機構 | 二脚歩行式人型ロボット |
KR100959472B1 (ko) * | 2002-03-18 | 2010-05-25 | 소니 주식회사 | 로봇 장치 및 로봇 장치의 제어 방법 |
US6963185B2 (en) | 2002-04-26 | 2005-11-08 | Honda Giken Kogyo Kabushiki Kaisha | System for estimating attitude of leg type moving robot itself |
US7664572B2 (en) | 2002-04-26 | 2010-02-16 | Honda Giken Kogyo Kabushiki Kaisha | Control device of legged mobile robot |
JP3833567B2 (ja) * | 2002-05-01 | 2006-10-11 | 本田技研工業株式会社 | 移動ロボットの姿勢制御装置 |
DE602004029256D1 (de) | 2003-06-27 | 2010-11-04 | Honda Motor Co Ltd | Gangerzeugungsvorrichtung für beweglichen roboter mit beinen |
EP1642689B1 (en) | 2003-06-27 | 2011-02-16 | Honda Motor Co., Ltd. | Controller of legged mobile robot |
US7603199B2 (en) * | 2003-11-27 | 2009-10-13 | Honda Motor Co., Ltd. | Control device for mobile body |
JP4168943B2 (ja) * | 2004-01-28 | 2008-10-22 | トヨタ自動車株式会社 | 脚式ロボットと脚式ロボットの歩行制御方法 |
US7339340B2 (en) * | 2005-03-23 | 2008-03-04 | Harris Corporation | Control system and related method for multi-limbed, multi-legged robot |
-
2004
- 2004-10-29 US US10/596,048 patent/US7603199B2/en active Active
- 2004-11-29 US US10/596,051 patent/US7541764B2/en active Active
- 2004-11-29 EP EP04819493A patent/EP1695799B1/en not_active Expired - Fee Related
- 2004-11-29 KR KR1020067011628A patent/KR101112500B1/ko not_active IP Right Cessation
- 2004-11-29 JP JP2005515858A patent/JP4684892B2/ja not_active Expired - Fee Related
- 2004-11-29 JP JP2005515856A patent/JP4126063B2/ja not_active Expired - Fee Related
- 2004-11-29 US US10/596,055 patent/US7606634B2/en active Active
- 2004-11-29 KR KR1020067011517A patent/KR101112499B1/ko not_active IP Right Cessation
- 2004-11-29 WO PCT/JP2004/018089 patent/WO2005051611A1/ja active Application Filing
- 2004-11-29 DE DE602004032467T patent/DE602004032467D1/de active Active
- 2004-11-29 JP JP2005515857A patent/JP4126064B2/ja not_active Expired - Fee Related
- 2004-11-29 WO PCT/JP2004/018096 patent/WO2005051612A1/ja active Application Filing
- 2004-11-29 EP EP04799928A patent/EP1698439B1/en not_active Expired - Fee Related
- 2004-11-29 EP EP04799941A patent/EP1698440B1/en not_active Expired - Fee Related
- 2004-11-29 KR KR1020067011601A patent/KR101112501B1/ko not_active IP Right Cessation
Also Published As
Publication number | Publication date |
---|---|
WO2005051608A3 (ja) | 2005-07-21 |
US20070013506A1 (en) | 2007-01-18 |
EP1698439A4 (en) | 2009-11-11 |
US20070126387A1 (en) | 2007-06-07 |
KR101112500B1 (ko) | 2012-04-13 |
KR101112501B1 (ko) | 2012-04-12 |
KR101112499B1 (ko) | 2012-04-12 |
US7541764B2 (en) | 2009-06-02 |
KR20060126650A (ko) | 2006-12-08 |
US7606634B2 (en) | 2009-10-20 |
KR20060126649A (ko) | 2006-12-08 |
EP1695799A4 (en) | 2009-11-11 |
EP1698440A4 (en) | 2009-11-04 |
JP4126064B2 (ja) | 2008-07-30 |
JPWO2005051612A1 (ja) | 2007-06-21 |
WO2005051608A2 (ja) | 2005-06-09 |
EP1698439A2 (en) | 2006-09-06 |
US7603199B2 (en) | 2009-10-13 |
EP1695799B1 (en) | 2011-10-12 |
US20070152620A1 (en) | 2007-07-05 |
EP1698440B1 (en) | 2011-10-12 |
EP1698440A1 (en) | 2006-09-06 |
WO2005051612A1 (ja) | 2005-06-09 |
JPWO2005051611A1 (ja) | 2007-06-21 |
JP4684892B2 (ja) | 2011-05-18 |
WO2005051611A1 (ja) | 2005-06-09 |
EP1695799A1 (en) | 2006-08-30 |
JP4126063B2 (ja) | 2008-07-30 |
KR20060126647A (ko) | 2006-12-08 |
EP1698439B1 (en) | 2011-04-27 |
DE602004032467D1 (de) | 2011-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4126063B2 (ja) | 移動体の制御装置 | |
US7112938B2 (en) | Attitude control device of mobile robot | |
Nishiwaki et al. | Toe joints that enhance bipedal and fullbody motion of humanoid robots | |
KR100843863B1 (ko) | 보행식 이동 로봇 및 그 제어 방법, 보행식 이동 로봇을위한 다리부 구조, 및 보행식 이동 로봇을 위한 가동 다리유닛 | |
KR101953113B1 (ko) | 로봇 및 그 제어방법 | |
KR101778027B1 (ko) | 보행 로봇 및 그 자세 제어 방법 | |
US20070156283A1 (en) | Gait generator for mobile robot | |
JP2001322076A (ja) | 脚式移動ロボットの床形状推定装置 | |
JPWO2003011535A1 (ja) | 脚式移動ロボット及びその動作制御方法 | |
EP1552910A1 (en) | Robot device operation control device and operation control method | |
JP2002210681A (ja) | 脚式移動ロボットのための動作制御装置及び動作制御方法、並びにロボット装置 | |
KR20180004397A (ko) | 보행 로봇 및 그 자세 제어 방법 | |
JP2006247800A (ja) | 脚式移動ロボットの制御装置 | |
JP3674787B2 (ja) | ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム | |
JP4237130B2 (ja) | 脚式移動ロボットの制御装置 | |
Sari et al. | Implementation and integration of fuzzy algorithms for descending stair of KMEI humanoid robot | |
Ota et al. | Six-axis force control for walking robot with serial/parallel hybrid mechanism |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060727 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071218 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20080214 |
|
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: 20080507 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20080509 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 4126063 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: 20110516 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110516 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120516 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130516 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140516 Year of fee payment: 6 |
|
LAPS | Cancellation because of no payment of annual fees |