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)
This commit is contained in:
Flag
2026-06-06 20:01:22 +00:00
parent 959783dfa7
commit 85e9a4d4b0
14 changed files with 12677 additions and 0 deletions

4225
data/out/cloud.ply Normal file

File diff suppressed because it is too large Load Diff

2110
data/out/map_2d.csv Normal file

File diff suppressed because it is too large Load Diff

31
data/out/trajectory.csv Normal file
View File

@@ -0,0 +1,31 @@
t,x_dr,y_dr,x_corr,y_corr
4.0000,0.0052,1.2770,0.0052,1.2770
8.0000,0.0099,2.5682,0.0186,2.5028
12.0000,0.0150,3.7379,0.0032,3.5944
16.0000,-0.0363,3.7869,-0.0636,3.5496
20.0000,-1.2863,3.7897,-1.2616,3.5461
24.0000,-2.5763,3.7952,-2.4599,3.5471
28.0000,-2.7656,3.8377,-2.6040,3.5255
32.0000,-2.7679,4.8392,-2.5176,4.4853
36.0000,-2.7505,6.1210,-2.5054,5.5785
40.0000,-2.7465,7.0774,-2.4440,6.4784
44.0000,-2.8020,7.1050,-2.3972,6.2123
48.0000,-2.8469,7.0197,-2.4795,6.0262
52.0000,-2.8601,5.7395,-2.5417,4.6874
56.0000,-2.8680,4.4624,-2.5370,3.4324
60.0000,-2.8839,3.1747,-2.3394,2.7384
64.0000,-2.8918,1.8854,-2.4141,1.5799
68.0000,-2.8906,1.1199,-2.4494,0.8736
72.0000,-2.4417,1.0912,-2.0733,1.0443
76.0000,-1.1468,1.0653,-0.8350,1.0251
80.0000,0.1292,1.0489,0.3113,0.9984
84.0000,1.4097,1.0307,1.5811,0.9940
88.0000,1.4998,1.0806,1.6091,1.0336
92.0000,1.5174,2.1988,1.5662,2.1307
96.0000,1.5338,3.4865,1.6061,3.3106
100.0000,1.5112,3.8156,1.5762,3.6191
104.0000,0.6588,3.8443,0.8076,3.6364
108.0000,-0.1266,3.8464,0.0730,3.6349
112.0000,-0.1646,3.4383,0.1422,3.2418
116.0000,-0.1861,2.1536,0.1467,1.9940
120.0000,-0.2090,0.8700,0.1515,0.7458
1 t x_dr y_dr x_corr y_corr
2 4.0000 0.0052 1.2770 0.0052 1.2770
3 8.0000 0.0099 2.5682 0.0186 2.5028
4 12.0000 0.0150 3.7379 0.0032 3.5944
5 16.0000 -0.0363 3.7869 -0.0636 3.5496
6 20.0000 -1.2863 3.7897 -1.2616 3.5461
7 24.0000 -2.5763 3.7952 -2.4599 3.5471
8 28.0000 -2.7656 3.8377 -2.6040 3.5255
9 32.0000 -2.7679 4.8392 -2.5176 4.4853
10 36.0000 -2.7505 6.1210 -2.5054 5.5785
11 40.0000 -2.7465 7.0774 -2.4440 6.4784
12 44.0000 -2.8020 7.1050 -2.3972 6.2123
13 48.0000 -2.8469 7.0197 -2.4795 6.0262
14 52.0000 -2.8601 5.7395 -2.5417 4.6874
15 56.0000 -2.8680 4.4624 -2.5370 3.4324
16 60.0000 -2.8839 3.1747 -2.3394 2.7384
17 64.0000 -2.8918 1.8854 -2.4141 1.5799
18 68.0000 -2.8906 1.1199 -2.4494 0.8736
19 72.0000 -2.4417 1.0912 -2.0733 1.0443
20 76.0000 -1.1468 1.0653 -0.8350 1.0251
21 80.0000 0.1292 1.0489 0.3113 0.9984
22 84.0000 1.4097 1.0307 1.5811 0.9940
23 88.0000 1.4998 1.0806 1.6091 1.0336
24 92.0000 1.5174 2.1988 1.5662 2.1307
25 96.0000 1.5338 3.4865 1.6061 3.3106
26 100.0000 1.5112 3.8156 1.5762 3.6191
27 104.0000 0.6588 3.8443 0.8076 3.6364
28 108.0000 -0.1266 3.8464 0.0730 3.6349
29 112.0000 -0.1646 3.4383 0.1422 3.2418
30 116.0000 -0.1861 2.1536 0.1467 1.9940
31 120.0000 -0.2090 0.8700 0.1515 0.7458

2439
data/sim/run_L.jsonl Normal file

File diff suppressed because it is too large Load Diff

2440
data/sim/run_L_truth.csv Normal file

File diff suppressed because it is too large Load Diff