JP2006247769A - 脚式ロボットとその動作制御方法 - Google Patents
脚式ロボットとその動作制御方法 Download PDFInfo
- Publication number
- JP2006247769A JP2006247769A JP2005065827A JP2005065827A JP2006247769A JP 2006247769 A JP2006247769 A JP 2006247769A JP 2005065827 A JP2005065827 A JP 2005065827A JP 2005065827 A JP2005065827 A JP 2005065827A JP 2006247769 A JP2006247769 A JP 2006247769A
- Authority
- JP
- Japan
- Prior art keywords
- gravity
- center
- trajectory
- landing
- robot
- 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
Landscapes
- Manipulator (AREA)
Abstract
【解決手段】 関節角を変えることによって、踏切り、宙に浮き、着地する動作を実現する脚式ロボットであって、踏切り時の重心速度を検出する手段と、検出された踏切り時の重心速度に基づいて、踏切りから着地までの重心軌道を生成する手段と、生成された踏切りから着地までの重心軌道に基づいて、着地後の重心軌道を生成する手段と、生成された着地後の重心軌道に基づいて、着地までの脚リンクの足先の軌道を生成する手段と、生成された重心軌道と脚リンクの足先の軌道に基づいて、関節角の目標値の経時的データを生成する手段と、生成された関節角の目標値の経時的データに基づいて、関節を回転する手段とを備えている。
【選択図】 図3
Description
上記のような脚式ロボットは、ZMP(Zero Moment Point)を利用して制御することによって、安定した歩行を実現できることが知られている。ZMPは、ロボットに作用する外力(慣性力を含む)によるモーメントの総和が0となる床上の点を意味する。
1つの脚リンクのみが接地している状態でも、ZMPが支持脚の足平内に存在していれば、ロボットは倒れることがない。例えば2つの脚リンクを備えるロボットの場合、一方の脚リンクを支持脚とし、他方の脚リンクを遊脚として前方に振り出することによって移動する。この片足接地状態の間、ZMPが支持脚の足平内に存在していれば、ロボットは倒れることがない。遊脚としていた脚リンクが接地し、2つの脚リンクが接地している間に、ZMPがそれまで支持脚であった脚リンクの足平内から新たに接地した脚リンクの足平内へ移行すれば、ロボットは倒れることがなく、それまで支持脚であった脚リンクを前方に振り出すことが可能となる。それまで支持脚であった脚リンクを前方に振り出す時に、ZMPが新たな支持脚の足平内に存在していれば、ロボットは倒れることがない。
上記の動作を繰り返すことによって、ロボットは倒れることなく歩行を継続することができる。
上記したような動作は、いずれも空中相(ロボットが空中に浮いている相)を備えている。空中相ではロボットに重力のみが作用しており、ZMPを定義することができない。空中相の前後に亘ってロボットを安定させる技術が必要とされている。
また実際のロボットの運動状態をフィードバックするために、特許文献1に記載の技術では、制御サイクル毎にロボットの実際の運動状態を検出し、ロボットの実際の重心の位置・速度と目標とする重心の位置・速度の偏差を算出し、実際の重心の位置・速度に適合するようにその後の重心軌道を更新する。
なお本明細書で「軌道」とは、位置の経時的な変化を記述するデータのことを言う。
特許文献1および2に記載の技術では、実際の運動状態に基づいて更新されるのは重心軌道のみであり、脚リンクの足先の位置・姿勢の軌道は更新されない。足先の位置および姿勢の軌道は、実際のロボットの運動状態に関わらず、歩幅・歩行周期・旋回角などの歩容パラメータと、環境形状に基づいて設定されている。このような動作制御は、実際のロボットの運動状態が目標とする運動状態からわずかに外れている場合であっても、ロボットに所望の歩幅・歩行周期・旋回角を実現させることができるという点で有効である。
しかしながら、実際のロボットの運動状態が、目標とする運動状態から大きく外れた場合には、上記した技術ではロボットの動作を安定させることができない。上記した技術では、例えばロボットに予期せぬ外力が作用して、実際の重心軌道が目標とする重心軌道から大きく外れた場合であっても、目標とする足先の位置・姿勢の軌道については変更されない。従ってロボットは無理な体勢であっても目標とする足先の位置・姿勢を実現しようとするため、その後の動作が不安定なものとなりがちである。
上記のような状況は、ロボットが接地相から踏切って跳躍し、宙に浮いた後、着地して再び接地相へ移行する場合に特に顕著に見られる。宙に浮いた状態では、どれだけロボットの関節角を駆動したとしても、ロボットの重心の軌道は変更することができない。実際の軌道が目標とする軌道とずれている場合であっても、着地するまでの間は重心軌道を変更することができない。しかしながら、ロボットが足先を着地させる位置は予め決定されており、実際の重心軌道を反映して変更されることはない。その結果、ロボットは着地後のZMPを目標とする足先位置に維持しようとして無理な姿勢を取り、その後の挙動を不安定なものとしてしまうか、着地後のZMPを目標とする足先位置に維持することができずに、着地した直後に転倒してしまう。
そして、上記した脚式ロボットは、生成された踏切りから着地までの重心軌道に基づいて、着地後の重心軌道を生成する。計測された実際の重心速度に基づく重心軌道に基づいて、着地後の重心軌道を生成することから、着地衝撃を緩和するための重心の沈み込みを許容した安定な動作を実現することが可能となる。
そして、上記した脚式ロボットは、生成された着地後の重心軌道に基づいて、着地までの脚リンクの足先の軌道を生成する。これによって、空中相におけるロボットの実際の動作が目標としていた動作と大きく異なる場合であっても、実際の重心速度に適合した空中相における重心軌道と、その重心軌道に適合した着地後の重心軌道から、空中相における脚リンクの足先の軌道が生成される。脚リンクを着地する位置は、実際に計測された重心速度によるときの重心軌道に基づいて生成されるため、ロボットは無理な姿勢を取ることがなく、着地後も安定して動作を継続することができる。
上記した脚式ロボットは、上記のようにして生成された空中相での重心軌道と脚リンクの足先の軌道に基づいて、空中相での各関節の関節角目標値の経時的データを生成し、上記のようにして生成された着地後の重心軌道に基づいて、着地後の各関節の関節角目標値の経時的データを生成し、生成された関節角目標値の経時的データに基づいて、関節を回転する。着地後の接地相においては、脚リンクの足先は接地しており、床に対して移動しないため、脚リンクの足先の軌道の生成は必ずしも必要ではない。
本発明のロボットは、鉛直方向軌道を加味して水平方向軌道を計算する手段を備えており、着地後に沈み込む動作を実現する鉛直方向の動きを規定すれば、その上下動を前提とした重心軌道を計算する。着地後に沈み込む動作を実現する際に、ZMPが目標ZMPからずれてロボットが転倒することを防止することができる。
目標ZMPと一致するZMPを実現する水平方向軌道を計算するためには境界条件を必要とする。本発明では、着地後の接地相の開始時(着地の時点)と完了時(着地後の所定の時点)における重心の水平方向速度を境界条件とする。この境界条件を満たす水平方向軌道が計算され、着地の前後において重心速度が連続する水平方向軌道を計算することができる。
着地後の所定の時点は、着地した脚リンクが着地から継続して支持脚として接地している間であれば、どのような時点であってもよい。例えば、着地後に沈み込む動作を実現する場合、着地後の所定の時点としては沈み込み動作の完了の時点とすることができる。着地後に沈み込む動作を実現する際に、ZMPが目標ZMPからずれてロボットが転倒することを防止することができる。
上記した脚式ロボットによれば、着地衝撃を緩和するために着地後に実施する沈み込む動作を実現する鉛直方向の動きを規定することができる。
本発明の方法は、関節角を変えることによって、踏切り、宙に浮き、着地する動作を実現する脚式ロボットの動作を制御する方法である。その方法は、踏切り時の重心速度を検出する工程と、検出された踏切り時の重心速度に基づいて踏切りから着地までの重心軌道を生成する工程と、生成された踏切りから着地までの重心軌道に基づいて着地後の重心軌道を生成する工程と、生成された着地後の重心軌道に基づいて着地までの脚リンクの足先の軌道を生成する工程と、生成された着地までの重心軌道と脚リンクの足先の軌道に基づいて着地までの関節角の目標値の経時的データを生成する工程と、生成された着地後の重心軌道に基づいて着地後の関節角の目標値の経時的データを生成する工程と、生成された関節角の目標値の経時的データに基づいて関節を回転する工程とを備えている。
(形態1)関節角を変えることによって、踏切り、宙に浮き、着地する動作を実現する脚式ロボットであって、
踏切り時の重心速度と重心まわりの角運動量を検出する手段と、
検出された踏切り時の重心速度に基づいて、踏切りから着地までの重心軌道を生成する手段と、
生成された踏切りから着地までの重心軌道に基づいて、着地後の重心軌道を生成する手段と、
生成された着地後の重心軌道に基づいて、着地までの脚リンクの足先の軌道を生成する手段と、
生成された着地までの重心軌道と脚リンクの足先の軌道と検出された重心まわりの角運動量に基づいて、着地までの関節角の目標値の経時的データを生成する手段と、
生成された着地後の重心軌道に基づいて、着地後の関節角の目標値の経時的データを生成する手段と、
生成された関節角の目標値の経時的データに基づいて、関節を回転する手段と、
を備えることを特徴とする脚式ロボット。
図1は本実施例のロボット2の概要を示している。ロボット2は体幹4と左脚リンク6と右脚リンク8と制御部10とコントローラ12とセンサ14を備えている。
左脚リンク6は一方の端部を股関節を介して体幹4に揺動可能に接続されている。左脚リンク6はさらに膝関節と足首関節を備え、先端には足平を備えている。
右脚リンク8は股関節を介して体幹4に揺動可能に接続されている。右脚リンク8はさらに膝関節と足首関節を備え、先端には足平を備えている。
ロボット2の各関節はアクチュエータ(図示されない)を備えており、それらのアクチュエータは制御部10からの指示によって回転駆動する。左脚リンク6と右脚リンク8の足平の中心には、それぞれ基準点L0、R0が設けられている。基準点L0、R0は、ロボット2の動作パターンを生成する際の基準となる点である。図中Gは、ロボット2の重心の位置を示す。
またロボット2の各関節はエンコーダ(図示されない)を備えており、それらのエンコーダは制御部10に関節角の経時的変化を出力する。
制御部10はCPU、ROM、RAM、ハードディスク等を有するコンピュータ装置である。制御部10はコントローラ12と通信可能であり、ユーザーが操作するコントローラ12から指令値を入力する。制御部10はユーザーから入力される指令値に基づいて、ロボット2の動作パターンを生成ないし計算する。制御部10は生成した動作パターンを記憶し、記憶された動作パターンを実現するように各関節を駆動する。制御部10の詳細については、後に詳述する。
センサ14は体幹4に位置と姿勢を固定された加速度センサ(図示されない)とジャイロセンサ(図示されない)を備えている。加速度センサは3軸の加速度を計測可能であり、ジャイロセンサは3軸まわりの角速度を計測可能である。加速度センサおよびジャイロセンサの計測点は、ロボット2が直立して静止した状態での重心の位置Gとほぼ一致するように、その位置を調整されている。センサ14は制御部10に接続されており、制御部10からの指示に応じて加速度と角速度をそれぞれ計測し、制御部10へ送信する。
図2の破線は、上記した動作態様におけるロボット2の重心の概略の軌道を示している。ロボット2が跳躍する直前の接地相(すなわち、姿勢A1から姿勢A2までの接地相と、姿勢A4から姿勢A5までの接地相)では、その後の跳躍に備えて重心を沈み込ませている。またロボット2が着地した直後の接地相(すなわち、姿勢A4から姿勢A5までの接地相と、姿勢A7から姿勢A8までの接地相)では、跳躍による着地衝撃を和らげるために重心を沈み込ませている。姿勢A4から姿勢A5までの接地相での動作は、着地衝撃を緩和するための重心の沈み込みと、跳躍の準備のための重心の沈み込みとを兼ねている。
上記した動作態様はあくまでも例示のために示したものであり、本実施例のロボット2は接地相と空中相を組み合わせた様々な動作を実現することができる。ロボット2が実現する動作態様は、ユーザーが任意に設定することが可能である。例えば一本足でけんけんをする動作などが含まれていてもよい。
図2に示す動作態様を扱う場合には、最初の接地相の開始時点(すなわち姿勢A1の時点であり、沈み込み動作の開始する時点)から、その接地相に続く空中相の完了時点(すなわち姿勢A4の時点)までを区間1とし、区間1に続く接地相の開始時点(すなわち姿勢A4の時点)から、その接地相に続く空中相の完了時点(すなわち姿勢A7の時点)までを区間2とし、区間2に続く接地相の開始時点(すなわち姿勢A7の時点)からその接地相の完了時点(すなわち姿勢A8の時点)までを区間3とし、区間3に続く接地相の開始時点(すなわち姿勢A8の時点)からその接地相の完了時点(すなわち姿勢A9の時点)までを区間4とする。
ロボット2の動作中にユーザーから指令値が入力されると、ロボット2はそれ以降の動作パターンを再度生成して、新たに入力された指令値に応じた動作パターンを記憶する。記憶された新たな動作パターンは、それ以降の動作に反映される。
上記のようにして、本発明のロボット2は、ユーザーからの指令値が入力される度に、動作パターンを更新しながら動作を継続する。
また本実施例のロボット2は、接地相から空中相へ切替わるときに、実際の重心速度と重心まわりの角運動量を検出して、それ以降の動作パターンを再度生成し、実際の重心速度と重心まわりの角運動量に応じた動作パターンを記憶する。記憶された動作パターンは、それ以降の動作に反映される。
図3は制御部10の機能の構成を示すブロック図である。制御部10はユーザー指令値記憶部302と、空中相重心鉛直軌道生成部304と、接地相重心鉛直軌道生成部306と、接地相重心水平軌道計算部308と、空中相重心水平軌道計算部310と、重心相対軌道計算部314と、遊脚相対軌道計算部316と、関節角目標値演算部318と、関節駆動部320と、センサ制御部354と、目標角運動量更新部362を備えている。ここでは重心の軌道を計算して生成することから、計算、生成、演算の語を区別なく用いる。重心の鉛直軌道は、ユーザー指令値から直接的に計算されることから生成の語を用い、重心の水平軌道は後述のZMP方程式を満足するよう計算されることから計算の語を用いることがあるが、技術的には生成も計算も特に区別するものではない。
ロボット2の動作中に新たなユーザー指令値352が入力されると、制御部10はユーザー指令値記憶部302に記憶されたユーザー指令値を、新たに入力されたユーザー指令値に置き換える。制御部10は新たにユーザー指令値が入力されると、それ以降の動作パターンを生成する処理を実施する。ユーザーから入力される新たな指令値は、それ以降のロボット2の動作の生成に反映される。ユーザーは、ロボット2の運動を視認しながら、例えばジョイスティック等のコントローラ12を用いてユーザー指令値を入力することで、ロボット2の動作をリアルタイムに制御することができる。
接地相重心鉛直軌道338、接地相重心水平軌道340も、上記した空中相重心鉛直軌道336、空中相重心水平軌道342と同様に、各動作区間におけるロボット2の接地相での重心の軌道を記述するデータである。これらのデータは、動作区間の順序を示す符号と、その動作区間における接地相での重心の軌道が、関連付けられている。これらのデータは、対応する軌道生成部ないし計算部で、ある動作区間における重心の軌道が生成されるたびに、更新されていく。
遊脚相対軌道348は、各動作区間におけるロボット2の遊脚の足先の基準点の相対軌道を記述するデータであって、動作区間の順序を示す符号と、その動作区間における遊脚の足先の基準点の相対軌道が、関連付けられている。遊脚相対軌道計算部316で、ある動作区間における遊脚の相対軌道が計算されるたびに、遊脚相対軌道348は更新されていく。
関節角目標値経時的データ350は、ロボット2の各関節の目標関節角の経時的データであって、対応する動作区間の順序を示す符号が関連付けられている。関節角目標値演算部318で演算が実施されるたびに、関節角目標値経時的データ350は更新されていく。
ステップS404で実施する区間1の重心の軌道の生成は、ステップS408からステップS420で後述する一般的な区間kにおける重心の軌道の生成と同様であり、ステップS404はステップS408からステップS420の処理をまとめて表現したものである。重心軌道の生成処理の詳細については後述する。
ステップS404の処理を実行することによって、区間1における重心の鉛直方向軌道および水平方向軌道が生成される。図2に示すように、区間1は接地相と空中相を備えている。生成された区間1の重心の軌道は、空中相重心鉛直軌道336、接地相重心鉛直軌道338、接地相重心水平軌道340、空中相重心水平軌道342に反映される。
(1)ロボット2の動作の態様321
(2)空中相における重心の跳躍高さ322
(3)動作の切替りにおける重心の高さ(鉛直方向位置)324
(4)接地相の継続時間326
(5)接地相における相対ZMP軌道328
(6)接地相および空中相における目標角運動量経時的データ330
(7)動作の切替りにおける重心の水平方向速度332
(8)踏切りの時点における遊脚足先の位置および速度334
本実施例のロボット2では、接地相における相対ZMP軌道を、支持脚の足平の中心に固定するように設定する。このような相対ZMP軌道が実現される場合、ロボット2は転倒することなく、安定して動作を実現することができる。なお接地相における相対ZMP軌道は、その接地相の間で足平の内部に維持されていれば、どのような軌道を与えてもよい。例えば接地相の間に支持脚の足平の内部の後方から前方へ移動するような軌道を用いてもよい。このような相対ZMP軌道が実現される場合も、ロボット2は転倒することなく、安定して動作を実現することができる。
本実施例のロボット2では、すべての動作区間において、ロール軸、ピッチ軸およびヨー軸まわりの角運動量は0となるように設定する。
例えばkが2の場合、区間2の動作は空中相を備えているため、処理はステップS412へ進む。
空中相ではロボット2が空中に浮いており、重力のみが外力としてロボット2に作用する。従って、空中相ではロボット2の関節をどのように駆動したとしても、その重心の軌道は以下に示す軌道となる。
上記のz0は、踏切りの時点における重心の高さであり、ステップS408においてユーザー指令値として与えられている。
また上記のvz0は、踏切りの時点における重心の鉛直方向速度である。このvz0は、ステップS408で与えられるユーザー指令値の跳躍高さから算出することができる。踏切りの時点における重心の鉛直方向の速度vz0は、跳躍高さhと重力加速度gを用いて以下によって算出される。
図5の(a)はロボット2の重心の鉛直方向軌道を模式的に示している。例えばkが2である場合、ステップS412では区間2の空中相の鉛直方向軌道102が生成される。
またステップS412で生成された空中相におけるロボット2の重心の鉛直方向軌道102から、空中相が継続する時間を算出することができる。算出される空中相の継続時間は、後のステップS420からステップS422での処理に用いられる。
また、ステップS404における区間1の重心の鉛直方向軌道の生成の場合、区間kの接地相の開始時の条件は任意に与えることができる。本実施例のロボット2では、区間1の接地相の開始時の条件として、重心の鉛直方向位置をユーザー指令値である重心高さ324として、重心の鉛直方向速度を0とする。
区間kが空中相を備える場合には、接地相の完了時における重心の鉛直方向の位置と速度は、ステップS412ですでに生成されている空中相での重心の鉛直方向軌道から設定することができる。例えばkが2である場合、接地相の完了時110における重心の鉛直方向位置と速度は、ステップS412ですでに生成されている空中相での重心の鉛直方向軌道102から、空中相の開始時110での重心の鉛直方向位置と速度を特定し、特定された位置と速度を接地相の完了時の条件とする。
また区間kが空中相を備えておらず、接地相の完了時が区間k+1の接地相の開始時と接続する場合には、区間kの完了時における重心の鉛直方向位置は、ステップS408で与えられるユーザー指令値から設定することができる。この場合、重心の鉛直方向速度は任意に与えることができる。例えばkが3である場合、区間3は空中相を備えておらず、接地相の重心の鉛直方向軌道114の完了時116は次の動作区間である区間4の接地相の重心の鉛直方向軌道115(この時点ではまだ生成されていない)と接続する。このような場合、重心の鉛直方向位置は、ユーザー指令値として与えられる重心の高さ324をそのまま用いる。重心の鉛直方向速度は、任意に与えることができる。
区間kの接地相での重心の鉛直方向軌道は、ステップS414ですでに生成されている。目標とする相対ZMP軌道と角運動量の経時的データは、ステップS408でユーザー指令値として与えられている。接地相の開始時における重心の水平方向速度は、すでに生成されている区間k-1の重心軌道から、区間k-1の完了時における重心の水平方向速度を特定することで与えられる。接地相の完了時における重心の水平方向速度は、ステップS408でユーザー指令値として与えられている。ステップS420では、これらの条件を満足するように、接地相での重心の水平方向軌道を計算する。
ロボット2が実現する相対ZMP位置(px',py')は、ロボット2の相対重心位置(x',y',z')と支持脚の足先を原点とする座標系から見たロボット2の重心まわりの角速度(ωx',ωy')から計算することができる。ロボット2の相対重心位置とロボット2の重心まわりの角速度から、実際のZMPを計算する下記の式をZMP方程式と呼ぶ。
上式のz'およびz'(2)は、ロボット2の支持脚の足先を原点とする重心の鉛直方向位置と鉛直方向加速度である。接地相ではロボット2の支持脚の足先は床に対して移動しないため、z'およびz'(2)はステップS414で生成された重心の鉛直方向軌道から特定することができる。
上式のIx'ωx' (1)とIy'ωy' (1)は、ロボット2の回転慣性の影響を示す。本実施例では、すべての動作区間においてロール軸(x'軸)およびピッチ軸(y'軸)まわりの角運動量を0としており、Ix'ωx' (1)とIy'ωy' (1)は0である。
区間kの開始時の重心のx'方向速度vx'0は、分割時間幅Δtと、重心の位置x'0、x'1とを用いて、以下によって表現される。
上記した計算では、試行錯誤的に重心の水平方向軌道を計算することなく、直接的に目標とする相対ZMP軌道を満足する重心の水平方向軌道を計算することができる。上記した計算は少ない計算量で実施することが可能であり、接地相重心水平軌道計算部308は高速で計算を実施することができる。
図6にkが2である場合にステップS416で計算されるx'方向軌道(x'0,x'1,・・・,x'n-1)の詳細を示す。
上記の処理によって生成される重心の軌道を実現することで、ロボット2はZMPを支持脚の足平の内部に維持しながら、重心を上下動させる動作を実現することができる。
例えばkが2の場合、区間2の動作は空中相を備えているため、処理はステップS420へ進む。
上記のvx0,vy0は、ロボット2の踏切りの時点での重心の水平方向速度でもあり、ロボット2が着地する時点での重心の水平方向速度でもある。vx0,vy0は、動作の切替りにおける重心の水平方向速度と等しく、ステップS408においてユーザー指令値として与えられている。
上記のx0,y0は、ロボット2の踏切りの時点での重心の水平方向の位置であり、ステップS416ですでに計算されている区間kの接地相の完了時の重心の水平方向位置と等しい。
上述したvx0,vy0,x0,y0を与えることによって、重心の水平方向軌道を計算することができる。
例えばkが2である場合、図5の(a)および(b)の区間2の接地相での重心の相対軌道106、118を生成したのちに、区間1の空中相の重心の相対軌道128、120を計算する。
区間k-1が空中相を備えていない場合、重心の相対軌道はすなわち、重心から見た支持脚の足先の相対軌道であるから、ステップS422では特に処理を行うことなく、ステップS424へ進む。
なお、図5の(a)および(b)では、接地相から空中相へ切替る時に支持脚が入れ替わっているために、重心の相対軌道(実線で示す曲線)は不連続に変化している。一方で、空中相から接地相へ切替る時には支持脚が入れ替らないため、重心の相対軌道は連続に変化している。しかしながら、ロボット2の外部から見た重心の軌道(図5の破線で示す曲線。接地相では、重心の相対軌道と一致している)および支持脚の足先の軌道は、それぞれ連続した軌道であることに注意されたい。
踏切りの時点で支持脚が入れ替わる場合、区間k-1の空中相の開始時における重心から見た支持脚の相対軌道(すなわち重心の相対軌道)は、区間k-1の接地相の完了時における遊脚の重心から見た相対軌道と滑らかに接続するように設定する。区間k-1の接地相の完了時における遊脚の足先の重心から見た位置と速度は、ユーザー指令値の踏切りの時点における遊脚の足先の位置と速度334と、区間k-1の接地相の完了時における重心の相対軌道から、算出することができる。
踏切りの時点で支持脚が入れ替わらない場合、区間k-1の空中相の開始時における支持脚の相対軌道(すなわち重心の相対軌道)は、区間k-1の接地相における支持脚の相対軌道(すなわち重心の相対軌道)と滑らかに接続するように設定する。すなわち、区間k-1の接地相における重心の相対軌道から、区間k-1の接地相の完了時における重心の相対位置と速度を特定し、区間k-1の空中相の開始時における重心の相対位置と速度として設定する。
例えばkが2である場合、区間1の空中相の踏切りの時点で支持脚は左脚リンク6から右脚リンク8へ入れ替わる。従って、図5の(a)および(b)の区間1の空中相の重心の相対軌道128、120を計算するにあたっては、その空中相の開始時126における重心の相対位置と速度は、ユーザー指令値の踏切りの時点における遊脚の足先の位置と速度334と、区間1の接地相の完了時における重心の相対軌道122、124から算出する。
例えばkが2である場合、図5の(a)および(b)の区間1の空中相における重心の相対軌道128、120を計算するにあたっては、その空中相の完了時108における重心の相対位置と速度を、区間2の接地相における重心の相対軌道106、118に基づいて、その接地相の開始時108における重心の相対位置と速度に一致させる。
区間k-1における遊脚の足先の相対軌道は、区間k-1の前後における脚リンクの動作と滑らかに接続するように計算する。
区間k-1が空中相を備える場合、踏切りの時点における遊脚の足先の位置と速度は、ステップS408でユーザー指令値として与えられている。従って、区間k-1の接地相の完了時における遊脚の足先は、ユーザー指令値と一致するように設定される。
区間k-1が空中相を備えない場合、区間k-1の接地相の完了時は、区間kの接地相の開始時と接続する。接地相から接地相へ移行する場合、支持脚となる脚リンクは入れ替わる。従って、本実施例のロボット2ではこのような場合、区間k-1の接地相の完了時における遊脚の位置と速度は、区間k-1の接地相の完了時における重心の位置と速度と、区間kの開始時における重心の相対位置と速度に基づいて、脚リンクの足先の移動が滑らかなものとなるように設定する。
踏切りの時点で支持脚が入れ替わる場合、区間k-1の空中相の開始時における遊脚の足先の重心から見た位置と速度は、区間k-1の接地相の完了時における支持脚の重心から見た位置と速度に一致させる。区間k-1の空中相の完了時における遊脚の足先の位置と速度は、任意に与えることができる。
踏切りの時点で支持脚が入れ替わらない場合、区間k-1の空中相の開始時における遊脚の足先の重心から見た位置と速度は、区間k-1の接地相の完了時における遊脚の重心から見た位置と速度に一致させる。区間k-1の空中相の完了時における遊脚の足先の位置と速度は、任意に与えることができる。
重心の相対並進運動量Pg、重心の相対角運動量Lg、遊脚足先の相対速度vfおよび遊脚足先の角速度ωfは、関節角の角速度θ(1)と、それぞれヤコビ行列Jg(θ)、Kg(θ)、Jf(θ)、Kf(θ)を用いて、以下で表現される。
目標とするロボット2の運動Pg、Lg、vf、ωfを満たす関節角速度θ(1)は、無数の解を持つ冗長系となっている。本実施例のロボット2では、第1サブタスクとして目標とする重心の相対速度を実現すること、第2サブタスクとして目標とする角運動量を実現すること、第3サブタスクとして目標とする遊脚足先の相対軌道を実現することを条件として、目標関節角の経時的データを演算する。上記したような複数のヤコビ行列で表される拘束条件を、それぞれの条件に優先度をつけながら、冗長度の許す限り最適な解を求める手法は、従来から提案されており、説明を省略する。
ステップS426で演算される関節角目標値の経時的データ350は、制御部10に記憶される。
ステップS702では、その時点でロボット2が実現している動作の動作区間kを特定する。
ステップS704では、区間kが空中相を含むか否かを判断する。区間kが空中相を含む場合(ステップS704でYESの場合)、処理はステップS706へ進み、動作パターンの更新処理を実施する。区間kが空中相を含まない場合(ステップS704でNOの場合)、制御部10は動作パターンを更新することなく、処理を終了する。
センサ14で計測される加速度は、センサ14の計測点における加速度であって、ロボット2の重心における加速度ではない。センサ制御部354はセンサ14の計測点における加速度から、重心の加速度を算出する。重心の加速度は、例えばエンコーダの出力からロボット2の各関節の関節角の実際の経時的変化を記憶しておき、各関節の関節角の経時的変化から重心とセンサ14の計測点との相対加速度を算出して、その相対加速度を計測されたセンサ14の計測点における加速度に加えることによって、算出することができる。
センサ制御部354は、上記で算出される重心の加速度の経時的変化を記憶している。またロボット2が実際に動作を開始した時点から現在までの重心の加速度を積分することで、重心速度を算出しその経時的変化を記憶している。
センサ制御部354は重心速度の計測を指示されると、その時点での重心速度を踏切り時の重心鉛直速度356、踏切り時の重心水平速度358として出力する。
センサ14で計測された角速度は、センサ14の計測点まわりの角速度であって、ロボット2の重心まわりの角速度ではない。センサ制御部354はセンサ14の計測点まわりの角速度から、重心まわりの角速度を算出する。重心まわりの角速度は、例えばエンコーダの出力から各関節の関節角の実際の経時的変化を記憶しておき、重心に対するセンサ14の計測点の角速度を算出して、その結果に計測されたセンサ14の計測点まわりの角速度を加えることによって、算出することができる。
センサ制御部354は、上記の算出された重心まわりの角速度と、踏切り時の姿勢におけるロボット2の慣性モーメントから、踏切り時の角運動量360を決定する。
ステップS706では、区間kの空中相に関して、センサ制御部354から出力される踏切り時の角運動量360を、新たな目標角運動量として設定する。区間k+1以降に関しての目標角運動量は、変更することなく、ユーザー指令値として入力される値をそのまま使用する。
ステップS708で新たに生成された区間kの空中相における重心の鉛直方向軌道は、記憶されているデータと置き換えられて、その後の動作の生成に利用される。
図8の(a)は更新処理を行う前の重心の鉛直方向軌道を示しており、(b)は更新処理を実施した後の重心の鉛直方向軌道を示している。
ステップS708の処理では、(a)に示す空中相における重心の鉛直方向軌道112は、図8では矢印830で示される実際の重心の鉛直方向速度356に基づいて、(b)に示す空中相における重心の鉛直方向軌道812に更新される。
ステップS708、ステップS710の処理によって、区間kの空中相において、その後着地するまでの間の重心の軌道が更新される。ステップS712以降の処理では、着地した後の動作について更新処理を行う。
ステップS714からステップS726までの処理では、区間kにおける重心軌道を再度生成する。区間kにおける重心軌道の生成は、図4のステップS408からステップS420までの処理と同様であるから、説明を省略する。
ステップS714からステップS726までの処理によって、着地後の区間kにおける重心の軌道が更新される。ステップS728以降の処理では、区間k-1における脚リンクの足先の軌道の更新を行う。図7の更新処理においてステップS728以降の処理を最初に実施する場合には、現在ロボット2が実現している動作区間における、着地するまでの間の脚リンクの足先の軌道を更新する処理に相当する。
区間1の踏切り時において、図中矢印830で示される計測された実際の重心の鉛直方向速度356が、目標とする重心の鉛直方向軌道112に適合しない場合であっても、(b)に示すように、矢印830で示される計測された重心の鉛直方向速度356に適合する重心の鉛直方向軌道812に更新される。そして、区間1の空中相における重心の鉛直方向軌道812の更新に合わせて、区間2以降の重心の鉛直方向軌道802、806が更新される。そして、更新された区間2の接地相における重心の鉛直方向軌道806に適合するように、区間1の空中相における重心の相対軌道828が更新される。空中相における重心の相対軌道は、すなわち空中相における重心に対する支持脚の足先の軌道を示している。
図8には遊脚の足先の相対軌道を図示していないが、遊脚足先の相対軌道についても、重心の相対軌道828と同様に、実際のロボット2の運動状態に適合するように更新される。
図8では鉛直方向の軌道について図示しているが、水平方向の軌道についても、同様に更新される。
従って、ロボット2の実際の運動状態が、目標とする運動状態から大きく外れてしまった場合であっても、ロボット2は無理な姿勢をとることがなく、安定して着地後の動作を実現することができる。
例えば位置が既知である対象までの距離を知ることが可能な測距センサを用いてロボット2の代表点の位置を計測し、代表点と重心との相対的な位置関係を各関節の関節角から算出し、重心と代表点の相対位置と計測される代表点の位置とから重心の位置を算出し、その時間変化率を算出することによっても、重心の速度を知ることができる。また、センサ14としてGPS受信機を体幹4に搭載し、取得される位置と各関節の関節角から重心の位置を算出し、重心位置の経時的変化から重心速度を算出してもよい。
また、各関節の関節角の経時的変化のみを用いて直接的に重心速度を算出してもよい。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
4・・・体幹
6・・・左脚リンク
8・・・右脚リンク
10・・・制御部
12・・・コントローラ
14・・・センサ
102、106、114、115、122、128・・・重心の鉛直軌道
104、118、120、124・・・重心の水平軌道
108、110、116、126・・・動作区間の境界
802、806、812、828・・・重心の鉛直方向軌道
830・・・矢印
Claims (4)
- 関節角を変えることによって、踏切り、宙に浮き、着地する動作を実現する脚式ロボットであって、
踏切り時の重心速度を検出する手段と、
検出された踏切り時の重心速度に基づいて、踏切りから着地までの重心軌道を生成する手段と、
生成された踏切りから着地までの重心軌道に基づいて、着地後の重心軌道を生成する手段と、
生成された着地後の重心軌道に基づいて、着地までの脚リンクの足先の軌道を生成する手段と、
生成された着地までの重心軌道と脚リンクの足先の軌道に基づいて、着地までの関節角の目標値の経時的データを生成する手段と、
生成された着地後の重心軌道に基づいて、着地後の関節角の目標値の経時的データを生成する手段と、
生成された関節角の目標値の経時的データに基づいて、関節を回転する手段と、
を備えることを特徴とする脚式ロボット。 - 前記着地後の重心軌道を生成する手段は、
踏切りから着地までの重心の鉛直方向軌道に基づいて、着地後の重心の鉛直方向軌道を生成する手段と、
生成された着地後の重心の鉛直方向軌道と、ZMP方程式を離散化した3項方程式と、着地後の目標とする相対ZMPと、着地の時点と着地後の所定の時点における重心の水平方向速度とに基づいて、着地後の重心の水平方向軌道を計算する手段と、
を備えることを特徴とする請求項1の脚式ロボット。 - 前記着地後の重心の水平方向軌道を計算する手段は、着地後の重心の鉛直方向軌道から計算される係数を持つ3重対角行列と、着地後の重心の水平方向軌道の列、着地後の目標とする相対ZMPと着地の時点と着地後の所定の時点における重心の水平方向速度から計算される距離の列との間に成立する連立方程式を解いて、着地後の重心の水平方向軌道を計算する手段をさらに備えることを特徴とする請求項2の脚式ロボット。
- 関節角を変えることによって、踏切り、宙に浮き、着地する動作を実現する脚式ロボットの動作を制御する方法であって、
踏切り時の重心速度を検出する工程と、
検出された踏切り時の重心速度に基づいて、踏切りから着地までの重心軌道を生成する工程と、
生成された踏切りから着地までの重心軌道に基づいて、着地後の重心軌道を生成する工程と、
生成された着地後の重心軌道に基づいて、着地までの脚リンクの足先の軌道を生成する工程と、
生成された着地までの重心軌道と脚リンクの足先の軌道に基づいて、着地までの関節角の目標値の経時的データを生成する工程と、
生成された着地後の重心軌道に基づいて、着地後の関節角の目標値の経時的データを生成する工程と、
生成された関節角の目標値の経時的データに基づいて、関節を回転する工程と、
を備えることを特徴とする脚式ロボットの動作制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005065827A JP4492395B2 (ja) | 2005-03-09 | 2005-03-09 | 脚式ロボットとその動作制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2005065827A JP4492395B2 (ja) | 2005-03-09 | 2005-03-09 | 脚式ロボットとその動作制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2006247769A true JP2006247769A (ja) | 2006-09-21 |
JP4492395B2 JP4492395B2 (ja) | 2010-06-30 |
Family
ID=37088775
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2005065827A Active JP4492395B2 (ja) | 2005-03-09 | 2005-03-09 | 脚式ロボットとその動作制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4492395B2 (ja) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008023612A (ja) * | 2006-07-18 | 2008-02-07 | Toyota Motor Corp | ロボットとその制御方法 |
WO2008105506A1 (ja) * | 2007-02-28 | 2008-09-04 | The University Of Tokyo | 歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法 |
JP2009214255A (ja) * | 2008-03-12 | 2009-09-24 | Toyota Motor Corp | 脚式ロボット、及びその制御方法 |
JP2011093027A (ja) * | 2009-10-28 | 2011-05-12 | Honda Motor Co Ltd | 脚式移動ロボットの制御装置 |
US7957835B2 (en) | 2005-02-03 | 2011-06-07 | Toyota Jidosha Kabushiki Kaisha | Legged robot and control method thereof |
JP2011161524A (ja) * | 2010-02-05 | 2011-08-25 | Toyota Motor Corp | 2脚歩行ロボット及びそのための歩容データ生成方法 |
JP2011224756A (ja) * | 2010-04-22 | 2011-11-10 | Honda Motor Co Ltd | 2足移動ロボットの制御装置 |
US9120512B2 (en) | 2010-04-22 | 2015-09-01 | Honda Motor Co., Ltd. | Control device and gait generating device for bipedal mobile robot |
CN112638596A (zh) * | 2018-08-23 | 2021-04-09 | 株式会社日立制作所 | 自主学习型机器人装置以及自主学习型机器人装置的动作生成方法 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003057429A1 (fr) * | 2001-12-28 | 2003-07-17 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de production de demarche pour robot se deplaçant sur des jambes |
WO2003061917A1 (fr) * | 2002-01-18 | 2003-07-31 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande pour robot bipede |
WO2003090982A1 (fr) * | 2002-04-26 | 2003-11-06 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande et dispositif de determination de pas pour robot mobile sur jambes |
WO2003090978A1 (fr) * | 2002-04-26 | 2003-11-06 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande d'un robot mobile dote de jambes |
JP2004167676A (ja) * | 2002-11-06 | 2004-06-17 | Sony Corp | ロボット装置、ロボット装置の運動制御装置並びに運動制御方法 |
WO2005000534A1 (ja) * | 2003-06-27 | 2005-01-06 | Honda Motor Co., Ltd. | 脚式移動ロボットの制御装置 |
-
2005
- 2005-03-09 JP JP2005065827A patent/JP4492395B2/ja active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2003057429A1 (fr) * | 2001-12-28 | 2003-07-17 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de production de demarche pour robot se deplaçant sur des jambes |
WO2003057425A1 (fr) * | 2001-12-28 | 2003-07-17 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de production de demarche pour robot se deplaçant sur des jambes, et dispositif de commande |
WO2003061917A1 (fr) * | 2002-01-18 | 2003-07-31 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande pour robot bipede |
WO2003090982A1 (fr) * | 2002-04-26 | 2003-11-06 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande et dispositif de determination de pas pour robot mobile sur jambes |
WO2003090978A1 (fr) * | 2002-04-26 | 2003-11-06 | Honda Giken Kogyo Kabushiki Kaisha | Dispositif de commande d'un robot mobile dote de jambes |
JP2004167676A (ja) * | 2002-11-06 | 2004-06-17 | Sony Corp | ロボット装置、ロボット装置の運動制御装置並びに運動制御方法 |
WO2005000534A1 (ja) * | 2003-06-27 | 2005-01-06 | Honda Motor Co., Ltd. | 脚式移動ロボットの制御装置 |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7957835B2 (en) | 2005-02-03 | 2011-06-07 | Toyota Jidosha Kabushiki Kaisha | Legged robot and control method thereof |
US8108070B2 (en) | 2006-07-18 | 2012-01-31 | Toyota Jidosha Kabushiki Kaisha | Robot and control method thereof |
JP4591419B2 (ja) * | 2006-07-18 | 2010-12-01 | トヨタ自動車株式会社 | ロボットとその制御方法 |
JP2008023612A (ja) * | 2006-07-18 | 2008-02-07 | Toyota Motor Corp | ロボットとその制御方法 |
JPWO2008105506A1 (ja) * | 2007-02-28 | 2010-06-03 | 国立大学法人 東京大学 | 歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法 |
WO2008105506A1 (ja) * | 2007-02-28 | 2008-09-04 | The University Of Tokyo | 歩容生成装置およびこれを備える歩行体装置並びに歩容生成方法 |
JP2009214255A (ja) * | 2008-03-12 | 2009-09-24 | Toyota Motor Corp | 脚式ロボット、及びその制御方法 |
JP2011093027A (ja) * | 2009-10-28 | 2011-05-12 | Honda Motor Co Ltd | 脚式移動ロボットの制御装置 |
JP2011161524A (ja) * | 2010-02-05 | 2011-08-25 | Toyota Motor Corp | 2脚歩行ロボット及びそのための歩容データ生成方法 |
JP2011224756A (ja) * | 2010-04-22 | 2011-11-10 | Honda Motor Co Ltd | 2足移動ロボットの制御装置 |
US9120512B2 (en) | 2010-04-22 | 2015-09-01 | Honda Motor Co., Ltd. | Control device and gait generating device for bipedal mobile robot |
CN112638596A (zh) * | 2018-08-23 | 2021-04-09 | 株式会社日立制作所 | 自主学习型机器人装置以及自主学习型机器人装置的动作生成方法 |
CN112638596B (zh) * | 2018-08-23 | 2024-02-20 | 株式会社日立制作所 | 自主学习型机器人装置以及自主学习型机器人装置的动作生成方法 |
Also Published As
Publication number | Publication date |
---|---|
JP4492395B2 (ja) | 2010-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4548135B2 (ja) | 脚式ロボットとその制御方法 | |
JP4591419B2 (ja) | ロボットとその制御方法 | |
JP4492395B2 (ja) | 脚式ロボットとその動作制御方法 | |
CN111891252B (zh) | 一种四足仿生机器人的身体姿态斜坡自适应控制方法 | |
JP4513320B2 (ja) | ロボット装置、並びにロボット装置の運動制御方法 | |
US9073209B2 (en) | Walking robot and control method thereof | |
JP4392037B2 (ja) | 脚式ロボット、及びその制御方法 | |
US20150343633A1 (en) | Robot with joints of variable rigidity and method for calculating said optimized rigidity | |
CN107351936B (zh) | 步行控制方法、记录媒体以及双足步行机器人 | |
JP2011093025A (ja) | 脚式移動ロボットの制御装置 | |
JP5392125B2 (ja) | 2脚歩行ロボット及びそのための歩容データ生成方法 | |
JP4810880B2 (ja) | ロボットとその制御方法 | |
US8805583B2 (en) | Robot and control method thereof | |
JP2006082146A (ja) | 関節角の受動変化を利用して歩行するロボットとその制御方法 | |
JP2007007803A (ja) | ロボットとその制御方法 | |
JP6407409B2 (ja) | 脚型機構体、歩行ロボット、姿勢制御方法及びプログラム | |
JP5463991B2 (ja) | 2脚歩行ロボット | |
JP5040693B2 (ja) | 脚式ロボット、及びその制御方法 | |
JP3674787B2 (ja) | ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム | |
JP4696728B2 (ja) | 脚式ロボットとその制御方法 | |
JP2008080418A (ja) | 二足歩行ロボットの制御装置 | |
JP2009255231A (ja) | 歩行制御装置および歩行制御方法 | |
Sari et al. | Implementation and integration of fuzzy algorithms for descending stair of KMEI humanoid robot | |
JP2008229747A (ja) | 脚式ロボットと歩容生成装置を備えるシステム | |
JP2011131301A (ja) | 脚式ロボットとそのための歩容データ生成方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20070619 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081118 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100112 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100212 |
|
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: 20100316 |
|
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: 20100329 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130416 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140416 Year of fee payment: 4 |