(57)【要約】      （修正有）【課題】歩行ロボットは撓むために、歩容データで遊脚が着地すると想定しているタイミングよりも早いタイミングで着地し、着地脚が床を蹴って２回踏む現象を抑制し、着地衝撃を緩和する。【解決手段】指示された歩容データに従って左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットの着地衝撃を緩和するために、接地している足先の高さを指示する歩容データを、腰の高さから遠ざける側に補正する。接地している足先の高さを指示する歩容データを腰の高さから遠ざける側に補正すると、接地脚に対して腰位置が遠ざけられる。この結果、床を基準にすると腰の位置と遊脚の足先高さが上方に持ち上げられる。機械系に生じる撓みによって遊脚の足先高さが歩容データで指示される高さよりも下がる現象が補償される。【選択図】図７
2004298982.tif 000002
【特許請求の範囲】
【請求項１】
左足先と腰と右足先の位置と姿勢を指示する歩容データから、左脚リンクと腰と右脚リンクで構成される機械系に存在する複数の関節の各関節角を計算する関節角群計算手段と、
各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータとを備え、
指示された歩容データに従って左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットに、
接地している足先の高さを指示する歩容データを、腰の高さから遠ざける側に補正する手段を付加した歩行ロボット。
【請求項２】
腰の高さから遠ざける距離を、その足先が着地した時点から経時的に増大させ、次に他方の足先が着地する時点までの間に所定距離に調整することを特徴とする請求項１の歩行ロボット。
【請求項３】
腰の高さから遠ざける距離を、他方の足先が着地した時点から経時的に減少させ、次に当該足先が浮遊する時点までの間にゼロに戻すことを特徴とする請求項１または２の歩行ロボット。
【請求項４】
左足先と腰と右足先の位置と姿勢を指示する歩容データを下記の工程、即ち、
左足先と右足先の高さから、左片脚立脚状態、両脚立脚状態、右片脚立脚状態の別を判定する工程と、
左足先の高さを指示する歩容データを、左片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程と、
右足先の高さを指示する歩容データを、右片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程によって補正し、
補正された歩容データをロボットに指示することによってロボットを歩行させるロボットの制御方法。
【請求項５】
左足先と腰と右足先の位置と姿勢を指示する歩容データを下記の処理を経て補正するプログラムであり、コンピュータに下記の処理、即ち、
左足先と右足先の高さから、左片脚立脚状態、両脚立脚状態、右片脚立脚状態の別を判定する処理と、
左足先の高さを指示する歩容データを、左片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する処理と、
右足先の高さを指示する歩容データを、右片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する処理と、
を実行させる歩容データの補正プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、左脚リンクと腰と右脚リンクから構成される機械系を備え、その機械系に存在する複数の関節を利用して、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットの制御技術に関する。
【０００２】
【従来の技術】左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットが開発されている。通常は、腰と左上腿が左股関節によって接続され、左上腿と左下腿が左膝関節で接続され、左下腿と左足先が左足首関節で接続され、腰と右上腿が右股関節によって接続され、右上腿と右下腿が右膝関節で接続され、右下腿と右足先が右足首関節で接続されている。左脚リンクと腰と右脚リンクで構成される機械系には複数の関節が存在しており、その関節を利用することによって、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることができる。
【０００３】
左脚リンクと腰と右脚リンクの相対的姿勢を変化させる場合、結果として歩行した結果が得られるように、左脚リンクと腰と右脚リンクの相対的姿勢を変化させなければならない。
このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。歩容データは、左足先と腰と右足先の位置と姿勢を指示するデータを経時的に記憶している。経時的に変化する左足先と腰と右足先の位置と姿勢を指示するデータに従って、左脚リンクと腰と右脚リンクの相対的姿勢を経時的に変化させることによってロボットは歩行する。
【０００４】
歩容データの作成段階では、左脚リンクと腰と右脚リンクの相対的姿勢の変化を想定して歩容データを作成する。左脚と右脚の両リンクの足先が接地している状態から、一方の脚リンクの足先を上昇させ、前方に移動させ、ついで下降させることによって遊脚リンクを一歩すすめて着地させる歩容データを作成する。
【０００５】
左脚リンクと腰と右脚リンクを備えているロボットは重量を持ち、構成部材が撓むことが避けられない。構成部材が撓むと、遊脚リンクの足先高さは、歩容データが指示する足先高さよりも下がってしまう。遊脚リンクの足先高さが下がってしまうと、歩容データ上で遊脚リンクが着地すると想定しているタイミングよりも早いタイミングで着地してしまう。即ち、歩容データでは遊脚リンクの足先を下降させて着地させることを意図している最中に着地してしまう。遊脚リンクの足先を下降させている途中で遊脚リンクの足先が着地すると、着地した後もロボットは腰に対して遊脚リンク（歩容データのうえではまだ着地していないので遊脚となっている）の足先を下降させつづけることから、結果としては着地した脚が床を蹴ってしまう。着地脚が床を蹴ると、着地衝撃が大きくなってロボットの動作が不安定になる。そのために、ロボットが高速で歩行できないという問題が生じている。また外観上は着地時に床を２回踏むように見える動作となって現われ、違和感をもたらしている。
【０００６】
着地衝撃を緩和する技術が提案されている。特許文献１には、足裏部に衝撃緩和部材を装着することによって着地衝撃を緩和する技術が開示されている。特許文献２には、腰に対して立脚リンクを下降させて遊脚リンクを上昇させる上下リンク機構を採用し、下降する遊脚リンクを立脚リンクに対して持ち上げることによって遊脚リンクを静かに着地させる技術が開示されている。
【０００７】
【特許文献１】
特開平１１―３３９４１号公報
【特許文献２】
特開２００１−６２７６１号公報
【０００８】
【発明が解決しようとする課題】足裏部に衝撃緩和部材を装着することによって十分な衝撃緩和能力を確保しようとすると、立脚中のロボットの姿勢が不安定になるというトレードオフの関係が存在し、限界がある。
腰に対して立脚リンクを下降させて遊脚リンクを上昇させる上下リンク機構を採用し、下降する遊脚リンクを立脚リンクに対して持ち上げる技術では、本来は必要とされない上下リンク機構を付加する必要がある。また、下降する遊脚リンクを立脚リンクに対して持ち上げるプログラムが必要とされるところ、そのプログラムをロボットの種類毎に、あるいはロボットの動作毎に固有に作成しなければならない。剛性が低くて撓みやすいロボットにはそれを補償するプログラムが必要とされ、ロボットが高速で歩行するために慣性の影響を受けて撓む場合にはそれを補償するプログラムが必要とされる。ロボットの種類毎あるいはロボットの動作モード毎に固有のプログラムを作成する必要があり、ひどく面倒な作業が必要とされる。
【０００９】
【課題を解決するための手段と作用】本発明で創作されたロボットは、左足先と腰と右足先の位置と姿勢を指示する歩容データから、左脚リンクと腰と右脚リンクから構成される機械系に存在する複数の関節の各関節角を計算する関節角群計算手段と、各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータとを備えおり、指示された歩容データに従って左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットに関する。本発明で創作されたロボットは、着地衝撃を緩和するために、接地している足先の高さを指示する歩容データを、腰の高さから遠ざける側に補正する手段が付加されている。
【００１０】
接地している足先の高さを指示する歩容データを腰の高さから遠ざける側に補正すると、接地脚の足先に対して腰位置が遠ざけられる。この結果、接地脚が接地している床から腰位置が遠ざけられる。即ち、床を基準にすると腰の位置が上方に持ち上げられる。
腰位置が上方に持ち上げられると、遊脚リンクの足先高さも持ち上げられ、機械系に生じる撓みによって遊脚リンクの足先高さが歩容データで指示される高さよりも下がる現象が補償され、実際の遊脚リンクの足先高さが歩容データで指示される高さによく一致するようになる。このために、歩容データ上で遊脚リンクが着地すると想定しているタイミングよりも早いタイミングで着地してしまうことがない。遊脚リンクの足先を下降させて着地させることを意図している最中に着地してしまうことがないために、着地した脚リンクが床を蹴ってしまうことがなく、着地時に床を２回踏むように見える動作も現われない。
【００１１】
接地脚の足先の高さを腰の高さから遠ざけるにあたっては、その距離を、その足先が着地した時点から経時的に増大させ、次に他方の足先が着地する時点までの間に所定距離に調整することが好ましい。
脚が着地して接地脚になった瞬間に急激に腰の高さから遠ざけるのではなく、経時的に増大させて徐々に遠ざけることによって、ロボットの歩行姿勢は安定する。徐々に遠ざけるといってもあまりにゆっくり遠ざけると、撓みによる影響を補償する以前に他方の足先が着地してしまう。遅くとも、他方の足先が次に着地する時点までの間には、撓みによる影響を補償できるだけの距離に調整しておく必要がある。他方の足先が次に着地する時点までの間に、所定距離に調整されていればよく、その時点に先立って所定距離に調整しておくこともできるし、丁度その時点で所定距離となるように調整することもできる。他方の足先が次に着地する時点に先立って所定距離に調整しておくようにすると、歩行速度の大小にかかわらずに対応することができる。
【００１２】
接地脚の足先の高さを腰の高さから遠ざけた状態で他方の足先が着地した時点以降には、腰から遠ざける距離を経時的に減少させ、次に当該足先が浮遊する時点までの間にゼロに戻すことが好ましい。
片脚立脚している接地脚の足先の高さを腰の高さから遠ざけた状態で他方の足先が着地すると、他方の足先は意図したタイミングで着地して両脚接地状態に移行する。両脚接地状態に移行した後は、新たに着地した脚の足先の高さを腰の高さから遠ざける一方、もともと接地していた脚の足先の高さを歩容データの指示する高さに戻すことが好ましい。もともと接地していた脚は、次には床から浮遊して遊脚となる脚であり、当該脚の足先が浮遊する時点までの間に補正量がゼロに戻されて歩容データの指示する高さに戻されていれば、歩容データが想定しているタイミングで当該脚の足先が浮遊する。この技術を用いると、着地タイミングと浮遊タイミングの両者が、歩容データが想定しているタイミングに維持される。
【００１３】
本発明は、歩行ロボットの新たな制御方法を創作したということもできる。この制御方法では、左足先と腰と右足先の位置と姿勢を指示する歩容データを下記の工程、即ち、
（１）  左足先と右足先の高さから、左片脚立脚状態、両脚立脚状態、右片脚立脚状態の別を判定する工程と、
（２）  左足先の高さを指示する歩容データを、左片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程と、
（３）  右足先の高さを指示する歩容データを、右片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程によって補正する。
その上で、補正された歩容データをロボットに指示することによってロボットを歩行させる。
「片脚立脚状態を経て両脚立脚状態に至るまでの間」は、「両脚立脚状態の開始時点の前後を含んで」を意味する。重要なことは、両脚立脚状態の開始時点において必要量だけ補正されていることであり、補正量を急激に変化させないためには、両脚立脚状態の開始時点の前後を含んで補正する必要がある。その条件が満たされる限り、補正の開始時点と終了時点には格別の制約はない。もっとも、当該脚の足先が次に浮遊することを予定しているタイミングまでの間には補正が終了して補正量がゼロに戻されていることが好ましいが、それも絶対的に必要とされるわけではない。歩容データが予定する浮遊タイミングからずれても深刻な問題は生じないからである。
【００１４】
上記の制御方法を実施するには、歩容データを補正するプログラムが必要とされる。本発明で創作されたプログラムは、コンピュータに下記の処理、即ち、
（１）  左足先と右足先の高さから、左片脚立脚状態、両脚立脚状態、右片脚立脚状態の別を判定する処理と、
（２）  左足先の高さを指示する歩容データを、左片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する処理と、
（３）  右足先の高さを指示する歩容データを、右片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する処理とを実行させる。
このプログラムを実行すると、補正前の歩容データ上で遊脚リンクの足先が着地すると想定しているタイミングよりも早いタイミングで着地してしまうことがないようにロボットを動作させる歩容データに補正される。遊脚リンクの足先を下降させて着地させることを意図している最中に着地してしまうことがないために、着地した脚が床を蹴ってしまうことがなく、着地時に床を２回踏むように見える動作も現われない。
【００１５】
【実施の形態】以下に説明する実施例の主要な特徴を最初に列記する。
（形態１）遊脚リンクの足先が着地して両脚接地状態に移行した時点で、新たに着地した足先の高さを下げる補正を開始し、もともと接地していて足先の高さを所定距離だけ下げる補正をしている足先の補正量を減少させ始める。もともと接地している脚が次に浮遊して両脚接地状態が終了する時点までの間に、補正を開始した脚の補正量を所定距離に増大させ、補正量を減少させ始めた脚の補正量をゼロに減少させる。
【００１６】
【実施例】図１は、左脚リンク４７と腰１と右脚リンク１７から構成される機械系を備えた２足歩行ロボット８４の機械的構成を示す。
左脚リンク４７は、左上腿４８と左膝関節５０と左下腿５２と左足首関節５８と左足先６２を備える。左膝関節５０はピッチ軸ｙの回りの関節角が可変であり、左足首関節５８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。図１では、図示の明瞭化のために、関節角を変えるアクチュエータによって関節が代表されている。例えば参照番号５０は、膝関節と膝関節の関節角を変えるアクチュエータに共通的に用いられる。参照番号５４は、足首関節５８のピッチ軸ｙの回りの関節角を変えるアクチュエータであり、参照番号５６は、ロール軸ｘの回りの関節角を変えるアクチュエータである。左足先６２には、左足先６２と床との間で作用する力、この場合、ロール軸ｘ方向の力と、ピッチ軸ｙ方向の力と、重力線ｚ方向の力と、ロール軸ｘ回りのモーメントと、ピッチ軸ｙ回りのモーメントと、重力線ｚ回りのモーメントを計測する６軸力センサ６０が取り付けられている。
左右の脚リンク１７，４７は左右対称であり、右脚リンク１７は、右上腿１８と右膝関節２０と右下腿２２と右足首関節２８と右足先３２を備える。右膝関節２０はピッチ軸ｙの回りの関節角が可変であり、右足首関節２８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。右足先３２にも、６軸力センサ３０が取り付けられている。
腰１は、腰プレート８と腰柱４を備えており、両者の間には腰関節６が設けられている。腰柱４には、腰柱４のピッチ軸ｙの回りの傾斜角とロール軸ｘ回りの傾斜角と重力線ｚ軸回りの回転角を計測するジャイロ２が固定されている。腰柱４のピッチ軸ｙの回りの傾斜角とロール軸ｘの回りの傾斜角は、腰関節６が回転しても影響を受けない。
【００１７】
左脚リンク４７と腰１は、左股関節４６で接続されている。左股関節４６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ４０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ４２と、ロール軸ｘの回りの関節角を変えるアクチュエータ４４を備えている。右脚リンク１７と腰１は、右股関節１６で接続されている。右股関節１６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ１０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ１２と、ロール軸ｘの回りの関節角を変えるアクチュエータ１４を備えている。
【００１８】
図１の機械系を利用して歩行する場合、結果として歩行した結果が得られるように、左脚リンク４７と腰１と右脚リンク１７の相対的姿勢を変化させなければならない。
このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。図２に示すように、歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、左足先と腰と右足先の位置と姿勢を指示する。左足先と腰と右足先の位置を指示するために、左足先６２には基準点Ｌ０が定められており、右足先３２には基準点Ｒ０が定められており、腰１には基準点Ｗ０が定められている。左足先と腰と右足先の姿勢を指示するために、左足先６２に垂直なベクトルＬが想定されており、右足先３２に垂直なベクトルＲが想定されており、腰柱４に沿って伸びるベクトルＷが想定されている。図２に示すように、歩容データは、グローバル座標系において、左足先６２の基準点Ｌ０のｘ、ｙ、ｚ座標、右足先３２の基準点Ｒ０のｘ、ｙ、ｚ座標、腰１の基準点Ｗ０のｘ、ｙ、ｚ座標を指示する。また、左足先６２に垂直なベクトルＬのピッチ角Ｌαと、ロール角Ｌβと、ヨー角Ｌγを指示し、右足先３２に垂直なベクトルＲのピッチ角Ｒαと、ロール角Ｒβと、ヨー角Ｒγを指示し、腰柱４に沿って伸びるベクトルＷのピッチ角Ｗαと、ロール角Ｗβと、ヨー角Ｗγを指示する。図３に示すように、歩容データは、左足先と腰と右足先の位置と姿勢を指示するデータを経時的に記憶している。経時的に変化する左足先と腰と右足先の位置と姿勢を指示する歩容データに従って、左脚リンク４７と腰１と右脚リンク１７の相対的姿勢を経時的に変化させることによってロボット８４は歩行する。
【００１９】
ロボットは、図４に示すように、左足先と腰と右足先の位置と姿勢を指示する歩容データを入力して、左股関節４６のｚ軸回りの関節角とｙ軸回りの関節角とｘ軸回りの関節角と、左膝関節５０のｙ軸回りの関節角と、左足首関節５８のｙ軸回りの関節角とｘ軸回りの関節角と、右股関節１６のｚ軸回りの関節角とｙ軸回りの関節角とｘ軸回りの関節角と、右膝関節２０のｙ軸回りの関節角と、右足首関節２８のｙ軸回りの関節角とｘ軸回りの関節角を計算し、それぞれの関節角を変化させるアクチュエータ４０，４２，４４，５０，５４，５６，１０，１２，１４，２０，２４，２６の回転角を計算する関節角群計算装置７０を備えている。関節角群計算装置７０は、逆キネマティクスを解いて関節角群を計算する。関節角群計算装置７０は、ロボットの歩行動作とリアルタイムで関節角群を計算する。関節角群計算装置７０は、物理的にはロボット外にあってもよく、計算された関節角群を無線または有線でロボットに送信して指示するものであってもよい。
歩容データは、予めオフラインで作成しておいてロボットにティーチングしておいてもよい。あるいは、ロボットを動作させながらリアルタイムで歩容データを作成することもできる。ロボットの動作を観測しながらジョイスティック等を操作してロボットの次の動作を指定することによって歩容データを作成することもできる。この場合、リアルタイムで作成された歩容データを無線または有線でロボットに送信し、ロボット内に搭載されている関節角群計算装置７０で関節角群をリアルタイムで計算する。あるいは、ロボット外に置かれた関節角群計算装置７０で計算された関節角群を無線または有線でリアルタイムでロボットに送信してもよい。
【００２０】
ロボットに撓みがなければ、関節アクチュエータを計算された回転角に調整することで、ロボットは歩容データで指示されたとおりに姿勢を変えて歩行するはずである。
しかしながら実際にはロボットは撓む。ロボットが撓むと、遊脚の足先の実際の高さは、歩容データが指示する高さよりも低くなる。遊脚の足先が下がってしまうと、歩容データ上で遊脚が着地すると想定しているタイミングよりも早いタイミングで着地してしまう。即ち、歩容データでは遊脚の足先を下降させて着地させることを意図している間に着地してしまう。遊脚の足先を下降させている動作の途中で遊脚の足先が着地すると、着地した後もロボットは腰に対して遊脚の足先を下降させつづけることから、結果としては着地した脚の足先が床を蹴ってしまう。着地脚が床を蹴ると、着地時の衝撃が大きくなってロボットの動作が不安定になる。そのために、高速で歩行できないという問題が生じてしまう。また外観上は着地時に床を２回踏むように見え、違和感をもたらしている。
【００２１】
本発明者の研究によって、歩行中のロボットに生じる撓みは、ほとんどが立脚で発生することが判明した。立脚が撓むために、腰の高さ（図２の腰基準点Ｗ０の高さ）が、歩容データで指示する高さよりも下がってしまうことを確認した。即ち、立脚リンクの足先（図２では左片脚立脚であるので、左足先基準点Ｌ０の位置）の高さと腰（腰基準点Ｗ０の位置）の高さの差が、歩容データで指示するものよりも接近してしまうことを確認した。立脚が撓んで腰の位置が下がるために、遊脚の足先の高さが、歩容データで指示する高さよりも下がってしまうのであり、腰の位置が下がらなければ、遊脚の足先の着地タイミングはずれない。
【００２２】
そこで本実施例では、立脚リンクの撓みによって生じる腰位置の沈み込み量を勘案して、歩容データを補正する。接地している足先の高さを指示する歩容データを、撓みに起因する腰位置の沈み込み量に相当する分だけ、腰の高さから遠ざける側に補正すれば、撓みがないものとして指示する腰位置の高さと、撓みによって沈み込んだ腰位置の高さが一致するはずである。撓み分だけ歩容データを補正することによって、実際の腰位置の高さが歩容データの指示する高さに一致するようになる。この結果、遊脚リンクの実際の足先の高さが歩容データの指示する高さに一致し、着地タイミングがずれなくなる。
【００２３】
図５の（１）は補正前の歩容データの左足先の高さの経時的変化を示し、（２）は補正前の歩容データの右足先の高さの経時的変化を示している。着地してから次に浮遊するまでの間は、一定の高さに維持されるように指示している。床に接地している足先の高さは変化しないはずであることに対応している。
ロボットに撓みがなければ、関節アクチュエータを計算された回転角に調整することで、ロボットは歩容データで指示されたとおりに姿勢を変えて歩行するはずである。しかしながらロボットは実際には撓むために、実際の足先の高さは、図５（１）（２）の歩容データが示すものからずれる。具体的には、遊脚の実際の足先高さが下方に移動し、歩容データが指示するほどには足先が持ち上げられない。それが着地タイミングをずらし、着地衝撃を大きなものにする。
それに対処するために、図６に示すように、歩容データの補正手段８０が組み込まれている。補正手段８０は、ロボットの機械系８４に組み込まれていてもよいし、物理的には別の位置に設けられていてもよい。
【００２４】
図７は、補正手段８０による処理手順を示す。補正処理は、図３に示す歩容データが指定されているすべての時間ｔ１、ｔ２、ｔ３・・の歩容データに対して逐次実行する。
ステップＳ２では、図５（１）、（２）に例示される補正前の歩容データから、補正対象の歩容データの状態を判別する。ロボットは、（１）左片脚立脚状態と、（２）両脚立脚状態と、（３）右片脚立脚状態と、（４）両脚立脚状態を経てから（１）の左片脚立脚状態に戻る。ここで、左片脚立脚状態とは左脚のみが接地している（従って右脚が遊脚になっている）状態を示し、右片脚立脚状態とは右脚のみが接地している（従って左脚が遊脚になっている）状態を示す。図５（１）、（２）に例示される左右の脚リンクの足先の高さから、補正対象の歩容データが上記（１）〜（４）のいずれの状態にあるかを判別することができる。図３の時間ｔ１、ｔ２、ｔ３・・のそれぞれについて、（１）〜（４）のいずれの状態にあるかを判別することができる。
【００２５】
説明の便宜のために、左片脚立脚状態から右脚が着地して両脚立脚状態に移行する瞬間、即ち遊脚であった右脚が着地した瞬間から説明する。この時に計時を始め、ステップＳ４ｂの処理を可能とする。ステップＳ４ｂでは、右脚が着地して両脚立脚状態に移行した瞬間からの経過時間Ｔ１を測定する。右脚が着地して両脚立脚状態に移行した状態では、ステップＳ６ｂで、経過時間Ｔ１とともに左足補正量を小さくしてゼロに戻す。図７で下向きの補正量は、腰位置に対して足先を遠ざける側の補正量を示している。右脚が着地して両脚立脚状態に移行した状態では、次に左脚が浮遊して右片脚立脚状態に移行するに先立って、左足補正量がゼロに戻る速度で左足補正量を小さくしてゼロに戻す。一方、着地した右脚については、ステップＳ８ｂで、腰位置に対して足先を遠ざける側の補正量を経過時間Ｔ１とともに大きくし、最大量ΔＭＡＸに達したら、最大量ΔＭＡＸに維持する。右脚が着地して両脚立脚状態に移行した状態では、次に左脚が浮遊して右片脚立脚状態に移行するに先立って、右足補正量が最大量ΔＭＡＸに達する速度で右足補正量を大きくして最大量ΔＭＡＸに維持する。
【００２６】
右片脚立脚状態の間は、それに先立って左足補正量がゼロに戻されているのでゼロに維持し（ステップＳ６ｃ）、接地している右脚補正量は最大量ΔＭＡＸに調整されているので最大量ΔＭＡＸに維持する（ステップＳ８ｃ）。
【００２７】
右脚接地中は遊脚であった左脚が着地した瞬間に計時を始め、ステップＳ４ｄの処理を可能とする。ステップＳ４ｄでは、左脚が着地して両脚立脚状態に移行した瞬間からの経過時間Ｔ２を測定する。左脚が着地して両脚立脚状態に移行した状態では、ステップＳ８ｄで、経過時間Ｔ２とともに右足補正量を小さくしてゼロに戻す。左脚が着地して両脚立脚状態に移行した状態では、次に右脚が浮遊して左片脚立脚状態に移行するに先立って、右足補正量がゼロに戻る速度で右足補正量を小さくしてゼロに戻す。一方、着地した左脚については、ステップＳ６ｄで、腰位置に対して足先を遠ざける側の補正量を経過時間Ｔ２とともに大きくし、最大量ΔＭＡＸに達したら、最大量ΔＭＡＸに維持する。左脚が着地して両脚立脚状態に移行した状態では、次に右脚が浮遊して左片脚立脚状態に移行するに先立って、左足補正量が最大量ΔＭＡＸに達する速度で左足補正量を大きくして最大量ΔＭＡＸに維持する。
【００２８】
左片脚立脚状態の間は、それに先立って右足補正量がゼロに戻されているのでゼロに維持し（ステップＳ８ａ）、接地している左脚補正量は最大量ΔＭＡＸに調整されているので最大量ΔＭＡＸに維持する（ステップＳ６ａ）。
【００２９】
図５の（３）は撓み分を補償するために補正された左足先の高さの経時的変化を示し、（４）は補正後の歩容データの右足先の高さの経時的変化を示している。
図５では、左脚が着地するとその時以降には左足補正量を増大させ、次に右脚が浮遊して左片脚立脚状態に移行するときに最大量ΔＭＡＸに達する速度で左足補正量を大きくしている。以後左片脚立脚の間は左足補正量を最大量ΔＭＡＸに維持し、最大量ΔＭＡＸに維持している間に右脚が着地する。立脚に撓みが生じても右脚の着地タイミングはずれない。最大補正量ΔＭＡＸは、立脚が撓んで立脚の足先の高さと腰の高さが接近する分を補償する大きさに設定されている。右脚が着地すると、次に遊脚となる左足先の補正量が減じられ、図５では、左足先が遊脚となるときに補正量がゼロに戻されている。左足先が床から浮遊して遊脚となる瞬間がずれることもない。
右脚についても同等であり、右脚が着地するとその時以降には右足補正量を増大させ、次に左脚が浮遊して右片脚立脚状態に移行するときに最大量ΔＭＡＸに達する速度で右足補正量を大きくしている。以後右片脚立脚の間は右足補正量を最大量ΔＭＡＸに維持し、最大量ΔＭＡＸに維持している間に左脚が着地する。立脚に撓みが生じても左脚の着地タイミングはずれない。最大補正量ΔＭＡＸは、立脚が撓んで立脚の足先の高さと腰の高さが接近する分を補償する大きさに設定されている。左脚が着地すると、次に遊脚となる右足先の補正量が減じられ、図５では、右足先が遊脚となるときに補正量がゼロに戻されている。右足先が床から浮遊して遊脚となる瞬間がずれることもない。
【００３０】
補正量を増大させる場合、その脚が着地した以降に増大させ、逆の脚が着地するに先立って必要補正量（これを所定補正量ということがある）に増大されておればよい。（５）（６）のように、片脚立脚中に補正量をゆっくり増大させてもよい。（６）のように逆の脚が着地する瞬間に必要補正量に増大されておればよい。（７）に示すように片脚立脚状態になってから増大させてもよいし、（８）に示すように片脚立脚状態になる以前に必要補正量に増大させてもよい。補正量を減少させる場合、その脚が遊脚となる前にゼロに戻されておればよく、（７）に示すように両脚立脚状態となるのを待ってから減少させてもよいし、（８）に示すように遊脚になるのに先立ってゼロに戻してもよい。
【００３１】
以上から理解されるように、本実施例では、
（１）  左足先と右足先の高さから、左片脚立脚状態、両脚立脚状態、右片脚立脚状態の別を判定する工程と、
（２）  左足先の高さを指示する歩容データを、右足が着地する瞬間に必要補正量に補正させているように、左片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程と、
（３）  右足先の高さを指示する歩容データを、左足先が着地する瞬間に必要補正量に補正させているように、右片脚立脚状態を経て両脚立脚状態に至るまでの間、腰の高さから遠ざける側に補正する工程によって補正する。
【００３２】
図６は、歩容データ補正手段８０とその周辺の手段との関係を示す。歩容データ補正手段８０は、補正前の歩容データを入力して補正後の歩容データを出力する。補正前の歩容データは、予めオフラインで作成しておいてロボットにティーチングしておいてもよい。あるいは、ロボットを動作させながらリアルタイムで補正前の歩容データを作成することもできる。ロボットの動作を観測しながらジョイスティック等を操作してロボットの次の動作を指定することによって補正前の歩容データを作成することもできる。この場合、リアルタイムで作成された補正前の歩容データを無線または有線でロボットに送信し、ロボット内に搭載されている関節角群計算手段７０で関節角群をリアルタイムで計算する。あるいは、ロボット外に置かれた関節角群計算手段７０で計算された関節角群を無線または有線でリアルタイムでロボットに送信してもよい。
【００３３】
補正手段８０で補正された歩容データは、ロボットの制御手段８２に指令値として入力される。ロボット８４に搭載されているロボットの計測装置８８がロボット８４の現在の状態を示す値を把握し、それをロボットの制御手段８２に入力する。ロボットの制御手段８２は、指令値と現在値を比較し、必要な補正を施して制御に用いる指令値を計算し、関節角群計算手段７０に指示する。関節角群計算手段７０は、各アクチュエータの回転角、あるいは角速度を計算して関節アクチュエータ８６を制御する。ロボットの制御手段８２は、いわゆる倒立振子モデルやならい制御モデルを利用して、ロボットの転倒を防いで予期せぬ床の凹凸等の影響を吸収する。
【００３４】
図８は、６軸力センサ３０，６０で検出されるＺ軸方向の力を示す。（１）と（２）は、歩容データを補正しないときのＺ軸方向の力を示し、（３）と（４）は、歩容データを補正したときのＺ軸方向の力を示している。（１）と（３）は、左脚のＺ軸方向の力を示し、（２）と（４）は、右脚のＺ軸方向の力を示している。
明らかに、歩容データを補正することによってＺ軸方向の力は安定し、最大値が減少している。また、補正する前には足先が２度踏みしていていたのに対し、補正すると２度踏み現象は解消する。歩容データを補正することによって、着地衝撃が緩和され、ロボットが円滑に歩行していることが確認される。
【００３５】
以上、本発明の具体例を詳細に説明したが、これらは例示であり、特許請求の範囲を限定するものではない。また、本発明はいくつかの目的を解決するものであり、全部の目的を同時に解決するときに限って有意義なものではなく、一または二の目的を解決するだけで有意義なものである。
【００３６】
【発明の効果】本発明によると、機械系が撓んで予定しているよりも早期に着地するために着地脚が床を蹴ってしまう現象が抑制され、着地衝撃を緩和することができる。着地脚が床を２度踏む現象も解消される。ロボットは、自然な歩行姿勢で高速で歩行することが可能となる。
【図面の簡単な説明】
【図１】歩行ロボットの機械構成を示すスケルトン図。
【図２】歩容データが利用する基準点と基準ベクトルを示す図。
【図３】歩容データの内容を模式的に示す図。
【図４】歩容データから関節角群を計算する計算手段を示す図。
【図５】補正前の歩容データの足先高さの経時的変化と、補正後の歩容データの足先高さの経時的変化を対比して示す図。
【図６】ロボットの制御系のブロック図。
【図７】歩容データの補正処理手順を示す図。
【図８】足先が床から受ける力を、補正前の歩容データによる場合と、補正後の歩容データによる場合を対比して示す図。
【符号の説明】
２：ジャイロ
４：腰柱
６：腰関節
８：腰板
１６，４６：股関節
２０，５０：膝関節
２８，５８：足首関節
３０，６０：６軸力センサ
ΔＺＬ：左足先の補正量
ΔＺＲ：右足先の補正量
ΔＭＡＸ：必要補正量
【図１】
2004298982.tif 000003
【図２】
2004298982.tif 000004
【図３】
2004298982.tif 000005
【図４】
2004298982.tif 000006
【図５】
2004298982.tif 000007
【図６】
2004298982.tif 000008
【図７】
2004298982.tif 000009
【図８】
2004298982.tif 000010