特徴・機能
AnyBody 特徴
AnyBodyは、デンマークAnyBodyTechnorogy社が管理する、AnyBody Modelレポジトリ(AnyBody Managed Model Repository:AMMR)と、その実行ソルバーである AnyBody Modeling System(AMS)から構成されます。AMMRは、AMSですぐに使用できる筋骨格モデルとサンプルのオープンライブラリです。
AMMRは、次の2つの部分で構成されています:
①
ボディモデル:特定の筋骨格モデルを構築するためにカスタマイズおよびスケーリングできる人体モデル。
②
アプリケーション:特定のアプリケーション(車体の加速やブレーキペダルを押すなどの一般的な日常活動から労働環境固有のシナリオまで)でボディモデルが利用される場合のファイル。モデルは、学術機関の研究プロジェクトで、または学術機関と共同でAnyBody Technology社によって開発されています。 これらのモデルはAnyBody Technology社によって管理されており、AnyBodyは、さまざまな身体部位モデルをフルボディのスケーラブルな筋骨格モデルとして一緒に使用できるようにします。
ウェブ上では、AMSソルバを除き、AnyBodyチュートリアル、AMMRドキュメント、AMMRデータベースが公開されています。
以下のリンクからご覧になれます
■ フルボディ
AnyBodyの人体モデルは剛体である骨、骨の接合部である関節、筋腱で構成されています。それらを組み合わせた全身のモデルが最初から用意されており、外部からの力や道具を自由に追加することができます。
■ 「筋力計算のできる筋肉辞典」…バイオメカ系学生・理学療法士の新しいツールとして
AnyBodyの人体モデルの各身体部分は、詳細な死体/解剖学研究からのデータを利用して実装されるため、高い精度と解剖学的忠実度が保証されます。もちろん任意動作・外部環境下における、筋発揮力、筋収縮速度などが算出できますが、あらゆる骨格筋について、丁寧かつ詳細に筋肉名称・起始・停止、経由・付着・巻付位置が作りこまれており、いわば、「筋力計算のできる筋肉辞典」の役割が担えます。つまり、学生がより、人体筋骨格への洞察を深めるためのツールとして、格好の学習教材になり得ます。
・
腰椎モデル
腰椎には5つの椎骨があり、間に3つのDoF球状関節があり、188個の筋束と腹腔内圧のモデルがあります。
・
頸椎モデル
頸椎モデルには、T1からC2までの3つのDoF球形関節を備えた7つの椎骨が含まれています。
C2と頭蓋骨の間の1DoF関節と136個の筋束です。回転の中心はAmevoらに基づいています。
・
詳細手モデル
詳細な手のモデルは、17自由度を持つ手根骨のモデルです。
モデルには筋肉はありませんが、関節には関節アクチュエータが装備されているため、モデルを動的解析に使用できます。
・
上肢(shoulder-arm)モデル
モデルは、VU研究の被験者2とMAYO研究の被験者2のデータを使用して構築されています。
前腕を含むファイルは、MAYOスタディのデータに基づいて構築されています
・
トウェンテ(Twente)下肢モデルv.2.2
Twente下肢モデルバージョン2(TLEM2)は、TLEMモデルの後継モデルです。6自由度と169の筋肉が含まれています。
・
足詳細モデル(グラスゴー・マーストリヒトの足(GM-FOOT)モデル)
GITHUBから、以下の詳細モデルが参照できます。動作規定・スケーリングプロセスについて実装は進行中ですが、足詳細の筋および関節について詳細なモデリングが入手できます。
■ AnyBodyのインターフェース
AnyBodyの解析では基本的に複雑なアルゴリズムを作る必要はなく、動作と条件を設定するだけで半自動的に解析することができます。
それらの設定にはAnyScriptと呼ばれるスクリプト言語を使用します。
これは『Class』と呼ばれるユニットによる単純な定義、例えば、股関節を何度屈曲する、座標(x、y、z)に点を作る、などを組み合わせて、動きや条件を設定します。
『Class』はAnyBody特有のものですが、覚える必要は無く、AnyBody内で機能を調べたり、必要な機能を持つ『Class』を挿入することがいつでもできます。複雑なモデルや動作でも、『Class』による単純な定義を積み重ねることによって、簡単に構築して、再現することができます。
GUIはとてもシンプルで、AnyScriptと組み合わせることで、幅広い運用をすることができます。
右図はGUIのModel ViewとAnyScriptを組み合わせて、 「モデル」と「出力グラフ」、「力ベクトル」を同じ画面に表示したものです。
■ 多数の検証スタディ
AnyBody開発元は、解析結果の信頼性を評価するために、実測と比較した検証作業を定期的におこない、その論文を公開しています。
また、AnyBodyを用いたユーザが、2014年と2015年の"Grand Knee Challenge"というインビボでの膝関節負担結果と比較した、シミュレーション推定のコンペティションにおいて、受賞者となりました! AnyBodyをインストールすると、肩関節、脊椎、膝の人工関節等の検証で使用されたモデルが提供されます。
■ 人体モデルへのアクセスと編集
AnyBodyでは人体モデルを構成するすべてのデータにアクセスすることができます。それによって、どんな係数や計算によって、体型が決定されているのか、確認することができます。また、それらの数字は全て編集することができ、モデルの身長や体重、体脂肪率に加えて、足と胴、上腕と前腕など、各部位の比も自由に変えることができます。
さらに、データがあれば、既存のモデルを使うだけでなく、人種や性別、年齢などに応じた、新しい人体モデルを作成することもできます。 筋肉や骨のパラメータを変更し、モデルの編集を行うことで、筋肉の強い人や弱い人、片足の人や人工関節に置換した人など、特殊な身体の状態に合わせた解析をおこなうことができます。
■ クローズドチェインのシームレス対応
バイサイクリング、歩行、両手でモノをつかむこと等は、運動的に閉鎖しているシステムで、クローズドチェインと呼びます。バイオメカニックスには、クローズドチェインを含むモデルが非常に多いです。
AnyBodyは、オープンチェインの仮定に頼らず、モデルの全体的な位置解析をおこない、筋肉を含む平衡の冗長系を立て、筋動員アルゴリズムでモデルを解析します。ユーザはその過程をシームレスに実行できます。
■ 人体動作の入力
AnyBody Modeling Systemでは、 人体動作を規定する方法の一つとしてモーションキャプチャシステムを使う方法があります。その際のマーカセットの例として右図に、Vicon Plug–in-Gaitのマーカーセットを示します。
AnyBody Modeling Systemではモーションデータはc3d形式でのインポートに対応しております。
当社ではモーションキャプチャの測定を含め、AnyBodyを用いた運動中の筋活動などを解析、出力するサービスをおこなっております。詳細は以下のページをご確認ください。
■ 床反力の推定機能
AnyBodyには、反力の推定という機能があります。
これは、フォースプレートの設置が困難な場所やフォースプレートの無い場所での動作における反力を求めるのに大変役に立ちます。反力を推定したい部位に仮想筋と呼ばれるポイントを、フォースプレートの代わりに接触判定用のプレートを、それぞれ作成します。仮想筋とプレートの距離を条件にして、仮想筋の活動を制御するように設定し、仮想筋を含めた全身の筋肉に対して、筋活動の最適化をおこないます。そして、仮想筋の発揮する力から、反力を推定します。推定の際に設定するのは、接触判定用のプレートの範囲や摩擦係数などがあります。
■ 日本人の人体モデル
AnyBody Modeling Systemは、筋骨格モデリングシステムで、 剛体力学のアプローチで筋力や関節モーメントを計算します。そのため、結果の精度は、人体モデルの寸法に非常に依存すると考えられます。
デフォルトの人体モデルの寸法は、おおよそヨーロッパの欧米人の中央値に妥当します。しかし、日本人の人体寸法及び人体比率と異なる可能性がありますので、既存モデルを日本人の人体寸法に合わせるようにスケーリングする必要になります。
インターネット上や、研究機関からは体形データが提供されております。それらデータを含め、ユーザ様がお使いになりたい日本人の人体寸法データがある場合など、当社は、それらのデータを利用した人体モデルのスケーリング法を提供しています。
■ AnyScript
AnyBodyでは、AnyScriptと呼ばれるスクリプト言語でモデルを構築します。モデルは、剛体とみなされているセグメント(骨)、セグメント間の接合部、そして生理学的特性を持つ筋腱から構成されています。ドライバにより動作を定義し、ユーザは外部力を加えることが可能です。システムは、この動作に伴う個々の筋力と関節力の変動を計算します。これらの情報から、腱の弾性エネルギー、代謝、筋肉活性化と拮抗筋活動などの特性が導き出されます。
AnyScriptは、AnyBodyを動かすオブジェクト指向のモデリング言語です。構文的にはJavaやC++と似ていて、JavaScriptに近い言語です。上記枠内のスクリプトは、簡単な筋の組み合わせをAnyScriptモデルで記述したプログラムの一部です。
AnyScriptはオブジェクト指向の言語のため、セグメント、関節、筋、力、そして動作などの新しい要素を容易に追加することができます。これらの要素は全て筋骨格モデルの定番パーツであり、AnyScriptではこの要素を表すクラスが事前に定義されています。
例えばセグメントを追加する場合など、AnyScriptモデルの中から相当するオブジェクトの定義をおこなうだけで実行できます。セグメントの重量など要素のプロパティは、オブジェクト定義を設定するだけで定義されます。
AnyScriptは、変数と数式によって動作するという意味で本質的にパラメトリックです。
この方法で、腕の長さを人体の身長の関数としたり、全体重に釣り合う筋力を作成したりすることが容易におこなえます。モデル寸法間の複雑な身体計測関係を、自由に定義することが可能です。
AnyFolder BodyParameters = {
AnyVar BodyMass = 75;
AnyVar Density = 1000;
}; //Bodyparameters
AnySeg Foot = {
Mass = 0.0145*.BodyParameters.BodyMass;
AnyVar Length = 0.24;
AnyVar Radius= (Mass/(3.1416*Length*.BodyParameters.Density)
)^0.5;
■ 要素の再利用
体内の多くの要素は、多くのものが類似しています。そのため、新しい要素をゼロから定義することはほとんどありません。欲しい要素は、他のモデルや現在使用しているモデル内の別の箇所から、類似するものをコピーして利用できます。コピーの方法は、オブジェクト定義を行っている行をテキストとしてコピーし、挿入したい箇所に貼り付けるだけです。
■ MatLab、Python等で操作
Anybodyではコンソール版が提供されており、MatLabのようなサードパーティのソフトから操作することができます。さらに、Pythonからですと、"AnyPyTools"というツールキットが提供され、多数AnyBody解析の自動化、結果取得と処理、及びパラメータ解析を効率的におこなうことができます。