Genetischer Algorithmus zur Positionsbestimmung bei einer Parallelkinematik

4/9/2012

Technologien: .NET (C#), C++

Die Position und Orientierung eines Endeffektors in Bezug auf die Roboterbasis aufzufinden, bezeichnet man in der Robotik als „Direktes Kinematisches Problem“ (DKP). Während dies bei einer seriellen Kinematik sehr leicht zu bestimmen ist, führen sog. geschlossene kinematische Ketten bei einer parallelen Anordnung der mechanischen Komponenten dazu, das Berechnungen schnell sehr komplex werden. Um dieses Problem zu umgehen, bieten sich Näherungslösungen an, die sich der einfachen Lösbarkeit des umgekehrten, inversen kinematischen Problems (IKP) bedienen. Beschreibung der Funktionen IKP und DKP für diesen Fall:

  • IKP (leicht lösbar)
    • Eingabe: Raumkoordinaten X, Y, Z, Roll, Pitch, Yaw
    • Ausgabe: Antriebspositionen an der Basisplattform
  • DKP (schwer lösbar)
    • Eingabe: Antriebspositionen an der Basisplattform
    • Ausgabe: Raumkoordinaten X, Y, Z, Roll, Pitch, Yaw

Die Berechnung des DKP-Koordinatenvektors (6 Werte) mit Hilfe eines sog. Real-coded genetischen Algorithmus unter Zuhilfenahme des IKPs läuft wie folgt ab:

  • Rate eine Menge an zufälligen Raumkoordinaten unter sinnvoller Eingrenzung des Lösungsraums. Dies ist die Anfangspopulation des genetischen Algorithmus.
  • Die Anfangspopulation bildet zusammen mit einer Bewertungsfunktion (euklidische Distanz zweier Vektoren) die Eingabe für den Ablauf,der solange wiederholt wird, bis die Genauigkeit des besten Kandidaten ausreichend ist, oder eine maximale Iterationszahl erreicht wird:
    • Wähle x-mal zufällig zwei gute Kandidaten (Berechnung IKP, Vergleich mit Antriebspositionen und Bewertung) aus der Population aus, wobei x die Anzahl an Kandidaten ist. Bilde dabei x-mal einen Nachkommen durch Verschmelzen der zwei Kandidaten (Zusammenfügen von 12 Koordinaten zu 6 Koordinaten mit zufälligen Crossover.
    • Mutiere die Werte des Nachkommen (Entscheidung zufällig) und füge diesen in eine neue Kandidatenliste ein.
    • Prüfe das Ergebnis (Abbruchkriterium) und verwende die neue Liste gfs. für die nächste Iteration.

Eine besondere Optimierung ist die unterschiedlich starke Mutation der Koordinaten in jeder Iteration, eine heuristische Technik, die auch als Simulated Annealing („Simulierte Abkühlung“) bekannt ist. Der Algorithmus berechnet einen Koordinatensatz bestehend aus 6 Werten mit einer Genauigkeit von mind. 6 Dezimalstellen (nm) in deutlich unter 100ms (2,5 GHz CPU).


Leave Comment



Blog

jReflectServer 2.0
New version released | 1/4/2017

jReflectServer (formerly jReflect) has been updated. Version 2.0 allows distributed code ... Read More

DocuCast
Instantly backup your files on change | 3/21/2014

DocuCast is a real time file revision and backup system for use in professional and private ... Read More

jReflect: lightweight java web-server & -framework
3/7/2014

jReflect is a very small & lightweight java web-server and -framework for ... Read More

More Blog Entries