From 7cce6b70efe72da8abaecac85ce77d1610f5eae3 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Sat, 13 Jun 2026 11:53:30 +0800 Subject: [PATCH 01/12] =?UTF-8?q?feat(wuji):=20Genesis-native=20deploy=20?= =?UTF-8?q?=E2=80=94=20real2sim=20+=20ONNX=20hand=20control?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Port the wuji-mjlab/deploy/reorient pipeline onto the GeneLab (Genesis) stack under examples/wuji/deploy. Two deliverables: reproduce the real cube's pose inside the Genesis sim (real2sim), and run an exported ONNX policy to control the (real or mock) Wuji hand. Pure-numpy core is simulator- and hardware-agnostic, so all frame / obs / action / policy logic runs and is unit-tested headlessly (31 tests): - frame_transform, real2sim: camera->wrist-tag lift + tag->sim-world lift - zmq_bridge: cube/goal pub-sub, scipy-xyzw<->mujoco-wxyz, last-valid cache - obs: DeployObsBuilder (207-dim policy obs + 3-step history) - action: ActionProcessor (offset + clamp + EMA + warmup) - onnx_policy: ONNXPolicy (GeneLab exporter metadata format) - hand_driver: HandDriverBase / MockHandDriver / WujiHandDriver (lazy) - controller: DeployController (closed-loop step) Two correctness facts pinned by tests: - the deploy obs needs no forward kinematics (observer reports the cube already in the tag frame); FK is only for the viewer - the deploy 6D goal-error matches the GeneLab training encoding (matrix_to_rotation_6d = first two rows), verified numerically against the actual training math — differs from the wuji-mjlab deploy convention Genesis/hardware glue (scripts/play_real, toreal_viewer, cube_world_observer) is wired over the tested core but not run in CI. Co-Authored-By: Claude Opus 4.8 (1M context) --- examples/wuji/pyproject.toml | 6 + .../wuji/src/genelab_wuji/deploy/README.md | 73 +++++ .../wuji/src/genelab_wuji/deploy/__init__.py | 8 + .../wuji/src/genelab_wuji/deploy/action.py | 52 +++ .../wuji/src/genelab_wuji/deploy/config.py | 24 ++ .../genelab_wuji/deploy/config/camera.yaml | 28 ++ .../genelab_wuji/deploy/config/cube_tags.json | 156 +++++++++ .../src/genelab_wuji/deploy/controller.py | 105 ++++++ .../genelab_wuji/deploy/frame_transform.py | 70 ++++ .../src/genelab_wuji/deploy/hand_driver.py | 98 ++++++ examples/wuji/src/genelab_wuji/deploy/obs.py | 97 ++++++ .../src/genelab_wuji/deploy/onnx_policy.py | 80 +++++ .../wuji/src/genelab_wuji/deploy/real2sim.py | 54 ++++ .../genelab_wuji/deploy/scripts/__init__.py | 0 .../src/genelab_wuji/deploy/scripts/_env.py | 51 +++ .../deploy/scripts/cube_world_observer.py | 151 +++++++++ .../genelab_wuji/deploy/scripts/play_real.py | 104 ++++++ .../deploy/scripts/toreal_viewer.py | 61 ++++ .../src/genelab_wuji/deploy/zmq_bridge.py | 300 ++++++++++++++++++ tests/test_examples_wuji_deploy_action.py | 54 ++++ tests/test_examples_wuji_deploy_controller.py | 84 +++++ ...st_examples_wuji_deploy_frame_transform.py | 34 ++ .../test_examples_wuji_deploy_hand_driver.py | 32 ++ tests/test_examples_wuji_deploy_obs.py | 114 +++++++ .../test_examples_wuji_deploy_onnx_policy.py | 73 +++++ tests/test_examples_wuji_deploy_real2sim.py | 48 +++ tests/test_examples_wuji_deploy_sim_viz.py | 63 ++++ tests/test_examples_wuji_deploy_zmq_bridge.py | 121 +++++++ 28 files changed, 2141 insertions(+) create mode 100644 examples/wuji/src/genelab_wuji/deploy/README.md create mode 100644 examples/wuji/src/genelab_wuji/deploy/__init__.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/action.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/config.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/config/camera.yaml create mode 100644 examples/wuji/src/genelab_wuji/deploy/config/cube_tags.json create mode 100644 examples/wuji/src/genelab_wuji/deploy/controller.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/frame_transform.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/hand_driver.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/obs.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/onnx_policy.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/real2sim.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/__init__.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/_env.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/toreal_viewer.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py create mode 100644 tests/test_examples_wuji_deploy_action.py create mode 100644 tests/test_examples_wuji_deploy_controller.py create mode 100644 tests/test_examples_wuji_deploy_frame_transform.py create mode 100644 tests/test_examples_wuji_deploy_hand_driver.py create mode 100644 tests/test_examples_wuji_deploy_obs.py create mode 100644 tests/test_examples_wuji_deploy_onnx_policy.py create mode 100644 tests/test_examples_wuji_deploy_real2sim.py create mode 100644 tests/test_examples_wuji_deploy_sim_viz.py create mode 100644 tests/test_examples_wuji_deploy_zmq_bridge.py diff --git a/examples/wuji/pyproject.toml b/examples/wuji/pyproject.toml index 1ba06643..0fef7182 100644 --- a/examples/wuji/pyproject.toml +++ b/examples/wuji/pyproject.toml @@ -6,6 +6,12 @@ readme = "README.md" requires-python = ">=3.12" dependencies = ["genelab"] +[project.optional-dependencies] +# Deploy core (real2sim + policy control). Pure-software pieces tested headlessly. +deploy = ["onnxruntime", "pyzmq", "scipy"] +# Vision observer (real camera -> ZMQ). Hardware-side, not exercised in CI. +deploy-vision = ["opencv-contrib-python", "pupil-apriltags", "pyyaml"] + [project.entry-points."genelab.extensions"] genelab_wuji = "genelab_wuji.tasks:register" diff --git a/examples/wuji/src/genelab_wuji/deploy/README.md b/examples/wuji/src/genelab_wuji/deploy/README.md new file mode 100644 index 00000000..132dad3a --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/README.md @@ -0,0 +1,73 @@ +# Wuji-hand deploy (Genesis-native) + +A Genesis-native port of the `wuji-mjlab/deploy/reorient` pipeline. Two deliverables: + +1. **real2sim** — reproduce the real cube's pose inside the Genesis sim. +2. **policy deploy** — run an exported ONNX policy to control the (real or mock) hand. + +The pieces are decoupled via ZMQ (localhost): + +``` + cube_world_observer ──cube pose (5555)──▶ play_real (controls the hand) + (camera, hardware) │ toreal_viewer (mirrors cube in sim) + └──────────────▶ + toreal_viewer ──goal (5556)──▶ play_real +``` + +## Architecture + +| Module | Responsibility | Tested | +|---|---|---| +| `frame_transform.py` | wxyz quat math + `cube_cam_to_tag` (camera→wrist-tag lift) | ✅ | +| `real2sim.py` | `tag_pose_in_world`, `cube_pose_in_tag_to_world` (sim reproduction) | ✅ | +| `zmq_bridge.py` | cube/goal pub-sub + xyzw↔wxyz + last-valid cache | ✅ | +| `obs.py` | `DeployObsBuilder` (207-dim policy obs + 3-step history) | ✅ | +| `action.py` | `ActionProcessor` (offset + clamp + EMA + warmup) | ✅ | +| `onnx_policy.py` | `ONNXPolicy` (GeneLab metadata format) | ✅ | +| `hand_driver.py` | `HandDriverBase` / `MockHandDriver` / `WujiHandDriver` | ✅ (mock) | +| `controller.py` | `DeployController` (closed-loop step) | ✅ | +| `scripts/play_real.py` | deploy control loop (real or mock hand) | glue | +| `scripts/toreal_viewer.py` | real2sim Genesis viewer | glue | +| `scripts/cube_world_observer.py` | camera → ZMQ vision pipeline | glue (hardware) | + +The pure-software core is numpy-only and runs headlessly (no Genesis, no hardware), +so all frame/obs/action/policy logic is unit-tested in `tests/test_examples_wuji_deploy_*.py`. + +### Key conventions + +- **Quaternions**: wxyz everywhere internally; the cube wire format is scipy xyzw and + is converted at the ZMQ boundary (`cube_pose_from_msg` / `cube_msg_from_pose`). +- **Tag frame**: the observer reports the cube already in the wrist-AprilTag frame — + the exact frame the policy was trained on — so the deploy obs needs **no forward + kinematics**. +- **6D goal error**: matches the GeneLab training encoding (`matrix_to_rotation_6d`, + first two matrix rows), pinned against the real training math in the tests. +- **Joint order**: `finger1_joint1..4, finger2...` (= `wujihandpy` (5,4) row-major), so + no remap between policy and hardware. + +## Install + +```bash +uv pip install -e 'examples/wuji[deploy]' # core (real2sim + control) +uv pip install -e 'examples/wuji[deploy,deploy-vision]' # + camera observer +``` + +## Run + +```bash +# 0) export a trained policy to ONNX +genelab export Genelab-Reorient-Wuji-Hand-v0 PATH/model.pt --format onnx --output policy.onnx + +# 1) smoke-test the control loop, no hardware, no ZMQ +python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --no-zmq --steps 100 + +# 2) real2sim: mirror the real cube in the Genesis sim (needs GPU + display) +python -m genelab_wuji.deploy.scripts.cube_world_observer --camera 0 # terminal A +python -m genelab_wuji.deploy.scripts.toreal_viewer # terminal B + +# 3) drive the real hand from the live observer feed +python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real +``` + +The vision observer here is a simplified port (single-marker PnP, no Kalman / dominant-face +fusion); for the production Hikvision rig, swap `_open_camera` and keep the rest. diff --git a/examples/wuji/src/genelab_wuji/deploy/__init__.py b/examples/wuji/src/genelab_wuji/deploy/__init__.py new file mode 100644 index 00000000..17e9973b --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/__init__.py @@ -0,0 +1,8 @@ +"""Genesis-native deployment for the Wuji-hand reorientation policy. + +Ports the deployment pipeline from ``wuji-mjlab/deploy/reorient`` onto the GeneLab +(Genesis) stack: real2sim cube-pose reproduction in sim and ONNX-policy control of +the hand. The pure-numpy core (frame transforms, ZMQ bridge, obs assembly, ONNX +wrapper, hand-driver abstraction) is simulator- and hardware-agnostic so it runs +and tests headlessly; Genesis viewers and real hardware live in ``deploy.scripts``. +""" diff --git a/examples/wuji/src/genelab_wuji/deploy/action.py b/examples/wuji/src/genelab_wuji/deploy/action.py new file mode 100644 index 00000000..56fc748e --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/action.py @@ -0,0 +1,52 @@ +"""Action post-processing for deploy (numpy port of JointPositionOffsetEMAAction). + +The policy emits raw actions ~[-1, 1]; the joint target is +``default + action_scale * clamp(action)``, clamped to joint limits, EMA-smoothed +against the previous target, and held at the default pose for ``warmup_steps`` after +each reset. Training-only terms (encoder_bias, action noise) are dropped. +""" + +from __future__ import annotations + +import numpy as np + + +class ActionProcessor: + """Turn a raw policy action into a smoothed, limit-clamped joint target.""" + + def __init__( + self, + default_joint_pos: np.ndarray, + action_scale: float = 0.5, + ema_alpha: float = 0.5, + warmup_steps: int = 8, + joint_pos_limits: tuple[np.ndarray, np.ndarray] | None = None, + ) -> None: + self._default = np.asarray(default_joint_pos, dtype=float) + self.action_scale = action_scale + self.ema_alpha = ema_alpha + self.warmup_steps = warmup_steps + if joint_pos_limits is None: + self._lo = np.full_like(self._default, -np.inf) + self._hi = np.full_like(self._default, np.inf) + else: + self._lo = np.asarray(joint_pos_limits[0], dtype=float) + self._hi = np.asarray(joint_pos_limits[1], dtype=float) + self._prev_target = self._default.copy() + self._step = 0 + + def reset(self) -> None: + """Reset the EMA state and warmup counter (call on episode boundaries).""" + self._prev_target = self._default.copy() + self._step = 0 + + def process(self, action: np.ndarray) -> np.ndarray: + """Return the joint target for this control step (JOINT_NAMES_20 order).""" + action = np.clip(np.asarray(action, dtype=float), -1.0, 1.0) + raw_target = self._default + self.action_scale * action + raw_target = np.clip(raw_target, self._lo, self._hi) + smoothed = self.ema_alpha * raw_target + (1.0 - self.ema_alpha) * self._prev_target + target = self._default.copy() if self._step < self.warmup_steps else smoothed + self._prev_target = target.copy() + self._step += 1 + return target diff --git a/examples/wuji/src/genelab_wuji/deploy/config.py b/examples/wuji/src/genelab_wuji/deploy/config.py new file mode 100644 index 00000000..bc8dd3a0 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/config.py @@ -0,0 +1,24 @@ +"""Shared deploy constants: joint ordering and home pose. + +The single source of truth for joint order is the reorient task's home keyframe +``REORIENT_JOINT_POS`` (finger1_joint1..4, finger2..., finger5_joint4). That order +matches both the GeneLab policy obs/action layout and ``wujihandpy``'s (5, 4) +row-major flatten, so the deploy stack never has to remap joints. +""" + +from __future__ import annotations + +import numpy as np + +from genelab_wuji.reorient.constants import REORIENT_JOINT_POS + +JOINT_NAMES_20: tuple[str, ...] = tuple(REORIENT_JOINT_POS) +"""The 20 hand joint names in encoder / policy order.""" + +N_JOINTS: int = len(JOINT_NAMES_20) +"""Hand DOF count (20 = 5 fingers x 4 joints).""" + + +def default_joint_pos() -> np.ndarray: + """Home grasp keyframe as a ``(20,)`` array, in ``JOINT_NAMES_20`` order.""" + return np.array([REORIENT_JOINT_POS[name] for name in JOINT_NAMES_20], dtype=float) diff --git a/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml new file mode 100644 index 00000000..7327cdee --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml @@ -0,0 +1,28 @@ +sensor: + full_width: 1280 + full_height: 1024 +roi: + offset_x: 0 + offset_y: 0 + width: 1280 + height: 1024 +fast_roi: + offset_x: 464 + offset_y: 112 + width: 616 + height: 504 +intrinsics: + fx: 1694.09 + fy: 1692.69 + cx: 644.70 + cy: 477.70 +distortion: + k1: -0.071205 + k2: 0.129295 + p1: 0.000104 + p2: 0.000100 + k3: -0.128663 +capture: + exposure_time: 5000 + gain: 10.0 + frame_rate: 90 diff --git a/examples/wuji/src/genelab_wuji/deploy/config/cube_tags.json b/examples/wuji/src/genelab_wuji/deploy/config/cube_tags.json new file mode 100644 index 00000000..e0e7579e --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/config/cube_tags.json @@ -0,0 +1,156 @@ +{ + "description": "Cube ArUco tag configuration", + "cube_size": 0.054, + "tag_size": 0.013, + "tag_center_offset": 0.018, + "face_rotations": { + "TOP": 0, + "BOTTOM": 180, + "FRONT": 90, + "BACK": 90, + "LEFT": 90, + "RIGHT": 270 + }, + "faces_config": { + "TOP": { + "0": "T", + "2": "R", + "3": "B", + "1": "L" + }, + "BOTTOM": { + "11": "T", + "9": "R", + "8": "B", + "10": "L" + }, + "FRONT": { + "22": "T", + "23": "R", + "21": "B", + "20": "L" + }, + "BACK": { + "18": "T", + "19": "R", + "17": "B", + "16": "L" + }, + "LEFT": { + "15": "R", + "14": "T", + "13": "B", + "12": "L" + }, + "RIGHT": { + "5": "T", + "4": "R", + "7": "L", + "6": "B" + } + }, + "face_axes": { + "TOP": { + "center": [ + 0, + 0, + 1 + ], + "u": [ + 1, + 0, + 0 + ], + "v": [ + 0, + 1, + 0 + ] + }, + "BOTTOM": { + "center": [ + 0, + 0, + -1 + ], + "u": [ + 1, + 0, + 0 + ], + "v": [ + 0, + -1, + 0 + ] + }, + "FRONT": { + "center": [ + 0, + -1, + 0 + ], + "u": [ + 1, + 0, + 0 + ], + "v": [ + 0, + 0, + 1 + ] + }, + "BACK": { + "center": [ + 0, + 1, + 0 + ], + "u": [ + -1, + 0, + 0 + ], + "v": [ + 0, + 0, + 1 + ] + }, + "LEFT": { + "center": [ + -1, + 0, + 0 + ], + "u": [ + 0, + -1, + 0 + ], + "v": [ + 0, + 0, + 1 + ] + }, + "RIGHT": { + "center": [ + 1, + 0, + 0 + ], + "u": [ + 0, + 1, + 0 + ], + "v": [ + 0, + 0, + 1 + ] + } + } +} diff --git a/examples/wuji/src/genelab_wuji/deploy/controller.py b/examples/wuji/src/genelab_wuji/deploy/controller.py new file mode 100644 index 00000000..88e60d84 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/controller.py @@ -0,0 +1,105 @@ +"""Closed-loop deploy controller (hardware/sim-agnostic). + +Wires the deploy pieces into one control step: + + read encoders -> build policy obs (cube/goal from the observer feed) + -> ONNX policy -> EMA action -> write joint target to the hand + +It depends only on small protocols (a hand driver, a cube source, a goal source, +a callable policy), so it runs headlessly with mocks in tests and with the real +hand + ZMQ + Genesis viewer in ``scripts/play_real.py``. +""" + +from __future__ import annotations + +from typing import Any, Protocol + +import numpy as np + +from genelab_wuji.deploy.action import ActionProcessor +from genelab_wuji.deploy.config import N_JOINTS +from genelab_wuji.deploy.obs import DeployObsBuilder + + +class _Policy(Protocol): + def __call__(self, obs: np.ndarray) -> np.ndarray: ... + + +class _CubeSource(Protocol): + def latest(self) -> tuple[np.ndarray, np.ndarray]: ... + + +class _GoalSource(Protocol): + def latest(self) -> np.ndarray: ... + + +class _Driver(Protocol): + def home(self) -> None: ... + def write_target(self, qpos: np.ndarray) -> None: ... + def read_encoders(self) -> np.ndarray: ... + + +class DeployController: + """Run the policy in closed loop against a hand driver and observer feeds.""" + + def __init__( + self, + policy: _Policy, + driver: _Driver, + cube_source: _CubeSource, + goal_source: _GoalSource, + *, + default_joint_pos: np.ndarray, + control_dt: float = 0.05, + action_scale: float = 0.5, + ema_alpha: float = 0.5, + warmup_steps: int = 8, + joint_pos_limits: tuple[np.ndarray, np.ndarray] | None = None, + ) -> None: + self.policy = policy + self.driver = driver + self.cube_source = cube_source + self.goal_source = goal_source + self.control_dt = control_dt + self._default = np.asarray(default_joint_pos, dtype=float) + self._obs = DeployObsBuilder(self._default) + self._action_proc = ActionProcessor( + self._default, + action_scale=action_scale, + ema_alpha=ema_alpha, + warmup_steps=warmup_steps, + joint_pos_limits=joint_pos_limits, + ) + self._last_action = np.zeros(N_JOINTS) + self._prev_joint_pos = self._default.copy() + + def reset(self) -> None: + """Home the hand and clear obs/action/velocity state.""" + self.driver.home() + self._obs.reset() + self._action_proc.reset() + self._last_action = np.zeros(N_JOINTS) + self._prev_joint_pos = self.driver.read_encoders() + + def step(self) -> dict[str, Any]: + """Run one control step; return ``{action, target, obs}``.""" + joint_pos = self.driver.read_encoders() + joint_vel = (joint_pos - self._prev_joint_pos) / self.control_dt + self._prev_joint_pos = joint_pos + + cube_pos_tag, cube_quat_tag = self.cube_source.latest() + goal_quat_tag = self.goal_source.latest() + + obs = self._obs.compute( + joint_pos=joint_pos, + joint_vel=joint_vel, + cube_pos_tag=cube_pos_tag, + cube_quat_tag=cube_quat_tag, + goal_quat_tag=goal_quat_tag, + last_action=self._last_action, + ) + action = np.asarray(self.policy(obs), dtype=float) + target = self._action_proc.process(action) + self.driver.write_target(target) + self._last_action = action + return {"action": action, "target": target, "obs": obs} diff --git a/examples/wuji/src/genelab_wuji/deploy/frame_transform.py b/examples/wuji/src/genelab_wuji/deploy/frame_transform.py new file mode 100644 index 00000000..aa00a9dd --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/frame_transform.py @@ -0,0 +1,70 @@ +"""Frame transforms for the deploy pipeline (numpy, wxyz quaternion convention). + +Two concerns live here: + +* **Quaternion math** (``quat_apply`` / ``quat_mul`` / ``quat_conjugate``) in the + wxyz Hamilton convention used across the MuJoCo / mjlab / GeneLab stack. +* **real2sim lift** (``cube_cam_to_tag``): the vision pipeline reports the cube + pose and the wrist-AprilTag pose both in the *camera* frame; ``cube_cam_to_tag`` + expresses the cube in the *tag* frame, which is the frame the policy observes. + +All rotations are 3x3 matrices whose columns are the source-frame axes written in +the target frame (``R_a_b`` maps a vector in frame ``a`` into frame ``b``). +""" + +from __future__ import annotations + +import numpy as np + + +def quat_apply(quat_wxyz: np.ndarray, vec: np.ndarray) -> np.ndarray: + """Rotate ``vec`` by the unit quaternion ``quat_wxyz`` (Hamilton, wxyz).""" + w, x, y, z = quat_wxyz + R = np.array([ + [1 - 2 * (y * y + z * z), 2 * (x * y - z * w), 2 * (x * z + y * w)], + [ 2 * (x * y + z * w), 1 - 2 * (x * x + z * z), 2 * (y * z - x * w)], + [ 2 * (x * z - y * w), 2 * (y * z + x * w), 1 - 2 * (x * x + y * y)], + ]) + return R @ vec + + +def quat_mul(q1: np.ndarray, q2: np.ndarray) -> np.ndarray: + """Hamilton product of two wxyz quaternions: ``q1 ∘ q2``.""" + w1, x1, y1, z1 = q1 + w2, x2, y2, z2 = q2 + return np.array([ + w1 * w2 - x1 * x2 - y1 * y2 - z1 * z2, + w1 * x2 + x1 * w2 + y1 * z2 - z1 * y2, + w1 * y2 - x1 * z2 + y1 * w2 + z1 * x2, + w1 * z2 + x1 * y2 - y1 * x2 + z1 * w2, + ]) + + +def quat_conjugate(quat_wxyz: np.ndarray) -> np.ndarray: + """Conjugate (== inverse for a unit quat) of a wxyz quaternion.""" + w, x, y, z = quat_wxyz + return np.array([w, -x, -y, -z]) + + +def cube_cam_to_tag( + R_tag_cam: np.ndarray, + t_tag_cam: np.ndarray, + R_cube_cam: np.ndarray, + t_cube_cam: np.ndarray, +) -> tuple[np.ndarray, np.ndarray]: + """Express the cube pose in the wrist-tag frame. + + Args: + R_tag_cam: ``(3, 3)`` tag rotation in the camera frame. + t_tag_cam: ``(3,)`` tag origin in the camera frame. + R_cube_cam: ``(3, 3)`` cube rotation in the camera frame. + t_cube_cam: ``(3,)`` cube center in the camera frame. + + Returns: + ``(R_cube_tag, t_cube_tag)`` — the cube pose in the tag frame. + """ + R_cam_tag = R_tag_cam.T + t_cam_tag = -R_cam_tag @ t_tag_cam + R_cube_tag = R_cam_tag @ R_cube_cam + t_cube_tag = R_cam_tag @ t_cube_cam + t_cam_tag + return R_cube_tag, t_cube_tag diff --git a/examples/wuji/src/genelab_wuji/deploy/hand_driver.py b/examples/wuji/src/genelab_wuji/deploy/hand_driver.py new file mode 100644 index 00000000..b96fc3e2 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/hand_driver.py @@ -0,0 +1,98 @@ +"""Hand-driver abstraction: hardware-agnostic interface + mock + real (wujihandpy). + +The control loop depends only on ``HandDriverBase``. ``MockHandDriver`` echoes +written targets so the full pipeline runs and tests headlessly; ``WujiHandDriver`` +talks to the real hand and is imported lazily so the dependency is optional. +""" + +from __future__ import annotations + +from abc import ABC, abstractmethod +from typing import Any + +import numpy as np + +from genelab_wuji.deploy.config import JOINT_NAMES_20, N_JOINTS, default_joint_pos + + +class HandDriverBase(ABC): + """Interface every hand backend implements (targets/encoders flattened to 20).""" + + @abstractmethod + def home(self) -> None: + """Drive the hand to the home grasp keyframe.""" + + @abstractmethod + def write_target(self, qpos: np.ndarray) -> None: + """Command a ``(20,)`` joint position target (JOINT_NAMES_20 order).""" + + @abstractmethod + def read_encoders(self) -> np.ndarray: + """Read the actual ``(20,)`` joint positions (JOINT_NAMES_20 order).""" + + def joint_names_in_encoder_order(self) -> tuple[str, ...]: + """Joint names matching ``read_encoders`` / ``write_target`` indexing.""" + return JOINT_NAMES_20 + + +class MockHandDriver(HandDriverBase): + """In-memory hand: ``read_encoders`` echoes the last ``write_target``. + + Starts at the home grasp pose so a fresh driver reads a sensible state. + """ + + def __init__(self) -> None: + self._state = default_joint_pos() + + def home(self) -> None: + self._state = default_joint_pos() + + def write_target(self, qpos: np.ndarray) -> None: + qpos = np.asarray(qpos, dtype=float) + if qpos.shape != (N_JOINTS,): + raise ValueError(f"qpos shape {qpos.shape}, expected ({N_JOINTS},)") + self._state = qpos.copy() + + def read_encoders(self) -> np.ndarray: + return self._state.copy() + + +class WujiHandDriver(HandDriverBase): + """Real Wuji hand via ``wujihandpy`` (imported lazily; untested in CI). + + The hardware exposes a (5, 4) array (5 fingers x 4 joints); we flatten to + (20,) at the boundary, which matches ``JOINT_NAMES_20`` row-major order. + Use as a context manager so joints are enabled on enter / disabled on exit. + """ + + def __init__(self, effort_limit_nm: float = 0.5) -> None: + import wujihandpy # noqa: F401 (fail loudly if the dep is missing) + + self._wujihandpy = wujihandpy + self.effort_limit_nm = effort_limit_nm + self._hand: Any = None + + def __enter__(self) -> "WujiHandDriver": + self._hand = self._wujihandpy.Hand() + self._hand.write_joint_effort_limit(self.effort_limit_nm) + self._hand.write_joint_enabled(True) + return self + + def __exit__(self, *exc: object) -> None: + if self._hand is not None: + self._hand.write_joint_enabled(False) + self._hand = None + + def home(self) -> None: + self.write_target(default_joint_pos()) + + def write_target(self, qpos: np.ndarray) -> None: + assert self._hand is not None, "enter the WujiHandDriver context first" + qpos = np.asarray(qpos, dtype=float) + if qpos.shape != (N_JOINTS,): + raise ValueError(f"qpos shape {qpos.shape}, expected ({N_JOINTS},)") + self._hand.write_joint_target_position(qpos.reshape(5, 4)) + + def read_encoders(self) -> np.ndarray: + assert self._hand is not None, "enter the WujiHandDriver context first" + return np.asarray(self._hand.read_joint_actual_position(), dtype=float).reshape(N_JOINTS) diff --git a/examples/wuji/src/genelab_wuji/deploy/obs.py b/examples/wuji/src/genelab_wuji/deploy/obs.py new file mode 100644 index 00000000..7bed480b --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/obs.py @@ -0,0 +1,97 @@ +"""Assemble the policy observation vector for deploy (pure numpy). + +Reproduces the GeneLab training policy obs group so an exported ONNX policy +receives exactly what it was trained on. No forward kinematics is required: joint +state comes from the hand encoders, cube/goal poses arrive from the observer +already in the wrist-tag frame, and the last action is tracked by the action term. + +Term order, per-term history, and the 6D goal-error encoding mirror +``genelab_wuji.reorient.mdp.observations`` and ``...mdp._math``. +""" + +from __future__ import annotations + +import numpy as np + +from genelab_wuji.deploy.frame_transform import quat_apply, quat_conjugate, quat_mul + + +def _matrix_from_quat(quat_wxyz: np.ndarray) -> np.ndarray: + """Rotation matrix from a wxyz quaternion (columns are the rotated basis).""" + return np.stack( + [ + quat_apply(quat_wxyz, np.array([1.0, 0.0, 0.0])), + quat_apply(quat_wxyz, np.array([0.0, 1.0, 0.0])), + quat_apply(quat_wxyz, np.array([0.0, 0.0, 1.0])), + ], + axis=1, + ) + + +def goal_rot_err_6d(cube_quat_tag: np.ndarray, goal_quat_tag: np.ndarray) -> np.ndarray: + """6D rotation error (first two matrix rows) of cube-to-goal, tag frame. + + Mirrors ``genelab_wuji.reorient.mdp.observations.goal_rot_err_6d``: + ``matrix_to_rotation_6d(matrix_from_quat(cube_quat ∘ goal_quat*))``. + """ + err_quat = quat_mul(cube_quat_tag, quat_conjugate(goal_quat_tag)) + rot = _matrix_from_quat(err_quat) + return rot[:2, :].reshape(6) + + +class DeployObsBuilder: + """Build the 207-dim policy obs with per-term 3-step history. + + Each term keeps a ``(history_len, dim)`` buffer, term-major oldest->newest. + ``reset()`` clears the buffers; the first ``compute`` after a reset backfills + every history slot with the current frame (matches the training CircularBuffer). + """ + + # (name, dim) in the order the GeneLab policy obs group concatenates them. + _TERMS: tuple[tuple[str, int], ...] = ( + ("joint_pos_rel", 20), + ("joint_vel_rel", 20), + ("cube_pos_in_tag", 3), + ("goal_rot_err_6d", 6), + ("last_action", 20), + ) + + def __init__(self, default_joint_pos: np.ndarray, history_len: int = 3) -> None: + self.default_joint_pos = np.asarray(default_joint_pos, dtype=float) + self.history_len = history_len + self._buffers: dict[str, np.ndarray] = {} + + def reset(self) -> None: + """Clear history so the next ``compute`` backfills.""" + self._buffers = {} + + def _push(self, name: str, value: np.ndarray) -> np.ndarray: + """Append ``value`` to the term buffer (backfill on first frame); flatten.""" + value = np.asarray(value, dtype=float) + buf = self._buffers.get(name) + if buf is None or buf.shape != (self.history_len, value.shape[0]): + buf = np.repeat(value[None, :], self.history_len, axis=0) + else: + buf = np.concatenate([buf[1:], value[None, :]], axis=0) + self._buffers[name] = buf + return buf.reshape(-1) + + def compute( + self, + joint_pos: np.ndarray, + joint_vel: np.ndarray, + cube_pos_tag: np.ndarray, + cube_quat_tag: np.ndarray, + goal_quat_tag: np.ndarray, + last_action: np.ndarray, + ) -> np.ndarray: + """Return the flat policy obs vector for this control step.""" + frame = { + "joint_pos_rel": np.asarray(joint_pos, dtype=float) - self.default_joint_pos, + "joint_vel_rel": np.asarray(joint_vel, dtype=float), + "cube_pos_in_tag": np.asarray(cube_pos_tag, dtype=float), + "goal_rot_err_6d": goal_rot_err_6d(cube_quat_tag, goal_quat_tag), + "last_action": np.asarray(last_action, dtype=float), + } + blocks = [self._push(name, frame[name]) for name, _dim in self._TERMS] + return np.concatenate(blocks).astype(np.float32) diff --git a/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py b/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py new file mode 100644 index 00000000..04915354 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py @@ -0,0 +1,80 @@ +"""Thin ONNX policy wrapper for deploy (ported from wuji-mjlab, GeneLab metadata). + +Obs assembly and action post-processing live elsewhere (``DeployObsBuilder`` / +the action term), so this is just: load the session, introspect dims, optionally +read the sibling ``.metadata.json`` GeneLab's exporter writes, and run a +single forward pass. Normalization is baked into the graph, so no normalizer is +needed at deploy time. +""" + +from __future__ import annotations + +import json +import os +from pathlib import Path +from typing import Any, Optional + +import numpy as np +import onnxruntime as ort + + +class ONNXPolicy: + """Single-step ONNX policy. + + Args: + onnx_path: Path to the ``policy.onnx`` exported by ``genelab export``. + metadata_path: Optional metadata sidecar. When ``None``, looks for + ``.metadata.json`` then ``/metadata.json``. + """ + + def __init__( + self, + onnx_path: str | Path, + metadata_path: Optional[str | Path] = None, + ) -> None: + onnx_path = str(onnx_path) + if not os.path.exists(onnx_path): + raise FileNotFoundError(f"ONNX not found: {onnx_path}") + + self.onnx_path: str = onnx_path + self.session = ort.InferenceSession( + onnx_path, providers=["CPUExecutionProvider"] + ) + inp = self.session.get_inputs()[0] + out = self.session.get_outputs()[0] + self.input_name: str = inp.name + self.output_name: str = out.name + # Shapes are (batch, N); axis 0 may be a dynamic symbol — take the last dim. + self.input_dim: int = int(inp.shape[-1]) + self.action_dim: int = int(out.shape[-1]) + self.metadata: dict[str, Any] = self._load_metadata(onnx_path, metadata_path) + + @staticmethod + def _load_metadata( + onnx_path: str, metadata_path: Optional[str | Path] + ) -> dict[str, Any]: + candidates = ( + [str(metadata_path)] + if metadata_path is not None + else [ + onnx_path + ".metadata.json", + os.path.join(os.path.dirname(onnx_path), "metadata.json"), + ] + ) + for candidate in candidates: + if os.path.exists(candidate): + with open(candidate) as f: + return json.load(f) + return {} + + def __call__(self, obs: np.ndarray) -> np.ndarray: + """Single forward pass; accepts ``(input_dim,)`` or ``(1, input_dim)``.""" + if obs.ndim == 1: + obs = obs[None, :] + if obs.shape != (1, self.input_dim): + raise ValueError( + f"obs shape {obs.shape}, expected (1, {self.input_dim})" + ) + obs = obs.astype(np.float32, copy=False) + result = self.session.run([self.output_name], {self.input_name: obs})[0] + return result.squeeze(0) diff --git a/examples/wuji/src/genelab_wuji/deploy/real2sim.py b/examples/wuji/src/genelab_wuji/deploy/real2sim.py new file mode 100644 index 00000000..8c410da9 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/real2sim.py @@ -0,0 +1,54 @@ +"""Reproduce the real cube inside the Genesis sim from its tag-frame pose. + +The vision pipeline reports the cube pose in the wrist-AprilTag frame (the frame +the policy observes). To visualize it in sim we need the tag's pose in sim-world +coordinates, then lift the cube through it. For the fixed-base hand the tag world +pose is constant and derived from the palm pose via the ``TAG_IN_PALM`` rigid +offset (mirrors ``genelab_wuji.reorient.mdp.observations._tag_pose``). + +``cube_pose_in_tag_to_world`` (viewer) and ``cube_pose_world_to_tag`` (obs) are +exact inverses so what the policy sees and what the viewer draws agree. +""" + +from __future__ import annotations + +import numpy as np + +from genelab_wuji.deploy.frame_transform import quat_apply, quat_conjugate, quat_mul +from genelab_wuji.reorient.constants import TAG_IN_PALM_POS, TAG_IN_PALM_QUAT_WXYZ + + +def tag_pose_in_world( + palm_pos_w: np.ndarray, palm_quat_w: np.ndarray +) -> tuple[np.ndarray, np.ndarray]: + """World pose of the wrist tag given the palm world pose.""" + tag_in_palm_pos = np.asarray(TAG_IN_PALM_POS, dtype=float) + tag_in_palm_quat = np.asarray(TAG_IN_PALM_QUAT_WXYZ, dtype=float) + tag_pos_w = palm_pos_w + quat_apply(palm_quat_w, tag_in_palm_pos) + tag_quat_w = quat_mul(palm_quat_w, tag_in_palm_quat) + return tag_pos_w, tag_quat_w + + +def cube_pose_in_tag_to_world( + tag_pos_w: np.ndarray, + tag_quat_w: np.ndarray, + cube_pos_tag: np.ndarray, + cube_quat_tag: np.ndarray, +) -> tuple[np.ndarray, np.ndarray]: + """Lift a tag-frame cube pose into sim-world coordinates (for the viewer).""" + cube_pos_w = tag_pos_w + quat_apply(tag_quat_w, cube_pos_tag) + cube_quat_w = quat_mul(tag_quat_w, cube_quat_tag) + return cube_pos_w, cube_quat_w + + +def cube_pose_world_to_tag( + tag_pos_w: np.ndarray, + tag_quat_w: np.ndarray, + cube_pos_w: np.ndarray, + cube_quat_w: np.ndarray, +) -> tuple[np.ndarray, np.ndarray]: + """Express a world cube pose in the tag frame (inverse of the lift above).""" + tag_quat_inv = quat_conjugate(tag_quat_w) + cube_pos_tag = quat_apply(tag_quat_inv, cube_pos_w - tag_pos_w) + cube_quat_tag = quat_mul(tag_quat_inv, cube_quat_w) + return cube_pos_tag, cube_quat_tag diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/__init__.py b/examples/wuji/src/genelab_wuji/deploy/scripts/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py new file mode 100644 index 00000000..81bb9202 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py @@ -0,0 +1,51 @@ +"""Shared helpers to build the Genesis reorient scene for deploy visualization. + +Both ``toreal_viewer`` (real2sim) and ``play_real`` (control mirror) need the same +play-mode reorient env plus a way to (a) read the wrist-tag world pose and (b) set +the cube / hand pose each frame. Heavy imports (genesis, torch, the env) are kept +inside the functions so importing this module is cheap and headless-safe. +""" + +from __future__ import annotations + +from typing import Any + +import numpy as np + + +def build_reorient_env() -> Any: + """Build the play-mode reorient env (hand + cube) with auto-reset disabled.""" + from genelab.envs.manager_based_rl_env import ManagerBasedRlEnv + from genelab_wuji.reorient.env_cfg import wuji_hand_reorient_env_cfg + + cfg = wuji_hand_reorient_env_cfg(play=True) + cfg.auto_reset = False # we drive poses by hand; never teleport on "done" + env = ManagerBasedRlEnv(cfg) + env.reset() + return env + + +def tag_world_pose(env: Any) -> tuple[np.ndarray, np.ndarray]: + """Wrist-tag pose in sim-world coordinates (numpy ``(3,)`` / ``(4,)``). + + Reuses the task's own ``_tag_pose`` so the viewer frame matches the obs frame. + """ + from genelab_wuji.reorient.mdp.observations import _tag_pose + + tag_pos, tag_quat = _tag_pose(env) # torch (B, 3) / (B, 4) + return tag_pos[0].detach().cpu().numpy(), tag_quat[0].detach().cpu().numpy() + + +def set_cube_pose(env: Any, pos_w: np.ndarray, quat_w: np.ndarray) -> None: + """Kinematically place the sim cube at the given world pose (zero velocity).""" + import torch + + handle = env.scene["object"].gs_handle + device = env.device + pos = torch.tensor(pos_w, dtype=torch.float, device=device).unsqueeze(0) + quat = torch.tensor(quat_w, dtype=torch.float, device=device).unsqueeze(0) + zeros = torch.zeros(1, 3, device=device) + for setter, value in (("set_pos", pos), ("set_quat", quat), ("set_vel", zeros), ("set_ang", zeros)): + fn = getattr(handle, setter, None) + if fn is not None: + fn(value) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py new file mode 100644 index 00000000..a5208100 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py @@ -0,0 +1,151 @@ +#!/usr/bin/env python3 +"""Vision pipeline: detect the cube pose in the wrist-tag frame and publish on ZMQ. + +A simplified, hardware-agnostic port of the wuji-mjlab cube observer. It: + +1. grabs camera frames (OpenCV ``VideoCapture`` by default), +2. detects the world AprilTag (ID 0) to fix the wrist-tag frame in the camera, +3. detects the cube's ArUco markers and solves its pose in the camera frame, +4. lifts the cube into the tag frame via the tested :func:`cube_cam_to_tag`, and +5. publishes ``(pos, quat_wxyz, world_fixed, cube_size)`` via :class:`CubePublisher`. + +The frame math (steps 4-5) is covered by the headless deploy tests; the detector +(steps 1-3) needs a real camera + ``opencv-contrib-python`` + ``pupil-apriltags`` +and is not exercised in CI. For the production Hikvision rig, swap ``_open_camera`` +and reuse the rest. Filtering (Kalman / dominant-face disambiguation) from the +reference is intentionally omitted here for clarity. + +Usage: + python -m genelab_wuji.deploy.scripts.cube_world_observer --camera 0 +""" + +from __future__ import annotations + +import argparse +import os +import time + +import numpy as np +import yaml +from scipy.spatial.transform import Rotation + +from genelab_wuji.deploy.frame_transform import cube_cam_to_tag +from genelab_wuji.deploy.zmq_bridge import DEFAULT_CUBE_PORT, CubePublisher + +_CONFIG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "config") +WORLD_TAG_ID = 0 +WORLD_TAG_SIZE = 0.048 # meters (48 mm wrist AprilTag) + + +def _camera_matrix(cam_cfg: dict) -> tuple[np.ndarray, np.ndarray]: + k = cam_cfg["intrinsics"] + K = np.array([[k["fx"], 0, k["cx"]], [0, k["fy"], k["cy"]], [0, 0, 1]], dtype=float) + d = cam_cfg["distortion"] + dist = np.array([d["k1"], d["k2"], d["p1"], d["p2"], d["k3"]], dtype=float) + return K, dist + + +def _open_camera(index: int): + import cv2 + + cap = cv2.VideoCapture(index) + if not cap.isOpened(): + raise RuntimeError(f"could not open camera {index}") + return cap + + +def main() -> int: + import cv2 + from pupil_apriltags import Detector + + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--camera", type=int, default=0) + parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) + parser.add_argument("--camera-config", default=os.path.join(_CONFIG_DIR, "camera.yaml")) + parser.add_argument("--cube-config", default=os.path.join(_CONFIG_DIR, "cube_tags.json")) + args = parser.parse_args() + + with open(args.camera_config) as f: + cam_cfg = yaml.safe_load(f) + K, dist = _camera_matrix(cam_cfg) + + import json + + with open(args.cube_config) as f: + cube_cfg = json.load(f) + cube_size = float(cube_cfg["cube_size"]) + + cap = _open_camera(args.camera) + apriltag = Detector(families="tag36h11") + aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50) + aruco_params = cv2.aruco.DetectorParameters() + publisher = CubePublisher(port=args.cube_port) + + world_pose: tuple[np.ndarray, np.ndarray] | None = None # (R_tag_cam, t_tag_cam) + print(f"[cube_world_observer] publishing on tcp://*:{args.cube_port}") + try: + while True: + ok, frame = cap.read() + if not ok: + continue + gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) + + # 1) World/wrist tag -> fix the tag frame in the camera. + cam_params = (K[0, 0], K[1, 1], K[0, 2], K[1, 2]) + for r in apriltag.detect( + gray, estimate_tag_pose=True, camera_params=cam_params, tag_size=WORLD_TAG_SIZE + ): + if r.tag_id == WORLD_TAG_ID: + world_pose = (np.asarray(r.pose_R), np.asarray(r.pose_t).flatten()) + + # 2) Cube ArUco -> pose in camera frame (single-marker fallback PnP). + corners, ids, _ = cv2.aruco.detectMarkers(gray, aruco_dict, parameters=aruco_params) + cube_cam = _solve_cube_pose(corners, ids, cube_cfg, K, dist) + + if world_pose is not None and cube_cam is not None: + R_cube_cam, t_cube_cam = cube_cam + R_cube_tag, t_cube_tag = cube_cam_to_tag( + world_pose[0], world_pose[1], R_cube_cam, t_cube_cam + ) + quat_xyzw = Rotation.from_matrix(R_cube_tag).as_quat() + quat_wxyz = np.array([quat_xyzw[3], *quat_xyzw[:3]]) + publisher.publish( + t_cube_tag, quat_wxyz, world_fixed=True, cube_size=cube_size + ) + time.sleep(0.005) + except KeyboardInterrupt: + pass + finally: + publisher.close() + cap.release() + return 0 + + +def _solve_cube_pose(corners, ids, cube_cfg, K, dist): + """Estimate the cube pose in the camera frame from its visible ArUco markers. + + Simplified single-marker estimate: take the first detected face marker, recover + its pose, and offset by half the cube to the cube center along the face normal. + The reference observer fuses all visible faces with a dominant-face strategy. + """ + import cv2 + + if ids is None or len(ids) == 0: + return None + tag_size = float(cube_cfg["tag_size"]) + half = float(cube_cfg["cube_size"]) / 2.0 + obj = np.array( + [[-tag_size / 2, tag_size / 2, 0], [tag_size / 2, tag_size / 2, 0], + [tag_size / 2, -tag_size / 2, 0], [-tag_size / 2, -tag_size / 2, 0]], + dtype=np.float32, + ) + ok, rvec, tvec = cv2.solvePnP(obj, corners[0][0], K, dist, flags=cv2.SOLVEPNP_IPPE_SQUARE) + if not ok: + return None + R, _ = cv2.Rodrigues(rvec) + t = tvec.flatten() + R @ np.array([0.0, 0.0, -half]) # face -> cube center + return R, t + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py new file mode 100644 index 00000000..11334a66 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python3 +"""Deploy an exported reorient policy to control the (real or mock) Wuji hand. + +Wires the tested deploy core into a closed loop: + + cube/goal (ZMQ from cube_world_observer/toreal_viewer) + -> DeployObsBuilder -> ONNX policy -> EMA action -> hand driver + +Defaults to ``--mock`` (no hardware, no ZMQ required) so the loop can be smoke-run +anywhere; pass ``--real`` to drive the hand via ``wujihandpy``. The control logic +is covered headlessly by ``tests/test_examples_wuji_deploy_controller.py``. + +Usage: + # Smoke run without hardware (zeros cube/goal -> hand holds the grasp): + python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --steps 100 + + # Real hand + live observer feed: + python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real +""" + +from __future__ import annotations + +import argparse +import time + +from genelab_wuji.deploy.config import default_joint_pos +from genelab_wuji.deploy.controller import DeployController +from genelab_wuji.deploy.hand_driver import HandDriverBase, MockHandDriver +from genelab_wuji.deploy.onnx_policy import ONNXPolicy +from genelab_wuji.deploy.zmq_bridge import ( + DEFAULT_CUBE_PORT, + DEFAULT_GOAL_PORT, + CubeReceiver, + GoalReceiver, +) + + +def _make_driver(real: bool) -> HandDriverBase: + if not real: + return MockHandDriver() + from genelab_wuji.deploy.hand_driver import WujiHandDriver + + driver = WujiHandDriver() + driver.__enter__() # caller exits via the finally block in main() + return driver + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--ckpt", required=True, help="exported policy.onnx") + parser.add_argument("--metadata", default=None, help="policy metadata.json (auto-detected)") + parser.add_argument("--real", action="store_true", help="drive the real hand (wujihandpy)") + parser.add_argument("--mock", action="store_true", help="use the mock hand (default)") + parser.add_argument("--no-zmq", action="store_true", help="skip ZMQ; feed zeros cube/identity goal") + parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) + parser.add_argument("--goal-port", type=int, default=DEFAULT_GOAL_PORT) + parser.add_argument("--control-dt", type=float, default=0.05, help="policy step period (s)") + parser.add_argument("--steps", type=int, default=0, help="stop after N steps (0 = run forever)") + args = parser.parse_args() + + policy = ONNXPolicy(args.ckpt, metadata_path=args.metadata) + driver = _make_driver(real=args.real) + + if args.no_zmq: + cube = CubeReceiver(connect=False) + goal = GoalReceiver(connect=False) + else: + cube = CubeReceiver(port=args.cube_port) + goal = GoalReceiver(port=args.goal_port) + + controller = DeployController( + policy=policy, + driver=driver, + cube_source=cube, + goal_source=goal, + default_joint_pos=default_joint_pos(), + control_dt=args.control_dt, + ) + controller.reset() + + print(f"[play_real] obs_dim={policy.input_dim} action_dim={policy.action_dim} " + f"driver={type(driver).__name__}") + step = 0 + try: + while args.steps == 0 or step < args.steps: + t0 = time.time() + controller.step() + step += 1 + sleep = args.control_dt - (time.time() - t0) + if sleep > 0: + time.sleep(sleep) + except KeyboardInterrupt: + pass + finally: + if args.real and hasattr(driver, "__exit__"): + driver.__exit__(None, None, None) + cube.close() + goal.close() + print(f"[play_real] ran {step} control steps") + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/toreal_viewer.py b/examples/wuji/src/genelab_wuji/deploy/scripts/toreal_viewer.py new file mode 100644 index 00000000..adf3a99e --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/toreal_viewer.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +"""real2sim viewer: reproduce the real cube's pose inside the Genesis sim. + +Subscribes to the cube-pose ZMQ feed (published by ``cube_world_observer``), lifts +each tag-frame pose into sim-world coordinates, and places the sim cube there every +frame so the Genesis viewer mirrors reality. Optionally publishes a goal orientation +(drag-free fixed goal) on the goal port for ``play_real``. + +Usage: + # Terminal 1: real camera -> ZMQ (needs hardware; see cube_world_observer.py) + python -m genelab_wuji.deploy.scripts.cube_world_observer + + # Terminal 2: mirror the cube in the Genesis sim + python -m genelab_wuji.deploy.scripts.toreal_viewer + +Run on a host with a GPU + display (Genesis viewer). The transform math itself is +covered by the headless deploy tests. +""" + +from __future__ import annotations + +import argparse +import time + +from genelab_wuji.deploy.real2sim import cube_pose_in_tag_to_world +from genelab_wuji.deploy.scripts._env import build_reorient_env, set_cube_pose, tag_world_pose +from genelab_wuji.deploy.zmq_bridge import DEFAULT_CUBE_PORT, CubeReceiver + + +def main() -> int: + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) + parser.add_argument("--host", default="localhost") + parser.add_argument("--fps", type=float, default=60.0, help="viewer refresh rate") + args = parser.parse_args() + + env = build_reorient_env() + tag_pos_w, tag_quat_w = tag_world_pose(env) # fixed-base hand -> constant + cube = CubeReceiver(port=args.cube_port, host=args.host) + + print(f"[toreal_viewer] mirroring cube from tcp://{args.host}:{args.cube_port}") + dt = 1.0 / max(1e-3, args.fps) + try: + while not env.viewer_closed: + cube_pos_tag, cube_quat_tag = cube.latest() + cube_pos_w, cube_quat_w = cube_pose_in_tag_to_world( + tag_pos_w, tag_quat_w, cube_pos_tag, cube_quat_tag + ) + set_cube_pose(env, cube_pos_w, cube_quat_w) + env.scene.step(update_visualizer=True) + time.sleep(dt) + except KeyboardInterrupt: + pass + finally: + cube.close() + env.close() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py b/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py new file mode 100644 index 00000000..4c384c22 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py @@ -0,0 +1,300 @@ +"""ZMQ pub/sub bridge between deploy processes (ported from wuji-mjlab). + +Topology (localhost IPC): + +* port 5555 — cube pose: ``cube_world_observer`` -> ``play_real`` / ``toreal_viewer`` +* port 5556 — goal orientation: ``toreal_viewer`` -> ``play_real`` + +The observer publishes orientation in scipy **xyzw** order; everything downstream +runs in mujoco **wxyz**. ``cube_pose_from_msg`` / ``goal_from_msg`` own that +conversion as pure functions so it is testable without sockets; the receiver +classes wrap them with a background thread and a last-valid cache. +""" + +from __future__ import annotations + +import json +import threading +import time +from typing import Any + +import numpy as np + +DEFAULT_CUBE_PORT: int = 5555 +"""Default ZMQ port for cube pose (cube_world_observer).""" + +DEFAULT_GOAL_PORT: int = 5556 +"""Default ZMQ port for goal orientation (toreal_viewer).""" + + +def cube_pose_from_msg( + msg: dict[str, Any], +) -> tuple[np.ndarray, np.ndarray, bool, float | None]: + """Parse a cube-pose message into ``(pos, quat_wxyz, world_fixed, cube_size)``. + + The wire orientation is scipy xyzw; the returned quaternion is mujoco wxyz. + ``cube_size`` is ``None`` when the publisher does not announce it. + """ + cube = msg["cube1"] + p = cube["position"] + q = cube["orientation"] # scipy xyzw on the wire + pos = np.array([p["x"], p["y"], p["z"]]) + quat_wxyz = np.array([q["w"], q["x"], q["y"], q["z"]]) + world_fixed = bool(msg.get("world_fixed", False)) + cube_size = msg.get("cube_size") + return pos, quat_wxyz, world_fixed, (float(cube_size) if cube_size is not None else None) + + +def cube_msg_from_pose( + pos: np.ndarray, + quat_wxyz: np.ndarray, + *, + world_fixed: bool, + cube_size: float | None = None, +) -> dict[str, Any]: + """Serialize a cube pose to the wire format (orientation as scipy xyzw). + + Inverse of ``cube_pose_from_msg``; used by the observer / any cube feeder. + """ + msg: dict[str, Any] = { + "world_fixed": bool(world_fixed), + "cube1": { + "position": {"x": float(pos[0]), "y": float(pos[1]), "z": float(pos[2])}, + "orientation": { + "x": float(quat_wxyz[1]), + "y": float(quat_wxyz[2]), + "z": float(quat_wxyz[3]), + "w": float(quat_wxyz[0]), + }, + }, + } + if cube_size is not None: + msg["cube_size"] = float(cube_size) + return msg + + +def goal_from_msg(msg: dict[str, Any]) -> np.ndarray: + """Parse a goal message into a wxyz quaternion (already wxyz on the wire).""" + q = msg["goal"]["orientation"] + return np.array([q["w"], q["x"], q["y"], q["z"]]) + + +_RECEIVER_POLL_INTERVAL: float = 0.001 +"""Polling interval for receiver background threads (seconds).""" + + +class CubeReceiver: + """Subscribe to cube pose (port 5555) and expose the latest valid pose. + + The background thread parses each message via ``cube_pose_from_msg`` and feeds + it to ``_update_from_msg``; ``latest()`` returns the last sample seen while + ``world_fixed`` was True (so a momentary loss of calibration keeps the last + good pose), defaulting to ``(zeros, identity)`` until the first valid sample. + + Pass ``connect=False`` to skip the socket/thread (used in tests and when a + process drives ``_update_from_msg`` itself). + """ + + def __init__( + self, + port: int = DEFAULT_CUBE_PORT, + host: str = "localhost", + *, + connect: bool = True, + ) -> None: + self.port = port + self._latest_pos = np.zeros(3) + self._latest_quat = np.array([1.0, 0.0, 0.0, 0.0]) + self._cached_valid_pos = np.zeros(3) + self._cached_valid_quat = np.array([1.0, 0.0, 0.0, 0.0]) + self.cube_count = 0 + self.world_fixed = False + self.cube_size: float | None = None + self._lock = threading.Lock() + self._running = connect + self._socket: Any = None + self._context: Any = None + self._thread: Any = None + if connect: + import zmq + + self._context = zmq.Context() + self._socket = self._context.socket(zmq.SUB) + self._socket.connect(f"tcp://{host}:{port}") + self._socket.setsockopt_string(zmq.SUBSCRIBE, "") + self._socket.setsockopt(zmq.RCVHWM, 1) + self._socket.setsockopt(zmq.CONFLATE, 1) + self._thread = threading.Thread(target=self._receiver_loop, daemon=True) + self._thread.start() + + def _update_from_msg(self, msg: dict[str, Any]) -> None: + """Ingest one parsed cube message (also the unit-test entry point).""" + pos, quat_wxyz, world_fixed, cube_size = cube_pose_from_msg(msg) + with self._lock: + self._latest_pos = pos + self._latest_quat = quat_wxyz + self.world_fixed = world_fixed + if cube_size is not None: + self.cube_size = cube_size + self.cube_count += 1 + + def latest(self) -> tuple[np.ndarray, np.ndarray]: + """Return ``(cube_pos, cube_quat_wxyz)``, caching the last valid sample.""" + with self._lock: + if self.cube_count > 0 and self.world_fixed: + self._cached_valid_pos = self._latest_pos.copy() + self._cached_valid_quat = self._latest_quat.copy() + return self._cached_valid_pos.copy(), self._cached_valid_quat.copy() + + def close(self) -> None: + self._running = False + if self._socket is not None: + self._socket.close() + if self._context is not None: + self._context.term() + + def _receiver_loop(self) -> None: + import zmq + + while self._running: + try: + data = self._socket.recv(zmq.NOBLOCK) + msg = json.loads(data.decode("utf-8")) + if "cube1" in msg: + self._update_from_msg(msg) + except zmq.Again: + pass + except (json.JSONDecodeError, KeyError): + pass + time.sleep(_RECEIVER_POLL_INTERVAL) + + +class GoalReceiver: + """Subscribe to goal orientation (port 5556) and expose the latest goal. + + ``latest()`` returns identity ``[1, 0, 0, 0]`` until a goal arrives. Pass + ``connect=False`` to skip the socket/thread (tests / self-driven feeds). + """ + + def __init__( + self, + port: int = DEFAULT_GOAL_PORT, + host: str = "localhost", + *, + connect: bool = True, + ) -> None: + self.port = port + self._latest_goal = np.array([1.0, 0.0, 0.0, 0.0]) + self.goal_count = 0 + self._lock = threading.Lock() + self._running = connect + self._socket: Any = None + self._context: Any = None + self._thread: Any = None + if connect: + import zmq + + self._context = zmq.Context() + self._socket = self._context.socket(zmq.SUB) + self._socket.connect(f"tcp://{host}:{port}") + self._socket.setsockopt_string(zmq.SUBSCRIBE, "") + self._socket.setsockopt(zmq.RCVHWM, 1) + self._socket.setsockopt(zmq.CONFLATE, 1) + self._thread = threading.Thread(target=self._receiver_loop, daemon=True) + self._thread.start() + + def _update_from_msg(self, msg: dict[str, Any]) -> None: + """Ingest one parsed goal message (also the unit-test entry point).""" + goal = goal_from_msg(msg) + with self._lock: + self._latest_goal = goal + self.goal_count += 1 + + def latest(self) -> np.ndarray: + """Return the latest goal quaternion (wxyz); identity until one arrives.""" + with self._lock: + return self._latest_goal.copy() + + def close(self) -> None: + self._running = False + if self._socket is not None: + self._socket.close() + if self._context is not None: + self._context.term() + + def _receiver_loop(self) -> None: + import zmq + + while self._running: + try: + data = self._socket.recv(zmq.NOBLOCK) + msg = json.loads(data.decode("utf-8")) + if "goal" in msg: + self._update_from_msg(msg) + except zmq.Again: + pass + except (json.JSONDecodeError, KeyError): + pass + time.sleep(_RECEIVER_POLL_INTERVAL) + + +class GoalPublisher: + """Publish goal orientation (wxyz) on port 5556 (toreal_viewer -> play_real).""" + + def __init__(self, port: int = DEFAULT_GOAL_PORT) -> None: + import zmq + + self.port = port + self._context = zmq.Context() + self._socket = self._context.socket(zmq.PUB) + self._socket.bind(f"tcp://*:{port}") + + def publish(self, goal_quat_wxyz: np.ndarray) -> None: + msg = { + "timestamp": time.time(), + "goal": { + "orientation": { + "w": float(goal_quat_wxyz[0]), + "x": float(goal_quat_wxyz[1]), + "y": float(goal_quat_wxyz[2]), + "z": float(goal_quat_wxyz[3]), + } + }, + } + self._socket.send_string(json.dumps(msg)) + + def close(self) -> None: + self._socket.close() + self._context.term() + + +class CubePublisher: + """Publish cube pose on port 5555 (cube_world_observer -> consumers).""" + + def __init__(self, port: int = DEFAULT_CUBE_PORT) -> None: + import zmq + + self.port = port + self._context = zmq.Context() + self._socket = self._context.socket(zmq.PUB) + self._socket.bind(f"tcp://*:{port}") + + def publish( + self, + pos: np.ndarray, + quat_wxyz: np.ndarray, + *, + world_fixed: bool, + cube_size: float | None = None, + ) -> None: + import zmq + + msg = cube_msg_from_pose( + pos, quat_wxyz, world_fixed=world_fixed, cube_size=cube_size + ) + msg["timestamp"] = time.time() + self._socket.send_string(json.dumps(msg), flags=zmq.NOBLOCK) + + def close(self) -> None: + self._socket.close() + self._context.term() diff --git a/tests/test_examples_wuji_deploy_action.py b/tests/test_examples_wuji_deploy_action.py new file mode 100644 index 00000000..1c520234 --- /dev/null +++ b/tests/test_examples_wuji_deploy_action.py @@ -0,0 +1,54 @@ +"""Action post-processing for deploy (pure numpy). + +Mirrors ``JointPositionOffsetEMAAction`` from the reorient task: the policy emits +raw actions ~[-1, 1]; the joint target is ``default + scale * clamp(action)``, +clamped to joint limits, EMA-smoothed against the previous target, and held at the +default pose for a warmup window after each reset. (Deploy drops the training-only +``encoder_bias`` / ``action_noise`` terms.) +""" + +import numpy as np + +from genelab_wuji.deploy.action import ActionProcessor + +_N = 20 +_DEFAULT = np.linspace(0.1, 0.9, _N) + + +def _proc(**kw: object) -> ActionProcessor: + return ActionProcessor(default_joint_pos=_DEFAULT, **kw) # type: ignore[arg-type] + + +def test_warmup_holds_default_pose() -> None: + proc = _proc(action_scale=0.5, ema_alpha=0.5, warmup_steps=3) + proc.reset() + for _ in range(3): + target = proc.process(np.ones(_N)) # large action ignored during warmup + assert np.allclose(target, _DEFAULT) + + +def test_first_post_warmup_step_applies_scaled_offset_under_ema() -> None: + proc = _proc(action_scale=0.5, ema_alpha=0.5, warmup_steps=0) + proc.reset() + action = np.full(_N, 0.4) + target = proc.process(action) + # prev == default on the first step, so: + # smoothed = alpha*(default + scale*action) + (1-alpha)*default + # = default + alpha*scale*action + expected = _DEFAULT + 0.5 * 0.5 * action + assert np.allclose(target, expected) + + +def test_target_clamped_to_joint_limits() -> None: + lo = _DEFAULT - 0.05 + hi = _DEFAULT + 0.05 + proc = _proc( + action_scale=1.0, + ema_alpha=1.0, # no smoothing, so the raw clamp is directly observable + warmup_steps=0, + joint_pos_limits=(lo, hi), + ) + proc.reset() + target = proc.process(np.ones(_N)) # would push +1.0 past hi without clamping + assert np.all(target <= hi + 1e-9) + assert np.allclose(target, hi) diff --git a/tests/test_examples_wuji_deploy_controller.py b/tests/test_examples_wuji_deploy_controller.py new file mode 100644 index 00000000..aea9f4a2 --- /dev/null +++ b/tests/test_examples_wuji_deploy_controller.py @@ -0,0 +1,84 @@ +"""End-to-end deploy control loop, headless (mock hand + self-driven ZMQ sources). + +``DeployController`` ties the pieces together: read encoders -> build policy obs +(cube/goal from the observer feed) -> ONNX policy -> EMA action -> write target. +This is the "model deploy controls the hand" path; ``play_real.py`` wires the same +controller to the real hand, real ZMQ, and a Genesis viewer. +""" + +import json +from pathlib import Path + +import numpy as np +import pytest + +pytest.importorskip("onnxruntime") +pytest.importorskip("zmq") +torch = pytest.importorskip("torch") + +from genelab_wuji.deploy.config import default_joint_pos # noqa: E402 +from genelab_wuji.deploy.controller import DeployController # noqa: E402 +from genelab_wuji.deploy.hand_driver import MockHandDriver # noqa: E402 +from genelab_wuji.deploy.onnx_policy import ONNXPolicy # noqa: E402 +from genelab_wuji.deploy.zmq_bridge import CubeReceiver, GoalReceiver # noqa: E402 + +_OBS_DIM = 207 +_N = 20 + + +def _export_zero_policy(tmp_path: Path) -> Path: + """A policy that always outputs zeros (so post-warmup target == default).""" + lin = torch.nn.Linear(_OBS_DIM, _N) + with torch.no_grad(): + lin.weight.zero_() + lin.bias.zero_() + lin.eval() + onnx_path = tmp_path / "policy.onnx" + torch.onnx.export( + lin, + torch.zeros(1, _OBS_DIM), + str(onnx_path), + input_names=["obs"], + output_names=["actions"], + dynamic_axes={"obs": {0: "batch"}, "actions": {0: "batch"}}, + opset_version=17, + ) + (tmp_path / "policy.onnx.metadata.json").write_text( + json.dumps({"obs_dim": _OBS_DIM, "action_dim": _N}) + ) + return onnx_path + + +def _make_controller(tmp_path: Path, **kw) -> tuple[DeployController, MockHandDriver]: + policy = ONNXPolicy(_export_zero_policy(tmp_path)) + driver = MockHandDriver() + cube = CubeReceiver(connect=False) + goal = GoalReceiver(connect=False) + ctrl = DeployController( + policy=policy, + driver=driver, + cube_source=cube, + goal_source=goal, + default_joint_pos=default_joint_pos(), + **kw, + ) + return ctrl, driver + + +def test_step_returns_action_and_writes_target_to_hand(tmp_path: Path) -> None: + ctrl, driver = _make_controller(tmp_path, warmup_steps=0) + ctrl.reset() + info = ctrl.step() + assert info["action"].shape == (_N,) + assert info["target"].shape == (_N,) + # The hand received exactly the processed target. + assert np.allclose(driver.read_encoders(), info["target"]) + + +def test_zero_policy_post_warmup_drives_hand_to_default(tmp_path: Path) -> None: + # A zero action -> target == default joint pos once warmup has elapsed. + ctrl, driver = _make_controller(tmp_path, warmup_steps=0) + ctrl.reset() + for _ in range(5): + ctrl.step() + assert np.allclose(driver.read_encoders(), default_joint_pos(), atol=1e-5) diff --git a/tests/test_examples_wuji_deploy_frame_transform.py b/tests/test_examples_wuji_deploy_frame_transform.py new file mode 100644 index 00000000..f02deef7 --- /dev/null +++ b/tests/test_examples_wuji_deploy_frame_transform.py @@ -0,0 +1,34 @@ +"""wxyz quaternion helpers used by the deploy pipeline (pure numpy).""" + +import numpy as np + +from genelab_wuji.deploy.frame_transform import ( + quat_apply, + quat_conjugate, + quat_mul, +) + + +def _quat_z(angle: float) -> np.ndarray: + return np.array([np.cos(angle / 2), 0.0, 0.0, np.sin(angle / 2)]) + + +def test_quat_apply_rotates_x_to_y_about_z() -> None: + q = _quat_z(np.pi / 2) # +90deg about z + out = quat_apply(q, np.array([1.0, 0.0, 0.0])) + assert np.allclose(out, [0.0, 1.0, 0.0], atol=1e-9) + + +def test_quat_mul_composes_rotations() -> None: + q45 = _quat_z(np.pi / 4) + q90 = _quat_z(np.pi / 2) + composed = quat_mul(q45, q45) # 45 + 45 = 90 + out = quat_apply(composed, np.array([1.0, 0.0, 0.0])) + expected = quat_apply(q90, np.array([1.0, 0.0, 0.0])) + assert np.allclose(out, expected, atol=1e-9) + + +def test_quat_conjugate_inverts_rotation() -> None: + q = _quat_z(np.pi / 3) + identity = quat_mul(q, quat_conjugate(q)) + assert np.allclose(identity, [1.0, 0.0, 0.0, 0.0], atol=1e-9) diff --git a/tests/test_examples_wuji_deploy_hand_driver.py b/tests/test_examples_wuji_deploy_hand_driver.py new file mode 100644 index 00000000..84c8128f --- /dev/null +++ b/tests/test_examples_wuji_deploy_hand_driver.py @@ -0,0 +1,32 @@ +"""Hand-driver abstraction for deploy: hardware-agnostic interface + mock. + +The control loop talks to ``HandDriverBase``; ``MockHandDriver`` lets the whole +pipeline run (and be tested) without the real ``wujihandpy`` hand. The encoder +joint order matches the GeneLab policy order (finger1_joint1..4, finger2...), +which is also ``wujihandpy``'s (5, 4) row-major flatten — so no remap is needed. +""" + +import numpy as np + +from genelab_wuji.deploy.hand_driver import MockHandDriver +from genelab_wuji.reorient.constants import REORIENT_JOINT_POS + + +def test_mock_driver_echoes_written_target() -> None: + driver = MockHandDriver() + target = np.linspace(-0.3, 0.3, 20) + driver.write_target(target) + assert np.allclose(driver.read_encoders(), target) + + +def test_mock_driver_encoder_order_matches_policy_joint_order() -> None: + driver = MockHandDriver() + assert tuple(driver.joint_names_in_encoder_order()) == tuple(REORIENT_JOINT_POS) + + +def test_mock_driver_home_sets_grasp_keyframe() -> None: + driver = MockHandDriver() + driver.write_target(np.zeros(20)) + driver.home() + expected = np.array(list(REORIENT_JOINT_POS.values())) + assert np.allclose(driver.read_encoders(), expected) diff --git a/tests/test_examples_wuji_deploy_obs.py b/tests/test_examples_wuji_deploy_obs.py new file mode 100644 index 00000000..0d29e891 --- /dev/null +++ b/tests/test_examples_wuji_deploy_obs.py @@ -0,0 +1,114 @@ +"""Policy observation assembly for deploy (pure numpy, no simulator). + +The deployed obs needs no forward kinematics: joint state comes from encoders, +cube/goal poses come from the observer (already in the tag frame), and the last +action is tracked. ``DeployObsBuilder`` reproduces the GeneLab training policy obs +(term order, per-term 3-step history, 6D goal-error encoding) so an exported ONNX +policy receives exactly what it was trained on. + +Policy obs layout (matches ``genelab_wuji.reorient.env_cfg`` policy group): + joint_pos_rel_history 20 * 3 = 60 + joint_vel_rel_history 20 * 3 = 60 + cube_pos_in_tag_history 3 * 3 = 9 + goal_rot_err_6d_history 6 * 3 = 18 + last_action_history 20 * 3 = 60 + = 207 +""" + +import numpy as np +import pytest + +from genelab_wuji.deploy.obs import DeployObsBuilder, goal_rot_err_6d + +_N_JOINTS = 20 +_HIST = 3 +_OBS_DIM = 207 +_JP, _JV, _CUBE, _GOAL, _ACT = 60, 60, 9, 18, 60 + + +def _default_qpos() -> np.ndarray: + return np.linspace(0.1, 0.9, _N_JOINTS) + + +def test_obs_dim_is_207() -> None: + builder = DeployObsBuilder(default_joint_pos=_default_qpos(), history_len=_HIST) + builder.reset() + obs = builder.compute( + joint_pos=_default_qpos(), + joint_vel=np.zeros(_N_JOINTS), + cube_pos_tag=np.zeros(3), + cube_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + goal_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + last_action=np.zeros(_N_JOINTS), + ) + assert obs.shape == (_OBS_DIM,) + + +def test_first_frame_backfills_history() -> None: + # After reset, the first compute should fill all 3 history slots with the same + # frame (mirrors the training CircularBuffer backfill on reset). + builder = DeployObsBuilder(default_joint_pos=_default_qpos(), history_len=_HIST) + builder.reset() + + delta = 0.05 * np.ones(_N_JOINTS) + obs = builder.compute( + joint_pos=_default_qpos() + delta, + joint_vel=np.zeros(_N_JOINTS), + cube_pos_tag=np.zeros(3), + cube_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + goal_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + last_action=np.zeros(_N_JOINTS), + ) + + # joint_pos_rel block = (joint_pos - default) repeated across 3 frames. + jp_block = obs[:_JP].reshape(_HIST, _N_JOINTS) + assert np.allclose(jp_block[0], delta) + assert np.allclose(jp_block[1], delta) + assert np.allclose(jp_block[2], delta) + + +def test_history_rolls_oldest_to_newest() -> None: + builder = DeployObsBuilder(default_joint_pos=_default_qpos(), history_len=_HIST) + builder.reset() + + act_start = _JP + _JV + _CUBE + _GOAL # last_action block offset + + def step(action_val: float) -> np.ndarray: + obs = builder.compute( + joint_pos=_default_qpos(), + joint_vel=np.zeros(_N_JOINTS), + cube_pos_tag=np.zeros(3), + cube_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + goal_quat_tag=np.array([1.0, 0.0, 0.0, 0.0]), + last_action=action_val * np.ones(_N_JOINTS), + ) + return obs[act_start : act_start + _ACT].reshape(_HIST, _N_JOINTS)[:, 0] + + step(1.0) # backfill -> [1, 1, 1] + step(2.0) # roll -> [1, 1, 2] + frames = step(3.0) # roll -> [1, 2, 3] + assert np.allclose(frames, [1.0, 2.0, 3.0]) # oldest -> newest + + +def test_goal_rot_err_6d_matches_genelab_training_math() -> None: + # Pin the 6D encoding against the *actual* GeneLab training code path + # (genelab.utils.math + reorient.mdp._math), the policy was trained on this. + torch = pytest.importorskip("torch") + from genelab.utils.math import matrix_from_quat, quat_conjugate, quat_mul + from genelab_wuji.reorient.mdp._math import matrix_to_rotation_6d + + rng = np.random.default_rng(3) + for _ in range(8): + cube = rng.standard_normal(4) + cube /= np.linalg.norm(cube) + goal = rng.standard_normal(4) + goal /= np.linalg.norm(goal) + + ours = goal_rot_err_6d(cube, goal) + + c = torch.tensor(cube, dtype=torch.float).unsqueeze(0) + g = torch.tensor(goal, dtype=torch.float).unsqueeze(0) + err = quat_mul(c, quat_conjugate(g)) + ref = matrix_to_rotation_6d(matrix_from_quat(err)).squeeze(0).numpy() + + assert np.allclose(ours, ref, atol=1e-5), f"{ours} != {ref}" diff --git a/tests/test_examples_wuji_deploy_onnx_policy.py b/tests/test_examples_wuji_deploy_onnx_policy.py new file mode 100644 index 00000000..89fab7e6 --- /dev/null +++ b/tests/test_examples_wuji_deploy_onnx_policy.py @@ -0,0 +1,73 @@ +"""ONNX policy wrapper for deploy: load a GeneLab-exported policy and run it. + +GeneLab's exporter writes an ONNX with input ``obs`` / output ``actions`` (batch +axis dynamic) plus a sibling ``.metadata.json`` recording ``obs_dim`` and +``action_dim`` with normalization baked in. These tests build a tiny real ONNX so +the load / dim-introspection / single-forward path is exercised end to end. +""" + +import json +from pathlib import Path + +import numpy as np +import pytest + +pytest.importorskip("onnxruntime") +torch = pytest.importorskip("torch") + +from genelab_wuji.deploy.onnx_policy import ONNXPolicy # noqa: E402 + +_OBS_DIM = 207 +_ACTION_DIM = 20 + + +def _export_tiny_policy(tmp_path: Path, obs_dim: int, action_dim: int) -> Path: + """Export a 1-layer Linear policy to ONNX + sibling metadata.json (GeneLab fmt).""" + model = torch.nn.Linear(obs_dim, action_dim) + model.eval() + onnx_path = tmp_path / "policy.onnx" + torch.onnx.export( + model, + torch.zeros(1, obs_dim), + str(onnx_path), + input_names=["obs"], + output_names=["actions"], + dynamic_axes={"obs": {0: "batch"}, "actions": {0: "batch"}}, + opset_version=17, + ) + meta = { + "obs_dim": obs_dim, + "action_dim": action_dim, + "action_range": [-1.0, 1.0], + "normalization_baked": True, + } + (tmp_path / "policy.onnx.metadata.json").write_text(json.dumps(meta)) + return onnx_path + + +def test_loads_and_reports_dims(tmp_path: Path) -> None: + onnx_path = _export_tiny_policy(tmp_path, _OBS_DIM, _ACTION_DIM) + policy = ONNXPolicy(onnx_path) + assert policy.input_dim == _OBS_DIM + assert policy.action_dim == _ACTION_DIM + + +def test_single_forward_returns_action_vector(tmp_path: Path) -> None: + onnx_path = _export_tiny_policy(tmp_path, _OBS_DIM, _ACTION_DIM) + policy = ONNXPolicy(onnx_path) + action = policy(np.zeros(_OBS_DIM, dtype=np.float32)) + assert action.shape == (_ACTION_DIM,) + + +def test_wrong_obs_dim_raises(tmp_path: Path) -> None: + onnx_path = _export_tiny_policy(tmp_path, _OBS_DIM, _ACTION_DIM) + policy = ONNXPolicy(onnx_path) + with pytest.raises(ValueError, match="expected"): + policy(np.zeros(_OBS_DIM - 1, dtype=np.float32)) + + +def test_reads_metadata_sidecar(tmp_path: Path) -> None: + onnx_path = _export_tiny_policy(tmp_path, _OBS_DIM, _ACTION_DIM) + policy = ONNXPolicy(onnx_path) + assert policy.metadata["obs_dim"] == _OBS_DIM + assert policy.metadata["normalization_baked"] is True diff --git a/tests/test_examples_wuji_deploy_real2sim.py b/tests/test_examples_wuji_deploy_real2sim.py new file mode 100644 index 00000000..923906f0 --- /dev/null +++ b/tests/test_examples_wuji_deploy_real2sim.py @@ -0,0 +1,48 @@ +"""real2sim coordinate transforms for the Wuji-hand deploy pipeline. + +The vision pipeline detects the cube pose in the *camera* frame and the wrist +AprilTag pose in the *camera* frame. ``cube_cam_to_tag`` lifts the cube into the +wrist-tag frame — the exact frame the policy was trained on. These tests pin that +math (pure numpy, no simulator) so the real cube position reproduces correctly. +""" + +import numpy as np + +from genelab_wuji.deploy.frame_transform import cube_cam_to_tag + + +def _rand_rot(rng: np.random.Generator) -> np.ndarray: + R, _ = np.linalg.qr(rng.standard_normal((3, 3))) + if np.linalg.det(R) < 0: # keep it a proper rotation (det = +1) + R[:, 0] = -R[:, 0] + return R + + +def test_cube_sitting_on_tag_maps_to_tag_origin() -> None: + # When the cube pose in camera frame equals the tag pose in camera frame, the + # cube sits exactly at the tag origin: tag-frame position ~0, rotation ~identity. + rng = np.random.default_rng(0) + R_tag_cam, _ = np.linalg.qr(rng.standard_normal((3, 3))) # random rotation + t_tag_cam = rng.standard_normal(3) + + R_cube_tag, t_cube_tag = cube_cam_to_tag(R_tag_cam, t_tag_cam, R_tag_cam, t_tag_cam) + + assert np.allclose(t_cube_tag, np.zeros(3), atol=1e-9) + assert np.allclose(R_cube_tag, np.eye(3), atol=1e-9) + + +def test_known_cube_pose_in_tag_is_recovered_through_camera() -> None: + # Define a known cube pose in the tag frame, push it out to the camera frame, + # then lift it back: cube_cam_to_tag must recover the original tag-frame pose. + rng = np.random.default_rng(7) + R_tag_cam, t_tag_cam = _rand_rot(rng), rng.standard_normal(3) + R_cube_tag_true, t_cube_tag_true = _rand_rot(rng), np.array([0.01, -0.02, 0.03]) + + # Compose the cube pose into the camera frame. + R_cube_cam = R_tag_cam @ R_cube_tag_true + t_cube_cam = R_tag_cam @ t_cube_tag_true + t_tag_cam + + R_cube_tag, t_cube_tag = cube_cam_to_tag(R_tag_cam, t_tag_cam, R_cube_cam, t_cube_cam) + + assert np.allclose(t_cube_tag, t_cube_tag_true, atol=1e-9) + assert np.allclose(R_cube_tag, R_cube_tag_true, atol=1e-9) diff --git a/tests/test_examples_wuji_deploy_sim_viz.py b/tests/test_examples_wuji_deploy_sim_viz.py new file mode 100644 index 00000000..6abd1fa4 --- /dev/null +++ b/tests/test_examples_wuji_deploy_sim_viz.py @@ -0,0 +1,63 @@ +"""Reproduce the real cube in the Genesis sim world from its tag-frame pose. + +The observer reports the cube pose in the wrist-tag frame; to draw it in sim we +lift it back to sim-world coordinates given the tag's world pose. These tests pin +that lift as the exact inverse of the obs-side ``cube_*_world_to_tag`` transform, +so what the policy sees and what the viewer draws agree. +""" + +import numpy as np + +from genelab_wuji.deploy.real2sim import ( + cube_pose_in_tag_to_world, + cube_pose_world_to_tag, + tag_pose_in_world, +) + + +def _quat_z(angle: float) -> np.ndarray: + return np.array([np.cos(angle / 2), 0.0, 0.0, np.sin(angle / 2)]) + + +def test_cube_world_to_tag_and_back_round_trips() -> None: + tag_pos_w = np.array([0.02, 0.0, 0.55]) + tag_quat_w = _quat_z(np.pi / 5) + cube_pos_w = np.array([-0.05, 0.01, 0.56]) + cube_quat_w = _quat_z(-np.pi / 7) + + cube_pos_tag, cube_quat_tag = cube_pose_world_to_tag( + tag_pos_w, tag_quat_w, cube_pos_w, cube_quat_w + ) + back_pos, back_quat = cube_pose_in_tag_to_world( + tag_pos_w, tag_quat_w, cube_pos_tag, cube_quat_tag + ) + + assert np.allclose(back_pos, cube_pos_w, atol=1e-9) + # quaternion equality up to sign + assert np.allclose(back_quat, cube_quat_w, atol=1e-9) or np.allclose( + back_quat, -cube_quat_w, atol=1e-9 + ) + + +def test_cube_at_tag_origin_lifts_to_tag_world_position() -> None: + # A cube reported at the tag origin must render exactly at the tag's world pose. + tag_pos_w = np.array([0.1, -0.2, 0.5]) + tag_quat_w = _quat_z(0.3) + + cube_pos_w, cube_quat_w = cube_pose_in_tag_to_world( + tag_pos_w, tag_quat_w, np.zeros(3), np.array([1.0, 0.0, 0.0, 0.0]) + ) + assert np.allclose(cube_pos_w, tag_pos_w, atol=1e-9) + assert np.allclose(cube_quat_w, tag_quat_w, atol=1e-9) + + +def test_tag_pose_in_world_applies_tag_in_palm_offset() -> None: + # With the palm at the origin (identity), the tag world pose equals the + # constant TAG_IN_PALM transform from the reorient constants. + from genelab_wuji.reorient.constants import TAG_IN_PALM_POS, TAG_IN_PALM_QUAT_WXYZ + + tag_pos_w, tag_quat_w = tag_pose_in_world( + np.zeros(3), np.array([1.0, 0.0, 0.0, 0.0]) + ) + assert np.allclose(tag_pos_w, TAG_IN_PALM_POS, atol=1e-9) + assert np.allclose(tag_quat_w, TAG_IN_PALM_QUAT_WXYZ, atol=1e-9) diff --git a/tests/test_examples_wuji_deploy_zmq_bridge.py b/tests/test_examples_wuji_deploy_zmq_bridge.py new file mode 100644 index 00000000..701c4232 --- /dev/null +++ b/tests/test_examples_wuji_deploy_zmq_bridge.py @@ -0,0 +1,121 @@ +"""ZMQ bridge for the deploy pipeline: message parsing + latest()-cache semantics. + +The cube observer publishes orientation in scipy xyzw order; the deploy stack runs +on mujoco wxyz. These tests pin the conversion and the receiver's last-valid cache +(so a momentary loss of ``world_fixed`` keeps the last good pose). +""" + +from typing import Any + +import numpy as np +import pytest + +zmq = pytest.importorskip("zmq") + +from genelab_wuji.deploy.zmq_bridge import ( # noqa: E402 + CubeReceiver, + GoalReceiver, + cube_msg_from_pose, + cube_pose_from_msg, + goal_from_msg, +) + + +def test_cube_pose_from_msg_converts_xyzw_to_wxyz() -> None: + msg = { + "world_fixed": True, + "cube_size": 0.054, + "cube1": { + "position": {"x": 0.1, "y": -0.2, "z": 0.3}, + # scipy xyzw on the wire (w last) + "orientation": {"x": 0.0, "y": 0.0, "z": 0.0, "w": 1.0}, + }, + } + pos, quat_wxyz, world_fixed, cube_size = cube_pose_from_msg(msg) + + assert np.allclose(pos, [0.1, -0.2, 0.3]) + assert np.allclose(quat_wxyz, [1.0, 0.0, 0.0, 0.0]) # w first + assert world_fixed is True + assert cube_size == pytest.approx(0.054) + + +def test_cube_pose_from_msg_preserves_quat_component_mapping() -> None: + # Distinct components so a w<->x swap (or any mislabel) would be caught. + msg = { + "world_fixed": False, + "cube1": { + "position": {"x": 0.0, "y": 0.0, "z": 0.0}, + "orientation": {"x": 0.1, "y": 0.2, "z": 0.3, "w": 0.4}, + }, + } + _pos, quat_wxyz, world_fixed, cube_size = cube_pose_from_msg(msg) + + assert np.allclose(quat_wxyz, [0.4, 0.1, 0.2, 0.3]) # [w, x, y, z] + assert world_fixed is False + assert cube_size is None # absent in this message + + +def _cube_msg( + pos: list[float], quat_wxyz: list[float], world_fixed: bool +) -> dict[str, Any]: + w, x, y, z = quat_wxyz + return { + "world_fixed": world_fixed, + "cube1": { + "position": {"x": pos[0], "y": pos[1], "z": pos[2]}, + "orientation": {"x": x, "y": y, "z": z, "w": w}, + }, + } + + +def test_cube_receiver_latest_defaults_to_zeros_identity_before_valid() -> None: + # No socket: connect=False keeps it inert so we can drive it by hand. + recv = CubeReceiver(connect=False) + pos, quat = recv.latest() + assert np.allclose(pos, np.zeros(3)) + assert np.allclose(quat, [1.0, 0.0, 0.0, 0.0]) + + +def test_cube_receiver_caches_last_valid_through_world_unfixed() -> None: + recv = CubeReceiver(connect=False) + + good_pos = [0.1, 0.2, 0.3] + good_quat = [0.0, 1.0, 0.0, 0.0] # wxyz + recv._update_from_msg(_cube_msg(good_pos, good_quat, world_fixed=True)) + + pos, quat = recv.latest() + assert np.allclose(pos, good_pos) + assert np.allclose(quat, good_quat) + + # A later sample arrives while calibration is momentarily lost: keep the cache. + recv._update_from_msg(_cube_msg([9.0, 9.0, 9.0], [1.0, 0.0, 0.0, 0.0], world_fixed=False)) + pos2, quat2 = recv.latest() + assert np.allclose(pos2, good_pos) + assert np.allclose(quat2, good_quat) + + +def test_goal_from_msg_reads_wxyz_orientation() -> None: + msg = {"goal": {"orientation": {"w": 0.4, "x": 0.1, "y": 0.2, "z": 0.3}}} + assert np.allclose(goal_from_msg(msg), [0.4, 0.1, 0.2, 0.3]) + + +def test_goal_receiver_defaults_to_identity_then_tracks_latest() -> None: + recv = GoalReceiver(connect=False) + assert np.allclose(recv.latest(), [1.0, 0.0, 0.0, 0.0]) + + recv._update_from_msg({"goal": {"orientation": {"w": 0.0, "x": 0.0, "y": 1.0, "z": 0.0}}}) + assert np.allclose(recv.latest(), [0.0, 0.0, 1.0, 0.0]) + + +def test_cube_msg_round_trips_through_parser() -> None: + # The publisher serializes a wxyz pose to the wire (scipy xyzw); the parser + # converts back to wxyz. Round-trip must be exact so observer and consumer agree. + pos = np.array([0.12, -0.03, 0.55]) + quat_wxyz = np.array([0.4, 0.1, 0.2, 0.3]) + msg = cube_msg_from_pose(pos, quat_wxyz, world_fixed=True, cube_size=0.054) + + got_pos, got_quat, world_fixed, cube_size = cube_pose_from_msg(msg) + assert np.allclose(got_pos, pos) + assert np.allclose(got_quat, quat_wxyz) + assert world_fixed is True + assert cube_size == pytest.approx(0.054) From 06f566f01aeb037e4dc910c119bb36ef6791865d Mon Sep 17 00:00:00 2001 From: KraHsu Date: Wed, 17 Jun 2026 00:01:54 +0800 Subject: [PATCH 02/12] feat(wuji): sim2real deploy toolchain + reorient assets in central zoo MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Completes the Genesis-native wuji-hand deploy stack into a full sim2real pipeline (check → home → vision → calib_check → play_real), all faithful ports of the wuji-mjlab `pixi run -e deploy ...` commands. - hand_utils.py: `check` (read-only bridge sanity) + `home` (3s ease-in-out ramp, now baked into `WujiHandDriver.home(duration_s)`); `deploy-hand` extra pins `wujihandpy==1.5.1`. - cube_world_observer.py: full Hikvision MVS port (multi-face ArUco board, SO3 Kalman + position low-pass + corner EMA, world auto-sampling, fast ROI, --preview) replacing the simplified stub; new camera_config.py / cube_geom.py / config/observer.yaml. Publishes the identical ZMQ schema via CubePublisher. - calib_check.py: Genesis digital-twin calibration viewer (live hand encoders + observed cube). Adds core `InteractiveScene.refresh_visualizer()` (FK-only viewer refresh, no physics — the mj_forward analogue) and `_env.set_hand_joints` / single-env override so the cube isn't pulled by gravity. - play_real.py: goal modes (external/fixed/random) + success monitor (geodesic < threshold, held) + resample-on-success; action params verified to match the training action term. - asset zoo: all three wuji AssetSpecs (wuji_hand, wuji_hand_reorient, wuji_cube) hoisted to module level in genelab.asset_zoo.wuji_hand so `genelab asset list`/`download` discover them; examples import them as the single source of truth. Tested: 144 deploy/asset/scene tests pass; play_real verified end-to-end with a real 207-dim ONNX exported from a freshly retrained reorient PPO (reward ~1050, success-threshold 0.2). Co-Authored-By: Claude Opus 4.8 (1M context) --- examples/wuji/pyproject.toml | 6 +- .../wuji/src/genelab_wuji/deploy/README.md | 51 +- .../src/genelab_wuji/deploy/camera_config.py | 188 +++ .../genelab_wuji/deploy/config/observer.yaml | 34 + .../wuji/src/genelab_wuji/deploy/cube_geom.py | 45 + .../src/genelab_wuji/deploy/hand_driver.py | 42 +- .../src/genelab_wuji/deploy/scripts/_env.py | 38 +- .../deploy/scripts/calib_check.py | 115 ++ .../deploy/scripts/cube_world_observer.py | 1409 +++++++++++++++-- .../genelab_wuji/deploy/scripts/hand_utils.py | 169 ++ .../genelab_wuji/deploy/scripts/play_real.py | 137 +- .../wuji/src/genelab_wuji/reorient/asset.py | 27 +- .../wuji/src/genelab_wuji/wuji_hand/assets.py | 17 +- src/genelab/asset_zoo/wuji_hand.py | 37 +- src/genelab/scene/interactive_scene.py | 24 + .../test_examples_wuji_deploy_hand_driver.py | 35 +- 16 files changed, 2190 insertions(+), 184 deletions(-) create mode 100644 examples/wuji/src/genelab_wuji/deploy/camera_config.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/config/observer.yaml create mode 100644 examples/wuji/src/genelab_wuji/deploy/cube_geom.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/calib_check.py create mode 100644 examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py diff --git a/examples/wuji/pyproject.toml b/examples/wuji/pyproject.toml index 0fef7182..05c37407 100644 --- a/examples/wuji/pyproject.toml +++ b/examples/wuji/pyproject.toml @@ -9,8 +9,12 @@ dependencies = ["genelab"] [project.optional-dependencies] # Deploy core (real2sim + policy control). Pure-software pieces tested headlessly. deploy = ["onnxruntime", "pyzmq", "scipy"] -# Vision observer (real camera -> ZMQ). Hardware-side, not exercised in CI. +# Vision observer (Hikvision camera -> ZMQ). Hardware-side, not exercised in CI. +# Also needs the Hikvision MVS SDK (system install, not pip) — see deploy/README.md. deploy-vision = ["opencv-contrib-python", "pupil-apriltags", "pyyaml"] +# Real Wuji hand SDK (compiled wheel; physical hardware). Imported lazily, kept out +# of `deploy` so the headless core stays binary-free. Pinned to match wuji-mjlab. +deploy-hand = ["wujihandpy==1.5.1"] [project.entry-points."genelab.extensions"] genelab_wuji = "genelab_wuji.tasks:register" diff --git a/examples/wuji/src/genelab_wuji/deploy/README.md b/examples/wuji/src/genelab_wuji/deploy/README.md index 132dad3a..701047ee 100644 --- a/examples/wuji/src/genelab_wuji/deploy/README.md +++ b/examples/wuji/src/genelab_wuji/deploy/README.md @@ -9,7 +9,7 @@ The pieces are decoupled via ZMQ (localhost): ``` cube_world_observer ──cube pose (5555)──▶ play_real (controls the hand) - (camera, hardware) │ toreal_viewer (mirrors cube in sim) + (Hikvision camera) │ toreal_viewer (mirrors cube in sim) └──────────────▶ toreal_viewer ──goal (5556)──▶ play_real ``` @@ -26,9 +26,13 @@ The pieces are decoupled via ZMQ (localhost): | `onnx_policy.py` | `ONNXPolicy` (GeneLab metadata format) | ✅ | | `hand_driver.py` | `HandDriverBase` / `MockHandDriver` / `WujiHandDriver` | ✅ (mock) | | `controller.py` | `DeployController` (closed-loop step) | ✅ | -| `scripts/play_real.py` | deploy control loop (real or mock hand) | glue | +| `camera_config.py` | Hikvision intrinsics/ROI/capture from `config/camera.yaml` | glue (hardware) | +| `cube_geom.py` | cube_tags JSON resolution (`config/cube_tags.json`) | glue | +| `scripts/hand_utils.py` | `check` (read-only bridge test) / `home` (3s ramp to grasp pose) | glue (hardware) | +| `scripts/calib_check.py` | static calib viewer: live hand (encoders) + cube vs. digital twin | glue (hardware) | +| `scripts/play_real.py` | deploy control loop + goal modes + success monitor (real/mock) | glue | | `scripts/toreal_viewer.py` | real2sim Genesis viewer | glue | -| `scripts/cube_world_observer.py` | camera → ZMQ vision pipeline | glue (hardware) | +| `scripts/cube_world_observer.py` | Hikvision camera → ArUco board + SO3 Kalman → ZMQ cube pose | glue (hardware) | The pure-software core is numpy-only and runs headlessly (no Genesis, no hardware), so all frame/obs/action/policy logic is unit-tested in `tests/test_examples_wuji_deploy_*.py`. @@ -48,8 +52,20 @@ so all frame/obs/action/policy logic is unit-tested in `tests/test_examples_wuji ## Install ```bash -uv pip install -e 'examples/wuji[deploy]' # core (real2sim + control) -uv pip install -e 'examples/wuji[deploy,deploy-vision]' # + camera observer +uv pip install -e 'examples/wuji[deploy]' # core (real2sim + control) +uv pip install -e 'examples/wuji[deploy,deploy-vision]' # + camera observer +uv pip install -e 'examples/wuji[deploy,deploy-hand]' # + real Wuji hand SDK (wujihandpy) +``` + +The cube observer also needs the **Hikvision MVS SDK** (system install, not pip — same +as wuji-mjlab). Install from (default `/opt/MVS`) and source +its environment before running the observer: + +```bash +export MVCAM_COMMON_RUNENV=/opt/MVS/lib +export LD_LIBRARY_PATH=/opt/MVS/lib/64:/opt/MVS/lib/32:$LD_LIBRARY_PATH +# (or: source /opt/MVS/bin/set_env_path.sh /opt/MVS) +# If MvImport lives elsewhere: export MVS_PYTHON_PATH=/path/to/dir/containing/MvImport ``` ## Run @@ -61,13 +77,26 @@ genelab export Genelab-Reorient-Wuji-Hand-v0 PATH/model.pt --format onnx --outpu # 1) smoke-test the control loop, no hardware, no ZMQ python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --no-zmq --steps 100 -# 2) real2sim: mirror the real cube in the Genesis sim (needs GPU + display) -python -m genelab_wuji.deploy.scripts.cube_world_observer --camera 0 # terminal A -python -m genelab_wuji.deploy.scripts.toreal_viewer # terminal B +# 1.5) bring up the real hand bridge (needs wujihandpy): check first, then home +python -m genelab_wuji.deploy.scripts.hand_utils check # READ-ONLY: connection + encoder sanity +python -m genelab_wuji.deploy.scripts.hand_utils home # 3s ease-in-out ramp to the grasp pose + +# 2) vision: detect the cube and publish its tag-frame pose on ZMQ:5555 (needs MVS env) +python -m genelab_wuji.deploy.scripts.cube_world_observer --preview # terminal A +python -m genelab_wuji.deploy.scripts.toreal_viewer # terminal B (real2sim mirror) + +# 2.5) calibration check: home the hand, render live hand + observed cube in the twin +python -m genelab_wuji.deploy.scripts.calib_check # (needs the observer running) # 3) drive the real hand from the live observer feed -python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real +# goal modes: --goal-mode random (uniform-SO3, resampled on success) | +# fixed --goal-quat w,x,y,z | external (goal from toreal_viewer ZMQ) +python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real --goal-mode random ``` -The vision observer here is a simplified port (single-marker PnP, no Kalman / dominant-face -fusion); for the production Hikvision rig, swap `_open_camera` and keep the rest. +The cube observer is a faithful port of the production wuji-mjlab pipeline (Hikvision MVS +capture, multi-face ArUco board fusion, SO3 Kalman + position low-pass + corner EMA, world +auto-sampling, fast ROI, OpenCV preview). It publishes the cube pose in the wrist-tag frame +in the exact same ZMQ schema GeneLab's `CubeReceiver` consumes. Tuning lives in +`config/observer.yaml`; camera intrinsics/ROI in `config/camera.yaml`; cube tag layout in +`config/cube_tags.json`. For a non-Hikvision camera, swap the MVS capture in `run()`. diff --git a/examples/wuji/src/genelab_wuji/deploy/camera_config.py b/examples/wuji/src/genelab_wuji/deploy/camera_config.py new file mode 100644 index 00000000..bd7448a5 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/camera_config.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python3 +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2026 Wuji Technology Co., Ltd. +# Ported into GeneLab from wuji-mjlab deploy/reorient/lib/camera_config.py +"""Camera Configuration Loader. + +Centralized camera parameters from config/camera.yaml. +Provides functions for loading camera intrinsics, distortion, and ROI settings. + +Example: + >>> from camera_config import get_camera_matrix, get_dist_coeffs + >>> K = get_camera_matrix() + >>> dist = get_dist_coeffs() +""" + +from __future__ import annotations + +import os +from typing import Any + +import numpy as np +import yaml + +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) +CONFIG_FILE = os.path.join(SCRIPT_DIR, "config", "camera.yaml") + +def load_camera_config(config_file: str | None = None) -> dict[str, Any]: + """Load camera configuration from YAML file. + + Args: + config_file: Path to configuration file. If None, uses default. + + Returns: + Camera configuration dictionary. + + Raises: + FileNotFoundError: If configuration file doesn't exist. + """ + if config_file is None: + config_file = CONFIG_FILE + + if not os.path.exists(config_file): + raise FileNotFoundError(f"Camera config not found: {config_file}") + + with open(config_file, 'r') as f: + cfg = yaml.safe_load(f) + + return cfg + + +def get_camera_matrix(cfg: dict[str, Any] | None = None) -> np.ndarray: + """Get camera intrinsic matrix K, adjusted for ROI offset. + + When ROI is set, cx and cy are shifted by the ROI offset so that the + intrinsics remain valid for the cropped image. + + Args: + cfg: Camera configuration dict. If None, loads from file. + + Returns: + 3x3 camera intrinsic matrix. + """ + if cfg is None: + cfg = load_camera_config() + + intr = cfg['intrinsics'] + roi = cfg['roi'] + K = np.array([ + [intr['fx'], 0, intr['cx'] - roi['offset_x']], + [0, intr['fy'], intr['cy'] - roi['offset_y']], + [0, 0, 1] + ], dtype=np.float64) + return K + + +def get_dist_coeffs(cfg: dict[str, Any] | None = None) -> np.ndarray: + """Get distortion coefficients. + + Args: + cfg: Camera configuration dict. If None, loads from file. + + Returns: + Distortion coefficients array [k1, k2, p1, p2, k3]. + """ + if cfg is None: + cfg = load_camera_config() + + dist = cfg['distortion'] + return np.array([ + dist['k1'], dist['k2'], dist['p1'], dist['p2'], dist['k3'] + ], dtype=np.float64) + + +def get_roi(cfg: dict[str, Any] | None = None) -> tuple[int, int, int, int]: + """Get ROI parameters. + + Args: + cfg: Camera configuration dict. If None, loads from file. + + Returns: + Tuple of (offset_x, offset_y, width, height). + """ + if cfg is None: + cfg = load_camera_config() + + roi = cfg['roi'] + return roi['offset_x'], roi['offset_y'], roi['width'], roi['height'] + + +def get_capture_settings(cfg: dict[str, Any] | None = None) -> dict[str, Any]: + """Get camera capture settings. + + Args: + cfg: Camera configuration dict. If None, loads from file. + + Returns: + Dictionary with exposure_time, gain, and frame_rate. + """ + if cfg is None: + cfg = load_camera_config() + + cap = cfg['capture'] + return { + 'exposure_time': cap['exposure_time'], + 'gain': cap['gain'], + 'frame_rate': cap.get('frame_rate', 0), + } + + +def setup_camera_roi(cam: Any, cfg: dict[str, Any] | None = None) -> tuple[int, int]: + """Setup camera ROI from config. + + Args: + cam: MvCamera instance. + cfg: Camera configuration dict. If None, loads from file. + + Returns: + Tuple of (width, height) of the configured ROI. + """ + offset_x, offset_y, width, height = get_roi(cfg) + cam.MV_CC_SetIntValueEx("OffsetX", offset_x) + cam.MV_CC_SetIntValueEx("OffsetY", offset_y) + cam.MV_CC_SetIntValueEx("Width", width) + cam.MV_CC_SetIntValueEx("Height", height) + print(f"Camera ROI: {width}x{height} @ ({offset_x}, {offset_y})") + return width, height + + +def setup_camera_capture(cam: Any, cfg: dict[str, Any] | None = None) -> None: + """Setup camera capture settings from config. + + Args: + cam: MvCamera instance. + cfg: Camera configuration dict. If None, loads from file. + """ + settings = get_capture_settings(cfg) + cam.MV_CC_SetFloatValue("ExposureTime", settings['exposure_time']) + cam.MV_CC_SetFloatValue("Gain", settings['gain']) + # Frame rate: enable explicit control and set target + frame_rate = settings.get('frame_rate', 0) + if frame_rate and frame_rate > 0: + ret1 = cam.MV_CC_SetBoolValue("AcquisitionFrameRateEnable", True) + ret2 = cam.MV_CC_SetFloatValue("AcquisitionFrameRate", float(frame_rate)) + # Read back actual resulting frame rate + from ctypes import c_float, byref + actual_fps = c_float(0) + ret3 = cam.MV_CC_GetFloatValue("ResultingFrameRate", actual_fps) + if ret3 == 0: + actual_str = f", actual={actual_fps.value:.1f}Hz" + else: + actual_str = ", actual=unknown" + print(f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, " + f"frame_rate={frame_rate}Hz (enable_ret=0x{ret1:X}, set_ret=0x{ret2:X}{actual_str})") + else: + print(f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, frame_rate=default") + + +if __name__ == "__main__": + print("=" * 50) + print("Camera Config Test") + print("=" * 50) + + cfg = load_camera_config() + print("\nCamera Config loaded:") + print(f" ROI: {get_roi(cfg)}") + print(f" K:\n{get_camera_matrix(cfg)}") + print(f" Dist: {get_dist_coeffs(cfg)}") + print(f" Capture: {get_capture_settings(cfg)}") diff --git a/examples/wuji/src/genelab_wuji/deploy/config/observer.yaml b/examples/wuji/src/genelab_wuji/deploy/config/observer.yaml new file mode 100644 index 00000000..1f2df69d --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/config/observer.yaml @@ -0,0 +1,34 @@ +# Cube World Observer Configuration +# Adjust these parameters to tune tracking behavior +# Note: ZMQ port is configured in control.yaml (zmq.cube_port) + +# SO3 Kalman Filter for rotation +rotation_filter: + process_noise: 0.5 # Higher = more agile, allows faster rotation changes + measurement_noise: 0.1 # Lower = trust PnP measurement more + +# Low-pass filter for position +position_filter: + alpha: 0.8 # Higher = faster tracking (0-1, 1=no filter) + +# Presets (uncomment to use): +# +# Agile (fast response, more noise): +# process_noise: 0.5 +# measurement_noise: 0.1 +# alpha: 0.8 +# +# Smooth (stable, slower response): +# process_noise: 0.01 +# measurement_noise: 2.0 +# alpha: 0.2 + +# PnP solver +pnp: + reproj_threshold: 6.0 # px; mean reprojection error after PnP refinement; treated as failure above this threshold + +# Image preprocessing +preprocess: + enable_clahe: true # if disabled, use min-channel grayscale directly without contrast enhancement + clahe_clip: 2.0 + clahe_tile: [8, 8] diff --git a/examples/wuji/src/genelab_wuji/deploy/cube_geom.py b/examples/wuji/src/genelab_wuji/deploy/cube_geom.py new file mode 100644 index 00000000..cf0b5f91 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/cube_geom.py @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2026 Wuji Technology Co., Ltd. +# Ported into GeneLab from wuji-mjlab deploy/reorient/lib/cube_geom.py +"""Shared helpers for cube geometry: cube_tags JSON resolution + runtime scaling. + +Used by both the vision pipeline (cube_world_observer.py — needs cube/tag sizes +for AprilTag/ArUco PnP) and the sim/benchmark pipeline (play_real.py — needs to +patch the MuJoCo cube body so visualization and physics match the real cube). +""" +from __future__ import annotations + +import json +import os +from typing import Any + +ROOT_DIR = os.path.dirname(os.path.abspath(__file__)) +DEFAULT_CUBE_CONFIG_FILE = os.path.join(ROOT_DIR, "config", "cube_tags.json") + + +def resolve_cube_config_path(arg: str | None) -> str: + """Resolve a --cube CLI argument to an absolute cube_tags JSON path. + + Accepts: + - None / "" / "default" -> ``config/cube_tags.json`` (the 54mm baseline). + - An existing path (absolute or relative to cwd) -> used as-is. + - A short size suffix like ``"36"`` / ``"40_5"`` -> ``config/cube_tags.json``. + + Raises FileNotFoundError if the resolved path does not exist. + """ + if not arg or arg == "default": + return DEFAULT_CUBE_CONFIG_FILE + if os.path.exists(arg): + return os.path.abspath(arg) + candidate = os.path.join(ROOT_DIR, "config", f"cube_tags{arg}.json") + if os.path.exists(candidate): + return candidate + raise FileNotFoundError( + f"--cube={arg!r}: not a path nor a known size suffix. Tried {candidate!r}." + ) + + +def load_cube_config(path: str) -> dict[str, Any]: + """Load a cube_tags JSON file.""" + with open(path) as f: + return json.load(f) diff --git a/examples/wuji/src/genelab_wuji/deploy/hand_driver.py b/examples/wuji/src/genelab_wuji/deploy/hand_driver.py index b96fc3e2..9638c205 100644 --- a/examples/wuji/src/genelab_wuji/deploy/hand_driver.py +++ b/examples/wuji/src/genelab_wuji/deploy/hand_driver.py @@ -15,12 +15,27 @@ from genelab_wuji.deploy.config import JOINT_NAMES_20, N_JOINTS, default_joint_pos +def _home_ramp(current: np.ndarray, target: np.ndarray, steps: int) -> np.ndarray: + """Ease-in-out (smoothstep) interpolation from ``current`` to ``target``. + + Returns ``(steps, 20)`` intermediate targets; the last row equals ``target`` + exactly (smoothstep ``3t²-2t³`` reaches 1 at ``t=1``). Pure/numpy so the ramp + math is testable without hardware. + """ + current = np.asarray(current, dtype=float) + target = np.asarray(target, dtype=float) + steps = max(1, int(steps)) + t = (np.arange(1, steps + 1, dtype=float) / steps)[:, None] # (steps, 1), ends at 1.0 + t_smooth = t * t * (3.0 - 2.0 * t) + return current[None, :] + t_smooth * (target - current)[None, :] + + class HandDriverBase(ABC): """Interface every hand backend implements (targets/encoders flattened to 20).""" @abstractmethod - def home(self) -> None: - """Drive the hand to the home grasp keyframe.""" + def home(self, duration_s: float = 3.0) -> None: + """Drive the hand to the home grasp keyframe (ease-in-out ramp over ``duration_s``).""" @abstractmethod def write_target(self, qpos: np.ndarray) -> None: @@ -44,7 +59,8 @@ class MockHandDriver(HandDriverBase): def __init__(self) -> None: self._state = default_joint_pos() - def home(self) -> None: + def home(self, duration_s: float = 3.0) -> None: + # No hardware to ease; the ramp is a real-driver safety concern only. self._state = default_joint_pos() def write_target(self, qpos: np.ndarray) -> None: @@ -83,8 +99,24 @@ def __exit__(self, *exc: object) -> None: self._hand.write_joint_enabled(False) self._hand = None - def home(self) -> None: - self.write_target(default_joint_pos()) + def home(self, duration_s: float = 3.0) -> None: + """Smoothly ramp from the current pose to the home grasp keyframe. + + Ease-in-out interpolation at 50 Hz over ``duration_s`` so the hand eases + in rather than snapping (a single instant write can jerk the joints). + ``duration_s <= 0`` does one immediate write. + """ + import time + + target = default_joint_pos() + if duration_s <= 0: + self.write_target(target) + return + steps = max(1, int(duration_s * 50.0)) # 50 Hz smoothing + dt = duration_s / steps + for frame in _home_ramp(self.read_encoders(), target, steps): + self.write_target(frame) + time.sleep(dt) def write_target(self, qpos: np.ndarray) -> None: assert self._hand is not None, "enter the WujiHandDriver context first" diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py index 81bb9202..1f58ac5e 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py @@ -13,13 +13,20 @@ import numpy as np -def build_reorient_env() -> Any: - """Build the play-mode reorient env (hand + cube) with auto-reset disabled.""" +def build_reorient_env(num_envs: int | None = None) -> Any: + """Build the play-mode reorient env (hand + cube) with auto-reset disabled. + + ``num_envs`` overrides the cfg's play default (4); deploy viewers only ever use + env 0, so single-process tools (e.g. ``calib_check``) pass ``1`` to avoid + rendering parallel copies. + """ from genelab.envs.manager_based_rl_env import ManagerBasedRlEnv from genelab_wuji.reorient.env_cfg import wuji_hand_reorient_env_cfg cfg = wuji_hand_reorient_env_cfg(play=True) cfg.auto_reset = False # we drive poses by hand; never teleport on "done" + if num_envs is not None: + cfg.simulation.num_envs = num_envs env = ManagerBasedRlEnv(cfg) env.reset() return env @@ -49,3 +56,30 @@ def set_cube_pose(env: Any, pos_w: np.ndarray, quat_w: np.ndarray) -> None: fn = getattr(handle, setter, None) if fn is not None: fn(value) + + +def set_hand_joints(env: Any, qpos_encoder_order: np.ndarray) -> None: + """Kinematically render hand encoder readings on the sim robot (calib viewer). + + ``qpos_encoder_order`` is the ``(20,)`` joint vector in ``JOINT_NAMES_20`` / + encoder order; it is reordered (by name) into the articulation's ``joint_names`` + order and written as joint state (zero velocity). Teleport-per-tick: the next + write re-syncs, so a single physics step can't drift the rendered pose. + """ + import torch + + from genelab_wuji.deploy.config import JOINT_NAMES_20 + + robot = env.scene["robot"] + enc_index = {name: i for i, name in enumerate(JOINT_NAMES_20)} + missing = [n for n in robot.joint_names if n not in enc_index] + if missing: + raise ValueError(f"robot joints absent from encoder order JOINT_NAMES_20: {missing}") + perm = [enc_index[n] for n in robot.joint_names] # joint_names[i] = encoder[perm[i]] + reordered = np.asarray(qpos_encoder_order, dtype=float)[perm] + + device = env.device + jp = torch.tensor(reordered, dtype=torch.float, device=device).unsqueeze(0) + jv = torch.zeros_like(jp) + env_ids = torch.arange(env.num_envs, device=device) + robot.write_joint_state(jp, jv, env_ids) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/calib_check.py b/examples/wuji/src/genelab_wuji/deploy/scripts/calib_check.py new file mode 100644 index 00000000..ae0b3cfd --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/calib_check.py @@ -0,0 +1,115 @@ +#!/usr/bin/env python3 +"""Static calibration check for cube pose vs. hand pose (Genesis-native port). + +Ported from wuji-mjlab deploy/reorient/tools/calib_check.py — adapted to the +Genesis reorient scene and GeneLab's deploy helpers. + +What this does: + 1. Initialises the hand driver and ramps the hand to the reorient home pose. + 2. Opens the Genesis viewer showing the digital twin (hand + cube). + 3. Loops at ~20 Hz reading joint encoders + cube pose over ZMQ, rendering the + live hand pose and the observed cube each tick. + +Use this to eyeball whether the ArUco-based cube pose estimate (anchored to the +wrist AprilTag world frame) matches the physical cube. There is no policy and no +control beyond the initial homing ramp — the hand stays at home. + +Run: + python -m genelab_wuji.deploy.scripts.cube_world_observer & # publisher + python -m genelab_wuji.deploy.scripts.calib_check # this tool + python -m genelab_wuji.deploy.scripts.calib_check --mock # no hardware + +Press Ctrl+C or close the viewer window to exit. Needs a GPU + display (Genesis +viewer); the transform math itself is covered by the headless deploy tests. +""" + +from __future__ import annotations + +import argparse +import time +from typing import Any + +from genelab_wuji.deploy.hand_driver import HandDriverBase, MockHandDriver +from genelab_wuji.deploy.real2sim import cube_pose_in_tag_to_world +from genelab_wuji.deploy.scripts._env import ( + build_reorient_env, + set_cube_pose, + set_hand_joints, + tag_world_pose, +) +from genelab_wuji.deploy.zmq_bridge import DEFAULT_CUBE_PORT, CubeReceiver + + +def _loop(env: Any, drv: HandDriverBase, cube_recv: CubeReceiver | None, rate_hz: float) -> None: + """Render the live hand + observed cube until the viewer closes / Ctrl+C.""" + tag_pos_w, tag_quat_w = tag_world_pose(env) # fixed-base hand -> constant + dt = 1.0 / max(rate_hz, 1.0) + try: + while not env.viewer_closed: + set_hand_joints(env, drv.read_encoders()) + if cube_recv is not None: + cube_pos_tag, cube_quat_tag = cube_recv.latest() + cube_pos_w, cube_quat_w = cube_pose_in_tag_to_world( + tag_pos_w, tag_quat_w, cube_pos_tag, cube_quat_tag + ) + set_cube_pose(env, cube_pos_w, cube_quat_w) + # FK-only refresh: render the teleported hand/cube as-set, no physics + # integration (so the cube isn't pulled down by gravity each frame). + env.scene.refresh_visualizer() + time.sleep(dt) + except KeyboardInterrupt: + print("\n[calib-check] interrupted by user.") + + +def main() -> int: + parser = argparse.ArgumentParser(description=(__doc__ or "").splitlines()[0]) + parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) + parser.add_argument("--host", default="localhost") + parser.add_argument( + "--no-cube-zmq", + action="store_true", + help="skip CubeReceiver — render only the hand (diagnose publisher issues).", + ) + parser.add_argument("--rate-hz", type=float, default=20.0, help="viewer refresh rate") + parser.add_argument( + "--effort-limit", type=float, default=0.5, help="per-joint Nm for the real hand" + ) + parser.add_argument( + "--mock", action="store_true", help="use the mock hand (no hardware; renders home pose)" + ) + args = parser.parse_args() + + cube_recv: CubeReceiver | None = None + if not args.no_cube_zmq: + cube_recv = CubeReceiver(port=args.cube_port, host=args.host) + print(f"[calib-check] CubeReceiver listening on tcp://{args.host}:{args.cube_port}") + else: + print("[calib-check] cube ZMQ disabled (--no-cube-zmq)") + + env = build_reorient_env(num_envs=1) # single viewer; no parallel envs + try: + if args.mock: + drv: HandDriverBase = MockHandDriver() + drv.home() + print("[calib-check] mock hand at home — viewer up. Ctrl+C / close window to exit.") + _loop(env, drv, cube_recv, args.rate_hz) + else: + from genelab_wuji.deploy.hand_driver import WujiHandDriver + + with WujiHandDriver(effort_limit_nm=args.effort_limit) as drv: + print("[calib-check] homing hand ...") + drv.home(duration_s=3.0) + print( + "[calib-check] homed — viewer up. Compare the rendered cube against the " + "real cube. Ctrl+C / close window to exit." + ) + _loop(env, drv, cube_recv, args.rate_hz) + finally: + if cube_recv is not None: + cube_recv.close() + env.close() + return 0 + + +if __name__ == "__main__": + raise SystemExit(main()) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py index a5208100..18b0e6c0 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py @@ -1,151 +1,1332 @@ #!/usr/bin/env python3 -"""Vision pipeline: detect the cube pose in the wrist-tag frame and publish on ZMQ. +# SPDX-License-Identifier: Apache-2.0 +# Copyright 2026 Wuji Technology Co., Ltd. +""" +Cube World Observer -A simplified, hardware-agnostic port of the wuji-mjlab cube observer. It: +Detects cube pose relative to world coordinate system defined by AprilTag. +Publishes pose via ZMQ for use by play_real.py. -1. grabs camera frames (OpenCV ``VideoCapture`` by default), -2. detects the world AprilTag (ID 0) to fix the wrist-tag frame in the camera, -3. detects the cube's ArUco markers and solves its pose in the camera frame, -4. lifts the cube into the tag frame via the tested :func:`cube_cam_to_tag`, and -5. publishes ``(pos, quat_wxyz, world_fixed, cube_size)`` via :class:`CubePublisher`. +Ported into GeneLab from wuji-mjlab deploy/reorient/scripts/cube_world_observer.py. -The frame math (steps 4-5) is covered by the headless deploy tests; the detector -(steps 1-3) needs a real camera + ``opencv-contrib-python`` + ``pupil-apriltags`` -and is not exercised in CI. For the production Hikvision rig, swap ``_open_camera`` -and reuse the rest. Filtering (Kalman / dominant-face disambiguation) from the -reference is intentionally omitted here for clarity. +Features: +- World frame defined by AprilTag ID 0 +- Cube detection using ArUco 4x4 tags with dominant face strategy +- SO3 Kalman Filter for rotation smoothing +- ZMQ publishing on port 5555 Usage: - python -m genelab_wuji.deploy.scripts.cube_world_observer --camera 0 -""" + python -m genelab_wuji.deploy.scripts.cube_world_observer --preview # With visualization + python -m genelab_wuji.deploy.scripts.cube_world_observer # Headless mode -from __future__ import annotations - -import argparse +On startup, the world coordinate system is auto-sampled (100 frames by default), +then a fixed world frame is used. Press 'w' to resample the world frame. +""" +import sys import os import time - -import numpy as np +import json import yaml +import numpy as np +import cv2 +from ctypes import * from scipy.spatial.transform import Rotation +from scipy.linalg import inv -from genelab_wuji.deploy.frame_transform import cube_cam_to_tag +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # deploy/scripts +ROOT_DIR = os.path.dirname(SCRIPT_DIR) # deploy +# MvImport: Hikvision MVS SDK Python bindings. +# System-level dependency (NOT vendored in this repo). Default install path is +# /opt/MVS; override with MVS_PYTHON_PATH env var if installed elsewhere. +_mvs_python_path = os.environ.get("MVS_PYTHON_PATH", "/opt/MVS/Samples/64/Python") +if not os.path.isdir(os.path.join(_mvs_python_path, "MvImport")): + raise RuntimeError( + f"MvImport not found at {_mvs_python_path}/MvImport. " + "Install Hikvision MVS SDK (https://www.hikrobotics.com) or set " + "MVS_PYTHON_PATH env var to the dir containing MvImport/." + ) +sys.path.insert(0, _mvs_python_path) + +os.environ["OPENCV_LOG_LEVEL"] = "SILENT" + +from MvImport.MvCameraControl_class import * +from genelab_wuji.deploy.camera_config import ( + load_camera_config, get_camera_matrix, get_dist_coeffs, + setup_camera_roi, setup_camera_capture +) from genelab_wuji.deploy.zmq_bridge import DEFAULT_CUBE_PORT, CubePublisher -_CONFIG_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "config") +try: + from pupil_apriltags import Detector as AprilTagDetector +except ImportError: + print("ERROR: pupil_apriltags not installed. Run: pip install pupil-apriltags") + sys.exit(1) + +import zmq + +# Load camera config +_cam_cfg = load_camera_config() +K = get_camera_matrix(_cam_cfg) +DIST_COEFFS = get_dist_coeffs(_cam_cfg) + +# Config files +OBSERVER_CONFIG_FILE = os.path.join(os.path.dirname(SCRIPT_DIR), "config", "observer.yaml") # deploy/config/observer.yaml + +from genelab_wuji.deploy.cube_geom import ( + resolve_cube_config_path, + DEFAULT_CUBE_CONFIG_FILE as CUBE_CONFIG_FILE, +) + +# World origin = AprilTag ID 0 on the wrist. WORLD_TAG_ID = 0 -WORLD_TAG_SIZE = 0.048 # meters (48 mm wrist AprilTag) +WORLD_TAG_SIZE = 0.048 # 48mm +WORLD_SAMPLE_FRAMES = 100 # Number of frames to sample for world frame averaging +# Optional world-frame correction; None = use AprilTag frame as-is. +# AprilTag detector (X-right, Y-down, Z-into-tag) -> MuJoCo wrist tag (right-handed) +# Pure handedness flip: same X, flipped Y and Z (printed tag X aligns with MuJoCo wrist tag X). +WORLD_FRAME_CORRECTION = np.array([ + [ 1.0, 0.0, 0.0], + [ 0.0, -1.0, 0.0], + [ 0.0, 0.0, -1.0], +]) +# WORLD_FRAME_CORRECTION = "+x +z -y" # Example: remap axes +# WORLD_FRAME_CORRECTION = np.array([[1,0,0], [0,0,1], [0,-1,0]]) # Same as above -def _camera_matrix(cam_cfg: dict) -> tuple[np.ndarray, np.ndarray]: - k = cam_cfg["intrinsics"] - K = np.array([[k["fx"], 0, k["cx"]], [0, k["fy"], k["cy"]], [0, 0, 1]], dtype=float) - d = cam_cfg["distortion"] - dist = np.array([d["k1"], d["k2"], d["p1"], d["p2"], d["k3"]], dtype=float) - return K, dist +def parse_axis_remap(remap_str): + """Parse axis remapping string to rotation matrix. -def _open_camera(index: int): - import cv2 + Args: + remap_str: String like "+x +z -y" specifying how AprilTag axes map to new world axes + Format: "new_X new_Y new_Z" where each is ±x, ±y, or ±z - cap = cv2.VideoCapture(index) - if not cap.isOpened(): - raise RuntimeError(f"could not open camera {index}") - return cap + Returns: + 3x3 rotation matrix R such that new_point = R @ apriltag_point + """ + axis_map = { + '+x': np.array([1, 0, 0]), + '-x': np.array([-1, 0, 0]), + '+y': np.array([0, 1, 0]), + '-y': np.array([0, -1, 0]), + '+z': np.array([0, 0, 1]), + '-z': np.array([0, 0, -1]), + } + parts = remap_str.lower().split() + if len(parts) != 3: + raise ValueError(f"Axis remap must have 3 parts, got: {remap_str}") -def main() -> int: - import cv2 - from pupil_apriltags import Detector + # Build rotation matrix: columns are where AprilTag axes go + # But we want rows to be where new axes come from + R = np.zeros((3, 3)) + for i, part in enumerate(parts): + if part not in axis_map: + raise ValueError(f"Invalid axis: {part}. Use +x,-x,+y,-y,+z,-z") + R[i, :] = axis_map[part] - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("--camera", type=int, default=0) - parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) - parser.add_argument("--camera-config", default=os.path.join(_CONFIG_DIR, "camera.yaml")) - parser.add_argument("--cube-config", default=os.path.join(_CONFIG_DIR, "cube_tags.json")) - args = parser.parse_args() + # Verify it's a valid rotation (det = +1 for right-handed) + det = np.linalg.det(R) + if not np.isclose(abs(det), 1.0): + raise ValueError(f"Invalid axis remap: axes not orthogonal (det={det:.3f})") + if det < 0: + raise ValueError(f"Invalid axis remap: forms left-handed system (det={det:.3f}). " + "Hint: flip one axis sign to make it right-handed.") - with open(args.camera_config) as f: - cam_cfg = yaml.safe_load(f) - K, dist = _camera_matrix(cam_cfg) + return R - import json +# No silent default — pass --cube to override config/cube_tags.json. - with open(args.cube_config) as f: - cube_cfg = json.load(f) - cube_size = float(cube_cfg["cube_size"]) +# Cube frame correction rotation matrix +# Corrects the difference between ArUco board coordinate system and MuJoCo mesh coordinate system +# Format: same as WORLD_FRAME_CORRECTION (matrix or axis remap string) +# Set to None if ArUco board axes match MuJoCo mesh axes +CUBE_FRAME_CORRECTION = None # None = no correction +# Example: if ArUco X,Y,Z maps to MuJoCo Y,Z,X: CUBE_FRAME_CORRECTION = "+y +z +x" - cap = _open_camera(args.camera) - apriltag = Detector(families="tag36h11") - aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50) - aruco_params = cv2.aruco.DetectorParameters() - publisher = CubePublisher(port=args.cube_port) +# Face colors (matching MuJoCo dex_cube) +FACE_COLORS = { + 'TOP': ('Cyan', (255, 255, 0)), # BGR + 'BOTTOM': ('Blue', (255, 0, 0)), + 'FRONT': ('Red', (0, 0, 255)), + 'BACK': ('White', (255, 255, 255)), + 'LEFT': ('Green', (0, 255, 0)), + 'RIGHT': ('Yellow', (0, 255, 255)), +} + + +def load_observer_config(): + """Load observer configuration from YAML file.""" + defaults = { + 'rotation_filter': { + 'process_noise': 0.1, + 'measurement_noise': 0.3, + }, + 'position_filter': { + 'alpha': 0.6, + }, + 'pnp': { + 'reproj_threshold': 6.0, + }, + 'preprocess': { + 'enable_clahe': True, + 'clahe_clip': 2.0, + 'clahe_tile': [8, 8], + }, + } + + if os.path.exists(OBSERVER_CONFIG_FILE): + try: + with open(OBSERVER_CONFIG_FILE, 'r') as f: + cfg = yaml.safe_load(f) + # Merge with defaults + for key in defaults: + if key in cfg: + defaults[key].update(cfg[key]) + print(f"Loaded observer config from {OBSERVER_CONFIG_FILE}") + except Exception as e: + print(f"Warning: Failed to load observer config: {e}, using defaults") + + return defaults + + +class SO3KalmanFilter: + """SO(3) rotation Kalman filter in tangent space.""" + + def __init__(self, process_noise=0.01, measurement_noise=0.1): + self.state = np.zeros(3) + self.covariance = np.eye(3) * 0.1 + self.Q = np.eye(3) * process_noise + self.R_noise = np.eye(3) * measurement_noise + self.is_initialized = False + self.reference_rot = np.eye(3) + self.filtered_rot = np.eye(3) + + def _rotation_to_axis_angle(self, R): + """Convert rotation matrix to axis-angle (more stable than logm near 180°).""" + # Use Rodrigues formula for stability + rvec, _ = cv2.Rodrigues(R) + return rvec.flatten() + + def _axis_angle_to_rotation(self, rvec): + """Convert axis-angle to rotation matrix.""" + R, _ = cv2.Rodrigues(rvec.reshape(3, 1)) + return R + + def update(self, rotation_matrix): + if not self.is_initialized: + self.reference_rot = rotation_matrix.copy() + self.filtered_rot = rotation_matrix.copy() + self.is_initialized = True + return rotation_matrix + + # Compute relative rotation + R_relative = rotation_matrix @ self.reference_rot.T + + # Use axis-angle instead of logm for stability near 180° + z_local = self._rotation_to_axis_angle(R_relative) + + # Kalman update + self.covariance = self.covariance + self.Q + S = self.covariance + self.R_noise + K_gain = self.covariance @ inv(S) + self.state = self.state + K_gain @ (z_local - self.state) + self.covariance = (np.eye(3) - K_gain) @ self.covariance + + # Convert back to rotation matrix + R_filtered_local = self._axis_angle_to_rotation(self.state) + R_filtered_global = R_filtered_local @ self.reference_rot + + # Re-center reference when state gets too large + if np.linalg.norm(self.state) > 1.5: + self.reference_rot = R_filtered_global.copy() + self.state = np.zeros(3) + + self.filtered_rot = R_filtered_global + return self.filtered_rot + + def reset(self): + self.state = np.zeros(3) + self.covariance = np.eye(3) * 0.1 + self.is_initialized = False + self.reference_rot = np.eye(3) + + +class VectorLowPassFilter: + """Simple low-pass filter for position.""" + + def __init__(self, alpha=0.3): + self.alpha = alpha + self.filtered_val = None + + def update(self, val): + if self.filtered_val is None: + self.filtered_val = val.copy() + return self.filtered_val + self.filtered_val = self.alpha * val + (1 - self.alpha) * self.filtered_val + return self.filtered_val + + def reset(self): + self.filtered_val = None + + +# Corner EMA filter alpha (1.0 = no smoothing, acts as per-ID state cache for reset) +CORNER_FILTER_ALPHA = 1.0 + + +class CornerEMAFilter: + """Per-marker-ID corner EMA filter. + + Maintains a dict {marker_id: (4,2) filtered corners}. + Each frame, for every detected marker, the 4 corner positions are + exponentially-smoothed with the previous frame's value. + Markers not seen for >max_age frames are evicted. + """ + + def __init__(self, alpha=CORNER_FILTER_ALPHA, max_age=5): + self.alpha = alpha + self.max_age = max_age + self._state = {} + self._age = {} + + def update(self, corners, ids): + """Filter corners in-place and return (filtered_corners, ids).""" + if ids is None or len(ids) == 0: + for mid in list(self._age): + self._age[mid] += 1 + if self._age[mid] > self.max_age: + del self._state[mid] + del self._age[mid] + return corners, ids + + seen = set() + filtered = [] + for i, mid in enumerate(ids.flatten()): + mid = int(mid) + seen.add(mid) + pts = corners[i].reshape(4, 2).astype(np.float32) + if mid in self._state: + pts = self.alpha * pts + (1 - self.alpha) * self._state[mid] + self._state[mid] = pts.copy() + self._age[mid] = 0 + filtered.append(pts.reshape(1, 4, 2).astype(np.float32)) + + for mid in list(self._age): + if mid not in seen: + self._age[mid] += 1 + if self._age[mid] > self.max_age: + del self._state[mid] + del self._age[mid] + + return filtered, ids + + def reset(self): + self._state.clear() + self._age.clear() + + +# --- Buffer backlog detection constants --- +BACKLOG_LATENCY_S = 30.0e-3 # 30ms; headless grab ≈ 20ms (waiting for camera frame) +BACKLOG_COUNT = 5 # consecutive slow grabs before flush +BACKLOG_MAX_FLUSH = 20 # safety cap on flush loop + + +class CubeWorldObserver: + """Detects cube pose relative to world coordinate system defined by AprilTag.""" + + def __init__(self, visualize=False, zmq_port=5555, + process_noise=0.01, measurement_noise=1.0, alpha=0.3, + world_sample_frames=WORLD_SAMPLE_FRAMES, + cube_config_path: str | None = None): + self.visualize = visualize + self._cube_config_path = cube_config_path or CUBE_CONFIG_FILE + + # Initialize camera + print("Initializing camera...") + MvCamera.MV_CC_Initialize() + deviceList = MV_CC_DEVICE_INFO_LIST() + MvCamera.MV_CC_EnumDevices(MV_GIGE_DEVICE | MV_USB_DEVICE, deviceList) + + if deviceList.nDeviceNum == 0: + raise RuntimeError("No camera found!") + + self.cam = MvCamera() + stDevice = cast(deviceList.pDeviceInfo[0], POINTER(MV_CC_DEVICE_INFO)).contents + self.cam.MV_CC_CreateHandle(stDevice) + self.cam.MV_CC_OpenDevice(MV_ACCESS_Exclusive, 0) + self.cam.MV_CC_SetEnumValue("TriggerMode", MV_TRIGGER_MODE_OFF) + self.cam.MV_CC_SetEnumValue("PixelFormat", PixelType_Gvsp_BayerGB8) + setup_camera_capture(self.cam, _cam_cfg) + setup_camera_roi(self.cam, _cam_cfg) + self.cam.MV_CC_StartGrabbing() + print("Camera ready!") + + # AprilTag detector for world frame + self.apriltag_detector = AprilTagDetector( + families="tag36h11", nthreads=4, quad_decimate=1.0, + quad_sigma=0.0, decode_sharpening=0.25, + ) + + # ArUco detector for cube + self.aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50) + # Support both old and new OpenCV API + if hasattr(cv2.aruco, 'DetectorParameters_create'): + # Old API (OpenCV < 4.7) + self.aruco_params = cv2.aruco.DetectorParameters_create() + self.aruco_params.cornerRefinementMethod = cv2.aruco.CORNER_REFINE_SUBPIX + self.aruco_detector = None # Use old-style detectMarkers + else: + # New API (OpenCV >= 4.7) + aruco_params = cv2.aruco.DetectorParameters() + aruco_params.cornerRefinementMethod = cv2.aruco.CORNER_REFINE_SUBPIX + self.aruco_detector = cv2.aruco.ArucoDetector(self.aruco_dict, aruco_params) + + # Load cube config and build board + self._load_config() + self._build_aruco_board() + + # Filters + self.filter_R = SO3KalmanFilter(process_noise=process_noise, measurement_noise=measurement_noise) + self.filter_t = VectorLowPassFilter(alpha=alpha) + + # ZMQ publisher + self.publisher = CubePublisher(port=zmq_port) + print(f"ZMQ publisher on port {zmq_port}") + + # State + self.stOutFrame = MV_FRAME_OUT() + self.world_pose = None + self.frame_count = 0 + self.last_print_time = 0 + self.last_frame_count = 0 + self._display_fps = 0.0 + self.filt_R = np.eye(3) + self.filt_t = np.zeros(3) + self.prev_quat = None # For quaternion sign continuity + self._R_cube_world = None # Cube rotation in world frame (for visualization) + self._t_cube_world = None # Cube position in world frame (for visualization) + self._dominant_face = None # Currently visible face + + # World frame sampling state + self._world_samples_R = [] # Collected rotation samples + self._world_samples_t = [] # Collected translation samples + self._world_fixed = False # Whether world frame is fixed + self._world_sample_target = world_sample_frames # Target sample count + + # --- New observer state for IPPE+ITERATIVE migration --- + _cfg = load_observer_config() + self._reproj_threshold = float(_cfg['pnp']['reproj_threshold']) + + self._enable_clahe = bool(_cfg['preprocess']['enable_clahe']) + _clip = float(_cfg['preprocess']['clahe_clip']) + _tile = tuple(int(x) for x in _cfg['preprocess']['clahe_tile']) + self._clahe = cv2.createCLAHE(clipLimit=_clip, tileGridSize=_tile) if self._enable_clahe else None + + self.corner_filter = CornerEMAFilter(alpha=CORNER_FILTER_ALPHA) + + # IPPE disambiguation state + self._ippe_locked_idx = 0 + self._lost_frames = 0 + self._prev_dominant_face = None + self._active_faces = set() + self._reproj_err = 0.0 + + # Backlog detection state + self._grab_slow_count = 0 + + def _load_config(self): + """Load cube configuration from file. + + Raises: + FileNotFoundError: if the cube_tags*.json path does not exist — + cube geometry must be specified explicitly (no silent defaults). + KeyError: if the JSON is missing required cube_size/tag_size keys. + """ + self._tag_map = None + self._face_axes_cfg = None + self._face_rotations = {'TOP': 0, 'BOTTOM': 0, 'FRONT': 0, 'BACK': 0, 'LEFT': 0, 'RIGHT': 0} + + if not os.path.exists(self._cube_config_path): + raise FileNotFoundError( + f"cube tags JSON not found: {self._cube_config_path}. " + "Specify with --cube (e.g. --cube 36 / --cube 40_5 / default 54mm)." + ) + + try: + with open(self._cube_config_path, 'r') as f: + cfg = json.load(f) + # Required: cube_size + tag_size + tag_center_offset. No silent defaults. + try: + self._cube_size = float(cfg['cube_size']) + self._tag_size = float(cfg['tag_size']) + self._tag_offset = float(cfg['tag_center_offset']) + except KeyError as e: + raise KeyError( + f"{self._cube_config_path} is missing required key {e}; " + "cube_size, tag_size and tag_center_offset are not allowed to be defaulted." + ) from None + faces_cfg = cfg.get('faces_config', {}) + self._tag_map = {face: {int(k): v for k, v in tags.items()} for face, tags in faces_cfg.items()} + self._face_axes_cfg = cfg.get('face_axes', None) + for face, rot in cfg.get('face_rotations', {}).items(): + self._face_rotations[face] = rot + print(f"Loaded cube config from {self._cube_config_path}") + print(f" cube_size={self._cube_size*1000:.1f}mm " + f"tag_size={self._tag_size*1000:.2f}mm " + f"tag_center_offset={self._tag_offset*1000:.2f}mm") + except json.JSONDecodeError as e: + print(f"Warning: Failed to parse config JSON: {e}") + + # Build tag to face mapping + self._tag_to_face = {} + if self._tag_map: + for face, tags in self._tag_map.items(): + for tid in tags.keys(): + self._tag_to_face[tid] = face + + def _build_aruco_board(self): + """Build ArUco Board with all cube tags' 3D positions.""" + half = self._cube_size / 2 + ht = self._tag_size / 2 + off = self._tag_offset + + def rotate_corners(corners, rotation): + n = (rotation // 90) % 4 + if n == 0: return corners + elif n == 1: return np.array([corners[3], corners[0], corners[1], corners[2]]) + elif n == 2: return np.array([corners[2], corners[3], corners[0], corners[1]]) + else: return np.array([corners[1], corners[2], corners[3], corners[0]]) + + def face_tags(face_center, u_axis, v_axis, rotation=0): + tags = {} + for pos, center in [('T', face_center + off * v_axis), ('B', face_center - off * v_axis), + ('L', face_center - off * u_axis), ('R', face_center + off * u_axis)]: + corners = np.array([ + center - ht * u_axis + ht * v_axis, center + ht * u_axis + ht * v_axis, + center + ht * u_axis - ht * v_axis, center - ht * u_axis - ht * v_axis, + ], dtype=np.float32) + tags[pos] = rotate_corners(corners, rotation) + return tags + + if self._face_axes_cfg: + faces = {name: (np.array(axes['center'], dtype=np.float64) * half, + np.array(axes['u'], dtype=np.float64), + np.array(axes['v'], dtype=np.float64)) + for name, axes in self._face_axes_cfg.items()} + else: + X, Y, Z = np.array([1,0,0]), np.array([0,1,0]), np.array([0,0,1]) + faces = {'TOP': (half*Z, X, Y), 'BOTTOM': (-half*Z, X, -Y), 'FRONT': (-half*Y, X, Z), + 'BACK': (half*Y, -X, Z), 'LEFT': (-half*X, -Y, Z), 'RIGHT': (half*X, Y, Z)} + + tag_map = self._tag_map or { + 'TOP': {0:'L',1:'B',2:'T',3:'R'}, 'BOTTOM': {8:'R',9:'T',10:'B',11:'L'}, + 'FRONT': {16:'R',17:'T',18:'B',19:'L'}, 'BACK': {20:'B',21:'R',22:'L',23:'T'}, + 'LEFT': {4:'R',5:'T',6:'B',7:'L'}, 'RIGHT': {12:'B',13:'R',14:'L',15:'T'}, + } + + board_corners, board_ids = [], [] + for face_name, (center, u, v) in faces.items(): + tags = face_tags(center, u, v, self._face_rotations.get(face_name, 0)) + for tid, pos in tag_map[face_name].items(): + board_corners.append(tags[pos]) + board_ids.append([tid]) + + sorted_idx = np.argsort([b[0] for b in board_ids]) + board_corners = [board_corners[i] for i in sorted_idx] + board_ids = np.array([board_ids[i] for i in sorted_idx], dtype=np.int32) + + # Support both old and new OpenCV API + if hasattr(cv2.aruco, 'Board_create'): + # Old API (OpenCV < 4.7) + self.cube_board = cv2.aruco.Board_create(board_corners, self.aruco_dict, board_ids) + else: + # New API (OpenCV >= 4.7) + self.cube_board = cv2.aruco.Board(board_corners, self.aruco_dict, board_ids) + print(f"ArUco Board: {len(board_ids)} tags") + + def _match_image_points(self, corners, ids): + """Match detected corners/ids to board - compatibility wrapper for old/new API.""" + if hasattr(self.cube_board, 'matchImagePoints'): + # New API (OpenCV >= 4.7) + return self.cube_board.matchImagePoints(corners, ids) + else: + # Old API (OpenCV < 4.7) - manually match + obj_pts = [] + img_pts = [] + if ids is None or len(ids) == 0: + return None, None + + board_ids_flat = self.cube_board.ids.flatten() + for i, marker_id in enumerate(ids.flatten()): + # Find this marker in the board + board_idx = np.where(board_ids_flat == marker_id)[0] + if len(board_idx) > 0: + board_idx = board_idx[0] + # Add all 4 corners of this marker + obj_pts.extend(self.cube_board.objPoints[board_idx]) + img_pts.extend(corners[i][0]) + + if len(obj_pts) == 0: + return None, None + + return np.array(obj_pts, dtype=np.float32), np.array(img_pts, dtype=np.float32) + + def detect_world_tag(self, gray): + """Detect world AprilTag and return its pose in camera frame.""" + results = self.apriltag_detector.detect( + gray, estimate_tag_pose=True, + camera_params=(K[0, 0], K[1, 1], K[0, 2], K[1, 2]), + tag_size=WORLD_TAG_SIZE + ) + for r in results: + if r.tag_id == WORLD_TAG_ID: + return r.pose_R, r.pose_t.flatten(), r.corners + return None, None, None + + def _average_rotations(self, rotations): + """Average multiple rotation matrices using quaternion averaging.""" + if len(rotations) == 0: + return np.eye(3) + + # Convert to quaternions + quats = [] + for R in rotations: + rot = Rotation.from_matrix(R) + q = rot.as_quat() # (x, y, z, w) + quats.append(q) + + quats = np.array(quats) + + # Ensure quaternion sign consistency (all pointing same hemisphere) + for i in range(1, len(quats)): + if np.dot(quats[i], quats[0]) < 0: + quats[i] = -quats[i] + + # Average quaternions and normalize + avg_quat = quats.mean(axis=0) + avg_quat /= np.linalg.norm(avg_quat) + + return Rotation.from_quat(avg_quat).as_matrix() + + def start_world_sampling(self): + """Start/restart world frame sampling.""" + self._world_samples_R = [] + self._world_samples_t = [] + self._world_fixed = False + self.world_pose = None + print(f"\n[World Sampling] Starting... (collecting {self._world_sample_target} frames)") + + def _finalize_world_frame(self): + """Finalize world frame from collected samples.""" + if len(self._world_samples_R) < 10: + print(f"[World Sampling] Failed: only {len(self._world_samples_R)} samples collected") + return False + + # Average rotation matrices + avg_R = self._average_rotations(self._world_samples_R) + + # Average translations + avg_t = np.mean(self._world_samples_t, axis=0) + + # Apply world frame correction if specified + if WORLD_FRAME_CORRECTION is not None: + # Parse string format or use matrix directly + if isinstance(WORLD_FRAME_CORRECTION, str): + correction_R = parse_axis_remap(WORLD_FRAME_CORRECTION) + print(f"[World Sampling] Axis remap: {WORLD_FRAME_CORRECTION}") + else: + correction_R = np.array(WORLD_FRAME_CORRECTION) + + # R_corrected transforms points from corrected world frame to camera frame + # If R_apriltag transforms from AprilTag frame to camera frame, + # and correction_R transforms from AprilTag frame to new world frame, + # then: R_new_to_cam = R_apriltag @ correction_R.T + avg_R = avg_R @ correction_R.T + print(f"[World Sampling] Applied world frame correction (det={np.linalg.det(correction_R):.1f})") + + self.world_pose = (avg_R, avg_t) + self._world_fixed = True + + print(f"[World Sampling] Complete! Averaged {len(self._world_samples_R)} samples") + print(f"[World Sampling] World frame is now FIXED. Press 'w' to resample.") + + # Switch to hardware fast ROI (headless only; preview keeps full frame) + if not self.visualize: + self._switch_to_fast_roi() + + return True + + def _switch_to_fast_roi(self): + """Switch camera to hardware fast_roi for high-speed cube tracking (headless).""" + global K + fast_roi = _cam_cfg.get('fast_roi') + if fast_roi is None: + return + cur_roi = _cam_cfg['roi'] + if (fast_roi['width'] == cur_roi['width'] + and fast_roi['height'] == cur_roi['height'] + and fast_roi['offset_x'] == cur_roi['offset_x'] + and fast_roi['offset_y'] == cur_roi['offset_y']): + return # already at fast ROI + + print(f"[Fast ROI] Switching to {fast_roi['width']}x{fast_roi['height']} " + f"@ ({fast_roi['offset_x']}, {fast_roi['offset_y']}) ...") + self.cam.MV_CC_StopGrabbing() + self.cam.MV_CC_SetIntValueEx("OffsetX", 0) + self.cam.MV_CC_SetIntValueEx("OffsetY", 0) + self.cam.MV_CC_SetIntValueEx("Width", fast_roi['width']) + self.cam.MV_CC_SetIntValueEx("Height", fast_roi['height']) + self.cam.MV_CC_SetIntValueEx("OffsetX", fast_roi['offset_x']) + self.cam.MV_CC_SetIntValueEx("OffsetY", fast_roi['offset_y']) + self.cam.MV_CC_StartGrabbing() + + # Update global K for new ROI offset + intr = _cam_cfg['intrinsics'] + K[0, 2] = intr['cx'] - fast_roi['offset_x'] + K[1, 2] = intr['cy'] - fast_roi['offset_y'] + print(f"[Fast ROI] Active. K updated: cx={K[0,2]:.1f}, cy={K[1,2]:.1f}") + + def detect_cube_pose(self, corners, ids): + """Detect cube pose via IPPE + ITERATIVE hybrid with dominant-face strategy. + + Pipeline: + 1. Dominant-face selection with hysteresis. + 2. IPPE (coplanar analytical) returns two candidate solutions. + 3. Disambiguate with locked-index hysteresis: switch only if other + solution is strictly better on BOTH reproj and geodesic distance. + 4. ITERATIVE refinement using the chosen IPPE solution as guess. + 5. Reprojection-error gate; filter reset on reacquire. + """ + if ids is None or len(ids) == 0: + self._dominant_face = None + self._lost_frames += 1 + return None, None, 0 + + # --- Count markers per face --- + face_counts = {} + for tid in ids.flatten(): + if int(tid) in self._tag_to_face: + face = self._tag_to_face[int(tid)] + face_counts[face] = face_counts.get(face, 0) + 1 + + if not face_counts: + self._dominant_face = None + self._lost_frames += 1 + return None, None, 0 + + # --- Dominant face with hysteresis --- + best_face = max(face_counts, key=face_counts.get) + if (self._prev_dominant_face is not None + and self._prev_dominant_face in face_counts + and face_counts.get(self._prev_dominant_face, 0) >= face_counts[best_face]): + best_face = self._prev_dominant_face + self._dominant_face = best_face + self._prev_dominant_face = best_face + self._active_faces = {best_face} + + valid_indices = [i for i, tid in enumerate(ids.flatten()) + if int(tid) in self._tag_to_face and self._tag_to_face[int(tid)] == best_face] + if valid_indices: + corners = [corners[i] for i in valid_indices] + ids = ids[valid_indices] + + obj_pts, img_pts = self._match_image_points(corners, ids) + if obj_pts is None or len(obj_pts) < 4: + self._lost_frames += 1 + return None, None, 0 + + # --- Step 1: IPPE returns both coplanar solutions (sol 0 has lower reproj) --- + n_sol, rvecs_ippe, tvecs_ippe, reproj_errors = cv2.solvePnPGeneric( + obj_pts, img_pts, K, DIST_COEFFS, flags=cv2.SOLVEPNP_IPPE) + + if n_sol == 0: + self._lost_frames += 1 + return None, None, 0 + + # --- Step 2: Disambiguate IPPE solutions --- + # Lock onto current pick; switch only if other is clearly better + # on BOTH reproj (<80%) AND geodesic distance (<33%). + if n_sol == 1: + best_idx = 0 + elif not self.filter_R.is_initialized or self._lost_frames > 0: + best_idx = 0 + else: + R_prev = self.filt_R + dists = [] + for i in range(n_sol): + R_i, _ = cv2.Rodrigues(rvecs_ippe[i]) + diff = cv2.Rodrigues(R_prev.T @ R_i)[0] + dists.append(np.linalg.norm(diff)) + + locked = self._ippe_locked_idx + other = 1 - locked + re_locked = reproj_errors[locked].item() + re_other = reproj_errors[other].item() + + if (re_other < re_locked * 0.8) and (dists[other] < dists[locked] * 0.33): + best_idx = other + else: + best_idx = locked + + self._ippe_locked_idx = best_idx + pick_rvec, pick_tvec = rvecs_ippe[best_idx], tvecs_ippe[best_idx] + + # --- Step 3: ITERATIVE refinement with IPPE pick as initial guess --- + success, rvec, tvec = cv2.solvePnP( + obj_pts, img_pts, K, DIST_COEFFS, + rvec=pick_rvec.copy(), tvec=pick_tvec.copy(), + useExtrinsicGuess=True, + flags=cv2.SOLVEPNP_ITERATIVE, + ) + + if not success: + self._lost_frames += 1 + return None, None, 0 + + # --- Step 4: Reprojection-error gate --- + reproj_pts, _ = cv2.projectPoints(obj_pts, rvec, tvec, K, DIST_COEFFS) + reproj_err = float(np.mean(np.linalg.norm( + img_pts.reshape(-1, 2) - reproj_pts.reshape(-1, 2), axis=1))) + self._reproj_err = reproj_err + if reproj_err > self._reproj_threshold: + self._lost_frames += 1 + return None, None, 0 + + # --- Step 5: Reset filters on reacquire so stale state doesn't contaminate --- + if self._lost_frames > 0: + self.corner_filter.reset() + self.filter_R.reset() + self.filter_t.reset() + self.prev_quat = None + + self._lost_frames = 0 + + # --- Update filters --- + R, _ = cv2.Rodrigues(rvec) + self.filt_R = self.filter_R.update(R) + self.filt_t = self.filter_t.update(tvec.flatten()) + + return self.filt_R, self.filt_t, len(ids) + + def transform_to_world_frame(self, R_cube_cam, t_cube_cam): + """Transform cube pose from camera frame to world frame.""" + if self.world_pose is None: + return None, None + R_world_cam, t_world_cam = self.world_pose + R_cam_world = R_world_cam.T + t_cam_world = -R_cam_world @ t_world_cam + R_cube_world = R_cam_world @ R_cube_cam + t_cube_world = R_cam_world @ t_cube_cam + t_cam_world + return R_cube_world, t_cube_world + + def _draw_world_axes(self, img, axis_length=0.03, line_width=4): + """Draw world coordinate axes with RGB colors for XYZ.""" + if self.world_pose is None: + return + + R_world, t_world = self.world_pose + + # Project origin and axis endpoints to image + origin = t_world.reshape(3, 1) + x_end = origin + axis_length * R_world[:, 0:1] + y_end = origin + axis_length * R_world[:, 1:2] + z_end = origin + axis_length * R_world[:, 2:3] + + # Project to 2D + origin_2d, _ = cv2.projectPoints(origin.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + x_2d, _ = cv2.projectPoints(x_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + y_2d, _ = cv2.projectPoints(y_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + z_2d, _ = cv2.projectPoints(z_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + + origin_pt = tuple(origin_2d[0, 0].astype(int)) + x_pt = tuple(x_2d[0, 0].astype(int)) + y_pt = tuple(y_2d[0, 0].astype(int)) + z_pt = tuple(z_2d[0, 0].astype(int)) + + # Draw axes: X=Red, Y=Green, Z=Blue (BGR format) + cv2.arrowedLine(img, origin_pt, x_pt, (0, 0, 255), line_width, tipLength=0.3) # X - Red + cv2.arrowedLine(img, origin_pt, y_pt, (0, 255, 0), line_width, tipLength=0.3) # Y - Green + cv2.arrowedLine(img, origin_pt, z_pt, (255, 0, 0), line_width, tipLength=0.3) # Z - Blue + + # Draw axis labels at arrow tips + cv2.putText(img, "+X", x_pt, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2) + cv2.putText(img, "+Y", y_pt, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 0), 2) + cv2.putText(img, "+Z", z_pt, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 0, 0), 2) + + # Draw origin marker + cv2.circle(img, origin_pt, 5, (255, 255, 255), -1) + + def _draw_cube_axes_in_world(self, img, R_cube_world, t_cube_world, axis_length=0.025, line_width=2): + """Draw cube coordinate axes in world frame (transformed to camera for display).""" + if self.world_pose is None: + return + + R_world_cam, t_world_cam = self.world_pose + + # self.world_pose = (R_world_cam, t_world_cam) where: + # - R_world_cam: rotation matrix whose columns are world axes in camera frame + # - t_world_cam: world origin position in camera frame + + # For a point P_world in world coordinates, its camera coordinates: + # P_cam = R_world_cam @ P_world + t_world_cam (if R_world_cam rotates world->cam) + # But actually from the code, R_world_cam columns are world axes in camera frame + # So R_world_cam @ P_world gives P_cam (without translation consideration for rotation) + + # Cube position in camera frame + t_cube_cam = R_world_cam @ t_cube_world + t_world_cam + + # Cube axes in camera frame + # R_cube_world columns are cube axes in world frame + # R_world_cam @ (cube axis in world) = cube axis in camera + R_cube_cam = R_world_cam @ R_cube_world + + # Draw axes at cube position + origin = t_cube_cam.reshape(3, 1) + x_end = origin + axis_length * R_cube_cam[:, 0:1] + y_end = origin + axis_length * R_cube_cam[:, 1:2] + z_end = origin + axis_length * R_cube_cam[:, 2:3] + + # Project to 2D + origin_2d, _ = cv2.projectPoints(origin.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + x_2d, _ = cv2.projectPoints(x_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + y_2d, _ = cv2.projectPoints(y_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + z_2d, _ = cv2.projectPoints(z_end.T, np.zeros(3), np.zeros(3), K, DIST_COEFFS) + + origin_pt = tuple(origin_2d[0, 0].astype(int)) + x_pt = tuple(x_2d[0, 0].astype(int)) + y_pt = tuple(y_2d[0, 0].astype(int)) + z_pt = tuple(z_2d[0, 0].astype(int)) + + # Draw with lighter colors to distinguish from world axes + cv2.arrowedLine(img, origin_pt, x_pt, (100, 100, 255), line_width, tipLength=0.3) # X - Light Red + cv2.arrowedLine(img, origin_pt, y_pt, (100, 255, 100), line_width, tipLength=0.3) # Y - Light Green + cv2.arrowedLine(img, origin_pt, z_pt, (255, 100, 100), line_width, tipLength=0.3) # Z - Light Blue + + def run(self): + """Main detection loop.""" + print("\nCube World Observer running...") + print(" Press 'q' to quit, 'r' to reset filters, 'w' to resample world frame\n") + + # Start world frame sampling on startup + self.start_world_sampling() - world_pose: tuple[np.ndarray, np.ndarray] | None = None # (R_tag_cam, t_tag_cam) - print(f"[cube_world_observer] publishing on tcp://*:{args.cube_port}") - try: while True: - ok, frame = cap.read() - if not ok: + _tA = time.perf_counter() + ret = self.cam.MV_CC_GetImageBuffer(self.stOutFrame, 100) + if ret != 0: continue - gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) - - # 1) World/wrist tag -> fix the tag frame in the camera. - cam_params = (K[0, 0], K[1, 1], K[0, 2], K[1, 2]) - for r in apriltag.detect( - gray, estimate_tag_pose=True, camera_params=cam_params, tag_size=WORLD_TAG_SIZE - ): - if r.tag_id == WORLD_TAG_ID: - world_pose = (np.asarray(r.pose_R), np.asarray(r.pose_t).flatten()) - - # 2) Cube ArUco -> pose in camera frame (single-marker fallback PnP). - corners, ids, _ = cv2.aruco.detectMarkers(gray, aruco_dict, parameters=aruco_params) - cube_cam = _solve_cube_pose(corners, ids, cube_cfg, K, dist) - - if world_pose is not None and cube_cam is not None: - R_cube_cam, t_cube_cam = cube_cam - R_cube_tag, t_cube_tag = cube_cam_to_tag( - world_pose[0], world_pose[1], R_cube_cam, t_cube_cam - ) - quat_xyzw = Rotation.from_matrix(R_cube_tag).as_quat() - quat_wxyz = np.array([quat_xyzw[3], *quat_xyzw[:3]]) - publisher.publish( - t_cube_tag, quat_wxyz, world_fixed=True, cube_size=cube_size - ) - time.sleep(0.005) - except KeyboardInterrupt: - pass - finally: - publisher.close() - cap.release() - return 0 + grab_dt = time.perf_counter() - _tA + # --- Buffer backlog detection & recovery --- + if grab_dt > BACKLOG_LATENCY_S: + self._grab_slow_count += 1 + if self._grab_slow_count >= BACKLOG_COUNT: + # Flush: free current frame, then drain queued frames (bounded) + self.cam.MV_CC_FreeImageBuffer(self.stOutFrame) + flushed = 0 + while flushed < BACKLOG_MAX_FLUSH: + r = self.cam.MV_CC_GetImageBuffer(self.stOutFrame, 1) + if r != 0: + break + self.cam.MV_CC_FreeImageBuffer(self.stOutFrame) + flushed += 1 + # Re-grab a fresh frame + ret = self.cam.MV_CC_GetImageBuffer(self.stOutFrame, 100) + if ret != 0: + self._grab_slow_count = 0 + continue + print(f"[FLUSH] buffer backlog detected (grab={grab_dt*1000:.1f}ms), " + f"drained {flushed} stale frames") + self._grab_slow_count = 0 + else: + self._grab_slow_count = 0 -def _solve_cube_pose(corners, ids, cube_cfg, K, dist): - """Estimate the cube pose in the camera frame from its visible ArUco markers. + self.frame_count += 1 + nH = self.stOutFrame.stFrameInfo.nHeight + nW = self.stOutFrame.stFrameInfo.nWidth + data = string_at(self.stOutFrame.pBufAddr, self.stOutFrame.stFrameInfo.nFrameLen) + bayer = np.frombuffer(data, dtype=np.uint8).reshape(nH, nW) - Simplified single-marker estimate: take the first detected face marker, recover - its pose, and offset by half the cube to the cube center along the face normal. - The reference observer fuses all visible faces with a dominant-face strategy. - """ - import cv2 - - if ids is None or len(ids) == 0: - return None - tag_size = float(cube_cfg["tag_size"]) - half = float(cube_cfg["cube_size"]) / 2.0 - obj = np.array( - [[-tag_size / 2, tag_size / 2, 0], [tag_size / 2, tag_size / 2, 0], - [tag_size / 2, -tag_size / 2, 0], [-tag_size / 2, -tag_size / 2, 0]], - dtype=np.float32, + # Demosaic to BGR (always, used both for min-channel gray and visualization) + bgr = cv2.cvtColor(bayer, cv2.COLOR_BayerGB2BGR) + + # Min-channel: white→255, any color→≈0; robust for dark ArUco on white cube + gray_min = np.minimum(np.minimum(bgr[:, :, 0], bgr[:, :, 1]), bgr[:, :, 2]) + + # Optional CLAHE contrast enhancement (full-frame, before any ROI crop) + if self._clahe is not None: + gray = self._clahe.apply(gray_min) + else: + gray = gray_min + + color = bgr if self.visualize else None + + # Detect world AprilTag (skip when world frame is already fixed) + if not self._world_fixed: + R_world, t_world, world_corners = self.detect_world_tag(gray) + world_detected = R_world is not None + # Sampling mode: collect samples + if world_detected: + self._world_samples_R.append(R_world) + self._world_samples_t.append(t_world) + if len(self._world_samples_R) >= self._world_sample_target: + self._finalize_world_frame() + else: + world_detected = True + world_corners = None + + # Detect cube ArUco tags + # In preview mode with world fixed, use software ROI crop for speed + fast_roi = _cam_cfg.get('fast_roi') + _use_sw_roi = (self.visualize and self._world_fixed + and fast_roi is not None) + if _use_sw_roi: + rx, ry = fast_roi['offset_x'], fast_roi['offset_y'] + rw, rh = fast_roi['width'], fast_roi['height'] + gray_roi = gray[ry:ry+rh, rx:rx+rw] + else: + gray_roi = gray + rx, ry = 0, 0 + + if self.aruco_detector is None: + corners, ids, _ = cv2.aruco.detectMarkers(gray_roi, self.aruco_dict, parameters=self.aruco_params) + else: + corners, ids, _ = self.aruco_detector.detectMarkers(gray_roi) + + # Map corners back to full-frame coordinates + if _use_sw_roi and ids is not None and len(ids) > 0: + corners = [c + np.array([[[rx, ry]]], dtype=c.dtype) for c in corners] + cube_quat_world = None + cube_pos_world = None + n_tags = 0 + + if ids is not None and len(ids) > 0: + mask = (ids.flatten() >= 0) & (ids.flatten() <= 23) + if mask.any(): + corners = [corners[i] for i in range(len(corners)) if mask[i]] + ids = ids[mask] + else: + corners, ids = [], None + + # Corner-level EMA filter (state cache + reset hook before PnP) + if ids is not None and len(ids) > 0: + corners, ids = self.corner_filter.update(corners, ids) + else: + self.corner_filter.update([], None) + + R_cube_cam = None + if ids is not None and len(ids) > 0: + R_cube_cam, t_cube_cam, n_tags = self.detect_cube_pose(corners, ids) + # _lost_frames managed inside detect_cube_pose on the success / fail branches + else: + # No cube markers this frame — still counts as a lost frame so the + # IPPE disambiguation reset logic sees a fresh reacquire next time. + self._lost_frames += 1 + + if R_cube_cam is not None and self.world_pose is not None: + R_cube_world, t_cube_world = self.transform_to_world_frame(R_cube_cam, t_cube_cam) + if R_cube_world is not None: + # Apply cube frame correction if specified + # This corrects the difference between ArUco board axes and MuJoCo mesh axes + if CUBE_FRAME_CORRECTION is not None: + if isinstance(CUBE_FRAME_CORRECTION, str): + cube_correction_R = parse_axis_remap(CUBE_FRAME_CORRECTION) + else: + cube_correction_R = np.array(CUBE_FRAME_CORRECTION) + # R_cube_world_corrected = R_cube_world @ cube_correction_R.T + R_cube_world = R_cube_world @ cube_correction_R.T + + # Frame: wrist-tag frame (observer-native). Consumers + # (RealHandEnv via CubeReceiver) treat this as tag-frame + # cube pose, fed directly to policy obs via the deploy-side + # override funcs in lib/real_hand_obs.py. + # Store for visualization + self._R_cube_world = R_cube_world + self._t_cube_world = t_cube_world + + # R_cube_world: transforms from cube frame TO world frame + # For MuJoCo mocap body, we need the quaternion that represents + # cube orientation in world frame (rotation from cube to world) + rot = Rotation.from_matrix(R_cube_world) + quat = rot.as_quat() # (x, y, z, w) + + # Quaternion sign continuity: q and -q represent same rotation + # Choose sign to minimize distance from previous quaternion + if self.prev_quat is not None: + if np.dot(quat, self.prev_quat) < 0: + quat = -quat + self.prev_quat = quat.copy() + + cube_quat_world = quat + cube_pos_world = t_cube_world + + # Publish via ZMQ. + # Frame: wrist-tag frame (observer-native, from transform_to_world_frame). + # Consumers (RealHandEnv via CubeReceiver) treat this as tag-frame + # cube pose, fed directly to policy obs via the deploy-side override + # funcs in lib/real_hand_obs.py — no mjworld round-trip. + # Quaternion order: (x, y, z, w) — scipy convention. CubeReceiver + # converts to MuJoCo (w, x, y, z) on receive (see zmq_bridge.py). + if cube_quat_world is not None: + q_xyzw = cube_quat_world # scipy xyzw, as wuji computed it + quat_wxyz = np.array([q_xyzw[3], q_xyzw[0], q_xyzw[1], q_xyzw[2]]) + self.publisher.publish(cube_pos_world, quat_wxyz, world_fixed=self._world_fixed, cube_size=float(self._cube_size)) + + # Visualization + if self.visualize and color is not None: + # Draw world frame axes (RGB = XYZ) + if self._world_fixed and self.world_pose is not None: + self._draw_world_axes(color) + + if world_corners is not None: + cv2.polylines(color, [world_corners.astype(int)], True, (255, 0, 255), 3) + + # Draw detection ROI when active + if _use_sw_roi: + cv2.rectangle(color, (rx, ry), (rx + rw, ry + rh), (0, 200, 200), 2) + + if ids is not None and len(ids) > 0: + cv2.aruco.drawDetectedMarkers(color, corners, ids) + + if n_tags > 0 and self._R_cube_world is not None: + # Draw cube axes in world frame (lighter colors) + self._draw_cube_axes_in_world(color, self._R_cube_world, self._t_cube_world) + + # World frame status display + if not self._world_fixed: + # Sampling mode: show progress bar + n_samples = len(self._world_samples_R) + progress = n_samples / self._world_sample_target + bar_width = 200 + bar_height = 20 + cv2.rectangle(color, (10, 10), (10 + bar_width, 10 + bar_height), (50, 50, 50), -1) + cv2.rectangle(color, (10, 10), (10 + int(bar_width * progress), 10 + bar_height), (0, 255, 255), -1) + cv2.rectangle(color, (10, 10), (10 + bar_width, 10 + bar_height), (255, 255, 255), 1) + cv2.putText(color, f"World Sampling: {n_samples}/{self._world_sample_target}", + (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 255), 2) + else: + # Fixed mode: show status + cv2.putText(color, "WORLD FIXED", (10, 30), + cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2) + if world_detected: + cv2.putText(color, "(tag visible)", (180, 30), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (100, 255, 100), 1) + + cv2.putText(color, f"Tags: {n_tags}", (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) + + # Display dominant face with color + if self._dominant_face and self._dominant_face in FACE_COLORS: + face_name = self._dominant_face + color_name, face_bgr = FACE_COLORS[face_name] + # Draw color block + text + cv2.rectangle(color, (10, 75), (40, 105), face_bgr, -1) + cv2.rectangle(color, (10, 75), (40, 105), (255, 255, 255), 1) + cv2.putText(color, f"{face_name} ({color_name})", (50, 98), + cv2.FONT_HERSHEY_SIMPLEX, 0.7, face_bgr, 2) + + if cube_quat_world is not None: + rpy = Rotation.from_quat(cube_quat_world).as_euler('xyz', degrees=True) + cv2.putText(color, f"RPY: ({rpy[0]:+.1f}, {rpy[1]:+.1f}, {rpy[2]:+.1f})", (10, 130), + cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2) + + # FPS overlay (top-right) + fps_color = (0, 255, 0) if self._display_fps >= 20 else (0, 165, 255) + fps_text = f"FPS: {self._display_fps:.1f}" + (tw, th), _ = cv2.getTextSize(fps_text, cv2.FONT_HERSHEY_SIMPLEX, 0.8, 2) + cv2.putText(color, fps_text, (color.shape[1] - tw - 10, th + 10), + cv2.FONT_HERSHEY_SIMPLEX, 0.8, fps_color, 2) + + # Key hints + cv2.putText(color, "q:quit r:reset w:resample world s:select ROI", (10, 755), + cv2.FONT_HERSHEY_SIMPLEX, 0.5, (180, 180, 180), 1) + + cv2.imshow('Cube World Observer', cv2.resize(color, (960, 768))) + + self.cam.MV_CC_FreeImageBuffer(self.stOutFrame) + + # Print status periodically + now = time.time() + if now - self.last_print_time > 2.0: + elapsed = now - self.last_print_time if self.last_print_time > 0 else 1.0 + fps = (self.frame_count - self.last_frame_count) / elapsed + self._display_fps = fps + self.last_frame_count = self.frame_count + if not self._world_fixed: + n_samples = len(self._world_samples_R) + print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World Sampling: {n_samples}/{self._world_sample_target}") + elif cube_quat_world is not None: + rpy = Rotation.from_quat(cube_quat_world).as_euler('xyz', degrees=True) + # cube_quat_world is (x,y,z,w) from scipy + qx, qy, qz, qw = cube_quat_world + px, py, pz = cube_pos_world + print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Tags: {n_tags} | " + f"Pos: ({px:+.4f}, {py:+.4f}, {pz:+.4f}) | " + f"Quat(wxyz): ({qw:+.4f}, {qx:+.4f}, {qy:+.4f}, {qz:+.4f}) | " + f"Quat(xyzw): ({qx:+.4f}, {qy:+.4f}, {qz:+.4f}, {qw:+.4f}) | " + f"RPY: ({rpy[0]:+6.1f}, {rpy[1]:+6.1f}, {rpy[2]:+6.1f})") + else: + print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Cube: NOT DETECTED") + self.last_print_time = now + + if self.visualize: + key = cv2.pollKey() & 0xFF + if key == ord('q'): + break + elif key == ord('r'): + # Reset cube filters only (not world frame) + self.filter_R.reset() + self.filter_t.reset() + self.prev_quat = None + print("Cube filters reset!") + elif key == ord('w'): + # Resample world frame + self.start_world_sampling() + # Also reset cube filters since world frame changed + self.filter_R.reset() + self.filter_t.reset() + self.prev_quat = None + elif key == ord('s'): + self._select_and_save_fast_roi(bgr) + + def _select_and_save_fast_roi(self, current_frame): + """Open selectROI dialog, save selection to config/camera.yaml and apply live. + + Draws a rectangle on the full-resolution frame. Coordinates are in full + sensor coordinates (offset_x/offset_y from 0,0). Persists to camera.yaml. + """ + import os + + if not isinstance(current_frame, np.ndarray) or current_frame.ndim != 3: + print(f"[ROI] ERROR: expected BGR image, got {type(current_frame).__name__}") + return + + print("\n[ROI] Drag a rectangle on the frame. ENTER/SPACE to confirm, C to cancel.") + # Use a resized preview for selection (same size as main imshow) + display_size = (960, 768) + display = cv2.resize(current_frame, display_size) + scale_x = current_frame.shape[1] / display_size[0] + scale_y = current_frame.shape[0] / display_size[1] + + x, y, w, h = cv2.selectROI( + "Select ROI (ENTER/SPACE=confirm, C=cancel)", display, + showCrosshair=True, fromCenter=False, + ) + cv2.destroyWindow("Select ROI (ENTER/SPACE=confirm, C=cancel)") + + if w == 0 or h == 0: + print("[ROI] Selection cancelled.") + return + + # Scale back to full resolution + offset_x = int(round(x * scale_x)) + offset_y = int(round(y * scale_y)) + width = int(round(w * scale_x)) + height = int(round(h * scale_y)) + + # Some Hikvision cameras require width/height to be multiples of 4 or 8 + width = (width // 8) * 8 + height = (height // 8) * 8 + offset_x = (offset_x // 8) * 8 + offset_y = (offset_y // 8) * 8 + if width < 64 or height < 64: + print(f"[ROI] Selection too small ({width}x{height}), ignored.") + return + + print(f"[ROI] New fast_roi: offset=({offset_x},{offset_y}) size={width}x{height}") + + # Persist to config/camera.yaml via yaml load → modify → atomic write + yaml_path = os.path.join(ROOT_DIR, "config", "camera.yaml") + try: + with open(yaml_path, "r") as f: + cfg = yaml.safe_load(f) + cfg["fast_roi"] = { + "offset_x": offset_x, + "offset_y": offset_y, + "width": width, + "height": height, + } + tmp_path = yaml_path + ".tmp" + with open(tmp_path, "w") as f: + yaml.safe_dump(cfg, f, default_flow_style=False, sort_keys=False) + os.replace(tmp_path, yaml_path) + print(f"[ROI] Saved to {yaml_path}") + except Exception as exc: + print(f"[ROI] Failed to save: {exc}") + # Clean up stray tmp file if any + try: + os.remove(yaml_path + ".tmp") + except OSError: + pass + return + + # Apply live: update in-memory config so software ROI uses new values + _cam_cfg["fast_roi"] = { + "offset_x": offset_x, + "offset_y": offset_y, + "width": width, + "height": height, + } + print("[ROI] Applied. Next frames will use the new fast_roi.") + + def cleanup(self): + """Release resources.""" + if self.visualize: + cv2.destroyAllWindows() + self.cam.MV_CC_StopGrabbing() + self.cam.MV_CC_CloseDevice() + self.cam.MV_CC_DestroyHandle() + MvCamera.MV_CC_Finalize() + self.publisher.close() + print("Cleanup done.") + + +def main(): + import argparse + + # Load config from file first + cfg = load_observer_config() + + parser = argparse.ArgumentParser(description="Cube World Observer") + parser.add_argument('--preview', action='store_true', help="Show preview window") + parser.add_argument('--port', type=int, default=None, help="ZMQ port (override config)") + parser.add_argument('--process-noise', type=float, default=None, help="SO3 Kalman Q (override config)") + parser.add_argument('--measurement-noise', type=float, default=None, help="SO3 Kalman R (override config)") + parser.add_argument('--alpha', type=float, default=None, help="Position LP alpha (override config)") + parser.add_argument('--world-samples', type=int, default=WORLD_SAMPLE_FRAMES, + help=f"Number of frames to sample for world frame (default: {WORLD_SAMPLE_FRAMES})") + parser.add_argument('--cube', type=str, default=None, + help="Cube tags config: a size suffix (e.g. '36', '40_5') " + "resolving to config/cube_tags.json, or a literal " + "path. Default: config/cube_tags.json (54mm).") + args = parser.parse_args() + cube_config_path = resolve_cube_config_path(args.cube) + + # Use config values, CLI args override + # ZMQ port from unified config_loader (control.yaml) + port = args.port if args.port is not None else DEFAULT_CUBE_PORT + process_noise = args.process_noise if args.process_noise is not None else cfg['rotation_filter']['process_noise'] + measurement_noise = args.measurement_noise if args.measurement_noise is not None else cfg['rotation_filter']['measurement_noise'] + alpha = args.alpha if args.alpha is not None else cfg['position_filter']['alpha'] + + print(f"Filter params: process_noise={process_noise}, measurement_noise={measurement_noise}, alpha={alpha}") + print(f"World frame sampling: {args.world_samples} frames") + + observer = CubeWorldObserver( + visualize=args.preview, + zmq_port=port, + process_noise=process_noise, + measurement_noise=measurement_noise, + alpha=alpha, + world_sample_frames=args.world_samples, + cube_config_path=cube_config_path, ) - ok, rvec, tvec = cv2.solvePnP(obj, corners[0][0], K, dist, flags=cv2.SOLVEPNP_IPPE_SQUARE) - if not ok: - return None - R, _ = cv2.Rodrigues(rvec) - t = tvec.flatten() + R @ np.array([0.0, 0.0, -half]) # face -> cube center - return R, t + try: + observer.run() + except KeyboardInterrupt: + print("\nInterrupted.") + finally: + observer.cleanup() if __name__ == "__main__": - raise SystemExit(main()) + main() diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py b/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py new file mode 100644 index 00000000..a33ab864 --- /dev/null +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py @@ -0,0 +1,169 @@ +#!/usr/bin/env python3 +"""Wuji-hand hardware utilities — the first sim2real step (Genesis-native port). + +Single entry-point for low-level hand operations, mirroring wuji-mjlab's +``deploy/reorient/scripts/hand_utils.py``. Two subcommands: + + check READ-ONLY connection + encoder sanity check. Does not write any + targets; the hand stays where it is. Run this FIRST. + home Ramp all 20 joints to the reorient home grasp pose via a 3s ease-in-out + (``WujiHandDriver.home``). Enables joints on entry, disables on exit, + and reports tracking error. + +Usage: + python -m genelab_wuji.deploy.scripts.hand_utils check + python -m genelab_wuji.deploy.scripts.hand_utils home + +The home pose is ``REORIENT_JOINT_POS`` (via ``config.default_joint_pos``) — the +same grasp keyframe the policy and ``MockHandDriver`` start from, so after ``home`` +the real hand matches the sim reset state. Needs the optional ``wujihandpy`` hand +SDK; it is imported lazily so this module stays importable without hardware. +""" + +from __future__ import annotations + +import argparse +import sys + +import numpy as np + +from genelab_wuji.deploy.config import JOINT_NAMES_20, N_JOINTS, default_joint_pos + + +def _print_finger_major(label: str, qpos_rad: np.ndarray) -> None: + """Print a flat (20,) qpos as 5 fingers x 4 joints, in degrees.""" + print(label) + for i in range(5): + finger_deg = np.rad2deg(qpos_rad[4 * i : 4 * (i + 1)]) + print(f" finger{i + 1}: " + ", ".join(f"{v:+6.1f}°" for v in finger_deg)) + + +def cmd_home(_args: argparse.Namespace) -> int: + """Ramp the real hand to the home grasp pose over a 3s ease-in-out. + + Safety: + - ``WujiHandDriver`` context manager: enable joints on enter, disable on exit. + - ``home()`` does a 50 Hz smoothstep ramp from the current pose (no snap). + - Reads back the actual position and reports max / RMS error vs target. + + After this the hand is at ``default_joint_pos()`` — the pose the sim resets to. + """ + from genelab_wuji.deploy.hand_driver import WujiHandDriver + + home_qpos = default_joint_pos() + print("=" * 60) + print("Wuji hand HOME — 3s smooth ramp to the reorient grasp pose") + print("=" * 60) + _print_finger_major("\nTarget pose (default_joint_pos, degrees, finger-major):", home_qpos) + + with WujiHandDriver() as drv: + print("\nReading current pose...") + current = drv.read_encoders() + max_diff = float(np.abs(current - home_qpos).max()) + print(f" Max diff from target: {max_diff:.3f} rad ({np.rad2deg(max_diff):.1f}°)") + + print("\nRamping to home pose over 3s...") + drv.home(duration_s=3.0) + + print("\nReading actual after ramp...") + actual = drv.read_encoders() + err = np.abs(actual - home_qpos) + max_err = float(err.max()) + rms_err = float(np.sqrt(np.mean((actual - home_qpos) ** 2))) + print(f" Max err: {max_err:.3f} rad ({np.rad2deg(max_err):.2f}°)") + print(f" RMS err: {rms_err:.3f} rad ({np.rad2deg(rms_err):.2f}°)") + if max_err < np.deg2rad(2): + print(" ✓ Within 2° — home reached") + elif max_err < np.deg2rad(5): + print(" ⚠ Within 5° — hand may not be tracking perfectly") + else: + print(" ✗ Over 5° error — investigate") + + print("\n✓ hand_utils home complete; joints disabled.") + return 0 + + +def cmd_check(_args: argparse.Namespace) -> int: + """READ-ONLY connection + encoder sanity check. + + Connects to ``wujihandpy.Hand()``, reads joint limits + encoders, prints the + current pose against the expected joint order, and compares to the home pose. + Does NOT write any targets; the hand stays where it is. This is the safe first + step before any closed-loop deployment. + """ + try: + import wujihandpy + except ImportError: + print("ERROR: wujihandpy not installed (the optional hardware SDK).") + return 1 + + print("=" * 60) + print("Wuji hand connection check (READ-ONLY)") + print("=" * 60) + + print("\n[1/4] Connecting to wujihandpy.Hand()...") + try: + hand = wujihandpy.Hand() + except Exception as e: # noqa: BLE001 — surface any hardware error to the operator + print(f" FAIL: {e}") + print(" Check: USB connected? udev rules? hand powered?") + return 1 + print(" ✓ connected") + + print("\n[2/4] Reading joint limits (no enable / no write)...") + try: + upper = hand.read_joint_upper_limit() # (5, 4) + lower = hand.read_joint_lower_limit() + except Exception as e: # noqa: BLE001 + print(f" FAIL reading limits: {e}") + return 1 + print(f" shape: upper={upper.shape}, lower={lower.shape}") + print(f" upper range: [{upper.min():.2f}, {upper.max():.2f}] rad") + print(f" lower range: [{lower.min():.2f}, {lower.max():.2f}] rad") + + print("\n[3/4] Reading encoder actual position...") + try: + actual = hand.read_joint_actual_position() # (5, 4) + except Exception as e: # noqa: BLE001 + print(f" FAIL: {e}") + return 1 + flat = np.asarray(actual, dtype=float).flatten() + print(f" shape: {actual.shape} → flat ({flat.shape[0]},)") + print(f" range: [{flat.min():.3f}, {flat.max():.3f}] rad") + _print_finger_major(" values (degrees, finger-major):", flat) + + print("\n[4/4] Validating joint order + home offset...") + print(f" Expected joint order ({N_JOINTS} joints):") + for i, name in enumerate(JOINT_NAMES_20): + print(f" [{i:2d}] {name}: {np.rad2deg(flat[i]):+6.1f}°") + + expected_home = default_joint_pos() + diff = flat - expected_home + print("\n Current vs home pose (default_joint_pos):") + print( + f" Max abs diff: {np.abs(diff).max():.3f} rad " + f"({np.rad2deg(np.abs(diff).max()):.1f}°)" + ) + print(f" RMS diff: {np.sqrt(np.mean(diff**2)):.3f} rad") + print(" (A large diff just means the hand isn't at home yet — not an error.)") + + print("\n" + "=" * 60) + print("✓ All read operations succeeded. Hand bridge healthy.") + print("✓ Next: ramp to home with `python -m genelab_wuji.deploy.scripts.hand_utils home`") + print("=" * 60) + return 0 + + +def main(argv: list[str] | None = None) -> int: + parser = argparse.ArgumentParser(description="Wuji hand hardware utilities (home / check).") + sub = parser.add_subparsers(dest="cmd", required=True) + p_home = sub.add_parser("home", help="Ramp all 20 joints to the home grasp pose (writes targets).") + p_home.set_defaults(func=cmd_home) + p_check = sub.add_parser("check", help="READ-ONLY connection + encoder sanity check.") + p_check.set_defaults(func=cmd_check) + args = parser.parse_args(argv) + return int(args.func(args)) + + +if __name__ == "__main__": + sys.exit(main()) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py index 11334a66..e97d0761 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py @@ -3,19 +3,28 @@ Wires the tested deploy core into a closed loop: - cube/goal (ZMQ from cube_world_observer/toreal_viewer) + cube/goal (ZMQ from cube_world_observer / toreal_viewer) -> DeployObsBuilder -> ONNX policy -> EMA action -> hand driver + -> success monitor (geodesic(cube, goal) < threshold, held) -> resample + +Goal modes (``--goal-mode``): + external Goal comes from the goal ZMQ feed (toreal_viewer mocap drag). [default] + fixed Hold a single goal quat (``--goal-quat w,x,y,z``). + random Uniform-SO(3) goal; resampled each time the cube achieves it. Defaults to ``--mock`` (no hardware, no ZMQ required) so the loop can be smoke-run anywhere; pass ``--real`` to drive the hand via ``wujihandpy``. The control logic is covered headlessly by ``tests/test_examples_wuji_deploy_controller.py``. Usage: - # Smoke run without hardware (zeros cube/goal -> hand holds the grasp): - python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --steps 100 + # Smoke run without hardware (mock hand, random goals): + python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --goal-mode random --steps 200 + + # Real hand, random goals resampled on success: + python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real --goal-mode random - # Real hand + live observer feed: - python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real + # Real hand, goal driven by toreal_viewer over ZMQ: + python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real --goal-mode external """ from __future__ import annotations @@ -23,6 +32,8 @@ import argparse import time +import numpy as np + from genelab_wuji.deploy.config import default_joint_pos from genelab_wuji.deploy.controller import DeployController from genelab_wuji.deploy.hand_driver import HandDriverBase, MockHandDriver @@ -35,6 +46,49 @@ ) +def _quat_geodesic(q1_wxyz: np.ndarray, q2_wxyz: np.ndarray) -> float: + """Angle (rad) between two unit wxyz quaternions.""" + dot = abs(float(np.dot(q1_wxyz, q2_wxyz))) + return 2.0 * float(np.arccos(min(1.0, max(-1.0, dot)))) + + +def _random_unit_quat_wxyz() -> np.ndarray: + """Uniform random rotation over SO(3) (scipy; xyzw -> wxyz).""" + from scipy.spatial.transform import Rotation + + q_xyzw = Rotation.random().as_quat() + return np.array([q_xyzw[3], q_xyzw[0], q_xyzw[1], q_xyzw[2]], dtype=float) + + +def _parse_quat_wxyz(s: str) -> np.ndarray: + """argparse type: 'w,x,y,z' -> normalized wxyz quaternion.""" + parts = [float(x) for x in s.split(",")] + if len(parts) != 4: + raise argparse.ArgumentTypeError(f"--goal-quat expects 4 floats w,x,y,z, got {s!r}") + q = np.array(parts, dtype=float) + n = float(np.linalg.norm(q)) + if n < 1e-9: + raise argparse.ArgumentTypeError("--goal-quat has zero norm") + return q / n + + +class _GoalStub: + """Local goal source (drop-in for ``GoalReceiver``): ``latest()`` returns the + current target quat; ``set`` swaps it (used by fixed / random goal modes).""" + + def __init__(self, quat_wxyz: np.ndarray) -> None: + self._quat = np.asarray(quat_wxyz, dtype=float) + + def set(self, quat_wxyz: np.ndarray) -> None: + self._quat = np.asarray(quat_wxyz, dtype=float) + + def latest(self) -> np.ndarray: + return self._quat.copy() + + def close(self) -> None: # parity with GoalReceiver for the cleanup path + pass + + def _make_driver(real: bool) -> HandDriverBase: if not real: return MockHandDriver() @@ -45,28 +99,52 @@ def _make_driver(real: bool) -> HandDriverBase: return driver +def _make_goal_source(args: argparse.Namespace): + """Return the goal source for the chosen ``--goal-mode``.""" + if args.goal_mode == "fixed": + if args.goal_quat is None: + raise SystemExit("--goal-mode fixed requires --goal-quat w,x,y,z") + return _GoalStub(args.goal_quat) + if args.goal_mode == "random": + return _GoalStub(_random_unit_quat_wxyz()) + # external + if args.no_zmq: + return GoalReceiver(connect=False) + return GoalReceiver(port=args.goal_port) + + def main() -> int: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--ckpt", required=True, help="exported policy.onnx") parser.add_argument("--metadata", default=None, help="policy metadata.json (auto-detected)") parser.add_argument("--real", action="store_true", help="drive the real hand (wujihandpy)") parser.add_argument("--mock", action="store_true", help="use the mock hand (default)") - parser.add_argument("--no-zmq", action="store_true", help="skip ZMQ; feed zeros cube/identity goal") + parser.add_argument("--no-zmq", action="store_true", help="skip ZMQ; zeros cube / stub goal") parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) parser.add_argument("--goal-port", type=int, default=DEFAULT_GOAL_PORT) + parser.add_argument( + "--goal-mode", choices=("external", "fixed", "random"), default="external" + ) + parser.add_argument( + "--goal-quat", type=_parse_quat_wxyz, default=None, help="fixed goal 'w,x,y,z'" + ) + parser.add_argument( + "--success-threshold", type=float, default=0.2, help="success geodesic err (rad)" + ) + parser.add_argument( + "--success-hold-sec", type=float, default=0.5, help="hold time under threshold for success" + ) parser.add_argument("--control-dt", type=float, default=0.05, help="policy step period (s)") - parser.add_argument("--steps", type=int, default=0, help="stop after N steps (0 = run forever)") + parser.add_argument("--steps", type=int, default=0, help="stop after N steps (0 = forever)") args = parser.parse_args() + if args.control_dt <= 0: + raise SystemExit("--control-dt must be > 0 (used for joint velocity + success timing)") + policy = ONNXPolicy(args.ckpt, metadata_path=args.metadata) driver = _make_driver(real=args.real) - - if args.no_zmq: - cube = CubeReceiver(connect=False) - goal = GoalReceiver(connect=False) - else: - cube = CubeReceiver(port=args.cube_port) - goal = GoalReceiver(port=args.goal_port) + cube = CubeReceiver(connect=False) if args.no_zmq else CubeReceiver(port=args.cube_port) + goal = _make_goal_source(args) controller = DeployController( policy=policy, @@ -78,25 +156,46 @@ def main() -> int: ) controller.reset() - print(f"[play_real] obs_dim={policy.input_dim} action_dim={policy.action_dim} " - f"driver={type(driver).__name__}") + hold_steps = max(1, round(args.success_hold_sec / args.control_dt)) + print( + f"[play_real] obs_dim={policy.input_dim} action_dim={policy.action_dim} " + f"driver={type(driver).__name__} goal_mode={args.goal_mode} " + f"success<{args.success_threshold:.2f}rad held {hold_steps} steps" + ) + step = 0 + hold = 0 + successes = 0 try: while args.steps == 0 or step < args.steps: t0 = time.time() controller.step() step += 1 + + # Success monitor: geodesic(cube, goal) below threshold, sustained. + cube_quat = cube.latest()[1] + err = _quat_geodesic(cube_quat, goal.latest()) + hold = hold + 1 if err < args.success_threshold else 0 + if hold >= hold_steps: + successes += 1 + print(f"[play_real] ✓ success #{successes} (err {np.degrees(err):.1f}°)") + hold = 0 + if args.goal_mode == "random" and isinstance(goal, _GoalStub): + goal.set(_random_unit_quat_wxyz()) + print("[play_real] new random goal") + sleep = args.control_dt - (time.time() - t0) if sleep > 0: time.sleep(sleep) except KeyboardInterrupt: pass finally: - if args.real and hasattr(driver, "__exit__"): - driver.__exit__(None, None, None) + driver_exit = getattr(driver, "__exit__", None) + if args.real and driver_exit is not None: + driver_exit(None, None, None) cube.close() goal.close() - print(f"[play_real] ran {step} control steps") + print(f"[play_real] ran {step} control steps, {successes} successes") return 0 diff --git a/examples/wuji/src/genelab_wuji/reorient/asset.py b/examples/wuji/src/genelab_wuji/reorient/asset.py index 1c1dd1bc..375a44ae 100644 --- a/examples/wuji/src/genelab_wuji/reorient/asset.py +++ b/examples/wuji/src/genelab_wuji/reorient/asset.py @@ -11,11 +11,14 @@ import xml.etree.ElementTree as ET from functools import lru_cache from pathlib import Path -from typing import Final from genelab.actuator import ImplicitPDActuatorCfg +from genelab.asset_zoo.wuji_hand import ( + WUJI_CUBE_SPEC as _CUBE, + WUJI_HAND_REORIENT_SPEC as _MESHES, +) from genelab.entity import ArticulationCfg -from genelab.utils.download import AssetSpec, fetch_asset +from genelab.utils.download import fetch_asset from genelab_wuji.reorient.constants import ( REORIENT_JOINT_POS, @@ -23,26 +26,12 @@ REORIENT_ROBOT_ROOT_ROT, ) +# Reorient meshes (``_MESHES``) and the viewer cube (``_CUBE``) are declared in the central +# asset zoo (genelab.asset_zoo.wuji_hand) so ``genelab asset list``/``download`` discover +# them; imported here as the example's handles. _PACKAGE_ROOT = Path(__file__).resolve().parent _MJCF_TEMPLATE = _PACKAGE_ROOT / "mjcf" / "right_mjlab.xml" -_MESHES: Final = AssetSpec( - name="wuji_hand_reorient", - url="https://raw.githubusercontent.com/KraHsu/genelab-assets/main/wuji_hand_reorient/wuji_hand_reorient.tar.gz", - md5="68bed6d8f0fe4adc81ac8aa7f62cdfbe", - filename="wuji_hand_reorient.tar.gz", - archive_member="wuji_hand_reorient/meshes/right/right_palm_link.STL", -) - -# 54 mm UV-textured cube (visible faces) for the viewer: the held object and the goal marker. -_CUBE: Final = AssetSpec( - name="wuji_cube", - url="https://raw.githubusercontent.com/KraHsu/genelab-assets/main/wuji_cube/wuji_cube.tar.gz", - md5="f77eff83a9ca8ade2966d5202b5d337d", - filename="wuji_cube.tar.gz", - archive_member="wuji_cube/dex_cube.obj", -) - def resolve_cube_mesh() -> str: """Download (once) and return the path to the 54 mm textured cube OBJ.""" diff --git a/examples/wuji/src/genelab_wuji/wuji_hand/assets.py b/examples/wuji/src/genelab_wuji/wuji_hand/assets.py index 2b2f19fa..4622096f 100644 --- a/examples/wuji/src/genelab_wuji/wuji_hand/assets.py +++ b/examples/wuji/src/genelab_wuji/wuji_hand/assets.py @@ -11,7 +11,8 @@ import numpy as np from numpy.typing import NDArray -from genelab.utils.download import AssetSpec, fetch_asset +from genelab.asset_zoo.wuji_hand import WUJI_HAND_SPEC as WUJI_HAND_DESCRIPTION +from genelab.utils.download import fetch_asset type FloatArray = NDArray[np.float32] @@ -20,16 +21,10 @@ DEFAULT_TRAJECTORY = PACKAGE_ROOT / "data" / "wave.npy" SIDES = ("left", "right") -# Full left+right hand description (MJCF + ~5 MB of STL meshes) hosted as a .tar.gz in the -# genelab-assets repo, so the source tree stays lean. ``archive_member`` points at the -# right-hand MJCF; the description directory is its grandparent in the extracted tree. -WUJI_HAND_DESCRIPTION = AssetSpec( - name="wuji_hand", - url="https://raw.githubusercontent.com/KraHsu/genelab-assets/main/wuji_hand/wuji_hand.tar.gz", - md5="46827dfc417773d469a75347a072e82e", - filename="wuji_hand.tar.gz", - archive_member="wuji_hand/description/mjcf/right.xml", -) +# Hand description spec (``wuji_hand``: MJCF + ~5 MB STL meshes) lives in the central asset +# zoo (genelab.asset_zoo.wuji_hand) so the asset CLI discovers it; aliased here for the +# example's existing call sites. ``archive_member`` points at the right-hand MJCF; the +# description directory is its grandparent in the extracted tree. def fetch_description_dir() -> Path: diff --git a/src/genelab/asset_zoo/wuji_hand.py b/src/genelab/asset_zoo/wuji_hand.py index 7cb66a40..5d310db9 100644 --- a/src/genelab/asset_zoo/wuji_hand.py +++ b/src/genelab/asset_zoo/wuji_hand.py @@ -1,4 +1,4 @@ -"""WUJI Hand asset zoo entry — 20-DoF dexterous hand (left + right). +"""WUJI asset zoo entries — 20-DoF dexterous hand (left + right) + reorient assets. Five fingers (``finger1``–``finger5``), each with four joints (``joint1``–``joint4``), for 20 actuated DoF per hand. The canonical hardware description is mirrored from @@ -9,6 +9,12 @@ A single implicit-PD actuator group spans all 20 joints with uniform nominal gains — soft position control sized to the hand's small fingers. Downstream manipulation tasks (e.g. in-hand reorientation) override these with hardware-calibrated per-joint gains. + +This module is the single source of truth for every WUJI ``AssetSpec`` — the base hand +plus the reorient-task meshes and viewer cube. They are declared at module level so the +asset zoo discovers them (``genelab asset list`` / ``asset download`` walk this package +for module-level ``AssetSpec`` instances); the bundled Wuji example imports them rather +than redeclaring its own. """ from typing import Final @@ -23,8 +29,37 @@ ) _MD5: Final = "46827dfc417773d469a75347a072e82e" +WUJI_HAND_SPEC: Final = AssetSpec( + name="wuji_hand", + url=_URL, + md5=_MD5, + filename="wuji_hand.tar.gz", + archive_member="wuji_hand/description/mjcf/right.xml", +) +"""20-DoF dexterous hand description (MJCF + meshes), left + right.""" + +WUJI_HAND_REORIENT_SPEC: Final = AssetSpec( + name="wuji_hand_reorient", + url="https://raw.githubusercontent.com/KraHsu/genelab-assets/main/wuji_hand_reorient/wuji_hand_reorient.tar.gz", + md5="68bed6d8f0fe4adc81ac8aa7f62cdfbe", + filename="wuji_hand_reorient.tar.gz", + archive_member="wuji_hand_reorient/meshes/right/right_palm_link.STL", +) +"""mjlab-tuned reorient right-hand meshes (~4 MB), paired with the in-tree ``right_mjlab.xml``.""" + +WUJI_CUBE_SPEC: Final = AssetSpec( + name="wuji_cube", + url="https://raw.githubusercontent.com/KraHsu/genelab-assets/main/wuji_cube/wuji_cube.tar.gz", + md5="f77eff83a9ca8ade2966d5202b5d337d", + filename="wuji_cube.tar.gz", + archive_member="wuji_cube/dex_cube.obj", +) +"""54 mm UV-textured cube (held object + goal marker) for the reorient viewer.""" + def _spec(side: str) -> AssetSpec: + if side == "right": + return WUJI_HAND_SPEC return AssetSpec( name="wuji_hand", url=_URL, diff --git a/src/genelab/scene/interactive_scene.py b/src/genelab/scene/interactive_scene.py index 06490885..db64a42b 100644 --- a/src/genelab/scene/interactive_scene.py +++ b/src/genelab/scene/interactive_scene.py @@ -774,6 +774,30 @@ def step(self, *, update_visualizer: bool = True) -> None: return raise + def refresh_visualizer(self) -> None: + """Refresh the viewer from the current kinematic state — no physics step. + + For kinematic viewers (deploy real2sim / calibration) that set entity state + each frame and want to render it exactly as set: this runs forward kinematics + + a viewer update but **no time integration**, so gravity / contacts never move + the teleported bodies (the Genesis analogue of MuJoCo's ``mj_forward``). A no-op + once the viewer is closed; sets :py:attr:`viewer_closed` if the user closes it. + """ + if self._viewer_closed: + return + vis = getattr(self._gs_scene, "visualizer", None) + if vis is None: + return + exc_cls = self._gs_exception_cls + try: + vis.update_visual_states() + vis.update() + except Exception as exc: + if exc_cls is not None and isinstance(exc, exc_cls) and str(exc) == "Viewer closed.": + self._viewer_closed = True + return + raise + def refresh_state(self) -> None: for art in self.articulations.values(): art.refresh() diff --git a/tests/test_examples_wuji_deploy_hand_driver.py b/tests/test_examples_wuji_deploy_hand_driver.py index 84c8128f..ea049d57 100644 --- a/tests/test_examples_wuji_deploy_hand_driver.py +++ b/tests/test_examples_wuji_deploy_hand_driver.py @@ -8,7 +8,8 @@ import numpy as np -from genelab_wuji.deploy.hand_driver import MockHandDriver +from genelab_wuji.deploy.config import default_joint_pos +from genelab_wuji.deploy.hand_driver import MockHandDriver, _home_ramp # pyright: ignore[reportPrivateUsage] from genelab_wuji.reorient.constants import REORIENT_JOINT_POS @@ -30,3 +31,35 @@ def test_mock_driver_home_sets_grasp_keyframe() -> None: driver.home() expected = np.array(list(REORIENT_JOINT_POS.values())) assert np.allclose(driver.read_encoders(), expected) + + +def test_mock_driver_home_accepts_duration_arg() -> None: + # The 3s ramp is a real-driver concern; the mock ignores duration_s but must + # accept it so the shared HandDriverBase / DeployController.reset call works. + driver = MockHandDriver() + driver.write_target(np.zeros(20)) + driver.home(duration_s=3.0) + assert np.allclose(driver.read_encoders(), default_joint_pos()) + + +def test_home_ramp_is_monotone_smoothstep_ending_at_target() -> None: + current = np.zeros(20) + target = default_joint_pos() + ramp = _home_ramp(current, target, steps=150) # 3s @ 50 Hz + assert ramp.shape == (150, 20) + # Smoothstep: starts eased-in near current, ends exactly at target. + assert np.allclose(ramp[-1], target) + assert not np.allclose(ramp[0], target) + # Each joint moves monotonically from current toward target (no overshoot). + deltas = np.diff(ramp, axis=0) + signs = np.sign(target - current) + assert np.all(deltas * signs[None, :] >= -1e-9) + assert ramp.max() <= max(target.max(), current.max()) + 1e-9 + assert ramp.min() >= min(target.min(), current.min()) - 1e-9 + + +def test_home_ramp_single_step_hits_target() -> None: + target = default_joint_pos() + ramp = _home_ramp(np.zeros(20), target, steps=1) + assert ramp.shape == (1, 20) + assert np.allclose(ramp[0], target) From ada382f077c15954e8854a98357c6a13691266c9 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Wed, 17 Jun 2026 10:18:31 +0800 Subject: [PATCH 03/12] feat(wuji): integrated Genesis mirror viewer in play_real MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit play_real now opens a Genesis digital-twin viewer by default (`--viewer`, `--no-viewer` for headless), mirroring the live hand (encoders) + observed cube + goal while the policy drives the real/mock hand — matching wuji-mjlab's play_real MuJoCo mirror. - `_SimMirror` reuses the calib_check pieces (build_reorient_env, set_hand_joints, set_cube_pose, refresh_visualizer) with deferred imports so `--no-viewer` stays numpy-only / headless. - New `_env.set_goal_marker` poses the play-mode goal_marker at the current goal. - `DeployController.step()` now returns `joint_pos` so the mirror reuses the read (no extra hardware poll). - README: document --viewer/--no-viewer; fix `genelab export --out` flag. Tested: controller + deploy tests pass; headless `--no-viewer` smoke clean with the real 207-dim ONNX. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/deploy/README.md | 16 ++-- .../genelab_wuji/deploy/config/camera.yaml | 12 +-- .../src/genelab_wuji/deploy/controller.py | 2 +- .../src/genelab_wuji/deploy/scripts/_env.py | 19 +++++ .../genelab_wuji/deploy/scripts/play_real.py | 76 ++++++++++++++++++- 5 files changed, 110 insertions(+), 15 deletions(-) diff --git a/examples/wuji/src/genelab_wuji/deploy/README.md b/examples/wuji/src/genelab_wuji/deploy/README.md index 701047ee..038614d5 100644 --- a/examples/wuji/src/genelab_wuji/deploy/README.md +++ b/examples/wuji/src/genelab_wuji/deploy/README.md @@ -30,7 +30,7 @@ The pieces are decoupled via ZMQ (localhost): | `cube_geom.py` | cube_tags JSON resolution (`config/cube_tags.json`) | glue | | `scripts/hand_utils.py` | `check` (read-only bridge test) / `home` (3s ramp to grasp pose) | glue (hardware) | | `scripts/calib_check.py` | static calib viewer: live hand (encoders) + cube vs. digital twin | glue (hardware) | -| `scripts/play_real.py` | deploy control loop + goal modes + success monitor (real/mock) | glue | +| `scripts/play_real.py` | deploy control loop + goal modes + success monitor + Genesis mirror (real/mock) | glue | | `scripts/toreal_viewer.py` | real2sim Genesis viewer | glue | | `scripts/cube_world_observer.py` | Hikvision camera → ArUco board + SO3 Kalman → ZMQ cube pose | glue (hardware) | @@ -72,10 +72,10 @@ export LD_LIBRARY_PATH=/opt/MVS/lib/64:/opt/MVS/lib/32:$LD_LIBRARY_PATH ```bash # 0) export a trained policy to ONNX -genelab export Genelab-Reorient-Wuji-Hand-v0 PATH/model.pt --format onnx --output policy.onnx +genelab export Genelab-Reorient-Wuji-Hand-v0 PATH/model.pt --format onnx --out policy.onnx -# 1) smoke-test the control loop, no hardware, no ZMQ -python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --no-zmq --steps 100 +# 1) smoke-test the control loop, no hardware, no ZMQ, no viewer +python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --mock --no-zmq --no-viewer --steps 100 # 1.5) bring up the real hand bridge (needs wujihandpy): check first, then home python -m genelab_wuji.deploy.scripts.hand_utils check # READ-ONLY: connection + encoder sanity @@ -88,12 +88,18 @@ python -m genelab_wuji.deploy.scripts.toreal_viewer # terminal # 2.5) calibration check: home the hand, render live hand + observed cube in the twin python -m genelab_wuji.deploy.scripts.calib_check # (needs the observer running) -# 3) drive the real hand from the live observer feed +# 3) drive the real hand from the live observer feed (Genesis mirror viewer on by default, +# showing the live hand + observed cube + goal; pass --no-viewer for headless). # goal modes: --goal-mode random (uniform-SO3, resampled on success) | # fixed --goal-quat w,x,y,z | external (goal from toreal_viewer ZMQ) python -m genelab_wuji.deploy.scripts.play_real --ckpt policy.onnx --real --goal-mode random ``` +`play_real` mirrors the live hand (encoders) + observed cube + goal in a Genesis viewer +by default (`--no-viewer` to disable). It reuses the same kinematic, physics-free refresh +as `calib_check`, so the mirror just reflects reality. The control core itself is numpy-only +and runs headlessly under `--no-viewer`. + The cube observer is a faithful port of the production wuji-mjlab pipeline (Hikvision MVS capture, multi-face ArUco board fusion, SO3 Kalman + position low-pass + corner EMA, world auto-sampling, fast ROI, OpenCV preview). It publishes the cube pose in the wrist-tag frame diff --git a/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml index 7327cdee..39e5ed0a 100644 --- a/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml +++ b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml @@ -7,20 +7,20 @@ roi: width: 1280 height: 1024 fast_roi: - offset_x: 464 - offset_y: 112 - width: 616 + offset_x: 472 + offset_y: 176 + width: 744 height: 504 intrinsics: fx: 1694.09 fy: 1692.69 - cx: 644.70 - cy: 477.70 + cx: 644.7 + cy: 477.7 distortion: k1: -0.071205 k2: 0.129295 p1: 0.000104 - p2: 0.000100 + p2: 0.0001 k3: -0.128663 capture: exposure_time: 5000 diff --git a/examples/wuji/src/genelab_wuji/deploy/controller.py b/examples/wuji/src/genelab_wuji/deploy/controller.py index 88e60d84..b0406e8d 100644 --- a/examples/wuji/src/genelab_wuji/deploy/controller.py +++ b/examples/wuji/src/genelab_wuji/deploy/controller.py @@ -102,4 +102,4 @@ def step(self) -> dict[str, Any]: target = self._action_proc.process(action) self.driver.write_target(target) self._last_action = action - return {"action": action, "target": target, "obs": obs} + return {"action": action, "target": target, "obs": obs, "joint_pos": joint_pos} diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py index 1f58ac5e..65c4eac4 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py @@ -58,6 +58,25 @@ def set_cube_pose(env: Any, pos_w: np.ndarray, quat_w: np.ndarray) -> None: fn(value) +def set_goal_marker(env: Any, quat_w: np.ndarray) -> None: + """Orient the play-mode ``goal_marker`` entity to the target (viewer only). + + The marker sits at a fixed display pose (``GOAL_MARKER_POS``); we only rewrite + its orientation so play_real's viewer shows the current goal. No-op if the scene + has no goal marker (e.g. a non-play scene). + """ + import torch + + try: + handle = env.scene["goal_marker"].gs_handle + except (KeyError, AttributeError): + return + quat = torch.tensor(quat_w, dtype=torch.float, device=env.device).unsqueeze(0) + set_quat = getattr(handle, "set_quat", None) + if set_quat is not None: + set_quat(quat) + + def set_hand_joints(env: Any, qpos_encoder_order: np.ndarray) -> None: """Kinematically render hand encoder readings on the sim robot (calib viewer). diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py index e97d0761..c3a3d607 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py @@ -113,6 +113,57 @@ def _make_goal_source(args: argparse.Namespace): return GoalReceiver(port=args.goal_port) +class _SimMirror: + """Genesis digital-twin viewer for play_real: live hand + observed cube + goal. + + Renders kinematically each control step (no physics — see + ``InteractiveScene.refresh_visualizer``), so it just shows reality, never fights + it. All heavy imports (Genesis / the env) are deferred to construction so a + ``--no-viewer`` run stays numpy-only and headless-safe. + """ + + def __init__(self) -> None: + from genelab_wuji.deploy.frame_transform import quat_mul + from genelab_wuji.deploy.real2sim import cube_pose_in_tag_to_world + from genelab_wuji.deploy.scripts._env import ( + build_reorient_env, + set_cube_pose, + set_goal_marker, + set_hand_joints, + tag_world_pose, + ) + + self._to_world = cube_pose_in_tag_to_world + self._quat_mul = quat_mul + self._set_cube = set_cube_pose + self._set_goal = set_goal_marker + self._set_hand = set_hand_joints + self._env = build_reorient_env(num_envs=1) + self._tag_pos_w, self._tag_quat_w = tag_world_pose(self._env) + + @property + def closed(self) -> bool: + return bool(self._env.viewer_closed) + + def update( + self, + joint_pos: np.ndarray, + cube_pos_tag: np.ndarray, + cube_quat_tag: np.ndarray, + goal_quat_tag: np.ndarray, + ) -> None: + self._set_hand(self._env, joint_pos) + cube_pos_w, cube_quat_w = self._to_world( + self._tag_pos_w, self._tag_quat_w, cube_pos_tag, cube_quat_tag + ) + self._set_cube(self._env, cube_pos_w, cube_quat_w) + self._set_goal(self._env, self._quat_mul(self._tag_quat_w, goal_quat_tag)) + self._env.scene.refresh_visualizer() + + def close(self) -> None: + self._env.close() + + def main() -> int: parser = argparse.ArgumentParser(description=__doc__) parser.add_argument("--ckpt", required=True, help="exported policy.onnx") @@ -136,6 +187,13 @@ def main() -> int: ) parser.add_argument("--control-dt", type=float, default=0.05, help="policy step period (s)") parser.add_argument("--steps", type=int, default=0, help="stop after N steps (0 = forever)") + parser.add_argument( + "--viewer", + action=argparse.BooleanOptionalAction, + default=True, + help="mirror the live hand + cube + goal in a Genesis viewer " + "(default on; pass --no-viewer for headless / mock smoke runs)", + ) args = parser.parse_args() if args.control_dt <= 0: @@ -155,11 +213,13 @@ def main() -> int: control_dt=args.control_dt, ) controller.reset() + mirror = _SimMirror() if args.viewer else None hold_steps = max(1, round(args.success_hold_sec / args.control_dt)) print( f"[play_real] obs_dim={policy.input_dim} action_dim={policy.action_dim} " f"driver={type(driver).__name__} goal_mode={args.goal_mode} " + f"viewer={'on' if mirror else 'off'} " f"success<{args.success_threshold:.2f}rad held {hold_steps} steps" ) @@ -169,12 +229,14 @@ def main() -> int: try: while args.steps == 0 or step < args.steps: t0 = time.time() - controller.step() + info = controller.step() step += 1 + cube_pos_tag, cube_quat_tag = cube.latest() + goal_quat_tag = goal.latest() + # Success monitor: geodesic(cube, goal) below threshold, sustained. - cube_quat = cube.latest()[1] - err = _quat_geodesic(cube_quat, goal.latest()) + err = _quat_geodesic(cube_quat_tag, goal_quat_tag) hold = hold + 1 if err < args.success_threshold else 0 if hold >= hold_steps: successes += 1 @@ -182,8 +244,14 @@ def main() -> int: hold = 0 if args.goal_mode == "random" and isinstance(goal, _GoalStub): goal.set(_random_unit_quat_wxyz()) + goal_quat_tag = goal.latest() print("[play_real] new random goal") + if mirror is not None: + mirror.update(info["joint_pos"], cube_pos_tag, cube_quat_tag, goal_quat_tag) + if mirror.closed: + break + sleep = args.control_dt - (time.time() - t0) if sleep > 0: time.sleep(sleep) @@ -195,6 +263,8 @@ def main() -> int: driver_exit(None, None, None) cube.close() goal.close() + if mirror is not None: + mirror.close() print(f"[play_real] ran {step} control steps, {successes} successes") return 0 From d1616fe611fb31edaaefb4a409edb880438627c5 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Wed, 17 Jun 2026 10:51:03 +0800 Subject: [PATCH 04/12] fix(wuji): remap encoder<->policy joint order in deploy (real-hand 0% bug) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The real hand twitched without manipulating the cube (0% success) while the same policy scored 1.0 in `genelab eval`. Root cause: a joint-ordering mismatch. Genesis orders the hand articulation JOINT-major (finger1..5_joint1, then _joint2, ...), so the trained policy's obs and action are joint-major. But the encoder / wujihandpy order (JOINT_NAMES_20) is finger-major. Deploy assumed they were identical ("no remap"), so DeployObsBuilder fed joint_pos/joint_vel in the wrong order and the action was written to the wrong joints → scrambled. Fix: - config: add POLICY_JOINT_NAMES (joint-major) + ENC_TO_POLICY permutation + default_joint_pos_policy(); correct the (wrong) "no remap" docstring. - DeployController: optional enc_to_policy remap — encoder->policy on read (joint_pos/joint_vel), policy->encoder on write (target). Runs the obs/action in policy order with a policy-order default. Identity when unset (tests/back-compat). - play_real: pass default_joint_pos_policy() + ENC_TO_POLICY. Verified: a term-by-term parity harness (DeployObsBuilder vs the env's actual policy obs) now matches to 5e-7 across all five terms (was joint_pos Δ=1.40); new tests/test_examples_wuji_deploy_joint_order.py pins POLICY_JOINT_NAMES against the built env so it can't drift. Also ruled out goal_rot_err_6d frame (tag_w is identity) — only joint order was wrong. 37 deploy tests pass. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/deploy/config.py | 37 +++++++++--- .../src/genelab_wuji/deploy/controller.py | 32 ++++++++--- .../genelab_wuji/deploy/scripts/play_real.py | 5 +- policy.onnx | Bin 0 -> 1099272 bytes .../test_examples_wuji_deploy_joint_order.py | 53 ++++++++++++++++++ 5 files changed, 110 insertions(+), 17 deletions(-) create mode 100644 policy.onnx create mode 100644 tests/test_examples_wuji_deploy_joint_order.py diff --git a/examples/wuji/src/genelab_wuji/deploy/config.py b/examples/wuji/src/genelab_wuji/deploy/config.py index bc8dd3a0..6f8dddc1 100644 --- a/examples/wuji/src/genelab_wuji/deploy/config.py +++ b/examples/wuji/src/genelab_wuji/deploy/config.py @@ -1,9 +1,19 @@ -"""Shared deploy constants: joint ordering and home pose. - -The single source of truth for joint order is the reorient task's home keyframe -``REORIENT_JOINT_POS`` (finger1_joint1..4, finger2..., finger5_joint4). That order -matches both the GeneLab policy obs/action layout and ``wujihandpy``'s (5, 4) -row-major flatten, so the deploy stack never has to remap joints. +"""Shared deploy constants: joint ordering, remap, and home pose. + +Two DIFFERENT joint orders are in play and MUST be remapped between (this was the +real-hand 0%-success bug): + +* **Encoder / hardware order** = ``JOINT_NAMES_20`` = ``REORIENT_JOINT_POS`` keys = + ``wujihandpy``'s (5, 4) row-major flatten: **finger-major** (finger1_joint1..4, + finger2_joint1..4, ...). This is what ``read_encoders`` / ``write_target`` speak. +* **Policy / Genesis articulation order** = ``POLICY_JOINT_NAMES``: **joint-major** + (finger1..5_joint1, then finger1..5_joint2, ...). Genesis orders the articulation + this way regardless of the MJCF element order, so the trained policy's obs and + action are joint-major. + +``DeployController`` remaps encoder->policy on read and policy->encoder on write via +``ENC_TO_POLICY`` / its inverse. ``tests/test_examples_wuji_deploy_joint_order.py`` +pins ``POLICY_JOINT_NAMES`` against the actual built env so the constant can't drift. """ from __future__ import annotations @@ -13,12 +23,23 @@ from genelab_wuji.reorient.constants import REORIENT_JOINT_POS JOINT_NAMES_20: tuple[str, ...] = tuple(REORIENT_JOINT_POS) -"""The 20 hand joint names in encoder / policy order.""" +"""The 20 hand joint names in encoder / hardware order (finger-major).""" N_JOINTS: int = len(JOINT_NAMES_20) """Hand DOF count (20 = 5 fingers x 4 joints).""" +ENC_TO_POLICY: tuple[int, ...] = (0, 4, 8, 12, 16, 1, 5, 9, 13, 17, 2, 6, 10, 14, 18, 3, 7, 11, 15, 19) +"""``policy_order[i] = encoder_order[ENC_TO_POLICY[i]]`` (encoder = ``JOINT_NAMES_20``).""" + +POLICY_JOINT_NAMES: tuple[str, ...] = tuple(JOINT_NAMES_20[i] for i in ENC_TO_POLICY) +"""Hand joint names in policy / Genesis articulation order (joint-major).""" + def default_joint_pos() -> np.ndarray: - """Home grasp keyframe as a ``(20,)`` array, in ``JOINT_NAMES_20`` order.""" + """Home grasp keyframe as a ``(20,)`` array, in ``JOINT_NAMES_20`` (encoder) order.""" return np.array([REORIENT_JOINT_POS[name] for name in JOINT_NAMES_20], dtype=float) + + +def default_joint_pos_policy() -> np.ndarray: + """Home grasp keyframe ``(20,)`` in policy / articulation order (joint-major).""" + return default_joint_pos()[list(ENC_TO_POLICY)] diff --git a/examples/wuji/src/genelab_wuji/deploy/controller.py b/examples/wuji/src/genelab_wuji/deploy/controller.py index b0406e8d..1d880072 100644 --- a/examples/wuji/src/genelab_wuji/deploy/controller.py +++ b/examples/wuji/src/genelab_wuji/deploy/controller.py @@ -55,12 +55,20 @@ def __init__( ema_alpha: float = 0.5, warmup_steps: int = 8, joint_pos_limits: tuple[np.ndarray, np.ndarray] | None = None, + enc_to_policy: np.ndarray | None = None, ) -> None: self.policy = policy self.driver = driver self.cube_source = cube_source self.goal_source = goal_source self.control_dt = control_dt + # Joint-order remap between the driver (encoder/hardware order) and the policy + # (Genesis articulation order). ``None`` = identity. ``default_joint_pos`` must be + # in the SAME order the policy uses (policy order when a remap is given). + self._enc_to_policy = None if enc_to_policy is None else np.asarray(enc_to_policy) + self._policy_to_enc = ( + None if self._enc_to_policy is None else np.argsort(self._enc_to_policy) + ) self._default = np.asarray(default_joint_pos, dtype=float) self._obs = DeployObsBuilder(self._default) self._action_proc = ActionProcessor( @@ -73,17 +81,26 @@ def __init__( self._last_action = np.zeros(N_JOINTS) self._prev_joint_pos = self._default.copy() + def _to_policy(self, v: np.ndarray) -> np.ndarray: + """Reorder an encoder/hardware-order vector into policy order.""" + return v if self._enc_to_policy is None else v[self._enc_to_policy] + + def _to_hardware(self, v: np.ndarray) -> np.ndarray: + """Reorder a policy-order vector into encoder/hardware order.""" + return v if self._policy_to_enc is None else v[self._policy_to_enc] + def reset(self) -> None: """Home the hand and clear obs/action/velocity state.""" self.driver.home() self._obs.reset() self._action_proc.reset() self._last_action = np.zeros(N_JOINTS) - self._prev_joint_pos = self.driver.read_encoders() + self._prev_joint_pos = self._to_policy(self.driver.read_encoders()) def step(self) -> dict[str, Any]: - """Run one control step; return ``{action, target, obs}``.""" - joint_pos = self.driver.read_encoders() + """Run one control step; return ``{action, target, obs, joint_pos}``.""" + encoder = self.driver.read_encoders() # hardware (encoder) order + joint_pos = self._to_policy(encoder) # policy order joint_vel = (joint_pos - self._prev_joint_pos) / self.control_dt self._prev_joint_pos = joint_pos @@ -98,8 +115,9 @@ def step(self) -> dict[str, Any]: goal_quat_tag=goal_quat_tag, last_action=self._last_action, ) - action = np.asarray(self.policy(obs), dtype=float) - target = self._action_proc.process(action) - self.driver.write_target(target) + action = np.asarray(self.policy(obs), dtype=float) # policy order + target = self._action_proc.process(action) # policy order + self.driver.write_target(self._to_hardware(target)) # back to hardware order self._last_action = action - return {"action": action, "target": target, "obs": obs, "joint_pos": joint_pos} + # ``joint_pos`` returned in encoder/hardware order (for the viewer's name-based remap). + return {"action": action, "target": target, "obs": obs, "joint_pos": encoder} diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py index c3a3d607..bed26f4f 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py @@ -34,7 +34,7 @@ import numpy as np -from genelab_wuji.deploy.config import default_joint_pos +from genelab_wuji.deploy.config import ENC_TO_POLICY, default_joint_pos_policy from genelab_wuji.deploy.controller import DeployController from genelab_wuji.deploy.hand_driver import HandDriverBase, MockHandDriver from genelab_wuji.deploy.onnx_policy import ONNXPolicy @@ -209,8 +209,9 @@ def main() -> int: driver=driver, cube_source=cube, goal_source=goal, - default_joint_pos=default_joint_pos(), + default_joint_pos=default_joint_pos_policy(), # policy (articulation) order control_dt=args.control_dt, + enc_to_policy=np.asarray(ENC_TO_POLICY), # remap encoder<->policy joint order ) controller.reset() mirror = _SimMirror() if args.viewer else None diff --git a/policy.onnx b/policy.onnx new file mode 100644 index 0000000000000000000000000000000000000000..e6be5183689d7590961033ce36730ebdbcdf8b8a GIT binary patch literal 1099272 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]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

oB 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 cQfizAWI0x@5 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

{+rabpW+h8!)6f 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

^Tng0!66E>idv*Hj?B=%m$gvcSOD9A*HW=Lf6|u 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

_C}i< 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Φ( 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%0DQM-qhNm)-h8bGPX`+4v;{IWRA{NW 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 z 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∓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%0Dor6 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 z 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 CQCdg< literal 0 HcmV?d00001 diff --git a/tests/test_examples_wuji_deploy_joint_order.py b/tests/test_examples_wuji_deploy_joint_order.py new file mode 100644 index 00000000..b2f59513 --- /dev/null +++ b/tests/test_examples_wuji_deploy_joint_order.py @@ -0,0 +1,53 @@ +"""Pin the deploy joint-order remap against the real Genesis articulation order. + +The encoder / wujihandpy order (``JOINT_NAMES_20``) is finger-major; the policy / +Genesis articulation order (``POLICY_JOINT_NAMES``) is joint-major. ``DeployController`` +remaps between them. If they drift, the real hand gets scrambled joint obs + actions and +twitches without manipulating the cube (the real-hand 0%-success bug). +""" + +import numpy as np +import pytest + +from genelab_wuji.deploy.config import ( + ENC_TO_POLICY, + JOINT_NAMES_20, + POLICY_JOINT_NAMES, + default_joint_pos, + default_joint_pos_policy, +) + + +def test_enc_to_policy_is_a_valid_permutation() -> None: + assert sorted(ENC_TO_POLICY) == list(range(20)) + assert set(POLICY_JOINT_NAMES) == set(JOINT_NAMES_20) + # Policy order is joint-major: the first five are every finger's joint1. + assert POLICY_JOINT_NAMES[:5] == tuple(f"right_finger{f}_joint1" for f in range(1, 6)) + # Encoder order is finger-major: the first four are finger1's joints 1..4. + assert JOINT_NAMES_20[:4] == tuple(f"right_finger1_joint{j}" for j in range(1, 5)) + + +def test_default_policy_is_default_reordered() -> None: + d = default_joint_pos() + dp = default_joint_pos_policy() + assert np.allclose(dp, d[list(ENC_TO_POLICY)]) + # Round-trips back to encoder order via the inverse permutation. + assert np.allclose(dp[np.argsort(ENC_TO_POLICY)], d) + + +def test_policy_joint_order_matches_env() -> None: + """Drift guard: POLICY_JOINT_NAMES must equal the built env's articulation order.""" + pytest.importorskip("genesis") + from genelab_wuji.deploy.scripts._env import build_reorient_env + + env = None + try: + env = build_reorient_env(num_envs=1) + assert list(env.scene["robot"].joint_names) == list(POLICY_JOINT_NAMES) + except Exception as exc: # asset download / GPU / display unavailable in minimal CI + if env is None: + pytest.skip(f"reorient env unavailable: {exc}") + raise + finally: + if env is not None: + env.close() From 22fa46396c95cbcfe2a005e3d5de6b1fd2b71dff Mon Sep 17 00:00:00 2001 From: KraHsu Date: Wed, 17 Jun 2026 11:21:08 +0800 Subject: [PATCH 05/12] feat(wuji): joint frictionloss (stiction) DR for reorient sim2real MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sim2sim diagnosis: the GeneLab reorient policy scores 1.0 in Genesis but only 0.61 in mjlab's MuJoCo (vs mjlab's own policy = 1.0), failing by TIMEOUT (38%), not drop — it holds the grasp but reorients too slowly under different contact dynamics. The hand MJCF declares ZERO joint frictionloss, so the policy never learns to overcome the real hand's static friction and under-drives on hardware. Add `genelab.mdp.dr.dof_frictionloss`: sets a joint dry-friction baseline via Genesis `set_dofs_frictionloss`. NOTE Genesis frictionloss is a non-batched (global, shared-across-envs) dof property — unlike kp/kv it can't be per-env — so this is a fixed baseline, not per-env DR. Wired into the reorient training DR (`friction=0.01`, startup, training-only). Experiment to test the stiction hypothesis; validate by retrain + sim2sim_mjlab. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/reorient/env_cfg.py | 10 +++++ src/genelab/mdp/dr/__init__.py | 7 +++- src/genelab/mdp/dr/joint.py | 42 +++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 1fec08e3..4212e6da 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -318,6 +318,16 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: mode="startup", params={"asset_cfg": robot, "bias_range": (-0.01, 0.01)}, ), + # Joint dry-friction (stiction): the MJCF has none, so the policy never + # learns to overcome the real hand's static friction and reorients too + # slowly on hardware (sim2sim timeouts). Genesis frictionloss is global + # (not per-env), so this is a fixed baseline forcing the policy to drive + # through realistic stiction. + "dof_frictionloss": EventTermCfg( + func=mdp.dr.dof_frictionloss, + mode="startup", + params={"asset_cfg": robot, "friction": 0.01}, + ), "object_disturbance": EventTermCfg( func=events.apply_velocity_disturbance, mode="interval", diff --git a/src/genelab/mdp/dr/__init__.py b/src/genelab/mdp/dr/__init__.py index 96c2b9e7..61de6ff9 100644 --- a/src/genelab/mdp/dr/__init__.py +++ b/src/genelab/mdp/dr/__init__.py @@ -16,11 +16,16 @@ from genelab.mdp.dr.actuator import randomize_actuator_deadzone from genelab.mdp.dr.body import body_com_offset, body_mass_offset from genelab.mdp.dr.geom import geom_friction -from genelab.mdp.dr.joint import encoder_bias, randomize_joint_stiffness_damping +from genelab.mdp.dr.joint import ( + dof_frictionloss, + encoder_bias, + randomize_joint_stiffness_damping, +) __all__ = [ "body_com_offset", "body_mass_offset", + "dof_frictionloss", "encoder_bias", "geom_friction", "randomize_actuator_deadzone", diff --git a/src/genelab/mdp/dr/joint.py b/src/genelab/mdp/dr/joint.py index d43c411d..046f7029 100644 --- a/src/genelab/mdp/dr/joint.py +++ b/src/genelab/mdp/dr/joint.py @@ -62,6 +62,48 @@ def randomize_joint_stiffness_damping( pass +def dof_frictionloss( + env: "EnvContext", + env_ids: torch.Tensor | None, + friction: float = 0.01, + asset_cfg: "SceneEntityCfg | None" = None, +) -> None: + """Set a GLOBAL joint dry-friction (frictionloss, Nm) baseline on the actuated joints. + + The hand MJCF declares zero joint frictionloss, so a Genesis-trained policy never + learns to overcome the *real* hand's static friction — it under-drives the fingers and + reorients too slowly on hardware (the cube is held but the goal times out). Adding a + realistic stiction baseline forces the policy to drive through it, which transfers. + + NOTE: Genesis frictionloss is a *non-batched* dof property (shared across all envs), so + this is a single global value, not per-env DR (unlike kp/kv). Use ``mode="startup"``. + Written via ``set_dofs_frictionloss``; guarded for the fake-env test scaffolding. + """ + env_ids = normalise_env_ids(env, env_ids) + if env_ids.numel() == 0: + return + handle = asset_handle(env, asset_cfg) + setter = getattr(handle, "set_dofs_frictionloss", None) or getattr( + handle, "set_dofs_friction", None + ) + if setter is None: + return + for actuator in asset_articulation(env, asset_cfg).actuators.values(): + n_joints = actuator.num_joints + if n_joints == 0: + continue + vals = torch.full((n_joints,), float(friction), device=env.device) # 1D = global + try: + setter(vals, dofs_idx_local=actuator.dof_ids) + except TypeError: + try: + setter(vals, actuator.dof_ids) + except Exception: + pass + except Exception: + pass + + def encoder_bias( env: "EnvContext", env_ids: torch.Tensor | None, From 6f7ea646f1d1069b8fa2aedac0474dd03ae52da8 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Wed, 17 Jun 2026 18:16:08 +0800 Subject: [PATCH 06/12] revert(wuji): drop frictionloss from reorient DR (hurt sim2sim 0.61->0.52) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The joint-frictionloss experiment failed: adding a fixed global stiction baseline dropped mjlab sim2sim from 0.61 to 0.52 (timeouts 38%->46%). Genesis frictionloss is a global (non-per-env) dof property, so a fixed value is not real DR — it just shifts the Genesis overfit point further from MuJoCo. The transfer gap is the Genesis<->MuJoCo contact dynamics, which Genesis cannot per-env randomize. Removed the event from the reorient recipe (back to the 0.61 recipe); kept the mdp.dr.dof_frictionloss primitive + its docstring documenting the global limitation. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/reorient/env_cfg.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 4212e6da..8f6eb5ac 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -318,16 +318,12 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: mode="startup", params={"asset_cfg": robot, "bias_range": (-0.01, 0.01)}, ), - # Joint dry-friction (stiction): the MJCF has none, so the policy never - # learns to overcome the real hand's static friction and reorients too - # slowly on hardware (sim2sim timeouts). Genesis frictionloss is global - # (not per-env), so this is a fixed baseline forcing the policy to drive - # through realistic stiction. - "dof_frictionloss": EventTermCfg( - func=mdp.dr.dof_frictionloss, - mode="startup", - params={"asset_cfg": robot, "friction": 0.01}, - ), + # NOTE: a fixed global joint frictionloss baseline (mdp.dr.dof_frictionloss) + # was tried here to close the sim2sim gap but HURT it (mjlab sim2sim + # 0.61 -> 0.52): Genesis frictionloss is global (not per-env), so a fixed + # value isn't real DR — it just shifts the Genesis overfit point. Removed. + # The transfer gap is the Genesis<->MuJoCo contact dynamics, which Genesis + # can't per-env randomize. See the dof_frictionloss docstring. "object_disturbance": EventTermCfg( func=events.apply_velocity_disturbance, mode="interval", From a4af95ecfc7c353352c7bc6fb0042f7f88f4eead Mon Sep 17 00:00:00 2001 From: KraHsu Date: Thu, 18 Jun 2026 00:42:38 +0800 Subject: [PATCH 07/12] feat(core+wuji): enable per-env dof/link DR (batch_dofs_info) for reorient sim2real MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Correction to the earlier "Genesis can't do per-env dof DR" conclusion: it CAN — it's gated by RigidOptions.batch_dofs_info / batch_links_info (default False), which GeneLab never exposed or enabled. With them off, Genesis stores dof model params (kp/kv/frictionloss/damping/armature) shared across the batch, so per-env writes silently no-op — which meant `randomize_joint_stiffness_damping` (pd_gains DR) was DEAD for the implicit-PD reorient hand the whole time. - configs.SimulationCfg: expose `batch_dofs_info` / `batch_links_info` -> RigidOptions. - reorient training: enable both (training-only; eval/play uses nominal params). - mdp.dr.dof_frictionloss: rewrite to real PER-ENV sampling (was a global baseline that hurt sim2sim; per-env is the proper DR). friction_range=(0.0, 0.02). Verified on the built env: frictionloss AND kp now vary per env (pd_gains DR active). This is a much stronger DR recipe than the 0.61 run (dead pd_gains + no stiction). Retrain + sim2sim_mjlab to measure. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/reorient/env_cfg.py | 20 ++++++++++----- src/genelab/configs.py | 9 +++++++ src/genelab/mdp/dr/joint.py | 25 ++++++++----------- 3 files changed, 34 insertions(+), 20 deletions(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 8f6eb5ac..54246075 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -137,6 +137,11 @@ def wuji_hand_reorient_env_cfg(play: bool = False, num_envs: int = 8192) -> Mana substeps=1, vis=play, gpu=not play, + # Per-env model params so dof/link DR (PD gains, frictionloss, mass/inertia) + # actually applies per environment. Genesis defaults these off, which silently + # no-ops per-env dof DR; training-only (eval/play uses nominal params). + batch_dofs_info=not play, + batch_links_info=not play, ), scene=InteractiveSceneCfg( env_spacing=(0.75, 0.75), @@ -318,12 +323,15 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: mode="startup", params={"asset_cfg": robot, "bias_range": (-0.01, 0.01)}, ), - # NOTE: a fixed global joint frictionloss baseline (mdp.dr.dof_frictionloss) - # was tried here to close the sim2sim gap but HURT it (mjlab sim2sim - # 0.61 -> 0.52): Genesis frictionloss is global (not per-env), so a fixed - # value isn't real DR — it just shifts the Genesis overfit point. Removed. - # The transfer gap is the Genesis<->MuJoCo contact dynamics, which Genesis - # can't per-env randomize. See the dof_frictionloss docstring. + # Per-env joint dry-friction (stiction): the MJCF has none, so the policy + # never learns to overcome the real hand's static friction and reorients too + # slowly on hardware. Real per-env DR now that batch_dofs_info is on (the + # earlier global-baseline attempt hurt; this samples per env/joint). + "dof_frictionloss": EventTermCfg( + func=mdp.dr.dof_frictionloss, + mode="startup", + params={"asset_cfg": robot, "friction_range": (0.0, 0.02)}, + ), "object_disturbance": EventTermCfg( func=events.apply_velocity_disturbance, mode="interval", diff --git a/src/genelab/configs.py b/src/genelab/configs.py index a51dd126..e9c3b8b3 100644 --- a/src/genelab/configs.py +++ b/src/genelab/configs.py @@ -93,6 +93,13 @@ class SimulationCfg: integrator: str | None = ( None # gs.integrator.: Euler / implicitfast / approximate_implicitfast ) + # Store per-DOF / per-link model params (kp/kv/frictionloss/damping/armature, mass/ + # inertia) PER-ENV so they can be domain-randomized per environment. Genesis defaults + # both to False (params shared across the batch), which silently no-ops per-env dof DR + # like ``mdp.dr.randomize_joint_stiffness_damping`` on implicit-PD actuators. Costs a + # little memory (per-env copies of the model arrays); enable for sim2real DR. + batch_dofs_info: bool | None = None # RigidOptions.batch_dofs_info + batch_links_info: bool | None = None # RigidOptions.batch_links_info def rigid_options_kwargs(self) -> dict[str, Any]: """Map the *set* rigid-solver fields to ``gs.options.RigidOptions`` kwargs. @@ -111,6 +118,8 @@ def rigid_options_kwargs(self) -> dict[str, Any]: "tolerance": self.solver_tolerance, "constraint_timeconst": self.constraint_timeconst, "integrator": self.integrator, + "batch_dofs_info": self.batch_dofs_info, + "batch_links_info": self.batch_links_info, } return {k: v for k, v in mapping.items() if v is not None} diff --git a/src/genelab/mdp/dr/joint.py b/src/genelab/mdp/dr/joint.py index 046f7029..df5b08f1 100644 --- a/src/genelab/mdp/dr/joint.py +++ b/src/genelab/mdp/dr/joint.py @@ -65,23 +65,25 @@ def randomize_joint_stiffness_damping( def dof_frictionloss( env: "EnvContext", env_ids: torch.Tensor | None, - friction: float = 0.01, + friction_range: tuple[float, float] = (0.0, 0.02), asset_cfg: "SceneEntityCfg | None" = None, ) -> None: - """Set a GLOBAL joint dry-friction (frictionloss, Nm) baseline on the actuated joints. + """Per-env, per-joint absolute joint dry-friction (frictionloss, Nm) DR. The hand MJCF declares zero joint frictionloss, so a Genesis-trained policy never learns to overcome the *real* hand's static friction — it under-drives the fingers and - reorients too slowly on hardware (the cube is held but the goal times out). Adding a - realistic stiction baseline forces the policy to drive through it, which transfers. + reorients too slowly on hardware (the cube is held but the goal times out). Sampling an + absolute frictionloss per env/joint makes the policy robust to a range of real stiction. - NOTE: Genesis frictionloss is a *non-batched* dof property (shared across all envs), so - this is a single global value, not per-env DR (unlike kp/kv). Use ``mode="startup"``. - Written via ``set_dofs_frictionloss``; guarded for the fake-env test scaffolding. + REQUIRES ``SimulationCfg.batch_dofs_info=True`` — otherwise Genesis stores frictionloss + shared across the batch (``set_dofs_frictionloss`` rejects a per-env ``(n_env, n_joint)`` + tensor) and this call silently no-ops. Written via ``set_dofs_frictionloss``; guarded + for the fake-env test scaffolding. """ env_ids = normalise_env_ids(env, env_ids) if env_ids.numel() == 0: return + n = int(env_ids.numel()) handle = asset_handle(env, asset_cfg) setter = getattr(handle, "set_dofs_frictionloss", None) or getattr( handle, "set_dofs_friction", None @@ -92,14 +94,9 @@ def dof_frictionloss( n_joints = actuator.num_joints if n_joints == 0: continue - vals = torch.full((n_joints,), float(friction), device=env.device) # 1D = global + vals = torch.empty(n, n_joints, device=env.device).uniform_(*friction_range) try: - setter(vals, dofs_idx_local=actuator.dof_ids) - except TypeError: - try: - setter(vals, actuator.dof_ids) - except Exception: - pass + setter(vals, dofs_idx_local=actuator.dof_ids, envs_idx=env_ids) except Exception: pass From 1b588b931f8ef3782b60ec343a7cc62d98cf1da9 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Thu, 18 Jun 2026 10:57:52 +0800 Subject: [PATCH 08/12] feat(wuji): add per-env dof_armature DR + widen frictionloss (push reorient sim2real) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Building on the per-env DR win (sim2sim 0.61->0.77 after enabling batch_dofs_info): - mdp.dr.dof_armature: per-env multiplicative armature DR (scale 0.75-1.3, mjlab parity), now possible with batch_dofs_info. Reads nominal via get_dofs_armature. - reorient DR: add dof_armature; widen dof_frictionloss range 0.02 -> 0.03. Note: per-env CONTACT-compliance DR (solref/solimp) is confirmed impossible in this Genesis (geom sol_params are global / batched=False, no batch_geoms_info) — so contact is the structural ceiling; these dof/link-side per-env DR additions are the achievable lever. Retrain + sim2sim to measure (expect a modest bump over 0.77). Co-Authored-By: Claude Opus 4.8 (1M context) --- .../wuji/src/genelab_wuji/reorient/env_cfg.py | 9 +++- src/genelab/mdp/dr/__init__.py | 2 + src/genelab/mdp/dr/joint.py | 42 +++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 54246075..9b519d18 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -330,7 +330,14 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: "dof_frictionloss": EventTermCfg( func=mdp.dr.dof_frictionloss, mode="startup", - params={"asset_cfg": robot, "friction_range": (0.0, 0.02)}, + params={"asset_cfg": robot, "friction_range": (0.0, 0.03)}, + ), + # Per-env joint armature (rotor inertia) scale — robustness to inertia + # calibration error (mjlab parity). Now per-env via batch_dofs_info. + "dof_armature": EventTermCfg( + func=mdp.dr.dof_armature, + mode="startup", + params={"asset_cfg": robot, "scale_range": (0.75, 1.3)}, ), "object_disturbance": EventTermCfg( func=events.apply_velocity_disturbance, diff --git a/src/genelab/mdp/dr/__init__.py b/src/genelab/mdp/dr/__init__.py index 61de6ff9..1fe4b5ef 100644 --- a/src/genelab/mdp/dr/__init__.py +++ b/src/genelab/mdp/dr/__init__.py @@ -17,6 +17,7 @@ from genelab.mdp.dr.body import body_com_offset, body_mass_offset from genelab.mdp.dr.geom import geom_friction from genelab.mdp.dr.joint import ( + dof_armature, dof_frictionloss, encoder_bias, randomize_joint_stiffness_damping, @@ -25,6 +26,7 @@ __all__ = [ "body_com_offset", "body_mass_offset", + "dof_armature", "dof_frictionloss", "encoder_bias", "geom_friction", diff --git a/src/genelab/mdp/dr/joint.py b/src/genelab/mdp/dr/joint.py index df5b08f1..53268c7b 100644 --- a/src/genelab/mdp/dr/joint.py +++ b/src/genelab/mdp/dr/joint.py @@ -101,6 +101,48 @@ def dof_frictionloss( pass +def dof_armature( + env: "EnvContext", + env_ids: torch.Tensor | None, + scale_range: tuple[float, float] = (0.75, 1.3), + asset_cfg: "SceneEntityCfg | None" = None, +) -> None: + """Per-env, per-joint multiplicative DR on joint armature (rotor reflected inertia). + + Armature shapes the effective joint inertia / actuator response; randomizing it makes + the policy robust to inertia-calibration error (mjlab uses scale 0.75-1.3). The MJCF + declares non-zero armature, so a multiplicative scale is meaningful (unlike frictionloss). + + REQUIRES ``SimulationCfg.batch_dofs_info=True`` (else armature is shared across the batch + and per-env writes no-op). Reads the nominal via ``get_dofs_armature``; guarded for the + fake-env test scaffolding. + """ + env_ids = normalise_env_ids(env, env_ids) + if env_ids.numel() == 0: + return + n = int(env_ids.numel()) + handle = asset_handle(env, asset_cfg) + getter = getattr(handle, "get_dofs_armature", None) + setter = getattr(handle, "set_dofs_armature", None) + if setter is None or getter is None: + return + for actuator in asset_articulation(env, asset_cfg).actuators.values(): + n_joints = actuator.num_joints + if n_joints == 0: + continue + try: + nominal = getter(dofs_idx_local=actuator.dof_ids, envs_idx=env_ids) + nominal = nominal[0] if nominal.dim() == 2 else nominal + except Exception: + continue + mult = torch.empty(n, n_joints, device=env.device).uniform_(*scale_range) + vals = nominal.to(env.device).unsqueeze(0) * mult + try: + setter(vals, dofs_idx_local=actuator.dof_ids, envs_idx=env_ids) + except Exception: + pass + + def encoder_bias( env: "EnvContext", env_ids: torch.Tensor | None, From 4550c066219871c751862c437459a4ad915e74c6 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Thu, 18 Jun 2026 20:20:30 +0800 Subject: [PATCH 09/12] =?UTF-8?q?feat(wuji):=20per-env=20gravity-tilt=20DR?= =?UTF-8?q?=20=E2=80=94=20align=20with=20mjlab's=20hand-pitch=20randomizat?= =?UTF-8?q?ion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Found via the real-hand 10-deg down-tilt symptom: mjlab randomizes the hand mount PITCH every episode (reset_root_state pose_range pitch (-0.4, 0.1) rad ~ -23..+6 deg), so its policy is robust to a tilted mount; GeneLab had NO root DR (fixed-base, pitch locked at 0), so the real 10-deg tilt is out-of-distribution. Genesis refuses per-env orientation on a fixed-base link ("Impossible to set env-specific quat for fixed links with at least one geometry"), so we can't tilt the hand per env. Instead tilt GRAVITY per env — same gravity-in-palm physics, hand stays fixed-base, and the wrist-tag world frame (tag_w == identity) is preserved so the deploy obs pipeline is unchanged. - mdp.dr.gravity_tilt: per-env gravity-direction DR (random polar angle 0..max_tilt in a random azimuth, via rigid_solver.set_gravity(..., envs_idx=...) — already a per-env solver field, no batch flag needed). - reorient training: reset-mode gravity_tilt, max_tilt_rad=0.4 (covers the real ~10 deg any-azimuth). Verified per-env tilt varies 0..~21 deg. Note: sim2sim_mjlab evaluates a LEVEL hand, so it may not move much (or dip slightly from broader DR) — the real payoff is robustness on the tilted hardware. Retrain + real test. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../genelab_wuji/deploy/config/camera.yaml | 6 +- .../wuji/src/genelab_wuji/reorient/env_cfg.py | 9 +++ src/genelab/mdp/dr/__init__.py | 2 + src/genelab/mdp/dr/gravity.py | 58 +++++++++++++++++++ 4 files changed, 72 insertions(+), 3 deletions(-) create mode 100644 src/genelab/mdp/dr/gravity.py diff --git a/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml index 39e5ed0a..07912cc7 100644 --- a/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml +++ b/examples/wuji/src/genelab_wuji/deploy/config/camera.yaml @@ -8,9 +8,9 @@ roi: height: 1024 fast_roi: offset_x: 472 - offset_y: 176 - width: 744 - height: 504 + offset_y: 216 + width: 552 + height: 776 intrinsics: fx: 1694.09 fy: 1692.69 diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 9b519d18..08569ed9 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -280,6 +280,15 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: } if play: return cfg + # Per-episode gravity-direction tilt — the Genesis-native equivalent of mjlab's + # hand-pitch DR (Genesis can't tilt a fixed-base hand per env, so we tilt gravity + # instead: same gravity-in-palm physics, hand stays fixed-base, tag frame unchanged). + # Makes the policy robust to a tilted hardware mount (e.g. the real ~10 deg down-tilt). + cfg["gravity_tilt"] = EventTermCfg( + func=mdp.dr.gravity_tilt, + mode="reset", + params={"max_tilt_rad": 0.4}, + ) cfg.update( { "robot_friction": EventTermCfg( diff --git a/src/genelab/mdp/dr/__init__.py b/src/genelab/mdp/dr/__init__.py index 1fe4b5ef..b6fdcd09 100644 --- a/src/genelab/mdp/dr/__init__.py +++ b/src/genelab/mdp/dr/__init__.py @@ -16,6 +16,7 @@ from genelab.mdp.dr.actuator import randomize_actuator_deadzone from genelab.mdp.dr.body import body_com_offset, body_mass_offset from genelab.mdp.dr.geom import geom_friction +from genelab.mdp.dr.gravity import gravity_tilt from genelab.mdp.dr.joint import ( dof_armature, dof_frictionloss, @@ -30,6 +31,7 @@ "dof_frictionloss", "encoder_bias", "geom_friction", + "gravity_tilt", "randomize_actuator_deadzone", "randomize_joint_stiffness_damping", ] diff --git a/src/genelab/mdp/dr/gravity.py b/src/genelab/mdp/dr/gravity.py new file mode 100644 index 00000000..2e73ff84 --- /dev/null +++ b/src/genelab/mdp/dr/gravity.py @@ -0,0 +1,58 @@ +"""Per-environment gravity-direction domain randomization.""" + +import math +from typing import TYPE_CHECKING + +import torch + +from genelab.mdp.dr._common import normalise_env_ids + +if TYPE_CHECKING: + from genelab.contracts import EnvContext + + +def _rigid_solver(env: "EnvContext"): + """Best-effort access to the Genesis rigid solver (per-env gravity lives there).""" + scene = getattr(env, "scene", None) + gs_scene = getattr(scene, "_gs_scene", None) + sim = getattr(gs_scene, "sim", None) + return getattr(sim, "rigid_solver", None) + + +def gravity_tilt( + env: "EnvContext", + env_ids: torch.Tensor | None, + max_tilt_rad: float = 0.4, + magnitude: float = 9.81, +) -> None: + """Per-env gravity-direction DR: tilt gravity by a random polar angle in a random azimuth. + + The Genesis-native equivalent of randomizing a fixed-base hand's mount pitch (mjlab's + ``reset_root_state`` pitch DR). Genesis refuses per-env orientation on a fixed-base link + with geometry, but tilting **gravity** per env gives the SAME gravity-in-palm physics + while keeping the hand fixed-base and the wrist-tag world frame (``tag_w``) unchanged — + so the deploy obs pipeline needs no frame changes. Makes the policy robust to a tilted + hardware mount (e.g. a ~10 deg down-tilt). A full cone (random azimuth) covers the mount + tilt regardless of axis. Use ``mode="reset"`` (re-sample per episode, like mjlab). + + Per-env gravity requires no batch flag — gravity is already a per-env solver field + (``rigid_solver.set_gravity(..., envs_idx=...)``). Guarded for the fake-env test scaffold. + """ + env_ids = normalise_env_ids(env, env_ids) + if env_ids.numel() == 0: + return + setter = getattr(_rigid_solver(env), "set_gravity", None) + if setter is None: + return + n = int(env_ids.numel()) + theta = torch.empty(n, device=env.device).uniform_(0.0, max_tilt_rad) + phi = torch.empty(n, device=env.device).uniform_(0.0, 2.0 * math.pi) + horizontal = magnitude * torch.sin(theta) + g = torch.empty(n, 3, device=env.device) + g[:, 0] = horizontal * torch.cos(phi) + g[:, 1] = horizontal * torch.sin(phi) + g[:, 2] = -magnitude * torch.cos(theta) + try: + setter(g, envs_idx=env_ids) + except Exception: + pass From 1979db38af025138cab60bed323566b32a162084 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Thu, 18 Jun 2026 20:32:33 +0800 Subject: [PATCH 10/12] test(wuji): add --gravity-tilt to sim2sim_mjlab to measure mount-tilt robustness MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit sim2sim_mjlab evaluates a level hand, so it can't show the payoff of the gravity-tilt DR (which targets a tilted mount). Add --gravity-tilt : tilt the eval scene's gravity about +X (same gravity-in-palm effect as pitching the hand), persists across resets via model.opt.gravity. Baseline measured: the 0.89 level-trained policy (DRv2) drops to 0.79 at 10deg tilt (timeout 11%->19%) — reproduces the real-hand tilt symptom in sim. The gravity-tilt-DR policy (DRv3) should recover most of that. Co-Authored-By: Claude Opus 4.8 (1M context) --- .../reorient/scripts/sim2sim_mjlab.py | 23 ++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/scripts/sim2sim_mjlab.py b/examples/wuji/src/genelab_wuji/reorient/scripts/sim2sim_mjlab.py index b8c43b69..f24751be 100644 --- a/examples/wuji/src/genelab_wuji/reorient/scripts/sim2sim_mjlab.py +++ b/examples/wuji/src/genelab_wuji/reorient/scripts/sim2sim_mjlab.py @@ -44,10 +44,21 @@ _P_TO_M = [POLICY_JOINTS.index(m) for m in MJLAB_JOINTS] # policy-order array -> mjlab order -def run(policy_path: str, trials: int, seed: int, timeout: float = 14.0) -> dict[str, float]: +def run( + policy_path: str, trials: int, seed: int, timeout: float = 14.0, tilt_deg: float = 0.0 +) -> dict[str, float]: torch.manual_seed(seed) np.random.seed(seed) scene = build_reorient_scene(sim_dt=0.01, ctrl_dt=0.05, cube_edge_m=0.054) + # Emulate a tilted hardware mount by tilting gravity in the (level-hand) eval scene + # about +X. Same gravity-in-palm effect as pitching the hand; measures robustness to + # a mount tilt (e.g. the real ~10 deg) without moving the fixed-base hand. + if tilt_deg: + import math + + g0 = float(np.linalg.norm(scene.model.opt.gravity)) or 9.81 + rad = math.radians(tilt_deg) + scene.model.opt.gravity[:] = [0.0, g0 * math.sin(rad), -g0 * math.cos(rad)] policy = load_policy(policy_path) tag_pos, tag_quat = tag_frame() default_p = default_policy_joint_pos() @@ -150,10 +161,16 @@ def main() -> None: p.add_argument("--policy", required=True, help="rsl_rl checkpoint .pt") p.add_argument("--trials", type=int, default=100) p.add_argument("--seed", type=int, default=0) + p.add_argument( + "--gravity-tilt", + type=float, + default=0.0, + help="tilt gravity by this many degrees (emulates a tilted hardware mount)", + ) args = p.parse_args() - r = run(args.policy, args.trials, args.seed) + r = run(args.policy, args.trials, args.seed, tilt_deg=args.gravity_tilt) print( - f"sim2sim (wuji-mjlab env) over {r['trials']} trials: " + f"sim2sim (wuji-mjlab env, tilt={args.gravity_tilt:.0f}deg) over {r['trials']} trials: " f"success_rate={r['success_rate']:.2f} drop_rate={r['drop_rate']:.2f} " f"timeout_rate={r['timeout_rate']:.2f} mean_goal_reaches={r['mean_goal_reaches']:.2f}" ) From 8f233f5fc1c31f6f3a26cb57d6797b8f3ebb1b80 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Thu, 18 Jun 2026 22:03:12 +0800 Subject: [PATCH 11/12] tune(wuji): reduce gravity_tilt cone 0.4->0.2 rad (0.4 too hard, training stalled) Co-Authored-By: Claude Opus 4.8 (1M context) --- examples/wuji/src/genelab_wuji/reorient/env_cfg.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py index 08569ed9..61379a6f 100644 --- a/examples/wuji/src/genelab_wuji/reorient/env_cfg.py +++ b/examples/wuji/src/genelab_wuji/reorient/env_cfg.py @@ -287,7 +287,10 @@ def _events_cfg(play: bool) -> dict[str, EventTermCfg]: cfg["gravity_tilt"] = EventTermCfg( func=mdp.dr.gravity_tilt, mode="reset", - params={"max_tilt_rad": 0.4}, + # 0.2 rad (~11 deg) cone covers the real ~10 deg mount tilt with margin. A larger + # full-azimuth cone (tried 0.4) was too hard — the cube rolled off before the + # policy could bootstrap a grasp (training stalled at goals ~0.3). + params={"max_tilt_rad": 0.2}, ) cfg.update( { From a227476baaa31d6ca8ddd7fbfd2069818a968d16 Mon Sep 17 00:00:00 2001 From: KraHsu Date: Sat, 20 Jun 2026 02:07:12 +0800 Subject: [PATCH 12/12] style(wuji): fix ruff lint + format on deploy toolchain CI lint job was failing: 29 ruff errors (concentrated in the ported Hikvision observer) plus 12 files pending `ruff format`. - remove unused imports (zmq, ctypes.byref), drop placeholder-less f-string, expand one-line if/elif/else returns - per-file-ignore E402/F403/F405 for cube_world_observer.py: the Hikvision MVS SDK is loaded via star-import after a runtime sys.path insert (vendor-inherent, SDK absent in CI) - apply `ruff format` to the deploy scripts + tests (never validated before since the lint job aborted at `ruff check`) Co-Authored-By: Claude Opus 4.8 (1M context) --- .../src/genelab_wuji/deploy/camera_config.py | 57 +- .../wuji/src/genelab_wuji/deploy/config.py | 23 +- .../wuji/src/genelab_wuji/deploy/cube_geom.py | 1 + .../genelab_wuji/deploy/frame_transform.py | 26 +- .../src/genelab_wuji/deploy/onnx_policy.py | 12 +- .../src/genelab_wuji/deploy/scripts/_env.py | 7 +- .../deploy/scripts/cube_world_observer.py | 556 ++++++++++++------ .../genelab_wuji/deploy/scripts/hand_utils.py | 9 +- .../genelab_wuji/deploy/scripts/play_real.py | 4 +- .../src/genelab_wuji/deploy/zmq_bridge.py | 4 +- pyproject.toml | 8 + tests/test_examples_wuji_deploy_sim_viz.py | 4 +- tests/test_examples_wuji_deploy_zmq_bridge.py | 4 +- 13 files changed, 466 insertions(+), 249 deletions(-) diff --git a/examples/wuji/src/genelab_wuji/deploy/camera_config.py b/examples/wuji/src/genelab_wuji/deploy/camera_config.py index bd7448a5..1d0aed06 100644 --- a/examples/wuji/src/genelab_wuji/deploy/camera_config.py +++ b/examples/wuji/src/genelab_wuji/deploy/camera_config.py @@ -24,6 +24,7 @@ SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) CONFIG_FILE = os.path.join(SCRIPT_DIR, "config", "camera.yaml") + def load_camera_config(config_file: str | None = None) -> dict[str, Any]: """Load camera configuration from YAML file. @@ -42,7 +43,7 @@ def load_camera_config(config_file: str | None = None) -> dict[str, Any]: if not os.path.exists(config_file): raise FileNotFoundError(f"Camera config not found: {config_file}") - with open(config_file, 'r') as f: + with open(config_file, "r") as f: cfg = yaml.safe_load(f) return cfg @@ -63,13 +64,16 @@ def get_camera_matrix(cfg: dict[str, Any] | None = None) -> np.ndarray: if cfg is None: cfg = load_camera_config() - intr = cfg['intrinsics'] - roi = cfg['roi'] - K = np.array([ - [intr['fx'], 0, intr['cx'] - roi['offset_x']], - [0, intr['fy'], intr['cy'] - roi['offset_y']], - [0, 0, 1] - ], dtype=np.float64) + intr = cfg["intrinsics"] + roi = cfg["roi"] + K = np.array( + [ + [intr["fx"], 0, intr["cx"] - roi["offset_x"]], + [0, intr["fy"], intr["cy"] - roi["offset_y"]], + [0, 0, 1], + ], + dtype=np.float64, + ) return K @@ -85,10 +89,8 @@ def get_dist_coeffs(cfg: dict[str, Any] | None = None) -> np.ndarray: if cfg is None: cfg = load_camera_config() - dist = cfg['distortion'] - return np.array([ - dist['k1'], dist['k2'], dist['p1'], dist['p2'], dist['k3'] - ], dtype=np.float64) + dist = cfg["distortion"] + return np.array([dist["k1"], dist["k2"], dist["p1"], dist["p2"], dist["k3"]], dtype=np.float64) def get_roi(cfg: dict[str, Any] | None = None) -> tuple[int, int, int, int]: @@ -103,8 +105,8 @@ def get_roi(cfg: dict[str, Any] | None = None) -> tuple[int, int, int, int]: if cfg is None: cfg = load_camera_config() - roi = cfg['roi'] - return roi['offset_x'], roi['offset_y'], roi['width'], roi['height'] + roi = cfg["roi"] + return roi["offset_x"], roi["offset_y"], roi["width"], roi["height"] def get_capture_settings(cfg: dict[str, Any] | None = None) -> dict[str, Any]: @@ -119,11 +121,11 @@ def get_capture_settings(cfg: dict[str, Any] | None = None) -> dict[str, Any]: if cfg is None: cfg = load_camera_config() - cap = cfg['capture'] + cap = cfg["capture"] return { - 'exposure_time': cap['exposure_time'], - 'gain': cap['gain'], - 'frame_rate': cap.get('frame_rate', 0), + "exposure_time": cap["exposure_time"], + "gain": cap["gain"], + "frame_rate": cap.get("frame_rate", 0), } @@ -154,25 +156,30 @@ def setup_camera_capture(cam: Any, cfg: dict[str, Any] | None = None) -> None: cfg: Camera configuration dict. If None, loads from file. """ settings = get_capture_settings(cfg) - cam.MV_CC_SetFloatValue("ExposureTime", settings['exposure_time']) - cam.MV_CC_SetFloatValue("Gain", settings['gain']) + cam.MV_CC_SetFloatValue("ExposureTime", settings["exposure_time"]) + cam.MV_CC_SetFloatValue("Gain", settings["gain"]) # Frame rate: enable explicit control and set target - frame_rate = settings.get('frame_rate', 0) + frame_rate = settings.get("frame_rate", 0) if frame_rate and frame_rate > 0: ret1 = cam.MV_CC_SetBoolValue("AcquisitionFrameRateEnable", True) ret2 = cam.MV_CC_SetFloatValue("AcquisitionFrameRate", float(frame_rate)) # Read back actual resulting frame rate - from ctypes import c_float, byref + from ctypes import c_float + actual_fps = c_float(0) ret3 = cam.MV_CC_GetFloatValue("ResultingFrameRate", actual_fps) if ret3 == 0: actual_str = f", actual={actual_fps.value:.1f}Hz" else: actual_str = ", actual=unknown" - print(f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, " - f"frame_rate={frame_rate}Hz (enable_ret=0x{ret1:X}, set_ret=0x{ret2:X}{actual_str})") + print( + f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, " + f"frame_rate={frame_rate}Hz (enable_ret=0x{ret1:X}, set_ret=0x{ret2:X}{actual_str})" + ) else: - print(f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, frame_rate=default") + print( + f"Camera capture: exposure={settings['exposure_time']}us, gain={settings['gain']}, frame_rate=default" + ) if __name__ == "__main__": diff --git a/examples/wuji/src/genelab_wuji/deploy/config.py b/examples/wuji/src/genelab_wuji/deploy/config.py index 6f8dddc1..db1e44ef 100644 --- a/examples/wuji/src/genelab_wuji/deploy/config.py +++ b/examples/wuji/src/genelab_wuji/deploy/config.py @@ -28,7 +28,28 @@ N_JOINTS: int = len(JOINT_NAMES_20) """Hand DOF count (20 = 5 fingers x 4 joints).""" -ENC_TO_POLICY: tuple[int, ...] = (0, 4, 8, 12, 16, 1, 5, 9, 13, 17, 2, 6, 10, 14, 18, 3, 7, 11, 15, 19) +ENC_TO_POLICY: tuple[int, ...] = ( + 0, + 4, + 8, + 12, + 16, + 1, + 5, + 9, + 13, + 17, + 2, + 6, + 10, + 14, + 18, + 3, + 7, + 11, + 15, + 19, +) """``policy_order[i] = encoder_order[ENC_TO_POLICY[i]]`` (encoder = ``JOINT_NAMES_20``).""" POLICY_JOINT_NAMES: tuple[str, ...] = tuple(JOINT_NAMES_20[i] for i in ENC_TO_POLICY) diff --git a/examples/wuji/src/genelab_wuji/deploy/cube_geom.py b/examples/wuji/src/genelab_wuji/deploy/cube_geom.py index cf0b5f91..1f4957c7 100644 --- a/examples/wuji/src/genelab_wuji/deploy/cube_geom.py +++ b/examples/wuji/src/genelab_wuji/deploy/cube_geom.py @@ -7,6 +7,7 @@ for AprilTag/ArUco PnP) and the sim/benchmark pipeline (play_real.py — needs to patch the MuJoCo cube body so visualization and physics match the real cube). """ + from __future__ import annotations import json diff --git a/examples/wuji/src/genelab_wuji/deploy/frame_transform.py b/examples/wuji/src/genelab_wuji/deploy/frame_transform.py index aa00a9dd..678be5ab 100644 --- a/examples/wuji/src/genelab_wuji/deploy/frame_transform.py +++ b/examples/wuji/src/genelab_wuji/deploy/frame_transform.py @@ -20,11 +20,13 @@ def quat_apply(quat_wxyz: np.ndarray, vec: np.ndarray) -> np.ndarray: """Rotate ``vec`` by the unit quaternion ``quat_wxyz`` (Hamilton, wxyz).""" w, x, y, z = quat_wxyz - R = np.array([ - [1 - 2 * (y * y + z * z), 2 * (x * y - z * w), 2 * (x * z + y * w)], - [ 2 * (x * y + z * w), 1 - 2 * (x * x + z * z), 2 * (y * z - x * w)], - [ 2 * (x * z - y * w), 2 * (y * z + x * w), 1 - 2 * (x * x + y * y)], - ]) + R = np.array( + [ + [1 - 2 * (y * y + z * z), 2 * (x * y - z * w), 2 * (x * z + y * w)], + [2 * (x * y + z * w), 1 - 2 * (x * x + z * z), 2 * (y * z - x * w)], + [2 * (x * z - y * w), 2 * (y * z + x * w), 1 - 2 * (x * x + y * y)], + ] + ) return R @ vec @@ -32,12 +34,14 @@ def quat_mul(q1: np.ndarray, q2: np.ndarray) -> np.ndarray: """Hamilton product of two wxyz quaternions: ``q1 ∘ q2``.""" w1, x1, y1, z1 = q1 w2, x2, y2, z2 = q2 - return np.array([ - w1 * w2 - x1 * x2 - y1 * y2 - z1 * z2, - w1 * x2 + x1 * w2 + y1 * z2 - z1 * y2, - w1 * y2 - x1 * z2 + y1 * w2 + z1 * x2, - w1 * z2 + x1 * y2 - y1 * x2 + z1 * w2, - ]) + return np.array( + [ + w1 * w2 - x1 * x2 - y1 * y2 - z1 * z2, + w1 * x2 + x1 * w2 + y1 * z2 - z1 * y2, + w1 * y2 - x1 * z2 + y1 * w2 + z1 * x2, + w1 * z2 + x1 * y2 - y1 * x2 + z1 * w2, + ] + ) def quat_conjugate(quat_wxyz: np.ndarray) -> np.ndarray: diff --git a/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py b/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py index 04915354..c2993692 100644 --- a/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py +++ b/examples/wuji/src/genelab_wuji/deploy/onnx_policy.py @@ -37,9 +37,7 @@ def __init__( raise FileNotFoundError(f"ONNX not found: {onnx_path}") self.onnx_path: str = onnx_path - self.session = ort.InferenceSession( - onnx_path, providers=["CPUExecutionProvider"] - ) + self.session = ort.InferenceSession(onnx_path, providers=["CPUExecutionProvider"]) inp = self.session.get_inputs()[0] out = self.session.get_outputs()[0] self.input_name: str = inp.name @@ -50,9 +48,7 @@ def __init__( self.metadata: dict[str, Any] = self._load_metadata(onnx_path, metadata_path) @staticmethod - def _load_metadata( - onnx_path: str, metadata_path: Optional[str | Path] - ) -> dict[str, Any]: + def _load_metadata(onnx_path: str, metadata_path: Optional[str | Path]) -> dict[str, Any]: candidates = ( [str(metadata_path)] if metadata_path is not None @@ -72,9 +68,7 @@ def __call__(self, obs: np.ndarray) -> np.ndarray: if obs.ndim == 1: obs = obs[None, :] if obs.shape != (1, self.input_dim): - raise ValueError( - f"obs shape {obs.shape}, expected (1, {self.input_dim})" - ) + raise ValueError(f"obs shape {obs.shape}, expected (1, {self.input_dim})") obs = obs.astype(np.float32, copy=False) result = self.session.run([self.output_name], {self.input_name: obs})[0] return result.squeeze(0) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py index 65c4eac4..1ac6a102 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/_env.py @@ -52,7 +52,12 @@ def set_cube_pose(env: Any, pos_w: np.ndarray, quat_w: np.ndarray) -> None: pos = torch.tensor(pos_w, dtype=torch.float, device=device).unsqueeze(0) quat = torch.tensor(quat_w, dtype=torch.float, device=device).unsqueeze(0) zeros = torch.zeros(1, 3, device=device) - for setter, value in (("set_pos", pos), ("set_quat", quat), ("set_vel", zeros), ("set_ang", zeros)): + for setter, value in ( + ("set_pos", pos), + ("set_quat", quat), + ("set_vel", zeros), + ("set_ang", zeros), + ): fn = getattr(handle, setter, None) if fn is not None: fn(value) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py index 18b0e6c0..d8c244af 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py @@ -22,6 +22,7 @@ On startup, the world coordinate system is auto-sampled (100 frames by default), then a fixed world frame is used. Press 'w' to resample the world frame. """ + import sys import os import time @@ -33,7 +34,7 @@ from scipy.spatial.transform import Rotation from scipy.linalg import inv -SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # deploy/scripts +SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__)) # deploy/scripts ROOT_DIR = os.path.dirname(SCRIPT_DIR) # deploy # MvImport: Hikvision MVS SDK Python bindings. # System-level dependency (NOT vendored in this repo). Default install path is @@ -51,8 +52,11 @@ from MvImport.MvCameraControl_class import * from genelab_wuji.deploy.camera_config import ( - load_camera_config, get_camera_matrix, get_dist_coeffs, - setup_camera_roi, setup_camera_capture + load_camera_config, + get_camera_matrix, + get_dist_coeffs, + setup_camera_roi, + setup_camera_capture, ) from genelab_wuji.deploy.zmq_bridge import DEFAULT_CUBE_PORT, CubePublisher @@ -62,7 +66,6 @@ print("ERROR: pupil_apriltags not installed. Run: pip install pupil-apriltags") sys.exit(1) -import zmq # Load camera config _cam_cfg = load_camera_config() @@ -70,7 +73,9 @@ DIST_COEFFS = get_dist_coeffs(_cam_cfg) # Config files -OBSERVER_CONFIG_FILE = os.path.join(os.path.dirname(SCRIPT_DIR), "config", "observer.yaml") # deploy/config/observer.yaml +OBSERVER_CONFIG_FILE = os.path.join( + os.path.dirname(SCRIPT_DIR), "config", "observer.yaml" +) # deploy/config/observer.yaml from genelab_wuji.deploy.cube_geom import ( resolve_cube_config_path, @@ -85,11 +90,13 @@ # Optional world-frame correction; None = use AprilTag frame as-is. # AprilTag detector (X-right, Y-down, Z-into-tag) -> MuJoCo wrist tag (right-handed) # Pure handedness flip: same X, flipped Y and Z (printed tag X aligns with MuJoCo wrist tag X). -WORLD_FRAME_CORRECTION = np.array([ - [ 1.0, 0.0, 0.0], - [ 0.0, -1.0, 0.0], - [ 0.0, 0.0, -1.0], -]) +WORLD_FRAME_CORRECTION = np.array( + [ + [1.0, 0.0, 0.0], + [0.0, -1.0, 0.0], + [0.0, 0.0, -1.0], + ] +) # WORLD_FRAME_CORRECTION = "+x +z -y" # Example: remap axes # WORLD_FRAME_CORRECTION = np.array([[1,0,0], [0,0,1], [0,-1,0]]) # Same as above @@ -105,12 +112,12 @@ def parse_axis_remap(remap_str): 3x3 rotation matrix R such that new_point = R @ apriltag_point """ axis_map = { - '+x': np.array([1, 0, 0]), - '-x': np.array([-1, 0, 0]), - '+y': np.array([0, 1, 0]), - '-y': np.array([0, -1, 0]), - '+z': np.array([0, 0, 1]), - '-z': np.array([0, 0, -1]), + "+x": np.array([1, 0, 0]), + "-x": np.array([-1, 0, 0]), + "+y": np.array([0, 1, 0]), + "-y": np.array([0, -1, 0]), + "+z": np.array([0, 0, 1]), + "-z": np.array([0, 0, -1]), } parts = remap_str.lower().split() @@ -130,11 +137,14 @@ def parse_axis_remap(remap_str): if not np.isclose(abs(det), 1.0): raise ValueError(f"Invalid axis remap: axes not orthogonal (det={det:.3f})") if det < 0: - raise ValueError(f"Invalid axis remap: forms left-handed system (det={det:.3f}). " - "Hint: flip one axis sign to make it right-handed.") + raise ValueError( + f"Invalid axis remap: forms left-handed system (det={det:.3f}). " + "Hint: flip one axis sign to make it right-handed." + ) return R + # No silent default — pass --cube to override config/cube_tags.json. # Cube frame correction rotation matrix @@ -146,38 +156,38 @@ def parse_axis_remap(remap_str): # Face colors (matching MuJoCo dex_cube) FACE_COLORS = { - 'TOP': ('Cyan', (255, 255, 0)), # BGR - 'BOTTOM': ('Blue', (255, 0, 0)), - 'FRONT': ('Red', (0, 0, 255)), - 'BACK': ('White', (255, 255, 255)), - 'LEFT': ('Green', (0, 255, 0)), - 'RIGHT': ('Yellow', (0, 255, 255)), + "TOP": ("Cyan", (255, 255, 0)), # BGR + "BOTTOM": ("Blue", (255, 0, 0)), + "FRONT": ("Red", (0, 0, 255)), + "BACK": ("White", (255, 255, 255)), + "LEFT": ("Green", (0, 255, 0)), + "RIGHT": ("Yellow", (0, 255, 255)), } def load_observer_config(): """Load observer configuration from YAML file.""" defaults = { - 'rotation_filter': { - 'process_noise': 0.1, - 'measurement_noise': 0.3, + "rotation_filter": { + "process_noise": 0.1, + "measurement_noise": 0.3, }, - 'position_filter': { - 'alpha': 0.6, + "position_filter": { + "alpha": 0.6, }, - 'pnp': { - 'reproj_threshold': 6.0, + "pnp": { + "reproj_threshold": 6.0, }, - 'preprocess': { - 'enable_clahe': True, - 'clahe_clip': 2.0, - 'clahe_tile': [8, 8], + "preprocess": { + "enable_clahe": True, + "clahe_clip": 2.0, + "clahe_tile": [8, 8], }, } if os.path.exists(OBSERVER_CONFIG_FILE): try: - with open(OBSERVER_CONFIG_FILE, 'r') as f: + with open(OBSERVER_CONFIG_FILE, "r") as f: cfg = yaml.safe_load(f) # Merge with defaults for key in defaults: @@ -326,18 +336,24 @@ def reset(self): # --- Buffer backlog detection constants --- -BACKLOG_LATENCY_S = 30.0e-3 # 30ms; headless grab ≈ 20ms (waiting for camera frame) -BACKLOG_COUNT = 5 # consecutive slow grabs before flush -BACKLOG_MAX_FLUSH = 20 # safety cap on flush loop +BACKLOG_LATENCY_S = 30.0e-3 # 30ms; headless grab ≈ 20ms (waiting for camera frame) +BACKLOG_COUNT = 5 # consecutive slow grabs before flush +BACKLOG_MAX_FLUSH = 20 # safety cap on flush loop class CubeWorldObserver: """Detects cube pose relative to world coordinate system defined by AprilTag.""" - def __init__(self, visualize=False, zmq_port=5555, - process_noise=0.01, measurement_noise=1.0, alpha=0.3, - world_sample_frames=WORLD_SAMPLE_FRAMES, - cube_config_path: str | None = None): + def __init__( + self, + visualize=False, + zmq_port=5555, + process_noise=0.01, + measurement_noise=1.0, + alpha=0.3, + world_sample_frames=WORLD_SAMPLE_FRAMES, + cube_config_path: str | None = None, + ): self.visualize = visualize self._cube_config_path = cube_config_path or CUBE_CONFIG_FILE @@ -363,14 +379,17 @@ def __init__(self, visualize=False, zmq_port=5555, # AprilTag detector for world frame self.apriltag_detector = AprilTagDetector( - families="tag36h11", nthreads=4, quad_decimate=1.0, - quad_sigma=0.0, decode_sharpening=0.25, + families="tag36h11", + nthreads=4, + quad_decimate=1.0, + quad_sigma=0.0, + decode_sharpening=0.25, ) # ArUco detector for cube self.aruco_dict = cv2.aruco.getPredefinedDictionary(cv2.aruco.DICT_4X4_50) # Support both old and new OpenCV API - if hasattr(cv2.aruco, 'DetectorParameters_create'): + if hasattr(cv2.aruco, "DetectorParameters_create"): # Old API (OpenCV < 4.7) self.aruco_params = cv2.aruco.DetectorParameters_create() self.aruco_params.cornerRefinementMethod = cv2.aruco.CORNER_REFINE_SUBPIX @@ -386,7 +405,9 @@ def __init__(self, visualize=False, zmq_port=5555, self._build_aruco_board() # Filters - self.filter_R = SO3KalmanFilter(process_noise=process_noise, measurement_noise=measurement_noise) + self.filter_R = SO3KalmanFilter( + process_noise=process_noise, measurement_noise=measurement_noise + ) self.filter_t = VectorLowPassFilter(alpha=alpha) # ZMQ publisher @@ -410,17 +431,19 @@ def __init__(self, visualize=False, zmq_port=5555, # World frame sampling state self._world_samples_R = [] # Collected rotation samples self._world_samples_t = [] # Collected translation samples - self._world_fixed = False # Whether world frame is fixed + self._world_fixed = False # Whether world frame is fixed self._world_sample_target = world_sample_frames # Target sample count # --- New observer state for IPPE+ITERATIVE migration --- _cfg = load_observer_config() - self._reproj_threshold = float(_cfg['pnp']['reproj_threshold']) + self._reproj_threshold = float(_cfg["pnp"]["reproj_threshold"]) - self._enable_clahe = bool(_cfg['preprocess']['enable_clahe']) - _clip = float(_cfg['preprocess']['clahe_clip']) - _tile = tuple(int(x) for x in _cfg['preprocess']['clahe_tile']) - self._clahe = cv2.createCLAHE(clipLimit=_clip, tileGridSize=_tile) if self._enable_clahe else None + self._enable_clahe = bool(_cfg["preprocess"]["enable_clahe"]) + _clip = float(_cfg["preprocess"]["clahe_clip"]) + _tile = tuple(int(x) for x in _cfg["preprocess"]["clahe_tile"]) + self._clahe = ( + cv2.createCLAHE(clipLimit=_clip, tileGridSize=_tile) if self._enable_clahe else None + ) self.corner_filter = CornerEMAFilter(alpha=CORNER_FILTER_ALPHA) @@ -444,7 +467,7 @@ def _load_config(self): """ self._tag_map = None self._face_axes_cfg = None - self._face_rotations = {'TOP': 0, 'BOTTOM': 0, 'FRONT': 0, 'BACK': 0, 'LEFT': 0, 'RIGHT': 0} + self._face_rotations = {"TOP": 0, "BOTTOM": 0, "FRONT": 0, "BACK": 0, "LEFT": 0, "RIGHT": 0} if not os.path.exists(self._cube_config_path): raise FileNotFoundError( @@ -453,27 +476,31 @@ def _load_config(self): ) try: - with open(self._cube_config_path, 'r') as f: + with open(self._cube_config_path, "r") as f: cfg = json.load(f) # Required: cube_size + tag_size + tag_center_offset. No silent defaults. try: - self._cube_size = float(cfg['cube_size']) - self._tag_size = float(cfg['tag_size']) - self._tag_offset = float(cfg['tag_center_offset']) + self._cube_size = float(cfg["cube_size"]) + self._tag_size = float(cfg["tag_size"]) + self._tag_offset = float(cfg["tag_center_offset"]) except KeyError as e: raise KeyError( f"{self._cube_config_path} is missing required key {e}; " "cube_size, tag_size and tag_center_offset are not allowed to be defaulted." ) from None - faces_cfg = cfg.get('faces_config', {}) - self._tag_map = {face: {int(k): v for k, v in tags.items()} for face, tags in faces_cfg.items()} - self._face_axes_cfg = cfg.get('face_axes', None) - for face, rot in cfg.get('face_rotations', {}).items(): + faces_cfg = cfg.get("faces_config", {}) + self._tag_map = { + face: {int(k): v for k, v in tags.items()} for face, tags in faces_cfg.items() + } + self._face_axes_cfg = cfg.get("face_axes", None) + for face, rot in cfg.get("face_rotations", {}).items(): self._face_rotations[face] = rot print(f"Loaded cube config from {self._cube_config_path}") - print(f" cube_size={self._cube_size*1000:.1f}mm " - f"tag_size={self._tag_size*1000:.2f}mm " - f"tag_center_offset={self._tag_offset*1000:.2f}mm") + print( + f" cube_size={self._cube_size * 1000:.1f}mm " + f"tag_size={self._tag_size * 1000:.2f}mm " + f"tag_center_offset={self._tag_offset * 1000:.2f}mm" + ) except json.JSONDecodeError as e: print(f"Warning: Failed to parse config JSON: {e}") @@ -492,36 +519,62 @@ def _build_aruco_board(self): def rotate_corners(corners, rotation): n = (rotation // 90) % 4 - if n == 0: return corners - elif n == 1: return np.array([corners[3], corners[0], corners[1], corners[2]]) - elif n == 2: return np.array([corners[2], corners[3], corners[0], corners[1]]) - else: return np.array([corners[1], corners[2], corners[3], corners[0]]) + if n == 0: + return corners + elif n == 1: + return np.array([corners[3], corners[0], corners[1], corners[2]]) + elif n == 2: + return np.array([corners[2], corners[3], corners[0], corners[1]]) + else: + return np.array([corners[1], corners[2], corners[3], corners[0]]) def face_tags(face_center, u_axis, v_axis, rotation=0): tags = {} - for pos, center in [('T', face_center + off * v_axis), ('B', face_center - off * v_axis), - ('L', face_center - off * u_axis), ('R', face_center + off * u_axis)]: - corners = np.array([ - center - ht * u_axis + ht * v_axis, center + ht * u_axis + ht * v_axis, - center + ht * u_axis - ht * v_axis, center - ht * u_axis - ht * v_axis, - ], dtype=np.float32) + for pos, center in [ + ("T", face_center + off * v_axis), + ("B", face_center - off * v_axis), + ("L", face_center - off * u_axis), + ("R", face_center + off * u_axis), + ]: + corners = np.array( + [ + center - ht * u_axis + ht * v_axis, + center + ht * u_axis + ht * v_axis, + center + ht * u_axis - ht * v_axis, + center - ht * u_axis - ht * v_axis, + ], + dtype=np.float32, + ) tags[pos] = rotate_corners(corners, rotation) return tags if self._face_axes_cfg: - faces = {name: (np.array(axes['center'], dtype=np.float64) * half, - np.array(axes['u'], dtype=np.float64), - np.array(axes['v'], dtype=np.float64)) - for name, axes in self._face_axes_cfg.items()} + faces = { + name: ( + np.array(axes["center"], dtype=np.float64) * half, + np.array(axes["u"], dtype=np.float64), + np.array(axes["v"], dtype=np.float64), + ) + for name, axes in self._face_axes_cfg.items() + } else: - X, Y, Z = np.array([1,0,0]), np.array([0,1,0]), np.array([0,0,1]) - faces = {'TOP': (half*Z, X, Y), 'BOTTOM': (-half*Z, X, -Y), 'FRONT': (-half*Y, X, Z), - 'BACK': (half*Y, -X, Z), 'LEFT': (-half*X, -Y, Z), 'RIGHT': (half*X, Y, Z)} + X, Y, Z = np.array([1, 0, 0]), np.array([0, 1, 0]), np.array([0, 0, 1]) + faces = { + "TOP": (half * Z, X, Y), + "BOTTOM": (-half * Z, X, -Y), + "FRONT": (-half * Y, X, Z), + "BACK": (half * Y, -X, Z), + "LEFT": (-half * X, -Y, Z), + "RIGHT": (half * X, Y, Z), + } tag_map = self._tag_map or { - 'TOP': {0:'L',1:'B',2:'T',3:'R'}, 'BOTTOM': {8:'R',9:'T',10:'B',11:'L'}, - 'FRONT': {16:'R',17:'T',18:'B',19:'L'}, 'BACK': {20:'B',21:'R',22:'L',23:'T'}, - 'LEFT': {4:'R',5:'T',6:'B',7:'L'}, 'RIGHT': {12:'B',13:'R',14:'L',15:'T'}, + "TOP": {0: "L", 1: "B", 2: "T", 3: "R"}, + "BOTTOM": {8: "R", 9: "T", 10: "B", 11: "L"}, + "FRONT": {16: "R", 17: "T", 18: "B", 19: "L"}, + "BACK": {20: "B", 21: "R", 22: "L", 23: "T"}, + "LEFT": {4: "R", 5: "T", 6: "B", 7: "L"}, + "RIGHT": {12: "B", 13: "R", 14: "L", 15: "T"}, } board_corners, board_ids = [], [] @@ -536,7 +589,7 @@ def face_tags(face_center, u_axis, v_axis, rotation=0): board_ids = np.array([board_ids[i] for i in sorted_idx], dtype=np.int32) # Support both old and new OpenCV API - if hasattr(cv2.aruco, 'Board_create'): + if hasattr(cv2.aruco, "Board_create"): # Old API (OpenCV < 4.7) self.cube_board = cv2.aruco.Board_create(board_corners, self.aruco_dict, board_ids) else: @@ -546,7 +599,7 @@ def face_tags(face_center, u_axis, v_axis, rotation=0): def _match_image_points(self, corners, ids): """Match detected corners/ids to board - compatibility wrapper for old/new API.""" - if hasattr(self.cube_board, 'matchImagePoints'): + if hasattr(self.cube_board, "matchImagePoints"): # New API (OpenCV >= 4.7) return self.cube_board.matchImagePoints(corners, ids) else: @@ -574,9 +627,10 @@ def _match_image_points(self, corners, ids): def detect_world_tag(self, gray): """Detect world AprilTag and return its pose in camera frame.""" results = self.apriltag_detector.detect( - gray, estimate_tag_pose=True, + gray, + estimate_tag_pose=True, camera_params=(K[0, 0], K[1, 1], K[0, 2], K[1, 2]), - tag_size=WORLD_TAG_SIZE + tag_size=WORLD_TAG_SIZE, ) for r in results: if r.tag_id == WORLD_TAG_ID: @@ -642,13 +696,15 @@ def _finalize_world_frame(self): # and correction_R transforms from AprilTag frame to new world frame, # then: R_new_to_cam = R_apriltag @ correction_R.T avg_R = avg_R @ correction_R.T - print(f"[World Sampling] Applied world frame correction (det={np.linalg.det(correction_R):.1f})") + print( + f"[World Sampling] Applied world frame correction (det={np.linalg.det(correction_R):.1f})" + ) self.world_pose = (avg_R, avg_t) self._world_fixed = True print(f"[World Sampling] Complete! Averaged {len(self._world_samples_R)} samples") - print(f"[World Sampling] World frame is now FIXED. Press 'w' to resample.") + print("[World Sampling] World frame is now FIXED. Press 'w' to resample.") # Switch to hardware fast ROI (headless only; preview keeps full frame) if not self.visualize: @@ -659,32 +715,36 @@ def _finalize_world_frame(self): def _switch_to_fast_roi(self): """Switch camera to hardware fast_roi for high-speed cube tracking (headless).""" global K - fast_roi = _cam_cfg.get('fast_roi') + fast_roi = _cam_cfg.get("fast_roi") if fast_roi is None: return - cur_roi = _cam_cfg['roi'] - if (fast_roi['width'] == cur_roi['width'] - and fast_roi['height'] == cur_roi['height'] - and fast_roi['offset_x'] == cur_roi['offset_x'] - and fast_roi['offset_y'] == cur_roi['offset_y']): + cur_roi = _cam_cfg["roi"] + if ( + fast_roi["width"] == cur_roi["width"] + and fast_roi["height"] == cur_roi["height"] + and fast_roi["offset_x"] == cur_roi["offset_x"] + and fast_roi["offset_y"] == cur_roi["offset_y"] + ): return # already at fast ROI - print(f"[Fast ROI] Switching to {fast_roi['width']}x{fast_roi['height']} " - f"@ ({fast_roi['offset_x']}, {fast_roi['offset_y']}) ...") + print( + f"[Fast ROI] Switching to {fast_roi['width']}x{fast_roi['height']} " + f"@ ({fast_roi['offset_x']}, {fast_roi['offset_y']}) ..." + ) self.cam.MV_CC_StopGrabbing() self.cam.MV_CC_SetIntValueEx("OffsetX", 0) self.cam.MV_CC_SetIntValueEx("OffsetY", 0) - self.cam.MV_CC_SetIntValueEx("Width", fast_roi['width']) - self.cam.MV_CC_SetIntValueEx("Height", fast_roi['height']) - self.cam.MV_CC_SetIntValueEx("OffsetX", fast_roi['offset_x']) - self.cam.MV_CC_SetIntValueEx("OffsetY", fast_roi['offset_y']) + self.cam.MV_CC_SetIntValueEx("Width", fast_roi["width"]) + self.cam.MV_CC_SetIntValueEx("Height", fast_roi["height"]) + self.cam.MV_CC_SetIntValueEx("OffsetX", fast_roi["offset_x"]) + self.cam.MV_CC_SetIntValueEx("OffsetY", fast_roi["offset_y"]) self.cam.MV_CC_StartGrabbing() # Update global K for new ROI offset - intr = _cam_cfg['intrinsics'] - K[0, 2] = intr['cx'] - fast_roi['offset_x'] - K[1, 2] = intr['cy'] - fast_roi['offset_y'] - print(f"[Fast ROI] Active. K updated: cx={K[0,2]:.1f}, cy={K[1,2]:.1f}") + intr = _cam_cfg["intrinsics"] + K[0, 2] = intr["cx"] - fast_roi["offset_x"] + K[1, 2] = intr["cy"] - fast_roi["offset_y"] + print(f"[Fast ROI] Active. K updated: cx={K[0, 2]:.1f}, cy={K[1, 2]:.1f}") def detect_cube_pose(self, corners, ids): """Detect cube pose via IPPE + ITERATIVE hybrid with dominant-face strategy. @@ -716,16 +776,21 @@ def detect_cube_pose(self, corners, ids): # --- Dominant face with hysteresis --- best_face = max(face_counts, key=face_counts.get) - if (self._prev_dominant_face is not None - and self._prev_dominant_face in face_counts - and face_counts.get(self._prev_dominant_face, 0) >= face_counts[best_face]): + if ( + self._prev_dominant_face is not None + and self._prev_dominant_face in face_counts + and face_counts.get(self._prev_dominant_face, 0) >= face_counts[best_face] + ): best_face = self._prev_dominant_face self._dominant_face = best_face self._prev_dominant_face = best_face self._active_faces = {best_face} - valid_indices = [i for i, tid in enumerate(ids.flatten()) - if int(tid) in self._tag_to_face and self._tag_to_face[int(tid)] == best_face] + valid_indices = [ + i + for i, tid in enumerate(ids.flatten()) + if int(tid) in self._tag_to_face and self._tag_to_face[int(tid)] == best_face + ] if valid_indices: corners = [corners[i] for i in valid_indices] ids = ids[valid_indices] @@ -737,7 +802,8 @@ def detect_cube_pose(self, corners, ids): # --- Step 1: IPPE returns both coplanar solutions (sol 0 has lower reproj) --- n_sol, rvecs_ippe, tvecs_ippe, reproj_errors = cv2.solvePnPGeneric( - obj_pts, img_pts, K, DIST_COEFFS, flags=cv2.SOLVEPNP_IPPE) + obj_pts, img_pts, K, DIST_COEFFS, flags=cv2.SOLVEPNP_IPPE + ) if n_sol == 0: self._lost_frames += 1 @@ -773,8 +839,12 @@ def detect_cube_pose(self, corners, ids): # --- Step 3: ITERATIVE refinement with IPPE pick as initial guess --- success, rvec, tvec = cv2.solvePnP( - obj_pts, img_pts, K, DIST_COEFFS, - rvec=pick_rvec.copy(), tvec=pick_tvec.copy(), + obj_pts, + img_pts, + K, + DIST_COEFFS, + rvec=pick_rvec.copy(), + tvec=pick_tvec.copy(), useExtrinsicGuess=True, flags=cv2.SOLVEPNP_ITERATIVE, ) @@ -785,8 +855,9 @@ def detect_cube_pose(self, corners, ids): # --- Step 4: Reprojection-error gate --- reproj_pts, _ = cv2.projectPoints(obj_pts, rvec, tvec, K, DIST_COEFFS) - reproj_err = float(np.mean(np.linalg.norm( - img_pts.reshape(-1, 2) - reproj_pts.reshape(-1, 2), axis=1))) + reproj_err = float( + np.mean(np.linalg.norm(img_pts.reshape(-1, 2) - reproj_pts.reshape(-1, 2), axis=1)) + ) self._reproj_err = reproj_err if reproj_err > self._reproj_threshold: self._lost_frames += 1 @@ -844,9 +915,9 @@ def _draw_world_axes(self, img, axis_length=0.03, line_width=4): z_pt = tuple(z_2d[0, 0].astype(int)) # Draw axes: X=Red, Y=Green, Z=Blue (BGR format) - cv2.arrowedLine(img, origin_pt, x_pt, (0, 0, 255), line_width, tipLength=0.3) # X - Red - cv2.arrowedLine(img, origin_pt, y_pt, (0, 255, 0), line_width, tipLength=0.3) # Y - Green - cv2.arrowedLine(img, origin_pt, z_pt, (255, 0, 0), line_width, tipLength=0.3) # Z - Blue + cv2.arrowedLine(img, origin_pt, x_pt, (0, 0, 255), line_width, tipLength=0.3) # X - Red + cv2.arrowedLine(img, origin_pt, y_pt, (0, 255, 0), line_width, tipLength=0.3) # Y - Green + cv2.arrowedLine(img, origin_pt, z_pt, (255, 0, 0), line_width, tipLength=0.3) # Z - Blue # Draw axis labels at arrow tips cv2.putText(img, "+X", x_pt, cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 0, 255), 2) @@ -856,7 +927,9 @@ def _draw_world_axes(self, img, axis_length=0.03, line_width=4): # Draw origin marker cv2.circle(img, origin_pt, 5, (255, 255, 255), -1) - def _draw_cube_axes_in_world(self, img, R_cube_world, t_cube_world, axis_length=0.025, line_width=2): + def _draw_cube_axes_in_world( + self, img, R_cube_world, t_cube_world, axis_length=0.025, line_width=2 + ): """Draw cube coordinate axes in world frame (transformed to camera for display).""" if self.world_pose is None: return @@ -898,9 +971,15 @@ def _draw_cube_axes_in_world(self, img, R_cube_world, t_cube_world, axis_length= z_pt = tuple(z_2d[0, 0].astype(int)) # Draw with lighter colors to distinguish from world axes - cv2.arrowedLine(img, origin_pt, x_pt, (100, 100, 255), line_width, tipLength=0.3) # X - Light Red - cv2.arrowedLine(img, origin_pt, y_pt, (100, 255, 100), line_width, tipLength=0.3) # Y - Light Green - cv2.arrowedLine(img, origin_pt, z_pt, (255, 100, 100), line_width, tipLength=0.3) # Z - Light Blue + cv2.arrowedLine( + img, origin_pt, x_pt, (100, 100, 255), line_width, tipLength=0.3 + ) # X - Light Red + cv2.arrowedLine( + img, origin_pt, y_pt, (100, 255, 100), line_width, tipLength=0.3 + ) # Y - Light Green + cv2.arrowedLine( + img, origin_pt, z_pt, (255, 100, 100), line_width, tipLength=0.3 + ) # Z - Light Blue def run(self): """Main detection loop.""" @@ -935,8 +1014,10 @@ def run(self): if ret != 0: self._grab_slow_count = 0 continue - print(f"[FLUSH] buffer backlog detected (grab={grab_dt*1000:.1f}ms), " - f"drained {flushed} stale frames") + print( + f"[FLUSH] buffer backlog detected (grab={grab_dt * 1000:.1f}ms), " + f"drained {flushed} stale frames" + ) self._grab_slow_count = 0 else: self._grab_slow_count = 0 @@ -977,19 +1058,20 @@ def run(self): # Detect cube ArUco tags # In preview mode with world fixed, use software ROI crop for speed - fast_roi = _cam_cfg.get('fast_roi') - _use_sw_roi = (self.visualize and self._world_fixed - and fast_roi is not None) + fast_roi = _cam_cfg.get("fast_roi") + _use_sw_roi = self.visualize and self._world_fixed and fast_roi is not None if _use_sw_roi: - rx, ry = fast_roi['offset_x'], fast_roi['offset_y'] - rw, rh = fast_roi['width'], fast_roi['height'] - gray_roi = gray[ry:ry+rh, rx:rx+rw] + rx, ry = fast_roi["offset_x"], fast_roi["offset_y"] + rw, rh = fast_roi["width"], fast_roi["height"] + gray_roi = gray[ry : ry + rh, rx : rx + rw] else: gray_roi = gray rx, ry = 0, 0 if self.aruco_detector is None: - corners, ids, _ = cv2.aruco.detectMarkers(gray_roi, self.aruco_dict, parameters=self.aruco_params) + corners, ids, _ = cv2.aruco.detectMarkers( + gray_roi, self.aruco_dict, parameters=self.aruco_params + ) else: corners, ids, _ = self.aruco_detector.detectMarkers(gray_roi) @@ -1070,7 +1152,12 @@ def run(self): if cube_quat_world is not None: q_xyzw = cube_quat_world # scipy xyzw, as wuji computed it quat_wxyz = np.array([q_xyzw[3], q_xyzw[0], q_xyzw[1], q_xyzw[2]]) - self.publisher.publish(cube_pos_world, quat_wxyz, world_fixed=self._world_fixed, cube_size=float(self._cube_size)) + self.publisher.publish( + cube_pos_world, + quat_wxyz, + world_fixed=self._world_fixed, + cube_size=float(self._cube_size), + ) # Visualization if self.visualize and color is not None: @@ -1099,20 +1186,59 @@ def run(self): progress = n_samples / self._world_sample_target bar_width = 200 bar_height = 20 - cv2.rectangle(color, (10, 10), (10 + bar_width, 10 + bar_height), (50, 50, 50), -1) - cv2.rectangle(color, (10, 10), (10 + int(bar_width * progress), 10 + bar_height), (0, 255, 255), -1) - cv2.rectangle(color, (10, 10), (10 + bar_width, 10 + bar_height), (255, 255, 255), 1) - cv2.putText(color, f"World Sampling: {n_samples}/{self._world_sample_target}", - (10, 50), cv2.FONT_HERSHEY_SIMPLEX, 0.7, (0, 255, 255), 2) + cv2.rectangle( + color, (10, 10), (10 + bar_width, 10 + bar_height), (50, 50, 50), -1 + ) + cv2.rectangle( + color, + (10, 10), + (10 + int(bar_width * progress), 10 + bar_height), + (0, 255, 255), + -1, + ) + cv2.rectangle( + color, (10, 10), (10 + bar_width, 10 + bar_height), (255, 255, 255), 1 + ) + cv2.putText( + color, + f"World Sampling: {n_samples}/{self._world_sample_target}", + (10, 50), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + (0, 255, 255), + 2, + ) else: # Fixed mode: show status - cv2.putText(color, "WORLD FIXED", (10, 30), - cv2.FONT_HERSHEY_SIMPLEX, 0.8, (0, 255, 0), 2) + cv2.putText( + color, + "WORLD FIXED", + (10, 30), + cv2.FONT_HERSHEY_SIMPLEX, + 0.8, + (0, 255, 0), + 2, + ) if world_detected: - cv2.putText(color, "(tag visible)", (180, 30), - cv2.FONT_HERSHEY_SIMPLEX, 0.5, (100, 255, 100), 1) - - cv2.putText(color, f"Tags: {n_tags}", (10, 60), cv2.FONT_HERSHEY_SIMPLEX, 0.6, (255, 255, 255), 2) + cv2.putText( + color, + "(tag visible)", + (180, 30), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + (100, 255, 100), + 1, + ) + + cv2.putText( + color, + f"Tags: {n_tags}", + (10, 60), + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, + (255, 255, 255), + 2, + ) # Display dominant face with color if self._dominant_face and self._dominant_face in FACE_COLORS: @@ -1121,26 +1247,54 @@ def run(self): # Draw color block + text cv2.rectangle(color, (10, 75), (40, 105), face_bgr, -1) cv2.rectangle(color, (10, 75), (40, 105), (255, 255, 255), 1) - cv2.putText(color, f"{face_name} ({color_name})", (50, 98), - cv2.FONT_HERSHEY_SIMPLEX, 0.7, face_bgr, 2) + cv2.putText( + color, + f"{face_name} ({color_name})", + (50, 98), + cv2.FONT_HERSHEY_SIMPLEX, + 0.7, + face_bgr, + 2, + ) if cube_quat_world is not None: - rpy = Rotation.from_quat(cube_quat_world).as_euler('xyz', degrees=True) - cv2.putText(color, f"RPY: ({rpy[0]:+.1f}, {rpy[1]:+.1f}, {rpy[2]:+.1f})", (10, 130), - cv2.FONT_HERSHEY_SIMPLEX, 0.6, (0, 255, 255), 2) + rpy = Rotation.from_quat(cube_quat_world).as_euler("xyz", degrees=True) + cv2.putText( + color, + f"RPY: ({rpy[0]:+.1f}, {rpy[1]:+.1f}, {rpy[2]:+.1f})", + (10, 130), + cv2.FONT_HERSHEY_SIMPLEX, + 0.6, + (0, 255, 255), + 2, + ) # FPS overlay (top-right) fps_color = (0, 255, 0) if self._display_fps >= 20 else (0, 165, 255) fps_text = f"FPS: {self._display_fps:.1f}" (tw, th), _ = cv2.getTextSize(fps_text, cv2.FONT_HERSHEY_SIMPLEX, 0.8, 2) - cv2.putText(color, fps_text, (color.shape[1] - tw - 10, th + 10), - cv2.FONT_HERSHEY_SIMPLEX, 0.8, fps_color, 2) + cv2.putText( + color, + fps_text, + (color.shape[1] - tw - 10, th + 10), + cv2.FONT_HERSHEY_SIMPLEX, + 0.8, + fps_color, + 2, + ) # Key hints - cv2.putText(color, "q:quit r:reset w:resample world s:select ROI", (10, 755), - cv2.FONT_HERSHEY_SIMPLEX, 0.5, (180, 180, 180), 1) - - cv2.imshow('Cube World Observer', cv2.resize(color, (960, 768))) + cv2.putText( + color, + "q:quit r:reset w:resample world s:select ROI", + (10, 755), + cv2.FONT_HERSHEY_SIMPLEX, + 0.5, + (180, 180, 180), + 1, + ) + + cv2.imshow("Cube World Observer", cv2.resize(color, (960, 768))) self.cam.MV_CC_FreeImageBuffer(self.stOutFrame) @@ -1153,39 +1307,45 @@ def run(self): self.last_frame_count = self.frame_count if not self._world_fixed: n_samples = len(self._world_samples_R) - print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World Sampling: {n_samples}/{self._world_sample_target}") + print( + f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World Sampling: {n_samples}/{self._world_sample_target}" + ) elif cube_quat_world is not None: - rpy = Rotation.from_quat(cube_quat_world).as_euler('xyz', degrees=True) + rpy = Rotation.from_quat(cube_quat_world).as_euler("xyz", degrees=True) # cube_quat_world is (x,y,z,w) from scipy qx, qy, qz, qw = cube_quat_world px, py, pz = cube_pos_world - print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Tags: {n_tags} | " - f"Pos: ({px:+.4f}, {py:+.4f}, {pz:+.4f}) | " - f"Quat(wxyz): ({qw:+.4f}, {qx:+.4f}, {qy:+.4f}, {qz:+.4f}) | " - f"Quat(xyzw): ({qx:+.4f}, {qy:+.4f}, {qz:+.4f}, {qw:+.4f}) | " - f"RPY: ({rpy[0]:+6.1f}, {rpy[1]:+6.1f}, {rpy[2]:+6.1f})") + print( + f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Tags: {n_tags} | " + f"Pos: ({px:+.4f}, {py:+.4f}, {pz:+.4f}) | " + f"Quat(wxyz): ({qw:+.4f}, {qx:+.4f}, {qy:+.4f}, {qz:+.4f}) | " + f"Quat(xyzw): ({qx:+.4f}, {qy:+.4f}, {qz:+.4f}, {qw:+.4f}) | " + f"RPY: ({rpy[0]:+6.1f}, {rpy[1]:+6.1f}, {rpy[2]:+6.1f})" + ) else: - print(f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Cube: NOT DETECTED") + print( + f"[{self.frame_count:6d}] FPS: {fps:5.1f} | World: FIXED | Cube: NOT DETECTED" + ) self.last_print_time = now if self.visualize: key = cv2.pollKey() & 0xFF - if key == ord('q'): + if key == ord("q"): break - elif key == ord('r'): + elif key == ord("r"): # Reset cube filters only (not world frame) self.filter_R.reset() self.filter_t.reset() self.prev_quat = None print("Cube filters reset!") - elif key == ord('w'): + elif key == ord("w"): # Resample world frame self.start_world_sampling() # Also reset cube filters since world frame changed self.filter_R.reset() self.filter_t.reset() self.prev_quat = None - elif key == ord('s'): + elif key == ord("s"): self._select_and_save_fast_roi(bgr) def _select_and_save_fast_roi(self, current_frame): @@ -1208,8 +1368,10 @@ def _select_and_save_fast_roi(self, current_frame): scale_y = current_frame.shape[0] / display_size[1] x, y, w, h = cv2.selectROI( - "Select ROI (ENTER/SPACE=confirm, C=cancel)", display, - showCrosshair=True, fromCenter=False, + "Select ROI (ENTER/SPACE=confirm, C=cancel)", + display, + showCrosshair=True, + fromCenter=False, ) cv2.destroyWindow("Select ROI (ENTER/SPACE=confirm, C=cancel)") @@ -1287,28 +1449,52 @@ def main(): cfg = load_observer_config() parser = argparse.ArgumentParser(description="Cube World Observer") - parser.add_argument('--preview', action='store_true', help="Show preview window") - parser.add_argument('--port', type=int, default=None, help="ZMQ port (override config)") - parser.add_argument('--process-noise', type=float, default=None, help="SO3 Kalman Q (override config)") - parser.add_argument('--measurement-noise', type=float, default=None, help="SO3 Kalman R (override config)") - parser.add_argument('--alpha', type=float, default=None, help="Position LP alpha (override config)") - parser.add_argument('--world-samples', type=int, default=WORLD_SAMPLE_FRAMES, - help=f"Number of frames to sample for world frame (default: {WORLD_SAMPLE_FRAMES})") - parser.add_argument('--cube', type=str, default=None, - help="Cube tags config: a size suffix (e.g. '36', '40_5') " - "resolving to config/cube_tags.json, or a literal " - "path. Default: config/cube_tags.json (54mm).") + parser.add_argument("--preview", action="store_true", help="Show preview window") + parser.add_argument("--port", type=int, default=None, help="ZMQ port (override config)") + parser.add_argument( + "--process-noise", type=float, default=None, help="SO3 Kalman Q (override config)" + ) + parser.add_argument( + "--measurement-noise", type=float, default=None, help="SO3 Kalman R (override config)" + ) + parser.add_argument( + "--alpha", type=float, default=None, help="Position LP alpha (override config)" + ) + parser.add_argument( + "--world-samples", + type=int, + default=WORLD_SAMPLE_FRAMES, + help=f"Number of frames to sample for world frame (default: {WORLD_SAMPLE_FRAMES})", + ) + parser.add_argument( + "--cube", + type=str, + default=None, + help="Cube tags config: a size suffix (e.g. '36', '40_5') " + "resolving to config/cube_tags.json, or a literal " + "path. Default: config/cube_tags.json (54mm).", + ) args = parser.parse_args() cube_config_path = resolve_cube_config_path(args.cube) # Use config values, CLI args override # ZMQ port from unified config_loader (control.yaml) port = args.port if args.port is not None else DEFAULT_CUBE_PORT - process_noise = args.process_noise if args.process_noise is not None else cfg['rotation_filter']['process_noise'] - measurement_noise = args.measurement_noise if args.measurement_noise is not None else cfg['rotation_filter']['measurement_noise'] - alpha = args.alpha if args.alpha is not None else cfg['position_filter']['alpha'] + process_noise = ( + args.process_noise + if args.process_noise is not None + else cfg["rotation_filter"]["process_noise"] + ) + measurement_noise = ( + args.measurement_noise + if args.measurement_noise is not None + else cfg["rotation_filter"]["measurement_noise"] + ) + alpha = args.alpha if args.alpha is not None else cfg["position_filter"]["alpha"] - print(f"Filter params: process_noise={process_noise}, measurement_noise={measurement_noise}, alpha={alpha}") + print( + f"Filter params: process_noise={process_noise}, measurement_noise={measurement_noise}, alpha={alpha}" + ) print(f"World frame sampling: {args.world_samples} frames") observer = CubeWorldObserver( diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py b/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py index a33ab864..e94aa1b4 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/hand_utils.py @@ -140,10 +140,7 @@ def cmd_check(_args: argparse.Namespace) -> int: expected_home = default_joint_pos() diff = flat - expected_home print("\n Current vs home pose (default_joint_pos):") - print( - f" Max abs diff: {np.abs(diff).max():.3f} rad " - f"({np.rad2deg(np.abs(diff).max()):.1f}°)" - ) + print(f" Max abs diff: {np.abs(diff).max():.3f} rad ({np.rad2deg(np.abs(diff).max()):.1f}°)") print(f" RMS diff: {np.sqrt(np.mean(diff**2)):.3f} rad") print(" (A large diff just means the hand isn't at home yet — not an error.)") @@ -157,7 +154,9 @@ def cmd_check(_args: argparse.Namespace) -> int: def main(argv: list[str] | None = None) -> int: parser = argparse.ArgumentParser(description="Wuji hand hardware utilities (home / check).") sub = parser.add_subparsers(dest="cmd", required=True) - p_home = sub.add_parser("home", help="Ramp all 20 joints to the home grasp pose (writes targets).") + p_home = sub.add_parser( + "home", help="Ramp all 20 joints to the home grasp pose (writes targets)." + ) p_home.set_defaults(func=cmd_home) p_check = sub.add_parser("check", help="READ-ONLY connection + encoder sanity check.") p_check.set_defaults(func=cmd_check) diff --git a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py index bed26f4f..bbc826ea 100644 --- a/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py +++ b/examples/wuji/src/genelab_wuji/deploy/scripts/play_real.py @@ -173,9 +173,7 @@ def main() -> int: parser.add_argument("--no-zmq", action="store_true", help="skip ZMQ; zeros cube / stub goal") parser.add_argument("--cube-port", type=int, default=DEFAULT_CUBE_PORT) parser.add_argument("--goal-port", type=int, default=DEFAULT_GOAL_PORT) - parser.add_argument( - "--goal-mode", choices=("external", "fixed", "random"), default="external" - ) + parser.add_argument("--goal-mode", choices=("external", "fixed", "random"), default="external") parser.add_argument( "--goal-quat", type=_parse_quat_wxyz, default=None, help="fixed goal 'w,x,y,z'" ) diff --git a/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py b/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py index 4c384c22..3b8d6f41 100644 --- a/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py +++ b/examples/wuji/src/genelab_wuji/deploy/zmq_bridge.py @@ -289,9 +289,7 @@ def publish( ) -> None: import zmq - msg = cube_msg_from_pose( - pos, quat_wxyz, world_fixed=world_fixed, cube_size=cube_size - ) + msg = cube_msg_from_pose(pos, quat_wxyz, world_fixed=world_fixed, cube_size=cube_size) msg["timestamp"] = time.time() self._socket.send_string(json.dumps(msg), flags=zmq.NOBLOCK) diff --git a/pyproject.toml b/pyproject.toml index 1dabebf3..6da9bb49 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -183,6 +183,14 @@ reportUnknownParameterType = false line-length = 100 src = ["src"] +[tool.ruff.lint.per-file-ignores] +# Ported Hikvision MVS SDK glue (vendored from the wuji-mjlab vision toolchain): +# the vendor camera bindings are loaded via `from MvImport.MvCameraControl_class +# import *` / `from ctypes import *` (F403/F405) after a runtime sys.path insert +# locating the SDK (E402). Both are inherent to the vendor SDK and cannot be +# resolved statically (the SDK is not installed in CI). +"examples/wuji/src/genelab_wuji/deploy/scripts/cube_world_observer.py" = ["E402", "F403", "F405"] + [tool.pytest.ini_options] addopts = ["-ra"] pythonpath = ["examples/genelab_examples/src", "examples/unitree/src", "examples/inverted_pendulum/src", "examples/genelab_showcase/src", "examples/franka/src", "examples/wuji/src"] diff --git a/tests/test_examples_wuji_deploy_sim_viz.py b/tests/test_examples_wuji_deploy_sim_viz.py index 6abd1fa4..e902a856 100644 --- a/tests/test_examples_wuji_deploy_sim_viz.py +++ b/tests/test_examples_wuji_deploy_sim_viz.py @@ -56,8 +56,6 @@ def test_tag_pose_in_world_applies_tag_in_palm_offset() -> None: # constant TAG_IN_PALM transform from the reorient constants. from genelab_wuji.reorient.constants import TAG_IN_PALM_POS, TAG_IN_PALM_QUAT_WXYZ - tag_pos_w, tag_quat_w = tag_pose_in_world( - np.zeros(3), np.array([1.0, 0.0, 0.0, 0.0]) - ) + tag_pos_w, tag_quat_w = tag_pose_in_world(np.zeros(3), np.array([1.0, 0.0, 0.0, 0.0])) assert np.allclose(tag_pos_w, TAG_IN_PALM_POS, atol=1e-9) assert np.allclose(tag_quat_w, TAG_IN_PALM_QUAT_WXYZ, atol=1e-9) diff --git a/tests/test_examples_wuji_deploy_zmq_bridge.py b/tests/test_examples_wuji_deploy_zmq_bridge.py index 701c4232..ca2b7907 100644 --- a/tests/test_examples_wuji_deploy_zmq_bridge.py +++ b/tests/test_examples_wuji_deploy_zmq_bridge.py @@ -55,9 +55,7 @@ def test_cube_pose_from_msg_preserves_quat_component_mapping() -> None: assert cube_size is None # absent in this message -def _cube_msg( - pos: list[float], quat_wxyz: list[float], world_fixed: bool -) -> dict[str, Any]: +def _cube_msg(pos: list[float], quat_wxyz: list[float], world_fixed: bool) -> dict[str, Any]: w, x, y, z = quat_wxyz return { "world_fixed": world_fixed,