15 #include "nav2_mppi_controller/critics/twirling_critic.hpp"
17 #include <Eigen/Dense>
19 namespace mppi::critics
24 auto getParentParam = parameters_handler_->
getParamGetter(parent_name_);
26 getParam(power_,
"cost_power", 1);
27 getParam(weight_,
"cost_weight", 10.0f);
30 logger_,
"TwirlingCritic instantiated with %d power and %f weight.", power_, weight_);
39 if (data.goal_checker !=
nullptr) {
40 geometry_msgs::msg::Pose pose_tolerance;
41 geometry_msgs::msg::Twist velocity_tolerance;
42 data.goal_checker->
getTolerances(pose_tolerance, velocity_tolerance);
44 if (data.state.local_path_length < pose_tolerance.position.x) {
50 data.costs += ((data.state.wz.abs().rowwise().mean()) * weight_).pow(power_).eval();
52 data.costs += ((data.state.wz.abs().rowwise().mean()) * weight_).eval();
58 #include <pluginlib/class_list_macros.hpp>
60 PLUGINLIB_EXPORT_CLASS(
auto getParamGetter(const std::string &ns)
Get an object to retrieve parameters.
Abstract critic objective function to score trajectories.
void initialize() override
Initialize critic.
void score(CriticData &data) override
Evaluate cost related to robot orientation at goal pose (considered only if robot near last goal in c...
virtual bool getTolerances(geometry_msgs::msg::Pose &pose_tolerance, geometry_msgs::msg::Twist &vel_tolerance)=0
Get the maximum possible tolerances used for goal checking in the major types. Any field without a va...
Data to pass to critics for scoring, including state, trajectories, pruned path, global goal,...