米国特許情報 | 欧州特許情報 | 国際公開(PCT)情報 | Google の米国特許検索
 
     特許分類
A 農業
B 衣類
C 家具
D 医学
E スポ−ツ;娯楽
F 加工処理操作
G 机上付属具
H 装飾
I 車両
J 包装;運搬
L 化学;冶金
M 繊維;紙;印刷
N 固定構造物
O 機械工学
P 武器
Q 照明
R 測定; 光学
S 写真;映画
T 計算機;電気通信
U 核技術
V 電気素子
W 発電
X 楽器;音響


  ホーム -> 加工処理操作 -> トヨタ自動車株式会社

発明の名称 脚式ロボットの歩容データ完成方法と歩行制御方法と歩行制御装置
発行国 日本国特許庁(JP)
公報種別 公開特許公報(A)
公開番号 特開2007−7794(P2007−7794A)
公開日 平成19年1月18日(2007.1.18)
出願番号 特願2005−193270(P2005−193270)
出願日 平成17年7月1日(2005.7.1)
代理人 【識別番号】110000110
【氏名又は名称】特許業務法人快友国際特許事務所
発明者 嶋田 宏史
要約 課題
フィードバック補償を追加して制御ロジックを複雑にすることなく、当初作成された歩容データに対して補正量を設定することにより、歩容データ上で遊脚となるべき脚が床に接触することなくロボットを歩行させることのできる技術を提供する。

