ami-iit / bipedal-locomotion-framework

Suite of libraries for achieving bipedal locomotion on humanoid robots
https://ami-iit.github.io/bipedal-locomotion-framework/
BSD 3-Clause "New" or "Revised" License
132 stars 36 forks source link

Remove homebrew job from CI #822

Closed GiulioRomualdi closed 3 months ago

GiulioRomualdi commented 3 months ago

Manifpy tries to install the python bindings in /usr

traversaro commented 3 months ago

Manifpy tries to install the python bindings in /usr

You can set manually the MANIF_PKGDIR, see https://github.com/robotology/robotology-superbuild/blob/e131566d6f8cdd74b25ed9c5151567f8163cfaec/cmake/Buildmanif.cmake#L23 .

GiulioRomualdi commented 3 months ago

I need to switch to our manif https://github.com/robotology-dependencies/manif.git repo to fix the version

GiulioRomualdi commented 3 months ago

iDynTree fails with the following error (perhaps it is an old version and it should be updated @traversaro )

Cloning into 'iDynTree'...
HEAD is now at a7fdef001 Release iDynTree 8.0.0 (#1039)
-- The C compiler identification is AppleClang 14.0.0.14000029
-- The CXX compiler identification is AppleClang 14.0.0.14000029
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /Applications/Xcode_14.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /Applications/Xcode_14.2.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Found LibXml2: /Applications/Xcode_14.2.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk/usr/lib/libxml2.tbd (found version "2.9.4") 
-- Found YARP: /Users/runner/work/bipedal-locomotion-framework/bipedal-locomotion-framework/install/deps/lib/cmake/YARP (found version "3.8.0")
-- Found YCM: /Users/runner/work/bipedal-locomotion-framework/bipedal-locomotion-framework/install/deps/share/cmake/YCM (found version "0.15.3")
-- Found YARP: /Users/runner/work/bipedal-locomotion-framework/bipedal-locomotion-framework/install/deps/lib/cmake/YARP (found version "3.8.0")
-- Found IPOPT: /usr/local/lib/libipopt.dylib  
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY
-- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR
-- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success
-- Found SWIG: /usr/local/bin/swig (found version "4.2.1")  
-- Found Python3: /usr/local/Frameworks/Python.framework/Versions/3.12/bin/python3.12 (found version "3.12.2") found components: Interpreter Development.Module NumPy 
Traceback (most recent call last):
  File "<string>", line 1, in <module>
ModuleNotFoundError: No module named 'distutils'
CMake Error at bindings/CMakeLists.txt:54 (string):
  string sub-command STRIP requires two arguments.
GiulioRomualdi commented 3 months ago

I can set the installdir of idyntree in https://github.com/robotology/idyntree/blob/d6af7ff4aa46bd8a4e3cfa8e8abc316908dbd4fd/bindings/CMakeLists.txt#L46C20-L46C47

traversaro commented 3 months ago

iDynTree fails with the following error (perhaps it is an old version and it should be updated @traversaro )

Yes, that is true. At the superbuild level I fixed this as documented in https://github.com/robotology/robotology-superbuild/issues/1238 and https://github.com/robotology/robotology-superbuild/pull/1508 , i.e. not using distutils . However, distutils is still use by default, so it probably make sense to cleanup that.

traversaro commented 3 months ago

iDynTree fails with the following error (perhaps it is an old version and it should be updated @traversaro )

Yes, that is true. At the superbuild level I fixed this as documented in robotology/robotology-superbuild#1238 and robotology/robotology-superbuild#1508 , i.e. not using distutils . However, distutils is still use by default, so it probably make sense to cleanup that.

TL;DR: We need to propagate https://github.com/robotology/robotology-superbuild/pull/1511 to idyntree.

GiulioRomualdi commented 3 months ago

Associated PR in iDynTree: https://github.com/robotology/idyntree/pull/1168

GiulioRomualdi commented 3 months ago

The ubuntu test fails with

/home/runner/work/bipedal-locomotion-framework/bipedal-locomotion-framework/src/IK/tests/QPInverseKinematicsTest.cpp:750: FAILED:
  REQUIRE( error.coeffs().isZero(tolerance) )
with expansion:
  false

I was wondering if something similar to what happened back in time on the iDynTree generation of the model. I updated the version of iDynTree in the CI

GiulioRomualdi commented 3 months ago

I did a bit of analysis. I was able to replicate the failure https://github.com/ami-iit/bipedal-locomotion-framework/pull/822#issuecomment-2021108836 on my PC with the following commit of iDynTree https://github.com/robotology/idyntree/commit/7e029b963d44fa2606bd608019ba9b82a4398741 while with https://github.com/robotology/idyntree/commit/7ecf7b536be9e03fe05a0d49c8e7adbc5f84dc31 the test pass.

I tried a git bisect and I found the commit in iDynTree that breaks the test in blf https://github.com/robotology/idyntree/commit/9c7f2b36a2505f132700744bfffb142728639a57

9c7f2b36a2505f132700744bfffb142728639a57 is the first bad commit
commit 9c7f2b36a2505f132700744bfffb142728639a57
Author: Silvio Traversaro <silvio.traversaro@iit.it>
Date:   Wed Mar 22 14:46:19 2023 +0100

    Add support for PrismaticJoint in getRandomModel

 src/model/include/iDynTree/Model/ModelTestUtils.h | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

This is the git bisect trace

git bisect start
# bad: [7e029b963d44fa2606bd608019ba9b82a4398741] Merge pull request #1163 from S-Dafarra/visualize_solid_shapes
git bisect bad 7e029b963d44fa2606bd608019ba9b82a4398741
# bad: [7e029b963d44fa2606bd608019ba9b82a4398741] Merge pull request #1163 from S-Dafarra/visualize_solid_shapes
git bisect bad 7e029b963d44fa2606bd608019ba9b82a4398741
# good: [7ecf7b536be9e03fe05a0d49c8e7adbc5f84dc31] Fix MatrixView constructor when MatrixView<const T> is built from MatrixView<T> (#1044)
git bisect good 7ecf7b536be9e03fe05a0d49c8e7adbc5f84dc31
# bad: [deea1a161e18f24f2ce94175bd3836015411a6cd] Merge PositionRaw in Position and deprecated PositionRaw
git bisect bad deea1a161e18f24f2ce94175bd3836015411a6cd
# bad: [40bfd488e7845f948e834a7a175c6e578d513d08] Merge branch 'master' into devel
git bisect bad 40bfd488e7845f948e834a7a175c6e578d513d08
# bad: [720bcabea4a70910378e7dadd85c309a70f037ca] Merge pull request #1061 from robotology/python_3.10
git bisect bad 720bcabea4a70910378e7dadd85c309a70f037ca
# bad: [9c7f2b36a2505f132700744bfffb142728639a57] Add support for PrismaticJoint in getRandomModel
git bisect bad 9c7f2b36a2505f132700744bfffb142728639a57
# good: [1d41168b4cf133a0360f8099407f4bfc30666ecf] Merge pull request #1050 from robotology/fix1049
git bisect good 1d41168b4cf133a0360f8099407f4bfc30666ecf
# good: [91592526d9bcc3d991da060487b0f4801f327250] Update changelog.
git bisect good 91592526d9bcc3d991da060487b0f4801f327250
# good: [4e9d8097753dc146914e55f5656b465d00e6b25f] Merge pull request #1053 from francesco-romano/parser/add_error
git bisect good 4e9d8097753dc146914e55f5656b465d00e6b25f
# first bad commit: [9c7f2b36a2505f132700744bfffb142728639a57] Add support for PrismaticJoint in getRandomModel
GiulioRomualdi commented 3 months ago

Our inverse dynamics doesn't support prismatic joints. It would be nice if it could be possible to generate chains with only revolutes joints in iDynTree

traversaro commented 3 months ago

See the following related issues:

traversaro commented 3 months ago

Our inverse dynamics doesn't support prismatic joints. It would be nice if it could be possible to generate chains with only revolutes joints in iDynTree

There is the third argument of the function that does that: https://github.com/robotology/idyntree/issues/1149 .

GiulioRomualdi commented 3 months ago

Associated fix in iDynTree for generating a model (and not a chain) with revolute joints https://github.com/robotology/idyntree/pull/1171

traversaro commented 3 months ago

It seems we need to fix something on the pybind11 bindings, I will check tomorrow.

GiulioRomualdi commented 3 months ago

https://github.com/ami-iit/bipedal-locomotion-framework/pull/822#issuecomment-2028477240 probably related to https://github.com/ami-iit/bipedal-locomotion-framework/issues/829

GiulioRomualdi commented 3 months ago

I've just rebased on master. Let's see if the CI is happy

GiulioRomualdi commented 3 months ago

macOS fails while in solving the qp of the QPInverseKinematics 😭

traversaro commented 3 months ago

macOS fails while in solving the qp of the QPInverseKinematics 😭

You know my position on this. :D:

GiulioRomualdi commented 3 months ago

macOS fails while in solving the qp of the QPInverseKinematics 😭

You know my position on this. :D:

I removed macOS - brew from CI https://github.com/ami-iit/bipedal-locomotion-framework/pull/822/commits/e143f5128d292c2cc7700a6cdea565eb5a5582ca

traversaro commented 3 months ago

I guess GitHub has some problems, the CI failures are due to this.

GiulioRomualdi commented 3 months ago

Running again the CI

GiulioRomualdi commented 3 months ago

Merging!