Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
broomva avatar

Orcahand

  • 1 installs
  • Updated May 26, 2026
  • broomva/orcahand-skill

OrcaHand is a Claude Code skill for the 17-DOF ORCA tendon-driven robotic hand that implements an agentic control-kernel Plant interface with typed schemas, safety shields and multi-rate control loops.

About

This skill is a full-stack control layer for the 17-DOF ORCA tendon-driven robotic hand, implementing an agentic control-kernel Plant interface with typed schemas and safety shields. It covers the full lifecycle: assembly, MuJoCo simulation, RL training, teleoperation and sim-to-real transfer. A developer uses it to build, simulate, teleoperate and train grasp policies for the hand through a shared physical/simulated interface.

  • Full-stack skill for the 17-DOF ORCA tendon-driven robotic hand
  • Typed state/action schemas, safety shields and multi-rate control loops
  • Covers sim (MuJoCo), RL training, teleoperation and sim-to-real

Orcahand by the numbers

  • 1 all-time installs (skills.sh)
  • Ranked #14,102 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Jul 28, 2026 (Skillselion catalog sync)
At a glance

orcahand capabilities & compatibility

Capabilities
robotic control · rl training · teleoperation · sim to real
Use cases
orchestration
Platforms
macOS
Pricing
Free
From the docs

What orcahand says it does

Full-stack skill for the ORCA Hand — 17-DOF tendon-driven robotic hand (ETH Zurich).
SKILL.md
Dual-backend: physical (`orca_core`) and simulated (`orca_sim`) share identical typed schemas.
SKILL.md
**Emergency fallback**: `hand.disable_torque()` — hand goes limp.
SKILL.md
npx skills add https://github.com/broomva/orcahand-skill --skill orcahand

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs1
Last updatedMay 26, 2026
Repositorybroomva/orcahand-skill

What it does

Use it to build, simulate, teleoperate and train grasp policies for the ORCA robotic hand via a typed control-kernel interface.

Who is it for?

Building or assembling the OrcaHand, running orca_sim, teleoperating, training grasp policies and sim-to-real transfer

Skip if: General software product work; it is specific to the ORCA robotic hand hardware and control stack

When should I use this skill?

Building the hand, simulating in orca_sim, teleoperating, training grasp policies, or defining control-kernel Plant schemas

What you get

A shared physical and simulated Plant interface with safety shields for building, teleoperating and training the ORCA hand

  • Plant control schemas
  • safety shields
  • trained grasp policy

By the numbers

  • 17-DOF hand
  • 5 safety shields
  • 4 control loop rates (servo/mid/outer/meta)

Files

SKILL.mdMarkdownGitHub ↗

OrcaHand

Full-stack skill for the ORCA Hand — 17-DOF tendon-driven dexterous robotic hand. Compounds on agentic-control-kernel (plant/shield/trace) and bstack (governance).

Plant Interface

Dual-backend: physical (orca_core) and simulated (orca_sim) share identical typed schemas.

observe() → OrcaHandState (schemas/orcahand-state.schema.json)
  measured:
    joint_positions: {thumb_mcp, thumb_abd, thumb_pip, thumb_dip,
                      index_abd, index_mcp, index_pip,
                      middle_abd, middle_mcp, middle_pip,
                      ring_abd, ring_mcp, ring_pip,
                      pinky_abd, pinky_mcp, pinky_pip, wrist}  # degrees
    motor_currents:      17 motors, mA
    motor_temperatures:  17 motors, celsius
    tactile_readings:    per-sensor [fx, fy, fz] in N (touch model only)
  estimated:
    grasp_state:  "open" | "contact" | "secured" | "slipping"
  context:
    backend: "physical" | "simulated"
    control_mode: "position" | "current" | "current_based_position"
    torque_enabled: bool

apply(action) → ActuationResult (schemas/orcahand-action.schema.json)
  directive_type:  setpoint_update | experiment_request | mode_switch
  target_controller: "orca_core" | "orca_sim"
  payload:
    joint_targets: {joint_name: degrees}   # partial dict OK
    num_steps: 25, step_size: 0.001s
    grasp_type: "power" | "precision" | "pinch"

reset(seed?) → neutral position (physical) or env.reset (simulated)

constraints():
  joint_roms: per-joint [min_deg, max_deg] from config.yaml
  max_current: 200mA, max_temperature: 70°C

Safety Shields

Implements kernel SafetyShield contract: filter(), feasible(), fallback().

ShieldInvariantfilter()feasible()
Joint ROMTargets within boundsClamp to valid range>= 1 joint can move
Max Current< 200mA per motorDisable torque, alertCurrent below threshold
Temperature< 70°C per motorDisable torque, cooldownAll motors < 65°C
Velocity< safe joint velocityReduce step_sizeVelocity achievable
TactileForce < sensor maxRelease grasp, back offForce within range

Emergency fallback: hand.disable_torque() — hand goes limp. Safe due to popping joints. Cascade: filter() -> feasible() -> if infeasible -> emergency fallback + alert outer loop.

Multi-Rate Loop Mapping

SERVO (ms)     Dynamixel PID firmware. Agent never touches this.
     |
MID (10-100ms) Retargeter @ 30Hz / RL policy @ 60Hz / Replay @ 60Hz
               Safety shields run HERE: ROM clamp + current check per frame
     |
OUTER (sec)    LLM supervisory: grasp strategy, mode switch, task goals
               Outputs ControlDirective -> mid-loop controller
     |
META (min-day) EGRI: problem-spec -> train in sim -> evaluate -> promote to physical
               Runs on remote GPU, validated on local macOS

Quick Starts

  • Build a hand: Read references/hardware-build.md — BOM, 3D printing, Dynamixel sourcing, assembly, wiring
  • Simulate: Read references/simulation-setup.mdpip install orca_sim, MuJoCo on macOS, environment catalog
  • Teleoperate: Read references/teleoperation.md — AVP / Rokoko / MediaPipe -> retargeter -> hand
  • Train RL policies: Read references/rl-training.md — local CPU/MPS or remote GPU, reward design
  • Improve controllers: Read references/egri-controller-loop.md — EGRI problem-spec, evaluator, promotion

Scope Router

Load the relevant reference based on user intent. Max 3 references at once.

IntentKeywordsReference
Build handbuild, print, assemble, BOM, servo, wirehardware-build.md
Calibratecalibrate, tension, neutral, config.yaml, serialcalibration-pipeline.md
Simulatesimulate, mujoco, orca_sim, gymnasium, rendersimulation-setup.md
Traintrain, RL, PPO, SAC, reward, policy, GPUrl-training.md
Teleoperateteleoperate, retarget, vision pro, rokoko, mediapipeteleoperation.md
Sim-to-realsim-to-real, domain randomization, joint reordersim-to-real.md
EGRIimprove, optimize, EGRI, problem-spec, evaluatoregri-controller-loop.md
APIOrcaHand class, set_joint_pos, REST API, joint namesapi-reference.md
Installinstall, clone, dependencies, which repo, versiondependency-graph.md
Debugservo not found, segfault, drift, error, stucktroubleshooting.md

Scripts

  • scripts/orcahand_init.py — Bootstrap workspace: clone repos, install deps, detect serial, generate .control/plant.yaml
  • scripts/orcahand_check.py — Health check for bstack integration (JSON output, exit 0/1)

Schemas

  • schemas/orcahand-state.schema.json — extends kernel state.schema.json
  • schemas/orcahand-action.schema.json — extends kernel action.schema.json
  • schemas/orcahand-trace.schema.json — extends kernel trace.schema.json

Templates

  • assets/templates/problem-spec.orcahand.yaml — EGRI template for grasp optimization
  • assets/templates/config.orcahand.yaml — starter config for new hand builds

Related skills

FAQ

How many degrees of freedom does the hand have?

17 DOF; the tendon-driven ORCA Hand from ETH Zurich.

What are the safety shields?

Joint ROM, max current (<200mA), temperature (<70C), velocity and tactile shields that filter actions and trigger an emergency torque-disable fallback.

Does it support both simulation and hardware?

Yes. The Plant interface is dual-backend, with physical (orca_core) and simulated (orca_sim) sharing identical typed schemas.

AI & Agent Buildingagentsautomation

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.