Forum: Mikrocontroller und Digitale Elektronik Sensor um relative Position zweier Objekte zu ermitteln


von Hans Müller (Gast)


Lesenswert?

Hallo ihr :)

Ich habe eine etwas spezielle Frage:
Mein Ziel ist es, zwei Roboter so auszustatten, dass einer dem anderen 
folgen kann (dabei ist einer immer der Verfolger und einer immer der 
"Voranläufer"). Später soll der "Voranläufer" auch durch einen Menschen 
ersetzt werden.

Ich brauche also eine Möglichkeit, die relative Position von einem 
Roboter zum anderen herauszufinden (das System kann ruhig auf beide 
Roboter verteilt werden, es kann also z.B. ein Empfänger, Tag oder 
ähnliches am Voranläufer angebracht sein. Die Haupteinheit sollte aber 
auf dem Verfolger installiert werden können.

Die Reichweite soll bis zu 2 Meter betragen können, eine Genauigkeit von 
10 - 30 cm sollte reichen. Das System sollte überall anwendbar sein (es 
dürfen keine fixen Sender irgendwo installiert werden).

Ich habe mir schon verschiedene Verfahren angeschaut und viel im Forum 
hier gelesen, hier meine bisherigen Ergebnisse:

Für mich am sinnvollsten erscheint es, zwei Abstandsmessungen 
vorzunehmen und durch Triangulation die Position zu berechnen.

(1) GPS/DGPS: Ersteres ist zu ungenau, das zweite ebenfalls (bzw. bei 
angemessener Genauigkeit weit außerhalb des Budgets).

(2) IR/Ultraschall: Schwer umzusetzen. Genauigkeit reicht, aber man 
bräuchte eine sehr umfangreiche Einheit auf dem voranlaufenden Roboter, 
was wiederum nicht geht.

(3) RFID: Ebenfalls teuer, außerdem habe ich das Verfahren zur 
Abstandsmessung nicht ganz verstanden.

(4) Mechanische Abstandsmessung: Scheidet aus praktischen Gründen aus.

(5) Rotierende Abstandsmessung: Ein optischer Abstandsmesser dreht sich 
z.B. 10 Mal in der Sekunde um sich selbst und zeichnet bei jeder 
Umdrehung ausreichend viele Abstände auf. Zuerst wird dem Verfolger 
gezeigt, was er verfolgen soll, und aus dem Abstandsbild wird dann nach 
jeder Umdrehung die neue relative Position ermittelt. Eher umständlich 
und nicht leicht umzusetzen, aber theoretisch machbar.

Vielleicht kennt ihr noch andere Verfahren / Möglichkeiten, die schon 
genannten Verfahren besser umzusetzen? Würde mich über alle Anregungen 
freuen.

von Horst (Gast)


Lesenswert?

RTK GPS mit ublox m8t sollte für einstellige centimeter genauigkeit 
reichen.
Ansonsten hatte hier im forum jemand schonmal die decawave dw1000 
vorgestellt, die vielleicht auch eine interessante möglichkeit wären 
(aber base stations wären wohl nötig).

von Noch einer (Gast)


Lesenswert?

> IR ... aber man bräuchte eine sehr umfangreiche Einheit auf dem
> voranlaufenden Roboter

Wieso kannst du da keine Retroreflektoren nehmen. Wie einen 
Radarreflektor oder so eine Art Warnweste, die IR reflektiert?

von Rolf M. (rmagnus)


Lesenswert?

Vielleicht Nutzung der Hardware aus einem Wii-Controller?
Diese "Sensorbar" in klein nachbauen (besteht nur aus ein paar IR-LEDs) 
und am Voranläufer befestigen. Im Verfolger dann die Elektronik aus dem 
Controller. Wobei ich nicht weiß, ob der auch den Abstand kennt oder nur 
Ausrichtung und Position in Quer- und Hochrichtung.

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Wie wäre es optisch?

Am entfernten Roboter wird ein eindeutiges Muster aus mehreren 
Referenzpunkten angebracht, das wird mit einer Kamera erfasst und aus 
dem Abstand der Referenzpunkte untereinander kann die Distanz berechnet 
werden.

Um Achsenprobleme (nichtrechtwinklige Betrachtung) auszuschließen, 
könnte das Referenzpunktmuster aus in gleichmäßigem Abstand angebrachten 
Markierungen auf einem ringförmigen Träger bestehen. Der Ring umschließt 
den Roboter und ist in Kamerahöhe angebracht.

Somit ist, egal aus welcher Richtung auf den Roboter geblickt wird, 
immer ein Muster wie dieses zu sehen:
1
    # # #  #   #    #     #    #   #  # # #

Der größte Abstand zweier nebeneinanderliegenden Markierungen 
kennzeichnet die Stelle, die dem messenden Roboter am nächsten zugewandt 
ist.

Mit etwas Trigonometrie ist daraus der Abstand zum messenden Roboter 
bestimmt.


Um sicherzustellen, daß auch wirklich die richtigen Markierungen erfasst 
werden, können diese --ausreichende Auflösung des Kamerasystems 
vorausgesetzt-- z.B. um vertikal angeordnete Barcodes mit fortlaufender 
Numerierung ergänzt werden.

Damit wäre auch geklärt, aus welchem Winkel auf den Roboter geblickt 
wird.

: Bearbeitet durch User
von Hans Müller (Gast)


Lesenswert?

Erstmal vielen Dank für die schnellen Antworten, auch noch in der Nacht 
;)

