Remove unused types.h include, fix compilation with osqp 1.0.0 and fix flaky QPInverseKinematics test#983
Conversation
|
The Ik fails with a high error in the tracking of the task. Perhaps this is due to the new version of osqp?! 🤔 |
Yeah, that could be related. |
|
Interestingly, here the CI fails only on Windows as libosqp is update to 1.0.0 only there, while on Linux and macOS it is still using libosqp 0.6.3. However, in conda-forge/bipedal-locomotion-framework-feedstock#119 libosqp 1.0.0 is used everywhere, and the test failure is only on Windows. |
No, actually the test is only running on Windows, see https://github.com/conda-forge/bipedal-locomotion-framework-feedstock/blob/ad38c2862a232dc4f95f5d093dd02c8a012b535a/recipe/build_cxx.sh#L48C63-L50, conda-forge/bipedal-locomotion-framework-feedstock#29, conda-forge/bipedal-locomotion-framework-feedstock#102 (comment) and #685 . |
|
I never really understood why the test on the distance task is so brittle. Maybe it is more affected by singularities? 🤔 |
For sure it does not help that OSQP is non-deterministic by default, I remember having some test failures also in qpsolvers-eigen . Anyhow, I just tested and indeed the test pass fine on Linux, I am now testing on Windows. |
The non-determinism was not due to OSQP, but due to the use of iDynTree test helpers, that use C-based Random Number Generator, without a proper seed. I added a seed that should ensure that the test is consistent, but probably it is possible to reproduce the failure also on Linux by varying that seed until we reach again the failure. |
The reason for this was yet another. Apparently the IK component was explicitly disabled in CI (see https://github.com/ami-iit/bipedal-locomotion-framework/blob/e381996a08d79ecafda2077cb3be3dde535e1e4f/.github/workflows/conda-forge-ci.yml#L84) since #229 . I fixed this in #986 . |
The
types.hheader was included in two.cppfiles but was unused. It worked only by chance as osqp <= 0.6 had a include namestypes.h, but the compilation with osqp 1.0.0 is now failing with error:let's unconditionally remove this inclusion as as far as I can see it was never actually used.