Version

4.2. 可用服务

注意: 与特定数据流相关的服务(例如 /camera/set_color_*)仅在启动文件中启用该数据流时可用(例如 enable_color:=true)。

4.2.1. 数据流控制

4.2.1.1. 彩色流

  • /camera/toggle_color

    ros2 service call /camera/toggle_color std_srvs/srv/SetBool '{data: true}'
    
  • /camera/get_color_exposure & /camera/get_color_gain

    ros2 service call /camera/get_color_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
    ros2 service call /camera/get_color_gain orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_color_auto_exposure

    ros2 service call /camera/set_color_auto_exposure std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_color_exposure & /camera/set_color_gain

    ros2 service call /camera/set_color_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 1}'
    ros2 service call /camera/set_color_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
    
  • /camera/set_color_mirror, /camera/set_color_flip, /camera/set_color_rotation

    ros2 service call /camera/set_color_mirror std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_color_flip std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_color_rotation orbbec_camera_msgs/srv/SetInt32 '{data: 180}'
    
  • /camera/set_color_ae_roi

    # data_param: [左, 右, 上, 下]
    ros2 service call /camera/set_color_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,1279,0,719]}'
    

4.2.1.2. 深度流

  • /camera/toggle_depth

    ros2 service call /camera/toggle_depth std_srvs/srv/SetBool '{data: true}'
    
  • /camera/get_depth_exposure & /camera/get_depth_gain

    ros2 service call /camera/get_depth_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
    ros2 service call /camera/get_depth_gain orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_depth_auto_exposure

    ros2 service call /camera/set_depth_auto_exposure std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_depth_exposure & /camera/set_depth_gain

    ros2 service call /camera/set_depth_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 3000}'
    ros2 service call /camera/set_depth_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
    
  • /camera/set_depth_mirror, /camera/set_depth_flip, /camera/set_depth_rotation

    ros2 service call /camera/set_depth_mirror std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_depth_flip std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_depth_rotation orbbec_camera_msgs/srv/SetInt32 '{data: 180}'
    
  • /camera/set_depth_ae_roi

    # data_param: [左, 右, 上, 下]
    ros2 service call /camera/set_depth_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,847,0,479]}'
    

4.2.1.3. 红外流

  • /camera/toggle_ir

    ros2 service call /camera/toggle_ir std_srvs/srv/SetBool '{data: true}'
    
  • /camera/get_ir_exposure & /camera/get_ir_gain

    ros2 service call /camera/get_ir_exposure orbbec_camera_msgs/srv/GetInt32 '{}'
    ros2 service call /camera/get_ir_gain orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_ir_long_exposure

    ros2 service call /camera/set_ir_long_exposure std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_ir_auto_exposure

    ros2 service call /camera/set_ir_auto_exposure std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_ir_exposure & /camera/set_ir_gain

    ros2 service call /camera/set_ir_exposure orbbec_camera_msgs/srv/SetInt32 '{data: 3000}'
    ros2 service call /camera/set_ir_gain orbbec_camera_msgs/srv/SetInt32 '{data: 64}'
    
  • /camera/set_ir_mirror, /camera/set_ir_flip, /camera/set_ir_rotation

    ros2 service call /camera/set_ir_mirror std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_ir_flip std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/set_ir_rotation orbbec_camera_msgs/srv/SetInt32 '{data: 180}'
    
  • /camera/switch_ir

    ros2 service call /camera/switch_ir orbbec_camera_msgs/srv/SetString '{data: left}'
    

4.2.1.4. 所有数据流

  • /camera/get_streams_enable & /camera/set_streams_enable

    ros2 service call /camera/get_streams_enable orbbec_camera_msgs/srv/GetBool '{}'
    ros2 service call /camera/set_streams_enable std_srvs/srv/SetBool '{data: false}'
    

4.2.2. 运行时数据流配置

  • /camera/set_stream_profile

    用于在节点运行期间切换一个或多个已启用图像流的 Profile。stream_name 支持 colorleft_colorright_colordepthirleft_irright_ir。宽、高、帧率或格式可以只填写需要修改的字段;未修改的数值字段填写 0,格式填写空字符串。切换时节点会停止并重新启动数据流;如果目标 Profile 已经生效,服务会返回失败。

    ros2 service call /camera/set_stream_profile orbbec_camera_msgs/srv/SetStreamProfile "{profiles: [{stream_name: color, width: 1280, height: 720, fps: 30, format: MJPG}]}"
    
  • /camera/set_image_registration_mode

    运行时切换深度和彩色图像对齐模式。可选值为 OFFHW_D2CSW_D2CSW_C2D,大小写不敏感。除 OFF 外,彩色流和深度流必须同时启用。切换时节点会自动重启数据流;失败时会恢复原对齐模式。

    ros2 service call /camera/set_image_registration_mode orbbec_camera_msgs/srv/SetString "{data: HW_D2C}"
    

