GNSS와 지자기 센서 결합

배경

GNSS(Global Navigation Satellite System)는 위성을 활용하여 지상 단말의 위치와 속도를 추정하는 핵심적 역할을 수행한다. 그러나 GNSS 단독 운용 시 건물, 교량, 나무 등으로 인한 신호 가림이나 멀티패스(multipath)가 발생할 수 있고, 주행 환경이 극단적으로 변동되는 경우(예: 실내 진입 등) 추정 정확도가 급락한다. 이를 보완하기 위한 다양한 센서 융합 기법이 적용되는데, 그중 지자기 센서(마그네토미터)는 GNSS가 제공하지 못하는 방향(heading) 추정 및 자세(stabilization)를 가능케 하여 GNSS 오차를 효율적으로 보완한다.

지자기 센서의 기본 측정 원리

지구는 거대한 자석으로 간주할 수 있으며, 지구 내부와 외부에 형성된 자기장의 방향과 세기는 지표면 각 지점마다 일정한 특성을 보인다. 지자기 센서는 이 자기장의 3축 성분을 측정하여 측정된 벡터를 이용해 기준 방향(예: 진북)을 추정한다.

지자기 센서 측정값:

지자기 센서가 출력하는 원시 신호는 보통 센서 좌표계(body frame) 기준의 자기장 벡터 $\mathbf{m}_{b}$로 나타낼 수 있다. 실제로는 센서 오프셋(offset), 스케일 팩터(scale factor), 주변 전자기 간섭(electromagnetic interference) 등을 보정해야 한다. 이를 일반화하면 다음과 같이 표현할 수 있다.

mb,meas=Cmb,true+b+ϵ\mathbf{m}_{b,\text{meas}} = \mathbf{C}\,\mathbf{m}_{b,\text{true}} + \mathbf{b} + \boldsymbol{\epsilon}

여기서

  • $\mathbf{m}_{b,\text{meas}}$는 지자기 센서에서 측정된 자기장 벡터(센서 좌표계)

  • $\mathbf{C}$는 센서 축 정렬 불일치와 스케일 팩터를 통합적으로 나타낸 3×3 보정 행렬

  • $\mathbf{b}$는 센서 오프셋 벡터

  • $\boldsymbol{\epsilon}$는 노이즈 벡터

GNSS와 지자기 센서 융합의 필요성

GNSS는 위치 및 속도에 대한 절대 참조를 제공하지만, 방향이나 자세 정보는 별도의 과정(예: 도플러 관측값이나 GNSS 주파수 변환 등)을 통해 얻어야 하며, 이 또한 시공간적 오차가 크다. 반면 지자기 센서는 지표면 상에서 고유한 지구 자기장을 이용해 일정 수준의 방향 추정값을 얻을 수 있다. 따라서 GNSS로부터 얻는 위치·속도 정보와 지자기 센서를 통한 방향 정보가 상호보완적으로 사용될 수 있다.

단순 융합 구조 예시

아래는 GNSS 측정값과 지자기 센서 측정값을 단순 융합하는 구조에 대한 개략도이다.

spinner

지자기 센서의 자세(Attitude) 정보 활용

지자기 센서가 측정하는 $\mathbf{m}{b}$를 지구 고정 좌표계(navigation frame, n-frame)의 자기장 벡터 $\mathbf{m}{n}$와 비교할 수 있다. 만약 자세 행렬(또는 쿼터니언) $R_{n}^{b}$이 존재한다면

mbRnbmn\mathbf{m}_{b} \approx R_{n}^{b}\,\mathbf{m}_{n}

라고 쓸 수 있다. 여기서

  • $R_{n}^{b}$는 항법 좌표계에서 센서 좌표계로 가는 회전 행렬

  • $\mathbf{m}_{n}$는 지구 자기장의 $n$-frame 표현

GNSS 정보(위도, 경도, 고도)를 바탕으로 $\mathbf{m}{n}$는 지역적으로 추정할 수 있으며, 이를 실제 지자기 센서에서 얻은 $\mathbf{m}{b}$와 비교하여 자세 정보를 갱신하거나 센서의 보정 파라미터(스케일 팩터, 오프셋 등)를 도출할 수 있다.

마그네토미터 보정(Calibration)

