DOI QR코드

DOI QR Code

Machine Learning-Based Filter Parameter Estimation for Inertial/Altitude Sensor Fusion

관성/고도 센서 융합을 위한 기계학습 기반 필터 파라미터 추정

  • Hyeon-su Hwang (Aerospace Control & System Laboratory, Department of Aerospace Engineering, Inha University) ;
  • Hyo-jung Kim (Aerospace Control & System Laboratory, Department of Aerospace Engineering, Inha University) ;
  • Hak-tae Lee (Aerospace Control & System Laboratory, Department of Aerospace Engineering, Inha University) ;
  • Jong-han Kim (Aerospace Control & System Laboratory, Department of Aerospace Engineering, Inha University)
  • Received : 2023.11.30
  • Accepted : 2023.12.26
  • Published : 2023.12.30

Abstract

Recently, research has been actively conducted to overcome the limitations of high-priced single sensors and reduce costs through the convergence of low-cost multi-variable sensors. This paper estimates state variables through asynchronous Kalman filters constructed using CVXPY and uses Cvxpylayers to compare and learn state variables estimated from CVXPY with true value data to estimate filter parameters of low-cost sensors fusion.

Keywords

Ⅰ. 서론

최근 시장에서는 저가의 다종 센서 융합을 통해 고가형 단일 센서의 한계를 극복하고 비용 절감을 도모하려는 연구가 활발하게 진행되고 있다 [1], [2]. 일반적으로, 센서는 설계 시 고려된 운용점에서 안정적인 성능이 보장되므로 단일 센서만 운용할 경우 환경이 변화함에 따라 불확실성이 높은 데이터가 측정될 수 있다. 그러나 다종 센서를 융합하여 사용할 경우 하나의 센서가 설계점에서 벗어나더라도 다른 센서를 통해 신뢰성 높고 안정적인 데이터를 얻을 수 있다.

위치 정보를 정확하게 추정하기 위해 GNSS와 관성 센서를 융합하는 방법 뿐만 아니라, 영상, 관성, 거리 등 다양한 센서를 융합하는 연구가 활발하게 진행되고 있다. 한 연구에서는 도심항공교통 (UAM; Urban Air Mobility)의 안정적인 운용을 위해 GNSS와 다중 관성 센서를 실시간으로 최적 분배하는 방법론을 제시하였다 [3]. 또 다른 연구에서는 LiDAR (Light Dete- ction and Ranging) 센서, 영상 센서, 관성 센서들을 융합하여 다중 무인비행기 (UAV; Unmanned Aerial Vehicle)의 위치 및 상대 위치를 실시간으로 추정하였다 [4]. 이러한 연구들은 각 센서의 특징에 맞는 필터를 설계하여 목표 성능을 보였으나, 시행착오를 통한 파라미터 민감성 분석이 요구되는 한계가 있다.

본 논문에서는 다종 센서의 융합을 위해 기계 학습을 이용하여 필터 파라미터를 추정하는 방법론을 제시하였다. 본 논문에서 제시하는 센서 융합 방법론의 전체 과정은 그림 1과 같다. 다중 센서로 구성된 고가 센서의 출력값을 참값 데이터로 사용하고 학습 대상 데이터에 저가 센서의 출력값을 사용한다. CVXPY를 이용하여 구성된 비동기형 칼만 필터를 통해 상태변수를 추정하고 cvxpylayers을 사용하여 CVXPY로부터 추정된 상태 변수들을 참값 데이터와 대조하고 학습시켜 저가형 센서 융합의 필터 파라미터를 추정한다. 이 기법을 통해 실제 데이터를 사용하여 자동으로 필터 파라미터 추정하며, 저가의 센서 구성을 고가의 센서들의 성능만큼 개선시킬 수 있다.

HHHHBI_2023_v27n6_884_f0001.png 이미지

그림 1. 기계 학습 전체 블록 선도

Fig. 1. Block of Machine Learning Progress

Ⅱ. 본론

1. 비동기 필터

그림 2와 같이 비동기 필터는 이종 센서들로부터 획득한 서로 다른 주기의 측정치들을 융합하여 상태 변수를 추정하는 기법으로, 평균 제곱근 오차 (RMSE; Root Mean Square Error) 측면에서 최적해를 산출한다. 주기가 느리지만 정확한 센서 데이터를 빠른 주기로 획득할 수 있는 장점이 있다 [5]. 해당 필터를 사용함으로서 주기가 다르더라도 업데이트된 시점에서 추정치를 사용하지 않고, 업데이트된 최신 데이터를 사용하는 방식이다.

HHHHBI_2023_v27n6_884_f0002.png 이미지

그림 2. 비동기 필터 개념도

Fig. 2. Asynchronous Filter Conceptual Map