4.2.3. 传感器与发射器控制

  • /camera/set_auto_white_balance & /camera/get_auto_white_balance

    ros2 service call /camera/set_auto_white_balance std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/get_auto_white_balance orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_white_balance & /camera/get_white_balance

    ros2 service call /camera/set_white_balance orbbec_camera_msgs/srv/SetInt32 '{data: 2800}'
    ros2 service call /camera/get_white_balance orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_laser_enable

    ros2 service call /camera/set_laser_enable std_srvs/srv/SetBool '{data: true}'
    
  • /camera/get_laser_status

    ros2 service call /camera/get_laser_status orbbec_camera_msgs/srv/GetBool '{}'
    
  • /camera/set_ldp_enable & /camera/get_ldp_status

    ros2 service call /camera/set_ldp_enable std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/get_ldp_status orbbec_camera_msgs/srv/GetBool '{}'
    
  • /camera/set_ptp_config & /camera/get_ptp_config

    ros2 service call /camera/set_ptp_config std_srvs/srv/SetBool '{data: true}'
    ros2 service call /camera/get_ptp_config orbbec_camera_msgs/srv/GetBool '{}'
    
  • /camera/get_lrm_measure_distance

    ros2 service call /camera/get_lrm_measure_distance orbbec_camera_msgs/srv/GetInt32 '{}'
    
  • /camera/set_fan_work_mode

    ros2 service call /camera/set_fan_work_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
    
  • /camera/set_floor_enable

    ros2 service call /camera/set_floor_enable std_srvs/srv/SetBool '{data: true}'
    

4.2.4. 设备信息与管理

  • /camera/get_device_info

    ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo
    
  • /camera/get_device_config 获取当前生效的设备配置状态,例如 preset、对齐模式、时间域、同步模式、帧聚合模式等。

    ros2 service call /camera/get_device_config orbbec_camera_msgs/srv/GetDeviceConfig '{}'
    
  • /camera/get_sdk_version

    ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString
    
  • /camera/export_config_json 导出当前设备配置为 SDK JSON 文件。Gemini 330 系列的 JSON 导入导出流程请参考 Gemini 330 系列 SDK JSON 使用说明

    ros2 service call /camera/export_config_json orbbec_camera_msgs/srv/SetString "{data: '/tmp/orbbec_camera_config.json'}"
    
  • /camera/set_bag_recording 使用 SDK bag 录制当前设备数据。enable: true 开始录制,enable: false 停止录制;file_path 为空时使用当前工作目录下的默认文件名。

    ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: true, file_path: '/tmp/orbbec_record.bag'}"
    
    ros2 service call /camera/set_bag_recording orbbec_camera_msgs/srv/SetBagRecording "{enable: false, file_path: ''}"
    
  • /camera/reboot_device

    ros2 service call /camera/reboot_device std_srvs/srv/Empty '{}'
    

4.2.5. 同步与触发

  • /camera/send_software_trigger

    ros2 service call /camera/send_software_trigger std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_sync_hosttime

    ros2 service call /camera/set_sync_hosttime std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_reset_timestamp

    # 仅在time_domain参数设置为device时可用
    ros2 service call /camera/set_reset_timestamp std_srvs/srv/SetBool '{data: true}'
    
  • /camera/set_sync_interleaverlaser

    # 仅在interleave_ae_mode为'laser'且interleave_frame_enable为true时可用
    ros2 service call /camera/set_sync_interleaverlaser orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
    
  • /camera/set_sync_io_voltage_level 设置同步 IO 电压等级。仅支持具备该属性的设备。

    ros2 service call /camera/set_sync_io_voltage_level orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
    