지자기 센서(마그네토미터)는 측정 환경에 따라 센서 내부의 자화 성분(hard-iron effect), 센서 주변 금속 구조나 부품의 영향을 받는다(soft-iron effect). 이를 정확히 보정(calibration)해야만 GNSS와의 융합에서 안정적인 heading 정보를 얻을 수 있다.

  • 하드 아이언(hard iron) 보정:

    센서 주변에 영구 자석이나 자화된 물체가 존재하면, 측정된 자기장 벡터가 일정 방향으로 편향된다. 이를 하드 아이언 효과라 부른다. 보정 벡터 $\mathbf{b}$를 사용하면 다음과 같이 표현할 수 있다.

    mb,corr=mb,measb\mathbf{m}_{b,\text{corr}} = \mathbf{m}_{b,\text{meas}} - \mathbf{b}

    여기서

    • $\mathbf{m}_{b,\text{meas}}$: 센서가 측정한 3축 자기장 벡터(보정 전)

    • $\mathbf{b}$: 하드 아이언 보정 벡터

    • $\mathbf{m}_{b,\text{corr}}$: 하드 아이언 보정 후 벡터

  • 소프트 아이언(soft iron) 보정

    센서 주변의 금속 구조나 자기장 왜곡에 의해 센서가 측정하는 각 축 방향의 감도가 서로 달라지는 효과를 말한다. 이는 일반적으로 3×3 보정 행렬 $\mathbf{C}$를 통해 모델링한다.

    mb,final=Cmb,corr\mathbf{m}_{b,\text{final}} = \mathbf{C}\,\mathbf{m}_{b,\text{corr}}

    여기서 $\mathbf{C}$는 축 정렬 오차, 스케일 팩터 등을 모두 포함한다.

  • 전체 모델

    결국 최종적으로는 다음과 같은 형태로 센서 모델을 정의한다.

    mb,final=C(mb,measb)\mathbf{m}_{b,\text{final}} = \mathbf{C}\,\bigl(\mathbf{m}_{b,\text{meas}} - \mathbf{b}\bigr)

    이는 GNSS/지자기 센서 융합 시 사용되는 마그네토미터 측정 방정식의 기초가 되며, 센서 캘리브레이션이 정확히 이루어지지 않으면 자세 추정 및 heading 보정 과정 전반에서 상당한 오차가 누적될 수 있다.

지자기 센서 측정 벡터의 이론적 표현

GNSS로부터 획득한 위도(latitude), 경도(longitude), 고도(altitude) 정보를 이용하면, 지구 자기장의 이론적 분포(예: IGRF, WMM 등)를 통해 특정 위치의 지자기 벡터 $\mathbf{m}_{n}$(항법 좌표계 기반)을 근사할 수 있다. 이를 센서 좌표계로 변환하면,

mb,predRnbmn\mathbf{m}_{b,\text{pred}} \approx R_{n}^{b} \,\mathbf{m}_{n}

와 같이 나타낼 수 있다. 여기서

  • $\mathbf{m}_{n}$: 항법 좌표계에서의 이론적 지구 자기장 벡터

  • $R_{n}^{b}$: 항법 좌표계에서 센서 좌표계로 가는 회전 행렬

  • $\mathbf{m}_{b,\text{pred}}$: 모델에서 예측되는 지자기 센서 측정치

이 예측 벡터 $\mathbf{m}{b,\text{pred}}$와 실제 측정된 $\mathbf{m}{b,\text{final}}$ 간의 잔차(residual)를 줄이는 방향으로 필터(예: 칼만 필터)에서 자세 추정, 보정 파라미터 추정 등을 수행한다.

GNSS/지자기 센서 결합 칼만 필터 개념

GNSS/INS(관성항법장치) 융합에서 흔히 적용되는 칼만 필터 구조를 간단히 변형해, 지자기 센서 정보를 반영할 수 있다. 지자기 센서는 주로 heading(방위각)에 직접적인 관측 기여를 하기 때문에 필터의 상태 벡터에 자세(roll, pitch, yaw) 항목을 명시하거나, 쿼터니언(quaternion)을 포함시킨다.

  • 상태 벡터 예시

    x=[pnvnθbm]\mathbf{x} = \begin{bmatrix} \mathbf{p}_{n} \\ \mathbf{v}_{n} \\ \boldsymbol{\theta} \\ \mathbf{b}_{m} \end{bmatrix}

    여기서

    • $\mathbf{p}_{n}$: 항법 좌표계에서의 위치

    • $\mathbf{v}_{n}$: 항법 좌표계에서의 속도

    • $\boldsymbol{\theta}$: 오일러 각(또는 쿼터니언 등)으로 표현되는 자세

    • $\mathbf{b}_{m}$: 지자기 센서 보정 벡터

  • 측정 벡터 예시

    • GNSS 관측: 위치·속도 (또는 PVT)

    • 지자기 관측: 실제 $\mathbf{m}{b,\text{final}}$과 예측 $\mathbf{m}{b,\text{pred}}$의 차이

