Lodestar를 만들며: 추정기 바깥의 항법 무결성 모니터가 GPS 차단 재밍 거품에서 위치 고정을 허세로 내지 않고 RED로 전환해 리턴투홈하는 방식.
DronesRoboticsAutonomy

제 드론은 GPS 재밍 거품을 통과하며 0.9% 표류를 유지합니다. 제가 자랑하는 코드는 비행을 거부하는 그 한 줄입니다.

Ashutosh SinghalAshutosh Singhal2026년 7월 3일13 min

이 프로젝트에서 가장 중요한 부분이 포기하는 부분이 될 줄은 예상하지 못했습니다.

오후 대부분을 합성 비행 리플레이를 들여다보며 보냈습니다. 드론이 245.3 m 경로를 따라 80초 미션을 횡단합니다. GPS는 처음 18초 동안 유지되다가, 기체가 시뮬레이션된 전자전 거품 안으로 들어가는 순간 끊깁니다. 화면에서는 그 순간부터 세 개의 궤적이 부채처럼 펼쳐집니다. 그중 밝은 분홍색 선 하나가 지도 모서리 쪽으로 벗겨져 나가며 자신만만하게, 그리고 완전히 잘못된 채로 계속 나아가는데, 옆의 작은 수치 표시는 모든 것이 괜찮다고 고집합니다.

그 분홍색 선이 기본 시각-관성 오도메트리이고, 그것이 내게 거짓말하는 모습을 본 것이 내가 만들고 있던 것의 전체 형태를 바꿔 놓았습니다. 저는 GPS 차단 항법에서 어려운 문제가 정확도를 유지하는 것이라고 가정했습니다. 그렇지 않습니다. 어려운 문제는, 그게 중요한 바로 그 순간에, 자신이 정확하지 않다는 것을 아는 것입니다.

GPS 차단 공역에서, 확신에 찬 잘못된 위치는 솔직한 "모르겠다"보다 더 위험합니다.

이것은 Lodestar라는 우리의 항법 무결성 엔진을 구축한 이야기이자, 올바른 문제를 이해하기 전에 잘못된 문제를 푸는 데 보낸 한 주에 대한 이야기입니다.

진짜 문제를 이해하기 전에 정확도를 쫓아 한 주를 보냈습니다

저도 대부분의 사람이 시작하는 곳, 즉 추정기에서 시작했습니다. 전자전은 자율 드론이 이제 중요해진 바로 그 장소들 — 분쟁 공역, 광산 채굴장, 터널, 도시 협곡 — 에서 GPS를 믿을 수 없게 만들었습니다. 분쟁 공역에서의 재밍과 스푸핑은 이제 널리 보고되며, GPS 차단 항법이 연구 호기심이기를 멈추고 확고한 요구사항이 될 만큼 흔해졌습니다. 뻔한 해결책은 시각-관성 오도메트리를 덧붙이고, 카메라와 관성 센서를 융합한 뒤, 표류가 작게 유지되기를 바라는 것입니다.

그래서 저는 실제 밀결합 VIO EKF를 만들고 첫 주를 정확도를 높이는 데 보냈습니다. 같은 필터, 세 가지 정직한 구성: 시각 정보가 전혀 없는 추측항법 IMU 기준선, 보이는 모든 시각 특징을 융합하는 기본 VIO, 그리고 어떤 특징을 믿을지 더 신중한 무결성 인식 버전입니다. 저는 이들을 모두 시뮬레이터가 모든 추정기와 독립적으로 생성하는 참값에 대해 돌렸으므로, 어느 것도 스스로의 숙제를 채점할 수 없었습니다. 전체 미션은 시드되어 바이트 단위로 재현 가능하며, 그 점은 당시 제가 깨달았던 것보다 더 중요했습니다.

정확도 숫자는 정말로 좋았습니다. 재밍 거품을 통과하는 동안, 무결성 인식 추정기는 0.92% 표류를 유지하며, 그 245.3 m 경로에서 최종 오차 2.26 m입니다. 비교하면 추측항법은 30.95% 표류와 최종 오차 75.92 m까지 불어나는데, 이는 패드에 착륙하는 것과 옆 카운티에 착륙하는 것의 차이입니다. 저는 하루쯤은 스스로 뿌듯해했습니다.

그러고 나서 저는 호송대 시나리오를 돌렸습니다.

