特許第6334588号(P6334588)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ H2L株式会社の特許一覧

<>
  • 特許6334588-電気刺激システム 図000002
  • 特許6334588-電気刺激システム 図000003
  • 特許6334588-電気刺激システム 図000004
  • 特許6334588-電気刺激システム 図000005
  • 特許6334588-電気刺激システム 図000006
  • 特許6334588-電気刺激システム 図000007
  • 特許6334588-電気刺激システム 図000008
  • 特許6334588-電気刺激システム 図000009
  • 特許6334588-電気刺激システム 図000010
  • 特許6334588-電気刺激システム 図000011
  • 特許6334588-電気刺激システム 図000012
  • 特許6334588-電気刺激システム 図000013
  • 特許6334588-電気刺激システム 図000014
  • 特許6334588-電気刺激システム 図000015
  • 特許6334588-電気刺激システム 図000016
  • 特許6334588-電気刺激システム 図000017
  • 特許6334588-電気刺激システム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6334588
(24)【登録日】2018年5月11日
(45)【発行日】2018年5月30日
(54)【発明の名称】電気刺激システム
(51)【国際特許分類】
   A61N 1/36 20060101AFI20180521BHJP
   G06F 3/041 20060101ALI20180521BHJP
【FI】
   A61N1/36
   G06F3/041 480
