I want to check for singular configurations of a 7-dof robotic arm (RRRRRRR). I have found the geometric Jacobian and it is a 6x7 matrix. If my theoretical background is solid when the Jacobian loses a rank (in this case <6) the robot is at a singularity.

So one should check when the determinant of the Jacobian equals zero.In this case since it is not a square matrix i multiplied the Jacobian by its transpose and calculated that determinant in matlab.

My problem is that the elements of the matrix,well those that are not equal to zero or 1, are terrible to look at.I mean, you can see a lot of cosine and sine terms which make the computation really complicated.

Is there a way to make things easier?

I appreciate all the help, Victor

  • 1
    $\begingroup$ I'm afraid that generally there is nothing that you can do much apart from some tedious algebraic manipulation to reduce the expression you have. But do you really need expressions of all singular configurations analytically? $\endgroup$ – Petch Puttichai Feb 18 '18 at 12:50
  • $\begingroup$ Hello and thank you very much for taking the time to answer. Well my professor asked me to check for singularities for this robot so i guessed he wanted a specific set of values after using algebra.But now that even Matlab cant provide me a solution for det=0 i guess i cannot provide a mathematically supported answer. The reason i asked is because i hoped someone would suggest a different approach (perhaps something like breaking down the 6x6 [transpose(J)*J] matrix to four 3x3 matrices if it's possible). $\endgroup$ – user3032539 Feb 18 '18 at 22:06
  • $\begingroup$ In that case, you may want to have a look at how to find the determinant of a matrix using cofactor expansion if you haven't already. It helps reduce the det of the original matrix into a linear combination of dets of smaller matrices. $\endgroup$ – Petch Puttichai Feb 19 '18 at 1:17

Think of those "terrible to look at" terms as diamonds in the rough. Yes, they look complicated at first. But you will find an amazing number of them will combine using basic trigonometric identities. For example, look for repeating patterns of squares of the sines and cosines of the various angles, and use those to factor out terms and combine them to equal one, or zero, or twice theta_n, or some other simplification. I have done this for an 8R arm. It might take a day or two, but it is achievable.

If the last three (or four) joints of your manipulator have axes which intersect at a point, then you can simplify the equations quite a bit. If this is the case, your manipulator has a spherical wrist geometry. Robot manipulators with this feature can be analyzed in a partitioned fashion. You can define the task as two related subtasks - position the center of the wrist at a certain point in space, and rotate the end effector to achieve the desired Euler angles for that pose. The singularities of positioning the center of the wrist will be independent of the wrist joint angles, and can be found by a 3x3 $JJ^J$ instead of the 6x6 you are dealing with now. The singularities of the end effector rotation might have terms that include all of the joint angles, but will still be calculable with a 3x3 matrix instead of a 6x6.


Search "Reciprocity-Based Resolution". You should find a lot of publications address the issue you have. There is more sophisticated approach that is based on the gradient of a singular value. If interested, I might find you a recent publication address this issue as well. Thanks


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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