Skip to content

Orbbec SDK v2 integration (new CameraOrbbecSDK class)#1590

Merged
matlabbe merged 6 commits intomasterfrom
orbbec_sdk_integration
Oct 7, 2025
Merged

Orbbec SDK v2 integration (new CameraOrbbecSDK class)#1590
matlabbe merged 6 commits intomasterfrom
orbbec_sdk_integration

Conversation

@matlabbe
Copy link
Copy Markdown
Member

@matlabbe matlabbe commented Oct 5, 2025

Integration of https://github.com/orbbec/OrbbecSDK_v2

Build with Orbbec SDK v2:

cd rtabmap/build
cmake -WITH_ORBBEC_SDK=ON -DOrbbecSDK_DIR=/opt/OrbbecSDK_v2.4.11/lib ..
make -j4

Remaining tasks to do:

  • Add #ifdef ... for build without Orbbec SDK support
  • Test on Windows
  • Test on Mac OS X
    • Follow same instructions for linux to install Orbbec SDK v2 on Mac OS X
    • When launching the orbbec examples or rtabmap, it may be necessary to launch in sudo if you have USB permission error like this (see also this libusb issue): libc++abi: terminating due to uncaught exception of type ob::Error: uvc_open failed: [Path: 1-2-1.0, Return Code: -3]
    • To deploy RTAB-Map, move orbbec build/install/lib/*and build/install/include/* to /user/local prefix, so that fixup_bundle tool can find the library. Note that while the app works before packaging, after packaging it seems missing components loaded dynamically (ob::Error: Component 8 not found!). We may need to install manually the build/install/lib/extensions folder in the bundle. I'll keep this fix for another time since the Mac OS X port of orbbec SDK is not officially released.
  • Enable Inter IMU publishing when selecting orbbec sdk (UPDATE: removed as default, put back "sync" approach used like the other cameras)
  • Support sync IMU publishing
  • As they are still supporting https://github.com/orbbec/OrbbecSDK (version 1), doublecheck if there is a way to distinguish between OrbbecSDK v1 and OrbbecSDK v2 in cmake. They don't provide a version config file, so we cannot just do find_package(OrbbecSDK 2) unfortunately. I've set WITH_ORBBEC_SDK=OFF by default for now to not quietly try to build against an installed v1. The best fix would be to fix it upstream in OrbbecSDK v2 repo by adding something similar to this in their cmake (maybe here where the OrbbecSDKConfig.cmake is generated.):
    include(CMakePackageConfigHelpers)
    write_basic_package_version_file(
         "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
         VERSION ${PROJECT_VERSION}
         COMPATIBILITY AnyNewerVersion
    )
    install(
       FILES
         "${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/${PROJECT_NAME}Config.cmake"
         "${CMAKE_CURRENT_BINARY_DIR}/${PROJECT_NAME}ConfigVersion.cmake"
      DESTINATION
         ${INSTALL_CMAKE_DIR}
    )

@matlabbe matlabbe changed the title Orbbec SDK 2 integration (new CameraOrbbecSDK class) Orbbec SDK v2 integration (new CameraOrbbecSDK class) Oct 5, 2025
@matlabbe matlabbe merged commit f0dab18 into master Oct 7, 2025
7 checks passed
@matlabbe matlabbe deleted the orbbec_sdk_integration branch October 7, 2025 17:22
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.

1 participant