docu - HTW Dresden

Werbung
Leistungsnachweis der Fächer Neuronale Netze
und Genetische Algorithmen
erstellt von
Maik Büttner ([email protected])
Peter Magyar ([email protected])
0. Inhaltsverzeichnis
Leistungsnachweis der Fächer Neuronale Netze und Genetische Algorithmen .............................. 1
0. Inhaltsverzeichnis ..................................................................................................................... 2
1. Für wen dieses Programm und die Dokumentation erstellt wurde .......................................... 3
2. Problembeschreibung ............................................................................................................... 3
3. Herangehensweise und Probleme............................................................................................. 3
3.1. Das Robotermodell ............................................................................................................ 3
3.2. Die Trajektorie .................................................................................................................. 3
3.3. Definition der Hindernisse ................................................................................................ 3
3.4. Die Kollisionserkennung ................................................................................................... 4
4. Konkretisierung und Einschränkungen des verwendeten Modells .......................................... 4
4.1. Das Robotermodell ............................................................................................................ 4
4.2. Definition der Hindernisse ................................................................................................ 5
4.3. Die Kollisionserkennung ................................................................................................... 5
5. Die Trajektorienermittlung ....................................................................................................... 6
5.1. Der genetische Algorithmus .............................................................................................. 7
5.1.1. Die Wegfindung ......................................................................................................... 7
5.1.2. Der Hauptzyklus der Wegfindung............................................................................ 10
5.1.3. Der Hauptzyklus der Wegoptimierung..................................................................... 11
5.1.4. Grenzen des Verfahrens ........................................................................................... 12
5.2. Das neuronale Netz ......................................................................................................... 14
5.2.1. Die Netzarchitektur .................................................................................................. 14
5.2.2. Der Aufbau des Netzes und der Lernalgorithmus .................................................... 15
6. Benutzerdokumentation ......................................................................................................... 18
6.1. Vorbemerkung über den Unterschied zwischen Hindernisdatei und Szenariodatei ....... 18
6.2. Das Programm ................................................................................................................. 18
6.2.1. Wegfindung .............................................................................................................. 18
6.2.2. 3D Darstellung ......................................................................................................... 18
6.2.3. Szenarioeditor........................................................................................................... 19
6.3. Systemvoraussetzungen .................................................................................................. 19
7. Entwicklerdokumentation ...................................................................................................... 19
8. Begriffserklärungen ................................................................................................................ 25
9. Quellen ................................................................................................................................... 25
2
1. Für wen dieses Programm und die Dokumentation erstellt wurde
Dieses Programm wurde im Rahmen eines Leistungsnachweises für die Fächer Neuronale Netze und
Genetische Algorithmen erstellt. Zum Verständnis sind grundlegende Kenntnisse in diesen beiden
Fachgebieten notwendig. Dieses Dokument, sowie das Programm stellen keinen Anspruch auf eine
professionelle und korrekte Lösung, sondern sollen einen möglichen Lösungsansatz beschreiben.
2. Problembeschreibung
Ein Industrieroboter soll selbstständig den Weg von einer Stellung A in eine Stellung B finden. Dabei sollen im
Raum befindliche Hindernisse beachtet und ohne Kollisionen umgangen werden.
Für die dafür notwendige Trajektorienplanung sollen zum einen die Möglichkeiten des genetischen
Algorithmus, zum anderen die eines neuronalen Netzes untersucht werden.
3. Herangehensweise und Probleme
3.1. Das Robotermodell
Da in diesem Projekt nicht an einem realen Roboter gearbeitet werden konnte, war der erste Schritt der Entwurf
eines mathematischen Modells eines Roboters.
Ein Industrieroboter besteht in der Regel aus Segmenten die durch N Gelenke miteinander verbunden sind. Die
Anzahl seiner Gelenke bestimmt seinen Umfang an Möglichkeiten sich im Raum zu bewegen und damit auch
die Fähigkeit Hindernissen auszuweichen. Eine große Anzahl an Gelenken erhöht die Bewegungsfreiheit
erheblich. Allerdings erhöht sich mit jedem zusätzlichen Gelenk auch der Aufwand zur Berechnung von
Trajektorien erheblich, da sich der Konfigurationraum mit jedem Gelenk um eine Dimension vergrößert.
Der Bereich zwischen minimalem und maximalem Gelenkwinkel stellt ein analoges Intervall dar. Dieses kann
auf einem Computer nicht verlustfrei abgebildet werden. Es ist notwendig dieses Intervall auf ein definiertes
Intervall 0...M zu skalieren. Ein hoher Wert von M ermöglicht eine exaktere Konfiguration des Roboterarmes.
Dies benötigt aber auch mehr Speicherplatz und Rechenleistung, da jeder diskrete Wert aus diesem Intervall
einen möglichen Punkt der zugehörigen Dimension im Konfigurationsraum darstellt. Der analoge Ndimensionale Konfigurationsraum wird somit auf einen diskreten N-dimensionalen Konfigurationsraum der
N
Größe M abgebildet.
3.2. Die Trajektorie
Eine Trajektorie von einem Start- zu einem Zielpunkt wird aus oben genannter Betrachtungsweise heraus als
eine Folge von benachbarten Punkten im Konfigurationsraum verstanden.
3.3. Definition der Hindernisse
Soweit sie sich mathematisch erfassen lassen, sind hier alle möglichen Arten von Hindernissen vorstellbar.
Allerdings lassen sich selbst extrem komplexe Hindernisse leicht durch eine Zusammensetzung von primitiven
Grundkörpern wie Kugel, Würfel oder Quader darstellen.
3
3.4. Die Kollisionserkennung
Für jede Stellung des Roboterarmes muss festgestellt werden können, ob es in dieser Lage eine Kollision mit
einem Hindernis geben würde. Für die Kollisionsdetektion müssen nun entweder die Hindernisse in den
Winkelraum, oder der Roboter in den Ortsraum übertragen werden. Das Übertragen von Hindernissen in den
Winkelraum erweist sich bei näherer Betrachtung schon bei eindimensionalen Objekten als äußerst aufwendig
und komplex. Deshalb erscheint es einfacher, über die Winkelkonfiguration des Roboters seine Lage im
Ortsraum zu ermitteln und dort auf Kollisionen mit den Hindernissen zu testen.
4. Konkretisierung und Einschränkungen des verwendeten Modells
4.1. Das Robotermodell
Um möglichst reale Probleme lösen zu können, ist es sinnvoll einen Roboter mit wenigstens drei Gelenken zu
verwenden, der sich im dreidimensionalen Ortsraum bewegt. Die Bewegungsfreiheit des Roboterarmes wird
durch folgende Gelenke gewährleistet: ein Torsions- und ein Rotationsgelenk am Fußpunkt, sowie ein
Rotationsgelenk zwischen den beiden Armsegmenten.
Um das Robotermodell realistischer zu gestalten, wurde die Bewegungsfreiheit der Gelenke willkürlich
eingeschränkt. So kann sich das Torsionsgelenk im Bereich von 0 bis 360 Grad bewegen. Das Rotationsgelenk
am Fußpunkt kann Stellungen zwischen 10 und 170 Grad gegenüber der Bodenebene einnehmen. Beim
Rotationsgelenk zwischen den Segmenten sind Winkel zwischen 20 und 180 Grad gegenüber dem ersten
Segment möglich.
Durch die Verwendung von acht Bit zur Kodierung eines Winkels ergibt sich ein Konfigurationsraum von 256³
Punkten. Eine Suche von Trajektorien in diesem Raum kann mit einem normalen PC noch durchgeführt
werden, falls das Szenario nicht zu komplex ist.
Eine Stellung bzw. Konfiguration des Roboterarmes ergibt sich somit aus einem Tripel von Winkeln im
Bereich 0 bis 255. Die Auflösung des ersten Winkels beträgt dadurch 1,40625 Grad, des zweiten und dritten
0,625 Grad.
y
l2
β2
x
z
l1
β1
α
dreidimensionale Veranschaulichung des Roboters:
l1, l2
Armsegmente des Roboters
α
Torsionswinkel am Fußpunkt
β1, β2 Rotationswinkel am Fußpunkt und zwischen den Armsegmenten
4
4.2. Definition der Hindernisse
Die Hindernisse bestehen ausschließlich aus Quadern, deren Begrenzungsflächen parallel zu den Raumebenen
liegen. Da sich jeder komplexe Körper zumindest näherungsweise auch aus Quadern aufbauen lässt, stellt dies
keine zu große Einschränkung dar, vereinfacht aber die Implementierung erheblich.
4.3. Die Kollisionserkennung
Durch die für die Hindernisse und den Roboterarm vorgenommenen Einschränkungen ergibt sich eine recht
einfache Kollisionserkennung, die in folgender Grafik dargestellt ist. Dabei wird jedes der Armsegmente des
Roboters einzeln betrachtet. Die Hindernisse bestehen aus einzelnen Flächen, die zur Kollisionserkennung
verwendet werden. Es wird also für jedes Armsegment einzeln jede einzelne Begrenzungsfläche jedes
Hindernisses betrachtet.
Nachfolgend ist der schematische Ablauf der Kollisionserkennung für ein Armsegment mit dessen beiden
Endpunkten dargestellt. Dieser wird für jede Begrenzungsfläche jedes Hindernisses durchlaufen. Mit
unendlicher Ebene ist die betrachtete Begrenzungsebene des Hindernisses ohne deren räumliche
Einschränkungen gemeint.
Beide Punkte auf
gleicher Seite der
unendlichen Ebene?
1
keine Kollision
0
Beide Punkte
außerhalb der
unendlichen Ebene?
1
Durchstoßpunkt der
Verbindungsgerade der Punkte
innerhalb begrenzter Ebene?
1
0
Kollision
keine Kollision
0
Beide Punkte
innerhalb der
unendlichen Ebene?
1
Schneidet die
Verbindungsgerade der Punkte
die begrenzte Ebene?
1
0
Kollision
keine Kollision
0
Ein Punkt innerhalb
der unendlichen
Ebene?
1
Liegt der Punkt innerhalb
begrenzter Ebene?
1
0
0
keine Kollision
5
Kollision
keine Kollision
Nachfolgend noch eine kurze schematische Darstellung über die mathematischen Grundlagen der
Kollisionserkennung.
Endpunkte
eines Armsegmentes
unendliche
Ebene
Liegen beide Endpunkte eines Armsegmentes auf der
gleichen Seite der unendlichen Ebene, ist keine
Kollision möglich.
begrenzte
Ebene
Liegen Anfangs- und Endpunkt auf unterschiedlicher
Seite der unendlichen Ebene, kann eine Kollision
auftreten.
Kollision?
B
P1
A
C
P2
Liegt ein Durchstoßpunkt innerhalb der unendlichen
Ebene, kann eine Kollision auftreten. Dafür wird mit
Hilfe eines beliebigen Punktes A außerhalb der
unendlichen Ebene eine Pyramide aufgespannt, deren
Grundfläche die begrenzte Ebene ist. Links ist die
Seitenansicht zu sehen. Der Durchstoßpunkt P1 liegt
innerhalb der Begrenzungsebene, da die
Normalenvektoren der Seitenflächen in die Pyramide
zeigen. Der Punkt P2 liegt außerhalb, da nicht alle
Vektoren nach innen zeigen. Dies muss für jede der vier
Pyramidenseitenflächen durchgeführt werden.
Somit kann für jede Winkelstellung, die der Roboter einnimmt, berechnet werden ob eine Kollision auftritt.
Führt man diese Kollisionsdetektion für jeden Punkt des Konfigurationsraumes aus und weist jedem Punkt
noch die Information hinzu ob es eine Kollision gibt, erhält man den eindeutigen Kollisionsraum für dieses
Szenario.
5. Die Trajektorienermittlung
Das Ergebnis der Trajektorienermittlung soll eine Folge von kollisionsfreien Winkelstellungen sein, die die
Start- und Zielkonfiguration verbindet. Dabei muss natürlich auch gewährleistet werden, dass der Übergang
zwischen zwei aufeinander folgenden Winkelstellungen ebenfalls kollisionsfrei ist. Da die Kollisionsprüfung
6
aber nur statisch für eine einzelne Konfiguration vorgenommen werden kann, sollten aufeinander folgende
Punkte der Trajektorie, benachbarte Punkte im Konfigurationsraum darstellen. Benachbart heißt hier, dass sie
einen euklidischen Abstand von einer Einheit im orthogonalen Kollisionsraum haben.
5.1. Der genetische Algorithmus
Für die Wegfindung mittels eines genetischen Algorithmus werden die Winkelstellungen als Bitfolge kodiert.
Für die Kodierung der Winkelstellungen wird Gray-Code benutzt, dabei ist aber jeder Winkel einzeln kodiert.
Somit ergibt sich als Gen ein 24 Bit großer Vektor, der die drei Winkel und damit einen Stützpunkt
repräsentiert. Die Gründe für die Verwendung eines mehrparametrigen Genes sind in der Implementierung zu
suchen, da sich so die drei Winkel in einer einzigen Variablen darstellen lassen. Dadurch sind Crossover und
Mutation einfacher zu implementieren. Das Chromosom besteht aus einer Sequenz von Genen und stellt die
Trajektorie von A nach B dar. Die Sequenzlänge kann dabei für jedes Individum verschieden sein und sich
auch im Laufe der Generationen durch Mutation verändern. Die Punkte A und B werden nicht mit kodiert, weil
diese sich nicht ändern.
Da eine Trajektorie aus benachbarten Punkten bestehen soll, würde sich für weit entfernte Start- und Zielpunkte
ein extrem langes Chromosom ergeben. Dies würde den Suchraum stark vergrößern und wäre auf einem realen
Computer nicht mehr zu berechnen. Deshalb werden mit jedem Gen nur Stützpunkte kodiert, der Weg
dazwischen interpoliert und ebenfalls auf Kollisionen überprüft.
Die Wegfindung erfolgt in zwei Schritten, dem Finden eines kollisionsfreien Weges und der Optimierung
dieses Weges bezüglich dessen Länge. Prinzipiell könnten beide Schritte in einem Algorithmus kombiniert
werden. Allerdings beeinflusst die Zielsetzung der Optimierung die Konvergenzgeschwindigkeit der
Wegfindung negativ. Um ein Hindernis umgehen zu können, ist es meist erforderlich, die Pfadlänge zu
erhöhen. Dem steht aber die Minimierung der Länge bei der Optimierung entgegen. Somit würde die
Konvergenz der Wegfindung in ungünstigen Situationen eventuell sogar verhindert.
5.1.1. Die Wegfindung
5.1.1.1. Das Problem der Bewertung kollisionsbehafteter Wege
Die Wegfindung beginnt mit einem Pool von Individuen, die wahrscheinlich nur kollisionsbehaftete Wege
darstellen. Die Aufgabe der Bewertung besteht darin, diejenigen Individuen zu finden, welche mit der größten
Wahrscheinlichkeit in einer der nächsten Generationen zu Individuen führen, die einen kollisionsfreien Weg
darstellen.
Das Ziel der Evaluierung ist es, den Grad der Kollisionsfreiheit für jedes Individuum festzulegen um zu
entscheiden, welches am ehesten geeignet ist, durch dessen Nachfahren der Lösung näher zu kommen. Der
Grad der Kollisionsfreiheit ist ein Indiz dafür, wie groß die notwendige Änderung ist, um einen
kollisionsbehafteten Weg in einen kollisionsfreien Weg zu überführen. Für die Bestimmung des Grades der
Kollisionsfreiheit existiert kein Standardverfahren. Demzufolge musste ein eigenes Verfahren entwickelt
werden.
Dafür wird für jede interpolierte Zwischenstellung (nicht nur Stützstellen) auf dem Weg von der Start- zur
Zielstellung festgestellt, ob Kollisionen vorhanden sind. In der folgenden Grafik ist dies noch einmal
veranschaulicht. Der Übersichtlichkeit wegen wurden hier und in den folgenden Grafiken nur zwei
Dimensionen (Winkel) des Kollisionsraumes und die Hindernisse nur als einfache geometrische Formen
dargestellt.
7
β
α
Stützstelle
Zwischenstelle
Veranschaulichung der Stütz- und Zwischenstellen
Falls eine Kollision an einer Zwischenstelle i vorliegt, wird für diese der kürzeste Abstand absti zu einer
kollisionsfreien Stelle im Winkelraum berechnet.
β
α
Änderungsvektor
mit Abstand abst
möglicher Änderungsvektor an einer Zwischenstelle
Zur Bewertung der Individuen gibt es nun verschiedene Möglichkeiten:
n
-
Aufsummierung der einzelnen Abstände
 abst
