PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Navigation autonomer Roboter auf Basis von GPS-Daten



voidpointer
22.09.2004, 09:31
Hallo,

seit einiger Zeit beschäftige ich mich mit UAVs und Outdoor-Robotern. Mein Ziel ist es, ein selbststeuerndes Modellflugzeug zu entwickeln. Dazu gehe ich top-down vor und habe als ersten Schritt nach Lösungen gesucht, wie ein solches Flugzeug navigiert. Dabei ist ein kleines Dokument entstanden, was ich hier anhänge.

Es geht darin vor allem um Formeln, mit denen sich die Flugbahn einer vorgegebenen Route berechnen lässt - unter Berücksichtigung von gegebenen Kurvenradien. Sie kommen bis auf wenige Ausnahmen ohne trigonometrische Funktionen aus und könnten daher auch interessant für kleinere Controller sein.

Ich würde mich über ein Feedback von Euch freuen. Vielleicht ist es ja viel zu ausführlich oder für die Profis Schnee von gestern. Informationen zum Gesamtprojekt findet Ihr unter meiner Homepage http://www.voidpointer.de/flobo/flobo1.html

Spaß, Achim.

RCO
22.09.2004, 10:26
ALso Profi bin ich ja nicht, aber ich kann dir bei sowas natürlich ein GPS nur ans Herz legen, vor allem, da die Daten auch mit 'kleinen' MIkroprozessoren leicht auswertbar sind.
Ein Großes Problem, was ich mir vorstellen könnte, ist allerdingsfestzustellen, in welcher höhe es fliegt und welche Neigung das Flugzeug hat.
Denn wenn ein flugzeug schief steht, und absinkt, würde der uC wahrscheinlich denken, er fliegt zu langsam, und mwhr gas geben, was dem ganzen natürlich nciht hilft.
Kamerabilder auszuwerten ist wahrscheinlich auch sehr schwer.
Also da muss man nochmal drüber nachdenken

MFg Moritz

