@@ -326,6 +326,75 @@ void SolverTest::UpdateChainTest()
326
326
CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToCoriolis (q_in, q_in2, q_out));
327
327
CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToGravity (q_in, q_out));
328
328
CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToMass (q_in, m));
329
+
330
+ chain2.deleteSegmentsFrom (" Segment 6" );
331
+
332
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_SIZE_MISMATCH,fksolverpos.JntToCart (q_in, T, chain2.getNrOfSegments ()));
333
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_SIZE_MISMATCH,fksolvervel.JntToCart (q_in3, T2, chain2.getNrOfSegments ()));
334
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, jacsolver1.JntToJac (q_in, jac, chain2.getNrOfSegments ()));
335
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, jacdotsolver1.JntToJacDot (q_in3, jac, chain2.getNrOfSegments ()));
336
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, jacdotsolver1.JntToJacDot (q_in3, t, chain2.getNrOfSegments ()));
337
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolver2.CartToJnt (q_in,t,q_out));
338
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolver_pinv_givens2.CartToJnt (q_in,t,q_out));
339
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolver_pinv_nso.CartToJnt (q_in,t,q_out));
340
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolver_wdls.CartToJnt (q_in,t,q_out));
341
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolverpos.CartToJnt (q_in,T,q_out));
342
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolverpos2.CartToJnt (q_in,T,q_out));
343
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, iksolverpos3.CartToJnt (q_in,T,q_out));
344
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, idsolver1.CartToJnt (q_in,q_in2,q_out,wrenches,q_out2));
345
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, idsolver2.CartToJnt (q_in,q_in2,q_out,alpha,beta,wrenches,q_out2));
346
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, dynparam.JntToCoriolis (q_in, q_in2, q_out));
347
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, dynparam.JntToGravity (q_in, q_out));
348
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOT_UP_TO_DATE, dynparam.JntToMass (q_in, m));
349
+
350
+ fksolverpos.updateInternalDataStructures ();
351
+ fksolvervel.updateInternalDataStructures ();
352
+ jacsolver1.updateInternalDataStructures ();
353
+ jacdotsolver1.updateInternalDataStructures ();
354
+ iksolver2.updateInternalDataStructures ();
355
+ iksolver_pinv_givens2.updateInternalDataStructures ();
356
+ iksolver_pinv_nso.updateInternalDataStructures ();
357
+ iksolver_wdls.updateInternalDataStructures ();
358
+ iksolverpos.updateInternalDataStructures ();
359
+ iksolverpos2.updateInternalDataStructures ();
360
+ iksolverpos3.updateInternalDataStructures ();
361
+ idsolver1.updateInternalDataStructures ();
362
+ idsolver2.updateInternalDataStructures ();
363
+ dynparam.updateInternalDataStructures ();
364
+
365
+ q_in.resize (chain2.getNrOfJoints ());
366
+ q_in2.resize (chain2.getNrOfJoints ());
367
+ q_in3.resize (chain2.getNrOfJoints ());
368
+ jac.resize (chain2.getNrOfJoints ());
369
+ q_out.resize (chain2.getNrOfJoints ());
370
+ q_out2.resize (chain2.getNrOfJoints ());
371
+ wrenches.resize (chain2.getNrOfJoints ());
372
+ m.resize (chain2.getNrOfJoints ());
373
+
374
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR,fksolverpos.JntToCart (q_in, T, chain2.getNrOfSegments ()));
375
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR,fksolvervel.JntToCart (q_in3, T2, chain2.getNrOfSegments ()));
376
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR,fksolverpos.JntToCart (q_in, T, chain2.getNrOfSegments ()));
377
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR,fksolvervel.JntToCart (q_in3, T2, chain2.getNrOfSegments ()));
378
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR, jacsolver1.JntToJac (q_in, jac, chain2.getNrOfSegments ()));
379
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR, jacdotsolver1.JntToJacDot (q_in3, jac, chain2.getNrOfSegments ()));
380
+ CPPUNIT_ASSERT_EQUAL ((int )SolverI::E_NOERROR, jacdotsolver1.JntToJacDot (q_in3, t, chain2.getNrOfSegments ()));
381
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolver2.CartToJnt (q_in,t,q_out));
382
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolver_pinv_givens2.CartToJnt (q_in,t,q_out));
383
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolver_pinv_nso.CartToJnt (q_in,t,q_out));
384
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolver_wdls.CartToJnt (q_in,t,q_out));
385
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolverpos.CartToJnt (q_in,T,q_out));
386
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolverpos2.CartToJnt (q_in,T,q_out));
387
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolverpos3.CartToJnt (q_in,T,q_out));
388
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolverpos2.CartToJnt (q_in,T,q_out));
389
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= iksolverpos3.CartToJnt (q_in,T,q_out));
390
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= idsolver1.CartToJnt (q_in,q_in2,q_out,wrenches,q_out2));
391
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= idsolver2.CartToJnt (q_in,q_in2,q_out,alpha,beta,wrenches,q_out2));
392
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToCoriolis (q_in, q_in2, q_out));
393
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToGravity (q_in, q_out));
394
+ CPPUNIT_ASSERT ((int )SolverI::E_NOERROR <= dynparam.JntToMass (q_in, m));
395
+
396
+ chain2.addSegment (Segment (" Segment 6" , Joint (" Joint 6" , Joint::RotX),
397
+ Frame (Vector (0.0 ,0.0 ,0.1 ))));
329
398
}
330
399
void SolverTest::FkPosAndJacTest ()
331
400
{
0 commit comments