그라운드 임베디드 유튜브 구독

노트 / 센서와 신호처리

IMU와 센서 퓨전: 상보 필터로 기울기 구하기

가속도계는 오래 보면 정확하지만 진동에 약하고, 자이로는 빠르지만 오래 쓰면 흘러갑니다. 둘을 섞는 상보 필터.

GROUND EMBEDDED · 정리 노트센서·신호 05IMU와 센서 퓨전 1float acc_angle = atan2f(ay, az) * RAD2… 2angle = 0.98f * (angle + gyro_x * dt) +…

두 센서의 성격

센서 재는 것 장점 단점
가속도계 중력 방향 (+ 움직임 가속) 장기적으로 정확 진동, 가속에 크게 흔들림
자이로 각속도 빠르고 부드러움 적분하면 오차가 쌓여 흘러감(드리프트)

상보 필터

자이로는 고주파(빠른 변화)만, 가속도계는 저주파(장기 평균)만 믿습니다.

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 등)도 있습니다.