알고리즘 관점에서 본 SLAM(2부)

1부에서 설명한 대로 SLAM은 미지의 영역에서 로봇 차량의 위치를 예측하면서 동시에 점진적으로 지도를 생성하는 과정입니다. SLAM 알고리즘은 사용되는 세 가지 주요 기술에 따라 필터 기반 SLAM, 그래프 기반 SLAM, 딥 러닝 기반 SLAM으로 분류할 수 있습니다.

필터 기반 SLAM에서는 SLAM을 상태 예측 문제로 처리합니다. 여기서는 일반적으로 확장 칼만 필터(EKF) 또는 분산점 칼만 필터(UKF)와 같은 확률적 필터를 사용하여 로봇의 상태를 재귀적으로 예측하고 센서 측정치를 기반으로 지도를 업데이트합니다. 필터는 동작 모델을 기반으로 로봇의 다음 상태를 예측한 다음 센서 측정치를 사용하여 이 예측을 수정합니다.

그래프 기반 SLAM에서는 필터 기반 SLAM과 달리 그래프 최적화 문제로 접근합니다. SLAM 문제는 그래프로 공식화됩니다. 이 그래프에서 노드는 로봇의 포즈 또는 환경 내 랜드마크를 나타내고, 에지는 그 사이의 측정치 또는 제약을 나타냅니다. 그래프 기반 SLAM의 목표는 측정된 제약(예: 랜드마크 사이의 거리, 로봇 포즈 사이의 상대 포즈)이 최대한 정확하게 충족되도록 로봇의 포즈와 랜드마크의 위치를 최적화하는 것입니다.

딥 러닝 기반 SLAM 방법에서는 수작업 특징이나 모델에 의존하지 않고 신경망을 활용하여 센서 데이터에서 환경 표현을 직접 학습합니다. 이 방법에서는 센서 측정치와 로봇 포즈 또는 지도 사이의 복잡한 매핑을 학습하여 엔드 투 엔드 SLAM 솔루션을 실현할 수 있습니다.

SLAM, 매핑, 로컬라이제이션의 핵심 기능은 서로 복잡하게 연결되어 있으며, 로봇은 센서 데이터를 기반으로 지도를 지속적으로 업데이트하고 그에 따라 위치 추정을 조정합니다. SLAM과 SLAM 개념들은 모듈식 도구이므로 파이프라인에서 교체하고 변경할 수 있습니다. 여러 알고리즘이 동시에 개발되고 사용되는 경우가 많으므로 SLAM을 단일 알고리즘으로 일반화하여 설명하는 것은 번거로운 일입니다. 따라서 SLAM을 이해하는 가장 좋은 방법은 SLAM의 특정 구현에 집중하는 것입니다. 이제 필터 기반 시각적 SLAM(vSLAM)에 대해 자세히 알아보겠습니다.

시각적 SLAM

이름에서 알 수 있듯이 vSLAM은 시각 센서인 카메라를 기본 센서로 사용합니다. 또한 인코더, 관성 측정 장치(IMU), 기타 센서를 포함할 수도 있습니다. 그림 1에서 구현의 일반적인 제품 구성도를 확인할 수 있습니다.

그림 1: 특징 기반 SLAM 공정의 단순화된 일반 제품 구성도(출처: kudan.io)

카메라 측정

카메라는 랜드마크, 에지, 텍스처와 같은 특징을 포함하여 로봇의 주변 환경을 이미지로 캡처합니다. 하지만 대부분의 카메라 렌즈에서는 다소의 왜곡이 발생하므로 캡처한 이미지의 왜곡을 보정해야 합니다. 스테레오, 단안, 시간차(ToF) 깊이 센서가 있는 RGB-D 카메라가 사용될 수 있습니다. 스테레오 및 RGB-D 카메라의 장점은 깊이 정보를 쉽게 얻을 수 있다는 것입니다. 반면에 단안 카메라는 스케일 모호성으로 인한 어려움이 있습니다. 단안 SLAM은 특징 대응에서만 병진 이동 길이(스케일 팩터)를 식별할 수 없습니다. 이 문제를 완화할 방법은 있지만 이 기사에서 다루는 내용을 벗어납니다.

특징 추출

