# derivative of jacobian

 Submitted by threelight on Mon, 2008-09-08 11:47

is there a possibility to compute the derivative of a KDL::jacobian?

### derivative of jacobian

On Mon, 8 Sep 2008, manuelbirlo [..] ... wrote:

> is there a possibility to compute the derivative of a KDL::jacobian?

There are two relevant Jacobian derivates: one with respect with time, the
other with respect to a change in a joint or end-effector pose. Neither of
them have already been implemented, but I can point you to references if
you need them.

What is the exact goal of the derivative? Because most often, using
Jacobians explicitly for solving linear systems is not a good idea since
more efficient, recursive methods exist.

Herman

### derivative of jacobian

I need it for an optimization strategy incl. manipulability measure sqrt(det(JJ^t)). I want to compute the derivate of sqrt(det(JJ^t)) (maximizing sqrt(det(JJ^t)))

### derivative of jacobian

On Mon, 8 Sep 2008, manuelbirlo at web.de wrote:

> I need it for an optimization strategy incl. manipulability measure
> sqrt(det(JJ^t)). I want to compute the derivate of sqrt(det(JJ^t))
> (maximizing sqrt(det(JJ^t)))
>

Okay, I see.
And for this kind of problems, an analytical formulation in the form of a
Jacobian could indeed be useful...

(BTW: You should be aware that J J^T has no physical meaning, which is
obvious if you fill in the physical units. You need a "weighting" matrix in
between both Jacobians...)

A long time ago, I wrote a paper on the subject of the Jacobian derivative:
H. Bruyninckx and J. De Schutter, "Symbolic differentiation of the velocity
mapping for a serial kinematic chain", Mechanism and Machine Theory, vol.
31, no. 2, 1996, pp. 135-148. Available at
http://dx.doi.org/10.1016/0094-114X(95)00069-B

Herman

### derivative of jacobian

thanks! I will read your paper and find out if it's useful ;)

### derivative of jacobian

>A long time ago, I wrote a paper on the subject of the >Jacobian derivative:
>H. Bruyninckx and J. De Schutter, "Symbolic differentiation >of the velocity
>mapping for a serial kinematic chain", Mechanism and Machine >Theory, vol.
>31, no. 2, 1996, pp. 135-148. Available at
>http://dx.doi.org/10.1016/0094-114X(95)00069-B

concerning the derivate with respect to a joint angle:

how did you realised the infinitesimal transformations?

### derivative of jacobian

On Tue, 9 Sep 2008, manuelbirlo at web.de wrote:

>> A long time ago, I wrote a paper on the subject of the >Jacobian
>> derivative:
>> H. Bruyninckx and J. De Schutter, "Symbolic differentiation >of the
>> velocity
>> mapping for a serial kinematic chain", Mechanism and Machine >Theory, vol.
>> 31, no. 2, 1996, pp. 135-148. Available at
>> http://dx.doi.org/10.1016/0094-114X(95)00069-B
>
> concerning the derivate with respect to a joint angle:
> how did you realised the infinitesimal transformations?

"Infinitesimal" transformations are considered the same as instantaneous
velocities, so we use infinitesimal twist transformations: moving the
velocity effects of one joint by moving another joint and taking the limit
of this last motion to zero. Nothing fancy or new, in this respect.

I found out only after writing that paper that the derivative of the
Jacobian with respect to a joint angle is nothing else but the Lie
derivative: the derivative of one vector field (generated by one joint
motion) along another vector field (generated by another joint). I don't
know whether that insight is helpful to you... :-)

Herman

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

### derivative of jacobian

By the way: I tried to find out if there is some C++-Code to calculate the derivate of a jacobian with respect to a joint angle but I didn't found anything. Only function to calculate the time derivate:

http://www.koders.com/cpp/fid151E96B0F5554EF00097F012CC913862521C8148.aspx?s=mdef%3Acompute

### derivative of jacobian

On Tue, 9 Sep 2008, manuelbirlo web.de wrote:

