JP4392037B2 - 脚式ロボット、及びその制御方法 - Google Patents

脚式ロボット、及びその制御方法 Download PDF

Info

Publication number
JP4392037B2
JP4392037B2 JP2007237038A JP2007237038A JP4392037B2 JP 4392037 B2 JP4392037 B2 JP 4392037B2 JP 2007237038 A JP2007237038 A JP 2007237038A JP 2007237038 A JP2007237038 A JP 2007237038A JP 4392037 B2 JP4392037 B2 JP 4392037B2
Authority
JP
Japan
Prior art keywords
trajectory
center
gravity
robot
angular momentum
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
Application number
JP2007237038A
Other languages
English (en)
Other versions
JP2009066697A (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
Toyota Central R&D Labs Inc
Original Assignee
Toyota Motor Corp
Toyota Central R&D Labs Inc
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, Toyota Central R&D Labs Inc filed Critical Toyota Motor Corp
Priority to JP2007237038A priority Critical patent/JP4392037B2/ja
Priority to US12/209,422 priority patent/US8340817B2/en
Publication of JP2009066697A publication Critical patent/JP2009066697A/ja
Application granted granted Critical
Publication of JP4392037B2 publication Critical patent/JP4392037B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages

Description

本発明は脚式ロボット、及びその制御方法に関する。
脚式歩行ロボットに関する歩行軌道を生成する技術が数多く提案されている。歩行軌道の生成技術としては、ロボットの重心位置軌道を生成する技術がよく知られている(例えば特許文献1、2など)。特許文献1には、ZMP方程式で算出されるZMPが目標ZMPに一致する重心軌道を算出する技術が開示されている。尚、本明細書で「軌道」とは、位置の経時的な変化を記述するデータのことを言う。
特開2004−167676号公報 特開2006−212736号公報
一般的には、ロボットの重心軌道を生成する際には、ロボットが実現する重心まわりの回転運動の角運動量の軌道を必要とする。しかしながら、従来技術は、ロボットの重心軌道を求めることに関して主眼を置くものであり、ロボットが転倒しない条件を満足しながら、妥当な角運動量を設定する方法については考慮がなされていないものであった。従来技術では、例えば、ロボットの角運動量を0であるものと仮定する、又は角運動量を外乱として扱うものであった。角運動量を0とした場合には、当該角運動量が保存されるものとして軌道生成を行うものであった。
ロボットの転倒は角運動量の時間変化率によっても引き起こされるため、運動中の角運動量を0と仮定して重心軌道を生成した場合には、実際には、ロボットの上体が回転した不自然な軌道となってしまう。
2足歩行ロボットにおいて、角運動量を例えば0としてその場足踏み動作を行った場合には、図5(b)に示すように、重心が左に動いた場合には、角運動量を0として保存するため、上体が右に回転するものとなる。即ち、ロボットは上体の動きに対して角運動量を0に維持しようとするため、上体が大きく回転して姿勢が崩れてしまう。また、走行動作においても、前方へ一歩踏み出すごとに上体が後方へと回転して、ロボットの姿勢が反ったものとなっていた。
このような動作は見た目にも不自然であるばかりでなく、ロボットの股関節などに対して大きなトルクを発生させ、ロボットに対して過大な負荷をかけるなどの問題がある。また、人間が足踏み動作を行う際には、人間は姿勢を維持したまま上体を回転させずに足踏み動作を実現可能である。このことからも、同様に自然な姿勢でロボットが動作を実現するためには、角運動量の軌道を0とするのではなく、何らかの妥当な値を設定する必要があるものと考えられる。
このように、角運動量を0として扱う従来の動作においては、ロボットの上体が不自然な動きになるという問題点があった。
本発明は、かかる課題を解決するためになされたものであり、脚式ロボットの上体が自然な動きとなる軌道を生成することができる脚式ロボット、及びその制御方法を提供することを目的とする。
本発明に係る脚式ロボットは、関節角を変更して動作する脚式ロボットであって、ZMP方程式を離散化した3項方程式と、目標ZMPとに基づいて、重心軌道を生成する手段と、生成された前記重心軌道に基づいて、前記関節角の目標値の経時的データを計算する手段と、計算された前記関節角の目標値の経時的データに基づいて、前記関節を回転する手段とを備え、前記ZMP方程式が、重心速度に応じた角運動量を含むものである。
これにより、角運動量を0とせずに重心の移動速度に応じたものとする構成にしたことで、例えば重心が左に動いた場合には、重心の移動に応じて上体も左に回転する。このため、生成された軌道に基づくロボットの動作が不自然な動作となることを防ぐことができる。尚、本明細書では、単位時間で離散化した3つの時刻位置座標からZMPを計算する式を「ZMP方程式を離散化した3項方程式」という。この3項方程式を利用すると、目標ZMPと一致するZMPを実現する重心軌道の計算が可能となる。
また、前記角運動量を、前記脚式ロボットの質量と、前記角運動量に関する比例定数hと、重心速度とを用いて規定し、前記比例定数hを前記脚式ロボットの姿勢変化に基づいて計算するようにしてもよい。このように、角運動量を重心速度に比例する項を用いて規定し、ロボットの実際の動作における姿勢変化に応じて比例定数を計算することで、構成の異なる様々なロボットに対してもより自然な動作となる比例定数を容易に計算することができる。
さらにまた、前記重心軌道を生成する手段は、鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ行列と、重心軌道の列と、目標ZMPの列との間に成立する連立方程式を解いて重心軌道を計算するようにしてもよい。
また、前記行列が、前記目標ZMPの列における最初の要素に関する方程式が前記重心軌道の列における最後の要素を含み、かつ、前記目標ZMPの列における最後の要素に関する方程式が前記重心軌道の列における最初の要素を含むように、前記鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ行列であるようにしてもよい。このような周期運動を行う条件を満足するように行列を構成することで、解を一意に決定することができる。
さらにまた、前記重心軌道を生成する手段は、鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ3重対角行列と、重心軌道の列と、目標ZMP及び動作開始時と完了時における重心の水平方向速度から計算される距離の列との間に成立する連立方程式を解いて重心軌道を計算するようにしてもよい。このように、境界条件として、動作開始時と完了時における重心の水平方向速度を採用することができる。また、3重対角行列を用いて表現される連立方程式については、少ない計算負荷で高速に求解する技術が開発されている。従って、このような構成によれば、少ない計算負荷で高速に重心軌道を計算することができる。
本発明に係る脚式ロボットの制御方法は、関節角を変更して動作する脚式ロボットの制御方法において、ZMP方程式を離散化した3項方程式と、目標ZMPとに基づいて、重心軌道を生成するステップと、生成された前記重心軌道に基づいて、前記関節角の目標値の経時的データを計算するステップと、計算された前記関節角の目標値の経時的データに基づいて、前記関節を回転するステップとを備え、前記ZMP方程式が、重心速度に応じた角運動量を含むものである。
これにより、角運動量を0とせずに重心の移動速度に応じたものとする構成にしたことで、例えば重心が左に動いた場合には、重心の移動に応じて上体も左に回転する。このため、生成された軌道に基づくロボットの動作が不自然な動作となることを防ぐことができる。
本発明によれば、脚式ロボットの上体が自然な動きとなる軌道を生成することができる脚式ロボット、及びその制御方法を提供することを目的とする。
発明の実施の形態1.
本実施の形態1にかかる脚式ロボットは、まず、ZMP方程式を離散化した3項方程式と、目標ZMPとに基づいて、重心軌道を生成する。そして、生成された重心軌道に基づいて、関節角の目標値の経時的データを計算し、その計算された関節角の目標値の経時的データに基づいて、関節を回転する。このようにして、脚式ロボットは関節角を変更して動作する。ここで、ZMP方程式は、重心速度に応じた角運動量を含むことを特徴とするものである。
以下、図面を参照しながら本実施の形態1に係るロボットの軌道計算方法について説明する。図1は、本実施の形態1に係る脚式ロボットの概要を示す図である。ロボット2は、体幹4と、左脚リンク6と、右脚リンク8と、制御部10と、コントローラ12を備えている。左脚リンク6は一方の端部は股関節を介して体幹4に揺動可能に接続されている。左脚リンク6はさらに膝関節と足首関節を備え、先端には足平を備えている。右脚リンク8は一方の端部は股関節を介して体幹4に揺動可能に接続されている。右脚リンク8はさらに膝関節と足首関節を備え、先端には足平を備えている。ロボット2の各関節はアクチュエータ(不図示)を備えており、それらのアクチュエータは制御部10からの指示によって回転駆動する。左脚リンク6と右脚リンク8の足平の中心には、それぞれ基準点L、Rが設けられている。基準点L、Rは、ロボット2の動作パターンを生成する際の基準となる点である。図中Gは、ロボット2の重心位置を示す。
制御部10は、CPU、ROM、RAM、ハードディスクなどを有するコンピュータ装置である。制御部10はコントローラ12と通信可能であり、ユーザーが操作するコントローラ12から指令値を入力する。制御部10はユーザーから入力される指令値に基づいて、ロボット2の動作パターンを生成ないし計算する。制御部10は生成した動作パターンを記憶し、記憶された動作パターンを実現するように各関節を駆動する。制御部10の詳細については後述する。
以下では、ロボット2の軌道を表現するための座標系として、ロボット2の外部で床に固定された座標系(x,y,z)を用いる。また、ロボット2上の基準点に固定された座標系を(x',y',z')で表現する。本実施の形態1に係るロボット2では、図1に示すように、支持脚の足平の中心を座標系(x',y',z')の基準点とする。以下では、ロボット2の基準点に固定された座標系(x',y',z')で記述された位置、速度、加速度及び軌道を、それぞれ、相対位置、相対速度、相対加速度及び相対軌道と表現する。
本実施の形態1に係るロボット2は、動作開始から完了までの動作パターンを生成して記憶しており、記憶された動作パターンを逐次読み出して動作を実現していく。ロボット2の動作中にユーザーから指令値が入力されると、ロボット2はそれ以降の動作パターンを再度生成して、新たに入力された指令値に応じた動作パターンを記憶する。記憶された新たな動作パターンは、それ以降の動作に反映される。上記のようにして、本実施の形態1に係るロボット2は、リアルタイムに動作パターンを生成しながら歩行していく。
続いて、制御部10の動作の詳細について説明する。図2は、制御部10の機能の構成を示す機能ブロック図である。制御部10は、ユーザー指令記憶部302と、重心相対軌道計画部304と、遊脚相対軌道計画部306と、関節角目標値演算部308と、関節駆動部310とを備えている。ここでは重心の軌道を計算して生成することから、計算、生成、演算の語を区別なく用いる。
ユーザー指令記憶部302は、ユーザーから入力されるユーザー指令値360を記憶する。ユーザー指令記憶部302は、(1)動作の開始時から完了時までの継続時間320、(2)動作の開始時から完了時までにおける相対ZMP軌道322、(3)動作の開始時及び完了時における重心の水平方向速度324、(4)動作の開始時及び完了時における遊脚足先の位置及び速度326などのデータを記憶している。これらのデータの詳細については後述する。
ロボット2の動作中に新たなユーザー指令値360が入力されると、制御部10はユーザー記憶部302に記憶されたユーザー指令値を、新たに入力されたユーザー指令値に書き換える。制御部10は、ユーザー指令記憶部302に記憶されているデータに基づいて逐次動作を計算して生成してゆくため、ユーザーから入力される新たな指令値は、それ以降のロボット2の動作の生成に反映される。ユーザーは、ロボット2の運動を視認しながら、例えばジョイスティックなどのコントローラ12を用いてユーザー指令値を入力することで、ロボット2の動作をリアルタイムに制御することができる。
重心相対軌道計画部304は、ユーザー指令記憶部302に記憶されているユーザー指令値と、重心速度に応じた角運動量に基づいて、ロボット2の重心の軌道を生成する。ここで生成される重心の軌道は、ロボット2の外部に固定された座標系(x,y,z)で記述されたものであるが、ロボット2が床に接地している相である接地相においてはロボット2の基準点(支持脚の足平に位置する)が床に対して移動しないため、ロボット2の基準点に固定された座標系(x',y',z')で記述されたデータとして扱うことができる。軌道生成処理の詳細については後述する。
本実施の形態1に係るロボット2による軌道生成処理では、角運動量を、ロボット2の質量と、角運動量に関する比例定数と、重心速度とを用いて規定する。角運動量に関する当該比例定数を角運動量パラメータ370という。
ここで、本実施の形態1に係るロボット2では、図3(a)に示すような、均質な広がりを持つ物質により構成され、図に示す位置に重心Gが位置する慣性モデルを想定する。斜線により示す範囲は、均質な広がりを持つ物質であることを意味する。このような慣性モデルでは、重心位置を左右に動かそうとする場合には、その動きに伴い角運動量が発生する。尚、従来では、図3(b)に示すように、慣性を考慮しない、質点が一点に集中した一質点モデルを想定しており、角運動量を無視して質点で重心の移動を行うものであった。
図3(a)に示した慣性モデルでは、重心Gが移動するごとに、姿勢が変化して回転する。即ち、重心速度に比例して慣性が発生し、回転運動量が生成される。従って、このような慣性モデルを想定することで、回転運動量を重心速度に比例した項によって定義することができる。これは、ロボット2の上体が回転する場合には、その回転速度に比例した角運動量が発生するであろうという着想による。
本実施の形態1に係るロボット2では、ロボット2全体を大きな剛体と見なし、ロール軸(x')及びピッチ軸(y')まわりの慣性モーメント(一定値)を含む慣性モデルに基づいて重心相対軌道を生成する。尚、ヨー軸(z'軸)まわりの角運動量は、ロボット2が所望の旋回動作を実現するように設定することが可能である。本実施の形態1に係るロボット2では、ヨー軸まわりの角運動量は0となるように設定する。角運動量パラメータ370の詳細については後述する。
重心相対軌道330は、ロボット2の支持脚の足先に設けられた基準点を原点とする座標系(x',y',z')で重心の軌道を記述したものである。重心相対軌道330は、ロボット2が動作を開始してから完了するまでの時間区間の順序を示す符号と、その時間区間における重心の相対軌道が、関連付けられている。重心相対軌道計画部304で、ある時間区間における重心の相対軌道が計算されるたびに、重心相対軌道330は更新されていく。
遊脚相対軌道計画部306は、重心相対軌道計画部304で計算されるロボット2の重心相対軌道330と、ユーザー指令記憶部302に記憶されているユーザー指令値に基づいて、ロボット2の遊脚の足先の相対軌道340を計算する。ここで計算される遊脚の足先の相対軌道340は、ロボット2の支持脚の足先に設けられた基準点を原点とする座標系(x',y',z')で記述されたものである。
遊脚相対軌道340は、各時間区間におけるロボット2の遊脚の足先の基準点の相対軌道を記述するデータであって、時間区間の順序を示す符号と、その時間区間における遊脚の足先の基準点の相対軌道が、関連付けられている。遊脚相対軌道計画部306で、ある時間区間における遊脚の相対軌道が計算されるたびに、遊脚相対軌道340は更新されていく。
関節角目標値演算部308は、重心相対軌道計画部304で計算されるロボット2の重心相対軌道330と、遊脚相対軌道計画部306で計算されるロボット2の遊脚の足先の基準点の相対軌道340に基づいて、ロボット2の各関節の関節角目標値の経時的データ350を演算する。
関節角目標値経時的データ350は、ロボット2の各関節の目標関節角の経時的データを備えている。関節駆動部310は、関節角目標値の経時的データ350に基づいて、ロボット2の各関節を駆動する。
続いて、図4を参照しながら、本実施の形態1に係るロボット2が行う処理について説明する。図4は、動作生成処理を説明するためのフローチャートである。図4の処理は、任意の歩行・走行動作を扱うことができるが、以下では例として足踏み歩行動作を扱う場合について説明する。
まず、ステップS101では、制御部10はこれから生成する動作に関するユーザー指令値をユーザー指令記憶部302から読み出す。ユーザー指令値としては、以下のパラメータ(1)動作の開始時から完了時までの継続時間320と、(2)動作の開始時から完了時までにおける相対ZMP軌道322と、(3)動作の開始時及び完了時における重心の水平方向速度324と、(4)動作の開始時及び完了時における遊脚足先の位置及び速度326を与えることができる。
動作の開始時から完了時までの継続時間320は、ロボット2が動作を開始してから完了するまでの時間であって、ユーザーが任意に与えることができる。
動作の開始時から完了時までにおける相対ZMP軌道322は、目標ZMPの支持脚の足平の基準点に対する位置の経時的データであって、ユーザーが任意に与えることができる。接地相においては、支持脚となる脚リンクの足平内にZMPが存在していれば、ロボット2は転倒することなく動作を継続することができる。本実施の形態1に係るロボット2では、相対ZMP軌道を、支持脚の足平の中心に固定するように設定する。このような相対ZMP軌道が実現される場合、ロボット2は転倒することなく、安定して動作を実現することができる。なお相対ZMP軌道は、足平の内部に維持されていれば、どのような軌道を与えてもよい。例えば支持脚の足平の内部の後方から前方へ移動するような軌道を用いてもよい。このような相対ZMP軌道が実現される場合も、ロボット2は転倒することなく、安定して動作を実現することができる。
動作の開始時及び完了時における重心の水平方向速度324は、ロボット2の動作の開始時及び完了時における、ロボット2の重心が実現する水平方向速度であって、ロボット2のアクチュエータの性能が許す範囲内で、ユーザーが任意に与えることができる。
動作の開始時及び完了時における遊脚足先の位置及び速度326は、ロボット2の動作の開始時及び完了時における遊脚足先の支持脚足先から見た位置と速度であって、ロボット2の機構が幾何学的に許す範囲で、ユーザーが任意に与えることができる。
ステップS102では、重心の相対軌道を計算する。重心の相対軌道は、目標とする相対ZMP軌道と、角運動量パラメータと、動作の開始時及び完了時における重心の水平方向速度の条件に基づいて決定される。ステップS102では、重心の相対軌道を実現したときの実際の相対ZMP軌道が、目標とする相対ZMP軌道に一致するように、重心の相対軌道を計算する。
角運動量パラメータ370は、重心相対軌道計画部304に設定されている。角運動量パラメータ370は、予め所定の実験又はシミュレーションを行い、妥当な軌道を生成可能な適切な値を決定する。この実験においては、角運動量パラメータ370を変化させて軌道を生成し、生成された軌道に基づいてロボット2を動作させた上で、自然な動きとなる値を決定する。
また、目標とする相対ZMP軌道、及び動作の開始時及び完了時における重心の水平方向速度は、ステップS101でユーザー指令値として与えられている。ステップS102では、これらの条件を満足するように、重心の相対軌道を計算する。
ここで、重心の相対軌道の計算について説明する。ロボット2が実現する相対ZMP位置(qx',qy')は、ロボット2の相対重心位置(x',y',z')と、ロボット2の重心まわりの角運動量(rx',ry')から計算することができる。ロボット2の相対重心位置とロボットの重心まわりの角運動量から、実際に生じるZMPを計算する下記の式をZMP方程式と呼ぶ。
Figure 0004392037
ここで、(1)は時間tに関する1階微分を示し、(2)は時間tに関する2階微分を示している。また、mはロボット2の質量であり、gは重力加速度である。上式のz'及びz'(2)は、ロボットの支持脚の足先を原点とする重心の鉛直方向位置と鉛直方向加速度である。本実施の形態1に係るロボット2の動作では、重心の高さは一定であり質点がz'方向に変化しないものと仮定して、z'は一定値とし、z'(2)は0とする。上式のrx' (1)とry' (1)は、重心まわりの角運動量の微分成分を示す。
従来の手法では、運動の全域にわたって角運動量(rx',ry')を0として扱い、重心の鉛直方向軌道z'が与えられる場合に、上記数1を離散化して境界条件を与えることによって連立方程式として解を求めることができるものであった。さらに、重心の鉛直方向の加速度z'(2)についても0とすることで、上記数1におけるZMP方程式を解析的に解くことができるものであった。
本実施の形態1に係るロボット2においては、動作の開始から完了までの全ての時間区間において、ロール軸(x'軸)及びピッチ軸(y'軸)まわりの角運動量rx'及びry'を0とする代わりに、重心の速度に比例した項を用いる。即ち、下記の式により角運動量rx'及びry'を規定する。
Figure 0004392037
ここで、hx'は重心速度x'(1)に関する比例定数であり、αx'は定数である。また、hy'は重心速度y'(1)に関する比例定数であり、αy'は定数である。比例定数hx'及びhy'は角運動量パラメータである。尚、角運動量を規定するための式はこれに限定されず、例えば時間tの項を含む下記の式を用いてもよい。このようにして規定したrx'及びry'は、角運動量の時間変化量を示す。βx'及びβy'は定数である。
Figure 0004392037
上記数1のZMP方程式に対して、上記数2に示した角運動量を代入することで、下記の方程式を得る。
Figure 0004392037
上記数4のZMP方程式を離散化することによって、重心の水平方向位置(x'、y')の経時的データを算出する式を導出することができる。ここで言う離散化は、時間tに関して単位時間Δtを用いて行う。例えば重心のx'方向の軌道に関しては、下記の三項方程式を得る。
Figure 0004392037
ここでx'とqx'iは、それぞれ重心のx'方向軌道x'(t)と、x'方向の相対ZMP軌道qx'(t)を離散化した変数である。iは単位時間で区分した時刻の順序を示す。上記数5は、時刻iにおけるZMPのx'方向座標qx'iが、直前のx'方向座標x'i−1と、そのときのx'方向座標x'と、直後のx'方向座標x'i+1から計算できることを示している。係数a,b,cは、下記によって算出される係数である。
Figure 0004392037
上述したように、角運動量パラメータhは、予め所定の実験又はシミュレーションを行い、妥当な軌道を生成可能な適切な値が決定される。角運動量パラメータhを0とした場合には、従来と同様に不自然な姿勢によってロボット2は動作する。角運動量パラメータhを徐々に大きくしてゆくことで、ロボット2の上体は回転せずにまっすぐな姿勢を維持したまま動作を行うようになる。そして、角運動量パラメータをさらに大きくしてゆくことで、ロボット2は上体をまっすぐな姿勢に維持したまま横に振りながら動作を行う。このように、値を徐々に変更して上体のようすを観察し、最も良好な姿勢を維持できる値を決定する。即ち、ロボット2の動きを観察して、パラメータhについての適切な値を決定する。
上記のΔtはZMP方程式の離散化に用いる時間幅であり、z'iとz'(2) iはそれぞれ重心の鉛直方向の位置と加速度を離散化した変数である。本実施例では、Δtは動作開始から完了までの時間をn等分する時間幅である。
その場足踏み動作は、ロボット2が直立の状態から、ロボット2のバランスを取りつつ、右足を一旦上げて、床面に接地させ、同じくロボット2のバランスを取りつつ、左足を一旦上げて、床面に接地させ、直立の状態に戻る動作である。言い換えると、直立の状態から、ロボット2の脚を交互に駆動させることで、重心を支持させる動作である。このような周期運動であるその場足踏み動作は、その動作を実現するための重心相対軌道を一意に決定することができる。即ち、周期運動をするという周期境界条件(ロボット2の重心位置が、動作の開始及び完了時において循環するという条件)を付け加えることにより、その場足踏みの動作を実現するための一意な重心相対軌道を得ることができる。
上記した関係を整理すると、結局のところ、実現される相対ZMP軌道が目標とする相対ZMP軌道と等しくなる、重心のx'方向軌道(x',x',・・・,x')は、以下の行列で示される方程式を解くことによって算出することができる。ここで、周期境界条件の下では、下記の行列は、三重対角行列に対して周期境界条件を加えた循環対角行列により構成することができる。
Figure 0004392037
上記数7において、左辺は行列と列ベクトルの積で表現されており、その行列は鉛直方向成分及び角運動量パラメータhから計算される係数を持つ行列である。本実施の形態1に係るロボット2の足踏み動作においては、行列は、三重対角行列に周期境界条件を加えた循環対角行列である。周期境界条件とは、1行n列目に係数aを、n行1列目に係数cをそれぞれ設定することで、ロボット2の重心位置が、動作の開始及び完了時において循環するという条件のことを言う。3重対角行列とは、対角成分とそれに隣接する副対角成分のみが有意な値を備え、それ以外の成分が0である行列のことを言う。言い換えると、周期境界条件の下では、上記数7によって示される連立方程式に関して、目標ZMPの列における最初の要素に関する方程式が重心軌道の列における最後の要素を含み、かつ、目標ZMPの列における最後の要素に関する方程式が重心軌道の列における最初の要素を含むように係数行列の要素が配置される。左辺の列ベクトルは、重心のx'方向軌道(x',x',・・・,x')を示す列ベクトルである。右辺の列ベクトルは、目標とする相対ZMP軌道を備える列ベクトルである。
上記数7において、左辺の循環対角行列の逆行列を算出し、その逆行列と右辺との積を計算することによって、未知数(x',x',・・・,x')を計算することができる。従って、重心のx'方向軌道を計算することができる。上記した計算では、試行錯誤的に重心の相対軌道を計算することなく、直接的に目標とする相対ZMP軌道を満足する重心の相対軌道を計算することができる。上記した計算は少ない計算量で実施することが可能であり、重心相対軌道計画部304は高速で計算を実施することができる。重心軌道に関する離散化数をnとする場合には、計算量はO(n)となり、非常に高速に解を求めることができる。ステップS102では、重心の相対軌道を実現したときの実際の相対ZMP軌道が、目標とする相対ZMP軌道に一致するように、重心の相対軌道を計算する。
y'方向の重心軌道(y',y',・・・,y')についても、y'方向の相対ZMP位置(qy'1,qy'2,・・・,qy'n)と、角運動量パラメータhと、動作の開始時及び完了時における重心の水平方向速度から、x'方向の重心軌道(x',x',・・・,x')と同様にして算出することができる。
ステップS102の処理を実施することによって、重心の軌道を生成することができる。上記の処理によって生成される重心の軌道を実現することで、ロボット2はZMPを支持脚の足平の内部に維持しながら、その場足踏み動作を実現することができる。
ステップS103では、遊脚の足先の相対軌道を計算する。遊脚の足先の相対軌道は、足踏み動作の前後における脚リンクの動作と滑らかに接続するように計算する。
足踏み動作の開始時及び完了時おける遊脚の足先の相対位置および速度は、ユーザー指令値として与えられている。足踏み動作期間における遊脚の足先の相対軌道の計算は、例えば多項式補間を用いることによって、計算することができる。
ステップS104では、上述した処理によって計算された重心および遊脚の相対軌道を実現する、関節角の目標値を算出する。関節角の目標値はいわゆる逆キネマティクス演算によって算出することができる。ロボット2の相対並進運動量P、ロボット2の相対角運動量L、遊脚足先の相対速度v及び遊脚足先の角速度ωは、関節角の角速度θ(1)と、それぞれヤコビ行列J(θ)、K(θ)、J(θ)、K(θ)を用いて、以下で表現される。
Figure 0004392037
上記数8のうち関節角の角速度θ(1)は関節角の角度θを時間に関して1階微分したものである。関節角の角度θは、以下に示すように、ロボットの関節角群(θ1、θ2、・・・、θn−1)である。
Figure 0004392037
ロボット2の相対並進運動量P、ロボット2の相対角運動量L、遊脚足先の相対速度v及び遊脚足先の角速度ωは、それぞれ以下である。
Figure 0004392037
遊脚足先のヤコビ行列は、遊脚の数だけ存在する。本実施の形態1に係るロボット2は、2つの脚リンクを備えており、遊脚を1の脚リンクとして関節角の目標値を演算する。目標とするロボットの運動P、L、v、ωを満たす関節角速度θ(1)は、無数の解を持つ冗長系となっている。本実施の形態1に係るロボット2では、第1サブタスクとして目標とする重心の相対速度を実現すること、第2サブタスクとして目標とする角運動量を実現すること、第3サブタスクとして目標とする遊脚足先の相対軌道を実現することを条件として、目標関節角の経時的データを演算する。上記したような複数のヤコビ行列で表される拘束条件を、それぞれの条件に優先度をつけながら、冗長度の許す限り最適な解を求める手法は、従来から提案されており、説明を省略する。
上記した処理を実施することによって、重心の軌道、目標とする角運動量、及び遊脚足先の軌道を拘束条件として、関節角の目標値を演算することができる。これによって、ロボット2の安定な動作パターンを生成することができる。このような手法をとることによって、脚だけでなく腕や胴体などのすべてのロボットの自由度を用いて動作パターンを生成することが可能となり、より自然で柔軟な動作パターンを作り出すことができる。
ステップS104で演算される関節角目標値の経時的データ350は、制御部10に記憶されている。ステップS104の後、処理はステップS101へ移行し、ステップS101からステップS104までの処理を繰り返し実施する。
制御部10は上記した図4の処理と並列して、関節角目標値の経時的データ350に基づいて、関節駆動部310でロボット2の各関節を逐次駆動していく。これによって、ロボット2はユーザー指令値に基づいた安定した動作を実現していく。
以上説明したように、本実施の形態1に係るロボット2では、角運動量を重心速度に比例する項を用いて規定し、当該角運動量に基づいて重心の相対軌道を生成する。このように、角運動量を0とせずに重心の移動速度に比例させる構成にしたことで、例えば重心が左に動いた場合には、重心の移動に比例して上体も左に回転する。このため、生成された軌道に基づくロボット2の動作が不自然な動作となることを防ぐことができる。
従って、足踏み動作時における上体の左右方向への不自然な回転を抑制し、図5(a)に示すように自然な動作を実現することができる。また、足踏み以外の動作についても、例えば走行動作時においては、左右方向の回転に加えて、上体の前後方向への不自然な回転をも抑制することができ、自然な姿勢で動作を行うことができる。
発明の実施の形態2.
上述した実施の形態1においては、ロボット2がその場足踏み動作を行う場合について、その動作を実現するための重心相対軌道を生成する処理について説明した。本発明はこれに限定されず、その場足踏み動作のような周期運動以外の動作であっても、速度境界条件の下で、その動作を実現するための重心相対軌道を生成することができる。尚、本実施の形態2に係るロボット2の構成や軌道生成処理は、速度境界条件の下で重心相対軌道を計算する点を除いて、上述した発明の実施の形態1と同様である。
以下では、ロボット2が歩行動作を行う場合における軌道生成処理について説明する。本実施の形態2に係るロボット2では、歩行動作の開始時及び完了時において、重心の軌道が滑らかに変化するように、ロボット2の動作を計算する。このように動作を計算することで、例えばロボット2が支持脚を入れ替える場合であっても、ロボット2の重心位置は滑らかに推移し、ロボット2は安定した動作を実現する。歩行動作の開始時の重心のx'方向速度vx'1は、分割時間幅Δtと、重心の位置x'及びx'とを用いて、以下によって表現される。
Figure 0004392037
同じように、歩行動作の完了時における重心のx'方向速度vx'nは、分割時間幅Δtと、重心の位置x'n−1、x'と、以下の関係がある。
Figure 0004392037
歩行動作の開始時及び完了時における重心のx'方向速度vx'1及びvx'nは、上記の実施の形態1に係るステップS101でユーザー指令値として設定されている。
上記した関係を整理すると、結局のところ、実現される相対ZMP軌道が目標とする相対ZMP軌道と等しくなる、歩行動作における重心のx'方向軌道(x',x',・・・,x')は、以下の三重対角行列で示される方程式を解くことによって算出することができる。
Figure 0004392037
上記数13において、左辺は行列と列ベクトルの積で表現されており、その行列は鉛直方向軌道から計算される係数を持つ3重対角行列である。3重対角行列とは、対角成分とそれに隣接する副対角成分のみが有意な値を備え、それ以外の成分が0である行列のことを言う。左辺の列ベクトルは、重心のx'方向軌道(x',x',・・・,x')を示す列ベクトルである。右辺の列ベクトルは、目標とする相対ZMP軌道と、開始時における重心のx'方向速度vx'1に単位時間Δtを乗じて距離に変換した値vx'1Δtと、終了時における重心のx'方向速度vx'nに単位時間Δtを乗じて距離に変換した値vx'nΔtとを備える列ベクトルである。
上記数13において、左辺の3重対角行列の逆行列を算出し、その逆行列と右辺との積を計算することによって、未知数(x',x',・・・,x')を計算することができる。従って、重心のx'方向軌道を計算することができる。上記した計算では、試行錯誤的に重心の相対軌道を計算することなく、直接的に目標とする相対ZMP軌道を満足する重心の相対軌道を計算することができる。上記した計算は少ない計算量で実施することが可能であり、重心相対軌道計画部304は高速で計算を実施することができる。
y'方向の重心軌道(y',y',・・・,y')についても、y'方向の相対ZMP位置(qy'1,qy'2,・・・,qy'n)と、角運動量パラメータhと、歩行動作の開始時速度vy'1と完了時速度vy'nから、x'方向の重心軌道(x',x',・・・,x')と同様にして算出することができる。
尚、上記した水平方向速度vx'1,vy'1の代わりに、重心が移動する方向を示す水平方向の単位ベクトルn',n'と速度絶対値|v|を指令値としてユーザーが与えてもよい。このような場合、水平方向速度vx'1,vy'1は、以下によって算出される。
Figure 0004392037
このようにして、ロボット2の歩行動作における重心の軌道を生成することができる。上記の処理によって生成される重心の軌道を実現することで、ロボット2はZMPを支持脚の足平の内部に維持しながら、歩行動作を実現することができる。
その他の実施の形態.
上述した実施の形態1及び2では、角運動量パラメータhは、予め所定の実験又はシミュレーションを行い、妥当な軌道を生成可能な適切な値を決定するものとしたが、本発明はこれに限定されない。例えば、角運動量パラメータhの値を、ロボット2の動きに応じて自動的に計算するものとしてもよい。角運動量パラメータhは、例えば、ジャイロセンサ(不図示)を用いてロボット2の胴体もしくは腰の姿勢角を検出し、ロボット2の姿勢変化及びロボット2の慣性モーメントに基づいて決定することができる。このようにロボット2の実際の動きに応じて決定することで、構成の異なる様々なロボット2に対してもより自然な動作となる値を容易に計算することができる。
尚、上述した実施の形態では2の脚リンクを備える脚式ロボットについて説明したが、本発明は3以上の脚リンクを備える脚式ロボットとして具現化することもできるし、1の脚リンクのみを備える脚式ロボットとして具現化することもできる。
また、本発明は上述した実施の形態のみに限定されるものではなく、既に述べた本発明の要旨を逸脱しない範囲において種々の変更が可能であることは勿論である。
本発明の実施の形態に係る脚式ロボットの構成を示す図である。 本発明の実施の形態に係る脚式ロボットの制御部の構成を示す機能ブロック図である。 本発明の実施の形態1に係る脚式ロボットの慣性モデルを示す図である。 本発明の実施の形態1に係る脚式ロボットの制御部が行う処理を示すフローチャートである。 本発明の実施の形態1に係る脚式ロボットの動作の概要を示す図である。
符号の説明
2 脚式ロボット、4 体幹、6 左脚リンク、8 右脚リンク、10 制御部、
12 コントローラ、
302 ユーザー指令記憶部、304 重心相対軌道計画部、
306 遊脚相対軌道計画部、308 関節角目標値演算部、310 関節駆動部