비동기 필터는 식 (1)을 통해 추정 해를 예측하고, 칼만 필터 기반의 식 (2)를 통해 갱신한다. 식 (1)의 q는 시스템 오차를 나타내는 공분산 행렬이며 일반적으로 반복적인 시행오차를 통해 찾아 최적의 필터 파라미터를 추정한다. 하지만, 본 논문에서는 기계 학습을 이용하여 최적의 q를 산출하고자 한다.

\(\begin{align}\begin{array}{l}\hat{x}_{k \mid k-1}=\Phi \hat{x}_{k-1} \\ Q=\left[\begin{array}{ll}\left(t_{k}-t_{l}\right)^{3} / 3\left(t_{k}-t_{l}\right)^{2} / 2 \\ \left(t_{k}-t_{l}\right)^{2} / 2 \; t_{k}-t_{l}\end{array}\right] q \\ P_{k \mid k-1}=\Phi P_{k} \Phi^{T}+Q\end{array}\end{align}\)       (1)

\(\begin{align}\begin{array}{l}S H=\left[H_{k}+S_{k}^{T} P_{k \mid k-1}^{-1}\right] \\ R P=\left[\bar{R}_{k}-S_{k}^{T} P_{k \mid k-1}^{-1} S_{k}\right] \\ P_{k}^{-1}=P_{k \mid k-1}^{-1}+S H^{T} R P^{-1} S H \\ \hat{x}=\hat{x}_{k \mid k-1}+P_{k} S H^{T} R P^{-1}\left(z_{m}-h\left(\hat{x}_{k \mid k-1}\right)\right) \\ z_{m}=\left[z_{s k r_{m}, l}^{T}, z_{\in_{m, n}}^{T}\right]^{T}\end{array}\end{align}\)       (2)

2. cvxpylayers을 이용한 학습 기반 필터 파라미터 추정

기계 학습 모델을 구성하기위해 오픈 소스 파이썬 기반 모델링 언어인 CVXPY와 cvxpylayers를 사용하였다. CVXPY는 블록 최적화 문제 해결을 위한 언어이며, 원하는 조건을 기입 후 그에 만족하는 변수들을 얻을 수 있다 [6]. 또한, 해석적으로 미분이 불가능한 경우에도 수치적 미분을 통해 최적화 문제를 해결할 수 있는 특징이 있다. cvxpylayers은 CVXPY를 사용하여 PyTorch, JAX 및 TensorFlow에서 미분 가능한 볼록 최적화 레이어를 구성하며, 매개변수화된 블록 최적화 문제를 해결한다 [7].

본 논문에서 기계 학습을 통해 해결하고자 하는 동역학은 식 (3)과 같다. xk는 비동기 필터와 칼만 필터에서 추정하고자 할 상태 변수를 나타낸다. Φ는 비동기 필터의 상태천이행렬이고, H는 관측 행렬을 의미한다.

\(\begin{align}\begin{array}{l}x_{k}=\left[\begin{array}{lll}P_{z} & V_{z} & A_{z}\end{array}\right]^{T} \\ z_{k}=\left[\begin{array}{ll}P_{z, R A} & A_{z, I M U}\end{array}\right]^{T} \\ x_{\text {true }}=P_{z, \text { GNSS }} \\ \Phi=\left[\begin{array}{ccc}1\left(t_{k}-t_{l}\right) & \frac{1}{2}\left(t_{k}-t_{l}\right)^{2} \\ 0 & 1 & \left(t_{k}-t_{l}\right) \\ 0 & 0 & 1\end{array}\right] \\ \widehat{H}=\left[\begin{array}{lll}1 & 0 & 0 \\ 0 & 0 & 1\end{array}\right] \\ H=\hat{H}^{T} A^{-1} \\ Q=[3 \times 3] \\ R=[2 \times 2] \\\end{array}\end{align}\)       (3)

CVXPY를 통해 해결하고자 하는 문제는 식 (4)와 같다. 구속 조건에는 복잡한 비동기 필터와 칼만 필터를 포함하는 식으로 구성하였고 이를 통해 센서의 잡음까지 고려하여 최적인 상태 변수인 xk, wk, vk를 추정한다.

\(\begin{align}\begin{array}{l}\underset{x, w, v}{\operatorname{minimize}} \sum_{t=0}^{N-1} w_{k}^{T} Q w_{k}+v_{k}^{T} R v_{k} \\ \text { subject to }: x_{k+1}=\Phi x_{k}+w_{k} \\ y=H x_{k}+v_{k} \\ \left|x_{k, t r u e}-x_{k}\right| \leq 0.01 m \\ Q \geq 0\end{array}\end{align}\)       (4)

