(57)【特許請求の範囲】
【請求項１】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、ワイヤ／バーチャルリンクに発生される力又は発生する力から剛体リンクの運動を計算する力学計算方法であって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、身体モデルに与えられる、ワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを発生力ファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、求めたヤコビアンＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを、次式により、剛体リンクの接続箇所での力である一般化力τＧに変換するステップと、
τＧ＝ＪＬＴｆ
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、一般化力τＧと剛体リンクの現在の角度及び速度に基づき、一般化力τＧを受けた結果発生する運動について、全身の剛体リンクの加速度を求め、求めた加速度に基づき、順力学計算法により各剛体リンクの速度及び位置を計算するステップと、
処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法。
【請求項２】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算する力学計算法であって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから、現在の剛体リンクの角度・位置・速度を読み込み、また、剛体リンクに与えられる加速度を加速度ファイルから読み込むステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、加速度ファイルから読み出した剛体リンクの加速度と、剛体リンクファイルから読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な、剛体リンクの接続箇所での力である一般化力τＧを計算するステップと、
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、先に求めたＪＬに基づき、次式をｆに対して解くことによって、一般化力τＧから各ワイヤ／バーチャルリンクに発生される発生力ｆを求めるステップと、
τＧ＝ＪＬＴｆ
処理部は、求めた剛体リンク発生力ｆを発生力ファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法。
【請求項３】
前記ヤコビアンＪＬを計算するステップは、
ワイヤｉがｍｉ個の経由点・端点を含むものとし、経由点・端点ｊからｊ＋１までの距離をｌｉ、ｊ、経由点又は端点ｊの位置をｐｉ，ｊ、θＧは関節角度、θ’Ｇは関節の角速度とすると、
（１）処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度からワイヤｉのワイヤ長ｌｉ及び経由点及び端点の位置ｐｉ，ｊを計算するステップと、
（２）処理部は、位置ｐｉ，ｊの関節角度θＧに関するヤコビアンＪｐｉ，ｊを計算して、
ＪＬｉ，ｊ＝ｌｉ、ｊ−１（ｐｉ，ｊ＋１−ｐｉ，ｊ）Ｔ（Ｊｐｉ，ｊ＋１−Ｊｐｉ，ｊ）
により、距離ｌｉ、ｊの関節角度θＧに関するヤコビアンＪＬｉ，ｊを計算するステップと、
（３）処理部は、求めたＪＬｉ，ｊのｊについての総和によりＪＬｉを求めるステップと、
（４）処理部は、ＪＬｉを集めてＪＬ＝［ＪＬ１  ＪＬ２  ・・・  ＪＬｉ  ・・・］  より、ヤコビアンＪＬを求めるステップと
を含む請求項１又は２に記載の力学計算方法。
【請求項４】
モデルデータとしては、
剛体リンクの形状データ、剛体リンクの質量・慣性モーメント・質量中心位置を含む力学データ、ワイヤの端点・経由点の位置データ、バーチャルリンクの形状データ、バーチャルリンクの力学データを含むことを特徴とする請求項１又は２に記載の力学計算方法。
【請求項５】
前記ワイヤ／バーチャルリンクに関するデータは、
（１）一部位を始点と終点のみからなる単純な１本のワイヤで置き換えるモデル
（２）一部位を始点と経由点と終点からなる１本のワイヤで置き換えるモデル
（３）一部位を複数のワイヤで置き換えるモデル
（４）一部位をバーチャルリンクと複数のワイヤで置き換えるモデル
（５）複合モデル
のうちいずれかのモデルのデータであることを特徴とする請求項１又は２に記載の身体力学計算方法。
【請求項６】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータと、剛体リンクの角度・位置・速度データとに基づき、ワイヤの長さの関節角度に関するヤコビアンＪＬを計算する力学計算方法であって、
ワイヤｉがｍｉ個の経由点・端点を含むものとし、経由点・端点ｊからｊ＋１までの距離をｌｉ、ｊ、経由点又は端点ｊの位置をｐｉ，ｊ、θＧは関節角度、θ’Ｇは関節の角速度とすると、
（１）処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度からワイヤｉのワイヤ長ｌｉ及び経由点及び端点の位置ｐｉ，ｊを計算するステップと、
（２）処理部は、位置ｐｉ，ｊの関節角度θＧに関するヤコビアンＪｐｉ，ｊを計算して、
ＪＬｉ，ｊ＝ｌｉ、ｊ−１（ｐｉ，ｊ＋１−ｐｉ，ｊ）Ｔ（Ｊｐｉ，ｊ＋１−Ｊｐｉ，ｊ）
により、距離ｌｉ、ｊの関節角度θＧに関するヤコビアンＪＬｉ，ｊを計算するステップと、
（３）処理部は、求めたＪＬｉ，ｊのｊについての総和によりＪＬｉを求めるステップと、
（４）処理部は、ＪＬｉを集めてＪＬ＝［ＪＬ１  ＪＬ２  ・・・  ＪＬｉ  ・・・］  より、ヤコビアンＪＬを求めるステップと
（５）処理部は、ＪＬをヤコビアンファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法。
【請求項７】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、ワイヤ／バーチャルリンクに発生される力又は発生する力から剛体リンクの運動を計算するための筋・腱・靭帯・骨格の力学計算プログラムであって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、身体モデルに与えられる、ワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを発生力ファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、求めたヤコビアンＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを、次式により、剛体リンクの接続箇所での力である一般化力τＧに変換するステップと、
τＧ＝ＪＬＴｆ
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、一般化力τＧと剛体リンクの現在の角度及び速度に基づき、一般化力τＧを受けた結果発生する運動について、全身の剛体リンクの加速度を求め、求めた加速度に基づき、順力学計算により各剛体リンクの速度及び位置を計算するステップと、
処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイルに記憶するステップと、
をコンピュータに実行させるための筋・腱・靭帯・骨格の力学計算プログラム。
【請求項８】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算するための筋・腱・靭帯・骨格の力学計算プログラムであって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから、現在の剛体リンクの角度・位置・速度を読み込み、また、剛体リンクに与えられる加速度を加速度ファイルから読み込むステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、加速度ファイルから読み出した剛体リンクの加速度と、剛体リンクファイルから読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な、剛体リンクの接続箇所での力である一般化力τＧを計算するステップと、
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、先に求めたＪＬに基づき、次式をｆに対して解くことによって、一般化力τＧから各ワイヤ／バーチャルリンクに発生される発生力ｆを求めるステップと、
τＧ＝ＪＬＴｆ
処理部は、求めた剛体リンク発生力ｆを発生力ファイルに記憶するステップと、
をコンピュータに実行させるための筋・腱・靭帯・骨格の力学計算プログラム。
【請求項９】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、ワイヤ／バーチャルリンクに発生される力又は発生する力から剛体リンクの運動を計算するための筋・腱・靭帯・骨格の力学計算プログラムを記録した記録媒体であって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、身体モデルに与えられる、ワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを発生力ファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、求めたヤコビアンＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを、次式により、剛体リンクの接続箇所での力である一般化力τＧに変換するステップと、
τＧ＝ＪＬＴｆ
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、一般化力τＧと剛体リンクの現在の角度及び速度に基づき、一般化力τＧを受けた結果発生する運動について、全身の剛体リンクの加速度を求め、求めた加速度に基づき、順力学計算により各剛体リンクの速度及び位置を計算するステップと、
処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイルに記憶するステップと、
をコンピュータに実行させるための筋・腱・靭帯・骨格の力学計算プログラムを記録した記録媒体。
【請求項１０】
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算するための筋・腱・靭帯・骨格の力学計算プログラムを記録した記録媒体であって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから、現在の剛体リンクの角度・位置・速度を読み込み、また、剛体リンクに与えられる加速度を加速度ファイルから読み込むステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、加速度ファイルから読み出した剛体リンクの加速度と、剛体リンクファイルから読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な、剛体リンクの接続箇所での力である一般化力τＧを計算するステップと、
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、先に求めたＪＬに基づき、次式をｆに対して解くことによって、一般化力τＧから各ワイヤ／バーチャルリンクに発生される発生力ｆを求めるステップと、
τＧ＝ＪＬＴｆ
処理部は、求めた剛体リンク発生力ｆを発生力ファイルに記憶するステップと、
をコンピュータに実行させるための筋・腱・靭帯・骨格の力学計算プログラムを
記録した記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、筋・腱・靭帯・骨格に関する身体力学計算方法、身体力学計算プログラム及びそれを記録した記録媒体、身体力学モデル及びそのモデルデータを記憶した記録媒体に係る。本発明は、特に、人体、動物、生態等の身体の精密なモデルに基づく運動学・動力学的な解析の基礎となる骨格系、筋・腱・靱帯のモデル化、及び、このような解析を行うための筋・腱・靭帯モデルの動力学計算法に関する。
【０００２】
また、本発明の適用される技術としては次のようなものが例示される。
（１）人体又は生体等の身体モデル運動解析ソフトウェア
（２）人体又は生体等の身体モデル運動生成ソフトウェア
（３）ワイヤ駆動機構運動解析ソフトウェア
（４）ワイヤ駆動機構制御ソフトウェア
【０００３】
【従来の技術】
認知科学や医学分野では、人体の精密なモデルに基づく運動学・動力学的な解析の必要性が高まっている。例えば認知科学において脳の情報処理に関する研究を行うためには、関節にかかる力、筋肉や靱帯が発生する力など人間の身体性に近い情報が必要となる。また整形外科では、運動機能が最もよく回復できる手術法の定量的なプランニングが課題となっており、これを行うためには筋肉や骨の形状に基づく精密なシミュレーションが必要となる。
【０００４】
人体を精密にモデル化しようとする試みや、それを用いて運動解析を行った例は、以下に示す文献１〜３のようなものがある。特に、文献２では運動学的な解析を行って筋長の変化を計算し、それを筋の生理学的なモデルにあてはめて筋力を計算している。また、文献３では、モデルの運動から筋力を計算している。
（文献１）
・  鈴木、服部、富永、浦野：“高機能多目的三次元人体モデル（digital dummy）の製作とその応用(第２報)、”第１８回ＩＰＡ技術発表会、１９９９．
（文献２）
・  鈴木、富永：“高機能多目的三次元人体モデル（digitaldummy）の製作とその応用(第３報)、”第１９回ＩＰＡ技術発表会、２０００．（文献３）
・  M.G. Pandy and F.C. Anderson: “Dynamic Simulation of Human Movement Using Large-Scale Models of the Body,” Proc. IEEE Intl. Conf. Robotics and Automation,pp.676-681, 2000.（筋肉を含む人体の力学モデルの動力学解析）
【０００５】
【発明が解決しようとする課題】
以上のように、人体を精密にモデル化しようとする試みは従来なされてきたが、端点が多数あるような複雑な筋や靭帯を十分正確にモデル化できているとはいえない。また、運動学的な解析を目的としたものがほとんどであり、力学的な計算が可能なモデルになっているものは少ない。さらに、データの蓄積・再利用に関しては、それぞれの研究者が独自にフォーマットを定めており、データの作成・再利用やデータベース化が困難である。
【０００６】
また、上述のように、筋・腱・靭帯を含む人体の精密なモデルを用いて運動解析を行った例はいくつかあるが、順方向（筋力から運動を計算）・逆方向（運動から筋力を計算）の動力学計算を高速に行う計算法はない。さらに、従来の動力学計算では、複雑な最適化問題を解いているため比較的簡単なモデルであるにもかかわらず長い計算時間が必要である。また、従来、順動力学計算は行っていない。
【０００７】
本発明は、以上の点に鑑み、人体又は生体等の身体を構成する骨格、筋・腱・靱帯を、できるだけ忠実に且つ運動学・力学計算に利用可能な形でモデル化した身体力学モデル、及び、身体力学モデルデータのデータベースを構築できるよう統一的なフォーマットで蓄積したコンピュータ読取り可能な記録媒体を提供することを目的とする。
【０００８】
また、本発明は、骨格と筋・腱・靭帯を含む詳細な身体モデルの順動力計算（筋力から運動を計算）及び逆動力計算（運動から筋力を計算）を高速に行う身体力学計算方法、身体力学計算プログラム及びそれを記録した記録媒体を提供することを目的とする。
【０００９】
【課題を解決するための手段】
本発明は、筋・腱・靭帯の運動学的・力学的な作用を計算機内部にモデル化するための統一的かつ有用な手法を与えることにより、詳細モデル作成を容易にする。また、詳細モデルをファイルとして保存するための仕様を与えることにより、詳細モデルのデータベース構築やアプリケーション間の相互利用を可能にする。
また、本発明は、身体の筋・腱・靭帯の力学モデルに基づきワイヤでモデル化された筋・腱・靭帯の力とリンク系の一般化力の間の変換を行うことにより、リンク系動力学高速計算法などの計算法の適用を可能にし、高速な動力学計算を実現する。
【００１０】
本発明の第１の解決手段によると、
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、ワイヤ／バーチャルリンクに発生される力又は発生する力から剛体リンクの運動を計算する力学計算方法、各ステップをコンピュータに実行させるための筋・腱・靱帯・骨格の力学計算プログラム及びそのプログラムを記録した記録媒体であって、

