Adriano Dal Pastro
9d30073d57
fix(pose_3d): zero scena al centro robot (pelvi), griglia sotto i piedi a Z=-0.793
2026-05-21 18:06:38 +02:00
Adriano Dal Pastro
38848ad53c
feat(pose_3d): IK 2-bone su URDF dopo Apply/Jog/GoPose (polso modello segue il target)
2026-05-21 17:47:12 +02:00
Adriano Dal Pastro
7f60238be9
fix(pose_3d): URDF feet a terra (+0.793m) + sfere polso a zero-pose (Z=0.45)
2026-05-21 17:41:31 +02:00
Adriano Dal Pastro
bfd4cc13fb
fix(pose_3d): URDFLoader path resolution (rimuovi doppio prefisso /static/vendor/g1/)
2026-05-21 17:37:25 +02:00
Adriano Dal Pastro
d5bb9cebd3
feat(pose_3d): workspace check client-side (ghost verde/rosso) + SHOULDER da URDF
2026-05-21 17:21:09 +02:00
Adriano Dal Pastro
8c09d79505
feat(pose_3d): modello reale G1 (URDF + STL meshes) al posto della silhouette finta
...
Sostituisce torso/head/hips/gambe/spalle primitive in tab Pose 3D con il
modello URDF G1 (g1_body29_hand14), caricato via urdf-loader 0.12.6.
Vendor:
- web/vendor/g1/g1.urdf + 64 mesh STL (~52 MB, copiati da
G1_API_Server/assets/g1/)
- web/vendor/three/addons/loaders/URDFLoader.js (npm urdf-loader@0.12 .6),
import path adattato a 'three/addons/loaders/STLLoader.js' (importmap
del sito) e ColladaLoader stubbato (G1 URDF è solo STL)
- web/vendor/three/addons/loaders/URDFClasses.js (companion del loader)
pose_3d.js:
- Aggiunge loadG1Urdf(scene) async che configura loader.loadMeshCb per
servire le STL dal mount /static/vendor/g1/meshes/
- Best-effort: in caso di errore di parsing/fetch il body non viene
aggiunto ma la tab continua a funzionare (polsi, UCS, gizmo)
2026-05-21 17:14:16 +02:00
Adriano Dal Pastro
18dce0d951
feat(pose_3d): bottone Sincronizza con robot (refetch state + reset target)
2026-05-21 17:08:09 +02:00
Adriano Dal Pastro
b852976a4a
feat(pose_3d): readout XYZ/RPY editabili (input number, drive il ghost)
2026-05-21 17:01:03 +02:00
Adriano Dal Pastro
8b722ca729
feat(pose_3d): silhouette robot completa (testa+gambe+spalle) + FRONT come marker terra
2026-05-21 16:46:44 +02:00
Adriano Dal Pastro
d4cd82551e
fix(pose_3d): ghost fallback alla posa dell'arm quando /state e' offline
2026-05-21 16:44:57 +02:00
Adriano Dal Pastro
fd506dff9b
feat(pose_3d): etichette DX/SX sulle sfere e FRONT al base
2026-05-21 16:41:08 +02:00
Adriano Dal Pastro
25c94d3861
fix(pose_3d): gizmo visibility (use getHelper for r160) + larger wrist hitbox + diagnostics
2026-05-21 16:36:09 +02:00
Adriano Dal Pastro
71baf829e6
feat(pose_3d): bottone Sblocca braccia
2026-05-21 16:06:43 +02:00
Adriano Dal Pastro
bb6796bfe3
feat(pose_3d): save/load/delete named poses
2026-05-21 16:03:38 +02:00
Adriano Dal Pastro
a81fc9acf9
feat(pose_3d): Jog mode auto-apply + safety + Precise toggle
2026-05-21 16:01:56 +02:00
Adriano Dal Pastro
5b2239e307
feat(pose_3d): Editor mode Apply + Cancel
2026-05-21 16:00:15 +02:00
Adriano Dal Pastro
64500944d6
feat(pose_3d): selezione polso + gizmo translate/rotate sul ghost
2026-05-21 15:58:41 +02:00
Adriano Dal Pastro
7a561cfa67
feat(pose_3d): polling /state + readout sidebar
2026-05-21 15:56:34 +02:00
Adriano Dal Pastro
f161894d53
feat(pose_3d): scene Three.js base (torso, polsi, UCS, grid)
2026-05-21 15:54:29 +02:00