Document: Add migration guide to developer documentation in English and Chinese

This commit is contained in:
obyalian
2025-10-22 10:46:53 +08:00
parent f09d1227ab
commit 2c1d661d9c
4 changed files with 394 additions and 0 deletions
@@ -6,5 +6,6 @@ This chapter provides documents for developers and maintainers of the SDK.
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
migration_guide.md
building_a_Debian_Package.md building_a_Debian_Package.md
@@ -0,0 +1,196 @@
# Migrating from main to Open-Source v2-main
## **Introduction**
Initially, Orbbec provided a **closed-source SDK — Orbbec SDK v1**, which formed the foundation of the [OrbbecSDK ROS2 Wrapper main branch](https://github.com/orbbec/OrbbecSDK_ROS2/tree/main). Although the ROS wrapper layer itself was open-source, it relied on a closed-source underlying SDK. This architecture imposed limitations on flexibility and hindered community-driven improvements.
As developers increasingly demanded transparency, maintainability, and broader device support, Orbbec released a brand-new open-source v2-main **— Orbbec SDK_v2** ([GitHub link](https://github.com/orbbec/OrbbecSDK/tree/v2-main)). Based on this SDK, the [open-source v2-main branch of OrbbecSDK ROS2](https://github.com/orbbec/OrbbecSDK_ROS2) is now fully open source, offering greater extensibility and alignment with Orbbec’s future product roadmap.
This document introduces the motivations and benefits of migrating ROS packages from the main branch (based on SDK v1) to the v2-main branch (based on Orbbec SDK_v2). It highlights the key differences in **launch files, parameters, topics, and services**, and provides a migration guide to help developers smoothly transition.
**Note:** In the following content, **main** refers to the closed-source branch, while **v2-main** refers to the open-source v2-main branch.
## **Advantages of Migrating from main to v2-main**
In October 2024, Orbbec released a major update: **OrbbecSDK ROS2 Wrapper v2**, which is entirely based on the open-source Orbbec SDK_v2. Compared to the legacy main branch (SDK v1.x), the v2-main branch (Orbbec SDK_v2.x) provides greater flexibility and scalability, while offering comprehensive support for all Orbbec USB products that comply with the UVC standard.The migration from main --> v2-main brings the following key advantages:
### **Comprehensive Device Support**
The v2-main branch supports all UVC-compliant Orbbec USB cameras and will be the primary platform for supporting all newly released devices.
### **Transparency and Extensibility**
Orbbec SDK_v2 is fully open-source, allowing developers to directly access the underlying implementation for easier debugging, optimization, and secondary development. By contrast, SDK v1 was closed-source, introducing a “black-box” constraint.
### Advantages in Maintenance and Updates
The v2-main branch offers full-featured support, including new feature development, performance optimization, and bug fixes. The main branch has entered a maintenance-only mode, where only critical bugs may receive limited updates, and no new features are being developed.
### **Community and Ecosystem Support**
With an open-source SDK, developers can directly submit issues and pull requests on GitHub or Gitee, contributing to feature evolution. This not only accelerates problem resolution but also fosters a more open and active Orbbec ecosystem.
## Comparison Between main and v2-main Branches
### **Launch File Differences**
1. In v2-main, new low-power launch file has been added for the Gemini 330 series:
- `gemini_330_series_low_cpu.launch.py`
2. v2-main introduces support for **Gemini 435Le**, **Gemini 345**, and **Gemini 345Lg** cameras.
3. Since **OrbbecSDK_v2 only supports UVC devices**, the range of camera models supported in v2-main is slightly narrower than in main. Detailed information is provided in the table below.
| **camera** | **main** | **v2-main** |
| ---------------------------------- | ------------------------------------ | -------------------------------------------------- |
| Gemini 435Le | Not supported | gemini435_le.launch.py |
| Gemini 345 | Not supported | gemini345.launch.py |
| Gemini 345Lg | Not supported | gemini345_lg.launch.py |
| Gemini 330 series | gemini_330_series.launch.py | gemini_330_series.launch.py |
| Gemini 330 low cpu | - | gemini_330_series_low_cpu.launch.py |
| Gemini 210 | gemini210.launch.py | gemini210.launch.py |
| Gemini 2 | gemini2.launch.py | gemini2.launch.py |
| Gemini 2L | gemini2L.launch.py | gemini2.launch.py |
| Gemini 2XL | gemini2XL.launch.py | - |
| Femto Bolt | femto_bolt.launch.py | femto_bolt.launch.py |
| Femto Mega | femto_mega.launch.py | femto_mega.launch.py |
| Femto | femto.launch.py | femto.launch.py |
| Astra 2 | astra2.launch.py | astra2.launch.py |
| Astra | astra.launch.py | astra.launch.py |
| Astra Mini Pro / S Pro | astra_mini_pro.launch.py ... | astra.launch.py |
| Multi-Camera (Synchronized) | multi_camera_synced.launch.py | multi_camera_synced.launch.py |
| Multi-Camera (Generic / Universal) | multi_camera.launch.py | multi_camera.launch.pyorbbec_multicamera.launch.py |
| Single-Camera Generic Launch | ob_camera.launch.py | orbbec_camera.launch.py |
| OpenNI devices (Dabai、Deeya) | Corresponding model independent file | Not supported |
### **Parameter Differences**
**New Parameters in v2-main (not available in main)**
| **Parameter Name** | **main** | **v2-main** | **Description** |
| -------------------------------------- | -------- | ----------- | ------------------------------------------------- |
| upgrade_firmware | - | Added | Firmware upgrade path |
| preset_firmware_path | - | Added | Preset firmware file path |
| load_config_json_file_path | - | Added | Load JSON configuration |
| export_config_json_file_path | - | Added | Export JSON configuration |
| uvc_backend | - | Added | libuvc / v4l2 backend selection |
| enable_color_auto_exposure_priority | - | Added | AE priority control |
| color_flip | - | Added | Color image vertical flip |
| color_mirror | - | Added | Color image horizontal mirror |
| depth_flip | - | Added | Depth image vertical flip |
| depth_mirror | - | Added | Depth image horizontal mirror |
| left_ir_flip | - | Added | Left IR vertical flip |
| left_ir_mirror | - | Added | Left IR horizontal mirror |
| right_ir_flip | - | Added | Right IR vertical flip |
| right_ir_mirror | - | Added | Right IR horizontal mirror |
| enable_left_ir_sequence_id_filter | - | Added | Left IR sequence ID filter |
| enable_right_ir_sequence_id_filter | - | Added | Right IR sequence ID filter |
| enable_accel_data_correction | - | Added | Accelerometer data correction |
| enable_gyro_data_correction | - | Added | Gyroscope data correction |
| enumerate_net_device | - | Added | Automatic enumeration of network devices |
| net_device_ip | - | Added | Network device IP address |
| net_device_port | - | Added | Network device port |
| exposure_range_mode | - | Added | Exposure range mode: default / ultimate / regular |
| disparity_to_depth_mode | - | Added | Hardware disparity-to-depth conversion |
| ldp_power_level | - | Added | LDP power level |
| time_sync_period | - | Added | Time synchronization period |
| gmsl_trigger_fps | - | Added | GMSL trigger frame rate |
| enable_gmsl_trigger | - | Added | GMSL trigger enable |
| disparity_range_mode | - | Added | Disparity range mode |
| disparity_search_offset | - | Added | Disparity search offset |
| disparity_offset_config | - | Added | Disparity offset configuration |
| offset_index0 | - | Added | Disparity offset index 0 |
| offset_index1 | - | Added | Disparity offset index 1 |
| interleave_ae_mode | - | Added | AE interleave mode |
| interleave_frame_enable | - | Added | Interleaved frame enable |
| interleave_skip_enable | - | Added | Skip IR frame enable |
| interleave_skip_index | - | Added | Skip IR frame index |
| hdr_index1_laser_control | - | Added | HDR laser control parameters |
| hdr_index1_depth_exposure | - | Added | HDR depth exposure |
| hdr_index1_depth_gain | - | Added | HDR depth gain |
| hdr_index1_ir_brightness | - | Added | HDR IR brightness |
| hdr_index1_ir_ae_max_exposure | - | Added | HDR IR max AE |
| hdr_index0_laser_control | - | Added | HDR laser control parameters |
| hdr_index0_depth_exposure | - | Added | HDR depth exposure |
| hdr_index0_depth_gain | - | Added | HDR depth gain |
| hdr_index0_ir_brightness | - | Added | HDR IR brightness |
| hdr_index0_ir_ae_max_exposure | - | Added | HDR IR max AE |
| laser_index1_laser_control | - | Added | Laser interleave control |
| laser_index1_depth_exposure | - | Added | Laser depth exposure |
| laser_index1_depth_gain | - | Added | Laser depth gain |
| laser_index1_ir_brightness | - | Added | Laser IR brightness |
| laser_index1_ir_ae_max_exposure | - | Added | Laser IR max AE |
| laser_index0_laser_control | - | Added | Laser interleave control |
| laser_index0_depth_exposure | - | Added | Laser depth exposure |
| laser_index0_depth_gain | - | Added | Laser depth gain |
| laser_index0_ir_brightness | - | Added | Laser IR brightness |
| laser_index0_ir_ae_max_exposure | - | Added | Laser IR max AE |
| software_trigger_enabled | - | Added | Software trigger enable |
| enable_ptp_config | - | Added | PTP configuration (Gemini 335Le) |
| align_target_stream | - | Added | Target stream for alignment |
| spatial_fast_filter_radius | - | Added | Fast spatial filter radius |
| spatial_moderate_filter_diff_threshold | - | Added | Moderate spatial filter difference threshold |
| spatial_moderate_filter_magnitude | - | Added | Moderate spatial filter magnitude |
| spatial_moderate_filter_radius | - | Added | Moderate spatial filter radius |
| color.image_raw.enable_pub_plugins | - | Added | Color image transport plugins |
| depth.image_raw.enable_pub_plugins | - | Added | Depth image transport plugins |
| left_ir.image_raw.enable_pub_plugins | - | Added | Left IR transport plugins |
| right_ir.image_raw.enable_pub_plugins | - | Added | Right IR transport plugins |
| force_ip_enable | - | Added | Force IP feature |
| force_ip_mac | - | Added | Force IP MAC address |
| force_ip_dhcp | - | Added | DHCP auto assignment |
| force_ip_address | - | Added | Force IP static address |
| force_ip_subnet_mask | - | Added | Force IP subnet mask |
| force_ip_gateway | - | Added | Force IP gateway |
**Removed Parameters (main only, removed in v2-main)**
| **Parameter** | **Description** |
| ------------------------------------ | ------------------------------------------------------------ |
| enable_3d_reconstruction_mode | 3D reconstruction mode deprecated |
| enable_hardware_reset | Hardware reset interface deprecated |
| enable_hardware_noise_removal_filter | Hardware noise removal filter deprecated |
| laser_on_off_mode | Old laser on/off interface, replaced by interleave / laser_index |
| enable_3d_reconstruction_mode | 3D reconstruction mode repeated; no longer used in v2-main |
| device_preset | Some logic migrated to new firmware / interleave parameters |
| enable_trigger_out | Old software trigger interface replaced by software_trigger_enabled |
| retry_on_usb3_detection_failure | Optional; logic adjusted or removed in v2-main |
| enable_color_undistortion | Old interface logic integrated elsewhere; still exists in v2-main but usage may be adjusted |
### **Topic Differences**
**v2-main** adds the following topics based on main:
| **Topic** | **main** | **v2-main** | **Description** |
| --------------------- | -------- | ----------- | ------------------------------------------------------------ |
| /camera/device_status | - | Added | Publishes device status (frame rate delay, device connection status, etc.) |
### **Service Differences**
**v2-main** adds the following services based on main:
| **Service** | **main** | **v2-main** | **Description** |
| ------------------------- | -------- | ----------- | ------------------------------------ |
| get_ptp_config | - | Added | Get PTP configuration |
| set_ptp_config | - | Added | Set PTP configuration |
| get_streams_enable | - | Added | Get the enable status of each stream |
| set_streams_enable | - | Added | Set the enable status of each stream |
| get_user_calib_params | - | Added | Get user calibration parameters |
| set_user_calib_params | - | Added | Set user calibration parameters |
| read_customer_data | - | Added | Read user-stored custom data |
| write_customer_data | - | Added | Write user-stored custom data |
| send_software_trigger | - | Added | Send software trigger |
| set_color_ae_roi | - | Added | Set AE ROI for color image |
| set_depth_ae_roi | - | Added | Set AE ROI for depth image |
| set_color_flip | - | Added | Set color image vertical flip |
| set_depth_flip | - | Added | Set depth image vertical flip |
| set_color_rotation | - | Added | Set color image rotation |
| set_depth_rotation | - | Added | Set depth image rotation |
| set_left_ir_ae_roi | - | Added | Set AE ROI for left IR |
| set_right_ir_ae_roi | - | Added | Set AE ROI for right IR |
| set_left_ir_flip | - | Added | Left IR vertical flip |
| set_right_ir_flip | - | Added | Right IR vertical flip |
| set_left_ir_rotation | - | Added | Left IR rotation |
| set_right_ir_rotation | - | Added | Right IR rotation |
| set_reset_timestamp | - | Added | Reset timestamp |
| set_sync_hosttime | - | Added | Synchronize host time |
| set_sync_interleaverlaser | - | Added | Interleaver laser synchronization |
| set_filter | - | Added | Set depth/point cloud filters |
@@ -6,4 +6,5 @@
.. toctree:: .. toctree::
:maxdepth: 2 :maxdepth: 2
migration_guide.md
building_a_Debian_Package.md building_a_Debian_Package.md
@@ -0,0 +1,196 @@
# 从 main 分支迁移到开源 v2-main 分支
## **引言**
最初,奥比中光提供了一个**闭源 SDK — Orbbec SDK v1**,它构成了 [OrbbecSDK ROS2 Wrapper main 分支](https://github.com/orbbec/OrbbecSDK_ROS2/tree/main)的基础。虽然 ROS 封装层本身是开源的,但它依赖于闭源的底层 SDK。这种架构限制了灵活性,阻碍了社区驱动的改进。
随着开发者越来越需要透明性、可维护性和更广泛的设备支持,奥比中光发布了全新的开源 v2-main **— Orbbec SDK_v2** ([GitHub 链接](https://github.com/orbbec/OrbbecSDK/tree/v2-main))。基于此 SDK,[OrbbecSDK ROS2 的开源 v2-main 分支](https://github.com/orbbec/OrbbecSDK_ROS2)现在完全开源,提供了更好的可扩展性,并与奥比中光未来的产品路线图保持一致。
本文档介绍了将 ROS 包从 main 分支(基于 SDK v1)迁移到 v2-main 分支(基于 Orbbec SDK_v2)的动机和好处。它重点介绍了**启动文件、参数、话题和服务**的主要差异,并提供迁移指南帮助开发者顺利过渡。
**注意:** 在以下内容中,**main** 指闭源分支,而 **v2-main** 指开源 v2-main 分支。
## **从 main 迁移到 v2-main 的优势**
2024年10月,奥比中光发布了重大更新:**OrbbecSDK ROS2 Wrapper v2**,它完全基于开源的 Orbbec SDK_v2。与传统的 main 分支(SDK v1.x)相比,v2-main 分支(Orbbec SDK_v2.x)提供了更大的灵活性和可扩展性,同时为所有符合 UVC 标准的奥比中光 USB 产品提供全面支持。从 main --> v2-main 的迁移带来以下关键优势:
### **全面的设备支持**
v2-main 分支支持所有符合 UVC 标准的奥比中光 USB 相机,并将成为支持所有新发布设备的主要平台。
### **透明性和可扩展性**
Orbbec SDK_v2 完全开源,允许开发者直接访问底层实现,便于调试、优化和二次开发。相比之下,SDK v1 是闭源的,引入了"黑盒"约束。
### 维护和更新优势
v2-main 分支提供全功能支持,包括新功能开发、性能优化和错误修复。main 分支已进入仅维护模式,只有关键错误可能获得有限更新,不再开发新功能。
### **社区和生态系统支持**
有了开源 SDK,开发者可以直接在 GitHub 或 Gitee 上提交问题和拉取请求,为功能演进做出贡献。这不仅加速了问题解决,还促进了更开放和活跃的奥比中光生态系统。
## main 和 v2-main 分支的比较
### **启动文件差异**
1. 在 v2-main 中,为 Gemini 330 系列添加了新的低功耗启动文件:
- `gemini_330_series_low_cpu.launch.py`
2. v2-main 引入了对 **Gemini 435Le**、**Gemini 345** 和 **Gemini 345Lg** 相机的支持。
3. 由于 **OrbbecSDK_v2 仅支持 UVC 设备**,v2-main 中支持的相机型号范围比 main 略窄。详细信息见下表。
| **相机** | **main** | **v2-main** |
| ---------------------------------- | ------------------------------------ | -------------------------------------------------- |
| Gemini 435Le | 不支持 | gemini435_le.launch.py |
| Gemini 345 | 不支持 | gemini345.launch.py |
| Gemini 345Lg | 不支持 | gemini345_lg.launch.py |
| Gemini 330 系列 | gemini_330_series.launch.py | gemini_330_series.launch.py |
| Gemini 330 低CPU | - | gemini_330_series_low_cpu.launch.py |
| Gemini 210 | gemini210.launch.py | gemini210.launch.py |
| Gemini 2 | gemini2.launch.py | gemini2.launch.py |
| Gemini 2L | gemini2L.launch.py | gemini2.launch.py |
| Gemini 2XL | gemini2XL.launch.py | - |
| Femto Bolt | femto_bolt.launch.py | femto_bolt.launch.py |
| Femto Mega | femto_mega.launch.py | femto_mega.launch.py |
| Femto | femto.launch.py | femto.launch.py |
| Astra 2 | astra2.launch.py | astra2.launch.py |
| Astra | astra.launch.py | astra.launch.py |
| Astra Mini Pro / S Pro | astra_mini_pro.launch.py ... | astra.launch.py |
| 多相机(同步) | multi_camera_synced.launch.py | multi_camera_synced.launch.py |
| 多相机(通用/通用) | multi_camera.launch.py | multi_camera.launch.py 或 orbbec_multicamera.launch.py |
| 单相机通用启动 | ob_camera.launch.py | orbbec_camera.launch.py |
| OpenNI 设备(大白、得雅) | 对应型号独立文件 | 不支持 |
### **参数差异**
**v2-main 中的新参数(main 中不可用)**
| **参数名称** | **main** | **v2-main** | **描述** |
| -------------------------------------- | -------- | ----------- | ---------------------------------------------- |
| upgrade_firmware | - | 已添加 | 固件升级路径 |
| preset_firmware_path | - | 已添加 | 预设固件文件路径 |
| load_config_json_file_path | - | 已添加 | 加载 JSON 配置 |
| export_config_json_file_path | - | 已添加 | 导出 JSON 配置 |
| uvc_backend | - | 已添加 | libuvc / v4l2 后端选择 |
| enable_color_auto_exposure_priority | - | 已添加 | AE 优先级控制 |
| color_flip | - | 已添加 | 彩色图像垂直翻转 |
| color_mirror | - | 已添加 | 彩色图像水平镜像 |
| depth_flip | - | 已添加 | 深度图像垂直翻转 |
| depth_mirror | - | 已添加 | 深度图像水平镜像 |
| left_ir_flip | - | 已添加 | 左红外垂直翻转 |
| left_ir_mirror | - | 已添加 | 左红外水平镜像 |
| right_ir_flip | - | 已添加 | 右红外垂直翻转 |
| right_ir_mirror | - | 已添加 | 右红外水平镜像 |
| enable_left_ir_sequence_id_filter | - | 已添加 | 左红外序列 ID 滤波器 |
| enable_right_ir_sequence_id_filter | - | 已添加 | 右红外序列 ID 滤波器 |
| enable_accel_data_correction | - | 已添加 | 加速度计数据校正 |
| enable_gyro_data_correction | - | 已添加 | 陀螺仪数据校正 |
| enumerate_net_device | - | 已添加 | 自动枚举网络设备 |
| net_device_ip | - | 已添加 | 网络设备 IP 地址 |
| net_device_port | - | 已添加 | 网络设备端口 |
| exposure_range_mode | - | 已添加 | 曝光范围模式:default / ultimate / regular |
| disparity_to_depth_mode | - | 已添加 | 硬件视差到深度转换 |
| ldp_power_level | - | 已添加 | LDP 功率级别 |
| time_sync_period | - | 已添加 | 时间同步周期 |
| gmsl_trigger_fps | - | 已添加 | GMSL 触发帧率 |
| enable_gmsl_trigger | - | 已添加 | GMSL 触发启用 |
| disparity_range_mode | - | 已添加 | 视差范围模式 |
| disparity_search_offset | - | 已添加 | 视差搜索偏移 |
| disparity_offset_config | - | 已添加 | 视差偏移配置 |
| offset_index0 | - | 已添加 | 视差偏移索引 0 |
| offset_index1 | - | 已添加 | 视差偏移索引 1 |
| interleave_ae_mode | - | 已添加 | AE 交错模式 |
| interleave_frame_enable | - | 已添加 | 交错帧启用 |
| interleave_skip_enable | - | 已添加 | 跳过红外帧启用 |
| interleave_skip_index | - | 已添加 | 跳过红外帧索引 |
| hdr_index1_laser_control | - | 已添加 | HDR 激光控制参数 |
| hdr_index1_depth_exposure | - | 已添加 | HDR 深度曝光 |
| hdr_index1_depth_gain | - | 已添加 | HDR 深度增益 |
| hdr_index1_ir_brightness | - | 已添加 | HDR 红外亮度 |
| hdr_index1_ir_ae_max_exposure | - | 已添加 | HDR 红外最大 AE |
| hdr_index0_laser_control | - | 已添加 | HDR 激光控制参数 |
| hdr_index0_depth_exposure | - | 已添加 | HDR 深度曝光 |
| hdr_index0_depth_gain | - | 已添加 | HDR 深度增益 |
| hdr_index0_ir_brightness | - | 已添加 | HDR 红外亮度 |
| hdr_index0_ir_ae_max_exposure | - | 已添加 | HDR 红外最大 AE |
| laser_index1_laser_control | - | 已添加 | 激光交错控制 |
| laser_index1_depth_exposure | - | 已添加 | 激光深度曝光 |
| laser_index1_depth_gain | - | 已添加 | 激光深度增益 |
| laser_index1_ir_brightness | - | 已添加 | 激光红外亮度 |
| laser_index1_ir_ae_max_exposure | - | 已添加 | 激光红外最大 AE |
| laser_index0_laser_control | - | 已添加 | 激光交错控制 |
| laser_index0_depth_exposure | - | 已添加 | 激光深度曝光 |
| laser_index0_depth_gain | - | 已添加 | 激光深度增益 |
| laser_index0_ir_brightness | - | 已添加 | 激光红外亮度 |
| laser_index0_ir_ae_max_exposure | - | 已添加 | 激光红外最大 AE |
| software_trigger_enabled | - | 已添加 | 软件触发启用 |
| enable_ptp_config | - | 已添加 | PTP 配置(Gemini 335Le) |
| align_target_stream | - | 已添加 | 对齐目标流 |
| spatial_fast_filter_radius | - | 已添加 | 快速空间滤波器半径 |
| spatial_moderate_filter_diff_threshold | - | 已添加 | 中等空间滤波器差异阈值 |
| spatial_moderate_filter_magnitude | - | 已添加 | 中等空间滤波器幅度 |
| spatial_moderate_filter_radius | - | 已添加 | 中等空间滤波器半径 |
| color.image_raw.enable_pub_plugins | - | 已添加 | 彩色图像传输插件 |
| depth.image_raw.enable_pub_plugins | - | 已添加 | 深度图像传输插件 |
| left_ir.image_raw.enable_pub_plugins | - | 已添加 | 左红外传输插件 |
| right_ir.image_raw.enable_pub_plugins | - | 已添加 | 右红外传输插件 |
| force_ip_enable | - | 已添加 | 强制 IP 功能 |
| force_ip_mac | - | 已添加 | 强制 IP MAC 地址 |
| force_ip_dhcp | - | 已添加 | DHCP 自动分配 |
| force_ip_address | - | 已添加 | 强制 IP 静态地址 |
| force_ip_subnet_mask | - | 已添加 | 强制 IP 子网掩码 |
| force_ip_gateway | - | 已添加 | 强制 IP 网关 |
**已移除参数(仅 main 有,v2-main 中已移除)**
| **参数** | **描述** |
| ------------------------------------ | ------------------------------------------------------------ |
| enable_3d_reconstruction_mode | 3D 重建模式已弃用 |
| enable_hardware_reset | 硬件重置接口已弃用 |
| enable_hardware_noise_removal_filter | 硬件噪声去除滤波器已弃用 |
| laser_on_off_mode | 旧激光开关接口,由 interleave / laser_index 替换 |
| enable_3d_reconstruction_mode | 3D 重建模式重复;v2-main 中不再使用 |
| device_preset | 部分逻辑迁移到新固件 / 交错参数 |
| enable_trigger_out | 旧软件触发接口由 software_trigger_enabled 替换 |
| retry_on_usb3_detection_failure | 可选;v2-main 中逻辑已调整或移除 |
| enable_color_undistortion | 旧接口逻辑集成到其他地方;v2-main 中仍存在但使用可能已调整 |
### **话题差异**
**v2-main** 在 main 基础上添加了以下话题:
| **话题** | **main** | **v2-main** | **描述** |
| --------------------- | -------- | ----------- | ------------------------------------------------------------ |
| /camera/device_status | - | 已添加 | 发布设备状态(帧率延迟、设备连接状态等) |
### **服务差异**
**v2-main** 在 main 基础上添加了以下服务:
| **服务** | **main** | **v2-main** | **描述** |
| ------------------------- | -------- | ----------- | ------------------------ |
| get_ptp_config | - | 已添加 | 获取 PTP 配置 |
| set_ptp_config | - | 已添加 | 设置 PTP 配置 |
| get_streams_enable | - | 已添加 | 获取每个流的启用状态 |
| set_streams_enable | - | 已添加 | 设置每个流的启用状态 |
| get_user_calib_params | - | 已添加 | 获取用户校准参数 |
| set_user_calib_params | - | 已添加 | 设置用户校准参数 |
| read_customer_data | - | 已添加 | 读取用户存储的自定义数据 |
| write_customer_data | - | 已添加 | 写入用户存储的自定义数据 |
| send_software_trigger | - | 已添加 | 发送软件触发 |
| set_color_ae_roi | - | 已添加 | 设置彩色图像的 AE ROI |
| set_depth_ae_roi | - | 已添加 | 设置深度图像的 AE ROI |
| set_color_flip | - | 已添加 | 设置彩色图像垂直翻转 |
| set_depth_flip | - | 已添加 | 设置深度图像垂直翻转 |
| set_color_rotation | - | 已添加 | 设置彩色图像旋转 |
| set_depth_rotation | - | 已添加 | 设置深度图像旋转 |
| set_left_ir_ae_roi | - | 已添加 | 设置左红外的 AE ROI |
| set_right_ir_ae_roi | - | 已添加 | 设置右红外的 AE ROI |
| set_left_ir_flip | - | 已添加 | 左红外垂直翻转 |
| set_right_ir_flip | - | 已添加 | 右红外垂直翻转 |
| set_left_ir_rotation | - | 已添加 | 左红外旋转 |
| set_right_ir_rotation | - | 已添加 | 右红外旋转 |
| set_reset_timestamp | - | 已添加 | 重置时间戳 |
| set_sync_hosttime | - | 已添加 | 同步主机时间 |
| set_sync_interleaverlaser | - | 已添加 | 交错激光同步 |
| set_filter | - | 已添加 | 设置深度/点云滤波器 |