ICP Transformation Nøyaktighet varierer med Initial Oversettelse

stemmer
0

Ønsker dere alle en god dag,

Jeg har vært å bygge en punktsky oppfatning rørledning for min robot i simulering ved hjelp Point Cloud Library (PCL) og spesielt Iterativ Closest Point (ICP) modulen. Jeg har problemer med å få den riktige transformasjonsmatrise fra PCL ICP. Jeg trodde først det var noe med mine bestemt punktskyer eller koden min, men det samme skjer med opplæringen kode og punktsky.

For et minimum arbeider eksempel kopierte jeg Interaktiv ICP-kode , kompilert og brukte monkey.ply filen og det fungerer som forventet. Men da jeg endre bare den translatoriske komponent av transformasjonen fra den opprinnelige verdi i opplæringen av t = <0,0, 0,0, 0,4> å t = <1,0, 1,0, 0,0> , ICP utgangstransformasjonsmatrise er slått av ved hjelp av minst 0,2 på hver akse, inkludert den ikke-translaterte Z-aksen.

Er det noe jeg mangler når det kommer til den første oversettelse mellom skyene? Finnes det et minimums oversettelse mellom skyene for ICP til arbeid?

Se resultatet under bruker monkey.ply filen, jeg forkortet utgang så det er lettere å lese:

KODE kopiert fra 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 >

ENDRET Oversettelse fra t = <0,0, 0,0, 0,4> å 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 >

Noen hjelp i det hele tatt ville være verdsatt!

Mahalo,

Chris Rowe

Publisert på 13/02/2020 klokken 21:54
kilden bruker
På andre språk...                            


1 svar

stemmer
0

Hvis du er ny på ICP og punktsky registreringen, anbefaler jeg deg å lese første kapittel av SIGGRAPH opplæringen moderne teknikker og programmer for Real-Time Non-rigid registrering . Det er veldig kort, men inneholder god informasjon.

Tilbake til spørsmålet ditt.

Er det noe jeg mangler når det kommer til den første oversettelse mellom skyene?

Ja, trenger ICP et godt første transformasjon til å begynne med . Og ved transformasjon mener jeg både oversettelse og rotasjon.

Den grunnleggende antagelse gjort ved ICP (Iterativ Nærmest Point) algoritme er:
Overflatene (eller punktskyer) er i grov første justering. Derfor nærmeste punktet korrespondanser omtrent bakken sannhets korrespondanser.

Finnes det et minimums oversettelse mellom skyene for ICP til arbeid?

Jeg antar at det er ikke et klart svar. Jo nærmere, jo bedre.

AFAIK det er også avhengig av datakrets-metoden. (Det er mange varianter i den opprinnelige ICP. Som beskrevet i avisen Effektiv Varianter av ICP algoritme ).

ICP er vanligvis brukt som en siste trinnet i punktsky registrering. For å få et godt første transformasjon, kan du bruke noen funksjon basert registreringsmetode som dette .

Svarte 14/03/2020 kl. 12:21
kilden bruker

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