Logo jkrieger.de section logo
invisible corner_top_left.gif
divider design elem. Home design elem.   design elem. Software design elem.   design elem. Science design elem.   design elem. Photographie design elem.   design elem. everythingelse design elem.   design elem. eMail design elem.
divider_end corner_top_right
Verlauf

Robotikpraktikum für Fortgeschrittene:
Ballwurf mit dem Roboterarm Lynx6 von Lynxmotion

Lynx6-RoboterarmIn 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:

  1. Beschreibung des Roboterarmes
  2. Projektziele
  3. Ergebnisse
  4. 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:

Simulation

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
 printable version ImpressumImpressum
corner_top_right2
verlauf_right.gif
corner_bottom_left.gif corner_bottom_left2 Copyright (c) J. Krieger corner_bottom_right.gif
invisible

Valid HTML 4.0 Transitional

last updated: 04.08.2019
file: https://www.jkrieger.de/informatik/robotikpraktikum/index.html
invisible