Finger and hand kinematics¶
The ADAPT finger and hand are rigid chains of phalanges driven through tendons and cables, with
fewer motors than joints. This page gives the equations of robots.adapt: how motor angles set
joint angles, and how joint angles place the fingertip, and then how the hand’s motors drive its joints.
The finger¶
The finger has three phalanges, proximal, middle and distal, of 40.0, 30.0 and 17.5 mm, joined by three revolute joints, MCP, PIP and DIP (the metacarpophalangeal, proximal interphalangeal and distal interphalangeal joints), all turning about \(x\). Straight, it points along \(y\). Bending it turns the tip towards \(z\).
Motors to joints¶
Two motors drive the three joints. The first pulls a cable on a pulley of the MCP joint. The second drives the PIP joint through a cable, and the DIP joint follows the PIP joint. With motor angles \(q_0, q_1\),
with \(r_m\) the motor pulley’s radius, \(r_p\) that of the MCP pulley and \(c_p\) the cable constant
of the PIP drive. For the template, \(r_p/r_m\) and \(r_m/c_p\) are 0.446 and
0.615 rad per radian of motor angle. In matrix form \(\theta = C\,q\), a
LinearCoupling of the chain.
Joints to the fingertip¶
Each joint turns everything beyond it about \(x\), so with \(\phi_1 = \theta_\text{MCP}\), \(\phi_2 = \phi_1 + \theta_\text{PIP}\) and \(\phi_3 = \phi_2 + \theta_\text{DIP}\) the fingertip is at
in the finger’s base frame. Its Jacobian with respect to the motor angles is \(J = (\partial p/\partial\theta)\,C\), which the library computes by automatic differentiation.
The hand¶
The hand has a thumb and four fingers, each a chain of revolute joints from the hand’s base.
The thumb has the joints CMC1, CMC2 (carpometacarpal), MCP and IP (interphalangeal), and each
finger has the joints spread, MCP, PIP and DIP. The origins and axes of the joints are tables in robots.adapt (HAND_JOINTS, HAND_FINGER_BASES).
13 motors drive its 20 joints, \(\theta = C\,q\):
each thumb joint has a motor of its own;
each finger’s MCP joint has a motor, and one more drives its PIP and DIP joints together, as on the finger;
one motor spreads the fingers, turning the index, middle, ring and pinky spread joints by -0.033, 0, +0.033 and +0.050 rad per radian of its angle: the middle finger stays in place.
The joint-limit springs keep each joint within the ranges in adapt.JOINT_LIMITS and
adapt.HAND_JOINT_LIMITS.