Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Camera bridge bindings #695

Merged
merged 13 commits into from
Aug 1, 2023
Merged

Camera bridge bindings #695

merged 13 commits into from
Aug 1, 2023

Conversation

GiulioRomualdi
Copy link
Member

No description provided.

Verified

This commit was created on GitHub.com and signed with GitHub’s verified signature. The key has expired.
@GiulioRomualdi GiulioRomualdi force-pushed the camera_bridge_bindings branch from 81455fc to ecd8db6 Compare July 5, 2023 10:02
@GiulioRomualdi
Copy link
Member Author

Let's wait for the CI then I will merge and release the software

@GiulioRomualdi GiulioRomualdi force-pushed the camera_bridge_bindings branch 3 times, most recently from c24f770 to 2c4b53a Compare July 5, 2023 10:43
@GiulioRomualdi GiulioRomualdi force-pushed the camera_bridge_bindings branch from 2c4b53a to 33fb790 Compare July 5, 2023 10:46
@GiulioRomualdi
Copy link
Member Author

Given this error https://github.com/ami-iit/bipedal-locomotion-framework/actions/runs/5463371035/jobs/9946694347#step:22:2419 this PR is not compatible with pybind11 installed by apt ubuntu 20.04 :(

@GiulioRomualdi
Copy link
Member Author

Given this error https://github.com/ami-iit/bipedal-locomotion-framework/actions/runs/5463371035/jobs/9946694347#step:22:2419 this PR is not compatible with pybind11 installed by apt ubuntu 20.04 :(

The feature we need in pybind has been introduced by this commit pybind/pybind11@74a767d pybind/pybind11#2864
So we need at least v2.7.0

But in Ubuntu 20.04 we have pybind 2.4.3
image

@traversaro
Copy link
Collaborator

As mentioned in person, I think we can avoid compiling that parts of the bindings if pybind11 < 2.7.0, in this way we still support 20.04 for almost all the library, while avoiding being blocked by Ubuntu 20.04 quirks for adding new features.

…_bipedal_locomotion_python_module cmake function
@GiulioRomualdi
Copy link
Member Author

Hi @traversaro I added the logic to check if pybind11 is at least v2.7.0 can you review the PR again?

@GiulioRomualdi GiulioRomualdi requested a review from traversaro July 6, 2023 08:35
@GiulioRomualdi GiulioRomualdi force-pushed the camera_bridge_bindings branch 2 times, most recently from bae99cd to ac6c830 Compare July 6, 2023 08:40
@GiulioRomualdi GiulioRomualdi force-pushed the camera_bridge_bindings branch from ac6c830 to 9b94d4a Compare July 6, 2023 08:41
@GiulioRomualdi
Copy link
Member Author

Ok, conda-forge CI is happy, now there are just some CI failure on 20.04 .

Wow thank you!
ubuntu 20.04 fails without any messages. I'm afraid is a segmentation fault

@S-Dafarra
Copy link
Member

I managed to reproduce the issue on my Ubuntu 20.04 system.
If I run

/usr/bin/python3.8 -m pytest /home/sdafarra/Software/robotology-superbuild/src/bipedal-locomotion-framework/bindings/python/Planners/tests/test_time_varying_dcm_planner.py

it crashes without errors

@S-Dafarra
Copy link
Member

It seems to crash at this line

@traversaro
Copy link
Collaborator

It seems to crash at this line

I had similar errors when I was debugging the Windows problems.

@S-Dafarra
Copy link
Member

S-Dafarra commented Jul 14, 2023

I followed the operations with the debugger. It crashes here:

@S-Dafarra
Copy link
Member

Maybe I was using an old version of qhull, but it seems to fail also with master.

@S-Dafarra
Copy link
Member

As suggested by @traversaro, I commented out the modifications to bindings/python/RobotInterface/CMakeLists.txt and to bindings/python/bipedal_locomotion_framework.cpp.in and then the test works fine. There seem to be some incompatibility between the targets introduced by the PerceptionInterface and qhull.

