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.
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.
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
@ 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.
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
Das wäre eine tolle Sache. Hast du sowas schonmal gebaut? Wie genau ist die Methode?
hi Leute, sucht mal nach PMD-Sensoren. Die sollten so um 250 € kosten. ciao
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.
@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.
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
@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.
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
@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!
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!
@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.
@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.
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.
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.
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!
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!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.