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