@S-Dafarra
Copy link
Member

Here the compilation output in case of failure and success:
failure.txt
success.txt
failure_success_diff.txt

@S-Dafarra
Copy link
Member

Under another @traversaro suggestion, I first removed opencv and then pcl as dependency. Removing opencv did not make any difference, while when removing pcl the test worked fine again. We have our culprit!

@S-Dafarra
Copy link
Member

Here the compilation output when removing PCL
no_pcl.txt

@GiulioRomualdi
Copy link
Member Author

pcl in Ubuntu 20.04 and 22.04

image

@traversaro
Copy link
Collaborator

I did not see anything strange and also the avx/sse options that were set for PCL on Windows were are not set in PCL for Ubuntu 20.04 . To debug even further, we can remove the PCL compilation, but add the compilation flags it adds with target_compile_flags . If that continues to fail, them we remove and/or add the flags one by one until we find me the problematic one

@traversaro
Copy link
Collaborator

traversaro commented Jul 15, 2023

Here the compilation output when removing PCL no_pcl.txt

Beside a different order of some include directories, that (but it is just a guess) should not matter, the define that are in falure and not in no_pcl.txt are:

-DDISABLE_LIBUSB_1_0 -DDISABLE_PCAP -DDISABLE_PNG 

However, I could not find any use of this defines in commonly used libraries on GitHub.

@traversaro
Copy link
Collaborator

Beside a different order of some include directories, that (but it is just a guess) should not matter,

Actually, thinking about it, that could be a source of failures: if there there are two different headers that define the same structure with two different ABIs with the same name in two different include directoreies, changing the order of include directories could change which one is included. That could be a source of problems.

Anyhow, if we do not find the culprit we could disable this feature for Ubuntu 22.04 .

@GiulioRomualdi
Copy link
Member Author

I created a docker image with ubuntu 20.04 I discovered that if I commented:

the tests pass without problems. That function uses qhull to find the convex hull

@traversaro
Copy link
Collaborator

traversaro commented Jul 16, 2023

If I recall correctly, in the robotology-superbuild qhull is compiled from source only on Ubuntu 20.04 . On the other hand, we use PCL compiled via apt that (if I recall correctly) also links qhull installed via apt. So it is possible that loading pcl compiled via apt loads in memory the qhull of apt, that is not ABI compatible with manually compiled qhull.

See robotology/robotology-superbuild#517, robotology/robotology-superbuild#1350 and robotology/robotology-superbuild#1351 for more context.

@traversaro
Copy link
Collaborator

See robotology/robotology-superbuild#517, robotology/robotology-superbuild#1350 and robotology/robotology-superbuild#1351 for more context.

In particular, see robotology/robotology-superbuild#1350 (comment) that explains why we can't use apt-installed qhull on Ubuntu 20.04 .

