Autopilot auf Arduino-Basis

Einfach mal die Hände vom Pult nehmen, den Dingen ihren (vorbestimmten) Lauf lassen. Zuschauen, entspannen, nachdenken. Autopiloten sind hierzu das Schlüsselwort. Wir verwenden den ArduPilot Mega (APM), den Autopiloten von DIY Drones. Der Hersteller gibt an, dass das Gerät hunderte von 3D-Wegpunkte (Waypoints) verarbeiten, ganze Flugmissionen abfliegen, selbstständig starten und landen und selbst eine Kamera betreiben kann. Zusätzlich gibt es noch eine Menge optionaler Module, wie das Xbee-Telemetrie-Kit, das den Laptop in ein Cockpit verwandelt. Aber für den Einstieg ist das Basis-Paket des ArduPilot Mega kompliziert genug. Erst nach langem Montieren und Programmieren konnten wir herausfinden, was tatsächlich alles möglich ist. Gekauft haben wir die Komponenten bei Sparkfun, dem Vertriebspartner, den DIY Drones innerhalb der USA angibt. Es bietet sich an, das ArduPilot Mega-Kit, im Paket zu kaufen, da der ArduPilot Mega aus knapp 15 Einzelteilen besteht. Allerdings kann es zu Problemen beim Zoll kommen, der dieses Sammelsurium an Kleinelektronik nicht zuordnen kann. Die Lieferung erfolgt nach unserer Erfahrung schnell und mit der Bezahlung in die USA gibt es heute natürlich keine Probleme. Konstruktion nach Anleitung Die drei Herzstücke des APM-Kits sind die zwei Platinen und ein GPS-Empfänger. Das IMU-Shield ist eine blaue Platine, auf der alle Sensoren inklusive eines Luftdruck­messers zur Höhenermittlung und der Dreiachs-Gyro installiert sind. Die rote Platine ist das Gehirn und nennt sich UAV-Controller. Dies ist der Computer, der eigentliche Pilot des Systems und des Unbemannten Luftfahrzeugs (UAV). Auf diese Platine wird die Software geladen, die wiederum die Sensor- und Gyro-Daten des IMU-Shields liest und entsprechende Befehle an die Servos gibt. Diese beiden Komponenten würden für die Stabilisierung eines Flugzeugs bereits ausreichen. Um einen vollständigen Autopiloten erstellen zu können, ist ein GPS-Empfänger im Paket enthalten, den man an den UAV-Controller anschließt. Ähnlich wie bei einem Navigationsgerät, können nun Wegpunkte als GPS-Koordinaten auf einer virtuellen Landkarte markiert und dem Autopiloten mitgeteilt werden. Der APM steuert dann mit Hilfe der GPS-Lokalisation das Flugzeug auf der virtuellen Karte – und natürlich auch simultan dazu in echt zu diesen Wegpunkten. Beim Bau taucht bestimmt die eine oder andere Frage auf. DIY Drones hat eine eigene ArduPlane-Wikipedia als Erläuterung zu Verfügung gestellt, die eine sehr gute und ausführliche Schritt-für-Schritt Bauanleitung inklusive detaillierten Fotos und sogar Videos anbietet. Alle notwendigen Informationen von Montage, Software-Upload bis hin zum ersten Flug nach Wegpunkten sind zu finden. Chris Anderson antwortet auch recht verlässlich auf Fragen, so wie es sein Job zulässt. Allerdings ist die Anleitung auf Englisch. Man wird ein technisches Wörterbuch mit in die Werkstatt nehmen müssen. Die Montage umfasst grob drei Schritte: Als erstes müssen die abgewinkelten Steckverbindungen in die rote Con­troller-Platine eingelötet werden. Dann wird das blaue IMU-Shield mit dem UAV-Controller verbunden und ­verlötet. Schließlich muss das GPS an den so verlöteten Autopiloten angeschlossen werden. Ist das geschafft, sollte der Autopilot nun so aussehen, wie in der Abbildung oben. Die Software – Der APM Mission Planner Nun muss das Programm (Firmware) auf die Hardware aufgespielt werden. Das erfolgt über die USB-Schnittstelle, die bereits auf dem UAV-Controller installiert ist. Unter Windows 7 klappte es einwandfrei – dank der Wiki-Hilfestellung. Ist die Software ArduPilot Mega aufgespielt und mit dem APM Mission Planner verbunden, müssen sich Autopilot und Sender kennenlernen. Der Autopilot will erst einmal wissen, wie groß die Knüppelausschläge sind. Zweitens muss der Autopilot über einen Dreiwege-Schalter an- und abschaltbar sein. Auch dieser Schalter muss belegt werden. Für die ersten Flüge bietet es sich an, die Funktionen Manual (ausgeschalteter Autopilot), Stabilize (reine Stabilisierung) und RTL (Rückkehr zum Startpunkt) am Dreiwege-Schalter zu vergeben. Nach erfolgreicher Kalibrierung ersetzt man RTL durch Auto und kann dann durch das Umlegen des Schalters in den autonomen Flugmodus übergehen. Zu diesen Modi später mehr. Nachdem der Schalter belegt wurde, trennt man über disconnect den Autopiloten vom Programm und drückt Reset auf der IMU-Platine. Nun ist der Autopilot bereit zur Installation im Flugzeug. Die Installation des Autopiloten im Modell Nie die Propellerblätter montiert lassen, wenn man den Autopiloten zum ersten Mal aktiviert – ein wichtiger Hinweis, den man befolgen sollte, bis der Autopilot vollständig kalibriert ist. Unserer Erfahrung nach ist das Benehmen des Modells während der Autopilot-Kali­brierung nicht berechenbar. Auch wenn die Anleitung sehr hilfreich ist, die Kalibrierung ist manchmal durch Trial-And-Error gekennzeichnet und es kann passieren, dass das Modell in der Werkstatt den Befehl bekommt, in 100 Meter über dem Startpunkt zu kreisen. Hat man Empfänger und Servos angeschlossen, muss man überprüfen, ob sie alle in die richtige Richtung ausschlagen. Dazu schaltet man am Sender in den Stabilize-Mode, den man vorher am Dreiwege-Schalter festgelegt hat. Nun versucht der Autopilot das Modell in der Horizontalen zu halten. Neigt man die Nase, reagiert das Höhenruder und versucht auszugleichen. Schaut man sich im APM das Menü Mission Planner unter Flight-Date an, kommt man sich ein wenig wie im Cockpit vor. Die Sensordaten des IMU-Shields werden im Mission Planner ausgelesen und in einen virtuellen Horizont umgewandelt, der auf Neigen des Modells reagiert. Wirkt eine Funktion verkehrt herum, kann man diese über kleine Pins am IMU-Shield umpolen. Leider kann der Autopilot nicht die Querruder separat ansteuern. Die Querruder müssen daher über ein Y-Kabel gekoppelt werden. Wer das Modell nach der Kalibrierung noch nicht fliegen will, kann den Autopiloten innerhalb eines Flugsimulators testen. Der ArduPilot Mega ist kompatibel mit XPlane oder FlightGear. Da wir keinen der beiden besaßen, fuhren wir direkt zum Flugplatz. Der erste Flug – Loslassen können Wichtig ist, den Autopiloten beim Einschalten in der Waagerechten zu halten. Liegt er schräg, wird zu Beginn diese Position als waagerecht kalibriert und das trudelnde Abstürzen ist sicher. Die Anleitung von DIY Drones mahnt, dass der Weg zum ersten Flug nach Wegpunkten in drei Schritten passieren soll. Vor jedem Flug sollte man in der Hand testen, ob das Modell im Stabilize-Modus richtig auf Neigen und Schwenken reagiert. Dann kann man im zweiten Testflug starten. Ist das Modell in der Luft, schaltet man wieder in Stabilize und schaut, wie sich das Flugzeug verhält. Fliegt es ruhig und stabil, kann man den Dreiwege-Schalter in die RTL-Stellung legen. Return-to-Launch befiehlt dem Flugzeug, zum Startpunkt zurückzukehren und dort zu kreisen. Die Home-Location muss man vorher im Flight Planner festlegen. Kommt das Modell zum Start zurück und beginnt zu kreisen, ist man bereit für den ersten autonomen Flugversuch nach Wegpunkten. Exkurs 1: Finetuning Es kann passieren, dass das Flugzeug im Stabilize- oder RTL-Modus anfängt zu schlingern, wie ein Autoanhänger bei zu hoher Geschwindigkeit. Auch wenn das ein amüsanter Anblick ist, sollte man schnell eingreifen und den Autopiloten deaktivieren, indem man wieder in den Manual-Mode schaltet. Dieses Schlingern wird dadurch verursacht, dass der Autopilot mit zu hoher Empfind­lichkeit agiert. Nach manueller Landung muss man den Autopiloten wieder an die Software anschließen und kann im Menü Configuration die Empfindlichkeit verringern. Es reicht hier oft, die P-Werte für „Servo Roll PID“ und „Servo Pitch PID“ zu verkleinern. Hat man das Aufschwingen abgestellt, kann man nun den Autopiloten in all seinen Modi nutzen – denn davon hat er einige. Neben Stabilize und RTL steht noch Fly-by-Wire, Loiter und der tatsächlich Auto-Modus zur Verfügung. Fly-by-Wire haben wir nicht getestet. Es scheint aber den Flieger in der Richtung und Position zu halten, in der man den Fly-by-Wire Modus aktiviert hat. Loiter bezeichnet das Kreisen über einem vordefinierten Punkt. Zur Wahl steht das unbegrenzte, das Kreisen für eine bestimmte Zeit und für eine bestimmte Anzahl von Runden. Für die letzten beiden Befehle braucht der Autopilot allerdings Informationen, um zu wissen, was er danach machen soll. Sonst fliegt er weiter seine Runden. Exkurs 2: Das Arduino-System Im Prinzip hat der ArduPilot Mega zwei Ebenen: eine für normale Nutzer, die mit dem APM Mission Planner arbeiten werden, und eine für Profis. Wenn man sich auskennt, kann man sämtliche Einstellungen und Befehle des Autopiloten ändern. Allerdings benötigt man Kenntnisse in Programmiersprachen. Die Hardware und Software des ArduPilot Mega basiert auf der Arduino-Plattform, die auch von Künstlern, Designern oder Kunsthochschulen verwendet wird, um interaktive Installationen zu bauen. Die Arduino-Plattform ist sehr beliebt, da sie sowohl im Hardware- als auch im Sofware-Bereich Open-Source ist. Das heißt, dass der Quellcode offen verfügbar ist und man kann so die Arduino-Software einfach für neue Hardware konfigurieren. So könnte man zum Beispiel anhand der Arduino-Plattform mit Entfernungsmessern ein Parkleitsystem für sein Kfz entwickeln. Wer sich hier einarbeiten will, dem steht die Welt der Robotik offen. Wir blieben aber vorerst in der Luft und versuchten, das Modell Wegpunkte abfliegen zu lassen. Waypoints – Which way to go? Um einen Weg abzufliegen, muss man dem Autopiloten erst sagen, zu welchen Koordinaten geflogen werden soll. Das ist mit dem APM Mission Planner inzwischen so einfach, wie mit dem Autonavi einen Urlaub zu planen. Man öffnet den Flight Planner und blickt auf ein Satellitenbild. Der APM hat mehrere Karten zur Verfügung, zwischen denen man wählen kann. Standard ist Google Satelite. Hat der Autopilot GPS-Empfang, kann man seinen aktuellen Standort einfach per Mausklick auf Home-Location festlegen. Eine klein grüne Birne zeigt, wo auf der Welt man sich befindet. Ein weiterer Klick auf der Karte setzt den ersten Wegpunkt. Das rote Flieger-Icon soll nach dem Start die Wegpunkte 1 bis 5 abfliegen und dann über 5 große Kreise ziehen. Ganz so geradlinig sieht die Realität nicht aus. Trotzdem fliegt der Autopilot erstaunlich genau den gelben Strich ab. Jedem der Wegpunkte sind separate Befehle zuweisbar. So kann man beispielsweise eine bestimmte Anzahl von Kreisen über einem Wegpunkt drehen und dann weiterfliegen. Auch lässt sich die Höhe verändern. Es gibt eine ganze Reihe verschiedener Befehle. Kunstflug ist jedoch nicht möglich. Der Autopilot kann keine Loopings oder eine programmierte Acht fliegen – es sei denn, man malt eine Acht aus Wegpunkten. Lost Bei unseren ersten Versuchen hatten wir Probleme mit dem GPS-Empfänger von u-blox und fanden sehr lange keine Satelliten. Es hat beinahe 40 Minuten gedauert, bis er zwei Satelliten fand. Es scheint notwendig zu sein, die Firmware des GPS-Moduls in regelmäßigen Abständen mit einem Update zu versorgen. Da diese nur über das FDTI-Kabel oder das Xbee-Wireless-Telemetrie-Modul möglich ist, sollte man von vornherein eines der beiden erwerben. Nachdem die Satelliten schließlich gefunden wurden, starteten wir zum ersten autonomen Flug. Beim Aktivieren des Auto-Modus gab die Elektronik Gas, um die vorgegebene Höhe des ersten Wegpunkts zu erreichen und drehte in die entsprechende Richtung ab. Danach flog er ruhig und sauber die Wegpunkte ab. Man sollte nicht zu enge Kurven vorgeben, da sonst der Flug etwas ruppig wirkt. Sind die Wenden entspannt großzügig angelegt, kann man die Hände vom Sender nehmen und seinem Flugzeug beim selbständigen Flug zusehen und betrachten, wie es die vorgegebenen Befehle befolgt. Sollte das Modell plötzlich ausreißen, kann man schnell ausgleichen oder in Manual schalten. Unser Autopilot verlor während eines Flug offenbar die Satelliten, fand sie aber sofort wieder. Der Flug wirkte etwas betrunken, war aber zu keinem Zeitpunkt dem Absturz nahe. Starten und landen kann der Autopilot ebenfalls. Wir haben nur die Landung getestet, da wir einen Segler ohne Fahrwerk als Basis für unseren Autopiloten gewählt hatten. Man weist dem letzten Wegpunkt im APM Mission Planner den Befehl LAND zu und legt die Höhe dieses Wegpunkts auf null Meter. Da der Autopilot bereits die Höhe, die er beim Einschalten für null Meter hält, ist es ratsam auf derselben Höhe zu landen, um das Modell nicht in einen Hügel zu rammen. Der Autopilot durchläuft dann mehrere vorprogrammierte Schritte, um zu landen. Sobald das Modell zwei Meter vom Aufsetzen entfernt oder unter drei Meter Höhe im Landeanflug fällt, schaltet er den Motor ab und der Autopilot stabilisiert das Flugzeug für den geraden Flug. Da der Autopilot von Haus aus eine recht langsame Reisegeschwindigkeit hat, sind die Landungen recht genau. Analyse Hat man einen erfolgreichen Flug absolviert kann man sich die gespeicherten Flugdaten abrufen und am Bildschirm analysieren. Dies ist sehr hilfreich, um den Autopiloten nachträglich zu justieren. Allerdings muss man sich hierzu etwas mit den Begriffen und der Datenmenge vertraut machen. Die Interessierten können hier nachträglich überprüfen, wo und wann es vom Kurs abgewichen ist. Wie erwähnt, ist der ArduPilot Open-Source und man kann einiges Zusätzliche anfügen. So ist er mit einem Luftdruckmesser (Manometer), einem Airspeed-Sensor und einem Spannungsmesser für den Akku kompatibel. Selbst ein Sonar ist anschließbar. Der ArduPilot kann zusätzlich über einen Servo den Auslöser einer Kamera betätigen. Der Impuls zum Auslösen kann ein Wegpunkt oder eine bestimmte Fluglage sein, bei der der ArduPilot den Befehl zum Betätigen gibt. Am praktischsten ist aber das XBee-Wireless-Telemetrie-Modul. Damit sendet der Autopilot seine Daten auf dem 2,4-Gigahertz-Band an eine Basis am Boden, die man an einen Laptop anschließen kann. So ist es möglich, Flugdaten aus der Luft abzurufen und auszuwerten oder aber gar eine neue Flugroute hochzuladen, während das Modell noch in der Luft ist. Das Xbee muss allerdings separat erworben und montiert werden. Produkt mit Zukunft Der ArduPilot Mega ist sicher einer der besten Autopiloten, die es zurzeit zu kaufen gibt. Allerdings befindet es sich in ständiger Entwicklung und ist kein System, das man auf das Modell klebt und losfliegt. Andererseits folgt den Entwicklungen eine lebhafte Szene von Computerfachleuten und Hobbytechnikern, die mitarbeiten. Die Wiki wurde allein während des Schreibens dieses Artikels zwei Mal verändert und ergänzt. Das System zu durchschauen verlangt Geduld und vermutlich mehr Computeraffinität, als fliegerisches Verständnis. Trotzdem ist es sehr spannend zu betrachten, was ein Flugzeug macht, dessen Steuerung man einem Computer überlässt.