Entwicklung und Test eines Inertialnavigationssystems in einer

Transcrição

Entwicklung und Test eines Inertialnavigationssystems in einer
ENTWICKLUNG UND TEST EINES
I N E R T I A L N AV I G AT I O N S S Y S T E M S I N E I N E R S C H M E L Z S O N D E
DES RANGE PROJEKTS
sebastian muth
Bachelorarbeit in Physik
vorgelegt der Fakultät für Mathematik, Informatik und Naturwissenschaften
der RWTH Aachen
angefertigt am III. Physikalisches Institut B
bei
Prof. Dr. Christopher Wiebusch
30. November 2015
Sebastian Muth: Entwicklung und Test eines Inertialnavigationssystems
c 30. November 2015
in einer Schmelzsonde des RANGE Projekts, I N H A LT S V E R Z E I C H N I S
1
einleitung
2
theoretische grundlagen und aufbau der sensorik
3
2.1 APU und Navigationsanforderungen
3
2.1.1 Aufbau und Funktionsweise der APU
3
2.1.2 Inertialsensorik
4
2.2 Microelectromechanical System Accelerometer
5
2.2.1 Theorie
5
2.2.2 Allgemeiner Aufbau von MEMS Beschleunigungssensoren
5
2.3 Microelectromechanical System Gyroscope
7
2.3.1 Theorie
7
2.3.2 Allgemeiner Aufbau von MEMS Gyroskopen
7
2.4 Filteralgorithmen und Sensordatenfusion
10
2.4.1 Kalmanfilter
10
2.4.2 Komplementärfilter
11
2.4.3 Madgwick Filter
12
3
systemtest
13
3.1 Versuchsaufbau und Durchführung
3.1.1 Sonde
13
3.1.2 Aufhängung
13
3.1.3 Der InvenSense MPU-9150
4
5
6
1
13
14
temperaturkorrektur
17
4.1 Charakterisierung der Achsen
17
4.2 Durchführung der Temperaturkorrektur
4.3 Auswertung
19
navigationsergebnisse
25
5.1 Winkelberechnung
26
5.2 Ergebnisse
27
5.2.1 Kippwinkel - Θ
27
5.2.2 Drehung um eigene Achse - φ
5.2.3 Heading - ψ
28
zusammenfassung und fazit
a anhang: grafiken
literaturverzeichnis
17
28
31
33
39
v
1
EINLEITUNG
Am 15. Oktober 1997 startete die Cassini-Huygens Misson ins All um
dabei den Planeten Saturn und seine Monde näher zu erkunden. Im
Zuge der Mission wurden auf dem Saturnmond Enceladus kryovulkanische Geysire beobachtet. Der Ausstoß dieser Geysire konnte im
Jahr 2008 durch die Sonde, in einem Durchflug näher untersucht werden. Dabei wurden organische Materialen gefunden, die ein Hinweis
auf extraterrestrisches Leben sein könnten.[14] Neuere Gravitationsmessungen durch die Cassini Sonde legen zudem nahe, dass sich
unter dem Eispanzer ein großes Reservoir flüssigen Wassers befindet,
ein globaler Ozean unter dem Eis.[4]
Ziel des EnEx1 -RANGE Projektes ist die Technologientwicklung von
Navigationslösungen für zukünftige Raumfahrtmissionen. Das Projekt wird durch das Deutsche Zentrum für Luft- und Raumfahrt (DLR)
gefördert. Um eine präzise Navigation im Eis zu ermöglichen, ist ein
externes Referenzsystem notwenig, da auf dem Mond keinerlei externe Referenzsysteme, wie beispielsweise GPS auf der Erde, vorhanden
sind. Dieses Navigationssystem soll im Rahmen des EnEx-RANGE
Projektes entwickelt werden. Die Positionsbestimmung findet dabei
über akkustische Signale und autonome Einschmelzsonden (APUs2 )
statt. Diese APUs besitzen jeweils akustische Sender und Empfänger
und sind so in der Lage, sowohl sich untereinander als auch die navigierbare Einschmelzsonde zu lokalisieren. Als intelligentes Netzwerk
sollen die APUs in der Lage sein ihre Position selbst zu optimieren
und so eine autonome Navigation sicherzustellen.
Eine zukünftige Raumfahrtmision soll dabei aus mehreren APUs und
einer navigierbaren Einschmelzsonde bestehen. Um Winkelabhängigkeiten der Empfänger in den APUs korrigieren zu können ist eine
Lagebestimmung dieser notwendig. Diese Arbeit beschäftigt sich mit
der Lagebestimmung der autonomen Pingereinheiten. Die Lage wird
dabei aus einem Sensorverbund bestehend aus Beschleunigungs- ,
Drehwinkel- und Magnetfeldsensor bestimmt.
1 Enceladus Explorer
2 engl. Autonomous Pinger Unit, deutsch Autonome Pingereinheit
1
THEORETISCHE GRUNDLAGEN UND AUFBAU DER
SENSORIK
2.1
apu und navigationsanforderungen
2.1.1
Aufbau und Funktionsweise der APU
(a) Die APU
(b) Sensoren
Abbildung 1: In (a):
Oben: Draufsicht auf die zusammengebaute APU
Unten: Schnitt durch die APU mit sichtbarer Elektronik
In (b):
Der Inertial- (unten) und der Drucksensor(oben)
Die APU1 bzw. mehrere Einheiten sollen als "Basispunkte"der Navigation für die eigentliche Einschmelzsonde zur Probenentnahme
dienen. Diese einzelnen Einheiten sollen in der Lage sein, ihre Position untereinander zu bestimmen und sich durch die eingebauten
Heizpatronen selbständig optimal, für die akustische Navigation, im
Eis positionieren. Um die Lage im Eis der APUs besser einschätzen
zu können, werden diese zusätzlich zu der akustischen Sensorik mit
einer Inertialsensorik ausgestattet.
In der aktuellen Version besteht die APU aus einem runden Metallzylinder, in dessen Inneren die für den Betrieb notwendige Elektronik untergebracht ist. Am unteren Ende der Navigationssonde finden sich die Heizpatronen, während der oberen Teil durch einen
Verschluss mit Kabeldurchführungen für Spannungsversorgung und
Kommunikation, sowie eine Augenschraube zum Transport abgeschlossen wird (vgl. auch Abbildung 1 mit der geöffneten APU). Der Sondenkörper ist druckfest bis 6 bar Außendruck ausgelegt. Im Betrieb
besteht im Inneren ein durch einen Drucksensor überwachter Unterdruck, um mögliche Undichtigkeiten erkennen zu können.
1 Autonomous Pinger Unit, deutsch: Autonome Pingereinheit
3
2
4
theoretische grundlagen und aufbau der sensorik
Das Herz der Elektronik bildet zur Zeit ein Einplatinencomputer, der
Raspberry Pi 2 - Model B, per PowerLine-Modem2 kann dieser mit
dem Gesamtsystem bzw. der Außenwelt kommunizieren. An den I 2 C
Bus des Raspberry Pis sind der in dieser Arbeit verwendete Invensense MPU-9150 MARG3 -Sensor, sowie ein LPS331AP Luftdrucksensor
von STMicroelectronics angebunden. Temperatursensoren des Typs
DS18B20 von Maxim Integrated sind per 1-Wire verbunden und gewährleisten die vollständige Temperaturüberwachung des gesamten
Korpus.
Der MPU-9150 ist ein kombinierter 3-Achsen Beschleunigungs-, 3Achsen Drehwinkel- und 3-Achsen Magnetfeldsensor und wird später im Unterabschnitt 3.1.3 genauer vorgestellt. Bei dem verwendeten
Sensor handelt es sich um einen sogenannten MEMS4 Sensor.
2.1.2
Inertialsensorik
Die Bestimmung der Raumwinkel allein durch den Beschleunigungsensor ist zwar möglich, aber fehleranfällig, wenn sich der Sensor nicht
in Ruhe befindet. Aus diesem Grund nutzt man eine Inertialsensorik,
die mit der entsprechenden Auswertelektronik in der Lage ist auch in
Bewegung stabile Winkel zu berechnen. Grundsätzlich unterscheidet
man in der Inertialsensorik zwischen Systemen, die aus einem Beschleunigungssensor und einem Drehwinkelsensor bestehen und solchen, die zusätzlich einen Magnetfeldsensor besitzen. Besitzt das System diesen zusätzlichen Magnetsensor ist es möglich alle drei Raumwinkel zu bestimmen. Andernfalls sind nur zwei der drei Raumwinkel ermittelbar. Können alle drei Raumwinkel bestimmt werden
spricht man von einer IMU5 . Zusammengefasst mit dem jeweiligen
Filter oder der Auswertelektronik zur Bestimmung der Winkel wird
das System dann AHRS6 gennant.
Die Bestimmung von zwei oder drei Raumwinkeln erfordert also eine
Messung in mindestens sechs bzw. neun verschiedenen Achsen. Bei
allen Messungen müssen die Charakteristika und Fehler der einzelnen Achsen beachtet werden. Hierbei muss insbesondere die Temperaturkorrektur berücksichtigt werden (vgl. Kapitel 4). Um die Raumwinkel mit einem möglichst kleinen Fehler zu erhalten, werden die
Daten in einem Filter (siehe Abschnitt 2.4) zusammengefasst.
2
3
4
5
6
Netzwerk über Spannungsversorgung
magnetic, angular rate and gravity
Micro Electro Mechanical System
Inertial Measurement Unit
Attitude and Heading Reference Systems
2.2 microelectromechanical system accelerometer
2.2
microelectromechanical system accelerometer
2.2.1
Theorie
Piezoresistor
Auslenkung Ausleger
Substrat
kapazitive
Messpunkte
Probenmasse
Substrat
Basis
Probenmasse
Abbildung 2: Beispielhafter Aufbau eines MEMS Beschleunigungssensors.
a) zeigt einen Sensor, der auf einem piezoresistiven Effekt beruht
b) stellt einen beispielhaften Aufbau für ein kapazitives Messprinzip dar. Quelle: [1]
Nach dem zweiten Newton’schen Bewegungsgesetz
F = m·a
(1)
ist die Beschleunigung proportional zu einer Kraft. Die im Beschleunigungssensor gemessene Größe ist daher eine Kraft, über die die
Beschleunigung indirekt bestimmt wird. Die Sensoren bestehen aus
kleinen mechanischen Systemen aus Federn, Hohlräumen und Bohrungen, die zumeist auf einen Silizium Wafer geätzt werden.
Allgemeiner Aufbau von MEMS Beschleunigungssensoren
2.2.2
MEMS7 Beschleunigungssensoren werden hauptsächlich, wie auf Abbildung 2 zu erkennen, in zwei verschiedenen Arten gefertigt.
2.2.2.1
Piezoresisitives Messprinzip
Der erste Typ sind die auf piezoresistiven Effekten basierenden Beschleunigungssensoren. Diese bestehen aus einem freihängenden Arm,
an dem eine Probenmasse angebracht ist. Wird nun eine Beschleunigung auf den Sensor ausgeübt, verbiegt sich der Arm und verändert
seine Auslenkung. Das induzierte Stauchen oder Dehnen des piezoresitiven Kristalls führt mit selbigem Effekt zu einem messbaren (elektrischen) Widerstand, der über das ohmsche Gesetz
U = R·I
(2)
in eine Spannung umgerechnet werden kann. Diese wird durch eine interne Elektronik in einen zu der Beschleunigung proportionalen
Wert übersetzt.
5
6
theoretische grundlagen und aufbau der sensorik
a)
bewegliche Masse
fixiert
b)
fixiert
beweglich
fixiert
Abbildung 3: Zwei Arten des Aufbaus eines kapazitiven MEMS Beschleunigungssensors. In a) ein Aufbau skizziert, der einem Kondensator ähnelt
in b) ein differentielles Messverfahren.
2.2.2.2
Kapazitives Messprinzip
Das andere weitverbreitete Verfahren ist ein kapazitives Messprinzip.
Das einfachste Prinzip ist ein Kondensator, der einen beweglichen
oberen Teil hat, wie in Abbildung 3 gezeigt. Erfährt der Sensor nun
eine Beschleunigung in horizontaler Richtung ändert sich die Auslenkung und damit die Kapazität des Kondensators. Durch eine interne
Logik und einen Analog-Digital Umsetzer wird daraus ein proportionaler Wert für die Beschleunigung bestimmt. Da sich die durch die
Beschleunigung hervorgerufene Verschiebung im Mikrometerbereich
bewegt, versucht man in der praktischen Umsetzung möglichst große
oder viele parallel geschaltete "Kondensatoren" zu bauen, um die Kapazitätsänderung zu maximieren.
Das Prinzip, einer etwas komplexeren differentiellen Messmethode,
ist in Abbildung 3 in Teil b) gezeigt. Der Aufbau gleicht fast dem in
Teil a), nur wird hier eine bewegliche Masse in die Mitte gesetzt und
die Kapazitätsänderung zwischen den beiden gedachten "Kondensatoren" Oben-Mitte und Mitte-Unten verglichen. Durch Auswertung
der Kapazitätsverschiebung kann direkt auf die Positionsänderung
(und damit die wirkende Beschleunigung) der mittleren Platte geschlossen werden.
7 Micro Electrical Mechanical System
2.3 microelectromechanical system gyroscope
2.3
microelectromechanical system gyroscope
Im folgenden Kapitel wird auf den Drehwinkelsensor und seine Funktionsweise eingegangen. Bei dem verwendeten Sensor handelt es sich
um ein MEMS (Micro Electro Mechanical System) Gyroskop. Aus diesem Grund wird auf weitere Bauformen von Drehwinkelsensoren nur
kurz eingegangen.
2.3.1
Theorie
Das Gyroskop stammt von der Wortbedeutung von den griechischen
Wörtern gyros (deutsch: "drehen") sowie scopein (deutsch: "anzeigen") ab, aus denen der französische Wissenschaftler Leon Foucault
das Kunstwort "Gyroscope" erschuf. [19]
Von der Wortbedeutung her handelt es sich beim Gyroskop also um
einen Drehratensensor. Wobei heute die Begriffe Gyroskop und Gyrometer synonym verwendet werden. Obwohl ersteres eigentlich einen
Sensor bezeichnet, der die Winkellage und nicht die Drehwinkelgeschwindigkeit bestimmt. Das foucaultsches Pendel war damit 1851
einer der ersten Drehratensensoren, die gebaut wurden.
Das erste bekannte Gyroskop der Welt wurde von Johann Gottlieb
Friedrich von Bohnenberger im Jahre 1810 gebaut und wurde erst
2004 zufällig wiederentdeckt. [22]
Zur Zeit gibt es drei unterschiedliche Designs für den Bau von MEMS
Gyroskopen, die auf unterschiedlichen Bauweisen der Sensoren basieren. Ein wichtiger dabei ausgenutzer Effekt ist die Corioliskraft. Die
Corioliskraft ist eine Scheinkraft, die in einem relativ bewegten, rotierenden Bezugsystem auftritt. Für eine Masse m, die Winkelgeschwindigkeit des Bezugssystems ω und Geschwindigkeit des betrachteten
Körpers im Bezugsystem v ergibt sich die Kraft:
#»
#» × #»
FC = −2 · m · ( ω
v)
(3)
Baut man nun einen Sensor, in dem man die wirkende Kraft, sowie
die Geschwindigkeit des Probengewichts und dessen Masse kennt,
kann man durch einfache Umstellung der Formel die gesuchte Winkelgeschwindigkeit errechnen. Eine Integration der Winkelgeschwindigkeit über die Zeit ermöglicht dann die eigentliche Lagebestimmung. Dabei kann rein mathematisch nur die relative Position zur
Anfangsposition berechnet werden.
2.3.2
Allgemeiner Aufbau von MEMS Gyroskopen
Da alle hier angesprochenen Sensoren auf einer Schwingung basieren,
werden bei allen vorgestellten Prinzipien (mindestens) zwei gegeneinander schwingende Massen verwendet. So können etwaige mitgemessene Beschleunigungseffekte, im Gegensatz zur Verwendung nur
7
8
theoretische grundlagen und aufbau der sensorik
Abbildung 4: Der Silikonchip des Invensense MPU6050. Linker und rechter
Teil sitzen aufeinander und wurden für das Foto getrennt. Der
linke, größere der beiden Chipteile ist etwa 2.7 × 2.7 mm groß.
Quelle: [23]
einer Schwungmasse, herausgerechnet werden. Ebenso werden die
Sensoren so gefertigt, dass die Schwingung in einem Vakuum stattfindet. Ändert sich der Innendruck, z.B. durch starke thermische oder
physische Belastung des Sensors, kann dies signifikanten Einfluss auf
die Präzision des Sensors haben. [15] Da die meisten der Sensoren in
Mobiltelefonen verwendet werden, findet die Schwingung im Sensor mit Frequenzen von mehr als 30 kHz statt um eventuelle Störeffekte durch Audiosignale (beispielsweise der Lautsprecher) auf die
Schwungmasse sicher zu unterdrücken [15] (vgl. menschliche Hörbereich bis etwa 20 kHz). In großen Stückzahlen gefertigte Drehwinkelsensoren basieren zur Zeit fast alle auf vier verschiedenen Bauweisen, wobei die vierte Bauweise nach Art des Foucault’schen Pendels
kaum kommerziell genutzt wird und aus diesem Grund hier nicht
weiter vorgestellt wird.[7] MEMS Gyroskope gehören zu den komplexesten MEMS Sensoren, da sie zum einen eine konstant definierte
Schwingung aufrecht erhalten und dabei zum anderen eine kapazitive Messung durchführen.
2.3.2.1 Vibrating-Wheel Gyroscopes
Diese Art von Drehwinkelsensoren wird ganz ähnlich aufgebaut wie
der bekannte Kreiselkompass. Im Grunde handelt es sich um eine rotierende Scheibe, die durch die Drehimpulserhaltung eine Kraft entwickelt, wenn sie aus ihrer ursprünglichen Drehachse bewegt wird8 .
Durch diese Kraft entsteht eine Präzessionsbewegung der Schwungscheibe, durch die sich der Abstand der Scheibe zum Trägersubstrat än8 Aus Gründen der schlechten Realisierbarkeit in kleinen Dimensionen, handelt es
sich allerdings meistens nur um eine Schwungscheibe, die um wenige Grad hinund herschwingt [19]
2.3 microelectromechanical system gyroscope
dert. Dieser Abstand ist kapazitiv messbar und proportional zur Winkelgeschwindigkeit.
2.3.2.2
Wine Glas Resonator Gyroscopes / Vibrating Ring Gyroscopes
Die grundsätzliche Idee dieser Bauweise besteht darin, einen Ring in
eine kontrollierte Schwingung zu versetzen. Dieser bewegt sich dann
ähnlich wie ein schwingendes Weinglas, woher auch der Name dieser Sensoren rührt. Dabei werden zwei Moden angeregt, die in einem
45◦ Winkel zueinander liegen. Findet nun eine Winkeländerung statt,
wird durch die Corioliskraft Energie von der einen in die andere Mode übertragen. Diese Änderung kann kapazitiv gemessen und in eine
Winkelgeschwindigkeit umgerechnet werden.[2]
2.3.2.3 Turning Fork Gyroscope
Abbildung 5: Funktionsprinzip des Turning Fork Gyroscopes. Quelle: [16]
Der dritte Typ ist das sogenannte "Turning Fork Gyroscope" hierbei
wird eine Gabel um sich selbst gedreht 9 . Findet nun eine Drehbewegung des Sensors statt verbiegen sich die Gabelarme durch die Corioliskraft, wie auch in Abbildung 5 erkennbar. Diese Verbiegung kann
beispielsweise in Form einer Abstandsänderung kapazitiv gemessen
werden.
Für diese Arbeit wurde ein MPU-9150 von InvenSense verwendet (vgl
auch Unterabschnitt 3.1.3). Laut firmeneigenen Veröffentlichungen
werden alle Drehwinkelsensoren nach diesem Prinzip gebaut [21].
Die Veröffentlichung ist allerdings schon einige Jahre alt. Dennoch
lassen einige aktuelle Patente der Firma (beispielsweise [20]) die Vermutung zu, dass sich an dieser Bauweise nichts geändert hat.
9 Wie zuvor findet in der praktischen Umsetzung eine Schwingung und keine komplette Drehung statt
9
10
theoretische grundlagen und aufbau der sensorik
2.4
filteralgorithmen und sensordatenfusion
Die Sensordatenfusion bezeichnet einen Prozess, bei dem aus unterschiedlichen Sensoren Daten fusioniert werden, um, wie im Falle dieser Arbeit, beispielsweise die Lage genauer bestimmen zu können,
als dies auf Basis nur eines einzelnen Sensors möglich wäre.
Die meisten Filter berechnen die Position/Winkel in Quaternion. Dies
hat zwei Vorteile: Zum einen ist die Berechnung der Quaternion schneller, zum anderen umgeht man dabei das Problem des "Gimbal Lock".
Dabei handelt es sich um ein Phänomen, bei dem sich nach einer
bestimmten Drehung zwei Euler Drehachsen auf derselben Ebene befinden. Das führt dazu, dass bei Drehungen aus dieser Position unerwartete Winkel bzw. Singularitäten auftreten. Nachteil der Berechnung mit Quaternionen ist, dass diese die Euler Winkel in unintuitiver Weise repräsentieren.
Bei den Fusionsalgorithmen zur Lagebestimmung gibt es diverse Ansätze. Die Meisten basieren dabei entweder auf einem Kalmanfilter
oder aber auf einem Komplementärfilter. Die Möglichkeit aus verschiedenen fehlerbehafteten Messungen einen besseren Einzelwert zu
bestimmen ergibt sich aus den Charakteristika der Sensoren:
beschleunigungssensor: Dieser Sensor liefert zwar im besten
Fall eine direkte Lage des Systems, misst aber unter Umständen auch noch andere Beschleunigungen. Nur "Langzeitbeobachtungen"10 , die über die Zeit gemittelt werden, versprechen,
bei Messungen ohne zu große "Störbeschleunigungen", ein aussagekräftiges Ergebnis. Vorteil ist, dass der Sensor seine Position nicht,wie der Drehwinkelsensor, zu einer Relativposition
bestimmt.
gyroskop: Dieser Sensor bietet sehr genaue Messungen der Drehgeschwindigkeiten um die verschiedenen Achsen, die kaum von
anderen wirkenden Kräften beeinflusst werden. Durch die notwendige Integration über die Zeit 11 addieren sich schon kleine
Messfehler auf. Außerdem ist der Sensor sehr empfindlich gegenüber Veränderungen der Umgebungsparameter (siehe dazu
auch Abschnitt 2.3).
2.4.1
Kalmanfilter
Kalmanfilter[10] bestehen normalerweise aus zwei verschiedenen Teilen, die nacheinander immer wieder für einen Zeitschritt durchgeführt werden. Die Funktion des Filters beruht auf der Annahme, dass
alle gemessenen Variablen zufällig und gaußverteilt sind. Der Filter
berechnet im ersten Schritt aus den ihm bekannten physikalischen
10 Dies können, je nach Anwendungsfall, auch durchaus Bruchteile von Sekunden sein.
11 Sensoren liefern einen Wert mit der Einheit [◦ /s]
2.4 filteralgorithmen und sensordatenfusion
Zusammenhängen der Variablen und den Mittelwerten/Varianzen
der Variablen einen vermuteten Zustand im Zeitschritt t+1 (Predict
Step).
Aus dem Vergleich der Messung des Zeitschritts t+1 und dem vorherigen Ergebnis des Predict Steps wird dann die Vorhersage für den
Zeitschritt t+2 angepasst bzw. hoffentlich verbessert (Update Step).
Nach diesem Schritt beginnt der Zyklus wieder von vorne.[3]
2.4.2
Komplementärfilter
Ein Komplementärfilter versucht aus allen Sensoren jeweils die "besten" Daten herauszufiltern und die Schwächen der einzelnen Sensoren, durch die Stärken der anderen auszugleichen. Ein sehr einfacher
Komplementärfilter für das Problem der Raumwinkelbestimmung
könnte beispielsweise so aussehen:
Z t
0
datagyro, t dt . + (1 − K ) · dataacc, t (4)
anglet = K · anglet−1 +
t −1
mit K ∈ [0, 1]. Hierbei wird der Winkel anglet zum aktuellen Zeitpunkt t über die Zusammenfassung der beiden Sensorwerte berechnet und über einen Filterparameter K gewichtet. Würde dieser Parameter auf 1 gesetzt hängt die Lagebestimmung nur von den Daten
des Drehwinkelsensors datagyro, t ab, beim Wert 0 nur von denen des
Beschleunigungssensors dataacc, t . [6]
Low-Pass Filter
angle
acc
+
new angle
High-Pass Filter
angle
+
gyro
Abbildung 6: Darstellung des allgemeinen Komplementärfilters zur Bestimmung der Raumwinkel aus Beschleunigungs- und Drehwinkeldaten. Basierend auf einer Grafik und Informationen von
[5] und [13]
Beschreibt man diesen Filtertyp etwas allgemeiner, findet man einen
grundsätzlichen Aufbau12 wie in Abbildung 6 dargestellt.
Die Daten, die von kurzfristigen Störungen abhängen und deren Stabilität nur auf langen Zeiträumen gegeben ist (in diesem Fall die Beschleunigungssensordaten), werden durch den Low-Pass Filter gefiltert, während die Daten, die eher langfristigen Störungen unterliegen,
durch einen High-Pass-Filter verarbeitet werden. Am Ende werden
beide Daten zu einer Lageschätzung fusioniert.[13]
12 für das Problem der Lagebestimmung
11
12
theoretische grundlagen und aufbau der sensorik
Durch ihren grundsätzlich einfacheren Aufbau sind Komplementärfilter deutlich effektiver zu implementieren als die ebenfalls vorgestellten Kalmanfilter.
Der in dieser Arbeit verwendetet Filter ist ebenfalls ein Komplementärfilter. Er wurde 2011 von Sebastian Madgwick im Rahmen seiner
Doktorarbeit veröffentlicht.[12]
2.4.3
Madgwick Filter
Gyroskop
Daten
Korrektur Gyroskop
Abbildung 7: Skizze des verwendeten Madgwick Filters. Die in gelb markierten Teile sind nur in der MARG Implementierung des
Filters vorhanden. Im grünen Block findet eine Gradientenbestimmung statt, die mit einem Filterparameter β ∈ R gewichtet wird.
Der Madgwick Filter basiert auf einem sehr ähnlichen Prinzip wie
der allgemein vorgestellte Filter. Der Hauptunterschied ist hier, dass
Winkelgeschwindigkeiten und nicht Raumwinkel fusioniert werden.
Aus den Daten des Beschleunigungssensors wird über ein Gradientenverfahren ein Vektor mit Richtung und Stärke der Drehung berechnet. Selbiges wird aus den Daten des Gyroskops berechnet und
diese dann fusioniert. Erst nach dieser Berechnung findet eine Integration nach der Zeit statt.
Dies gilt für die IMU Implementierung des Filters. In der MARG Implementierung (um den zusätzlichen Magnetfeldsensor ebenfalls einzubinden) findet die Berechnung des Gradientenverfahrens zusätzlich mit den Daten des Magnetometers statt. Außerdem verwendet
der Filter hier zwei zusätzliche Rechnungen um eventuelle magnetische Störungen und den Drift der Gyroskopdaten zu kompensieren.
[12] Diese sind in Abbildung 7 als gelbe Blöcke markiert.
Bei der Fusionierung der beiden Drehwinkel wird die Berechnung
aus den Daten des Beschleunigungssensor (bzw. auch des Magnetfeldsensors, je nach Implementierung) mit einem Filterparameter β
gewichtet. Dieser berechnet sich nach [12] aus der Breite des Rauschens der Gyroskopachsen σ als:
r
3
β=
σ
(5)
4
3
SYSTEMTEST
3.1
versuchsaufbau und durchführung
3.1.1
Sonde
Für die Messungen wurde die schon in Abschnitt 2.1 beschriebene
APU verwendet. Um Messdaten zu nehmen wurde dafür ein Programm geschrieben, welches auf dem eingebauten Raspberry Pi läuft
und kontinuierlich Messdaten der Sensoren (in der gewünschten Messfrequenz) aufnimmt. Diese wurden dann im Nachhinein zur weiteren
Auswertung per eingebauter Netzwerkschnittstelle von der APU auf
einen PC kopiert und in MATLAB weiterverarbeitet.
3.1.2
Aufhängung
Abbildung 8: Messaufbau mit Sonde, die auf einem Aluprofil an dem Teleskopstativ befestigt ist
Um die Sensoren unter geregelten Bedingungen testen zu können
wurde ein elektrisches Teleskopstativ Meade LXD-75 verwendet. Die-
13
14
systemtest
ses ist in der Lage in bestimmten Winkelgeschwindigkeiten eine Position anzufahren bzw. sich in bestimmten Winkelgeschwindigkeiten
um eine Achse zu drehen. Die Sonde wurde dabei auf einem Aluprofil befestigt und dieses durch eine Schwalbenschwanz-Montierung
mit dem Stativ verbunden (siehe Abbildung 8). Das Teleskopstativ
besteht dabei aus zwei frei drehbaren Achsen, die von zwei DC Motoren mit einem Getriebe bewegt werden. Eine der Achsen dient eigentlich als automatische Nachführung bei der Beobachtung von Sternen
und dreht sich daher um eine im Vergleich zum Erdboden geneigte
Achse. Da die Elektronik des Teleskops per Handsteuerung nicht in
der Lage war automatisch in konstanter Winkelgeschwindigkeit einzelne Positionen anzufahren wurde diese Achse nicht zur weiteren
Versuchsdurchführung verwendet. So konnte der Versuchsaufbau insofern vereinfacht werden, dass per Hand und Fernbedienung nur
eine Achse gesteuert werden musste. Es wurden diverse Messreihen
genommen. Dabei unterscheiden sich jeweils die Startpositionen (stehend, liegend), Drehgeschwindigkeiten (0.5 ◦ /s - 1.5 ◦ /s) und die
gewählten Aufnahmetakte der Messdaten (20 Hz , 40 Hz, 100 Hz).
3.1.3
Der InvenSense MPU-9150
Wie oben schon erwähnt besteht der Sensor eigentlich aus drei unterschiedlichen Sensoren, die in einem Chip vereint werden: ein 3Achsen Beschleunigungssensor, ein 3-Achsen Drehwinkelsensor (Gyroskop) und ein 3-Achsen Magnetometer. Zunächst die Einstellungen
für Gyro- und Beschleunigungssensoren. Bei den Einstellungen in Tabelle 1 wird die durchschnittliche Erdbeschleunigung von 9,81 sm2 als
"g" angenommen.
einstellung
wert
einheit
LowPass Filter Schwelle
5
Hz
Abtastfrequenz (eingestellt)
20 - 100
Hz
Sensitivität (Gyroskop)
± 250
◦ /s
Sensitivität (Beschleunigungssensor)
±2
g
Tabelle 1: Einstellung für den 3-Achsen Drehwinkelsensor (Gyroskop) sowie den 3-Achsen Beschleunigungssensor
Die Sensitivität des Gyroskops wurde aufgrund der zu erwartenden eher langsamen Drehgeschwindigkeit auf den kleinstmöglichen
Wert eingestellt. Für den LowPass Filter zeigten sich 5 Hz als geeignetste Einstellung. Für die Abtastrate sind für diese Einstellung des
LowPass Filters eigentlich Werte bis zu 1 kHz möglich, dies wurde
allerdings nicht ausgenutzt, um nicht unnötig viel Rechenzeit auf die
Lagebestimmung zu verwenden.
3.1 versuchsaufbau und durchführung
einstellung
wert
einheit
Messbereich
± 1200
µT
Abtastfrequenz (eingestellt)
20 - 100
Hz
Tabelle 2: Einstellungen für des 3-Achsen Magnetometer
Die Einstellung für das 3-Achsen Magnetometer sind in Tabelle 2
zu finden. Das Magnetometer bietet nur einen Single-Shot Modus um
Messwerte zu erfassen. Daher wurde das Magnetometer immer mit
der selben Abtastfrequenz wie die oben genannten Sensoren betrieben.
15
4
T E M P E R AT U R K O R R E K T U R
4.1
charakterisierung der achsen
Gyro Y
120
µ =0.60987 +/-0.00080961
σ =0.02083 +/-0.0005969
100
N
80
60
40
20
0
0.52
0.54
0.56
0.58
0.6
0.62
0.64
0.66
0.68
Offset [°/s]
Abbildung 9: Histogramm Gyroskop Y-Achse
Zunächst wurden die einzelnen Achsen des Beschleunigungs- und
Drehwinkelsensors bei Zimmertemperatur charakterisiert. Hierfür würden über 33 Sekunden mit 20 Hz Daten aufgenommen und in ein Histogramm gefüllt. Danach wurde eine Anpassung einer Gauß Funktion durchgeführt. Die Histogrammdarstellung für die Y-Achse des
Gyroskops ist in Abbildung 9 zu finden. Die restlichen Grafiken befinden sich im Anhang A. In Tabelle 3 sind die Ergebnisse zusammengefasst. Alle Messwerte wurden mit Low-Pass Filter mit einem
Schwellwert von 5 Hz aufgenommen.
Es lässt sich festhalten, dass die jeweils 3 Achsen der beiden Sensoren untereinander ein ähnliches Rauschen haben. Die leicht unterschiedliche Breite bei der Z-Achse des Beschleunigungssensors lässt
sich wahrscheinlich durch die im Vergleich zu den anderen beiden
Achsen horizontale Bauweise im Sensor erklären.
4.2
durchführung der temperaturkorrektur
Die Daten von Beschleunigungs- und Drehwinkelsensor sind temperaturabhängig und machen eine Korrektur der Werte notwendig. Für
die nachfolgenden Berechnungen wird jeweils die Temperatur des
17
18
temperaturkorrektur
achse und sensor
mittelwert
standardabweichung
Acc: X-Achse
-0.02330
±0.00006
0.00152±0.00004
Acc: Y-Achse
1.0072
±0.00006
0.00151±0.00004
Acc: Z-Achse
0.01895
±0.00009
0.00244±0.00007
Gyro: X-A.
-0.2371
±0.0009
0.02342±0.0007
Gyro: Y-A.
0.6099
±0.0008
0.0208±0.0006
Gyro: Z-A.
1.2812
±0.0007
0.0183±0.0005
Tabelle 3: Mittelwerte und Standardabweichungen für verschiedene Sensorachsen. Die Beschleunigungssensordaten sind in [g] angegeben,
die Daten des Drehwinkelsensors in [◦ /s.]
Temperaturfühlers verwendet der im Chip selbst verbaut ist. Hierbei ist zu beachten, dass dieser nicht unbedingt kalibriert ist. Ein
etwaiges (solange gleichbleibendes) Offset ist für die weiteren Berechnungen jedoch nicht entscheidend. Laut Herstellerangaben liegt
diese Verschiebung bei etwa 2-3 K [8]. Die Temperaturabhängigkeit
wird als linear angenommen, die von den beiden Parameter a und
b abhängig ist. Für eine beliebige Sensorachse x und eine aktuelle
Sensortemperatur T beträgt deren Offset xO f f set daher:
xO f f set = a · T + b
(6)
Um die Parameter dieser Gleichung zu bestimmen, wurde die Temperatur in der Sonde verändert. Hierfür wurde sie entweder im Tiefkühlschrank über Nacht auf etwa -18 ◦ C heruntergekühlt und dann
durch die entstehende Abwärme des Raspberry Pis langsam aufgewärmt oder andererseits beim Herunterkühlen vermessen. Diese Art
der Bestimmung erwies sich nachher, zumindest für das Gyroskop,
nicht als zielführend (siehe letzter Absatz dieses Abschnitts). Bei jeder Änderung der Sensortemperatur um 0.5 K1 wurden jeweils mit
1000 Hz für 1.2 Sekunden Messwerte genommen. Die hohe Messfrequenz wurde gewählt, um eine möglichst geringe Temperaturänderung während der Messung zu erreichen, aber dennoch genügend
Messwerte für ein aussagekräftiges Ergebnis zu erzielen.
Um komplett bereinigte Messdaten des Gyroskops zu bekommen
müssen eigentlich noch Korrekturen der Cross-Axis Sensitivität, al1 Im Rahmen der Messungenauigkeit
4.3 auswertung
so der Sensibilität einer Achse gegen Drehungen der anderen Achsen, und der Skalenfaktoren durchgeführt werden, allerdings liegen
diese Fehler im niedrigen einstelligen Prozentbereich [8] und die Anwendung des Filters kompensiert diese Fehler. Deshalb werden diese
Korrekturen im Weiteren vernachlässigt.
Bei der Auswertung stellte sich heraus, dass sich durch das geschlossene System die Temperatur beim Kippen der APU deutlich schneller
verändert als dies durch die erste Messung beschrieben wurde. Die
zuerst bestimmten Geraden waren daher nicht für die Korrektur geeignet. Um bessere Korrekturgeraden zu erhalten wurden, dann die
Daten der vermessenen Drehungen zur Genauigkeitsbestimmung der
Raumwinkel herangezogen. Diese Daten des Gyroskops wurden gegen die Temperatur aufgetragen. Und die Zeitabschnitte, in denen
eine Drehung stattfand, von Hand entfernt. An diese Daten wurde
erneut eine Gerade angepasst.
4.3
auswertung
Gyro Y - Bei -0.4°C
1.3
1.2
Winkel [°/s]
1.1
1
0.9
0.8
0.7
0.6
0.5
0
0.2
0.4
0.6
0.8
1
1.2
1.4
Zeit [s]
Abbildung 10: Rauschen der Y-Achse des Gyroskops bei -0.4 ◦ C mit eingezeichnetem Median. Neben einem Rauschen sind einzelne
Ausreißer zu erkennen
Da die aufgenommenen Messdaten sehr verrauscht sind und je
nach Temperatur auch einige Ausreißer enthalten können, wurde zur
Bestimmung des Offsets der Median verwendet (vgl. Abbildung 10).
Als Fehler auf den Offset wurde die Median absolute deviation (MAD)
berechnet und mit dem Faktor 1.4826 multipliziert, um den Fehler an
eine Normalverteilung, der die Messwerte folgen, zu skalieren.[18]
σO f f set = mediani (| Xi − median j ( X j )|)
(7)
Für die Temperatur wurde ebenfalls der Median aus den Messungen
berechnet und -wie oben- der Fehler auf die Temperaturwerte durch
die MAD berechnet.
19
temperaturkorrektur
Offset [°/s]
Offset - Gyro X
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
0
5
10
15
20
25
30
35
15
20
25
30
35
15
20
25
30
35
Temperatur [°C]
Offset - Gyro Y
Offset [°/s]
1
0.8
0.6
0.4
-20
-15
-10
-5
0
5
10
Temperatur [°C]
Offset - Gyro Z
1.4
Offset [°/s]
20
1.2
1
0.8
0.6
-20
-15
-10
-5
0
5
10
Temperatur [°C]
Abbildung 11: Über größere Temperaturbereiche treten Effekte auf, die für
eine Nichtlineariät der Messwerte sorgen. In diesem Beispiel
sieht man das bei tiefen Temperaturen die Steigung der XAchse und Z-Achse flacher wird.
Diese Werte werden gemeinsam als Offset gegen Temperatur aufgetragen und die Anpassung einer Geraden durchgeführt. Wie in
Abbildung 11 zu erkennen, treten bei Messungen über größere Temperaturbereiche neben den erwarteten linearen Effekten noch andere, eventuell materialabhängige, Effekte auf. Um diese Effekte nicht
mit zu vermessen, da sie nur bei sehr niedrigen Temperaturen auftreten, wurden kleinere Bereiche (wie in den Abbildung 12 und Abbildung 13) gewählt und in Tabelle 4 zusammengefasst. Ebenfalls auffällig ist, dass sich die Y-Achse des Gyroskops anders verhält als die
übrigen Achsen (negative Steigung, deutlich flachere Steigung als die
anderen Achsen). Dies ist so eher unerwartet, da sich laut Datenblatt
[8] X und Y Achse gleich verhalten sollten und für die Z-Achse andere Spezifikationen angegeben sind. Intuitiv kann dafür leicht eine
Erklärung in der, im Gegensatz zu den anderen beiden Achsen, zum
Substrat senkrechten Bauweise der Z-Achse gefunden werden (vgl.
dafür auch den allg. Aufbau des Sensors in Abbildung 18)
Bei der Auswertung der Daten stellte sich heraus, dass sich die
Offsets aller Messungen stark und (soweit nachvollziehbar) zufällig
mit jedem neuen Einschalten des Sensors ändern. Aus diesem Grund
wurden nur die Steigungen der Korrekturgerade ausgewertet. Der
jeweilige konstante Teil der Anpassung wird in der nachfolgenden
Anwendung des Filters am Beginn jeder Messung neu bestimmt.
4.3 auswertung
Offset - Acc X
f(x) = b*x +a
a =-0.64418+/-0.00053413
b =-0.00072047+/-4.2171e-05
Offset
-0.64
-0.65
-0.66
-0.67
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Y
30
35
f(x) = b*x +a
a =0.18104+/-0.00037949
b =-0.0001245+/-3.425e-05
0.185
Offset
25
0.18
0.175
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Z
25
30
35
f(x) = b*x +a
a =0.77321+/-0.00058643
b =-0.0012462+/-3.9417e-05
0.78
Offset
0.77
0.76
0.75
0.74
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 12: Offsets für den Beschleunigungssensor mit Fit für die zweite
durchgeführte Messreihe. Die APU wurde im liegen vermessen und abgekühlt.
In Tabelle 4 sind die berechneten Parameter a der durchgeführten Anpassung von xO f f set = a · T + b aufgelistet. Die Ergebnisse für b sind
aus den gennanten Gründen nicht relevant und daher auch nicht aufgeführt. Ebenso kann man in Tabelle 4 erkennen, dass die Steigung a
für den Beschleunigungssensor gering ist. Diese Messungen sind also im Gegensatz zu denen des Gyroskops kaum temperaturabhängig.
Wie schon oben genannt, wurde die Temperaturkorrektur dann
noch einmal mit den Daten aus den Winkelmessungen wiederholt.
Wie in Abbildung 14 ersichtlich ergeben sich daraus deutlich bessere
Korrekturen. Die neu bestimmten Steigungen der Korrekturgeraden
sind in Tabelle 5 zu finden. Diese Steigungen werden dann im Weiteren für die Korrektur verwendet.
Die durchgeführte Temperaturkorrektur, bevor die Daten durch
den Filter verarbeitet werden, lässt sich in zwei Schritten zusammenfassen:
bestimmung der konstanten für diese messung: Bevor die
Bestimmung der Raumwinkel beginnt, wird zunächst über einige Sekunden gemessen. Dabei sollte der Sensor möglichst aufrecht stehen und in Ruhe sein. Aus diesen Daten wird eine mittlere Temperatur und ein aktueller Offset bestimmt und so auf
den konstanten Teil der Geradengleichung zurückgeschlossen.
21
temperaturkorrektur
f(x) = b*x +a
a =-0.87355+/-0.0080826
b =0.018534+/-0.00054943
Offset [°/s]
Offset - Gyro X
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Gyro Y
25
30
35
f(x) = b*x +a
a =0.85849+/-0.010454
b =-0.0065478+/-0.0010339
Offset [°/s]
1
0.8
0.6
0.4
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Gyro Z
1.4
Offset [°/s]
22
25
30
35
f(x) = b*x +a
a =0.77108+/-0.0071455
b =0.014951+/-0.00049189
1.2
1
0.8
0.6
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 13: Offsets für den Drehwinkelsensor mit Fit für die zweite
durchgeführte Messreihe. Die APU wurde im liegen vermessen und abgekühlt.
korrektur während der messung: Mit den bestimmten Steigungen aus Tabelle 5 und dem Ergebnis aus dem vorherigen Schritt
werden die Messdaten korrigiert.
4.3 auswertung
messwert
steigung der geraden a
Acc: X-Achse
-0.00071 ±0.00005 [9.81 ◦ Cm·s2 ]
Acc: Y-Achse
-0.00007 ±0.00002 [9.81 ◦ Cm·s2 ]
Acc: Z-Achse
-0.00130 ±0.00003 [9.81 ◦ Cm·s2 ]
Gyro: X-Achse
0.0172 ±0.0006 [ s
Gyro: Y-Achse
-0.0051 ±0.0005 [ s
Gyro: Z-Achse
0.0146 ±0.0002 [ s
◦
· ◦C ]
◦
· ◦C ]
◦
· ◦C ]
Tabelle 4: Ergebnisse der Temperaturkorrektur mit den Daten aus dem Herunterkühlen der Sonde. Es ist jeweils der Parameter a der durchgeführten Anpassung xO f f set = a · T + b aufgelistet.
messwert
steigung der geraden a
◦
Gyro: X-Achse
0.02640 ±0.00003 [ s
Gyro: Y-Achse
-0.01340 ±0.00003 [ s
Gyro: Z-Achse
0.01950 ±0.00003 [ s
· ◦C ]
◦
· ◦C ]
◦
· ◦C ]
Tabelle 5: Ergebnisse der Temperaturkorrektur mit den Daten aus den Genauigkeitsbestimmungen des Filters. Es ist jeweils der Parameter
a der durchgeführten Anpassung xO f f set = a · T + b aufgelistet.
Gyro X-Achse
0.3
0.2
Winkel [°/s]
0.1
0
-0.1
-0.2
-0.3
-0.4
-0.5
-0.6
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Zeit [s]
Abbildung 14: Vergleich der Temperaturkorrektur mit unterschiedlichen
Korrekturgeraden. Alle Daten sind mit einem gleitenden Median bearbeitet, damit das Rauschen der Sensoren nicht die
Charakteristika der Korrekturen überdeckt.
Unkorrigierte Originaldaten(grün)
Mit Daten aus Tabelle 4 verarbeitet (blau)
Mit Daten aus Tabelle 5 verarbeitet (rot)
23
5
Winkel [°/s]
Winkel [°/s]
Winkel [°/s]
N AV I G AT I O N S E R G E B N I S S E
Kippwinkel - Θ
100
50
0
0
500
1000
1500
2000
2500
3000
3500
4000
4500
Zeit [s]
Drehung um eigene Achse - Φ
50
0
-50
0
500
1000
1500
2000
2500
3000
3500
4000
4500
3000
3500
4000
4500
Zeit [s]
Heading - Ψ
200
0
-200
0
500
1000
1500
2000
2500
Zeit [s]
Abbildung 15: Berechnung der Raumwinkel durch den Filter ohne zusätzliche Stütze durch den Magnetfeldsensor. Im untersten Graphen ist das Driften des Headings zu erkennen. Die theoretische Erwartung wäre eine stufenförmige Winkeländerung
im obersten Graphen während die anderen beiden Winkel
konstant bleiben. Die Stufenform entsteht durch eine schrittweise Änderung des Kippwinkels der APU mit 0.5 ◦ /s im
Versuch.
Die temperaturkorrigierten Sensordaten werden dann mit dem in
Unterabschnitt 2.4.3 vorgestellten Filter verwendet. Ein beispielhaftes Ergebnis einer solchen Berechnung ist in Abbildung 15 zu sehen.
Die theoretische Erwartung wäre ein stufenförmiger Kippwinkel, der
durch die schrittweise Änderung des Kippwinkels der APU mit 0.5
◦ /s entsteht, während die beiden anderen Winkel konstant bleiben.
Der Filter ist so programmiert, dass er davon ausgeht, dass die ZAchse senkrecht auf dem Boden steht. Da in diesem Fall der Sensor
allerdings aus bautechnischen Gründen gedreht eingebaut ist, befindet sich die Y-Achse senkrecht zum Boden. Um die Berechnung der
Winkel aus den Quaternion nicht verändern zu müssen wurden daher die Y und Z-Achse getauscht.
Es ist möglich dem Filter einen eigenen Startvektor in Form eines
Quaternions vorzugeben. Bei Beginn der Messung ist es von Vorteil,
25
26
navigationsergebnisse
wenn der Sensor sich in einer bekannten / einprogrammierten Lage
befindet. Befindet sich der Filter in einer anderen Position benötigt er
ungefähr 40 Sekunden um von einem vorgegebenen Winkel von 0◦
auf einen realen Winkel von 90◦ zu kommen. Wird dem Filter also
eine sehr ungünstige Startposition vorgegeben, benötigt er bis zu 40
Sekunden (bei 50 Hz Aktualisierungsrate) bis die berechneten Winkel mit den realen Winkeln übereinstimmen. Dieser Prozess könnte durch eine höhere Messfrequenz am Anfang der Messung oder
durch eine bessere vorgegebene Position, beispielsweise aus einer ungefähren Lagebestimmung, nur durch die Beschleunigungssensoren
am Anfang der Messung, beschleunigt werden. Die Geschwindigkeit
mit der der Filter sich im Anfang zum richtigen Winkel ändert, könnte eventuell Aufschluss darüber geben, was die maximale Winkelgeschwindigkeit ist, die der Filter noch sicher bei dieser Messfrequenz
◦
darstellen kann. Bei 50 Hz lag die Geschwindigkeit bei
q ≈ 2.25 /s.
3
Als Filterparamter β wurde wie in [12] angegeben
4 · σGyro angenommen. Aus den zuvor berechneten Standardabweichungen der Gyroskopachsen und deren Mittelung ergibt sich dann:
r
r
3
3
β=
· σGyro ≈
· 0.02 ≈ 0.01732
(8)
4
4
5.1
winkelberechnung
z
X
x
y
-z
Abbildung 16: Die berechneten Roll-Nick-Gier Winkel in einem Koordinatensystem eingezeichnet. Basierend auf [9]
Da der Filter keine Winkel sondern Quaternionen berechnet, müssen diese zunächst in intuitiver verstehbare Eulerwinkel umgerechnet werden. Dabei werden die Roll-Nick-Gier Winkel verwendet (vgl.
auch Abbildung 16 zur bildlichen Darstellung der Winkel). Im Folgenden werden die Winkel als Kippwinkel Θ, Winkel der Drehung
5.2 ergebnisse
um die eigene Achse φ und als Heading ψ bezeichnet. Bei einem
Quaternion q werden die Winkel wie folgt umgerechnet:
 
