ICP Transformacja Dokładność różniących się początkowe Translation

głosy
0

Dzień dobry wszystkim,

Ja buduje temperaturę mętnienia percepcji rurociągu do mojego robota w symulacji z wykorzystaniem temperatury mętnienia Library (PCL), a konkretnie najbliższego punktu (ICP) moduł iteracyjny. Mam trudności z poprawną macierz transformacji z PCL ICP. Początkowo myślałem, że to coś z moim poszczególnych chmur punktów lub mojego kodu, ale to samo dzieje się przy użyciu kodu samouczek i chmury punktów.

Minimalny przykład pracy, ja skopiował kod Interactive ICP , opracowywane i wykorzystywane monkey.ply plik i działa zgodnie z oczekiwaniami. Jednak przy zmianie jedynie składowej translacyjnej transformacji od początkowej wartości w Tutorial t = <0,0, 0,0, 0,4> z t = <1,0, 1,0, 0,0> wyjście macierz transformacji ICP się przez co najmniej 0.2 dla każdej osi wraz z nie podlegającym translacji osi z.

Czy jest coś, czego mi brakuje, jeśli chodzi o tłumaczenia początkowej między chmurami? Czy istnieje minimalna między chmurami tłumaczenie dla ICP do pracy?

Zobacz wynik poniżej pomocą monkey.ply plik, ja skrócić wyjście więc jego bardziej czytelny:

KOD skopiowane z 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 >

ZMIANA tłumaczenie z t = <0,0, 0,0, 0,4> z 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 >

Każda pomoc w ogóle będą mile widziane!

Mahalo,

Chris Rowe

Utwórz 13/02/2020 o 21:54
źródło użytkownik
W innych językach...                            


1 odpowiedzi

głosy
0

Jeśli jesteś nowy w ICP i temperatury mętnienia rejestracji, polecam przeczytać pierwszy rozdział SIGGRAPH samouczka nowoczesnych technik i aplikacji w czasie rzeczywistym dla sztywnej Rejestracji . To bardzo krótka, ale zawiera dobre informacje.

Kopię do Twojego pytania.

Czy jest coś, czego mi brakuje, jeśli chodzi o tłumaczenia początkowej między chmurami?

Tak, ICP potrzebuje dobrego początkową przemianę na początek . I przez transformację mam na myśli zarówno tłumaczenia i obrót.

Podstawowym założeniem przez ICP (iteracyjny najbliższy punkt) algorytmu jest:
Powierzchnie chmury punktów (lub) są szorstkiej początkową. Dlatego najbliższy punkt odpowiedniki przybliżone odpowiedniki ziemia prawdy.

Czy istnieje minimalna między chmurami tłumaczenie dla ICP do pracy?

Przypuszczam, że nie ma prostej odpowiedzi. Im bliżej, tym lepiej.

AFAIK to zależy również od sposobu powiązania danych. (Istnieje wiele wariantów pierwotnego ICP. Jak to opisano w dokumencie Skuteczna Warianty algorytmu ICP ).

ICP jest zwykle używany jako ostatni krok w chmury punktów rejestracji. Aby uzyskać dobrą początkową transformację, można korzystać z niektórych funkcji w oparciu metodę rejestracji takich jak ten .

Odpowiedział 14/03/2020 o 12:21
źródło użytkownik

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