前記課題を解決するための本発明の第1態様の脚式移動ロボットは、基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期とを繰り返しながら移動する脚式移動ロボットであって、空中期から着床期に移り変わる際に、着床する予定の脚体の足部の床面に対する傾斜角度が徐々に変化し、該脚体の着床時に足部の接地面と床面とが平行になるように脚体を駆動することを特徴とする。
本発明の第1態様の脚式移動ロボットによれば、脚体の離床期の中間時点から着床期の開始時点にかけてこの脚体の足部の床面に対する傾斜角度が徐々に0に近づくように脚体の動作が制御される。これにより、離床期から着床期に移行した直後の脚体の足部(接地面)における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボットが受ける衝撃が緩和され得る。また、足部(接地面)と床面とのフリクションが大きなものとなるので、脚体の着床直前におけるロボットの移動速度およびヨー軸回りの角速度が大きくても、このフリクションによってスリップやスピンを防止することができる。
従って、本発明のロボットは、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行することができる。
また、本発明の第1態様の脚式移動ロボットは、脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように該脚体を駆動することを特徴とする。
本発明の脚式移動ロボットによれば、足部の先端部(爪先)で床面を蹴るような形で脚体の動作が制御される。これにより、ロボットの推進力が増強される一方、前記のように着床時にロボットの足底におけるスリップやスピンが防止されるので、ロボットをその挙動を安定なものとしながら高速移動させることができる。
さらに、本発明の第1態様の脚式移動ロボットは、脚体の離床期の中間時点から終了時点にかけて、足部先端部が足部後端部を基準として高い状態から徐々に同じ高さとなるように、該脚体を駆動することを特徴とする。
本発明の脚式移動ロボットによれば、離床期の中間時点から終了時点にかけて、足部を床面に対して爪先上がりの姿勢から、床面に平行な姿勢に近づけ、前記のようにロボットのスリップ等を防止し得る程度に当該足部(接地面)における着床面積を確保することができる。
また、本発明の第1態様の脚式移動ロボットは、脚体の離床期の開始時点から中間時点にかけて、足部先端部が足部後端部を基準として低い状態から徐々に同じ高さとなった後、徐々に高い状態になるように、該脚体を駆動することを特徴とする。
本発明の脚式移動ロボットによれば、離床期の開始時点から中間時点にかけて、足部を床面に対して踵上がりの姿勢から爪先上がりの姿勢としてから踵上がりの姿勢に近づけ、その後、前記のようにロボットのスリップ等を防止し得る程度に当該足部(接地面)における着床面積を確保することができる。
前記課題を解決するための本発明の第2態様の脚式移動ロボットは、上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床および着床を伴う各脚体の動作により移動する脚式移動ロボットであって、床面に対する足平の傾斜角度を測定する足平傾斜角度測定手段と、脚体の離床期の中間時点から着床期の開始時点にかけて、足平傾斜角度測定手段により測定された床面に対する該脚体の足平の傾斜角度が、徐々に0に近づくように、該脚体に対する足平の回動動作を制御する足平動作制御手段とを備えていることを特徴とする。
本発明の第2態様の脚式移動ロボットによれば、脚体の離床期の中間時点から着床期の開始時点にかけてこの脚体の足平(足底)の床面に対する傾斜角度が徐々に0に近づくように脚体に対する足平の回動動作が制御される。これにより、離床期から着床期に移行した直後の脚体の足平(足底)における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボットが受ける衝撃が緩和され得る。また、足底と床面とのフリクションが大きなものとなるので、脚体の着床直前におけるロボットの移動速度およびヨー軸回りの角速度が大きくても、このフリクションによってスリップやスピンを防止することができる。
従って、本発明のロボットは、脚体の足平における着床時の衝撃を緩和するとともにこの足平におけるスリップやスピンを回避して安定に歩行または走行することができる。
また、本発明の第2態様の脚式移動ロボットは、足平動作制御手段が、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定手段により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御することを特徴とする。
本発明の脚式移動ロボットによれば、足平の先端部(爪先)で床面を蹴るような形で当該足平の脚体に対する回動動作が制御される。これにより、ロボットの推進力が増強される一方、前記のように着床時にロボットの足底におけるスリップやスピンが防止されるので、ロボットをその挙動を安定なものとしながら高速移動させることができる。
さらに、本発明の第2態様の脚式移動ロボットは、足平動作制御手段が、脚体の離床期の中間時点から着床期の開始時点にかけて、足平傾斜角度測定手段により測定された床面に対する足平の傾斜角度が、足平の先端部が後端部よりも床面から遠くなるような負側の角度から徐々に減少して0になるように、該脚体に対する足平の回動動作を制御することを特徴とする。
本発明の脚式移動ロボットによれば、離床期の中間時点から着床期の開始時点にかけて、足平を床面に対して爪先上がりの姿勢から、床面に平行な姿勢に近づけ、前記のようにロボットのスリップ等を防止し得る程度に当該足底における着床面積を確保することができる。
また、本発明の第2態様の脚式移動ロボットは、足平動作制御手段が、脚体の離床期の開始時点から着床期の開始時点にかけて、足平傾斜角度測定手段により測定された床面に対する足平の傾斜角度が、正側に徐々に増大してから徐々に減少した後、足平の先端部が後端部よりも床面から遠くなるような負側に徐々に増大してから徐々に減少して0になるように、該脚体に対する足平の回動動作を制御することを特徴とする。
本発明の脚式移動ロボットによれば、離床期の開始時点から着床期の開始時点にかけて、足平を床面に対して踵上がりの姿勢から爪先上がりの姿勢としてから、さらに床面に平行な姿勢に近づけ、前記のようにロボットのスリップ等を防止し得る程度に当該足底における着床面積を確保することができる。
さらに、本発明の第2態様の脚式移動ロボットは、全ての脚体が離床している空中期を伴って移動することを特徴とする。
本発明の脚式移動ロボットによれば、空中期から脚体が着床するとき、他の脚体が着床している状態で当該脚体が着床する場合よりも当該脚体の着床衝撃が大きくなるものの、前記のように着床面積が大きく確保されることで着床時の衝撃を軽減することができる。
前記課題を解決するための本発明の第1態様の制御プラグラムは、基体に連結される複数の脚体を駆動することにより、複数の脚体のうちいずれかの足部に床反力が作用している着床期と、全ての脚体の足部に床反力が作用していない空中期とを繰り返しながら移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに対して付与するプログラムであって、空中期から着床期に移り変わる際に、着床する予定の脚体の足部の床面に対する傾斜角度が徐々に変化し、該脚体の着床時に足部の接地面と床面とが平行になるように前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
本発明の第1態様の制御プログラムによれば、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行するようにロボットを制御する機能が、このロボットに搭載されているコンピュータに付与される。
また、本発明の第1態様の制御プログラムは、脚体が離床する直前に、該脚体がその足部の先端部において着床したまま、該足部の後端部が床面から徐々に離れるように前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
さらに、本発明の第1態様の制御プログラムは、脚体の離床期の中間時点から終了時点にかけて、足部先端部が足部後端部を基準として高い状態から徐々に同じ高さとなるように、前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
また、本発明の第1態様の制御プログラムは、脚体の離床期の開始時点から中間時点にかけて、足部先端部が足部後端部を基準として低い状態から徐々に同じ高さとなった後、徐々に高い状態になるように、前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
前記課題を解決するための本発明の第2態様の制御プログラムは、上体と、上体から下方に延設された複数の脚体とを備え、各脚体に対して回動可能な足平における離床および着床を伴う各脚体の動作により移動する脚式移動ロボットを制御する機能を該ロボットに搭載されているコンピュータに付与するプログラムであって、床面に対する足平の傾斜角度を測定する足平傾斜角度測定機能と、脚体の離床期の中間時点から着床期の開始時点にかけて、足平傾斜角度測定機能により測定された床面に対する該脚体の足平の傾斜角度が、徐々に0に近づくように、該脚体に対する足平の回動動作を制御する足平動作制御機能とを前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
本発明の第2態様の制御プログラムによれば、脚体の足部における着床時の衝撃を緩和するとともにこの足部におけるスリップやスピンを回避して安定に歩行または走行するようにロボットを制御する機能が、このロボットに搭載されているコンピュータに付与される。
また、本発明の第2態様の制御プログラムは、足平動作制御機能として、離床期の直前に、脚体が足平の先端部において着床したまま、足平傾斜角度測定機能により測定された床面に対する該足平の傾斜角度が、該足平の後端部が先端部よりも床面から遠くなるような正側に増大するように、該脚体に対する足平の回動動作を制御する機能を前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
さらに、本発明の第2態様の制御プログラムは、足平動作制御機能として、脚体の離床期の中間時点から着床期の開始時点にかけて、足平傾斜角度測定機能により測定された床面に対する足平の傾斜角度が、足平の先端部が後端部よりも床面から遠くなるような負側の角度から徐々に減少して0になるように、該脚体に対する足平の回動動作を制御する機能を前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
また、本発明の第2態様の制御プログラムは、足平動作制御機能として、脚体の離床期の開始時点から着床期の開始時点にかけて、足平傾斜角度測定機能により測定された床面に対する足平の傾斜角度が、正側に徐々に増大してから徐々に減少した後、足平の先端部が後端部よりも床面から遠くなるような負側に徐々に増大してから徐々に減少して0になるように、該脚体に対する足平の回動動作を制御する機能を前記ロボットに搭載されているコンピュータに対して付与することを特徴とする。
さらに、本発明の第2態様の制御プログラムは、全ての脚体が離床している空中期を伴って移動するように、前記ロボットの脚体の作動を制御する機能を該ロボットに搭載されているコンピュータに対して付与することを特徴とする。
本発明の脚式移動ロボットおよびその制御プログラムの実施形態について図面を用いて説明する。
図1に示されている2足移動ロボット(以下、ロボットという)1は上体24から下方に延設された左右一対の脚体(脚部リンク)2,2を備える。両脚体2,2は同一構造であり、それぞれ6個の関節を備える。その6個の関節は上体24側から順に、股(腰部)の回旋(回転)用(上体24に対するヨー方向の回転用)の関節10R,10L(符号R、Lはそれぞれ右側脚体、左側脚体に対応するものであることを意味する符号である。以下同じ)と、股(腰部)のロール方向(X軸まわり)の回転用の関節12R,12Lと、股(腰部)のピッチ方向(Y軸まわり)の回転用の関節14R,14Lと、膝部のピッチ方向の回転用の関節16R,16Lと、足首のピッチ方向の回転用の関節18R,18Lと、足首のロール方向の回転用の関節20R,20Lとから構成される。
各脚体2の足首の2つの関節18R(L),20R(L)の下部には、各脚体2の先端部を構成する足平(足部)22R(L)が取着されると共に、両脚体2,2の最上位には、各脚体2の股の3つの関節10R(L),12R(L),14R(L)を介して前記上体(上体)24が取り付けられている。上体24の内部には、詳細を後述する制御ユニット26などが格納されている。なお、図1では図示の便宜上、制御ユニット26を上体24の外部に記載している。
制御ユニット26は、ハードウェアとしてのCPU、ROM、RAM、信号入力回路、信号出力回路等と、このハードウェアに対してロボット1の作動制御機能を付与するソフトウェアとしての本発明の「制御プログラム」とより構成されている。
上記構成の各脚体2においては、股関節(あるいは腰関節)は関節10R(L),12R(L),14R(L)から構成され、膝関節は関節16R(L)から構成され、足関節(足首関節)は関節18R(L),20R(L)から構成される。また股関節と膝関節とは大腿リンク28R(L)で連結され、膝関節と足関節とは下腿リンク30R(L)で連結される。
なお、図示は省略するが、上体24の上部の両側部には左右一対の腕体が取り付けられると共に、上体24の上端部には頭部が配置される。これらの腕体および頭部は、本発明の要旨と直接的な関連を有しないので詳細な説明は省略するが、各腕体は、それに備える複数の関節によって、該腕体を上体24に対して前後に振る等の運動を行なうことが可能となっている。
各脚体2の上記構成により、各脚体2の足平(本発明の「足部」に相当する。)22R(L)は、上体24に対して6つの自由度を与えられている。そして、ロボット1の移動に際して両脚体2,2を合わせて6*2=12個(この明細書で「*」はスカラに対する演算においては乗算を示し、ベクトルに対する演算においては外積を示す)の関節を適宜な角度で駆動することで、両足平22R,22Lの所望の運動を行なうことができる。これによりロボット1は任意に3次元空間を移動することができる。
なお、この明細書で後述する上体24の位置および速度は、上体24の所定位置、具体的には上体24のあらかじめ定めた代表点(例えば左右の股関節の間の中央点等)の位置およびその移動速度を意味する。同様に、各足平22R,22Lの位置および速度は、各足平22R,22Lのあらかじめ定めた代表点の位置およびその移動速度を意味する。この場合、本実施形態では各足平22R,22Lの代表点は、例えば各足平22R,22Lの底面上(より具体的には各脚体2の足首関節の中心から各足平22R,22Lの底面への垂線が該底面と交わる点等)に設定される。
図1に示す如く、各脚体2の足首関節18R(L),20R(L)の下方には足平22R(L)との間に公知の6軸力センサ34が介装されている。該6軸力センサ34は、各脚体2の足平22R(L)の着地の有無、および各脚体2に作用する床反力(接地荷重)などを検出するためのものであり、該床反力の並進力の3方向成分Fx,Fy,Fz並びにモーメントの3方向成分Mx,My,Mzの検出信号を制御ユニット26に出力する。また、上体24には、Z軸(鉛直方向(重力方向))に対する上体24の傾き(姿勢角)とその角速度とを検出するための傾斜センサ36が設置され、その検出信号が該傾斜センサ36から制御ユニット26に出力される。また、詳細構造の図示は省略するが、ロボット1の各関節には、それを駆動するために電動モータ32(図3参照)と、その電動モータ32の回転量(各関節の回転角)を検出するためのエンコーダ(ロータリエンコーダ)33(図3参照)とが設けられ、該エンコーダ33の検出信号が該エンコーダ33から制御ユニット26に出力される。
図2に示すように、各足平22R(L)の上方には、前記6軸力センサ34との間にばね機構38が装備されると共に、足底(各足平22R(L)の底面)にはゴムなどからなる足底弾性体40が貼られている。これらのばね機構38および足底弾性体40によりコンプライアンス機構42が構成されている。ばね機構38は具体的には、足平22R(L)の上面部に取り付けられた方形状のガイド部材(図示せず)と、足首関節18R(L)(図2では足首関節20R(L)を省略している)および6軸力センサ34側に取り付けられ、前記ガイド部材内に弾性材(ゴムやばね)を介して微動自在に収納されるピストン状部材(図示せず)とから構成されている。
図2に実線で表示された足平22R(L)は、床反力を受けていないときの状態を示している。各脚体2が床反力を受けると、コンプライアンス機構42のばね機構38と足底弾性体40とがたわみ、足平22R(L)は図中に点線で例示したような位置姿勢に移る。このコンプライアンス機構42の構造は、着地衝撃を緩和するためだけでなく、ロボット1の制御性を高めるためにも重要なものである。なお、その詳細は本出願人に先に提案した特開平5−305584号に記載されているので、詳細な説明は省略する。
さらに、図1では図示を省略するが、ロボット1の外部には、該ロボット1の操縦用のジョイスティック(操作器)44(図3参照)が設けられ、そのジョイスティック44を操作することで、直進移動しているロボット1を旋回させるなど、ロボット1の歩容に対する要求を必要に応じて制御ユニット26に入力できるように構成される。この場合、入力できる要求は、例えばロボット1の移動時の歩容形態(歩行、走行等)、遊脚の着地位置姿勢や着地時刻、あるいはこれらの着地位置姿勢や着地時刻を規定する指令データ(例えばロボット1の移動方向、移動速度等)である。
図3は制御ユニット26の構成を示すブロック図である。該制御ユニット26はマイクロコンピュータにより構成されており、CPUからなる第1の演算装置60および第2の演算装置62、A/D変換器50、カウンタ56、D/A変換器66、RAM54、ROM64、並びにこれらの間のデータ授受を行なうバスライン52を備えている。この制御ユニット26では、前記各脚体2の6軸力センサ34、傾斜センサ36、ジョイスティック44等の出力信号はA/D変換器50でデジタル値に変換された後、バスライン52を介してRAM54に入力される。また、ロボット1の各関節のエンコーダ33(ロータリエンコーダ)の出力はカウンタ56を介してRAM54に入力される。
前記第1の演算装置60は後述の如く、目標歩容を生成すると共に、関節角変位指令(各関節の変位角または各電動モータ32の回転角の指令値)を算出し、RAM54に送出する。また第2の演算装置62はRAM54から関節角変位指令と、前記エンコーダ33の出力信号に基づいて検出された関節角の実測値とを読み出し、各関節の駆動に必要な操作量を算出してD/A変換器66とサーボアンプ32aとを介して各関節を駆動する電動モータ32に出力する。
図4は、本実施形態におけるロボット1の歩容生成装置および制御装置の機能的構成を全体的に示すブロック図である。この図4中の「実ロボット」の部分以外の部分が制御ユニット26が実行する処理機能(主として第1の演算装置60および第2の演算装置62の機能)によって構成されるものである。なお、以下の説明では、脚体2の左右を特に区別する必要がないときは、前記符号R,Lを省略する。
以下説明すると、制御ユニット26は、後述の如く目標歩容を自在かつリアルタイムに生成して出力する歩容生成装置100を備えている。該歩容生成装置100は、その機能によって、本願発明の各手段を構成するものである。この歩容生成装置100が出力する目標歩容は、目標上体位置姿勢軌道(上体24の目標位置および目標姿勢の軌道)、目標足平位置姿勢軌道(各足平22の目標位置および目標姿勢の軌道)、目標腕姿勢軌道(各腕体の目標姿勢の軌道)、目標全床反力中心点(目標ZMP)軌道、および目標全床反力軌道から構成される。なお、脚体2や腕体以外に、上体24に対して可動な部位を備える場合には、その可動部位の目標位置姿勢軌道が目標歩容に加えられる。
ここで、上記歩容における「軌道」は時間的変化のパターン(時系列パターン)を意味し、以下の説明では、「軌道」の代わりに「パターン」と称することもある。また、「姿勢」は空間的な向きを意味する。具体的には、例えば上体姿勢はZ軸(鉛直軸)に対するロール方向(X軸まわり)の上体24の傾斜角(姿勢角)とピッチ方向(Y軸まわり)の上体24の傾斜角(姿勢角)とで表され、足平姿勢は各足平22に固定的に設定された2軸の空間的な方位角で表される。本明細書では、上体姿勢は上体姿勢角ということもある。
なお、以下の説明では、誤解を生じるおそれがない場合には、しばしば「目標」を省略する。また、歩容のうちの、床反力に係わる構成要素以外の構成要素、すなわち足平位置姿勢、上体位置姿勢等、ロボット1の運動に係わる歩容を総称的に「運動」という。また、各足平22に作用する床反力(並進力およびモーメントからなる床反力)を「各足平床反力」と呼び、ロボット1の全て(2つ)の足平22R,22Lについての「各足平床反力」の合力を「全床反力」という。但し、以下の説明においては、各足平床反力はほとんど言及しないので、特に断らない限り、「床反力」は「全床反力」と同義として扱う。
目標床反力は、一般的には、作用点とその点に作用する並進力およびモーメントによって表現される。作用点はどこにとっても良いので、同一の目標床反力でも無数の表現が考えられるが、特に目標床反力中心点(全床反力の中心点の目標位置)を作用点にして目標床反力を表現すると、目標床反力のモーメント成分は、鉛直成分(鉛直軸(Z軸)まわりのモーメント)を除いて零になる。換言すれば、目標床反力中心点まわりの目標床反力のモーメントの水平成分(水平軸(X軸およびY軸)回りのモーメント)は零になる。
なお、動力学的平衡条件を満足する歩容では、ロボット1の目標運動軌道から算出されるZMP(目標運動軌道から算出される慣性力と重力との合力がその点まわりに作用するモーメントが、鉛直成分を除いて零になる点)と目標床反力中心点は一致することから、目標床反力中心点軌道の代わりに目標ZMP軌道を与えると言っても同じことである(詳細は、本願出願人による特願2000−352011号等を参照)。
このような背景から、上記特願2000−352011号の明細書では目標歩容を、次のように定義していた。
a)広義の目標歩容とは、1歩ないしは複数歩の期間の目標運動軌道とその目標床反力軌道との組である。
b)狭義の目標歩容とは、1歩の期間の目標運動軌道とそのZMP軌道との組である。
c) 一連の歩容は、いくつかの歩容がつながったものとする。
歩行においては、本出願人が先に特開平10−86080号公報で提案した上体高さ決定手法によってロボット1の上体24の鉛直位置(上体高さ)が決定されると、並進床反力鉛直成分は従属的に決定される。さらに、目標歩容の運動による慣性力と重力との合力が目標ZMPまわりに発生するモーメントの水平成分が零になるようにロボット1の上体水平位置軌道を決定することで、並進床反力水平成分も決定される。このため、特願2000−352011号の明細書では、目標歩容の床反力に関して明示的に設定すべき物理量としては、目標ZMPだけで十分であった。従って、狭義の目標歩容の定義としては、上記のb)で十分であった。それに対し、本実施形態で説明するロボット1の走行歩容(詳細は後述する)においては、床反力鉛直成分(並進床反力鉛直成分)も制御上重要である。このため本発明では、この床反力鉛直成分の目標軌道を明示的に設定した上で、ロボット1の目標上体鉛直位置等の軌道を決定する。そこで、本明細書では、狭義の目標歩容の定義として、次のb’)を用いる。
b’)狭義の目標歩容とは、1歩の期間の目標運動軌道とその目標ZMP軌道と目標並進床反力鉛直成分軌道との組である。
この明細書では以降、理解を容易にするために、特にことわらない限り、目標歩容は上記b’)の狭義の目標歩容の意味で使用する。この場合、目標歩容の「1歩」は、ロボット1の片方の脚体2が着地してからもう一方の脚体2が着地するまでの意味で使用する。なお、以下の説明では、「床反力鉛直成分」は「並進床反力鉛直成分」を意味するものとし、床反力のうちのモーメントの鉛直成分(鉛直軸回り成分)は、「モーメント」という用語を用いて「床反力鉛直成分」と区別をする。同様に、「床反力水平成分」は「並進床反力水平成分」を意味するものとする。
また、歩容における両脚支持期とは言うまでもなく、ロボット1がその自重を両脚体2,2で支持する期間、片脚支持期とはいずれか一方のみの脚体2でロボット1の自重を支持する期間、空中期とは両脚体2,2が床から離れている(空中に浮いている)期間を言う。片脚支持期においてロボット1の自重を支持しない側の脚体2を「遊脚」と呼ぶ。なお、本実施形態で説明する走行歩容では、両脚支持期は無く、片脚支持期(着地期)と空中期とが交互に繰り返される。この場合、空中期では両脚2,2とも、ロボット1の自重を支持しないこととなるが、該空中期の直前の片脚支持期において遊脚であった脚体2、支持脚であった脚体2をそれぞれ該空中期においても遊脚、支持脚と呼ぶ。
図5に示す走行歩容を例にして、歩容生成装置100が生成する目標歩容の概要を説明する。なお、歩容に関するその他の定義および詳細は、先に本願出願人が提案した特開平10−86081号公報にも記載されているので、以下では、特開平10−86081号公報に記載されていない内容を主に説明する。
まず、図5に示す走行歩容を説明する。この走行歩容は、人間の通常的な走行歩容と同様の歩容である。この走行歩容では、ロボット1の左右いずれか一方のみの脚体2(支持脚)の足平22が着地(接地)する片脚支持期と、両脚体2,2が空中に浮く空中期とが交互に繰り返される。
この走行歩容は、図5(a)に示されているように左脚体2Lの後方にある右脚体2Rが前方に振られ、左脚体2Lの足平22Lがその底面のほぼ全面で着床している片脚支持期の中間時点(t=t1)、図5(b)に示されているように左脚体2Lの前方にある右脚体2Rが前方に振られ、左脚体2Lの足平22Lが着床しながらもその後端側が上昇するように傾動している片脚支持期の終了時点(〜次の空中期の開始時点)(t=t2)、図5(c)に示されているように右脚体2Rが左脚体2Lより前にあって両脚体が離床している空中期(t=t3)、図5(d)に示されているように右脚体2Rの足平22Lがその底面のほぼ全面で着床する片脚支持期の開始時点(〜前の空中期の終了時点)(t=t4)、図5(e)に示されているように右脚体2Rより前方にある左脚体2Lが前方に振られ、左脚体2Rの足平22Rが着床しながらもその後端側が上昇するように傾動している片脚支持期の終了時点(〜次の空中期の開始時点)(t=t5)、図5(f)に示されているように左脚体2Lが右脚体2Rより前にあって両脚体が離床している空中期(t=t6)、および図5(g)に示されているように左脚体2Lの足平がその底面のほぼ全面で着床する片脚支持期の開始時点(〜前の空中期の終了時点)(t=t7)へと変化するようなものである。
図5の走行歩容を考慮しつつ、前記歩容生成装置100が生成する目標歩容の基本的な概要を説明する。詳細は後述するが、歩容生成装置100が目標歩容を生成するとき、遊脚側の足平22の着地位置姿勢(着地予定位置姿勢)や着地時刻(着地予定時刻)等の目標歩容生成用の基本的な要求値(要求パラメータ)が、前記ジョイスティック44の所要の操作等に応じて歩容生成装置100に与えられる。そして、歩容生成装置100は、その要求パラメータを用いて目標歩容を生成する。より詳しく言えば、歩容生成装置100は、上記要求パラメータに応じて、目標歩容の目標足平位置姿勢軌道、目標床反力鉛直成分軌道等、目標歩容の一部の構成要素を規定するパラメータ(歩容パラメータという)を決定した上で、その歩容パラメータを用いて目標歩容の瞬時値を逐次決定し、該目標歩容の時系列パターンを生成する。
この場合、目標足平位置姿勢軌道(より詳しくは、足平の位置および姿勢の空間的な各成分(X軸成分等)の目標軌道)は、例えば本出願人が特許第3233450号にて提案した有限時間整定フィルタを用いて各足平22毎に生成される。この有限時間整定フィルタは、可変時定数の1次遅れフィルタ、すなわち、伝達関数が1/(1+τs)の形で表されるフィルタ(τは可変の時定数。以下、このフィルタを単位フィルタという)を複数段(本実施形態では3段以上)、直列に接続したものであり、所望の指定時刻に指定値に到達するような軌道を生成・出力することができるものである。この場合、各段の単位フィルタの時定数τは、いずれも、有限時間整定フィルタの出力生成を開始してから、上記指定時刻までの残時間に応じて逐次可変的に設定される。より詳しくは、該残時間が短くなるに伴いτの値が所定の初期値(>0)から減少されていき、最終的には、該残時間が0になる指定時刻にて、τの値が0になるように設定される。そして、有限時間整定フィルタには、前記指定値(より詳しくは、有限時間整定フィルタの出力の初期値から前記指定値への変化量)に応じた高さのステップ入力が与えられる。このような有限時間整定フィルタは、指定時刻にて指定値に達するような出力が生成されるだけでなく、指定時刻における有限時間整定フィルタの出力の変化速度を0またはほぼ0にすることができる。特に、単位フィルタを3段以上(3段でよい)、接続した場合には、有限時間整定フィルタの出力の変化加速度(変化速度の微分値)をも0またはほぼ0にすることができる。
このような有限時間整定フィルタを用いる足平位置姿勢軌道(足平22が着地してから次に着地するまでの位置姿勢軌道)の生成は、例えば次のように行なわれる。例えばX軸方向(前後方向)の目標足平位置軌道は次のように生成される。すなわち、前記要求パラメータにより定まる各足平22の次の着地予定位置のX軸方向位置(より詳しくは、次の着地予定位置のひとつ前の着地位置に対するX軸方向の変化量(移動量)。これは前記指定値に相当する)に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に前記時定数τが所定の初期値に初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、足平22のX軸方向位置の軌道生成が開始される。そして、この軌道生成時には、前記時定数τは、足平22の着地予定時刻(これは前記指定時刻に相当する)までに初期値から0まで減少していくように、逐次可変設定される。これにより、着地予定時刻で着地予定位置に達するような、足平22のX軸方向の位置の軌道が生成される。
また、Z軸方向(鉛直方向)の目標足平位置軌道は、例えば次のように生成される。すなわち、まず、足平22の次の着地予定位置および着地予定時刻に応じて、該足平22の高さ(鉛直位置)が最大になるときの該足平22のZ軸方向位置(以下、最高点位置という)とその最高点位置への到達時刻とが決定される。そして、その最高点位置(これは前記指定値に相当する)に応じて有限時間整定フィルタへのステップ入力の高さが決定されると共に時定数τが初期化された後、その決定されたステップ入力が有限時間整定フィルタに与えられ、前記最高点位置までのZ軸方向の足平位置軌道が逐次生成される。この際、時定数τは、最高点位置への到達時刻(前記指定時刻に相当)までに初期値から0まで減少するように逐次可変設定される。さらに、最高点位置までのZ軸方向位置の軌道の生成が終了したら、時定数τを初期化すると共にいままでのステップ入力と逆極性のステップ入力(より詳しくは、最高点位置から次の着地予定位置までのZ軸方向の変化量(これは前記指定値に相当する)に応じた高さの逆極性のステップ入力)が有限時間整定フィルタに入力され、該最高点位置から着地予定位置までのZ軸方向の足平位置の軌道が逐次生成される。この際、時定数τは足平22の着地予定時刻までに初期値から0まで減少するように逐次可変設定される。
これにより、図5の走行歩容における左脚体2Lの足底と床面との距離dが、図6および図7に示されているように変化するように、Z軸方向(鉛直方向)の目標足平位置軌道が生成される。
なお、Z軸方向の足平位置軌道の生成においては、時定数τを軌道生成開始時刻から足平22の着地予定時刻まで、初期値から0まで継続的に減少するように可変設定すると共に、最高点位置への到達時刻またはその近傍時刻で、ステップ入力の極性を逆極性に切り替えることで、Z軸方向の足平位置軌道を生成するようにしてもよい。この場合には、足平22を所望の最高点位置に精度よく到達させることはできないが、着地予定時刻での着地予定位置への到達は問題なく行なうことができる。
足平姿勢軌道についても、上述した足平位置軌道と同様に有限時間整定フィルタを用いて生成することができる。この場合、足平姿勢の空間的な各成分のうち、その姿勢の角度変化が単調的(単調増加または単調減少)なものとなる成分については、前記したX軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。また、姿勢の角度変化が極大値または極小値をもつような成分については、前記したZ軸方向の足平位置軌道の生成と同様に足平姿勢軌道を生成すればよい。
これにより、図5の走行歩容における左足平22Lの横から見た姿勢が、図6および図8に示されているように変化するようにZ軸方向の足平姿勢軌道が生成される。具体的には、離床期における足底が床面に対して先端部(爪先部)が後端部(踵部)よりも高い傾斜状態から、先端部を下降させるように連続的に傾動しながらこの離床期から次の着床期への移行直前にその床面に対して略平行になるように、足平22Lの傾斜状態が変化する。当該角度θは、足底が床面に対して前方上がりのときは負(−)、前方下がりのときは正(+)であると定義されている。
本発明のロボット1は、空中期(図5(c)(f)参照)において、足底と床面とのなす角度θが0となるように足平22の傾斜状態が制御される。すなわち、図5(g)および図6に示されているように、遅くとも空中期から着床期に移行する時刻t=t7には左足平22Lの当該角度θが0に制御されている。
なお、角度θが距離dの関数θ(d)として定義されてもよい。前記のように離床期における足底が連続的に傾動しながら次の着床期への移行直前にその床面に対して略平行になるように、足平22の傾斜状態が制御されている場合(図6参照)、θ(d=0)=0、離床期から着床期への移行直前においてδθ/δd>0となる。また、空中期の途中で角度θが0に制御され、そのまま着床期への移行時刻まで角度θが0に維持されてもよい。
なお、上記のように有限時間整定フィルタにより生成される目標足平位置姿勢軌道は、床面に固定された後述の支持脚座標系での各足平22の目標位置姿勢軌道である。
上述のように生成される目標足平位置姿勢軌道は、各足平22の位置が、その初期接地状態(目標歩容の初期時刻の状態)から着地予定位置に向かって徐々に加速しながら移動を開始するように生成される。そして、該目標足平位置姿勢軌道は、最終的に着地予定時刻までに徐々に位置の変化速度を0またはほぼ0にまで減速し、着地予定時刻にて着地予定位置に到達して停止するように生成される。このため、各足平22の着地瞬間における対地速度(床に固定された支持脚座標系での各足平22の位置の変化速度)が0またはほぼ0になる。従って、走行歩容において同時に全脚体2,2が空中に存在する状態(空中期での状態)から着地しても、着地衝撃が小さくなる。
前記走行歩容においては、ロボット1に作用する重力によって空中期後半から上体24の鉛直速度は下向きになり、着地時でも下向きのままである。従って、上記のように各足平22の着地瞬間における対地速度が0またはほぼ0になるように目標足平位置姿勢軌道を生成すると共に、後述する如く動力学的平衡条件を満たすように上体24の目標位置姿勢軌道を生成したとき、着地直前において、上体24に対する遊脚側の足平22の相対速度は、上向きになる。すなわち、走行歩容の着地瞬間では、ロボット1の目標歩容は遊脚側の脚体22を上体24側に引っ込めながら着地するような歩容となる。言い換えれば、本実施例での目標歩容では、ロボット1は、着地瞬間において、遊脚側の足平22の対地速度が0またはほぼ0になるように、上体24から見て該足平22を引き上げるようにして着地する。これによって、着地衝撃は小さくなり、着地衝撃が過大になるのを防止するようにしている。
また、本実施形態では、有限時間整定フィルタは、単位フィルタを3段以上(例えば3段)、直列に接続したものであるため、着地予定時刻までに各足平22の速度(足平位置の変化速度)が0またはほぼ0になるだけでなく、各足平22は、その加速度も着地予定時刻にて0またはほぼ0になって停止する。つまり、着地瞬間における対地加速度も0またはほぼ0になる。従って、着地衝撃がより一層小さくなる。特に、実際のロボット1の着地時刻が目標の着地時刻からずれても、衝撃があまり増大しなくなる。補足すると、着地予定時刻にて各足平22の対地速度を0またはほぼ0にする上では、有限時間整定フィルタの単位フィルタの段数は2段でもよいが、この場合には、着地予定時刻での各足平22の加速度は一般には0にならない。
なお、足平姿勢に関しては、各足平22が着地予定時刻にてその底面のほぼ全面で着地した後、しばらく一定に維持される。このため、該足平22の底面のほぼ全面が床に接地する時刻を前記指定時刻に設定して、前記有限時間整定フィルタにより足平姿勢軌道が生成される。
また、本実施形態では、有限時間整定フィルタを用いて足平位置軌道を生成したが、着地予定時刻での足平位置の変化速度が0またはほぼ0になる(足平位置の時間微分値が0になる)ように、さらには、該着地予定時刻での足平位置の変化加速度(変化速度の時間微分値)が0またはほぼ0になるように設定された多項式などの関数を用いて目標足平位置軌道を生成するようにしても良い。このことは、目標足平姿勢軌道の生成に関しても同様である。但し、該目標足平姿勢軌道の生成に関しては、上述の如く、各足平22の底面のほぼ全面が床に設置する時刻にて、各足平22の姿勢の変化速度、さらにはその変変化加速度が0またはほぼ0になるように多項式などの関数が設定される。
目標床反力鉛直成分軌道は、例えば図9のように設定される。本実施形態では、走行歩容における目標床反力鉛直成分軌道の形状(詳しくは片脚支持期での形状)は、台形状(床反力鉛直成分の増加側に凸の形状)に定められており、その台形の高さ、折れ点の時刻を目標床反力鉛直成分軌道を規定する歩容パラメータとして、それらの歩容パラメータ(床反力鉛直成分軌道パラメータ)が決定される。なお、走行歩容の空中期では、目標床反力鉛直成分は定常的に0に設定される。この例のように、目標床反力鉛直成分軌道は、実質的に連続になるように(値が不連続にならないように)設定するのが良い。これは床反力を制御する際のロボット1の関節の動作を滑らかにするためである。なお、「実質的に連続」というのは、アナログ的に連続な軌道(真の意味での連続な軌道)を離散時間系でデジタル表現したときに必然的に生じる値の飛びは、該軌道の連続性を失わせるものではないということを意味するものである。
目標ZMP軌道は次のように設定される。図5の走行歩容においては、前記したように支持脚側足平22の底面のほぼ全面で着地し、次にその支持脚側足平22の爪先で蹴って空中に飛び上がり、最後に遊脚側足平22の底面のほぼ全面で着地する。従って、片脚支持期での目標ZMP軌道は、図10の上段図に示すように、支持脚側足平22の踵および爪先の中間位置を初期位置として、次に支持脚側足平22の底面のほぼ全面が接地する期間において一定に維持され、その後、離床時までに支持脚側足平22の爪先に移動するように設定される。ここで、図10の上段図は、X軸方向(前後方向)の目標ZMP軌道を示すものであり、図10の下段図はY軸方向(左右方向)の目標ZMP軌道を示すものである。なお、片脚支持期におけるY軸方向の目標ZMP軌道は、図10の下段図に示すように、Y軸方向での支持脚側脚体2の足首関節の中心位置と同じ位置に設定される。
走行歩容では、さらに片脚支持期の終了後、両脚体2,2が床から離れ、床反力鉛直成分が0になる。床反力鉛直成分が0の時、すなわち空中期には、ロボット1の全体重心は自由落下運動をし、全体重心まわりの角運動量変化は零である。この時、床の任意の点において、ロボット1に作用する重力と慣性力との合力のモーメントは0であるので、目標ZMPは不定である。すなわち、床のいずれの点も、「重力と慣性力との合力が作用するモーメントの水平成分が0である作用点」というZMPの条件を満たす。言いかえれば、任意の点に目標ZMPを設定しても、上記合力が目標ZMP回りに作用するモーメントの水平成分が0であるという動力学的平衡条件を満足する。従って、目標ZMPを不連続に設定しても構わない。例えば、空中期では、目標ZMPを、離床時(片脚支持期の終了時)の目標ZMP位置から移動しないように設定し、空中期終端において、着地時の目標ZMP位置に不連続(ステップ状)に移動するように該目標ZMP軌道を設定しても構わない。しかし本実施形態では、図10の上段図に示すように、空中期における目標ZMP軌道のX軸方向位置は、次の遊脚側脚体2の着地までに支持脚側足平22の爪先から遊脚側足平22の踵および爪先の中間位置まで連続的に移動するようにした。また、図10の下段図に示すように、空中期における目標ZMP軌道のY軸方向位置は、次の遊脚側脚体2の着地までに支持脚側脚体2の足首関節の中心のY軸方向位置から遊脚側脚体2の足首関節の中心のY軸方向位置まで連続的に移動するようにした。すなわち、歩容の全期間において目標ZMP軌道を連続(実質的に連続)にした。そして、後述するように、目標ZMPまわりの重力と慣性力との合力のモーメント(鉛直成分を除く)が零になるように目標歩容を生成する(より具体的には目標上体位置姿勢軌道を調整する)ようにした。
なお、本実施形態では、図10に示したような目標ZMP軌道の折れ点の位置や時刻が、ZMP軌道パラメータ(目標ZMP軌道を規定するパラメータ)として設定される。また、上記したZMP軌道の「実質的に連続」の意味は、前記床反力鉛直成分軌道の場合と同様である。
ZMP軌道パラメータは、安定余裕が高く、かつ急激な変化をしないように決定される。ここで、ロボット1の接地面を含む最小の凸多角形(いわゆる支持多角形)の中央付近に目標ZMPが存在する状態を安定余裕が高いと言う(詳細は特開平10−86081号公報を参照)。図10の目標ZMP軌道はこのような条件を満たすように設定したものである。
また、目標腕姿勢は、上体24に対する相対姿勢で表す。
また、目標上体位置姿勢、目標足平位置姿勢および後述の基準上体姿勢はグローバル座標系で記述される。グローバル座標系は前述のごとく床に固定された座標系である。グローバル座標系としては、より具体的には、後述する支持脚座標系が用いられる。
本実施形態における歩容生成装置100は、ロボット1の片方の脚体2が着地してから他方の脚体2が着地するまでの1歩分の目標歩容(前記狭義の意味での目標歩容)を単位として、その1歩分の目標歩容を順番に生成する。従って、本実施形態で生成する図5の走行歩容では、該目標歩容は片脚支持期の開始時から、これに続く空中期の終了時(次の片脚支持期の開始時)までの目標歩容が順番に生成される。ここで、新たに生成しようとしている目標歩容を「今回歩容」、その次の目標歩容を「次回歩容」、さらにその次の目標歩容を「次次回歩容」、というように呼ぶ。また、「今回歩容」の一つ前に生成した目標歩容を「前回歩容」と呼ぶ。
また、歩容生成装置100が今回歩容を新たに生成するとき、該歩容生成装置100には、ロボット1の2歩先までの遊脚側足平22の着地予定位置姿勢、着地予定時刻の要求値(要求)が歩容に対する要求パラメータとして入力される(あるいは歩容生成装置100が記憶装置から要求パラメータを読み込む)。そして、歩容生成装置100は、これらの要求パラメータを用いて、目標上体位置姿勢軌道、目標足平位置姿勢軌道、目標ZMP軌道、目標床反力鉛直成分軌道、目標腕姿勢軌道等を生成する。このとき、これらの軌道を規定する歩容パラメータの一部は、歩行の継続性を確保するように適宜修正される。
以下に図5の走行歩容を生成することを例にして、歩容生成装置100の歩容生成処理の詳細を図11〜図15を参照しつつ説明する。図11は、その歩容生成装置100が実行する歩容生成処理を示すフローチャート(構造化フローチャート)である。
まずS010において時刻tを0に初期化するなど種々の初期化作業が行なわれる。この処理は、歩容生成装置100の起動時等に行なわれる。次いで、S012を経てS014に進み、歩容生成装置100は、制御周期(図11のフローチャートの演算処理周期)毎のタイマ割り込みを待つ。制御周期はΔtである。
次いで、S016に進み、歩容の切り替わり目であるか否かが判断され、歩容の切り替わり目であるときはS018に進むと共に、切り替わり目でないときはS030に進む。ここで、上記「歩容の切り替わり目」は、前回歩容の生成が完了し、今回歩容の生成を開始するタイミングを意味し、例えば前回歩容の生成を完了した制御周期の次の制御周期が歩容の切り替わり目になる。
S018に進むときは時刻tが0に初期化され、次いでS020に進み、次回歩容支持脚座標系、次次回歩容支持脚座標系、今回歩容周期および次回歩容周期が読み込まれる。これらの支持脚座標系および歩容周期は、前記要求パラメータにより定まるものである。すなわち、本実施形態では、歩容生成装置100にジョイスティック44等から与えられる要求パラメータは、2歩先までの遊脚側足平22の着地予定位置姿勢(足平22が着地してから足底を床面にほぼ全面的に接触させるように、滑らさずに回転させた状態での足平位置姿勢)、着地予定時刻の要求値を含んでおり、その1歩目の要求値、2歩目の要求値がそれぞれ、今回歩容、次回歩容に対応するものとして、今回歩容の生成開始時(前記S016の歩容の切り替わり目)以前に歩容生成装置100に与えられたものである。なお、これらの要求値は今回歩容の生成途中でも変更することは可能である。
そして、上記要求パラメータにおける1歩目の遊脚側足平22(今回歩容での遊脚側足平22)の着地予定位置姿勢の要求値に対応して次回歩容支持脚座標系が定まる。
次いでS022に進み、歩容生成装置100は、今回歩容に続く仮想的な周期的歩容としての定常旋回歩容の歩容パラメータを決定する。該歩容パラメータは、定常旋回歩容における目標足平位置姿勢軌道を規定する足平軌道パラメータ、基準とする上体姿勢軌道を規定する基準上体姿勢軌道パラメータ、目標腕姿勢軌道を規定する腕軌道パラメータ、目標ZMP軌道を規定するZMP軌道パラメータ、目標床反力鉛直成分軌道を規定する床反力鉛直成分軌道パラメータを含む。さらに、目標床反力水平成分許容範囲を規定するパラメータも歩容パラメータに含まれる。
なお、この明細書で「定常旋回歩容」は、その歩容を繰り返したときに歩容の境界(本実施形態では1歩毎の歩容の境界)においてロボット1の運動状態(足平位置姿勢、上体位置姿勢等の状態)に不連続が生じないような周期的歩容を意味するものとして使用する。以降、「定常旋回歩容」を「定常歩容」と略す場合もある。
定常旋回歩容は、歩容生成装置100で今回歩容の終端における発散成分や上体鉛直位置速度、上体姿勢角およびその角速度等のロボット1の運動状態を決定するために暫定的に作成されるものであり、歩容生成装置100からそのまま出力されるものではない。
なお、「発散」とは、2足移動ロボット1の上体24の位置が両足平22,22の位置からかけ離れた位置にずれてしまうことを意味する。発散成分の値とは、2足移動ロボット1の上体24の位置が両足平22,22の位置(より具体的には、支持脚側足平22の接地面に設定されたグローバル座標系(支持脚座標系)の原点)からかけ離れていく具合を表す数値である。
本題に戻り、S022では、図12に示すフローチャートに従って、以下の処理が行われる。
まず、S100において、今回歩容、第1旋回歩容、第2旋回歩容の順に足平位置姿勢軌道がつながるように、定常歩容の歩容パラメータのうちの足平軌道パラメータが決定される。以下に具体的な設定方法を説明する。なお、以降の説明では、支持脚側の脚体2の足平22を支持脚足平と称し、遊脚側の脚体2の足平2を遊脚足平を称する。また、歩容の「初期」、「終端」はそれぞれ歩容の開始時刻、終了時刻またはそれらの時刻における瞬時歩容を意味する。
足平軌道パラメータは、第1旋回歩容および第2旋回歩容の初期および終端のそれぞれにおける支持脚足平および遊脚足平のそれぞれの位置姿勢、各旋回歩容の歩容周期等から構成される。この足平軌道パラメータのうち、第1旋回歩容初期遊脚足平位置姿勢は、次回歩容支持脚座標系から見た今回歩容終端支持脚足平位置姿勢とされる。この場合、走行歩容では、今回歩容終端における支持脚足平22は、空中に移動している。そして、今回歩容終端支持脚足平位置姿勢は、今回歩容初期支持脚足平位置姿勢(=前回歩容終端遊脚足平位置姿勢)から、前記要求パラメータにおける2歩目の遊脚側足平22の着地予定位置姿勢の要求値(今回歩容の支持脚足平22の次回歩容における着地予定位置姿勢の要求値)または該要求値に対応する次次回歩容支持脚座標系に応じて定まる次回歩容終端遊脚足平位置姿勢に至る足平位置姿勢軌道(詳しくは次回歩容支持脚座標系から見た軌道)を、今回歩容終端まで前記有限時間整定フィルタを用いて生成することにより求められる。
次に、S102に進み、目標上体姿勢が追従すべき基準上体姿勢軌道を規定する基準上体姿勢軌道パラメータが決定される。基準上体姿勢は、定常歩容の初期(第1旋回歩容の初期)と終端(第2旋回歩容の終端)とでつながるように(定常歩容の初期、終端での基準上体姿勢の姿勢角およびその角速度が一致するように)に設定されている限り、一定姿勢である必要はないが、本実施形態では理解を容易にするため、基準上体姿勢は、直立姿勢(鉛直姿勢)に設定される。つまり、本実施形態では、基準上体姿勢は、定常歩容の全期間において直立姿勢に設定される。従って、本実施形態では、基準上体姿勢の姿勢角の角速度および角加速度は0である。
次に、S104に進み、腕姿勢軌道パラメータ、より詳しくは鉛直軸(あるいは上体体幹軸)まわりの両腕体の角運動量変化に関すること以外の腕姿勢軌道パラメータが決定される。たとえば、上体24に対する腕体の手先の相対高さや腕全体の相対重心位置などの腕姿勢軌道パラメータが決定される。なお、本実施形態では、腕全体の相対重心位置は、上体に対して一定に維持されるように設定される。
次に、S106に進み、床反力鉛直成分軌道パラメータが設定される。この場合、該パラメータにより規定される床反力鉛直成分軌道が、第1旋回歩容および第2旋回歩容のいずれにおいても図9のように実質的に連続な(値がステップ状に飛ばない)ものとなるように床反力鉛直成分軌道パラメータが設定される。そのパターンでは、第1旋回歩容および第2旋回歩容のいずれにおいても、片脚支持期では床反力鉛直成分が台形状に変化し、空中期では床反力鉛直成分が0に維持される。そして、このパターンの折れ点の時刻や、台形部分の高さ(ピーク値)が床反力鉛直成分軌道パラメータとして設定される。
次に、S108に進み、上記のごとく設定された床反力鉛直成分軌道に応じて、床反力水平成分の許容範囲[Fxmin,Fxmax](より詳しくはこれを規定するパラメータ)が図13のように設定される。図13の負側の折れ線が床反力水平成分許容下限値Fxmin、正側の折れ線が床反力水平成分許容上限値Fxmaxを表す。これらの設定方法に関して以下に補足する。以下では、床面が水平である場合について説明する。
床反力水平成分は、床と足平22との間の摩擦によって発生するが、摩擦はいくらでも発生できるわけではなく、限界がある。従って、生成された目標歩容に従って実際のロボット1が移動した時にスリップしないようにするためには、目標歩容の床反力水平成分が、常に摩擦限界以内になければならない。そこで、この条件を満足させるために、床反力水平成分許容範囲を設定し、後述するように、目標歩容の床反力水平成分がこの許容範囲内になるように、目標歩容を生成することとした。
床と足平22との間の摩擦係数をμとすると、Fxminは、常に−μ*床反力鉛直成分以上に、Fxmaxはμ*床反力鉛直成分以下に設定されなければならない。最も単純な設定方法は、次式による設定である。但し、kaは1より小さい正の定数である。
Fxmin =−ka * μ* 床反力鉛直成分
Fxmax = ka * μ* 床反力鉛直成分 ・・式12
図13の床反力水平成分許容範囲は、式12に従って設定した例である。床反力水平成分許容範囲を規定するパラメータとして、図1713の台形波形などの折れ点での値と時刻を設定してもよいが、式12により床反力水平成分許容範囲を決定するときには、単に式12における(ka * μ)の値をパラメータとして設定するだけでも良い。
次に、S110に進み、第1旋回歩容および第2旋回歩容を合わせた定常歩容のZMP軌道を規定するZMP軌道パラメータが設定される。この場合、目標ZMP軌道は、前述したように安定余裕が高くかつ急激な変化をしないように設定される。
さらに詳細には、図5の走行歩容においては、支持脚足平22の底面のほぼ全面が着地した後、該支持脚足平22の底面のほぼ全面が接地した状態が維持され、その後、支持脚足平22の爪先だけが接地する。そして、次に支持脚足平22の爪先で蹴って空中に飛び上がり、最後に遊脚足平22の底面のほぼ全面で着地する。また、目標ZMPは接地面内に存在しなければならない。そこで、本実施形態では、定常歩容の第1旋回歩容および第2旋回歩容のそれぞれの目標ZMPのX軸方向の位置は、前記図10の上段図に示したように、支持脚足平22の踵および爪先の中間位置を初期位置として、しばらくの間一定に維持された後、該足平22が爪先接地状態になるまでに爪先に移動し、その後、離床時まで支持脚足平22の爪先に留まるように設定される。さらにその後は、目標ZMPは、前述のごとく、次の遊脚足平22の着地までに目標ZMPが、支持脚足平22の爪先から遊脚足平22の踵および爪先の中間位置まで連続的に移動するように設定される。そして、この目標ZMP軌道の折れ点の時刻および位置がZMP軌道パラメータとして設定される。この場合、折れ点の時刻は、前記要求パラメータに応じて定めた第1旋回歩容および第2旋回歩容の歩容周期に応じて設定され、該折れ点の位置は、次回歩容支持脚座標系および次次回歩容支持脚座標系の位置姿勢あるいはこれらの座標系を規定する要求パラメータの1歩目および2歩目の遊脚側足平着地予定位置姿勢の要求値に応じて設定される。なお、ZMP軌道のY軸方向の位置は、前記図10の下段図に示したものと同様に設定される。より詳しくは、第1旋回歩容における目標ZMPのY軸方向位置の軌道は、図10の下段図のものと同一パターンで設定され、第2旋回歩容における目標ZMPのY軸方向位置の軌道は、第1旋回歩容のものと同じ形の軌道で、該軌道の終端につながるものに設定される。
図11のS010からS022までに示す処理が行われた後、S024に進み、定常歩容の初期状態が算出される。ここで算出される初期状態は、定常歩容の初期上体水平位置速度(水平方向での初期上体位置および初期上体速度)、初期上体鉛直位置速度(鉛直方向での初期上体位置および初期上体速度)、初期発散成分、初期上体姿勢角およびその角速度である。この初期状態の算出は、探索的に行なわれる。
次いで、図11のS026に進み、今回歩容の歩容パラメータを決定(一部は仮決定)する。S026では、より具体的には、図14に示すフローチャートに従って、以下の処理が行われる。
まず、S600において、今回歩容の足平位置姿勢軌道が定常歩容の足平位置姿勢軌道につながるように、今回歩容の足平軌道パラメータが設定される。
本願発明は、ロボットの着地時の衝撃を緩和するとともに足底のスリップやスピンを回避して、ロボットが安定に歩行または走行できるように足平22の軌道パラメータが設定される点に特徴があるがこの点については後で詳述する。
次いで、S602に進み、今回歩容の基準上体姿勢軌道パラメータが、定常歩容の第1旋回歩容や第2旋回歩容と同様に決定される。但し、今回歩容の基準上体姿勢軌道が前記定常歩容の基準上体姿勢軌道に連続してつながる(今回歩容終端での基準上体姿勢角および角速度がそれぞれ定常歩容初期の基準上体姿勢角および角速度に一致する)ように上記パラメータが設定される。なお、本実施形態では、基準上体姿勢は、今回歩容および定常歩容のいずれでも定常的な鉛直姿勢である。
次いで、S604に進み、今回歩容の腕姿勢軌道パラメータが、定常歩容の第1旋回歩容や第2旋回歩容と同様に決定される。但し、今回歩容の腕姿勢軌道が前記定常歩容の腕姿勢軌道に連続してつながるように上記パラメータを設定する。なお、ここで決定される腕姿勢軌道パラメータは、定常歩容パラメータの決定(図12のS104)の場合と同様、鉛直軸(あるいは上体体幹軸)まわりの両腕体の角運動量変化に関すること以外の運動パラメータであり、両腕体の重心位置の軌道を規定するパラメータである。
次いで、S606に進み、該パラメータにより規定される床反力鉛直成分軌道が前記図9のように実質的に連続な(値がステップ状に飛ばない)軌道になるように設定される。
但し、床反力鉛直成分軌道パラメータは、今回歩容の全体重心鉛直位置速度と床反力鉛直成分軌道とのいずれもが、前記定常歩容と連続してつながるように決定される。
次いで、S608に進み、床反力水平成分許容範囲[Fxmin,Fxmax](具体的には該床反力水平成分許容範囲のパターンを規定するパラメータ)が、定常歩容の第1旋回歩容や第2旋回歩容と同様に設定される。たとえば図15に示すようなパターンで床反力水平成分許容範囲が設定される。本実施形態では、先にS606で決定した床反力鉛直成分パターンに応じて前記式12に基づいて床反力水平成分許容範囲が設定される。
次いで、S610に進み、今回歩容のZMP軌道(具体的にはZMP軌道を規定するパラメータで、軌道の折れ点の時刻や位置)が、定常歩容の第1旋回歩容や第2旋回歩容と同様、安定余裕が高くかつ急激な変化をしないように、前記図10に示すごとく設定される。但し、今回歩容のZMP軌道が前記定常歩容のZMP軌道に連続してつながるように上記パラメータを設定される。つまり、今回歩容終端におけるZMPの位置が定常歩容初期のZMP位置に一致するように、ZMP軌道パラメータが決定される。この場合、走行歩容では、片脚支持期におけるZMP軌道の折れ点の時刻や位置の設定の仕方は、前述した定常歩容のZMP軌道パラメータの設定の仕方と同様でよい。そして、空中期における目標ZMP軌道が、空中期開始時から、定常歩容初期のZMP位置まで、直線的に連続して変化するようにZMP軌道パラメータを設定すればよい。
なお、S610で決定される今回歩容のZMP軌道パラメータは、仮決定されただけであり、後述するように修正される。そこで、上記のごとく設定した今回歩容のZMP軌道を、以降、今回歩容の仮目標ZMP軌道と呼ぶこととする。
図11の説明に戻って、上記のごとくS026に示す処理(今回歩容の歩容パラメータ決定処理)を行って後、次いでS028に進み、今回歩容の歩容パラメータ(ZMP軌道パラメータ)が修正される。この処理では、上体位置姿勢軌道を定常歩容に連続させ、または近づけるべくZMP軌道パラメータが修正される。
図11に戻って、上記のごとくS028において今回歩容パラメータを修正した後、あるいはS016の判断結果がNOである場合には、S030に進み、修正された今回歩容パラメータに基づき、今回歩容瞬時値が決定される。
次いでS032に進み、スピン力をキャンセルする(ロボット1の腕以外の運動によって目標ZMP回りに発生する床反力モーメント鉛直成分を略零にする)ための腕動作が決定される。具体的には、腕を振らなかった場合の目標ZMPにおける床反力モーメント鉛直成分軌道(厳密には、腕を振らずに歩容を生成した場合において、ロボットの重力と慣性力の合力が目標ZMPに作用するモーメント鉛直成分軌道の各瞬時値の符号を反転したもの)が求められる。すなわち、S030の処理によって生成された歩容の運動(これには腕振りの運動は含まれていない)の瞬時値に釣り合う目標ZMP(瞬時値)回りの床反力モーメント鉛直成分で瞬時値が求められる。そして、これを、腕振り運動の等価慣性モーメントで割ることにより、スピン力キャンセルに必要な腕振り動作の角加速度が求められる。なお、補足すると、腕の振りが大き過ぎる場合には、等価慣性モーメントよりも大きな値で割れば良い。
次に、この角加速度を2階積分し、これを積分値が過大になるのを防ぐためのローカットフィルタに通して得た角度を腕振り動作角とする。但し、腕振り動作では、左右の腕を前後逆方向に振り、両腕体の重心位置を変化させないようにする。なお、スピン力をキャンセルするための腕振り運動を定常歩容でも生成しておき、これにつながるように、今回歩容における腕振り運動を決定するようにしてもよい。
次いでS034に進み、歩容生成用時刻tをΔtだけ増やし、S014に戻り、以上のごとく歩容生成を続ける。
以上が、歩容生成装置100における目標歩容生成処理である。
図4を参照して本実施形態に係る装置の動作をさらに説明すると、歩容生成装置100において、上記したように目標歩容が生成される。生成された目標歩容のうち、目標上体位置姿勢(軌道)、目標腕姿勢(軌道)が、ロボット幾何学モデル(逆キネマティクス演算部)102に送出される。
また、目標足平位置姿勢(軌道)、目標ZMP軌道(目標全床反力中心点軌道)、および目標全床反力(軌道)(目標床反力水平成分と目標床反力鉛直成分)は、複合コンプライアンス動作決定部104に送られると共に、目標床反力分配器106にも送られる。そして、目標床反力分配器106で、床反力は各足平22R,22Lに分配され、目標各足平床反力中心点および目標各足平床反力が決定される。この決定された目標各足平床反力中心点および目標各足平床反力は複合コンプライアンス動作決定部104に送られる。
複合コンプライアンス動作決定部104から、機構変形補償付き修正目標足平位置姿勢(軌道)がロボット幾何学モデル102に送られる。ロボット幾何学モデル102は、目標上体位置姿勢(軌道)と機構変形補償付き修正目標足平位置姿勢(軌道)を入力されると、それらを満足する脚体2,2の12個の関節(10R(L)など)の関節変位指令(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の12個の関節の変位を追従制御する。また、ロボット幾何学モデル102は、目標腕姿勢を満足する腕関節の変位指定(値)を算出して変位コントローラ108に送る。変位コントローラ108は、ロボット幾何学モデル102で算出された関節変位指令(値)を目標値としてロボット1の腕体の12個の関節の変位を追従制御する。
ロボット1に生じた床反力(詳しくは実各足床反力)は6軸力センサ34によって検出される。その検出値は前記複合コンプライアンス動作決定部104に送られる。また、ロボット1に生じた姿勢傾斜偏差θerrx,θerry(詳しくは目標上体姿勢角に対する実姿勢角の偏差で、ロール方向(X軸回り)の姿勢角偏差がθerrxであり、ピッチ方向(Y軸回り)の姿勢角偏差がθerryである)が傾斜センサ36を介して検出され、その検出値は姿勢安定化制御演算部112に送られる。この姿勢安定化制御演算部112で、ロボット1の上体姿勢角を目標上体姿勢角に復元するための目標全床反力中心点(目標ZMP)まわり補償全床反力モーメントが算出されて複合コンプライアンス動作決定部104に送られる。複合コンプライアンス動作決定部104は、入力値に基づいて目標床反力を修正する。具体的には、目標全床反力中心点(目標ZMP)回りに補償全床反力モーメントが作用するように目標床反力を修正する。
複合コンプライアンス動作決定部104は、修正された目標床反力に、センサ検出値などから算出される実ロボットの状態および床反力を一致させようと上記機構変形補償付き修正目標足平位置姿勢(軌道)を決定する。但しすべての状態を目標に一致させることは事実上不可能であるので、これらの間にトレードオフ関係を与えて妥協的になるべく一致させる。すなわち、各目標に対する制御偏差に重みを与えて、制御偏差(あるいは制御偏差の2乗)の重み付き平均が最小になるように制御する。これにより、実際の足平位置姿勢と全床反力とが目標足平位置姿勢と目標全床反力とに概ね従うように制御される。
なお、この発明の要旨は歩容生成装置100におけるロボット1の歩容生成にあり、上記した複合コンプライアンス動作決定部104などの構成および動作は、本出願人が先に出願した特開平10−277969号公報などに詳細に記載されているので、説明を以上に止める。
次に、ロボット1の歩行歩容の生成に関して説明する。なお、ここで、歩行歩容は、空中期がなく、片脚支持期と両脚支持期とが交互に繰り返される歩容である。
歩行歩容を生成する場合には、S106およびS606において以下のような処理を行う。すなわち、膝の曲げ角度が適切であるかなど、少なくとも各脚体の関節の変位に関する幾何学的条件(幾何学的制約条件)から決定した上体鉛直位置軌道(本出願人による特開平10−86080号公報に示される上体高さ決定手法などを用いた上体鉛直位置軌道)の位相や振幅などの特徴量をできる限り満足するように床反力鉛直成分軌道を決定する。
これにより、歩容生成のアルゴリズムの主要部を走行と歩行とで共通化しつつ、歩行途中から走行へ、または走行途中から歩行に移行することもできるようになる。
図17を用いてその処理を説明すると、まず、S1300において、本出願人が先に特開平10−86080号公報に提案した上体高さ決定法などを用いて、少なくとも各脚体2の関節の変位に関する所定の幾何学的制約条件を満足する上体鉛直位置軌道を求める。以降、これを基準上体鉛直位置軌道と呼ぶ。より具体的には、まず、要求パラメータに応じて決定した足平軌道パラメータや目標ZMP軌道パラメータなどを基に、本出願人が先に提案した特願2000−352011号の第1実施形態を用いて、上体水平位置軌道が求められる。なお、この場合、上体水平位置軌道は、床反力鉛直成分がロボット1の自重に一致し、また、上体鉛直位置が、あらかじめ定めた一定値であるとして、目標ZMP回りの床反力モーメントの水平成分が0になるように決定される。また、このときの上体姿勢軌道は例えば一定姿勢(鉛直姿勢等)の軌道でよい。
次に、本願出願人が先に提案した上体高さ決定法(特開平10−86080号公報。より具体的には同公報の図6の手法等)を用いて、足平軌道パラメータにより定まる足平軌道や上記の如く決定した上体水平位置軌道、上体姿勢軌道を基に上体鉛直位置軌道が算出され、これをもって前記基準上体鉛直位置軌道とする。
次にS1302に進み、基準上体鉛直位置軌道になるべく似た目標上体鉛直位置軌道を生成することが可能な床反力鉛直成分軌道を決定するために、基準上体鉛直位置軌道の振幅や位相などの特徴量が算出(抽出)される。例えば、基準上体鉛直位置軌道の振幅(最小値と最大値との差)が特徴量として算出される。
次にS1304に進み、床反力鉛直成分軌道パラメータを基に生成される上体鉛直位置軌道が、前記特徴量をできる限り満足し得るように(前記基準上体鉛直位置軌道にできるだけ似たパターンになるように)、床反力鉛直成分軌道パラメータ(折れ点での時刻や床反力鉛直成分の値)が決定される。より具体的には、歩行歩容の場合、定常歩容の第1旋回歩容と第2旋回歩容、および今回歩容の床反力鉛直成分軌道は、例えば、図16のような折れ線状に設定される。すなわち、両脚支持期では、床反力鉛直成分の増加側に凸(上に凸)の台形状に設定され、片脚支持期では床反力鉛直成分の減少側に凸(下に凸)の台形状に設定される。そして、この床反力鉛直成分軌道を歩容初期(両脚支持期の開始時刻)から終端(片脚支持期の終了時刻)まで2階積分して得られるロボット1の全体重心鉛直位置軌道に対応する上体鉛直位置軌道の最大値と最小値との差が前記特徴量に一致するように、床反力鉛直成分軌道パラメータ、例えば該床反力鉛直成分軌道の2つの台形の高さC1,C2が決定される(この例では床反力鉛直成分軌道の折れ点の時刻は歩容周期に関する要求パラメータに応じて決定される)。
但し、定常歩容の床反力鉛直成分軌道のパラメータは、前述のごとく以下の条件も満足するように決定される。
(条件)床反力鉛直成分軌道の定常歩容全期間(第1旋回歩容と第2旋回歩容両方の期間)における平均値をロボットの自重と一致させる。すなわち、床反力鉛直成分の平均値がロボットに作用する重力と同じ大きさで反対向きになるようにする。
また、今回歩容の床反力鉛直成分軌道のパラメータは、前述のごとく、上体(全体重心)鉛直位置軌道が定常歩容に連続してつながるあるいは近づくように決定される。
以上により、歩行歩容における目標床反力鉛直成分軌道(これを規定するパラメータ)が決定されることとなる。以上説明した目標床反力鉛直成分軌道の決定処理以外の歩容生成処理は、前記した走行歩容に係る実施形態と同一でよい。
前記のように本願発明は、ロボットの着地時の衝撃を緩和するとともに足底のスリップやスピンを回避して、ロボットが安定に歩行または走行できるように足平22の軌道パラメータが設定される点に特徴があるが(S600参照)、以下この点について説明する。
図5の走行歩容における左足平22Lの横から見た姿勢は図6に示されているように変化する。これに伴って左足平22(または足底)と床面との距離dが図7に示されているように変化し、且つ、床面に対する足平22(または足底)の傾斜角度θが図8に示されているように変化するように足平22の脚体2に対する回動動作が制御される。具体的には、まず、離床期の初期(t=t1〜t2)に、左脚体2Lが左足平22Lの先端部(爪先部)において着床したまま、足関節18L(または足関節18Lおよび20L)のロータリエンコーダ33の出力に基づいて測定された床面に対する左足平22Lの傾斜角度が、左足平22Lの後端部(踵部)が先端部(爪先部)よりも床面から遠くなるような正(+)側に増大するように、左脚体2Lに対する左足平22Lの回動動作を制御する。また、左脚体2Lの離床期における床面に対する左足平22Lの傾斜角度θが、床面に対して後端部(踵部)が先端部(爪先部)より高い正(+)側から、床面に対して先端部(爪先部)が後端部(踵部)よりも高い負(−)側に変化してから、徐々に0に近づくように、左脚体2Lに対する左足平22Lの回動動作が制御されている。ロボット1の基本水平面や水平面等の基準面に対する床面の傾斜角度は、脚体2の一または複数の着床時における傾斜センサ36の出力に応じた水平面に対する上体24の傾斜角度や、カメラ92により撮像された床面の画像解析等によって測定され得る。
本発明のロボット100は、遅くとも空中期から着床期に移行する時刻(着床期の開始時点)t=t7には床面に対する左足平22Lの当該傾斜角度θが0になるように左脚体2Lに対する左足平22Lの回動動作が制御されている。
なお、傾斜角度θが距離dの関数θ(d)として定義されてもよい。前記のように脚体2の離床期の中間時点から着床期の開始時点にかけて、床面に対する足平22の傾斜角度θが徐々に0に近づくように、脚体2に対する足平22の回動動作が制御されている場合(図6、図8参照)、θ(d=0)=0、離床期から着床期への移行直前において|δθ/δd|>0となる。また、空中期の途中で角度θが0に制御され、そのまま着床期への移行時刻まで角度θが0に維持されてもよい。
前記機能を発揮するロボット1によれば、脚体2の足平22(または足底)における離床期の中間時点から着床期の開始時点にかけて、床面に対する足平22の傾斜角度θが徐々に0に近づくように脚体2に対する足平22の回動動作が制御される(図5、図6および図8参照)。これにより、離床期から着床期に移行した直後の脚体2の足平22(または足底)における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボット1が受ける衝撃が緩和され得る。また、足平22と床面とのフリクションが大きなものとなるので、脚体2の着床直前におけるロボット1の移動速度およびヨー軸回りの角速度が大きくても、このフリクションによって着床期移行後のロボット1のスリップやスピンを防止することができる。従って、本発明のロボット1は、脚体2の足平22における着床時の衝撃を緩和するとともに足平22におけるスリップやスピンを回避して安定に走行することができる。
また、足平22の先端部(爪先)で床面を蹴るような形で当該足平22の脚体2に対する回動動作が制御される(図6の時刻t1〜t2における足平位置姿勢軌道参照)。これにより、ロボット1の推進力が増強される一方、前記のように着床時にロボット1の足平22におけるスリップやスピンが防止されるので、ロボット1をその挙動を安定なものとしながら高速移動させることができる。
さらに、離床期の開始時点から着床期の開始時点にかけて、足平22を床面に対して踵上がりの姿勢(図6の時刻t2〜t4の足平位置姿勢軌道参照)から爪先上がりの姿勢(図6の時刻t5〜t6の足平位置姿勢軌道参照)としてから、さらに床面に平行な姿勢に近づけ、前記のようにロボット1のスリップやスピンを防止し得る程度に当該足平22における着床面積を確保することができる。
なお、両脚体2がともに離床している空中期(図5(c)(f)参照)を含まない歩行時においても同様に脚体2に対する足平22の回動動作が制御されてもよい。すなわち、ロボット1の歩行時においても、走行に関して前述したように、例えば、脚体2の離床期の中間時点から着床期の開始時点にかけて、床面に対する足平22の傾斜角度θが徐々に0に近づくように、脚体2に対する足平22の回動動作が制御されてもよい。
これにより、離床期から着床期に移行した直後の脚体2の足平22(または足底)における着床面積が大きいものとなるので、その着床時の衝撃を足底に広く分散させ、ロボット1が受ける衝撃が緩和され得る。また、足平22と床面とのフリクションが大きなものとなるので、脚体2の足着床直前におけるロボット1の移動速度およびヨー軸回りの角速度が大きくても、このフリクションによって着床期移行後のロボット1のスリップやスピンを防止することができる。従って、本発明のロボット1は、着床時の衝撃を緩和するとともに足平22におけるスリップやスピンを回避して安定に歩行することができる。