Skip to content

WidowX embodiment + OpenVLA/openpi policy plugin#2

Merged
jeqcho merged 12 commits into
mainfrom
feat/widowx-plugin
Jul 17, 2026
Merged

WidowX embodiment + OpenVLA/openpi policy plugin#2
jeqcho merged 12 commits into
mainfrom
feat/widowx-plugin

Conversation

@jeqcho

@jeqcho jeqcho commented Jul 17, 2026

Copy link
Copy Markdown
Contributor

Closes #1

Implements the WidowX 250S sibling per plans/0001-widowx-openvla-design.md: a widowx embodiment wrapping the BridgeData widowx_envs ZMQ client (7-D eef_delta_pose contract at 5 Hz), an openvla REST /act client, and an openpi websocket client. Full house scaffolding.

Plan critique loop and implementation land as follow-up commits on this branch.

🤖 Generated with Claude Code

jeqcho and others added 12 commits July 17, 2026 03:39
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…delity

Addresses critique round 1: rotation_repr=none (DeltaLimitApprover rejects
euler pose modes; honest euler_xyz tracked as inspect-robots#143); scalar
max_delta gripper-pinning warning replaces the wrong 20-step claim; state
is 7-D xyz+euler+gripper (no quat on the wire); move() takes a 4x4 matrix
blocking=True with a quat conversion helper; client-side 256 lanczos+JPEG
resize in the default transport; WidowXStatus error propagation; dead cv2
contingency and inert image_size dropped.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…chanics

Round 2: the documented start quat cannot reproduce the reference
wrapper's rotation (the gap is the controller's default-rotation compose),
so START_TRANSFORM ships the wrapper's matrix verbatim and start_eef_quat
is gone; observation_space(include_state) splits embodiment vs policy
declarations; the Status IntEnum mirrors all four upstream ints with
by-value comparison and guarded rendering; pillow joins deps/overrides/
hygiene; fault-contract and matrix-fixture tests added.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
START_TRANSFORM reference matrix, rotation_repr=none decision documented
(inspect-robots#143), observation_space(include_state) split.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Status IntEnum mirrors all four upstream codes; non-SUCCESS always
raises; git-only install commands pin frozen upstream HEADs.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Client-side 256 lanczos + JPEG round-trip in the default OpenVLA
transport only; preflight --json carries dry_run.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
canary.yml and release.yml byte-copied from inspect-robots-franka.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
…period

Review finding: the blocking reset move commanded a ~74 degree
reorientation as a 0.2 s trajectory (the per-step move_duration is the
wrong knob; the pinned upstream controller honors duration for the move
path). New start_move_duration_s field defaults to the reference
wrapper's 0.8 s. Also: RUNTIME_REQUIREMENTS on OpenpiPolicy for the
git-only client, a non-default wiring test for env params and pacing,
README notes on the camera-topic limitation and the openpi entry-point
collision, and the plan amendment recording the hardcoded camera_topics.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@jeqcho
jeqcho merged commit c0b2758 into main Jul 17, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Implement WidowX embodiment + OpenVLA/openpi policy plugin

1 participant