Gps Tempomat für ein Boot programmieren

Heute ist Stammtischzeit:
Jeden Donnerstag 20:30 Uhr hier im Chat.
Wer Lust hat, kann sich gerne beteiligen. ;)
  • Hey zusammen ich bin neu hier , und auch noch Anfänger :conf: ich möchte gerne mit einem Rasperry pi 3 einen GPS Tempomat bauen . Der Pi soll die gps Daten auswerten, und einen 50mm servo Lineamotor steuern und somit die voreingestellte Geschwindigkeit zb. 36Km/h halten . Ist das möglich sowas zu programmieren ???:conf:

    Vielen Dank . Mario:)

    • GPS "Mouse" besorgen
    • Koordinaten auslesen und aktuelle Geschwindigkeit berechnen/gibt vielleicht auch fertige Bibliotheken/Module dafür
    • Ich weiß nicht, ob es da einen effizienteren Weg gibt, aber ich würde eine while-Schlaufe laufen lassen, die je nach aktueller Geschwindigkeit mehr Gas gibt oder eben weniger:
    Code
    motorPos = 0
    while(1):
        if(aktuelleGeschw < sollGeschw):
            motor(motorPos + 5) # mehr Stoff geben
        if(aktuelleGeschw > sollGeschw):
            motor(motorPos - 5) # weniger Stoff geben

    Der Beispielcode ist sehr vereinfacht und kann noch um einiges erweitert werden, wie z.B. eine nicht-lineare Beschleunigung und Toleranzen bezüglich der Geschwindigkeit.

    Kelvin

  • Eine GPS-Mouse hat den Namen von seiner ursprünglichen Form bekommen. Sah aus wie eine USB-Mouse. Die hat heute immer noch den Vorteil, das GPS-Empfänger und Datenwandlung direkt an der Antenne lagen und nur noch die Daten zum Auswerten geschickt wurden. Das Modul sitzt häufig mit Antenne direkt am Raspberry, das kann für den Empfang abträglich sein.

    Für dein Projekt benötigst GPS-Elektronik mit kurzer Abfragezeit, da sonst die Genauigkeit der Geschwindigkeit zu wünschen übrig lässt.

  • einen 50mm servo Lineamotor steuern und somit die voreingestellte Geschwindigkeit zb. 36Km/h halten
    ...

    darf ich nach einer GPS Mouse fragen Hersteller zb

    Hallo Mario09,


    ein paar Anmerkungen, über die Du Dir imho Gedanken machen musst.

    Dein Boot legt in einer Sekunde bei 36km/h zehn Meter Strecke zurück. Um hier etwas regeln zu wollen, benötigst Du eine sehr schnelle Abfrage der Geschwindigkeit. Bei (sehr guten) 5Hz, von 1Hz spreche ich ja gar nicht, legt das Boot schon 2m zwischen zwei Punkten zurück. Das bedeutet auch, dass Du bei einer Genauigkeit von im Minimum +- 1m (und eher schlechter) hier kaum einen Blumentopf gewinnen kannst, wenn Du das über die Stecke ermitteln willst. Soweit ich weiß, ist es nur sinnvoll, die Geschwindigkeit über Dopplerverschiebungen der Satellitensignale zu ermitteln. Diesen Effekt kennt jeder, dem mal ein Auto mit angeschalteter Sirene entgegenkam bzw. sich entfernte.

    Die Fragen sind:

    Welche GPS Empfänger beherrschen das? Welchen Preis haben die? (Profigeräte können durchaus mehrere tausend Euro kosten....)

    Können die Daten dieser Empfänger mit der von Dir gewünschten Hard- und Software verarbeitet werden?

    Steht die aktuelle Geschwindigkeit oft genug zur Verfügung, damit sie für einen Regelung taugt?

    Grüße, STF

    Edith fand noch ein paar interessante Links: Racelogic - Wie funktioniert GPS // VBOX Motorsport GPS-Messtechnik

  • Ergänzend zu STF denke ich auch, dass eine Geschwindigkeitsregelung bei jeder Messung die Geschwindigkeit signifikant verstellen wird. Grund ist die Messungenauigkeit. Um das zu verbessern musst Du einen Software Filter zwischenschalten. Das Ganze macht also erst bei längeren Strecken Sinn. Bei Kurven verkompliziert sich das extrem...

    Reden wir von einem Modell oder einem richtigen Boot?

    Wäre die Ermittlung von Wasser- und/oder Windgeschwindigkeit kein brauchbarer Ansatz?

    ...wenn Software nicht so hard-ware ;) ...

    Freue mich über jeden like :thumbup:

  • Hallo Hallo, bitte alles zurück auf Anfang!

    Geschwindigkeitsmessung gehoert zur Grundausstattung eines jeden GPS Empfängers. Wenn es NMEA sein soll, dann ist die Message $GPVTG oder $GPRMC das Richtige für dich. Du musst nur im Vorfeld herausfinden ob der GPS Empfänger deiner Wahl diese Message auch bereitstellt, aber es würde mich extrem wundern, wenn nicht.

    Die Berechnung der Geschwindigkeit über zwei Koordinatenpunkte ist - Entschuldigung - Unsinn. Der GPS Empfänger kann die Geschwindigkeit von Haus aus besser und wesentlich genauer messen, da er ja die Zeit misst die die Radiowellen brauchen um vom Satelliten zum Empfänger zu kommen. Wenn diese Zeit zwischen zwei Messpunkten unterschiedlich ist, hast du dich bewegt.

    Ein Software Filter brauchts auch nicht, weil jeder GPS bereits ein solches Filter (sog. Kalman Filter) benutzt, und du kannst mir glauben die Brüder machen das um ein Vielfaches besser als du es je hinbekommen würdest. Das ist eine Wissenschaft für sich.

    Die NMEA Messages muss man soweit ich mich erinnern kann am GPS erst aktivieren, normalerweise kommt da nur $GPRMC raus, aber das würde ja schon reichen, wenn du dir das Protokoll einmal genauer anschaust.

    Und der in Beitrag #2 gezeigte Software Ansatz ist auch eine Katastrophe, weil du natürlich eine Hysterese einbauen musst damit die Regelung nicht das Schwingen anfängt.

    Und die Regelung kann erst eingeschaltet werden, wenn es einen Fix gibt. Den muss man ständig prüfen. Auch dafür gibt es eine NMEA Message, hab nur grad vergessen wie die heisst.

  • Der GPS Empfänger kann die Geschwindigkeit von Haus aus besser und wesentlich genauer messen

    Das ist richtig und davon bin ich ausgegangen. Trotzdem muß die Abfragezeit kurz sein. Nicht wegen der Berechnung sondern wegen der möglichst genauen Regelung. Um so höher die Geschwindigkeit, um so kürzer die Regelungszeit würde ich mal sagen. In der Software sollte dann genügend Raum für Anpassungen an die Hardware sein. Irgendwann weiß man, wie groß die absolute positive oder negative Beschleunigung ist, wenn man dann vielleicht noch einen Beschleunigungssensor einbaut, der die äußeren Einflüsse wie z.B. Gegenwind und damit die relative Beschleunigung mitbekommt, kann man sehr gut berechnen, wie der Motor regeln muß, damit die Geschwindigkeit stimmt.

  • Trotzdem muß die Abfragezeit kurz sein. Nicht wegen der Berechnung sondern wegen der möglichst genauen Regelung.

    ehemm.... Die Genauigkeit der Regelung hängt nicht primär von der Anzahl der Datensätze pro Zeiteinheit ab. Schliesslich geht es um einen Tempomaten, nicht um einen Autopiloten oder eine Navigation.

    Du hast eine Stellgroesse, hier z.B. 20 Knoten Geschwindigkeit. Diese Stellgroesse ändert sich jetzt nicht dauernd, sondern ist zeitlich konstant und ändert sich, sagen wir mal alle 5 Minuten. Dann hast du eine Messeinheit die den Ist-Zustand misst, das ist das GPS. Dann hast du eine Steuerung die IST- mit SOLL Zustand vergleicht und auf die Stellgroesse hinarbeitet. Wie schnell das geht, ist primär nicht wichtig, aber der Algorithmus der den Gashebel bedient, der ist absolut wichtig. Du kannst es schnell einschwingen lassen, mit Ueberschwingern und der Gefahr von instabilität, oder gemächlich und sicher. Regelungstechnik ist ein Studiengang für sich, ist nicht mein Ding.

    Wenn du einen Bootsschein hast, wirst du vielleicht schon mal die Erfahrung gemacht haben, dass ein Boot langsamer auf Lenkbewegungen und den Gashebel reagiert als z.B. ein Auto. Daher sind Dateneingaben von 1 mal pro Sekunde absolut ausreichend. Deshalb baut man ja auch eine Hysterese ein, das ist dann sozusagen ein Tiefpass um ein Schwingen der Regelung zu vermeiden (= hohe Frequenzen herausfiltern).

    Auf einem Boot geht alles ein wenig langsamer, deshalb ist es ja auch so erholsam.

  • Auf einem Boot geht alles ein wenig langsamer, deshalb ist es ja auch so erholsam.

    In meinem Kopf, auch durch die km/h Angabe in die Irre geführt, baute sich ein Bild eines Modellbootes auf, nicht das eines Schiffes mit „unendlich“ Platz bis zum Horizont. So gesehen, hast Du natürlich Recht. Aber auch mal so Dinge wie die berüchtigten verlorengegangenen Seecontainer oder schlafende Wale außen vor gelassen: einem Rpi würde ich dann doch nicht die Geschwindigkeitsregelung überlassen. Auch auf dem Wasser nicht.

    Grüße aus der Tieflandsbucht, STF

  • Hallo zusammen :)

    Sorry das ich jetzt erst schreibe . Es geht hier bei um ein echtes Boot , Also kein Model . Das ist ja doch ganz schön kompliziert so eine Steuerung aufzubauen .... einen GPS Empfänger ( Mouse ) habe ich gefunden , darf man hier Artikel posten ?? Dann würde ich das mal posten ... der Pi soll dann einen linear-servo der 50mm Hub Gesamt hat antreiben .

    Viele Grüße und vor allem vielen Dank. Mario

  • Das mit der Motor Regelung Stelle ich mir auch schwierig vor , bei wieviel km/h Differenz soll der servo Antrieb welchen weg zurück legen .... das genau zu justieren .

  • Ein Tempomat funktioniert im Prinzip durch Annäherung des Ist-Wertes an den Soll-Wert in mehr oder weniger grossen Schritten.

    Dabei ist die Ankopplung des Tempomates an die vorhandene Steuerung die grössere Herausforderung. Ein Linearmotor ist mögkicherweise auch nicht die beste Option.

    Nimm Dir eine Anleihe aus dem KFZ Bereich.


    Servus !

    RTFM = Read The Factory Manual, oder so

  • Nimm Dir eine Anleihe aus dem KFZ Bereich.

    Ja, es ist natürlich wesentlich einfacher und effektiver und vor Allem sicherer, die komplette Motorsteuerung mit einer Anleihe aus dem KFZ Bereich umzubauen, ohne Radsensoren und dem ganzen Gedöns. Mit nem RPi. Is klar. :wallbash:

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!