q0
 
 q1 

q=
 
 q2 
(9)
q3
φ = atan2(2 · (q2 · q3 + q0 · q1 ), q0 2 − q1 2 − q2 2 + q3 2 )
q
Θ = atan2(−2(q1 q3 − q0 q2 ), 1 − 4(q1 q3 − q0 q2 )(q1 q3 − q0 q2 ))
(10)
ψ = atan2(2 · (q1 · q2 + q0 · q3), q0 2 + q1 2 − q2 2 − q3 2 )
(12)
5.2
(11)
ergebnisse
Bei der Auswertung der Daten zeigte sich, dass der Filter bei 20 Hz
Messfrequenz schon bei einer Drehung von 1.5 ◦ /s nur noch ungenaue Werte liefert. Die Berechnung der Winkel führte dabei zu unbrauchbaren Ergebnissen. Selbst bei einer Drehung von 1 ◦ /s lieferte
der Filter bei 20 Hz zu "runde" Bewegungen (siehe dazu auch Abbildung 29). Im Zuge dieser Beobachtung wurde die Messfrequenz für
alle folgenden Datenaufnahmen auf 50 Hz erhöht. Daraufhin konnte
der Fehler nicht wieder beobachtet werden.
Bei Veränderungen am Filterparameter β wurde festgestellt, dass ein
größerer Wert den Filter nicht instabil werden lässt. Das Rauschen
nimmt allerdings stark zu (siehe auch Abbildung 28). Die Lagewinkel stimmen aber im Mittel immer noch mit denen für einen kleineren
Parameter überein.
In der weiteren Auswertung werden die einzelnen Winkel betrachtet.
Die Berechnungen wurden dabei, außer in den genannten Ausnahmen, mit den Daten des Beschleunigungs- und Drehwinkelsensors
durchgeführt.
5.2.1
Kippwinkel - Θ
Nach dem Vergleich des eingestellten Winkels mit dem vom Filter berechneten Winkel für verschiedene Messreihen ergibt sich eine gemittelte Differenz von ±0.51◦ . Der Kippwinkel wird mit den aktuellen
Korrekturen also etwa auf ein halbes Grad genau bestimmt. Bei einer
eingestellten Drehrate von 0.5 ◦ /s berechnet der Filter eine Drehrate
des Kippwinkels von 0.48◦ /s ± 0.01. Die Diskrepanzen zur eingestellten Drehrate könnten durch eventuelle Systematiken des Stativs entstehen, da nicht bekannt ist wie genau die eingestellten Drehwinkel
von den Motoren tatsächlich umgesetzt werden.
Die Beschleunigungssensordaten wurden, wie im vorherigen Kapitel
27
28
navigationsergebnisse
beschrieben, Offset korrigiert. Dabei wurde die Korrektur so durchgeführt, dass der Vektor aus den drei Achsen senkrecht nach oben zeigt.
Ein Problem das jedoch auftrat war, dass der Filter bei einem realen Kippwinkel von 90◦ (entspricht einem aufrechten Stand der APU
vgl. dazu auch Abbildung 16) reproduzierbar nur 88,7◦ anzeigte. Die
naheliegende Vermutung, dass dies an obiger Annahme bezüglich
der Sensorneigung liegen könnte, konnte ausgeschlossen werden, da
der Filter auch bei Veränderung dieser Korrektur die selben Ergebnisse liefert. Dies ist insofern zu erwarten gewesen als dieser Filter
hauptsächlich mit Gradienten und nicht mit absoluten Raumwinkeln
arbeitet. Bei Untersuchung der geöffneten APU konnte im Nachhinein festgestellt werden, dass sich die Trägerstruktur für die Platinen
und Sensoren bei Verkippung leicht verbiegen kann. Im Versuch zeigte sich eine Neigung von etwa 1.2 Grad. Es ist also davon auszugehen,
dass der Fehler in der Bestimmung des 90◦ Winkels zu großen Teilen
aus einem systematischen Fehler besteht.
5.2.2
Drehung um eigene Achse - φ
Bei den aktuell durchgeführten Korrekturen konnte beobachtet werden, dass sich bei einer Änderung des Kippwinkels um 90◦ der Winkel φ auch jeweils um etwa 25◦ ändert, obwohl dieser im Experiment
nicht verändert wurde (vgl. dazu auch Abbildung 15). Daher ist davon auszugehen, dass dies ein systematischer Fehler, eventuell durch
zu unpräzise Korrekturen, ist. Der Versuch den Winkel durch den
Magnetfeldsensor eventuell zu stabilisieren, erbrachte nicht den gewünschten Erfolg. Vergleiche dazu auch Tabelle 6, in der der Betrag
der berechneten Winkel aufgelistet ist und den Kommentar zu den
Korrekturen des Magnetfeldsensors in Unterabschnitt 5.2.3. In der
Tabelle werden die Berechnungen des Filter mit und ohne die zusätzlichen Messdaten aus dem Magnetfeldsensors verglichen. Es fällt auf,
dass die Winkel sich durch die zusätzlichen Daten kaum ändern.
5.2.3
Heading - ψ
Bis hierhin wurden die Berechnungen der Raumwinkel, bis auf genannte Ausnahmen, nur durch die Daten des Gyroskops und des
Beschleunigungssensors durchgeführt. Wie auf Abbildung 17 in rot
zu erkennen ist, kann aber ohne Magnetfeldsensor der dritte Raumwinkel nicht stabil gehalten werden. Mit Verwendung des Magnetfeldsenors bleibt dieser Winkel deutlich stabiler.
Trotzdem ist auch mit Magentfeldsensor eine Veränderung des Winkels zu sehen, obwohl dieser in der Messung nicht verändert wurde.
Dies liegt wahrscheinlich an der Korrektur der Sensordaten. Diese
wurden, wie die Daten des Beschleunigungssensors, nur von einem
5.2 ergebnisse
29
berechneter winkel | φ | [ ◦ ]
messung
Messung 1:
Ohne Magnetfeldsensor
25.59 ± 0.26
Mit Magnetfeldsensor
25.49 ± 0.22
Messung 2:
Ohne Magnetfeldsensor
25.799 ± 0.045
Mit Magnetfeldsensor
25.80 ± 0.04
Tabelle 6: Berechnungen des Winkels φ im Betrag. Aufgelistet sind jeweils
die Winkelveränderungen nach einer Drehung um 90◦ (im Kippwinkel). Es wird jeweils die Berechnung mit und ohne die zusätzlichen Messwerte aus dem Magnetfeldsensor verglichen.
Heading - Ψ
200
150
Winkel [°/s]
100
50
0
-50
-100
-150
-200
0
500
1000
1500
2000
2500
3000
3500
4000
Zeit [s]
Abbildung 17: Vergleich der Berechnung des Heading mit(blau) und ohne(rot) Verwendung des Magnetfeldsensors. Es ist zu erkennen, dass ohne die Verwendung des Magnetfeldsensors der
Winkel beginnt zu driften.
Offset bereinigt. Einige Veröffentlichungen (beispielsweise [17]) legen
jedoch nahe, dass diese einfache Form der Korrektur nicht ausreichend ist. Trägt man die Messdaten des Magnetfeldsensors für alle
Raumwinkel auf eine Kugel auf, zeigt sich, dass diese weniger einer Kugel als einem Ellipsoid entspricht. Daher muss eine Skalierung
der Achsen je nach eingestelltem Raumwinkel erfolgen. Nach dieser
Korrektur würde man vermutlich einen deutlich stabileren Winkel ψ
erhalten.
4500
6
Z U S A M M E N FA S S U N G U N D FA Z I T
In dieser Arbeit wurde eine Charakterisierung der verschiedenen Sensorachsen durchgeführt und die unterschiedlichen Rauschbreiten bestimmt. Im Rahmen von Messungen bei unterschiedlichen Temperaturen wurde eine Temperaturabhängigkeit der Sensordaten festgestellt. Mit den bestimmten Korrekturen konnten stabilere Daten für
die Weiterverarbeitung im Filter erlangt werden. Die durchgeführten
Temperaturkorrekturen des Gyroskops waren über mehrere Stunden
Messzeit stabil und zeigten keinen (temperaturunabhängigen) Drift
von 30-1000 ◦ /h, wie für "Consumer Grade" Gyroskope veranschlagt
[11].
Bei den Beschleunigungssensoren zeigte sich, auch auf Grund der
größeren Messwerte, dass die Temperaturkorrektur nicht so entscheidend ist wie beim Gyroskop. Beide Sensoren zeigen mit jedem Einschalten einen zufälligen Offset, der mit Beginn jeder Messung bestimmt werden muss.
Die Bestimmung der drei Raumwinkel erfolgte über den von Sebastian Madgwick programmierte Filter.[12] Mit diesem und den zuvor
bestimmten Temperaturkorrekturen konnte der Kippwinkel gut bestimmt werden. Es wurde eine Abweichung in der Winkelbestimmung von 0.51◦ zwischen Filterausgabe und experimenteller Vorgabe
erreicht. Der Filter zeigte zudem auch bei längeren Messungen eine
große Stabilität und errechnete auch nach mehreren Stunden Laufzeit
noch vergleichbare Winkelgenauigkeiten.
Zur genauen Bestimmung der anderen beiden Raumwinkel sind aufwendigere Korrekturen der Sensoren notwendig. Vor allem der Magentfeldsensor muss zur sicheren Stabilisierung des Headings, wie in
Unterabschnitt 5.2.3 beschrieben, korrigiert werden.
31
A
ANHANG: GRAFIKEN
Abbildung 18: Beispielhafter praktischer Aufbau eines Turning Fork Gyroskops. In rot und grün sind die beiden Schwungmassen zu
erkennen. Die in dieser Arbeit verwendeten Sensoren stammen auch von InvenSense. Quelle: [15] (Single Axis, Coupled
Mass MEMS Gyro Design von InvenSense)
Gyro X
200
µ =-0.23712 +/-0.00091013
σ =0.023416 +/-0.00067101
180
160
140
N
120
100
80
60
40
20
0
-0.35
-0.3
-0.25
-0.2
-0.15
-0.1
Offset [°/s]
Abbildung 19: Histogramm Gyroskop X-Achse
33
anhang: grafiken
Gyro Z
120
µ =1.2812 +/-0.00071006
σ =0.018269 +/-0.00052351
100
N
80
60
40
20
0
1.2
1.22
1.24
1.26
1.28
1.3
1.32
1.34
1.36
1.38
Offset [°/s]
Abbildung 20: Histogramm Gyroskop Z-Achse
Acc X
80
70
µ =-0.023296 +/-5.8906e-05
σ =0.0015156 +/-4.343e-05
60
50
N
34
40
30
20
10
0
-0.028
-0.026
-0.024
-0.022
-0.02
-0.018
Offset [9.81 m / s 2]
Abbildung 21: Histogram Beschleunigungssensor X-Achse
anhang: grafiken
Acc Y
80
70
µ =1.0072 +/-5.8576e-05
σ =0.0015071 +/-4.3186e-05
60
N
50
40
30
20
10
0
1.002
1.004
1.006
1.008
1.01
1.012
1.014
Offset [9.81 m / s 2]
Abbildung 22: Histogram Beschleunigungssensor Y-Achse
Acc Z
70
µ =0.018952 +/-9.4947e-05
σ =0.0024429 +/-7.0001e-05
60
50
N
40
30
20
10
0
0.01
0.012 0.014 0.016 0.018
0.02
0.022 0.024 0.026 0.028
Offset [9.81 m / s 2]
Abbildung 23: Histogram Beschleunigungssensor Z-Achse
35
anhang: grafiken
Offset - Acc X
f(x) = b*x +a
a =-0.12078+/-0.000367
b =-0.00062902+/-2.2939e-05
Offset
-0.12
-0.125
-0.13
-0.135
-0.14
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Y
Offset
25
30
35
f(x) = b*x +a
a =-0.035813+/-0.00029875
b =-9.9479e-05+/-1.9213e-05
-0.034
-0.036
-0.038
-0.04
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Z
Offset
25
30
35
f(x) = b*x +a
a =1.0233+/-0.00057428
b =-0.0012117+/-3.5236e-05
1.03
1.02
1.01
1
0.99
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 24: Offsets für den Beschleunigungssensor mit Fit für die erste
durchgeführte Messreihe. Die APU wurde im liegen vermessen und aufgewärmt.
f(x) = b*x +a
a =-0.8256+/-0.0094564
b =0.016613+/-0.00060182
Offset [°/s]
Offset - Gyro X
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Gyro Y
25
30
35
f(x) = b*x +a
a =0.84021+/-0.012487
b =-0.0042656+/-0.00082417
Offset [°/s]
1
0.8
0.6
0.4
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Gyro Z
1.4
Offset [°/s]
36
25
30
35
f(x) = b*x +a
a =0.82685+/-0.0081448
b =0.014311+/-0.00051983
1.2
1
0.8
0.6
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 25: Offsets für den Drehwinkelsensor mit Fit für die erste durchgeführte Messreihe. Die APU wurde im liegen vermessen
und aufgewärmt.
anhang: grafiken
Offset - Acc X
f(x) = b*x +a
a =-0.001586+/-0.00029562
b =-0.00077462+/-1.7901e-05
0.01
Offset
0
-0.01
-0.02
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Y
25
30
35
f(x) = b*x +a
a =1.0089+/-0.0002505
b =-5.3219e-05+/-1.5802e-05
1.011
Offset
1.01
1.009
1.008
1.007
1.006
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Acc Z
30
35
f(x) = b*x +a
a =0.058795+/-0.00045125
b =-0.0013158+/-2.8145e-05
0.08
Offset
25
0.06
0.04
0.02
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 26: Offsets für den Beschleunigungssensor mit Fit für die dritte
durchgeführte Messreihe. Die APU wurde im stehen vermessen und aufgewärmt.
f(x) = b*x +a
a =-0.86666+/-0.0060392
b =0.016603+/-0.00038392
Offset [°/s]
Offset - Gyro X
-0.4
-0.6
-0.8
-1
-20
-15
-10
-5
0
5
10
15
20
Temperatur [°C]
Offset - Gyro Y
25
30
35
f(x) = b*x +a
a =0.82128+/-0.0071689
b =-0.0049581+/-0.00046651
Offset [°/s]
1
0.8
0.6
0.4
-20
-15
-10
-5
0
1.4
Offset [°/s]
5
10
15
20
Temperatur [°C]
Offset - Gyro Z
25
30
35
f(x) = b*x +a
a =0.7894+/-0.0054951
b =0.014606+/-0.00034771
1.2
1
0.8
0.6
-20
-15
-10
-5
0
5
10
15
20
25
30
35
Temperatur [°C]
Abbildung 27: Offsets für den Drehwinkelsensor mit Fit für die dritte durchgeführte Messreihe. Die APU wurde im stehen vermessen
und aufgewärmt.
37
anhang: grafiken
Kippwinkel - Θ
75
70
65
Winkel [°/s]
60
55
50
45
40
35
30
200
300
400
500
600
700
800
900
Zeit [s]
Abbildung 28: Vergleich der Berechnungen des Filters für verschiedene Parameterwerte. Einmal mit dem in Kapitel 5 angegebenen
Wert (rot) und einmal mit einem um den Faktor 100 vergrößerten Wert (blau).
Kippwinkel - Θ
Winkel [°/s]
50
0
-50
-100
0
50
100
Winkel [°/s]
150
200
250
300
350
400
250
300
350
400
250
300
350
400
Zeit [s]
Drehung um eigene Achse - Φ
80
60
40
20
0
0
50
100
150
200
Zeit [s]
Heading - Ψ
10
Winkel [°/s]
38
0
-10
-20
-30
0
50
100
150
200
Zeit [s]
Abbildung 29: Beispiel für eine zu geringe Messfrequenz für den Filter. Die
eigentlich linearen Winkeländerungen verformen sich. Messung fand bei 20 Hz und einer Drehgeschwindigkeit von
1◦ /s statt.
L I T E R AT U R V E R Z E I C H N I S
[1] Alhussein Albarbar, Samir Mekid, Andrew Starr, and Robert Pietruszkiewicz. Suitability of mems accelerometers for condition
monitoring: An experimental study. Sensors, 8(2):784, 2008. ISSN
1424-8220. doi: 10.3390/s8020784. URL http://www.mdpi.com/
1424-8220/8/2/784.
[2] F. Ayazi and K. Najafi. A harpss polysilicon vibrating ring gyroscope. Microelectromechanical Systems, Journal of, 10(2):169–179,
Jun 2001. ISSN 1057-7157. doi: 10.1109/84.925732.
[3] Tim Babb.
How a kalman filter works, in pictures. Website, August 2015. URL http://www.bzarg.com/p/
how-a-kalman-filter-works-in-pictures/.
(Abgerufen am
16.11.2015).
[4] Allard
turn’s
2015.
Beutel.
Cassini finds global ocean in samoon enceladus.
Website, 15. September
URL
http://www.nasa.gov/press-release/
cassini-finds-global-ocean-in-saturns-moon-enceladus.
(Abgerufen am 27.11.2015).
[5] Shane Colton. Fun with the complementary filter / multiwii.
Website, September 2012.
URL http://scolton.blogspot.
de/2012/09/fun-with-complementary-filter-multiwii.html.
(Abgerufen am 16.11.2015).
[6] Pieter-Jan Van de Maele. Reading a imu without kalman: The
complementary filter. Website, April 2013. URL http://www.
pieter-jan.com/node/11. (Abgerufen am 16.11.2015).
[7] Haifeng Dong. Design and analysis of a mems comb vibratory
gyroscope. Master’s thesis, University of Bridgeport, 04 2009.
URL http://www1bpt.bridgeport.edu/~hdong/master_thesis_
dong.pdf. (Abgerufen am 10.11.2015).
[8] InvenSense Inc. MPU-9150 Product Specification. InvenSense
Inc., 1197 Borregas Ave, Sunnyvale, CA 94089 U.S.A., 4.0 edition,
Mai 2012. URL https://www.olimex.com/Products/Modules/
Sensors/MOD-MPU9150/resources/MPU9150.pdf. (Abgerufen am
6.11.2015).
[9] Juansempere.
Gier-, nick- und rollwinkel als lagewinkel
eines flugzeugs gier- und nickwinkel gegenüber erdfestem
system, rollwinkel gegenüber flugzeug-längsachse. Website,
39
40
literaturverzeichnis
May 2009. URL https://de.wikipedia.org/wiki/Eulersche_
Winkel#/media/File:Plane.svg. (Abgerufen am 27.11.2015).
[10] Rudolph Emil Kalman. A new approach to linear filtering and
prediction problems. Journal of Fluids Engineering, 82(1):35–45,
1960.
[11] KVH Industries, Inc. Guide to comparing gyro and imu technologies – micro-electro-mechanical systems and fiber optic gyros.
Technical report, KVH Industries, Inc., 2014.
[12] S.O.H. Madgwick, A.J.L. Harrison, and R. Vaidyanathan. Estimation of imu and marg orientation using a gradient descent
algorithm. In 2011 IEEE International Conference on Rehabilitation Robotics (ICORR), pages 1–7, June 2011. doi: 10.1109/ICORR.
2011.5975346. URL http://ieeexplore.ieee.org/xpls/abs_
all.jsp?arnumber=5975346&tag=1. (Abgerufen am 16.11.2015).
[13] R. Mahony, T. Hamel, and Jean-Michel Pflimlin. Complementary filter design on the special orthogonal group so(3). In Decision and Control, 2005 and 2005 European Control Conference. CDCECC ’05. 44th IEEE Conference on, pages 1477–1484, December
2005. doi: 10.1109/CDC.2005.1582367. URL http://ieeexplore.
ieee.org/xpls/abs_all.jsp?arnumber=1582367&tag=1. (Abgerufen am 16.11.2015).
[14] Dennis L Matson, Julie C Castillo, Jonathan Lunine, and Torrence V Johnson. Enceladus’ plume: Compositional evidence
for a hot interior. Icarus, 187(2):569–573, 2007.
[15] Steven
critical
lenges
pes.
Nasiri, Martin
review of the
of producing
2010.
URL
Lim, and Mike Housholder.
A
market status and industry chalconsumer grade mems gyroscohttp://206.25.17.130/cn/mems/gyro/
documents/whitepapers/A%20Critical%20Review%20of%20the%
20Market%20Status%20and%20Industry%20Challenges%20of%
20Producing%20Consumer%20Grade%20MEMS%20Gyroscopes.pdf.
(Abgerufen am 10.11.2015).
[16] Christoph Pörschmann. 3-d audio in mobile communication devices: Methods for mobile head-tracking. JVRB - Journal of Virtual
Reality and Broadcasting, 4(2007)(13 URL http://nbn-resolving.
de/urn:nbn:de:0009-6-11833. Abgerufen am 26.10.2015.
[17] Valérie Renaudin, Muhammad Haris Afzal, and Gérard Lachapelle. Complete triaxis magnetometer calibration in the magnetic domain. Journal of sensors, 2010, 2010.
[18] David Ruppert. Statistics and Data Analysis for Financial Engineering. Springer, 2011.
literaturverzeichnis
[19] Knut Schumacher, U Wallrabe, and J Mohr. Design, Herstellung
und Charakterisierung eines mikromechanischen Gyrometers auf der
Basis der LIGA-Technik. PhD thesis, Forschungszentrum Karlsruhe GmbH, 1999. URL http://digbib.ubka.uni-karlsruhe.de/
volltexte/fzk/6361/6361.pdf. (Abgerufen am 25.10.2015).
[20] J. Seeger and B. Borovic. Extension-mode angular velocity sensor,
June 9 2015. URL https://www.google.com/patents/US9052194.
US Patent 9,052,194.
[21] Joe Seeger, Martin Lim, and Steve Nasiri. Development of highperformance, high-volume consumer mems gyroscopes. In Proc.
Tech. Dig. Solid-State Sensors Actuators Microsystems Workshop, pages 61–64, 2010.
[22] Jörg F Wagner and Andor Trierenberg. The machine of bohnenberger. In The History of Theoretical, Material and Computational Mechanics-Mathematics Meets Mechanics and Engineering, pages
81–100. Springer, 2014.
[23] www.zeptobars.ru.
Invensense
MPU6050
6-axis
MEMS IMU weekend die-shot.
Website, Dezember
2013.
URL
http://zeptobars.ru/en/read/
Invensense-MPU6050-6d-MEMS-IMU-gyroscope-accelerometer.
(Abgerufen am 25.10.2015).
41