(57)【特許請求の範囲】
【請求項１】
脚式ロボットの各脚に備えられた足平に固定された基準点の位置の時系列的変化を示す歩容データを作成する方法であり、
足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、
立脚の足平に定められた基準線と遊脚の足平に定められた基準線とが遊脚が着地する際になす角度（以下、着地目標角度という）を設定する工程と、
立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と着地する際の遊脚の足平の基準点との間の距離（以下、角度依存距離という）を着地目標角度に応じて算出する工程と、
立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地する際の遊脚の足平の基準線に平行に伸びる第１の直線を計算する工程と、
前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる第２の直線を計算する工程と、
遊脚の足平の基準点を着地させる目標位置（以下、着地目標位置という）を、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域（以下、着地許可領域という）に設定する工程と、
を含むことを特徴とする歩容データ作成方法。
【請求項２】
前記角度依存距離を算出する工程は、足平の外周に接する矩形を設定し、
前記角度依存距離は、足平の基準点から爪先に相当する前記矩形の一辺までの距離に着地目標角度の正弦を乗じた距離と、足平の基準点から足平の内側に相当する前記矩形の一辺までの距離に着地目標角度の余弦を乗じた距離と、所定距離を加算した距離であることを特徴とする請求項１に記載の歩容データ作成方法。
【請求項３】
遊脚の足平の基準点の着地目標位置を設定する工程は、
着地目標角度から着地可能領域を演算し、着地許可領域内でかつ着地可能領域内に遊脚の足平の基準点の着地目標位置を設定することを特徴とする請求項１又は２に記載の歩容データ作成方法。
【請求項４】
着地目標角度がゼロのときの着地可能領域は、遊脚を爪先方向に最大に振り出して着地するときと踵方向に最大に振り出して着地するときの足平の基準点間の距離を長径とし、遊脚を側方に最大に振り出して着地するときと前記側方とは反対の方向に最大に振り出して着地するときの足平の基準点間の距離を短径とする楕円であり、
着地目標角度が最大のときの着地可能領域は、長径と短径が略ゼロの点であり、
着地目標角度が中間値のときの着地可能領域は、前記楕円と点を前記中間値で按分した楕円であることを特徴とする請求項３に記載の歩容データ作成方法。
【請求項５】
脚式ロボットの各脚に備えられた足平に固定された基準点の位置の時系列的変化を示す歩容データを作成する方法であり、
足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、
立脚の足平に定められた基準線と遊脚の足平に定められた基準線とがなす角度を設定する工程と、
前記工程で設定された角度から、立脚の足平と遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と遊脚の足平の基準点とを着地面へ投影した際の両基準点の間の距離（以下、角度依存距離という）を算出する工程と、
遊脚の足平の基準点の移動軌跡を着地面へ投影した軌跡が、立脚の足平の基準点を中心とするとともに半径が前記角度依存距離に等しい円と接する弧を描く遊脚の足平の基準点の軌跡を設定する工程と、
を含むことを特徴とする歩容データ作成方法。
【請求項６】
前記角度依存距離を算出する工程は、足平の外周に接する矩形を設定し、
前記角度依存距離は、足平の基準点から爪先に相当する前記矩形の一辺までの距離に前記「角度を設定する工程」で設定された角度の正弦を乗じた距離と、足平の基準点から足平の内側に相当する前記矩形の一辺までの距離に前記「角度を設定する工程」で設定された角度の余弦を乗じた距離と、所定距離を加算した距離であることを特徴とする請求項５に記載の歩容データ作成方法。
【請求項７】
脚式ロボットの各脚に備えられた足平に固定された基準点の位置の時系列的変化を示す歩容データを作成する装置であって、
足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、
ロボットの歩行経路の曲率半径から、立脚の足平の基準線と遊脚の足平の基準線とが遊脚が着地する際になす角度（以下、着地目標角度という）を設定する手段と、
立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と遊脚の足平の基準点との間の距離（以下、角度依存距離という）を着地目標角度に応じて算出する手段と、
立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地するときの遊脚の足平の基準線に平行に伸びる第１の直線を計算する手段と、
前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる第２の直線を計算する手段と、
遊脚の足平の基準点を着地させる目標位置を、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域に設定する手段と、
を有することを特徴とする歩容データ作成装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、体幹（胴部）に複数本（典型的には２本）の脚リンク群が揺動可能に連結されている機械（ロボット）を歩行させるための歩容データを作成する技術に関する。特に遊脚の足平が立脚に干渉しない歩容データを高速に作成する技術に関する。
【背景技術】
【０００２】
体幹と脚リンク群の相対的姿勢を変化させることによって歩行するロボットが開発されている。このロボットは歩容データを用いて歩行する。歩容データには、体幹に固定されている基準点の位置の時系列的変化を示すデータと足平に固定されている基準点の位置の時系列的変化を示すデータが含まれる。体幹の基準点の位置が特定されれば、体幹の位置が特定され、足平の基準点の位置が特定されれば、足平の位置が特定される。
足平の基準点の位置の時系列的変化を示すデータは、ロボットができるだけ円滑に歩行できるように作成されるべきである。そのためには、足平の基準点の位置の時系列的変化を着地面に投影した軌跡が、着地位置から次の着地目標位置に向けてできるだけ最短距離で移動するように作成することが好ましい。
その一方において、遊脚の足平が立脚に干渉する（接触する）歩容データを作成してはならない。ロボットがカーブする歩行経路に沿って歩行する場合には、遊脚を次の着地目標位置に向けて振り出している間に、遊脚が立脚に接触しやすい。歩行経路がカーブする場合には、足平の基準点の移動軌跡を着地面に投影した軌跡が最短距離をたどっていることと、脚リンク同士の干渉を回避することとを両立させる必要が特に高くなる。
【０００３】
脚リンク同士が干渉しないようにするためだけなら、歩行中の足平の着地目標位置を、干渉が生じ得ないほどに十分に離れた位置とすることで干渉しないようにすることができる。いわゆるガニマタ状態でロボットを歩行させれば、脚リンク同士が干渉することはない。しかしこの場合、ロボットを円滑に歩行させることはできない。
【０００４】
ロボットを実際に歩行させるに先立って事前に歩容データを作成する場合には、まずロボットの歩行動作ができるだけ円滑となるよう歩容データを作成する。次にロボットの脚リンク群と、それらを連結する関節の幾何学的構成をモデル化し、作成した歩容データに従ってロボットを歩行させた際に、脚リンク同士が干渉するか否かをチェックする。いずれかのリンクが他のリンクと干渉することが判明した場合、歩容データを修正する。修正した歩容データに対して干渉チェックを繰り返す。繰返し干渉チェックをしながら歩容データを完成するので、歩容データを完成するのに膨大な計算時間が必要とされる。
【０００５】
特許文献１に、脚リンク同士が干渉しない各関節の目標関節角を算出するために、評価関数を利用する技術が開示されている。特許文献１の技術では、評価関数を満足するロボットの各関節の目標関節角を、反復計算法によって求める。
【０００６】
【特許文献１】特開２００２−２９２５８５号公報（請求項１、段落００１０、図５）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
特許文献１の技術によると、従前の干渉チェック方法による場合よりは高速に、脚リンク同士が干渉しない各関節の目標関節角を算出することができる。しかし特許文献１の技術でも、反復して計算を行う必要があり、高速化には限界がある。特に、ロボットを歩行させながら、人がロボットの歩行方向や歩行スピード等を指示する場合、すなわち人がリアルタイムにロボットの歩行を指示する場合、人の指示に基づいて歩容データを作成するまでの時間を短縮する必要がある。特許文献１に記載の反復計算方法では、計算時間が嵩む。脚リンク同士が干渉しないための歩容データの作成に時間がかかると、ロボットは次の動作に移れず、その場で停止してしまう。あるいはロボットの動作が緩慢となる。
ロボットを実際に動作させるのに先立って歩容データを作成する場合であっても、脚リンク同士が干渉しない歩容データをより高速に作成できる技術が必要とされている。事前の準備にかかる時間的コストを低減できるからである。
ロボットを円滑に歩行させることができ、かつ脚リンク同士が干渉しない歩容データを高速に作成する技術が必要とされている。
【課題を解決するための手段】
【０００８】
足平リンクの形状は、前後方向の長さが横方向の長さより長い形状をしている場合が多い。従って遊脚の足平をその基準点を中心として着地面内で回転させると、両足平間の距離は短くなり、足平同士が干渉しやすくなる。遊脚の足平の回転に応じて、足平間の距離を確保すれば、足平同士の干渉を回避できる。
本発明は、脚式ロボットの各脚に備えられた足平に固定された基準点の位置の時系列的変化を示す歩容データを作成する方法に具現化される。
本発明の歩容データ作成方法は、足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、立脚の足平に定められた基準線と遊脚の足平に定められた基準線とが遊脚が着地する際になす角度（以下、着地目標角度という）を設定する工程と、立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と着地する際の遊脚の足平の基準点との間の距離（以下、角度依存距離という）を着地目標角度に応じて算出する工程と、立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地する際の遊脚の足平の基準線に平行に伸びる第１の直線を計算する工程と、前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる第２の直線を計算する工程と、遊脚の足平の基準点を着地させる目標位置（以下、着地目標位置という）を、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域（以下、着地許可領域という）に設定する工程を含んでいる。
【０００９】
上記発明を図面に基づいて説明する。
図８は左右の足平を上から見た平面図である。図８において、１０Ｒは立脚の足平を示している。１０Ｌは遊脚の足平を示している。図８（Ａ）は両足平１０Ｒ、１０Ｌが進行方向にも進行方向に垂直な方向にも揃えられたときの状態を示す図である。なお図８において紙面上方がロボットの進行方である。直線Ｌ０は、立脚の足平１０Ｒに固定された基準線を示している。直線Ｌ１は、図８（Ａ）において遊脚の足平１０Ｌに固定された基準線を示している。この基準線は、足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるように各足平に対して設定される。ここで足平の前後方向とはロボットが両足平を揃えて直立姿勢をとったときの前後方向である。換言すれば足平の踵と爪先を通る直線ということもできる。また両足平の基準線Ｌ０、Ｌ１は、図８（Ａ）に示すように両足平１０Ｒ、１０Ｌを揃えたときに互いに平行となるように設定されている。さらに遊脚の足平１０Ｌの基準線Ｌ１は遊脚の足平１０Ｌに固定されている。従って遊脚の足平１０Ｌの方向の変化に応じて基準線Ｌ１の方向も変化する。
図８は、ロボットが時計方向に歩行方向を変える場合を例示しており、図８（Ｂ）の直線Ｌ２は、遊脚の足平１０Ｌが立脚の足平１０Ｒの基準線Ｌ０に対して角度Ａ１だけ回転したときの足平１０Ｌの基準線を示している。即ち図８（Ｂ）は、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線Ｌ２が角度Ａ１である場合を例示している。
図８（Ａ）の距離Ｄ０は、立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉（接触）しないために必要な最小距離を例示している。図８（Ｂ）に示すように、遊脚の足平１０Ｌの基準線Ｌ２と立脚の足平１０Ｒの基準線Ｌ０が非平行であると、遊脚の足平１０Ｌの基準点１０ＬＰと立脚の足平１０Ｒの基準点１０ＲＰの間の距離を距離Ｄ２まで広げないと、両足平間に最小距離Ｄ０を確保できないことがわかる。立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しないために必要な遊脚の足平１０Ｌの基準点１０ＬＰと立脚の足平１０Ｒの基準点１０ＲＰの間の距離Ｄ２は、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線Ｌ２がなす角度Ａによって変化することがわかり、角度Ａが大きいほど、立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しないために必要な遊脚の足平１０Ｌの基準点１０ＬＰと立脚の足平１０Ｒの基準点１０ＲＰの間の距離Ｄ２は大きくなることがわかる。即ち、遊脚の足平１０Ｌの基準点１０ＬＰを、立脚の足平１０Ｒの基準線と平行で距離がＤ２である直線Ｌ４（第２の直線）より立脚とは反対側（立脚から遠い側）で着地させれば、両足平同士が干渉（接触）することはない。即ち最小距離Ｄ０は、遊脚の足平１０Ｌが着地する際に立脚の足平１０Ｒとの接触を回避するのに必要な距離である。そして距離Ｄ２は、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線Ｌ２がなす角度Ａが変化する場合に距離Ｄ０を維持するために必要となる、立脚の足平の基準点１０ＲＰと遊脚の足平の基準点１０ＬＰの間の距離となる。
【００１０】
一方、図８（Ｂ）の円弧８４は、立脚の足平１０Ｒの基準点１０ＲＰの位置を中心とする、半径が距離Ｄ２に等しい円を示し、直線Ｌ３は、直線Ｌ２に平行で、円弧８４に接する直線（第１の直線）を示す。種々の実験によって、遊脚の足平１０Ｌの基準点１０ＬＰを直線Ｌ３（第１の直線）よりも立脚とは反対側（立脚から遠い側）で着地させると立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しづらいことが判明した。
また直線Ｌ３は、立脚の足平１０Ｒの基準点１０ＲＰからおろした垂線の長さが、距離Ｄ２に等しい線である。その距離Ｄ２は、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線Ｌ２がなす角度Ａによって変化する距離である。即ち距離Ｄ２は、立脚の足平の基準線と、遊脚が着地するときの遊脚の足平の基準線がなす着地目標角度Ａに依存して変化する距離（角度依存距離）である。
【００１１】
これらのことから、立脚の足平１０Ｒと遊脚の足平１０Ｌに夫々基準線を設定する。そして立脚の足平１０Ｒの基準線Ｌ０と遊脚が着地する際の遊脚の足平１０Ｌの基準線Ｌ２がなす角度Ａ（着地目標角度Ａ）を設定する（これはロボットの歩行経路の距離半径等から設定することができる）。そして立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離Ｄ０を維持するための、立脚の足平の基準点と着地する際の遊脚の足平の基準点との間の距離Ｄ２（角度依存距離Ｄ２）を着地目標角度Ａに応じて算出する。ここで角度依存距離Ｄ２は着地目標角度Ａに依存して変化する距離である。そして立脚の足平１０Ｒの基準点１０ＲＰの位置からおろした垂線の長さが角度依存距離Ｄ２に等しく、かつ遊脚が着地するときの遊脚の足平１０Ｌの基準線Ｌ２に平行に伸びる第１の直線Ｌ３を計算し、立脚の足平１０Ｒの基準点１０ＲＰの位置からおろした垂線の長さが角度依存距離Ｄ２に等しく、かつ遊脚側で立脚の足平１０Ｒの基準線Ｌ０に平行に伸びる第２の直線Ｌ４を計算し、前記第１の直線Ｌ３又は前記第２の直線Ｌ４よりも遊脚１０Ｌ側（立脚の足平１０Ｒより遠い側）の領域（着地許可領域）を設定し、遊脚の足平１０Ｌの基準点１０ＬＰの着地目標位置をこの着地許可領域内に設定するようにすれば、立脚と遊脚が干渉しないことが判明した。
この方法では、第１の直線Ｌ３および第２の直線Ｌ４を幾何学的関係から計算すればよく、計算を反復して繰返す必要がない。遊脚の足平１０Ｌの基準点１０ＬＰの着地目標位置を着地許可領域内に設定するだけで、立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しない歩容データが作成される。
【００１２】
図８（Ｃ）は、立脚の足平１０Ｒの基準線Ｌ０と遊脚が着地するときの遊脚の足平１０Ｌの基準線Ｌ５がなす着地目標角度Ａ２が図８（Ｂ）よりも大きい場合を示している。この場合も、着地目標角度Ａ２から、立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しないために必要な最小距離Ｄ０を確保するのに必要な遊脚の足平１０Ｌの基準点１０ＬＰと立脚の足平１０Ｒの基準点１０ＲＰの間の距離Ｄ３を計算し、立脚の足平１０Ｒの基準点１０ＲＰの位置を中心とする半径Ｄ３の円８６を求め、遊脚の足平１０Ｌの基準線Ｌ５に平行で、円８６に接する第１の直線Ｌ６を求め、立脚の足平１０Ｒの基準点１０ＲＰの位置からおろした垂線の長さが角度依存距離Ｄ３に等しく、かつ遊脚側で立脚の足平１０Ｒの基準線に平行に伸びる第２の直線Ｌ７を計算し、第１の直線Ｌ６又は第２の直線Ｌ７よりも遊脚側（立脚の足平１０Ｒより遠い側）の領域（着地許可領域）に、遊脚の足平１０Ｌの基準点１０ＬＰの着地目標位置を設定すると立脚の足平１０Ｒと遊脚の足平１０Ｌが干渉しづらいことが確認されている。
【００１３】
本発明は、両足平リンクが干渉することのない遊脚の足平の基準点の着地目標位置を明示的に設定するものではない。しかし、干渉を避けることのできる着地許可領域が判明することから、その領域内に着地目標位置を設定することによって、干渉しない歩容データの作成を可能とする。
ロボットがその歩行経路に沿って滑らかに歩行するためには、着地許可領域を画定する２本の直線に近い領域に着地目標位置を設定することが有利である。干渉を回避することができる範囲で、遊脚の側方運動が抑制された歩容データを作成することができる。
【００１４】
なお図８は左右の足平を上から見た図である。即ち左右の足平の基準点１０ＲＰ、１０ＬＰおよび左右の足平に固定された基準線Ｌ０、Ｌ１（Ｌ２、Ｌ５）を着地面に投影した図となっている。
左右の足平の基準点１０ＲＰ、１０ＬＰが足平の裏側の面内に固定されている場合は上記説明の通りとなる。左右の足平の基準点１０ＲＰ、１０ＬＰが足平の裏側の面内でなく、足平内部に固定されている場合には上記説明した第１の直線と第２の直線は以下のように計算できる。即ち、第１の直線は、立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地する際の遊脚の足平の基準線に平行に伸びる直線として計算できる。第２の直線は、前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる直線として計算できる。
またこの場合に着地許可領域は、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域と表現できる。
【００１５】
足平の形状が略矩形でない場合は、足平の外周に接する矩形を設定し、この矩形形状に基づいて角度依存距離を算出することが望ましい。足平の外周形状を矩形で近似した後、角度依存距離（図８（Ｂ）の場合では距離Ｄ２、図８（Ｃ）の場合では距離Ｄ３）は、足平の基準点から爪先に相当する前記矩形の一辺までの距離に着地目標角度の正弦を乗じた距離と、足平の基準点から足平内側に相当する前記矩形の一辺までの距離に着地目標角度の余弦を乗じた距離と、所定距離を加算した距離であることが好ましい。
図２から明らかに、遊脚の足平を回転させることによって遊脚の足平が立脚の足平に近づく距離ｄＤは、ＦＲ×ｓｉｎ（Ａ）+ＦＮ×ｃｏｓ（Ａ）−ＦＮに等しい。ここで、ＦＲは足平の基準点から爪先（に相当する矩形の一辺）までの距離であり、ＦＮは足平の基準点から足平外周の内側（に相当する矩形の一辺）までの距離である。
足平の基準点から爪先までの距離に着地目標角度の正弦を乗じた距離と、足平の基準点から足平の外周内側までの距離に着地目標角度の余弦を乗じた距離と、所定距離（上記式の−ＦＮを含めて両足平を接触させないための余裕を与える距離）を加算した距離を角度依存距離とすると、その外周形状を矩形で近似した足平同士の接触を防止することができる。
【００１６】
遊脚の足平の基準点の着地目標位置を設定する場合、歩行経路の曲率半径等からまず着地目標角度を設定し、次いでその着地目標角度から遊脚の足平の基準点の着地可能領域を演算し、脚リンク同士が干渉しないようにするのに必要な着地許可領域内で、かつ着地可能領域内に遊脚の足平の基準点の着地目標位置を設定する順序とすることが好ましい。
遊脚の足平の着地目標角度によって、脚リンク同士が干渉しないようにするために必要な着地許可領域が変化する。それのみならず、ロボットの立脚と遊脚の幾何学的関係から、遊脚の足平の着地目標角度によって、遊脚の足平の基準点が着地可能な領域も変化する。
図9において、１０Ｒは立脚の足平を示し、１０ＲＰはその基準点の位置を示す。図９（Ａ）の楕円９０は、着地目標角度がゼロ度であるときの着地可能領域を示している。着地目標角度がゼロ度であり、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線が平行である場合、ロボットは脚リンクの各関節を大きく回転させることができ、広い範囲の着地可能領域９０を有する。それに対して、図９（Ｂ）の楕円９２は、着地目標角度がＡ１であるときの着地可能領域を示している。着地目標角度がＡ１であり、立脚の足平１０Ｒの基準線Ｌ０と遊脚の足平１０Ｌの基準線Ｌ１が角度Ａ１で交わる場合、その関係が拘束条件となって、ロボットは脚リンクの各関節の回転範囲が制約される。その結果、着地可能領域９２は、着地目標角度がゼロ度のときの着地可能領域（図９（Ａ）の楕円９０内の範囲）よりも小さな楕円範囲に制約される。近似的に、楕円９２は楕円９０の相似形であり、縮小したものとすることができる。図９（Ｃ）の楕円９４は、着地目標角度が非常に大きな角度Ａ２であるときの着地可能領域を示している。着地目標角度がＡ２である場合、その関係が拘束条件となって、ロボットは脚リンクの各関節の回転範囲が強く制約される。その結果、着地可能領域９４は極めて小さな楕円範囲に制約される。近似的に、楕円９４は楕円９０の相似形であり、縮小したものとすることができる。着地目標角度を可能な最大角度にすると、その関係が拘束条件となって、ロボットは脚リンクの各関節の回転角度は一定値に規制される。その結果、着地可能領域は一点に絞り込まれる。
着地可能領域は着地目標角度に依存して変化し、着地目標角度がゼロに近いほど大きく、着地目標角度が大きいほど小さく、その間を着地目標角度に比例して相似的に拡大縮小する関係にある。
遊脚の足平の基準点の着地目標位置を設定する場合、歩行経路の曲率半径等からまず着地目標角度を設定し、次いでその着地目標角度から着地可能領域（図９の９０,９２,９４等）を演算し、足平同士が干渉しないようにするのに必要な着地許可領域（図８（Ｂ）において第１の直線Ｌ３又は第２の直線Ｌ４よりも立脚とは反対側の領域）でかつ着地可能領域（図９の９０,９２,９４等）内に、遊脚の足平の基準点の着地目標位置を設定する順序とすることが好ましい。
希望する歩行経路を足平同士が干渉しないように歩行するとともに実行可能な歩容データを短時間で作成することができる。
【００１７】
図９に例示するように、着地目標角度がゼロのときの着地可能領域は、遊脚を爪先方向に最大に振り出して着地するときと踵方向に最大に振り出して着地するときの足平の基準点間の距離を長径とし、遊脚を側方に最大に振り出して着地するときと前記側方とは反対の方向に最大に振り出して着地するときの足平の基準点間の距離を短径とする楕円で近似できる。着地目標角度が最大のときの着地可能領域は、長径と短径が略ゼロの点であり、着地目標角度が中間値のときの着地可能領域は、前記楕円と点を前記中間値で按分した楕円であるとすることが好ましい。
これによると、厳密な計算によって求めることのできる、着地目標角に依存する着地可能領域に対してこの領域を良く近似する着地可能領域を簡単に計算することができる。
【００１８】
脚式ロボットの遊脚の足平の空中軌跡（軌道）は、着地面に投影したときに直線的である必要はなく、立脚との干渉を避けるために必要なら、曲線的なものであってもよい。
この場合は、脚式ロボットの遊脚の足平の基準点の位置の時系列的変化を示す歩容データを作成するに当たって、足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、立脚の足平の基準線と遊脚の足平の基準線がなす角度を設定する工程と、前記工程で設定された角度から角度依存距離を算出する工程と、遊脚の足平の基準点の移動軌跡を着地面へ投影した軌跡が、立脚の足平の基準点の位置を中心とするとともに半径が前記角度依存距離に等しい円と接する弧を描く遊脚の足平の基準点の軌跡を設定する工程を含むことが好ましい。
上記方法では、立脚の足平と遊脚の足平とが着地面内でなす角度を取得する。この角度は遊脚の足平の着地目標角度でもよいが、それ以外の角度でもよい。例えば遊脚となった時点における、その脚の足平と立脚の足平がなす角度でもよい。取得した角度が大きいほど長くなる角度依存距離を算出する。ここで取得した「立脚の足平と遊脚の足平とが着地面内でなす角度」から算出される角度依存距離は換言すれば「立脚の足平の基準線と遊脚の足平の基準線とがなす角度」から「立脚の足平と遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と遊脚の足平の基準点とを着地面へ投影した際の両基準点の間の距離」と表現できる。
この角度依存距離は前述したものと等価である。そして遊脚の足平の基準点の移動軌跡を着地面内へ投影した軌跡が、立脚の足平の基準点の位置を中心とするとともに半径が前記角度依存距離に等しい円と接する弧を描く遊脚の足平の基準点の軌跡を設定する。
遊脚の足平の移動軌跡を着地面に投影した軌跡が、立脚の足平の基準点の位置を中心とする半径が角度依存距離に等しい円と接する弧を描けば、立脚の足平と遊脚の足平は干渉しない。さらに、着地面内に投影した遊脚の足平の軌跡に上記制限を設けると、足平だけでなく遊脚のリンクと立脚のリンクが干渉しないことが判明している。
【００１９】
この方法では遊脚が着地する際の両足平の干渉だけでなく、遊脚となった時点から着地するまでの軌跡において、遊脚の足平が立脚の各リンクに干渉することのない足平の基準点の移動軌跡、即ち歩容データを求めることができる。そのための条件が、上記した「立脚の足平の基準点の位置を中心とする半径が角度依存距離に等しい円に接する」という簡単な条件だけとなるので、遊脚の足平の基準点の移動軌跡を求める演算をより高速化できる。ロボットを歩行させながら歩行経路等を指示し、指示された歩行経路を歩行するための歩容データを計算するようなリアルタイム処理を行っても、遊脚の足平と立脚の各リンクとの干渉を回避するロボット動作を十分高速に計算することができる。
【００２０】
足平の形状が略矩形でない場合は、足平の外周に接する矩形を設定し、この矩形形状に基づいて角度依存距離を算出することが望ましい。足平の外周形状を矩形で近似した後、角度依存距離Ｄ２、Ｄ３は、足平の基準点から爪先に相当する前記矩形の一辺までの距離に「立脚の足平の基準線と遊脚の足平の基準線とがなす角度」の正弦を乗じた距離と、足平の基準点から足平内側に相当する前記矩形の一辺までの距離に「立脚の足平の基準線と遊脚の足平の基準線とがなす角度」の余弦を乗じた距離と、所定距離を加算した距離であることが好ましい。基準点と足平の外周形状を近似した矩形との関係を考慮することで、より正確に遊脚の足平が立脚の各リンクと干渉することのない軌跡を生成することができる。
【００２１】
また本発明は、脚式ロボットの各脚に備えられた足平に固定された基準点の位置の時系列的変化を示す歩容データを作成する装置としても具現化できる。この歩容データ作成装置は、足平の前後方向に伸びており、前記ロボットが両足平を揃えたときに互いに平行となるような基準線を各足平に対して定めるとともに、ロボットの歩行経路の曲率半径から、立脚の足平の基準線と遊脚の足平の基準線とが遊脚が着地する際になす角度（以下、着地目標角度という）を設定する手段と、立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と遊脚の足平の基準点との間の距離（以下、角度依存距離という）を着地目標角度に応じて算出する手段と、立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地するときの遊脚の足平の基準線に平行に伸びる第１の直線を計算する手段と、前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる第２の直線を計算する手段と、遊脚の足平の基準点を着地させる目標位置を、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域に設定する手段を有する。
【００２２】
この歩容データ作成装置は、ロボットに与えられる歩行経路の曲率半径から遊脚の足平の基準点の着地目標角度を設定する。この着地目標角度から、遊脚が着地する際に遊脚の足平と立脚の足平が干渉しない領域（着地許可領域）を設定する。遊脚が着地するときの足平の基準点の目標位置は、両足平が干渉しない領域（着地許可領域）に設定する。よって与えられた歩行経路に追従するようにロボットを歩行させる際、遊脚の着地時の足平が立脚の足平に干渉することのない歩容データを作成することができる。
さらにこの歩容データ作成装置は、簡単な計算によって遊脚が着地する際に遊脚の足平と立脚の足平が干渉しない領域（着地許可領域）を設定することができる。両足平が干渉しない歩容データを高速に作成できる。従ってリアルタイムにロボットの歩行経路が与えられる場合にも、両足平が干渉することなく歩行することのできる歩容データを作成することができる。
【発明の効果】
【００２３】
本発明によれば、遊脚が着地するときに遊脚の足平が立脚の足平に干渉することのない歩容データを高速に求めることができる。さらに立脚のリンクに干渉しない、遊脚の足平の移動軌跡（歩容データ）を高速に求めることができる。
【発明を実施するための最良の形態】
【００２４】
実施例の主要な特徴を列記する。
（第１形態）  着地可能領域を設定する際、着地目標角度がゼロ度と最大角度の中間値のときには、その中間値に対する着地可能領域は前記楕円と点を前記中間値で按分した楕円であるとすることが好ましい。この按分は、例えば着地目標角度に着地可能領域の楕円の長径と短径が比例するように設定することが好ましい。中間値における着地可能領域の設定をより高速化できる。
（第２形態）  足平の外周形状をその外周に接する矩形を設定する場合、両足平の基準点がロボット体幹方向に平行な同一直線上にあり、両足平の基準線が体幹の前後方向に平行な位置（いわゆる直立姿勢における足平の位置と姿勢）にあると仮定したときの、２辺がロボットの前後方向に平行で足平の外周に接する矩形を設定することが好ましい。このときの両足平の位置と姿勢は、ロボットがいわゆる直立姿勢となった場合の足平の位置と姿勢である。換言すれば、このときの両足平の位置と姿勢は、両足平の基準点が体側方向に平行な同一直線上にあり、両足平の基準線はこの直線に直交する。この状態で足平の外周形状を近似する矩形を設定すると、その矩形の２辺は足平の基準線に平行な矩形とすることができる。即ちロボットが直立姿勢となる際、体幹前後方向に平行な２辺と体側方向に平行な２辺を有する矩形状の足平を有すると想定する。これにより、足平の外周形状を近似した矩形から、角度依存距離を簡単に算出することが可能となる。
【実施例】
【００２５】
図面を参照して以下に実施例を詳細に説明する。
＜実施例１＞
以下本発明の実施例１を説明する。
まず図７を用いてロボット１００の概要を説明する。図７（Ａ）にロボット１００の平面図を示す。図７（Ｂ）にロボット１００の正面図を示す。ロボット１００は多数のリンクと、隣接するリンクを揺動可能に連結する関節から構成される。但し本発明ではロボットの脚部先端に取り付けられた足平リンク（以後、単に足平と称す）の動作に着目するため、図７ではロボットを簡略化して示してある。
図７（Ｂ）はロボット１００がいわゆる直立姿勢となったときの正面図である。ロボット１００の体幹（いわゆる胴体）１１０には左右の脚が連結されている。右脚の先端に右足平１０Ｒが連結されている。左脚の先端に左足平１０Ｌが連結されている。
図７（Ａ）のロボット１００の平面図に示すように足平１０Ｒ、１０Ｌの外周形状は略矩形形状をしている。
図７（Ａ）、（Ｂ）において図のＸ軸方向がロボットの正面方向である。図７（Ａ）では紙面下方がロボット正面方向である。従って図７（Ａ）において左足平１０Ｌの外周形状を表す矩形の下側の辺１３Ｌが爪先に相当し、矩形の上側の辺１５Ｌが踵に相当する。また図７（Ａ）の１０ＬＰは左足平１０Ｌに固定された基準点である。左足平１０Ｌにおいて、基準点１０ＬＰを通り、踵１５Ｌから爪先１３Ｌに伸びる直線１２Ｌが左足平１０Ｌの基準線である。同様に右足平１０Ｒに固定された基準点１０ＲＰを通り踵から爪先へ伸びる直線１２Ｒが右足平１０Ｒの基準線である。換言すれば基準線１２Ｌ、１２Ｒはロボットの足平の前後方向に伸びる直線である。ここで基準線１２Ｌ、１２Ｒはロボット１００が両足平を揃えた直立姿勢のときにＸ軸方向（ロボットの前後方向）に平行となるように足平１０Ｌ、１０Ｒに対して固定（設定）される。即ち基準線は、ロボットが両足平を揃えたときに互いに平行となるように各足平に対して定められる。また、左右足平１０Ｒ、１０Ｌに固定される基準点１０ＲＰ、１０ＬＰは、ロボットが直立姿勢のとき、図７のＹ軸（体側方向）に平行な直線上に設定される。
【００２６】
ロボットの足平の形状が略矩形とは異なる場合、足平の外周形状をその外周に接する矩形を設定する。この矩形の大きさに基づいて両足平が干渉しない領域を設定する。足平の外周形状をその外周に接する矩形を設定する場合、両足平の基準点がロボット体幹方向に平行な同一直線上にあり、両足平の基準線が体幹の前後方向に平行な位置（いわゆる直立姿勢における足平の位置と姿勢）にあると仮定したときに、２辺がロボットの前後方向に平行で足平の外周に接する矩形を設定する。このときの両足平の位置と姿勢は、ロボットがいわゆる直立姿勢となった場合の足平の位置と姿勢である。即ち図７（Ａ）に示す足平１０Ｒ、１０Ｌと同様に、両足平の基準点がＹ軸に平行な直線上にあり、両足平の基準線がこの直線と直交するよう両足平の位置と姿勢を仮定する。その状態で足平の外周に接する矩形を設定する。すると足平の外周に接する矩形は図７（Ａ）に示す、足平１０Ｌの爪先に相当する辺１５Ｌと踵に相当する辺１２Ｌ、および足平の内側に相当する辺１７Ｌが特定できる。なおこの場合も前述の場合と同様に、ロボットが両足平を揃えたときに互いに平行となるような基準線が各足平に対して定められる。
【００２７】
次に図１と図２に基づいて、遊脚が着地する際、足平の基準点を着地させる目標位置（着地目標位置）として設定できる領域（着地許可領域）について説明する。
図１はロボットが矢印１６に沿って右方向にカーブしつつ歩行しているときの両足平の位置を示している。左足平１０Ｌの基準点１０ＬＰが位置ＬＰ１で立脚側の足平となり、次いで右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１で着地し、そこで立脚となる。次に左脚が遊脚となり左足平１０Ｌの基準点１０ＬＰは位置ＬＰ２で着地する予定である。但し位置ＬＰ２はこれから設定される。即ちこれから左足平１０Ｌの着地目標位置ＬＰ２を設定する。
ロボットは矢印１６に沿って右方向へカーブしつつ歩行している。従って、右足平１０Ｒが位置ＲＰ１で着地し、そこで右脚が立脚となった際、次に左脚が着地する位置での左足平１０Ｌの着地目標角度Ａがまず設定される。この着地目標角度Ａはロボットがカーブするその曲率半径に沿うように設定される。また着地目標角度Ａは、着地する脚の足平の基準線１２Ｌと、立脚の足平の基準線１２Ｒとのなす角度Ａとして定義される。
左足平１０Ｌの着地目標角度Ａが設定された後、左足平１０Ｌの着地目標位置として、左右の足平が適切な距離を保てる領域２０を設定する。左右の足平が適切な距離を保てる領域２０とは、左足平１０Ｌの着地時に右足平１０Ｒと干渉しない領域である。この領域２０内に左足平１０Ｌの着地目標位置を設定する。この領域２０を着地許可領域と呼ぶ。この領域２０は、立脚（右脚）の右足平１０Ｒの基準点１０ＲＰの位置ＲＰ１から、着地しようとする脚（左脚）の左足平１０Ｌの基準線１２Ｌへおろした垂線ＲＺの長さが、左足平１０Ｌの着地目標角度Ａに依存する関数で表される閾値ＲＺＴＨ（不図示）以上となる領域、又は立脚（右脚）の右足平１０Ｒの基準線１２Ｒに遊脚側で平行な直線１９のうち、右足平１０Ｒの基準線１２Ｒとその直線１９との距離ＲＺが左足平１０Ｌの着地目標角度Ａに依存する関数で表される閾値ＲＺＴＨ（不図示）以上となる領域である。
着地目標角度Ａが設定された左足平１０Ｌの基準点１０ＬＰの着地目標位置ＬＰ２はこの着地許可領域２０内に設定される。このとき着地許可領域２０の境界線上に着地目標位置ＬＰ２を設定することも好ましい。
【００２８】
次に図２を用いて、着地許可領域２０を決定するための、左足平１０Ｌの着地目標角度Ａに依存する関数で表される閾値ＲＺＴＨの決定の方法を説明する。図２の左足平１０Ｌと右足平１０Ｒはロボットを直立姿勢としたときの位置にある。即ち、両基準線１２Ｌ、１２Ｒは平行であり、両足平の基準点１０ＲＰ、１０ＬＰは基準線に直交する直線上に位置している。
図２ではＸ軸方向がロボット正面方向を示す。右足平１０Ｒの基準点１０ＲＰから右足平先端１４Ｒ（爪先）までの距離は距離ＦＲである。また右足平１０Ｒの基準点１０ＲＰから右足平内端１６Ｒまでの距離は距離ＦＮである。左右の足平の外周形状は同じ略矩形である。よって左足平１０Ｌの基準点１０ＬＰから左足平先端（爪先）までの距離は右足平１０Ｒにおける距離ＦＲに等しく、左足平１０Ｌの基準点１０ＬＰから左足平内端までの距離は右足平１０Ｒにおける距離ＦＮに等しい。
ロボットが直立姿勢にあるときの両足平１０Ｌと１０Ｒの間の距離は距離Ｄ０である。この距離Ｄ０は、ロボットが直進した場合に両足平１０Ｒ、１０Ｌが干渉（接触）しないために必要な最小の余裕として設定されている。換言すれば距離Ｄ０は、ロボットが直進した場合に両足平１０Ｒ、１０Ｌの干渉（接触）を回避するために必要な距離である。また両足平の基準点１０ＬＰ、１０ＲＰ間の距離はＤ１である。
【００２９】
ここで左足平１０Ｌがその基準点位置１０ＬＰを中心に角度Ａだけ回転して１０Ｌ２となった場合を考える。すなわち左足平１０Ｌ２の基準線１２Ｌ２と、右足平の基準線１２Ｒ、別言すれば左足平１０Ｌの回転前の基準線１２Ｌとのなす角が角度Ａとなった場合を考える。左足平１０Ｌが角度Ａだけ回転したことにより両足平１０Ｒ、１０Ｌの間は距離ｄＤだけ短くなる。即ち両足平１０Ｒ、１０Ｌが干渉しないための余裕として設定された距離Ｄ０が距離ｄＤだけ短くなる。この距離ｄＤの分だけ両足平１０Ｒ、１０Ｌは干渉しやすくなる。そこで左足平１０Ｌを角度Ａだけ回転させる場合には、左足平１０Ｌの基準点１０ＬＰの位置を図２のＹ軸方向で右足平１０Ｒと反対側に距離ｄＤだけ移動すれば両足平１０Ｒ、１０Ｌの間は距離Ｄ０が保てることになる。足平１０Ｌ、１０Ｒの外周形状は矩形であるので図２の幾何学的関係からｄＤは、
ｄＤ＝ＦＲ×ｓｉｎ（Ａ）＋ＦＮ×ｃｏｓ（Ａ）−ＦＮ
で表すことができる。左足平１０Ｌの基準点１０ＬＰの位置をＹ軸方向で右足平１０Ｒと反対側に距離ｄＤだけ移動させたとき、両足平１０Ｒ、１０Ｌの基準点１０ＲＰ、１０ＬＰの間の距離は、Ｄ１＋ｄＤ、即ち、Ｄ１−ＦＮ＋ＦＲ×ｓｉｎ（Ａ）＋ＦＮ×ｃｏｓ（Ａ）で表せることができる。このＤ１＋ｄＤは右足平１０Ｒを角度Ａだけ回転させたときに、両足平１０Ｒ、１０Ｌの間をもとの足平間の余裕を持たせた距離Ｄ０を保つものである。従って、遊脚の足平１０Ｌの基準点１０ＬＰの着地目標位置を、立脚の足平１０Ｒの基準線１２Ｒに遊脚側で平行な直線のうち、遊脚の足平１０Ｒの基準線１２Ｒとの距離が（Ｄ１＋ｄＤ）の直線よりも立脚と反対側の領域に設定すれば、両足平が干渉（接触）することはない。別言すれば、遊脚の足平１０Ｌの基準点１０ＬＰの着地目標位置を、立脚の足平１０Ｒの基準点からおろした垂線の長さが（Ｄ１＋ｄＤ）に等しく、かつ遊脚側で立脚の足平１０Ｒの基準線１２Ｒに平行に伸びる直線（第２の直線）よりも立脚とは反対側の領域に設定すれば両足平は干渉することがない。
ここで、Ｄ１＋ｄＤは、足平基準点から足平先端（爪先）までの距離ＦＲに着地目標角度Ａの正弦を乗じた距離と、足平基準点から足平内端までの距離ＦＮに着地目標角度Ａの余弦を乗じた距離とを、一定距離（Ｄ１−ＦＮ）に加えた距離である。実施例１ではこの距離（Ｄ１＋ｄＤ）が「角度依存距離」に相当する。なお、上記説明より第２の直線を別言すれば、立脚の足平１０Ｒの基準線１２Ｒに遊脚側で平行な直線であり、遊脚の足平１０Ｒの基準線１２Ｒとその直線との距離が角度依存距離に等しい直線、と表現することもできる。
【００３０】
また一方、種々の実験によって、着地する足平と立脚の足平との干渉について、着地目標角度Ａに依存する距離（Ｄ１＋ｄＤ）および着地目標位置との間に次の関係があることが判明した。
（１）立脚の足平の基準点を中心とし、上記角度依存距離（Ｄ１＋ｄＤ）を半径とする円を設定する。
（２）着地目標角度Ａで着地する足平の基準線に平行で（１）の円に接する接線を設定する。
（３）着地目標角度Ａで着地する足平の基準点の着地目標位置が（２）で設定された接線より遊脚側（立脚とは反対側）にあると、着地する足平と立脚の足平とは干渉する可能性が低い。
そこで上記角度依存距離（Ｄ１＋ｄＤ）を、着地許可領域２０を設定するための閾値ＲＺＴＨとする。換言すれば、この角度依存距離（Ｄ１＋ｄＤ）は、「立脚の足平と着地する際の遊脚の足平との接触を回避するのに必要な距離Ｄ０を維持するための、立脚の足平の基準点と着地する際の遊脚の足平の基準点との間の距離」ということができる。
【００３１】
前述した第２の直線より立脚とは反対側に遊脚の左足平１０Ｌの基準点１０ＬＰの着地目標位置を設定しても両足平は干渉しないことと考え合わせると、着地許可領域２０は、立脚の右足平１０Ｒの基準点１０ＲＰの位置ＲＰ１からおろした垂線の長さが閾値ＲＺＴＨ（角度依存距離）に等しく、左足平１０Ｌの基準線１２Ｌに平行に伸びる直線（第１の直線）又は前述した第２の直線より遊脚側（立脚とは反対側）の領域、と定義することができる。
図１に示す距離ＲＺの長さが角度依存距離ＲＺＴＨに等しい場合、第１の直線は左足平１０Ｌの基準線１２Ｌとなり、第２の直線は立脚の足平１０Ｒの基準線１２Ｒと平行で、基準線１２Ｒとの距離がＲＺである直線１９となる。従って図１における着地許可領域２０は、左足平１０Ｌの基準線１２Ｌ（第１の直線）又は直線１９（第２の直線）よりも立脚とは反対側の領域となる。
なお、上記（１）から（３）の記述に従うと、第１の直線は、立脚の足平の基準点を中心とするとともに、着地目標角度から算出される角度依存距離を半径とする円の接線のうち、着地する足平に固定された基準線と平行な接線、と表現することもできる。
【００３２】
この実施例は、着地する遊脚の足平の基準点の着地目標位置とそのときの着地目標角度を変数として、遊脚が着地する際に両足平が干渉しない領域（着地許可領域）を着地面（歩行面）上に設定する。着地目標角度と着地目標位置を設定した後に、両足平が干渉するか否かをチェックするのではなく干渉しない領域を設定する。ある着地目標角度で着地しようとする足平の基準点の着地目標位置を、設定された着地許可領域内に設定すれば、両脚の足平リンクが干渉することはない。この処理を、ロボットの歩行経路に沿って夫々の脚が遊脚となる毎に行うことにより、足平の基準点の着地目標角と着地目標位置の時系列データ、即ち歩容データを作成できる。このとき、脚の各関節の目標関節角を考慮しない。また反復計算を必要としない。従って着地する足平と立脚の足平との干渉を回避する歩容データを高速に作成できる。ロボットの歩行経路をリアルタイムに与えても、その歩行経路に基づいて高速に歩容データを作成し、与えられた歩行経路に沿ってロボットをリアルタイムで歩行させることができる。
【００３３】
またこの実施例では、着地許可領域の境界の一部となる第２の直線は、立脚の足平の基準線と平行である。この第２の直線より立脚とは反対側の領域が着地許可領域となる。一方着地許可領域の境界の別の一部となる第１の直線は、立脚の足平の基準点を中心とし、角度依存距離を半径とする円の接線となる。この接線より立脚とは反対側の領域も着地許可領域となる。立脚の足平の前方における接線は、立脚の足平の前方でその足平の基準線と交差する。すなわち着地目標角度をゼロ度から大きくすると、着地許可領域は第１の直線で規定される領域よりも足平前方へ拡張されることになる。遊脚の足平の基準点の着地目標角度をゼロ以上としたときの着地目標位置は、立脚の足平の前方になるほど立脚の足平の正面に近い位置に設定できることになる。
従ってロボットをカーブしながら歩行させようとする際、そのカーブの外側の脚の足平の基準点の着地目標位置を内側の脚の足平の前方に設定できる。着地する遊脚の足平の基準点の着地目標位置を立脚の足平の前方とするほど、カーブする方向に設定することができる。その場合でも着地する脚の足平と立脚の足平は干渉することはない。ロボットをカーブに沿って円滑に歩行させる歩容データを作成できる。
【００３４】
なお、角度依存距離は上記（Ｄ１＋ｄＤ）に限定されるものではない。着地目標角度が大きいほど長くなる角度依存距離とは、着地目標角度に比例して距離が長くなるような関数を用意してもよいし、着地目標角度に対して非線形に長くなるような関数を用意してもよい。着地目標角度の増加に伴って距離が長くなる関数であればよい。
【００３５】
また、足平の外周の形状が矩形以外の場合、前述したように足平の外周に接する矩形を設定することで、図２に示した、右足平１０Ｒの基準点１０ＲＰから右足平先端１４Ｒ（爪先）までの距離ＦＲと、右足平１０Ｒの基準点１０ＲＰから右足平内端１６Ｒまでの距離ＦＮを同様に定義することができる。このとき右足平１０Ｒの基準点１０ＲＰから右足平内端１６Ｒまでの距離ＦＮは、図７（Ａ）に示す、左足平１０Ｌの基準点１０ＬＰから足平の形状を近似した矩形の内側の辺１７Ｌまでの距離として定義することができる。
【００３６】
また実施例１の説明に用いた図１及び図２はロボットの足平を上から見た図である。即ち足平の基準点や基準線を着地面に投影した図である。足平に固定された基準点は足平の裏面内（歩行面と接する面内）に固定されるとは限らない。足平の内部に基準点が固定されている場合、遊脚の足平を着地させる際の基準点の目標位置は歩行面から所定距離だけ上方となる。その場合には実施例１で説明した第１の直線や第２の直線および着地許可領域は次のように求めることができる。
即ち、第１の直線は、立脚の足平の基準点と着地する際の遊脚の足平の基準点を含む平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚が着地する際の遊脚の足平の基準線に平行に伸びる直線として計算できる。第２の直線は、前記平面内であって、立脚の足平の基準点から下ろした垂線の長さが角度依存距離に等しく、かつ遊脚側に位置するとともに、立脚の足平の基準線に平行に伸びる直線として計算できる。着地許可領域は、前記平面内において、前記第１の直線又は前記第２の直線によって仕切られた領域であって、遊脚側の領域として求めることができる。このようにして第１の直線や第２の直線および着地許可領域を求めることで足平の基準点が足平内部に固定されている場合でも実施例１と同様に着地目標位置を設定することができる。
【００３７】
＜実施例２＞
次に図３を用いて実施例２を説明する。図３に示す左足平１０Ｌと右足平１０Ｒはロボットが前述した直立姿勢とったときの位置にある。図３は左足平１０Ｌの基準点１０ＬＰに座標原点Ｐ４をとり、足平前方をＸ軸とした座標系を設定してある。このとき両足平の基準線１２Ｌ、１２Ｒは平行であり両足平の基準線が着地面内でなす角度はゼロである。この状態で左脚を前方（爪先方向、即ちＸ軸方向）に最大に踏み出して着地することのできる左足平１０Ｌの基準点１０ＬＰはＰ５の位置となる。このとき座標原点Ｐ４から位置Ｐ５までの距離はＸＭＡＸである。このロボットは左足平１０Ｌの基準点１０ＬＰが座標原点Ｐ４の位置にある状態から後方（踵方向、即ちＸ軸上で負の方向）へも距離ＸＭＡＸの位置へ着地することができる。同様に、左足平１０Ｌの基準点１０ＬＰが座標原点Ｐ４の位置にある状態からＹ軸方向（足平側方）に最大に踏み出して着地することのできる左足平１０Ｌの基準点１０ＬＰはＰ６の位置となる。このとき座標原点Ｐ４から位置Ｐ６までの距離はＹＭＡＸである。同様にこのロボットは左足平１０Ｌの基準点１０ＬＰが座標原点Ｐ４の位置にある状態からＹ軸上で負の方向へも距離ＹＭＡＸの位置へ着地することができる。なお、図３に示すように左足平１０Ｌが右足平１０Ｒの方向へ振り出すと左右の足平が干渉するが、ここでは、干渉は考慮しない。ロボットの脚リンク群と関節の構造から決定される、最大に振り出すことのできる距離を求めるだけである。即ちロボットが直立姿勢をとった状態から片脚が踏み出して着地することのできる最大着地可能領域を求めるのである。
種々の実験から、単純な形状で着地可能領域を近似するには楕円が適切であることが判明した。そこで、ロボットが直立姿勢をとった状態から、左脚を前後左右に踏み出して着地可能な位置までの左足平１０Ｌの基準点からの距離ＸＭＡＸとＹＭＡＸを求め、ロボットが直立姿勢をとった状態での左足平基準点の位置を中心とするとともに、このＸＭＡＸを長軸の半径とし、ＹＭＡＸを短軸の半径とした楕円の範囲を、着地可能領域を表す範囲として設定する。
【００３８】
ロボットの脚は、隣接するリンクを揺動可能に連結する各関節を大きく回転させることができ、広い範囲の着地可能領域を有する。ロボットはまず直進歩行が円滑となるよう設計されるので左右の足平が平行である場合に最も広い着地可能領域を有する。しかし足平の歩行面上での回転角（左右の足平の基準線が交差する際の角度、これは前述の着地目標角度に等しい）がゼロより大きくなると、その回転角が拘束条件となって各関節の回転範囲が制約される。その結果、着地可能領域は、回転角がゼロの場合より小さくなる。回転角が大きくなるにつれて拘束条件は厳しくなり、着地可能領域もより小さくなる。さらに回転角が、足平が取り得る最大角度となったとき、着地可能領域はほぼ点状の微小領域に収束する。
着地目標角度に依存した脚の足平の着地可能領域は、脚の各リンクと関節の可動範囲から幾何学的に厳密に計算することができる。しかし近似的には、着地可能領域は着地目標角度に依存して変化し、着地目標角度がゼロに近いほど大きく、着地目標角度が大きいほど小さく、その間を着地目標角度に比例して相似的に拡大縮小する関係にあることが解った。
実施例２では、回転角（着地目標角度）がゼロのときに、着地可能領域は最大（最大着地可能領域）となる。そのときの近似的な範囲は長軸の半径を長さＸＭＡＸ、短軸の半径を長さＹＭＡＸとする楕円２２の範囲となる。回転角がその取り得る最大角の１／２となるとき、近似的な着地可能領域は、長軸の半径をＸＭＡＸの半分の長さ、短軸の半径をＹＭＡＸの半分の長さとする楕円２４の範囲となる。着地目標角度がその取り得る最大角度のとき、着地可能領域は長径と短径がともにゼロとなる点（図３で左足平１０Ｌについては原点Ｐ４）の近傍の微小領域に収束する。このとき原点Ｐ４に収束した着地可能領域を最小着地可能領域とする。そして着地目標角度がゼロと最大角度の中間の角度の場合、そのときの近似的な着地可能領域を表す楕円は、着地目標角度がゼロのときに長径の半径がＸＭＡＸ、短径の半径がＹＭＡＸとなり、着地目標角度が最大のときに長径と短径の半径がともにゼロとなる一次関数により規定する。すなわち、着地可能領域は、最大着地可能領域（を表す楕円）と最小着地可能領域（を表す点）を着地目標角度が最小角度（ゼロ）と最大角度（足平が取り得る最大の着地目標角度）との間の中間値で按分した範囲となる。上記例では着地目標角度に対する着地可能領域の楕円の長径と短径の長さ按分するために一次関数で求めたが、一次関数に限定されるものではない。２次関数その他、非線形関数であってもよい。
【００３９】
実施例２では、着地可能領域を単純な形状で最もよく近似できる楕円で表現した。楕円は長軸と短軸の長さ、および楕円中心点の座標で一義的に決定できるので、着地目標範囲を楕円で近似することは、着地目標範囲を高速に計算する上で好都合である。しかし着地可能領域を近似する領域は楕円に限られるわけではない。前述したように着地目標角度によって決まる着地可能領域は脚の幾何学的構造から厳密に求まる。いくつかの着地目標角度から、その角度に対応した厳密な着地可能領域を事前に求めておき、各着地範囲を近似する閉曲線又は多角形を、いくつかの着地目標角度に応じた対応表として記憶しておく。そして着地可能領域を実際に求めるときは、対応表中に存在する、設定された着地目標角度に近い着地目標角度を２つ選択する。選択された２つの着地目標角度に対応する着地可能領域を読み出す。その２つ着地目標角度と設定された着地目標角度の比率に応じて、２つの着地可能領域を按分して着地可能領域を求めることも好適である。
【００４０】
図４にこのときの歩容データの作成の様子を示す。図１と同じように左足平１０Ｌの基準点１０ＬＰが位置ＬＰ１で左脚が立脚となり次に右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１で右脚が立脚となる。次の左足平１０Ｌの基準点１０ＬＰの目標位置を決定するに際して、右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１にあるときに、ロボットが直立姿勢をとったと仮定したときの左足平１０Ｌの基準点１０ＬＰの位置ＬＰ３を特定する。左足平１０Ｌの基準点１０ＬＰが位置ＬＰ３にあるという仮定の元で先に説明した着地目標角度Ａに応じた楕円領域２６（着地可能領域）を算出する。この楕円領域２６内であれば、着地目標角度Ａで左足平１０Ｌが着地可能な領域を特定することができる。
【００４１】
このとき、実施例１で説明したように着地目標角度Ａで着地しようとする左足平１０Ｌの着地許可領域が設定されている。着地許可領域は、第１の直線３２又は第２の直線３３より立脚とは反対側の領域である。ここで第１の直線３２は、着地目標角度Ａで着地させようとする左足平１０Ｌの基準線１２Ｌに平行で、立脚の足平１０Ｒの基準点１０ＲＰの位置ＲＰ１からおろした垂線の長さが着地目標角度Ａに依存して設定される角度依存距離ＲＺとなる直線である。また第２の直線３３は、立脚の足平１０Ｒの基準点１０ＲＰの位置ＲＰ１からおろした垂線の長さが着地目標角度Ａに依存して設定される角度依存距離ＲＺに等しく、かつ立脚の足平の基準線に遊脚側で平行な直線である。
従って左足平１０Ｌが右足平１０Ｒと干渉を起こさず、かつ着地目標角度Ａで着地可能な左足平１０Ｌの基準点１０ＬＰの着地目標位置の設定可能な領域は、楕円２６内の領域と、着地許可領域とが重なる領域３４として特定することができる。
【００４２】
領域３４の範囲で着地目標位置として最も望ましい位置は第１の直線３２と楕円２６との交点のうち、進行方向（図４で矢印１６に示す方向）の交点Ｓである。この点は第１の直線３２上であるので最も小さい距離で両足平の干渉を回避することができ、かつ楕円２６上であるので左足平１０Ｌの基準点１０ＬＰが、直前の着地位置ＬＰ１から到達できる最遠の位置でもある。ここではさらに余裕を確保するため、交点Ｓから領域３４内に所定の距離だけ内側の位置ＬＰ２に左足平１０Ｌの基準点１０ＬＰの着地目標位置を設定する。
【００４３】
次に図５により実施例２の処理のフローチャートを示す。まずステップＳ１００では、ロボット操作装置からリアルタイムに出力される、ロボットの歩行の速度や方向といった歩行経路に関する指令を取得する。なお、ロボット操作装置としてはジョイスティックやボタン、マウスなどがある。本実施例では、ロボットを図４に矢印１６に示すように、右にカーブしながら歩行させる指令を取得する。
次にステップＳ１０２では、ロボット操作装置からの指令値に基づいて着地目標角度を設定する。ここでは図４に示すように、ロボット操作装置からの指令値が矢印１６で示す右カーブであるのでこのカーブの曲率半径から、右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１にあるときの、左足平１０Ｌの基準点１０ＬＰが位置ＬＰ１から一歩踏み出して次に着地する予定位置での着地目標角度を角度Ａに設定する。このときステップＳ１０２では着地目標角度の設定に先立って左右の足平の基準線を設定する。設定の方法は前述した通りである。
次にステップＳ１０４では角度依存距離を算出する。角度依存距離については前述した通りである。次にステップＳ１０６では着地目標位置として設定することができる領域（着地許可領域）を設定する。これは図４に示す第１の直線３２又は第２の直線３３より図上左側の領域となる。同時にステップＳ１０８で、着地目標角度Ａから、左足平１０Ｌの基準点１０ＬＰの着地可能領域が設定される。設定された着地可能領域は図４に示す楕円２６の内部の領域である。
そしてステップＳ１１０ではステップＳ１０８で求められた着地可能領域とステップＳ１０６で求められた着地許可領域とが重なる領域、即ち図４に符号３４で示す斜線部分の領域を設定する。そしてこの領域３４のいずれかの位置を着地目標位置として設定する。着地目標位置は領域３４内で任意に設定できる。例えば前述したように最も好ましい位置Ｓから、さらに所定の余裕を確保した点ＬＰ２に次の左足平１０Ｌの基準点１０ＬＰの着地目標位置を設定する。
こうして設定された着地目標位置ＬＰ２およびステップＳ１０２で設定した着地目標角度Ａに基づいて左足平１０Ｌの基準点１０ＬＰの位置ＬＰ１から位置ＬＰ２への時系列データ（即ち左足平１０Ｌの歩容データ）が作成され、ステップＳ１１２でこの歩容データに基づいてロボットが駆動される。上記処理を全てコンピュータによって自動的に行わせることで、足平同士が干渉することのない、足平の基準点の歩容データを高速に作成する歩容データ作成装置を実現することができる。
【００４４】
このように実施例２によれば、着地目標角度Ａが与えられた際に、他方の足平と干渉を起こさず、かつ着地目標角度Ａで着地させるための、足平の基準点の着地目標位置を設定可能な領域を特定できる。遊脚の足平の基準点の着地目標位置をこの領域内に設定することで、他方の脚の足平と干渉を起こさず、かつ着地目標角度Ａで着地可能な着地目標位置、すなわち足平の基準点の歩容データを作成できる。ここで、足平の基準点の着地目標位置としては着地可能領域および着地許可領域の境界線上が好ましい。着地許可領域の境界線上であれば、着地しようとする足平と立脚の足平が干渉しない着地目標位置のうち、立脚の足平前方に近い位置に着地目標位置を設定できる。即ちロボット歩行時に両脚が左右方向になるべく開かない円滑な歩行データを作成できる。また着地可能領域を表す楕円上に着地目標位置を設定すると、設定された着地目標角度に対してできるだけ歩幅の大きい着地目標位置を設定できる。ロボットの歩行時の歩幅を大きくできることで円滑な歩容データを作成できる。いずれの場合にも両足平の干渉は回避された歩容データとなる。
以上より遊脚の足平の基準点の着地目標位置を、着地許可領域の境界線と着地可能領域の境界線とのロボット進行歩行遠方側の交点とすることが好ましい。ロボットがより安定した歩行を実現できるようさらに余裕をとるために、前記交点から所定距離だけ着地可能領域の内側に着地目標位置を設定することも好ましい。
【００４５】
実施例２では遊脚の足平の基準点の着地目標角度が設定されたのち、その着地目標角度で着地可能な領域を設定した。逆に遊脚の足平の基準点の着地目標位置を最初に設定し、その着地目標位置が含まれる最小の着地可能領域に対応する角度を着地目標角度として設定することも好適である。これにより最初に設定された着地目標位置に対して最小の角度となる着地目標角度を設定することができる。着地目標角度が小さいということは左右の足平の相対角度が小さいということである。左右の足平の干渉を回避しつつ円滑な歩行を実現する歩容データを作成できる。
【００４６】
＜実施例３＞
次に図６を用いて実施例３を説明する。この実施例は遊脚の足平が立脚のリンクと干渉しないような移動軌跡を高速に生成するものである。
図６では左足平１０Ｌの基準点１０ＬＰが位置ＬＰ１で立脚となり、次に右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１で着地しその位置で右脚が立脚となった状態を示す。次に右脚の右足平１０Ｒの基準点１０ＲＰが位置ＲＰ１で立脚となった状態から、左脚を遊脚として左足平１０Ｌの基準点１０ＬＰを位置ＬＰ１からＬＰ２に移動させる移動軌跡（即ち足平の基準点の歩容データ）を生成する。このとき左脚の左足平１０Ｌの離地位置ＬＰ１と次の着地目標位置ＬＰ２の夫々の位置における左足平１０Ｌの、右足平１０Ｒに対する着地面内での回転角（位置ＬＰ１では実現された着地角度、位置ＬＰ２では着地目標角度）はすでに設定されている。ここで、立脚の右足平１０Ｒの基準点１０ＲＰの位置ＲＰ１を中心とし、半径Ｒの円４０を算出する。半径Ｒは実施例１で説明した角度依存距離に等しい距離とする。角度依存距離を算出する際の角度は、左足平１０Ｌの離地位置ＬＰ１での角度でもよいし、左足平１０Ｌの着地目標位置ＬＰ２での着地目標角度でもよい。また、左足平１０Ｌの、離地位置ＬＰ１での角度と着地目標位置ＬＰ２での着地目標角度との中間の角度で、角度依存距離が最小となる距離を半径Ｒとしてもよい。
いずれの場合でも角度依存距離は、立脚の足平と遊脚の足平との接触を回避するのに必要な距離を維持するための、立脚の足平の基準点と遊脚の足平の基準点とを着地面へ投影した際の両基準点の間の距離として表される。
【００４７】
左足平１０Ｌの基準点１０ＬＰを位置ＬＰ１からＬＰ２に移動させる３次元移動軌跡を着地面内に投影した軌跡４２がこの円４０と交差しないようにその３次元移動軌跡を生成する。左足平１０Ｌの基準点１０ＬＰの３次元移動軌跡として最も好ましいのは、その３次元移動軌跡を着地面内へ投影した軌跡４２が円４０と交差することなく、かつ左足平１０Ｌの基準点１０ＬＰが位置ＬＰ１から位置ＬＰ２へ最短距離で到達する軌跡である。その意味では着地面へ投影した軌跡４２は円４０に接する弧を描くように生成されることが好ましい。
【００４８】
上記により左足平１０Ｌの基準点１０ＬＰの３次元移動軌跡を着地面に投影した軌跡４２を左足平１０Ｌの基準点１０ＬＰが通過しても左足平１０Ｌは少なくとも右足平１０Ｒと所定の余裕をもって干渉しない。着地面に投影した軌跡４２に上記制限を設けると、遊脚足平の３次元的移動軌跡も立脚の各リンクに干渉しないことが判明している。さらに上記制限を加えると、遊脚の足平だけでなく遊脚のリンクが立脚のリンクと干渉することもほとんどないことが判明している。
【００４９】
実施例３では遊脚の足平の基準点の３次元移動軌跡について、その軌跡を着地面に投影した軌跡に対して上述した制限を加えることで、遊脚の足平の基準点の３次元移動軌跡を遊脚の足平が立脚のリンクに干渉しないようにすることができる。このとき、各関節角の角度を明示的に指定する必要はない。また遊脚の足平と立脚の各リンクとの干渉チェックを行う必要がない。遊脚の足平の基準点の３次元移動軌跡を着地面に投影した軌跡について制限を加えるのみである。その制限が、「遊脚の足平の基準点を離地時の位置から次の着地目標位置に移動させる３次元移動軌跡を着地面内に投影した軌跡が、立脚の足平の基準点の位置を中心とするとともに角度依存距離を半径とする円と交差しない」という簡単な条件となる。遊脚の足平の基準点の移動軌跡を求める演算をより高速化できる。特に円の方程式という極めて単純な式により遊脚の足平が立脚のリンクに干渉しないよう歩容データを求めることができる。遊脚の足平の基準点の移動軌跡を簡単な計算により求めることができる。
【００５０】
上記処理をコンピュータで行うことで、遊脚の足平の基準点の３次元移動軌跡を高速に計算できる歩容データ作成装置を実現することができる。この歩容データ作成装置をロボットに実装することで、外部から歩行経路をリアルタイムに与える場合であっても、足平同士の干渉を回避しつつロボットを歩行させることができる。遊脚の足平の基準点の３次元移動軌跡を高速に計算できるのでロボットの動作が緩慢となることがない。スムーズで機敏な歩行をロボットに行わせることができる。
【００５１】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００５２】
【図１】実施例１の着地許可領域を説明する図である。
【図２】足平が回転したときの両足平間の距離の変化を説明する図である。
【図３】実施例２の遊脚の足平の着地可能領域を説明する図である。
【図４】遊脚の足平の基準点の着地目標位置として設定可能な領域を説明する図である。
【図５】実施例２の処理を説明するフローチャート図である。
【図６】実施例３による遊脚の足平の基準点の移動軌跡を着地面に投影した軌跡を説明する図である。
【図７】ロボットの概要と座標系を説明する図である。
【図８】着地許可領域を設定するための原理を説明する図である。
【図９】足平の着地目標角度に依存する着地可能領域を設定するための原理を説明する図である。
【符号の説明】
【００５３】
１０Ｌ、１０Ｒ：足平
１２Ｌ、１２Ｒ：基準線
２０：着地許可領域
２２：最大着地可能領域
４２：遊脚足平基準点の移動軌跡を着地面へ投影した軌跡
１００：ロボット
【図１】
0004821188.tif 000002
【図２】
0004821188.tif 000003
【図３】
0004821188.tif 000004
【図４】
0004821188.tif 000005
【図５】
0004821188.tif 000006
【図６】
0004821188.tif 000007
【図７】
0004821188.tif 000008
【図８】
0004821188.tif 000009
【図９】
0004821188.tif 000010