(57)【要約】【課題】筋力補助装置が備える駆動部の駆動力を算出する時間を短縮する。【解決手段】駆動力算出装置１は、駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、駆動部による支援または妨害の下で回動動作を行う時に、設定対象筋肉が発生すべき筋力の目標値とを取得する設定情報取得部２３と、推定筋力テーブル５８および骨格筋モデルデータ５３を取得し、これらのデータに基づいて、設定対象筋肉の目標値が実現可能であるかどうかを判定する目標筋力値評価部２４とを備えている。【選択図】図１
2008194460.tif 000002
【特許請求の範囲】
【請求項１】
筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における骨格の動作の支援または妨害、もしくはその両方を行う筋力補助装置が備える駆動部の駆動力を算出する駆動力算出装置であって、
上記駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で上記動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを取得する取得手段と、
上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および当該立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の上記目標値が実現可能であるかどうかを判定する目標値評価手段とを備えることを特徴とする駆動力算出装置。
【請求項２】
上記目標値評価手段は、上記目標値に対応した自由パラメータαが少なくとも１つは存在するかどうかを判定し、当該自由パラメータαが存在しない場合に、当該目標値は、実現不可能であると判定する請求項１に記載の駆動力算出装置。
【請求項３】
上記目標値評価手段は、上記目標値が少なくとも（１）式
ｒａｎｋ（Ａｕ１）＝ｒａｎｋ（〔Ａｕ１  Δｑｄ１〕）    …（１）
（ただし、上記式において、Δｑｄ１は、上記筋力補助装置を装着しない状態で関節を回動させるために必要な筋力と上記目標値との差であり、Ａｕ１は、上記設定対象筋肉が作用する関節の中心と当該設定対象筋肉が付着する骨格部分との間の距離である）
を満たすかどうかを判定することを特徴とする請求項１または２に記載の駆動力算出装置。
【請求項４】
上記取得手段が取得した目標値が実現可能であると上記目標値評価手段が判定した場合に、上記動作に関わる筋肉のうち、上記設定対象筋肉以外の筋肉である非設定対象筋肉が、上記筋力補助装置による支援または妨害が行われる状態での上記動作の時に発生する筋力の目標値を、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値と上記推定値と上記立体構成情報とに基づいて算出する目標値算出手段をさらに備えることを特徴とする請求項１に記載の駆動力算出装置。
【請求項５】
請求項１〜４のいずれか１項に記載の駆動力算出装置を動作させる駆動力算出プログラムであって、コンピュータを上記各手段として機能させるための駆動力算出プログラム。
【請求項６】
請求項５に記載の駆動力算出プログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項７】
筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における動作の支援または妨害、もしくはその両方を行う筋力補助装置であって、
請求項１〜４のいずれか１項に記載の駆動力算出装置を備え、
上記駆動部は、上記駆動力算出装置によって算出された駆動力を発生させることを特徴とする筋力補助装置。
【請求項８】
筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における骨格の動作の支援または妨害、もしくはその両方を行う筋力補助装置が備える駆動部の駆動力を算出する駆動力算出装置における駆動力算出方法であって、
上記駆動力算出装置は、取得手段と目標値評価手段とを備え、
上記駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で上記動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを上記取得手段が取得する取得工程と、
上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の目標値が実現可能であるかどうかを上記目標値評価手段が判定する目標値評価工程とを含むことを特徴とする駆動力算出方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、生体が有する関節における動作の支援または妨害を行う筋力補助装置が備える駆動部の駆動力を算出する駆動力算出装置、駆動力算出方法および駆動力算出装置を備える筋力補助装置に関するものでもある。
【背景技術】
【０００２】
近年の急激な高齢化社会への移行に伴って、福祉分野では、高齢者の介護を支援する福祉支援機器に対するニーズが高まっている。介護において最も負担のかかる作業は、被介護者の移動や姿勢調節である。このような作業時に介護者の筋力負担を軽減する介護用筋力補助装置が注目されている。
【０００３】
例えば、特許文献１には、軽量かつ小型の空気圧アクチュエータにより作動する、介護用筋力補助装置について記載されている。
【０００４】
また、特許文献２には、人の筋肉の負担を軽減し、全体の構成を小型化したパワーアシスト機器について記載されている。
【０００５】
さらに他の筋力補助装置としては、カリフォルニア大学のカゼルーニらが開発したＢＬＥＥＸ、筑波大学の山海らが開発したＨＡＬ等がある。
【０００６】
また、特許文献３には、筋力補助装置が所定の動作を支援または妨害する時に、筋肉にかかる負荷が所望の負荷になるような駆動力を算出できる駆動力算出装置が開示されている。
【０００７】
これらの筋力補助装置は、スポーツ工学分野およびリハビリテーション工学分野においても、筋肉の負担の軽減または増加を行いつつ筋力トレーニングを行うために有効である。
【０００８】
ところで、スポーツ工学分野およびリハビリテーション工学分野では、新たな運動能力の評価方法やリハビリテーション方法を開発するために、人間の運動中の筋活動を推定することに関して活発に研究されている。
【０００９】
例えば、特許文献４には、被験者が運動装置を駆動した時の運動特性を計測し、逆解析手法を用いて生体の筋力を推定する技術について記載されている。
【００１０】
また、ある動作を行った時の生体の筋力を推定するためのソフトウェアとして、Gsport社の３Ｄマッスルシミュレータ「ＡＲＭＯ（アルモ）」や、Musculographics社製の全身筋骨格モデル「ＳＩＭＭ」等が販売されている。
【特許文献１】特開２０００−５１２８９公報（２０００年２月２２日公開）
【特許文献２】特開２００４−１０５２６１公報（２００４年４月８日公開）
【特許文献３】国際公開第２００６／０９２８７２号パンフレット（２００６年９月８日公開）
【特許文献４】特開平７−３１３４９５号公報（１９９５年１２月５日公開）
【発明の開示】
【発明が解決しようとする課題】
【００１１】
ところで、介護者が装着する筋力装着装置としては、介護者にかかる負担が自然なものになるように、筋力特性を考慮しながら各筋肉にかかる負担を個別に調節できることが望まれる。
【００１２】
また、身障者のリハビリテーション効果を向上させるためには、負荷をかけるべき筋肉とかけない方が好ましい筋肉とを特定して、負荷をかけない方が好ましい筋肉の筋力を重点的に支援するように、各筋肉にかかる負担を調節できることが望まれる。筋力トレーニングについても同様に、負荷をかけるべき筋肉に対して重点的に負荷がかかるように調節できることが望まれる。
【００１３】
しかしながら、特許文献１および２には、筋力補助装置が所定の動作を支援する時に、各筋肉にかかる負荷を調節する技術について何ら記載されていない。また、上述のＢＬＥＥＸおよびＨＡＬも、各筋肉にかかる負荷を筋肉ごとに調節できる機構を備えていない。
【００１４】
これに対して、特許文献３に記載の駆動力算出装置を筋力補助装置に適用すれば、所定の動作を行う時の筋肉にかかる負荷を筋肉ごとに調節できる。上記駆動力算出装置は、所定の動作を行う時に、特定の筋肉に発生させるべき筋力の目標値がユーザによって入力され、この目標値と所定の動作に必要な関節のトルクとに基づいて、筋力補助装置が備える駆動部（人工筋肉）の駆動力を算出する。
【００１５】
しかし、上記駆動力算出装置を用いる場合には、筋力補助装置の支援対象としたい筋肉の目標筋力に加え、支援対象としない筋肉に対しても目標値を与えなくてはならない。また、駆動力算出装置が算出した筋力の組み合わせが目標値から離れている場合には、目標筋力を再度設定することになる。
【００１６】
それゆえ、上記駆動力算出装置では、筋力補助装置の駆動部の駆動力を算出するまでに時間がかかり、しかも、最終に適切な駆動力が算出できるとは限らないという問題が生じる。
【００１７】
本発明は、上記の問題点を解決するためになされたもので、その目的は、筋力補助装置が備える駆動部の駆動力を算出する時間を短縮し、筋力補助装置の支援対象（または妨害対象）となる筋肉の筋力がより確実に目標値に近づくように駆動部の駆動力を算出することができる駆動力算出装置を提供することにある。
【課題を解決するための手段】
【００１８】
本発明に係る駆動力算出装置は、上記の課題を解決するために、筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における骨格の動作の支援または妨害、もしくはその両方を行う筋力補助装置が備える駆動部の駆動力を算出する駆動力算出装置であって、上記駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で上記動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを取得する取得手段と、上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および当該立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の上記目標値が実現可能であるかどうかを判定する目標値評価手段とを備えることを特徴としている。
【００１９】
本発明に係る駆動力算出方法は、上記の課題を解決するために、筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における骨格の動作の支援または妨害、もしくはその両方を行う筋力補助装置が備える駆動部の駆動力を算出する駆動力算出装置における駆動力算出方法であって、上記駆動力算出装置は、取得手段と目標値評価手段とを備え、上記駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で上記動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを上記取得手段が取得する取得工程と、上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および当該立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の目標値が実現可能であるかどうかを上記目標値評価手段が判定する目標値評価工程とを含むことを特徴としている。
【００２０】
従来の構成では、設定対象筋肉の目標値に対応する駆動部の駆動力を算出するための複数の処理を段階的に行い、最終的に駆動部の駆動力を算出した後に、当該駆動力によって実現される設定対象筋肉の筋力が目標値からかけ離れているかどうかを判定していた。そのため、設定対象筋肉の目標値が実現不可能である場合に、そのことをユーザに報知するまでに時間がかかる。
【００２１】
上記の構成によれば、目標値評価手段は、取得手段が取得した筋肉特定情報が示す設定対象筋肉の目標値が実現可能であるかどうかを、上記推定値および立体構成情報に基づいて判定する。つまり、目標値評価手段は、駆動部の駆動力を算出することなく、設定対象筋肉の目標値が実現可能であるかどうかを判定する。
【００２２】
それゆえ、設定対象筋肉の目標値が実現不可能であるかどうかの判定を従来よりも短時間で行うことができる。従って、駆動部の駆動力を算出する時間を短縮することができる。
【００２３】
上記目標値評価手段は、上記目標値に対応した自由パラメータαが少なくとも１つは存在するかどうかを判定し、当該自由パラメータαが存在しない場合に、当該目標値は、実現不可能であると判定することが好ましい。
【００２４】
上記の構成により、設定対象筋肉の上記目標値が実現可能であるかどうかを解析的に判定することができ、繰返し実験によって確認する必要がない。
【００２５】
上記目標値評価手段は、上記目標値が少なくとも下記（ｉ）式
ｒａｎｋ（Ａｕ１）＝ｒａｎｋ（〔Ａｕ１  Δｑｄ１〕）    …（ｉ）
（ただし、上記式において、Δｑｄ１は、上記筋力補助装置を装着しない状態で関節を回動させるために必要な筋力と上記目標値との差であり、Ａｕ１は、上記設定対象筋肉が作用する関節の中心と当該設定対象筋肉が付着する骨格部分との間の距離である）
を満たすかどうかを判定することが好ましい。
【００２６】
上記の構成により、目標値評価手段は、取得手段が取得した筋肉特定情報が示す設定対象筋肉の目標値が少なくとも（ｉ）式を満たすかどうかを判定することにより、当該目標値が実現可能であるかどうかを判定することができる。
【００２７】
上記駆動力算出装置は、上記取得手段が取得した目標値が実現可能であると上記目標値評価手段が判定した場合に、上記動作に関わる筋肉のうち、上記設定対象筋肉以外の筋肉である非設定対象筋肉が、上記筋力補助装置による支援または妨害が行われる状態での上記動作の時に発生する筋力の目標値を上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値と上記推定値と上記立体構成情報とに基づいて算出する目標値算出手段をさらに備えることが好ましい。
【００２８】
上記の構成によれば、目標値算出手段は、筋力補助装置による支援または妨害が行われる状態での関節の動作の時に、非設定対象筋肉が発生する筋力の目標値を上記推定値および上記立体構成情報に基づいて算出する。
【００２９】
それゆえ、取得手段が取得した設定対象筋肉の目標値に加え、非設定対象筋肉が発生する筋力の目標値が決まることになり、これらの目標値を用いることにより、設定対象筋肉の筋力を確実に目標値に近づけることができる、駆動部の駆動力を算出することができる。換言すれば、特許文献３に記載の発明のように、ユーザが試行錯誤しながら設定対象筋肉の目標値を繰返し入力する必要がなくなる。
【００３０】
本発明に係る筋力補助装置は、上記の課題を解決するために、筋肉によって動作する骨格の関節を跨いで当該骨格に固定される駆動部によって上記関節における動作の支援または妨害、もしくはその両方を行う筋力補助装置であって、上記駆動力算出装置を備え、上記駆動部は、上記駆動力算出装置によって算出された駆動力を発生させることを特徴としている。
【００３１】
上記の構成により、従来よりも短時間で駆動部の駆動力を算出でき、当該駆動力を発生させることができる。
【００３２】
また、上記駆動力算出装置を動作させる駆動力算出プログラムであって、コンピュータを上記各手段として機能させるための駆動力算出プログラムおよび当該駆動力算出プログラムを記録したコンピュータ読み取り可能な記憶媒体も本発明の技術的範囲に含まれる。
【発明の効果】
【００３３】
本発明に係る駆動力算出装置は、以上のように、駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを取得する取得手段と、上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および当該立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の上記目標値が実現可能であるかどうかを判定する目標値評価手段とを備える構成である。
【００３４】
本発明に係る駆動力算出方法は、以上のように、駆動部によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、上記駆動部による支援または妨害の下で動作を行う時に、上記筋肉特定情報が示す設定対象筋肉が発生すべき筋力の目標値とを上記取得手段が取得する取得工程と、上記駆動部による支援および妨害を受けない状態での上記動作に関わる各筋肉の筋力の推定値および生体の筋肉と骨格との相対位置を示す立体構成情報を取得し、当該推定値および当該立体構成情報に基づいて、上記筋肉特定情報が示す設定対象筋肉の目標値が実現可能であるかどうかを上記目標値評価手段が判定する目標値評価工程とを含む構成である。
【００３５】
それゆえ、筋力補助装置が備える駆動部の駆動力を算出する時間を短縮することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３６】
〔実施の形態１〕
本発明の実施の一形態について図１〜図１２に基づいて説明すれば、以下のとおりである。
【００３７】
（本発明と先行発明との違い）
まず、本発明と特許文献３に記載の発明（以下、先行発明と称する）との違いについて、図２（ａ）および図２（ｂ）を参照しつつ説明する。
【００３８】
人間の筋肉の数は関節数に比べて冗長に配置されている。理論的には１つの自由度の関節を駆動させる筋肉数は２つ（筋肉は引っ張ることしかできないため、曲げおよび伸ばしに１つずつ）であるが、一般的にさらに数多くの筋肉が配置されている。人間の筋肉が発揮する筋力は、最適化の原理(Crowninshiedによって提案)に従って決められている。この原理は、目的の運動を達成するための筋肉の筋力を当該筋肉の生理断面積(ＰＣＳＡ)で割り、ｒ乗した和を評価関数とし、この評価関数の値が最小となるように各筋肉の筋力の組み合わせが決められるというものである。この評価関数は、下記（１）〜（３）式で表すことができる。
【００３９】
【数１】
2008194460.tif 000003
【００４０】
τ＝Ａｆ    …（２）
ｆｊｍｉｎ≦ｆｊ≦ｆｊｍａｘ    …（３）
そのため、この原理から外れるような筋力分布は、いかに筋力補助装置をうまく制御しても実現できない。
【００４１】
先行発明では、「最適化の原理」を満たす筋力の組み合わせを、駆動力算出装置によって見つけ出そうとしている。この駆動力算出装置は、関節トルクが与えられると「最適化の原理」を満たす筋力を出力する。
【００４２】
図２（ａ）に示すように、先行発明では、まず実現したい筋力の目標値の組み合わせを天下り的に駆動力算出装置に入力し、駆動力算出装置は、上記目標値と回動動作に必要な関節のトルクとに基づいて、駆動部の駆動力を算出する。関節トルクを算出するには全ての筋力の情報が必要であるため、目標筋力に加え、対象としない筋肉に対しても何らかの目標値を与えなくてはならない。また、駆動力算出装置が算出した筋力の組み合わせが目標値から離れている場合には、目標筋力を再度設定することになる。
【００４３】
このように、全ての筋肉に対して目標値を与えるという必要性から、駆動部の駆動力の算出には膨大な手間が必要で、なおかつ明確な指針がないため、設計者が試行錯誤的に行うことになる。しかも、常に満足できる結果が得られるとは限らない。
【００４４】
これに対して、本発明では、図２（ｂ）に示すように、目的の運動を達成するための筋肉のうち、筋力補助装置による支援の対象となる筋肉が発生すべき筋力の目標値から、筋力補助装置による支援の対象とならない筋肉が発生すべき筋力の、実現可能な目標値を算出し、これらの目標値に基づいて筋力補助装置を制御する。
【００４５】
（筋力補助システム１０の構成）
図３は、本実施形態の筋力補助システム１０の構成を示す機能ブロック図である。同図に示すように、筋力補助システム１０は、駆動力算出装置１、筋力補助装置８、動作情報取得装置７を備えている。
【００４６】
（筋力補助装置８の構成）
筋力補助装置８は、生体（本実施形態ではヒト）が有する特定の関節（注目関節と称する）における回動動作を生み出す筋肉のうち、特定の筋肉（設定対象筋肉と称する）の働きを支援または妨害する、もしくはその両方を行うものであり、当該生体に装着されるものである。図４は、筋力補助装置８の一例を示す図である。同図には、ユーザの腕の関節における回動動作を支援または妨害する筋力補助装置８が示されている。ただし、本発明における筋力補助装置８は、図４に示すものに限定されない。
【００４７】
この筋力補助装置８には、複数の駆動部８２が備えられており、各駆動部８２は、ユーザの骨格に関節を跨いで固定されている。図３には、便宜上駆動部８２が３つ示されているが、駆動部８２の数は特に限定されない。
【００４８】
各駆動部８２の構成は特に限定されるものではないが、例えば、図５に示すように、ヒトの筋肉を模した形状、すなわち、長手方向に伸縮可能なアクチュエータ（人工筋）となっていてもよい。また、より具体的には、ゴムチューブとそれを覆うカーボン製の網からなっていてもよい。この場合、アクチュエータ１本が生体の筋肉１本に相当し、各駆動部の駆動力は、アクチュエータに注入される空気圧と断面積とに比例する。つまり、各アクチュエータに注入される最大空気圧が同一である場合には、各駆動部の最大駆動力は、ゴムチューブの伸縮方向と垂直な方向における断面の断面積に比例する。
【００４９】
そして、この駆動部８２が駆動力を発生させることによって、関節の前後にある駆動部の固定部分に駆動力がかかり、関節に回動軸を中心としたトルクが発生する。筋力補助装置８は、このトルクによって関節の回動動作を支援及び／又は妨害する。回動動作を支援する場合としては、例えば、介護やリハビリテーション等を行う場合が想定され、また、回動動作を妨害する場合としては、例えば、筋力トレーニング等を行う場合が想定される。
【００５０】
図３に示すように、筋力補助装置８は、駆動力算出装置１と通信可能に接続されている駆動力制御部８１を備えており、駆動力制御部８１は、各駆動部８２を制御している。
【００５１】
負荷を減少または増加させたい筋肉（設定対象筋肉）に対する目標筋力値が駆動力算出装置１に入力されると、駆動力算出装置１が、その動作を支援または妨害するための、駆動部８２の駆動力を算出する。そして、駆動力制御部８１は、算出された駆動力に基づいて各駆動部８２を駆動する。これら駆動部８２が駆動力を発生させることによって、関節の前後にある駆動部８２の固定部分に駆動力がかかり、関節に回動軸を中心としたトルクが発生する。このようにして、筋力補助装置８は、回動動作を支援または妨害することができる。
【００５２】
（動作情報取得装置７）
動作情報取得装置７は、生体の動作から動作情報を取得するものであり、本実施形態では、筋力補助装置８が支援する対象となるヒトの関節における回動動作から動作情報を取得するためのものである。
【００５３】
動作情報取得装置７は、実際の関節の回動動作を基に、各瞬間における回動動作に関する情報を取得する。取得する情報としては、例えば、関節の角度や回動する角速度及び角加速度等の情報が挙げられる。動作情報取得装置７は、関節の回動動作の動作情報を取得できるものであれば特に限定されるものではなく、例えば、カメラによって回動動作の画像を取得し、動作情報を抽出するものであってもよいし、センサによって回動動作を検知し、動作情報を抽出するものであってもよい。
【００５４】
具体的には、動作情報取得装置７は、所謂モーションキャプチャ装置であってもよいし、フォースプレート又は加速度計を利用した装置であってもよい。あるいは、予め得られている画像データ等を取り込んで、そこから動作情報を抽出するものであってもよい。なお、動作情報取得装置７は、実際の回動動作から複数の関節について一度に動作情報を取得できることが好ましい。
【００５５】
動作情報取得装置７として、例えば、ＶＩＣＯＮ（Vicon Motion Systems製：ＶＩＣＯＮ５１２）を用いることができる。
【００５６】
動作情報取得装置７が取得した動作情報は、駆動力算出装置１へ出力され、制御部２によって記憶部５に動作データ５６として格納される。すなわち、制御部２は、動作情報を取得する動作情報取得手段として機能する。
【００５７】
（駆動力算出装置１の構成）
図１は、駆動力算出装置１の構成を示す機能ブロック図である。同図に示すように、駆動力算出装置１は、制御部２、入力部３、出力部４、記憶部５を備えている。
【００５８】
入力部３は、設定対象筋肉を特定する筋肉特定情報および当該設定対象筋肉の目標筋力値が入力されるためのものである。目標筋力値とは、筋力補助装置８による支援（または妨害）の下で注目関節の回動動作を行った時に、設定対象筋肉が発生する筋力の目標値である。
【００５９】
入力部３としては、例えば、キーボード、マウス又はタッチパネル等の入力インターフェースであってもよいし、ＨＤＤやネットワーク接続部等の外部装置との入出力インターフェースであってもよい。
【００６０】
制御部２は、関節トルク算出部２１および推定筋力算出部２２からなる筋力推定部と、設定情報取得部（取得手段）２３、目標筋力値評価部（目標値評価手段）２４、目標筋力算出部（目標値算出手段）２５、目標関節トルク算出部２６、駆動力算出部２７からなる駆動力決定部とを備えている。
【００６１】
関節トルク算出部２１は、関節における回動動作に必要な関節トルクを関節毎に算出する。なお、関節トルク算出部２１が算出する関節トルクとは、関節を回動させるトルクであり、筋力補助装置８を装着しない状態で注目関節において発生するトルクである。関節トルク算出部２１が算出した関節トルクの情報は、関節トルクテーブル５７として記憶部５に格納される。関節トルク算出部２１における関節トルクの算出方法については後述する。
【００６２】
推定筋力算出部２２は、関節トルク算出部２１が算出した関節トルクに基づいて、筋力補助装置８を装着しない状態で注目関節を回動させるのに必要な筋力（装着前筋力と称する）を筋肉毎に算出する。推定筋力算出部２２が算出した装着前筋力（推定値）の情報は、推定筋力テーブル５８として記憶部５に格納される。推定筋力算出部２２における装着前筋力の算出方法については後述する。
【００６３】
設定情報取得部２３は、駆動部８２によってその働きが支援または妨害される筋肉である設定対象筋肉を特定する筋肉特定情報と、筋力補助装置８による支援または妨害を受けた状態で注目関節における回動動作を行った時に設定対象筋肉が発生すべき筋力の目標値である目標筋力値とを入力部３を介して取得する。設定情報取得部２３は、筋肉特定情報と目標筋力値とを関連付けて目標筋力値評価部２４へ出力する。
【００６４】
なお、入力部３に入力される目標筋力値は、具体的な筋力の値であってもよいし、推定筋力算出部２２によって算出された筋力に対する倍率等でもよい。
【００６５】
目標筋力値評価部２４は、設定情報取得部２３が取得した、設定対象筋肉の目標筋力が、実現可能であるかどうかを、推定筋力テーブル５８および骨格筋モデルデータ５３（立体構成情報）に基づいて判定する。この判定方法については後述する。
【００６６】
目標筋力算出部２５は、設定情報取得部２３が取得した、設定対象筋肉の目標筋力値と、推定筋力算出部２２が算出した装着前筋力（推定筋力テーブル５８）と、骨格筋モデルデータ５３とに基づいて、注目関節における回動動作を生み出す筋肉のうち、設定対象筋肉以外の筋肉（非設定対象筋肉と称する）の目標筋力値を算出する。非設定対象筋肉の目標筋力値とは、ユーザに装着された筋力補助装置８を動作させつつ注目関節を回動させた時に、非設定対象筋肉が発生させる筋力の目標値である。
【００６７】
目標関節トルク算出部２６は、設定対象筋肉の目標筋力値と、目標筋力算出部２５が算出した非設定対象筋肉の目標筋力値と、総合モデルデータ５５とに基づいて、ユーザに装着された筋力補助装置８を動作させつつ注目関節を回動させた時に当該注目関節において生じる関節トルクの目標値（目標関節トルク）を算出する。目標関節トルクの算出方法については後述する。
【００６８】
駆動力算出部２７は、目標関節トルク算出部２６が算出した目標関節トルクと、関節トルク算出部２１が算出した関節トルク（関節トルクテーブル５７）と、総合モデルデータ５５とに基づいて、各駆動部８２が発生させるべき駆動力を算出するとともに、各駆動部８２を制御するための制御値を算出する。
【００６９】
出力部４は、ＨＤＤやネットワーク接続部等の、筋力補助装置８と通信可能に接続するための出力インターフェースである。出力部４は、駆動力算出部２７が算出した制御値を筋力補助装置８へ送信する。なお、出力部４は、液晶パネル等の、ユーザに各種の情報を報知するための出力インターフェースを備えていてもよい。
【００７０】
記憶部５は、図１に示すように、骨格モデルデータ５１、筋肉モデルデータ５２および人工筋モデルデータ５４を予め格納しており、さらに、動作データ５６、関節トルクテーブル５７、推定筋力テーブル５８、駆動力テーブル５９を格納できるものである。
【００７１】
骨格モデルデータ５１は、ヒトの骨格に関する立体構成情報を含んでいる。具体的には、骨格モデルデータ５１は、各骨の長さの情報、各骨の太さの情報、骨同士の空間配置の情報、各骨の重さの情報、各骨の慣性モーメントの情報、関節における回動軸の相対的な位置の情報を含んでいる。
【００７２】
本実施形態では、骨格モデルデータ５１は、固定の回動軸を中心に回動する関節によって多数の骨が結合されたリンクモデルであるが、これに限定されるものではなく、関節の回動に伴って回動軸が関節に対して変化するモデルとしてもよい。この場合、関節部分に短い仮想的なリンクを追加すれば、人間のような回転軸の移動があるような骨格を再現することができる。また、骨格モデルデータ５１に用いられる骨格は、全身の骨格であってもよいし、上肢または下肢等、身体の一部分における骨格であってもよい。この骨格モデルデータ５１により、ヒトの骨格モデルを再現することができる。
【００７３】
筋肉モデルデータ５２は、ヒトの筋肉に関する立体構成情報を含んでいる。具体的には、筋肉モデルデータ５２は、各筋肉の長さの情報、骨格に付着する位置の情報を含んでいる。このように、筋肉は、重さのないワイヤとしてモデル化されている。
【００７４】
この筋肉モデルデータ５２を骨格モデルデータ５１と組み合わせることにより、骨格筋モデルデータ５３となる。骨格筋モデルデータ５３は、生体の筋肉と骨格との相対位置を示す立体構成情報を含むデータである。骨格筋モデルデータ５３により、ヒトの骨格上に筋肉を重ねた骨格筋モデルを再現できる。
【００７５】
また、筋肉モデルデータ５２は、各筋肉の生理断面積の情報をさらに含んでいる。なお、筋肉モデルデータ５２は、さらに、筋肉の質量の情報および／または慣性モーメントの情報等を含んでいてもよい。筋肉の質量の情報や筋肉の慣性モーメントの情報を含めたモデルとすることにより、再現された骨格筋モデルは一層現実のものに近づくことになる。
【００７６】
人工筋モデルデータ５４は、筋力補助装置８の駆動部８２に関する立体構成情報を含んでいる。具体的には、人工筋モデルデータ５４は、駆動部８２の長さの情報、ヒトが装着した状態において駆動部８２の端部が骨格に付着する位置の情報を含んでいる。これにより、駆動部８２は、重さのないワイヤとしてモデル化される。
【００７７】
この人工筋モデルデータ５４を骨格筋モデルデータ５３と組み合わせることにより、総合モデルデータ５５となる。総合モデルデータ５５により、ヒトの骨格上に筋肉及び駆動部８２を重ねた筋／人工筋統合モデルを再現できる。
【００７８】
また、人工筋モデルデータ５４は、駆動部８２の伸縮方向に垂直な断面積の情報をさらに含んでいる。本実施形態では、駆動力算出部２７は、この断面積の情報から最大駆動力を求めることができるが、人工筋モデルデータ５４は、断面積の情報の代わりに最大駆動力の情報を含んでいてもよい。なお、人工筋モデルデータ５４は、さらに、駆動部８２の質量の情報、および／または慣性モーメントの情報等を含んでいてもよい。
【００７９】
動作データ５６は、動作情報取得装置７によって取得された動作情報を含んでおり、具体的には、回動動作の各瞬間における関節の角度、角速度および角加速度の情報を含んでいる。従って、動作データ５６は、回動動作の経過時間と角度、角速度および角加速度とが対応付けられたテーブルとなっている。
【００８０】
関節トルクテーブル５７は、関節トルク算出部２１によって算出された、関節の回動動作に必要な関節トルクの情報を含んでおり、具体的には、回動動作の各瞬間において必要な関節トルクの情報を含んでいる。従って、関節トルクテーブル５７は、回動動作の経過時間と関節トルクとが対応付けられたテーブルとなっている。図６に関節トルクテーブル５７をグラフとして表したものの一例を示す。
【００８１】
推定筋力テーブル５８は、推定筋力算出部２２によって算出された、筋力補助装置８を装着しない状態における、注目関節の回動動作に必要な筋力の情報を含んでおり、具体的には、回動動作の各瞬間において必要な筋力の情報を含んでいる。従って、推定筋力テーブル５８は、回動動作の経過時間と筋力とが対応付けられたテーブルとなっている。図７に推定筋力テーブル５８をグラフとして表したものの一例を示す。図７は、進展屈曲動作に必要な１１本の筋肉の推定筋力テーブルをグラフとして表したものである。
【００８２】
駆動力テーブル５９は、駆動力算出部２７によって算出された、筋力補助装置８の駆動部８２の駆動力の情報を含んでおり、具体的には、回動動作の各瞬間において必要な駆動部８２の駆動力の情報を含んでいる。従って、駆動力テーブル５９は、回動動作の経過時間と駆動部８２の駆動力とが対応付けられたテーブルになっている。図８に駆動力テーブル５９をグラフとして表したものの一例を示す。
【００８３】
（関節トルク算出部２１における関節トルク算出方法）
関節トルク算出部２１は、動作データ５６に含まれる関節の角度、角速度、角加速度、および重力加速度と、骨格モデルデータ５１に含まれる骨にかかる質量及び慣性モーメントとから、ニュートンオイラ法またはラグランジュ法等の動力学計算によって、回動動作を実現する関節トルクを算出する。
【００８４】
この関節トルクの算出は回動動作の各瞬間毎に行われる。そして、各関節毎に算出された関節トルクは、回動動作の経過時間と対応付けられ、関節トルクテーブル５７として記憶部５に格納される。
【００８５】
（推定筋力算出部２２における推定筋力算出方法）
推定筋力算出部２２は、記憶部５に格納された骨格筋モデルデータ５１および関節トルクテーブル５７に基づいて、回動動作に必要な各筋肉の筋力を算出する。その算出方法について以下に詳細に説明する。
【００８６】
各関節を関節ｉとし、関節ｉを跨ぐ筋肉がｊ本あり、筋肉ｊのモーメントアーム（関節ｉの回動中心軸から関節ｉを跨いでいる筋肉ｊの付着点までの距離）をｒjとし、筋肉ｊの筋力をｆjとすると、関節ｉにおけるトルクτiは、
【００８７】
【数２】
2008194460.tif 000004
【００８８】
と表される。すなわち、トルクτiは、筋肉ｊの筋力と筋肉ｊのモーメントアーム行列との積として表すことができる。ここで、トルクτiの値は、関節トルク算出部２１によって既に算出され、記憶部５に関節トルクデータとして格納されている。また、ｒjは、骨格筋モデルデータ５３から算出することができる。従って、（４）式のτi、ｒjに数値を代入することになるが、ｆjが複数あるため、各ｆjの値を求めることができない。
【００８９】
ここで、ｆjの値を決定するために、本実施形態では、上述したように、Ｃｒｏｗｎｉｎｓｈｉｅｌｄが提唱した最適化計算式である（１）式を利用する。すなわち、当該最適化計算式は、ある動作を行うとき、各筋肉の筋力ｆjは、次の評価関数ｕ（ｆ）
【００９０】
【数３】
2008194460.tif 000005
【００９１】
が最小になるように、筋力が分配されるというものである。なお、（１）式において、ｎは筋肉の本数であり、ＰＣＳＡjは筋肉ｊの生理断面積である。この式によれば、各筋肉の単位断面積辺りの筋力のｒ乗の総和が最小になるように筋力が分配される。ｒは２以上の任意の整数である。
【００９２】
推定筋力算出部２２は、（１）式が最小となるようにｆjを最適化する。この場合、推定筋力算出部２２は、関節トルクテーブル５７に格納されているトルクτiと、骨格筋モデルデータ５３から算出されるモーメントアームｒjと、各筋力ｆjとが（４）式を満たす条件下で、（１）式が最小となる筋力ｆjを算出する。換言すれば、推定筋力算出部２２は、（４）式で表されるトルクτiおよびｒjを拘束条件として、（１）式が最小となるようなｆjを算出する。なお、ｆjの最適化計算に必要な生理断面積ＰＣＳＡjの値は、筋肉モデルデータ５２に含まれている。
【００９３】
また、（１）式による最適化計算を行うにあたって、さらに拘束条件を加えてもよい。例えば、各筋肉が発生できる筋力ｆjは次の（５）式
０≦ｆj≦ｋＰＣＳＡj          …（５）
（ただし、（５）式中、ｋ＝０．７×１０6［Ｎ／ｍ2］、ＰＣＳＡjは筋肉ｊの生理的断面積である）
に示す範囲に含まれることが知られている。従って、拘束条件として、さらに（５）式を用いることが好ましい。これにより、生体の筋肉が実際には発生できない筋力を除外することができる。
【００９４】
上記の最適化計算により、各筋肉の筋力ｆjが算出される。そして、推定筋力算出部２２はこの算出を回動動作の各瞬間について行う。このようにして得られた各筋肉の筋力は、回動動作の経過時間との対応テーブルである推定筋力テーブル５８として、記憶部５に格納される。推定筋力テーブル５８は、図７に示すグラフとして表すことができるものである。
【００９５】
（目標筋力値の評価に用いられる定理）
目標筋力値評価部２４における目標筋力値の評価に用いられる数学的定理について、以下に詳細に説明する。
【００９６】
本発明における筋力設定の目的は、各筋肉の負荷を任意に変化させることである。しかし、人間の筋肉は相互に関連しており、任意に設定される目標筋力は、実現不可能である場合が多い。そのため、設定した目標筋力に対して、設計可能かどうかを判断することが好ましい。以下の説明では、計算を簡単にするため、不等式拘束のｆｊ≦ｆｊｍａｘを省略している。
【００９７】
本実施形態では、最適性条件の１つであるKuhn-Tucker条件を利用して、設定した筋力が実現可能であるかどうかを目標筋力値評価部２４が判断する。上記（１）式で表された最適化問題に関して、Kuhn-Tucker条件により、推定筋力ｆは以下の（６）〜（８）式を満足する。
【００９８】
【数４】
2008194460.tif 000006
【００９９】
ｈｉ（ｆ）＝０（ｉ＝１，２，…，ｌ）    …（７）
λｊｇｉ（ｆ）＝０、λｊ≧０、ｇｊ（ｆ）≦０  （ｊ＝１，２，…，ｍ）    …（８）
ここで、μはラグランジェの未定乗数である。ｈｉは下記（９）式で表される等式拘束条件であり、回動運動を実現するためのトルクを発生させるための筋力の合計が満たさなければならない条件である。このトルクは、筋力補助装置８を装着する前後で変化しない。また、λは、ラグランジュの未定乗数である。
【０１００】
ｈｉ＝τ−ａｉＴｆ    …（９）
上記（９）式において、Ｔは関節の回動運動を実現するための関節トルクであり、関節トルク算出部２１が算出した関節トルクである。筋力補助装置８による支援（または妨害）が行われる状態でも、筋力補助装置８の装着前と同じ回動動作が行われるためには、この関節トルクは変化してはいけない。
【０１０１】
また、ｇｉは、下記（１０）式で表される、不等式の拘束条件である。
【０１０２】
ｇｉ＝−ｆｊ    …（１０）
また、▽ｕ（ｆ）、▽ｈｉ（ｆ）およびｇｉ（ｆ）は、下記（１１）〜（１３）式によって示される、ｆの各要素に対する偏微分式の和である。
【０１０３】
【数５】
2008194460.tif 000007
【０１０４】
【数６】
2008194460.tif 000008
【０１０５】
【数７】
2008194460.tif 000009
【０１０６】
これら（１１）〜（１３）式を（６）式に代入すると、下記（１４）式が得られる。
【０１０７】
ｑ＝ＡＴμ＋λ    …（１４）
この（１４）式は、筋力推定の最適性条件を表している。（１４）式において、λは、ラグランジュの未定乗数であり、Ａは、モーメントアーム行列であり、Ｔは関節の回動運動を実現するための関節トルクである。また、ｑ、μ、λは、下記（１５）〜（１７）式で表されるものである。
【０１０８】
ｑ＝〔ｑ１，ｑ２，…，ｑｍ〕Ｔ    …（１５）
μ＝〔μ１，μ２，…，μｌ〕Ｔ    …（１６）
λ＝〔λ１，λ２，…，λｍ〕Ｔ    …（１７）
上記式において、ｍは、回動動作に関わる筋肉の数、ｌは設定対象筋肉の数である。
【０１０９】
上記（８）式より、ｊ番の筋力ｆｊが０より大きい場合は、対応するλｊは必ず０となるため、筋力ｆに含まれる筋力ｆｊを、筋力ｆｊが０であるかどうかによって分けると、（１４）式は、下記（１８）式として表される。
【０１１０】
【数８】
2008194460.tif 000010
【０１１１】
ここで、ｑ（チルダ）およびλ（チルダ）の全ての要素は正であり、Ａｕ（チルダ）は、ｋ×ｌ次元のモーメントアーム行列であり、Ａｖ（チルダ）は、（ｍ−ｋ）×ｌ次元のモーメントアーム行列である。ｍは、回動動作に関わる筋肉の数、ｋは、回動動作時に筋力が０ではない筋肉の数、ｌは設定対象筋肉の数である。
【０１１２】
また、Ａｕ（チルダ）およびＡｖ（チルダ）は、ＡｕまたはＡｖに含まれる変数を、設定対象筋肉の変数、非設定対象筋肉の変数、不活動筋肉の変数の順に並び替えたものである。
【０１１３】
通常筋力ｆ０の場合は、下記（１９）式および（２０）式が満足される。
【０１１４】
τ０＝Ａｆ０    …（１９）
ｑ０＝ＡＴμ０＋λ０    …（２０）
ここで、ｑとｆとの関係を、下記（２１）式および（２２）式によって表すことができる。
【０１１５】
【数９】
2008194460.tif 000011
【０１１６】
【数１０】
2008194460.tif 000012
【０１１７】
ここで、ｗは、ｆからｑへの変換を行う関数であり、ｒは、２以上の任意の整数である。
【０１１８】
（２０）式におけるμ０およびλ０を（１８）式と同様に変換すると、μ０およびλ０を下記（２３）式として表すことができる。
【０１１９】
【数１１】
2008194460.tif 000013
【０１２０】
目標筋力ｆｄは、同様に下記（２４）式を満足する。
【０１２１】
【数１２】
2008194460.tif 000014
【０１２２】
ここで、ｑｄは、目標筋力ｆｄｉから（２１）式を用いて計算されたｑｄｊ（ｊ＝１，２，…，ｋ）を含むものである。
【０１２３】
（２３）式および（２４）式より、下記（２５）式を満足するαから、下記（２６）式を用いて得られたｑｄは、実現可能である。さらに（２１）式から、実現可能な筋力ｆｄも算出できる。
【０１２４】
【数１３】
2008194460.tif 000015
【０１２５】
【数１４】
2008194460.tif 000016
【０１２６】
（証明）
αが（２５）式を満足すれば、（２６）式により得られたｑｄ（ｆｄ）において、μｄとλｄ（チルダ）とが存在することを証明する。
【０１２７】
μｄとλｄ（チルダ）とは、それぞれ下記（２７）式および（２８）式によって表されるものである。
【０１２８】
μｄ＝μ０＋α    …（２７）
【０１２９】
【数１５】
2008194460.tif 000017
【０１３０】
（２３）式および（２６）式より、下記（２９）式を導くことができる。
【０１３１】
【数１６】
2008194460.tif 000018
【０１３２】
また、目標筋力が実現可能であるためには、（２５）式を満足する以外に、以下の２つの条件も満足する必要がある。すなわち、１つ目の条件は、目標筋力ｆｄｊは全て正であることである。２つ目の条件は、目標筋力ｆｄ１を設定した場合に、αの解が存在し、かつ、目標筋力ｆｄ１に対応するモーメントアーム行列をＡｕ１とすると、下記（３０）式および（３１）式が満たされるというものである。換言すれば、Ａｕ１は、設定対象筋肉が作用する関節の中心と当該設定対象筋肉が付着する骨格部分との間の距離である。
【０１３３】
Δｑｄ１＝ｑｄ１−ｑ０１＝Ａｕ１α    …（３０）
Δｑｄ２＝ｑｄ２−ｑ０２＝Ａｕ２α    …（３１）
ここで、ｑｄ２、ｑ０２、Ａｕ２は、非設定対象筋肉に関する値（換言すれば、Ａｕ２は、非設定対象筋肉が作用する関節の中心と当該非設定対象筋肉が付着する骨格部分との間の距離）であり、αは自由パラメータである。
【０１３４】
αの解が存在するためには、下記（３２）式が満たされる必要がある。
【０１３５】
ｒａｎｋ（Ａｕ１）＝ｒａｎｋ（〔Ａｕ１  Δｑｄ１〕）    …（３２）
（３２）式は、行列を構成する線形独立なベクトルの数に関する式である。
【０１３６】
（目標筋力値評価部２４における目標筋力値の評価方法）
目標筋力値評価部２４における処理の詳細について以下に説明する。以下の説明では、設定対象筋肉の、回動動作時の目標筋力をｆｄ1またはｑｄ1と表現し、筋力補助装置８を装着しない状態での設定対象筋肉の回動動作時の推定筋力（装着前筋力）をｆ０１またはｑ０１と表現する。
【０１３７】
目標筋力値評価部２４は、まず、上記（３０）式からΔｑｄ1（すなわち、設定対象筋肉の目標筋力と装着前筋力との差）を求める。
【０１３８】
そして、目標筋力値評価部２４は、１）Δｑｄ1が上記（３２）式を満たすかどうか（第１条件）、２）自由パラメータαが上記（２５）式を満たすかどうか（第２条件）、３）さらに、上記（２６）式から求めたベクトルｑｄが正であるかどうか（第３条件）、および上記（２２）式を通じて得られるベクトルｆｄのすべての要素が正であるかどうか（第４条件）を判定する。
【０１３９】
Δｑｄ1が（３２）式を満たすということ（第１条件を満たすこと）は、自由パラメータαが少なくとも１つは存在することを意味する。
【０１４０】
回動動作時の非設定対象筋肉の目標筋力をｆｄ２またはｑｄ２と表現し、筋力補助装置８を装着しない状態での非設定対象筋肉の回動動作時の推定筋力（装着前筋力）をｆ０２またはｑ０２と表現すると、ｑｄ２およびｑ０２と、自由パラメータαとの関係は、上記（３１）式で表すことができる。
【０１４１】
（３１）式は、αを決めることによって、非設定対象筋肉の目標筋力値も決まることを示している。ところが、一般的には（３２）式を満たす（第１条件を満たす）αは一通りではない。例えば、入力自由度４（関節数４）に対して筋肉４本を積極的に制御する場合は、αは一意に決まるが、制御する筋肉の数が３本以下の場合には、αは一意に決まらず、自由度が残る。
【０１４２】
また、αはさらに（２５）式（第２条件）を満たさなければならない。この式は、筋力補助装置８による支援をしない状態で回動動作を行った時に、筋力がゼロである筋肉の目標筋力値をゼロとしておくことを示ししている。
【０１４３】
さらに、（２６）式から求めたベクトルｑｄが正であり（第３条件）、（２２）式を通じて得られるベクトルｆｄのすべての要素が正である（第４条件）必要がある。これらの条件は、引っ張ることしか出来ない筋肉の特性を考慮したものである。
【０１４４】
以上のように、目標筋力値評価部２４は、設定情報取得部２３が取得した、設定対象筋肉の目標筋力値が、第１〜４条件を満たすかどうかを判定するものであり、第１条件とは、当該目標筋力値に対応した自由パラメータαが少なくとも１つは存在することであり、第２条件とは、回動動作時に発生する筋力が０である筋肉の目標筋力値が０であることであり、第３および第４条件とは、引っ張ることしか出来ない筋肉の特性（一方向すなわち収縮方向のみにおいて力を発揮できる筋肉の特性）を考慮したものである。
【０１４５】
目標筋力値評価部２４は、設定情報取得部２３が取得した、設定対象筋肉の目標筋力値が上記第１条件を満たさないと判定した段階（すなわち、自由パラメータαが１つも存在しないと判定した段階）で、出力部４を介して、ユーザが入力した目標筋力値が不適当であったことを報知してもよい。
【０１４６】
すなわち、目標筋力値評価部２４は、目標筋力値に対応した自由パラメータαが少なくとも１つは存在するかどうかを判定し、当該自由パラメータαが存在しない場合に、当該目標筋力値は実現不可能であると判定してもよい。
【０１４７】
なお、目標筋力値評価部２４は、上述の演算を行うために、骨格筋モデルデータ５３および推定筋力テーブル５８を取得する。
【０１４８】
（目標筋力算出部２５における目標筋力の算出方法）
目標筋力算出部２５における処理の詳細について以下に説明する。下記（３３）式は、設定対象筋肉の筋力の制御を実現する自由パラメータαの全ての形を現している。（３３）式は、（３０）式から導かれるものである。
【０１４９】
【数１７】
2008194460.tif 000019
【０１５０】
（３３）式において、Ｉは単位行列であり、自由パラメータｋが、残った自由度を示している。ｋを変更するとαも変化するが、（３３）式で求められたαは、ｋがいくつであっても（３０）式を満たす（すなわち目標筋力を実現する可能性がある）ことになる。
【０１５１】
この（３３）式を（３１）式に代入すると下記（３４）式を得ることができる。
【０１５２】
【数１８】
2008194460.tif 000020
【０１５３】
ここで、ＹおよびＤは、下記（３５）式および（３６）式によって表される値である。
【０１５４】
【数１９】
2008194460.tif 000021
【０１５５】
【数２０】
2008194460.tif 000022
【０１５６】
下記（３７）式で表される、非設定対象筋肉の、筋力補助装置８の装着前の推定筋力と装着後の目標筋力との差は、自由パラメータｋによって決まる。
【０１５７】
【数２１】
2008194460.tif 000023
【０１５８】
上述した第１〜４条件を満たす全てのｋを利用することが可能であるため、このｋの決め方は一通りではないが、最も妥当な方法として、本実施形態では、非設定対象筋肉の筋力が筋力補助装置８の装着前後でできるだけ変化しない、１つの解のみを導く。この方法により、設定対象筋肉以外の筋肉の変化を最小にすることができる。この解を導くための最適化計算式は、下記（３８）式で表すことができる。
【０１５９】
【数２２】
2008194460.tif 000024
【０１６０】
（３８）式を用いるときの拘束条件として、（２５）式を満たすこと（第２条件）、および、（２６）式で求めた筋力が全て正になること（第３および第４条件）を与える。こうしてαが一意に定まる。
【０１６１】
上記１つの解を算出した後に、（３４）式よりｑｄ２（チルダ）を算出する。目標筋力値は下記（３９）式を用いて表すことができる。
【０１６２】
【数２３】
2008194460.tif 000025
【０１６３】
以上のように、目標筋力算出部２５は、（３３）式を用いて、設定情報取得部２３が取得した、設定対象筋肉の目標筋力値から、自由パラメータαを一意的に決定し、当該自由パラメータαから、（３４）式および（３８）式を用いて、非設定対象筋肉の目標筋力値を算出する。なお、上述の演算を行うために、目標筋力算出部２５は、記憶部５から骨格筋モデルデータ５３および推定筋力テーブル５８を取得する。
【０１６４】
換言すれば、目標筋力算出部２５は、目標値が実現可能であると目標筋力値評価部２４が判定した場合に、注目関節における骨格の動作に関わる筋肉のうち、非設定対象筋肉が、筋力補助装置８による支援または妨害が行われる状態での動作の時に発生する筋力の目標値を、設定対象筋肉が発生すべき筋力の目標値と推定筋力テーブル５８と骨格筋モデルデータ５３とに基づいて算出する。
【０１６５】
（目標関節トルク算出部２６における目標関節トルクの算出方法）
目標関節トルク算出部２６は、目標筋力算出部２５が算出した目標筋力値（ｆｄ１およびｆｄ２）を上記（３９）式に代入することによりｆｄを算出し、このｆｄを下記（４０）式に代入することにより目標関節トルクτｄを算出する。
【０１６６】
τｄ＝Ａｆｄ    …（４０）
（駆動力算出部２７における駆動力の算出方法）
駆動部８２が発生させる関節トルクτａは、筋力補助装置８による支援前の注目関節における関節トルクと、筋力補助装置８による支援後の注目関節における関節トルクとの差である。すなわち、関節トルクτａは、下記（４１）式で表されるものである。
【０１６７】
τａ＝τ０−τｄ    …（４１）
駆動部８２は、空気圧ゴム人工筋からなるものである。そのため、駆動部８２は、人間の筋肉と同じように冗長性を持っている。駆動力算出部２７は、各駆動部８２の出力を導出するために、人間の筋力を推定する場合と同様の評価関数を作成し、その評価関数の最小化計算を行う。
【０１６８】
本実施形態では、下記（４２）式で表される評価関数を用いる。
【０１６９】
【数２４】
2008194460.tif 000026
【０１７０】
すなわち、駆動力算出部２７は、各駆動部８２の駆動力の和が最小となるように各駆動部８２の駆動力を算出する。（４２）式において、ｐｋは、ｋ番目の駆動部８２の駆動力である。ｌは、駆動部８２の数である。（４２）式の制約条件は、下記（４３）式および（４４）式によって示されるものである。
【０１７１】
τａ＝ＡａＰ    …（４３）
０≦ｐｋ≦ｆｍａｘｋ    …（４４）
ここで、Ａａは、駆動部８２のモーメントアーム行列であり、ｆｍａｘｋは、各駆動部８２の最大出力である。
【０１７２】
駆動力算出部２７は、（４２）式が最小となる時の駆動力ｐを駆動部８２ごとに算出する。なお、上述の演算を行うために、駆動力算出部２７は、記憶部５から総合モデルデータおよび関節トルクテーブル５７を取得する。
【０１７３】
（駆動力算出装置１における処理の流れ）
次に、駆動力算出装置１における処理の流れの一例について、図９を参照しつつ説明する。図９は、駆動力算出装置１における処理の流れの一例を示すフローチャートである。
【０１７４】
なお、動作データ５６は、既に動作情報取得装置７によって取得され、記憶部５に格納されているものとする。
【０１７５】
まず、関節トルク算出部２１が、上述したように、記憶部５に格納された動作データ５６に基づいて、回動動作に必要な関節トルクを関節毎に算出する（Ｓ１）。関節トルク算出部２１は、各関節毎に算出された関節トルクを、回動動作の経過時間と対応付けて、関節トルクテーブル５７として記憶部５に格納する。
【０１７６】
次に、推定筋力算出部２２が、筋力補助装置８をユーザに装着しない状態で回動動作を行う時に必要な筋力（装着前筋力）を算出する（Ｓ２）。より具体的に説明すると、推定筋力算出部２２は、記憶部５に格納された骨格筋モデルデータ５１および関節トルクテーブル５７に基づいて、回動動作に必要な各筋肉の筋力を上述したように算出する。また、当該筋力の算出は回動動作の各瞬間毎に行われ、得られた装着前筋力の値は、回動動作の時間と対応付けられて、推定筋力テーブル５８として記憶部５に格納される。
【０１７７】
次に、ユーザが入力部３を介して、筋力を設定したい筋肉（設定対象筋肉）を特定する筋肉特定情報と、その筋肉の筋力の設定目標値である目標筋力値とを入力すると、これらの情報は、設定情報取得部２３によって受け付けられ（Ｓ３）、目標筋力値評価部２４へ出力される。
【０１７８】
ここで、ユーザが目標筋力値を入力する時に、所望の筋力を自由な波形として入力してもよいが、推定筋力テーブル５８に格納された筋力に対する倍率を用いて設定してもよい。後者の場合、ある動作に必要な筋力に対する所望の倍率として筋力を設定できるので、ユーザは、筋力補助装置８の設定を簡便に行うことが可能となる。
【０１７９】
倍率によって筋力を設定する場合、入力部３には、筋力の設定対象となる筋肉を特定する情報と、その筋肉に対して設定したい筋力の倍率とが入力される。設定情報取得部２３は、推定筋力テーブル５８を参照して、設定対象となる筋肉の筋力データを抽出し、抽出した筋力データに対して、入力された倍率を乗数として乗算を行う。このように乗算された筋力データは、回動動作の経過時間との対応テーブルである設定筋力テーブル（不図示）として記憶部５に格納されればよい。
【０１８０】
筋肉特定情報および目標筋力値を受け取ると、目標筋力値評価部２４は、筋肉特定情報が示す設定対象筋肉によって、目標筋力値が示す目標筋力を実現できるかどうかを、上述したように判定する。より具体的には、目標筋力値評価部２４は、設定対象筋肉の目標筋力が、上述の第１〜４条件を全て満たすかどうかを判定する。
【０１８１】
設定対象筋肉の目標筋力が、上述の第１〜４条件の少なくとも１つを満たさない場合には（Ｓ４にてＮＯ）、目標筋力値評価部２４は、入力された目標筋力値が不適切であったことを出力部４を介してユーザに報知する。
【０１８２】
なお、上述したように、目標筋力値評価部２４は、まず、設定対象筋肉の目標筋力が上記第１条件を満たすかどうかを判定し、満たさない場合に、その旨をユーザに報知してもよい。
【０１８３】
設定対象筋肉の目標筋力が、上述の第１〜４条件をすべて満たす場合には（Ｓ４にてＹＥＳ）、目標筋力値評価部２４は、注目関節における設定対象筋肉以外の筋肉（非設定対象筋肉）の目標筋力を算出する命令、筋肉特定情報および目標筋力値を目標筋力算出部２５へ出力する。
【０１８４】
この命令を受け取ると、目標筋力算出部２５は、上述したように設定対象筋肉の目標筋力値ｆｄ1から、非設定対象筋肉の目標筋力を算出する（Ｓ５）。例えば、目標筋力算出部２５は、非設定対象筋肉の筋力ができるだけ変化しないように、上記ｋの１つの解を導くことにより、非設定対象筋肉の目標筋力を算出する。目標筋力算出部２５は、算出した、非設定対象筋肉の目標筋力値および設定対象筋肉の目標筋力値を目標関節トルク算出部２６へ出力する。
【０１８５】
これらの目標筋力の値を受け取ると、目標関節トルク算出部２６は、上述したように上記（４０）式を用いて、当該目標筋力の値から、目標筋力が実現された場合の注目関節における目標関節トルクを算出する（Ｓ６）。目標関節トルクを算出すると、目標関節トルク算出部２６は、当該目標関節トルクの値を駆動力算出部２７へ出力する。
【０１８６】
目標関節トルクの値を受け取ると、駆動力算出部２７は、上述したように、駆動部８２が発生すべき駆動力を算出するとともに（Ｓ７）、駆動部８２に当該駆動力を発生させるための制御値を算出する（Ｓ８）。駆動力算出部２７は、算出した制御値を出力部４を介して筋力補助装置８の駆動力制御部８１へ送信する。
【０１８７】
なお、ステップ８における処理を、筋力補助装置８の駆動力制御部８１が行ってもよい。
【０１８８】
（実施結果）
筋力補助システム１０を用いてユーザの腕の回動動作を支援した場合の実施結果を、先行発明の実施結果と比較しつつ説明する。図１０は、先行発明を用いた場合の実施結果を示すグラフである。同図に示される実施結果は、特許文献３に記載されたものと同様のものであり、筋力補助装置による支援後における上腕筋および腕橈骨筋の筋力が、支援前の筋力の半分になるように、そして、他の筋肉については支援前の筋力と同じ筋力となるように設定された時の実施結果である。
【０１８９】
図１０に示すように、筋力補助装置による支援後における上腕筋および腕橈骨筋の筋力は、支援前の筋力の半分よりも大きくなっている。すなわち、先行発明では、目標筋力を完全には達成できていない。
【０１９０】
図１１は、筋力補助システム１０を用いた場合の実施結果を示すグラフであり、大胸筋および上腕筋の筋力が２倍になるように目標筋力値が入力された場合の実施結果を示している。グラフの横軸は、筋肉に付けた通し番号を表している。この通し番号は、各筋肉の生理断面積とともに図１２に示されている。グラフの縦軸は筋力（単位Ｎ）を示している。
【０１９１】
上段のグラフは、筋力補助装置８による妨害の前後における各筋肉の筋力（推定筋力）を示している。下段のグラフは、筋力補助装置８による妨害後の筋力を妨害前の筋力で割った変化比率を示している。
【０１９２】
大胸筋（通し番号２番）の筋力は、妨害前は約１０Ｎであったのが、筋力補助装置８による妨害によって２倍（約２０Ｎ）に増加している。下段のグラフで、その増加率が正確に２倍になっていることが確認できる。
【０１９３】
上腕筋（通し番号２７番）も同様に２倍になっており、筋力補助システム１０を用いることにより、正確に設定対象筋肉の負荷倍率を実現できることが確認できる。
【０１９４】
なお、非設定対象筋肉の筋力も、設定対象筋肉への支援または妨害の影響により変化する可能性があるが、筋力補助システム１０は、非設定対象筋肉の筋力はできるだけ変化させない構成であるのため、非設定対象筋肉の筋力の変化は全体的に低く抑えられている。
【０１９５】
（変更例）
上述の構成では、目標筋力算出部２５は、非設定対象筋肉の筋力はできるだけ変化させないように当該非設定対象筋肉の目標筋力値を算出したが、筋力を変化させない非設定対象筋肉（特定非設定対象筋肉と称する）をユーザがさらに指定し、目標筋力算出部２５は、その特定非設定対象筋肉の筋力を変化させないように、他の非設定対象筋肉の目標筋力値を算出してもよい。
【０１９６】
この構成の場合には、設定対象筋肉の数と特定非設定対象筋肉の数との和が、筋力補助装置８によって制御できる関節の数と同じになるように、特定非設定対象筋肉の数を指定する。
【０１９７】
そして、特定非設定対象筋肉の目標筋力値ｑｄ1が、推定筋力テーブル５８に格納された筋力に対して１倍となるように、当該目標筋力値ｑｄ1を指定する。
【０１９８】
目標筋力算出部２５は、上記（３３）式の代わりに下記（４５）式を用いる。
【０１９９】
α＝Ａｕ１−１Δｑｄ１    …（４５）
自由パラメータαとΔｑｄ１との次元は同じであるため、通常の逆行列が計算でき、αの解は一意に決まる。
【０２００】
駆動力算出装置１は、筋力補助装置８と一体形成されていてもよい。また、駆動力算出装置１が備える筋力推定部（関節トルク算出部２１および推定筋力算出部２２）および駆動力算出部（設定情報取得部２３、目標筋力値評価部２４、目標筋力算出部２５、目標関節トルク算出部２６、駆動力算出部２７）を独立した装置として形成してもよい。
【０２０１】
本発明は上述した各実施形態に限定されるものではなく、請求項に示した範囲で種々の変更が可能であり、異なる実施形態にそれぞれ開示された技術的手段を適宜組み合わせて得られる実施形態についても本発明の技術的範囲に含まれる。
【０２０２】
また、上述した駆動力算出装置１の各ブロックは、ハードウェアロジックによって構成してもよいし、次のようにＣＰＵを用いてソフトウェアによって実現してもよい。
【０２０３】
すなわち、駆動力算出装置１は、各機能を実現する制御プログラムの命令を実行するＣＰＵ（central processing unit）、上記プログラムを格納したＲＯＭ（read only memory）、上記プログラムを展開するＲＡＭ（random access memory）、上記プログラムおよび各種データを格納するメモリ等の記憶装置（記録媒体）などを備えている。そして、本発明の目的は、上述した機能を実現するソフトウェアである駆動力算出装置１の制御プログラム（駆動力算出プログラム）のプログラムコード（実行形式プログラム、中間コードプログラム、ソースプログラム）をコンピュータで読み取り可能に記録した記録媒体を、駆動力算出装置１に供給し、そのコンピュータ（またはＣＰＵやＭＰＵ）が記録媒体に記録されているプログラムコードを読み出し実行することによっても、達成可能である。
【０２０４】
上記記録媒体としては、例えば、磁気テープやカセットテープ等のテープ系、フロッピー（登録商標）ディスク／ハードディスク等の磁気ディスクやＣＤ−ＲＯＭ／ＭＯ／ＭＤ／ＤＶＤ／ＣＤ−Ｒ等の光ディスクを含むディスク系、ＩＣカード（メモリカードを含む）／光カード等のカード系、あるいはマスクＲＯＭ／ＥＰＲＯＭ／ＥＥＰＲＯＭ／フラッシュＲＯＭ等の半導体メモリ系などを用いることができる。
【０２０５】
また、駆動力算出装置１を通信ネットワークと接続可能に構成し、上記プログラムコードを通信ネットワークを介して供給してもよい。この通信ネットワークとしては、特に限定されず、例えば、インターネット、イントラネット、エキストラネット、ＬＡＮ、ＩＳＤＮ、ＶＡＮ、ＣＡＴＶ通信網、仮想専用網（virtual private network）、電話回線網、移動体通信網、衛星通信網等が利用可能である。また、通信ネットワークを構成する伝送媒体としては、特に限定されず、例えば、ＩＥＥＥ１３９４、ＵＳＢ、電力線搬送、ケーブルＴＶ回線、電話線、ＡＤＳＬ回線等の有線でも、ＩｒＤＡやリモコンのような赤外線、Ｂｌｕｅｔｏｏｔｈ（登録商標）、８０２．１１無線、ＨＤＲ、携帯電話網、衛星回線、地上波デジタル網等の無線でも利用可能である。なお、本発明は、上記プログラムコードが電子的な伝送で具現化された、搬送波に埋め込まれたコンピュータデータ信号の形態でも実現され得る。
【産業上の利用可能性】
【０２０６】
本発明によれば、特定の筋肉に所望の負荷をかける、または、特定の筋肉をサポートするための筋力補助装置の設置値を算出することができる。よって、筋力トレーニングやリハビリテーションを効率的に実施することが可能になる。また、リハビリテーションの内容によっては、家庭で実施することも可能になる。このように、本発明は、スポーツ分野および医療分野において充分に利用が期待できるものである。
【図面の簡単な説明】
【０２０７】
【図１】本発明の一実施形態に係る筋力補助システムに含まれる駆動力算出装置の構成を示す機能ブロック図である。
【図２】（ａ）は、先行発明の概要を示す図であり、（ｂ）は、本発明の概要を示す図である。
【図３】本発明の一実施形態に係る筋力補助システムの構成を示す機能ブロック図である。
【図４】上記筋力補助システムに含まれる筋力補助装置の一例を示す図である。
【図５】上記筋力補助装置が備える駆動部の構成の一例を示す図である。
【図６】関節トルクテーブルをグラフとして表したものの一例を示す図である。
【図７】推定筋力テーブルをグラフとして表したものの一例を示す図である。
【図８】駆動力テーブルをグラフとして表したものの一例を示す図である。
【図９】駆動力算出装置における処理の流れの一例を示すフローチャートである。
【図１０】先行発明における実施結果を示すグラフである。
【図１１】筋力補助システム１０における実施結果を示すグラフである。
【図１２】筋肉の通し番号を示す図である。
【符号の説明】
【０２０８】
１  駆動力算出装置
８  筋力補助装置
２３  設定情報取得部（取得部）
２４  目標筋力値評価部（目標値評価手段）
２５  目標筋力算出部（目標値算出手段）
５３  骨格筋モデルデータ（立体構成情報）
８２  駆動部
【図１】
2008194460.tif 000027
【図２】
2008194460.tif 000028
【図３】
2008194460.tif 000029
【図６】
2008194460.tif 000030
【図７】
2008194460.tif 000031
【図８】
2008194460.tif 000032
【図９】
2008194460.tif 000033
【図１０】
2008194460.tif 000034
【図１１】
2008194460.tif 000035
【図１２】
2008194460.tif 000036
【図４】
2008194460.tif 000037
【図５】
2008194460.tif 000038