Im Forschungsprojekt "SkeyeCopter" dreht sich alles um fliegende Mini-Helikopter mit 4 Rotoren, sog. Quadrocopter. Mit Kamera und Videofunk ausgestattet, können diese Fluggeräte der Feuerwehr, Polizei oder dem THW bei ihren Einsätzen helfen und wertvolle Informationen liefern. Die Quadrocopter sollen zunächst hauptsächlich als fliegendes Auge dienen. Bei entsprechendem Miniaturisierungsgrad ist aber auch der Einsatz anderer Sensorik (zum Beispiel zur Schadstoffmessung) möglich.
NEU: Autonomes Fliegen mit der Kinect und dem Pelican Quadrocopter
Technische Daten und Ausstattung
Hersteller der Quadrocopter vom Typ "Hummingbird" ist die Münchener Firma Ascending Technologies.
Das Gewicht unserer "SkeyeCopter" beträgt inklusive Akku etwas weniger als 500g. Angetrieben durch vier bürstenlose Motoren können sie sich 20 bis 25 Minuten in der Luft halten. Die dafür benötigte Energie wird von einem LiPo-Akku geliefert.
Die Fluggeräte sind ausgestattet mit Sensoren zur Erfassung der Lagewinkel und Beschleunigungen sowie der Drehgeschwindigkeiten um alle drei Raumachsen. Für die Positionskorrektur draußen steht ein GPS-Empfänger zur Verfügung. Ebenfalls vorhanden ist ein Magnetfeldsensor/Kompass.
Auf einem Mikrocontroller (ARM-Kern) läuft ein hocheffizienter Kalmanfilter zur Sensorfusion sowie eine Regelschleife, die für stabile Flugeigenschaften sorgt.
Der zweite Mikrocontroller vom gleichen Typ steht für unsere eigenen Anwendungen frei programmierbar zur Verfügung.
Die weitere Ausstattung umfasst eine Miniatur-Kamera mit Videofunkstrecke sowie ein auf dem Standard 802.15.4 basierendes Funkmodul zur Kommunikation (XBee-pro).
Für den Flug in Innenräumen werden verschiedene Sonarsensoren und Infrarotsensoren zur Erkennung von Hindernissen und der Messung von Entfernungen eingesetzt.
Weiterentwicklung der Systemarchitektur
Anfangs mussten die Quadrocopter noch von Hand per Fernsteuerung kommandiert werden. Trotz der guten und vergleichsweise stabilen Flugeigenschaften erfordert dies einige Übung. Unserem Ziel, die Fluggeräte in ein Gesamtsystem zu integrieren, das den Endanwender (Feuerwehr, THW, Polizei) von allen belastenden Tätigkeiten während des Einsatzes befreit, sind wir bereits erheblich näher gekommen.
Das ursprünglich erworbene Flugsystem vom Typ „Hummingbird“ wurde in unserem Forschungsprojekt durch zahlreiche Komponenten uns Sensoren erweitert.
Dazu zählen u.a.:
2 ATMega644P (8 Bit Mikrocontroller)
Gumstix Verdex (embedded PC)
XBee Pro Funkmodul (nach 802.15.4 Standard)
SRF 10 Sonarsensor
Logitech Quickcam Pro 4000
ADNS3080 (optical flow sensor)
Während die Mikrocontroller in C programmiert sind, wird auf dem Gumstix PC Pyhon und C/C++ für die Bildverarbeitung mittels OpenCV verwendet. Die grafische Benutzeroberfläche zum Steuern des Quadrocopters ist ebenfalls in Python mit dem Qt-Framework (PyQt) programmiert. Zur Kommunikation zwischen den einzelnen Komponenten kommen verschiedene Schnittstellen und Bussysteme zum Einsatz: RS-232, I²C, SPI, USB und schließlich der Funkstandard 802.15.4 zur Kommunikation zwischen Quadrocopter und Bodenstation.
Autonomes Landen
Für das autonome Landen sind mehrere Sensoren und Regler notwendig, die reibungslos zusammenarbeiten müssen.
Zunächst wird per Bildverarbeitung die Position des Quadrocpters relativ zur Landemarkierung gemessen. Die Höhenschätzung der Bildverarbeitung wird durch eine hochgenaue Messung eines Sonarsensors noch verfeinert. Ein Sensor zur Messung des optischen Flusses (optical flow) dient zur Schätzung der Geschwindigkeit über Grund und durch Aufintegrieren auch zur Schätzung der Position.
Zunächst fliegt der Quadrocopter GPS-gesteuert und in sicherer Höhe die bekannte Landeposition an. Wenn dann die Landemarkierung in das Blickfeld der onboard-Kamera gerät, übernimmt die Bildverarbeitung die genauere Positionsschätzung. Ein kaskadierter PID-Regler für Geschwindigkeit und Position ist in der Lage, das Fluggerät mit einer Abweichung von maximal 10 cm direkt über der erkannten Markierung zu halten. Mit Hilfe des Höhenreglers, der seine Messdaten von einem SRF 10 Sonarsensor bezieht, kann nun der Landevorgang eingeleitet werden, in dem die Flughöhe reduziert wird, bis der Quadrocopter auf dem Boden aufsetzt.
Optischer Fluss zur Messung der Fluggeschwindigkeit
Auf unseren Quadrocoptern übernimmt ein Sensor vom Typ ADNS 3080 die Rolle des Geschwindigkeitsmessers, wenn kein GPS-Signal verfügbar ist.
Dies tritt zum Beispiel innerhalb von Gebäuden oder auch im Außenbereich bei gestörtem Empfang auf. Dieser Sensor, der üblicherweise in optischen Mäusen verbaut ist, wurde mit einem speziellem Objektiv ausgestattet. Durch diese Modifizierung ist der Sensor in der Lage, auch aus größeren Höhen Messdaten zu liefern.
Der Sensor selbst besteht prinzipiell aus einer kleinen Kamera, die mehrere Tausend Bilder pro Sekunde aufnimmt. Diese Bilder sind zwar nur 30x30 Pixel groß, die Bildqualität ist aber für die folgenden Berechnungsschritte ausreichend:
Der Sensor extrahiert aus den Bilddaten markante Punkte und verfolgt sie in den aufeinanderfolgenden Bildern. Durch die Bewegung der Kamera relativ zum Boden verschieben sich die Bildkoordinaten dieser markanten Punkte. Aus diesen Vektoren wird letztlich die relative Bewegung des Sensors und damit des Quadrocopters ermittelt.
Bis dahin liegen die Bewegungs- und Geschwindigkeitsinformationen nur in Pixeln bzw. Pixel pro Sekunde vor. Zur Umrechnung in metrische Einheiten ist die aktuelle Flughöhe über dem Boden sowie die Kenntnis der internen Kameraparameter nötig. Die Flughöhe wird ständig mit Hilfe eines Sonarsensors gemessen. Die Kameraparameter ändern sich nicht und wurden durch Kalibrieren bestimmt.
SkeyeCopter in der Simulation USARSim
Im Rahmen der Diplomarbeit von Sebastian Drews entstand eine Schnittstelle zwischen der Roboter-Simulation USARSim und den vorhandenen SkeyeCopter-Softwaremodulen. Diese Schnittstelle erscheint für die höheren Schichten der Softwarearchitektur vollständig transparent, so dass der gleiche Programmcode ohne Anpassungen sowohl auf der realen Hardware als auch in der Simulation lauffähig ist.
Somit besteht nun die Möglichkeit, Steuerungsalgorithmen, die sich oberhalb der elementaren Regelungsebene in der Softwarearchitektur befinden, in der Simulation zu testen und zu evaluieren und diese dann ohne weitere Anpassungen auf die reale Hardware zu übertragen.
Im Zuge der Implementierung entstand ein neues Modul um die Bilder der simulierten Kameras aus USARSim effizient auszulesen und einer externen Bildverarbeitungskomponente zuzuführen. Dies war mit den bisher verfügbaren Softwaremodulen von USARSim nicht zufriedenstellend möglich. Ebenso wesentlich verbessert und korrigiert wurde das Verhalten des Sonarsensors, der in USARSim fehlerhaft implementiert war. Diese Verbesserungen an der Codebasis der Simulationsumgebung werden der internationalen USARSim- und RoboCup Rescue-Community zugänglich gemacht.
Publikationen zum Thema
Drews, S., Lange, S., Protzel, P. (2010). Validating an Active Stereo System Using USARSim. Proc. of International Conference on Simulation, Modeling, and Programming for Autonomous Robots (SIMPAR), Darmstadt, Germany.
Drews, S., Lange, S., Protzel, P. (2010). Creating a Distributed Development Environment for Unmanned Aerial Vehicles using USARSim. 55th International Scientific Colloquium (IWK), Ilmenau.
Lange, S., Protzel, P. (2010). Active Stereo Vision for Autonomous Multirotor UAVs in Indoor Environments. Proc. of 11th Conference Towards Autonomous Robotic Systems. Plymouth, UK.
Lange, S., Sünderhauf, N., Protzel, P. (2008). Autonomous Landing for a Multirotor UAV Using Vision.Workshop Proc. of SIMPAR 2008 Intl. Conf. on Simulation, Modeling and Programming for Autonomous Robots, Venice(Italy) 2008 November,3-4 ISBN 978-88-95872-01-8 pp. 482-491.
Studentische Arbeiten
Studentischer Mitarbeiter am Projekt ist Robert Michehl. Für die Mitarbeit an diesem Projekt suchen wir weiterhin interessierte Studenten der Fakultäten ET-IT und Informatik.