本発明の一実施形態を図1〜図17を参照して説明する。図1は本発明を2足歩行移動体としての人間に適用した実施形態での全体的装置構成を模式的に示す図である。同図に示すように、人間1は、その構成を大別すると、左右一対の脚体2,2と、胴体3と、左右一対の腕体4,4と、頭部5とを有する。胴体3は、腰部6、腹部7、および胸部8から構成され、その腰部6が脚体2,2のそれぞれに左右一対の股関節9,9を介して連結されて両脚体2,2上に支持されている。また、胴体3の胸部8の左右の両側部からそれぞれ腕体4,4が延設されると共に、胸部8の上端に頭部5が支持されている。各脚体2は、股関節9から延在する大腿部10と、該大腿部10の先端から膝関節11を介して延在する下腿部12と、該下腿部12の先端から足首関節13を介して延在する足平部14とを備えている。
本実施形態では、このような構成を有する人間1の各脚体2に作用する床反力を推定したり、各脚体2の各関節9,11,13に作用する関節モーメントを推定するために、次のような装置を人間1に装備している。すなわち、腰部6の背面にはセンサボックス15が図示しないベルト等の部材を介して装着されている。このセンサボックス15の内部には、図2のブロック図で示すように3軸方向の加速度(並進加速度)を検出する加速度センサ16と、3軸方向(3軸廻り)の角速度を検出するジャイロセンサ(角速度センサ)17と、マイクロコンピュータを用いて構成された演算処理装置18と、後述する光ファイバ26,27に導入する光を発光したり、戻り光を受光する発光/受光器19と、演算処理装置18等の各電装品の電源としてのバッテリ20とが収容されている。なお、加速度センサ16及びジャイロセンサ17は、センサボックス15を介して腰部6に固定され、腰部6と一体的に動くようになっている。
各脚体2の股関節9、膝関節11、足首関節13の部位には、それぞれの関節の変位量を検出する関節変位センサ21,22,23が図示しないベルト等の部材を介して装着されている。これらの各関節変位センサ21,22,23のうち、股関節9の関節変位センサ21が検出する変位量は、該股関節9の3軸廻りの回転角(これらの3軸廻りの回転角の組から成る3次元量)であり、膝関節11の関節変位センサ22が検出する変位量は、該膝関節11の1軸廻りの回転角、足首関節13の関節変位センサ22が検出する変位量は、該足首関節13の1軸廻りの回転角である。この場合、関節変位センサ21が検出する回転角のうちの1つと、関節変位センサ22,23が各々検出する回転角との回転軸は、それぞれ図3に示す如く、それらのセンサ21〜23を装着した各脚体2の股関節9、膝関節11、足首関節13のそれぞれのほぼ中心点を通る平面としての脚平面PLにほぼ垂直な軸a9,a11,a13である。なお、図3は関節変位センサ21〜23を各脚体2に装備した人間1の下半身を正面側から見た図である。この図3では脚平面PLは同図の紙面に垂直な平面である。
ここで、脚平面PLは、それに対応する脚体2を膝関節11で屈曲させて該脚体2の屈伸を行ったときに、該脚体2の股関節9、膝関節11、足首関節13のほぼ中心点が存在するような平面である。換言すれば、脚体2の屈伸は、その各関節9,11,13の中心点をほぼ脚平面PL上に位置させた状態で行われる。そして、例えば、図3の左脚体2のように、股関節9の運動によって左脚体2を外転させると、該左脚体2に対応する脚平面PLは傾く。関節変位センサ21〜23は、それぞれ各関節9,11,13の上記回転軸a9,a11,a13廻りの回転角を例えば、ポテンショメータやロータリエンコーダを用いて検出する。
また、股関節9の関節変位センサ21が検出する他の2軸廻りの回転角について図4を参照して説明する。図4はセンサボックス15と関節変位センサ21を装備した人間1の腰部6付近の構成を示す側面図である。本実施形態では、同図示の如く、関節変位センサ21は前記センサボックス15にゴム等から成る平板状の弾性部材50を介して連結されている。なお、弾性部材50のセンサボックス15側の端部は、センサボックス15から延設された硬質の剛体部材50aを介してセンサボックス15に連結されている。そして、関節変位センサ21は、例えば弾性部材50の延在方向の回転軸b9廻りの股関節9の回転角(弾性部材50を捻る方向の回転角)と、該回転軸b9に直交する回転軸c9廻りの股関節9の回転角(弾性部材50を撓ませる方向の回転角)とを、弾性部材50の変形量を検出する図示しないひずみセンサや、後述するような光ファイバを用いたセンサを用いて検出する。なお、上記回転軸b9,c9は脚平面PLに平行である。
図1に戻って、各脚体2の足平部14の底面(詳しくは足平部14に装着した靴の底面)には、2つの接地センサ24,25が設けられている。接地センサ24,25のうち、接地センサ24は足首関節13の直下の箇所(踵)に設けられ、接地センサ24は足平部14の中足趾節関節14a(足平部14の親指の付け根の関節)の直下の箇所(つま先)に設けられている。これらの接地センサ24,25は、それを設けた箇所が接地しているか否かを示すON/OFF信号を出力するセンサである。なお、前記関節変位センサ21,22,23、および接地センサ24,25の検出出力は信号線(図示省略)を介してセンサボックス15の演算処理装置18に入力される。
さらに、図1に示す如く、センサボックス15から2本の光ファイバ26,27が胴体3の背面沿いに上方に向かって延設され、その先端部がそれぞれ腹部7の背面、胸部8の背面に図示しないベルト等の部材を介して固定されている。光ファイバ26,27は、それぞれ腰部6に対する腹部7、胸部8の傾き角(2足歩行移動体の矢状面上での傾き角)を検出する検出手段の構成要素である。これらの光ファイバ26,27を用いた腹部7、胸部8の傾き角の計測は次のような手法により行われる。光ファイバ26を用いた腹部7の傾き角の計測手法を代表的に説明すると、該光ファイバ26には、センサボックス15内に設けられた発光/受光器19(図2に示す)から所定の強度の光が導入されると共に、その導入された光が該光ファイバ26の先端で反射されてセンサボックス15側に戻ってくるようになっている。そして、その光の戻り量(戻った光の強度)が前記発光/受光器19により検出されるようになっている。また、光ファイバ26には、微小な光漏れを許容する複数の刻み部(図示しない)が長手方向に間隔を存して設けられており、光ファイバ26に導入された光のうち、腰部6に対する腹部7の傾き角に応じた量の光がそれらの刻み部を介して光ファイバ26から漏出する。このため、センサボックス15側への光の戻り量は、腹部7の傾き角に応じたものとなり、その戻り量を検出することで、腰部6に対する腹部7の傾き角が計測される。すなわち、光ファイバ25の光の戻り量に応じた発光/受光器19の検出出力が、腰部6に対する腹部7の傾き角に応じたものとなり、それが該傾き角を示す信号として演算処理装置18に入力される。光ファイバ27を用いた胸部8の傾き角の計測手法も同様である。
なお、前記関節変位センサ21,22,23がそれぞれ検出する股関節9、膝関節11、足首関節13の回転角は、両足平部14,14を平行に前方に向けて人間1が直立姿勢で起立した状態(以下、人間1の基準姿勢状態という)を基準(ゼロ点)とする回転角である。光ファイバ26,27を用いて検出する腹部7、胸部8の傾き角についても同様である。
ここで、本実施形態で用いる人間1の剛体リンクモデルと座標系とについて説明しておく。図5はその剛体リンクモデルS1と座標系とを示している。なお、この剛体リンクモデルS1は、前記図1にも仮想線で併記されている。本実施形態では、剛体リンクモデルS1は、人間1を、9個の剛体要素と8個の関節要素とで構成される連結体として表現している。さらに詳説すると、剛体リンクモデルS1は、大別すると、人間1の各脚体2にそれぞれ対応する一対の脚体部S2,S2と、人間1の上体(腰部6から上側の部分)に対応する上体部SUとから構成されている。上体部SUは、人間1の腰部6に対応する剛体要素S6と腹部7に対応する剛体要素S7とを関節要素JU1で連結し、さらに、剛体要素S7と胸部8に対応する剛体要素S8とを関節要素JU2で連結してなる連結体として構成されている。以下、剛体要素S6,S7,S8をそれぞれ腰部要素S6、腹部要素S7、胸部要素S8と称し、関節要素JU1、JU2をそれぞれ上体下部関節JU1、上体上部関節JU2と称することがある。
この場合、腰部要素S6は、逆T字形となっており、その上端に前記上体下部関節JU1が設けられると共に、左右の両端に人間1の一対の股関節9,9に対応する一対の関節要素J9,J9(以下、単に股関節J9ということがある)が設けられている。つまり、腰部要素S6は、股関節J9,J9の間でそれらの中心を結ぶ線分方向(左右方向)に延在する部分S6aとこの部分S6aの中央から上体下部関節JU1に向かってほぼ上方に伸びる部分S6bとから構成されている。ここで、上体下部関節JU1は、人間1の腰部6と腹部7との境界付近で人間1の背骨上に想定した関節に対応するものであり、上体上部関節JU2は、腹部7と胸部8との境界付近で人間1の背骨上に想定した関節に対応するものである。人間1の胴体3の曲げ動作をつかさどる実際の背骨は多数の関節で構成されるが、剛体リンクモデルS1では、上体部SUの曲げ動作は、上体下部関節JU1および上体上部関節JU2の2つの関節要素で行われる。そして、腹部要素S7は、上体下部関節JU1と上体上部関節JU2との間でそれらの中心を結ぶ線分方向に延在している。なお、胸部要素S8は、図1に示す如く、上体上部関節JU2から人間1の首の付け根(より詳しくは胴体3と首との境界付近での背骨上の部位)まで延在するものとされている。
剛体リンクモデルS1の各脚体部S2は、大腿部10に対応する剛体要素S10を前記股関節J9を介して腰部要素S6に連結し、下腿部12に対応する剛体要素S12を膝関節11に対応する関節要素J11を介して剛体要素S10に連結し、足平部14に対応する剛体要素S14を足首関節13に対応する関節要素J13を介して剛体要素S12に連結してなる連結体として構成されている。以下、剛体要素S10,S12,S14をそれぞれ大腿部要素S10、下腿部要素S12、足平部要素S14と称し、関節要素J11,J13をそれぞれ単に膝関節J11、足首関節J13と称することがある。
この場合、大腿部要素S10および下腿部要素S12は、それぞれの両端の関節要素の間でそれらの中心を結ぶ線分方向に延在している。また、足平要素S14は、その先端が人間1の足平部14の中足趾節関節14a(以下、MP関節14aという)に対応しており、図1に示す如く、足首関節13(J13)から足平部14のMP関節14aまで延在している。剛体リンクモデルS1では、足平要素S14の先端は関節としての機能を持つものではないが、以下、便宜上、その先端をMP関節J14aと称することがある。
以上の如く構成された剛体リンクモデルS1の各剛体要素及び各関節要素は、各関節要素の回転運動によって、その相互の位置関係および姿勢関係(向きの関係)が各剛体要素および各関節要素に対応する人間1の各部の相互の位置関係および姿勢関係とほぼ同一になるように運動可能とされている。従って、以降の説明では、剛体リンクモデルS1の各剛体要素及び各関節要素を、しばしばこれらの要素に対応する人間1の部位と同一視する。
この場合、上体下部関節JU1及び上体上部関節JU2は、それぞれ3軸廻りの回転が可能とされており、その中の1軸を計測軸として、その計測軸廻りの回転(図5に各関節要素JU1,JU2に対応して記載した矢印(回転方向を表す矢印))を前記光ファイバ26,27および発光/受光器19により構成された検出手段により計測するようにしている。その計測軸は、本実施形態では、前記一対の股関節J9,J9の中心を結ぶ線分(腰部要素S6の部分S6aの延在方向)と平行な軸である。また、各脚体部S2の股関節J9は、左脚体部S2の股関節J9に関して代表的に図5中に記載した矢印(回転方向を表す矢印)で示す如く3軸廻りの回転が可能とされている。さらに、各脚体部S2の膝関節J11および足首関節J13はそれぞれ、左脚体部S2の各関節要素J11,J13に関して代表的に図5中に記載した矢印(回転方向を表す矢印)で示す如く1軸廻りの回転が可能とされている。膝関節J11および足首関節J13のそれぞれの回転軸は、股関節J9、膝関節J11および足首関節J13のそれぞれの中心点を通る脚平面PL(図5では左脚体部S2に係る脚平面は図示を省略している)に垂直な軸である。右脚体部S2の股関節J9、膝関節J11、および足首関節J13の回転動作についても左脚体部S2と同様である。この場合、右脚体部S2の膝関節J11および足首関節J13のそれぞれの回転軸(1軸)は、該右脚体部S2に対応して図示した脚平面PLに垂直な軸である。なお、各股関節J9は、いずれの脚体部S2についても3軸廻りの回転が可能であるから、それぞれの脚体部S2に対応する脚平面に垂直な軸廻りの回転も可能である。
また、剛体リンクモデルS1では、その各剛体要素の重量および長さ(軸心方向の長さ)、並びに各剛体要素の重心の位置(各剛体要素での位置)があらかじめ定められて、演算処理装置18の図示しないメモリに記憶保持されている。図3の黒点G8,G7,G6,G10,G12,G14はそれぞれ胸部要素S8、腹部要素S7、腰部要素S6、大腿部要素S10、下腿部要素S12、足平部要素S14の重心を例示的に示している。なお、腰部要素S6は前記したように逆T字形であるので、その長さについては、前記部分S6aの長さと部分S6bの長さとがある。
各剛体要素の重量、長さ、重心の位置は、基本的にはそれぞれの剛体要素に対応する人間1の剛体相当部の重量、長さ、重心の位置とほぼ同一に設定されている。例えば、大腿部要素S10の重量、長さ、重心の位置は、それぞれ人間1の大腿部10の実際の重量、長さ、重心の位置とほぼ同一である。また、胸部要素S8の重量および重心の位置は、人間1の胸部8と両腕体4,4と頭部5とを合わせたものの重量および重心の位置である。補足すると、人間1の移動時の両腕体4,4の運動(腕を前後に振る動作)に伴う胸部要素S8の重心の位置変化は比較的小さく、該胸部要素S8のほぼ一定の位置に維持される。また、各剛体要素の重心の位置は、各剛体要素にあらかじめ固定して設定された後述の要素座標系での位置ベクトルとして、該要素座標系の各座標成分値で設定されている。
各剛体要素の重量、長さ、重心の位置は、基本的には、人間1の各部の寸法や重量の実測値に基づいて定めればよいが、人間1の身長や体重から、人間の平均的な統計データに基づいて推定するようにしてもよい。一般に、各剛体要素に対応する人間1の剛体相当部の重心の位置や重量、長さは、人間の身長や体重(全体重量)と相関性があり、その相関関係に基づいて人間1の身長および体重の実測データから各剛体要素に対応する人間1の剛体相当部の重心の位置や重量、長さを比較的精度よく推定することが可能である。
なお、本実施形態では、重量および重心の位置は、人間1に本実施形態の装置(センサボックス15、関節変位センサ21〜23など)を装備した状態での重量および重心の位置である。また、図5では、便宜上、各重心G8,G7,G6,G10,G12,G14は、それぞれに対応する剛体要素の軸心上に位置するように記載しているが、必ずしもその軸心上に位置するとは限らず、その軸心からずれた位置に存在してもよい。
本実施形態では、剛体リンクモデルS1に対して、次のような座標系があらかじめ設定されている。すなわち、図5に示す如く身体座標系BCが腰部要素S6に固定して設定されている。この身体座標系BCは、一対の股関節J11,J11の中心を結ぶ線分の中点(腰部要素S6の部分S6aの中央点)を原点とし、その線分の方向をY軸、原点から上体下部関節JU1の中心に向かう方向をZ軸、これらのY軸およびZ軸に直交する方向をX軸とする3次元座標系(XYZ座標系)として設定されている。人間1の前記基準姿勢状態では、身体座標系BCのX軸、Y軸、Z軸はそれぞれ人間1の前後方向、左右方向、上下方向(鉛直方向)に向き、XY平面は水平面である。また、身体座標系BCのXZ平面は、人間1の矢状面に相当する。
また、各脚体2に対応する脚平面PLには、脚座標系LCが固定・設定されている。なお、図5では便宜上、右脚体部S2の脚平面PLに対応する脚座標系LCのみを代表的に記載している。この脚座標系LCは、脚平面PL上の股関節J9の中心点を原点とする3次元座標系(XYZ座標系)であり、脚平面PLに垂直な方向をY軸、身体座標系BCのZ軸を脚平面PLに投影した軸と平行な方向をZ軸、これらのY軸およびZ軸に直交する方向をX軸としている。なお、脚座標系LCのXZ平面は、脚平面PLと一致する。
さらに、各剛体要素には、例えば参照符号C8,C7,C6,C10,C12,C14で示すように要素座標系が固定的に設定されている。本実施形態では、腰部要素S6の要素座標系C6は身体座標系BCと同一とされている。また、胸部要素S8、腹部要素S7、各大腿部要素S10、各下腿部要素S12、および各足平部要素S14のそれぞれの要素座標系C8,C7,C10,C12,C14はそれぞれ、上体上部関節JU2、上体下部関節JU1、膝関節J11、足首関節J13、MP関節J14aの中心点を原点とする3次元座標系(XYZ座標系)とされている。別の言い方をすれば、各脚体部S2については、その各剛体要素S10,S12,S14の要素座標系C10,C12,C14は、各剛体要素S10,S12,S14の両端の関節要素のうち、腰部要素S6からより遠い側(脚体部S2の先端により近い側)の関節要素の中心点を原点としている。また、上体部SUの腹部要素S7および胸部要素S8のそれぞれの要素座標系C7,C8は、腹部要素S7および胸部要素S8のそれぞれの両端の関節要素のうち、腰部要素S6により近い側の関節要素の中心点を原点としている。なお、図3では、要素座標系C10,C12,C14は図示の便宜上、右脚体部S2についてのみ図示しているが、左脚体部S2についても右脚体部S2と同様に要素座標系が設定されている。
また、要素座標系C8,C7は、それぞれ胸部要素S8、腹部要素S7の延在方向(軸心方向)にZ軸が設定されると共に、Y軸が身体座標系BCのY軸と同一方向に設定されている。また、要素座標系C10,C12,C14はそれぞれ大腿部要素S10、下腿部要素S12、足平部要素S14の延在方向(軸心方向)にZ軸が設定されると共に、Y軸が脚平面PLの法線方向(脚座標系LCのY軸と平行な方向)に設定されている。上記のいずれの要素座標系C8,C7,C10,C12,C14でも、X軸はY軸及びZ軸に直交する方向に設定されている。以下の説明では、各要素座標系C8,C7,C6,C10,C12,C14をそれぞれ胸部座標系C8、腹部座標系C7、腰部座標系C6、大腿部座標系C10、下腿部座標系C12、足平部座標系C14と称することがある。
なお、要素座標系C8,C7,C10,C12,C14は、それぞれに対応する剛体要素に対して固定されている限り、必ずしも上記のように設定する必要はなく、その原点や各軸の向きの設定は任意でよい。また、脚座標系LCの原点を股関節J9の中心からずらしたり、身体座標系BCを腰部要素S6と異なる部位に対して固定・設定するようにしてもよい。座標系の設定の仕方は基本的には任意でよく、種々様々な設定形態を採ることが可能である。従って、本実施形態での座標系の設定の仕方は一例に過ぎない。
図6は前記演算処理装置18の演算処理機能を示すブロック図である。同図に示すように、演算処理装置18は、各股関節9の関節変位センサ21および発光/受光器19の検出出力を基に後述する座標変換のための変換テンソルを作成する変換テンソル作成手段28と、各関節変位センサ21,22,23の検出出力を基に、剛体リンクモデルS1の各脚平面PL上での各関節要素(該脚平面PLに対応する脚体部S2の各関節要素)の位置、各剛体要素の姿勢(傾斜角)、および各剛体要素の重心の位置を求める2次元脚姿勢・要素重心位置算出手段29と、変換テンソル作成手段28が作成した変換テンソルと2次元脚姿勢・要素重心位置算出手段29が求めた位置・姿勢とを用いて前記剛体リンクモデルS1の各関節要素および各剛体要素の重心の身体座標系BCでの3次元的な位置ベクトルの値(座標成分値)を求める3次元関節・要素重心位置算出手段30と、前記加速度センサ16及びジャイロセンサ17の検出出力を基に身体座標系BCの原点の加速度ベクトル(並進加速度)および角速度ベクトルの値(身体座標系BCでの座標成分値)を求める身体座標系加速度・角速度算出手段31と、前記加速度センサ16及びジャイロセンサ17の検出出力を基に身体座標系BCの鉛直方向に対する傾斜角を算出する身体座標系傾斜角算出手段32とを備えている。
さらに演算処理装置18は、3次元関節・要素重心位置算出手段30が求めた各剛体要素の重心の位置ベクトルの値を用いて身体座標系BCでの剛体リンクモデルS1の全体重心(人間1の全体重心)の位置ベクトルの値を求める全体重心位置算出手段33を備えている。
また、演算処理装置18は、3次元関節・要素重心位置算出手段30が求めた各足首関節J13および各MP関節J14aの位置ベクトルの値と身体座標系傾斜角算出手段32が求めた身体座標系BCの傾斜角と全体重心位置算出手段32が求めた全体重心の位置ベクトルの値と接地センサ24,25の検出出力とを用いて接地している各脚体2に作用する床反力(並進床反力のベクトル)の作用点(以下、単に床反力作用点という)の位置ベクトルの身体座標系BCでの値(座標成分値)を求める床反力作用点推定手段34と、3次元関節・要素重心位置算出手段30が求めた各関節要素および各剛体要素の重心の位置ベクトルの値と全体重心位置算出手段32が求めた全体重心の位置ベクトルの値と身体座標系加速度・角速度算出手段31が求めた身体座標系BCの原点の加速度ベクトルおよび角速度ベクトルの値と前記接地センサ24,25の検出出力と前記床反力作用点推定手段34が求めた床反力作用点の位置ベクトルの値とを用いて人間1の各脚体2,2に作用する床反力(並進床反力のベクトル)の身体座標系BCでの値(座標成分値)を推定する床反力推定手段35とを備える。
そして、演算処理装置18は、床反力推定手段35が求めた床反力(ベクトル)の値と床反力作用点推定手段34が求めた床反力作用点の位置ベクトルの値と身体座標系加速度・角速度算出手段31が求めた加速度ベクトルおよび角速度ベクトルの値を、変換テンソル作成手段28が作成した変換テンソルを用いて各脚体2に対応する脚平面PLに投影する脚平面投影手段36と、この投影により得られた値(2次元量)と2次元脚姿勢・要素重心位置算出手段29が求めた位置・姿勢とを用いて各脚体2の足首関節13、膝関節11および股関節9に作用する関節モーメントを推定する関節モーメント推定手段37とを備えている。
詳細は後述するが、演算処理装置18は、上記各手段28〜37の演算処理を所定の演算処理周期で逐次実行し、各演算処理周期において最終的に関節モーメント推定手段37により関節モーメントの推定値を逐次算出する。
次に演算処理装置18の各手段の詳細な演算処理と併せて本実施形態の装置の作動を説明する。なお、以下の説明において、一般的に、ベクトル量をある座標系Caから別の座標系Cbに座標変換する変換テンソル、すなわち座標系Caの成分値で表されるベクトル量を座標系Cbの成分値で表されるベクトル量に変換するテンソルを「R(Ca→Cb)」というように表記する。また、ある座標系Caで見たある点Pもしくは部位Pの位置ベクトルをU(P/Ca)というように表記する。また、ある座標系Caの座標成分値で表される、物体Qもしくは部位Qの作用力、加速度等の物理量のベクトルAをA(Q/Ca)というように表記する。この場合、位置ベクトルU(P/Ca)や、物理量ベクトルA(Q/Ca)の座標系Caでの座標成分値を表すときは、各座標軸の名称であるx、y、zをさらに付加して表記する。例えば、位置ベクトルU(P/Ca)のX軸成分は、U(P/Ca)xというように表記する。さらに位置ベクトルU(P/Ca)や、物理量ベクトルA(Q/Ca)の座標系Caでの2つの座標成分値の組(2次元ベクトル)を表すときには、その2つの座標軸の名称を付加して表記する。例えばベクトルA(Q/Ca)のX軸成分、Z軸成分の組からなる2次元ベクトル(これはベクトルA(Q/Ca)の、Y軸(座標系CaのY軸)に垂直な面上での成分ベクトルである)は、A(Q/Ca)x,zというように表記する。なお、着目している座標系が明らかである場合には、座標系Caの表記を省略することもある。
また、前記各要素座標系C8,C7,C6,C10,C12,C14をそれぞれに対応する部位の名称を用いてC_胸部、C_腹部、C_腰部、C_大腿部、C_下腿部、C_足平部と称することがある。このことは、各剛体要素S8,S7,S6,S10,S12,S14、各剛体要素Sの重心G8,G7,G6,G10,G12,G14についても同様とする。例えば腰部剛体要素S8およびその重心G8をそれぞれS_腰部、G_腰部と表記することがある。なお、大腿部10、下腿部12、足平部14に関するものについては、その左右を区別する必要があるときは、「右」、「左」をさらに付加して記述する。例えば右大腿部要素S10をS_右大腿部と称することがある。また、股関節J9、膝関節J11、足首関節J13、およびMP関節J14aをそれぞれJ_股、J_膝、J_足首、J_MPと称することがある。この場合も左右を区別する必要があるときは、上記と同様、「右」、「左」をさらに付加して表記する。
演算処理装置18は、所定の演算処理周期で前記各関節変位センサ21,22,23、発光/受光器19、加速度センサ16、ジャイロセンサ17の検出出力を図示しないA/D変換器を介して取り込むと共に、各接地センサ24,25の検出出力(ON/OFF信号)を取り込む。そして、まず、前記変換テンソル作成手段28、2次元脚姿勢・要素重心位置算出手段29、および3次元関節・要素重心位置算出手段30の演算処理を順次実行する。
変換テンソル作成手段28の演算処理では、各脚平面PLに対応する脚座標系LCと身体座標系BCとの間のベクトル量の座標変換を行うための変換テンソルR(LC→BC)と、腹部要素S7の要素座標系C7および胸部要素S8の要素座標系C8のそれぞれと身体座標系BCの間のベクトル量の座標変換を行うための変換テンソルR(C_腹部→BC)、R(C_胸部→BC)とが作成される。
変換テンソルR(LC→BC)は、身体座標系BCで見た脚平面PLの法線ベクトルの向きを表すテンソルである。この変換テンソルR(LC→BC)は、本実施形態では、股関節9の関節変位センサ21で検出される前記回転軸b9,c9(図4参照)のそれぞれの軸廻りの回転角α,βを用いて次式(1)により算出される。
ここで、式(1)におけるC_bは、図4に示す如く前記弾性部材50のセンサボックス15側の一端(センサボックス15から延設された剛体部材50aに固定されている一端)に原点を有し、前記回転軸b9,c9の方向をそれぞれZ軸方向、X軸方向とする3次元座標系である。なお、この座標系C_bのY軸は、図4の紙面に垂直な方向であり、人間1の前記基準姿勢状態では脚平面PLに垂直な方向である。そして、式(1)のR(LC→C_b)は、座標系C_bで見た脚平面PLの法線ベクトルの向きを表すテンソルである。また、式(1)中のR(C_b→BC)は上記座標系C_bで見たベクトル量を身体座標系BCで見たベクトル量に座標変換するためのテンソルである。この場合、座標系C_bは、剛体部材50aおよびセンサボックス15を介して腰部6に対して固定されているので、身体座標系BCに対して固定的な位置・姿勢関係を有している。このため、テンソルR(C_b→BC)は一定値(固定値)であり、本実施形態の装置を人間1に装着した時に、あらかじめ設定されて、演算処理装置18のメモリに記憶保持されている。従って、股関節9の関節変位センサ21で検出される前記回転軸b9,c9のそれぞれの軸廻りの回転角α,βを用いて上記式(1)により変換テンソルR(LC→BC)が算出される。なお、変換テンソルR(LC→BC)は、左右の脚体2毎に各別に求められる。
また、変換テンソルR(C_腹部→BC)、R(C_胸部→BC)は次のように作成される。まず、発光/受光器19の検出出力を基に、剛体リンクモデルS1の腰部要素S6に対する腹部要素S7と胸部要素S8の傾斜角(詳しくは身体座標系BCのZ軸方向に対する矢状面(XZ平面)上での傾斜角)が把握される。そして、例えば変換テンソルR(C_腹部→BC)は、腰部6に対する腹部7の傾斜角をθy(但し傾斜角θyは人間1の前方側への傾斜方向を正方向とする)とおくと、次式(2)の如く3次の行列で表される。
変換テンソルR(C_胸部→BC)も同様である。補足すると、本実施形態では、剛体リンクモデルS1の上体下部関節JU1および上体上部関節JU2の1軸廻り(C_腹部およびC_胸部のY軸廻り)の回転による腹部要素S7および胸部要素S8の腰部要素S6に対する傾斜角を計測するようにしたため、変換テンソルR(C_腹部→BC)およびR(C_胸部→BC)は上記式(2)の右辺の形の行列で表される。但し、例えば上体下部関節JU1および上体上部関節JU2のそれぞれの2軸廻り(例えばC_腹部およびC_胸部のY軸とX軸との2軸廻り)の回転による、腹部要素M7および胸部要素M8の2軸廻りの傾斜角を計測するようにしてもよい。このようにした場合には、変換テンソルR(C_腹部→BC),R(C_胸部→BC)はより複雑な形式になる。
なお、上記の如く求めた変換テンソルR(LC→BC),R(C_腹部→BC),R(C_胸部→BC)を転置したものがそれぞれの逆変換を行うための変換テンソルとなる。従って、R(BC→LC)=R(LC→BC)T、R(BC→C_腹部)=R(C_腹部→BC)T、R(BC→C_胸部)=R(C_胸部→BC)T(Tは転置を意味する)である。
前記2次元脚姿勢・要素重心位置算出手段29の演算処理では、まず、各脚体2の関節変位センサ21〜23の検出出力から把握される、各関節9,11,13の脚平面PLに垂直な軸(図3の回転軸a9,a11,a13)廻りの回転角から、該脚体2の剛体相当部である大腿部10、下腿部12および足平部14の傾斜角θ_大腿部、θ_下腿部、θ_足平部が、それぞれに対応する剛体リンクモデルS1の大腿部要素S10、下腿部要素S12および足平部要素S14の傾斜角として算出される。ここで、傾斜角θ_大腿部、θ_下腿部、θ_足平部は、脚平面PLに係わる脚座標系LCのZ軸方向に対する傾斜角である。
具体的には、図7に示す如く、股関節9、膝関節11、足首関節13のそれぞれの検出された回転角(前記基準姿勢状態からの、脚平面PL(=脚座標系LCのXZ平面)に垂直な軸廻りの回転角)をθ_股、θ_膝、θ_足首とすると、θ_大腿部、θ_下腿部、θ_足平部は、それぞれ次式(3a)〜(3c)により順番に求められる。
θ_大腿部=−θ_股 ……(3a)
θ_下腿部=θ_大腿部+θ_膝 ……(3b)
θ_足平部=θ_下腿部−θ_足首−90° ……(3c)
尚、図7の例では、θ_股>0、θ_膝>0、θ_足首>0であり、θ_大腿部<0、θ_下腿部0>0、θ_足平部<0である。また、θ_大腿部、θ_下腿部、θ_足平部の算出は、各脚体部S2毎に各別に行われる。
次に、各脚体部S2の各関節要素の、脚座標系LCのXZ平面、すなわち、脚平面PL上での位置が、上記の如く求めたθ_大腿部、θ_下腿部、θ_足平部と、あらかじめ演算処理装置18のメモリに記憶保持された各脚体部S2の各剛体要素の長さとを用いて求められる。具体的には、各脚体部S2の関節要素J_股(J9),J_膝(J11),J_足首(J13)およびJ_MP(J14a)のそれぞれの脚座標系LCでの位置ベクトルU(J_股/LC),U(J_膝/LC),U(J_足首/LC),U(J_MP/LC)がそれぞれ次式(4a)〜(4d)により順番に算出される。なお、このとき、脚座標系LCのY軸方向(脚平面PLの法線方向)でのJ_股,J_膝、J_足首、J_MPの位置、すなわち、J_股,J_膝、J_足首、J_MPの、脚座標系LCでのY軸成分はいずれも0とされる。つまり、本実施形態では、J_股,J_膝、J_足首、J_MPは、いずれも脚平面PL上でのみ運動可能とされる。
U(J_股/LC)=(0,0,0)T …(4a)
U(J_膝/LC)=U(J_股/LC)
+(−L10×sin(θ_大腿部),0,−L10×cos(θ_大腿部))T
…(4b)
U(J_足首/LC)=U(J_膝/LC)
+(−L12×sin(θ_下腿部),0,−L12×cos(θ_大腿部))T
…(4c)
U(J_MP/LC)=U(J_足首/LC)
+(−L14×sin(θ_足平部),0,−L14×cos(θ_足平部))T
…(4d)
ここで、式(4b),(4c),(4d)中のL10,L12,L14はそれぞれ大腿部要素S10、下腿部要素S12、足平部要素S14の長さであり、前記した如く演算処理装置18のメモリにあらかじめ記憶保持されている。また、式(4b)〜(4d)のそれぞれの右辺第2項のベクトルは、股関節要素J9から見た膝関節要素J11の位置ベクトル、膝関節要素J11から見た足首関節要素J13の位置ベクトル、足首関節要素J13から見たMP関節要素J14aの位置ベクトルを意味している。なお、式(4a)〜(4d)により求められる位置ベクトルU(J_股/LC),U(J_膝/LC),U(J_足首/LC),U(J_MP/LC)のそれぞれのX軸成分およびZ軸成分の組が脚平面PL上での2次元的位置を表している。
さらに、各脚体部S2の各剛体要素の重心の、脚座標系LCでの位置ベクトルが、式(4b)〜(4d)により上記の如く算出された関節要素の位置ベクトルを用いて算出される。具体的には、各脚体部S2の大腿部要素S10、下腿部要素S12、足平部要素S14のそれぞれの重心G_大腿部(G10),G_下腿部(G12),G_足平部(G14)のそれぞれの位置ベクトルU(G_大腿部/LC),U(G_下腿部/LC),U(G_足平部/LC)がそれぞれ次式(5a)〜(5c)により算出される。
U(G_大腿部/LC)=U(J_膝/LC)+
R(C_大腿部→LC)×U(G_大腿部/C_大腿部)…(5a)
U(G_下腿部/LC)=U(J_足首/LC)+
R(C_下腿部→LC)×U(G_下腿部/C_下腿部)…(5b)
U(G_足平部/LC)=U(J_MP/LC)+
R(C_足平部→LC)×U(G_足平部/C_足平部)…(5c)
ここで、式(5a)〜(5c)のR(C_大腿部→LC)、R(C_下腿部→LC)、R(C_足平部→LC)は、それぞれ大腿部座標系C_大腿部(C10)から脚座標系LCへの変換テンソル、下腿部座標系C_下腿部(C12)から脚座標系LCへの変換テンソル、足平部座標系C_足平部(C14)から脚座標系LCへの変換テンソルであり、それぞれ先に算出したθ_大腿部、θ_下腿部、θ_足平部(式(3a)〜(3c)を参照)を用いて決定される。また、U(G_大腿部/C_大腿部)、U(G_下腿部/C_下腿部)、U(G_足平部/C_足平部)は、各剛体要素の要素座標系で表された該剛体要素の重心の位置ベクトルであり、前記した如くあらかじめ演算処理装置18のメモリに記憶保持されている。
上記式(5a)〜(5c)により求められる位置ベクトルU(G_大腿部/LC),U(G_下腿部/LC),U(G_足平部/LC)のX軸成分及びZ軸系分の組が脚平面PL上での2次元的位置を表している。以上説明した演算処理が2次元脚姿勢・要素重心位置算出手段29の演算処理である。
次に3次元関節・要素重心位置算出手段30の演算処理では、変換テンソル作成手段28で求めた変換テンソルと2次元脚姿勢・要素重心位置算出手段29で求めた各脚体部S2の各関節要素および各剛体要素の重心の位置(脚座標系LCでの位置)とを用いて、剛体リンクモデルS1の各関節要素および各剛体要素の重心の身体座標系BCでの位置ベクトルが求められる。
各関節要素の位置ベクトルの算出は次のように行われる。例えば左脚体部S2の各関節要素J9,J11,J13の位置ベクトルの算出について説明する。まず、腰部要素S6の、両股関節J9,J9間の部分S6a長さをL6aとおくと、身体座標系BCにおける左股関節J6の位置ベクトルU(J_左股/BC)は、次式(6a)により与えられる。
U(J_左股/BC)=(0,L6a/2,0)T …(6a)
さらに、身体座標系BCにおける左膝関節J11、左足首関節J13、左MP関節J14aのそれぞれの位置ベクトルU(J_左膝/BC)、U(J_左足首/BC)、U(J_左MP/BC)は、変換テンソルR(LC→BC)と、左脚体部S2に対応する脚座標系LC(左LC)での位置ベクトルU(J_左膝/LC)、U(J_左足首/LC)、U(J_左MP/LC)とを用いて次式(6b)〜(6d)により順番に求められる。
U(J_左膝/BC)=U(J_左股/BC)+R(LC→BC)×U(J_左膝/LC)…(6b)
U(J_左足首/BC)=U(J_左股/BC)+R(LC→BC)×U(J_左足首/LC)
…(6c)
U(J_左MP/BC)=U(J_左股/BC)+R(LC→BC)×U(J_左MP/LC)
…(6d)
右脚体部S2の各関節要素の身体座標系BCでの位置ベクトルも上記と同様に求められる。
さらに、上体部SUの上体下部関節JU1および上体上部関節JU2の身体座標系BCでの位置ベクトルU(JU1/BC),U(JU2/BC)は、それぞれ次式(7a),(7b)により順番に求められる。
U(JU1/BC)=(0,0,L6b)T ……(7a)
U(JU2/BC)=U(JU1/BC)+R(C_腹部→BC)×(0,0,L7)T ……(7b)
なお、式(7a)のL6bは、腰部要素S6の部分S6bの長さ、式(7b)のL7は腹部要素S7の長さであり、これらの長さは前述の通りあらかじめ演算処理装置18のメモリに記憶保持されている。
また、各剛体要素の重心の、身体座標系BCでの位置ベクトルの算出は次のように行われる。すなわち、大腿部要素S10、下腿部要素S12、足平部要素S14のそれぞれの重心の身体座標系BCでの位置ベクトルU(G_大腿部/BC),U(G_下腿部/BC),U(G_足平部/BC)は、それぞれ前記式(6b)〜(6d)の右辺のU(J_左膝/LC)、U(J_左足首/LC)、U(J_左MP/LC)を、それぞれ前記2次元脚姿勢・要素重心位置算出手段29で算出した大腿部要素S10、下腿部要素S12、足平部要素S14の重心の位置ベクトルU(G_大腿部/LC)、U(G_下腿部/LC)、U(G_足平部/LC)で置き換えた式を演算することで求められる。なお、G_大腿部,G_下腿部,G_足平部の身体座標系BCでの位置ベクトルの算出は、各脚体部S2毎に各別に行われる。
また、腰部要素S6の重心G6の位置ベクトルU(G_腰部/BC)は、あらかじめ記憶保持された腰部座標系C_腰部(C6)での重心G_腰部の位置ベクトルU(G_腰部/C_腰部)から、次式(8)により求められる。
U(G_腰部/BC)=R(C_腰部→BC)×U(G_腰部/C_腰部) …(8)
ここで、R(C_腰部→BC)は、腰部座標系C_腰部から身体座標系BCへの変換テンソルである。本実施形態では、C_腰部は身体座標系BCに等しいので、R(C_腰部→BC)は3次の単位行列で表される。従って、U(G_腰部/C_腰部)がそのままU(G_腰部/BC)として得られる。
さらに、腹部要素S7、胸部要素S8のそれぞれの重心G7,G8の身体座標系BCでの位置ベクトルU(G_腹部/BC),U(G_胸部/BC)は、変換テンソル作成手段28で求めた変換テンソルR(C_腹部→BC),R(C_胸部→BC)と、あらかじめ記憶保持された腹部座標系C_腹部(C7)での腹部要素S7の重心の位置ベクトルU(G_腹部/C_腹部)、及び胸部座標系C_胸部(C8)での胸部要素S8の重心の位置ベクトルU(G_胸部/C_胸部)とを用いてそれぞれ次式(9),(10)により求められる。
U(G_腹部/BC)=U(JU1/BC)+R(C_腹部→BC)・U(G_腹部/C_腹部)
……(9)
U(G_胸部/BC)=U(JU2/BC)+R(C_胸部→BC)・U(G_胸部/C_胸部)
……(10)
なお、U(JU1/BC)、U(JU2/BC)は、前記式(7a),(7b)により求められたものである。
以上説明した演算処理が3次元関節・要素重心位置算出手段30の演算処理である。なお、以上のように3次元関節・要素重心位置算出手段30で算出される各関節要素と各剛体要素の重心との位置ベクトルは、それぞれに対応する人間1の実際の部位の、身体座標系BCで見た位置ベクトルとしての意味を持つ。
演算処理装置18は、上記した変換テンソル作成手段28、2次元脚姿勢・要素重心位置算出手段29、および3次元関節・要素重心位置算出手段30の演算処理と並行して、身体座標系加速度・角速度算出手段31および身体座標系傾斜角算出手段32の演算処理を実行する。
身体座標系加速度・角速度算出手段31の演算処理では、加速度センサ16の検出出力から把握される3軸方向の加速度(並進加速度)とジャイロセンサ17の検出出力から把握される3軸廻りの角速度とから次のように身体座標系BCの原点の加速度ベクトルの身体座標系BCでの値(座標成分値)が求められる。まず、各センサ16,17がそれぞれ検出する加速度、角速度はそれらのセンサ16,17に対して固定された3軸の座標系(以下、センサ座標系SC又はC_センサという)であらわされるベクトル量であるので、それを身体座標系BCでの値に変換する。その変換は、腰部6に対する加速度センサ16およびジャイロセンサ(角速度センサ)17の相対的な取り付け位置関係(腰部座標系C6(=身体座標系BC)に対するセンサ座標系SCの相対的姿勢関係)に応じてあらかじめ設定された変換テンソルをセンサ座標系SCでそれぞれ検出された加速度ベクトル、角速度ベクトルに乗算することで行われる。すなわち、センサ座標系SCでの加速度ベクトルの検出値をACC(センサ/SC)、それを身体座標系BCに変換した加速度ベクトルをACC(センサ/BC)、センサ座標系SCでの角速度ベクトルの検出値をω(センサ/SC)、それを身体座標系BCに変換した角速度ベクトルをω(センサ/BC)とおくと、加速度ベクトルACC(センサ/BC)、角速度ベクトルω(センサ/BC)は、それぞれ次式(11),(12)により求められる。ここで、ACC(センサ/BC)、ω(センサ/BC)は、より詳しくは、それぞれ加速度センサ16、ジャイロセンサ17の箇所の加速度ベクトル、角速度ベクトルであり、その意味で、ACC、ωの表記に「センサ」を付加している。なお、この例では加速度センサ16、ジャイロセンサ17の箇所はほぼ同一箇所とし、センサ座標系SCは両センサ16,17について同じ座標系としている。
ACC(センサ/BC)=R(SC→BC)・ACC(センサ/SC) ……(11)
ω(センサ/BC)=R(SC→BC)・ω(センサ/SC) ……(12)
ここで、変換テンソルR(SC→BC)はセンサ座標系SCと身体座標系BCとの相対的な姿勢関係(詳しくは、センサ座標系SCの各軸の身体座標系BCの各軸に対する傾き角)から求められる。例えば、センサ座標系SCの3軸(XYZ軸)が図8に示す如く身体座標系BCのY軸(図8の紙面に垂直な軸)廻りに角度θyだけ傾いている場合には、変換テンソルR(SC→BC)は前記式(2)の右辺と同じ形の行列で表される。この場合、加速度センサ16およびジャイロセンサ17は身体座標系BCを設けた腰部8に固定されているので、センサ座標系SCの各軸の身体座標系BCの各軸に対する傾き角は、加速度センサ16およびジャイロセンサ17の腰部8への取り付け時に実測されて判明しており、その傾き角を基にあらかじめ変換テンソルR(SC→BC)が求められて、演算処理装置18のメモリに記憶保持されている。補足すると、加速度センサ16やジャイロセンサ17を腰部6以外の部位(剛体リンクモデルS1のいずれかの剛体要素に対応する剛体相当部)に装着してもよい。この場合には、加速度ベクトルACC(センサ/BC)および角速度ベクトルω(センサ/BC)は、センサ座標系SCでの検出値を加速度センサ16やジャイロセンサ17を装着した剛体要素の要素座標系での値に変換した後、さらに変換テンソルによって身体座標系BCでの値に変換すればよい。この場合の変換テンソルは、加速度センサ16やジャイロセンサ17を装着した剛体要素と腰部要素S6との間にある関節要素の変位量(回転角)の検出値を基に決定される。
身体座標系加速度・角速度算出手段32の演算処理では、上記の如く加速度ベクトルACC(センサ/BC)および角速度ベクトルω(センサ/BC)を求めた後、次式(13)によって、身体座標系BCの原点の加速度ベクトルACC(BCO/BC)を求める。「BCO」は身体座標系BCの原点を表す符号である。
この式(13)中の、U(センサ/BC)は、身体座標系BCでの加速度センサ16およびジャイロセンサ17の位置ベクトルであり、U(センサ/BC)x、U(センサ/BC)y、U(センサ/BC)zはそれぞれ、前述した本明細書でのベクトルの座標成分値の表記手法の定義にしたがって、U(センサ/BC)の身体座標系BCでの各座標成分値である。U(センサ/BC)は、加速度センサ16およびジャイロセンサ17の腰部8への取り付け時に実測されて演算処理装置18のメモリに記憶保持されている。また、ω(センサ/BC)x、ω(センサ/BC)y、ω(センサ/BC)zはそれぞれ先に求めた角速度ベクトルω(センサ/BC)の各座標成分値である。また、ω(センサ/BC)’は、ω(センサ/BC)の1階微分値を示しており、その値は、演算処理装置18の演算処理周期毎に前記式(12)により求めるω(センサ/BC)の時系列データから算出される。
また、腰部要素S6内のどの部分でも角速度は同一であり、腰部要素S6に固定されている身体座標系BCの原点BCOの角速度ω(BCO/BC)は、ω(センサ/BC)に等しい。従って、ω(センサ/BC)がそのまま身体座標系BCの原点BCOの角速度ω(BCO/BC)として得られる。すなわち、ω(BCO/BC)=ω(センサ/BC)である。
なお、加速度センサ16は重力に伴う加速度も検出するので、上記のように求められた加速度ベクトルACC(BCO/BC)には、重力による慣性加速度成分(重力加速度成分)が含まれる。また、本実施系形態では、腰部要素S6の角速度を考慮して身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)を求めるようにしたが、腰部要素S6の角速度やその変化率は比較的小さいので、前記式(11)で求めたACC(センサ/BC)をそのまま身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)としてもよい。
また、前記身体座標系傾斜角算出手段32の演算処理では、加速度センサ16およびジャイロセンサ17の検出出力から所謂カルマンフィルタによって鉛直方向(重力方向)に対する腰部要素S6の傾斜角(身体座標系BCのZ軸の傾斜角)が算出される。この算出手法は公知であるのでここでの説明は省略する。なお、ここで算出される傾斜角は、前後方向の水平軸と左右方向の水平軸との2軸廻りの傾斜角である。
次に、演算処理装置18は、全体重心位置算出手段33の演算処理を実行する。この全体重心位置算出手段33の演算処理では、前記3次元関節・要素重心位置算出手段30によって求められた各剛体要素の重心位置(身体座標系BCでの位置ベクトル)と、あらかじめ前述したように設定された各剛体要素の重量とから、次式(14)によって、剛体リンクモデルS1の全体重心(人間1の全体重心。以下、G_全体と表記することがある)の身体座標系BCでの位置ベクトルU(G_全体/BC)が求められる。
U(G_全体/BC)={U(G_胸部/BC)×m_胸部+U(G_腹部/BC)×m_腹部
+U(G_腰部/BC)×m_腰部+U(G_右大腿部/BC)×m_右大腿部
+U(G_左大腿部/BC)×m_左大腿部+U(G_右下腿部/BC)×m_右下腿部
+U(G_左下腿部/BC)×m_左下腿部+U(G_右足平部/BC)×m_右足平部
+U(G_左足平部/BC)×m_左足平部}/全体重量 ……(14)
なお、m_胸部など、「m_○○」は○○の名称に対応する剛体要素の重量である。この式(14)の如く、全体重心の位置ベクトルU(G_全体/BC)は、剛体リンクモデルS1の各剛体要素の重心の身体座標系BCでの位置ベクトルとその剛体要素の重量との積の総和を、人間1の全体重量(=全ての剛体要素の重量の総和)で除算することで求められる。
次に、演算処理装置18は、前記床反力作用点推定手段34および床反力推定手段35の算出処理を実行する。
床反力作用点推定手段34の演算処理では、まず、前記身体座標系傾斜角算出手段32で算出された腰部要素S6の鉛直方向に対する傾斜角を基に、身体座標系BCから絶対座標系ICへの変換テンソルR(BC→IC)が作成される。ここで、絶対座標系ICは、鉛直方向をZ軸とする直交座標系で、前記基準姿勢状態において身体座標系BCと各座標軸の向きが同一となる座標系である。なお、絶対座標系ICから身体座標系BCへの変換テンソルR(IC→BC)は変換テンソルR(BC→IC)の転置R(BC→IC)Tである。
次いで、上記変換テンソルR(BC→IC)を用いて、前記全体重心位置算出手段33で先に求めた全体重心G_全体の位置ベクトルU(G_全体/BC)と、3次元関節・要素重心位置算出手段30で先に求めた各脚体部S2の足首関節J13およびMP関節J14aのそれぞれの位置ベクトルU(J_足首/BC),U(J_MP/BC)とにそれぞれ上記変換テンソルR(BC→IC)を乗算することにより、全体重心G_全体、各足首関節J13およびMP関節J14aの絶対座標系ICで見た位置ベクトルU(G_全体/IC),U(J_足首/IC),U(J_MP/IC)が算出される。なお、これらの位置ベクトルU(G_全体/IC),U(J_足首/IC),U(J_MP/IC)は、身体座標系BCと同じ原点を有する絶対座標系ICでの位置ベクトルである。また、このとき、接地センサ24,25の検出出力により接地無しと判断される脚体2に関しては、位置ベクトルU(J_足首/IC),U(J_MP/IC)を算出する必要はない。
次いで、接地センサ24,25の検出出力により接地有りと判断される各脚体2毎に、位置ベクトルU(G_全体/IC),U(J_足首/IC),U(J_MP/IC)のX軸成分U(G_全体/IC)x,U(J_足首/IC)x,U(J_MP/IC)xの大小関係に応じて、換言すれば、全体重心G_全体、足首関節13およびMP関節14aの前後方向での相対的な水平位置関係に応じて、床反力作用点の位置ベクトル(絶対座標系ICでの位置ベクトル)U(COP/IC)のX軸成分およびY軸成分が決定される。この決定手法を図9(a)〜(c)および図10を参照してさらに詳説する。なお、以下の説明では、左脚体2が接地しているとする。図9(a)〜(c)は矢状面(絶対座標系ICのXZ平面)で見た人間1の左脚体2が接地している状態(これらの図では単脚支持状態)を例示しており、図10は図9(b)の状態での接地側の足平部14を水平面(絶対座標系ICのXY平面)で見た図を示している。なお、図9及び図10では人間1は剛体リンクモデル状に模式化して示している。
図9(a)に示すように、全体重心G_全体が接地している左脚体2のMP関節14aよりも前方に存在する場合、すなわち、U(G_全体/IC)x>U(J_左MP/IC)xである場合には、該左脚体2の足平部14は、主にそのつま先側部分で踏ん張って接地している。この場合には、床反力作用点COPは、その足平部14のMP関節14aのほぼ直下の位置に存在する。そこで、この場合には、床反力作用点COPの位置ベクトルU(左COP/IC)のX,Y軸成分はそれぞれMP関節14aの位置ベクトルU(J_左MP/IC)のX,Y軸成分に等しいとする。すなわち、U(左COP/IC)x=U(J_左MP/IC)x、U(左COP/IC)y=U(J_左MP/IC)yとする。
また、図9(c)に示す如く、全体重心G_全体が接地している左脚体2の足首関節13よりも後方に存在する場合、すなわち、U(G_全体/IC)x<U(J_左足首/IC)xである場合には、該左脚体2の足平部14は、主にその踵側部分で踏ん張って接地している。この場合には、床反力作用点COPは、その左脚体2の足首関節13のほぼ直下の位置に存在する。そこで、この場合には、床反力作用点COPの位置ベクトルU(左COP/IC)のX,Y軸成分はそれぞれ足首関節13の位置ベクトルU(J_右足首/IC)のX,Y軸成分に等しいとする。すなわち、U(左COP/IC)x=U(J_左足首/IC)x、U(左COP/IC)y=U(J_左足首/IC)yとする。
また、図9(b)に示すように、全体重心G_全体が前後方向で左脚体2の足首関節13とMP関節14aとの間に存在する場合、すなわち、U(J_左MP/IC)x≦U(G_全体/IC)x≦U(J_左足首/IC)xである場合には、床反力作用点COPは、図示の矢状面上では、全体重心G_全体のほぼ真下に存在する。そこで、この場合には、床反力作用点COPの位置ベクトルU(左COP/IC)のX軸成分は、全体重心G_全体のX軸成分に等しいとする。すなわち、U(左右COP/IC)x=U(G_全体/IC)xとする。そして、床反力作用点COPは、接地している左側脚体2の足平部14と床面との接触面(この場合、足平部14の底面のほぼ全面)に存在しており、その位置は、概ね、足首関節13の中心点とMP関節14aの中心点とを結ぶ線分を床面に投影した線分上に存在すると考えられる。そこで、床反力作用点COPの位置ベクトルU(右COP/IC)のY軸成分は、図10に示す如く、左脚体2に関する足平部要素S14の軸心上(足首関節13の中心点とMP関節14aの中心点とを結ぶ線分上)で、全体重心G_全体とX軸成分(絶対座標系ICでのX軸成分)の値が同じになるような点PのY軸成分と等しいとする。このような位置ベクトルU(右COP/IC)のY軸成分の値は、次式(22)に比例関係式に基づいて求められる。
U(左COP/IC)x−U(J_左足首/IC)x
:U(J_左MP/IC)x−U(J_左足首/IC)x
=U(左COP/IC)y−U(J_左足首/IC)y
:U(J_左MP/IC)y−U(J_左足首/IC)y ……(22)
また、床反力作用点の位置ベクトルU(左COP/IC)のZ軸成分は、左脚体2の足首関節13(足首要素J13)からあらかじめ定めた所定値H0(>0)だけ鉛直方向下方に離れた点のZ軸成分に等しいとする。すなわち、U(右COP/IC)z=U(J_左足首/IC)z−H0とする。ここで、所定値H0は、前記基準姿勢状態(より正確には足平部14の底面のほぼ全体を水平な床面上に接触させた状態)における床面から足首関節13の中心までの鉛直方向距離であり、あらかじめ実測されて演算処理装置18のメモリに記憶保持されている。所定値H0は左右の各脚体2毎に各別に実測してもよいが、いずれかの一方の脚体2について実測した値を左右の両脚体2で共通に使用してもよい。
本実施形態では、以上の如く、左脚体2が接地している場合に該左脚体に作用する床反力の床反力作用点の位置ベクトルU(左COP/IC)が求められる。右脚体2が接地している場合についても同様である。この場合、両脚接地状態では、各脚体2のそれぞれについて各別に、上記の如く床反力作用点の位置ベクトルが求められる。
なお、本実施形態では、床反力作用点の位置ベクトルU(COP/IC)のZ軸成分を求めるために用いる前記所定値H0を一定値としたが、接地センサ24,25により、足平部14のつま先側のみが接地していること、すなわち、接地センサ25のみが接地有りを示すON信号を出力している場合には、上記所定値H0の代わりに、その接地している脚体2のついて、足首関節13およびMP関節14aのそれぞれの位置ベクトルU(J_足首/IC),U(J_MP/IC)のZ軸成分の差(U(J_足首/IC)z−U(J_MP/IC)z)、すなわち、足首関節13とMP関節14aとの鉛直方向距離を使用するようにしてもよい。このようにすると、U(COP/IC)の精度を高めることができる。
床反力作用点推定手段34の演算処理では、最後に、上記の如く接地している各脚体2について求めた床反力作用点の位置ベクトルU(COP/IC)に、先に求めた変換テンソルR(BC→IC)の転置である逆変換テンソルR(IC→BC)を乗算することにより、床反力作用点の位置ベクトルの身体座標系BCでの値U(COP/BC)が求められる。
次に、床反力推定手段35の演算処理を説明する。まず、この演算処理の原理を図11および図12を参照して説明する。図11および図12は、それぞれ単脚支持状態、両脚支持状態の人間1の下半身を示している。なお、この床反力推定手段35の説明では、床反力、角運動量、位置ベクトルなどのベクトル量は、特にことわらない限り、身体座標系BCで表現されるものとし、単にX軸、Y軸、Z軸というときは、それらの座標軸は身体座標系BCの座標軸を意味するものとする。従って、ベクトル量を表記するとき、しばしば座標系の名称を省略する。例えば、右脚体2に作用する床反力を身体座標系BCで表現したものをFrf(右脚体/BC)と表記する代わりに、Frf(右脚体)と略記し、そのX軸成分をFrf(右脚体)xと略記する。
人間1の運動時には、一般に、該人間1の全体の角運動量が時間的に変化し、この角運動量の時間的変化率(時間微分値)である全角運動量変化率は、床反力以外の外力(重力を除く)が人間1に作用していない場合、人間1に作用する全ての床反力(ベクトル)の総和である全床反力(ベクトル)が人間1の全体重心G_全体の廻りに発生するモーメント(あるいは各脚体2に作用する床反力がそれぞれG_全体の廻りに発生するモーメントの総和)に等しい。なお、人間1の単脚支持状態では、接地していない脚体2に作用する床反力は0であるから、接地している一つの脚体2に作用する床反力が全床反力であり、人間1の両脚支持状態では、接地している左右の脚体2,2にそれぞれ作用する床反力の総和(ベクトル和)が全床反力である。補足すると、接地している脚体2に作用する実際の床反力は、該脚体2の接地面に分布するものとなるが、本明細書では該脚体2の床反力作用点COPに床反力が集中している(接地面に分布する床反力の重心が床反力作用点COPに在る)とみなす。
また、一般に、ある並進力が、任意の点PP廻りに発生するモーメントの、任意の一つの軸XX廻りの成分の大きさは、軸XXに垂直な面SS上で見た、該並進力の作用線(該並進力の作用点を通って該並進力と同じ方向の直線)と点PPとの距離であるモーメントアーム長を、該並進力の面SS上での成分ベクトル(該並進力の軸XXに垂直な成分ベクトル)の大きさに乗算したものに等しい。
従って、人間1の全角運動量変化率の、ある所定軸廻りの成分の大きさは、人間1に作用する全床反力の、該所定軸に垂直な面上での成分ベクトル(2次元ベクトル)の大きさ(絶対値)に、ある長さのモーメントアーム長を乗算したものに一致する。また、該全床反力の、所定軸に垂直な面上での成分ベクトルがG_全体の廻りに発生するモーメントの向きは、全角運動量変化率の所定軸廻りの成分の向きに一致する。
このようなことを考慮し、本実施形態では、接地している各脚体2に作用する床反力のの所定軸に垂直な面での成分ベクトルの向きを、上記モーメントアーム長と全角運動量変化率の所定軸廻りの成分(特にその向き)とを用いて規制することとした。
具体的には、人間1の全角運動量変化率のY軸(人間1の左右方向の軸)廻りの成分に着目し、図11に示す人間1の単脚支持状態では、接地している脚体2(図示の例では右脚体2)に作用している床反力Frf(右脚体)(=全床反力)のY軸に垂直な面(XZ平面)上での成分ベクトルFrf(右脚体)x,zの向きを、その作用線K(図示の例では接地している右脚体2の床反力作用点COPを通る直線K(右))がG_全体を中心とするある半径r(=モーメントアーム長)の円Ciに接し、且つ、その作用線の向きのFrf(右脚体)x,zによってG_全体の廻りに発生するモーメントの向きが全角運動量変化率L'(L'は全角運動量Lの1階微分値を意味する)のY軸廻り成分L'yの向きと同じになるような向きに規制する。このことは、左脚体2のみが接地している単脚支持状態でも同様である。
補足すると、単脚支持状態では、接地している脚体2に作用する床反力は、全床反力に等しいので、上記のように接地している脚体2に作用する床反力のXZ平面上での成分ベクトルの向きを規制したとき、全床反力のXZ平面上での成分ベクトルがG_全体の廻りに発生するモーメントの向きも、全角運動量変化率のY軸廻り成分L'yの向きと同じになる。そして、この場合は、接地している脚体2に作用している床反力のY軸に垂直な面上での成分ベクトルFrf(脚体)x,zの大きさ(絶対値)に、上記円Ciの半径であるモーメントアーム長rを乗算したものが全角運動量変化率のY軸廻り成分L'yの大きさ(絶対値)に一致する。
また、図12に示す人間1の両脚支持状態では、右脚体2に作用している床反力Frf(右脚体)のY軸に垂直な面(XZ平面)上での成分ベクトルFrf(右脚体)x,z、の方向を、その作用線K(右)がG_全体を中心とするある半径r(=モーメントアーム長)の円Ciに接し、且つ、その作用線K(右)の向きのFrf(右脚体)x,zによってG_全体の廻りに発生するモーメントの向きが全角運動量変化率L'のY軸廻り成分L'yの向きと同じになるような向きに規制する。同様に、左脚体2に作用している床反力Frf(左脚体)のY軸に垂直な面(XZ平面)上での成分ベクトルFrf(左脚体)x,z、の向きを、その作用線K(左)が上記半径rの円Ciに接し、且つ、その作用線K(左)の向きのFrf(左脚体)x,zによってG_全体の廻りに発生するモーメントの向きが全角運動量変化率L'のY軸廻り成分L'yの向きと同じになるような向きに規制する。
補足すると、両脚支持状態では、上記のように左右の各脚体2に作用する床反力のXZ平面上での成分ベクトルの向きを規制したとき、それらの成分ベクトルの総和(全床反力のXZ平面上での成分ベクトル)がG_全体の廻りに発生するモーメントの向きも、全角運動量変化率のY軸廻り成分L'yの向きと同じになる。但し、この場合は、右脚体2に作用している床反力Frf(右脚体)のXZ平面上での成分ベクトルFrf(右脚体)x,zの大きさ(絶対値)と、左脚体2に作用している床反力Frf(左脚体)のXZ平面上での成分Frf(左脚体)x,zの大きさ(絶対値)とにそれぞれ、上記円Ciの半径であるモーメントアーム長rを乗算したものの総和は、一般には、全角運動量変化率L'のY軸廻り成分L'yの大きさに一致しない。
以上説明したことを考慮し、本実施形態における床反力推定手段35の演算処理では、以下に説明するように、全角運動量変化率L'のY軸廻り成分L'yと、全床反力(以下、これをFrf(全体)と称する)のY軸に垂直な面上での成分ベクトル(身体座標系BCの矢状面としてのXZ平面上での成分ベクトル)とからモーメントアーム長rを求める。そして、このモーメントアーム長rを用いて、接地している各脚体2に作用する床反力(詳しくは該床反力のXZ平面上での成分ベクトル)の向きを決定する。このように床反力の向きを決定すれば、該床反力の各座標成分値の比率が定まるので、それと、全床反力とから該床反力の各座標成分値を求めることができる。なお、床反力のY軸成分は、関節モーメント推定手段37が最終的に求める関節モーメント(脚平面PLに垂直な軸廻りの関節モーメント)にはさほど影響を及ぼさないことから、本実施形態では、床反力のY軸成分は無視する(Y軸成分を0とする)。
以下に床反力推定手段35の演算処理を図13などを参照しつつ具体的に説明する。図13は、床反力推定手段35の演算処理機能を示すブロック図である。
図13に示すように、床反力推定手段35は、全角運動量変化率算出手段51、全床反力算出手段52、モーメントアーム長算出手段53、床反力方向決定手段54および床反力成分算出手段55を備えている。全角運動量変化率算出手段51には、前記身体座標系加速度・角速度算出手段31で求められた身体座標系BCの原点BCOの角速度ω(BCO/BC)と、前記3次元関節・要素重心位置算出手段30で求められた各関節要素の位置ベクトルおよび各剛体要素の重心の位置ベクトルと、前記全体重心位置算出手段33で求められたG_全体の位置ベクトルとが入力される。
そして、全角運動量変化率算出手段51は、これらの入力値を使用して、次式(40)の演算により、全角運動量変化率L’のY軸廻り成分L'yを求める。
L'y=Σ(I_n×θ''(n)y)
+Σ(m_n×ΔU(G_n)
×ΔACC(G_n))y
……(40)
但し、ΔU(G_n)≡U(G_n)−U(G_全体)
ΔACC(G_n)≡ACC(G_n)−ACC(G_全体)
=U(G_n)''−U(G_全体)''
この式(40)において、「n」は各剛体要素に任意に割り当てた番数を意味し、I_nは番数nの剛体要素の慣性モーメント、θ''(n)は、番数nの剛体要素のその重心廻りの角加速度である。従って、式(40)の第1項のΣの演算は、各剛体要素の慣性モーメントI_nと角加速度θ''(n)のY軸成分との積(これは各剛体要素がその回転運動によって発生するモーメントのY軸成分である)を、全ての剛体要素について加算する演算である。また、m_nは番数nの剛体要素の重量、U(G_n)は、番数nの剛体要素の重心の身体座標系BCでの位置ベクトル、ACC(G_n)は、番数nの剛体要素の重心の加速度、ΔU(G_n)は、番数nの剛体要素の重心の、G_全体に対する位置ベクトル、ΔACC(G_n)は、番数nの剛体要素の重心の、G_全体に対する相対加速度である。従って、式(40)の第2項のΣの演算は、各剛体要素の重心のG_全体に対する位置ベクトルΔU(G_n)と、該剛体要素の重心の全体重心G_全体に対する相対加速度ΔACC(G_n)とのベクトル積に該剛体要素の重量を乗算したもの(これは各剛体要素がその重心の並進加速度運動によってG_全体廻りに発生するモーメントである)のY軸成分を、全ての剛体要素について加算する演算である。補足すると、番数nの剛体要素の重心を通ってΔACC(G_n)と同方向の直線とG_全体とのXZ平面上での距離をr(G_n)、番数nの剛体要素の重心の並進運動をG_全体の廻りの回転運動とみなしたときの該剛体要素の重心のY軸廻りの角加速度をθ(G_n)とおいたとき、ΔU(G_n)とΔACC(G_n)とのベクトル積のY軸成分(=(ΔU(G_n)×ΔACC(G_n))y)は、r(G_n)2×θ(G_n)に等しい。
この場合、式(40)の第1項のΣの演算で必要なI_nは、あらかじめ演算処理装置18の図示しないメモリに記憶保持されている。また、θ''(n)yは、次のように求められる。すなわち、前記3次元関節・要素重心位置算出手段30で求めた脚体部S2の各関節要素の位置ベクトル(U(J_左股/BC)等)から、XZ平面(身体座標系BCの矢状面)上での各剛体要素の傾斜角度が逐次求められ、さらにその傾斜角度の2階微分値に、前記身体座標系加速度・角速度算出手段31で求めた身体座標系BCの原点BCOの角速度ω(BCO/BC)のY軸成分の1階微分値を加算することで、該剛体要素の角加速度のY軸成分θ''(n)yが求められる。
また、式(40)の第2のΣの演算で必要なΔU(G_n)は、前記3次元関節・要素重心位置算出手段30で求めた各剛体要素の重心の位置ベクトル(U(G_大腿部/BC)等)と、前記全体重心位置算出手段33で求めたG_全体の位置ベクトルU(G_全体/BC)とから、式(40)の但し書きの定義に従って求められる。さらに、ΔACC(G_n)は、3次元関節・要素重心位置算出手段30で求めた各剛体要素の重心の位置ベクトルの2階微分値U(G_n)''と、全体重心位置算出手段33で求めたG_全体の位置ベクトルの2階微分値U(G_全体)''とから、式(40)の但し書きの定義に従って求められる。
前記全床反力算出手段52には、前記身体座標系加速度・角速度算出手段31で求められた身体座標系BCの原点BCOの加速度ACC(BCO/BC)と、前記全体重心位置算出手段33で求められたG_全体の位置ベクトルU(G_全体/BC)とが入力される。
そして、全床反力算出手段52は、これらの入力値から、次式(41)の演算により、全床反力Frf(全体)のXZ平面上での成分ベクトルFrf(全体)x,z(Frf(全体)のX軸成分およびZ軸成分からなる2次元ベクトル)を求める。
Frf(全体)x,z=全体重量×(ACC(BCO/BC)+U(G_全体/BC)'')x,z
……(41)
すなわち、全床反力のY軸に垂直な成分ベクトルFrf(全体)x,zは、身体座標系BCの原点BCOの加速度ACC(BCO/BC)と、G_全体の位置ベクトルU(G_全体/BC)の2階微分値U(G_全体/BC)''とを加算してなるベクトル(これはG_全体の加速度を意味する)のXZ平面上での成分に、人間1の全体重量を乗算することで求められる。
次に、上記の如く求められた全角運動量変化率L'のY軸廻り成分L'yと、全床反力のXZ平面(矢状面)上での成分ベクトルFrf(全体)x,zとは、前記モーメントアーム長算出手段53に入力され、ここで、それらの入力値からモーメントアーム長が求められる。この場合、前記した如く、L'yの大きさは、全床反力のXZ平面上での成分ベクトルFrf(全体)x,zの大きさ(絶対値)にモーメントアーム長を乗算したものに一致する。そこで、モーメントアーム長算出手段53は、次式(42)によりモーメントアーム長rを求める。
r=L'y/|Frf(全体)x,z| ……(42)
なお、本実施形態では、上記式(42)により求められるモーメントアーム長rは、全角運動量変化率のY軸廻り成分L'yの向き(符号)に応じて正負の値を採る。この場合、本実施形態では、L'yが前記図11および図12に示す矢印の向きであるとき、L'yの値が正の値であるとした。従って、モーメントアーム長rが正の値であるか負の値であるかによって、Frf(全体)x,zがG_全体廻りに発生するモーメント(Y軸廻りのモーメント)の向きが定まるようになっている。
このように求められたモーメントアーム長rは、次に前記床反力方向決定手段54に入力される。該床反力方向決定手段54には、さらに接地センサ24,25の出力と、前記床反力作用点推定手段34で推定された床反力作用点COPの位置ベクトルU(COP/BC)とが入力される。そして、床反力方向決定手段54は、これらの入力値を使用して、次のように接地している各脚体2に作用する床反力の方向を決定する。
まず、接地センサ24,25の検出出力を基に、人間1の両脚支持状態であるか、単脚支持状態であるかが判断される。すなわち、一方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力し、且つ、他方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力している場合には両脚接地状態であると判断される。また、両脚体2,2のうちの一方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力しており、且つ、他方の脚体2の接地センサ24,25の両者が接地有りを示すON信号を出力していない場合には、単脚支持状態であると判断される。
そして、両脚支持状態であるときには、図12に示す如く、右脚体2に係る床反力Frf(右脚体)の向き(XZ平面上での向き)については、右脚体2の床反力作用点COPを通って、G_全体を中心とする半径r(より正確には|r|)の円に接する直線K(右)の身体座標系BCでの傾きα(右脚体)を該脚体2の床反力Frf(右脚体)の向き(XZ平面上での向き)を表すものとして決定する。この場合、モーメントアーム長rが正であるときには、直線K(右)は、半径rの円Ciの後方側の部分に接するものとする。つまり、直線K(右)を作用線として床反力Frf(右脚体)のXZ平面上での成分ベクトルFrf(右脚体)x,zが床反力作用点COPに作用したとき、それによって、G_全体廻りに発生するモーメントのY軸廻り成分の向きが全角運動量変化率のY軸廻り成分L'yの向きと同じなるように円Ciに接する直線K(右)の傾きα(右脚体)が決定される。左脚体2についても右脚体2の場合と同様に、該左脚体2の床反力Frf(左脚体)の向き(XZ平面上での向き)を表す直線K(左)の身体座標系BCでの傾きα(左脚体)が決定される。なお、本実施形態では、傾きαは、左右いずれの脚体2についても、直線Kの、X軸方向の単位変化量に対するZ軸方向の変化量の比の値である。
また、単脚支持状態であるときには、図11に示す如く、接地している脚体2(図の例では右脚体2)の床反力作用点COPからG_全体までのベクトル(COPに対するG_全体の位置ベクトル)のXZ平面上での成分ベクトル(身体座標系BCの矢状面で見た2次元ベクトル)をCGとおくと、このCGと、右脚体2の床反力作用点COPを通って、G_全体を中心とする半径r(より正確には|r|)の円に接する直線K(右)とのなす角度θaが、床反力Frf(右脚体)の向き(XZ平面上での向き)を表すものとして決定される。この場合、モーメントアーム長rが正であるときには、直線K(右)は、半径rの円Ciの後方側の部分に接するものとする。つまり、直線K(右)を作用線として床反力Frf(右脚体)のXZ平面上での成分ベクトルFrf(右脚体)x,zが床反力作用点COPに作用したとき、それによって、G_全体廻りに発生するモーメントのY軸廻り成分の向きが全角運動量変化率のY軸廻り成分の向きと同じなるようにベクトルCGに対する直線K(右)のXZ平面上での角度θaが決定される。
このような角度θaは、次式(43)により算出される。
θa=−sin−1(r/|CG|) ……(43)
この場合、ベクトルCGの絶対値は、前記床反力作用点推定手段34で求められた床反力作用点COPの位置ベクトルU(右COP/BC)と、前記全体重心位置算出手段33で求められたG_全体の位置ベクトルU(G_全体/BC)とから算出される。
左脚体2のみが接地する単脚支持状態においても、上記と同様に左脚体2の床反力作用点COPに対するG_全体の位置ベクトルのXZ平面上での成分CGと、左脚体2の床反力作用点COPを通って、G_全体を中心とする半径r(より正確には|r|)の円に接する直線K(左)とのなす角度θaが、床反力Frf(左脚体)の向き(XZ平面上での向き)を表すものとして決定される。
以上説明した床反力方向決定手段54の処理により、接地している各脚体2に作用する床反力FrfのXZ平面(身体座標系BCの矢状面)での成分ベクトルFrf(脚体)x,zの作用線が前記式(42)により決定したモーメントアーム長rを半径、G_全体を中心とする円Ciに接し、且つ、その作用線の方向のFrf(脚体)x,zがG_全体廻りに発生するモーメントが、角運動量変化率のY軸廻り成分L'yに一致するように、接地している各脚体2に作用する床反力Frfの向き(身体座標系BCの矢状面上での向き)が決定されることとなる。
次に、床反力方向決定手段54により決定された床反力の方向(両脚支持状態では傾きα、単脚支持状態では角度θa)は、前記床反力成分算出手段55に入力される。なお、床反力成分算出手段55には、前記全床反力算出手段52で求められた全床反力のXZ平面上での成分ベクトルFrf(全体)x,zも入力される。また、単脚支持状態では、床反力方向決定手段54から、その処理で求めたベクトルCGも入力される。さらに、各脚体2の床反力作用点COPの位置ベクトルおよびG_全体の位置ベクトルも入力される。
そして、床反力成分算出手段55は、それらの入力値から、接地している各脚体2に作用する床反力Frfの、身体座標系BCでの座標成分値を次のようにして求める。
まず、両脚支持状態である場合について説明する。両脚支持状態での各脚体2,2に作用する床反力(詳しくはそのX軸成分およびZ軸成分)は、次式(44)〜(47)の関係式に基づいて決定される。
Frf(右脚体)x+Frf(左脚体)x=Frf(全体)x ……(44)
Frf(右脚体)z+Frf(左脚体)z=Frf(全体)z ……(45)
Frf(右脚体)z=α(右脚体)×Frf(右脚体)x ……(46)
Frf(左脚体)z=α(左脚体)×Frf(左脚体)x ……(47)
式(44)、(45)は、各脚体2に作用する床反力の総和が全床反力に一致するということを表す式である。また、式(46)、(47)は、各脚体2に作用する床反力の方向によって、その床反力の成分値の比率が定まるということを示す式である。
そして、これらの式(44)〜(47)から、Frf(右脚体)x、Frf(右脚体)z、Frf(左脚体)x、Frf(左脚体)zがそれぞれ次式(48)〜(51)により求められる。
Frf(右脚体)x=(Frf(全体)z
−α(左脚体)×Frf(全体)x)/Δα ……(48)
Frf(右脚体)z=(α(右脚体)×Frf(全体)z
−α(右脚体)×α(左脚体)×Frf(全体)x)/Δα
……(49)
Frf(左脚体)x=(−Frf(全体)z
+α(右脚体)×Frf(全体)x)/Δα ……(50)
Frf(左脚体)z=(−α(左脚体)×Frf(全体)z
+α(右脚体)×α(左脚体)×Frf(全体)x)/Δα
……(51)
但し、Δα=α(右脚体)−α(左脚体)
従って、両脚支持状態であるときには、基本的には、上記式(48)〜(51)の右辺の演算によって、各脚体2に作用する床反力のX軸成分、Z軸成分、すなわち、Frf(脚体)x,zを算出することができる。
但し、両脚支持状態での両脚体2,2の足平部14,14の前後方向(X軸方向)の距離が短いときには、α(右脚体)およびα(左脚体)の値が互いに近い値となり(Δαが0に近い値となる)、前記式(48)〜(51)で求められる床反力の精度が低下する。
ここで、両脚支持状態での両足平部14,14のX軸方向での距離(以下、足平間前後距離という。図12を参照)が短いときには、両脚体2,2にそれぞれ作用する床反力がほぼ等しいと考えられる。また、それらの床反力の合力がG_全体廻りに発生するモーメントのY軸廻り成分の向きは、全角運動量変化率のY軸廻り成分L'yの向きに一致すべきである。そこで、本実施形態では、足平間前後距離が所定の第1閾値以下であるときには、次の式(52)により各脚体2に作用する床反力のX軸成分、Z軸成分を算出することとした。
式(52)の但し書き中のCavGは、左右の脚体2,2のそれぞれの床反力作用点COPを結ぶ線分の中点Cavから、G_全体までのベクトル(当該中点Cavに対するG_全体の位置ベクトル)のXZ平面上での成分ベクトルである。なお、Cavの身体座標系BCでの位置ベクトルは、左右の各床反力中心点COPの位置ベクトルの平均値(=(U(右COP)+U(左COP))/2)として算出される。また、θbは、ベクトルCavGと、XZ平面上で上記中点Cavを通って、G_全体を中心とする半径r(より正確には|r|)の円に接する直線とのなす角度であり、前記式(43)の右辺の「CG」を「CavG」で置き換えた式によって算出される。従って、式(52)のFrf_s(全体)x,zは、両脚体2の床反力作用点COPを結ぶ線分の中点CavからG_全体までのベクトルのXZ平面上での成分ベクトルと同じ向きを持ち、且つ、Frf(全体)x,zの大きさを持つベクトルを角度θbだけ当該中点の廻りにXZ平面(矢状面)上で回転させたベクトル(2次元ベクトル)である。このため、XZ平面上において、Frf_s(全体)x,zの作用線(XZ平面上で上記中点Cavを通ってベクトルFrf_s(全体)x,zと同方向の直線)は、G_全体を中心とする半径rの円Ciに接する。
従って、両脚支持状態で足平間前後距離が第1閾値以下であるときに前記式(52)により求められるFrf(右脚体)x,z,Frf(左脚体)x,zは、互いにその大きさ及び向きが等しく、且つ、その総和の大きさが全床反力Frf(全体)の大きさに等しいものとなる。また、足平間前後距離が第1閾値以下のときには、各脚体2の床反力作用点COPのXZ平面上での位置と、前記中点のXZ平面での位置とは、ほぼ等しいので、Frf(右脚体)x,z,Frf(左脚体)x,zのそれぞれの作用線(床反力中心点COPを通るXZ平面上での作用線)は、概ね、G_全体を中心とする半径rの円Ciに接するものとなる。
また、足平間前後距離が上記第1閾値よりも大きい所定の第2閾値以上であるときには、前記式(48)〜(51)により各脚体2に作用する床反力のX軸成分、Z軸成分を算出することとした。さらに、足平間前後距離が第1閾値と第2閾値との間の距離であるときには、式(48)〜(51)により求められる床反力のX軸成分、Z軸成分(以下、これらの成分の組から成るベクトルに参照符号Frf1x,zを付する)と、式(52)により求められる床反力のX軸成分、Z軸成分(以下、これらの成分の組から成るベクトルに参照符号Frf2x,zを付する)との重み付き平均値を、各脚体2に作用する床反力のX軸成分、Z軸成分として求めることとすると共に、その重み係数の値を足平間前後距離に応じて連続的に変化させるようにした。
従って、両脚支持状態において床反力成分算出手段55が最終的に求める、各脚体2の床反力のXZ平面上での成分ベクトルFrf(脚体)x,z(Frf(脚体)x,zの推定値の真値)は、次式(54)により求められる。
Frf(脚体)x,z=W×Frf1x,z+(1−W)×Frf2x,z ……(54)
ここで、Wは重み係数であり、その値は、図14に示す如く定められたデータテーブルあるいは演算式により、足平間前後距離に応じて決定される。この場合、足平間前後距離としては、例えば両脚体2,2のそれぞれの床反力作用点COPの、身体座標系BCでのX軸方向の距離、すなわち|U(右COP/BC)x−U(左COP/BC)x|が使用される。なお、足平間前後距離として、例えば両脚体2,2のそれぞれのMP関節のX軸方向距離や、足首関節のX軸方向距離を使用するようにしてもよい。補足すると、重み係数W、(1−W)は、本発明における重み係数W1、W2に相当するものである。
なお、両脚支持状態において、直線K(右)又は直線K(左)がZ軸にほぼ平行となる場合もあり、その場合には、傾きα(右脚体)またはα(左脚体)の全体値が無限大もしくは過大に大きなものとなる。そこで、本実施形態では、傾きαの絶対値があらかじめ定めた所定値を超えるような場合には、強制的にαの値をその所定値に制限するようにしている。
一方、単脚支持状態で接地している脚体2に作用する床反力(詳しくはそのX軸成分およびZ軸成分からなる2次元ベクトル)は、次式(55)により算出される。
すなわち、接地している脚体2に作用する床反力のXZ平面上での成分ベクトルFrf(脚体)x,zは、その脚体2の床反力作用点COPからG_全体に向かい、且つ、Frf(全体)x,zの大きさを持つベクトルを角度θaだけ床反力作用点COPの廻りにXZ平面(矢状面)上で回転させたベクトルとして求められる。このようにして求められるFrf(脚体)x,zは、その作用線がG_全体を中心とする半径rの円Ciに接することとなる。
なお、本実施形態では、両脚支持状態および単脚支持状態のいずれの場合にあっても、先に述べたように床反力のY軸成分は0とする。また、単脚支持状態で、接地していない脚体2に作用する床反力は0とされる。
以上のように床反力成分算出手段55の処理を行なうことで、両脚支持状態では、床反力の成分ベクトルFrf(右脚体)x,z、Frf(左脚体)x,zのそれぞれの作用線(XZ平面上で各脚体2の床反力作用点COPを通る作用線)がG_全体を中心とする半径r(モーメントアーム長)の円Ciに接すると共に、Frf(右脚体)x,z、Frf(左脚体)x,zのそれぞれが(ひいては、それらの総和が)G_全体の廻りに発生するモーメント(Y軸廻りのモーメント)の向きが全角運動量変化率のY軸廻り成分L'yの向きに一致するように、Frf(右脚体)x,z、Frf(左脚体)x,zのそれぞれの向きが決定される。そして、その上で、Frf(全体)x,zに、Frf(右脚体)x,z、Frf(左脚体)x,zの総和(=Frf(右脚体)x,z+Frf(左脚体)x,z)が一致するようにFrf(右脚体)x,z、Frf(左脚体)x,zの推定値(X軸成分の値とZ軸成分の値との組))が求められる。
また、単脚支持状態では、接地している脚体2の床反力の成分ベクトルFrf(脚体)x,z、の作用線(該脚体2の床反力作用点COPを通る作用線)がXZ平面上においてG_全体を中心とする半径r(モーメントアーム長)の円Ciに接すると共に、そのFrf(脚体)x,z、がG_全体の廻りに発生するモーメント(Y軸廻りのモーメント)の向きが全角運動量変化率のY軸廻り成分L'yの向きに一致するように、Frf(脚体)x,zの向きが決定される。そして、その上で、Frf(全体)x,zの大きさ(絶対値)に、Frf(脚体)x,zの大きさ(絶対値)が一致するように接地している脚体2に係るFrf(脚体)x,zが求められる。
その結果、両脚支持状態および単脚支持状態のいずれにおいても、身体座標系BCの矢状面上でのFrfの向き(Frf(脚体)x,zの向き)を安定させることができる。
なお、本実施形態では、床反力Frf(脚体)のY軸成分を0としたが、さらに全角運動量変化率のX軸廻り成分を考慮し、この全角運動量変化率のX軸廻り成分の向きと、接地して各脚体2の床反力のYZ平面上での成分ベクトルFrf(脚体)y,zの総和がG_全体の廻りに発生するモーメント(X軸廻りのモーメント)の向きとが一致するように、YZ平面上での床反力の成分ベクトルFrf(脚体)y,zの向きを決定するようにしてもよい。その向きの決定は、前記した場合と同様に、YZ平面上でのモーメントアーム長と、そのモーメントアーム長の半径を有する円を使用して行なえばよい。そして、Frf(脚体)y,zの向きを決定した上で、両脚支持状態では、各脚体2に作用する床反力のYZ平面上での成分ベクトルFrf(脚体)y,zの総和が全床反力のYZ平面上での成分ベクトルFrf(全体)y,zに一致するように各Frf(脚体)y,zの各座標成分値を求め、また、単脚支持状態では、接地している脚体2に作用する床反力のYZ平面上での成分ベクトルFrf(脚体)y,zの大きさが全床床反力のYZ平面上での成分ベクトルFrf(全体)y,zの大きさに一致するようにFrf(脚体)y,zの各座標成分値を求めるようにしてもよい。
以上が床反力推定手段35の演算処理である。なお、上記の如く求めた床反力の推定値からノイズ成分を除去するために、該推定値にフィルタリング処理を施したものを最終的に床反力の推定値として得るようにしてもよい。そのフィルタリング処理としては、例えば2次のバタワースフィルタ(ローパスフィルタ)を使用するフィルタリング処理が挙げられ、該バタワースフィルタの遮断周波数は、例えば3Hz程度が好適である。
上記のように床反力作用点推定手段34および床反力推定手段35の演算処理を行なった後、次に、演算処理装置18は、前記脚平面投影手段36の演算処理を実行する。この処理では、身体座標系加速度・角速度算出手段31で算出された身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)および角速度ベクトルω(BCO/BC)と、床反力推定手段35で算出された床反力Frf(右脚体/BC),Frf(左脚体/BC)と、床反力作用点推定手段34で算出された床反力作用点COPの位置ベクトルU(COP/BC)とが変換テンソル作成手段28で作成された変換テンソルR(LC→BC)の転置である変換テンソルR(BC→LC)(=R(LC→BC)T)を用いて各脚体部S2毎に、それに対応する脚平面PLに投影される。
具体的には、加速度ベクトルACC(BCO/BC)および角速度ベクトルω(BCO/BC)に次式(23a)、(23b)の如く、それぞれ変換テンソルR(BC→LC)を乗算することにより、各脚座標系LCから見た加速度ベクトルACC(BCO/LC)および角速度ベクトルω(BCO/LC)が求められる。
ACC(BCO/LC)=R(BC→LC)×ACC(BCO/BC) ……(23a)
ω(BCO/LC)=R(BC→LC)×ω(BCO/BC) ……(23b)
なお、加速度ベクトルACC(BCO/LC)および角速度ベクトルω(BCO/LC)は、それぞれ左脚体部S2に係わる脚座標系LCに対応するものと、右脚体部S2に係わる脚座標系LCに対応するものとが各別に求められる。
同様に、床反力Frf(右脚体/BC),Frf(左脚体/BC)に次式(23c)、(23d)の如く、それぞれ変換テンソルR(BC→右LC)、R(BC→左LC)を乗算することにより、各脚座標系LCから見た床反力Frf(右脚体/右LC),Frf(左脚体/右LC)が求められる。
Frf(右脚体/右LC)=R(BC→右LC)×Frf(右脚体/BC) ……(23c)
Frf(左脚体/左LC)=R(BC→左LC)×Frf(左脚体/BC) ……(23d)
さらに、接地している各脚体2に係わる床反力作用点COPの位置ベクトルU(COP/BC)に次式(23e)の如く、その接地している脚体2に対応する変換テンソルR(BC→LC)を乗算することにより、該脚体2に対応する脚座標系LCから見た床反力作用点COPの位置ベクトルU(COP/LC)が求められる。
U(COP/LC)=R(BC→LC)×U(COP/BC) ……(23e)
なお、位置ベクトルU(COP/LC)は、接地している脚体2が1つであれば、その脚体2に対応するもののみが求められ、両脚体2が接地しているときには、左右のそれぞれの脚体2毎に求められる。
ここで、加速度ベクトルACC(BCO/LC)、床反力Frf(右脚体/右LC),Frf(左脚体/左LC)および床反力作用点の位置ベクトルU(COP/LC)については、それぞれのX軸成分およびZ軸成分の組が、それぞれに対応する身体座標系BCでのベクトル(3次元量)を各脚平面PL(脚座標系LCのXZ平面)に投影してなる2次元量のベクトルとして得られる。例えば、図15を参照して、身体座標系BCでの右側脚体2に係わる床反力Frf(右脚体/BC)が図示の実線で示すようなベクトルであるとすると、床反力Frf(右脚体/右LC)のX軸成分およびZ軸成分の組は、同図に破線で示すような脚平面PL(右)上のベクトルとなる。
なお、脚平面PL上での脚体2の回転運動は、脚平面PLの法線方向(脚座標系LCのY軸方向)の軸廻りの回転運動であるから、角速度ベクトルω(BCO/BC)を脚平面PLに投影したものは、前記式(23b)により求められる脚座標系LCでの角速度ベクトルω(BCO/LC)のY軸成分である。
以下の説明では、加速度ベクトルACC(BCO/LC)、床反力Frf(右脚体/右LC),Frf(左脚体/左LC)および床反力作用点の位置ベクトルU(COP/LC)は、そのX軸成分およびZ軸成分の組から成る2次元ベクトルを意味するものとする。例えば加速度ベクトルACC(BCO/LC)は、(ACC(BCO/LC)x,ACC(BCO/LC)z)Tを意味する。なお、角速度ωについては、脚平面PL上での値はω(BCO/LC)yで表す。
次に、演算処理装置18は、関節モーメント推定手段35による演算処理を実行する。この関節モーメント推定手段35の演算処理の概略を説明すると、各脚体部S2の足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの並進運動および回転運動に関する運動方程式に基づく逆動力学モデルの演算によって、足平部要素S14、下腿部要素S12、および大腿部要素S10のそれぞれの腰部要素S6側の端点の関節要素J_足首、J_膝、J_股の関節モーメントが順番に算出される。この場合、逆動力学モデルは、各脚体部S2毎に、それに対応する脚平面PL(脚座標系LCのXZ平面)上で取扱われる。なお、この算出処理の基本的な考え方は、逆動力学モデルを取扱う平面及び座標系を除いて本願出願人が先に提案した特開2003−89083号公報等のものと同じである。
以下、具体的に説明すると、各脚体部S2の足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの脚平面PL上での並進運動の運動方程式は次の式(24)〜(26)により与えられる。なお、以下の説明において、一般的に、足平部要素S14、下腿部要素S12、および大腿部要素S10のそれぞれの剛体要素の両端のうち、腰部要素S6に近い側の一端部を「P_○○」、遠い側の他端部「D_○○」(○○は剛体要素を表す名称)というように表記することがある。例えば図16に示す如く、下腿部要素S12の膝関節J_膝(J11)側の端部を「P_下腿部」、足首関節J_足首(J13)側の端部を「D_下腿部」というように表記する。
F(P_足平部/LC)=m_足平部×(ACC(BCO/LC)+U(G_足平部/LC)'')
−Frf(脚体/LC) ……(24)
F(P_下腿部/LC)=m_下腿部×(ACC(BCO/LC)+U(G_下腿部/LC)'')
−F(D_下腿部/LC) ……(25)
F(P_大腿部/LC)=m_大腿部×(ACC(BCO/LC)+U(G_大腿部/LC)'')
−F(D_大腿部/LC) ……(26)
ここで、上記各式(24)〜(26)中に現れる2つのF(P_○○/BC)、F(D_○○/BC)は、その○○で表される名称の剛体要素の端部が、それに接触する物体から受ける反力(脚平面PL上での2次元並進力ベクトル)を意味している。このため、作用・反作用の法則によって、F(D_下腿部/BC)=−F(P_足平部/BC)、F(D_大腿部/BC)=−F(P_下腿部/BC)である。なお、足平部要素S14に係わる式(24)においては、該足平部要素S14の、腰部要素S6から遠い側の端部は、床反力作用点COPとみなされ、その端部(床反力作用点COP)に床から作用する反力として、前記脚平面投影手段36で求められた床反力Frf(脚体/LC)が用いられる。
また、U(G_足平部/LC)''、U(G_下腿部/LC)''、U(G_大腿部/LC)''は、それぞれ、前記2次元脚姿勢・要素重心位置算出手段29で先に算出された脚座標系LCでの重心G_足平部、G_下腿部、G_大腿部の位置ベクトル(より正確には、該位置ベクトルのX軸成分及びZ軸成分の組)の2階微分値、すなわち、脚平面PL上で見た重心G_足平部、G_下腿部、G_大腿部の、脚座標系LCの原点に対する相対加速度(2次元ベクトル)を意味している。この場合、脚座標系LCの原点(股関節J9の中心)の脚平面PL上での加速度ベクトルは、身体座標系BCの原点の加速度ベクトルACC(BCO/LC)とほぼ同一であるので、この加速度ベクトルACC(BCO/LC)に、U(G_足平部/LC)''、U(G_下腿部/LC)''、U(G_大腿部/LC)''を加算したものが、脚平面PL上での重心G_足平部、G_下腿部、G_大腿部の実際の加速度ベクトルを示すものとなる。
なお、図16には代表的に、下腿部要素S12に関する式(25)のパラメータの関係を例示している。
従って、脚平面投影手段36で求めた床反力Frf(脚体/LC)および加速度ベクトルACC(BCO/LC)と、前記2次元脚姿勢・要素重心位置算出手段29で求めた足平部要素S14の重心の位置ベクトルU(G_足平部/LC)の時系列データから得られる相対加速度ベクトルU(G_足平部/LC)''と、足平部要素S14の重量m_足平部とから式(24)の右辺の演算により、F(P_足平部/LC)、すなわち、足首関節J_足首に作用する並進力(脚平面PL上での2次元ベクトル)が求められる。また、その求めたF(P_足平部/LC)(=−F(D_下腿部/LC))と、脚平面投影手段36で求めた加速度ベクトルACC(BCO/LC)と、2次元脚姿勢・要素重心位置算出手段29で求めた下腿部要素S12の重心の位置ベクトルU(G_下腿部/LC)の時系列データから得られる相対加速度ベクトルU(G_下腿部/LC)''と、下腿部要素S12の重量m_下腿部とから式(25)の右辺の演算によりF(P_下腿部/LC)、すなわち、膝関節J_膝に作用する並進力(脚平面PL上での2次元ベクトル)が求められる。同様に、その求めたF(P_下腿部/LC)(=−F(D_大腿部/LC))等を用いて、式(26)の右辺の演算によりF(P_大腿部/LC)、すなわち、股関節J_股に作用する並進力(脚平面PL上での2次元ベクトル)が求められる。このように、関節要素J_足首、J_膝、J_股に作用する反力ベクトル(並進力ベクトル)が上記(24)〜(26)の運動方程式に基づいて順番に算出される。
次に、足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの回転運動(それぞれの重心を通って脚平面PLに垂直な軸廻りの回転運動)の運動方程式は次の式(27)〜(29)により与えられる。
M(P_足平部)=I_足平部×(ω(足平部)’+ω(BCO/LC)y’)
−(U(COP/LC)−U(G_足平部/LC))×Frf(脚体/LC)
−(U(P_足平部/LC)−U(G_足平部/LC))
×F(P_足平部/LC) ……(27)
M(P_下腿部)=I_下腿部×(ω(下腿部)’+ω(BCO/LC)y’)
−(U(D_下腿部/LC)−U(G_下腿部/LC))×F(D_下腿部/LC)
−(U(P_下腿部/LC)−U(G_下腿部/LC))
×F(P_下腿部/LC)
−M(D_下腿部) ……(28)
M(P_大腿部)=I_大腿部×(ω(大腿部)’+ω(BCO/LC)y’)
−(U(D_大腿部/LC)−U(G_大腿部/LC))×F(D_大腿部/LC)
−{(U(P_大腿部/LC)−U(G_大腿部/LC))
×F(P_大腿部/LC)
−M(D_大腿部) ……(29)
ここで、上記各式(26)〜(28)中に現れるM(P_○○)、M(D_○○)は、その○○で表される名称の剛体要素の端部が、それぞれに接触する物体から受ける反力モーメント(脚平面PLに垂直な軸廻り(脚座標系LCのY軸に平行な軸廻り)のモーメント)を意味している(図14参照)。このため、作用・反作用の法則によって、M(D_下腿部)=−M(P_足平部)、M(D_大腿部)=−M(P_下腿部)である。また、I_足平部、I_下腿部、I_大腿部は、それぞれ足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの重心廻りの慣性モーメントであり、これは、各剛体要素の重量などと同様、あらかじめ実測データ等に基づいて決定されて演算処理装置18のメモリに記憶保持されている。また、ω(足平部)’、ω(下腿部)’、ω(大腿部)’はそれぞれ、足平部要素S14、下腿部要素S12、大腿部要素S16の、脚座標系LCから見た相対角速度ω(足平部)、ω(下腿部)、ω(大腿部)(脚平面PLに垂直な軸廻りの相対角速度)の1階微分値、すなわち、相対角加速度を意味し、これらはそれぞれ、次式(29a)〜(29c)の如く、前記2次元脚姿勢・要素重心位置算出手段29で求めた足平部要素S14、下腿部要素S12、大腿部要素S10の傾斜角θ_足平部、θ_下腿部、θ_大腿部の2階微分値として与えられる。
ω(足平部)’=θ_足平部'' ……(29a)
ω(下腿部)’=θ_下腿部'' ……(29b)
ω(大腿部)’=θ_大腿部'' ……(29c)
そして、ω(BCO/LC)y’は、前記脚平面投影手段36で求めた身体座標系BCの原点BCOの実際の角速度ω(BCO/LC)yの1階微分値であり、この1階微分値ω(BCO/LC)y’にω(足平部)’、ω(下腿部)’、ω(大腿部)’をそれぞれ加算したものが、それぞれ足平部要素S14、下腿部要素S12、大腿部要素S14の実際の角加速度(脚平面PLに垂直な軸廻りの角加速度)を表すものとなる。
なお、図16には代表的に、下腿部要素S12に関する式(28)のパラメータの関係を例示している。
関節モーメント推定手段37では、最終的に上記式(27)〜(29)により、関節モーメントM(P_足平部)、M(P_下腿部)、M(P_大腿部)が順次求められる。すなわち、前記脚平面投影手段36で求めた床反力Frf(脚体/LC)およびU(COP/LC)と、該脚平面投影手段36で求めた角速度ω(BCO/LC)yの時系列データから把握される角加速度ω(BCO/LC)y’と、前記2次元脚姿勢・要素重心位置算出手段29で求めた傾斜角θ_足平部の時系列データから把握される相対角加速度ω(足平部)’(=θ_足平部'')と、該2次元脚姿勢・要素重心位置算出手段29で求めた位置ベクトルU(G_足平部/LC)およびU(P_足平部/LC)(=U(J_足首/LC)(より正確には、これらの位置ベクトルのX軸成分及びZ軸成分の組)と、前記式(24)により先に求めた反力F(P_足平部/LC)と、あらかじめ設定された慣性モーメントI_足平部とから、前記式(27)の右辺の演算により、関節モーメントM(P_足平部)、すなわち、足首関節13に作用する、脚平面PLに垂直な軸廻りのモーメントが求められる。
また、この求めた関節モーメントM(P_足平部)(=−M(D_下腿部))と、前記式(24),(25)により先に求めた反力F(P_足平部/LC)(=−F(D_下腿部/LC))およびF(P_下腿部/LC)と、脚平面投影手段36で求めた角速度ω(BCO/LC)yの時系列データから把握される角加速度ω(BCO/LC)y’と、前記2次元脚姿勢・要素重心位置算出手段29で求めた傾斜角θ_下腿部の時系列データから把握される相対角加速度ω(下腿部)’(=θ_下腿部'')と、該2次元脚姿勢・要素重心位置算出手段29で求めた位置ベクトルU(G_下腿部/LC)、U(P_下腿部/LC)(=U(J_膝/LC))、およびU(D_下腿部/LC)(=U(J_足首/LC))(より正確には、これらの位置ベクトルのX座標成分及びZ座標成分の組)と、あらかじめ設定された慣性モーメントI_下腿部とから、前記式(28)の右辺の演算により、関節モーメントM(P_下腿部)、すなわち、膝関節11に作用する、脚平面PLに垂直な軸廻りのモーメントが求められる。同様に、その求めたM(P_下腿部)(=−M(D_大腿部))等を用いて、式(28)の右辺の演算によりM(P_大腿部)、すなわち、股関節9に作用する、脚平面PLに垂直な軸廻りのモーメントが求められる。
なお、本実施形態では、各脚体部S2の各剛体要素の慣性モーメントI_足平部、I_下腿部、I_大腿部を考慮したが、これらは一般的には、十分に0に近い値である。このため、式(26)〜(28)の演算では、慣性モーメントI_足平部、I_下腿部、I_大腿部を含む項を省略してもよい。この場合には、足平部要素S14、下腿部要素S12および大腿部要素S10の角速度や角加速度を把握する必要はない。
以上のように、関節モーメント推定手段37の演算処理では、各脚体2の足首関節13、膝関節11、および股関節9の、脚平面PLに垂直な軸廻りの関節モーメントM(P_足平部)、M(P_下腿部)、M(P_大腿部)が足首関節13側から順番に算出される。なお、このように求められた関節モーメントは、例えば人間1の歩行を補助する装置(足首関節13や、膝関節11、股関節9に補助トルクを付与可能な電動モータを含む装置)の制御に用いられる。この場合、関節モーメントM(P_足平部)、M(P_下腿部)、M(P_大腿部)は、脚平面PLに垂直な軸廻りのモーメント、すなわち、脚体2の屈伸方向でのモーメントであるため、特に各脚体2の屈伸運動を補助するトルクを脚体2に適切に付与することが可能となる。
次に図17を参照して、本実施形態による床反力の推定値の実施例を説明する。図17は、両脚支持状態から単脚支持状態を経て両脚支持状態に至る1歩の期間において、接地状態に維持される脚体2に作用する床反力の、身体座標系BCでのX軸成分Frf(脚体)xとZ軸成分Frf(脚体)zとの推定値の経時変化の実測例を示すグラフである。なお、これらのグラフは、前述の通り床反力推定手段35により求められ床反力の推定値に例えば2次のバタワースフィルタを使用したフィルタリング処理を施したものである。
このグラフに見られるように、Frf(脚体)zは、滑らかで連続的な変化を呈すると共に、2つの極大値を持ち、人間1の歩行時に特有の、いわゆる二峰性が見られる。また、Frf(脚体)xは、Frf(脚体)zと同様に滑らかで連続的な変化を呈すると共に、人間1の歩行時の特有の現象として、その値が負の値となる減速期と正の値となる加速期とが順番に明確に現れている。このことから、本実施形態によれば、連続的で滑らかな変化を呈する床反力の推定値を良好に求めることができると共に、その求めた床反力の推定値の信頼性も高いものとすることができることがわかる。
なお、以上説明した実施形態では、脚平面PLに垂直な軸廻りの関節モーメントを求めるようにしたが、例えば身体座標系BCのY軸廻りの関節モーメントを求めるようにしてもよい。この場合には、床反力推定手段35で求めた、身体座標系BCのXZ平面上での床反力の成分ベクトルを用いて、逆動力学演算によって関節モーメントを推定するようにすればよい。
また、前記実施形態では、足首関節J13を備える剛体リンクモデルS1を用いたが、足首関節J13を省略した剛体リンクモデル(足首関節が固定されているような剛体リンクモデル)を用いて、床反力の推定などを行なうようにすることも可能である。この場合には、足首関節13の関節変位センサ23を省略してよい。
また、前記実施形態では、2足歩行移動体として、人間1を例に採った場合を説明したが、例えば人間1の歩行補助を行なうために該人間1の脚体2などに装着される装具(脚体2と同じような運動を行なうことが可能な装具)を2足歩行移動体とみなし、その装具の単独の床反力を前記実施形態と同様に推定することも可能である。さらに、その推定値を、移動体がスムーズに移動可能なように床反力の目標値として利用することも可能である。
1…人間(2足歩行移動体)、2…脚体、9…股関節、11…膝関節、13…足首関節、21〜23…関節変位センサ、16…加速度センサ、17…ジャイロセンサ(角速度センサ)、33…全体重心位置算出手段、34…床反力作用点推定手段、35…床反力推定手段、S1…剛体リンクモデル、JU1,JU2,J9,J11,J13…関節要素、S8,S7,S6,S10,S12,S14…剛体要素、G_全体…全体重心(2足歩行移動体の重心)、Frf…床反力、COP…床反力作用点。