www.mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Laserpointer tracken, Positionsermittlung


Autor: Julian A. (yeahlian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
ich möchte einen Roboter vor einer Wand (ca. 20m) positionieren und ihn 
dann ermitteln lassen, wie weit er von dieser Wand weg steht und in 
welchem Winkel zu dieser.
Da günstige Abstandssensoren (IR, Ultraschall) in diesem Messbereich 
leider nicht zu gebrauchen sind und Lasermeter mit digitalem Ausgang so 
im Preisbereich um die 1000€ liegen, kam ich auf folgende Idee:
Wie wäre es, wenn man mit Laserpointern mehrere Punkte auf die Wand 
projiziert und das Bild mit einer Kamera analysiert. Also die 
Laser-Punkte findet und deren Abstand und Position im Bild ermittelt. 
Daraus ließe sich doch der Abstand und Winkel errechnen.

Nun zu meinen Fragen:
Für wie wahrscheinlich haltet ihr es, aus 20m entfernung einen 
Laser-Punkt an der Wand zuverlässig zu finden*?
Wie kompliziert und rechenaufwendig ist das ganze?


*Ich habe das für 20 Meter mit einer billigen Webcam mal durchgerechnet:
Bei einer Creative Live! Cam Optia AF (1600x1200) entspricht 1px so 
8,7mm.
Weiß nicht, in wie weit man da mit Subpixeling noch was rausholen 
kann...
Außerdem bräuchte man für die Umsetzung mit einem DSP natürlich eine 
andere Kamera, habe aber grade keine mit einer vergleichbaren Auflösung 
gefunden.

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sehr hilfreich bei sowas ist sicher ein Wellenlängenfilter, sodass du 
nur den interessanten Teil des Bildes bekommst und zwar nur die Punkte.

Dann solltest du die Punkte relativ einfach finden können.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Du könntest die Kamera auch durch einen Strahlteilerwürfel schauen 
lassen, der 50% Licht zur Seite spiegelt. Dann einen zweiten Spiegel 
30cm seitlich, der den Lichtweg wieder nach vorn spiegelt, wei ein 
Periskop. Dann sieht die Kamera alles doppelt um 30cm gegeneinander 
verschoben, auch den Laserpunkt, denn ein Punkt reicht jetzt aus. Aus 
dem Abstand der zwei Punktbilder ('Parallaxe')kann man die Entfernung 
errechnen.

Gruß,
Martin

Autor: Julian A. (yeahlian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@ Hauke:
Auch bei direkter Sonneneinstrahlung auf die Wand?
Hängt wohl stark vom Laser ab, nehme ich an. Irgendwelche Tipps?

@ Martin:
Da ist mir eine andere Lösung lieber:
Da der "Roboter" ohnehin einen Arm hat, kann er den Laser auch bewegen 
nachdem je ein Bild aufgenommen wurde.

Autor: Martin (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Julian,

das Bewegen des Arms mag funktionieren, muss aber sehr genau erfolgen. 
Er muss auf 20m ca. 8mm (1 Pixel) genau treffen, damit das Ergebnis 
nicht schlechter als die kameraauflösung wird.
Bei einem Industrieroboter ist die Genauigkeit evtl. möglich, aber bei 
einem Selbstbau, der evtl. fahrbar ist (kippelig), ist es schwierig. 
Amateurteleskope auf teuren Montierungen treffen in der Regel weit 
weniger genau, wenn sie ein Objekt am Himmel anfahren sollen. Dort 
gelten 30 Bogenminuten Fehler (ca. 20cm auf 20m, ein 
Vollmonddurchmesser) schon als brauchbar.

Außerdem trifft der Strahl nach der Armbewegung nicht die selbe Stelle 
auf der Wand. dann gibt es zusätzliche Unbekannte in der Rechnung, es 
könnte ja eine Unebenheit dort sein oder die Wand steht schief zum 
Roboter.

Und die Bewegung des Arms braucht Zeit, auch zum Ausschwingen. Bei der 
Spiegelmethode ist das auswertbare Bild sofort da. Durch seitliches 
Verstellen des Laser kann sogar die Wand 'abgefahren' werden.

Gruß,
Martin

Autor: Julian A. (yeahlian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das wäre eine tolle Sache.
Hast du sowas schonmal gebaut? Wie genau ist die Methode?

Autor: Aoxo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hi Leute,

sucht mal nach PMD-Sensoren. Die sollten so um 250 € kosten.

ciao

Autor: Julian A. (yeahlian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Aoxo wrote:
> sucht mal nach PMD-Sensoren. Die sollten so um 250 € kosten.
So ein Sensor wäre natürlich der absolute Hammer!
Habe die mal angeschrieben, was Messbereich und Preis angeht.
Die Laserpointer-Variante hätte halt den Vorteil, sehr billig zu sein, 
da eine Kamera sowieso vorgesehen ist.

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Aoxo:
Kannst Du eine Quelle für die 250€ angeben? PMDTec(.de) schreibt in 
ihrem Newsletter die 3k-S würde nur noch 5000€ kosten.

Autor: Aoxo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Aoxo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
aaah,

hab es wiedergefunden :-)

http://www.ifm.com/obj/anzeige_pmd_10-05.pdf

Autor: Frank Esselbach (Firma: Q3) (qualidat)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

wenn du mit der Kamera jeweils zwei Bilder nacheinander machst, und 
dabei bei einem den Laser an- und beim anderen ausschaltest, hast du im 
Differenzbild den Laser ziemlich sauber für sich alleine.

Zur Messung selber könnte man auch zwei parallel ausgerichtete 
Laserpointer benutzen und aus dem Abstand der beiden Punkte im 
Kamerabild auf die Entfernung schließen.

Eine weitere Möglichkeit wäre, einen der Laser seitlich schwenkbar zu 
machen und mit der Kamera den Moment des "Verschmelzens" der beiden 
Punkte zu erkennen. Das hat den Vorteil, bei Bedarf (große ENtfernung) 
ein Zoom einsetzen zu können, ohne das System neu kalibrieren zu müssen 
(weil die Kalibrierung in der Basisbreite steckt).

Frank

Autor: Markus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Aoxo:
Danke.
Das ist aber nur ein einzelnes Pixel, den müsste man dann ja mechanisch 
durch die Gegend schwenken. Das tolle am PMD ist doch eigentlich, dass 
man 1000 oder mehr Entfernungswerte auf einmal bekommt, ohne Mechanik.

Autor: Aoxo (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmmm,

du suchst sowas wie O3D... . Da hab ich noch kein Preis gefunden. Der 
soll ja bald kommen. Mal schaun ob ich da noch Info´s (PREIS) bekomme.

ciao

Autor: Julian A. (yeahlian)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank
Das mit dem Differenzbild ist eine gute Idee!

Was das PMD angeht:
Ich habe PMDTec eine E-Mail geschrieben in der ich erkläre, was ich 
vorhabe. Sie meinten, dass für diese Applikation ein Prototyp in Frage 
kommt, der zur Zeit 15.000€ kostet. Das ist also nicht so ganz die 
Preiskategorie, die ich mir vorgestellt hatte.

Also ich werde mir diese Woche mal einen billigen Laserpointer besorgen 
und mal ein bisschen mit meiner Webcam am PC rumprobieren. Mal sehen, 
wie weit man so schon kommt.

Könnt ihr einschätzen, was für ein Controller ich später für diese 
Aufgabe einsetzen müsste, was die Rechenleistung angeht? ARM? DSP?

Vielen Dank schonmal für die vielen Antworten bisher!

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich stecke momentan quasi in genau dem selben Projekt. Da ich die Kamera 
selbst bauen werde treten dabei aber erhebliche Probleme auf: aus der 
Differenz zweier Bilder soll die Bewegung eines Punktes berechnet werden 
und an einen PDIUSBD12 gesendet. Diese macht eine USBKommunikation so 
das der Mauszeiger dem Leuchtpunkt auf der Leinwand folgen soll.
Problem dabei ist das mein bisheriger Lösungsansatz zu softwarelastig 
für den Prozessor (muss ein LPC900er sein!) ist. Wie kann ich ein 
bw-Bild mit 512x582 Pixel aufnehmen, wobei jede Bildzeile 64µs andauert, 
wenn der Prozessor mit max. 12Mhz läuft und damit nur circa 3 
Bildaufnahmen/Zeile erlaubt?
Es muss einen einfacheren Weg geben Bilder miteinander zu vergleichen!

Autor: Frank Büttner (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Esselbach:
Wie soll das funktionieren mit zwei parallel ausgerichteten 
Laserpointern den Abstand zur Wand bestimmen??? Die Laserpunkte werden 
doch immer den selben Abstand haben...

Wäre es nicht besser, die Laserpointer in einem definerten Winkel 
zueiander anzuordnen. Dann kann man über den Strahlensatz mit dem 
Abstand der Laserpunkte im Bild den Abstand zur Wand berechnen...

Gruß
F.B.

Autor: FL (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Frank Büttner:
Natürlich haben die Punkte immer den selben Abstand zueinander auf der 
Wand, aber je weiter Du von der Wand weg bist, desto näher werden die 
Punkte auf dem von der Kamera aufgenommenen Bild zusammenrücken.

Autor: Klaus R. (klaus2)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Und wie wäre es, einfach 2 parallele Laser(!)abstandssensoren zu 
benutzen? Über Genauigkeit und Preise weiß ich auch nichts genaues, aber 
die Berechnung kann dann fast ein Tiny45 :)

Oder kann man bei der Laufzeit eines Licht-Bursts noch was 
selberbasteln? Vermutlich nicht...

Klaus.

Autor: Gast12 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du einen Roboter bauen willst, musst du die mechanische 
Beanspruchung mit bedenken. Die Brennweite kann sich durch 
Krafteinwirkung von außen ändern. Du kannst auch zwei Kameras nehmen, 
die sich aus Korrespondenzpunkten immer wieder selbst nachkalibrieren.
Bei Laserpointer kann es passieren, dass es nicht die komplette Szene 
vor dir erfasst. Soll heißen, wenn eine Ecke oder ein Hindernis kommt, 
könnte der Laserpointer dran vorbei strahlen und dein Robi knattert 
gegen die Wand.

Autor: Gast12 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Kannst aber den Laserpointer auf einen Schrittmotor basteln. Den 
Schrittmotor bestromst du so, dass der Winkel zur optischen Achse immer 
bekannt ist. Ein schöne Diplomarbeit. Ich hab meine über die Variante 
mit den zwei Kameras geschrieben.

Grüße!

Autor: Heiko P. (wuseltum)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Ich hätte da noch einen anderen Ansatz vorzuschlagen:
Wenn Du den Laserstrahl über einen rotierenden Spiegel ablenkst (sodass 
er an der Wand einen waagerechten Streifen bildet) und an der Wand drei 
Reflektorpunkte anbringst, wird der Laser genau von diesen drei Punkten 
zurückgeworfen, fällt auf Deinen Spiegel und wird wieder in Richtung 
Laser umgelenkt. Dann musst Du nur parallel zur Laserachse einen 
Fototransistor anbringen und der detektiert die Punkte - ganz ohne 
Kamera. Aus den Winkeln, die zwischen den Punkten liegen, kannst Du dann 
den Abstand zur Wand berechnen; das wurde ja schon besprochen.
Könnte dann so ausschauen wie im Anhang. Da sind nur billige Materialien 
verwendet (insbesondere als Reflektor nur ein Stück aus ner Warnweste), 
um den Preis unten zu halten; daher beträgt die Reichweite nur etwa 2 
Meter - das war für mich ausreichend. Aber man kann mit dem Prinzip über 
20 Meter schaffen, wie ich aus anderer Quelle weiß.
Viele Grüße!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.