robotology / idyntree

Multibody Dynamics Library designed for Free Floating Robots
BSD 3-Clause "New" or "Revised" License
168 stars 66 forks source link

Flaky IK tests on Windows with conda #1019

Open traversaro opened 2 years ago

traversaro commented 2 years ago

Since 2022/08/18, Windows/Conda builds sometime failed due to a test failure in either UnitTestInverseKinematicsMatrixViewAndSpan or UnitTestInverseKinematics.

The first failure I found is https://github.com/robotology/idyntree/runs/7891147406?check_suite_focus=true :

2022-08-18T03:23:52.5609308Z 48/61 Test #48: UnitTestInverseKinematicsMatrixViewAndSpan ............***Failed    3.17 sec
2022-08-18T03:23:52.5610131Z ~~~~~~~> simpleChainIK with 2 dofs 
2022-08-18T03:23:52.5610570Z 
2022-08-18T03:23:52.5610896Z ******************************************************************************
2022-08-18T03:23:52.5611545Z This program contains Ipopt, a library for large-scale nonlinear optimization.
2022-08-18T03:23:52.5612338Z  Ipopt is released as open source code under the Eclipse Public License (EPL).
2022-08-18T03:23:52.5613007Z          For more information visit https://github.com/coin-or/Ipopt
2022-08-18T03:23:52.5613561Z ******************************************************************************
2022-08-18T03:23:52.5613888Z 
2022-08-18T03:23:52.5614133Z IK Solved in 0.051s
2022-08-18T03:23:52.5614863Z ~~~~~~~> simpleChainIK with 3 dofs 
2022-08-18T03:23:52.5615337Z IK Solved in 0.029s
2022-08-18T03:23:52.5615794Z ~~~~~~~> simpleChainIK with 4 dofs 
2022-08-18T03:23:52.5616252Z IK Solved in 0.1s
2022-08-18T03:23:52.5616718Z ~~~~~~~> simpleChainIK with 5 dofs 
2022-08-18T03:23:52.5617146Z IK Solved in 0.188s
2022-08-18T03:23:52.5617584Z ~~~~~~~> simpleChainIK with 6 dofs 
2022-08-18T03:23:52.5618056Z IK Solved in 0.15s
2022-08-18T03:23:52.5618511Z ~~~~~~~> simpleChainIK with 7 dofs 
2022-08-18T03:23:52.5618963Z IK Solved in 0.128s
2022-08-18T03:23:52.5619325Z ~~~~~~~> simpleChainIK with 8 dofs 
2022-08-18T03:23:52.5620051Z IK Solved in 0.11s
2022-08-18T03:23:52.5620662Z ~~~~~~~> simpleChainIK with 9 dofs 
2022-08-18T03:23:52.5621225Z IK Solved in 0.111s
2022-08-18T03:23:52.5621596Z ~~~~~~~> simpleChainIK with 10 dofs 
2022-08-18T03:23:52.5622181Z IK Solved in 0.16s
2022-08-18T03:23:52.5622761Z ~~~~~~~> simpleChainIK with 11 dofs 
2022-08-18T03:23:52.5623147Z IK Solved in 0.157s
2022-08-18T03:23:52.5623815Z ~~~~~~~> simpleChainIK with 12 dofs 
2022-08-18T03:23:52.5624296Z IK Solved in 0.143s
2022-08-18T03:23:52.5624738Z ~~~~~~~> simpleChainIK with 13 dofs 
2022-08-18T03:23:52.5625122Z IK Solved in 0.206s
2022-08-18T03:23:52.5625657Z kinDynDes.getWorldTransform(l_foot) : -0.0902526 -0.974248 -0.206627
2022-08-18T03:23:52.5626160Z -0.995916 0.0878251 0.02091
2022-08-18T03:23:52.5626757Z -0.00222451 0.20767 -0.978196
2022-08-18T03:23:52.5627167Z  -0.0722771 -0.305153 -0.381469
2022-08-18T03:23:52.5627449Z 
2022-08-18T03:23:52.5627674Z IK Solved in 1.571s
2022-08-18T03:23:52.5628657Z D:\a\idyntree\idyntree\src\inverse-kinematics\tests\InverseKinematicsMatrixViewAndSpanUnitTest.cpp:245 : assertTrue failure
2022-08-18T03:23:52.5629332Z 
traversaro commented 2 years ago

It seems that for a long time we used ipopt 3.13 for dependencies reason, and recently we started using ipopt 3.14.8 .

traversaro commented 2 years ago

The test fails at https://github.com/robotology/idyntree/blob/master/src/inverse-kinematics/tests/InverseKinematicsMatrixViewAndSpanUnitTest.cpp#L245 .

traversaro commented 2 years ago

Once we investigate, the first thing to check is why the result is non deterministic.