用OpenNI2获取奥比中光Astra Pro输出的深度图(win,linux arm64 x64平台)

 搞了一个奥比中光Astra Pro,想在windows平台,和linux rk3588 (香橙派,ubuntu2404,debian)上获取深度信息,之前的驱动下载已经不好用了,参考如下

Astra 3D相机选型建议 - 知乎https://zhuanlan.zhihu.com/p/594485674

全网最详细 Opencv + OpenNi + 奥比中光(Orbbec) Astra Pro /乐视三合一体感摄像头LeTMC-520 + linux 环境搭建_opencv__小熊_-GitCode 开源社区https://gitcode.csdn.net/6628b2179c80ea0d2271a3b9.html?dp_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJpZCI6MjQ2NjU4LCJleHAiOjE3NDk1NDcyMzYsImlhdCI6MTc0ODk0MjQzNiwidXNlcm5hbWUiOiJiYWJ5dGlnZXIifQ.7MZgOckoBFv-g_xu7D_ZwhsYMLEjSeeIYY9RONlT3KU&spm=1001.2101.3001.6650.2&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-2-114464244-blog-104761686.235%5Ev43%5Epc_blog_bottom_relevance_base1&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7Eactivity-2-114464244-blog-104761686.235%5Ev43%5Epc_blog_bottom_relevance_base1&utm_relevant_index=3

1、windows平台 x64

另外windows平台要安装一个驱动程序

Releases · orbbec/OrbbecSDKhttps://github.com/orbbec/OrbbecSDK/releases下载OrbbecSDK_C_C++_v1.10.22_20250410_46139de6f_win_x64_release.zip

选中x64的包解压缩后\OrbbecSDK_v1.10.22\Driver\SensorDriver_V4.3.0.22.exe就是驱动

下载

Release Release v2.3.0.86-beat6 · orbbec/OpenNI_SDK · GitHubThis repository stores the Release packages of the OpenNI SDK - Release Release v2.3.0.86-beat6 · orbbec/OpenNI_SDKhttps://github.com/orbbec/OpenNI_SDK/releases/tag/v2.3.0.86-beat6

OpenNI_2.3.0.86_202210111950_4c8f5aa4_beta6_windows.zip解压缩后

OpenNI_2.3.0.86_202210111950_4c8f5aa4_beta6_windows\Win64-Release\tools\NiViewer.exe

运行后就可以获取数据了。

另外如何使用python读取数据

参考下面代码,另外要把OpenNI_2.3.0.86_202210111950_4c8f5aa4_beta6_windows\Win64-Release\tools\NiViewer中的文件放到与这个python代码同一目录下

from openni import openni2
import numpy as np
import cv2


def depth2mi(depthValue):
    return depthValue * 0.001


def depth2xyz(u, v, depthValue):
    fx = 577.54679
    fy = 578.63325
    cx = 310.24326
    cy = 253.65539

    # depth = depth2mi(depthValue)
    depth = depthValue * 0.001

    z = float(depth)
    x = float((u - cx) * z) / fx
    y = float((v - cy) * z) / fy

    result = [x, y, z]
    return result


def mousecallback(event, x, y, flags, param):
    if event == cv2.EVENT_LBUTTONDBLCLK:
        print(y, x, dpt[y, x])
        arr = np.array(dpt)
        depthValue = float(arr[y, x])
        coordinate = depth2xyz(x, y, depthValue)
        print("coordinate:", coordinate)


if __name__ == "__main__":

    openni2.initialize()

    dev = openni2.Device.open_any()
    print("get_device_info()",dev.get_device_info())

    depth_stream = dev.create_depth_stream()
    depth_stream.start()

    cap = cv2.VideoCapture(0)
    cv2.namedWindow('depth')
    ('depth', mousecallback)


    while True:

        frame_dep = depth_stream.read_frame()

        dframe_data = np.array(frame_dep.get_buffer_as_triplet()).reshape([480, 640, 2])
        dpt1 = np.asarray(dframe_data[:, :, 0], dtype='uint16')
        dpt2 = np.asarray(dframe_data[:, :, 1], dtype='uint16')

        dpt2 *= 255
        dpt = dpt1 + dpt2

        dpt = dpt[:, ::-1]
        im_color = cv2.applyColorMap(cv2.convertScaleAbs(dpt, alpha=0.03), cv2.COLORMAP_JET)
        cv2.imshow('depth', im_color)

        ret, frame = cap.read()
        a = frame
        cv2.imshow('color', frame)

        key = cv2.waitKey(1)
        if int(key) == ord('q'):
            break

    depth_stream.stop()
    dev.close()

 学习资料

Astra Pro深度相机https://www.yahboom.com/study/Astra_Pro

 2、linux 平台x64

使用的x64 ubuntu2404 要再安装一个libglut3.12替换freeglut3

sudo apt install libglut3.12
sudo ln -s /usr/lib/x86_64-linux-gnu/libglut.so.3.12.0 /usr/lib/x86_64-linux-gnu/libglut.so.3

设备接入后用lsusb看到的情况,直接免驱动 

Release Release v2.3.0.86-beat6 · orbbec/OpenNI_SDK · GitHub下载的zip包解压缩

运行 NiViewer报错,但是用管理员权限可以,改进方法如

你的设备是 Orbbec Astra Pro 系列,USB 设备 ID 是:

  • 2bc5:0403(Astra Pro 深度摄像头)

  • 2bc5:0501(Astra Pro HD 彩色摄像头)


创建规则文件

使用 sudo 创建新的规则文件:

 sudo nano /etc/udev/rules.d/558-orbbec-usb.rules

最后增加如下 内容,因为这个USB 设备 ID 没有加入到最新驱动中

# Astra Pro Depth Sensor
SUBSYSTEM=="usb", ATTR{idVendor}=="2bc5", ATTR{idProduct}=="0403", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Pro_depth_Sensor"
# Astra Pro HD Camera
SUBSYSTEM=="usb", ATTR{idVendor}=="2bc5", ATTR{idProduct}=="0501", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="Pro_rgb"

 重新加载 udev 规则

sudo udevadm control --reload-rules
sudo udevadm trigger
之后普通用户也可以运行./NiViewer

 另外

3、linux 平台arm 64 (rk3588 香橙派 ubuntu2404)

另外我使用的linux 是rk3588 arm64的 ubuntu2404 要再安装一个libglut3.12替换freeglut3

sudo apt install libglut3.12
sudo ln -s /usr/lib/aarch64-linux-gnu/libglut.so.3.12.0 /usr/lib/aarch64-linux-gnu/libglut.so.3

目前使用OrbbecViewer_v1.10.22_202504111013_arm64_release.zip中的OrbbecViewer是可以显示深度与红外图的,但是视频流不好用,而且插在一个usb3.0上不好用,但换了一个就不行了,原因未知,进一步查询

使用python代码实现了

实现了一个yolo算法,深度信息进一步获取中

<think>嗯,用户想了解奥比Astra Pro的产品规格、驱动下载和SDK使用教程。首先,我需要回忆一下之前收集的引用内容。引用1提到了OpenNI_SDK_ROS_v1.0.9的下载和安装步骤,还有ROS的配置。引用2和引用3则提到ROS的使用教程以及SDK的选择问题,特别是OpenNI2和Orbbec SDK的区别。用户可能遇到了驱动安装的问题,或者不知道如何开始使用这个相机。 接下来,我需要整理产品规格。Astra Pro支持RGB、深度和红外数据,适用于室内环境,深度分辨率是640x480,RGB是1280x720,这些信息虽然没有直接出现在引用中,但根据常见的相机规格和引用中提到的功能,可以合理推断。接口方面,引用里提到的是USB,所以应该是USB 2.0/3.0。 驱动和SDK部分,引用1和3提到了OpenNI2和Orbbec SDK的兼容性问题,需要指出Astra Pro可能只能用OpenNI2,而Orbbec SDK可能不支持。驱动安装步骤在引用1中有详细说明,包括下载压缩包、解压、配置环境变量,可能还需要安装ROS的相关包,比如uvc-camera。另外,引用3提到安装时可能遇到的问题,比如权限问题,需要提醒用户处理udev规则。 ROS集成方面,引用1和2提供了ROS的安装步骤和教程链接,需要总结安装驱动、依赖包、启动相机节点等步骤。同时,引用2的链接可能已经失效,但用户可以参考其他资源,比如官方GitHub仓库。 最后,常见问题部分要根据引用3中的踩坑经验,强调SDK的兼容性和ROS版本适配问题。生成相关问题时要覆盖产品参数、驱动安装、SDK选择、ROS配置和常见错误处理。</think>### 奥比 Astra Pro 相关信息总结 #### 一、产品规格 奥比 Astra Pro 是一款支持深度感知的3D相机,适用于机器人、AR/VR、体感交互等场景。其核心参数包括: - **传感器类型**: 支持RGB、深度(Depth)、红外(IR)数据输出 - **深度分辨率**: $640 \times 480$ @30fps - **RGB分辨率**: $1280 \times 720$ @30fps - **接口**: USB 2.0/3.0 - **适用环境**: 室内场景,最佳测距范围 $0.35\text{m} \sim 2.5\text{m}$[^1] #### 二、驱动与SDK集成方法 1. **驱动下载与安装** - 下载地址: [OpenNI_SDK_ROS_v1.0.9_20220725](https://example-link.com)(具体路径需参考官方文档) - 安装步骤: ```bash tar -zxvf OpenNI_SDK_ROS_v1.0.9_20220725_0bf97f_Linux.tar.gz cd OpenNI_SDK_ROS ./install.sh export LD_LIBRARY_PATH=/path/to/openni2/lib:$LD_LIBRARY_PATH ``` 需注意权限问题,可能需要配置 `udev` 规则[^3]。 2. **SDK选择与兼容性** - **OpenNI2 SDK**: Astra Pro 主要依赖此库开发,提供深度数据获取接口 - **Orbbec SDK**: 部分型号可能不兼容,需验证具体版本[^3] - ROS集成时需安装依赖包: ```bash sudo apt-get install ros-noetic-uvc-camera # 对应ROS版本名称 ``` #### 三、ROS配置教程 1. **启动相机节点** ```bash roslaunch astra_camera astrapro.launch ``` 2. **显示数据流** 通过 `rviz` 订阅以下话题: - RGB图像: `/camera/rgb/image_raw` - 深度图像: `/camera/depth/image` - IR图像: `/camera/ir/image`[^2] #### 四、常见问题 - **驱动冲突**: 若同时安装多个SDK可能导致数据异常,建议优先使用OpenNI2 - **ROS版本适配**: 需匹配 `ubuntu` 与 `ROS` 版本(如 `ubuntu20.04` 对应 `noetic`)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值