How can it be used to determine the transformation matrix?

an example could be at computing the inverse kinematics for small displacements: J(q)$\Delta$q = $\Delta$u

$\Delta$U is a vector defining the difference between current and desired position. The desires position can always be computed, but if keep solving this in such manner that every time you solve $$J(q)\Delta q = \Delta u$$

you do this

  • q:= q + $\Delta$q
  • Compute $T_{base}^{tool}(q)$
  • Compute the difference between $[T^{tool}_{base}]_{desired~position} $ and $T_{base}^{tool}(q)$.
  • If change is less than 10^-5 finish and output Q, if not resolve.

How would you compute The transformation matrix based on q state vector.

  • $\begingroup$ I got a bit lost in your question. Is your question "How can I calculate the position of my end effector, given the $q$ states of my joints?" $\endgroup$ – George ZP Jan 11 '16 at 9:42
  • $\begingroup$ Are you asking if there is a way to determine the direct or forward kinematics equation $T_{base}^{tool}(q)$ from the Jacobian $J(q)$ and joint angles $q$? $\endgroup$ – Ben Jan 12 '16 at 17:18
  • $\begingroup$ I am asking how do you compute the transformation => so yeah the forward kinematics equation $t_{base}^{tool}(q)$ $\endgroup$ – Carlton Banks Jan 12 '16 at 20:57

The "state vector" $\vec q$ is the vector of joint angles. Use Craig's, or Paul's, book for understanding how to compute the transformation matrix that relates the end effector position and orientation, $\vec u$, to $\vec q$. You can also use 3x3 rotation matrices and a vector loop. If you don't have those references, just search for Denavit-Hartenburg.

After you have that transformation matrix, you can find $J$. $J$ is the partial derivative of your transformation matrix with respect to the individual joint angles. That should be enough to feed the algorithm you describe.


No, you cannot determine the forward kinematics transformation matrix from the Jacobian. You can however go the other direction (kind of). The analytical Jacobian is simply the partial derivatives of the forward kinematics equation. Which makes sense because the forward kinematics equation gives you position, and the Jacobian (the derivative) gives you velocity. But this is in general different than the geometric Jacobian. Which is typically what people use.

The geometric and analytical Jacobians differ in how they handle rotational velocity. The geometric Jacobian uses angular velocity $\omega$, which is a more physically intuitive representation. Whereas the analytical Jacobian uses the time derivative of Euler angles $\dot\phi$, which suffers from a representational singularity. Furthermore, you can integrate $\dot\phi$ over time to get $\phi$, however this cannot be done with $\omega$.

So if you have the forward kinematics equation, you can differentiate to get the analytical Jacobian, which you can then integrate to get back the forward kinematics equation, (but why?). But if you start from the geometric Jacobian, you cannot integrate to get the proper forward kinematics equation.

See Robotics: Modelling, Planning and Control, by Bruno Siciliano, Lorenzo Sciavicco, Luigi Villani, Giuseppe Oriolo. Chapter 3.6 for full discussion.

  • $\begingroup$ I don't think I can explain the difference between geometric and analytical Jacobians well enough, so please seek a better reference if you are interested. $\endgroup$ – Ben Jan 20 '16 at 1:51
  • $\begingroup$ I'm not sure I understand what you mean by geometric Jacobian. Are you referring to the tangent space of a manifold? If so, that's the same concept as the analytical Jacobian of the forward kinematics equations. Another thought which your answer prompts: finding the forward kinematics by starting with the Jacobian is not done, because we start with the forward kinematics and differentiate to get J. But why can't we integrate the Jacobian, then apply initial conditions regarding the current position, to find the forward kinematics? It seems doable, but maybe silly. $\endgroup$ – SteveO Jan 21 '16 at 22:22
  • $\begingroup$ @SteveO - I would assume it's because, as with every integration, you need a constant of integration. I'm not sure what this would be, physically speaking, but probably initial joint positions? But anyways, with just the Jacobian and no more information, I don't think you can determine those constants. $\endgroup$ – Chuck Jan 22 '16 at 22:21
  • $\begingroup$ @Chuck I was thinking you could use the current position and velocities as initial conditions to determine the constants. I realize this is OT. It may end up generating a RSE question from me.... time to play with a 2 DOF planar linkage to explore it! $\endgroup$ – SteveO Jan 23 '16 at 0:27

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.