기술 필드 노트 #14 · 2026년 11월
정지 녹화로 측정한 스테레오+IMU 에고센트릭 리그의 IMU 잡음과 바이어스
기술노트 #14 · 정지 구간으로 본 IMU 잡음, 바이어스, 스펙트럼 (ODL-EGO S1 촬영 리그, R8 스테레오+IMU)
시각-관성 파이프라인에는 실제 장비의 IMU 잡음 값이 필요합니다. 리그와 함께 온 캘리브레이션 파일에는 일반적인 사전값이 들어 있고, 파일 스스로 그렇다고 적혀 있습니다. 새로 찍지 않고, 2026-10-26 캘리브레이션 녹화 안에 있던 정지 구간 5개(합계 22분, 가장 긴 구간 519초)로 이 장비를 측정했습니다. 자이로 백색잡음은 축별 0.00014–0.00018rad/s/√Hz, 가속도계는 0.0009–0.0014m/s²/√Hz로 사전값보다 각각 약 12배, 22배 작습니다. 실무 함정이 두 가지 있습니다. 자이로 z축은 고주파 잡음이 강해서 샘플 표준편차로 계산하면 잡음 밀도가 2.4배 크게 나옵니다. 또 정지 상태에서 z축이 -0.32°/s를 읽어, 보정하지 않으면 1분에 약 19°씩 방향이 돌아갑니다. 랜덤워크는 이 길이의 녹화로는 식별할 수 없었습니다.
왜 중요한가
잡음 값이 융합 필터가 IMU를 얼마나 믿을지 정한다
VIO와 SLAM 백엔드는 센서마다 네 개의 숫자로 IMU와 카메라의 비중을 정합니다. 자이로와 가속도계 각각의 백색잡음 밀도와 바이어스 랜덤워크입니다. 사전값이 너무 크면 IMU가 거의 쓸모없어지고, 너무 작으면 필터가 IMU를 과신해서 틀어집니다.
우리 리그의 캘리브레이션 파일에는 IMU 값이 사전값이며 별도 정지 녹화로 바꾸라고 적혀 있습니다. 그 녹화를 아직 하지 않았습니다. 이 노트는 캘리브레이션 세션에 이미 백색잡음을 믿을 만하게 잴 만큼의 정지 시간이 들어 있었다는 것과, 어디까지는 부족한지를 보여 줍니다.
데이터
기존 녹화 4개에서 찾은 정지 구간 5개
출처: 2026-10-26 ChArUco 캘리브레이션 세션(기술노트 #11, #12)에서 찍은 녹화 4개의 IMU 스트림입니다. 타깃을 움직이는 동안 리그는 책상 위에 가만히 놓여 있었습니다. 새로 찍지 않았습니다.
정지 구간 찾기: 1초 창에서 자이로 세 축 표준편차가 모두 0.06rad/s 미만, 60초 이상 이어진 구간, 양 끝 2초씩 제외. 그 결과 59–519초 구간 5개(합계 1348초)를 얻었습니다. 자이로와 가속도계는 각각 501.5Hz로 나오고, 자이로 출력 최소 단위는 0.000533rad/s(0.0305°/s)로 ±1000°/s 범위와 맞습니다.
방법: 축별 중첩 앨런 편차. 백색잡음 N은 τ = 0.05–1초의 −½ 기울기 구간에서 피팅. 바이어스 불안정성은 앨런 최솟값(0.664 계수를 적용하지 않은 원값). 바이어스는 구간 평균.
백색잡음
모든 축과 구간에서 사전값보다 약 12배 작다
가장 긴 구간(519초)에서 자이로 백색잡음은 x, y, z 각각 0.00014, 0.00017, 0.00018rad/s/√Hz, 가속도계는 0.00093, 0.00137, 0.00093m/s²/√Hz입니다. 5개 구간 전체에서 자이로는 0.00014–0.00024, 가속도계는 0.00085–0.00137 범위를 벗어나지 않았습니다.
캘리브레이션 파일의 사전값(0.002, 0.02)은 각각 약 12배, 22배 큽니다. 긴 평균 시간에서는 다릅니다. 자이로 앨런 편차는 7–20초 이후 다시 올라가고, τ ≈ 100초에서 0.000124–0.000363rad/s로 사전값이 그 지점에서 뜻하는 0.000200rad/s와 비슷합니다. 즉 사전값은 짧은 시간 잡음에는 지나치게 비관적이지만, 느린 드리프트에 대해서는 틀렸다고 단정할 수 없습니다.


| 항목 | x | y | z | 캘리브레이션 파일 사전값 |
|---|---|---|---|---|
| 자이로 백색잡음 N, 앨런 피팅 (rad/s/√Hz) | 0.00014 | 0.00017 | 0.00018 | 0.002 |
| 샘플 표준편차로 계산한 자이로 잡음 (rad/s/√Hz) | 0.00024 | 0.00014 | 0.00043 | — |
| 자이로 바이어스 불안정성, 앨런 최솟값 (rad/s) | 0.000060 | 0.000058 | 0.000041 | — |
| 해당 평균 시간 (s) | 7 | 12 | 20 | — |
| τ ≈ 100초 자이로 앨런 편차 (rad/s) | 0.000363 | 0.000226 | 0.000124 | 0.000200 (백색잡음 + 랜덤워크) |
| 정지 상태 자이로 바이어스 (°/s) | +0.13 | -0.07 | -0.32 | — |
| 가속도계 백색잡음 N, 앨런 피팅 (m/s²/√Hz) | 0.00093 | 0.00137 | 0.00093 | 0.02 |
| 가속도계 바이어스 불안정성, 앨런 최솟값 (m/s²) | 0.00026 | 0.00045 | 0.00047 | — |
함정 1
자이로 z축은 백색잡음이 아니다: 샘플 표준편차로 계산하지 말 것
빠른 계산법은 샘플 표준편차를 √(샘플링 주파수)로 나누는 것입니다. x와 y는 앨런 값과 비슷하게 나옵니다. z는 0.00043rad/s/√Hz로 앨런 피팅의 2.4배입니다. z축 잡음이 나이퀴스트 주파수 쪽으로 갈수록 커지기 때문입니다(1-지연 자기상관 -0.67). 이 고주파 성분은 수 밀리초 안에 평균으로 사라지고 드리프트를 만들지 않습니다.
스펙트럼에는 약 30, 44, 59, 215Hz에 좁은 봉우리도 있습니다. 출처(책상 진동, 팬, 전자 회로)는 확인하지 못했습니다. 앨런 피팅은 바꾸지 않지만, 머리에 장착한 상태에서 확인해 볼 만합니다.

함정 2
정지 상태에서 0.3°/s 자이로 바이어스
정지 상태에서 자이로는 5개 구간에 걸쳐 x +0.05 ~ +0.32°/s, y -0.16 ~ -0.04°/s, z -0.34 ~ -0.27°/s를 읽습니다. 보정하지 않으면 z값 하나만으로 방향이 1분에 약 19°씩 돌아갑니다.
z 바이어스는 하루 동안 안정적이고, x는 더 많이 변합니다. 융합 필터가 바이어스를 실시간으로 추정하지만, 0이 아니라 녹화 첫 정지 구간으로 초기화하면 수렴이 빨라집니다.
- 모든 녹화 시작 때 리그를 2–3초 가만히 둡니다.
- 그 정지 구간으로 자이로 바이어스를 초기화합니다.
- 워밍업을 고려하지 않고 녹화 간 자이로 바이어스를 비교해 센서 상태를 판단하지 않습니다.

| 정지 구간 | 길이 (s) | 자이로 바이어스 x / y / z (°/s) | 자이로 N, 축 중앙값 | 가속도 크기 (m/s²) |
|---|---|---|---|---|
| 12:42 #0 | 321 | +0.15 / -0.08 / -0.31 | 0.00017 | 9.802 |
| 12:42 #1 | 276 | +0.05 / -0.04 / -0.34 | 0.00018 | 9.802 |
| 14:28 #0 | 172 | +0.32 / -0.16 / -0.27 | 0.00019 | 9.803 |
| 14:32 #0 | 519 | +0.13 / -0.07 / -0.32 | 0.00017 | 9.782 |
| 15:01 #0 | 59 | +0.14 / -0.07 / -0.33 | 0.00017 | 9.796 |
해석
캘리브레이션 파일에 무엇을 넣을 것인가
검증됨: 위의 백색잡음 밀도, 정지 상태 자이로 바이어스, 자이로 출력 최소 단위. 납품 권고: 현재의 10–20배 일반 사전값 대신 측정한 백색잡음 밀도에 모델링되지 않은 효과를 감안한 여유 배수를 적용해 적고, 랜덤워크 항목은 몇 시간짜리 전용 녹화가 생길 때까지 사전값으로 둡니다.
식별하지 못한 것: 바이어스 랜덤워크(519초 이하 녹화로는 워밍업 드리프트와 구분 불가), 온도 의존성(원시 온도 값의 단위 미확인), 가속도계 바이어스(구간마다 기울기가 달라 바이어스와 중력 방향을 분리할 수 없음, 측정한 중력 크기는 9.782–9.803m/s²), 머리 장착 상태의 거동.
범위와 한계
연구의 한계
이 노트가 보여주지 않는 것을 먼저 밝힙니다.
- R8 스테레오+IMU 장비 1대, 책상 위, 실내 사무실 1곳, 하루(2026-10-26) 측정 결과이며 다른 장비 전체를 대표하지 않습니다.
- 모든 측정은 자동 처리입니다. 사람이 독립적으로 다시 분석하지 않았으므로 알고리즘 기반 예비 분석(AI-only preliminary analysis)입니다.
- 정지 구간 길이는 59–519초입니다. 구간 길이의 약 4분의 1을 넘는 앨런 값은 보고하지 않으며 랜덤워크는 식별하지 않았습니다.
- 정지 구간 판별은 자이로 기준값을 씁니다. 두 구간에서 가속도가 천천히 변해(책상을 건드린 것으로 보임) 포함은 했지만 대표 수치에는 쓰지 않았습니다.
- IMU 부품 번호와 설정 범위는 공급사 정보와 데이터에 따른 것이며, 가속도계 범위 설정은 확인하지 못했습니다. 온도 값은 쓰지 않았습니다.
- 원본 IMU 스트림은 승인 후에만 공개하며, 가공한 표는 포함합니다.
FAQ
데이터 구매자가 묻는 질문
Q01이 리그의 자이로 백색잡음 밀도는 얼마인가요?
Q02전용 정지 녹화 없이 IMU 잡음을 잴 수 있나요?
Q03샘플 표준편차로 계산하면 왜 잡음 밀도가 다르게 나오나요?
Q04정지 상태 자이로 바이어스는 얼마나 되나요?
Q05캘리브레이션 파일 사전값을 바꿔야 하나요?
공개 데이터와 코드
근거 자료를 직접 확인하세요
이 노트의 모든 수치는 검증할 수 있습니다. 가공 데이터, 분석 코드, 그림, 실행 가능한 노트북을 공개합니다.
origin-data-lab/imu-noise-bias-static-characterization-stereo-imu-rig저장소 보기 origin-data-lab/imu-noise-bias-static-characterization-stereo-imu-rig데이터셋 열기 origindatalab/odl-static-imu-allanKaggle에서 보기 라이선스: CC BY 4.0 (데이터·그림) · MIT (코드)
Origin Data Lab (2026). 기술노트 #14: 정지 녹화로 측정한 스테레오+IMU 리그의 IMU 잡음과 바이어스. https://origindatalab.io/ko/technical-field-notes/imu-noise-bias-static-characterization-stereo-imu-rig.html