Robot Motion Planning with Roadmaps

Werbung
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
Herunterladen