i
i=0
-
Maximum der einzelnen Abstände max (abst 0 ,...,abst n )
-
Durchschnitt der Abstände
n

i= 0
abst i
n
8
Ein geringer Wert bedeutet also einen hohen Grad an Kollisionsfreiheit. Leider ist keines dieser Kriterien
allgemein anwendbar, da es Situationen gibt, in denen die Beurteilung des Grades der Kollisionsfreiheit anhand
dieser Kriterien zum falschen Ergebnis führt. Dies zeigen folgende Grafiken:
-
Aufsummierung der einzelnen Abstände
β
α
Der gepunktete Weg müsste besser bewertet werden, wird bei Aufsummierung aber schlechter bewertet.
-
Maximum der einzelnen Abstände
β
α
Der gepunktete Weg müsste besser bewertet werden, wird bei Beurteilung nach dem Maximum aber schlechter
bewertet.
9
-
Durchschnitt der Abstände
β
α
Der gepunktete Weg müsste besser bewertet werden, wird beim Durchschnitt aber schlechter bewertet.
Testreihen haben ergeben, dass die Aufsummierung der einzelnen Abstände die besten Ergebnisse erbracht hat.
5.1.2. Der Hauptzyklus der Wegfindung
5.1.2.1. Die Initialpopulation
Die Initialpopulation mit N Individuen wird durch einen Zufallsgenerator erstellt. Die Länge eines
Chromosoms, d.h. die Anzahl der Stützstellen ergibt sich ebenfalls aus einem Zufallswert, der zwischen der
festgelegten minimalen und maximalen Chromosomlänge liegt.
5.1.2.2. Die Evaluierung
Für die Evaluierung wird jedes Chromosom in den Phänoraum übertragen. Zusammen mit Start- und Zielpunkt
bildet jedes Individuum eine Trajektorie. Für jede dieser Trajektorien wird nun der Grad der Kollisionsfreiheit
mittels der Aufsummierung der Abstände bestimmt.
5.1.2.3. Die Abbruchbedingung
Die Abbruchbedingung ist gegeben, wenn für eines der Individuen die Kollisionsfreiheit gegeben, oder die
maximale Anzahl an Generationen erreicht wurde.
5.1.2.4. Reproduktion
Zuerst muss die Auswahl der Individuen für die Reproduktion erfolgen. Dazu werden zufällig Kandidaten aus
dem Pool ausgewählt. Da die Wahrscheinlichkeit ausgewählt zu werden für ein Individuum mit größerer Güte
höher sein sollte, wird die Auswahlwahrscheinlichkeit für ein Individuum mittels der nichtlinearen Funktion
10
q1  q 
i 1
pi 
1  1  q 
N
bestimmt. Dabei bestimmt der Parameter q, die Bevorzugung von Individuen höherer
Güte. Ein größerer Wert für q führt zu einer steigenden Bevorzugung dieser Individuen. Aus dem aus diesen
Kandidaten erstellten Heiratspool werden zufällig Paare gewählt, die zur Erzeugung der Nachkommen
herangezogen werden. Für jedes Paar wird wiederum zufällig eines der folgenden Verfahren ausgewählt, um
ein Paar von Kindern zu erzeugen, welche in den Pool der Nachfahren eingefügt werden:
-
Ein Punkt Crossover
Zwei Punkt Crossover
Uniform Crossover
Das Crossover zweier unterschiedlich langer Chromosome stellt kein Problem dar, wenn gewährleistet ist, dass
der Crossover-Punkt innerhalb der Länge des kürzeren Chromosoms liegt.
Zusätzlich zum Crossover, gibt es noch die Mutation, bei der jedes Bit eines Chromosomes mit einer
festgelegten Wahrscheinlichkeit negiert wird. Dabei wird zwischen zwei Fällen unterschieden, die mit
unterschiedlicher Wahrscheinlichkeit auftreten können:
-
Mutation der Nachfahren,
Mutation der Elite der alten Generation
Zusätzlich gibt es noch eine dritte Art der Mutation, welche aber nicht einfach die Negation einzelner Bits
bewirkt:
-
Mutation der Chromosomlänge
Die Mutation der Chromosomlänge erfolgt über eine Erhöhung bzw. Kürzung der Sequenzlänge um ein Gen.
Zur Reduzierung wird einfach ein zufälliges Gen aus der Sequenz entfernt. Zur Erhöhung der Chromosomlänge
wird ein zufällig ausgewähltes Gen dieser Sequenz geklont und hinter dem geklonten Gen in die Sequenz
eingefügt. Durch das Klonen wird verhindert, dass sich die Bewertung des Individuums verschlechtert, da
weder die Kollisionsfreiheit verringert, noch die Pfadlänge erhöht wird.
5.1.2.5. Die Selektion
Die Individuen des alten Pools werden zuerst auf das Erreichen ihres maximalen Alters hin überprüft. Ist dies
der Fall, so werden diese entfernt. Die neue Population wird dann durch eine Auswahl von N-n Individuen aus
dem Pool der Nachfahren und n Individuen der alten Population erstellt.
5.1.3. Der Hauptzyklus der Wegoptimierung
Das Ziel dieses Schrittes ist die Optimierung der Weglänge der im vorhergehenden Schritt gefunden Lösung.
Die Anfangspopulation besteht also nur aus dem Gewinnerindividuum der Wegfindung. Da mit nur einem
Individuum ein Crossover nicht sinnvoll ist, wird hier statt eines klassischen genetischen Algorithmus eine 1.N
- Evolutionsstrategie verwendet. Nachfahren werden also nur durch Klonen und Mutieren erzeugt. Der
Hauptzyklus bleibt der gleiche.
5.1.3.1. Die Initialpopulation
11
Die Anfangspopulation besteht nur aus dem Gewinnerindividuum der Wegfindung.
5.1.3.2. Die Evaluierung
Zusammen mit Start- und Zielpunkt bildet auch hier jedes Individuum eine Trajektorie. Für jede dieser
Trajektorien wird nun wieder der Grad der Kollisionsfreiheit mittels der Aufsummierung der Abstände
bestimmt. Zusätzlich wird noch die Weglänge für jedes Chromosom ermittelt. Die Weglänge ist definiert als
die Summe der euklidischen Abstände der aufeinander folgenden Stützstellen im Kollisionsraum.
5.1.3.3. Die Abbruchbedingung
Es existiert kein Kriterium, welches das Erreichen der minimalen Pfadlänge anzeigt. Deshalb wird eine
maximale Anzahl von Generationen angeben, deren Verstreichen ohne Verringerung der Pfadlänge zum
Abbruch der Optimierung führt. Natürlich führt auch das Erreichen der maximalen Anzahl von Generationen
zum Abbruch.
5.1.3.4. Reproduktion
Die Reproduktion ist hier sehr einfach, da das Chromosom mit der höchsten Fitness nur N mal geklont und
mutiert wird.
5.1.3.5. Die Selektion
Eine Altersbegrenzung wird in diesem Fall nicht verwendet, um sicherzustellen, dass ein kollisionsfreies
Individuum erhalten bleibt. Die neue Population besteht aus dem besten Individuum aus der Vereinigung von
Kinderpool und Pool der alten Population.
5.1.4. Grenzen des Verfahrens
Eine Schwachstelle dieses Verfahrens ist das Finden von Trajektorien in komplexen oder engen Räumen, wenn
die Stützpunkte nur innerhalb sehr kleiner Toleranzgrenzen liegen dürfen, um eine Lösung zu repräsentieren.
Daraus folgt, dass die Mutationsrate sehr klein sein muss, um ein sehr gutes Individuum bis hin zur Lösung zu
verändern.
12
β
α
Verdeutlichung der geringen Toleranzgrenzen der Lösung.
Eine weitere Schwachstelle ergibt sich durch sehr schmale, aber ausgedehnte Hindernisse wie zum Beispiel
Ebenen. An diesen treten nur sehr wenige Kollisionen auf, wodurch sich ein Pfad mitten durch das Hindernis
kaum von einem unterscheidet, der das Hindernis nur am Rand streift. Durch die große Ausdehnung, aber
schmale Silhouette der Hindernisse ergeben sich im Suchraum große Plateaus, die Suboptima darstellen. Um
ein solches Plateau verlassen zu können, ist eine hohe Mutationsrate notwendig. Dies widerspricht aber der
vorher genannten Forderung nach einer niedrigen Mutationsrate.
β
α
Der Unterschied bei der Bewertung des Weges mit durchgezogener und Strichlinie ist nur sehr gering oder gar
nicht feststellbar  große Mutationsrate notwendig.
13
5.2. Das neuronale Netz
5.2.1. Die Netzarchitektur
Die Aufgabe besteht darin, ein neuronales Netz zu entwickeln, welches als Ausgabe die Trajektorie vom Startzum Zielpunkt enthält. Prinzipiell gibt es nur zwei Arten von Netzen, Netze mit überwachtem Lernen und SelfOrganizing-Maps.
Die Netze mit überwachtem Lernen bestehen aus einer Eingabeschicht, einer Menge von Hiddenschichten und
einer Ausgabeschicht. Damit ergibt sich bereits ein Problem – die Größe des Ausgabevektors wird durch die
Architektur des Netzes fest vorgegeben. Somit wird die Anzahl der Stützpunkte festgelegt. Ein weiteres
Problem stellt das Aufstellen der Lernmenge für das Netz dar. Die erforderliche Trainingsmenge müsste
repräsentativ für das gesamte Szenario sein, um sicherzustellen, dass die unbekannten Eingabevektoren auch zu
kollisionsfreien Trajektorien führen. Die Trainingsmenge ist somit, wenn überhaupt, nur manuell und mit
erheblichem Aufwand zu erstellen. Hinzu kommt, dass bei komplexen Szenarien ein funktionaler
Zusammenhang zwischen Ein- und Ausgabevektoren nicht unbedingt gegeben ist, so dass selbst bei einer sehr
großen Trainingsmenge nicht auf die Menge der restlichen möglichen Tupel von kollisionsfreien Ein- und
Ausgabevektoren geschlossen werden kann.
Deshalb ist diese Art von Netz unserer Meinung nach nicht zur Lösung dieses Problems geeignet.
Eine zweite Netzarchitektur sind die Self-Organizing-Maps. Diese Netze sind in erster Linie Klassifizierer, d.h.
die Eingabevektoren werden aufgrund ihrer Ähnlichkeit Musterklassen zugeordnet. Es erfolgt also eine
Reduzierung der Dimensionalität.
Das von uns benötigte Netz soll aber eine Zuordnung von einem 6-parametrischen Eingabevektor (Start- und
Zielpunkt) zu einem 3*S -parametrischen Ausgabevektor realisieren. Die Variable S steht hier für die Anzahl
der Stützstellen. Da S für nicht-trivale Problem größer als zwei sein sollte, handelt es sich hierbei um eine
Erhöhung der Dimensionalität, also nicht um eine Klassifikation! Das Problem scheint also auch mit einem
SOM nicht lösbar.
Ein sehr bekanntes Problem für welches mit SOM’s gute Näherungslösungen gefunden werden können, ist das
Problem des Handlungsreisenden, bei dem der kürzeste Rundweg durch Städte (durch Lage im Raum definiert)
gesucht wird.
Hierbei bilden die Neuronen der SOM eine, anfangs kreisförmige, beliebig im Raum liegende Trajektorie.
Durch wiederholtes Anlegen der Punkte, welche die Städte definieren, wird diese so verformt, dass sie nach n
Schritten einen Weg beschreibt, der alle Punkte verbindet.
Über die genaue Funktionsweise dieser SOM kann man sich beispielsweise über den folgenden Link
informieren:
http://www.htw-dresden.de/~iwe/Belege/Boerner/index.html
Dieses Prinzip könnte man evtl. auch zur Lösung der Trajektorienplanung des Roboterarmes benutzen, mit der
Änderung, dass die Neuronen anfangs keinen Kreis, sondern eine Interpolation zwischen dem Start- und
Zielpunkt darstellt.
Allerdings sind die Vektoren, welche eine kollisionsfreie Trajektorie beschreiben würden, nicht bekannt.
Selbst wenn die Hindernisse in diesem Raum mathematisch erfassbare Objekte darstellen würden, gibt es
scheinbar keinen Algorithmus der diese notwendigen Vektoren erzeugt. Die folgende Grafik verdeutlicht das
Problem anschaulich. Die großen Punkte stellen die notwendigen Eingabevektoren dar, welche die interpolierte
Anfangstrajektorie (schwarz) zu der kollisionsfreien Trajektorie (gestrichelt) verformen.
14
β
α
Um diesen Mangel zu kompensieren, wird für jeden Lernschritt ein Eingabevektor in Abhängigkeit vom
Zustand des Netzes gewählt.
Dies widerspricht der grundlegenden Idee einer Self-Organizing-Map, ist unserer Meinung nach aber die
einzige Möglichkeit das Problem der Trajektorienplanung für den Roboterarm mit neuronalen Netzen zu lösen.
5.2.2. Der Aufbau des Netzes und der Lernalgorithmus
Das neuronale Netz ist aus einer Kette von Neuronen aufgebaut, d.h. jedes Neuron ist nur mit seinem
Vorgänger und Nachfolger verbunden. Zu Beginn bilden die Gewichte der Neuronen einen interpolierten Weg
vom Start- zum Zielpunkt. Dann wird für jedes Neuron, welches eine Position in einem Hindernis repräsentiert,
ein Vektor berechnet, welcher den Weg aus dem Hindernis auf eine kollisionsfreie Position beschreibt.
β
α
Beispiel für Vektoren, die den Weg auf eine kollisionsfreie Position beschreiben
15
Da es sinnvoll ist, die Trajektorie an der Stelle zu ändern, an der die größte Änderung notwendig ist, wird die
Position dieses Neurons und der zugehörige Änderungsvektor zur Berechnung des Eingabevektors genutzt. Der