이를 종합적으로 칼만 필터에서 상태 천이 방정식(state equation)과 측정 방정식(measurement equation)에 반영한다.

측정 방정식 및 필터 구조 확장

GNSS/지자기 센서 융합에서는 상태 벡터 $\mathbf{x}$에 대해 두 가지 주요 관측 집합이 존재한다.

  1. GNSS로부터 제공되는 위치·속도 (또는 PVT)

  2. 지자기 센서로부터 제공되는 heading (또는 3축 자기장 벡터)

이를 칼만 필터(또는 EKF, UKF 등) 관점에서 살펴보면, GNSS 관측 방정식(Measurement Equation)과 지자기 관측 방정식을 각각 별도의 측정 갱신 단계에서 활용할 수 있다.

  • GNSS 측정 방정식 예시

    zGNSS=[pnvn]+ηGNSS\mathbf{z}_{\text{GNSS}} = \begin{bmatrix} \mathbf{p}_{n} \\ \mathbf{v}_{n} \end{bmatrix} + \boldsymbol{\eta}_{\text{GNSS}}

    여기서 $\boldsymbol{\eta}_{\text{GNSS}}$는 GNSS 측정 잡음을 나타낸다.

  • 지자기 측정 방정식 예시 3축 자기장 벡터를 직접 이용하는 경우,

    zm=mb,final=C(mb,measb)\mathbf{z}_{m} = \mathbf{m}_{b,\text{final}} = \mathbf{C}\,\bigl(\mathbf{m}_{b,\text{meas}} - \mathbf{b}\bigr)

    이때 필터 내부적으로는 $\mathbf{m}{b,\text{pred}} = R{n}^{b},\mathbf{m}_{n}$와의 차이

    zmmb,pred\mathbf{z}_{m} - \mathbf{m}_{b,\text{pred}}

    를 관측 잔차로 정의하고, 이에 대응하는 잡음 공분산을 설정한다.

확장 칼만 필터(EKF)에서의 지자기 관측 처리

실제 지자기 관측 방정식은 비선형성을 갖는다. 특히 $\mathbf{m}{n}$가 지구 자기장 모델에 의해 정의되고, 회전 행렬 $R{n}^{b}$ 역시 오일러 각 또는 쿼터니언으로 표현되어 비선형적 구조를 지닌다. 따라서 EKF(Extended Kalman Filter) 적용 시 테일러 전개를 통해 적절히 선형화해야 한다.

  • 예시: 관측 예측 함수를 $h(\mathbf{x})$라 하면,

    h(x)=Rnb(θ)mn(pn)h(\mathbf{x}) = R_{n}^{b}(\boldsymbol{\theta}) \,\mathbf{m}_{n}(\mathbf{p}_{n})

    여기서 $\boldsymbol{\theta}$는 자세(roll, pitch, yaw) 또는 쿼터니언의 일부이고, $\mathbf{p}{n}$은 항법 좌표계에서의 위치로서 지구 자기장 모델 $\mathbf{m}{n}(\cdot)$에 사용된다.

  • EKF에서의 측정 오차(innovation)

    y=zmh(x^)\mathbf{y} = \mathbf{z}_{m} - h(\mathbf{\hat{x}}^-)

    여기서 $\mathbf{\hat{x}}^-$는 예측 단계에서의 상태 추정치이며, $\mathbf{z}_{m}$는 실제 지자기 센서로부터 얻은 값(보정 적용 후)이다.

  • 측정 행렬(또는 야코비) $\mathbf{H}$ 계산

    H=hxx^\mathbf{H} = \frac{\partial h}{\partial \mathbf{x}}\Bigg|_{\mathbf{\hat{x}}^-}

    이 미분 연산에는 $R_{n}^{b}$(또는 쿼터니언에서의 변환)와 지구 자기장 모델의 위치 의존성이 반영된다.

로컬 좌표계(NED vs. ENU) 정리

지자기 센서를 통한 heading 추정 시, 항법 좌표계를 어떤 형식으로 정의했는지(NED: 북-동-지하, ENU: 동-북-천장 등)에 따라 마그네토미터 기반 yaw(방위각) 해석이 달라진다. 보통 항공우주 분야에서는 NED를 많이 쓰며, 드론/자동차 분야에서는 ENU를 쓰는 경우가 많다.

  • NED 좌표계 기준 heading

    • $x$-축: 북쪽, $y$-축: 동쪽, $z$-축: 지하 방향

    • 방위각(yaw)은 시계 방향 양의 각으로 가정하는 경우가 많아, 실제 구현 시 주의가 필요

  • ENU 좌표계 기준 heading

    • $x$-축: 동쪽, $y$-축: 북쪽, $z$-축: 천장(위쪽) 방향

    • 일반적인 방위각(진북 대비 시계 방향)을 해석하기에는 ENU가 직관적인 장점이 있음

