Commit Graph
15 Commits
Author SHA1 Message Date
AdrianoandClaude Opus 4.8 8084b87261 Merge: allineamento cross-camera + overlay tag multi-camera (Pose 3D)
- umeyama_similarity (geometry)
- GET /api/pose_3d/tags (Nuwa + D435i), rimosso /front_tags
- POST /api/pose_3d/align: fit Umeyama + persistenza pose_3d.cross_camera
- /state espone cross_camera
- overlay tag su entrambe le camere (Nuwa rosso, D435i ciano)
- UI Allinea cross-camera + render Nuwa nel frame D435i
- docs

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 13:58:06 +02:00
AdrianoandClaude Opus 4.8 0ee3ef244b chore(pose_3d): tieni config.yaml allineato a main (drift runtime non versionato)
Il commit della Task 1 aveva incluso per errore (via git add -u) drift runtime
di config.yaml (cloud_params size/flip) persistito dall'app live. Lo rimuovo dal
branch: config.yaml resta uguale a main. I valori live restano come modifica
non committata nel working tree.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:43:34 +02:00
AdrianoandClaude Sonnet 4.6 d9213ca19a docs(pose_3d): tags multi-camera + calibrazione cross-camera
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:41:12 +02:00
AdrianoandClaude Opus 4.8 47ae8a6b2c feat(pose_3d): doAlign + persistenza/caricamento calibrazione cross-camera
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:38:25 +02:00
AdrianoandClaude Opus 4.8 746662d534 feat(pose_3d): piazzamento Nuwa allineato nel frame D435i (matrice)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:35:30 +02:00
AdrianoandClaude Sonnet 4.6 2f0dc69cdd feat(pose_3d): rinomina sezione Tags + controlli Allinea cross-camera
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:33:55 +02:00
AdrianoandClaude Sonnet 4.6 edc4430c67 feat(pose_3d): overlay tag su entrambe le camere (Nuwa rosso, D435i ciano)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:31:16 +02:00
AdrianoandClaude Sonnet 4.6 79f587567e feat(pose_3d): /state espone blocco cross_camera
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:28:52 +02:00
AdrianoandClaude Sonnet 4.6 5ab808accd feat(pose_3d): POST /align fit Umeyama cross-camera + persistenza
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:28:05 +02:00
AdrianoandClaude Sonnet 4.6 8b01ae123f feat(pose_3d): GET /tags multi-camera, rimuovi /front_tags
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:20:04 +02:00
AdrianoandClaude Sonnet 4.6 77fb0f8fc0 feat(geometry): umeyama_similarity (rot+trasl+scala uniforme)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-03 12:13:25 +02:00
AdrianoandClaude Opus 4.8 9189700f34 docs(pose_3d): piano implementazione allineamento cross-camera
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:06:25 +02:00
AdrianoandClaude Opus 4.8 80625cc281 docs(pose_3d): spec allineamento cross-camera + overlay tag multi-camera
Design per: detection tag su tutte le camere attive (Nuwa rosso + D435i),
rinomina "Tag camera frontale" -> "Tags", calibrazione persistente
Nuwa->frontale via tag condiviso (Umeyama similarity), flag+pulsante
"Allinea" nella sezione Cloud cross-camera.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 12:02:26 +02:00
AdrianoandClaude Opus 4.8 b4922fe01b fix(pose_3d): front-tag detection solo al cambio immagine, non in loop
L'overlay tag frontale (D435i) ri-eseguiva la detection ArUco ad ogni
tick di pollState() finche' il flag era attivo. Ora gira solo:
- al toggle on del checkbox
- a fine acquireClouds() (pulsante Acquisisci) se il flag e' attivo

Rimosso il piggyback in pollState() e lo stato front_tags.in_flight
ormai inutilizzato.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-03 10:05:51 +02:00
AdrianoandClaude Opus 4.7 fb0e9b9112 feat(pose_3d): tag locator save, front-tag overlay, sidebar tabs, cloud params persist
- Sidebar a 3 tab verticali (POSE / CAMERAS / MISC) per ridurre lo scroll
- Tag locator: POST /api/pose_3d/tag_offset/{save,} salva crocetta nel
  viewport con snapshot giunti, current.json + archive rotation
- Front-camera tag overlay (MISC):
  - GET /api/pose_3d/front_tags scansiona ArUco sul D435i e per ogni tag
    misura i 4 corner 3D via depth sensor (indipendente da solvePnP);
    outlier rejection ±20% dalla mediana per ignorare corner che catturano
    background sul bordo del marker
  - Rendering quad cyan + label compatta (id, edge_mm, distanza camera)
    agganciato al d435_link, segue la camera anche in modalita' hand-eye
  - Trigger via pollState() quando il flag e' on, niente timer separato
- Cloud cross-camera: memorizza step/max_depth/sizes/scale_xy/flip/handeye
  in pose_3d.cloud_params al click di Acquisisci, ripopola UI da config
  al primo poll (state.cloud_params_populated guard)
- D435i front cloud: applica nuwa_to_cv_frame (il servizio ritorna native,
  non OpenCV come si pensava)
- Cache-bust per pose_3d.js e pose_3d.css

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-06-01 16:53:26 +02:00