Bericht

{autotoc addNumbering=true|addNumberingToc=true}

Sensoren

Als Sensorplatine wird die IMU 10DOF von Drotek verwendet, welche mit MPU6050
(Accelerometer, Gyrometer), HMC5883L (Magnetometer) und MS5611 (Barometer)
bestückt ist.

Accelerometer

Das Accelerometer dient zur Messung der Beschleunigung, liefert aber sehr verrauschte
Daten und ist daher mit sinnvoller Arbeitsinvestition als Positionsortungssensor erst
einmal unbrauchbar.

Gyrometer

Das Gyrometer misst Drehbeschleunigungen und kann in Zusammenarbeit mit dem
Magnetometer genaue und auch schnelle Angaben zur Ausrichtung des Zeppelins im
Raum dienen. Eine so hohe Genauigkeit ist für diese Zwecke nicht vonnöten und auch
zeitaufwendig daher wurde das Gyrometer nicht mit in die Software implementiert. Eine
weiterführende Arbeit könnte hier durchaus noch Verbesserungen erreichen.

Magnetometer

Das Magnetometer kann die Magnetfeldkomponenten in alle drei Raumrichtungen messen
und dient zur Bestimmung der Orientierung des Zeppelins im Raum. Dazu wird das
Erdmagnetfeld gemessen und anhand der gemessenen Werte die Orientierung bestimmt.
Um den Kurswinkel gegenüber Norden zu berechnen, reicht es die beiden horizontal-
en Komponenten \[B_x\] und \[B_y\] des Magnetfeldes zu bestimmen. Daraus kann man über
\[tan(\alpha) = \frac{B_y}{B_x}\] den Kurswinkel \[\alpha\] leicht bestimmen.
Zu beachten hierbei ist, dass geographischer und magnetischer Nordpol nicht am selben
Ort liegen. Viel mehr wandert der magnetische Nordpol etwa 40km pro Jahr in nordwest-
liche Richtung und ist zur Zeit circa 1400km vom geographischen Nordpol entfernt.
Um diese Diskrepanz zu berechnen sind allerdings globale Ortskoordinaten vonnöten,
welche zur Zeit noch nicht vorliegen und somit wird in erster Näherung, welche in
Deutschland aufgrund der Entfernung zum Nordpol auch berechtigt ist, der magnetische
auf den geographischen Nordpol gesetzt.

Kalibrierung

