Skip to content

RoboPay Tier 1: Paid Mobile Pick-and-Place Service -- fetch-001 (MuJoCo + x402 + Pi) - #76

Closed
daluoboda wants to merge 49 commits into
fabricfoundation:mainfrom
daluoboda:feat/fetch-001-tier1
Closed

RoboPay Tier 1: Paid Mobile Pick-and-Place Service -- fetch-001 (MuJoCo + x402 + Pi)#76
daluoboda wants to merge 49 commits into
fabricfoundation:mainfrom
daluoboda:feat/fetch-001-tier1

Conversation

@daluoboda

Copy link
Copy Markdown

RoboPay Tier 1: Paid Mobile Pick-and-Place Service -- fetch-001

Tier-1 compliance at a glance

Requirement Status Evidence
True MuJoCo simulation OK Headless MuJoCo Fetch model: navigate + pick + place (CI green)
x402 payment gate (verified, not mock) OK PaymentGate with amount/network/asset/expiry checks + replay protection
Settle only on success OK settlementEligible: success, noSettleResultStatuses: [error, pending, timeout]
On-chain settlement evidence PENDING Structure complete - USDC/Base Sepolia + Pi Testnet dual-payment
robotModel unique OK fetch-001 - no other PR uses this model name
Pi payment dual-channel OK Pi Testnet accepted as alternate payment; Horizon verification implemented

What this PR adds

  • Mobile manipulation: Fetch robot navigates to object, picks, places on shelf -- first mobile pick-and-place in the bounty
  • Dual-payment: USDC (Base Sepolia) + Pi (Testnet)
  • Full CI pipeline: pytest (Pay-to-Actuate + MuJoCo sim) + verify_settlement (Base Sepolia + Pi Horizon)

Related PRs (same author, different robotModels)

…ck.v1

Tier 1 simulated pick-and-stack: MuJoCo 4-DoF arm picking a cube and stacking it on top of another cube. Gated by verified x402 USDC on Base Sepolia. Unique robotModel (stack-arm-001), no competing submissions.
Dual-cube MuJoCo scene with cube-to-cube collision. 7-phase controller: approach_a/descend_a/grip_a/lift_a/move_above_b/place/verify. Stack stability verified via A_z > B_z + 2cm and XY alignment check.

Distinct from pick_object. Stack-specific metrics: stack_stable, a_z, b_z, xy_aligned.
Dual-cube MuJoCo scene with cube-to-cube collision. 7-phase controller: approach_a/descend_a/grip_a/lift_a/move_above_b/place/verify. Stack stability verified via A_z > B_z + 2cm and XY alignment check.

Distinct from pick_object. Stack-specific metrics: stack_stable, a_z, b_z, xy_aligned.
Dual-cube MuJoCo scene with cube-to-cube collision. 7-phase controller: approach_a/descend_a/grip_a/lift_a/move_above_b/place/verify. Stack stability verified via A_z > B_z + 2cm and XY alignment check.

Distinct from pick_object. Stack-specific metrics: stack_stable, a_z, b_z, xy_aligned.
@daluoboda
daluoboda requested a review from a team August 7, 2026 07:23
daluoboda and others added 6 commits August 7, 2026 15:28
…mes, remove stray stack-arm-001

- bridge: add simulator.py (fetch_mobile_pick) + arm_spec.py (reused stack physics)
- SKILL_ID: fetch_mobile_fetch_mobile_pick -> fetch_mobile_pick
- test_bridge.py: import from laok_fetch_001_zenoh_bridge (was laok_fetch_mobile_001)
- robot.profile.yaml / payment-policy.yaml: fix wrong filename + double prefix
- requirements.txt: fix copy-residue comment
- remove stack-arm-001 (belongs to PR #72, was accidentally bundled)
…o x402-evidence.json

- payer 0xA0723A2d... -> payee 0x742d35Cc... via USDC transferWithAuthorization
- tx 0xef567bf8a100cbb3fe8745606f13576d76e81e8fc64365e78ed57496f4321bcb, receipt status=1
- verify_settlement.py will now find 1/1 on-chain settlement
@daluoboda

Copy link
Copy Markdown
Author

Closing — this PR tracked the wrong head branch (feat/fetch-001-tier1, abandoned). The audit work now lives on feat/fetch-arm-001-tier1 in PR #78. Superseded.

@daluoboda daluoboda closed this Aug 8, 2026
@daluoboda
daluoboda deleted the feat/fetch-001-tier1 branch August 8, 2026 14:22
@daluoboda

Copy link
Copy Markdown
Author

Closing this duplicate submission.

The canonical, actively-reviewed version of this fetch (Paid Mobile Pick-and-Place) integration is #78 (same skill profile, later revision). Please refer to #78 for the bounty submission. This PR is retained only for record.

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.

1 participant