본 글은 장형기님의 SLAM 기술 면접 질문 100선에 대해 제 나름의 답변을 정리한 것입니다.
SLAM을 수행할 때 map의 표현 방식에는 어떤 것이 있을까요?
저는 LiDAR를 사용해서 point cloud로 구성된 map을 주로 생성합니다.
이것도 map의 표현 방식 중 하나이지만 더 큰틀을 이 게시글에서 나눠보려고 합니다.
격자 맵은 환경을 정해진 해상도의 discrete cell로 분할하고 각 cell에 점유 상태를 확률적으로 할당합니다.
이를 Occupancy Map으로 정의할 수도 있습니다.
이 map은 편한 것이 grid 안에 정보가 있으면 채우고 없으면 비우고 할 수 있어서 쉽게 계산할 수 있습니다.
장점
1. 센서 데이터를 바탕으로 각 격자의 점유 상태를 갱신하는 알고리즘이 잘 정립되어 있어서 센서 융합에 용이합니다.
2. A*,Dijkstra등 path planning알고리즘을 쉽게 사용할 수 있습니다.
단점
1. grid의 크기에 따라 표현력이 제한됩니다. grid를 작게해서 해상도를 높이면 메모리와 계산 비용을 증가시킵니다.
2. 연속 공간을 discrete한 cell로 표현하기 때문에 세밀한 표현이 불가능합니다.
Feature-based Map은 환경의 구조적 특징을 추출하여 저장합니다.
로봇의 Localization에 필요한 주요 요소만 저장하기 때문에 계산량이 줄어듭니다.
장점
1. 특징점만 저장하기 때문에 메모리 사용량이 작고 계산량이 적습니다.
2. 환경에서 불필요한 데이터를 제외할 수 있습니다.
3. 환경의 특이점을 활용할 수 있습니다.
단점
1. Feature가 없는 환경에서는 사용하기 쉽지 않습니다.
2. Feature를 계산하는 것이 센서에 특정됩니다. (여러 센서를 함께 쓰기가 쉽지 않다)
3. 비슷한 feature가 많은 환경에서는 매칭 오류가 발생할 가능성이 높습니다.
Topological map은 환경을 Node와 Edge로 표현합니다.
노드는 특정 위치를 나타내며, 엣지는 노드간의 관계를 나타냅니다.
환경의 기하학적 세부정보를 제외하고 위치 간의 연결성만 표현하는 단순화된 모델입니다.
장점
1. 노드와 엣지만 저장하므로 메모리 사용량이 매우 적습니다.
2. 그래프 탐색 알고리즘을 사용하여 빠르게 경로를 계산할 수 있습니다.
단점
1.노드 간의 정확한 거리나 장애물 정보를 포함하지 않습니다.
2.물리적 환경의 구조들을 알 수가 없습니다.
Metric Map은 환경을 2D 또는 3D 좌표계로 정밀하게 표현합니다.
장점
1.환경의 세부 구조를 정확히 표현이 가능합니다.
2.3D 환경을 표현할 수 있어 로봇 작업이 필요할 때 적합합니다.
3.시뮬레이션 및 reconstruction을 하기 쉬워 다양한 분야에 응용할 수 있습니다.
단점
1. 좌표계를 구성하는 데이터가 너무 많아 메모리 관리나 계산량이 클 수 있습니다.
2. 고해상도 metric map은 실시간 처리가 어렵습니다.
3. 센서 노이즈가 많을 경우 표현에 오류가 발생할 수 있습니다.
크게 4가지로 구분하였고 이 안에 point cloud map, mesh map, Semantic map 등 다양한 map들이 포함될 수 있습니다.