카메라 센서를 사용하여 이미지를 캡처한 후에는 나중에 참조할 수 있도록 각 프레임의 특징을 찾아 프레임을 고유하게 식별해야 합니다. 이 맥락에서 특징은 고유하고 일관되게 식별할 수 있는 픽셀 모음입니다. 혹은 다른 이미지와 구분되면서도 회전, 척도, 왜곡으로 변하지 않아 이미지를 조작한 후에도 쉽게 다시 식별할 수 있는 점들이기도 합니다. 스테레오 카메라를 기본 센서로 사용한다는 점을 고려하면, 카메라에서 캡처하는 스테레오 이미지 간에 중복되는 특징을 확인할 수 있어야 합니다. 이 동일한 특징들을 사용하여 센서와의 거리를 예측할 수 있습니다. 하지만 앞서 언급한 것처럼 스테레오 이미지 쌍의 공통된 특징을 먼저 파악해야 합니다. 이 작업은 특징 검출기와 검사기를 통해 수행됩니다. 특징 검출기의 일반적인 예로는 SIFT(척도 불변 특징 변환), ORB(Oriented FAST and Rotated BRIEF), GFTT(Good Features to Track) 등이 있습니다. 그림 2는 일부 널리 쓰이는 특징 검출기를 사용하여 특징을 식별한 사진입니다. 특징이 식별되면 동일한 특징 검출기를 사용하여 특징에 대한 설명이 제공됩니다. 이 과정은 향후 이러한 특징을 쉽게 재식별하는 데 도움이 됩니다.

그림 2: a) GFTT b) SIFT를 사용하여 XRP 로봇 이미지에서 감지된 특징점(출처: SparkFun Electronics)

특징점들을 찾은 후에는 이 점들을 매칭하여 대응 관계를 설정합니다. Brute Force Matcher 또는 FLANN(Fast Library for Approximate Nearest Neighbors)등의 특징 매칭 알고리즘을 사용할 수 있습니다. 그림 3은 실행 중인 매칭 알고리즘을 시각적으로 보여 줍니다. 매칭 결과들이 선으로 연결되어 있습니다. 좌우 반전된 이미지를 사용했기 때문에 시스템이 완벽하다면 수평(평행)인 선만 표시되는 것이 이상적입니다. 하지만 특징 매칭 알고리즘이 완벽하지는 않으므로 잘못된 매칭이 발생하여 일부는 기울어진 선으로 표시되어 있습니다. 따라서 RANSAC(Random Sample Consensus)와 같은 이상치 제거 도구가 필요합니다.

그림 3: FLANN을 사용하여 두 개의 반전된 이미지에서 특징 매칭 결과들을 나타내는 선(출처: SparkFun electronics)

RANSAC

이러한 잘못된 매칭 결과를 필터링하고 정상치(올바른 매칭 결과)만 사용하기 위해 RANSAC과 같은 알고리즘이 사용됩니다. RANSAC은 제공된 데이터의 무작위 하위 집합에서 모델을 구축하는 방식으로 작동합니다. 임의의 일부 점을 정상치로 간주하고 이렇게 선택된 소수의 점을 기준으로 나머지 모든 점을 정합하려고 시도하게 됩니다. 그런 다음 모델이 전체 데이터 세트와 얼마나 일치하는지 평가합니다. 이 과정은 비용 함수에 의해 결정된 대로 최소한의 오류로 데이터를 정확하게 설명하는 모델을 찾을 때까지 반복됩니다.

특징 및 데이터 연결

이 단계에는 감지된 특징과 공간 내 예상 위치를 가져와서 특징 지도를 만듭니다. 이후 프레임에서 과정이 진행됨에 따라 새로운 특징을 지도의 알려진 요소와 연결하고 불확실한 특징을 삭제합니다.

카메라의 동작이 후속 프레임에서 추적되므로 알려진 특징과 움직임에 따라 예상되는 변화를 기반으로 예측할 수 있습니다. 하지만 컴퓨팅 리소스 제약과 시간 제약이 있고 실시간 응용 분야에서 특히 제약이 커서 SLAM에는 한계가 있습니다. 수집되는 특징의 측정치가 많아지고 시간이 지나면서 위치/포즈가 업데이트됨에 따라 환경 표현을 제한하고 최적화하는 것이 필수적입니다.

위치, 포즈, 지도 업데이트

칼만 필터