voidpointer
22.09.2004, 13:05
Natürlich wird GPS eingesetzt. Dabei gehe ich von einer Messgenauigkeit von <5 Metern aus. Was die Höhe anbetrifft, so liefert das GPS ja auch diese Daten, allerdings mit einer Genauigkeit von 8 Meter oder schlechter.
Für die Ermittlung der Fluglage und deren Korrektur gibt es verschiedene Ansätze. Möglich wäre ein optischer Autopilot, welcher das Flugzeug am Horizont ausrichtet. Die Leute von Paparazzi (http://www.nongnu.org/paparazzi/home.html) haben sowas erfolgreich aufgebaut. Ein anderer Ansatz ist das Messen von Drehimpulsen und Beschleunigungen mit einer sog. IMU.
Weil diese Aufgaben aber weiter "unten" in der Steuerungssoftware stattfinden sollen, habe ich sie bewusst nicht berücksichtigt.

Achim.

Flite
22.09.2004, 22:12
Hallo!

Wenn ich ein paar Anmerkungen zu deinem Projekt machen darf.

Erstmal: ich bin begeistert von der Idee - sicher nicht einfach, aber GENIAL.

Ich bin selber Hobbyflieger (Segelflug und Motorflug). Die wichtigsten Größen beim Fliegen sind Höhe, Geschwindigkeit in Bezug auf die umgebende Luft, und Richtung.

Richtung und Position kannst du mittels GPS machen, dass sollte problemlos möglich sein.
Geschwindigkeit in Bezug auf Luft ist enorm wichtig und kann NICHT mit dem GPS ermittelt werden. Das Programm muss die Geschwindigkeit immer halten können, damit die Strömung nicht abreißt und das Luftfahrzeug abkippt.
Daher würde ich dir empfehlen mit zwei Drucksensoren den statischen Druck und den Staudruck zu messen. Anhand dieser Daten kannst du Höhe (sehr genau, wenn du immer bei Start auf 0 stellst - da innerhalb 10 km Reichweite keine große Luftdruckänderung am Boden vorliegt), Geschwindigkeit in Bezug auf die umgebende Luft (TAS = True Air Speed) und die Sink- / Steiggeschwindigkeit ausrechnen. Das alles sehr genau und ich denke, diese Werte wirst du bruachen. Das Variometer (Steig/Sinkgeschwindigkeit enorm wichtig bei der Landung). da sind berechnete Werte aus den GPS Daten zu ungenau und zu langsam.

Elektor hat vor kurzem einige Artikel über diese Themen veröffentlicht.

Ein Ultraschallabstandsmesser kann bei der Landung sehr wichtig sein. Damit kannst du evtl einen schönen Abfangbogen (machen das die Modellflieger überhaupt??) fliegen lassen und eine sanfte Landung ermöglichen. Die Höhe über Grund würde ich allerdings nach obigem System berechnen, da Ultraschall max. 20 m oder so reicht.

Das Display würde ich am Boden lassen. Du könntest eine Art Bodenstation machen, in der sämtliche Daten ausgelesen werden können und angezeigt werden. Überflüssigen Balast würde ich nicht mitnehmen.

GPS liefert dir übrigens immer nur die Höhe über Normal Null (MSL Main See Level). Wenn du die Höhe über Grund wissen möchtest, musst du genau wissen, wie hoch der Grund über dem Meeresspielgel liegt. Ich würde die Daten über Höhe vom GPS nur zum Überprüfen der Druckhöhe verwenden.

Als Controller brauchst du einen sehr leistungsfähigen. Ich würde über ein 16 oder gar 32 Bit Controller nachdenken oder die Aufgaben auf mehrere Controller verteilen (bsp. einer, der alle Senosordaten einliest und überprüft (ggf. Filtertr) und dann einfach die fertig errechneten Daten bereitstellt.

Als programmierschnittstelle würde ich USB bevorzugen. WLAN / Ethernet wäre mir hier zuviel unnötiger Aufwand (Webserverprogrammierung etc.).
Als Speicher für die LOG Daten würde ich evtl. eine SD Karte verwenden. Ist einfach anzusteuern und kann viele MB groß sein. Wenn du ein File System integriest kannst du sogar die KArte direkt in denen Laptop steckne und so auslesen ...

Also wenn du noch Fragen haben solltest betreffend Flugtechnischer Daten oder so - einfach melden. Werde ab und zu mal deine HP besuchen und den Fortschritt anschauen!

Viele Grüße
Flite

voidpointer
23.09.2004, 14:30
Hallo Flite,

Danke für Deine Anregungen. Das Thema ist sehr komplex, das gebe ich zu. Umso wichtiger ist es, sich nicht in den vielen Problemen zu verstricken, sondern pragmatisch vorzugehen. Habe im Netz schon einige autonome UAVs gesehen, die teilweise genial einfach sind und sich nur auf wenige Sensoren verlassen. Das gibt dann möglicherweise kein schönes Flugbild oder für Start und Landung muss manuell gesteuert werden, aber es geht erstmal.

Was den Air Speed betrifft, dachte ich an den Kompromiss: entweder bei Windstille fliegen oder ein kleines Windrad über ADC als Sensor verwenden. Die Genauigkeit ggü. der Staudruck-Methode müsste man aber erst noch ermitteln. Kennst Du einen Stall-Sensor? Vermutlich eine gefederte Klappe an der Tragfläche...

Für Ultraschall kenne ich nur Sensoren mit max. 10 Meter Reichweite. Wie die über "unscharfem" Untergrund (Gras) funktionieren, weiß ich nicht.

Das Höhenproblem von GPS ist durch die Umrechnung in ein lokales Bezugssystem gelöst. Sollte das Gelände sehr bergig sein, muss man hier noch Vorkehrungen treffen.

Die Auswahl des Controllers steht als nächstes an. Zur Zeit präferiere ich ein ColdFire-Modul (http://www.elektronikladen.de/cobra5282.html), habe es aber noch nicht festgelegt. SD-Karte könnte man da anschalten.

Fragen habe ich natürlich viele ;-) Z.B. suche ich gute Webseiten zu Flugnavigation, Landeanflug, Avionik, Glossare etc. Da steht dann vielleicht auch drin, was ein Abfangbogen ist (OK, ich denke ich weiß, was gemeint ist).

Werde mir die Staudruck-Sache mal anschauen...

Gruß, Achim.

Isnogud
23.09.2004, 15:41
Hi,

da ich derzeit auch ein outdoor projekt am Laufen habe habe ich mich schon etwas mit entsprechenden Sensoren beschäftigt, dabei ist es vor allem eine frage des Geldes.

Zur navigation eines Flugzeuges wirst du wohl nicht um einen 3-D Sensor herum kommen. Die sind nicht ganz billig aber mit $700 bist du dabei. Den besten Eindruck hatte ich von denen bei http://www.pnicorp.com da hast du dann einen Kompass sowie Pitch und Role in einem Modul. Habe auch noch kein wesentlich genaueres Modul gefunden. Wenn du auf den Kompass verzichtest bekommst fu Pitch und Role Sensor schon für $300

Als GPS modul gibt es zum Beispiel das Lassen SK II für €75 bei http://www.framos.de aus Platz und gewichtsgründen wirst du aber wohl eher das Lassen SQ nehmen müssen, das benötigt glaube ich etwas mehr Software, sollte aber mit den unten empfohlenen Processoren ein leichtes sein.

Schließlich noch eine Processor empfehlung. Wenn du wert auf Geschwindigkeit legst kann ich nur die Processoren von http://www.ubicom.com empfehlen. Die sind mit ihren bis zu 250 MHz einfach das Schnellste und flexibelste was der Markt derzeit bietet und die SX-Familie (bis 75 MHz) ist dazu noch gar nicht teuer. Diese Processoren unterstützen unter anderm Deterministische Befehlsausführung und die teureren Familien auch Multithreading womit das verarbeiten von Interupts und insbesondere Sensorsignal um ein vielfaches schneller ist als das herkömmlicher Processoren.
Ein Entwicklungsboard gibts bei http://www.parallax.com schon für $129

Gruß,
Isno

Flite
23.09.2004, 15:58
Hallo Achim,

meine Devise beim fliegen ist eigentlich: Speed halten. Wenn du die kritische Geschwindigkeit (Stallspeed) nicht unterschreitest, dann bleibst du am Leben. So wie ich das in der Elektro gelesen habe, ist es recht einfach mit zwei Drucksensoren über I2C auf Höhe, Geschwindigkeit und Vario zurückzuschließen. Ich schau mal, ob ich dazu noch ein paar Infos finde...

Ein Windrad würde ich nicht machen. Das braucht mehr Gewicht und ist doch recht Strömungsungünstig ... Und du musst die Sache auch im Controller linearisieren um Anständige Geschwindigkeitsmessungen zu erhalten.

Hm - ein Stallsensor. In der PC12 (von der hab ich grade das Operation Manual da) wird dafür ein Angle of Attack Sensor verwendet, der an zwei Rechner angeschlossen ist :). Wenn du keine Landeklappen, etc. hast, wirds einfacher. In den Cessnas (z.B. 172) wird das über eine Klappe gemacht, über die die Luft strömt. Im Fall eines Stömungsabrisses entsteht ein Unterdruck und eine Sirene heult los.

Der ColdFire sieht gut aus! Mit dem kann man das sicherlich realisieren. Was für ein großes Modellflugzeug willst du eigentlich verwenden? Einen Benziner nehm ich an ... Ist ja na ganz schöne Last, die du dann mitschleppen musst ...

Hm - also Infos kann ich dir schon geben, allerdings glaube ich, dass du mit Flugnavigation, Landeanflugverfahren und Avionik nichts anfangen kannst.

Flugnavigation: Es wird zwischen ANAV und FNAV unterschieden.
Anav - Allgemeine Navigation - Koppelverfahren (wenn ich an dem Punkt war, bin ich bei der Flugrichtung bei dem Wind nach so und so viel Minuten genau an der Stelle) und Sichtnavigation (Autobahn nach Stuttgart oder der Rhein)
FNav ist Funknavigation. Da spielt GPS ein (wenn auch untergeordnete Rolle). Hauptsächlich geht es um Bodengestützte Funknavigation (VOR, NDB, Radiale anfliegen, etc.). Das dürfte für dich uninteressant sein.
Und Longrange Navigation kannst du dir auch sparen, außer du willst den Atlantik überqueren :)

