20.3 - Kinematic Analysis
Ideal Motion and Force Profiles
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.
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
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
PRB Compliance Model
Each flexure is treated as a rectangular beam segment with second moment of area
The code then uses an equivalent rotational stiffness
Tendon Tension to Joint Angles
For a tendon tension T, the tendon produces a joint torque
Each joint also has an activation threshold τa,i, and once that threshold is overcome, the remaining torque is balanced by the torsional spring:
So the unconstrained joint angle is
The code clips this to the physical range
Tendon Pull Model
With a rigid tendon, actuator pull is modeled entirely as rotational shortening caused by joint motion:
3a. Pulley and Motor-Angle Model
The motor drives a pulley with outer diameter
so the effective pulley radius used in the code is
Assuming no slip and a rigid tendon, motor angle maps directly to tendon pull:
where θm is in radians.
If motor angle is expressed in degrees, the same relation is
At this point it helps to separate two different ideas:
the hardware reference motor range stored in
motor_angle_range_dethe 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
The corresponding motor angle is
With the current defaults:
so
and the equivalent closure angle of the input motor is:
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:
Because the model is used in the opposite direction during simulation, the code solves
for T numerically using a bracket-and-bisection procedure.
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
Then the position of the end of link j is
The fingertip face is modeled as a short rigid segment attached to the distal link. Its orientation is
State Construction Over the Full Stroke
For each actuator pull sample within
the code:
solves for tendon tension
solves for joint angles
computes joint positions and fingertip position
computes distal face orientation
To cover the whole operating range, the code samples pull values uniformly:
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.
Time Parameterization, Velocities, and Accelerations
The model assumes a constant actuator pull speed va, so time is assigned from pull by
Because the pulley radius is known, the equivalent motor speed is
After the position history is sampled, the code computes derivatives numerically with numpy.gradient:
The analysis computes:
joint angular velocities
joint angular accelerations
link angular velocities and accelerations
point velocities and accelerations for all joint points
fingertip speed and acceleration magnitude
For a sampled planar point trajectory
, the cumulative path length is
Quasi-Static Force and Torque Analysis
The model treats the tendon/flexure system as quasi-static at each sample. For each joint:
tendon torque:
activation torque:
spring torque:
The code also reports the residual
which should stay small except where clipping or thresholding changes the exact balance.
Equivalent Output Force and Mechanical Advantage
If fingertip path length is s, then the local motion transmission is approximated by
In the code, this is evaluated along the motor-angle axis because the report is plotted against pulley rotation. Using virtual work,
so the implemented force estimate is
Because Δ=rpθm, this is equivalent to the more familiar pull-based form
The reported mechanical advantage is then
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
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.