ICP Transformation Genauigkeit Unterschiedlich Mit Erstübersetzung

stimmen
0

Guten Tag allerseits,

Ich habe für meine Roboter in Simulation Point Cloud Library (PCL) eine Punktwolke Wahrnehmung Pipeline baut und insbesondere die Iterative Closest Point (ICP) Modul. Ich habe Schwierigkeiten, die richtige Transformationsmatrix von PCL ICP bekommen. Ich dachte zunächst, es hat etwas mit meiner speziellen Punktwolke oder meinem Code war, aber das gleiche passiert, die Tutorial-Code und Punktwolke verwenden.

Bei einem Mindestarbeitsbeispiel kopiert ich die Interactive ICP - Code kompiliert und verwendet , um die monkey.ply Datei und es funktioniert wie erwartet. Allerdings, wenn ich nur die translatorische Komponente der Transformation von dem Anfangswert in dem Lernprogramm der Veränderung t = <0,0, 0,0, 0,4> zu t = <1,0, 1,0, 0,0> ist die ICP Ausgangstransformationsmatrix durch zumindest aus 0,2 in jeder Achse einschließlich der nicht - translatierten Z - Achse.

Gibt es etwas fehlt ich bin, wenn es um die anfängliche Übersetzung zwischen den Wolken kommt? Gibt es eine Mindest Übersetzung zwischen den Wolken für ICP zu arbeiten?

Sehen Sie sich die Ausgabe unter der Verwendung von monkey.ply Datei, ich die Ausgabe so seinem lesbaren verkürzt:

CODE abgeschaut interactive_icp.cpp

Applying this rigid transformation to: cloud_in -> cloud_icp
Rotation matrix :
     |  0.924 -0.383  0.000 | 
R =  |  0.383  0.924  0.000 | 
     |  0.000  0.000  1.000 | 
Translation vector :
t = <  0.000,  0.000,  0.400 >

Applied 1 ICP iteration(s) in 11 ms

ICP has converged, score is 0.0256485
ICP has converged, score is +2e-02
~
~
ICP has converged, score is +8e-06-> cloud_in
ICP has converged, score is +3e-12-> cloud_in
ICP transformation 14 : cloud_icp -> cloud_in
ICP transformation 15 : cloud_icp -> cloud_in
Rotation matrix :81 -0.036 |
     |  0.924  0.381 -0.036 |
R =  | -0.381  0.924  0.012 |
     |  0.037  0.003  0.999 |
Translation vector :, -0.402
t = <  0.016, -0.006, -0.402 >

VERÄNDERT Übersetzung aus t = <0,0, 0,0, 0,4> zu t = <1,0, 1,0, 0,0>

Rotation matrix :
     |  0.924 -0.383  0.000 | 
R =  |  0.383  0.924  0.000 | 
     |  0.000  0.000  1.000 | 
Translation vector :
t = <  1.000,  1.000,  0.000 >

Applied 1 ICP iteration(s) in 11 ms

ICP has converged, score is 0.157621
ICP has converged, score is +2e-01
~
~
ICP has converged, score is +8e-09-> cloud_in
ICP has converged, score is +5e-12-> cloud_in
ICP transformation 24 : cloud_icp -> cloud_in
ICP transformation 25 : cloud_icp -> cloud_in
Rotation matrix :75 -0.025 |
     |  0.927  0.375 -0.025 |
R =  | -0.375  0.927  0.029 |
     |  0.034 -0.017  0.999 |
Translation vector :,  0.265
t = < -1.391, -0.471,  0.265 >

Jede Hilfe bei allen wäre willkommen!

Mahalo,

Chris Rowe

Veröffentlicht am 13/02/2020 um 21:54
quelle vom benutzer
In anderen Sprachen...                            


1 antworten

stimmen
0

Wenn Sie ICP und Punktwolke Registrierung neu sind, empfehle ich Ihnen , das erste Kapitel der SIGGRAPH Tutorial zu lesen Moderne Techniken und Anwendungen für Real-Time Unstarre Registrierung . Es ist sehr kurz , aber enthält gute Informationen.

Zurück zu Ihrer Frage.

Gibt es etwas fehlt ich bin, wenn es um die anfängliche Übersetzung zwischen den Wolken kommt?

Ja, muss ICP eine gute Anfangs Transformation mit zu beginnen . Und durch Transformation meine ich sowohl die Translation und Rotation.

Die grundlegende Annahme gemacht , durch ICP (Iterative Closest Point) Algorithmus ist:
Die Oberflächen (oder Punktwolken) sind in grober anfänglicher Ausrichtung. Deshalb am nächsten Punktkorrespondenzen ungefähre Grundwahrheits Korrespondenzen.

Gibt es eine Mindest Übersetzung zwischen den Wolken für ICP zu arbeiten?

Ich nehme an, es nicht eine klare Antwort ist. Je näher, desto besser.

AFAIK es hängt auch von den Datenzuordnungsverfahren. (Es gibt viele Varianten zur ursprünglichen ICP. Wie in dem Papier beschrieben Effiziente Varianten des ICP - Algorithmus ).

ICP ist in der Regel als letzten Schritt in Punktwolke Registrierung verwendet. Um eine gute anfängliche Transformation zu erhalten, können Sie einige Features basierten Registrierungsverfahren, wie nutzen diese .

Beantwortet am 14/03/2020 um 12:21
quelle vom benutzer

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more