@@ -376,16 +376,18 @@ void FeaturePoint6d::inverseJacobianRodrigues ()
376
376
if (norm_2 < accuracy_) {
377
377
P_.setIdentity ();
378
378
}
379
- // This code has been generated by maxima software
380
- P_ (0 ,0 ) = ((r3_2+r2_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r1_2*r3_2+r1_2*r2_2+r1_4)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
381
- P_ (0 ,1 ) = -(r1*r2*sqrt (norm_2)*sin (sqrt (norm_2))+(r3_3+(r2_2+r1_2)*r3)*cos (sqrt (norm_2))-r3_3-r1*r2*r3_2+(-r2_2-r1_2)*r3-r1*r2_3-r1_3*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
382
- P_ (0 ,2 ) = -(r1*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(-r2*r3_2-r2_3-r1_2*r2)*cos (sqrt (norm_2))-r1*r3_3+r2*r3_2+(-r1*r2_2-r1_3)*r3+r2_3+r1_2*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
383
- P_ (1 ,0 ) = -(r1*r2*sqrt (norm_2)*sin (sqrt (norm_2))+((-r2_2-r1_2)*r3-r3_3)*cos (sqrt (norm_2))+r3_3-r1*r2*r3_2+(r2_2+r1_2)*r3-r1*r2_3-r1_3*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
384
- P_ (1 ,1 ) = ((r3_2+r1_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r2_2*r3_2+r2_4+r1_2*r2_2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
385
- P_ (1 ,2 ) = -(r2*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(r1*r3_2+r1*r2_2+r1_3)*cos (sqrt (norm_2))-r2*r3_3-r1*r3_2+(-r2_3-r1_2*r2)*r3-r1*r2_2-r1_3)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
386
- P_ (2 ,0 ) = -(r1*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(r2*r3_2+r2_3+r1_2*r2)*cos (sqrt (norm_2))-r1*r3_3-r2*r3_2+(-r1*r2_2-r1_3)*r3-r2_3-r1_2*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
387
- P_ (2 ,1 ) = -(r2*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(-r1*r3_2-r1*r2_2-r1_3)*cos (sqrt (norm_2))-r2*r3_3+r1*r3_2+(-r2_3-r1_2*r2)*r3+r1*r2_2+r1_3)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
388
- P_ (2 ,2 ) = ((r2_2+r1_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r3_4+(r2_2+r1_2)*r3_2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
379
+ else {
380
+ // This code has been generated by maxima software
381
+ P_ (0 ,0 ) = ((r3_2+r2_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r1_2*r3_2+r1_2*r2_2+r1_4)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
382
+ P_ (0 ,1 ) = -(r1*r2*sqrt (norm_2)*sin (sqrt (norm_2))+(r3_3+(r2_2+r1_2)*r3)*cos (sqrt (norm_2))-r3_3-r1*r2*r3_2+(-r2_2-r1_2)*r3-r1*r2_3-r1_3*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
383
+ P_ (0 ,2 ) = -(r1*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(-r2*r3_2-r2_3-r1_2*r2)*cos (sqrt (norm_2))-r1*r3_3+r2*r3_2+(-r1*r2_2-r1_3)*r3+r2_3+r1_2*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
384
+ P_ (1 ,0 ) = -(r1*r2*sqrt (norm_2)*sin (sqrt (norm_2))+((-r2_2-r1_2)*r3-r3_3)*cos (sqrt (norm_2))+r3_3-r1*r2*r3_2+(r2_2+r1_2)*r3-r1*r2_3-r1_3*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
385
+ P_ (1 ,1 ) = ((r3_2+r1_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r2_2*r3_2+r2_4+r1_2*r2_2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
386
+ P_ (1 ,2 ) = -(r2*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(r1*r3_2+r1*r2_2+r1_3)*cos (sqrt (norm_2))-r2*r3_3-r1*r3_2+(-r2_3-r1_2*r2)*r3-r1*r2_2-r1_3)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
387
+ P_ (2 ,0 ) = -(r1*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(r2*r3_2+r2_3+r1_2*r2)*cos (sqrt (norm_2))-r1*r3_3-r2*r3_2+(-r1*r2_2-r1_3)*r3-r2_3-r1_2*r2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
388
+ P_ (2 ,1 ) = -(r2*r3*sqrt (norm_2)*sin (sqrt (norm_2))+(-r1*r3_2-r1*r2_2-r1_3)*cos (sqrt (norm_2))-r2*r3_3+r1*r3_2+(-r2_3-r1_2*r2)*r3+r1*r2_2+r1_3)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
389
+ P_ (2 ,2 ) = ((r2_2+r1_2)*sqrt (norm_2)*sin (sqrt (norm_2))+r3_4+(r2_2+r1_2)*r3_2)/(r3_4+(2 *r2_2+2 *r1_2)*r3_2+r2_4+2 *r1_2*r2_2+r1_4);
390
+ }
389
391
Pinv_= P_.inverse ();
390
392
}
391
393
0 commit comments