OrbbecSDK ROS2 Wrapper 提供 Orbbec 相机与 ROS 2 环境的无缝集成,支持 ROS2 Foxy、Humble 和 Jazzy 发行版。
- 默认推荐使用 v2-main 分支。
- 对于旧的 OpenNI 设备(v2-main 不支持),请使用 main 分支。
- 如果您在中国使用,建议使用 gitee 仓库。
以下是 main 分支 (v1.x) 和 v2-main 分支 (v2.x) 的设备支持列表:
| 产品系列 | 产品 | main分支 | v2-main分支 |
|---|---|---|---|
| Gemini 305 | Gemini 305 | not supported | recommended for new designs |
| Gemini 340 | Gemini 345 | not supported | recommended for new designs |
| Gemini 345Lg | not supported | recommended for new designs | |
| Gemini 435Le | Gemini 435Le | not supported | recommended for new designs |
| Gemini 330 | Gemini 335Le | not supported | recommended for new designs |
| Gemini 335 | full maintenance | recommended for new designs | |
| Gemini 336 | full maintenance | recommended for new designs | |
| Gemini 330 | full maintenance | recommended for new designs | |
| Gemini 335L | full maintenance | recommended for new designs | |
| Gemini 336L | full maintenance | recommended for new designs | |
| Gemini 330L | full maintenance | recommended for new designs | |
| Gemini 335Lg | not supported | recommended for new designs | |
| Gemini 2 | Gemini 2 | full maintenance | recommended for new designs |
| Gemini 2 L | full maintenance | recommended for new designs | |
| Gemini 2 XL | recommended for new designs | to be supported | |
| Gemini 215 | not supported | recommended for new designs | |
| Gemini 210 | not supported | recommended for new designs | |
| Femto | Femto Bolt | full maintenance | recommended for new designs |
| Femto Mega | full maintenance | recommended for new designs | |
| Femto Mega I | full maintenance | recommended for new designs | |
| Astra | Astra 2 | full maintenance | recommended for new designs |
| Astra+ | limited maintenance | not supported | |
| Astra Pro Plus | limited maintenance | not supported | |
| Astra Mini | Astra Mini (S) Pro | full maintenance | recommended for new designs |
| Astra Mini | Astra Mini (S) Pro | full maintenance | recommended for new designs |
| LiDAR | Pulsar ME450 | not supported | recommended for new designs |
| Pulsar SL450 | not supported | recommended for new designs |
注意: 雷达设备在v2.6.3及之后的版本中支持。使用详情请参考文档.如果您没有找到对应的设备,请联系 FAE 或销售代表获取帮助。
定义:
- 新设计推荐:我们将提供完整支持,包括新功能、bug 修复和性能优化;
- 完全维护:我们将提供 bug 修复支持;
- 有限维护:我们将提供关键 bug 修复支持;
- 不支持:此版本不会支持该设备;
- 即将支持:我们将在近期添加支持。
迁移指南
如果您需要将现有项目从 main (v1.x) 分支迁移到 v2-main (v2.x) 分支,请参考官方迁移指南
环境配置
根据官方指南安装 ROS 2:
安装依赖项:
sudo apt install libgflags-dev nlohmann-json3-dev \
ros-$ROS_DISTRO-image-transport ros-${ROS_DISTRO}-image-transport-plugins ros-${ROS_DISTRO}-compressed-image-transport \
ros-$ROS_DISTRO-image-publisher ros-$ROS_DISTRO-camera-info-manager \
ros-$ROS_DISTRO-diagnostic-updater ros-$ROS_DISTRO-diagnostic-msgs ros-$ROS_DISTRO-statistics-msgs ros-$ROS_DISTRO-xacro \
ros-$ROS_DISTRO-backward-ros libdw-dev libssl-dev mesa-utils libgl1 libgoogle-glog-dev启用 ROS 2 自动补全:
eval "$(register-python-argcomplete3 ros2)"
eval "$(register-python-argcomplete3 colcon)"二进制安装
查看软件包:
sudo apt update
apt list | grep orbbec安装 OrbbecSDK ROS2 包:
sudo apt install ros-humble-orbbec-camera ros-humble-orbbec-description安装完成后,直接使用即可,无需编译。
从源码构建
创建 colcon 工作空间:
mkdir -p ~/ros2_ws/src克隆源代码并切换到 v2-main 分支:
cd ~/ros2_ws/src
git clone https://github.com/orbbec/OrbbecSDK_ROS2.git
cd OrbbecSDK_ROS2
git checkout v2-main构建:
cd ~/ros2_ws
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release为了让 Orbbec 相机在 Linux 上被正确识别,请安装 udev 规则。
二进制安装
sudo cp /opt/ros/$ROS_DISTRO/share/orbbec_camera/udev/99-obsensor-libusb.rules /etc/udev/rules.d/
sudo udevadm control --reload-rules && sudo udevadm trigger从源码构建
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
sudo bash install_udev_rules.sh
sudo udevadm control --reload-rules && sudo udevadm trigger此步骤对于 Linux 用户是必需的。
注意: 如果不执行此脚本,由于权限问题,打开设备将会失败。您需要使用 sudo(管理员权限)运行示例程序。
启动相机节点
- 终端 1
source ~/ros2_ws/install/setup.bash
ros2 run orbbec_camera list_devices_node #检查相机是否已连接
ros2 launch orbbec_camera gemini_330_series.launch.py # 或其他启动文件,见下表- 终端 2
source ~/ros2_ws/install/setup.bash
rviz2选择需要显示的 topic
- 列出 topics / services / parameters (终端 3)
ros2 topic list
ros2 service list
ros2 param list- 查看 topic
ros2 topic echo /camera/depth/camera_info
- 调用服务
ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString '{}'
更多使用详情,请参考官方 OrbbecSDK ROS2 文档
目前 v2-main 分支支持以下设备。更多设备支持将陆续增加。如果没有找到您的设备,请尝试 main 分支。
为获得最佳性能,强烈建议更新至最新固件版本,以确保您能获得最新的改进和 bug 修复。
| 产品列表 | 推荐固件版本 | 启动文件 |
|---|---|---|
| Gemini 305 | 1.0.30 | gemini305.launch.py |
| Astra Mini Pro | 2.0.03 | astra.launch.py |
| Astra Mini S Pro | 2.0.03 | astra.launch.py |
| Gemini 435Le | 1.3.6 | gemini435_le.launch.py |
| Gemini 330 series | 1.6.00 | gemini_330_series.launch.py |
| Gemini 215 | 1.0.9 | gemini210.launch.py |
| Gemini 210 | 1.0.9 | gemini210.launch.py |
| Gemini 2 | 1.4.98 | gemini2.launch.py |
| Gemini 2 L | 1.5.2 | gemini2L.launch.py |
| Femto Bolt | 1.1.3 | femto_bolt.launch.py |
| Femto Mega | 1.3.1 | femto_mega.launch.py |
| Femto Mega I | 2.0.4 | femto_mega.launch.py |
| Astra 2 | 2.8.20 | astra2.launch.py |
| Gemini 345 | 1.9.03 | gemini345.launch.py |
| Gemini 345Lg | 1.9.03 | gemini345_lg.launch.py |
| Pulsar SL450 | 2.2.4.5 | lidar.launch.py |
| Pulsar ME450 | 1.0.0.6 | lidar.launch.py |
所有启动文件基本相似,主要区别在于针对不同型号的默认参数设置。不同的 USB 标准(如 USB 2.0 和 USB 3.0)可能需要调整这些参数。如果遇到启动失败,请仔细查看规格说明书,特别是启动文件中的分辨率设置以及其他参数,以确保兼容性和最佳性能。
请参考官方 OrbbecSDK ROS2 文档
要查看更多实践示例并了解如何在 ROS 中使用相机,请参阅 Examples 部分。
Copyright 2024 Orbbec Ltd.
本项目遵循 Apache License, Version 2.0 协议;您只能在符合该协议的情况下使用。您可以在以下地址获取该协议副本:
http://www.apache.org/licenses/LICENSE-2.0
除非适用法律要求或书面同意,否则本项目按“原样”分发,不带任何明示或暗示的保证。具体内容请查看协议中的相关条款。
其他名称和品牌可能归属于其各自所有者