diff --git a/cfg/ImageLocalBinarization.cfg b/cfg/ImageLocalBinarization.cfg index 956bff28806b47661e1c558a0d814bc1fd43cbb7..6dbb37be3d5ecc12f26a11a532f0d66c71bee442 100755 --- a/cfg/ImageLocalBinarization.cfg +++ b/cfg/ImageLocalBinarization.cfg @@ -39,7 +39,7 @@ gen = ParameterGenerator() # Name Type Reconfiguration level Description Default Min Max #gen.add("velocity_scale_factor", double_t, 0, "Maximum velocity scale factor", 0.5, 0.0, 1.0) -gen.add( "window_size", int_t, 0, "Local threshold windo size", 15, 3, 500) -gen.add( "k", double_t, 0, "Multiplicative constant for local deviation", 0.06, 0, 0.5) +gen.add( "window_size", int_t, 0, "Local threshold window size", 7, 3, 500) +gen.add( "k", double_t, 0, "Multiplicative constant for local deviation", 0.09, 0, 0.5) exit(gen.generate(PACKAGE, "ImageLocalBinarizationAlgorithm", "ImageLocalBinarization")) diff --git a/include/image_local_binarization_alg_nodelet.h b/include/image_local_binarization_alg_nodelet.h index 0fed768cb0a73a826bad82863134cbd6c7c6bb6f..708cf32effa9a6178ebffc54dd9298e18bae372f 100644 --- a/include/image_local_binarization_alg_nodelet.h +++ b/include/image_local_binarization_alg_nodelet.h @@ -72,6 +72,8 @@ class ImageLocalBinarizationAlgNodelet : public algorithm_base::IriBaseAlgorithm int window_size_; double k_; + bool avoid_dynrec_overwrite_; // To avoid overwrite due to initial Dynamic Reconfigure update + cv_bridge::CvImageConstPtr image_; cv_bridge::CvImagePtr image_out_; diff --git a/src/image_local_binarization_alg_nodelet.cpp b/src/image_local_binarization_alg_nodelet.cpp index b96a7db1311d382b4ba606103f54322c250f0c9c..15b5c985b9f046deacec2bf85ea7d387ff0e9eda 100644 --- a/src/image_local_binarization_alg_nodelet.cpp +++ b/src/image_local_binarization_alg_nodelet.cpp @@ -24,8 +24,12 @@ ImageLocalBinarizationAlgNodelet::ImageLocalBinarizationAlgNodelet(ros::NodeHand // [init action clients] - this->window_size_ = 3; - this->k_ = 0.06; + private_nh.param<int>("window_size", this->window_size_, 3 ); + private_nh.param<double>("k", this->k_, 0.06 ); + + // To avoid overwrite due to Dyn Rec initial load + this->avoid_dynrec_overwrite_ = true; + } ImageLocalBinarizationAlgNodelet::~ImageLocalBinarizationAlgNodelet(void) @@ -90,9 +94,19 @@ void ImageLocalBinarizationAlgNodelet::node_config_update(Config &config, uint32 { this->alg_.lock(); - this->window_size_ = config.window_size; - this->k_ = config.k; - + // Update Dyn Rec if parameters are loaded from launch file + if (this->avoid_dynrec_overwrite_) + { + config.window_size = this->window_size_; + config.k = this->k_; + this->avoid_dynrec_overwrite_ = false; + } + else + { + this->window_size_ = config.window_size; + this->k_ = config.k; + } + this->alg_.unlock(); }