|
Robotikpraktikum für
Fortgeschrittene:
Ballwurf mit dem Roboterarm Lynx6 von Lynxmotion
In diesem Praktikum ging es darum, den Roboterarm
Lynx6
von der Firma Lynxmotion zusammenzubauen und
zu erproben, in wieweit man ihn für eine Wurfbewegung
nutzen kann. Wir haben dabei folgendes erreicht: Zunächst
haben wir den Bausatz zusammengebaut und eine Ansteuersoftware
geschrieben. Danach haben wir eine detailierte Visualisierung
des Armes mittels OpenGL erstellt, die auch eine physikalisch
korrekte Simulation der Flugphase eines beliebigen Balles
enthält. Für den Arm haben wir ein zwei- und ein
dreigliedriges Modell erstellt (physikalisches Doppel- und
Dreifachpendel mit externen Drehmomenten). Damit konnten wir
verschiedene Wurfbewegungen austesten, die wir teils auch mit
dem Optimalsteuerungstool MUSCOD-II erstellt haben. Ein
PingPong-Ball kann nun über kurze Strecken (ca. 20 cm)
geworfen werden.
Teilnehmer:
Bearbeitunsgzeitraum:
März und April 2006
Inhaltsverzeichnis:
- Beschreibung des Roboterarmes
- Projektziele
- Ergebnisse
- Downloads
Beschreibung des
Roboterarmes
- Roboterarm mit einfachem Greifer
- Der Arm hat insgesamt 5 Freiheitsgrade:
-
- Rotation des gesamten Armes
- Scharniergelenke an Schulter, Ellbogen und
Handgelenk
- Rotation des Armgelenks
- Zusätzliche Bewegung: Öffnen und Schließen
des Greifers
- Höhe (je nach Einstellung): 14 - 37 cm
- Aktionsradius: max. 28cm
- Der Roboter kann maximal etwa 100g an Gewicht
hochheben
- Die Teile des Arms bestehen aus dem hochfestem Kunststoff
Lexan
- Antrieb über Modellbau-Servomotoren von HITEC
- Ansteuerung der Servos über die serielle
RS-232-Schnittstelle
Projektziele
- Zusammenbau und dessen Dokumentation
- Bestimmung der dynamischen Eigenschaften (Gewicht,
Trägheitsmomente)
- Austesten des Ansprechens und der
Bewegungsmöglichkeiten des Arms
- Optimierung einer Wurfbewegung des Roboterarms mit Hilfe
des Optimal-Steuerungstools MUSCOD-II auf der Basis eines
einfachen Robotermodells (physikalisches Doppel- und
Dreifachpendel)
- Visualisierung der simulierten Trajektorien mit Hilfe von
OpenGL
- Realisierung einer Wurfbewegung in der Simulation und am
realen Arm
Ergebnisse
Der Zusammenbau gestaltete sich problemlos. Einige Hinweise,
zusätzlich zur Anleitung von Lynxmotion, sind in den unter
Downloads verlinkten PDF-Dokumenten zu
finden. Eine Bestimmung der Trägheitsmomente war nur durch
Simulation möglich, da uns ein entsprechender
Versuchsaufbau (z.B. Rotationspendel) leider nicht zur
Verfügung stand. Wie dies geschah ist ebenfalls in den
PDFs dokumentiert.
Die Ansteuerung des Armes über den Servo-Controller von
Lynxmotion war problemlos möglich. Ihm werden einfache
Kommandos gesendet, die er in Bewegungen des Armes umsetzt. Um
die Ansteuerung zu kapseln haben wir eine einfache C++-Klasse
implementiert, die ein recht komfortables Interface zur
Ansteuerung zur Verfügung stellt.
Während unserer Versuche hat sich gezeigt, dass der
Roboter zwar Lasten bis etwa 100g anheben kann, ein Wurf war
aber nur mit so leichten Objekten, wie einem PingPong-Ball
möglich, da bei schwereren Objekten die erreichte
Abwurfgeschwindigkeit viel zu niedrig war, um eine nennenswerte
Distanz zu überbrücken. Auch mit dem PingPong-Ball
konnten wir nur Würfe bis etwa 20cm erreichen. Die
Wurf-Trajektorien haben wir anfangs mit MUSCOD-II berechnet
(aufgrund eines Doppelpendel-Modells). Da sich dabei aber im
wesentlichen konstante Ansteuerungen durch die Motoren ergaben,
haben wir die endgültigen Trajektorien per Hand erzeugt,
da man hier bessere Möglichkeiten zum Feintuning hat. Das
Doppelpendel-Modell wurde mit Hilfe von Mathematica
aufgestellt. Dieses Computer-Algebra-System hat dabei die
Aufstellung der (recht komplexen) Differentialgleichungen
übernommen. Außerdem konnte so auch gleich die
Richtigkeit des Modell überprüft werden.
Um die berechneten Trajektorien bewerten zu können, ohne
sie auf dem Roboter ablaufen zu lassen, haben wir eine
Visualisierung mit Hilfe von OpenGL erstellt. Diese stellt ein
voll bewegliches Modell des Armes mit allen Freiheitsgraden
dar. Das Modell besteht dabei aus 32 Zylindern, 25 Quadern
und 3 Kugeln, die zusammen das detailierte Modell
ergeben. Die Simulation liest eine vorgegebene Trajektorie aus
einer Datei ein und zeigt Sie als Animation auf dem Bildschirm
an. Gleichzeitig ist eine Ansteuerung des Roboters
möglich, sodass sich Roboter und Simulation synchron
bewegen. Dabei kann die Software auch das Ansteuern des
Greifers übernehmen und den Ball kurz vor Ende der
Trajektorie loslassen. Die Flugphase des Balles wid ebenfalls
von der Visualisierung abgedeckt, indem sie die
Bewegungsgleichungen des Balles von der Abflugposition (und mit
der Abfluggeschwindigkeit, die sich aus der Trajektorie ergibt)
aus integriert (einfache Euler-Diskretisierung) und den Ball
entsprechend darstellt. Der Ball kann dabei auch vom Boden
abprallen und wird dadurch gebremst (verliert Energie). Das
Programm kann auch die Positionen des Balles durch Punkte
markieren, sodass man nach Ablauf der Simulation die gesamte
Trajektorie als Spur im Raum sehen kann.
Hier sind noch einige Screenshots der Simulation:
Downloads
Dokumente über das Praktikum
Videos vom Wurf und der Simulation
ACHTUNG:
Die Videos wurden auf kleine Dateigröße optimiert
und benötigen einen XviD MPEG-4 Video
Decoder.
© 2006 by Julia Ziegler und Jan
Krieger
|
|