I am reading about singularities and I know that those are configurations which result in the same end-effector position and orientation. I also read that joint velocities get very high near that singularity but I don't understand why.

I get it that they have to be very high when going through that singularity because the arm has to be in multiple poses at once, but I don't know why the speed is so high if it is just near a singularity.

Please help me understand.


1 Answer 1


First of all, singularities are not configurations that have the same end-effector position and orientation. Those configurations are inverse kinematic (IK) solutions to that end-effector pose (position and orientation).

The formal definition of singularities is the configurations that the Jacobian loses its rank. At such configurations, the manipulator may lose its degrees-of-freedom (DOF), i.e., it may not be able to move its end-effector in some certain direction.

Let's consider the relation $$\dot{x} = J(q)\dot{q},$$ where $x \in \mathbf{R}^6$ is a vector representing an end-effector pose, $q \in \mathbf{R}^n$ is a robot configuration, $J(q)$ is the Jacobian at the given configuration, and $n$ is the number of DOFs.

For the sake of argument, consider when $n=6$, i.e., $J(q)$ is a square matrix. At a singular configuration $q^\ast$, the Jacobian loses its rank and therefore $\det(J) = 0$. Looking back to the previous relation, you may see that no matter how large the joint velocity is, it does not contribute anything to the end-effector velocity.

Let's consider this from a mathematical point of view. From the singular-value decomposition of $J(q)$, one has $$\dot{x} = (U\Sigma V^{-1})\dot{q},$$ where $U$ and $V$ are some orthogonal matrices and $\Sigma$ is a diagonal matrix whose entries are singular values (well, not the same singular as what we are discussing). With some algebraic manipulation, one has $$\dot{x}' = \Sigma \dot{q}',$$ where $\dot{x}' = U^{-1}\dot{x}$ and $\dot{q}' = V^{-1}\dot{q}$. Those mapping by $U^{-1}$ and $V^{-1}$ can be seen as coordinate transformations.

At the vicinity of a singular configuration, the Jacobian nearly loses its rank. The singular values (i.e., the entries of $\Sigma$) are very small. Therefore, to attain a certain $\dot{x}'$ (that is, to be able to move in some direction), you would require a very large $\dot{q}'$.

Note, however, that after all, the high joint velocity behavior near a singular configuration is a result of using the relation $\dot{x} = J\dot{q}$ to calculate $\dot{q}$ from a given $\dot{x}$. As @Ugo pointed out in his comment, there exists methods to get around this behavior.

  • 4
    $\begingroup$ This answer is spot on and very well discussed. My only comment would be to point out the fact that joint velocities will be high in the neighborhood of singularities only if the controller makes use of the relation $\dot{q}=J^{-1}\cdot\dot{x}$. However, there exist alternative methods to get around this behavior. $\endgroup$ Nov 20, 2017 at 8:52
  • 1
    $\begingroup$ @Ugo Thanks a lot for the comment. I have added the suggestion to the answer. $\endgroup$ Nov 20, 2017 at 13:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.