Autonome Roboternavigation mittels Methoden der künstlichen Intelligenz - TEIL 2


Diplomarbeit, 2004

36 Seiten


Leseprobe


Kapitel 4 Navigation entlang einer Linie

Die Steuerung mobiler Roboter anhand von Sensoren ist eine grundlegende Aufgabenstellung in der Robotik. Der Roboter wird über die Geschwindigkeit jedes der beiden Antriebsräder kontrolliert. Ein frei bewegliches Stützrad im vorderen Teil des Roboters hat keinen Ein uss auf den Weg des Roboters. Die beiden unabhängig voneinander betriebenen Gleichstrommotoren werden folglich für beides verwendet, für Antrieb und Steuerung (siehe Abbildung 3.3).

4.1 Identi zieren der Linie

Um einer Linie folgen zu können, muss diese erstmal gefunden werden. Dieser Prozess ist in drei Teilschritte untergliedert. Im ersten Schritt wird von der Kamera, die an der Front des Vehikels montiert ist, ein Bild auf- genommen. Dieses Bild wird im zweiten Schritt bezüglich des Farbmodells transformiert, so dass für die Bildanalyse maximale Unabhängigkeit von den vorherrschenden Lichtverhältnissen erreicht wird. Eine Sliding Window (glei- tendes Fenster) Analyse liefert letztlich die erforderlichen Daten über den Verlauf der gesuchten Linie, welche dann an das Fuzzy-System weitergege- ben werden.

4.1.1 Schritt 1: Aufnahme eines Bildes

Die Kamera liefert bis zu 30 Bildern pro Sekunde. Die Anzahl der tatsächlich pro Sekunde verarbeiteten Bilder hängt letztlich von der Leistungsfähigkeit des Rechners an dem die Kamera hängt, der geforderten Bildqualität und der Komplexität der angewendeten Bildverarbeitungsalgorithmen ab.

Mittels einer sogenannten Frame-Grabber-Software wird ein einzelnes Bild aufgenommen und für die weitere Analyse als Bitmap im RGB-Farbmodell zwischengespeichert. Als guter Kompromiss zwischen Bildqualität und Ver- arbeitungszeit hat sich eine Au ösung von 352 × 288 Bildpunkten herausge- stellt.

4.1.2 Schritt 2: Transformation in das HSB-Farbmodell

Farben sind in der Regel aus mehreren Bestandteilen zusammengesetzt. Je nach verwendetem Farbmodell kann man eine Farbe in ihre Primärfarben Rot, Grün, Blau (additives Farbmodell) oder Cyan, Magenta, Gelb (sub- traktives Farbmodell) aufsplitten. Im Gegensatz dazu de niert das HSB- Farbmodell einen Bildpunkt über die Informationen Farbwert, Sättigung und Helligkeit.[26]

In dieser Arbeit wird lediglich auf das additive und das HSB-Farbmodell näher eingegangen, da die anderen Farbmodelle für die beschriebene Anwendung keine Relevanz haben.

Additives Farbmodell (RGB)

RGB steht für die drei Primärfarben des additiven Farbmodells, nämlich rot, grün und blau. Das bedeutet, dass ein Bildpunkt über drei Zahlen de niert wird, wobei jede dieser Zahlen die Intensität jeweils einer der drei Farben repräsentiert.

Das RGB-Farbmodell ist das am häu gsten verwendete Modell zur Be- schreibung von Farben im Computer. Additives Farbmodell bedeutet, dass die Beiträge der einzelnen RGB-Primärfarben übereinandergelegt - also ad- diert - werden und so das Gesamtergebnis liefern. Das RGB-Modell wird beispielsweise bei Bildschirmen verwendet.

Innerhalb des RGB-Systems können Designer auch durch die Verschmel- zung dieser drei Primärfarben eine Farbspektrum erzeugen. Die Kombination jeweils zweier Primärfarben erscha t drei Sekundärfarben: türkis, fuchsinrot und gelb. Wie bereits erwähnt, erzeugt die Kombination aller drei Primärfar- ben weiÿes Licht. Ein RGB-Wert von 255,255,255 erzeugt also Weiÿ. Die voll- ständige Abwesenheit der drei Primärfarben (RGB: 0,0,0) erzeugt Schwarz. Abbildung 4.1 veranschaulicht die Beschreibung von Farben über ihre RGB- Werte.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.1: RGB-Farben

