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