Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |
Launch files
Messages
Services
Plugins
Recent questions tagged autoware_pid_longitudinal_controller at Robotics Stack Exchange
Package Summary
Tags | No category tags. |
Version | 0.47.0 |
License | Apache 2.0 |
Build type | AMENT_CMAKE |
Use | RECOMMENDED |
Repository Summary
Description | |
Checkout URI | https://github.com/autowarefoundation/autoware_universe.git |
VCS Type | git |
VCS Version | main |
Last Updated | 2025-08-16 |
Dev Status | UNKNOWN |
Released | UNRELEASED |
Tags | planner ros calibration self-driving-car autonomous-driving autonomous-vehicles ros2 3d-map autoware |
Contributing |
Help Wanted (-)
Good First Issues (-) Pull Requests to Review (-) |
Package Description
Additional Links
Maintainers
- Takamasa Horibe
- Takayuki Murooka
- Mamoru Sobue
- Yuki Takagi
Authors
- Takamasa Horibe
- Maxime CLEMENT
- Takayuki Murooka
PID Longitudinal Controller
Purpose / Use cases
The longitudinal_controller computes the target acceleration to achieve the target velocity set at each point of the target trajectory using a feed-forward/back control.
It also contains a slope force correction that takes into account road slope information, and a delay compensation function. It is assumed that the target acceleration calculated here will be properly realized by the vehicle interface.
Note that the use of this module is not mandatory for Autoware if the vehicle supports the “target speed” interface.
Design / Inner-workings / Algorithms
States
This module has four state transitions as shown below in order to handle special processing in a specific situation.
-
DRIVE
- Executes target velocity tracking by PID control.
- It also applies the delay compensation and slope compensation.
-
STOPPING
- Controls the motion just before stopping.
- Special sequence is performed to achieve accurate and smooth stopping.
-
STOPPED
- Performs operations in the stopped state (e.g. brake hold)
-
EMERGENCY.
- Enters an emergency state when certain conditions are met (e.g., when the vehicle has crossed a certain distance of a stop line).
- The recovery condition (whether or not to keep emergency state until the vehicle completely stops) or the deceleration in the emergency state are defined by parameters.
The state transition diagram is shown below.
Logics
Control Block Diagram
FeedForward (FF)
The reference acceleration set in the trajectory and slope compensation terms are output as a feedforward. Under ideal conditions with no modeling error, this FF term alone should be sufficient for velocity tracking.
Tracking errors causing modeling or discretization errors are removed by the feedback control (now using PID).
Brake keeping
From the viewpoint of ride comfort, stopping with 0 acceleration is important because it reduces the impact of braking. However, if the target acceleration when stopping is 0, the vehicle may cross over the stop line or accelerate a little in front of the stop line due to vehicle model error or gradient estimation error.
For reliable stopping, the target acceleration calculated by the FeedForward system is limited to a negative acceleration when stopping.
Slope compensation
Based on the slope information, a compensation term is added to the target acceleration.
There are two sources of the slope information, which can be switched by a parameter.
- Pitch of the estimated ego-pose (default)
- Calculates the current slope from the pitch angle of the estimated ego-pose
- Pros: Easily available
- Cons: Cannot extract accurate slope information due to the influence of vehicle vibration.
- Z coordinate on the trajectory
- Calculates the road slope from the difference of z-coordinates between the front and rear wheel positions in the target trajectory
- Pros: More accurate than pitch information, if the z-coordinates of the route are properly maintained
- Pros: Can be used in combination with delay compensation (not yet implemented)
- Cons: z-coordinates of high-precision map is needed.
- Cons: Does not support free space planning (for now)
We also offer the options to switch between these, depending on driving conditions.
Notation: This function works correctly only in a vehicle system that does not have acceleration feedback in the low-level control system.
This compensation adds gravity correction to the target acceleration, resulting in an output value that is no longer equal to the target acceleration that the autonomous driving system desires. Therefore, it conflicts with the role of the acceleration feedback in the low-level controller.
For instance, if the vehicle is attempting to start with an acceleration of 1.0 m/s^2
and a gravity correction of -1.0 m/s^2
is applied, the output value will be 0
. If this output value is mistakenly treated as the target acceleration, the vehicle will not start.
A suitable example of a vehicle system for the slope compensation function is one in which the output acceleration from the longitudinal_controller is converted into target accel/brake pedal input without any feedbacks. In this case, the output acceleration is just used as a feedforward term to calculate the target pedal, and hence the issue mentioned above does not arise.
Note: The angle of the slope is defined as positive for an uphill slope, while the pitch angle of the ego pose is defined as negative when facing upward. They have an opposite definition.
PID control
For deviations that cannot be handled by FeedForward control, such as model errors, PID control is used to construct a feedback system.
This PID control calculates the target acceleration from the deviation between the current ego-velocity and the target velocity.
This PID logic has a maximum value for the output of each term. This is to prevent the following:
- Large integral terms may cause unintended behavior by users.
- Unintended noise may cause the output of the derivative term to be very large.
Note: by default, the integral term in the control system is not accumulated when the vehicle is stationary. This precautionary measure aims to prevent unintended accumulation of the integral term in scenarios where Autoware assumes the vehicle is engaged, but an external system has immobilized the vehicle to initiate startup procedures.
However, certain situations may arise, such as when the vehicle encounters a depression in the road surface during startup or if the slope compensation is inaccurately estimated (lower than necessary), leading to a failure to initiate motion. To address these scenarios, it is possible to activate error integration even when the vehicle is at rest by setting the enable_integration_at_low_speed
parameter to true.
When enable_integration_at_low_speed
is set to true, the PID controller will initiate integration of the acceleration error after a specified duration defined by the time_threshold_before_pid_integration
parameter has elapsed without the vehicle surpassing a minimum velocity set by the current_vel_threshold_pid_integration
parameter.
File truncated at 100 lines see the full file
Changelog for package autoware_pid_longitudinal_controller
0.47.0 (2025-08-11)
0.46.0 (2025-06-20)
- Merge remote-tracking branch 'upstream/main' into tmp/TaikiYamada/bump_version_base
- fix(pid): fix a bug that acceleration feedback does not go in the
correct direction when reverse
(#10822)
- fix(pid): fix a bug that acceleration feedback does not go in the correct direction when reverse
* fix CI
- fix(pid_longitudinal_controller): fix reseting the prev value (#10684)
- Contributors: TaikiYamada4, Yuki TAKAGI, Yuxuan Liu
0.45.0 (2025-05-22)
0.44.2 (2025-06-10)
0.44.1 (2025-05-01)
0.44.0 (2025-04-18)
0.43.0 (2025-03-21)
- Merge remote-tracking branch 'origin/main' into chore/bump-version-0.43
- chore: rename from [autoware.universe]{.title-ref} to [autoware_universe]{.title-ref} (#10306)
- Contributors: Hayato Mizushima, Yutaka Kondo
0.42.0 (2025-03-03)
- Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
- feat(autoware_utils): replace autoware_universe_utils with autoware_utils (#10191)
- fix: add missing includes to autoware_universe_utils (#10091)
- Contributors: Fumiya Watanabe, Ryohsuke Mitsudome, 心刚
0.41.2 (2025-02-19)
- chore: bump version to 0.41.1 (#10088)
- Contributors: Ryohsuke Mitsudome
0.41.1 (2025-02-10)
0.41.0 (2025-01-29)
-
Merge remote-tracking branch 'origin/main' into tmp/bot/bump_version_base
-
fix: remove unnecessary parameters (#9935)
-
feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in fil… (#9848) feat: tier4_debug_msgs changed to autoware_internal_debug_msgs in files control/autoware_pid_longitudinal_controller
-
feat(pid_longitudinal_controller): add new slope compensation mode trajectory_goal_adaptive (#9705)
-
feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency (#9685)
- feat(pid_longitudinal_controller): add virtual wall for dry steering and emergency
* fix
-
feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature (#9675)
- feat(pid_longitudinal_controller): remove trans/rot deviation validation since the control_validator has the same feature
* fix test ---------
-
feat(pid_longitudinal_controller): add smooth_stop mode in debug_values (#9681)
-
feat(pid_longitudinal_controller): update trajectory_adaptive; add debug_values, adopt rate limit fillter (#9656)
-
fix(autoware_pid_longitudinal_controller): fix bugprone-branch-clone
File truncated at 100 lines see the full file
Package Dependencies
System Dependencies
Name |
---|
eigen |
Dependant Packages
Name | Deps |
---|---|
autoware_trajectory_follower_node |