Kalibrieren Sie einen 2D-Scanner, der auf einer Drehachse montiert ist


9

Ein 2D-Laserscanner ist auf einer Drehachse montiert. Ich möchte die Transformationsmatrix von der Mitte der Achse zur Mitte des Scanners bestimmen, indem ich nur die Eingabe vom Scanner und den Drehwinkel verwende.

Geben Sie hier die Bildbeschreibung ein

Es wird angenommen, dass der 2D-Scanner selbst kalibriert ist. Er misst genau die Position eines Objekts innerhalb der Ebene des Lasers in Bezug auf den Scannerursprung.

Die Drehachse ist ebenfalls kalibriert und misst den Winkel ihrer eigenen Bewegung genau.

Der Scanner ist nahe am Rotationszentrum ausgerichtet und montiert, aber der genaue Versatz ist unbekannt und kann mit der Zeit driften.

Angenommen, es ist unpraktisch, die Position und Ausrichtung des Scanners direkt zu messen. Ich suche nach einer Möglichkeit, die genauen Werte für die 6 Grad Versatz zu bestimmen, die der Scanner in Bezug auf die Achse haben kann, die ausschließlich anhand der 2D-Informationen vom Scanner und des Drehwinkels von der Achse bestimmt werden.

Geben Sie hier die Bildbeschreibung ein

Ich interessiere mich hauptsächlich für die hier abgebildeten 4 Offsets, da die beiden anderen keine Rolle bei der Erzeugung einer konsistenten 3D-Punktwolke aus den Eingabedaten spielen.

Durch Scannen eines bekannten Kalibrierungsobjekts sollte es möglich sein, diese Offsets zu bestimmen. Was sind die mathematischen Formeln dafür?

Welche Art von Kalibrierungsinformationen sind mindestens erforderlich? Ist es zum Beispiel möglich, alle Parameter einfach durch Scannen einer ebenen Fläche zu bestimmen, ohne etwas über die Fläche zu wissen, außer dass sie flach ist?

(Die Transformationsmatrix von der Rotationsachse zur Welt ist ebenfalls unbekannt, aber diese ist trivial zu bestimmen, sobald die Transformation von der Achse zur Kamera bekannt ist.)


Beispiel

Geben Sie hier die Bildbeschreibung ein

Links befindet sich die Kamera genau auf der Drehachse. Die Kamera scannt ein planares Objekt mit den Referenzpunkten AB und C. Basierend auf den Laserentfernungsmessungen und dem Winkel der Achse kann dieses planare Objekt rekonstruiert werden.

Rechts hat die Kamera einen unbekannten Versatz zur Achse. Es scannt das gleiche Objekt. Wenn die Punktwolke ohne Kenntnis dieses Versatzes konstruiert wird, wird die planare Oberfläche einer gekrümmten Oberfläche zugeordnet.

Kann ich den Versatz anhand der Oberflächenkrümmung berechnen?

Wenn ich die realen Entfernungen und Winkel zwischen A, B und C kenne, wie kann ich daraus die Kamera-Offsets berechnen? Was wäre die Mindestanzahl an Referenzpunkten, die ich für alle 4 Offsets benötige?

Antworten:


1

Wenn Sie es sich leisten können, einen kleinen Teil Ihres Sichtfelds zu verdecken, sollten Sie in Betracht ziehen, irgendwo ein Bezugsobjekt im Blick zu haben.

Mit einem geeigneten Bezugsobjekt, das beim Scannen Ihrer Achse gescannt wird, sollten Sie in der Lage sein, die vier gewünschten Offsets zu berechnen.

Wenn Sie es sich nicht leisten können, dass Ihr Sichtfeld im normalen Betrieb verdeckt wird, müssen Sie Ihren Passermarken möglicherweise auf einem eigenen Aktuator platzieren und ihn sichtbar machen, wenn Sie ihn kalibrieren und für den normalen Betrieb herausnehmen möchten. Das einzige Problem hierbei ist, dass Sie die Genauigkeit Ihrer Kalibrierung durch die Genauigkeit Ihres Bezugsaktuators einschränken.

Beachten Sie, dass ein Teil Ihres Sichtfelds bereits von einem anderen Teil Ihres Roboters verdeckt wird und möglicherweise als Referenz oder zumindest als Montagepunkt für einen Roboter geeignet ist.


Mein Problem ist nicht, ein Bezugsobjekt zu platzieren, das ist einfach genug. Mein Problem ist die Berechnung der Offsets. Wie Sie sagen, sollte es möglich sein, die vier Offsets basierend auf einem Kalibrierungsobjekt zu berechnen, aber wie? Angenommen, ich scanne einen Würfel mit bekannten Abmessungen. Ich kann leicht erkennen, dass meine Offsets falsch sind, wenn dieser Würfel einer nicht planaren, nicht rechteckigen Punktwolke zugeordnet ist. Aber wie bekomme ich die richtigen Offsets daraus?
HugoRune

Vielen Dank für die Klarstellung @HugoRune - wenn Sie Ihre Frage so bearbeiten könnten, dass sie diese Informationen enthält, kann hoffentlich die nächste zu beantwortende Person eine bessere Antwort geben. Ich habe diese Art der Kalibrierung bisher nur durchgeführt, nachdem ich das Problem bereits auf 2D vereinfacht habe, sodass ich nur allgemeine Ratschläge geben kann.
Mark Booth

1

Die einfachste Methode in diesem Fall besteht darin, das Problem im Wesentlichen brutal zu erzwingen, es jedoch auf intelligente Weise zu erzwingen.

Was Sie benötigen, ist ein Datensatz vom Scanner, während er ein Objekt scannt, vorzugsweise ein mathematisch einfaches Objekt wie ein Würfel oder eine Kugel, und die genaue Versatzposition oder der Versatz dieses Objekts relativ zur Halterung dieses Scanners.

Wenn Sie über diese beiden Informationen verfügen, besteht der nächste Trick im Wesentlichen darin, verschiedene Kombinationen von Scanner-Offsets (was ich normalerweise als Kalibrierungswerte bezeichne) zu testen, bis Sie Offsets finden, die bewirken, dass die Scannerdaten Ihr Objekt genau darstellen. Hierfür können Sie entweder zufällig Werte erraten, die ewig dauern und nirgendwo hinkommen (aber theoretisch würden Sie schließlich die richtige Antwort erhalten), oder Sie können eine Optimierungsmethode verwenden

Um eine Optimierungsmethode zu verwenden, müssen Sie eine Art Metrik entwickeln, um festzustellen, ob ein bestimmter Satz von Offsets besser funktioniert als ein anderer Satz. Unabhängig davon, welche Optimierungsmethode Sie verwenden, wird anhand dieser Punktzahl angegeben, ob die Werte in eine bestimmte Richtung angepasst werden sollen. Letztendlich wird es sich auf einen bestimmten Satz von Werten festlegen, die am besten zu funktionieren scheinen.

Dies ist eine ziemlich kurze und schlechte Beschreibung eines sehr ausführlichen Themas, aber hoffentlich bringt es Sie in eine Richtung. Wenn Sie eine detailliertere Beschreibung von etwas wünschen, hinterlassen Sie einen Kommentar.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.