解決手段
ロボットの撓みを考慮しない当初の歩容データによってロボットを実際に歩行させる。このとき当初歩容データ上で遊脚となるはずの脚の足平が床に接触した場合、その時点を当初歩容データ上で特定する。少なくともその時点で足平が床から離れる方向に当初歩容データの補正量を設定する。このときロボットに生じる撓み量を計算する必要はない。このように当初歩容データの補正量を設定してロボットを制御することで、当初歩容データに近く、かつフィードバック補償なしに、当初歩容データ上では遊脚となるはずの脚が床に接触することなくロボットを歩行制御することができる。
特許請求の範囲
【請求項1】
ロボットの歩行に用いる歩容データを完成する方法であり、
ロボットの代表点の目標位置を経時的に記述する当初歩容データを用いてロボットを実際に歩行させる工程と、
当初歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する工程と、
少なくとも前記特定された時点における当初歩容データを、遊脚であるはずの足平が床から離れる方向に補正する工程と、
を含むことを特徴とする歩容データ完成方法。
【請求項2】
前記特定された時点に先立つ所定期間内の当初歩容データを、補正量が漸増するように補正する工程と、
前記特定された時点に続く所定期間内の当初歩容データを、補正量が漸減するように補正する工程と、
を含むことを特徴とする請求項1の歩容データ完成方法。
【請求項3】
前記補正工程では、足首関節の周りに足平を上方に所定角だけ回転させた目標位置と目標姿勢に補正することを特徴とする請求項1又は2の歩容データ完成方法。
【請求項4】
前記補正工程では、体幹目標位置をロボットの体側方向の接地脚側に所定距離だけ移動した目標位置に補正することを特徴とする請求項1又は2の歩容データ完成方法。
【請求項5】
補正された歩容データを用いてロボットを実際に歩行させる工程と、
補正された歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する工程と、
少なくとも前記特定された時点における補正された歩容データを、遊脚であるはずの足平が床から離れる方向にさらに補正する工程と、
を含むことを特徴とする請求項1から4のいずれかの歩容データ完成方法。
【請求項6】
前記補正工程では、補正前の歩容データを補正後の歩容データに置換することを特徴とする請求項1から5のいずれかの歩容データ完成方法。
【請求項7】
前記補正工程では、補正前の歩容データに補正量を対応付けて記憶することを特徴とする請求項1から5のいずれかの歩容データ完成方法。
【請求項8】
脚式ロボットの歩行制御方法であり、
補正前の歩容データとその歩容データに対応する補正量をロボットに教示する工程と、
補正前の歩容データをそれに対応する補正量で補正した歩容データから関節角を演算する工程と、
を含むことを特徴とする歩行制御方法。
【請求項9】
脚式ロボットの歩行制御装置であり、
ロボットの代表点の目標位置を経時的に記述する当初歩容データを記憶する装置と、
記憶装置が記憶している当初歩容データを用いてロボットを実際に歩行させる手段と、
記憶装置が記憶している当初歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する手段と、
記憶装置が記憶している当初歩容データであって、少なくとも前記特定された時点における当初歩容データを、遊脚であるはずの足平が床から離れる方向に補正する手段と、
を有することを特徴とする歩行制御装置。
発明の詳細な説明
【技術分野】
【0001】
本発明は、体幹(胴部)に複数本(典型的には2本)の脚リンクが揺動可能に連結されている機械(脚式ロボット)を制御する技術に関する。詳しくは、歩容データ上では遊脚となっているはずの脚が床に接触してしまうことを回避するように歩容データを補正することによって歩容データを完成する方法と、補正された歩容データを用いてロボットが歩行するように制御する方法と、そのための装置に関する。
【背景技術】
【0002】
体幹と脚リンク群の相対的姿勢を変化させることによって歩行する脚式ロボット(以下単にロボットと称す)が開発されている。ロボットは、歩容データを用いて歩行する。
歩容データは、ロボットの姿勢を決定する代表点の一つである足平の位置の経時的変化を記述する足平目標位置データと、代表点の他の一つである体幹の位置の経時的変化を記述する体幹目標位置データ等から構成されている。体幹目標位置データは、ロボットのダイナミクスを考慮に入れたうえで、足平位置の経時的変化に追従して歩行しつづけることを可能とする関係に計算されている。なお、足平とは脚リンク群の先端に連結されているリンク部品をいう。
【0003】
軽量化のためにロボットの剛性は低くならざるを得ない。特に、いずれかの脚が遊脚(床から離れた脚を遊脚と称する)となるとロボットは撓みやすく、ロボットに生じる撓みによって、ロボットは歩容データが記述する姿勢よりも遊脚側に傾きやすい。ここでいうロボットの撓みは、リンク自体が撓むことと関節角が撓むことの一方または双方をいう。
今、遊脚に「離床/前方への移動/着床」という一連の動作を実行させる歩容データを作成したとする。この歩容データに基づいてロボットを制御すると、剛性不足からロボットは歩容データが記述する姿勢よりも遊脚側に傾いてしまう場合がある。この結果、歩容データ上では遊脚となっているはずの足平が床に接触してしまう可能性がある。遊脚となっているはずの足平が床に接触してしまうと、脚を引きずって歩くような格好となり、見た目がぎこちない歩行となってしまう。
【0004】
例えば図9(A)に示すロボット100の正面図と、図9(B)に示すロボット100の側面図に破線で示すように、ある時点における歩容データでは脚200が遊脚となるように設定されているとする。ロボット100の剛性が低い場合には、図9(A)、(B)の実線で示すように、ロボット100は歩容データが記述する姿勢以上に傾いてしまう。この結果、歩容データ上では遊脚であるはずの脚200の先端が、図9(A)、(B)に符号202で示すように実際には床と接触してしまう可能性がある。
【0005】
この問題に対処するために、特許文献1に、各関節に作用するモーメントと、そのモーメントによる関節角の変形量を求め、求めた変形量を補償する技術が提案されている。この技術によると、見かけ上の剛性を高めることができ、ロボットは歩容データが記述する姿勢をとる。
【0006】
【特許文献1】特開平6−63881号公報(請求項1及び段落0001)
【発明の開示】
【発明が解決しようとする課題】
【0007】
特許文献1の技術では、関節に作用するモーメントによる関節角の変形量を演算する必要があり、計算量が膨大となる。より簡単に、遊脚が予定外に接地することを防止することができる歩容データを完成する技術が必要とされている。
【課題を解決するための手段】
【0008】
本発明では、撓みの影響を反映していない歩容データから撓みの影響を反映した歩容データに補正することによって、歩容データを完成する。前記したように、撓みの影響を反映するためには、通常は膨大な計算量を必要とする。
本発明では、歩容データの全部に対して撓みの影響を反映する必要はなく、撓みの影響が実際上の意味を持つときに限って反映することにする。すなわち撓みの影響によって予定外に遊脚が接地してしまう時にだけ、撓みの影響を反映する。この場合、撓みの影響を反映して歩容データを補正するデータ量が限定され、撓みの影響を反映していない歩容データから撓みの影響を反映した歩容データに補正することが可能となる。
また、実際に歩行させて遊脚が予定外に接地するか否かを観測することによって、撓みの影響が実際上の意味を持たなくなるまで歩容データが補正されたのか否かを判別することが可能となり、撓みの影響が実際上の意味を持たなくなるまで歩容データを補正することが可能となる。
本発明では、撓みの影響によって遊脚が予定外に接地しまう時に限って補正するという発想によって、簡単に「撓みの影響を反映していない歩容データから撓みの影響を反映した歩容データに補正する」ことに成功した。
【0009】
本発明は、歩容データを完成する方法に具現化することができる。この歩容データ完成方法は、ロボットの代表点の目標位置を経時的に記述する当初歩容データを用いてロボットを実際に歩行させる工程と、当初歩容データ上では遊脚であるはずの足平が床(ロボットが歩行する歩行面)に接触した時点を特定する工程と、少なくとも特定された時点における当初歩容データを、遊脚であるはずの足平が床から離れる方向に補正する工程を含んでいる。
【0010】
本方法は、当初歩容データを用いてロボットを実際に歩行させ、当初歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する。すなわち、撓みの影響が顕在化するために撓みの影響を反映して歩容データを補正する必要があるタイミングを特定する。そうすることによって補正対象となる歩容データを絞り込むことができる。本発明では、そうして絞り込まれた歩容データに対してのみ補正を施す。
本発明では、撓みの影響を排除するように補正するための技術でありながら、撓み量を考慮しない。特許文献1の発想と相違する。本発明では、遊脚が予定外に接地してしまわないように、ともかくも遊脚であるはずの足平が床から離れる方向に歩容データを補正する。撓み量を考慮せずに補正することから、補正によって遊脚が予定外に接地する事象が解消されるまで補正されたか否かはわからない。しかしながら、補正された歩容データを用いてロボットに歩行させれば、遊脚が予定外に接地する事象が解消されるまで補正されたか否かを検証することができる。遊脚が予定外に接地する事象が解消されるまで補正することが可能となる。
本方法によると、撓みの影響が実際上の意味を持つゆえに補正する必要のある歩容データを絞り込むことができる。本方法は、撓みの影響を排除するように補正する技術でありながら、撓み量を計算する必要がない。代わりに、撓みの影響が実際上の意味を持たなくなるまで補正されたか否かを検証する。これらによって、本来は多大な計算量を必要する「撓みの影響を反映していない歩容データから撓みの影響を反映した歩容データに補正する」過程を極めて簡単化することができる。なお、「代表点」とはロボットの任意の位置に指定可能な点であるが、複数のリンクにより構成されるロボットの場合、ロボットの姿勢を良く表す所定の点を代表点とすることが好ましい。例としてはロボット頭部リンク、足平リンク、体幹リンク、手先リンクなどのリンクの所定の位置に固定された点を代表点とすることができる。また手先に複数の指リンク群を有する場合には各指先リンクに固定された特定の点を代表点としてもよい。
【0011】
本方法は、遊脚が予定外に接地するタイミングであると特定された時点に先立つ所定期間内の当初の歩容データを補正する工程と、遊脚が予定外に接地するタイミングであると特定された時点に続く所定期間内の当初の歩容データを補正する工程を含むことが好ましい。前者の期間内では補正量が漸増するように補正し、後者の期間内では補正量が漸減するように補正することが好ましい。
これによって、遊脚が予定外に接地するタイミングの前後で、当初の歩容データからの補正量がゼロの状態から徐々に増大し、遊脚の予定外の接地が検出されたタイミングでの補正量が最大となり、その後に補正量が徐々に減少して当初の歩容データに復帰する歩容データに補正される。遊脚の予定外の接地を避けながら、ロボットがスムーズに歩行する歩容データに補正することができる。
【0012】
遊脚の予定外の接地を避けるのに必要な補正では、足首関節の周りに足平を上方に所定角だけ回転させた目標位置と目標姿勢に補正することが好ましい。
人間の脚について、接地脚から遊脚に変化し、再度接地脚となる一連の動作を詳細に観察すると次のようになる。
(1)接地脚から遊脚に変化する時点(離床時)はつま先が最後に離床する。
(2)遊脚はそのままつま先を下に向けた状態で接地脚の横を通過する。
(3)遊脚が接地脚より前へ出てからつま先が水平より上方を向く。
(4)かかとが着床して再度接地脚状態となる。
上記動作をロボットで行わせると、(2)の状態、すなわち遊脚が接地脚の横を通過する前後において、遊脚を振る動作によってロボット全体が遊脚側に傾きやすくなる。同時にこのとき、遊脚の足平先端(つま先に相当)が最も床に接近する可能性が高い。
そこで、足首関節の周りに足平の先端を上方に所定角だけ回転させると、遊脚の予定外の接地を避けることができる。なお足首関節とは足平リンクとこれに連結される下腿リンクとを体側方向を軸として回転可能に連結する関節のことをいう。
足平は脚リンク群の先端に連結されたリンク部品である。従って足平を足首関節の周りに回転させても、足首から腰までの各部の位置/動作および体幹の位置/動作に与える影響が小さい。よって当初作成した歩容データに補正を加えることによってロボットの歩行姿勢の全体が変化することを抑えることができる。
【0013】
遊脚の予定外の接地を避けるのに必要な補正では、体幹目標位置をロボット体側方向のうちの接地脚側へ所定距離だけ移動してもよい。ここでロボット体側方向とは、ロボット胴部の中心から胴部の側面へ向かう方向をいう。右脚を接地脚として左脚を遊脚とする場合には、体幹目標位置を右側へ所定距離だけ移動することに相当する。
体幹目標位置をロボット体側方向のうちの接地脚側へ補正することによって、ロボット全体の重心位置をロボット体側方向の接地脚側へ移動させることができる。従ってロボットが遊脚側へ傾くように働くモーメントを小さくすることができる。換言すればロボットの遊脚側への傾きを小さくすることができる。この結果、補正された歩容データによると、遊脚の足平が床から上方へ移動した位置に変化することになる。よって遊脚が予定外に接地することを回避することができる。
【0014】
歩容データを完成する過程では、補正された歩容データを用いてロボットを実際に歩行させる工程と、補正された歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する工程と、少なくとも特定された時点における補正された歩容データを遊脚であるはずの足平が床から離れる方向にさらに補正する工程を含んでいることが好ましい。
この方法は当初歩容データを所定の補正量で補正された歩容データでは歩容データ上では遊脚であるはずの足平がやはり床に接触してしまう場合、補正された歩容データにさらに所定の補正量を追加して補正する処理を繰り返すことができる。
この方法によれば、毎回の補正量を小さく設定することができ、遊脚の予定外の接地を避けるのに必要な補正量となるまで補正量を段階的に増大してゆくことができる。遊脚の予定外の接地を回避するのに必要な最小の補正量を得ることができる。補正量が小さいほど、当初作成した歩容データに近い状態でロボットをスムーズに歩行させることが可能となる。
【0015】
遊脚の予定外の接地を避けるためには、補正前の歩容データを補正後の歩容データに置き変えてよい。あるいは、補正前の歩容データに補正量を対応付けて記憶してもよい。
補正量を徐々に増やしながら遊脚の予定外の接地を避けるのに必要な最小の補正量を探索する場合には、補正前の歩容データに補正量を対応付けて記憶する方式が好ましい。
【0016】
脚式ロボットの通常の歩行制御方法では、完成した歩容データをロボットに教示する。しかしながら、補正量を徐々に増やしながら遊脚の予定外の接地を避けるのに必要な最小の補正量を探索する場合には、補正前の歩容データに補正量を対応付けて記憶する方式が好ましい。従って、脚式ロボットの歩行を制御する方法でも、補正前の歩容データとその歩容データに対応する補正量をロボットに教示する工程と、補正前の歩容データをそれに対応する補正量で補正した歩容データから関節角を演算する工程を備えていることが好ましい。
補正された歩容データに従ってロボットが動作したときに撓みが加わるために、当初の歩容データが記述する運動を実現させることができる。
【0017】
本発明は、脚式ロボットの歩行制御装置自体に具現化することもできる。この歩行制御装置は、ロボットの代表点の目標位置を経時的に記述する当初歩容データを記憶する装置と、記憶装置が記憶している当初歩容データを用いてロボットを実際に歩行させる手段と、記憶装置が記憶している当初歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する手段と、記憶装置が記憶している当初歩容データであって少なくとも前記特定された時点における当初歩容データを遊脚であるはずの足平が床から離れる方向に補正する手段を含んでいる。
この歩行制御装置によると、当初に教示された歩容データによるとロボットの撓みに起因して遊脚が予定外に接地するときに、遊脚の予定外の接地を避ける歩容データに補正することができる。
【発明の効果】
【0018】
本願発明によれば、撓みを考慮しないで作成した歩容データによるとロボットに生じる撓みに起因して遊脚が予定外に接地するときに、ロボットが撓んでも遊脚の予定外の接地を避けることができる歩容データに補正することができる。
ロボットは歩容データに従って歩行すればよく、ロボットの制御ロジックは複雑化されない。またロボットに生じる撓み量を計算する必要がない。
少ない計算量で短時間のうちに、実際の歩行姿勢が優れた歩容データを完成することができる。
【発明を実施するための最良の形態】
【0019】
実施例の主要な特徴を列記する。
(第1形態) 特定された時点の前後所定期間で漸増・漸減する補正量を設定する場合、その所定期間とは、予定外に接地する遊脚が遊脚であるはずの期間内に定めることが好ましい。遊脚期間中は床に対して拘束されるのが片足のみとなるため、各代表点位置の幾何学的拘束条件が緩やかとなる。その結果、補正可能なロボットの代表点の数、または代表点位置に対する補正量の範囲を大きく取れるからである。また前記遊脚期間の前後の期間では、ロボット代表点を補正する必要がなくなるので、歩容データの補正がロボットの歩行動作の全体に及ぼす影響を小さくすることができるからである。
(第2形態) 歩容データが終了するまでロボットを実際に歩行させ、その間に歩容データ上では遊脚となるはずの脚が床に接触した時点の全部を特定する。そして歩容データが終了した後で、先に特定された時点毎に歩容データを補正することが好ましい。換言すれば、遊脚が予定外に接触するタイミングを歩容データの全体にわたって特定した後に、特定された時点毎に歩容データを補正する。歩容データの全体に対する補正作業を1サイクルで行うことができるので、歩容データの完成までの時間と労力が節約される。
(第3形態) 当初歩容データを補正する工程では、当初歩容データ内のいずれかの代表点の目標位置を補正することが好ましい。例えば足先に代表点が設定されていればその足先目標位置を上方に所定量だけ補正する、あるいは体幹(胴部)に代表点が設定されていればこの体幹目標位置を上方に補正することなどが考えられる。
(第4形態) ロボットを実際に歩行させる床(歩行面)は略平坦であることが好ましい。ここで略平坦とはロボットがぶつかる障害物にならない程度の凹凸があってもかまわない。ロボットが連続して歩行する際に、一歩行期間(ロボット両脚の相対位置関係がある相対位置関係となった時点から同じ相対位置関係になるまでの期間)における歩行面が同等であれば良い。なお歩行面は水平である必要はなく、各歩行期間毎の歩行面の状態(凹凸など)が同等の条件であれば歩行面は傾斜していてもよい。当初歩容データを補正する工程を繰り返す際、同じ状態の歩行面で行うことが好ましいからである。
(第5形態) 当初歩容データには、所定の座標系における足平に設定された代表点目標位置の経時的データが含まれており、各時点の前記足平の、足裏面(床と接触する面)の位置を特定する工程と、所定の座標系に対する、ロボットが実際に歩行する床(歩行面)の位置を特定するデータを記憶する記憶装置から、前記歩行面の位置を読み出す工程と、前記「各時点の前記足平の、足裏面」と前記歩行面とが交差しない場合に、その足平を有する脚が歩容データ上では遊脚であるはずと判断する工程と、を含むことが好ましい。ロボット足裏面と、歩行面とが交差しない場合にその足平を有する脚が遊脚であるはず、と判断することによって、例えば歩行面が傾斜している場合でも、歩容データ上では遊脚であるはずか否かを特定することができるからである。
(第6実施形態) 当初歩容データ上で、各時点におけるロボットの夫々の脚が遊脚状態(床から離れている状態)であるか否かのデータが予め記憶装置に記憶されており、このデータに基づいて、当初歩容データ上の各時点において夫々の脚が遊脚であるはずか否かを判断する工程、を備えていることが好ましい。夫々の脚が遊脚であるはずか否か、予めデータとして有していれば、ロボットを実際に歩行させた際に、夫々の脚が遊脚であるはずか否かを計算することなく判断することができるからである。当初歩容データを作成する際には、夫々の脚がいつ接地脚となるかまたは、いつ遊脚となるか、を計画しながら考作成される。従って当初歩容データを作成する際に、当初歩容データ上の各時点におけるロボットの夫々の脚が遊脚状態であるか否かのデータを同時に作成することが可能である。
【実施例】
【0020】
図面を参照して実施例を詳細に説明する。
<実施例1>
図1から図5を用いて本発明の実施例1を説明する。図1に示すように、実施例1の装置は、歩容データ作成装置20と、歩行制御装置10と、ロボット100と、フォースプレート26を備えている。アクチュエータ制御部24や歩容データ記憶部34など、歩行制御装置10の一部ないし全部は、ロボット100の本体内に内蔵される場合もあるが、ここでは説明を容易にするため、ロボット100とは別体として描いている。
【0021】
歩容データ作成装置20は、ロボット100のダイナミクスを考慮し、ロボット100に行わせたい動作の目標値を作成する。動作の目標値は、ロボット100のいくつかの所定位置に設定した代表点の目標位置の経時的変化のデータとして作成される。ロボット100は複数のリンク部品と相互のリンクを揺動可能に連結する関節から構成されている。ここで代表点の目標位置によって歩容データを記述するのは、ロボット各関節の目標値によって歩容データを記述するよりも、ロボット姿勢が人間に理解しやすいからである。代表点の具体的例としては、左右の足平位置、胴部(体幹)の重心位置、左右の手先の位置などがある。ここで位置には3次元空間上での位置の他に姿勢も含まれる。ダイナミクスを考慮するとは、歩行中にいずれかの脚が遊脚となった際にロボットが倒れないこと、また、各代表点の相対位置関係がロボットの幾何学的拘束条件を満足すること、等である。この歩容データ作成装置20で作成された歩容データを当初歩容データと称することにする。
【0022】
歩行制御装置10は、歩容データ作成装置20によって作成された当初歩容データを記憶する歩容データ記憶部34を備えている。その他に、アクチュエータ制御部24と、接触時点特定部28と、補正量設定部30と、補正量データ記憶部32を備える。
【0023】
ロボットを作動させる際には歩容データ記憶部34に記憶されている当初歩容データが読み出され、アクチュエータ制御部24は、読み出した当初歩容データに基づいて、ロボット100に内蔵されているアクチュエータを制御する。この結果、ロボット100は当初歩容データに基づいて姿勢を変え、実際に歩行する。アクチュエータ制御部24の内部の構造については図2に基づいて後述する。
アクチュエータ制御部24は、補正量データ記憶部32に補正量データが記憶されている場合には、歩容データ記憶部34に記憶されている当初歩容データと補正量データ記憶部32に記憶されている補正量データの双方を読み出し、前者を後者で補正した歩容データに基づいて、ロボット100に内蔵されているアクチュエータを制御する。
【0024】
本実施例では、ロボット100が歩行する床面全体にフォースプレート26が埋設されている。フォースプレート26は、圧力センサが格子状に配置されたものである。このフォースプレート26上に物体が置かれると、フォースプレート26上での物体の位置と、フォースプレート26と物体が接触している箇所の圧力を検知することができる。アクチュエータ制御部24により実際にロボット100をフォースプレート26上で歩行させると、フォースプレート26によって、ロボットの足平が床のどこに接触しているかが検知される。
【0025】
接触時点特定部28は、フォースプレート26からの信号と、アクチュエータ制御部24からの当初歩容データを同時に取り込む。フォースプレート26からの信号により、各時点においてロボット100の足平が床と接触している位置を判別する。また取り込んだ当初歩容データにより、各時点での各脚の状態(遊脚か否か、またその足平位置)を判別する。
フォースプレート26からの信号により判別された足平が接触した床面上の位置と、当初歩容データ上におけるいずれかの脚の足平の位置がほぼ同位置である場合、その足平が床に接触していると判別できる。この時点での脚の当初歩容データ上での足平目標位置が床面より上方に設定されていれば、遊脚となるはずの足平が床に接触してしまったことが判別できる。
接触時点特定部28によって、遊脚となるべき脚の足平が床と接触していると判断された場合には、その時点を当初歩容データ上で特定する。特定された時点は、補正量設定部30に送られる。補正量設定部30は、特定された時点における当初歩容データ上のいずれかの代表点目標位置を、遊脚となるべき脚の足平が床から離れる方向に補正する補正量を設定する。設定された補正量は、その補正量を加えるべき当初歩容データ上の時点を特定するデータとともに補正量データ記憶部32に記憶される。補正量をどのように設定するかについては後述する。
【0026】
次に図2を用いてアクチュエータ制御部24内部での処理を説明する。
アクチュエータ制御部24は、歩容データ記憶部34から当初歩容データ40を読み込む。また補正量データ記憶部32から補正量データ42を読み込む。読み込まれた夫々のデータは加算されて加速度演算部44に送られる。当初歩容データ40に補正量データ42を加算したデータは、補正後の歩容データに相当する。補正量データ42には、経時的データである当初歩容データに対して補正量を加えるべき代表点目標位置、補正量を加えるべき時点、および補正量の大きさが記述されている。従って当初歩容データ40に対して補正量データを加算することができるのである。
【0027】
加速度演算部44は、補正量データ42が加算されて補正された歩容データから各時点における代表目標位置の加速度目標値を算出する。一方、ロボット100aの所定の位置には加速度センサ50が取り付けられている。この加速度センサ50の値から、ロボット100aの代表点の加速度を検出する。算出された加速度目標値から検出された加速度を減算したものがフィードバック制御部46に送られる。フィードバック制御部46にはPID制御等の制御回路が組まれており、結果としてロボット100aの代表点に与えるべき各サンプリング毎の加速度目標値が算出される。算出された加速度目標値は、目標値変換部48で代表点の加速度目標値からロボット100aの各関節の加速度目標値へと変換される。この各関節の加速度目標値がロボット100aの各関節に取り付けられたサーボモータ(アクチュエータ)への指令値となってロボット100aが動作する。
【0028】
当初歩容データ40はまた、アクチュエータ制御部24から接触時点特定部28へと送られる。前述したように接触時点特定部28は、各時点における当初歩容データとフォースプレート26からの出力値に基づいて、遊脚となるはずの脚の足平が床に接触した時点を特定する。
なお、図1において、歩容データ記憶部34が当初歩容データを記憶する装置に相当する。またアクチュエータ制御部24がロボットを歩行させる手段の一態様に、接触時点特定部28が当初歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する手段の一態様に、補正量設定部30が当初歩容データを補正する手段の一態様に相当する。
また本実施例1では足平が床へ接触したことを検知する手段として床に埋設されたフォースプレート26を用いた。この代替としてロボットの足平裏側に圧力センサなどの接触センサを用いることも可能である。またロボット足首に6軸力センサを組み込んで用いることも可能である。
【0029】
次に図3のフローチャートを用いて実施例1のロボット制御の処理を説明する。
まずステップS100で当初歩容データを歩容データ記憶部34から読み込む。この当初歩容データにはロボット代表点のひとつが足平の所定の位置に設定されたデータが含まれる。すなわちこの歩容データには足平の目標位置の経時的変化のデータが含まれる。
次にステップS102で補正量の初期化を行う。例えば、歩容データ上での開始時点で補正量ゼロの初期値を与えて初期化する。なお、実施例1では補正量を設定する対象となる歩容データ上でのパラメータを予め設定しておく。ここでは遊脚の足平目標位置の姿勢目標角のひとつであるピッチ角を、足平の先端部が床から離れる方向に所定量ずつ補正量を増加させるように設定しておく。なお足平目標位置のピッチ角については図4に基づいて後述する。
【0030】
次にステップS104では、読み込んだ当初歩容データと補正量ゼロで初期化された補正量(足平目標位置ピッチ角の補正量)に基づいてロボットを歩行させる。すなわち最初にロボットを歩行させる際は補正量なしで当初歩容データだけでロボットを制御することになる。
ステップS106では、ステップS104でロボットを歩行制御している間に、歩行データ上では遊脚となるべき脚の足平が床に接触したか否かを判断する。この判断は以下のようにして行われる。接触時点特定部28はフォースプレート26からの信号と、アクチュエータ制御部から当初歩容データとを同時に取り込む。フォースプレート26からの信号により、各時点においてロボット100の足平が床と接触している位置を判別する。また取り込んだ当初歩容データにより、各時点での各脚の状態(遊脚か否か、またその足平位置)を判別する。なお、通常ロボットが歩行する床(歩行面)の面内にX軸とY軸を定め、床面に垂直方向にZ軸を定めた座標系を絶対座標系として採用する。そして当初歩容データには絶対座標系に対する足先の目標位置の経時的データが記憶されており、各時点での足先目標位置(姿勢含む)と足平の形状データから足平リンクにおけるZ軸方向の最下点の座標値が求まる。最下点の座標値が正の値をとればその脚は床面から離れており遊脚状態であると判断できる。
フォースプレート26からの信号により判別された足平が接触した床面上の位置と、その時点における当初歩容データ上でのいずれかの脚の足平の位置がほぼ同位置である場合、その足平が床に接触していると判別できる。この時点での当初歩容データ上での足平目標位置が床面より上方に設定されていれば、遊脚となるはずの脚が床に接触してしまったことが判別できる。
当初歩容データが終了するまで遊脚となるべき脚の足平が床に接触しなかった場合(ステップS106:NO)、補正量は不要であるのでそのまま終了する。
【0031】
ステップS108では、ステップS106で遊脚となるべき脚の足平が床に接触したと判断された場合(ステップS106:YES)、接触したときの当初歩容データ上の時点を特定する。そしてステップS110において当初歩容データ上で特定された時点と、補正量データ上での時点とを対応付ける。例えば当初歩容データ上では歩行開始10分後に右脚が遊脚となるように右脚の足平目標位置が設定されていたが、その時点で右脚足平が床に接触したと判別された場合、補正量データとして歩容データの開始から10分後の足平目標位置のピッチ角に対して足平先端が床から離れる方向に補正量を加えるように対応付けられる。
そしてステップS112には初期化でゼロに設定された補正量(足平目標位置のピッチ角補正量)に所定値を加算する。所定値とは補正の対象とするパラメータにより異なる。本実施例では足平目標位置のピッチ角を補正対象としたので、所定値とは例えば5度に設定される。また足平目標位置の垂直方向位置を補正対象とするときには、所定値が例えば2cmに設定される。
【0032】
次にステップS114では、特定された当初歩容データ上での時点、例えば当初歩容データ上での歩行開始から遊脚足平が床へ接触するまでの所要時間、および補正対象パラメータとその補正量が補正量データとして補正量データ記憶部32に記憶される。
ステップS114で補正量データが記憶されると再びステップS104に戻り当初歩容データが終了するまで繰り返す。
【0033】
さらに当初歩容データの最後まで前述の処理を繰り返した後に、当初歩容データの最初に戻ってステップS104からステップS114の処理を繰り返すことも好適である。このときの処理を以下説明する。
【0034】
ステップS104では読み込んだ当初歩容データと補正量データ記憶部32に記憶された補正量を用いてロボット100を歩行させる。
補正量で補正された当初歩容データによっても遊脚となるべき脚の足平が床に接触したと判断された場合(ステップS106:YES)、その接触した時点を当初歩容データ上で特定する(ステップS108)。そしてステップS110において当初歩容データ上で特定された時点と、補正量データ上での時点とを対応付ける。ここで、対応付けた時点においてすでに補正量が設定されていれば、先に設定された補正量では遊脚の床との接触を回避するには不十分であることが検証される。そこでステップS112により前回の補正量に対して前述した所定量を加算する。最後に加算された補正量と、補正量を加えるべき当初歩容データ上での時点を補正量データ記憶部32に記憶する(ステップS114)。記憶させる際、当初歩容データ上で特定された補正すべき時点と補正量は先に設定されたデータが記憶されているがこの先のデータを新たなデータで更新する。
【0035】
上記ステップS104からステップS114の処理を当初歩容データの開始から終了まで数回繰り返すことで、当初歩容データでは床に接触してしまった遊脚となるべき脚が接触しなくなるまで補正量を徐々に増加させることができる。従って接触を回避することができるとともに、できるだけ小さな補正量を設定することが可能となる。補正量をできるだけ小さな値とすることで当初歩容データに近い状態でロボットを歩行させる制御を実現することができる。
【0036】
こうして最終的に遊脚の床への接触を回避することのできる補正量が決定されて、当初歩容データ上では遊脚となるはずの足平が床に接触することを回避する歩容データが完成する。この完成された歩容データによりロボットを制御することで遊脚が床に接触することなく、かつ当初歩容データにできるだけ近い状態でロボットを歩行させることができる。
【0037】
上記処理により、ロボットの撓みを考慮しないで作成した当初歩容データでロボットを歩行させた際、考慮しなかったロボットの撓みにより当初歩容データ上では遊脚となるはずの足平が床に接触した場合、遊脚足平の床への接触を回避する補正量を設定することができる。当初歩容データ上では遊脚となるはずの足平が床に接触した時点を歩容データ上で特定し、少なくともこの時点における補正量を設定する。すなわち遊脚の床への接触という、撓みの影響が意味をもつ範囲に補正量が限定されるので、補正するデータ数が少なくてすむ。また、補正量を計算して求める必要が無く、接地するか否かを検証することによって、遊脚の床への接触を回避する最小の補正量により補正することができる。こうして撓みの影響を排除する補正量を当初歩容データに対して設定するので、複雑な計算をしないでも、遊脚となるはずの足平が床に接触することを回避することが可能となる。また、上記処理ではロボットの撓みに関して演算を行わない。ロボットの撓みを推定する複雑な演算なしに遊脚となるはずの足平が床に接触することを回避する補正量を設定することができる。本実施例では以上の各処理は全てコンピュータにより自動処理される。
【0038】
なお、上記処理において、ステップS104の処理が「当初歩容データを用いてロボットを実際に歩行させる工程」の一態様に、ステップS106からステップS110までの処理が「遊脚となるはずの足平が床に接触した時点を特定する工程」の一態様に、ステップS112の処理が「当初歩容データを補正する工程」の一態様に相当する。
また、ステップS114で補正量を記憶後、ステップS104に戻り記憶された補正量と当初歩容データでロボットの歩行を実行させる処理が、「補正された歩容データを用いてロボットを実際に歩行させる工程」の一態様に、その後のステップS106からステップS110までの処理が「補正された歩容データ上では遊脚であるはずの足平が床に接触した時点を特定する工程」の一態様に、さらにその後のステップS112の処理が「補正された歩容データをさらに補正する工程」の一態様に相当する。
【0039】
また図3のフローチャートにおいて、S106の足平が床に接地するか否かの判断を目視にてすることも好適である。そしてその時点を歩容データ上で特定する工程およびその時点における補正量を設定する工程は操作者が自ら入力することも好適である。このようにしても同じ結果・効果が得られる。
【0040】
次に足平目標位置のピッチ角を例として補正量の設定と、この補正量により歩容データがどのように補正されるかについて図4、図5を用いて例示する。
まず図4により足平目標位置ピッチ角について説明する。ロボット100の脚先端のリンク部品である足平52とこれに接続されている下腿リンク54とが足首回転関節56で回転可能に連結されている。この足首回転関節56はロボット進行方向(又はロボット体幹前後方向)をX軸、垂直方向(又はロボット体幹上下方向)をZ軸とした座標系において足平52をXZ平面内で回転させる。また図4に符合60で示す点を足平の代表点とする。このとき足平のY軸(X−Z平面に対して垂直な軸)周りの姿勢角を足平目標位置の目標ピッチ角と定義する。換言すれば、XZ平面内で足平裏面が床面となす角62が足平目標位置の目標ピッチ角に相当する。なお図4には接地脚は図示を省略してある。
次にこの足平目標位置を足平が床から離れる方向に補正量を設定する具体例を説明する。下腿リンク54の目標位置(姿勢含む)を変更せずに、即ち足首関節56の位置を変更せずに足平ピッチ角が小さくなるように足平代表位置を図4に符号60aの位置となるよう補正量を設定すれば、足平目標位置ピッチ角は62aとなる。このとき図4に示すように補正量を加えた後の足平目標位置は破線52aに示す位置(姿勢)となる。足平位置52と足平位置52aを比較すると足平52aの足先が床から離れる位置となっている。すなわち当初歩容データ上の足平目標位置60(このときの足平目標ピッチ角は符号62で示される)を60aに示す位置(このときの足平目標ピッチ角は符号62aで示される)に補正する補正量を設定する。この補正量を当初歩容データに加算することで足平位置は床から離れる方向に補正することができる。なお、上記補正は換言すれば、足平目標位置(姿勢含む)を足首関節の周りに足平を上方に所定角だけ回転させた目標位置(姿勢含む)に補正する、ということができる。
【0041】
図4に示した補正量によると、当初歩容データ上の足平目標位置に補正量を加えても下腿リンク54からロボット胴部(体幹)にかけての脚の位置に影響はない。従って足平目標位置を補正量として選定すると、補正量によりロボットのその他のリンク群に与える影響を小さくすることができる。従って当初の歩容データにより近い状態で遊脚が床に接触することを回避してロボットを制御することができる。
【0042】
次に図5に基づいて、設定された補正量によりロボットの足平の運動が変化して遊脚時の床への接触が回避される様子を例示する。図5(A)には当初歩容データによる足平目標位置の経時的変化と実際のロボット足平の経時的変化を示す。図5(B)には補正量により床への接触が回避されたときの実際のロボット足平の経時的変化を示す。ロボットの進行方向は矢印70の方向である。また矢印70の方向は時間の経過方向ともいえる。
破線で示すa1からa8が当初歩容データ上での足平目標位置の経時的変化を表す。この足平目標位置の経時的変化は、a2の時点で離床し、a7の時点で着床する遊脚を表している。
実線で示すb1からb8までが実際のロボットの足平の経時的変化を表す。a1、a2、a6からa8までは当初歩容データに実際のロボットが完全に追従して動作しているのでa1、a2、a6からa8と、b1、b2、b6からb8は重なっている。当初歩容データ上では考慮されなかったロボットの撓みにより、a3からa5の当初歩容データ上での足平目標位置に対して、実際のロボット足平位置はb3からb5のように目標値に追従しきれていない。ここでb4の時点で、符号72で示す箇所で足平の先端が床に接触したとする。この時点が図3のフローチャート上のステップS108により特定される。そこでa4の足平目標位置を二点鎖線c4で示す位置となるように補正量が設定される(ステップS110、ステップS112)。本例示では、足平の先端が床から離れる方向に移動するよう補正量が設定される。
その結果、当初歩容データに補正量を加えた足平目標位置の経時的変化は図5(B)に破線で示すように、図5(A)のa1からa8に対してa4がc4に置き換わる。c4の足平目標位置に対してこれに実際のロボットが完全に追従せずともその時点でのロボットの実際の足平位置はd4に示すよう、符号74で示す分だけに床から離れた位置とすることができる。このように歩容データ上で遊脚が床に接触した時点を特定し、少なくともその時点での歩容データに補正量を設定することで、できるだけ小さい補正量により遊脚の床への接触を回避する歩容データを完成させることができる。
【0043】
<実施例2>
次に実施例2について説明する。この実施例2では、補正量を設定する工程において、当初歩容データ上で特定された、遊脚が床に接触する時点における補正量をまず設定する。そして特定された時点より前の期間で、設定された補正量に至るまで漸増する補正量を設定する。同時に特定された時点から後の期間で設定された補正量から漸減する補正量を設定する。換言すればこの補正量設定工程は、歩容データ上で特定された時点における補正量を最大値とし、特定された時点の前後所定期間で経時方向に対して漸増、漸減する経時的な補正量を設定するものである。この処理は図1のブロック図においては補正量設定部30で行われる。また図3のフローチャートではステップS112において実行される。
【0044】
この処理によって設定される歩容データ補正量と、その補正量により実現されたロボットの足平の経時的変化について図6に例示する。図6(A)には当初歩容データによる足平目標位置の経時的変化を破線a1からa8で示してある。また足平目標位置に対する実際のロボット足平位置の経時的変化を実線b1からb8で示してある。図5と同様に足平目標位置a4に対して実際のロボット足平位置は符号72で示す箇所で床に接触している。矢印70は図5と同様の意味である。
まず実施例1と同様にa4の時点における足平目標位置をc4となるように補正量を設定する。このとき設定された補正量を最大補正量と呼ぶことにする。次にa4の時点より前のa3の時点で最大補正量より小さい値の補正量をa3に対して設定する。またa4の時点より後のa5の時点で最大補正量より小さい値の補正量をa5に対して設定する。
当初歩容データ上の足平目標位置a3からa5に対して補正後の足平目標位置をc3からc4に二点鎖線で示す。遊脚が床に接触した時点での補正量を最大値とし、その前の期間で漸増するような補正量を設定し、接触した時点より後の期間で漸減するような補正量を設定することで、足平目標位置を経時的に滑らかに変化するように補正することができる。
この補正量により補正された歩容データに基づいた実際のロボットの足平位置の経時的変化を図6(B)に示す。補正された足平目標位置は図6(A)のa1からa8に対してa3、a4、a5がc3、c4、c5に補正される。その結果実際のロボット足平位置の経時的変化は次のように変化する。すなわち、図6(A)に示すb3、b4、b5の補正前の足平位置は、図6(B)に示すd3、d4、d5へと変化する。
【0045】
ここで実施例1の補正量の効果と実施例2の補正量の効果を比較してみる。
図5(B)に示した実施例1の補正によるロボット制御では、補正により、d4の時点の足平位置が上方へ移動し床への接触が回避されている。しかしその後のb5の時点では補正がないでのd4より床に近づいている。そしてb6の時点で足平全体はb5よりも上方に位置している。そしてb7で着床している。すなわち遊脚中にb5で床に近づいた足平は次のb6の時点で一旦上方に移動しその後b7の時点で着床する、という軌跡を描くことになる。
これに対して実施例2では図6(B)に示すようにd4の時点の次のd5の時点ではほぼ平行に足平位置は移動し、b6の時点で足平全体がやや下方に移動しながら足先が上方を向き、b7の時点で着床している。実施例2では、補正量設定前に遊脚が床に接触した時点(b4の時点)の次の時点でも足平目標位置を上方に補正したことにより、補正後の足平目標位置の経時的変化が滑らかとなっている。足平目標位置が滑らかに変化するので実際のロボットの動作も滑らかに変化する。よって、実施例2では遊脚が床に接触した時点の前後の所定期間に漸増・漸減する補正量を設定することで、より滑らかな歩行となるロボット制御を実現することができる。ここで所定期間は、予定外に床に接触してしまった脚の遊脚期間内で設定することが好ましい。遊脚期間中は床に対して拘束されるのが片足のみとなるため、各代表点位置の幾何学的拘束条件が緩やかとなる。結果補正量を設定可能なロボット代表点の数、または代表点位置に対する補正量を設定可能な範囲を大きく取れるからである。また遊脚期間前後の接地脚時のロボット各代表点の目標位置に対して補正量を設定しないので、補正量がロボットの歩行全体に及ぼす影響を小さくすることができるからである。
【0046】
なお実際には、歩容データ上のある一時点における足平目標位置を補正すると、その前後で加速度目標値が変化するため、補正した時点前後の実際の足平位置も変化する。図5および図6の例示ではこの加速度の影響は無視した。しかし補正量の値が小さければ加速度の変化も小さくなるのでロボット全体に与える影響も小さくなる。従って補正量はできるだけ小さい方がよいことには相違ない。また、図3のフローチャートにおけるステップS104からステップS114の処理を歩容データ全体にわたり数回繰り返すことで補正量の検証が行われる。この検証時点で加速度の影響により補正量が適正とならなければ(補正量によっても遊脚となるべき脚が床に接触してしまったなら)、さらに補正量が追加されるため、最終的には加速度変化の影響も含めて滑らかな歩行を実現する補正量が得られる。
【0047】
<実施例3>
次に実施例3として補正量を設定する対象の歩容データとして、体幹(胴部)の重心位置を設定した場合を例示する。この実施例では体幹の重心位置がロボットの代表位置として設定されている。すなわち歩容データにはこの体幹の重心位置の目標値(体幹目標位置と称する)の経時的変化が記述されている。ここで体幹の重心位置とは体幹に揺動可能に連結されているリンクを除く、体幹に固定された部品により決定される重心位置を意味する。その意味では例えば体幹に対して揺動可能に連結されている両腕の姿勢を体幹に対して固定した状態で算出された重心位置であってもかまわない。換言すれば、代表位置とはあるリンクに対して固定された点であればよい。
【0048】
実施例3の装置のブロック図および処理のフローチャートは図1および図3と同様であるので説明は省略する。
図7に体幹位置と脚の関係を模式的に示す。図7(A)にロボット100の上面図を、図7(B)に正面図を示す。なお両腕と頭部は図示を省略した。
体幹(胴体)80の重心位置82はこの体幹80に揺動可能に連結された各リンクを除く体幹だけの質量分布から算出されたものである。従ってロボット各リンクの姿勢に係わりなく体幹80の形状に対する重心位置82は不変である。この体幹重心位置82を単に体幹位置82と呼ぶことにする。この体幹位置82はロボットの代表点のひとつとして設定される。
体幹80には幾つかの関節とリンクで構成された左脚84aが連結されておりその先端に左足平86aが連結されている。同様に体幹80には右脚84bが連結されておりその先端に右足平86bが連結されている。なお、図7(A)の上面図では左右の脚84a、84bは図示を省略してある。
【0049】
図8にはロボット100を歩行させた際、接地脚となった左右の足平86a、86bの位置を上から見た様子を経時的に示してある。いわばロボット100の足跡を示したものである。ロボット進行方向は矢印90で示す方向とする。即ちロボット左足平86aが86a1の位置で接地した後、右足平86bが86b1の位置で接地する。次に左足平86aが86a2の位置で接地して次に右足平86bが86b2の位置で接地する。同様に次に左足平86aが86a3の位置で接地する。
ここで例えば左足平86aが86a2の位置で接地しているとき、区間92で右脚84bが遊脚となる。また右足平86bが86b2の位置で接地しているとき、区間94で左脚84aが遊脚となる。
上記歩行動作時、図8に破線95で示す曲線が体幹位置82の当初歩容データ上での軌跡、換言すれば当初歩容データ上での体幹目標位置の経時的変化を示すものである。
【0050】
実施例3は、当初歩容データには破線95で示す体幹目標位置の経時的変化のデータが含まれている際、この当初歩容データで実際のロボットを歩行させた場合に遊脚となるべき脚の足平が床に接触してしまった場合の体幹目標位置に対して補正量を設定するものである。
体幹位置の補正量は、遊脚となるべき脚の足平が床に接触した時点において、体幹目標位置をロボット体側方向の接地脚側に補正するように設定する。
例えば右脚84bの遊脚期間92において右足平86bが床に接触した場合、その時点での体幹位置を矢印98で示す実線96の位置へ移動させるように補正量が設定される。すなわち矢印98が補正量そのものを示している。そして左脚84aの遊脚期間94において左足平86aが床に接触してしまった場合にも同様に補正量が設定される。ここで例えば、破線95で示す体幹目標位置の当初歩容データでは常に遊脚が床に接触してしまう場合を仮定する。そして遊脚の足平が床に接触した時点の前後で漸増・漸減する補正量を設定したとする。このとき歩容データに補正量を加えた体幹目標位置の軌跡は、図8に実線96に示すようになる。この補正された体幹目標位置の経時的変化によると、右脚86bが遊脚期間にあるときは体幹目標位置がロボット体側方向でより左脚86a側(接地脚側)に移動している。従って体幹の重心位置もより左脚86a側に移動することになり、ロボット100を右足86b側(遊脚側)へ傾けるモーメントが小さくなる。よってロボット100の遊脚側への傾きが小さくなり、右脚(86b)の足平位置も上方へ移動する。
上記結果、補正された体幹目標位置によってロボットを制御すればロボットは遊脚を床へ接触することなく歩行させることが可能となる。さらに図8に実線96に示すように補正後の歩容データも滑らかなものとなり、これを体幹目標位置とするロボットの歩行も滑らかなものとなる。
【0051】
図8の当初の歩容データ中の体幹目標位置の経時的変化(破線95)と補正量を加えた体幹目標位置の経時的変化(実線96)を比較すると、補正量を加えた場合、ロボットの体幹がやや左右に揺れながら歩行する格好となる。しかし実施例1で説明したように図3のフローチャートにおけるステップS104からステップS114の処理を歩容データ全体に対して数回繰り返すことで、できるだけ小さい補正量を設定することが可能となる。従ってこれにより実現されたロボットの歩行は左右の振れもできるだけ小さく抑えられたものとすることができる。
【0052】
なお、実施例3では他のリンク群を含まない体幹だけの重心位置を代表点とした。これは補正量の設定を容易にするためである。この他に、体幹以外のリンク群を含めたロボット全体の重心位置を代表点として選定することも可能である。但しこの場合、補正量を加えるべき対象とするパラメータには複数のパラメータが考えられる。例えば上述したように体幹目標位置そのものを接地脚側に移動させる向きの補正量を設定することが考えられる。その他に接地脚側の腕を接地脚側に向けて水平方向へ上げるよう補正量を設定してもロボット全体の重心位置は接地脚側へ移動させることができる。
【0053】
そこで、ロボット全体の重心位置を代表点として選定する場合は図3に示すフローチャートの処理を次のように変更することで対応できる。すなわち、遊脚となるべき脚の足平が床に接触したとき、歩容データ上での接触時点を特定する(ステップS108)。次にこの接触時点と補正量データ上での時点を対応付ける(ステップS110)。この次に再びステップS104へ戻る。そして歩容データが終了するまでこの処理を繰り返す。歩容データ上の遊脚が床に接触したら、そのたびごとに歩容データ上での接触時点と補正量データ上での時点を対応付ける。こうして歩容データが終了した時点で遊脚が床に接触した時点と補正データ上での時点とが対応付けられたデータが得られる。このデータには遊脚が床に接触した時点が複数回記憶される場合もある。但しこの時点では補正量そのものは設定されていない。こうして得られたデータに対して、事後的に、遊脚が床に接触した時点におけるロボット全体の重心位置を接地脚側に移動させるように適切なパラメータを選定して補正量を設定する。上記処理は換言すれば、遊脚が予定外に接触するタイミングを歩容データの全体にわたって特定した後に、特定された時点毎に歩容データを補正する。これにより歩容データの全体に対する補正作業を1サイクルで行うことができるので、歩容データの完成までの時間と労力が節約される。
またこのとき補正量の設定はロボット歩行終了後オフラインで行えるので、ロボット全体の重心位置を接地脚側に移動させるためには、どのパラメータにどの程度補正量を加えたら良いか検討を加えながら補正量を設定することができる。
【0054】
以上実施例1および実施例2では足平目標位置を補正量設定の対象とする例を示した。また実施例3では体幹目標位置(より具体的には胴部の重心目標位置)を補正量設定の対象とする例を示した。しかし補正量を設定する対象のパラメータは足平目標位置や体幹目標位置に限らない。例えば補正量として遊脚の足平目標位置の3次元位置を単に上方に移動させるように設定することも可能である。また、実施例では当初歩容データと補正量データを分離して夫々図1に示す歩容データ記憶部34、補正量データ記憶部32に記憶した。そしてロボットを制御する時点で図2に示すように補正量をフィードフォワード的に加算した。このように当初の歩容データと補正量データを分離して記憶しておくと、当初の歩容データをそのまま保存できるという利点がある。その一方で夫々に記憶部を用意しなければならない。そこで設定された補正量により直ちに歩容データを補正するように構成してもよい。
【0055】
なお、以上の実施例により当初歩容データとこれに補正量を加算する補正量データにより歩容データは完成する。脚式ロボットの通常の歩行制御方法では、完成した歩容データをロボットに教示する。しかしながら、補正量を徐々に増やしながら遊脚の予定外の接地を避けるのに必要な最小の補正量を探索する場合には、補正前の当初歩容データに補正量を対応付けて記憶する方式が好ましい。従って、脚式ロボットの歩行を制御する方法でも、補正前の当初歩容データとその歩容データに対応する補正量をロボットに教示する工程と、補正前の歩容データをそれに対応する補正量で補正した歩容データから関節角を演算する工程を備えていることが好ましい。補正された歩容データに従ってロボットが動作したときに撓みが加わり、当初の歩容データが記述する運動を実現させることができるからである。
【0056】
また当初歩容データを補正する工程では、当初歩容データ内のいずれかの代表点の目標位置を補正することも好適である。例えば足先に代表点が設定されていればその足先目標位置を上方に所定量だけ補正する、あるいは体幹(胴部)に代表点が設定されていればこの体幹目標位置を上方に補正することなどが考えられる。また遊脚となるはずの脚と反対側の腕の手先目標位置を体幹体側方向外側へ補正することも好適である。これによりロボット全体の重心位置がロボット体側方向に遊脚と反対側に移動するので、ロボットの遊脚側への傾きを小さくすることができる。よって遊脚全体が上方に移動し、遊脚とはるはずの足平が床へ接触することを回避することができる。
またロボットを実際に歩行させる床(歩行面)は略平坦であることが好ましい。ここで略平坦とはロボットがぶつかる障害物にならない程度の凹凸があってもかまわない。ロボットが連続して歩行する際に、各歩行期間(ロボット両脚の相対位置関係がある相対位置関係となった時点から同じ相対位置関係になるまでの期間)における歩行面が同等であれば良い。なお歩行面は水平である必要はなく、各歩行期間での歩行面の状態(凹凸など)が同等の条件であればよい。当初歩容データを補正する工程を繰り返す際、同じ状態の歩行面で行うことが好ましいからである。
【0057】
さらに床(歩行面)は水平面に対して傾いた面であってもかまわない。この場合、当初歩容データには、所定の座標系における足平に設定された代表点目標位置の経時的データが含まれており、各時点の前記足平の、足裏面(床と接触する面)の位置を特定する工程を含むことが好ましい。そして所定の座標系に対する、ロボットが実際に歩行する床(歩行面)の位置を特定するデータを記憶する記憶装置から、前記歩行面の位置を読み出す工程と、前記「各時点の前記足平の、足裏面」と前記歩行面とが交差しない場合に、その足平を有する脚が歩容データ上では遊脚であるはずと判断する工程を含むことが好ましい。ロボット足裏面と、歩行面とが交差しない場合にその足平を有する脚が遊脚であるはずと判断することによって、歩行面が傾斜している場合でも、歩容データ上では遊脚であるはずか否かを特定することができるからである。ここで所定の座標系とは水平面内に直交する2軸を有し、鉛直方向に1軸を有する3次元座標系でもよいし、傾いた床面内に直交する2軸を有し、この床面に垂直な方向に1軸を有する3次元座標系でもよい。また歩容データ内の代表点目標位置を表す座標系と床面とを位置を特定する座標系とが異なっていても両座標系間の関係が既知であれば、足平リンクの代表点目標位置すなわち足裏面と床面とを同じ座標系で表現することができる。同じ座標系で表現できれば足裏面と床面とが交差するか否かも判断することができる。
【0058】
また実施例では、足平代表点の座標と足平リンクの形状とから足平リンクの床面に対する最下点の座標を求めた。この最下点の座標が床面より上方であればその脚は遊脚であるはず、と判定できる。これに替わって当初歩容データ上で、各時点におけるロボットの夫々の脚が遊脚状態(床から離れている状態)であるか否かのデータが予め記憶装置に記憶されており、このデータに基づいて、当初歩容データ上の各時点において夫々の脚が遊脚であるはずか否かを判断する工程、を備えていることも好適である。夫々の脚が遊脚であるはずか否か、予めデータとして有していれば、ロボットを実際に歩行させた際に、夫々の脚が遊脚であるはずか否かを計算することなく判断することができるからである。当初歩容データを作成する際には、夫々の脚がいつ接地脚となるかまたは、いつ遊脚となるか、を計画しながら考作成される。従って当初歩容データを作成する際に、当初歩容データ上の各時点におけるロボットの夫々の脚が遊脚状態であるか否かのデータを同時に作成することが可能である。
【0059】
実施例1から3は、歩容データ上では遊脚となるべき脚の足平が実際には床に接触した場合に、歩容データを補正する補正量を設定してロボット制御する場合を例示した。しかし本発明は遊脚となるべき脚が床に接触した場合に限らず、歩容データ上での想定外に遊脚が床以外の物体に接触してしまう場合にも適用可能である。その場合の処理は図3に示すフローチャート図において、遊脚となるべき脚が物体と離れる方向にいずれかの代表点目標位置を補正する補正量を設定すればよい。
【0060】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【0061】
【図1】実施例1のロボット制御装置のブロック図である。
【図2】アクチュエータ制御部のブロック図である。
【図3】実施例1のロボット制御のフローチャート図である。
【図4】足平ピッチ角を説明する図である。
【図5】補正量設定前後の足平位置の経時的変化を説明する図である。
【図6】実施例2による補正量設定前後の足平位置の経時的変化を説明する図である。
【図7】ロボットの模式的正面図と上面図である。
【図8】実施例3による補正量設定前後のロボット体幹目標位置の経時的変化を説明する図である。
【図9】ロボットの傾きにより遊脚が床に接触する様子を説明する図である。
【符号の説明】
【0062】
10:ロボット歩行制御装置
20:歩容データ作成部
24:アクチュエータ制御部
26:フォースプレート
28:接触時点特定部
30:補正量設定部
32:補正量データ記憶部
34:歩容データ記憶部
44:加速度演算部
46:フィードバック制御部
48:歩容生成部
50:加速度センサ
52、52a、86a、86b:足平
95:歩容データ中の体幹目標位置の経時的変化を示す曲線
96:補正量設定後の体幹目標位置の経時的変化を示す曲線
100:脚式ロボット




 

 


     NEWS
会社検索順位 特許の出願数の順位が発表

URL変更
平成6年
平成7年
平成8年
平成9年
平成10年
平成11年
平成12年
平成13年


 
   お問い合わせ info@patentjp.com patentjp.com   Copyright 2007-2013