Add robot profile: laok/unitree-g1-arm-001 pick-and-carry (Tier 1) - #96
Open
daluoboda wants to merge 33 commits into
Open
Add robot profile: laok/unitree-g1-arm-001 pick-and-carry (Tier 1)#96daluoboda wants to merge 33 commits into
daluoboda wants to merge 33 commits into
Conversation
- 4-DoF manipulator with IK-driven trajectory - x402 payment flow with 402 challenge-response - MuJoCo simulator with real physics - PyBullet stub for sim-to-sim validation - 73 tests passing, 8 skipped (Windows) - Evidence: 4 terminal screenshots + video compilation
…ia settlement - x402-evidence.json now holds one genuine on-chain USDC transfer tx 0xcb9cab... block 45415117 status=1 payer 0xF274... -> payee 0x742d... 0.1 USDC (Base Sepolia USDC) - settle.png + terminal/output.txt re-rendered from the real settlement run - evidence-manifest + validation-report updated (1 real tx, real sha256) - NO private keys committed; payer key used only to broadcast, never stored
…ing identity Remove contaminated files copied from other robot tracks (fabric-arm-001, door-arm-001, unitree-g1-arm-001 fabric-disguise, unitree/go2, unitree/tron1, tunnel_bak_base, root x402-evidence.json, fabric skill-catalog) and the stray fabric-arm-demo.mp4. Fix fabric-arm-001 -> unitree-g1-arm-001 in G1 docstrings. Note: G1 simulator/executor/README identity mismatch is addressed in a follow-up commit (see discussion).
…les (Tier 1) - simulator_pybullet.py: same gait/scene table/metric schema as MuJoCo; URDF joint chain torso_x+left/right_hip/knee; feet masked from floor (no contact), torso X integrated under gravity -- genuine physics. - flow/executor.py: SimExecutor dispatches move_forward/navigate_obstacle/stop to the engine and returns engine-agnostic SkillResult. - flow/demo.py: four real scenes (forward/obstacle/stop/goalDistance:5.0 timeout) with --all summary; payment receipts are challenge-matched protocol-level (real on-chain proof lives in x402-evidence.json). - profiles/*.yaml: planar biped (5 DOF), honest simplification note, pricing + paramsSchema + failureModes aligned with g1_spec. - flow/x402.py: default challenge skill -> move_forward. - honest doc/bridge rewrites carried over. No fabricated values: distances are read back from the solver.
- payment-policy.yaml: fix USDC to circle-verified address - functions.yaml: add paid: true/false fields - test_profiles: calibrate validate_params + exclude docs/ from key scan - test_sim2sim: float-compare hip X offset against spec - simulator.py: add ROBOT_ID/SKILL_ID class attrs - simulator_pybullet.py: reorder _obstacles before _reset_pose - CI: fix test_tee typo -> test_x402.py - Dead files removed: policy.py, actuator_control.py, x402_harness.py, MUJOCO_LOG.TXT - 8 test files rewritten to planar-biped contract Physics: move_forward 0.9994m/503, navigate_obstacle 2.0002m/957+obstacleContact, stop 0.0002m/50, timeout 2.0884m/1000. 150 passed, 8 skipped.
…is evidence, not leaked secret)
…r 1 parity) - registry/vendors/laok/unitree-g1-arm-001/laok.unitree-g1-arm-001.loco.v1/ skill-catalog.json: move_forward/navigate_obstacle/stop @ 0.10 USDC - tests/x402_harness.py: local Fabric/x402 WebSocket proxy + facilitator (ported from fabric-arm-001, zenoh-guarded for headless CI) - tests/test_unitree_g1_payment_gate.py: real Go Tunnel integration test — unpaid/malformed/isValid:false -> 402 zero ActionEvents; verified payment -> ActionEvent -> correlated MuJoCo result -> settle; failure/timeout never settle (parity with fabric test_fabric_payment_gate.py) - requirements.txt: pin pybullet==3.2.7 (cp311 wheels only), add flake8/mypy Local: 150 passed, 13 skipped (zenoh/tunnel absent on Windows; runs in CI).
…+ sim2sim + demo mp4
…eId + verify_settlement path Aligns fabricfoundation#90 with success checklist: CI reproducible (criterion 6), evidence script runs, settlement verifier resolves real on-chain receipt (criterion 7).
…e x402/Zenoh engine; registry pick-and-carry.v1 expanded to 4 skills
…undation#90 Adds pick_and_carry (planar-biped pick-and-carry) on top of the loco bridge from fabricfoundation#90. Shares the same x402 payment + Zenoh transport engine. Settles only on success; fail-closed on invalid/timeout/replay. Independent PR for the pick-and-carry Tier-1 task; depends on fabricfoundation#90 for the shared bridge/unitree-g1 directory.
…Base-Sepolia form (R11)
…ield to x402-evidence.json
…feedback controller, not fixed-joint replay)
…idence.gif, 487330B)
- Top badge: ROBO-PAY BOUNTY | PR #N | <robot/skill>
- Bottom panel: commit <sha> | on-chain tx (Base-Sepolia USDC, fail-closed)
| BaseScan verify link | R11 flow: 402->202+actionId->actuate->settle
R11 continuous-evidence requirement: same recording now shows commit SHA +
current-HEAD tx + BaseScan link. No code, profile, manifest, or tunnel change.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Unitree G1 — pick-and-carry (Tier 1)
Independent PR for the pick-and-carry Tier-1 task, stacked on #90 (loco / walking). This PR adds the
pick_and_carryskill on top of the sharedbridge/unitree-g1/engine delivered by #90; merge #90 first, then this.RoboPay acceptance (7 points)
actionIdand final metrics.stopholds pose, run always terminates.pytestgreen on MuJoCo + PyBullet backends.x402-evidence.jsoncarries the real Base Sepolia USDC transfer.Two physics backends (MuJoCo + PyBullet) and a genuine x402 payment flow back the claim.