Hands
A hand is where a humanoid meets the world, and where every gram counts twice: once as a load the wrist, elbow and shoulder must hold out at arm’s length, and once as a limit on what the fingers can grip. Marvin Bot uses two open-source AmazingHand kits on a small wrist servo. This page shows what that combination can carry and why the v1 payload is about 0.5 kg, not the 1 kg the requirements ask for.
The idea in one picture
Section titled “The idea in one picture”Hold a 1 kg bag of sugar at your side, then hold it straight out in front of you. Same mass, very different effort: your shoulder now has to resist the bag’s weight times the full length of your arm. Torque is force times the horizontal distance from the joint (the moment arm), so a payload at the fingertips loads every joint between it and the body, and the joints nearest the body see the longest lever. The wrist sees the shortest lever but has the smallest motor. And before any of that, the fingers must grip the object hard enough that friction stops it sliding out.
So a robot hand is two problems: can the fingers hold it (grip and friction, Playground 2) and can the arm hold the hand out (joint torques, Playground 1). On Marvin Bot the weak link is the second one, at the wrist. Page 18 covered the controllers that will move these hands; page 20 covers measuring real parts, such as the hands, which have not been weighed yet.
Playground 1: wrist and arm load calculator
Section titled “Playground 1: wrist and arm load calculator”A side view of one arm in its pitch plane. The masses and lengths are Marvin Bot’s (from the generated URDF); change the pose, the payload and the hand. Torques are static: holding still, no acceleration.
Playground 2: finger force and holdable mass
Section titled “Playground 2: finger force and holdable mass”How hard can a finger press, and what can friction hold? Each AmazingHand finger has two servos; when both turn the same way the finger curls, when they turn opposite ways it swings sideways. For a squeezing grasp their torques add.
From first principles
Section titled “From first principles”Degrees of freedom and underactuation
Section titled “Degrees of freedom and underactuation”A human hand has about 20 joints driven by many more muscles. A robot hand trades that off against weight, cost and control. Each independently driven joint is a degree of freedom (DOF); a hand with fewer motors than joints is underactuated: linkages, tendons or springs couple joints so that one motor curls several, and the fingers wrap around an object’s shape on their own.[6] Underactuation makes hands lighter and more forgiving; full actuation gives more control of finger pose for in-hand manipulation.
Three ways to drive a finger
Section titled “Three ways to drive a finger”- Tendons: motors sit in the forearm and pull cables through the fingers, like human tendons. Light fingers and many DOF, but cables stretch, need tensioning and wear. The open-source ORCA hand (17 DOF) is a modern tendon design that works hard on reliability.[5]
- Linkages: motors in the palm or finger base drive the joints through rigid links. Stiff, precise and repeatable, but bulkier per DOF. The AmazingHand uses linkages from servos in the palm.[1]
- Direct servos: one servo at each joint. Simple to model and control, heavier fingers. The open-source LEAP Hand puts 16 servos directly at its joints.[4]
Grip force and friction
Section titled “Grip force and friction”A servo’s torque τ (N·m) becomes a fingertip force F = τ·η / L, where L (m) is the effective lever from the servo to the contact point and η the linkage efficiency. In words: a stronger servo, a more efficient linkage or a shorter lever all press harder. (This is the one-joint case of the statics rule τ = JTF that maps contact forces to joint torques through the Jacobian J.)[7] Two AmazingHand servos per finger add their torques when the finger curls. In a pinch, the object is held only by friction at its two faces: each face can resist up to μN along the surface, where N is the squeezing force and μ the friction coefficient, so the holdable mass is
mmax = 2 · μ · N / g
with g = 9.81 m/s². Divide by a safety factor for the accelerations of walking. A power grasp, with the object resting in the curled fingers and palm, is not limited this way: geometry carries the load, which is why a cupped hand can carry more than a pinch.
Payload at reach
Section titled “Payload at reach”For each joint, the static gravity torque is the sum over everything outboard of it:
τjoint = g · Σ mi · xi
where mi is each mass outboard of the joint (link, motor, hand, payload) and xi its horizontal distance from the joint axis. In the playground, angles are measured from straight down, so a point at distance r along a segment pointing at angle φ is x = r·sin φ ahead and r·cos φ below. Check by hand for the hand alone, level: 0.418 kg × 9.81 m/s² × 0.086 m = 0.35 N·m. Add 0.5 kg at 0.17 m: 0.5 × 9.81 × 0.17 = 0.83 N·m, total 1.19 N·m, which is 76% of the STS3250’s 1.57 N·m rating.
The AmazingHand
Section titled “The AmazingHand”The AmazingHand by Pollen Robotics is an open-source humanoid hand: four fingers (three and a thumb), two jointed segments (phalanges) each, eight Feetech SCS0009 servos inside the hand, about 400 g, under €200 in parts; software under Apache-2.0 and the mechanical design under CC-BY-4.0.[1] Each finger is a parallel mechanism: two servos side by side drive it, together for flexion and in opposition for side-to-side abduction. The servos are on a serial bus (each needs a unique ID) and want an external 5 V supply. The SCS0009 is a 5–6 V micro servo with a stall torque of about 2.3 kg·cm (0.23 N·m; kg·cm is the hobby-servo unit, and 1 kg·cm ≈ 0.098 N·m) and a rated torque of about 0.75 kg·cm (0.074 N·m), roughly 11 g.[2] Pollen publishes no grip force or payload, and notes the design has not yet been tested on long, complex grasping tasks. Its “Enhanced” version uses STS3032 servos (about 4.5 kg·cm stall, 1.5 kg·cm rated at 6 V[3]) for under €350; its to-do list includes compliant links and fingertip sensors.
How Marvin Bot does it
Section titled “How Marvin Bot does it”Trade-offs and alternatives
Section titled “Trade-offs and alternatives”| Option | For | Against |
|---|---|---|
| AmazingHand on an STS3250 wrist pitch (chosen) | Open design, 8 DOF, cheap, already bought; meshes can ship in the repo | Small finger servos; wrist at 75% of rated with 0.5 kg; hand about 30% larger than a person’s scaled to Marvin Bot |
| RS00 for wrist pitch | 14 N·m peak, plenty of margin | “Overkill”, +0.24 kg at the end of the arm, which the elbow and shoulder then carry |
| STS3215 for wrist pitch | Lighter, cheaper | 2.9 N·m stall: too little margin |
| Keep the 1-DOF gripper with compliant fingers | Cheaper, robust, simple to learn with | Cannot learn finger-level skills; hands already bought |
| Other open hands: LEAP Hand (16 DOF, direct servos), ORCA (17 DOF, tendons) | More dexterity, published learning results | Heavier and costlier per hand, larger than this robot’s scale, a bigger wrist needed |
Decisions you can make here
Section titled “Decisions you can make here”- What payload to promise for v1 tasks (pick-and-place of 0.5 kg; brief holds only), and which arm poses the VLA’s training data should prefer (payload close to the wrist axis, elbow bent).
- Whether the first hand upgrade is pads (cheap, more μ) or STS3032 servos (more force, and more wrist load if objects get heavier).
- Whether R20’s 1 kg at reach needs a stronger wrist pitch (a second servo, or an RS00 at +0.24 kg) before any hand upgrade.
Built from your settings above. Paste it into an issue, a design discussion or an AI assistant session.
Further reading
Section titled “Further reading”- AmazingHand on GitHub: assembly guide, print tips, Python and Arduino examples, and the kinematics demos.
- LEAP Hand (Shaw, Agarwal and Pathak, 2023): a low-cost open hand designed for robot learning, with a clear discussion of its joint layout.
- ORCA hand (2025): how an open tendon-driven hand was made reliable enough for long learning runs.
- Modern Robotics (Lynch and Park), chapters 5 and 12: statics with the Jacobian, and grasping with friction cones.
Sources
Section titled “Sources”- Pollen Robotics, AmazingHand (GitHub) — used for: 4 fingers, 8 DOF, two SCS0009 servos per finger in a parallel mechanism, 400 g, <€200, licences, 5 V supply, Enhanced STS3032 version (<€350), to-do list.
- Feetech SCS0009 retailer specification (Maker Store) — used for: 2.3 kg·cm stall at 6 V, about 0.75 kg·cm rated, 11 g, 1.0 A stall.
- Feetech STS3032 retailer specification (Evelta) — used for: 4.5 kg·cm stall, 1.5 kg·cm rated at 6 V.
- Shaw, Agarwal and Pathak, LEAP Hand: Low-Cost, Efficient, and Anthropomorphic Hand for Robot Learning, RSS 2023 — used for: a direct-servo open-source hand as an alternative.
- Christoph et al., ORCA: An Open-Source, Reliable, Cost-Effective, Anthropomorphic Robotic Hand, 2025 — used for: a tendon-driven open-source hand (17 DOF) as an alternative.
- Birglen, Laliberté and Gosselin, Underactuated Robotic Hands, Springer 2008 — used for: underactuation and self-adapting grasps.
- Lynch and Park, Modern Robotics, 2017 — used for: statics τ = JᵀF and friction in grasping.
- RobStride, Product_Information — used for: RS00, RS10P (held 9.5 N·m) and RS03 rated and peak torques (as in
description/actuators.yaml).