이 게시글은 장형기님의 SLAM 기술 면접 질문 100선에 대한 제 나름대로의 답을 정리한 것입니다.
앞 게시물에 정리가 되어 있겠지만 ICP는 Itrative Closest Point의 준말로 Point Cloud를 정합하는 알고리즘입니다.
두 Point Cloud로 이루어진 덩어리를 정합할 때 사용하는 알고리즘이라고 생각하시면 됩니다.
ICP는 먼저 가장 가까운 Point끼리 같은 점이라고 생각하고 정합을 시작합니다.
최적화를 통해 정합을 하고 정합이 제대로 됐는지 확인하고 다시 정합을 하거나 정합을 종료합니다.
이 때 처음 같은 점이라고 생각한 쌍이 말도 안되게 잡히게 되면 아무리 가깝게 만들려고 해도
이상한 답으로 가고 있기 때문에 정합이 되지 않을 수 있습니다.
보통 멀리 translation이 차이가 나는 것은 그래도 좀 잘 해결하는데
회전이 이상하게 되어 있는 것은 ICP에 치명적인 것 같습니다.
이 처럼 Initial alignment는 ICP의 결과에 큰 영향을 줍니다.
이것은 point 간의 correspondence를 처음에 가장 가까운 point끼리로 잡기 때문에 발생하는데
ICP의 태생적 한계라고 생각합니다.
이러한 단점이 있는 대신 빠르고 직관적인 알고리즘이기 때문에 장단점을 잘 고려하여 사용을 결정해야합니다.