DOI QR코드

DOI QR Code

Stable Zero-Velocity Detection Method Regardless of Walking Speed for Foot-Mounted PDR

  • Cho, Seong Yun (Associate Professor, Department of Robotics Engineering, Kyungil University) ;
  • Lee, Jae Hong (Ph.D. Student, Department of Mechanical and Aerospace Engineering / ASRI, Seoul National University) ;
  • Park, Chan Gook (Professor, Department of Mechanical and Aerospace Engineering / ASRI, Seoul National University)
  • Received : 2020.01.28
  • Accepted : 2020.02.11
  • Published : 2020.03.15

Abstract

In Integration Approach (IA)-based Pedestrian Dead Reckoning (PDR), it is important to detect the exact zero-velocity of the foot with an Inertial Measurement Unit (IMU). By detecting zero-velocity during the stance phase of the foot touching the ground and executing Zero-velocity UPdaTe (ZUPT) at the exact time, stable navigation information can be provided by the PDR. When the pace is fast, however, it is not easy to accurately detect the zero-velocity because of the small stance phase interval and the large signal variance of the corresponding interval. Incorrect zero-velcity detection greatly causes navigation errors of IA-based PDR. In this paper, we propose a method to detect the zero-velocity stably even at high speed by novel buffering of IMU's output data and signal processing of the buffer. And we design a PDR based on this. By analyzing the performance of the proposed Zero-Velocity Detection (ZVD) algorithm and ZVD-based PDR through experiemnts, we confirm that the proposed method can provide accurate navigation information of pedestrians such as firefighters in the indoor space.

Keywords

1. INTRODUCTION

실내 환경에서 보행자의 위치정보에 대한 관심과 연구는 다양한 목적과 방향으로 이어져오고 있다. 위치기반서비스(LBS: Location-based Services) 라는 연구분야는 지난 20여년 동안 측위/항법, 공간정보, 물류, 광고, 안전 등의 목적으로 그 영역을 확장하고 있으며, 특히 측위를 위해서는 무선통신 인프라 기반으로 그 기능을 연구하고 상용화하고 있다. 그러나 소방관이 화재진압, 요구조자 구조, 등의 목적으로 활동하는 실내 환경에서는 무선통신 인프라를 사용할 수 없으므로 소방관의 측위/항법은 인프라가 아닌 센서 기반으로 요구조건을 만족하도록 해야한다. Pedestrian Dead Reckoning (PDR)은 이런 특성이 있는 항법 시스템으로 요구와 조건에 맞는 연구 분야이다. PDR은 관성센서를 몸에 부착하고 보행자의 위치를 추정하는 항법기술로 저가형 관성센서를 사용하더라도 보행자의 걸음과 같은 보행 특성 정보를 사용함으로써 Inertial Navigation System (INS)의 단점인 오차의 누적 현상을 크게 줄인 보행자용 관성항법시스템이다(Cho & Park 2006, Ju et al. 2016).

PDR의 연구방향은 크게 두 가지로 분류할 수 있다. 하나는 Parametric Approach (PA) 이고, 다른 하나는 Integration Approach (IA)이다. PA는 걸음을 검출하고, 보행 특성 정보를 기반으로 보폭을 결정하고, 이동방향을 계산한 다음 이 정보를 결합하여 위치를 갱신하는 방법으로, Inertial Measurement Unit (IMU)를 보행자에 장착하고 항법을 수행할 때 INS 알고리즘보다 좋은 성능을 기대할 수 있는 알고리즘으로 초창기 PDR의 연구방향이기도 하다. 이 기법의 장점은 IMU를 다양한 곳에 장착할 수 있으며, 장착 부위에 따라 다른 알고리즘을 사용해야 하지만 INS 보다 오차의 발산 속도가 낮다는 것이다. 그러나 다양한 보행 형태를 갖는 보행자의 경우에 보행 형태를 정확하게 인지하지 못하면 측위 오차가 증가할 뿐만 아니라 이동궤적의 형태도 알 수 없게 된다(Cho & Park 2006).

이와 달리 IA는 IMU를 신발에 장착하고 INS와 같은 알고리즘을 사용하여 항법정보를 갱신한다. 저가형 IMU를 사용하는 경우 INS 알고리즘으로는 단시간에 오차가 크게 발산하게 된다. 이 문제를 해결하기 위해 발이 지면에 닿는 Stance Phase (StP) 동안에 발의 0속도를 검출하고 Zero-velocity UPdaTe (ZUPT)를 실행하여 INS의 오차를 추정 보상하게 된다. 이를 통해 IA 기반 PDR은 비교적 정확한 항법해를 제공할 수 있는 장점이 있어서 최근에는 많이 사용되고 있다. 그러나 보행자가 뛰는 경우 IMU가 장착 된 발의 0속도를 검출하는 것이 어려우며 0속도 순간을 잘못 검출하게 되면 오차보정 필터의 측정치 설정이 잘못되어 필터가 잘못된 추정치를 산출하게 되며 그 결과 항법오차가 증가하게된다. 그리고 이 현상이 반복되면 항법 오차가 발산하는 문제를 갖는다 (Skog et al. 2010, Ju et al. 2016).