【請求項の数】2
【全頁数】26
(21)【出願番号】特願2016-47583(P2016-47583)
(22)【出願日】2016年3月10日
(65)【公開番号】特開2017-158895(P2017-158895A)
(43)【公開日】2017年9月14日
【審査請求日】2017年7月31日
【早期審査対象出願】
(73)【特許権者】
【識別番号】312015200
【氏名又は名称】H2L株式会社
(74)【代理人】
【識別番号】110000925
【氏名又は名称】特許業務法人信友国際特許事務所
(72)【発明者】
【氏名】玉城 絵美
(72)【発明者】
【氏名】岩▲崎▼ 健一郎
【審査官】 石川 薫
(56)【参考文献】
【文献】 米国特許出願公開第2011/0264002(US,A1)
【文献】 米国特許第07184837(US,B2)
(58)【調査した分野】(Int.Cl.,DB名)
A61N 1/36
G06F 3/041
(57)【特許請求の範囲】
【請求項1】
電気刺激装置と、
前記電気刺激装置に電気刺激を生じる命令を送信するホストと
を有する電気刺激システムであって、
前記電気刺激装置は、
ユーザーの腕に巻き付けられるバンドと、
前記バンドの一方の面に配置されて前記ユーザーの腕の筋肉の変位を検出する複数の筋変位センサーと、
前記複数の筋変位センサーから一の筋変位センサーを選択するセンサー用マルチプレクサと、
前記バンドの、前記複数の筋変位センサーが配置されている面に、前記複数の筋変位センサーに隣接して複数個配置されている電極と、
前記複数の電極から一の電極を選択する電極用マルチプレクサと、
前記ホストから手指を動かす命令を受信する近距離無線受信部と、
前記筋変位センサーから得られる、前記ユーザーの腕の筋肉の変位に係る信号をデジタルデータに変換して前記ホストに送信する近距離無線送信部と、
手指の動きと前記複数の電極との対応関係が確率で記述されている電極確率行列と、
前記手指を動かす命令に基づき、前記電極確率行列から最大の確率を示す電極を特定して、前記電極用マルチプレクサを制御して前記特定した電極を選択する指電極対応変換部と
を具備し、
前記ホストは、
前記電気刺激装置から前記筋変位センサーのデータを受信する近距離無線受信部と、
前記電極確率行列と、
前記筋変位センサーのデータを前記ユーザーの手指の動きに変換した上で、現在の前記ユーザーの腕と前記電気刺激装置の相対的な位置関係のずれを検出して前記電極確率行列の要素を並べ替えた上で、前記電極確率行列の要素を更新する入出力制御部と、
更新した前記電極確率行列を前記電気刺激装置へ送信する近距離無線送信部と
を具備する、電気刺激システム。
【請求項2】
前記ホストは更に、
前記電極確率行列の要素を、学習アルゴリズムに基づく事後確率を計算して更新する確率演算部と
を具備する、請求項1に記載の電気刺激システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、電気刺激信号を人の腕の筋肉に与えると共に、腕の筋肉の変位をセンサーで検出する電気刺激装置情報処理装置とを組み合わせた電気刺激システムに関する。
【背景技術】
【0002】
従来、人(ユーザー)の前腕に複数の電極を装着し、その電極から前腕の筋肉に電気刺激信号を与えることで、外部からの指令で、ユーザーの指又は手を動かそうとする試みが行われている。たとえば、手指のリハビリテーション、トレーニング、動きの補助などを、外部からの指令で行うことが考えられている。また、ヘッドマウントディスプレイなどを使用して、ユーザーに仮想空間の映像を提示する仮想現実処理(Virtual Reality)や、現実の空間映像に仮想的なオブジェクト画像を重畳する拡張現実処理(Argumented Reality)を実行する際に、外部からの指令で、仮想空間等の映像に合わせて手指を動かすことで、リアリティ性を高めることなども提案されている。
【0003】
本願の発明者らは、先に特許文献1に記載されるような電気刺激装置を提案した。この特許文献1で提案した電気刺激装置は、ユーザーの前腕に装着されるバンドに複数の電極を取り付けて、前腕の筋肉に電気刺激を与える装置である。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2014−104241号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1で提案した電気刺激装置を装着したユーザーは、外部からの指令により前腕の筋肉に電気刺激が与えられることで、指又は手が動くようになる。たとえば5本の指は、前腕のどの筋肉を刺激すれば動くかが予め判っており、電気刺激装置に取り付けられた電極によって、特定の筋肉を刺激することで、その筋肉に対応した指が動く。
【0006】
ここで、ユーザーがバンド形状の電気刺激装置を前腕に装着した状況を想定する。このとき、バンド形状の電気刺激装置は複数の電極を備えるが、それぞれの電極がどの筋肉に対応しているのかを検知する必要がある。この検知を行うために、ユーザーがバンド形状の電気刺激装置を装着した際には、最初に較正作業を行って、電気刺激信号を各電極から出力させ、どの指が動くのかを予め確かめることが必要になる。
つまり、バンド形状の電気刺激装置をユーザーが装着した際に、電気刺激装置に配置された各々の電極がどの筋肉に対向しているのかを、電気刺激装置が予め正確に把握する必要がある。このため、較正作業は極めて重要な意味を持つ。
【0007】
一方、人の腕の太さは、年齢、性別、体重などの個人差で大きく異なる。このため、一つの電気刺激装置だけで腕の太さにおける個人差を吸収するには、5本の指の数を超える数だけ、電極とセンサーを設ける必要がある。すると、電極の中には指の動きに対応しない電極が生じることとなる。すなわち、電気刺激装置を正しく動作させるためには、実際の指を動かす筋肉と、電極の対応関係を較正作業によって予め明らかにする必要がある。
【0008】
本発明は係る課題に鑑みてなされたものであり、ユーザーの腕に装着した状態や個人差に左右されず、短時間で手指の動きと電極との対応関係を明確にし、誤動作が極めて少なく、高い精度で目的の手指を駆動でき電気刺激システムを提供することを目的とする。
【課題を解決するための手段】
【0009】
上記課題を解決するために、本発明の電気刺激システムは、電気刺激装置と、電気刺激装置に電気刺激を生じる命令を送信するホストとを有する。
電気刺激装置は、ユーザーの腕に巻き付けられるバンドと、バンドの一方の面に配置されてユーザーの腕の筋肉の変位を検出する複数の筋変位センサーと、複数の筋変位センサーから一の筋変位センサーを選択するセンサー用マルチプレクサと、バンドの、複数の筋変位センサーが配置されている面に、複数の筋変位センサーに隣接して複数個配置されている電極と、複数の電極から一の電極を選択する電極用マルチプレクサと、ホストから手指を動かす命令を受信する近距離無線受信部と、筋変位センサーから得られる、ユーザーの腕の筋肉の変位に係る信号をデジタルデータに変換してホストに送信する近距離無線送信部と、手指の動きと複数の電極との対応関係が確率で記述されている電極確率行列と、手指を動かす命令に基づき、電極確率行列から最大の確率を示す電極を特定して、電極用マルチプレクサを制御して特定した電極を選択する指電極対応変換部とを具備する。
ホストは、電気刺激装置から筋変位センサーのデータを受信する近距離無線受信部と、電極確率行列と、筋変位センサーのデータをユーザーの手指の動きに変換した上で、現在のユーザーの腕と電気刺激装置の相対的な位置関係のずれを検出して電極確率行列の要素を並べ替えた上で、電極確率行列の要素を更新する入出力制御部と、更新した電極確率行列を電気刺激装置へ送信する近距離無線送信部とを具備する。
【発明の効果】
【0010】
本発明により、ユーザーの腕に装着した状態や個人差に左右されず、短時間で手指の動きと電極との対応関係を明確にし、誤動作が極めて少なく、高い精度で目的の手指を駆動でき電気刺激システムを提供することができる。
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0011】
図1】本発明の実施形態の例である電気刺激装置の外観斜視図である。
図2】電極配置面の平面図である。
図3】電気刺激装置を前腕に装着する直前の状態と、直後の状態を示す図である。
図4】電気刺激装置の使用形態の一例である、電気刺激装置を有する電気刺激システムを示す模式図である。
図5】ホストのハードウェア構成を示すブロック図である。
図6】電気刺激装置のハードウェア構成を示すブロック図である。
図7】通常モードにおける電気刺激装置とホストのソフトウェア機能を示すブロック図である。
図8】較正モードにおける電気刺激装置とホストのソフトウェア機能を示すブロック図である。
図9】較正モードにおける、電気刺激装置とホストが実行する較正動作の流れを示すタイムチャートである。
図10】ユーザーが初めて電気刺激装置を腕に装着した際にホストにて実行される、初回の学習モードの動作の流れを説明するフローチャートである。
図11】電気刺激と筋肉の収縮状態と筋変位センサーの動作を説明するタイムチャートである。
図12】電気刺激に対する手指の動きを示す手指挙動行列の説明図と、手指挙動行列から有効な電気刺激を選択する手順を示す図と、手指挙動行列から有効な電気刺激を選択した結果を示すフラグ行列の説明図と、フラグ行列から生成した電極確率行列を示す図である。
図13】ユーザーが2回目以降に電気刺激装置を装着した際にホストにて実行される、2回目以降の学習モードの動作の流れを説明するフローチャートである。
図14】ユーザーが2回目以降に電気刺激装置を装着した際にホストにて実行される、2回目以降の学習モードの動作の流れを説明するフローチャートである。
図15】ユーザーが電気刺激装置を初めて腕に装着した際の、腕の筋肉と電極の配置関係を説明するための模式的な概略図と、ユーザーが電気刺激装置を再び腕に装着した際の、腕の筋肉と電極の配置関係を説明するための模式的な概略図である。
図16】2回目以降の学習モードによって作成された手指挙動行列の例と、この手指挙動行列に基づいて作成された、仮想的な電極確率行列と、ホストに記憶されている学習モード適用前の電極確率行列と、この電極確率行列を並べ替えた行列を示す図である。
図17】一般化した電極確率行列の一例を示す図である。
【発明を実施するための形態】
【0012】
図1は、本発明の実施形態の例である電気刺激装置100の外観斜視図である。
電気刺激装置100はV字形状のバンド101を備える。このバンド101はシリコーンゴム等の柔軟性を有する樹脂シートで構成されている。バンド101の両翼部分は、水平線L105から等しい傾斜角度θ1及びθ2だけ傾斜した形状である。傾斜角度θ1及びθ2は例えば32°である。バンド101の表面側の中心部分には長方形形状の回路収納ボックス103が設けられている。回路収納ボックス103には、後述する演算処理部150(図4参照)や二次電池などが内蔵されている。
【0013】
回路収納ボックス103の、一方の短辺側の側面には、第一シリアルインターフェース端子104が設けられている。第一シリアルインターフェース端子104は例えばmicroUSB用の端子である。電気刺激装置100はこの第一シリアルインターフェース端子104を通じて、内蔵する不図示の二次電池を充電する。また、第一シリアルインターフェース端子104をパソコン等に接続して、演算処理部の構成要素であるファームウェアをアップデートする等の機能拡張が可能である。
【0014】
バンド101の回路収納ボックス103が取り付けられた面とは反対側の裏面(図1の下側の面)は、図2にて後述する電極配置面100aである。
電気刺激装置100は、後述する図3A及び図3Bの装着例で説明するように、バンド101の裏面である電極配置面100aをユーザーの前腕に巻き付けることで、ユーザーに装着される。
【0015】
図2は、電極配置面100aの平面図である。
電極配置面100aには、ユーザーの前腕の筋肉に電気刺激信号を与えるための電極201〜208と、その電極201〜208とペアで使用される接地電極である電極211〜213,216,217とを備える。但し、接地電極については対向する複数の電極について共通で使用するため、電極201〜208と電極211〜213,216,217の数は一致しない。
加えて、電極配置面100aは、ユーザーの前腕の筋肉の動きを検出する筋変位センサー221〜228を備える。
【0016】
電極配置面100aの右側(図中の左側)には、右側電極配置箇所231が設けられており、右側電極配置箇所231には4個の電極201,202,211,212が配置される。4個の電極201,202,211,212の内で、電極201は第一の電極であり、電極202は第二の電極である。また、電極211は電極201に対向する接地電極であり、電極212は電極202に対向する接地電極である。
【0017】
電極201と電極211は前腕の筋肉に刺激を与える電極であり、装着時に腕の長手方向Lに隣接して配置される。
電極202と電極212も前腕の筋肉に刺激を与える電極であり、周方向Hに対して傾斜角度θ2で、傾斜した状態で配置されたほぼ長方形の電極である。電極202と電極212とは、腕の長手方向Lに隣接して配置される。
【0018】
電極配置面100aの中央には、中央電極配置箇所232が設けられており、中央電極配置箇所232には5個の電極203,204,205,208,213が配置される。5個の電極203,204,205,208,213の内で、電極203は第三の電極であり、電極204は第四の電極であり、電極205は第五の電極である。これら3個の電極203,204,205は、腕の長手方向に伸びて、腕の周方向にほぼ平行に並んで配置されている。また、電極208は第八の電極である。この電極208は、腕の周方向に長く伸びた電極である。電極213は、電極203,204,205,208に対向して共通に使用される接地電極である。
【0019】
電極203と電極204と電極205とは、それぞれのチャンネルごとに前腕のそれぞれ別の筋肉に刺激を与える電極であり、接地電極として電極213が共通に使用される。3つの電極203,204,205は、腕の周方向Hに並んで配置され、この3つの電極203,204,205と長手方向Lに隣接して配置される共通の接地電極である電極213は、腕の周方向Hに長く伸びた長方形の電極である。
電極208は、電極213に隣接して、腕の周方向Hに長く伸びた長方形の電極である。電極213は、電極208の接地電位としても使用される。なお、電極208は予備に使用される電極であり、この電極208は腕の周方向Hに長く伸びているため、腕の複数の筋肉に同時に刺激を与えることができる。
【0020】
電極配置面100aの左側部102(図2中の右側)には、左側電極配置箇所233が設けられており、左側電極配置箇所233には4個の電極206,207,216,217が配置される。4個の電極206,207,216,217の内で、電極206は第六の電極であり、電極207は第七の電極である。また、電極216は電極206に対向する接地電極であり、電極217は電極207に対向する接地電極である。
【0021】
電極206と電極216は前腕の筋肉に刺激を与える電極であり、周方向Hに対して左側部102の傾斜角度θ1と同じ角度θ1で、傾斜した状態で配置されたほぼ長方形の電極である。
電極207と電極217は前腕の筋肉に刺激を与える電極であり、装着時に腕の長手方向Lに隣接して配置される。
【0022】
電極配置面100aの右側電極配置箇所231の近傍には、2個所に筋変位センサー221,222が配置されている。電極配置面100aの中央電極配置箇所232の近傍には、4個所に筋変位センサー223,224,225,226が配置されている。電極配置面100aの左側電極配置箇所233の近傍には、2個所に筋変位センサー227,228が配置されている。
【0023】
8個の筋変位センサー221〜228は周知のフォトリフレクターである。これらの筋変位センサーはそれぞれ赤外線発光素子221a〜228aと赤外線受光素子221b〜228b(図6参照)とで構成されており、筋変位センサー配置面から腕の筋肉の表面までの距離の変化を検出する。赤外線発光素子221a〜228aは例えば近赤外線LEDであり、赤外線受光素子221b〜228bは例えばフォトトランジスタである。
筋肉が収縮すると、筋肉が存在する皮膚の部分に生じる隆起によって、フォトリフレクターと筋肉の表面部分との距離が変動する。フォトリフレクターはこの距離の変動によって生じる近赤外線反射光の強弱を、フォトトランジスタで検出する。近赤外線は皮膚表面を透過する性質を有するので、筋肉の隆起状態を検出することに適している。
【0024】
なお、電極配置面100aの右側電極配置箇所231、中央電極配置箇所232、左側電極配置箇所233を除く個所には、粘着性を有する樹脂材(不図示)が配置され、その樹脂材の粘着性で、電極配置面100aを前腕に巻き付けた状態に装着できるようにしている。
【0025】
[電気刺激装置100の装着例]
図3Aは、電気刺激装置100を前腕に装着する直前の状態を示す図である。
図3Bは、電気刺激装置100を前腕に装着した直後の状態を示す図である。
図3Aに示すように、ユーザーの右腕の前腕RAの手首寄りの個所に、バンド101の電極配置面100a(図2)の中央部分が触れた状態とする。このときには、図3Aに示すように手のひらが上側となった位置とする。また、ほぼV字形状をしたバンド101の中央にある回路収納ボックス103が、手のひら側を向くようにする。
【0026】
そして、ユーザーは、バンド101の両翼を、矢印F1と矢印F2で示すように手首に巻き付ける作業を行う。
このようにして、図3Bに示すように、電気刺激装置100が前腕RAに巻き付いた状態で装着される。このときには、電極配置面100aに配置した粘着性を有する樹脂材の粘着性で、前腕RAに巻き付いた状態が維持される。
なお、樹脂材の粘着性だけで前腕RAに巻き付いた状態とするのは一例であり、例えばバンド101の両端に何らかのクリップ機構を設けて、両者が重なった状態で留まるようにしてもよい。
【0027】
このように電気刺激装置100は、バンド101を前腕RAに巻き付けて装着するため、簡単に装着することができる。そして、バンド101がほぼV字形状をしているため、ユーザーは装着方向が判りやすく、確実に図3Bに示すような決められた方向に装着できるようになる。
なお、図3ではユーザーの右腕に電気刺激装置100を装着する例を示したが、左腕に電気刺激装置100を装着してもよい。
【0028】
ところで、図3A及び図3Bに図示されているように、本発明の実施形態に係る電気刺激装置100は、ユーザーの前腕RAの手首寄りの箇所に巻きつける。しかし、その際、電気刺激装置100がユーザーの前腕RAの定位置に定まるような指標が、前腕RAには設けられていない。つまり、ユーザーが電気刺激装置100を前腕RAに装着する度、その装着位置が微妙にずれることが往々にして生じる。すると、ユーザーが電気刺激装置100を前腕に装着する度に、電気刺激装置100の電極配置面100aに設けられている電極と筋変位センサーと、ユーザーの腕の筋肉との相対的な位置関係がずれることとなる。
本発明はこの「ズレ」に対応して、電気刺激装置100が電極と手指の動きとの対応関係を正しく把握することを目的として想到されたものである。
【0029】
[電気刺激装置100の使用形態]
図4は、電気刺激装置100の使用形態の一例である、電気刺激装置100を有する電気刺激システム400を示す模式図である。
電気刺激装置100は、後述するBluetooth(登録商標)等の近距離無線通信機能を有する。一方、電気刺激装置100と同等の近距離無線通信機能を内蔵するパソコンか、近距離無線通信機能を提供する周辺機器をパソコンに接続する等で、電気刺激装置100はパソコンとの近距離無線通信による双方向通信を確立する。これ以降、電気刺激装置100と近距離無線通信にて双方向通信を確立するパソコンをホスト401と呼ぶ。図4中、ホスト401には近距離無線通信部402が接続されており、電気刺激装置100との間で双方向通信を確立する。
【0030】
ホスト401には、例えばシューティングゲーム等のアプリケーションプログラムが稼働している。そして、このアプリケーションプログラムに対するユーザーの操作に応じて、ホスト401は電気刺激装置100に対し、ユーザーの所定の筋肉へ電気刺激を与える命令を近距離無線通信にて送信する。電気刺激装置100は、ホスト401から受信した電気刺激の命令に基づき、ユーザーの所望の筋肉へ電気刺激を与える。
また、電気刺激装置100は前述の筋変位センサーにてユーザーの腕の筋肉の変位情報をデジタルデータとしてホスト401に送信する。
【0031】
ところで、筋変位センサーの駆動には赤外線LEDの発光駆動を始め、比較的大きな電力消費を伴う。そこで、ホスト401のアプリケーションプログラムは必要最小限の電力消費で腕の筋肉の変位情報を電気刺激装置100から取得するべく、アプリケーションプログラムの状態に応じて、電気刺激装置100に筋変位センサーの駆動と停止を命じるコマンドを送信する。すなわち、ホスト401は、アプリケーションプログラムを実行中に、アプリケーションプログラムがユーザーの腕の筋肉の変位情報を必要とする状況になるまでは、電気刺激装置100に筋変位センサーを駆動させない。アプリケーションプログラムがユーザーの腕の筋肉の変位情報を必要とする状況に至ったら、その時点でホスト401から電気刺激装置100へ筋変位センサーを駆動するためのコマンドを送信する。このホスト401からのコマンドを受けて、電気刺激装置100は、腕の筋肉の変位情報を取得するべく筋変位センサーを駆動する。
【0032】
そしてホスト401は、アプリケーションプログラムが必要な腕の筋肉の変位情報の取得を終了した時点で、筋変位センサーの駆動を停止するよう、電気刺激装置100へコマンドを送信する。このホスト401からのコマンドを受けて、電気刺激装置100は、筋変位センサーの駆動を停止する。
すなわち、電気刺激装置100は、ホスト401に対して、ユーザーの腕の筋肉の変位情報を収集する入力装置として、そして腕の筋肉に変位を与える出力装置として、機能する。また、電気刺激装置100は、ホスト401及び/またはアプリケーションプログラムに対する端末であるともいえる。
【0033】
図2で説明したように、電気刺激装置100の電極配置面100aには、接地電極を除く電極が8個存在する。一方、人間の手には5本の指が存在する。これは、人の腕の太さにおける個人差を一つの電気刺激装置100だけで吸収するために、5本の指の数を超える数だけ、電極を設けていることによる。つまり、8個の電極の中には指の動きに対応しない電極も含まれることとなる。また、ユーザーの腕に電気刺激装置100を装着した状態によっては、装着位置のずれに起因して、電極に相対する筋肉の位置がずれることが往々にして生じ得る。このようなずれが生じても筋肉に電極が対応できるようにするためには、5本の指の数を超える数の電極を設けることが好ましい。
【0034】
また、電気刺激装置100を正しく動作させるためには、実際の指を動かす筋肉と、電極と、筋変位センサーの対応関係を較正作業によって明らかにする必要がある。
このため、本発明の実施形態に係る電気刺激装置100の動作モードとしては、アプリケーションプログラムの端末として動作する通常モードと、実際の指を動かす筋肉と電極及び筋変位センサーとの対応関係を明らかにするための較正作業を遂行する較正モードとの、二種類の動作モードが存在する。
なお、後述するソフトウェア機能を説明するブロック図では、通常モードと較正モードに分けて説明する。本発明は、このうち特に較正モードに関する発明である。
【0035】
[ホスト401のハードウェア構成]
図5は、ホスト401のハードウェア構成を示すブロック図である。
前述のように一般的なパソコンよりなるホスト401は、バス507に接続された、CPU501、ROM502、RAM503、不揮発性ストレージ504、表示部505、操作部506及び近距離無線通信部402を備える。近距離無線通信部402は、電気刺激装置100と近距離無線通信を行うためのハードウェアである。不揮発性ストレージ504にはOSと、パソコンを電気刺激装置100のホスト401として動作させるためのアプリケーションプログラムが格納されている。
【0036】
[電気刺激装置100のハードウェア構成]
図6は、電気刺激装置100のハードウェア構成を示すブロック図である。
バス601に接続されているCPU602、ROM603、RAM604、A/D変換器605、そして第二シリアルインターフェース606(図6中「第二シリアルI/F」と略記)は、周知のワンチップマイコン607を構成する。
筋変位センサー221、222…228を構成する赤外線LEDである赤外線発光素子221a、222a…228aのアノードは電源電圧ノード+Vccに接続されている。赤外線発光素子221a、222a…228aのカソードは第一マルチプレクサ608を通じて電流制限抵抗R609の一端に接続されている。電流制限抵抗R609の他端は接地されている。
【0037】
筋変位センサー221、222…228を構成するフォトトランジスタである赤外線受光素子221b、222b…228bのコレクタは電源電圧ノード+Vccに接続されている。赤外線受光素子221b、222b…228bのエミッタは第二マルチプレクサ610を通じてA/D変換器605に接続されていると共に、抵抗R611a、R611b、…R611hを通じて接地されている。
【0038】
第一マルチプレクサ608及び第二マルチプレクサ610が、第二シリアルインターフェース606から制御信号を受けて、周期的に切り替え制御されることで、A/D変換器605には時分割で8個の筋変位センサー221、222…228の電圧信号が入力される。この第一マルチプレクサ608及び第二マルチプレクサ610は、複数の筋変位センサー221、222…228のうちの1個を選択する、センサー用マルチプレクサと総称することができる。
【0039】
ワンチップマイコン607のバス601には周知の6軸センサー612と近距離無線通信部613も接続されており、6軸センサー612が出力する姿勢情報及び加速度情報は、A/D変換器605を通じて得られた8個の筋変位センサー221、222…228の情報と共に、近距離無線通信部613を通じてホスト401へ送信される。
ワンチップマイコン607のバス601には更に、第一シリアルインターフェース614(図6中「第一シリアルI/F」と略記)が接続されている。なお、この第一シリアルインターフェース614は、不図示の蓄電池に電力を供給するため、及びROM603に格納されているファームウェアをアップデートする際に用いられる。
【0040】
第二シリアルインターフェース606には更に、周知のチョークコイルとコンデンサとトランジスタスイッチよりなる昇圧回路615が接続されている。そして、第二シリアルインターフェース606から昇圧回路615に、例えば100kHzで、ほぼ電源電圧+Vccに等しい電圧の矩形波パルス信号が供給される。この矩形波パルス信号は、昇圧回路615内の不図示のトランジスタスイッチをオン・オフ制御する。
そして、昇圧回路615によって矩形波パルス信号の電圧は2倍に昇圧される。昇圧回路615が出力する電気刺激電圧は、PWMスイッチ616と第三マルチプレクサ617を通じて電極201、202…208に供給される。
【0041】
PWMスイッチ616は第二シリアルインターフェース606によって制御され、昇圧回路615によって昇圧された電気刺激電圧にPWM変調を施す。電気刺激電圧は、PWM変調にてデューティ比が変化されるため、筋肉に与える電気刺激電圧が所望の電圧に変更される。第三マルチプレクサ617も第二シリアルインターフェース606を通じて制御され、ホスト401から近距離無線通信部613を通じて受信した命令に指定された電極を選択して、その電極にPWM変調された電気刺激電圧が印加される。
第三マルチプレクサ617は、複数の電極201、202…208のうちの1個を選択する、電極用マルチプレクサということもできる。
【0042】
[通常モードにおける電気刺激装置100とホスト401のソフトウェア機能]
図7は、通常モードにおける電気刺激装置100とホスト401のソフトウェア機能を示すブロック図である。
電気刺激装置100は、ホスト401に対し、ユーザーの腕の筋肉の変動と電気刺激装置100自体の姿勢と加速度をホスト401へ送信する機能と、ホスト401から受信した命令に従って、ユーザーの湯での筋肉に電気刺激を与える機能を有する、入出力端末装置である。
すなわち、8個の筋変位センサー221〜228が出力するアナログ信号はA/D変換器605によって筋変位情報に変換され、6軸センサー612が出力する姿勢情報及び加速度情報と共に、入出力制御部701及び近距離無線送信部702を通じてホスト401へ送信される。
【0043】
ホスト401は、電気刺激装置100から近距離無線受信部711を通じて筋変位情報と姿勢情報及び加速度情報を受信すると、これらを入出力制御部712に供給する。入出力制御部712は、電気刺激装置100から受信した筋変位情報と姿勢情報及び加速度情報を、ゲーム等の所定のアプリケーションプログラムである情報処理部に供給すると共に、情報処理部713が出力する描画情報に基づいて表示部505に所定の画面描画情報を出力する。また、入出力制御部712は、情報処理部713が出力する電気刺激情報を、近距離無線送信部714を通じて電気刺激装置100に送信する。
【0044】
電気刺激装置100の指電極対応変換部703は、近距離無線受信部704を通じて、ホスト401から出力される電気刺激実行コマンドを受信すると、RAM604に保持されている電極確率行列705を参照する。そして、コマンドに指定されている指番号を電極番号に変換して、PWMスイッチ616と第三マルチプレクサ617を制御し、所望の電極201〜208に電気刺激電圧を印加する。
なお、電極確率行列705の詳細については図9以降に後述する。
【0045】
なお、筋変位センサー221〜228の切り替え動作を行う第一マルチプレクサ608及び第二マルチプレクサ610の動作タイミングを制御する入出力制御部712と、電極の切り替え動作を行う第三マルチプレクサ617の動作タイミングを制御する指電極対応変換部703は、完全に非同期である。このため、図7では別々の機能ブロックとして図示されている。
【0046】
[較正モードにおける電気刺激装置100とホスト401のソフトウェア機能]
図8は、較正モードにおける電気刺激装置100とホスト401のソフトウェア機能を示すブロック図である。
図8に示す電気刺激装置100とホスト401のソフトウェア機能の、図7との相違点は、
<1>較正モードにおいて不要である6軸センサー612の機能を停止させていること、
<2>ホスト401の入出力制御部712はRAM503または不揮発性ストレージ504に設けられるセンサー値記憶部801にセンサーの値を記憶して、電極確率行列705を作成し、またこれを更新して、電気刺激装置100へ電極確率行列705を送信すること、
<3>電気刺激装置100は、ホスト401から送信されるコマンドに基づき、電極に電気刺激を与え、これに同期して筋変位センサーをスキャンすること
である。
【0047】
特に、上記の<3>のため、電気刺激装置100の入出力制御部712はホスト401から送信されるコマンドに基づき、電極に電気刺激を与えた後、内蔵するタイマー803を起動する。そして所定時間が経過した後、筋変位センサーをスキャンする。
一方、ホスト401の入出力制御部712は、電気刺激装置100から受信した筋変位センサー221〜228の情報に基づき、確率演算部802の演算結果を取得して、電極確率行列705を作成し、または更新する。そして、作成または更新が完了した電極確率行列705を近距離無線送信部714を通じて電気刺激装置100へ送信する。また、入出力制御部712は、較正モードの動作中、表示部505に較正モードの進捗状況等を所定のメッセージ等にて表示する。
【0048】
[較正モードにおけるホスト401のソフトウェア動作]
電極確率行列705とは、ユーザーの指を動かす筋肉に対応する、電極と手指の動きの対応関係を示す行列データである。図17に、電極確率行列705の一般化した一例を示す。電極確率行列705の縦(行)は電極を表し、横(列)は手指の動きを表す。各要素にはベイズ推定に依るベイズ事後確率が格納されている。
【0049】
通常モードにおいて、ホスト401から所望の手指を動かす命令を受けると、電気刺激装置100の指電極対応変換部703は、ホスト401から指定された手指の情報により、電極確率行列705を参照する。つまり、手指の情報に対応する、ホスト401に指定された電極確率行列705の行を見る。すると、その行を構成する要素には電極毎の確率が格納されている。これら要素のうち、最大の確率を示す要素に該当する電極が、当該手指を動かす可能性が最も高い電極である。このように、指電極対応変換部703はホスト401から指定された手指を電極の番号に変換し、この情報を以って第三マルチプレクサ617を制御する。
【0050】
ある電極に電気刺激電圧を与えると、所定の筋肉が刺激され、この筋肉に対応する指が動く。そしてその筋肉の変位をある筋変位センサーが検出し、センサー値記憶部801に記憶されている対応データを参照して、どの指が曲がったかを判定する。すなわち、手指の動きと電極との関係は、1:1に対応させている。
図2において、電気刺激装置100の電極配置面100aには、接地電極を除く8個の電極と、8個の筋変位センサーが設けられていると説明した。前述の通り、5本の指に対して8個の電極と8個の筋変位センサーが設けられている理由は、人の腕の太さにおける個人差を一つの電気刺激装置100だけで吸収するためである。すると、電極の中には指の動きに対応しない電極が生じることとなる。すなわち、電気刺激装置100を正しく動作させるためには、実際の手指の動きと、電極との対応関係を較正作業によって明らかにする必要がある。
【0051】
図9は、較正モードにおける、電気刺激装置100とホスト401が実行する較正動作の流れを示すタイムチャートである。
電気刺激装置100がユーザーの腕に装着されると、筋変位センサーはユーザーの皮膚が筋変位センサーの検出領域に近接したことを検出する。電気刺激装置100の入出力制御部712は、電気刺激装置100がユーザーの腕に装着されたことを検出すると(S901)、近距離無線通信部613を通じて、ホスト401に対し、通信の確立を要求する(S902)。ホスト401は電気刺激装置100から通信の要求を受けて、通信の確立を示すステータスメッセージを返信する(S903)。電気刺激装置100はホスト401からステータスメッセージを受信して、通信の確立を認識した旨のステータスメッセージをホスト401へ返信する(S904)。
【0052】
ホスト401の入出力制御部712は、近距離無線受信部704を通じて電気刺激装置100から通信の確立を認識した旨のステータスメッセージを受信すると、筋変位センサーの較正作業に入る。先ず、ホスト401の不揮発性ストレージ504に格納されている、「静止状態案内ビデオ」という動画データを再生し、表示部505に表示する。そして、電気刺激装置100に筋変位センサーのデータを収集するコマンドを送信する(S905)。「静止状態案内ビデオ」とは、電気刺激装置100が上腕に装着された、力が入っていない手のイラストと、「手に力を入れない状態でそのままお待ち下さい」というメッセージを表示する動画データである。電気刺激装置100はホスト401からコマンドを受信すると、全ての筋変位センサーのデータをホスト401に返信する(S906)。この時点の筋変位センサーの値は、ユーザーが手指に力を入れていない状態における筋変位センサーの値であり、筋肉に力が入っているか否かを検出するための基礎となる値である。
【0053】
ホスト401は、電気刺激装置100から8個の筋変位センサーのデータを受信すると、これを「静止状態データ」として記憶する(S907)。次に、ホスト401の不揮発性ストレージ504に格納されている「第一の動作案内ビデオ」という動画データを再生し、表示部505に表示する。そして、電気刺激装置100に筋変位センサーのデータを収集するコマンドを送信する(S908)。「第一の動作案内ビデオ」とは、電気刺激装置100が上腕に装着された、親指を曲げた状態の手のイラストと、「親指を曲げた状態でそのままお待ち下さい」というメッセージを表示する動画データである。電気刺激装置100はホスト401からコマンドを受信すると、全ての筋変位センサーのデータをホスト401に返信する(S909)。この時点の筋変位センサーの値は、ユーザーが親指に力を入れた状態における筋変位センサーの値である。
【0054】
ホスト401は、電気刺激装置100から8個の筋変位センサーのデータを受信すると、これを「第一の動作状態データ」として記憶する(S910)。次に、ホスト401の不揮発性ストレージ504に格納されている「第二の動作案内ビデオ」という動画データを再生し、表示部505に表示する。そして、電気刺激装置100に筋変位センサーのデータを収集するコマンドを送信する(S911)。「第二の動作案内ビデオ」とは、電気刺激装置100が上腕に装着された、人差指を曲げた状態の手のイラストと、「人差指を曲げた状態でそのままお待ち下さい」というメッセージを表示する動画データである。
【0055】
ステップS911以降、ステップS908、S909、S910に相当する動作が、ステップS908から合計8回行われる。その際、ホスト401が再生する動画データと、ホスト401が電気刺激装置100から受信してセンサー値記憶部801に記憶するデータは以下の通りである。
「第一の動作案内ビデオ」:親指を曲げた状態の動作案内、第一の動作状態データを記憶する。
「第二の動作案内ビデオ」:人差指を曲げた状態の動作案内、第二の動作状態データを記憶する。
「第三の動作案内ビデオ」:中指を曲げた状態の動作案内、第三の動作状態データを記憶する。
「第四の動作案内ビデオ」:薬指または小指を曲げた状態の動作案内、第四の動作状態データを記憶する。
「第五の動作案内ビデオ」:手をまっすぐに伸ばした状態で手首を掌の方向へ曲げた(掌屈)状態の動作案内、第五の動作状態データを記憶する。
「第六の動作案内ビデオ」:手をまっすぐに伸ばした状態で手首を手の甲の方向へ曲げた(背屈)状態の動作案内、第六の動作状態データを記憶する。
「第七の動作案内ビデオ」:手をまっすぐに伸ばした状態で手首を親指の方向へ曲げた(撓屈)状態の動作案内、第七の動作状態データを記憶する。
「第八の動作案内ビデオ」:手をまっすぐに伸ばした状態で手首を小指の方向へ曲げた(尺屈)状態の動作案内、第八の動作状態データを記憶する。
【0056】
ホスト401は、電気刺激装置100から8個の筋変位センサーのデータを受信すると、これを「第七の動作状態データ」として記憶する(S912)。次に、ホスト401の不揮発性ストレージ504に格納されている「第八の動作案内ビデオ」という動画データを再生し、表示部505に表示する。そして、電気刺激装置100に筋変位センサーのデータを収集するコマンドを送信する(S913)。「第八の動作案内ビデオ」とは、電気刺激装置100が上腕に装着され、手をまっすぐに伸ばした状態で手首を小指の方向へ曲げた(尺屈)状態の手のイラストと、「手をまっすぐに伸ばし、手首を小指の方向へ曲げた状態で、そのままお待ち下さい」というメッセージを表示する動画データである。電気刺激装置100はホスト401からコマンドを受信すると、全ての筋変位センサーのデータをホスト401に返信する(S914)。この時点の筋変位センサーの値は、ユーザーが手首を小指の方向へ曲げた尺屈状態における筋変位センサーの値である。
ホスト401は、電気刺激装置100から筋変位センサーのデータを受信すると、これを「第八の動作状態データ」として記憶する(S915)。
以上、ステップS905からステップS915にかけて、ホスト401は筋変位センサーの値の変動と、手指の動作との対応関係を把握したことになる。
【0057】
ステップS915が終了した時点で、ホスト401の入出力制御部712は、各々の筋変位センサーの相対値を計算する。具体的には、第一の動作状態データから静止状態データを減算して、親指を曲げた状態に係る第一の基準値を得る。第二の動作状態データから静止状態データを減算して、人差指を曲げた状態に係る第二の基準値を得る。以下同様に、中指を曲げた状態に係る第三の基準値、薬指または小指を曲げた状態に係る第四の基準値、掌屈状態に係る第五の基準値、背屈状態に係る第六の基準値、撓屈状態に係る第七の基準値及び尺屈状態に係る第八の基準値を得る。これら第一から第八の基準値は、8個の筋変位センサーの相対値の集合である。ホスト401の入出力制御部712は、これら第一から第八の基準値をセンサー値記憶部801に記憶する。
次に、ホスト401の入出力制御部712は、これら第一から第八の基準値に対し、所定の比率を乗算して、閾値を得る。ここで第一から第八の基準値に乗算する比率は例えば50%である。ホスト401の入出力制御部712は、これら閾値もセンサー値記憶部801に記憶する。
【0058】
筋変位センサーのフォトトランジスタが検出する反射光の強度は、筋変位センサーに相対するユーザーの皮膚及び筋肉の状態や、筋変位センサーとユーザーの皮膚との相対的な位置関係等の要因(不確定要素)によって、大きく異なる。そこで、ホスト401の入出力制御部712は、ユーザーが手指に殆ど力を入れていない状態と、ユーザーが特定の手指を曲げた状態との、それぞれの筋変位センサーの値をセンサー値記憶部801に記憶して、その差分を計算する。得られた基準値は筋変位センサーの相対的な変動値であるので、不確定要素の影響を排除できる。
【0059】
筋変位センサーが出力するアナログ信号をデジタル化するA/D変換器605は、例えば10ビット符号なし整数(0〜1023)である。発明者らが試験的に電気刺激装置100を作成した際、筋肉の変位を検出した筋変位センサーから得られる相対的な変動値は凡そ300〜900前後であることが判った。
後述するステップS916以降、ホスト401が電気刺激装置100から受信した筋変位センサーのデータは、全て静止状態データを減算して、筋変位センサーの相対値に変換される。そして入出力装置は、筋変位センサーの相対値を閾値と比較して、所定の手指が動いたか否かを判定する。
【0060】
ステップS905からステップS915にかけて、筋変位センサーの値の変動と手指の動作との対応関係を把握したホスト401は、次に、電極と、手指の動作との対応関係を把握するための作業に入る。
ホスト401の入出力制御部712は、電気刺激装置100へ、第一の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンドを送信する(S916)。
電気刺激装置100はホスト401からコマンドを受信すると、第一の電極に電気刺激電圧を印加して(S917)、所定時間経過後に筋変位センサーのデータを収集し、これをホスト401へ返信する(S918)。
ホスト401の入出力制御部712は、電気刺激装置100から筋変位センサーのデータを受信すると、これを第一の電極におけるセンサー値データとしてセンサー値記憶部801に記憶する(S919)。次に、ホスト401の入出力制御部712は、電気刺激装置100へ、第二の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンドを送信する(S920)。
【0061】
ステップS920以降、ステップS916、S917、S918、S919に相当する動作が、ステップS916から合計8回行われる。その際、ホスト401が電気刺激装置100へ送信するコマンドと、ホスト401が電気刺激装置100から受信してセンサー値記憶部801に記憶するデータは以下の通りである。
第一の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第一の電極におけるセンサー値データを記憶する。
第二の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第二の電極におけるセンサー値データを記憶する。
第三の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第三の電極におけるセンサー値データを記憶する。
第四の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第四の電極におけるセンサー値データを記憶する。
第五の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第五の電極におけるセンサー値データを記憶する。
第六の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第六の電極におけるセンサー値データを記憶する。
第七の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第七の電極におけるセンサー値データを記憶する。
第八の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンド:第八の電極におけるセンサー値データを記憶する。
【0062】
ホスト401の入出力制御部712は、電気刺激装置100から筋変位センサーのデータを受信すると、これを第七の電極におけるセンサー値データとしてセンサー値記憶部801に記憶する(S921)。次に、ホスト401の入出力制御部712は、電気刺激装置100へ、第八の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンドを送信する(S922)。
電気刺激装置100はホスト401からコマンドを受信すると、第八の電極に電気刺激電圧を印加して(S923)、所定時間経過後に筋変位センサーのデータを収集し、これをホスト401へ返信する(S924)。
【0063】
ホスト401の入出力制御部712は、電気刺激装置100から筋変位センサーのデータを受信すると、これを第八の電極におけるセンサー値データとしてセンサー値記憶部801に記憶する(S925)。次に、ホスト401の入出力制御部712は、ステップS905からS915迄の一連の動作で記憶した、各手指の動きに対応する第一から第八の動作状態データと、ステップS916からS925迄の一連の動作で記憶した、各電極におけるセンサー値データの生成または更新を行う。
なお、既に1回目の学習モード(図10以降で後述)が実行された結果、ホスト401に電極確率行列705が存在する場合には、確率演算部802を通じて電極確率行列705についても、その更新を行う。ホスト401の入出力制御部712は、生成または更新された電極確率行列705を電気刺激装置100に送信する(S926)。そして、電気刺激装置100は、ホスト401から受信した電極確率行列705をRAM503に記憶して(S927)、一連の処理を終了する。
【0064】
図9のステップS905からステップS915までは、筋変位センサーと手指の動きとの相関関係を明らかにする、筋変位センサー較正モードである。ホスト401の入出力制御部712が筋変位センサー較正モードを実行することで、筋変位センサー221〜228から得られたデータにより、現在どの手指が動いているのかが明らかになる。
そして、図9の破線で囲まれている、ステップS916からステップS927までは、電極と手指の動きとの相関関係を、電極確率行列705を作成し更新することで明らかにする、学習モードである。ホスト401の入出力制御部712が学習モードを実行することで、所望の手指を動かすために、電極201〜208のどの電極に電気刺激電圧を印加すればよいのかが明らかになる。
すなわち、較正モードは筋変位センサー較正モードと学習モードを含む。以下、図10を参照して学習モードについて説明する。
【0065】
図10は、ユーザーが初めて電気刺激装置100を装着した際にホスト401で実行される、初回の学習モードの動作の流れを示すフローチャートである。
処理を開始すると(S1001)、ホスト401の入出力制御部712は、先ずカウンタ変数iを1に初期化すると共に、電極確率行列705の全ての要素を「0」に初期化する(S1002)。
これ以降はループである。入出力制御部712は、電気刺激装置100に対し、i番目の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンドを送信する(S1003)。そして、電気刺激装置100から受信した筋変位センサーのデータから差分値を算出し、閾値と比較して、手指の動きがあったか否かを調べる(S1004)。もし、何れかの手指がi番目電極による電気刺激によって動いたと判定した場合には(S1005のYES)、入出力制御部712は、電極確率行列705の、動きを検出したx番目の手指に該当するx行の、i番目の電極に該当するi列の要素に「1」を記憶する(S1006)。
【0066】
ステップS1006を実行した後、またはステップS1005において何れの手指もi番目電極による電気刺激によって動いていないと判定した場合には(S1005のNO)、入出力制御部712はカウンタ変数iがiの最大値、すなわち電極の合計数に至ったか否かを確認する。カウンタ変数iが電極の合計数に至っていない場合には(S1007のNO)、入出力制御部712はカウンタ変数iを1インクリメントして(S1008)、再度ステップS1003から処理を繰り返す。
ステップS1007において、カウンタ変数iが電極の合計数に達した場合には(S1007のYES)、入出力制御部712は作成した電極確率行列705を不揮発性ストレージ504に保存するとともに、電気刺激装置100へ送信して(S1009)、一連の処理を終了する(S1010)。
【0067】
続いて、ステップS1003の動作について、説明を加える。
図11は、電気刺激と筋肉の収縮状態と筋変位センサーの動作を説明するタイムチャートである。
図11中、上から(A)電極に印加される電気刺激、(B)筋肉の収縮状態、(C)筋変位センサーの動作期間を示す、入出力制御部712内のゲート信号、(D)第一の筋変位センサーの動作期間、(E)第二の筋変位センサーの動作期間、(F)第三の筋変位センサーの動作期間、(G)第七の筋変位センサーの動作期間、(H)第八の筋変位センサーの動作期間、である。(B)筋肉の収縮状態のみ縦軸は筋肉収縮の変位量であり、それ以外は全て論理値である。
【0068】
時点T1101で、電極に電気刺激電圧が印加されると、筋肉は収縮を始める。筋肉の収縮が安定した時点T1102から、ゲート信号が論理の真を示し、これに呼応して筋変位センサーのスキャンが始まる。1個の筋変位センサーのデータ収集に要する時間は凡そ数msec〜数十msecで終了する。全ての筋変位センサーのスキャンが終了した時点T1103で、ゲート信号の論理が偽に反転し、同時に電極に対する電気刺激電圧の印加も終了する。
図11に示した、電極に電気刺激電圧を印加して筋変位センサーをスキャンする動作は、8個の電極全てに対して実行される。
【0069】
人間の筋肉は、外部から電極を通じて電気刺激電圧を与えると収縮する。その際、電気刺激電圧を与えてから筋肉が所定の収縮量まで収縮して安定するまでに、凡そ0.1秒程度の時間がかかる。本発明の実施形態に係る電気刺激装置100では、更にマージンを見越して、0.2秒のマージンタイムを設けている。図11の電気刺激電圧が印加される時点T1101から筋肉の収縮が安定する時点T1102までが、そのマージンタイムである。
【0070】
次に、ステップS1003からS1008までの処理で作成される電極確率行列705について説明する。
図12Aは、電気刺激に対する手指の動きを示す行列の説明図である。これ以降、この行列を手指挙動行列と呼ぶ。
図12Bは、手指挙動行列から、有効な電気刺激を選択する手順を示す図である。
図12Cは、手指挙動行列から、有効な電気刺激を選択した結果を示す行列の説明図である。この行列をフラグ行列と呼ぶ。
図12Dは、フラグ行列から生成した、電極確率行列705を示す図である。
【0071】
ステップS1004において、入出力制御部712は、筋変位センサーの差分値を算出する。そして、手指の動きに対応する筋変位センサーの差分値を導き出す。ある手指の動きに対応する筋変位センサーが1個だけの場合は、そのまま当該差分値を採用する。ある手指の動きに対応する筋変位センサーが2個以上の組み合わせの場合は、各々の筋変位センサーの差分値の平均値を採用する。こうして、図12Aに示すような数値が、手指挙動行列の要素として記憶される。
【0072】
図12A及び図12Bに示す手指挙動行列の行、図12Cに示すフラグ行列の行、図12Dに示す電極確率行列705の行は、上から以下の通りである。
1行目:親指を曲げた状態、すなわち親指屈曲状態。
2行目:人差指を曲げた状態、すなわち人差指屈曲状態。
3行目:中指を曲げた状態、すなわち中指屈曲状態。
4行目:薬指または小指を曲げた状態、すなわち薬指または小指屈曲状態。
5行目:手をまっすぐに伸ばした状態で手首を掌の方向へ曲げた(掌屈)状態、すなわち手首掌屈状態。
6行目:手をまっすぐに伸ばした状態で手首を手の甲の方向へ曲げた(背屈)状態、すなわち手首背屈状態。
7行目:手をまっすぐに伸ばした状態で手首を親指の方向へ曲げた(撓屈)状態、すなわち手首撓屈状態。
8行目:手をまっすぐに伸ばした状態で手首を小指の方向へ曲げた(尺屈)状態、すなわち手首尺屈状態。
図12A及び図12Bに示す手指挙動行列の列、図12Cに示すフラグ行列の列、図12Dに示す電極確率行列705の列は、左から右へ、第一の電気刺激から第八の電気刺激である。
【0073】
次に、図10のステップS1004における、手指が動いたか否かの判定手順を説明する。
図12Bに示す手指挙動行列の、1行1列から8行1列までの要素に着目すると、上から順に「595 115 92 0 0 0 0 0」という要素で構成されている。この行の要素のうち、最大値を示す要素は1行1列の「595」である。この値を最大値配列1201に格納する。最大値配列1201は、各列の最大値を格納する配列である。
要素「595」の位置は手指挙動行列の(1,1)であり、その行(1行)は親指屈曲状態に該当する。そこで、この値「595」が、親指屈曲状態の閾値を超えているか否かを判定する。判定した結果、閾値を超えていると判ったので、手指挙動行列の1行1列の要素は有効であるとして、フラグ配列1202に論理の真を格納する。図12Bでは、「○」で記されている。
このように、手指挙動行列の各行について最大値を選んで、最大値配列1201に格納する。そして、それら要素の位置から、その要素が属する手指の動作における閾値と比較する。比較した結果、最大値が閾値以上の値であれば、フラグ配列1202に論理の真を格納する。そして、フラグ配列1202に論理の真が付された最大値配列1201の要素の位置について、フラグ行列の同じ位置に存在する要素を論理の真とする。これが図12Cのフラグ行列である。
フラグ行列の、論理が真の要素について、その要素を100%(=1)の確率とする。これが図12Dの電極確率行列705である。
【0074】
電極確率行列705は、ある電極に電気刺激電圧を与えると、どの手指がどの程度の確率で動くのかを示す行列である。電極確率行列705の要素として格納される確率は、ベイズ推定等の事後確率である。すなわち、図10のフローチャートにおける電極確率行列705の作成は、ベイズ推定の初回の学習である。
図10のフローチャートを実行した時点では、未だ初回の学習であるため、0または1の何れかしか存在しない。これらの値は、これより説明する2回目以降の学習モードにおいて、変動する。
【0075】
図13及び図14は、ユーザーが2回目以降に電気刺激装置100を装着した際にホスト401にて実行される、2回目以降の学習モードの動作の流れを示すフローチャートである。
処理を開始すると(S1301)、ホスト401の入出力制御部712は、先ずカウンタ変数jを1に初期化すると共に、フラグ変数MFflagを論理の偽に初期化する(S1302)。フラグ変数MFflagは、電気刺激によって手指が動いた状態が生じたことを記録するためのフラグである。
【0076】
これ以降はループである。入出力制御部712は、電気刺激装置100に対し、j番目の電極に電気刺激電圧を印加させた後に筋変位センサーのデータを収集するコマンドを送信する(S1303)。そして、電気刺激装置100から受信した筋変位センサーのデータから差分値を算出し、閾値と比較して、手指の動きがあったか否かを調べる(S1304)。ステップS1303及びS1304は、図10のステップS1003及びS1004と処理内容が同じである。
【0077】
もし、何れかの手指がj番目電極による電気刺激によって動いたと判定した場合には(S1305のYES)、入出力制御部712は次に、フラグ変数MFflagが論理の偽であるか否か、すなわち「この時点で初めて手指が動いたのか否か」を確認する。もし、この時点で初めて手指が動いたと判定した場合には(S1306のYES)、ホスト401の不揮発性ストレージ504に保存してある電極確率行列705をRAM503に読み出して、RAM503上の電極確率行列705の要素を行ごと及び/または列ごとに移動する(S1307)。このように、電極確率行列705の要素を移動させることで、現在ユーザーの腕に装着されている電気刺激装置100の、電極と筋肉との相対的な位置関係を、電極確率行列705に反映させる。
【0078】
次に入出力制御部712は確率演算部802を稼働させて、1番目からj−1番目までの電極に対応する、電極確率行列705の要素に対し、手指が動かなかった旨のベイズ事後確率「P(x|j)」を演算し、電極確率行列705の該当する要素を更新する(S1308)。そして、フラグ変数MFflagを論理の真に転換し(S1309)、図14のステップS1410へ移行する。すなわち、これ以降、ステップS1005で何れかの手指が動いたと判断した後(S1005のYES)は、ステップS1006でMFflagが論理の真に転換しているので、ステップS1307、S1308及びS1309の処理を行わず、図14のステップS1410へ移行する。
【0079】
次に、ステップS1307の、電極確率行列705の要素を移動することについて、図15A及び図15Bを参照して詳述する。
図15Aは、ユーザーが電気刺激装置100を初めて腕に装着した際の、腕の筋肉と電極の配置関係を説明するための模式的な概略図である。
図15Bは、ユーザーが電気刺激装置100を再び腕に装着した際の、腕の筋肉と電極の配置関係を説明するための模式的な概略図である。
図15Aにおいて、電極1501は、筋肉1502から離れている。筋肉1502には電極1503が近接している。筋肉1504には電極1505が近接している。なお、電極1506は電極1501、電極1503、電極1505が共通して利用する接地電極である。
【0080】
図15A図15Bを比べると、図15Bでは、ユーザーの腕と電気刺激装置100の電極配置面100aとの相対的な位置関係がずれている。このため、電極1501が筋肉1502に近接し、筋肉1504には電極1503が近接している。そして電極1505は筋肉1504から離れている。
このように、ユーザーの腕と電気刺激装置100の電極配置面100aとの相対的な位置関係がずれると、筋肉に相対する電極の配置も変わる。そして、この現象は手指挙動行列及びこれを基に作成されたフラグ行列の要素のずれとなって現れる。このため、先に不揮発性ストレージ504に記憶していた電極確率行列705の要素を、検出した手指挙動行列に合わせ込む必要が生じる。
【0081】
図16Aは、2回目以降の学習モードによって作成された、手指挙動行列の例である。
図16Bは、図16Aの手指挙動行列に基づいて作成された、仮想的な電極確率行列705である。
図16Cは、図12Dの電極確率行列705である。
図16Dは、図16Cの電極確率行列705を並べ替えた行列である。
先ず、図16Cの電極確率行列705は、図12Dにおいて説明したように、第一回目の学習モードにおいて作成された行列データである。これに対し、図16Bに示す仮想的な電極確率行列705は、第二回目の学習モードによって作成された行列データである。
【0082】
一見すると、行列データを見比べるだけでは、第二回目の学習モードにおけるユーザーの腕と電気刺激装置100との相対的な位置関係(図16B)が、第一回目の学習モードにおけるユーザーの腕と電気刺激装置100との相対的な位置関係(図16C)に対してどれだけずれたのかが判らないようにも思える。しかし、この行列データの左上の、手指が動いた要素(「1」の要素)に注目すると、第一回目の学習モードにおいて、初めて手指が動いた時点の要素の位置(P1603)と、第二回目の学習モードにおいて、初めて手指が動いた時点の要素の位置(P1601)とで、位置にずれが生じていることが明確に判る。すなわち、前回使用時点におけるユーザーの腕と電気刺激装置100との相対的な位置関係と、現時点のユーザーの腕と電気刺激装置100との相対的な位置関係とのずれが、要素の位置のずれとして明確に判る。
【0083】
先に説明したように、電極確率行列705は、電極と手指の動きとの相関関係を確率で表す行列データである。確率はベイズ推定によるベイズ事後確率を適用する。しかし、ベイズ推定以前に、前回使用時点におけるユーザーの腕と電気刺激装置100との相対的な位置関係と、現時点のユーザーの腕と電気刺激装置100との相対的な位置関係とのずれが、電極確率行列705に現れたままでは、学習の精度が著しく落ちてしまう。そこでホスト401の入出力制御部712は、不揮発性ストレージ504から読み出してRAM503に保持した電極確率行列705を、現時点のユーザーの腕と電気刺激装置100との相対的な位置関係に合わせて、行列の要素を入れ替える。図16Cの場合、要素P1603の位置(1,1)が、図16Bの要素P1601の位置(1,2)と同じ位置になるように、図16Cの電極確率行列705の列を右方向に1列ずらす。すると、図16Cの要素群A1604が、図16Bの要素群A1602と同じ位置に配置され、図16Cの要素群A1605は要素群A1604の移動に伴い弾き出され、空白となった電極確率行列705の左端1列に配置される。これが図16Dの電極確率行列705である。
なお、ステップS1308の処理は、図16Dにおける要素群A1605を更新する処理である。
【0084】
図13のステップS1307における、電極確率行列705の左上に存在する、有効な電気刺激を示す要素を探す、という処理は、わかりやすさのために、電極に対して順番に電気刺激電圧を印加すると、最初に最も小さい番号の手指の動きが生じる前提で、電極確率行列705を構成していた。但し、これは便宜的なものであるので、電極に対して順番に電気刺激電圧を印加して、最初に検出した手指の動きに該当する電極確率行列705の要素を参照すればよい。
【0085】
なお、図13のステップS1306にて、初めて動いた手指が親指屈曲状態ではない場合、現在のユーザーの腕と電気刺激装置100との相対的な位置関係において、何れの電極も親指屈曲状態を生じさせてない。すなわち、電極の配置が親指の屈曲に失敗している。このような場合には、初めて動いた手指に対応する、電極確率行列705の同じ行の要素を参照する。つまり、電極確率行列705の親指屈曲状態を示す1行目を無視する。電極確率行列705は列単位でのみ並べ替えを行い、行単位での並べ替えは行わない。
【0086】
再び、図13及び図14に戻って、フローチャートの説明を続ける。
ステップS1309の後、またはステップS1306でフラグ変数MFflagが論理の真であった場合(S1306のNO)、図14の処理に移行する。
図14に示すように、入出力制御部712は確率演算部802を稼働させて、j番目の電極に対応する電極確率行列705の要素に対し、手指が動いた要素については手指が動いた旨のベイズ事後確率「P(x|j)」を演算する。また、手指が動かなかった要素素については、手指が動かなかった旨のベイズ事後確率「P(x|j)」を演算し、電極確率行列705の該当する要素を更新する(S1410)。
【0087】
そして、入出力制御部712はカウンタ変数jがjの最大値、すなわち電極の合計数に至ったか否かを確認する。カウンタ変数jが電極の合計数に至っていない場合には(S1411のNO)、入出力制御部712はカウンタ変数jを1インクリメントして(S1412)、再度ステップS1303から処理を繰り返す。
ステップS1411においてカウンタ変数jが電極の合計数に至っている場合には(S1411のYES)、入出力制御部712は作成した電極確率行列705を不揮発性ストレージ504に保存して、電気刺激装置100へ送信して(S1413)、一連の処理を終了する(S1414)。
【0088】
図13に戻って、ステップS1305において何れの手指も動いていない場合には(S1305のNO)、次に入出力制御部712はフラグ変数MFflagが論理の偽であるか否か、すなわちこの時点でまだ手指が動いていないのか否かを確認する(S1415)。まだ手指が動いていない場合には(S1415のYES)、そのまま何もせずにステップS1411の、カウンタ変数jの確認を行う。
ステップS1415において、フラグ変数MFflagが論理の真である、すなわちこの時点で既に手指が動いていたのであれば(S1415のNO)、入出力制御部712は入出力制御部712は確率演算部802を稼働させて、j番目の電極に対応する全ての電極確率行列705の要素に対し、手指が動かなかった旨のベイズ事後確率「P(x|j)」を演算し、電極確率行列705の該当する要素を更新する(S1416)。そして、ステップS1411の、カウンタ変数jの確認を行う。
【0089】
ステップS1415の判定は、ステップS1307における電極確率行列705の並べ替えが行われたか否かを判定するための処理である。前回使用時点におけるユーザーの腕と電気刺激装置100との相対的な位置関係を示す電極確率行列705を、現時点のユーザーの腕と電気刺激装置100との相対的な位置関係に合わせなければ、電極確率行列705に対し、ベイズ推定による学習を正しく遂行できない。したがって、ステップS1307の処理が完遂するまでは、ベイズ推定演算を行わない(S1415のYES)が、ステップS1307の処理が完遂した後は、ベイズ推定演算を行う(S1308、S1410、S1415のNOからS1416)。
【0090】
本発明の実施形態に係る電気刺激装置100は、8個の筋変位センサーと8個の電極で構成しているが、筋変位センサーと電極の個数は必ずしも8個である必要はない。むしろ、筋変位センサーと電極の数は多ければ多い程、筋肉の収縮状態の検出と、筋肉の収縮制御を、より精緻に遂行できる。
図17は、一般化した電極確率行列705の一例を示す図である。ユーザーが電気刺激装置100を繰り返し使用すると、その度にユーザーの腕に対する電気刺激装置100の着脱が繰り返される。すなわち、電気刺激装置100をユーザーの腕に着脱する都度、学習モードが実行される。そして、その学習モードが繰り返し実行されると、結果として、ある電極と手指の動きとの相関関係が定まることとなる。電極確率行列705の各要素は、x行j列についてベイズ事後確率「P(x|j)」が格納される。
【0091】
以上に説明した本発明の実施形態は、以下の様な応用が可能である。
(1)一家に1台、電気刺激装置100を導入することを仮定する。お父さん、お母さん、子供のそれぞれ、腕の太さは異なる。したがって、1台の電気刺激装置100を複数のユーザーで共有する場合には、ホスト401にユーザー認証の機能を設け、電極確率行列705をユーザーIDと紐付けることが好ましい。
ユーザー認証は、ユーザーを一意に識別する機能を有する手段であれば何でもよい。例えば、キーボードを用いた一般的なパスワード認証の他、指紋、静脈、虹彩等の生体認証等が利用可能である。指紋や静脈を用いた生体認証のユニットは、電気刺激装置100の回路収納ボックス103に収納すると使い勝手がよい。
また、このユーザー認証機能は、アプリケーションプログラムであるところの情報処理部713のユーザー認証機能と統合されていると、電気刺激装置100のユーザー認証とアプリケーションプログラムのユーザー認証を一元化できるので、更に使い勝手がよくなることが期待できる。この場合、ユーザーIDが、情報処理部713のユーザーデータと、電気刺激装置100の電極確率行列705と紐付くこととなる。
すなわち、ホスト401にインストールされる電気刺激装置100のデバイスドライバプログラムにユーザー認証機能を含め、アプリケーションプログラムがこのデバイスドライバプログラムのユーザー認証機能を利用することで、電気刺激装置100の複数ユーザー共有化と、ユーザー認証の一元化が実現できる。
【0092】
(2)図10図13及び図14に示したフローチャートでは、電極に電気刺激を与えた後、筋変位センサーのデータを取り込み、手指の動きを調べてから逐次的に判定及び学習処理を進めたが、先ず電極に電気刺激を与え、筋変位センサーのデータを取り込む作業を全ての電極に対して実行し、予め手指挙動行列を作成してから、判定及び学習処理を行ってもよい。勿論、その際にも図13のステップS1307は必須である。
【0093】
(3)本発明の実施形態に係る電気刺激装置100では、学習アルゴリズムにベイズ推定を採用したが、学習アルゴリズムはこれに限られない。例えば、サポートベクターマシン等、他の学習アルゴリズムを用いてもよい。
【0094】
本実施形態においては、電気刺激装置100及び電気刺激システム400を開示した。
電極による電気刺激と手指の動きとの相関関係を明らかにするため、電極がどの手指の動きに該当するのかを示すベイズ事後確率が要素として記述された電極確率行列705をホスト401で作成して、電気刺激装置100へ転送する。2回目以降の学習モードでは、直前の電極確率行列705を現在のユーザーの腕における電気刺激装置100の装着状態に合わせ込むために、電極確率行列705の左上に存在する手指の動きが生じた要素の位置を比較して、必要に応じて電極確率行列705の列を並べ替える。
このように電気刺激装置100とホスト401を構成することで、ユーザーの腕に装着した状態にかかわらず、短時間で手指の動きと電極との対応関係を明確にし、誤動作が極めて少なく、高い精度で目的の手指を駆動できる、電気刺激装置100と、電気刺激システム400が実現できる。
【0095】
以上、本発明の実施形態について説明したが、本発明は上記実施形態に限定されるものではなく、特許請求の範囲に記載した本発明の要旨を逸脱しない限りにおいて、他の変形例、応用例を含む。
例えば、上記した実施形態は本発明をわかりやすく説明するために装置及びシステムの構成を詳細かつ具体的に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施形態の構成の一部を他の実施形態の構成に置き換えることは可能であり、更にはある実施形態の構成に他の実施形態の構成を加えることも可能である。また、各実施形態の構成の一部について、他の構成の追加・削除・置換をすることも可能である。
【0096】
また、上記の各構成、機能、処理部等は、それらの一部又は全部を、例えば集積回路で設計するなどによりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行するためのソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の揮発性あるいは不揮発性のストレージ、または、ICカード、光ディスク等の記録媒体に保持することができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0097】
100…電気刺激装置、101…バンド、102…左側部、103…回路収納ボックス、104…第一シリアルインターフェース端子、150…演算処理部、201、202、203、204、205、206、207、208、211、212、213、216…電極、217…電極、221、223、227…筋変位センサー、231…右側電極配置箇所、232…中央電極配置箇所、233…左側電極配置箇所、400…電気刺激システム、401…ホスト、402…近距離無線通信部、501…CPU、502…ROM、503…RAM、504…不揮発性ストレージ、505…表示部、506…操作部、507…バス、601…バス、602…CPU、603…ROM、604…RAM、605…A/D変換器、606…第二シリアルインターフェース、607…ワンチップマイコン、608…第一マルチプレクサ、610…第二マルチプレクサ、612…6軸センサー、613…近距離無線通信部、614…第一シリアルインターフェース、615…昇圧回路、616…PWMスイッチ、617…第三マルチプレクサ、701…入出力制御部、702…近距離無線送信部、703…指電極対応変換部、704…近距離無線受信部、705…電極確率行列、711…近距離無線受信部、712…入出力制御部、713…情報処理部、714…近距離無線送信部、801…センサー値記憶部、802…確率演算部、803…タイマー、1201…最大値配列、1202…フラグ配列
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17