This repository is a fork of orbbec/pyorbbecsdk, rewritten to add CI automated builds and simplified deployment.
Install directly from PyPI:
pip install pyorbbecsdk-communityChris Paxton π» |
Lukas Koestler π» |
David Millard π» |
nikita-azalea π» |
zhonghong322 π» |
William Yan π» |
Joe Dong π» |
Note: This is a community maintained fork. For any issues or feature requests, please open an issue on this repository.
From here onward, the content is from the original repository's README.
This main branch provides Python bindings for the Orbbec SDK v1.x, allowing developers to interface with Orbbec devices in Python. the OrbbecSDK_V2.x branch provides Python bindings for the Orbbec SDK v2.x,The differences between Orbbec SDK v2.x and Orbbec SDK v1.x can be found in the README.
Important
Welcome to the python wrapper . Before you begin using this version of python wrapper , it's crucial to check the following device support list to verify the compatibility.
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:
- recommended for new designs: we will provide full supports with new features, bug fix and performance optimization;
- full maintenance: we will provide bug fix support;
- limited maintenance: we will provide critical bug fix support;
- not supported: we will not support specific device in this version;
- to be supported: we will add support in the near future.
| 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 |
| Femto Mega | 1.1.7/1.2.7 |
| 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 |
Clone the repository to get the latest version of the Python bindings for Orbbec SDK.
git clone https://github.com/orbbec/pyorbbecsdk.gitInstall the necessary Python development packages on Ubuntu.
sudo apt-get install python3-dev python3-venv python3-pip python3-opencvIf you use Anaconda, set the Python3 path to the Anaconda path in pyorbbecsdk/CMakeLists.txt before the find_package(Python3 REQUIRED COMPONENTS Interpreter Development) line:
set(Python3_ROOT_DIR "/home/anaconda3/envs/py3.6.8") # Replace with your Python3 path
set(pybind11_DIR "${Python3_ROOT_DIR}/lib/python3.6/site-packages/pybind11/share/cmake/pybind11") # Replace with your Pybind11 pathCreate a virtual environment and build the project.
cd pyorbbecsdk
python3 -m venv ./venv
source venv/bin/activate
pip3 install -r requirements.txt
mkdir build
cd build
cmake -Dpybind11_DIR=`pybind11-config --cmakedir` ..
make -j4
make installSet up your environment to run examples and install necessary system rules.
cd pyorbbecsdk
export PYTHONPATH=$PYTHONPATH:$(pwd)/install/lib/
sudo bash ./scripts/install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm trigger
python3 examples/depth_viewer.py
python3 examples/net_device.py # Requires ffmpeg installation for network deviceAdditional examples are available in the examples directory. Please see examples/README.md for further details.
Generate Python stubs for better IntelliSense in your IDE.
source env.sh
pip3 install pybind11-stubgen
pybind11-stubgen pyorbbecsdkFor instructions on how to build and run the examples on Windows, please refer to docs/README.md.
Generate a wheel package for easy distribution and installation.
cd pyorbbecsdk
python3 -m venv ./venv
source venv/bin/activate
pip3 install -r requirements.txt
mkdir build
cd build
cmake -Dpybind11_DIR=`pybind11-config --cmakedir` ..
make -j4
make install
cd ..
pip3 install wheel
python3 setup.py bdist_wheel
pip3 install dist/*.whlTo get device timestamps through the UVC protocol on a Windows system, you must modify the registry by completing a registration process. This is required due to default system limitations. Follow the steps below to configure your system:
- Ensure your UVC-compatible device is connected to the computer and recognized by the system. Confirm that the device is online and functioning.
- Open the Start menu, type
PowerShell, right-click on the PowerShell app, and select 'Run as administrator'.
- Use the
cdcommand to change the directory to the location of your scripts.cd scripts
- Modify the PowerShell execution policy to allow script execution. Run the following command and press
Ywhen prompted to confirm the change:Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
- Run the registration script to modify the registry settings. Use the following command:
.\obsensor_metadata_win10.ps1 -op install_all
This will complete the necessary registration and modification of settings to allow device timestamps via the UVC protocol on your Windows system.
For detailed documentation, please refer to docs/README.md.
This project is licensed under the Apache License 2.0.