본 논문에서는 IA기반 PDR의 성능과 안정성을 향상시키기 위하여 발의 0속도를 검출(ZVD: Zero Velocity Detection)하는 기법을 제안한다. PDR에서 걸음을 검출하는 기법으로는 Peak Detection, Zero Crossing, Flat Zone Detection 등이 있으며 이 중에서 0속도를 검출하는 기법은 Flat Zone Detection이 대표적이다. 즉 StP 동안에 지면에 닿아 있는 발에 장착된 IMU의 출력은 시간에 따른 변화율이 0에 가깝게 된다는 정보를 활용하여 0속도를 검출하게 된다(Cho & Park 2006, 2019, Park & Suh 2010, Skog et al. 2010). 그러나 이 방법만으로는 발이 공중에 있는 Swing Phase (SwP) 동안에도 0속도로 오검출되는 문제가 발생할 수 있으며 빠른 걸음에서는 0속도를 미검출하는 문제가 발생할 수 있다. 이런 문제를 해결하기 위한 다양한 연구가 이어져 오고 있다. 본 논문에서는 IMU 통합 데이터(IID: IMU Integrated Data)의 효율적인 활용을 통해 걸음 속도에 상관없이 0속도를 정확하게 검출할 수 있는 기법을 제안한다. 제안된 기법은 IID의 버퍼링 방법과 버퍼의 효율적인 활용을 통해 IID를 StP 동안에는 단순하게 되며 SwP 동안에는 좀 더 복잡하게 변경됨으로써 0속도를 StP 안에서만 검출될 가능성을 높여준다.

본 논문의 2장에서는 IA 기반 PDR과 ZVD를 위한 신호처리 기법을 설명하고, 3장에서는 ZUPT 기반 PDR을 설명한다. 걸음 속도에 따른 보행 실험을 통해 제안된 0속도 검출 기법의 성능과 이 기법 기반의 PDR 실험을 통한 측위 성능을 4장에서 분석한다. 그리고 마지막 장에서 결론을 맺는다.

2. SIGNAL PROCESSING FOR ZERO-VELOCITY DETECTION

IA 기반 PDR은 Fig. 1과 같은 구조를 갖는다. IMU는 3축의 가속도계와 자이로로 구성되는 센서모듈로 신발에 장착된다. 100Hz 이상의 출력 주파수를 갖고 샘플링된 센서 데이터는 항법 컴퓨터로 사용되는 μ-프로세서 또는 μ-콘트롤러에서 획득하여 INS 알고리즘을 통해 식 (1~3)과 같이 자세, 속도 및 위치정보를 갱신한다(Titterton & Weston 1997).

\(\dot{Q}=\frac{1}{2} Q *\left(\omega_{i b}^{b}-C_{n}^{b}\left(\omega_{i e}^{n}+\omega_{e n}^{n}\right)\right)\)       (1)

\(\dot{V}^{n}=C_{b}^{n} f^{b}-\left(2 \omega_{i e}^{n}+\omega_{e n}^{n}\right) \times V^{n}+g^{n}\)       (2)

\(\dot{L}=v_{n} /\left(R_{m}+h\right), \quad i=v_{E} /\left(R_{t}+h\right) \cos L, \quad \dot{h}=-v_{D}\)       (3)

f1.png 이미지

Fig. 1. Struction of IA-based PDR

여기서 Q와 \(C_{b}^{n}\) 은 자세정보를 나타내는 쿼터니언과 방향코사인 행렬, Vn= [vN vE vD] T  는 항법좌표계 상의 속도, 그리고 [L l h]T  는 위도, 경도, 고도로 나타내는 위치를 의미한다. fb 와 \(\omega_{i b}^{b}\) 는 각각 가속도계와 자이로의 출력 벡터, gn 는 중력 벡터, Rm와 Rt 는 위도 L 에서 위도와 경도 방향으로 계산되는 지구반경을 의미한다.

식 (1)과 (2)에서 \(\omega_{i e}^{n}\)\(\omega_{e n}^{n}\)는 각각 지구자전각속도와 속도에 의해 발생하는 항법좌표계의 회전벡터를 의미하는 것으로 저급 자이로를 사용하며 속도가 느린 PDR에서는 무시할 수 있다. 그리고 좁은 영역에서 항법을 수행하는 경우 위경도 좌표계가 아닌 지역 수평(Local Level) 좌표계를 정의하고 식 (4~6)과 같이 항법정보를 계산할 수 있다.