SLAM 과정을 계속 진행하면 노이즈가 누적되어 카메라에서 캡처한 이미지와 관련 동작 사이에 불확실성이 발생합니다. 칼만 필터는 관찰된 측정치에 대해 지속적으로 예측을 생성하고, 업데이트하고, 모델을 미세 조정하여 여러 측정치 간의 노이즈 및 불확실성의 영향을 줄일 수 있습니다. 이는 선형 시스템 모델을 만드는 데 도움이 됩니다. SLAM의 실제 구현에서는 비선형 시스템을 가져와서 그 평균을 중심으로 예측과 측정을 선형화하는 확장 칼만 필터(EKF)를 사용합니다. EKF는 센서 융합(예: 카메라, IMU)을 수행하여 여러 센서의 데이터를 통합함으로써 상태 및 지도 예측의 정확도를 향상할 수 있습니다. 이 데이터 소스 융합은 보다 신뢰할 수 있는 SLAM 결과를 얻는 데 도움이 됩니다. EKF 기반 SLAM의 상태 벡터에는 로봇의 포즈(위치 및 방향)와 지도의 랜드마크 위치가 포함됩니다.

키 프레임 선택

캡처된 모든 이미지를 처리하려면 방대한 계산이 필요하므로 그 대신 캡처된 이미지 중에서 키 프레임을 선택하게 됩니다. 환경을 잘 표현하는 프레임을 선택하여 그 프레임들만 계산에 사용하는 것입니다. 이 방법 역시 정확성과 효율성 사이의 트레이드 오프입니다.

루프 폐쇄 및 재로컬라이제이션을 통한 오류 수정

환경 모델을 구축하는 과정에서 측정 오류와 센서 드리프트가 점진적으로 누적되며, 이는 생성되는 지도에 영향을 미칩니다. 이 문제는 루프 폐쇄를 통해 어느 정도 완화될 수 있습니다. 루프 폐쇄는 시스템에서 이전에 매핑된 영역을 재방문한다고 식별할 때 발생합니다. 현재 지도를 이전에 설정한 동일한 영역의 지도로 다시 정렬하여 누적된 오류를 SLAM 시스템에서 수정할 수 있습니다.

재로컬라이제이션

시스템에서 추적하던 위치 및 방향(포즈)을 놓쳤을 경우 재로컬라이제이션해야 합니다. 그러려면 현재 관찰 가능한 특징을 활용하여 포즈를 다시 예측해야 합니다. 시스템에서 현재 사용 가능한 특징을 사용 가능한 지도와 매칭하면 평소와 같이 SLAM 과정을 진행할 수 있습니다.

결론

SLAM은 미지의 영역을 매핑하는 동안 로봇 차량의 위치를 예측하는 과정입니다. SLAM 기술에는 필터 기반, 그래프 기반, (신경망을 사용하는) 딥 러닝 기반 방법이 있습니다. 시각적 SLAM에서는 카메라를 사용하여 이미지를 캡처하고, 특징을 추출하여 매칭하고, 잘못된 매칭 결과를 필터링합니다. 시스템에서는 새로운 특징을 알려진 요소와 연결하고, 칼만 필터를 사용하여 로봇의 위치와 포즈를 업데이트하고, 키 프레임을 선택하고, 루프 폐쇄 및 재로컬라이제이션을 통해 오류를 수정하여 지도를 생성합니다.

참고 자료

  1. Remote Sensing | Free Full-Text | SLAM Overview: From Single Sensor to Heterogeneous Fusion (mdpi.com)
  2. Understanding how V-SLAM (Visual SLAM) works | Kudan global
  3. Feature-based visual simultaneous localization and mapping: a survey | Discover Applied Sciences (springer.com)
  4. Introduction to Visual SLAM: Chapter 1 —Introduction to SLAM | by Daniel Casado | Medium
  5. An Introduction to Key Algorithms Used in SLAM - Technical Articles (control.com)
  6. What Is SLAM (Simultaneous Localization and Mapping) – MATLAB & Simulink - MATLAB & Simulink (mathworks.com)
  7. A survey of state-of-the-art on visual SLAM - ScienceDirect

작성자 정보

Image of Aswin S Babu

Aswin은 로봇 공학과 AI를 전문으로 하는 소프트웨어 엔지니어입니다. 그는 사회적 이익을 위해 이러한 기술을 적용하는 데 많은 관심을 갖고 있습니다. 그는 가정 자동화의 사회적 기업가부터 로봇 공학자에 이르기까지 다양한 경력을 갖추고 있습니다. 로봇 로컬라이제이션을 위한 단안 시각 오도메트리 시스템 같은 여러 혁신적 프로젝트에도 참여해 왔습니다. 또한 다양한 연령의 학생들에게 로봇 공학 및 AI를 가르친 경험이 있습니다. 그는 대중을 향한 연설, 양봉, 정원 가꾸기 및 사회적 대의를 위한 자원봉사를 즐깁니다.

More posts by Aswin S Babu
 TechForum

Have questions or comments? Continue the conversation on TechForum, Digi-Key's online community and technical resource.

Visit TechForum