GNSS/지자기 결합에서 내부 항법 좌표계 설정은 칼만 필터의 시스템 방정식, 측정 방정식, 회전 행렬 정의 등에 직결되므로 일관성을 유지해야 한다.

틸트 보정(Tilt Compensation)

지자기 센서를 이용해 heading을 추정할 때, 기기가 완전히 수평면과 일치하지 않는 경우 마그네토미터 측정값에서 기기 자세(tilt)가 반영되어 yaw값 계산이 왜곡될 수 있다. 이를 보정하기 위해서는 기기의 roll, pitch 정보를 이용하여 지자기 벡터를 수평면으로 투영해야 한다.

  • 틸트 보정 단계

    • 기기의 pitch, roll 값을 이용해 센서 좌표계에서 측정된 $\mathbf{m}_{b,\text{final}}$를 수평 좌표계로 변환

    • 변환된 벡터의 $x$-$y$ 성분을 통해 heading(방위각) 계산

이는 GNSS/지자기 센서 융합에서, INS나 IMU(관성측정장치)의 roll·pitch 추정치를 활용하거나, GNSS 고각(altitude) 변화를 이용하여 간접적으로 기울임을 파악하는 등 다양한 방법으로 이루어진다.

실환경 적용 시 고려 사항

  • 주변 환경 간섭 및 자기 이상(local magnetic anomaly) 실제 주행 또는 항공 환경에서는 주변 철골 구조물, 차량·드론 내부 전자장치 등의 영향으로 지구 자기장이 왜곡될 수 있다. 이러한 국소적 자기 이상(local anomaly)이 큰 지역에서 마그네토미터로부터 얻는 heading 정보는 급격한 편차를 일으킬 수 있으므로, GNSS/지자기 융합 과정에서 해당 이상치를 탐지·배제하는 알고리즘이 필수적이다.

  • GNSS 신호 음영(遮蔽) 구간 처리 지하 주차장, 실내 등 GNSS 신호가 들어오지 않는 환경에서는 지자기 센서가 거의 유일한 절대 방향 정보가 될 수 있다. 하지만 지자기 센서 역시 환경 간섭이 큰 실내 환경에서는 신뢰도가 낮아질 수 있으므로, 관성센서(가속도·자이로)와의 협조적 융합이 함께 고려된다.

  • 초기화(Initialization) 융합 필터를 시작할 때, 지자기 센서로부터 초기 heading을 얻되, 이 값이 과도하게 오염되어 있으면 전체 필터 오차가 커질 위험이 있다. 이를 완화하기 위해, 특정 구간(예: 차량이 정차해 있을 때)에 센서 노이즈를 충분히 관찰·평가하고 필터 초기 상태를 신중히 결정하는 절차가 권장된다.

  • 동적 환경에서의 heading 추정 선회, 좌회전·우회전, 등 차량이나 드론의 동적 거동이 큰 상황에서도 지자기 측정이 실시간으로 반영되는데, 이때 $\mathbf{m}_{n}$의 가정(평균 지구 자기장)이 적절하지 않으면 오차가 누적될 수 있다. 보정 알고리즘이나 적응형 필터(Adaptive Kalman Filter) 기법을 이용해 이를 보완하기도 한다.

  • 다양한 주파수 대역에서의 센서 융합 GNSS 수신기는 일반적으로 1 Hz ~ 10 Hz의 측정 주기를 갖지만, 지자기 센서는 수십~수백 Hz 이상의 빠른 샘플링 속도를 가질 수 있다. 시간 동기화(time synchronization) 문제가 발생하지 않도록, 칼만 필터나 센서 융합 알고리즘에서 보간(interpolation) 또는 버퍼링을 통해 자료를 정렬한 뒤 사용한다.

  • 자기장 기반 지도(Magnetic Map) 활용 측위 정밀도를 높이기 위해, 지역별로 측정된 지자기 지도를 미리 확보하고 이를 GNSS/지자기 융합에 활용하는 방식이 연구되고 있다. 예를 들어, 특정 구간에서 측정된 지자기 패턴과 미리 구축된 자차(自車) 위치 주변의 지자기 지도를 비교함으로써, GNSS 오차가 큰 환경에서도 보조 정보를 얻을 수 있다.

Last updated