見出し画像

動かして学ぶバイオメカニクス #1 〜身体運動の力学解析を目指して〜

スポーツなどの身体運動を力学に基づき分析し,身体運動のスキルなどを解明しようとする「スポーツバイオメカニクス」.スキルの解明などを通して競技力向上などを目指す学問である.したがって,バイオメカニクスの基本は力学である.

少し長い道のりになるが,このマガジンでは読者が全身の逆動力学解析のプログラムをご自身で実行し確認できるようになることを目標とする.



バイオメカニクスって?

学会発表のタイトルで「〇〇のバイオメカニクス的研究」というタイトルをときどきみかけることがある.しかし,このタイトルはあまりにも広すぎて何を行いたい研究か限定しないことになるだろう.そもそも「バイオメカニクス的」とは一体何か.冒頭,力学解析のよって運動スキルの解明を行うがバイオメカニクスと述べたが,力学解析を行っただけでバイオメカニクス的なのだろうか?

そこで,ここではバイオメカニクスがどのような学問なのかを問い直す.

なお,スポーツ科学で「バイオメカニクス $${\approx}$$スポーツバイオメカニクス」だが,バイオメカニクスの対象はヒトや運動だけでない.バイオメカニクスの対象とする領域は広く,対象はヒトだけでなく生物全般で,運動だけでもなく,臓器,血管,骨なども対象だ.この記事の対象は,ヒトの運動,特にスポーツにフォーカスしている.

一般にスポーツバイオメカニクスは,スポーツの身体運動を中心に対象としている.ここでもスポーツで行われる運動を例として取る上げるが,筆者は歩行やリーチング運動のような日常運動行う身体運動とスポーツで行う身体運動に力学的観点からは境界はないと考える.スポーツのような極限を目指す運動は身体運動の延長で,運動の目的は異なるがむしろ日常行う運動の「ヒトらしさ」を顕在化させる.

力学が身体運動を拘束する

ヒトの運動も当然ながら力学法則に従う.そこで,多くのバイオメカニクスの教科書も力学の教科書をなぞった内容のものが多い.これは致し方ないように思える.

しかし,スポーツバイオメカニクスは身体特有の問題を扱う学問であるので,その教科書も単なる力学の抜粋では意味がない.物理学者が書いた力学の教科書を見かけ内容をパラパラとめくっていると,身体運動を多くの題材として取り上げており一瞬これは面白いと思ったのだが,その内容がスポーツバイオメカニクスの教科書の内容とあまりにそっくりで驚いたことがある.もし,皆さんの手元にバイオメカニクスの教科書があるなら,眺めていただきたい.題材はスポーツや身体運動かもしれないが,「運動の法則,運動量,重心」と,目次だけは古典力学の教科書と違いがないかもしれない.しかし,力学はしっかりと力学の専門書や講義で学ぶのがよい.中途半端な理解はかえって問題を引き起こす.

では,一通り力学を理解し,関節トルクなど分析する力学解析(正確には逆動力学解析)を行えば,そのスキルについて理解できるのだろうか.答えはノーである.その背後にある問題の構造が理解できないと,たとえ一流の選手の分析を行い,特徴がわかってもスキルの物理的な本質を理解することは難しいだろう.たとえば,走速度と股関節のトルクに相関があったとしても,バイオメカニクスで問われているのはその身体運動に特有な「物理的意味」である.

形式的に(たとえば導出方法やその物理的意味を問わず,導出された式だけを)説明し,たとえば角運動量を計算してみてもほとんど意味がない.対象が身体になっただけで,身体の角運動量や角速度を計算しても,それは古典力学の教科書をなぞることになるだけだろう.導出や,身体運動にとっての物理的意味を理解できずに,身体における新しい力学問題が解決できることはまずなく,問いは永遠にブラックボックスのままだろう.

動かして学ぶ

このため,このシリーズでは「動かして学ぶ」というタイトルに反して,運動方程式等の導出や物理的意味についてページを多く割くことご容赦いただきたい.バイオメカニクスの基礎となる力学は数理から成り立つ学問で,いろいろな事象を式を通して理解するだけでなく,実際に実験データを多様に計算することで理解を深めることができる.したがって,ここで提示したプログラムを単に「動かす」だけでなく,ここで示していく(残念ながらあまりできのよくない)コードを改変し,さらに多様に計算し「動かして」学んでいただきたい.

