2011年8月8日
最近では、見通しの膨大な量は、人間とロボットの対話的なシステムに利用可能なってきた。本稿では、急速にインタラクティブ機能の可能なライブラリを作ることができるオープンソースソフトウェアを使用して、新しいロボットデバイスの統合の概要を説明します。私たちは、その後、神経リハビリテーションのアプリケーションのための臨床応用を概説する。
この手順の全体的な目的は、ロボットを仮想環境ライブラリに統合し、そのロボットを脳卒中リハビリテーションに使用することです。これは、まずハプティクスライブラリを拡張するためのラッパークラスを作成し、次にそのラッパークラスをハプティクスライブラリに統合することで達成されます。次のステップは、グラフィックスライブラリを拡張するためのラッパークラスを作成し、これらのラッパークラスが完成した後に、このラッパークラスをグラフィックスライブラリに統合することです。
H 3D APIインターフェースは、脳卒中患者のテスト用有限状態機を構築するために使用されます。その後、統合されたロボットを用いて脳卒中患者のリハビリテーションを支援します。この手法の主な利点は、ロボットごとに異なるソフトウェアアプリケーションを記述する必要がなくなることです。
また、これらのアプリケーションは、研究室で使用しているロボットの種類に関わらず、世界中の科学者が実行することが可能です。この手法は、誤差増幅が私たちの神経系にどの程度有益であるかなど、リハビリテーション、ロボティクス、および運動制御の分野における重要な疑問への解答に寄与します。さらに、この手法は脳卒中による障害への知見を提供するとともに、健常な機能に関する理解を深めることにつながります。
一般的に、リハビリテーションに不慣れな脳卒中患者がロボットを使用する場合、ハンドルの握り方を習得するといった特定のハードルを乗り越える必要があります。私たちは、重力補償において広い動作ワークスペースを持つロボットが必要であると気づいたとき、最初にこの手法を考案しました。また、将来の大学院生が同じ作業を繰り返すことなく、先人の成果を享受できるよう、ソフトウェアの書き換えを最小限に抑えたいと考えていました。
このビデオでは、whole arm manipulation(WHAM)ロボットを、www.hthreedpi.org で公開されているオープンソースコードに統合する方法について説明します。新しいロボットをハプティクスライブラリに統合するための最初のステップは、WHAMロボットの動作制御に使用されるハプティックレンダリングエンジンであるHAP用のラッパークラスを作成することです。まず、CPPファイルとヘッダーファイルを作成してください。
この例で使用するファイル名は happy、wham、cpp、および happy wham h です。happy wham cpp ファイルをソースディレクトリ(Happy/source)に配置し、次に happy を配置します。
wham.hをヘッダーファイルのディレクトリ(happy/include/happy)に配置します。wham.hの冒頭で、ロボットのメインヘッダーファイルをインクルードしてください。
組み込まれているライブラリはC言語で記述されており、H 3D APIはC++で記述されているため、コンパイラの名前マングリングを解消するためにextern Cが必要であることに注意してください。happy wham hにおいて、ロボット用のクラスを作成し、その中にhaptics device release、haptics device、update device values、およびsend outputの4つの関数を含めてください。このクラスがhappy haptics deviceクラスをpublicに継承するようにしてください。
次に、クラスのヘッダーガードを作成します。続いて、happy WHAMクラスの下に、静的なデバイス出力および静的なハプティクスデバイス登録属性を作成します。最後に、使用するロボット固有のコールバック用の静的メンバ関数を作成します。
WHAMロボットでは、コールバック関数がbullおよびhapticsデバイスのint関数内で使用されます。ヘッダーファイルでプロトタイプが設定されたので、happy_wham.cppを開き、適切なヘッダーファイルと名前空間をインクルードします。次に、Happy_Wam.cppでコンストラクタとデストラクタを定義します。
次に、Happy Wam cppでデバイスを登録します。ここで、Happy Wam cppにおける4つの継承関数とコールバックを定義します。「update device values」関数は、ロボットアームの位置と、ロボットが環境に及ぼしている力の大きさをコンピュータに伝えます。
Happy Wrapperクラスを作成した後の次のステップは、Happyライブラリにラップを構築することです。WAMは、生の状態のH 3D APIでは依存していないいくつかのライブラリに依存しています。したがって、これらのライブラリをhappyに追加する必要があります。
H 3D 2.1/happy/build ディレクトリに移動し、CMakeLists.txt を編集します。Set optional libs と記載された行の後に、依存ライブラリを追加してください。コマンドコンソールを開いて H 3D 2.1/happy/build に移動し、順に cmake、make、および sudo make install と入力して、新しいロボットの H 3D オープンソースコードへの統合を完了させます。
シーングラフ用の2番目のラップクラスを作成します。APIはH 3D APIと呼ばれます。この例では、wam deviceというラップクラスを使用します。
ソースディレクトリである H 3D AP I / source に移動し、WAMデバイスのCPPファイルである wam device.cpp を作成します。すべての H 3D PI デバイスに共通の標準ソースを追加してください。次に、Wam device H をヘッダーファイルディレクトリに配置します。
WamデバイスHには、すべてのH 3D APIデバイス用の標準ヘッダーファイルが含まれている必要があります。ラッパークラスが作成されたので、H 3D PI/buildディレクトリ内のCMakeLists.txtを編集して、H 3D PIライブラリをリビルドしてください。最後に、H 3D PI/buildディレクトリに移動します。
CMake、pseudo make、およびpseudo make installコマンドを使用して、H 3D APIライブラリをリビルドします。これにより、新しいラッパークラスがロボットで使用可能な状態になります。適切なラッパークラスをインストールした後、Barrett WHAMロボットで用いられる標的リーチングタスクの実験プロトコルを制御するための有限状態マシンを作成します。状態マシンの状態は、試行開始、ターゲット接触、および試行終了で構成されます。
試行開始状態は、ターゲットの割り当てから始まります。ターゲットの位置は、試行ごとにランダムに設定するか、ファイルから設定することができます。試行開始状態が終了すると、ローンチ状態が始まります。
被験者の手が、通常 0.06 meters per second という速度閾値を超えてターゲットに向けて動き出すと、ランチ状態となります。患者のカーソルがターゲットに触れると、ランチ状態が終了し、ターゲット接触状態が始まります。接触するとターゲットが消え、ターゲット接触状態が終了して、試行終了状態となります。
試行終了状態になると、データ収集ソフトウェアに信号が送られ、データファイルに試行終了のデリミタ(区切り文字)がマークされます。最終試行が完了していない限り、試行終了状態の終了に伴い試行開始状態が有効になり、新しいターゲットが割り当てられます。本セクションでは、脳卒中患者のリハビリテーションに使用されるPhantomと呼ばれる別のロボットについて実演します。
ファントムのラップクラスコードを適切なライブラリに組み込むことで、新しいロボットを仮想環境に統合できます。ここでは、virtual reality Robotic and optical operations machine(略称:room)と呼ばれる3次元ハプティクスグラフィックスシステムが使用されています。このシステムは、ハーフミラーオーバーレイドディスプレイ上のステレオヘッドトラッキングレンダリング投影と、手首の位置を記録し力ベクトルを生成できるロボットシステムを組み合わせています。映画品質のデジタルプロジェクターが幅5フィートのディスプレイに画像を投影し、110度の広い視野角を実現しています。
赤外線エミッターが、LCDシャッターグラスを介して左右それぞれの目の画像を同期させます。頭部の動きはascension flock of birds磁気エレメントで追跡され、視覚ディスプレイが適切な頭部中心のパースペクティブでレンダリングされます。手首スプリント付きのexo tendonグローブにより、手首と手のニュートラルなアライメントが補助されます。
ロボットハンドルの中心を、橈骨手根関節の後方の前腕に配置します。これにより、手首に力を作用させつつ、手先の自由な動きを可能にします。患者の腕の重量は、バネ駆動式のWilmingtonロボット外骨格重力バランス装具を用いて軽減されます。
患者の隣に座った療法士がトラッキングデバイスを使用して、ディスプレイ上のカーソルを移動させます。患者は、そのカーソルを追いかけるようにロボットハンドルを操作するよう指示されます。エラー増幅は、視覚的およびロボットによって生成される力の両方で提供されます。
患者のカーソルが療法士のカーソルから逸脱した際の瞬時誤差として、療法士のカーソルと患者の手との位置差からベクトルEが設定されます。誤差増幅の一環として、この誤差は1.5 Eの係数で視覚的に拡大されます。さらに、100 Eの誤差増幅力が患者の腕に加えられますが、この力は最大4 Newtonで飽和するようにプログラムされています。
安全上の理由から、エラー増幅は患者が知覚する誤差を拡大させ、これにより再学習プロセスを促進します。治療プロトコルでは、前方および側方へのリーチングに伴う肩と肘の協調運動や、身体を横切る対角線上のリーチングなど、いくつかの特定の動作を練習することが求められます。次のデモンストレーションでは、上位クラスコードを入れ替え、Barrett WHAMロボットを使用します。
次のタスクの目的は、健常被験者または脳卒中患者が、半透明の緑色の球体の中で仮想の投射物をキャッチすることです。患者の手が球体の外に出ると、球体は赤色に変わり、患者の腕にロボットからエラー増幅フィードバックが与えられます。患者が定義された空間内で投射物のキャッチに成功すると、球体は緑色のままとなります。
この図はリーチング誤差の中央値を示しています。各点は、2分間の定型的な機能的動作ブロックで測定された誤差の中央値を表しています。患者は2週間の期間を通じて進歩を示していますが、必ずしも毎日改善が見られたわけではありません。
この図は、誤差増幅によって、動作間の変動を選択的に減少させるという結果得られた利点を示しています。上のプロットは対照群のデータを示し、下のプロットは処置群のデータを示しています。各色は異なる被験者を表しています。
2本の水平線は、タスクの境界線の位置を示しています。被験者の目的は、この境界線内で仮想の飛翔体をキャッチすることでした。点の位置は、被験者が接触に最も近づいた場所を示しています。
投射体において、生データ表示の上に重ねられた青色の半透明のヒストグラムは、グループの運動分布を示しています。前方軸に沿って、脳卒中患者はキャッチタスクを600回試行しました。最初の200試行を行い、201回目から400回目までの試行では、誤差増幅フィードバックは提供されませんでした。ロボットが患者に誤差増幅フィードバックを提供した結果、指定された境界内でターゲットをキャッチする患者の能力が有意に向上しました。
この手順に従えば、従来のリハビリテーション手法も引き続き実施可能ですが、ロボットを用いることで、多くの反復試行を通じて患者の手の位置を常に定量化することができます。この手法は神経工学分野における新たな研究への道を切り開き、特定の領域内でのシミュレートされたリーチングを探索することで、多くの可能な解を導き出すことが可能となりました。このビデオを視聴することで、任意のリハビリテーションロボット向けにH 3D APIライブラリを拡張する方法と、脳卒中患者の評価および治療にさまざまなハプティック・グラフィック・インターフェースを適用する方法について理解を深めることができます。
ロボットを扱うことは潜在的に危険を伴うため、人間との相互作用があるロボットを選択する際は、慎重に検討する必要があります。最新のプロジェクトにBarrett WHAMを採用したのは、よりパワフルであり、かつバックドライバブルであるためです。バックドライバブルとは、プログラム次第でほぼ抵抗なく動かせることを意味し、人間と機械の相互作用において利用可能な最も安全な選択肢の一つとなっています。
独立したウォッチドッグコンピュータがメインコンピュータを監視しており、何か不具合が生じた場合にはシステムを停止させることができます。また、ダイナミックブレーキにより、システムが不活性なときは常にダンパーとして機能することが保証されています。ロボットによって性能は異なりますが、多くの機能は重複しています。したがって、当手法のロボット間における移植性は、研究室間での新たな共有を促進する可能性があります。
本研究で示されたようなトレーニング治療が、患者の機能回復だけでなく、スポーツ、遠隔操作のパイロット訓練、音楽演奏、手術手技、および反復的な練習を必要とするあらゆるタスクにおけるトレーニングの向上に有望な根拠を提供することは明らかです。
本記事では、神経リハビリテーション、特に脳卒中治療への応用を目的とした、オープンソースソフトウェアとロボットデバイスの統合について解説します。このアプローチにより、仮想環境においてインタラクティブな機能ライブラリを活用することが可能になります。
本研究では、トランスレーショナル神経科学およびリハビリテーション工学における主要なボトルネックである、ロボットプラットフォーム間のソフトウェア相互運用性の欠如に取り組んでいます。単一のコードベースで多様なハプティックデバイスとのインターフェースを可能にすることで、本手法は開発コストを削減し、運動学習介入の再現可能な前臨床評価を支援します。この機能は、研究室間で行動の読み出し(リードアウト)を標準化することにより、神経リハビリテーション療法の初期段階におけるターゲット検証の予測信頼性を高めます。
本手法は、ロボットシステムを運動回路変調のための標準化されたフェノタイピングツールへと変換することで、「発見から前臨床まで」の連続的なプロセスに適合し、神経リハビリテーション薬の開発におけるリード化合物の同定に直接的に適用可能です。