保姆级教程:在Ubuntu 18.04上从驱动到骨骼识别,搞定奥比中光Astra相机(含OpenNI2配置)
2026/6/9 8:14:04 网站建设 项目流程

从零搭建奥比中光Astra相机开发环境:Ubuntu 18.04全流程实战指南

第一次拆开奥比中光Astra相机的包装时,我被这个巴掌大的设备震撼到了——它不仅能捕捉彩色图像,还能通过红外传感器构建深度图。但当我兴冲冲地把它连接到Ubuntu系统时,却发现官方文档的安装步骤像散落的拼图碎片。经过三个通宵的调试和无数次的驱动重装,终于让骨骼识别程序跑通的那一刻,我决定把这份血泪经验整理成完整的避坑手册。

本文将带你用最稳妥的方式,在Ubuntu 18.04上完成从驱动安装到骨骼识别的全流程。不同于其他教程的碎片化说明,我会重点解释每个步骤的底层原理,比如为什么UDEV规则会影响设备访问权限,以及OpenNI2如何与Astra SDK协同工作。即便你是刚接触深度相机的ROS开发者,也能跟着这份指南避开虚拟机兼容性、环境变量配置等典型陷阱。

1. 环境准备与依赖项配置

在开始前,请确保你的Ubuntu 18.04系统已更新到最新状态。打开终端执行以下命令:

sudo apt update && sudo apt upgrade -y

1.1 硬件连接检查

将Astra相机通过USB 3.0接口连接到电脑后,使用lsusb命令检查设备是否被识别:

lsusb | grep Orbbec

正常情况应该看到类似输出:

Bus 003 Device 005: ID 2bc5:0508 Orbbec Astra

如果未显示,尝试更换USB接口或线缆。特别注意:虚拟机用户需要先在USB设置中分配设备给虚拟机,建议使用VirtualBox的USB 3.0控制器。

1.2 安装核心依赖包

Astra SDK需要以下关键依赖项:

sudo apt install -y \ build-essential \ freeglut3-dev \ libsfml-dev \ libudev-dev \ libusb-1.0-0-dev

对于ROS用户,推荐额外安装这些包:

sudo apt install -y \ ros-melodic-rgbd-launch \ ros-melodic-libuvc-camera \ ros-melodic-camera-calibration

2. SDK安装与环境配置

2.1 获取官方SDK

从奥比中光开发者社区下载对应版本的SDK包。本文以v2.1.2为例:

wget https://developer.orbbec.com.cn/download/AstraSDK-v2.1.2-Ubuntu18.04-x86_64.tar.gz tar -zxvf AstraSDK-v2.1.2-Ubuntu18.04-x86_64.tar.gz cd AstraSDK-v2.1.2-Ubuntu18.04-x86_64/install sudo ./install.sh

安装完成后,编辑~/.bashrc文件添加环境变量:

echo 'export ASTRA_SDK_INCLUDE=$HOME/AstraSDK-v2.1.2-Ubuntu18.04-x86_64/include' >> ~/.bashrc echo 'export ASTRA_SDK_LIB=$HOME/AstraSDK-v2.1.2-Ubuntu18.04-x86_64/lib' >> ~/.bashrc source ~/.bashrc

2.2 配置UDEV规则

为避免每次都需要sudo权限访问设备,执行:

cd AstraSDK-v2.1.2-Ubuntu18.04-x86_64/scripts chmod +x create_udev_rules sudo ./create_udev_rules

这个脚本会自动创建/etc/udev/rules.d/56-orbbec-usb.rules文件,内容类似:

SUBSYSTEM=="usb", ATTR{idVendor}=="2bc5", MODE="0666"

重新插拔相机后,检查设备权限:

ls -l /dev/bus/usb/003/005

正确配置后应该显示crw-rw-rw-权限。

3. OpenNI2集成与验证

3.1 安装OpenNI2

下载并安装与SDK版本匹配的OpenNI2:

unzip OpenNI_2.3.0.55.zip cd OpenNI_2.3.0.55/Linux/OpenNI-Linux-x64-2.3.0.55 chmod +x install.sh sudo ./install.sh

初始化环境变量:

source OpenNIDevEnvironment

3.2 运行测试程序

编译并运行SimpleViewer示例:

cd Samples/SimpleViewer make cd Bin/x64-Release ./SimpleViewer

成功运行时,你应该能看到类似下图的深度图像:

[OpenNI] Device connected: Astra [OpenNI] Depth stream started (640x480@30fps)

4. 骨骼识别实战

4.1 运行SFML示例

Astra SDK内置了骨骼追踪的示例程序:

cd ~/AstraSDK-v2.1.2-Ubuntu18.04-x86_64/bin ./SimpleBodyViewer-SFML

常见问题及解决方案:

问题现象可能原因解决方法
程序闪退缺少SFML依赖执行sudo apt install libsfml-dev
无图像输出相机未正确初始化检查`dmesg
骨骼追踪不稳定环境光线过强调整红外补光灯强度或更换环境

4.2 自定义骨骼追踪

通过修改示例代码实现个性化功能。以改变骨骼渲染颜色为例:

// 在SimpleBodyViewer.cpp中找到渲染逻辑 sf::Color jointColor = sf::Color::Green; // 改为sf::Color::Magenta

重新编译后运行:

make && ./SimpleBodyViewer-SFML

5. ROS集成进阶

5.1 安装astra_camera包

对于ROS Melodic用户:

sudo apt install ros-melodic-astra-camera

启动相机节点:

roslaunch astra_camera astra.launch

5.2 实时点云可视化

安装RViz并启动点云显示:

rosrun rviz rviz

在RViz中添加PointCloud2显示类型,将Topic设置为/camera/depth/points

6. 性能优化技巧

经过多次测试,我总结出这些提升帧率的配置:

  1. 分辨率选择

    rosparam set /camera/depth/image_width 320 rosparam set /camera/depth/image_height 240
  2. USB带宽管理

    sudo sh -c 'echo 1000 > /sys/module/usbcore/parameters/usbfs_memory_mb'
  3. IR模式切换

    rostopic pub /camera/switch_ir std_msgs/Bool "data: true"

在i7-8750H处理器上的性能对比:

配置深度帧率CPU占用率
默认640x48030fps45%
320x24060fps32%
关闭RGB30fps28%

记得在开发过程中定期检查相机温度,长时间高负荷运行可能导致红外发射器过热。我习惯用这个命令监控:

watch -n 1 "cat /sys/class/thermal/thermal_zone*/temp"

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询