数理や式は最も正確に他の人に,その意味を伝達する手段である.式がしっかりと定義されていれば,曖昧さも排除できる.しかし,式を理解するフェーズでは実際のデータを利用した計算によって確認を行わない限り理解できないこともある.そのような計算する行為がより強固な力学やバイオメカニクスの理解となるだろう.ここで示すコードはあくまでも参考程度に利用し,まったく最初から自分のコードに書き改めていただければと思う.もちろん間違いがないように最新の注意を心がけているが,それは起こりうる.信頼しないことだ.自分のコードで書くことができて初めて理解ができるといえる.

ロボットに学ぶ

身体と似たような構造を有するロボティクスは,その構造などに基づいた独自の学問体系を構築してきた.

ヒューマノイドロボットの機械的な構造は,ヒトそのものである.したがって体系化されたロボティクスの解析方法や数理は,スポーツバイオメカニクスにとっても大いに参考になる.

しかし,ロボティクスはどちらかというと制御の学問である.ロボティクスのカバーするところは広い.画像解析,センサなどの計測系,構造など多岐にわたる.それを動かしてなんぼの世界である.その多くのロボットの制御では「安定性」が求められる.ヒューマノイドロボットなら,たとえアクロバティックな運動を行っていても,転ばないロボットの実現が必要となる.そのためは運動が不格好でも構わない.効率なども二の次である.結果,多くのロボットの動きは,ヒトや生物のそれとは随分と異なっている.安定に動かなくてははじまらないので,ロボティクスは制御優先の学問である.

一方,ヒトらしい運動たらしめる物理的理由を明らかにするのが,スポーツバイオメカニクスの目的の一つである.力学優先の学問である.ロボティクスの解析方法を参考にしつつ,身体特有の構造や,それに拘束されながら行う運動の物理的意味を体系的に明らかにし,身体特有の問題を物理的・数学的に体系化していく必要がある.

そもそも「バイオメカニクス」とは?

「バイオメカニクス」で検索すると,執筆時点でトップに表示されている河合塾のサイトには『生物のからだの仕組みや動き方について,力学的に研究する分野』のようにかかれている記述がオーソドックスかもしれない.おおよそこのような答え方に行き着くだろう.どこのサイトよりも,なぜか河合塾のサイトがトップに表示されているが,トップになる理由がわからなくもない.

Wikiでは『Biomechanics is the study of the structure, function and motion of the mechanical aspects of biological systems, at any level from whole organisms to organs, cells and cell organelles, using the methods of mechanics.Biomechanics is a branch of biophysics.』と記述され,Chat GPTに尋ねると『生物学と力学の両方の原理を組み合わせて、人間や動物の身体運動を研究する学問分野です。つまり、身体の構造や機能、運動や姿勢などを解剖学的、生理学的、物理学的な観点から調べることで、身体の様々な側面に関する情報を提供することができます。バイオメカニクスは、スポーツのパフォーマンス向上、怪我の予防、リハビリテーション、人工臓器の開発など、医療やスポーツ分野などの様々な分野で活用されています。また、植物や微生物など、生物の多様な形態や機能を研究するためにも使用されています。』とのこと.河合塾の記述のほうがコンパクトだ.

ChatGPTの定義は下手にバイオメカニクスという学問の定義を拘束すると,よろしくないことを示している.力学ベースで生物のメカニズムを対象とするだけで定義は十分のようだ.力学をベースに研究が行えるということは開かれている分野だ.古典力学の教科書を書き換える内容は発見されないだろうが,生物の力学を研究することで,実は生物に関する未知の力学原理はたくさんある.この記事を通じて,読者が実験データを解析しながら身体運動に関する力学を理解できるようになれば嬉しい.単にこのマガジンで述べる解析方法を利用し,公式やツールとして解析を行うことを目指しているのではなく,力学を理解し,ご自身であらたな解析方法を開発する能力を身につけてほしいと願う次第だ.

ヒトらしさを追求するスポーツバイオメカニクス

スポーツバイオメカニクスについて『身体運動について,力学的に研究する分野』以上の定義を与えることは,余計な定義を与えるだけで望ましい定義にはならない.しかし,ここであえて筆者なりの定義を与えるなら,すでに前述したが,それはスポーツのみならず「身体運動におけるヒトらしさ」を追求する学問といえ,その身体運動におけるヒトらしさは力学を通して理解を深めることができる.我々はヒトや生物の動きを見ると,言葉で表現はできないかもしれないが,ヒトらしさや生物らしさを感じることができる.バイオメカニクスとは「なぜヒトはそのように動くのか?」を問う学問である.ヒト(または生物)らしい運動の特徴やヒト(または生物)の運動に関係する事象の関係性を見つける学問ではない.単に力学解析を行う学問でもない.なぜを問う学問である.筆者は審議を確認をしたことがないが,スプリンターは腸腰筋が発達しているらしい.バイオメカニクスはこのような事実に基づき,走速度と腸腰筋の太さの関係を述べる学問ではなく,スプリンターの腸腰筋がなぜ発達するのかを問う学問で,その関係性がうまれる数理を問う学問である.この違いは大きい.

