본문 바로가기
Embedded System/STM32F103

다양한 Filter를 통한 Quadcopter의 자세안정화 (최적의 필터 찾기)

by xangmin 2020. 3. 27.
반응형

Quadcopter에 각도를 구하기 위해 IMU Sensor인 MPU6050이 사용된다.

자이로와 가속도를 이용해 각도를 구하게 되는데 이 때, 필터를 통과하게 된다.

 

제작과정에 있어서 다음의 3가지의 필터를 사용했고 성능을 분석하여 Quadcopter에 최적의 필터를 선정하였다. 각 필터별 정의와 수학적 설명은 생략한다.

 

1. Complementary Filter (상보필터)

2. Kalman Filter (칼만필터)

3. Mahony Filter (마호니필터)

 

<Complementary Filter, Kalman Filter, Mahony Filter 비교>  

 다음은 직접 필터들을 비교한 결과 그래프이다. MPU6050에서 각각의 필터(Complementary/Kalman/Mahony)를 거친 결과를 그래프로 나타내었다. 실험은 10ms마다 각도 값을 정수로 측정하였고, 물리적으로 각도를 90°에서 +90°까지 변화시킨 것이다.

 

<Complementary Filter [느린 반응과 큰 오차율] >  

 가장 먼저 Complementary Filter(상보필터)Kalman Filter와 Mahony Filter에 비해 상대적으로 가장 느린 반응을 보이고 있으며, 각도가 급격하게 변화가 시작되는 시점에서는 큰 오차 값(overshoot 발생)이 발생한다. Quadcopter의 기본적인 동작과 외력에 견디기 위해서 최적화된 필터가 될 수 없다.

 

<Kalman Filter, Mahony Filter 비교 [비슷한 성능]>

 Kalman Filter와 Mahony Filter는 거의 비슷한 형태와 반응속도를 보인다. , Kalman Filter와 Mahony Filter는 복원력에서 큰 차이를 보이지 않는다.

 

<Kalman Filter, Mahony Filter 비교 (확대) >

 육안으로 확인할 수 있게 그래프의 16~ 20초 영역을 확대해서 보면 Mahony가 Kalman보다 약 200ms가량 빠른 반응을 보이는 것을 알 수 있다. 오차율이나 다른 성능적인 측면에서는 큰 차이가 없으나 상대적으로 조금 더 빠른 반응을 보이는 Mahony Filter를 사용하였다.

 

 그렇다면 Mahony Filter의 단점은 무엇일까? 상대적으로 Kalman Filter와 Mahony Filter가 Complementary Filter에 비해 연산량이 많다. 하지만 Quadcopter는 일정 주기를 가지고 각도 값을 Update하고 일정한 주기로 Motor를 제어한다. 단순하게 생각하면 각도 값을 Update하는데 걸리는 Loop의 시간과 Motor를 제어하는 Loop의 시간 중 각도 값을 Update하는 시간이 더 짧아야 한다. 현재 각도에 따라 모터를 제어해야하는 설정이 달라지기 때문이다. 즉, Mahony를 사용했을 때, Quadcopter의 제어주기에 영향이 없음을 확인해야 한다.  

 

반응형

'Embedded System > STM32F103' 카테고리의 다른 글

Quadcopter 제작기  (8) 2020.03.26

댓글