Zurück aus der Vergangenheit und mit Schub in die Zukunft!

April 26, 2013 in Allgemein

Die Copter stehen stets bereit

Die Copter stehen stets bereit

Seit den letzten zwei Monaten ist es etwas ruhig um projectDemon geworden. Der Grund dafür ist, dass wir alle voll und ganz mit dem Abitur beschäftigt waren und unsere Zeit vollkommen darauf konzentrieren mussten. Doch nun sind die schriftlichen Arbeiten geschrieben und wir können uns wieder unserem Projekt widmen, welches wir auch nach dem Abitur mit wöchentlichen Treffen am Freitag fortsetzen. Doch auch wenn es in den letzten zwei Monaten nicht viele Meldungen gab, so gibt es doch riesige Fortschritte, welche noch vor der Abiturphase geschafft wurden.

Unser typischer Arbeitsbereich!

Unser typischer Arbeitsbereich!

Die größten Fortschritte betreffen ein Teilprojekt von projectDemon über das wir eigentlich erst wieder berichten wollten, wenn es komplett funktionsfähig ist: ProCopterX, unsere eigene Flugsoftware. Hier gibt es seit dem Release sehr viele Neuerungen, doch die wichtigsten sind, dass nun der PID-Regler und ein einfacher Komplementär-Filter implementiert wurden, was das Herzstück der Regelung ist, damit der Copter sich gerade in der Luft halten kann und nicht wegkippt oder sich im die eigene Achse dreht. Bis zum Beginn der Abiturphase sind die Regler insofern bereits fertig, als das nach mehreren Testflügen der Copter bereits in der Luft fliegen und schweben konnte, wenn auch noch sehr wackelig und auch nur für circa einer Minute, bevor die Regelung dann doch versagt. Wichtig hierfür ist, dass man bei ProCopterX nun auch mit der Fernbedienung den Copter komplett steuern kann.

Die Funkverbindung funkt bereits!

Die Funkverbindung funkt bereits!

In jedem Fall wird die Entwicklung bei ProCopterX nun wieder aufgenommen und nachdem der Testcopter seine Ersatzteile erhalten hat, wird auch wieder getestet werden, besonders um die richtigen PID-Werte zu finden. Doch neben der eigentlichen Copter-Software von ProCopterX hat auch die Computeroberfläche, also ProCopterX_Control viele Neuerungen erfahren, sodass dieses nun weit aus stabiler läuft, Debug-Werte ausgeben kann und die PID-Werte direkt über die Oberfläche verändert werden können, ohne dass der Copter neu programmiert werden muss! Die gesamten Fortschritte haben sehr viele Tage harter Arbeit erfordert und wir hoffen, dass wir bald komplett auf unsere eigens programmierten Flugsteuerung umsteigen können, nicht zuletzt um unser eigentliches Hauptziel leichter erreichen zu können.

Unsere Planung zum autonomen Flug

Unsere Planung zum autonomen Flug

Denn dieses Hauptziel besteht noch immer darin, den Copter fast autonom fliegen zu lassen. Auch an dieser Stelle wird seit einiger Zeit gearbeitet, doch leider hat uns bisher kaputte Hardware einen Strich durch die Rechnung gemacht, zuletzt hatten die Funksender leichte Hardwareprobleme, welche wir jedoch beheben konnten und nach bereits funktionierender Funkverbindung auch unsere Daten sauber übertragen können. Dafür wurde innerhalb von mehreren Stunden an Arbeit eine Code zur Ansteuerung der NRF24L01-Sender/Empfänger geschrieben. Hier könnte der Fortschritt bei ProCopterX entscheidend sein, sodass die Funkverbindung über unsere Empfänger und Sender direkt über ProCopterX laufen kann.

So werden Abstände gemessen!

So werden Abstände gemessen!

Nebenbei musste der Greifarm leider aus mechanischen Gründen aufgegeben werden. Als Ersatz arbeiten für dafür derzeit an einem ebenfalls schon vor einiger Zeit erwähnten Ziel, welches für unseren autonomen Flug wichtig ist: Die Erkennung von Hindernissen. Für dieses Problem haben wir unser bisher auf Ultraschall festgelegt, da dieses nicht so leicht falsche Signale aufnehmen wird, wie zum Beispiel bei Licht, wo auch äußeres Licht die Sensoren anregen kann. Eine funktionierende Abstandsmessung haben wir ebenfalls bereits entwickelt und wird nun auf mehrere Ultraschallsensoren erweitert. Hier soll sich ein eigener Controller um die Erkennung von Hindernissen kümmern und dem Flugcontroller über den I2C-Bus mitteilen in welcher Richtung auf dem Copter das Hindernis liegt, damit dieser ausweichen kann. Auch hierfür wird ProCopterX wichtig sein, da diese Verfahren dort direkt implementiert werden können.

