Open takayuki5168 opened 1 year ago
Current progress. The parameters are tuned for the video to show the performance easily to see. https://user-images.githubusercontent.com/20228327/235217296-52ce9757-9e98-4c4a-a190-73ed8a619d9b.mp4
This is a very nice feature! :+1:
This pull request has been automatically marked as stale because it has not had recent activity.
The second approach was implemented and merged to the autoware.universe. https://github.com/autowarefoundation/autoware.universe/tree/main/planning/behavior_path_dynamic_avoidance_module
- Approach with the optimization-based path planner (obstacle_avoidance_planner)
Not completed yet https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_dynamic_avoidance_module/
Proposal: Regarding the upper 2nd parameter, how about setting it to false by default. When this parameter is set to true, when the trajectory is outside the drivable area, the stop point is inserted before the drivable area. When set to false, just a green virtual wall is shown and no stop point is inserted.
We tested the feature on the Japan Taxi vehicle in Tokyo. Mostly, the feature is working well.
The videos of the examples in the real world are shown here.
These are the major remained tasks.
This pull request has been automatically marked as stale because it has not had recent activity.
Checklist
Description
Currently, we have an avoidance module in behavior_path_planner only for static obstacles. To drive safer without less risk of collision, avoidance of dynamic obstacles is required.
Purpose
Avoid dynamic obstacles which are close to the ego or ego's trajectory to reduce the risk of collision.
Possible approaches
The current algorithm for static obstacle avoidance will not work for dynamic obstacle avoidance.
The algorithm of path planning for static obstacle avoidance is as follows.
Connecting points smoothly does not work well in a complicated scene since it is a rule-based algorithm.
Dynamic obstacle avoidance requires a dynamic change of the waypoints. This is the reason the current algorithm cannot be applied to dynamic obstacle avoidance.
1. Approach based on the sideshift module
Based on a quick discussion at TIER IV, by using the algorithm of the sideshift module in behavior_path_planner, we can realize dynamic obstacle avoidance.
The sideshift module plans a path by shifting a lateral distance, realizing lateral jerk/acceleration limitation.
2. Approach with the optimization-based path planner (obstacle_avoidance_planner)
Dynamic obstacle avoidance can be realized by obstacle_avoidance_planner. The following figure is static obstacle avoidance by obstacle_avoidance_planner. https://github.com/autowarefoundation/autoware.universe/pull/2880
By removing dynamic obstacles to avoid and their predicted paths from the drivable area, the avoidance will work. How stable it will be is not guaranteed though.
Definition of done
Resolve remaining issues.