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

behavior_path_planner generating invalid path orientation #2125

Closed
3 tasks done
beyzanurkaya opened this issue Oct 20, 2022 · 13 comments · Fixed by #2732, autowarefoundation/autoware_common#148 or autowarefoundation/autoware_launch#250
Assignees
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned) priority:low Lower urgency, can be addressed later. type:bug Software flaws or errors.

Comments

@beyzanurkaya
Copy link
Contributor

beyzanurkaya commented Oct 20, 2022

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I've agreed with the maintainers that I can plan this task.

Description

When the vehicle passes into the other lane for a reason such as trying to swerve an obstacle while driving in its own lane, an invalid path occurs and the vehicle stops. In order to avoid such situations, it should be checked whether the path created by behavior_path_planner is valid.

vokoscreen-2022-10-20_12-39-56.mp4

Expected behavior

It is necessary to check that the path occurred by the behavior_path_planner is valid and that the ego can drive. So that invalid routes are prevented from being occurred. The updated path must be generated as a path that the ego can drive.

Actual behavior

The yaw angle between the path and the vehicle's self pose is not controlled. So that invalid paths can be occurred and vehicle stops.

Steps to reproduce

  1. Set the rear_drive/front_radius_ratio and rear_drive/rear_radius_ratio values to 2.0 in obstacle_avoidance_planner.param.yaml file.
  2. Set threshold_distance_object_is_on_center to 0.001 in avoidance.param.yaml.
  3. Set expand_drivable_area to true, left_bound_offset to 1.9 in lane_following.param.yaml
  4. Download isuzu_vehicle_launch in here
  5. Download test.zip
  6. run ros2 launch scenario_test_runner scenario_test_runner.launch.py sensor_model:=sample_sensor_kit vehicle_model:=isuzu_vehicle \ scenario:=/scenario/path/case1.yaml \ architecture_type:=awf/universe launch_rviz:=false launch_autoware:=true
@beyzanurkaya beyzanurkaya added the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Oct 20, 2022
@takayuki5168
Copy link
Contributor

@beyzanurkaya Can I ask more about the situation.
Which kind of function enables driving with a lateral deviation to the path from the behavior path planner.

@beyzanurkaya beyzanurkaya added the type:bug Software flaws or errors. label Oct 21, 2022
@beyzanurkaya
Copy link
Contributor Author

@takayuki5168 In our situation lateral deviation must be less than M_PI / 2.0

@takayuki5168
Copy link
Contributor

@beyzanurkaya Maybe I got it.

Set the rear_drive/front_radius_ratio and rear_drive/rear_radius_ratio values to 2.0 in
obstacle_avoidance_planner.param.yaml file.

This 2.0 makes the vehicle moves laterally compared to path from behavior.
I think this value is too large.

Is there any reason for this tuning?
We, TIER IV, are integrating Autoware to the bus, and its parameter is like this.
image

@beyzanurkaya
Copy link
Contributor Author

I used these values to replicate this bug in planning.simulator

@mehmetdogru
Copy link
Contributor

mehmetdogru commented Oct 21, 2022

@takayuki5168

Hi, I asked Beyza to create a PR about a problem we encountered during tests. To make it easier to reproduce she increased the mpt optimization circle ratio however we don't use this params. The params we use for mpt is as follows:

      mpt:
        bounds_search_widths: [0.45, 0.15, 0.05, 0.01]

        clearance:  # clearance(distance) between vehicle and roads/objects when generating trajectory
          hard_clearance_from_road: 0.01 # clearance from road boundary[m]
          soft_clearance_from_road: 0.15 # clearance from road boundary[m]
          soft_second_clearance_from_road: 0.15 # clearance from road boundary[m]
          clearance_from_object: 0.5 # clearance from object[m]
          extra_desired_clearance_from_road: 0.0 # extra desired clearance from road
          vehicle_circles:
            method: "uniform_circle"

            uniform_circle:
              num: 3
              radius_ratio: 1.13

The reason why we are using this kind of tuning is that the campus has some 90 deg turns and mpt is not able to optimize most of the time inside the drivable area if you dont increase the clearances from road and if you dont make the circles bigger. That is the reason why the bus deviates from path that much so it would be partially on the other lane. And I have some solutions in my mind about this issue to propose.

However regardless of this issue I mention above, path planner should not be able to plan a path where there is nearly 180 degrees deviation from the path. So this issue aims to fix that problem actually :)

@takayuki5168
Copy link
Contributor

@mehmetdogru I understand. Thank you for your explanation.

FYI: This PR enables drivable area expansion in behavior path planner. After this PR is merged, maybe better to use this instead of clearance in mpt.
#1973

path planner should not be able to plan a path where there is nearly 180 degrees deviation from the path.

Avoidance module in behavior path planner has such a kind of function. This parameter should be added to drivable area expansion.

@BonoloAWF BonoloAWF added this to the Bus ODD Nov-Dec Milestone milestone Oct 26, 2022
@BonoloAWF BonoloAWF added the priority:high High urgency and importance. label Oct 26, 2022
@xmfcx
Copy link
Contributor

xmfcx commented Nov 15, 2022

Currently @mehmetdogru and @beyzanurkaya are looking for alternative solutions for this issue.

@mitsudome-r
Copy link
Member

@mehmetdogru and @beyzanurkaya Any updates on this?

@mehmetdogru
Copy link
Contributor

@mitsudome-r

We don't have any updates on this one for now unfortunately.

@BonoloAWF BonoloAWF moved this to Todo in Bus ODD Project Dec 7, 2022
@mehmetdogru
Copy link
Contributor

mehmetdogru commented Dec 20, 2022

Working on an approach, I am running some tests on it, I will create a PR.

@beyzanurkaya
Copy link
Contributor Author

@takayuki5168 I couldn't reproduce this issue. Has any improvement been made about this issue?

@takayuki5168
Copy link
Contributor

@beyzanurkaya As long as I know, there isn't any update on this issue.

@mehmetdogru
Copy link
Contributor

@mitsudome-r since to solve the issue, #2732 should be merged, I will be reopening the issue.

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) priority:low Lower urgency, can be addressed later. type:bug Software flaws or errors.
Projects
No open projects
Status: Done
6 participants