Differential kinematics
Differential kinematics describes the relationship between joint velocities and the instantaneous linear and angular velocities of points and links in a robot manipulator.
For a robot with configuration
the joint-velocity vector is
The conventions used in this section follow Mathematical notation and conventions, Rotations, Homogeneous transformations, and Forward kinematics.
Geometric Jacobian
Moro uses the geometric Jacobian as the main differential-kinematics representation.
For the terminal frame, the geometric Jacobian satisfies
Here,
\(\vec v_{O_n}^{\,0}\) is the linear velocity of the terminal origin,
\(\vec\omega_n^{\,0}\) is the angular velocity of the terminal link,
both quantities are expressed in the base frame \(\{0\}\).
For an \(n\)-degree-of-freedom robot,
The Jacobian is divided into linear and angular blocks:
where
and
Therefore,
and
Geometric and analytical Jacobians
The geometric Jacobian should not be confused with an analytical Jacobian.
The geometric Jacobian maps joint rates directly to linear and angular velocity:
An analytical Jacobian instead maps joint rates to the time derivative of a chosen pose parametrization. For example,
where \(\boldsymbol\eta\) may represent Euler angles or another minimal orientation parametrization.
Important
id=”y1v91h” Angular velocity \(\vec\omega\) is not, in general, equal to the time derivative of a vector of Euler angles.
For this reason, the geometric and analytical Jacobians are different objects.
Moro’s main Jacobian interface refers to the geometric Jacobian.
Jacobian of an arbitrary point
Let \(P\) be a point rigidly attached to link \(k\).
Its position relative to frame \(\{k\}\) is
The position of the same point with respect to the base frame is
The geometric Jacobian associated with this point is written as
It satisfies
The upper block describes the linear velocity of the point \(P\).
The lower block describes the angular velocity of the rigid link \(k\) to which the point is attached.
Note
id=”psx3da” A geometric point does not possess an independent angular velocity. The angular block of \(J_P\) refers to the angular velocity of the rigid link containing the point.
Column-by-column construction
The geometric Jacobian can be constructed one column at a time using the joint axes and frame-origin positions obtained from forward kinematics.
Under the classic Denavit–Hartenberg convention used by Moro,
Therefore, the \(i\)-th Jacobian column depends on
and
Revolute joint
For a revolute joint \(i\), the linear contribution to the velocity of a point \(P\) is
The angular contribution is
Thus,
Prismatic joint
For a prismatic joint \(i\), the linear contribution is
while the angular contribution is zero:
Therefore,
Joints that do not affect the point
If point \(P\) is attached to link \(k\), joints located after that link do not affect either the position of \(P\) or the orientation of link \(k\).
Therefore,
The complete point Jacobian may consequently be written as
End-effector Jacobian
The terminal geometric Jacobian is a special case of the point Jacobian.
Taking
and
gives
Thus, the end-effector Jacobian uses the same geometric construction as the Jacobian of any other point attached to the robot.
Linear Jacobian from forward kinematics
The linear block of the Jacobian can also be obtained by differentiating the forward-position map.
If
then
Applying the chain rule,
Therefore,
This provides an alternative method for obtaining the linear Jacobian and is also useful for checking the geometric construction.
Angular velocity and rotation matrices
The angular block of the geometric Jacobian should not be obtained by simply differentiating an orientation parametrization.
For a rotation matrix
whose angular velocity is expressed in the base frame,
the rotation-matrix derivative satisfies
Equivalently,
This relationship shows why angular velocity is a geometric quantity distinct from the derivatives of Euler angles or other orientation coordinates.
In practice, for serial manipulators the angular Jacobian is naturally constructed from the joint axes.
Differential motion
For a small joint displacement
the corresponding first-order Cartesian displacement is approximately
Similarly, in velocity form,
where \(\dot{\vec x}\) represents the geometric velocity composed of linear and angular components.
This local linear approximation is one of the main reasons why the Jacobian plays a central role in robot motion analysis and numerical inverse kinematics.
Jacobian rank
The rank of the Jacobian indicates the number of independent instantaneous Cartesian velocity directions that the robot can generate.
For
the rank satisfies
The maximum attainable rank depends on the robot structure and on the task being considered.
A configuration is singular when the relevant Jacobian loses rank relative to its maximum attainable value:
This definition applies whether or not the Jacobian is square.
Important
id=”g1r24w” The condition \(\det J=0\) can only be used directly when the relevant Jacobian is square. Rank provides the more general definition of a kinematic singularity.
Physical meaning of singularities
At a singular configuration, the manipulator loses the ability to generate one or more independent instantaneous Cartesian motions.
For some desired velocity
there may be no joint velocity satisfying
Near a singularity, generating motion in certain Cartesian directions may also require very large joint velocities.
These effects are important in:
velocity control,
trajectory planning,
numerical inverse kinematics,
manipulability analysis.
Task-dependent singularities
The relevant Jacobian depends on the task.
For a full spatial pose task, the geometric Jacobian
may be the appropriate object.
For a position-only task, the relevant relationship is
and singularity analysis may instead focus on
Thus, a configuration may be singular with respect to one task while retaining useful motion capabilities for another.
Null space
Joint velocities satisfying
belong to the null space of the Jacobian.
Such joint motions produce zero instantaneous velocity for the task represented by \(J\).
For redundant manipulators, nonzero null-space motions may exist even away from singular configurations.
These motions can later be exploited for secondary objectives, although null-space control is outside the scope of this section.
Example: planar 2R manipulator
Consider the planar 2R manipulator introduced previously.
Its terminal position is
For planar position analysis, only the \(x\) and \(y\) components are needed:
The linear Jacobian is obtained by differentiation:
Therefore,
Thus,
The same result can be obtained from the geometric construction using the two joint axes.
Singular configurations
For this \(2\times2\) position Jacobian,
The Jacobian loses rank when
that is,
At these configurations, the two links are collinear.
The manipulator loses one independent instantaneous direction of motion in the plane.
This illustrates the direct relationship between the algebraic rank of the Jacobian and the physical geometry of the robot.
Differential kinematics in Moro
The Robot class exposes the main geometric Jacobian quantities directly.
End-effector Jacobian
The complete geometric Jacobian of the end effector is available through
robot.J
Mathematically,
Internally, this is the Jacobian of the origin of the final frame.
Jacobian of an arbitrary point
For a point \(P\) attached to link \(i\), Moro provides
robot.J_point(point, i)
where point contains the local coordinates
The returned matrix is the complete geometric Jacobian
The point coordinates are transformed internally to the base frame before constructing the Jacobian columns.
Center-of-mass Jacobians
For the center of mass \(C_i\) of link \(i\), Moro provides
robot.J_cm_i(i)
which corresponds to
The linear and angular blocks are also available separately:
robot.Jv_cm_i(i)
robot.Jw_cm_i(i)
corresponding to
and
respectively.
These quantities are particularly useful in the dynamic formulation of serial manipulators.
Summary of conventions
The main differential-kinematics conventions used by Moro are:
Concept |
Convention |
|---|---|
Main Jacobian type |
Geometric Jacobian |
Jacobian size |
\(6\times n\) |
Structure |
\(J=[J_v^T\ J_\omega^T]^T\) |
Velocity relation |
\([\vec v^T\ \vec\omega^T]^T=J\dot{\vec q}\) |
Expression frame |
Base frame \(\{0\}\) |
Revolute linear column |
\(\vec z_{i-1}^{\,0}\times(\vec r_P^{\,0}-\vec r_{O_{i-1}}^{\,0})\) |
Revolute angular column |
\(\vec z_{i-1}^{\,0}\) |
Prismatic linear column |
\(\vec z_{i-1}^{\,0}\) |
Prismatic angular column |
\(\vec 0\) |
Joint after link \(k\) |
Zero column for a point on link \(k\) |
Linear Jacobian |
\(J_{v,P}=\partial\vec r_P^{\,0}/\partial\vec q\) |
End-effector Jacobian |
|
Arbitrary-point Jacobian |
|
Singular configuration |
Loss of Jacobian rank |
Differential kinematics provides the local relationship between joint motion and Cartesian motion and forms the mathematical basis for singularity analysis, velocity control, and Jacobian-based inverse kinematics.