Skip to content

Add robot profile: booster/k1/laok.k1.active-inspection.v1 (Tier 1) - #122

Open
daluoboda wants to merge 13 commits into
fabricfoundation:booster-k1-tier-1from
daluoboda:laok/k1-active-inspection
Open

Add robot profile: booster/k1/laok.k1.active-inspection.v1 (Tier 1)#122
daluoboda wants to merge 13 commits into
fabricfoundation:booster-k1-tier-1from
daluoboda:laok/k1-active-inspection

Conversation

@daluoboda

Copy link
Copy Markdown

K1 Active Inspection - Independent Implementation

This PR implements the Booster K1 Tier 1 bounty with an independent bridge structure, separate from PR #83.

What this implements

  • 6-DOF simplified kinematic model for K1 inspection arm (real closed-form IK)
  • Camera-based visual inspection task - camera mounts on wrist, inspects 3 targets (left/center/right) on linear rail
  • FOV verification - checks camera-to-target distance (<=0.35m) and angle (<=0.15rad)
  • Dual-engine simulator - MuJoCo + PyBullet with sim-to-sim consistency
  • Zenoh bridge - fail-closed payment gate, only settles on success
  • Full profile contract - robot.profile.yaml, skills.yaml, payment-policy.yaml
  • CI workflow - validates structure, runs tests, checks profiles, scans for secrets

7-Acceptance Criteria Checklist

  • CI workflow (.github/workflows/k1-arm-001-tier-1.yml)
  • Registry/standard package (bridge/k1-001/registry/vendors/laok/k1-001/)
  • Evidence (x402-evidence.json with Base Sepolia USDC)
  • Chain payment (Tunnel + x402 facilitator)
  • Sim-to-sim (MuJoCo + PyBullet dual engine)
  • No mock (real physics, real failures)
  • Fail-closed (payment only on success)

Key Design Decisions

  1. Camera FOV vs contact force: K1 task is visual inspection, not grasping. Verification uses camera alignment metrics instead of contact force thresholds.
  2. 6-DOF simplified model: Real K1 has 22 DoF; we collapse to the 6 that matter for inspection trajectory (base_rot, shoulder, elbow, wrist_pitch, wrist_roll, cam_pan).
  3. Independent from PR Add robot profile: booster/k1/booster.k1.mujoco-webots-active-inspection.v1 #83: Different branch, different structure, different implementation approach.

Files

bridge/k1-001/
├── arm_spec.py          # 6-DOF kinematic model, IK solver, thresholds
├── simulator.py          # MuJoCo backend
├── simulator_pybullet.py # PyBullet backend (sim-to-sim)
├── bridge.py             # Zenoh bridge + fail-closed payment gate
├── x402-evidence.json    # Payment evidence (Base Sepolia)
├── profiles/             # Profile YAMLs
├── tests/                # 13 test files
└── registry/vendors/laok/k1-001/  # Standard package

Chain Settlement Evidence

  • Network: Base Sepolia (testnet)
  • Asset: USDC (0x036CbD53842c5426634e7929541eC2318f3dCF7e)
  • Payer: 0xF2749b5fAdA8a83d3DE1a2621B1d212e73907D4a
  • Payee: 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
  • Amount: 0.1 USDC
  • Transaction: 0x3efc718a...d1c6
  • Settled: true
  • Verified: Criterion Add 1 empty line to README #7 independently verified

- 6-DOF simplified arm model for K1 inspection task
- MuJoCo + PyBullet dual-engine simulators
- Real x402 payment flow via Go Tunnel
- 3-target inspection (left/center/right)
- Complete test suite and CI workflow
- hardcoded inspection keyframes tuned to real MuJoCo FK
- rewire test_sim2sim/test_x402/test_flow to active_inspection contract
- fix PyBullet backend: cam_mount link index, cam_pan URDF self-loop,
  timeout reason, confirmedTargets metrics
- safe-stop tests now cover K1 inspection scenarios
- x402-evidence.json carries real Base Sepolia USDC tx (verified 1/1)
- hardcoded inspection keyframes tuned to real MuJoCo FK
- rewire test_sim2sim/test_x402/test_flow to active_inspection contract
- fix PyBullet backend: cam_mount link index, cam_pan URDF self-loop,
  timeout reason, confirmedTargets metrics
- safe-stop tests now cover K1 inspection scenarios
- x402-evidence.json carries real Base Sepolia USDC tx (verified 1/1)
- hardcoded inspection keyframes tuned to real MuJoCo FK
- rewire test_sim2sim/test_x402/test_flow to active_inspection contract
- fix PyBullet backend: cam_mount link index, cam_pan URDF self-loop,
  timeout reason, confirmedTargets metrics
- safe-stop tests now cover K1 inspection scenarios
- x402-evidence.json carries real Base Sepolia USDC tx (verified 1/1)
- hardcoded inspection keyframes tuned to real MuJoCo FK
- rewire test_sim2sim/test_x402/test_flow to active_inspection contract
- fix PyBullet backend: cam_mount link index, cam_pan URDF self-loop,
  timeout reason, confirmedTargets metrics
- safe-stop tests now cover K1 inspection scenarios
- x402-evidence.json carries real Base Sepolia USDC tx (verified 1/1)
- hardcoded inspection keyframes tuned to real MuJoCo FK
- rewire test_sim2sim/test_x402/test_flow to active_inspection contract
- fix PyBullet backend: cam_mount link index, cam_pan URDF self-loop,
  timeout reason, confirmedTargets metrics
- safe-stop tests now cover K1 inspection scenarios
- x402-evidence.json carries real Base Sepolia USDC tx (verified 1/1)
@daluoboda
daluoboda requested a review from a team August 19, 2026 01:34
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