Legion 5 노트북(x86_64, native SITL)에서 PX4 + Gazebo Harmonic + OpenVINS 파이프라인이 end-to-end로 정상 동작 확인. 이전 세션의 21km 발산 문제 중 카메라-IMU 회전(extrinsic) 오류 가설은 증거 기반으로 기각했고, 카메라 하향 틸트 수정으로 나무 충돌/하늘 노출 문제는 해결됨. 다만 새로운 실패 모드(균일한 잔디 텍스처에서 뱅킹 선회 시 단안 스케일 발산)를 확인, 원인 규명 완료.
이전 세션에서 “직진은 정상, 첫 yaw에서 21km 발산”이 관측되어 카메라-IMU 회전 방향(T_imu_cam)이 반대로 들어갔을 가능성을 의심함. 두 가지 독립적 검증으로 기각:
VioManagerOptions.h)가 yaml 키 이름 T_imu_cam을 읽을 때 반전 없이 그대로 로드. 우리 파일의 키 이름이 정확히 일치 → 반전 문제 아님.calib_cam_extrinsics: 1(온라인 보정)로 실행 시, 필터가 수렴한 회전값이 기존 하드코딩 값과 거의 동일(q_ItoC ≈ (-0.5, 0.5, -0.5, 0.5)). 값이 틀렸다면 필터가 다른 방향으로 끌고 갔을 것.→ 회전 관련 재작업 불필요. (부가적으로 수직 lever arm ~19cm 오차는 실재하나 발산 원인은 아님, 낮은 우선순위)
forest.sdf의 실제 나무 위치와 겹쳐 렌즈가 캐노피에 파묻힘조치: 비행 경로를 나무와 겹치지 않게 재설계 + 카메라 ~30° 하향 틸트 (SDF 수정, 회전 extrinsic도 새 각도에 맞게 재계산)
정지/이륙/직진 구간은 여전히 0.3m 이내로 정확. 나무 충돌·하늘 노출 문제는 해소됨. 그러나 뱅킹 선회(banking circle) 구간에서 새로운 발산 발생:
| 구간 | 오차 |
|---|---|
| 정지~이륙 | 0.26 m |
| 선회 시작 | 0.39 m |
| 첫 선회 중 | 0.43 m → 1.72 m로 급증 |
| 선회 지속 | 1.2~2.5 m |
| 착륙 | 4.1 m (착륙 후 ZUPT로 ~8m에서 안정화, 이전처럼 무한 발산은 아님) |
비행 중 RMSE 1.6m, 최대 4.1m.
원인: 착지 지형이 무늬 없는 균일한 잔디 — 특징점들이 전부 비슷한 깊이(지면 ~2.5m 아래)에 위치해 단안 스케일 관측성이 원래도 약한 상태였고, 뱅킹 선회(회전+이동이 동시에 섞이는 운동)가 여기에 부하를 더함. 발산 시작 시점 프레임 확인 결과 그림자/역광/모션블러까지 겹쳐 특징점 매칭 신뢰도가 급격히 떨어진 구간과 일치.