前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、身体モデルに与えられる、ワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを発生力ファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、求めたヤコビアンＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを、次式により、剛体リンクの接続箇所での力である一般化力τＧに変換するステップと、
τＧ＝ＪＬＴｆ
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、一般化力τＧと剛体リンクの現在の角度及び速度に基づき、一般化力τＧを受けた結果発生する運動について、全身の剛体リンクの加速度を求め、求めた加速度に基づき、順力学計算法により各剛体リンクの速度及び位置を計算するステップと、
処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法、各ステップをコンピュータに実行させるための筋・腱・靱帯・骨格の力学計算プログラム及びそのプログラムを記録した記録媒体が提供される。
【００１１】
本発明の第２の解決手段によると、
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算する力学計算法、各ステップをコンピュータに実行させるための筋・腱・靱帯・骨格の力学計算プログラム及びそのプログラムを記録した記録媒体であって、
前記身体モデルは、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクに関するデータと、骨を表現した剛体リンクに関するデータとで表現され、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するようにした、
筋・腱・靭帯・骨格の身体モデルであり、

処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから、現在の剛体リンクの角度・位置・速度を読み込み、また、剛体リンクに与えられる加速度を加速度ファイルから読み込むステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、加速度ファイルから読み出した剛体リンクの加速度と、剛体リンクファイルから読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な、剛体リンクの接続箇所での力である一般化力τＧを計算するステップと、
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、先に求めたＪＬに基づき、次式をｆに対して解くことによって、一般化力τＧから各ワイヤ／バーチャルリンクに発生される発生力ｆを求めるステップと、
τＧ＝ＪＬＴｆ
処理部は、求めた剛体リンク発生力ｆを発生力ファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法、各ステップをコンピュータに実行させるための筋・腱・靱帯・骨格の力学計算プログラム及びそのプログラムを記録した記録媒体が提供される。
【００１２】
本発明の第３の解決手段によると、
骨格を表す剛体リンクに関するデータ及び筋・腱・靭帯を表すワイヤ／バーチャルリンクに関するデータにより定義された身体モデルに対して、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータと、剛体リンクの角度・位置・速度データとに基づき、ワイヤの長さの関節角度に関するヤコビアンＪＬを計算する力学計算方法であって、
ワイヤｉがｍｉ個の経由点・端点を含むものとし、経由点・端点ｊからｊ＋１までの距離をｌｉ、ｊ、経由点又は端点ｊの位置をｐｉ，ｊ、θＧは関節角度、θ’Ｇは関節の角速度とすると、
（１）処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度からワイヤｉのワイヤ長ｌｉ及び経由点及び端点の位置ｐｉ，ｊを計算するステップと、
（２）処理部は、位置ｐｉ，ｊの関節角度θＧに関するヤコビアンＪｐｉ，ｊを計算して、
ＪＬｉ，ｊ＝ｌｉ、ｊ−１（ｐｉ，ｊ＋１−ｐｉ，ｊ）Ｔ（Ｊｐｉ，ｊ＋１−Ｊｐｉ，ｊ）
により、距離ｌｉ、ｊの関節角度θＧに関するヤコビアンＪＬｉ，ｊを計算するステップと、
（３）処理部は、求めたＪＬｉ，ｊのｊについての総和によりＪＬｉを求めるステップと、
（４）処理部は、ＪＬｉを集めてＪＬ＝［ＪＬ１  ＪＬ２  ・・・  ＪＬｉ  ・・・］  より、ヤコビアンＪＬを求めるステップと
（５）処理部は、ＪＬをヤコビアンファイルに記憶するステップと、
を含む筋・腱・靭帯・骨格の力学計算方法が提供される。
【００１３】
本発明の第４の解決手段によると、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクと、骨格を表現した剛体リンクとで表現された筋・腱・靭帯・骨格の身体力学モデルであって、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力又は発生する力から前記剛体リンクの運動を計算する筋・腱・靭帯・骨格の力学計算のために用いられる前記身体力学モデルが提供される。
本発明の第５の解決手段によると、
人体、生物又は動物等の身体の筋・腱・靱帯を表現したワイヤ及びワイヤ間に接続されるバーチャルリンクと、骨格を表現した剛体リンクとで表現された筋・腱・靭帯・骨格の身体力学モデルであって、
前記剛体リンクは、複数自由度の関節を表現するジョイントで複数個が結合されて、骨格を構成し、
前記ワイヤは、前記剛体リンクで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成され、
前記バーチャルリンクは、複数の前記ワイヤの始点又は終点が固定されるように構成され、
前記ワイヤ及び前記バーチャルリンクに発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するように構成され、
剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算する筋・腱・靭帯・骨格の力学計算のために用いられる前記身体力学モデルが提供される。
【００１４】
本発明の第６の解決手段によると、
人体、生物又は動物等の身体の筋・腱・靱帯をワイヤ及びワイヤ間に接続されるバーチャルリンクで表現し、骨を剛体リンクで表現した、筋・腱・靭帯・骨格の身体力学モデルデータを記憶したコンピュータ読取り可能な記録媒体であって、
前記身体力学モデルデータは、
複数自由度の関節を表現するジョイントで複数個が結合されて骨格を構成した剛体リンクについての形状データ、質量・慣性モーメント・質量中心を含む力学データを含む剛体リンクデータと、
前記剛体リンクデータで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成された、前記ワイヤについての端点及び／又は経由点の位置データと、
複数の前記ワイヤの始点又は終点が固定される前記バーチャルリンクについての、形状データ及び位置データと
を含み、
前記ワイヤ及び／又は前記バーチャルリンクにより発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するように構成され、

