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?