# 불확실성 표현: 분포와 오차

#### 확률적 불확실성의 기초

센서가 어떤 물리량을 측정할 때, 측정 과정에는 다양한 원인이 결합되어 불확실성이 발생한다. 예를 들어 센서의 내부 잡음, 환경적 요인, 측정 대상 자체의 시간적 변화 등이 모두 측정 결과에 영향을 준다. 이러한 불확실성을 해석하고 정량화하기 위해서는 확률적 접근법이 필수적이다. 확률적 접근에서는 관측치 혹은 추정값을 확률변수로 모형화하여, 가능한 모든 결과에 대해 적절한 분포(probability distribution)를 할당한다. 이러한 관점에서 측정치가 실제로 어떤 값을 가질 확률이 얼마인가를 서술하는 것이 핵심이다.

확률적 불확실성은 경험적으로나 이론적으로나 견고한 뒷받침이 있으며, 센서퓨전에서 흔히 사용하는 칼만 필터(Kalman filter)나 베이지안 필터(Bayesian filter) 등의 알고리즘도 확률론적 기반 위에서 동작한다. 따라서 센서 측정 과정에서 발생하는 오차(error)를 분포(distribution)로 나타내고, 이를 통해 관측치와 상태 추정값에 대한 신뢰도를 정량적으로 표현한다.

#### 확률변수와 분포

확률변수는 측정 가능한 양을 정의域에 따라 정형화한 수학적 개념이다. 불확실성이 존재하는 물리량을 확률변수로 간주할 때, 이 확률변수는 특정한 확률분포에 따라 값을 취한다. 측정값을 나타내는 확률변수를 $\mathbf{x}$라 할 때, $\mathbf{x}$는 일반적으로 다차원(random vector)일 수 있다. 예를 들어 센서가 위치와 속도를 동시에 측정한다면, 위치와 속도를 하나의 벡터 형태로 묶어 $\mathbf{x}$로 표현할 수 있다.

확률밀도함수(probability density function, PDF)를 $p(\mathbf{x})$라 하면, 이는 $\mathbf{x}$가 특정 값 근방에서 나타날 가능도를 정량화한다. 불연속적인 경우에는 확률질량함수(probability mass function, PMF)가 사용된다. 연속 케이스에서는 누적분포함수(cumulative distribution function, CDF) $F(\mathbf{x})$를 통해 특정 구간(혹은 영역) 내에서 확률변수가 값을 가질 누적 확률을 구한다.

#### 측정 오차의 정의와 분포

측정 오차를 정의하기 위해, 측정값 $\mathbf{z}$와 실제(혹은 참값)라고 가정하는 물리량 $\mathbf{x}\*{true}$ 간의 차이를 고려한다. 오차를 $\mathbf{e}$로 정의하면

$$
\mathbf{e} = \mathbf{z} - \mathbf{x}\*{true}
$$

가 된다. 센서의 잡음 및 환경적 요소가 이러한 오차에 영향을 주며, 결과적으로 $\mathbf{e}$는 확률변수로 나타난다. 센서 설계나 장비 자체의 특성에 따라 오차 분포가 정규분포(Gaussian)인 경우가 많다. 그러나 모든 센서 오차가 정규분포를 따르는 것은 아니다. 라이다(LiDAR)나 레이다(Radar) 센서의 반사 특성, 측정 구간의 비선형성, 클러터(clutter)와 같은 환경적 요인은 측정 오차를 심하게 왜곡하며, 혼합분포(mixture distribution) 혹은 편향(bias)이 있는 분포를 갖는 경우도 있다.

오차가 정규분포를 따른다고 가정하면, 오차 벡터 $\mathbf{e}$의 확률밀도함수는

$$
\begin{align} p(\mathbf{e}) = \frac{1}{\sqrt{(2\pi)^n \det(\mathbf{\Sigma})}}  \exp\Bigl(-\tfrac{1}{2}(\mathbf{e}-\mathbf{\mu})^{T}\mathbf{\Sigma}^{-1}(\mathbf{e}-\mathbf{\mu})\Bigr) \end{align}
$$

로 표현할 수 있다. 여기서 $\mathbf{\mu}$는 평균벡터(보통 측정 바이어스를 나타낼 수 있음), $\mathbf{\Sigma}$는 공분산행렬, $n$은 측정 차원수이다. 이때 측정 오차가 $n$차원이라면, $\mathbf{\Sigma}$는 $n\times n$ 크기의 대칭 양의 정부호행렬이다. 센서 오차의 평균이 0이라면 이상적 상황에서 바이어스가 없다고 보기도 한다.

#### 다변량 분포와 공분산

센서퓨전에서는 여러 센서로부터 측정된 값이 서로 결합되어 다차원적인 확률변수를 형성한다. 예를 들어 IMU(Inertial Measurement Unit) 센서는 가속도와 각속도, 그리고 GPS 센서는 위치와 속도를 측정하며, 이 값들을 하나의 확률벡터로 묶어 다뤄야 할 수도 있다. 이때 오차 분포의 공분산(covariance)을 통해 센서들 간의 오차 상관관계(correlation)를 파악할 수 있다.

공분산행렬 $\mathbf{\Sigma}$는 확률벡터 $\mathbf{x}$의 분산과 상관관계를 함께 표현한다. 공분산행렬의 대각 성분은 각 성분의 분산을, 비대각 성분은 서로 다른 성분들 간의 공분산을 나타낸다. 예를 들어 2차원 확률벡터 $\mathbf{x} = (x\_1, x\_2)^T$의 공분산행렬 $\mathbf{\Sigma}$가

$$
\begin{align} \mathbf{\Sigma} =  \begin{pmatrix} \sigma\_{11} & \sigma\_{12} & \sigma\_{21} & \sigma\_{22} \end{pmatrix} \end{align}
$$

라면, $\sigma\_{11}$은 $x\_1$의 분산, $\sigma\_{22}$는 $x\_2$의 분산, $\sigma\_{12} = \sigma\_{21}$는 $x\_1$과 $x\_2$ 사이의 공분산이다. 센서퓨전 과정에서 공분산행렬을 추정하고 갱신하는 것은 센서 오차 간의 상관성을 고려하기 위해 매우 중요하다.

#### 베이지안 관점

베이지안 접근법은 관측된 측정치와 사전 지식(prior)을 결합해 사후 분포(posterior)를 구하는 체계적 방법론을 제공한다. 센서퓨전에서 자주 사용되는 확률적 필터(예: 칼만 필터, 입자 필터, 확장 칼만 필터, 무향 칼만 필터 등)는 모두 베이지안 필터의 한 형태다. 베이지안 관점에서 상태추정 문제는 다음 단계로 요약될 수 있다: 사전 분포 $p(\mathbf{x})$와 측정모델 $p(\mathbf{z}|\mathbf{x})$가 주어졌을 때, 관측값 $\mathbf{z}$가 관측된 뒤의 사후 분포 $p(\mathbf{x}|\mathbf{z})$는

$$
\begin{align} p(\mathbf{x}|\mathbf{z}) = \frac{p(\mathbf{z}|\mathbf{x})p(\mathbf{x})}{p(\mathbf{z})} \end{align}
$$

로 업데이트된다. 여기서 $p(\mathbf{z})$는 정규화 상수이며, $\int p(\mathbf{z}|\mathbf{x})p(\mathbf{x}) d\mathbf{x}$로 계산된다. 베이지안 접근은 측정 오차뿐 아니라 시스템 모델의 불확실성까지 하나의 확률론적 틀에서 통합적으로 다룰 수 있다.

#### 오차 전파 이론

오차 전파(error propagation)는 센서가 측정한 물리량이 후속 연산(예: 좌표 변환, 시스템 모델을 통한 예측)에 의해 변환될 때, 그 과정에서 오차가 어떻게 변화하는가를 다룬다. 예를 들어 상태 $\mathbf{x}*k$가 다음 시점의 상태 $\mathbf{x}*{k+1}$로 예측되는 선형 모델이

$$
\begin{align}
\mathbf{x}\_{k+1} &= \mathbf{F}\_k \mathbf{x}\_k + \mathbf{B}\_k \mathbf{u}\_k + \mathbf{w}\_k  \\
\mathbf{z}\_k &= \mathbf{H}\_k \mathbf{x}\_k + \mathbf{v}\_k \end{align}
$$

와 같이 주어진다고 하자. 여기서 $\mathbf{w}\_k, \mathbf{v}\_k$는 각각 과정잡음(process noise), 측정잡음(measurement noise)로 모델링된 확률변수이며, 보통 평균이 0인 정규분포를 가정한다. 공분산행렬을 사용해 오차가 어떻게 전파되는지를 표현하면,

$$
\mathbf{P}\_k = \text{Var}\[\mathbf{x}\_k]
$$

라 할 때, 다음 상태의 추정오차 공분산행렬은

$$
\begin{align} \mathbf{P}\_{k+1} = \mathbf{F}\_k \mathbf{P}\_k \mathbf{F}\_k^T + \mathbf{Q}\_k \end{align}
$$

와 같이 계산된다. 여기서 $\mathbf{Q}\_k$는 과정잡음 공분산행렬이다. 측정갱신 단계에서도 측정오차 공분산 $\mathbf{R}\_k$와 칼만 이득(Kalman gain)을 결합하여 사후 공분산을 구한다.

비선형 모델의 경우 야코비(Jacobian) 행렬로 근사하여 선형화하는 확장 칼만 필터(EKF) 접근을 쓴다. 혹은 무향 변환(unscented transform)을 쓰는 무향 칼만 필터(UKF)를 통해 더 정교한 오차 전파를 모사하기도 한다. 이처럼 센서퓨전에서 사용하는 대부분의 알고리즘은 측정과 예측 과정에서 발생하는 오차가 시간에 따라 어떻게 전파되는지를 확률적으로 추적한다.

#### 정보 이론적 관점