자신의 눈을 믿는 드론에게 재밍 거품이 하는 일

GPS 핸드오버가 얼마나 평범해 보이는지 솔직히 말씀드리고 싶습니다. 그게 작동하는 부분이기 때문입니다. t=18 s에 GPS가 끊기면, 필터는 모드 전환도, 경보도, 운용자에게 보이는 이음매도 없이 시각-관성 소스로 가중치를 옮깁니다. 추정값은 그저 연속적으로 유지됩니다. 미션을 비행하고 있다면 바닥이 사라진 것을 느끼지 못할 것입니다.

시뮬레이션된 R-330Zh 스타일 전자전 거품 안에서 GPS가 차단된 직후, t=21 s의 Lodestar 대시보드: 무결성은 GREEN, 표류 0.41 m, 사용 가능 시각 특징 358개, 추정 궤적은 참값 위에 놓여 있습니다.
t=21 s의 GPS 핸드오버. 무결성은 GREEN을 유지하고, 참값 대비 표류는 0.41 m이며, 사용 가능 특징 358개가 추정기에 공급됩니다. 이것이 쉬운 부분이고, 모두가 시연하는 부분입니다.

제가 과소평가한 것은 이것입니다. 비전을 돌리는 드론은 천천히 나빠지며 실패하지 않습니다. 그것은 잘못된 것에 고정되어 깨끗하고 확신에 찬, 그러나 그저 쓰레기인 위치를 보고하는 방식으로 실패합니다. 추정기는 자신이 속았다는 것을 모릅니다. 위치를 계산하는 장치가, 그 위치가 틀렸다는 것을 알아차려야 할 바로 그 장치이기 때문입니다. 저는 재앙적으로, 조용히 틀리게 되는 바로 그 순간까지는 정확한 시스템을 만들었고, 안쪽에서 그 둘을 구별할 방법이 없었습니다.

그것은 튜닝 문제가 아닙니다. 자신이 틀렸다는 것에 확신하는 시스템에서, 튜닝으로 빠져나올 수는 없습니다. 저는 추정기 바깥에 온전히 자리하는 무언가가 필요했습니다.

좋은 추정기에게 거짓말을 가르친 호송대

저는 제 작업 자체를 깨뜨리기 위해 호송대 시나리오를 일부러 만들었고, 실제로 그랬습니다. t=30과 t=43 사이에 차량 행렬이 저텍스처 공터를 가로지르며, 굶주린 VIO 프런트엔드에게는 추적하고 싶은 안정적인 랜드마크와 정확히 같아 보이는 가짜 특징들을 뿌립니다. 이것이 문서화된 ORB-SLAM3 실패 — 알고리즘이 트럭을 추적하고 드론이 멈춰 서 있다고 결론짓는 바로 그 사례입니다.

기본 VIO는 완전히 속아 넘어갔습니다. 같은 시드 실행에서, 움직이는 차량에 고정되어 날아가 버려 28.79% 표류와 최종 오차 70.61 m로 끝났고, ATE 32.95 m는 사실 더 나쁩니다 — 비전을 전혀 쓰지 않는 것보다도. 그것이 제가 바라보고 있던 분홍색 선이었습니다. 추한 세부 사항은, 실패하는 동안에도 내부 신뢰도가 건강해 보였다는 점입니다. 추정기는 자신을 확신하고 있었습니다. 지도 가장자리로 표류해 가는 위치에 대해 확신하고 있었던 것입니다.

움직이는 호송대 중 t=32 s의 Lodestar: 무결성이 AMBER로 떨어졌고, 특징 수는 2(마스킹 10), 기본 VIO 오차는 11.0 m까지 오른 반면 무결성 인식 궤적은 0.42 m 표류를 유지합니다.
t=32 s의 호송대. 의미론적 마스킹이 움직이는 차량을 거부했고(정적 특징 2개 사용, 10개 마스킹), 그래서 무결성 인식 궤적은 0.42 m를 유지하는 반면 기본 VIO 오차는 11.0 m까지 올라가며 계속 커집니다. 무결성은 정직하게 AMBER를 보고합니다. 정말로 믿을 수 있는 정적 특징이 거의 없기 때문입니다.