Im Anschluss noch ein Video von den ersten Tests mit ProCopterX 0.2 Beta, wo zum ersten mal der PID-Regler und der Komplementärfilter implementiert und getestet wurden (mittlerweile haben wir den Copter mit ProCopterX wesentlich mehr stabilisiert bekommen!):

Soweit,
das Demon-Team!

~ Christian

Das grüne Rechteck

Februar 7, 2013 in Allgemein

Die rohen Platinen

Gestern war wieder einmal ein Demon-Treffen und dieses stand ganz im Zeichen der neuen Platine. Denn wie zuvor angekündigt, haben wir unseren Schaltplan, welchen wir vorher auf einer Lochrasterplatin per Hand verdrahtet haben, nun auf ein Layout übertragen und dieses fertigen lassen. Herausgekommen sind wunderschöne Platinen, mit denen es in Zukunft vollkommen vermieden wird, dass Störungen auftreten.

Auf dem Copter

Denn genau diese Störungen, zu denen unter anderen Kurzschlüsse zwischen den Drähten bei Vibration und andere Kontaktmöglichkeiten, aber auch die Tatsache, dass die Lochrasterplatine an den Schraublöchern sehr leicht brach und instabil wurde, gehören nun der Vergangenheit an. Dies bedeutet mit anderen Worten, dass der Carbon-Copter nun nur noch seinem Akku, dem Wind und dem Geschick des Piloten ausgesetzt ist, plötzliche, elektronisch-bedingte, Abstürze aber wohl nicht mehr auftreten.

Ebenfalls wird die Platine auch auf dem Testcopter von ProCopterX eingesetzt, wobei hier noch auf die Lieferung von einem Arduino Mini Pro gewartet werden muss. Wenn dieses da ist, wird die Entwicklung bei ProCopterX weiter voranschreiten. Ab sofort ist das Demon-Treffen übrigens wieder am Freitag, sodass am nächsten Freitag mit vielen Neuigkeiten zu rechnen sein darf.

Hier noch einmal ein Voher-Nachher-Vergleich:

Das Demon-Team,

~ Christian

Ein schöner Platz zum Testen, Senden und Greifen

Januar 23, 2013 in Allgemein

Beim projectDemon-Treffen heute gab es wieder einmal einiges zu erledigen und noch viel mehr zu berichten. So ist nun unter anderem ProCopterX 0.1 Beta erschienen, die Funkboards fertiggestellt und der Greifarm in greifbarer Nähe gerückt.

Pure Konzentration!

Nachdem ProCopteX bisher nur in der Version 0.1 Alpha vorlag, ist diese nun um sehr viele Features reicher in der Version 0.1 Beta erschienen. Unter anderem wurde nun ProCopterX_Control veröffentlicht, mit dem man die Daten des Controllers auf dem PC anschaulich dargestellt bekommt. Ebenfalls können nun Fernbedienungsempfänger, Sensoren und einiges mehr ausgelesen, gemixt und als Endwert an die Motoren ausgegeben werden. Dies war ein hartes und langes Stück Arbeit, doch es hat sich gelohnt. Mehr zur neuen Version gibt es auf http://procopterx.chisaw.de

Als nächster Schritt muss nun auf die geätzten Platinen gewartet werden, welche Anfang Februar geliefert werden sollen. Mit diesen schließen wir ein zuvor ständig auftretendes Wackelkontakt und Feuchtigkeitsproblem aus, was unseren Copter schon das ein und andere mal abstürzen ließ, da es zum kurzzeitigen Kurschluss kam. Sobald diese Platinen ankommen, wird auch der Testcopter mit einer solchen ausgerüstet, woraufhin dann der PID-Regler implementiert werden kann. Als letztes werden dann die Sensordaten von Störungen bereinigt werden müssen, wofür der Komplementärfilter oder Kalmanfilter zum Einsatz kommt, wobei dies das größte, schwerste und längste Stück Arbeit sein wird. Ebenfalls werden noch die Fernbedienungsfunktionen implementiert, mit denen sich die Motoren aktiv schalten lassen oder ähnliches.

