3 Star 6 Fork 2

奥比中光科技集团股份有限公司/OrbbecSDK-K4A-Wrapper

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
MIT

Orbbec SDK K4A Wrapper

Welcome to the Orbbec SDK K4A Wrapper!

This repo is forked from Azure Kinect Sensor SDK

This branch is base on release/1.4.x, and use new impl code base on Orbbec SDK to replace the k4a implementation.

The usage of this library is same as Native K4A

Introduction

This repository contains the K4A wrapper for Orbbec SDK, allowing users to develop applications using the K4A API and access Orbbec cameras. Additionally, users can replace the native K4A library in their application with this library without any code changes.

What we did?

The k4a.h is the header file of K4A API, and the source code in k4a.c is the implementation of K4A API. We have reimplemented the K4A API in ob_k4a_impl.c with Orbbec SDK, and keep the same effect as the original K4A API. Therefore, all functions called on user's side will be redirected to the Orbbec SDK, and user can access the Orbbec camera like the K4A device.

Orbbec SDK K4A Wrapper

Why use the Orbbec SDK K4A Wrapper

The Wrapper enables you to get the most out of your orbbec camera. Features include:

  • Depth camera access
  • RGB camera access and control (e.g. exposure and white balance)
  • Motion sensor (gyroscope and accelerometer) access
  • Synchronized Depth-RGB camera streaming with configurable delay between cameras
  • External device synchronization control with configurable delay offset between devices
  • Camera frame meta-data access for image resolution, timestamp and temperature
  • Device calibration data access

Installation

The following document describes how to seamlessly replace the Azure Kinect camera with the Femto camera in a user's application without any modifications. Please carefully read the following document before using the Femto Bolt camera.

Access_AKDK_Application_Software_with_Femto_Bolt.pdf

Option1:Install from Release SDK package

If you prefer not to compile the K4A Wrapper yourself, we recommend using our released SDK package. These released SDK packages have been tested and we highly recommend using them.

Releases

Option2: Install from source code

Get source code

git clone https://github.com/orbbec/OrbbecSDK-K4A-Wrapper.git
git submodule update --init --recursive

Branch Introduction

  • main branch: The main branch is the default and primary branch,The code in this branch is stable and has been tested.

  • develop branch: The "develop" branch is the development branch that includes new features, but it is not stable.

  • others branch: The other branches are new feature branches that have not been merged into "develop" yet.

Building

It is identical to Native K4A, please refer to: Building and Dependencies

Windows:
  • Ninja:

    cd OrbbecSDK-K4A-Wrapper
    mkdir build
    cd build
    cmake .. -G Ninja
    ninja
    ninja install
    
  • cmake:

    cd OrbbecSDK-K4A-Wrapper
    mkdir build
    cd build
    cmake ../
    cmake --build .
    cmake --install .
    
Linux
  • install dependencs:

    sudo apt update
    sudo apt install -y \
        pkg-config \
        ninja-build \
        doxygen \
        clang \
        gcc-multilib \
        g++-multilib \
        python3 \
        nasm
    
    sudo apt install -y \
        libgl1-mesa-dev \
        libsoundio-dev \
        libvulkan-dev \
        libx11-dev \
        libxcursor-dev \
        libxinerama-dev \
        libxrandr-dev \
        libusb-1.0-0-dev \
        libssl-dev \
        libudev-dev \
        mesa-common-dev \
        uuid-dev
    
  • building:

    • ninja:

      cd OrbbecSDK-K4A-Wrapper
      mkdir build && cd build
      sudo cmake .. -G Ninja
      sudo ninja
      sudo ninja install
      
    • cmake

      cd OrbbecSDK-K4A-Wrapper
      mkdir build && cd build
      sudo cmake ..
      sudo make -j8
      sudo make install
      

Documentation

Versioning

products list firmware version windows platform linux platform
Orbbec Femto Bolt 1.0.6/1.0.9/1.1.1 Windows10, Windows11 Ubuntu18.04, Ubuntu20.04, Ubuntu22.04
Orbbec Femto Mega 1.1.5/1.1.7/1.2.8 Windows10, Windows11 Ubuntu20.04, Ubuntu22.04

Testing

For information on writing or running tests, please see testing.md

Feedback

For Orbbec SDK K4A Wrapper feedback or to report a bug, please file a GitHub Issue. For general suggestions or ideas, visit our feedback forum.

Sample Code

As the Orbbec SDK K4A Wrapper directly uses the Azure Kinect Sensor SDK API, user can directly refer to the relevant examples of the Azure Kinect Sensor SDK:

  • In this repository: examples- each example has a readme page that describes it and the steps to set it up.

  • Azure-Kinect-Samples repository. There are multiple examples of how to use both Sensor and Body tracking SDKs.

Q&A

  1. The library of this branch is not support the K4A device, please use the Native K4A library to access the K4A device.

  2. The Orbbec SDK K4A Wrapper is aim to provide the same API as the K4A, but it's not full API for Orbbec SDK and feature for Orbbec camera. If you want to use the full feature of Orbbec camera, please use the Orbbec SDK directly.

  3. For Linux user, there may be an issue with the initialization of DepthEngine when using Orbbec Femto Bolt due to modifications made by Microsoft in the new version of DepthEngine. This can cause failure during the start of the depth stream. The reason for this is that simultaneous use of multiple OpenGL contexts may result in conflicts. User can try to resolve it follow this: https://www.khronos.org/opengl/wiki/OpenGL_and_multithreading

    For example:

    // file: tools/k4aviewer/k4adevicedockcontrol.cpp
    GLFWwindow *currentContext = glfwGetCurrentContext(); // store the current context
    glfwMakeContextCurrent(NULL);  // make current context to NULL
    
    StartCameras(); //  will initialize the DepthEngine
    
    glfwMakeContextCurrent(currentContext); // restore the current context
    
  4. Unable to obtain the device timestamp on the Windows platform

# Running as Administrator using PowerShell
cd src/orbbec/OrbbecSDK/misc/scripts
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser
.\obsensor_metadata_win10.ps1 -op install_all
  1. How to execute an application on the Linux platform without using sudo. Install udev rules file:
cd src/orbbec/OrbbecSDK/misc/scripts
sudo chmod +x ./install_udev_rules.sh
./install_udev_rules.sh
# Once complete, the orbbec camera is available without being 'root'.

Join Our Developer Program

Complete your developer profile here to get connected with our Mixed Reality Developer Program.

Reporting Security Issues

Security issues and bugs should be reported privately, via email, to the administrators at <it@orbbec.com>.

License Support for Orbbec SDK K4A Wrapper

MIT License

Copyright (c) Microsoft Corporation. All rights reserved. MIT License Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

简介

这个仓库包含了针对Orbbec SDK的K4A Wrapper,实现和Azure Kinect 相机同样的API接口。使用Azure Kinect 的用户,能沟通无缝切换到 Femto Mega 和 Femto Bolt。 展开 收起
C++ 等 6 种语言
MIT
取消

发行版 (8)

全部
7个月前

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/orbbecdeveloper/OrbbecSDK-K4A-Wrapper.git
git@gitee.com:orbbecdeveloper/OrbbecSDK-K4A-Wrapper.git
orbbecdeveloper
OrbbecSDK-K4A-Wrapper
OrbbecSDK-K4A-Wrapper
main

搜索帮助