2
$\begingroup$

I had a discussion with a study colleague about the IK solver. The question was: Does IK need the current joint values to calculate the requested position.

I think it doesn't need it. From my understanding, IK only needs a translation and rotation respected to the e.g. base frame, but no information about the current joint values or e.g. gripper frame for the calculation itself. My study colleague argue that we always give the IK Solver the current joint values through our .msg file and that's right. However, I'm sure that the IK solver doesn't use it for the calculation. Maybe, in case of optimization if it finds more than one possible solution.

Would be nice if anyone can help

Greetings

R.Devel

$\endgroup$

1 Answer 1

5
$\begingroup$

It depends on the method that you use for computing an IK solution. If you have an analytic formula for IK solutions then you do not need the current joint values of the robot. You just plug in the translation and rotation of the end-effector to the formula and you get a solution (or a set of solutions). (Sometimes knowing the current joint angles is better, though, because you might want to select which IK solutions you want based on your current joint angles.)

However, when using iterative methods such as differential IK, you will need an initial point to start with. The algorithm will kind of drive the robot from the initial joint values towards your desire end-effector position. That's when the current joint values come into play.

$\endgroup$
2
  • $\begingroup$ Perfect thank you =) I assume KDL, IKFast are iterative ? $\endgroup$
    – R.Devel
    Jun 1, 2017 at 17:21
  • $\begingroup$ No problem! I have never used KDL so I have no idea about that. But for IKFast, it is analytic. $\endgroup$ Jun 1, 2017 at 23:24

Your Answer

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

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