Diff動作解析チュートリアル(DIFFマーカーセットで測定したc3dデータを使って動作分析を行う)

DIFF 動作解析(Web 版)は、三次元動作分析装置(c3d)と床反力計のデータから、DIFF モデルに基づいて関節角度・身体重心・関節モーメント・関節パワーを計算する Web アプリです。この記事では使い方を説明します。

アプリを開く

目次:はじめに / 準備するデータ / 解析の手順 / ビューアの使い方 / 出力ファイル / 動作ごとの解析 / 主な設定 / 困ったときは

はじめに

データは外部に送信されません。 計算はすべてお使いのブラウザの中で行われます。c3d ファイルやその内容がサーバーに送られることはありません。

  • 推奨ブラウザ:Google Chrome、Microsoft Edge の最新版(パソコン)。
  • 初回の読み込み:計算環境(約 30 MB)を読み込むため、数十秒かかります。インターネット接続が必要です。2 回目以降はブラウザに保存されるので速くなります。
  • 解析の設定は、このブラウザに保存されます(c3d などのデータは保存されません)。

起動直後の画面。右上に「準備ができました」と表示されたら使えます。





準備するデータ

データ内容
動作データ(必須)解析する試行の c3d(マーカー座標と床反力計のアナログデータ)。
静止立位データ(推奨)DIFF 直立肢位(両足を肩幅に開き、つま先開き角 0°)で計測した c3d。体重の推定、足部座標系の補正、足関節角度の 0° の基準などに使います。
被験者の計測値性別、身長、膝関節左右径・足関節左右径(ノギスなどで計測)。体重は静止立位の床反力から推定できます。

マーカーセットは DIFF(検証データはViconで計測)を前提としています:左右の肩峰(SHD)、股関節(HIP)、膝関節(KNE)、外果(ANK)、第 5 中足骨頭(MP)、上腕骨外側上顆(ELB)、尺骨茎状突起(WRA)。名前が異なる場合は「DIFF モデルの設定」で変更できます。

膝関節・足関節左右径を入力しないと、その関節点はマーカー位置(DIFF 付録 A1 の第 1 近似)になり、とくに前額面の角度・モーメントの精度が下がります。

解析の手順


左側の設定欄

  1. 動作データの「ファイルを選択」で、解析する c3d を選びます。
  2. 静止立位データに、同じ被験者・同じ日の静止立位の c3d を選びます。
  3. 被験者情報で、性別・身長・膝関節左右径・足関節左右径を入力します。体重は 0 のままで静止立位から推定されます。
  4. 解析条件の「動作」で、歩行・立ち上がり・しゃがみ込みなどを選びます。動作に応じてイベントや相が検出されます。
  5. 必要に応じてフィルターや DIFF モデルの設定を変えます(通常は初期値のままで構いません)。
  6. 一番下の「解析する」を押します。数秒〜十数秒で結果が表示されます。

解析結果。上から、注意事項、ダウンロードボタン、相と所要時間(立ち上がりの場合)、床反力計の判定結果、ビューアの順に並びます。

結果で確認すること

  • 注意事項(黄色):左右径が未入力、足が床反力計の外で接地した、など。計算しなかった区間の理由もここに出ます。
  • 床反力計の判定結果:どの床反力計にどの足(または椅子など)が乗ったかを自動で判定しています。違っている場合は、左の「床反力計の割り当て」で手動に変えて、もう一度「解析する」を押します。

ビューアの使い方

結果の下にあるビューアで、スティックピクチャーと各指標のグラフを同期させて確認できます。ビューアは「ビューア(.html)をダウンロード」で保存すると、このアプリがなくても開けます。


ビューア。左に矢状面・前額面、右に 3D のスティックピクチャーとグラフ。

再生と描画区間



▶ で再生、Space キーで再生・停止、← → で 1 フレームずつ送ります。速度は 0.1〜1 倍。
  • 描画区間:開始・終了時刻を入力するか、「現在→開始」「現在→終了」で決めます。「相・周期から選ぶ」で、立ち上がりの各相や歩行周期をそのまま区間にできます。スティックピクチャー・グラフ・床面投影図がこの区間に限定されます。
  • 時間軸の上には、相(帯)とイベント(離殿・踵接地など)が表示されます。
  • 「被験者情報」を押すと、身長・体重などが表示されます。

3D スティックピクチャー

操作方法
回転左ドラッグ
移動右ドラッグ、または Shift+左ドラッグ
拡大・縮小マウスホイール、または「+」「−」
視点の切り替え「視点」から 斜め・右側方・左側方・前方・後方・上方
元に戻す「リセット」またはダブルクリック

