This commit is contained in:
ob-yalian
2025-11-28 12:55:21 +00:00
parent 0d5b067097
commit 7fffadef7c
116 changed files with 2220 additions and 1136 deletions
@@ -1,6 +1,4 @@
### 从源码构建
#### 环境配置
### 环境配置
根据官方指南安装 ROS 2:
@@ -19,6 +17,29 @@ eval "$(register-python-argcomplete3 colcon)"
mkdir -p ~/ros2_ws/src
```
### 二进制安装
#### Linux 二进制包安装
查看软件包:
```bash
sudo apt update
apt list | grep orbbec
```
安装 OrbbecSDK ROS2 包:
```bash
sudo apt install ros-humble-orbbec-camera ros-humble-orbbec-description
```
安装完成后,直接使用即可,无需编译。
---
### 从源码构建
#### Linux ROS2 包装器编译
克隆源代码并切换到 `v2-main` 分支:
@@ -36,15 +57,8 @@ git checkout v2-main
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-backward-ros libdw-dev
```
可选依赖项:
```bash
# 435Le writeCustomerDate 功能:
sudo apt install libssl-dev
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
```
构建:
@@ -53,4 +67,3 @@ sudo apt install libssl-dev
cd ~/ros2_ws
colcon build --event-handlers console_direct+ --cmake-args -DCMAKE_BUILD_TYPE=Release
```
@@ -1,6 +1,15 @@
## 注册脚本(必需)
为了让 Orbbec 相机在 Linux 上被正确识别,请安装 udev 规则:
为了让 Orbbec 相机在 Linux 上被正确识别,请安装 udev 规则。
### 二进制安装
```bash
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
```
### 从源码构建
```bash
cd ~/ros2_ws/src/OrbbecSDK_ROS2/orbbec_camera/scripts
@@ -11,4 +20,3 @@ sudo udevadm control --reload-rules && sudo udevadm trigger
此步骤对于 Linux 用户是**必需的**。
`注意:` 如果不执行此脚本,由于权限问题,打开设备将会失败。您需要使用 sudo(管理员权限)运行示例程序。
@@ -6,6 +6,18 @@
![module in rviz2](../image/application_guide/image1.png)
### 从坐标系A到坐标系B的TF变换:
在Orbbec相机中,原点(0,0,0)取自camera_link位置。
可以使用以下命令查看相机的URDF模型和坐标系结构:
```bash
ros2 launch orbbec_description view_model.launch.py model:=gemini_335_336.urdf.xacro
```
![rviz2中的模块](../image/application_guide/image2.png)
### ROS2机器人坐标系 vs 相机光学坐标系
* 视角:
@@ -33,6 +33,14 @@
* 启用无效点云过滤。
* **`point_cloud_qos`、`[stream]_qos`、`[stream]_camera_info_qos`**
* ROS 2消息服务质量(QoS)设置。可能的值为 `SYSTEM_DEFAULT`、`DEFAULT`、`PARAMETER_EVENTS`、`SERVICES_DEFAULT`、`PARAMETERS`、`SENSOR_DATA`,不区分大小写。这些分别对应 `rmw_qos_profile_system_default`、`rmw_qos_profile_default`、`rmw_qos_profile_parameter_events`、`rmw_qos_profile_services_default`、`rmw_qos_profile_parameters` 和 `SENSOR_DATA`。
* **`color.image_raw.enable_pub_plugins`**
* 启用彩色图像传输插件。默认值:`["image_transport/compressed", "image_transport/raw", "image_transport/theora"]`。
* **`depth.image_raw.enable_pub_plugins`**
* 启用深度图像传输插件。默认值:`["image_transport/compressedDepth", "image_transport/raw"]`。
* **`left_ir.image_raw.enable_pub_plugins`**
* 启用左红外图像传输插件。默认值:`["image_transport/compressed", "image_transport/raw", "image_transport/theora"]`。
* **`right_ir.image_raw.enable_pub_plugins`**
* 启用右红外图像传输插件。默认值:`["image_transport/compressed", "image_transport/raw", "image_transport/theora"]`。
### 传感器控制
@@ -67,7 +75,6 @@
#### 深度流
* **`enable_depth_auto_exposure_priority`**
* 启用深度自动曝光优先级。
* **`mean_intensity_set_point`**
* 设置深度图像的目标平均强度。例如:`mean_intensity_set_point:=100`。
@@ -124,16 +131,12 @@
* 设置网络设备的IP地址和端口(通常为 `8090`)。
* **`force_ip_enable`**
* 启用强制IP功能。**默认值:** `false`
* **`force_ip_mac`**
* 连接多个相机时的目标设备MAC地址(例如,`"54:14:FD:06:07:DA"`)。您可以使用 `list_devices_node` 查找每个设备的MAC。**默认值:** `""`
* **`force_ip_address`**
* 要分配的静态IP地址。**默认值:** `192.168.1.10`
* **`force_ip_subnet_mask`**
* 静态IP的子网掩码。**默认值:** `255.255.255.0`
* **`force_ip_gateway`**
* 静态IP的网关地址。**默认值:** `192.168.1.1`
@@ -68,7 +68,7 @@
#### 红外流
* `/camera/toggle_ir`
```bash
ros2 service call /camera/toggle_ir std_srvs/srv/SetBool '{data: true}'
```
@@ -114,6 +114,10 @@
```bash
ros2 service call /camera/set_laser_enable std_srvs/srv/SetBool '{data: true}'
```
`/camera/get_laser_status`
```bash
ros2 service call /camera/get_laser_status orbbec_camera_msgs/srv/GetBool '{}'
```
* `/camera/set_ldp_enable` & `/camera/get_ldp_status`
```bash
ros2 service call /camera/set_ldp_enable std_srvs/srv/SetBool '{data: true}'