HSB-Farbmodell

Im Gegensatz zum RGB-Modell basiert das HSB-Farbmodell auf den intuiti- ven Methoden, die etwa von Malern eingesetzt werden. Anstelle der Angabe des Rot-, Grün- und Blauanteils ndet eine Quali zierung von Farben mit- tels Farbton (hue ), Sättigung (saturation ) und Helligkeit (brightness ) statt. Da der Helligkeitswert oftmals auch schlicht mit Value bezeichnet wird, wird dieses Modell auch HSV-Farbmodell genannt. Dabei wird die Farbe durch den Farbton bestimmt. Als Wert für die Farbe wird oft der entsprechende Win- kel (0 bis 360◦) im HSB-Farbenkreis (siehe Abbildung 4.2) herangezogen. Er besagt, ob es sich zum Beispiel um einen Blau-, Grün- oder Gelbton han- delt. Der Grauanteil einer Farbe wird durch die Sättigung bestimmt. Wird beispielsweise die Sättigung verringert, so erhöht sich der Grauanteil. Bei keiner Sättigung erscheint jede Farbe als Grau. Farben mit nur einem sehr geringem Sättigungsgrad bezeichnet man auch als trübe Farben. Erhöht man den Sättigungsgrad, so erscheint eine Farbe reiner. Für den Begri Helligkeit gilt folgendes: Ohne Helligkeit wird jeder Farbton zu Schwarz, und mit maximaler Helligkeit wird jeder Farbton zu Weiÿ.[8]

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.2: HSB-Farbenkreis

Abbildung 4.2 zeigt einen Snapshot aus CorelDraw r○ der einen Quer- schnitt des HSB-Zylinders, auch HSB-Farbenkreis genannt, darstellt. Der markierte Farbpunkt hat dabei die Koordinaten H = 0, S = 0 und B = 0. Im Kreis können dabei die Werte für H (Winkel im Farbenkreis) und S (Abstand vom Mittelpunkt) dargestellt werden; die Gröÿe B wird auf dem Balken daneben dargestellt.

Umwandlung von RGB nach HSB

Um bei der Bildanalyse möglichst unabhängig von den Beleuchtungsein- üssen aus der Umgebung zu sein, wird das Bild vom RGB- in das HSB- Farbmodell umgewandelt. Das HSB-Modell eignet sich wesentlich besser da- für, gleiche Farben unter unterschiedlicher Beleuchtung als gleich zu identi - zieren, als das RGB-Modell. Der in Abbildung 4.3 beschriebene Algorithmus zeigt die Umrechnung eines Bildpunktes von RGB nach HSB.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.3: Umwandlung von RGB nach HSB (HSV)[7]

4.1.3 Schritt 3: Sliding Window Analyse

Um die Richtung zu bestimmen, in die der Roboter seine Fahrt fortsetzen soll, muss die Linie im Bild gefunden, und deren Lage ermittelt werden. Die zwei wesentlichen Parameter sind Winkel und O set der Linie. Unter O set versteht man die horizontale Abweichung der Linie von der Bildmitte.

Um die Lage der Linie zu bestimmen, muss nicht das ganze Bild durchsucht werden. Unter der Annahme, dass der Abschnitt der Linie, der sich im aktuellen Bildbereich be ndet gerade ist, wird die Analyse auf den oberen und den untere Bildrand beschränkt. Es werden also nur die beiden Endpunkte des in Bild sichtbaren Linienabschnitts ermittelt.

Um beispielsweise die x-Koordinate der Linie am oberen Bildrand zu er-

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.4: Sliding Window

mitteln läuft ein Sliding Window von n × n Pixel so wie in Abbildung 4.4 dargestellt von links nach rechts entlang des oberen Bildrandes pixelweise über das ganze Bild. Die Farbwerte (HSB) des jeweiligen Quadrats werden gemittelt und mit de nierten Schwellwerten für Farbton und Sättigung verglichen. Auf diese Weise wird ermittelt, ob sich das Sliding Window gerade auf der Linie be ndet oder nicht.