Dreh dich, Copter, dreh dich!

Um die Regelung des Copters dann testen zu können, wurde heute ein Testaufbau gebaut, in dem man den Quadrocopter einklemmen kann und er sich so um eine Achse drehen kann, wobei er sich durch die zwei drehenden Motoren möglichst in Waage halten soll. Dieses Testgestell ist ein wichtiger Schritt für viele Tests, da es sehr schwer und umständlich wäre, bei nicht einmal annähernd funktionierenden Regelungen zu versuchen vom Boden zu starten.

Eines der Funkboards

Den ganzen Tag hat Simon hingegen an den Funkboards gearbeitet und diese fertiggestellt, wobei selbstverständlich noch die Software fehlt. Eines dieser Boards soll später auf dem Quadrocopter installiert werden, das andere auf dem Boden bleiben und mit dem PC kommunizieren. Angesteuert wird der NRF24L01 dabei über den SPI-Bus, welcher als nächstes von Simon implementiert wird und anschließend der NRF24L01 über SPI angesteuert wird. Dies ist ebenfalls ein wichtiger Schritt Richtung halb-autonomer Flug und anschließend voll-autonomer Flug.

Materialien für den Greifarm

Lennart, welcher derzeit an einem Greifarm für den Quadrocopter arbeitet, hat heute das gesamte Material für diesen Greifarm besorgt, wo unter anderem vier Servo-Motoren, diverse Aluminium-Stangen, Schrauben, Schaumstoff und weiteres zugehört. Dieser Greifarm soll es unserem Copter ermöglichen sich über die Fernbedienung zu öffnen und schließen und so Dinge durch die Gegend zu transportieren. Wahrscheinlich wird der Greifarm schon demnächst fertiggestellt und getestet werden.

Wie man sieht, projectDemon steht nicht still und jede Woche gibt es eine Menge Neuigkeiten rund um das Projekt.

Euer projectDemon-Team,

~ Christian

Von ProCopterX, einem Greifarm und weiteren projectDemon-Aufgaben

Januar 11, 2013 in Allgemein

Gestern war nach einiger Zeit der Weihnachtsferien wieder ein projectDemon-Treffen und wir haben keine Zeit verschenkt und direkt angefangen weiterzuarbeiten. Hier ist es im Wesentlichen so, dass derzeit Christian sich um ProCopterX kümmert, eine weitere Erklärung dazu folgt, Lennart gestern konkrete Pläne für einen Greifarm des Quadrocopter ausgearbeitet und die nötigen Bauteile bestellt hat und Simon an der Funkverbindung vom Quadrocopter zum Boden über 2.4Ghz-Transmitter arbeitet.

Man sieht also, das Projekt ist im vollen Gange und steht ganz und gar nicht still. Denn kurz vor den Ferien haben wir am Copter bereits die neue Fernbedienung angebracht, welche schon auf dem Weihnachtsbild zu sehen war und ebenfalls haben wir kleine aber sehr helle LED-Streifen an der Unterseite des Copter angebracht, welche wieder mit grünem Licht andeuten, bei welchen Ausleger es sich um den vorderen handelt.

Doch nun zu den einzelnen Aufgaben:

Erste Skizzen von ProCopterX

Was ist ProCopterX? Hierbei handelt es sich um ein Unterprojekt von projectDemon, bei versucht wird der schwierigen Aufgabe nachzukommen eine eigenen Flugregelung zu entwickeln. Wie sieht das im Wesentlichen aus? Der Controller steuert die Motoren über ein PPM-Signal (Puls-Pausen-Modulation) an, wobei er dort ebenfalls die Werte des Empfängers der Fernbedienung ausliest und diese einbezieht. Doch der wesentliche Punkt ist, dass der Copter in der Luft auch stabil stehen muss, wofür Sensoren zum Einsatz kommen.

Diese soll der Controller hier über den I²C-Bus auslesen. Bei den nötigen Sensoren handelt es sich um einen Beschleunigungssensor, welcher die wirkenden Kräfte in g (Erdanziehung: 1g) misst, und einem Gyroskop, welcher die Drehraten misst, also mit anderen Worten die Winkelgeschwindigkeit, um wie viel Grad/Sekunde der Sensor sich also dreht.

