본문 바로가기
📑 공부/📷 SLAM

1-4. SLAM 알고리즘의 파이프라인

by 엄지잉 2024. 12. 17.

💡 전형적인 SLAM 알고리즘 파이프라인

1. 정보 획득(Data acquisition) : (전처리) 카메라 or 라이다와 같은 센서로부터 주변 환경에 대한 정보 획득, 원본 데이터로부터 노이즈를 제거

2. 시각적 주행 거리 측정(Visual odometry) : 연속적인 데이터로부터 특징을 추출하고 대응 관계를 수립한 다음, 센서의 상대적인 움직임을 예측

3. 루프 폐쇄 검출(Loop closure detection) : 위와 동시에 현재 센서가 있는 위치가 이전에 방문한 위치인지 판단

- 이 단계는 2번 과정과 다르게 비연속적인 데이터로부터 상대적인 움직임을 예측함.

✅ 1, 2, 3과정을 프론트엔드라고 이야기 함.

 

4. 백엔드 최적화(Backend optimization) : 앞의 프론트엔드에서 얻은 센서 위치, 주변 환경에 대한 정보를 이용해 불확실성을 제거하고, 일관성있는 지도를 만들기 위해 수행함. 현재 센서 자세, 주변 환경의 랜드마크 정보를 그래프 노드로 표현하고, 노드 사이의 제약조건을 그래프 엣지로 표현하여 모든 그래프 노드 사이의 제약조건을 최소화하는 형태로 센서의 자세, 랜드마크 위치를 최적화함.

5. 맵 표현(Map representation) 최적화된 정보를 이용해 응용 시나리오에 적합한 지도를 생성하는 맵 표현 과정 ➡️ 자율주행이나 가상현실/증강현실과 같은 메타버스 분야에 활용할 수 있는 환경 지도를 생성할 수 있게 됨.

 

💡 시각적 주행 거리 측정 (Visual odometry)

: 인접한 이미지 사이의 센서 움직임을 예측회전 및 이동 파라미터를 계산하는 알고리즘

  • t 시점, t+1 시점 영상이 입력으로 주어졌다고 가정
  • 두 장의 이미지는 외관상으로 굉장히 유사, 자세히 살펴보면 영상의 경계부분에서 조금 다른 형태를 보이는 것으로 보임 ➡️ 카메라 센서가 움직이면서 촬영한 사진임을 알 수 있음.
  • 두 영상 사이의 충분한 겹침이 있다면, 영상에서 특징점을 추출하고 특징점 간의 대응관계를 활용해 상대적인 움직임 파라미터를 계산할 수 있음.

하지만, 시각적 주행 거리 측정만을 사용해 연속적인 센서의 궤적을 예측해 나간다면 누적된 표류 오차(Drift error) 때문에 실제 궤적과 큰 차이를 보이게 됨.

ex) 건물의 실내에서 복도를 따라 센서의 위치를 수행하는 경우

시각적 주행 거리 측정만을 사용해 센서 위치를 예측해 나간다면, 왼쪽 그림처럼 연속된 영상 사이에서 발생한 표류 오차가 누적되어 다시 원점으로 돌아왔음에도 불구하고 큰 차이를 나타냄

✅ 위와 같은 오차 줄이고, 오른쪽 그림처럼 일관성 있는 센서 궤적을 얻기 위해서는 루프 폐쇄 검출, 백엔드 최적화 과정이 반드시 필요함.

 

💡 루프 폐쇄 검출 (Loop closure detection)

: 현재 센서의 위치가 이전에 방문한 곳인지 판단하는 알고리즘

 

- 현재 센서 입력-이전 센서 입력 사이의 유사성을 고려해 판단함.

(1) 이미지 간의 유사성

: 아래 왼쪽의 그림처럼 같은 장소에서 촬영한 사진임에도 불구하고 다른 시간, 날씨, 조명, 시점과 같은 다양한 요인들에 의해 시각적으로 굉장히 차이나는 영상이 나올 수 있음. 이러한 다양한 변화 요인들이 있음에도 불구하고 강건하게 같은 장소임을 판단하는 알고리즘이 루프 폐쇄 검출 알고리즘임.