Claims (6)

  1. 関節角を変更して動作する脚式ロボットであって、
    ZMP方程式を離散化した3項方程式と、目標ZMPとに基づいて、重心軌道を生成する手段と、
    生成された前記重心軌道に基づいて、前記関節角の目標値の経時的データを計算する手段と、
    計算された前記関節角の目標値の経時的データに基づいて、前記関節を回転する手段とを備え、
    前記ZMP方程式に含まれる角運動量が、
    重心速度を変数とする一次式を用いて規定される
    ことを特徴とする脚式ロボット。
  2. 前記角運動量を、前記脚式ロボットの質量と、前記角運動量に関する比例定数と、重心速度とを用いて規定し、前記比例定数を前記脚式ロボットの姿勢変化に基づいて計算する
    ことを特徴とする請求項1記載の脚式ロボット。
  3. 前記重心軌道を生成する手段は、
    鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ行列と、重心軌道の列と、目標ZMPの列との間に成立する連立方程式を解いて重心軌道を計算する
    ことを特徴とする請求項1又は2記載の脚式ロボット。
  4. 前記行列が、
    前記目標ZMPの列における最初の要素に関する方程式が前記重心軌道の列における最後の要素を含み、かつ、前記目標ZMPの列における最後の要素に関する方程式が前記重心軌道の列における最初の要素を含むように、前記鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ行列である
    ことを特徴とする請求項3記載の脚式ロボット。
  5. 前記重心軌道を生成する手段は、
    鉛直方向軌道及び前記角運動量に基づいて計算される係数を持つ3重対角行列と、重心軌道の列と、目標ZMP及び動作開始時と完了時における重心の水平方向速度から計算される距離の列との間に成立する連立方程式を解いて重心軌道を計算する
    ことを特徴とする請求項1乃至3いずれか1項記載の脚式ロボット。
  6. 関節角を変更して動作する脚式ロボットの制御方法において、
    ZMP方程式を離散化した3項方程式と、目標ZMPとに基づいて、重心軌道を生成するステップと、
    生成された前記重心軌道に基づいて、前記関節角の目標値の経時的データを計算するステップと、
    計算された前記関節角の目標値の経時的データに基づいて、前記関節を回転するステップとを備え、
    前記ZMP方程式に含まれる角運動量が、
    重心速度を変数とする一次式を用いて規定される
    ことを特徴とする脚式ロボットの制御方法。
