15 #include "nav2_mppi_controller/critic_manager.hpp"
21 rclcpp_lifecycle::LifecycleNode::WeakPtr parent,
const std::string & name,
22 std::shared_ptr<nav2_costmap_2d::Costmap2DROS> costmap_ros,
ParametersHandler * param_handler)
25 costmap_ros_ = costmap_ros;
27 auto node = parent_.lock();
28 logger_ = node->get_logger();
29 parameters_handler_ = param_handler;
37 auto node = parent_.lock();
39 getParam(critic_names_,
"critics", std::vector<std::string>{}, ParameterType::Static);
45 loader_ = std::make_unique<pluginlib::ClassLoader<critics::CriticFunction>>(
46 "nav2_mppi_controller",
"mppi::critics::CriticFunction");
50 for (
auto name : critic_names_) {
52 auto instance = std::unique_ptr<critics::CriticFunction>(
53 loader_->createUnmanagedInstance(fullname));
54 critics_.push_back(std::move(instance));
55 critics_.back()->on_configure(
56 parent_, name_, name_ +
"." + name, costmap_ros_,
58 RCLCPP_INFO(logger_,
"Critic loaded : %s", fullname.c_str());
64 return "mppi::critics::" + name;
70 for (
size_t q = 0; q < critics_.size(); q++) {
74 critics_[q]->score(data);
void on_configure(rclcpp_lifecycle::LifecycleNode::WeakPtr parent, const std::string &name, std::shared_ptr< nav2_costmap_2d::Costmap2DROS >, ParametersHandler *)
Configure critic manager on bringup and load plugins.
void getParams()
Get parameters (critics to load)
void evalTrajectoriesScores(CriticData &data) const
Score trajectories by the set of loaded critic functions.
virtual void loadCritics()
Load the critic plugins.
std::string getFullName(const std::string &name)
Get full-name namespaced critic IDs.
Handles getting parameters and dynamic parmaeter changes.
auto getParamGetter(const std::string &ns)
Get an object to retreive parameters.
Data to pass to critics for scoring, including state, trajectories, pruned path, global goal,...