4.2. Available services
Note: Services related to a specific stream (e.g.,
/camera/set_color_*) are only available if that stream is enabled in the launch file (e.g.,enable_color:=true).
4.2.1. Stream Control
4.2.1.1. Color Stream
/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: [Left, Right, Top, Bottom] ros2 service call /camera/set_color_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,1279,0,719]}'
4.2.1.2. Depth Stream
/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: [Left, Right, Top, Bottom] ros2 service call /camera/set_depth_ae_roi orbbec_camera_msgs/srv/SetArrays '{data_param: [0,847,0,479]}'
4.2.1.3. IR Stream
/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. All Streams
/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. Runtime Stream Configuration
/camera/set_stream_profileSwitch one or more enabled image stream profiles while the node is running.
stream_nameacceptscolor,left_color,right_color,depth,ir,left_ir, andright_ir. Specify only the fields to change; use0for unchanged numeric fields and an empty string for an unchanged format. The node stops and restarts the streams during the switch. The service reports failure if the requested profile is already active.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_modeSwitch depth-color image registration at runtime. Valid values are
OFF,HW_D2C,SW_D2C, andSW_C2D, case-insensitive. Both color and depth streams must be enabled for every mode exceptOFF. The node restarts streams automatically and restores the previous mode if the switch fails.ros2 service call /camera/set_image_registration_mode orbbec_camera_msgs/srv/SetString "{data: HW_D2C}"
4.2.3. Sensor & Emitter Control
/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. Device Information & Management
/camera/get_device_inforos2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo
/camera/get_device_configGet the currently effective device configuration state, such as preset, alignment mode, time domain, sync mode, and frame aggregate mode.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_jsonExport the current device configuration to an SDK JSON file. For the Gemini 330 series JSON import and export workflow, see SDK JSON Import and Export for Gemini 330 Series.ros2 service call /camera/export_config_json orbbec_camera_msgs/srv/SetString "{data: '/tmp/orbbec_camera_config.json'}"
/camera/set_bag_recordingRecord current device data with SDK bag recording.enable: truestarts recording andenable: falsestops recording. Whenfile_pathis empty, the default file name is created in the current working directory.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. Synchronization & Triggering
/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# Only available when time_domain param is set to device ros2 service call /camera/set_reset_timestamp std_srvs/srv/SetBool '{data: true}'
/camera/set_sync_interleaverlaser# Only available if interleave_ae_mode is 'laser' and interleave_frame_enable is true ros2 service call /camera/set_sync_interleaverlaser orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
/camera/set_sync_io_voltage_levelSet the sync IO voltage level. This is only supported on devices that expose the property.ros2 service call /camera/set_sync_io_voltage_level orbbec_camera_msgs/srv/SetInt32 '{data: 0}'
4.2.6. Depth Filter Configuration
/camera/set_filterForFalsePositiveFilterstartup parameters, status checks, and named-parameter tuning examples, see False Positive Filtering for Gemini 330 Series. ForEnhancedDepthFilterenvironment requirements, startup parameters, and status checks, see the ROS2 EnhancedDepthFilter Usage Guide.# filter_name is the filter name, and filter_enable indicates whether the filter is enabled. # filter_param is the legacy positional parameter form; filter_config is the new named parameter form. # filter_param and filter_config cannot be used at the same time. # Set DecimationFilter: [scale] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: DecimationFilter, filter_enable: false, filter_param: [5]}' # Set 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]}' # Set SequenceIdFilter: [sequence_id] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SequenceIdFilter, filter_enable: true, filter_param: [1]}' # Set ThresholdFilter: [min, max] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: ThresholdFilter, filter_enable: true, filter_param: [0,15999]}' # Set 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]}' # Set HardwareNoiseRemoval: [threshold] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: HardwareNoiseRemoval, filter_enable: true, filter_param: [0.2]}' ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: SpatialFastFilter, filter_enable: true, filter_param: [4]}' # Set 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]}' # Set FalsePositiveFilter: [] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: FalsePositiveFilter, filter_enable: true, filter_param: []}' # Set EnhancedDepthFilter: [confidence_threshold]. The threshold must be an integer from 0 to 255. ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: EnhancedDepthFilter, filter_enable: true, filter_param: [60]}' # Set 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: []}' # Set EdgeNoiseRemovalFilter: [] ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter '{filter_name: EdgeNoiseRemovalFilter, filter_enable: true, filter_param: []}' # Tune filters with named parameters 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'}]}" # Set DispOutliersFilter. search_mode accepts FULL or OFFSET_80, case-insensitive. ros2 service call /camera/set_filter orbbec_camera_msgs/srv/SetFilter "{filter_name: DispOutliersFilter, filter_enable: true, filter_config: [{name: search_mode, value: 'FULL'}]}"
Filter status is updated after service calls on
/camera/depth_filter_statusand/camera/depth_filters/status./camera/depth_filters/statususes the structuredorbbec_camera_msgs/msg/DepthFiltersStatusmessage and includes each filter’s enabled state and parameters.
4.2.7. Disparity Configuration
/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. Data Capture
/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.8.1. Device-Specific
/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 '{}'
Supported Modules: 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 '{}'
Supported Modules: 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}"
Supported Modules: Gemini 301 series. Compatibility: Replaces the old
/camera/set_ae_modeservice. The old valuesdepthbased/colorbasedmap todepth/color./camera/set_ae_strategy# default or motion ros2 service call /camera/set_ae_strategy orbbec_camera_msgs/srv/SetString "{data: motion}"
Supported Modules: Gemini 301 series. Compatibility: Replaces the old
/camera/set_sports_modeservice.
4.2.9. Point cloud decimation
/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 '{}'