프로젝트 소개

SNGNav는 GPS 손실, 네트워크 장애 또는 극한 기상 조건과 같은 성능 저하 상황에서도 안정적으로 작동하도록 설계된 Flutter 기반의 오프라인 우선 내비게이션 아키텍처입니다. 신호 손실 시 위치 연속성을 위해 추측 항법(dead reckoning)과 칼만 필터링(Kalman filtering)을 통합했으며, 오프라인 지도 렌더링을 위해 MBTiles를 지원하고, 자체 호스팅 또는 공용 엔드포인트를 통한 OSRM 또는 Valhalla 듀얼 라우팅을 제공합니다. 기상 위험 감지 기능에는 JMA, MET Norway, NWS에서 제공하는 블랙아이스 및 출발 전 주의보가 포함됩니다. 이 시스템은 Linux 데스크톱(x64)에서 실행되며, Yocto/QEMU를 통해 실험적인 ARM64 지원을 제공하지만 GL 렌더링은 업스트림에서 여전히 차단된 상태입니다(flutter#183495). 안전 오버레이는 ASIL-QM을 준수하며, 표시 전용으로 위험 상황 시 모든 UI 레이어 상단에 렌더링됩니다. 프로젝트는 동의 기반 플릿 데이터, 시뮬레이션 환경, Dart defines를 통한 프로바이더 설정을 포함하여 독립적으로 버전 관리되는 36개의 pub.dev 패키지로 구성됩니다. flutter_map이 타일 렌더링 기반을 제공하지만, SNGNav는 센서 퓨전, 오프라인 가능 파이프라인, 시나리오 기반 결함 허용과 같은 회복력 레이어를 추가합니다. 데모 프로필은 폭설, 터널 내비게이션 및 경로 위험을 시뮬레이션합니다. 실제 하드웨어 배포(예: Raspberry Pi)는 검증되지 않았습니다. 설정을 통해 코드 변경 없이 프로바이더를 교체할 수 있습니다. 오프라인 모드는 수동 MBTiles 설정이 필요하며, 기본 타일 소스는 온라인 OSM으로 폴백됩니다. CI는 현재 모든 브랜치에서 36개 패키지 전체를 테스트하며, 2026년 8월 기준 3,181개 이상의 테스트를 통과했습니다. 상용 내비게이션을 대체하려는 것이 아니라, 연결성이 끊어지는 엣지 케이스를 지원하며 극한 환경의 운전자를 위한 안전 필수 시스템을 구축하는 개발자를 대상으로 합니다.