奥比中光深度相机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 个窗口:
-
实时彩色 RGB 画面
-
实时深度灰度画面
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
九、中期检查验收标准 & 常见排错
| 验收目标 | 成功标志 |
|---|---|
| 驱动正常编译 | catkin_make 100% 无报错 |
| 硬件识别正常 | 启动无 USB 权限、设备找不到报错 |
| 彩色图像获取 | 正常输出清晰实时画面 |
| 深度图像获取 | 深度画面正常、物体距离灰度区分明显 |
| 话题通信稳定 | rostopic hz 话题帧率稳定 30fps 左右 |
常见报错快速修复
-
package astra\_camera not found→ 重新执行source \~/catkin\_ws/devel/setup\.bash -
打不开相机、权限报错 → 重新执行 udev 规则 + 重新插拔相机
-
编译缺依赖 →
sudo apt install 对应缺失的ros\-noetic\-xxx包
最终交付物清单(直接用于中期检查)
-
独立 ROS 功能包
astra\_image\_get -
一键启动 launch 文件
-
原生彩色 + 深度双画面实时输出
-
图像订阅处理节点源码

记得在运行ROS包时,要先source一下环境,否则会找不到包。
在用sudo apt install 之前一定要成功sudo apt update
尽量用手机热点联网,如果通过校园网会有DNS的问题。