-
Notifications
You must be signed in to change notification settings - Fork 34
feat(pid_longitudinal_controller): don't switch to DRIVE if the state conditions are not met (#11369) #2464
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: beta/v0.48
Are you sure you want to change the base?
feat(pid_longitudinal_controller): don't switch to DRIVE if the state conditions are not met (#11369) #2464
Conversation
… conditions are not met (autowarefoundation#11369) * feat(pid_longitudinal_controller): don't switch to DRIVE if the state conditions are not met Signed-off-by: Mert Çolak <[email protected]> * add is_autoware_control_enabled field for tests Signed-off-by: Mert Çolak <[email protected]> --------- Signed-off-by: Mert Çolak <[email protected]>
|
Thank you for contributing to the Autoware project! 🚧 If your pull request is in progress, switch it to draft mode. Please ensure:
|
|
|
@co-pilot-auto Summarize and review this PR. Visualize the updated state machine of the controller. |
|
@Owen-Liuyuxuan 🔄 Co-Pilot-Auto Client Triggered... Please wait for the results. View Client trigger workflow progress: GitHub Actions Run |
|
@Owen-Liuyuxuan Here's the analysis: Here's a summary and review of the PR, along with the updated state machine diagram. Summary of the PRThis Pull Request (PR) addresses an issue in the The core change introduces a condition to keep the controller in the Key Changes:
Review of the PRThe PR effectively addresses the reported oscillation issue. By explicitly checking Positive Aspects:
Potential Considerations/Suggestions:
Updated State Machine DiagramHere's the Mermaid stateDiagram-v2
direction LR
[*] --> STOPPED
state "STOPPED<br/>Entry: Brake hold etc." as STOPPED
state "DRIVE<br/>Entry: PID control, delay comp." as DRIVE
state "STOPPING<br/>Entry: Smooth stopping sequence" as STOPPING
state "EMERGENCY<br/>Entry: Emergency stop" as EMERGENCY
STOPPED --> DRIVE : is_under_control && departure_condition_from_stopped
STOPPED --> STOPPING : is_under_control && has_nonzero_target_vel && !departure_condition_from_stopped
STOPPED --> EMERGENCY : emergency_condition
STOPPED --> STOPPED : !is_under_control && stopped_condition
DRIVE --> STOPPING : stopping_condition
DRIVE --> EMERGENCY : emergency_condition
STOPPING --> STOPPED : stopped_condition
STOPPING --> EMERGENCY : emergency_condition
EMERGENCY --> STOPPED : emergency_recovery_condition
Explanation of Changes in Diagram:
This diagram clearly visualizes how the PR's change prevents the controller from leaving the |



In the analysis of the product using version 0.48, I observed the state oscillation reported in the following PR
autowarefoundation#11369
so cherry-pick it.
Thank you @MertClk