MIN-Fakultät
Fachbereich Informatik
TAMS

TAMS Robots (:emenu:)

(:emenuend:)

TAMS Organisation (:emenu:)

(:emenuend:)

IT Infrastructure (:emenu:)

(:emenuend:)

PmWiki Docs

edit SideBar

Cyberglove / Cyberglove

Überblick

Zusammen mit der Shadow-Hand haben wir auch einen Datenhandschuh gekauft. Die Idee dabei ist, die Shadow-Hand direkt anzusteuern, und so unter anderem die Hand auch direkt vorführen zu können. Der eigentliche Einsatzzweck ist dann aber in Projekt HANDLE, wo menschliche 'Griffstrategien' aufgezeichnet und analysiert werden sollen.

Da die WLAN-Version nicht lieferbar (und teurer) war, haben wir die drahtgebundene Version gekauft; der Handschuh hängt dabei über ein Kabel an der Controller-Box, die wiederum an die serielle Schnittstelle des PCs anhängt wird. Die Stromversorgung erfolgt über ein Steckernetzteil und ein T-Stück in das Kabel des Handschuhs.

Sicherheitshinweise

Die Sensoren liegen alle auf der Oberseite des Handschuhs und sind empfindlich:

  • Handschuh vorsichtig an- und ausziehen
  • möglichst nur an der Unterseite anfassen
  • die Finger nicht nach hinten knicken
  1. Datenkabel an die RS-232 Schnittstelle des Steuerrechners anschließen
  2. Steckernetzteil ans Datenkabel (T-Stück) anschließen
  3. Innenhandschuh anziehen
  4. Handschuh vorsichtig anziehen (s.o.)
  5. bei Bedarf Controllerbox am Gürtel anklipsen
  6. Software starten
  7. Taste an der Controllerbox kurz drücken, um den Handschuh zu aktivieren
  8. bei Bedarf auf eigene Handgeometrie kalibrieren (s.u.)
  9. Taste an der Controllerbox lang drücken (ca. 1 Sekunde), um den Handschuh abzuschalten

Zuordnung der Finger

Der Handschuh hat insgesamt 22 Sensoren:

  • 12 Sensoren, je drei pro Finger (proximal, medial, distal):
  • 3 Sensoren für die Fingerspreizung
  • 1 Sensor für die Wölbung der Hand ("palm spread")
  • 4 Sensoren für den Daumen
  • 2 Neigungswinkel des Handgelenks (yaw, pitch)

Die Shadow-Hand hat 24 Freiheitsgrade (von denen aber nur 20 unabhängig sind). Es gibt in der derzeitigen Software deshalb verschiedene Modi, die sich in der Zuordnung der CyberGlove-Sensoren zu den Shadow-Muskeln unterscheiden.

  • TODO: Modi dokumentieren
  • die Shadow-Hand hat je ein Gelenk für die Fingerspreizung (FFJ4, MFJ4, RFJ4, LFJ4) und benötigt vier absolute Winkelstellungen als Input, aber der Cyberglove liefert nur drei Werte für die Spreizung. Die Software von Shadow nimmt die einfachste Lösung: RFJ4 (oder alternativ MFJ4) wird auf Null gesetzt, und die übrigen Fingerspreizungen ergeben sich dann aus den Cyberglove-Werten.
  • Daumen: die Shadow-Hand hat 5 DOF, der Cyberglove liefert nur 4 Werte, und diese entsprechen nur bedingt den Shadow DOF. Im Default-Modus der Shadow-Software wird THJ3 = 0 gesetzt, was völlig ungeeignet ist. Die Modi 2 und 3 berechnen THJ3 aus THJ4, das funktioniert schon deutlich besser. Insgesamt wird für den Daumen eine bessere Lösung benötigt.
  • per Default läuft der Cyberglove an der seriellen Schnittstelle mit 115kBaud und liefert die Daten nach einem Befehl ('G') mit maximaler Rate. Bei 24 Bytes für einen kompletten Wertesatz und 8N1-Format dauert die Übertragung also ca. (24*(8+1+1)/115000) sec, also 2 msec, bzw. maximal 500 Samplewerte pro Sekunde.
  • die Reaktion der Shadow-Hand ist (aus bisher unbekannten Gründen) sehr stark verzögert, im Bereich einer halben Sekunde.
  • die vom Cyberglove gelieferten Werte haben eine beträchtliche Hysterese und hängen von der genauen Lage der Finger im Handschuh ab. Bei langen Finger ergibt sich zudem ein Übersprechen der Fingerbeugung (MP) in die Sensoren für die Fingerspreizung.

Kalibrierung

Für genaue Messungen muss der Handschuh an die jeweilige Hand des Anwenders kalibriert werden. Leider hat Shadow dazu keine GUI-Software mitgeliefert; ggf. müssen wir selbst etwas schreiben...

Im Prinzip können die Ausgabewerte des Cyberglove über einen eigenen Befehl direkt kalibriert werden, dies wird aber von uns derzeit nicht benutzt. Der Cyberglove liefert die Daten mit der Default-Kalibrierung, wobei jeder Datenwert im Bereich 1..255 liegt (1 Byte kodiert, Wert 0 bedeutet einen Fehler und Ende der übertragenen Werte) und für typische Fingerstellungen im Bereich 40..255. Je größer der Wert, desto größer die Krümmung.

Diese Werte werden innerhalb des Shadow Glove-Clients zunächst von Bytes in Floats konvertiert, und zwar gemäß (value-1)/254.0 auf das Intervall 0..1 normiert. Die Umsetzung dieser Rohdaten zu echten Gelenkwinkeln erfolgt dann über Umrechnungsfaktoren in einer Konfigurationsdatei. Die Dateien liegen auf dem Shadow-Rechner per default in:

/etc/robot/calibration.d/

Der Einlesen der Konfigurationsdatei erfolgt automatisch beim Start (Init, Reload) der Shadow Robotersoftware.

Version-History

  • 15.01.2010: Ergänzungen (Norman)
  • 24.08.2009: Ergänzungen (Norman)
  • 21.08.2009: neu erstellt (Norman)