오차와 불확실성을 다루는 또 다른 방법으로 정보 이론적 척도를 고려하기도 한다. 예를 들어 엔트로피(entropy)는 확률분포의 불확실성 정도를 나타내며, 정보량의 측면에서 해석할 수 있다. 오차 공분산행렬이 클수록 결과에 대한 불확실성이 크고, 엔트로피가 증가한다고 볼 수 있다. 서로 다른 센서가 제공하는 정보를 결합할 때, 정보량 증대 측면에서 최적의 융합이 무엇인지 연구하기도 하며, 이는 센서 배치 전략, 측정 주기 설정 등 다양한 시스템 설계 문제와도 밀접히 연결된다.

#### mermaid를 이용한 개념도 예시

{% @mermaid/diagram content="graph LR
A((실제 물리량)) --> B((측정 과정))
B --> C((확률분포<br>표현))
C --> D((센서퓨전<br>알고리즘))
D --> E((추정 상태<br>및 오차분석))" %}

확률 분포로 측정 값을 다루면, 센서퓨전 알고리즘에서 각 측정의 기여도와 신뢰도를 통합적으로 해석할 수 있다. 위 개념도는 실제 물리량이 센서를 거쳐 측정치로 나타날 때, 그 결과가 곧바로 하나의 확률분포가 되어 센서퓨전 알고리즘에서 활용되는 과정을 단순화하여 표현한 것이다.

#### 비정규 분포와 고차 모멘트

센서 오차를 단순히 정규분포(가우시안)로 가정하는 것은 실무에서 매우 편리하며, 수학적으로도 깔끔한 해석을 제공한다. 그러나 실제로는 측정 환경의 특성이나 센서 내부 구조, 외부 간섭 등의 요인으로 인해 비정규(non-Gaussian) 형태의 분포가 나타나는 경우가 많다. 이런 경우에는 측정 오차가 편향(skewness), 첨도(kurtosis) 등의 고차 모멘트(higher-order moments)를 크게 가질 수 있다.

예를 들어 레이다 센서는 먼 거리 또는 특정 각도에서 물체를 관측할 때 잡음이 불균일하게 분포하여 측정치가 극단값(outlier)을 포함하는 긴 꼬리(long-tail) 분포를 나타내기도 한다. 이때 단순 가우시안 가정으로 센서퓨전을 수행하면 실제 오차 특성을 반영하지 못하므로, 분포의 긴 꼬리 부분을 과소평가할 수 있다. 이에 따라 예측치와 측정치 사이의 오차가 매우 큰 경우가 종종 발생한다. 이 문제를 완화하기 위해서는 혼합 모형(mixture model)이나 베이지안 비모수 추정(Bayesian nonparametric)과 같은 보다 유연한 분포 모델이 고려될 수 있다.

센서퓨전 과정에서 오차 분포가 비정규라는 사실을 알고 있다면, 이를 필터 구조에서 직접 반영하거나 혹은 내부적으로 측정의 가중치를 조절하여(예: M-추정(M-estimator) 기법 등) 이상치에 대한 견고성(robustness)을 높일 수 있다.

#### 혼합 모형(Mixture Model)

혼합 모형은 여러 개의 확률분포(대개 가우시안)를 가중합하여 복잡한 확률분포를 근사하는 방법이다. 예를 들어 가우시안 혼합 모델(Gaussian Mixture Model, GMM)은

$$
\begin{align} p(\mathbf{x})  = \sum\_{i=1}^{K} \pi\_i ,\mathcal{N}(\mathbf{x}|\mathbf{\mu}\_i, \mathbf{\Sigma}\_i) \end{align}
$$

와 같이 표현한다. 여기서 $\pi\_i$는 각 혼합 성분(component)이 선택될 사전 확률(혼합 가중치)이며, 모든 $\pi\_i$의 합은 1이다. 각 성분은 다변량 정규분포 $\mathcal{N}(\mathbf{x}|\mathbf{\mu}\_i, \mathbf{\Sigma}\_i)$를 따른다고 가정한다. 이를 이용해 물체를 관측하는 특정 각도 구간에서는 분산이 크게, 다른 구간에서는 작게 모델링함으로써 비균질 잡음을 다룰 수 있다. 실제 측정된 데이터로부터 최대우도추정(MLE)이나 EM(Expectation-Maximization) 알고리즘을 사용해 파라미터($\pi\_i, \mathbf{\mu}\_i, \mathbf{\Sigma}\_i$)를 학습할 수 있다.

혼합 모형은 센서 잡음의 다중 양상을 효과적으로 표현할 수 있다는 장점이 있지만, 파라미터 수가 증가하고 학습 과정이 복잡해질 수 있다는 단점이 있다. 또한 센서퓨전 알고리즘 내부에서 이산적인 모드(mode)를 갖는 확률분포를 직접 업데이트하려면 계산량이 상당히 커질 수 있으므로, 필요에 따라 적절히 근사하거나 저차 모멘트만 사용하는 등의 방법이 요구된다.

#### 칼만 필터를 넘어: 비선형, 비가우시안 필터

센서퓨전 알고리즘으로 널리 쓰이는 칼만 필터는 선형 가우시안 모델에서 최적 추정 해를 제공한다. 그러나 실제 센서 모델과 시스템 동역학이 비선형적이며, 잡음 분포가 비정규이면 칼만 필터의 가우시안 근사는 오차를 크게 만들 수 있다. 이런 문제를 해결하기 위해 확장 칼만 필터(EKF), 무향 칼만 필터(UKF), 입자 필터(Particle Filter, PF) 등이 제안되었다.

확장 칼만 필터는 비선형 함수를 국소적으로 선형화하기 위해 테일러 전개(Taylor expansion)의 1차 항만을 사용한다. 이때 야코비(Jacobian) 행렬로 오차 공분산의 전파를 근사한다. 무향 칼만 필터는 시그마 점(sigma point)을 이용해 분포를 좀 더 잘 근사하려고 한다. 그러나 이들 방법 역시 오차 분포를 가우시안으로 가정하는 근본 한계를 가지고 있다.

입자 필터(또는 시퀀셜 몬테카를로 기법)는 측정 오차 분포나 상태 오차 분포가 어떠한 형태든지(비가우시안, 혼합분포 등) 몬테카를로 표본을 통해 확률분포를 직접 근사한다. 다만, 입자 필터는 표본 수가 충분히 많아야 안정적이며, 그에 따른 계산 비용이 크다는 단점이 있다. 그럼에도 불구하고 복잡한 오차 분포나 비선형 시스템에서 높은 유연성을 발휘한다는 장점이 있다.

#### 오차 특성의 동적 변화

센서 오차 특성은 시간적으로 일정하지 않을 수 있다. 예를 들어 IMU 센서는 온도 변화나 배터리 상태, 기구적 충격 등에 따라 오차 분산이 달라질 수 있으며, GPS 센서는 도시 지형(건물 밀집도), 위성 배치 상태에 따라 측정 정확도가 크게 달라진다. 라이다나 카메라 센서는 조명, 날씨, 반사율 차이 등 외부 조건에 민감하다. 이와 같이 오차 특성이 동적으로 변화하는 상황에서, 고정된 공분산행렬을 사용하면 측정 불확실성을 과소 혹은 과대평가하는 문제가 생길 수 있다.

이를 해결하기 위해 오차 모델의 파라미터를 실시간으로 추정하거나 적응(Adaptive) 알고리즘을 적용하기도 한다. 대표적으로 칼만 필터의 공분산 예측 단계에서, 외부 센서나 메타 정보(예: GPS 신호 품질 지표, 라이다 반사 강도, 카메라 조도값 등)를 바탕으로 $\mathbf{Q}\_k$나 $\mathbf{R}\_k$를 동적으로 조정하는 방법이 사용된다. 또는 추가적인 추정 파라미터(예: 바이어스, 스케일 팩터, 드리프트 등)를 상태벡터에 포함하여 필터 내부에서 함께 추정하기도 한다.

#### 비유클리드 공간에서의 오차 표현

현대 로봇이나 자율주행 시스템에서는 위치뿐 아니라 자세(orientation)를 측정 및 추정하는 경우가 많다. 자세는 유클리드 공간($\mathbb{R}^n$)의 벡터 연산으로 단순히 표현하기 어려운, 회전군(예: SO(3))이나 사원수(quaternion) 공간에서 정의되는 비유클리드 구조를 가진다. 이 경우 자세 오차를 나타내는 확률분포를 어떻게 정의하느냐가 문제 된다.

예를 들어 사원수 $\mathbf{q}$를 이용해 3차원 회전을 표현할 때, 단순하게 사원수 요소를 가우시안으로 놓으면 정규화 조건($|\mathbf{q}|=1$)이 깨질 위험이 있다. 이를 회피하기 위해 익스포넨셜 좌표(log-map), 로드리게스 회전 벡터(Rodrigues vector) 등을 사용해 오차를 국소적 좌표계에 매핑한 뒤, 그 좌표계에서 가우시안을 근사하는 방법을 쓸 수 있다. 혹은 무향 칼만 필터, 입자 필터 등을 통해 직접 SO(3) 공간에서 분포를 추적하기도 한다.

비유클리드 공간에서의 오차 표현은 SLAM(Simultaneous Localization And Mapping) 등의 문제에서 특히 중요하다. 로봇의 위치와 자세를 동시에 추정해야 할 때, 상태벡터가 위치(유클리드 공간)와 회전(리 군 구조)을 동시에 포함하므로, 이에 맞는 분포 및 필터 구조가 필요하다. 최근에는 대수적 구조를 보존하면서 최적화를 수행하는 방법(예: Lie group 기반 최적화)도 활발히 연구되고 있다.

#### 센서 바이어스 추정과 보정

센서 오차 중에는 우연적(random) 잡음 외에 체계적(systematic) 편차인 바이어스가 존재하는 경우가 많다. 예를 들어 IMU 자이로스코프는 회전 각속도 측정에서 일정량의 바이어스를 포함할 수 있다. GPS 수신기는 시계 동기(clock bias), 온도 변화, 안테나 오프셋 등으로 인해 위치 측정이 편향될 수 있다. 이런 바이어스는 측정값 전체에 일정하게 얹혀지기도 하고(상수 바이어스), 시간에 따라 서서히 변화(drift)하기도 한다.

센서퓨전 알고리즘에서 바이어스는 별도의 상태로 포함하여 추정하는 방법이 일반적이다. 예를 들어 IMU 기반의 확장 칼만 필터에서는 상태벡터를

$$
\mathbf{x} = \[ \mathbf{r}, \mathbf{v}, \mathbf{q}, \mathbf{b}\_g, \mathbf{b}\_a ]^T
$$

와 같이 정의해 위치 $\mathbf{r}$, 속도 $\mathbf{v}$, 자세 $\mathbf{q}$ 외에도 자이로 바이어스 $\mathbf{b}\_g$, 가속도계 바이어스 $\mathbf{b}\_a$를 동시에 추정한다. 이때 바이어스는 적절한 동역학(예: 랜덤 워크(random walk) 모델 등)으로 가정하여 필터의 예측 단계에서 갱신하고, 실제 측정치와 비교하며 점진적으로 보정한다.

#### 상태공간 확장과 계산 복잡도

센서의 오차 특성을 보다 정확히 나타내려면 상태공간을 확장해야 한다. 예를 들어 비정규 잡음 분포를 혼합 모형으로 표현한다면, 각 모드에 대한 상태를 추적하거나 모드 전이 확률 등을 별도로 관리해야 한다. 바이어스나 드리프트, 비선형 모델의 파라미터 등을 상태로 포함하면 차원이 크게 증가한다. 차원이 증가할수록 필터나 최적화 알고리즘의 계산 복잡도 또한 증가하므로, 실제 시스템 설계에서는 정확도와 계산 부담 간의 균형점을 찾아야 한다.

자율주행 차량의 센서퓨전 시스템을 예로 들면, 카메라, 라이다, 레이다, GPS, IMU 등을 통합 추정하기 위해 매우 큰 차원의 상태벡터를 고려할 수도 있다. 이 경우 부분적으로 센서마다 별도의 추정 모듈을 둔 뒤(분산 추정 구조), 결과물을 상위 레벨에서 다시 결합하거나, 혹은 동적 그래프 형태로 SLAM을 해결한 뒤 국소적 맵과 전역적 맵을 통합하는 방식 등 다양한 아키텍처가 시도된다. 이러한 아키텍처에서도 근본적으로는 각 센서의 측정 불확실성과 시스템 모델의 오차가 정교하게 표현되어야 한다.

#### mermaid를 이용한 또 다른 개념도 예시

{% @mermaid/diagram content="graph TB
subgraph 상태 및 오차 표현
A((유클리드 공간)) -->|가우시안 오차| B
C(("리 군(SO(3)) 공간")) -->|비유클리드 오차| D
B --> E((필터 업데이트))
D --> E
end

```
E --> F((센서퓨전 결과))" %}
```

위 개념도는 유클리드 공간에서의 오차(예: 위치)와 비유클리드 공간에서의 오차(예: 회전)를 함께 고려하는 센서퓨전 과정을 단순화해 보인 것이다. 센서퓨전 알고리즘은 각 공간의 특성을 반영해 분포를 업데이트하고, 최종적으로 통합된 추정 결과를 출력한다.

#### 센서퓨전에서의 이상치(outlier) 처리와 견고성(robustness)

센서 측정값 중 일부가 극단적으로 크게 벗어나거나 비정상적인 편차를 보이는 경우가 있다. 이를 이상치(outlier)라고 부르며, 비나 눈 등의 기상 조건, 강한 스파이크 신호, 센서 하드웨어 오류, 혹은 특정 물체 표면에서의 비정상 반사 등 다양한 원인으로 인해 발생한다. 이상치는 센서퓨전 알고리즘에서 큰 추정 오차를 야기할 수 있으므로 사전에 걸러내거나 그 영향을 완화하는 방안이 필요하다.

단순한 방법으로 잔차(residual) 검정을 통해 측정값이 예측치로부터 너무 먼 경우를 이상치로 판단하는 방안이 있다. 예측 오차 공분산행렬 $\mathbf{S}$가 주어졌을 때, 측정 잔차 $\mathbf{r} = \mathbf{z} - \hat{\mathbf{z}}$에 대해

$$
(\mathbf{r})^{T}\mathbf{S}^{-1}(\mathbf{r})
$$

가 임계값 이상이면 이상치로 판단하고, 해당 측정값을 배제하거나 가중치를 낮추는 방식이다. 이는 가우시안 분포를 가정할 때 카이제곱($\chi^2$) 분포를 이용해 임계값을 설정하는 전통적인 측정 게이팅(measurement gating) 기법이다. 그러나 잡음이 비정규이거나 긴 꼬리를 갖는 경우에는 이 방식만으로는 이상치를 충분히 걸러내지 못할 수도 있다.

보다 견고한(robust) 통계 기법으로 M-추정(M-estimation)을 적용할 수 있다. 예를 들어 Huber 함수, 튜키(Tukey) 함수 등을 활용해 이상치에 대한 잔차 가중을 줄이고, 정상 범위 잔차에 대해서만 최소제곱과 유사한 처리를 하는 접근이다. 이상치가 강하게 존재하는 환경에서는 RANSAC(Random Sample Consensus) 등의 방법도 사용된다. RANSAC은 측정값 중에서 일부 표본만 뽑아 모델(예: 위치, 자세, 물체 형상)을 추정한 후, 많은 수의 잔차가 작은 표본 집합을 찾는다. 이는 이상치가 비율상 소수라고 가정할 때 강인한 성능을 낸다. 다만 계산 시간이 늘고, 상황에 따라 가정이 성립하지 않을 수 있다는 단점도 있다.

#### 신뢰구간과 오차 타원(confidence ellipse/ellipsoid)

가우시안 분포를 통해 불확실성을 표현할 때, 흔히 1$\sigma$ 범위, 2$\sigma$ 범위처럼 표준편차 단위로 구간을 잡아 가시화한다. 다차원 공간에서는 등확률밀도 곡면을 타원(2차원) 혹은 타원체(3차원)로 나타낼 수 있다. 예를 들어 2차원 상태벡터 $\mathbf{x}$가 평균 $\mathbf{\mu}$, 공분산행렬 $\mathbf{\Sigma}$를 갖는다면,

$$
(\mathbf{x} - \mathbf{\mu})^{T}\mathbf{\Sigma}^{-1}(\mathbf{x} - \mathbf{\mu}) = k
$$

라는 식으로 타원을 정의할 수 있다. $k$는 특정 확률질량(probability mass)에 대응하는 값(예: 2차원에서는 5.991이 95% 신뢰구간에 해당)이 된다.

고차원 공간에서도 동일하게

$$
(\mathbf{x} - \mathbf{\mu})^{T}\mathbf{\Sigma}^{-1}(\mathbf{x} - \mathbf{\mu}) = \chi^2\_d(\alpha)
$$

의 형태로 등확률밀도 초타원(hyper-ellipsoid)을 정의할 수 있다. 여기서 $\chi^2\_d(\alpha)$는 자유도 $d$에 대한 $\chi^2$ 분포의 누적분포함수에서 백분위수 $\alpha$에 해당하는 값을 말한다. 센서퓨전에서 상태추정 결과에 대한 신뢰도를 시각화하거나, 측정값이 이 신뢰영역 안에 들어오는지 여부를 판단하는 데 활용할 수 있다.

#### 오차 공분산의 해석과 안정성

센서퓨전 알고리즘에서 반복적으로 갱신되는 공분산행렬은 추정치가 갖는 불확실성을 수치로 나타낸다. 만약 알고리즘 내부에서 모델이 잘못 설정되었거나, 측정이 과도하게 낙관적(혹은 비관적)으로 가정되면 공분산행렬이 실제 상황을 정확히 반영하지 못할 수 있다. 예를 들어 측정이 불안정한 상황인데도 공분산행렬이 계속 줄어들면, 알고리즘이 실제보다 과신된(confidence overestimated) 상태로 진행되어 큰 오차가 누적될 위험이 있다.

반대로 측정 성능이 좋은데도 공분산행렬이 충분히 감소하지 않는다면, 알고리즘이 센서 정보를 충분히 활용하지 못하고 있을 가능성이 있다. 이러한 문제를 파악하기 위해서는 실제 측정 잔차 통계와 필터 내부에서 추정되는 공분산행렬을 비교하는 끊임없는 모니터링이 필요하다. 자율주행, 로보틱스 분야에서는 이러한 모니터링 기법을 NEES(Normalized Estimation Error Squared) 검사 등으로 수행한다. NEES는 잔차가 공분산으로 잘 정규화되는지를 검사해 필터가 올바른 불확실성 모델을 유지하고 있는지를 검증한다.

#### 시계열 관점: 필터링과 스무딩

실시간으로 상태를 추정하는 과정은 필터링(filtering)이라 부르며, 과거부터 현재 시점까지의 측정치만 사용해 현재 상태의 확률분포를 계산한다. 만약 미래 시점의 측정치도 사용할 수 있다면, 이를 통해 과거 시점의 상태까지 다시 재추정하는데, 이를 스무딩(smoothing)이라고 한다. 스무딩은 오차를 더욱 줄일 수 있으나, 온라인 실시간 처리가 어렵고 측정치가 시간 순서대로 주어지는 환경에서 즉시 활용하기는 제한적이다.

센서퓨전에서 스무딩은 SLAM이나 오프라인 지도 생성 과정에서 사용된다. 예를 들어 모든 로봇 궤적과 지도 특성을 동시에 한 번에 추정하는 그래프 최적화 방식은 스무딩 접근으로 볼 수 있다. 이때 측정 불확실성을 분산 형태로 표현하고, 비선형 least-squares 문제를 반복적으로 풀어 전체 오차를 최소화한다. 오차가 비가우시안이면 기저 함수나 M-추정 기법 등을 접목해 견고한 그래프 최적화 기법을 적용하기도 한다.

#### 측정 상관관계(correlation)와 공분산 추정

서로 다른 센서가 관측한 물리량이 부분적으로나마 연동되어 있으면, 이들 측정 오차가 상호 독립적이지 않을 수 있다. 예를 들어 차량에 장착된 다중 카메라는 동일한 외부 교란(조도 변화, 진동 등)에 의해 측정 품질이 동반 악화될 가능성이 크다. 이 경우 각 센서에 대해 독립적인 오차 공분산행렬만을 따로 두기보다는, 센서 간 상관관계를 나타내는 항을 포함한 공동(합동) 공분산행렬을 다루는 편이 더 정확하다.

또한 센서퓨전 알고리즘에서 한 번 융합된 결과가 다시 다른 측정치와 융합될 때, 이미 이전에 사용된 정보가 중복 반영되어 상관관계가 형성될 수 있다. 이를 무시하면 필터 내부에서 중복 측정 정보를 여러 번 활용하게 되어 통계적으로 편향된 추정 결과를 얻을 수 있다. 이러한 문제를 해결하기 위해서는 채널별 정보 흐름을 추적하거나, 특정 센서 데이터를 분산 처리할 때 공분산 갱신 과정을 조정하는 기법(CCF: Covariance Intersection, CI 등)을 활용한다.

#### 구속조건(constraint) 기반 접근

센서 측정값이 정확히 확률분포로만 표현되는 것이 아니라, 측정값 사이에 명확한 기하학적 제약이 존재하는 경우가 있다. 예를 들어 로봇이 바닥면과 항상 수직한 자세를 유지한다거나, 물체의 링크(link)가 일정한 길이를 유지한다는 식의 구속조건이다. 이런 경우 확률분포의 차원은 구속조건을 통해 축소되며, 오차도 그 제약된 해집합(feasible set) 내에서만 의미를 갖는다.

예를 들어 로봇 매니퓰레이터 조인트 각도를 추정할 때, 각 조인트는 특정 범위 내에서만 회전 가능하므로, 확률분포를 해당 구간에 제한시켜야 한다. 또 카메라와 LiDAR를 활용해 물체 형상을 추정할 때, 물체가 강체(rigid body)라는 사실을 반영하면 임의의 변형 가능성을 줄이고 더 정확한 추정과 오차 표현을 할 수 있다.

구속조건이 선형이라면 공분산행렬을 간단히 축소할 수 있지만, 대부분의 로보틱스 문제에서는 비선형 제약이 많다. 이에 따라 라그랑주 승수나 비선형 최적화 기법, 혹은 부분공간 투영 기법 등을 통해 추정 과정에서 제약을 반영한다. 이때에도 확률론적 관점을 유지하려면, 가능한 해집합 상에서 오차 밀도가 어떻게 재분포되는지를 면밀히 살펴야 한다.

#### 센서퓨전 시스템 설계에서의 오차 예산 분배

여러 센서를 활용하는 경우, 시스템 전체의 목표 정확도를 만족하기 위해 각 센서가 어떤 수준의 정확도를 가져야 하는지 결정하는 문제도 중요하다. 예를 들어 로봇 팔에 장착된 엔코더, 힘-토크 센서, IMU, 카메라 등이 함께 동작할 때, 특정 작업에 필요한 위치/자세/힘 정밀도를 달성하기 위해서는 어떤 센서가 어느 정도 품질(분산)을 가져야 하는지, 센서 간 동기화 수준은 얼마나 엄격해야 하는지를 사전에 분석한다.

이를 오차 예산(error budget)이라고 부르며, 각 단계에서의 오차 축적을 정량화해 최종 요구사항을 역으로 추정한다. 가령 엔코더가 각도 측정에서 0.1도 이상의 바이어스를 가지면 작업 정확도가 크게 떨어진다면, 해당 바이어스가 필터에서 제때 보정 가능하도록 바이어스 상태를 별도로 추적하거나, 엔코더 품질을 향상시키는 비용을 감수해야 한다. 이러한 예산 배분은 센서 선정, 하드웨어 배치, 제어 알고리즘 설계, 센서퓨전 소프트웨어 아키텍처 등 전반적인 로봇 시스템 개발에 영향을 준다.

#### 부분적(부분치) 관측과 결측치(missing data)

실제 환경에서는 센서가 시야를 잃거나 데이터 전송 오류로 인해 측정값이 결측(missing)되기도 한다. 또는 카메라가 특정 구간만 관측 가능하고, 나머지는 관측 불가능한 영역일 수도 있다. 이런 상황에서 확률적 관점은 더욱 유용하다. 결측된 데이터에 대해서는 추정된 분포를 유지하고, 부분치(partial observation)에 대해서는 관측치가 존재하는 차원만 확률적 업데이트를 수행한다.

예를 들어 IMU와 GPS를 퓨전하는 상황에서 GPS 신호가 도심 협곡에서 일시적으로 끊기면, 그 시점에는 IMU만으로 상태를 예측하면서 오차 공분산이 점차 증가하게 된다. 이후 GPS 신호가 복귀하면, 누적된 불확실성을 반영한 상태로 업데이트를 수행한다. 이러한 과정은 센서퓨전 알고리즘에서 자연스럽게 표현된다. 상태추정 문제를 확장하여, 결측 가능성을 명시적으로 모델링하거나(숨은 마르코프 모델 등) 센서 가용성을 확률적으로 예측하는 방법도 있다.

#### 대규모 고차원 문제에서의 근사 기법

자율주행차나 대형 로봇, 복잡한 제조 공정 등에서는 수십, 수백 차원의 상태공간을 실시간으로 추정해야 할 수도 있다. 이렇게 차원이 커지면 공분산행렬 자체도 거대한 행렬이 되므로, 이를 직접 유지하고 연산하는 데 드는 비용이 매우 커질 수 있다. 예를 들어 $N$차원 상태에서 공분산행렬은 $N\times N$ 크기를 가지므로, 연산 복잡도가 $O(N^3)$ 이상으로 증가한다. 입자 필터를 사용할 경우 필요한 표본 수도 기하급수적으로 늘어난다.

이를 극복하기 위해 저랭크 근사(low-rank approximation), 희소(sparse) 구조 활용, 혹은 분산(distributed) 필터 구조를 적용한다. 예를 들어 효율적 그래프 기반 SLAM은 희소 행렬 연산을 적극 활용해 대규모 문제를 풀 수 있도록 한다. 조건부 독립(conditional independence) 구조를 잘 파악해, 필요한 부분만 국소적으로 업데이트하거나, 여러 센서 노드 간에 메시지를 교환하며 분산 칼만 필터를 구동하는 방법도 있다.

#### 센서 캘리브레이션(Calibration)과 오차 모형

센서퓨전 알고리즘에서 오차를 정확히 표현하기 위해서는 센서의 내부 파라미터와 바이어스 등을 사전에 캘리브레이션(calibration)하는 과정이 필수적이다. 캘리브레이션을 통해 센서가 측정 과정에서 발생시키는 체계적 편차(systematic bias)와 스케일 에러(scale error)를 최소화하거나, 그 크기를 추정하여 알고리즘에 반영한다. 예를 들어 카메라 캘리브레이션에서는 내부 파라미터(초점 거리, 광학 중심, 왜곡 계수 등)를 추정하고, IMU 캘리브레이션에서는 3축 가속도계와 자이로스코프 각각의 바이어스와 축 정렬 불량(misalignment)을 분석한다.

캘리브레이션 과정에서도 불확실성은 반드시 존재한다. 실제로는 제한된 조건(특정 각도, 특정 거리, 특정 온도 등)에서 수집된 데이터를 바탕으로 파라미터를 추정하므로, 다양한 환경이나 시나리오에서 동일한 파라미터가 완전히 유효하다고 장담하기 어렵다. 따라서 캘리브레이션 결과(추정된 파라미터)도 확률변수로 간주할 수 있으며, 이에 대한 분산이나 신뢰구간을 계산한다. 예를 들어 카메라 캘리브레이션에서 렌즈 왜곡 계수 $k\_1, k\_2$ 등을 최소제곱법으로 추정했다고 할 때, 그 과정에서 점 추정값뿐 아니라 공분산행렬을 함께 얻을 수 있다. 이를 통해 센서퓨전 알고리즘에 해당 파라미터의 오차를 반영하는 것이 가능하다.

특히 여러 센서의 상호 정렬(extrinsic calibration)을 수행할 때, 각 센서 좌표계를 어떻게 배치·정렬했는지에 대한 불확실성이 전체 센서퓨전 정확도에 큰 영향을 미친다. 예를 들어 카메라와 LiDAR 센서 간의 상대 자세를 정밀 측정하지 못하면, 두 센서로부터의 측정값을 융합할 때 서로 어긋난 좌표계를 사용해 추정하게 된다. 이는 후속 단계에서 시스템 전반에 오차를 퍼뜨린다. 이런 문제를 해결하기 위해 센서 간 보정(calibration)은 별도의 오프라인 실험 환경에서 매우 엄밀하게 수행하거나, 온라인에서도 추가적인 패턴 인식이나 특징 매칭 기법으로 동적 보정을 시도하기도 한다.

#### 실험적 검증과 성능 평가

센서퓨전 알고리즘에서 오차 모형이 제대로 반영되었는지를 확인하려면, 실제 측정 데이터를 활용한 검증(experimental validation)이 필수적이다. 먼저 서로 다른 센서로부터 수집된 데이터와, 가능한 한 정확한 기준 참값(ground truth)을 비교해 센서 개별의 측정 오차 통계를 구한다. 이를 통해 센서 오차 분포가 실제로 가우시안에 가까운지, 아니면 긴 꼬리나 편향이 존재하는지, 바이어스가 시간에 따라 어떻게 변하는지를 파악한다.

이후 센서퓨전 알고리즘을 구동해 상태추정 결과(예: 로봇의 위치, 자세, 물체의 형상 등)를 기준 참값과 비교하여, 전체 시스템의 추정 오차를 분석한다. 이때 평균 제곱 오차(RMSE), 최대 오차, NEES(Normalized Estimation Error Squared) 등의 통계를 통해 알고리즘의 정확도와 공분산행렬의 타당성을 함께 검증한다. 만약 추정 알고리즘에서 예상하는 공분산 크기보다 실제 오차가 더 크게 분포한다면, 시스템이 오차를 과소평가하고 있음을 의미한다.

센서퓨전 결과가 지나치게 보수적인 경우에는 추정값을 효율적으로 사용하기 어려울 수 있다. 예컨대 자율주행차가 스스로 불확실성을 필요 이상으로 크게 판단한다면, 안전 거리를 과도하게 확보하거나 불필요한 제동·감속을 할 가능성이 커진다. 반대로 불확실성을 과소평가하면 사고나 추돌 같은 위험 상황이 발생할 수 있다. 따라서 오차 평가 지표를 적절히 설정해, 알고리즘이 추정한 공분산이 실제 오차의 통계적 분포와 잘 일치하는지 주기적으로 검사한다.

#### 오프라인 시뮬레이션과 몬테카를로 방법

센서퓨전 알고리즘을 설계하고 오차 모형을 검증하기 위해, 실제 환경에서 모든 실험을 수행하기는 비용과 시간이 많이 든다. 또 센서 고장이나 극한 환경 상황을 마음대로 재현하기도 어렵다. 이때 몬테카를로 시뮬레이션(확률적 시뮬레이션 기법)이 유용하다. 사전에 추정한 센서 오차 분포(정규, 혼합 모형 등)를 기반으로 가상의 센서 데이터를 대량으로 생성하고, 해당 데이터를 센서퓨전 알고리즘에 입력하여 결과 오차 통계를 분석한다.

몬테카를로 방법에서 시뮬레이션 횟수를 많이 늘릴수록 알고리즘의 평균적 성능뿐 아니라 극단적 상황에서의 거동을 관찰할 수 있다. 예를 들어 GPS 오차를 긴 꼬리 분포로 모델링한 뒤, 극단값이 주기적으로 발생하는 시나리오를 가정해 로봇 경로 추정 성능을 살펴볼 수 있다. 이를 통해 알고리즘의 견고성을 높이기 위한 보완책을 찾기도 한다.

시뮬레이션으로 얻어진 결과는 어디까지나 모델 기반이므로, 실제 환경에서는 예상치 못한 잡음이나 비정상 상황이 추가로 일어날 수 있다. 따라서 시뮬레이션에만 의존하기보다는, 모델 오차나 추가적인 불확실성을 안전계수(safety margin) 형태로 반영하여 알고리즘을 튜닝하고, 이후 실제 환경에서 최종 검증하는 방식이 일반적이다.

#### 확률적 센서 모델 설계: 측정 방정식

센서퓨전에서는 측정값 $\mathbf{z}$와 상태 $\mathbf{x}$ 사이의 관계를 나타내는 측정 방정식(measurement model)을 정의한다. 이를

$$
\begin{align} \mathbf{z} = h(\mathbf{x}) + \mathbf{v} \end{align}
$$

처럼 표현할 수 있다. 여기서 $h(\mathbf{x})$는 이상적인 측정 관계(비선형일 수도 있음), $\mathbf{v}$는 측정 잡음을 나타낸다. 측정 잡음 $\mathbf{v}$가 어떤 분포를 따른다고 가정하느냐에 따라, 센서퓨전 알고리즘에서 사용될 우도(likelihood) 함수가 달라진다. 가우시안 잡음을 가정하면

$$
\begin{align}
p(\mathbf{z}|\mathbf{x}) \propto \exp\Bigl(-\tfrac{1}{2}( \mathbf{z}-h(\mathbf{x}) )^T \mathbf{R}^{-1} ( \mathbf{z}-h(\mathbf{x}) )\Bigr) \end{align}
$$

의 형태가 되며, 베이지안 필터에서 업데이트를 수행할 때 이 식을 기반으로 사후 분포를 계산한다. 만약 혼합 모형이나 비가우시안 모델을 쓴다면 측정 방정식에 대응하는 우도 함수 역시 좀 더 복잡한 형태를 띠게 된다.

실제 센서 특성을 정밀하게 반영하기 위해, $h(\mathbf{x})$ 자체가 센서의 내부 기하학적 관계, 투영 모델(카메라), 전자기파 전파 모델(레이다), 편이각 관계(컴파스), 방위각·거리 측정 모델(초음파 센서) 등을 포괄하도록 설계된다. 센서 퓨전에서 가장 중요한 부분 중 하나가 이 $h(\mathbf{x})$와 오차 항 $\mathbf{v}$를 얼마나 잘 설정하느냐이다. 모델이 부정확하면, 결국 오차 추정이 왜곡되고 필터 수렴 특성이 나빠진다.

#### 데이터 동기화와 타임스탬프 불확실성

센서를 여러 개 활용할 때, 각 센서가 다른 주기로 데이터를 생성하거나 다른 지연(latency)을 가질 수 있다. 심지어 동일한 센서라도 네트워크 지연, 내부 버퍼링, 인터럽트 우선순위 등으로 인해 측정 시점과 실제 처리가 완료되는 시점이 어긋난다. 이런 시간 불일치 문제는 센서퓨전 시, 서로 다른 시점의 데이터를 섞어 해석하게 만들어 오차를 일으킬 수 있다.

이를 완화하기 위해 센서마다 타임스탬프(timestamp)를 부여하고, 퓨전 알고리즘에서 필요한 시점에 대한 데이터를 보간(interpolation)하거나, 최근접 샘플을 선택하는 방법을 사용한다. 하지만 타임스탬프 자체도 불확실할 수 있다. 예를 들어 센서 내부 클록(clock)이 일정하게 드리프트하거나, 컴퓨터에서 수신된 시점에 레이턴시가 추가되어 타임스탬프 정확도가 떨어지는 상황이 발생할 수 있다.

타임스탬프를 확률변수로 간주하고, 그 오차를 센서퓨전 과정에 반영하는 접근도 가능하다. 예컨대 정확히 동기화되지 않은 센서 데이터를 사용하는 경우, 실제 측정 모델 $h(\mathbf{x}, t)$에 비해 센서가 보고하는 시간이 $\delta t$만큼 어긋나 있다고 가정할 수 있다. 이때 $\delta t$에 대한 분포를 추정하거나, 별도의 클록 동기화 알고리즘(예: PTP, NTP, 또는 자체 보정)을 통해 상대적인 시간 오차를 최소화한다.

#### 소프트웨어 프레임워크와 구현 고려사항

센서퓨전 알고리즘에서 분포와 오차를 제대로 다루기 위해서는 신호 처리, 확률론, 선형 대수, 최적화 등 폭넓은 이론적 배경이 필요하다. 구현 관점에서도 다음과 같은 요소를 잘 설계해야 한다(여기서는 단순 나열이 아닌, 주의점에 대한 서술이다).

알고리즘의 수치적 안정성(numerical stability) 보장: 매우 큰 혹은 매우 작은 공분산행렬의 값이 발생할 수 있으며, 이를 효율적으로 다룰 수 있는 행렬 연산 기법(치올레스키 분해, QR 분해 등)을 적용해야 한다. 실시간성 고려: 초당 수십\~수백 Hz로 들어오는 센서 데이터를 처리할 때, 필터 업데이트 속도가 충분히 빨라야 한다. 비가우시안 잡음 분포를 몬테카를로로 근사하려면 연산 부하가 커질 수 있으므로, 필요한 수준의 근사 기법을 고민한다. 메모리 관리: 고차원 상태나 대규모 SLAM 그래프에서는 메모리 사용량이 매우 커질 수 있으므로, 희소성(sparsity)을 살리거나 부분 필터링 기법, 분산 처리 프레임워크 등을 고려한다. 오류 내성(fault tolerance): 센서 자체의 결함이나 알고리즘 실행 중 예외 상황 발생에 대비해, 적절한 예외 처리 루틴을 마련하거나 센서 고장 진단(fault detection and isolation, FDI) 기법을 도입할 수 있다.

#### mermaid 예시: 센서퓨전 프로세스 개략

{% @mermaid/diagram content="flowchart LR
subgraph 센서 데이터
A1((Sensor1))-->A2((Filtering))
B1((Sensor2))-->B2((Filtering))
end

```
A2-->|Fusion step|C((State Estimator))
B2-->|Fusion step|C

subgraph 내부 불확실성
D1((오차분포))
D2((공분산행렬))
D1-->D2
end

C-->|결합된 분포|D1
C-->|결합된 공분산|D2" %}
```

위 개략도에서 센서별 필터링 단계를 거친 뒤 중앙의 상태 추정기(State Estimator)에서 여러 센서 정보를 종합하며, 불확실성(오차 분포 및 공분산)이 함께 갱신되는 흐름을 표현했다. 실제 구현에서는 센서별로 독립적인 필터링 과정을 수행하거나, 하나의 통합 필터 내에서 각 측정 모듈을 관리하기도 한다.

#### 다중 타겟 추적과 데이터 연관(data association)에서의 불확실성

센서퓨전은 단일 객체(또는 로봇 상태) 추정에만 국한되지 않는다. 자율주행 차량이나 감시 시스템, 군사 레이다 시스템 등에서는 동시에 여러 개의 물체(타겟)를 추적해야 할 때가 많다. 이런 문제를 다중 타겟 추적(MTT, Multi-Target Tracking)이라 한다. 여기서는 불확실성 표현이 한층 더 복잡해진다. 이유는 다음과 같다.

관측(sensor measurements)이 들어올 때, 이들이 어떤 타겟에서 유래한 것인지 또는 잡음(clutter)인지 결정하기가 쉽지 않다. 이를 데이터 연관(data association) 문제라 한다. 다양한 알고리즘(JPDA, MHT, 트랙 생멸 추정 등)이 존재하지만, 공통적으로 “관측값-타겟” 매칭에서 발생하는 불확실성을 확률적으로 모델링해야 한다.

측정 과정에서 잡음 공분산이나 센서 바이어스, 타겟 간 근접으로 인한 에코 중첩 등이 있을 수 있으며, 심지어 일부 관측값은 진짜 물체가 아닌 허위 반응(false alarm)일 수도 있다. 이와 같은 환경에서는 각 센서가 제공하는 관측값들의 확률분포뿐 아니라, 타겟 수의 변화 가능성(등장, 소멸)까지 고려해야 한다.

대표적인 예시로 JPDA(Joint Probabilistic Data Association)는 모든 타겟과 측정값을 가능한 모든 매칭 방식으로 가정한 뒤, 각각의 확률(우도)을 계산하여 결합한다. 이때 측정 오차 공분산행렬, 센서의 인식 확률(probability of detection), 클러터 강도 등이 매칭 확률에 반영된다. JPDA는 추정 알고리즘(예: 확장 칼만 필터, 칼만 필터 등)과 결합해 타겟별 상태를 확률적으로 갱신한다. 다만 타겟 수가 많아질수록 조합 폭발이 일어나므로, 효율화 기법이나 근사 방법이 자주 쓰인다.

또 다른 고급 방법으로 MHT(Multiple Hypothesis Tracking)는 시간축 전반에 걸쳐 다중 가설을 유지하며, 각 가설에서 “어떤 측정이 어떤 타겟에 대응하는가”를 다르게 추적한다. MHT는 계산량이 많고 가설 관리가 복잡하지만, 측정 오차 모델과 타겟 동역학 모델의 정확도에 따라 적절한 성능을 낸다.

#### 확장: 랜덤 유한 집합(RFS) 이론과 PHD 계열 필터

다중 타겟 추적에서 타겟의 수조차 불확실할 경우, 전통적인 베이지안 상태공간 접근은 차원이 가변적이라는 문제에 부딪힌다. 이를 해결하기 위해 랜덤 유한 집합(random finite set, RFS) 이론이 제안되었다. RFS 이론에서는 “존재하는 타겟들의 집합” 자체를 확률변수로 간주하며, 타겟들의 개수와 위치가 동시 확률분포로 묶여 있다.

RFS를 이용하면 PHD(Probability Hypothesis Density) 필터, CPHD(Cardinalized Probability Hypothesis Density) 필터, LMB(Labeled Multi-Bernoulli) 필터 등의 알고리즘을 구성할 수 있다. 예를 들어 PHD 필터는

$$
\begin{align} D(\mathbf{x}) \end{align}
$$

라 불리는 밀도 함수를 추적하며, 이는 공간상의 한 점 $\mathbf{x}$ 근방에서 “타겟이 존재할 기대 개수”를 나타낸다. 센서 측정 모델(검출 확률, 오차분포, 클러터 분포 등)을 통해 PHD를 예측하고 갱신함으로써, 시간에 따라 동적으로 변하는 다중 타겟 상태를 근사한다.

PHD 필터는 타겟들의 개수를 직접 추적하지 않고 “총 타겟 수의 기댓값”을 관리한다는 점이 특징이다. CPHD는 여기에 타겟 수 분포까지 확장해, 타겟 개수를 보다 정교하게 추정한다. LMB 필터는 타겟마다 고유 라벨(label)을 유지하면서 베른추정(Bernoulli estimation)을 결합해, 개별 타겟을 구분할 수 있도록 한다.

이 모든 방법에서 센서 잡음의 통계적 특성, 검출 누락(missed detection), 클러터, 바이어스 등 다양한 불확실성이 모델에 반영된다. 따라서 센서퓨전에서 여러 레이다, 카메라, LiDAR 등으로 얻은 측정값을 통합해 다중 타겟을 추적하려면, 각각의 센서 불확실성을 어떻게 표현하느냐가 필터 성능에 큰 영향을 미친다.

#### 확률분포 간 비교와 지표

센서퓨전 알고리즘을 개발·비교할 때, “어떤 필터가 예측한 분포와 실제 오차 분포가 얼마나 근접한가”를 평가하고 싶을 때가 있다. 단순히 평균이나 공분산의 차이만 보기보다는, 분포 자체를 비교하는 Kullback-Leibler(KL) divergence, Jensen–Shannon(JS) divergence, Wasserstein distance(지구 거리) 같은 지표를 사용할 수도 있다. 예를 들어

$$
D\_{KL}\bigl(p | q\bigr) = \int p(\mathbf{x}) \ln \frac{p(\mathbf{x})}{q(\mathbf{x})} d\mathbf{x}
$$

같은 KL 발산은 $p(\mathbf{x})$와 $q(\mathbf{x})$가 얼마나 다른지를 정량화한다. 이를 통해 “필터가 예측하는 분포 $q(\mathbf{x})$가 실제 측정 통계 $p(\mathbf{x})$와 크게 어긋나지는 않는가”를 살펴볼 수 있다.

현업에서는 고차원 분포의 형태를 직접 비교하기 어렵기 때문에, 보통은 잔차 통계(residual statistics)나 NEES 검사, 엔트로피 차이 등을 종합적으로 확인한다. 그럼에도 분포 간 거리 함수를 도입하면, 여러 종류의 센서퓨전 알고리즘 성능을 이론적으로나 실험적으로 좀 더 세밀하게 평가·비교할 수 있다.

#### 머신러닝/딥러닝 기반 센서퓨전과 불확실성

최근에는 머신러닝, 특히 딥러닝 기법을 센서퓨전에 적용하는 사례가 많다. 예를 들어 카메라 이미지로부터 객체 탐지를 수행하고, LiDAR 포인트 클라우드와 결합해 3D 위치를 추정하는 식이다. 여기서 추론 단계에서 학습 모델이 출력하는 결과에 대한 불확실성을 어떻게 추정하느냐가 중요해진다. 딥러닝 모델은 보통 확률적 출력 대신 점 추정(point estimate)을 내놓지만, 베이지안 신경망(Bayesian neural network), 드롭아웃 기반 불확실성 추정, 앙상블 방법 등으로 모델 출력을 확률분포 형태로 근사하려는 시도가 있다.

딥러닝 기반 센서퓨전에서 자주 다루는 접근 중 하나는, 모델이 예측한 오차 공분산 혹은 신뢰점수(confidence score)를 후속 확률 필터에서 활용하는 것이다. 예를 들어 객체 검출 알고리즘이 객체 중심점 위치와 가우시안 분산 파라미터를 함께 출력하면, 이를 센서퓨전 알고리즘(예: 확장 칼만 필터, 입자 필터 등)에 곧바로 입력한다. 다만 실제 딥러닝 모델이 산출하는 불확실성이 정확한 통계적 의미를 가지도록 하려면, 충분한 데이터로 학습하고, 예상치 못한 분포 외삽에도 대응할 수 있어야 한다.

#### 최적화 관점: 최소화 대상 함수의 오차 항

여러 센서 측정값을 하나의 최적화 문제로 모아놓고, 그 합을 최소화하는 방식으로 센서퓨전을 접근할 수도 있다. 예를 들어 그래프 기반 SLAM에서는 로봇의 이동에 따른 위치, 회전 변화를 노드와 엣지로 모델링하고, 센서 측정값(예: 관성센서, 비전 특징 매칭, 라이다 스캔 매칭 등)을 제약(constraint) 형태로 부여한다. 이후 각 제약의 오차 함수를 모두 합한 뒤, 이를 최소화하는 로봇 경로와 맵을 찾는다.

이때 오차 함수(error term)는 센서 측정 불확실성을 반영한 가중(weight)이나 정보행렬(information matrix) 형태로 나타낸다. 가우시안 오차를 가정하면, 대개 최소제곱 형태(오차 제곱 × 정보행렬)가 되고, 이는 로그-우도(log-likelihood)를 최대화하는 베이지안 접근과 동일한 해석을 가진다. 만약 비정규 잡음이 심하거나 이상치가 잦다면 M-추정 기법 등을 사용해 오차 항의 코스트 함수를 조절한다.

최적화가 끝난 뒤, 해당 해(추정 경로)에 대한 공분산 근사는 하이센(Hessian)이나 정보행렬을 역연산하여 구할 수 있다(크기가 너무 큰 경우 희소성 또는 근사 기법 활용). 이는 “가장 그럴듯한 추정값” 주위에서의 2차 근사(커브처)를 의미하며, 결과적으로 추정값이 얼마나 불확실한지, 어느 방향으로 더 민감한지 등을 알 수 있다.

#### 동적 환경에서의 불확실성 재평가

로봇 주변 환경이 정적인 경우에는, 한 번 맵을 잘 만들어 놓으면 오차가 상대적으로 쉽게 관리된다. 그러나 동적 환경, 예컨대 도로 위를 움직이는 다른 차량, 이동하는 보행자, 물체가 재배치되는 공간 등에서는 끊임없이 새로운 불확실성이 발생한다. 동적 객체를 고정된 장애물처럼 취급하면 모델 불일치가 커지고, 센서퓨전 과정에서 잔차가 커지거나 추정이 불안정해진다.

이를 해결하려면, 맵에 존재하는 정적 객체와 동적 객체를 분리해서 추정하거나, 동적 객체를 별도의 추적 대상(다중 타겟 추적 문제)으로 등록하여 상태를 업데이트한다. 또 이전에 측정했던 지도 정보가 잘못되었을 가능성을 열어두고, “확률적 재평가(re-assessment)”를 수행하기도 한다. 예를 들어, 과거에는 여기가 벽이라고 생각했는데 실제로는 문이 열려서 자유롭게 이동 가능해진 상황을 반영하기 위해, 맵 정보의 불확실성을 재조정하거나 가설을 업데이트해야 할 수 있다.

#### 고신뢰도 애플리케이션에서의 불확실성 관리

자율주행, 항공기 제어, 원자로봇 등 사람의 생명이나 대규모 경제적 피해와 직결될 수 있는 시스템에서는 센서퓨전 알고리즘이 99% 정도로 정확해도 부족하다. 이른바 안전성(safety) 기준을 만족하려면, “여기서 1% 오차가 발생했을 때 실제로 어떤 일이 벌어지는가?”를 분석해야 한다. 이는 통계적 퍼센트 범위를 넘어서, 최악의 상황(worst-case)을 고려하는 방향으로 이어진다.

이때 확률적 모델뿐 아니라 준최적(robust) 제어, 수리계획론, 형식 검증(formal methods) 등이 결합될 수 있다. 예를 들어 최악의 잡음 상황이나 특정 이상치 발생률을 가정했을 때도, 로봇이 안전 거리를 지키도록 보증하는 제어 알고리즘이 필요하다. 센서퓨전에서 공분산이 커지면 곧바로 속도 제한이나 회피 기동을 강화하도록 설계할 수도 있다. 다시 말해, 오차 분포를 단순히 “추정 정확도”라는 관점에서만 보는 것이 아니라, “안전 한계 및 시스템 보증”으로까지 확대해 해석하는 흐름이다.

#### 하드웨어 수준 오차와 물리적 한계

센서는 물리적인 원리에 근거해 동작하므로, 측정 과정에서 근본적으로 제거하기 어려운 한계가 존재한다. 예를 들어 아날로그-디지털 변환(ADC)에서 분해능(resolution) 한계, 신호 대 잡음비(SNR) 문제, 양자화 에러, 온도 특성 등에 따른 오차가 누적된다. 이러한 하드웨어적 요인은 센서퓨전에서 고려해야 할 오차 모형의 베이스라인을 제공한다. 여기에 현장에서 발생하는 추가 요인(진동, 충격, 전자파 간섭 등)이 더해져 실제 오차 양상이 결정된다.

물리적 한계를 다루는 과정에서도 확률적 접근이 유용하다. 예를 들어 ADC 양자화 잡음은 최소 단위보다 작은 변화가 측정값에 반영되지 않는 현상으로, 이를 균등분포(uniform distribution) 노이즈로 근사하기도 한다. 광학 센서의 포토 디텍터 소자에선 포아송 잡음(Poisson noise)이나 쇼트 잡음(shot noise)이 발생하는데, 이는 통계적으로 저광량 환경에서 그 영향이 커진다.

물리적 거동 자체가 확률적 분포를 가지기도 하며, 센서 반도체 소자의 열 잡음(thermal noise)은 통계적 성격을 갖는다. 센서퓨전에서는 이처럼 다양한 물리적 한계를 인식하고, 이를 측정 잡음 공분산 또는 기타 분포 파라미터로 통합하여 모델링한다.

#### 이벤트 기반(event-based) 센서와 비전형적 오차 모델

전통적인 센서는 일정 시간 간격마다 신호를 샘플링하여 측정값을 전달한다. 반면 이벤트 기반 센서(예: event camera)는 화소(pixel)가 밝기 변화가 있을 때만 이벤트를 발생시키므로, 시간 해상도가 매우 높으며 데이터량은 (상대적으로) 작다. 이런 센서는 전통적인 정규분포 잡음 가정과 다른 통계적 특성을 지닌다.

이벤트 카메라에서 각 이벤트는 시공간 좌표와 극성(polarity)을 가진 이산적 정보로 나타나며, 잡음 역시 픽셀 개별 특성과 환경 조도 등에 따라 강하게 비균질성을 띤다. 이벤트 발생이 희소(sparse)하게 일어나기 때문에, 오차를 단순한 가우시안 잡음으로 보기 어렵다.

이를 퓨전 알고리즘 측면에서 해석하면, “광학 흐름을 연속적으로 추정하는 전통 카메라” 대신 “이벤트 스트림을 시공간으로 적분하여 특징을 추출”하는 형태가 된다. 오차 모델도 이벤트 발생율(rate)이나 잘못된 이벤트(false event) 비율, 센서 지연 등을 반영해야 한다.

최근 연구에서는 이벤트 카메라를 기존 라이다, IMU, GPS 등과 결합해 초고속 동적 장면에서의 인식 및 추정을 시도하는데, 센서퓨전 알고리즘에서 이러한 비전형적 오차 모델을 어떻게 처리할지가 중요한 과제이다.

#### GPS-IMU-비전 센서퓨전 예시 (Python)

아래 예시에서는 가상의 GPS, IMU, 카메라 측정값을 이용해 간단한 확장 칼만 필터(EKF)를 구성한 코드 스니펫을 보여준다. GPS 측정은 위치 정보, IMU 측정은 가속도와 각속도 정보를 제공하며, 카메라는 2D 특징점으로부터 위치를 제한하는 측정 방정식을 가진다고 가정한다. 실제 적용에서는 센서 모델, 오차 공분산, 필터 로직을 훨씬 정교하게 구현해야 한다.

```python
import numpy as np

# 가상의 상태 차원: x = [px, py, vx, vy, yaw, ...]
# 단순화를 위해 2D 평면 + 회전 각도만 예시
# 공분산행렬 초기화
P = np.eye(5) * 1.0

# 상태 초기값
x = np.array([0.0, 0.0, 0.0, 0.0, 0.0])  # [px, py, vx, vy, yaw]

# 잡음 공분산 설정 (실제 환경에 맞게 조정)
Q_imu = np.diag([0.01, 0.01, 0.001])  # IMU 과정잡음
R_gps = np.diag([2.0, 2.0])           # GPS 측정잡음
R_vision = np.diag([0.5, 0.5])       # 비전 측정잡음 (예: 특징점 기반 위치 측정)

def predict_state(x, dt, ax, ay, wz):
    # IMU 측정(ax, ay, wz)를 이용해 (x, P)를 예측
    yaw = x[4]
    vx = x[2] + ax * dt
    vy = x[3] + ay * dt
    yaw_new = yaw + wz * dt

    px = x[0] + vx * dt
    py = x[1] + vy * dt

    return np.array([px, py, vx, vy, yaw_new])

def predict_covariance(P, x, dt, Q_imu):
    # 확장 칼만 필터에서 야코비 근사
    Fx = np.eye(5)
    Fx[0,2] = dt
    Fx[1,3] = dt
    # IMU 잡음을 과정잡음으로 반영
    # 간단화하여 Q를 5x5에 임베딩
    G = np.array([[0,0,0],
                  [0,0,0],
                  [1,0,0],
                  [0,1,0],
                  [0,0,1]]) 
    Q = G @ Q_imu @ G.T * (dt**2)

    return Fx @ P @ Fx.T + Q

def update_gps(x, P, z_gps):
    # GPS 측정 z_gps = [px_meas, py_meas]
    # 측정 모델: h(x) = [x[0], x[1]]
    H = np.array([[1,0,0,0,0],
                  [0,1,0,0,0]])
    z_pred = H @ x
    r = z_gps - z_pred
    S = H @ P @ H.T + R_gps
    K = P @ H.T @ np.linalg.inv(S)
    x_new = x + K @ r
    P_new = (np.eye(5) - K @ H) @ P
    return x_new, P_new

def update_vision(x, P, z_vision):
    # 비전 센서 측정 z_vision = [px_meas, py_meas] (예: 특징 매칭 통한 2D 위치)
    # 측정 모델: h(x) = [x[0], x[1]] 라고 단순 가정
    H = np.array([[1,0,0,0,0],
                  [0,1,0,0,0]])
    z_pred = H @ x
    r = z_vision - z_pred
    S = H @ P @ H.T + R_vision
    K = P @ H.T @ np.linalg.inv(S)
    x_new = x + K @ r
    P_new = (np.eye(5) - K @ H) @ P
    return x_new, P_new

# 시뮬레이션 예시
dt = 0.01
for t in range(1000):
    # IMU 측정 (가상의 노이즈 추가)
    ax_meas = 0.5 + 0.01 * np.random.randn()
    ay_meas = 0.0 + 0.01 * np.random.randn()
    wz_meas = 0.0 + 0.0005* np.random.randn()

    x = predict_state(x, dt, ax_meas, ay_meas, wz_meas)
    P = predict_covariance(P, x, dt, Q_imu)

    # GPS 측정이 10 step마다 들어온다고 가정
    if t % 10 == 0:
        gps_meas = np.array([x[0], x[1]]) + np.random.multivariate_normal([0,0], R_gps)
        x, P = update_gps(x, P, gps_meas)

    # 비전 측정이 5 step마다 들어온다고 가정
    if t % 5 == 0:
        vis_meas = np.array([x[0], x[1]]) + np.random.multivariate_normal([0,0], R_vision)
        x, P = update_vision(x, P, vis_meas)

# 최종 상태 및 공분산
print("Estimated state:", x)
print("Covariance:\n", P)
```

이 코드는 매우 단순화된 예시이므로, 실제 센서퓨전 시스템에서는 다음과 같은 점들을 추가 고려한다.

* IMU 바이어스(초기값 및 시간 변화)
* GPS 신호 품질에 따른 R\_gps 동적 조정
* 비전 측정 모델(카메라 좌표계 변환, 비선형 투영 등)
* 또한 가우시안 오차 가정이 타당한지, 혹은 이상치 처리가 필요한지

등도 점검해야 한다.

#### 결합 추정과 제어(Estimation & Control)에서의 오차 활용

센서퓨전 결과가 단순 모니터링 용도를 넘어, 실제 로봇이나 자율주행 차량을 제어하는 입력으로 직결될 때, 오차에 대한 해석이 더욱 중요해진다. 예측된 공분산이 커진다는 것은 해당 시점의 추정값을 신뢰하기 어렵다는 의미이며, 제어 알고리즘이 더 안전 위주의 동작(예: 저속 주행, 관성 제어 완화 등)으로 전환해야 할 수 있다. 반대로 공분산이 줄어들어 불확실성이 감소하면, 좀 더 공격적(accelerated) 제어를 시도해도 된다.

이런 맥락에서 LQG(Linear Quadratic Gaussian) 제어, 확률적 MPC(Model Predictive Control), 튜브 MPC, 피드백-정보 행렬 기반 제어 등이 연구되고 있다. 센서퓨전에서 추정한 상태 분포가 제어기에 즉시 반영되어, 시간에 따라 달라지는 오차의 양상을 고려하여 안정적이면서도 성능이 높은 제어 법칙을 설계한다. 비가우시안 잡음을 다루거나 이상치가 빈번히 일어나는 환경에서는 좀 더 견고(robust)하거나 세분화된 확률적 제어 방법이 필요하다.

#### 관측가능성(Observability)과 식별성(Identifiability)

센서퓨전 시스템에서 특정 상태 변수를 추정하기 위해서는, 해당 변수에 대한 충분한 관측(측정 정보)과 시스템 모델의 구조가 확보되어야 한다. 이를 수학적으로 서술하는 개념이 관측가능성(observability)과 식별성(identifiability)이다. 센서퓨전 알고리즘이 아무리 정교해도, 측정 데이터가 불충분하거나 모델의 제약이 부족하면 실제 값을 고유하게 재구성할 수 없다.

예를 들어 로봇의 2D 위치 $(x, y)$만 측정 가능하고, 방위각(yaw)이 전혀 관측되지 않는 상황을 가정해 보자. 만일 움직임 모델에도 회전 정보가 전혀 반영되지 않는다면, 상태 변수에 yaw를 포함해 놓아도 그 각도가 달라질 때 관측치가 동일하게 나타날 수 있다. 이는 yaw에 대한 관측가능성이 불충분하다는 의미이다. 실제로 센서퓨전 결과가 여러 해(解) 중 어느 것인지 구별할 수 없으므로, 오차가 크게 발생하거나 공분산행렬이 발산(커짐)하기 쉽다.

다차원 시스템에서 관측가능성을 분석하려면, 전통적인 선형 시스템 이론(오브서버블리티 매트릭스) 또는 비선형 관점에서의 랭크 조건(야코비 행렬의 랭크) 등을 고려한다. 예를 들어 확장 칼만 필터(EKF)에서 측정 모델 $h(\mathbf{x})$의 야코비이 특정 구간에서 계속해서 비(非)전치(singular) 상태를 유지한다면, 해당 변수들이 관측 불가능할 수 있다. 실제 구현 단계에서 관측가능성을 결여한 부분이 있으면, 필터 내부에서 그 변수에 대한 추정 공분산이 줄어들지 않고 커지거나, 심지어 시스템이 불안정하게 동작하기도 한다.

식별성(identifiability)은 모델 파라미터를 추정할 수 있는지를 다룬다. 센서 캘리브레이션에서 “카메라 왜곡 계수, IMU 바이어스, LiDAR-카메라 외부 정렬(extrinsic)” 등을 식별 가능한가가 예시가 된다. 만약 단일 관찰 시나리오에서 여러 파라미터가 동일한 효과를 만들어 낸다면, 그 파라미터들을 독립적으로 식별하기 어렵다. 이를 모호성(ambiguity)이라 부른다. 예를 들어 IMU 바이어스와 중력 방향, 로봇의 기울기(tilt)가 서로 얽혀 있으면 초기 구간에서는 구분해 내기 어렵다. 이를 해결하기 위해서는 특정한 운동 패턴(선형 운동, 회전, 잠깐 멈춤 등)이나 추가 센서가 필요하다.

관측가능성과 식별성 분석은 센서퓨전 알고리즘을 설계하기 이전에 필수적으로 수행되어야 할 작업이다. 필요한 센서 조합, 측정 주기, 특정한 운동 궤적(엑설턴테이션, excitation)을 어떻게 설정해야 추정하고자 하는 변수에 대한 최소한의 고유 관측 정보를 얻을 수 있는지를 결정하기 위함이다. 이러한 분석을 소홀히 하면, 실제 구현 단계에서 “특정 상태가 계속 드리프트한다”거나 “바이어스가 전혀 수렴하지 않는다”는 문제를 만날 수 있다.

#### 실험 설계(Experimental Design)와 최적 배치

센서퓨전을 고려할 때, 어떤 센서를 어디에 배치하며, 어떤 주파수(샘플링 레이트)로 측정하는지를 사전에 계획하기도 한다. 이를 실험 설계(혹은 측정 설계) 문제라고 부른다. 목표 상태(로봇 위치/자세, 객체 추적 등)에 대한 불확실성을 최소화하기 위해, 제한된 예산(센서 개수, 설치 공간, 데이터 대역폭 등) 안에서 측정 시스템을 최적화하는 과정이다.

예를 들어 다음과 같은 질문들을 하게 된다.

* IMU를 여러 개 장착하는 것이 유리한가, 아니면 고정밀 GPS를 추가하는 것이 나은가
* 카메라 시야(FOV)가 겹치는 구간을 넓히면 부정합(occlusion)은 줄어들겠지만, 전체 시스템 복잡도가 올라가지 않는가
* LiDAR 센서의 설치 고도를 낮추면 바닥면 해상도가 좋아지지만, 차량 주변의 객체 상단부 검출 능력은 떨어지지 않는가
* 측정 주기(샘플링 레이트)를 올리면 추정 지연(lag)은 줄어들지만, 연산 비용이 커지고 노이즈도 크게 반영되지 않는가

이러한 문제는 시뮬레이션이나 사전 실험을 통해, 측정 공분산 구조와 예측 오차 전파 모델을 결합해 가상 시나리오를 돌려봄으로써 접근할 수 있다. 경우에 따라서는 정보 이론적 측도(예: 미분 엔트로피 감소량, Fisher information)를 사용해 센서 배치 혹은 운동 경로를 설계하기도 한다.

#### 추가 연구 동향과 오픈 이슈

센서퓨전에서 오차와 분포를 표현하는 방식은 끊임없이 발전하고 있다. 일부 주요 동향은 다음과 같다.

* **딥러닝 기반 불확실성 정량화**: 신경망 출력에 대한 예측 분포 혹은 신뢰 구간을 추정하는 기법들이 활발히 연구되며, 센서퓨전에서도 여러 모달(이미지, 레이다, LiDAR) 정보가 딥러닝 모델을 통해 병합되는 사례가 늘고 있다.
* **에지(edge) 컴퓨팅, 임베디드 환경**: 대형 GPU나 클라우드 서버 없이, 로봇 혹은 차량 내 제한된 자원에서 확률 필터(또는 NN 추론)를 구동해야 하는 요구가 커지고 있다. 이에 따른 저복잡도 근사 필터, 모델 경량화 기법(프루닝, 양자화 등)이 주목받는다.
* **견고 제어와 연계된 설계**: 센서퓨전 결과의 불확실성을 제어 알고리즘이 즉각 반영할 수 있도록, ‘견고 제어(robust control)’나 ‘선제 대응 제어(proactive control)’와의 결합이 연구되고 있다.
* **상호작용(dynamics)이 큰 환경**: 무질서하게 움직이는 군집 환경(드론 편대, 군집 로봇, 물류창고 자동화 등)에서, 다수 센서 간의 동적 상관관계, 통신 지연, 실패 확률을 함께 고려한 확률 모델이 필요하다.
* **안전성 및 인증**: 자율주행차나 의료 로봇, 항공기 등 안전 필수(Safety-critical) 분야에서는 오차 분석만으로 부족하고, “오작동 확률이 얼마 이하인가?”를 체계적으로 증명하는 요구가 높아지고 있다. 형식 기법(formal methods)과 확률론이 결합된 형태로 발전하는 추세다.

#### 구현시 주의할 점(추가)

센서퓨전 알고리즘의 불확실성 표현이 올바르게 작동하려면, 구현 단계에서 다음과 같은 점들을 추가로 주의해야 한다.

* **데이터 변환 파이프라인**: 센서 수신 → 필터 업데이트 → 로그 저장 과정에서 좌표계 변환, 시간 동기화, 단위 변환(미터 ↔ 센티미터 등) 등의 사소해 보이는 처리 오류가 추정치를 상당히 왜곡할 수 있다. 모든 처리를 체계적으로 문서화하고, 단위 테스트를 통해 검증한다.
* **공분산행렬 안정성**: 수치적으로 매우 작은 값(혹은 큰 값)이 공분산행렬에 들어가면 역행렬 계산 시 수치불안정이 발생할 수 있다. 이를 방지하기 위해 축차 정규화(regularization)나 수치적 재보정(reconditioning)을 수행한다.
* **실험적 튜닝과 모수 조정**: 측정 잡음 공분산 $\mathbf{R}$, 과정잡음 공분산 $\mathbf{Q}$, 바이어스 추정 파라미터, 필터 게인 등을 이론적으로 설정해도, 실제 현장 측정값과는 다를 수 있다. 소규모 파일럿 실험을 통해 튜닝 파라미터를 점진적으로 조정하는 과정이 필요하다.
* **디버깅 도구**: 실제 로봇이나 차량에서 로그 데이터를 수집한 뒤, 오프라인 재생(로스백(Rosbag) 재생, 맞춤형 시뮬레이터 등)으로 센서퓨전을 재현하면서 잔차 및 공분산 변화를 시각화하는 디버깅 도구를 마련하면, 오차 발생 원인을 추적하는 데 큰 도움이 된다.

#### 전체 개념도(mermaid)

{% @mermaid/diagram content="flowchart TB
subgraph 불확실성 표현
A((오차 분포)) -->|정규,혼합 등| B((공분산행렬))
B --> C((베이지안 필터, MHT 등))
end

```
subgraph 센서
S1((카메라))
S2((LiDAR))
S3((IMU))
S4((GPS))
end

S1 --> A
S2 --> A
S3 --> A
S4 --> A
C --> D((추정 결과/상태))

D --> E((제어/SLAM/로보틱스))" %}
```

위 개념도는 다양한 센서의 측정값이 각각의 분포를 형성하고, 센서퓨전 알고리즘(베이지안 필터, 다중 타겟 추적 기법 등)이 이들 불확실성을 종합해 최종 상태 추정을 수행하는 과정을 간단히 나타낸다. 그 결과는 로봇 제어나 SLAM, 다른 고차원 문제의 입력으로 넘어가며, 필요한 경우 다시 오차 분석이 반복된다.
