From 0c5e05926f087f74602997f24f24e06ee9b5fa92 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 20:51:25 +0200 Subject: [PATCH 01/13] Add rtabmap_ros Select the rtabmap_ros metapackage, which pulls in the rtabmap_* ROS 2 wrappers and the aruco_msgs / aruco_opencv_msgs dependencies. The rtabmap core library is already built for lyrical. --- vinca.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/vinca.yaml b/vinca.yaml index 85deac0f..591cade6 100644 --- a/vinca.yaml +++ b/vinca.yaml @@ -239,6 +239,7 @@ packages_select_by_deps: - rqt_robot_steering - rqt_runtime_monitor - rtabmap + - rtabmap_ros - rtcm_msgs - rtest - rviz_2d_overlay_msgs From 4b17a1903b3f4e5db2233cf2d29ee0180ea6a304 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 20:51:25 +0200 Subject: [PATCH 02/13] Fix rtabmap_conversions build with OpenCV 5 OpenCV 5 renamed the features2d module to features, so no longer exists. Include on OpenCV >= 5, same as in the rtabmap patch. --- patch/ros-lyrical-rtabmap-conversions.patch | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-conversions.patch diff --git a/patch/ros-lyrical-rtabmap-conversions.patch b/patch/ros-lyrical-rtabmap-conversions.patch new file mode 100644 index 00000000..e3d31a08 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-conversions.patch @@ -0,0 +1,16 @@ +diff --git a/include/rtabmap_conversions/MsgConversion.h b/include/rtabmap_conversions/MsgConversion.h +index 4e82e38..6f657f3 100644 +--- a/include/rtabmap_conversions/MsgConversion.h ++++ b/include/rtabmap_conversions/MsgConversion.h +@@ -39,7 +39,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + + #include ++#if CV_MAJOR_VERSION < 5 + #include ++#else ++#include ++#endif + #ifdef PRE_ROS_IRON + #include + #else From c0e27c007d92cb784bcd51387eb67b13a010b9cf Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 20:51:25 +0200 Subject: [PATCH 03/13] Fix rtabmap_slam build with OpenCV 5 The legacy C constant CV_BGR2GRAY was removed in OpenCV 5. Use cv::COLOR_BGR2GRAY, which is also available in OpenCV 3 and 4. --- patch/ros-lyrical-rtabmap-slam.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-slam.patch diff --git a/patch/ros-lyrical-rtabmap-slam.patch b/patch/ros-lyrical-rtabmap-slam.patch new file mode 100644 index 00000000..b0157b20 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-slam.patch @@ -0,0 +1,13 @@ +diff --git a/src/CoreWrapper.cpp b/src/CoreWrapper.cpp +index c1fb75b..bb732d6 100644 +--- a/src/CoreWrapper.cpp ++++ b/src/CoreWrapper.cpp +@@ -1474,7 +1474,7 @@ void CoreWrapper::commonMultiCameraCallbackImpl( + cv::Mat leftMono; + if(rgb.channels() == 3) + { +- cv::cvtColor(rgb, leftMono, CV_BGR2GRAY); ++ cv::cvtColor(rgb, leftMono, cv::COLOR_BGR2GRAY); + } + else + { From 8c870c5c1b18b581eca1d356b66dbb944cee1357 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 21:11:10 +0200 Subject: [PATCH 04/13] Fix rtabmap_viz crash on macOS rtabmap_viz created its QApplication without requesting an OpenGL context suitable for VTK. On macOS this yields a legacy OpenGL 2.1 context, and VTK segfaults in vtkOpenGLVertexArrayObject::Bind() when the 3D view is first painted. Set the default surface format from QVTKRenderWidget::defaultFormat() and enable shared OpenGL contexts before creating the QApplication, as the standalone rtabmap app does. --- patch/ros-lyrical-rtabmap-viz.patch | 30 +++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-viz.patch diff --git a/patch/ros-lyrical-rtabmap-viz.patch b/patch/ros-lyrical-rtabmap-viz.patch new file mode 100644 index 00000000..b5c695de --- /dev/null +++ b/patch/ros-lyrical-rtabmap-viz.patch @@ -0,0 +1,30 @@ +diff --git a/src/GuiNode.cpp b/src/GuiNode.cpp +index 88895ed..e62af21 100644 +--- a/src/GuiNode.cpp ++++ b/src/GuiNode.cpp +@@ -32,6 +32,11 @@ SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + #include + #include + #include ++#include ++#include ++#if VTK_MAJOR_VERSION > 9 || (VTK_MAJOR_VERSION==9 && VTK_MINOR_VERSION >= 1) ++#include ++#endif + + QApplication * app = 0; + +@@ -49,6 +54,13 @@ int main(int argc, char** argv) + + rclcpp::init(argc, argv); + ++#if VTK_MAJOR_VERSION > 9 || (VTK_MAJOR_VERSION==9 && VTK_MINOR_VERSION >= 1) ++ // needed to ensure appropriate OpenGL context is created for VTK rendering ++ // (without it, macOS creates a legacy OpenGL 2.1 context and VTK crashes). ++ QSurfaceFormat::setDefaultFormat(QVTKRenderWidget::defaultFormat()); ++#endif ++ QApplication::setAttribute(Qt::AA_ShareOpenGLContexts); ++ + app = new QApplication(argc, argv); + app->connect( app, SIGNAL( lastWindowClosed() ), app, SLOT( quit() ) ); + From 92c4794e51ec510831d6909d4ccb142a53c0ff70 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:10:22 +0200 Subject: [PATCH 05/13] Don't build rtabmap_ros on Windows for now rtabmap_conversions (and the other rtabmap_ros libraries) are built as shared libraries without exported symbols, so MSVC produces no import library and downstream packages fail with "rtabmap_conversions.lib does not exist". Move rtabmap_ros to the not-win section until the Windows exports are fixed. --- vinca.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vinca.yaml b/vinca.yaml index 591cade6..3573a543 100644 --- a/vinca.yaml +++ b/vinca.yaml @@ -239,7 +239,6 @@ packages_select_by_deps: - rqt_robot_steering - rqt_runtime_monitor - rtabmap - - rtabmap_ros - rtcm_msgs - rtest - rviz_2d_overlay_msgs @@ -432,6 +431,7 @@ packages_select_by_deps: - rqt_reconfigure - rqt_tf_tree - rslidar_sdk + - rtabmap_ros - rviz_2d_overlay_plugins - rviz_satellite - serial_driver From dd9b924a47efb8a487bfb8d48a590a28588c4493 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:18:28 +0200 Subject: [PATCH 06/13] Fix rtabmap_msgs build on linux-aarch64 --- patch/ros-lyrical-rtabmap-msgs.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-msgs.patch diff --git a/patch/ros-lyrical-rtabmap-msgs.patch b/patch/ros-lyrical-rtabmap-msgs.patch new file mode 100644 index 00000000..0c3dd7d2 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-msgs.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 01e7ceb..f97a796 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,8 +14,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + rcutils_LIB NAMES rcutils +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + From 639cfb26962ca495d7bb9234f0352d44201527aa Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 07/13] Fix rtabmap_conversions build on linux-aarch64 --- patch/ros-lyrical-rtabmap-conversions.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/patch/ros-lyrical-rtabmap-conversions.patch b/patch/ros-lyrical-rtabmap-conversions.patch index e3d31a08..ed9d61a0 100644 --- a/patch/ros-lyrical-rtabmap-conversions.patch +++ b/patch/ros-lyrical-rtabmap-conversions.patch @@ -1,3 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4dc4190..ed08e21 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,8 +9,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + builtin_interfaces__rosidl_generator_c_LIB NAMES builtin_interfaces__rosidl_generator_c +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + diff --git a/include/rtabmap_conversions/MsgConversion.h b/include/rtabmap_conversions/MsgConversion.h index 4e82e38..6f657f3 100644 --- a/include/rtabmap_conversions/MsgConversion.h From b4147352defb9d17c8cb1ce19ec8a2fe9af60935 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 08/13] Fix rtabmap_slam build on linux-aarch64 --- patch/ros-lyrical-rtabmap-slam.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/patch/ros-lyrical-rtabmap-slam.patch b/patch/ros-lyrical-rtabmap-slam.patch index b0157b20..24b821e9 100644 --- a/patch/ros-lyrical-rtabmap-slam.patch +++ b/patch/ros-lyrical-rtabmap-slam.patch @@ -1,3 +1,17 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 6107b23..97ea89f 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,8 +14,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + builtin_interfaces__rosidl_generator_c_LIB NAMES builtin_interfaces__rosidl_generator_c +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + diff --git a/src/CoreWrapper.cpp b/src/CoreWrapper.cpp index c1fb75b..bb732d6 100644 --- a/src/CoreWrapper.cpp From 29b843c0dfa02116860b7b5096ca956df503f399 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 09/13] Fix rtabmap_viz build on linux-aarch64 --- patch/ros-lyrical-rtabmap-viz.patch | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/patch/ros-lyrical-rtabmap-viz.patch b/patch/ros-lyrical-rtabmap-viz.patch index b5c695de..cbe6465a 100644 --- a/patch/ros-lyrical-rtabmap-viz.patch +++ b/patch/ros-lyrical-rtabmap-viz.patch @@ -1,3 +1,29 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index add21b0..371140e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,18 +9,15 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + builtin_interfaces__rosidl_generator_c_LIB NAMES builtin_interfaces__rosidl_generator_c +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + find_library( + rcutils_LIB NAMES rcutils +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + find_library( + crypto_LIB NAMES crypto +- PATHS "/usr/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + diff --git a/src/GuiNode.cpp b/src/GuiNode.cpp index 88895ed..e62af21 100644 --- a/src/GuiNode.cpp From 7c21473f6fc544a18e00dc7d5c1f969bc60e3497 Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 10/13] Fix rtabmap_sync build on linux-aarch64 --- patch/ros-lyrical-rtabmap-sync.patch | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-sync.patch diff --git a/patch/ros-lyrical-rtabmap-sync.patch b/patch/ros-lyrical-rtabmap-sync.patch new file mode 100644 index 00000000..683ece51 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-sync.patch @@ -0,0 +1,20 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 106d23c..70eaa47 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -5,13 +5,11 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + builtin_interfaces__rosidl_generator_c_LIB NAMES builtin_interfaces__rosidl_generator_c +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + find_library( + crypto_LIB NAMES crypto +- PATHS "/usr/lib/${CMAKE_SYSTEM_PROCESSOR}-linux-gnu" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + From e976ab3602f8e4d1a75320f02d94ecef85a079aa Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 11/13] Fix rtabmap_odom build on linux-aarch64 --- patch/ros-lyrical-rtabmap-odom.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-odom.patch diff --git a/patch/ros-lyrical-rtabmap-odom.patch b/patch/ros-lyrical-rtabmap-odom.patch new file mode 100644 index 00000000..787c9e90 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-odom.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 7b10ad2..6ef5020 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -14,8 +14,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + builtin_interfaces__rosidl_generator_c_LIB NAMES builtin_interfaces__rosidl_generator_c +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + From c27c512f50c0f62301ac3cbfc9bb3ddfdef218ae Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 22:56:41 +0200 Subject: [PATCH 12/13] Fix rtabmap_rviz_plugins build on linux-aarch64 --- patch/ros-lyrical-rtabmap-rviz-plugins.patch | 14 ++++++++++++++ 1 file changed, 14 insertions(+) create mode 100644 patch/ros-lyrical-rtabmap-rviz-plugins.patch diff --git a/patch/ros-lyrical-rtabmap-rviz-plugins.patch b/patch/ros-lyrical-rtabmap-rviz-plugins.patch new file mode 100644 index 00000000..69e452c3 --- /dev/null +++ b/patch/ros-lyrical-rtabmap-rviz-plugins.patch @@ -0,0 +1,14 @@ +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 4e47a68..c8eb361 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -9,8 +9,7 @@ if(CMAKE_SYSTEM_PROCESSOR STREQUAL "aarch64") + # issues #1285 #1288 + find_library( + message_filters_LIB NAMES message_filters +- PATHS "/opt/ros/$ENV{ROS_DISTRO}/lib" +- NO_DEFAULT_PATH NO_CMAKE_FIND_ROOT_PATH REQUIRED ++ REQUIRED + ) + endif() + From dc6608a9c759cb9d17141f44680a0bd007e3f64b Mon Sep 17 00:00:00 2001 From: baradejoo Date: Sat, 10 Oct 2026 23:13:01 +0200 Subject: [PATCH 13/13] Retrigger CI