跳转至

深度相机 ROS2 功能包使用(Aurora933)

Hint

本文档用于单独说明 Aurora930 / Aurora933 深度相机 ROS2 功能包的编译、启动、话题查看、RViz 显示和参数配置。

  • 机器人端:Ubuntu 22.04 + ROS2 Humble
  • 深度相机:Deptrum / 光鉴 Aurora930 系列,小车对应 Aurora933
  • ROS2 驱动源码包:deptrum-ros-driver-aurora930-aarch64-0.2.11-source.tar.gz
  • 编译选项:-DSTREAM_SDK_TYPE=AURORA930
  • 默认命名空间:/aurora
  • 主要输出:RGB 图像、IR 图像、Depth 深度图、PointCloud2 点云
  • Aurora930和Aurora933的主要区别是前者没有玻璃防尘盖板,后者有防尘玻璃盖板

功能包/资料包下载链接:(可参考套件资料/资料链接下载)

场景说明

本功能包用于将 Aurora930 系列深度相机接入 ROS2 系统,并发布 RGB、IR、Depth、点云和相机内参话题,供后续目标检测、深度定位、机械臂抓取、障碍物感知、RViz 可视化等功能使用。

启动 ROS2 驱动后,常用输出如下:

  • /aurora/rgb/image_raw:彩色图像,适合目标检测、二维码识别和画面预览。
  • /aurora/depth/image_raw:深度图像,编码为 16 位深度数据,通常按毫米级深度使用。
  • /aurora/ir/image_raw:红外图像,用于红外成像和调试。
  • /aurora/points2:点云数据,用于 RViz 三维显示和空间定位。
  • /aurora/rgb/camera_info/aurora/ir/camera_info:相机内参信息。
Attation

ROS2 驱动启动前,建议先完成硬件测试文档中的 USB 枚举、udev 权限和 SDK 示例测试。若 SDK 示例无法打开相机,ROS2 驱动通常也无法正常打开相机。

资料包中 ROS2 相关内容

压缩包中与 ROS2 功能包相关的内容如下:

930_SDK等文件/
└── 930_ROS/
    └── ROS2/
        └── ros2源码/
            └── deptrum-ros-driver-aurora930-aarch64-0.2.11-source.tar.gz

ROS2 源码包解压后的主要结构如下:

deptrum-ros-driver-aurora930-0.2.11/
├── CMakeLists.txt
├── package.xml
├── docs/
   ├── building.md
   └── usage_aurora930.md
├── launch_aurora930/
   └── launch/
       ├── aurora930_launch.py
       ├── aurora930_multi_launch.py
       ├── viewer930_launch.py
       └── sub_node_ci_aurora930_launch.py
├── rviz/
   └── aurora930-ros2.rviz
├── src/
├── include/
├── subscribe_node/
└── ext/

常用文件说明如下:

文件 / 目录 作用
aurora930_launch.py 启动 Aurora930 深度相机驱动节点
viewer930_launch.py 启动 RViz 并加载官方 RViz 配置
aurora930_multi_launch.py 多设备启动参考
sub_node_ci_aurora930_launch.py 启动订阅保存图像示例节点
rviz/aurora930-ros2.rviz Aurora930 的 RViz 显示配置
subscribe_node/ 图像订阅和保存示例程序

第一步:安装 ROS2 基础依赖

在 Ubuntu 22.04 + ROS2 Humble 环境中,建议先安装常用依赖:

sudo apt update
sudo apt install -y \
  build-essential \
  cmake \
  python3-colcon-common-extensions \
  libusb-1.0-0-dev \
  libudev-dev \
  libopencv-dev \
  libgoogle-glog-dev \
  libgflags-dev \
  ros-humble-cv-bridge \
  ros-humble-image-transport \
  ros-humble-camera-info-manager \
  ros-humble-tf2 \
  ros-humble-tf2-ros \
  ros-humble-tf2-geometry-msgs \
  ros-humble-angles \
  ros-humble-rviz2 \
  ros-humble-rqt-image-view

加载 ROS2 环境:

source /opt/ros/humble/setup.bash
Attation

如果系统不是 Humble,请将命令中的 humble 替换为当前 ROS2 发行版名称。

第二步:准备 ROS2 工作空间

创建工作空间:

mkdir -p ~/dev_ws/src
cd ~/dev_ws/src

将资料包中的 ROS2 源码压缩包复制到 ~/dev_ws/src 后解压:

tar -xzf deptrum-ros-driver-aurora930-aarch64-0.2.11-source.tar.gz

解压后目录一般为:

deptrum-ros-driver-aurora930-0.2.11

可以改名为更短的目录名:

