Fixed not all CoreWrapper's parameters updated when parameters callback is called

This commit is contained in:
matlabbe
2026-04-18 16:22:50 -07:00
parent 45c586c379
commit fb27ac0eda
2 changed files with 8 additions and 11 deletions
@@ -245,6 +245,8 @@ private:
std::map<int, rtabmap::Transform> filterNodesToAssemble(
const std::map<int, rtabmap::Transform> & nodes,
const rtabmap::Transform & currentPose);
void applyParameters();
void updateRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
void resetRtabmapCallback(const std::shared_ptr<rmw_request_id_t>, const std::shared_ptr<std_srvs::srv::Empty::Request>, std::shared_ptr<std_srvs::srv::Empty::Response>);
+6 -11
View File
@@ -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())
{