Autopilot - Ardupilot

Schwabenflieger

Erfahrener Benutzer
#81
Hi Rainer,

der NMEA Parser im DIYdrones code ist nicht ausreichend getestet.
Ich hatte immer wieder sporadisch auftretende "Hänger".
Immer wieder - leider nicht gezielt reproduzierbar - hatte die Software völlig wirre Telemetriedaten (aus der IMU kommend) ausgespuckt, wenn das GPS abgefragt wurde.
Oft ging das auch lange Zeit gut und funktionierte fehlerfrei.

Wenn die Funktion decode_GPS nicht aufgerufen wurde, funktionierte der AP code störungsfrei.

Ich habe dann zum kleinen MTK Modul gewechselt. Die ganze DIYdrones community scheint gerade diesen Wechsel zu machen. Der Parser für das binary Protokoll dieses Moduls scheint mir auch inzwischen der am besten gepflegte zu sein.

Viele Grüße

Achim
 

Rangarid

Erfahrener Benutzer
#82
Welche Firmware habt ihr denn dafür benutzt? Ich konnte noch nichts darüber lesen, dass Leute Probleme mit NMEA berichtet haben.

Ich benutze zur Zeit die 2.7.1. Es steht auch nirgends, dass bestimmte GPS bevorzugt werden...
 

Schwabenflieger

Erfahrener Benutzer
#84
Hi Rainer,

nein, die nicht benötigten Messages habe ich nicht deaktiviert.
Wenn der Parser richtig implementiert ist, sollte das aber auch nicht notwendig sein.

Meine Meinung zum AP-code ?
Also es gibt einige Stellen, die sind richtig gut. Da merkt man, dass da ein Programmierer am Werk war, der echt Ahnung hatte von der Materie. Es gibt aber auch andere Stellen, da tät ich graue Haare kriegen wenn das noch möglich wäre :cool:
Variablen: Es werden durchgängig globale Variablen verwendet. Das ist ein erhebliches Fehlerrisiko. Wir verwenden globale Variablen nur im Ausnahmefall.
Funktionsrückgabewerte: Wir nutzen die als Fehlerindikator. Die aufrufende Funktion macht anhand des Funktionsrückgabewertes eine entsprechende Fehlerbehandlung.
Das fehlt beim DIY-code völlig. Die Software ist nur für den gut Fall geschrieben. Fehler werden nicht abgefangen sondern pflanzen sich fort und man erhält ein nicht vorhersagbares Systemverhalten.
Kommentare: Diese sind leider nur eher spärlich verwendet. Gerade bei einem open source Projekt sollten viele Kommentare verwendet werden. Man kann's dann einfach besser verstehen.
Fehlersuche wird auf diese Weise auch viel einfacher.

Der DIY code ist allenfalls für die Forschung akzeptabel, von der Produktreife noch sehr weit entfernt.

Für mich persönlich wäre eine Stufe zwischen diesen beiden Reifestufen akzeptabel.

Wie man ein hex file erzeugt ?
Ist meines Wissens nach mit der Arduino Umgebung nicht möglich.
Wozu auch ? Die Arduino Umgebung enthält doch alles was man braucht.

@Rangarid:
Ich habe auch den ArduPilot_2_7_1 verwendet.
In der IMU habe ich noch die Version 1.7 (aktuell ist 1.8.2)
Von Problemen berichtet in der DIY community auch keiner. Das läuft irgendwie anders ab.
Mich wundert z.B. dass der ArduCopter angeblich fliegt.
Mit dem veröffentlichten code ist ein gutes Ergebnis immer noch Zufall. Man muss den Code mehrmals auf das Target runterladen damit dieses zuverlässig fliegt.
Die Peripherieroutinen arbeiten zuverlässig. Sie können m.E. als Ausgangsbasis für eine eigene Implementierung herhalten.
Allerdings wäre es schon toll, wenn sich (günstig) herausfinden ließe, was an dem code für die Fehlfunktion schuld ist.

