2017-03-03 10 views
0

저는 가속도계와 자이로 스코프의 데이터를 결합하여 대상의 피치와 요각을 정확하게 측정하려고합니다. 보완적인 필터를 연구하고 구현하려고 시도한 후, 어떻게 작동하는지 몇 가지 질문이 있습니다.보완 필터는 어떻게 작동합니까?

많은 각도 움직임이 있고 객체가 안정적이면 가속도계 데이터를 "신뢰"하는 경우 필터가 자이로 스코프 데이터를 "신뢰"한다고 읽었습니다. 상보 필터는 이러한 방법으로 설명이 문서

http://www.pieter-jan.com/node/11

:

* 각도 = 0.98 (각도 + gyrData * DT)은 + 0.02 * (ACCDATA) * 저 그것에

는 같은 것 자이로 스코프 데이터가 선호되는 경우. 다음 이미지에서 페이지 하단에있는 http://www.pieter-jan.com/images/resize/Complementary_Filter.png 이미지에서 필터링 된 데이터는 가속도계 데이터에 "가까이 있음"인 것처럼 보입니다. 자이로 스코프 데이터가 흐트러져 있어도 마찬가지입니다. 나는 계산이 자이로 스코프 데이터가 선호되고 있다고 제안 할 때 이것이 왜 발생하는지 이해하지 못한다. 나는 다른 사진에서도 이것을 관찰했다. 내 자신의 테스트 동안 나는 유사한 결과를 얻기 위해 가속도계 데이터가 선호된다는 것을 제안하면서 0.98과 0.02를 "스왑"해야했습니다. 이 필터가 어떻게 작동하는지 완전히 오해하지 않았습니까? 가속도계 데이터를 "선호"하는 것이 정상입니까?

또한 장시간 동안 물체의 각도를 모니터링해야하는 경우 드리프트가 너무 커서 자이로 스코프 데이터가 쓸모 없게되지 않으므로 필터가 어떻게 보정합니까?

답변

0

나는 어디서 잘못되었는지 알고 있습니다. 필자는 본질적으로 자이로 스코프 데이터만을 사용하여 각도를 계산하고이를 필터에 사용했습니다. 내가이 일을 했어야

대신
GyroAngle += d°/s * time_between_cycles 
FilteredAngle = 0.98*GyroAngle + 0.02*AccelerometerAngle 

즉 :

FilteredAngle = 0.98*(FilteredAngle + d°/s * time_between_cycles) + 0.02*AccelerometerAngle 

이 훨씬 더 나은 결과

나왔고를 답니다