なぜなら,関係性の事実は数理やメカニズムの確認としては役立つが,いくら関係性の事実が積もっても,殆どの場合そこからメカニズムを導くことはないだろう.ほとんどのメカニズムは数理から導かれる.

他の学問領域との関係

例えば,運動に関係する神経に問題が発生することで,運動が自由に行えないなどの問題が発生する.このことは神経系が身体運動を拘束し,学習や巧みな制御に神経系が重要な役割を果たしていることを示している.しかし,制御のしやすさは運動パターン自体は拘束しない.制御すべきヒトらしい,または生物らしい運動パターン(投げ方,歩き方など)そのものを形成するのは力学である.神経系の制御による都合で「身体の動かし方自体」が決まることはない.なお,ロボティクスにおいて目標軌道をつくることを軌道生成と呼ぶ.ロボティクス風に述べるならば,ヒトらしい生物らしい軌道生成を考えるのがバイオメカニクスである.なお,その生物らしさアニマシー(animacy)呼ぶが,その運動パターンにおけるアニマシーは,生命維持のための運動における効率が形成している.つまり運動パターン形成におけるアニマシーは,効率と密接に関係する力学が強く拘束し,それを実現するように神経系や体格などが発展してきたといえ,ヒトらしい身体運動のスキルや運動パターン形成に関しては,バイオメカニクスが神経科学や心理学などよりも優先される学問といえる.

ただし,実際のスキルの獲得やトレーニングでは,これらの領域の理解なしには進むことはないだろう.運動パターンは力学が作るが,それを実際に動かしているのは神経系である.ここでの主張は運動パターン自身は,制御系(神経系)がつくるのではなく力学が形成をしているというだけである.

力学解析で身体運動を理解する

1.身体特有の構造

身体特有の力学構造はリンク構造である.この構造が身体運動を特徴づけているといっても過言ではない.したがって身体運動に関するバイオメカニクスとは,アクチュエータも含めて,この構造がもたらす(拘束する)運動の力学の数理を探求する学問とも言える.関節に作用するトルクを計算することでもないはずだ.そうでないなら古典力学との違いは対象がヒトの運動というだけだ.リンク構造の詳細については以降の章で述べていく.

リンク構造における運動学,力学問題は漸化式形式での記述を導くのが一般的である.マルチボディダイナミクスでも登場するこの漸化式形式は,プログラミングでは二分木探索再帰呼び出しと相性が良い.リンク機構の場合,再帰を用いることで,なによりもプログラムを簡潔に書けることがなにより嬉しい.リンク機構という複雑な構造故に,プログラムが複雑化しやすいが,このシリーズ(マガジン)でもクラスと再帰呼び出しを活用する.この定義が,この記事のコードを最も拘束している.決して一般的ではないが,最もきれいな記述を導くといまのところ筆者は信じている.

2.身体特有の解析方法

ロボティクスでも三角関数を多用する解析が多い.ロボットの構造はヒトと似ていると述べたが,大きな違いは直交するきれいな3軸構造を有する点で,関節構造とアクチュエータ(モータ)の対応を1対1に行う.このため,軸に対応したオイラー角での表現が有効なことが多い.たとえば,ヒトの肩や股関節を3自由度の球関節みなすことができるが,ロボットは3つのアクチュエータで制御し,オイラー角で表現するほうが制御が楽であろう.

しかし,ヒトの関節構造は少し複雑で,それほど厳密に骨の軸と関節軸が直交するような構造にはなっていない.このためロボットのように記述することは,かえって問題が多くなる.そもそも,3次元の逆動力学解析では姿勢を角度で表現する必要があまりない.「モーションにおける3次元回転」

では,単位クォータニオンについて述べたが,ここでは姿勢を単位クォータニオンで記述する必要も恐らくない.ただし,単位クォータニオンの理解は,回転の物理的本質を理解する上で,または全身運動の計測方法で役立つことだろう.

3次元の身体運動の逆動力学解析では,むしろ姿勢を単位クォータニオンを含めて,角度で表現しないことが懸命である.解析を行うだけなら,冗長ではあるが正規直交基底ベクトル(回転行列)のまま姿勢を表現するほうがなにかと都合が良い.

