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-BerichteIndoor 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
iiiInhaltsverzeichnis
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
vINHALTSVERZEICHNIS
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
viAbbildungsverzeichnis
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
viiTabellenverzeichnis
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
ixAbkü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
xi1 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.
11 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
21.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.
32 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.
52 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
62.1 Positionsbestimmung
Abbildung 2.1: Vergleich TOA und TDOA in der Ebene [1]
72 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-
82.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.
92 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
112 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
132 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.
142.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
153 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
173 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
183.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.
193 Grundlagen
Abbildung 3.1: Mittlere Schnittwinkel der Kreise [1]
203.2 Platzierung von Ankern
Abbildung 3.2: Genauigkeit der Positionsbestimmung [1]
214 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,
234 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
254 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
264.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
274 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
284.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
294 Konzept
Abbildung 4.5: Einfluss der Elevationsrotation auf die Sendeleistung (1)
Abbildung 4.6: Einfluss der Elevationsrotation auf die Sendeleistung (2)
304.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.
315 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)
335 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.
356 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
37Sie können auch lesen