@@ -277,14 +277,14 @@ BOOST_AUTO_TEST_CASE(vsSphericalZYX)
277277
278278 // Get the motion subspace matrices (which give us the Jacobians)
279279 JointModelSphericalZYX jmodel_s;
280- jmodel_s.setIndexes (0 , 0 , 0 ); // Set indices for standalone joint
280+ jmodel_s.setIndexes (0 , 0 , 0 );
281281
282282 JointDataSphericalZYX jdata_s = jmodel_s.createData ();
283283 jmodel_s.calc (jdata_s, q_s);
284284
285285 JointModelEllipsoid jmodel_e (0 , 0 , 0 );
286- jmodel_e.setIndexes (0 , 0 , 0 ); // Set indices for standalone joint
287-
286+ jmodel_e.setIndexes (0 , 0 , 0 );
287+
288288 JointDataEllipsoid jdata_e = jmodel_e.createData ();
289289 jmodel_e.calc (jdata_e, q_e);
290290
@@ -317,56 +317,35 @@ BOOST_AUTO_TEST_CASE(vsSphericalZYX)
317317 forwardKinematics (modelEllipsoid, dataEllipsoid, q_e, qd_e);
318318
319319 // Getting S with q_e from the three calcs
320- // Note: jmodel_e already has indices set from earlier
321- JointDataEllipsoid jdata_e_fk = jmodel_e.createData ();
322- JointDataEllipsoid jdata_e_fk2 = jmodel_e.createData ();
323- JointDataEllipsoid jdata_e_fk3 = jmodel_e.createData ();
324-
325- jmodel_e.calc (jdata_e_fk, q_e, qd_e);
320+ JointDataEllipsoid jDataEllipsoidFK = jmodel_e.createData ();
321+ JointDataEllipsoid jDataEllipsoidFK2 = jmodel_e.createData ();
322+ JointDataEllipsoid jDataEllipsoidFK3 = jmodel_e.createData ();
326323
327- jmodel_e.calc (jdata_e_fk2, q_e);
324+ jmodel_e.calc (jDataEllipsoidFK, q_e, qd_e);
325+ jmodel_e.calc (jDataEllipsoidFK2, q_e);
326+ jmodel_e.calc (jDataEllipsoidFK3, q_e);
327+ jmodel_e.calc (jDataEllipsoidFK3, Blank (), qd_e);
328328
329- jmodel_e.calc (jdata_e_fk3, q_e);
330- jmodel_e.calc (jdata_e_fk3, Blank (), qd_e);
331-
332- BOOST_CHECK (jdata_e_fk.S .matrix ().isApprox (jdata_e_fk2.S .matrix ()));
333- BOOST_CHECK (jdata_e_fk.S .matrix ().isApprox (jdata_e_fk3.S .matrix ()));
329+ BOOST_CHECK (jDataEllipsoidFK.S .matrix ().isApprox (jDataEllipsoidFK2.S .matrix ()));
330+ BOOST_CHECK (jDataEllipsoidFK.S .matrix ().isApprox (jDataEllipsoidFK3.S .matrix ()));
334331 std::cout << " ✓ Motion subspace matrices match for the three calc(...) methods" << std::endl;
335332
336- JointDataSphericalZYX jdata_s_fk = jmodel_s.createData ();
337- jmodel_s.calc (jdata_s_fk , q_s, qd_s);
333+ JointDataSphericalZYX jDataSphereFK = jmodel_s.createData ();
334+ jmodel_s.calc (jDataSphereFK , q_s, qd_s);
338335
339336 std::cout << " \n === Joint-frame velocities (S * v) ===" << std::endl;
340- std::cout << " idx_v() for standalone joint: " << jmodel_e.idx_v () << std::endl;
341- std::cout << " qd_e: " << qd_e.transpose () << std::endl;
342- std::cout << " jdata_e_fk.joint_v: " << jdata_e_fk.joint_v .transpose () << std::endl;
343- Eigen::Matrix<double , 6 , 1 > joint_vel_e = jdata_e_fk.S .matrix () * qd_e;
344- std::cout << " joint_vel_e (S * qd_e): " << joint_vel_e.transpose () << std::endl;
345- std::cout << " jdata_e_fk.v (computed): " << jdata_e_fk.v .toVector ().transpose () << std::endl;
346- Eigen::Matrix<double , 6 , 1 > manual_vel = jdata_e_fk.S .matrix () * jdata_e_fk.joint_v ;
347- std::cout << " S * jdata_e_fk.joint_v: " << manual_vel.transpose () << std::endl;
348-
349- Eigen::Matrix<double , 6 , 1 > joint_vel_s = jdata_s_fk.S .matrix () * qd_s;
350- std::cout << " Ellipsoid (S_xyz * qd_e): " << joint_vel_e.transpose () << std::endl;
351- std::cout << " SphericalZYX (S_zyx * qd_s): " << joint_vel_s.transpose () << std::endl;
352-
353- std::cout << " \n === Rotation Matrices ===" << std::endl;
354- std::cout << " Ellipsoid rotation:\n " << dataEllipsoid.oMi [1 ].rotation () << std::endl;
355- std::cout << " \n SphericalZYX rotation:\n " << dataSphericalZYX.oMi [1 ].rotation () << std::endl;
356-
357- std::cout << " \n === Translations ===" << std::endl;
358- std::cout << " Ellipsoid translation: " << dataEllipsoid.oMi [1 ].translation ().transpose () << std::endl;
359- std::cout << " SphericalZYX translation: " << dataSphericalZYX.oMi [1 ].translation ().transpose () << std::endl;
360-
361- std::cout << " \n === Spatial Velocities ===" << std::endl;
362- std::cout << " Ellipsoid v:\n " << dataEllipsoid.v [1 ].toVector ().transpose () << std::endl;
363- std::cout << " SphericalZYX v:\n " << dataSphericalZYX.v [1 ].toVector ().transpose () << std::endl;
337+ Eigen::Matrix<double , 6 , 1 > joint_vel_e = jDataEllipsoidFK.S .matrix () * qd_e;
338+ Eigen::Matrix<double , 6 , 1 > manual_vel = jDataEllipsoidFK.S .matrix () * jDataEllipsoidFK.joint_v ;
339+ Eigen::Matrix<double , 6 , 1 > joint_vel_s = jDataSphereFK.S .matrix () * qd_s;
364340
365341 BOOST_CHECK (dataEllipsoid.v [1 ].toVector ().isApprox (dataSphericalZYX.v [1 ].toVector ()));
366342 std::cout << " ✓ Spatial velocities match" << std::endl;
367343
368344 BOOST_CHECK (dataEllipsoid.oMi [1 ].isApprox (dataSphericalZYX.oMi [1 ]));
369345 std::cout << " ✓ Full oMi[1] matches" << std::endl;
346+
347+ // TODO ACCELERATION
348+
370349}
371350
372351BOOST_AUTO_TEST_SUITE_END ()
0 commit comments