무결성 인식 추정기가 호송대를 견디는 이유는 단순합니다. 움직이는 물체에 속한 특징을 믿기를 거부하기 때문입니다. 위 프레임에서 의미론적 마스킹은 호송대 특징 10개를 거부하고 정적 특징 2개만 남겼으므로, 추정기는 행렬에 고정되지 않습니다. 궤적은 유지됩니다. 하지만 제가 예상하지 못한 부분은, 같은 순간에 제 무결성 모니터가 한 일입니다. 화면을 초록으로 칠하고 세상이 괜찮다고 가장하지 않았습니다. 그것은 AMBER로 전환했습니다. 호송대 특징이 마스킹된 뒤에는 믿을 수 있는 정적 랜드마크가 정말로 손에 꼽을 정도만 남았기 때문입니다. 그것은 정확하면서 동시에 불안했고, 그렇게 말했습니다.

그것이 모니터가 추정기가 말할 수 없는 것을 제게 알려 준 첫 순간이었고, 그 자체로 정확도보다 더 가치가 있습니다. 또한 제가 피해 오던 질문을 강제했습니다.

왜 추정기는 스스로를 인증할 수 없는가?

저는 추정기 자신의 숫자로 그에 답하려다 부끄러울 만큼 많은 시간을 보냈습니다. 제 첫 무결성 검사는 단순히 필터가 보고한 불확실성, 즉 위치 시그마를 읽고 그것으로 게이트했습니다. 공분산이 타이트해 보이면 비행. 합리적으로 보였습니다.

호송대가 그것을 박살 냈습니다. 기본 VIO가 트럭에 고정되었을 때, 보고된 시그마는 작게 유지되었습니다. 필터는 추적할 일관된 무언가를 찾았기 때문에 정확히 확신했습니다. 그 일관성은 거짓이었지만, 공분산은 그것을 알 수 없습니다. 공분산은 추정기가 자신에 대해 하는 진술이기 때문입니다. 저는 증인에게 자신의 증언을 인증하라고 요구하고 있었던 것입니다.

신뢰는 신뢰받는 대상에 의존해서는 안 됩니다.

그 문장이 설계가 되었습니다. 항법 무결성 모니터는 의도적으로 추정기 바깥에 존재합니다. 다른 질문에 답하는 별도 코드로서 말입니다. EKF가 답하는 "내 위치는 무엇인가"가 아니라, EKF가 구조적으로 자신에 대해 답할 수 없는 "이 위치를 지금 믿을 수 있는가"입니다. 모니터는 세 신호를 하드 임계값과 함께 GREEN, AMBER, 또는 RED 상태로 융합합니다: 사용 가능 특징 수(8개 이상이면 GREEN, 1개 미만이면 RED), 위치 시그마(0.6 m 미만이면 GREEN, 1.5 m 초과면 RED), 그리고 비전 NIS — 추정기가 확신하면서도 틀리는 바로 그 사례를 잡는 카이제곱 이노베이션 일관성(7.0 미만이면 GREEN, 30.0 초과면 RED). 어느 한 숫자도 추정기에 의해 조작될 수 없습니다. 셋 중 둘이 추정기 자신의 자기평가에서 나오지 않기 때문입니다.

이것이 안전필수 자율성에 대해 제가 이제 가장 강하게 믿는 것입니다. 더 나은 VIO는 확신에 찬 잘못된 실패를 고치지 않습니다. 왜냐하면 "이것이 신뢰할 수 있는가""이것이 무엇인가"와는 다른 질문이며, 후자를 만들어 낸 장치로 전자에 답할 수는 없기 때문입니다. 업계는 추정기를 더 똑똑하게 만들려고 계속 달립니다. 지속 가능한 아키텍처는 더 똑똑한 추정기가 아닙니다. 그것을 뒤집을 의지가 있는 모니터입니다.

비행을 거부하는 코드 한 줄

제 제품을 실제로 이해한 순간은 터널이었고, 시스템이 가장 적게 하는 순간이기 때문에 기억합니다.

t=52와 t=66 사이에 미션은 어두운 터널에 들어가고 사용 가능 시각 특징이 사실상 영으로 붕괴합니다. 볼 것이 없습니다. 아무리 잘 튜닝된 추정기여도, 관측할 수 없는 장면으로부터 신뢰할 수 있는 위치를 만들어 낼 수 없습니다. 이것은 고쳐야 할 실패가 아닙니다. 존중해야 할 사실입니다. 여전히 애쓰는 기본 VIO는, 주장할 권리도 없는 위치로 그대로 흘러갑니다.

