(57)【要約】【課題】周期的に跳躍する脚式ロボットであって、跳躍後の着地タイミングを予定したタイミングに一致させて、円滑に着地する脚式ロボットを実現する。【解決手段】脚式ロボット１００の計測部１２６は、第ｋ跳躍周期における空中相の継続時間を計測する。差分器１２４は、第ｋ跳躍周期における空中相の目標継続時間と計測継続時間の時間差を算出する。目標重心速度決定部１２８は、時間差ΔＴが解消されるように、第ｋ＋１跳躍周期における踏み切りタイミングの重心の目標鉛直方向速度を算出する。第ｋ＋１跳躍周期において、算出された目標鉛直方向速度を実現するように各関節のモータ１０９が制御される。これによって、第ｋ＋１跳躍周期では、第ｋ周期に生じた時間差ΔＴを補償することができ、着地タイミングを予定されたタイミングに一致させて円滑に着地する跳躍動作を実現できる。【選択図】図２
2008062330.tif 000002
【特許請求の範囲】
【請求項１】
脚部の関節を駆動することによって床に対する踏み切り動作を行って脚部を宙に浮かせた後に床に着地する跳躍動作を周期的に繰り返す脚式ロボットであり、
踏み切り動作終了時点である踏み切り時点から着地時点までの脚部が宙に浮いている間の時間を跳躍時間として、目標とする目標跳躍時間を記憶する記憶手段と、
実際の跳躍動作における実跳躍時間を計測する計測手段と、
前記目標跳躍時間と実跳躍時間との時間差に基づいて、前記関節を駆動する駆動手段と、
を備えることを特徴とする脚式ロボット。
【請求項２】
脚部が床に接触した状態を検知することによって、踏み切り時点と着地時点を特定する時点特定手段をさらに備えることを特徴とする請求項１に記載の脚式ロボット。
【請求項３】
計測手段は、時点特定手段が特定した踏み切り時点から着地時点までの間の時間を計測することを特徴とする請求項２に記載の脚式ロボット。
【請求項４】
特定の跳躍周期における前記時間差に基づいて、特定の跳躍周期以降の一の跳躍周期の踏み切り時点における脚式ロボットの重心に関する目標鉛直方向速度を決定する速度決定手段を備え、
前記駆動手段は、速度決定手段によって決定された目標鉛直方向速度を実現するように関節を駆動することを特徴とする請求項１から３のいずれか１項に記載の脚式ロボット。
【請求項５】
漸近的に前記目標鉛直方向速度に到達するように前記「一の跳躍周期」の踏み切り動作における重心の目標軌道を生成する目標重心軌道生成手段と、
生成された重心の目標軌道に基づいて、前記「一の跳躍周期」の踏み切り動作における各関節の目標関節角の時系列データを算出する目標関節角算出手段をさらに備え、
前記駆動手段は、算出された目標関節角の時系列データに基づいて関節を駆動することを特徴とする請求項４に記載の脚式ロボット。
【請求項６】
速度決定手段は、前記「特定の跳躍周期」の前記時間差に略比例する補正速度量を算出し、前記「一の跳躍周期」の踏み切り時点における目標鉛直方向速度に、前記補正速度量を加算した速度を新たな目標鉛直方向速度に決定することを特徴とする請求項４又は５に記載の脚式ロボット。
【発明の詳細な説明】
【技術分野】
【０００１】
脚部の関節を駆動することによって床に対する踏み切り動作を行って脚部を宙に浮かせた後に床に着地する跳躍動作を周期的に繰り返す脚式ロボットに関する。なお、本明細書では脚式ロボットを単にロボットと称する場合がある。
【背景技術】
【０００２】
脚部の関節を駆動することによって移動する脚式ロボットが開発されている。脚部の数はいくつでもよい。脚式ロボットは、２脚であれば人間のように移動し、４脚であれば動物のように移動する。１脚であればホッピングしながら移動する。
人間や動物は、高速に移動する際には「歩行」よりも「走行」という動作を行う。脚式ロボットにおいても、高速に移動するために「走行」という動作が行えることを好ましい。なお、「歩行」とは、常にいずれかの脚部が接地しながら移動することであり、「走行」とは、脚部が接地している状態と全ての脚部が宙に浮いている状態を周期的に繰り返しながら移動することをいう。本明細書では、周期的に繰り返される２つの状態を一組として跳躍動作と称し、一跳躍動作に要する時間を跳躍周期と称する。換言すれば、「走行」とは、跳躍動作を周期的に繰り返す動作と表現することができる。１脚の脚式ロボットがホッピングしながら移動する動作も、跳躍動作を周期的に繰り返す動作ということができる。
「走行」或いは「ホッピング」において周期的に繰り返される前記２つの状態のうち、脚部が接地している状態におけるロボットの動作を踏み切り動作と称する。踏み切り動作の終了時点、即ち、脚部が接地している状態から全ての脚部が宙に浮いている状態に切り替わる時点を踏み切り時点（踏み切りタイミング）と称する。また、踏み切り時点から床に着地する着地時点（着地タイミング）までの、脚部が宙に浮いている間の時間を跳躍時間と称する。また、本明細書では、各跳躍周期において、脚部が宙に浮いている期間（跳躍時間に対応する期間）を空中相と称し、空中相に先立って脚部が床に接地している期間（即ち、踏み切り動作の期間）を接地相と称する場合がある。
走行（跳躍）する脚式ロボットが例えば特許文献１や特許文献２に開示されている。
【０００３】
【特許文献１】特開平２００３−８０４７７号公報
【特許文献１】国際公開ＷＯ２００３／０５７４２９号パンフレット
【発明の開示】
【発明が解決しようとする課題】
【０００４】
歩行や走行などのロボットの動作は事前にコンピュータシミュレーションにより解析され、安定して歩行や走行するためのロボットの動作データが作成される。動作データは、体幹リンクや足先リンクなど、ロボットに固定された基準点の軌道や、ロボットの重心の軌道として記述される。それらの動作データは、ロボットの歩行動作や走行動作を特定するデータであることから、歩容データと呼ばれることがある。ロボットを実際に動作させる際には、歩容データが各関節の目標関節角の時系列データに変換されて、各関節が駆動される。
ロボットの動作を完全にシミュレーションすることは不可能であるため、作成された動作データによって特定される動作と、ロボットの実際の動作の間には差異が生じる。この差異をシミュレーション誤差と称する。「歩行」する脚式ロボットでは、シミュレーション誤差は歩行中に逐次フィードバック制御によって補償される。
「走行」では空中相から接地相に移行する際に、脚式ロボットの状態が、宙に浮いている状態（空中相）から、脚部によって床に支持される状態（接地相あるいは踏み切り動作期間）へ不連続に変化する。この不連続な移行時点は、換言すれば、前記した着地時点である。着地時点において、前記のシミュレーション誤差が不連続的に顕在化すると、歩行時のような逐次的なフィードバック制御では補償が困難となり、脚式ロボットの動作が不安定となりやすい。特に２脚を有する脚式ロボットでは、動作が不安定となることは転倒に至る虞がある。そのため、安定した走行を実現するために、脚式ロボットでは、着地時点におけるシミュレーション誤差の影響を極力排除することが望まれる。
【課題を解決するための手段】
【０００５】
着地時点で不連続的に顕在化するシミュレーション誤差の代表的なものに、シミュレーションによって得られた着地タイミング（即ち、歩容データ上での着地タイミング）と脚式ロボットが現実に走行する際の着地タイミングがずれることが挙げられる。着地タイミングは、踏み切りタイミングから跳躍時間（換言すれば空中相の継続時間）だけ経過した時点として決定される。跳躍時間は、踏み切り時の重心の鉛直方向の速度に比例する。本願発明は、踏み切り時の重心の鉛直方向の速度を制御することによって、着地タイミングをシミュレーションによって得られた着地タイミングに一致させる。即ち、跳躍動作を周期的に繰り返す脚式ロボットであり、着地タイミングのシミュレーション誤差を補償して円滑に着地することのできる脚式ロボットを実現する。
【０００６】
本発明は、「走行」や「ホッピング」が、周期的な跳躍動作の連続であることに着目する。跳躍動作が周期的であれば、現在の跳躍周期における跳躍時間の目標値である目標跳躍時間と実際に跳躍したときに計測する実跳躍時間との時間差は、次の跳躍周期においてもほぼ同等の値となることが予想される。そこで、現在の跳躍周期における前記時間差に基づいて、次の跳躍周期の踏み切り時点における重心の鉛直方向の速度を決定すれば、次の跳躍周期においては時間差を解消することができる。即ち、着地タイミングのシミュレーション誤差を補償することができる。なお、現在の跳躍周期における時間差に基づいて次の跳躍周期の踏み切り時点における重心の鉛直方向の速度を決定することが望ましいが、特定の跳躍周期における時間差に基づいて、その特定の跳躍周期以降の一の跳躍周期の踏み切り時点における重心の鉛直方向の速度を決定しても同等の効果を得られる。そのような効果は、ロボットが関節を駆動することによって動作する観点から表現すれば、目標跳躍時間と実跳躍時間との時間差に基づいてロボットの関節を駆動することによって得ることができるといえる。
【０００７】
本発明は、脚部の関節を駆動することによって床に対する踏み切り動作を行って脚部を宙に浮かせた後に床に着地する跳躍動作を周期的に繰り返す脚式ロボットに具現化できる。このロボットは、目標とする目標跳躍時間を記憶する記憶手段と、実際の跳躍動作における実跳躍時間を計測する計測手段と、前記目標跳躍時間と実跳躍時間との時間差に基づいて、前記関節を駆動する駆動手段を備える。
【０００８】
上記の脚式ロボットによれば、目標跳躍時間と実跳躍時間の時間差に基づいて関節が駆動される。これによって、前述したように、ロボットが実際に跳躍したときの着地タイミングをシミュレーションによって得られた着地タイミングに一致させることができる。
【０００９】
脚式ロボットは、脚部が床に接触した状態を検知することによって、踏み切り時点と着地時点を特定する時点特定手段を備えることが好ましい。時点計測手段によって、実跳躍時間を計測することができる。即ち、前記計測手段は、時点特定手段が特定した踏み切り時点から着地時点までの間の時間を計測することによって、実跳躍時間を計測することができる。脚部が床に接触した状態を検知するには、例えば、脚部の下端に床との接触を検出する接触センサを備えればよい。
【００１０】
脚式ロボットは、特定の跳躍周期における前記時間差に基づいて、特定の跳躍周期以降の一の跳躍周期の踏み切り時点における脚式ロボットの重心に関する目標鉛直方向速度を決定する速度決定手段を備えることが好ましい。この場合、前記駆動手段は、速度決定手段によって決定された目標鉛直方向速度を実現するように関節を駆動する。
【００１１】
速度決定手段によって、「一の跳躍周期」の踏み切り時における脚式ロボットの重心の目標鉛直方向速度が、「特定の跳躍周期」における目標跳躍時間と実跳躍時間の時間差に基づいて決定される。
脚部と床が接触しているか否かは、容易かつ正確に検出することができる。従って、実跳躍時間は、接触センサによって容易かつ正確に検出することができる。一方、重心の速度を正確に計測することは困難である。本発明は、特定の跳躍周期以降の一の跳躍周期の踏み切り時における脚式ロボットの重心の目標鉛直方向速度を決定することに際して、その特定の跳躍期間における実跳躍時間（跳躍時間の計測値）を利用する。これによって、特定の跳躍期間における踏み切り時の重心の速度を計測することなく、特定の跳躍周期以降の一の跳躍周期の踏み切り時における脚式ロボットの重心の目標鉛直方向速度を決定することができる。
【００１２】
駆動手段が、速度決定手段が決定した目標鉛直方向速度を実現するように関節を駆動するには次のように構成することが好適である。
漸近的に前記目標鉛直方向速度に到達するように前記「一の跳躍周期」の踏み切り動作（即ち接地相）における重心の目標軌道を生成する目標重心軌道生成手段と、生成された重心の目標軌道に基づいて、前記「一の跳躍周期」の踏み切り動作（接地相）における各関節の目標関節角の時系列データを算出する目標関節角算出手段をさらに備える。
駆動手段は、算出された目標関節角の時系列データに基づいて関節を駆動する。
【００１３】
一の跳躍周期の踏み切り動作における重心の速度変化を漸近的にすることによって、踏み切り時点に向かって行なわれる踏み切り動作におけるロボット全体の動作を円滑にすることができる。
【００１４】
本発明の脚式ロボットでは、脚式ロボットの速度設定手段は、前記「特定の跳躍周期」の前記時間差に略比例する補正速度量を算出し、前記「一の跳躍周期」の踏み切り時点における目標鉛直方向速度に、前記補正速度量を加算した速度を新たな目標鉛直方向速度に決定することが好ましい。
前述したように、実跳躍時間は、ロボットの踏み切り時点における重心の鉛直方向速度に比例する。従って、特定の跳躍周期における目標跳躍時間から実跳躍時間を差し引いた時間差は、その特定の跳躍周期の踏み切り時点における目標鉛直方向速度と重心の実際の鉛直方向速度の誤差に比例する。上記の構成によれば、速度の誤差を正確に補償することができる。即ち、着地タイミングのずれを正確に補償することができる。
【発明の効果】
【００１５】
本発明によれば、跳躍動作を周期的に繰り返す脚式ロボットであり、着地タイミングをコンピュータシミュレーションによって予定したタイミングに一致させることができ、円滑に着地する脚式ロボットを実現する。
【実施例】
【００１６】
実施例に係る脚式ロボット１００の模式的側面図を図１に示す。脚式ロボット１００は、１つの脚部１０４が体幹リンク１０２に連結されたロボットである。脚部の数はいくつでもよいが、本実施例では、ロボットの動作が理解しやすいように１つの脚部１０４を有する脚式ロボットを扱う。
【００１７】
ロボット１００の脚部１０４は、３つのリンク１０６ａ、１０６ｂ、１０６ｃと、３つの関節１０８ａ、１０８ｂ、１０８ｃを有する。以下では、３つのリンク１０６ａ、１０６ｂ、１０６ｃを総称する場合にはリンク１０６と表現する。同様に、３つの関節１０８ａ、１０８ｂ、１０８ｃを総称する場合には関節１０８と表現する。
関節１０８ａは、体幹リンク１０２とリンク１０６ａを回転可能に連結する。関節１０８ｂは、リンク１０６ａとリンク１０６ｂを回転可能に連結する。関節１０８ｃは、リンク１０６ｂとリンク１０６ｃを回転可能に連結する。リンク１０６ｃは、脚部１０４の先端リンクであり、足平リンク１０６ｃと称する場合がある。
足平リンク１０６ｃの下面には、足平リンク１０６ｃと床Ｆが接触しているか否かを検出する接触センサ１１２が配置されている。
各関節１０８には、モータ（不図示）が内蔵されている。モータは、コントローラ１１０によって駆動される。モータを駆動することによって、各関節１０８の関節角（即ち、関節１０８に連結された２つのリンクの相対位置関係）を制御することができる。
この脚式ロボット１００は、コントローラ１１０が関節１０８を適切に駆動することによって、跳躍を周期的に繰り返すことができる。
【００１８】
図１に示すＧは、脚式ロボット１００全体の重心を表す。重心Ｇの位置は、脚部１０４の姿勢によって変化する。脚部１０４の各リンク１０６と体幹リンク１０２の質量分布が既知であるので、重心Ｇの位置は、各関節１０８の関節角から幾何学的な計算によって求めることができる。
【００１９】
図２に、脚式ロボット１００のコントローラ１１０のブロック図を示す。
コントローラ１１０は、記憶部１２０、差分器１２４、計測部１２６、目標重心速度決定部１２８、目標重心軌道生成部１３０、変換部１３２、及びモータドライバ１３４を備える。記憶部１２０は具体的にはメモリ若しくはハードディスクなどのストレージ装置である。差分器１２４、計測部１２６、目標重心速度決定部１２８、目標重心軌道生成部１３０、変換部１３２、及びモータドライバ１３４は、具体的にはソフトウエアのモジュールとしてコントローラ１１０に実装されている。
【００２０】
記憶部１２０には、歩容データ１２２が格納されている。歩容データ１２２は、足平リンク１０６ｃの軌道のデータ、及び脚式ロボット１００の重心Ｇの軌道のデータを含んでいる。足平リンク１０６ｃの軌道データとは、足平リンク１０６ｃの位置と姿勢の時系列データである。重心Ｇの軌道データとは、重心Ｇの位置の時系列データである。歩容データ１２２には体幹リンク１０２の軌道データは含まれていない。しかし、体幹リンク１０２を含む全てのリンクの質量分布は既知であるので、重心Ｇの軌道と足平リンク１０６ｃの軌道から、体幹リンク１０２の軌道を求めることができる。従って、歩容データ１２２には、体幹リンクの軌道データが明示的に含まれていなくとも、体幹リンクの軌道データと同等の情報は含まれている。
軌道データは、位置の時系列データであるので、そのデータから速度と加速度を求めることができる。
【００２１】
歩容データ１２２は、脚式ロボット１００の動作をコンピュータ上でシミュレーションして事前に作成され、記憶部１２０に格納される。脚式ロボット１００を動作させる際には、歩容データ１２２から軌道データが読み出され、軌道データから各関節１０８の目標関節角の時系列データが生成される。軌道データから目標関節角への変換関数は、脚式ロボット１００の幾何学的なリンクの連結構造に基づいて決定される。各関節１０８の目標関節角に基づいて各関節１０８に内蔵されたモータ１０９を駆動することで、歩容データ１２２によって記述される動作が実現される。但し、歩容データ１２２を作成する際の脚式ロボット１００のシミュレーションモデルは、現実のロボットを精密にモデル化していないので、歩容データが記述する動作と、実現される動作には誤差が生じる。以下では、図２と図３を参照して、脚式ロボット１００が周期的に跳躍する際の着地タイミングの誤差を低減する機能について説明する。
【００２２】
図３は、脚式ロボット１００の周期的な跳躍動作を説明する図である。図３の縦軸はＺ方向（鉛直方向）の位置を表し、横軸は時間を表す。時刻ｔ１（ｋ）は、第ｋ番目の跳躍周期における踏み切りタイミングを表す。時刻ｔ２（ｋ）は、第ｋ番目の跳躍周期における着地タイミングを表す。図３より、時刻ｔ２（ｋ−１）から時刻ｔ２（ｋ）までの期間が第ｋ番目の跳躍周期を表す。また、時刻ｔ２（ｋ−１）から時刻ｔ１（ｋ）までの期間が、第ｋ番目の跳躍周期の踏み切り動作の期間である。換言すれば、時刻ｔ２（ｋ−１）から時刻ｔ１（ｋ）までの期間が、第ｋ番目の跳躍周期の接地相の継続時間を表す。時刻ｔ１（ｋ）から時刻ｔ２（ｋ）までの期間が、第ｋ番目の跳躍周期における跳躍時間を表す。換言すれば、時刻ｔ１（ｋ）から時刻ｔ２（ｋ）までの期間が、第ｋ番目の跳躍周期の空中相の継続時間を表す。以下では、「第ｋ番目の跳躍周期」を単に「第ｋ周期」と称する。
また、以下では、脚式ロボット１００の重心の鉛直方向の速度に着目して説明し、重心の水平方向の速度には言及しない。脚式ロボット１００が水平方向に移動する場合、空中相では重心は等速運動を行なうことになり、着地タイミングに影響しないからである。
【００２３】
図３に破線で示す曲線は、脚式ロボット１００の重心Ｇの予定重心軌道Ｌｇｒである。ここで、「予定重心軌道Ｌｇｒ」は、歩容データ１２２に格納されている重心Ｇの軌道である。なお、第ｋ周期における予定重心軌道をＬｇｒ（ｋ）と表す。跳躍周期を特定しない場合には予定重心軌道をＬｇｒと表す。
【００２４】
脚式ロボット１００は、時刻ｔ１（ｋ）で踏み切って時刻ｔ２（ｋ）で着地し、現在は時刻ｔｃであるとする。時刻ｔｃまでの脚式ロボット１００の重心Ｇの実際の軌道は図３に実線で示す曲線で示している。時刻ｔ１（ｋ）が周期ｋにおける踏み切りタイミングである。時刻ｔ２（ｋ）が、周期ｋにおける着地タイミングである。
図３に（ａ）と（ｃ）に示すように時刻ｔ１（ｋ）と時刻ｔ２（ｋ）では、脚式ロボット１００は接地しており、（ｂ）に示すように第ｋ周期の空中相では脚式ロボット１００は宙に浮いている状態となる。また、（ｄ）に示すように、時刻ｔｃでは、脚式ロボット１００は沈み込んだ姿勢となる。
【００２５】
図１に示したように、足平リンク１０６ｃの下端に配置された接地センサ１１２によって、脚式ロボット１００が時刻ｔ１（ｋ）で踏み切って、時刻ｔ２（ｋ）で着地したことが検知できる。図２に示すように、接地センサ１２２の出力信号はコントローラ１１０の計測部１２６へ入力される。計測部１２６では、時刻ｔ１（ｋ）から時刻ｔ２（ｋ）までの時間、即ち、第ｋ周期の空中相の継続時間Ｔｆｓ（ｋ）を計測する。計測された値が、計測継続時間（実跳躍時間）である。踏み切り時点は、接地センサ１１２の出力によって、全ての脚部が接地状態から非接地状態に変化した時点として判断できる。また着地時点んは、全ての脚部が非接地状態から少なくとも一の脚部が接地したことを検知した時点として判断できる。これらの判断は、計測部１２６で行なわれる。別言すれば、接地センサ１２２と計測部１２６は、踏み切り時点と着地時点を判断する時点判断部と表現することができる。
計測部１２６が計測した計測継続時間Ｔｆｓ（ｋ）は、差分器１２４に入力される。差分器１２４には、記憶部１２０の歩容データ１２２のうち、第ｋ周期の空中相の目標継続時間Ｔｆｒ（ｋ）が入力される。この目標持続時間Ｔｆｒ（ｋ）は、歩容データ１２２に格納されている重心Ｇの予定重心軌道Ｌｇｒと、踏み切り時と着地時の重心Ｇの高さＨ０から図３に示すように求められる。差分器１２４では、目標持続時間Ｔｆｒ（ｋ）から計測継続時間Ｔｆｓ（ｋ）を差し引いた時間差ΔＴが出力される。出力された時間差ΔＴは、目標重心速度決定部１２８に入力される。
【００２６】
目標重心速度決定部１２８では、時間差ΔＴに基づいて、次の第ｋ＋１周期における踏み切りタイミングの重心Ｇの鉛直方向の目標速度Ｖｇｚ（ｋ＋１）が決定される。目標速度Ｖｇｚ（ｋ＋１）は、具体的には次の１式で決定される。
Ｖｇｚ（ｋ＋１）＝Ｖｇｚ（ｋ）＋（ｇ／２）×ΔＴ        ・・・（１式）
ここで、「ｇ」は、重力加速度である。Ｖｇｚ（ｋ）は、第ｋ周期における踏み切りタイミングでの重心Ｇの鉛直方向の目標速度（目標鉛直方向速度）であり、目標重心速度決定部１２８が前回の演算で決定した値である。
【００２７】
１式の意味は次の通りである。
第ｋ周期における踏み切りタイミングでは、重心Ｇの鉛直方向の目標速度（目標鉛直方向速度）がＶｇｚ（ｋ）となるように各関節は制御されている。目標速度Ｖｇｚ（ｋ）は、第ｋ周期における空中相の継続時間（即ち跳躍時間）が目標継続時間Ｔｆｒ（ｋ）（即ち目標跳躍時間）となるように調整された速度である。しかしながら第ｋ周期が終了したときに、第ｋ周期における空中相の継続時間を計測するとその値はＴｆｓ（ｋ）であった。目標継続時間Ｔｆｒ（ｋ）と計測継続時間Ｔｆｓ（ｋ）の時間差ΔＴが生じたのは、目標速度Ｖｇｚ（ｋ）が与えられたにも係わらず、第ｋ周期の踏み切りタイミングの重心の実際の速度がＶｇｚ（ｋ）と異なったからである。これは、重心Ｇの鉛直方向の目標速度Ｖｇｚ（ｋ）を実現するための関節のモータへの指令値を生成するための変換関数に、実際には存在する物理現象が考慮されていないからである。考慮されていない物理現象とは例えば、リンクの撓みや、モータの粘性などである。
ここで、次の第ｋ＋１周期において、ΔＴをゼロとすることが重要である。空中相では重心Ｇに加わる外力は重力加速度ｇのみであるから、時間差ΔＴに起因する鉛直方向の重心Ｇの速度差ΔＶ（目標速度Ｖｇｚ（ｋ）と実現された速度との差）は、（ｇ／２）×ΔＴで与えられる。従って、次の第ｋ＋１周期における踏み切りタイミングの重心Ｇの鉛直方向の目標速度をΔＶだけ増分すれば、第ｋ＋１周期では、空中相の継続時間の計測値Ｔｆｓ（ｋ＋１）を目標継続時間Ｔｆｒ（ｋ＋１）に一致させることが可能となる。
こうして、目標重心速度決定部１２８によって、次の第ｋ＋１周期における時間差ΔＴを補償する目標速度Ｖｇｚ（ｋ＋１）が決定される。
【００２８】
決定された目標速度Ｖｇｚ（ｋ＋１）は、目標重心軌道生成部１３０に入力される。目標重心軌道生成部１３０では、目標速度Ｖｇｚ（ｋ＋１）に基づいて、第ｋ＋１周期における接地相（時刻ｔ２（ｋ）から時刻ｔ１（ｋ＋１）までの期間）の重心Ｇの目標軌道を生成する。具体的には次の通りである。
計測部１２６が計測継続時間Ｔｆｓ（ｋ）を出力するのは、第ｋ周期の空中相が終了した時刻ｔ２（ｋ）以降であるから、目標重心速度決定部１２８が目標速度Ｖｇｚ（ｋ＋１）を決定するのも時刻ｔ２（ｋ）以降となる。従って、目標重心軌道生成部１３０が処理を行なうときには脚式ロボット１００は、時刻ｔ２（ｋ）以降であり、例えば図３の時刻ｔｃである。目標重心軌道生成部１３０は、時刻ｔｃから第ｋ＋１周期における接地相の終了時（時刻ｔ１（ｋ＋１））までの重心Ｇの目標軌道Ｌｇ（ｋ＋１）を生成する。目標軌道Ｌｇ（ｋ＋１）は次のように生成される。目標重心軌道生成部１３０は、歩容データ１２２に格納された第ｋ＋１周期の予定重心軌道Ｌｇｒ（ｋ＋１）を記憶部１２０から読み出して、第ｋ＋１周期における予定踏み切りタイミング時刻ｔ１（ｋ＋１）を特定する。現在時刻（時刻Ｔｃ）には脚式ロボット１００の重心Ｇは図３の（ｄ）の位置にあることがから解っているので、時刻Ｔｃのその位置から時刻ｔ１（ｋ＋１）の高さＨ０の位置までを連続する曲線で繋げばその曲線が重心の目標軌道Ｌｇ（ｋ＋１）となる。またこのとき、時刻ｔ１（ｋ＋１）における重心Ｇの鉛直方向の目標速度は、目標重心速度決定部１２８によって、目標速度Ｖｇｚ（ｋ＋１）に決定されている。従って、目標軌道Ｌｇ（ｋ＋１）の終点において、重心Ｇの鉛直方向の速度が目標速度Ｖｇｚ（ｋ＋１）に漸近的に到達するように決定される。重心Ｇの鉛直方向の速度は、図３の重心Ｇの軌道の接線に等しい。従って、時刻ｔ１（ｋ＋１）における重心Ｇの軌道の接線が目標速度Ｖｇｚ（ｋ＋１）に一致するように重心の目標軌道Ｌｇ（ｋ＋１）を設定すれば、踏み切りタイミング（時刻ｔ１（ｋ＋１））に向って漸近的に目標軌道Ｌｇ（ｋ＋１）に到達する目標軌道を生成することができる。そのようにして生成された目標軌道Ｌｇ（ｋ＋１）を図３に一点鎖線で示す。
なお、踏み切りタイミングにおける重心Ｇの速度を与えたときの重心Ｇの軌道を決定する手法は、例えば、特許２００６−２１２７３６号公報に開示された手法を利用すればよい。
【００２９】
こうして目標重心軌道生成部１３０によって生成された目標重心軌道Ｌｇ（ｋ＋１）は、次に図２に示す変換部１３２へ入力される。変換部１３２では、目標重心軌道Ｌｇ（ｋ＋１）と歩容データ１２２に格納されている足平リンク１０６ｃの軌道から、各関節の目標関節角の時系列データＬθ（ｋ＋１）を算出する。この変換は、次のように行われる。目標重心軌道Ｌｇ（ｋ＋１）と足平リンク１０６ｃの軌道から体幹リンク１０２の軌道を算出する。軌道とは、位置と姿勢の時系列データであるので、各時刻における足平リンク１０６ｃと体幹リンク１０２の位置と姿勢が求まる。各時刻における足平リンク１０６ｃと体幹リンク１０２の位置と姿勢が求まれば、脚式ロボット１００の幾何学的構造から各時刻における各関節の目標関節角データ（即ち、目標関節角の時系列データ）Ｌθ（ｋ＋１）が求められる。ロボットの各点の位置と姿勢から各関節の関節角を求める処理はロボットの逆動力学と呼ばれる。
【００３０】
変換部１３２によって生成された各関節の目標関節角の時系列データＬθ（ｋ＋１）は、モータドライバ１３４に送られる。モータドライバ１３４では、目標関節角の時系列データＬθ（ｋ＋１）に追従するように各関節１０８のモータ１０９を駆動する。
【００３１】
こうして、第ｋ周期において発生した時間差ΔＴが、第ｋ＋１周期で補償される。その結果、図３の（ｆ）に示すように、第ｋ＋１周期における着地タイミング（時刻ｔ２（ｋ＋１））では、脚式ロボット１００は、歩容データ１２２に格納された予定重心軌道Ｌｇｒに一致する。即ち、現実の着地タイミングを予定された着地タイミングに一致させることができる。これによって、予定重心軌道Ｌｇｒで予定されている動作に近い円滑な着地を実現することができる。
なお、図３において、第ｋ＋１周期における踏み切りタイミング（時刻ｔ１（ｋ＋１））の前後において、破線で示す予定重心軌道Ｌｇｒと一点鎖線で示す目標重心軌道Ｌｇ（ｋ＋１）の間の差異が生じている。この差異の意味は次の通りである。目標重心軌道Ｌｇ（ｋ＋１）は目標であり、前述したように、考慮されていないシミュレーション誤差によって、脚式ロボット１００は目標重心軌道Ｌｇ（ｋ＋１）の通りには動作しない。目標重心軌道Ｌｇ（ｋ＋１）を目標として脚式ロボット１００を動作させる結果として、破線で示す予定重心軌道Ｌｇｒに追従するように脚式ロボット１００が動作するのである。
【００３２】
着地タイミングは、着地直前の足先と床との距離を計測すれば推定することができる。或いは、踏み切りタイミングの重心の鉛直方向速度を計測すればリアルタイムに推定することができる。着地タイミングがリアルタイムに推定できれば、推定結果に基づいて、着地時に安定するように脚式ロボット１００の姿勢を制御できる可能性はある。しかしながら前者は、着地の直前に推定が行なわれるため、シミュレーション誤差を補償するための時間が充分確保できない。後者は、重心の速度を正確に計測することが難しい。いずれの場合も、着地時に安定するように脚式ロボット１００の姿勢を制御することは困難である。
一方、上記実施例では、跳躍の第ｋ周期における空中相の目標継続時間と計測継続時間の時間差から、第ｋ＋１周期における踏み切りタイミングの鉛直方向の重心速度を決定する。空中相の継続時間は、脚式ロボット１００の脚部が床に接しているか否かを検知することで容易にかつ正確に計測できる。第ｋ＋１周期における着地のタイミングを予定された着地タイミングに一致するように、正確に脚式ロボット１００を制御することができる。
【００３３】
上記実施例では、本願発明を理解し易いように１脚を有する脚式ロボット１００を扱った。本発明は、２脚や４脚など、複数の脚部を有する脚式ロボットにも適用できる。複数の脚部を有する脚式ロボットでは、全ての脚が一通り動作するまでの周期を一跳躍周期とすればよい。
【００３４】
また、上記実施例の脚式ロボットの構成は、次のように換言することができる。差分器１２４によって、目標跳躍時間と実跳躍時間の時間差が算出される。目標重心軌道生成部１３０と変換部１３２を介して、関節を駆動する駆動手段であるモータドライバ１３４は、時間差に基づいて関節１０８を駆動する。
【００３５】
また、１式のＶｇｚ（ｋ）は、Ｖｇｚ（ｋ＋１）に置き換えることもできる。Ｖｇｚ（ｋ＋１）は、歩容データ１２２から求められる予め設定された第ｋ＋１周期の踏み切り時点における重心の目標鉛直方向速度である。これに対して１式右辺の第２項（ｇ／２）×ΔＴは、時間差ΔＴに基づく目標鉛直方向速度の補正量と見ることができる。この場合の１式は、次のように表現することができる。目標重心速度決定部１２８は、第ｋ＋１周期の踏み切り時点における重心の目標鉛直方向速度Ｖｇｚ（ｋ＋１）に、第ｋ周期の時間差ΔＴに比例する目標鉛直方向速度の補正量（ｇ／２）×ΔＴを加算した速度を、第ｋ＋１周期の踏み切り時点における重心の新たな目標鉛直方向速度に決定する。
【００３６】
上記説明した本発明に係る脚式ロボットは、また、次のように表現することができる。
（１）脚部の関節を駆動することによって、踏み切り、宙に浮き、着地する跳躍動作を周期的に繰り返す脚式ロボットであり、各跳躍周期において、脚部が宙に浮いている期間を空中相と定義し、空中相に先立って脚部が床に接地している期間を接地相と定義したときに、各跳躍周期における空中相の目標継続時間を記憶する記憶手段と、各跳躍周期における空中相の継続時間を計測する計測手段と、現在の跳躍周期における目標継続時間と計測継続時間の差に基づいて、次の跳躍周期における踏み切り時の脚式ロボットの重心の目標鉛直方向速度を決定する速度決定手段と、前記目標鉛直方向速度を実現するように関節を駆動する駆動手段と、を備えることを特徴とする脚式ロボット。
（２）漸近的に前記目標鉛直方向速度に到達するように次の跳躍周期の接地相における重心の目標軌道を生成する目標重心軌道生成手段と、生成された重心の目標軌道に基づいて、次の跳躍周期の接地相における各関節の目標関節角の時系列データを算出する目標関節角算出手段をさらに備え、前記駆動手段は、算出された目標関節角の時系列データに基づいて関節を駆動することを特徴とする（１）の脚式ロボット。
（３）脚部の下端に、床との接触を検出する接触センサを備えており、計測手段は、接触センサの出力信号に基づいて、脚部が床から離れた時点から床に接触する時点までの時間を空中相の継続時間として計測することを特徴とする（１）又は（２）の脚式ロボット。
（４）速度決定手段は、目標継続時間から計測継続時間を差し引いた時間差に略比例した速度を現在の跳躍周期における目標鉛直方向速度に加算した速度を、次の跳躍周期における目標鉛直方向速度に決定することを特徴とする（１）から（３）のいずれかの脚式ロボット。
【００３７】
以上、本発明の具体例を詳細に説明したが、これらは例示に過ぎず、特許請求の範囲を限定するものではない。特許請求の範囲に記載の技術には、以上に例示した具体例を様々に変形、変更したものが含まれる。
本明細書または図面に説明した技術要素は、単独であるいは各種の組合せによって技術的有用性を発揮するものであり、出願時請求項記載の組合せに限定されるものではない。また、本明細書または図面に例示した技術は複数目的を同時に達成し得るものであり、そのうちの一つの目的を達成すること自体で技術的有用性を持つものである。
【図面の簡単な説明】
【００３８】
【図１】脚式ロボットの模式的側面図である。
【図２】脚式ロボットのコントローラのブロック図である。
【図３】脚式ロボットの周期的跳躍動作を説明する図である。
【符号の説明】
【００３９】
１００：脚式ロボット
１０２：体幹リンク
１０４：脚部
１０６：リンク
１０８：関節
１１０：コントローラ
１１２：接地センサ
１２０：記憶部
１２４：差分器
１２６：計測部
１２８：目標重心速度決定部
１３０：目標重心軌道生成部
１３２：変換部
１３４：モータドライバ
【図１】
2008062330.tif 000003
【図２】
2008062330.tif 000004
【図３】
2008062330.tif 000005