From 8d4f163167e085a67b7912c2d60fad65e501bd84 Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 00:07:24 -0400 Subject: [PATCH 1/6] feat: update planning architecture document Signed-off-by: Takamasa Horibe --- .../image/planning-diagram.drawio.svg | 1376 +++++++++++++++++ .../image/planning-functions.drawio.svg | 4 + .../autoware-architecture/planning/index.md | 82 +- 3 files changed, 1460 insertions(+), 2 deletions(-) create mode 100644 docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg create mode 100644 docs/design/autoware-architecture/planning/image/planning-functions.drawio.svg diff --git a/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg b/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg new file mode 100644 index 00000000000..85a2d00d9fd --- /dev/null +++ b/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg @@ -0,0 +1,1376 @@ + + + + + + + + + + + + +
+
+
+ Parking Scenario +
+
+
+
+ + Parking Scenario + +
+
+ + + + + + + +
+
+
+ route +
+
+
+
+ + route + +
+
+ + + + + +
+
+
+ mission_planner +
+
+
+
+ + mission_planner + +
+
+
+ + + + + +
+
+
+ path_with_lane_id +
+
+
+
+ + path_with_lane_id + +
+
+ + + + + + + + +
+
+
+ path +
+
+
+
+ + path + +
+
+ + + + + + + + +
+
+
+ Trajectory +
+
+
+
+ + Trajectory + +
+
+ + + + + +
+
+
+ obstacle_ +
+ avoidance_planner +
+
+
+
+ + obstacle_... + +
+
+
+ + + + + +
+
+
+ Trajectory +
+
+
+
+ + Trajectory + +
+
+ + + + + +
+
+
+ surround_ +
+ obstacle_checker +
+
+
+
+ + surround_... + +
+
+
+ + + + + +
+
+
+ Trajectory +
+
+
+
+ + Trajectory + +
+
+ + + + + + + + +
+
+
+ Trajectory +
+
+
+
+ + Trajectory + +
+
+ + + + + +
+
+
+ scenario_selector +
+
+
+
+ + scenario_selector + +
+
+
+ + + + + +
+
+
+ + Trajectory + +
+
+
+
+ + Trajectory + +
+
+ + + + + +
+
+
+ motion_velocity_ +
+ smoother +
+
+
+
+ + motion_velocity_... + +
+
+
+ + + + + +
+
+
+ Trajectory +
+
+
+
+ + Trajectory + +
+
+ + + + + +
+
+
+ freespace_planner +
+
+
+
+ + freespace_planner + +
+
+
+ + + + + +
+
+
+ occupancy_grid +
+
+
+
+ + occupancy_grid + +
+
+ + + + + +
+
+
+ costmap_generator +
+
+
+
+ + costmap_generator + +
+
+
+ + + + +
+
+
+ behavior +
+ velocity +
+ planner +
+
+
+
+ + behavior... + +
+
+ + + + +
+
+
+ behavior +
+ path +
+ planner +
+
+
+
+ + behavior... + +
+
+ + + + + +
+
+
+ goal +
+
+
+
+ + goal + +
+
+ + + + + + +
+
+
+ obstacle +
+ stop +
+ planner +
+
+
+
+ + obstacle... + +
+
+ + + + +
+
+
+ slow_down +
+
+
+
+ + slow_down + +
+
+ + + + +
+
+
+ adaptive_cruise +
+
+
+
+ + adaptive_cruise + +
+
+ + + + +
+
+
+ stop +
+
+
+
+ + stop + +
+
+ + + + +
+
+
+ LaneDriving Scenario +
+
+
+
+ + LaneDriving Sce... + +
+
+ + + + +
+
+
+ + + Behavior Planning + + +
+
+
+
+ + Behavior Planning + +
+
+ + + + +
+
+
+ + + Motion Planning + + +
+
+
+
+ + Motion Planning + +
+
+ + + + + + + +
+
+
+ vector_map +
+
+
+
+ + vector_map + +
+
+ + + + +
+
+
+ To Control +
+
+
+
+ + To Control + +
+
+ + + + + +
+
+
+ vector_map +
+
+
+
+ + vector_map + +
+
+ + + + + +
+
+
+ Dynamic Objects +
+
+
+
+ + Dynamic Objects + +
+
+ + + + + +
+
+
+ Dynamic Objects +
+
+
+
+ + Dynamic Objects + +
+
+ + + + + +
+
+
+ Dynamic Objects +
+
+
+
+ + Dynamic Objects + +
+
+ + + + + +
+
+
+ Dynamic Objects +
+
+
+
+ + Dynamic Objects + +
+
+ + + + + +
+
+
+ Obstacle Points +
+
+
+
+ + Obstacle Points + +
+
+ + + + + +
+
+
+ Obstacle Points +
+
+
+
+ + Obstacle Points + +
+
+ + + + + +
+
+
+ Dynamic Objects +
+
+
+
+ + Dynamic Objects + +
+
+ + + + + +
+
+
+ Obstacle Points +
+
+
+
+ + Obstacle Points + +
+
+ + + + + +
+
+
+ route (from mission_planner) +
+
+
+
+ + route (from mission_planner) + +
+
+ + + + + +
+
+
+ map +
+
+
+
+ + map + +
+
+ + + + + + + +
+
+
+ map +
+
+
+
+ + map + +
+
+ + + + + +
+
+
+ vehicle_state +
+ TF (map to baselink) +
+
+
+
+ + vehicle_state... + +
+
+ + + + +
+
+
+
+ Localization +
+
+
+
+
+ + Localization + +
+
+ + + + + +
+
+
+ approval, +
+ force_approval +
+
+
+
+ + approval,... + +
+
+ + + + + +
+
+
+ external_crosswalk_states, +
+ external_intersection_states, +
+ external_traffic_light_states +
+
+
+
+ + external_crosswalk_states,... + +
+
+ + + + +
+
+
+ Planning +
+
+
+
+ + Planning + +
+
+ + + + + +
+
+
+ Traffic Light States +
+
+
+
+ + Traffic Light States + +
+
+ + + + + +
+
+
+ expand_stop_range +
+
+
+
+ + expand_stop_range + +
+
+ + + + +
+
+
+ Perception +
+
+
+
+ + Perception + +
+
+ + + + + +
+
+
+ velocity_limit +
+ (from external modules) +
+
+
+
+ + velocity_limit... + +
+
+ + + + +
+
+
+ Human +
+ Machine +
+ Interface +
+
+
+
+ + Human... + +
+
+ + + + + + +
+
+
+ Sensing +
+
+
+
+ + Sensing + +
+
+ + + + + + +
+
+
+ Perception +
+
+
+
+ + Perception + +
+
+ + + + + + +
+
+
+ external_velocity +
+ _limit_selector +
+
+
+
+ + external_velocity... + +
+
+ + + + + +
+
+
+ velocity_limit +
+ (from other planning modules) +
+
+
+
+ + velocity_l... + +
+
+ + + + +
+
+
+ avoidance +
+
+
+
+ + avoidance + +
+
+ + + + +
+
+
+ side_shift +
+
+
+
+ + side_shift + +
+
+ + + + +
+
+
+ lane_change +
+
+
+
+ + lane_change + +
+
+ + + + +
+
+
+ lane_following +
+
+
+
+ + lane_following + +
+
+ + + + +
+
+
+ pull_over +
+
+
+
+ + pull_over + +
+
+ + + + +
+
+
+ pull_out +
+
+
+
+ + pull_out + +
+
+ + + + +
+
+
+ blind_spot +
+
+
+
+ + blind_spot + +
+
+ + + + +
+
+
+ cross_walk +
+
+
+
+ + cross_walk + +
+
+ + + + +
+
+
+ stop_line +
+
+
+
+ + stop_line + +
+
+ + + + +
+
+
+ traffic_light +
+
+
+
+ + traffic_light + +
+
+ + + + +
+
+
+ intersection +
+
+
+
+ + intersection + +
+
+ + + + +
+
+
+ detection_area +
+
+
+
+ + detection_area + +
+
+ + + + +
+
+
+ no_stopping_area +
+
+
+
+ + no_stopping_area + +
+
+ + + + +
+
+
+ virtual_traffic_light +
+
+
+
+ + virtual_traffic_light + +
+
+ + + + +
+
+
+ occlusion_spot +
+
+
+
+ + occlusion_spot + +
+
+ + + + +
+
+
+ run_out +
+
+
+
+ + run_out + +
+
+ + + + + +
+
+
+ check_point +
+
+
+
+ + check_point + +
+
+
+ + + + + Viewer does not support full SVG 1.1 + + + +
diff --git a/docs/design/autoware-architecture/planning/image/planning-functions.drawio.svg b/docs/design/autoware-architecture/planning/image/planning-functions.drawio.svg new file mode 100644 index 00000000000..6029dfea755 --- /dev/null +++ b/docs/design/autoware-architecture/planning/image/planning-functions.drawio.svg @@ -0,0 +1,4 @@ + + + +
Lane Follow
Lane Follow
Lane Change
Lane Change
Avoidance
Avoidance
Pull Over
Pull Over
Pull Out
Pull Out
Traffic Light
Traffic Light
Intersection
Intersecti...
Traffic Jam Check
Traffic Jam Check
Crosswalk
Crosswalk
Adaptive Cruise
Adaptive Cruise
Blind Spot Check
Blind Spot Check
Obstacle Stop
Obstacle Stop
No Stopping Area
No Stopping Area
Stop Line
Stop Line
STOP
STOP
Occlusion Spot
Occlusion Spot
Detection Area
Detection Area
Obstacle Decel
Obstacle Decel
Surround Obstacle Check
Surround Obstacle...
Side Shift
Side Shift
Narrow Space Driving
Narrow Space Driving
Run Out
Run Out
Parking
Parking
Decel on Curve
Decel on Curve
Route Planning
Route Planning
start
start
check
point 1
check...
check point 2 
check p...
goal
goal
Velocity Smoothing
Velocity Smoothing
speed limit
50
speed li...
speed limit
30
speed li...
Text is not SVG - cannot display
\ No newline at end of file diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index 4dd73d57ca7..4a8dc4c13be 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -1,5 +1,83 @@ # Planning component design -!!! warning +## Overview - Under Construction +Planning stack acts as the “brain” of autonomous driving. It uses all the results from Localization, Perception, and Map stacks to decide its maneuver and gives final trajectory to Control stack. + +## Role + +These are high-level roles of Planning stack: + +- Calculates route that navigates to desired goal +- Plans trajectory to follow the route + - Make sure that vehicle does not collide with obstacles, including pedestrians and other vehicles + - Make sure that the vehicle follows traffic rules during the navigation. This includes following traffic light, stopping at stoplines, stopping at crosswalks, etc. +- Plan sequences of trajectories that is feasible for the vehicle. (e.g. no sharp turns that is kinematically impossible) + +## Input + +The table below summarizes the overall input into Planning stack: + +| Input | Topic Name(Data Type) | Explanation | +| ------------------------------- | ------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Vehicle Pose | `/tf (map->base_link)`
(_tf::tfMessage_) | Planning requires vehicle pose in map frame, which is the frame where all planning takes place. | +| Vehicle Kinematics | `/localization/kinematic_state`
(_nav_msgs/msg/Odometry_) | This includes vehicle's pose and velocity information. It is used to predict future pose on trajectory to detect collision with other objects. | +| Map data | `/map/vector_map`
(_autoware_auto_mapping_msgs/msg/HADMapBin_) | This includes all static information about the environment, such as: | +| Detected Object Information | `/perception/object_recognition/objects`
(_autoware_auto_perception_msgs/msg/PredictedObjects_) | This includes information that cannot be known beforehand such as pedestrians and other vehicles. Planning stack will plan maneuvers to avoid collision with such objects. | +| Detected Obstacle Information | `/perception/obstacle_segmentation/pointcloud`
(_sensor_msgs/msg/PointCloud2_) | This includes information on the location of obstacles. This is more primitive information and is used for emergency stops, etc. | +| Occupancy Map Information | `/perception/occupancy_grid_map/map`
(_nav_msgs/msg/OccupancyGrid_) | This includes information that cannot be known beforehand such as pedestrians and other vehicles. Planning stack will plan maneuvers to avoid collision with such objects. | +| TrafficLight recognition result | `/perception/traffic_light_recognition/traffic_signals`
(_autoware_auto_perception_msgs/msg/TrafficSignalArray_) | This is the real time information about the state of each traffic light. Planning stack will extract the one that is relevant to planned path and use it to decide whether to stop at intersections. | +| Goal position | `/planning/mission_planning/goal`
(_geometry_msgs::PoseStamped_) | This is the final pose that Planning stack will try to achieve. | +| Check point position | `/planning/mission_planning/check_point`
(_geometry_msgs::PoseStamped_) | This is the midpoint that Planning will try to go at on the way to the destination. This is used when calculating the route. | + +## Output + +The table below summarizes the final output from Planning stack: + +| Output | Topic(Data Type) | Explanation | +| -------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Trajectory | `/planning/trajectory`
(_autoware_auto_planning_msgs/msg/Trajectory_) | This is the sequence of pose, twist and acceleration that Control stack must follow. This must be smooth, and kinematically possible to follow by the Control stack. By default, the trajectory is 10 seconds long at 0.1 second resolution. | +| Turn Signal | `/planning/turn_indicators_cmd`
(_autoware_auto_vehicle_msgs/msg/TurnIndicatorsCommand_) | This is the output to control turn signals of the vehicle. Planning stack will make sure that turn signal will be turned on according to planned maneuver. | +| Harzard Signal | `/planning/hazard_lights_cmd`
(_autoware_auto_vehicle_msgs/msg/HazardLightsCommand_) | This is the output to control hazard signals of the vehicle. Planning stack will make sure that hazard signal will be turned on according to planned maneuver. | + +## Implementation + +The implementation of the planning module in the latest version is shown as below. + +![reference-implementation](image/planning-diagram.drawio.svg) + +For more details, please refer to the design documents in each package. + +- [_mission_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/mission_planning/mission_planner/mission_planner-design/): calculate route from start to goal based on the map information. +- [_behavior_path_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/): calculates path and drivable area based on the traffic rules. + - [_lane_following_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) + - [_lane_change_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) + - [_avoidance_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) + - [_pull_over_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-over) + - [_pull_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-out) + - _side_shift_ +- [_behavior_velocity_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/): calculates max speed based on the traffic rules. + - [_detection_area_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#detection-area) + - [_blind_spot_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#blind-spot) + - [_cross_walk_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#crosswalk) + - [_stop_line_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#stop-line) + - [_traffic_light_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#traffic-light) + - [_intersection_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#intersection) + - [_no_stopping_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/no-stopping-area-design/) + - [_virtual_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/virtual-traffic-light-design/) + - [_occlusion_spot_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#occlusion-spot) + - [_run_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/run-out-design/) +- [_obstacle_avoidance_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner/obstacle_avoidance_planner-design.ja/): calculate path shape under obstacle and drivable area constraints +- [_surround_obstacle_checker_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker/surround_obstacle_checker-design/): keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. +- [_obstacle_stop_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/): When there are obstacles on or near the trajectory, it calculates the maximum velocity of the trajectory points depending on the situation: stopping, slowing down, or adaptive cruise (following the car). + - [_stop_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#obstacle-stop-planner_1) + - [_slow_down_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#slow-down-planner) + - [_adaptive_cruise_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#adaptive-cruise-controller) +- [_costmap_generator_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/parking/costmap_generator/): generates a costmap for path generation from dynamic objects and lane information. +- [_freespace_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/parking/freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. +- [_scenario_selector_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/scenario_selector/) : chooses a trajectory according to the current scenario. +- [_motion_velocity_smoother_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/common/motion_velocity_smoother/motion_velocity_smoother-design/): calculates final velocity considering velocity, acceleration, and jerk constraints. + +## Supported Functions + +![supported-functions](image/planning-functions.drawio.svg) From b9d29e4141cd672e0255cb287f2bc6f6766291b8 Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 00:11:54 -0400 Subject: [PATCH 2/6] fix typo Signed-off-by: Takamasa Horibe --- docs/design/autoware-architecture/planning/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index 4a8dc4c13be..db441ef4ec0 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -38,7 +38,7 @@ The table below summarizes the final output from Planning stack: | -------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | Trajectory | `/planning/trajectory`
(_autoware_auto_planning_msgs/msg/Trajectory_) | This is the sequence of pose, twist and acceleration that Control stack must follow. This must be smooth, and kinematically possible to follow by the Control stack. By default, the trajectory is 10 seconds long at 0.1 second resolution. | | Turn Signal | `/planning/turn_indicators_cmd`
(_autoware_auto_vehicle_msgs/msg/TurnIndicatorsCommand_) | This is the output to control turn signals of the vehicle. Planning stack will make sure that turn signal will be turned on according to planned maneuver. | -| Harzard Signal | `/planning/hazard_lights_cmd`
(_autoware_auto_vehicle_msgs/msg/HazardLightsCommand_) | This is the output to control hazard signals of the vehicle. Planning stack will make sure that hazard signal will be turned on according to planned maneuver. | +| Hazard Signal | `/planning/hazard_lights_cmd`
(_autoware_auto_vehicle_msgs/msg/HazardLightsCommand_) | This is the output to control hazard signals of the vehicle. Planning stack will make sure that hazard signal will be turned on according to planned maneuver. | ## Implementation From b1f2951afdd148b074f7d4e946452fa6a65c9ae2 Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 02:19:54 -0400 Subject: [PATCH 3/6] pre-commit Signed-off-by: Takamasa Horibe --- docs/design/autoware-architecture/planning/index.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index db441ef4ec0..942f10b1148 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -34,10 +34,10 @@ The table below summarizes the overall input into Planning stack: The table below summarizes the final output from Planning stack: -| Output | Topic(Data Type) | Explanation | -| -------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Trajectory | `/planning/trajectory`
(_autoware_auto_planning_msgs/msg/Trajectory_) | This is the sequence of pose, twist and acceleration that Control stack must follow. This must be smooth, and kinematically possible to follow by the Control stack. By default, the trajectory is 10 seconds long at 0.1 second resolution. | -| Turn Signal | `/planning/turn_indicators_cmd`
(_autoware_auto_vehicle_msgs/msg/TurnIndicatorsCommand_) | This is the output to control turn signals of the vehicle. Planning stack will make sure that turn signal will be turned on according to planned maneuver. | +| Output | Topic(Data Type) | Explanation | +| ------------- | ------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Trajectory | `/planning/trajectory`
(_autoware_auto_planning_msgs/msg/Trajectory_) | This is the sequence of pose, twist and acceleration that Control stack must follow. This must be smooth, and kinematically possible to follow by the Control stack. By default, the trajectory is 10 seconds long at 0.1 second resolution. | +| Turn Signal | `/planning/turn_indicators_cmd`
(_autoware_auto_vehicle_msgs/msg/TurnIndicatorsCommand_) | This is the output to control turn signals of the vehicle. Planning stack will make sure that turn signal will be turned on according to planned maneuver. | | Hazard Signal | `/planning/hazard_lights_cmd`
(_autoware_auto_vehicle_msgs/msg/HazardLightsCommand_) | This is the output to control hazard signals of the vehicle. Planning stack will make sure that hazard signal will be turned on according to planned maneuver. | ## Implementation From 9fb451304715471f26ebde8ba4eed4de2f036947 Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 04:47:01 -0400 Subject: [PATCH 4/6] fix link Signed-off-by: Takamasa Horibe --- .../autoware-architecture/planning/index.md | 45 ++++++++++--------- 1 file changed, 23 insertions(+), 22 deletions(-) diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index 942f10b1148..3413b3be0c9 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -48,35 +48,36 @@ The implementation of the planning module in the latest version is shown as belo For more details, please refer to the design documents in each package. -- [_mission_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/mission_planning/mission_planner/mission_planner-design/): calculate route from start to goal based on the map information. -- [_behavior_path_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/): calculates path and drivable area based on the traffic rules. - - [_lane_following_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) - - [_lane_change_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) - - [_avoidance_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_path_planner/Readme/#lane-following) +- [_mission_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/mission_planner/): calculate route from start to goal based on the map information. +- [_behavior_path_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/): calculates path and drivable area based on the traffic rules. + - [_lane_following_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#lane-following) + - [_lane_change_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#lane-change) + - [_avoidance_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#avoidance) - [_pull_over_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-over) - [_pull_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_path_planner/#pull-out) - _side_shift_ -- [_behavior_velocity_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/): calculates max speed based on the traffic rules. - - [_detection_area_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#detection-area) - - [_blind_spot_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#blind-spot) - - [_cross_walk_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#crosswalk) - - [_stop_line_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#stop-line) - - [_traffic_light_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#traffic-light) - - [_intersection_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#intersection) +- [_behavior_velocity_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/): calculates max speed based on the traffic rules. + - [_detection_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/detection-area-design/) + - [_blind_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/blind-spot-design/) + - [_cross_walk_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/crosswalk-design/) + - [_stop_line_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/stop-line-design/) + - [_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/traffic-light-design/) + - [_intersection_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/intersection-design/) - [_no_stopping_area_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/no-stopping-area-design/) - [_virtual_traffic_light_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/virtual-traffic-light-design/) - - [_occlusion_spot_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/behavior_planning/behavior_velocity_planner/#occlusion-spot) + - [_occlusion_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/occlusion-spot-design/) - [_run_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/run-out-design/) -- [_obstacle_avoidance_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_avoidance_planner/obstacle_avoidance_planner-design.ja/): calculate path shape under obstacle and drivable area constraints -- [_surround_obstacle_checker_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/surround_obstacle_checker/surround_obstacle_checker-design/): keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. +- [_obstacle_avoidance_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/): calculate path shape under obstacle and drivable area constraints +- _surround_obstacle_checker_: keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. - [_obstacle_stop_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/): When there are obstacles on or near the trajectory, it calculates the maximum velocity of the trajectory points depending on the situation: stopping, slowing down, or adaptive cruise (following the car). - - [_stop_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#obstacle-stop-planner_1) - - [_slow_down_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#slow-down-planner) - - [_adaptive_cruise_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/lane_driving/motion_planning/obstacle_stop_planner/#adaptive-cruise-controller) -- [_costmap_generator_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/parking/costmap_generator/): generates a costmap for path generation from dynamic objects and lane information. -- [_freespace_planner_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/parking/freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. -- [_scenario_selector_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/scenario_selector/) : chooses a trajectory according to the current scenario. -- [_motion_velocity_smoother_](https://tier4.github.io/autoware.iv/tree/main/planning/scenario_planning/common/motion_velocity_smoother/motion_velocity_smoother-design/): calculates final velocity considering velocity, acceleration, and jerk constraints. + - [_stop_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#obstacle-stop-planner_1) + - [_slow_down_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#slow-down-planner) + - [_adaptive_cruise_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#adaptive-cruise-controller) +- [_costmap_generator_](https://autowarefoundation.github.io/autoware.universe/main/planning/costmap_generator/): generates a costmap for path generation from dynamic objects and lane information. +- [_freespace_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. Algorithms are described [here](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planning_algorithms/). +- _scenario_selector_ : chooses a trajectory according to the current scenario. +- [_velocity_limit_selector_](https://autowarefoundation.github.io/autoware.universe/main/planning/external_velocity_limit_selector/): takes appropriate velocity limit from multiple candidates. +- [_motion_velocity_smoother_](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_smoother/): calculates final velocity considering velocity, acceleration, and jerk constraints. ## Supported Functions From d5b58b71648273e896663c314691ba2e8c75f42e Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 04:53:43 -0400 Subject: [PATCH 5/6] fix link Signed-off-by: Takamasa Horibe --- docs/design/autoware-architecture/planning/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index 3413b3be0c9..26fc91bb4d0 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -68,7 +68,7 @@ For more details, please refer to the design documents in each package. - [_occlusion_spot_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/occlusion-spot-design/) - [_run_out_](https://autowarefoundation.github.io/autoware.universe/main/planning/behavior_velocity_planner/run-out-design/) - [_obstacle_avoidance_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_avoidance_planner/): calculate path shape under obstacle and drivable area constraints -- _surround_obstacle_checker_: keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. +- [_surround_obstacle_checker_](https://autowarefoundation.github.io/autoware.universe/main/planning/surround_obstacle_checker/): keeps the vehicle being stopped when there are obstacles around the ego-vehicle. It works only when the vehicle is stopped. - [_obstacle_stop_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/): When there are obstacles on or near the trajectory, it calculates the maximum velocity of the trajectory points depending on the situation: stopping, slowing down, or adaptive cruise (following the car). - [_stop_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#obstacle-stop-planner_1) - [_slow_down_](https://autowarefoundation.github.io/autoware.universe/main/planning/obstacle_stop_planner/#slow-down-planner) From d46edf8e20583c786c0006f541c2325be90ed6e1 Mon Sep 17 00:00:00 2001 From: Takamasa Horibe Date: Sat, 4 Jun 2022 04:55:48 -0400 Subject: [PATCH 6/6] update Signed-off-by: Takamasa Horibe --- .../image/planning-diagram.drawio.svg | 517 +++++++++--------- .../autoware-architecture/planning/index.md | 2 +- 2 files changed, 250 insertions(+), 269 deletions(-) diff --git a/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg b/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg index 85a2d00d9fd..82d79d3c297 100644 --- a/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg +++ b/docs/design/autoware-architecture/planning/image/planning-diagram.drawio.svg @@ -1,16 +1,16 @@ - + - - - - - - + + + + + + -
+
Parking Scenario @@ -18,19 +18,19 @@
- + Parking Scenario - - - - + + + + -
+
route @@ -44,11 +44,11 @@ - + -
+
mission_planner @@ -56,14 +56,14 @@
- + mission_planner
- - + + @@ -81,14 +81,14 @@ - + - - + + -
+
path @@ -96,16 +96,16 @@
- + path - + - - + + @@ -123,11 +123,11 @@ - + -
+
obstacle_ @@ -137,18 +137,18 @@
- + obstacle_...
- - + + -
+
Trajectory @@ -156,17 +156,17 @@
- + Trajectory - + -
+
surround_ @@ -176,18 +176,18 @@
- + surround_...
- - + + -
+
Trajectory @@ -195,20 +195,20 @@
- + Trajectory - + - - + + -
+
Trajectory @@ -216,17 +216,17 @@
- + Trajectory - + -
+
scenario_selector @@ -234,14 +234,14 @@
- + scenario_selector
- - + + @@ -261,11 +261,11 @@ - + -
+
motion_velocity_ @@ -275,18 +275,18 @@
- + motion_velocity_...
- - + + -
+
Trajectory @@ -294,17 +294,17 @@
- + Trajectory - + -
+
freespace_planner @@ -312,18 +312,18 @@
- + freespace_planner
- - + + -
+
occupancy_grid @@ -331,17 +331,17 @@
- + occupancy_grid - + -
+
costmap_generator @@ -349,17 +349,17 @@
- + costmap_generator
- + -
+
behavior @@ -371,16 +371,16 @@
- + behavior... - + -
+
behavior @@ -392,17 +392,17 @@
- + behavior... - - + + -
+
goal @@ -410,18 +410,18 @@
- + goal - - - + + + -
+
obstacle @@ -433,16 +433,16 @@
- + obstacle... - + -
+
slow_down @@ -450,16 +450,16 @@
- + slow_down - + -
+
adaptive_cruise @@ -467,16 +467,16 @@
- + adaptive_cruise - + -
+
stop @@ -484,16 +484,16 @@
- + stop - + -
+
LaneDriving Scenario @@ -501,16 +501,16 @@
- + LaneDriving Sce... - + -
+
@@ -522,16 +522,16 @@
- + Behavior Planning - + -
+
@@ -543,15 +543,15 @@
- + Motion Planning - - - - + + + + @@ -563,16 +563,16 @@
- + vector_map
- + -
+
To Control @@ -580,17 +580,17 @@
- + To Control - - + + -
+
vector_map @@ -598,17 +598,17 @@
- + vector_map - - + + -
+
Dynamic Objects @@ -621,12 +621,12 @@ - - + + -
+
Dynamic Objects @@ -634,17 +634,17 @@
- + Dynamic Objects - - + + -
+
Dynamic Objects @@ -657,12 +657,12 @@ - - + + -
+
Dynamic Objects @@ -670,17 +670,17 @@
- + Dynamic Objects - - + + -
+
Obstacle Points @@ -688,17 +688,17 @@
- + Obstacle Points - - + + -
+
Obstacle Points @@ -706,17 +706,17 @@
- + Obstacle Points - - + + -
+
Dynamic Objects @@ -724,17 +724,17 @@
- + Dynamic Objects - - + + -
+
Obstacle Points @@ -742,17 +742,17 @@
- + Obstacle Points - - + + -
+
route (from mission_planner) @@ -760,13 +760,13 @@
- + route (from mission_planner) - - + + @@ -783,10 +783,10 @@ - - - - + + + + @@ -803,12 +803,12 @@ - - + + -
+
vehicle_state @@ -818,16 +818,16 @@
- + vehicle_state... - + -
+
@@ -837,13 +837,13 @@
- + Localization - - + + @@ -862,8 +862,8 @@ - - + + @@ -884,11 +884,11 @@ - + -
+
Planning @@ -896,17 +896,17 @@
- + Planning - - + + -
+
Traffic Light States @@ -914,17 +914,17 @@
- + Traffic Light States - - + + -
+
expand_stop_range @@ -937,11 +937,11 @@ - + -
+
Perception @@ -949,13 +949,13 @@
- + Perception - - + + @@ -969,16 +969,16 @@
- + velocity_limit...
- + -
+
Human @@ -990,37 +990,18 @@
- + Human... - - - + + + -
-
-
- Sensing -
-
-
-
- - Sensing - -
-
- - - - - - -
+
Perception @@ -1028,18 +1009,18 @@
- + Perception - - - + + + -
+
external_velocity @@ -1049,17 +1030,17 @@
- + external_velocity... - - + + -
+
velocity_limit @@ -1069,16 +1050,16 @@
- + velocity_l... - + -
+
avoidance @@ -1086,16 +1067,16 @@
- + avoidance - + -
+
side_shift @@ -1103,16 +1084,16 @@
- + side_shift - + -
+
lane_change @@ -1120,16 +1101,16 @@
- + lane_change - + -
+
lane_following @@ -1137,16 +1118,16 @@
- + lane_following - + -
+
pull_over @@ -1154,16 +1135,16 @@
- + pull_over - + -
+
pull_out @@ -1171,16 +1152,16 @@
- + pull_out - + -
+
blind_spot @@ -1188,16 +1169,16 @@
- + blind_spot - + -
+
cross_walk @@ -1205,16 +1186,16 @@
- + cross_walk - + -
+
stop_line @@ -1222,16 +1203,16 @@
- + stop_line - + -
+
traffic_light @@ -1239,16 +1220,16 @@
- + traffic_light - + -
+
intersection @@ -1256,16 +1237,16 @@
- + intersection - + -
+
detection_area @@ -1273,16 +1254,16 @@
- + detection_area - + -
+
no_stopping_area @@ -1290,16 +1271,16 @@
- + no_stopping_area - + -
+
virtual_traffic_light @@ -1307,16 +1288,16 @@
- + virtual_traffic_light - + -
+
occlusion_spot @@ -1324,16 +1305,16 @@
- + occlusion_spot - + -
+
run_out @@ -1341,17 +1322,17 @@
- + run_out - - + + -
+
check_point @@ -1359,7 +1340,7 @@
- + check_point diff --git a/docs/design/autoware-architecture/planning/index.md b/docs/design/autoware-architecture/planning/index.md index 26fc91bb4d0..5212d98a2e6 100644 --- a/docs/design/autoware-architecture/planning/index.md +++ b/docs/design/autoware-architecture/planning/index.md @@ -76,7 +76,7 @@ For more details, please refer to the design documents in each package. - [_costmap_generator_](https://autowarefoundation.github.io/autoware.universe/main/planning/costmap_generator/): generates a costmap for path generation from dynamic objects and lane information. - [_freespace_planner_](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planner/): calculates trajectory considering the feasibility (e.g. curvature) for the freespace scene. Algorithms are described [here](https://autowarefoundation.github.io/autoware.universe/main/planning/freespace_planning_algorithms/). - _scenario_selector_ : chooses a trajectory according to the current scenario. -- [_velocity_limit_selector_](https://autowarefoundation.github.io/autoware.universe/main/planning/external_velocity_limit_selector/): takes appropriate velocity limit from multiple candidates. +- [_external_velocity_limit_selector_](https://autowarefoundation.github.io/autoware.universe/main/planning/external_velocity_limit_selector/): takes an appropriate velocity limit from multiple candidates. - [_motion_velocity_smoother_](https://autowarefoundation.github.io/autoware.universe/main/planning/motion_velocity_smoother/): calculates final velocity considering velocity, acceleration, and jerk constraints. ## Supported Functions