8. August 2011
In jüngster Zeit haben eine große Menge an Interessenten kommen für Mensch-Roboter-interaktive Systeme. In diesem Papier beschreiben wir die Integration eines neuen Roboter-Gerät mit Open-Source-Software, die schnell machen kann möglich eine Bibliothek von interaktiven Funktionen. Wir haben dann Umrisse einer klinischen Anwendung für eine Neurorehabilitation Anwendung.
Das übergeordnete Ziel dieses Verfahrens besteht darin, einen Roboter in eine Bibliothek für virtuelle Umgebungen zu integrieren und anschließend den Roboter für die Schlaganfalltherapie einzusetzen. Dies wird erreicht, indem zunächst eine Wrapper-Klasse erstellt wird, um die Haptikbibliothek zu erweitern, und dann diese Wrapper-Klasse in die Haptikbibliothek integriert wird. Der nächste Schritt besteht darin, eine Wrapper-Klasse zu erstellen, um die Grafikbibliothek zu erweitern, und anschließend diese Wrapper-Klasse in die Grafikbibliothek zu integrieren, sobald die Wrapper-Klassen fertiggestellt sind.
Die H 3D-API-Schnittstelle dient zum Einrichten einer endlichen Zustandsmaschine zur Untersuchung von Schlaganfallpatienten. Der integrierte Roboter wird anschließend zur Rehabilitation von Schlaganfallpatienten eingesetzt. Der Hauptvorteil dieser Technik besteht darin, dass keine unterschiedliche Softwareanwendung mehr für jeden Roboter geschrieben werden muss.
Außerdem können diese Anwendungen unabhängig vom verwendeten Roboter von Wissenschaftlern weltweit ausgeführt werden. Diese Methode kann helfen, zentrale Fragen auf den Gebieten Rehabilitation, Robotik und motorische Kontrolle zu beantworten, beispielsweise inwieweit unser Nervensystem von einer Fehlervergrößerung profitieren könnte. Diese Methode kann Einblicke in Schlaganfall-bedingte Beeinträchtigungen liefern und unser Verständnis gesunder Funktionen vertiefen.
Im Allgemeinen müssen Schlaganfallpatienten, die neu in der Rehabilitation mit Robotern sind, bestimmte Hürden überwinden, beispielsweise das Greifen des Handgriffs zu erlernen. Unsere erste Idee zu dieser Methode entstand, als wir erkannten, dass wir einen Roboter mit einem großen Arbeitsraum unter Schwerkraftkompensation benötigten. Außerdem wollten wir das erneute Verfassen von Software minimieren, sodass zukünftige Doktoranden von denjenigen profitieren könnten, die zuvor gearbeitet hatten, ohne dieselbe Arbeit erneut durchführen zu müssen.
Dieses Video enthält Anweisungen zur Integration eines Ganzarm-Manipulations- oder WHAM-Roboters mit dem Open-Source-Code, der unter www.hthreedpi.org verfügbar ist. Um einen neuen Roboter in die Haptik-Bibliothek zu integrieren, besteht der erste Schritt darin, eine Wrapper-Klasse für HAP, die Haptic-Rendering-Engine, zu schreiben, die zur Steuerung der Bewegung des WHAM-Roboters verwendet wird. Beginnen Sie damit, eine CPP- und eine Header-Datei zu erstellen.
Die für dieses Beispiel verwendeten Dateinamen lauten happy, wham, cpp und happy wham h. Legen Sie die Datei happy wham cpp in das Quellverzeichnis. Happy-Slash-Quelle, danach platzieren Sie happy.
Wham h in das Header-Dateiverzeichnis. Happy Schrägstrich include Schrägstrich happy. Ganz oben in happy wham h die Haupt-Header-Dateien des Roboters einbinden.
Beachten Sie, dass extern C erforderlich ist, um die Compiler-Mangling aufzulösen, da die eingebundene Bibliothek in C geschrieben ist und die H 3D API in C++ geschrieben ist. In happy wham h erstellen Sie die Klasse für den Roboter und fügen die vier Funktionen darin ein: Haptikgerät freigeben, Haptikgerät, Gerätewerte aktualisieren und Ausgabe senden. Stellen Sie sicher, dass die Klasse öffentlich von der Happy-Haptikgeräteklasse erbt.
Erstellen Sie anschließend eine Header-Schutzanweisung für die Klasse. Danach definieren Sie die statischen Attribute für die Geräteausgabe und die Registrierung des Haptikgeräts innerhalb der happy-WHAM-Klasse. Anschließend erstellen Sie die statischen Memberfunktionen für Rückruffunktionen, die spezifisch für Ihren Roboter sind.
Für einen WHAM-Roboter wird die Rückruffunktion in der Bull- und Haptikgeräte-Int-Funktion verwendet. Nachdem die Prototypen in der Header-Datei festgelegt wurden, öffnen Sie happy_wham.cpp und binden die geeigneten Header-Dateien und den Namensraum ein. Definieren Sie anschließend den Konstruktor und Destruktor in HappyWam.cpp.
Registrieren Sie dann das Gerät in Happy Wam cpp. Definieren Sie nun die vier geerbten Funktionen und Rückruffunktionen in happy Wam cpp. Die Funktion zur Aktualisierung der Geräteparameter teilt dem Computer die Position des Roboterarms sowie die vom Roboter auf die Umgebung ausgeübte Kraft mit.
Nachdem die Happy-Wrapper-Klasse erstellt wurde, besteht der nächste Schritt darin, einen Wrap in die Happy-Bibliothek einzubauen. Der WAM hängt von einigen Bibliotheken ab, von denen die H 3D API in ihrer ursprünglichen Form nicht abhängt. Daher müssen diese Bibliotheken zu happy hinzugefügt werden.
Wechseln Sie zum Verzeichnis H 3D 2.1/ happy/ build und bearbeiten Sie die Datei C make lists text. Fügen Sie die abhängigen Bibliotheken nach der Zeile ein, die „Set optional libs“ lautet. Öffnen Sie eine Befehlskonsole, navigieren Sie zum Verzeichnis H 3D 2.1/ happy/ build und geben Sie nacheinander folgende Befehle ein: see make. pseudo make und pseudo make install, um die Integration des neuen Roboters mit dem H 3D-Open-Source-Code abzuschließen.
Schreiben Sie eine zweite Wrap-Klasse für den Szenengraphen. API namens H 3D API. Dieses Beispiel verwendet eine Wrap-Klasse namens wam device.
Navigieren Sie zum Quellverzeichnis H 3D AP I slash source, und erstellen Sie die WAM-Geräte-Datei CPP sowie wam device.Cpp. Fügen Sie die Standardquelle für alle H 3D PI-Geräte hinzu. Danach platzieren Sie Wam device H in das Header-Dateiverzeichnis.
Das Wam-Gerät H sollte die Standard-Kopfdatei für alle H-3D-API-Geräte enthalten. Nachdem nun die Wrapper-Klasse erstellt wurde, muss die H-3D-PI-Bibliothek neu aufgebaut werden, indem die Cmake-Listen-Textdatei im Verzeichnis H-three-DPI/Build bearbeitet wird. Abschließend im Verzeichnis H-3D-PI/Build.
Stellen Sie die H 3D API-Bibliothek mithilfe der Befehle CMake dot pseudo make und pseudo make install neu zusammen. Die neuen Wrapper-Klassen sind nun bereit für die Verwendung mit einem Roboter. Sobald die entsprechenden Wrapper-Klassen installiert sind, wird eine endliche Zustandsmaschine erstellt, um den experimentellen Protokollablauf für die gezielte Greifaufgabe mit dem Barrett-WHAM-Roboter zu steuern. Die Zustände der Zustandsmaschine sind Start des Versuchs, Start, Zielkontakt und Ende des Versuchs.
Der Beginn des Versuchsdurchlaufs startet mit der Zuweisung eines Ziels. Die Zielpositionen können für jeden Durchlauf zufällig festgelegt werden oder aus einer Datei gelesen werden. Der Beginn des Versuchsdurchlaufs endet und der Startzustand beginnt.
Sobald die Hand des Probanden über der Geschwindigkeitsschwelle, typischerweise 0,06 Meter pro Sekunde, in Richtung Ziel gestartet ist, endet der Startzustand und der Zielkontaktzustand beginnt, wenn der Cursor des Patienten das Ziel berührt. Sobald der Kontakt hergestellt ist, verschwindet das Ziel, der Zielkontaktzustand endet und der Versuchsendzustand beginnt.
Der Zustand „Ende des Versuchs“ signalisiert der Datenerfassungssoftware, die Datendatei mit einem Trennzeichen für das Ende des Versuchs zu markieren. Sofern nicht der letzte Versuch abgeschlossen wurde, ermöglicht das Ende des „Ende des Versuchs“-Zustands den Beginn des „Start des Versuchs“-Zustands, und ein neues Ziel wird zugewiesen. Dieser Abschnitt demonstriert einen anderen Roboter, den sogenannten Phantom, der in der Rehabilitation von Schlaganfallpatienten verwendet wird.
Indem der Wrap-Klassen-Code des Phantom in die entsprechenden Bibliotheken eingefügt wird, kann der neue Roboter in die virtuelle Umgebung integriert werden. Hier wird ein dreidimensionales haptisches Grafiksystem namens Virtual Reality Robotic and Optical Operations Machine oder kurz ROOM verwendet. Dieses System kombiniert eine projizierte stereoskopische, kopfverfolgte Darstellung auf einer halbdurchlässigen Spiegel-Overlay-Anzeige mit einem Robotersystem, das die Handgelenksposition erfassen und einen Kraftvektor erzeugen kann. Ein Digitalprojektor in Kinoqualität zeigt Bilder auf einer fünf Fuß breiten Anzeigefläche an, was einem Betrachtungswinkel von 110 Grad entspricht.
Infrarotstrahler synchronisieren separate Bilder für das linke und rechte Auge über LCD-Shutter-Brillen. Die Kopfbewegung wird mit dem Ascension Flock of Birds magnetischen System verfolgt, sodass die visuelle Darstellung mit der entsprechenden, kopfzentrierten Perspektive wiedergegeben wird. Ein Exotendonschuh mit einer Handgelenkspalte unterstützt die neutrale Ausrichtung von Handgelenk und Hand.
Das Zentrum des Robotergreifers wird am Unterarm hinter dem Radiokarpalgelenk angebracht. Dadurch wirken die Kräfte am Handgelenk, während eine freie Bewegung der Hand möglich bleibt. Das Gewicht des Patientenarms wird mithilfe einer federbetriebenen, gravitationsausgeglichenen Wilmington-Roboter-Exoskelett-Orthese verringert.
Der Therapeut, der neben dem Patienten sitzt, bedient mit einem Steuergerät einen Cursor auf dem Bildschirm. Vor dem Patienten wird angewiesen, mit dem Robotergriff den Cursor zu verfolgen. Die Fehlervergrößerung erfolgt sowohl visuell als auch durch vom Roboter erzeugte Kräfte.
Wenn sich der Cursor des Patienten vom Cursor des Therapeuten entfernt, wird der momentane Fehlervektor E als Positionsunterschied zwischen dem Cursor des Therapeuten und der Hand des Patienten definiert. Der Fehler wird visuell um einen Faktor von 1,5 E vergrößert, als Teil der Fehlerverstärkung. Zusätzlich wird eine fehlerverstärkende Kraft von 100 E auf den Arm des Patienten ausgeübt, die so programmiert ist, dass sie bei maximal vier Newton sättigt.
Aus Sicherheitsgründen verstärkt die Fehlervergrößerung die vom Patienten wahrgenommenen Fehler, wodurch der Wiederlernprozess verbessert wird. Das Behandlungsprotokoll sieht vor, dass der Patient mehrere spezifische Bewegungen übt, darunter Vorwärts- und Seitwärtsreichen mit Schulter-Ellenbogen-Kopplung sowie diagonales Reichen über den Körper. Für die nächste Demonstration wird der obere Klassencode gewechselt und der Barrett-WHAM-Roboter verwendet.
Das Ziel dieser nächsten Aufgabe besteht darin, dass entweder gesunde Probanden oder Schlaganfallpatienten ein virtuelles Projektil innerhalb der halbtransparenten grünen Kugel fangen. Wenn sich die Hände des Patienten außerhalb der Kugel bewegen, färbt sich die Kugel rot und der Arm des Patienten erhält eine Fehlerverstärkungs-Rückmeldung vom Roboter. Wenn der Patient das Projektil erfolgreich innerhalb des definierten Raums fängt, bleibt die Kugel grün.
Diese Abbildung zeigt den mittleren Reichweitenfehler. Jeder Punkt repräsentiert den medianen Fehler, der für einen zweiminütigen Block stereotyper funktioneller Bewegungen gemessen wurde. Während die Patienten über den Zeitraum von zwei Wochen hinweg Fortschritte zeigen, war die Verbesserung nicht an jedem Tag eindeutig.
Diese Abbildung zeigt den resultierenden Nutzen der Fehlerverstärkung bei der gezielten Verringerung der Variabilität von Bewegung zu Bewegung. Die oberen Diagramme zeigen Daten aus der Kontrollgruppe und die unteren Diagramme zeigen Daten aus der Behandlungsgruppe. Jede Farbe repräsentiert einen anderen Probanden.
Die beiden horizontalen Linien zeigen die Position der Grenzen für die Aufgabe an. Das Ziel des Probanden bestand darin, das virtuelle Projektil innerhalb dieser Grenzen zu fangen. Die Position eines Punktes zeigt an, wo sich ein gegebener Proband der Kontaktzone am nächsten befand.
Im Projektil überlagern die blauen, halbtransparenten Histogramme, die über den Rohdaten angezeigt werden, die Bewegungsverteilung der Gruppe. Entlang der anterioren Achse führten die Schlaganfallpatienten 600 Durchgänge der Fangaufgabe durch, wobei für die ersten 200 Durchgänge und die letzten 200 Durchgänge keine Fehlervergrößerungs-Rückmeldung gegeben wurde. Für die Durchgänge 201 bis 400 erhielten die Patienten keine Rückmeldung zur Fehlervergrößerung. Der Roboter gab dem Patienten eine Rückmeldung zur Fehlervergrößerung, was zu einer signifikanten Verbesserung der Fähigkeit des Patienten führte, das Ziel innerhalb der vorgegebenen Grenzen zu fangen.
Nach dieser Vorgehensweise können traditionelle Rehabilitationsmethoden weiterhin durchgeführt werden, doch mit dem Roboter können wir stets quantifizieren, wo sich die Hand des Patienten zu jedem Zeitpunkt über viele wiederholte Versuche hinweg befindet. Diese Technik ebnete den Weg für neue Forschungsansätze im Bereich der Neuroingenieurwissenschaft, bei denen wir simuliertes Greifen innerhalb eines Bereichs untersuchen können, der viele mögliche Lösungen bietet. Nach dem Anschauen dieses Videos sollten Sie verstehen, wie Sie die H 3D-API-Bibliothek für einen Rehabilitationsroboter Ihrer Wahl erweitern und eine Vielzahl haptischer grafischer Schnittstellen zur Beurteilung und Behandlung von Schlaganfallpatienten anwenden können.
Die Arbeit mit Robotern kann daher potenziell gefährlich sein, weshalb bei der Auswahl eines Roboters für solche menschlichen Interaktionen sorgfältig vorgegangen werden sollte. Für unser jüngstes Projekt haben wir den Barrett WHAM gewählt, da er leistungsstärker und zurücktreibbar ist. Zurücktreibbar bedeutet, dass er nahezu widerstandsfrei agieren kann, wenn wir ihn entsprechend programmieren, und dennoch zählt er zu den sichersten verfügbaren Optionen für die Mensch-Maschine-Interaktion.
Es handelt sich um einen separaten Überwachungsrechner, der den Hauptrechner überwacht und das System deaktivieren kann, falls etwas schief läuft. Die dynamische Bremse stellt sicher, dass das System stets als Dämpfer fungiert, wenn es inaktiv ist. Obwohl viele Roboter sich unterschiedlich verhalten, überlappen sich viele ihrer Funktionen. Daher könnte die Übertragbarkeit unserer Techniken zwischen Robotern einen neuen Wissensaustausch zwischen Laboren fördern.
Deutlich ist, dass Trainingsmaßnahmen wie die in dieser Studie demonstrierten ermutigende Hinweise darauf liefern, die Funktion bei Patienten wiederherzustellen sowie das Training in Sportarten, der ferngesteuerten Musikdarbietung, chirurgischen Techniken und jeder anderen Aufgabe, die wiederholte Übung erfordert, zu verbessern.
In diesem Artikel wird die Integration eines robotischen Geräts mit quelloffener Software für Anwendungen in der Neurorehabilitation beschrieben, insbesondere mit Fokus auf die Schlaganfalltherapie. Der Ansatz ermöglicht die Nutzung einer Bibliothek interaktiver Funktionen in einer virtuellen Umgebung.
Diese Arbeit beschreibt eine zentrale Engstelle in der translationalen Neurowissenschaft und Rehabilitations-Technik: die fehlende Software-Interoperabilität zwischen verschiedenen Robotik-Plattformen. Durch die Möglichkeit, einen einzigen Code mit unterschiedlichen haptischen Geräten zu verbinden, verringert sich der Entwicklungsaufwand und die reproduzierbare präklinische Evaluierung von Maßnahmen zur motorischen Lernförderung wird unterstützt. Diese Fähigkeit erhöht das Vorhersagevertrauen bei der frühen Validierung von Therapiezielen in der Neurorehabilitation, indem verhaltensbezogene Messgrößen über verschiedene Labore hinweg standardisiert werden.
Die Methode fügt sich in den Kontinuum von der Entdeckung bis zur präklinischen Phase ein, indem sie Robotersysteme in standardisierte Phänotypisierungswerkzeuge zur Modulation motorischer Schaltkreise umwandelt und somit direkte Anwendbarkeit für die Identifizierung von Leitsubstanzen in der Arzneimittelentwicklung für die Neurorehabilitation bietet.