(57)【要約】      （修正有）【課題】歩行ロボットは撓むために、歩容データで遊脚が着地すると想定しているタイミングよりも早いタイミングで着地し、着地脚が床を蹴って２回踏むように作動する。この現象を抑制する。【解決手段】着地衝撃を緩和するために、指示された腰の姿勢Ｗαと計測された腰の姿勢Ｊαの偏差Δαから、偏差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する手段と、その関節の関節角の修正量から歩容データに含まれる腰の位置と姿勢を指示するデータを修正する手段と、腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する手段を備える。【選択図】図７
2004298983.tif 000002
【特許請求の範囲】
【請求項１】
左足先と腰と右足先の位置と姿勢を指示する歩容データから、左脚リンクと腰と右脚リンクで構成される機械系に存在する複数の関節の各関節角を計算する関節角群計算手段と、
各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータとを備え、
指示された歩容データに従って左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットに、
腰の姿勢を計測する腰姿勢計測手段と、
指示された腰の姿勢と計測された腰の姿勢の差から、その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する手段と、
その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する手段と、
腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する手段と、
が付加されている歩行ロボット。
【請求項２】
指示された腰の姿勢と計測された腰の姿勢の差を解消するのに必要な立脚リンクの股関節の関節角の修正量を計算することを特徴とする請求項１のロボット。
【請求項３】
指示された腰の姿勢と計測された腰の姿勢の差を解消するのに必要な立脚リンクの足首関節の関節角の修正量を計算することを特徴とする請求項１のロボット。
【請求項４】
立脚リンクに存在する複数の関節の関節角の修正量の関係を予め決定しておき、
その関係を利用して、指示された腰の姿勢と計測された腰の姿勢の差を解消するのに必要な立脚リンクに存在する各関節の関節角の修正量を計算することを特徴とする請求項１のロボット。
【請求項５】
左足先と腰と右足先の位置と姿勢を指示する歩容データを下記の工程、即ち、
補正前の歩容データで指示された腰の姿勢と、実際の腰の姿勢の差を求める工程と、
その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する工程と、
その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する工程と、
腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する工程と、
を経て修正し、
修正された歩容データをロボットに指示することによってロボットを歩行させるロボットの制御方法。
【請求項６】
左足先と腰と右足先の位置と姿勢を指示する歩容データを下記の処理を経て修正するプログラムであり、コンピュータに下記の処理、即ち、
補正前の歩容データで指示された腰の姿勢と、実際の腰の姿勢の差を求める処理と、
その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する処理と、
その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する処理と、
腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する処理、
を実行させる歩容データの修正プログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】本発明は、左脚リンクと腰と右脚リンクから構成される機械系を備え、その機械系に存在する複数の関節を利用して、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットの制御技術に関する。
【０００２】
【従来の技術】左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットが開発されている。通常は、腰と左上腿が左股関節によって接続され、左上腿と左下腿が左膝関節で接続され、左下腿と左足先が左足首関節で接続され、腰と右上腿が右股関節によって接続され、右上腿と右下腿が右膝関節で接続され、右下腿と右足先が右足首関節で接続されている。左脚リンクと腰と右脚リンクで構成される機械系には複数の関節が存在しており、その関節を利用することによって、左脚リンクと腰と右脚リンクの相対的姿勢を変化させることができる。
【０００３】
左脚リンクと腰と右脚リンクの相対的姿勢を変化させる場合、結果として歩行した結果が得られるように、左脚リンクと腰と右脚リンクの相対的姿勢を変化させなければならない。
このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。歩容データは、左足先と腰と右足先の位置と姿勢を指示するデータを経時的に記憶している。経時的に変化する左足先と腰と右足先の位置と姿勢を指示するデータに従って、左脚リンクと腰と右脚リンクの相対的姿勢を経時的に変化させることによってロボットは歩行する。
【０００４】
歩容データの作成の段階では、左脚リンクと腰と右脚リンクの相対的姿勢の変化を想定してデータを作成する。立脚が接地している間に、遊脚の足先を上昇させ、前方に移動させ、ついで下降させることによって遊脚を一歩すすめて着地させる歩容データを作成する。
【０００５】
左脚リンクと腰と右脚リンクを備えているロボットは重量を持ち、構成部材が撓むことが避けられない。構成部材が撓むと、遊脚の足先位置は、歩容データが指示する足先位置よりも下がってしまう。遊脚の足先位置が下がってしまうと、歩容データの上では遊脚が着地すると想定しているタイミングよりも早いタイミングで着地してしまう。即ち、歩容データでは遊脚を下降させて着地させることを意図している間に着地してしまう。遊脚を下降させている途中で遊脚が着地すると、着地した後もロボットは腰に対して遊脚を下降させつづけることから、結果としては着地した脚が床を蹴ってしまう。着地脚が床を蹴ると、着地時の衝撃が大きくなってロボットの動作が不安定になる。そのために、高速で歩行できないという問題が生じている。また、外観上は着地時に床を２回踏むように見え、違和感をもたらしている。
【０００６】
着地衝撃を緩和する技術が提案されている。特許文献１には、足裏部に衝撃緩和部材を装着することによって着地ショックを緩和する技術が開示されている。特許文献２には、腰に対して立脚を下降させて遊脚を上昇させる上下リンクを採用し、下降する遊脚を立脚に対して持ち上げることによって静かに着地させる技術が開示されている。
【０００７】
【特許文献１】
特開平１１―３３９４１号公報
【特許文献２】
特開２００１−６２７６１号公報
【０００８】
【発明が解決しようとする課題】足裏部に衝撃緩和部材を装着することによって対策する技術では、十分な衝撃緩和能力を確保しようとするとロボットの姿勢が不安定になるというトレードオフの関係が存在し、限界がある。
腰に対して立脚を下降させて遊脚を上昇させる上下リンクを採用し、下降する遊脚を立脚に対して持ち上げる技術では、本来は必要とされない上下リンクを付加する必要がある。また、下降する遊脚を立脚に対して持ち上げるプログラムが必要とされるところ、そのプログラムをロボットの種類毎に、あるいはロボットの動作毎に固有に作成しなければならない。剛性が低くて撓みやすいロボットにはそれを補償するプログラムが必要とされ、ロボットが高速で歩行するために慣性の影響を受けて撓む場合にはそれを補償するプログラムが必要とされる。ロボットの種類毎あるいはロボットの動作モード毎に固有のプログラムを作成する必要があり、ひどく面倒な作業が必要とされる。さらには、予期せぬ事象、たとえば予期せぬ物体と干渉して予期せぬ撓み等が生ずれば、あらかじめ用意されているプログラムによっては着地衝撃を緩和することができない。
【０００９】
【課題を解決するための手段と作用】本発明で創作されたロボットは、左足先と腰と右足先の位置と姿勢を指示する歩容データから、左脚リンクと腰と右脚リンクから構成される機械系に存在する複数の関節の各関節角を計算する関節角群計算手段と、各関節の関節角を前記関節角群計算手段で計算された関節角に調整するアクチュエータとを備えおり、指示された歩容データに従って左脚リンクと腰と右脚リンクの相対的姿勢を変化させることによって歩行するロボットに関する。本発明で創作されたロボットは、着地衝撃を緩和するために、腰の姿勢を計測する腰姿勢計測手段と、指示された腰の姿勢と計測された腰の姿勢の差から、その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する手段と、その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する手段と、腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する手段が付加されている。
【００１０】
本発明者の研究によって、歩容データ上で遊脚が着地すると想定しているタイミングよりも早いタイミングで着地してしまうのは、もっぱら立脚から腰に至る機械系に生じる撓みに起因しており、腰から遊脚に至る機械系にはほとんど撓みが発生しないことを確認した。腰の姿勢が変化するために、腰に対する遊脚の姿勢を指示された姿勢に一致させても、遊脚の高さが指示されたものから下がってしまうのであり、腰の姿勢を指示された姿勢に修正できれば、遊脚の高さは指示された高さによく一致し、着地タイミングがずれないことを確認した。
そこで、本発明のロボットは、歩容データで指示された腰の姿勢と、腰姿勢計測手段で計測された腰の姿勢の差を計算する。本発明のロボットでは、立脚リンクに存在する関節の関節角を修正することによって、指示された腰の姿勢と実際の腰の姿勢を近づける。例えば、若干は正確性に欠けるけれども簡単化して説明すると、腰が予定よりも１度深く前傾していれば、立脚の股関節において腰が１度だけ後傾するように関節角を修正する。すると、腰の姿勢は指示された姿勢によく近似するようになり、腰から遊脚に至る機械系にはほとんど撓みが発生しないことから、遊脚の高さは指示された高さによく一致し、着地タイミングがずれることがない。歩容データに従って遊脚を下降させている途中で遊脚が着地するために、着地した後も腰に対して遊脚を下降させつづけ、結果としては着地した脚で床を蹴ってしまう現象は生じない。
腰の姿勢を歩容データが指示する姿勢に修正するためには、次の処理、即ち、
（１）  歩容データが指示する腰の姿勢と、実測された腰の姿勢の差を計算し、
（２）  その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算し、
（３）  その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正し、
（４）  腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する処理をすればよい。
上記の処理をすれば、先に説明した例の場合、前記（３）によって、腰を１度だけ後傾させる股関節の関節角が計算される腰の位置と姿勢を指示する歩容データに修正される。また、前記（４）によって、腰の位置と姿勢を指示するデータの修正に追従して遊脚リンクの足先の位置と姿勢を指示するデータが修正され、腰と遊脚リンクの相対的姿勢を維持する。
本発明のロボットによると、歩容データ上で遊脚が着地すると想定しているタイミングで着地するために、接地脚が床を蹴る現象が抑制され、床の２度踏みという現象も生じない。
【００１１】
指示された腰の姿勢と計測された腰の姿勢の差を解消するのに必要な立脚リンクの股関節の関節角の修正量を計算することが好ましい。経験的に、立脚から腰に至る機械系の撓み後の形状は、股関節の関節角がずれたときに生じる機械系の形状によく一致しており、股関節の関節角を修正すると、撓みによる腰の姿勢のずれをよく解消することができる。
【００１２】
ただし、修正する関節は股関節に限られず、立脚リンクの足首関節の関節角を修正することによって、指示された腰の姿勢と計測された腰の姿勢の差を解消するようにしてもよい。
【００１３】
ロボットの左右方向の剛性が高く、腰の左右方向の姿勢ずれが問題にならない場合には、立脚の膝の関節角を修正することによって、腰の前後方向の姿勢ずれに対策することができる。
立脚の股関節や足首関節は、腰の左右方向の姿勢をも修正できるために、股関節または足首関節で対応すると、腰の前後方向と左右方向の姿勢を修正して着地タイミングがずれることを防止することができる。
【００１４】
股関節、膝関節、足首関節のいずれかで修正する代わり、複数の関節を組合わせて修正するようにしてもよい。この場合、各関節の修正量の比を予め決定しておく。例えば、腰姿勢の変化に対する股関節の修正量と足首関節の修正量の比を予め決めておくのである。例えば、股関節の修正量と足首関節の修正量の比が２：１であれば、腰姿勢の３度の変化に対して、股関節の関節角が２度修正され、足首関節の関節角が１度修正されるような腰の位置と姿勢を指示するデータに修正するのである。
立脚リンクに存在する複数関節の関節角の修正量の関係を予め決定しておき、その関係を利用して、指示された腰の姿勢と計測された腰の姿勢の差を解消するのに必要な立脚リンクに存在する各関節の関節角の修正量を計算するようにすると、各関節の関節角の修正量は少なくてすみ、ロボットの歩行姿勢を意図した姿勢に維持しやすい。
【００１５】
本発明は、ロボットの新規な制御方法ということもできる。この制御方法では、左足先と腰と右足先の位置と姿勢を指示する歩容データを、
（１）  補正前の歩容データで指示された腰の姿勢と、実際の腰の姿勢の差を求める工程と、
（２）  その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する工程と、
（３）  その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する工程と、
（４）  腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する工程と、
を経て修正し、
（５）  修正された歩容データをロボットに指示する。
この制御方法によると、歩容データ上で遊脚が着地すると想定しているタイミングで着地するために、接地脚が床を蹴る現象が抑制され、床の２度踏みという現象も生じない。
【００１６】
本発明はまた、左足先と腰と右足先の位置と姿勢を指示する歩容データを修正するプログラムを創作した。創作されたプログラムは、コンピュータに、
（１）  補正前の歩容データで指示された腰の姿勢と、実際の腰の姿勢の差を求める処理と、
（２）  その差を解消するのに必要な立脚リンクに存在する関節の関節角の修正量を計算する処理と、
（３）  その関節の関節角の修正量から、歩容データに含まれる腰の位置と姿勢を指示するデータを修正する処理と、
（４）  腰の位置と姿勢を指示するデータの修整量から、歩容データに含まれる遊脚の足先の位置と姿勢を指示するデータを修正する処理を実行させる。
このプログラムで修正された歩容データをロボットに指示すると、歩容データ上で遊脚が着地すると想定しているタイミングで着地するために、接地脚が床を蹴る現象が抑制され、床の２度踏みという現象も生じない。
【００１７】
【実施の形態】以下に説明する実施例の主要な特徴を最初に列記する。
（形態１）  歩容データ修正プログラムは、リアルタイムで歩容データを修正する。
（形態２）  腰の姿勢計測手段はジャイロであり、腰の前後方向の傾斜角と、腰の左右方向の傾斜角を計測する。
【００１８】
【実施例】図１は、左脚リンク４７と腰１と右脚リンク１７から構成される機械系を備えた２足歩行ロボットの機械的構成を示す。
左脚リンク４７は、左上腿４８と左膝関節５０と左下腿５２と左足首関節５８と左足先６２を備える。左膝関節５０はピッチ軸ｙの回りの関節角が可変であり、左足首関節５８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。図１では、図示の明瞭化のために、関節が関節角を変えるアクチュエータで代表されている。例えば参照番号５０は、膝関節と膝関節の関節角を変えるアクチュエータに共通的に用いられる。参照番号５４は、足首関節５８のピッチ軸ｙの回りの関節角を変えるアクチュエータであり、参照番号５６は、ロール軸ｘの回りの関節角を変えるアクチュエータである。左足先６２には、左足先６２と床との間で作用する力、この場合、ロール軸ｘ方向の力と、ピッチ軸ｙ方向の力と、重力線ｚ方向の力と、ロール軸ｘ回りのモーメントと、ピッチ軸ｙ回りのモーメントと、重力線ｚ回りのモーメントを計測する６軸力センサ６０が取り付けられている。
左右の脚リンク１７，４７は左右対称であり、右脚リンク１７は、右上腿１８と右膝関節２０と右下腿２２と右足首関節２８と右足先３２を備える。右膝関節２０はピッチ軸ｙの回りの関節角が可変であり、右足首関節２８はピッチ軸ｙの回りの関節角とロール軸ｘの回りの関節角が可変である。右足先３２にも、６軸力センサ３０が取り付けられている。
腰１は、腰プレート８と腰柱４を備えており、両者の間には腰関節６が設けられている。腰柱４には、腰柱４のピッチ軸ｙの回りの傾斜角とロール軸ｘ回りの傾斜角と重力線ｚ軸回りの回転角を計測するジャイロ２が固定されている。腰柱４のピッチ軸ｙの回りの傾斜角とロール軸ｘの回りの傾斜角は、腰関節６が回転しても影響を受けない。
【００１９】
左脚リンク４７と腰１は、左股関節４６で接続されている。左股関節４６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ４０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ４２と、ロール軸ｘの回りの関節角を変えるアクチュエータ４４を備えている。右脚リンク１７と腰１は、右股関節１６で接続されている。右股関節１６は、重力線ｚ軸の回りの関節角を変えるアクチュエータ１０と、ピッチ軸ｙの回りの関節角を変えるアクチュエータ１２と、ロール軸ｘの回りの関節角を変えるアクチュエータ１４を備えている。
【００２０】
図２は、ジャイロ２が計測する傾斜角を図式化しており、腰柱４に沿って伸びる腰姿勢ベクトルがＷで示されている。（１）の６４，６６，６８は、ベクトルＷをロール軸ｘとピッチ軸ｙと重力軸ｚに沿って分解した成分ベクトルを示している。（２）のＷｘｚはＷのｘｚ面への投影ベクトルを示し、（３）のＷｙｚはＷのｙｚ面への投影ベクトルを示し、（４）のＷｘｙはＷのｘｙ面への投影ベクトルを示している。ジャイロ２は、（２）のピッチ軸ｙ回りのピッチ角Ｗαと、（３）のロール軸ｘ回りのロール角Ｗβと、（４）の重力線ｚ回りのヨー角Ｗγを計測することができる。腰の姿勢は、ピッチ角Ｗαと、ロール角Ｗβと、ヨー角Ｗγによって実測することができる。
【００２１】
図１の機械系を利用して歩行する場合、結果として歩行した結果が得られるように、左脚リンク４７と腰１と右脚リンク１７の相対的姿勢を変化させなければならない。
このために、左足先と腰と右足先の位置と姿勢を指示する歩容データが利用される。図３に示すように、歩容データは、ロボットが活動する空間の座標を定めるグローバル座標系において、左足先と腰と右足先の位置と姿勢を指示する。左足先と腰と右足先の位置を指示するために、左足先６２には基準点Ｌ０が定められており、右足先３２には基準点Ｒ０が定められており、腰１には基準点Ｗ０が定められている。左足先と腰と右足先の姿勢を指示するために、左足先６２に垂直なベクトルＬが想定されており、右足先３２に垂直なベクトルＲが想定されており、腰柱４に沿って伸びるベクトルＷが想定されている。図３に示すように、歩容データは、グローバル座標系において、左足先６２の基準点Ｌ０のｘ、ｙ、ｚ座標、右足先３２の基準点Ｒ０のｘ、ｙ、ｚ座標、腰１の基準点Ｗ０のｘ、ｙ、ｚ座標を指示する。また、左足先６２に垂直なベクトルＬのピッチ角Ｌαと、ロール角Ｌβと、ヨー角Ｌγを指示し、右足先３２に垂直なベクトルＲのピッチ角Ｒαと、ロール角Ｒβと、ヨー角Ｒγを指示し、腰柱４に沿って伸びるベクトルＷのピッチ角Ｗαと、ロール角Ｗβと、ヨー角Ｗγを指示する。図４に示すように、歩容データは、左足先と腰と右足先の位置と姿勢を指示するデータを経時的に記憶している。経時的に変化する左足先と腰と右足先の位置と姿勢を指示する歩容データに従って、左脚リンクと腰と右脚リンクの相対的姿勢を経時的に変化させることによってロボットは歩行する。
【００２２】
ロボットは、図５に示すように、左足先と腰と右足先の位置と姿勢を指示する歩容データを入力して、左股関節４６のｚ軸回りの関節角とｙ軸回りの関節角とｘ軸回りの関節角と、左膝関節５０のｙ軸回りの関節角と、左足首関節５８のｙ軸回りの関節角とｘ軸回りの関節角と、右股関節１６のｚ軸回りの関節角とｙ軸回りの関節角とｘ軸回りの関節角と、右膝関節２０のｙ軸回りの関節角と、右足首関節２８のｙ軸回りの関節角とｘ軸回りの関節角を計算し、それぞれの関節角を変化させるアクチュエータ４０，４２，４４，５０，５４，５６，１０，１２，１４，２０，２４，２６の回転角を計算する関節角群計算装置７０を備えている。関節角群計算装置７０は、逆キネマティクスを解いて関節角群を計算する。関節角群計算装置７０は、ロボットの歩行動作とリアルタイムで関節角群を計算する。関節角群計算装置７０は、物理的にはロボット外にあってもよく、計算された関節角群を無線または有線でロボットに送信して指示するものであってもよい。
歩容データは、予めオフラインで作成しておいてロボットにティーチングしておいてもよい。あるいは、ロボットを動作させながらリアルタイムで歩容データを作成することもできる。ロボットの動作を観測しながらジョイスティック等を操作してロボットの次の動作を指定することによって歩容データを作成することもできる。この場合、リアルタイムで作成された歩容データを無線または有線でロボットに送信し、ロボット内に搭載されている関節角群計算装置７０で関節角群をリアルタイムで計算する。あるいは、ロボット外に置かれた関節角群計算装置７０で計算された関節角群を無線または有線でリアルタイムでロボットに送信してもよい。
【００２３】
ロボットに撓みがなく、床に予期せぬ凹凸がなければ、関節アクチュエータを計算された回転角に調整することで、ロボットは歩容データで指示されたとおりに姿勢を変えて歩行するはずである。
しかしながら実際にはロボットは撓み、床には予期せぬ凹凸が存在する。ロボットが撓むと、遊脚の足先の実際の高さは、歩容データが指示する高さよりも低くなる。遊脚の足先位置が下がってしまうと、歩容データの上では遊脚が着地すると想定しているタイミングよりも早いタイミングで着地してしまう。即ち、歩容データでは遊脚を下降させて着地させることを意図している間に着地してしまう。遊脚を下降させている動作の途中で遊脚が着地すると、着地した後もロボットは腰に対して遊脚を下降させつづけることから、結果としては着地した脚が床を蹴ってしまう。着地脚が床を蹴ると、着地時の衝撃が大きくなってロボットの動作が不安定になる。そのために、高速で歩行できないという問題が生じてしまう。また外観上は着地時に床を２回踏むように見え、違和感をもたらしている。
【００２４】
その問題に対処するために、本実施例では、図６に示すように、ジャイロ２を利用して腰の実際のピッチ角Ｊαを計測し、歩容データが指示するピッチ角Ｗαとの差Δαを計算する。また、ジャイロ２を利用して腰の実際のロール角Ｊβを計測し、歩容データが指示するピッチ角Ｗβとの差Δβを計算する。
【００２５】
図７は、腰の実際のピッチ角Ｊαと歩容データが指示する腰のピッチ角Ｗαとの間に差Δαが生じる様子と、それに対策する様子を模式的に示している。本発明者の研究によって、歩行中のロボットに生じる撓みは、立脚から腰までの機械系で発生し、腰から遊脚までの間に生じる撓みはほとんど無視できることが判明した。腰のピッチ角がずれるために遊脚の足先位置が下がるのであり、腰のピッチ角が指示されたピッチ角に調整されれば、遊脚の足先位置が下がることはないことを確認した。そこで、撓みによって腰が指示されたピッチ角よりも前傾することを防止できれば、着地タイミングがずれて接地脚が床を蹴る現象を抑制できるはずであることを見出した。
【００２６】
（実施例に至る中間技術）  撓みによって腰が指示されたピッチ角よりもΔαだけ前傾するのであれば、腰のピッチ角をΔαだけ後傾させたピッチ角を指示すればよいはずである。そこで、撓みがないときに想定される腰のピッチ角Ｗαを撓みによって生じるブレΔαだけ後傾させたピッチ角Ｗα＊＊に修正して歩容データとする技術を試みた。図７に示すように、腰の位置を示す歩容データＷｘ，Ｗｙ，Ｗｚを変えないで、腰の姿勢を示すピッチ角をＷα＊＊に修正して歩容データとするのである。
しかしながら、この修正方式では、着地衝撃を十分に緩和することができなかった。更なる改良が必要であることがわかった。
【００２７】
（着地衝撃を緩和できた実施例）  上記の中間技術の研究から、腰のピッチ角を撓み分だけ補正してＷα＊＊に修正するだけでは足りず、関節を中心に補正しなければならないことが判明した。図７に示すように、指示されたピッチ角Ｗαが撓みによって実際にはＪαになるのであれば、腰のピッチ角の指令値をＷα＊＊に修正するだけでは足りず、股関節を中心にして腰を後傾させるのに対応して、腰の位置を指示するデータＷｘ，Ｗｙ，Ｗｚをも修正すべきであることを見出した。実際に、撓みを考慮しないで作成した歩容データの、腰の位置を指示するデータＷｘ，Ｗｙ，Ｗｚと、腰のピッチ角を指示するデータＷαを、股関節を中心にΔαだけ後傾させたデータＷｘ＊，Ｗｙ＊，Ｗｚ＊，Ｗα＊に修正し、修正された歩容データをロボットに指示すると、着地タイミングがずれる現象が抑制でき、着地衝撃を緩和でき、着地時に床を２度踏む現象が解消した。
【００２８】
実際には、図８に示すように、遊脚の足先位置のずれは、ピッチ角のずれΔαとロール角のずれΔβが複合して生じることから、撓みを考慮しないで作成した歩容データ（腰の位置を指示するデータＷｘ，Ｗｙ，Ｗｚと、腰のピッチ角を指示するデータＷαと腰のロール角を指示するデータＷβ）を、立脚の股関節を中心に、ピッチ方向にΔαだけ後傾させ、ロール方向にΔβだけ修正した歩容データ（腰の位置を指示するデータＷｘ＊，Ｗｙ＊，Ｗｚ＊と、腰のピッチ角を指示するデータＷα＊と腰のロール角を指示するデータＷβ＊に修正される）に修正すると、着地タイミングがずれる現象が抑制でき、着地衝撃を緩和でき、着地時に床を２度踏む現象が解消した。
【００２９】
図９は、腰のピッチ方向のずれ角Δαとロール方向のずれ角Δβを考慮して、腰の位置と姿勢を指示する歩容データを修正する数学を示している。図中Ｔは、位置と姿勢を示すいわゆる姿勢行列である。ΔＴｍは、腰のピッチ方向のずれ角Δαとロール方向のずれ角Δβとヨー角のずれΔγを記述する姿勢行列である。以下ではヨー角Δγは影響しないので、ゼロにしておいてもよいし、ジャイロで測定された値を利用してもよい。本実施例では、股関節の３軸の関節角を、ΔＴｍを補償するように補正する。股関節の位置は移動しないために、ΔＴｍは長さ成分を持たない（図９では図示の明瞭化のために、ΔＴｍが長さ成分を持っているように示されているが、実際には方位成分のみを有している）。
補正前の歩容データから計算される立脚の股関節の位置と３軸の関節角を記述する姿勢行列をＧＴｍとし、補正前の歩容データが示す腰の位置と姿勢を指示する姿勢行列をＧＴｗとすると、股関節の３軸の関節角をΔＴｍだけ回転させることによって、腰の姿勢行列は、下記の式に示されるだけ変化する。即ち、腰の補正行列ΔＴｗは、
ΔＴｗ＝ＧＴｗ−１・ＧＴｍ・ΔＴｍ・ＧＴｍ−１・ＧＴｗの式１で計算できる。
腰の位置と姿勢が変化するので、腰と遊脚の足先の相対姿勢を維持するためには、遊脚の足先の位置と姿勢を示す姿勢行列を下記の式に示されるだけ変化させる必要が生じる。補正前の歩容データが示す遊脚の位置と姿勢を指示する姿勢行列をＧＴｒｅｇとすると、遊脚の足先の補正行列ΔＴｗは、
ΔＴｒｅｇ＝ＧＴｌｅｇ−１・ＧＴｗ・ΔＴｗ・ＧＴｗ−１・ＧＴｌｅｇの式２で計算できる。
【００３０】
図１０は、ロボットの制御系のブロック図を示している。この制御系はロボットに内蔵されていてもよいし、ロボット外において計算された姿勢行列をリアルタイムでロボットに通信してもよい。姿勢行列から関節角群を計算する手段７０（図５）までもをロボット外において、計算された関節角群をリアルタイムでロボットに通信してもよい。
まず腰の位置と姿勢を指示する補正前の歩容データから、腰のピッチ角の指示値Ｗαを計算し（７２）、ロール角の指示値Ｗβを計算する（７４）。一方、ロボット１０６のジャイロ２の出力をジャイロ座標系での姿勢行列に変換し（１１０）、さらに腰の座標系から見た姿勢行列に変換し（１１２）、実際の腰のピッチ角Ｊαとロール角Ｊβを計測する（１１４）。
指示されたピッチ角Ｗαと計測されたピッチ角Ｊαの差Δαを計算し、それを比例積分微分処理する（７６）。同様に、指示されたロール角Ｗβと計測されたロール角Ｊβの差Δβを計算し、それを比例積分微分処理する（７８）。比例積分微分処理されたピッチ角の偏差Δαとロール角の偏差Δβから立脚の股関節の回転角の修正量を計算する。即ち、前記したΔＴｍを計算する（８０）。
【００３１】
ロボット１０６の左右の足先に６軸力センサ３０，６０が設けられており、その出力を立脚判定部１０８に入力することで、左脚で立脚しているのか、両脚が接地されているのか、右脚で立脚しているのかの別を判定することができる。図１０は、左脚で立脚している場合を図示している。
【００３２】
左足立脚の間は、前記したΔＴｍが、左脚の股関節の関節角の修正量とされる（８０）。この場合、左脚の足先の位置と姿勢を示す指示データは修正されない（８２）。腰の位置と姿勢を示す指示データは、前記した式１によって修正される（８４）。遊脚（この場合右脚）の位置と姿勢を示す指示データは、前記した式２によって修正される（８６）。
図示はされていないが、右足立脚の間は、前記したΔＴｍが、右脚の股関節の関節角の修正量とされる。この場合、右脚の足先の位置と姿勢を示す指示データは修正されない。腰の位置と姿勢を示す指示データは、前記した式１によって修正される。遊脚である左脚の位置と姿勢を示す指示データは、前記した式２によって修正される。
左脚の足先の姿勢を示すデータから左足先のピッチ角とロール角が計算され（８８）、ローパスフィルタによって高周波成分が除去される。高周波成分が除去された修正量が、補正前の左足先の位置と姿勢を指示するデータに加算されて、左足先の歩容データが修正される。
右脚の足先の姿勢を示すデータから右足先のピッチ角とロール角が計算され（９２）、ローパスフィルタによって高周波成分が除去される。高周波成分が除去された修正量が、補正前の右足先の位置と姿勢を指示するデータに加算されて、右足先の歩容データが修正される。
腰の姿勢を示すデータから腰のピッチ角とロール角が計算され（９０）、ローパスフィルタによって高周波成分が除去される。高周波成分が除去された修正量が、補正前の腰の位置と姿勢を指示するデータに加算されて、腰の歩容データが修正される。
ローパスフィルタによって高周波成分を除去することによって、ロボットの動作が安定することが検証されている。
【００３３】
補正された左足先の歩容データから左足先の姿勢行列が計算され（１００）、補正された腰の歩容データから腰の姿勢行列が計算され（１０２）、補正された右足先の歩容データから右足先の姿勢行列が計算される（１０４）。そしてロボットには、補正された左足先の姿勢行列と、腰の姿勢行列と、右足先の姿勢行列が指示される。ロボットは、関節角群を計算し、計算された関節角群に調整することによって、腰に対する左脚リンクの相対姿勢と、腰に対する右脚リンクの相対姿勢を変える。その結果、ロボットは歩行する。
【００３４】
図１０では、左脚で立脚しているものとした。両足で接地している場合には、左足の位置と姿勢を示すデータも右足の位置と姿勢を示すデータも補正しない。さらに、腰の位置を示すデータも補正しない。この場合には、腰の姿勢を指示するデータのみを修正する。図７に示した補正、即ち、腰の姿勢を示すデータＷαをずれ分Δα、Δβだけ補正した姿勢データＷα＊＊とＷβ＊＊に修正する。この場合、腰の姿勢が意図した姿勢に調整される。
【００３５】
上記の実施例では、股関節の関節角を修正して腰の姿勢を修正する。股関節に代えて立脚の足首関節の関節角を修正して腰の姿勢を修正することもできる。ピッチ方向でのずれにのみ対処すればよい場合には、立脚の膝関節の関節角を修正することによって腰の姿勢を修正することもできる。
あるいは、股関節と足首関節の両方を使用して（場合によってはさらに膝関節をも利用して）、腰の姿勢を修正するようにすることもできる。股関節と足首関節の両方を使用して腰の姿勢を修正する場合、股関節による修正量と足首関節による修正量を例えば２：１の関係にするといったことを決めておけば、各関節の修正量を計算することができる。
複数関節を組合わせて腰の姿勢をずれを修正するようにすると、ロボットの歩行姿勢を自然なものに維持しやすい。
【００３６】
以上、本発明の具体例を詳細に説明したが、これらは例示であり、特許請求の範囲を限定するものではない。また、本発明はいくつかの目的を解決するものであり、全部の目的を同時に解決するときに限って有意義なものではなく、一または二の目的を解決するだけで有意義なものである。
【００３７】
【発明の効果】本発明によると、機械系が撓んで予定しているよりも早期に着地するために着地脚が床を蹴ってしまう現象が抑制され、着地衝撃を緩和することができる。着地脚が床を２度踏む現象も解消される。ロボットは、自然な歩行姿勢で高速で歩行することが可能となる。
【図面の簡単な説明】
【図１】歩行ロボットの機械構成を示すスケルトン図。
【図２】ジャイロで計測できるピッチ角、ロール角、ヨー角を示す図。
【図３】歩容データが利用する基準点と基準ベクトルを示す図。
【図４】歩容データの内容を模式的に示す図。
【図５】歩容データから関節角群を計算する計算手段を示す図。
【図６】指示されたピッチ角と実測されたピッチ角の偏差Δαと、指示されたロール角と実測されたロール角の偏差Δβを示す図。
【図７】腰姿勢の偏差を股関節を回転させて修正する様子を示す図。
【図８】腰姿勢の偏差を股関節を回転させて修正する様子を示す図。
【図９】立脚の股関節を回転することで生じる腰の位置と姿勢を示すデータの補正量と、遊脚の足先の位置と姿勢を示すデータの補正量の関係を図示する図。
【図１０】ロボットの制御系のブロック図。
【符号の説明】
２：ジャイロ
４：腰柱
６：腰関節
８：腰板
１６，４６：股関節
２０，５０：膝関節
２８，５８：足首関節
３０，６０：６軸力センサ
Ｗ：腰の姿勢を示すベクトル
Ｗα：腰のピッチ角の指示値
Ｗβ：腰のロール角の指示値
Ｊα：腰のピッチ角の実測値
Ｊβ：腰のロール角の実測値
Δα：腰のピッチ角の偏差
Δβ：腰のロール角の偏差
Ｗα＊：腰のピッチ角の修正後の指示値
Ｗβ＊：腰のロール角の修正後の指示値
ΔＴｍ：股関節の３軸の関節角を回転させる姿勢行列
ＧＴｍ：補正前の歩容データから計算される立脚の股関節の位置と３軸の関節角を記述する姿勢行列
ＧＴｗ：補正前の歩容データが示す腰の位置と姿勢を指示する姿勢行列
ΔＴｗ：腰の補正行列
ΔＴｗ：遊脚の足先の補正行列
【図１】
2004298983.tif 000003
【図２】
2004298983.tif 000004
【図３】
2004298983.tif 000005
【図４】
2004298983.tif 000006
【図５】
2004298983.tif 000007
【図６】
2004298983.tif 000008
【図７】
2004298983.tif 000009
【図８】
2004298983.tif 000010
【図９】
2004298983.tif 000011
【図１０】
2004298983.tif 000012