Tracker (kursabweichung berechnen)
Moderator: Roland
-
- Beiträge: 4
- Registriert: 26.06.2008 - 02:23
Tracker (kursabweichung berechnen)
Hallo
ich bin zur Zeit beschäftigt mit der Entwicklung Gps Tracker Software. Die Software soll einen Fussgänger ermöglichen seine zurückgelegte Strecke als Route aufzuzeichnen. Mittels der Software und der gespeicherten Route kann sich der Fussgänger dann zurück zu seinem Startpunkt lotsen lassen.
Zurzeit kann die Software die Route aufnehmen und abspeichern.
Bei der Aufnahme wird alle 5 meter ein Wegpunkt gesetzt. Jeder Wegpunkt enthält die Koordinaten in Dezimalform und die Richtung.
Jetzt zu meinen Fragen
Wie kann ich eine Richtungsänderung berechnen?
Ich meine damit, wie kann ich aus den gespeicherten Wegpunkten entnehmen das der Fussgänger nach links oder nach rechts abbiegen muss.
Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
Erste Versuche die Kursabweichung mittels der gespeicherten Richtungen zu berechnen, sind leider fehlgeschlagen, da sie nicht alle Fälle betrachten.
Ich bin für jede Hilfe dankbar!
ich bin zur Zeit beschäftigt mit der Entwicklung Gps Tracker Software. Die Software soll einen Fussgänger ermöglichen seine zurückgelegte Strecke als Route aufzuzeichnen. Mittels der Software und der gespeicherten Route kann sich der Fussgänger dann zurück zu seinem Startpunkt lotsen lassen.
Zurzeit kann die Software die Route aufnehmen und abspeichern.
Bei der Aufnahme wird alle 5 meter ein Wegpunkt gesetzt. Jeder Wegpunkt enthält die Koordinaten in Dezimalform und die Richtung.
Jetzt zu meinen Fragen
Wie kann ich eine Richtungsänderung berechnen?
Ich meine damit, wie kann ich aus den gespeicherten Wegpunkten entnehmen das der Fussgänger nach links oder nach rechts abbiegen muss.
Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
Erste Versuche die Kursabweichung mittels der gespeicherten Richtungen zu berechnen, sind leider fehlgeschlagen, da sie nicht alle Fälle betrachten.
Ich bin für jede Hilfe dankbar!
Re: Tracker (kursabweichung berechnen)
Hallo tareq,
Vorab wäre zu klären: Auf welchem Level bewegen wir uns ?
Geht es um
1. eine Schülerarbeit,
2. einen Seminarvortrag oder
3. ein kommerzielles Produkt ?
Bei der Schülerarbeit kommt man vielleicht mit der Beziehung „Standpunkt/Polygonseite“ aus, wobei nur Punktabstand und richtiger Quadranten für die Richtung gefunden werden muss. Als Vermesser kann ich Dir da mit „Richtungswinkel und Entfernung“ und „Höhen-Höhenfusspunkt“ ganz vorzügliche Formeln nennen - aber ich finde sie momentan nicht im Internet
Etwas versteckt hier auf S. 57
http://cdl.niedersachsen.de/blob/images ... 37_L20.pdf
Jetzt ist unklar, ob Du lieber in Vektoren denkst, da gibt es andere Lösungen
http://www.vorhilfe.de/read?t=374988
Das Auftreten unzähliger und ungeahnter Sonderfälle wird m.E. aber dazu führen, dass nach höheren Algorithmen aus dem Bereich Optimierung/Topologie gesucht werden muss.
· Die Waypoints streuen und müssen gefiltert werden
· Die Verbindung der Waypoints erzeugt formenreiche Routen
· Die Routen umfassen ein eng begrenztes oder globales Gebiet
· Definieren eines Toleranzbandes bei der Routenführung
· Der Rückweg kann durch spontane oder dauerhafte Hindernisse Ausweichbewegungen, Re-Routing oder Abwarten erfordern.
· Was ist bei einer Blockierung des Rückwegs zu tun ?
· usw.usw.
Ich denke bei allen Fällen solltest Du „Fréchet-Distanz“, „Map-matching“ und „Routing Algorithm“ ergoogeln, just like
http://en.wikipedia.org/wiki/Routing
http://www.cs.utsa.edu/~carola/research ... ching.html
Hast Du das Problem halbwegs gelöst, wirst Du beim kommerziellen Fall den Code selbst noch optimieren müssen … ich glaube, da wird etwas Großes entstehen …
Wir hatten schon mal einen entfernt vergleichbaren Thread
http://www.kowoma.de/gpsforum/viewtopic ... &sk=t&sd=a
Übrigens: ist unser Forum für Dich nur 2.Wahl ?
Grüße Roland
Ok, über welchen Betrag reden wir ?Ich bin für jede Hilfe dankbar!
Vorab wäre zu klären: Auf welchem Level bewegen wir uns ?
Geht es um
1. eine Schülerarbeit,
2. einen Seminarvortrag oder
3. ein kommerzielles Produkt ?
Bei der Schülerarbeit kommt man vielleicht mit der Beziehung „Standpunkt/Polygonseite“ aus, wobei nur Punktabstand und richtiger Quadranten für die Richtung gefunden werden muss. Als Vermesser kann ich Dir da mit „Richtungswinkel und Entfernung“ und „Höhen-Höhenfusspunkt“ ganz vorzügliche Formeln nennen - aber ich finde sie momentan nicht im Internet
Etwas versteckt hier auf S. 57
http://cdl.niedersachsen.de/blob/images ... 37_L20.pdf
Jetzt ist unklar, ob Du lieber in Vektoren denkst, da gibt es andere Lösungen
http://www.vorhilfe.de/read?t=374988
Das Auftreten unzähliger und ungeahnter Sonderfälle wird m.E. aber dazu führen, dass nach höheren Algorithmen aus dem Bereich Optimierung/Topologie gesucht werden muss.
· Die Waypoints streuen und müssen gefiltert werden
· Die Verbindung der Waypoints erzeugt formenreiche Routen
· Die Routen umfassen ein eng begrenztes oder globales Gebiet
· Definieren eines Toleranzbandes bei der Routenführung
· Der Rückweg kann durch spontane oder dauerhafte Hindernisse Ausweichbewegungen, Re-Routing oder Abwarten erfordern.
· Was ist bei einer Blockierung des Rückwegs zu tun ?
· usw.usw.
Ich denke bei allen Fällen solltest Du „Fréchet-Distanz“, „Map-matching“ und „Routing Algorithm“ ergoogeln, just like
http://en.wikipedia.org/wiki/Routing
http://www.cs.utsa.edu/~carola/research ... ching.html
Hast Du das Problem halbwegs gelöst, wirst Du beim kommerziellen Fall den Code selbst noch optimieren müssen … ich glaube, da wird etwas Großes entstehen …
Wir hatten schon mal einen entfernt vergleichbaren Thread
http://www.kowoma.de/gpsforum/viewtopic ... &sk=t&sd=a
Übrigens: ist unser Forum für Dich nur 2.Wahl ?
Grüße Roland
Re: Tracker (kursabweichung berechnen)
Also Roland... kein Schüler arbeitet Nachts um 02:51 noch an einer Schülerarbeit
Mein Vorschlag
Erstens
Berechne dir den Richtungswinkel (im folgenden "W1") von der aktuellen Position die dir dein Empfänger gibt zum nächsten Routing-Punkt an dem du abbiegen musst...
kannste über den arcus-tangens machen: atan(dy/dx) machen... bisschen if- und when-Abfragen rein und dann läuft das problemfrei (ist auch in jedem Schülertafelwerk erklärt )
Zweitens
Berechne dir den Richtungswinkel (im folgenden "W2") von der aktuellen Position die dir dein Empfänger gibt zum übernächsten Routing-Punkt (also der Punkt, der die Richtung vorgibt in die abgebogen werden soll)
Drittens
Berechne die Differenz zwischen W1 und W2... anhand der größe der Winkeldifferenz entscheidest du dann ob angezeigt werden soll "links abbiegen" oder "rechts abbiegen"... eventuell noch unterteilen... "scharf links" oder "halb links" oder so...
Mein Vorschlag
Erstens
Berechne dir den Richtungswinkel (im folgenden "W1") von der aktuellen Position die dir dein Empfänger gibt zum nächsten Routing-Punkt an dem du abbiegen musst...
kannste über den arcus-tangens machen: atan(dy/dx) machen... bisschen if- und when-Abfragen rein und dann läuft das problemfrei (ist auch in jedem Schülertafelwerk erklärt )
Zweitens
Berechne dir den Richtungswinkel (im folgenden "W2") von der aktuellen Position die dir dein Empfänger gibt zum übernächsten Routing-Punkt (also der Punkt, der die Richtung vorgibt in die abgebogen werden soll)
Drittens
Berechne die Differenz zwischen W1 und W2... anhand der größe der Winkeldifferenz entscheidest du dann ob angezeigt werden soll "links abbiegen" oder "rechts abbiegen"... eventuell noch unterteilen... "scharf links" oder "halb links" oder so...
- Jörn Weber
- Beiträge: 789
- Registriert: 03.02.2007 - 16:11
- Wohnort: Jena
Re: Tracker (kursabweichung berechnen)
Hallo Gradmaster,
den Pseudo ist wohl mehr Wunsch als Realität.
Was für einen Zweck hat die Software? Bildung? Kommerz? Hobby?
Gruss Joern Weber
den Pseudo ist wohl mehr Wunsch als Realität.
Für die Verfolgung eines Tracks muss der der Fußgänger auf den nächsten Wegpunkt zulaufen. Die Richtung zum nächsten Wegpunkt errechnest Du aus den aktuellen Koordinaten und denen des Zielpunkte. Bei diesen kleinräumigen Abständen kann man die Erdkrümmung vernachlässigen und den satz des Pythagoas verwenden, um eine Richtungsangabe zu erhaltenIch meine damit, wie kann ich aus den gespeicherten Wegpunkten entnehmen das der Fussgänger nach links oder nach rechts abbiegen muss.
Nein, das ist grober Unfug. Das GPS hat eine Systemgenauigkeit von 15 Meter. Die Wegpunkte zeichnet man auf wenn eine bestimmte Mindestentfernung(100 Meter) oder eine bestimmte Mindestzeit (3 Minuten) oder eine bestimmte Kursabweichung (5°) überschritten wird. Die exakten Werte sollte man in Profilen für Fußgänger, Powerworker, Läufer und Radfahrer getrennt hinterlegen.Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
Was für einen Zweck hat die Software? Bildung? Kommerz? Hobby?
Gruss Joern Weber
-
- Beiträge: 4
- Registriert: 26.06.2008 - 02:23
Re: Tracker (kursabweichung berechnen)
Hallo
danke erstmal für die Tips.
Ich bin nur später durch googlen auf euer Forum gestossen.
Du kannst aber sicher verstehen das ich auch gerne so schnell wie möglich zu einem Ziel kommen möchte. Da schadet es nicht sich mehrere Informationsquellen zu Nutze zu machen.
Ich werde mich jetzt erstmal durch eure Posting durcharbeiten und schauen zu welchem Ergebnis ich komme.
@Roland
Habe als junger Bursche in der Schule mein Praktikum als Vermessungstechnicker gemacht. Die Ausseneinsätze waren sehr witzig gewesen
Gruss Tareq alias Grandmaster
danke erstmal für die Tips.
Nein,nein um Gottes Willen.Roland hat geschrieben:Hallo tareq,
Übrigens: ist unser Forum für Dich nur 2.Wahl ?
Ich bin nur später durch googlen auf euer Forum gestossen.
Du kannst aber sicher verstehen das ich auch gerne so schnell wie möglich zu einem Ziel kommen möchte. Da schadet es nicht sich mehrere Informationsquellen zu Nutze zu machen.
Es geht um ein Projektarbeit für die Uni ( Ja ich bin Student und muss deswegen meistens morgens nie früh raus ) . Der GpsTracker ist nur ein Teil von dem Ganzen. Leider bin ich vorher noch nie mit Gps in Kontakt getreten und habe dementsprechend hohen Nachholbedarf.Jörn Weber hat geschrieben: Was für einen Zweck hat die Software? Bildung? Kommerz? Hobby?
Ich werde mich jetzt erstmal durch eure Posting durcharbeiten und schauen zu welchem Ergebnis ich komme.
@Roland
Habe als junger Bursche in der Schule mein Praktikum als Vermessungstechnicker gemacht. Die Ausseneinsätze waren sehr witzig gewesen
Gruss Tareq alias Grandmaster
Re: Tracker (kursabweichung berechnen)
Ein Student ??? An welcher Uni bist du denn und was studierst du dort ?
Ich finde das immer hoch interessant in welchen bereichen (allgemin, nicht nur GPS) Teilbereiche der Vermessung auftreten...
Ich finde das immer hoch interessant in welchen bereichen (allgemin, nicht nur GPS) Teilbereiche der Vermessung auftreten...
Re: Tracker (kursabweichung berechnen)
Hallo,
dass ich keine vermessungstechnische Formelsammlung finden konnte hat mich gewurmt.
Hier die von
Daniel Moroder
Man kann auch seine sonstigen Skripte mal anschaun
http://www.moroder.it/daniel/geo.htm
Grüße Roland
dass ich keine vermessungstechnische Formelsammlung finden konnte hat mich gewurmt.
Hier die von
Daniel Moroder
Man kann auch seine sonstigen Skripte mal anschaun
http://www.moroder.it/daniel/geo.htm
Grüße Roland
- Hartmut
- Beiträge: 815
- Registriert: 25.05.2004 - 18:56
- Wohnort: Prachuab Khiri Khan 11°44'37"N 99°47'17"E
- Kontaktdaten:
Re: Tracker (kursabweichung berechnen)
moin,
ich misch mich jetzt auch mal unqualifiziert ein. bin zwar kein vermesser (welch ein wort mit ungeahnten abgründen, gell roland ), habe aber auch was. vergiss bitte nicht eine prüfung auf plausibilität. soll heißen, abrupte und plötzliche schnelle bewegungen z.b. zu eliminieren. ich hab da in bangkok ecken, da tobt die position nur so über das display (abweichungen bis 50m), obwohl ich rumstehe.
bis denn
ich misch mich jetzt auch mal unqualifiziert ein. bin zwar kein vermesser (welch ein wort mit ungeahnten abgründen, gell roland ), habe aber auch was. vergiss bitte nicht eine prüfung auf plausibilität. soll heißen, abrupte und plötzliche schnelle bewegungen z.b. zu eliminieren. ich hab da in bangkok ecken, da tobt die position nur so über das display (abweichungen bis 50m), obwohl ich rumstehe.
bis denn
ich bin zwar verantwortlich, für das was ich sage, aber nicht dafür, wie du es verstehst.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
rechtschreibfehler sind gewollt und deswegen mit voller Absicht erstellt. wer welche findet, darf sie behalten, verschenken oder auch versteigern.
-
- Beiträge: 4
- Registriert: 26.06.2008 - 02:23
Re: Tracker (kursabweichung berechnen)
Hallo TaurusTaurus hat geschrieben:Ein Student ??? An welcher Uni bist du denn und was studierst du dort ?
Ich finde das immer hoch interessant in welchen bereichen (allgemin, nicht nur GPS) Teilbereiche der Vermessung auftreten...
Ich studiere Wirtschaftsinformatik an der Uni Duisbug-Essen. Das Projekt gehört zu meinem Informatikteil den ich ihm Rahmen meines Studiums absolvieren muss. Da ich aber mein Schwerpunkt eher auf die Wirtschaft habe, musste ich mich in letzter Zeit meistens nur mit der (um einiges einfacheren) Finanzmathemaik beschäftigen. Die Finanzmathematik kannst du nicht mit der hohen Mathematik der Vermessungskunde vergleichen.
Deswegen hätte ich da noch eine für dich ganz bestimmt simple Frage:
Wie berechne ich die (absolute) Winkeldifferenz
Gibt es da eine Formel die mir das errechnet, oder muss ich da mit Fallunterscheidungen arbeiten ?
Bspl:
W1=60 und W2=330
--> Dann ist die Differenz 90
Ok, für denn Fall eigentlich kein Problem.
W1 - W2 +360 = 60-330+360 = 90
Habe ich aber dann den umgekehrten Fall
W1=330 und W2=60
W1 - W2 +360 = 330 - 60 +360 = 630
Hierfür könnte ich eine Fallunterscheidung machen, indem ich definiere das immer vom kleinsten der grösste abgezogen werden soll.
Das würde aber trotzdem nicht alle Fälle berücksichtigen da ich zb
W1=180 und W2=250
180 -250 + 360 = 290
Du siehst ich komme da nicht drauf.
Wo ist mein Denkfehler?
Gruss grandmaster
Re: Tracker (kursabweichung berechnen)
Hallo grandmaster,
also ich hänge mich hier rein, obwohl ich sowas nie gemacht habe - und in Vorahnung auf die zu erwartenden Schwierigkeiten nie machen möchte ...
Du machst keine Denkfehler, Du musst systematisch vorgehen. Ich wähle hier das Beispiel "Polygonzug".
Da erhält man den Brechungswinkel B = W2 - W1 +- 180° (minus, wenn Differenz > 180 )
B ergibt sich dann in Bewegungsrichtung "linksliegend"
330 - 60 -180 = 90
60 - 330 + 180 = -90 -> +360 = 270
250 - 180 + 180 = 250
Eigentlich könntest Du damit gleich in eine z.B. achtteiligen Tabelle gehen, die ansagt
"Recht voraus - steuerbord voraus - steuerbord querab - ..."
Du steckst aber noch arg im Anfangsstadium
Grüße Roland
also ich hänge mich hier rein, obwohl ich sowas nie gemacht habe - und in Vorahnung auf die zu erwartenden Schwierigkeiten nie machen möchte ...
Du machst keine Denkfehler, Du musst systematisch vorgehen. Ich wähle hier das Beispiel "Polygonzug".
Da erhält man den Brechungswinkel B = W2 - W1 +- 180° (minus, wenn Differenz > 180 )
B ergibt sich dann in Bewegungsrichtung "linksliegend"
330 - 60 -180 = 90
60 - 330 + 180 = -90 -> +360 = 270
250 - 180 + 180 = 250
Eigentlich könntest Du damit gleich in eine z.B. achtteiligen Tabelle gehen, die ansagt
"Recht voraus - steuerbord voraus - steuerbord querab - ..."
Du steckst aber noch arg im Anfangsstadium
Grüße Roland
-
- Beiträge: 4
- Registriert: 26.06.2008 - 02:23
Re: Tracker (kursabweichung berechnen)
Hallo Roland
in C# code:
public static double WinkelDifferenz(double a, double b)
{
double differenz = b-a;
if (differenz > 180) {
differenz = - (360-diff );
} else if (differenz < -180) {
differenz = 360+differenz;
}
return differenz;
}
damit kriege ich eine neagtive oder eine positive Differenz heraus und kann dann bestimmen ob es nach jetzt links oder nach rechts geht.
Der GpsTracker funktioniert bisher ganz gut, solange man eine Route mit dem Auto aufzeichnet und wieder abfährt. Die Richtungsänderungen werden erkannt und auch frühzeitig angesagt.
Ich muss es jetzt "nur" noch auf Fussgänger optimieren. Dazu muss ich wohl die Routenaufzeichnung ändern.
Ja leider, habe vor drei Wochen mit dem Projekt angefangen, aber ich hänge mich rein
Gruss grandmaster
Genau das habe ich gemacht und bin zum folgenden Ergebnis gekommenRoland hat geschrieben:... du musst systematisch vorgehen....
in C# code:
public static double WinkelDifferenz(double a, double b)
{
double differenz = b-a;
if (differenz > 180) {
differenz = - (360-diff );
} else if (differenz < -180) {
differenz = 360+differenz;
}
return differenz;
}
damit kriege ich eine neagtive oder eine positive Differenz heraus und kann dann bestimmen ob es nach jetzt links oder nach rechts geht.
Der GpsTracker funktioniert bisher ganz gut, solange man eine Route mit dem Auto aufzeichnet und wieder abfährt. Die Richtungsänderungen werden erkannt und auch frühzeitig angesagt.
Ich muss es jetzt "nur" noch auf Fussgänger optimieren. Dazu muss ich wohl die Routenaufzeichnung ändern.
Roland hat geschrieben:
Du steckst aber noch arg im Anfangsstadium
Ja leider, habe vor drei Wochen mit dem Projekt angefangen, aber ich hänge mich rein
Gruss grandmaster
Re: Tracker (kursabweichung berechnen)
Hallo grandmaster,
nein, keine weiteren Vorschläge, nur ein Fundstück aus dem Netz. Es zeigt, dass auch der Deutsche Verein für Vermessungswesen mitmischt
DVW-Vortrag Peters 10 MB.
Mit meinem Schandmaul kann ich mir einen Kommentar nicht verkneifen. Wenn ich das Netzwerk der am Projekt Beteiligten anschaue (Folie 10) drängt sich mir der Gedanke auf, dass eine saubere programmtechnische Lösung -wie von Dir- gar nicht erwartet wird. Die würde ja den Fortbestand des Projektes und der schönen Meetings infrage stellen ...
Ich weiß, ich böse ...
Grüße Roland
nein, keine weiteren Vorschläge, nur ein Fundstück aus dem Netz. Es zeigt, dass auch der Deutsche Verein für Vermessungswesen mitmischt
DVW-Vortrag Peters 10 MB.
Mit meinem Schandmaul kann ich mir einen Kommentar nicht verkneifen. Wenn ich das Netzwerk der am Projekt Beteiligten anschaue (Folie 10) drängt sich mir der Gedanke auf, dass eine saubere programmtechnische Lösung -wie von Dir- gar nicht erwartet wird. Die würde ja den Fortbestand des Projektes und der schönen Meetings infrage stellen ...
Ich weiß, ich böse ...
Grüße Roland
- KoenigDickBauch
- Beiträge: 303
- Registriert: 25.01.2007 - 21:59
Re: Tracker (kursabweichung berechnen)
Hallo Joern,Jörn Weber hat geschrieben:Nein, das ist grober Unfug. Das GPS hat eine Systemgenauigkeit von 15 Meter. Die Wegpunkte zeichnet man auf wenn eine bestimmte Mindestentfernung(100 Meter) oder eine bestimmte Mindestzeit (3 Minuten) oder eine bestimmte Kursabweichung (5°) überschritten wird. Die exakten Werte sollte man in Profilen für Fußgänger, Powerworker, Läufer und Radfahrer getrennt hinterlegen.Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
warum so absolut?
Bei meinen Wanderungen, bei denen ich zum Teil auf dem gleichen Weg zurück ging waren die Tracks meistens übereinander. Der Fehler von Track zu Track war somit kleiner 5m. Wobei, da gebe ich dir recht, ich mich zum Teil neben dem auf der Karte eingezeichneten befunden habe. Aber dies sollte für die Aufgabenstellung uninteressant sein. Hauptsache man läuft auf seinem Track wieder zurück.
Aufzeichnungen im 5m Tackt finde ich passend. Nur müssen die dann intelligent gefiltert werden, zu eine Route überführt werden, das man dann nur bei wirklich großen Richtungsänderung aufgefordert wir zu handeln.
Gruß
Thomas
- KoenigDickBauch
- Beiträge: 303
- Registriert: 25.01.2007 - 21:59
Re: Tracker (kursabweichung berechnen)
Solltest du die Koordinaten schon nach UTM oder GK konvertiert haben, dann wärst du mit dem Skalarprodukt einfacher bedient.grandmaster hat geschrieben:Genau das habe ich gemacht und bin zum folgenden Ergebnis gekommen
in C# code:
public static double WinkelDifferenz(double a, double b)
{
double differenz = b-a;
if (differenz > 180) {
differenz = - (360-diff );
} else if (differenz < -180) {
differenz = 360+differenz;
}
return differenz;
}
damit kriege ich eine neagtive oder eine positive Differenz heraus und kann dann bestimmen ob es nach jetzt links oder nach rechts geht.
Gruß
Thomas