Repository navigation
Conversation
Contributor
|
Candidate for porting to the RoboStack monorepo, RoboStack/robostack, where all ROS 2 distributions are now built. aruco_ros is in lyrical's snapshot there but not selected yet; the selection would go to the shared 🤖 Claude (AI assistant), on behalf of @Tobias-Fischer |
Contributor
Author
|
go ahead |
1 similar comment
Contributor
|
go ahead |
Tobias-Fischer
added a commit
to RoboStack/robostack
that referenced
this pull request
Oct 25, 2026
* Add aruco_ros (not on Windows) [skip ci] Ports RoboStack/ros-lyrical#87. The patches make aruco build with OpenCV 5 and Eigen 5 from conda-forge (version requirement, top-level headers, cv::Error::Code exceptions, Eigen3::Eigen), and fix aruco_ros' hard-coded opencv4/ include. jazzy and lyrical (5.0.5) also carry the PR's target_link_libraries / tf2 .hpp changes for aruco_ros; humble and rolling (5.0.6) have those upstream. Co-authored-by: Kamil Baradziej <49471097+baradejoo@users.noreply.github.com> Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * aruco_ros: recipe test that the marker detector node starts [skip ci] Turns the local checks of this PR into a recipe test, so later rebuilds keep them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * aruco_ros: select it once [skip ci] The selection line was added twice. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * aruco, aruco_ros: shared patches instead of one copy per distribution [skip ci] The aruco patch was the same in all four distributions, so it moves to shared/. aruco_ros's has two versions, for 5.0.6 (humble, rolling) and 5.0.5 (jazzy, lyrical): the 5.0.6 one becomes the shared patch and jazzy and lyrical keep theirs, until they get 5.0.6 too. Every distribution still gets the same patch content as before (checked against each sync's source). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> * aruco_ros: build on Windows too Export all symbols of the aruco and aruco_ros_utils libraries on Windows (aruco only dllexports with ARUCO_DSO_EXPORTS, which its CMake never sets). Recipe test on Windows: the single executable is installed. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> --------- Co-authored-by: Kamil Baradziej <49471097+baradejoo@users.noreply.github.com> Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
aruco_ros(5.0.5) tovinca.yaml. This pulls inarucoandaruco_msgsas well.patch/ros-lyrical-aruco.patch: make thearucolibrary build with OpenCV 5 and Eigen 5 from conda-forge (the ROS buildfarm builds it against OpenCV 4.10 / Eigen 3.4 from Ubuntu, so these issues don't show up there):find_package(OpenCV 4.2.0 REQUIRED)rejects OpenCV 5.0.0 ("The version found is not compatible with the version requested"), so the version requirement is dropped.EIGEN3_INCLUDE_DIRS('Eigen/Core' file not found), so the library linksEigen3::Eigeninstead.opencv2/calib3d/calib3d.hppandopencv2/features2d/features2d.hppdon't exist in OpenCV 5, use the top-levelopencv2/calib3d.hpp/opencv2/features2d.hppheaders (available in OpenCV 4 as well).fractalposetracker.cppalso needs an explicitopencv2/features2d.hppinclude forcv::FastFeatureDetector.cv::Exception(int, ...)constructor, it only takescv::Error::Codenow. Most of the patch is this mechanical change:cv::Exception(9001, ...)→cv::Exception(static_cast<cv::Error::Code>(9001), ...)(45 call sites, same error codes).patch/ros-lyrical-aruco-ros.patch:ament_target_dependenciesis no longer available in lyrical, replaced withtarget_link_librarieson the dependency targets (same approach as the other patches in this repo).tf2/*.handtf2_ros/*.hheaders were removed in lyrical, switched to the.hppheaders."opencv4/opencv2/calib3d.hpp"is hardcoded, which doesn't exist with OpenCV 5 (include/opencv5), use"opencv2/calib3d.hpp".aruco_ros5.0.5 (the version in the current rosdistro snapshot) was never published for lyrical via apt (ros-lyrical-arucoandros-lyrical-aruco-msgs5.0.5 are). Upstream fixed theament_target_dependenciesand tf2 header issues in 5.0.6, released on 2026-10-10 and already built on the buildfarm (Lbin_uR64__aruco_ros__ubuntu_resolute_amd64__binary). Once the snapshot is updated to 5.0.6, thearuco_rospatch can be reduced to the hardcodedopencv4/include path fix.Notes
Tested locally on osx-arm64:
aruco,aruco_msgsandaruco_rosbuild, and the nodes start in a fresh pixi environment:Without the required parameters,
doubleexits on purpose (parent_name and/or child_name was not set!), but on macOS this exit path then aborts withmutex lock failed: Invalid argument, because the global node is destroyed afterrclcpp::shutdown(). That's an upstream issue in the error path only and not related to this PR.