I am attempting to program a robot arm in Unity, but I have a problem when I am moving the TCP (tool center point) and the axes line up (e.g. axis 4 and 6) then things go haywire.

Does anyone know of any strategies to avoid singularities or any good resources where I can get more info? Thanks.

  • $\begingroup$ What is the/a TCP? What do you mean when you say "things go haywire?" What happens? What are you trying to do? Generally, when someone mentions "singularities," the knee-jerk response is, "Quaternions!" It's probably applicable here, but again it's not clear what you're doing and what the problem is. $\endgroup$ – Chuck Aug 4 '17 at 20:53
  • 1
    $\begingroup$ I don't think quarternians apply. This is a physical singularity, not algorithmic. If the TCP reaches the singular plane of the wrist (see Stanisic and Gupta, sorry I am on my phone and do not have the full reference), then the determinant of the Jacobian blows up and at least one joint needs to achieve infinite velocity to follow the TCP path. Avoidance in this case usually means moving the task to avoid this condition, or slowing down the task. You can also try to ensure the task requires the TCP to cross the singularity orthogonally so that the first wrist axis does not flip. $\endgroup$ – SteveO Aug 5 '17 at 21:41
  • $\begingroup$ The reference should have been Stanisic and Duta: "Symmetrically Actuated Double Pointing Systems: The Basis of Singularity-Free Robot Wrists," IEEE Transactions on Robotics and Automation 6:5, November 1990. $\endgroup$ – SteveO Aug 6 '17 at 15:37
  • $\begingroup$ OK thanks SteveO, I'll dig into it and see what I can find. $\endgroup$ – Richy Aug 6 '17 at 21:33

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Browse other questions tagged or ask your own question.