Über diese Sensoren kann man mit einem geeigneten Modell eine Nulllage bestimmen, welche der Copter erreichen soll, wobei diese Nulllage jeweils eingestellt werden muss, wenn der Copter auch wirklich auf geraden Boden steht. Durch eine Sensorfusion wird der Drift des Gyroskops und die Ungenauigkeit des Beschleunigungssensors eliminiert wird, wie auch Rauschen im Signal (siehe Kalman-Filter).

Der Testaufbau von ProCopterX

Dadurch kann nun die aktuelle Lage des Copters bestimmt werden. Um diese auch zu erreichen wird ein PID-Regler angewandt, welcher versucht denn vorgegebenen Sollwert, die Nulllage, zu erreichen, in dem dieser Regler eine Stellgröße, die Motorgeschwindigkeit, einstellt, welche der Störung, also die Differenz aus aktueller Lage und Nulllage, entgegenwirkt und den Copter so wieder aufrichtet.

All diese Daten werden schlussendlich gemischt und als PPM-Signal zu den Motoren gesendet. Die Entwicklung einer solchen Flugregelung ist ziemlich komplex, doch auf der Unterprojektseite http://procopterx.chisaw.de wird ständig über Fortschritte dabei berichtet und es stehen ebenfalls dort Tutorials zur Verfügung, um die notwendigen Grundlagen ebenfalls zu erlernen.

Bei dem Greifarm hingegen handelt es sich um die Idee, dass der Copter neben den Kamera-Aufnahmen, auch kleine Objekte transportieren kann. Daher wird dieser Greifarm als Modul entwickelt, sodass es an dem Copter angebracht und auch wieder abgenommen werden kann. Bei dem Greifarm werden vier Servo-Motoren mit einer Stellkraft von circa 1,2kg zum Einsatz kommen, welche definitiv ausreichend sein sollten um die Kraftreserven des Copters, was er an Gewicht tragen kann, abzudecken.

Bei der Funkverbindung sieht es derzeit so aus, dass ein zweiten Board über der Flugsteuerungsplatine sitzt, welches aus einem Atmega328P und einem 2.4-Ghz-Transmitter besteht. Dieser steht in Kontakt zu einem gleichen Modell auf dem Boden, welcher dort an einem Computer angeschlossen ist. Im Computer wird in unserem Routenprogramm daraufhin eine Strecke in Metern über Linien einprogrammiert. Dieses Programm gibt dann die Information an den Bodenfunk weiter und dieser an den Copter.

Die Funkplatine ist über I²C mit der Flugsteuerung verbunden. Über diesen Bus erhält die Funkplatine aktuelle GPS-Daten von der Flugsteuerung und kann entsprechend Signale zur Flugsteuerung schicken, welche eine Fernbedienung simulieren. Aus der Differenz, was der Copter noch an Metern in eine Richtung zu fliegen hat und wo er sich derzeit befindet kann die Funkplatine entsprechend die Signale bestimmen und an den richten Punkten dann ändern. Die Flugsteuerung nimmt die Daten der Funkplatine solange als Fernbedienungsdaten, bis an der real angeschlossenen Fernbedienung ein Schalter umgelegt werden. Dieser bewirkt, dass ein Funkchannel seinen Wert stark ändert. Dies kann von der Flugsteuerung erkannt werden und benutzt daraufhin wieder die Daten der realen Fernbedienung, wodurch wir im gesetzlichen Rahmen für autonome Flugobjekte bleiben, welche ein mögliches manuelles Eingreifen vorschreiben.

Diese Lochrasterplatine wird durch eine Geätzte ersetzt

Ebenfalls haben wir bis gestern an einer Umsetzung unserer Flugsteuerungsplatine von einer Lochrasterplatine zu einer geätzten Platine gearbeitet. Das bedeutet, die Flugsteuerung wurde nochmals als Schaltplan entworfen und daraus wurde dann ein Platinenlayout erzeugt, welches nun in die Fertigung geht. Dies ist besonders wichtig, da die Pinabstände recht gering sind und unsere Lochrasterplatine, welche mit Draht verschaltet wurde leider in letzter Mini-Kurzschlüsse verursacht hat, und ganz besonders auch an den Befestigungspunkten bereits mehrfach nach einem Aufprall gebrochen ist, da Lochrasterplatinen sehr instabil sind und nur aus Hartpapier bestehen.

Soweit vom projectDemon-Treffen,

~ Christian