Seminararbeit M. Shahadat Ali Sommersemester 2004 Seminar Algorithmische Geometrie und Bewegungsplanung Thema Robot Motion Planning with Roadmaps Betreuer Prof. Dr. Rolf Klein Tom Kamphans Bearbeiter Mohammed Shahadat Ali Matrikel Nr. 1247173 Studiengang Informatik 09.09.2004 Seite 1 von 16 Seminararbeit M. Shahadat Ali Inhaltsverzeichnis (1) Einführung Einleitung und Motivation Problemstellung Definitionen Ansätze Cell Decomposition Skeleton Ansatz Potential Fields Ansatz (2) Sachteile Robot Motion Planning with Roadmaps i. Einleitung ii. Problemmodellierung Implementierung Einsatz (3) Ausblick Zusammenfassung Literaturverzeichnis 09.09.2004 Seite 2 von 16 Seminararbeit M. Shahadat Ali Einleitung und Motivation Diese Seminararbeit soll dem Leser einen einführenden Überblick über das Themengebiet „Roboter - Pfadplanung“ vermitteln. Der Forschungsbeitrag (1) des Autors Mark H. Overmars bildet den wesentlichen Bestandteil dieser Seminararbeit. Zu den wesentlichen Elementen eines autonomen Roboters (engl. robot) gehört die Pfadund Bewegungsplanung. Bei der vereinfachten Pfadplanung unterstellt man, dass die Arbeitsumgebung (engl. workspace) und die geometrische Form des Roboters vollständig beschrieben und bekannt sind. Die Abbildung 1 zeigt die planare Arbeitsumgebung des Roboters. In diesem befinden sich viele Hindernisse Oi. Das Polygon R stellt hier den abstrakten Roboter dar. Dieser ist in der Lage sich zu bewegen und zu rotieren. Das Ziel der vereinfachten Pfadplanung ist es einen kollisionsfreien Pfad von dem Punkt nach zu finden. Erste historische Ansätze zu Pfadplanungsproblemen findet man in dem Forschungsartikel „On the piano movers problem” von den Autoren J.T. Schwartz und M. Sharir sowie in dem herausragenden Buch „Robot Motion Planning“ von J.C. Latombe, die viele praktische Ansätze enthält. In der jüngsten Zeit findet die Pfadplanung auch außerhalb der Robotik Anwendung. Gerade beim Erstellen von graphischen Animationen in Computerspielen. Solche Verfahren können die Menge manuell einzugebender Daten drastisch reduzieren. Ein weiteres Anwendungsgebiet ist die Molekular - Biologie, wo in Simulationen das Bewegungsverhalten einander berührender Moleküle berechnet werden soll. 09.09.2004 Seite 3 von 16 Seminararbeit M. Shahadat Ali Problemstellung Im folgenden Abschnitt möchten wir das Problem grob formalisieren: Gegeben sind: ein polygonaler Roboter R und eine Arbeitsumgebung E, die n Hindernisse enthält. Berechnet werden soll: einen möglichen Pfad des Roboters R, die den Roboter R von einer Startkonfiguration (engl. source configuration) zu einer Zielkonfiguration (engl. goal configuration) führt. der Roboter R selbst darf nicht mit den vorhandenen Hindernissen kollidieren. In diesem Abschnitt werden wir uns konkret mit der Pfadplanung beschäftigen. Der Gegenstand der Pfadplanung ist die Ermittlung eines rein geometrischen Pfads des Roboters. Bei dieser kinetischen Pfadsuche sind nur die betreffenden Konfigurationen des Roboters wie Position und Orientierung relevant. Solche Systeme bezeichnet man als holonom. Bei der Flugbahnplanung (engl. Trajectory Planning), die in der Regel nicht holonome Systeme darstellen, werden insbesondere dynamische Größen des Roboters wie etwa Geschwindigkeit und Beschleunigung miteinbezogen. Definitionen In den folgenden Abschnitten möchten wir den Leserinnen und Leser einige klassische Ansätze vorstellen. Dazu werden wird in diesem Abschnitt einige neue Begriffe einführen und erläutern: workspace ist die Arbeitsumgebung des Roboters R. Die Abb. 1 bzw. 2 veranschaulichen eine solche zweidimensionale Arbeitsumgebung des Roboters. configuration space ist nicht identisch mit der Arbeitsumgebung. Der Konfigurationsraum stellt die Menge C aller Konfigurationen des Systems dar. Eine Konfiguration kann durch die Parameter (Position und Orientierung) des Roboters spezifiziert werden. Der Konfigura tionsraum C wird in der Regel als der Suchraum des Roboters zugrunde gelegt. 09.09.2004 Seite 4 von 16 Seminararbeit M. Shahadat Ali Definitionen (Fortsetzung) degree of freedoms die Dimension des Konfigurationsraum C entspricht in der Regel die der Anzahl der Freiheitsgrade des Roboters. Abb. 1 zeigt, dass z.B. die Konfiguration des Punktes durch die drei Parameter (x, y, θ) spezifiziert werden kann. Die Dimension des Konfigurationsraums ist demnach 3-dimensional. Der Roboter kann in seiner planaren Arbeitsumgebung in x oder y - Richtung bewegen bzw. um einen Referenzpunkt a sich um θ drehen. Die Anzahl der Freiheitsgrade ist demnach drei und entspricht die der Dimension des Konfigurationsraums. free configuration space die Teilmenge der erlaubten oder gültigen Konfigurationen bildet den so genannten freien Konfigurationsraum Cf. Ein Element aus dem freien Konfigurationsraum Cf entspricht einer Konfiguration aus dem allgemeinen Konfigurationsraum C, die nicht in einer Hindernisregion liegt. forbidden configuration space die Teilbereiche C\Cf heißen Hindernisregionen. Ein Element aus der Hindernisregion entspricht einer unzulässigen Konfiguration, in der der Roboter mit einem Hindernis kollidiert. Pfad ist eine kontinuierliche Kurve, die zwei Konfigurationen verbindet. Der Pfad ist zulässig, falls alle seine Punkte gültige Konfigurationen sind. Wir gehen davon aus, dass ein einfacher Kollisionstester vorhanden ist, der für eine gegebene Konfiguration c entscheiden kann, ob diese erlaubt oder unzulässig ist. Ansätze In diesem Abschnitt möchten wir mögliche Ansätze zur Pfadplanung klassifizieren. Cell Decomposition Die Idee dieses Ansatzes ist es den gegebenen Konfigurationsraum in diskrete Zellen zu zerlegen. Die Aufgabe besteht darin die Zellen zu identifizieren, in denen sich die Startund die Zielkonfiguration eines zu ermittelnden Pfads befinden und dann zwischen diesen eine Sequenz aus benachbarten Zellen zu suchen. Die Komplexität der Pfadsuche wird auf die der Graphensuche reduziert. Man unterscheidet in der Regel zwischen objektunabhängigen und objektabhängigen Zellzerlegung. Abbildung 3 zeigt exemplarisch die objektunabhängige Zerlegung des Konfigurationsraums durch ein Gitter, die aus Zellen gleicher Größen zusammensetzt. In Abbildung 4 wird exemplarisch die objektabhängige Zerlegung des Raums illustriert. Die Zerlegung der Zellen erfolgt anhand bestimmter Merkmale des Konfigurationsraums und der Hindernisse. Hier wurden beispielsweise die Kanten der Hindernisobjekte soweit verlängert, bis sie auf ein weiteres Hindernis treffen und die resultierenden Linien als Begrenzung der Zellen definiert. 09.09.2004 Seite 5 von 16 Seminararbeit M. Shahadat Ali Ansätze (Fortsetzung) Solche Ansätze benötigen in der Regel komplexe geometrische Berechnungsfunktionen und erfordern daher spezielle Datenstrukturen. Skeleton Ansatz Bei diesem Ansatz wird der freie Konfigurationsraum durch ein Netzwerk eindimensionaler Linien repräsentiert. Bei der Suche nach einem Pfad werden Start- und Zielpunkt zunächst mit diesem Netzwerk mittels kanonischer Pfade verknüpft und über Linien des Netzes miteinander verbunden. In Abb. 5 wird ein typischer Sichtbarkeits graph dargestellt. Die Ecken der Hindernis Objekte werden miteinander verbunden, falls dies kollisionsfrei möglich ist. Hierzu werden auch die Start- und Zielpunkte mitberücksichtigt. Für einen punktförmigen Roboter kann so ohne weiteres der kürzeste Pfad ermittelt werden. Bei einem polygonalen Roboter werden die Hindernisse etwas größer modelliert, als sie es in der Realität sind. Eine andere Möglichkeit wäre das Voronoi Diagramm, in der der Sicherheitsabstand des Roboters R zu seinen Hindernisobjekten maximiert wird. 09.09.2004 Seite 6 von 16 Seminararbeit M. Shahadat Ali Ansätze (Fortsetzung) Potential Fields Ansatz Bei diesem historisch bedeutenden Ansatz versucht man eine geeignete skalare Funktion über den Konfigurationsraum zu konstruieren. Die Zielposition trägt in der Regel einen niedrigen Wert bzw. die Hindernisse tragen hohe Werte. Bewegt sich der Roboter in Richtung der Zielkonfiguration, fallen die Werte des Potentialfeldes ab. Demnach muss der Roboter dem negativen Gradienten folgen, um zum Ziel zu gelangen. Zur Veranschaulichung dieses Ansatzes kann man sich die Beispiele aus der Elektrostatik nehmen: Von dem Ziel geht eine positive anziehende Kraft, von den Hindernissen eine negative abstoßende Kraft aus. Für jeden Punkt des Konfigurationsraums ergibt sich gemäß dem Additionsprinzip ein bestimmter Kräftevektor, der auf den Roboter R wirkt und diese in Richtung Ziel leitet. Hierzu betrachten wir uns das Beispiel in Abbildung 7. In der Vergangenheit wurden mit diesem Ansatz gute Ergebnisse für Systeme mit bis zu 31 Freiheitsgraden erzielt. Einer der gravierenden Nachteile ist die Problematik von lokalen Minima, die durch die Addition von unterschiedlichen Kräften entstehen und diese sich zu Null ergeben. Befindet sich der Roboter in einem solchen Minimum, kann der Roboter sich nicht aus dem Tal befreien. Verschiedene Techniken greifen auf den Backtracking Algorithmus zurück, um so den Roboter R aus dem lokalen Minimum zu befreien. Das Problem ist jedoch, dass solche Algorithmen sehr langsam sind und nur für spezielle Konstellationen funktionieren. 09.09.2004 Seite 7 von 16 Seminararbeit M. Shahadat Ali Einleitung Betrachten wir uns die Abbildung 8. Der polygonale Roboter R befindet sich in der Startkonfiguration und möchte sich in Richtung der Zielkonfiguration bewegen. Dieses ist jedoch nicht möglich, da sich ein Hindernis zwischen den beiden Konfigurationen befindet. Die Lösung des Berechnungsproblems besteht darin, dass sich der Roboter R sich von der anziehenden Kraft des Zielpunkts entfernt, um dann über Umwege den Zielpunkt Z zu erreichen. Es wurde gezeigt, dass Potential Fields Ansätze gerade bei solchen trivialen Situationen scheitern. Daher wurden viele Versuche unternommen Potential Fields - Ansätze sinnvoll zu erweitern. Eine der ersten Erweiterungen besteht darin dem Roboter R gute Wegweiser (engl. via points) aufzuzeigen, so dass der Roboter R in der Lage ist selbstständig die Bewegung von nach zu berechnen. In Abbildung 8 wurden zwei Wegweiser eingezeichnet mit dessen Hilfe der Roboter R nun einen gültigen Pfad zwischen und finden kann. Eine weitere Verbesserung besteht darin, dass der Roboter R auch ohne menschliche Hilfe geeignete Wegweiser aus dem Konfigurationsraum Cf zufällig auswählt und mit dessen Hilfe selbständig einen Pfad berechnet. Problemmodellierung In den neueren Verfahren wie etwa der Pfadplanung mit probabilisitischen Roadmaps verzichtet man gänzlich auf die Berechnung einer Potentialfunktion und baut lediglich ein Netzwerk aus zufällig gewählten, durch lokale Pfade verbundenen Punkten des Konfigurationsraums auf. Die Aufgabe des Pfadplaners besteht darin, einen gültigen Pfad zwischen einer ausgezeichneten Startkonfiguration s ∈ Cf und einer ausgezeichneten Zielkonfiguration z ∈ Cf zu finden. Der Pfad ist genau dann gültig, wenn er sich nicht über Hindernisregionen erstreckt. Der freie Konfigurationsraum Cf des Roboters wird hier durch eine so genannte Roadmap R=(N, E) dargestellt. Die Knoten N des ungerichteten Graphen sind zufällige, möglichst gleichmäßige ausgewählte Konfigurationen aus Cf. Die Kanten E des ungerichteten Graphen entsprechen gültige, lokale Pfade zwischen diesen Konfigurationen. Nach den vorhandenen Klassifikationen handelt es sich hierbei um einen Skeleton Verfahren. Der Pfadplaner arbeitet in zwei Phasen und ist nicht in der Lage Echtzeit Berechnungen durchzuführen. 09.09.2004 Seite 8 von 16 Seminararbeit M. Shahadat Ali Problemmodellierung (Fortsetzung) In der Vorverarbeitungsphase wird eine Roadmap für eine gegebene statische Umgebung konstruiert. In der Queryphase werden Pfadanfragen mithilfe der generierten Roadmap beantwortet. Die Vermengung beider Phasen ist möglich. So kann z.B. zunächst eine sehr kleine Roadmap generiert werden und später dynamisch neue Knoten hinzugefügt werden, wenn eine neue Anfrage gestellt wird. Die Datenstruktur ist hierbei sehr klein, da jeweils nur ein Teil der möglichen Konfigurationen betrachtet wird. Da ein bestehendes Netzwerk wieder verwendet wird, kann ein solches Verfahren als ein Lernverfahren interpretiert werden. Implementierung Die Abbildung 9 veranschaulicht einen ersten allgemeinen Ansatz. Erläuterung Der Graph G ist leer. Wir fügen zwei neue Knoten und hinzu. Die konkreten Werte werden im Methoden-rumpf übergeben. Der Knoten enthält die Startkonfiguration des Roboters, während der Knoten die Zielkonfiguration des Roboters enthält. Einige Komponenten wie etwa der SMF Algorithmus (engl. simple motion finding algorithm) wurden hier nicht explizit spezifiziert. Diese werden gesondert behandelt. Der SMF Algorithmus versucht beide Konfigurationen und zu verbinden. Solange beide Konfigurationen und nicht verbunden sind, werden neue zufällige Konfigurationen aus dem freien Konfigurationsraum Cf selektiert. Die neuen Knoten werden in dem Graph G hinzugefügt. Mit Hilfe der Komponente SSN (engl. select some nodes) werden einige Knoten aus dem Graphen G selektiert und diese versucht mit Hilfe des SMF Algorithmus zu verbinden. Falls dieses erfolgreich ist, wird eine neue Kante in dem Graphen G hinzugefügt. Der SMF Algorithmus muss nicht in jedem Fall erfolgreich sein. Es genügt, dass ein beliebiger Pfad gefunden wird, falls es existiert. Die Schleife wird verlassen, falls beide Konfigurationen und verbunden sind. In einem solchen Fall wird mit Hilfe des FM Algorithmus (engl. final motion) eine konkrete Berechnung der Bewegung des Roboters durchgeführt. In einem Fall, dass beide Konfigurationen und nicht erfolgreich verbunden werden können, darf die Schleife sicherlich nicht beliebig lang durchgeführt werden. Also, führt man Schwellwerte ein, die beim Erreichen zu Terminierung der Schleife führen. 09.09.2004 Seite 9 von 16 Seminararbeit M. Shahadat Ali Implementierung (Fortsetzung) Die Schwellwerte sind z.B.: die Höchstanzahl der Knoten oder die Höchstanzahl der Kanten oder die verfügbare Zeit Das Netzwerk wird hier durch einen Graphen repräsentiert. Jeder Knoten des Graphen stellt eine getestete freie Konfiguration dar. Jede Kante zwischen zwei Knoten korrespondiert zu einer Bewegung. Die Bewegung wird hier nicht explizit gespeichert. Betrachten wir nun die einzelnen Komponenten: der SMF Algorithmus der SSN Algorithmus der FM Algorithmus Der SMF Algorithmus ist die wichtigste Zutat des Gesamtalgorithmus. Dieser Algorithmus soll in der Lage sein einen Pfad zwischen zwei Konfigurationen im Graphen zu finden, falls dies möglich ist. Dieser Algorithmus muss jedoch nicht erfolgreich sein. Dieser Algorithmus versucht zu zwei gegebenen Konfigurationen einen Pfad im Graphen G zu finden. Die Schleife bricht genau dann ab, falls die Zielkonfiguration erreicht oder kein Fortschritt erzielt wurde. In der 3-dim Umgebung können insgesamt 26 direkte mögliche Nachbarn zu einer beliebigen Konfiguration gefunden werden. Für alle 26 direkten Nachbarn wird die Distanz zu der Zielkonfiguration bestimmt, so dass im nächsten Schritt diese in aufsteigender Reihenfolge sortiert werden können. Hiervon betrachtet man jedoch nur die Hälfte der Nachbarn, also 13 von 26 Nachbarn. Die erste freie Konfiguration wird als die neue Konfiguration genommen. Die erste Überlegung bestand darin statt 26 direkten Nachbarn nur 6 Nachbarn zu betrachten. Eine weitere Überlegung war die bisherige Potentialfunktion durch eine bessere Potentialfunktion zu ersetzen. Insgesamt führte die Verbesserung nicht zu einer wesentlichen Verbesserung der Laufzeit. 09.09.2004 Seite 10 von 16 Seminararbeit M. Shahadat Ali Implementierung (Fortsetzung) Der SSN Algorithmus legt das entscheidende Kriterium fest zwischen welchen vorhandenen Knoten eine Kante mit dem neuen Knoten verbunden wird. Für jede zusammenhängende Komponente im Graphen G wird der Knoten n gesucht, der am nahesten zu der neuen Konfiguration liegt. Falls die berechnete Distanz kleiner als die zulässige Höchstdistanz ist, wird eine neue Kante im Graphen G eingefügt, falls ein Pfad zwischen beiden Konfigurationen gefunden wird. Die Distanzfunktion wurde wie folgt definiert: √ (x - Distanz)² + (y - Distanz)² + (θ - Distanz)². Die zufällige statt deterministischer Auswahl neuer Knoten, die eine zulässige Konfiguration im freien Konfigurationsraum darstellen, führen in der Regel zu einem besseren Ergebnis. Die nächste Abbildung deckt einer der gravierenden Nachteile dieses Algorithmus auf: In dieser speziellen Konstellation ist die Wahrscheinlichkeit sehr hoch, dass man eine zulässige Konfiguration findet, die nicht im schmalen Pfad liegt. Sie liegt in der Regel sehr weit von dem Hindernis entfernt. 09.09.2004 Seite 11 von 16 Seminararbeit M. Shahadat Ali Implementierung (Fortsetzung) Um einen gültigen Pfad von links nach rechts (oder umgekehrt) zu finden, muss die Sampling Rate sehr hoch gewählt werden. Bei einer sehr hohen Sampling Rate gelingt es in vielen Fällen ausreichend viele Punkte im schmalen Pfad zu finden. Die linke Abbildung zeigt deutlich, dass trotz der hohen Sampling Rate zu viele nutzlose Konfigurationen gefunden werden, die sehr weit von dem Hindernis entfernt liegen. Es gibt mehrere Ansätze, um diesen Nachteil vorzubeugen. Einer der einfachen Ansätze besteht darin, dass man alle neu gefundenen Konfigurationen, die in einer Hindernisregion liegen, soweit in einer zufällig gewählten Richtung verschiebt, dass diese wieder im freien Konfigurationsraum liegen. Auf diesem Wege gelingt es viele neue verwendbare Konfigurationen trotz einer sehr niedrigen Sampling Rate zu finden, die sehr nah am Hindernis liegen. Nachdem nun erfolgreich der Start- und der Zielknoten durch einen gültigen Pfad verbunden sind, berechnet der FM Algorithmus die konkrete Bewegung des Roboters von der Start- zu der Zielkonfiguration. Für jede Kante im Graphen G, die zwei Knoten verbindet, wird die entsprechende Bewegung des Roboters berechnet. Auch hier greift man auf den SMF Algorithmus zurück. Sollte jedoch der SMF Algorithmus nicht erfolgreich sein, werden die Eingabeparameter vertauscht übergeben. Die Abbildung 12 veranschaulicht den berechnete Bewegungsablauf des Roboters. Der unschöne Bewegungsablauf des Roboters kann auf die folgende Weise geglättet werden: Man eliminiert alle Zwischenknoten node [i], falls ein Pfad von node [i-1] und node [i+1] existiert. veranschaulicht. 09.09.2004 Das Ergebnis der einfachen Glättung wird in der Abb. 13 Seite 12 von 16 Seminararbeit M. Shahadat Ali Einsatz (Fortsetzung) Der Algorithmus wurde in der Programmiersprache C und CPP implementiert und enthält 3500 Programmzeilen. Es wurden insgesamt 8 Szenen für den Einsatz des Algorithmus vorbereitet. Wir werden uns drei von diesen Szenen genauer anschauen: Der erste Testfall ist eine sehr einfache Szene, die einige grobe Hindernisse enthält. Der Rotationsparameter wurde aktiviert. Einfache Potential Fields - Methoden können diese Herausforderung nicht bewältigen, da der Roboter die großen Hindernissen (links) nicht überwinden kann. In der zweiten Szene muss der Roboter durch das Quadrat bewegen. Auf den ersten Blick scheint der Pfad außerhalb des Quadrates besser zu sein. Der Rotationsparameter wurde auch hier aktiviert, damit sich der Roboter um die Hindernisse im Zentrum zu drehen kann. Die letzte Szene ist einer der schwierigen Herausforderungen. Potential Fields - Methoden führen hier zu keiner Lösung. Die Methode der Zellzerlegung kann jedoch diese Herausforderung bewältigen. 09.09.2004 Seite 13 von 16 Seminararbeit M. Shahadat Ali Zusammenfassung Der Kern des Forschungsgegenstands ist zweifellos auch heute ein aktuelles Thema. Heutige moderne Methoden stützen sich auf Roadmaps mit dessen Hilfe Pfade berechnet werden können. Der Forschungsgegenstand ist und bleibt eine interessante Leselektüre für eine Einführungsvorlesung. Der Algorithmus stellt lediglich einen sehr globalen Ansatz ohne jedoch den Anspruch zu erheben vollständig und korrekt zu sein. So z.B. wird die Distanzfunktion sehr grob definiert. Ich bezweifele sehr, dass dieser simple Algorithmus tatsächlich in der Lage ist die vorgestellten Szenen zu bewältigen. Heutige Anforderungen sind höher, so geht man z.B. davon aus, dass die Arbeitsumgebung des Roboters unbekannt ist. Man geht auch davon aus, dass der Roboter in einer 3 statt 2 dimensionaler Umgebungen sich bewegt. Der Algorithmus, so wird es auch im Paper bestätigt, ist unvollständig. Die Frage, die man auch heute stellt ist: sind randomisierte Algorithmen tatsächlich besser als deterministischen Algorithmen? Es fehlen viele wichtige Angaben wie etwa die Laufzeiten. Wie schnell ist der Algorithmus überhaupt? Das Paper stammt aus dem Jahre 1992. Aus dieser Zeit war der vorgestellte Algorithmus eine kleine Revolution, denn sie war anders als der bisherigen klassischen Lösungen. 09.09.2004 Seite 14 von 16 Seminararbeit M. Shahadat Ali [SS83] J.T Schwartz, M. Sharir. On the Piano Movers Problem: II. General Techniques for Computing Topological Properties of Real Algebraic Manifolds. Advances in Applied Mathematics, 4:298-351, 1983. [1992] Mark H. Overmars. A Random Approach to Motion Planning. Technical Report RUU-92-32, October 1992 09.09.2004 Seite 15 von 16 Seminararbeit M. Shahadat Ali Mein Dank gebührt Herrn Prof. Dr. Rolf Klein und Herrn Tom Kamphans für die zahlreichen Anregungen und Hilfestellungen. Ihre wertvollen Kommentare Seminararbeit beigetragen. haben wesentlich zur Verbesserung meiner Viel Spaß beim Lesen. Ich erwarte schon jetzt auf Eure zahlreichen Kommentare. per Email: [email protected] 09.09.2004 Seite 16 von 16