4.2. 可用服务
注意: 与特定数据流相关的服务(例如
/camera/set_color_*)仅在启动文件中启用该数据流时可用(例如enable_color:=true)。
4.2.1. 数据流控制
4.2.1.1. 彩色流
/camera/toggle_colorros2 service call /camera/toggle_color std_srvs/srv/SetBool '{data: true}'
/camera/get_color_exposure&/camera/get_color_gainros2 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_exposureros2 service call /camera/set_color_auto_exposure std_srvs/srv/SetBool '{data: true}'
/camera/set_color_exposure&/camera/set_color_gainros2 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_rotationros2 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_depthros2 service call /camera/toggle_depth std_srvs/srv/SetBool '{data: true}'
/camera/get_depth_exposure&/camera/get_depth_gainros2 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_exposureros2 service call /camera/set_depth_auto_exposure std_srvs/srv/SetBool '{data: true}'
/camera/set_depth_exposure&/camera/set_depth_gainros2 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_rotationros2 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_irros2 service call /camera/toggle_ir std_srvs/srv/SetBool '{data: true}'
/camera/get_ir_exposure&/camera/get_ir_gainros2 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_exposureros2 service call /camera/set_ir_long_exposure std_srvs/srv/SetBool '{data: true}'
/camera/set_ir_auto_exposureros2 service call /camera/set_ir_auto_exposure std_srvs/srv/SetBool '{data: true}'
/camera/set_ir_exposure&/camera/set_ir_gainros2 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_rotationros2 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_irros2 service call /camera/switch_ir orbbec_camera_msgs/srv/SetString '{data: left}'
4.2.1.4. 所有数据流
/camera/get_streams_enable&/camera/set_streams_enableros2 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支持color、left_color、right_color、depth、ir、left_ir和right_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运行时切换深度和彩色图像对齐模式。可选值为
OFF、HW_D2C、SW_D2C和SW_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_balanceros2 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_balanceros2 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_enableros2 service call /camera/set_laser_enable std_srvs/srv/SetBool '{data: true}'
/camera/get_laser_statusros2 service call /camera/get_laser_status orbbec_camera_msgs/srv/GetBool '{}'
/camera/set_ldp_enable&/camera/get_ldp_statusros2 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_configros2 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_distanceros2 service call /camera/get_lrm_measure_distance orbbec_camera_msgs/srv/GetInt32 '{}'
/camera/set_fan_work_moderos2 service call /camera/set_fan_work_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
/camera/set_floor_enableros2 service call /camera/set_floor_enable std_srvs/srv/SetBool '{data: true}'
4.2.4. 设备信息与管理
/camera/get_device_inforos2 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_versionros2 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_deviceros2 service call /camera/reboot_device std_srvs/srv/Empty '{}'
4.2.5. 同步与触发
/camera/send_software_triggerros2 service call /camera/send_software_trigger std_srvs/srv/SetBool '{data: true}'
/camera/set_sync_hosttimeros2 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_filterFalsePositiveFilter的启动参数、状态确认和命名参数调参示例可参考 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_moderos2 service call /camera/set_disparity_range_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
/camera/set_disparity_search_offsetros2 service call /camera/set_disparity_search_offset orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
4.2.8. 数据捕获与校准管理
/camera/save_imagesros2 service call /camera/save_images std_srvs/srv/Empty '{}'
/camera/save_point_cloudros2 service call /camera/save_point_cloud std_srvs/srv/Empty '{}'
4.2.9. 特定设备
/camera/write_customer_data&/camera/read_customer_dataros2 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_paramsros2 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_decimationros2 service call /camera/set_point_cloud_decimation orbbec_camera_msgs/srv/SetInt32 '{data: 8}'
/camera/get_point_cloud_decimationros2 service call /camera/get_point_cloud_decimation orbbec_camera_msgs/srv/GetInt32 '{}'