Eingabevektor E wird somit durch die Vektoraddition der Gewichte G des Neurons mit der größten




notwendigen Änderung, sowie einem Teil des Änderungsvektors D nach E  G  x  D bestimmt. Dieser
Vektor wird an das Netz angelegt, welches sich dadurch verformt. Dieser Vorgang wird so lange wiederholt,
bis die Trajektorie kollisionsfrei ist oder die maximale Anzahl an Lernschritten erreicht wurde.
5.2.2.1. Probleme und deren Lösungsansätze bei der Umsetzung
Ein erstes Problem bei der Wahl des richtigen Eingabevektors sind die möglichen Richtungen in die der
Änderungsvektor zeigen kann. So ist die Richtung zum Vorgänger und Nachfolger nicht zulässig, um
überhaupt eine Veränderung des Netzes zu erreichen. Da es nicht einfach ist, diese und ähnliche Richtungen
auszuschließen, sind für den Änderungsvektor grundsätzlich nur die drei Hauptrichtungen parallel zu den
Raumachsen zulässig. Zusammen mit der vorher genannten Einschränkung bleiben somit nur noch zwei
mögliche Richtungen, in die der Änderungsvektor zeigen kann.
y
x
z
erlaubte und verbotene Suchrichtungen
Das zweite Problem besteht darin, sicherzustellen, dass die Trajektorie sich in der gewünschten Art ändert.
Befindet sich ein Neuron näher am Eingabevektor als das mit dem größten Änderungsvektor, so besteht die
Möglichkeit, dass sich das Netz nicht an der gewünschten, sondern an einer ganz anderen Stelle verändert
(siehe folgende Grafik). Dadurch können im schlimmsten Fall weitere Neuronen in ein Hindernis gezogen
werden, die vorher keine Kollisionen aufwiesen.
16
β
α
ungewünschte Veränderung des Netzes bei schlechtem Eingabevektor
Das dritte Problem sind eventuell auftretende Schwingungen. D.h. das Netz konvergiert nicht, sondern befindet
sich nach einer gewissen Anzahl von Schritten wieder im gleichen Zustand. Um dies möglichst zu verhindern,
werden die Gewinnerneuronen und deren Änderungsvektor der letzten Lernschritte gespeichert. Tritt sehr
häufig die gleiche Kombination aus Neuronengewicht und Änderungsvektor auf, so weist dies auf eine
Schwingung hin. Ist dies der Fall, so wird als erste Maßnahme für dieses Neuron ein neuer Änderungsvektor
unter Ausschluss der Richtung des bisherigen Änderungsvektors berechnet. Bringt das keine Erfolge, so wird
die eben gestattete, sowie eine weitere zufällig ausgewählte Hauptrichtung verboten und damit der
Eingabevektor neu berechnet.
β
α
unerwünschte Schwingungen
17
6. Benutzerdokumentation
6.1. Vorbemerkung über den Unterschied zwischen Hindernisdatei und
Szenariodatei
Eine Hindernisdatei enthält nur die Koordinaten und Ausdehnungen von Hindernissen im Ortsraum, keinerlei
weitere Informationen. Ein Szenario dagegen enthält sowohl die Koordinaten und Ausdehnungen von
Hindernissen, als auch den sich dadurch im Zusammenhang mit dem Roboterarm und dessen Abmessungen
ergebenden Winkelraum. Dieser ist für die Wegfindung notwendig. Eine Hindernisdatei kann also nur im
Szenarioeditor geladen werden. Eine Szenariodatei kann dagegen auch verwendet werden, um Trajektorien zu
erstellen.
6.2. Das Programm
Das Programm enthält zwei Menüs, „Scene“ und „AI type“.
In „Scene“ besteht die Möglichkeit mittels „Load Scenario“ ein Szenario zu laden. Mittels „Start Scenario
Editor“ kann ein neues Szenario erstellt werden. Das zweite Menü „AI type“ gibt die Möglichkeit zwischen
einem neuronalen Netz und einem genetischen Algorithmus als Verfahren zur Wegfindung zu wechseln.
6.2.1. Wegfindung
Um nach dem Start des Programms einen Weg berechnen zu können, muss als erstes ein Szenario geladen
werden. Wurde dieses geladen, so können über die Eingabefelder oberhalb des Statusfensters die
Startparameter für das Wegfindungsverfahren festgelegt werden. Das Wegfindungsverfahren kann jederzeit
über das Menü „AI type“ gewechselt werden.
Über die Eingabefelder „Current Pos“, „Start Pos“ und „Target Pos“ kann die aktuelle (im Grafikfenster
angezeigte), die Start- und die Zielposition des Roboterarmes eingestellt werden. Die drei Werte jeder Position
stellen die drei Winkel des Roboterarmes im Wertebereich 0 bis 255 dar. Dabei repräsentiert der erste Wert den
Winkel für das Torsionsgelenk am Boden, der zweite für das Rotationsgelenk am Boden und der dritte für das
Rotationsgelenk zwischen den beiden Armsegmenten. Mit den Schaltflächen „get cur“ kann die aktuell im
Grafikfenster angezeigte Armstellung als Start- bzw. Zielposition übernommen werden.
Nachdem Start- und Zielstellung festgelegt wurden, kann über die Schaltfläche „start search“ die Wegfindung
gestartet werden. Dabei werden Informationen im Statusfenster angezeigt. Wurde vor dem Beginn der Suche
die Schaltfläche „show diagram“ aktiviert, wird während der Suche ein Diagramm angezeigt, welches
zusätzliche Informationen zum Verlauf der Wegfindung enthält.
6.2.2. 3D Darstellung
Ist die Suche abgeschlossen worden, kann das Ergebnis durch klicken auf „show path in 3D“ im Grafikfenster
angezeigt werden.
Die 3D-Grafik im Grafikfenster kann durch anklicken und ziehen mit der Maus gedreht werden. Durch Klicken
mit der mittleren Maustaste und Auf- und Abbewegen der Maus im Grafikfenster kann die Darstellung
gezoomt werden.
18
6.2.3. Szenarioeditor
Im Szenarieneditor kann ein neues Szenario erstellt werden. Dazu wird über die Eingabefelder „Position“ die
linke, hintere, untere Ecke und über „Dimension“ die Ausdehnung des neuen Hindernisses mit x-y-z
Koordinaten im Ortsraum angegeben. Mittels der Schaltfläche „insert obstacle“ kann das neue Hindernis zur
Szene hinzugefügt werden. Es wird dann im Grafikfenster und in der Liste der Hindernisse angezeigt. Wird in
der Hindernisliste ein Hindernis durch anklicken ausgewählt, so kann es über „remove obstacle“ wieder
entfernt werden. Über „load obstacles“ bzw. „save obstacles“ kann die Liste der Hindernisse geladen bzw.
gespeichert werden.
Wurde die Liste der Hindernisse erstellt, so kann daraus das Szenario berechnet werden. Dies erfolgt durch
klicken auf „create map“ und kann je nach Rechenleistung des Computers einige Zeit (bis zu mehreren
Stunden) in Anspruch nehmen. Die Berechnung eines Szenarios kann jederzeit mittels „cancel creation“
abgebrochen werden.
6.3. Systemvoraussetzungen
Zum Erstellen und Betrieb der Software sind folgende Voraussetzungen zu erfüllen:
-
Java SDK ab Version 1.4
OpenGL Version von Java 3D ab Version 1.3.1
JChart 2D ab Version 1.03
für die Compilierung und Ausführung mit Ant: Apache Ant Version 1.6.5
-
x86 Architektur
mindestens 32 MB Grafikspeicher
ausreichend CPU-Leistung ;)
7. Entwicklerdokumentation
Während der Wegfindung muss sehr oft auf Kollisionen mit Hindernissen getestet werden. Würde dazu jedes
Mal, über die Winkelkonfiguration des Roboters seine Lage im Ortsraum ermittelt und damit auf Kollisionen
mit Hindernissen getestet, so wäre dies eine enorme Verlangsamung des Wegfindungsprozesses. Aus diesem
Grund werden vorher für alle möglichen Konfigurationen des Roboters die Kollisionen eines Szenarios in einer
binären Matrix verzeichnet und diese in einer Szenariodatei abgelegt.
Die Klassen des Programms lassen sich bezüglich ihrer Aufgabe zu Gruppen zusammenfassen.
Diese Packages sind:
-
show, alles was zur Interaktion mit dem Benutzer notwendig ist
ea, Wegfindung mittels des EA
nn, Wegfindung mittels des EA
collision, zur Bestimmung von Kollisionen notwendige Klassen
main, die Hauptklasse und der Hauptthread
19
Übersicht der Klassen des Packages show und deren Zusammenhang mit anderen Klassen:
20
Übersicht der Klassen des Packages ea und deren Zusammenhang mit anderen Klassen:
21
Übersicht der Klassen des Packages nn:
22
Übersicht der Klassen des Packages collision:
23
Übersicht der Klassen des Packages main und deren Zusammenhang mit anderen Klassen:
24
8. Begriffserklärungen
Ortsraum
Der Fußpunkt des Roboters bildet den Ursprung eines orthogonalen
Koordinatensystems, mit den drei Dimensionen X, Y, Z. Ein Tripel o=(x, y, z) mit
x  X, y Y und z  Z beschreibt damit die Lage des Manipulators relativ zum
Fußpunkt des Roboters. Die Menge aller dieser Tripel beschreibt den Ortsraum des
Roboters.
Konfigurationsraum
Für einen Roboter mit N Gelenken kann durch Angabe der momentanen
Winkelstellung wi, i  (1 … N), eines jeden Gelenkes, seine Konfiguration eindeutig
beschrieben werden. Die Menge alle dieser n-Tupel eines konkreten Roboters
beschreiben den Konfigurationsraum des Roboters.
Winkelraum
Der Begriff Winkelraum wird äquivalent zum Begriff Konfigurationsraum verwendet.
Kollisionsraum
Für jede Konfiguration w=(w1 … wN), kann festgestellt werden, ob eine Kollision in
dieser Stellung vorliegt.
fk(w)
=0 wenn in Konfiguration w keine Kollision auftritt
=1 wenn in Konfiguration w eine Kollision auftritt
Es entsteht damit ein Tupel k=(w, fk(w)). Die Menge aller dieser Tupel beschreibt den
Kollisionsraum des Roboters.
9. Quellen
Vorlesungsskript Genetische Algorithmen und die Aufzeichnungen Neuronale Netze von Prof. Dr. rer. nat.
habil. Iwe.
Vorlesungsmitschriften der Lehrveranstaltung Mathematik von Prof. Dr. rer. nat. habil. Neumann.
25
Herunterladen