1

プロジェクト報告書(最終)Project Final Report
提出日 (Date) 2013/01/16
生体情報の福祉利用∼筋電義手の開発∼
Biological Information for Social Welfare ∼Development of
Myoelectric hand∼
b1010093 佐々木啓孝 Hirotaka Sasaki
1 表面筋電位による制御の背景
2.2 筋電義手制御班
表面筋電位から,動作を識別する事が筋電義手制御班
現在の実用化されている筋電義手は,主に侵襲的計測
の課題である.到達目標として,把持力の調整を行い,
方法が用いられている.この方法は,電極を体内に埋め
モノを抓む,掴む動作を筋電義手にて行うこととした.
込むことにより筋電位の計測を行っている.この計測方
その前段階として中間発表では,グー,チョキ,パー,
法の短所は,体に電極を埋め込む際に手術を行うので,
手首の伸展, 屈曲の計 5 動作の識別を目標とした.
感染症や体に傷が付く等の負担が挙げられる.長所は,
2.3 筋電義手製作班
筋活動を正確かつ安定して計測できる点である.筋活動
従来プロジェクトの筋電義手では,強度を重視したア
を正確かつ安定して測れる理由として,筋に直接電極を
ルミ製のものと,軽さを重視したアクリル製のものが製
埋め込めるので,ノイズの影響を受けにくい点があげら
作された.そこで,それらの長所を持った軽くて丈夫な
れる,そのため,この方法での制御は後述する非侵襲的
筋電義手の製作を目標とした.
計測方法より簡単である.
非侵襲的計測方法として,表面電極を用いる方法が
ある.この方法は,電極を皮膚表面に貼り付けることに
3 前期の課題解決プロセスとその結果
3.1 生体信号計測班
よって筋電位を計測を行う.この方法の長所は,侵襲的
筋電位を計測する際,問題となるのは皮膚の抵抗によ
計測方法とは違い装着者に対する身体的負担が軽減され
り筋電位が微弱になる事,コンセントから発生する電磁
る点である.短所は,体内では筋が重なりあっているた
波により 50Hz のノイズが筋電位に混入することであ
め,電極下に存在する複数の筋肉からの信号が合成され
る.また, 表面筋各筋で発生する筋電位の加重和として
て検出される点である.また,皮膚表面に電極を貼るだ
計測される複数の筋活動を個別に判別することが困難で
けの表面電極では,皮膚の高いインピーダンスによるノ
あり,制御の際に問題として挙げられる.これらの問題
イズの影響がある.こうした問題から,表面筋電図法に
を解決させるため, 導電布や, アクティブ電極によるノ
よる計測で動作識別を行うことは困難である.
イズ対策を施した筋電位測定回路を作成し,解決した.
前期に使った回路を下に記す.
2 前期の課題設定と到達目標
本プロジェクトの課題は各班がそれぞれ解決にあたっ
た.到達目標は,表面筋電位による筋電義手の制御で
3.1.1 差動増幅回路
2 つの入力電圧の差をとって増幅する回路で,同相ノ
イズの除去のために組み込んだ (図 1).
ある.
2.1
生体信号計測班
課題は,大きく分けて二つある.それは,「皮膚上で
筋電位を計測する際に生じるノイズの除去」と「筋電位
の増幅」の二つである.生体信号計測班はこの二つの課
題を達成させる事を目標とし,安定して生体信号を計測
できる回路の設計,製作を行った.
図 1 差動増幅回路
3.1.2
ハイパスフィルター
ハイパスフィルターは,周波数の高い信号を通し,周
波数の低い信号はカットすることができる.このカット
される周波数 (カットオフ周波数) は,コンデンサの電
気容量 c と抵抗値 r を用いて (1) 式で表すことができる
(図 2).
fc =
1
2 π rc
図4
積算回路
(1)
今回は 7.5k Ωの抵抗,1 μ F のコンデンサーを用いて
カットオフ周波数が 20Hz となるように設計した.今回
カットオフ周波数を 20Hz に設定したのは,動作時に電
3.1.5 反転増幅回路
反転増幅回路は電圧の正負の極性を反転させて増幅す
る回路である (図 5).増幅率は,(4) 式で表される.
極のズレによって生じるモーションアーティファクトを
Vout = −
除去するためである.
R2
Vin
R1
(4)
積算回路で負の電圧信号となったものを正に戻すために
使用した.また,可変抵抗を用いて増幅率の調整を行う
ことで被験者によって異なる筋電位の大きさを対処出来
るようにした.
図 2 ハイパスフィルター
3.1.3
非反転増幅回路
非反転増幅回路は正負の極性を反転せずに増幅する回
路である (図 3).増幅率は,(2) 式で表される.
Vout = (1 +
R2
)Vin
R1
(2)
この回路は筋電位の増幅,インピーダンス変換に用いた.
図 5 反転増幅回路
3.2 筋電義手制御班
3.2.1 信号計測部
腕の筋肉は複数の筋肉がそれぞれ重なっており, 表面
筋電位では複数の筋肉からの筋電位が合成されて検出さ
れてしまうという欠点がある.今回はジャンケンの動作
(グー,チョキ,パー)と手首の屈曲, 伸展動作を筋電
図3
義手で実現するため,それらの動作に関係する筋肉を調
非反転増幅回路
べ,5ch 分の電極を貼りつけた.
3.1.4
3.2.2 信号処理部
積算回路
積算回路は,信号を積分し,波形を滑らかにする回路
である (図 4).時定数と呼ばれる,回路の応答の速さを
表す指標は 51ms とした.積算回路の出力電位は (3) 式
で表される.
Vout
1
=−
CR
計測される筋電位は, 様々な周期の神経インパルスが
重なった波形をしており, そのまま識別することは難し
いので,積分して滑らかな形にしてから制御を行った.
また、本プロジェクトで使用したマイコンは図 6 に示す
∫
Arduino(GHEO Electronics 社) であり, Arduino は正
Vi dt (CR:時定数)
(3)
の電圧しか入力することができない. そのため, 筋電義
手計測班が作成した回路により, 半波整流回路, 積分回
路を通り, 増幅された信号が 0∼5V で出力された.
とができる.
SVM の学習・識別アルゴリズムは,SVM ライブラリ
である LIBSVM を用いて実装した.
3.2.6 PC 上での処理について
計測したデータを PC 上で処理するために,Process-
ing 言語を使用した.各動作 (初期状態,グー,チョキ,
パー,手首の屈曲,伸展) の計 6 動作を各 2 秒間ずつ被
験者に行ってもらい,PC 上に各動作の筋電位の強さに
図 6 Arduino
よる計 200 個のデータ (1 個のデータ当たり 10msec 毎)
を入力した.さらに,その筋電位の強さによるデータを
3.2.3
処理の流れ
10 個ずつ 100msec 毎の平均値を求め,各動作,計 20
信号識別において Arduino を 2 つ使用した.1 つは
計測した筋電位を PC 上に送信するマイコンであり,も
う 1 つのマイコンは PC 上で処理させたデータを筋電義
手が適切に動くように,サーボモータへ任意のパルスを
送信するものである.
リアル通信で送られる.Arduino は 1Byte でしかデー
タを送ることができないので,0∼255 までの 256 段階
でのデータを送信がされる.そのた,0∼5V の筋電位を
256 段階に変換すると,1 段階で約 19.5mV ずつでしか
送ることができない.
3.3.1 指の構造
点として滑らかに力がかかるようにした.また,の背側
にミニフックを取り付けることで伸展時もスムーズな動
作を実現した.
3.3.2 腕の構造
腕の構造は,最上部からアクリル円盤,5cm アルミ
棒,アクリル円盤,14cm アルミ棒,アクリル円盤の順
サポートベクタマシン(SVM)について
サポートベクターマシン (SVM) は,空間を超平面で
分けることで 2 クラスのパターン識別器を構成する手法
である.以下の式によって表される.
f (n) = sign
3.3 筋電義手製作班
ぞれ腱と健鞘として利用し,屈曲時にはミニステーを支
信号処理された筋電位は Arduino を使用し,PC へシ
(
せた.
指の曲げ伸ばしには,PE ラインとミニステーをそれ
3.2.4 Arduino について
3.2.5
個ずつのデータをサポートベクターマシンにより学習さ
D
∑
)
λi yi K(xi , x) + b
t=1
K(xi , x) = exp(−γ||xi − x||2 )
に配置し,アクリル円盤とアルミ棒それぞれに穴を開け
てねじで連結した.最上部のアクリル円盤で手首を固定
し,中間部のアクリル板で PE ラインの通り道を用意し,
最下部のアクリル円盤でサーボモータの固定を行った.
サーボモータは 11kg・cm のトルクを持つ JR PROPO
DS8421 を親指,薬指,小指の伸展用,人差し指,中指
の伸展用,手首の前後動作用に,それぞれ 2 機ずつ用意
した.サーボモータはアクリル円盤の側面にねじ止めし
た後,セメダインを塗って固定した.また,サーボモー
yi は i 番目の学習サンプル xi に対応するクラスラベ
タへの取り付けは糸の端をサーボホーンに結びつけるこ
ル,λi はラグランジュの未定乗数である.K(xi ,x) は
とで行った.
カーネル関数であり,Radial basis function カーネルを
3.4 結果
用いる.γ はカーネルパラメータである.カーネル関数
本プロジェクトでは,当初は前年度のプロジェクトで
を用いることにより非線形曲面を超平面に写像し,線形
製作した筋電義手を,中間までに模倣することにより技
分離可能にする.
術の継承を図っていた.順調に作業が進んでいったた
また,識別関数を求めるために,マージン最大化基準
によって凸 2 次計画問題を最大にする λi のうち非零の
ものはサポートベクタと呼ばれ,識別関数は少数のサ
ポートベクタで構成させるため少ない計算量で求めるこ
め,中間発表では,手首の屈曲・伸展動作を実装した.
4 前期における課題
4.1
生体信号計測班
前期では,前述の通り筋電位の測定を行った.反省点
伸展動作の実現とした.
6 後期での課題解決とその結果
6.1 生体信号計測班
としては,回路の設計が甘かったのが原因で基板を上手
後期では,前期に半波整流であった部分を全波整流の
く作成できなかったことと,基板の作成での回路の組み
変えることを行った.また,情報量を増やすために,回
間違いが多く,各班の作成物を合わせての試験をする時
路を 16ch 分に増やした.それに伴い,電極も 16ch 分
間を大幅に減少させてしまったことが挙げられた.課題
の計 32 個作製した.そして,16ch 分の回路を1つの平
として,より正確な計測を行うため,半波整流回路を全
面に配置すると大きくなりすぎるので,4階層構造にし
波整流回路にする必要がある.また,筋電義手が滑らか
た.今回の制御では,ひずみゲージと圧力センサーを使
な動きをするように回路を工夫し,外部からのノイズを
用したので,それらに使う回路の設計,製作も行った.
減らす改善する必要がある.
6.2 筋電義手制御班
4.2
筋電義手制御班
後期では,計測点を増やしたため,制御用のプログラ
我々が今回行ったサポートベクターマシン (SVM) で
ムに修正を加えた.また,プログラムにひずみゲージと
筋電位の力の強さによる学習識別では,被験者の筋疲労
圧力センサを扱う処理を追加した.これによりセンサに
によって誤認識が起きやすかった.したがって,計測点
よってモータをのフィードバック制御できるようにし
を増やし各動作における特徴量の解析を行うことが必要
た.また,モータの回転角の調整も行った.
になった.
6.3 筋電義手製作班
4.3
筋電義手製作班
前期には,モータを8個使用したが,モータ使用数を
前期で製作した義手では,腱の役割として釣り糸を使
4個に抑えた.要因としては,強力なモータに変えたこ
用したが,釣り糸に長時間負荷が加えられることによっ
とが挙げられる.軽量化の問題は,手の構造でアルミを
て,釣り糸の耐久性が弱まり,釣り糸が伸びてしまい調
用いずにプラスチックを用いることで解決した.そし
整が難航した.さらに,釣り糸とサーボモーターを結ぶ
て,耐久力に問題があった釣り糸は,金属製のワイヤに
部分が緩くなってしまい,緩くなる度に結びなおすとい
変更した.
う作業を行う必要があった.これらを解決するために釣
6.4 結果
り糸より丈夫かつ動作を妨げないものを使用することと
各班の製作物によって,完成した筋電義手はモノを掴
した.モーターとの接合の仕方も緩みにくい仕組みを考
む・抓む動作を実現した.実際に,卵をセンサによって
えた.モーターの位置を腕の下部にまとめて指と手首を
把握したことをセンシングし,モータを止めて持つこと
動かしていたが,指の位置,手首の位置を考慮し,それ
に成功した.また,ゴム製の手袋を上から被せることに
ぞれ動かすことが容易になるモーターの位置を考える必
より,人間の手に近づけることができた.
要があった.
7 今後の課題
5 後期での課題設定と到達目標
課題は,人間の動き出しと筋電義手の動き出しのタイ
後期での課題設定として,生体信号計測班はより外部
ムラグの問題,モータを強くしたことによりワイヤ接合
ノイズの少ない回路設計と回路を作成することを目標
部が取れてしまう問題,装着するには重すぎる問題,誤
とした.筋電義手制御班は,圧力センサーと歪みゲージ
識別の問題,筋電義手計測部から回路へ伸びる 32 個分
から得た信号を処理するプログラムの追加と計測点増
の電極の電線の問題などがある.解決方法としては,電
加に伴うプログラムの修正を目標とした.筋電義手制御
極の測定値を赤外線で飛ばす方法が考えられるが,その
班は,モータの新しい配置方法の考案,軽量化のための
方法では更にノイズが乗る問題もある.
材料の検討,金属製ワイヤとモータの接合法の考案を行
い,それを元に義手を製作することを目標とした.到達
目標はモノを掴む・抓む・放す動作に加え,手首の屈曲・