Tracker (kursabweichung berechnen)

Hier passt alles rein, was sonst nirgendwo passt. Dafür wurde extra das schöne deutsche Wort "Off-Topic" erfunden.

Moderator: Roland

Antworten
grandmaster
Beiträge: 4
Registriert: 26.06.2008 - 02:23

Tracker (kursabweichung berechnen)

Beitrag von grandmaster » 26.06.2008 - 02:51

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 :D
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!

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Tracker (kursabweichung berechnen)

Beitrag von Roland » 26.06.2008 - 20:21

Hallo tareq,
Ich bin für jede Hilfe dankbar!
Ok, über welchen Betrag reden wir ? :twisted:

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 :shock: ?


Grüße Roland

Benutzeravatar
Taurus
Beiträge: 259
Registriert: 02.09.2007 - 14:36
Wohnort: Germany

Re: Tracker (kursabweichung berechnen)

Beitrag von Taurus » 26.06.2008 - 20:59

Also Roland... kein Schüler arbeitet Nachts um 02:51 noch an einer Schülerarbeit :mrgreen:

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 :wink: )

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...

Benutzeravatar
Jörn Weber
Beiträge: 789
Registriert: 03.02.2007 - 16:11
Wohnort: Jena

Re: Tracker (kursabweichung berechnen)

Beitrag von Jörn Weber » 26.06.2008 - 21:00

Hallo Gradmaster,

den Pseudo ist wohl mehr Wunsch als Realität.
Ich meine damit, wie kann ich aus den gespeicherten Wegpunkten entnehmen das der Fussgänger nach links oder nach rechts abbiegen muss.
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 erhalten
Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
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.

Was für einen Zweck hat die Software? Bildung? Kommerz? Hobby?

Gruss Joern Weber

grandmaster
Beiträge: 4
Registriert: 26.06.2008 - 02:23

Re: Tracker (kursabweichung berechnen)

Beitrag von grandmaster » 27.06.2008 - 00:16

Hallo
danke erstmal für die Tips.
Roland hat geschrieben:Hallo tareq,
Übrigens: ist unser Forum für Dich nur 2.Wahl :shock: ?
Nein,nein um Gottes Willen.
Ich bin nur später durch googlen auf euer Forum gestossen. :wink:
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. :twisted:
Jörn Weber hat geschrieben: Was für einen Zweck hat die Software? Bildung? Kommerz? Hobby?
Es geht um ein Projektarbeit für die Uni ( Ja ich bin Student und muss deswegen meistens morgens nie früh raus :lol: ) . 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.

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 :mrgreen:

Gruss Tareq alias Grandmaster

Benutzeravatar
Taurus
Beiträge: 259
Registriert: 02.09.2007 - 14:36
Wohnort: Germany

Re: Tracker (kursabweichung berechnen)

Beitrag von Taurus » 27.06.2008 - 07:13

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...

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Tracker (kursabweichung berechnen)

Beitrag von Roland » 27.06.2008 - 18:20

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

Benutzeravatar
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)

Beitrag von Hartmut » 28.06.2008 - 07:02

moin,
ich misch mich jetzt auch mal unqualifiziert ein. bin zwar kein vermesser (welch ein wort mit ungeahnten abgründen, gell roland :shock: :twisted: :twisted: :twisted: ), 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
:mrgreen: :mrgreen: :mrgreen:
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.

grandmaster
Beiträge: 4
Registriert: 26.06.2008 - 02:23

Re: Tracker (kursabweichung berechnen)

Beitrag von grandmaster » 28.06.2008 - 15:54

Taurus 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...
Hallo Taurus
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. :cry: :cry: :cry: :cry:

Wo ist mein Denkfehler?

Gruss grandmaster

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Tracker (kursabweichung berechnen)

Beitrag von Roland » 28.06.2008 - 21:35

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

grandmaster
Beiträge: 4
Registriert: 26.06.2008 - 02:23

Re: Tracker (kursabweichung berechnen)

Beitrag von grandmaster » 28.06.2008 - 22:34

Hallo Roland
Roland hat geschrieben:... du musst systematisch vorgehen....
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.

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, :oops: aber ich hänge mich rein

Gruss grandmaster

Benutzeravatar
Roland
Beiträge: 2055
Registriert: 18.02.2004 - 22:33
Wohnort: Wusterhausen(Dosse)

Re: Tracker (kursabweichung berechnen)

Beitrag von Roland » 30.06.2008 - 21:00

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

Benutzeravatar
KoenigDickBauch
Beiträge: 303
Registriert: 25.01.2007 - 21:59

Re: Tracker (kursabweichung berechnen)

Beitrag von KoenigDickBauch » 01.07.2008 - 10:29

Jörn Weber hat geschrieben:
Ist das eigentlich sinvoll alle 5 meter einen Wegpunkt zu setzten?
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.
Hallo Joern,

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

Benutzeravatar
KoenigDickBauch
Beiträge: 303
Registriert: 25.01.2007 - 21:59

Re: Tracker (kursabweichung berechnen)

Beitrag von KoenigDickBauch » 01.07.2008 - 11:06

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.
Solltest du die Koordinaten schon nach UTM oder GK konvertiert haben, dann wärst du mit dem Skalarprodukt einfacher bedient.

Gruß
Thomas

Antworten