# 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`). ### Stream Control #### Color Stream * `/camera/toggle_color` ```bash ros2 service call /camera/toggle_color std_srvs/srv/SetBool '{data: true}' ``` * `/camera/get_color_exposure` & `/camera/get_color_gain` ```bash 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` ```bash ros2 service call /camera/set_color_auto_exposure std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_color_exposure` & `/camera/set_color_gain` ```bash 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` ```bash 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` ```bash # 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]}' ``` #### Depth Stream * `/camera/toggle_depth` ```bash ros2 service call /camera/toggle_depth std_srvs/srv/SetBool '{data: true}' ``` * `/camera/get_depth_exposure` & `/camera/get_depth_gain` ```bash 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` ```bash ros2 service call /camera/set_depth_auto_exposure std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_depth_exposure` & `/camera/set_depth_gain` ```bash 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` ```bash 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` ```bash # 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]}' ``` #### IR Stream * `/camera/toggle_ir` ```bash ros2 service call /camera/toggle_ir std_srvs/srv/SetBool '{data: true}' ``` * `/camera/get_ir_exposure` & `/camera/get_ir_gain` ```bash 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` ```bash ros2 service call /camera/set_ir_long_exposure std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_ir_auto_exposure` ```bash ros2 service call /camera/set_ir_auto_exposure std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_ir_exposure` & `/camera/set_ir_gain` ```bash 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` ```bash 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` ```bash ros2 service call /camera/switch_ir orbbec_camera_msgs/srv/SetString '{data: left}' ``` #### All Streams * `/camera/get_streams_enable` & `/camera/set_streams_enable` ```bash 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}' ``` ### Sensor & Emitter Control * `/camera/set_auto_white_balance` & `/camera/get_auto_white_balance` ```bash 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` ```bash 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` ```bash ros2 service call /camera/set_laser_enable std_srvs/srv/SetBool '{data: true}' ``` * `/camera/get_laser_status` ```bash ros2 service call /camera/get_laser_status orbbec_camera_msgs/srv/GetBool '{}' ``` * `/camera/set_ldp_enable` & `/camera/get_ldp_status` ```bash 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` ```bash 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` ```bash ros2 service call /camera/get_lrm_measure_distance orbbec_camera_msgs/srv/GetInt32 '{}' ``` * `/camera/set_fan_work_mode` ```bash ros2 service call /camera/set_fan_work_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}' ``` * `/camera/set_floor_enable` ```bash ros2 service call /camera/set_floor_enable std_srvs/srv/SetBool '{data: true}' ``` ### Device Information & Management * `/camera/get_device_info` ```bash ros2 service call /camera/get_device_info orbbec_camera_msgs/srv/GetDeviceInfo ``` * `/camera/get_sdk_version` ```bash ros2 service call /camera/get_sdk_version orbbec_camera_msgs/srv/GetString ``` * `/camera/export_config_json` ```bash ros2 service call /camera/export_config_json orbbec_camera_msgs/srv/SetString "{data: '/tmp/orbbec_camera_config.json'}" ``` * `/camera/reboot_device` ```bash ros2 service call /camera/reboot_device std_srvs/srv/Empty '{}' ``` ### Synchronization & Triggering * `/camera/send_software_trigger` ```bash ros2 service call /camera/send_software_trigger std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_sync_hosttime` ```bash ros2 service call /camera/set_sync_hosttime std_srvs/srv/SetBool '{data: true}' ``` * `/camera/set_reset_timestamp` ```bash # 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` ```bash # 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}' ``` ### Depth Filter Configuration * `/camera/set_filter` ```bash # 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 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: []}' # 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'}]}" ``` Filter status is updated after service calls on `/camera/depth_filter_status` and `/camera/depth_filters/status`. `/camera/depth_filters/status` uses the structured `orbbec_camera_msgs/msg/DepthFiltersStatus` message and includes each filter's enabled state and parameters. ### Disparity Configuration * `/camera/set_disparity_range_mode` ```bash ros2 service call /camera/set_disparity_range_mode orbbec_camera_msgs/srv/SetInt32 '{data: 0}' ``` * `/camera/set_disparity_search_offset` ```bash ros2 service call /camera/set_disparity_search_offset orbbec_camera_msgs/srv/SetInt32 '{data: 0}' ``` ### Data Capture * `/camera/save_images` ```bash ros2 service call /camera/save_images std_srvs/srv/Empty '{}' ``` * `/camera/save_point_cloud` ```bash ros2 service call /camera/save_point_cloud std_srvs/srv/Empty '{}' ``` #### Device-Specific * `/camera/write_customer_data` & `/camera/read_customer_data` ```bash 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 '{}' ``` > **Supported Modules**: Gemini 435Le * `/camera/set_user_calib_params` & `/camera/get_user_calib_params` ```bash 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 '{}' ``` > **Supported Modules**: Gemini 435Le * `/camera/set_ae_reference_stream` ```bash # depth or color ros2 service call /camera/set_ae_reference_stream orbbec_camera_msgs/srv/SetString "{data: depth}" ``` > **Supported Modules**: Gemini 305 series. > **Compatibility**: Replaces the old `/camera/set_ae_mode` service. The old values `depthbased/colorbased` map to `depth/color`. * `/camera/set_ae_strategy` ```bash # default or motion ros2 service call /camera/set_ae_strategy orbbec_camera_msgs/srv/SetString "{data: motion}" ``` > **Supported Modules**: Gemini 305 series. > **Compatibility**: Replaces the old `/camera/set_sports_mode` service. ### Point cloud decimation * `/camera/set_point_cloud_decimation` ```bash ros2 service call /camera/set_point_cloud_decimation orbbec_camera_msgs/srv/SetInt32 '{data: 8}' ``` * `/camera/get_point_cloud_decimation` ```bash ros2 service call /camera/get_point_cloud_decimation orbbec_camera_msgs/srv/GetInt32 '{}' ```