Linux 下 Astra SDK 安装与示例使用教程

本文以 树莓派 / Linux 系统为例,详细介绍 Astra SDK 2.1.3 的安装、环境配置、示例编译与运行。


1. 下载 SDK

  1. 根据你的系统环境,从 Orbbec 官方开发者网站下载对应的 SDK 源码包:

    Astra SDK 下载页面

  2. 将下载的 .tar.gz 包复制到开发环境的用户家目录下,例如:

    1
    ~/Downloads

2. 解压 SDK

  1. 创建 SDK 安装目录:

    1
    mkdir ~/AstraSDK
  2. 解压 SDK 包到安装目录:

    1
    tar xf AstraSDK-v*.tar.gz -C ./AstraSDK --strip-components=1

    上面的 * 为通配符,可以直接替换为你的文件名完整路径。

  3. 进入 SDK 目录,给安装脚本加上执行权限:

    1
    2
    cd ~/AstraSDK
    chmod a+x install/install.sh
  4. 执行安装脚本:

    1
    ./install/install.sh

    安装过程中,会自动配置 udev rules,确保 Orbbec 设备能够在 Linux 下被访问。


3. 设置环境变量

执行以下命令将 SDK 的 include 和 lib 路径写入 .bashrc

1
2
cat "export ASTRA_SDK_INCLUDE=$HOME/AstraSDK/include" >> ~/.bashrc
cat "export ASTRA_SDK_LIB=$HOME/AstraSDK/lib" >> ~/.bashrc

使环境变量立即生效,或者关闭当前终端,重新打开一个新的终端即可。

验证:

1
cat ~/.bashrc | tail -n2

4. 安装依赖

SDK 示例程序依赖 SFML 和标准开发工具,执行:

1
2
sudo apt update
sudo apt install build-essential libsfml-dev

如果编译过程中提示缺少其他依赖,可根据提示安装。


5. 编译 SDK 示例

  1. 创建编译目录:

    1
    2
    mkdir -p ~/AstraSDK/samples/build
    cd ~/AstraSDK/samples/build
  2. 创建 tools 目录(避免 cmake 报错):

    1
    2
    mkdir ~/AstraSDK/samples/tools
    touch ~/AstraSDK/samples/CMakeLists.txt
  3. 执行 CMake 配置:

    1
    cmake .. -DASTRA_UNIX=TRUE
  4. 编译示例程序(使用多线程加速):

    1
    make -j$(nproc)
  5. 检查编译结果:

    1
    ls bin
    • bin 目录下会生成各个示例可执行文件,例如:
      • SimpleColorViewer-SFML:查看 RGB 画面
      • SimpleDepthViewer-SFML:查看深度画面
      • SimpleStreamViewer-SFML:同时查看多画面
      • SimpleBodyViewer-SFML:查看人体骨架识别画面

6. 运行示例程序

  1. 进入示例可执行文件目录:

    1
    cd ~/AstraSDK/samples/build/bin
  2. 运行示例程序:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    astra.log
    SDK 运行时生成的日志文件,会记录相机初始化、数据流状态、错误等信息。
    用于调试和查看设备连接情况。

    profile_openni_sensor.txt
    profile_orbbec_body_tracking.txt
    profile_orbbec_xs.txt
    SDK 示例或设备插件的配置文件,主要用来记录传感器配置、插件参数等。
    比如 profile_orbbec_body_tracking.txt 里可能有骨架追踪的相关参数。

    人体骨架相关:
    SimpleBodyViewer-SFML
    显示人体骨架识别的窗口程序。
    使用 SFML 库渲染骨架,可实时看到人体关键点。
    RotatedBodyViewer-SFML
    类似 SimpleBodyViewer,但支持旋转视角显示骨架数据。
    ColorizedBodyViewer-SFML
    骨架图像加上颜色信息显示(彩色骨架显示)。
    MaskedColorViewer-SFML
    显示彩色图像并对人体进行遮罩(即只显示人体区域的彩色图像)。

    彩色/深度/流处理:
    SimpleColorViewer-SFML
    显示相机彩色图像(RGB)。
    SimpleDepthViewer-SFML
    显示深度图像(Depth)窗口。
    SimpleStreamViewer-SFML
    同时显示彩色和深度数据流的窗口程序。

    传感器事件/轮询示例:
    BodyReaderPoll
    DepthReaderPoll
    ColorReaderPoll
    InfraredReaderPoll
    “Poll” 后缀表示轮询方式读取相机数据。
    程序会不断查询最新帧,然后处理或显示。

    DepthReaderEvent
    ColorReaderEvent
    ColorReaderEventCPP
    InfraredReaderEvent
    DepthReaderEventCPP
    “Event” 后缀表示事件驱动方式读取数据。
    相机产生新帧时触发事件回调,提高效率,适合复杂应用。

    MultiSensorViewer-SFML

    演示如何同时使用多个传感器流(彩色 + 深度 + 红外等)并显示。