feat(right_arm): perm assi cam->polso, precise=true default, verify_tag UI
Lavoro accumulato nella sessione 2026-05-21 prima del brainstorming
della tab Pose 3D:
- compute_delta_wrist generalizzato con cam_to_wrist_perm: la mappa
cam->polso non e' solo sign-flip ma una permutazione (default
identita' per backward compat). DeltaOversize ora espone X/Y/Z
nella stringa d'errore. Test aggiornati.
- G1Client.wrist_absolute / wrist_relative: precise=True di default
(era False). Stessa cosa per wrist_routes.AbsoluteReq Pydantic
e per agent.tools move_wrist_*. Movimenti reali ora chiedono
controllo accurato salvo override esplicito.
- Tab Braccio DX:
- /verify_tag endpoint: snapshot wrist FK + tag id=1 dalla front
camera. Per verifica relativa moveto vs marker (no calibrazione).
- GUI: pannello "Verifica tag id=1" + campi camera_offset_wrist_mm.
- markUserTouchedOnInput esteso a raOff/raSgn/raCamOff.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
1 parent
8d40ebaf89
commit
57954b5c8d
8 files changed
+238
-23
No files matched your search
@@ -61,7 +61,7 @@ class G1Client:
|
||||
# ----- mutating -----
|
||||
|
||||
def wrist_absolute(self, side: str, position: list[float], quaternion: list[float],
|
||||
wait: bool = True, timeout_s: float = 5.0, precise: bool = False) -> dict[str, Any]:
|
||||
wait: bool = True, timeout_s: float = 5.0, precise: bool = True) -> dict[str, Any]:
|
||||
body = {
|
||||
"side": side, "position": position, "quaternion": quaternion,
|
||||
"wait": wait, "timeout_s": timeout_s, "precise": precise,
|
||||
@@ -70,7 +70,7 @@ 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, precise: bool = False) -> dict[str, Any]:
|
||||
timeout_s: float = 5.0, precise: bool = True) -> 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,
|
||||
|
||||
Reference in new issue
Block a user