Landeanflugverfahren. Naja - beim privaten Flug (PPL) gibts da nur die Sichtanflüge, also Du musst abschätzen, wiehoch du bist etc. Es gibt spezielle Anfluggeschwindigkkeiten, die man im Landeanflug halten sollte.

Beim kommerziellen Fliegen (ATPL) gibt es Instrumenten gestützte Anflüge (ILS, VOR-DME, NDB, in USA sogar GPS). Sollte auch uninteressant sein.

Genug geschwafelt. Wenn du irgendwelche Fragen hast bzgl. dem Thema kannst du mich gerne per email kontaktieren (steffen.burr@ rfds.net)

Viel Erfolg :)

Grüße
Flite

Suggarman
25.09.2004, 10:18
Bei ebay gibt es gerade sehr günstig Beschleunigungssensoren, die auch die genaue Lage im Raum in 2 Achsen messen können. Ich habe mir zum Probieren mal 2 Stück "bestellt". Dieser Flugzeuggedanke geistert bei mir auch im Kopf herum. Ich habe aber im Monent auch viel zu wenig Zeit dafür und wollte Testweise auch erstmal ein Auto gps-gesteuert automatisch fahren lassen. Das fällt wenigstens nicht gleich runter :-)

mfg

Stefan

Suggarman
07.10.2004, 08:25
http://www.mil.ufl.edu/publications/fcrar04/fcrar2004_mav_electronics.pdf

Hier ist ein Aktikel zum Thema.

mfg

Stefan

voidpointer
08.10.2004, 07:43
http://www.mil.ufl.edu/publications/fcrar04/fcrar2004_mav_electronics.pdf

Hier ist ein Aktikel zum Thema.
Nicht schlecht das. Hab den Artikel erstmal überflogen. Der Ansatz ist hier ein wenig anders - sie versuchen zuerst, die Flieger möglichst klein zu machen und geben dafür die autonome Steuerung auf, denn soweit ich verstanden habe, wird ein Teil der Verarbeitung von der Ground Station gemacht.

Ist aber immer wieder interessant, welche Sensoren so verwendet werden und wie klein man alles kriegen kann...

Gruß, Achim.

Suggarman
12.10.2004, 13:44
http://www.kh-gps.de/flug.htm

Da ist schon ein Modell über den Atlantik geflogen.


mfg

Stefan