Die Rohdaten des Magnetometers beinhalten einen falschen Offset und je nach Mag-
netfeldkomponente eine andere Skalierung. Um diese zu bestimmen und im Nachhinein
herauszurechnen wurde der Sensor um seine vertikale Achse gedreht und die maximalen
Ausschläge \[B_{x,min}\] , \[B_{x,max}\] , \[B_{y,min}\] und \[B_{y,max}\] aufgezeichnet. Da aufgrund der vollständi-
gen Drehung um die eigene Achse die maximalen und minimalen Werte vom Betrag her
gleich sein sollten, kann man den Offset \[B_{x,off}\] und \[B_{y,off}\] per \[B_{x,off} = \frac{B_{x,min} +B_{x,max}}{2}\]
bzw. \[B_{y,off} = \frac{B_{y,min} +B_{y,max}}{2}\] . Wird dieser Offset im Folgenden jeweils von den Mess-
werten subtrahiert, so erhält man mittelwertfreie Messwerte. Die nun betragsgleichen
Minimal- und Maximalwerte werden wie folgt angepasst: \[B'_{x,min} = B_{x,min} − B_{x,off}\] und
\[B'_{x,max} = B_{x,max} − B_{x,off}\]
Um die Skalierung zu berichtigen werden die mittelwertfreien Messwerte mit einem Faktor

\[x_{scale} = \frac{1}{B'_{x,max}}\] beziehungsweise \[y_{scale} = \frac{1}{B'_{y,max}}\] skaliert.

Barometer

Mit dem Barometer kann der Umgebungsdruck \[p\] [mBar] und die Umgebungstemperatur
T [K] gemessen werden. Hieraus kann über die barometrische Höhenformel


\[p = p_{sealevel} · (1 − \frac{0,0065 · h}{T + 0,0065 · h})^{5,255}\]

die aktuelle Höhe h [m] berechnet werden:

\[h= \frac{((\frac{p_{sealevel}}{p})^{5,255} − 1) · T}{0,0065}\]

Die einzige Unbekannte in dieser Formel bleibt der Druck auf Meereshöhe \[p_{sealevel}\] . Dieser
kann am besten mit einer Kalibrierung bzw. Referenzmessung berechnet werden, da er
in Abhängigkeit des Wetters stark schwanken kann.

Kalibrierung

Ist beim Start des Zeppelins die Höhe \[h\] gegenüber dem Meeresspiegel bekannt, so kann
über die Temperatur und den gemessenen Druck der Druck auf Seehöhe berechnet wer-
den:


\[p_{sealevel} =\frac{p}{(1 −\frac{0.0065·h}{T +0.0065·h})^{5,255}}\]


Die Höhe \[h\] beim Start des Zeppelins kann entweder durch eine geographische Höhenkarte
oder durch GPS-Daten ermittelt werden. Der Druck \[p\] und die Absoluttemperatur \[T\]
können vom Sensor ermittelt werden.

Autopilot

Mit den oben genannten Sensoren, Barometer und Magnetometer, kann nun eine Regelungssoft-
ware, welche mit Hilfe der Messdaten die Steuerung übernehmen kann, entwickelt wer-
den.

Ardupilot

Nachdem für die Hauptplatine des Autopiloten das Ardupilot-Mega Board verwendet
wird, sollte zunächst die Tauglichkeit vorhandener Steuerungssoftware für unsere Zwecke
untersucht werden.
Außer ein paar weniger Hilfsfunktionen war die vorhandene Steuerungssoftware jedoch
nicht zu gebrauchen, da sie für die Steuerung von Flugzeugen, Helikoptern und Boden-
fahrzeugen entworden wurde, welche sich in ihren physikalischen Eigenschaften jedoch
grundlegend von denen eines Zeppelins unterscheiden und somit auch nicht genutzt wer-
den können.

Kanalauswahl

Eine Grundfunktion, welche der Autopilot beherrschen muss ist die richtige Kanalauswahl
zur Steuerung der Motoren und Servos. Je nach Einstellung der Fernbedienung soll der
Zeppelin entweder durch die Fernsteuerung, durch den Autopiloten oder ein Failsafepro-
gramm gesteuert werden.
Der Zeppelin verfügt über acht Servos beziehungsweise Motoren und daher werden auch
acht PWM-Signale per Fernsteuerung über einen PPM-Kanal übertragen. Die Kanal-
belegung kann in Tabelle 1 nachgelesen werden. Kanal 1 und 6 steuern den linken und
rechten Motor, wobei Kanal 5 den Servo steuert, welcher beide Motoren dreht. Kanal 2
steuert die Richtung des Seitenruders, Kanal 4 den Seitenrudermotor. Kanal 3 steuert
das Höhenruder. Über Kanal 7 kann die Dropline geworfen werden und Kanal 8 steuert
den Modus des Autopiloten. Die Dekodierung des PPM-Signals in acht einzelne PWM
Signale übernimmt ein ATmega328p , welcher ein kleiner, selbstständiger Prozessor auf
dem Ardupilot-Mega Board ist.
Das PPM Signal setzt sich aus den acht PWM-Signalen zusammen, wobei sich die Pul-
sweite eines PWM-Signals zwischen 1000μs und 2000μs befindet. Je nach Puslweiten-
länge können also verschiedene Daten übertragen werden.
Diese acht Kanäle werden von ihm wieder in ein einzelnes PPM-Signal gewandelt und

 

Tabelle 1: Belegung der Funkkanäle
Kanal Funktion
1 Motor links
2 Seitenruder
3 Höhenruder
4 Seitenruder-Motor
5 Motoren drehen
6 Motor rechts
7 Dropline
8 Autopilot



kodiert zum Hauptprozessor ATmega2560 weitergegeben, welcher die Kanäle wieder
dekodieren muss. Desweiteren übernimmt der ATmega328p das automatische Durch-
schleifen der ersten vier Kanäle von der Fernbedienung zu den Servos mittels eines
Hardwaremultiplexers, falls die Pulsweite des PWM-Signals des achten Kanals über
1750μs beträgt, siehe Tabelle 2. Die Kanäle fünf bis acht müssen in diesem Modus von
dem Hauptprozessor ATmega2560 gesteuert werden, dessen Software in dieser Ingenieur-
praxis entwickelt wurde.
Im Modus 1 werden alle Motoren und Servos ausgeschaltet. Dieser Modus wird beispiel-

Tabelle 2: Belegung von Kanal 8
Modus PWM-Dauer Verhalten Vom ATmega2560 gesteuerte Kanäle
1 <1250µs Failsafe: Alle Motoren aus 1-8
2 1250µs...1750µs Autopilot 1-8
3 >1750µs Steuerung per Fernbedienung 5-8
       


sweise dann aktiv, wenn die Verbindung zur Fernbedienung abgebrochen ist. Eventuell
ließen sich hier auch andere Vorgehensweisen, wie Position halten, oder langsames Ab-
sinken des Zeppelins implementieren doch darauf wurde hier verzichtet, da sich der
Zeppelin dadurch in gefährliche Positionen begeben kann. Je nach Flugumgebung kann
das Verhalten im Failsafemodus angepasst werden.
Im Modus 2 ist der Autopilot aktiv. Je nach Einstellung des Hauptcomputers müssen
hier die Sensordaten ermittelt werden und anhand derer die Ansteuerung der Motoren
und Servos vorgenommen werden. Hier werden Befehle wie „Position halten“, „Fliege
Kurswinkel XY“ oder Ähnliche behandelt.
Im Modus 3 müssen die Kanäle 5-8 der Fernbedienung von dem Hauptprozessor AT-
mega2560 eingelesen werden und direkt auf die Motoren und Servos weitergegeben wer-
den. Dafür dient das vom Hilfsprozessor ATmega328p generierte PPM-Signal auf dem
alle acht Kanäle übermittelt werden.

Regelungssoftware

Die drei Hauptgrößen, die von dem Autopilot geregelt werden müssen sind Kurswinkel,
Höhe und Fluggeschwindigkeit. Zur Regelung wurde ein selbstanspassender PID-Regler
verwendet.

Sicherheitsfeatures

Falls der Hauptprozessor ATmega2560 einmal abstürzen sollte, wurde ein Watchdog
eingebaut, der den Prozessor automatisch neustartet, falls er zwei Sekunden lang nicht
reagiert. Dies ist notwendig, da der Autopilot zuständig für die Steuerung der Motoren
zuständig und daher nich abstürzen darf bezeihungsweise nicht Offline bleiben darf.
Damit keine Verletzungen beim Start des Zeppelins entstehen wurde ebenfalls ein Startjumper
eingfeführt, der alle Autopilotaktivitäten deaktiviert. Erst wenn der Jumper entfernt ist,
kann der Autopilot aktiviert werden.
Zur Bedienung und korrekten Starten des Zeppelins wurde daher ein PDF entworfen, in
dem die Schritte zum Starten des Zeppelins aufgeführt sind. Zu finden ist die Anleitung
im Wiki .