Aber.... lass uns mal wieder konstruktiv werden ;)

Viele Grüße

Achim

PS: Bei Stillstand gibt das kleine MTK im NMEA mode immer die letzten gemessenen Positionsdaten vor dem Stillstand aus. Also identische Daten.
Das ist schlecht bei sehr geringen Geschwindigkeiten. Also für Copter nicht verwendbar.
Im binary mode jedoch immer die aktuellen Positionsdaten. Also eine "Wolke".
Wenn also dieses Modul für Copter verwendet werden soll, dann nur im binary mode.
 

Rangarid

Erfahrener Benutzer
#85
Ein reiner Telemetriedownlink, also Receiver (bidirektional) mit UART, ist davon unabhängig. In meinem Fall sind 2GHz4 aber ein "no go", weil die FS schon 2GHz4 funkt. Ich habe mit Wi.232, 868MHz, recht gute Erfahrungen gemacht...
Bei dem xbee Modul hab ich mir gedacht schonwieder ein Teil was ich irgendwo auf dem Flugzeug platzieren muss...aber scheint dann wohl die bessere Lösung zu sein.

Mit wieviel Leistung kann man dann mit dem 868Mhz xbee senden? Bzw wo bekomm ich die Module?
 

Schwabenflieger

Erfahrener Benutzer
#86
Hi,

hier z.B.:
http://www.mercateo.com/p/108EL-667(2d)2973/XBEE_Pro_868MHz_RF_Modul_Wire_Antenna_Herst_Teile_Nr_XBP08_DPWIT_024.html

**EDIT**
Wieso wird der link nicht komplett dargestellt ?
**\EDIT**

Ich bin auch am hadern....

Das sind 3 Funkverbindungen.
1 x RC-link
1 x Video link mit OSD
1 x Telemetrie link für den AP - bidirektional denn man kann online neue waypoints hochladen.

Und noch was:
Der Ardupilot (mit dem 328er AVR) ist nicht für Querrudermodelle geschrieben. Der funktioniert am besten mit dem EasyStar.
Ich plane den APMega ( mit dem 1280 AVR) einzubauen.

Viele Grüße

Achim
 

Rangarid

Erfahrener Benutzer
#87
Du kannst den 4. Kanal mit benutzen für Querruder, dann brauchst du halt ein Y-Kabel.

Ich muss ganz ehrlich sagen, die Lösung mit externen XBEE Modulen oder ähnliches ist mir zu teuer bzw. zu umständlich. Kann man mit dem ArduPilot irgendwie AudioModem mäßig was basteln? Oder wäre das genauso umständlich wie mit dem OSD? Bzw. zu rechenintensiv oder so?

Ich mein wenn man im Flug Koordinaten ändern möchte oder so wäre es natürlich gut mit xbee ode ähnlichem, aber ich will die Telemerie eigentlich nur um mit Antennentracking rumzuexperimentieren...

Sodass ich nachher hab OSD, Tracker mit Telemetrie und RTH zu möglichst günstigem Preis...
 

Schwabenflieger

Erfahrener Benutzer
#88
Hi,

klar kann man den 4. Kanal mit benutzen. Allerdings benutzt der Ardupilot diesen Kanal nicht. Er reicht ihn nur durch. Die Autopilot Funktion bedient nur einen 3 Achsen Flieger. Das Querruder bleibt im Autopilot Mode unbenutzt.

Die Telemetrie Daten des ArduPilot kann man mit Remzibis OSD http://store.diydrones.com/Remzibi_s_OSD_p/remzibi_v11.htm "huckepack" auf dem Videosignal zum Boden übertragen.
Ob man damit dann so komfortabel wie mit dem ET tracking betreiben kann, weiß ich nicht.

Viele Grüße

Achim
 

Schwabenflieger

Erfahrener Benutzer
#90
Hi,

was ich mit den 3 Achsen meine ist schon klar gell.

