Quadcopter erfreuen sich immer größerer Beliebtheit. Ob in der Fotografie, um Bilder in Vogelperspektive zu erstellen oder als Profisport, in dem mittlerweile internationale Wettkämpfe ausgetragen werden. Gerade beim letzteren kommt es stark darauf an, wie die Drohne auf Eingabe vom Bediener reagiert. Natürlich kommt es sehr darauf an, wie die Motoren im Verhältnis zur Masse der Drohne dimensioniert sind. Aber auch Softwaretechnisch lässt sich vieles heraus holen. Beispielsweise würde ein schlecht eingestellter Regelalgorithmus dafür sorgen, dass ein noch so gut dimensionierter Motor sehr träge auf Eingangssignale reagiert. In der Arbeit [1] wird beispielsweise ein PID-Regler für die Lageregelung eines Quadcopters entworfen. Neben den aktuellen Beschleunigungen (Ist-Werte) in jede Achse brauch der Regler auch die aktuelle Winkelstellung des Quadcopters. In der Regel sind diese Signale stark verrauscht oder weisen andere Fehler auf (z.B. Offset oder eine Rampenfunktion über einen längeren Zeitraum). Daher ist es sehr wichtig diese Signale vor der weitergabe zum Regler geeignet zu filtern. In dieser Blogreihe soll auf diesen technischen Aspekt der Filterung eingegangen werden. Dies geschieht am Beispiel einer Winkelachse der Drohne.
Je nach Preisklasse können die Quadcopter mit verschiedensten Sensoren ausgestattet werden. Für den Menschen, der die Flugbefehle vorgibt, ist natürlich eine Kamera wichtig. Aber es gibt auch Sensoren, die nicht direkt sichtbar sind und im Hintergrund arbeiten. Dazu gehört vor allem der IMU (Inertial Measurement Unit)-Sensor. Wie der Name vermuten lässt, hat er was mit Trägheit im technischen Sinne zu tun. Sie messen sowohl die Winkelgeschwindigkeit um jede Achse ($\alpha$, $\beta$ und $\gamma$) sowie die Beschleunigungen ($\ddot{x}$, $\ddot{y}$ und $\ddot{z}$) in jeder Raumkoordinate.
Sie gibt es in verschiedenster Ausführung. Gerade im Bereich der Microelektronik werden sie als MEMS (Mikro-elektro-mechanisches System)-Sensor ausgeführt. Wie in Abbildung 1 zu sehen, sind die heutigen Sensoren kaum größer als ein 2-Euro Stück. Wobei der meiste Platz durch die Platine und äußere Beschaltung verloren gehen und nicht durch den Sensor selbst.

MEMS-Sensoren haben den Nachteil, dass die Messdaten selten direkt genutzt werden können. Bei den Sensoren handelt es sich um ein mechanisches System, ausgeführt als Mikroelektronik. Beispielsweise kann man sich den Beschleunigungssensor wie eine kleine Feder vorstellen. Wobei dessen Auslenkung über die Federkonstante mit der äußeren Kraft und somit der Beschleunigung verbunden ist. Daher sind bei MEMS Sensoren auch sehr verrauschte Daten zu erwarten, da jede winzige Vibration von dem Sensor aufgenommen wird.
Daher ist eine geeignete Signalverarbeitung von Nöten. Es haben sich verschiedenste Verfahren herauskristallisiert um solche Messdaten aufzubereiten. In der Arbeit [2] ging es beispielsweise nur darum, welche Algorithmen dafür geeignet sind. Dort werden das Komplementärfilter, DCM-Algorithmus oder der Madgwick-Algorithmus aufgeführt, um nur einige Stichpunkte zu nennen. Viele Algorithmen haben den Nachteil, dass sie speziell für eine Aufgabe entwickelt wurden. Der Kalmanfilter dagegen kann für beliebige dynamische (auch nichtlineare) Systeme entworfen werden um Messwerte zu filtern und schätzen. Daher haben wir uns für den Kalmanfilter entschieden, dessen Grundlagen in den nächsten Blogeinträgen beschrieben werden.
Quellen:
[1]: Quadcopter Plant Model and Control System Development With MATLAB/Simulink Implementation, Nicholas Ferry. Department of Electrical and Microelectronic Engineering, Rochester Institute of Technology, 2017, Rochester, New York.
[2]: Orientation estimation and movement recognition using low cost sensors, Álvaro López Revuelta. Department of Applied Signal Processing, Blekinge Institute of Technology, 2017, SE–371 79 Karlskrona, Sweden.