mirror of
https://github.com/introlab/rtabmap_ros.git
synced 2026-10-13 04:59:50 +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(
|
std::map<int, rtabmap::Transform> filterNodesToAssemble(
|
||||||
const std::map<int, rtabmap::Transform> & nodes,
|
const std::map<int, rtabmap::Transform> & nodes,
|
||||||
const rtabmap::Transform & currentPose);
|
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 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>);
|
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;
|
parameters_.at(key) = vStr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
RCLCPP_INFO(this->get_logger(), "rtabmap: Updating parameters");
|
applyParameters();
|
||||||
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_);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -3219,6 +3209,11 @@ void CoreWrapper::updateRtabmapCallback(
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
applyParameters();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CoreWrapper::applyParameters()
|
||||||
|
{
|
||||||
RCLCPP_INFO(get_logger(), "rtabmap: Updating parameters");
|
RCLCPP_INFO(get_logger(), "rtabmap: Updating parameters");
|
||||||
if(parameters_.find(Parameters::kRtabmapDetectionRate()) != parameters_.end())
|
if(parameters_.find(Parameters::kRtabmapDetectionRate()) != parameters_.end())
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user