# SLAM 이해를 위한 사전 지식

#### 확률 이론 및 통계

SLAM(Simultaneous Localization and Mapping)은 본질적으로 불확실한 환경에서 로봇의 위치와 지도를 동시에 추정하는 문제이므로, 확률 이론과 통계적 방법론에 대한 깊은 이해가 필수적이다. 확률적 접근법을 통해 센서 데이터의 불확실성을 모델링하고, 그 결과를 바탕으로 상태를 추정하게 된다.

**확률 밀도 함수와 베이즈 정리**

SLAM에서 로봇의 상태(state)를 추정하는 과정은 확률 밀도 함수(Probability Density Function, PDF)를 기반으로 한다. 로봇의 위치와 자세는 확률 분포로 표현되며, 이를 갱신(update)하고 예측(predict)하는 과정이 반복된다. 이 과정에서 핵심적인 역할을 하는 것이 바로 베이즈 정리(Bayes’ Theorem)이다.

베이즈 정리는 새로운 센서 데이터가 들어올 때, 기존의 신념(prior)을 업데이트하여 새로운 신념(posterior)을 계산하는 방법을 제공한다. 이는 다음과 같은 수식으로 표현된다:

$$
P(x|z) = \frac{P(z|x) \cdot P(x)}{P(z)}
$$

여기서 $ P(x|z) $는 관찰 $ z $가 주어졌을 때 상태 $ x $의 사후 확률(posterior probability), $ P(z|x) $는 관찰 모델(likelihood), $ P(x) $는 사전 확률(prior probability), $ P(z) $는 증거(evidence)이다.

**마르코프 프로세스와 히든 마르코프 모델**

SLAM에서 로봇의 상태 추정은 마르코프 프로세스(Markov Process)를 기반으로 한다. 마르코프 프로세스는 현재 상태가 이전 상태에만 의존하며, 그 이전의 모든 상태로부터 독립적이라는 가정을 가진다. SLAM에서 로봇의 위치는 시간에 따라 변화하며, 이 변화는 주로 상태 천이 모델(Transition Model)에 의해 설명된다.

히든 마르코프 모델(Hidden Markov Model, HMM)은 이러한 마르코프 프로세스를 확장한 것으로, 관찰할 수 없는 숨겨진 상태(hidden state)와 이를 간접적으로 관찰할 수 있는 관측 값(observations) 사이의 관계를 모델링한다. SLAM에서 숨겨진 상태는 로봇의 실제 위치이며, 관측 값은 센서 데이터가 된다.

#### 선형 대수학

SLAM은 다차원 공간에서의 계산을 포함하므로, 선형 대수학은 필수적인 배경 지식이다. 특히 행렬(matrix)와 벡터(vector) 연산은 SLAM 알고리즘의 기반을 이룬다. 상태 벡터(state vector), 관측 벡터(observation vector), 그리고 그에 대응하는 행렬 변환(matrix transformation)은 SLAM 문제를 수치적으로 해결하는 데 사용된다.

**행렬 연산**

SLAM 알고리즘은 주로 행렬 연산을 통해 구현된다. 예를 들어, 로봇의 상태는 종종 상태 벡터로 표현되며, 이 벡터는 로봇의 위치와 자세를 포함한다. 상태 천이(transition)와 관측(observation) 과정은 행렬 곱(matrix multiplication)을 통해 이루어지며, 이러한 연산은 로봇의 위치를 예측하거나 업데이트하는 데 사용된다.

**고유값과 고유벡터**

SLAM에서는 고유값(eigenvalue)과 고유벡터(eigenvector)가 필터링 과정이나 데이터의 차원 축소(dimensionality reduction)에서 중요한 역할을 한다. 예를 들어, Covariance Matrix의 고유값 분해(Eigenvalue Decomposition)는 상태 추정의 불확실성을 분석하는 데 사용될 수 있다.

#### 최적화 이론

SLAM은 본질적으로 최적화 문제로 볼 수 있으며, 이 과정에서 최적화 이론이 중요한 역할을 한다. 최적화는 주어진 목적 함수(objective function)를 최소화하거나 최대화하는 과정을 의미한다. SLAM에서는 이 목적 함수가 종종 로봇의 경로(path)와 지도(map) 간의 불일치를 최소화하는 형태로 정의된다.

**그래프 기반 최적화**

SLAM 문제는 자주 그래프 기반 최적화 문제로 모델링된다. 노드(node)는 로봇의 상태를, 엣지(edge)는 관측 또는 상태 간의 관계를 나타낸다. 최적화의 목표는 이 그래프에서의 오차를 최소화하는 것이다. 주로 사용하는 알고리즘으로는 g2o, Ceres Solver 등이 있으며, 이러한 방법은 그래프의 구조적 특성을 활용하여 효율적으로 최적화 문제를 해결한다.

**비선형 최적화**

SLAM 문제는 대체로 비선형 최적화 문제로 귀결된다. 이는 환경이 복잡하거나 관측 데이터가 비선형적인 경우에 특히 중요하다. 대표적인 비선형 최적화 기법으로는 가우스-뉴턴(Gauss-Newton) 방법, 르벤베르크-마콰르트(Levenberg-Marquardt) 알고리즘 등이 있으며, 이러한 방법은 로봇의 경로와 지도를 동시에 추정하는 데 사용된다.

#### 로봇 공학의 기본 개념

SLAM을 이해하기 위해서는 로봇 공학의 기본 개념들도 필수적이다. 이는 로봇의 이동성, 센서 시스템, 그리고 로봇의 제어 시스템에 대한 이해를 포함한다.

**운동학과 동역학**

로봇의 운동학(kinematics)과 동역학(dynamics)은 SLAM에서 로봇의 움직임을 모델링하는 데 중요한 역할을 한다. 운동학은 로봇의 위치와 자세를 설명하는 기하학적 관계를 다루며, 동역학은 힘(force)과 모멘트(moment)가 로봇의 움직임에 미치는 영향을 고려한다. 이들 개념은 로봇의 상태 추정 모델을 구축하는 데 필요하다.

**센서 모델링**

SLAM에서 사용하는 센서들은 각기 다른 특성과 정확도를 가지고 있으며, 이를 모델링하는 것은 정확한 상태 추정을 위해 필수적이다. 센서 모델링은 각 센서의 데이터가 로봇의 상태와 환경을 어떻게 반영하는지에 대한 수학적 표현을 제공한다. 예를 들어, 카메라, LiDAR, IMU 등의 센서는 각각 다른 종류의 데이터를 제공하며, 이를 통합하여 로봇의 상태와 환경을 추정한다.

***

관련 자료:

* Thrun, S., Burgard, W., & Fox, D. (2005). *Probabilistic Robotics*. MIT Press.
* Hartley, R., & Zisserman, A. (2003). *Multiple View Geometry in Computer Vision*. Cambridge University Press.
* Boyd, S., & Vandenberghe, L. (2004). *Convex Optimization*. Cambridge University Press.
