작성
·
249
답변 1
0
안녕하세요!
결론부터 말씀드리자면, BNO080 내부의 ARM cortex M0+ MCU에 자이로, 가속도, 자기장 센서를 이용한 쿼터니언 계산 알고리즘 펌웨어가 내장되어있어서 우리가 따로 필터를 적용하지 않아도 됩니다.
디지털 필터의 종류가 여러가지가 있는데, 그 중 상보필터(Complementary filter)는 서로 상보적인 특성을 갖는 두 신호의 단점(?)을 보완하여 하나의 신호로 만들어주는 필터라고 볼 수 있습니다.
자이로로 구한 회전각도와 가속도로 구한 회전각도는 서로 상보적인 특성을 가지고 있기에 이 둘의 단점을 보완하여 회전각도를 구할 때 상보필터가 적합하겠죠.
근데 회전각도를 구하기 위한 방식이 이 방식만 있는 것이 아니고, Madgwick, Kalman 등 여러 알고리즘이 오픈되어있어서 그 중 하나를 사용할 수도 있습니다.
BNO080은 내부에 어떤 알고리즘이 들어가있는지는 알 수 없지만, 이미 9축 센서의 값을 이용해 쿼터니언으로 계산해주기 때문에 추가적으로 상보필터를 사용하지 않아도 됩니다. 단, 그 쿼터니언을 실제 롤, 피치, 요 3축 회전각도(오일러각)로 변환해서 사용해야 합니다.
참고로 상보필터나 Madgwick, Kalman 같은 필터 외에 단순 주파수 대역만 잘라내는 LPF, HPF, BPF 등도 있습니다.
답변 감사합니다.~
많은 도움이 되었습니다.^^