mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-10-04 12:07:46 +08:00
Add laser on off mode
This commit is contained in:
@@ -360,6 +360,9 @@ The following are the launch parameters available:
|
|||||||
- `depth_filter_config` : Configure the loading path for the depth filtering configuration file. By default, the depth
|
- `depth_filter_config` : Configure the loading path for the depth filtering configuration file. By default, the depth
|
||||||
filtering configuration file is located in the /config/depthfilter directory,Supported only on Gemini2.
|
filtering configuration file is located in the /config/depthfilter directory,Supported only on Gemini2.
|
||||||
- `depth_precision` : The depth precision, should be like `1mm` format. The default value is `1mm`.
|
- `depth_precision` : The depth precision, should be like `1mm` format. The default value is `1mm`.
|
||||||
|
- `enable_laser` : Whether to enable the laser. The default value is `true`.
|
||||||
|
- `laser_on_off_mode`: Laser on/off alternate mode, 0: off, 1: on-off alternate, 2: off-on alternate. The default value
|
||||||
|
is `0`.
|
||||||
|
|
||||||
## Depth work mode switch
|
## Depth work mode switch
|
||||||
|
|
||||||
|
|||||||
@@ -512,5 +512,6 @@ class OBCameraNode {
|
|||||||
std::unique_ptr<diagnostic_updater::Updater> diagnostic_updater_ = nullptr;
|
std::unique_ptr<diagnostic_updater::Updater> diagnostic_updater_ = nullptr;
|
||||||
double diagnostic_period_ = 1.0;
|
double diagnostic_period_ = 1.0;
|
||||||
bool enable_laser_ = false;
|
bool enable_laser_ = false;
|
||||||
|
int laser_on_off_mode_ = 0;
|
||||||
};
|
};
|
||||||
} // namespace orbbec_camera
|
} // namespace orbbec_camera
|
||||||
|
|||||||
@@ -104,7 +104,10 @@ def generate_launch_description():
|
|||||||
DeclareLaunchArgument('hole_filling_filter_mode', default_value='FILL_TOP'),
|
DeclareLaunchArgument('hole_filling_filter_mode', default_value='FILL_TOP'),
|
||||||
DeclareLaunchArgument('align_mode', default_value='SW'),
|
DeclareLaunchArgument('align_mode', default_value='SW'),
|
||||||
DeclareLaunchArgument('diagnostic_period', default_value='1.0'),
|
DeclareLaunchArgument('diagnostic_period', default_value='1.0'),
|
||||||
DeclareLaunchArgument('enable_laser', default_value='false'),
|
DeclareLaunchArgument('enable_laser', default_value='true'),
|
||||||
|
DeclareLaunchArgument('depth_precision', default_value='1mm'),
|
||||||
|
# Laser on/off alternate mode, 0: off, 1: on-off alternate, 2: off-on alternate.
|
||||||
|
DeclareLaunchArgument('laser_on_off_mode', default_value='0'),
|
||||||
]
|
]
|
||||||
|
|
||||||
# Node configuration
|
# Node configuration
|
||||||
|
|||||||
@@ -142,6 +142,7 @@ void OBCameraNode::setupDevices() {
|
|||||||
RCLCPP_INFO_STREAM(logger_, "Depth process is " << d2d_mode);
|
RCLCPP_INFO_STREAM(logger_, "Depth process is " << d2d_mode);
|
||||||
}
|
}
|
||||||
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, enable_laser_);
|
device_->setIntProperty(OB_PROP_LASER_CONTROL_INT, enable_laser_);
|
||||||
|
device_->setIntProperty(OB_PROP_LASER_ON_OFF_MODE_INT, laser_on_off_mode_);
|
||||||
device_->loadPreset(device_preset_.c_str());
|
device_->loadPreset(device_preset_.c_str());
|
||||||
auto depth_sensor = device_->getSensor(OB_SENSOR_DEPTH);
|
auto depth_sensor = device_->getSensor(OB_SENSOR_DEPTH);
|
||||||
// set depth sensor to filter
|
// set depth sensor to filter
|
||||||
@@ -198,7 +199,7 @@ void OBCameraNode::setupDevices() {
|
|||||||
params.disp_diff = noise_removal_filter_min_diff_;
|
params.disp_diff = noise_removal_filter_min_diff_;
|
||||||
params.max_size = noise_removal_filter_max_size_;
|
params.max_size = noise_removal_filter_max_size_;
|
||||||
noise_removal_filter->setFilterParams(params);
|
noise_removal_filter->setFilterParams(params);
|
||||||
} else if (filter_name == "HdrMerge") {
|
} else if (filter_name == "HDRMerge") {
|
||||||
// do nothing
|
// do nothing
|
||||||
} else {
|
} else {
|
||||||
RCLCPP_INFO_STREAM(logger_, "Skip setting filter: " << filter_name);
|
RCLCPP_INFO_STREAM(logger_, "Skip setting filter: " << filter_name);
|
||||||
@@ -725,6 +726,7 @@ void OBCameraNode::getParameters() {
|
|||||||
setAndGetNodeParameter<std::string>(align_mode_, "align_mode", "HW");
|
setAndGetNodeParameter<std::string>(align_mode_, "align_mode", "HW");
|
||||||
setAndGetNodeParameter<double>(diagnostic_period_, "diagnostic_period", 1.0);
|
setAndGetNodeParameter<double>(diagnostic_period_, "diagnostic_period", 1.0);
|
||||||
setAndGetNodeParameter<bool>(enable_laser_, "enable_laser", false);
|
setAndGetNodeParameter<bool>(enable_laser_, "enable_laser", false);
|
||||||
|
setAndGetNodeParameter<int>(laser_on_off_mode_, "laser_on_off_mode", 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OBCameraNode::setupTopics() {
|
void OBCameraNode::setupTopics() {
|
||||||
|
|||||||
Reference in New Issue
Block a user