JP5807591B2 - 脚式歩行ロボットおよびその重心軌道生成方法 - Google Patents

脚式歩行ロボットおよびその重心軌道生成方法 Download PDF

Info

Publication number
JP5807591B2
JP5807591B2 JP2012049260A JP2012049260A JP5807591B2 JP 5807591 B2 JP5807591 B2 JP 5807591B2 JP 2012049260 A JP2012049260 A JP 2012049260A JP 2012049260 A JP2012049260 A JP 2012049260A JP 5807591 B2 JP5807591 B2 JP 5807591B2
Authority
JP
Japan
Prior art keywords
center
gravity
trajectory
walking robot
legged walking
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.)
Active
Application number
JP2012049260A
Other languages
English (en)
Other versions
JP2013184232A (ja
Inventor
将弘 土井
将弘 土井
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Toyota Motor Corp
Original Assignee
Toyota Motor Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Toyota Motor Corp filed Critical Toyota Motor Corp
Priority to JP2012049260A priority Critical patent/JP5807591B2/ja
Publication of JP2013184232A publication Critical patent/JP2013184232A/ja
Application granted granted Critical
Publication of JP5807591B2 publication Critical patent/JP5807591B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明は脚式歩行ロボットおよびその重心軌道生成方法に関し、特に、ロボットの上半身動作を用いずに、鉛直軸周りに滑ることを回避して安定して動作可能な重心軌道を生成できる脚式歩行ロボットおよびその重心軌道生成方法に関する。
ロボットの脚式歩行制御において、足裏と地面との滑りに着目した技術が提案されている。このような技術として、例えば、予め水平方向並進床反力や鉛直軸周り床反力モーメントが、ある範囲内に収まるように歩容・軌道を生成する、という技術が知られている。このような技術として、例えば特許文献1に開示される技術がある。
特許第4199236号公報
特許文献1に開示される技術では、鉛直軸周り床反力モーメントの補償を、歩容生成・軌道生成とは別のこととして扱い、上半身の動作(例えば腕の振りや状態のひねり)によって抑制するという方針を採用している。
しかしながら、両腕で物体を運搬している状況(例えば、両腕でお盆を持って水を運んでいるという状況)では、床の摩擦が低い(鉛直軸周り床反力モーメントを低く制限する必要がある)からといって、腕を前後に振る、または上体を左右に振って補償動作を行う、ということはできない。また、腕の振りや上体のひねりによる補償では、例えば補償動作として上体を左にひねるとすると、いずれかのタイミングでひねった上体を正面に戻す必要があり、上体を戻す際に鉛直軸周りモーメントが不利な方向に発生することが避けられないという問題がある。加えて、補償量が大きな場合や上半身の質量が小さな場合には、腕の振りや上体のひねりを可動域限界まで行ったとしても補償しきれない、という事態が発生する可能性もある。
一方で、発明者は検討の結果、ZMPの特性上、鉛直軸周りの床反力モーメントは、重心周りモーメントと、重心位置と、ZMP位置との関数になっており、必ずしも上半身の動きで全て補償する必要はないという事実を見出した。
本発明はこの事実に基づき、上述した問題点を解決するためになされたものであり、重心軌道生成時に鉛直軸周りの床反力モーメント制限を反映させることで、ロボットの上半身動作を用いずに、鉛直軸周りに滑ることを回避して安定して動作可能な重心軌道を生成できる脚式歩行ロボットおよびその重心軌道生成方法を提供することを目的とする。
本発明に係る脚式歩行ロボットの重心軌道生成方法は、モデル予測制御を適用して重心軌道を生成する脚式歩行ロボットの重心軌道生成方法であって、前記脚式歩行ロボットを単一の質点で表した単質点モデルを用いて、設定される目標ZMP軌道に基づくZMP制約条件を満たすように、重心軌道の生成を行う第1の重心軌道生成ステップと、前記第1の重心軌道生成ステップで生成された重心軌道と、前記脚式歩行ロボットを複数の質点で表した多質点モデルと、を用いて、前記脚式歩行ロボットの重心周りに発生する重心周りモーメントを計算する重心周りモーメント計算ステップと、前記脚式歩行ロボットの進行方向と、当該進行方向に直交する方向と、に平行する方向を水平方向とし、当該水平方向に直交する方向を鉛直方向として、前記脚式歩行ロボットの足裏が床に接触することで受ける床反力に関して、前記脚式歩行ロボットのZMPを基準として前記鉛直方向に沿って配置される鉛直軸周りに発生する鉛直軸周り床反力モーメントと、前記脚式歩行ロボットのZMPを基準として前記水平方向に発生する水平方向並進床反力と、についてそれぞれ制限値が設定され、当該設定される制限値と、前記重心周りモーメント計算ステップで計算された重心周りモーメントと、を用いて、床反力の制約条件を反映させるための重心加速度の制約条件を計算する重心加速度制約条件計算ステップと、前記単質点モデルを用いて、前記ZMP制約条件と、前記重心加速度制約条件計算ステップで計算された重心加速度の制約条件と、を満たすように、重心軌道の生成を行う第2の重心軌道生成ステップと、を備えるものである。これにより、重心軌道生成時に鉛直軸周りの床反力モーメント制限を反映させることで、ロボットの上半身動作を用いずに、鉛直軸周りに滑ることを回避して安定して動作可能な重心軌道を生成することができる。
また、前記重心加速度制約条件計算ステップでは、前記鉛直軸周り床反力モーメントの制限値および前記水平方向並進床反力の制限値として、それぞれ予め定めた固定値が設定されるようにするとよい。
さらにまた、前記第1の重心軌道生成ステップによる重心軌道生成回数および前記第2の重心軌道生成ステップによる重心軌道生成回数の合計が、規定回数に達したか否かを判定する判定ステップを更に備え、前記規定回数に達するまでの間、前記重心周りモーメント計算ステップと、前記重心加速度制約条件計算ステップと、前記第2の重心軌道生成ステップと、による処理を繰り返して実行させるようにするとよい。
また、前記第1の重心軌道生成ステップおよび前記第2の重心軌道生成ステップでは、重心軌道の生成を、制約条件の下で最適解を求解する凸二次計画問題として扱うようにするとよい。
さらにまた、前記脚式歩行ロボットが、2脚歩行ロボットであるようにするとよい。
本発明に係る脚式歩行ロボットは、上述の脚式歩行ロボットの重心軌道生成方法を実行するコントローラを備えるものである。これにより、重心軌道生成時に鉛直軸周りの床反力モーメント制限を反映させることで、ロボットの上半身動作を用いずに、鉛直軸周りに滑ることを回避して安定して動作可能な重心軌道を生成することができる。
本発明によれば、ロボットの上半身動作を用いずに、鉛直軸周りに滑ることを回避して安定して動作可能な重心軌道を生成できる脚式歩行ロボットおよびその重心軌道生成方法を提供することができる。
実施の形態1に係る脚式歩行ロボットの模式図である。 実施の形態1に係る重心軌道生成処理の概要を説明するための図である。 実施の形態1に係る力の定義を説明するための図である。 実施の形態1に係る線形倒立振子モデルを説明するための図である。 実施の形態1に係る重心周りモーメントを説明するための図である。 実施の形態1に係る各サンプリング点での入出力と状態変数を説明するための図である。 実施の形態1に係るReceding Horizon制御の考え方を説明するための図である。 実施の形態1に係る支持多角形を説明するための図である。 実施の形態1に係る多質点モデルを説明するための図である。 実施の形態1に係る初期化処理を示すフローチャートである。 実施の形態1に係る周期実行処理を示すフローチャートである。
以下では、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。各図面において、同一又は対応する要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略される。
<発明の実施の形態1>
図1は、本実施の形態に係る脚式歩行ロボットとしての2脚歩行ロボット10の模式的な構成例を示している。以下では、2脚歩行ロボット10を単にロボット10と称する。ロボット10は、関節角を制御するアクチュエータと、関節角を検出するエンコーダと、が脚の各関節に内蔵されている。また、ロボット10は、コントローラ20を備えている。コントローラ20が、歩容データに基づいて脚の各関節を制御する。すなわち、コントローラ20は、歩容データから得られる各関節の目標角度に追従するように、アクチュエータを制御する。より具体的には、コントローラ20は、歩容データ(足の目標軌道と重心の目標軌道)を用いて各関節の目標角の時系列データを算出し、算出した目標角に追従するように、各関節を制御する。歩容データを用いて関節目標角を生成する手法については、従来から知られている手法を用いればよいため、ここではその詳細な説明を省略する。
なお、コントローラ20は、主要なハードウェア構成として、制御処理、演算処理等と行うCPU(Central Processing Unit)と、CPUによって実行される制御プログラムと、演算プログラム等が記憶されたROM(Read Only Memory)と、処理データ等を一時的に記憶するRAM(Random Access Memory)と、を有するマイクロコンピュータを用いて構成されている。また、これらCPU、ROM、及びRAMは、データバスによって相互に接続されている。
図2は、コントローラ20が実行する重心軌道生成処理の概要を示すフローチャートである。コントローラ20は、まず、モデル予測制御に基づいて、ロボット10の重心軌道の生成を行う(S201)。コントローラ20は、単質点モデルを用いて、設定される目標ZMP軌道に基づくZMP制約条件を満たすように重心軌道の生成を行うが、ここでの重心軌道の生成は床反力の制約条件(制限)を設けずに行う。
次いで、コントローラ20は、S201で生成された重心軌道と、ロボット10のフルモデルと、を用いて、Roll・Pitch・Yaw軸周りの重心周りモーメントを計算する(S202)。
次いで、コントローラ20は、S202で計算された重心周りモーメントと、ロボット10の足裏が床に接触することで受ける床反力に関する制限値としての、設定される鉛直軸(Yaw軸)周り床反力モーメント制限値と、設定される水平方向並進床反力の制限値と、を用いて、床反力の制約条件(制限)を反映させるための重心加速度の制約条件を計算する(S203)。
最後に、コントローラ20は、再度モデル予測制御を用いて、ロボット10の重心軌道の再生成を行う(S204)。コントローラ20は、単質点モデルを用いて、ZMP制約条件と、計算された重心加速度の制約条件と、を満たすように重心軌道の生成を行うが、ここでの重心軌道の再生成は計算した重心加速度の制約条件を加えて行う。
これにより、水平方向並進床反力および鉛直軸周り床反力モーメントの制限値を満たす軌道を生成することができる。この軌道生成処理で特筆すべき点は、軌道の生成処理自体は重心軌道の生成を行う処理であり、かつ、上半身動作による鉛直軸周り床反力モーメントの補償を全く行っていないことである。
以下、S201〜S204での処理を具体的に説明する。なお、説明の都合上、まずS201およびS204で用いるモデル予測制御を説明し、続いてS202、S203の順で説明を行う。また、本実施の形態に係る重心軌道生成処理の初期化ルーチン処理および周期実行ルーチン処理の詳細ついては後述する。
(S201、S204:モデル予測制御の説明)
まず、図3を用いて、軌道生成処理に用いる力の定義を説明する。図3左図に示すように、ロボット10の進行方向をx軸方向、x軸方向に直交する方向をy軸方向とし、x軸およびy軸と直交する軸をz軸方向とする。また、図3右図にロボットの足下部分を拡大して示す。図3右図に示すように、ロボット10の足裏が床に接触することで受ける反力に関して、ロボット10のZMPを基準として、水平方向並進床反力をそれぞれF、Fとし、鉛直方向並進床反力をFとし、鉛直軸周り床反力モーメントをMとする。また、ZMPの位置は、xzmp,yzmp,zzmpとする。
S201およびS204の軌道生成処理では、ロボット10を単一の質点として表現した単質点モデルを用いる。ロボット10の重心位置を、x,y,zと定義する。ロボット10の全質量をmとし、重力加速度をgとする。ロボット10の重心モデルのZMP方程式は、以下の式(1)により示される。式(1)において、I、およびIは、重心周りモーメントを示す(図5参照。)。重心周りモーメントの詳細は後述する。なお、以下の式において、変数の上部に配置される"・"は一階微分を示し、"・・"は二階微分を示している。
Figure 0005807591
次に、線形倒立振子モデルを用いた近似を行う。この線形倒立振子モデルを用いた近似はよく知られている。式(2)に示すように、床面からの重心高さzを一定値(const)にし(図4を参照。)、重心周りモーメントI、Iを0に設定する。
Figure 0005807591
すると、上述した式(1)は、線形化された簡単な式として示すことができる。この線形化された式を、以下の式(3)に示す。
Figure 0005807591
次に、x軸方向に関して、システムへの入力と出力を以下の式(4)に示すように定義する。
Figure 0005807591
さらに、上述した式(3)を線形の連続システムとして記述する。この連続システムを、以下の式(5)に示す。
Figure 0005807591
上述した式(5)における行列x(t)、行列A、行列b、行列cのチルダ、行列cのチルダは、以下の式(6)に示される。
Figure 0005807591
上述した式(5)を離散時間間隔Δtで離散化する。この離散化の様子を図6に示す。図6は、離散化した各サンプリング点における入出力と状態変数の関係を示す図である。得られる離散システムを、以下の式(7)に示す。
Figure 0005807591
上述した式(7)における行列x、行列A、行列b、行列c、行列cは、以下の式(8)に示される。
Figure 0005807591
本実施の形態に係るモデル予測制御は、Receding Horizon Controlとも呼ばれる。図7を用いて、このReceding Horizon Controlの考え方を簡単に説明する。図7に示すように、現在においてNΔt未来までの期間のモデル挙動を予測して最適化計算を行い、現在の入力値uを決定する。Δt秒後にはまた同様の計算を行いΔt秒後の入力値uk+1を決定する。このような計算過程を一定周期毎に行い、結果として最適な軌道を生成することができる。
NΔt未来までの期間の予測に関しては、以下の式(9)に示すように、離散システムを未来に向かって積算していくことで得ることができる。式(9)において、現在から未来までの各サンプリング点における入力値をu ,u k+1,u k+2,・・・,u k+Nとし、現在から未来までの各サンプリング点における状態変数値をx,xk+1,xk+2,・・・,xk+Nとする。また、出力に関しても同様に、p ,p k+1,p k+2,・・・,p k+N、a ,a k+1,a k+2,・・・,a k+Nとする。これらの入出力は、図6に示したとおりである。なお、式(9)では、現在のタイミングを、kサンプル目としている。
Figure 0005807591
また、入力値列u 、出力値列p 、a を用いて、以下の式(10)に示す行列u 、v 、w を定義する。
Figure 0005807591
上述した式(7)、(9)、(10)を用いて、未来の出力値列v およびw を計算する。すると、未来の出力値列v およびw は、それぞれ以下の式(11)および(12)に示される。
Figure 0005807591
Figure 0005807591
ここで、NΔt未来までの目標ZMP列をv k+1のハットとし、以下の式(13)により定める。ここで、目標ZMP軌道(p k+1のハットの列)は、予め適切な値が設定されるものとする。
Figure 0005807591
モデル予測制御型軌道生成方法では、最適化の評価関数を、例えば以下の式(14)に示す形で設定する。式(14)に示す評価関数は、予測区間内の目標ZMPとZMPの誤差の二乗と、入力値の二乗と、を足し合わせた値を最小化する形で示される。
Figure 0005807591
上述した式(14)に示した評価関数はモデル予測制御の一般的な与え方である。本実施の形態では、式(14)に関して、第1項の役割は、ZMPを目標ZMPに近づけることであり、第2項の役割は、入力値が過剰に働くのを抑止すること(重心が発散するのを抑制すること)であると考える。また、式(14)に示した行列QおよびRは、上記第1項および第2項をバランスするための重み行列であり、以下の式(15)により示される。これらの重み行列の値は、制御対象に応じて予め適切な値が設定される。
Figure 0005807591
上述した式(14)に式(11)を代入することで、以下に示す式(16)を得る。
Figure 0005807591
上述した式(16)における行列H 、ベクトルf は、以下の式(17)に示される。
Figure 0005807591
従って、上述した式(14)の評価関数は、以下の式(18)により示す形で定式化することができる。
Figure 0005807591
上述した式の展開はy軸方向に関しても同様に成り立つ。このため、y軸方向に関する評価関数は、以下の式(19)により示される。
Figure 0005807591
ここで、ベクトルu、行列H、ベクトルfを、以下の式(20)に示すように定める。
Figure 0005807591
すると、上述した式(18)および(19)をまとめることで、以下に示す式(21)を得ることができる。すなわち、式(21)は、本実施の形態に係るモデル予測制御で用いる、x軸方向とy軸方向の両方に関して考慮した最適化の評価関数となる。
Figure 0005807591
次に、評価関数に対する制約条件を説明する。本実施の形態では、ZMP制約条件と重心加速度制約条件を、制約条件として評価関数に設定する。ただし、S201での軌道生成処理では、ZMP制約条件のみを設定して軌道生成処理を行い、S204での軌道生成処理では、ZMP制約条件に加えて重心加速度制約条件を設定して軌道生成処理を行う。
まず、ZMP制約条件を説明する。ロボット10の重心軌道を生成する場合、ロボット10の足裏の範囲内(より正確には、足裏外縁から一定のマージンを設けて配置される多角形内)にZMPが留まるような軌道を生成することで、安定な歩行を実現できる。このような多角形は、一般的に支持多角形と呼ばれる。
図8に、単脚支持期および両脚支持期における支持多角形を例示する。図8左図に示すように、左足平30Lと右足平30Rに設けられたZMP設定可能域40に関して、左足支持期では左足平30Lに支持多角形が構成される。また、両足支持期では、図8右図に示すように支持多角形50が構成される。
その名前からも分かるように、支持多角形は単脚支持期や両脚支持期などの状況によって形状は変化するものの、基本的には多角形で表される。すなわち、支持多角形内にZMPが留まる、という条件は、任意のベクトルλ、λ、dを用いて、以下の式(22)により示すことができる。これらのベクトルλ、λ、dの値は、予め適切な値が設定されるものとする。
Figure 0005807591
従って、未来の各サンプリング点k+j(j=1,・・・,N)において上述した式(22)に示したZMP制約を仮定することで、以下に示す式(23)を得ることができる。
Figure 0005807591
さらに、上述した式(23)を展開することで、以下に示す式(24)を得る。
Figure 0005807591
そして、上述した式(24)をさらに整理することで、以下に示す式(25)を得る。
Figure 0005807591
上述した式(25)において、ベクトルvk+1およびベクトルηは、以下の式(26)に示される。
Figure 0005807591
また、上述した式(25)において、行列Γは、以下の式(27)に示される。
Figure 0005807591
さらに、上述した式(25)に対して上述した式(11)を代入することで、以下の式(28)に示す線形不等式を導くことができる。すなわち、ZMPを支持多角形内に留めるというZMP制約条件に関して、最終的には、入力値列ベクトルuに関する線形不等式により記述できることを示している。
Figure 0005807591
なお、上述した式(28)では、以下の式(29)に示すように、行列P 、行列q を定めた。
Figure 0005807591
次に、重心加速度制約条件を説明する。xy方向の重心加速度が、上述した式(22)に示したような線形な関係で記述されているとする。すなわち、以下の式(30)に示すような線形関係で記述されているとする。
Figure 0005807591
すると、以降は上述したZMP制約条件に関する式の導出と全く同様の式変形を行うことで、最終的に、重心の加速度制約条件を、以下の式(31)に示すようなuに関する線形不等式で記述することができる。
Figure 0005807591
以上に説明したようにして、ZMP制約条件と重心加速度制約条件を導入することができた。S201では、ZMP制約条件のみを設定し、重心加速度制約条件を設定しないため、制約条件Pおよびqを、以下の式(32)に示すように定める。
Figure 0005807591
S204では、ZMP制約条件に加えて、重心加速度制約条件を設定する。このため、制約条件Pおよびqを、以下の式(33)に示すように定める。
Figure 0005807591
上述した式(28)、(31)、(32)、(33)から、制約条件はいずれの場合であっても、以下の式(34)により記述することができる。
式(21)
Figure 0005807591
以上をまとめると、上述した式(21)に示した評価関数と、上述した式(34)に示した制約条件と、を用いることで、以下の式(35)に示す最適化問題を構成することができる。式(35)に示すように、最適化問題は凸二次計画問題として定式化することができる。この凸二次計画問題は高速かつ安定に求解することが可能である。モデル予測制御では、現在状態を入力して最適化問題を求解するまでの計算処理を時間を進めながら毎周期実行していき、毎周期ごとに入力値を決めていく。
Figure 0005807591
(S202:フルモデルによる重心周りモーメントの計算の説明)
続いて、重心周りモーメントの計算を説明する。
上述したモデル予測制御による重心軌道の計算では、ロボット10を単一の質点として表現した単質点モデルを用いて計算するが、複数の質点を持つロボット10が実際に運動をする場合には、単質点モデルでは表現されない重心周りのモーメントが発生する(図5参照)。この重心周りのモーメントは、重心周りに発生する角運動量の微分、もしくは、重心周りに発生する角運動量の時間変化率などとも呼ばれ、いずれも同じ値を意味している。
本実施の形態では、図9に例示するフルモデルとしての多質点モデルを用いて、ロボット10が表現されるものとする。なお、M個の質点それぞれに順番に番号が付与され、各質点が、質量mと、位置r=[xのパラメータを持つものとする。この時、ロボット10全体の重心の位置rcogは、以下の式(36)により示される。ロボット10の各質点の質量と位置の設定は、ユーザ、あるいはコントローラ20に指令を与える上位コントローラによって設定すればよい。
Figure 0005807591
すると、重心周りモーメントIは、以下の式(37)により計算することができる。
Figure 0005807591
なお、上述した式(37)において、行列Iは以下の式(38)により示される。
Figure 0005807591
上述した式(37)から分かるように、重心周りモーメントは、重心と各質点の相対位置・加速度を外積計算することで各質点が重心周りに発生するモーメント量を計算し、さらに、この計算量を足し合わせる形になっている、と解釈することができる。
本実施の形態では、生成した重心軌道と、ロボット10の足先軌道と、に基づいて、未来のN個の各サンプリング点におけるロボット10の姿勢を計算し、その姿勢から各質点の位置および加速度を計算する。そして、この計算した各質点の位置および加速度と、式(36)を用いて計算するロボット10の全体重心位置およびその加速度と、を式(36)に代入する。すなわち、未来のN個の各サンプリング点において上述した式(37)を計算することで、各サンプリング点における重心周りモーメントI k+j、I k+j、I k+j(j=1,・・・,N)を計算する。
なお、重心軌道を再び更新する際には、この重心周りモーメントの計算値を用いて、x、y軸の重心周りモーメントI k+j、I k+jによって発生するZMP偏差を計算し、目標ZMP軌道を修正するものとしてもよい(この手法は、例えば特開2004−114243号公報にて詳細に提案されている。)。これによって、ZMPのずれをより効果的に抑制することができ、より安定した動作を実現することができる。
(S203:床反力制約を満たすための重心加速度制約条件の計算の説明)
続いて、重心加速度制約条件の計算を説明する。
床反力制約を満たすための重心加速度制約条件は、上述した式(37)により計算される重心周りモーメントと、鉛直軸(Yaw軸)周り床反力モーメント制限値と、水平方向並進床反力の制限値と、を用いて計算される。以下、鉛直軸(Yaw軸)周り床反力モーメント制限値と、水平方向並進床反力の制限値と、を説明する。
まず、鉛直軸(Yaw軸)周り床反力モーメント制限値を説明する。
上述した式(1)の1番目の式にy(・・) (yの二階微分)を掛け、2番目の式にx(・・) (xの二階微分)を掛け、1番目の式から2番目の式を加減することで、以下に示す式(39)を得る。
Figure 0005807591
また、鉛直軸周り床反力モーメントMのつり合い式は、以下の式(40)により示される。
Figure 0005807591
上述した式(39)および(40)から、以下の式(41)を得る。
Figure 0005807591
鉛直軸周り床反力モーメントMに関して、床面に合わせてロボット10の足が滑らないように上限Mmax および下限Mmin を設定すると、この条件は以下の式(42)により示される。なお、本実施の形態では、鉛直軸周り床反力モーメントの上下限制限値は、固定値として設定される。鉛直軸周り床反力モーメントの上下限制限値の設定は、ユーザ、あるいはコントローラ20に指令を与える上位コントローラによって設定すればよい。
Figure 0005807591
従って、上述した式(41)および(42)から、以下の式(43)を得る。このようにして、鉛直軸周り床反力モーメントの上下限から、重心水平方向加速度の制約条件を導出することができる。
Figure 0005807591
次に、水平方向並進床反力の制限値を説明する。並進床反力の制限についても、床面に合わせてロボット10の足が滑らないように上限Fmax 、Fmax および下限Fmin 、Fmin を設定すると、この条件は以下の式(44)により示される。そして、式(44)を式(45)へと変換することで、上述した重心水平方向加速度の制約条件へと変換することができる。なお、本実施の形態では、水平方向並進床反力の上下限制限値は、固定値として設定される。水平方向並進床反力の上下限制限値の設定は、ユーザ、あるいはコントローラ20に指令を与える上位コントローラによって設定すればよい。
Figure 0005807591
Figure 0005807591
未来のN個の各サンプリング点において、鉛直軸周り床反力モーメントの上下限値を用いた上述した式(43)と、水平方向並進床反力の制限値を用いた上述した(45)と、を計算することで、各サンプリング点における重心水平方向加速度の制約条件を計算することができる。
すなわち、任意のサンプリング点k+jにおける重心水平方向加速度の制約条件は、鉛直軸周り床反力モーメントの制約条件が以下に示す式(46)により示される。ただし、z[k+j]のツードットは、未来のサンプリング点k+jにおける鉛直方向重心加速度である。
Figure 0005807591
また、水平方向並進床反力の制約条件が以下に示す式(47)により示される。
Figure 0005807591
そして、上述した式(46)および(47)をまとめることで、以下に示す式(48)を得る。
Figure 0005807591
さらに、上述した式(48)をよりまとめることで、以下に示す式(49)を得る。
Figure 0005807591
さらに、上述した式(49)を、上述した式(25)〜(28)にかけて変換の流れと同様にして変換する。まず、上述した式(49)を、以下の式(50)に変換する。
Figure 0005807591
そして、行列Γを以下の式(51)に示すように定める。
Figure 0005807591
また、ベクトルηを以下の式(52)に示すように定める。
Figure 0005807591
すると、上述した式(50)、(51)、(52)から、以下の式(53)を得る。
Figure 0005807591
さらに、上述した式(53)を変換することで、最終的に、以下の式(54)に示す入力の制約条件式を導出することができる。この導出された制約条件に関して、本実施の形態と従来技術との間での一番の相違点は、鉛直軸周り床反力モーメントの制約を重心の加速度制約に変換し、軌道生成時に反映させるように構成したことである。
Figure 0005807591
上述した式(54)に示した重心の加速度制約条件を、式(34)に示したZMP制約条件と合わせて制約条件式として設定し、この制約条件の下で、式(35)に示した凸二次計画問題を求解する。これにより、地面に対して足裏が滑ることを回避して安定して動作可能な重心軌道を生成することが可能となる。
(重心軌道生成処理の初期化ルーチン処理および周期実行ルーチン処理の説明)
以下、本実施の形態に係る重心軌道生成処理の初期化ルーチン処理および周期実行ルーチン処理の詳細を図10及び図11を用いて説明する。
(重心軌道生成処理の初期化ルーチン処理)
図10は、コントローラ20が実行する重心軌道生成処理の初期化ルーチン処理のフローチャートを示す。初期化ルーチンは、後述する図11に示す周期実行ルーチン開始前の初期化時に実行される。
コントローラ20は、サンプリング時間間隔である周期Δtと、基準重心高さhと、を設定する(S1001)。コントローラ20は、システム行列およびベクトルを計算する(S1002)。より具体的には、上述した式(8)に示した行列A、b、ベクトルc、cを計算する。コントローラ20は、上述した式(15)に示した重み行列Q、Rを設定する(S1003)。コントローラ20は、上述した式(11)および(12)に示した出力値系列の係数(Gp1、Gp2、Ga1、Ga2)を計算する(S1004)。
(重心軌道生成処理の周期実行ルーチン処理の説明)
図11は、コントローラ20が実行する重心軌道生成処理の周期実行ルーチン処理のフローチャートを示す。コントローラ20は、ロボット10の現在状態(重心位置x、y、速度、加速度)を設定する(S1101)。ロボット10の現在状態は、ロボット10自らが現在の重心位置・速度・加速度を取得して設定することができる。また、現在状態は、ユーザ、あるいはコントローラ20に指令を与える上位コントローラによって設定するものとしてもよい。
コントローラ20は、目標ZMP軌道(v のハット、v のハット)を設定する(S1102)。コントローラ20は、上述した式(20)に示したH、fを用いて、上述した式(21)に示した評価関数を設定する(S1103)。
コントローラ20は、上述した式(29)、(26)、(27)に示したZMP制約条件(P 、q )を計算する(S1104)。コントローラ20は、上述した式(34)に示した不等式制約条件に関して、S2004で計算した値を、上述した式(32)に示すようにして不等式制約として設定する(S2005)。すなわち、ZMP制約条件のみを不等式制約条件に設定する。
コントローラ20は、上述した式(35)に示した凸二次計画問題を求解する(S1106)。コントローラ20は、凸二次計画問題の求解結果uを用いて、重視軌道を更新する(S1107)。すなわち、現在の時刻から未来のN個のサンプリング点における各重心位置を計算する。jは1〜Nまでの値を取る整数である。
コントローラ20は、重心軌道のS1107での更新回数が規定回数に到達したか否か判定する(S2008)。S1109で計算される重心周りモーメントの計算値は、S1107において1回目に生成した重心軌道に基づいて生成される。このため、厳密に言えば、重心軌道を再更新すると重心周りモーメントの計算値も変化してしまう。しかし、重心軌道更新のプロセスを再度繰り返すことで、この変化による影響を無視することができる。そこで、本実施の形態では、予め設定される規定回数に到達するまでの間、重心軌道の更新を行うことで、重心周りモーメントの計算値の変化を収束させる。なお、鉛直軸周り床反力モーメントの上下限値に多少余裕を持たせておくことで、この変化による影響を無視することもできる。
コントローラ20は、上述した式(37)を用いて、生成された重心軌道に基づく重心周りモーメントを計算する(S2009)。より具体的に説明すると、コントローラ20は、まず、S2007で生成(あるいは更新)した重心軌道と、ロボット10の足先軌道と、を用いて未来のN個の各サンプリング時刻点におけるロボット10の姿勢を計算する。足先軌道の生成は、例えば、多項式補間を用いて生成すればよい。そして、コントローラ20は、計算した各姿勢から、図9に例示した各質点の位置を計算し、この各質点の位置の変化から各質点の加速度を計算する。コントローラ20は、この計算した各質点の位置および加速度と、式(36)を用いて計算するロボット10の全体重心位置およびその加速度と、を式(37)に入力し、重心周りモーメントを計算する。なお、足先軌道の生成手法については、従来から知られている手法を用いればよいため、ここではその詳細な説明を省略する。また、ロボット10の全体重心位置の計算方法については、式(36)を用いて計算してもよいし、S1107で生成(あるいは更新)した重心軌道をそのまま用いるものとしてもよい。
コントローラ20は、床反力制限値(鉛直軸周り床反力モーメントの上下限制限値および水平方向並進床反力の上下限制限値)を設定する(S1110)。コントローラ20は、上述した式(48)〜(54)に示した加速度制約条件(P 、q )を計算する(S2011)。コントローラ20は、上述した式(34)に示した不等式制約条件に関して、S1111で計算した値を、上述した式(33)に示すようにして不等式制約として設定する(S1112)。すなわち、ZMP制約条件に加えて重心加速度制約条件を不等式制約条件に設定する。
コントローラ20は、時間Δt後から開始する次の周期での軌道生成処理を行うために、周期更新を行う(S1113)。すなわち、kを1増加させ、tをΔt増加させる。
なお、図2で示したS201の内容が図11に示したS1105およびS1106での処理に相当し、S202の内容がS1109での処理に相当し、S203の内容がS1110およびS1111での処理に相当し、S204の内容がS1112および再び実行するS1106での処理に相当する。
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、上述した実施の形態では、鉛直軸周り床反力モーメントの上下限制限値および水平方向並進床反力の水平方向床反力の上下限制限値を固定値とする場合を例に説明したいが、本発明はこれに限定されず、地面に応じてオンラインに変更する、時間経過に応じて変化させる、などのように状況に応じて変更させる構成としてもよい。
10 脚式歩行ロボット、
20 コントローラ、
30R 右足平、
30L 左足平、
40 ZMP設定可能域、
50 支持多角形、

Claims (6)

  1. モデル予測制御を適用して重心軌道を生成する脚式歩行ロボットの重心軌道生成方法であって、
    前記脚式歩行ロボットを単一の質点で表した単質点モデルを用いて、設定される目標ZMP軌道に基づくZMP制約条件を満たすように、重心軌道の生成を行う第1の重心軌道生成ステップと、
    前記第1の重心軌道生成ステップで生成された重心軌道と、前記脚式歩行ロボットを複数の質点で表した多質点モデルと、を用いて、前記脚式歩行ロボットの重心周りに発生する重心周りモーメントを計算する重心周りモーメント計算ステップと、
    前記脚式歩行ロボットの進行方向と、当該進行方向に直交する方向と、に平行する方向を水平方向とし、当該水平方向に直交する方向を鉛直方向として、前記脚式歩行ロボットの足裏が床に接触することで受ける床反力に関して、前記脚式歩行ロボットのZMPを基準として前記鉛直方向に沿って配置される鉛直軸周りに発生する鉛直軸周り床反力モーメントと、前記脚式歩行ロボットのZMPを基準として前記水平方向に発生する水平方向並進床反力と、についてそれぞれ制限値が設定され、当該設定される制限値と、前記重心周りモーメント計算ステップで計算された重心周りモーメントと、を用いて、床反力の制約条件を反映させるための重心加速度の制約条件を計算する重心加速度制約条件計算ステップと、
    前記単質点モデルを用いて、前記ZMP制約条件と、前記重心加速度制約条件計算ステップで計算された重心加速度の制約条件と、を満たすように、重心軌道の生成を行う第2の重心軌道生成ステップと、
    を備える脚式歩行ロボットの重心軌道生成方法。
  2. 前記重心加速度制約条件計算ステップでは、前記鉛直軸周り床反力モーメントの制限値および前記水平方向並進床反力の制限値として、それぞれ予め定めた固定値が設定される、
    請求項1に記載の脚式歩行ロボットの重心軌道生成方法。
  3. 前記第1の重心軌道生成ステップによる重心軌道生成回数および前記第2の重心軌道生成ステップによる重心軌道生成回数の合計が、規定回数に達したか否かを判定する判定ステップを更に備え、
    前記規定回数に達するまでの間、前記重心周りモーメント計算ステップと、前記重心加速度制約条件計算ステップと、前記第2の重心軌道生成ステップと、による処理を繰り返して実行させる、
    請求項1または2に記載の脚式歩行ロボットの重心軌道生成方法。
  4. 前記第1の重心軌道生成ステップおよび前記第2の重心軌道生成ステップでは、重心軌道の生成を、制約条件の下で最適解を求解する凸二次計画問題として扱う、
    請求項1〜3いずれか1項に記載の脚式歩行ロボットの重心軌道生成方法。
  5. 前記脚式歩行ロボットが、2脚歩行ロボットである
    請求項1〜4いずれか1項に記載の脚式歩行ロボットの重心軌道生成方法。
  6. 前記請求項1〜5のいずれか1項の脚式歩行ロボットの重心軌道生成方法を実行するコントローラを備える脚式歩行ロボット。
JP2012049260A 2012-03-06 2012-03-06 脚式歩行ロボットおよびその重心軌道生成方法 Active JP5807591B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2012049260A JP5807591B2 (ja) 2012-03-06 2012-03-06 脚式歩行ロボットおよびその重心軌道生成方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012049260A JP5807591B2 (ja) 2012-03-06 2012-03-06 脚式歩行ロボットおよびその重心軌道生成方法

Publications (2)

Publication Number Publication Date
JP2013184232A JP2013184232A (ja) 2013-09-19
JP5807591B2 true JP5807591B2 (ja) 2015-11-10

Family

ID=49386143

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012049260A Active JP5807591B2 (ja) 2012-03-06 2012-03-06 脚式歩行ロボットおよびその重心軌道生成方法

Country Status (1)

Country Link
JP (1) JP5807591B2 (ja)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6168158B2 (ja) * 2013-12-10 2017-07-26 トヨタ自動車株式会社 移動ロボットの移動制御方法、および、移動ロボット
JP5859036B2 (ja) * 2014-02-04 2016-02-10 本田技研工業株式会社 ロボット
EP2933068B1 (en) * 2014-04-17 2021-08-18 Aldebaran Robotics Omnidirectional wheeled humanoid robot based on a linear predictive position and velocity controller
JP6450279B2 (ja) * 2015-08-05 2019-01-09 本田技研工業株式会社 移動ロボットの目標zmp軌道の生成装置
CN106041884B (zh) * 2016-05-19 2018-02-06 成都润惠科技有限公司 一种用于重负载外骨骼系统的平衡控制方法
JP6647591B2 (ja) * 2016-06-29 2020-02-14 本田技研工業株式会社 移動ロボットの特定状態量の存在可能領域推定装置及び存在可能領域推定方法
CN109955928B (zh) * 2017-12-25 2020-10-16 深圳市优必选科技有限公司 一种双足机器人及其等效轨迹生成方法和装置
CN112114589B (zh) * 2020-09-07 2024-02-09 腾讯科技(深圳)有限公司 足式机器人运动控制方法、装置、设备及介质
CN112818481B (zh) * 2021-01-19 2023-11-07 中国科学院沈阳自动化研究所 弹性平面约束的细长软体机器人的建模与控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3674779B2 (ja) * 2000-11-20 2005-07-20 ソニー株式会社 脚式移動ロボットのための動作制御装置及び動作制御方法、並びにロボット装置
US7319918B2 (en) * 2001-12-28 2008-01-15 Honda Giken Kogyo Kabushiki Kaisha Gait generation device for legged mobile robot
JP3834629B2 (ja) * 2002-09-26 2006-10-18 独立行政法人産業技術総合研究所 歩行ロボットの歩行歩容生成装置
EP1649983B1 (en) * 2003-06-27 2010-09-22 Honda Motor Co., Ltd. Gait generation device for legged mobile robot

Also Published As

Publication number Publication date
JP2013184232A (ja) 2013-09-19

Similar Documents

Publication Publication Date Title
JP5807591B2 (ja) 脚式歩行ロボットおよびその重心軌道生成方法
US6876903B2 (en) Gait pattern generating device for legged mobile robot
JP5483997B2 (ja) 脚式移動ロボットの制御装置
JP5232124B2 (ja) 脚式移動ロボットの制御装置
JP5034235B2 (ja) 制御システム及び制御方法、並びにコンピュータ・プログラム
KR101131776B1 (ko) 다리식 이동 로봇의 보용 생성장치
JP4392037B2 (ja) 脚式ロボット、及びその制御方法
US20060173578A1 (en) Controller of legged mobile robot
CN111558941A (zh) 浮动基动力学前馈控制方法、装置和多足机器人
US20080065269A1 (en) Controller of Leg Type Moving Robot
WO2006013779A1 (ja) 脚式移動ロボットの歩容生成装置および制御装置
WO2006067904A1 (ja) 脚式移動ロボットの歩容生成装置
WO2005082582A1 (ja) 移動ロボットの歩容生成装置
Bastos et al. Inverse dynamics of serial and parallel underactuated multibody systems using a DAE optimal control approach
Buschmann et al. Experiments in fast biped walking
JP6015474B2 (ja) 脚式ロボットの制御方法および脚式ロボット
Wittmann et al. Model-based predictive bipedal walking stabilization
JP6781101B2 (ja) 非線形システムの制御方法、二足歩行ロボットの制御装置、二足歩行ロボットの制御方法及びそのプログラム
Babiarz et al. Mathematical model of a human leg: The switched linear system approach
EP2428335B1 (en) Robot and control method thereof
Akbari Hamed et al. Dynamic output controllers for exponential stabilization of periodic orbits for multidomain hybrid models of robotic locomotion
Cho et al. Stabilization of a hopping humanoid robot for a push
JP7221833B2 (ja) 非線形モデル予測制御装置
Kim et al. A torso-moving balance control strategy for a walking biped robot subject to external continuous forces
Tarokh et al. Kinematics-based simulation and animation of articulated rovers traversing uneven terrains

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140226

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141212

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150106

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: 20150811

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150824

R151 Written notification of patent or utility model registration

Ref document number: 5807591

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151