\(\dot{Q}=\frac{1}{2} Q * \omega_{i b}^{b}\)       (4)

\(\dot{V}^{L}=C_{b}^{L} f^{b}+g^{n}\)       (5)

\(\dot{p}=v_{p}, \quad p \in\{X, Y, Z\}\)       (6)

여기서 상위첨자 L은 지역 수평 좌표계를 의미하며, 보행항법을 수행하는 보행자가 초기정렬을 수행할 때 앞쪽을 X축, 오른쪽 방향을 Y축, 그리고 수직 아래쪽 방향을 Z축으로 정의한다. 따라서 위치벡터는 [X Y Z]T , 그리고 속도벡터는 VL= [vX vY vZ]T 로 정의 된다. 그리고 방위각은 초기정렬시에 0으로 초기화하고 쿼터니언은 IMU 좌표계와 지역 수평 좌표계 사이의 회전 벡터로 정의되고 방향코사인행렬 \(C_{b}^{L}\) 로 변환 가능하다.

IA 기반 PDR에서는 Fig. 1에서 볼 수 있듯이 INS 알고리즘과 동시에 ZVD를 수행한다. ZVD 알고리즘은 Fig. 2와 같이 구성된다.

f2.png 이미지

Fig. 2. Structure of ZVD algorithm.

먼저 정지상태에서 가속도계와 자이로 출력 벡터의 크기의 평균을 식 (7)과 같이 계산한다.

\(\bar{f}=\frac{1}{N} \sum_{i=1}^{N} \sqrt{f_{i}^{T} f_{i}}, \bar{\omega}=\frac{1}{N} \sum_{i=1}^{N} \sqrt{\omega_{i}^{T} \omega_{i}}\)       (7)

여기서 fi와 ωi 는 각각 i 시점에 획득된 가속도계와 자이로 출력 벡터를 의미하며, N은 정지상태에서 획득된 센서 데이터의 수를 의미한다.

이 값을 사용하여 식 (8)과 같이 IMU 통합 데이터를 계산한다 (Cho et al. 2019).

\(T_{k}=\left|\left(\sqrt{f_{k}^{T} f_{k}}-\bar{f}\right)\left(\sqrt{\omega_{k}^{T} \omega_{k}}-\bar{\omega}\right)\right|\)       (8)

이 데이터는 다음과 같이 저장된다. 먼저 버퍼의 크기 (BS)를 IMU 출력 주파수를 고려하여 설정한다. 정지상태에서 BS-1개의 IID를 버퍼에 저장하며 이 저장 데이터는 버퍼 안에서 고정된다. 그리고 보행 항법을 시작하면서 k 시점에 계산된 Tk는 버퍼의 제일 마지막에 저장한다. 즉 버퍼의 [1 : BS-1]는 정지상태에서 획득된 데이터로 구성되며 고정된다. 그리고 버퍼의 [BS]는 Tk가 저장되며 이 값은 지속적으로 변하는 값이다. 이 버퍼의 분산을 계산한다.

\(V_{k}=\frac{1}{B S-1} \sum_{i=1}^{B S}\left(F_{i}-\bar{F}\right)^{2}\)       (9)

여기서 Fi 는 버퍼의 i번째 데이터를 의미하며, F̄ 는 버퍼의 평균을 의미한다.

여기까지 진행된 신호처리의 의미를 Fig. 3에서 확인할 수 있다. 먼저 Fig. 3a는 세 걸음에 해당하는 IID를 나타내고 있다. 이 그림을 통해 StP와 SwP를 구분할 수 있다. 그리고 SwP 동안에도 IID의 크기가 StP와 유사하게 작은 구간이 나타나기도 한다. StP 중 0속도를 검출하기 위해 먼저 정지상태에서 저장한 BS-1 크기의 버퍼를 나타내면 Fig. 3b와 같으며 이 데이터는 센서의 잡음에 해당한다. 그리고 Fig. 3a에서 StP에 해당하는 부분을 확대하면 Fig. 3c와 같다. Fig. 3a에서 StP 동안의 IID는 평평한 값을 갖지만 Fig. 3b와 Fig. 3c를 비교해 보면 정지상태보다는 큰 값을 갖는 것을 알 수 있다. 이 값은 뛰는 경우에 더 큰 값을 가질 수 있으며 StP의 구간 크기는 작아지기 때문에 걸음 형태에 따라 StP 검출 가능성은 달라지게 된다. Fig. 3d는 Fig. 3a에 버퍼 분산을 함께 나타낸 것으로 분산의 값은 SwP 구간에서 IID 보다 크게 나타나는 것을 알 수 있다. StP에서 IID 대비 버퍼 분산의 변화를 확인하기 위해 확대하여 보면 Fig. 3e와 같다. 즉, StP에서 BS-1개의 정지상태 IID 데이터와 1개의 StP에서의 IID로 이루어진 버퍼의 분산은 정지상태에서의 데이터만으로 이루어진 버퍼의 분산보다는 크지만 효율적인 ZVD가 가능하도록 작고 안정적인 값으로 이루어지는 것을 확인할 수 있다.

