Forum: PC-Programmierung 2D Postionsbestimmung


von Borislav B. (boris_b)


Lesenswert?

Hallo,
mal angenommen ich bewege mich in einer Ebene (2D) mit drei Barken um 
mich herum. Ich messe den Abstand zu den drei Barken (d1, d2 und d3), 
und halte dies als meinen Nullpunkt fest (0|0).
Nun bewege ich mich ein bisschen, und messe erneut den Abstand zu den 
drei Barken (d1', d2', d3'). An welcher Position (X,Y) befinde ich mich 
nun?

Das ist ja eigentlich noch recht leicht zu lösen (Kreisgleichung?). Aber 
wie sieht die Sache aus, wenn die Abstandsmessung zu meinen Barken 
ungenau ist? D.h. die Kreise schneiden sich gar nicht in einem Punkt?

In dem Fall müsste man so etwas wie den wahrscheinlichsten 
Aufenthaltsort (X|Y) bestimmen können, oder?
Da gibt es doch sicher einen schönen Algorithmus für (ggf. auch in 3D)?

von nicht"Gast" (Gast)


Lesenswert?

Hallo,


drei Barken sind ein wenig knapp. Mindestens 4 dürfen es schon sein. Am 
liebsten so viele vie geht.

3 Reichen halt nur in der Therorie.


Ansonsten solltest du dich bei der Sache in das Thema Kalman Filter 
einlesen. Das Ding ist echt super für so was.


Grüße,

von Funkfeuer (Gast)


Lesenswert?

Also ich würde bezweifeln, dass überhaupt mit Barken [1] geht. Auf der 
anderen Seite: man lernt nie aus.

http://de.wikipedia.org/wiki/Barke

von Karl H. (kbuchegg)


Angehängte Dateien:

Lesenswert?

Du bist irgendwo im rot markierten Bereich.

Und da sieht man jetzt auch schon, was alles passieren kann.
Die Kreise 1 und 3 berühren sich nicht mal, haben also keinen 
Schnittpunkt.

Das ist eine Situation, die ich so bereinigen würde, in dem ich annehme, 
das aus irgendeinem Grund diese beiden Messungen den gleichen Fehler 
habe. D.h. ich vergrößere die beiden Kreise proportional, bis sie sich 
berühren.

Für die Kreise 1 und 2, bzw. 2 und 3 gilt das nicht.
Zwischen den beiden Kreisen gibt es jeweils 2 Schnittpunkte.
Arbeitsansatz:
was passiert, wenn man die beiden Schnittpunkte mit einer Geraden 
verbindet und dann jeweils alle diese Geraden wieder zum Schnitt bringt.

Die Idee dahinter ist ja, dass alle Punkte auf einer dieser beiden 
Geraden denselben proportionalen Abstand zu den beiden 
Kreismittelpunkten haben. D.h alle Punkte auf dieser Geraden spiegeln 
das gemessene Verhältnis der Distanzen wieder.

Diese 3 Geraden treffen sich im Zielgebiet in 3 nicht notwendigerweise 
identischen Punkten. In jedem dieser Punkte liegt das korrekte 
Verhältnis der gemessenen Distanzen vor, die allerdings davon abhängen 
welche der beiden Distanzen genommen wurde. Der Einfachheit halber nehme 
ich dann einfach den Durchschnitt dieser 3 Punkte.



Ich weiß gar nicht mehr, wie das damals funktioniert hat. Wir hatten 
einen 3D Scanner auf Ultraschallbasis. 3 Mikrofone zeichneten die 
Laufzeiten aus und dann wurde der Schnittpunkt 3-er Kugel bestimmt. Aber 
ich kann mich nicht mehr erinnern, ob da irgendwelche Fehlerrechnungen 
nötig waren, oder ob die Genauigkeit auch so reichte.

von J. S. (engineer) Benutzerseite


Lesenswert?

Du solltest mehr Mikrofone nehmen und ein überbestimmtes 
Gleichungssystem erzeugen und die Lösung mit einer Optimierung / einem 
Fit suchen.

Wichtig sind omnidiektionale Mikrofone und die Wahl einer nicht zu hohen 
Frequenz, weil auch Kugelmikrofone eine Richtcharakteristik haben.

Ich habe mal Experimente mit einer sogenannten DECCA-Anordnung gemacht, 
wie sie bei Tonaufnahmen Verwendung findet.

http://www.96khz.org/oldpages/soundsourcelocalisation.htm

Ansonsten ist Wikipedia eine gute Anlaufstelle.

von Thomas (Gast)


Lesenswert?

Sind http://www.informatik.uni-kiel.de/~railway/Downloads/hoehrmann1.pdf 
+ Literaturverweise schon bekannt?

[Mod: Link korrigiert (Fehlerhafte LRM entfernt)]

: Bearbeitet durch Moderator
von Dr. Rüdiger Knörig (sleipnir) (Gast)


Lesenswert?

Wenn man den mittleren quadratischen Fehler als Optimierungsziel nimmt, 
muß doch nur das Minimierungsproblem
i.A. von
gelöst werden (b - Position der Barken, d - gemessene Abstände).

Dies führt bei N Barken zu einem Gleichungssystem mit N Gleichungen.

von Borislav B. (boris_b)


Lesenswert?

Dr. Rüdiger Knörig (sleipnir) schrieb:
> gelöst werden (b - Position der Barken, d - gemessene Abstände).

Die Position der Barken ist aber nicht bekannt. So einfach ist es dann 
doch nicht ;-)

