refactor: cleanup GUI + AI movement controls + depth-correction polish
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>
This commit is contained in:
1 parent
ac573505b7
commit
f6197488f9
6 files changed
+80
-344
No files matched your search
@@ -70,8 +70,11 @@ class G1Client:
|
||||
|
||||
def wrist_relative(self, side: str, delta_position: list[float] | None = None,
|
||||
delta_quaternion: list[float] | None = None, wait: bool = True,
|
||||
timeout_s: float = 5.0) -> dict[str, Any]:
|
||||
body: dict[str, Any] = {"side": side, "wait": wait, "timeout_s": timeout_s}
|
||||
timeout_s: float = 5.0, precise: bool = False) -> dict[str, Any]:
|
||||
# `precise` is forwarded but the bridge silently ignores it on
|
||||
# /wrist/relative if not supported — safer to always send it.
|
||||
body: dict[str, Any] = {"side": side, "wait": wait, "timeout_s": timeout_s,
|
||||
"precise": precise}
|
||||
if delta_position is not None:
|
||||
body["delta_position"] = delta_position
|
||||
if delta_quaternion is not None:
|
||||
|
||||
Reference in new issue
Block a user