본 논문에서 구성한 cvxpylayers의 매개 변수는 CVXPY로부터 계산된 xk와 참값 데이터인 xtrue이다. cvxpylayers는 입력된 데이터들을 서로 대조하여 대상 데이터와 참값 데이터의 차이를 최소화하는 필터 파라미터인 Q, R, q를 CVXPY로 업데이트하며 반환한다. 이러한 반복 과정을 통해 학습 모델은 최적화된 필터 파라미터를 학습하며, 최종 결과물은 우수한 품질의 필터 파라미터로 구성된다.

3. 학습을 위한 실험 데이터 수집

Pz,GNSS는 그림 3과 같은 센서 구성을 통해 획득하였다. Microstrain 3DMGQ7은 GNSS와 관성 항법 장치(INS; Inertial Navigation System)가 강결합 된 센서이며 고도 오차 약 1 m의 성능을 가진다. 또한, MRD 1000-v2는 RTK로 GNSS의 위치 정보를 보정시켜 오차를 약 0.02 m까지 낮춘다. Az,IMU는 그림 4 좌측의 Phidgets 1044_1 IMU을 통해 획득하였고, Pz,RA는 그림 4 우측의 RA센서인 Ainstein US-D1를 이용하여 획득하였다.

HHHHBI_2023_v27n6_884_f0003.png 이미지

그림 3. Microstrain社의 3DMGQ7-GNSS/INS와 MBC社의 RTK MRD 1000-v2

Fig. 3. Microstrain 3DMGQ7-GNSS/INS and MBC RTK MRD 1000–v2

HHHHBI_2023_v27n6_884_f0004.png 이미지

그림 4. Phidgets社의 1044_1 IMU와 Ainstein社의 RA US-D1

Fig. 4. Phidgets 1044_1 IMU and Ainstein RA US-D1

저가형 IMU만 이용하여 위치 정보를 추정하면 오차가 누적되어 드리프트가 발생하므로 이를 보정시키기 위해 RA를 사용하였다. 표 1의 센서 사양에 따라 Pz,GNSS와 Pz,RA는 100 Hz, Az,IMU는 125 Hz 주기로 획득하였다.

표 1. 실험 센서 제원

Table 7. Specification of Sensors

HHHHBI_2023_v27n6_884_t0001.png 이미지

위에서 소개한 센서들의 데이터를 획득하기 위한 구성은 그림 5 및 그림 6과 같다. US-D1은 지면과의 거리를 측정할 수 있도록 마운트 하단에 장착하였고 3DMGQ7 및 1044_1는 마운트 상단에 장착하였다. 3DMGQ7와 US-D1는 임베디드 보드인 STM F7보드로 데이터를 수집 후 라즈베리파이로 재송신한다. 그 후 무선으로 SSH 파일 전송 프로토콜 (SSH; SSH File Transfer Protocol)로 데이터를 저장하였다. 다만, 1044_1은 제작사에서 임베디드 시스템에 대한 데이터 시트를 제공하지 않아 PC로 유선 연결하여 센서 값을 수집 및 저장하였다.

HHHHBI_2023_v27n6_884_f0005.png 이미지

그림 5. 실험 데이터 수집 장치 설계도

Fig. 5. Experimental Data Collection Device Blueprint

HHHHBI_2023_v27n6_884_f0006.png 이미지

그림 6. 실험 데이터 수집 장치

Fig. 6. Experimental Data Collection Device

실험 방법은 15초간 도수 운동을 통해 데이터를 수집하였고 그 결과 그림 7과 같은 결과를 얻을 수 있었다. 푸른 선은 3DMGQ7에서 획득한 값을 나타내고, 붉은 선은 각각 US-D1, 1044_1에서 획득한 값을 나타낸다.

HHHHBI_2023_v27n6_884_f0011.png 이미지

그림 7. 수집 데이터 그래프

Fig. 7. Collected Data Graph

4. CVXPY 기반 기계학습 수행 결과

그림 8은 그림 7의 데이터를 이용하여 300번의 학습 후 산출된 Q, R로 계산한 결과이다. 그림 8의 고도 그래프의 붉은색 데이터가 xtrue의 성분인 푸른색 데이터와 유사한 것을 알 수 있다. 그림 9는 학습된 Q, R로 계산한 고도 값과 참값 데이터와 차이를 나타내는 그래프이며 차이가 약 0.1 m이하임을 알 수 있다. 따라서 해당 학습 모델로 구성된 기계 학습을 통해 저가의 센서 구성이 고가의 센서구성의 성능을 따른다는 것을 알 수 있다. 그림 10과 그림 11은 학습 과정 중 Q, R의 변화 그래프이며 학습 차수가 높아질수록 Q, R이 수렴하는 것을 알 수 있다. 식 (5)는 본 논문의 학습 모델로 산출한 최적 비동기형 칼만 필터의 파라미터 Q, R의 값이다.

