autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
1k stars 641 forks source link

`avoidance by lane change` module issues #8274

Closed felixf4xu closed 2 months ago

felixf4xu commented 3 months ago

Checklist

Description

Hi,

I'm testing the avoidance by lance change module but I have several issues.

image

My test setup:

I disabled all other "behavior path modules" and only left "avoidance by lane change" as true like this (in launcher/autoware_launch/autoware_launch/config/planning/preset/default_preset.yaml):

  - arg:
      name: launch_avoidance_by_lane_change_module
      default: "true"

I set a goal on the left side lane of the starting initial position, then set an "2D Dummy car" in front of the ego vehicle. The dummy car's velocity is set to 0. The result is show as in the screenshot. In rviz2, I checked the PathChangeCandidate_AvoidanceByLC and it's displayed.

Expected behavior

Issue 1:

the "virtual wall" of avoidance_by_lane_change is close to the goal, not the obstacle. It it correct? If I move the goal to a further position, the virtual wall will move along with the goal. Should it be close to the obstacle?

Issue 2:

Should I disable obstacle_stop module? I see a virtual wall of it.

Actual behavior

In this setup, If I click "auto" to start the planning simulation, the ego vehicle will start and drive in its path and then stops in front of the dummy car, it actually does not avoid or change the lane.

Steps to reproduce

check the screenshot I provided.

Versions

Ubuntu 22 ros2 Humble Autoware, main branch.

Possible causes

Different module settings? Planner Priorities? Enable other modules?

Additional context

No response

mehmetdogru commented 3 months ago

@felixf4xu Thanks for creating the issue.

Issue 1: Surely the virtual wall is not created in right place. Virtual wall for avoidance_by_lane_change should be before the object.

Issue 2: No need to disable obstacle_cruise_planner to test your case

Could you share your HD-Map and create a scenario if possible (using https://scenario.ci.tier4.jp/scenario_editor) so that this issue can be reproducible easily by the developers?

felixf4xu commented 3 months ago

It seems that by PR https://github.com/autowarefoundation/autoware.universe/pull/7436, waitApproval()/clearWaitingApproval() pair is deleted from the base class of LaneChangeInterface::plan(), then it's lane change module's (in my case, it's avoidance_by_lane_change module) responsibility to call clearWaitingApproval().

But in the latest code, clearWaitingApproval() is never called.

zulfaqar-azmi-t4 commented 3 months ago

The current behavior is as intended. The current virtual wall position is positioned at the terminal start point.

The Avoidance by lane change module is not well refined enough, therefore it doesn't insert the stop point before obstacles.