「ディープラーニングを応用した低コスト筋電義手」は筋電位センサーのデータを学習し、人間の手の動きを推定することで動作する義手です(図1)。被験者が手首を曲げたり、手を握ったりすると、ロボットアームが同様に動きます。一般的な筋電義手より安く、ラズパイ本体も含めて1万8000円ほどで作れました。
システム構成図は図2の通りです。最初に人が手を動かすと筋電位が発生します。これを筋電位センサーとAD変換モジュールを介してデジタルデータ化します。このデータはラズパイに入力され、特徴を抽出したデータに一度変換し、さらにこのデータをディープラーニングを使って手の動きとして推定します。推定した結果に合わせてロボットアームのサーボモーターにPWM信号を送って動作させます。
フーリエ変換で特徴を抽出
筋電位センサーには、米Advancer Technologies社のMyoWareを使用しました。パッド部分はワニ口クリップや市販の医療パッドを組み合わせて自作することで装着性を向上しています。
この筋電位センサーから得た値を直接学習しても、手の動きの推定は困難です。同じ動作でも力の入れ具合によって筋電位の強度が変わるためです。ですが、手の動作の種類ごとに筋電位にパターンが生じるため(図3)、この特徴を抽出する必要があります。
パターンの抽出にはFFT(高速フーリエ変換)を使いました。対象となる波形にどのくらいの周波数の波が、どのくらいの量含まれているかを解析します。図4は図3の屈曲の動作をしたときの波形のFFT変換後のグラフです。このように変換したデータを各動作につき5個ずつ、計20個のデータでディープラーニングで学習させました。
推定のステップでは、リアルタイムの筋電位情報から推定をします。筋電パターンを200分の1秒単位でサンプリングして、2秒間分(400個)のデータをバッファリングします。これをFFTにより周波数データにし、ディープニューラルネットにより手の動作を推定します。
推定結果に応じてロボットアームのサーボモーターにPWM信号を送ります。ロボットアームはSainSmart社の3軸ロボットアームを使い、今回は手首の曲げと握り動作の二つを再現するためにサーボ二つで動作するように組み替えてあります(図5)。
この夏は新型コロナ禍により外出しづらい日々になりそうですが、自宅でじっくり楽しめる、Linuxやラズパイに挑戦してみてはいかがでしょうか。
日経Linuxの購入は<<こちら!>>