IMU Drift는 시간이 지날수록 추정된 방향이나 위치가 실제 값에서 서서히 벗어나는 현상이다. 핵심 원인은 IMU가 변화율을 측정하고 이를 시간에 따라 적분한다는 데 있다. 회전하지 않는 자이로가 아주 작은 값을 계속 출력하면 그 값이 각도로 누적되고, 가속도 오차는 속도와 위치 계산에서 한 번 더 적분되어 더 빠르게 커진다.
오차가 누적되는 구조
자이로 측정값을 단순화하면 측정 각속도 = 실제 각속도 + Bias + Noise로 볼 수 있다. 각도는 이 값을 시간 적분해 얻으므로 일정한 Bias도 시간에 비례해 방향 오차를 만든다. Analog Devices는 자이로의 Bias Instability와 Angular Random Walk가 Drift의 주요 구성요소이며, 특히 외부 참조가 없는 Yaw가 민감하다고 설명한다.
| 오차원 | 특징 | 나타나는 현상 |
|---|---|---|
| 초기 Bias | 정지 상태에서도 0이 아닌 출력 | 일정 방향으로 각도·속도 누적 |
| 온도 변화 | 센서 영점과 Scale이 온도에 따라 변함 | 예열 전후 또는 장시간 운용 중 기준 이동 |
| Noise | 샘플마다 불규칙한 변동 | 자세 Jitter와 적분 후 Random Walk |
| 축 정렬·Scale 오차 | 장착축 또는 감도 계수가 실제와 다름 | 특정 방향 동작이 다른 축으로 섞임 |
| 시간 오차 | Timestamp 지터·샘플 누락 | 빠른 움직임에서 적분량 왜곡 |
| 외부 참조 교란 | 자기장 왜곡, 시각 특징 부족 | 잘못된 보정값으로 순간 점프 또는 서서히 이동 |
Roll·Pitch와 Yaw의 Drift가 다른 이유
정지 또는 완만한 동작에서 가속도계는 중력 방향을 알려 주므로 Roll과 Pitch의 장기 참조로 사용할 수 있다. 하지만 중력은 수직축 회전인 Yaw를 알려 주지 못한다. 자력계를 사용하면 지구 자기장 방향을 Heading 참조로 삼을 수 있지만, 철골·모터·케이블 전류가 만든 자기장 때문에 값이 왜곡될 수 있다. Movella 문서도 자기장 교란이 크거나 오래 지속되면 Heading 정확도에 영향을 줄 수 있다고 안내한다.
보정은 한 가지 필터가 아니라 계층이다
1. 센서와 장착 캘리브레이션
정지 구간에서 초기 Bias를 추정하고, 필요하면 온도별 Bias·Scale을 보정한다. 센서 보드의 축과 실제 대상 축 사이의 회전을 측정해 적용한다. 인체용 슈트는 N-pose나 T-pose를 이용해 센서와 신체 세그먼트의 기준을 맞춘다.
2. Sensor Fusion
Complementary Filter, Kalman 계열 필터 등으로 빠른 자이로 변화와 장기 참조를 결합한다. 중요한 것은 알고리즘 이름보다 관측값의 신뢰도를 상황별로 조절하는 것이다. 동적 가속 중에는 가속도계의 중력 참조 가중치를 낮추고 자기장 이상이 감지되면 자력계 보정을 제한해야 한다.
3. 동작 제약과 Zero Update
발이 지면에 고정된 순간처럼 속도가 0이라고 판단할 수 있는 구간은 누적 오차를 줄이는 관측값이 된다. 관절 길이, 지면, Rigid Body 제약도 불가능한 움직임을 제한한다. 잘못된 접촉 판정은 오히려 위치가 튈 수 있어 사용 동작에 맞춘 검증이 필요하다.
4. 외부 절대 참조
카메라, 광학 마커, GNSS, UWB, LiDAR 등의 위치·방향 관측을 융합하면 장기 Drift를 붙잡을 수 있다. 이때 센서 간 Timestamp와 좌표 변환이 정확해야 한다. 느린 절대 센서와 빠른 IMU의 장점을 결합하되, 외부 관측이 끊겼을 때의 신뢰도 감소도 시스템 상태로 노출한다.
진단을 위한 시험 시나리오
- 충분히 정지시킨 뒤 원시 자이로 평균과 온도를 기록한다.
- 정해진 각도로 회전하고 원위치에 돌아와 잔류 각도를 비교한다.
- 같은 시험을 예열 전후, 장시간 운용 후에 반복한다.
- 금속 구조물·스피커 근처에서 자력계 크기와 Heading 변화를 확인한다.
- 패킷 누락과 Timestamp 간격을 원시 로그에 함께 저장한다.
- 필터 출력만 보지 말고 가속도·각속도·자기장과 보정 상태를 동시에 시각화한다.
센서 구성 자체가 낯설다면 먼저 가속도계·자이로·자력계의 역할을 확인하는 편이 좋다.
자주 묻는 질문
저가 IMU라서만 Drift가 생기는가?
아니다. 모든 관성 센서는 정도의 차이는 있어도 Bias와 Noise를 갖는다. 센서 등급, 캘리브레이션, 온도, 융합 구조와 외부 참조가 최종 성능을 함께 결정한다.
Low-pass Filter로 Drift를 제거할 수 있는가?
고주파 Noise는 줄일 수 있지만 일정한 Bias가 만드는 장기 누적을 단독으로 제거하지는 못한다. Bias 추정이나 절대 참조가 필요하다.
매번 재센터하면 충분한가?
사용자 경험상 임시 복구는 가능하지만 원인을 없애는 것은 아니다. 재센터 주기가 요구사항을 만족하는지, 누적 중 안전 문제가 없는지 검증해야 한다.