Lodestar는 다른 일을 합니다. 특징이 죽고, 위치 불확실성이 임계값을 넘으며, 0.5초의 지속된 RED 이후 모니터가 페일세이프를 래치하고 t=52.5 s에 리턴투홈을 명령합니다. 위치를 허세로 내놓지 않습니다. 추정을 신뢰할 수 없다고 선언하고 안전한 행동으로 제어를 되돌리며, 루프에서 무언가를 결정하는 모델 없이 결정론적으로 그렇게 합니다.

어두운 터널 속 t=54.5 s의 Lodestar: 무결성은 RED, "Position NOT trustworthy," 특징 수 0, 기본 VIO 오차 35.2 m로 궤적이 지도 위로 날아가며, 타임라인은 t=52.5 s에 리턴투홈이 발동되었음을 보여 줍니다.
t=54.5 s의 터널. 특징이 0으로 붕괴했고, 무결성은 RED("Position NOT trustworthy")이며, 리턴투홈은 이미 t=52.5 s에 발동되었습니다. 여전히 확신하는 기본 VIO는 오차 35.2 m까지 날아갔습니다. 이것이 제품의 전부입니다: 확신에 찬 위치 고정이 아니라, 정직한 기권.

여기 숫자에 대해서는 신중하고 싶습니다. 정직함이 전체 제안이기 때문입니다. 이 하나의 시드된 미션에서, 모니터는 정말로 관측 불가능한 터널을 100%의 경우 표시하고, 건강한 GPS 차단 구간에서는 약 0.1%의 경우 오경보를 내며, GREEN을 56.3%의 차단 비행 구간에서 유지합니다. 그것들은 이 미션의 결과이며, 메커니즘에 대한 물리적으로 충실한 증명이지, 개방 세계 비행 시험 보장은 아닙니다. 지속 가능한 주장은 구조입니다: 추정기 바깥에서 계산된 신뢰, 지속된 RED가 래치된 리턴투홈으로 이어지는 것, 아무도 항법할 수 없는 장면에 대한 정직한 기권. 정확한 미터 값은 이 실행에 속합니다. 아키텍처는 모든 실행에 속합니다.

자율성 스택에서 가장 가치 있는 코드 한 줄은 비행을 거부하는 줄입니다.

제 말을 믿을 필요 없도록 보고서에 넣은 것

아무도 제 스크린샷을 믿어야 할 필요가 없기를 바랐기에, 마지막으로 만든 것은 영수증입니다. 한 번의 클릭으로 비행 무결성 보고서 — JSON과 인쇄 가능한 HTML — 를 내보내며, 스코어보드, 헤드라인 지표, 기권 정확성, 페일세이프 시각, 이벤트 타임라인, 그리고 제가 가장 아끼는 부분인, 스텁된 것과 미룬 것에 대한 명시적 범위 공개를 담습니다.

그 공개는 제가 묻어 두는 면책 조항이 아닙니다. 그것은 기능입니다. 보고서는 시각 프런트엔드가 대용품이며, LiDAR 융합이 실제 LiDAR 팩터가 아니라 시뮬레이션된 거리 제약이고, MAVLink 인터페이스와 Jetson 처리량이 여기서는 행사되지 않으며, Jetson Orin NX 16 GB에서의 30-45 FPS는 측정 결과가 아니라 목표 하드웨어 사양이라고 분명히 말합니다. 보고서의 16,000건 EKF 전파 업데이트는 데모 머신에서 측정되었습니다. FPS는 그렇지 않았고, 보고서는 그 말로 그렇게 적습니다.

LiDAR 융합이 켜진 상태로 내보낸 비행 무결성 보고서: 무결성 인식 실행의 표류 0.01%, 비행의 78.9%가 GREEN, 페일세이프 "n/a (LiDAR held integrity)," 독립 참값 대비 스코어보드.
LiDAR 융합이 켜진 상태로 내보낸 비행 무결성 보고서. 시뮬레이션된 LiDAR 거리 제약이 터널을 고정하자, 장면이 관측 가능해지고, 표류는 0.01%로 떨어지며, 비행의 78.9%가 GREEN을 유지하고, 모니터는 올바르게 페일세이프를 발동하지 않습니다. 보고서는 이것이 마술이 아니라 거래임을 명시합니다.

