Skip to content

Commit 2e6eba7

Browse files
Prevent MPPI controller from resetting speed limits upon goal execution. (#5165)
Signed-off-by: Leander Stephen D'Souza <[email protected]>
1 parent bd8f422 commit 2e6eba7

File tree

3 files changed

+7
-4
lines changed

3 files changed

+7
-4
lines changed

nav2_mppi_controller/include/nav2_mppi_controller/optimizer.hpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -120,8 +120,9 @@ class Optimizer
120120

121121
/**
122122
* @brief Reset the optimization problem to initial conditions
123+
* @param Whether to reset the constraints to its base values
123124
*/
124-
void reset();
125+
void reset(bool reset_dynamic_speed_limits = true);
125126

126127
/**
127128
* @brief Get the motion model time step

nav2_mppi_controller/src/controller.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ void MPPIController::deactivate()
8686

8787
void MPPIController::reset()
8888
{
89-
optimizer_.reset();
89+
optimizer_.reset(false /*Don't reset zone-based speed limits between requests*/);
9090
}
9191

9292
geometry_msgs::msg::TwistStamped MPPIController::computeVelocityCommands(

nav2_mppi_controller/src/optimizer.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ void Optimizer::setOffset(double controller_frequency)
132132
}
133133
}
134134

135-
void Optimizer::reset()
135+
void Optimizer::reset(bool reset_dynamic_speed_limits)
136136
{
137137
state_.reset(settings_.batch_size, settings_.time_steps);
138138
control_sequence_.reset(settings_.time_steps);
@@ -141,7 +141,9 @@ void Optimizer::reset()
141141
control_history_[2] = {0.0f, 0.0f, 0.0f};
142142
control_history_[3] = {0.0f, 0.0f, 0.0f};
143143

144-
settings_.constraints = settings_.base_constraints;
144+
if (reset_dynamic_speed_limits) {
145+
settings_.constraints = settings_.base_constraints;
146+
}
145147

146148
costs_.setZero(settings_.batch_size);
147149
generated_trajectories_.reset(settings_.batch_size, settings_.time_steps);

0 commit comments

Comments
 (0)