(57)【要約】【課題】  脚式ロボットにおいて、支持脚の足平の実際の配置を計測し、計測された足平配置と目標とする足平配置との差異に基づいて、動作計画を更新しながら歩行することが可能な技術を提供する。【解決手段】  本発明のロボットは、動作計画に基づいて関節群を駆動して歩行する脚式ロボットである。その脚式ロボットは、ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する手段と、ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する手段と、ロボットの関節群の関節角群を検出する手段と、検出された代表点の位置と検出された代表線の方向と検出された関節角群に基づいてロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を特定する手段と、特定された支持脚の足平配置と目標とする支持脚の足平配置経路に基づいて動作計画を修正する手段とを備えている。【選択図】  図４
2007007801.tif 000002
【特許請求の範囲】
【請求項１】
動作計画に基づいて関節群を駆動し、脚リンクの足平を接地して接地した脚リンクを支持脚とする動作を繰り返して歩行する脚式ロボットであって、
ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する手段と、
ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する手段と、
ロボットの関節群の関節角群を検出する手段と、
検出された代表点の位置と、検出された代表線の方向と、検出された関節角群に基づいて、ロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を特定する手段と、
特定された支持脚の足平配置と、目標とする支持脚の足平配置経路に基づいて、動作計画を修正する手段と、
を備える脚式ロボット。
【請求項２】
前記動作計画を修正する手段は、
特定された支持脚の足平配置と、動作計画に基づいて、当該支持脚が次に接地する足平配置を推定する手段と、
目標とする支持脚の足平配置経路から、当該支持脚が次に接地する目標足平配置を特定する手段と、
推定された当該支持脚が次に接地する足平配置と、特定された当該支持脚が次に接地する目標足平配置との差異を特定する手段と、
特定された差異に基づいて、当該支持脚が次に接地する足平配置が、当該支持脚が次に接地する目標足平配置へ近づくように、動作計画を修正する手段と
を備えることを特徴とする請求項１の脚式ロボット。
【請求項３】
前記支持脚の足平配置を特定する手段は、
検出された代表点の位置と、検出された代表線の方向と、検出された関節角群に基づいて、ロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を計算する手段と、
計算された支持脚の足平配置の時間平均を計算して、支持脚の足平配置を特定する手段と、
を備えることを特徴とする請求項１から２の脚式ロボット。
【請求項４】
前記代表点は、ロボットの頭部に位置することを特徴とする、請求項１から３の脚式ロボット。
【請求項５】
前記代表線は、ロボットの頭部に位置することを特徴とする、請求項１から４の脚式ロボット。
【請求項６】
動作計画に基づいて関節群を駆動し、脚リンクの足平を接地して接地した脚リンクを支持脚とする動作を繰り返して歩行する脚式ロボットを制御する方法であって、
ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する工程と、
ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する工程と、
ロボットの関節群の関節角群を検出する工程と、
検出された代表点の位置と、検出された代表線の方向と、検出された関節角群に基づいて、ロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を特定する工程と、
特定された支持脚の足平配置と、目標とする支持脚の足平配置経路に基づいて、動作計画を修正する工程と
を備える脚式ロボットの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、体幹（胴部）に対して脚リンクが揺動可能に連結されている機械（脚式ロボットの機械系）を制御して歩行させる技術に関する。詳しくは、支持脚の実際の足平配置を計測し、目標とする足平配置経路に復帰するように歩容を修正する技術に関する。
【背景技術】
【０００２】
左足リンクと体幹と右足リンクの相対的姿勢を変化させることによって歩行する脚式ロボットが開発されている。
脚式ロボットが歩行するためには、左足先と体幹と右足先の運動を指示するデータを必要とする。そのうちの体幹の位置と姿勢は、足先の位置と姿勢に対して適当な値である必要があり、その値が適当でなければロボットは転倒してしまう。
脚式ロボットが転倒しない体幹の位置と姿勢を得るためには、ロボットのダイナミクスを考慮に入れた複雑な計算を必要とする。その計算過程は大略下記のものである。
（１）ロボットの左足先と右足先の位置と姿勢を指示する経時的データを指定する。
（２）足先の位置と姿勢を考慮してロボットのＺＭＰが存在しなければならない位置を指定する。ＺＭＰ（zero moment point）は、ロボットに作用する重力や床反力や慣性力の合力のモーメントがゼロになる床上の点をいう。ＺＭＰが接地脚の足平内にあればロボットは転倒しない。逆にいうと、ロボットが転倒しないためには、ＺＭＰが接地脚の足平内になければならない。そこで接地脚の足先の位置と姿勢を考慮し、下記の関係を満たす目標ＺＭＰを指定する。即ち、一方の脚リンク（例えば左脚）が遊脚になっている間は接地脚（右脚）の足平内に存在し、その一方の脚（左脚）が接地して両足接地状態になった時に新たに接地した脚（左脚）の足平内に向けて移動開始し、それまでに接地していた脚（右脚）が遊脚となる前に新たに接地した脚（左脚）の足平内に移動し終えるＺＭＰを指定する。このようにして指定されたＺＭＰは、目標ＺＭＰと呼ばれる。実際のＺＭＰが目標ＺＭＰのとおりに移動すれば、ロボットは転倒することなく歩行しつづける。
（３）足先の位置と姿勢の変化とそれに追従して変化する目標ＺＭＰが指定されると、体幹の位置と姿勢の経時的変化を仮定してロボットのダイナミクスを計算する。計算する時点で、足先の位置と姿勢の経時的変化が指定されているために、ロボットの体幹の位置と姿勢を仮定すると、ロボットの全身の姿勢が決まる。ロボットの全身の姿勢が決まると、その姿勢におけるＺＭＰの位置を計算することが可能となる。ＺＭＰの位置を計算するためには、静的な要素に加えて、ロボットに作用する慣性力の影響を織り込まなければならない。仮定した体幹の位置と姿勢の経時的変化を計算に含めることで、ロボットのダイナミクスまで考慮してＺＭＰの位置を計算することが可能となる。体幹の位置と姿勢の経時的変化を仮定するとＺＭＰの位置を計算することができることから、目標ＺＭＰに一致するＺＭＰを実現する体幹の位置と姿勢の経時的変化を探求することができる。
上記によって探求された体幹の位置と姿勢の経時的変化を示すデータを体幹歩容データといい、もともと指定されている足先の位置と姿勢の経時的変化を示すデータを足先歩容データといい、両者を総称して歩容データという。歩容データに従ってロボットが歩行すれば、実際のＺＭＰが目標ＺＭＰに一致し、ロボットは転倒せずに歩行しつづけることができる。
【０００３】
歩容データは、時間に対する位置および姿勢の経時的変化で与えられる。位置と速度と加速度は関連しており、そのうちの一つの量から他の量を計算することができるために、位置の代わりに速度または加速度の経時的変化を扱ってもよい。姿勢は座標軸に対する回転角度で表現されるが、角度と角速度と角加速度は関連しており、そのうちの一つの量から他の量を計算することができるために、角度の代わりに角速度または角加速度の経時的変化を扱ってもよい。本明細書では、歩容データが、位置・速度・加速度のいずれかと、角度・角速度・角加速度のいずれかで記述されるために、運動を記述するデータということにする。
【０００４】
目標ＺＭＰに一致するＺＭＰをもたらす体幹運動を算出する手法は、目標足先運動の変化に追従してロボットが歩行しつづけることを可能とする目標体幹運動の経時的変化を算出する手法の典型例であり、それには限られない。一般的にいうと、脚式ロボットは、体幹と体幹に対して揺動可能に連結されている脚リンクを備えており、目標とする足先運動の経時的変化を記述する足先歩容データが指示されると、目標足先運動の変化に追従して歩行しつづけることを可能とする目標体幹運動の経時的変化を記述する体幹歩容データを算出し、指示された足先歩容データと算出された体幹歩容データを用いて歩行する。
【０００５】
歩容データに基づいて関節群を駆動すると、ロボットは歩行動作を実現する。実現される歩行動作が、想定した歩容データで表現される歩行動作と一致していれば、実現されるＺＭＰは支持脚の足平内に維持されるため、ロボットは転倒することなく安定して歩行動作を継続することができる。
【０００６】
ロボットが歩行をしている間に、ロボットに予期せぬ外乱力が作用して、目標とする動作と、実際の動作との間にズレが生じることがある。路面の予期せぬ凹凸によって予期せぬ外乱力が作用することもあるし、ロボットに外界から押したり引いたりする外力が加えられることもある。ロボットの構造上のたわみや、ロボットの関節のガタや、ロボットの応答遅れ等に起因して歩容データから外れれば、予期せぬ外乱力が作用したのと同じことになる。
ロボットの実際の動作が目標とする動作からズレた場合、実際のロボットのＺＭＰと目標ＺＭＰの間に相違が生じ、ＺＭＰが支持脚の足平内へ維持されなくなって、ロボットは転倒する可能性がある。このような事態を防ぐために、ロボットが実際に動作している状態を検出して、目標とする動作にフィードバックして、安定な動作を実現する技術が開発されている。
特許文献１に記載の技術では、ロボットに作用する床反力あるいは床反力モーメントを測定してＺＭＰ位置を実測する。実測されたＺＭＰ位置を目標ＺＭＰ位置と比較し、その偏差を両足平の目標位置や姿勢へフィードバックすることで歩行の安定化をはかっている。
【特許文献１】特開平５−３０５５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来から提案されている脚式ロボットの歩行を制御する技術の多くは、ロボットに作用する力や加速度を計測し、計画された動作に対してフィードバック制御を加える。このような制御技術によれば、ロボットの動力学的な安定性を確保することが可能であり、安定して歩行し続けるロボットを実現することができる。上記の制御技術によると、ロボットは必ずしも所望の配置で脚リンクの足平を接地するわけではないが、少なくとも安定した歩行を実現することができる。
【０００８】
しかしながら、ロボットの脚リンクの足平が所望の配置で接地するように制御したい場合がある。例えば床上に障害物が点在する室内をロボットが歩行する場合、障害物を踏まないように、接地する足平の配置を制御したい。また階段を昇降する場合、段を踏み外したり、段に躓いたりすることなく、歩行するように制御したい。
【０００９】
ロボットが接地するときの足平の配置を制御するためには、支持脚が実際に接地しているときの足平の配置を計測し、ロボットの動作に反映することが望ましい。そのためには、支持脚の足平の実際の配置を計測する手段が必要となる。しかしながら、脚リンクの足先は装置搭載スペースが少なく、位置や方向の計測に必要な機器を搭載することが困難であるという問題がある。また、足先は衝撃荷重を繰返し受ける部位であり、足先に搭載する機器には衝撃や振動が繰返し負荷されるため、位置や方向の計測に用いる機器に故障を生じやすいという問題もある。従って、脚リンクの足先に計測機器を搭載して、足平の配置を直接計測することは現実的ではない。
【００１０】
このような背景から、従来の技術では、接地している脚リンクの足平の実際の配置を計測してロボットの動作に反映することができなかった。接地している脚リンクの足平の実際の配置が、目標とする足平の配置経路からずれている場合であっても、それを修正することができなかった。
【００１１】
本発明は上記課題を解決する。本発明のロボットは、支持脚の足平の実際の配置を計測し、計測された足平配置と目標とする足平配置との差異に基づいて、動作計画を更新しながら歩行することが可能な技術を提供する。
【課題を解決するための手段】
【００１２】
本発明のロボットは、動作計画に基づいて関節群を駆動し、脚リンクの足平を接地して接地した脚リンクを支持脚とする動作を繰り返して歩行する脚式ロボットである。その脚式ロボットは、ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する手段と、ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する手段と、ロボットの関節群の関節角群を検出する手段と、検出された代表点の位置と検出された代表線の方向と検出された関節角群に基づいてロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を特定する手段と、特定された支持脚の足平配置と目標とする支持脚の足平配置経路に基づいて動作計画を修正する手段とを備えている。
【００１３】
本明細書で「動作計画」とは、ロボットに実現させる動作を特徴づけるデータであり、例えば歩容データであってもよいし、関節群の関節角群の経時的変化を記述するデータであってもよい。通常、動作計画はロボットが実際に動作を実現する前に予め与えられている。
本明細書で「足平配置」とは、脚リンクの足平が床と接地するときの、足平に当接する床上の領域を記述する情報のことを指す。このような情報としては、例えば足平が床と接地した状態で、足平の基準となる点に当接する床上の点の位置を示す情報であってもよい。また、足平が床と接地した状態で、足平の基準となる点に当接する床上の点の位置と、足平の基準となる方向（例えば踵から爪先へ向かう方向）に一致する床に沿う方向の両者を示す情報であってもよい。
上記の「代表点」はロボットの一部分に対して固定された点のことであって、ロボットが位置や姿勢を変化させるのに従って、ロボットの外部に固定された座標系から見た代表点の位置は変化する。
上記の「代表線」はロボットの一部分に対して固定された線のことであって、ロボットが位置や姿勢を変化させるのに従って、ロボットの外部に固定された座標系から見た代表線の方向は変化する。
【００１４】
上記のロボットは、動作計画に基づいて関節群を駆動して動作をしている間、代表点の位置と、代表線の方向と、関節群の関節角群を計測する。動作中のロボットの姿勢は関節群の関節角群から一意に特定することができる。従って、外部の座標系から見たロボットの代表点の位置と、外部の座標系から見たロボットの代表線の方向が分かれば、特定されたロボットの姿勢に応じて、外部の座標系から見たときのロボットの支持脚の足平配置を特定することができる。上記のロボットは、特定された支持脚の足平配置と、目標とする支持脚の足平配置経路に基づいて、動作計画を修正する。
【００１５】
上記のロボットによれば、支持脚の実際の足平配置に基づいて、その後の動作計画を修正することができる。従って、ロボットの支持脚の足平配置が、目標とする足平配置経路から外れた場合であっても、目標とする足平配置経路へ復帰するように、その後の歩行動作を修正することができる。
【００１６】
上記の脚式ロボットでは、動作計画を修正する手段は、特定された支持脚の足平配置と動作計画に基づいて当該支持脚が次に接地する足平配置を推定する手段と、目標とする支持脚の足平配置経路から当該支持脚が次に接地する目標足平配置を特定する手段と、推定された当該支持脚が次に接地する足平配置と特定された当該支持脚が次に接地する目標足平配置との差異を特定する手段と、特定された差異に基づいて当該支持脚が次に接地する足平配置が当該支持脚が次に接地する目標足平配置へ近づくように動作計画を修正する手段とを備えることが好ましい。
【００１７】
上記のロボットによれば、実際の足平配置を特定された支持脚が遊脚となって浮遊して再び接地するまでの間の動作を、特定された実際の足平配置に基づいて修正することが可能となる。このように動作を修正することで、ロボットの動作を急激に変化させることなく、目標とする足平配置経路へ復帰させることが可能となり、ロボットの動作の安定性が確保される。
【００１８】
上記の脚式ロボットでは、支持脚の足平配置を特定する手段は、検出された代表点の位置と検出された代表線の方向と検出された関節角群に基づいてロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を計算する手段と、計算された支持脚の足平配置の時間平均を計算して、支持脚の足平配置を特定する手段とを備えることが好ましい。
【００１９】
代表点の位置と代表線の方向と関節角群に基づいて計算される支持脚の足平配置は、理想的には、その支持脚が接地している間、変動することがない。しかしながら、代表点の位置や代表線の方向を計測する際の計測誤差等の影響によって、計算される支持脚の足平配置が時間とともに変動する場合がある。
上記のロボットによれば、計算される支持脚の足平配置の時間平均を計算して支持脚の足平配置を特定するため、上記した計測誤差の影響を抑制し、目標とする足平配置経路へ正確に復帰させることが可能となる。
【００２０】
上記した脚式ロボットでは、前記代表点がロボットの頭部に位置することが好ましい。
上記したロボットでは、位置の計測に必要な機器を頭部に搭載する。位置を計測する機器は、多くの場合、位置が既知である外部の位置基準装置からの信号を受信して、信号の伝播に要した時間から、ロボットの位置を特定する。ロボットの頭部は、全方位からの信号受信が可能であり、ロボットがどのような姿勢を取っても、信号が遮蔽されることなく、好適に信号を受信することが可能である。従って、安定して代表点の位置の計測を行うことができる。
またロボットの頭部は、歩行に伴う振動や衝撃の影響が小さいため、位置の計測に用いる機器が故障や誤動作を起こしにくいという利点もある。
【００２１】
上記した脚式ロボットでは、前記代表線はロボットの頭部に位置することが好ましい。
代表線の方向を計測する機器は、多くの場合、複数個の位置を計測する機器を用いる。位置を計測する機器は、多くの場合、位置が既知である外部の位置基準装置からの信号を受信して、信号の伝播に要した時間から、ロボットの位置を特定する。ロボットの頭部は、全方位からの信号受信が可能であり、ロボットがどのような姿勢を取っても、信号が遮蔽されることなく、好適に信号を受信することが可能である。従って、安定して位置の計測を行うことが可能であり、安定して代表線の方向の計測を行うことができる。
またロボットの頭部は、歩行に伴う振動や衝撃の影響が小さいため、方向の計測に用いる機器が故障や誤動作を起こしにくいという利点もある。
【００２２】
本発明は方法としても具現化される。本発明の方法は、動作計画に基づいて関節群を駆動し、脚リンクの足平を接地して接地した脚リンクを支持脚とする動作を繰り返して歩行する脚式ロボットを制御する方法である。その方法は、ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する工程と、ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する工程と、ロボットの関節群の関節角群を検出する工程と、検出された代表点の位置と検出された代表線の方向と検出された関節角群に基づいてロボットの外部に固定された座標系から見たロボットの支持脚の足平配置を特定する工程と、特定された支持脚の足平配置と目標とする支持脚の足平配置経路に基づいて動作計画を修正する工程とを備えている。
【発明の効果】
【００２３】
本発明のロボットおよびその制御方法を用いることで、実際の支持脚の足平配置を検出し、目標とする足平配置経路からの差異に基づいて動作計画を更新しながら歩行するロボットを実現することができる。所望の足平配置で脚リンクの足平を接地させながら歩行するロボットを実現することができる。
【発明を実施するための最良の形態】
【００２４】
以下、本発明を具現化した実施例について図面を参照して説明する。最初に実施例の主要な特徴を列記する。
（形態１）  動作計画に基づいて関節群を駆動し、脚リンクの足平を接地して接地した脚リンクを支持脚とする動作を繰り返して歩行する脚式ロボットであって、
関節群を駆動するアクチュエータ群と、
関節群の関節角群を計測するエンコーダ群と、
ロボットの外部に固定された座標系から見たロボットの代表点の位置を検出する手段と、
ロボットの外部に固定された座標系から見たロボットの代表線の方向を検出する手段と、
制御装置を備え、
前記制御装置は、
動作計画を記憶する手段と、
エンコーダ群から入力される関節角群と、前記位置を検出する手段から入力される代表点の位置と、前記方向を検出する手段から入力される代表線の方向に基づいて、支持脚の足平配置を特定する手段と、
特定された支持脚の足平配置と、動作計画に基づいて、当該支持脚が次に接地する足平配置を推定する手段と、
推定された当該支持脚が次に接地する足平配置と、当該支持脚が次に接地する目標足平配置に基づいて、動作計画における補正量を計算する手段と、
計算された補正量に基づいて、動作計画を修正する手段と、
修正された動作計画に基づいて、関節群の関節角群を計算する手段と、
計算された関節角群となるようにアクチュエータ群を駆動する手段と
を備える脚式ロボット。
【実施例】
【００２５】
（実施例１）
図１に示すロボット６は、頭部１８と、体幹１２と、右脚２０と、左脚２２を備えている。ロボット６は、右脚２０が接地している間に左脚２２を遊脚として軌道７のように移動させ、左脚２２が接地すると今度は右脚２０を遊脚として軌道８のように移動させ、以下同様に、左脚２２を遊脚として軌道９のように移動させ、次には右脚２０を遊脚として軌道１０のように移動させて歩行を続ける。
【００２６】
ロボット６の歩行を制御するために、ロボット６の体幹１２にコンピュータ装置１４が搭載されている。コンピュータ装置１４は、ＣＰＵ、ＲＯＭ、ＲＡＭ、ハードディスク等を有する。コンピュータ装置１４のハードウェア構成は汎用のコンピュータと同じであり、説明は省略する。コンピュータ装置１４は歩容データを記憶しており、それに基づいてロボット６の関節群を制御する。
【００２７】
ロボット６が歩行を続けるためには、足先の運動を記述する足先歩容データと、体幹１２の運動を記述する体幹歩容データを備える歩容データが必要とされる。
足先歩容データは予めオペレータによって指定される。体幹歩容データはロボットの力学モデルを用いて計算されるＺＭＰ軌道が目標ＺＭＰ軌道に一致する関係に設定される。
【００２８】
本実施例では、図１に示すように、ロボット６の外部の床に固定された座標系を（x, y, z）とし、ロボット６の支持脚の基準点に固定された座標系を（x', y', z'）とする。座標系（x', y', z'）は、ロボット６が右脚２０を支持脚としているときは基準点 R に固定されており、ロボット６が左脚２２を支持脚としているときは、基準点 L に固定されている。座標系（x', y', z'）では、足平に沿って踵から爪先へ伸びる方向をx' 軸とし、足平に沿って x' 軸と直交する方向を y' 軸とし、足平に垂直な方向を z' 軸とする。通常は、x' 軸はロボットが歩行する方向に相当し、y' 軸はロボットの体側方向に相当し、z' 軸はロボットの高さ方向に相当する。
【００２９】
足先歩容データは、ロボット６の足先の位置と姿勢の経時的変化を表す。例えば右脚２０に関して、足先歩容データは、足先基準点 R の位置 xR, yR, zR の経時的変化と、基準点 R から足平の法線方向に伸びるベクトル Rr のオイラー角 αR, βR, γR の経時的変化を備えている。左脚２２に関しても同様に、足先歩容データは、足先基準点 L の位置 xL, yL, zL の経時的変化と、基準点 L から足平の法線方向に伸びるベクトル Lr のオイラー角 αL, βL, γL の経時的変化を備えている。
体幹歩容データは、体幹の位置と姿勢の経時的変化を表す。体幹歩容データは、体幹基準点 W の位置 xW, yW, zW の経時的変化と、基準点 W から体幹に沿って頭部に向けて伸びるベクトル Wr のオイラー角 αW, βW, γW の経時的変化を備えている。
【００３０】
ロボット６の頭部１８には、頭部位置検出装置２２０と、頭部方向検出装置２２２が搭載されている。頭部位置検出装置２２０は、ロボット６の外部の座標系から見た頭部１８の基準点Ｈの位置xh, yh, zh を検出して、コンピュータ装置１４に送信する。頭部方向検出装置２２２は、ロボット６の外部の座標系から見た頭部１８の方向を検出して、コンピュータ装置１４に送信する。頭部１８の方向は、基準点 H から頭部１８の前方に向けて伸びるベクトル Hr のオイラー角 αh, βh, γh で表現される。本実施例のロボット６では、基準点Ｈが頭部１８の代表点に相当し、ベクトルHr の始点と終点を結ぶ線が頭部１８の代表線に相当する。
【００３１】
図２は、コンピュータ装置１４の機能をブロック化して示す図である。図２に示す要素のうち、ロボットの機械系２１６、エンコーダ２１８、頭部位置検出装置２２０、頭部方向検出装置２２２を除いた部分がコンピュータ装置１４の構成要素である。コンピュータ装置１４は、全体が物理的に１つの装置に含まれていてもよいし、物理的に分離された装置ごとに分けて収容されていてもよい。
【００３２】
歩容データ記憶装置２１０には、オペレータによって指定された足先歩容データが記憶されている。
足先歩容データは、加算器２３０によって補正され、関節角群計算装置２１２へ入力される。補正された足先歩容データは、体幹歩容計算装置２３２において、体幹歩容データの計算にも用いられる。
また歩容データ記憶装置２１０には、目標とする足平配置経路として、支持脚の接地位置 X'k, Y'k（k = 1, 2,・・・）と接地方向Γ'k（k = 1, 2,・・・）が、一歩ごとに記憶されている。支持脚の接地位置 X'k, Y'k（k = 1, 2,・・・）は、足先歩容データに従って関節群を駆動したときの一歩ごとの支持脚の接地位置を示しており、支持脚が接地した状態における足先の基準点の位置をロボット６の外部の座標系で表現したものである。また支持脚の接地方向Γ'k（k = 1, 2,・・・）は、足先歩容データに従って関節群を駆動したときの支持脚の足平の接地方向を示しており、支持脚が接地した状態において足先の基準点に固定された座標系（x', y', z'）の x' 軸が、外部の座標系（x, y, z）の x 軸と成す角度を表現したものである。支持脚の接地位置 X'k, Y'k（k = 1, 2,・・・）および接地方向Γ'k（k = 1, 2,・・・）は、補正量計算装置２２８へ入力される。
さらに歩容データ記憶装置２１０には、支持脚の二歩ごとの相対的な接地位置 ΔX'k, ΔY'k（k = 1, 2,・・・）と相対的な接地方向ΔΓ'k（k = 1, 2,・・・）が、一歩ごとに記憶されている。本実施例のロボット６は、右脚と左脚を交互に接地して支持脚としながら歩行するため、支持脚の二歩ごとの相対的な接地位置と接地方向は、同一の脚リンクについて連続する２つの足平配置での位置の変化量と方向の変化量を示している。支持脚の相対的な接地位置ΔX'k, ΔY'k（k = 1, 2,・・・）は、支持脚の接地位置を二歩前の支持脚の接地位置から見た相対的な位置を示している。支持脚の相対的な接地方向ΔΓ'k（k = 1, 2,・・・）は、支持脚の接地方向を二歩前の支持脚の接地方向から見た相対的な方向である。支持脚の相対的な接地位置ΔX'k, ΔY'k（k = 1, 2,・・・）および相対的な接地方向ΔΓ'k（k = 1, 2,・・・）は、着地配置計算装置２２６へ入力される。
【００３３】
体幹歩容生成装置２３２は、加算器２３０から入力される補正された足先歩容データに基づいて、体幹歩容データを生成する。体幹歩容生成装置２３２は、入力される足先歩容データに基づいて、支持脚の足平内に維持される目標ＺＭＰを特定し、実現されるＺＭＰが目標ＺＭＰと一致するような体幹の位置と姿勢の経時的変化を特定する。
生成された体幹歩容データは、加算器２３０で補正された足先歩容データとともに、関節角群計算装置２１２へ入力される。
【００３４】
関節角群計算装置２１２は、入力された足先歩容データと体幹歩容データに基づいて、いわゆる逆キネマティクスを解くことでロボット６の各関節角θ'i(t)（i = 1,2,・・・,n）を計算する。計算された関節角群データは、アクチュエータ制御部２１４に入力される。
【００３５】
アクチュエータ制御部２１４は、ロボット６の関節群を回転させるアクチュエータ群を制御する。アクチュエータ群はロボットの機械系２１６に存在している。アクチュエータ群を制御すると、ロボット６の関節角群を計算された関節角群に調整できる。アクチュエータ制御部２１４がアクチュエータ群を駆動すると、ロボット６は歩容データに従って歩行する。
【００３６】
ロボット６の各関節には、エンコーダ２１８が設けられている。エンコーダ２１８は、ロボット６の各関節角θi(t)（i = 1,2,・・・,n）を計測し、計測された関節角群を支持脚足平配置計算装置２２４へ出力する。
【００３７】
頭部位置検出装置２２０は、ロボット６の外部に固定された座標系における頭部１８の位置xh(t), yh(t), zh(t) を計測し、計測された頭部１８の位置を支持脚足平配置計算装置２２４へ出力する。このような位置計測装置としては、例えばＧＰＳ受信機を用いることができる。また超音波を用いて距離を計測する装置であってもよいし、レーザー光を用いて距離を計測する装置であってもよいし、電磁波を用いて距離を計測する装置であってもよい。あるいはカメラ等を用いて外部の状況を撮影して、撮影されたデータに基づいて頭部の位置を特定してもよい。
頭部位置検出装置２２０は、頭部１８の頭頂部に搭載されている。これによって、ロボット６の機体によって位置計測に使用する信号が遮蔽されることを防止することができる。ロボット６がどのような姿勢をとっても、安定して精度よく頭部１８の位置を計測することができる。
上記のほかにも、頭部位置検出装置２２０は加速度センサと積分器の組合せであってもよい。この場合、頭部位置検出装置２２０は加速度センサで加速度を計測し、計測された加速度を積分して速度を計測し、計測された速度を積分して位置を計測する。
上記のほかにも、頭部位置検出装置２２０は、従来から知られている種々の位置計測技術によって、その位置を計測することができる。
【００３８】
頭部方向検出装置２２２は、ロボット６の外部に固定された座標系における、頭部１８の方向αh(t), βh(t), γh(t) を計測し、計測された頭部１８の方向 αh(t), βh(t), γh(t) を支持脚足平配置計算装置２２４へ出力する。
上記した頭部方向検出装置２２２は、２つの位置検出装置の組み合わせであってもよい。この場合、頭部方向検出装置２２２は、一方の位置検出装置で計測される位置から、他方の位置検出装置で計測される位置までの位置偏差ベクトルを計算し、計算された位置偏差ベクトルと、各位置検出装置の頭部１８における取り付け位置から、頭部１８の方向を計算することができる。
上記のほかにも、頭部方向検出装置２２２は、ジャイロセンサと積分器の組合せであってもよい。この場合、頭部方向検出装置２２２は、ジャイロセンサで角速度を計測し、計測された角速度を積分して方向角を計測する。また上記した頭部方向検出装置２２２としては、例えば地磁気センサを用いることもできる。
上記のほかにも、頭部方向検出装置２２２は、従来から知られている種々の方向計測技術によって、その方向を計測することができる。
【００３９】
支持脚足平配置計算装置２２４は、エンコーダ２１８、頭部位置検出装置２２０、頭部方向検出装置２２２からの入力に基づいて、支持脚が接地している位置 Xk(t), Yk(t) と、接地方向Γk(t) を算出する。
支持脚足平配置計算装置２２４は、エンコーダ２１８から入力される各関節の関節角θi(t)（i = 1, 2,・・・,n）に基づいて、頭部１８の基準点 H から見た、支持脚の基準点 L または R の相対的な位置と、頭部１８のベクトル Hr に対する、支持脚の足平の相対的な方向を算出する。そして、算出された相対的な位置および方向と、頭部位置検出装置２２０から入力される位置 xh(t), yh(t), zh(t) と、頭部方向検出装置２２２から入力される方向 αh(t), βh(t), γh(t) から、支持脚の接地位置 Xk(t), Yk(t) および接地方向Γk(t) を計算する。
【００４０】
エンコーダ２１８、頭部位置検出装置２２０、頭部方向検出装置２２２による計測が理想的に行われていれば、支持脚が切替わるまでの間、支持脚の接地位置 Xk(t), Yk(t) や接地方向Γk(t) は変化しないはずである。しかしながら、計測誤差に起因して、上記で計算される支持脚の接地位置Xk(t), Yk(t) や接地方向 Γk(t) が時間とともに変動することがある。本実施例のロボット６では、支持脚が切り替わらない期間において、上記で計算される支持脚の接地位置 Xk(t), Yk(t) および接地方向Γk(t) のそれぞれの時間平均を算出し、支持脚の接地位置 Xk, Ykおよび接地方向 Γk を特定する。
支持脚足平配置計算装置２２４は、逐次支持脚の接地位置 Xk(t), Yk(t) および接地方向Γk(t) を計算しながら、支持脚の切替わりを監視している。支持脚足平配置計算装置２２４は、支持脚が切替わった時点で、それまでに計算されている接地位置 Xk(t), Yk(t) および接地方向Γk(t) をそれぞれ時間に関して積分して平均値を算出し、算出された平均値を特定された支持脚の接地位置Xk, Yk および接地方向 Γk として着地配置計算装置２２６へ出力する。
【００４１】
着地配置計算装置２２６は、それまで支持脚であった脚リンクが、その後遊脚となって足平配置Xk, Yk, Γk から浮遊し、再び着地するときの足平配置 X*k+2, Y*k+2, Γ*k+2 を計算する。着地配置計算装置２２６は、支持脚足平配置計算装置２２４から入力される支持脚の足平配置 Xk, Yk, Γk と、歩容データ記憶装置２１０から入力される相対位置および方向ΔXk+2, ΔYk+2, ΔΓk+2 から、支持脚の着地配置 X*k+2, Y*k+2, Γ*k+2 を計算する。着地配置計算装置２２６は、計算された支持脚の着地配置 X*k+2, Y*k+2, Γ*k+2 を、補正量計算装置２２８へ出力する。
【００４２】
補正量計算装置２２８は、足先歩容データ xk+2(t), yk+2(t), zk+2(t), αk+2(t), βk+2(t), γk+2(t) についての補正量Δxk+2(t), Δyk+2(t), Δzk+2(t), Δαk+2(t), Δβk+2(t), Δγk+2(t) を計算する。補正量計算装置２２８は、着地配置計算装置２２６から入力される２歩先の着地配置の推定値 X*k+2, Y*k+2, Γ*k+2 と、歩容データ記憶装置２１０から入力される２歩先の着地配置の目標値 X'k+2, Y'k+2, Γ'k+2 の偏差を算出し、その偏差に応じた補正量Δxk+2(t), Δyk+2(t), Δzk+2(t), Δαk+2(t), Δβk+2(t), Δγk+2(t) を計算する。計算される補正量Δxk+2(t), Δyk+2(t), Δzk+2(t), Δαk+2(t), Δβk+2(t), Δγk+2(t) は、算出された偏差にゲインを乗じたものである。このゲインは時間とともに変化するものであって、現在の支持脚から切替わった時点では０であり、徐々に増加し、２歩先の支持脚が接地する時点で最大となるように、規定されている。またこのゲインは歩行速度、歩幅、動作種類（前進・後退・旋回・足踏みなど）等によっても変化し、ロボット６の動作を変更することで挙動が不安定となりやすい状況では、補正量の大きさは低く設定される。これによって、ロボット６の動作の安定性が確保される。
補正量計算装置２２８から出力される補正量Δxk+2(t), Δyk+2(t), Δzk+2(t), Δαk+2(t), Δβk+2(t), Δγk+2(t) は、加算器２３０によって足先歩容データ xk+2(t), yk+2(t), zk+2(t), αk+2(t), βk+2(t), γk+2(t) に加算される。
【００４３】
ロボット６は、歩容データ記憶装置２１０から足先歩容データを読出し、必要であればその足先歩容データを補正し、体幹歩容データを計算し、関節角群を計算し、アクチュエータを制御する。アクチュエータの駆動によって、各関節が回転し、ロボット６は歩行を実現する。
【００４４】
ロボット６が動作を実施している間、コンピュータ装置１４は図３のフローチャートに示す処理を並行して実施している。以下では、図３に示す処理について説明する。
【００４５】
ステップＳ３０２では、現在の歩数kを更新する。歩数kは現在接地している支持脚が、ロボット６が歩行を開始してから何歩目に該当するかを示す数である。
ステップＳ３０４では、ロボット６の外部の座標系から見た頭部１８の位置 xh(t), yh(t), zh(t) を計測する。頭部１８の位置 xh(t), yh(t), zh(t) は、頭部１８に搭載された頭部位置検出装置２２０によって計測される。
ステップＳ３０６では、ロボット６の外部の座標系から見た頭部１８の方向 αh(t), βh(t), γh(t) を計測する。頭部１８の方向 αh(t), βh(t), γh(t) は、頭部１８に搭載された頭部方向検出装置２２２によって計測される。
ステップＳ３０８では、ロボット６の関節群の関節角θi（ i = 1, 2,・・・,n ）を計測する。関節群の関節角θi（ i = 1, 2,・・・,n ）は、エンコーダ２１８によって計測される。
ステップＳ３１０では、その時点での支持脚であるk歩目の支持脚の足平配置 Xk(t), Yk(t), Γk(t) を計算する。現在接地している支持脚の足平配置 Xk(t), Yk(t), Γk(t) は、ステップＳ３０２で計測された頭部１８の位置 xh(t), yh(t), zh(t) と、ステップＳ３０４で計測された頭部１８の方向 αh(t), βh(t), γh(t) と、ロボット６の関節群の関節角θi（ i = 1, 2,・・・,n ）に基づいて、ヤコビ行列を用いて算出される。
ステップＳ３１２では、支持脚が切替わったか否かを判断する。支持脚が切替わった場合（ステップＳ３１２でＹＥＳの場合）、処理はステップＳ３１４へ進む。支持脚がまだ切替わっていない場合（ステップＳ３１２でＮＯの場合）、処理はステップＳ３０４へ進み、ステップＳ３０４からステップＳ３１２までの処理を繰返し実施する。
ステップＳ３１４では、k歩目の支持脚の足平配置 Xk(t), Yk(t), Γk(t) の平均値 Xk, Yk, Γk を計算する。支持脚の足平配置の平均値 Xk, Yk, Γk は、ステップＳ３１０で時々刻々計算されたk歩目の支持脚の足平配置 Xk(t), Yk(t), Γk(t) の時間平均を算出することで取得する。上記の平均値算出は、k歩目の支持脚に切替わった時点から、k+1歩目の支持脚に切替わった時点までの期間について行う。ステップＳ３１４の処理を実施する時点で、k+1歩目の支持脚は接地しており、ステップＳ３１４の処理によって、先ほどまで接地していたk歩目の支持脚の足平配置 Xk, Yk, Γk が特定される。
【００４６】
図４はロボット６の支持脚の足平配置の推移を示している。k歩目の支持脚が足平配置４１２に接地すると、ステップＳ３０２からステップＳ３１２までの処理が制御サイクルごとに繰返し実施される。k-1歩目で支持脚だった脚リンクは、支持脚が切替わった後に、k-1歩目の足平配置４１０から浮遊して遊脚となり、k+1歩目の足平配置４１６へ向けて移動する。この間、k歩目の支持脚の足平配置４１２は、ステップＳ３０２からステップＳ３１２までの処理で繰返し計算されている。k+1歩目の支持脚が足平配置４１６に接地して、支持脚が切替わると、ステップＳ３１４でk歩目の支持脚の足平配置４１２の時間平均が計算され、足平配置４１２が特定される。
【００４７】
図３のフローチャートに戻り、ステップＳ３１６では、k+2 歩目の支持脚の足平配置 X*k+2, Y*k+2, Γ*k+2 （図４の４１８）を推定する。足平配置 X*k+2, Y*k+2, Γ*k+2 は、ステップＳ３１４で特定されたk歩目の支持脚の足平配置 Xk, Yk, Γk （図４の４１２）と、歩容データ記憶装置２１０に記憶されたk+2歩目の支持脚の相対的な接地位置および接地方向ΔXk+2, ΔYk+2, ΔΓk+2に基づいて推定する。
【００４８】
ステップＳ３１８では、補正量計算装置２２８が、k+2歩目の支持脚に関して、推定された足平配置X*k+2, Y*k+2, Γ*k+2 （図４の４１８）と、目標とする足平配置 X'k+2, Y'k+2, Γ'k+2（図４の４２０）との偏差を計算する。k+2歩目の支持脚の推定された足平配置 X*k+2, Y*k+2, Γ*k+2 は、ステップＳ３１６で計算されている。k+2歩目の支持脚の目標足平配置 X'k+2, Y'k+2, Γ'k+2 は、歩容データ記憶装置２１０に記憶されている。
【００４９】
ステップＳ３２０では、補正量計算装置２２８が、ステップＳ３１８で計算された偏差を許容値と比較する。計算された偏差が許容値を超えている場合（ステップＳ３２０でＹＥＳの場合）、足先歩容データを補正するために、処理はステップＳ３２２へ進む。計算された偏差が許容値以下である場合（ステップＳ３２０でＮＯの場合）、足先歩容データを補正することなく、処理はステップＳ３０２へ進む。この場合補正量計算装置２２８は、加算器２３０に入力する補正量として０を出力する。
【００５０】
ステップＳ３２２では、補正量計算装置２２８が、足先歩容データの補正量を算出する。足先歩容データの補正量は、偏差にゲインを乗じて算出される。図５に示すように、このゲインは k 歩目で支持脚だった脚リンクが足平配置 Xk, Yk, Γk （図４の４１２）から浮遊して遊脚となる時点から、次の足平配置 X*k+2, Y*k+2, Γ*k+2 （図４の４１８）へ着地する時点までの期間で定義され、当初は０であり、時間とともに増大するように設定されている。またこのゲインは歩行速度、歩幅、動作種類（前進・後退・旋回・足踏みなど）等によっても変化し、ロボット６の動作を変更することで挙動が不安定となりやすい状況では、補正量の大きさは低く設定される。算出された補正量は、足先歩容データへ加算される。ロボット６は補正量が加算された足先歩容データに基づいて関節群を駆動して、歩行を継続する。
その後処理はステップＳ３０２へ以降し、上記した処理が繰り返される。ステップＳ３０２へ以降した後、コンピュータ装置１４は、k+1 歩目の支持脚について、上記した処理と同様の処理を実施する。
【００５１】
図４を参照すると、特定された k 歩目の足平配置４１２に基づいて、上述のステップＳ３１６で k+2 歩目の足平配置４１８が推定される。ステップＳ３１８で k+2 歩目の推定された足平配置４１８と目標とする足平配置４２０の偏差が計算され、その偏差が許容値を超えている場合には、足先歩容データの修正がなされる。
上述のステップＳ３１６からステップＳ３２２の処理は、k+1 歩目の支持脚がすでに接地し、k 歩目で支持脚だった脚リンクが、その足先を k 歩目の足先配置４１２から k+2 歩目の足先配置４１８へ向けて移動させている間に実行される。上述した処理によって、k+2 歩目の足先配置４１８が目標とする足先配置４２０へ近づくように、遊脚の足先の歩容データが修正される。
【００５２】
本実施例のロボット６によれば、実際の支持脚の足平配置を計測し、計測された足平配置と目標とする足平配置との差異に基づいて、動作計画を更新しながら歩行することができる。本実施例のロボット６によれば、所望の配置で脚リンクの足平を接地させながら歩行することができる。
【００５３】
以上、本発明の実施形態について詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。例えば、歩容データには、時間と位置で経時的変化を記述する実施例を紹介したが、時間と速度、あるいは時間と加速度の関係で、足先や腕先や体幹の運動の経時的変化を記述してもよい。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
また、本明細書または図面に説明した技術要素は、単独であるいは各種の組合わせによって技術的有用性を発揮するものであり、出願時請求項記載の組合わせに限定されるものではない。また、本明細書または図面に例示した技術は複数の目的を同時に達成するものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである
【図面の簡単な説明】
【００５４】
【図１】図１は脚式ロボット６の歩行の概略を示す図である。
【図２】図２はコンピュータ装置１４の機能をブロック化して示す図である。
【図３】図３はコンピュータ装置１４が実施する処理を説明するフローチャートである。
【図４】図４は脚式ロボット６の支持脚の足平配置の推移を示す図である。
【図５】図５は脚式ロボット６の足先軌道の修正に用いるゲインの特徴を示す図である。
【符号の説明】
【００５５】
６・・・脚式ロボット
７，８，９，１０・・・足先軌道
１２・・・体幹
１４・・・コンピュータ装置
１８・・・頭部
２０・・・右脚
２２・・・左脚
２１０・・・歩容データ記憶装置
２１２・・・関節角群計算装置
２１４・・・アクチュエータ制御部
２１６・・・ロボットの機械系
２１８・・・エンコーダ
２２０・・・頭部位置検出装置
２２２・・・頭部方向検出装置
２２４・・・支持脚足平配置計算装置
２２６・・・着地配置計算装置
２２８・・・補正量計算装置
２３０・・・加算器
２３２・・・体幹歩容計算装置
【図１】
2007007801.tif 000003
【図２】
2007007801.tif 000004
【図３】
2007007801.tif 000005
【図４】
2007007801.tif 000006
【図５】
2007007801.tif 000007