本発明の実施形態を図1〜図10を参照して説明する。図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の各関節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,11,13の3軸回りの回転角であり、その検出は、ポテンショメータ等を用いて行われる。
また、各脚体2の足平部14の底面(詳しくは足平部14に装着した靴の底面)には、2つの接地センサ24,25が設けられている。接地センサ24,25のうち、接地センサ24は足首関節13の直下の箇所(踵)に設けられ、接地センサ25は足平部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の傾き角(矢状面での傾き角)を検出する検出手段の構成要素である。これらの光ファイバ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の剛体リンクモデルと座標系について説明しておく。図3はその剛体リンクモデル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を介して連結し、足平部14に対応する剛体要素S14を足首関節13に対応する関節要素J13を介して連結してなる連結体として構成されている。以下、剛体要素S10,S12,S14をそれぞれ大腿部要素S10、下腿部要素S12、足平部要素S14と称し、関節要素J11,J13をそれぞれ単に膝関節J11、足首関節J13と称することがある。
この場合、大腿部要素S10および下腿部要素S12は、それぞれの両端の関節要素の間でそれらの中心を結ぶ線分方向に延在している。また、足平要素S14の先端は、人間1の足平部14の中足趾節関節14a(以下、MP関節14aという)に対応しており、図1に示す如く、足首関節13(J13)から足平部14の中足趾節関節14a(以下、MP関節14aという)まで延在している。剛体リンクモデルS1では、足平要素S14の先端は関節としての機能を持つものではないが、以下、便宜上、その先端をMP関節J14aと称することがある。
以上の如く構成された剛体リンクモデルS1の各剛体要素及び各関節要素は、各関節要素の回転運動によって、その相互の位置関係および姿勢関係(向きの関係)が各剛体要素および各関節要素に対応する人間1の各部の相互の位置関係および姿勢関係とほぼ同一になるように運動可能とされている。この場合、上体下部関節JU1及び上体上部関節JU2は、それぞれ3軸回りの回転が可能とされており、その中の1軸を計測軸として、その計測軸回りの回転(図3中に各関節要素JU1,JU2に対応して記載した矢印(回転方向を表す矢印))を計測するようにしている。その計測軸は、本実施形態では、前記一対の股関節J9,J9の中心を結ぶ線分(腰部要素S6の部分S6aの延在方向)と平行な軸である。また、各脚体部S2の股関節J9、膝関節J11、および足首関節J13はそれぞれ、左側の脚体部S2の各関節要素J9,J11,J13に関して代表的に図3中に記載した矢印(回転方向を表す矢印)で示す如く3軸回りの回転が可能とされている。
また、剛体リンクモデルS1では、その各剛体要素の重量および長さ(軸心方向の長さ)、各剛体要素の重心の位置(各剛体要素での位置)とがあらかじめ定められて、演算処理装置18の図示しないメモリに記憶保持されている。図3の黒点G8,G7,G6,G10,G12,G14はそれぞれ胸部要素S8、腹部要素S7、腰部要素S6、大腿部要素S10、下腿部要素S12、足平部要素S14の重心を例示的に示している。なお、腰部要素S6は前記したように逆T字形であるので、その長さについては、前記部分S6aの長さと部分S6bの長さとがある。
各剛体要素の重量、長さ、重心の位置は、基本的にはそれぞれの剛体要素に対応する人間1の剛体相当部の重量、長さ、重心の位置とほぼ同一に設定されている。例えば、大腿部要素S10の重量、長さ、重心の位置は、それぞれ人間1の大腿部10の実際の重量、長さ、重心の位置とほぼ同一である。但し、重量および重心の位置は、人間1に本実施形態の装置を装備した状態での重量および重心の位置である。また、胸部要素S8の重量および重心の位置は、人間1の胸部8と両腕体4,4と頭部5とを合わせたものの重量および重心の位置である。補足すると、人間1の移動時の両腕体4,4の運動(腕を前後に振る動作)に伴う胸部要素S8の重心の位置変化は比較的小さく、該胸部要素S8のほぼ一定の位置に維持される。また、各剛体要素の重心の位置は、各剛体要素にあらかじめ固定して設定された後述の要素座標系での位置ベクトルとして、該要素座標系の各座標成分値で設定されている。
各剛体要素の重量、長さ、重心の位置は、基本的には、人間1の各部の寸法や重量の実測値に基づいて定めればよいが、人間1の身長や体重から、人間の平均的な統計データに基づいて推定するようにしてもよい。一般に、各剛体要素に対応する人間1の剛体相当部の重心の位置や重量、長さは、人間の身長や体重(全体重量)と相関性があり、その相関関係に基づいて人間1の身長および体重の実測データから各剛体要素に対応する人間1の剛体相当部の重心の位置や重量、長さを比較的精度よく推定することが可能である。
なお、図3では、便宜上、各重心G8,G7,G6,G10,G12,G14は、それぞれに対応する剛体要素の軸心上に位置するように記載しているが、必ずしもその軸心上に位置するとは限らず、その軸心からずれた位置に存在してもよい。
本実施形態では、剛体リンクモデルS1に対して、次のような座標系があらかじめ設定されている。すなわち、図3に示す如く身体座標系BCが腰部要素S6に固定して設定されている。この身体座標系BCは、一対の股関節J11,J11の中心を結ぶ線分の中点(腰部要素S6の部分S6aの中央点)を原点とし、その線分の方向をY軸、原点から上体下部関節JU1の中心に向かう方向をZ軸、これらのY軸およびZ軸に直交する方向をX軸とする3次元座標系(XYZ座標系)として設定されている。人間1の前記基準姿勢状態では、身体座標系BCのX軸、Y軸、Z軸はそれぞれ人間1の前後方向、左右方向、上下方向(鉛直方向)に向き、XY平面は水平面である。
また、各剛体要素には、例えば参照符号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からより遠い側の関節要素の中心点を原点としている。また、上体部SUの腹部要素S7および胸部要素S8のそれぞれの要素座標系C7,C8は、腹部要素S7および胸部要素S8のそれぞれの両端の関節要素のうち、腰部要素S6により近い側の関節要素の中心点を原点としている。なお、図3では、要素座標系C10,C12,C14は図示の便宜上、右側脚体部S2についてのみ図示しているが、左側脚体部S2についても右側脚体部M2と同様に要素座標系が設定されている。
また、要素座標系C8,C7は、それぞれ胸部要素S8、腹部要素S7の延在方向(軸心方向)にZ軸が設定されると共に、Y軸が身体座標系BCのY軸と同一方向に設定されている。また、要素座標系C10,C12,C14はそれぞれ大腿部要素S10、下腿部要素S12、足平部要素S14の延在方向(軸心方向)にZ軸が設定されると共に、Y軸が股関節J9、膝関節J11及び足首関節J13のそれぞれの中心点を含む平面(以下、脚平面ということがある)の法線方向に設定されている。上記のいずれの要素座標系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は、必ずしも上記の如く設定する必要はなく、基本的にはその原点や各軸の向きの設定は任意でよい。
図4は前記演算処理装置18の演算処理機能を示すブロック図である。同図に示すように、演算処理装置18は、前記各関節変位センサ21,22,23および発光/受光器19の検出出力を基に後述する座標変換のための変換テンソルを作成する変換テンソル作成手段28と、その変換テンソルを用いて前記剛体リンクモデルS1の各関節要素および各剛体要素の重心の身体座標系BCでの位置ベクトルの値(座標成分値)を求める関節・要素重心位置算出手段29と、前記加速度センサ16及びジャイロセンサ17の検出出力を基に身体座標系BCの原点の加速度ベクトル(並進加速度)の値(身体座標系BCでの座標成分値)を求める身体座標系加速度算出手段30と、前記加速度センサ16及びジャイロセンサ17の検出出力を基に身体座標系BCの鉛直方向に対する傾斜角を算出する身体座標系傾斜角算出手段31とを備えている。
さらに演算処理装置18は、関節・要素重心位置算出手段29が求めた各剛体要素の重心の位置ベクトルの値を用いて身体座標系BCでの剛体リンクモデルS1の全体重心(人間1の全体重心)の位置ベクトルの値を求めると共に、その位置ベクトルの値の時系列データと身体座標系加速度算出手段30が求めた身体座標系BCの原点の加速度ベクトルの値とを用いて該全体重心の加速度ベクトル(並進加速度)の値(身体座標系BCでの座標成分値)を求める全体/要素重心運動算出手段32を備えている。なお、全体/要素重心運動演算算出手段32では、関節・要素重心位置算出手段29が求めた各大腿部要素S10、下腿部要素S12および足平部要素S12のそれぞれの重心の位置ベクトルの値の時系列データと身体座標系加速度算出手段30が求めた身体座標系BCの原点の加速度ベクトルの値とを用いて各大腿部要素S10、下腿部要素S12および足平部要素S14の重心の加速度ベクトル(並進加速度)の値(身体座標系BCでの座標成分値)も求められる。
また、演算処理装置18は、関節・要素重心位置算出手段29が求めた各足首関節J13の位置ベクトルの値と全体/要素重心運動算出手段32が求めた全体重心の位置ベクトルの値およびその加速度ベクトルの値と前記接地センサ24,25の検出出力とを用いて人間1の各脚体2,2に作用する床反力ベクトル(並進床反力)の身体座標系BCでの値(座標成分値)を推定する床反力推定手段33と、関節・要素重心位置算出手段29が求めた各足首関節J13および各MP関節J14aの位置ベクトルの値と身体座標系傾斜角算出手段31が求めた身体座標系BCの傾斜角と全体/要素重心運動算出手段32が求めた全体重心の位置ベクトルの値と接地センサ24,25の検出出力とを用いて各脚体2に作用する床反力ベクトルの作用点(以下、単に床反力作用点という)の位置ベクトルの身体座標系BCでの値を求める床反力作用点推定手段34とを備える。
そして、演算処理装置18は、変換テンソル作成手段28が作成した変換テンソルと全体/要素重心運動算出手段30が求めた各大腿部要素S10、下腿部要素S12、足平部要素S14のそれぞれの重心の加速度ベクトルと床反力推定手段33が求めた床反力ベクトルの値と床反力作用点推定手段34が求めた床反力作用点の位置ベクトルの値とを用いて各脚体2の足首関節13、膝関節11および股関節9に作用する関節モーメントを推定する関節モーメント推定手段35を備えている。
詳細は後述するが、演算処理装置18は、上記各手段28〜35の演算処理を所定の演算処理周期で逐次実行し、各演算処理周期において最終的に関節モーメント推定手段35により関節モーメントの推定値を逐次算出する。
次に演算処理装置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というように表記する。
また、前記各要素座標系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および関節・要素重心位置算出手段29の演算処理を順次実行する。
変換テンソル作成手段28の演算処理では、各要素座標系と身体座標系BCとの間のベクトル量の座標変換を行うための変換テンソルが作成される。この変換テンソルは、次の手順で作成される。まず、各関節変位センサ21,22,23の検出出力を基に、それぞれ各脚体2の股関節9、膝関節11および足首関節13のそれぞれの回転角(3軸回りの回転角)が剛体リンクモデルS1の各股関節J9、膝関節J11および足首関節J13の回転角として把握されると共に、発光/受光器19の検出出力を基に、剛体リンクモデルS1の腰部要素M6に対する腹部要素S7と胸部要素S8の傾斜角(詳しくは腰部要素座標系C6のZ軸方向に対する矢状面(XZ平面)上での傾斜角)が把握される。そして、これらの把握された回転角および傾斜角を用いて、剛体要素の要素座標系の間でベクトル量の座標変換を行うための変換テンソルが作成される。この要素座標系間変換テンソルは、本実施形態では、足平部座標系C14から下腿部座標系C12への変換テンソルR(C_足平部→C_下腿部)と、下腿部座標系C12から大腿部座標系C10への変換テンソルR(C_下腿部→C_大腿部)と、大腿部座標系C10から腰部座標系C6への変換テンソルR(C_大腿部→C_腰部)と、腹部座標系C7から腰部座標系C6への変換テンソルR(C_腹部→C_腰部)と、胸部座標系C8から腰部座標系C6への変換テンソルR(C_胸部→C_腰部)とから構成される。なお、R(C_足平部→C_下腿部),R(C_下腿部→C_大腿部)、R(C_大腿部→C_腰部)は、左右の脚体部S2毎に各別に作成される。
ここで作成される要素座標系間変換テンソルの一例を示すと、例えば図5に示すように膝関節11の関節変位センサ22の検出出力から把握される膝関節11の回転角(膝関節J11の回転角)が、大腿部座標系C10のY軸(図5の紙面に垂直な軸)回りにθyであるとする。但し、この例では要素座標系C10のX軸回り、Z軸回りの膝関節11の回転角は0であるとする。また、膝関節11のY軸回り回転角は、脚体2が伸びる方向を正方向としており、図示の例ではθy<0である。このとき、変換テンソルR(C_下腿部→C_大腿部)は、次式(1)の如く3次の行列で表される。
なお、図5の例では、膝関節11の1軸回り(Y軸回り)の回転のみを想定したため、変換テンソルR(C_下腿部→C_大腿部)は式(1)のような簡単な行列で表されるが、一般にはより複雑な形式になる。
また、例えば変換テンソルR(C_腹部→C_腰部)は、腰部6に対する腹部7の傾斜角をθy(但し傾斜角θyは人間1の前方側への傾斜方向を正方向とする)とおくと、前記式(1)の右辺の行例と同じ形の行列で表される。変換テンソルR(C_胸部→C_腰部)も同様である。補足すると、本実施形態では、剛体リンクモデルS1の上体下部関節JU1および上体上部関節JU2を1軸回り(C_腹部およびC_胸部のY軸回り)の回転による腹部要素S7および胸部要素S8の腰部要素S6に対する傾斜角を計測するようにしたため、変換テンソルR(C_腹部→C_腰部)およびR(C_胸部→C_腰部)は常に前記式(1)の右辺の行例と同じ形の行列で表される。但し、上体下部関節JU1および上体上部関節JU2をそれぞれ例えば2軸回り(例えばC_腹部およびC_胸部のY軸とX軸との2軸回り)の回転が可能なものとして、腹部要素M7および胸部要素M8の2軸回りの傾斜角を計測するようにしてもよい。
次いで、上記の如く求めた要素座標系間変換テンソルから、各要素座標系で記述された(各要素座標系の座標成分値で記述された)ベクトル量を身体座標系BCに座標変換する(ベクトル量を身体座標系BCの座標成分値での記述に変換する)ための変換テンソルが求められる。
この場合、本実施形態では腰部座標系C6(C_腰部)は身体座標系BCに等しいものとしたので、C_腰部から身体座標系BCへの変換テンソルR(C_腰部→BC)は3次の単位行列で表される。また、腹部座標系C7(C_腹部)および胸部座標系C8(C_胸部)のそれぞれから身体座標系BCへの変換テンソルR(C_腹部→BC),R(C_胸部→BC)は、それぞれ先に求めた要素座標系間変換テンソルR(C_腹部→C_腰部),R(C_胸部→C_腰部)と同一である。そして、他の要素座標系C10(C_大腿部),C12(C_下腿部),C14(C_足平部)から身体座標系BCへの変換テンソルは、次式(2a)〜(2c)の如く、腰部要素S6寄りのものから順番に決定される。
R(C_大腿部→BC)=R(C_腰部→BC)×R(C_大腿部→C_腰部) ……(2a)
R(C_下腿部→BC)=R(C_大腿部→BC)×R(C_下腿部→C_大腿部)
……(2b)
R(C_足平部→BC)=R(C_下腿部→BC)×R(C_足平部→C_下腿部)
……(2c)
なお、R(C_大腿部→BC),R(C_下腿部→BC),R(C_足平部→BC)は、各脚体部S2毎に各別に求められる。補足すると、各要素座標系から身体座標系BCへの変換テンソルを転置したものが逆変換(身体座標系BCから該要素座標系への座標変換)を行うための変換テンソルとなる。例えばR(BC→C_大腿部)=R(C_大腿部→BC)T(Tは転置を意味する)である。
上記変換テンソル作成手段28の演算処理に続く関節・重心位置算出手段29の演算処理では、上記の如く求めた変換テンソルと、あらかじめメモリに記憶された各剛体要素の長さおよび重心位置(各要素座標系での位置)とから各関節要素および各剛体要素の重心の身体座標系BCでの位置ベクトルが求められる。なお、ここで位置ベクトルを求める関節要素には前記MP関節J14aが含まれる。
各関節要素の位置ベクトルの算出は次のように行われる。例えば左側脚体部S2の各関節要素J9,J11,J13の位置ベクトルの算出について説明する。腰部要素S6の、両股関節J9,J9間の部分S6a長さをL6aとおくと、C_腰部における左側股関節J6の位置ベクトルU(J_左股/C_腰部)は、(0,L6a/2,0)Tである。従って、身体座標系BCにおける左側股関節J9の位置ベクトルU(J_左股/BC)は、次式(3)により求められる。
U(J_左股/BC)=R(C_腰部→BC)×U(J_左股/C_腰部)
=R(C_腰部→BC)×(0,L6a/2,0)T ……(3)
さらに、左側大腿部要素S10の長さをL10とおくと、左側大腿部座標系C10(C_左大腿部)における左側股関節J9の位置ベクトルU(J_左股/C_左大腿部)は、(0,0,L10)Tであるから、身体座標系BCにおける左側膝関節J11の位置ベクトルU(J_左膝/BC)は、次式(4)により求められる。
U(J_左膝/BC)=U(J_左股/BC)
+R(C_左大腿部→BC)×(−U(J_左股/C_左大腿部))
=U(J_左股/BC)
+R(C_左大腿部→BC)×(0,0,−L10)T
……(4)
以下同様にして、左側足首関節J13、左側MP関節J14aの身体座標系BCでの位置ベクトルU(J_左足首/BC)、U(J_左MP/BC)がそれぞれ次式(5),(6)により順番に算出される。
U(J_左足首/BC)=U(J_左膝/BC)
+R(C_下腿→BC)×(−U(J_左膝/C_左下腿部))
=U(J_左膝/BC)
+R(C_下腿→BC)×(0,0,−L12)T ……(5)
U(J_左MP/BC)=U(J_左足首/BC)
+R(C_左足平部→BC)×(−U(J_左足首/C_左足平部))
=U(J_左足首/BC)
+R(C_左足平部→BC)×(0,0,−L14)T ……(6)
なお、式(5)のL12、式(6)のL14はそれぞれ左側下腿部要素S12、左側足平部要素S14の長さである。右側脚体部S2の各関節要素の位置ベクトルも上記と同様に求められる。
さらに、上体部SUの各関節要素の位置ベクトルも上記と同様に求められる。すなわち、上体下部関節JU1および上体上部関節JU2の身体座標系BCでの位置ベクトルは、それぞれ次式(7),(8)により順番に求められる。
U(JU1/BC)=R(C_腰部→BC)・U(JU1/C_腰部)
=R(C_腰部→BC)・(0,0,L6b)T ……(7)
U(JU2/BC)=U(JU1/BC)+R(C_腹部→BC)・U(JU2/C_腹部)
=U(JU1/BC)+R(C_腹部→BC)・(0,0,L7)T ……(8)
なお、式(7)のL6bは、腰部要素S6の部分S6bの長さである。また、式(8)のL7は腹部要素S7の長さである。
また、各剛体要素の重心の、身体座標系BCでの位置ベクトルの算出は次のように行われる。すなわち、腰部要素S6、大腿部要素S10、下腿部要素S12、足平部要素S14のそれぞれの重心の身体座標系BCでの位置ベクトルU(G_腰部/BC),U(G_大腿部/BC),U(G_下腿部/BC),U(G_足平部/BC)は、それぞれ前記式(3)〜(6)の右辺のU(J_左股/C_腰部)、U(J_左股/C_左大腿部)、U(J_左膝/C_左下腿部)、U(J_左足首/C_左足平部)を、それぞれ各要素座標系であらかじめ設定されている各剛体要素の重心の位置ベクトルU(G_腰部/C_腰部)、U(G_大腿部/C_大腿部)、U(G_下腿部/C_下腿部)、U(G_足平部/C_足平部)で置き換えた式を演算することで求められる。なお、G_大腿部,G_下腿部,G_足平部の位置ベクトルの算出は、各脚体部S2毎に各別に行われる。
また、腹部要素S7、胸部要素S8のそれぞれの重心G7,G8の身体座標系BCでの位置ベクトルU(G_腹部/BC),U(G_胸部/BC)は、それぞれ次式(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)
以上が変換テンソル作成手段28および関節・要素重心位置算出手段29の演算処理である。なお、以上のように関節・要素重心位置算出手段29で算出される各関節要素と各剛体要素の重心との位置ベクトルは、それぞれに対応する人間1の実際の部位の、身体座標系BCで見た位置ベクトルとしての意味を持つ。
演算処理装置18は、上記した変換テンソル作成手段28および関節・要素重心位置算出手段29の演算処理と並行して、身体座標系加速度算出手段30および身体座標系傾斜角算出手段31の演算処理を実行する。
身体座標系加速度算出手段30の演算処理では、加速度センサ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の各軸に対する傾き角)から前記した要素座標系間変換テンソル(R(C_大腿部→C_腰部)等)と同様に求められる。例えば、センサ座標系SCの3軸(XYZ軸)が図6に示す如く身体座標系BCのY軸(図6の紙面に垂直な軸)回りに角度θyだけ傾いている場合には、変換テンソルR(SC→BC)は前記式(1)の右辺と同じ形の行列で表される。この場合、加速度センサ16およびジャイロセンサ17は身体座標系BCを設けた腰部8に固定されているので、センサ座標系SCの各軸の身体座標系BCの各軸に対する傾き角は、加速度センサ16およびジャイロセンサ17の腰部8への取り付け時に実測されて判明しており、その傾き角を基にあらかじめ変換テンソルR(SC→BC)が求められて、演算処理装置18の図示しないメモリに記憶保持されている。補足すると、加速度センサ16やジャイロセンサ17を腰部6以外の部位(剛体リンクモデルS1のいずれかの剛体要素に対応する剛体相当部)に装着してもよい。この場合には、加速度ベクトルACC(センサ/BC)および角速度ベクトルω(センサ/BC)は、センサ座標系SCでの検出値を加速度センサ16やジャイロセンサ17を装着した剛体要素の要素座標系での値に変換した後、さらに前記変換テンソル作成手段28で求めた変換テンソルによって身体座標系BCでの値に変換すればよい。
身体座標系加速度算出手段30の演算処理では、上記の如く加速度ベクトル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)に等しい。
なお、加速度センサ16は重力に伴う加速度も検出するので、上記のように求められた加速度ベクトルACC(BCO/BC)には、重力による慣性加速度成分が含まれる。また、本実施系形態では、腰部要素S6の角速度を考慮して身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)を求めるようにしたが、腰部要素S6の角速度やその変化率は比較的小さいので、前記式(11)で求めたACC(センサ/BC)をそのまま身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)としてもよい。
また、前記身体座標系傾斜角算出手段31の演算処理では、加速度センサ16およびジャイロセンサ17の検出出力から所謂カルマンフィルタによって鉛直方向(重力方向)に対する腰部要素S6の傾斜角(身体座標系BCのZ軸の傾斜角)が算出される。この算出手法は公知であるのでここでの説明は省略する。なお、ここで算出される傾斜角は、前後方向の水平軸と左右方向の水平軸との2軸回りの傾斜角である。
次に、演算処理装置18は、全体/要素重心運動算出手段30の演算処理を実行する。この全体/要素重心運動算出手段30の演算処理では、まず、前記関節・要素重心位置算出手段29によって求められた各剛体要素の重心位置(身体座標系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の全体重量(=全ての剛体要素の重量の総和)で除算することで求められる。
全体/要素重心運動算出手段30の演算処理では、さらに、上記のように求めた全体重心の位置ベクトルU(G_全体/BC)の時系列データ(演算処理装置18の演算処理周期毎のU(G_全体/BC)の時系列値)から、U(G_全体/BC)の2階微分値U(G_全体/BC)''が算出される。この2階微分値U(G_全体/BC)''は、身体座標系BCの原点BCOに対する全体重心G_全体の相対的な加速度を意味している。そして、この2階微分値U(G_全体/BC)''、すなわち、身体座標系BCの原点BCOに対するG_全体の相対加速度を、前記身体座標系加速度算出手段30で先に求めた身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)に加算することにより、G_全体の実際の加速度ベクトルACC(G_全体/BC)が算出される。すなわち、次式(15)により、ACC(G_全体/BC)が算出される。
ACC(G_全体/BC)=ACC(BCO/BC)+U(G_全体/BC)'' ……(15)
さらに、全体/要素重心運動算出手段30の演算処理では、関節・要素重心位置算出手段29で先に求めた各脚体部S2の大腿部要素S10、下腿部要素S12、および足平部要素S14のそれぞれの重心の位置ベクトル(身体座標系BCでの位置ベクトル)の時系列データ(演算処理装置18の演算処理周期毎の時系列値)から、それぞれの重心の位置ベクトルの2階微分値、すなわち、身体座標系BCの原点BCOに対する各剛体要素の重心の相対加速度が算出される。そして、この各剛体要素の重心の相対加速度を、前記身体座標系加速度算出手段30で先に求めた身体座標系BCの原点BCOの加速度ベクトルACC(BCO/BC)に加算することにより、各剛体要素の重心の実際の加速度ベクトルが算出される。例えば、各大腿部要素S10の重心G_大腿部(G10)の加速度ベクトルACC(G_大腿部/BC)は、前記式(15)と同様、G_大腿部の位置ベクトルU(G_大腿部/BC)の2階微分値U(G_大腿部/BC)''にACC(BCO/BC)を加算することで算出される。下腿部要素S12、足平部要素S14についても同様である。
次に、演算処理装置18は、前記床反力推定手段33および床反力作用点推定手段34の算出処理を実行する。床反力推定手段33の演算処理では、まず、接地センサ24,25の検出出力に基づき、人間1の運動状態が両脚体2,2が接地する両脚支持状態であるか、一方の脚体2のみが接地する単脚支持状態であるかが判断される。すなわち、一方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力し、且つ、他方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力している場合には両脚接地状態であると判断される。また、両脚体2,2のうちの一方の脚体2の接地センサ24,25のいずれかが接地有りを示すON信号を出力しており、且つ、他方の脚体2の接地センサ24,25の両者が接地有りを示すON信号を出力していない場合には、単脚支持状態であると判断される。そして、床反力推定手段31の処理では、両脚支持状態であるか単脚支持状態であるかに応じて、各別の演算処理により各脚体2に作用する床反力ベクトルを推定する。
この床反力ベクトルの推定処理の基本的な考え方は、本願出願人が先に提案した特開2003−89083号公報等のものと同じであるが、本実施形態では、主に、その推定処理に用いる座標系等が同公報等に記載した手法と相違している。以下に図7および図8(a),(b)を参照して説明する。図7は矢状面で見た人間1の単脚支持状態を例示しており、図8(a),(b)はそれぞれ矢状面、前額面で見た人間1の両脚支持状態を例示している。なお、これらの図7及び図8では人間1は剛体リンクモデル状に模式化して示している。図7に示すように、人間1の運動状態が単脚支持状態であるときには、接地している脚体2(ここでは例えば右側脚体2であるとする)に作用する床反力ベクトルFrf(右脚体/BC)、すなわち、接地している右側脚体2に作用する床反力ベクトルを身体座標系BCの座標成分値で表したものが、全体重心G_全体の、身体座標系BCでの並進運動に関する運動方程式を表す次式(16)により算出される。
Frf(右脚体/BC)=全体重量×ACC(G_全体/BC) ……(16)
すなわち、前記全体/要素重心運動算出手段30で算出されたG_全体の加速度ベクトルACC(G_全体/BC)と人間1の全体重量(剛体リンクモデルS1の全体重量)とから式(16)により床反力ベクトルFrf(右脚体/BC)が算出される。左側脚体2が接地している場合でも、単脚支持状態では同様に、式(16)の右辺の演算によって、床反力ベクトルFrf(左脚体/BC)が算出される。この場合、前述したようにACC(G_全体/BC)には、重力による慣性加速度成分が含まれ、また、床反力ベクトルFrfを身体座標系BCで表すので、重力加速度やその方向を考慮する必要はない。なお、接地していない側の脚体2に作用する床反力ベクトルFrfは0である。また、図7では、図示の便宜上、身体座標系BCのZ軸を鉛直方向に記載しているが、式(16)は身体座標系BCの傾きにはよらない。
一方、図8(a),(b)に示すように、両脚支持状態であるときには、右側脚体2に作用する床反力ベクトルFrf(右脚体/BC)と左側脚体2に作用する床反力ベクトルFrf(左脚体/BC)とが次の5つの関係式(17)〜(21)を基に算出される。
Frf(右脚体/BC)+Frf(左脚体/BC)=全体重量×ACC(G_全体/BC)
……(17)
Frf(右脚体/BC)x:Frf(右脚体/BC)z
=U(G_全体/BC)x−U(J_右足首/BC)x
:U(G_全体/BC)z−U(J_右足首/BC)z……(18)
Frf(左脚体/BC)x:Frf(左脚体/BC)z
=U(G_全体/BC)x−U(J_左足首/BC)x
:U(G_全体/BC)z−U(J_左足首/BC)z……(19)
Frf(右脚体/BC)y:Frf(右脚体/BC)z
=U(G_全体/BC)y−U(J_右足首/BC)y
:U(G_全体/BC)z−U(J_右足首/BC)z……(20)
Frf(左脚体/BC)y:Frf(左脚体/BC)z
=ACC(G_全体/BC)y−U(J_左足首/BC)y
:U(G_全体/BC)z−U(J_左足首/BC)z……(21)
ここで、これらの式(17)〜(21)の意味を説明すると、式(17)は、全体重心G_全体の、身体座標系BCでの並進運動に関する運動方程式を表している。また、式(18)〜(21)は、図8(a),(b)に示すように、床反力ベクトルFrf(右脚体/BC)および床反力ベクトルFrf(左脚体/BC)がそれぞれ右側脚体2の足首関節13、左側脚体2の足首関節13から全体重心G_全体に向かうベクトルであると仮定して、換言すれば、床反力ベクトルFrfと、左側足首関節13から見たG_全体の位置ベクトルとの向きが同じであると仮定して得られる幾何学的関係式である。この場合、式(18),(19)は矢状面(身体座標系BCのXZ平面)で見た関係式であり、式(20),(21)は前額面(身体座標系BCのYZ)平面で見た関係式である。なお、図8では、図示の便宜上、身体座標系BCのZ軸を鉛直方向に記載しているが、式(17)〜(21)は身体座標系BCの傾きにはよらない。また、本実施形態では、各脚体2の足首関節13は、該脚体2の下端部近傍の特定部としての意味を持つ。
両脚支持状態での床反力ベクトルFrf(右脚体/BC),Frf(左脚体/BC)を求める場合には、それらのベクトルの座標成分値を未知数として、前記式(17)〜(21)により構成される連立方程式を解くことで、Frf(右脚体/BC),Frf(左脚体/BC)が算出される。すなわち、Frf(右脚体/BC),Frf(左脚体/BC)は、人間1の全体重量と全体/要素重心運動算出手段30で求めたACC(G_全体/BC)およびU(G_全体/BC)と関節・要素重心位置算出手段29で求めたU(J_右足首/BC)およびU(J_左足首/BC)とから算出される。このように、本実施形態では、両脚支持状態での床反力ベクトルFrf(右脚体/BC),Frf(左脚体/BC)は、身体座標系BCで記述される前記関係式(17)〜(21)に基づいて算出される。
なお、Frf(右脚体/BC),Frf(左脚体/BC)のZ軸成分は、矢状面に関する式(18),(19)、あるいは前額面に関する式(20),(21)のいずれを用いても求めることが可能である。
床反力作用点推定手段34の演算処理では、まず、前記身体座標系傾斜角算出手段31で算出された腰部要素S6の鉛直方向に対する傾斜角を基に、身体座標系BCから絶対座標系ICへの変換テンソルR(BC→IC)が作成される。ここで、絶対座標系ICは、鉛直方向をZ軸とする直交座標系で、前記基準姿勢状態において身体座標系BCと各座標軸の向きが同一となる座標系である。なお、絶対座標系ICから身体座標系BCへの変換テンソルR(IC→BC)は変換テンソルR(BC→IC)の転置R(BC→IC)Tである。
次いで、上記変換テンソルR(BC→IC)を用いて、前記全体/要素重心運動算出手段32で先に求めた全体重心G_全体の位置ベクトルU(G_全体/BC)と、関節・要素重心位置算出手段29で先に求めた各脚体部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)は矢状面で見た人間1の左脚体2が接地している状態(これらの図では単脚支持状態)を例示しており、図10は図9(b)の状態での接地側の足平部14を平面視で見た図を示している。なお、図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が接地している場合に該左側脚体に作用する床反力ベクトルFrfの床反力作用点の位置ベクトル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)が求められる。
次に、演算処理装置18は、関節モーメント推定手段35による演算処理を実行する。この関節モーメント推定手段35の演算処理の概略を説明すると、各脚体部S2の足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの並進運動および回転運動に関する運動方程式に基づく逆動力学モデルの演算によって、足平部要素S14、下腿部要素S12、および大腿部要素S10のそれぞれの腰部要素S6側の端点の関節要素J_足首、J_膝、J_股の関節モーメントが順番に算出される。
以下、具体的に説明すると、足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの並進運動の運動方程式は次の式(23)〜(25)により与えられる。なお、以下の説明において、一般的に、足平部要素S14、下腿部要素S12、および大腿部要素S10のそれぞれの剛体要素の両端のうち、腰部要素S6に近い側の一端部を「P_○○」、遠い側の他端部「D_○○」(○○は剛体要素を表す名称)というように表記することがある。例えば下腿部要素S12の膝関節J_膝(J11)側の端部を「P_下腿部」、足首関節J_足首(J13)側の端部を「D_下腿部」というように表記する。
F(P_足平部/BC)=m_足平部×ACC(G_足平部/BC)−F(D_足平部/BC)
……(23)
F(P_下腿部/BC)=m_下腿部×ACC(G_下腿部/BC)−F(D_下腿部/BC)
……(24)
F(P_大腿部/BC)=m_大腿部×ACC(G_大腿部/BC)−F(D_大腿部/BC)
……(25)
ここで、上記各式(23)〜(25)中に現れる2つのF(P_○○/BC)、F(D_○○/BC)は、その○○で表される名称の剛体要素の両端が、それぞれに接触する物体から受ける反力(身体座標系BCで表した並進力ベクトル)を意味している。この場合、F(D_足平部/BC)は、前記床反力推定手段31で求めた床反力ベクトルFrf(脚体/BC)に等しい。また、F(D_下腿部/BC)=−F(P_足平部/BC)、F(D_大腿部/BC)=−F(P_下腿部/BC)である。
従って、床反力推定手段31で求めた床反力ベクトルFrf(脚体/BC)と、前記全体/要素重運動算出手段30で求めた足平部要素S14の重心の加速度ベクトルACC(G_足平部/BC)と、足平部要素S14の重量m_足平部とから式(23)の右辺の演算により、F(P_足平部/BC)、すなわち、足首関節J_足首に作用する並進力が求められる。また、その求めたF(P_足平部/BC)(=−F(D_下腿部/BC))と全体/要素重運動算出手段30で求めた下腿部要素S12の重心の加速度ベクトルACC(G_下腿部/BC)と下腿部要素S12の重量m_下腿部とから式(24)の右辺の演算によりF(P_下腿部/BC)、すなわち、膝関節J_膝に作用する並進力が求められる。同様に、その求めたF(P_下腿部/BC)(=F(D_大腿部/BC))を用いて、式(25)の右辺の演算によりF(P_大腿部/BC)、すなわち、股関節J_股に作用する並進力が求められる。このように、関節要素J_足首、J_膝、J_股に作用する反力ベクトル(並進力ベクトル)が上記(23)〜(25)の運動方程式に基づいて順番に算出される。
次に、足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの回転運動(それぞれの重心回りの回転運動)の運動方程式は次の式(26)〜(28)により与えられる。
M(P_足平部/C_足平部)=I_足平部×ω(足平部/C_足平部)’
+ω(足平部/C_足平部)×(I_足平部×ω(足平部/C_足平部))
−(U(COP/C_足平部)−U(G_足平部/C_足平部))
×(R(BC→C_足平部)×F(D_足平部/BC))
−(U(P_足平部/C_足平部)−U(G_足平部/C_足平部))
×(R(BC→C_足平部)×F(P_足平部/BC))
−R(BC→C_足平部)×M(D_足平部/BC)
……(26)
M(P_下腿部/C_下腿部)=I_下腿部×ω(下腿部/C_下腿部)’
+ω(下腿部/C_下腿部)×(I_下腿部×ω(下腿部/C_下腿部))
−(−U(G_下腿部/C_下腿部))
×(R(BC→C_下腿部)×F(D_下腿部/BC))
−(U(P_下腿部/C_下腿部)−U(G_下腿部/C_下腿部))
×(R(BC→C_下腿部)×F(P_下腿部/BC))
−R(BC→C_下腿部)×M(D_下腿部/BC)
……(27)
M(P_大腿部/C_大腿部)=I_大腿部×ω(大腿部/C_大腿部)’
+ω(大腿部/C_大腿部)×(I_大腿部×ω(大腿部/C_大腿部))
−(−U(G_大腿部/C_大腿部))
×(R(BC→C_大腿部)×F(D_大腿部/BC))
−(U(P_大腿部/C_大腿部)−U(G_大腿部/C_大腿部))
×(R(BC→C_大腿部)×F(P_大腿部/BC))
−R(BC→C_大腿部)×M(D_大腿部/BC)
……(28)
ここで、上記各式(26)〜(28)中にそれぞれ現れる2つのF(P_○○/BC)、F(D_○○/BC)は、その○○で表される名称の剛体要素の両端が、それぞれに接触する物体から受ける反力モーメント(身体座標系BCdで表したモーメントベクトル)を意味している。この場合、式(26)のM(D_足平部/BC)は0である。M(D_下腿部/BC)=−R(C_足平部→BC)×M(P_足平部/C_足平部)、M(D_大腿部/BC)=−R(C_下腿部→BC)×M(P_下腿部/C_下腿部)である。また、I_足平部、I_下腿部、I_大腿部は、それぞれ足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの重心回りの慣性モーメントであり、ω(足平部/C_足平部)、ω(下腿部/C_下腿部)、ω(大腿部/C_大腿部)は、それぞれ、足平部要素S14、下腿部要素S12、大腿部要素S10のそれぞれの重心回りの角速度を意味している。この場合、一般に、慣性モーメントI_足平部、I_下腿部、I_大腿部は、十分に小さい値(0に近い値)であるので、本実施形態では、I_足平部、I_下腿部、I_大腿部はいずれも0に近似する。
従って、前記式(26)〜(28)は、近似的に次の式(29)〜(31)に書き換えられる。なお、式(29)〜(31)では、M(D_足平部/BC)=0、M(D_下腿部/BC)=−R(C_足平部→BC)×M(P_足平部/C_足平部)、M(D_大腿部/BC)=−R(C_下腿部→BC)×M(P_下腿部/C_下腿部)であることを考慮している。
M(P_足平部/C_足平部)=−(U(COP/C_足平部)−U(G_足平部/C_足平部))
×(R(BC→C_足平部)×F(D_足平部/BC))
−(U(P_足平部/C_足平部)−U(G_足平部/C_足平部))
×(R(BC→C_足平部)×F(P_足平部/BC))
……(29)
M(P_下腿部/C_下腿部)=−(−U(G_下腿部/C_下腿部))
×(R(BC→C_下腿部)×F(D_下腿部/BC))
−(U(P_下腿部/C_下腿部)−U(G_下腿部/C_下腿部))
×(R(BC→C_下腿部)×F(P_下腿部/BC))
−R(BC→C_下腿部)
×(−R(C_足平部→BC)×M(P_足平部/C_足平部))
……(30)
M(P_大腿部/C_大腿部)=−(−U(G_大腿部/C_大腿部))
×(R(BC→C_大腿部)×F(D_大腿部/BC))
−(U(P_大腿部/C_大腿部)−U(G_大腿部/C_大腿部))
×(R(BC→C_大腿部)×F(P_大腿部/BC))
−R(BC→C_大腿部)
×(−R(C_下腿部→BC)×M(P_下腿部/C_下腿部))
……(31)
そして、本実施形態では、式(29)の右辺の演算により、M(P_足平部/C_足平部)、すなわち、足首関節13に作用する関節モーメントM(P_足平部/C_足平部)(足平部座標系C_足平部で表したモーメントベクトル)が求められる。この場合、式(29)の右辺のU(COP/C_足平部)は、前記床反力作用点推定手段32で先に求めた床反力作用点の位置ベクトルU(COP/BC)に、前記変換テンソル作成手段28で求めた変換テンソルR(C_足平部→BC)の逆変換テンソルR(BC→C_足平部)=R(C_足平部→BC)Tを乗算することにより求められる。また、U(G_足平部/C_足平部)は、あらかじめ設定されたものであり、U(P_足平部/C_足平部)は、足平部要素S14のあらかじめ定められた長さL14により定まる、足平部座標系C_足平部における足首関節J13の位置ベクトル(0,0,L14)Tである。また、F(D_足平部/BC)は床反力推定手段31で先に求めた床反力ベクトルFrf(脚体/BC)の値である。さらに、F(P_足平部/BC)は、前記式(23)により前述の通り求められる。従って、変換テンソル作成手段28で作成された変換テンソルR(C_足平部→BC)と、床反力作用点推定手段32で求めた床反力作用点の位置ベクトルU(COP/BC)と、床反力推定手段31で求めた床反力ベクトルFrf(脚体/BC)と、前記式(23)により求めた反力ベクトルF(P_足平部/BC)とを用いて式(29)の右辺の演算により、M(P_足平部/C_足平部)、すなわち、足首関節13に作用する関節モーメント(足平部座標系C_足平部で表したモーメントベクトル)が求められる。なお、接地していない脚体2については、その床反力作用点の位置ベクトルU(COP/C_足平部)は不定であるが、F(D_足平部/BC)=0であるので、式(29)の第1項の値はU(COP/C_足平部)の値によらずに0になる。
また、式(30)の右辺の演算により、M(P_下腿部/C_下腿部)、すなわち、膝関節11に作用する関節モーメント(下腿部座標系C_下腿部で表したモーメントベクトル)が求められる。この場合、式(30)の右辺のU(G_下腿部/C_下腿部))は、あらかじめ設定されたものであり、U(P_下腿部/C_下腿部)は、下腿部要素S12のあらかじめ定められた長さL12により定まる、下腿部座標系C_下腿部(C12)における膝関節J11の位置ベクトル(0,0,L12)Tである。また、R(BC→C_下腿部)は、変換テンソル作成手段28で作成した変換テンソルR(C_下腿部→BC)の逆変換テンソルR(C_下腿部→BC)Tである。また、F(D_下腿部/BC)は、前記式(23)により求められるF(P_足平部/BC)の符号を反転させたものであり、F(P_下腿部/BC)は、前記式(24)により求められるものである。さらに、M(P_足平部/C_足平部)は、前記式(29)により求められる。従って、変換テンソル作成手段28で作成された変換テンソルR(C_下腿部→BC),R(C_足平部→BC)と、前記式(23),(24)によりそれぞれ先に求めた反力ベクトルF(P_足平部/BC),F(P_下腿部/BC)と、あらかじめ設定された下腿部要素S12の重心の位置ベクトルU(G_下腿部/C_下腿部)と、下腿部要素S12の長さL12と、前記式(29)により先に求めたモーメントM(P_足平部/C_足平部)とを用いて式(30)の右辺の演算により、M(P_下腿部/C_下腿部)、すなわち、膝関節11に作用する関節モーメント(下腿部座標系C_下腿部で表したモーメントベクトル)が求められる。
同様に、式(31)の右辺の演算により、M(P_大腿部/C_大腿部)、すなわち、股関節9に作用する関節モーメント(大腿部座標系C_大腿部で表したモーメントベクトル)が求められる。この場合、式(31)の右辺のU(G_大腿部/C_大腿部))は、あらかじめ設定されたものであり、U(P_大腿部/C_大腿部)は、大腿部要素S10のあらかじめ定められた長さL10により定まる、大腿部座標系C_大腿部における股関節J9の位置ベクトル(0,0,L10)Tである。また、R(BC→C_大腿部)は、変換テンソル作成手段28で作成した変換テンソルR(C_大腿部→BC)の逆変換テンソルR(C_大腿部→BC)Tである。また、F(D_大腿部/BC)は、前記式(24)により求められるF(P_下腿部/BC)の符号を反転させたものであり、F(P_大腿部/BC)は、前記式(25)により求められるものである。さらに、M(P_下腿部/C_下腿部)は、前記式(30)により求められる。従って、変換テンソル作成手段28で作成された変換テンソルR(C_大腿部→BC),R(C_下腿部→BC)と、前記式(24),(25)によりそれぞれ先に求めた反力ベクトルF(P_下腿部/BC),F(P_大腿部/BC)と、あらかじめ設定された大腿部要素S10の重心の位置ベクトルU(G_大腿部/C_大腿部)と、大腿部要素S10の長さL10と、前記式(30)により先に求めたモーメントM(P_下腿部/C_下腿部)とを用いて式(31)の右辺の演算により、M(P_大腿部/C_大腿部)、すなわち、股関節9に作用する関節モーメント(大腿部座標系C_大腿部で表したモーメントベクトル)が求められる。
以上のように、関節モーメント推定手段35の演算処理では、各脚体2の足首関節13、膝関節11、および股関節9の関節モーメントM(P_足平部/C_足平部)、M(P_下腿部/C_下腿部)、M(P_大腿部/C_大腿部)が足首関節13側から順番に算出される。なお、このように求められた関節モーメントは、例えば人間1の歩行を補助する装置(足首関節13や、膝関節11、股関節9に補助トルクを付与可能な電動モータを含む装置)の制御に用いられる。
以上説明した実施形態では、身体座標系BCを基本的な座標系として用いて各種の演算処理が実行される。そして、身体座標系BCあるいは腰部6の鉛直方向に対する傾斜角を考慮して演算処理を行うのは、床反力作用点推定手段32の演算処理だけである。このため、鉛直方向に対する腰部6等の傾斜角を使用する演算処理を従来に比して大幅に少なくすることができる。その結果、傾斜角を高い精度で把握することが困難な場合であっても、誤差の蓄積を最小限に留め、関節モーメントの推定精度を高めることができる。さらに、傾斜角を用いない床反力作用点推定手段を用いれば、関節モーメント推定システムに3次元姿勢センサなどが不要となり、システムの小型化、簡略化が可能となる。
また、本実施形態では、演算処理装置18の各手段の処理を3次元で行っているため推定する関節モーメントの精度を高めることができる。
1…人間(2足歩行移動体)、2…脚体、6…腰部、9…股関節、10…大腿部、11…膝関節、12…下腿部、13…足首関節、14a…中足趾節関節、21〜23…関節変位センサ、16…加速度センサ、S1…剛体リンクモデル、JU1,JU2,J9,J11,J13…関節要素、S8,S7,S6,S10,S12,S14…剛体要素、BC…身体座標系、G8,G7,G6,G10,G12,G14…剛体要素の重心、G_全体…全体重心、Frf…床反力ベクトル、COP…床反力作用点(床反力ベクトルの作用点)。