HHHHBI_2023_v27n6_884_f0007.png 이미지

그림 8. 학습 결과의 파라미터를 사용한 고도/가속도 그래프

Fig. 8. Altitude/Acceleration Graph Using Learning Results Parameters

HHHHBI_2023_v27n6_884_f0008.png 이미지

그림 9. 학습 결과의 고도 데이터와 참값 데이터 차이 그래프

Fig. 9. Difference between True Data and Altitude Data of Learning Results

HHHHBI_2023_v27n6_884_f0009.png 이미지

그림 10. 학습 결과의 Q 수렴 그래프

Fig. 10. Q Convergence Graph of Learning Results

HHHHBI_2023_v27n6_884_f0010.png 이미지

그림 11. 학습 결과의 R 수렴 그래프

Fig. 11. R Convergence Graph of Learning Results

\(\begin{align}\begin{aligned} R & =\left[\begin{array}{ccc}0.6543803 & 0.104371764 \\ 0.104371764 & 0.017135952\end{array}\right] \\ Q & =\left[\begin{array}{ccc}0.342058 & 0.24873975 & 0.008302485 \\ 0.24873975 & 0.22355226 & 0.06745174 \\ 0.008302485 & 0.06745174 & 0.029754804\end{array}\right]\end{aligned}\end{align}\)       (5)

Ⅲ. 결론

본 논문에서는 비동기형 칼만 필터의 파라미터를 기계학습을 통해 산출하였다. 기계학습에는 참값 데이터와 대상 데이터가 필요하며 실험을 통해 획득하였고, 두 데이터 사이의 오차를 최소화하기 위한 필터 파라미터를 CVXPY와 cvxpylayers을 이용한 학습을 통해 추정하였다. 그러나 학습 결과로 산출된 비동기형 칼만 필터의 파라미터가 모든 동역학적 상황에서 적용할 수 있는지는 검증이 필요하다. 향후 연구에서는 2차원으로의 확장을 위한 비동기필터 재설계 및 학습된 파라미터의 검증을 수행할 예정이다.

Acknowledgments

본 논문은 2023년 정부(과학기술정보통신부)의 재원으로 한국연구재단 스페이스챌린지사업 (NRF-2022M1 A3B8074247)와 (RS-2023-00258573)의 지원을 받아 수행된 연구입니다.

References

  1. H. H. Hwang, S. S. Han, H. J. Kim, H. M. Jeon, and J. H. Kim, "Learning-based Filter Optimization for Reusable Launch Vehicles," in Proceeding of the 1st Space Conference, Yeosu, pp. 126, Jun. 2023.
  2. J. Y. Kim, M. G. Song, J. H. Kim, and D. I. Lee, "GPS-free Localization Based on Multiple IMUs and Federated Filter Fusion," The Journal of Insitute of Control, Robotics and System, Vol. 26, No. 9, pp. 708-714, Jul. 2020. https://doi.org/10.5302/J.ICROS.2020.20.0069
  3. J. H. Choi, K. C. Marsim, M. W. Jeong, K. H. Ryoo, J. W. Kim, and H. Myung, "Multi-unmanned Aerial Vehicle Pose Estimation Based on Visual-inertial-range Sensor Fusion," The Journal of Institue of Control, Robotics and Systems, Vol. 29, No. 11, pp. 859-865, Nov. 2023. https://doi.org/10.5302/J.ICROS.2023.23.0135
  4. G. H. Nam, J. S. Lee, D. W. Kim, D. C. Min, and J. Y. Lee, "Real-Time Continuity Sub-Optimal Allocation for Decentralized Kalman Filter based GNSS/Multi IMUs Integrated Navigation System," in Proceeding of KSAS(The Korean Society for Aeronautical and Space Sciences) 2021 Spring Conference, Samcheok, pp. 187-188, Jul. 2021.
  5. J. S. Park, Y. Y. Kim, S. H. Park, and Y. H. Kim, "Asynchronous Guidance Filter Design Based on Strapdown Seeker and INS Information," The Journal of Korea Society for Aeronautical and Space Sciences, Vol. 48, No. 11, pp. 873-880, Oct. 2020. https://doi.org/10.5139/JKSAS.2020.48.11.873
  6. CVXPY Official Webpage [Internet]. Available: http://cvxpy.org
  7. A. Agrawal, B. Amos, S. Barratt, S. Boyd, S. Diamond, J. Z. Kolter, "Differentiable Convex Optimization Layers," in Proceeding of 33rd Neural Information Processing Systems Conference (NeurIPS 2019), Vancouver, Canada, Dec. 2019.