Filter-based SLAM과 Graph-based SLAM의 차이를 설명해주세요.

SJ·2024년 11월 21일
0

이 게시글은 장형기님이 쓰신 SLAM 기술면접 질문 100선에 대한 대답을 제 나름대로 정리하는 것입니다.


SLAM은 visual slam과 lidar slam으로 나눠지기도 하지만 계산 방식에 따라 Filter-based SLAM과 Graph-based SLAM으로 나눠지기도 합니다. 오늘은 이것을 알아보도록 하겠습니다.

Filter based SLAM

filter based SLAM은 확률론적 필터링을 활용하여 SLAM을 하는 전통적 접근 방식입니다.

필터 기반 SLAM은 로봇의 상태와 환경의 map을 확률적으로 추정합니다.
이를 위해 이전 포스트에서 다뤘던 Kalman filter나 Particle filter가 활용됩니다.

자세한 내용은 이전 포스트를 보면 될 것이기 때문에 다루지 않겠습니다.

장점

  1. 빠른 계산 속도: 필터 기반 SLAM은 비교적 빠른 계산 속도를 가지고 있기 때문에 실시간성을 높여줍니다.

  2. 이론적 안정성: 확률론적 모델을 사용하므로 로봇의 움직임과 센서의 불확실성을 체계적으로 처리할 수 있습니다.

단점

  1. 확장성 문제: 환경의 크기가 커질수록 계산량이 급격히 증가하며 대규모 환경에서는 효율적이지 않을 수 있습니다.

  2. 선형 근사화 문제: EKF는 비선형 시스템에서 근사 오류가 누적될 수 있습니다.


Graph SLAM

Graph SLAM은 로봇의 위치와 환경의 맵을 그래프 구조로 모델링합니다. 그래프의 구성요소는 다음과 같습니다.

Node: 로봇의 위치와 맵의 랜드마크를 나타냅니다. 그 시점의 위치를 노드로 넣습니다.

Edge: 노드 간의 관계를 나타내며, 로봇의 이동 정보 또는 센서를 통한 관측 정보를 포함합니다.
불확실성을 나타내는 information matrix을 포함하여 노드 간의 신뢰도를 표현합니다.

흔히 알고 있는 LOAM이나 LIO-SAM을 보면 Edge에서는 위치 간의 transformation matrix를 icp 같은 registration 알고리즘으로 계산하여 넣어줍니다.

작동 방법

  1. 그래프 생성
  • 로봇의 이동 정보와 센서 테이터를 기반으로 그래프를 구축합니다.
  • 각 노드는 로봇의 상태를 나타내고, 엣지는 이동 또는 센서 관측으로 인한 관계를 나타냅니다.
  1. 그래프 최적화
  • 그래프 상의 노드와 엣지의 관계를 최적화하여 불확실성을 최소화합니다.
  • 일반적으로 비선형 최적화 알고리즘을 사용합니다.
  • 최적화 결과로 로봇의 위치와 맵이 정교하게 보정됩니다.

장점

  1. 확장성 : 새로운 node를 넣어주기만 하면 되어서 대규모 환경에서 사용하거나 새로운 센서를 넣을때 좋습니다.

  2. 정확성: 비선형 최적화를 하기 때문에 복잡한 환경에서도 비교적 정확합니다.

  3. loop closure: 방문했던 위치를 다시 도착하면 그 정보를 바탕으로 최적화를 진행할 수 있습니다. 이렇기 때문에 drift를 매우 줄일 수 있습니다.

단점

  1. 계산 복잡도: 그래프 최적화 과정은 계산 비용이 높아질 수 있고 엣지와 노드가 많아질수록 최적화 시간이 많이 늘어납니다.

현재 filter 기반 SLAM도 사용을 하고 있긴 하지만 대부분은 graph based slam을 쓰는 것 같습니다.
컴퓨터가 발전해서 충분히 계산량을 따라가기도 하고 오차가 훨씬 적어서 그렇다고 생각했습니다.
filter는 loop closure가 없는게 치명적 단점 같네요.
감사합니다.

profile
student

0개의 댓글