処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、身体モデルに与えられる、ワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを発生力ファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから現在の剛体リンクの角度・位置・速度を読み出すステップと、
処理部は、モデルデータ及び剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、求めたヤコビアンＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを、次式により、剛体リンクの接続箇所での力である一般化力τＧに変換するステップと、
τＧ＝ＪＬＴｆ
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、一般化力τＧと剛体リンクの現在の角度及び速度に基づき、一般化力τＧを受けた結果発生する運動について、全身の剛体リンクの加速度を求め、求めた加速度に基づき、順力学計算法により各剛体リンクの速度及び位置を計算するステップと、
処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイルに記憶するステップと、
をコンピュータに実行させて、前記ワイヤ及び前記バーチャルリンクに発生される力又は発生する力から前記剛体リンクの運動を計算する筋・腱・靭帯・骨格の力学計算のために用いられる前記筋・腱・靭帯・骨格の身体力学モデルデータを記憶したコンピュータ読取り可能な記録媒体が提供される。

本発明の第７の解決手段によると、
人体、生物又は動物等の身体の筋・腱・靱帯をワイヤ及びワイヤ間に接続されるバーチャルリンクで表現し、骨を剛体リンクで表現した、筋・腱・靭帯・骨格の身体力学モデルデータを記憶したコンピュータ読取り可能な記録媒体であって、
前記身体力学モデルデータは、
複数自由度の関節を表現するジョイントで複数個が結合されて骨格を構成した剛体リンクについての形状データ、質量・慣性モーメント・質量中心を含む力学データを含む剛体リンクデータと、
前記剛体リンクデータで表された骨の所定個所に固定された始点及び終点間を結び、骨に固定された０個以上の滑りを許す経由点を通り、前記剛体リンクの動きに応じて長さと張力が変化し得るように構成された、前記ワイヤについての端点及び／又は経由点の位置データと、
複数の前記ワイヤの始点又は終点が固定される前記バーチャルリンクについての、形状データ及び位置データと
を含み、
前記ワイヤ及び／又は前記バーチャルリンクにより発生される力及びワイヤの長さと前記剛体リンクの運動とが相互作用するように構成され、

