-
Notifications
You must be signed in to change notification settings - Fork 673
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
feat(behavior_path_planner): update path when object is gone #2314
feat(behavior_path_planner): update path when object is gone #2314
Conversation
83d7b13
to
4cb059d
Compare
Codecov ReportBase: 10.64% // Head: 10.44% // Decreases project coverage by
Additional details and impacted files@@ Coverage Diff @@
## main #2314 +/- ##
==========================================
- Coverage 10.64% 10.44% -0.20%
==========================================
Files 1239 1240 +1
Lines 82824 85130 +2306
Branches 20399 21921 +1522
==========================================
+ Hits 8815 8894 +79
- Misses 64319 66265 +1946
- Partials 9690 9971 +281
*This pull request uses carry forward flags. Click here to find out more.
Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here. ☔ View full report at Codecov. |
fc57475
to
7dcd6e5
Compare
2feda2c
to
0cdf2fd
Compare
@ismetatabay Thanks for your contribution 😄 Could you show the ego behavior in case where the ego is in avoidance maneuver? I think it dangerous that the path suddenly reverts back to its original one when there is huge lateral deviation between the ego and reverted path. |
@satoshi-ota Hi, 2022-11-20.13-55-39.mp4 |
@ismetatabay Thanks for your explanation 👍 The following scene is exactly the scenario I was concerned about. In this case, I think it would be better to replan the return path from Ego's position back to the original reference path, because it is an abnormal situation for a system where the vehicle deviates significantly from its path, and I think we have to avoid such a situation as much as possible. What would you think? As another idea, I think it would be good to make the assumption that the canceling of the avoidance maneuver is limited to only when the ego has not initiated the avoidance and there is not much deviation between the ego and reverted path. |
@satoshi-ota Thanks also for suggesting 2 solutions, If the vehicle has not started the avoidance maneuver, the avoidance path can be reverted, if the avoidance maneuver has been started, remain the avoidance path to follow it. The avoidance path follows a very smooth path to return to the old path. So it made sense to me to follow this avoid path to avoid sudden lateral change. If that's okay I can update the algorithm. |
ec4439f
to
390beac
Compare
Signed-off-by: ismet atabay <ismet@leodrive.ai> feat(behavior_path_planner): update path when obstacle is gone Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai>
Signed-off-by: ismetatabay <ismet@leodrive.ai>
Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai>
Signed-off-by: ismetatabay <ismet@leodrive.ai>
Signed-off-by: ismetatabay <ismet@leodrive.ai>
Signed-off-by: ismet atabay <ismet@leodrive.ai> ci(pre-commit): autofix avoidance maneuver checker is added. Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai>
387285f
to
83256a8
Compare
Signed-off-by: ismetatabay <ismet@leodrive.ai> fix check algorithm Signed-off-by: ismetatabay <ismet@leodrive.ai>
9168592
to
4c1ccc8
Compare
@satoshi-ota hi, I updated the algorithm and the videos in the description according to the cases we talked about earlier 👍 . |
@ismetatabay Thanks a lot 👍 I'll review this, so please wait a few days. |
@ismetatabay I'm working on testing your login in my local environment, and it looks good to me 👍 Finally, could you please add description of avoid canceling (not only related param but also the assumption, flow, etc...) to the documentation? simplescreenrecorder-2022-11-28_17.46.19.mp4 |
Signed-off-by: ismetatabay <ismet@leodrive.ai>
@satoshi-ota hi, I added "Avoidance Cancelling" section to the documentation. At this section, I explain Avoidance Module behavior at each different cases. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ismetatabay Perfect 👍
Thanks for your contribution!
If `enable_update_path_when_object_is_gone` parameter is true, Avoidance Module takes different actions according to the situations as follows: | ||
|
||
- If vehicle stops: If there is any object in the path of the vehicle, the avoidance path is generated. If this object goes away while the vehicle is stopping, the avoidance path will cancelled. | ||
- If vehcile is in motion, but avoidance maneuver doesn't started: If there is any object in the path of the vehicle, the avoidance path is generated. If this object goes away while the vehicle is not started avoidance maneuver, the avoidance path will cancelled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@ismetatabay Sorry, could you fix this typo? 😅
vehcile -> vehicle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@satoshi-ota Sorry i missed it, i updated it now. 👍
|
||
- If vehicle stops: If there is any object in the path of the vehicle, the avoidance path is generated. If this object goes away while the vehicle is stopping, the avoidance path will cancelled. | ||
- If vehcile is in motion, but avoidance maneuver doesn't started: If there is any object in the path of the vehicle, the avoidance path is generated. If this object goes away while the vehicle is not started avoidance maneuver, the avoidance path will cancelled. | ||
- If vehcile is in motion, avoidance maneuver started: If there is any object in the path of the vehicle, the avoidance path is generated,but if this object goes away while the vehicle is started avoidance maneuver, the avoidance path will not cancelled. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
vehcile -> vehicle
@ismetatabay Thanks 😄 You can merge this PR 🎉 |
…efoundation#2314) * feat(behavior_path_planner): update state with obstacles. Signed-off-by: ismet atabay <ismet@leodrive.ai> feat(behavior_path_planner): update path when obstacle is gone Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix Signed-off-by: ismetatabay <ismet@leodrive.ai> * update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> * readme.md is updated Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix Signed-off-by: ismetatabay <ismet@leodrive.ai> * avoidance maneuver checker is added. Signed-off-by: ismet atabay <ismet@leodrive.ai> ci(pre-commit): autofix avoidance maneuver checker is added. Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> * fix check algorithm Signed-off-by: ismetatabay <ismet@leodrive.ai> fix check algorithm Signed-off-by: ismetatabay <ismet@leodrive.ai> * documentation is updated. Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix * fix typos Signed-off-by: ismetatabay <ismet@leodrive.ai> Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Signed-off-by: Kotaro Yoshimoto <pythagora.yoshimoto@gmail.com>
…efoundation#2314) * feat(behavior_path_planner): update state with obstacles. Signed-off-by: ismet atabay <ismet@leodrive.ai> feat(behavior_path_planner): update path when obstacle is gone Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix Signed-off-by: ismetatabay <ismet@leodrive.ai> * update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> update check mechanism Signed-off-by: ismetatabay <ismet@leodrive.ai> * readme.md is updated Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix Signed-off-by: ismetatabay <ismet@leodrive.ai> * avoidance maneuver checker is added. Signed-off-by: ismet atabay <ismet@leodrive.ai> ci(pre-commit): autofix avoidance maneuver checker is added. Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> * fix check algorithm Signed-off-by: ismetatabay <ismet@leodrive.ai> fix check algorithm Signed-off-by: ismetatabay <ismet@leodrive.ai> * documentation is updated. Signed-off-by: ismetatabay <ismet@leodrive.ai> * ci(pre-commit): autofix * fix typos Signed-off-by: ismetatabay <ismet@leodrive.ai> Signed-off-by: ismet atabay <ismet@leodrive.ai> Signed-off-by: ismetatabay <ismet@leodrive.ai> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Signed-off-by: kminoda <koji.minoda@tier4.jp>
Signed-off-by: ismet atabay ismet@leodrive.ai
Description
At avoidance module in behavior_path_planner, if the detected objects occur in path, avoidance module shift path points to around the vehicle. Moreover, if the detected objects are gone the shifted path is not updated. The reason of this, avoidance module' current state stays in the "RUNNING" state until the vehicle reach its goal. I added a feature to change this state, and this feature allows the path to be updated by completing the task of the avoidance module if the detected objects are gone.
To control this, I added a parameter with the name
enable_update_path_when_object_is_gone
and set the default value tofalse
.enable_update_path_when_object_is_gone
must betrue
for this feature to be used.Related links
closes #2272
Tests performed
Before PR (
enable_update_path_when_object_is_gone
is set tofalse
):before_pr.mp4
After PR (
enable_update_path_when_object_is_gone
is set totrue
):Case 1: The vehicle stops.
vehicle_stops.mp4
Case 2: The vehicle moves, avoidance maneuver doesn't starts.
vehicle_runs_wo_avoidance.mp4
Case 3: The vehicle moves, avoidance maneuver starts.
vehicle_runs_w_avoidance.mp4
Notes for reviewers
Pre-review checklist for the PR author
The PR author must check the checkboxes below when creating the PR.
In-review checklist for the PR reviewers
The PR reviewers must check the checkboxes below before approval.
Post-review checklist for the PR author
The PR author must check the checkboxes below before merging.
After all checkboxes are checked, anyone who has write access can merge the PR.