> Wieso kannst du da keine Retroreflektoren nehmen. Wie einen
> Radarreflektor oder so eine Art Warnweste, die IR reflektiert?

Die einzige Möglichkeit wäre ja, am Verfolger zwei IR-Emitter und 
Sensoren anzubringen, die zum gleichen Punkt am Voranläufer den Abstand 
messen, um dann nicht nur den Abstand, sondern auch die Richtung 
ermitteln zu können.
Da sich der Voranläufer aber unvorhergesehen bewegen kann messen die 
IR-Elemente dann nur nutzlose Werte, weil ihnen der Punkt ja abhanden 
gekommen ist.
Ich müsste ja wenn dann in der Lage sein, die IR-Emitter auf einen immer 
gleichen Punkt auszurichten, um die Position zu erhalten. Dann hätte ich 
aber ja schon eine Positionsbestimmung und bräuchte die IR-Elemente 
nicht mehr.

Oder habe ich einen Denkfehler?


> Vielleicht Nutzung der Hardware aus einem Wii-Controller?

Ich fürchte, die arbeiten nur mit Beschleunigungssensoren und 
wahrscheinlich noch einem Gyroskop, und übermitteln die Daten dann an 
die Konsole.. Kann mir kaum vorstellen, dass die Bewegungen relativ zur 
Konsole gemessen werden...

> Wie wäre es optisch? [...]

Für kurze Zeit habe ich daran auch gedacht, habe es aber direkt als zu 
aufwändig abgetan. Die Idee mit Markierungen (evtl. Barcodes) ist zwar 
machbar, mit der Anwendung in der Zukunft aber eigentlich nicht zu 
vereinbaren.
Ich bin bei etwas Recherche auf OpenCV gestoßen, das wohl auch andere 
Muster erkennen kann (wenn man es trainiert vielleicht auch Roboter / 
Menschen?). Damit könnte man dann (wenn es funktioniert) auch optisch so 
eine "Ortung" sehr gut durchführen.
Hat damit jemand Erfahrung, oder kennt vielleicht noch andere ähnliche 
open source Projekte?

von STK500-Besitzer (Gast)


Lesenswert?

Hans Müller schrieb:
> Ich fürchte, die arbeiten nur mit Beschleunigungssensoren und
> wahrscheinlich noch einem Gyroskop, und übermitteln die Daten dann an
> die Konsole.. Kann mir kaum vorstellen, dass die Bewegungen relativ zur
> Konsole gemessen werden...

Nö, tun sie nicht.
In der WiiMote steckt eine Kamera, die die Position der IR-LEDs im 
WiiBar (?) erkennt, auswertet und so dann die Zeiger-Position auf dem 
Fernseher steuert.
Dazu gibt es schon diverse Projekte im Internet zu finden.

Deine Aufgabenstellung hatten mal eine Projektgruppe an unserer FH.
Die konnten auf einen SICK-Sensor zurückgreifen.
Der wie deine Lösung (5) funktioniert.
Hans Müller schrieb:
> (5) Rotierende Abstandsmessung: Ein optischer Abstandsmesser dreht sich
> z.B. 10 Mal in der Sekunde um sich selbst und zeichnet bei jeder
> Umdrehung ausreichend viele Abstände auf. Zuerst wird dem Verfolger
> gezeigt, was er verfolgen soll, und aus dem Abstandsbild wird dann nach
> jeder Umdrehung die neue relative Position ermittelt. Eher umständlich
> und nicht leicht umzusetzen, aber theoretisch machbar.

Allerdings arbeitet der Sensor nur in einem Kreissegment.

von Rolf M. (rmagnus)


Lesenswert?

Hans Müller schrieb:
>> Vielleicht Nutzung der Hardware aus einem Wii-Controller?
>
> Ich fürchte, die arbeiten nur mit Beschleunigungssensoren und
> wahrscheinlich noch einem Gyroskop, und übermitteln die Daten dann an
> die Konsole.. Kann mir kaum vorstellen, dass die Bewegungen relativ zur
> Konsole gemessen werden...

Beides. Der Wii-Controller (Wiimote) enthält eine kleine IR-Kamera, die 
die IR-LEDs in der "Sensorbar" (ein etwas irreführender Name, da dort 
kein Sensor enthalten ist) erkennt.
Hier sieht mam z.B., wie man die Wiimote für 3D-Headtracking benutzen 
kann: https://www.youtube.com/watch?v=Jd3-eiid-Uw

Rufus Τ. F. schrieb:
> Wie wäre es optisch?
>
> Am entfernten Roboter wird ein eindeutiges Muster aus mehreren
> Referenzpunkten angebracht, das wird mit einer Kamera erfasst und aus
> dem Abstand der Referenzpunkte untereinander kann die Distanz berechnet
> werden.

So funktioniert im Prinzip die Wiimote. Billiger als da dürfte man sowas 
nicht bekommen.

: Bearbeitet durch User
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.