GPS Code Änderungen

Roberto

Erfahrener Benutzer
#21
Mit der GPS FW ist das so eine Sache. Zum einen kannst Du nicht wieder auf die alte zurückflaschen, weil sie nicht veröffentlicht ist, zum anderen kannst Du es ggf. "bricken" wenn es kein PA6B ist. Das solltest Du auf jeden Fall wissen. An Deiner Stelle würde ich mal die Test02 versuchen. Die Veränderungen (Variablen reset/grösserer serieller Puffer/Ausmerzen eines möglichen NMEA parsing Variablenüberlaufs) sollte etwas bringen. Ausserdem kannst Du z.B "MINSAT 7" setzen, dann hast Du mit 7 Satelliten auf jeden Fall eine anständige Position und der copter sollte nicht auskeilen. Ausserdem wäre dann der NMEA Teil der test02 auch gleich auf Funktion getestet :) .

LG
Rob
 

Roberto

Erfahrener Benutzer
#22
Update für MTK Binärprotokoll.

Um das ganze Durcheinander nicht unnötig zu vergrössern, und eigene Konfigurationsschritte zusammen zu schustern, habe ich die Konfigurationssequenz aus dem aktuellen APM Treiber 1:1 übernommen. Punkt und aus.
Von wegen, "Punkt und aus". Nach den Erkentnissen hier: http://www.multiwii.com/forum/viewtopic.php?f=8&t=649&start=1500#p27847 habe ich die original APM Initialisierungs-Sequenz dann doch noch mal erweitert. D.h. die original APM Initialisierung bleibt erhalten.

Die Datei Test03.zip unterscheidet sich gegenüber Test02.zip nur von der anderen MTK Initialisierungssequenz (MTK Binätmodus, NMEA nicht betroffen).

LG
Rob
 

Anhänge

RC FAN2

Erfahrener Benutzer
#23
Hallo Roberto

Was mich mal interessieren würde , währe ob das MTK Binär , NMEA oder UBX Protokoll den Magnetic declinations wert zur verfügung stellt . Momentan muss man den ja noch von Hand eintragen .......
Wenn es aber vom GPS mitkommt , könnte man das ja auch gleich verwenden ?!
 

JUERGEN_

Generation 60++
#27
" ...Artillerie lässt grüssen..." wie jetzt Jürgen, willst Du auf das arme Magnetfeld schiessen?
manchmal hatten wir das vor. :D
wenn wir beim Kanonenausrichten, die örtliche magnetische Abweichung vergessen hatten,
das macht sich dann bei 18Km Schussentfernung schon deutlich bemerkbar.

:)
 

RC FAN2

Erfahrener Benutzer
#28
kann das GPS denn überhaupt ?

der ist doch Local durchaus sehr verschieden, Artillerie lässt grüssen. :D

:)
Naja , zumindest kann man es anhand der Koordinaten , Uhrzeit und Datum berechnen .
All diese daten hat der gps empfänger .
Und da ja nunmal GPS empfänger größten teils zum navigieren verwendet werden , würde das ja auch großen sinn machen :D
 

Derjunior

Erfahrener Benutzer
#29
Hallo,
so jetzt mal was Praktisches von der Front :D Ich hab mit meinem Hexa, Mega ,Rushduino Gps (NMEA 5Hz,Fix bei7 Sats) gestern die FW Test 1 und Heute Test2 probiert.
Test1: war gefühlt stabiler es kam selten zu ausreißern aber war noch sehr unruhig.
Test2: eben waren die gleichen Wetterbedingungen aber deutlich entspannter das ganze ich konnte sogar mal zwischendurch eine rauchen :D Gefühlt ist der Kreis um den PH Punkt deutlich kleiner(ca.max.2m) und das Kreisen viel ruhiger geworden ausreißer hatte ich keine.
einmal hatte ich auch den Fix verloren und da machte er wie geschrieben einfach nix;)
Also von meiner Seite aus schon viel besser und mir gefällts.

Ich finde das Gps Thema viel komplizierter wie das mit dem Baro. Vieleicht kommt auch mal eine Erleichterung der PID Wert einstellung wie beim Baro?! würde mich echt freuen da es mir immernoch Kopfzerbrechen bereitet wie ich die richtig einstellen soll.(die Links mit dem Gps Sim kenn ich schon;)

Ich bleib weiter drann.
Viel Erfolg
Gruß Micha
 

weisseruebe

