1
$\begingroup$

I'm learning about inverse kinematics with Jacobians, and getting a little confused. So, let's say I have a robot arm with two joints with angles Y = (a, b) whose tip I want to move along a certain direction in 2D space X = (u, v). The Jacobian J tells me how much the arm will move in 3D space, with respect to rotations of the joints: J = dY/dX. Then, in order to move the arm in a certain direction, I can find the inverse of the Jacobian J-inv, and then multiply this by the 3D direction I want the tip to move in: X = J_inv * Y.

However, let's say that at a particular joint configuration, the first joint (with angle a) is much more able to move the tip in the desired direction, than the second joint. So, dY/da >> dY/db. Intuitively, it would therefore make sense that greater velocity is given to the first joint than the second joint, to take advantage of this.

But this does not seem to be the case. If X = J_inv * Y, then J_inv will cause a greater response from the joint which finds it harder to move the tip in the desired direction, i.e. the second joint, because J_inv is effectively finding db\dY, which is greater than da\dY.

So why would the joint which finds it harder to move the tip along the desired direction, actually be given a higher velocity than the joint which finds it easier?

$\endgroup$
1
$\begingroup$

Really good question!

And here's the solution: you're making a mistake in your matrix inversion. In your coordinate system, $\frac{\partial{b}}{\partial{Y}}$ does NOT equal $\frac{\partial{Y}}{\partial{b}}$.

Remember how you have that crazy formula for inverting a 2x2 matrix? The one where you swap about the elements, make some negative, and then divide the whole thing by the determinant?

That formula is the key to solving your puzzle. Write it out on paper and let us know what you get! It should all work out as expected :)

$\endgroup$

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.