(2) 기하학적 구조의 유사성

: 라이다와 같은 센서는 3차원 공간에 대한 형상 정보를 수집할 수 있는데, 이걸 이용해 루프 폐쇄 검출을 수행할 수 있음.

 

- 시각적 주행 거리 측정에 의해 표류 오차가 누적되어, 예측된 위치가 실제 위치와 차이가 있더라도 루프 폐쇄 검출 알고리즘을 통해 같은 위치임을 판단하면 최적화를 통해 전체 궤적을 보정할 수 있음.

✅ 백엔드 최적화 단계에서 추가적인 제약조건을 부여하고, 누적된 표류 오차를 제거해 전역적으로 일관된 지도를 생성하는데 사용할 수 있음.

 

💡 백엔드 최적화 (Backend optimization)

: 노이즈가 많은 데이터로부터 전체 시스템의 상태를 정확하게 추정하는 방법

- 필터 기반 방법, 비선형 최적화 기반 방법이 있음.

 

📌 필터 기반 방법

: 베이즈 필터를 이용해 재귀적으로 사전확률, 가능도를 융합해 사후확률을 업데이트하며 센서 자세 or 랜드마크의 위치를 업데이트 해나가는 방법임.

ex) 칼만 필터(Kalman filter), 파티클 필터(Particle filter)

 

📌 비선형 최적화 기반 방법

: 센서-자세 랜드마크 사이 비선형적인 관측 모델 or 연속적인 센서 사이의 비선형적 움직임 모델이 주어졌을 때, 이러한 비선형 모델에 의해 만들어지는 제약조건을 최소화시키는 방향으로 센서 자세, 랜드마크를 업데이트 해나가는 방법

ex) 번들 조정(Bundle adjustment), 그래프 최적화 방법(Graph optimization)

 

💡 맵 표현

: (전형적인 SLAM 파이프라인 마지막 단계) 최적화된 센서 자세, 랜드마크 자세를 이용해 환경 맵을 만드는 과정이 수행됨.

 

- 환경 지도는 응용 시나리오에 따라 다르게 구현될 필요가 있음.

ex) 가정에서 사용하는 로봇 청소기 : 평평한 바닥을 돌아다니면서 먼지, 부스러기를 청소하기 때문에 2차원 지도만으로 충분함. 

ex) 자율주행 드론 : 공간을 자유롭게 비행하면서 장애물 피하고, 목표 지점에 정확하게 도달해야 하기 때문에 정확한 3차원 지도가 필요함.

✅ 응용 시나리오에 따라 어느 정도의 정확성을 요구하는지, 가용한 컴퓨팅 자원은 얼마나 되는지 등의 사항에 따라 그에 적합한 맵 표현 방법을 선정해야 함.

 

- SLAM 결과로 획득할 수 있는 다양한 맵 표현 방법

  • 2차원의 점유 그래드 지도 : 주로 로봇 청소기와 같은 실내 환경에서 많이 사용
  • 위상 지도 : 지하철 노선도와 같은 정점-정점 사이 연결하는 간선으로 표현
  • 3차원 점군 지도 : 3차원의 환경 맵 표현하는 일반적인 방법
  • 3차원 볼륨 지도 : 가상/증강 현실과 같은 메타버스 예제에서 사용자로 하여금 몰입감있는 경험을 제공하기 위해 밀도있는 볼륨 형태의 표현 사용

'📑 공부 > 📷 SLAM' 카테고리의 다른 글

3-1. SLAM에서 사용하는 센서 소개  (0) 2024.12.17
1-5. SLAM의 수학적 정의  (1) 2024.12.17
1-3. SLAM 알고리즘의 종류  (2) 2024.12.10
1-2. SLAM의 응용 분야  (1) 2024.12.10
1-1. SLAM이란?  (1) 2024.12.10