Erfahrener Benutzer
#30
Wo ich gerade mal so quer über den Code schaue - bisher dachte ich immer, der EOSBandi-Code ist mehr oder weniger identisch mit dem Code direkt in MultiWii. Sieht auf den ersten Blick aber doch an ziemlich vielen Stellen anders aus. Das ist ziemlich ärgerlich, dass man zwei Codes, die im Prinzip das gleiche machen, parallel pflegen muss...
 

Roberto

Erfahrener Benutzer
#31
@weisseruebe:
Genau! Der EOS Bandi code verbrät die ganze Rechenzeit mit dem Warten auf neue GPS Daten. Im mwii code muss durchgelaufen werden. Das ist der strukturelle Hauptunterschied. Im Kern ist die Funktion gleich.

@Derjunior: Danke für Deinen Test!!! Du warst der Downloader - erwischt!
Es freut mich, dass die eher theoretischen Änderungen doch etwas bringen. Du bist mit MINSAT 7 geflogen, hattest Du den den Spikefilter an? Taugt der?

Zu den PIDS: Ganz ehrlich, da blick ich auch nicht wirklich durch.... weniger wäre da mehr...

LG
Rob
 
Zuletzt bearbeitet:

Derjunior

Erfahrener Benutzer
#32
Hey,
klar wenn du was neues machst muss ich es haben :D
Test 1 hab ich mit den Default Pid werten Gps-Lead-Filter aus , den Spikefilter an und min sats 5 gemacht.
Test 2 hab ich auch mit den default werten Gps lead aus, spikefilter an und min sats 7 gemacht.
Gefühlt da durch das ich ja nicht viel geändert habe und in der FW sich auch nicht ganz soviel verändert hatte bei dem NMEA Code
denk ich das das ruhigere verhalten dadurch kommt das das Gps auf 7 Sats min. beschränkt besser und genauer funktioniert.

Bezüglich MTK und NMEA Flashen hab ich noch eine Frage. Das Rushduino läuft ja auf NMEA, kann ich das auch auf MTK umstellen? Damit ich die beiden Codes mal gegeneinander testen kann?
Gruß Micha
 

Roberto

Erfahrener Benutzer
#33
klar wenn du was neues machst muss ich es haben
:) :)

Das freut mich, dass der Spikefilter auch einen Praxsisnutzen hat. Schliesslich berechnet er keine Werte neu (wie ein Mittelwertfilter) sondern sortiert nur Ausreisser aus. Ich glaube auch, dass die Erhöhung des Satlimits am wirksamsten gegen Bocksprünge schützt. Deine Erfahrungen mit dem leadfilter würden mich interessieren. M.E hast Du ihn nicht grundlos ausgeschaltet. Der leadfilter in der jetzigen eos bandi version scheint mir nur bedingt einsatzfähig - da kann ich mich natürlich auch irren. Zum einen ist der leadfilter in der aktuellen APM Version überarbeitet und zum anderen soll er doch in dem Ausleseloch zwischen 2 GPS Werten, Zwischenwerte liefern. Oder wie? Naja, der eos bandi code ist nicht in der Lage ein Ausleseloch zu stopfen, da er wartet, bis neue GPS Werte vorhanden sind und bis dahin eben genau nichts macht, also keine GPS Werte vorhersagt.
Du kannst Dein rushduino gps auf Binärausgabe flashen, wenn 2 Voraussetzungen erfüllt sind:
1. Du solltest die original FW haben, damit Du immer zurückflashen kannst.
2. Es MUSS ein MTK 3329 PA6B sein, sonst läufst Du Gefahr es zu "bricken" d.h es ist dann ein nicht funktionierender Backstein.

Welche Firmware?
Tja, da bin ich mir noch nicht sicher ob nicht vielleicht doch die original 3drobotics FW die bessere Wahl wäre.
Hier die beiden interessanten FW mit dem NameTag vorweg:

"3DRobotics" AXN1.30_2389_3329_384.1151100.1_v16.bin (Aktuell bei APM2.0/2.5)
"Sergey" AXN1.51_2722_3329_384.1151100.5.bin (von EOS Bandi verwendet)

Beide sind in diesem zip: http://code.google.com/p/i2c-gps-nav/downloads/detail?name=MTK-firmware-tools-for-2.1.zip&can=2&q=

Eigentlich sollte man sagen, "Sergey" hat die höhere Versionsnummer und wird von eos bandi in der config.h empfohlen und fertig.
Die Verbesserungen sind: http://forum.trenz-electronic.de/in...ml?PHPSESSID=63e7810dbb5d7a5f2ed0dda49ffd8b27

- weak signal condition under a viaduct
- weak signal condition in deep urban areas
- weak signal condition in dense forest
- static drifting reduction

