Astra Pro 使用
Linux 下 Astra SDK 安装与示例使用教程
本文以 树莓派 / Linux 系统为例,详细介绍 Astra SDK 2.1.3 的安装、环境配置、示例编译与运行。
1. 下载 SDK
根据你的系统环境,从 Orbbec 官方开发者网站下载对应的 SDK 源码包:
将下载的
.tar.gz包复制到开发环境的用户家目录下,例如:1
~/Downloads
2. 解压 SDK
创建 SDK 安装目录:
1
mkdir ~/AstraSDK
解压 SDK 包到安装目录:
1
tar xf AstraSDK-v*.tar.gz -C ./AstraSDK --strip-components=1
上面的
*为通配符,可以直接替换为你的文件名完整路径。进入 SDK 目录,给安装脚本加上执行权限:
1
2cd ~/AstraSDK
chmod a+x install/install.sh执行安装脚本:
1
./install/install.sh
安装过程中,会自动配置 udev rules,确保 Orbbec 设备能够在 Linux 下被访问。
3. 设置环境变量
执行以下命令将 SDK 的 include 和 lib 路径写入 .bashrc:
1 | cat "export ASTRA_SDK_INCLUDE=$HOME/AstraSDK/include" >> ~/.bashrc |
使环境变量立即生效,或者关闭当前终端,重新打开一个新的终端即可。
验证:
1 | cat ~/.bashrc | tail -n2 |
4. 安装依赖
SDK 示例程序依赖 SFML 和标准开发工具,执行:
1 | sudo apt update |
如果编译过程中提示缺少其他依赖,可根据提示安装。
5. 编译 SDK 示例
创建编译目录:
1
2mkdir -p ~/AstraSDK/samples/build
cd ~/AstraSDK/samples/build创建
tools目录(避免 cmake 报错):1
2mkdir ~/AstraSDK/samples/tools
touch ~/AstraSDK/samples/CMakeLists.txt执行 CMake 配置:
1
cmake .. -DASTRA_UNIX=TRUE
编译示例程序(使用多线程加速):
1
make -j$(nproc)
检查编译结果:
1
ls bin
bin目录下会生成各个示例可执行文件,例如:SimpleColorViewer-SFML:查看 RGB 画面SimpleDepthViewer-SFML:查看深度画面SimpleStreamViewer-SFML:同时查看多画面SimpleBodyViewer-SFML:查看人体骨架识别画面
6. 运行示例程序
进入示例可执行文件目录:
1
cd ~/AstraSDK/samples/build/bin
运行示例程序:
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
48astra.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
演示如何同时使用多个传感器流(彩色 + 深度 + 红外等)并显示。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 o0wde0o's Blog!
评论