4.2.6. 深度滤波器配置

  • /camera/set_filter FalsePositiveFilter 的启动参数、状态确认和命名参数调参示例可参考 Gemini 330 系列 FalsePositiveFilter 使用说明EnhancedDepthFilter 的环境要求、启动参数和状态确认方法可参考 Gemini 330 系列 EnhancedDepthFilter 使用说明

    # filter_name 为滤波器名称,filter_enable 表示是否开启滤波器开关。
    # filter_param 为旧的按位置传参方式;filter_config 为新的命名参数方式。
    # filter_param 和 filter_config 不能同时使用。
    
    # 设置 DecimationFilter: [scale]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: DecimationFilter, filter_enable: false, filter_param: [5]}'
    
    # 设置 SpatialAdvancedFilter: [alpha, disp_diff, magnitude, radius]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SpatialAdvancedFilter, filter_enable: true, filter_param: [0.5,160,1,8]}'
    
    # 设置 SequenceIdFilter: [sequence_id]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SequenceIdFilter, filter_enable: true, filter_param: [1]}'
    
    # 设置 ThresholdFilter: [min, max]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: ThresholdFilter, filter_enable: true, filter_param: [0,15999]}'
    
    # 设置 NoiseRemovalFilter: [min_diff, max_size]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: NoiseRemovalFilter, filter_enable: true, filter_param: [256,80]}'
    
    # 设置 HardwareNoiseRemoval: [threshold]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: HardwareNoiseRemoval, filter_enable: true, filter_param: [0.2]}'
    
    # 设置 SpatialFastFilter: [radius]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SpatialFastFilter, filter_enable: true, filter_param: [4]}'
    
    # 设置 SpatialModerateFilter: [disp_diff, magnitude, radius]
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SpatialModerateFilter, filter_enable: true, filter_param: [160,1,3]}'
    
    # 设置 FalsePositiveFilter: []
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: FalsePositiveFilter, filter_enable: true, filter_param: []}'
    
    # 设置 EnhancedDepthFilter: [confidence_threshold],阈值必须是 0 到 255 之间的整数
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: EnhancedDepthFilter, filter_enable: true, filter_param: [60]}'
    
    # 设置 MgcNoiseRemovalFilter / LutNoiseRemovalFilter: []
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: MgcNoiseRemovalFilter, filter_enable: true, filter_param: []}'
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: LutNoiseRemovalFilter, filter_enable: true, filter_param: []}'
    
    # 设置 EdgeNoiseRemovalFilter: []
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: EdgeNoiseRemovalFilter, filter_enable: true, filter_param: []}'
    
    # 使用 filter_config 按参数名调参
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: NoiseRemovalFilter, filter_enable: true, filter_config: [{name: min_diff, value: '256'}, {name: max_size, value: '80'}]}"
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: HardwareNoiseRemovalFilter, filter_enable: true, filter_config: [{name: threshold, value: '0.2'}]}"
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: SpatialAdvancedFilter, filter_enable: true, filter_config: [{name: alpha, value: '0.5'}, {name: disp_diff, value: '160'}, {name: magnitude, value: '1'}, {name: radius, value: '8'}]}"
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: EnhancedDepthFilter, filter_enable: true, filter_config: [{name: confidence_threshold, value: '60'}]}"
    
    # 设置 DispOutliersFilter。search_mode 支持 FULL 或 OFFSET_80,大小写不敏感。
    ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: DispOutliersFilter, filter_enable: true, filter_config: [{name: search_mode, value: 'FULL'}]}"
    

    滤波状态会在服务调用后更新到 /camera/depth_filters/status。该话题使用结构化消息 orbbec_camera_msgs/msg/DepthFiltersStatus,包含每个滤波器的使能状态和参数。

4.2.7. 视差配置

  • /camera/set_disparity_range_mode

    ros2 service call /camera/set_disparity_range_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
    
  • /camera/set_disparity_search_offset

    ros2 service call /camera/set_disparity_search_offset orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
    

4.2.8. 数据捕获与校准管理

  • /camera/save_images

    ros2 service call /camera/save_images std_srvs/srv/Empty '{}'
    
  • /camera/save_point_cloud

    ros2 service call /camera/save_point_cloud std_srvs/srv/Empty '{}'
    

4.2.9. 特定设备

  • /camera/write_customer_data & /camera/read_customer_data

    ros2 service call /camera/write_customer_data orbbec_camera_msgs/srv/SetString '{data: "string"}'
    ros2 service call /camera/read_customer_data orbbec_camera_msgs/srv/GetString '{}'
    

    支持模组:Gemini 435Le。

  • /camera/set_user_calib_params & /camera/get_user_calib_params

    ros2 service call /camera/set_user_calib_params orbbec_camera_msgs/srv/SetUserCalibParams \
    '{k: [614.9613647460938, 0.0, 634.91552734375,
          0.0, 614.65771484375, 391.407470703125,
          0.0, 0.0, 1.0],
      d: [-0.03131488710641861,
           0.032955970615148544,
           9.096559369936585e-05,
          -0.0003368517500348389,
          -0.01115430984646082,
           0.0, 0.0, 0.0],
      rotation: [0.9999880790710449,  0.0003024190664291382, -0.004874417092651129,
                -0.0002965621242765337, 0.9999992251396179,   0.001202247804030776,
                 0.004874777048826218, -0.0012007878394797444, 0.9999874234199524],
      translation: [-0.023897956848144532,
                    -9.439220279455185e-05,
                    -6.804073229432106e-06]}'
    ros2 service call /camera/get_user_calib_params orbbec_camera_msgs/srv/GetUserCalibParams '{}'
    

    支持模组:Gemini 435Le。

  • /camera/set_ae_reference_stream

      # depth or color
      ros2 service call /camera/set_ae_reference_stream orbbec_camera_msgs/srv/SetString "{data: depth}"
    

    支持模组:Gemini 301 系列。 兼容说明:替代旧服务 /camera/set_ae_mode,旧值 depthbased/colorbased 对应新值 depth/color

  • /camera/set_ae_strategy

      # default or motion
      ros2 service call /camera/set_ae_strategy orbbec_camera_msgs/srv/SetString "{data: motion}"
    

    支持模组:Gemini 301 系列。 兼容说明:替代旧服务 /camera/set_sports_mode

4.2.10. 点云下采样

  • /camera/set_point_cloud_decimation

    ros2 service call /camera/set_point_cloud_decimation orbbec_camera_msgs/srv/SetInt32 '{data: 8}'
    
  • /camera/get_point_cloud_decimation

    ros2 service call /camera/get_point_cloud_decimation orbbec_camera_msgs/srv/GetInt32 '{}'