「ディープラーニングを応用した低コスト筋電義手」は筋電位センサーのデータを学習し、人間の手の動きを推定することで動作する義手です(図1)。被験者が手首を曲げたり、手を握ったりすると、ロボットアームが同様に動きます。一般的な筋電義手より安く、ラズパイ本体も含めて1万8000円ほどで作れました。

図1 手首の曲げ伸ばしと手を握る動作をロボットアームで再現する

 システム構成図は図2の通りです。最初に人が手を動かすと筋電位が発生します。これを筋電位センサーとAD変換モジュールを介してデジタルデータ化します。このデータはラズパイに入力され、特徴を抽出したデータに一度変換し、さらにこのデータをディープラーニングを使って手の動きとして推定します。推定した結果に合わせてロボットアームのサーボモーターにPWM信号を送って動作させます。

図2 システム図。筋電位センサー信号からFFTで特長を抽出し、動作を推定してサーボにPWM信号を送る

フーリエ変換で特徴を抽出

 筋電位センサーには、米Advancer Technologies社のMyoWareを使用しました。パッド部分はワニ口クリップや市販の医療パッドを組み合わせて自作することで装着性を向上しています。

 この筋電位センサーから得た値を直接学習しても、手の動きの推定は困難です。同じ動作でも力の入れ具合によって筋電位の強度が変わるためです。ですが、手の動作の種類ごとに筋電位にパターンが生じるため(図3)、この特徴を抽出する必要があります。

図3 4種類の動作に置ける筋電位の変化の例

 パターンの抽出にはFFT(高速フーリエ変換)を使いました。対象となる波形にどのくらいの周波数の波が、どのくらいの量含まれているかを解析します。図4は図3の屈曲の動作をしたときの波形のFFT変換後のグラフです。このように変換したデータを各動作につき5個ずつ、計20個のデータでディープラーニングで学習させました。

図4 屈曲の動作をFFTにかけた例。特徴が抽出できる

 推定のステップでは、リアルタイムの筋電位情報から推定をします。筋電パターンを200分の1秒単位でサンプリングして、2秒間分(400個)のデータをバッファリングします。これをFFTにより周波数データにし、ディープニューラルネットにより手の動作を推定します。

 推定結果に応じてロボットアームのサーボモーターにPWM信号を送ります。ロボットアームはSainSmart社の3軸ロボットアームを使い、今回は手首の曲げと握り動作の二つを再現するためにサーボ二つで動作するように組み替えてあります(図5)。

図5 ロボットアームは市販品を2軸式に組み直して製作
【PR】日経Linux 9月号が好評発売中!
 日経Linux 9月号では「Linuxの遊び方大全100」と銘打ち、Linuxを遊び感覚で楽しく活用する方法を100本集めた大特集を掲載しています。付録冊子の「ラズパイ&電子工作 スタートブック」では「Raspberry Pi(ラズパイ)」の基本的な使い方と電子工作の入門を100ページでまとめました。

 この夏は新型コロナ禍により外出しづらい日々になりそうですが、自宅でじっくり楽しめる、Linuxやラズパイに挑戦してみてはいかがでしょうか。

日経Linuxの購入は<<こちら!>>