mv deptrum-ros-driver-aurora930-0.2.11 deptrum-ros-driver

建议最终结构如下:

~/dev_ws/
└── src/
    └── deptrum-ros-driver/
        ├── CMakeLists.txt
        ├── package.xml
        ├── launch_aurora930/
        ├── rviz/
        ├── src/
        ├── include/
        ├── subscribe_node/
        └── ext/

第三步:确认 ROS2 包名

驱动源码中 launch 文件使用的包名为:

deptrum-ros-driver-aurora930

如果 package.xml 中包名不是 deptrum-ros-driver-aurora930,需要修改。

进入源码目录:

cd ~/dev_ws/src/deptrum-ros-driver

检查包名:

grep "<name>" package.xml

如果看到的不是下面内容:

<name>deptrum-ros-driver-aurora930</name>

可以执行一次替换:

sed -i 's/deptrum-ros-driver/deptrum-ros-driver-aurora930/g' package.xml
Attation

sed 替换命令只执行一次即可。执行前建议先用 grep "<name>" package.xml 确认包名,避免重复替换导致包名异常。

第四步:编译 ROS2 功能包

回到工作空间根目录:

cd ~/dev_ws
source /opt/ros/humble/setup.bash

按 Aurora930 类型编译:

colcon build --cmake-args -DSTREAM_SDK_TYPE=AURORA930

如果切换过 SDK 类型或修改过 CMake 配置,可以强制重新配置:

colcon build --cmake-force-configure --cmake-args -DSTREAM_SDK_TYPE=AURORA930

编译完成后加载工作空间环境:

source ~/dev_ws/install/setup.bash

检查包是否可见:

ros2 pkg list | grep deptrum

正常情况下应能看到:

deptrum-ros-driver-aurora930

第五步:启动深度相机驱动

在终端中执行:

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
ros2 launch deptrum-ros-driver-aurora930 aurora930_launch.py

驱动 launch 文件中默认设置了命名空间:

namespace="aurora"

所以实际话题名前面会带 /aurora

启动成功后,另开一个终端查看话题:

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
ros2 topic list | grep aurora

常见输出如下:

/aurora/rgb/image_raw
/aurora/rgb/camera_info
/aurora/ir/image_raw
/aurora/ir/camera_info
/aurora/depth/image_raw
/aurora/points2

查看深度图帧率:

ros2 topic hz /aurora/depth/image_raw

查看点云话题信息:

ros2 topic info /aurora/points2

第六步:RViz 可视化显示

方式一:使用官方 RViz 配置启动

驱动包中已经包含 Aurora930 的 RViz 配置文件,可以直接启动:

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
ros2 launch deptrum-ros-driver-aurora930 viewer930_launch.py

该命令会打开 RViz,并加载:

aurora930-ros2.rviz

方式二:手动打开 RViz

如果需要手动配置 RViz,可以执行:

ros2 run rviz2 rviz2

在 RViz 中进行如下设置:

  1. Global Options 中的 Fixed Frame 设置为:
depth_camera_link
  1. 点击 Add,选择 By topic,添加以下显示项:
/aurora/depth/image_raw
/aurora/ir/image_raw
/aurora/rgb/image_raw
/aurora/points2
Attation

如果在 SSH 终端中直接运行 RViz,可能出现 qt.qpa.xcb: could not connect to display。这是图形显示环境问题,不是相机驱动问题。建议在同一 ROS2 网络下的 PC 端运行 RViz,或者使用远程桌面 / X11 转发。

第七步:rqt_image_view 查看图像

如果只想查看图像,不需要看点云,可以使用 rqt_image_view

ros2 run rqt_image_view rqt_image_view

启动后选择需要查看的话题:

/aurora/rgb/image_raw
/aurora/depth/image_raw
/aurora/ir/image_raw

其中:

  • RGB 图像用于确认彩色相机画面是否正常。
  • Depth 图像用于确认深度数据是否正常。
  • IR 图像用于确认红外模组是否正常。

第八步:保存图像数据

驱动源码中包含 subscribe_node 示例程序,可订阅驱动发布的话题,并将 RGB、IR、Depth 图像保存到本地。

启动深度相机驱动后,在另一个终端运行:

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
cd ~/dev_ws/install/deptrum-ros-driver-aurora930/lib/deptrum-ros-driver-aurora930
./sub_node

默认保存路径为:

/tmp/image

也可以使用 launch 启动订阅节点:

ros2 launch deptrum-ros-driver-aurora930 sub_node_ci_aurora930_launch.py
Attation

保存图像前需要先启动深度相机驱动节点,否则订阅节点没有数据来源。

常用启动参数

