Singularity & Redundancy#
The Jacobian of a robot arm is defined as
between joint velocity \(\dot{\boldsymbol{q}}\) and the end-effector velocity \(\boldsymbol{v}_{e}=\left[\begin{array}{ll}\dot{\boldsymbol{p}}_{e}^{T} & \boldsymbol{\omega}_{e}^{T}\end{array}\right]^{T}\). Jacobian is a function of the configuration \(\boldsymbol{q}\). We call the configurations \(\boldsymbol{q}\) at which \(\boldsymbol{J}(\boldsymbol{q})\) is rank-deficient as singularity. Or, we say the robot is at singularity.
Formally, for a non-redundant (\(n=r\)) or redundant (\(n> r\)) robot arm (\(r\) is the dimension of the end-effector task space, \(n\) is the dimension of the joint space), a singularity occurs when the Jacobian matrix \(\boldsymbol{J}(\boldsymbol{q})\) loses ranks:
Here are reasons why we need to care about singularities?
Singularities represent robot configurations at which mobility of the robot end-effector is reduced.
Near a singularity, small velocities in the operational space (end-effector) can correspond to large velocities in the joint space.
Singularity Decoupling#
Computing singularity configurations based on definition (i.e. find \(\boldsymbol{q}\) such that \( \text{rank}(\boldsymbol{J}(\boldsymbol{q})) < m\)) can be complex. However, for robot arms having a spherical wrist, it is possible to decouple the computation into two subproblems: (1) find arm singularities for the first 3 (or more) joints, and (2) find of wrist singularities for the wrist joints (last three joints).
Let’s see an example of a non-redundant (\(r=n=6\)) robot arm. Consider a \(6\)-DoF robot arm (anthropomorphic robot arm) in Fig. 55, where the last 3 joints are revolute (e.g., a spherical wrist). Note that the Frame 6 is the end-effector frame \(\boldsymbol{p}_{6}=\boldsymbol{p}_{e}\).
Fig. 55 Anthropomorphic robot arm#
The Jacobian can be partitioned into \((2 \times 2)\) block matrix
with
Because \(\boldsymbol{p}_3=\boldsymbol{p}_4=\boldsymbol{p}_5\) (i.e., the Frames 3, 4, 5 share the same origin), we can conduct row operations by multiple second row block matrices with \(\left(\boldsymbol{p}_{e}-\boldsymbol{p}_{3}\right)\) and subtract from the first row block matrices. Thus, we obtain
Since the above row operations maintain the matrix rank and determinant, we can find the singularity by solving
Thus, singularity decoupling is achieved: we can use \(\operatorname{det}\left(\boldsymbol{\bar{J}}_{11}\right)=0\) and \(\operatorname{det}\left(\boldsymbol{\bar{J}}_{22}\right)=0\) to determine the arm singularities and wrist singularities, respectively.
Wrist Singularity#
Wrist singularities can be computed by inspecting
Fig. 56 Spherical wrist at a singularity#
In fact, the wrist is at singularity whenever the unit vectors \(\boldsymbol{z}_{3}, \boldsymbol{z}_{4}, \boldsymbol{z}_{5}\) are linearly dependent. The wrist structure shows that this occurs when \(\boldsymbol{z}_{3}\) and \(\boldsymbol{z}_{5}\) are aligned, which is shown in Fig. 56. That is,
At wrist singularity, the end-effector loses the rotation mobility about a axis orthogonal to \(\boldsymbol{z}_{4}\) and \(\boldsymbol{z}_{3}\).
Arm Singularity#
Arm singularities can be computed by inspecting
Consider the anthropomorphic arm in Fig. 55.
The determinant vanishes if \(s_{3}=0\) or \(\left(a_{2} c_{2}+a_{3} c_{23}\right)=\) 0.
The case \(s_{3}=0\) is called elbow singularity. This means that
showing that the elbow is outstretched or retracted, as in Fig. 57. In this singularity, the end-effector will lose the linear motion along the direction of the third link (i.e., the direction perpendicular to \(\boldsymbol{z}_2\) and \(\boldsymbol{z}_0\)).
Fig. 57 Anthropomorphic arm at an elbow singularity#
The case \(\left(a_{2} c_{2}+a_{3} c_{23}\right)=0\) indicates that the wrist point lies on axis \(z_{0}\), as shown in Fig. 58. This is called shoulder singularity. In this singularity, the end-effector loses the linear motion along the \(z_{1}\) direction.
Fig. 58 Anthropomorphic arm at a shoulder singularity#
Redundancy#
The Jacobian defines a linear mapping from the joint velocity space to the end-effector velocity space:
where \(\boldsymbol{v}_{e}\) is the \((r \times 1)\) vector of end-effector velocity; \(\dot{\boldsymbol{q}}\) is the \((n \times 1)\) vector of joint velocities; and \(\boldsymbol{J}\) is \((r \times n)\) matrix. If \(r<n\), the robot arm is kinematically redundant and there exist \((n-r)\) redundant DOFs.
Fig. 59 Mapping between the joint velocity space and the end-effector velocity space#
Let’s now abstract (21) from the perspective of linear algebra, as shown in Fig. 59.
The range of \(\boldsymbol{J}\) is the subspace \(\mathcal{R}(\boldsymbol{J})\subseteq \mathbb{R}^r\) of the end-effector velocities that can be generated by the joint velocities.
The null space of \(\boldsymbol{J}\) is the subspace \(\mathcal{N}(\boldsymbol{J})\subseteq \mathbb{R}^n\) of the joint velocities that do not produce any end-effector velocity.
If the Jacobian has full rank at configuration \(\boldsymbol{q}\), one has
and the range of \(\boldsymbol{J}\) spans the entire space \(\mathbb{R}^{r}\). This means that we can theoretically command the velocity of joints to generate any end-effector velocity we want at configuration \(\boldsymbol{q}\).
Otherwise, if the Jacobian is rank-deficient at configuration \(\boldsymbol{q}\), i.e., the robot arm is a singularity at \(\boldsymbol{q}\), the dimension of the range space decreases while the dimension of the null space increases, but they must satisify (recall linear algebra)
This means that there is a set of end-effector velocities which we will never be able to generate no matter what velocity of joints we command at configuration \(\boldsymbol{q}\).
If \(\mathcal{N}(\boldsymbol{J}) \neq \emptyset\), we can find a \((n \times n)\) projection matrix \(\boldsymbol{P}\) for the null space of \(\boldsymbol{J}\), that is, the range of this projection matrix \(\boldsymbol{P}\) equals the null space of \(\boldsymbol{J}\):
The projection matrix \(\boldsymbol{P}\) has the closed-form solution:
where \(\boldsymbol{I}\) is \(n\times n\) identity, and \(A^{\dagger}\) is the Moore–Penrose pseudoinverse of \(A\).