제3부 · 작동 원리 / 제11장
기계가 세상을 느끼는 법
IMU·카메라·깊이 센서·GNSS가 맡는 역할과 각 센서의 한계를 살핍니다.
옵시디언 원고 기반 · 웹판 편집 2026.09.30 · 이 장의 Markdown · 편집 범위
이 본문은 조사 당시의 연구 원고입니다. 제품 상태·가격·수치와 해석은 출처·조사 범위와 함께 읽어 주세요.
참고문헌 16개 ↓ · 본문 [번호]로 출처 확인
11.1 그리는 일보다 어려운 일
가상의 물체를 화면에 그리는 일은 이미 해결된 문제다. 삼각형 수백만 개에 빛을 입히고 그림자를 떨어뜨리는 계산을 손바닥만 한 칩이 1초에 수십 번 해낸다. 증강현실의 어려움은 그림에 있지 않다. 어려움은 그린 물체를 어디에 놓을지 정하는 데 있다.
그 결정을 내리려면 기기가 지금 어느 위치에서 어느 방향을 보고 있는지 알아야 한다. 그것도 매 프레임 새로 알아야 한다. 화면이 초당 60번 갱신된다면 16.7밀리초마다 위치와 자세를 다시 확정해야 한다는 뜻이다.
여기에 곤란한 사실이 하나 있다. 위치를 직접 알려주는 부품은 존재하지 않는다. 가속도계는 힘을 재고, 자이로는 회전 속도를 재고, 카메라는 밝기 배열을 받고, 위성 수신기는 전파의 도착 시각을 센다. 어느 것도 "너는 여기 있다"고 말하지 않는다. 위치와 자세는 언제나 다른 물리량으로부터 간접적으로 추정된 값이다.
추정에는 오차가 붙는다. 그리고 오차의 성질이 센서마다 다르다. 어떤 센서는 짧은 시간에 정확하고 긴 시간에 망가진다. 어떤 센서는 그 반대다. 어떤 센서는 밝은 곳에서만 쓸 만하고, 어떤 센서는 무늬 없는 표면 앞에서 침묵한다.
그래서 이 장의 결론은 미리 말해둘 수 있다. 답은 완벽한 센서 하나가 아니다. 서로 다른 방식으로 불완전한 센서 여럿의 합이다. 각 센서가 어디서 강하고 어디서 무너지는지를 알면, 어떤 조합이 왜 필요한지가 따라 나온다. 여기서부터는 그 하나하나를 뜯어본다. [1]
11.2 매달린 추가 재는 것은 가속이 아니다
가속도계는 가속도를 직접 재지 않는다. 아주 작은 질량을 스프링으로 매달아 두고, 그 질량이 기준 틀에 대해 얼마나 밀려났는지를 잰다. 이 작은 질량을 증명질량이라 부른다. 무게는 보통 마이크로그램 수준이고, 실제 변위는 나노미터 단위다.
MEMS 방식은 이 나노미터 변위를 전기로 읽는다. 증명질량과 고정 프레임에 빗살 모양 전극을 서로 맞물려 놓으면, 질량이 움직일 때 전극 간격이 달라진다. 간격이 좁아지면 정전용량이 커진다. 이 변화량은 펨토패럿, 즉 10의 마이너스 15승 패럿 단위다. 그래서 증폭 회로를 같은 칩 위에 붙여 놓는다. 신호를 칩 밖으로 끌고 나가는 순간 잡음에 묻히기 때문이다.
여기서 원리적으로 중요한 함정이 나온다. 가속도계가 재는 물리량은 좌표 가속도가 아니라 비력(specific force)이다. 비력은 중력을 뺀 나머지 힘이 질량에 만드는 가속, 다시 말해 물체가 자유낙하에서 얼마나 벗어나 있는지를 뜻한다.
그 결과는 직관을 거스른다. 책상 위에 가만히 놓인 기기의 가속도계는 0을 출력하지 않는다. 위쪽으로 9.81 m/s²를 출력한다. 반대로 기기를 손에서 놓아 자유낙하시키면 출력이 0에 수렴한다. 아인슈타인의 등가원리 때문에 가속도계는 중력과 가속을 원리적으로 구별할 수 없다.
버스가 급출발할 때 손잡이에 매달린 몸이 뒤로 쏠린다. 그 쏠림의 정도만으로 버스가 얼마나 세게 출발했는지 알아맞히는 장치가 가속도계다. 문제는 버스가 언덕을 오를 때도 몸이 똑같이 쏠린다는 것이다.
따라서 가속도계 출력에서 이동에 의한 가속을 뽑아내려면 기기의 자세를 먼저 알아야 한다. 어느 방향이 아래인지를 알아야 중력 성분을 빼낼 수 있다. 그리고 그 자세를 알려주는 것은 자이로다. 두 센서가 서로를 필요로 하는 구조가 여기서 시작된다.
보급형 부품의 실제 사양을 보면 척도가 잡힌다. 보쉬 센서텍의 BMI270은 스마트폰과 웨어러블에 널리 쓰이는 6축 부품이다.
| 항목 | 값 |
|---|---|
| 측정 범위 | ±2 g(16,384 LSB/g) ~ ±16 g(2,048 LSB/g) |
| 분해능 | 16비트 |
| 노이즈 밀도 | 0.16 mg/√Hz (±8 g 범위, 노멀 모드 조건) |
| 제로-g 오프셋 | ±20 mg (실장 후 수명 전체 누적 규격) |
| 출력 데이터율 | 0.78 Hz ~ 1.6 kHz (노멀 모드 12.5~1,600 Hz, 저전력 모드 0.78~400 Hz) |
| 동작 온도 | -40 ~ +85°C |
표 출처: [2] (본문 기준으로 재구성)
조건을 붙여 읽어야 하는 숫자가 둘이다. 노이즈 밀도 0.16 mg/√Hz는 측정 범위를 ±8 g로 놓은 노멀 모드 조건값이다. 제로-g 오프셋 ±20 mg는 초기 전형값이 아니라 기판에 납땜한 뒤 수명 전체에 걸쳐 누적될 수 있는 한계 규격이다. 20 mg는 0.196 m/s²에 해당한다. 사양표의 숫자는 조건을 떼어내면 의미가 달라진다. [2]
11.3 흔들리는 구조물이 회전을 느끼는 법
MEMS 자이로에는 회전하는 팽이가 없다. 대신 증명질량을 한 방향으로 끊임없이 진동시켜 둔다. 이것을 구동 모드라 한다. 상용 소자의 구동 진동 주파수는 통상 10~30 kHz 대역이다.
이 상태에서 칩 전체가 회전하면 진동하는 질량에 코리올리 힘이 작용한다. 크기는 F = -2m(ω × v)로 주어지고, 방향은 진동 방향과 회전축 모두에 수직이다. 이 힘이 질량을 옆으로 아주 조금 흔든다. 이것이 감지 모드다. 감지 변위는 피코미터에서 나노미터 사이이고, 그 크기가 회전 각속도에 비례한다.
회전목마 위에서 중심을 향해 걸어가면 몸이 옆으로 밀린다. 밀리는 느낌의 세기가 회전목마의 회전 속도를 알려준다. MEMS 자이로는 그 걸어가는 사람을 초당 수만 번 앞뒤로 흔들리는 미세 구조물로 대체한 장치다.
핵심은 이 센서가 각도를 주지 않는다는 점이다. 각속도를 준다. 각도를 얻으려면 시간에 대해 적분해야 하고, 적분은 오차를 지운 적이 없다. 오차를 쌓는다.
오차의 물리적 원인도 구조에서 나온다. 구동 진동과 감지 진동이 완벽히 직교하지 않으면, 회전이 없어도 구동 신호의 일부가 감지 모드로 새어 들어온다. 이것을 구적 오차라 한다. 구적 오차는 온도에 따라 변하고, 그 변화가 바이어스 드리프트의 주된 발생원이다.
그래서 자이로 사양표에서 가장 중요한 숫자는 측정 범위가 아니다. 제로-레이트 오프셋과 그 온도 계수다. BMI270의 제로-레이트 오프셋은 ±0.5 dps로 규정되어 있다. 시간당으로 환산하면 1,800°/hr이다. 아무 보정 없이 쓰면 회전하지 않는 기기가 한 시간에 다섯 바퀴를 돈 것으로 계산된다는 뜻이다.
| 항목 | 값 |
|---|---|
| 측정 범위 | ±125 dps(262.1 LSB/dps) ~ ±2,000 dps(16.4 LSB/dps) |
| 노이즈 밀도 | 0.007 dps/√Hz (퍼포먼스 모드) / 0.010 dps/√Hz (노멀 모드) |
| 제로-레이트 오프셋 | ±0.5 dps |
| 출력 데이터율 | 25 Hz ~ 6.4 kHz |
| 소비 전류 (가속도계+자이로) | 685 µA (노멀 모드, VDD 1.8 V, 최대 ODR) / 970 µA (퍼포먼스 모드) |
표 출처: [3] (본문 기준으로 재구성)
노이즈 밀도와 소비 전류는 같은 동작점에서 읽어야 한다. 0.007 dps/√Hz는 퍼포먼스 모드 조건값이고, 그 모드의 소비 전류는 970 µA다. 685 µA는 노멀 모드 값이며 그때 노이즈 밀도는 0.010 dps/√Hz로 올라간다. 전력으로 옮기면 데이터시트 조건인 1.8 V 기준으로 각각 약 1.23 mW와 1.75 mW다. 전력 예산을 짤 때 이 두 밀리와트의 차이가 하루 사용 시간을 가른다.
자세 오차가 왜 치명적인지도 숫자로 잡을 수 있다. 머리 방향이 1도 틀어지면 3 m 앞에 놓인 가상 물체는 약 5 cm 어긋난다. 자이로는 증강현실에서 가장 빠른 자세 정보원이다. 동시에 가장 위험한 오차원이다. [3]
11.4 시간이 적이 되는 순간
관성 센서만으로 위치를 추정하는 방식을 관성항법이라 한다. 여기서 오차가 자라는 방식에는 뚜렷한 위계가 있다. 이 위계를 이해하면 증강현실이 무너지는 거의 모든 상황이 한 줄로 설명된다.
첫 번째 층은 자세다. 자이로에 상수 바이어스 b_g가 있으면, 각속도를 한 번 적분해 얻는 자세 오차는 b_g 곱하기 t로 자란다. 시간에 정비례한다.
두 번째 층은 위치다. 가속도계 바이어스 b_a는 두 번 적분되어 위치 오차 ½·b_a·t²를 만든다. 시간의 제곱이다.
세 번째 층이 진짜 문제다. 자세가 b_g·t만큼 틀어지면 기기는 중력 벡터가 어느 쪽인지 잘못 안다. 그러면 지구 중력 g의 일부가 수평 방향 가속으로 오해된다. 그 크기는 대략 g·b_g·t다. 이 가짜 가속을 두 번 적분하면 위치 오차는 (1/6)·g·b_g·t³이 된다. 시간의 세제곱이다.
중력이 오차 증폭기 노릇을 하는 셈이다. 눈을 감고 걷는 사람을 떠올리면 된다. 방향 감각이 1초에 0.5도씩 틀어진다면 처음 몇 걸음은 괜찮다. 그런데 몸이 살짝 기울어진 채로 걷기 시작하면 기울어진 만큼 중력이 옆으로 밀어내고, 그 밀림이 다시 쌓인다. 10초면 복도 반대편 벽이다.
BMI270의 보정 전 규격값을 그대로 넣으면 다음과 같다. 가속도계 바이어스는 20 mg, 즉 0.196 m/s², 자이로 바이어스는 0.5 dps, 즉 8.73×10⁻³ rad/s로 둔다.
| 경과 시간 | 자세 오차 | 위치 오차: t² 항 | 위치 오차: t³ 항 |
|---|---|---|---|
| 1초 | 0.5° | 9.8 cm | 1.4 cm |
| 10초 | 5.0° | 9.8 m | 14.3 m |
표 출처: [4] (본문 기준으로 재구성)
10초를 넘기면 t³ 항이 t² 항을 추월한다. 같은 식으로 60초를 넣으면 t³ 항만으로 3.1 km가 나온다. 방 안에 서 있는 기기가 1분 뒤에는 옆 동네에 있다고 주장하는 것이다. 이것이 관성 센서 단독 추정이 수 초 이상 버틸 수 없는 근본 이유다.
보정이 개입하면 그림이 달라진다. 자이로 바이어스를 실시간으로 추정해 잔여값을 0.01 dps, 즉 약 36°/hr까지 낮추면, 10초 뒤 t³ 항은 14.3 m에서 28 cm로 줄어든다. 오차가 50배 작아진 것이 아니라 50배의 세제곱만큼 작아진 바이어스가 그대로 반영된 결과다.
센서 등급이 얼마나 결정적인지도 이 계산이 보여준다. 100 mg급 저가 가속도계는 약 10초 만에 50 m 수준의 정확도를 잃는다. 10 µg급 최고급 관성 장치는 같은 정확도를 약 17분 유지한다. 부품값이 네 자릿수 차이 나는 이유가 여기 있다.
위계 자체는 티터튼과 웨스턴의 『Strapdown Inertial Navigation Technology』, 그리고 그로브스의 『Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems』가 정리한 고전적 오차 전파 관계다. 각속도의 상수 오차가 속도에서 2차, 위치에서 3차 오차 증가를 낳는다는 진술로 요약된다. [4]
11.5 앨런 편차, 센서 등급을 읽는 언어
사양표에는 노이즈 밀도와 바이어스 안정도가 따로 적혀 있다. 이 둘을 같은 잡음의 두 얼굴로 오해하기 쉽다. 사실은 서로 다른 잡음 과정이다. 노이즈 밀도는 각속도에 실린 백색잡음에서 나오고, 바이어스 안정도는 플리커 잡음, 즉 1/f 잡음에서 나온다.
두 잡음을 한 그림에 놓고 보는 표준 도구가 앨런 분석이다. 정지한 센서를 몇 시간 켜놓고 출력을 기록한다. 그다음 평균을 내는 구간 길이 τ를 바꿔가며 통계량을 계산해 로그-로그 그래프로 그린다. 관행은 앨런 분산의 제곱근인 앨런 편차 σ(τ)를 세로축에 놓는 것이다.
그래프는 세 구간으로 읽는다.
| 구간 | 지배 잡음 | 앨런 편차 기울기 |
|---|---|---|
| 짧은 τ | 백색잡음(각도 랜덤워크) | -1/2 |
| 최저점 | 플리커(1/f) 잡음 | 0 |
| 긴 τ | 느린 온도 변화, 레이트 램프 | +1/2 |
표 출처: [5] (본문 기준으로 재구성)
기울기를 말할 때는 대상을 반드시 짝지어야 한다. 백색잡음 구간에서 앨런 편차의 기울기는 -1/2이지만, 제곱하지 않은 앨런 분산 σ²(τ)를 그리면 같은 구간의 기울기는 -1이다. 편차와 분산을 섞어 말하면 기울기 숫자가 절반으로 틀린다.
짧은 τ 구간이 내려간다는 것은 오래 평균낼수록 좋아진다는 뜻이다. 그런데 어느 지점에서 내려가기를 멈춘다. 그 최저점이 바이어스 안정도이며, 아무리 오래 평균내도 이보다 잘할 수 없는 한계다. 그 뒤로는 그래프가 다시 올라간다. 느린 온도 변화가 평균값 자체를 끌고 다니기 때문이다.
체중계에 열 번 올라가 평균을 내면 수치가 안정된다. 그런데 백 번, 천 번 올라가도 더 이상 정확해지지 않는 지점이 온다. 체중계 자체가 아침저녁으로 조금씩 달라지기 때문이다. 앨런 편차 그래프의 최저점이 바로 그 지점이다.
단위 변환에는 관행이 있다. 노이즈 밀도를 °/s/√Hz로 읽고 60을 곱하면 각도 랜덤워크가 °/√hr로 나온다. BMI270의 0.007 dps/√Hz는 약 0.42°/√hr이다. 가속도계 쪽에서는 노이즈 밀도 0.16 mg/√Hz, 즉 160 µg/√Hz가 약 0.094 (m/s)/√hr의 속도 랜덤워크에 대응한다.
주의할 점이 있다. 각도 랜덤워크 0.42°/√hr와 바이어스 안정도 °/hr는 차원이 다르다. 전자는 시간의 제곱근으로 자라는 확산 계수이고, 후자는 평균값이 떠다니는 폭이다. 두 숫자를 나란히 놓고 크기를 비교하는 것은 성립하지 않는다.
등급 구분은 산업 관행으로만 존재한다. IEEE 647과 IEEE 952는 앨런 분석의 용어와 시험 절차를 규정하지만 등급 경계를 정하지 않는다. 문헌마다 경계가 다르므로 아래 표는 대략의 감각으로만 받아들여야 한다.
| 등급 | 바이어스 안정도 대략 |
|---|---|
| 소비자급 MEMS | 수십 ~ 수백 °/hr |
| 전술급 MEMS | 약 1 ~ 10 °/hr |
| 항법급 광섬유·링레이저 | 0.001 ~ 0.01 °/hr |
표 출처: [5] (본문 기준으로 재구성)
이 표를 BMI270의 제로-레이트 오프셋 ±0.5 dps, 즉 1,800°/hr와 혼동해서는 안 된다. 그 숫자는 보정하지 않은 공장 오프셋 규격이고, 바이어스 안정도는 보정 이후 남는 표류 폭이다. 엘셰이미와 허우, 니우가 2008년에 정리한 앨런 분산 기반 관성 센서 모델링이 이 구분의 표준 참조점이다.
설계 관점에서 앨런 편차 그래프가 답하는 질문은 하나다. 이 부품으로 카메라 없이 몇 밀리초를 버틸 수 있는가. 최저점이 τ 100초에 있다면, 그보다 짧은 시간 척도에서는 다른 센서가 계속 바이어스를 다시 추정해줘야 한다는 뜻이다. [5]
11.6 두 눈으로 거리를 재면 먼 곳이 뭉개진다
카메라 두 대를 나란히 놓고 같은 장면을 찍으면, 가까운 물체일수록 두 영상에서 위치 차이가 크게 난다. 이 차이를 시차라 한다. 관계식은 깔끔하다. Z = f·B/d로, Z는 거리, f는 픽셀 단위 초점거리, B는 두 카메라 간격인 베이스라인, d는 시차의 픽셀값이다.
손가락을 코앞에 세우고 한쪽 눈씩 번갈아 감으면 손가락이 크게 점프한다. 팔을 쭉 뻗으면 조금만 움직인다. 창밖 산은 거의 움직이지 않는다. 그 점프 폭이 곧 거리 정보다.
식에서 Z와 d가 반비례한다는 사실이 모든 것을 결정한다. 양변을 미분하면 깊이 오차는 ΔZ = (Z²/(f·B))·Δd가 된다. 거리의 제곱에 비례해 오차가 커진다. 시차를 재는 정밀도 Δd를 아무리 개선해도 이 제곱 항은 남는다.
초점거리 800 픽셀, 베이스라인 6 cm, 시차 매칭 정밀도 0.2 픽셀을 가정한 예시 계산은 다음과 같다. 세 값 모두 특정 제품 사양이 아니라 감각을 잡기 위한 가정값이다.
| 거리 Z | 깊이 오차 ΔZ |
|---|---|
| 1 m | 4.2 mm |
| 3 m | 3.8 cm |
| 5 m | 10.4 cm |
| 10 m | 42 cm |
표 출처: [6] (본문 기준으로 재구성)
1 m에서 4 mm였던 오차가 10 m에서 42 cm가 된다. 백 배다. 가상 물체를 실제 책상 위에 올려놓으려면 책상 높이를 센티미터 단위로 알아야 한다. 스테레오는 2~3 m 이내에서 이 요구를 충분히 만족한다. 방 전체를 재구성하려 하면 먼 쪽부터 뭉개진다.
해결책은 베이스라인을 늘리는 것이다. B가 커지면 오차가 그에 반비례해 줄어든다. 그런데 대가가 있다. 두 카메라의 공통 시야가 좁아지고 기기가 커진다. 얼굴에 쓰는 기기에서 B는 사람 눈 간격인 6~7 cm를 넘기 어렵다. 이 물리적 제약이 스테레오만으로 실내 전체를 재구성하는 길을 막는다.
두 번째 한계는 더 근본적이다. 시차를 재려면 좌우 영상에서 같은 점을 찾아야 한다. 흰 벽, 단색 커튼, 잔잔한 수면처럼 무늬가 없는 표면에서는 대응점을 특정할 수 없다. 이 경우 깊이가 부정확하게 나오는 것이 아니라 아예 나오지 않는다. 대응점 탐색의 이 실패 모드는 하틀리와 지서만의 『Multiple View Geometry』, 그리고 셀리스키의 『Computer Vision』이 스테레오 정합 문제의 기본 난점으로 다루는 내용이다. 삼각측량 자체의 정식화와 추정 오차 분포는 하틀리와 지서만이 구조 계산을 다루는 장에서 정리했다.
상용 부품의 감각도 참고할 만하다. 인텔 리얼센스 D435 계열은 베이스라인 50 mm, 2 m 지점에서 깊이 오차 2% 이내, 실내 유효 범위 0.3~3 m로 흔히 인용된다. 다만 이 수치들은 2차 자료에서 통용되는 값이며 1차 사양서로 대조하지 못했다. [6]
11.7 없으면 만들어 던진다
무늬 없는 표면에서 대응점을 찾지 못하는 문제를 구조광은 무식하고 확실하게 해결한다. 무늬가 없으면 만들어서 던진다.
적외선 프로젝터가 알려진 패턴을 장면에 투사한다. 점을 뿌리거나, 줄무늬를 걸거나, 그레이 코드를 순차로 쏜다. 옆에 놓인 적외선 카메라가 그 패턴이 물체 표면에서 얼마나 휘고 밀렸는지 본다. 프로젝터와 카메라의 상대 기하는 공장에서 이미 알아냈다. 그래서 패턴 한 조각이 영상에서 어디로 이동했는지만 알면 삼각측량으로 그 지점의 거리가 나온다.
구조광은 결국 프로젝터를 두 번째 카메라로 쓰는 스테레오다. 다른 점은 대응점을 찾는 것이 아니라 심어 놓는다는 것이다.
어두운 방에서 흰 벽에 손전등을 비춰도 벽의 굴곡은 잘 보이지 않는다. 그런데 블라인드 그림자처럼 줄무늬를 드리우면 벽이 튀어나온 곳에서 줄이 휘는 것이 한눈에 보인다. 구조광은 그 줄무늬를 적외선으로 뿌려 사람 눈에 보이지 않게 한 것이다.
정밀도를 끌어올리는 표준 기법은 위상 이동이다. 줄무늬를 조금씩 밀어가며 여러 장 찍으면 줄 간격의 1/10 수준까지 표면 디테일을 분해할 수 있다. 보간을 더하면 높이 방향 분해능이 화소의 1/50까지 내려간다. 살비 등이 2010년에 정리한 구조광 패턴 조사가 이 계열 기법을 체계적으로 비교했다.
실측 사례로는 1세대 키넥트가 남아 있다. 코셸함과 엘버링크가 2012년에 수행한 평가에 따르면, 사양상 동작 범위는 0.5 m에서 5.0 m이고, 무작위 오차는 거리의 제곱으로 증가해 0.5 m에서 수 밀리미터, 최대 거리 5 m에서 약 4 cm에 이른다. 실사용 권장 범위는 이보다 좁게 통용된다. 위키백과가 정리한 값은 1.2~3.5 m이고 확장 범위가 0.7~6 m, 시야각은 57°×43°다. 공칭 동작 범위와 실사용 권장 범위는 정의가 다른 숫자이므로 섞어 읽으면 모순이 생긴다.
한계는 분명하다. 첫째, 강한 햇빛이 투사 패턴을 씻어버린다. 태양광의 적외선 성분이 프로젝터 출력을 압도하기 때문이다. 직사광 아래에서 대부분의 적외선 구조광은 사실상 동작하지 않는다. 둘째, 유리와 금속 같은 반사면은 빛을 카메라 밖으로 튕기거나 반대로 과포화시킨다. 셋째, 같은 공간에 여러 대가 있으면 패턴끼리 간섭한다.
얼굴 인식이나 손 추적처럼 가까운 거리에서 밀리미터 정밀도가 필요한 기능은 이 방식에 기대고 있다. 동시에 증강현실 기기가 실외로 나가면 깊이 감지가 나빠지는 이유도 여기에 있다. 널리 인용되는 도트 개수와 파장 수치가 있지만, 1세대 키넥트의 적외선 도트 약 3만 개, 830~850 nm 대역, 애플 트루뎁스의 약 3만 점과 25~50 cm 유효 거리는 모두 공식 사양서로 확인되지 않은 2차 자료 기반 수치다. 서술에 쓸 때는 이 유보를 함께 붙여야 한다. [7]
11.8 위상으로 재면 거리가 접힌다
빛의 왕복 시간을 직접 재는 것은 어렵다. 간접 비행시간 방식은 우회로를 택한다. 적외선 광원의 밝기를 수십 메가헤르츠로 계속 흔들어 장면에 뿌리고, 돌아온 빛이 원래 파형에 비해 얼마나 위상이 밀렸는지를 잰다.
위상 지연 φ는 왕복 거리에 비례한다. 그래서 거리는 d = (c/4πf_mod)·φ로 나온다. 실제 소자는 픽셀마다 0°, 90°, 180°, 270° 네 시점에 전하를 나눠 받는 구조를 둔다. 네 값 q1부터 q4까지를 모아 arctan((q3-q4)/(q1-q2))를 계산하면 위상이 나온다. 네 번의 샘플로 한 번의 거리를 얻는 구조다.
원리에 내장된 함정이 있다. 위상은 360°를 지나면 다시 0°가 된다. 따라서 측정 거리는 일정 간격마다 접힌다. 이 간격을 모호 거리라 하고, 값은 c/(2·f_mod)다.
| 변조 주파수 | 모호 거리 |
|---|---|
| 20 MHz | 7.5 m |
| 50 MHz | 3.0 m |
| 100 MHz | 1.5 m |
표 출처: [8] (본문 기준으로 재구성)
20 MHz로 변조하면 7.5 m 밖에 있는 물체가 0 m처럼 보인다. 변조를 빠르게 해서 위상 분해능을 높이면 모호 거리가 짧아지고, 느리게 해서 범위를 넓히면 정밀도가 떨어진다. 실무는 서로 다른 두세 개의 변조 주파수를 섞어 이 접힘을 풀어낸다. 이 과정을 위상 풀기라 부른다.
파도 위에 부표를 띄우고, 파도가 부표에 닿아 되돌아오는 시점이 원래 파도와 얼마나 어긋났는지로 거리를 재는 것과 같다. 문제는 파도가 반복된다는 것이다. 한 주기만큼 멀리 있는 부표는 바로 앞 부표와 구별되지 않는다.
두 번째 함정은 멀티패스다. 간접 비행시간 방식은 장면 전체를 한꺼번에 비춘다. 그러면 벽과 바닥에 두 번 튕겨 들어온 빛이 직접 들어온 빛과 같은 픽셀에 섞인다. 섞인 신호의 위상은 두 경로의 평균 쪽으로 끌려간다. 방 구석이 실제보다 둥글고 멀게 측정되는 전형적 오류가 여기서 나온다.
정확도는 통상 측정 거리의 약 1% 수준으로 알려져 있다. 프레임률은 최대 160 fps까지 보고된다. 최대 범위는 제품 계열에 따라 크게 갈린다. 널리 인용되는 60 m는 PMD 계열 제품에 한정된 값이고, 같은 문헌이 스위스레인저 계열은 5~10 m로 적는다. 60 m를 간접 비행시간 방식 일반의 한계로 옮기면 과대 일반화다.
2세대 키넥트가 이 방식의 대표 사례다. 깊이 출력 512×424를 30 Hz로 내보내고, 유효 범위는 0.5~4.5 m, 시야각은 70°×60°다. 사르볼란디 등이 2015년에 구조광 키넥트와 비행시간 키넥트를 같은 조건에서 비교한 연구가 두 방식의 차이를 실측으로 보여준다.
전력은 조명부가 지배한다. 조명 유닛 단독 출력이 약 1 W 수준이라는 서술이 널리 인용되는데, 이 값을 모듈 전체나 기기 전체로 옮기면 자릿수가 틀린다. 2세대 키넥트는 12 V에 2.67 A, 즉 약 32 W 정격의 전용 어댑터를 요구하는 거치형 기기이고 실측 소비는 10 W대 중반으로 보고된다. 얼굴에 올리는 기기의 전력 예산과는 다른 세계의 숫자다. [8]
11.9 광자 한 알의 도착 시각을 센다
직접 비행시간 방식은 정공법이다. 아주 짧은 레이저 펄스를 쏘고, 반사된 빛이 언제 돌아왔는지 그 시각 자체를 잰다. 위상 접힘이 없고 원리가 단순하다. 문제는 척도다.
| 왕복 거리 | 소요 시간 |
|---|---|
| 1 cm | 66.7 ps |
| 1 m | 6.67 ns |
| 100 m | 667 ns |
표 출처: [9] (본문 기준으로 재구성)
1 cm 분해능을 원하면 66.7 피코초를 구별해야 한다. 거꾸로 타이밍 분해능 100 피코초는 거리 1.5 cm에 대응한다. 이런 시간 척도는 보통 포토다이오드로 접근할 수 없다.
그래서 단일광자 애벌랜치 다이오드, 줄여서 SPAD가 등장한다. SPAD는 항복전압보다 더 높은 역전압을 걸어놓은 다이오드다. 이 상태를 가이거 모드라 한다. 여기에 광자 하나가 들어와 전자 하나를 만들면, 3×10⁵ V/cm를 넘는 강한 전기장이 그 전자를 가속해 충돌 이온화를 일으킨다. 새로 생긴 전자들이 다시 이온화를 일으키고, 눈사태처럼 번져 측정 가능한 전류 펄스가 된다. 광자 하나가 수십억 개의 전하로 증폭되는 것이다.
이 사태는 스스로 멈추지 않는다. 그래서 소광 회로가 전압을 항복전압 아래로 끌어내려 꺼야 한다. 꺼져 있는 동안 새 광자를 받을 수 없고, 이 구간을 사시간이라 부른다. 코바 등이 1996년에 정리한 소광 회로 설계가 이 계열의 고전적 참조다.
수치는 소자 종류를 구분해 읽어야 한다. 최신 개별 소자는 사시간 1~2 나노초, 암계수율 10 Hz 이하, 지터 50 피코초 수준까지 보고된다. 반면 직접 비행시간 촬상에 쓰이는 CMOS SPAD 어레이는 화소를 빽빽이 채워야 하므로 사정이 다르다. 어레이에서는 사시간이 수 나노초에서 수십 나노초, 암계수율은 화소당 수십에서 수천 cps 범위로 넓어진다. 개별 소자 수치를 어레이에 그대로 옮기면 성능을 크게 낙관하게 된다.
여기에 두 번째 아이디어가 붙는다. 단일 펄스의 반사광은 햇빛 잡음에 묻힌다. 그래서 같은 방향으로 수천에서 수만 번 쏘고, 광자 도착 시각을 히스토그램으로 쌓는다. 잡음 광자는 시간축에 고르게 퍼지지만 진짜 신호는 매번 같은 시간 칸에 떨어진다. 충분히 쌓으면 히스토그램에 봉우리가 솟고, 그 봉우리의 위치가 곧 거리다.
깜깜한 협곡에서 손뼉을 치고 메아리가 돌아오는 시각으로 벽까지의 거리를 재는 일과 같다. 다만 빛은 너무 빨라 한 번의 메아리로는 안 된다. 수천 번 손뼉을 쳐서 도수분포표를 그린다. 바람 소리는 아무 때나 들리지만 메아리는 늘 같은 시각에 오므로 표에서 봉우리로 튀어나온다.
이 통계적 누적이 직접 비행시간 방식이 밝은 야외에서도 동작하는 비결이다. 모호 거리도 위상이 아니라 펄스 반복 주기로 결정되므로 훨씬 멀다. 100 m 급 측정이 이 방식으로 이루어진다. [9]
11.10 손 안의 라이다가 실제로 하는 일
애플이 2020년 아이패드 프로와 아이폰 12 프로부터 넣은 라이다 스캐너는 자동차용 회전식 라이다와 전혀 다르다. 움직이는 부품이 없는 고정형 플래시 방식의 직접 비행시간 센서다.
구조는 두 부분이다. VCSEL 어레이가 적외선 펄스를 쏘고, 회절광학소자가 그 빛을 격자 형태의 점 패턴으로 쪼개 장면에 던진다. 반사광은 SPAD 어레이가 받아 점마다 광자 도착 시각 히스토그램을 쌓는다. 구조광처럼 점을 뿌리되, 거리는 삼각측량이 아니라 시간으로 푼다.
점의 개수는 1차 문헌으로 확인된다. 루첸부르크와 크룬, 비외르크가 2021년에 발표한 평가 논문은 VCSEL이 8×8 점 배열을 내보내고 이것이 3×3 격자로 회절되어 총 576점이 된다고 기술한다. 흔히 인용되는 24×24 배열이라는 설명은 총점 수만 맞고 구조는 틀렸다. 940 nm 대역이라는 파장 정보는 분해 리포트에 근거한 것이며 애플 공식 발표는 아니다. 애플 문서에 근거한 수치는 유효 작동 거리 약 5 m 이내뿐이다.
출력의 성격을 이해하는 것이 중요하다. 라이다가 내놓는 것은 조밀한 깊이 영상이 아니다. 수백 개 수준의 희소한 거리 점이다. ARKit의 깊이 API가 내보내는 256×192 깊이 맵을 60 Hz로 받을 수 있지만, 그 해상도는 라이다 원시 분해능이 아니라 카메라 영상과 추정 결과를 함께 섞어 채워 올린 결과다.
컴컴한 방에 형광 콩알 수백 개를 한꺼번에 뿌리고, 각 콩알이 바닥에 닿는 소리가 언제 들리는지로 방의 지형을 그리는 것과 같다. 콩알이 수백 개뿐이라 지형은 성글게 나오고, 그 사이는 사진을 보고 메꾼다.
정확도 수치는 조건을 정확히 옮겨야 한다. 앞의 2021년 평가 논문이 보고한 값은 두 가지다. 한 변 10 cm 이상인 소형 물체의 모델에서 절대 정확도 ±1 cm, 정밀도 오차 1 cm, 검출 한계 약 5 cm. 그리고 130 m × 15 m × 10 m 규모의 해안 절벽 모델 전체에서 절대 정확도 ±10 cm. 두 숫자는 대상 규모가 다른 값이고, 측정 거리별 오차 곡선이 아니다. 논문은 대형 모델의 정합 잔차를 라이다의 거리 측정 오류가 아니라 기기 관성 센서의 부정확성 탓으로 귀속한다. 덧붙이면 이 연구는 12월 덴마크 해안의 야외에서 수행되었다.
이 구조를 이해하면 체감 성능이 설명된다. 라이다는 평면의 위치와 실제 크기를 순간적으로 확정해준다. 그것만으로도 평면 인식이 느리고 크기가 틀리던 시대가 끝났다. 그러나 물체의 미세한 형태를 되살리는 일은 여전히 카메라 기반 추정의 몫이다. 라이다가 달렸다는 사실만으로 3차원 스캔이 정확해지지는 않는다. [10]
11.11 프레임을 버린 눈
일반 카메라는 초당 30번, 모든 픽셀을 한꺼번에 읽는다. 문제는 대부분의 픽셀이 이전 프레임과 거의 같다는 것이다. 대역폭과 전력의 대부분이 변하지 않았다는 정보를 전송하는 데 쓰인다.
이벤트 카메라는 이 전제를 뒤집는다. 각 픽셀이 독립적으로, 서로 다른 시각에 동작한다. 픽셀은 자기가 마지막으로 보고한 밝기를 기준값으로 저장해두고 현재 밝기와 계속 비교한다. 차이가 임계값을 넘는 순간에만 기준값을 갱신하고 이벤트를 하나 내보낸다. 이벤트의 내용은 네 값이 전부다. x 좌표, y 좌표, 시각, 그리고 밝아졌는지 어두워졌는지.
보안요원이 화면 전체를 1초에 30번 훑어보는 대신, 화면 각 구역에 앉은 수십만 명의 감시원이 자기 구역에서 뭔가 달라졌을 때만 외치는 방식이다. 아무 일 없으면 아무도 말하지 않는다.
결정적인 설계는 비교를 밝기의 로그값으로 한다는 점이다. 로그 차이는 곧 상대적 대비다. 몇 퍼센트 변했는가를 보는 것이므로, 어두운 골목이든 눈부신 창가든 같은 임계값이 통한다. 통상 임계값은 10~25% 범위로 설정한다. 이것이 비상식적으로 넓은 다이내믹 레인지의 원천이다.
그 레인지를 숫자로 말할 때는 규약을 밝혀야 한다. 리히트슈타이너와 포시, 델브뤼크가 2008년 원조 논문에서 보고한 120 dB는 진폭 규약, 즉 20·log₁₀ 기준으로 계산한 값이고 조도비 10⁶대 1, 약 20스톱에 해당한다. 고급 DSLR과 비교하려면 같은 규약으로 환산해야 한다. 니콘 D850의 측정 다이내믹 레인지 약 14.8 EV를 20·log₁₀ 규약으로 옮기면 약 89 dB이다. 전력 규약인 10·log₁₀으로 환산한 44.6 dB를 그대로 들고 와 비교하면, 최고급 DSLR이 일반 CMOS보다 레인지가 좁다는 물리적으로 불가능한 서열이 만들어진다.
프레임 노출 시간이라는 개념 자체가 없으므로 모션 블러가 원리적으로 존재하지 않는다. 타임스탬프 분해능은 마이크로초 단위다. 다만 실제 지연시간은 신호 대비와 조도, 소자 설계에 따라 수십 마이크로초에서 수 밀리초까지 달라진다.
해상도는 빠르게 올라왔다. 2008년 원조 소자가 128×128, 2014년 DAVIS240이 240×180, 2019년에 640×480이 나왔고, 현재 상용 소자는 1280×720 급에 이르렀다. 이 연표에는 널리 퍼진 오류가 하나 있다. 2014년을 128×128의 연도로 적은 자료가 많은데, 128×128은 2008년 원조 논문의 사양이다.
대가도 있다. 텍스처가 있고 움직여야만 데이터가 나온다. 정지한 장면 앞에서는 아무것도 보이지 않는다. 출력이 비동기 이벤트 스트림이라 기존 컴퓨터 비전 알고리즘을 그대로 쓸 수 없다. 갈레고 등이 2022년에 정리한 서베이가 이 분야의 표준 정리이며, 전용 알고리즘 계열이 따로 자라난 사정을 보여준다.
증강현실 관점에서 이 센서의 매력은 분명하다. 빠른 머리 회전에서 일반 카메라는 모션 블러로 특징점을 놓치고 추적이 무너진다. 이벤트 카메라는 바로 그 순간에 데이터가 많아진다. 저지연·저전력 추적의 유력 후보로 연구되고 있으나, 아직 상용 기기의 주류는 아니다. 소비 전력은 이벤트 발생량에 비례해 변동하며 정적 장면에서 수 밀리와트 수준까지 내려간다는 서술이 통용되는데, 이는 2008년 128×128 소자 기준의 추정이고 현재 1 MP급 소자의 실제 값은 별도 확인이 필요하다. [11]
11.12 나침반이 실내에서 미치는 이유
자력계의 역할은 다른 센서가 절대로 알 수 없는 것 하나를 메우는 데 있다. 중력은 아래가 어느 쪽인지 알려주지만 북쪽은 알려주지 못한다. 요, 즉 수평면 안에서의 방위에 대한 절대 기준은 지자기밖에 없다.
소자 방식은 두 계열이다. 이방성 자기저항 소자는 퍼멀로이, 즉 니켈-철 합금 박막의 전기저항이 자화 방향과 전류 방향 사이 각도에 따라 변하는 성질을 쓴다. 응답이 1 마이크로초 이하로 빠르고 반도체 공정으로 대량생산된다. 홀 효과 소자는 원래 자기장이 비교적 클 때 쓰는 방식이다. 지구 자기장은 중위도 지표에서 25~65 µT, 전 지구적으로 20~80 µT 범위이고 이는 홀 소자 단독 감도 범위 밖이다. 그래서 홀 기반 스마트폰 자력계는 자속집중기를 반드시 함께 쓴다. 두 방식을 대등한 대안처럼 나열하면 감도 척도가 빠진 서술이 된다.
문제는 지자기가 약하고 쉽게 오염된다는 점이다. 왜곡은 두 종류로 나뉜다. 하드아이언 왜곡은 기기에 붙은 영구자석이 만드는 고정 오프셋이다. 스피커, 진동모터, 자석식 케이스가 원인이다. 이 왜곡은 측정값이 그리는 구의 중심을 원점에서 밀어낸다. 소프트아이언 왜곡은 주변 강자성체가 지자기 자체를 굴절시켜 그 구를 타원체로 일그러뜨린다.
보정 방법은 이 기하에서 곧바로 나온다. 기기를 8자로 흔들어 여러 방향의 측정점을 모으고, 그 점군에 타원체를 맞춘다. 타원체의 중심이 하드아이언 오프셋이고, 축비가 소프트아이언 변형이다. 르노댕과 아프잘, 라샤펠이 2010년에 제시한 자기 영역 3축 보정 모델이 이 절차의 표준 정식화다.
그러나 보정으로 제거되지 않는 왜곡이 남는다. 건물 철골, 엘리베이터, 배선을 흐르는 전류가 만드는 왜곡은 위치에 따라 달라진다. 기기 자체에 고정된 오차가 아니므로 어떤 기기 보정으로도 근본적으로 제거할 수 없다.
나침반을 들고 철제 책장 사이를 걸어가면 바늘이 책장을 따라 돌아간다. 건물 안은 온통 그런 책장이다. 기둥의 철근, 벽 속 배선, 주머니 속 이어폰. 나침반은 북쪽이 아니라 가장 가까운 쇳덩이를 가리키고 있다.
실측 결과는 가혹하다. 리와 갤러거, 뎀스터, 리조스가 2012년에 보고한 실내 자기장 조사에 따르면 철골 건물 안의 국소 왜곡은 수십 µT에 달한다. 지구 자기장 자체와 같은 크기다. 그 결과 헤딩 오차가 수십 도까지 발생하고, 같은 층에서 몇 미터 이동하는 것만으로 방위가 20~30° 흔들리는 사례가 흔하다. 노트북이나 무선충전기 근처에서는 100 µT를 넘는 오염도 생긴다.
스마트폰 자력계의 대표 사양은 분해능 0.1~0.6 µT, 측정 범위 ±1,000~±4,900 µT, 출력률 10~100 Hz, 소비 전류 수백 µA 수준으로 통용된다. 측정 범위가 지구 자기장의 수십 배로 넓은 이유는 자석이 근접했을 때 포화를 피하기 위한 것이다. 다만 이 수치들은 제조사별 편차가 크므로 대표값으로만 받아들여야 한다.
설계 결론은 단호하다. 증강현실에서 자력계는 초기 방위를 한 번 잡아주는 용도 이상으로 쓰기 어렵다. 실내에서 처음 켤 때 방향이 엉뚱하게 잡히거나 시간이 지나며 장면이 서서히 회전하는 현상의 배경에 이 왜곡이 있다. 그래서 정밀한 시스템은 실내에서 자력계 가중치를 크게 낮추거나 아예 끈다. [12]
11.13 야외 절대 위치의 미터 벽
위성 항법 수신기는 각 위성이 보낸 신호가 도착하기까지 걸린 시간에 빛의 속도를 곱해 거리를 구한다. 위성 네 개 이상이 보이면 3차원 위치와 수신기 시계 오차를 동시에 풀 수 있다. 네 번째 위성이 필요한 이유는 수신기 시계가 위성의 원자시계와 동기되어 있지 않기 때문이다.
정확도는 두 요소의 곱으로 결정된다. 하나는 거리 측정 오차다. 여기에는 이온층 지연, 대류권 지연, 위성 시계와 궤도 오차, 수신기 잡음, 멀티패스가 모두 들어간다. 다른 하나는 기하학적 희석이다. 위성들이 하늘에 고르게 퍼져 있으면 이 값이 작고, 한쪽에 몰려 있으면 커진다.
여러 등대에서 오는 뱃고동을 듣고 내 배의 위치를 찾는 일과 같다. 소리가 안개를 지나며 조금 늦어지고, 절벽에 부딪혀 돌아온 메아리가 진짜 고동과 섞이기도 한다. 등대들이 사방에 흩어져 있으면 위치가 잘 잡히지만, 전부 한쪽에만 있으면 앞뒤는 알아도 좌우가 흐릿해진다.
도심에서 정확도가 급격히 나빠지는 이유가 이 구조로 설명된다. 건물이 하늘을 가려 기하가 나빠지고, 동시에 신호가 벽에 반사되어 실제보다 긴 경로로 들어온다. 멀티패스는 기준국 보정으로도 제거되지 않는 국소 오차라 특히 고약하다.
고전적 오차 예산을 항목별로 보면 어디에 여지가 있는지 드러난다. 다만 각 항목의 크기는 문헌과 수신기, 시점에 따라 편차가 크다.
| 오차원 | 대략적 크기 (1σ) |
|---|---|
| 이온층 지연 (천정 방향) | 야간 1~3 m, 주간·태양 극대기 10~20 m |
| 이온층 지연 (저고도각 사선 경로) | 수십 m |
| 대류권 지연 | 약 0.5 m |
| 위성 궤도력 | 약 2.5 m |
| 위성 시계 | 약 2 m |
| 수신기 잡음 | 0.3~1 m |
| 도심 멀티패스 | 수 m ~ 수십 m |
표 출처: [13] (본문 기준으로 재구성)
이온층이 최대 5 m라는 서술이 널리 퍼져 있지만 정확하지 않다. 5 m급은 단일 주파수 모델 보정을 거친 뒤 남는 잔차 수준에 가깝다. 보정 전 실제 지연은 태양 활동과 위도, 고도각에 따라 그보다 훨씬 커진다. 위성 궤도력과 시계 오차는 위 표의 두 항을 제곱합으로 합치면 약 3.2 m가 되며, 현대 방송 궤도력은 이보다 낫다. 어느 쪽 기준인지 밝히지 않으면 합산 오차가 크게 과소 추정된다.
결과적으로 단일 주파수 L1 C/A 수신기의 개활지 수평 정확도는 약 3~5 m, 신뢰수준 95% 기준이다. 도심 협곡에서는 10~50 m로 악화한다. 미국 국방부의 위성 항법 표준 서비스 성능 표준과 캐플런·헤거티의 『Understanding GPS/GNSS』가 이 계열 수치의 표준 참조다.
개선의 길이 열렸다. 스마트폰이 L1과 L5 두 주파수를 함께 받게 되면서 이온층 지연을 직접 소거할 수 있게 되었다. L5의 넓은 대역폭은 멀티패스 억제에도 유리하다. 조건이 좋으면 1~2 m까지 내려간다. 반 디헬런이 2021년 인사이드 GNSS에 실은 도심 위성 항법 논의는 3차원 건물 모델을 써서 반사 신호를 걸러내는 접근을 소개한다.
그래도 벽이 남는다. 도로 한 차선의 폭이 약 3.5 m다. 3~5 m 오차로는 어느 차선에 있는지조차 확정할 수 없다. 갱신률도 문제다. 위성 항법의 위치 갱신은 통상 1~10 Hz로 알려져 있는데, 이는 관성 센서의 200~1000 Hz와 두 자릿수 차이다. 야외 대규모 증강현실이 결국 카메라 기반 시각 측위에 의존하게 되는 이유가 여기 있다. L1 반송파 주파수는 1575.42 MHz이고 파장은 19.03 cm다. 이 파장이 다음 절의 출발점이 된다. [13]
11.14 파장의 개수를 맞히면 센티미터가 열린다
일반 위성 항법은 신호에 실린 코드의 도착 시각을 잰다. C/A 코드 한 칩의 길이는 약 293 m다. 코드 상관 추적은 통상 칩 길이의 0.5~1%까지 분해하므로 1.5~3 m 수준의 관측이 가능하다. 미터급 한계는 칩 길이 자체가 만드는 경성 하한이 아니다. 칩 길이와 추적 정밀도의 곱, 그리고 멀티패스가 함께 만드는 결과다.
실시간 이동측위, 즉 RTK는 다른 눈금을 쓴다. 코드가 아니라 반송파 자체의 위상을 잰다. L1 반송파의 파장은 19.03 cm이고 위상은 파장의 1/100까지 읽을 수 있다. 원리적으로 밀리미터급 관측이 가능하다는 뜻이다.
대가가 있다. 치명적인 미지수 하나가 따라온다. 위성과 수신기 사이에 반송파가 정확히 몇 파장 들어있는지를 모른다. 위상은 한 파장 안의 소수 부분만 알려준다. 이 정수를 정수 모호정수라 부른다. 정수를 하나 틀리면 위치 오차가 곧바로 19 cm 뛴다.
줄자로 거리를 재는데 눈금이 19 cm 간격밖에 없다고 하자. 눈금 사이의 위치는 아주 정밀하게 읽을 수 있지만 그 눈금이 몇 번째인지는 모른다. 여러 방향에서 동시에 재고 서로 비교해 몇 번째 눈금인지를 논리적으로 확정하는 작업이 RTK다. 한 번 확정되면 그 뒤로는 계속 밀리미터로 읽힌다.
RTK의 두 기둥은 다음과 같다. 첫째, 위치를 정확히 아는 기준국의 관측값을 이동국에 실시간으로 보내 차분을 취한다. 그러면 두 수신기가 공유하는 오차가 거의 상쇄된다. 이온층과 대류권 지연, 위성 시계와 궤도 오차가 여기에 해당한다. 둘째, 남은 정수 모호정수는 여러 위성과 여러 시각의 관측을 모아 통계적으로 탐색해 확정한다. 퇴니선이 1995년에 제시한 LAMBDA 알고리즘이 이 탐색의 표준이다.
성능 규격은 두 항의 합으로 쓰인다.
| 항목 | 값 |
|---|---|
| 수평 정확도 | 8 mm + 1 ppm |
| 수직 정확도 | 15 mm + 1 ppm |
| 유효 기선 거리 | 약 20 km 이내 |
| 기준국 거리 50 km 초과 시 | 가상기준점 방식 사용 |
| 모호정수 확정 수렴 시간 | 수 초 ~ 수십 초 |
표 출처: [14] (본문 기준으로 재구성)
1 ppm이라는 항이 핵심이다. 기선 10 km당 1 cm를 뜻한다. 기준국과 멀어지면 대기 오차가 더 이상 공통이 아니게 되므로 차분으로 지워지지 않는다. 정확도가 거리에 비례해 나빠지는 것이 이 항의 물리적 내용이다.
신호가 끊기면 확정된 정수도 잃는다. 다시 수렴할 때까지 수 초에서 수십 초가 걸린다. 나무 그늘과 고가도로가 반복되는 경로에서 RTK를 쓰기 어려운 이유다.
측량과 건설, 드론에서는 이미 표준이다. 소비자용 증강현실 기기에는 아직 들어오지 않았다. 안테나 품질과 기준국 인프라가 필요하기 때문이다. 다만 야외 대규모 증강현실의 미래 선택지로서, 그리고 왜 일반 위성 항법이 센티미터에 이르지 못하는지를 보여주는 대조군으로서 반드시 짚어둘 기술이다. 호프만-벨렌호프와 리히텐에거, 바슬레의 『GNSS』가 이론 전반을 정리했다. [14]
11.15 합쳐야 보인다
지금까지 본 센서는 하나도 예외 없이 어딘가에서 무너진다. 그런데 여럿을 합치면 쓸 만해진다. 왜 그런가. 답은 각 센서의 오차가 서로 다른 시간 척도에 살고 있기 때문이다.
관성 센서는 200~1000 Hz로 동작한다. 짧은 시간의 움직임을 훌륭히 잡아낸다. 그러나 오차가 시간의 세제곱으로 자라 긴 시간에서는 쓸모가 없다. 고주파에서 강하고 저주파에서 약하다.
카메라는 30~60 Hz로 느리다. 모션 블러에 취약하고 무늬 없는 벽 앞에서 눈이 먼다. 그러나 같은 특징점을 다시 보면 누적 오차가 그 자리에서 리셋된다. 저주파에서 강하고 고주파에서 약하다.
| 센서 | 전형적 갱신률 |
|---|---|
| 관성 센서 | 200 ~ 1,000 Hz |
| 카메라 | 30 ~ 60 Hz |
| 자력계 | 10 ~ 100 Hz |
| 위성 항법 | 1 ~ 10 Hz |
표 출처: [1] (본문 기준으로 재구성)
두 오차 곡선이 교차하는 지점에서 융합이 이득을 낸다. 카메라가 30 Hz로 동작하면 프레임 간격은 33.3 밀리초다. 그 구간을 관성 센서가 메우고, 카메라는 주기적으로 관성 센서의 바이어스를 다시 추정해 붙잡아 준다.
33 밀리초 동안 실제로 무엇이 오차를 지배하는지는 따져볼 만하다. 흔히 시간의 세제곱 항이 아직 작기 때문이라고 설명하는데, 그 설명은 틀렸다.
| 오차원 | 33.3 ms 누적 위치 오차 |
|---|---|
| 가속도계 바이어스 t² 항 (미보정 20 mg) | 0.109 mm |
| 가속도계 바이어스 t² 항 (잔여 1 mg) | 5.4 µm |
| 속도 랜덤워크 (160 µg/√Hz) | 약 5.5 µm |
| 자이로 바이어스 t³ 항 (잔여 0.01 dps) | 0.011 µm |
표 출처: [1] (본문 기준으로 재구성)
세제곱 항은 11 나노미터 수준이다. 가속도계 바이어스의 제곱 항과 속도 랜덤워크보다 세 자리에서 네 자리 작다. 짧은 구간에서 세제곱 항이 무해한 이유는 그 항이 작아서가 아니다. 제곱 항과 시간의 제곱근으로 자라는 항이 지배하기 때문이다. 프레임 간극을 세제곱 항의 크기로 정당화하는 논증은 성립하지 않는다.
여기에 결정적인 보너스가 하나 붙는다. 카메라 한 대만으로는 장면의 절대 크기를 알 수 없다. 작은 방을 가까이서 본 것인지 큰 방을 멀리서 본 것인지 구별할 방법이 없다. 이것을 스케일 모호성이라 한다.
그런데 가속도계는 m/s²라는 물리 단위로 측정한다. 기기가 적절히 움직이면 그 물리 단위가 영상의 픽셀 척도에 앵커를 박는다. 스케일이 관측 가능해진다. 시각-관성 주행계가 단안 카메라만으로 미터 단위 지도를 만들 수 있는 이유이고, 증강현실 앱이 처음 켤 때 기기를 좌우로 조금 움직여 달라고 안내하는 이유다.
관측 가능성에는 퇴화 조건이 있다. 널리 오해되는 지점이 여기다. 켈리와 수카트메가 2011년에 정리한 관측 가능성 해석에 따르면, 스케일이 미관측이 되는 조건은 등가속 운동이다. 가속도가 0인 등속 직선운동은 그 특수한 경우일 뿐이다. 다시 말해 일정한 가속으로 계속 움직이더라도 스케일은 풀리지 않는다. 기기를 제자리에서 회전만 시키는 경우에는 병진과 스케일이 함께 미관측 상태가 된다.
눈을 감고 걸으면 방향 감각만으로 열 걸음까지는 그럭저럭 간다. 그 이상은 엉망이다. 대신 몇 걸음마다 눈을 잠깐 떠서 문고리를 확인하면 누적된 틀어짐이 그 자리에서 리셋된다. 눈은 느리고 깜빡임 사이는 비어 있지만, 그 빈 구간은 방향 감각이 충분히 메운다. 둘 다 불완전한데 합치면 걸을 수 있다.
이동 거리 대비 누적 드리프트는 통상 0.1~1% 수준으로 보고된다. 다만 이 수치는 시스템과 환경에 따라 한 자릿수 이상 차이 나므로 표준 벤치마크의 구체적 수치로 대체해 읽는 편이 안전하다. 모우리키스와 루멜리오티스가 2007년에 제시한 다중상태 제약 칼만 필터와 황의 2019년 정리 논문이 이 분야의 기본 문헌이다.
추적이 무너지는 모든 상황이 이 상보 구조의 한쪽이 끊긴 경우로 설명된다. 흰 벽만 보이는 복도, 깜깜한 방, 급격한 회전, 기기를 가만히 든 채 회전만 하는 동작. 예외가 없다. [1]
11.16 믿음의 저울
센서를 합친다는 말은 구체적으로 무엇을 한다는 뜻인가. 그 답을 담당하는 장치가 칼만 필터다. 칼만이 1960년에 발표한 선형 여과·예측 문제의 새로운 접근이 원전이다.
필터는 두 단계를 반복한다. 예측 단계에서는 물리 모델로 다음 시각의 상태를 추정한다. 관성 센서의 적분이 그 물리 모델이다. 동시에 그 추정이 얼마나 못 미더운지를 공분산 행렬 P로 함께 키운다. 시간이 갈수록 P가 커지는 것이 관성 센서의 드리프트에 대응한다.
갱신 단계에서는 실제 관측이 들어온다. 카메라가 본 특징점 같은 것이다. 예측값과 관측값의 차이를 계산하고, 이것을 혁신이라 부른다. 핵심 질문은 하나다. 이 차이만큼 상태를 얼마나 수정할 것인가.
가중치를 정하는 것이 칼만 이득이다. K = P·Hᵀ·S⁻¹로 쓰고, 여기서 S = H·P·Hᵀ + R이며 R은 관측 잡음 공분산이다. 식이 말하는 바는 간단하다. 예측의 불확실성 P가 크면 관측을 많이 믿는다. 관측의 불확실성이 커서 S가 크면 예측을 유지한다. 두 정보원의 신뢰도에 반비례해 자동으로 저울질하는 것이며, 선형과 가우시안 가정 아래서 이 배분이 최적임을 증명할 수 있다.
두 사람이 같은 산의 높이를 말한다. 한 명은 오래된 지도를 보고 말하고, 한 명은 방금 고도계로 쟀다. 둘의 답이 다를 때 누구 말을 더 믿을까. 칼만 필터의 답은 각자가 스스로 밝힌 오차 범위에 반비례해서다. 지도가 ±50 m라 하고 고도계가 ±5 m라 하면 고도계 쪽으로 크게 기운다. 그리고 두 의견을 합친 결과의 오차 범위는 둘 중 어느 쪽보다도 작다. 이것이 융합이 이득인 이유다.
그런데 자세 추정은 본질적으로 비선형이다. 회전은 벡터 공간이 아니라 군 SO(3)에 살고, 이를 표현하는 쿼터니언은 크기가 1이어야 한다는 제약을 가진다. 선형 필터를 그대로 적용하면 제약이 깨진다.
실무의 해법은 오차상태 칼만 필터다. 큰 상태, 즉 현재의 자세와 위치는 비선형 방정식으로 직접 적분한다. 필터는 참값과 추정값의 작은 차이만 다룬다. 이 차이는 항상 작으므로 소각 근사가 성립하고, 선형 필터의 최적성을 거의 그대로 누릴 수 있다. 솔라가 2017년에 정리한 오차상태 칼만 필터용 쿼터니언 운동학이 사실상 표준 참고문헌이다.
상태 벡터의 구성이 이 절의 결론을 담고 있다.
| 상태 성분 | 차원 |
|---|---|
| 자세 | 3 |
| 위치 | 3 |
| 속도 | 3 |
| 자이로 바이어스 | 3 |
| 가속도계 바이어스 | 3 |
표 출처: [15] (본문 기준으로 재구성)
기본형이 15차원이다. 다중상태 제약 방식은 과거 카메라 자세들을 슬라이딩 윈도우로 함께 유지하므로 수십에서 수백 차원까지 커진다. 필터는 관성 센서 속도로 예측하고 카메라 속도로 갱신한다.
주목할 것은 마지막 두 줄이다. 자이로와 가속도계의 바이어스가 상태 벡터에 포함되어 있다. 필터가 위치와 자세를 추정하는 동시에, 그 추정을 망치는 바이어스 자체를 실시간으로 추정해 빼낸다는 뜻이다. 세제곱으로 폭발하던 오차를 실용 수준으로 억누르는 메커니즘의 정체가 이것이다. 그로브스가 정리한 다중센서 통합 항법 교재가 응용 측면을 다룬다. [15]
11.17 보이지 않는 마지막 오차
여러 센서를 융합하려면 각 측정이 언제 일어났는지를 공통 시계로 알아야 한다. 이것이 생각보다 어렵다.
카메라의 타임스탬프부터 애매하다. 노출 시작 시각인가, 끝인가, 중앙인가. 센서 칩이 찍은 시각인가, 운영체제가 받은 시각인가. 그 사이에 얼마나 지연됐는가. 부품 데이터시트가 이 질문에 답하지 않는 경우가 많다.
두 사람이 각자 시계를 보며 사진과 소리를 기록한 뒤 나중에 맞춰 붙인다고 하자. 한 사람의 시계가 1000분의 1초 빠르다면 평소엔 티가 나지 않는다. 그런데 총성과 스타트 장면을 맞출 때는 그 1000분의 1초가 승부를 가른다.
1 밀리초의 어긋남이 만드는 결과를 계산해보면 감각이 잡힌다. 머리를 1 rad/s, 즉 초당 약 57°로 돌리는 중이라면 1 밀리초는 0.057°의 자세 오차다. 3 m 앞 가상 물체는 3.0 mm 흔들린다. 스포츠 동작처럼 5 rad/s로 돌리면 15 mm다. 가만히 있을 때는 완벽히 붙어 있던 물체가 고개를 돌릴 때만 미세하게 헤엄치는 현상의 상당수가 여기서 온다.
그래서 진지한 하드웨어는 두 갈래로 대응한다. 관성 센서와 카메라를 같은 클록으로 하드웨어 트리거하거나, 시간 오프셋 자체를 필터의 상태 변수에 넣어 온라인으로 추정한다. 리와 모우리키스가 2014년에 제시한 카메라-관성 시간 보정 이론이 후자의 표준이다.
두 번째 문제는 롤링 셔터다. 대부분의 CMOS 센서는 한 프레임을 위에서 아래로 줄 단위로 순차 읽는다. 그러면 한 장의 사진 안에서 맨 윗줄과 맨 아랫줄의 촬영 시각이 다르다. 스마트폰급 센서의 판독 시간은 통상 10~30 밀리초로 알려져 있다. 글로벌 셔터 센서는 이 값이 0이다.
눈에 보이는 증상은 젤리 현상이다. 빠르게 움직이면 직선이 기울어지고 화면이 출렁인다. 융합 관점에서 더 나쁜 것은 다른 데 있다. 한 프레임의 특징점들이 서로 다른 자세에서 관측됐는데 같은 시각으로 처리된다. 그래서 정밀한 시각-관성 주행계는 각 특징점의 관측 시각을 줄 번호로부터 개별 보정한다. 궈 등이 2014년에 부정확한 타임스탬프를 가진 롤링 셔터 카메라용 항법을 제시한 연구가 이 문제를 정면으로 다룬다. 추적용 카메라가 글로벌 셔터를 채택하는 이유도 명확해진다.
허용 오차 예산은 어떻게 잡는가. 사람이 인지하는 정합 한계는 움직임부터 화면 갱신까지 전체 지연으로 20 밀리초 이하를 목표로 삼는 것이 산업 관행이다. 문헌에 따라 15~20 밀리초로 다양하고 단일 권위 출처는 없다. 엘리스 등이 1997년에 수행한 실험은 수 밀리초 수준의 지연도 정합 오차로 검출된다는 것을 보였다. 이 예산 안에서 센서 동기화 오차는 1 밀리초 이하로 관리되어야 한다.
마지막으로 모든 센서 선택을 최종적으로 구속하는 제약이 있다. 전력이다. 얼굴 위에 올려놓을 수 있는 전력에는 한계가 있고, 소비된 전력은 전부 열이 되어 피부에 닿는다.
| 부품 | 전력 |
|---|---|
| 6축 관성 센서 (노멀 모드, 1.8 V, 최대 ODR) | 약 1.2 mW |
| 6축 관성 센서 (퍼포먼스 모드) | 약 1.75 mW |
| 자력계 (연속 동작) | 수백 µA |
| 위성 항법 수신기 단독 | 20~50 mW (대표값, 1차 출처 미확인) |
| 간접 비행시간 조명 유닛 | 약 1 W |
| 거치형 비행시간 센서 전체 | 12 V 2.67 A 어댑터, 실측 10 W대 중반 |
표 출처: [16] (본문 기준으로 재구성)
표의 위쪽과 아래쪽 사이에 세 자릿수의 간격이 있다. 관성 센서는 상시 켜둘 수 있다. 자력계도 부담이 없다. 깊이 센서는 그렇지 않다. 조명을 쏘는 센서는 본질적으로 빛을 만들어 내보내는 장치이고, 그 빛의 대부분은 돌아오지 않는다.
그래서 실제 기기에서 깊이 센서는 상시 동작하지 않는다. 필요한 순간에만 켜고, 그 사이는 카메라와 관성 센서가 추정을 이어간다. 센서 목록에서 무엇을 빼야 하는지를 결정하는 것은 정확도 표가 아니라 열 예산이다.
증강현실 기기의 위치와 자세는 어떤 센서도 직접 알려주지 않는 값이며, 짧은 시간에 강한 관성 센서와 긴 시간에 강한 카메라를 불확실성의 크기로 저울질해 겹쳐 놓았을 때에만, 그것도 공통의 시계와 감당 가능한 열 예산 안에서만 추정된다. [16]
참고문헌
본문의 번호를 누르면 출처로 이동합니다. 절 끝의 번호는 그 절의 사실 자료를, 표 아래의 번호는 표에 사용한 자료를 가리킵니다. 비교·계산·비유와 결론은 필자의 재구성입니다. 한 번호에 함께 사용한 문헌이 둘 이상이면 묶어서 적었습니다.
서지정보와 확인 메모는 옵시디언 조사 기록을 바탕으로 복원했습니다. 원 기록의 ‘전문 확인’·‘조회’ 표기는 당시 조사 상태이며 이번 웹판에서 모두 재검증했다는 뜻은 아닙니다. 불완전한 서지사항은 임의로 채우지 않았습니다.
- [1]상보성 및 스케일 관측성: Huang, 'Visual-Inertial Navigation: A Concise Review', ICRA 2019; Mourikis & Roumeliotis, 'A Multi-State Constraint Kalman Filter for Vision-aided Inertial Navigation', ICRA 2007(MSCKF 원조). 관측성 해석: Kelly & Sukhatme, 'Visual-Inertial Sensor Fusion: Localization, Mapping and Sensor-to-Sensor Self-Calibration', IJRR 30(1), 2011. VIO 정의: Wikipedia 'Visual odometry'(2026-09 확인, 단 정량적 드리프트 수치는 제공하지 않음). ↩1 ↩2 ↩3 ↩4
- [2]
- [3]
- [4]오차 전파 관계식: Titterton & Weston, 'Strapdown Inertial Navigation Technology' 2nd ed., §12 Error propagation / Groves, 'Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems' 2nd ed., §5.7. 인용 문장 및 50 m 예시: Wikipedia 'Inertial measurement unit' (2026-09 확인) — "a constant error in attitude rate (gyro) results in a quadratic error growth in velocity and a cubic error growth in position." 수치 계산은 본 조사에서 위 사양값으로 직접 수행. ↩1 ↩2
- [5]
- [6]
- [7]원리·한계: Wikipedia 'Structured-light 3D scanner'(2026-09 확인) — 1/10 stripe pitch, 1/50 pixel, 반사면 한계 인용. Kinect v1 정확도 실측: Khoshelham & Elberink, 'Accuracy and Resolution of Kinect Depth Data for Indoor Mapping Applications', Sensors 12(2), 2012. Salvi et al., 'A state of the art in structured light patterns for surface profilometry', Pattern Recognition 43(8), 2010. ↩
- [8]원리·수식·한계: Wikipedia 'Time-of-flight camera'(2026-09 확인) — 4-tap 위상식, 모호거리, 1% 정확도, 60 m, 160 fps, 멀티패스 인용. Hansard, Lee, Choi & Horaud, 'Time-of-Flight Cameras: Principles, Methods and Applications', Springer 2013, Ch.1-2. Kinect v2 사양: Microsoft 공개 SDK 문서 및 Sarbolandi et al., 'Kinect Range Sensing: Structured-Light versus Time-of-Flight Kinect', CVIU 139, 2015. ↩1 ↩2
- [9]SPAD 동작 원리(가이거 모드, >3×10⁵ V/cm, 소광, 사시간, 피코초 지터, DCR, TCSPC 히스토그램): Wikipedia 'Single-photon avalanche diode'(2026-09 확인). Cova, Ghioni, Lacaita, Samori & Zappa, 'Avalanche photodiodes and quenching circuits for single-photon detection', Applied Optics 35(12), 1996. dToF 100 m/667 ns: Wikipedia 'Time-of-flight camera'(2026-09 확인). 왕복시간 수치는 c=2.998×10⁸ m/s로 직접 계산. ↩1 ↩2
- [10]Apple, 'ARKit Depth API / Scene Reconstruction' 개발자 문서 및 iPad Pro(2020) 제품 페이지의 '최대 5미터' 표현. SystemPlus Consulting / TechInsights의 iPhone 12 Pro 라이다 분해 보고서(VCSEL+SPAD 구성 및 940 nm 확인). 정확도 실측: Luetzenburg, Kroon & Bjørk, 'Evaluation of the Apple iPhone 12 Pro LiDAR for an Application in Geosciences', Scientific Reports 11, 2021. ※ 576점 수치는 2차 보도 기반으로 1차 확인되지 않음. ↩
- [11]원리·사양(마이크로초 타임스탬프, 120 dB, 44.6 dB 비교, 해상도 변천, 임계값 기반 픽셀 회로): Wikipedia 'Event camera'(2026-09 확인). Gallego et al., 'Event-based Vision: A Survey', IEEE TPAMI 44(1), 2022 — 이 분야의 표준 서베이. Lichtsteiner, Posch & Delbruck, 'A 128×128 120 dB 15 µs Latency Asynchronous Temporal Contrast Vision Sensor', IEEE JSSC 43(2), 2008 — 원조 논문. ↩
- [12]AMR 퍼멀로이 원리, 1 µs 이하 응답, 지구 자기장 20,000~80,000 nT: Wikipedia 'Magnetometer'(2026-09 확인). 하드아이언/소프트아이언 보정 모델: Renaudin, Afzal & Lachapelle, 'Complete Triaxis Magnetometer Calibration in the Magnetic Domain', Journal of Sensors, 2010. 실내 자기장 왜곡 실측: Li, Gallagher, Dempster & Rizos, 'How feasible is the use of magnetic field alone for indoor positioning?', IPIN 2012. ※ 개별 스마트폰 자력계 수치는 제조사별 편차가 크다. ↩
- [13]오차 예산 및 DOP·UERE 구조: Kaplan & Hegarty, 'Understanding GPS/GNSS: Principles and Applications' 3rd ed., Ch.7 (Performance) 및 US DoD 'Global Positioning System Standard Positioning Service Performance Standard', 5th ed., 2020. 도심 멀티패스 및 스마트폰 이중주파수 성능: van Diggelen, 'End Game for Urban GNSS: Google's Use of 3D Building Models', GPS World / ION 자료. ※ 구체적 수치 범위는 문헌과 수신기에 따라 편차가 있어 대표값으로 제시. ↩1 ↩2
- [14]정확도 수치(8 mm + 1 ppm 수평, 15 mm + 1 ppm 수직), 20 km 기선, 50 km VRS, 19 cm 파장 오차: Wikipedia 'Real-time kinematic positioning'(2026-09 확인). 모호정수 해결 알고리즘: Teunissen, 'The least-squares ambiguity decorrelation adjustment: a method for fast GPS integer ambiguity estimation', Journal of Geodesy 70, 1995. 이론 전반: Hofmann-Wellenhof, Lichtenegger & Wasle, 'GNSS — Global Navigation Satellite Systems', Springer 2008, Ch.7. ↩1 ↩2
- [15]예측/갱신 구조, 칼만 이득 공식 및 불확실성 가중 해석: Wikipedia 'Kalman filter'(2026-09 확인). 원전: R.E. Kálmán, 'A New Approach to Linear Filtering and Prediction Problems', Journal of Basic Engineering 82(1), 1960. 오차상태 정식화: Sola, 'Quaternion kinematics for the error-state Kalman filter', arXiv:1711.02508, 2017 — 이 분야의 사실상 표준 참고문헌. 응용: Groves, 'Principles of GNSS, Inertial and Multisensor Integrated Navigation Systems' 2nd ed., Ch.3. ↩1 ↩2
- [16]시간 오프셋 온라인 추정: Li & Mourikis, 'Online temporal calibration for camera-IMU systems: Theory and algorithms', IJRR 33(7), 2014. 롤링 셔터 보정: Guo et al., 'Efficient Visual-Inertial Navigation using a Rolling-Shutter Camera with Inaccurate Timestamps', RSS 2014. 지연 인지 한계: Ellis, Breant, Manges, Jacoby & Adelstein, 'Factors influencing operator interaction with virtual objects viewed via head-mounted see-through displays', VRAIS 1997 — 수 ms 수준의 지연도 정합 오차로 검출됨을 보임. ※ 20 ms 목표치는 산업 관행값이며 문헌마다 15~20 ms로 다양. ↩1 ↩2