von Yalu X. (yalu) (Moderator)


Lesenswert?

Boris P. schrieb:
> und halte dies als meinen Nullpunkt fest (0|0).

Ein Koordinatensystem ist nicht nur durch den Ursprung, sondern auch die
Orientierung (also bspw. die Richtung der x-Achse) bestimmt. Wie
definierst du diese?

Boris P. schrieb:
> Die Position der Barken ist aber nicht bekannt. So einfach ist es dann
> doch nicht ;-)

Nein, wirklich nicht. Mit Abstandsmessungen von nur zwei Positionen aus
(wie in deinem Eingangspost beschrieben) geht das nämlich überhaupt
nicht.

Erst wenn du die Messungen von vielen Positionen hast, gibt es eine
gewisse Chance, das mit einem SLAM-Verfahren zu lösen:

  http://de.wikipedia.org/wiki/Simultaneous_Localization_and_Mapping

Viel Spaß damit :)

PS: Noch schwieriger wird es allerdings, wenn die "Barken" gar nicht
stationär sind, sondern auf dem Wasser hin- und hertreiben ;-)

: Bearbeitet durch Moderator
von ich (Gast)


Lesenswert?

Yalu X. schrieb:
> PS: Noch schwieriger wird es allerdings, wenn die "Barken" gar nicht
> stationär sind, sondern auf dem Wasser hin- und hertreiben ;-)

Das ist doch eigentlich die Aufgabe einer Barke, oder?
Es sei denn, sie liegt zur Wartung im Trockendock.
:-)


Ich frag mich schon die ganze Zeit, ob hier einer mit "Barke" angefangen 
hat und alle anderen dem Herdentrieb gefolgt sind? Müßte es nicht "Bake" 
heißen? Ich laß mich aber auch gerne belehren, wenn es in diesem 
Sinnzusammenhang wirklich eine "Barke" geben sollte.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Da Boris auf diesen wohlgemeinten Hinweis

Funkfeuer schrieb:
> Also ich würde bezweifeln, dass überhaupt mit Barken [1] geht. Auf der
> anderen Seite: man lernt nie aus.
>
> http://de.wikipedia.org/wiki/Barke

nicht reagiert hat, sondern weiterhin von "Barken" schreibt, ist wohl
davon auszugehen, dass er tatsächlich die Boote meint ;-)