> By the way: I tried to find out if there is some C++-Code to calculate the
> derivate of a jacobian with respect to a joint angle but I didn't found
> anything. Only function to calculate the time derivate:
>
> http://www.koders.com/cpp/fid151E96B0F5554EF00097F012CC913862521C8148.aspx?s=mdef%3Acompute
>
Nice :-)

If you have one, you also have the other, since the change of the kinematic
chain is generated (only!) by moving a joint with a certain velocity. (At
least for normal, serial chains.)

Herman

### derivative of jacobian

>If you have one, you also have the other, since the change >of the kinematic
>chain is generated (only!) by moving a joint with a certain >velocity. (At
>least for normal, serial chains.)

ah, you write that in your paper (page 140):

"the derivatives of the jacobian with respect to a joint angle q^j is closely related to its time derivate"

That means the derivate with respect to the joint angle q^j is nothing else than the time derivate of J with the condition that q^j moves with unit velocity while the other joints don't move?

### derivative of jacobian

On Tue, 9 Sep 2008, manuelbirlo web.de wrote:

>> If you have one, you also have the other, since the change >of the
>> kinematic
>> chain is generated (only!) by moving a joint with a certain >velocity. (At
>> least for normal, serial chains.)
>
> ah, you write that in your paper (page 140):
>
> "the derivatives of the jacobian with respect to a joint angle q^j is closely
> related to its time derivate"
>
> That means the derivate with respect to the joint angle q^j is nothing else
> than the time derivate of J with the condition that q^j moves with unit
> velocity while the other joints don't move?

Yes. Since in that case:
\frac{\del J}{\del t} = \frac{\del J}{\del q_i} \frac{\del q_i}{\del t}
(The last term is 1, and there is only one time-varying joint "i".)

Herman

### derivative of jacobian

I just tried to adapt the jacobian_dot function of kinemat.cpp
of roboop so that it works with a KDL::Chain.

I need it for the derivative of sqrt(detJJ^t)).

But the problem is that this function builds the Jacobian on the basis of the initial Chain-Position and not on the basis of the current joint positions. And the other problem is that i don't know how to include the information of the time-varying joint which moves with unit velocity while the other joints don't move because the the result matrix of the jacobian_dot function is always the same. The only input parameter is the reference frame in which you want to express the result matrix.

Or is the current joint position not relevant for the derivative of the jacobian?

### derivative of jacobian

On Fri, 12 Sep 2008, manuelbirlo web.de wrote:

> I just tried to adapt the jacobian_dot function of kinemat.cpp
> of roboop so that it works with a KDL::Chain.
> I need it for the derivative of sqrt(detJJ^t)).
>
> But the problem is that this function
You mean: "the Roboop function"?

> builds the Jacobian on the basis of the
> initial Chain-Position and not on the basis of the current joint positions.

> And the other problem is that i don't know how to include the information of
> the time-varying joint which moves with unit velocity while the other joints
> don't move because the the result matrix of the jacobian_dot function is
> always the same. The only input parameter is the reference frame in which you
> want to express the result matrix.

Again: is this the Roboop functionality that you don't understand, or some
KDL functionality?

> Or is the current joint position not relevant for the derivative of the
> jacobian?
It _is_.

Herman

PS If you don't setup your email client in such a way that it uses a _name_
email address and make you a target for spam bots..

### derivative of jacobian

>You mean: "the Roboop function"?
yes.

>Again: is this the Roboop functionality that you don't >understand, or some
>KDL functionality?

it's a general question about how to put the information of the joint q_i into a function which calculates the derivative of a jacobian with respect to q_i.
I think roboop::jacobian_dot does not include this information. It is a time derivate. It returns a jacobian with NrOfJoints-columns and each columns consists of (v_dot, w_dot).

here is an image of column i of J_dot:

http://www.tekkotsu.org/dox/roboop/form_123.png

### derivative of jacobian

On Monday 08 September 2008 14:47:39 Herman Bruyninckx wrote:
> On Mon, 8 Sep 2008, manuelbirlo at web.de wrote:
> > I need it for an optimization strategy incl. manipulability measure
> > sqrt(det(JJ^t)). I want to compute the derivate of sqrt(det(JJ^t))
> > (maximizing sqrt(det(JJ^t)))
>