feat(pipeline): jalon 1-3 — ingest, USBL parse, filter
Stages 01-03 opérationnels sur 20260505-Lepradet: - 01_ingest: manifest auto, 3 AUVs vidéo, 3 AUVs bags, mapping AUV2xx↔AUV0xx - 02_usbl_parse: MCAP (format incompatible firmware) → fallback serial CSV, 213 pts bruts - 03_usbl_filter: MAD-3σ + moving-avg + Kalman optionnel, dégradé gracieux si null lat/lon - orchestrator/db.py: SQLite schema missions/jobs/metrics idempotent - config/: thresholds.yaml + default_params.yaml versionnés - qa/checks.py: vérifications pass/fail/degraded par étape Note: MCAP bags corrompus ou format non-standard firmware — lat/lon absent. Statut degraded (pas crash). Nécessite investigation format MCAP spécifique.
This commit is contained in:
33
pipeline/README.md
Normal file
33
pipeline/README.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# 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
|
||||
|
||||
```bash
|
||||
# 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)
|
||||
Reference in New Issue
Block a user