OrbbecSDK

Orbbec SDK

stability version

[!IMPORTANT]

Welcome to the Orbbec SDK. Before you begin using this version of Orbbec SDK, it’s crucial to check the following device support list to verify the compatibility.

This main branch is based on Orbbec SDK v1 and it is compatible with Orbbec’s original OpenNI protocol devices through built-in code, enabling developers to migrate to Orbbec SDK to support both new and old products with one set of code.

With the major update in a new branch v2-main in 2024 October, Orbbec SDK becomes open-source with enhanced flexibility and scalability. This update in v2-main ensures compatibility with all new Orbbec USB products that adhere to the UVC standard. However, Orbbec SDK v2 no longer supports Orbbec’s legacy OpenNI protocol devices, which will continue to receive bug fixes support in the Orbbec SDK v1 branch. We encourage you to check out whether your devices is supported by Orbbec SDK v2 and use the new release if it is supported there.

If you are a user in China, it is recommended to use Gitee(gitee Repo).

Here is the device support list of main branch (v1.x) and v2-main branch (v2.x):

Product Series Product Branch main Branch v2-main
Gemini 330 Gemini 335 full maintenance recommended for new designs
Gemini 336 full maintenance recommended for new designs
Gemini 330 full maintenance recommended for new designs
Gemini 335L full maintenance recommended for new designs
Gemini 336L full maintenance recommended for new designs
Gemini 330L full maintenance recommended for new designs
Gemini 335Lg not supported recommended for new designs
Gemini 2 Gemini 2 full maintenance recommended for new designs
Gemini 2 L full maintenance recommended for new designs
Gemini 2 XL recommended for new designs to be supported
Femto Femto Bolt full maintenance recommended for new designs
Femto Mega full maintenance recommended for new designs
Femto Mega I full maintenance to be supported
Astra Astra 2 full maintenance recommended for new designs
Astra+ limited maintenance not supported
Astra Pro Plus limited maintenance not supported
Astra Mini Astra Mini Pro full maintenance not supported

Note: If you do not find your device, please contact our FAE or sales representative for help.

Definition:

  1. recommended for new designs: we will provide full supports with new features, bug fix and performance optimization;
  2. full maintenance: we will provide bug fix support;
  3. limited maintenance: we will provide critical bug fix support;
  4. not supported: we will not support specific device in this version;
  5. to be supported: we will add support in the near future.

Product support

Products List Firmware Version
Gemini 330 1.2.20
Gemini 330L 1.2.20
Gemini 335 1.2.20
Gemini 335L 1.2.20
Gemini 336 1.2.20
Gemini 336L 1.2.20
Femto Bolt 1.0.6/1.0.9/1.1.2
Femto Mega 1.1.7/1.2.7/1.2.9
Femto Mega I 2.0.2
Gemini 2 XL Obox: V1.2.5 VL:1.4.54
Astra 2 2.8.20
Gemini 2 L 1.4.32
Gemini 2 1.4.60 /1.4.76
Astra+ 1.0.22/1.0.21/1.0.20/1.0.19
Femto 1.6.7
Femto W 1.1.8
DaBai 2436
DaBai DCW 2460
DaBai DW 2606
Astra Mini Pro 1007
Gemini E 3460
Gemini E Lite 3606
Gemini 3.0.18
Astra Mini S Pro 1.0.05

What is included in the repository

license structure

The current software license structure is as follows

SdkLicenseDiagram

More information about the license of each module can be found in the license file.

Platform support

Operating system Requirement Description
Windows - Windows 10 April 2018 (version 1803, operating system build 17134) release (x64) or higher ,windows 11 The generation of the VS project depends on the installation of the VS version and the cmake version, and supports VS2015/vs2017/vs2019
Linux - Linux Ubuntu 16.04/18.04/20.04/22.04 (x64) Support GCC 7.5
Arm32 - Linux Ubuntu 16.04/18.04/20.04 Support GCC 7.5
Arm64 - Linux Ubuntu 18.04/20.04/22.04 Support GCC 7.5
MacOS - M series chip, 11.0 and above; Intel x86 chip, 10.15 and above. supported hardware products: Gemini 2, Gemini 2 L, Astra 2, Gemini 2 XL, Femto Mega, Gemini 330 series

OrbbecViewer

OrbbecViewer is a useful tool based on Orbbec SDK, that can be used to view the data stream from the Orbbec camera and control the camera. OrbbecViewer

Supported platforms: Windows x64, Linux x64 & ARM64, MacOS M series chip & Intel x86 chip

Download link: Releases

OrbbecViewer User Manual: OrbbecViewer User Manual

Getting started

Get source code

git clone https://github.com/orbbec/OrbbecSDK.git

Alternatively, you can install via binary packages, please refer to installation guidance for more information.

Environment setup

If you installed via a debian package, you can skip the installation of the udev rules file. If not, please install it using the following commands:

  cd OrbbecSDK/misc/scripts
  sudo chmod +x ./install_udev_rules.sh
  sudo ./install_udev_rules.sh
  sudo udevadm control --reload && sudo udevadm trigger

Examples

The sample code is located in the ./examples directory and can be built using CMake.

Build

cd OrbbecSDK && mkdir build && cd build && cmake .. && cmake --build . --config Release

Run example

To connect your Orbbec camera to your PC, run the following steps:

cd OrbbecSDK/build/bin # build output dir
./OBMultiStream  # OBMultiStream.exe on Windows

Notes: On MacOS, sudo privileges are required.

# MacOS
cd OrbbecSDK/build/bin # build output dir
cp ../../lib/macOS/* . # copy lib to output dir
sudo ./OBMultiStream

The following image is the result of running MultiStream on the Gemini2 device. Other Devices run result maybe different.

Multistream

Notes: On the Linux/Arm platform ,this sample requires users to compile with Opencv4.2 or above,otherwise, it cannot be rendered.

Use Orbbec SDK in your CMake project

Find and link Orbbec SDK in your CMakeLists.txt file like this:

cmake_minimum_required(VERSION 3.1.15)
project(OrbbecSDKTest)

add_executable(${PROJECT_NAME} main.cpp)

# find Orbbec SDK
set(OrbbecSDK_DIR "/your/path/to/OrbbecSDK")
find_package(OrbbecSDK REQUIRED)

# link Orbbec SDK
target_link_libraries(${PROJECT_NAME} OrbbecSDK::OrbbecSDK)

Documents

Overview

Tutorials

API Reference

Multi Camera Sync

Frequently Asked Questions

No Data Stream from Multiple Cameras

Insufficient Power Supply:

High Resolution:

Increase usbfs_memory_mb Value: