Kombination von Inertialsensoren und GPS zur Navigation

Transcription

Kombination von Inertialsensoren und GPS zur Navigation
Kombination von Inertialsensoren
und GPS zur Navigation
Diplomarbeit
von
Jonas Hoffmann
am Institut für Informatik
des Fachbereichs Mathematik und Informatik
Freie Universität Berlin
Erstgutachter:
Zweitgutachter:
Prof. Dr. Raúl Rojas
Dr. Daniel Göhring
Betreuende Mitarbeiter:
Dipl.-Inform. Tinosch Ganjineh
Dipl.-Inform. Fabian Wiesel
Ich erkläre hiermit, dass ich die vorliegende Arbeit selbständig verfasst und keine
anderen als die angegebenen Quellen und Hilfsmittel verwendet habe.
Berlin, den 17. August 2010
Anmerkungen
Alle Abbildungen wurden von mir selbst erstellt oder sind frei von Lizenzen (public
domain), sofern keine Quellenangabe in der Bildunterschrift vorhanden ist.
Begriffe, die fett gedruckt sind, werden im Glossar erläutert.
Inhaltsverzeichnis
1 Einleitung
1.1 Das Projekt Autonome Fahrzeuge
1.1.1 Spirit of Berlin . . . . . .
1.1.2 Projekt AutoNOMOS . .
1.2 Zielsetzung der Arbeit . . . . . .
1.3 Gliederung der Arbeit . . . . . .
an der FU
. . . . . .
. . . . . .
. . . . . .
. . . . . .
Berlin
. . . .
. . . .
. . . .
. . . .
.
.
.
.
.
2 Grundlagen
2.1 Navigation . . . . . . . . . . . . . . . . . . . . . . . .
2.1.1 Geschichte der Navigation . . . . . . . . . . .
2.1.2 Globale Navigationssatellitensysteme (GNSS)
2.1.3 GPS-Technik . . . . . . . . . . . . . . . . . .
2.1.4 Differential-GPS . . . . . . . . . . . . . . . .
2.1.5 Echtzeitkinematik (RTK) . . . . . . . . . . .
2.2 Hardware und Sensoren . . . . . . . . . . . . . . . .
2.2.1 Beschleunigungssensoren . . . . . . . . . . . .
2.2.2 Gyroskope . . . . . . . . . . . . . . . . . . . .
2.2.3 MEMS-Sensoren . . . . . . . . . . . . . . . .
2.3 Weltmodell und Fahrzeugdynamik . . . . . . . . . . .
2.3.1 Koordinatensysteme . . . . . . . . . . . . . .
2.3.2 Bezugssyteme . . . . . . . . . . . . . . . . . .
2.4 Quaternionen . . . . . . . . . . . . . . . . . . . . . .
2.5 Richtungskosinusmatrix . . . . . . . . . . . . . . . .
2.6 Kalman-Filter . . . . . . . . . . . . . . . . . . . . . .
2.6.1 Lineares Kalman-Filter . . . . . . . . . . . . .
2.6.2 Erweitertes Kalman-Filter . . . . . . . . . . .
2.6.3 Unscented Kalman-Filter . . . . . . . . . . . .
2.6.3.1 Vorhersage . . . . . . . . . . . . . .
2.6.3.2 Update . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
3 Analyse
3.1 Problemstellung, Anforderungen und Randbedingungen
3.2 Existierende Lösungsansätze . . . . . . . . . . . . . . .
3.2.1 Existierende Arbeiten . . . . . . . . . . . . . . .
3.2.2 Zustandsraum und dynamisches Modell . . . . .
3.2.2.1 Übergangsfunktion . . . . . . . . . . .
3.2.2.2 Beobachtungsfunktion . . . . . . . . .
3.2.3 Ergebnisse und Vergleich mit weiteren Arbeiten
3.3 Schlussfolgerungen . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
1
1
2
3
4
4
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7
7
7
8
10
10
11
12
12
13
13
14
14
14
15
17
17
17
19
19
21
21
.
.
.
.
.
.
.
.
23
23
24
24
24
25
26
26
27
vi
Inhaltsverzeichnis
4 Hardware
4.1 Die Hardwareplattform IMU6 . . . . . . . . . . . . . . .
4.1.1 Technische Daten . . . . . . . . . . . . . . . . . .
4.1.2 Aufbau und Funktionsweise . . . . . . . . . . . .
4.2 Versuchsaufbau im autonomen Fahrzeug . . . . . . . . .
4.2.1 Einbau und Anschluss an das vorhandene System
4.3 Schlussfolgerungen . . . . . . . . . . . . . . . . . . . . .
5 Software
5.1 Firmware der Hardwareplattform .
5.1.1 Aufbau und Funktionsweise
5.1.2 Nachrichtenformat . . . . .
5.2 Kalman-Filter, Orocos-Modul . . .
5.2.1 Bestandteile . . . . . . . . .
5.2.2 Ein-/Ausgabemodul . . . .
5.2.3 Kalman-Filter-Modul . . . .
5.2.4 Übergangsfunktion . . . . .
5.2.5 Beobachtungsfunktion . . .
5.3 Zusammenfassung und Resultate .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
29
29
29
31
32
32
33
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
35
35
35
36
37
37
37
38
38
40
41
6 Evaluierung
6.1 Evaluierung der Sensorqualität . . . . . . . . . . . . . .
6.1.1 GPS-Daten . . . . . . . . . . . . . . . . . . . .
6.1.2 Gyroskopdaten . . . . . . . . . . . . . . . . . .
6.1.2.1 Gierrate . . . . . . . . . . . . . . . . .
6.1.2.2 Nick- und Rollrate (X-/Y-Gyroskope)
6.1.3 Accelerometerdaten . . . . . . . . . . . . . . . .
6.2 Ergebnisse der Filterung . . . . . . . . . . . . . . . . .
6.2.1 Teststrecke . . . . . . . . . . . . . . . . . . . .
6.2.2 Ergebnisse . . . . . . . . . . . . . . . . . . . . .
6.2.3 Ersatz der X- und Y-Gyroskope . . . . . . . . .
6.3 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
43
43
43
45
45
46
46
48
48
48
49
51
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
7 Zusammenfassung und Ausblick
53
A Anhang: Unscented Kalman-Filter Pseudocode
A.1 Initialisierung . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2 Vorhersage . . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.2.1 Berechnung der Sigma-Punkte . . . . . . . . . . . . .
A.2.2 Anwendung der Übergangsfunktion auf Sigma-Punkte
A.2.3 Berechnung von Mittelwert und Kovarianz . . . . . .
A.3 Beobachtung . . . . . . . . . . . . . . . . . . . . . . . . . . .
A.3.1 Berechnung der Sigma-Punkte . . . . . . . . . . . . .
A.3.2 Anwendung der Übergangsfunktion auf Sigma-Punkte
A.3.3 Berechnung von Mittelwert und Kovarianz . . . . . .
A.3.4 Korrektur . . . . . . . . . . . . . . . . . . . . . . . .
55
55
55
55
56
56
56
56
57
57
57
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
Literaturverzeichnis
59
Glossar
64
Abbildungsverzeichnis
1.1
Das autonome Fahrzeug Spirit of Berlin . . . . . . . . . . . . . . . .
2
1.2
Das Team AutoNOMOS mit autonomem Fahrzeug Made in Germany
3
2.1
Ein Sextant zur astronomischen Navigation . . . . . . . . . . . . . . .
8
2.2
Positionsbestimmung mittels Pseudoranging (2D) . . . . . . . . . . .
9
2.3
Nutzung von DGPS mit Referenzstation . . . . . . . . . . . . . . . . 11
2.4
Klassisches Kreiselinstrument (Gyroskop) . . . . . . . . . . . . . . . . 13
2.5
Aufbau und mikroskopische Struktur eines MEMS-Gyroskops . . . . . 14
2.6
Lokale und Weltkoordinatensysteme . . . . . . . . . . . . . . . . . . . 15
2.7
Fahrzeugkoordinaten, Winkel und ENU-Koordinaten . . . . . . . . . 16
2.8
Vorhersage- und Updateschritt beim Kalman-Filter . . . . . . . . . . 17
2.9
Systemmodell des Kalman-Filters . . . . . . . . . . . . . . . . . . . . 18
2.10 Funktionsprinzip des UKF (aus [VDMWa04]) . . . . . . . . . . . . . 20
4.1
Oberseite der IMU6-Platine mit Beschriftung der Komponenten . . . 30
4.2
IMU6-Aufbau im Schema . . . . . . . . . . . . . . . . . . . . . . . . . 31
4.3
Schema des Datenflusses zwischen den Komponenten im Fahrzeug . . 32
5.1
Zustände des in der Firmware implementierten Automaten . . . . . . 36
5.2
Aufbau des Nachrichtenformats . . . . . . . . . . . . . . . . . . . . . 36
5.3
Auszug aus den vom IMU6-Modul übertragenen Nachrichten . . . . . 37
5.4
Berechnungen zum Positionsupdate . . . . . . . . . . . . . . . . . . . 40
6.1
GPS-Evaluation auf Strecke 1 . . . . . . . . . . . . . . . . . . . . . . 44
6.2
GPS-Evaluation auf Strecke 2 . . . . . . . . . . . . . . . . . . . . . . 44
6.3
Vergleich des Z-Achsen-Gyroskop der IMU6 mit Referenzsystem . . . 46
6.4
Drift der Gyroskope . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
viii
Abbildungsverzeichnis
6.5
Ausschnitt aus Sensordaten des Z-Achsen-Beschleunigungsmessers . . 47
6.6
Teststrecke für die Evaluation des Kalman-Filters . . . . . . . . . . . 48
6.7
Resultate des Filters bei der Lokalisierung . . . . . . . . . . . . . . . 49
6.8
Fehler des Filters in Position und Geschwindigkeit . . . . . . . . . . . 50
1. Einleitung
Den Wunsch oder die Notwendigkeit für Menschen sich fortzubewegen gibt es seit
Anbeginn der Menschheit. Mindestens ebenso alt ist auch das Bedürfnis nach Orientierung.
Die Grundlage für die Navigation im Allgemeinen bildet die möglichst genaue Bestimmung von Position, Geschwindigkeit und Ausrichtung eines Objekts. Dabei handelt es sich meist um Flugzeuge, Fahrzeuge, Schiffe oder Fußgänger.
Navigationsgeräte für PKW sind erst seit etwa 10 Jahren zu erschwinglichen Preisen
auf dem Markt erhältlich und dennoch bereits zu Alltagsgegenständen avanciert, die
für viele nicht mehr wegzudenken sind.
In der vorliegenden Arbeit liegt der Schwerpunkt auf der präzisen Lokalisierung mittels globaler Navigationssatellitensysteme und auf der Integration von
Inertialsensoren zur Verbesserung der Genauigkeit und Überbrückung von Empfangsausfällen, im Speziellen im Kontext der Entwicklung eines autonom fahrenden
PKW.
Autonome Fahrzeuge sind gleich aus mehreren Gründen ein besonders interessantes
Anwendungsgebiet der Informatik. Sie vereinen die verschiedenen Unterdisziplinen
der Künstlichen Intelligenz wie kaum ein anderes Forschungsgebiet. Von ComputerVision und 3D-Sensoren über 2D-Bildverarbeitung bis hin zu reaktivem Verhalten,
Wegplanung und intelligentem, energiebewusstem Fahren. Es gibt dabei Herausforderungen zu lösen, die in viele Bereiche sowohl der theoretischen und praktischen
Informatik als auch der Regelungstechnik, Elektrotechnik und Physik reichen.
Sich autonom zu bewegen bedeutet auch für ein Fahrzeug, dass es sich in einer Umgebung zurechtfindet und sich orientieren kann, die Kenntnis um die eigene Position
ist dafür essentiell.
1.1
Das Projekt Autonome Fahrzeuge an der FU
Berlin
Diese Arbeit entstand im Projekt Autonome Fahrzeuge der AG Künstliche Intelligenz an der Freien Universität Berlin.
2
1. Einleitung
Das Projekt unter Leitung von Prof. Dr. Raúl Rojas beschäftigt sich schon seit
vielen Jahren mit der Thematik und entwickelt seit 2006 das autonome Fahrzeug
Spirit Of Berlin 1 , welches im Fall dieser Arbeit zugleich als Versuchsträger und
Referenzsystem dient.
Die Hauptarbeit am Projekt fließt dabei in die Softwareentwicklung auf Basis des
Robotik-Frameworks (OROCOS2 ) ein. Dazu werden Module entwickelt, die im Zusammenspiel die Integration der umwelterfassenden Sensorik, Verhaltenssteuerung
und Aktorik steuern.
Die Beschäftigung mit autonomen Fahrzeugen entstand ursprünglich durch die Arbeit an einem thematisch verwandten Projekt. Bereits 1998 wurden am Fachbereich
Informatik der Freien Universität autonome Roboter entwickelt und gebaut, mit denen seitdem sehr erfolgreich in verschiedenen Ligen und an diversen Meisterschaften
im Roboterfußball, dem RoboCup, teilgenommen wurde.
1.1.1
Spirit of Berlin
Im Jahr 2006 wurde damit begonnen, ein autonomes Fahrzeug zu entwickeln, den
Spirit of Berlin. Mit diesem Fahrzeug wurde 2007 erfolgreich an der DARPA Urban Grand Challenge teilgenommen, seitdem wird seine Entwicklung kontinuierlich
weiter vorangetrieben.
Abbildung 1.1: Das autonome Fahrzeug Spirit of Berlin vor der Teilnahme an der
DARPA Urban Grand Challenge 2007
Der Spirit of Berlin, kurz SpoB, ist ursprünglich ein behindertengerecht umgerüsteter Dodge PKW. Die gesamte Aktorik: Pedale für Bremse und Gas, Schaltung und
Lenkstangenmotor lassen sich elektronisch ansteuern. Er besitzt außerdem diverse
1
2
http://robotics.mi.fu-berlin.de/
http://www.orocos.org/
1.1. Das Projekt Autonome Fahrzeuge an der FU Berlin
3
Lasersensoren für den Nah- und Fernbereich, verschiedene Kameras, sowie ein Applanix POS LV220 -GPS mit einer IMU (Inertial Measurement Unit: ein elektronisches
Gerät, bestehend aus Inertialsensoren) und einem Odometer. Dieses GPS dient
bei der Evaluation der in dieser Arbeit vorgestellten Plattform und Filterung als
Hochpräzisionssystem.
Alle Sensordaten laufen in einem zentralen Server zusammen, auf dem eine modifizierte Variante des OROCOS Real Time Toolkit läuft. Hierbei handelt es sich um
ein Framework, welches die Steuerung und Kommunikation von Threads in Echtzeit
ermöglicht. Die entwickelten Module für den Empfang von Sensordaten, Verarbeitung, Verhalten, Entscheidungsfindung und Aktorik laufen als unabhängige Threads,
die untereinander über Ports Daten austauschen.
1.1.2
Projekt AutoNOMOS
Die bisher erreichten Ergebnisse und Erfahrungen werden seit 2010 in dem vom
Bundesministerium für Bildung und Forschung geförderten Projekt AutoNOMOS 3
genutzt. Die finanzielle Unterstützung konnte dazu verwendet werden, ein von Grund
auf fürs autonome Fahren konzipiertes Auto zu entwickeln und zu realisieren.
Der Made in Germany ist ein VW Passat, der auf den ersten Blick nicht von einem
regulären PKW zu unterscheiden ist. In die Karosserie sind jedoch umwelterfassende Sensoren integriert. Im Kofferraum befinden sich große Teile der Technik, und
durch aufwendige Elektronik lassen sich von einem Computer aus umfangreiche Informationen über den Zustand des Fahrzeugs abfragen und nahezu alle Funktionen
steuern.
Außerdem konnten durch die Unterstützung des BMBF Stellen geschaffen werden,
die es ermöglichen, mit zusätzlicher personeller Unterstützung die Weiterentwicklung
und den Weg zu autonomen Fahrzeugen im alltäglichen Straßenverkehr voranzubringen.
Abbildung 1.2: Das Team AutoNOMOS mit autonomem Fahrzeug Made in Germany
3
http://autonomos.inf.fu-berlin.de/
4
1. Einleitung
Auch die Software wird ständig weiterentwickelt und enthält inzwischen umfangreiche Verbesserungen und Neuentwicklungen aufgrund der Erkenntnisse aus zahllosen
fahrerlosen Feldversuchen.
1.2
Zielsetzung der Arbeit
Die Aufgabe bestand in der Konzeption, Implementation und Evaluierung eines
Filters zur Integration von Sensordaten, um die aktuelle Position, Orientierung und
Geschwindigkeiten eines Fahrzeugs zu ermitteln.
Von der Firma Hella Aglaia Mobile Vision GmbH, einem Automobilzulieferer und
Anbieter von Komponenten für Fahrerassistenzsysteme, wurde eine Hardwareplattform zur Verfügung gestellt, bestehend unter anderem aus einem GPS-Modul,
Inertialsensoren und einem Mikroprozessor. In Abschnitt 4.1 wird diese Platine
genauer vorgestellt.
Das Interesse der Firma besteht hauptsächlich darin, die Nutzbarkeit dieser Plattform als Quelle für ein von ihr entwickeltes Spurhaltesystem (Lane Departure Warning - LDW) zu evaluieren. Dem Projekt wurde seitens der Firma neben der IMU6Hardware ein solches Spurhaltesystem, bestehend aus Mono-Kameras (INKA) mit
Fusionsbox und einem PC-System mit Softwareumgebung (Cassandra), zur Nutzung im Fahrzeug zur Verfügung gestellt.
Dabei werden als Eingabeparameter für das Spurhaltesystem die genaue Geschwindigkeit und die Gierrate des Fahrzeugs benötigt und zwar insbesondere auch bei
eingeschränktem oder nicht vorhandenem GPS-Empfang. Diese Daten müssten sonst
über eine teure und aufwendige Anbindungen an den CAN-Bus des Fahrzeugs bezogen werden.
Diese Hardwareplattform wurde ohne laufende Firmware ausgeliefert, es war lediglich eine Beispielsoftware, bestehend aus Treibern und einem kleinen Demoprogramm, vorhanden, durch das rudimentärer Zugriff auf die Sensoren erfolgen konnte. Ein Teil der Vorarbeit bestand demnach in der Entwicklung einer Firmware,
welche die Daten von GPS und Inertialsensoren ausliest und mit Zeitstempeln
und Prüfsummen versieht und danach in Echtzeit über die serielle Schnittstelle des
Moduls ausgibt. Genauer beschrieben wird die Funktionsweise dieser Firmware in
Kapitel 5.1.
Es stellte sich beim Programmieren der IMU6-Plattform schnell heraus, dass durch
diverse Fehler in den Treibern und auch im Hardwarelayout der Platine diese Entwicklung einen erheblichen Anteil an der Gesamtarbeit in Anspruch nehmen würde.
1.3
Gliederung der Arbeit
Zunächst wird auf die Grundlagen der Arbeit eingegangen. Dazu gehört die
Funktionsweise von globalen Navigationssatellitensystemen und die der beteiligten
Inertialsensoren. Es werden außerdem die zugrunde liegenden Koordinatensysteme und die Lagerepräsentation durch die Quaternion beschrieben. Desweiteren wird
die Theorie des Kalman-Filters und seiner nichtlinearen Varianten erklärt.
Im darauf folgenden Kapitel 3 wird die Problemstellung und Zielsetzung genauer
erörtert. Anschließend werden die bereits existierenden Lösungsansätze vorgestellt,
miteinander verglichen und der eigenen Vorgehensweise gegenübergestellt.
1.3. Gliederung der Arbeit
5
Im 4. Kapitel geht es um die verwendete Hardware sowie deren Einsatz und Aufbau
im Versuchsträger. Das Kapitel 5 beschäftigt sich mit der Konzeption und Implementierung der Softwarekomponenten. Dabei geht es einerseits um die Firmware,
die auf der verwendeten Hardwareplattform läuft, und andererseits um die Softwaremodule, die für die Integration der Daten zuständig sind und um das verwendete
Framework.
Danach werden die verschiedenen durchgeführten Tests des Systems vorgestellt, deren Ergebnisse ausgewertet und ein Fazit gezogen.
Auf dieses Kapitel folgt eine kurze Zusammenfassung und ein Ausblick auf die Fortführung des Projekts und auf weitergehende Arbeiten.
6
1. Einleitung
2. Grundlagen
In diesem Kapitel wird zunächst auf die Grundlagen der satellitenbasierten Navigation allgemein eingegangen. Danach werden speziell die Funktionsweise des Navstar-GPS erläutert und die verschiedenen Verfahren zur Verringerung der auftretenden Fehler angesprochen.
In weiteren Kapiteln werden die Inertialsensoren einzeln vorgestellt und deren
Funktion erklärt. Anschließend wird das verwendete Weltmodell1 dargestellt und im
letzten Abschnitt die Theorie und Varianten des Kalman-Filters beschrieben.
2.1
2.1.1
Navigation
Geschichte der Navigation
Schon immer haben die Menschen den Verlauf der Sonne, des Mondes und der Sterne beobachtet, um dadurch Rückschlüsse auf ihre Umwelt zu ziehen. Auch zur Bestimmung der eigenen Position und zum Abschätzen von Richtungen und Zeiten
wurden seit jeher die Bahnen der Himmelskörper herangezogen. Zum Beispiel kann
durch die Bestimmung des Winkels zwischen Polarstern und Horizont leicht auf
den Breitengrad geschlossen werden. Bedeutende Instrumente für derartige Winkelbestimmungen waren beispielsweise die eingesetzten Oktanten oder Sextanten, wie
in Abbildung 2.1 dargestellt. Besonders wichtig wurden diese Techniken durch die
stetig zunehmende Bedeutung der Seefahrt.
Bei dieser sogenannten astronomischen Navigation wurden jedoch auch unter Idealbedingungen kaum Genauigkeiten unter einigen Kilometern erreicht. Das änderte
sich erst mit der Verfügbarkeit genauer Uhren und der Einführung von Kurzwellenfunk, mit dem ein exaktes Zeitsignal auch auf Schiffen empfangen werden konnte.
Seit der griechischen Antike wird auch das Erdmagnetfeld genutzt, um Himmelsrichtungen mit Hilfe von Magnetnadeln bzw. der heutigen Kompasse zu bestimmen.
Es wurden nach und nach Tabellen, Karten und Geräte entwickelt, um die Zusammenhänge darzustellen und diese zum Navigieren zu nutzen.
1
Modell, welches die dynamischen Eigenschaften der Umgebung beschreibt
8
2. Grundlagen
Indexspiegel
verdunkelte Gläser
Horizontspiegel
Teleskop
Rahmen
verdunkelte
Gläser
14
0
0
13
0
10
12
0
Winkelskala
110
100
30
90
80
70
60
20
50
Alhidade
Lupe
Mikrometer-Trommel
Klemme
Abbildung 2.1: Ein Sextant, wie er in der Seefahrt etwa seit dem 18. Jahrhundert
eingesetzt wird (Quelle: Wikimedia Commons, bearbeitet von Arne Nordmann, Original von Joaquim Alves Gaspar)
In den letzten Jahrzenten wurden diese natürlichen Navigationsquellen in vielen Bereichen mehr und mehr durch technische Hilfsmittel ersetzt, weil die Genauigkeit der
optischen Verfahren häufig nicht mehr ausreichend war oder weil sie nicht mit den
oftmals computergestützten und automatisierten Verfahren Schritt halten konnte.
Ein Hauptgrund und die treibende Kraft für die Einführung satellitenbasierter Navigationssysteme war natürlich auch der Bedarf des Militärs an präziser Lokalisierung
und an genauen Kartendaten.
2.1.2
Globale Navigationssatellitensysteme (GNSS)
Ziel der Lokalisierung mittels Navigationssatelliten ist es, die eigene Position im dreidimensionalen Raum zu bestimmen, in der Regel dargestellt als geografische Breite,
Länge und Höhe. Desweiteren lässt sich die Eigengeschwindigkeit des Empfängers
durch den Doppler-Effekt auch direkt aus den Satellitensignalen ableiten.
Anfang der 1960er Jahre, nicht lange nachdem die ersten Satelliten überhaupt in eine
Erdumlaufbahn geschickt worden waren, entwickelte die John-Hopkins-Universität
im Auftrag der US Navy bereits das erste satellitenbasierte Navigationssystem mit
dem Namen SPUTNIK. Damals mit einer Genauigkeit von etwa 200 Metern. Hier
erfolgte auch die Lokalisierung noch durch Ausnutzung des Doppler-Effekts.
Die zur Navigation genutzten Satelliten sind mit genauen Atomuhren ausgestattet. Beispielsweise befinden sich in GPS-Satelliten Rubidium-Atomuhren mit Abweichungen von maximal 1 Sekunde in 10.000 Jahren. Die aktuelle Position der
2.1. Navigation
9
Satelliten kann berechnet werden, da sie fortwährend ihre eigenen Bahndaten zum
Empfänger senden.
Hätte der Empfänger nun auch eine genaue Uhr, könnte er die Laufzeiten von drei
Satelliten bestimmen, dadurch auf die Entfernungen schließen und somit durch klassische Triangulation die eigene Position ermitteln.
Jede Signallaufzeit zu einem Satelliten steht für seine Entfernung und beschreibt die
Oberfläche einer Kugel um den Satelliten als Mittelpunkt. Dort, wo sich die Oberflächen dreier Kugeln schneiden, befände sich die Empfängerposition. (Das Verfahren
wird auch Trisphäration genannt.) In der Regel schneiden sich diese drei Kugeln in
zwei Schnittpunkten, einer der Punkte liegt aber viele Kilometer über der Erdoberfläche und kann somit ausgeschlossen werden.
Die Uhr im Empfänger ist in der Regel keine Atomuhr, allein schon wegen der Größe
und Kosten einer solchen, sondern eine einfache Quarzuhr. Diese ist etwa 100.000mal ungenauer als eine typischerweise in Satelliten eingesetzte Atomuhr und daher
gibt es zusätzlich zu den drei Unbekannten Länge, Breite und Höhe noch eine vierte
unbekannte Variable, die Abweichung der Empfängeruhr ∆t.
Die gemessenen Laufzeiten und somit Entfernungen der Satelliten sind also um genau diese Differenz von den realen Entfernungen abweichend und werden deshalb
auch Pseudoentfernungen genannt. Eine Abweichung der Empfängeruhr von nur
0,01 Sekunden würde dabei schon einen Fehler in der Distanz in Höhe von 3.000
km bedeuten. Aus diesem Grund sind für die endgültige Bestimmung der Position
mindestens vier Satelliten erforderlich.
r1
S1
dt
r2
P
S2
r3
S3
Abbildung 2.2: Positionsbestimmung mittels Pseudoranging (2D)
In Abbildung 2.2 ist der Sachverhalt für den zweidimensionalen Fall veranschaulicht.
P ist die reale Position des Empfängers. Die gemessenen Pseudoentfernungen sind
10
2. Grundlagen
hier rot gestrichelt dargestellt. Die beiden Entfernungen zu S1 und S2 weichen um
ein unbekanntes ∆t von der realen Entfernung ab und schneiden sich deshalb hier
gar nicht. Die reale Entfernung wird hier durch grüne Kreise dargestellt.
Durch Hinzunahme eines dritten Satelliten S3 lässt sich ∆t bestimmen, geometrisch
hier durch einen roten Kreis dargestellt, der die Kreise mit r1, r2 und r3 berührt.
Der Mittelpunkt dieses Kreises ist die gesuchte Position P. Dieses Verfahren wird als
Pseudoranging oder auch Hyperbelortung bezeichnet. Analog dazu funktioniert das
Pseudoranging im dreidimensionalen Raum mit Kugeloberflächen statt Kreisen.
Das am weitesten verbreitete globale Satellitennavigationssystem ist heutzutage das
Navstar-GPS, das ursprünglich für militärische Zwecke entwickelte und weiterhin
genutzte System des US-Verteidigungsministeriums. Weitere Systeme sind das russische GLONASS und das chinesische COMPASS, welches sich ebenso wie das europäische GALILEO Programm im Aufbau befindet. Im Folgenden wird hier immer
vom Navstar-GPS ausgegangen und meist die Kurzform GPS verwendet.
2.1.3
GPS-Technik
Die jeweils mindestens 24 Satelliten des Navstar-GPS umkreisen die Erde in 6 Umlaufbahnen mit jeweils 4 Satelliten in 20.200 km Höhe und senden ihre Signale auf
den Trägerfrequenzen L1 bei 1575,42 Mhz und L2 bei 1227,6 MHz. Zusätzlich befinden sich zurzeit 4 Reservesatelliten in einer Umlaufbahn. Die übermittelten Daten
auf den Frequenzen bestehen aus dem C/A-Code (engl. Coarse Aquisition) und dem
verschlüsselten, der militärischen Nutzung vorbehaltenen P(Y)-Code [HWLW08].
Der C/A-Code wird auch PRN-Code (Pseudo Random Noise) genannt und ist eine
deterministische Folge aus 1023 Bits, die jede Millisekunde übertragen werden. Das
entspricht also einer Bitfrequenz von 1,023 Mhz. Dabei identifiziert eine Bitfolge
den jeweiligen Satelliten immer eindeutig. Die Signale der unterschiedlichen Satelliten werden auf der gleichen Frequenz mittels Codemultiplexverfahren übertragen.
Dabei kommen als Spreizcodes die sogenannten Gold-Folgen zum Einsatz, welche die
Trennung der unterschiedlichen Signale vereinfachen, weil die einzelnen Gold-Folgen
zueinander jeweils nahezu orthogonal stehen. Die gleiche Folge wird im Empfänger
erzeugt und soweit um einen Verzögerungswert verschoben, bis die beiden Signale
korrekt übereinander liegen. Man spricht dabei auch von der Synchronisation der
Signale.
Auf den C/A-Code werden die Daten mit 50 Bit/s aufmoduliert. Diese bestehen
aus den drei Teilen: Uhrzeit des Satelliten, Ephemeridendaten und Almanachdaten.
Die Almanachdaten dienen dazu, alle zu einem Zeitpunkt sichtbaren Satelliten zu
bestimmen und enthalten Informationen über die globale Konstellation des GPSSystems. Sie erleichtern somit das Finden“ von Satelliten nach einem Neustart des
”
Empfängers und werden von diesem meist intern zwischengespeichert. Die Ephemeridendaten sind erforderlich, um den aktuellen Satelliten zu verfolgen, und beinhalten
genaue Informationen über seine Umlaufbahn und Abweichungen. Die Uhrzeit des
Satelliten ist, wie bereits beschrieben, die Grundbedingung, um dessen Entfernung
und somit die eigene Position zu bestimmen.
2.1.4
Differential-GPS
Der Fehler in der ermittelten Laufzeit des Signals von einem Satelliten setzt sich aus
drei Teilen zusammen:
2.1. Navigation
11
• Fehler im Satelliten: Uhr- und Bahnabweichungen, relativistische Einflüsse
• atmosphärische Störungen: Ionosphären- und Troposphäreneinflüsse
• Fehler im Empfänger: Uhrabweichung und ungenaue Synchronisation
Durch die Laufzeitmessungen aller Satelliten an ortsfesten Referenzstationen mit
bekannter Position können die satellitenabhängigen Fehler und die atmosphärischen
Einflüsse größtenteils bestimmt werden. Die Abweichungen der gemessenen Laufzeiten (Pseudoentfernungen) von den aus der bekannten Eigenposition eigentlichen
Laufzeiten werden als Korrekturwerte an den Empfänger übermittelt (siehe Abbildung 2.3).
S3
S2
S4
S1
Δ1-Δ4
Rover
Referenzstation
Abbildung 2.3: Nutzung von DGPS mit Referenzstation
Es gibt dabei grundsätzlich die Möglichkeiten der Übertragung über Funk oder
über das Internet. Funk kann in dem Fall bedeuten, dass die Korrektursignale von
Langwellen- oder Kurzwellensendern, per GSM oder über geostationäre Satellitensysteme, sogenannte SBAS (Satellite Based Augmentation Systems), ausgestrahlt
werden. Das europäische SBAS-System heißt EGNOS und die US-amerikanische
Variante WAAS. Der Empfang für diese beiden Korrektursysteme ist in vielen
modernen GPS-Empfängern bereits implementiert. Zusätzlich gibt es kommerzielle
Anbieter von Korrekturdaten über geostationäre Satelliten, wie beispielsweise der
OmniSTAR-Dienst der niederländischen Firma Fugro. Die Korrektursignale ermöglichen eine Verbesserung der Positionsgenauigkeit von etwa 10-20 Metern bis auf
wenige Meter. Dabei hängt die erreichbare Genauigkeit direkt von der Entfernung
zwischen Referenzstation und Empfänger ab.
2.1.5
Echtzeitkinematik (RTK)
Als Echtzeitkinematik wird eine spezielle Variante des Differential-GPS bezeichnet,
welche nicht die GPS-Nachrichten, also C/A-Codes, sondern die Trägerfrequenz des
Signals zur Synchronisierung nutzt. Genau wie bei D-GPS werden hier auch ständig
die Pseudoentfernungen durch Korrekturdaten von einer oder mehreren Basisstationen verbessert. Theoretisch ist die hierbei erreichbare Genauigkeit im Vergleich
12
2. Grundlagen
zu D-GPS um denselben Faktor größer, um den auch die Trägerfrequenz größer als
die Nachrichtenfrequenz ist.
Die erreichte Positionsgenauigkeit ist bei allen GPS-Verfahren stark abhängig davon,
wie genau der Empfänger sich auf das GPS-Signal synchronisieren kann. Angenommen, der Empfänger ist in der Lage, sich mit einer Abweichung von 1% der Bitweite
auf ein Signal zu synchronisieren, dann entspräche das bei D-GPS und einer Frequenz von 1,023 Mhz (C/A-Code) einer Ungenauigkeit von 0,01 Mikrosekunden, das
sind in Entfernung ausgedrückt etwa 3 Meter.
Wenn der Empfänger, wie beim RTK-Verfahren, die L1-Trägerfrequenz 1575,42 Mhz
zur Synchronisation nutzt, ist die theoretisch erreichbare Genauigkeit aufgrund der
Wellenlänge von 19 cm bereits 1,9 mm, wenn man wieder die Abweichung von 1% der
Bitweite annimmt. Bei RTK treten jedoch Mehrdeutigkeiten in Abständen von ganzzahligen Wellenlängen auf, die bei Verwendung des Nachrichtensignals (C/A-Code)
nicht vorhanden sind, da hier die Kodierung durch die Gold-Folgen so gewählt ist,
dass sich zwei gleiche, zeitlich versetzte Signale leicht synchronisieren lassen, und da
sich die Bitfolge aufgrund der geringeren Frequenz nicht so schnell wiederholt. Diese Mehrdeutigkeiten aufzulösen, ist eine der komplexesten Aufgaben, die moderne
GPS-Empfänger zu erfüllen haben, und kann im Einzelnen in [HWLW08] nachgelesen werden.
2.2
2.2.1
Hardware und Sensoren
Beschleunigungssensoren
Beschleunigungssensoren oder Accelerometer messen Beschleunigung in Richtung einer Achse, also die zeitliche Ableitung des Geschwindigkeitsvektors. Durch einfaches
Integrieren erhält man daraus die Geschwindigkeit und durch zweifaches Integrieren
die zurückgelegte Strecke in Richtung der Messachse des Sensors, denn die Geschwindigkeit ist ja genau die zeitliche Ableitung des Ortsvektors.
Voraussetzung für die Positionsbestimmung mit Beschleunigungssensoren ist, dass
sich die Lage im Raum nicht ändert oder genau wie die Beschleunigung zu jedem
Zeitpunkt bekannt ist. Ebenfalls müssen die Startwerte für Geschwindigkeit und
Position bekannt sein, um sich absolut positionieren zu können. Hierbei ist zu beachten, dass bei diesem Verfahren selbst kleine Messfehler, bei denen es sich nicht
um normalverteiltes Rauschen handelt, sondern um systematische Abweichungen wie
Temperaturabhängigkeit, durch die zweifache Integration so bedeutende Dimensionen annehmen, dass durch simples Aufaddieren der fehlerbehafteten Messungen in
der Praxis die bestimmten Werte und die reellen Größen schnell divergieren.
Der Aufbau eines klassischen Accelerometers (Beschleunigungsmessers) besteht
meist aus einer beweglich gelagerten Masse und einem anliegenden piezoelektrischen
Element. Durch die Beschleunigung in eine Richtung wird auf das piezoelektrische
Element eine Kraft ausgeübt und somit eine messbare Spannung erzeugt, die durch
zwei Drähte an Kontakte außerhalb des Sensorgehäuses geleitet werden. Oft integriert man drei Beschleunigungssensoren, die paarweise orthogonal zueinander stehen, in einem Gehäuse und erhält dadurch einen 3-Achsen-Sensor.
2.2. Hardware und Sensoren
2.2.2
13
Gyroskope
Gyroskope oder auch Drehratensensoren messen die Drehrate um eine oder mehrere Achsen. Gemessen wird die zeitliche Ableitung des Winkels. Durch einmaliges
Integrieren erhält man daraus den Winkel, in dem sich ein Objekt im betrachteten
Zeitraum um eine Achse gedreht hat.
Rahmen
kardanische
Aufhängung
Drehachse
rotierender
Kreisel
Abbildung 2.4: Klassisches Kreiselinstrument (Gyroskop) mit Schwungrad, Drehachse, kardanischer Aufhängung und Rahmen
Ein klassisches Gyroskop, oft auch als Kreiselinstrument oder Kreiselkompass bezeichnet, besteht aus einem sich drehenden Schwungrad, welches frei beweglich in
einem kardanischen Lager aufgehängt ist (siehe Abbildung 2.4). Das rotierende Rad
behält durch die Drehimpulserhaltung seine Lage bei, auch wenn sich die Lage der
Aufhängung ändert. Diese Lagedifferenz lässt sich an den Achsen messen.
2.2.3
MEMS-Sensoren
Sowohl Beschleunigungsmesser als auch Gyroskope können mit heutiger Technik
als sogenannte MEMS (Micro Electro Mechanical System) - Sensoren hergestellt
werden. Hierbei kommen ähnliche Verfahren wie bei integrierten Schaltkreisen zum
Einsatz. Die Siliziumwafer werden dabei auf unterschiedliche Weise belichtet, neue
Schichten aufgetragen und überflüssige Teile weggeätzt, so dass am Ende die elektromechanischen Bestandteile des Sensors übrigbleiben.
Die MEMS-Technologie hat es möglich gemacht, zu geringen Preisen sehr kleine
Inertialsensoren herzustellen.
Gyroskope, die als MEMS-Sensoren hergestellt werden, bestehen meist aus sehr kleinen Massenelementen, die in einer Achse in Schwingung versetzt werden und deren
Bewegung durch Einflüsse der Corioliskraft auf kapazitive Elemente, die in einer
horizontalen Achse angeordnet sind, gemessen wird. Man spricht auch von sogenannten Vibrationskreiseln (engl. Vibrating Structure Gyroscope). Ein Beispiel für
eine Variante eines solchen, des sogenannten Tuning-Fork“-Drehratensensors, ist in
”
Abbildung 2.5 zu sehen.
An den Ausgängen der MEMS-Bausteine liegt dann entweder eine analoge Spannung
an, die äquivalent zur Drehrate ist, oder die Spannung wird intern bereits durch einen
integrierten Analog-Digital-Umsetzer (ADU) digitalisiert. In diesem Fall ist die Auflösung und Qualität des internen Wandlers von entscheidender Bedeutung. Einige
14
2. Grundlagen
Abbildung 2.5: Aufbau und mikroskopische Struktur eines MEMS-Gyroskops (Quelle: [AlAk05])
MEMS-Sensoren haben interne Temperatursensoren, welche die Temperaturabhängigkeit, die besonders bei Gyroskopen eine entscheidende Rolle spielt, ausgleichen
können.
2.3
Weltmodell und Fahrzeugdynamik
In diesem Abschnitt folgt eine kurze Vorstellung der verschiedenen verwendeten
Koordinatensysteme und der Bezugssysteme für das dynamische Modell.
2.3.1
Koordinatensysteme
Die vom GPS gelieferten Koordinaten beziehen sich auf das WGS84-Referenzkoordinatensystem, welches die Erdoberfläche als Ellipsoid mit einer großen Halbachse
1
von etwa 6.380.000 Metern und einer Abplattung von ca. 298
modelliert. Sind diese
Werte gegeben, lassen sich beliebige Koordinaten leicht in ein kartesisches Koordinatensystem mit Ursprung im Erdmittelpunkt umrechnen.
ECEF steht für Earth-Centered Earth-Fixed und ist ein solches Koordinatensystem,
bei dem die Z-Achse zum Nordpol, die X-Achse zum Schnittpunkt von Äquator und
Nullmeridian und die Y-Achse orthogonal dazu in Richtung des Schnittpunkts von
90. östlichem Längengrad und Äquator zeigt.
Vom ECEF-System lässt sich wiederum sehr einfach in ein beliebiges lokales Koordinatensystem umrechnen (siehe Abbildung 2.6). In dieser Arbeit wird das ENUSystem verwendet. Die Buchstaben stehen für East“, North“ und Up“ und be”
”
”
zeichnen die Richtungen von X-, Y- respektive Z-Achse.
2.3.2
Bezugssyteme
Bei der Modellierung der Fahrzeugbewegung spielen verschiedene Bezugssyteme eine
Rolle. Die GPS-Koordinaten beziehen sich auf das globale Bezugssytem der Erde, die
Ausgabe erfolgt üblicherweise in Geokoordinaten oder im ECEF-Koordinatensystem
mit Ursprung am Erdmittelpunkt. Dieses erdfeste Bezugssystem nennen wir auch
earth frame. Durch die Erdrotation dreht es sich um die z-Achse gegenüber den
Fixsternen (und somit gegenüber dem inertial frame).
Die Inertialsensoren im Fahrzeug messen Beschleunigungen und Drehraten stets
relativ zum Inertial-Koordinatensystem, welches seinen Ursprung ebenfalls im Erdmittelpunkt hat, jedoch nicht mit der Erde rotiert, die Drehung der Erde wird daher
2.4. Quaternionen
15
Zecef
North
Up
East
φ
Y ecef
λ
X ecef
Abbildung 2.6: Lokale und Weltkoordinatensysteme
auch von den Drehratensensoren gemessen. Diese Koordinatensystem wird auch als
inertial frame bezeichnet.
Die zurückgelegte Strecke des Fahrzeugs bezieht sich immer auf einen festen Bezugspunkt auf der Erdoberfläche, in der Regel der Startpunkt der Messung. Dieses
Referenzsystem heißt Navigations-Bezugssystem oder auch navigation frame. Hierbei kommt das ENU-Koordinatensystem zum Einsatz.
Der body frame schließlich ist fest an das Fahrzeug gebunden und hat seinen Ursprung üblicherweise im Schwerpunkt des Fahrzeugs. Dabei zeigt die x-Achse nach
vorn, die y-Achse nach links und die z-Achse nach oben (siehe Abbildung 2.7).
Durch Translation und Rotation können wir die Bewegungen aus dem body frame
in das Navigations-Bezugssystem überführen.
2.4
Quaternionen
Die Orientierung im dreidimensionalen Raum kann dargestellt werden als eine Rotation von einem Koordinatensystem in ein anderes. Beispielsweise die Drehung des
fest ans Fahrzeug gebundenen body frame in das Navigations-Bezugssystem (navigation frame). Dabei hat die Darstellung der Rotation als Quaternion gewisse Vorteile
gegenüber einer Rotationsmatrix oder den Euler-Winkeln:
• Die Rotationsachse und -winkel lassen sich leicht bestimmen
• Die Darstellung ist kompakter als bei Rotationsmatrizen (4 statt 9 Elemente)
• Mehrere Rotationen lassen sich durch Multiplikation zu einer verketten
Eine Quaternion wird dargestellt als:
q = q0 + q1 · i + q2 · j + q3 · k
16
2. Grundlagen
RPY-Winkel
& Fahrzeugkoordinaten
z
Up
Gierwinkel
(Yaw) Ψ
z
North
y
y
Rollwinkel
(Roll) Φ
x
+Ψ
East
x
NavigationsKoordinaten (ENU)
Nickwinkel
(Pitch) Θ
Abbildung 2.7: Fahrzeugkoordinaten, Winkel und ENU-Koordinaten (Quelle: bearbeitet von Jonas Hoffmann, Original von Autor: Qniemiec, Wikimedia Commons,
Lizenz: Creative Commons Attribution-ShareAlike 3.0 unported3 )
Dabei sind q0 , q1 , q2 , q3 reelle Zahlen, und die neuen Zahlen i, j, k erweitern den Zahlenraum, ähnlich wie bei komplexen Zahlen. Dabei gilt:
i2 = j2 = k2 = i · j · k = −1
Gegeben eine Rotationsachse v̂ und Winkel σ, ist die entsprechende Quaternion q,
die diese Rotation repräsentiert, bestimmt durch:
q0
q1
q2
q3
= cos(σ/2),
= v̂1 sin(σ/2),
= v̂2 sin(σ/2),
= v̂3 sin(σ/2)
Umgekehrt kann man die Rotationsachse und den Rotationswinkel aus der QuaterT
nion-Darstellung herleiten, dabei sei q̃ = q1 q2 q3 :
σ = 2 arccos(q0 )
q̃
v̂ =
kq̃k
Die Rotation eines dreidimensionalen Vektors x erfolgt als Multiplikation mit vierdimensionalen Quaternionen durch:
0
0
· q−1
=q·
x
x′
3
http://creativecommons.org/licenses/by-sa/3.0/deed.en
2.5. Richtungskosinusmatrix
2.5
17
Richtungskosinusmatrix
Für die aktuelle Orientierungs-Quaternion q = q0 + q1 · i + q2 · j + q3 · k, welche
die Orientierung des Fahrzeugs repräsentiert, ist die Richtungskosinusmatrix Cnb
definiert als:

0, 5 − q22 − q32 q1 q2 − q0 q3
q1 q3 + q0 q2
Cnb = 2  q1 q2 + q0 q3 0, 5 − q12 − q32 q2 q3 − q0 q1 
q1 q3 − q0 q2
q2 q3 + q0 q1 0, 5 − q12 − q22

(2.1)
Sie transformiert einen Vektor aus dem body frame in den navigation frame:
xn = Cnb · b
2.6
Kalman-Filter
Das Kalman-Filter ist eine Menge von mathematischen Gleichungen, die es ermöglichen, das Fortschreiten des unbekannten Zustands eines dynamischen Systems zwischen diskreten Zeitpunkten zu schätzen. Diese Gleichungen wurden nach Rudolf E.
Kálmán benannt, der sie in seinem 1960 veröffentlichten Artikel aufstellte [Ká60].
Es tritt dabei sowohl beim Zustandsübergang, als auch bei den zu einem Zeitpunkt
beobachteten Ausgangsvariablen, den Messungen, Rauschen auf. Das Kalman-Filter
geht dabei von einer probabilistischen Gauß-Verteilung des Rauschens aus.
Vorhersage
Update
Abbildung 2.8: Vorhersage- und Updateschritt beim Kalman-Filter
Die Kenntnis über die Messfunktion und die Zustandsübergangsfunktion ermöglicht
es so, durch iterative Vorhersage- und Updateschritte auf den unbekannten Zustand
zu schließen. Im Updateschritt wird dabei jeweils die gemachte Vorhersage mit den
beobachteten Messwerten verglichen, um damit die Vorhersage zu korrigieren. Es
handelt sich hier also um ein klassisches Prädiktor-Korrektor-Modell.
2.6.1
Lineares Kalman-Filter
In Abbildung 2.9 ist das zugrunde liegende Modell des Kalman-Filters dargestellt.
Matrizen sind dabei als Quadrate dargestellt, Gauß-Verteilungen durch Mittelwert
und Kovarianzmatrix in einer Ellipse. Die restlichen Variablen sind einfache Vektoren.
18
2. Grundlagen
Zeitpunkt
k -1
k
zk
Bekannte
Größen
uk -1
F
B
uk
0, R
0, Q
H
F
B
0, R
0, Q
H
v
w
xk ,Pk
Abbildung 2.9: Systemmodell des Kalman-Filters
Die Gleichungen, die für den linearen Fall den Zustandsraum modellieren, setzen
sich zusammen aus der Übergangsgleichung:
xk = Fk xk−1 + Buk + wk
(2.2)
und der Beobachtungsgleichung:
zk = Hxk + vk
(2.3)
Die beiden Variablen wk und vk sind unabhängige Zufallsvariablen und stehen für
das Zustandsübergangsrauschen respektive das Messrauschen. Diese Zufallsvariablen
seien normalverteilt:
p(w) ∼ N (0, Q)
p(v) ∼ N (0, R)
(2.4)
(2.5)
Q und R sind dabei jeweils die Kovarianzmatrizen der Wahrscheinlichkeitsverteilungen. Im Vorhersageschritt wird aus der Wahrscheinlichkeitsverteilung zum Zeitpunkt
k − 1 der Zustand zum Zeitpunkt k vorhergesagt:
x̄k = Fk x̂k−1 + Buk−1
(2.6)
Fk P̂k−1 FTk
(2.7)
P̄k =
+Q
x̄k ist hier die a-priori-Schätzung der Zustandsvariablen, basierend auf der aktuellen Normalverteilung des Zustands N (x̂k−1 , P̂k−1 ), die wir im vorherigen Schritt
berechnet haben. P̄k ist die Kovarianzmatrix der vorhergesagten Wahrscheinlichkeitsverteilung. F und B stammen aus Gleichung 2.2.
Im Updateschritt wird der sogenannte Kalman-Gain Kk eingeführt, eine Hilfsvariable, die als Gewichtungsfaktor die Differenz zwischen Vorhersage und aktuellem
Zustand minimiert.
Kk = P̄k HT (HP̄k HT + R)−1
x̂k = x̄k + Kk (zk − Hx̄k )
Pk = (I − Kk H)P̄k
(2.8)
(2.9)
(2.10)
2.6. Kalman-Filter
19
Der aktuelle Zustand x̂k ist die Summe aus der Vorhersage x̄k und der Differenz
zwischen Messung zk und dem durch die Beobachtungsfunktion H transformierten
vorhergesagten Zustand x̄k , gewichtet durch den Kalman-Gain. Im letzten Schritt
wird analog die neue (a posteriori) Kovarianzmatrix aus der Differenz der vorhergesagten Kovarianz P̄k und der mit Kk gewichteten, durch die Beobachtungsfunktion
H transformierten Vorhersage gebildet. Die Herleitung lässt sich in [Simo06] nachschlagen.
2.6.2
Erweitertes Kalman-Filter
Oft werden Kalman-Filter dazu benutzt, um Bewegungen von Objekten vorauszusagen. Da es sich hierbei nicht immer um lineare Bewegungen handelt, wurde
das Modell erweitert, um auch nichtlineare aber differenzierbare Übergangsfunktionen zuzulassen. In der Tat handelt es sich in vielen nichttrivialen Anwendungsfällen des Kalman-Filters um nichtlineare, dynamische Prozesse. Die Erweiterung des
Kalman-Filters auf nichtlineare Fälle gelingt durch die stellenweise Linearisierung
um die Mittelwerte der Wahrscheinlichkeitsverteilungen. Um die Übergangsfunktion
stellenweise zu linearisieren, werden die Jacobi-Matrizen, also die partiellen Ableitungen der Übergangsfunktionen, zur jeweils geschätzten Verteilung ausgewertet,
man erhält dadurch eine Annäherung erster Ordnung [WaVDM00].
Eine der Hauptschwächen dieses erweiterten Kalman-Filters ist die Tatsache, dass
die Zufallsvariablen nach Anwenden der nichtlinearen Übergangs- und Messfunktionen keine Normalverteilung mehr aufweisen.
2.6.3
Unscented Kalman-Filter
Die in dieser Arbeit verwendete Variante des Kalman-Filters, das sogenannte Unscented Kalman-Filter (UKF), unterscheidet sich in einigen Aspekten vom klassischen Modell. Es basiert auf der Annahme, dass es leichter ist, eine Zufallsverteilung zu approximieren als eine beliebige nichtlineare Funktion [JUIJC04]. Das UKF
verwendet dazu eine minimale Anzahl an speziell ausgewählten Testpunkten, die
um den Mittelwert der Wahrscheinlichkeitsverteilung liegen. Auf diese sogenannten Sigmapunkte wird die nichtlineare Übergangsfunktion angewendet und aus den
transformierten Punkten der neue Mittelwert und die Kovarianz berechnet.
Dieses Verfahren wird Unscented Transformation genannt. Eine n-dimensionale Zustandsvariable x ∈ Rn mit der Kovarianz Px und dem Mittelwert x̄ wird dabei durch
die folgenden 2n+1 Sigmapunkte xi und die zugehörigen Gewichte Wi approximiert:
x0 = x̄
p
(n + k)Px )i
p
xi = x̄ − ( (n + k)Px )i−n
xi = x̄ + (
für i = 1, . . . , n
(2.11)
für i = n + 1, . . . , 2n
√
Hierbei bezeichnet ( A)i die i-te Zeile der Quadratwurzel4 aus der Matrix A.
4
Die Quadratwurzel B aus einer Matrix A ist genau die Matrix, für welche gilt: A = BB.
20
2. Grundlagen
Messdaten
Linearisiert (EKF)
Sigma−Point (UKF)
Sigmapunkte
Kovarianz
Mittelwert
´
Ý
Ý
y = g(x)
´
Ü
´
Ü
gewichteter Mittelwert
und Kovarianz
Ì
È
Ö
È
Ý
´
Ö
µ
Ü
µ
´
Ü
transformierte
Sigmapunkte
µ
wahrer Mittelwert
wahre Kovarianz
µ
µ
SP Mittelwert
Ì
Ö
È
´
Ö
µ
Ü
SP Kovarianz
Abbildung 2.10: Funktionsprinzip des UKF (aus [VDMWa04])
W0m = λ/(n + λ)
W0c = W0m + (1 − α2 + β)
Wic = Wim = 1/2(n + λ) i = 1, . . . , 2n
(2.12)
α legt die Entfernung der Sigmapunkte um den Mittelwert x̄ fest. λ = α2 (n + k) − n
ist ein Skalierungsfaktor, wobei meist k = 0 gesetzt wird. β kann variiert werden,
um möglicherweise bereits bekannte Abweichungen der Wahrscheinlichkeitsverteilung von einer Normalverteilung einfließen zu lassen. Für Gauß-Verteilungen ist
β = 2 optimal [WaVDM00].
Mit dem UKF kann man die Schwächen des erweiterten Kalman-Filters umgehen und erhält eine Annäherung dritter Ordnung anstatt erster Ordnung, während man auf die Linearisierung durch Berechnung der Jacobi-Matrixen beim EKF
verzichten kann, die bei komplexen Funktionen unter Umständen sehr aufwendig
ist[WaVDM00]. Außerdem ist es möglich, dass die Fortpflanzung des Fehlers bei einem nichtlinearen System sich ebenfalls nicht durch lineare Funktionen beschreiben
lässt. In diesem Fall kann es sein, dass die geschätzten Werte beim EKF divergieren [JUIJC04]. [JuUh97] zeigt, dass diese Annäherung dem EKF auch qualitativ
überlegen ist.
Eine Möglichkeit, das Unscented Kalman-Filter zu implementieren, ist es, den Systemzustandsraum um die Rauschkomponenten zu erweitern.
x′ k = xTk wkT vkT
(2.13)
Ebenso wird die Prozesskovarianzmatrix um die Kovarianzen der Rauschkomponenten erweitert.


P 0 0
P′ k =  0 Q 0 
0 0 R
(2.14)
2.6. Kalman-Filter
2.6.3.1
21
Vorhersage
Die nichtlineare Zustandsübergangsfunktion y = g(x) wird im Vorhersageschritt auf
die Sigmapunkte aus Gleichung 2.12 angewandt und diese werden entsprechend gewichtet. Daraus werden der neue Mittelwert x̄ und die Kovarianzmatrix P̄ berechnet.
x̄ =
P̄ =
2n
X
i=0
2n
X
i=0
2.6.3.2
Wim g(xi )
(2.15)
Wic {g(xi ) − x̄}{g(xi ) − x̄}T
(2.16)
Update
Für den Updateschritt wird analog die nichtlineare Messfunktion z = h(x) auf die
Sigmapunkte angewandt und auch hier der Mittelwert z̄ und die Messungskovarianzmatrix P̄zz gebildet.
z̄ =
2n
X
Wim h(xi )
(2.17)
P̄zz =
2n
X
Wic {h(xi ) − z̄}{h(xi ) − z̄}T
(2.18)
i=0
i=0
Zusätzlich wird noch eine Kreuzkorrelationsmatrix aus Zustand und Messung gebildet, die benutzt wird, um den Kalman-Gain K zu bestimmen.
P̄xz =
2n
X
i=0
Wic {g(xi ) − x̄}{h(xi ) − z̄}T
K = Pxz P−1
zz
(2.19)
(2.20)
Der Rest ist analog zum klassischen Kalman-Filter. Zustand und Kovarianz werden
jeweils, gewichtet durch den Kalman-Gain, basierend auf der Differenz von Vorhersage und Messung, korrigiert.
x̂ = x̄ + K(z − z̄)
P = P̄ − KPzz K
T
(2.21)
(2.22)
22
2. Grundlagen
3. Analyse
In diesem Kapitel wird die zu lösende Aufgabe noch einmal genauer beschrieben
und es wird auf die Anforderungen und Randbedingungen der Problemstellung eingegangen.
Im zweiten Abschnitt werden Arbeiten vorgestellt, die sich mit einer ähnlichen Thematik beschäftigt haben, und die dabei geltenden Randbedingungen, verwendete
Methoden und erreichte Ergebnisse diskutiert.
3.1
Problemstellung, Anforderungen und Randbedingungen
Wie bereits in Kapitel 1.2 kurz erläutert, bestand die Aufgabe darin, aus den
Sensoren- und GPS-Daten der im Fahrzeug installierten IMU6-Platine möglichst
genau die Pose zu bestimmen. Das heißt, es sollen Position, Lage im Raum und die
Geschwindigkeiten in die verschiedenen Richtungen bestimmt werden.
Dem Kooperationspartner Hella Aglaia war es dabei besonders wichtig, dass die
Längsgeschwindigkeit (Vorwärtsgeschwindigkeit) und die Gierrate bzw. Lenkwinkeländerung bestimmt werden. Diese Größen sollten als Eingabe für das zur Verfügung gestellte Spurhaltesystem (LDW) dienen.
Folgende Werte wurden seitens Hella Aglaia für die gewünschte Genauigkeit spezifiziert:
• Gierrate
0,1 Grad/s Auflösung
maximaler Fehler von 0,3 Grad/s bei 0 Grad/s tatsächlicher Bewegung,
linear steigend auf 0,5 Grad/s bei 3 Grad/s
• Geschwindigkeit
±3 km/h maximaler Fehler
24
3. Analyse
Die GPS-Antenne sollte dabei letztlich im Innenraum hinter der Windschutzscheibe
zum Einsatz kommen. Für die Tests wurde die Seitenscheibe des Spirit of Berlin
gewählt, da die Frontscheibe wegen ihrer Bedampfung die Signale stark abschwächt.
Das System sollte außerdem im Idealfall in der Lage sein, kurze GPS-Ausfälle (bis
etwa 30 Sekunden) zu überbrücken und dabei die geforderte Messgenauigkeit einzuhalten.
Zusätzlich zu den Anforderungen der Kooperationsfirma gab es eigene Anforderungen innerhalb des Projekts.
• Integration der entwickelten Software in das vorhandene, auf OROCOS basierende System
Entwicklung eines Input-/Sensormoduls für die IMU6-Platine
Entwicklung eines Kalman-Filter-Moduls
• Evaluation des verbauten GPS-Moduls und Vergleich mit dem Referenzsystem
• Evaluation der Nutzbarkeit für die Lokalisierung unabhängig vom Spurhaltesystem
3.2
3.2.1
Existierende Lösungsansätze
Existierende Arbeiten
Van der Merwe und Wan stellen in ihrem Artikel Sigma-Point Kalman Filters for
Integrated Navigation [VDMWa04] eine Möglichkeit vor, GPS- und IMU-Daten zu
kombinieren. Dabei wird eine Variante eines Unscented Kalman-Filters verwendet,
das sogenannte Sigma-Point-Kalman-Filter (SPKF). Für den verwendeten Algorithmus werden zwei mögliche Implementationen angeführt, das square-root UKF
(SRUKF) und das square-root central difference Kalman filter (SRCDKF), die sich
lediglich in der Art und Weise unterscheiden, wie die Sigmapunkte ausgewählt werden.
Als Versuchsträger kam eine Experimentierplattform auf Basis eines unbemannten
Modellhelikopters zum Einsatz, der mit einer IMU, einem 10Hz-GPS, einem barometrischen Höhenmesser und einem Embedded PC ausgestattet war.
Diese Arbeit wird hier exemplarisch angeführt, weil die anderen Autoren ähnliche
Modelle und Filter benutzten. Auf die speziellen Unterschiede in weiteren Arbeiten
wird am Ende dieses Kapitels eingegangen.
3.2.2
Zustandsraum und dynamisches Modell
Es wurde von Van der Merwe und Wan ein 16-dimensionaler Zustandsvektor benutzt, bestehend aus 3D-Position, 3D-Geschwindigkeit, 4D-Lage-Quaternion, 3DBeschleunigungsfehler und 3D-Drehratenfehler. Der Index b bei den Fehlergrößen
steht dabei für Bias.
x = pT vT qT aTb ωbT
(3.1)
3.2. Existierende Lösungsansätze
3.2.2.1
25
Übergangsfunktion
Zunächst müssen die Messungen (Beschleunigungen und Drehraten) um Rauschen
und Fehler korrigiert werden:
ā = ã − ab − wa
(3.2)
ω̄ = ω̃ − ωb − Cbn ωc − wω
(3.3)
Die Matrix Cbn = (Cnb )T ist die transponierte Richtungskosinusmatrix aus Kapitel 2.5
und transformiert einen Vektor aus dem Navigation-Frame in den Body-Frame. ωc ist
hier die durch den Coriolis-Effekt gemessene Drehrate der Erde. Sie ist eigentlich eine
Funktion des aktuellen Breitengrads, kann aber auf kurzen Strecken ohne weiteres
als konstant angenommen werden.
Position und Geschwindigkeit lassen sich durch die folgenden Gleichungen in den
Folgezustand transformieren:
pt = pt−1 + ṗt−1 · dt
vt = vt−1 + v̇t−1 · dt
(3.4)
(3.5)
und haben die Ableitungen:
ṗ = v
v̇ = Cnb ā + 0 0 g
(3.6)
T
(3.7)
g ≈ 9, 81 m/s2 ist dabei der skalare Wert der lokalen Gravitation.
Auch die Fehlervektoren ab und ωb werden nach diesem Schema transformiert, die
Ableitung ist dabei eine Gauß’sche Zufallsvariable.
Die Winkeldifferenzen für Roll-, Nick- und Gierwinkel sind ein Produkt aus der
korrigierten Drehrate ω̄ und der vergangenen Zeit dt:
∆φ = ω̄roll · dt
∆θ = ω̄pitch · dt
∆ψ = ω̄yaw · dt
(3.8)
(3.9)
(3.10)
Das Quaternion-Update geschieht folgendermaßen:
1
sin(s)
qt = I(cos(s)) − Φ∆
qt−1
2
s
1p
(∆φ)2 + (∆θ)2 + (∆ψ)2
s=
2
(3.11)
(3.12)
26
3. Analyse
wobei die schiefsymmetrische Matrix Φ∆ definiert ist als:

0
∆φ
∆θ
∆ψ
 −∆φ
0
−∆ψ ∆θ 

Φ∆ = 
 −∆θ ∆ψ
0
−∆φ
−∆ψ −∆θ ∆φ
0

3.2.2.2
(3.13)
Beobachtungsfunktion
Bei der Beobachtung fließen die Messungen des GPS-Sensors und des Höhenmessers
in die Korrektur des Filters ein. Die Gleichungen für die Beobachtungsfunktion sind:
S
pGP
= pt−k + Cnb r̃gps + wp
t
(3.14)
vtGP S
(3.15)
= vt−k +
Cnb ωt−k
× r̃gps + wv
pt−k , vt−k bezeichnen die Position und Geschwindigkeit vor k Schritten, gemessen
von der um k Zeiteinheiten zeitlich verschobenen IMU-Messung. Diese zeitliche Verschiebung um k Samples kann bei GPS-Empfängern mit geringer Latenz ignoriert
werden.
r̃gps ist die Position der GPS-Antenne relativ zu den Inertialsensoren, muss also
auf die Position addiert werden. wp und wv sind wiederum normalverteilte Zufallsvariablen, die das Messrauschen repräsentieren.
3.2.3
Ergebnisse und Vergleich mit weiteren Arbeiten
Van Der Merwe und Wan haben in ihren Experimenten deutliche Vorteile der verwendeten Lösung im Vergleich zum EKF festgestellt. Der verwendete SPKF mit
Ausgleich der GPS-Verzögerung zeigte eine Verringerung des Fehlers von über 30%
bei Position, Geschwindigkeit, Rollwinkel und Nickwinkel und eine 65%-ige Verbesserung beim Gierwinkel.
Zhang, Gu, Milios und Huynh zeigen in [ZGMH05] ebenfalls eine Integration von
IMU und GPS. Es kommt derselbe 16-dimensionale Zustandsvektor zum Einsatz
(Gleichung 3.1). Hier wurde als Versuchsträger ein PKW verwendet, der mit einem 1 Hz GPS-Empfänger, mit 20 Hz getakteter IMU und digitalem Kompass
ausgestattet war. Die Sensordaten wurden hier mit einem Wavelet-Filter vorverarbeitet. Die Autoren betonen dabei, dass die IMU nur sehr eingeschränkt Ausfälle
des GPS verkraften kann, da durch die verschiedenen Fehlereinflüsse und das Rauschen der Inertialsensoren die Richtung und Position sehr schnell von der Realität
abweichen. Es wurde jedoch auf einer kurzen Strecke auf einem Parkplatz mit GPSEmpfang ein zufriedenstellendes Ergebnis erzielt, quantifiziert wurde der Fehler,
vermutlich wegen fehlender Referenz, jedoch nicht.
In Kapitel 10 von [Wend07] findet sich ebenfalls eine Anwendung für eine Integration von IMU und GPS. Bei dem Versuchsträger handelt es sich um ein unbemanntes
Flugobjekt (UAV) mit 4 Rotoren, von denen jeweils zwei auf orthogonal zueinander stehenden Achsen angebracht sind. Diese Flugobjekte sind auch bekannt als
3.3. Schlussfolgerungen
27
Quadrokopter. Interessant an diesem Anwendungsfall ist die Umschaltung bei einem GPS-Ausfall auf ein zweites Filter, welches Position und Lage ohne die externe
Quelle des GPS schätzt. Ist der GPS-Empfang vorhanden, so werden die Sensoren
kontinuierlich kalibriert. Das Modell wurde sowohl simuliert, als auch einem praktischen Test unterzogen. Hierbei wurde eine sehr gute Lageschätzung erreicht, sofern
entweder GPS-Empfang gegeben war oder die durch die Integration der Beschleunigungsmesser entstandenen Fehler in der Lage durch Messen des Gravitationsvektors
und des Erdmagnetfelds ausgeglichen wurden.
Auch El-Sheimy und Abdel-Hamid betonen in ihrem Artikel [AHAESL06] die Problematik bei der Zustandsschätzung im Falle von GPS-Ausfällen. Das Kalman-Filter
arbeitet dabei nur im Vorhersagemodus, es gibt kein Update durch externe Messungen (GPS). Die Autoren stellen im Artikel ein Fuzzy Inference System (FIS) vor,
welches die Vorhersagen des Kalman-Filters korrigiert. Das FIS ist ein mehrschichtiges Netzwerk und basiert auf gelernten Regeln und Gewichten.
3.3
Schlussfolgerungen
Mit dem Thema der Integration von GPS und Inertialsensoren haben sich bereits einige Autoren beschäftigt, meist kam in den untersuchten Arbeiten auch ein
Kalman-Filter zum Einsatz. Die gestellte Aufgabe läuft darauf hinaus, ein KalmanFilter zu entwickeln, welches idealerweise in der Lage ist, die GPS-Position zu verbessern und Ausfälle zu kompensieren. Die dabei erreichten Ergebnisse variieren, lassen
jedoch hoffen, die gestellten Anforderungen zu erfüllen, sofern die Inertialsensoren
nicht zu stark driften und das entwickelte dynamische Modell die Realität gut widerspiegelt. Für eine direkte Umsetzung eignet sich keine der untersuchten Arbeiten,
aufgrund der unterschiedlichen Randbedingungen oder der verwendeten Methoden.
28
3. Analyse
4. Hardware
In diesem Kapitel wird die verwendete Hardwareplattform IMU6 vorgestellt und
deren Bestandteile und schematischer Aufbau dargelegt. Danach wird die Integration
in das autonome Fahrzeug Spirit of Berlin beschrieben.
4.1
Die Hardwareplattform IMU6
Die IMU6 (Inertial Motion Unit 6) ist eine von der Firma Bluetechnix im Auftrag
von Analog Devices hergestellte Entwicklungsplatine, die bereits in verschiedenen
Forschungsprojekten im Bereich Navigation zum Einsatz kam.
Sie besteht aus einer Platine mit den Abmessungen 95x55 mm, auf der ein CPUModul, ein GPS-Modul, ein digitaler Kompass, ein 3-Achsen-Beschleunigungsmesser
und 2 Gyroskope (Z-Achse und kombinierte X-/Y-Achse) verbaut sind.
Die Spannungsversorgung für das Board erfolgt über eine 2-polige Stiftleiste mit
5 Volt Gleichspannung. Auf dem Board befinden sich weitere Spannungsregler, um
die einzelnen Komponenten jeweils mit den erforderlichen Spannungen zu versorgen.
4.1.1
Technische Daten
• Prozessormodul TCM-BF537
Analog Devices Blackfin Prozessor ADSP-BF537, 500MHz
32 MB SD-RAM
8 MB Flash-Speicher
Echtzeituhr (RTC)
Spannungsregelung für Kernspannung
Schnittstellen: SPI, PPI, CAN, TWI, JTAG, Ethernet, SPORT, UART
• GPS-Modul
u-blox LEA-5T (50 Kanal GPS-/GALILEO-Empfänger)
Ausgabe im Format NMEA (ASCII) und UBX (binär)
Erreichbare horizontale Genauigkeit: <2,5 m (laut Hersteller)
30
4. Hardware
J TAGPort
Spannungsversorgung
GPSAntennenanschluss
CPU-Modul ResetTaster
UARTPort
Modulverbinder
SD-CardSlot
Z-AchsenGyroskop
I OPorts
Abbildung 4.1: Oberseite der IMU6 Platine mit Beschriftung der Komponenten. Auf
der Unterseite befinden sich weitere Sensoren und das GPS-Modul (Foto: Bluetechnix Mechatronische Systeme GmbH)
• Beschleunigungssensor
ADXL340
Hersteller: Analog Devices
3-Achsen: X, Y, Z
Auflösung: 8-Bit
Messbereich: wahlweise ± 2 g oder ± 8 g
Empfindlichkeit: 0,015625 g/LSB
• Gyroskope
ADIS16100
Hersteller: Analog Devices
Empfindlichkeit: 0,2439 Grad/LSB
1-Achse: Z (Gierrate)
Auflösung: 12-Bit für interne und externe Spannungen
Temperatursensor
zwei Eingänge für analoge Spannungen der X/Y-Achse
IDG-300
Hersteller: Invensense
2-Achsen: X,Y (Roll-, Nickrate)
analoge Spannungsausgänge
• Magnetometer
PNI11096 (PNI Corp.)
4.1. Die Hardwareplattform IMU6
31
• Schnittstellen
TTL-Level UART-Port für serielle Kommunikation als 4-pol. Pin-Header
SD-Card-Slot
diverse IO-Anschlüsse auf Micromatch-Steckverbindern
RP-SMA-Antennenanschluss für das GPS-Modul
• weitere Komponenten
drei LEDs: rot, orange, grün
Reset-Taster
4.1.2
Aufbau und Funktionsweise
Wie in Abbildung 4.2 erkennbar, sind die Inertialsensoren über einen SPI-Bus
(Serial Programming Interface) und das GPS-Modul über die zweite UART-Schnittstelle an das CPU-Modul angebunden.
Die analogen Signale des kombinierten X-/Y-Gyroskop IDG-300 sind an die AnalogDigital-Umsetzer-Eingänge des Z-Achsen-Gyroskop ADIS16100 geführt und werden
von diesem mit 12-Bit-Auflösung digitalisiert.
Es befindet sich eine JTAG-Schnittstelle zur Programmierung und zum Debugging
der Software auf der Platine. Zu diesem Zweck wurde ein USB-zu-JTAG-Debugger
(ADZS-HPUSB-ICE) mitgeliefert.
Gyro
X, Y
IDG-300
X (analog)
Magnetometer
Accelerometer
X, Y, Z
Gyro Z
& ADC
PNI11096
ADXL340
ADIS16100
ISP Bus
Y (analog)
ISP Bus
RESET
TCM-BF537
CPUModul
GPSModul
UART 1
UART 0
Abbildung 4.2: IMU6-Aufbau im Schema
Relativ früh im Verlauf des Projekts wurde ein Fehler im Schaltplan deutlich. Die
RESET-Leitung ist sowohl mit dem GPS-Modul als auch mit dem Magnetometer verbunden. Das führte dazu, dass das notwendige Schalten auf Massepotential
der RESET-Leitung zum Auslesen des Sensors (etwa 100 Mal pro Sekunde) einen
Neustart des GPS-Moduls bewirkte. Dadurch war das GPS-Modul beim simultanen
32
4. Hardware
Auslesen des Sensors nicht nutzbar. Dieser Designfehler konnte jedoch am fertigen
Modul behoben werden, indem die Verbindung der RESET-Leitung zum GPS-Modul
getrennt wurde.
4.2
Versuchsaufbau im autonomen Fahrzeug
Zunächst wurde die IMU6 allein auf diversen Testfahrten ausgiebig erprobt. Dazu wurde meist ein Notebook verwendet, welches über den USB-Port sowohl die
5-Volt-Versorgungsspannung für die Platine lieferte, als auch die Daten mitloggen
konnte. Für diesen Anschluss wurde vom Verfasser dieser Arbeit ein Adapterkabel
zur Stromversorgung hergestellt. Außerdem wurde ein Wandler vom TTL-Logiklevel
des Boards auf eine RS-232-kompatible serielle Schnittstelle aus einem Bausatz zusammengebaut und in Kombination mit einem weiteren Wandler von der RS-232Schnittstelle auf einen USB-Anschluss eingesetzt. Diese Vorarbeiten waren nötig,
weil mit der Entwicklungsplatine keinerlei Anschlusskabel mitgeliefert wurden.
4.2.1
Einbau und Anschluss an das vorhandene System
IMU 6 Board
GPS
Inertialsensoren
UART (TTL)
TTL<-> RS-232
Adapter
RS-232
(Serial Port)
Comtrol Devicemaster
RS-232 <-> Ethernet Server
Ethernet
Cassandra
LDW
Velocity Input
Yaw Rate Input
Orocos RTT
BtImu6 Modul
HellaLaneDetection
Modul
Abbildung 4.3: Schema des Datenflusses zwischen den Komponenten im Fahrzeug
Um die Platine mit dem Referenzsystems im Fahrzeug vergleichen zu können, wurde
diese in den Kofferraum des Spirit of Berlin eingebaut.
Um Störeinflüsse der umfangreichen Elektronik im autonomen Fahrzeug auf die empfindlichen Sensoren der IMU auszuschließen bzw. zu minimieren, wurde ein Trägergehäuse für die Platine aus Aluminium mit Aussparungen für die Kabel konstruiert.
Auch in diesem Aufbau wurden zunächst Testfahrten ohne Anschluss an das im
Fahrzeug laufende OROCOS-System durchgeführt.
Um letztendlich die Anbindung zu bewerkstelligen, wurde anstelle des vorher benutzten RS-232-zu-USB-Wandlers der serielle Ausgang der IMU6 an einen RS-232Ethernet-Gateway (Comtrol Device-Master ) angeschlossen, der die seriellen Daten
über einen TCP-Port zur Verfügung stellt. Die Magnetantenne für das GPS wurde
auf dem Dach des Spirit of Berlin befestigt.
Der schematische Aufbau und Datenfluss ist in Abbildung 4.3 zu sehen. Im OROCOS-Modul werden die Daten vom TCP-Port eingelesen und kontinuierlich weiterverarbeitet (siehe Abschnitt 5.2).
4.3. Schlussfolgerungen
33
Die Ausgabe der aktuellen Geschwindigkeit und Gierrate für das LDW-System
von Hella Aglaia erfolgt wiederum über einen TCP-Port. Die Software des LDWSystems (Cassandra) läuft auf einem weiteren Rechner, der über Ethernet mit dem
OROCOS-Rechner verbunden ist.
4.3
Schlussfolgerungen
Die in dieser Arbeit genutzte Hardwareplattform IMU6 lässt sich über den JTAGPort frei programmieren und ermöglicht es so, die integrierten Sensoren auszulesen
und die gewonnenen Daten über einen seriellen Port auszugeben.
Die verbaute CPU ist mit dieser Aufgabe keinesfalls ausgelastet und es wäre sogar
denkbar, das in dieser Arbeit implementierte Filter auf diese Hardwareplattform
zu portieren, wenn man auf effiziente Implementierungen der benötigten mathematischen Operationen zurückgreift und eventuell Abstriche bei der Frequenz der
Sensormessungen in Kauf nimmt.
34
4. Hardware
5. Software
Die im Rahmen dieser Arbeit geschriebene Software teilt sich auf in die Firmware
für die IMU6-Plattform und die Software-Module für das Orocos-Framework des
autonomen Fahrzeugs Spirit of Berlin.
Die Firmware für den Mikroprozessor ADSP-BF537 wurde in C geschrieben und
mit der Visual DSP IDE von Analog Devices entwickelt.
Die OROCOS-Module wurden in C++ implementiert.
5.1
5.1.1
Firmware der Hardwareplattform
Aufbau und Funktionsweise
Der Aufbau des Programms lässt sich durch einen Zustandsautomaten beschreiben,
der im Ausgabemodus die Sensoren auf der Plattform nacheinander ausliest. Dieses ist der Hauptarbeitszustand des Automaten. Die ausgelesenen Daten werden
in Nachrichten verpackt und mit einem Zeitstempel versehen. Zusätzlich wird eine
Prüfsumme berechnet und ans Ende der Nachricht angehängt.
Für die Abfrage der Daten über den SPI-Bus agiert die CPU als sogenanntes SPIMaster-Device, die Sensoren sind SPI-Slaves. Die Datenkommunikation wird dabei
durch periodisches Umschalten der SCK -Leitung durch das Master Device getaktet,
über die MOSI (Master Out Slave In)-Leitung werden Daten oder Befehle gesendet
und über die MISO (Master In Slave Out)-Leitung empfangen. Ein grundlegender
Treiber für die SPI-Kommunikation wurde mit der Hardware mitgeliefert, es waren
jedoch einige Änderungen nötig, um alle Informationen der Sensoren zuverlässig mit
hoher Datenrate abzufragen.
Die Initialisierung wurde in der Art implementiert, dass im Startzustand auf einen
Satellitenfix des GPS-Moduls gewartet wird und dann, sofern dieser vorhanden ist,
ein interner Timer auf die exakten Zeitpulse des GPS-Moduls synchronisiert wird.
Das erleichtert das spätere Auswerten der Logfiles und ermöglicht es zudem, die
Daten des Referenzsystems genau mit den aufgezeichneten Logdaten zu vergleichen.
36
5. Software
(no timepulse)
(no fix)
Synchronisieren
(fix)
(timepulse)
Warte auf
GPS-Fix
Ausgabemodus
"exit"
"command"
"command"
"toggle
SENS"
Befehsmoduis
"toggle
GPS"
"pass"
"cal"
"exit"
Kalibrieren
PassThrough
Abbildung 5.1: Zustände des in der Firmware implementierten Automaten
Im laufenden Programm kann durch einen Befehl in einen Kommandomodus gewechselt werden, in dem weitere Funktionen zur Verfügung stehen. Es kann die
Ausgabe der GPS- und Sensor-Nachrichten einzeln ausgestellt werden und in einen
Kalibiriermodus gewechselt werden, der die festen Offsets der Sensoren bestimmen
und speichern kann. In einem weiteren Modus werden alle Nachrichten direkt zum
GPS-Modul an der zweiten seriellen Schnittstelle weitergeleitet und alle von dort
kommenden Nachrichten direkt ausgegeben. Dieser Modus ermöglicht die Konfiguration des GPS-Moduls über die vom Hersteller mitgelieferte Software.
Das fertige Programm ist 145 KB groß und kann entweder direkt über JTAG in den
Flash-Speicher geschrieben oder über einen auf dem System installierten Bootloader
in den Arbeitsspeicher geladen und von dort aus gestartet werden. Die zweite Methode hat den Vorteil, dass die begrenzte Lebensdauer des Flash-Speichers dadurch
nicht reduziert wird.
5.1.2
Nachrichtenformat
Das Format der Nachrichten ist dabei ähnlich aufgebaut wie das von GPSEmpfängern bekannte NMEA-Nachrichtenformat. Nachrichten fangen dabei immer
mit einem $-Zeichen an, gefolgt von einem Nachrichtentyp-Bezeichner, es folgen beliebig viele durch Kommata separierte Nachrichtenfelder und am Ende der Nachricht
ein ∗-Zeichen, gefolgt von der Prüfsumme.
Es wurde bewusst ein Klartextformat (ASCII-Zeichensatz) verwendet, um den Datenstrom direkt mitlesen und verifizieren zu können und um es zu ermöglichen, die
GPS-Daten auch ohne Konvertierungsprogramm direkt in Standardsoftware zu verarbeiten. Das Format sieht folgendermaßen aus:
[HH:MM:SS.FFF TTT] <TYPE>: $<MSGTYPE>,<FIELD>,....*<CHKSUM>
Abbildung 5.2: Aufbau des Nachrichtenformats
5.2. Kalman-Filter, Orocos-Modul
[15:06:51.892
[15:06:51.897
[15:06:51.901
[15:06:52.096
7083692]
7083697]
7083701]
7083874]
37
SENS: $SENS,23.199498,57.997995,-22.682700,0.078125,0.000000,-1.078125,14,14,0.00000,37.93*3A
GPS: $GPGLL,5233.62154,N,01326.01603,E,130650.00,A,A*69
SENS: $SENS,23.199498,57.997995,-22.194900,0.078125,0.000000,-1.062500,12,8,0.00000,37.64*2E
GPS: $UBX0103,90,b0,43,12,03,dd,00,00,d8,39,32,00,12,fd,78,00*53,9e
Abbildung 5.3: Auszug aus den vom IMU6-Modul übertragenen Nachrichten
Dabei stehen HH, MM, SS, FF für die aktuelle Zeit in Stunden, Minuten, Sekunden,
Millisekunden. TTT steht für die vergangenen Millisekunden seit Start des Moduls.
Die Nachrichten werden mit einer Bitrate von 115.200 Bit/s, 8 Datenbits, einem
Stoppbit und ohne Parität über die serielle Schnittstelle ausgegeben. In Abbildung 5.3 ist ein Auszug der Nachrichten zu sehen.
5.2
5.2.1
Kalman-Filter, Orocos-Modul
Bestandteile
Die Softwaremodule in der OROCOS-Software bestehen aus einem Ein-/Ausgabemodul, welches Nachrichten empfängt, verarbeitet und ausgibt, und dem Kalman-Filter-Modul, welches die reine Funktion des Filterns übernimmt und damit
unabhängig vom verwendeten Modell ist. Somit kann es auch wiederverwendet und
von anderen Modulen genutzt werden. Beispielweise ist der Einsatz des Filters zum
Lernen der Gewichte eines neuronalen Netzes denkbar.
Das Kalman-Filter ist als Template implementiert, welches sich durch Angeben einer Übergangsfunktion, einer Beobachtungsfunktion und den Standardparametern
instanziieren lässt.
Die Funktionen für Zustandsübergang und Beobachtung (Messung) beschreiben
schließlich das dynamische System. Sie wurden speziell für den vorliegenden Anwendungsfall der Inertialeinheit mit GPS in einem PKW implementiert.
5.2.2
Ein-/Ausgabemodul
Das Inputmodul hat die folgenden Aufgaben:
• Empfang der Nachrichten von einem TCP-Port
• Parsen der Nachrichten
• Verifizieren der Prüfsumme
• Aufruf der Vorhersage- und Update-Funktionen des Filters
• Bereitstellen der Daten über einen Ausgabe-Port in einem zum restlichen Projekt kompatiblen Format (EgoState-Port)
Der Parser arbeitet zeichenorientiert, und kann als Zustandsautomat angesehen werden, der solange Zeichen einliest, bis entweder ein Sonderzeichen (Feldtrenner, Ende/Beginn einer Nachricht, Zeilenumbruch,...) auftritt oder die maximale Anzahl an
Zeichen überschritten wird. Wenn das passiert, oder wenn die Prüfsumme nicht verifiziert werden kann, wird die Nachricht verworfen. Als Erstes wird dabei anhand des
38
5. Software
ersten Feldes der Typ der Nachricht bestimmt und dann die relevanten Felder der
Nachricht in Variablen gespeichert. Tritt irgendwo im Datenstrom ein unerwartetes
Zeichen auf, wird der bisher gelesene Teil der Nachricht ebenfalls verworfen und in
den Anfangszustand zurückgekehrt.
Wenn die Nachricht korrekt eingelesen wurde und die nötigen Daten extrahiert wurden, kann die Funktion des Filters mit den entsprechenden Eingabedaten aufgerufen
werden.
Zuletzt wird der Zustand des Filters ausgelesen und in den Ausgabeport (EgoState)
geschrieben.
5.2.3
Kalman-Filter-Modul
Das Kalman-Filter-Modul implementiert ein Unscented Kalman-Filter ähnlich zu
dem in Abschnitt 2.6.3 beschriebenen. Der Übergang läuft dabei analog zur Beobachtung ab.
Der implementierte UKF orientiert sich am Central-Difference-Kalman-Filter
(CDKF), Hauptunterschied zu dem in Abschnitt 2.6.3 vorgestellten UKF ist, dass
der Systemzustand für beide Schritte des Filters unterschiedlich erweitert wird. Für
die Vorhersage wird der Zustand x mit dem Übergangsrauschen w und für die Beobachtung mit dem Messrauschen v erweitert (siehe Gleichung 5.1). Ebenso werden die
Kovarianzmatrizen P jeweils einzeln um die Fehlerkovarianzmatrizen Q, R erweitert
(siehe Gleichung 5.2).
xw = xT w T
Pw =
T
xv = xT v T
PT 0
0 QT
Pv =
T
PT 0
0 RT
(5.1)
(5.2)
Das macht es erforderlich, die Sigmapunkte und Gewichte jeweils einmal für die
beiden Schritte zu berechnen. Die Berechnung erfolgt dabei aber wie in den Gleichungen 2.12 und 2.13 angegeben. Auch die Vorhersage und der Updateschritt sind
analog zum Algorithmus aus Kapitel 2.6.3 implementiert.
Der komplette Pseudocode des Filters findet sich in Anhang A.
Die Messungen der Inertialsensoren dienen dabei der Vorhersage des Zustands
und werden somit in der Übergangsfunktion benutzt. Die externe Positionsbestimmung durch GPS wird dann jeweils im Updateschritt genutzt, um die Vorhersage
zu korrigieren.
Weil das GPS mit einer Frequenz von 1 Hz und die Inertialsensoren mit 100 Hz
messen, werden jeweils 100 Vorhersagen zwischen den Updateschritten getroffen.
5.2.4
Übergangsfunktion
Um die Zustandsvektoren und Kovarianzmatrizen klein zu halten, wurde nach dem
anfänglichen Experimentieren mit größeren Zuständen ein vereinfachter Zustandsvektor entworfen, der aus den folgenden 8 Dimensionen besteht:
5.2. Kalman-Filter, Orocos-Modul
39
• 2D-Position im EN(U)-Koordinatensystem p
• 1D-Vorwärtsgeschwindigkeit v
• 4D-Lage-Quaternion q
• 1D-Vorwärtsbeschleunigungsfehler baccx
x = pT v qT baccx
T
(5.3)
Die dritte (Hoch-)Koordinate im ENU-Koordinatensystem soll hier außer Acht gelassen werden, da in erster Linie die Verschiebung in lateraler und longitudinaler
Richtung interessiert und außerdem angenommen werden kann, dass sich das straßengebundene Fahrzeug vorwiegend in dieser Ebene bewegt. Es wird also von einer
Ebene für die möglichen Koordinaten des Fahrzeugs ausgegangen.
Bewusst wurde dabei auch auf das Einbeziehen der Höhe und der Geschwindigkeiten
in der seitlichen Y-Achse und der nach oben zeigenden Z-Achse verzichtet, weil die
Bestimmung dieser aufgrund einiger Schwierigkeiten mit den X- und Y-Gyroskopen
ohnehin problematisch war (mehr dazu in Abschnitt 6.1.2).
Der erweiterte Zustand enthält dabei zusätzlich zu den oben angegebenen 8 Komponenten weitere 8 Rauschkomponenten.
Als Vorbedingung für den Zustandsübergang werden die folgenden Hilfsgrößen berechnet (siehe Abbildung 5.4):
• Radius der aktuellen Lenkkurve: r =
v
gyrz
• Richtungsvektor zum Zeitpunkt t-1: d = cos(Ψ) sin(Ψ)
• Winkeldifferenz: ∆Ψ = gyrz · dt
T
• Neuer Winkel zur X-Achse: Ψ′ = Ψ + ∆Ψ
T
• Richtungsvektor zum Zeitpunkt t: d′ = cos(Ψ′ ) sin(Ψ′ )
T
• Hilfsvektor, orthogonal zur Richtung: s = d(1) −d(0) · r
T
• orthogonal zur neuen Richtung: s′ = d′ (1) −d′ (0) · r
• Positionsdifferenz: ∆p = s′ − s.
Der Zustandsübergang SimplifiedCarMotionModel::transition() wurde nach
den folgenden Übergangsgleichungen implementiert:
pt = pt−1 + ∆p
x
) ∗ dt
vt = vt−1 + (accx + bacc
t
accx
accx
bt = bt−1 + wbaccx
(5.4)
(5.5)
(5.6)
40
5. Software
North
(y)
d
d'
Δp
s'
s
-s
d
ΔΨ
p
r
Δp
Ψ
ΔΨ
Ψ'
Ψ' = Ψ + ΔΨ
d' = (cos(Ψ'), sin(Ψ'))
s = (d(1), -d(0)) * r
s' = (d'(1), -d'(0)) * r
Δp = s' - s
d'
East
(x)
Abbildung 5.4: Berechnungen zum Positionsupdate
Wobei accx dabei die gemessene Beschleunigung in der X-Achse (Vorwärtsbeschleunigung) ist.
Das Update der Quaternion q verläuft nach folgendem Schema: Es wird zunächst in
Euler-Winkel umgewandelt und die neue Quaternion mit den aktualisierten Winkeln,
gegeben durch Gyroskopmessungen mal Zeitdifferenz dt, gebildet. Veranschaulicht
durch folgendes Code-Beispiel:
vnl_double_3 rpyAngles
= q.rotation_angles();
vnl_double_3 newRpyAngles = rpyAngles + gyros * dt;
vnl_quaternion<double>
qPost(newRpyAngles);
5.2.5
Beobachtungsfunktion
Die Beobachtungsfunktion ist in SimplifiedCarPositionMeasurement::observe() implementiert und beschreibt, wie sich die GPS-Messungen aus dem um
Rauschen erweiterten Zustand zusammensetzen.
Der Messvektor xobs ist 8-dimensional und enthält die folgenden Messungen vom
GPS:
• 2D-Position im EN(U)-Koordinatensystem: pobs
• 1D-Vorwärtsgeschwindigkeit: vobs
• 4D-Lage-Quaternion: qobs
x
• 1D-Vorwärtsbeschleunigungsfehler: bacc
obs
5.3. Zusammenfassung und Resultate
x
xobs = pTobs vobs qTobs bacc
obs
41
T
(5.7)
Die Beobachtungsfunktion addiert jeweils das Messrauschen w aus dem erweiterten
Zustand zu jedem Vektor:
pobs
vobs
qobs
x
bacc
obs
= p + wp
= v + wv
= q + wq
= baccx + wbaccx
(5.8)
(5.9)
(5.10)
(5.11)
Diese Funktionen beschreiben die Annahme, dass die vom GPS-Empfänger bestimmte Position, Geschwindigkeit und Ausrichtung genau dem aktuellen Zustand plus
Messrauschen entsprechen.
5.3
Zusammenfassung und Resultate
Als Teil dieser Diplomarbeit wurden Softwaremodule entwickelt. Ein Softwaremodul läuft auf der IMU6-Platine und liest dort permanent die Sensordaten aus. Diese
Sensordaten werden in ein spezielles Nachrichtenformat verpackt und über die serielle UART-Schnittstelle der Platine ausgegeben.
Der zweite Teil der Software läuft auf dem OROCOS-System des autonomen Fahrzeugs und empfängt über TCP/IP die Nachrichten der Platine. Danach erfolgt die
Filterung der Daten mit einem für diesen Zweck entwickelten Unscented KalmanFilter, bestehend aus dem eigentlichen UKF-Algorithmus und den Übergangs- und
Beobachtungsfunktionen, die das dynamische System modellieren.
Im Verlauf der Entwicklung kam es häufig dazu, dass das Filter im Test nicht zu
einem Ergebnis kam. Dabei divergierten die Werte der Kovarianzmatrix. Vermutlich
hingen diese Fehler mit der damals unvollständigen Modellierung des recht komplexen Zustandsraummodells mit bis zu 20-dimensionalen Zustandsvektoren zusammen. Nach einer Vereinfachung auf die in diesem Kapitel beschriebenen Funktionen
und Zustände, traten diese Schwierigkeiten kaum noch auf.
42
5. Software
6. Evaluierung
Die Evaluierung setzt sich zusammen aus einem ersten Teil, in dem die Sensoren und
das GPS-Modul einzeln auf ihre Qualität hin untersucht werden, und einem zweiten
Teil, der die Ergebnisse der Integration und des implementierten Kalman-Filters
enthält.
6.1
6.1.1
Evaluierung der Sensorqualität
GPS-Daten
Um die Qualität des verbauten GPS-Moduls zu bestimmen, wurden Testfahrten unter verschiedenen erschwerten Bedingungen, im Stadtverkehr zwischen hohen Häuserfronten, unter dichtem Baumbewuchs und unter nahezu Idealbedingungen auf
dem Rollfeld des stillgelegten Flughafens Tempelhof in Berlin unternommen.
Exemplarisch sind hier zwei Testfahrten auf den von der Firma Hella Aglaia vorgeschlagenen Test-Strecken vorgestellt. Dabei befand sich die Antenne des u-blox -GPS
im Innenraum des Fahrzeugs hinter einer Seitenscheibe um dem späteren Einsatzszenario als integriertes Spurhaltesystem möglichst nahezukommen.
Die Teststrecke 1 besteht größtenteils aus Autobahn und Landstraße mit wenig
Baumbewuchs. Die Qualität des empfangenen GPS-Signals ist in Abbildung 6.1
zu sehen.
Vom GPS-Modul selbst erhielten wir die folgenden Werte für die (geschätzte) Genauigkeit auf der Strecke:
Maximaler Fehler:
4,24 m/s
Minimaler Fehler:
0,23 m/s
Mittelwert:
1,3372 m/s
Varianz:
2,4210 m/s
Standardabweichung: 1,5560 m/s
Die 2. Teststrecke führte auf der Berliner Stadtautobahn A 100 aus Neukölln kommend vorbei am Flughafen Tempelhof bis zur Seestraße in Wedding. In Abbil-
44
6. Evaluierung
fix/number of satellites/accuracy [m/s]
teststrecke1-2009-12-09+001 IMU6 GPS Status
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
fix
num. satellites
speed accuracy estimate [m/s]
0
500
1000
1500
2000
2500
3000
3500
4000
4500
5000
time [s]
Abbildung 6.1: Anzahl sichtbarer Satelliten und geschätzte Ungenauigkeit der Geschwindigkeit des GPS-Moduls auf Teststrecke 1
fix/number of satellites/accuracy [m/s]
teststrecke2-2009-12-09+001 IMU6 GPS Status
20
19
18
17
16
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
fix
num. satellites
speed accuracy estimate [m/s]
0
200
400
600
800
1000
1200
1400
time [s]
Abbildung 6.2: Anzahl sichtbarer Satelliten und geschätzte Ungenauigkeit der Geschwindigkeit des GPS-Moduls auf Teststrecke 2
dung 6.2 ist gleich zu Anfang ein langer Ausfall des GPS-Empfangs festzustellen.
Zurückführen kann man diesen Ausfall wohl auf einen 1,7 km langen Tunnel zu
Beginn der Strecke und die Schwierigkeiten, danach wieder einen Satellitenfix zu
bekommen.
Die Statistik für die vom Modul geschätzten Fehler für die 2. Teststrecke (Abschnitte
ohne GPS-Fix ausgenommen):
6.1. Evaluierung der Sensorqualität
45
Maximaler Fehler:
5,49 m/s
Minimaler Fehler:
0,33 m/s
Mittelwert:
1,4176 m/s
Varianz:
2,9473 m/s
Standardabweichung: 1,7167 m/s
Zur besseren Einschätzung der Fehler wurden dann auf einer anderen Teststrecke
mehrere GPS-Empfänger gleichzeitig geloggt und anschließend ausgewertet. Wie
man an den Ergebnissen erkennen kann, war auf dieser Strecke der Empfang sehr
gut. Es zeigten sich dabei die folgenden Abweichungen des u-blox -GPS zum Referenzsystem Applanix POS LV 220 :
Maximale Abweichung:
0,31 m/s
Minimale Abweichung:
- 0,28 m/s
Mittelwert:
0,0151 m/s
Varianz:
0,0236 m/s
Standardabweichung:
0,0809 m/s
Das zeigt, dass die Vorgaben von Hella Aglaia bezüglich der gewünschten Geschwindigkeitsgenauigkeit, zumindest unter für den GPS-Empfang guten Bedingungen, in
der Regel eingehalten werden können.
Die Ergebnisse zeigen hier, dass man zwar häufig eine gute Positionierung mit dem
u-blox -GPS erhalten kann, teilweise aber auch Totalausfälle auftreten. Es lässt sich
jedoch sehr gut anhand der eigenen Einschätzung des Moduls auf die erzielte Genauigkeit schließen und es können so von vornherein gelieferte Werte, die unzureichend
genau sind, verworfen werden.
6.1.2
Gyroskopdaten
6.1.2.1
Gierrate
Das temperaturkorrigierte Z-Achsen-Gyroskop Analog Devices ADIS16100 zeigt ohne weitere nötige Korrekturen bereits sehr wenig Drift, eine gute Genauigkeit und
zeichnet sich durch wenig Rauschen aus.
Es wurde folgende Differenz zum Testsystem auf einer unserer Teststrecken gemessen:
Maximale Abweichung:
Minimale Abweichung:
Mittelwert:
Varianz:
Standardabweichung:
1.0112◦ /sec
-1.2823◦ /sec
0.02174◦ /sec
0.05911◦ /sec
0.2431◦ /sec
Fehler des Referenzsystems in diesem Zeitraum:
Maximaler Fehler:
Minimaler Fehler:
Mittelwert:
Varianz:
Standardabweichung:
0.05774◦ /sec
0.01088◦ /sec
0.04156◦ /sec
0.00186◦ /sec
0.04315◦ /sec
46
6. Evaluierung
strasse-a-short Vergleich Z-Achsen Gyro
0.4
IMU6 Z
Applanix Z
0.35
angular rate [rad/s]
0.3
0.25
0.2
0.15
0.1
0.05
0
210
212
214
216
218
220
time [s]
Abbildung 6.3: Vergleich des Z-Achsen-Gyroskop der IMU6 mit Referenzsystem
6.1.2.2
Nick- und Rollrate (X-/Y-Gyroskope)
Das kombinierte X-/Y-Gyroskop zeigt starke Drift. Teilweise ist diese temperaturabhängig, wie man in Abbildung 6.4 gut sehen kann. Außerdem zeigt sich, dass
der Sensor der Y-Achse zudem in einem deutlich höheren Maße driftet, als jener
in der X-Achse. Jedoch bleiben auch nach Temperaturkompensation sich mit der
Zeit ändernde Fehler übrig. Zum Teil kann das darauf zurückgeführt werden, dass
sich der verwendete Temperatursensor im Z-Achsen-Gyroskop befindet, welches sich
unterschiedlich schnell erwärmt und abkühlt. Zudem befindet er sich etwas entfernt
vom anderen Gyroskop auf der Platine.
Gyroscope Test - No Motion
Gyroscope Test - No Motion
30
Gyro X
Temperature [deg Celsius] - 30
angular rate [deg/s], temperature in z-gyro [deg Celsius]-30
angular rate [deg/s], temperature in z-gyro [deg Celsius]-30
8
7
6
5
4
3
2
1
0
-1
Gyro Y
Temperature [deg Celsius] - 30
25
20
15
10
5
0
0
100
200
300
400
500
600
700
800
900
time [s]
1000
0
100
200
300
400
500
600
700
800
900
1000
time [s]
Abbildung 6.4: Drift des X-Gyroskops (links) und des Y-Gyroskops (rechts), ohne
Glättung der Rohdaten
Es wurde daraufhin zunächst sehr aufwendig versucht, die Abhängigkeit von der
Temperatur und anderen Variablen durch Fitting mit Polynomen verschiedenen
Grades zu bestimmen, was aber keine zufriedenstellenden Ergebnisse brachte. Im
Endeffekt erschien dieser Sensor als kaum nutzbar für die Anwendung.
6.1.3
Accelerometerdaten
Die Werte der Beschleunigungsmesser machten im Prinzip einen guten Eindruck,
allerdings fehlte es hier etwas an Präzision aufgrund von zu geringer Auflösung des
6.1. Evaluierung der Sensorqualität
47
Sensors. Der Sensor besitzt eine 8-Bit-Auflösung und einen Messbereich von ± 2g,
jedes Bit entspricht folglich 0,015625 g. Sowohl die diskreten Beschleunigungswerte,
als auch das Grundrauschen kann man in Abbildung 6.5 am Beispiel des Z-Achsen
Sensors gut erkennen. Hier wurde bereits geglättet, indem jeweils der Mittelwert aus
4 aufeinander folgenden Messwerten gebildet wurde.
teststrecke1-2009-12-09+001 IMU6 Acceleration
0.2
Accel. Z IMU6
Accel. Z Applanix
0.15
0.1
acceleration [m/s2]
0.05
0
-0.05
-0.1
-0.15
-0.2
-0.25
75
76
77
78
79
80
time [s]
Abbildung 6.5: Ausschnitt aus Sensordaten des Z-Achsen-Beschleunigungsmessers,
im Vergleich zur Referenz deutlich zu sehen die diskreten Stufen und das Grundrauschen. Das Fahrzeug stand im Zeitraum von 75-78 Sekunden still.
Dass dies nicht ausreicht, um kleine Veränderungen im Nick- und Rollwinkel festzustellen, lässt sich anhand der folgenden Tabelle zeigen:
Nickwinkel in
◦
0
1
2
3
4
5
10
11
X-Achse [g]
0.0000
0.0175
0.0349
0.0523
0.0698
0.0872
0.1736
0.1908
Z-Achse [g]
1.0000
0.9998
0.9994
0.9986
0.9976
0.9962
0.9848
0.9816
(1 − Z-Achse) [g]
0.0000
0.0002
0.0006
0.0014
0.0024
0.0038
0.0152
0.0184
Ein Nickwinkel von 0◦ bedeutet hier, dass das Fahrzeug völlig waagerecht steht, und
die Z-Achse des Beschleunigungsmessers orthogonal nach unten zeigt. Die Erdbeschleunigung übt dabei in Z-Richtung eine Kraft von etwa 1 g aus. Bei größerem
Nickwinkel wird die Gravitation zum Teil in der X-Achse gemessen.
Die Tabelle zeigt, dass Nickwinkel unter 10 Grad kaum durch den 8-Bit Beschleunigungsmesser in der Z-Achse detektiert werden, sich aber deutlich in der X-Achse
bemerkbar machen und so leicht für Vorwärtsbeschleunigung gehalten werden können.
48
6.2
6.2.1
6. Evaluierung
Ergebnisse der Filterung
Teststrecke
Die Teststrecke für den Test des Kalman-Filters besteht aus einem kurzen Teil im
Stadtverkehr und einer Hin- und Rückfahrt auf der Autobahn mit langgestreckter
Kurve und Tunnel, zu sehen ist die Strecke in Abbildung 6.6.
Abbildung 6.6: Teststrecke für die Evaluation des Kalman-Filters (aus Google
Earth). In Rot der Streckenverlauf, in Grün die empfangenen GPS-Positionen. Im
mittleren Streckenabschnitt der etwa 500 Meter lange Tunnel.
Auf der Fahrt wurden die Ausgaben der IMU6-Platine mitgeloggt, sowie alle Daten
des Referenzsystems. Später wurden die Daten offline gefiltert und es wurde viel
experimentiert, um optimale Parameter zu finden. Am besten arbeitete das Filter in
diesem Fall mit den Parametern α = 1, β = 0, k = 0, und somit λ = α2 (n + k) − n =
0.
6.2.2
Ergebnisse
Die erreichte Positionsgenauigkeit und vor allem auch die Geschwindigkeit wichen zu
Beginn der Messungen sehr stark von der Realität ab. Als Ursache der Fehler konnte
ermittelt werden, dass die auftretenden Nick- und Rollwinkel nicht bestimmt werden
konnten und dadurch die Einflüsse der Gravitation auf den Beschleunigungssensor
für die Längsgeschwindigkeit nicht korrigiert werden konnten. Im Endeffekt zeigte
sich ein besseres Ergebnis ohne Einbeziehung der Nick- und Rollwinkel. Diese wurden
im Modell einfach auf Null gesetzt und die X-/Y-Raten ignoriert. Die Ergebnisse sind
in der oberen Hälfte von Abbildung 6.7 zu sehen.
6.2. Ergebnisse der Filterung
49
strasse-a-short IMU6 UKF Output XY
1600
1400
y/north ENU [m]
1200
IMU6 UKF filtered
Applanix
IMU6 GPS only
1000
800
600
400
-900
-880
-860
-840
-820
-800
-780
-760
-740
-720
-700
x/east ENU [m]
strasse-a-short IMU6 UKF Output XY
1600
1400
y/north ENU [m]
1200
IMU6 UKF filtered
Applanix
IMU6 GPS only
1000
800
600
400
-880
-860
-840
-820
-800
-780
x/east ENU [m]
-760
-740
-720
-700
Abbildung 6.7: Resultate des Filters bei der 2-dimensionalen Lokalisierung im Vergleich zum Referenzsystem Applanix, oben mit den in der IMU6-Platine verbauten
MEMS-Gyroskopen, unten nach Austausch durch Applanix-Gyroskope
6.2.3
Ersatz der X- und Y-Gyroskope
Es wurde daraufhin nach einer Möglichkeit gesucht, grundsätzliche Fehler im Filter
auszuschließen und zu zeigen, dass das Softwaremodul mit besseren Eingangsdaten
sinnvoll arbeitet. Eine Neuentwicklung der Platine oder ein Austausch der Sensoren kam nicht in Frage, einerseits mangels Zeit bis zum gewünschten Abschluss
des Projekts, andererseits weil keine passenden pinkompatiblen Gyroskopsensoren
verfügbar waren. Eine Filterung ohne die betreffenden Sensoren, allein mit den Beschleunigungswerten und der Gierrate schied auch aus, weil, wie in Abschnitt 6.1.3
beschrieben, die Auflösung dafür unzureichend war.
50
6. Evaluierung
strasse-a-short IMU6 UKF Error
strasse-a-short IMU6 UKF Error
-720
-720
Applanix
IMU6 GPS only
IMU6 UKF filtered
-760
-760
-780
-780
-800
-820
Applanix
IMU6 GPS only
IMU6 UKF filtered
-740
x ECEF [m]
x ECEF [m]
-740
-800
-820
-840
-840
-860
-860
-880
-880
-900
-900
100
150
200
250
300
100
150
time [s]
strasse-a-short IMU6 UKF Error
250
300
strasse-a-short IMU6 UKF Error
1600
1600
1400
1400
1200
1200
y ECEF [m]
y ECEF [m]
200
time [s]
1000
800
1000
800
600
600
Applanix
IMU6 GPS only
IMU6 UKF filtered
Applanix
IMU6 GPS only
IMU6 UKF filtered
400
400
100
150
200
time [s]
250
300
100
150
strasse-a-short IMU6 UKF Error
200
time [s]
250
300
strasse-a-short IMU6 UKF Error
80
80
70
60
60
40
velocity [km/h]
velocity [km/h]
50
30
20
40
20
10
0
0
-10
Applanix
IMU6 GPS
IMU6 UKF filtered
Applanix
IMU6 GPS
IMU6 UKF filtered
-20
-20
100
150
200
time [s]
250
300
100
150
200
time [s]
250
Abbildung 6.8: Fehler des Filters bei der Lokalisierung in Ost-West-Richtung
(oben), Nord-Süd-Richtung (mittig) und bei der Geschwindigkeitsbestimmung (unten). Links mit den verbauten MEMS-Gyroskopen, rechts nach Austausch durch
Applanix-Gyroskope
Deshalb wurde entschieden, als Eingabe für das Filter zusätzlich zu den qualitativ
ausreichend guten Sensoren die Drehratensensoren für die X- und Y-Achse der IMU
des Referenzsystems Applanix zu verwenden.
Die Ergebnisse mit den verbesserten Gyroskopen kann man in Abbildung 6.7 und
6.8 sehen.
300
6.3. Fazit
6.3
51
Fazit
Anhand der Ergebnisse wird deutlich, dass die Qualität der Sensoren einer Inertialeinheit essentiell für eine exakte Bestimmung der Positionsveränderung über die
Zeit durch Integrieren der Sensordaten ist.
Auch wenn das Kalman-Filter verrauschte Signale sehr gut filtern kann und auch
feste Offsets in den Messungen sicher bestimmt, kann es den starken nichtlinearen
Drift der Sensoren nicht vorhersagen, vermutlich auch deshalb, weil hier Messungen
fehlen, wie zum Beispiel die exakte Temperatur am Gyroskop.
Nichtsdestotrotz zeigt sich, dass das entworfene Kalman-Filter korrekt arbeitet und
sinnvoll einsetzbar ist, wie man an den Ergebnissen nach dem Austausch der Sensoren erkennen kann.
52
6. Evaluierung
7. Zusammenfassung und Ausblick
Abschließend haben sich im Rückblick auf die Arbeit und nach der Auswertung der
Ergebnisse einige Erkenntnisse ergeben. Zum einen scheint die Qualität der benutzten Sensoren eine essentielle Rolle für die Nutzbarkeit einer Inertialeinheit als Quelle
für eine Korrektur und Ergänzung von GPS-Modulen zu spielen. Wünschenswert ist
dabei eine hohe Auflösung bei digitalen Sensoren und möglichst ein Minimum an
sich kontinuierlich verändernden Messfehlern (nichtlinearer Drift).
Zum anderen ist es bei dem Einsatz eines Kalman-Filters unabdingbar, eine sinnvolle Modellierung der Umwelt zu wählen und die Beobachtungs- und Messfunktion sorgfältig zu entwerfen. Die Varianten des Unscented Kalman-Filters sind dem
erweiterten Kalman-Filter dahingehend überlegen, dass sich beliebige nichtlineare
Funktionen approximieren können und diese nicht erst durch Auswerten der JacobiMatrizen linearisiert werden müssen. Zusätzlich sind die Approximationen in der
Regel genauer als die des EKF.
Bei der Entwicklung der Firmware hat sich gezeigt, dass ein Debugging nur sehr
begrenzt möglich war und sich oft als Geduldsspiel gestaltete. Die angezeigten Fehlermeldungen führten häufig in die Irre und waren nicht sehr hilfreich zum Eingrenzen von Problemen. Oftmals half hier nur die ausführliche Ausgabe von DebugMeldungen über die serielle Schnittstelle.
In der Zukunft ist geplant, die Arbeit mit der IMU6-Hardwareplattform fortzusetzen.
Der Kooperationspartner Hella Aglaia hat in Aussicht gestellt, dass der Beschleunigungssensor auf der Platine in naher Zukunft ausgetauscht werden kann. Es lohnt
sich, damit noch einige Testfahrten zu unternehmen.
Außerdem ist eine neue Entwicklungsplatine in Planung, bei der aller Voraussicht
nach viele der Mängel im Entwurf und Layout der IMU6-Platine beseitigt werden
können. Nicht zuletzt deshalb, weil die Ergebnisse dieser Arbeit in die Entwicklung
der neuen Plattform mit einfließen konnten.
Unabhängig davon erscheint es sinnvoll, die Integration weiterer Sensoren, wie zum
Beispiel eines hochauflösenden digitalen Kompasses oder eines barometrischen Höhenmessers, in das Kalman-Filter zu erproben. Im Gesamtkontext des autonomen
54
7. Zusammenfassung und Ausblick
Fahrzeugs kommt der Lokalisierung eine bedeutende Rolle zu und daher macht es
Sinn, die Informationen aus möglichst vielen Sensoren dafür zu nutzen, und ein
Kalman-Filter scheint nach den gemachten Erfahrungen hierzu ein geeignetes Mittel zu sein.
Auf dem Weg zu einem serienmäßigen PKW mit autonomen Funktionen ist es unabdingbar, die Kostenfrage nicht außer Acht zu lassen. MEMS-Sensoren sind dabei
ein wichtiger Schritt in die richtige Richtung. Es muss aber gelingen, qualitativ höherwertige MEMS-Sensoren zu fertigen, die für diesen Einsatz dennoch preislich in
Frage kommen. Diese Arbeit hat aufgezeigt, dass es dabei auf geringe Drift und hohe
Auflösung ankommt und demonstriert, wie sich die Sensoren durch ein Kalman-Filter
mit externen Quellen fusionieren lassen, um sie für die exakte Positionsbestimmung
in autonomen Fahrzeugen sinnvoll zu nutzen.
A. Anhang: Unscented
Kalman-Filter Pseudocode
Es folgt der Pseudocode für das als Teil der Arbeit implementierte Unscented
Kalman-Filter. Die Implementierung orientiert sich an der Variante square-root central difference Kalman filter (SRCDKF) aus [VDMWa04] und basiert auf der central
difference transformation, wie sie unter anderem in [Nø00] beschrieben ist.
A.1
Initialisierung
Der Zustand x wird zunächst auf einen Initialwert x0 gesetzt. Die Diagonalelemente
der Kovarianzmatrix P′ werden mit einem kleinen Wert ǫ > 0 initialisiert.
x′ = x0 ,
A.2
A.2.1
P′ = I · ǫ
Vorhersage
Berechnung der Sigma-Punkte
Der Zustand x wird dazu mit dem Übergangsrauschen w und die Kovarianzmatrix
P′ um die Fehlerkovarianzmatrix Q erweitert.
T
x = xT w T
Pw =
P′ 0
0 0
Transitionfunction::setQ(Pw )
setQ(Pw ) ersetzt die untere rechte Teilmatrix in Pw durch eine in der Übergangsfunktion definierte Fehlerkovarianzmatrix Q.
56
Sw =
A. Anhang: Unscented Kalman-Filter Pseudocode
√
Pw ist die Matrixquadratwurzel von Pw
xΣ
0 = x
xΣ
i = x+
xΣ
i
√
n + λ (Sw )i
√
= x − n + λ (Sw )i
i = 1 . . . 2n, i ungerade
i = 1 . . . 2n, i gerade
Der Paramater λ ist ein Skalierungsfaktor und definiert als λ = α2 (n + k) − n, wobei
hier k = 0 gesetzt wird, also λ = (α2 − 1)n.
A.2.2
Anwendung der Übergangsfunktion auf Sigma-Punkte
Σ
XΣ
i = Transitionfunction::transition(xi )
A.2.3
i = 1 . . . 2n
Berechnung von Mittelwert und Kovarianz
x̂′ =
2n
X
Wim XΣ
i
i=0
δ i = XΣ
i − x̂
′
P̂ =
2n
X
i=0
i = 1 . . . 2n
Wic δi · δiT
Die Gewichte Wim , Wic werden berechnet wie in der Standardform des Unscented
Kalman-Filters:
W0m = λ/(n + λ)
W0c = W0m + (1 − α2 + β)
Wic = Wim = 1/2(n + λ) i = 1, . . . , 2n
A.3
A.3.1
Beobachtung
Berechnung der Sigma-Punkte
x̂ = x̂′T vT
P̂v =
P̂′ 0
0 0
T
Observationfunction::setR(P̂v )
A.3. Beobachtung
57
setR(P̂v ) ersetzt die untere rechte Teilmatrix in P̂v durch eine in der Beobachtungsfunktion definierte Fehlerkovarianzmatrix R
Sv =
p
Pv
zΣ
0 = x̂
A.3.2
zΣ
i = x̂ + (Sv )i
i = 1 . . . 2n, i ungerade
zΣ
i
i = 1 . . . 2n, i gerade
= x̂ − (Sv )i
Anwendung der Übergangsfunktion auf Sigma-Punkte
Σ
ZΣ
i = Observationfunction::observe(zi )
A.3.3
Berechnung von Mittelwert und Kovarianz
ẑ
=
2n
X
Wim ZΣ
i
i=0
γi
P̂zz
=
ZΣ
i − ẑ
=
2n
X
i=0
A.3.4
i = 1 . . . 2n
i = 1 . . . 2n
Wic γi · γiT
Korrektur
P̂xz
=
2n
X
i=0
Wic yiΣ − y0Σ · γiT
K
=
Pxz · P−1
zz
x
=
x̂ + K · (z − ẑ)
P
=
P̂ − KPzz KT
58
A. Anhang: Unscented Kalman-Filter Pseudocode
Literaturverzeichnis
[AHAESL06] W. Abdel-Hamid, T. Abdelazim, N. El-Sheimy und G. Lachapelle.
Improvement of MEMS-IMU/GPS performance using fuzzy modeling.
GPS Solutions 10(1), 2006, S. 1–11.
[AlAk05] S. Alper und T. Akin. A single-crystal silicon symmetrical and decoupled MEMS gyroscope on an insulating substrate. Journal of Microelectromechanical Systems 14(4), 2005, S. 707.
[HoKM08] S. Holmes, G. Klein und D. Murray. A square root unscented Kalman filter for visual monoSLAM. In Proc Int Conf on Robotics and
Automation. Citeseer, 2008, S. 3710–3716.
[HSLS+ 07] J. Hol, T. Schön, H. Luinge, P. Slycke und F. Gustafsson. Robust realtime tracking by fusing measurements from inertial and vision sensors.
Journal of Real-Time Image Processing 2(2), 2007, S. 149–160.
[HWLW08] B. Hofmann-Wellenhof, H. Lichtenegger und E. Wasle. GNSS–Global
Navigation Satellite Systems: GPS, GLONASS, Galileo and more.
Springer. 2008.
[IgSH06] C. Igel, T. Suttorp und N. Hansen. A computational efficient covariance matrix update and a (1+ 1)-CMA for evolution strategies. In
Proceedings of the 8th annual conference on Genetic and evolutionary
computation. ACM, 2006, S. 460.
[JUIJC04] S. Julier, J. Uhlmann, I. Ind und M. Jefferson City. Unscented filtering
and nonlinear estimation. Band 92, 2004, S. 401–422.
[JuUDW95] S. Julier, J. Uhlmann und H. Durrant-Whyte. A new approach for
filtering nonlinear systems. In Proceedings of the American Control
Conference, Band 3. American Automatic Control Council, Evanston,
IL, 1995, S. 1628–1632.
[JuUh97] S. Julier und J. Uhlmann. A new extension of the Kalman filter to
nonlinear systems. In Int. Symp. Aerospace/Defense Sensing, Simul.
and Controls, Band 3. Citeseer, 1997, S. 26.
[Ká60] R. Kálmán. A new approach to linear filtering and prediction problems. Journal of basic Engineering 82(1), 1960, S. 35–45.
[KoFS09] S. Kolås, B. Foss und T. Schei. Constrained nonlinear state estimation
based on the UKF approach. Computers & Chemical Engineering
33(8), 2009, S. 1386–1401.
60
Literaturverzeichnis
[Mayb82] P. Maybeck. Stochastic models, estimation and control, S. 1–16. Academic Press. 1982.
[Nø00] Nørgaard, M., Poulsen, N.K. und Ravn, O. New developments in
state estimation for nonlinear systems 1. Automatica 36(11), 2000,
S. 1627–1638.
[PKSR09] N. Phuong, H. Kang, Y. Suh und Y. Ro. A DCM Based Orientation
Estimation Algorithm with an Inertial Measurement Unit and a Magnetic Compass. Journal of Universal Computer Science 15(4), 2009,
S. 859–876.
[Sama08] N. Samama. Global positioning: technologies and performance. WileyInterscience. 2008.
[Seeg04] M. Seeger. Low rank updates for the Cholesky decomposition. Technical report, 2004.
[Simo06] D. Simon. Optimal state estimation: Kalman, H [infinity] and nonlinear approaches. John Wiley and Sons. 2006.
[VDMWa01] R. Van Der Merwe und E. Wan. The square-root unscented Kalman
filter for state and parameter-estimation. In IEEE International Conference on Acoustics, Speech and Signal Processing, Band 6. Citeseer,
2001, S. 3461–3464.
[VDMWa04] R. Van Der Merwe und E. Wan. Sigma-point Kalman filters for integrated navigation. In Proceedings of the 60th Annual Meeting of the
Institute of Navigation (ION). Citeseer, 2004, S. 641–654.
[WaLR03] J. Wang, H. Lee und C. Rizos. GPS/INS integration: A performance
sensitivity analysis. Wuhan University Journal of Nature Sciences
8(2B), 2003, S. 508–516.
[WaVDM00] E. Wan und R. Van Der Merwe. The unscented Kalman filter for
nonlinear estimation. In Proceedings of Symposium. Citeseer, 2000,
S. 153–158.
[WeBi95] G. Welch und G. Bishop. An introduction to the Kalman filter. University of North Carolina at Chapel Hill, Chapel Hill, NC, 1995.
[Wend07] J. Wendel. Integrierte Navigationssysteme: Sensordatenfusion, GPS
und inertiale Navigation. Oldenbourg Wissenschaftsverlag. 2007.
[Wood07] O. Woodman. An introduction to inertial navigation. University
of Cambridge, Computer Laboratory, Tech. Rep. UCAMCL-TR-696,
2007.
[ZGMH05] P. Zhang, J. Gu, E. Milios und P. Huynh.
Navigation with
IMU/GPS/digital compass with unscented Kalman filter. In 2005 IEEE International Conference Mechatronics and Automation, Band 3,
2005.
Literaturverzeichnis
61
[ZhZh08] T. Zhu und H. Zheng. Application of Unscented Kalman Filter to Vehicle State Estimation. In ISECS International Colloquium on Computing, Communication, Control, and Management, 2008. CCCM’08,
2008, S. 135–139.
62
Literaturverzeichnis
Glossar
Cassandra
Eine von der Hella Aglaia entwickelte Softwareplattform für visuelle Fahrerassistenzsysteme. 4, 33
DSP
Digital Signal Processing oder auch Digital Signal Processor, ein Prozessor, der (vorher digitalisierte) Signale verarbeitet und beispielsweise filtert. 41
Gierrate
Die Rate, mit der sich ein Fahr- oder Flugzeug
um die Z-Achse (senkrechte Achse) dreht. 4,
23, 30, 33, 49
siehe Satellitenfix. 44
GPS-Fix
IMU
Inertial Motion Unit: ein elektronisches Gerät, bestehend aus kombinierten
Inertialsensoren. 3, 32
IMU6
Name einer Entwicklungsplattform von Analog Devices, bestehend aus GPS-Modul und
Inertialeinheit. 4, 32, 33
Inertialeinheit siehe IMU. 37
Inertialsensor Sensor, der eine physikalische Größe in einem
Inertialsystem misst, z.B. Beschleunigungsmesser, Drehratensensor. 1, 3, 4, 7, 13, 15, 26,
27, 31, 38, 63
JTAG
Steht für Joint Test Action Group. ein Standard für eine Debug-Schnittstelle von Prozessoren, ermöglicht Programmierung, Setzen
von Breakpoints, schrittweise Ausführung eines Programms und Monitoring von Variablen. 33, 36
64
Glossary
LDW
kurz für: Lane Detection Warning, Name eines
Spurhaltesystems der Hella Aglaia GmbH, das
den Fahrer beim unbeabsichtigten Verlassen
der Fahrspur warnt. 4, 33
NMEA
Abkürzung für National Marine Electronics Association. Protokoll, welches ASCIIbasierte Datensätze definiert, die beispielsweise von GPS-Empfängern ausgegeben werden.
36
Odometer
Ein Messgerät für Radumdrehungen, in mechanischer oder elektronischer Ausführung,
bei PKW meist als Kilometerzähler integriert,
auch zusätzlich nachrüstbar zur Montage an
der Felge. 3
steht für Open Robot Control Software,
ein C++-Framework für die RobotikEntwicklung. 2, 3, 32, 33, 35, 37
OROCOS
Pseudoentfernung Scheinbare Entfernung, die vom GPSEmpfänger gemessen wird, weicht um einen
Fehlerbetrag ab, der hauptsächlich durch die
Uhrungenauigkeit des Empfängers zustande
kommt. 9, 11
Satellitenfix
SPI
Ein Satellitenfix ist gegeben, wenn der Empfänger seine Position durch den Empfang der
Signale von ausreichend vielen Satelliten bestimmen konnte. 44
Serial Peripheral Interface Bus, Synchroner
Datenbus, wird häufig bei Mikrocontrollern
und Sensoren eingesetzt. 35