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

Meilenstein 1: Er fliegt!

August 30, 2012 in Allgemein, Videos

Unser derzeitiger Quadrocopter

Seit dem letzten Eintrag und dem Umbau ist nun schon ein Monat vergangen. Ein Monat voller Tests und Fehlerkorrekturen. Und jener Monat hat sich für uns ausgezahlt: Er fliegt.

Am Quadrocopter selber haben wir lediglich für den Empfänger noch weitere Buchsen hinzugefügt und die selbstgewinkelten Stiftleisten, haben wir noch durch vorgewinkelte Stiftleisten ersetzt. Das Ersetzen dieser Stiftleisten hat einen Elektronikfehler beseitigt, an dem wir sehr lange nach dem Umbau gesucht und gearbeitet haben, doch leider sind die schlimmsten meist auch die einfachsten Fehler, welche man einfach übersieht (hier geht nochmal ein Dank an Herr Heinrich Fischer).

Nach Beseitigung des Elektronikfehlers flog der Quadrocopter jedoch leider noch immer nicht. Statt abzuheben kippte er zur Seite weg. Dies war das nächste große Problem, da wir bereits alles mehrfach getestet hatten, ob auch alles korrekt angeschlossen und eingestellt ist. Der Fehler war am Ende eine falsche Gyroskoporientierung. Zwar hatten wir das Gyroskop zuvor eigentlich korrekt ausgerichtet, jedoch eine falsche Auffassung noch “Links” und “Rechts” gehabt, da diese nicht von vorne aus betrachtet, sondern von der Hinterseite aus betrachtet werden. Nachdem dieser Fehler (mit Hilfe von Dennis Hinzpeter und rcgroups-User TS00) aufgedeckt worden ist, wurde der Gyroskop noch einmal auf einer ebenen Fläche kalibriert. Damit war Christian’s langer Kampf mit der Elektronik/Software zunächst beendet.

Nachdem ebenfalls der Akku noch einmal komplett geladen worden und der 30. August 2012 angebrochen war, begann die erfolgreiche Testreihe. Doch Worte vermögen nicht zu sagen, was bewegte Bilder besser zeigen können:

Selbstverständlich sind dies erste Flugversuche mit dem Quadrcopter, welche rein auf dem Gyroskop basieren, da der Beschleunigungssensor nun erst in weiteren Flügen in der Luft eingestellt werden muss, bevor er aktiviert werden kann. Ebenfalls müssen wir noch selber lernen, den Quadrocopter sauber steuern zu können, da auch dies schwerer ist, als es sich anhören mag.

Wenn diese Phase abgeschlossen ist und wir den Quadrocopter mit der Fernsteuerung stabil in der Luft halten können, beginnt die Phase 2: In dieser werden wir ein Transceiver und ein weiteres Steuerboard (möglicherweise mit einem weiteren Atmega oder einem ARM Cortex-M3) auf dem Copter platziert werden, welche sich um die Kommunikation mit der Transceiver (Sender und Empfänger) am Computer auf dem Boden kümmert. Daraufhin schreiben wir ein Routenprogramm, mit dem man zunächst dem Copter eine Route am PC mitteilen kann, welche er ohne Beachtung von Hindernissen abfliegen wird. Die Arbeiten an diesem Programm haben bereits begonnen.

Die Phase 3 wird schlussendlich jene sein, dass Ultraschallsensoren am Quadrocopter angebracht werden, welche möglichst dann Hindernisse erkennen und ausweichen soll. Ebenfalls wird das Routenprogramm wohl um verschiedene autonome Modi erweitert werden (wie zum Beispiel zufälliger Flug).

Doch nun bricht zunächst die Phase 2 an und wird viel Arbeit erfordern.

Hier geht der Dank noch einmal an weitere Foren-Communities, welche unser Projekt verfolgen und uns stets nette Hilfestellung geben.

Ein sehr großer Dank geht natürlich noch an den Förderverein “Freunde und Förderer des Gymnasium an der Willmsstraße e.V.”, welcher unser Projekt überhaupt erst ermöglicht hat!

Dies war’s vom aufregenden Tag,
Das Demon-Team!

~ Christian

UPDATE:

Mittlerweile haben wir auch ein kleines Video von den ersten Flugversuchen aus der Perspektive der Onboard-Kamera zusammengestellt:

Euer Demon-Team!

~ Christian