mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-08 13:57:46 +08:00
tmp
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
# 深度工作模式切换
|
||||
|
||||
Orbbec SDK ROS 2 支持深度工作模式切换。Gemini 2、Gemini 2 L 和 Femto 以及 Femto Bolt 相机支持深度工作模式切换。
|
||||
|
||||
- 在启动相机之前,可以为相应的 xxx.launch.py 文件的支持配置深度工作模式(depth_work_mode)。
|
||||
- Gemini 2、Gemini 2 L 和 Gemini 2 XL 相机支持深度工作模式切换。
|
||||
- xxx.launch.py 的默认深度工作模式配置是相机的默认配置。如果需要修改,可以根据需要切换到相应的模式。
|
||||
- 具体相机深度工作模式支持类型可以在深度模式的注释中找到。
|
||||
|
||||
```python
|
||||
# 深度工作模式支持如下:
|
||||
# Unbinned Dense Default
|
||||
# Unbinned Sparse Default
|
||||
# Binned Sparse Default
|
||||
# Obstacle Avoidance
|
||||
DeclareLaunchArgument('depth_work_mode', default_value='')
|
||||
```
|
||||
|
||||
- 查看深度工作模式:
|
||||
|
||||
```bash
|
||||
ros2 run orbbec_camera list_depth_work_mode_node
|
||||
```
|
||||
|
||||
* 示例:
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera gemini2L.launch.py depth_work_mode:="Unbinned Dense Default"
|
||||
```
|
||||
@@ -0,0 +1,47 @@
|
||||
# 视差搜索偏移
|
||||
|
||||
> 本节介绍如何在 Gemini330 系列相机中使用 disparity_search_offset 功能(相机固件最低版本 [1.4.60](https://www.orbbec.com/docs/g330-firmware-release/))。Disparity_search_offset 仅对深度流的 1280×720、1280×800 和 640×400 分辨率有效。
|
||||
|
||||
## 功能介绍
|
||||
|
||||
视差搜索范围的定义:对于左图像中的任何像素 *(u_l, v)*,默认情况下,右图像中对应的视差搜索范围为 *[ (u_l - 255, v)*, *(u_l, v) ]*,其中视差搜索长度为 256,最大整数视差为 255。如果将搜索的起点调整为 *[ (u_l - 255 - offset, v)*, *(u_l - offset, v) ]*,则偏移量定义为视差偏移。因此,我们的视差搜索范围配置包括视差搜索长度和搜索位置偏移(也可称为视差偏移)。
|
||||
|
||||

|
||||
|
||||
## 参数介绍
|
||||
|
||||
disparity_search_offset 相关参数在 [gemini_330_series.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/launch/gemini_330_series.launch.py) 中设置
|
||||
|
||||
* `disparity_range_mode`:视差搜索长度,只能设置为 64、128 和 256。
|
||||
|
||||
* `disparity_search_offset`:视差搜索偏移值,可以设置为 0 到 127。
|
||||
|
||||
* `disparity_offset_config`:视差搜索偏移交错帧。
|
||||
|
||||
* `offset_index0`:帧 0 视差搜索偏移值。
|
||||
|
||||
* `offset_index1`:帧 1 视差搜索偏移值。
|
||||
|
||||
| 视差范围模式 | 视差搜索偏移 | 倾斜墙最小深度 (mm) |
|
||||
| :------------------: | :---------------------: | :---------------------------------: |
|
||||
| 64 | 85 | Gemini 335L 388-406 |
|
||||
| 64 | 127 | Gemini 335L 302-317 |
|
||||
|
||||
| 视差范围模式 | 视差搜索偏移 | 倾斜墙最小深度 (mm) |
|
||||
| :------------------: | :---------------------: | :---------------------------------------------: |
|
||||
| 128 | 0 | Gemini 335 233-249<br />Gemini 335L 453-475 |
|
||||
| 128 | 45 | Gemini 335 172-184<br />Gemini 335L 334-349 |
|
||||
| 128 | 127 | Gemini 335 117-125<br />Gemini 335L 226-236 |
|
||||
|
||||
| 视差范围模式 | 视差搜索偏移 | 倾斜墙最小深度 (mm) |
|
||||
| :------------------: | :---------------------: | :---------------------------------: |
|
||||
| 256 | 85 | Gemini 335L 169-178 |
|
||||
| 256 | 127 | Gemini 335L 151-158 |
|
||||
|
||||
## 运行启动文件
|
||||
|
||||
设置 disparity_search_offset 参数,重新 `colcon build` 并运行启动文件
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera gemini_330_series.launch.py
|
||||
```
|
||||
@@ -0,0 +1,81 @@
|
||||
# 在 Gemini330 系列相机中使用 interleave_ae
|
||||
|
||||
> 本节介绍如何在 Gemini 330 系列相机中使用 interleave_ae(相机固件最低版本 [1.4.00](https://www.orbbec.com/docs/g330-firmware-release/))
|
||||
|
||||
## 参数介绍
|
||||
|
||||
interleave_ae 相关参数在 [gemini_330_series.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/launch/gemini_330_series.launch.py) 中设置
|
||||
|
||||
* `interleave_ae_mode`:设置激光或 hdr 交错。
|
||||
|
||||
* `interleave_frame_enable`:启用交错帧模式。
|
||||
|
||||
* `interleave_skip_enable`:启用跳帧模式。
|
||||
|
||||
* `interleave_skip_index`:设置为 0 跳过图案 ir,设置为 1 跳过泛光 ir。
|
||||
|
||||
**interleave hdr**
|
||||
|
||||
当 `interleave_ae_mode` 参数设置为 `hdr` 且 `interleave_frame_enable` 设置为 `true` 时,将启用 interleave hdr
|
||||
|
||||
* `hdr_index1_laser_control`:帧 1 激光开关设置。
|
||||
|
||||
* `hdr_index1_depth_exposure`:帧 1 深度曝光值设置,非 AE 模式。
|
||||
|
||||
* `hdr_index1_depth_gain`:帧 1 深度增益值设置,非 AE 模式。
|
||||
|
||||
* `hdr_index1_ir_brightness`:帧 1 ir 增益值设置。
|
||||
|
||||
* `hdr_index1_ir_ae_max_exposure`:AE(自动曝光)中帧 1 ir 最大曝光值设置。
|
||||
|
||||
* `hdr_index0_laser_control`:帧 0 激光开关设置。
|
||||
|
||||
* `hdr_index0_depth_exposure`:帧 0 深度曝光值设置,非 AE 模式。
|
||||
|
||||
* `hdr_index0_depth_gain`:帧 0 深度增益值设置,非 AE 模式。
|
||||
|
||||
* `hdr_index0_ir_brightness`:帧 0 ir 增益值设置。
|
||||
|
||||
* `hdr_index0_ir_ae_max_exposure`:AE(自动曝光)中帧 0 ir 最大曝光值设置。
|
||||
|
||||
**interleave laser**
|
||||
|
||||
当 `interleave_ae_mode` 参数设置为 `laser` 且 `interleave_frame_enable` 设置为 `true` 时,将启用 interleave laser
|
||||
|
||||
* `laser_index1_laser_control`:帧 1 激光开关设置。
|
||||
|
||||
* `laser_index1_depth_exposure`:帧 1 深度曝光值设置,非 AE 模式。
|
||||
|
||||
* `laser_index1_depth_gain`:帧 1 深度增益值设置,非 AE 模式。
|
||||
|
||||
* `laser_index1_ir_brightness`:帧 1 ir 增益值设置。
|
||||
|
||||
* `laser_index1_ir_ae_max_exposure`:AE(自动曝光)中帧 1 ir 最大曝光值设置。
|
||||
|
||||
* `laser_index0_laser_control`:帧 0 激光开关设置。
|
||||
|
||||
* `laser_index0_depth_exposure`:帧 0 深度曝光值设置,非 AE 模式。
|
||||
|
||||
* `laser_index0_depth_gain`:帧 0 深度增益值设置,非 AE 模式。
|
||||
|
||||
* `laser_index0_ir_brightness`:帧 0 ir 增益值设置。
|
||||
|
||||
* `laser_index0_ir_ae_max_exposure`:AE(自动曝光)中帧 0 ir 最大曝光值设置。
|
||||
|
||||
## 运行启动文件
|
||||
|
||||
设置 interleave_ae 参数,重新 `colcon build` 并运行启动文件
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera gemini_330_series.launch.py
|
||||
```
|
||||
|
||||
**示例可视化**
|
||||
|
||||

|
||||
|
||||

|
||||
|
||||
## Multi_camera_synced + Interleave_ae
|
||||
|
||||
请参考 [multi_camera_synced](./multi_camera_synced.md) 和 [参数介绍](#参数介绍)
|
||||
@@ -0,0 +1,99 @@
|
||||
# 网络相机
|
||||
|
||||
> 本节介绍如何在 OrbbecSDK_ROS2 中使用网络相机。目前仅支持 Femto_Mega、Gemini 335Le 和 Gemini 435Le 设备,其他网络设备将在不久的将来得到支持。
|
||||
|
||||
您可以在 [example](https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/examples) 中找到示例使用代码。
|
||||
|
||||
## Femto Mega & Gemini 435Le & Gemini 335Le
|
||||
|
||||
**参数介绍**
|
||||
|
||||
网络设备设置:`enumerate_net_device` 设置为 true,将自动枚举网络设备。
|
||||
|
||||
如果您不想自动枚举网络设备,可以将 `enumerate_net_device` 设置为 false,将 `net_device_ip` 设置为设备的 IP 地址,并将 `net_device_port` 设置为默认值 8090。
|
||||
|
||||
* `enumerate_net_device`:启用自动枚举网络设备。
|
||||
* `net_device_ip`:设置网络设备的 IP 地址。
|
||||
* `net_device_port`:设置网络设备的端口。通常可以设置为 8090。
|
||||
|
||||
**单个网络相机**
|
||||
|
||||
> 如果您需要运行 Gemini 435Le/Gemini 335Le,只需在运行命令中将 [femto_mega.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/launch/femto_mega.launch.py) 替换为 [gemini435_le.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/launch/gemini435_le.launch.py)/[gemini_330_series.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/launch/gemini_330_series.launch.py)
|
||||
|
||||
以 [femto_mega.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/tree/v2-main/orbbec_camera/launch/femto_mega.launch.py) 为例:
|
||||
|
||||
- **自动枚举网络设备:**
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera femto_mega.launch.py enumerate_net_device:=true
|
||||
```
|
||||
|
||||
- **指定 IP 地址启动设备:**
|
||||
|
||||
注意:`net_device_ip` 需要更改为设备的 IP 地址,这里是 192.168.1.10
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera femto_mega.launch.py enumerate_net_device:=false net_device_ip:=192.168.1.10 net_device_port:=8090
|
||||
```
|
||||
|
||||
**多个网络相机**
|
||||
|
||||
以 [multi_net_camera.launch.py](https://github.com/orbbec/OrbbecSDK_ROS2/blob/v2-main/orbbec_camera/examples/net_camera/multi_net_camera.launch.py) 为例:
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera multi_net_camera.launch.py
|
||||
```
|
||||
|
||||
## set_device_ip 工具
|
||||
|
||||
**`set_device_ip`** 可执行文件允许您直接从 ROS 2 配置网络相机的 IP 设置,包括在 DHCP 和静态 IP 之间切换,以及设置子网掩码和网关。这对于快速分配或更新 IP 地址而无需修改启动文件非常有用。
|
||||
|
||||
> **注意:**使用 `set_device_ip` 应用的 IP 设置是**永久性的**,如果设备断电或重启,**不会重置**。
|
||||
|
||||
**示例用法**
|
||||
|
||||
```bash
|
||||
ros2 run orbbec_camera set_device_ip --ros-args \
|
||||
-p old_ip:=192.168.1.10 \
|
||||
-p dhcp:=false \
|
||||
-p new_ip:=192.168.1.11 \
|
||||
-p mask:=255.255.255.0 \
|
||||
-p gateway:=192.168.1.1
|
||||
```
|
||||
|
||||
**参数**
|
||||
|
||||
- **`old_ip`** – 设备的当前 IP 地址。
|
||||
- **`dhcp`** – 设置为 `true` 使用 DHCP 或 `false` 使用静态 IP。
|
||||
- **`new_ip`** – 禁用 DHCP 时要分配的静态 IP 地址。
|
||||
- **`mask`** – 新 IP 的子网掩码。
|
||||
- **`gateway`** – 新 IP 的网关地址。
|
||||
|
||||
## 强制 IP 功能
|
||||
|
||||
**强制 IP** 功能允许您为网络相机分配**静态 IP 地址**,覆盖 DHCP 设置。当连接多个网络相机时,这非常有用,您需要每个设备具有固定的 IP 以实现可靠的通信。
|
||||
|
||||
> **注意:**如果设备断电或重启,强制 IP 配置**将被重置**。您需要在重启后重新应用设置。
|
||||
|
||||
**参数**
|
||||
|
||||
- **`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`
|
||||
|
||||
**示例用法**
|
||||
|
||||
- **为特定设备启用强制 IP:**
|
||||
|
||||
```bash
|
||||
ros2 launch orbbec_camera gemini_330_series.launch.py \
|
||||
force_ip_enable:=true \
|
||||
force_ip_mac:=54:14:FD:06:07:DA \
|
||||
force_ip_address:=192.168.1.50 \
|
||||
force_ip_subnet_mask:=255.255.255.0 \
|
||||
force_ip_gateway:=192.168.1.1 \
|
||||
net_device_ip:=192.168.1.50 \
|
||||
net_device_port:=8090
|
||||
```
|
||||
@@ -0,0 +1,12 @@
|
||||
# 预定义预设
|
||||
|
||||
| 预设 | 特点 | 推荐使用场景 |
|
||||
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
||||
| Default | - 最佳视觉感知<br>- 在精度、填充率、微小物体等方面的整体性能良好 | - 通用场景<br>- 机器人应用 |
|
||||
| Hand | - 清晰的手部和手指边缘 | - 手势识别 |
|
||||
| High Accuracy | - 高置信度深度<br>- 几乎无噪声深度值<br>- 填充率较低 | - 避障<br>- 物体扫描 |
|
||||
| High Density | - 更高填充率<br>- 更多微小物体<br>- 可能存在噪声深度值 | - 物体识别<br>- 抓取和放置<br>- 前景和背景动画 |
|
||||
| Medium Density | - 填充率和精度的平衡性能<br>- 与 Default 相比:填充率较低,边缘质量更好 | - 通用场景和 Default 的替代方案 |
|
||||
| Custom | - 用户自定义预设<br>- 从上述预设派生,具有自定义修改,例如后处理管道的新配置、深度 AE 功能的修改平均强度设定点等 | - 通过使用自定义配置可获得比预定义预设更好的深度性能<br>- 适用于已建立的自定义配置 |
|
||||
|
||||
根据您的具体使用场景选择合适的预设名称,并将其设置为 `device_preset` 参数的值。
|
||||
Reference in New Issue
Block a user