INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Berechnen der Entfernung zwischen 2 GPS Koordinaten
01.02.2020, 21:34 (Dieser Beitrag wurde zuletzt bearbeitet: 01.02.2020 22:12 von ardu_arne.)
Beitrag #1
Berechnen der Entfernung zwischen 2 GPS Koordinaten
Hallo Forum,

Zurzeit arbeite ich an einem Autopiloten für ein kleines Boot dafür will ich u.a die Entfernung meines derzeitigen zu einer anderen Koordinate berechnen können ich verzweifele daran schon seit 2 Tagen Undecided und hab mir zig Seiten und Threads auf allen Möglichen Foren dazu durchgelesen aber komme hier nicht weiter, deswegen wäre ich sehr glücklich wenn mir ein Sachkundiger helfen könnte.

Zu meinem Programm bisher: Es liest selbstständig per GPS Modul den eigenen Standort aus(das funktioniert soweit sicher) und die Zielkoordinate wird in einer bzw. zwei Variablem festgelegt .Das Problem muss meiner Meinung nach in der Formel liegen, da ich nur kurze Strecken berechne will ich die Erdkrümmung nicht beachten bekomme zwar Ergebnisse aber die haben willkürliche Abweichungen von 1 - 25%.
Ich weiß nicht was der Fehler ist weil meiner Meinung sollte es so funktionieren, überprüft habe ich immer mit Google Maps und auch wenn es hier durch höhen- unterschiede, Unterschiede geben sollte dürften diese nicht so groß sein und außerdem waren meine Ergebnisse immer zu groß statt zu klein.

Vielen Dank für jede Hilfe

Code:
#include <TinyGPS++.h>
#include <SoftwareSerial.h>

static const int RXPin = 3, TXPin = 4;
static const uint32_t GPSBaud = 9600;

// The TinyGPS++ object
TinyGPSPlus gps;

// The serial connection to the GPS device
SoftwareSerial ss(RXPin, TXPin);


float ZIEL_lat = 47.802286;         //hier werden Zielkoordinaten übergeben
float ZIEL_lon = 12.161015;



void setup()
{
  Serial.begin(9600);         // Monitor start
  
  ss.begin(GPSBaud);         //GPS Port start


  Serial.println(F("Start"));
  Serial.println();
}



void loop()
{
  while (ss.available() > 0)           // wenn daten empfangen werden lesen
  {
    if (gps.encode(ss.read()))
    {  
     GPS();            // GPS Methode ausführen
    }
  }
  if (millis() > 5000 && gps.charsProcessed() < 10)          
  {
    Serial.println(F("No GPS detected"));                            //Ausgabe das das GPS keine Daten empfängt
    while(true);
  }
}



void GPS()
{
   if (gps.location.isValid())
  {
    float latitude = gps.location.lat();         // Position speichern
    float longitude = gps.location.lng();
    long ziel_entfernung = Abstand(latitude, longitude, ZIEL_lat, ZIEL_lon);       //führt die Methode zur Berechnung der Strecke aus
  }
  else
  {
    Serial.println(F("INVALID"));                        //ungültiger GPS Satz
  }
}

float Abstand(float lon1, float lat1, float lon2, float lat2)
{
  float dx = 111.3 * cos(lat1) * (lon1 - lon2);
  float latn = (lat1 + lat2) / 2 * 0.01745;              
  float dy = 111.3 * (lat1 - lat2);
  float abstand = sqrt(dx * dx + dy * dy);          
  
  Serial.println(abstand, 2);                      // Ergebnis ausgeben und zurückgeben
  return abstand;
}


Angehängte Datei(en)
.ino  sketch_Entfernungen_berechnen.ino (Größe: 1,73 KB / Downloads: 35)

LG louard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 21:45
Beitrag #2
RE: Berechnen der Entfernung zwischen 2 GPS Koordinaten
Stelle Deinen Sketch bitte in Codetags direkt ins Forum. So ist er auch auf portablen Geräten lesbar.
Wie das geht, steht hier.
Das kannst Du auch noch nachträglich ändern.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.02.2020, 22:23
Beitrag #3
RE: Berechnen der Entfernung zwischen 2 GPS Koordinaten
Hallo,
hab das mit den Codetags mal in Deinen Beitrag eingefügt. Wink

Wenn es bei Dir um "kleine" Entfernungen geht spielt sich die ganze Rechnerei auf der sechsten oder siebten Stelle hinter dem Komma in einer Float-Variablen ab.
Das ist dann keine Aufgabe mehr für einen 8 Bit Arduino weil bei dem eine Float-Variable lediglich 6 bis 7 signifikante Stellen hat (32 Bit).
Ich würde daher zu einem 32 Bit Controller (ESP8266) raten und dort den Datentyp double (64 Bit) zu verwenden.

