diff --git a/control/autoware_mpc_lateral_controller/src/mpc.cpp b/control/autoware_mpc_lateral_controller/src/mpc.cpp index c671760d43b6a..dfc4d82541bf8 100644 --- a/control/autoware_mpc_lateral_controller/src/mpc.cpp +++ b/control/autoware_mpc_lateral_controller/src/mpc.cpp @@ -765,7 +765,7 @@ VectorXd MPC::calcSteerRateLimitOnTrajectory( return reference.back(); }; - // when the vehicle is stopped, no steering rate limit. + // When the vehicle is stopped, a large steer rate limit is used for the dry steering. constexpr double steer_rate_lim = 100.0; const bool is_vehicle_stopped = std::fabs(current_velocity) < 0.01; if (is_vehicle_stopped) { diff --git a/control/autoware_pid_longitudinal_controller/src/pid_longitudinal_controller.cpp b/control/autoware_pid_longitudinal_controller/src/pid_longitudinal_controller.cpp index 2219054eba9c7..098ab3b7b96ef 100644 --- a/control/autoware_pid_longitudinal_controller/src/pid_longitudinal_controller.cpp +++ b/control/autoware_pid_longitudinal_controller/src/pid_longitudinal_controller.cpp @@ -721,6 +721,9 @@ void PidLongitudinalController::updateControlState(const ControlData & control_d const bool current_keep_stopped_condition = std::fabs(current_vel) < vel_epsilon && m_enable_keep_stopped_until_steer_convergence && !lateral_sync_data_.is_steer_converged; + // NOTE: Dry steering is considered unnecessary when the steering is converged twice in a + // row. This is because lateral_sync_data_.is_steer_converged is not the current but + // the previous value due to the order controllers' run and sync functions. const bool keep_stopped_condition = !m_prev_keep_stopped_condition || (current_keep_stopped_condition || *m_prev_keep_stopped_condition);