JP2007237038A 2007-09-12 2007-09-12 脚式ロボット、及びその制御方法 Expired - Fee Related JP4392037B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2007237038A JP4392037B2 (ja) 2007-09-12 2007-09-12 脚式ロボット、及びその制御方法
US12/209,422 US8340817B2 (en) 2007-09-12 2008-09-12 Legged robot and its control method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007237038A JP4392037B2 (ja) 2007-09-12 2007-09-12 脚式ロボット、及びその制御方法

Publications (2)

Publication Number Publication Date
JP2009066697A JP2009066697A (ja) 2009-04-02
JP4392037B2 true JP4392037B2 (ja) 2009-12-24

Family

ID=40432755

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007237038A Expired - Fee Related JP4392037B2 (ja) 2007-09-12 2007-09-12 脚式ロボット、及びその制御方法

Country Status (2)

Country Link
US (1) US8340817B2 (ja)
JP (1) JP4392037B2 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4440956B2 (ja) * 2007-09-12 2010-03-24 トヨタ自動車株式会社 脚式ロボット、及びその制御方法
JP4392037B2 (ja) * 2007-09-12 2009-12-24 トヨタ自動車株式会社 脚式ロボット、及びその制御方法
JP2009214255A (ja) * 2008-03-12 2009-09-24 Toyota Motor Corp 脚式ロボット、及びその制御方法
KR20110047847A (ko) * 2009-10-30 2011-05-09 삼성전자주식회사 휴머노이드 로봇 및 그 제어방법
KR101691940B1 (ko) * 2009-10-30 2017-01-02 삼성전자주식회사 로봇 및 그 제어방법
JP5440152B2 (ja) * 2009-12-22 2014-03-12 トヨタ自動車株式会社 脚式ロボットとそのための歩容データ生成方法
JP5392125B2 (ja) * 2010-02-05 2014-01-22 トヨタ自動車株式会社 2脚歩行ロボット及びそのための歩容データ生成方法
WO2011106543A1 (en) * 2010-02-25 2011-09-01 Honda Motor Co., Ltd. A momentum-based balance controller for humanoid robots on non-level and non-stationary ground
TWI478798B (zh) * 2010-06-18 2015-04-01 Compal Electronics Inc 自動機械裝置及其控制方法
KR101200191B1 (ko) * 2010-07-14 2012-11-13 서울대학교산학협력단 데이터 기반 바이페드 제어 장치 및 방법
KR101778027B1 (ko) * 2010-12-21 2017-09-13 삼성전자주식회사 보행 로봇 및 그 자세 제어 방법
KR101571313B1 (ko) * 2014-06-20 2015-11-26 한국과학기술연구원 무게중심 제어를 통한 로봇의 자세 제어 시스템
CN108237532B (zh) * 2016-12-23 2020-11-27 深圳光启合众科技有限公司 多足机器人的步态控制方法、装置和机器人
JP6927727B2 (ja) * 2017-03-29 2021-09-01 本田技研工業株式会社 ロボットの制御装置
CN112643679B (zh) * 2020-12-30 2022-07-08 乐聚(深圳)机器人技术有限公司 机器人运动控制方法、装置、控制器及存储介质

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998004388A1 (fr) * 1996-07-25 1998-02-05 Honda Giken Kogyo Kabushiki Kaisha Dispositif de reproduction de la demarche pour robot articule muni de jambes
JP3615702B2 (ja) * 1999-11-25 2005-02-02 ソニー株式会社 脚式移動ロボットの動作制御装置及び動作制御方法、並びに、脚式移動ロボット
JP4480843B2 (ja) * 2000-04-03 2010-06-16 ソニー株式会社 脚式移動ロボット及びその制御方法、並びに、脚式移動ロボット用相対移動測定センサ
KR100637057B1 (ko) * 2000-11-17 2006-10-23 혼다 기켄 고교 가부시키가이샤 레그식 이동 로봇의 보용 생성장치
US6961640B2 (en) * 2000-11-17 2005-11-01 Sony Corporation Motion control for a legged robot
KR100837988B1 (ko) * 2000-11-20 2008-06-13 소니 가부시끼 가이샤 각식 이동 로봇을 위한 동작 제어 장치 및 동작 제어방법, 및 로봇 장치
KR100937268B1 (ko) * 2001-08-01 2010-01-18 소니 주식회사 다리식 이동 로봇 및 그 동작 제어 방법
JP3691434B2 (ja) * 2001-12-25 2005-09-07 本田技研工業株式会社 脚式移動ロボットの着床衝撃緩衝装置
JP3731118B2 (ja) * 2002-02-18 2006-01-05 独立行政法人科学技術振興機構 二脚歩行式人型ロボット
EP1486298B1 (en) * 2002-03-18 2011-05-04 Sony Corporation Robot device with an control device.
WO2004030870A1 (ja) * 2002-10-01 2004-04-15 Sony Corporation ロボット装置及びロボット装置の制御方法
JP3599244B2 (ja) 2002-11-06 2004-12-08 ソニー株式会社 ロボット装置、ロボット装置の運動制御装置並びに運動制御方法
JP4127043B2 (ja) * 2002-12-11 2008-07-30 ソニー株式会社 脚式移動ロボット並びに脚式移動ロボットの関節軸として適用されるアクチュエータ装置
US7072740B2 (en) * 2002-12-16 2006-07-04 Sony Corporation Legged mobile robot
JP4513320B2 (ja) * 2003-12-17 2010-07-28 ソニー株式会社 ロボット装置、並びにロボット装置の運動制御方法
WO2005098733A2 (en) * 2004-03-31 2005-10-20 Honda Motor Co., Ltd. Systems and methods for controlling a legged robot based on rate of change of angular momentum
JP2006136962A (ja) * 2004-11-11 2006-06-01 Hitachi Ltd 移動ロボット
JP4548135B2 (ja) 2005-02-03 2010-09-22 トヨタ自動車株式会社 脚式ロボットとその制御方法
US7313463B2 (en) * 2005-03-31 2007-12-25 Massachusetts Institute Of Technology Biomimetic motion and balance controllers for use in prosthetics, orthotics and robotics
JP4818716B2 (ja) * 2005-12-27 2011-11-16 富士通株式会社 ロボット制御装置
JP4392037B2 (ja) * 2007-09-12 2009-12-24 トヨタ自動車株式会社 脚式ロボット、及びその制御方法
JP4440956B2 (ja) * 2007-09-12 2010-03-24 トヨタ自動車株式会社 脚式ロボット、及びその制御方法
US7942221B1 (en) * 2008-06-20 2011-05-17 Wowwee Group Limited Method and system for enabling bi-pedal locomotion