그 LiDAR 실행은 곱씹을 가치가 있습니다. 많은 데모가 속임수를 쓰는 지점이기 때문입니다. 시뮬레이션된 LiDAR를 켜면 터널이 회복됩니다: 거리 제약이 해를 고정하고, 무결성이 유지되며, 장면이 더 이상 관측 불가능하지 않으므로 페일세이프가 발동되지 않습니다. 그 실행만 보여 주고 문제가 해결되었다고 부르기는 쉽습니다. 하지만 보고서는 솔루션 페이지가 인정하는 비용도 함께 담습니다. 대략 페이로드 250~400 g과 전력 8~12 W. LiDAR는 실질적인 SWaP-C 청구서가 따르는 진짜 공학적 거래이지 공짜 승리가 아니며, 구매자는 이득 옆에 그 청구서를 볼 자격이 있습니다.

이 시스템 근처에 있는 모델은 정확히 하나뿐입니다. 구조화된 보고서에서 기술 검토 내러티브를 초안하는 선택적 버튼입니다. 그것은 전적으로 비행 루프 바깥에서 돌아갑니다. 산문을 씁니다. 제어 결정에는 절대 손대지 않습니다. 비행 여부를 결정하는 게이트는 결정론적이고, 시드되어 있으며, 오프라인이고, 내러티브 버튼을 뜯어내도 동일한 결정을 내립니다. 저는 그 경계에 대해 단호했습니다. 언어 모델이 드론이 자신의 위치를 믿을지 여부에 투표권을 갖는 날은, 제가 책임지고 싶지 않은 날이기 때문입니다.

자꾸 되돌아오는 것

저는 GPS가 죽었을 때도 정확도를 유지하는 드론을 만들려 했고, 이 미션에서는 표류 1% 미만으로 그렇게 했습니다. 예상하지 못한 것은, 정확도가 쉬운 절반이라는 확신을 안고 돌아왔다는 점입니다.

정확도는 누구든 참가할 수 있는 경주입니다. 이 분야의 모두가 추정기를 조금 더 타이트하게, 특징을 조금 더 조밀하게, 백엔드를 조금 더 똑똑하게 만들고 있으며, 그 모든 것은 좋은 일입니다. 하지만 그중 어느 것도 재밍 거품 안에서 드론을 실제로 죽이는 질문에 답하지 않습니다. 그 질문은 "내가 얼마나 틀렸는가"가 아니라 "내가 얼마나 틀렸는지 알 수 없는 상황에 있는가"입니다. 그 질문은 추정기 바깥에서, 화려하지 않은 말을 하고 제어를 포기할 의지가 있는 무언가가 물어야 합니다.

정확도는 누구든 참가할 수 있는 경주입니다. 자신이 눈이 멀었을 때를 아는 시스템이 제품입니다.

직접 전체를 실행해 보시고 분홍색 선이 날아가는 것과 RED 상태가 발동되는 것을 veriprajna.com/ko/demos/gps-denied-drone-autonomy에서 확인하실 수 있습니다. 시드되어 있으므로, 제가 본 것과 정확히 같은 것을 보게 됩니다.

제 설명을 읽는 대신 직접 보고 싶으시다면, 여기 처음부터 끝까지 돌아가는 전체가 있습니다.

제가 끊임없이 곱씹는 질문은 이것입니다. 자율성 스택에서 가장 가치 있는 행동이 행위의 거부라면, 공학 예산의 얼마가 포기하는 부분에 들어가고, 얼마가 언제 포기할지 배운 적 없는 부분에 들어가는가?

관련 연구

다른 채널에도 게시됨

확신을 가지고 AI를 구축하세요.

차세대 엔터프라이즈 AI 구축에 깊은 경험을 갖춘 팀과 협업하세요. 신뢰할 수 있는 AI 전략을 설계하고 구축하며 배포할 수 있도록 지원해 드리겠습니다.

Veriprajna 딥테크 컨설팅 은(는) 헬스케어, 금융, 규제 분야를 위한 안전 필수 AI 시스템 구축을 전문으로 합니다. 당사의 아키텍처는 확립된 프로토콜에 따라 검증되며 포괄적인 규정 준수 문서를 갖추고 있습니다.