Orbbec ROS SDK

稳定(http://github.com/badges/stability-badges)

注意:此文档是通过机器翻译生成且不会及时更新,仅供参考。具体内容请以英文原文为准。

Orbbec ROS SDK 是 OrbbecSDK 的一个封装,支持 ROS Kinetic、Melodic 和 Noetic 发行版。此 SDK 使 Orbbec 3D 摄像机能够平滑地集成到ROS 项目中。

目录

安装依赖

ROS

其他依赖

创建ROS工作区并构建

创建一个ROS工作区(如果您还没有):

mkdir -p ~/ros_ws/src

获取源代码:

cd ~/ros_ws/src
git clone https://github.com/orbbec/OrbbecSDK_ROS1.git

构建包:

cd ~/ros_ws
catkin_make

安装udev规则:

cd ~/ros_ws
source ./devel/setup.bash
roscd orbbec_camera
cd scripts
sudo cp 99-obsensor-libusb.rules /etc/udev/rules.d/99-obsensor-libusb.rules
sudo udevadm control --reload && sudo udevadm trigger

启动摄像头

在终端1:

source ./devel/setup.bash
roslaunch orbbec_camera gemini_330_series.launch

在终端2:

source ./devel/setup.bash
rviz

选择主题并控制摄像头

检查主题、服务和参数(开启一个新终端):

rostopic list
rosservice list
rosparam list

获取摄像头参数(必须先启动流):

rosservice call /camera/get_camera_params "{}"

检查摄像头参数(请参考ROS文档了解 camera info中的具体字段含义):

rostopic echo /camera/depth/camera_info
rostopic echo /camera/color/camera_info

检查设备信息:

rosservice call /camera/get_device_info "{}"

获取SDK版本(包括固件和Orbbec SDK版本):

rosservice call /camera/get_sdk_version "{}"

设置/获取(自动)曝光:

rosservice call /camera/set_color_auto_exposure '{data: false}'
rosservice call /camera/set_left_ir_auto_exposure "{data: false}"

# 设置曝光值(小心数据范围;下面的示例可能不正确)
rosservice call /camera/set_left_ir_exposure "{data: 2000}"
rosservice call /camera/set_color_exposure "{data: 2000}"

# 获取曝光
rosservice call /camera/get_left_ir_exposure "{}"
rosservice call /camera/get_color_exposure "{}"

设置/获取增益:

# 获取增益
rosservice call /camera/get_color_gain '{}'
rosservice call /camera/get_left_ir_gain '{}'

# 设置增益(小心数据范围;下面的示例可能不正确)
rosservice call /camera/set_color_gain "{data: 200}"
rosservice call /camera/set_left_ir_gain "{data: 200}"

设置/获取(自动)白平衡:

rosservice call /camera/set_auto_white_balance "{data: false}"
rosservice call /camera/get_auto_white_balance "{data: false}"

开启/关闭激光:

rosservice call /camera/set_laser '{data: true}' # 开启
rosservice call /camera/set_laser '{data: false}' # 关闭

保存图片:

rosservice call /camera/save_images "{}"

保存点云:

rosservice call /camera/save_point_cloud "{}"

注意:图片保存在~/.ros/image目录下,只有当传感器开启时才可用。

可用的摄像头控制服务

服务名称直观反映了其用途。至关重要的是要理解,与设置或获取参数相关的服务——标记为set_*get_*——仅在相应的enable_* 参数激活时可用。例如,激活左红外(IR)功能需要enable_left_ir,右红外功能需要enable_right_ir ,深度感知功能需要enable_depth,或颜色处理功能需要enable_color(参考启动参数 )是这些对应服务运行的先决条件。这种配置确保仅当在启动文件的流参数中启用了特定流时,服务才可访问。

_left_ir_auto_exposure`

可用的主题

启动参数

以下启动参数可用:

镜根据大小参数执行多次迭代处理,以增强深度数据的平滑性。它还能填充深度图中的小孔。

检查摄像头支持哪些配置文件

rosrun orbbec_camera list_camera_profile_mode_node

构建Debian包

首先,确保安装了必要的工具:

sudo apt install debhelper fakeroot python3-bloom

要创建Debian包,请执行以下命令:

cd ~/ros_ws/src/OrbbecSDK_ROS1
bash .make_deb.sh

启动文件

产品系列 启动文件
gemini 335 /335 L gemini_330_series.launch
gemini2 gemini2.launch
gemini2L gemini2L.launch
astra2 astra2.launch
femto mega femto_mega.launch
femto bolt femto_bolt.launch

所有启动文件基本相似,主要区别在于为不同模型设置的参数默认值不同 在同一系列中。USB标准的差异,例如USB 2.0与USB 3.0,可能需要调整这些参数。如果您 遇到启动失败,请仔细查看规格手册。特别注意启动文件中的分辨率设置,以及其他参数,以确保兼容性和最佳性能。

使用Nodelet

对于需要使用nodelet的用户,请参考gemini2_nodelet.launch

支持的硬件产品

产品支持

产品列表 固件版本
Gemini 335 1.2.20
Gemini 335L 1.2.20
Femto Bolt 1.0.6/1.0.9
Femto Mega 1.1.7/1.2.7
Gemini 2 XL Obox: V1.2.5 VL:1.4.54
Astra 2 2.8.20
Gemini 2 L 1.4.32
Gemini 2 1.4.60 /1.4.76

常见问题

多相机无画面

错误:"设备启动失败:usbEnumerator createUsbDevice失败!"

your_pid_here", ATTR{idVendor}=="2bc5", MODE:="0666", OWNER:="root", GROUP:="video", SYMLINK+="your_device_name_here"

将`your_pid_here`替换为您设备的PID,将`your_device_name_here`替换为您想为设备创建的名称(例如,`gemini_camera`)。

然后重启udev服务:

```bash
sudo udevadm control --reload-rules && sudo service udev restart && sudo udevadm trigger

许可证

版权所有 2024 Orbbec Ltd.

根据Apache许可证,版本2.0(“许可证”)授权;除非符合许可证,否则您不得使用此项目。您可以在

http://www.apache.org/licenses/LICENSE-2.0

获得许可证副本。

除非适用法律要求或书面同意,根据许可证分发的软件将按“原样”基础提供,不附带任何形式的明示或暗示的保证或条件。请参阅许可证了解权限和限制的具体语言。

其他名称和品牌可能是其他所有者的财产。