Skip to content
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(lane_change): reduce prepare duration when blinker has been activated #9185

Open
wants to merge 38 commits into
base: main
Choose a base branch
from

Conversation

mkquda
Copy link
Contributor

@mkquda mkquda commented Oct 30, 2024

Description

Currently, a constant prepare duration (parameterized) is being used when generating LC path candidates, this was necessary because until recently turn signal was activated only after LC path was approved.

However, LC turn signal logic was recently changed to activate as soon as we have the intention to change lanes (i.e: when LC module is run). Therefore it is no longer necessary to have a constant long prepare duration, and we can reduce the prepare duration as the turn signal on duration increases.

Changes

  • Add member variable signal_activation_time_ to LaneChangeBase class
  • Add member variable lane_change_prepare_duration to TransientData struct
  • Add function calc_actual_prepare_duration to calculate actual needed prepare duration based on current velocity and signal on duration
  • Modify function update_transient_data to set lane_change_prepare_duration

Related links

How was this PR tested?

Notes for reviewers

None.

Interface changes

None.

ROS Parameter Changes

Additions and removals

Change type Parameter Name Type Default Value Description
Added min_prepare_duration double 1.0 Minimum preparation time for the ego vehicle to be ready to perform lane change
Added lane_changing_decel_factor double 0.5 longitudinal deceleration factor during lane changing phase

Modifications

Version Parameter Name Type Default Value Description
Old prepare_duration double 4.0 Preparation time for the ego vehicle to be ready to perform lane change
New max_prepare_duration double 4.0 Maximum preparation time for the ego vehicle to be ready to perform lane change

Effects on system behavior

When LC module activates, initially prepare duration will be max, as signal activation duration increases, prepare duration will be gradually reduced to minimum, allowing a shorter LC path to be found.

@github-actions github-actions bot added type:documentation Creating or refining documentation. (auto-assigned) component:planning Route planning, decision-making, and navigation. (auto-assigned) labels Oct 30, 2024
Copy link

github-actions bot commented Oct 30, 2024

Thank you for contributing to the Autoware project!

🚧 If your pull request is in progress, switch it to draft mode.

Please ensure:

mkquda and others added 10 commits October 31, 2024 09:46
Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: github-actions <[email protected]>
…owarefoundation#9173)

* refactor(time_utils): prefix package and namespace with autoware

Signed-off-by: Esteve Fernandez <[email protected]>

* refactor(time_utils): prefix package and namespace with autoware

Signed-off-by: Esteve Fernandez <[email protected]>

* style(pre-commit): autofix

---------

Signed-off-by: Esteve Fernandez <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
* add requested feature

Signed-off-by: Go Sakayori <[email protected]>

* Update planning/autoware_rtc_interface/test/test_rtc_interface.cpp

Co-authored-by: Satoshi OTA <[email protected]>

---------

Signed-off-by: Go Sakayori <[email protected]>
Co-authored-by: Satoshi OTA <[email protected]>
fix(bpp): calcDistanceToRedTrafficLight null

Signed-off-by: Shumpei Wakabayashi <[email protected]>
… predictor (autowarefoundation#9201)

* refactor: grouping functions

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: grouping parameters

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: rename member road_users_history to road_users_history_

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: separate util functions

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: Add predictor_vru.cpp and utils.cpp to map_based_prediction_node

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: Add explicit template instantiation for removeOldObjectsHistory function

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: Add tf2_geometry_msgs to data_structure

Signed-off-by: Taekjin LEE <[email protected]>

* refactor: Remove unused variables and functions in map_based_prediction_node.cpp

Signed-off-by: Taekjin LEE <[email protected]>

* Update perception/autoware_map_based_prediction/include/map_based_prediction/predictor_vru.hpp

* Apply suggestions from code review

* style(pre-commit): autofix

---------

Signed-off-by: Taekjin LEE <[email protected]>
Co-authored-by: Mamoru Sobue <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
…er (autowarefoundation#8912)

* Moved ndt_omp into ndt_scan_matcher

Signed-off-by: Shintaro Sakoda <[email protected]>

* Added Copyright

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed include

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed cast style

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed include

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed honorific title

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed honorific title

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed include hierarchy

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed include hierarchy

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed hierarchy

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed NVTP to NVTL

Signed-off-by: Shintaro Sakoda <[email protected]>

* Added cspell:ignore

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed miss spell

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed include

Signed-off-by: Shintaro Sakoda <[email protected]>

* Renamed applyFilter

Signed-off-by: Shintaro Sakoda <[email protected]>

* Moved ***_impl.hpp from include/ to src/

Signed-off-by: Shintaro Sakoda <[email protected]>

* style(pre-commit): autofix

* Fixed variable scope

Signed-off-by: Shintaro Sakoda <[email protected]>

* Fixed to pass by reference

Signed-off-by: Shintaro Sakoda <[email protected]>

---------

Signed-off-by: Shintaro Sakoda <[email protected]>
Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
@github-actions github-actions bot added component:perception Advanced sensor data processing and environment understanding. (auto-assigned) component:localization Vehicle's position determination in its environment. (auto-assigned) component:control Vehicle control algorithms and mechanisms. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) component:common Common packages from the autoware-common repository. (auto-assigned) tag:require-cuda-build-and-test and removed component:perception Advanced sensor data processing and environment understanding. (auto-assigned) component:localization Vehicle's position determination in its environment. (auto-assigned) component:control Vehicle control algorithms and mechanisms. (auto-assigned) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) component:common Common packages from the autoware-common repository. (auto-assigned) tag:require-cuda-build-and-test labels Oct 31, 2024
mkquda and others added 9 commits November 13, 2024 16:08
…-prepare-duration-when-blinker-has-been-activated
…nge_module/src/utils/utils.cpp

Co-authored-by: Zulfaqar Azmi <[email protected]>
…blinker-has-been-activated

Signed-off-by: mohammad alqudah <[email protected]>
…blinker-has-been-activated

Signed-off-by: mohammad alqudah <[email protected]>
…n calc_actual_prepare_duration

Signed-off-by: mohammad alqudah <[email protected]>
…blinker-has-been-activated

Signed-off-by: mohammad alqudah <[email protected]>
@github-actions github-actions bot added the type:ci Continuous Integration (CI) processes and testing. (auto-assigned) label Nov 28, 2024
Signed-off-by: mohammad alqudah <[email protected]>
Comment on lines +390 to +394
const auto & params = common_data_ptr->lc_param_ptr->trajectory;
const auto lane_changing_acc = common_data_ptr->transient_data.is_ego_near_current_terminal_start
? prepare_longitudinal_acc * params.lane_changing_decel_factor
: 0.0;
return lane_changing_acc;
Copy link
Contributor

@zulfaqar-azmi-t4 zulfaqar-azmi-t4 Dec 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it might be better to either

  1. separate this into another PR, and merge the PR together with this PR to ensure no degradation, or
  2. renaming this PR to something other.

I prefer the first, as it is more proper. I understand that the fix is introduced due to scenario degradation, but the reason for adding acceleration related fix into blinker's PR seems a little vague.

It also save us a little trouble when cherry-picking things.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes sir 🫡

Copy link
Contributor Author

@mkquda mkquda Dec 3, 2024

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned) tag:run-build-and-test-differential Mark to enable build-and-test-differential workflow. (used-by-ci) type:ci Continuous Integration (CI) processes and testing. (auto-assigned) type:documentation Creating or refining documentation. (auto-assigned)
Projects
Status: No status
Development

Successfully merging this pull request may close these issues.

10 participants