Repository navigation
Add beluga_amcl and beluga_ros (Linux, macOS, Windows) - #112
Tobias-Fischer wants to merge 7 commits into
Conversation
Ports RoboStack/ros-jazzy#298 and #267. Beluga 2.1.1 is released for humble and jazzy, and conda-forge's sophus works (Eigen 5), so no additional recipes or dummy package are needed. The beluga patch includes <Eigen/Geometry> instead of an Eigen-internal header (rejected by Eigen 5) and defaults BUILD_TESTING to OFF (its tests hit a GCC 15 constexpr std::optional error). macOS: libc++ lacks std::execution::sequenced_policy. Co-authored-by: Griffin Tabor <14334346+gftabor@users.noreply.github.com> Co-authored-by: Tim Clephas <5036851+Timple@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
GCC 15 fails to instantiate std::optional<Sophus::SE3> (union storage "initializations for multiple members"), which beluga_amcl's NDT 3D node hits through the on_motion policy, not only the tests. Store the latest pose as a flag plus the pose instead; same behaviour. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| - beluga_amcl # macOS: libc++ lacks std::execution::sequenced_policy; requested in https://github.com/RoboStack/ros-jazzy/pull/298 | ||
| - beluga_ros # macOS: libc++ lacks std::execution::sequenced_policy; requested in https://github.com/RoboStack/ros-jazzy/pull/298 |
There was a problem hiding this comment.
| - beluga_amcl # macOS: libc++ lacks std::execution::sequenced_policy; requested in https://github.com/RoboStack/ros-jazzy/pull/298 | |
| - beluga_ros # macOS: libc++ lacks std::execution::sequenced_policy; requested in https://github.com/RoboStack/ros-jazzy/pull/298 | |
| - beluga_amcl # macOS: libc++ lacks std::execution::sequenced_policy | |
| - beluga_ros # macOS: libc++ lacks std::execution::sequenced_policy |
I don't think this is relevant information. And if one really wants to know, it's one search away..
I had previously done a test build on windows of beluga and it succeeded. Here you only are building on Linux. Does Windows build? And what patch is required to get mac to build? |
|
I have a pull request to this branch adding windows support |
Beluga to windows as well
macOS's libc++ builds beluga with three changes, kept in .osx.patch files: - the execution policies need -fexperimental-library (an interface option of beluga, so beluga_amcl and beluga_ros get it); - spatial_hash checked is_same_v<size_t, uint64_t>, false on macOS (unsigned long vs unsigned long long): compare sizeof; - libc++'s execution policies can't be copied, which beluga's action closures, Amcl and beluga_ros / beluga_amcl's policy variants did: they keep pointers to the standard policies (std::execution::seq, par) instead. Built locally on osx-arm64 (jazzy): beluga, beluga_amcl, beluga_ros. With #123 (Windows), beluga is built everywhere. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ABI check (linux-64)About this checkEach package this pull request built, compared with its newest released build (
Exported symbols are compared (the released packages are stripped, so struct layouts aren't); unchanged installed headers rule out layout and inline changes, changed ones are listed for review. Dependents to rebuild are the released ones linking to a changed library. A changed pin is part of the comparison. |
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Ports RoboStack/ros-jazzy#298 by @gftabor (continuing RoboStack/ros-jazzy#267 by @Timple): adds
beluga_amclandbeluga_ros(withbeluga) to the shared selection, on Linux, macOS and Windows. Beluga 2.1.1 is released for humble and jazzy only, so lyrical and rolling build nothing.shared/patch/ros2-beluga.patch):<Eigen/Geometry>instead of the Eigen-internalEigen/src/Geometry/AngleAxis.h, which Eigen 5 rejects;BUILD_TESTINGoff by default;on_motionpolicy, a flag plus the pose instead ofstd::optional<Pose>: GCC 15 fails to instantiatestd::optional<Sophus::SE3>("initializations for multiple members"), whichbeluga_amcl's 3D NDT node hits too.CMAKE_WINDOWS_EXPORT_ALL_SYMBOLSforbeluga_amcl;beluga_roslibrary;path.string()for HDF5.ros2-beluga*.osx.patch): libc++ differs from libstdc++ in three ways.-fexperimental-library, set as an interface option ofbelugaso its users get it too.spatial_hashcheckedis_same_v<size_t, uint64_t>, which is false on macOS (unsigned longvsunsigned long long); it comparessizeofinstead.Amcl, and the policy variants ofbeluga_rosandbeluga_amclcopied them; they now keep pointers to the standard policies (std::execution::seq,par).Built locally
beluga,beluga_amcl,beluga_ros.beluga,beluga_amcl(with its recipe tests) andbeluga_ros. Compilingbeluga_amcl's 3D NDT node needs more than 6 GB of memory for one compiler process; CI's runners have more.beluga,beluga_amcl,beluga_roswith the macOS patches.beluga,beluga_amcl,beluga_roswith their recipe tests.check-patchespasses for humble and jazzy on linux-64, osx-arm64 and win-64.Merged with main after the syncs (#60, #61, #62, #99). Not built in CI yet.
🤖 Generated with Claude Code