@@ -277,10 +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
281+
280282 JointDataSphericalZYX jdata_s = jmodel_s.createData ();
281283 jmodel_s.calc (jdata_s, q_s);
282284
283285 JointModelEllipsoid jmodel_e (0 , 0 , 0 );
286+ jmodel_e.setIndexes (0 , 0 , 0 ); // Set indices for standalone joint
287+
284288 JointDataEllipsoid jdata_e = jmodel_e.createData ();
285289 jmodel_e.calc (jdata_e, q_e);
286290
@@ -313,6 +317,7 @@ BOOST_AUTO_TEST_CASE(vsSphericalZYX)
313317 forwardKinematics (modelEllipsoid, dataEllipsoid, q_e, qd_e);
314318
315319 // Getting S with q_e from the three calcs
320+ // Note: jmodel_e already has indices set from earlier
316321 JointDataEllipsoid jdata_e_fk = jmodel_e.createData ();
317322 JointDataEllipsoid jdata_e_fk2 = jmodel_e.createData ();
318323 JointDataEllipsoid jdata_e_fk3 = jmodel_e.createData ();
@@ -332,9 +337,14 @@ BOOST_AUTO_TEST_CASE(vsSphericalZYX)
332337 jmodel_s.calc (jdata_s_fk, q_s, qd_s);
333338
334339 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;
335343 Eigen::Matrix<double , 6 , 1 > joint_vel_e = jdata_e_fk.S .matrix () * qd_e;
336- std::cout << " joint_vel_e: " << joint_vel_e.transpose () << std::endl;
337- std::cout << " jdata_e_fk.v : " << jdata_e_fk.v .toVector ().transpose () << std::endl;
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;
338348
339349 Eigen::Matrix<double , 6 , 1 > joint_vel_s = jdata_s_fk.S .matrix () * qd_s;
340350 std::cout << " Ellipsoid (S_xyz * qd_e): " << joint_vel_e.transpose () << std::endl;
0 commit comments