Die Arduino Entwicklungsumgebung muss man doch nicht "installieren".
Einfach auf den Rechner kopieren und aufrufen. So wie früher, bevor Windows sich vom DOS gelöst hat.
Das Projekt zu compilieren ist eigentlich auch nicht schlimm, es sollten ja nur releases ausgegeben werden, die fehlerfrei übersetzt werden.
Bei open source Projekten ist es zudem Standard, dass die Quellen offen gelegt sind.

Es gibt da einen Multicopter Controller, der ist nicht open Source: http://www.kkmulticopter.com hier wird das hex file angeboten, nicht jedoch die quellen.

Wenn man aus dem Arduino Projekt ein hex file erzeugen wollte, dann müsste man das gesamte Projekt entweder manuell kompilieren - dazu die Dateiendungen der source files erst mal anpassen (.c bzw. .cpp) oder aber in ein AVR Studio Projekt umwandeln.
Das hat dann mehrere Effekte:
- Man benötigt zum Programmieren einen Programmer. Der ist teurer als ein FTDI.
- Man muss eine extra Programmierschnittstelle in der Hardware herausführen (MISO, MOSI Pins usw.) bzw. die Pins korrekt mit dem Programmer verbinden.
- Man muss sich um die Fuse Bits im Controller kümmern. Es sei denn, man lädt gleich ein elf file runter. Dann jedoch muss der das getan haben, der das file erzeugt.

All das macht es für einen Laien m.E. etwas komplizierter als es momentan mit der Arduino Umgebung ist.

Viele wünschenswerter wäre es, wenn man den code mal in seine Funktionsgruppen zerlegt und diese einer Analyse unterzieht und in diesem Zuge mal die Bugs raus macht - bzw. den DIY-Drones Leuten (Jordi Munoz) reportet damit die ihren code verbessern können.

Oder was meinscht ?

Viele Grüße

Achim
 

Rangarid

Erfahrener Benutzer
#91
skydiver hat gesagt.:
Irgendwie drehen wir uns hier im Kreis... Was willst Du mit dem Audiomodem - Geld sparen? Oder willst Du eine Telemetrie, die zuverlässig ist und auch über eine entspr. Datenrate und Reichweite verfügt? Ein OSD am SPI des Ardupilot ist nicht umständlich, sondern mit vorhandener Hardware (ArduPilot) zu machen. Bei einem Audiomodem brauchst Du einen zusätzl. Controller nebst Firmware, also eine zusätzl. und "umständliche" Zusatzhardware.
Sagen wir mal so...ich brauch nicht mehr Telemetrie als das Video gehen kann, insofern würde Audiomodem an sich reichen. Ich brauch keine 40+km für Telemetrie. Außerdem hab ich gelesen, dass bei den xbee 868 pro nichtmehr viel an Daten übrig ist wenn man mal die ganzen Protokollsachen abzieht und den Duty Cycle von 10%.

Wie dem auch sei...das FrSky telemetrie System wäre ebenfalls in der Lage daten zu transportieren. Vielleicht könnte man damit was probieren...
 
#93
Schwabenflieger hat gesagt.:
Es gibt da einen Multicopter Controller, der ist nicht open Source: http://www.kkmulticopter.com hier wird das hex file angeboten, nicht jedoch die quellen.
Der KKMulticontroller ist open Source, die Quellen (leider in Assembler geschrieben) sind in jedem firmware zip mit dabei.

Mittlerweile gibts sogar ne alternative Firmware die in C geschrieben und auch open source ist.
http://kkmulticopter.com/index.php?option=com_content&view=article&id=147:xxcontroller-software-v10&catid=58:firmware-downloads&Itemid=65
 

Rangarid

Erfahrener Benutzer
#94
skydiver hat gesagt.:
Schwabenflieger hat gesagt.:
was ich mit den 3 Achsen meine ist schon klar gell.
Nein, ist mir nicht klar, weil ich im manual was von Drahtbrücken gelesen habe und der AP dann auch QR unterstützen soll(?). Muß ich nachher nochmal genauer nachlesen...
Das ist in der Tat richtig:
http://code.google.com/p/ardupilot/wiki/Ch4