また,逆動力学解析で位置や姿勢の微分演算が伴う.微分演算は誤差を増大させる作用があるため,使用する位置データは正確さが求められる.モーションキャプチャを使用することで,まともに3次元の力学解析が可能になったと述べても過言ではない.幸い,近年,高精度なモーションキャプチャやモーションセンサで3次元のデータを容易に計測できるようになっているが,それらを利用する前提の解析方法とはなっていないことも多い.そこでここでは,モーションキャプチャベース,モーションセンサベースの解析方法を考えていく.

3.身体特有の力学問題

前述のリンク構造と関連するが,大きな動力源は体幹や下肢にの近位の部分に集中している.遠位の部位ほど小さく,先細りしている.その逆(先太り)となってしまうと,効率が悪くなりそうなことは想像できるが,物理的に自明ではない.ヒトに限らず多くの生物で同様であるが,このような分布構造も身体運動に特徴を与えている.

我々が外界の環境と接して作業や操作を行うのは,手先や足先であることが多く,そこには小さなアクチュエータ(筋肉)しかないため,効率よく作業を行うためには,大きな動力源からエネルギーを末端の効果器(遠位の手先や足先)に伝達する必要がある.この動力伝達が運動を強く拘束することは,

で述べた.多関節構造を持つ身体の運動パターン形成は,最適分布と最適エネルギー伝達問題に置き換えられると考えている.

ここで述べる力学解析の検証によって,身体特有の力学問題が明らかにされ,理論的な発展につながることを期待している.

このシリーズでの目標

このシリーズ(マガジン)「動かして学ぶバイオメカニクス」の第1の目標は,関節に作用する力,トルク,エネルギー変化率(パワー),角運動量ベクトル等を計算するなどの,身体運動の力学解析をご自身のプログラムで実行できるようになることである.ここではPythonのプログラムを示すが,もちろん数理的な理解があれば他の言語への移植もそう難しくはないはずである.

ただし,力学解析を行っただけでは,運動のスキル等の物理的・本質的な解明の問題解決にならないと述べた手前,身体特有の数理的な問題のいとぐちを学ぶことももう一つの目標とする.また,この第2の目標を実現する上でも,実際にヒトの運動で何が起きているかを観察・検証するために解析は必要となる.しかし,このマガジンでは第1の目標を優先し,第2の目標についてはあまり深入りしない予定である.

Pythonはフリーで,高価なMatlabなど使用せずとも,必要なほとんどの科学技術用のツールが揃っている.とくに行列の計算にも優れ,プログラミング言語としても,身体やロボットのようなリンク機構を記述する上で適している.ただし,筆者は決してプログラミングに長けているわけではなく,提示するプログラムの例は,プログラマーから見ると汚い記述かもしれないので,ご指摘いただければ可能な範囲でとはなるが,適宜修正をしていきたい.

また,全身の力学計算ともなると,モーションキャプチャーによる全身計測が必要で,そのような計測環境が整っている方は決して多くはないであろう.そこで可能な範囲で計算する実験データの提供ができればと考えている.

最終的には,提供するデータとプログラム(若干の修正は,皆さんの環境に合わせて必要となることだろう)で,ご自身の力で力学解析を行えるようにと願っている.恐らく,筆者と読者の双方の努力が必要となるだろう(補足参照).

これらの力学解析は,特に逆動力学解析(inverse dynamic analysis)と呼ばれ,解析を行うためには,古典力学,線形代数,ベクトル解析,微積分(解析学)のごくごく基礎的な理解が必要とされる.力学はバイオメカニクスを通じて学ぼうとするよりも,力学の専門書や講義で学ぶことをおすすめする.大学で学んでいれば,ここで行う力学解析には十分であるが,特殊な内容は,その都度参照するが,マガジン「モーションにおける3次元回転」,「フォースプレートによるの床反力計測」

などの記事を参照していただきたい.また,必要に応じて基礎的な力学等の解説も行い,必須となるフィルタリングなどについても別途述べていく予定である.

Python環境の構築

私のようなプログラミングが得意でない人にとっては,おそらく初めてPythonの計算環境の構築をするのはかなり辛いだろう.まわりの手助けが必要かもしれないが,とりあえずAnacondaによるPython環境を構築しておくのが無難と思われる.詳しい説明は他のサイトに譲るが,Pythonで科学技術計算に必要とされる各種ツールやライブラリを提供するディストリビューションで,Python環境構築はこれに任せるとよいだろう.

Anacondaの導入に関しては,上記サイトよりダウンロードしインストールするだけである.

その次に,実際にPythonでプログラミング(編集)し,実行する環境(統合環境)構築だが,これが好みもあるだろう.選択肢はたくさんあり,初心者にとっては,この選択が一番厄介である.

