Repository navigation
Conversation
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.
OpenCV 5 renamed the features2d module to features, so <opencv2/features2d/features2d.hpp> no longer exists. Include <opencv2/features.hpp> on OpenCV >= 5, same as in the rtabmap patch.
The legacy C constant CV_BGR2GRAY was removed in OpenCV 5. Use cv::COLOR_BGR2GRAY, which is also available in OpenCV 3 and 4.
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.
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.
|
The linux-aarch64 failures came from the I added patches for Alternatively the whole aarch64 block could just be removed, since it's only a workaround for Debian packaging issues (introlab/rtabmap_ros#1285, #1288) and the found libraries aren't used afterwards. Let me know if you'd prefer that and I'll switch. With that fixed, It doesn't look like a compile error, the process just gets terminated. Re-running via an empty commit gave the same result. Have you seen something like this before on the aarch64 runners, or is there a preferred way to handle it? I also disabled |
Summary
rtabmap_ros(0.23.7). The metapackage pulls in thertabmap_*ROS 2 wrappers (msgs,conversions,util,sync,odom,slam,python,rviz_plugins,viz,launch,examples,demos) plus the missingaruco_msgsandaruco_opencv_msgs. Thertabmapcore library is already built for lyrical.patch/ros-lyrical-rtabmap-conversions.patch: OpenCV 5 renamedfeatures2dtofeatures, so<opencv2/features2d/features2d.hpp>no longer exists. Include<opencv2/features.hpp>on OpenCV >= 5 (same approach as the existingrtabmappatch).patch/ros-lyrical-rtabmap-slam.patch: the legacy constantCV_BGR2GRAYwas removed in OpenCV 5, usecv::COLOR_BGR2GRAY.patch/ros-lyrical-rtabmap-viz.patch: fixrtabmap_vizcrashing on startup on macOS (see below).rtabmap_viz crash on macOS
All packages built, but
rtabmap_vizsegfaulted as soon as its window was shown, right after reading the parameters:The crash report showed a jump to a null function pointer inside VTK while painting the 3D view:
rtabmap_vizcreates itsQApplicationwithout requesting an OpenGL context suitable for VTK. On macOS Qt then creates a legacy OpenGL 2.1 context, in which the vertex array object functions used by VTK 9 are not available, so the call ends up at address0x0. On Linux the default context usually exposes these functions, which is why the problem does not show up there.The standalone
rtabmapapplication (from the already publishedrtabmappackage) works on the same machine, because itsmain()sets the surface format before creating theQApplication. The patch applies the same two calls inrtabmap_viz/src/GuiNode.cpp:With the patch
rtabmap_vizstarts normally (rtabmap_viz started.) and connects tortabmap. This is an upstream issue inintrolab/rtabmap_ros, so I can also send the fix there.Notes
Tested locally on osx-arm64: all packages build, the
rtabmap,rgbd_odometry/icp_odometry,rgbd_sync,point_cloud_xyzandrtabmap_viznodes start, andrtabmap_pythonimports. Linux and Windows will be verified by CI.