Multiwii NMEA parser bug ?

Status
Nicht offen für weitere Antworten.

cesco1

Erfahrener Benutzer
#1
Kann jemand verifizieren ob der multiwii NMEA gps parser deg/min und fractional_min falsch zusammensetzt?

Meinen tests nach müsste anstatt:
Code:
  return deg * 10000000UL + (min * 1000000UL + frac_min*100UL) / 6;
das hier stehen (zwei mal eine null weniger):
Code:
 return deg *  1000000UL + (min *  100000UL + frac_min*100UL) / 6;
Das heisst dann das RTH nur funktioniert wenn sich bei den GPS koordinaten vor dem dezimalpunkt nix ändert. Ansonsten geht RTH schief was mir diese woche zwei mal passiert ist (glücklicherweise kein schaden).

Da baseflight / cleanflight auch multiwii ableger sind dürfte dasselbe dort auch zu finden sein. Das wäre eine gute erklärung für die zahlreichen multiwii flyaways ...
 
Zuletzt bearbeitet:

cesco1

Erfahrener Benutzer
#2
Update:

Ich hab meinen bixler heute wieder bis an die sichtgrenze gejagt (regen halt) und RTH mit dem gepatchten NMEA parser probiert. Hat funktioniert. Dort wo rth gestern versagt hat ist der flieger heute problemlos zurückgekommen.

Ich hab wirklich den verdacht multiwii hat jahrelang falsche gps daten verwendet ....
 

Rangarid

Erfahrener Benutzer
#3
Das glaube ich nicht. RTH bei MWii funktioniert einfach nicht gut, das ist ja schon bekannt. Funktioniert in Cleanflight und Baseflight ja immernoch nicht... Es gibt aber Branches, wo es funktioniert. Einer davon z.B. ist Baseflight für fixed wing:
http://fotoflygarn.blogspot.de/2015/01/baseflight-fixedwing.html

oder iNav basierend auf Cleanflight:
http://www.rcgroups.com/forums/showthread.php?t=2495732

Bei Baseflight für fixed wing sieht es so aus:
Code:
    return deg * 10000000UL + (min * 1000000UL + frac_min * 100UL) / 6;
https://github.com/SamuelBrucksch/baseflight/blob/master/src/gps.c#L1063

Damit bin ich letztens geflogen und RTH hat ohne Probleme funktioniert. Ist halt eher für die 32bit Boards.

Hier gibs mehr Infos zu RTH mit Multiwii für Flugzeuge/Nuris wo es funktioniert:
http://fpv-community.de/showthread.php?43309-Bixler2-mit-MultiWii-Autopilot-amp-RTH

Ist halt auch ne angepasste Version von MWii für Flugzeuge...
 
Zuletzt bearbeitet:

cesco1

Erfahrener Benutzer
#4
Du magst recht haben. Beim zweiten testflug heute ist das ding wieder in die falsche richtung abgehauen :(

Also weitersuchen was da nicht stimmt. Scheint im nahbereich bis 300m funktioniert alles, aber weiter als 500m draussen gehts nicht mehr. :(

Sch....
 

Rangarid

Erfahrener Benutzer
#5
Da brauchst du nichts suchen. Die Implementierung ist einfach nicht gut. Fliegst du Fläche oder Copter? Wenn Fläche lad dir einfach die Fixed Wing Version runter. Die funktioniert zuverlässiger.

Grad gesehen, es geht um nen Bixler... Naja dann schau mal in den thread rein den ich oben gepostet hatte, die FMW ist perfekt für dich und Chriss hat sie auch schon mehrmals erfolgreich geflogen.
 
Zuletzt bearbeitet:

didike

Erfahrener Benutzer
#6
Du magst recht haben. Beim zweiten testflug heute ist das ding wieder in die falsche richtung abgehauen :(

Also weitersuchen was da nicht stimmt. Scheint im nahbereich bis 300m funktioniert alles, aber weiter als 500m draussen gehts nicht mehr. :(

Sch....
Bei mir waren es immer Kompassprobleme, es wurde erst besser als ich mir GPS Platinen mit Kompass gekauft habe und den Kompass-Chip vom Board entfernte.

Gruss Dieter
 

cesco1

Erfahrener Benutzer
#7
Ich hab inzwischen festgestellt dass der bug nicht im mwii parser sondern in meinem gps-simulator ist ... peinlich. peinlich. peinlich.

@didike ich verwende keinen kompass sondern die GPS richtung. Ich hatte genau die gleichen probleme mit onboard kompass.
@rangarid ich wusste gar nicht dass patricke auf stm32 umgestrickt hat. Gut zu wissen.

Die heutigen flüge sind auch gut gegangen, RTH hat immer funktioniert. Wegen wind stimmte am anfang die richtung von RTH nicht. Ich verwende ja GPS für die richtung, und das ist "über grund" und beim langsamen bixler in 20kmh wind manchmal ziemlich falsch. Vielleicht hab ich das früher als "flyaway" interpretiert.

Anbei das log. max 120m höhe und 550m weit draussen.
flightmode / gps / actual_heading / heading_to_home / distance / altitude
Wie stellt man sowas am einfachsten dar?
 

Anhänge

Zuletzt bearbeitet:

leo2e

Erfahrener Benutzer
#8
Hallo,
vielleicht kanst du per Programm die log-Datei in eine *.GPX Datei umwandeln. Die kann dann z.B. hier angezeigt werden:

http://www.bernhard-gaul.de/gpxviewer/gpxviewer.php

Der Aufbau der *.GPX Datei ist relativ übersichtlich:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<gpx xmlns="http://www.topografix.com/GPX/1/1" creator="GPX Logger" version="1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.topografix.com/GPX/1/1 http://www.topografix.com/GPX/1/1/gpx.xsd">
<trk>
<name>20150208-084957</name>
<trkseg>
<trkpt lat="50.87341" lon="9.75662">
<ele>226.4</ele>
<time>2015-02-08T08:49:58Z</time>
</trkpt>
<trkpt lat="50.87341" lon="9.75662">
<ele>226.4</ele>
<time>2015-02-08T08:49:59Z</time>
</trkpt>
<trkpt lat="50.87341" lon="9.75662">
<ele>226.4</ele>
<time>2015-02-08T08:50:00Z</time>
</trkpt>
<trkpt lat="50.87341" lon="9.75662">
<ele>226.4</ele>
<time>2015-02-08T08:50:01Z</time>
</trkpt>
<trkpt lat="50.87341" lon="9.75662">
<ele>226.4</ele>
<time>2015-02-08T08:50:02Z</time>



*

*

*


</trkpt>
<trkpt lat="50.87346" lon="9.75667">
<ele>222.6</ele>
<time>2015-02-08T09:05:16Z</time>
</trkpt>
<trkpt lat="50.87346" lon="9.75667">
<ele>222.6</ele>
<time>2015-02-08T09:05:17Z</time>
</trkpt>
</trkseg>
</trk>
</gpx>
 

leo2e

Erfahrener Benutzer
#9
GPX - Format

Hallo,
hab deine GPS-Daten mal ins GPX-Format umgewandelt. Schaut doch ganz gut aus...
 

Anhänge

leo2e

Erfahrener Benutzer
#10
Die dazugehörige Datei...

Hallo,
und hier die dazugehörige Datei.
 

Anhänge

Zuletzt bearbeitet:
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten