F3F-Tool – GPS Wendenerkennung für Jeti

FDS

User
... eine Machbarkeitsstudie mit Folgen.

Alles begann irgendwann im Sommer 2021, als ich coronabedingt wieder öfter auf dem Modellflugplatz meines Vereins in der Nähe von Berlin war – sonst konnte man ja nicht viel machen. Ich schaute dort meinen Vereinskollegen Axel und Randolph begeistert beim GPS-Triangle Fliegen zu und beim Anblick der schönen DNAracer in der Luft war mein erster Impuls:
"Will auch haben"
und mein zweiter Impuls:
"Das müsste doch irgendwie auch beim F3F funktionieren".

Zum Hintergrund: Ich fliege seit über 20 Jahren F3F-Wettbewerbe, überwiegend in Dänemark und überwiegend mit eher bescheidenem Erfolg. Schon in den 2000ern haben mein Kumpel Bernd und ich regelmäßig gebrainstormed, wie man mit Hilfe von Lasern, Kameras oder sonst was eine Anlage zur Erkennung der Wendemarken entwickeln könnte, damit wir vielleicht endlich begreifen, wie man eine Wende einleitet BEVOR es piept. Dann kam Barney's piCAMTracker und die Sache war erstmal vom Tisch. Nicht dass wir uns jemals einen Tracker gebaut hätten, also haben wir die Wenden weiterhin beim Piep eingeleitet.

Zurück zum Triangle: Dem ersten Impuls habe ich widerstanden. Zum zweiten Impuls: Ich wollte das mal probieren und habe mir von Axel einen SM GPS Logger der ersten Generation ausgeliehen und auf meinen E-Radical getaped, den inzwischen ausgemusterten und deshalb kostenlosen Sky-Navigator auf dem Handy installiert, das Handy mittels Saugnapf-Halterung auf das Display meiner Jeti DC16 geklebt (Autsch!) und los ging es. Und ich hatte Spaß und konnte Dreiecke fliegen.
Um so richtig ins Triangle einzusteigen hat es aber dann doch nicht gereicht. Und am Hang habe ich es dann mangels Hang in Berlin auch nicht probiert. Den Sensor also irgendwann zurückgegeben und das wars dann erstmal.

Mein cooles Triangle-Setup:
Triangle setup.jpg

Ich bin eigentlich Pilot alter Schule (brauche keine Telemetrie!) - aber irgendwie hatte das schon ganz gut funktioniert. Es hat mir dann doch keine Ruhe gelassen, also habe ich in einen 'SM GPS Logger 3' investiert um das GPS doch mal am Hang zu probieren. Wenn es nicht klappt – wovon ich damals eigentlich ausgegangen bin – kann man das Ding ja noch als Vario benutzen oder an einer Halskette tragen.

Also habe ich den Logger in einem geeigneten Rumpf untergebracht und im Sender einen Entfernungsalarm programmiert – auf 55m statt 50m - man will schließlich auch ein bisschen vor der Hangkante fliegen. Und dann ab nach Laucha, was für uns Berliner so etwas wie ein Haushang ist.

Abwurf – Flug und .... es piept. Nicht so ganz genau da, wo die Wendelinie hin gehört aber immerhin. Wenn ich im richtigen Abstand vor der Kante in der richtigen Höhe und nicht zu schnell geflogen bin kam richtig ein F3F Feeling auf. Natürlich kann man bei dieser Technik die 50m auch direkt nach vorne oder nach oben oder auch nach hinten fliegen, dann piept es genauso. Aber es machte Mut. Ich habe festgestellt, dass die Position beim Piep zwar nicht so richtig stimmte, aber sie war halbwegs deterministisch. Beim schnellen Fliegen kam der Piep immer zu spät, beim Fliegen weiter vor der Kante immer zu früh. Damit kann man arbeiten.

Mein Hangflugkumpel Frank hatte das ganze interessiert verfolgt und wollte nun auch einen Sensor. Nach kurzer Recherche schlug er den 'HEPF GPS Sensor' vor. Mit der zugehörigen Software sollte es möglich sein, Flugzonen zu definieren. Die Idee war also eine rechteckige Flugzone vor dem Hang zu nutzen. Ich habe mir das dann angeschaut und nicht schlecht gestaunt, dass die Software samt Kartenanzeige und Flugzonendefinition auf dem Jeti Sender betrieben werden sollte.

LUA als Programmiersprache kannte ich bis dahin nicht, hatte aber schon davon gehört, dass es so etwas wie LUA-Scripte auf Jeti Sendern gibt. Ich hatte das aber nie wirklich ernst genommen. Für mich - der in den 80er Jahren Informatik studiert hat - ist alles außer C++ sowieso nur Spielerei 😉. Ich dachte also das sind irgendwelche Makros, mit denen man ein paar vorgegebene Befehle abspielen kann.

Aber wenn man sich anschaut was die Sensorsoftware damit macht lohnt es sich vielleicht da mal genauer drauf zu schauen. Sehr schnell waren im Netz zahlreiche LUA-Apps gefunden und ich war begeistert, wie mächtig das ist. Es hat mich nicht wirklich technisch überrascht, vielmehr hatte ich nicht damit gerechnet, dass ein Hersteller von Fernsteuerungen so einen Interpreter wirklich in seine Firmware integriert.
Alle Achtung Jeti!

GPS-Sensor im Freestyler-Rumpf:
Sensor03.jpg

Nun hatte ich Bock! Dass man so eine Flugzone vor dem Hang auch recht schnell mit Hilfe der Trigonometrie berechnen kann hatte ich mir schon überlegt, allerdings müsste man sich noch mit Entfernungs- und Winkelbestimmung anhand von GPS-Positionen beschäftigen. Aber eins nach dem anderen.

Erstmal ein 'Hello World' in LUA, dann mal ein Konfigurationsmenü registrieren, einen Sensor auslesen, die Basics halt. Beispiele gab es ja im Netz genug. Und die Doku zur Jeti-API lesen - und schon wieder staunte ich: Die Jeti GPS-API liefert Positionen, Entfernungen und Winkel, also alles, was ich für die trigonometrische Berechnung benötigte. Hammer – nun hatte ich richtig Bock!

Ca. eine Woche saß ich vorm Rechner – mit kurzen Schlafpausen – und programmierte den kompletten F3F-Ablauf, Countdown, Streckenzähler, Stoppuhr – und die rechteckige Flugzone vor dem Hang. Ich rannte zur Verwunderung meiner Nachbarn mit einem Rumpf und einem Sender durch den Garten und es war nur ein gelegentliches Piepen zu vernehmen. Aber ja, prinzipiell machte der cosinus was von ihm erwartet wurde (nachdem ich begriffen hatte, dass man den Winkel erst ins Bogenmaß umrechnen sollte).

Um dann auch noch einen Einflug hinzubekommen habe ich begonnen mit Offsets zu arbeiten. Die Strecke wurde also auf 50m pro Seite definiert und dann beim Ausflug um einen konstanten Wert verkürzt um der Latenz entgegen zu wirken, beim Einflug entsprechend verlängert. Fertig war der erste Prototyp, Yeah!

Und es funktionierte – zumindest in einem gewissen Geschwindigkeitsbereich. Man konnte jetzt auch weit vor dem Hang fliegen und es piepte einigermaßen korrekt an der Linie. Es erwies sich allerdings als schwierig, die Offsets so einzustellen, dass die A-Base beim Ausflug und beim Einflug an der selben Stelle erkannt wird. Außerdem war zu beobachten, dass sich mit zunehmender Geschwindigkeit doch die Base deutlich verschiebt, die Latenz forderte ihren Tribut.

Da kann man doch was machen! In der nächsten Version waren die Offsets abhängig von der Geschwindigkeit, die ich ja auch direkt vom Sensor beziehen konnte. Die Faktoren, mit denen die Geschwindigkeit die Offsets für Einflug und Ausflug beeinflusst habe ich auf Potis gelegt. Nun konnte ich im Flug das System so justieren, dass – zumindest bei meinem Sender- und Telemetriesetup – die Wendemarken recht gut von beiden Seiten erkannt werden, und das auch bei unterschiedlichen Geschwindigkeiten. Fertig war der zweite Prototyp. Supi!

Erste Versuche:
20230809_221551.jpg signal-2022-02-15-12-10-15-935.jpg

Es sprach sich auch so langsam rum, dass ich da am Basteln war. Und so kam es, dass ich dann im März 2022 gemeinsam mit Katja und Frank - meinen Betatestern der ersten Stunde - das Projekt schon mal im Chat des F3F-Aktivenforums vorgestellt habe, damals unter dem aussagekräftigen Arbeitstitel 'GPS-Wenden-Signal-Gedöns'.
Das Interesse war groß, die Freude wurde allerdings dadurch getrübt, dass einige der Teilnehmer doch eher Graupner-Piloten waren.

Dann ging es an die wunderschönen Hänge nach Dänemark. Dort wird ja nicht nur geflogen, sondern auch zugeschaut. Und dann fällt es schon auf, wenn es an den Wendemarken piept und ab und zu eine Zeitansage zu hören ist - und nirgends am Hang eine Kamera oder sonstige Anlage steht. Und das nicht nur bei mir, auch Katja und Frank flogen piepsend durch die Gegend. Und so mußten wir dann Rede und Antwort stehen, und die Verbreitung des F3F-Tool Prototyps nahm seinen Lauf – bei Piloten aus Deutschland, Dänemark, Norwegen, Island ... Dabei war das Ganze bis dahin für mich nicht viel mehr als eine Machbarkeitsstudie – zugegeben mit dem Ergebnis 'prinzipiell machbar'. Keine vernünftige Doku, kein Update-Konzept, so gut wie kein Fehlerhandling – ein Albtraum für einen Informatiker.

Aber gut, es lohnt sich ja. Also machte ich das einzig Richtige, das, was einem im Job nie vergönnt ist, weil die Zeit fehlt oder das Geld fehlt oder die Zeit und das Geld fehlt. Ich warf den Prototyp weg!
Und ich schrieb es komplett neu, diesmal mit Struktur. Barney hatte mir noch Tips gegeben, wie man in LUA objektorientiert arbeiten kann, das klang doch gut. Und jetzt mit einstellbarer A-Base, besserem Fehlerhandling, und besserer Konfigurationsoberfläche.

Da auch schon die Idee aufgekommen war das Tool im F3B-Training einzusetzen baute ich noch einen Modus dafür ein, bei dem man nicht extra in die Mitte der Strecke laufen muss als wäre es ein Hang. Ich hatte kurz erwogen, den Namen auf 'F3X-Tool' zu ändern, wollte aber erstmal sehen ob das für F3B überhaupt taugt. Also bleibt es vorerst ein F3F-Tool mit F3B-Modus.

Nun muss man wissen, dass es auf den 'alten' Jeti-Sendern – die mit dem Schwarz/Weiß Display – eine strikte Begrenzung des Arbeitsspeichers gibt. Ich hatte mir für die Entwicklung sowieso schon eine DS-24 gegönnt, die ich seit dem versuche aus den eingehenden Spenden einiger Nutzer (Danke!) zu refinanzieren. Trotzdem habe ich immer versucht, den Speicherverbrauch so klein zu halten, dass es auf meiner alten DS-16 noch läuft. Aber die neue F3F-Tool Version sprengte nun total den Rahmen. Schade! Ich habe ja kein Problem damit, wenn man wegen meines Tools von Graupner auf Jeti umsteigt. Aber wenn alte DS-16 oder DS-14 Anlagen, die ja eigentlich für die Ewigkeit gebaut sind, meinetwegen ausgemustert werden finde ich das doof.

Die neuen aufgeräumten Konfigurationsmenüs:
Config ready.png Slope ready.png

Inzwischen hatte sich bereits ein Netzwerk von F3F-Tool Nutzern gebildet, über welches ich Kontakt mit Dave aus den USA bekam. Dave ist ein sehr erfahrener LUA-Entwickler mit zahlreichen coolen Apps im Angebot und er arbeitete damals an einem ähnlichen GPS-Ansatz für F3B/F3G. Wir standen also vor den selben Herausforderungen, auch in Bezug auf die Speicherbegrenzung der alten Sender. Wir tauschten uns in seitenlangen Emails aus, und Dave brachte die Idee ein, Code aus- und wieder einzulagern. Das gab es schon bei Windows 3.1 in den 90ern, aber toll dass man das auch mit LUA machen kann.

Dass ich das Programm diesmal strukturiert hatte zahlte sich aus. Denn so konnte ich relativ schnell ganze Objekte aus dem Speicher werfen, wie z.B. die gesamten Konfigurations-Forms, die ja im Flug eher wenig benötigt werden. Und während der Konfiguration kann man dann die Fluglogik auslagern, tolle Sache. Letzten Endes doch viel Fummelei aber es gelang mir, den Speicherverbrauch permanent unter die kritische Größe zu drücken. Und somit gibt es das Tool auch weiterhin für alle Jeti Sender. Cool!

TeleWindow.jpg
Pünktlich zu Ostern 2023 war die Version 1.4 dann fertig zum Test. Die Ergebnisse:
  • F3F geht ganz gut
  • Auch im F3B-Distance Training erfreuen sich Piloten daran
  • Beim Speed Training ist die Begeisterung noch verhalten, da gibt es noch Potential
Doch bevor ich mich nun auf die nochmalige Überarbeitung des F3B-Themas stürze wollte ich doch irgendwie mal so etwas wie einen Milestone setzen und das Tool offiziell verfügbar machen. Also habe ich nochmal aufgeräumt, Kommentare vervollständigt - alles ein bisschen schön gemacht, um es dann als Open Source zu veröffentlichen. Seit einigen Tagen ist das Projekt also jetzt auf GitHub verfügbar, ich hoffe ihr habt Spaß damit!

https://github.com/frank-sc/F3F-Tool-V1

Im Wesentlichen war das – etwas verkürzt - die ganze Story. Ich leite jetzt ab und zu die Wende wirklich schon vor dem Piep ein (bin allerdings dann machmal auch schon vor dem Piep rum). Und ich denke, die Geschichte ist noch nicht zu Ende da geht noch was – spätestens mit der nächsten Sensorgeneration.

Wir sehen uns am Hang
Frank


FAQ:

Geht das auch für Graupner oder Futaba oder andere Sender?

Nein, leider stellen Graupner und Futaba keinen LUA Interpreter zur Verfügung, sind also nicht in dieser Form programmierbar. Auch andere Sender sind mir nicht bekannt, außer OpenTX-Systeme.

Läuft das dann auch auf OpenTX?
Nein, leider auch nicht direkt. Man müsste die komplette Verwendung der Jeti-API ersetzen, das betrifft Konfigurationsmenüs, Displayansteuerung, GPS-Berechnungen, Sensorzugriffe ... eigentlich ein schönes Projekt ...

Ist das denn auch genau?
Nein, nicht so ganz. Aber irgendwie doch auch schon. Das aufkommende F3F-Feeling ist schon gut. Muss jeder selbst entscheiden, ob die Genauigkeit ihm ausreicht.
Das Consumer-GPS ist einfach prinzipiell nicht genau genug und die Übertragung über die Telemetrie auch nicht optimal. Die guten Triangle Systeme nutzen ja eine eigene Funkstrecke für die GPS-Übertragung. Das ist allerdings recht teuer und passt in keinen F3F-Rumpf.


Wie fliegt das denn ohne Motor?
Das hat mit GPS nix zu tun, bitte woanders fragen!
 

moze

User
Hallo Frank!

Schön, dass es so nun soweit ist. Wenn ich bedenke, dass unser Kontakt über Norwegen zustande kam und daraus so ein schönes Miteinander entstanden ist! Bleib am Ball, für Speed, das kriegen wir auch noch hin!!! Ich hoffe unsere Streckenflug F3G App ist auch bald reif zur Veröffentlichung. Irgendwann muss man den Milestone einfach setzen, denn es gibt ja irgendwie immer noch was zu tun. Du mit deiner Beta warst der Anstoß für mich so etwas auch haben zu wollen…. Daraus ist der Kontakt zu Dave und Jeroen und letzten Endes meine Wettbewerbsambitionen entstanden.

Danke für die Inspiration, die Tolle App und die noch tolleren Freundschaften!
Großes Lob und: mach weiter!

Liebe Grüße

Tim
 

Tern

User
Klasse Arbeit Frank!
Danke für das veröffentlichen.
Da wird es für viele Jeti Hangflieger noch einfacher in die F3F Wettbewerbsfliegerei einzusteigen.

Gruss
Markus
 

Tern

User
Moin Barney
Wenn einer gewohnt ist mit dem "König der Werkzeuge" Probleme zu lösen ist das mit dem Programmieren nicht so einfach 😆
Genauer gesagt, der Code von Frank ist für mich nicht lesbar, da ich keine Ahnung habe.

Darum habe ich mal mit den Basics angefangen und das erste Lua script zusammen kopiert und geschrieben :D
Die wichtigsten Werte sind schon mal im Kasten.
F3Ftool.JPG


Gruss
Markus
 

Tern

User
Hallo Dieter
Bezüglich Graupner...
Beim stöbern nach gps Modulen bin ich auf die openXSensor Platform gestossen.
Mit einem arduino können eigene Telemetriesensoren gebaut werden (auch gps) und über den Rückkanal zur Graupner Mpx oder frsky Funke gesendet werden.
Das eröffnet die Möglichkeit die F3F Funktionalität in den Sensor zu programmieren.
Zumindest die Beep- erei könnte dann am sender ausgegeben werden.
Einen kompletten Lauf im Sender darzustellen wird vermutlich schwierig.
Mit externem arduino am Boden aber vielleicht machbar.
Brauchst nur noch einen der das programmiert 😉:D.

Gruss
Markus
 

dp-air

User
Hallo Dieter
Bezüglich Graupner...
Beim stöbern nach gps Modulen bin ich auf die openXSensor Platform gestossen.
Mit einem arduino können eigene Telemetriesensoren gebaut werden (auch gps) und über den Rückkanal zur Graupner Mpx oder frsky Funke gesendet werden.
Das eröffnet die Möglichkeit die F3F Funktionalität in den Sensor zu programmieren.
Zumindest die Beep- erei könnte dann am sender ausgegeben werden.
Einen kompletten Lauf im Sender darzustellen wird vermutlich schwierig.
Mit externem arduino am Boden aber vielleicht machbar.
Brauchst nur noch einen der das programmiert 😉:D.

Gruss
Markus
😎Quatschen wir in Haho drüber. Vielleicht bei einem isotonischen Hefegetränk
 

Tern

User
Mit Unterstützung von Barney läuft das Taranis F3F Tool mitlerweile recht passabel.
Einige kleinere Details sind noch zu verbessern.
Habe probiert ein GPS Modul mit openXsenor und Arduino zu basteln.
Vorteil: Das Modul ist recht klein und ist über ein Kabel vom Arduino getrennt.
Somit kann der Einbau einfacher sein.
Auch können verschiedene Qualitäten von GPS Modulen ausprobiert werden.
Preislich ist das auch attraktiv. OpenXsensor kann auch Jeti ;)
Gruss
Markus
 

Smart

User
Hi Frank,

sehr cooles Tool.
Ich habe einen SM GPS Logger 3 in meinen alten 10-Zellen (jetzt 3S) Hotliner Velectric Pro eingebaut, da der Rumpf auch hinter der Fläche kein CFK hat.
Velectric Pro

Mit dem Setup habe ich eine virtuelle F5B Strecke auf unserem Gelände eingerichtet. Die richtige Ausrichtung (course bearing) habe ich vorher schon mal mittels Google Earth ermittelt. Damit war die Einrichtung am Platz sehr schnell erledigt.

