奥比中光深度相机astra pro的初步ros包开发

奥比中光深度相机astra pro的初步ros包开发

  • [Astra Pro 深度相机 ROS Noetic 搭建及中期检查完整指南](#Astra Pro 深度相机 ROS Noetic 搭建及中期检查完整指南)
  • [Astra Pro 深度相机 ROS Noetic 从零搭建图像获取功能包 完整保姆级步骤](#Astra Pro 深度相机 ROS Noetic 从零搭建图像获取功能包 完整保姆级步骤)
    • 一、前期环境准备
      • [1\. 确认基础环境](#1. 确认基础环境)
      • [2\. 新建 / 确认工作空间](#2. 新建 / 确认工作空间)
    • [二、安装 Astra Pro 官方深度相机驱动](#二、安装 Astra Pro 官方深度相机驱动)
      • [1\. 克隆奥比中光官方源码驱动](#1. 克隆奥比中光官方源码驱动)
      • [2\. 安装所有依赖](#2. 安装所有依赖)
      • [3\. 编译驱动](#3. 编译驱动)
      • [4\. 验证驱动包识别](#4. 验证驱动包识别)
    • [三、解决相机 USB 设备权限(核心必做,不然打不开硬件)](#三、解决相机 USB 设备权限(核心必做,不然打不开硬件))
      • [1\. 手动写入永久 udev 权限规则](#1. 手动写入永久 udev 权限规则)
      • [2\. 重载权限、生效配置](#2. 重载权限、生效配置)
      • [3\. 物理操作](#3. 物理操作)
    • 四、从零创建专属图像获取功能包
      • [1\. 创建自定义功能包(中期检查主体工程)](#1. 创建自定义功能包(中期检查主体工程))
      • [2\. 创建启动文件目录](#2. 创建启动文件目录)
    • [五、编写一键启动相机 \+ 出图 Launch 文件](#五、编写一键启动相机 + 出图 Launch 文件)
      • [1\. 创建启动文件](#1. 创建启动文件)
      • [2\. 完整粘贴以下内容,保存退出](#2. 完整粘贴以下内容,保存退出)
    • 六、编译自定义功能包
    • 七、一键运行、获取图像(中期检查演示核心)
      • [1\. 启动完整相机功能](#1. 启动完整相机功能)
      • [2\. 单独话题查看(备用验证)](#2. 单独话题查看(备用验证))
    • [八、拓展:Python 图像订阅 \+ 处理示例(加分项)](#八、拓展:Python 图像订阅 + 处理示例(加分项))
      • [1\. 新建图像读取脚本](#1. 新建图像读取脚本)
      • [2\. 完整代码](#2. 完整代码)
      • [3\. 赋予权限 \+ 运行](#3. 赋予权限 + 运行)
    • [九、中期检查验收标准 \& 常见排错](#九、中期检查验收标准 & 常见排错)
    • 最终交付物清单(直接用于中期检查)

Astra Pro 深度相机 ROS Noetic 搭建及中期检查完整指南

Astra Pro 深度相机 ROS Noetic 从零搭建图像获取功能包 完整保姆级步骤

(全程复制粘贴、零坑、最终实现彩色图 + 深度图实时获取 + 可视化,直接可以用于中期检查)


一、前期环境准备

1. 确认基础环境

已经安装好 ROS Noetic,环境全局生效

bash 复制代码
# 刷新全局ROS环境
source /opt/ros/noetic/setup.bash

2. 新建 / 确认工作空间

bash 复制代码
# 没有就新建,已有直接进入
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws
catkin_make
source devel/setup.bash

二、安装 Astra Pro 官方深度相机驱动

1. 克隆奥比中光官方源码驱动

bash 复制代码
cd ~/catkin_ws/src
git clone https://github.com/orbbec/ros_astra_camera.git

2. 安装所有依赖

bash 复制代码
sudo apt update
sudo apt install -y libusb-1.0-0-dev ros-noetic-backward-ros ros-noetic-image-transport ros-noetic-camera-info-manager ros-noetic-tf2

3. 编译驱动

bash 复制代码
cd ~/catkin_ws
rm -rf build devel
catkin_make
source devel/setup.bash

4. 验证驱动包识别

bash 复制代码
rospack find astra_camera

✅ 正常输出:/home/s/catkin\_ws/src/ros\_astra\_camera


三、解决相机 USB 设备权限(核心必做,不然打不开硬件)

1. 手动写入永久 udev 权限规则

bash 复制代码
sudo tee /etc/udev/rules.d/56-orbbec-usb.rules << 'EOF'
SUBSYSTEM=="usb", ATTRS{idVendor}=="2bc5", MODE="0666"
KERNEL=="video[0-9]*", SUBSYSTEM=="video4linux", ATTRS{idVendor}=="2bc5", MODE="0666"
EOF

2. 重载权限、生效配置

bash 复制代码
sudo udevadm control --reload-rules
sudo udevadm trigger

3. 物理操作

把 Astra Pro 摄像头 USB 拔掉,重新插入电脑,有时候报错找不到设备时,也需要插拔一次


四、从零创建专属图像获取功能包

1. 创建自定义功能包(中期检查主体工程)

bash 复制代码
cd ~/catkin_ws/src
catkin_create_pkg astra_image_get rospy roscpp sensor_msgs image_transport cv_bridge

2. 创建启动文件目录

bash 复制代码
cd astra_image_get
mkdir launch scripts

五、编写一键启动相机 + 出图 Launch 文件

1. 创建启动文件

bash 复制代码
gedit launch/astra_start.launch

2. 完整粘贴以下内容,保存退出

xml 复制代码
<launch>
  <!-- 加载Astra Pro深度相机主驱动 -->
  <include file="$(find astra_camera)/launch/astra_pro.launch"/>

  <!-- 开启RGB彩色图像可视化 -->
  <node name="rgb_preview" pkg="image_view" type="image_view" respawn="false">
    <remap from="image" to="/camera/color/image_raw"/>
  </node>

  <!-- 开启深度图像可视化 -->
  <node name="depth_preview" pkg="image_view" type="image_view" respawn="false">
    <remap from="image" to="/camera/depth/image_raw"/>
  </node>

</launch>

六、编译自定义功能包

bash 复制代码
cd ~/catkin_ws
catkin_make
source devel/setup.bash

七、一键运行、获取图像(中期检查演示核心)

1. 启动完整相机功能

bash 复制代码
roslaunch astra_image_get astra_start.launch

✅ 启动成功后,会自动弹出 2 个窗口

  1. 实时彩色 RGB 画面

  2. 实时深度灰度画面

2. 单独话题查看(备用验证)

新开终端,查看所有相机输出话题:

bash 复制代码
rostopic list | grep camera

单独手动查看画面:

bash 复制代码
# 仅看彩色图
rosrun image_view image_view image:=/camera/rgb/image_raw

# 仅看深度图
rosrun image_view image_view image:=/camera/depth/image_raw

八、拓展:Python 图像订阅 + 处理示例(加分项)

1. 新建图像读取脚本

bash 复制代码
gedit scripts/image_subscribe.py

2. 完整代码

python 复制代码
#!/usr/bin/env python3
import rospy
from sensor_msgs.msg import Image
from cv_bridge import CvBridge
import cv2

# 彩色图像回调
def rgb_callback(img_msg):
    bridge = CvBridge()
    cv_img = bridge.imgmsg_to_cv2(img_msg, "bgr8")
    cv2.imshow("Astra Pro RGB", cv_img)
    cv2.waitKey(1)

# 深度图像回调
def depth_callback(img_msg):
    bridge = CvBridge()
    depth_img = bridge.imgmsg_to_cv2(img_msg, "passthrough")
    depth_norm = cv2.normalize(depth_img, None, 0, 255, cv2.NORM_MINMAX, cv2.CV_8U)
    cv2.imshow("Astra Pro Depth", depth_norm)
    cv2.waitKey(1)

if __name__ == "__main__":
    rospy.init_node("astra_image_sub_node")
    rospy.Subscriber("/camera/color/image_raw", Image, rgb_callback)
    rospy.Subscriber("/camera/depth/image_raw", Image, depth_callback)
    rospy.spin()

3. 赋予权限 + 运行

bash 复制代码
chmod +x scripts/image_subscribe.py
rosrun astra_image_get image_subscribe.py

九、中期检查验收标准 &amp; 常见排错

验收目标 成功标志
驱动正常编译 catkin_make 100% 无报错
硬件识别正常 启动无 USB 权限、设备找不到报错
彩色图像获取 正常输出清晰实时画面
深度图像获取 深度画面正常、物体距离灰度区分明显
话题通信稳定 rostopic hz 话题帧率稳定 30fps 左右

常见报错快速修复

  1. package astra\_camera not found → 重新执行 source \~/catkin\_ws/devel/setup\.bash

  2. 打不开相机、权限报错 → 重新执行 udev 规则 + 重新插拔相机

  3. 编译缺依赖 → sudo apt install 对应缺失的ros\-noetic\-xxx包


最终交付物清单(直接用于中期检查)

  1. 独立 ROS 功能包 astra\_image\_get

  2. 一键启动 launch 文件

  3. 原生彩色 + 深度双画面实时输出

  4. 图像订阅处理节点源码

记得在运行ROS包时,要先source一下环境,否则会找不到包。

在用sudo apt install 之前一定要成功sudo apt update

尽量用手机热点联网,如果通过校园网会有DNS的问题。

相关推荐
Rubin智造社1 小时前
Claude Code开发者大会系列8:从脚本到智能体——独立开发者的“AI原生”工作流转型
数据库·人工智能·独立开发者·agentic工作流·ai原生开发·实操指南
yoona10201 小时前
AI × Web3 项目拆解笔记
人工智能·笔记·web3
观测云1 小时前
观测云产品更新 | Obsy AI、统一目录、场景、日志查看器、故障中心等
人工智能·观测云·迭代更新
扫地的小何尚1 小时前
掌握 Agentic AI 技术:AI Agent 定制方法全景与实践路径
大数据·人工智能·算法·ai·llm·agent·nvidia
拓朗工控1 小时前
从“数据搬运工”到“现场大脑”:边缘计算时代,工业算力底座正在经历什么?
人工智能·边缘计算·工控机·工业电脑
互联圈运营观察1 小时前
泛微发布300+可落地AI应用 让组织业务数智升级
大数据·人工智能
随风丶飘1 小时前
AI 编程工作流搭建:我的日常开发 SOP
人工智能
火山引擎开发者社区1 小时前
Agent 也能玩狼人杀高阶博弈?一场游戏看懂 OpenViking 长程记忆的实力!
人工智能
情绪总是阴雨天~2 小时前
OpenClaw 核心机制深度讲解:开源个人 AI 智能体全解析
人工智能·开源