Historical project documentation. Content is maintained in GitLab.

Philosophie

Dokumentation/Lizenzen/Philosophie/GlossarNächster Abschnitt

Philosophie

Die Geschichte

Die Abkürzung UAVP steht für Universal Aerial Video Platform. Ein UAVP ist ein Flugobjekt und eignet sich hervorragend um Luftaufnahmen zu machen - egal ob Foto oder Video. Und praktischerweise macht es auch ohne Kamera Spaß damit umherzufliegen, drinnen wie draussen.

Ein UAVP nutzt hauptsächlich Bauteile aus dem Modellflugbereich, ist also grundsätzlich als Flugmodell zu bezeichnen. Ein UAVP kann auf verschiedene Art und Weise gebaut werden - es gibt hinsichtlich Größe und möglicher Traglast (Payload) praktisch keine Grenzen. Und da im UAVP qualitativ hochwertige Gyroskope eingesetzt werden, ist es einiges einfacher zu steuern als etwa ein Modellhubschrauber.

Die meisten NG-Entwickler kamen über das ursprüngliche UAVP Projekt oder das MK Projekt zu Quadcopter. Als das UAVP-NG Projekt im Sommer 2007 begann, war das original UAVP seit ca. 1/2 Jahr verfügbar. Weltweit waren bereits im April 2008 - also nur gut ein Jahr später - ungefähr 500 UAVP “in der Luft”. Der Mikrokopter (das ist das MK Projekt) war im Sommer 2007 noch brandneu - MKs konnten seinerzeit erst seit gut drei Monaten gebaut werden und der echte MK-Boom war noch nicht ausgebrochen.

Zu dieser Zeit dachten viele von uns daran, größere - und dadurch leistungsstärkere - Prozessoren, bessere Peripherie und Sensoren einsetzen zu können. Die damals vefügbaren Modelle konnten schlichtweg nicht das, was wir eigentlich wollten… Und somit war die Idee geboren, etwas Neues zu bauen.

Die Idee

Da wir beide Quadcopter geflogen hatten, haben wir gemerkt, dass diese beiden anderen offenen Projekte nicht das mitbrachten, was wir von unseren Quadcoptern erwarten. Gerade hinsichtlich der Zukunftssicherheit und damit der erforderlichen Skalierbarkeit erkannten wir bald, das diese Projekte in der Tat nicht unseren Ansprüchen genügten. So begannen wir damit, die verfügbaren Prozessoren genauer zu betrachten und erkannten, dass die verwendeten Prozessortypen ersetzt werden müssen um die Rechenleistung zu erreichen, die wir brauchen. Aber weder PIC noch Atmel hatten das im Angebot, was wir brauchten…

So trafen wir letztendlich die Entscheidung, einen ARM7 einzusetzen und begannen mit dem UAVP Next Generation Quadcopter Project. Das Ziel ist klar: Die Entwicklung einer Open Source Quadcopter-Software und -Hardware für weitere Tests und Entwicklungen - basierend auf der high performance 32bit ARM7 RISC CPU.

Das Drum-herum

Die Initiatoren des NG-Projektes hatte ein freies und offenes Projekt im Sinn. Die Schaltpläne und Platinen wurden der Öffentlichkeit zugänglich gemacht. Und auch die Software wurde veröffentlich, einschließlich dem größten Teil des Quellcodes.

Wir hoffen, mit diesem Projekt eine Plattform für neue Ideen und Neuentwicklungen im Bereich der Multikopter zur Verfügung zu stellen. Das Betriebssystem ist modular aufgebaut und erlaubt die gleichtzeitige Verwendung von in sich geschlossenen Steuermodulen. Dadurch wird die Möglichkeit geschaffen, verschiedenen Entwicklern gleichzeitig einzelne Steuerungsteile zu verändern, zu testen und untereinander sowie miteinander zu vergleichen, ohne jedoch jedesmal gleich den gesamten Steuercode neu schreiben oder bearbeiten zu müssen.

Mit dem NG haben wir ein Regelsystem API eingeführt. Dieses ermöglich es auch denen, die keine Programmierer sind, einzelne Programmodule zu verändern. Zumindest insofern als dass wenigstens die I/O-Ebene des eigenen Moduls verstanden werden sollte.

Außerdem haben wir das neue NG Forum eingerichtet. Dieses steht Entwicklern und Benutzern des NG UAVPs offen und stellt zudem den wichtigen Support sicher. Langfristig werden wir nicht nur das NGOS und seine Eigenschaften dokumentieren, sondern haben ausserdem vor, den Quelltext, die einzelnen Module und den Aufbau vollständig zu dokumentieren. Wir hoffen, dadurch mehr Menschen Zugang und Verständnis des Quellcodes und des gesamten Designs zu ermöglichen.

Jeder ist eingeladen, bei unserem Projekt mitzumachen und mit uns Kontakt im IRCoder im NG Forumaufzunehmen - solange klar ist und beherzigt wird, dass dies ein nicht-gewinnorientiertes, nicht-kommerzielles Open Source Projekt ist!

Die Design-Grundlagen

Die Grundlagen und das Prinzip des NG sind einfach:

. Komplexität, Modularität und Einbindung wo die Leistung es erlaubt, Einfachheit und Klarheit wo es die Leistung erfordert.

Dies hat zu einem recht komplexen System geführt - wir nennen dieses System das NG Betriebssystem (NG Operating System, NGOS) . Das NGOS verwendet abstrakte und komplexe Verweistabellen, benötigt diese teilweise sogar und: Die Rechenleistung ist dafür absolut ausreichend. Es nutzt globale Variablen und durchbricht die Einbindung an den Stellen, an denen es für die Leistungerforderlich ist.

Wir benutzen klassische Open Source tools wie beispielsweise die Autotools Suite, GCC und GNU make. Und wir halten uns an die gängigen C-Programmierregeln. Darüber hinaus versuchen wir, eine benutzerfreundliche Programstruktur und Hilfen für einzelne Kommandos und ausführliche Fehlermeldungen bereitzustellen.