Jacobian of chain of transformation matrices

70 views
Skip to first unread message

Subodh Mishra

unread,
Mar 25, 2021, 1:21:16 AM3/25/21
to gtsam users
Hi,
I intend to determine the Jacobian of a chain of homogeneous transformation matrix multiplications w.r.t individual matrices and I am wondering if what I have implemented is correct or not. Here is an example:

In this example I intend to determine the Jacobian of T wrt T1, T2 and T3 and T = T1^{-1}*T2^{-1}*T3. Following is a mock code snippet. Can anyone please tell me if my approach is correct?
***********************************************************************************
////
Pose3 T1, T2, T3;
Matrix J1, J2, J3, J4, J5, J6;
Pose3 T = T1.inverse(J1).compose(T2.inverse(J2), J3, J4).compose(T3, J5, J6);
// I intend to determine the Jacobians of T wrt T1, T2 and T3

Matrix J_T_T1 = J5*J3*J1;
Matrix J_T_T2 = J5*J4*J2;
Matrix J_T_T3 = J6;

// where J_T_T1 = Jacobian of T wrt T1
// J_T_T2 = Jacobian of T wrt T2
// J_T_T3 = Jacobian of T wrt T3

////
************************************************************************************

I want to clarify this before I move on to my implementation.

Regards,
Subodh.

Subodh Mishra

unread,
Mar 25, 2021, 1:54:03 AM3/25/21
to gtsam users
My understanding (and assumption) here is:

J1 is the Jacobian of T1.inverse() wrt T1
J2 is the Jacobian of T2.inverse() wrt T2
J3 is the Jacobian of T1.inverse()*T2.inverse() wrt T1.inverse()
J4 is the Jacobian of T1.inverse()*T2.inverse() wrt T2.inverse()
J5 is the Jacobian of T wrt T1.inverse()*T2.inverse()
J6 is the Jacobian of T wrt T3

So by chain rule. we have

J_T_T1 = J5*J3*J1;
J_T_T2 = J5*J4*J2;
J_T_T3 = J6;
Reply all
Reply to author
Forward
0 new messages