Add robot profile: boston_dynamics/spot/boston_dynamics.spot.mujoco-pybullet-sim.v1 - #86
Add robot profile: boston_dynamics/spot/boston_dynamics.spot.mujoco-pybullet-sim.v1#86EslaM-X wants to merge 6 commits into
Conversation
…im-to-sim 🇪🇬 Adds a simulator-only Tier-1 robot profile for the Boston Dynamics Spot (google-deepmind/mujoco_menagerie) with seven paid skills — wave, sit, stand, bow, nod, turn_to_face, hold — driven by a joint-space controller, plus a sim-to-sim check (MuJoCo vs PyBullet, 0.06 cm agreement). - registry/vendors/boston_dynamics/spot/boston_dynamics.spot.mujoco-pybullet-sim.v1/ robot profile, skills, payment policy (x402, settle-on-success only), execution mapping, example envelope, skill-contract tests, validation report - simulation/spot/: SpotController (MuJoCo), payment_gate.py (x402 402/409, settle-only-on-success), robopay_link.py (Zenoh action->skill->result), skills.json, simulate_paid_action.py, 4 tests - simulation/pybullet/: kin URDF + test_sim2sim.py + sim2sim_report.json - simulation/setup.sh fetches the pinned menagerie Spot model - .github/workflows/spot-simulation-tests.yml runs the MuJoCo/PyBullet suite on ubuntu-latest
👋 Maintainers — ready for reviewThe full simulation suite is green on my fork: The workflows on this PR are queued behind the first-time-contributor gate — Review snapshot
Happy to address any review feedback. — EslaM-X 🇪🇬 |
Covers the wiki review-checklist item 'Emergency stop or safe stop behavior is described': stop halts motion and returns the robot to the stable home stance. Wired through the controller, skill catalog (JSON + YAML), execution mapping, payment policy, validation report and the skill-acceptance test. Adds captured CI terminal logs as demo evidence for the simulator-only submission.
✅ Update — 8th skill (safe stop) + terminal-log evidenceQuick follow-up before review:
Still needs Approve and run on this PR's workflows from a maintainer. — EslaM-X 🇪🇬 |
|
Hi @fabricfoundation — a quick update from my side 🙌 I've just added per-skill simulator screenshots (wave peak · sit crouch · bow · nod · turn · stance) next to the existing screen recording and the full terminal logs, so the paid skills are easy to eyeball without downloading anything. Quick recap of where this submission stands:
The honest scope is stated in the body: simulator-only, settlement exercised against the local facilitator — no on-chain settlement, no implied physical validation. Open to any feedback — happy to iterate on whatever the reviewers want. 🦾 — EslaM-X 🇪🇬 |
- Run test_result_semantics.py and test_link.py headless on ubuntu-latest (eclipse-zenoh added), so the full paid-action wire contract is covered by CI like the Go2 suite. - Rename the sim-to-sim artifact to spot_sim2sim_report.json and point the test, README and validation report at it. - Unify simulation/setup.sh and simulation/README.md with the go2 branch (both robots share one pinned menagerie clone, idempotent).
🦾 Boston Dynamics Spot · Tier 1 Simulator Submission
Profile:
boston_dynamics/spot/boston_dynamics.spot.mujoco-pybullet-sim.v1Scope: Simulator-only · 8 paid skills · MuJoCo + PyBullet
What's in the box
registry/vendors/boston_dynamics/spot/boston_dynamics.spot.mujoco-pybullet-sim.v1/simulation/spot/simulation/pybullet/simulation/setup.shThe 8 skills (all priced, all measurable)
wave·sit·stand·stop(safe stop) ·bow·nod·turn_to_face·holdEvery skill is executed by a joint-space trajectory controller and reports
real simulator metrics — paw lift height, sit depth, torso pitch/yaw,
body height, achieved heading — then returns to the home stance
(
|bodyZ − 0.434| < 0.02) so paid actions run back to back.stopis thefail-safe skill: it halts motion and returns the robot to its stable home
pose (the wiki review checklist requires safe-stop behavior to be described).
Success criteria — cleared
robot/tunnel/resultrobot/tunnel/action, republishes with actionId, responds on the documented result topicsimulation/docs/spot.gif)402+PAYMENT-REQUIRED; forged/expired receipts ⇒402; replayed idempotencyKey/txHash ⇒409; onlystatus: successmay settleUNPAID,INVALID_PARAMS,UNKNOWN_SKILL,WRONG_ROBOT,DUPLICATE, tamperedparamsHash)stopskill halts motion and returns to the stable home stance (wiki review checklist)simulation/pybullet/sim2sim_report.json)End-to-end flow
Evidence
simulation/docs/spot.gif(7 MB) — the 8 paid skills executed on the official MuJoCo Spot modelsimulation/docs/spot-shots/(wave peak, sit crouch, bow, nod, turn, stance)simulation/docs/ci-logs.txtdocs/images/flow.pngsimulation/pybullet/sim2sim_report.jsonspot-simulation-testsworkflow runs the full suite onubuntu-latest— green on the fork (run 31497754516)Reproduce in < 30 minutes
Known limitations (honest scope)
same local facilitator the robot link trusts; no on-chain settlement.
reimplements the exact x402 decisions the tunnel's middleware makes before
actuation, and the wire contract is exercised through peer-mode Zenoh exactly
as the tunnel would publish it.
Built with care by EslaM-X 🇪🇬 — open to review feedback and happy to
iterate on any criterion.