マーカーにポインタを合わせると、名前と座標が表示されます。「マーカー名」「床反力ベクトル」「重心の軌跡」などはチェックボックスで切り替えます。

床面投影図

上から見た身体重心と床反力作用点(右・左・左右合成)の軌跡です。ホイールや「+」「−」で拡大・縮小、ドラッグで移動、「全体」で元に戻ります。点をクリックすると、その時刻へ移動します。

時系列グラフ

青が右、橙が左、緑が全身・左右合成です。グラフをクリック・ドラッグするとその時刻へ移動し、ポインタを合わせると値が表示されます。表示する指標は「表示する指標を選ぶ」で選びます。



出力ファイル

ファイル内容
Excel(.xlsx)関節角度、体節絶対角度、重心、床反力、各床反力計、関節モーメント、関節パワー、関節点座標、マーカー座標、イベント、解析情報(設定の記録)。動作によって「相・所要時間」「歩行パラメータ」「歩行周期_右/左」も入ります。
縦長 CSV(R 向け)1 行 1 値の tidy 形式(trial, frame, time_s, category, variable, side, unit, value)。
歩行周期 CSV歩行で、1 歩行周期を 0〜100 % に正規化した値(各周期)。
ビューア(.html)スティックピクチャーとグラフ。単独で開けるので、共同研究者への共有にも使えます。

R での読み込み例:

library(tidyverse)
d <- read_csv("sample02_DIFF_long.csv")
d |>
  filter(category == "関節モーメント", unit == "N·m/kg",
         str_detect(variable, "膝関節モーメント 屈曲")) |>
  ggplot(aes(time_s, value, colour = side)) + geom_line()

動作ごとの解析

動作検出されるイベント・相
立ち上がり動作開始(体幹前傾の開始)、離殿、足関節最大背屈、股関節伸展終了。第 1 相(屈曲相)・第 2 相(重心移動相)・第 3 相(伸展相)の所要時間。
しゃがみ込み動き始め(重心の下降開始)、着臀、座位到達。下降相・着座相の所要時間。
歩行踵接地・つま先離地(床反力計の接地が近ければそちらを採用)。歩行パラメータ(立脚期 %、ケイデンス、重複歩距離、歩行速度、歩幅、歩隔)。グラフの横軸を「歩行周期 %」に切り替えられます。

離殿・着臀は、椅子の下の床反力計で判定します。椅子の下に床反力計がない場合は、股関節点の高さの変化から推定します。

主な設定

設定説明(初期値)
カットオフ周波数マーカーのバターワース低域通過フィルター(6 Hz)。関節モーメントの計算には、床反力にも同じカットオフを使うのが推奨です。
床反力の閾値これ未満を無負荷とする鉛直力(20 N)。
関節点の近似法DIFF 付録 A1。股関節 3B(左右マーカー間距離の 18 % 内挿)、膝・足関節 3A(左右径の 1/2 内挿)。
静止立位の足関節角度を 0° とするマーカーの貼り方の影響を除くため、静止立位の背屈・底屈角を差し引きます(オン)。
関節モーメントの符号DIFF 解説書(膝 屈曲+、股 内転+)か、一般的な表記(膝 伸展+、股 外転+)。
関節モーメントの座標系遠位体節座標系(初期値)、近位体節座標系、実験室座標系。

計算方法の詳細(座標系、角度の定義、慣性係数、逆動力学など)は、リポジトリの計算仕様書 docs/methods.md にまとめています。論文の方法の記載に使ってください。

困ったときは

「準備しています…」から進まない

初回は計算環境の読み込みに数十秒かかります。数分たっても進まない場合は、インターネット接続を確認してください。所属機関のネットワークで外部サイト(cdn.jsdelivr.net)が遮断されていると読み込めません。

「マーカー ○○ が見つかりません」と表示される

c3d のマーカー名が DIFF の名前と違います。表示された「c3d にあるマーカー」を参考に、「DIFF モデルの設定」のマーカー名を合わせてください(左右の接頭辞 R/L を除いた部分を入力します)。

「体重が不明です」と表示される

体重を入力するか、床反力計に乗った静止立位データを指定してください。

関節モーメントが一部の区間で空欄になる

足が床反力計の外で接地している区間、両足が同じ床反力計に乗っている区間、椅子などが床反力計に乗っている区間(股関節のみ)は、正しく計算できないため空欄にしています。注意事項に理由が表示されます。

床反力計の判定が違う

左の「床反力計の割り当て」で、床反力計ごとに 右足・左足・その他(椅子など)・無視 を選び、もう一度「解析する」を押してください。

コメント