f6197488f91b71c40fb9bb9eac5dc31def251dea
GUI: - Rimossa tab "Calibrazione" (sostituita dalla calibrazione via AI con saved task `calibrazione_dx`/`calibrazione_sx`, oppure dalla tab "Auto- Calibrazione" per il flusso a griglia automatica). Backend calibration_routes invariato — tool AI continuano a usarlo. AI tools: - Esposto `precise` su `move_wrist_absolute` e `move_wrist_relative` (forwarded al campo omonimo del bridge robot, controlla la modalità di controllo: false=veloce/tolleranza ampia, true=lento/posa accurata). - Aggiunto `arms_go_neutral` come tool dedicato (POST /arms/go_neutral del bridge): usato dall'AI per "torna a casa / posizione di riposo". Niente side, agisce su entrambe le braccia. - Fix `device_status`: ora wrappa la risposta con `_ok(...)` così il dispatcher la classifica correttamente. Prompt: - System prompt aggiornato: l'AI ora passa SEMPRE `precise=true` di default sui movimenti, escluso quando l'utente chiede esplicitamente velocità. Sezione dedicata su come tornare a riposo (arms_go_neutral). - Documentato che `measured_side_mm` (ritornato da get_marker_3d) viene distorto dalla correzione affine sul depth — non usarlo per validare la size_mm dichiarata. Saved tasks: - `calibrazione_dx` e `calibrazione_sx` ora partono e finiscono con `arms_go_neutral`, cancellano i sample preesistenti per quel lato, e acquisiscono ≥10 sample con `precise=true` su una griglia ±80mm + ±15° di rotazione attorno alla posa home. Config: - Marker corrente: id=10, size=40mm (cambiato il tag fisico sul polso). - Addendum prompt allentato: niente più "max 3 righe", ora chiede di riportare il risultato di OGNI tool chiamato. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
presa-mano
Microservizio Python (FastAPI) che orchestra:
- 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.
- Riconoscimento oggetto via YOLO server + point cloud Nuwa.
- 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
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).
Languages
Python
62.6%
JavaScript
27%
HTML
5.1%
CSS
4.8%
Shell
0.3%
Other
0.2%