Flag 85e9a4d4b0 feat(moulin-mapper): simulateur capteurs + pipeline SLAM Python (JSONL stream → trajectoire + nuage .ply)
- simulator.py: flux JSONL réaliste (Ping360 angle/dist, IMU, heading, depth, altitude) + vérité terrain
- slam.py: dead-reckoning + scan-to-map ICP 2D (cKDTree) + fermeture de boucle
- process.py: ingestion streaming ligne-par-ligne → trajectory.csv + map_2d.csv + cloud.ply
- stream_replay.py: rejoue le flux (vision streaming remote)
- SCHEMA.md: contrat format données ROV réel↔sim
- RMS dead-reckoning 0.386m → scan-matching 0.188m (2x)
2026-06-06 20:01:22 +00:00

moulin-mapper

Cartographie ROV multi-capteurs d'une chambre de moulin à marée, sans GPS ni USBL.

Principe

Le ROV se positionne relativement aux murs fixes détectés par le Ping360 (scan-matching / ICP 2D), sans dérive cumulative. L'axe Z (colonne d'eau) est donné par la pression (profondeur) + Ping1D (hauteur fond).

Capteurs

Capteur Rôle
Ping360 Position X, Y, cap (scan-matching)
IMU Attitude + prédiction haute fréquence
Pression Profondeur sous surface (Z haut)
Ping1D Hauteur au-dessus du fond (Z bas)
Caméra frontale Odométrie visuelle, texture
2 caméras latérales Imagerie murs, stéréo éventuel
2 side-scans Imagerie fond et murs

Structure

web/         → démo interactive (1 fichier HTML autonome)
pipeline/    → traitement données réelles (Python, à venir)
docs/        → rapports, notes techniques
data/        → données brutes et traitées

Démo

Page de démonstration : https://laboratoire.freeboxos.fr/moulin-mapper/

Livrables

  • Plan de la chambre (contour 2D, DXF)
  • Nuage de points 3D (.ply / .las / .e57)
  • Hauteur d'eau, dimensions, verticalité des murs
  • Trajectoire ROV annotée

Contact

Cosma / Silent Flow — moulin à marée project

Description
BlueROV multi-sensor mapping for tidal mill chambers — Ping360 scan-matching based positioning without GPS
Readme 474 KiB
Languages
HTML 65.1%
Python 34.8%
Dockerfile 0.1%