Die Mitte aller Sliding Windows die auf der Linie liegen ergeben die obere Linienkoordinate xtop. Das gleiche Verfahren wird am unteren Bildrand an- gewendet um die Koordinate xbottom zu bestimmen. Abbildung 4.5 zeigt, wie aus diesen beiden Koordinaten die wesentlichen Parameter Winkel und O - set berechnet werden. height und width stehen für die Höhe und die Breite des Bildes in Pixel.

Abbildung in dieser Leseprobe nicht enthalten

4.2 Fuzzy Logic für die Roboternavigation

Um den Roboter auf Kurs zu halten, wird ein Fuzzy System mit MamdaniInferenz verwendet. Das System hat zwei Eingänge und einen Ausgang. In der Fuzzy-Aggregation wird das logische und durch den Minimum-, das logische oder durch den Maximum-Operator repräsentiert. Für die Implikation wird ebenfalls das Minimum, und für die Akkumulation das Maximum verwendet. Defuzzi ziert wird nach der Schwerpunktmethode.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.5: Winkel und O set der Linie

4.2.1 Input Fuzzy Sets

Die zwei Input-Fuzzy-Sets des Systems (siehe Abbildung 4.6) beschreiben die linguistischen Variablen Angle (Winkel) und O set (Versatz, Abweichung von der Bildmitte). Beide Werte kommen als Ergebnis aus der Bildanalyse. Die linguistischen Terme für den Angle sind: farneg, neg, zero, pos, farpos ; und für O set: farleft, left, centre, right, farright.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.6: Fuzzy Input Variable: Winkel and O set

4.2.2 Output Fuzzy Sets

Das Fuzzy-System liefert als Ergebnis die Richtung, die der Roboter ein- schlagen soll (siehe Abbildung 4.7). Die linguistischen Terme der Variable direction (Richtung) heiÿen: lefter, left, straight, right, righter. Das Ergebnis liegt im Intervall [−100, 100], und beschreibt Richtungen von stark nach links bis stark nach rechts.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.7: Fuzzy Output Variable: Richtung

4.2.3 Fuzzy Regeln

Folgende fünf Fuzzy-Regeln werden verwendet um den Roboter entlang der Linie zu navigieren.

- IF angle IS farneg OR o set IS farleft THEN direction IS righter
- IF angle IS neg OR o set IS left THEN direction IS right
- IF angle IS zero OR o set IS centre THEN direction IS straight
- IF angle IS pos OR o set IS right THEN direction IS left
- IF angle IS farpos OR o set IS farright THEN direction IS lefter

4.2.4 Navigationsfunktion

Das oben beschriebene Fuzzy-Inferenz-System (FIS) beschreibt die Funktion:

f (angle , o set ) = direction

Abbildung 4.8 zeigt eine gra sche Repräsentation dieser Navigationsfunk- tion.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 4.8: Navigationsfunktion

4.2.5 Ergebnistransformation

Der Ausgabewert des Fuzzy-Systems ist eine reelle Zahl im Intervall [−100, 100].

Der Roboter wird vom Mikrocontroller über zwei vorzeichenlose 8-Bit-Integerwerte gesteuert. Ein Wert gibt die Geschwindigkeit des rechten, der andere die des linke Motors an. 0 bedeutet Stillstand, 255 maximale Geschwindigkeit. Daraus ergibt sich folgender Zusammenhang zwischen Richtung (directi- on ) und Geschwindigkeit der einzelnen Motoren (speedL und speedR):

Abbildung in dieser Leseprobe nicht enthalten

Falls beispielsweise die Richtung 0 ist (geradeaus), werden nach obiger Formel beide Motoren gleich, und zwar mit 255 (Maximalgeschwindigkeit) angesteuert. Bei einer Richtung kleiner als 0 (nach links) behält der rechte Motor Maximalgeschwindigkeit bei, und der linke Motor läuft entsprechend langsamer. Bei einer Richtung gröÿer als 0 (nach rechts) ist das Verhalten genau umgekehrt.

Die Formeln liefern also die maximale Geschwindigkeit für die angegebene Richtung. Zur Verringerung der Geschwindigkeit werden beide Geschwindig- keitswerte (speedL und speedR) mit dem gleichen Faktor aus dem Intervall [0, 1] multipliziert.

Kapitel 5 Erkennung von Verkehrszeichen

