# 参数

> **Pipeline AutoCalibration**
> 自ROS驱动版本3.2.1起，默认启用管道
> [自动校准](https://docs.luxonis.com/software-v3/depthai/depthai-components/host_nodes/auto_calibration.md)
> 。若要禁用它，请将
> `driver.i_pipeline_auto_calibration_mode`
> 设置为
> `OFF`
> 。

驱动程序可以通过大量参数进行配置。下面列出了每个节点的所有参数的说明，其中大部分与DepthAI C++/Python
API对应。以r_开头的参数可以在运行期间自由修改，例如使用rqt。以i_开头的参数在相机初始化时设置，要更改它们，您需要调用stop和start服务。这可用于在运行期间热插拔NN、更改分辨率等。

## 驱动程序

 * driver.i_publish_tf_from_calibration: true <bool> - 设置为true将启动TFPublisher
 * driver.i_tf_device_name: [NODE_NAME] <string> - 如果未设置，则默认为节点名称
 * driver.i_tf_device_model: '' <string> -
   如果未设置，将自动检测。如果节点无法检测到设备的STL文件，则将其设置为OAK-D-S2。要显式地在driver.launch.py中设置，请设置override_cam_model:=true
 * driver.i_tf_base_frame: oak <string> - 用作相机帧根的帧，通常与CAM_A（OAK-D系列的中心传感器）位于同一位置
 * driver.i_tf_parent_frame: oak_parent_frame <string> - 设置为您希望连接相机的帧（例如机器人末端执行器）
 * driver.i_tf_cam_pos_x: '0.0' <string> - 基座标系相对于父坐标系的位置
 * driver.i_tf_cam_pos_y: '0.0' <string> - 基座标系相对于父坐标系的位置
 * driver.i_tf_cam_pos_z: '0.0' <string> - 基座标系相对于父坐标系的位置
 * driver.i_tf_cam_roll: '0.0' <string> - 基座标系相对于父坐标系的方向
 * driver.i_tf_cam_pitch: '0.0' <string> - 基座标系相对于父坐标系的方向
 * driver.i_tf_cam_yaw: '0.0' <string> - 基座标系相对于父坐标系的方向 除TF发布相关参数外，driver还有以下附加参数：

 * i_usb_speed: SUPER <string> - USB速度，用于设置当前接口，会自动推断但可覆盖，例如显式使用SUPER_PLUS。可用选项：
   * LOW
   * FULL
   * HIGH (USB2)
   * SUPER (USB3)
   * SUPER_PLUS - 用于连接高速接口（如Thunderbolt），在某些情况下可能不稳定
 * i_device_id: "" <string> - 用于连接指定ID的设备
 * i_ip "" <string> - 用于连接指定IP的设备
 * i_usb_port_id: "" <string> - 用于连接指定USB端口上的设备
 * i_pipeline_dump: false <bool> - 是否将创建的管道转储到JSON文件（用于调试）
 * i_calibration_dump: false <bool> - 是否将校准数据转储到JSON文件
 * i_external_calibration_path: "" <string> - 用于覆盖设备校准
 * i_pipeline_auto_calibration_mode: "" <string or bool> -
   管道自动校准模式。空值保持DepthAI管道默认设置不变。设置为OFF可禁用自动校准。有效的字符串值为OFF、ON_START和CONTINUOUS。为了向后兼容，也接受布尔值：true映射到ON_START，false映射到OFF。
 * i_enable_ir : true <bool> - 是否启用红外投影仪
 * i_restart_on_diagnostics_error: false <bool> - 如果在管道中启用了诊断发布并且报告错误，则驱动程序将重新启动
 * i_rs_compat: false <bool> - 开启Realsense兼容性。主题、帧名称和参数名称将更改为反映RS相机。
 * r_laser_dot_intensity: 0.6 <float> <0.0-1.0> - 设置激光点投影仪强度。在USB相机中可能需要通过Y型适配器提供额外电源。
 * r_floodlight_intensity: 0.6 <float> <0.0-1.0> - 设置泛光灯投影仪强度。在USB相机中可能需要通过Y型适配器提供额外电源。

## 管道生成

参数名称以pipeline_gen开头

 * i_pipeline_type 可以是以下之一：
   * RGB - 仅发布RGB流，可用NN
   * RGBD - 发布RGB+深度流（设置左右相机的i_publish_topic以启用它们），可用NN和空间NN
   * Stereo - 发布左右传感器的流，可分别为每个传感器设置NN
   * RGBStereo - 发布RGB+左右流，可分别为每个传感器设置NN
   * Depth - 仅发布深度流，可通过参数在立体节点上设置NN
   * CamArray - 发布所有检测到的传感器的流，可分别为每个传感器设置NN
   * Tof - 仅发布TOF流，无可用的NN
   * DepthTof - 发布深度+TOF流，专用于OAK-D-SR-POE，可通过参数在立体节点上设置NN
   * StereoToF - 发布立体+TOF流，专用于OAK-D-SR-POE，可通过参数在立体节点上设置NN
   * RGBToF - 发布RGB+TOF流，专用于OAK-D-SR-POE，可通过参数在立体节点上设置NN
   * Thermal - 针对OAK-T相机，发布RGB+热成像流。
 * i_nn_type: spatial <string> - 与管道一起创建的NN类型
 * i_enable_imu: true <bool> - 是否在某些管道中启用IMU节点
 * i_enable_diagnostics: false <bool> - 是否启用诊断节点
 * i_enable_rgbd: false <bool> - 是否在某些管道中启用RGBD节点

## 图像传感器

传感器参数以 sensor_name.[PARAMETER_NAME] 开头，例如 rgb.i_width。

### 初始参数

 * i_board_socket_id <int> - 传感器的套接字 ID，主要用于对齐、标定和推断帧名称，每个传感器会自动检测，但可以覆盖
 * i_enable_feature_tracker: false <bool> - 为该传感器启用 FeatureTracker 节点
 * i_enable_nn: false <bool> - 为该传感器启用 NeuralNetwork
 * i_max_q_size: 8 <int> - 设置 DAI 队列大小
 * i_low_bandwidth: false <bool> - 设为 true 时，启用该传感器的 VideoEncoder，以改善相机到主机的延迟。默认情况下，DAI 编码帧（仅限 MJPEG 编码器；对于 H264，需启用
   i_publish_compressed 参数）会在主机端解码为 ROS Image 消息。
 * i_low_bandwidth_profile: 4 <int> - 使用的编码器类型。可用类型如下：
   * H264_BASELINE，
   * H264_HIGH，
   * H264_MAIN，
   * H265_MAIN，
   * MJPEG（默认值）
 * i_low_bandwidth_frame_freq: 30 <int> - 编码器的帧频率，用于 H26X 类型
 * i_low_bandwidth_bitrate: 0 <int> - 编码器的比特率，用于 H26X 类型
 * i_low_bandwidth_quality: 50 <int> - MJPEG 编码器的质量
 * i_publish_compressed: false <bool> - 不是将 DAI 编码帧转换为 ROS Image 消息，而是以相应的压缩图像格式发布（MJPEG 为 CompressedImage，H26X 类型为
   FFMPEGMsgs::FFMPPEGPacket）
 * i_get_base_device_timestamp: false <bool> - 控制获取的数据的 DAI 时间戳是否与主机同步（时间戳本身仍与 ROS 时间对齐）
 * i_calibration_file: "" <string> - 用于用 ROS 标定覆盖 DAI 标定
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统中出现时间偏移（例如系统时钟被外部控制），请启用此项
 * i_enable_lazy_publisher: true <bool> - 是否仅在检测到 image/camera_info 话题有订阅时才发布数据
 * i_add_exposure_offset: false <bool> - 是否将曝光偏移添加到 ROS 时间戳
 * i_exposure_offset: 0 <int> - 曝光偏移类型：
   * START
   * MIDDLE
   * END
 * i_reverse_stereo_socket_order: false <bool> - 更多信息请参见下方“立体声套接字顺序”部分
 * i_synced: :false <bool> - 是否将输出添加到同步输出组，所有同步的发布者将以相同时间戳发布图像
 * i_publish_topic: true/false <bool> - 是否在 ROS 话题上发布，默认为 true（位于 CAM_A 套接字上的传感器），否则为 false
 * i_publish_full_resolution: false <bool> - 是否发布全分辨率图像
 * i_use_max_resolution_possible: false <bool> - 是否使用可能的最大分辨率
 * i_width: 640 <int> - 图像宽度
 * i_height: 400 <int> - 图像高度
 * i_fps: 30.0 <float> - 传感器帧率
 * i_undistorted: true <bool> - 是否对图像进行去畸变
 * i_resize_mode: "CROP" <string> - 去畸变时使用的缩放类型，更多信息请参考 DAI Camera 节点，可选值：
   * CROP
   * LETTERBOX
   * STRETCH
 * i_fsync_continuous: false <bool> - 是否设置帧同步模式。如果启用，则使用 i_fsync_mode 参数设置模式
 * i_fsync_mode: "INPUT" <string> - FSync 模式类型，可选值：
   * OFF
   * OUTPUT
   * INPUT
 * i_fsync_trigger: false <bool> - 是否使用外部触发进行图像采集
 * i_num_frames_burst: 1 <int> - 触发 burst 中的帧数
 * i_num_frames_discard: 0 <int> - 初始 burst 中要丢弃的帧数（这些帧可能质量较差）

### 运行时参数

 * r_iso: 800 <int> <100-1600> - 设置手动曝光时的 ISO 值，需设置 r_set_man_exposure 以生效
 * r_exposure: 1000 <int> <1-33000> - 设置手动曝光时的曝光值，需设置 r_set_man_exposure 以生效
 * r_set_man_exposure: false <bool> - 是否设置手动曝光
 * r_set_autoexposure_limit: false <bool> - 是否限制自动曝光
 * r_auto_exposure_limit: 1000 <int> - 自动曝光限制值
 * r_set_man_focus: false <bool> - 是否设置手动对焦
 * r_focus: 1 <int> <1-255> - 对焦值
 * r_set_man_whitebalance: false <bool> - 是否设置手动白平衡
 * r_whitebalance: 3000 <int> <1000-12000> - 手动白平衡值
 * r_set_sharpness: false <bool> - 是否手动设置锐度
 * r_sharpness: 1 <int> <1-4> - 锐度级别
 * r_set_chroma_denoise: false <bool> - 是否手动设置色度降噪
 * r_chroma_denoise: 1 <int> <1-4> - 色度降噪级别
 * r_set_luma_denoise: false <bool> - 是否手动设置亮度降噪
 * r_luma_denoise: 1 <int> <1-4> - 亮度降噪级别
 * r_set_auto_exp_region: false <bool> - 是否使用图像的一部分来控制曝光
 * r_auto_exp_region_start_x: 0 <int> - 用于自动曝光的矩形起点 X（图像坐标，即 X 向右，Y 向下）
 * r_auto_exp_region_start_y: 0 <int> - 用于自动曝光的矩形起点 Y（图像坐标，即 X 向右，Y 向下）
 * r_auto_exp_region_width: 0 <int> - 自动曝光区域的宽度
 * r_auto_exp_region_height: 0 <int> - 自动曝光区域的高度

## 立体视觉参数

### 深度对齐

当设置 stereo.aligned: true 时，立体视觉输出会与 stereo.i_board_socket_id 参数指定的板载接口（默认为 0/CAM_A）对齐。

您可以通过设置（例如在右流的情况下）i_publish_right_rect: true 来启用矫正后的立体视觉流。

### 立体视觉套接字顺序

默认情况下，右摄像头在使用立体计算时被视为第一个，这反映在 CameraInfo 消息中。如果您想反转该逻辑，请设置 stereo.i_reverse_stereo_socket_order: true（也可以针对单个传感器进行设置）。

### 自定义传感器接口

用于计算立体视觉对的传感器配置既可以通过编程方式完成（例如在构建自定义流水线时在 Stereo 节点的构造函数中指定），也可以通过参数 stereo.i_left_socket_id/stereo.i_right_socket_id
完成。请注意，目前如果您想使用 rgb/center 接口代替给定的一对接口中的某一个，您需要为此构建自定义流水线。

### 参数

关于滤波器的更多信息，请访问[配置立体深度](https://docs.luxonis.com/software-v3/depthai/depthai-components/nodes/stereo_depth.md)

 * i_max_q_size: 30 <int> - 设置DAI队列大小

 * i_fps: 30.0 <float> - 立体帧率

 * i_low_bandwidth: false <bool> - 请参考Sensor节点中的参数描述。注意 该参数与i_subpixel参数不兼容。

 * i_low_bandwidth_profile: 4 <int> - 使用的编码器类型。可用类型如下：
   
   * H264_BASELINE,
   * H264_HIGH,
   * H264_MAIN,
   * H265_MAIN,
   * MJPEG（默认）

 * i_low_bandwidth_frame_freq: 30 <int> - 编码器的帧频率，用于H26X类型

 * i_low_bandwidth_bitrate: 0 <int> - 编码器的比特率，用于H26X类型

 * i_low_bandwidth_quality: 50 <int> - MJPEG编码器的质量

 * i_get_base_device_timestamp: false <bool> - 控制获取的数据的DAI时间戳是否与主机同步（时间戳本身仍与ROS时间对齐）

 * i_calibration_file: "" <string> - 用于用ROS标定覆盖DAI标定

 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统中存在时间偏移（例如系统时钟受外部控制时），请启用此选项

 * i_enable_lazy_publisher: true <bool> - 是否仅在检测到图像/camera_info话题上有订阅时才发布数据

 * i_add_exposure_offset: false <bool> - 是否将曝光偏移添加到ROS时间戳

 * i_exposure_offset: 0 <int> - 曝光偏移类型：
   
   * START（开始）
   * MIDDLE（中间）
   * END（结束）

 * i_reverse_stereo_socket_order: false <bool> - 更多信息请参见下方的立体插座顺序章节

 * i_synced: :false <bool> - 是否将输出添加到同步输出组，所有同步的发布者将以相同时间戳发布图像

 * i_publish_topic: true/false <bool> - 是否在ROS话题上发布，默认在CAM_A插座上的传感器为true，否则为false

 * i_output_disparity: false <bool> - 是否输出视差而非深度

 * i_enable_left_spatial_nn: false <bool> - 是否将左侧传感器作为RGB源创建空间神经网络

 * i_enable_right_spatial_nn: false <bool> - 是否将右侧传感器作为RGB源创建空间神经网络

 * i_enable_left_rgbd: false <bool> - 是否将左侧传感器作为RGB源创建RGBD节点

 * i_enable_right_rgbd: false <bool> - 是否将右侧传感器作为RGB源创建RGBD节点

 * i_aligned: true <bool> - 是否将立体节点对齐到i_board_socket_id

 * i_run_align_on_host: true <bool> - 是否在主机上运行对齐节点（仅适用于RVC4情况）

 * i_depth_preset: FAST_ACCURACY <string> - 应用的默认深度预设类型。警告
   对于FAST_ACCURACY以外的类型，其他立体滤波参数可能被覆盖。此外，某些情况下会应用降采样滤波器，导致最终图像尺寸减小，并且增加的处理可能会减少与其他任务（例如RVC2设备上的神经网络）共享的可用资源。可用的设置如下：
   
   * FAST_ACCURACY（快速精确）
   * DEFAULT（默认）
   * FACE（人脸）
   * HIGH_DETAIL（高细节）
   * ROBOTICS（机器人）

 * i_enable_distortion_correction: true <bool> - 切换输出流上的畸变校正

 * i_set_disparity_to_depth_use_spec_translation: false <bool> - 是否使用CAD数据中的基线，而非标定数据

 * i_bilateral_sigma: 0 <int> <0-65535> - 双边滤波sigma值。该值越大，像素邻域内较远的颜色混合越充分，导致大范围半均匀色块。

 * i_lrc_threshold: 10 <int> <0-255> - 左右、右左视差图组合的阈值。

 * i_stereo_conf_threshold: 15 <int> <0-255> - 视差计算的置信度阈值。值越高，丢弃的深度值越多。

 * i_subpixel: true <bool> - 使用亚像素插值计算视差（默认3个分数位，适用于远距离。目前与扩展视差和低带宽模式不兼容。启用subpixel会输出更多深度值（点云中可见的“阶梯”更少），但会消耗更多带宽和资源。某些深度预设会自动启用。

 * i_subpixel_fractional_bits: 3 <int> <3-5> - 定义分数视差的数量：2^x

 * i_rectify_edge_fill_color: 0 <int> <-1-255> - 边缘缺失数据的填充颜色。0-255用于灰度，或-1用于复制像素

 * i_enable_alpha_scaling: false <bool> - 启用alpha缩放。

 * i_alpha_scaling: 0.0 <float> -
   alpha缩放参数。这是一个自由缩放参数，介于0（未失真图像中的所有像素有效）和1（未失真图像中保留所有源图像像素）之间。在一些高畸变镜头和/或由于校正（图像旋转）导致的无效区域，即使alpha=0也可能出现无效区域，在这些情况下，alpha <
   0.0有助于去除无效区域。

 * i_disparity_width: DISPARITY_96 <string> - 视差搜索范围。取值：
   
   * DISPARITY_64
   * DISPARITY_96

 * i_extended_disp: false <bool> - 视差范围从0-95扩展到0-190，结合全分辨率和降采样图像。适用于近距离物体。目前与亚像素视差不兼容。

 * i_enable_companding: false <bool> -
   使用稀疏匹配启用视差压缩。对N个视差逐像素匹配。对M个视差每隔一个像素匹配。对T个视差每隔四个像素匹配。对于96视差：N=48，M=32，T=16。通过稀疏匹配，搜索范围扩展到176个视差。注意，启用此标志时，仅深度图会受影响，视差图不会。

 * i_enable_temporal_filter: false <bool> - 启用时间滤波器。

 * i_temporal_filter_alpha: 0.4 <float> <0.0-1.0> - 指数移动平均中的alpha因子，Alpha=1表示无滤波。Alpha=0表示无限滤波。决定平均的时间历史程度。

 * i_temporal_filter_delta: 20 <int> -
   步长边界。建立用于保留“边缘”的阈值。如果相邻像素之间的视差值超过此delta参数设置的视差阈值，则滤波将暂时禁用。默认值0表示自动：3个视差整数等级。在亚像素模式下，为3乘以亚像素等级数。

 * i_temporal_filter_persistency: VALID_2_IN_LAST_4 <string> - 持久性模式。如果当前视差/深度值无效，将根据持久性模式替换为较旧的值。有效值：
   
   * PERSISTENCY_OFF（关闭持久性）
   * VALID_8_OUT_OF_8（最近8帧中8帧有效）
   * VALID_2_IN_LAST_3（最近3帧中2帧有效）
   * VALID_2_IN_LAST_4（最近4帧中2帧有效）
   * VALID_2_OUT_OF_8（最近8帧中2帧有效）
   * VALID_1_IN_LAST_2（最近2帧中1帧有效）
   * VALID_1_IN_LAST_5（最近5帧中1帧有效）
   * VALID_1_IN_LAST_8（最近8帧中1帧有效）
   * PERSISTENCY_INDEFINITELY（无限持久性）

 * i_enable_speckle_filter: false <bool> - 启用散斑滤波器。

 * i_speckle_filter_speckle_range: 50 <int> - 散斑搜索范围。

 * i_enable_disparity_shift: false <bool> -
   将输入帧偏移若干像素以增加最小深度。例如，偏移48将使有效视差搜索范围从(0,95]变为[48,143]。这是一种减小minZ的替代方法。通常仅当已知不会有比MaxZ更远的物体时推荐使用，例如深度摄像头安装在桌子上方指向桌面时。

 * i_disparity_shift: 0 <int> - 视差偏移值。

 * i_enable_spatial_filter: false <bool> - 启用空间滤波器。

 * i_spatial_filter_hole_filling_radius: 2 <int> - 一种就地启发式对称孔填充模式，在滤波过程中水平应用。旨在以最小的性能影响修正微小伪影。孔填充的搜索半径。

 * i_spatial_filter_alpha: 0.5 <float> - 指数移动平均中的 Alpha 因子，Alpha=1 表示无滤波，Alpha=0 表示无限滤波。决定平滑程度。

 * i_spatial_filter_delta: 20 <int> - 类似于时域滤波中的 delta。

 * i_spatial_filter_num_iterations: 1 <int> - 在图像的水平方向和垂直方向上的迭代次数。

 * i_enable_threshold_filter: false <bool> - 启用阈值滤波

 * i_threshold_filter_min_range: 400 <int> - 深度单位（mm）的最小范围。低于此值的深度值将被视为无效。

 * i_threshold_filter_max_range: 15000 <int> - 深度单位的最大范围。高于此值的深度值将被视为无效。

 * i_enable_brightness_filter: false <bool> - 启用亮度滤波

 * i_brightness_filter_min_brightness: 0 <int> - 最小像素亮度。如果输入像素亮度小于或等于此值，则深度值无效。

 * i_brightness_filter_max_brightness: 255 <int> - 最大像素亮度。如果输入像素亮度大于或等于此值，则深度值无效。

 * i_enable_decimation_filter: false <bool> - 启用降采样滤波。影响最终图像大小。

 * i_decimation_filter_decimation_mode: PIXEL_SKIPPING <string> - 降采样算法类型。可选值：
   
   * PIXEL_SKIPPING
   * NON_ZERO_MEDIAN
   * NON_ZERO_MEAN

 * i_decimation_filter_decimation_factor: 1 <int> <1-4> - 有效值为 1、2、3、4。视差/深度图的 x/y 分辨率将按此值降采样。

 * i_use_neural_depth: false <bool> - 是否使用神经深度代替常规立体视觉（仅在 RVC4 上可用）

 * i_neural_depth_model: NEURAL_DEPTH_SMALL <string> - 神经深度类型。可用类型如下：
   
   * NEURAL_DEPTH_LARGE
   * NEURAL_DEPTH_MEDIUM
   * NEURAL_DEPTH_SMALL
   * NEURAL_DEPTH_NANO

 * r_edge_threshold: 10 <int> - 神经深度的边缘阈值

 * r_confidence_threshold: 125 <int> - 神经深度的置信度阈值

 * 以下参数对于左右校正流相同，为简洁起见，下面仅列出左侧的参数：
   
   * i_publish_left_rect: false <bool> - 是否发布校正后的左流
   * i_left_rect_low_bandwidth: false <bool> - 左校正低带宽配置文件
   * i_left_rect_low_bandwidth_profile: 4 <int> - 左校正 LB 配置文件
   * i_left_rect_low_bandwidth_frame_freq: 30 <int> - 左校正 LB 帧率
   * i_left_rect_low_bandwidth_bitrate: 0 <int> - 左校正 LB 比特率
   * i_left_rect_low_bandwidth_quality: 50 <int> - 左校正 LB 质量
   * i_left_rect_publish_compressed: false <bool> - 是否为左校正发布压缩图像
   * i_left_rect_add_exposure_offset: false <bool> - 左校正添加曝光偏移
   * i_left_rect_exposure_offset: 0 <int> - 左校正曝光偏移设置
   * i_left_rect_enable_feature_tracker: false <bool> - 是否为校正后的左图添加特征跟踪器
   * i_left_rect_synced: false <bool> - 是否将左校正与其他流同步

## 特征跟踪器

每个传感器节点（以及来自立体节点的校正流）都可以选择添加 FeatureTracker 节点，该节点发布 depthai_ros_msgs/msg/TrackedFeatures 消息。 例如，要在 rgb 节点上启用特征，请设置 rgb:
i_enable_feature_tracker: true。要在校正流上启用发布， 请设置例如 stereo: i_left_rect_enable_feature_tracker。

### 参数

 * i_motion_estimation_type: LUKAS_KANADE_OPTICAL_FLOW <string> - 运动估计器类型，可以是：
   * LUKAS_KANADE_OPTICAL_FLOW
   * HW_MOTION_ESTIMATION
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统出现时间偏移（例如系统时钟由外部控制的情况），请启用此选项
 * i_get_base_device_timestamp: false <bool> - 控制获取的 DAI 时间戳是否与主机同步（时间戳本身仍对齐到 ROS 时间）

## IMU

### 参数：

 * i_max_q_size: 8 <int> - 设置 DAI 队列大小
 * i_acc_freq: 480 <int> - 加速度计传感器频率
 * i_acc_cov: 0.0 <float> - 加速度计协方差
 * i_batch_report_threshold: 5 <int> - 批量报告大小
 * i_enable_rotation: false <bool> - 是否启用旋转向量和磁力计数据（使用 IMU_WITH_MAGN/ IMU_WITH_MAGN_SPLIT 消息类型和 BNO086 传感器时可用）
 * i_gyro_cov: 0.0 <float> - 陀螺仪协方差
 * i_gyro_freq: 400 <int> - 陀螺仪频率
 * i_mag_cov: 0.0 <float> - 磁力计协方差
 * i_mag_freq: 100 <int> - 磁力计频率
 * i_max_batch_reports: 10 <int> - 每批最大报告数
 * i_message_type: IMU <string> - ROS 发布器类型：
   * IMU - sensor_msgs/Imu
   * IMU_WITH_MAG - depthai_ros_msgs/ImuWithMagneticField
   * IMU_WITH_MAG_SPLIT - 两个发布器 - sensor_msgs/Imu 和 sensor_msgs/MagneticField
 * i_rot_cov: -1.0 <float> - 旋转协方差
 * i_rot_freq: 400 <int> - 旋转频率
 * i_sync_method: COPY <string> - 同步方法。可用选项（警告：目前 RVC4 设备仅支持 COPY）：
   * COPY
   * LINEAR_INTERPOLATE_GYRO
   * LINEAR_INTERPOLATE_ACCEL
 * i_rotation_vector_type <string> - 旋转向量类型，更多信息请参考[此链接](https://docs.luxonis.com/software/depthai-components/nodes/imu.md)。可用选项：
   * ROTATION_VECTOR
   * GAME_ROTATION_VECTOR
   * GEOMAGNETIC_ROTATION_VECTOR
   * ARVR_STABILIZED_ROTATION_VECTOR
   * ARVR_STABILIZED_GAME_ROTATION_VECTOR
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统出现时间偏移（例如系统时钟由外部控制的情况），请启用此选项
 * i_get_base_device_timestamp: false <bool> - 控制获取的 DAI 时间戳是否与主机同步（时间戳本身仍对齐到 ROS 时间）

## 神经网络

在大多数流水线类型中，都可以轻松启用神经网络。

 * camera.i_nn_type 可以是 none（无 NN）、rgb 或 spatial。这决定了加载的 NN 是否也应接收深度信息（例如提供 3D 格式的检测结果）。默认设置为 spatial。

### 参数

 * i_nn_family: detection <string> - 设置我们想要使用的神经网络类型。目前可用选项有：
   * detection
   * segmentation（目前仅限 RVC2）
 * i_nn_model: yolov6-nano <string> - 选择要加载的模型，驱动程序启动时会自动从网络下载模型，类似于 DepthAI C++/Python 示例。
 * i_nn_confidence_threshold: 0.5 <float> - 神经网络置信度阈值
 * i_nn_depth_lower_threshold: 100 <int> -（仅限空间检测）检测的下限深度阈值（单位：毫米）
 * i_nn_depth_upper_threshold: 10000 <int> -（仅限空间检测）检测的上限深度阈值（单位：毫米）
 * i_enable_passthrough: false <bool> - 是否发布 RGB 直通图像
 * i_enable_passthrough_depth: false <bool> - 是否发布深度直通图像
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果您的系统出现时间偏移（例如系统时钟受外部控制的情况），请启用此选项
 * i_get_base_device_timestamp: false <bool> - 控制从数据获取的 DAI 时间戳是否与主机同步（时间戳本身仍与 ROS 时间对齐）
 * i_bounding_box_scale_factor: 0.5 <float> <0.0-1.0> - 检测的边界框缩放因子
 * i_max_q_size: 8 <int> - 设置 DAI 队列大小

您也可以选择在特定传感器上运行神经网络，只需将 sensor_name.i_enable_nn 设置为 true。之后，可以类似地将 sensor_name_nn.i_nn_model 设置为配置文件的路径。

您还可以为立体节点设置空间神经网络，并使用其左/右流之一作为 RGB 输入。这可以在带有 RGB 侧面传感器的相机上启用，例如 OAK-D-SR 和 OAK-D-LR。设置方式类似：

 * stereo.i_enable_left_spatial_nn - 设置为 true 以启用以左传感器作为输入的空间神经网络

## 同步

目前，您可以使用同步节点包装器同步任意数量的图像主题。要创建同步节点，请设置 pipeline_gen: i_enable_sync: true，并例如设置 rgb.i_synced: true 和 stereo.i_synced: true。使用
pointcloud.enable:=true 参数运行 driver.launch.py 时，将应用此示例配置。

### 参数

 * i_sync_threshold: 10 <int> - 设置组内消息之间的最大间隔（单位：毫秒）。
 * i_sync_attempts: 10 <int> - 同步尝试次数

## ToF

ToF 节点在 ToF、RgbTof、StereoToF 和 DepthTof 流水线中可用。其参数与常规相机节点类似。

### 参数

 * i_publish_topic: true <bool> - 是否发布主题
 * i_max_q_size: 8 <int> - 设置 DAI 队列大小
 * i_low_bandwidth: false <bool> - 请参考 Sensor 节点中的参数描述。注意：此参数与 i_subpixel 参数不兼容。
 * i_low_bandwidth_profile: 4 <int> - 使用的编码器类型。可用类型如下：
   * H264_BASELINE，
   * H264_HIGH，
   * H264_MAIN，
   * H265_MAIN，
   * MJPEG（默认）
 * i_low_bandwidth_frame_freq: 30 <int> - 编码器的帧频率，用于 H26X 类型
 * i_low_bandwidth_bitrate: 0 <int> - 编码器的比特率，用于 H26X 类型
 * i_low_bandwidth_quality: 50 <int> - MJPEG 编码器的质量
 * i_get_base_device_timestamp: false <bool> - 控制从数据获取的 DAI 时间戳是否与主机同步（时间戳本身仍与 ROS 时间对齐）
 * i_calibration_file: "" <string> - 用于使用 ROS 校准覆盖 DAI 校准
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果您的系统出现时间偏移（例如系统时钟受外部控制的情况），请启用此选项
 * i_enable_lazy_publisher: true <bool> - 是否仅当在图像/相机信息主题上检测到订阅时才发布数据
 * i_publish_compressed: false <bool> - 是否发布压缩图像
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果您的系统出现时间偏移（例如系统时钟受外部控制的情况），请启用此选项
 * i_get_base_device_timestamp: false <bool> - 控制从数据获取的 DAI 时间戳是否与主机同步（时间戳本身仍与 ROS 时间对齐）
 * i_add_exposure_offset: false <bool> - 是否向 ROS 时间戳添加曝光偏移
 * i_exposure_offset: 0 <int> - 曝光偏移类型：
   * START
   * MIDDLE
   * END
 * i_width: 640 <int> - 图像宽度
 * i_height: 400 <int> - 图像高度
 * i_fps: 30 <int> - 图像帧率
 * i_aligned :false <bool> - 是否将图像对齐到其他传感器
 * i_aligned_socket_id: "" <string> - 图像对齐到的套接字
 * i_run_align_on_host: true <bool> - 是否在主机上运行对齐节点（仅适用于 RVC4）
 * i_synced: :false <bool> - 是否将输出添加到同步输出组，所有同步的发布者将发布具有相同时间戳的图像
 * i_preset_mode: TOF_MID_RANGE <string> - 图像滤波的预设模式

## 热成像

热成像相机的工作方式与相机节点类似，并提供一些额外的运行时参数可设置。

### 参数

 * i_publish_topic: true <bool> - 是否发布主题
 * i_max_q_size: 8 <int> - 设置 DAI 队列大小
 * i_low_bandwidth: false <bool> - 请参考 Sensor 节点中的参数描述。注意：此参数与 i_subpixel 参数不兼容。
 * i_low_bandwidth_profile: 4 <int> - 使用的编码器类型。可选类型如下：
   * H264_BASELINE
   * H264_HIGH
   * H264_MAIN
   * H265_MAIN
   * MJPEG（默认）
 * i_low_bandwidth_frame_freq: 30 <int> - 编码器的帧频率，用于 H26X 类型
 * i_low_bandwidth_bitrate: 0 <int> - 编码器的比特率，用于 H26X 类型
 * i_low_bandwidth_quality: 50 <int> - MJPEG 编码器的质量
 * i_get_base_device_timestamp: false <bool> - 控制获取的数据的 DAI 时间戳是否同步到主机（时间戳本身仍对齐到 ROS 时间）
 * i_calibration_file: "" <string> - 用于用 ROS 标定覆盖 DAI 标定
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统中出现时间偏移（例如系统时钟受外部控制的情况），请启用此参数
 * i_enable_lazy_publisher: true <bool> - 是否仅在检测到图像/camera_info 主题有订阅时才发布数据
 * i_publish_compressed: false <bool> - 是否发布压缩图像
 * i_add_exposure_offset: false <bool> - 是否在 ROS 时间戳中添加曝光偏移
 * i_exposure_offset: 0 <int> - 曝光偏移类型：
   * START
   * MIDDLE
   * END
 * i_width: 640 <int> - 图像宽度
 * i_height: 400 <int> - 图像高度
 * i_fps: 30.0 <float> - 图像帧率
 * i_aligned: false <bool> - 是否将图像对齐到其他传感器
 * i_aligned_socket_id: "" <string> - 要对齐到的传感器插槽
 * i_run_align_on_host: true <bool> - 是否在主机上运行对齐节点（仅适用于 RVC4）
 * i_synced: false <bool> - 是否将输出添加到同步输出组，所有同步的发布者将发布具有相同时间戳的图像
 * i_orientation: NORMAL <string> - 图像方向。可用选项：
   * NORMAL
   * MIRROR
   * FLIP
   * MIRROR_FLIP
 * r_auto_ffc: false <bool> - 自动平场校正。控制快门是否由传感器模块自动控制。
 * r_close_manual_shutter: false <bool> - 设置为 True/False 可在禁用 autoFFC 时关闭/打开快门。
 * r_brightness_level: 0 <int> <0-255> - 图像亮度级别。
 * r_time_noise_filter_level: 0 <int> <0-3> - 时间噪声滤波级别。滤除随时间出现的噪声。

## RGBD

RGBD 节点可通过启用 pipeline_gen.i_enable_rgbd 参数，或在 Stereo 节点中设置 i_enable_left/right_rgbd，在某些流水线中开启。

### 参数

 * i_publish_topic: true <bool> - 是否发布主题
 * i_max_q_size: 2 <int> - 设置 DAI 队列大小
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统中出现时间偏移（例如系统时钟受外部控制的情况），请启用此参数
 * i_get_base_device_timestamp: false <bool> - 控制获取的数据的 DAI 时间戳是否同步到主机（时间戳本身仍对齐到 ROS 时间）
 * i_num_threads: 1 <int> - RGBD 节点使用的线程数
 * i_run_sync_on_host: true <bool> - 是否在主机上同步消息
 * i_run_align_on_host: true <bool> - 是否在主机上运行对齐节点（仅适用于 RVC4）

## VIO

VIO 节点可通过启用 pipeline_gen.i_enable_vio 参数，在某些流水线中开启。

### 参数

 * i_publish_topic: true <bool> - 是否发布主题
 * i_max_q_size: 2 <int> - 设置 DAI 队列大小
 * i_update_ros_base_time_on_ros_msg: false <bool> - 如果系统中出现时间偏移（例如系统时钟受外部控制的情况），请启用此参数
 * i_get_base_device_timestamp: false <bool> - 控制获取的数据的 DAI 时间戳是否同步到主机（时间戳本身仍对齐到 ROS 时间）
 * i_run_sync_on_host: true <bool> - 是否在主机上同步消息
 * i_imu_update_rate: 400 <int> - IMU 消息更新速率
 * i_width: 640 <int> - 图像宽度
 * i_height: 400 <int> - 图像高度
 * i_fps: 60.0 <float> - 图像帧率
 * i_config_path: 'depthai_ros_driver_default.json' <string> - 使用的 config.json 的完整路径；当使用默认值时，将使用 depthai_ros_driver/config/custom
   中的配置
 * i_override_local_transform: false <bool> - 是否覆盖局部变换，启用后可以设置以下参数：
   * i_local_transform_x: 0.0 <float> - X 位置
   * i_local_transform_y: 0.0 <float> - Y 位置
   * i_local_transform_z: 0.0 <float> - Z 位置
   * i_local_transform_qx: 0.0 <float> - 四元数的 X 分量
   * i_local_transform_qy: 0.0 <float> - 四元数的 Y 分量
   * i_local_transform_qz: 0.0 <float> - 四元数的 Z 分量
   * i_local_transform_qw: 0.0 <float> - 四元数的 w 分量
 * i_override_imu_extrinsics: false <bool> - 是否用其他值覆盖 IMU 外参：
   * i_imu_extr_x: 0.0 <float> - X 位置
   * i_imu_extr_y: 0.0 <float> - Y 位置
   * i_imu_extr_z: 0.0 <float> - Z 位置
   * i_imu_extr_qx: 0.0 <float> - 四元数的 X 分量
   * i_imu_extr_qy: 0.0 <float> - 四元数的 Y 分量
   * i_imu_extr_qz: 0.0 <float> - 四元数的 Z 分量
   * i_imu_extr_qw: 0.0 <float> - 四元数的 w 分量
 * i_set_acc_bias: false <bool> - 覆盖默认加速度计偏置
 * i_accel_bias: 9x0.0 <vector<double>> - 加速度计偏置
 * i_set_acc_noise_std: false <bool> - 覆盖加速度计的标准噪声
 * i_acc_noise_std: 3x0.0 <vector<double>> - 加速度计标准噪声
 * i_set_gyro_bias: false <bool> - 覆盖默认陀螺仪偏置
 * i_gyro_bias: 9x0.0 <vector<double>> - 陀螺仪偏置
 * i_set_gyro_noise_std: false <bool> - 覆盖陀螺仪的标准噪声
 * i_gyro_noise_std: 3x0.0 <vector<double>> - 陀螺仪标准噪声
 * i_publish_tf: true <bool> - 是否也发布 TF 坐标系
 * i_frame_id: odom <string> - 消息的坐标系 ID
 * i_child_frame_id: oak_parent_frame <string> - 子坐标系 ID
 * i_covariance: 36x0.0 <vector<double>> - 消息的协方差
