Page 153 - 만들면서 배우는 아두이노 드론
P. 153

이제는 가속도 자이로 센서 값에 따라 Roll, Pitch, Yaw 의 각도를 구하는 스케치를
작성해보겠습니다. 먼저 가속도 센서 값을 기준으로 Roll, Pitch, Yaw 의 각도를 구하
고, 그 다음 자이로 센서 값을 기준으로 Roll, Pitch, Yaw 의 각도를 구합니다. 마지막
으로 두 센서 값에 대해 상보 필터를 적용하여 Roll, Pitch, Yaw 의 각도를 구하게 됩
니다.

7.4.1 센서 특성과 상보필터

가속도 센서는 정적인 상태에서 중력 가속도의 힘만 받을 경우에는 정확한 방향각을
제공합니다. 그러나 센서를 움직이거나 회전할 때 센서에는 힘이 가해집니다. 이러한
힘에 센서는 민감하여 반응하게 되어 노이즈가 발생합니다. 특히 모터의 회전에서 발
생하는 고속의 미세한 움직임이 있을 경우 가속도 센서는 아주 불안정한 값을 내보냅
니다. 그러나 노이즈 파형의 미세 주기보다 충분히 긴 시간을 주기로 불안정한 값들
의 평균을 낼 수 있다면, 가속도 센서는 정확한 결과를 제공합니다.

자이로 센서는 방향각이 아닌 각속도를 측정합니다. 그래서 방향각을 계산하기 위해
서는 먼저 센서의 방향각을 초기화해 주어야 합니다. 초기 방향각은 가속도 센서로부
터 얻을 수 있고, 곡선 +X, +Y, +Z 축에 대한 각속도(w)를 측정한 후 측정 주기 시간
(?t)와 곱해서 변화된 각을 계산합니다. 변화각은 다음과 같은 식으로 표현될 수 있
습니다.

                                               ?θ = w × ?t

그리고 새로운 방향각은 이전 각에 이 변화된 각을 더해서 얻습니다. 다음과 같습니
다.

                                       θ?????? = θ???????? + ?? × ?t

위처럼 방향각을 찾기 위해 미세 변화 각(?θ)을 더해주는데(적분), 이 반복적으로 누
적하는 과정에서 작은 오차들도 쌓이게 되어 결과적으로 오차는 시간이 흐를수록 커
지게 됩니다. 이것이 자이로 센서 표류의 원인이 되기에, 시간이 흐를수록 자이로 센
서를 통해 계산된 방향값은 부정확하게 됩니다.

결과적으로 가속도 센서는 긴 시간에 걸쳐 정확한 데이터를 제공하지만 짧은 시간에
대해서는 불안정한 값을 주고, 자이로 센서는 짧은 시간에 대해서는 변화된 방향에
대한 정확한 데이터를 제공하지만 시간이 지날수록 적분에 의해 표류하게 됩니다.

                                                      152
   148   149   150   151   152   153   154   155   156   157   158