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

Dynamic_obstacle_avoidance does not work stable #7689

Closed
3 tasks done
beyzanurkaya opened this issue Jun 25, 2024 · 5 comments
Closed
3 tasks done

Dynamic_obstacle_avoidance does not work stable #7689

beyzanurkaya opened this issue Jun 25, 2024 · 5 comments
Assignees
Labels
component:planning Route planning, decision-making, and navigation. (auto-assigned) status:stale Inactive or outdated issues. (auto-assigned)

Comments

@beyzanurkaya
Copy link
Contributor

beyzanurkaya commented Jun 25, 2024

Checklist

  • I've read the contribution guidelines.
  • I've searched other issues and no duplicate issues were found.
  • I'm convinced that this is not my fault but a bug.

Description

A moving object is heading towards the EGO vehicle. The dynamic_obstacle_avoidance module cuts the drivable area based on this object, but in some cases, it becomes confused about which side of the drivable area to cut.

unstable-dynamic-avoidance.mp4

Expected behavior

The dynamic_obstacle_avoidance module should stably perform cutting the object from the drivable area without any confusion.

Actual behavior

The dynamic_obstacle_avoidance module is unable to decide from which side to cut the object from the drivable area.

Steps to reproduce

  1. run plan_sim
    map: LEO-VM-00038.zip
  2. add a dynamic object

Versions

Possible causes

Additional context

@beyzanurkaya beyzanurkaya added the component:planning Route planning, decision-making, and navigation. (auto-assigned) label Jun 25, 2024
@beyzanurkaya beyzanurkaya self-assigned this Jun 25, 2024
@beyzanurkaya beyzanurkaya moved this to Todo in Autoware Labs Jun 25, 2024
@beyzanurkaya beyzanurkaya changed the title dynamic_obstacle_avoidance does not work stably Dynamic_obstacle_avoidance does not work stably Jun 25, 2024
@xmfcx xmfcx changed the title Dynamic_obstacle_avoidance does not work stably Dynamic_obstacle_avoidance does not work stable Jun 25, 2024
@beyzanurkaya
Copy link
Contributor Author

I think the problem here is that the lane is bidirectional:

Single Directional Lane:

single-direction.mp4

Bidirectional Lane:

bidirectional.mp4

I haven't debugged it yet, but my guess is that the module cannot determine which direction the object is on the lane. Therefore, it cannot properly decide which side of the drivable area to cut.

@beyzanurkaya
Copy link
Contributor Author

isLeft function sometimes returns false even though the NPC is clearly to the left of EGO vehicle

@brkay54 brkay54 moved this from Todo to In Progress in Autoware Labs Jul 10, 2024
@beyzanurkaya
Copy link
Contributor Author

beyzanurkaya commented Jul 16, 2024

When the road is single direction, it means that the NPC is going in the wrong direction in this video. That's why only a straight predicted path is generated for the NPC in autoware_map_based_prediction.

single-direction.mp4

When the road is bi-directional, there doesn't seem to be any situation where either the EGO or the NPC violates the road rules. Therefore, a predicted path is generated as if both vehicles will move along the centerline. This causes the object's future position to be on the path of the EGO. As a result, the module is trying to remove the wrong part from the drivable area.

In conclusion, If the road is bi-directional, vehicles should drive from the right or left side according to the traffic flow, not from the road's centerline.

I will open an issue for this in autoware_map_based_prediction.

Copy link

stale bot commented Sep 14, 2024

This pull request has been automatically marked as stale because it has not had recent activity.

@stale stale bot added the status:stale Inactive or outdated issues. (auto-assigned) label Sep 14, 2024
@beyzanurkaya
Copy link
Contributor Author

I planned to solve this problem by shifting the predicted_paths of the objects to the right or left. With @technolojin -san's PR, the instability in dynamic_obstacle_avoidance was eliminated. I'm closing 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) status:stale Inactive or outdated issues. (auto-assigned)
Projects
None yet
Development

No branches or pull requests

1 participant