ICP Precisión Transformación varía con la traducción inicial

votos
0

Buen día a todos,

He sido la construcción de un oleoducto percepción de nubes de puntos para mi robot en simulación utilizando nube de puntos Library (PCL) y, específicamente, el módulo iterativo punto más cercano (ICP). Estoy teniendo dificultades para obtener la matriz de transformación correcta de PCL ICP. Al principio me pareció que era algo con mis nubes de puntos particulares o mi código, pero lo mismo ocurre con el código y el punto tutorial nube.

Para un ejemplo de trabajo mínimo, he copiado el código interactivo ICP , compilado y utilizado el monkey.ply archivo y funciona como se esperaba. Sin embargo, cuando cambio sólo el componente de traslación de la transformación desde el valor inicial en el tutorial de t = <0,0, 0,0, 0,4> a t = <1,0, 1,0, 0,0> , la matriz de transformación de salida ICP es apagado por al menos 0,2 en cada eje que incluye el eje Z no traducida.

¿Hay algo que me falta cuando se trata de la traducción inicial entre las nubes? ¿Hay una traducción mínima entre las nubes de la PIC al trabajo?

Ver el resultado a continuación utilizando el monkey.ply archivo, acorté la salida por lo que su más legible:

CÓDIGO copiado de 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 >

CAMBIADO TRADUCCIÓN DE t = <0,0, 0,0, 0,4> a 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 >

Cualquier ayuda en absoluto sería apreciada!

Mahalo,

Chris Rowe

Publicado el 13/02/2020 a las 23:54
fuente por usuario
En otros idiomas...                            

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