TrotVote
[IT 심층 분석]

다중 센서 퓨전 기술 적용 시 센서 간의 거대 딜레이 폭주와 타임스탬프 동기화 체계 구축

김민준 · IT 시스템 엔지니어|
광학 카메라 렌즈 데이터뿐만 아니라 라이다(LiDAR) 적외선 그리고 초음파 센서까지 네 개 이상의 이기종 복합 데이터를 하나의 3D 공간 상에 융합하는 센서 퓨전 아키텍처는 자율 감지 솔루션의 최종 보스라 불립니다. 프로토타입 주행 기기를 테스트 트랙에 올렸을 때 카메라가 포착한 장애물 바운딩 박스와 라이다가 찍어낸 포인트 클라우드의 위치가 심할 때는 0.5초가량 엇나가버리는 무서운 동기화 파괴 현상이 덮쳐왔습니다. 시속 수십 킬로미터로 이동하는 동안 0.5초의 오차는 공간에서 수 미터의 위상 차이를 야기하므로 이는 시스템상에서 존재하지 않는 허구의 적벽을 상상해 급브레이크를 걸게 만드는 치명적 오작동의 근원이었습니다. 문제의 발단은 네 개의 하드웨어 센서가 각자의 독립적인 오실레이터 클럭에 의존하며 각기 다른 인터페이스(USB I2C MIPI PCIe)를 거쳐 메인 프로세서에 수집된다는 물리적인 비참함 속에 있었습니다. 프로세스는 각각 들어오는 데이터의 큐잉 시점을 기준으로 데이터를 패키징했는데 이 과정에서 버스 대역폭의 스케줄링 딜레이와 운영체제의 커널 타이머 오차가 겹치면서 과거의 카메라 화면에 미래의 라이다 포인트가 덧씌워지는 끔찍한 타임머신 현상이 발생한 것입니다. 저는 하드웨어 수정이 불투명한 상황에서 순수하게 소프트웨어 아키텍처 기반의 네트워킹 타임스탬프 스키마를 센서 퓨전 파이프라인 중심부에 주입하는 최후의 결단을 내렸습니다. 이 거대한 시간의 불일치를 응집하기 위해 NTP(Network Time Protocol)의 원리를 응용한 마이크로 타임스탬프 보정 프로토콜인 PTP(Precision Time Protocol) 유사 로직을 커널과 유저 스페이스 경계면에 설계해 넣었습니다. 메인 프로세서를 마스터 클럭 생성기로 지정하고 별도의 고속 GPIO 핀을 통해 각 센서 컨트롤러에 주기적인 펄스 트리거를 하달하면 센서들은 응답하는 데이터의 헤더에 오직 이 트리거 스탬프로부터 계산된 상대적 나노초(nanosecond) 단위 절대 시간값을 새겨 전송하게 만들었습니다. 또한 운영체제 데몬은 이렇게 모여든 이기종 데이터 패킷들의 슬라이딩 윈도우 버퍼를 구현해내고 개별 버스 딜레이값을 보상하는 칼만 필터 예측기를 거쳐 타임스탬프 간격이 엄격한 3밀리초 이내로 정렬되는 버퍼 그룹만을 퓨전 알고리즘 모듈에 밀어넣도록 패킷 그루핑 로컬 폴링 엔진을 전면 교체했습니다. 마침내 거칠게 숨을 씩씩대던 분산 센서 데이터들이 거대한 기어 톱니바퀴 물리듯 하나의 시간 축을 따라 차분하게 융합하기 시작했습니다. 100 킬로미터에 육박하는 환경 속에서도 라이다의 붉은색 군집 포인트들이 카메라의 영상 위 한 점의 오차도 없이 무섭게 달라붙어 움직이게 되었습니다. 수많은 이기종 데이터 인프라스트럭처에서 절대적인 성능 향상도 중요하지만 무엇보다 이들을 관통하는 절대 시간의 동기화가 무너진다면 그 어떤 고차원 인공지능이나 패턴 매칭 알고리즘도 모두 거대한 무용지물 모래성에 불과하다는 뼈저린 철학적 교훈을 엔지니어로서 각인하게 된 가장 스펙타클한 시스템 분해와 재조립의 서사시였습니다.