$ show orbbec/OrbbecSDK
OrbbecSDK is a cross-platform C/C++ software development kit for Orbbec 3D cameras, supporting depth, color, infrared, and IMU sensors. It provides both a high-level Pipeline API for easy stream management and a low-level Device/Sensor API for fine-grained control. The architecture is library-based with a C API (ObSensor.h) and a C++ wrapper (ObSensor.hpp), following a consistent pattern of context creation, device enumeration, stream configuration, frame acquisition, and post-processing via composable filters. Key entry points include Context (device discovery), Pipeline (streaming), Device (property control), and Filter (alignment, point cloud generation, noise removal, etc.). Data flows involve configuring stream profiles, starting the pipeline, receiving frames (depth, color, IR, IMU), applying filters (e.g., depth-to-color alignment, HDR merge, spatial/temporal filtering), and optionally recording or replaying streams. External dependencies include OpenCV for example visualizations, cJSON for multi-device synchronization configuration, and platform-specific USB drivers. The SDK is used in robotics, AR/VR, industrial inspection, and 3D scanning applications.
The LLM identified 3 files worth highlighting for reuse:
Provides CoordinateTransformHelper with static methods for 2Dā3D coordinate conversions, depth-to-point-cloud generation (with and without distortion), and 2Dā2D transformations between depth and color cameras. This is a self-contained utility that can be extracted and reused in any depth camera project requiring calibration-based spatial operations.
Defines the C API for creating and configuring a wide range of post-processing filters (align, point cloud, decimation, hole filling, temporal/spatial, noise removal, HDR merge, disparity transform, etc.). The filter chain pattern (create, set parameters, process frames) is a reusable architectural pattern for building modular image/sensor data pipelines.
A reusable OpenCV-based window rendering class that supports multiple display modes (single, row, column, grid, overlay) for visualizing depth, color, IR, and point cloud frames. It abstracts frame rendering and keyboard interaction, making it easy to integrate into any Orbbec SDK example or custom application with minimal modification.