djmd 프레임 동기·오버레이 지면고정·선형-측점 정합·UI 단축키

- djmd(영상 내장 텔레메트리) 프레임 동기 위치/고도: MP4 stbl 선별 파싱(djmdTrack.ts),
  CSV 시각정렬 오차(평균 3.2m) 제거 — 세그먼트별 백그라운드 정밀화(frameSynced 플래그)
- 자세 시간축 재정렬: djmd 위치 교차상관으로 CSV↔영상 오프셋 자동 추정(실측 -0.33s,
  잔차 0.24m) 후 yaw/pitch/roll 재샘플(yaw 최단각) — 옆 지물 미끄러짐 해소
- 포즈 평활 자동 제한: 프레임 동기 데이터는 ±5프레임 상한(기존 ±60=±1s) —
  회전 시 오버레이 전체가 드론에 딸려오는 지연 제거
- 선형-측점 정합: 측점 위치를 선형 정점으로 삽입(3D 이격≤0.012m) + 정점 z 를 측점
  체이니지 보간으로 재정렬, 측점 라벨 화면 EMA 제거(선과 동일한 즉시 투영) —
  선형이 측점 POI 를 픽셀 단위로 통과
- 드론높이 모드 높이 규칙 통일: 선형도 '드론고도-이격거리' 평면 적용(라벨과 동일)
- 카메라 offZ 잔재 교정: 표고 체계 정비 이전 드래그 보정값(-18.3m)이 이중 보정이 되어
  원거리 POI 가 접근할수록 밀리던 원인 — 경로 1-1 camera.json 0 으로 교정(.bak 백업)
- 로드 UX: 폴더 로드 시 정지 상태로 대기(처음부터), 데이터 교체 시 UI 초기 상태 복원
- 라벨: 측점 팝업 표고(타원체고) 행 추가, 구조물-POI 이중 라벨 제거(어음천교),
  시간동기 보정 슬라이더(timeOffsetSec)
- 측점 표기 0+000 형식 전환(생성 6곳·파서 4곳 신구 호환) + 스테이션바 양끝 100m 내
  시설물 없으면 시작/끝 스테이션 마크
- 단축키: F2 개발자 모드(dev_mode 1↔0, 세션 한정), A 선형 표시 토글
- 인프라: 54000 포트 재부팅 자동화(portproxy 직접 IP + 로그온 갱신, pm2 resurrect)
- docs/history: 작업 이력 23건

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-14 17:59:43 +09:00
co-authored by Claude Fable 5
parent 7d51ba9945
commit c64c57b58e
36 changed files with 1248 additions and 56 deletions
@@ -0,0 +1,31 @@
# 2026-07-14 POI 원거리 밀림 — 지면고도 z 우선순위 교정
**소요 시간**: 7분
**Context 사용량**: input 3490k / output 3k tokens
## 문제 (제보)
POI 가 멀리 있을 때는 계속 밀리다가 화면 하단(근거리)에서는 잘 맞음.
## 원인 — 높이(표고) 오차의 전형적 시그니처
근거리는 위치(djmd 프레임 동기, 정확)가 지배해 맞고, 원거리는 각도·높이 오차가 증폭됨.
코드상 지면고도(gz)가 **POI 자체 실측 z 보다 '최근접 중심선(도로) 높이 스냅'을 우선**
회덕(철도, POI z 미보유) 시절의 규칙이 남아, 도로에서 떨어진 지물(마을회관·산 등)이
도로 높이로 붙어 원거리에서 수 m 높이 오차 → 접근하며 서서히 제자리로 미끄러지는 증상.
## 수정 — StationOverlay.tsx
- gz 우선순위 교정: 보정값(드래그) → **POI 자체 z(실측)** → 중심선 z → 경로표고 앵커
- 편집 모드 초기 표고(baseZ/groundZ)도 동일 규칙으로 통일
- z 없는 데이터셋은 기존 폴백 그대로(무영향)
## 잔여 안내
- 수정 후에도 '모든' POI 가 원거리에서 같은 방향으로 균일하게 밀리면 = 짐벌 피치 바이어스
(로그가 정수 -15 로 고정 기록) → 카메라 파라미터 Pitch± 를 ±0.5° 내에서 미세 조정
- 드론높이 모드 사용 중이면 지면고도 모드(OFF) 권장 — 평면 근사가 원거리 오차의 또 다른 원인
## 검증
- tsc+vite 빌드 통과, 새 번들(index-BiwO87gk.js) 서빙