QArm - Lab 7 - Concept Review
QArm - Lab 7 - Concept Review
QUANSER
QARM
Singularity Identification
for MATLAB Simulink
QArm Concept Review
Singularity Identification
When operating a manipulator in task space, such as commanding the end-effector to traverse a path at a
constant speed, you may notice that the manipulator stops and refuses to travel further. This may happen
even if the manipulator has not reached its physical joint limits. A joint configuration that prevents the end-
effector to move in a certain direction is called a singularity. Its commonly said that this loss of motion causes
the manipulator to lose one or more degrees of freedom.
To prevent singularities, you must first be able to first identify them. In this lab you will identify singularities
using three different methods: geometrically, mathematically, and visually. The geometric approach
identifies certain geometrical configurations, such as joint angles or alignment of the robot axes, which
result in limited movement of the end-effector. The mathematical approach examines the manipulator’s
Jacobian and its inverse to identity singularities. In the visual approach, you will identify loss of end-effector
movement along the cartesian axes by applying speed disturbances to the joints.
1
Differential Kinematic Formulation
Recall from the Tool Manipulation Concept Review the differential kinematic formulation of the Quanser
QArm in matrix form as follows:
𝑉 = 𝟎𝑱 Θ̇
where 𝟎𝑱 is the manipulator’s Jacobian expressed in base frame {0}. This mapping relates the differential
changes in joint space (i.e. joint velocities) to the differential changes in Cartesian space (i.e. end-effector
velocity).
Singularity Analysis
At singular configurations, we lose the ability to map the joint velocities and task space velocities to each
other. Different methods can be used to determine the singular configurations a of a manipulator, three of
which will be analyzed in the lab procedure.
Jacobian Determinant
A singularity occurs when the determinant of the Jacobian is 0, which means the matrix is noninvertible. The
determinant of the Jacobian expressed in Equation 1 is derived as:
det 𝟎𝑱 = (−𝜆2 𝑠1 𝑐2 + 𝜆3 𝑠1 𝑠23 )((−𝜆2 𝑠1 𝑠2 − 𝜆3 𝑠1 𝑐23 )(𝜆3 𝑠23 ) − (−𝜆2 𝑐2 + 𝜆3 𝑠23 )(−𝜆3 𝑠1 𝑐23 ))
+ (𝜆2 𝑐1 𝑐2 − 𝜆3 𝑐1 𝑠23 )((−𝜆2 𝑐2 + 𝜆3 𝑠23 )(−𝜆3 𝑐1 𝑐23 ) − (−𝜆2 𝑐1 𝑠2 − 𝜆3 𝑐1 𝑐23 )(𝜆3 𝑠23 ))
det 𝟎𝑱 = −𝜆2 𝜆3 (𝑠1 (−𝜆2 𝑠1 𝑐2 + 𝜆3 𝑠1 𝑠23 )(𝑠2 𝑠23 + 𝑐2 𝑐23 ) − 𝑐1 (𝜆2 𝑐1 𝑐2 − 𝜆3 𝑐1 𝑠23 )(𝑐2 𝑐23 + 𝑠2 𝑠23 ))
(2)
det 𝟎𝑱 = 𝜆2 𝜆3 (𝑠12 (𝜆2 𝑐2 − 𝜆3 𝑠23 )(𝑠2 𝑠23 + 𝑐2 𝑐23 ) + 𝑐12 (𝜆2 𝑐2 − 𝜆3 𝑠23 )(𝑐2 𝑐23 + 𝑠2 𝑠23 ))
Since 𝜆2 and 𝜆3 are both non-zero constants, the determinant of the Jacobian is zero if either of the last two
terms of the final expression given in Equation 2 are zero. This results in the two singularity conditions as
described below.
Singularity Condition 1
Under the first singularity condition:
𝜆2 𝑐2 − 𝜆3 𝑠23 = 0 (3)
Geometrically, this occurs when the end-effector is positioned directly above the base.
Singularity Condition 2
Under the second first singularity condition:
𝑠2 𝑠2 𝑐3 + 𝑠2 𝑐2 𝑠3 + 𝑐2 𝑐2 𝑐3 − 𝑐2 𝑠2 𝑠3 = 0
(5)
𝑐3 = 0 (6)
Geometrically, this corresponds to the arm either folded into itself or completely stretched out (i.e.
𝜃3 = 90° or 𝜃3 = −90°).
Another method for identifying singularities is determining the rank of the Jacobian. Any joint configuration
that causes the Jacobin to lose a rank makes it noninvertible and therefore results in a singularity. A drop in
rank indicates a loss in dimensionality. This can happen when a column of the Jacobian approaches all 0s.
This happens during the first Singularity Condition. Simplifying the Jacobian’s first column yields,
−𝜆2 𝑠1 𝑐2 + 𝜆3 𝑠1 𝑠23 −𝜆2 𝑐1 𝑠2 − 𝜆3 𝑐1 𝑐23 −𝜆3 𝑐1 𝑐23 0
𝜆 𝑐 𝑐 − 𝜆3 𝑐1 𝑠23 −𝜆2 𝑠1 𝑠2 − 𝜆3 𝑠1 𝑐23 −𝜆3 𝑠1 𝑐23 0
[ 2 1 2 ]
0 −𝜆2 𝑐2 + 𝜆3 𝑠23 𝜆3 𝑠23 0
0 0 0 1 (7)
−𝑠1 (𝜆2 𝑐2 − 𝜆3 𝑠23 ) −𝜆2 𝑐1 𝑠2 − 𝜆3 𝑐1 𝑐23 −𝜆3 𝑐1 𝑐23 0
𝑐 (𝜆 𝑐 − 𝜆3 𝑠23 ) −𝜆2 𝑠1 𝑠2 − 𝜆3 𝑠1 𝑐23 −𝜆3 𝑠1 𝑐23 0
=[ 1 2 2 ]
0 −𝜆2 𝑐2 + 𝜆3 𝑠23 𝜆3 𝑠23 0
0 0 0 1
Note that with Singularity Condition 1, when 𝜆2 𝑐2 − 𝜆3 𝑠23 = 0, the first column becomes all zeros regardless
of the value of 𝜃1 . A loss in rank can also occur when at least two columns are linearly dependent (i.e. one
column is a multiple of another). This happens during Singularity Condition 2. When the cosine of the third
joint angle 𝑐3 is 0, we can simplify certain expressions,
𝜋
𝑖𝑓 𝑐3 = 0, 𝑡ℎ𝑒𝑛 𝜃3 = ± , 𝑎𝑛𝑑 𝑐23 = ∓𝑠2 , 𝑠23 = ±𝑐2
2
−𝜆2 𝑠1 𝑐2 + 𝜆3 𝑠1 𝑠23 −𝜆2 𝑐1 𝑠2 − 𝜆3 𝑐1 𝑐23 −𝜆3 𝑐1 𝑐23 0
𝜆 𝑐 𝑐 − 𝜆3 𝑐1 𝑠23 −𝜆2 𝑠1 𝑠2 − 𝜆3 𝑠1 𝑐23 −𝜆3 𝑠1 𝑐23 0
[ 2 1 2 ]
0 −𝜆2 𝑐2 + 𝜆3 𝑠23 𝜆3 𝑠23 0
0 0 0 1
−𝜆2 𝑠1 𝑐2 ± 𝜆3 𝑠1 𝑐2 −𝜆2 𝑐1 𝑠2 ± 𝜆3 𝑐1 𝑠2 ±𝜆3 𝑐1 𝑠2 0 (8)
𝜆 𝑐 𝑐 ∓ 𝜆3 𝑐1 𝑐2 −𝜆2 𝑠1 𝑠2 ± 𝜆3 𝑠1 𝑠2 ±𝜆3 𝑠1 𝑠2 0
=[ 2 1 2 ]
0 −𝜆2 𝑐2 ± 𝜆3 𝑐2 ±𝜆3 𝑐2 0
0 0 0 1
−𝑠1 𝑐2 (𝜆2 ∓ 𝜆3 ) −(𝜆2 ∓ 𝜆3 )𝑐1 𝑠2 ±𝜆3 𝑐1 𝑠2 0
𝑐 𝑐 (𝜆 ∓ 𝜆3 ) −(𝜆2 ∓ 𝜆3 )𝑠1 𝑠2 ±𝜆3 𝑠1 𝑠2 0
=[ 1 2 2 ]
0 −(𝜆2 ∓ 𝜆3 )𝑐2 ±𝜆3 𝑐2 0
0 0 0 1
Note that here, column 2 is column 3 multiplied by the factor ∓(𝜆2 ∓ 𝜆3 )/𝜆3.
Alternatively, one can examine the condition number of the Jacobian. The condition number is a
mathematical operation that quantifies how sensitive a function’s output is to changes or errors in the input.
When the manipulator is in a singular configuration, we lose a task space motion direction. This signifies that
you will not find a meaningful joint space velocity solution for a certain task space solution. This is equivalent
to saying, a small change in the task space velocity desired will result in large fluctuations in the joint space
solution. The condition number here is the largest term in the Jacobian’s inverse. A large condition number
indicates that the Jacobian may not be invertible and therefor our joint configuration represents a singularity.
3