- kill_stale_demo_py() before each segment to prevent GPU contention from orphan processes - Remote script runs demo.py in background via nohup, polls for PLY file every 30s, kills viser server once PLY written — prevents indefinite SSH block on viser listener - offload_to_cpu now read from thresholds.yaml[inference] (default false for 24GB VRAM) - timeout reads inference_timeout_s from yaml (already 10800s) - min_frames guard included (from fix/05-inference-min-frames-timeout) Root cause: demo.py starts viser server after writing PLY; SSH timed out → orphan; two orphans competed for GPU with offload_to_cpu → pure CPU inference = 6h+ for 493 frames
cosma-pipeline
Pipeline autonome de reconstruction COSMA.
Structure
pipeline/
├── config/ # Seuils QA + params par défaut (versionnés)
├── orchestrator/ # DB SQLite, dispatcher, FastAPI
├── stages/ # Modules indépendants 01..08
├── qa/ # Vérifications pass/fail/degraded
└── cron/ # Auto-itération 6h
Usage rapide
# 1. Ingest
python3 pipeline/stages/01_ingest.py /mnt/ssd/20260505-Lepradet --name 20260505-Lepradet
# 2. Parse USBL
python3 pipeline/stages/02_usbl_parse.py /home/cosma/cosma-pipeline/20260505-Lepradet/manifest.json
# 3. Filter
python3 pipeline/stages/03_usbl_filter.py /home/cosma/cosma-pipeline/20260505-Lepradet/02_usbl_raw/
Notes données
logs/SUB/log/*_usbl.csv= bytes série bruts (Waterlinked M64), PAS lat/lon- Navigation réelle dans
logs/SUB/bag/*.mcap(ROS2 MCAP) - Mapping AUV : vidéos utilisent AUV2xx, bags utilisent AUV0xx (même 2 derniers chiffres)