Der 4. Kanal ist voll funktionsfähig. Kanal 2 wird für Querruder genutzt, Kanal 4 als Seitenruder.
 

Schwabenflieger

Erfahrener Benutzer
#95
Hi,

war den Tag über unterwegs, daher eine Antwort erst jetzt.

Gut, mit 3 Achsen Flieger meinte ich Gas, Seite, Höhe.
Die 4. Achse wäre Querruder.

KK Controller:
Fein dass die Quellen doch dabei sind. Das ist mir tatsächlich entgangen.

hex file:
Klasse Arbeit. Ich hatte ich auch schon an allen möglichen Stellen gesucht. Toll :)
Hast Du auch ein .elf file gefunden ?
Dieses file enthielte nämlich alles was runtergeladen werden kann: die fuse bits, den EEPROM Inhalt und das hex file.
Und wenn die Arduino IDE dieses file (hex oder elf - egal) lediglich runterlädt, dann ist alles wieder total einfach.

Dann ist ja alles gar nicht so schlimm wie ich das gesehen habe :)

Ich habe am WE mal mit meinem Holzflieger einen Senderausfall ohne GPS fix durchgespielt. (Habe übrigens die Drahtbrücke für den 4. Kanal eingebaut)
Laut code sollte ein Kreis geflogen werden.
Habe aber ein sehr seltsamens Verhalten beobachtet:
Der Motor geht auf THROTTLE_CRUISE Einstellung. Das ist soweit ok.
Dann sollte der Flieger allerdings einen Kreis fliegen.
Das macht der auch ansatzweise. Es wird mit dem Seitenruder eine Kurve eingeleitet, mit dem Querruder wird Schräglage gemacht. Dann allerdings geht das Seitenruder in Gegenrichtung und das Höhenruder voll nach oben.
Wenn ich den Flieger in die entsprechende Richtung rolle, bleiben die Ruder so wie sie sind.
Ich schätze mal das leitet ein Trudeln ein (gekreuzte Ruder und voll gezogenes HR).

Hat das einer von euch schon mal getestet ?
 

Rangarid

Erfahrener Benutzer
#96
Können wir hier vielleicht mal gesammelt alle Einstellungsmöglichkeiten erklären? Bei den meisten weiß ich was sie bedeuten, bei manchen bin ich mir aber nicht ganz sicher...

#define PITCH_TRIM 0
#define ROLL_TRIM 0
#define AOA 0
#define ALT_EST_GAIN .01

sowas z.B.
 

Grandcaravan

Administrator
Mitarbeiter
#99
Guten Abend!

Die Wiki-Seite ist vorbereitet: Ardupilot

Das Wiki ist nicht mit dem Forum verbunden, daher ist eine Registrierung nötig.
Für Fragen rund um die Funktionen und das Layout des Wikis, stehe ich gerne zur Verfügung!

Beste Grüße und gute Nacht
Heiko
 

Heliflo

Erfahrener Benutzer
Echt interessante Sache...:D

Da ich bereits im Besitz eines komplett ausgestatteten Eagle Tree Systems bin würde mich ntürlich interessieren, ob ich den Ardupilot mit den Sensoren (GPS, Speed, höhe, etc...) vom EagleTree beliefern kann - macht ja kaum Sinn, dass Ganze nochmals in der "Ardupilot-Version zu kaufen... neben der Kohle wird auch der Platz im Flieger langsam echt knapp...

zZ werkelt der FMA CoPilot in meinem SetUp - gibt es direkt übers Eagle Tree denn gar keine möglichkeit Wegpunkte abzufliegen (ausser dem einen für RTH)?

Die endlosen Möglichkeiten rauben mir momentan echt den schlaf...:rot:
 
FPV1

Banggood

Oben Unten