diff --git a/rtabmap_slam/include/rtabmap_slam/CoreWrapper.h b/rtabmap_slam/include/rtabmap_slam/CoreWrapper.h index 901cc255..adb7b8e9 100644 --- a/rtabmap_slam/include/rtabmap_slam/CoreWrapper.h +++ b/rtabmap_slam/include/rtabmap_slam/CoreWrapper.h @@ -245,6 +245,8 @@ private: std::map filterNodesToAssemble( const std::map & nodes, const rtabmap::Transform & currentPose); + + void applyParameters(); void updateRtabmapCallback(const std::shared_ptr, const std::shared_ptr, std::shared_ptr); void resetRtabmapCallback(const std::shared_ptr, const std::shared_ptr, std::shared_ptr); diff --git a/rtabmap_slam/src/CoreWrapper.cpp b/rtabmap_slam/src/CoreWrapper.cpp index 628aa6d4..6c302c22 100644 --- a/rtabmap_slam/src/CoreWrapper.cpp +++ b/rtabmap_slam/src/CoreWrapper.cpp @@ -964,17 +964,7 @@ CoreWrapper::CoreWrapper(const rclcpp::NodeOptions & options) : parameters_.at(key) = vStr; } } - RCLCPP_INFO(this->get_logger(), "rtabmap: Updating parameters"); - if(parameters_.find(Parameters::kRtabmapDetectionRate()) != parameters_.end()) - { - rate_ = uStr2Float(parameters_.at(Parameters::kRtabmapDetectionRate())); - RCLCPP_INFO(this->get_logger(), "RTAB-Map rate detection = %f Hz", rate_); - } - rtabmap_.parseParameters(parameters_); - // Don't reset map in localization mode - if(rtabmap_.getMemory()->isIncremental()) { - mapsManager_.setParameters(parameters_); - } + applyParameters(); } }; @@ -3219,6 +3209,11 @@ void CoreWrapper::updateRtabmapCallback( } } } + applyParameters(); +} + +void CoreWrapper::applyParameters() +{ RCLCPP_INFO(get_logger(), "rtabmap: Updating parameters"); if(parameters_.find(Parameters::kRtabmapDetectionRate()) != parameters_.end()) {