Also Published As

Publication number Publication date
US20090069940A1 (en) 2009-03-12
US8340817B2 (en) 2012-12-25
JP2009066697A (ja) 2009-04-02

Similar Documents

Publication Publication Date Title
JP4392037B2 (ja) 脚式ロボット、及びその制御方法
JP4548135B2 (ja) 脚式ロボットとその制御方法
Mordatch et al. Ensemble-cio: Full-body dynamic motion planning that transfers to physical humanoids
JP3972854B2 (ja) ロボットの運動制御装置
JP4513320B2 (ja) ロボット装置、並びにロボット装置の運動制御方法
JP4440956B2 (ja) 脚式ロボット、及びその制御方法
JP6823569B2 (ja) 目標zmp軌道の生成装置
US9073209B2 (en) Walking robot and control method thereof
US20110178639A1 (en) Humanoid robot and walking control method thereof
WO2004030870A1 (ja) ロボット装置及びロボット装置の制御方法
JP2004167676A (ja) ロボット装置、ロボット装置の運動制御装置並びに運動制御方法
JP4492395B2 (ja) 脚式ロボットとその動作制御方法
US20070267994A1 (en) Legged Robot, Method for Controlling Legged Robot, and Device and Method for Generating Gait Data
JP4483254B2 (ja) ロボット装置及びロボット装置の制御方法
JP2009214255A (ja) 脚式ロボット、及びその制御方法
Lim et al. Compensatory motion control for a biped walking robot
JP5035005B2 (ja) 脚式ロボット、その制御方法、その制御システム
JP3726097B2 (ja) 脚式移動ロボットの姿勢制御装置
JP3674787B2 (ja) ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム
JP2010017806A (ja) 脚式歩行ロボットの歩容生成器
JP4583098B2 (ja) ロボットの運動パターン作成用プログラム、並びに運動パターン作成装置及びそれを用いたロボット。
JP4457617B2 (ja) モーション生成システム及びロボットのモーション評価方法
JP4848686B2 (ja) 脚式ロボットとその動作調節方法
KR20120105611A (ko) 인간형 로봇 플랫폼을 위한 결합진동자 기반의 보행 패턴 생성 및 자세 제어 알고리즘
Manoiu-Olaru et al. Matlab Application for Hexapod Robot Locomotion over Obstacles

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090707

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090827

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313532

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121016

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees