JP5392125B2 - 2脚歩行ロボット及びそのための歩容データ生成方法 - Google Patents
2脚歩行ロボット及びそのための歩容データ生成方法 Download PDFInfo
- Publication number
- JP5392125B2 JP5392125B2 JP2010023703A JP2010023703A JP5392125B2 JP 5392125 B2 JP5392125 B2 JP 5392125B2 JP 2010023703 A JP2010023703 A JP 2010023703A JP 2010023703 A JP2010023703 A JP 2010023703A JP 5392125 B2 JP5392125 B2 JP 5392125B2
- Authority
- JP
- Japan
- Prior art keywords
- time
- center
- gravity
- trajectory
- period
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
Images
Landscapes
- Manipulator (AREA)
Description
本発明は、2脚歩行ロボット(Biped Robot)に関する。特に、ロボット動作中のリアルタイム処理に適した歩容データを効率的に生成する技術に関する。
歩行のための脚関節の目標角の時系列データは歩容データと呼ばれる。2脚歩行ロボットは、適切な歩容データを用いないと転倒してしまう。転倒するか否かは、ロボットが現実に歩行して初めて確認できる事項であるので、本明細書では、理論上転倒せずに歩行できることを便宜上、「安定に歩行することができる」と表現する。さらに、理論上、安定な歩行を実現することができる歩容データを便宜上「安定な歩容データ」と称する。また、以下では簡単のため「2脚歩行ロボット」を単に「ロボット」と称する。
安定な歩容データを生成する一つの手法は、ZMP方程式に基づいてロボットの重心軌道を生成し、重心軌道から脚各関節の目標角を求めることである。転倒するか否かは、ロボットの重心軌道が支配的な要素であるからである。なお、重心軌道は、重心位置の時系列データの別称である。以下、本明細書では、「軌道」という用語を「時系列データ」と等価の意味で用いる。
「重心ヤコビアン」と呼ばれるに変換式を用いることによって、各時刻における重心位置から脚各関節の目標角を求めることができる。このことは良く知られているので説明は省略する。脚各関節の目標角の時系列データは重心軌道、重心周りのロボットの角運動量、および、足先の軌道から算出される。即ち、「重心軌道」は、「歩容データ」の主要な要素である。特に、安定に歩行するためには重心軌道が重要である。そのため、本明細書では、「歩容データ」との用語を、重心軌道と同等のものとして扱う。ZMP方程式に基づく歩容データ生成方法は、例えば特許文献1〜3に開示されている。なお、本明細書の最後にも、ZMP方程式に基づく歩容データ生成方法に関する説明を掲載するので参照されたい。
歩容データは、安定して歩行するための条件を満たすことが求められるため、その算出には高い計算負荷が必要とされる。そのため、歩容データを効率よく求める技術が望まれている。歩容データを効率よく求める一つの手法が特許文献1〜3に開示されている。その方法は、ZMP方程式に現れる重心加速度を連続する3つの時刻の重心位置の変数によって近似した3項方程式を用いる。ZMP方程式の3項方程式近似による重心位置の求解法も本明細書の最後に掲載するので参照されたい。
本明細書は、特許文献1〜3とは別のアプローチで歩容データを効率よく求める技術を提供する。さらに、本明細書が開示する技術は、特許文献1〜3に開示される3項方程式による歩容データ生成方法に適用することで、さらなる計算効率化を図ることができる。
前述したように、歩容データの計算負荷を増大させる主要な一因は、安定した歩行のための条件を満たす歩容データを求めることである。ここで、「安定した歩行のための条件」について考察する。例えば、現在時刻における遊脚が着地できることを(理論上)保証する歩容データであっても、その時点で体幹が大きく傾いていては、歩行を継続することができない。逆に、10分後まで歩行を継続できることを(理論上)保証した上で現在時刻から1分後までの歩容データを生成するのは無駄である。そこで、「安定した歩行のための条件」の一つの目安として、2歩進めることを(理論上)保証して歩容データを作成することが妥当であるという考え方がある。ここで、「2歩」とは次の事象を意味する。即ち、現在時刻における遊脚が着地するタイミングが「1歩目」に相当し、現在時刻における立脚が遊脚に移行し次いで着地するタイミングが「2歩目」に相当する。即ち、「安定な歩容データ」とは、現在時刻における立脚が離床し、次いで遊脚から立脚に切り換わる予定の時刻まで歩行が継続できることを(理論上)保証する歩容データに相当する。より詳しくは、前記した予定時刻においてロボット重心が適切な範囲内に存在すること、及び予定時刻における重心速度が適切な大きさ以下であることを(理論上)保証する歩容データが「安定な歩容データ」に相当する。以下では、安定な歩容データであることを保証する予定時刻におけるロボット重心位置と重心速度の範囲を予定時刻における境界条件と称することがある。
なお、「安定した歩行のための条件」の一つの目安は、「2歩」でなく、「3歩」であることが明らかに好ましい。従って別言すれば、「安定な歩容データ」とは、少なくとも現在時刻における立脚が遊脚に移行し次に遊脚から立脚に切り換わる予定時刻において重心位置が予め定められた範囲に存在することが保証できる重心軌道に相当する。以下では、「現在時刻における立脚が遊脚に移行し次に遊脚から立脚に切り換わる予定時刻」を「2歩目着地予定時刻」と称する。
一歩行周期TWよりも短い軌道計算周期で、2歩目着地予定時刻までの「安定な歩容データ」を繰り返し算出すれば、常に2歩目まで歩行できることが(理論上)保証され、結果的に、2歩以上歩行を継続できることになる(理論的には無限に歩行を継続できる)。なお、2歩目着地予定時刻は、一歩行周期TWを予め定めておくことによって、現在時刻における歩行周期内のポジションと一歩行周期TWから決定することができる。以下では、現在時刻から2歩目着地予定時刻までの期間を、軌道算出期間と称する。
ここで、一歩行周期TWは概ね1秒である。従って、軌道算出期間は概ね2秒となる。他方、関節のサーボ制御周期は、概ね5msec以下であり好ましくは2msec以下である。これは以下の理由による。サーボ制御周期をシステム全体のサンプリング周期と仮定すると、シャノンのサンプリング定理より、サーボ制御周期が5msecの場合はシステムのダイナミックレンジが理論上100Hzであり、サーボ制御周期が2msecの場合はシステムのダイナミックレンジが理論上250Hzとなる。人間の応答速度が概ね0.1秒(即ち100Hz)であるから、人間と同等のダイナミックレンジを有する2脚歩行ロボットを実現するためには、サーボ制御周期は5msec以下が必要ということになる。
サーボ制御周期に合わせて関節目標角を順次変更していく必要がある。即ち、サーボ制御周期に相当する第1時間間隔で関節目標角の時系列データが必要となる。そのためには、第1時間間隔で重心位置の時系列データが必要となる。前述したように軌道算出期間は概ね2秒であるから、サーボ制御周期を仮に2msecとすると1回の軌道計算で1000点の重心位置のデータを算出しなければならず、高い計算能力が要求される。
発明者は、サーボ制御周期(5msec以下)、2歩目までの軌道算出期間(約2秒)、及び、軌道計算周期の差に着目した。ここで、軌道計算周期は、一歩行周期TW(約1秒)よりも小さいことが必要であるが、サーボ制御周期ほどには小さくなくてよい。現在時刻から少なくとも軌道計算周期に相当する期間(この期間を初期期間と称する)の間は、サーボ制御周期に相当する第1時間間隔で重心軌道(重心位置の時系列データ)を求める必要があるが、初期期間以降は、安定であることが保証できればよいので第1時間間隔で重心軌道を求める必要はない。なぜならば、軌道計算周期毎に重心軌道を再計算するのであれば、初期期間以降の重心軌道はサーボ制御には利用されないからである。
即ち、初期期間以降の重心軌道は第1時間間隔より長い第2時間間隔で求めればよい。そうすることによって、サーボ制御に影響を与えることなく、2歩目着地予定時刻までの重心軌道を従来よりも少ない点数の時系列データで表すことができる。求める時系列データの点数が少なくなれば計算負荷を低減できる。例えば、サーボ制御周期(第1時間間隔)を2msec、軌道算出期間を2秒とすると、従来は1000点の時系列データを計算する必要があった。初期期間(軌道計算周期)を500msec、第2時間間隔を10msecとすると、2秒の重心算出期間は、500/2+1500/10=400、即ち、400点の時系列データに短縮することができる。この場合、データ点数が半分以下となるので、計算負荷も概算で半分以下となることが期待できる。即ち、初期期間以降の重心軌道をサーボ制御周期よりも長い時間間隔で求めることによって、安定な歩容データを算出する際の効率を格段に向上することができる。なお、実際には計算オーバーヘッド等を要するために計算時間は単純にデータ点数の比とはならないことに留意されたい。
上記した手法の一実施形態は、2脚歩行ロボットの歩容データ生成方法として具現化できる。その方法は、軌道算出ステップと目標角算出ステップを含む。軌道算出ステップは、予め定められた軌道計算周期毎にZMP方程式に基づいて重心位置の時系列データを算出する。目標角算出ステップは、時系列データの各時刻における重心位置に基づいて(重心ヤコビアンを使って)脚関節の目標角を算出する。ここで、軌道算出ステップは、現在時刻から少なくとも軌道計算周期に相当する初期期間の間は関節のサーボ制御周期に相当する第1時間間隔で重心位置の時系列データを算出する。さらに軌道算出ステップは、初期期間以降は第1時間間隔よりも長い第2時間間隔で重心位置の時系列データを算出する。なお、軌道計算周期は、一歩行周期TWよりも短い。また、目標角算出ステップは、初期期間における各時刻の重心位置から脚関節の目標角を算出する。
通常、重心軌道の上下方向成分は予め与えられることが多い。従って軌道算出ステップにおいて算出する重心軌道は、歩行面に平行な面における重心軌道でよい。ここで「歩行面に平行な面」は、ロボットの進行方向を表すx軸と体側方向を表すy軸が張る平面を意味する。以下、「歩行面に平行な面」を、本明細書では床平行面と称する。なお、「サジタル面」は、ロボットの進行方向を表すx軸を含み、床平行面と直交する面を意味する。安定か否かは、床平行面内における重心軌道が重要である。安定か否かは、重心軌道が歩行面上に描かれる歩行経路から発散しないことが重要だからである。通常、安定した歩行では、床平行面内の重心軌道は、歩行経路を中心に体側方向に振れながら進んでいく。なお、重心軌道の鉛直方向成分は体幹の上下動に相当し、通常は既定の軌道が予め準備される。
前述したように、安定した歩行を実現するためには、軌道算出ステップは、軌道計算周期毎に、少なくとも現在時刻における立脚が遊脚に移り次いで遊脚から立脚に切り換わる予定時刻(2歩目着地予定時刻)までの期間(軌道算出期間)について、重心位置の時系列データを算出する。前述したように、2歩目着地予定時刻は、予め与えられる一歩行周期TWによって定められる。
上記した方法は、ZMP方程式を、床平行面内の重心加速度を連続する3つの時刻の重心位置の変数によって近似した3項方程式で表し、その3項方程式を解いて重心軌道を算出する手法と組み合わせるとさらに計算効率が向上する。3項方程式近似によって、ZMP方程式から床平行面内の重心加速度項を消去することができ、それによってZMP方程式を重心位置とZMPとの関係式として表すことができる。詳細は実施例の後に付した「歩容データ算出方法についての説明」を参照されたい。ここでは、要点だけを説明する。3項方程式近似によって、離散時間系で順次に並ぶn時刻分のZMP方程式(時刻毎のZMP方程式を、微小時刻Δtごとにn時刻分並べた方程式群)は、[A][X]=[Q]のマトリクス形式で表現できる。なお、重心軌道のx軸方向(ロボット進行方向)成分とy軸方向(ロボット体側方向)成分の夫々についてマトリクス表現ができる。両者は基本的に同じであるので、以下ではx軸方向成分に関して説明する。ここで、[A]はn次のマトリクスであり、[X]は重心位置のx座標のn次列ベクトルであり、[Q]はZMPのx座標のn次列ベクトルである。従って、重心位置のx座標ベクトル[X]は、[A]−1[Q]で求められる。次数nは、重心位置の時系列データの時間間隔が短いほど大きくなる。従って、上記方法により初期期間以降の時間間隔(第2時間間隔)を長くすることによって、次数nを顕著に減らすことができ、行列演算に要する計算負荷を格段に低減することができる。上記したマトリクス方程式は、初期時刻と終端時刻の境界条件を与えることによって、重心軌道[X]について解くことができる(詳しくは「歩容データ算出方法についての説明」を参照されたい)。
3項方程式近似を採用する場合、第2時間間隔は、一歩行周期TWを時分割するための予め定められた次数nで一歩行周期TWを除した値で定めるとよい。予め定められた次数nは、上記した行列の次数に相当する。即ち、そのように定めると、行列の次数nを一定にすることができる。重心軌道を求めるための行列演算に要する計算時間を一定にすることができる。
重心軌道を求める手法は、上記したマトリクス法に限られない。ZMP方程式は、重心の運動方程式に相当する。即ち、ZMP方程式では、各時刻における重心の加速度が重心の位置とZMPで表される。従ってZMP方程式で表される重心加速度を数値積分していくことによっても重心軌道を求めることができる。数値積分の際の時間ステップが時系列データの時間間隔に相当する。従って、数値積分によってZMP方程式から重心軌道を求める場合であっても、上記した手法は計算負荷を低減することができる。数値積分法は、ルンゲクッタ法や予測子修正子法など、良く知られた様々な手法を採用してよい。なお、上記した3項方程式近似は、オイラー法による近似に基本的に対応する。
上記した手法の他の一実施形態は、2脚歩行ロボットに具現化することも好適である。その2脚歩行ロボットは、軌道算出部、目標角算出部、サーボ制御部を備える。軌道算出部は、予め定められた軌道計算周期毎にZMP方程式に基づいて床平行面における重心位置の時系列データを算出する。目標角算出部は、時系列データの各時刻における重心位置から脚関節の目標角を算出する。サーボ制御部は、サーボ制御周期毎に脚の計測関節角を目標角に追従するように制御する。軌道算出部は、現在時刻から少なくとも軌道計算周期に相当する初期期間の間はサーボ制御周期に相当する第1時間間隔で重心位置の時系列データを算出する。さらに軌道算出部は、初期期間以降は第1時間間隔よりも長い第2時間間隔で重心位置の時系列データを算出する。目標角算出部は、初期期間における各時刻の重心位置から脚関節の目標角を算出する。サーボ制御部は、サーボ制御周期毎に脚の実際の関節角(計測関節角)を目標角に追従するように制御する。なお、軌道算出部は、軌道計算周期毎に、少なくとも2歩目着地予定時刻までの重心位置の時系列データを算出する。そのような2脚歩行ロボットは、上記した歩容データ生成方法をリアルタイムに実行しながら安定に歩行することができる。
図1に、歩行中の2脚歩行ロボット100の側面図を示す。以下、2脚歩行ロボット100を単にロボット100と称する。夫々の脚(右脚12Rと左脚12L)は、股関節がロール軸、ピッチ軸、ヨー軸周り回転の3自由度を有し、膝関節がピッチ軸周り回転の1自由度を有し、足首関節がロール軸周り回転とピッチ軸周り回転の2自由度を有する。ロボット100はさらに、足平にピッチ軸回りの関節を備えている。この関節は足指付け根の関節に相当する。足指付け根の関節を有すると、人間の歩行動作と同じ様に、足指の底面(及び母趾球)で接地しつつ踵を上げることができ、円滑な歩行動作を達成することができる。各関節はモータ14とセンサ16(エンコーダ)を搭載している。センサ16は関節角を検出する。体幹10にはコントローラ20が内蔵されている。コントローラ20が、センサ16のセンサデータに基づいてモータ14を制御する。コントローラ20が各モータを適切に制御することによって、ロボット100は歩行する。本明細書が開示する技術は、脚の幾何学的な構造、各関節のサーボ制御ルールに依存しないことに留意されたい。従って、脚の構造、及び、関節サーボ制御ルールの詳しい説明は省略する。上記した7自由度の脚は一例であり、本明細書が開示する技術は、当然、他の自由度を有する脚、或いは他の幾何学的構造を有する脚を備えた2脚歩行ロボットに適用することができる。また、2脚歩行ロボットは腕や頭を備えていてもよい。
座標系について説明する。図1において、x軸はロボット進行方向に相当し、y軸はロボット体側方向に相当する。z軸はx軸及びy軸に直交する。本明細書では、x軸とy軸が張る平面を「床平行面」と称する。x軸とz軸が張る平面はサジタル面と呼ばれている。図1の上側の側面図がサジタル面に相当する。図1の下側は、床平行面を示している。床平行面は歩行面に相当する。図1下側の床平行面は、足の着地位置を示している。なお、図1下側の床平行面の図は、後述の「歩容データ算出についての補足事項」の項にて説明する際に用いる。
ロボット100は、安定した歩行を実現するための歩容データを高速に求めることができる点に特徴がある。なお、「安定した歩行」とは、前述したように、少なくとも2歩進むことが理論上保証される歩容データを意味する。まず、歩容データについて概説する。歩容データは、実質的には重心軌道(重心位置の時系列データ)で決まる。歩容データは、ロボットが安定に歩行できなれば意味が無く、安定に歩行できるか否かは重心軌道に依存するからである。また、最終的には歩容データは各関節の目標角の時系列データで表現されるが、重心ヤコビアンによって重心軌道から目標角の時系列データが算出できるので、「歩容データ」は実質的には「重心軌道」に相当するとみなしてよい。「重心ヤコビアン」については脚式ロボットの技術分野では良く知られているので詳しい説明は省略する。
前述したように安定した歩容データは、実質的には、床平行面における重心軌道で定まる。なぜならば、床平行面における重心軌道が歩行経路から大きく離れないことが即ち「安定した歩行」に相当するからである。本実施例のロボット100は、現在時刻T0から2歩目着地予定時刻T2までの重心軌道が歩行経路から大きくずれないことを理論上保証する歩容データを算出する。そのような安定な歩容データの算出方法は、ZMP方程式に基づいて算出できることが知られている。2歩目着地予定時刻T2までの重心軌道の具体的な算出方法は、後の「歩容データ算出方法についての説明」の項にて説明するのでそちらを参照されたい。なお、本明細書が開示する新規な歩容データ算出技術は、物理現象的な観点からは従来の算出技術と同じ技術を用いるが、計算の仕方に工夫があり、従来よりも効率よく歩容データを算出することを可能にする。
図1の各符号について説明する。図1の(A)は、現在時刻T0におけるロボット100の姿勢を示している。現在時刻T0では、ロボット100の左脚12Lが立脚となっており、右脚12Rが遊脚となっている。(B)は1歩目着地予定時刻T1における姿勢(予定値)を示し、(C)は2歩目着地予定時刻T2における姿勢(予定値)を示している。「1歩目着地予定時刻T1」とは、現在時刻T0における遊脚(右脚12R)が着地する予定の時刻に相当する。2歩目着地予定時刻T2は、現在時刻T0における立脚(左脚12L)が離床し、次いで遊脚から立脚に切り換わる予定(着地予定)の時刻に相当する。なお、一歩行周期TWは予め与えられる。現在の歩行周期の開始時刻は既に特定されているので、与えられた一歩行周期TWから時刻T1とT2が定まる。
xg(i)、yg(i)、及び、zg(i)は、それぞれ、時刻iにおける重心Gのx座標、y座標、及び、z座標を表している。ここで、「座標」は、「位置」に相当する。xg(T0)は、現在時刻T0における重心Gのx座標(x軸方向の重心位置)を表している。xg(T1)、xg(T2)、は夫々、1歩目着地予定時刻T1、2歩目着地予定時刻T2における重心Gのx座標(予定値)を表している。vg(T0)は、現在時刻T0における重心Gの速度のx軸方向成分を表している。vg(T0)は、脚の各関節が備えるセンサ16のセンサデータから求められる。vg(T1)、vg(T2)、は夫々、1歩目着地予定時刻T1、2歩目着地予定時刻T2における重心Gの速度のx軸方向成分を表している。vg(T1)、vg(T2)、は予め与えられる値である。例えば、ロボット100が一定速度V0で直線歩行する場合、「vg(T1)=vg(T2)=V0」となる。
xp(i)は、現在時刻における遊脚(右脚12R)の足の軌道を表している。本実施例では、足の軌道は、足のつま先に固定された点の軌道で現される。xp(T0)は、現在時刻T0における遊脚足のx座標(左足位置)を表している。xp(T1)は、着地予定時刻T1における遊脚足のx座標、即ち、遊脚の着地予定位置を示している。
図1の下側の床平行面について簡単に説明する。詳しくは、後の「歩容データ算出方法についての説明」の項で述べる。F0は、現在時刻における立脚(左脚)足の位置を示している。F1、F2は、右脚足の着地予定位置、左脚足の次の着地予定位置を表している。符号LPathが示す直線は歩行経路を表している。符号LZMPが示す破線はZMP軌道を表しており、符号Lgが示す実線は床平行面における重心軌道を表している。本明細書においてZMPとは、接地している足の裏面に分布している床圧力の中心(圧力中心)を意味する。この定義は、ZMPの概念を始めて提唱したユーゴスラビアのブコブラトビッチの定義に相当する。なお、図1の一点鎖線は、時刻T1において左足が位置F0で接地しており右足が位置F1で接地している両脚支持期間における支持多角形を示している。「支持多角形」もブコブラトビッチの定義に準ずる。支持多角形は、片脚立脚期間では接地している足の足裏面に等しい。両脚接地期間では上記したように接地している両足位置によって支持多角形が画定される。
図1下側の床平行面の図は、安定した歩容データ、即ち安定した重心軌道Lgを示している。重心軌道Lgは歩行経路LPathに対して左右に振れながらも歩行経路LPathに沿っているからである。安定な重心軌道の算出方法については「歩容データ算出方法についての説明」を参照されたい。
ロボット100は、現在時刻T0において、2歩目着地予定時刻T2までの重心軌道を算出する。なお、以下では、重心位置のx成分xg(i)について説明し、y成分yg(i)についてはx成分と同様であるので説明は省略する。ロボット100は、現在時刻T0において、重心位置のx成分xg(i)、(ただしi=0からT2)を算出する。
図2を用いてロボット100の歩容データ生成処理をさらに説明する。図2は、図1の一部を拡大した図である。図2は、現在時刻T0から1歩目着地予定時刻T1までの期間を拡大した図である。重心軌道Lgは、重心位置の時系列データであり、現在時刻T0から2歩目着地予定時刻T2までの重心位置の点列として求められる。ロボット100は、予め定められた軌道計算周期(例えば20msec)毎に、2歩目着地予定時刻T2までの重心軌道を算出する。このとき、ロボット100は、現在時刻T0から、軌道計算周期に相当する初期期間TS1の間は、関節サーボ制御周期に相当する第1時間間隔ΔT1で重心位置の時系列データを算出する。初期期間TS1以降、2歩目着地予定時刻T2までの期間TS2は、第1時間間隔ΔT1よりも長い第2時間間隔ΔT2で重心軌道を算出する。図2では、初期期間TS1の間の重心軌道Lg−1が第1時間間隔ΔT1で算出され、初期期間TS1以降の重心軌道Lg−2が第2時間間隔ΔT2で算出される。
ロボット100は、初期期間TS1の各時刻における重心位置(重心位置はΔT1間隔で求められている)から、各関節の目標角Lp−1を算出する。各時刻の関節目標角は、対応する時刻の重心位置を重心ヤコビアンに代入することによって得られる。こうして、ロボット100は、現在時刻から初期期間TS1までの間、サーボ制御周期毎の関節目標角を得る。なお、初期期間TS1以降に相当する足軌道Lp−2は、現在時刻では求める必要がない。Lp−2は、現在時刻T0から軌道計算周期に相当する時間後に改めて、第1時間間隔ΔT1ごとの時系列データとして算出される。
上記説明したアルゴリズムを実行するコントローラ20のブロック図を図3に示し、制御フローチャートを図4に示す。コントローラ20は、軌道算出部21、目標角算出部22、メモリ23、タスク管理部24、サーボ制御部25、サーボアンプ26、及びリアルタイムクロック(RTC)27を備える。軌道算出部21と目標角算出部22によって、軌道算出タスクが実行され、サーボ制御部25によってサーボ制御タスクが実行される(図4参照)。タスク管理部24は、リアルタイムクロック27の信号に基づいて、軌道計算周期毎に軌道算出タスクを起動し、サーボ制御周期毎にサーボ制御タスクを起動する。なお、前述したように、軌道計算周期は例えば20msecでありサーボ制御周期は2msecである。軌道算出タスクとサーボ制御タスクは並列に実行される。
歩行経路は上位コントローラ90からロボットのコントローラ20に与えられる。上位コントローラ90は、ロボット100と接続されたコンピュータでよい。
軌道算出タスクを説明する。軌道算出部21は、センサ16のデータを読み込むとともに、2歩目着地予定時刻T2までの重心軌道を算出する(S12)。次に目標角算出部22が目標角を算出する(S14)。ここで、重心軌道は2歩目着地予定時刻T2まで算出されるが、目標角は現在時刻から初期期間TS1までの間の各時刻の重心軌道に対応する分だけが算出される。算出された目標角の時系列データはメモリ23に格納される。ステップS12の処理が軌道算出ステップに相当し、ステップS14の処理が目標角算出ステップに相当する。後に「歩容データ算出方法についての説明」で述べる、軌道算出ステップでは、現在時刻T0から2歩目着地予定時刻T2まで(即ち軌道算出期間の間)の重心軌道が、2歩目着地予定時刻T2(終端時刻)における既定の重心速度と重心位置範囲を境界条件として算出される。
サーボ制御タスクについて説明する、サーボ制御タスクは、軌道算出タスクと並列に、サーボ制御周期毎に起動される。サーボ制御部25は、まずセンサデータを取得する(S22)。次に、メモリ23から、記憶されている目標角の時系列データの中から、現在のサーボ制御時刻に対応する目標角を読み出す(S24)。コントローラ20は、センサデータと読み出した目標角との偏差に基づいて、各関節のモータ14への指令値を算出する(S26)。ステップS26では、例えば、PID制御ルールに基づいて指令値が算出される。算出された指令値はサーボアンプ26へ出力される(S28)。サーボアンプ26は、入力された指令値に基づいて各モータ14を制御する。
ロボット100の各関節は、サーボ制御周期(即ち第1時間間隔ΔT1)毎の目標角に追従する。その結果、ロボット100はその重心が算出された重心軌道に追従するように動作する。すなわちロボット100は安定に歩行する。軌道計算周期毎に軌道算出タスクが軌道され、その都度、現在時刻から初期期間分の目標角データが算出される。毎回の目標角データは常に2歩目まで安定に歩行することが(理論上)保証されている。そのため、ロボット100は、(理論上)無限に安定に歩行し続けることができる。
後の「歩容データ算出方法についての説明」の項にて述べるように、ロボット100は、各時刻におけるZMP方程式を、床平行面内の重心加速度を連続する3つの時刻の重心位置の変数によって近似した3項方程式で表し、現在時刻と終端時刻の境界条件を与えることによって各時刻の3項方程式を解いて重心位置の時系列データを算出する。現在時刻の境界条件は、現在時刻の重心速度vg(T0)と位置xg(T0)である。終端時刻の境界条件は、2歩目着地予定時刻T2における重心速度vg(T2)と予め決められた2歩目安定保証領域である。2歩目安定保証領域は、後の「歩容データ算出方法についての説明」の項にて説明する。さらにロボット100は、第2時間間隔ΔT2を次のルールによって決定する。コントローラ20は、一歩行周期TWを、予め定められた次数nで除した値でΔT2を定める。次数nは、後述する行列[A]の次数である。
実施例のロボット100の利点を説明する。ロボット100は、リアルタイムに2歩目着地予定時刻T2までの重心軌道を算出する。別言すれば、ロボット100は、2歩目まで安定して歩行できることが理論上保証される重心軌道を算出する。ロボット100は、2歩目までの重心軌道のうち、関節目標角を算出するための初期期間TS1の重心軌道を、サーボ制御周期と同じ第1時間間隔ΔT1で求める。初期期間TS1以降、2歩目着地予定時間T2までの後期間TS2は、第1時間間隔ΔT1より長い第2時間間隔ΔT2で重心軌道を求める。第2時間間隔ΔT2を長くすることによって、2歩目着地予定時刻T2まで重心軌道を求めるための計算負荷を軽減できる。
後期間TS2の重心軌道を求める際、第2時間間隔ΔT2は、3項方程式で近似したZMP方程式の係数行列[A]の次数nが一定となるように決定される。従って、2歩目着地予定時刻T2までの重心軌道算出に要する演算時間を一定にすることができる。
(歩容データ算出方法についての説明)ZMP方程式に基づく重心軌道の算出方法について説明する。ここでは説明のため、ロボット全体を一つの剛体で表す。また、ここでは、重心軌道のx軸成分xg(i)について説明する。以下の議論はy軸成分についても成立する。図5に、時刻(i)における、ロボットを模式化した図(サジタル面における側面図)を示す。図5において、qx(i)は、ZMPのx座標を表す。図5のFrは、足裏に加わる圧力分布(反力分布)に等価な集中反力を示す。ZMPは、足裏に分布する圧力(反力)に等価な集中反力が床面と交差する点で定義されるので、Frの起点がZMPの位置を示す。gは重力加速度を表す。ry(i)は重心Gに作用するy軸周りのモーメントを示す。モーメントry(i)は、ロボットy軸周りの角運動量の時間微分に相当する。時刻(i)における重心Gを中心とするy軸回りの釣り合い方程式は次の(数1)で与えられる。
ここで、mはロボット全体の質量を表す。zg(i)は重心Gのz座標を表す。上付き文字の(2)は時間2回微分を表す。即ち、xg (2)(i)は、重心Gの加速度のx軸成分を表す。
重心Gの加速度のz軸成分、即ち、zg (2)(i)は予め与えられる。zg (2)(i)は、歩行時の腰の上下動にほぼ相当する。重心Gの加速度のx軸成分、即ち、xg (2)(i)、及び、重心Gの速度のx軸成分xg (1)(i)は、微小時間間隔Δtを用いたオイラー近似によると次の(数2)で表される。
(数2)より、重心Gの加速度のx軸成分xg (2)(i)は重心Gの連続する3つの時刻の位置、xg(i)、xg(i+1)、xg(i+2)によって次の(数3)で近似できる。
(数3)を(数1)に代入し、ry(i)=0とおくと次の(数4)が得られる。
(数4)は、(数1)のZMP方程式において、床平行面内の重心加速度xg (2)(i)を連続する3つの時刻の重心位置の変数、即ち、xg(i+1)、xg(i)及び、xg(i−1)によって近似した3項方程式である。i=1からnまでについて、(数4)をマトリクス表現すると次の(数5)が得られる。
なお、(数5)のqx(1)とqx(n)は、他のqx(i)すなわち、ZMPの位置とは別の意味を有している。(数5)の第1行は、初期速度が現在時刻の重心速度に一致することを保証し、第n行は、2歩目着地予定時刻T2における重心速度が予定された速度に一致することを保証する境界条件に相当する。(数2)の定義から、qx(1)=v(T0)Δt、qx(n)=v(T2)Δtである。v(T0)とv(T2)は、第1図に示した通り、現在時刻T0と2歩目着地予定時刻T2における重心Gの速度のx軸成分である。(数5)より、重心軌道のx軸成分[Xg](即ち、xg(i),i=1〜n)は、次の(数6)で求めることができる。
(数6)は、ZMP軌道[Qx]を与えると重心軌道[Xg]が求まることを表している。再び図1を参照して、(数6)を用いた重心軌道演算を説明する。図1下側の床平行面を参照されたい。今、歩行速度V0=v(T0)=v(T1)=v(T2)は与えられている。また、一歩行周期TWのZMP軌道も与えられている。一歩行周期のZMP軌道が与えられているということは、1歩目と2歩目の足着地位置(図1の足位置F1とF2)が与えられていることを意味する。即ち、1歩目と2歩目の足位置F1とF2によって支持多角形が定まり、ZMP軌道はその支持多角形内を移動するように予め定められている。なお、与えられたZMP軌道は、仮の値であり、後述する演算によって、安定性が保証されるZMP軌道(即ち1歩目と2歩目の足着地位置)が改めて求まる。(数5)、(数6)における[Qx]がZMP軌道に相当し、[Xg]が重心軌道(但しx軸方向成分)に相当する。
歩行経路LPathが与えられると、ロボット100のコントローラ20は、与えられた歩行経路に沿って、1歩目と2歩目の足着地位置(図1の足位置F1とF2)及び、ZMP軌道、即ち(数6)の[Qx]を仮決定する。また、前述したとおり。重心軌道のz軸成分(zg(i)、zg (2)(i))も予め与えられており、行列[A]の各要素(ai、bi、及びci)が(数4)から算出される。[A]と[Qx]が与えられるので、[A]の逆行列を演算し、(数6)から重心軌道(ここでは、重心軌道のx軸成分xg(i))が求められる。このときのxg(i)はまだ仮の値である。次に、i=n−1における重心位置xg(n−1)が所定の範囲内であるか否かを確認する。なお、前述したとおり、(数5)の第n行はZMP位置とは異なる別の意味を有しているので、n−1における重心位置xg(n−1)を使う。また、所定の範囲とは、1歩目着地予定位置F1と2歩目着地予定位置F2の中間やや前方の領域(2歩目安定保証領域と称する)に設定されている。そのような2歩目安定保証領域は、2歩目が着地したときに重心位置が両足のラテラル方向略中央に位置することを保証し、安定歩行を(理論上)保証する。
重心位置xg(n−1)が2歩目安定保証領域外である場合は、仮決定したZMP軌道が不適切であることを示している。この場合は、仮決定したZMP軌道を何らかのルールに基づいて修正して上記演算を繰り返す。そのような繰り返し演算(いわば収束演算)を重心位置xg(n−1)が2歩目安定保証領域内となるまで行う。上記アルゴリズムは、重心軌道のy軸成分についても当てはまる。こうして、安定な重心軌道(即ち歩容データ)が求まる。
i=0とnにおける重心速度vg(T0)、vg(T2)と、i=n−1における重心位置xg(n−1)が2歩目安定保証領域内に存在することが、(数6)を解くときの境界条件に相当する。
上記の歩容データ(重心軌道)求解手法では、重心Gに作用するy軸周りのモーメントry(i)をゼロと仮定した。モーメントry(i)を考慮した歩容データ求解手法は、例えば、本願の発明者による特許出願(特願2009−291257)で提唱されている。
上記の求解手法では、現在時刻T0から2歩目着地予定時刻T2までの重心軌道を一つの行列[A]でまとめて求めた。その場合、重心軌道を求めるためのZMP軌道[Qx]の点列(時系列データ)は、現在時刻から少なくとも初期期間の間は第1時間間隔ΔT1で構成され、初期期間以降は第2時間間隔ΔT2で構成される。そのような手法に変えて、現在時刻T0から1歩目着地予定時刻T1までを1歩目着地予定時刻T1における境界条件を与えて解き、その後、1歩目着地予定時刻T1から2歩目着地予定時刻T2までの重心軌道を別途求めることも好適である。その場合、時刻T0から時刻T1までのZMP軌道を第1時間間隔ΔT1で準備し、時刻T1から時刻T2までのZMP軌道を第2時間間隔ΔT2で準備するとよい。
上記の求解手法は、3項方程式で近似したZMP方程式を用いた。その手法は、加速度をオイラー法で近似することを含む。オイラー法は数値積分としては簡単であるが精度が低い。上記求解手法に変えて、例えばルンゲクッタ法等の数値積分法によって(数1)から、重心軌道を求めてもよい。具体的には、(数1)を変形し、重心加速度のx軸方向成分xg (2)(i)に関する式に変形する(数7)。(数7)を逐次積分することによって重心軌道、即ちxg(i)が求まる。
前述した境界条件を満たすまで、ZMP軌道を修正しながら数値積分による重心軌道の求解を繰り返す。境界条件を満たすときの重心軌道が、2歩目着地予定時刻T2まで(理論上)安定な歩容データに相当する。
本明細書が開示する技術について留意点を述べる。本明細書における「歩行」は、「走行」も含む。「歩行」は、いずれかの足が常に接地している移動形態を意味するが、「走行」は両足ともに浮いている期間を有する移動形態を意味する。「走行」の場合であっても、一方の脚が接地している期間においては、本明細書が開示する歩容データ生成手法が適用できる。
上記の実施例では、1回の重心軌道演算において、2歩目着地予定時刻T2までの軌道を算出した。これに代えて、1回の重心軌道演算において、3歩目着地予定時刻までの重心軌道を算出することも好適である。1回の重心軌道演算において何歩目までの重心軌道を算出するかは、安定歩行の確実性と演算負荷のトレードオフである。発明者らの知見によると、1回の軌道演算において、2歩目まで、或いは3歩目まで安定して歩行することが保証される重心軌道を算出すれば実用上十分である。
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
10:体幹
12L:左脚
12R:右脚
14:モータ
16:センサ
20:コントローラ
21:軌道算出部
22:目標角算出部
23:メモリ
24:タスク管理部
25:サーボ制御部
26:サーボアンプ
27:リアルタイムクロック
100:脚歩行ロボット
12L:左脚
12R:右脚
14:モータ
16:センサ
20:コントローラ
21:軌道算出部
22:目標角算出部
23:メモリ
24:タスク管理部
25:サーボ制御部
26:サーボアンプ
27:リアルタイムクロック
100:脚歩行ロボット
Claims (6)
- 2脚歩行ロボットの歩容データ生成方法であり、
予め定められた軌道計算周期毎にZMP方程式に基づいて重心位置の時系列データを算出する軌道算出ステップと、
前記時系列データの各時刻における重心位置から脚関節の目標角を算出する目標角算出ステップと、
を備えており、
前記軌道算出ステップは、現在時刻から少なくとも前記軌道計算周期に相当する初期期間の間は関節のサーボ制御周期に相当する第1時間間隔で重心位置の時系列データを算出するとともに、前記初期期間以降は第1時間間隔よりも長い第2時間間隔で重心位置の時系列データを算出し、
前記目標角算出ステップは、前記初期期間における各時刻の重心位置から脚関節の目標角を算出することを特徴とする歩容データ生成方法。 - 前記軌道算出ステップは、前記軌道計算周期毎に、少なくとも現在時刻における立脚が次に遊脚から立脚に切り換わる予定時刻までの重心位置の時系列データを算出することを特徴とする請求項1に記載の歩容データ生成方法。
- 軌道算出ステップは、各時刻におけるZMP方程式を、床平行面内の重心加速度を連続する3つの時刻の重心位置の変数によって近似した3項方程式で表し、初期時刻と終端時刻の境界条件を与えることによって各時刻の3項方程式を解いて重心位置の時系列データを算出することを特徴とする請求項1又は2に記載の歩容データ生成方法。
- 前記第2時間間隔は、予め与えられた一歩行周期を時分割するための予め定められた次数nで前記一歩行周期を除した値であることを特徴とする請求項3に記載の歩容データ生成方法。
- 予め定められた軌道計算周期毎にZMP方程式に基づいて重心位置の時系列データを算出する軌道算出部と、
前記時系列データの各時刻における重心位置から脚関節の目標角を算出する目標角算出部と、
サーボ制御周期毎に脚の計測関節角を目標角に追従するように制御するサーボ制御部と、を備えており、
前記軌道算出部は、現在時刻から少なくとも前記軌道計算周期に相当する初期期間の間は前記サーボ制御周期に相当する第1時間間隔で重心位置の時系列データを算出するとともに、前記初期期間以降は第1時間間隔よりも長い第2時間間隔で重心位置の時系列データを算出し、
前記目標角算出部は、前記初期期間における各時刻の重心位置から脚関節の目標角を算出し、
前記サーボ制御部は、サーボ制御周期毎に、前記初期期間における各時刻の脚関節の目標角に追従するように前記計測関節角を制御することを特徴とする2脚歩行ロボット。 - 前記軌道算出部は、前記軌道計算周期毎に、少なくとも現在時刻における立脚が次に遊脚から立脚に切り換わる予定時刻までの重心位置の時系列データを算出することを特徴とする請求項5に記載の2脚歩行ロボット。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010023703A JP5392125B2 (ja) | 2010-02-05 | 2010-02-05 | 2脚歩行ロボット及びそのための歩容データ生成方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2010023703A JP5392125B2 (ja) | 2010-02-05 | 2010-02-05 | 2脚歩行ロボット及びそのための歩容データ生成方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011161524A JP2011161524A (ja) | 2011-08-25 |
JP5392125B2 true JP5392125B2 (ja) | 2014-01-22 |
Family
ID=44592827
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2010023703A Expired - Fee Related JP5392125B2 (ja) | 2010-02-05 | 2010-02-05 | 2脚歩行ロボット及びそのための歩容データ生成方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5392125B2 (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018113262A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳光启合众科技有限公司 | 多足机器人的步态控制方法、装置和机器人 |
CN110371213A (zh) * | 2019-07-12 | 2019-10-25 | 沈阳城市学院 | 一种双足机器人步行规划和控制方法 |
WO2021208917A1 (zh) * | 2020-04-14 | 2021-10-21 | 腾讯科技(深圳)有限公司 | 质心位置确定方法、装置、足式机器人及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104570732B (zh) * | 2014-12-15 | 2017-02-08 | 浙江大学 | 一种仿人机器人步行模式的在线生成方法 |
JP6447278B2 (ja) * | 2015-03-18 | 2019-01-09 | トヨタ自動車株式会社 | 多点接触ロボット、多点接触ロボットの制御方法及びプログラム |
CN105511465B (zh) * | 2015-12-02 | 2017-08-04 | 歌尔股份有限公司 | 一种双足机器人的步态控制方法和装置 |
JP6715952B2 (ja) * | 2016-04-29 | 2020-07-01 | ソフトバンク・ロボティクス・ヨーロッパSoftbank Robotics Europe | バランスのとれた運動および行動能力が向上した移動型ロボット |
CN108639183B (zh) * | 2018-06-07 | 2021-03-19 | 重庆邮电大学 | 一种提高双足机器人平衡性和行走速度的装置及控制方法 |
CN110764413B (zh) * | 2019-10-29 | 2020-09-29 | 中国科学院自动化研究所 | 轮腿机器人的自稳定控制方法、系统、装置 |
CN112572453B (zh) * | 2020-12-21 | 2022-02-18 | 广州大学 | 机器人在斜坡行走的步态规划方法、装置、设备及介质 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4548135B2 (ja) * | 2005-02-03 | 2010-09-22 | トヨタ自動車株式会社 | 脚式ロボットとその制御方法 |
JP4492395B2 (ja) * | 2005-03-09 | 2010-06-30 | トヨタ自動車株式会社 | 脚式ロボットとその動作制御方法 |
JP4392037B2 (ja) * | 2007-09-12 | 2009-12-24 | トヨタ自動車株式会社 | 脚式ロボット、及びその制御方法 |
-
2010
- 2010-02-05 JP JP2010023703A patent/JP5392125B2/ja not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2018113262A1 (zh) * | 2016-12-23 | 2018-06-28 | 深圳光启合众科技有限公司 | 多足机器人的步态控制方法、装置和机器人 |
CN108237532A (zh) * | 2016-12-23 | 2018-07-03 | 深圳光启合众科技有限公司 | 多足机器人的步态控制方法、装置和机器人 |
CN108237532B (zh) * | 2016-12-23 | 2020-11-27 | 深圳光启合众科技有限公司 | 多足机器人的步态控制方法、装置和机器人 |
CN110371213A (zh) * | 2019-07-12 | 2019-10-25 | 沈阳城市学院 | 一种双足机器人步行规划和控制方法 |
WO2021208917A1 (zh) * | 2020-04-14 | 2021-10-21 | 腾讯科技(深圳)有限公司 | 质心位置确定方法、装置、足式机器人及存储介质 |
JP2023514021A (ja) * | 2020-04-14 | 2023-04-05 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 質量中心位置決定方法、装置、足式ロボット及びコンピュータプログラム |
JP7454677B2 (ja) | 2020-04-14 | 2024-03-22 | テンセント・テクノロジー・(シェンジェン)・カンパニー・リミテッド | 質量中心位置決定方法、装置、足式ロボット及びコンピュータプログラム |
Also Published As
Publication number | Publication date |
---|---|
JP2011161524A (ja) | 2011-08-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5392125B2 (ja) | 2脚歩行ロボット及びそのための歩容データ生成方法 | |
US8825213B2 (en) | Gait generating device for legged mobile robot and operational target generating device for robot | |
KR101029228B1 (ko) | 로봇과 그 제어 방법 | |
US10836040B2 (en) | Desired ZMP trajectory generating device | |
US9073209B2 (en) | Walking robot and control method thereof | |
US7805218B2 (en) | Robot device and control method of robot device | |
JP3599244B2 (ja) | ロボット装置、ロボット装置の運動制御装置並びに運動制御方法 | |
US7664572B2 (en) | Control device of legged mobile robot | |
US20120316682A1 (en) | Balance control apparatus of robot and control method thereof | |
US9533415B2 (en) | Control device for mobile robot | |
JP4392037B2 (ja) | 脚式ロボット、及びその制御方法 | |
JP5859036B2 (ja) | ロボット | |
US9682474B2 (en) | Control device for mobile body | |
JP2005177884A (ja) | ロボット装置、並びにロボット装置の運動制御方法 | |
CN112643679A (zh) | 机器人运动控制方法、装置、控制器及存储介质 | |
CN115328186A (zh) | 基于任务分层优化的双足机器人级联控制方法和装置 | |
US7765030B2 (en) | Gait generator for mobile robot | |
JP4492395B2 (ja) | 脚式ロボットとその動作制御方法 | |
JP5979049B2 (ja) | 脚式移動ロボットおよびその制御方法 | |
JP5463991B2 (ja) | 2脚歩行ロボット | |
US20090099689A1 (en) | Legged mobile robot and control program for the robot | |
Scholz et al. | Fast, robust and versatile humanoid robot locomotion with minimal sensor input | |
JP2011131301A (ja) | 脚式ロボットとそのための歩容データ生成方法 | |
JP4696728B2 (ja) | 脚式ロボットとその制御方法 | |
JP4848686B2 (ja) | 脚式ロボットとその動作調節方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20121129 |
|
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: 20130917 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20130930 |
|
R151 | Written notification of patent or utility model registration |
Ref document number: 5392125 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R151 |
|
LAPS | Cancellation because of no payment of annual fees |