# presa-mano Microservizio Python (FastAPI) che orchestra: 1. **Calibrazione hand-eye** (eye-to-hand) tra la **Nuwa depth camera** (montata in alto, a sinistra del robot) e la **base del G1**, usando un **ArUco sul polso destro**. 2. **Riconoscimento oggetto** via YOLO server + point cloud Nuwa. 3. **Pianificazione presa**: asse dell'oggetto (PCA) + posa polso per il G1. ## Microservizi usati | Servizio | URL (default) | Scopo | |---------------|---------------------------|-------------------------------------| | Nuwa-HP60C | http://localhost:8877 | RGB, depth, point cloud, intrinsics | | Marker-finder | http://localhost:8082 | Detection 2D ArUco (corners) | | YOLO Server | http://localhost:8879 | Bbox oggetto da prendere | | G1 API Server | http://localhost:8765 | Controllo polso/mano (dry-run se down) | Il servizio **presa-mano** espone GUI + API su **http://localhost:8890**. ## Quick start ```bash docker compose up -d presa-mano # Apri http://localhost:8890 ``` ## GUI Tre tab: - **Calibrazione**: muovi il polso in varie pose, premi *Acquisisci sample* per ognuna, poi *Risolvi*. Salva `data/calibration.yaml`. - **Grasp**: rileva oggetto, visualizza bbox + asse, esegui (con toggle dry-run). - **Movimento EE**: lettura pose correnti, invio pose assolute/relative, apri/chiudi mano, emergency stop. ## Configurazione `config.yaml` contiene i default; l'API espone `GET/PUT /api/config` per override runtime (es. cambiare ID/size ArUco dalla GUI).