이 게시글은 장형기님이 작성해주신 SLAM 기술면접 질문 100선의 대답을 제 나름대로 정리한 것입니다.
Pose Graph Optimization은 SLAM의 안정성을 높이기 위해 로봇의 위치와 그것들의 관계를 그래프 형태로 나타낸 후 최적화하는 과정입니다.
Pose Graph는 크게 2가지로 이루어져 있습니다.
Node: 로봇의 포즈(위치 및 방향)
Edge: 두 노드간의 상대적인 변환 관계
이를 이용하여 최적화 문제를 모델링하면 다음과 같습니다.
:관측된 상대 변환(센서 데이터)
: 포즈 간의 예측 변환(모델)
: infromation matrix
이렇게 edge정보를 통해 예측한 포즈와 실제 관측 포즈간의 오차를 줄이는 방향으로 optimization하면서 우리는 정확한 Pose를 계산할 수 있게 됩니다.
그래프는 로봇이 새로운 포즈와 상대 변환을 추가할 때마다 부분적으로 업데이트됩니다.
이 과정은 전체 그래프를 최적화하지 않고 추가된 노드와 엣지만 고려해 빠르게 최적화합니다.
Loop Closing이 감지되면, 그래프에 새로운 constraint가 추가됩니다.
이 추가된 constraint는 그래프의 전역 일관성을 유지하기 위해 중요합니다.
Loop Closing 발생 시 전체 그래프를 전역적으로 최적화를 진행하여 누적 오차를 줄이고, 포즈와 맵을 일관되게 만듭니다.
장점
단점
Filter 기반 최적화 방식과 항상 비교되는 Graph Optimization에 대해 알아보았습니다.
이것은 요즘 증가된 Computing Power로 인해 훨씬 더 많이 쓰이는 것 같습니다.