たとえば,お手軽なところではAnacondaに付属のJupyter Notebookが有名であるが,今後はJupyterLabに引き継がれるとのことなので,いま(2022.8月時点)なら,JupyterLabを使うのが良いかもしれない.

さらにJupyterLabのデスクトップアプリケーション版JupyterLab Desktop

というのも登場した.ここまでくるといままでJupyterすら知らない人には,なんのことかわからないだろうが,Jupyter NotebookやJupyterLab(Jupyter Notebookの後継)は計算をWebブラウザーで動かすのだが,JupyterLab Desktopはアプリであるので,このほうが初心者には楽かもしれない.

ちなみに,Jupyterは,「ジュピター」と呼ばれることが多いが,正しくは「ジュパイター」とのこと...

なお,Pythonの参考書は数多くあり,どの教科書が良いか推薦できるほど,比較してはいないが,参考文献に1つだけだが示しておく.このシリーズでは再帰とクラスを活用するが,文献1にはクラスについても丁寧に記載されている.

おわりに

冒頭,力学至上主義的な話になってしまったが,制御も学習もセットで重要である.ただ,そもそも我々が行っている運動のパターン形成は力学に強く依存するということだけで,それを,身につけるための学習については,制御や神経科学などの周辺領域の発展も必要となる.仮に力学問題が明らかになり,エリート選手の秘密が解明できたとしても,それをどのように還元すべきかという課題がバイオメカニクスには永遠につきまとう.バイオメカニクスの理解が学習やトレーニングに有効利用されるような発展に微力ながら貢献できるたらと心より願う.

アルゴリズムは多少工夫がされていると思うが,恐らくエンジニアからすると肝心のコードが汚いかもしれない.コード以外も,ご批判,ご指摘は歓迎する.共有して,より良いものを皆で作り上げれれば,バイオメカニクスを学ぼうという方だけでなく,(そこに時間を割きたくないような)周辺領域の分野と一緒に身体運動関連領域が発展することを期待している.

次章について

多関節構造が身体運動の力学的な特徴を拘束することを述べたが,次章では,多関節構造とプログラムの関係について述べていく.

参考文献

1)Python ゼロからはじめるプログラミング,三谷純著,翔泳社,2021


【著作権・転載・免責について】

権利の帰属
本ホームページで提示しているソフトウェアならびにプログラムリストは,スポーツセンシング社の著作物であり,スポーツセンシング社に知的所有権がありますが,自由にご利用いただいて構いません.

本ページに掲載されている記事,ソフトウェア,プログラムなどに関する著作権および工業所有権については,株式会社スポーツセンシングに帰属するものです.非営利目的で行う研究用途に限り,無償での使用を許可します.

転載
本ページの内容の転載については非営利目的に限り,本ページの引用であることを明記したうえで,自由に行えるものとします.

免責
本ページで掲載されている内容は,特定の条件下についての内容である場合があります. ソフトウェアやプログラム等,本ページの内容を参照して研究などを行う場合には,その点を十分に踏まえた上で,自己責任でご利用ください.また,本ページの掲載内容によって生じた一切の損害については,株式会社スポーツセンシングおよび著者はその責を負わないものとします.

【補足:プログラムの内容について】

プログラムや内容に対する質問に対しては,回答できないことのほうが多くなると思いますが,コメントには目は通します.回答は必要最低限にとどめますので,返信はあまり期待しないでいただけると幸いです,
「動かして学ぶ」という大それたタイトルをつけたものの,また,きれいなプログラムに対するこだわりはあるものの,実際のプログラミングのスキルは決して高くありません.最下部の方のコメント欄によるプログラムの間違いのご指摘は歓迎します.できるだけ反映します.


画像4
スポーツセンシング 公式note
スポーツセンシング 運動習慣獲得支援サービス「FitClip」
スポーツセンシング アスリートサポート事業


【解析・受託開発について】

スポーツセンシングでは,豊富な知見を持つ,研究者や各種エンジニアが研究・開発のお手伝いをしております.研究・開発でお困りの方は,ぜひスポーツセンシングにご相談ください. 
【例】
 ・データ解析の代行
 ・受託開発
  (ハードウェア、組込みソフトウェア、PC/モバイルアプリ)
 ・測定システム構築に関するコンサルティング など
その他,幅広い分野をカバーしておりますので,まずはお気軽にお問い合わせください.

株式会社スポーツセンシング
【ホームページ】sports-sensing.com
【Facebook】sports.sensing
【Twitter】Sports_Sensing
【メール】support@sports-sensing.com