Indoor Lokalisierung auf Basis von Ultra Wideband Modulen zur Emulation von GPS Positionen Chemnitzer Informatik-Berichte - Fakult at f ur ...
←
→
Transkription von Seiteninhalten
Wenn Ihr Browser die Seite nicht korrekt rendert, bitte, lesen Sie den Inhalt der Seite unten
Fakultät für Informatik CSR-20-03 Indoor Lokalisierung auf Basis von Ultra Wideband Modulen zur Emulation von GPS Positionen Jörn Roth · Reda Harradi · Wolfram Hardt Februar 2020 Chemnitzer Informatik-Berichte
Indoor Lokalisierung auf Basis von Ultra Wideband Modulen zur Emulation von GPS Positionen Bachelorarbeit zur Erlangung des akademischen Grades B.Sc. Informatik Fakultät für Informatik Professur Technische Informatik Eingereicht von: Jörn Roth Matrikel Nr.: 443179 Einreichungsdatum: 26.11.2019 Betreuer: Prof. Dr. Dr. h. c. Wolfram Hardt, Reda Harradi, M.Sc.
Abstrakt Ziel dieser Arbeit ist es, ein System zur Lokalisierung für die Testumgebung des APOLI Projekts zu implementieren und zu validieren. Dabei soll mit Hilfe von Ultrabreitbandtechnologie ein lokales Echtzeitpositionsbestimmungssystem imple- mentiert werden, welches die Funktionalität eines GPS-Empfängers emuliert. Dabei sollen die Positionsdaten an einen Copter übermittelt werden. Keywords: RTLS, UWB, Copter iii
Inhaltsverzeichnis Inhaltsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v Abbildungsverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii Tabellenverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ix Abkürzungsliste . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi 1 Einleitung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.1 APOLI . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 IndoorFlightCenter . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3 Struktur . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2 Stand der Technik . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1 Positionsbestimmung . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.1.1 Funkbasierte Systeme . . . . . . . . . . . . . . . . . . . . . . . 6 2.1.2 Satellitenbasierte Positionsbestimmung . . . . . . . . . . . . . 8 2.1.3 Bildbasierte Positionsbestimmung . . . . . . . . . . . . . . . . 10 2.1.4 Bewegungsbasierte Positionsbestimmung . . . . . . . . . . . . 10 2.1.5 Lokales Funknetz . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.2 Lateration . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.3 Koordinatenformate . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 2.4 Koordinatenübertragung . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.1 UART . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 2.4.2 NMEA 0183 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 3 Grundlagen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1 Mathematischer Hintergrund . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.1 TOF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 3.1.2 TDOA . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.1.3 Fehlerbetrachtung . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.2 Platzierung von Ankern . . . . . . . . . . . . . . . . . . . . . . . . . 19 4 Konzept . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.1 Systemanforderungen . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2 Systemdesign . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 4.2.1 Softwaredesign . . . . . . . . . . . . . . . . . . . . . . . . . . 24 v
INHALTSVERZEICHNIS 4.2.2 Ankerpositionierung . . . . . . . . . . . . . . . . . . . . . . . 27 4.3 Hardwareauswahl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 4.3.1 Decawafe 1000 Module . . . . . . . . . . . . . . . . . . . . . . 28 4.3.2 nucleo64 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 4.4 Verwendete Programmiersprache . . . . . . . . . . . . . . . . . . . . 31 5 Implementierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 5.1 Laterationsimplementierung . . . . . . . . . . . . . . . . . . . . . . . 33 5.2 GPS Positionsberechnung . . . . . . . . . . . . . . . . . . . . . . . . 33 5.3 GPS Positionsübertragung . . . . . . . . . . . . . . . . . . . . . . . . 34 5.4 Begleitprogramm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 5.5 Systemaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34 6 Ergebnisse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1 Validierung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1.1 Kriterien . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1.2 Unittests . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 6.1.3 Hardwaretest . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 6.1.4 Systemtest . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.2 Erwartete Resultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 6.3 Erzielte Resultate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 6.4 Limitierungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 6.5 Vergleich mit GPS . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 7 Fazit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.1 Einordnung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 7.2 Weitere Schritte . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45 Literaturverzeichnis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47 vi
Abbildungsverzeichnis 1.1 Flugplan der APOLI Copter . . . . . . . . . . . . . . . . . . . . . . . 2 2.1 Vergleich TOA und TDOA in der Ebene [1] . . . . . . . . . . . . . . 7 2.2 Schema des TOF-Verfahren . . . . . . . . . . . . . . . . . . . . . . . 8 3.1 Mittlere Schnittwinkel der Kreise [1] . . . . . . . . . . . . . . . . . . 20 3.2 Genauigkeit der Positionsbestimmung [1] . . . . . . . . . . . . . . . . 21 4.1 Systemaufbau . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 4.2 Lateration mit 4 Ankern . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.3 Decawave DWM1000 Modul . . . . . . . . . . . . . . . . . . . . . . . 29 4.4 Einfluss der Azimutrotation auf die Sendeleistung . . . . . . . . . . . 29 4.5 Einfluss der Elevationsrotation auf die Sendeleistung (1) . . . . . . . 30 4.6 Einfluss der Elevationsrotation auf die Sendeleistung (2) . . . . . . . 30 5.1 Platzierung der Anker im Raum IndoorFlightCenter . . . . . . . . . . 35 6.1 Abweichung der Entfernungsbestimmung an Anker 4 [n=200] . . . . . 40 6.2 Benutzeroberfläche des Begleitprogramms . . . . . . . . . . . . . . . 42 vii
Tabellenverzeichnis 2.1 Vergleich der Verfahren . . . . . . . . . . . . . . . . . . . . . . . . . . 9 2.2 Aufbau des NMEA 0813 RMC Satzes . . . . . . . . . . . . . . . . . . 13 2.3 Aufbau des NMEA 0813 GGA Satzes . . . . . . . . . . . . . . . . . . 14 2.5 NMEA Geräte-IDs . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 4.1 Headerfelder der UWB Pakete . . . . . . . . . . . . . . . . . . . . . . 26 4.2 Unterstützte Pakettypen . . . . . . . . . . . . . . . . . . . . . . . . . 27 ix
Abkürzungsliste AOA Angle of Arriaval APOLI Automated Power Line Inspection DOP Dilution of Precision GGA Global Positioning System Fix Data (NMEA 0813) GLONASS Global Navigation Satellite System GPS Global Positioning System IFC Indoor Flight Center IMU Inertial measurement unit NAVSTAR-GPS Navigational Satellite Timing and Ranging Global Positioning System NMEA National Marine Electronics Association UART Universal Asynchronous Receiver Transmitter UWB Ultra-wideband RMC Recommended Minimum Sentence Typ C (NMEA 0813) RSSI Received Signal Strength Indicator RTLS Real-time locating system SPI Serial Peripheral Interface TDOA Time diffrence of ariaval TOA Time of arrival TOF Time of flight xi
1 Einleitung Positionsbestimmungssysteme sind wichtig in einer Vielzahl von technischen Syste- men. So verwenden Navigationssysteme in Autos, Schiffen und Flugzeugen globale satellitenbasierte Positionsbestimmung. Das amerikanischen Global Positioning Sys- tem (GPS), das russischen Global Navigation Satellite System (GLONASS) und das europäischen Galileo System sind solche Systeme. Aufgrund der Herkunft vieler tech- nischer Geräte aus den USA, ist GPS das am weit verbreitetste dieser Systeme. Viele Anwendungen auf mobilen Endgeräten nutzen Positionsdaten, um besser angepass- te Ergebnisse zu liefern. Autonome Fahrzeuge und Fluggeräte benötigen ebenfalls genaue Positionsbestimmungssystem. Diese ist erforderlich, da sie im Gegensatz zu von Personen gelenkten Systemen keine andere Quelle für Bewegungsbefehle haben. Lokale Systeme werden dabei in Logistikzentren verwendet, um genau Positionen von Gütern und Transportern zu verfolgen und zu optimieren. Die dabei verwende- ten System basieren jedoch häufig auf Funksystemen die nicht in Gebäuden genutzt werden können. 1.1 APOLI Das Automated Power Line Inspection (APOLI) Projekt [2][3][4] hat zum Ziel, Schäden an Hochspannungsleitungen automatisch zu erkennen. Dabei sollen insbe- sondere Schäden durch Kurzschlüsse an den Isolatoren, Risse im Glas der Isolatoren sowie Schäden an den Stromleitungen erkannt werden. Dazu umfliegen mit Kame- ras ausgestattete Copter automatisch die Hochspannungsmasten und nehmen Bilder auf. Abbildung 1.1 zeigt dabei den Flugplan der Copter, dieser soll an den Strom- masten aufsteigen und diese unter und über den Leitungen umrunden. Dabei muss sichergestellt werden, das der Copter weder den Leitungen noch dem Masten zu nah kommt. Dies ist notwendig, da die Kameras kein scharfes Bild aufnehmen können, wenn sie zu nah sind und um Interferenzen durch die Stromleitungen zu vermeiden. Außerdem wird das Risiko eines Zusammenstoßes des Copters so verringert. Durch Bilderkennungssoftware sollen anschließend automatisiert Schäden erkannt werden. Der Copter verwenden dabei einen GPS-Empfänger mit Kompass zur Navigation und zur Zuordnung der erfassten Schäden zu deren Position. Die starken Wech- selströme in den Stromleitungen können Interferenzen hervorrufen, die Funkwellen und somit GPS blockieren [5]. Der Copter kommt jedoch nicht so nah an die Hoch- spannungsleitungen, das diese Interferenzen alle Funksignale blockieren, weshalb die Verwendung von GPS möglich ist. 1
1 Einleitung Abbildung 1.1: Flugplan der APOLI Copter 1.2 IndoorFlightCenter Die im APOLI Projekt verwendete Hard- und Software, wird im IndoorFlightCen- ter (IFC) der Professur Technische Informatik entwickelt. Dabei wird der Copter in einem abgeschlossenen Käfig getestet. Der hat etwas 2x2m Grundfläche und ist 3m hoch. Um die Sicherheit zu erhöhen und die Position des Copters besser kontrollie- ren zu können, fliegt dieser nicht frei sondern wird an einem Seil geführt. Zusätzlich wurden die Rotorblätter entfernt. Für die verwendeten Copter wurde die AREIOM Plattform entwickelt. Diese bietet die erforderliche Rechenleistung zur Bildverarbei- tung bei geringem Stromverbrauch und Gesamtgewicht [6]. Der Copter wird dabei von einem Pixhawk flight controller gesteuert. Dieser wertet die Sensordaten des Co- pters aus und kontrolliert die Rotoren. Der Pixhawk kann mit einem PC kommuni- zieren um Daten und Kommandos zu übertragen. Diese Übertragung geschieht über eine externe Telemetrie Antenne. Da der Empfang von GPS-Signalen in Gebäuden eingeschränkt ist, kann man sich bei der Entwicklung nicht auf ein zuverlässige und genaue Positionsbestimmung mit GPS verlassen. Daher wird ein alternatives System benötigt. Um eine realistische Testumgebung zu gewährleisten, soll dabei ein Signal, welches sich nicht von dem eines GPS-Empfängers unterscheidet, an den Copter ge- sendet werden. Dies geschieht über einen serieller GPS Anschluss. Dabei soll auch der Anschluss, der vom GPS-Empfänger genutzt wird verwendet werden. Zusätz- lich sind an dem Copter weitere Komponenten angeschlossen, welche verschiedene 2
1.3 Struktur Berechnungen ausführen. Da der Copter für viele Testzwecke nicht bewegt werden muss, verfügt die Testumgebung neben Akkus auch über eine externe Stromversor- gung für den Copter. 1.3 Struktur Im Rahmen dieser Arbeit sollen zunächst verschiedene Ansätze zur Bestimmung von Positionen betrachtet werden. Dies soll auch verschiedenen Arten der Lateration einbeziehen. Weiter soll die Übertragung von Positionsdaten an den Copter bearbei- tet werden. Die mathematischen Grundlagen der verwendeten Verfahren werden im Anschluss betrachtet. Basierend auf den Ergebnissen der Betrachtung des Stands der Technik und der mathematischen Grundlagen wird anschließend ein Konzept entwickelt. Dieses enthält das System- und Softwaredesign. Zusätzlich erfolgt eine Betrachtung der verwendete Hardware werden. 3
2 Stand der Technik Aufgrund der vielen Anwendungen und Technologien gibt es viele Möglichkeiten zur Bestimmung von Positionen. Nachstehend werden die wichtigsten betrachtet. Die betrachteten Verfahren wurden dabei nach der Häufigkeit ihrer Verwendung in allen Bereichen sowie speziell im Bereich der unbemannten Flugobjekte ausgewählt. Anschließend sollen insbesondere die Vor- und Nachteile der einzelnen Verfahren erläutert werden. 2.1 Positionsbestimmung Positionsbestimmungssysteme werden in aktive und passive eingeteilt. Bei aktive Systemen hilft das Objekt, dessen Position bestimmt wird, bei der Positionsbestim- mung mit, indem es Signale empfängt oder sendet. Diese Signale sind meist Funk- signale (2.1.1), es können aber auch beispielsweise Lichtsignale verwendet werden (2.1.3). Das aktive Gerät, dessen Position bestimmt wird, wird als Tag bezeichnet. Bei passiven Systemen wird die Position ohne Mithilfe des zu lokalisierenden Ob- jekts, teilweise ohne dessen Wissen, bestimmt. Passive System sind oft ungenauer und anfälliger für Fehler, als aktive. Der Grund dafür ist, dass die Daten, welche mit durch die Mithilfe des Tags erfasst werden genauer sind und die Identifizierung des Tags entfällt [7]. Da der Copter bereits ein elektronisches Gerät benötigt, um die Positionen, welche das System ermittelt, zu empfangen, wird ein aktives System verwendet. Daher werden weiterhin nur aktive Verfahren betrachtet. 5
2 Stand der Technik 2.1.1 Funkbasierte Systeme In funkbasierten Systemen wird ein sich bewegender Funkempfänger, Funksender oder Funktransceiver (Tag) lokalisiert. Funkbasierte Systeme bestehen neben dem Tag aus mehreren Anker. Dies sind Funkkomponenten, mit bekannter, fester Po- sition. Die Position, des Tags, wird basierend auf seiner relativen Postion von den Ankern bestimmt. Abhängig davon, welche Informationen über die relative Position vorhanden sind, sowie wie diese Informationen ermittelt werden, gibt es verschie- dene Verfahren. Die am weitesten verbreiterten Verfahren sollen nach Genauigkeit, Hardwareaufwand, Dauer der Positionsbestimmung und Rechenaufwand verglichen werden. Dies sind das Time of arrival (TOA) Verfahren und das Time diffrence of arrival (TDOA) Verfahren. Weitere mögliche Verfahren sind die Bestimmung der Signalstärke Received Signal Strength Indication (RSSI) und die Bestimmung der Empfangswinkels Angle of arrival (AOA). RSSI ist sehr ungenau, da der Zusam- menhang zwischen Entfernung und Signalstärke, aufgrund von Abschwächung durch Wände und Reflexionen an Oberflächen, nicht konstant ist. AOA ist aufwendiger als die anderen hier genanten Verfahren, da die Bestimmung der Einfallswinkels zusätz- liche spezielle Hardware erfordert. In den TOA-Verfahren werden die Übertragungszeiten der Funksignale von den An- kern bestimmt. Die Entfernungen lassen sich mit der Formel d=c∗t (2.1) d Entfernung c Lichtgeschwindigkeit im Übertragungsmedium t Flugzeit berechnen. Dies erfordert genaue, synchronisierte Uhren am Tag und an allen An- kern. Die Position wird dann durch das Schneiden von Kugeloberflächen mit der Entfernung als Radius und den Positionen der Anker als Mittelpunkt bestimmt. Mit drei Ankern ergeben sich zwei mögliche Positionen, die sich an der Ebene, die durch die drei Anker gebildet wird, spiegeln. Durch die Verwendung von mindes- tens vier Ankern, die nicht auf einer Ebene liegen lässt sich die Position eindeutig bestimmen. Die Genauigkeit des Verfahrens ist dabei von der Genauigkeit der Ent- fernungsbestimmung und der Positionen der Anker abhängig. Die einzige Quelle, für diese Ungenauigkeit ist die Synchronisierung der Uhren untereinander und mit dem Sendeprozess. Das TDOA-Verfahren wird verwendet, um ohne Synchronisierung der Zeit des Tags die Position bestimmen zu können. Dabei senden alle Anker in fest definierten Zeitabständen Nachrichten an den Tag. Die Position des Tags kann, basierend auf den Zeitabständen zwischen dem Empfangen der Nachrichten bestimmt werden. Dafür müssen hyperbolische Oberflächen im Raum geschnitten werden. Wie auch im TOA-Verfahren sind die Quellen für Fehler hier ungenaue Synchronisierung und ungenau Positionen der Anker. Abbildung 2.1 zeigt die Schnitte der verschiedenen Kurven von TOA und TDOA in der Ebene. Die Synchronisation der Uhren im TOA-Verfahren ist nicht notwendig, wenn zwei Nachrichten verwendet werden. Wie 6
2.1 Positionsbestimmung Abbildung 2.1: Vergleich TOA und TDOA in der Ebene [1] 7
2 Stand der Technik Abbildung 2.2: Schema des TOF-Verfahren in Abbildung 2.2 gezeigt wird dabei eine Nachricht vom Tag gesendet, auf welche die Anker mit Nachrichten, welche die Verzögerung zwischen Senden und Empfan- gen treply enthalten, antworten. Diese Modifikation des Verfahrens heißt Time of Flight (TOF). Dabei gilt dann T OF = 12 (troundtrip − treply ). So kann das TOA Ver- fahren angepasst werden, ohne die eigentliche Ankunftszeit zu berücksichtigen ist. Das erfordert jedoch beidseitige Sende- und Empfangshardware. Dieses Verfahren erfordert eine genaue Bestimmung der Sende- und Empfangsverzögerung. Die Emp- fangsverzögerung ist die Zeit, die vom Eingehen einer Nachricht bis zum gemessenen Empfangszeitpunk vergeht. Analog ist die Sendeverzögerung die Zeitdifferenz zwi- schen der in der Berechnung verwendeten und tatsächlichen Sendezeit. Wenn diese nicht ausreichend genau bestimmt werden können, können zwei TOF Messungen, von denen eine vom Tag und eine vom Anker ausgeht ausgeführt werden. Die Ta- belle 2.1 zeigt die Vor- und Nachteile der einzelnen Verfahren, eine mathematische Betrachtung wird dabei in 3.1 betrieben. 2.1.2 Satellitenbasierte Positionsbestimmung Satellitenbasierte Systeme zur Positionsbestimmung [8][9] sind weit verbreitet. Auf- grund ihrer weltweiten Verfügbarkeit und der Bestimmung einer globalen Position werden sie unter anderen in Navigationssystemen und mobilen Endgeräten verwen- det. Dabei senden geostationäre Satelliten kontinuierlich ihre genaue Uhrzeit. Ein Empfänger kann basierend auf den Differenzen der empfangenen Zeiten mit der TDOA-Methode seine eigene Position bestimmen. Alternativ kann der Empfänger auch eine genaue Uhr benutzen, um die Distanzen und zu berechnen und dann die TOA-Methode verwenden. Die TOF-Methode wird nicht verwendet, da die Satel- 8
2.1 Positionsbestimmung Verfahren TOA TOF TDOA RSSI AOA Anforderung synchroni- genau Uhr genaue, keine Funkempfän- an Harware sierte, synchroni- ger, der genaue sierte (nur Richtung Uhr Anker) bestimmen Uhr kann Position Kreisen Kreisen Hyperbo- Kreisen Geraden im Schnitt- loiden punkt von Anzahl und O(n2 ) O(n2 ) O(n) O(n2 ) linea- O(n) li- Art der zu lineare lineare nichtline- re Gleichun- neare lösenden Gleichun- Gleichun- are Glei- gen Gleichun- Gleichun- gen gen chungen gen gen Sende- einseitig zweiseitig, einseitig einseitig einseitig richtung eventuell zweimal Fehler- Synchroni- Bestimmung Synchroni- Signalstärken- Genauigkeit ursache sierung der Sende- sierung Entfernungs- der Win- /Empfangs- Korrelation kelbestim- verzögerun- mung gen Genauigkeit hoch hoch hoch gering hoch Tabelle 2.1: Vergleich der Verfahren liten, die von mehrere Millionen Endgeräten verwendet werden technisch nicht in der Lage sind von allen diesen Endgeräten eine Anfrage zu empfangen und dar- auf zu antworten. Durch die Verwendung von Satelliten sind solche Systeme sehr zuverlässig und ermöglichen es, die genaue Position auf der Erde zu bestimmen. Während die Nutzung von satellitenbasierten Systemen keine hohen Kosten ver- ursacht, ist die Inbetriebnahme und Wartung solcher Systeme aufgrund der hohen Kosten von Raketen und Weltraumkomponenten sehr hoch, so soll das Europäische Galileo System, welches 2021 fertiggestellt werden soll, 7 Milliarden Euro kosten [10]. Weitere satellitenbasierte Positionsbestimmung sind unter anderen das amerikani- schen NAVSTAR-GPS [11], das russische GLONASS und das chinesische Beidou. GPS besitzt bis zu 32 Satelliten, von denen mindestens 4 erreichbar sein müssen um die Position bestimmen zu können. Galileo hat 22 aktive Satelliten, und soll bis 2021 30 haben. Für zivile Anwendungen hat GPS eine Genauigkeit von bis zu 7,8m. Das europäische Galileo System soll eine Genauigkeit von bis zu einem Meter erreichen. GLONASS wurde 2011 wieder als voll funktionsfähig erklärt, seine Ge- nauigkeit betragt 5 bis 10 Meter [12]. Das Baidou System befindet sich ebenfalls noch im Aufbau und ist nur daher nur in Ostasien und im Westpazifik erreichbar. 9
2 Stand der Technik Es soll eine Genauigkeit von 10 Metern erreichen. 2.1.3 Bildbasierte Positionsbestimmung Die Copter benötigen eine Kamera, um die Schäden an den Stromleitungen aufzu- nehmen, diese kann auch zur Positionsbestimmung zu verwenden werden. Mit der Bilderkennung an Kanten ist es möglich, die Veränderung der Position zu bestimmt. Dies würden jedoch eine erhebliche Rechenleistung erfordern insbesondere, da die Position in Echtzeit aktualisiert werden soll, und nur begrenzte Genauigkeit liefern. Zudem ist eine solche Positionsbestimmung insbesondere bei Flugobjekten ungenau, da die Bewegungserkennung sich in der Regel an großen starren Objekten orientiert. Wolken werden einfach als solche Objekte klassifiziert und ihre Bewegungen führen zu weiteren Ungenauigkeiten. Da die Kamera zur Erkennung von Schäden mit einem Gimbal bewegt wird, wird diese Methode zusätzlich komplizierter. [13][14] 2.1.4 Bewegungsbasierte Positionsbestimmung Die einfachste Möglichkeit die Position zu bestimmen, ist basierend auf den Steue- rungsbefehlen der Rotoren die Bewegung des Copters und somit seine relative Posi- tion zu berechnen. Dieser Ansatz hat den Vorteil, dass keine zusätzliche Hardware benötigt wird und die erforderlichen Berechnungen wenig Rechenleistung benötigen. Eine solche Position ist jedoch sehr ungenau und Fehler häufen sich. So werden äuße- re Einflüsse wie Wind, Temperatur oder Luftdruck nicht mit einbezogen, aber auch interne Faktoren wie Faktoren, welche nicht präzise gemessen werden können. Diese Ungenauigkeiten können bei fahrenden Systemen durch eine Karte der Umgebung und einen Stoßsensor umgangen werden, dies ist jedoch bei fliegenden Coptern nicht möglich. Eine bewegungsbasierte Positionsbestimmung bietet sich aufgrund des ge- ringen Aufwands als Unterstützung eines anderen Systems an. [15] 2.1.5 Lokales Funknetz Die Nutzung eines lokalen Funknetzes ist eine naheliegende Lösung. Es gibt jedoch verschiedene Funkarten. Am naheliegendsten wäre es, den Frequenzbereich des GPS zu verwenden, dies ist jedoch verboten. Wireless local area networks Wireless local area network (WLAN) ist einer der am weitesten verbreiteten lo- kalen Funkstandards. Dies bringt eine Vielzahl an existierender Implementation, Forschungsprojekte und Dokumentation mit diesem Standard mit sich. Eine weitere Folge der Verbreitung von WLAN ist jedoch, dass die Frequenzbereiche, in denen WLAN verwendet wird, insbesondere der lizenzfreie 2,5 GHz Bereich, mit vielen störenden Signalen gefüllt sind. 10
2.2 Lateration Ultrabreitband IEEE 802.15.4 Die Verwendung von Ultrabreitband (UWB) nach IEEE 802.15.4 [16] ist eine neue- re Entwicklung, da die Erweiterung 802.15.4a erst 2007 standardisiert wurde und die erforderlichen Frequenzen erst 2008 freigegeben wurden. Die Besonderheit von Ultrabreitband ist, das ein breiter Frequenzbereich von mindestens 500 MHz verwen- det wird, und es keine Trägerfrequenz gibt. Dieser Frequenzbereich liegt zwischen 3,1 und 10,6 GHz. UWB erlaubt es hohe Datenraten von bis zu 1,289Gbit/s über kurze Entfernungen übermitteln zu können. Da dabei eine breiter, aufgrund der neu- en Entwicklung freier Frequenzbereich verwendet wird, ist diese Übertragung nicht durch andere Funkübertragungen gestört. UWB zur Positionsbestimmung bietet sich besonders an, da es eine höhere Verträglichkeit gegenüber Überlagerung von Nachrichten hat und da die Sendeleistung mit 0,5 mW sehr gering ist, wodurch der Stromverbrauch gering ist. [17] 2.2 Lateration Die Lateration bei TOF mit drei Ankern kann durch die Lösung von zwei linearen Gleichungen implementiert werden, da man die Koordinaten direkt aus den Ent- fernungen berechnen kann ohne ein Gleichungssystem zu lösen. Sie liefert jedoch stets zwei Ergebnisse, welche keine gute Fehlerfortsetzung haben, da Abweichun- gen senkrecht zur Ebene der drei Anker nicht überprüft werden. Man kann eins der Ergebnisse oft ausschließen, etwa weil sich die zweite Position unter dem Boden be- findet, da sie gespiegelt auf der anderen Seite der Ebene der drei Anker liegt. Die Genauigkeit ist aber auch senkrecht zur Ebene, welche die drei Anker bilden, gering. Entfernungsbestimmung Die Entfernung lässt sich durch die bekannte Lichtgeschwindigkeit sowie die ge- messene Flugzeit der Funksignale bestimmen. Um dabei Ungenauigkeiten zwischen den Uhren der Sender und Empfänger zu überbrücken wird das Signal vom Tag an die Anker und dann zurück an den Tag gesendet und die Gesamtzeit für die Zweiwegübertragung verwendet, so dass d = t/2 ∗ c. Um die Empfangs- und Sen- deverzögerung auszugleichen kann die zweiseitigen Zweiwegübertragung verwendet werden, bei der je eine Entfernungsbestimmung vom Tag und vom Anker ausgeht. 2.3 Koordinatenformate Für Positionsbestimmungssysteme werden im wesentlichen zwei Koordinatenforma- te verwendet. Ein lokales kartesisches und ein globales Kugelkoordinatensystem. Das lokale System wird zur Positionsbestimmung verwendet und hat Meter als Einheit. Das globale Koordinatensystem verwendet Längengrade und Breitengrade, wobei zu beachten ist, das generell bei Grad Minuten und Sekunden verwendet werden. Dabei 11
2 Stand der Technik ist der Umrechnungsfaktor 60. Die Höhe setzt sich aus zwei Werten zusammen. Die Höhe gibt die Höhe über dem Meeresspiegel beziehungsweise dem Geoid in Metern an. Die Geoidabweichung gibt die Abweichung des Geoids von einem optimalem Ellipsoid an. Diese Abweichung ist in Deutschland etwa +45m. 2.4 Koordinatenübertragung Zur Koordinatenübertragung müssen Formate, die vom Pixhawk unterstützt sind verwendet werden. Der Pixhawk hat einen seriellen Universal Asynchronous Receiver Transmitter (UART) GPS-Port, welcher Positionsdaten im NMEA 0183 Format erwartet. 2.4.1 UART UART ist ein Hardwarebaustein, der serielle Datenübertragung implementiert. Da- bei werden beliebige Bitraten unterstützt, die jedoch zwischen Sender und Empfänger übereinstimmen müssen. Üblich sind zwischen 110bit/s und 500kbit/s. Außerdem werden optional Paritätsbits unterstützt. 2.4.2 NMEA 0183 Das NMEA 0183 Protokoll ist ein textbasiertes Übertragungsformat und Speicher- format für Navigationsgeräte [18][19]. Das NMEA Protokoll verwendet dafür Sätze. Jeder Satz ist bis zu 82 Byte groß. Ein NMEA Satz beginnt immer mit $ gefolgt von 2 Buchstaben, welche den Typ des Navigationsgeräts bestimmen. Tabelle 2.5 zeigt dabei die wichtigsten Typen.Danach folgen 3 Buchstaben, welche die Art des NMEA Satzes bestimmen. Wichtige NMEA Satztypen sind RMC für Koordinaten, GGA für Satellitennavigation (GPS fix data), sowie DTM für Datumsangaben. Da- nach folgen je nach Satztyp eine Anzahl von kommaseparierten Werten. Dann folgt ein ∗ und eine hexadezimale zweistellige XOR Prüfsumme, welche jedoch lediglich empfohlen ist. Jeder NMEA Satz endet mit einem Windowszeilenumbruch \r\n. Die meisten NMEA Sätze beinhalten eine Uhrzeit im hhmmss.ss Format sowie Längen- und Breitendaten. Längen- und Breitendaten sind stets positv, wobei ein separates Datenfeld durch N oder S für Breite und E oder W für Länge angibt, in welchem Quadranten sich die Position befindet. Für die Breite sind in der Regel sechs Stellen reserviert, von denen zwei den Breitengrad angeben und vier mit zwei Vorkom- mastellen und zwei Nachkommastellen die Breitenminuten. Analog wird die Länge angegeben, wobei hier drei Stellen für den Längengrad bereitstehen, da dieser mehr als 100 betragen kann. Die Anzahl der Nachkommastellen der Minuten kann bei einigen Sätzen variieren. 12
2.4 Koordinatenübertragung RMC Der RMC Satz ist der einfachste Satz, um Koordinaten zu übertragen. Dieser muss bei satellitenbasierten Systemen mindestens alle 2 Sekunden gesendet werden. Ein RMC Satz hat dabei folgendes Format: $GPRMC,hhmmss.sss,v,BBbb.bbbb,B,LLLll.llll,W,VV.V,31.66,280511,A*XX Tabelle 2.2 zeigt die Bedeutung der einzelnen Bestandteile. Daten Bedeutung Beispiel GPRMC Beschreibung des Satztyps GPRMC hhmmss.ss Zeit in Stunden, Minuten und Sekunden 092751.000 v Validität der Daten, A für valid, V bei Feh- A lern BBbb.bbbb Breitengrad 5321.6802 B Vorzeichen des Breitengrads, valid sind N und N S LLLll.llll Längengrad 00630.3371 L Vorzeichen des Längengrads, valid sind W und W E VV.V Geschwindigkeit, in Knoten 0.06 AA.A Bewegungsrichtung in Grad 31.66 DDMMYY Datum 280511 M.M Magnetische Abweichung, Winkel zwischen A magnetischem und geographischem Nordpol von der aktuellen Position aus m Vorzeichen der magnetischen Abweichung, E valid sind W und E XX Prüfsumme, hexadezimal E5 Tabelle 2.2: Aufbau des NMEA 0813 RMC Satzes GGA Der GGA Satz überträgt Informationen über satellitenbasierte Systeme. $GPGGA,hhmmss.ss,BBbb.bbb,B,LLLll.llll,L,Q,nn,r.r,h.h,H,g.g,G,a.a,DDDD*XX Tabelle 2.3 zeigt die Bedeutung der einzelnen Bestandteile. Die Dilution of Precisi- on (DOP) ist dabei die Ungenauigkeit der Position basierend auf dem Schnittwinkel der Kreise oder Hyperboloiden, die aus der TOF oder TDOA Positionsbestimmung hervorgehen. Dieser Wert ist dabei zwischen 0 und 10. Dabei repräsentiert 1,0 die maximale Genauigkeit und Werte unter 1,0 bringen keine zusätzlichen Genauigkeits- verbesserungen. Je größer der Wert ist desto ungenauer die Positionsbestimmung. Der Wert 10,0 repräsentiert dabei die Grenze, an der das Gleichungssystem noch nicht unterbestimmt ist und Positionsbestimmung möglich ist. Bei Werten größer 13
2 Stand der Technik Daten Bedeutung Beispiel GPGGA Beschreibung des Satztyps GPGGA hhmmss.ss Zeit in Stunden, Minuten und Sekunden 092751.000 BBbb.bbbb Breitengrad, 5321.6802 B Vorzeichen des Breitengrads, valid sind N und N S LLLll.llll Längengrad 00630.3371 L Vorzeichen des Längengrads, valid sind W und W E Q Qualität der Daten, 0 für ungültig, 1 füp GPS 1 fix, 2 für DGPS fix nn Anzahl der Satelliten, die verwendet wurden 04 r.r Genauigkeit (horizontale DOP) 1.2 h.h Höhe über dem Geoid 331.2 H Einheit der Höhe M g.g Geoidabweichung 21.3 G Einheit der Geoidabweichung M a.a bei DGPS: Alter des Datensatzes, sonst leer DDDD bei DGPS: Referenzstation (0 bis 1023), sonst leer XX Prüfsumme, hexadezimal 8F Tabelle 2.3: Aufbau des NMEA 0813 GGA Satzes als 10 ist keine Positionsbestimmung möglich, daher wird dieser nicht gesendet, da der GGA Satz lediglich mit validen Koordinaten gesendet wird. 14
2.4 Koordinatenübertragung Gerätetypen Tabelle 2.5 zeigt unterstützte NMEA Gerätetypen [19]. Zwar passen die Typen CX oder SN auf eine lokale Anwendung, um jedoch einen GPS Sender zu simulieren sollte GP für GPS verwendet werden. ID Bedeutung CS Communications - Satellite CX Communications - Scanning Receiver GA Galileo GL GLONASS GN kombinierte Positionslösung mehrerer GNSS GP Global Positioning System (GPS) SN Electronic Positioning System, other/general Tabelle 2.5: NMEA Geräte-IDs 15
3 Grundlagen Es werden hier die theoretischen Grundlagen der zu verwendenden Algorithmen und Verfahren betrachtet werden. 3.1 Mathematischer Hintergrund Die mathematischen Grundlagen der Laterationsalgorithmen für TOF und TDOA werden hier hergeleitet. Und eine Betrachtung der Fehlerfortpflanzung wird betrie- ben. 3.1.1 TOF Beim TOF-Verfahren [20], wie auch bei den TOA- und RSSI-Verfahren, wird die Position basierend auch Entfernungen von Ankern bestimmt. Dazu müssen Kugeln um die Anker geschnitten werden. Die Position des Tags ist im Schnittpunk der Kugeln. xi Dabei seine mit n Ankerpositionen p~i = yi zi i = 1, . . . , n und dazugehörigen Entfernungen vom Tag di , sowie der zu bestimmen- x den Position des Tags p = y bekannt. Es ergibt sich das Gleichungssystem z kp − pi k = di ∀i = 1, . . . , n. (3.1) √ Dabei sei kvk = kvk2 := v T v. Dieses Gleichungssystem ist für weniger als drei Anker unterbestimmt, für drei gibt es bis zu zwei Lösungen und für vier oder mehr Anker ist es überbestimmt. Es gilt für alle Anker i kpk2 − 2pT pi + kpi k2 = kpi − pk2 . (3.2) Subtrahiert man dies nun für einen anderen Anker j so gilt: 2(pT pi − pT pj ) = kpi k2 − kpj k2 − kpi − pk2 + kpj − pk2 (3.3) Verwenden wir 3.1 ist also kpi k − kpj k − di + dj pT (pi − pj ) = . (3.4) 2 17
3 Grundlagen Sei nun n·(n−1) ×3 A= p1 − p2 , p1 − p2 , · · · , p1 − pn , p2 − p3 , · · · , pn−1 − pn ∈ IR 2 (3.5) und analog 1 n·(n−1) b= kp1 k − kp2 k − d1 + d2 , · · · , kpn−1 k − kpn k − dn−1 + dn ∈ IR 2 2 (3.6) dann gilt nach 3.4 Ap = b (3.7) was ein allgemeines lineares Gleichungssystem mit bekanntem A, b ist, welches mit einem geeigneten Verfahren nach p gelöst werden kann. Zu beachten ist jedoch, dass die Anzahl der Spalten in A und b quadratisch wächst, was bei einer hohen Zahl von Ankern die Rechenzeit beeinflusst. Mögliche Verfahren sind beispielsweise Varianten des Gaußverfahrens. Dieses hat eine Laufzeitkomplexität von O(pq 2 ) für eine Matrix A ∈ IRp×q , p ≥ q. Somit ist die Gesamtlaufzeit O(n2 ). 3.1.2 TDOA xi Bei der TDOA Entfernungsbestimmung sind ebenfalls n Ankerpositionen p~i = yi zi i = 1, . . . , n bekannt. Zusätzlich sind Entfernungsdifferenzen tij = kp − pi k−kp − pj k bekannt. Dieses Gleichungssystem lässt sich im Gegensatz zu dem des TOF-Verfahren nicht leicht linearisieren, daher muss es mit einer numerischen Methoden gelösten werden. Die Methode der kleinsten Quadrate (englisch least squares) ist beispiels- weise möglich, da diese den Gesamtfehler minimiert. Da dim p = 3 sind mindestens drei Entfernungsdifferenzen erforderlich. Bei drei Entfernungsdifferenzen ergibt das Gleichungssystem jedoch mehrere Lösungen, daher sollten stets vier Entfernungs- differenzen gegeben sein. Dabei ist zu beachten, dass die Entfernungsdifferenzen tij , die linear abhängig sind, nicht gleichzeitig verwendet werden dürfen. So dürfen nicht tij , tjk und tik = tij + tjk gleichzeitig verwendet werden. Sonst ist das Gleichungssys- tem unterbestimmt und ergibt in den unendliche Lösungen. Dies schließt Systeme mit drei Ankern aus, da es in diesen unmöglich ist 3 nicht linear unabhängige Ent- fernungsdifferenzen zu bilden. 3.1.3 Fehlerbetrachtung Wenn man nun in die Positionsberechnung einbezieht, dass die Messungen der Ent- fernungen zwischen den Ankern und dem Tag ungenau mit den absoluten normalver- teilten Eingabefehlern ri = (d0i − di ) ∼ N (0, σi2 ) sind, erhält man einem Ausgabefeh- ler r = kp − p0 k. Dabei sind d0i die gemessenen Distanzen zwischen Ankern und dem Tag und di die tatsächlichen Distanzen sowie p0 die errechnete Ankerposition. Zur 18
3.2 Platzierung von Ankern Minimierung des Ausgabefehlers ist die Wahrscheinlichkeitsverteilung der Messung benötigt [1]: 1 1 0 0 T −1 0 P (d |p) = q exp − (d − d) R (d − d) (3.8) |2πR| 2 2 σ 0 ··· 0 1 ... .. 0 σ22 . wobei d0 := (d01 , · · · , d0n )T und R = .. .. .. sowie |·| die Determinante. . . 0 . 0 · · · 0 σn2 Sei nun die Standardabweichung aller Sensoren gleich σ = σ1 = · · · = σn . Dann gilt 1 1 2 P (d|p) = √ exp − σ −2 kd0 − dk (3.9) 2πσ n 2 Dies ist die Likelihood Funktion, welche maximiert werden kann, um die optimale Lösung zu finden. Man erkennt daran, dass für den Ausgabefehler gilt r ∼ N (0, σ 2n ) (3.10) sofern die Likelihoodfunktion einen globalen Extrempunkt hat, was auftritt, wenn das Gleichungssystem Ap = b nicht unterbestimmt ist. 3.2 Platzierung von Ankern Für eine eindeutige Lösung werden mindestens 4 Anker benötigt. Um die Fehlerfort- pflanzung aus Messfehlern der Anker-Tag Entfernungen möglichst gering zu halten, müssen diese 4 Anker speziell platziert werden. Für die Auswahl der Platzierung der Anker ist der resultierende Winkel zwischen den Ankern am Tag entscheidend. Die- ser sollte optimalerweise 90◦ für jedes Ankerpaar sein. Es ist zu beachten, wenn die vier Anker eine Ebene bilden, die Genauigkeit mit der einer Positionsbestimmung mit drei Ankern äquivalent ist und es zwei Lösungen gibt. Abbildung 3.1 zeigt die mittleren Schnittwinkel der Kreise K(pi , d0i ) in Abhängigkeit von der Tagposition in der Ebene. Im Raum sind die Anforderungen ähnlich, so dass die optimalen Po- sitionen der Anker auf den Ecken eines gleichseitigen Tetraeders liegen, in dessen Inneren sich alle Tags befinden. Solange alle Tags diese Anforderungen an die Po- sition erfüllen ist ihre Anzahl aus mathematischer Sicht irrelevant. Abbildung 3.2 zeigt die Genauigkeit der Positionsbestimmungen im TDOA und TOF Verfahren abhängig von der Position des Tags relativ zu den Ankern. Die Genauigkeit ist in beiden Verfahren sehr ähnlich, sie ist dabei insbesondere zwischen den Ankern be- sonders groß. Daher sollten die Anker so platziert werden, das der Tag sich immer zwischen ihnen befindet. 19
3 Grundlagen Abbildung 3.1: Mittlere Schnittwinkel der Kreise [1] 20
3.2 Platzierung von Ankern Abbildung 3.2: Genauigkeit der Positionsbestimmung [1] 21
4 Konzept Nachdem verschieden Möglichkeiten zur Positionsbestimmung betrachtet wurden, wird basierend auf der besten Möglichkeit für diesen Anwendungsfall ein Konzept zur Implementierung eines solchen Systems dargestellt. 4.1 Systemanforderungen Das zu entwickelnde System soll die Merkmale eines GPS Empfängers zu übertreffen. So soll die Genauigkeit der Positionsbestimmung weniger als 7 Meter betragen. Da UWB eine höhere Genauigkeit ermöglicht (2.1.5) wird hier aber ein höhere Anspruch gestellt und die Genauigkeit soll 20 cm betragen. Es sollen zwei mal pro Sekunde, was doppelt so schnell wie bei einem GPS Empfänger ist, neue Positionsdaten übertragen werden. Die Rechenzeit zwischen Messung der zur Positionierung notwendigen Daten und der Ausgabe der Position soll weniger als 100ms betragen, um sicherzustellen das die Positionsdaten aktuell sind. Der Stromverbrauch soll keinen wesentlichen Einfluss auf den Coper haben und unter 2 Watt liegen. Das Gewicht der zusätzlich am Copter erforderlichen Hardware soll den Flug nicht übermäßig beeinflussen und 100g nicht überschreiten. 4.2 Systemdesign Da satellitenbasierten System, aufgrund der fehlenden Indoorverfügbarkeit, bewe- gungsbasierte System aufgrund der hohen Fehleranfälligkeit und bildbasierende Sys- teme aufgrund der hohen Rechenzeit nicht möglich sind, wird ein lokales Funksystem verwendet. Da UWB eine höhere Zuverlässigkeit als WLAN liefert, wird dies werden. Dabei gibt es genau einen Tag (den Copter) und vier Anker. Eine höhere Ankeran- zahl würde keine Vorteile bringen, aber aufwendiger sein und drei Anker liefern keine eindeutige Position. Zur Lateration wird das TOF-Verfahren verwendet, da es kei- ne Uhrensynchronisation erfordert. Um die Reaktionszeit klein zu halten wird das TOF-Verfahren nur einmal vom Tag aus ausgeführt. Um dabei keine Genauigkeit zu verlieren, werden Sende- und Empfangsverzögerungen genau kalibriert. Die vier Anker kommunizieren dabei über UWB mit dem TAG, der dann seine Position be- rechnet. Nachdem er die Position in einen NMEA Satz umgewandelt hat, sendet er diesen über das UART GPS-Interface an den Copter. Um die Funktion des Systems zu überwachen kann eine Debug Node über UWB vom TAG den Status des Systems empfangen. Diese Daten werden anschließend über USB an einen PC übertragen, 23
4 Konzept wo sie im Begleitprogramm angesehen werden können. Abbildung 4.1 zeigt diesen den Systemaufbau. Der Tag, die Anker und die Debugnode sind dabei nucleo64, an denen über die Ardurino DIO-Pins ein DWM1000 angebracht ist. Der Tag ist über UART an den Pixhawk Flight Controller angeschlossen und sendet GPS Koordinaten an diesen. Über die GND und +5V Leitungen des UART Anschlusses wird er mit Strom ver- sorgt. Die Anker werden über den USB-Port mit Strom versorgt. Dafür werden sie in der Nähe von Steckdosen platziert und ein einfacher 230V Wechselstrom zu 5V Gleichstrom Transformator wird verwendet. Die Debugnode wird über USB des verbundenen PCs mit Strom versorgt. TOF wird implementiert, indem der Tag zweimal pro Sekunde eine Nachricht an alle Anker sendet, welche von diesen sofort beantwortet wird. Da der GPS-Empfänger, welcher außerhalb des IndoorFlightCen- ters verwendet wird, nur einmal pro Sekunde Positionsdaten liefert, erreicht das System damit eine Verdopplung der Positionsdaten. Aus dem Zeitunterschied zwi- schen dem Senden der Nachrichten an die Anker und dem Empfangen der Ant- worten werden die Distanzen berechnet. Die Positionen der Anker werden mit den Antworten mitgesendet, so dass der Tag seine Position berechnen kann. Wenn die Position berechnet ist, bildet der Tag zwei NMEA Sätze und sendet diese an den Pixhawk. Der erste Satz ist vom Typ GGA und enthält neben der Position und Zeit auch Metadaten wie die Positionsgenauigkeit und die Anzahl der GPS-Satelliten sowie die Höhe. Dabei werden immer 4 Satelliten und die höchste Genauigkeit gesendet. Der zweite Satz ist vom Typ RMC und enthält die Position, Zeit, so- wie Geschwindigkeit. Eine Übertragung enthält damit beispielsweise diese Daten: $GPGGA,105751.00,5053.5703,N,01258.3372,E,1,4,1.0,95.7,M,55.2,M,,*A6 \r\n$GPRMC,105751.00,A,5053.5703,N,01258.3372,E,0.0,0.0,291218,A*45\r \n Dabei wird als Geschwindigkeit stets 0 gesendet. Die beiden Fällen wird keine ak- tuelle Zeit angegeben sondern nur die Zeit seit dem Start des nucleo-64, da dieses keine persistente Uhr hat. Die Zeit bestimmt der nucleo-64 dabei durch die interne CPU-Clock, welche keine gute Genauigkeit über eine Lange Zeit liefert, da der pix- hawk nur einen ungefähren Wert zur Berechnung von Zeitdifferenzen benötigt, ist dies ausreichend. 4.2.1 Softwaredesign Die Software, die auf die nucleo-64 Boards geschrieben wird, soll robust sein, da ein Absturz dieser nicht direkt auffällt und die Wiederinbetriebnahme stets einen Neustart erfordert. Außerdem soll möglichst viel Code wiederverwendet werden, dass im Fehlerfall nur eine Software und nicht drei verschiedene bearbeitet werden müssen. Daher ist die Software, welche auf die nucleo-64 Boards geschrieben wird ist auf sehr ähnlich zwischen den Ankern, dem Tag und der Debug-node. Sie enthält stets die Bibliotheken für Hardwarezugriff, welche unter andrem das Senden von UWB Nachrichten ermöglicht. Die allgemeine Konfigurationsdatei, die UWB und UART 24
4.2 Systemdesign Abbildung 4.1: Systemaufbau Parameter festlegt ist ebenfalls auf allen Geräten. Der einzige Unterschied zwischen den boards besteht die main.c und die init.c. Dabei werden auf allen Boards in der init.c verschiedene Interrupthandler gesetzt und Tasks gestartet. Die main.c führt dann diese Tasks aus. Dabei erhält jeder Task stets einen festen Anteil der Prozessorzeit. UWB Packetaufbau Das Protokoll, welches für die UWB Übertragungen genutzt wird, soll aus Packten bestehen, welche abhängig von ihrem Typ verschiedene Funktionen erfüllen. So sind mit einem allgemeinen Packtaufbau alle Verwendungen einbegriffen. Um die Übert- ragungen effizient zu gestlten sind diese Pakete binär. Die verwendet UWB Packete haben stets einen 12 Byte Header, siehe Tabelle 4.1 sowie einen Inhalt variabler Länge. Diese Länge wird im Header übermittelt. Die ID der Boards wird dabei aus der HardwareID der Nucleo-64 boards bestimmt und ist aufsteigend, wobei die ID 25
4 Konzept 0 für das Debugboard reserviert ist. Die Paketheader beginnen mit 2 Byte frameContol, diese Feld ist konstant und signalisiert die Verwendung dieses Paketaufbaus. Danach folgt eine aufsteigende Pa- ketnummer, welche das doppelte Empfangen des gleichen Pakets verhindert. Die sourceId und destinationId Felder enthalten die Board ID des Senders und des Ziels. Dann folgt der Pakettype, welcher weiter in Tabelle 4.2 beschrieben wird und die Paketlänge in Byte. Unterstützte Packettypen zwischen Tag und Ankern sind An- frage und Antwort einer einseitigen TOF Entfernungsbestimmung, die vier Packete einer zweiseitigen TOF Entfernungsbestimmung, Anfrage und Antwort eines Dis- cover Paket, welches es dem Tag ermöglicht Anker zu entdecken. Zwischen Debug Node und Tag werden Statusanfragen, Statusantworten und die Entfernungen von allen Ankern zum Tag mit oder ohne Position des Tags. Alle Verbindungen erlau- ben zusätzlich das Senden eines KeepAlive-Packtes um zu verhindern, das es einen Timeout gibt. Headerfeld Datetyp Beschreibung frameControl UInt16 sequenceNumber UInt8 Aufsteigende Paketnummer destinationId UInt16 ID des Empfängerboards, Broadcast wird un- terstützt sourceId UInt16 ID des Senderboards packetType UInt8 Pakettyp, gibt Struktur des Nachrichtenkörpers an, siehe Tabelle 4.2 packetLength UInt16 Paketlänge in Bytes inklusive Header Tabelle 4.1: Headerfelder der UWB Pakete 26
4.3 Hardwareauswahl Packettyp Hex Beschreibung RANGING INIT SS 0x10 Anfrage einer einseitigen Entfernungsbestimmung RANGING INIT 0x11 Antwort einer einseitigen Entfernungsbestimmung RESPONSE RANGING INIT DS 0x20 Anfrage einer zweiseitigen Entfernungsbestim- mung RANGING WAY A 0x21 2. Paket einer zweiseitigen Entfernungsbestim- mung RANGING WAY B 0x22 3. Paket einer zweiseitigen Entfernungsbestim- mung RANGING RESULT 0x23 Ergebnis einer zweiseitigen Entfernungsbestim- mung DISCOVER 0x30 Packet zum entdecken von Ankern und Tags, for- dert auf mit DISCOVER RESPONSE zu antwor- ten DISCOVER 0x31 Antwort auf DISCOVER Paket RESPONSE STATUS 0x40 Packet fordert zum senden des Status auf STATUS RESPONSE 0x41 Antwort auf STATUS Paket, enthält Position, so- wie erfasste Anker DEBUG RANGING 0x60 Enthält alle Anker und Entfernungen, die Tag er- RESULTS fasst hat, an Debugnode DEBUG MESSAGE 0x61 Nachricht an debugnode zur Ausgabe im Begleit- programm DEBUG RANGING 0x62 Enthält alle Anker und Entfernungen, die Tag er- RESULTS AND POS fasst hat sowie Ergebnis der Positionsbestimmung, an Debugnode KEEP ALIVE 0x80 Paket zum Aufrechterhalten der Verbindung Tabelle 4.2: Unterstützte Pakettypen 4.2.2 Ankerpositionierung Die Positionierung der Anker sollte einen gleichseitigen Tetraeder um den zulässigen Bereich des Tag bilden, sodass die Schnittwinkel zwischen den Anker-Tag-Vektoren möglichst hoch sind (2.). 4.3 Hardwareauswahl Da die verwendete Hardware mit dem Copter mitfliegt, und von diesem Strom er- halten los, ist wichtig, das sie einen geringen Stromverbrauch hat und leicht ist. Außerdem ist es erforderlich, um die entwickelte Software einfach und schnell testen zu können, das verwendete Board schnell beschrieben werden kann und ein Debugger 27
4 Konzept Abbildung 4.2: Lateration mit 4 Ankern angeschlossen werden kann. 4.3.1 Decawafe 1000 Module Das Decawave 1000 Module (DWM1000) (Abbildung 4.3) ist ein UWB Modul, welches auf dem DW1000 Chip basiert. Er unterstützt gemäß IEEE802.15.4-2011 Datenraten bis zu 6,8Mbit/s im Frequenzbereich von 3,5-6,5GHz. Bei maximaler Sendestärke wird eine Reichweite von bis zu 300m erreicht. Dabei verbraucht der DWM1000 maximal 0,2 Watt beim Senden und 0,1 Watt beim empfangen. Zusätz- lich unterstützt er TOF und TDOA basierte Positionsbestimmung auf Hardwareebe- ne, was zu eine Genauigkeit im Bereich von 10cm führt. Das DWM1000 Modul wird via Serial Peripheral Interface (SPI) an den Hostprozessor angeschlossen. Um ma- ximale Sende- und Empfangsleistung zu ermöglichen, muss das Modul in Richtung des Empfängers oder Senders ausgerichtet werden. Die Abbildungen 4.4, 4.5 und 4.6 zeigen die Abhängigkeit der Empfangsstärke von der Rotation des Chips entlang der 3 kardinalen Achsen. Dabei hat die Rotation des Moduls an der Längsachse keinen Einfluss, das heißt von oben, unten und den Seiten ist die Signalstärke gleich (Abbildung 4.4). Der Empfang an den, der Antenne entgegen gerichteten Seiten 28
4.3 Hardwareauswahl Abbildung 4.3: Decawave DWM1000 Modul Abbildung 4.4: Einfluss der Azimutrotation auf die Sendeleistung ist nicht nur schlecht, da dort der Chip und daran angeschlossen das Board ist, sondern auch generell entlang der Längsachse bei etwa -10dB. Auch die kardinale Richtung ausgehend von der Antenne hat eine geringfügig schlechtere Sendeleistung von -10dB, dafür haben Richtungen, die geringfügig von dieser Achse abweichen den besten Empfang mit +5dB. Ober- und Unterseite des Chips weisen eine gute Sen- deleistung auf, jedoch ist zu beachten, dass die Unterseite teilweise vom nucleo-64 Board abgeschirmt wird (Abbildungen 4.5, 4.6). 4.3.2 nucleo64 Das NUCLEO-L476RG ist ein STM32 Nucleo-64 Board. Es besitzt einen ARM basierten STM32 Mikrocontroller. Es kann sowohl über USB als auch über Pins 5V Strom erhalten und an ein weiteres Board weitergeben. Das Board kann bis zu 300mA Strom verbrauchen, was jedoch durch eine Jumper auf 100mA begrenzt werden kann. Der Mikrocontroller wird programmiert, indem die Software über USB geflasht wird. Zur Arbeit mit dem Nucleo-64 gibt es eine auf Eclipse basierende 29
4 Konzept Abbildung 4.5: Einfluss der Elevationsrotation auf die Sendeleistung (1) Abbildung 4.6: Einfluss der Elevationsrotation auf die Sendeleistung (2) 30
4.4 Verwendete Programmiersprache IDE. Diese ermöglicht das schnelle schreiben der Software auf die Boards sowie den Anschluss eines Debuggers an das Board. 4.4 Verwendete Programmiersprache Da der STM32 Prozessor ARM Binärcode ausführt, kann man ihn in jeder Spra- che, die zu ARM kompiliert programmieren. Die begrenzten Ressourcen, Verfügbar- keit von Bibliotheken und Hardwarefeatures schließen jedoch alle Sprachen außer C/C++ aus. Da die Bibliothek für Hardwarezugriff auf das Board in C geschrieben ist, wird die Software ebenfalls in C geschrieben. Die Laterationsimplementierung, die auf eine C++ Bibliothek zum Lösen des linearen Gleichungssystems zugreifen muss, in C++ geschrieben werden. Die Begleitanwendung, welche auf dem PC lau- fen soll, wird in C# geschrieben, da sie nicht hardwarenah implementiert werden muss und da C# einfache Programmierung von graphischen Benutzeroberflächen mit .NET bietet. 31
5 Implementierung Die Implementierung der notwendigen Software beruht auf möglichst wenigen ex- ternen Abhängigkeiten beruhen. Verwendet werden nur die Bibliothek, welche den Hardwarezugriff erleichtert und eine Bibliothek zum Lösen des mathematischen Pro- blems. 5.1 Laterationsimplementierung Die Position des Tags aus den Entfernungen von den Ankern wird im Tag berech- net. Dazu muss der mathematische Laterationsalgorithmus auf diesem implementiert werden. Zur Berechnung der Position des Tag wird die C++ Bibliothek Eigen ver- wendet, welche Funktionen für lineare Algebra implementiert und insbesondere die Methode der kleinsten Quadrate ermöglicht. Die Eigenbibliothek, welche in C++ geschrieben ist, erwartet als Eingabe Objekte. Da alle anderen Teile der Softwa- re in C implementiert sind, wird ein Wrapper programmiert, welcher C structs in die zur Lateration erforderlichen Objekte übersetzt. Da sowohl C als auch C++ in ARM-Binärcode übersetzt werden, ist der Aufruf der Latertion einfach. 5.2 GPS Positionsberechnung Nachdem die lokale Position mit Hilfe von Lateration bestimmt wurde, wird um einen echten GPS-Empfänger zu simulieren, die Berechnung von globalen GPS Ko- ordinaten benötigt. Diese umfassen die geographische Länge und Breite sowie die Höhe. Dazu muss zunächst das lokale Koordinatensystem durch Rotation nach Nor- den ausgerichtet werden. x0 = x ∗ cos(α) + y ∗ sin(α) (5.1) y 0 = −x ∗ sin(α) + y ∗ cos(α). (5.2) Da alle Breitenkreise bis auf wenige hundert Meter gleich breit sind, lässt sich die Breite durch breite = of f setx + y 0 /111600m (5.3) berechnen. Da die Breite der Längenkreise von der geographischen Breite abhängt gilt für diese: laenge = of f sety + x0 /111300m ∗ cos(breite) (5.4) 33
5 Implementierung Die Breite im IndoorFlightCenter ändert sich aber nur im Sekundenbreich, daher wurde der Cosinus vorberechnet um Rechenzeit zu sparen. Die Offsets sind die geo- graphischen Koordinaten des lokalen Koordinatenursprungs sind fest einprogram- miert, kann aber nach Bedarf geändert werden. Da für die Navigation lediglich die lokalen Koordinatenveränderungen entscheidend sind, ist diese Position irrelevant, sie wurde jedoch mit einem GPS-Empfänger bestimmt. Da sich das IndoorFlight- Center im nordöstlichen Koordinatenbereich befindet, ist dieser als positiv definiert. 5.3 GPS Positionsübertragung Zur Positionsübertragung werden die NMEA Sätze nach jeder erfolgreichen Latera- tion via UART übertragen. Sollte die Lateration fehlschlagen, da nicht ausreichend viele, also weniger als vier, Anker erreichbar sind, oder die Anordnung der Anker eine Positionsbestimmung unmöglich macht, werden keine Daten übertragen. Dabei wird eine Datenrate von 88 kBit/s verwendet, diese kann jedoch angepasst werden, wenn sie sowohl im Pixhawk als auch in der Software des Tags geändert wird. Ei- ne höhere Datenrate senkt die Verzögerung, nach der die Daten ankommen, erhöht aber das Risiko eines Bitfehlers der Übertragung. Da die gesendeten NMEA Sätze insgesamt etwa 140Bytes umfassen, dauert der Sendevorgang etwa 12,7 ms. 5.4 Begleitprogramm Das Begleitprogramm ist eine in C# geschriebene .NET Anwendung, welche die Überwachung des Systems ermöglicht. Es zeigt die Positionen und Entfernungen der Anker sowie die berechnete Position des Tags an und stellt dies visuell dar. Dazu muss eine Debugnode mit spezieller Software via USB an einen PC angeschlossen werden. Die Debugnode empfängt diese Daten vom Tag. Zusätzlich ist es möglich, die Positionskoordinaten der Anker zu konfigurieren. Die Datentransfers zwischen den Nodes verwenden dabei UWB. 5.5 Systemaufbau Zur Installation des System im IndoorFlightCenter ist es nötig, geeignete Positionen für die Anker zu bestimmen. Die Anker sind in einem Gehäuse, welches direkt in Steckdosen gesteckt wird. Daher sind die Positionen der Steckdosen für die Positio- nierung essenziell. Ein Problem mit Steckdosen ist, das diese oft in gleicher Höhe auftreten und so die Anker in einer Ebene liegen. Die Verwendung der Steckdose ist im Raumplan in Abbildung 5.1 zu sehen. Während drei Anker in gleicher Höhe im Raum sind, ist der vierte an der Decke über dem Flugbereich des Copters an- gebracht. Der Coper und damit der Tag befindet sich dabei stets im markierten Rechteck und somit zwischen den vier Ankern. Zur Bestimmung der lokalen Ko- ordinaten der Anker werden die Gebäudepläne, welche genau Maße enthalten, ver- 34
5.5 Systemaufbau Abbildung 5.1: Platzierung der Anker im Raum IndoorFlightCenter wendet. Eine Abmessung ist aber auch möglich. Zusätzlich ist noch die Ausrichtung nach Norden und ein Punkt, welcher in lokalen sowie globalen Koordinaten vorliegt notwendig. Die Verbindung zwischen dem Pixhawk und dem Nucleo-64 konnte Pro- blemlos hergestellt werden. Die Befestigung des Boards am Copter war schwierig, da die Positionen, welche für derartige Hardware vorgesehen sind bereits belegt waren. Um die Kommunikation mit dem Pixhawk zu ermöglichen wurden noch Konfigura- tionen am Pixhawk vorgenommen. Der Kommunikationsmodus des GPS-Ports ist auf NMEA gestellt wurden und das UART Datenformat sowie die Datenrate wurde angepasst. 35
6 Ergebnisse Das Resultat der Implementierung ist ein UWB Positionsbestimmungssystem. Des- sen Funktion soll hier überprüft werden. Das System hat dabei folgende Kompo- nenten: eine Tag, vier Anker, eine Debug node sowie das auf dem PC laufende Begleitprogramm. Es ermöglicht die Positionsbestimmung eines Tags im IndoorF- lightCenter und die Weiterleitung dieser Position an einen Pixhawk Flight Control- ler. 6.1 Validierung Um die Funktionalität des entwickelten System zu testen, wurden Tests auf allen Ebenen entwickelt und durchgeführt. 6.1.1 Kriterien Die Kriterien an Genauigkeit, Rechenzeit, Performance und Einfluss auf den Copter aus 1.4 sollen erfüllt werden. Die die Funktionalität auf Softwareebene, insbesondere der Algorithmen zur Berechnung der Position, zur Erzeugung der NMEA Sätze und der Koordinatenumwandlung soll gewährleistet sein. Der Prozess des Laterations- algorithmuss soll dabei nicht auf den Spezialfall vier Anker beschränkt sein und er soll in Fehlerfällen NaN zurückgeben. Der Algorithmus zur Bestimmung der NMEA Sätze soll dabei stets valide Sätze zurückgeben. Die Koordinatenumwandlung soll im Koordinatenbereich des IndoorFlightCenters korrekte Daten ausgeben. 6.1.2 Unittests Um die Funktionalität auf Softwareebene, insbesondere der Algorithmen zur Berech- nung der Position, zur Erzeugung der NME Sätze und der Koordinatenumwandlung, zu gewährleisten wurde eine Vielzahl an Unittest geschrieben. Die Validierung der Positionsbestimmung spielt eine entscheidende Rolle, da Fehler in dieser nicht un- verzüglich auffallen aber dennoch zu groben Fehlern im darauf beruhenden System führen. Zusätzlich wurde der mathematische Teil des Algorithmus aus einer Biblio- thek importiert, deren korrekte Verwendung so bestätigt wird. Der Laterationsalgo- rithmus wurde dabei auf folgende Fälle getestet: Zunächst wurden Testdaten mit ak- kuraten Enterungen an verschiedenen Positionen und in verschiedenen Skalierungen getestet. Dabei wurden stets vier Anker verwendet. Dies ist zwar keine realistische Anwendung der Software, kann aber Fehler in der Implementation des Algorithmus 37
Sie können auch lesen