aurora930_launch.py 中提供了多个可调参数,可以在启动时通过命令行覆盖。

参数名 默认值 作用
rgb_enable true 是否发布 RGB 彩色图像
ir_enable true 是否发布 IR 红外图像
depth_enable true 是否发布深度图像
rgbd_enable false 是否启用 RGBD 模式
point_cloud_enable true 是否发布点云数据,依赖深度图
boot_order 1 相机启动顺序配置
ir_fps 15 IR 帧率,可选值通常为 5 / 10 / 12 / 15
rgb_fps 15 RGB 帧率,应小于或等于 IR 帧率
exposure_enable false 是否手动设置曝光
exposure_time 1 曝光时间,范围通常为 1 ~ 31
gain_enable false 是否手动设置增益
gain_value 20 增益值,范围通常为 10 ~ 160
usb_port_number 指定 USB 端口号,用于多设备区分
threshold_size 110 去噪过滤尺寸
depth_correction true 是否开启深度修正
align_mode true 是否开启 RGBD / IR 对齐模式
laser_power 1.0 激光功率模式,常见含义:1 自动、2 室内、3 室外
minimum_filter_depth_value 150 最小深度过滤值
maximum_filter_depth_value 4000 最大深度过滤值
resolution_mode_index 2 分辨率模式索引
log_dir /tmp/ 日志输出目录
stream_sdk_log_enable true 是否开启 SDK 日志
heart_enable false 是否开启心跳检测

仅启动 RGB 和深度图,不发布点云:

ros2 launch deptrum-ros-driver-aurora930 aurora930_launch.py \
  rgb_enable:=true \
  ir_enable:=false \
  depth_enable:=true \
  point_cloud_enable:=false

将最大有效深度限制为 3 米:

ros2 launch deptrum-ros-driver-aurora930 aurora930_launch.py \
  maximum_filter_depth_value:=3000

降低负载,只保留深度图:

ros2 launch deptrum-ros-driver-aurora930 aurora930_launch.py \
  rgb_enable:=false \
  ir_enable:=false \
  depth_enable:=true \
  point_cloud_enable:=false

ROS2 话题说明

由于 launch 文件中设置了 namespace="aurora",所以完整话题名如下:

完整话题名 消息类型 作用
/aurora/rgb/image_raw sensor_msgs/msg/Image RGB 彩色图像,BGR888 / bgr8 格式
/aurora/rgb/camera_info sensor_msgs/msg/CameraInfo RGB 相机内参
/aurora/ir/image_raw sensor_msgs/msg/Image IR 红外图像
/aurora/ir/camera_info sensor_msgs/msg/CameraInfo IR / Depth 相机内参
/aurora/depth/image_raw sensor_msgs/msg/Image 深度图像,16 位深度数据
/aurora/points2 sensor_msgs/msg/PointCloud2 深度点云

如果其他节点默认订阅 /camera/depth/image_raw/camera/color/image_raw,可以使用 remap 方式接入:

ros2 run your_package your_node --ros-args \
  -r /camera/color/image_raw:=/aurora/rgb/image_raw \
  -r /camera/depth/image_raw:=/aurora/depth/image_raw \
  -r /camera/color/camera_info:=/aurora/rgb/camera_info \
  -r /camera/depth/camera_info:=/aurora/ir/camera_info

多设备使用说明

如果同一局域网或同一主机上存在多台 ROS2 设备,为避免 DDS 通信混乱,可以设置不同的 ROS_DOMAIN_ID

例如:

export ROS_DOMAIN_ID=5

如果需要长期生效:

echo "export ROS_DOMAIN_ID=5" >> ~/.bashrc
source ~/.bashrc

对于多台深度相机,还可以通过 usb_port_number 指定设备端口,避免驱动打开错误设备。

日志查看

驱动默认将日志输出到 /tmp/ 目录,可以查看最新日志软链接:

ls -l /tmp/node.INFO

查看日志内容:

tail -f /tmp/node.INFO

也可以查找驱动日志文件:

ls /tmp | grep deptrum_ros_driver

推荐启动流程

完整使用时建议开启三个终端。

第一终端:启动深度相机驱动

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
ros2 launch deptrum-ros-driver-aurora930 aurora930_launch.py

第二终端:查看话题和帧率

source /opt/ros/humble/setup.bash
source ~/dev_ws/install/setup.bash
ros2 topic list | grep aurora
ros2 topic hz /aurora/depth/image_raw

第三终端:图像或点云可视化

查看图像:

ros2 run rqt_image_view rqt_image_view

查看点云:

ros2 launch deptrum-ros-driver-aurora930 viewer930_launch.py

图片1