Nach ein paar 200 Sekunden Streckenflügen im F3B Modus kann ich folgendes sagen:
  • mit dem, im Vergleich zu den F5F Modellen, etwas langsameren Hotliner funktioniert das Tool für's erste mal sehr gut
  • Pieper waren nachvollziehbar
  • Bei geringerer Geschwindigkeit (z.B.Rückflug 4. Strecke zur A-Linie) kommt das Signal genauer als bei full speed (war zu erwarten)
  • Die Auswertung über google Earth zeigt das ich ca 15m an der B-Linie übers Ziel hinaus schiesse. Das müsste mal einer von den Wettbewerbspiloten testen, die treffen die B-Linie erheblich besser bei der Wende.
  • Da der F3B Streckenflug als Modus hinterlegt ist, wird nach dem Steigen und Wiedereinflug in die Strecke über die A-Linie kein Signal erzeugt. Evtl. kann man hier noch einen Zusatzmodus F5B einfügen?
###
Google-Screenshot wg. Copyright entfernt
MfG Moderator
###

Nächste Schritte:
Ich versuch mal ob ich den GPS Logger irgendwie in meine Backfire-2 bekomme und ob er dann er dann noch ein GPs Signal empfängt.

Nochmal: Super Tool!


Gruß,
Markus.
 
Zuletzt bearbeitet von einem Moderator:

petey

User
Hallo zusammen,
ich habe meinen DC-16 Sender (monochrome display und damit "alt") upgedatet auf die SW-Version Version 4.28.lua, um die F3F-App zu installieren. Die Installation in das (ansonsten leere) Verzeichnis "Apps" ist via USB- Kabel erfolgt. Beim Starten laut dem Manual der F3F- App kommt die Meldung, dass zu wenig Memory vorhanden ist.
Ich glaubte mich daran zu erinnern, dass bei den "alten" Sendern die App mit einem Jeti-Tool zu installieren wäre. Also habe ich mich via Jeti Studio daran gemacht, kann aber die F3F-App nicht in den App Generator importieren.
Daher meine Fragen:
- welche der entpackten Files müssen in den App-Generator importiert werden?
- gibt es einen Trick, mit dem man die F3F-App in die Liste der verfügbaren Apps bekommt, die offenbar Jeti online bereitstellt und ist das Voraussetzung?

Danke für jede Hilfe,
petey
 

FDS

User
Hallo petey, ich empfehle dringend, die aktuelle Firmware zu verwenden, das ist auch bei den monochrome Sendern die 5.06 LUA. Soweit ich weiß hat Jeti die Speicherverwaltung der LUA-Umgebung seit der 4.28 (von 2018) optimiert. Ich habe auch auf 5.06 entwickelt und getestet, aber leider versäumt, das in die Voraussetzungen zu schreiben. Das werde ich nachholen, danke!
Installation via Jeti Studio ist nicht notwendig.

Viel Erfolg - Frank
 
Hallo zusammen

Wäre es nicht wünschenswert, die OpenTX Version auch auf GitHub zu stellen, so dass mehrere Personen zum Erfolg beitragen könnten?

LG, Georg
 
Soweit ich weiß hat Jeti die Speicherverwaltung der LUA-Umgebung seit der 4.28 (von 2018) optimiert. Ich habe auch auf 5.06 entwickelt und getestet, aber leider versäumt, das in die Voraussetzungen zu schreiben.
Genauer, closeForm() ist erst ab 5.0 implementiert. Das war ein Segen gewinnt man dadurch nicht nur die Möglichkeit ein Modul für die Form aus dem Speicher zu werfen, sondern man kann da auch ein Flag setzen um einen Telemetrie Screen (require modul und register telemetry) in loop() wieder rein zu holen, den man vorher in der initFunction der Form aus dem Speicher entfernt hat. Wird leider viel zu wenig Gebrauch von gemacht und alle verschenken den Speicher.

Gruß
Dieter
 
Hallo Helge,

wir verwenden eigentlich alle den SM GPS Logger 3.
Einen möglichst aktuellen GNSS Chipsatz und 10Hz Datenrate würde ich als Minimum-Anforderung definieren.

VG, Falk
 

FDS

User
Hallo zusammen,
Ich hatte mein Wissen zu dem Thema hier auch dokumentiert, auch mit ein paar Bildern wie das in den Rumpf passt:

vg - Frank
 
Ansicht hell / dunkel umschalten
Oben Unten