If this is confirmed to be the problem, a small brainstorming of possible solutions (each solution is alternative to each other solution):

  • Start compiling also PCL from source on Ubuntu 20.04 (I would really prefer to avoid this if possible)
  • In robotology-superbuild and CI on Ubuntu 20.04, only compile blf with qhull or PCL enabled , not both (I am not sure if this is acceptable while we migrate away from apt on Ubuntu 20.04)
  • Port blf to use C-api of qhull instead of using the C++-api, as in that way we can use the qhull installed by apt also on 20.04
  • Stop using qhull in blf and use something else to compute the convex hull, either another library (such as PCL, that basically wraps qhull C API: https://pointclouds.org/documentation/classpcl_1_1_convex_hull.html) or a custom implementation.

@S-Dafarra
Copy link
Member

If I recall correctly, in the robotology-superbuild qhull is compiled from source only on Ubuntu 20.04 . On the other hand, we use PCL compiled via apt that (if I recall correctly) also links qhull installed via apt. So it is possible that loading pcl compiled via apt loads in memory the qhull of apt, that is not ABI compatible with manually compiled qhull.

See robotology/robotology-superbuild#517, robotology/robotology-superbuild#1350 and robotology/robotology-superbuild#1351 for more context.

Indeed:

sdafarra@iiticublap260:~/Software/robotology-superbuild/build/install/lib/python3.8/site-packages/bipedal_locomotion_framework (releases/2022.11)$ ldd bindings.cpython-38-x86_64-linux-gnu.so 
	linux-vdso.so.1 (0x00007fff2abc4000)
	libBipedalLocomotionFrameworkSystemYarpImplementation.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkSystemYarpImplementation.so.0.14.200 (0x00007ff10b8d4000)
	libBipedalLocomotionFrameworkParametersHandlerYarpImplementation.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkParametersHandlerYarpImplementation.so.0.14.200 (0x00007ff10b786000)
	libBipedalLocomotionFrameworkContactDetectors.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkContactDetectors.so.0.14.200 (0x00007ff10b5b2000)
	libBipedalLocomotionFrameworkPlanners.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkPlanners.so.0.14.200 (0x00007ff10b0d7000)
	libBipedalLocomotionFrameworkUnicycle.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkUnicycle.so.0.14.200 (0x00007ff10af16000)
	libBipedalLocomotionFrameworkRobotInterfaceYarpImplementation.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkRobotInterfaceYarpImplementation.so.0.14.200 (0x00007ff10ad85000)
	libBipedalLocomotionFrameworkPerceptionInterfaceYarpImplementation.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkPerceptionInterfaceYarpImplementation.so.0.14.200 (0x00007ff10aca7000)
	libBipedalLocomotionFrameworkFloatingBaseEstimators.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkFloatingBaseEstimators.so.0.14.200 (0x00007ff10a6e0000)
	libBipedalLocomotionFrameworkIK.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkIK.so.0.14.200 (0x00007ff10a33a000)
	libBipedalLocomotionFrameworkTSID.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkTSID.so.0.14.200 (0x00007ff109f46000)
	libBipedalLocomotionFrameworkTextLoggingYarpImplementation.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkTextLoggingYarpImplementation.so.0.14.200 (0x00007ff109f27000)
	libBipedalLocomotionFrameworkVectorsCollection.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkVectorsCollection.so.0.14.200 (0x00007ff109f0f000)
	libBipedalLocomotionFrameworkContinuousDynamicalSystem.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkContinuousDynamicalSystem.so.0.14.200 (0x00007ff109bc7000)
	libBipedalLocomotionFrameworkReducedModelControllers.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkReducedModelControllers.so.0.14.200 (0x00007ff10995f000)
	libYARP_init.so.3 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libYARP_init.so.3 (0x00007ff109958000)
	libBipedalLocomotionFrameworkRobotInterface.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkRobotInterface.so.0.14.200 (0x00007ff109953000)
	libqhull.so.7 => /lib/x86_64-linux-gnu/libqhull.so.7 (0x00007ff1096ad000)
	libYARP_dev.so.3 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libYARP_dev.so.3 (0x00007ff1095c8000)
	libYARP_os.so.3 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libYARP_os.so.3 (0x00007ff1093e6000)
	libidyntree-model.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libidyntree-model.so (0x00007ff109368000)
	libBipedalLocomotionFrameworkContacts.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkContacts.so.0.14.200 (0x00007ff10909e000)
	libBipedalLocomotionFrameworkMath.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkMath.so.0.14.200 (0x00007ff108cca000)
	libBipedalLocomotionFrameworkSystem.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkSystem.so.0.14.200 (0x00007ff108bef000)
	libBipedalLocomotionFrameworkParametersHandler.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkParametersHandler.so.0.14.200 (0x00007ff108b46000)
	libidyntree-core.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libidyntree-core.so (0x00007ff108aca000)
	libBipedalLocomotionFrameworkTextLogging.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkTextLogging.so.0.14.200 (0x00007ff108ab8000)
	libspdlog.so.1 => /lib/x86_64-linux-gnu/libspdlog.so.1 (0x00007ff108a0f000)
	libstdc++.so.6 => /lib/x86_64-linux-gnu/libstdc++.so.6 (0x00007ff10882d000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff1086de000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff1086c3000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff1084d1000)
	libBipedalLocomotionFrameworkYarpUtilities.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkYarpUtilities.so.0.14.200 (0x00007ff10841a000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff1083f7000)
	libqhull_rd.so.8.1 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libqhull_rd.so.8.1 (0x00007ff108367000)
	libcasadi.so.3.6 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libcasadi.so.3.6 (0x00007ff107bbd000)
	libUnicyclePlanner.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libUnicyclePlanner.so (0x00007ff107b5d000)
	libidyntree-optimalcontrol.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libidyntree-optimalcontrol.so (0x00007ff107a73000)
	libYARP_sig.so.3 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libYARP_sig.so.3 (0x00007ff107a24000)
	libopencv_imgproc.so.4.2 => /lib/x86_64-linux-gnu/libopencv_imgproc.so.4.2 (0x00007ff10747d000)
	libopencv_core.so.4.2 => /lib/x86_64-linux-gnu/libopencv_core.so.4.2 (0x00007ff1070cd000)
	libidyntree-high-level.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libidyntree-high-level.so (0x00007ff1070a9000)
	libOsqpEigen.so.0.8.0 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libOsqpEigen.so.0.8.0 (0x00007ff10709a000)
	libosqp.so => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libosqp.so (0x00007ff10707d000)
	libBipedalLocomotionFrameworkContactModels.so.0.14.200 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libBipedalLocomotionFrameworkContactModels.so.0.14.200 (0x00007ff106edc000)
	libYARP_math.so.3 => /home/sdafarra/Software/robotology-superbuild/build/install/lib/libYARP_math.so.3 (0x00007ff106e8b000)
	libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007ff106e6d000)
	libACE-6.4.5.so => /lib/libACE-6.4.5.so (0x00007ff106cd8000)
	libedit.so.2 => /lib/x86_64-linux-gnu/libedit.so.2 (0x00007ff106ca0000)
	/lib64/ld-linux-x86-64.so.2 (0x00007ff10bf8e000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff106c9a000)
	libipopt.so.3 => /home/sdafarra/Software/coin-or/install/lib/libipopt.so.3 (0x00007ff106a08000)
	libjpeg.so.8 => /lib/x86_64-linux-gnu/libjpeg.so.8 (0x00007ff106983000)
	libsoxr.so.0 => /lib/x86_64-linux-gnu/libsoxr.so.0 (0x00007ff106918000)
	libpng16.so.16 => /lib/x86_64-linux-gnu/libpng16.so.16 (0x00007ff1068e0000)
	libavcodec.so.58 => /lib/x86_64-linux-gnu/libavcodec.so.58 (0x00007ff10531f000)
	libavutil.so.56 => /lib/x86_64-linux-gnu/libavutil.so.56 (0x00007ff1051f6000)
	libtbb.so.2 => /lib/x86_64-linux-gnu/libtbb.so.2 (0x00007ff1051ae000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff1051a4000)
	libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007ff105174000)
	libbsd.so.0 => /lib/x86_64-linux-gnu/libbsd.so.0 (0x00007ff10515a000)
	libcoinhsl.so.2 => /home/sdafarra/Software/coin-or/install/lib/libcoinhsl.so.2 (0x00007ff10502a000)
	libcoinmumps.so.3 => /home/sdafarra/Software/coin-or/install/lib/libcoinmumps.so.3 (0x00007ff104d8b000)
	liblapack.so.3 => /lib/x86_64-linux-gnu/liblapack.so.3 (0x00007ff102d77000)
	libgomp.so.1 => /lib/x86_64-linux-gnu/libgomp.so.1 (0x00007ff102d35000)
	libswresample.so.3 => /lib/x86_64-linux-gnu/libswresample.so.3 (0x00007ff102d13000)
	libvpx.so.6 => /lib/x86_64-linux-gnu/libvpx.so.6 (0x00007ff102adb000)
	libwebpmux.so.3 => /lib/x86_64-linux-gnu/libwebpmux.so.3 (0x00007ff102acd000)
	libwebp.so.6 => /lib/x86_64-linux-gnu/libwebp.so.6 (0x00007ff102a63000)
	liblzma.so.5 => /lib/x86_64-linux-gnu/liblzma.so.5 (0x00007ff102a3a000)
	librsvg-2.so.2 => /lib/x86_64-linux-gnu/librsvg-2.so.2 (0x00007ff10210f000)
	libgobject-2.0.so.0 => /lib/x86_64-linux-gnu/libgobject-2.0.so.0 (0x00007ff1020af000)
	libglib-2.0.so.0 => /lib/x86_64-linux-gnu/libglib-2.0.so.0 (0x00007ff101f85000)
	libcairo.so.2 => /lib/x86_64-linux-gnu/libcairo.so.2 (0x00007ff101e62000)
	libzvbi.so.0 => /lib/x86_64-linux-gnu/libzvbi.so.0 (0x00007ff101dd1000)
	libsnappy.so.1 => /lib/x86_64-linux-gnu/libsnappy.so.1 (0x00007ff101dc6000)
	libaom.so.0 => /lib/x86_64-linux-gnu/libaom.so.0 (0x00007ff101928000)
	libcodec2.so.0.9 => /lib/x86_64-linux-gnu/libcodec2.so.0.9 (0x00007ff100b44000)
	libgsm.so.1 => /lib/x86_64-linux-gnu/libgsm.so.1 (0x00007ff100b35000)
	libmp3lame.so.0 => /lib/x86_64-linux-gnu/libmp3lame.so.0 (0x00007ff100abd000)
	libopenjp2.so.7 => /lib/x86_64-linux-gnu/libopenjp2.so.7 (0x00007ff100a65000)
	libopus.so.0 => /lib/x86_64-linux-gnu/libopus.so.0 (0x00007ff100a06000)
	libshine.so.3 => /lib/x86_64-linux-gnu/libshine.so.3 (0x00007ff1007fb000)
	libspeex.so.1 => /lib/x86_64-linux-gnu/libspeex.so.1 (0x00007ff1007dd000)
	libtheoraenc.so.1 => /lib/x86_64-linux-gnu/libtheoraenc.so.1 (0x00007ff1007a0000)
	libtheoradec.so.1 => /lib/x86_64-linux-gnu/libtheoradec.so.1 (0x00007ff100780000)
	libtwolame.so.0 => /lib/x86_64-linux-gnu/libtwolame.so.0 (0x00007ff100758000)
	libvorbis.so.0 => /lib/x86_64-linux-gnu/libvorbis.so.0 (0x00007ff10072a000)
	libvorbisenc.so.2 => /lib/x86_64-linux-gnu/libvorbisenc.so.2 (0x00007ff10067f000)
	libwavpack.so.1 => /lib/x86_64-linux-gnu/libwavpack.so.1 (0x00007ff100653000)
	libx264.so.155 => /lib/x86_64-linux-gnu/libx264.so.155 (0x00007ff100395000)
	libx265.so.179 => /lib/x86_64-linux-gnu/libx265.so.179 (0x00007ff0ff427000)
	libxvidcore.so.4 => /lib/x86_64-linux-gnu/libxvidcore.so.4 (0x00007ff0ff312000)
	libva.so.2 => /lib/x86_64-linux-gnu/libva.so.2 (0x00007ff0ff2e9000)
	libva-drm.so.2 => /lib/x86_64-linux-gnu/libva-drm.so.2 (0x00007ff0ff2e4000)
	libva-x11.so.2 => /lib/x86_64-linux-gnu/libva-x11.so.2 (0x00007ff0ff2dc000)
	libvdpau.so.1 => /lib/x86_64-linux-gnu/libvdpau.so.1 (0x00007ff0ff2d6000)
	libX11.so.6 => /lib/x86_64-linux-gnu/libX11.so.6 (0x00007ff0ff197000)
	libdrm.so.2 => /lib/x86_64-linux-gnu/libdrm.so.2 (0x00007ff0ff181000)
	libOpenCL.so.1 => /lib/x86_64-linux-gnu/libOpenCL.so.1 (0x00007ff0fef76000)
	libmetis.so.5 => /lib/x86_64-linux-gnu/libmetis.so.5 (0x00007ff0fed08000)
	libgfortran.so.5 => /lib/x86_64-linux-gnu/libgfortran.so.5 (0x00007ff0fea40000)
	libcairo-gobject.so.2 => /lib/x86_64-linux-gnu/libcairo-gobject.so.2 (0x00007ff0fea32000)
	libgdk_pixbuf-2.0.so.0 => /lib/x86_64-linux-gnu/libgdk_pixbuf-2.0.so.0 (0x00007ff0fea0a000)
	libgio-2.0.so.0 => /lib/x86_64-linux-gnu/libgio-2.0.so.0 (0x00007ff0fe829000)
	libxml2.so.2 => /lib/x86_64-linux-gnu/libxml2.so.2 (0x00007ff0fe66f000)
	libpangocairo-1.0.so.0 => /lib/x86_64-linux-gnu/libpangocairo-1.0.so.0 (0x00007ff0fe65d000)
	libpango-1.0.so.0 => /lib/x86_64-linux-gnu/libpango-1.0.so.0 (0x00007ff0fe60e000)
	libffi.so.7 => /lib/x86_64-linux-gnu/libffi.so.7 (0x00007ff0fe600000)
	libpcre.so.3 => /lib/x86_64-linux-gnu/libpcre.so.3 (0x00007ff0fe58d000)
	libpixman-1.so.0 => /lib/x86_64-linux-gnu/libpixman-1.so.0 (0x00007ff0fe4e6000)
	libfontconfig.so.1 => /lib/x86_64-linux-gnu/libfontconfig.so.1 (0x00007ff0fe49f000)
	libfreetype.so.6 => /lib/x86_64-linux-gnu/libfreetype.so.6 (0x00007ff0fe3e0000)
	libxcb-shm.so.0 => /lib/x86_64-linux-gnu/libxcb-shm.so.0 (0x00007ff0fe3db000)
	libxcb.so.1 => /lib/x86_64-linux-gnu/libxcb.so.1 (0x00007ff0fe3af000)
	libxcb-render.so.0 => /lib/x86_64-linux-gnu/libxcb-render.so.0 (0x00007ff0fe3a0000)
	libXrender.so.1 => /lib/x86_64-linux-gnu/libXrender.so.1 (0x00007ff0fe196000)
	libXext.so.6 => /lib/x86_64-linux-gnu/libXext.so.6 (0x00007ff0fe181000)
	libogg.so.0 => /lib/x86_64-linux-gnu/libogg.so.0 (0x00007ff0fe174000)
	libnuma.so.1 => /lib/x86_64-linux-gnu/libnuma.so.1 (0x00007ff0fe165000)
	libXfixes.so.3 => /lib/x86_64-linux-gnu/libXfixes.so.3 (0x00007ff0fe15d000)
	libquadmath.so.0 => /lib/x86_64-linux-gnu/libquadmath.so.0 (0x00007ff0fe113000)
	libgmodule-2.0.so.0 => /lib/x86_64-linux-gnu/libgmodule-2.0.so.0 (0x00007ff0fe10d000)
	libmount.so.1 => /lib/x86_64-linux-gnu/libmount.so.1 (0x00007ff0fe0ad000)
	libselinux.so.1 => /lib/x86_64-linux-gnu/libselinux.so.1 (0x00007ff0fe080000)
	libresolv.so.2 => /lib/x86_64-linux-gnu/libresolv.so.2 (0x00007ff0fe064000)
	libicuuc.so.66 => /lib/x86_64-linux-gnu/libicuuc.so.66 (0x00007ff0fde7e000)
	libpangoft2-1.0.so.0 => /lib/x86_64-linux-gnu/libpangoft2-1.0.so.0 (0x00007ff0fde65000)
	libfribidi.so.0 => /lib/x86_64-linux-gnu/libfribidi.so.0 (0x00007ff0fde48000)
	libthai.so.0 => /lib/x86_64-linux-gnu/libthai.so.0 (0x00007ff0fde3b000)
	libharfbuzz.so.0 => /lib/x86_64-linux-gnu/libharfbuzz.so.0 (0x00007ff0fdd37000)
	libexpat.so.1 => /lib/x86_64-linux-gnu/libexpat.so.1 (0x00007ff0fdd09000)
	libuuid.so.1 => /lib/x86_64-linux-gnu/libuuid.so.1 (0x00007ff0fdd00000)
	libXau.so.6 => /lib/x86_64-linux-gnu/libXau.so.6 (0x00007ff0fdcfa000)
	libXdmcp.so.6 => /lib/x86_64-linux-gnu/libXdmcp.so.6 (0x00007ff0fdcf2000)
	libblkid.so.1 => /lib/x86_64-linux-gnu/libblkid.so.1 (0x00007ff0fdc99000)
	libpcre2-8.so.0 => /lib/x86_64-linux-gnu/libpcre2-8.so.0 (0x00007ff0fdc08000)
	libicudata.so.66 => /lib/x86_64-linux-gnu/libicudata.so.66 (0x00007ff0fc147000)
	libdatrie.so.1 => /lib/x86_64-linux-gnu/libdatrie.so.1 (0x00007ff0fc13d000)
	libgraphite2.so.3 => /lib/x86_64-linux-gnu/libgraphite2.so.3 (0x00007ff0fc110000)

in particular

libqhull.so.7 => /lib/x86_64-linux-gnu/libqhull.so.7 (0x00007ff1096ad000)

@GiulioRomualdi
Copy link
Member Author

We may switch to https://github.com/akuukka/quickhull
It's also faster to find the convex hull see here

@traversaro
Copy link
Collaborator

Indeed:

Just to double check, you can force the loading of the robotology-superbuild's qhull via LD_PRELOAD, just to ensure that like that the test pass.

@S-Dafarra
Copy link
Member

Indeed:

Just to double check, you can force the loading of the robotology-superbuild's qhull via LD_PRELOAD, just to ensure that like that the test pass.

Yes, it works! (I have set LD_PRELOAD=/home/sdafarra/Software/robotology-superbuild/build/install/lib/libqhull_rd.so.8.1)

@traversaro
Copy link
Collaborator

Another really ugly workaround could be to build in CI and robotology-superbuild a version of qhull ABI-compatible with the version installed by apt in Ubuntu 20.04 .

@traversaro
Copy link
Collaborator

Other idea: use qhull if PCL is not enabled, and PCL if both qhull and PCL are enabled.

@GiulioRomualdi
Copy link
Member Author

From #713, I started to use qhull c and not qhull cpp.

In theory this should fix all the issue we have

@GiulioRomualdi
Copy link
Member Author

The CI passes without issues 🚀 #713 fixed all the problems related to qhull and pcl

@GiulioRomualdi GiulioRomualdi merged commit e5c55ce into master Aug 1, 2023
@GiulioRomualdi GiulioRomualdi deleted the camera_bridge_bindings branch August 1, 2023 08:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants