FingerSurfer - Robotic Hand for Finger Skateboarding
A tendon-driven robotic hand that finger-skateboards over an obstacle treadmill — UCLA MECH&AE C163C/C263C
FingerSurfer
FingerSurfer investigates dexterous robotic manipulation through the task of finger skateboarding. A modified ORCA tendon-driven robotic hand balances and steers a fingerboard across an obstacle treadmill, requiring coordinated multi-finger motion and force regulation. Built as the final project for UCLA MECH&AE C163C/C263C — Control of Robotic Systems.
The FingerSurfer platform — ORCA robotic hand, obstacle treadmill, and custom control board
Motivation
Dexterous in-hand manipulation is a key challenge in robotics — it requires multi-finger coordination, contact switching, and force regulation. Finger skateboarding is an appealing testbed because it demands continuous balance, contact regulation, and coordinated two-finger control under dynamic disturbances. To simplify contact management, magnetic coupling is used between the fingertips and the fingerboard, allowing the project to focus on force control and coordination rather than contact switching.
Hardware
Robotic Hand
The hand is based on the open-source ORCA hand, a tendon-driven anthropomorphic design. The original 17-DOF hand was reduced to a 4-DOF configuration — only the index and middle fingers are actively actuated at the MCP (metacarpophalangeal) and PIP (proximal interphalangeal) joints, driven by four Dynamixel MX-28AR servo motors. Tendon-driven actuation decouples the motors from the fingers, reducing distal inertia and improving backdrivability for compliant manipulation.
Custom components were designed to integrate the MX-28AR motors (larger than the original XC330-T288-T), including redesigned motor mounting plates and 3D-printed spool adapters. Ferromagnetic screws at the fingertips pair with permanent magnets on the skateboard to maintain contact.
Obstacle Treadmill
The treadmill emulates forward skateboard motion while keeping the hand stationary. It consists of 36 modular 3D-printed plates driven by two stepper motors, with an effective length of ~36 inches. Plates can be swapped out to create six different obstacle profiles — hills, ramps, rails — with up to 40 mm of geometric variation.
Obstacle treadmill — (a) side view showing dual stepper-driven rollers and 36-plate belt, (b) six interchangeable obstacle profiles
CAD
Full assembly CAD — ORCA hand, custom mount tower, and obstacle treadmill
Control
Several control strategies were implemented and compared for terrain-tracking performance:
PID Control — proportional, integral, and derivative feedback on joint tracking error. Simple and widely used, but high gains can cause oscillation or loss of contact.
Feed-forward PD — adds an acceleration feed-forward term to anticipate rapid height changes from the known treadmill profile, combined with PD feedback for residual error correction.
Gravity Compensation — a model-based term that offsets the torque needed to hold the fingers against gravity, reducing the work the feedback controller must do. Implemented in simulation but not on hardware due to motor interface limitations.
Impedance Control — regulates the relationship between motion error and force using a virtual spring-damper system in task space. Also implemented in simulation only, as it requires reliable force feedback.
Results
The feedforward PD controller outperformed pure PID, reducing maximum tracking error from ~12.3° to ~8.0° and average tracking error from ~3.2° to ~1.3°.
Tracking comparison — poorly tuned PID (left), well-tuned PID (center), and feedforward PD (right). Feedforward PD handles abrupt trajectory changes with less overshoot and oscillation.
Software
The software stack runs on a Raspberry Pi 5 and is implemented in Python with a modular architecture:
Software architecture — planner, estimator, and controller modules communicate through a central main loop to the hardware interface
Desired finger trajectories are generated from the obstacle profile — variations in the z-direction over a constant x-y plane — and converted to joint-space commands via inverse kinematics at 30 Hz. Motor position, velocity, and current measurements are logged at the same rate for offline analysis.
Simulation
A kinematic simulation validates trajectories before running on hardware. The simulator solves inverse kinematics along the trajectory generated from the treadmill surface profile, with a constant z-offset for belt thickness.
Time-sequence visualization — the simulated hand tracks the treadmill surface profile
Demo
FingerSurfer in action — the robotic hand balances a fingerboard across the obstacle treadmill
Source Code
The full codebase is open-sourced at github.com/Kevin75311/FingerSurfer.