4.2. Available services
The service names intuitively reflect their purposes. It’s crucial to understand that services related to setting or getting parameters—denoted as set_* and get_*—become available only when the respective enable_* parameters are activated. For instance, enabling features such as left infrared (IR) with enable_left_ir, right IR with enable_right_ir, depth sensing with enable_depth, or color processing with enable_color (refer to Launch Parameters) is a prerequisite for their corresponding services to be operational. This configuration ensures that services are accessible only when their specific stream is enabled in the launch file’s stream argument.
4.2.1. Color Stream
/camera/get_color_camera_info
rosservice call /camera/get_color_camera_info
/camera/get_color_exposure
rosservice call /camera/get_color_exposure
/camera/get_color_gain
rosservice call /camera/get_color_gain
/camera/set_color_auto_exposure
rosservice call /camera/set_color_auto_exposure 1
/camera/get_color_auto_exposure
rosservice call /camera/get_color_auto_exposure
/camera/set_color_exposure
rosservice call /camera/set_color_exposure 100
/camera/reset_color_exposure
rosservice call /camera/reset_color_exposure
/camera/set_color_gain
rosservice call /camera/set_color_gain 16
/camera/reset_color_gain
rosservice call /camera/reset_color_gain
/camera/set_color_ae_roi
# In data_param, the first value is the Left setting, the second value is the Right setting, the third value is the Top setting, and the fourth value is the Bottom setting.
rosservice call /camera/set_color_ae_roi '{data_param:[0,1279,0,719]}'
/camera/set_color_mirror
rosservice call /camera/set_color_mirror 1
/camera/toggle_color
rosservice call /camera/toggle_color 1
4.2.2. Depth Stream
/camera/get_depth_camera_info
rosservice call /camera/get_depth_camera_info
/camera/get_depth_exposure
rosservice call /camera/get_depth_exposure
/camera/reset_depth_exposure
rosservice call /camera/reset_depth_exposure
/camera/get_depth_gain
rosservice call /camera/get_depth_gain
/camera/reset_depth_gain
rosservice call /camera/reset_depth_gain
/camera/set_depth_auto_exposure
rosservice call /camera/set_depth_auto_exposure 1
/camera/get_depth_auto_exposure
rosservice call /camera/get_depth_auto_exposure
/camera/set_depth_exposure
rosservice call /camera/set_depth_exposure 3000
/camera/set_depth_gain
# v2 version is not supported yet
rosservice call /camera/set_depth_gain 64
/camera/set_depth_ae_roi
# In data_param, the first value is the Left setting, the second value is the Right setting, the third value is the Top setting, and the fourth value is the Bottom setting.
rosservice call /camera/set_depth_ae_roi '{data_param:[0,1279,0,719]}'
/camera/set_depth_mirror
rosservice call /camera/set_depth_mirror 1
/camera/toggle_depth
rosservice call /camera/toggle_depth 1
4.2.3. IR Stream
/camera/get_ir_camera_info
rosservice call /camera/get_ir_camera_info
/camera/get_ir_exposure
rosservice call /camera/get_ir_exposure
/camera/reset_ir_exposure
rosservice call /camera/reset_ir_exposure
/camera/get_ir_gain
rosservice call /camera/get_ir_gain
/camera/reset_ir_gain
rosservice call /camera/reset_ir_gain
/camera/set_ir_auto_exposure
rosservice call /camera/set_ir_auto_exposure 1
/camera/set_ir_exposure
rosservice call /camera/set_ir_exposure 3000
/camera/set_ir_gain
rosservice call /camera/set_ir_gain 64
/camera/set_ir_mirror
rosservice call /camera/set_ir_mirror 1
/camera/switch_ir
rosservice call /camera/switch_ir left
/camera/toggle_ir
rosservice call /camera/toggle_ir 1
4.2.4. Runtime Stream Configuration
/camera/set_stream_profile
Switch one or more enabled image stream profiles while the node is running. stream_name accepts color, left_color, right_color, depth, ir, left_ir, and right_ir. Specify only the fields to change; use 0 for 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.
rosservice call /camera/set_stream_profile "{profiles: [{stream_name: 'color', width: 1280, height: 720, fps: 30, format: 'MJPG'}]}"
/camera/set_image_registration_mode
Switch depth-color image registration at runtime. Valid values are OFF, HW_D2C, SW_D2C, and SW_C2D, case-insensitive. Both color and depth streams must be enabled for every mode except OFF. The node restarts streams automatically and restores the previous mode if the switch fails.
rosservice call /camera/set_image_registration_mode "{data: 'HW_D2C'}"
4.2.5. Sensor & Emitter Control
/camera/get_auto_white_balance
rosservice call /camera/get_auto_white_balance
/camera/set_auto_white_balance
rosservice call /camera/set_auto_white_balance 1
/camera/get_white_balance
rosservice call /camera/get_white_balance
/camera/reset_white_balance
rosservice call /camera/reset_white_balance
/camera/set_laser
rosservice call /camera/set_laser 1
/camera/get_laser_status
rosservice call /camera/get_laser_status
/camera/set_ldp
rosservice call /camera/set_ldp 1
/camera/get_ldp_status
rosservice call /camera/get_ldp_status
/camera/get_lrm_measure_distance
rosservice call /camera/get_lrm_measure_distance
/camera/set_flood
rosservice call /camera/set_flood 1
/camera/set_fan_work_mode
rosservice call /camera/set_fan_work_mode 1
4.2.6. Device Information & Management
/camera/get_device_info
rosservice call /camera/get_device_info
/camera/get_device_config
Get the currently effective device configuration state, such as preset, alignment mode, time domain, sync mode, and frame aggregate mode.
rosservice call /camera/get_device_config
/camera/get_device_type
rosservice call /camera/get_device_type
/camera/get_serial
rosservice call /camera/get_serial
/camera/get_sdk_version
rosservice call /camera/get_sdk_version
/camera/get_camera_params
rosservice call /camera/get_camera_params
/camera/export_config_json
Export the current device configuration to an SDK JSON file. For the Gemini 330 series JSON import and export workflow, see Gemini 330 Series SDK JSON Usage Guide.
rosservice call /camera/export_config_json "data: '/tmp/orbbec_camera_config.json'"
/camera/set_bag_recording
Record current device data with SDK bag recording. enable: true starts recording and enable: false stops recording. When file_path is empty, the default file name is created in the current working directory.
rosservice call /camera/set_bag_recording "enable: true
file_path: '/tmp/orbbec_record.bag'"
rosservice call /camera/set_bag_recording "enable: false
file_path: ''"
/camera/reboot_device
rosservice call /camera/reboot_device
4.2.7. Synchronization
/camera/get_ptp_config
rosservice call /camera/get_ptp_config
/camera/set_ptp_config
rosservice call /camera/set_ptp_config true
/camera/send_software_trigger
rosservice call /camera/send_software_trigger "data: true"
/camera/set_sync_io_voltage_level
Set the sync IO voltage level. This is only supported on devices that expose the property.
rosservice call /camera/set_sync_io_voltage_level 0
4.2.8. Disparity Configuration
/camera/set_disparity_range_mode
rosservice call /camera/set_disparity_range_mode 1
/camera/set_disparity_search_offset
rosservice call /camera/set_disparity_search_offset 0
4.2.9. AE Configuration
/camera/set_ae_reference_stream
rosservice call /camera/set_ae_reference_stream color
Supported Modules: Gemini 301 series.
/camera/set_ae_strategy
rosservice call /camera/set_ae_strategy motion
Supported Modules: Gemini 301 series.
4.2.10. Depth Filter Configuration
/camera/set_filter
For FalsePositiveFilter startup parameters, status checks, and named-parameter tuning examples, see Gemini 330 Series FalsePositiveFilter Usage Guide. For EnhancedDepthFilter environment requirements, startup parameters, and status checks, see the Gemini 330 Series 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]
rosservice call /camera/set_filter '{filter_name: DecimationFilter, filter_enable: false, filter_param: [5]}'
# Set SpatialAdvancedFilter: [alpha, disp_diff, magnitude, radius]
rosservice call /camera/set_filter '{filter_name: SpatialAdvancedFilter, filter_enable: true, filter_param: [0.5,160,1,8]}'
# Set SequenceIdFilter: [sequence_id]
rosservice call /camera/set_filter '{filter_name: SequenceIdFilter, filter_enable: true, filter_param: [1]}'
# Set ThresholdFilter: [min, max]
rosservice call /camera/set_filter '{filter_name: ThresholdFilter, filter_enable: true, filter_param: [0,15999]}'
# Set NoiseRemovalFilter: [min_diff, max_size]
rosservice call /camera/set_filter '{filter_name: NoiseRemovalFilter, filter_enable: true, filter_param: [256,80]}'
# Set HardwareNoiseRemoval: [threshold]
rosservice call /camera/set_filter '{filter_name: HardwareNoiseRemoval, filter_enable: true, filter_param: [0.2]}'
# Set SpatialFastFilter: [radius]
rosservice call /camera/set_filter '{filter_name: SpatialFastFilter, filter_enable: true, filter_param: [4]}'
# Set SpatialModerateFilter: [disp_diff, magnitude, radius]
rosservice call /camera/set_filter '{filter_name: SpatialModerateFilter, filter_enable: true, filter_param: [160,1,3]}'
# Set FalsePositiveFilter: []
rosservice call /camera/set_filter '{filter_name: FalsePositiveFilter, filter_enable: true, filter_param: []}'
# Set EnhancedDepthFilter: [confidence_threshold]. The threshold must be an integer from 0 to 255.
rosservice call /camera/set_filter '{filter_name: EnhancedDepthFilter, filter_enable: true, filter_param: [60]}'
# Set MgcNoiseRemovalFilter / LutNoiseRemovalFilter: []
rosservice call /camera/set_filter '{filter_name: MgcNoiseRemovalFilter, filter_enable: true, filter_param: []}'
rosservice call /camera/set_filter '{filter_name: LutNoiseRemovalFilter, filter_enable: true, filter_param: []}'
# Set EdgeNoiseRemovalFilter: []
rosservice call /camera/set_filter '{filter_name: EdgeNoiseRemovalFilter, filter_enable: true, filter_param: []}'
# Tune filters with named parameters
rosservice call /camera/set_filter "{filter_name: NoiseRemovalFilter, filter_enable: true, filter_config: [{name: min_diff, value: '256'}, {name: max_size, value: '80'}]}"
rosservice call /camera/set_filter "{filter_name: HardwareNoiseRemovalFilter, filter_enable: true, filter_config: [{name: threshold, value: '0.2'}]}"
rosservice call /camera/set_filter "{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'}]}"
rosservice call /camera/set_filter "{filter_name: EnhancedDepthFilter, filter_enable: true, filter_config: [{name: confidence_threshold, value: '60'}]}"
# Set DispOutliersFilter. search_mode accepts FULL or OFFSET_80, case-insensitive.
rosservice call /camera/set_filter "{filter_name: DispOutliersFilter, filter_enable: true, filter_config: [{name: search_mode, value: 'FULL'}]}"
/camera/set_filter can only enable or disable EnhancedDepthFilter or adjust confidence_threshold. The model path, stream configuration, and alignment method must be configured with launch parameters.
4.2.11. Data Capture & Calibration Management
/camera/get_color_camera_info
rosservice call /camera/get_color_camera_info
/camera/get_depth_camera_info
rosservice call /camera/get_depth_camera_info
/camera/get_ir_camera_info
rosservice call /camera/get_ir_camera_info
/camera/save_images
rosservice call /camera/save_images
/camera/save_point_cloud
rosservice call /camera/save_point_cloud