mirror of
https://github.com/orbbec/OrbbecSDK_ROS2.git
synced 2026-09-12 11:10:19 +08:00
add soft filter max diff
This commit is contained in:
@@ -342,6 +342,9 @@ class OBCameraNode {
|
||||
bool enable_soft_filter_ = true;
|
||||
bool enable_color_auto_exposure_ = true;
|
||||
bool enable_ir_auto_exposure_ = true;
|
||||
bool enable_ldp_ = true;
|
||||
int soft_filter_max_diff_ = -1;
|
||||
int soft_filter_speckle_size_ = -1;
|
||||
// Only for Gemini2 device
|
||||
bool enable_hardware_d2d_ = true;
|
||||
std::string depth_work_mode_;
|
||||
|
||||
@@ -45,7 +45,10 @@
|
||||
<arg name="enable_publish_extrinsic" default="false"/>
|
||||
<arg name="enable_hardware_d2d" default="true"/>
|
||||
<arg name="enable_d2c_viewer" default="false"/>
|
||||
<arg name="enable_ldp" default="true"/>
|
||||
<arg name="enable_soft_filter" default="true"/>
|
||||
<arg name="soft_filter_max_diff" default="-1"/>
|
||||
<arg name="soft_filter_speckle_size" default="-1"/>
|
||||
<arg name="sync_mode" default="close"/>
|
||||
<arg name="ir_trigger_signal_in_delay" default="0"/>
|
||||
<arg name="rgb_trigger_signal_in_delay" default="0"/>
|
||||
@@ -97,7 +100,10 @@
|
||||
<param name="enable_publish_extrinsic" value="$(var enable_publish_extrinsic)"/>
|
||||
<param name="enable_hardware_d2d" value="$(var enable_hardware_d2d)"/>
|
||||
<param name="enable_d2c_viewer" value="$(var enable_d2c_viewer)"/>
|
||||
<param name="enable_ldp" value="$(var enable_ldp)"/>
|
||||
<param name="enable_soft_filter" value="$(var enable_soft_filter)"/>
|
||||
<param name="soft_filter_max_diff" value="$(var soft_filter_max_diff)"/>
|
||||
<param name="soft_filter_speckle_size" value="$(var soft_filter_speckle_size)"/>
|
||||
<param name="sync_mode" value="$(var sync_mode)"/>
|
||||
<param name="ir_trigger_signal_in_delay" value="$(var ir_trigger_signal_in_delay)"/>
|
||||
<param name="rgb_trigger_signal_in_delay" value="$(var rgb_trigger_signal_in_delay)"/>
|
||||
|
||||
@@ -11,10 +11,12 @@ int main() {
|
||||
std::cout << "Current device not support depth work mode!" << std::endl;
|
||||
return -1;
|
||||
}
|
||||
auto depthModeList = device->getDepthWorkModeList();
|
||||
auto current_depth_mode = device->getCurrentDepthWorkMode();
|
||||
std::cout << "current depth mode: " << current_depth_mode.name << std::endl;
|
||||
auto depth_mode_list = device->getDepthWorkModeList();
|
||||
std::cout << "depth mode list: " << std::endl;
|
||||
for (uint32_t i = 0; i < depthModeList->count(); i++) {
|
||||
std::cout << "depthModeList[" << i << "]: " << (*depthModeList)[i].name;
|
||||
for (uint32_t i = 0; i < depth_mode_list->count(); i++) {
|
||||
std::cout << "depth_mode_list[" << i << "]: " << (*depth_mode_list)[i].name;
|
||||
|
||||
std::cout << std::endl;
|
||||
}
|
||||
|
||||
@@ -122,6 +122,16 @@ void OBCameraNode::setupDevices() {
|
||||
device_->setBoolProperty(OB_PROP_DEPTH_SOFT_FILTER_BOOL, enable_soft_filter_);
|
||||
device_->setBoolProperty(OB_PROP_COLOR_AUTO_EXPOSURE_BOOL, enable_color_auto_exposure_);
|
||||
device_->setBoolProperty(OB_PROP_IR_AUTO_EXPOSURE_BOOL, enable_ir_auto_exposure_);
|
||||
auto default_soft_filter_max_diff = device_->getIntProperty(OB_PROP_DEPTH_MAX_DIFF_INT);
|
||||
if (soft_filter_max_diff_ != -1 && default_soft_filter_max_diff != soft_filter_max_diff_) {
|
||||
device_->setIntProperty(OB_PROP_DEPTH_MAX_DIFF_INT, soft_filter_max_diff_);
|
||||
}
|
||||
auto default_soft_filter_speckle_size =
|
||||
device_->getIntProperty(OB_PROP_DEPTH_MAX_SPECKLE_SIZE_INT);
|
||||
if (soft_filter_speckle_size_ != -1 &&
|
||||
default_soft_filter_speckle_size != soft_filter_speckle_size_) {
|
||||
device_->setIntProperty(OB_PROP_DEPTH_MAX_SPECKLE_SIZE_INT, soft_filter_speckle_size_);
|
||||
}
|
||||
} catch (const ob::Error& e) {
|
||||
RCLCPP_ERROR_STREAM(logger_, "Failed to setup devices: " << e.getMessage());
|
||||
} catch (const std::exception& e) {
|
||||
@@ -306,6 +316,9 @@ void OBCameraNode::getParameters() {
|
||||
if (enable_colored_point_cloud_) {
|
||||
depth_registration_ = true;
|
||||
}
|
||||
setAndGetNodeParameter<bool>(enable_ldp_, "enable_ldp", true);
|
||||
setAndGetNodeParameter<int>(soft_filter_max_diff_, "soft_filter_max_diff", -1);
|
||||
setAndGetNodeParameter<int>(soft_filter_speckle_size_, "soft_filter_speckle_size", -1);
|
||||
}
|
||||
|
||||
void OBCameraNode::setupTopics() {
|
||||
|
||||
Reference in New Issue
Block a user