Die Verkehrszeichen, die erkannt werden sollen, sind ach liegend auf der Linie positioniert (siehe Abbildung 1.1, die vom Roboter mittels Fuzzy-Logic verfolgt wird.

5.1 Finden des Verkehrszeichen und Bildtrans- formation

Die Webcam am vorderen Ende des Roboters nimmt Bilder der Linie auf. Da die Verkehrszeichen genau auf der Linie liegen, erscheint es im Bild, unmittelbar bevor der Roboter es passiert.

Sobald das Verkehrszeichen vollständig im Bild zu sehen ist, muss es für die Verarbeitung in einem neuronalen Netzwerk aufbereitet werden. Dafür sind einig Transformationsschritte notwendig, die im Folgenden beschrieben werden.

5.1.1 Schritt 1: Drehen

Abbildung 5.1 zeigt das Bild so, wie es von der Kamera übermittelt wird. Das Verkehrszeichen ist in seiner Lage genau nach der Linie ausgerichtet. Folglich ist es Bei jedem Winkel der Linie ungleich 0 verdreht im Bild zu sehen. Um diese Schie age zu korrigieren wird das gesamte Bild um den Winkel der

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.1: Originalbild

Linie (Wert α in Abbildung 4.5) gedreht. Die Linie ist dann genau senkrecht im Bild, und das Verkehrszeichen ist gerade ausgerichtet. Des Ergebnis dieser Drehung ist in Abbildung 5.2 dargestellt.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.2: Bild nach der Drehung

5.1.2 Schritt 2: Ausschneiden des Verkehrszeichens

Nachdem das Bild nun in der gerade gerichtet ist, muss die genaue Position und die Gröÿe des Verkehrszeichens ermittelt werden. Dazu wird - genau wie zur Identi zierung der Linie - ein Sliding-Window-Verfahren verwendet. Diesmal wird das gesamte Bild zeilenweise analysiert. Es werden die extremen (oberster, unterster, linkster, rechtester) roten Punkte im Bild gesucht (siehe Abbildung 5.3). Es wird vorausgesetzt, dass im Bild auÿerhalb des Verkehrszeichens keine roten Punkte existieren.

Das Verkehrszeichen wird im nun exakt ausgeschnitten. Das Ergebnis dieses Schrittes ist in Abbildung 5.4 zu sehen.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.3: Extremstellen des Verkehrszeichens

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.4: Ausgeschnittenes Verkehrszeichen

5.1.3 Schritt 3: Gröÿe normieren

Wie in Abbildung 5.4 ersichtlich, ist der ausgeschnittene Teil des Bildes kein Quadrat, sondern ein Rechteck. Folglich ist das Verkehrszeichen selbst auf- grund der Kameraposition stark verzerrt. Der Grad der Verzerrung ist unter- schiedlich, je nachdem wie weit der Roboter noch von dem Verkehrszeichen entfernt ist.

Um die weitere Verarbeitung zu vereinfachen werden alle aufgenommenen Bilder auf eine Standardgröÿe von 20 x 20 Pixel, wie in Abbildung 5.5 dargestellt, normiert.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.5: Gröÿennormiertes Verkehrszeichen

5.1.4 Schritt 4: Entfärben

In diesem Schritt wird das Farbbild aus Abbildung 5.5 zu einem Bild aus Grauwerten reduziert. Die Standardtransformation bringt nur ein mäÿig gutes Ergebnis, da nicht das volle Spektrum an verfügbaren Grauwerten ausgereizt wird. Je nach Lichtverhältnissen liegen die Werte in einem anderen Bereich. Doch nie werden alle 256 Grauwerte verwendet.

Um unabhängig von den Lichtverhältnissen und geringfügigen Farbun- terschieden in den Verkehrszeichen vergleichbare Bilder als Input für das neuronale Netz zu erhalten, werden alle Werte so normiert, dass der gesamte Wertebereich von 0 bis 255 verwendet wird. Das hellste Pixel erhält dann den Wert 255 (weiÿ), das dunkelste den Wert 0 (schwarz), auch wenn ihre Werte im Originalbild wesentlich näher beieinander liegen. Die Werte aller anderen Pixel liegen entsprechend linearer Transformation dazwischen. In der folgenden Transformationsformel beschreibt h den Wert des hellsten und d der Wert des dunkelsten Pixels des Quellbildes. Die Variable w steht für den Wert des jeweils zu Bildpunktes vor, das Ergebnis w′ ist der Wert des Pixels nach der Transformation.

Abbildung in dieser Leseprobe nicht enthalten

Alle Aufnahmen des Verkehrszeichens liefern nach diesen Umwandlungsschritten, unabhängig von Lichtverhältnissen, annähernd das gleiche Ergebnis. Bildstörungen werden stark reduziert.

Abbildung in dieser Leseprobe nicht enthalten

Abbildung 5.6: Input für das neuronale Netz

Das so erstellte Bild ist der Input für das das neuronale Netz, in diesem Fall eine Self-Organizing-Map nach Tuevo Kohonen.

5.2 Klassi zierung der Verkehrszeichen mittels neuronalem Netz

In diesem Projekt werden drei verschiedene Verkehrszeichen verwendet, zwei Geschwindigkeitsbeschränkungen (30 und 50) und ein Stopp-Schild. Da das gleiche Verkehrszeichen unter verschiedenen Bedingungen (z.B. wechselnde Lichtverhältnisse, unterschiedliche Kameraposition) verschiedene Bilder lie- fert, gestaltet sich die Identi zierung des Verkehrszeichen schwierig. Mittels der oben beschriebenen Bildtransformationsschritte werden gleiche Zeichen zwar annähernd gleich, aber keineswegs identisch, dargestellt.

Um die aufgenommenen Bilder trotz dieser Unterschiede richtig einer der drei Kategorien von Verkehrszeichen zuzuordnen, wird eine SOFM nach Tue- vo Kohonen , verwendet. Die SOFM ist eine Methode des unüberwachten Lernens. Das Netz wird erst mehrmals mit einer erheblichen Anzahl un- terschiedlicher Aufnahmen der Verkehrszeichen trainiert. Mit der Zeit be- kommt das System ein Gefühl für die Gleichheiten und die Unterschiede der einzelnen Bilder und ist in der Lage, die wesentlichen Charakteristika der drei verschiedenartigen Verkehrszeichen zu erkennen. Ähnliche Inputvek- toren (Bilder von Verkehrszeichen) werden auf die selbe Region der SOFM abgebildet. Die Bilder werden in maximal so viele Kategorien eingeteilt, wie das Kohonen-Netzwerk Neuronen besitzt. Da in diesem Fall drei verschiede- ne Verkehrszeichen existieren, wird ein Netzwerk mit genau drei Neuronen erstellt.

Nachdem das Netz ausreichend trainiert wurde, kann es im Produktivbetrieb eingesetzt werden. Ab diesem Zeitpunkt ändern sich die Eigenschaften des Netzes nicht mehr, das Lernen ist also abgeschlossen. Wird nun ein neues Bild dem ausgelernten Netz übergeben, so ermittelt dieses, in welche der im Lernprozess identi zierten drei Kategorien das Bild am besten passt. In der Software des Roboters ist hinterlegt, welche Aktion bei welcher Kategorie von Verkehrszeichen auszuführen ist.

Die Implementierung erfolgte mit Hilfe der Neural Network Toolbox in MATLAB®. Die Dimension der SOFM ist [1 3], also eine Matrix mit einer Spalte und drei Zeilen (drei Neuronen). Nach dem Lernprozess wird also jede Art von Verkehrszeichen auf ein bestimmtes der Neuronen - dem jeweiligen Winner-Neuron abgebildet. Die Distanz zwischen zwei benachbarten Neuronen ist mit 1 festgelegt. Der Inputvektor hat die Dimension 400. Das ergibt sich aus der Gröÿe des Bildes von 20 × 20 Pixel.

Kapitel 6 Schlussfolgerungen

Die Überlegungen zu Beginn dieser Arbeit haben gezeigt, dass das Pro- blem des Navigierens entlang einer Linie unter Verwendung der Fuzzy-Logic durch nur wenige einfache Regeln in natürlicher Sprache (IF-THEN-Rules) beschreiben.

Bei der Identi kation der Verkehrszeichen wurde nach einer Möglichkeit gesucht, Verkehrszeichen zu unterscheiden, ohne deren Aussehen de nieren zu müssen. Das wurde durch Verwendung der SOFM nach Tuevo Kohonen erreicht. Durch erlernen vieler unterschiedlicher Fotos von Verkehrszeichen erkennt das System selbständig Unterschiede und Gemeinsamkeiten der ein- zelnen Bilder. Immer, wenn es darum geht visuelle Daten zu kategorisieren, sollte ein Kohonen-Netzwerk als Lösungsmethode in Betracht gezogen wer- den.

Durch die KI-Methoden FL und SOFM war es möglich, mit vergleichsweise geringem Modellierungsaufwand ein System erscha en, das unter Laborbedingungen das gewünschte Ergebnis liefert. Anfängliche Schwierigkeiten durch wechselnde Lichtverhältnisse und qualitativ minderwertige Hardware konnten durch Verwendung des HSB-Farbmodells und entsprechendes Tuning des Fuzzy-Systems beseitigt werden.

Denkbare Erweiterungen für das System wären etwa Funktionen zur In- teraktion mit anderen Robotern, wie etwa Abstand halten, Überholen, oder das befolgen von Vorrangregeln an Kreuzungen. Weiters könnte die Navi- gation, die derzeit rein auf FL basiert, durch Kombination mit adaptiven Systemen, wie etwa neuronalen Netzen oder genetischen Algorithmen, weiter verbessert werden. Die Basis für die Navigation wäre dann weiterhin ein Fuzzy-System, das auf Regeln aufbaut, die dann durch Erfahrung vom Roboter selbst optimiert werden.

Bei der Suche nach Einsatzgebieten der Erkenntnisse aus dieser Arbeit sollten die beiden Bereiche Navigation entlang einer Linie und Erkennen von Verkehrszeichen gesondert betrachtet werden.

In vielen Krankenhäusern sind die Wege zwischen hochfrequentierten Ab- teilungen durch farbige Linien am Boden gekennzeichnet. Diese dienen dazu, den Patienten den Weg zu weisen. Nach genau diesem System könnte ein Roboter etwa Proben aus dem Labor in die entsprechende Abteilung trans- portieren. Vorteil der Navigation entlang einer Linie ist, dass bei Verände- rung des Kurses lediglich die Linie verlegt werden muss und die Software am Roboter unverändert bleibt.

Nach entsprechender Adaptierung könnte ein ähnliches System auch ge- nutzt werden und ein Fahrzeug auf einer Autobahn selbständig lenken zu lassen. Natürlich wäre dabei das Risiko bei einer Fehlnavigation aufgrund der hohen Geschwindigkeiten enorm. Schwierig würde sich sicher auch die Bilderkennung gestalten, besonders in der Nacht oder bei schlechten Wit- terungsverhältnissen. Auch schlechte oder mehrdeutige Bodenmarkierungen könnten Probleme verursachen. Als Vorstufe zur selbständigen Navigation würde sich anbiete, ein Warnsystem zu entwickeln. Dieses könnte ein akus- tisches Warnsignal von sich geben, wenn es bemerkt, dass das Fahrzeug von seiner Fahrspur abzukommen droht. So könnten etwa schwere Unfälle, ver- ursacht durch Sekundenschlaf, vermieden werden.

Aufbauend auf die in dieser Arbeit beschriebene Verkehrszeichenerkennung wäre es denkbar, Geschwindigkeitswarner für KFZ zu entwickeln, indem man das System mit dem Tachometer des Fahrzeugs koppelt. Auch hier sehe ich die groÿen Schwierigkeiten in der Bilderkennung in der Nacht oder bei schlechten Witterungsverhältnissen. Auch das heraus ltern der wirklich relevanten Verkehrszeichen aus einem Schilderwald im städtischen Bereich ist eine besondere Herausforderung.

Anhang A Source Code

In diesem Kapitel sind die wesentlichen Teile des Source-Codes zu nden. Die Routinen habe ich in M®, der in MATLAB® integrierten Programmier- sprache, geschrieben. Neben den Standardfunktionen von MATLAB® wurde auch auf Funktionalitäten folgender MATLAB ® - Toolboxes zurückgegriffen:

- MathWorks Fuzzy-Logic Toolbox
- MathWorks Neural Network Toolbox
- MathWorks Image Processing Toolbox

A.1 robot.m

robot.m ist das Hauptprogramm der gesamten Verarbeitung. Ein Bild wird von einer Kamera eingelesen und analysiert. Zuerst wird eine Linie gesucht. Die Lagekoordinaten der Linie werden an ein Fuzzy-System weitergegeben, welches die Werte für die Ansteuerung der Motoren des Roboters ermittelt. Zusätzlich wird das Bild nach einem Verkehrszeichen durchsucht. Wird eines gefunden, wird es transformiert und an eine SOFM übergeben um es zu identi zieren. Je nach Verkehrszeichen werden die zuvor vom Fuzzy-System ermittelten mit einem Faktor zwischen 0 und 1 angepasst. Die so ermittelten Motorgeschwindigkeiten werden mittels DCP an dem Mikrocontroller am Roboter übergeben.

Die in diesem Programm aufgerufenen Routinen getlinepos.m und ndsign.m werden in den nächsten Kapiteln beschrieben.

Listing A.1: robot.m

Abbildung in dieser Leseprobe nicht enthalten

A.2 getlinepos.m

getlinepos.m durchsucht das gesamte Bild zeilenweise mittels Sliding Win- dow nach einem Farbbereich, der innerhalb der übergebenen Schwellwerte liegt.

Listing A.2: getlinepos.m

Abbildung in dieser Leseprobe nicht enthalten

A.3 ndsign.m

ndsign.m Durchsucht das gesamte Bild zeilenweise mittels Sliding Win- dow nach einem Farbbereich, der innerhalb der übergebenen Schwellwertes liegt. Im wesentlichen wird das Bild Zeile für Zeile unter Verwendung der Funktion getlinepos.m durchlaufen. Als Ergebnis liefert die Funktion die Ko- ordinaten des Verkehrszeichens, falls sich eines im Bild be ndet.

Listing A.3: ndsign.m

Abbildung in dieser Leseprobe nicht enthalten

Literaturverzeichnis

[1] Berger W., Grosse S., Lugauer U. (2004). Beschreibung ei- nes Kohonen Netzwerkes Zur Verwendung von Muster Erkennung (Kohonen-Feature-Map). FH Regensburg. Internet http://rfhs8012.fh- regensburg.de/saj39122/begrolu/nn1.html

[2] Callan R. (2003). Neuronale Netze im Klartext. Verlag Pearson Studi- um, ISBN 382737071X.

[3] Cawsey A. (2003). Künstliche Intelligenz im Klartext. Verlag Pearson Studium, ISBN 382737068X.

[4] Cao J., Hall E., Liao X. (1999). Reactive Navigation for Auto- nomous Guided Vehicle Using the Neuro-fuzzy Techniques. Center for Robotics Research, ML 72, University of Cincinnati. Internet http://robotics.uc.edu/pdfdocs/spiejin/jin99.pdf

[5] Chen R. L. (1993). A Fuzzy Inference Design on Hewlett-Packard Logic Synthesis System. HP Laboratories Palo Alto External Research Pro- gram. Internet http://www.hpl.hp.com/techreports/93/HPL9370.pdf

[6] Dabrowski A. (2002). The Turtle Principle. Internet http://www.atrox.at/robots/inetturtle/index.html

[7] EasyRGB (2004). Color Conversion Formulas. Internet http://www.easyrgb.com/math.php?MATH=M20#text20

[8] Fellner W. (1991). Computergra k. BI-Wissenschaftsverlag, Mann- heim/Leipzig/Wien/Zürich, 2. Edition

[9] Fischli S. (2004). Neuronale Netze: Backpropagation und Kohonen. Ber- ner Fachhochschule. Internet http://www.hta-be.bfh.ch/ schli/kur- se/eduswiss/nnet/skript.pdf

[10] Halter B. (2003). Autonomous Robot. Final Year Project, University of Derby.

[11] Honkela T. (1998). Description of Kohonen's Self-Organizing Map. In- ternet http://www.mlab.uiah. / timo/som/thesis-som.html

[12] Iovine J. (2000), PIC Microcontroller Project Book. McGraw-Hill Pu- blishing Co., ISBN 0071354794.

[13] Kaehler S. D. (2003). Fuzzy Logic − An In- troduction. Seatlle Robotics Society. Internet http://www.seattlerobotics.org/encoder/mar98/fuz/ _part1.html

[14] Kohonen T. Self-organized formation of topologically correct feature maps Biological Cybernetics, Vol. 43 (1982), S. 59 - 69

[15] Kohonen T. (1995), Self-Organizing Maps. Springer Series in Informa- tion Sciences, Vol. 30, Springer, Berlin, Heidelberg, New York.

[16] Krantz B. (2002). A Crisp Introduction to Fuz- zy Logic. Computer Science Education Lab, Univer- sity of Colorado At Boulder. Internet http://www- ugrad.cs.colorado.edu/cs3202/papers/Brigette_Krantz.html

[17] Müller L. (2003). Colour Detection. Assignment report for the module Ärti cial Neural Nets and Expert Systems", University of Derby.

[18] Ng K. C., Trivedi M. M. (1998). A Neuro-Fuzzy Controller for Mobile Robot Navigation and Multirobot Convoying, IEEE. Internet http://cvrr.ucsd.edu/aton/publications/pdfpapers/Nif-T_98.pdf

[19] Pawlikowski S. (1999). Development of a Fuzzy Logic Speed and Steering Control System For an Autonomous Vehic- le. University of Cincinnati, Master of Science Research Project, Department of Mechanical Engineering. Internet http://robotics.uc.edu/theses/theses1998/pawlikowski.pdf

[20] Real Robots Magazin, Ausgabe 3 (2003), Eaglemoss International Ltd 2001.

[21] Sprut (2004). Die Nutzung des 10-Bit PWM. Internet http://www.sprut.de/electronic/pic/grund/pwm.htm

[22] Stelzer R. (2003)(a). Digital Eye for Neuro-Fuzzy Robot Navigation. Assignment report for the module Arti cial Neural Nets and Expert Systems , University of Derby.

[23] Stelzer R. (2003)(b). FuzzyWeb: A Web-Based Approach to Fuzzy System Design. Final Year Project, University of Derby. Internet http://fuzzyweb.atrox.at/FuzzyWeb.pdf

[24] The Mathworks (1995). Fuzzy Logic Toolbox - For Use with MATLAB. The Mathworks. Internet http://www.mathworks.com/access/helpdesk/help/pdf_doc/fuzzy/ fuzzy_tb.pdf

[25] The Mathworks (2003). The MathWorks Product Family. The Mathworks Inc. http://www.mathworks.com/products/prodoverview.shtml (2003)

[26] TU Dresden (2004). Farbmodelle / Farbtiefe. Internet http://www.tu- dresden.de/urz/bilddtp/Theorie/body_theorie.html

[27] Tzafestas S. G., Zikidis K. C. (1997). A 3-Level Neuro-Fuzzy Autonomous Robot Navigation System, Intelligent Robotics and Automation Laboratory, National Technical University of Athens, Greece. Internet http://www.cds.caltech.edu/conferences/related/ ECC97/proceeds/751_1000/ECC754.PDF

Abkürzungsverzeichnis

Abbildung in dieser Leseprobe nicht enthalten

Index

Abbildung in dieser Leseprobe nicht enthalten

Ende der Leseprobe aus 36 Seiten

Details

Titel
Autonome Roboternavigation mittels Methoden der künstlichen Intelligenz - TEIL 2
Veranstaltung
Dipl.-HTL-Ing. EDV und Organisation
Autor
Jahr
2004
Seiten
36
Katalognummer
V109137
ISBN (eBook)
9783640073207
Dateigröße
1136 KB
Sprache
Deutsch
Anmerkungen
Den ersten Teil der Arbeit finden Sie unter http://www.hausarbeiten.de/faecher/hausarbeit/inc/24935.html
Schlagworte
Autonome, Roboternavigation, Methoden, Intelligenz, TEIL, Dipl, Organisation
Arbeit zitieren
Roland Stelzer (Autor:in), 2004, Autonome Roboternavigation mittels Methoden der künstlichen Intelligenz - TEIL 2, München, GRIN Verlag, https://www.grin.com/document/109137

Kommentare

  • Noch keine Kommentare.
Blick ins Buch
Titel: Autonome Roboternavigation mittels Methoden der künstlichen Intelligenz - TEIL 2



Ihre Arbeit hochladen

Ihre Hausarbeit / Abschlussarbeit:

- Publikation als eBook und Buch
- Hohes Honorar auf die Verkäufe
- Für Sie komplett kostenlos – mit ISBN
- Es dauert nur 5 Minuten
- Jede Arbeit findet Leser

Kostenlos Autor werden