autowarefoundation / autoware.universe

https://autowarefoundation.github.io/autoware.universe/
Apache License 2.0
874 stars 564 forks source link

dynamic_obstacle_stop_module does not check obstacles behind EGO's vehicle #7065

Open beyzanurkaya opened 1 month ago

beyzanurkaya commented 1 month ago

Checklist

Description

Even if objects behind the EGO vehicle are detected, they are not used in path planning. This can result in a vehicle following the EGO from behind and trying to overtake it, potentially causing a collision. Therefore, objects located behind the EGO vehicle and whose predicted paths intersect with the trajectory should be taken into consideration in _dynamic_obstacle_stopmodule

Purpose

To prevent a potential collision and make autonomous driving safer.

Possible approaches

Objects behind the EGO vehicle whose predicted path intersects with the EGO's trajectory should not be filtered out in the _dynamic_obstacle_stopmodule and should be taken into consideration.

Definition of done

As long as a vehicle following the EGO from behind and attempting to overtake remains within the detection area, the EGO vehicle will stop.

maxime-clem commented 1 month ago

Thank you for opening this issue. Currently the dynamic_obstacle_stop module does not use the predicted paths but uses a simple "constant heading + constant velocity" model to predict the future positions of the dynamic objects (see the documentation page).

I agree we may want to consider predicted paths of dynamic objects. How about adding two parameters to the dynamic_obstacle_stop module ? One parameter ignore_objects_behind_ego, and one parameter use_predicted_paths.

By the way, I am planning to move the dynamic_obstacle_module to the new motion_velocity_planner (still a work in progress, see https://github.com/autowarefoundation/autoware.universe/pull/7064) to allow more accurate collision detection.

beyzanurkaya commented 1 month ago

Thanks for your comment @maxime-clem Yes, I am aware that dynamic_obstacle_stop_module does not use predicted_path.

I am considering proceeding as follows:

What do you think?

Additionally, I agree with you. I think it would be more logical for the _dynamic_obstacle_stopmodule to be inside the _motion_velocityplanner.

maxime-clem commented 1 month ago

Your plan sounds good thank you :+1: If you need any help with developing these new features let me know. I will also be happy to review the PR once it is ready.