From 4c778ba310f2174c2af65635a9bf6e11d12162be Mon Sep 17 00:00:00 2001 From: Tomoya Kimura Date: Thu, 27 Jan 2022 12:53:20 +0900 Subject: [PATCH] feat(trajectory_follower): reset previous acceleration when the car starts moving (#303) Signed-off-by: tomoya.kimura --- .../src/longitudinal_controller_node.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/control/trajectory_follower_nodes/src/longitudinal_controller_node.cpp b/control/trajectory_follower_nodes/src/longitudinal_controller_node.cpp index edb52345bc07d..ab9c989368145 100644 --- a/control/trajectory_follower_nodes/src/longitudinal_controller_node.cpp +++ b/control/trajectory_follower_nodes/src/longitudinal_controller_node.cpp @@ -532,12 +532,16 @@ LongitudinalController::ControlState LongitudinalController::updateControlState( if (departure_condition_from_stopping) { m_pid_vel.reset(); m_lpf_vel_error->reset(0.0); + // prevent the car from taking a long time to start to move + m_prev_ctrl_cmd.acc = std::max(0.0, m_prev_ctrl_cmd.acc); return ControlState::DRIVE; } } else if (current_control_state == ControlState::STOPPED) { if (departure_condition_from_stopped) { m_pid_vel.reset(); m_lpf_vel_error->reset(0.0); + // prevent the car from taking a long time to start to move + m_prev_ctrl_cmd.acc = std::max(0.0, m_prev_ctrl_cmd.acc); return ControlState::DRIVE; } } else if (m_control_state == ControlState::EMERGENCY) {