mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-04 08:47:45 +08:00
Fixed not all CoreWrapper's parameters updated when parameters callback is called
This commit is contained in:
@@ -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>);
|
||||
|
||||
@@ -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())
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user