Vorlesung Geometrische Algorithmen Bewegungsplanung fur Roboter (Robot Motion Planning) Sven Schuierer
Uberblick 1. Problemstellung 2. Kongurationsraum 3. Bewegungsplanung fur einen Punktroboter 4. Minkowski Summen 5. Pseudo-Scheiben 6. Bewegungsplanung mit Translationen 7. Bewegungsplanung mit Translationen und Rotationen 1
1 Problemstellung Zentrale Aufgabe fur einen Roboter: Planung einer Bewegung (Bewegungsplanungsproblem) Informationen uber die Umgebung: Beispiel: autonomer Roboter in einer Fabrik Grundri fur Wande und Maschinen Sensoren fur Menschen Problemstellung 2
Arten von Robotern Autonomer mobiler Roboter Roboterarm Problemstellung 3
Problemstellung der Vorlesung Vereinfachung: 2-dimensionales Bewegungsplanungsproblem Umgebung (Arbeitsraum): planarer Bereich mit polygonalen Hindernissen H statisch vollstandig bekannt Roboter R: einfaches Polygon in alle Richtungen beweglich Problemstellung 4
2 Arbeits- und Kongurationsraum Arbeitsraum: Menge H von Hindernissen fp 1 ;:::;P t g Arbeits- und Kongurationsraum 5
3 Kongurationsraum Konguration R(~x): Spezikation der Position des Roboters durch Parameter Beispiel: Translatorischer Roboter R(x; y) R(0; 0) = (v 1 ;v 2 ;:::;v r ) ) R(x; y) = (v 1 + (x; y);:::;v r +(x; y)) R(6; 4) R(0; 0) 6 4 Alternative: Referenzpunkt Ursprung (0; 0) des Koordinatensystems Kongurationsraum 6
Kongurationen Rotation: zusatzlicher Parameter ' R(x; y; ') = Roboter mit Referenzpunkt auf (x; y) und rotiert um ' Grad R(6; 4;=4) R(0; 0; 0) 6 4 Allgemein: Freiheitsgrade 3-dimensionaler Roboter: Translation: drei Freiheitsgrade Translation und Rotation: sechs Freiheitsgrade Kongurationsraum 7
Kongurationsraum Menge aller Parameter eines Roboters R heit Kongurationsraum C(R) p 2 C(R)! R(p) Beispiele: 2-dimensionaler Roboter R mit Translation und Rotation: (x; y; ') 2 C(R) = IR 2 [0; 2) 7! R(x; y; ') 2-dimensionaler Roboter R mit Translation: (x; y) 2 C(R) = IR 2 7! R(x; y) Kongurationsraum 8
Verbotener und freier Raum Verbotener Kongurationsraum C forb (R;H): C forb (R;H) = fp 2 C(R) j Es gibt ein P 2 H : R(p) \ P 6= ;g Freier Kongurationsraum C free (R,H): C free (R;H) = C(R) n C forb (R;H) Kongurationsraum 9
Arbeits- und Kongurationsraum Beobachtung Jeder (kollisionsfreie) Weg W des Roboters im Arbeitsraum korrespondiert zu einem Weg C(W ) im (freien) Kongurationsraum und umgekehrt. Kongurationsraum 10
4 Punktroboter Annahmen: punktformiger Roboter R polygonale, disjunkte Hindernisse H = fp 1 ;:::;P t g mit insgesamt n Eckpunkten Rechteck B enthalt die Hindernisse C free = C free (R;H) = B n t[ i=1 P i P 6 R P 1 P 3 B P 4 P 5 P 2 C free Punktroboter 11
Der freie Raum Trapez-Zerlegung: for all v Eckpunkt in H do zeichne ein vertikales Liniensegment in v nach oben und eines nach unten die Liniensegmente enden beim ersten Hindernis oder bei B Algorithmus BerechneFreienRaum(H) Input: Eine Menge H von disjunkten, polygonalen Hindernissen Output: Die vertikale Dekomposition von C free (R,H) fur einen Punktroboter R 1 Sei E die Menge der Kanten in H 2 Berechne die Trapez-Zerlegung T (E) von E 3 Entferne die Trapeze im inneren der Hindernisse von H 4 Gebe die entstehende Unterteilung T (C free ) zuruck Punktroboter 12
Der freie Raum Lemma Die Trapez-Zerlegung des freien Kongurationsraumes kann in O(n log n) erwarteter Zeit berechnet werden. Punktroboter 13
Berechnung eines Weges Gegeben: p s der Startpunkt und p e der Zielpunkt Gesucht: Ein kollisionsfreier Weg von p s nach p e 1. Fall: p s und p e gehoren zum gleichen Trapez p e p s 2. Fall: p s und p e gehoren zu verschiedenen Trapezen )?? Punktroboter 14
Die Straenkarte (Road map) einge- Straenkarte G road : planarer, in C free better Graph Knoten von G road : Trapez- und vertikale Kanten-Mittelpunkte Kanten von G road : for all Trapeze T do fuge Kanten von dem Mittelpunkt von T zu den Mittelpunkten der T begrenzenden vertikalen Kanten ein Punktroboter 15
Die Straenkarte (Road map) Zeit zur Konstruktion der Straenkarte: O(n) Punktroboter 16
Algorithmus zur Wegeberechnung Algorithmus BerechneWeg Input: vertikale Dekomposition T (C free ), Straenkarte G road, Start- und Zielpunkt p s und p e Output: Ein Weg von p s nach p e, falls einer existiert; ansonsten eine Meldung, da kein Weg existiert 1 Bestimme Trapeze s und e, die p s und p e enthalten 2 if s oder e existiert nicht 3 then melde, da p s oder p e in C forb 4 else seien v s und v e Mittelpunkte von s bzw. e 5 berechne Weg W von v s nach v e in 6 G road if W existiert nicht 7 then melde, da kein Weg existiert 8 else return W = p s v s W v e p e Punktroboter 17
Beispiel Punktroboter 18
Korrektheit von BerechneWeg Lemma Algorithmus BerechneWeg gibt einen kollisionsfreien Weg zuruck gdw es einen solchen Weg gibt. Beweis: ): W ist kollisionsfrei (: Sei W 0 kollisionfreier Weg von p s nach p e W 0 schneidet eine Folge F von benachbarten Trapezen: mit F = ( 1 ; 2 ;:::; k ) 1 = s und k = e 5pe 1 ps 2 3 4 Punktroboter 19
Korrektheit von BerechneWeg Beweis: (Fortsetzung) Sei v i Mittelpunkt von i i und i+1 sind benachbart ) Es gibt einen Weg von v i nach v i+1 in G road ) Es gibt einen Weg von v 1 nach v k in G road ) Der Algorithmus ndet einen Weg von v s nach v e ) Der Algorithmus ndet einen Weg von p s nach p e 1 4 5pe p s 2 3 Zeitkomplexitat von BerechneWeg: O(n log n) (erwartet) Punktroboter 20