Beide, "segey" und "3drobotics", produzieren den gleichen Datenstrom und sind daher kompatibel. Nach meinen Testen im Stand und schlechten Bedingungen (Hauswände etc) muss ich sagen, dass "Sergey" schon die etwas genauere Position liefert. Allerdings könnte am Ende die "static drifting reduction" ein Problem darstellen, da er eine Drift des copters vielleicht zu spät meldet? Da hilft nur testen.....

LG
Rob
 

Derjunior

Erfahrener Benutzer
#34
Hey,
so war grad nochmal draußen mit lead filter an, ansonsten einstellungen wie letztes mal. Ich kann dir nichts großartiges berichten funktioniert auch mit beiden an wobei ich noch nicht weiß auf wieviel Hz mein Gps läuft. Laut Flyduino auf 10Hz.
Wegen dem Pa6b hab ich kein plan aber es ist ein MTK3329 auch laut datenblatt von Mediatek das pa6b hab ich nirgens gefunden.
Ich denk ich probier es einfach, n backstein bleibt wenigstens auf der stelle:D
Gruß Micha
 

Roberto

Erfahrener Benutzer
#35
@Derjunior: Stimmt, Steine haben ein gutes PH und ein noch besseres RTH, dass ich da nicht gleich drauf gekommen bin :) !
Schau mal auf die Seite: http://www.gtop-tech.com/LNG/product/product/Series-Comparison/GPS_Modules_Comparison.html
Da siehst Du bei "Antenna", dass es den MTK 3329 Chipsatz in 2 relevanten Geschmacksrichtungen gibt: PA6B und PA6E
http://www.gtop-tech.com/en/product/GPS-Modules-PA-Series/GPS_Modules_PA6B.html
http://www.gtop-tech.com/en/product/GPS-Modules-PA-Series/GPS_Modules_PA6E.html
Da es der richtige Chipsatz ist, wird es wahrscheinlich im schlimmsten Fall keinen Empfang geben und Du müsstest eigentlich so wieder zurück flashen können.
Mit dem leadfilter und der genauen Funktionsweise muss ich mich noch auseinander setzen. Bislang bin ich nur dabei die grundlegenden Sachen zu beackern. Da ist auch schon etwas für die APM abgefallen:
http://diydrones.com/xn/detail/705844:Comment:1053340
http://diydrones.com/forum/topics/mysterious-waas-on-sequence-in-current-ap-gps-mtk-common-h
http://fpv-community.de/showthread.php?19109-MTK-GPS-und-APM-1-2-2-5

LG
Rob

P.s.: Wenigstens stifte ich überall genug Unruhe, vielleicht animiert das andere! Irgendwie scheint das GPS Thema etwas eingechlafen zu sein.
 
Zuletzt bearbeitet:

FireN

trägt sonst keine Brille!
#37
Hehehe :) nice! Haste dir verdient ;)
 

Roberto

Erfahrener Benutzer
#39
@ FireN: Danke! Ich werde aber 2 Tshirts nehmen. Aktuell passt noch M, aber wenn das so weiter geht wird es wohl L sein müssen.....

@RC FAN2
welchen Fehler meinst du ? bzw. betrifft das auch die i2c gps version ?
Das kann ich nur mit einem klaren JEIN beantworten.
Es geht um das Einschalten von WAAS (Europa hat die baugleichen Satelliten) im mtk binary modus. Der Steuercode von 3drobotics war falsch. Wenn Du die original eos bandi soft benutzt dann ist es sowieso egal, da er es nicht extra einschaltet. Wenn Du die test03 verwendest, kannst Du eine Zeile löschen. Da mir der Code zum waas Einschalten der apm (3drobotics) sehr spanisch vorkam, aber ich annahm, es handele sich um einen undokumentierten Spezialcode, habe ich den code so übernommen, aber zusätzlich noch den richtigen code zum Einschalten gesendet. D.h. das Modul bekommt einen unverständlichen code, auf den es nicht reagiert, und den richtigen direkt hinterher. In der Summe: alles OK.
Wenn Du willst, kannst Du in der Test03 folgende Zeile (+delay Befehl) löschen:
Code:
  SerialGpsPrint(PSTR(MTK_WAAS_ON));                 // Do it the APM way
  delay(1000);
LG
Rob
 

JUERGEN_

Generation 60++
#40
...
Es geht um das Einschalten von WAAS (Europa hat die baugleichen Satelliten)
im mtk binary modus.
wobei das doch bei PH eigentlich relativ egal ist?

wenn ich das richtig verstanden habe, kommt dadurch nur eine Korrektur für die Absolute Position.

bei PH ist eigentlich nur die Relative Position von Interresse.
 
FPV1

Banggood

Oben Unten