Although I have an understanding of what Jacobians are in general and how to calculate Jacobians, I fail to understand how the idea of Jacobian came for use in kinematics and why they are used for turning angles into end effector position.

I'm also wondering how we change current angles into angular velocities and use that information to calculate the end effector position, while we lack information regarding time in such a problem.


Let's start from the forward kinematics equation $$x = f(q),$$ where $x \in \mathbf{R}^6$ is the end-effector position, $q$ is the joint angles, and $f$ is a (usually highly nonlinear) forward kinematics mapping. Due to the nature of $f$, computing the image of $q$ under $f$ (i.e. $f(q)$) is not difficult but computing the preimage of $x$ under $f$ (i.e. $f^{-1}(x)$) is a very challenging task. It is often very difficult, if not impossible, to have a closed-form formula of $f^{-1}$.

Fortunately, regardless of how nonlinear and complicated the forward kineamtics function $f$ is, when taking the time derivative of the above equation, we always have $$ \begin{align} \frac{dx}{dt} &= \left( \frac{d f}{d q} \right)\frac{dq}{dt}\\ \dot{x} &= J(q)\dot{q} \end{align},$$ which is always a linear relation (i.e. a joint velocity is mapped to an end-effector velocity by a matrix $J$). Its linearity makes it very appealing.

Now when given an end-effector position $x^*$ and we want to compute a corresponding $q^*$, we can do so by using the following procedure:

  1. Suppose the manipulator is at a an end-effector position $x_\text{current}$ and joint angles $q_\text{current}$
  2. Compute $dx$ as an increment from $x_\text{current}$ towards $x^*$
  3. Compute the Jacobian $J(q_\text{current})$
  4. Compute the increment in joint angles $dq$ from $dx = Jdq$.
  5. Update $q_\text{current}$ and $x_\text{current}$
  6. If $f(q_\text{current}) = x^*$, terminates. Otherwise, go to step 2.

The above procedure is, roughly speaking, pretty easy to follow and implement compared to computing directly $f^{-1}$.

  • $\begingroup$ If x in R^6 then the orientation must be expressed in some 3-angle parameterisation, perhaps roll-pitch-yaw or Euler angles. The resulting Jacobian is known as an analytic Jacobian. It might be problematic around the singularities in the particular chosen parameterisation. $\endgroup$ – Peter Corke Dec 30 '18 at 2:57

Jacobian defines the dynamic relationship between two different representations of a system. For example, if we have a 2-link robotic arm, there are two obvious ways to describe its current position:

  1. The end-effector position and orientation(Let it be X) and
  2. As the set of joint angles.(Let it be Q)

The Jacobian for this system relates how movement of the elements of Q causes movement of the elements of X. Here Jacobian is a transform matrix for velocity.

Click here for a detailed note on how Jacobian helps with time derivatives to convert angle positions into angle velocities.

Hope this helps...

  • $\begingroup$ This is quite imprecise. The Jacobian defines a differential kinematic relationship. The joint angles (more generally joint coordinates) describe the configuration of the system. The representations are not equivalent because there is, in general, a non-unique mapping from end-effector pose to configuration, ie. for a simple 2-link planar arms there are two sets of joint angles that give the same end-effector position. $\endgroup$ – Peter Corke Jan 3 '19 at 23:48

Your Answer

