JP4311159B2 - ロボットの歩容データ作成装置及びシステム - Google Patents

ロボットの歩容データ作成装置及びシステム Download PDF

Info

Publication number
JP4311159B2
JP4311159B2 JP2003354866A JP2003354866A JP4311159B2 JP 4311159 B2 JP4311159 B2 JP 4311159B2 JP 2003354866 A JP2003354866 A JP 2003354866A JP 2003354866 A JP2003354866 A JP 2003354866A JP 4311159 B2 JP4311159 B2 JP 4311159B2
Authority
JP
Japan
Prior art keywords
trunk
robot
data
hand
elapsed time
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
JP2003354866A
Other languages
English (en)
Other versions
JP2005118924A (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 JP2003354866A priority Critical patent/JP4311159B2/ja
Publication of JP2005118924A publication Critical patent/JP2005118924A/ja
Application granted granted Critical
Publication of JP4311159B2 publication Critical patent/JP4311159B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Manipulator (AREA)

Description

本発明は、体幹(胴体)に対して両足と両腕が揺動可能に連結されているロボットを、両腕を動作させながら歩行させるのに必要なデータ(歩容データ)の作成技術に関する。
体幹に対して両足と両腕の相対的姿勢を変化させることによって、両腕を動作させながら歩行するロボットが開発されている。このロボットの場合、体幹と左足先と右足先と左手先と右手先の位置を指示する歩容データが利用される。
歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、体幹と両足先と両手先の位置を指示する。体幹と両足先と両手先の位置を指示するために、体幹と左足先と右足先と左手先と右手先にそれぞれ基準点が定められている。歩容データは、体幹の基準点と左足先の基準点と右足先の基準点と左手先の基準点と右手先の基準点の位置を経時的に指示する、グローバル座標系での座標データ(x、y、z)を備えている。(x、y、z)の座標データは、ロボットの動作開始からの経過時間tに対して変化する。経時的に変化する体幹と左足先と右足先と左手先と右手先の位置を指示する歩容データに従って、体幹と両足と両腕の相対的姿勢を経時的に変化させることによって、ロボットは両腕を動作させながら歩行する。
より具体的に説明すると、経時的に変化する体幹と左足先と右足先と左手先と右手先の位置を指示する歩容データに従って、その姿勢を実現するのに必要な各関節の関節角を計算し、関節を回転させるアクチュエータを制御して計算された関節角に調整する。経時的に変化する歩容データに従って計算される関節角も経時的に変化する。ロボットは、経時的に関節角を変化させることによって体幹と両足と両腕の相対位置関係を経時的に変化させ、その結果として両腕を動作させながら歩行する。
体幹位置を経時的に指示するデータW(x(t)、y(t)、z(t))と、左足先位置を経時的に指示するデータLf(x(t)、y(t)、z(t))と、右足先位置を経時的に指示するデータRf(x(t)、y(t)、z(t))と、左手先位置を経時的に指示するデータLh(x(t)、y(t)、z(t))と、右手先位置を経時的に指示するデータRh(x(t)、y(t)、z(t))は、独立に決定できるのものでなく、ロボットがバランスを保って転倒を免れられるものでなければならない。
歩容データを作成する第1段階では、両足と両腕の相対的姿勢の変化を想定しながら、左足先位置を経時的に指示するデータと、右足先位置を経時的に指示するデータと、左手先位置を経時的に指示するデータと、右手先位置を経時的に指示するデータを作成する。
歩容データを作成する第2段階では、上記の各データから、体幹位置を経時的に指示するデータを計算して算出する。
体幹位置を指示するデータを計算するために、ZMP(zero moment point)が利用される。ZMPは、ロボットが床から受ける反力によるモーメントがゼロになる点をいい、ZMPが接地足の足平内にあればロボットは転倒しない。逆にいうと、ロボットが転倒しないためには、ZMPが接地足の足平内になければならない。そこで、体幹位置を指示するデータを計算するために、接地足の足平内に存在する目標ZMPを定める。この目標ZMPは接地足の足平内にあることが必要とされ、左足先位置を経時的に指示するデータと右足先位置を経時的に指示するデータから、目標ZMPを経時的に指示するデータZMPT(x(t)、y(t))を定めることができる。平地を歩行する場合、目標ZMPのz座標はゼロとすることができる。
左足先位置を経時的に示すデータと、右足先位置を経時的に示すデータと、左手先位置を経時的に示すデータと、右手先位置を経時的に示すデータと、体幹位置を経時的に示すデータを利用することによって、実際に得られるZMPの位置を経時的に指示するデータZMPR(x(t)、y(t))を計算することができる。
そこで、体幹位置を経時的に示すデータを仮定し、それから実際に得られるZMPの位置を経時的に指示するデータZMPR(x(t)、y(t))を計算する。次に、計算されたZMPR(x(t)、y(t))と、目標ZMPを示すZMPT(x(t)、y(t))の偏差を求める。そしてその偏差が小さくなる側に体幹位置を示すデータを修正する。
即ち、(1)体幹位置を仮定して実際に得られるZMPの位置を計算し、(2)目標ZMPとの偏差を計算し、(3)その偏差が小さくなるように体幹位置を修正し、再度(1)〜(3)の計算を繰返す処理を相当回数に亘って繰返すことによって目標ZMPを実現する体幹位置を計算している。
特許文献1には、上記のようにして体幹位置を計算することが開示されている。
特開平10−230485号公報
体幹位置を経時的に示すデータと、左足先位置を経時的に示すデータと、右足先位置を経時的に示すデータと、左手先位置を経時的に示すデータと、右手先位置を経時的に示すデータの5つのデータから、実際に得られるZMPの位置(ZMPR)を計算するには多くの時間がかかる。しかも、実際に得られるZMPの位置と目標ZMPの位置の偏差が少なくなるように体幹位置を修正し、実際に得られるZMPの位置(ZMPR)を計算する処理を複数回に亘って繰り返す必要があるために、膨大な計算時間を要する。
本発明は、上記した実情に鑑みてなされたものであり、体幹位置を計算するための時間を短縮することができる技術を提供し、これにより、歩容データの作成に要する時間を短縮することを目的とする。
創作された一つの技術は、両腕を動作させながら歩行するロボットの歩容データを作成する装置である。この装置は、ロボットの動作開始からの経過時間毎の足先位置(左足先位置と右足先位置)が記述された足先位置データを記憶している手段を備える。また、「ロボットの両腕は胴体に固定されている」という仮定の下で、ロボットの動作開始からの経過時間毎の体幹位置が記述された体幹位置データを作成する手段を備える。また、ロボットの動作開始からの経過時間毎の手先位置(左手先位置と右手先位置)が記述された手先位置データを記憶する手段を備える。また、手先位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースを備える。また、作成された体幹位置データを修正する装置を備える。この修正装置は、ロボットの動作開始からの経過時間毎の「前記の仮定の下での手先位置と手先位置データの手先位置との差」を計算する手段を有する。また、ロボットの動作開始からの経過時間毎の「前記の仮定の下での手先位置と手先位置データの手先位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段を有する。さらに、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて、作成された体幹位置データを修正する手段を有する。
上記の歩容データ作成装置では、「ロボットの両腕は胴体に固定されている」と仮定して仮の体幹位置データを作成する。即ち、左手先位置と右手先位置の経時的変化を示すデータ(手先位置データ)を加味しないで、目標ZMPを実現する体幹位置の経時的変化を示すデータ(体幹位置データ)を計算する。従って、体幹位置データを計算するための時間を大幅に短縮することができる。手先位置を計算にもりこまないので計算量が圧縮される。
実際は、上記の仮定が成立しない動作を両腕にさせるために、上記の仮定の下で作成された仮の体幹位置データを利用してロボットが動作すると、ロボットの姿勢が不安定になってしまう。従って、この歩容データ作成装置には、体幹位置修正量データベースと、作成された体幹位置データ(即ち仮の体幹位置データ)を修正する装置が設けられている。
体幹位置修正量データベースには、手先位置の差から体幹位置の修正量を特定できる情報が記憶されている。即ち、上記の仮定の下での手先位置と実際の手先位置との差から、作成された仮の体幹位置をどれだけ修正すればよいのかを特定できる情報が記憶されている。
修正装置は、上記のデータベースの情報を用いて、上記した仮定の下で作成された体幹位置データを修正する。即ち、上記の仮定の下での手先位置と実際の手先位置との差(ズレ)を計算し、計算された手先位置の差から体幹位置の修正量を特定し、特定された修正量の分だけ体幹位置を修正する。これにより、両腕を自由に動作させてもロボットの姿勢が安定する体幹位置データが作成されることになる。
この歩容データ作成装置では、仮の体幹位置データを作成し、それを修正することによって真の体幹位置データを作成する。仮の体幹位置データを作成するための計算時間を大幅に短縮できるために、仮の体幹位置データを修正するための時間が必要だとしても、全体としては歩容データの作成に要する時間を短縮することができる。
ここで、上記の手先位置データ記憶手段は、ロボットを実際に動作させながら手先位置データを記憶していくものであってもよい。歩行パターンから仮の歩容データを作成しておくことができる。この段階までをロボットの実際の動作前に完了しておくことができる。この段階までを完了しておくと、実際の体幹位置を求める計算は修正のみで済み、短時間で実行できるために、手の動きについてはロボットの動作とリアルタイムで指示することができる。
体幹位置修正量データベースは、手先位置の差と体幹位置の修正量との関係を記憶するかわりに、重心位置の差と体幹位置の修正量との関係を記憶していてもよい。即ち、上記の仮定の下での重心位置と、実際に両腕を動作させたときの重心位置との差から、作成された仮の体幹位置をどれだけ修正すればよいのかを特定できる情報を記憶するようにしてもよい。
この場合、体幹位置の修正装置は、第1計算手段と第2計算手段と第3計算手段と特定手段と修正手段から構成されるようにしてもよい。
第1計算手段は、前記の仮定の下で、足先位置データと作成された体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する。これにより、上記の仮定の下での重心位置が計算されることになる。
第2計算手段は、足先位置データと作成された体幹位置データと手先位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する。これにより、実際の手先位置が加味された重心位置が計算される。
第3計算手段は、ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」を計算する。これにより、上記の仮定の下での重心位置と、実際の手先位置が加味された重心位置との差(ズレ)が計算される。
特定手段は、ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する。
修正手段は、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて、作成された体幹位置データを修正する。
この歩容データ作成装置によると、仮の体幹位置データをまず作成し、それを修正することによって真の体幹位置データを作成する。仮の体幹位置データを計算するのに要する時間を大幅に短縮できる。仮の体幹位置データを修正するための時間が必要だとしても、全体としては歩容データを作成するのに必要な時間を短縮することができる。
上記した歩容データ作成装置を用いて、以下のロボットシステムを構築することができる。このシステムは、上記した歩容データ作成装置と、その歩容データ作成装置で作成された歩容データに従って運動するロボットと、オペレータによって操作される操作部材とを備える。歩容データ作成装置は、操作部材が操作されると前記した手先位置データを作成して前記の手先位置データ記憶手段に記憶させる手段を有する。ロボットは、操作部材が操作されると歩容データ作成装置の前記の手先位置データ記憶手段の記憶内容に従って両腕を動作させる。歩容データ作成装置の前記した修正装置は、操作部材が操作されると前記の体幹位置データを修正する。
このシステムによると、オペレータによる操作部材の操作に応じてロボットが両腕を動作させることになる。ロボットが両腕を動作させるのに必要な手先位置データは、オペレータによって操作部材が操作されると作成され、これに追従して体幹位置が修正される。従って、ロボットが両腕を動作させても、ロボットの姿勢が不安定になることはない。比較的簡単な修正計算で真の体幹位置が計算できるために、ロボットの実際の腕の動きに追随しながら真の体幹位置を計算していくことができる。
本発明では、ロボットの両腕の動作をオペレータがリアルタイムに指示することができるシステムが実現されている。
本発明では、両腕を動作させながら歩行するロボットの、歩行パターンが同じであって両腕の動作パターンが異なる複数パターンの歩容データを作成する装置も提供する。
この歩容データ作成装置は、ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段を備える。また、少なくとも2パターンの「ロボットの動作開始からの経過時間毎の手先位置」が記述された手先位置データを記憶している手段を備える。また、足先位置データと一方のパターンの手先位置データとに基づいて、一方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第1作成装置を備える。また、手先位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースを備える。また、他方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第2作成装置を備える。この第2作成装置は、ロボットの動作開始からの経過時間毎の「一方のパターンの手先位置データの手先位置と他方のパターンの手先位置データの手先位置との差」を計算する手段を有する。また、ロボットの動作開始からの経過時間毎の「一方のパターンの手先位置データの手先位置と他方のパターンの手先位置データの手先位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段を有する。さらに、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて一方のパターンの体幹位置データを修正することによって、他方のパターンの体幹位置データを作成する手段を有する。
例えば、歩行パターンが同じであって両腕の動作パターンが異なる2パターンの歩容データを作成する場合、従来は、共通の足先位置データと一方の手先位置データから一方の体幹位置データを作成し、共通の足先位置データと他方の手先位置データから他方の体幹位置データを作成する。この場合、膨大な計算時間を要する。
上記した歩容データ作成装置は、共通の足先位置データと一方の手先位置データから一方の体幹位置データを作成するところまでは従来と同じである。しかしながら、一方の手先位置と他方の手先位置との差から体幹位置の修正量を特定し、一方の体幹位置を修正することによって他方の体幹位置を作成する点が従来と異なる。一方の体幹位置データを修正して他方の体幹位置データを作成する方が、共通の足先位置データと他方の手先位置データから他方の体幹位置データを作成するよりも計算時間を短くすることができる。この歩容データ作成装置によると、複数パターンの歩容データを短時間で作成することができる。
手先位置の差から体幹位置の修正量を特定できるようにするかわりに、重心位置の差から体幹位置の修正量を特定できるようにして他方の体幹位置データを作成するようにしてもよい。この場合、体幹位置修正量データベースは、重心位置の差と体幹位置の修正量との関係を記憶している必要がある。
第2作成装置は、第1計算手段と第2計算手段と第3計算手段と特定手段と作成手段から構成されるようにしてもよい。
第1計算手段は、足先位置データと一方のパターンの手先位置データと一方のパターンの体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する。
第2計算手段は、足先位置データと他方のパターンの手先位置データと一方のパターンの体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する。
第3計算手段は、ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」を計算する。
特定手段は、ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する。
作成手段は、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて一方のパターンの体幹位置データを修正することによって、他方のパターンの体幹位置データを作成する。
この歩容データ作成装置によると、一方の体幹位置データを修正することによって他方の体幹位置データを作成する。一方の体幹位置データを修正する時間は確かに必要だが、この時間は、従来の手法を用いて他方の体幹位置データを作成するよりも短くて済む。この歩容データ作成装置によると、複数パターンの歩容データを作成するのに要する計算時間を短縮することができる。
(形態1)ロボットが両腕を左右対称に動作させる場合は、「ロボットの両腕が胴体に固定されている」という仮定が成立するものとして、体幹位置データを作成することができる。この思想を用いた技術を以下に記載しておく。
この技術は、両腕を左右対称に動作させながら歩行するロボットの歩容データを作成する装置である。この装置は、ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段を備える。また、「ロボットの両腕は胴体に固定されている」という仮定の下で、ロボットの動作開始からの経過時間毎の体幹位置が記述された体幹位置データを作成する手段を備える。
この歩容データ作成装置によると、手先位置データを加味しないで体幹位置データを作成することができるために、両腕を左右対称に動作させるロボットの歩容データを短時間で作成することができる。
(形態2)「手先位置の差」は、以下のようにして表現されるものであってもよい。ある時間tにおいて、両腕が胴体に固定されている場合(即ち上記した仮定の下での場合)の左手先位置が位置ALであり右手先位置が位置ARであるとする。このとき、左手先の位置ALを実現するための胴体に対する左腕の回転角がθALであり、右手先の位置ARを実現するための胴体に対する右腕の回転角がθARであるとする。さらに、上記した時間tにおいて、実際の左手先位置が位置BLであり右手先位置が位置BRであるとする。この場合、左手先の位置BLを実現するための胴体に対する左腕の回転角がθBLであり、右手先の位置BRを実現するための胴体に対する右腕の回転角がθBRであるとする。このとき、両腕が胴体に固定されている場合の手先位置と、実際の手先位置との差(即ち手先位置の差)は、θALとθBLの差と、θARとθBRの差との和で表現することができる。
(第1実施例) 図面を参照して本発明の実施例を説明する。図1は、ロボット50の機械構成のスケルトン図を示す。本実施例では、ロボット50の進行方向をX軸とし、ロボット50の左右方向をY軸とし、ロボット50の高さ方向をZ軸とする。各軸は相互に直交している。
ロボット50は、左右の股関節にそれぞれ2軸(符号1,2,6,7)の自由度を持ち、以下同様に、腰関節(腰関節とは通常言わないが本明細書では例外的に使用する)に1軸(符号17)、左右の膝関節にそれぞれ1軸(符号3,8)、左右の足首関節にそれぞれ2軸(符号4,5,9,10)、左右の肩関節にそれぞれ2軸(符号11,12,14,15)、左右の肘関節にそれぞれ1軸(13,16)の自由度を持つ。各関節にエンコーダ付のモータを備えており、関節角を調整でき、関節角を計測することができる。
図2は、ロボット50が歩行する様子を簡単に示した斜視図である。この実施例では、ロボット50の右足22が接地している間に左足24を遊脚として軌道24aのように移動させ、左足24が接地すると今度は右足22を遊脚として軌道22aのように移動させ、以後同様に、左足24を遊脚として軌道24bのように移動させ、次には右足22を遊脚として軌道22bのように移動させて歩行を続ける。
ロボット50が歩行を続けるには、両足先(左足先Lf、右足先Rf)の軌道22a,22b,24a,24bを記述するデータが必要とされ、そのためにコンピュータ装置30が用意されている(コンピュータ装置30は図1及び図2では図示省略しているが、図3に示されている)。コンピュータ装置30はロボット50に内臓されている。コンピュータ装置30の機能については後で詳しく説明する。
本実施例のロボット50は、ジョイスティック60と無線接続されている。ジョイスティック60は、オペレータHによって操作される。ジョイスティック60は、オペレータHによって所定の操作がなされると、操作信号を出力する。この操作信号は、コンピュータ装置30に取り込まれる。ロボット50は、ジョイスティック60に所定の操作が加えられると、両腕26,28を大きく上げる動作を実行する(軸11,14(図1参照)を大きく回転させて万歳する)。この点については後で詳しく説明する。
コンピュータ装置30は、ロボット50を運動させるための歩容データを作成する装置である。コンピュータ装置30のハードウエア構成は汎用のコンピュータと同じであり、説明を省略する。コンピュータ装置30は、ロボット50を運動させる前に、基本となる歩容データ(以下では基本歩容データという)を作成する。そして、ロボット50が運動をはじめた後にジョイスティック60が操作されると、基本歩容データを修正する。まず、基本歩容データを作成するための各機能について説明していく。図3に、コンピュータ装置30の機能を示す。
コンピュータ装置30は、足先軌道記憶部32を有しており、足先軌道を記憶している。図4(a)及び(b)に、足先軌道記憶部32の記憶内容を例示している。図4(a)は、ロボット50の両足先Lf,Rf(図2参照)のx方向(即ちロボット進行方向)への経時的変化を例示している。
図4(a)の実線で示されたカーブ70は、左足先Lfのx方向の座標(縦軸)と時間(横軸)の関係を例示している。カーブ70によると、左足24を持ち上げたら前方に送り(部分70a参照)、着地点に近づいたら前進速度を緩め(部分70b参照)、着地させる。着地中はx方向の座標は変動しない(部分70c参照)。
図4(a)の一点鎖線で示されたカーブ72は、右足先Rfのx方向の座標(縦軸)と時間(横軸)の関係を例示している。カーブ72をみるとわかるように、左足24が着地しているときに右足22が進行方向に進められる。
足先軌道記憶部32は、図4(b)に示されるように、両足先Lf,Rfのz方向(即ち高さ方向)の座標(縦軸)と時間(横軸)の関係も記憶している。図4(b)の実線のカーブ74が左足先Lfの座標の経時変化であり、図4(b)の一点鎖線のカーブ76は右足先Rfの座標の経時変化である。
図4(a)と図4(b)の時間軸は一致している。従って、左足先Lfを持ち上げているときに(カーブ74)、左足先Lfを進行方向に送る(部分70a)ことがよくわかる。また、右足先Rfを持ち上げているときに(カーブ76)、右足先Rfを進行方向に送る(カーブ72の立上り部分)ことがよくわかる。
図4では図示省略しているが、足先軌道記憶部32には、両足先Lf,Rfのy方向の座標と時間の関係も記憶されている。
足先位置指令値生成部34(図3参照)は、足先軌道記憶部32の記憶内容を参照して、右足先Rfの位置と左足先Lfの位置を指令する指令値が生成する。ここでは、右足先Rfの位置の指令値をRfsと表現し、左足先Lfの位置の指令値をLfsと表現する。LfsとRfsは、それぞれ3次元の座標(x、y、z)で表現される。足先位置指令値生成部34は、Lfsの経時的変化Lfs(t)を生成するとともに、Rfsの経時的変化Rfs(t)を生成する。例えば、時間t1のときはLfs1,Rfs1であり、時間t2のときはLfs2,Rfs2であり、…、といったデータを生成する。なおここでの時間t1,t2等は、ロボット50の動作開始(歩行開始)からの経過時間に相当する。
足先位置指令値生成部34が作成したLfs(t)及びRfs(t)は、歩容データ記憶部46の足先位置データ記憶部46aにおいて記憶される。
コンピュータ装置30に用意されている目標ZMP位置計算部36は、接地足の位置の情報(即ち足先位置指令値生成部34が生成した情報)に基づいて目標ZMP位置(これをZMPTと記載する)を計算する。ZMPTは接地足の足平内にあるように計算される。即ち、ZMPTの軌道は、接地足の足平内から次の接地足の足平内に順次移動していくようになる。実際のZMPがZMPTに一致し、接地足の足平内から次の接地足の足平内に順次移動していけば、ロボット50は転倒することなく歩行を続けることができる。
目標ZMP位置は、2次元の座標(x、y)で表現される。ここでは、ロボット50の歩行面のz座標をゼロとしている。目標ZMP位置計算部36は、目標ZMP位置の経時的変化ZMPT(t)を計算する。
コンピュータ装置30には、標準手先軌道記憶部42が用意されている。標準手先軌道記憶部42は、足先軌道記憶部32で記憶されている足先Lf,Rfの軌道に対応してロボット50が自然な感じで手足を振って歩行する外観を呈する手先Lh,Rh(図2参照)の軌道が記憶されている。このデータは、図4に例示した足先位置の経時的変化のデータと同様の形式で記述されたものであり、手先Lh,Rhのx座標と時間の関係、及び、手先Lh,Rhのz座標と時間の関係が記述されている。
手先位置指令値生成部44は、基本歩容データを作成する過程では、標準手先軌道記憶部42の記憶内容を参照して、左右の手先位置Lh,Rhを指示する指令値を生成する。以下では、手先位置指令値生成部44が生成した左手先Lhの指令値をLhsと記載し、右手先Rhの指令値をRhsと記載する。Lhs及びRhsは、3次元の座標(x、y、z)で表現される。手先位置指令値生成部44は、Lhsの経時的変化Lhs(t)を生成するとともに、Rhsの経時的変化Rhs(t)を生成する。例えば、時間t1のときはLhs1,Rhs1であり、時間t2のときはLhs2,Rhs2であり、…、といったデータを生成する。生成されたLhs(t)及びRhs(t)は、歩容データ記憶部46の標準手先位置データ記憶部46cにおいて記憶される。
コンピュータ装置30は、体幹位置指令値生成部40を有している。体幹位置指令値生成部40は、目標ZMP位置計算部34で計算されたZMPT(t)を実現するはずの体幹の基準位置W(符号Wは図2に示されている)の指令値を生成(計算)する。体幹の基準位置Wは、予め任意に設定された位置である。なお以下では、体幹の基準位置Wのことを体幹位置Wと呼び、その指令値を符号Wsで表現することにする。
体幹位置指令値Wsは、3次元の座標(x、y、z)で表現される。体幹位置指令値生成部40は、体幹位置指令値Wsの経時的変化Ws(t)を作成する。体幹位置指令値生成部40がどのようにしてWs(t)を作成するのかは後で説明する。作成されたWs(t)は、歩容データ記憶部46の体幹位置データ記憶部46bにおいて記憶される。
ここでは、コンピュータ装置30が基本歩容データを作成する過程について説明していく。図5に、コンピュータ装置30が基本歩容データを作成するときのフローチャートを示している。図5の実線の矢印は実行される処理の流れを示している。破線の矢印は、矢印の始点にある情報が、矢印の終点にある処理によって使用されることを示している。
まず、足先位置指令値生成部34が、足先軌道記憶部32の記憶内容に基づいて、足先位置指令値Lfs(t),Rfs(t)を生成する(ステップS2)。生成された足先位置指令値Lfs(t),Rfs(t)は、歩容データ記憶部46に記憶させる(ステップS4)。
続いて、目標ZMP位置計算部36が、生成された足先位置指令値Lfs(t),Rfs(t)に基づいて、ZMPT(t)を計算する(ステップS6)。
ZMPT(t)が計算されると、体幹位置指令値生成部40がWs(t)を計算する処理を実行する(ステップS8)。この処理は、ロボット50の両腕26,28は胴体に固定されているという仮定が成立するものとして実行される。
ロボット50が自然な感じで両腕26,28を動作させて歩行するということは、左脚24が前に出て右脚22が後にある場合は、右腕26が前に出て左腕28が後ろに引かれる。逆に、右脚22が前に出て左脚24が後にある場合は、左腕28が前に出て右腕26が後に引かれる。即ち、自然な感じで両腕26,28を動作させるということは、両腕26,28が左右対称に動作することになる。なお、図6(a)には、右腕28が前に出て左腕26が後に引かれる様子が示されている。ロボット50が両腕26,28を左右対称に動作させる場合、ロボット50の上半身(胴体、両腕26,28、首部、頭部等)の重心位置は、ロボット50の下半身に対してほぼ一定の位置に存在する。当然に、ロボット50の両腕26,28が胴体に固定されている場合(図6(b)に両腕26,28が胴体に固定されている場合を例示している)は、ロボット50の上半身の重心位置は下半身に対してほぼ一定の位置に存在する。従って、下半身に対する上半身の重心位置は、両腕26,28を左右対称に動作させる場合と、両腕26,28を胴体に固定している場合とでほとんど差がない。このために、ロボット50が自然な感じで歩行動作を行なう場合には、両腕が胴体に固定されていると仮定してWs(t)を計算することができる。
以下に、体幹位置指令値Ws(t)を計算する手法について簡単に説明する。より詳しい説明は、本願出願人によって出願された特願2003−171967号に記載されている。
(1)まず、仮の体幹位置(これを符号Wkと記載する)を設定する。
(2)次いで、足先位置指令値Lfs,Rfsが入力されたロボット力学モデル(これについては上記の特願2003−171967号に詳しく記載されている)を用いて、仮の体幹位置Wkとその加速度に基づいて得られるZMP位置と、ZMPT(目標ZMP位置)の偏差を計算し、その偏差を解消するように、仮の体幹位置Wkとその加速度を増減修正する。このとき、両腕26,28が胴体に固定されていると仮定しているために、手先位置指令値Rhs,Lhsをロボット力学モデルに入力してZMP位置を計算する必要がない。
(3)増減修正された仮の体幹位置Wkを用いて、再び(2)の処理を実行する。仮の体幹位置Wkとその加速度に基づいて得られるZMP位置と、ZMPTの偏差が所定値以下になるまで、この処理を繰り返して実行する。
(4)上記の(3)で偏差が所定値以下になった仮の体幹位置Wkを、体幹位置指令値Wsとして採用する。
上記の(1)〜(4)の処理を時間毎に行なっていくことによって、体幹位置指令値の経時的変化Ws(t)を得ることができる。
ステップS8で計算されたWs(t)は、歩容データ記憶部46に記憶させる(ステップS10)。
ステップS12では、標準手先軌道記憶部42の記憶内容に基づいて、手先位置指令値Lhs(t),Rhs(t)を生成する。これにより、ロボット50が自然な感じで両腕26,28を振る動作を実現するためのデータが生成されることになる。
ステップS12で生成されたLhs(t),Rhs(t)は、歩容データ記憶部46で記憶させる(ステップS14)。
以上のステップS2〜S14の処理によって、歩容データ記憶部46に基本歩容データが記憶されることになる。
歩容データ記憶部46に記憶されているデータ群(基本歩容データ)は、ロボット50の姿勢を決めるのに充分なデータである。ロボット50は、歩容データ記憶部46に記憶されている基本歩容データに基づいて、ロボット50を運動させるための装置(関節角群計算装置100、アクチュエータ制御装置102;図3参照)を有している。
関節角群計算装置100は、歩容データ(Lfs(t),Rfs(t),Lhs(t),Rhs(t),Ws(t))から、いわゆる逆キネマティクスを解いて各関節角を計算する。計算された関節角群は、アクチュエータ制御装置102に送られる。
アクチュエータ制御装置102は、送られてくる関節角群に基づいて、各関節のアクチュエータ1〜17(図1参照)の駆動制御を実行する。これによって、ロボット50の関節角が計算された関節角に調整される。
ロボット50は、上述のようにして生成される基本歩容データに基づいて、両腕26,28を自然な感じで振りながら歩行することができる。この歩行中にオペレータH(図2参照)はジョイスティック60を操作することができ、このとき、ロボット50は両腕26,28を振り上げる動作を実行する。この動作を実行するために、ロボット50は、特別手先軌道記憶部120と信号入出力部122と体幹位置修正量記憶部126と歩容データ修正部128を有している(図3参照)。以下では、これらの各機能について説明していく。
特別手先軌道記憶部120は、ロボット50が両腕26,28を挙げて万歳するような外観を呈する腕先位置Lh,Rhの経時変化を記憶している。特別手先軌道記憶部120に記憶されているデータは、ジョイスティック60において所定の操作がなされると手先位置指令値生成部44に取り込まれる。特別手先軌道記憶部120の記憶内容は、図4に例示した足先位置の経時的変化のデータと同様の形式で記述されたものであり、両腕先Lh,Rhのx座標と時間の関係、及び、両腕先Lh,Rhのz座標と時間の関係が記述されている。
信号入出力部122は、手先位置指令値生成部44と有線接続されている。また信号入出力部122は、ジョイスティック60と無線接続されている。信号入出力部122は、ジョイスティック60から出力された操作信号を入力する。信号入出力部122は、ジョイスティック60から操作信号が出力されるまでの間は、手先位置指令値生成部44に対してlow状態の信号を出力し、ジョイスティック60から出力された操作信号を入力した後は、手先位置指令値生成部122に対してhigh状態の信号を出力する。
手先位置指令値生成部44は、信号入出力部122から出力されたhigh状態の信号を入力すると、特別手先軌道記憶部120の記憶内容を参照して、手先位置指令値を生成する。これにより、両腕26,28を大きく上げる動作を指令するデータが生成されることになる。なお、以下では、特別手先軌道記憶部120の記憶内容を参照して手先位置指令値生成部44が生成する手先位置指令値をLhs(t),Rhs(t)と記載することにする。
生成されたLhs(t),Rhs(t)は、歩容データ記憶部46の特別手先位置データ記憶部46c’において記憶される。
生成されたLhs(t),Rhs(t)は、両腕26,28を大きく上げる動作を指令するデータであり、このデータどおりにロボット50が動作すると、両腕26,28は胴体に固定されているという上記の仮定に反する動作をロボット50が実行することになる。この場合、上記した仮定が成立するものとして生成された体幹位置指令値Ws(t)に従ってロボット50が動作すると、ロボット50の姿勢が不安定になる。これを防止するために、体幹位置修正量記憶部126と歩容データ修正部128が設けられている。
歩容データ修正部128は、Lhs(t)、Rhs(t)、Lhs(t)、及びRhs(t)から、上記の仮定が成立する場合の手先位置Lhs,Rhsと、実際の手先位置Lhs,Rhsとの差(これをΔHと表現することにする)を計算する。以下に、時間txにおける手先位置の差を計算する例を示す。
(1)まず、Lhs(tx)とLhs(tx)の差を計算する。即ち、Lhs(tx)からLhs(tx)まで左腕28を移動させるのに必要である、左腕28のY軸回りの回転角θLXを計算する。本実施例では、ここで計算されたθLXを、時間txにおける上記仮定が成立する場合の左手先位置と、時間txにおける実際の左手先位置との差として表現する。なお、図6(c)に、上記仮定が成立する場合の左手先位置Lh(破線で示されている)と、実際の左手先位置Lh(実線で示されている)の差θを図示している。なお、θは前方に向って正とされる。
(2)続いて、Rhs(tx)とRhs(tx)の差を計算する。即ち、Rhs(tx)からRhs(tx)まで右腕26を移動させるのに必要である、左腕26のY軸回りの回転角θRXを計算する。本実施例では、ここで計算されたθRXを、時間txにおける上記仮定が成立する場合の右手先位置と、時間txにおける実際の右手先位置との差として表現する。なお、θは前方に向って正とされる。
(3)そして、θLXとθRxの和を計算することによって、時間txにおける手先位置の差ΔH(tx)を得る。即ち、本実施例では、手先位置の差ΔHは、上記した仮定が成立する場合の左手先位置から実際の左手先位置まで移動させるのに必要な左腕28のY軸回りの回転角θと、上記した仮定が成立する場合の右手先位置から実際の右手先位置まで移動させるのに必要な右腕26のY軸回りの回転角θとの和で表現する。歩容データ修正部128は、時間毎の手先位置の差ΔH(t)を計算する。
体幹位置指令値生成部40で作成されたWs(t)は、上記の仮定の下での体幹位置指令値である。従って、実際の手先位置にロボット50の両腕26,28がおかれる場合には、そのときの体幹位置Wsを修正する必要がある。体幹位置修正量記憶部126には、上記の仮定の下での手先位置を実際の手先位置に変更するのに必要な体幹位置修正量ΔWsが記憶されている。即ち、上記の仮定の下での手先位置と実際の手先位置との差ΔHから、体幹位置修正量ΔWsを特定することができる情報が記憶されている。例えば、ΔWs=f(ΔH)という関数が記憶されている。また、例えば、ΔHとΔWsが対応づけられた情報が複数組記憶されている。
歩容データ修正部128は、ΔH(t)からΔWs(t)を特定する(即ち時間毎のΔWsを特定する)。これにより、時間t1のときはΔWs1、時間t2のときはΔWs2、…、といったデータが得られる。歩容データ修正部128は、歩容データ記憶部46に記憶されている基本歩容データのWs(t)を、得られたΔWs(t)に基づいて修正する(補正する)。これにより、上記の仮定が成立するものとして作成された体幹位置指令値Ws(t)が修正されて、ロボット50が安定して歩行し続ける体幹位置データが作成されることになる。
なお、図3では図示省略しているが、ジョイスティック60は、関節角群計算装置100(図3参照)とも無線接続されている。関節角群計算装置100は、ジョイスティック60が操作される前は、足先位置データ記憶部46aの記憶内容と体幹位置データ記憶部46bの記憶内容と標準手先位置データ記憶部46cの記憶内容から関節角群を計算する。一方、ジョイスティック60が操作されると、足先位置データ記憶部46aの記憶内容と体幹位置データ記憶部46bの記憶内容(これは歩容データ修正部128によって修正されている)と特別手先位置データ記憶部46c’の記憶内容に従って関節角群を計算する。これにより、ジョイスティック60が操作された以降は、ロボット50において両腕26,28を大きく回転させる動作が実現されることになる。
本実施例によると、体幹位置指令値生成部40において体幹位置指令値Ws(t)を作成する段階では、両腕26,28は胴体に固定されていると仮定して両腕26,28の動作を考慮しないために、Ws(t)を作成するための計算時間が非常に短い。しかも、実際は、両腕26,28は胴体に固定されていると仮定できない動作をさせることができる。両腕26,28を大きく動作させる場合であっても、歩容データ修正部128によって体幹位置指令値Ws(t)が修正されるために、ロボット50が安定した姿勢で歩行を続けることができる。Ws(t)を修正するための時間は短いために、ジョイスティック60の操作に対応して瞬時にWs(t)を修正することができる。
本実施例によると、両腕26,28を大きく動作させるロボット50の歩容データを短時間で作成することができる。
なお、上記実施例では、ジョイスティック60が操作されると両腕26,28を前方に持ち上げる動作を実行するが、一対のジョイスティックを利用して左腕28と右腕26の動きをリアルタイムで操縦するようにしてもよい。Ws(t)を修正する時間が短いために、リアルタイムで操縦することができる。
(第2実施例)
ここでは第1実施例と異なる点を説明する。本実施例では、体幹位置修正量記憶部126(図3参照)の記憶内容が第1実施例と異なる。また、歩容データ修正部128の機能が第1実施例と異なる。
本実施例の体幹位置修正量記憶部126は、ロボット50の重心位置の差(これを記号ΔGで表現する)と、体幹位置の修正量ΔWsとの関係を記憶している。ΔGは、異なる姿勢をしているロボット50のそれぞれの重心位置の距離で定義される。例えば、姿勢Aをしているロボット50の重心位置をGAとし、姿勢Bをしているロボット50の重心位置をGBとした場合に、GAとGBの間の距離が、姿勢A及び姿勢Bの重心位置の差である。
歩容データ修正部128は、以下のようにし体幹位置Ws(t)を修正する。
(1)まず、Lfs(t)とRfs(t)と修正前のWs(t)とLhs(t)とRhs(t)と左脚24の質量と右脚22の質量と左腕28の質量と右腕26の質量と体幹(胴体部、首部、頭部)の質量とに基づいて、ロボット50の時間毎の重心位置を計算する。ここで計算された重心位置をG1と表現し、その経時変化をG1(t)と表現する。なお、コンピュータ装置30には、左脚24の質量と右脚22の質量と左腕28の質量と右腕26の質量と体幹(胴体部、首部、頭部)の質量が予め記憶されている。
(2)続いて、Lfs(t)とRfs(t)と修正前のWs(t)とLhs(t)とRhs(t)と左脚24の質量と右脚22の質量と左腕28の質量と右腕26の質量と体幹の質量とに基づいて、ロボット50の時間毎の重心位置を計算する。ここで計算された重心位置をG2と表現し、その経時変化をG2(t)と表現する。
(3)続いて、G1(t)とG2(t)に基づいて、時間毎の重心位置の差を計算する。ここで計算された重心位置の差がΔGであり、その経時変化がΔG(t)である。
(4)次に、体幹位置修正量記憶部126の記憶内容を参照にしてΔGからΔWsを特定する処理を実行する。ここでは時間毎のΔGから時間毎のΔWsを特定する(即ちΔG(t)からΔWs(t)を特定する)。
(5)特定されたΔWs(t)に基づいて、Ws(t)を修正する点は第1実施例と同じである。
本実施例のようにしても、Ws(t)を作成するための計算時間が非常に短い。両腕26,28を大きく動作させる場合であっても、歩容データ修正部128によって体幹位置指令値Ws(t)が修正されるために、ロボット50が安定した姿勢で歩行を続けることができる。
本実施例によると、両腕26,28を大きく動作させるロボット50の歩容データを短時間で作成することができる。
(第3実施例)
本実施例では、コンピュータ装置(本実施例のコンピュータ装置の符号は130とする)の機能が第1実施例のものと異なる。コンピュータ装置は、2パターンの歩容データ(歩容データA及びB)を作成する。図7に、歩容データのパターンを示している。歩容データAと歩容データBは、両足22,24の動作パターン(パターンP)は同じであるが、両腕26,28の動作パターンが異なる。歩容データAの両腕26,28の動作パターンはQであり、歩容データBの両腕26,28の動作パターンはRである。
図8に、本実施例のコンピュータ装置130の機能を示している。以下に、コンピュータ装置130の各機能について説明していく。ただし、上記の各実施例と同様の機能をするものについては簡単に説明する。まず、歩容データAを生成するための各機能について説明していく。
パターンP足先軌道記憶部132には、足先Lf,Rfの軌道を示すデータが記憶されている。パターンP足先軌道記憶部132には、図4に例示されるものと同様の形式で記憶されている。即ち、足先Lf,Rfのx座標と時間の関係、足先Lf,Rfのy座標と時間の関係、及び、足先Lf,Rfのz座標と時間の関係が記憶されている。
足先位置指令値生成部134は、パターンP足先軌道記憶部132の記憶内容に基づいて、足先位置指令値Lfs(t),Rfs(t)を作成する。
目標ZMP位置計算部136は、足先位置指令値生成部134で作成されたLfs(t),Rfs(t)に基づいてZMPT(t)を計算する。
パターンQ手先軌道記憶部142Qには、手先Lh,Rhの軌道を示すデータが記憶されている。ここに記憶されている手先軌道はパターンQであり、後述するパターンR手先軌道記憶部142Rに記憶されているパターンRの手先軌道と相違する。パターンQ手先軌道記憶部142Qは、手先Lh,Rhのx座標と時間の関係、手先Lh,Rhのy座標と時間の関係、及び、手先Lh,Rhのz座標と時間の関係を記憶している。
第1手先位置指令値生成部144Qは、パターンQ手先軌道記憶部142Qの記憶内容に基づいて、手先位置指令値Lhs(t),Rhs(t)を作成する。
第1体幹位置指令値生成部140は、Lfs(t)、Rfs(t)、Lhs(t)、Rhs(t)、及びZMPT(t)に基づいて体幹位置指令値Ws(t)を作成する。第1実施例と異なり、Lhs(t)とRhs(t)もロボット力学モデルに入力してZMP位置を計算することによってWs(t)を作成する。
足先位置指令値生成部134で生成されたLfs(t),Rfs(t)、第1手先位置指令値生成部144Qで生成されたLhs(t),Rhs(t)、及び、第1体幹位置指令値生成部140で生成されたWs(t)は、歩容データ記憶部146に記憶される。これにより、歩容データAが記憶されることになる。
続いて、歩容データBを生成するための各機能について説明していく。
パターンR手先軌道記憶部142Rには、パターンRの手先軌道を示すデータが記憶されている。パターンR手先軌道記憶部142Rは、手先Lh,Rhのx座標と時間の関係、手先Lh,Rhのy座標と時間の関係、及び、手先Lh,Rhのz座標と時間の関係を記憶している。
第2手先位置指令値生成部144Rは、パターンR手先軌道記憶部142Rの記憶内容に基づいて、手先位置指令値Lhs(t),Rhs(t)を作成する。
体幹位置修正量記憶部226には、手先位置の差ΔHと、そのΔHに対応した体幹位置修正量ΔWsが対応づけて記憶されている(ΔWs=f(ΔH))。本実施例におけるΔHも第1実施例と同様に両腕26,28の回転角の単位で設定されている。
第2体幹位置指令値生成部228は、歩容データBの体幹位置指令値Ws(t)を作成する。第2体幹位置指令値生成部228が実行する処理を以下に示す。
(1)Lhs(t)とLhs(t)に基づいて、時間毎の左手先位置の差を計算する。例えば、Lhs(tx)からLhs(tx)まで左腕28を移動させるのに必要である、左腕28のY軸回りの回転角θLxを計算すれば、時間txにおける左手先位置の差を計算することができる。ここでは時間毎の左手先位置の差をθ(t)と表現する。
(2)続いて、Rhs(t)とRhs(t)に基づいて、時間毎の右手先位置の差を計算する。例えば、Rhs(tx)からRhs(tx)まで右腕26を移動させるのに必要である、右腕26のY軸回りの回転角θRxを計算すれば、時間txにおける右手先位置の差を計算することができる。ここでは時間毎の左手先位置の差をθ(t)と表現することにする。
(3)次に、上記の(1)で計算された左手先位置の差θと、上記の(2)で計算された右手先位置の差θの和を計算することによって、手先位置の差ΔHを得る。ここでは時間毎の手先位置の差ΔH(t)を得る。
(4)体幹位置修正量記憶部226には、θとθの和によって表現されるΔHから体幹位置修正量ΔWsを特定することができる情報が記憶されている。第2体幹位置指令値生成部228は、体幹位置修正量記憶部226の記憶内容とΔH(t)から、時間毎の体幹位置修正量ΔWs(t)を特定する。
(5)そして、第1体幹位置指令値生成部140で生成されたWs(t)をΔWs(t)に基づいて修正することによって、歩容データBの体幹位置指令値Ws(t)を得る。
作成されたWs(t)を歩容データ記憶部146で記憶することによって、歩容データA及び歩容データBが完成する。
本実施例によると、歩容データAを作成する段階では、従来と同じ手法を用いる。しかしながら、歩容データAの体幹位置指令値Ws(t)を修正することによって、歩容データBの体幹位置指令値Ws(t)を作成する。これにより、歩容データBのWs(t)を作成するための計算時間を大幅に短縮することができる。
本実施例によると、複数の歩容データを従来よりも短時間で作成することができる。
(第4実施例)
ここでは第3実施例と異なる点について説明する。本実施例では、体幹位置修正量記憶部226(図8参照)の記憶内容が第3実施例と異なる。また、第2体幹位置指令値生成部228の機能が第3実施例と異なる。
本実施例の体幹位置修正量記憶部226は、ロボット50の重心位置の差(これを記号ΔGで表現する)と、体幹位置の修正量ΔWsとの関係を記憶している。ΔGは、異なる姿勢をしているロボット50のそれぞれの重心位置の距離で定義される。この点は第2実施例と同様である。
第2体幹位置指令値生成部228は、以下の各処理を実行する。
(1)まず、Lfs(t)とRfs(t)とWs(t)とLhs(t)とRhs(t)(即ち歩容データA)に従ってロボット50が動作する場合の重心位置の経時変化を計算する。ここでの重心位置の計算には、左脚24の質量と右脚22の質量と左腕28の質量と右腕26の質量と体幹(胴体部、首部、頭部)の質量が用いられる。ここで計算された重心位置をG1と表現し、その経時変化をG1(t)と表現する。
(2)続いて、Lfs(t)とRfs(t)とWs(t)とLhs(t)とRhs(t)に従ってロボット50が動作する場合の重心位置の経時変化を計算する。ここでの重心位置の計算には、左脚24の質量と右脚22の質量と左腕28の質量と右腕26の質量と体幹の質量が用いられる。ここで計算された重心位置をG2と表現し、その経時変化をG2(t)と表現する。
(3)次に、G1(t)とG2(t)に基づいて、時間毎の重心位置の差を計算する。ここで計算された重心位置の差がΔGであり、その経時変化がΔG(t)である。
(4)次に、体幹位置修正量記憶部226の記憶内容を参照にしてΔGからΔWsを特定する処理を実行する。ここでは時間毎のΔGから時間毎のΔWsを特定する。即ち、ΔG(t)からΔWs(t)を特定する。
(5)特定されたΔWs(t)に基づいてWs(t)を修正することによって、Ws(t)を得る点は第3実施例と同じである。これにより、歩容データA及びBが完成する。
本実施例によると、歩容データAを作成する段階では従来と同じ手法を用いるが、歩容データAの体幹位置指令値Ws(t)を修正することによって、歩容データBの体幹位置指令値Ws(t)を作成する。これにより、歩容データBのWs(t)を作成するための計算時間を大幅に短縮することができる。本実施例によっても、複数の歩容データを従来よりも短時間で作成することができる。
以上、本発明の具体例を詳細に説明したが、これらは例示にすぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組み合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組み合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
ロボットのスケルトン図を示す。 ロボットが歩行する様子を示す。 コンピュータ装置の機能を示しており、それに接続される各種装置を模式的に示している(第1実施例と第2実施例)。 足先軌道記憶部の記憶内容の一例を示す。 コンピュータ装置が基本歩容データを作成する処理を説明するための図である。 ロボットを側面から見た図であり、両腕の動作を説明するための図である。 2種類の歩容データのそれぞれについて、歩行パターンと両腕の動作パターンを示している。 コンピュータ装置の機能を示している(第3実施例と第4実施例)。
符号の説明
Lf:左足先
Rf:右足先
Lh:左足先
Rh:右足先
W:体幹基準位置
H:オペレータ
1〜17:軸(アクチュエータ)
22:右足
24:左足
26:右腕
28:左腕
30:コンピュータ装置
50:ロボット
60:ジョイスティック

Claims (5)

  1. 両腕を動作させながら歩行するロボットの歩容データを作成する装置であり、
    ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段と、
    「ロボットの両腕は胴体に固定されている」という仮定の下で、ロボットの動作開始からの経過時間毎の体幹位置が記述された体幹位置データを作成する手段と、
    ロボットの動作開始からの経過時間毎の手先位置が記述された手先位置データを記憶する手段と、
    手先位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースと、
    作成された体幹位置データを修正する装置とを備え、
    その修正装置は、
    ロボットの動作開始からの経過時間毎の「前記仮定の下での手先位置と手先位置データの手先位置との差」を計算する手段と、
    ロボットの動作開始からの経過時間毎の「前記仮定の下での手先位置と手先位置データの手先位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段と、
    ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて、作成された体幹位置データを修正する手段とを有することを特徴とする歩容データ作成装置。
  2. 両腕を動作させながら歩行するロボットの歩容データを作成する装置であり、
    ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段と、
    「ロボットの両腕は胴体に固定されている」という仮定の下で、ロボットの動作開始からの経過時間毎の体幹位置が記述された体幹位置データを作成する手段と、
    ロボットの動作開始からの経過時間毎の手先位置が記述された手先位置データを記憶する手段と、
    重心位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースと、
    作成された体幹位置データを修正する装置とを備え、
    その修正装置は、
    前記仮定の下で、足先位置データと作成された体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する第1計算手段と、
    足先位置データと作成された体幹位置データと手先位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する第2計算手段と、
    ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」を計算する第3計算手段と、
    ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段と、
    ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて、作成された体幹位置データを修正する手段とを有することを特徴とする歩容データ作成装置。
  3. 請求項1又は2の歩容データ作成装置と、その歩容データ作成装置で作成された歩容データに従って運動するロボットと、オペレータによって操作される操作部材とを備えるロボットシステムであり、
    歩容データ作成装置は、操作部材が操作されると前記手先位置データを作成して前記手先位置データ記憶手段に記憶させる手段を有し、
    ロボットは、操作部材が操作されると歩容データ作成装置の前記手先位置データ記憶手段の記憶内容に従って両腕を動作させ、
    歩容データ作成装置の前記修正装置は、操作部材が操作されると前記体幹位置データを修正することを特徴とするロボットシステム。
  4. 両腕を動作させながら歩行するロボットの、歩行パターンが同じであって両腕の動作パターンが異なる複数パターンの歩容データを作成する装置であり、
    ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段と、
    少なくとも2パターンの「ロボットの動作開始からの経過時間毎の手先位置」が記述された手先位置データを記憶している手段と、
    足先位置データと一方のパターンの手先位置データとに基づいて、一方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第1作成装置と、
    手先位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースと、
    他方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第2作成装置とを備え、
    その第2作成装置は、
    ロボットの動作開始からの経過時間毎の「一方のパターンの手先位置データの手先位置と他方のパターンの手先位置データの手先位置との差」を計算する手段と、
    ロボットの動作開始からの経過時間毎の「一方のパターンの手先位置データの手先位置と他方のパターンの手先位置データの手先位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段と、
    ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて一方のパターンの体幹位置データを修正することによって、他方のパターンの体幹位置データを作成する手段とを有することを特徴とする歩容データ作成装置。
  5. 両腕を動作させながら歩行するロボットの、歩行パターンが同じであって両腕の動作パターンが異なる複数パターンの歩容データを作成する装置であり、
    ロボットの動作開始からの経過時間毎の足先位置が記述された足先位置データを記憶している手段と、
    少なくとも2パターンの「ロボットの動作開始からの経過時間毎の手先位置」が記述された手先位置データを記憶している手段と、
    足先位置データと一方のパターンの手先位置データとに基づいて、一方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第1作成装置と、
    重心位置の差と体幹位置の修正量との関係を記憶している体幹位置修正量データベースと、
    他方のパターンの「ロボットの動作開始からの経過時間毎の体幹位置」が記述された体幹位置データを作成する第2作成装置とを備え、
    その第2作成装置は、
    足先位置データと一方のパターンの手先位置データと一方のパターンの体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する第1計算手段と、
    足先位置データと他方のパターンの手先位置データと一方のパターンの体幹位置データと各足の質量と体幹の質量と各腕の質量とに基づいて、ロボットの動作開始からの経過時間毎の重心位置を計算する第2計算手段と、
    ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」を計算する第3計算手段と、
    ロボットの動作開始からの経過時間毎の「第1計算手段で計算された重心位置と第2計算手段で計算された重心位置との差」と、体幹位置修正量データベースの記憶内容とに基づいて、ロボットの動作開始からの経過時間毎の「体幹位置の修正量」を特定する手段と、
    ロボットの動作開始からの経過時間毎の「体幹位置の修正量」に基づいて一方のパターンの体幹位置データを修正することによって、他方のパターンの体幹位置データを作成する手段とを有することを特徴とする歩容データ作成装置。
JP2003354866A 2003-10-15 2003-10-15 ロボットの歩容データ作成装置及びシステム Expired - Fee Related JP4311159B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003354866A JP4311159B2 (ja) 2003-10-15 2003-10-15 ロボットの歩容データ作成装置及びシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003354866A JP4311159B2 (ja) 2003-10-15 2003-10-15 ロボットの歩容データ作成装置及びシステム

Publications (2)

Publication Number Publication Date
JP2005118924A JP2005118924A (ja) 2005-05-12
JP4311159B2 true JP4311159B2 (ja) 2009-08-12

Family

ID=34612656

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003354866A Expired - Fee Related JP4311159B2 (ja) 2003-10-15 2003-10-15 ロボットの歩容データ作成装置及びシステム

Country Status (1)

Country Link
JP (1) JP4311159B2 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007007797A (ja) * 2005-07-01 2007-01-18 Toyota Motor Corp 歩行ロボット
WO2018151317A1 (ja) * 2017-02-20 2018-08-23 友樹 橋本 多関節ロボットにおける動作教示・再現駆動システム及び動作教示・再現駆動方法
CN116660916B (zh) * 2023-05-26 2024-02-02 广东省农业科学院设施农业研究所 一种用于果园移动机器人的定位方法、建图方法及电子设备

Also Published As

Publication number Publication date
JP2005118924A (ja) 2005-05-12

Similar Documents

Publication Publication Date Title
JP4513320B2 (ja) ロボット装置、並びにロボット装置の運動制御方法
US10836040B2 (en) Desired ZMP trajectory generating device
JP3972854B2 (ja) ロボットの運動制御装置
JP4548135B2 (ja) 脚式ロボットとその制御方法
US8682488B2 (en) Humanoid robot and walking control method thereof
JP7174705B2 (ja) 外骨格を動かすための方法
US20120158183A1 (en) Walking robot and control method thereof
JP6228097B2 (ja) 移動ロボット
JP5104355B2 (ja) ロボット制御装置、ロボット制御方法およびロボット制御プログラム
KR100889481B1 (ko) 이족 로봇의 계단 보행 방법
JPH0692076B2 (ja) 歩行脚運動制御装置
JP4311159B2 (ja) ロボットの歩容データ作成装置及びシステム
JP4905041B2 (ja) ロボット制御装置
JP4985776B2 (ja) ロボット制御装置、ロボット制御方法およびロボット制御プログラム
JP4501601B2 (ja) 脚式ロボットとその制御方法ならびに歩容データの作成装置と作成方法
JP5035005B2 (ja) 脚式ロボット、その制御方法、その制御システム
JP6168158B2 (ja) 移動ロボットの移動制御方法、および、移動ロボット
JP4833121B2 (ja) 脚式ロボットと歩容生成装置と歩容修正装置を備えるシステム
JP3674787B2 (ja) ロボット装置の動作制御装置及び動作制御方法、並びにコンピュータ・プログラム
JP2005007496A (ja) 歩容データの作成装置と作成方法
JP4583098B2 (ja) ロボットの運動パターン作成用プログラム、並びに運動パターン作成装置及びそれを用いたロボット。
JP2005022039A (ja) 歩容データ作成装置と作成方法
JP2008142861A (ja) 歩容データ生成装置と歩容データ生成方法
JP4848686B2 (ja) 脚式ロボットとその動作調節方法
JP4707290B2 (ja) 脚式移動ロボットの動作制御装置及び動作制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060407

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

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

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20120522

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20130522

Year of fee payment: 4

LAPS Cancellation because of no payment of annual fees