Complementary Filter(상보 필터)

Complementary Filter (상보 필터)

신호(Signal)란?

- 시간에 따라 변화하는 DATA

주파수(Frequency)란?

- 시간에 따라 변화하는 DATA의 1초 동안(주기적으로) 진동하는 횟수

필터(Filter)란?

-시간에 따라 변화하는 DATA의 1초 동안(주기적으로 진동하는 횟수)를 걸러주는 것

필터는 여러가지의 종류가 있다.

필터의 종류

-High Pass Filter – 높은 주파수 영역을 통과시키는 필터

-Low Pass Filter – 낮은 주파수 영역을 통과시키는 필터

-Band Pass Filter – 대역(주파수 구간)을 통과시키는 필터

-Band Stop Filter – 대역(주파수 구간)을 막은 후 통과 시키는 필터

-Kalman Filter(KF) – 최소 제곱법을 이용하여 일정 시간 후의 위치를 예측할 수 있도록 하는 필터

-Extended Kalman Filter(EKF) – 칼만필터의 선형성 가정을 완화시켜 더 일반적인 시스템에서(비선형)대해서도 사용이 가능하도록 확장한 필터

위 사진은 제가 국민대학교 기계시스템공학부 1학년 학부생 과정 중 MSD1 과목에서 신호를 저역필터 (Low Pass Filter) 통과 시킨 실험의 결과 사진이다.

그래프 두 개가 나오는데 위 그래프가 저역필터를 통과 시키기 전이고 밑 그래프가 저역필터를 통과 시킨 후에 그래프이다.

여러가지의 필터들을 목적에 맞게 서로 보완해서 사용하는 필터가 Complementary Filter (상보 필터)이다.

High Pass Filter + Low Pass Filter

Band Stop Filter + Band Pass Filter

이 두가지가 대표적인 Complementary Filter 이다.

High Pass Filter +Low Pass Filter 조합인 Complementary Filter를 보자

위에 블록다이어그램을 보면 라플라스 변환이 미리된 각도를 자이로필터와 가속도 필터를 통해 다시 라플라스 역변환을 하여 우리가 구하고 싶은 각도의 변화를 알 수 있다.

그럼 정확히 어떻게 각도의 변화를 알 수 있는지 살펴보자

우선 각도의 변화를 알려면 자이로의 값과 가속도의 값이 필요하다. 이 두 데이터를 확인 할 수 있는 것이 IMU(Inertia Measurement Unit) 관성측정장치이다.

Gyro

IMU로 받은 각속도의 값을 적분하면 각도인데 계속 적분하면 적분할수록 Drift 현상 (조건이 일정함에도 시간이 경과함에 따라서 값이 이탈 또는 흘러가는 현상)이 발생한다.

Drift 현상을 보여주는 실험

위 세 사진은 제가 국민대학교 기계시스템공학부 1학년 학부생 과정 중 MSD1 과목에서 서브모터의 엔코더 값(초록색 실선)과 서브모터에 부착한 가속도센서(하얀색 점선)의 값과 자이로센서의 값(빨간색 1 점 쇄선)을 비교한 그래프 사진이다. 세사진은 시간 순으로 나열한 것인데 시간이 지날수록 자이로 센서의 (빨간색 1 점 쇄선)이 아래로 내려가는 것을 볼 수 있다. 이것을 Drift 현상이라고 한다.

그래서 자이로의 Drift를 보완할 수 있는 것이 High Pass Filter이다.

High Pass Filter의 전달 함수를 이용함으로써 Drift현상 저지할 수 있다.

Accel

가속도의 센서에서 가속도의 값을 받는 것은 중력 원심력에 의한 혹은 구심력에 의한 구심가속도 그리고 법선방향의 법선 가속도 등 여러 가속도를 계산하기 때문에 반응이 느리다.

또한 노이즈가 심하다. 그래서 낮은 데이터 통과 시켜 가속도 센서의 단점을 보완한다.

Low Pass Filter의 전달 함수를 이용함으로써 가속도 센서의 늦은 반응을 보완할 수 있다.

Gyro Data와 Accel Data를 시간에 대한 식으로 변환(Laplace)

위에 식들이 전개된 사진은 라플라스 변환된 Gyro Data와 Accel Data를 다시 라플라스 역변환해서 시간에 대한 식으로 정리하는 것이다.

(Filter를 지나기 전) (Filter를 지난 후)

두 사진을 보면 필터함으로써 실질적으로 거의 각도 변화를 정확히 인식하는 엔코터의 값과 비슷하다.