処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータをモデルデータファイルから読み込むステップと、
処理部は、剛体リンクの角度・位置・速度を記憶した剛体リンクファイルから、現在の剛体リンクの角度・位置・速度を読み込み、また、剛体リンクに与えられる加速度を加速度ファイルから読み込むステップと、
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、各ワイヤの長さの関節角度に関するヤコビアンＪＬを計算するステップと、
処理部は、加速度ファイルから読み出した剛体リンクの加速度と、剛体リンクファイルから読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な、剛体リンクの接続箇所での力である一般化力τＧを計算するステップと、
処理部は、一般化力ファイルに求めた一般化力τＧを記憶するステップと、
処理部は、先に求めたＪＬに基づき、次式をｆに対して解くことによって、一般化力τＧから各ワイヤ／バーチャルリンクに発生される発生力ｆを求めるステップと、
τＧ＝ＪＬＴｆ
処理部は、求めた剛体リンク発生力ｆを発生力ファイルに記憶するステップと、
をコンピュータに実行させて、剛体リンクに与えられる加速度からワイヤ／バーチャルリンクに発生される力又は発生する力を計算する筋・腱・靭帯・骨格の力学計算のために用いられる前記筋・腱・靭帯・骨格の身体力学モデルデータを記憶したコンピュータ読取り可能な記録媒体が提供される。
【００１５】
【発明の実施の形態】
１．力学モデル
１−１．概説
図１に、本実施の形態を利用したシステムの説明図の一例を示す。本システムでは、たとえば、ＭＲＩやＣＴなどの医療機器で得られる骨の像から骨の幾何モデルを得て、これと筋・腱・靭帯に関する解剖学的知見から、本実施の形態により筋・腱・靭帯のモデルが得られる。このモデルを本実施の形態のフォーマットにより出力することで、様々なアプリケーションによる解析に用いたり、多数のモデルを含むデータベースに登録したりすることができる。なお、実施の形態では人体のモデルを中心に説明するが、本発明は、これに限らず、動物、生物等の適宜の身体モデルに広く適用することができる。
【００１６】
本実施の形態は、主に、以下の２点の特徴を含む。
・ワイヤ／バーチャルリンクによる筋・腱・靭帯のモデル化法
これは、人体の筋・腱、靱帯を、骨に固定された始点・終点を結び、骨または仮想的な骨に固定された０個以上の経由点を通るワイヤとしてモデル化する方法である。
・上記モデルのＶＲＭＬ（Virtual Reality Modeling Language）形式での記述方法
これは、筋・腱・靱帯情報を骨格の三次元幾何形状とともに三次元モデルの標準的な記述フォーマットであるＶＲＭＬ形式で記述することにより、上記モデルを様々なソフトウェアで共有できるようにする方法である。
以下、それぞれについて詳細を述べる。
【００１７】
１−２．ワイヤ／バーチャルリンクによる筋・腱・靭帯のモデル化法筋・腱・靭帯は以下のように定義される。
・筋：骨と骨を接続し、長さは比較的自由に変化する。
・腱：筋の両端にあり、筋を骨と接続している。
・靭帯：骨と骨を接続し、長さはほとんど変化しない。
【００１８】
図２に、筋・腱・靭帯のワイヤモデルの説明図の一例を示す。筋・腱、靭帯を骨または仮想的な骨（バーチャルリンク）に固定された始点・終点を結び、０個以上の経由点を通るワイヤとしてモデル化する。解剖学情報からモデルを作成するときの原則は以下の通りである。（いくつかの実例を後述する）
・バーチャルリンクは、筋・靭帯が終端で分岐する場合に導入される。
・経由点は、ワイヤが骨の突起などの固定点を通り、その前後で自由に滑ることができる場合に導入される。
・ 筋の端が１個の骨またはバーチャルリンクに接続されている場合、両端の腱はモデルに含めない。筋の端が２つ以上に分岐する場合のみ腱を導入する。
【００１９】
モデル作成の手順は以下の通りである。
（ａ）モデル化に使用するワイヤ／バーチャルリンクの数、配置、結線の設計解剖学の教科書などを参照し、ワイヤ、バーチャルリンクの配置・接続関係を決める。
（ｂ）ワイヤの始点、経由点、終点及びバーチャルリンクの位置決め市販のモデリングソフトなどを用いて、各点とバーチャルリンクそれぞれの三次元位置を入力する。
（ｃ）骨格、筋・腱・靭帯情報の保存
ワイヤ／バーチャルリンク、始点・終点・経由点に後述する規則に従って名前・階層構造を付加し、骨格の幾何情報とともにＶＲＭＬ形式で出力する。
【００２０】
次に、手順（ａ）の具体例を以下の順で説明する。
（１）一部位を始点と終点のみからなる単純な１本のワイヤで置き換えるモデル
（２）一部位を始点と経由点と終点からなる１本のワイヤで置き換えるモデル
（３）一部位を複数のワイヤで置き換えるモデル
（４）一部位をバーチャルリンクと複数のワイヤで置き換えるモデル
（５）複合モデル
以下、各モデルについて説明する。
【００２１】
（１）一部位を始点と終点のみからなる単純な１本のワイヤで置き換えるモデル図３は、上腕骨に停止する小円筋のモデル説明図の一例である。
多くの筋・腱は起点と終点の両端点のみからなる単純な１本のワイヤでモデル化される。
【００２２】
（２）一部位を始点と経由点と終点からなる１本のワイヤで置き換えるモデル図４は下肢帯の腹側に位置する内閉鎖筋モデルの説明図の一例である。
この例では、筋が這っている小坐骨切痕の部分が、筋の作用の支点として働いている。このような場合、筋の張力は起点から終点を結ぶ直線上にはなく、従って正しい筋力方向をモデル化するために経由点を挿入する。経由点は、内閉鎖筋の例のように筋が骨の一部分に引っ掛かっている場合の他、腱鞘による腱の拘束をモデル化する場合などにおいて挿入される。
【００２３】
（３）一部位を複数のワイヤで置き換えるモデル
図５は、大胸筋モデルの説明図の一例である。
種々の筋型のうち複数の起始を持ち１つの共通の腱に終わるn頭筋や、広く板状の腱を持つ板状筋などは、１本のワイヤではなく複数のワイヤを用いてその機能をモデル化する。n頭筋ではn本のワイヤを用いる。広く板状の腱を持つ筋において、単一の骨上に筋が広がりを持って付着する場合には２〜４本程度のワイヤを用い、筋の広がりがさらに大きく複数の骨にまたがる様な場合にはさらに多くのワイヤを用いてモデル化する。
【００２４】
（４）一部位をバーチャルリンクと複数のワイヤで置き換えるモデル
図６に、二頭筋の２つのモデルの説明図を示す。n頭筋などの分岐を含む部位において上記（３）の方法を取れば、分岐点が筋の停止に集中するモデルになる（図６上）。上記（３）のモデルでは不十分である場合、他の方法（４）として、バーチャルリンクを導入してワイヤの途中に分岐を設ける（図６下）。
このようなモデルが必要な部位として上腕二頭筋が挙げられる。
【００２５】
図７に、上腕二頭筋のモデルの説明図を示す。
上腕二頭筋の停止部においては腱が分岐し、分岐した腱がそれぞれ別々の骨に癒着するという配置になっている。従って上腕二頭筋の機能を再現するには腱の分岐をモデル化する必要がある。上腕二頭筋の場合は二本の筋（長頭と短頭）と二本の腱に部分化し、これらの分岐点にバーチャルリンクを置く。このように分岐のモデル化の際にバーチャルリンクが必要となる理由は、ワイヤは１つの起点に始まり０点以上の経由点を通り１つの終点に終わる、というワイヤモデルの原則があるからである。この原則は、ワイヤの張力計算法に由来している。バーチャルリンクは骨リンクと違って質量を持たないようにすることができるが、バーチャルリンク上に置かれた点間の相対位置は不変である、張力を伝播する、という点においてはリンクとして扱うことが可能である。なお、バーチャルリンクは、所定の質量をもつように設定することもできる。
【００２６】
（５）複合モデル
ここでは、肘関節に配置する靭帯の例を示す。
図８は肘関節における靭帯の配置と、靭帯の拘束で与えられる肘関節対偶の説明図である。
図８左の靭帯の拘束により図８右のように関節対偶が決まる。橈骨は尺骨とは独立して旋回することができる。しかし、橈骨と尺骨は常に独立して動くわけではなく、上腕と前腕との間の屈曲（及び伸展）において２つの骨は同調して回転する。このような複雑な靭帯配置をモデル化するために、経由点を含む単一ワイヤモデルとバーチャルリンクを持つ複数ワイヤモデルを複合したモデルを考える。
【００２７】
図９は、肘関節靭帯のモデル化の説明図である。
尺骨に始まり経由点によって橈骨を束ね再び尺骨に戻って終わる、そのような半ループ状の靭帯によって橈骨と尺骨の間の対偶をモデル化する。さらに上腕骨・前腕骨間の靭帯をモデル化するために、半ループ状の靭帯上にバーチャルリンクを挟み、バーチャルリンクに付着する３つの靭帯をＴの字に結線する。軟骨などもこのようにモデル化することができる。
【００２８】
１−３．上記モデルのＶＲＭＬ形式での記述方法
上記モデルは、統一的なフォーマットで記述して様々なソフトウェア・データベースで扱えるようにする必要がある。このとき、独自のフォーマットを定義するとその仕様決定のための労力が大きいだけでなく、読み込みのためのソフトウェア開発の負担も発生する。本実施の形態では、データが筋・腱、靭帯の数値データだけではなく骨形状の幾何データをも含むことを考慮し、仮想現実において形状、質感、アニメーションデータ等を記述する標準的なフォーマットであるＶＲＭＬ（Virtual Reality Modeling Language）の形式で筋・腱、靭帯情報を記述することとし、そのためのデータ仕様を開発した。ＶＲＭＬファイルの読み込み・出力は多くの三次元モデリングソフトでサポートされており、本発明により上記モデルの作成を特殊なソフトウェアを使うことなく行うことができるようになる。
【００２９】
図１０に、Transform（トランスフォーム）ノードの書式の説明図の一例を示す。ＶＲＭＬは、配置したいオブジェクトの種類によって形状（Shape）、質感（Material）などのノードを記述していく形式である。ノード間に階層構造をつけることで、あるノードの影響が及ぶ範囲を定義することができる。本発明では、筋・腱、靭帯の情報を記述するために座標変換を定義するTransformノードとノードに一意な名前をつけるためのＤＥＦノードを利用する。ＶＲＭＬファイル中の典型的な書式は図のようになる。これによってnode_nameという名前のTransformノードを定義し、その位置・姿勢をtranslation、 rotationによりそれぞれ指定することができる。
【００３０】
ここでは、1個の筋・腱・靭帯、バーチャルリンクおよび始点・終点・経由点をそれぞれ１つのTransformノードで表し、始点・終点・経由点を表すTransformノードは、それが属する筋・腱・靭帯のTransformノードの子ノードとする。また、筋・腱・靭帯、バーチャルリンクを表すTransformノードは種類別にそれぞれmuscles（筋）、 tendons（腱）、 ligamenta（靭帯）、 virtual_bones（バーチャルリンク）というTransformノードの子リンクとする。骨形状を表すノード群もbones（骨）というTransformノードの下にまとめておく。
【００３１】
筋・腱・靭帯およびそれらの始点・終点・経由点を表すTransformノードの名前は以下に示す命名規則に従ってつける。なお、バーチャルリンクには任意の名前をつけてよい。
・靱帯      {R|L|C}_Lig_LigamentaName
・筋        {R|L|C}_Mus_MuscleName
・腱        {R|L|C}_Ten_TendonName
・始点      ElementName_Org_LinkName
・終点      ElementName_End_LinkName
・経由点    ElementName_n_LinkName
ただし、
・Ｒ、Ｌ、Ｃ：それぞれ右半身、左半身、体幹の区別を表す
・LigamentaName、MuscleName、TendonName: それぞれ靭帯、筋、腱の固有名
・ElementName：経由点が属する靱帯・筋・腱の名前
・n：経由点の番号
・LinkName：経由点が固定されている骨またはバーチャルリンク名
（例）
筋の名前：L_Mus_Supraspinatus（左半身の棘上筋）
点の名前：L_Mus_Supraspinatus_Org_lscapula（ワイヤの始点、骨lscapulaに固定）
【００３２】
図１１に、筋・腱・靭帯情報と骨形状データを含んだＶＲＭＬデータの階層構造の説明図の一例を示す。実際のＶＲＭＬファイルには、このほか骨のポリゴンデータ、経由点の位置データなどが入る。
【００３３】
２．ハードウェア
図１２は、本実施の形態に関するハードウェアの構成図である。
このハードウェアは、中央処理装置（ＣＰＵ）である処理部１、入力部２、出力部３、表示部４及び記憶部５を有する。また、処理部１、入力部２、出力部３、表示部４及び記憶部５は、スター又はバス等の適宜の接続手段で接続されている。
【００３４】
記憶部５は、モデルデータ（定常データ）を記憶したモデルデータファイル５１、剛体リンクに対する外力（例：床、壁等による外力、運動による外力）等で筋・腱・靭帯のワイヤ／バーチャルリンクに対応するアクチュエータに与えられる力（張力）又はアクチュエータが発生すべき力等のアクチュエータの発生力（発生する力又は発生される力）ｆを記憶した発生力ファイル５２、剛体リンクに与えられる加速度又はそこに発生すべき加速度等の剛体リンクの加速度を記憶した加速度ファイル５３を記憶した加速度ファイル５３、剛体リンクの角度・位置・速度を記憶した剛体リンクファイル５４、後述する計算されたヤコビアンを記憶するヤコビアンファイル５５、一般化力（剛体リンクのヒンジ（関節）でのトルク（例：球面、３自由度））を記憶した一般化力ファイル５６、を含む。
【００３５】
ここで、剛体リンクは、骨格を表現するものであり、また、ワイヤ／バーチャルリンクは、筋・腱・靭帯を表現するものである。
モデルデータとしては、以下が例示される。
・剛体リンクの形状データ
・剛体リンクの質量・慣性モーメント・質量中心の位置等の力学データ
・ワイヤの端点・経由点の位置
・バーチャルリンク（質量を持った剛体リンクのひとつとしてもよいし、質量のない剛体リンクのひとつとしてもよい）の形状データ
・バーチャルリンクの力学データ
【００３６】
３．力学計算法
３−１．概説
図１３に、本実施の形態を利用したシステムの説明図の一例を示す。本実施の形態の順動力学計算法を用いると、筋・腱・靭帯を含む詳細なモデルと筋力のモデルから発生する運動と関節にかかる力などが計算できる。順動力学計算法では、筋力モデル、筋・腱・靭帯モデルを入力データとして運動、関節にかかる力を出力データとして計算する。一方、逆動力学計算法を用いると、詳細モデルと運動データからその運動を行うために筋・靭帯が発生する力、そのとき関節にかかる力などが計算できる。逆動力学計算法では、運動データ、筋・腱・靭帯モデルを入力データとして筋・腱・靭帯の力、関節にかかる力を出力データとして計算する。
【００３７】
本実施の形態では、筋・腱・靭帯を含むモデルとして上述のような、特に、人間の筋・腱・靱帯について「１．力学モデル」のワイヤ／バーチャルリンクによるモデルを用いる。
図１４に、筋・腱・靭帯のワイヤモデルの構成図を示す。ここでは、一例としてこのような力学モデルを対象として力学計算法を説明する。上記「１−２．ワイヤ／バーチャルリンクによる筋・腱・靭帯のモデル化法」で説明した他のモデルに対しても同様にこの計算法を適用することができる。
【００３８】
このモデルは、図のように１本の筋・靭帯を始点・終点を結び経由点を通るワイヤとしてモデル化するものである。バーチャルリンクは端点が２つ以上ある筋・靭帯をモデル化するために導入された特殊なリンクで、質量・慣性モーメントをもたない仮想的な骨である。動力学計算においては、バーチャルリンクに作用する合力が常に０となる必要がある。
【００３９】
３−２．力学計算の準備
順動力学計算・逆動力学計算とも、その準備としてワイヤの長さの関節角に対するヤコビアンＪＬｉを求める計算をすべての筋・腱・靭帯について行う。ＪＬｉは、ワイヤｉの長さｌｉの時間微分ｌ’ｉと一般化速度θ’Ｇ（関節の角速度）を次式のように関係付ける行列である。なお、「’」は微分を示す。
ｌ’ｉ＝ＪＬｉθ’Ｇ
ＪＬｉは以下の手順で計算する。要素ｉがｍｉ個の端点（始点・終点を含む）・経由点からなるものとし、端点・経由点ｊからｊ＋１までの距離をｌｉ、ｊ、ｌｉ、ｊのθＧに関するヤコビアンをＪＬｉ，ｊとすると、ＪＬｉはＪＬｉ，ｊの和、すなわち
【００４０】
【数１】
0004212022.tif 000002
【００４１】
と表される。経由点ｊの位置をｐｉ，ｊとすると、
ｌｉ，ｊ２＝（ｐｉ，ｊ＋１−ｐｉ，ｊ）Ｔ（ｐｉ，ｊ＋１−ｐｉ，ｊ）
だから、
【００４２】
【数２】
0004212022.tif 000003
【００４３】
となる。ここで、Ｊｐｉ，ｊは、ｐｉ，ｊのθＧに関するヤコビアンであるから、以下に示す文献４の方法などを用いて計算することができる。これによって得られたＪＬｉ，ｊの和を計算するとＪＬｉが計算できる。
（文献４）
D.E. Orin and W.W. Schrader: “Efficient Computation of the Jacobian for Robot Manipulators,” International Journal of Robotics Research, vol.3, no.4, pp.66-75, 1984.（リンク位置の関節角に関するヤコビアンを高速に計算する方法）
【００４４】
ＪＬｉをすべてのワイヤについて集めた行列ＪＬ（ＪＬ＝［ＪＬ１  ＪＬ２  …ＪＬｉ…］）を用いて、筋・腱の発生する力ｆとそれと等価な一般化力τＧの関係は次式のように表される。
τＧ＝ＪＬＴｆ          （１）
以下、この式に基づき順動力学・逆動力学計算を行うための手順を示す。
【００４５】
３−３．順動力学計算
順動力学計算では筋力（発生力）ｆが与えられているので、式（１）に従ってτＧを計算し関連発明「リンク系動力学高速計算法（特願 2001-228804）」等による順動力学計算を行う。
【００４６】
図１５は、順動力学計算についてのフローチャートを示す。
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータを記憶部のモデルデータファイルから読み込む（Ｓ１０１）。処理部は、身体モデルに加えられる、剛体リンクに対する外力又は所望の発生する力等の、筋・腱・靭帯についてのアクチュエータに対応するワイヤ／バーチャルリンクに発生される又は発生する発生力ｆを記憶部の発生力ファイル３２から読み込む（Ｓ１０３）。処理部は、記憶部の剛体リンクファイル３４から現在の剛体リンクの角度・位置・速度を読み出す（Ｓ１０５）。処理部は、モデルデータ及び剛体リンクのデータに基づき、ワイヤ長さの関節角度に関するヤコビアンＪＬを計算する（Ｓ１０７）。
【００４７】
図１６に、ヤコビアンＪＬの計算についてのフローチャートを示す。すなわち、「３−２．力学計算の準備」で説明したように、次の手順でＪＬを求めることができる。
（１）処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度からワイヤｉのワイヤ長ｌ及び経由点（始点・終点を含む）の位置ｐｉ，ｊを計算する（Ｓ１０７１）。
（２）処理部は、［数２］に従い、ヤコビアンＪＬｉ，ｊを計算する（Ｓ１０７３）。
（３）処理部は、［数１］に従い、求めたＪＬｉ，ｊの総和によりＪＬｉを求め、ＪＬ＝［ＪＬ１  ＪＬ２  ・・・  ＪＬｉ  ・・・］よりＪＬを求める（Ｓ１０７５）。
（４）処理部は、ＪＬをヤコビアンファイルに記憶する（Ｓ１０７７）。
【００４８】
処理部は、求めたＪＬに基づき、読み出した筋・腱・靭帯の発生力ｆを前出した（１）式により一般化力τＧに変換する（Ｓ１０９）。すなわち、処理部は、剛体リンクのヒンジ（関節）でのトルク（例：球面、３自由度）にこれらの発生力ｆを変換する。処理部は、記憶部の一般化力ファイル３５に求めた一般化力τＧを記憶する（Ｓ１１１）。
【００４９】
処理部は、一般化力τＧを受けた結果発生する運動を剛体リンク系の順動力学計算法により計算する（Ｓ１１３）。すなわち、処理部は、一般化力τＧと現在の剛体リンクの角度及び位置から全身の剛体リンクの加速度を求め、求めた加速度に基づき、各剛体リンクの運動の結果としての速度及び位置を計算する。処理部は、求めた剛体リンクの角度・位置・速度を剛体リンクファイル３４に記憶する（Ｓ１１５）。この際、時刻、順番等の識別番号等に対応してそれぞれの状態又はタイミング等で計算されたデータを適宜記憶することができる。
【００５０】
以下に、剛体リンク系の順動力学計算について説明する。まず、次のような式が与えられるとする。
θ’’＝Ａ−１（θ）｛τＧ―Ｂ（θ，θ’）―Ｃ（θ）｝
（  ここで、
θ：角度、
θ’：速度、
θ’’：加速度、
Ａ（θ）：慣性行列、
Ｂ（θ，θ’）：コリオリ遠心力、
Ｃ（θ）：重力  ）
なお、これらＡ（θ）、Ｂ（θ，θ’）、Ｃ（θ）は、モデルデータ等から決定される。
このような、上式において、τＧ、θ（角度）、θ’（速度）が与えられたとき、θ’’（加速度）を求めるのが順動力学計算法である。
【００５１】
３−４．  リンク系動力学高速計算法
３−４−１．  概要
本計算法は以下の手順からなる（特願２００１−２２８８０４参照）。
手順１．  組立：関節による拘束がなく全リンクが独立な状態から、関節を１個ずつ追加し、新しい関節における拘束力とまだ追加されていない関節の加速度を仮想仕事の原理に基づき計算する（文献５参照）。なお、この時点で計算される拘束力と加速度は実際のリンク系における値ではない。
手順２．  分解：手順１．とは逆の順序で関節を切断しながら、実際のリンク系における切断関節の拘束力と関節加速度を決定していく。
（文献５）
Y. Nakamura and M. Ghodoussi: Dynamics Computation of Closed-Link Robot Mechanisms with Nonredundant and Redundant Actuators, IEEE Transactions on Robotics and Automation, vol.5, no.3, pp.294-302,1989.
【００５２】
３−４−２．  リンク系の例
図１７に、２リンクの説明図を示す。
以下、図のような関節ｉと剛体リンクｐｉ、ｃｉからなる２リンク系を例に具体的な計算法を示す。
【００５３】
まず運動学的な関係を考える。リンクｐｉ、ｃｉに固定された座標系の並進速度・角速度をまとめたベクトルをそれぞれｒ’ｐｉ、ｒ’ｃｉとする。なお、「’」は微分を示す。また、関節ｉの位置でのリンクｐｉ、ｃｉの重心の速度をそれぞれｒ’ｉ，ｐｉ、ｒ’ｉ，ｃｉとし、関節ｉの拘束条件が行列ＫＣｉを用いて
ＫＣｉ（ｒ’ｉ，ｃｉ−ｒ’ｉ，ｐｉ）＝Ｏ      （ａ１）
と表されているものとする。ここでＫｃｉは、モデルデータ（関節角度、剛体リンク長、等）により計算される。同様に関節ｉの関節速度θ’ｉが行列ＫＪｉを用いて、
θ’ｉ＝ＫＪｉ（ｒ’ｉ，ｃｉ−ｒ’ｉ，ｐｉ）      （ａ２）
となるものとする。ここで、ＫＪｉは、モデルデータ（リンクの結合点、等）により計算される。ｒ’ｃｉ、ｒ’ｐｉ，とｒ’ｉ，ｃｉ、ｒ’ｉ，ｐｉの関係はヤコビアンＪｉ，ｃｉ、Ｊｉ，ｐｉを用いて以下のように表される。
ｒ’ｉ，ｋ＝Ｊｉ，ｋｒ’ｋ      （ｋ＝ｃｉ、ｐｉ）      （ａ３）
ここで、ヤコビアンＪｉ，ｋは関節位置の速度からリンク重心の速度を計算するものである。
【００５４】
次に運動方程式を考える。各リンクの原点周りの慣性行列をＭｋ、重力・速度依存項（ひとつのリンクのコリオリ遠心力、ジャイロ効果）をＣｋ、作用するリンクの重心位置での一般化力をτｋ，（ｋ＝ｃｉ，ｐｉ）とすると、運動方程式は以下のようになる。なお、Ｍｋ、Ｃｋ、は、モデルデータから計算される。
【００５５】
Ｍｃｉｒ’’ｃｉ＋Ｃｃｉ＝τＧｃｉ（ｋ＝ｃｉ，ｐｉ）      （ａ４）
τＧ＝［τ１    τ２    τ３・・・τｉ・・・］
ｒｐｉ，ｒｃｉをこの系の一般化座標と考えると、６自由度のリンク系２つが関節ｉで拘束された閉リンク機構とみなせる。このとき、拘束力（関節で発生するトルク以外の全ての力）Ｆｉ、関節トルクτｉと一般化力の関係は仮想仕事の原理より次のようになる（上述文献参照）。
【００５６】
τＧｃｉ＝ＨＴｉ，ｃｉＦｉ＋ＨＴｊｉ，ｃｉτｉ      （ａ５）
τＧｐｉ＝−ＨＴｉ，ｐｉＦｉ−ＨＴｊｉ，ｐｉτｉ      （ａ６）
ここでＨｉ，ｋ＝ＫｃｉＪｉ，ｋ
Ｈｊｉ，ｋ＝ＫＪｉＪｉ，ｋ
（ｋ＝ｃｉ，ｐｉ）
である。
【００５７】
式（ａ１）、（ａ３）を時間微分した式と式（ａ４）−（ａ６）を解くと拘束力Ｆｉが次式のように求まる。
Ｆｉ＝Ｓ−１ｉｉ（−ＳＪｉｉτｉ＋Ｈｉ，ｃｉＭ−１Ｃｃｉ−Ｈｉ，ｐｉＭ−１ｐｉＣｐｉ）
Ｓｉｉ＝Ｈｉ，ｐｉＭ−１ｐｉＨＴｉ，ｐｉ＋Ｈｉ，ｃｉＭ−１ｃｉＨＴｉ，ｃｉ
ＳＪｉｉ＝Ｈｉ，ｐｉＭ−１ｐｉＨＴＪｉ，ｐｉ＋Ｈｉ，ｃｉＭ−１ｃｉＨＴＪｉ，ｃｉ
さらにこれを用いて関節加速度θ’’ｉを計算する。
以上の計算法を拡張すると、任意の２つのリンク系を接続する計算手順が導出できる。
【００５８】
３−４−３．  並列計算
並列計算時の計算手順は以下のようになる。
（１）全リンクをプロセス数個のグループに分割する。
（２）各グループ内でリンクを接続する計算を並列に行う。
（３）手順２．でできたグループどうしを接続する計算を可能ならば並列に行い、リンク系を完成させる。
このように本計算法は高い並列性を持っており、プロセス数に応じて最適なスケジューリングが可能である。
【００５９】
３−５．逆動力学計算
逆動力学計算では、まず、次に示す文献６などの計算法を用いて通常のリンク系の逆動力学計算を行ってτＧを計算してから、式（１）を解く。このとき、筋・腱・靭帯についてはそのバイオメカニカルな特性に対して問題に応じたモデル化を行うことが必要である。例えば、筋・腱・靭帯は引っ張り力しか発生できないので、ｆの要素はすべて負であるなどのようにモデルを仮定することができる。
（文献６）
J.Y.S. Luh, M.W. Walker and R.P.C. Paul: “On-line Computational Scheme for Mechanical Manipulators,” ASME Journal on Dynamic Systems, Measurement and Control, vol.104, pp.69-76, 1980.（リンク系の逆動力学を高速に計算する方法）
【００６０】
図１８は、逆動力学計算についてのフローチャートを示す。
処理部は、力学計算の対象となる剛体リンク及びワイヤ／バーチャルリンクの形状及び力学データを含むモデルデータを記憶部のモデルデータファイル３１から読み込む（Ｓ２０１）。処理部は、現在の剛体リンクの角度（関節角）・位置・速度を記憶部の剛体リンクファイル３４から読み込み（Ｓ２０３）、また、剛体リンクに与えられる加速度を加速度ファイル３３から読み込む（Ｓ２０５）。
【００６１】
処理部は、モデルデータ及び現在の剛体リンクの角度・位置・速度に基づき、上述のように、各々のワイヤの長さの関節角度に関するヤコビアンＪＬを計算する（Ｓ２０７）。
処理部は、ニュートン・オイラー法等による剛体リンク系の逆動力学計算法により、加速度ファイル３３から読み出した剛体リンクの加速度と、剛体リンクファイル３２から読み出した角度及び速度に基づき、その剛体リンクについての与えられた加速度による運動を発生するのに必要な一般化力τＧを計算する（Ｓ２０９）。
【００６２】
以下に、剛体リンク系の逆順動力学計算について補足説明する。まず、次のような式が与えられるとする。
Ａ（θ）θ’’＋Ｂ（θ，θ’）＋Ｃ（θ）＝τＧ
（  ここで、
θ：角度、
θ’：速度、
θ’’：加速度、
Ａ（θ）：慣性行列、
Ｂ（θ，θ’）：コリオリ遠心力、
Ｃ（θ）：重力  ）
なお、これらＡ（θ）、Ｂ（θ，θ’）、Ｃ（θ）は、モデルデータ等から決定される。上式において、θ（角度）、θ’（速度）及びθ’’（加速度）が与えられたとき、τＧを求めるのが逆動力学計算法である。
【００６３】
処理部は、記憶部の一般化力ファイル３５に求めた一般化力τＧを記憶する（Ｓ２１１）。
処理部は、（１）式に従い、先に求めたＪＬに基づき、一般化力τＧから全身の剛体リンクを運動させる筋・腱・靭帯のワイヤの張力に対応する、各ワイヤ／バーチャルリンクに発生される発生力ｆを求める（Ｓ２１３）。なお、処理部は、求めた発生力に基づき、運動の結果としての剛体リンクの速度及び加速度を計算することもできる。処理部は、求めた剛体リンク発生力ｆを発生力ファイル３２に記憶する（Ｓ２１５）。
【００６４】
４．追記
本発明の力学モデル計算方法又は力学モデル計算装置・システムは、その各手順をコンピュータに実行させるための力学モデル計算処理プログラム、力学モデル計算処理プログラムを記録したコンピュータ読み取り可能な記録媒体、力学モデル計算処理プログラムを含みコンピュータの内部メモリにロード可能なプログラム製品、そのプログラムを含むサーバ等のコンピュータ、等により提供されることができる。
【００６５】
【発明の効果】
本発明によれば、骨の幾何データと筋・腱・靭帯のデータを持った人体の詳細なモデルを市販のモデリングソフトウェアにより作成することができる。また、それを本発明の方法を用いてファイルに保存することにより、多数のモデルをデータベース化したり、複数のアプリケーションで共用することができる。
また、本発明によれば、骨の幾何データと筋・腱・靭帯のデータを持った人体の詳細なモデルに対して順動力学計算（筋力から運動を計算）および逆動力学計算（運動を行うのに必要な筋力・靭帯力を計算）を高速に実行することができる。
【図面の簡単な説明】
【図１】本実施の形態を利用したシステムの説明図の一例。
【図２】筋・腱・靭帯のワイヤモデルの説明図の一例。
【図３】上腕骨に停止する小円筋のモデル説明図の一例。
【図４】下肢帯の腹側に位置する内閉鎖筋モデルの説明図の一例。
【図５】大胸筋モデルの説明図の一例。
【図６】二頭筋の２つのモデルの説明図。
【図７】上腕二頭筋のモデルの説明図。
【図８】肘関節における靭帯の配置と、靭帯の拘束で与えられる肘関節対偶の説明図。
【図９】肘関節靭帯のモデル化の説明図。
【図１０】  Transformノードの書式の説明図の一例。
【図１１】筋・腱・靭帯情報と骨形状データを含んだＶＲＭＬデータの階層構造の説明図の一例。
【図１２】本実施の形態に関するハードウェアの構成図。
【図１３】本実施の形態を利用したシステムの説明図の一例。
【図１４】筋・腱・靭帯のワイヤモデルの構成図。
【図１５】順動力学計算についてのフローチャート。
【図１６】ヤコビアンＪＬの計算についてのフローチャート。
【図１７】２リンクの説明図。
【図１８】逆動力学計算についてのフローチャート。
【符号の説明】
１    処理部
２    入力部
３    出力部
４    表示部
５    記憶部
５１  モデルデータファイル
５２  発生力ファイル
５３  加速度ファイル
５４  剛体リンクファイル
５５  ヤコビアンファイル
５６  一般化力ファイル
【図１】
0004212022.tif 000004
【図２】
0004212022.tif 000005
【図３】
0004212022.tif 000006
【図４】
0004212022.tif 000007
【図５】
0004212022.tif 000008
【図６】
0004212022.tif 000009
【図７】
0004212022.tif 000010
【図８】
0004212022.tif 000011
【図９】
0004212022.tif 000012
【図１０】
0004212022.tif 000013
【図１１】
0004212022.tif 000014
【図１２】
0004212022.tif 000015
【図１３】
0004212022.tif 000016
【図１４】
0004212022.tif 000017
【図１５】
0004212022.tif 000018
【図１６】
0004212022.tif 000019
【図１７】
0004212022.tif 000020
【図１８】
0004212022.tif 000021