Gruß Arne
Mit zunehmender Anzahl qualifizierter Informationen bei einer Fragestellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
02.02.2020, 18:29
Beitrag #4
RE: Berechnen der Entfernung zwischen 2 GPS Koordinaten
Erstmal danke für die schnellen Antworten und das Einfügen meines Codes(ich bin ganz neu hier...),Tongue

Also 5 Stellen scheinen zu reichen genauer ist mein GPS sowiso nicht(ab der 6. verändern sich die Werte mit jeder neuen Messung) hab das schon ausprobiert und die GPS Koordinaten haben eine Genauigkeit von locker 10 Metern, eher 5 hab ich das Gefühl.
das sollte bei Strecken bis max. 3-4 Km reichen.

LG louard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
27.02.2020, 10:55
Beitrag #5
RE: Berechnen der Entfernung zwischen 2 GPS Koordinaten
Hallo louard,

bist du mit deinem Problem schon weiter gekommen?

Ich bin gerade in einer änlichen Situation und möchte neue Koordinaten
auf plausibilität gegenüber der letzten Koor. prüfen.

Ich bin allerdings schon einmal etwas weiter, was die Ursache angeht.
Da ich auch Amateurfunker bin, kenne ich in meinem Umfeld die Ecken
wo es zu z.T. erheblichen Funkstörungen kommt.

Diese decken sich weitesgehend mit den Stellen, wo das GPS-Modul
dann schon mal murks liefert. Von daher denke ich mal das es nicht immer
am Modul und schon gar nicht an der Software liegt.

Zu deinem Sketch habe ich aber noch eine Frage:
Wofür steht die 111.3 in deiner Berechnung???
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
14.04.2020, 11:52
Beitrag #6
RE: Berechnen der Entfernung zwischen 2 GPS Koordinaten
(27.02.2020 10:55)DO3GE schrieb:  Hallo louard,

bist du mit deinem Problem schon weiter gekommen?

Ich bin gerade in einer änlichen Situation und möchte neue Koordinaten
auf plausibilität gegenüber der letzten Koor. prüfen.

Ich bin allerdings schon einmal etwas weiter, was die Ursache angeht.
Da ich auch Amateurfunker bin, kenne ich in meinem Umfeld die Ecken
wo es zu z.T. erheblichen Funkstörungen kommt.

Diese decken sich weitesgehend mit den Stellen, wo das GPS-Modul
dann schon mal murks liefert. Von daher denke ich mal das es nicht immer
am Modul und schon gar nicht an der Software liegt.

Zu deinem Sketch habe ich aber noch eine Frage:
Wofür steht die 111.3 in deiner Berechnung???

Hallo DO3GE,

Erstmal zu deinem Ansatz, zumindest bei mir scheint es keine Probleme mit Störungen geben ich habe meine Koordinaten immer mit Google Maps überprüft und die Koordinaten lagen zu 98% in der 5-6Meter Toleranz.
Und zu deiner Frage: die 111,3 ist die Entfernung zwischen den Breitengraden eine hilfreiche Seite für die Entfernungsberechnung ist hier: https://www.mkompf.com/gps/distcalc.html

LG louard

LG louard
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Probleme mit Wert zwischen Messbereichen von bis juergen001 6 189 07.09.2020 14:49
Letzter Beitrag: juergen001
  Float über I2C zwischen 2 Arduinos UNO Marduino_UNO 23 9.178 18.08.2020 11:53
Letzter Beitrag: hotsystems
  SIM800L - Koordinaten abfragen uk1408 0 234 09.08.2020 12:10
Letzter Beitrag: uk1408
  GPS Koordinaten prüfen/korrigieren DO3GE 4 561 27.02.2020 15:24
Letzter Beitrag: uk1408
  Zeitmessen zwischen 2 Impulse Lothileinchen 10 991 02.02.2020 16:48
Letzter Beitrag: Lothileinchen
  Mit einen Taster zwischen zwei Ausgängen Toggeln luft-post 6 765 13.01.2020 17:41
Letzter Beitrag: hotsystems
Information Arduino Wert mit Drucktaster hochzählen und berechnen Pauli33_student 4 776 07.11.2019 21:35
Letzter Beitrag: Tommy56
  Werte in Arduino mittels Drucktaster eingeben und mittels Formel Wert berechnen Pauli33_student 5 818 04.11.2019 13:20
Letzter Beitrag: Peter_hno3
  BMP280 - Höhe berechnen Herby007 6 1.946 11.08.2019 11:06
Letzter Beitrag: Tommy56
  Verbindung zwischen BLE Shield und Feather32u4 WinTiger 10 1.900 21.05.2019 11:07
Letzter Beitrag: WinTiger

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste