Skip to content

Remove octomap dependency#269

Merged
nbbrooks merged 1 commit into
moveit:ros2from
urfeex:fix_octomap_dep
May 11, 2026
Merged

Remove octomap dependency#269
nbbrooks merged 1 commit into
moveit:ros2from
urfeex:fix_octomap_dep

Conversation

@urfeex
Copy link
Copy Markdown
Contributor

@urfeex urfeex commented May 4, 2026

The versioned dependency doesn't work out on the latest ubuntu release. However, since compatibility to libfcl-dev is mentioned in the comment: Octomap should be linked in as a transitive depencency from fcl.

In fact, octomap isn't linked to the target, anyway, but fcl is. Looking at the built library it seems that it seems to be correctly linked against liboctomap:

$ ldd libgeometric_shapes.so
        linux-vdso.so.1 (0x0000735e9514b000)
        libassimp.so.6 => /usr/lib/x86_64-linux-gnu/libassimp.so.6 (0x0000735e9497c000)
        libfcl.so.0.7 => /usr/lib/x86_64-linux-gnu/libfcl.so.0.7 (0x0000735e943f0000)
        libqhull_r.so.8.0 => /usr/lib/x86_64-linux-gnu/libqhull_r.so.8.0 (0x0000735e9437d000)
        libconsole_bridge.so.1.0 => /usr/lib/x86_64-linux-gnu/libconsole_bridge.so.1.0 (0x0000735e94377000)
        libresource_retriever.so => /opt/ros/rolling/lib/libresource_retriever.so (0x0000735e9436a000)
        libstdc++.so.6 => /usr/lib/x86_64-linux-gnu/libstdc++.so.6 (0x0000735e940c8000)
        libm.so.6 => /usr/lib/x86_64-linux-gnu/libm.so.6 (0x0000735e93fa2000)
        libgcc_s.so.1 => /usr/lib/x86_64-linux-gnu/libgcc_s.so.1 (0x0000735e93f74000)
        libc.so.6 => /usr/lib/x86_64-linux-gnu/libc.so.6 (0x0000735e93d53000)
        libz.so.1 => /usr/lib/x86_64-linux-gnu/libz.so.1 (0x0000735e93d35000)
        libdraco.so.9 => /usr/lib/x86_64-linux-gnu/libdraco.so.9 (0x0000735e93a60000)
        libminizip.so.1 => /usr/lib/x86_64-linux-gnu/libminizip.so.1 (0x0000735e93a50000)
        libpugixml.so.1 => /usr/lib/x86_64-linux-gnu/libpugixml.so.1 (0x0000735e93a11000)
        libccd.so.2 => /usr/lib/x86_64-linux-gnu/libccd.so.2 (0x0000735e93a05000)
        liboctomap.so.1.10 => /usr/lib/x86_64-linux-gnu/liboctomap.so.1.10 (0x0000735e939c2000)
        liboctomath.so.1.10 => /usr/lib/x86_64-linux-gnu/liboctomath.so.1.10 (0x0000735e939ba000)
        libament_index_cpp.so => /opt/ros/rolling/lib/libament_index_cpp.so (0x0000735e939a7000)
        libcurl.so.4 => /usr/lib/x86_64-linux-gnu/libcurl.so.4 (0x0000735e938b4000)
        /lib64/ld-linux-x86-64.so.2 (0x0000735e9514d000)
        libnghttp2.so.14 => /usr/lib/x86_64-linux-gnu/libnghttp2.so.14 (0x0000735e9388a000)
        libidn2.so.0 => /usr/lib/x86_64-linux-gnu/libidn2.so.0 (0x0000735e93868000)
        librtmp.so.1 => /usr/lib/x86_64-linux-gnu/librtmp.so.1 (0x0000735e93848000)
        libldap.so.2 => /usr/lib/x86_64-linux-gnu/libldap.so.2 (0x0000735e937e3000)
        liblber.so.2 => /usr/lib/x86_64-linux-gnu/liblber.so.2 (0x0000735e937d2000)
        libssh2.so.1 => /usr/lib/x86_64-linux-gnu/libssh2.so.1 (0x0000735e93786000)
        libpsl.so.5 => /usr/lib/x86_64-linux-gnu/libpsl.so.5 (0x0000735e93771000)
        libssl.so.3 => /usr/lib/x86_64-linux-gnu/libssl.so.3 (0x0000735e93663000)
        libcrypto.so.3 => /usr/lib/x86_64-linux-gnu/libcrypto.so.3 (0x0000735e9304a000)
        libgssapi_krb5.so.2 => /usr/lib/x86_64-linux-gnu/libgssapi_krb5.so.2 (0x0000735e92ff0000)
        libzstd.so.1 => /usr/lib/x86_64-linux-gnu/libzstd.so.1 (0x0000735e92f2d000)
        libbrotlidec.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlidec.so.1 (0x0000735e92f1e000)
        libunistring.so.5 => /usr/lib/x86_64-linux-gnu/libunistring.so.5 (0x0000735e92d37000)
        libgnutls.so.30 => /usr/lib/x86_64-linux-gnu/libgnutls.so.30 (0x0000735e92b27000)
        libhogweed.so.6 => /usr/lib/x86_64-linux-gnu/libhogweed.so.6 (0x0000735e92ada000)
        libnettle.so.8 => /usr/lib/x86_64-linux-gnu/libnettle.so.8 (0x0000735e92a83000)
        libgmp.so.10 => /usr/lib/x86_64-linux-gnu/libgmp.so.10 (0x0000735e929fd000)
        libsasl2.so.2 => /usr/lib/x86_64-linux-gnu/libsasl2.so.2 (0x0000735e929e2000)
        libkrb5.so.3 => /usr/lib/x86_64-linux-gnu/libkrb5.so.3 (0x0000735e92916000)
        libk5crypto.so.3 => /usr/lib/x86_64-linux-gnu/libk5crypto.so.3 (0x0000735e928e8000)
        libcom_err.so.2 => /usr/lib/x86_64-linux-gnu/libcom_err.so.2 (0x0000735e928e2000)
        libkrb5support.so.0 => /usr/lib/x86_64-linux-gnu/libkrb5support.so.0 (0x0000735e928d5000)
        libbrotlicommon.so.1 => /usr/lib/x86_64-linux-gnu/libbrotlicommon.so.1 (0x0000735e928b2000)
        libp11-kit.so.0 => /usr/lib/x86_64-linux-gnu/libp11-kit.so.0 (0x0000735e926d7000)
        libtasn1.so.6 => /usr/lib/x86_64-linux-gnu/libtasn1.so.6 (0x0000735e926be000)
        libkeyutils.so.1 => /usr/lib/x86_64-linux-gnu/libkeyutils.so.1 (0x0000735e926b7000)
        libresolv.so.2 => /usr/lib/x86_64-linux-gnu/libresolv.so.2 (0x0000735e926a4000)
        libffi.so.8 => /usr/lib/x86_64-linux-gnu/libffi.so.8 (0x0000735e92693000)

Since it's used a private link target (only used from within a CPP file and fcl being linked privately) it should be save to remove the dependency altogether, at least from my understanding.

Tested to build locally in a resolute-rolling docker container.

This is from my point of view one way to address #268

The versioned dependency doesn't work out on the latest ubuntu release.
However, since compatibility to libfcl-dev is mentioned in the comment:
Octomap should be linked in as a transitive depencency from fcl. In
fact, octomap isn't linked to the target, anyway, but fcl is. Looking at
the built library it seems that it seems to be correctly linked against
liboctomap.
Since it's used a private link target (only used from within a CPP file
and fcl being linked privately) it should be save to remove the
dependency altogether, at least from my understanding.
Copy link
Copy Markdown
Contributor

@rhaschke rhaschke left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds reasonable.

@codecov
Copy link
Copy Markdown

codecov Bot commented May 11, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 69.04%. Comparing base (cd7a5b7) to head (f40b5c4).

Additional details and impacted files
@@           Coverage Diff           @@
##             ros2     #269   +/-   ##
=======================================
  Coverage   69.04%   69.04%           
=======================================
  Files          21       21           
  Lines        3368     3368           
  Branches      325      325           
=======================================
  Hits         2325     2325           
  Misses        932      932           
  Partials      111      111           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@nbbrooks
Copy link
Copy Markdown
Contributor

@urfeex thank you - do you have thoughts on #267 ? Will the compilation error still exist (But just on a different path)?

@nbbrooks nbbrooks merged commit 4faa690 into moveit:ros2 May 11, 2026
9 checks passed
@urfeex
Copy link
Copy Markdown
Contributor Author

urfeex commented May 11, 2026

I would expect that as long as fcl is built correctly against octomap, it will expose the correct library. Thus, it might help with that issue, as well.

@urfeex urfeex deleted the fix_octomap_dep branch May 12, 2026 06:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants