20.3 - Kinematic Analysis

20.3 - Kinematic Analysis

Ideal Motion and Force Profiles

image-20260406-024312.png

The ideal motion profile is a smooth, nearly uniform closure over the full input stroke. The fingertip should advance steadily instead of bunching most of the motion at the start or end. The ideal force profile is back-loaded: keep forces low early in the motion, then build force later near full closure so the grasp becomes stronger only when needed.

physical proof-20260406-022507.gif

 

The current PRB finger model treats the finger as a planar pseudo-rigid-body (PRB) mechanism with three revolute joints, a tendon input, and compliant flexures that act like torsional springs.

The current implementation is a quasi-static reduced-order model:

  • The finger backbone is approximated as a 3R planar linkage.

  • The tendon is assumed rigid in tension, consistent with a nylon web strap.

  • Each flexure is modeled as a linear torsional spring.

  • By default, the model sweeps from the open pose to the modeled full-closure pose, meaning all three PRB joints go from 0 to their configured limits.

  • Velocities and accelerations are computed kinematically from sampled motion.

  • Force analysis is quasi-static, so inertial forces are not included in the torque balance.

 

Mobility Calculation

For the mobility equation, we regularly use the Kutzbach criterion

image-20260405-153124.png

where:

  • N is the number of links including ground

  • J1 is the number of lower pairs

  • J2 is the number of higher pairs

However, mobility with compliant joints and tendons, is not that straight-forward so we instead have to focus on the rigid links we can analyze and what contraints the different connections add to the system.

By only analyzing the rigid joints, we have 5 links, 1 ground link and the 4 finger links, which make 9 degrees of freedom available. From here, we analyze what degrees of freedom each connection takes away. The 3 compliant joints not only take away 2 degrees of freedom each (X,Y translation), so now we have 9 - 6 = 3 DOF remaining.

However, because each compliant joint is the same material, we have an equation for the torsional stiffness for each joint that removes 1 DOF from the system. To go along with this, we have a tendon going through each rigid that has a constant tension force, which creates a constant torque at each angle. As also shown below, this constant force is used to solve for the angle of each joint. These final 2 constraints reduce the system to one degree of freedom.

The analysis discussed above will then be worked out below.

Mechanism Features Used

  1. PRB Compliance Model

Each flexure is treated as a rectangular beam segment with second moment of area

image-20260405-144021.png

The code then uses an equivalent rotational stiffness

image-20260405-144031.png

 

  1. Tendon Tension to Joint Angles

For a tendon tension T, the tendon produces a joint torque

image-20260405-144111.png

Each joint also has an activation threshold τa,i, and once that threshold is overcome, the remaining torque is balanced by the torsional spring:

image-20260405-144123.png

So the unconstrained joint angle is

image-20260405-144138.png

The code clips this to the physical range

image-20260405-144148.png

 

  1. Tendon Pull Model

With a rigid tendon, actuator pull is modeled entirely as rotational shortening caused by joint motion:

image-20260405-144225.png

 

3a. Pulley and Motor-Angle Model

The motor drives a pulley with outer diameter

image-20260405-144800.png

so the effective pulley radius used in the code is

image-20260405-144525.png

Assuming no slip and a rigid tendon, motor angle maps directly to tendon pull:

image-20260405-144827.png

where θm is in radians.

If motor angle is expressed in degrees, the same relation is

image-20260405-144841.png

At this point it helps to separate two different ideas:

  • the hardware reference motor range stored in motor_angle_range_de

  • the modeled closure range that falls out of the current joint limits and tendon moment arms

The default report and animation use the second one. In other words, the code now asks: "How much pull does this geometry need to go from all joints at 0 to all joints at their limits?" and then converts that pull into an equivalent motor angle.

That modeled closure pull is

image-20260405-144915.png

The corresponding motor angle is

image-20260405-145103.png

With the current defaults:

image-20260405-145114.png

so

image-20260405-145124.png

and the equivalent closure angle of the input motor is:

image-20260405-145342.png

That means the current model reaches the joint-limit pose at about 111.18° of pulley rotation.

The separate motor_angle_range_deg value is still kept around as a hardware reference so the code can compare "what this geometry wants" against "what the real motor is expected to do."

Because the tendon is rigid in the model, the pull range is capped by the joint limits:

image-20260405-145610.png

Because the model is used in the opposite direction during simulation, the code solves

image-20260405-145621.png

for T numerically using a bracket-and-bisection procedure.

 

  1. Forward Kinematics

Once the three joint angles are known, the linkage is treated as a serial planar chain similar to 2D transform kinematics that we have done in lecture.

Let the cumulative orientation of link j be

image-20260405-145714.png

Then the position of the end of link j is

image-20260405-145724.png

The fingertip face is modeled as a short rigid segment attached to the distal link. Its orientation is

image-20260405-145733.png

 

  1. State Construction Over the Full Stroke

For each actuator pull sample within

image-20260405-151538.png

the code:

  1. solves for tendon tension

  2. solves for joint angles

  3. computes joint positions and fingertip position

  4. computes distal face orientation

To cover the whole operating range, the code samples pull values uniformly:

image-20260405-151553.png

By default, the model uses the full geometric pull range, then maps that pull history into the equivalent motor-angle history with the pulley relation. So the report axis is still motor angle, but the stopping point comes from the finger geometry rather than from a hardcoded motor command.

 

  1. Time Parameterization, Velocities, and Accelerations

The model assumes a constant actuator pull speed va, so time is assigned from pull by

image-20260405-151715.png

Because the pulley radius is known, the equivalent motor speed is

image-20260405-151728.png

After the position history is sampled, the code computes derivatives numerically with numpy.gradient:

image-20260405-151752.png

The analysis computes:

  • joint angular velocities

    image-20260405-152039.png
  • joint angular accelerations

    image-20260405-151917.png
  • link angular velocities and accelerations

  • point velocities and accelerations for all joint points

  • fingertip speed and acceleration magnitude

For a sampled planar point trajectory

image-20260405-152105.png

, the cumulative path length is

image-20260405-152117.png

 

  1. Quasi-Static Force and Torque Analysis

The model treats the tendon/flexure system as quasi-static at each sample. For each joint:

  • tendon torque:

image-20260405-152306.png
  • activation torque:

image-20260405-152326.png
  • spring torque:

image-20260405-152344.png

The code also reports the residual

image-20260405-152651.png

which should stay small except where clipping or thresholding changes the exact balance.

 

  1. Equivalent Output Force and Mechanical Advantage

If fingertip path length is s, then the local motion transmission is approximated by

image-20260405-152804.png

In the code, this is evaluated along the motor-angle axis because the report is plotted against pulley rotation. Using virtual work,

image-20260405-152821.png

so the implemented force estimate is

image-20260405-152831.png

Because Δ=rpθm, this is equivalent to the more familiar pull-based form

image-20260405-152839.png

The reported mechanical advantage is then

image-20260405-152916.png

Its important to note this is not a full contact mechanics model, but it's a scalar equivalent force along the sampled fingertip travel direction.

 

Full Range Animation

finger-curl.gif

Sources

[1] J. J. Craig, Introduction to Robotics: Mechanics and Control, 3rd ed. Upper Saddle River, NJ, USA: Pearson, 2005.

[2] L. L. Howell, Compliant Mechanisms. New York, NY, USA: Wiley, 2001.

[3] M. T. Mason, Mechanics of Robotic Manipulation. Cambridge, MA, USA: MIT Press, 2001.

[4] Y. Zhang et al., “Modeling of grasping force for a soft robotic gripper with variable stiffness,” Mechanism and Machine Theory, vol. 128, pp. 1–14, 2018.