CH 6 Velocity and Singularity Analysis
CH 6 Velocity and Singularity Analysis
Manipulators
In previous chapters our focus was on the position analysis of robotic manipulators by establishing
forward and inverse kinematic mappings between the joint space and Cartesian space in which a robot
operates. In this chapter we extend our analysis to the relationship between manipulator joint
velocities and the Cartesian velocity of the links, joints and end effector. To move a robot end effector
along a desired path at a prescribed speed requires careful coordination of the robot joint velocities.
In the instance where the end effector velocity and position are prescribed, the inverse velocity
problem must be solved to determine the necessary joint velocities to produce the desired motion.
On the other hand, it may be in our interest to determine the resultant velocity of an end effector
produced from a given set of prescribed joint velocities. In this instance the direct velocity problem
must be solved.
In this chapter we also analyse robot singular conditions. Singular conditions or singularities describe
joint combinations where two joint axes align, resulting in an infinite number of solutions to the
inverse kinematics problem. Singular conditions also occur when infinite joint velocities are required
at specific points along a path.
Manipulator Jacobians
In our previous studies of manipulator forward and inverse kinematics our focus was on establishing
the mapping from the joint space to the Cartesian space and vice versa. The models that we developed
provided the static relationship between these spaces. In this chapter we endeavour to establish the
differential relationship between these spaces. To do this, we present the manipulator Jacobian
matrix.
The Jacobian represents the geometric arrangement of the manipulator in time. It allows us to relate
the differential motions or velocities of the individual joints to the overall motion of the mechanism
or specific parts of the mechanism.
𝑥 = 𝑓 (𝑞 , 𝑞 , 𝑞 , … , 𝑞 ) 𝑓𝑜𝑟 𝑖 = 1, … , 𝑚 (6.1)
𝐱̇ = 𝐽𝒒̇ (6.4)
The Jacobian matrix is a linear transformation matrix that maps an n-dimensional vector 𝒒̇ in the joint
space of the manipulator to an m-dimensional velocity vector 𝐱̇ in the cartesian space. The joint speeds
or joint rates are defined as:
In a conventional Jacobian, the end effector velocity 𝐯 and the angular velocity 𝝎 of the end effector
are given by velocity vector 𝐱̇ as:
𝐯 (6.6)
𝐱̇ = 𝝎
Note that the Jacobian is an 𝑚 × 𝑛 matrix, where 𝑚 is the number of degrees of freedom of the end
effector space and 𝑛 is the number of actuated joint variables.
Example 6.1
a2 y2
𝜃
a1 x2
𝜃 xo
zo
Consider the 2-DOF planar manipulator shown in Figure 6.1. The forward kinematics of the
manipulator is given by:
𝑐𝜃 −𝑠𝜃 0 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃
𝑐𝜃 𝑐𝜃 0 𝑎 𝑠𝜃 + 𝑎 𝑠𝜃
𝑇 =
0 0 1 0
0 0 0 1
Determine the Cartesian velocity vector of the end effector and the corresponding Jacobian matrix.
Solution
From the matrix, we identify the location of the end effector (or hand) reference frame as:
𝑞 = 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃
𝑞 = 𝑎 𝑠𝜃 + 𝑎 𝑠𝜃
If our interest is only in the linear velocity of the end effector then we find the velocity as follows:
𝑑𝑞
𝑣 = = −𝑎 𝑠𝜃 𝜃̇ − 𝑎 𝑠𝜃 𝜃̇ + 𝜃̇
𝑑𝑡
𝑑𝑞
𝑣 = = 𝑎 𝑐𝜃 𝜃̇ + 𝑎 𝑐𝜃 𝜃̇ + 𝜃̇
𝑑𝑡
Kinematic Singularities
In trajectory planning, the path that the end effector must follow is prescribed according to the
application. For example, a welding robot would normally be required to follow a specific path to
produce the desired weld seam. The velocity of the end effector would also be specified according to
the rate of material deposition during the welding process. In order to produce the desired motion of
the end effector, the corresponding joint rates (joint speeds) must be determined for each point along
the path. The joint rates are found by rearranging equation 6.4 as follows:
𝒒̇ = 𝐽 𝐱̇ (6.7)
When following a desired trajectory in Cartesian space, the inverse mapping to the joint space of the
manipulator may be a problem for specific positions or combinations of joint angle values. At these
problematic positions, the inversion of the Jacobian matrix is not possible and the manipulator is said
to be at a singular configuration or singularity. Singularities can be identified by analysing the Jacobian
matrix of a manipulator.
Boundary Singularities: occur when a manipulator joint is at its physical limits and the
manipulator cannot move beyond a point on the workspace boundary. This is also commonly
characterised by the joint velocity becoming infinite to maintain a Cartesian velocity.
Internal Singularities: occur because of the alignment of two joint axes, hence, they are also
referred to as joint space singularities. The alignment of the two joint axes may cause the
motion of one joint to cancel or counteract the motion of another joint. This provides the net
effect of “losing a degree of freedom”. On the other hand, the alignment of two joint axes
may cause an infinite number of inverse kinematic solutions to exist.
From equation 6.7, it is clear that the “condition” of the Jacobian matrix at a specific point determines
whether a singularity occurs at that point in the workspace. The degeneracy of the Jacobian is
characterised by it losing full rank, where there is a reduction of the number of linearly independent
rows or columns. The loss of full rank and may render the Jacobian matrix not invertible. Singular
conditions can be identified by setting the determinant of the Jacobian to zero:
𝑑𝑒𝑡(𝐽) = 0 (6.8)
Example 6.2
Continuing with the 2-DOF planar manipulator from Example 6.1, solve the inverse velocity problem
and identify the singular configurations of the manipulator.
Solution
𝒒̇ = 𝐽 𝐱̇
First, we find the determinant of the Jacobian:
𝜃̇ 1 𝑎 𝑐𝜃 −𝑎 𝑠𝜃 𝑣
= 𝑣
𝜃̇ 𝑎 𝑎 𝑠𝜃 −𝑎 𝑐𝜃 − 𝑎 𝑐𝜃 −𝑎 𝑠𝜃 − 𝑎 𝑠𝜃
det(𝐽) = 𝑎 𝑎 𝑠𝜃 = 0
Since 𝑎 and 𝑎 are fixed parameters, the determinant can only be zero when 𝑠𝜃 = 0. The
corresponding joint angles are: 𝜃 = 0 or 𝜃 = 𝜋. These joint angles correspond to when the
manipulator is fully extended or folded in on itself.
Example 6.3
a2 B x2 a3
3
2 y2
P x4
A
x1
Link 1 y1 L5 x3
y3 z4
4
L1 5 Q x5
a1
z5
zo yo
xo
O
Solution
𝑝 𝑐𝜃 (𝑎 + 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 )
𝑝 = 𝑠𝜃 (𝑎 + 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 )
𝑝 𝑑 − 𝑎 𝑠𝜃 − 𝑎 𝑠𝜃
We identify the components of the Jacobian matrix by taking the partial derivatives:
𝜕𝑝
= −𝑠𝜃 (𝑎 + 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 )
𝜕𝜃
𝜕𝑝
= −𝑐𝜃 (𝑎 𝑠𝜃 + 𝑎 𝑠𝜃 )
𝜕𝜃
𝜕𝑝
= −𝑎 𝑐𝜃 𝑠𝜃
𝜕𝜃
𝜕𝑝
= 𝑐𝜃 (𝑎 + 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 )
𝜕𝜃
𝜕𝑝
= −𝑠𝜃 (𝑎 𝑠𝜃 + 𝑎 𝑐𝜃 )
𝜕𝜃
𝜕𝑝
= −𝑎 𝑠𝜃 𝑠𝜃
𝜕𝜃
𝜕𝑝
=0
𝜕𝜃
𝜕𝑝
= −𝑎 𝑐𝜃 − 𝑎 𝑐𝜃
𝜕𝜃
𝜕𝑝
= −𝑎 𝑐𝜃
𝜕𝜃
And the Jacobian matrix is given by:
𝜕𝑝 𝜕𝑝 𝜕𝑝
⎡ ⎤
⎢ 𝜕𝜃 𝜕𝜃 𝜕𝜃 ⎥
⎢𝜕𝑝 𝜕𝑝 𝜕𝑝 ⎥
𝐽=⎢ ⎥
𝜕𝜃 𝜕𝜃 𝜕𝜃
⎢ ⎥
⎢ 𝜕𝑝 𝜕𝑝 𝜕𝑝 ⎥
⎣ 𝜕𝜃 𝜕𝜃 𝜕𝜃 ⎦
And the velocity of point P in the x-direction is given by:
𝜕𝑝 𝜕𝑝 𝜕𝑝
𝑣 = 𝜃̇ + 𝜃̇ + 𝜃̇
𝜕𝜃 𝜕𝜃 𝜕𝜃
Without showing the full workings:
det(𝐽) = 𝑎 𝑎 (𝑎 𝑠𝜃 𝑐 𝜃 + 𝑎 𝑐𝜃 𝑠𝜃 𝑐𝜃 + 𝑎 𝑠𝜃 − 𝑎 𝑠𝜃 + 𝑎 𝑐𝜃 𝑠𝜃 )
By inspection we observe that det(𝐽) = 0 when 𝑠𝜃 = 0 and 𝑠𝜃 = 0.
This occurs when 𝜃 = 0 𝑜𝑟 𝜋, 𝜃 = 0 𝑜𝑟 𝜋, which corresponds to the full extension of the arm or
the arm folding in on itself.
Velocity Propagation
Thus far, we have obtained the Jacobian matrix and the end effector velocities by the direct
differentiation of the kinematic equations. Direct differentiation can be cumbersome for obtaining the
Jacobian matrices for manipulators with more than two or three actuated joints. In this section, we
will learn how the linear and angular velocities of the links of a manipulator can be determined and
used for identifying the velocity of points of interest in the mechanism, such as the end effector.
The velocity of a link within a serial mechanism is a function of it’s own joint rate and the velocities of
the prior links to which it is attached. The velocity of each link propagates through the mechanism to
subsequent links. Based on this, we present the following formulae for the end effector linear and
angular velocity, identified through velocity propagation:
(6.9)
𝐯 = 𝜃̇ 𝒛 × 𝒑∗ + 𝒛 𝑑̇
(6.10)
𝝎 = 𝜃̇ 𝒛
Where:
𝜃̇ is the rate of rotation (angular velocity) about the ith joint axis
𝑑̇ is the rate of translation (linear velocity) along the ith joint axis
0
𝒛 = 𝑅 0 is a unit vector along the ith joint axis
1
𝒑∗ is a vector starting at point 𝑂 , which is the origin of the (𝑖 − 1) link frame, and
ending at the end effector frame, as shown in Figure 6.4.
𝜃
𝑂 𝑧 (𝐽𝑜𝑖𝑛𝑡 𝑖)
𝑧
𝑧
𝜃
𝜃 𝒊 𝟏 ∗ 𝜃
⬚𝐩𝒏
𝐩𝒊 𝟏
𝑂 𝑧
𝐩𝟏
𝑥
𝑧
𝐩𝒏 𝐸𝑛𝑑 𝑒𝑓𝑓𝑒𝑐𝑡𝑜𝑟
𝑂 𝑦
𝐵𝑎𝑠𝑒
𝑥
Figure 6.4 Link parameters of a serial robot
All vectors in equations 6.9 and 6.10 are expressed in the fixed coordinate frame (the base frame
noted by axes (𝑥 , 𝑦 , 𝑧 )).
Where:
𝐽 = [𝐽 , 𝐽 , … , 𝐽 ] is the Jacobian matrix, where the ith column represents the effect of the ith
joint on the velocity of the end effector.
𝒑∗ = 𝑅 𝒓 + 𝒑∗ (6.13)
Where:
𝑎 𝑐𝜃
𝒓 = 𝑎 𝑠𝜃
𝑑
Is a vector starting at the origin of the (𝑖 − 1) and ending at the origin of reference frame (𝑖),
expressed in the (𝑖 − 1) coordinate frame.
Example 6.4
Consider the 2-DOF planar manipulator shown in Figure 6.1. Determine the following by using the
velocity propagation method:
Solution
a)
𝒑∗ = 𝑅 𝒓 + 𝒑∗
0
We know that 𝒑∗ = 0 because there is zero distance between the last frame and itself.
0
From the forward kinematic model for this manipulator, we extract 𝑅 from 𝑇 :
𝑐𝜃 −𝑠𝜃 0
𝑅 = 𝑠𝜃 𝑐𝜃 0
0 0 1
Therefore:
𝑐𝜃 −𝑠𝜃 0 𝑎 𝑐𝜃 0 𝑎 𝑐𝜃 𝑐𝜃 − 𝑎 𝑠𝜃 𝑠𝜃 𝑎 𝑐𝜃
𝒑∗ = 𝑠𝜃 𝑐𝜃 0 𝑎 𝑠𝜃 + 0 = 𝑎 𝑠𝜃 𝑐𝜃 + 𝑎 𝑐𝜃 𝑠𝜃 = 𝑎 𝑠𝜃
0 0 1 0 0 0 0
0 𝑐𝜃 −𝑠𝜃 0 0 0
𝒛𝟏 = 𝑅 0 = 𝑠𝜃 𝑐𝜃 0 0 = 0
1 0 0 1 1 1
𝒛 × 𝒑∗
𝐽 =
𝒛
0 𝑎 𝑐𝜃 −𝑎 𝑠𝜃
𝒛 × 𝒑∗ = 0 × 𝑎 𝑠𝜃 = 𝑎 𝑐𝜃
1 0 0
−𝑎 𝑠𝜃
⎡ 𝑎 𝑐𝜃 ⎤
⎢ ⎥
𝐽 =⎢ 0 ⎥
⎢ 0 ⎥
⎢ 0 ⎥
⎣ 1 ⎦
𝒑∗ = 𝑅 𝒓 + 𝒑∗
We know that 𝑅 is an identity matrix because there is no relative rotation between a frame and
itself, therefore:
1 0 0 𝑎 𝑐𝜃 𝑎 𝑐𝜃 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃
𝒑∗ = 0 1 0 𝑎 𝑠𝜃 + 𝑎 𝑠𝜃 = 𝑎 𝑠𝜃 + 𝑎 𝑠𝜃
0 0 1 0 0 0
0 1 0 0 0 0
𝒛𝟎 = 𝑅 0 = 0 1 0 0 = 0
1 0 0 1 1 1
𝒛 × 𝒑∗
𝐽 =
𝒛
0 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 −𝑎 𝑠𝜃 − 𝑎 𝑠𝜃
𝒛 × 𝒑∗ = 0 × 𝑎 𝑠𝜃 + 𝑎 𝑠𝜃 = 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃
1 0 0
−𝑎 𝑠𝜃 − 𝑎 𝑠𝜃
⎡ 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 ⎤
⎢ ⎥
𝐽 =⎢ 0 ⎥
⎢ 0 ⎥
⎢ 0 ⎥
⎣ 1 ⎦
Therefore:
−𝑎 𝑠𝜃 − 𝑎 𝑠𝜃 −𝑎 𝑠𝜃
⎡ 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 𝑎 𝑐𝜃 ⎤
⎢ ⎥
𝐽=⎢ 0 0 ⎥
⎢ 0 0 ⎥
⎢ 0 0 ⎥
⎣ 1 1 ⎦
b)
𝑣 −𝑎 𝑠𝜃 − 𝑎 𝑠𝜃 −𝑎 𝑠𝜃
⎡𝑣 ⎤ ⎡ 𝑎 𝑐𝜃 + 𝑎 𝑐𝜃 𝑎 𝑐𝜃 ⎤
⎢𝑣 ⎥ ⎢ ⎥ 𝜃̇
⎢ ⎥=⎢ 0 0 ⎥
⎢𝜔 ⎥ ⎢ 0 0 ⎥ 𝜃̇
⎢𝜔 ⎥ ⎢ 0 0 ⎥
⎣𝜔 ⎦ ⎣ 1 1 ⎦
c)
Velocity of frame 1
𝐯 = 𝜃̇ 𝒛 × 𝒑∗ + 𝒛 𝑑̇
𝝎 = 𝜃̇ 𝒛
First, we solve for the linear velocity. We know that 𝑑̇ = 0 because joint 1 is revolute, therefore:
𝐯 = 𝜃̇ 𝒛 × 𝒑∗
Now:
𝒑∗ = 𝑅 𝒓 + 𝒑∗
𝑎 𝑐𝜃
𝒑∗ = 𝒓 = 𝑎 𝑠𝜃
0
0 𝑎 𝑐𝜃 −𝑎 𝑠𝜃
𝐯 = 𝜃̇ 0 × 𝑎 𝑠𝜃 = 𝜃̇ 𝑎 𝑐𝜃
1 0 0
The angular velocity is given by:
0
𝝎 = ̇𝜃 𝒛 = 0
𝜃̇
𝑎 𝑏 1 𝑑 −𝑏 1 𝑑 −𝑏
𝐴 = = =
𝑐 𝑑 det(𝐴) −𝑐 𝑎 𝑎𝑑 − 𝑏𝑐 −𝑐 𝑎
For a 3 X 3 matrix:
𝑎 𝑏 𝑐 1 𝐴 𝐵 𝐶 1 𝐴 𝐷 𝐺
𝐴 = 𝑑 𝑒 𝑓 = 𝐷 𝐸 𝐹 = 𝐵 𝐸 𝐻
𝑔 ℎ 𝑖 det(𝐴) det(𝐴)
𝐺 𝐻 𝐼 𝐶 𝐹 𝐼
Where:
And: