15 #include "nav2_mppi_controller/critics/velocity_deadband_critic.hpp"
17 namespace mppi::critics
24 getParam(power_,
"cost_power", 1);
25 getParam(weight_,
"cost_weight", 35.0);
28 std::vector<double> deadband_velocities{0.0, 0.0, 0.0};
29 getParam(deadband_velocities,
"deadband_velocities", std::vector<double>{0.0, 0.0, 0.0});
31 deadband_velocities.begin(), deadband_velocities.end(), deadband_velocities_.begin(),
32 [](
double d) {return static_cast<float>(d);});
35 logger_,
"VelocityDeadbandCritic instantiated with "
36 << power_ <<
" power, " << weight_ <<
" weight, deadband_velocity ["
37 << deadband_velocities_.at(0) <<
"," << deadband_velocities_.at(1) <<
","
38 << deadband_velocities_.at(2) <<
"]");
43 using xt::evaluation_strategy::immediate;
49 auto & vx = data.state.vx;
50 auto & wz = data.state.wz;
52 if (data.motion_model->isHolonomic()) {
53 auto & vy = data.state.vy;
55 data.costs += xt::pow(
58 xt::maximum(fabs(deadband_velocities_.at(0)) - xt::fabs(vx), 0) +
59 xt::maximum(fabs(deadband_velocities_.at(1)) - xt::fabs(vy), 0) +
60 xt::maximum(fabs(deadband_velocities_.at(2)) - xt::fabs(wz), 0)) *
66 data.costs += xt::sum(
68 xt::maximum(fabs(deadband_velocities_.at(0)) - xt::fabs(vx), 0) +
69 xt::maximum(fabs(deadband_velocities_.at(1)) - xt::fabs(vy), 0) +
70 xt::maximum(fabs(deadband_velocities_.at(2)) - xt::fabs(wz), 0))) *
79 data.costs += xt::pow(
82 xt::maximum(fabs(deadband_velocities_.at(0)) - xt::fabs(vx), 0) +
83 xt::maximum(fabs(deadband_velocities_.at(2)) - xt::fabs(wz), 0)) *
89 data.costs += xt::sum(
91 xt::maximum(fabs(deadband_velocities_.at(0)) - xt::fabs(vx), 0) +
92 xt::maximum(fabs(deadband_velocities_.at(2)) - xt::fabs(wz), 0))) *
102 #include <pluginlib/class_list_macros.hpp>
auto getParamGetter(const std::string &ns)
Get an object to retreive parameters.
Abstract critic objective function to score trajectories.
Critic objective function for enforcing feasible constraints.
void initialize() override
Initialize critic.
void score(CriticData &data) override
Evaluate cost related to goal following.
Data to pass to critics for scoring, including state, trajectories, pruned path, global goal,...