von Doc Brown (Gast)


Lesenswert?

Boris P. schrieb:
> Ich messe den Abstand zu den drei Barken (d1, d2 und d3),

kannst Du auch den Winkel messen?

von ich (Gast)


Lesenswert?

Yalu X. schrieb:
> davon auszugehen, dass er tatsächlich die Boote meint ;-)

Da muß dann aber die Frage erlaubt sein, ob das ganze auch auf Yachten 
und Schlauchboote zutrifft. :-)))

von hp-freund (Gast)


Lesenswert?

Boris P. schrieb:
> Nun bewege ich mich ein bisschen, und messe erneut den Abstand zu den
> drei Barken (d1', d2', d3'). An welcher Position (X,Y) befinde ich mich
> nun?

Bevor das geht muust Du erst einmal eine Basis schaffen.
Also eine bekannte Strecke - die günstig innerhalb der 3 Ba(r)ken liegt 
- absetzen, wieder zu d1-d3 messen und diese als bekannte 
Koordinatenachse festlegen.
Dann gibts auch Koordinaten für den Anfangs- und Endpunkt und sogar für 
d1 bis d3, solange diese nicht wegschwimmen ;-)

von ich (Gast)


Lesenswert?

hp-freund schrieb:
> innerhalb der 3 Ba(r)ken

So ganz allmählich kommt Bewegung rein :-))

von Mike (Gast)


Lesenswert?

Yalu X. schrieb:
> Nein, wirklich nicht. Mit Abstandsmessungen von nur zwei Positionen aus
> (wie in deinem Eingangspost beschrieben) geht das nämlich überhaupt
> nicht.

Was geht dabei überhaupt nicht?

Mit dem Abstand zwischen Barke und Bake hat man den Abstand zu einer 
Bake, d.h. die Messung definiert einen Kreis um die Bake, die eine 
Standlinie für die Positionsbestimmung darstellt. Mit der zweiten 
Abstandsmessung bekommt man einen zweiten Kreis um die zweite Bake. 
Diese beiden Kreise dürften i.A. zwei Schnittpunkte habe. Oft läßt sich 
durch geeignete Wahl der Bakenstandorte durch Zusatzeinschränkungen 
("der Schnittpunkt ist außerhalb des überwachten Raumes") diese 
Uneindeutigkeit vermeiden und die Position der Barke aus den beiden 
Abstandsmessungen bestimmen.
Weitere Baken liefern Redundanz für Fehlerabschätzungen bzw. liefern 
durch günstigere Schnittwinkel der Standlinien eine genauere Position.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Mike schrieb:
> Was geht dabei überhaupt nicht?
>
> Mit dem Abstand zwischen Barke und Bake hat man den Abstand zu einer
> Bake, d.h. die Messung definiert einen Kreis um die Bake, die eine
> Standlinie für die Positionsbestimmung darstellt. Mit der zweiten
> Abstandsmessung bekommt man einen zweiten Kreis um die zweite Bake.

Das klappt perfekt, wenn die Bakenpositionen, also die Kreismittelpunkte
bekannt sind. Aber:

Boris P. schrieb:
> Die Position der Barken ist aber nicht bekannt.

Wobei er mit den "Barken" offensichtlich die Baken meint.

von Johann L. (gjlayde) Benutzerseite


Lesenswert?

Ich würd sagen daß das Problem so nicht lösbar ist, d.h. wenn nur die 
Abstände zu den Baken gegeben sind, aber weder die Winkel zwischen den 
einzelnen Richtungen, noch die relativen Positionen der Baken 
zueinander.

Anders sieht es dann aus, wenn z.B. bekannt ist, daß die Baken an den 
Ecken eines gleichsitigen Dreieck von bekannter Kantenlänge stehen.

Aber auch dann gibt es Fälle, wo das Problem unterbestimmt ist, z.B. 
wenn man sich auf einem Seitenschwerpunkt befindet.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.