IMU와 센서 퓨전: 상보 필터로 기울기 구하기
가속도계는 오래 보면 정확하지만 진동에 약하고, 자이로는 빠르지만 오래 쓰면 흘러갑니다. 둘을 섞는 상보 필터.
두 센서의 성격
| 센서 | 재는 것 | 장점 | 단점 |
|---|---|---|---|
| 가속도계 | 중력 방향 (+ 움직임 가속) | 장기적으로 정확 | 진동, 가속에 크게 흔들림 |
| 자이로 | 각속도 | 빠르고 부드러움 | 적분하면 오차가 쌓여 흘러감(드리프트) |
상보 필터
자이로는 고주파(빠른 변화)만, 가속도계는 저주파(장기 평균)만 믿습니다.
float acc_angle = atan2f(ay, az) * RAD2DEG;
angle = 0.98f * (angle + gyro_x * dt) + 0.02f * acc_angle;
0.98은 시정수 τ ≈ dt · 0.98 / 0.02와 관련됩니다. dt = 1ms면 τ ≈ 49ms. 이보다 빠른 움직임은 자이로, 느린 경향은 가속도계를 따릅니다.
보정
- 정지 상태에서 자이로를 수백 번 읽어 평균을 오프셋으로 뺍니다. 이게 없으면 각도가 계속 흘러갑니다.
- 가속도계 축 방향과 보드 장착 방향을 맞춥니다.
- MPU6050 내장 DLPF를 켜면 모터 진동이 줄어듭니다.
더 나아가
3축 자세(롤, 피치, 요)는 Mahony, Madgwick 필터나 칼만 필터를 씁니다. 요(방위)는 가속도계로 보정할 수 없어 지자기 센서가 필요합니다. IMU 칩에 센서 퓨전 프로세서가 들어간 제품(BNO085 등)도 있습니다.