f3.png 이미지

Fig. 3. Signal processing for ZVD. (a) IID, (b) buffer, (c) IID during stance phase, (d) IID & variance of buffer, (e) zoom in of (d) & threshold for binarization, (f) binarization & chattering remove & ZVD

이렇게 안정적인 신호로 변환한 다음 StP와 SwP로 나누는 이진화(Binarization)를 수행한다. 이를 위한 경계값(Threshold)은 SwP 구간에서 나타나는 작은 값은 최소한으로 검출하며 뛰는 경우에도 StP를 검출할 수 있도록 설정하는 것이 중요하다. 버퍼 분 산 값이 이 값보다 작으면 StP, 그렇지 않으면 SwP로 이진화를 수행한다.

\(B_{k}=\left\{\begin{array}{ll} 0 & , V_{k}<\delta_{B} \\ 1 & , V_{k} \geq \delta_{B} \end{array}\right.\)       (10)

여기서 δB는 이진화를 위한 경계값으로 사전에 실험을 통해 설정한다. 본 연구에서는 걸음 속도에 따른 다양한 실험 결과를 기반으로 Fig. 3e와 같이 0.01로 설정하였다.

그러나 Fig. 3e에서 볼 수 있듯이 StP 구간 전후와 SwP 중간에 채터링(Chattering) 현상이 발생하는 것을 알 수 있다. StP를 정확하게 인지하고 그 안에서 ZVD를 위하여 이 채터링 신호를 제거 한다. 먼저 BK-2:K= [1 0 1]이면 아래쪽 방향으로 한 펄스가 튀는 신호를 의미하며 이런 경우 BK-1을 0으로 재설정한다. 이 과정만으로도 대부분의 채터링 현상은 제거할 수 있다. 그러나 보다 안정적인 StP 인지를 위해 다음과 같은 과정을 수행한다.

만약 BK-1:K= [1 0]이면 |θK0|≤10° 인지 확인한다. 여기서 θK는 피치각으로 정지상태에서 계산된 피치각 θ0과의 차이가 10도 이하인 경우에만 StP 시작을 인지하고 그 시각을 저장 (ts=k)한다. 만약 피치각이 10도 이상 차이가 나는 경우에는 BK를 1로 재설정 한다. 만약 BK-1:K= [0 1]이면 StP가 종료됨으로 인지하고 StP 구간의 크기를 계산 (LStP=k-1-ts )한다. 만약 LStP가 3보다 작으면 이 구간은 SwP로 인지한다. 이 과정은 SwP 구간에서 나타나는 작은 값에 의한 영향을 한번 더 제거하는 효과를 나타낸다. Fig. 3f는 이 과정을 수행한 결과를 보여준다. 즉 이진화의 결과가 0인 구간이 StP로 인지하게 된다. 이 구간의 중간을 0속도로 인지하 고 ZVD를 완료하면 Fig. 1과 같이 0속도 순간 정보를 제공하고 ZUPT를 실행한다.

그 다음 tk가 특정 문턱값 δS보다 크게되면 SwP가 시작되는 것으로 간주하고 이진화를 수행한다. 이때 δS는 실험을 통해 사전에 설정한다. tk가 δs보다 작은 상황이 계속되면 Ct 를 1씩 더해가며 Nt 보다 커지면 StP가 지속되는 것으로 인지하고 ZUPT를 주기적으로 수행하게 된다. Nt 는 계산량을 고려하여 설정하며, StP 동안 0.5초 또는 1초 간격으로 ZUPT를 수행하도록 설정할 수 있다.

3. ZUPT-BASED PDR

Fig. 1에서 INS 알고리즘은 식 (4~6)으로 구성되며 IMU의 데이터 출력 주기에 동기되어 자세, 속도 및 위치정보가 갱신된다. PDR에서 사용하는 IMU는 저급으로 바이어스, 노이즈 등의 오차 를 포함하고 있으며, 중력 계산오차, 비교환 오차, 초기정렬 오차 등과 결합되어 IA 기반 PDR의 항법오차는 짧은 시간 안에 발산하게 된다. 이 문제를 해결하기 위하여 ZUPT를 수행하며, Fig. 2에서 나타낸 ZVD 알고리즘을 통해 IMU가 장착된 발의 StP 동안의 0속도 순간을 검출한 다음 그 정보를 Fig. 1의 ZUPT 블록으로 전송한다. 그 순간 ZUPT 블록에서는 INS의 속도 정보를 측정치로 하여 INS의 오차를 추정하는 칼만필터를 구동한다.

INS의 오차는 위치/속도/자세 오차 및 가속도계/자이로 바이어스 등으로 구성되며, 비관성 센서 또는 0속도 정보 등과 결합하여 추정 보상해야 한다. 이때 정보의 결합은 일반적으로 칼만필터를 사용하며 식 (4~6)에서 볼 수 있듯이 INS의 비선형성을 고려하여 Extended Kalman Filter (EKF), Unscented Kalman Filter (UKF) 등과 같은 비선형 칼만필터를 사용해야 하며 본 연구에서는 EKF를 사용한다. 또 한 가지 고려해야 하는 사항은 가관측성 (Observability)으로 측정치를 통해 상태변수의 추정 가능성을 의미한다. ZUPT에서는 0속도 정보를 측정치로 사용하며 이 경우 자이로 바이어스의 가관측성이 낮아 추정하기가 쉽지 않다. 자이로 바이어스는 이동 방향 오차를 유발하는 오차 요인으로 PDR에서 반드시 보상해 주어야 하는 주요 오차 요인이다. 따라서 본 연구에서는 자이로 바이어스는 보행을 시작하기 전 정지상태에서 획득된 자이로 출력의 평균을 사용하여 보상하며 보행 중 일정시간 이상 StP를 유지하는 경우 다시 계산하여 보상하는 것으로 한다. 그리고 방위각 오차 또한 ZUPT에서는 가관측하지 않으므 로 상태변수에서 제외한다. 이를 고려하여 EKF용 시스템 및 측정치 모델을 식 (11)과 같이 설계한다.

\(\begin{aligned} \delta x_{k+1} &=\Phi_{k} \delta x_{k}+v_{k}, \quad v_{k} \sim N(0, Q) \\ y_{k} &=H_{k} \delta x_{k}+w_{k}, \quad w_{k} \sim N(0, R) \end{aligned}\)       (11)

여기서 오차 상태변수는 식 (12)와 같으며, 시스템 모델과 측정치 모델은 각각 식 (13~14)로 설계된다. Q는 공정잡음(Process Noise) 공분산 행렬로 가속도계의 Velocity Random Walk (VRW)와 자이로의 Angular Random Walk (ARW)로 구성된다. 그리고 R은 측정치 잡음으로 StP 동안의 발의 0속도 오차를 고려하여 설정한다(Cho et al. 2019).

\(\delta x=\left[\begin{array}{llll} \delta P^{L} & \delta V^{L} & \phi^{L} & \nabla^{b} \end{array}\right]^{T}\)       (12)

\(\Phi_{k}=I_{11 \times 11}+\left[\begin{array}{llcl} 0_{3 \times 3} & I_{3 \times 3} & 0_{3 \times 2} & 0_{3 \times 3} \\ 0_{3 \times 3} & 0_{3 \times 3} & \left(C_{b, k}^{L} f_{k}\right)_{1: 3,1: 2} & C_{b, k}^{L} \\ 0_{2 \times 3} & 0_{2 \times 3} & 0_{2 \times 2} & 0_{2 \times 3} \\ 0_{3 \times 3} & 0_{3 \times 3} & 0_{3 \times 2} & 0_{3 \times 3} \end{array}\right] d t\)       (13)

\(H_{k}=\left[\begin{array}{llll} 0_{3 \times 3} & I_{3 \times 3} & 0_{3 \times 2} & 0_{3 \times 3} \end{array}\right]\)       (14)

여기서 δPL =[δX δY δZ]T , δVL =[δvX δvY δvZ] T , 그리고 ϕL =[ϕX ϕY]T 는 항법좌표계 상의 위치오차, 속도오차, 그리고 자세오차를 의미하며 ∇b =[∇x ∇y ∇z]T 는 동체좌표계 상의 가속도계 바이어스를 의미한다. 그리고 dt는 IMU 데이터 출력 주기를 의미한다.

한 걸음 동안 계산된 수직 위치의 변화를 통해 수평 보행과 계단 보행을 구분할 수 있다. 계단 보행인 경우 측정치 행렬은 식 (14)와 같이 설정하고, 수평 보행인 경우 수직 위치를 측정치로 추가하여 식 (15)와 같이 측정치 행렬을 사용할 수 있다.

\(H_{k}=\left[\begin{array}{ccccc} 0 01 & 0_{1 \times 3} & 0_{1 \times 2} & 0_{1 \times 3} \\ 0_{3 \times 3} & I_{3 \times 3} & 0_{3 \times 2} & 0_{3 \times 3} \end{array}\right]\)       (15)

EKF에서 오차 상태변수는 시간전파를 수행하지 않는다. 그리고 오차 공분산 행렬은 IMU의 출력주기에 동기되어 식 (16)과 같이 시간전파된다(Brown & Hwang 1997).

\(\begin{array}{l} P_{k+1}^{-}=\Phi_{k} P_{k} \Phi_{k}^{T}+Q \\ P_{k+1}^{-}=\frac{1}{2}\left(P_{k+1}^{-}+\left(P_{k+1}^{-}\right)^{T}\right) \end{array}\)       (16)

여기서 Pk와 Pk+1는 각각 k 시점에서 갱신된 상태변수 오차 공분산 행렬과 k+1 시점으로 시간전파된 공분산 행렬을 의미한다.

ZVD에서 0속도에 대한 검출 신호를 전송하면 식 (17~18)과 같이 오차 상태변수와 공분산 행렬의 측정치 갱신을 각각 수행한다.

\(\delta \hat{x}_{k}=K_{k} V_{k}^{n}\)       (17)

\(\begin{array}{l} P_{k}=\left(I-K_{k} H_{k}\right) P_{k}^{-} \\ P_{k}=\frac{1}{2}\left(P_{k}+P_{k}^{T}\right) \end{array}\)       (18)

여기서 Kk=P-k HTk (HkP-kHTk+R)-1 는 칼만이득을 의미한다.

식 (17)에서 추정된 오차 상태변수를 사용하여 INS의 항법오차 및 가속도계 바이어스를 보상한다.

4. EXPERIMENTAL RESULTS

제안된 ZVD 알고리즘 및 IA 기반 PDR의 성능을 분석하기 위하여 실험을 수행하였다. 실험에 사용된 IMU는 Xsens사의 MTw로 사양은 Table 1과 같다. IMU를 오른쪽 신발의 바깥쪽 굽에 장착하고 실험을 수행하였다.

Table 1. Specification of MTw.

Waliking speed Accelerometer Gyro
Full scale  ± 160  m/s2 ±1200 deg/s
Linearity 0.2% of FS 0.1% of Fs
Bias stability - 20 deg/hr
Noise 0.003 m/s/ √Hz 0.05 deg/s/ √Hz

 

4.1 ZVD 알고리즘 성능 분석

먼저 ZVD 알고리즘의 성능을 보행 속도에 따라 분석하기 위해 실험을 수행하였으며, 그 결과를 Fig. 4에서 나타내고 있다. 실험은 보통 속도 보행과 뛰기로 나누어 수행하였으며, 20m 거리를 3번 왕복하는 실험을 3회 수행하였다. Fig. 4a와 4c는 이 두 가지 보행 속도의 실험 결과를 5초 구간으로 나타내고 있다. 이 그림에서 볼 수 있듯이 보행 속도에 따라 StP 구간의 크기가 달라지며 3회 실험에 의해 계산된 StP 구간의 크기를 Fig. 5에서 나타내고 있으며 Table 2에 요약하였다.

f4.png 이미지

Fig. 4. Experimental results of ZUPT according to walking type. (a) normal pace, (b) standstill while walking at normal speed, (c) running pace, (d) standstill while running, (e) signal change during StP according to pace

f5.png 이미지

Fig. 5. Stance phase time according to walking speed.

Table 2. Summary of stance phase time according to walking speed.

Walking speed 1 2 3 Mean
Normal pace 0.39697 0.38707 0.39391 0.39265
Run 0.08422 0.07953 0.07721 0.08032
Ratio (%) 21.2 20.5 19.6 20.5

 

이 결과를 통해 보행 속도에 따라 StP의 구간 크기가 달라지며 이 크기는 보행 속도에 따라 결정된다는 것이다. 그리고 StP 구간의 크기가 뛰는 경우 보통 속도 보행 대비 약 20% 정도만 나타나게 되며 그 구간에서의 신호 변화는 Fig. 4e에서 볼 수 있듯이 보통 속도 보행 대비 뛰는 경우에 크게 발생하는 것을 알 수 있다. SwP 구간 동안에도 StP와 유사한 신호 특성이 나타나는 경우를 고려하면 뛰는 경우에 StP를 정확하게 검출하는 것은 쉽지 않다. 그러나 본 연구에서 제안한 기법에서는 뛰는 경우에도 정확하게 StP와 SwP를 구분하며 그 결과 StP 구간 중의 0 속도를 정확하게 검출할 수 있게 됨을 Fig. 4c를 통해 확인할 수 있다. 그리고 Fig. 4a에서 44.3초 부근에서 SwP가 StP로 잘못 이진화가 이루어지는 것을 볼 수 있다. 이것은 SwP 구간에서 나타나는 신호의 변화가 작은 부분이 StP인 경우와 유사한 신호 특성을 나타내기 때문이다. 이런 경우에는 ZVD 시간 간격의 제약조건을 통해 필터링해 낼 수 있으며 그 결과 StP로 잘못 인지된 구간에서는 ZVD을 수행하지 않는 것을 알 수 있다.

Fig. 4b와 4d에서는 보행 중 정지상태에서 주기적인 ZVD을 수행한 결과를 나타내고 있다. Fig. 2에서 나타낸 Nt를 100으로 설정하는 경우 StP가 지속적으로 인지되면 1초 주기로 ZUPT를 수행할 수 있도록 하는 것으로 그림에서 볼 수 있듯이 이 구간동안 1초 주기로 정확하게 0속도를 검출하는 것을 확인할 수 있다.

4.2 IA 기반 PDR 성능 분석

IA 기반 PDR의 핵심은 ZVD 알고리즘의 정확성이므로 본 연구에서 제시한 ZVD 알고리즘 기반으로 수행된 ZUPT를 통해 오차가 보상된 INS를 핵심으로 하는 PDR의 성능을 실험을 통해 분석하였다. 20m 거리를 3번 왕복하는 실험을 보통 속도 보행과 뛰기로 각각 수행하였으며 Figs. 6과 7에 그 결과를 나타내었다.

 

f6.png 이미지

Fig. 6. PDR results in normal walking speed. (a) position, (b) velocity, (c) heading, (d) covariance

 

f7.png 이미지

Fig. 7. PDR results when running. (a) position, (b) velocity, (c) heading, (d) covariance

먼저 위치추정치를 보면 20 m 거리를 보행하며 그 위치를 잘 추정하고 있으며, N축 20 m 위치에서 최대 오차가 보통 속도 보행과 뛰기에서 각각 0.26 m와 0.84 m로 확인된다. 뛰기 실험에서 위치가 오른쪽 방향으로 회전하듯이 오차가 증가하는 것으로 보인다. 이 현상은 IMU를 오른쪽 발에 장착하고 PDR을 수행하는 경우에 나타나는 특이 현상으로 추후 이 문제를 별도로 분석하도록 한다.

속도 추정치를 보면 StP에서 ZUPT를 통해 시간에 따른 오차 누적 현상이 나타나지 않으며 각 걸음을 잘 나타내고 있음을 알 수 있다. 뛰는 경우 전진방향(N축) 속도는 커지지만 측면과 수직 방향으로는 보통 속도 보행과 큰 차이가 없는 것으로 확인된다.

방위각은 처음 초기정렬 시 방향과 보행 방향이 차이가 나는 것을 알 수 있다. 그것은 정지상태일 때의 발의 방향이 보행하면서 달라지기 때문이다. 이 문제는 이 시스템이 갖는 제약조건으로 처음 n걸음은 무조건 앞쪽으로 걷도록 하면서 식 (19~21)과 같이 해결할 수 있다.

\(\begin{array}{l} d X_{i}=X_{i}-X_{i-1} \\ d Y_{i}=Y_{i}-Y_{i-1} \end{array}\)      (19)

\(\begin{aligned} X_{i} &=X_{i-1}+\sqrt{d X_{i}^{2}+d Y_{i}^{2}} \cos \psi_{B} \\ Y_{i} &=Y_{i-1}+\sqrt{d X_{i}^{2}+d Y_{i}^{2}} \sin \psi_{B} \end{aligned}\)       (20)

\(\delta \psi_{i}=\frac{i-1}{i} \delta \psi_{i-1}+\frac{1}{i} \tan ^{-1} \frac{d Y_{i}}{d X_{i}}, \quad \delta d \psi_{0}=0\)       (21)

여기서 Xi와 Yi는 처음 i번째 걸음을 걸었을 때 계산되는 X축과 Y축 위치정보를 의미한다. ψB는 초기정렬시 앞쪽방향인 X축과 북쪽 방향 사이의 각도로 실내의 경우 북쪽 대비 건물의 방향정보를 의미한다. ψB는 지도정보로부터 획득할 수 있으며 이 경우 지역 수평 좌표계는 항법 좌표계와 일치하게 된다. 그러나 이 정보를 모르는 경우 0으로 설정하고 항법 좌표계와 무관하게 지역 수평좌표계로 운영한다.

이 과정은 처음 n걸음동안 한 걸음마다 반복 수행되며 n걸음 후 식 (22)와 같이 방위각을 보상한다.

\(\psi_{n}=\psi_{n}-\delta \psi_{n}\)       (22)

이 방위각 보상각은 보행자에 따라 달라지며 일반적으로 보행자의 보행 특성에 따라 결정된다. n을 작게 설정하면 보행자의 보행 특성을 잘 반영하기 어려우며, 크게 설정하면 제약조건이 보행자에게 부담으로 작용한다. 본 연구에서는 5걸음으로 설정하였다. 이 실험에서는 약 20도의 방위각 차이가 나는 것으로 계산되었다.

오차 공분산 행렬의 대각 성분을 제곱근한 것을 나타낸 Fig. 6d와 Fig. 7d를 보면 수평 위치오차만 시간에 따라 증가하는 형태를 보이며 다른 상태변수는 가관측한 것으로 나타난다. 일반적으로 0속도 보정에서 수평축 가속도계 바이어스는 가관측하지 않은 것에 반해 ZUPT 기반 PDR에서는 수평축 가속도계 바이어스도 가관측한 것으로 나타난다. 그 이유는 한 걸음 동안 자세의 변화가 발생하며 식 (13)의 시스템 행렬에 포함된 \(C_{b}^{L}\) 이 바뀌게 됨으로써 보행에 따라 점점 가관측하게 되기 때문이다. 따라서 수평축 위치는 GPS 또는 무선측위와 같은 보조 항법을 통한 보정을 하지 않는 이상 시간에 따라 점점 오차가 증가하게 된다. 그러나 나머지 상태변수는 ZUPT 만으로도 가관측함으로써 그 결과가 위치오차 증가에도 영향을 미치게 되며 안정적인 항법을 수행할 수 있게 된다.

5. CONCLUSIONS

본 논문에서는 IA 기반 PDR을 위한 ZVD 알고리즘을 제안하였다. 보행자가 뛰는 경우 발이 지면에 닿아 있는 StP를 정확하게 검출하는 것은 쉽지 않으며 이 문제는 결국 PDR의 성능을 감소시키게 된다. 본 연구에서는 정지상태의 IMU 출력 데이터를 미리 버퍼링하고 이 데이터를 보행 중 IMU 출력 데이터와 함께 사용하여 분산을 계산하고 이 신호를 사용하여 이진화를 수행하고 불필요한 채터링 신호도 함께 제거함으로써 StP를 정확하게 검출하는 기법을 제안하였다. 그리고 StP 중에 0속도를 검출함으로써 IA 기반 PDR에서 안정적으로 ZUPT를 수행할 수 있도록 한다. 최종적으로 제안된 ZVD 알고리즘 기반으로 PDR을 수행하여 정확한 항법 정보를 제공할 수 있음을 보여줌으로써 항법용 인프라가 설치되어 있지 않은 실내 공간에서도 IMU 만으로 보행자의 위치를 정확하게 추정하여 제공할 수 있음을 확인할 수 있다. 본 연구에서 제안된 기술을 통해 일반 보행자뿐 아니라 소방관의 안전한 실내 화재진압 및 요구조자 구조에 활용될 수 있을 것으로 기대된다.

ACKNOWLEDGEMENT

This work was supported by Institute of Information & Communications Technology Planning & Evaluation (IITP) grant funded by the Korea government (NFA) (No. 2019-0- 01325, Development of wireless communication tracking based location information system in disaster scene for firefighters and person who requested rescue).

AUTHOR CONTRIBUTIONS

Seong Yun Cho contributed to the conceptualization of the idea, implemented the algorithm and wrote the original draft of the manuscript. Jae Hong Lee conducted experiments and contributed to provide information in writing the the manuscript. Chan Gook Park supervised the research and reviewed the manuscript as a project administrator. All authors discussed the proposed approach and results.

CONFLICTS OF INTEREST

The authors declare no conflict of interest.

References

  1. Brwon, R. G. & Hwang, P. Y. C. 1997, Introduction to Random Signals and Applied Kalman Filtering (New York: John Wiley & Sons)
  2. Cho, S. Y., Lee, J. H., & Park, C. G., 2019, Accurate zero velocity detection algorithm for integration approachbased PDR, in ISGNSS 2019, Jeju, Korea, 29 Oct. - 01 Nov., pp.535-542
  3. Cho, S. Y. & Park, C. G. 2006, MEMS based pedestrian navigation system, Journal of Navigation, 59, 135-153. https://doi.org/10.1017/S0373463305003486
  4. Cho, S. Y. & Park, C. G. 2019, Gyro signal processing-based stance phase detection method in foot mounted PDR, Journal of Positioning, Navigation, and Timing, 8, 49-58. https://doi.org/10.11003/JPNT.2019.8.2.49
  5. Ju, H. J., Lee, M. S., Park, S. Y., Song, J. W., & Park, C. G. 2016, A pedestrian dead-reckoning system that considers the heel-strike and toe-off phases when using a foot-mounted IMU, Measurement Science and Technology, 27, 015702. https://doi.org/10.1088/0957-0233/27/1/015702
  6. Park, S. K. & Suh, Y. S. 2010, A zero velocity detection algorithm using inertial sensors for pedestrian navigation systems, Sensors, 10, 9163-9178. https://doi.org/10.3390/s101009163
  7. Skog, I., Handel, P., Nilsson, J., & Rantakokko, J. 2010, Zerovelocity detection in pedestrian navigation systems - an algorithm evaluation, IEEE Trans. Biomedical Engineering, 57, 2657-2666. https://doi.org/10.1109/TBME.2010.2060723
  8. Titterton, D. H. & Weston, J. L. 1997, Strapdown Inertial Navigation Technology (London: Peregrinus)