From 93ba58edf74ab27f5f885b4aec66747610cc5ebb Mon Sep 17 00:00:00 2001 From: Zulfaqar Azmi Date: Thu, 9 Nov 2023 13:38:04 +0900 Subject: [PATCH] Tiled image Signed-off-by: Zulfaqar Azmi --- planning/behavior_path_planner/README.md | 49 ++-- .../image/behavior_modules.svg | 269 ------------------ .../image/checking_module_transition.png | Bin 0 -> 46021 bytes .../image/supported_module_avoidance.svg | 58 ++++ ...ported_module_avoidance_by_lane_change.svg | 58 ++++ .../image/supported_module_goal_planner.svg | 57 ++++ .../image/supported_module_lane_change.svg | 39 +++ .../image/supported_module_lane_following.svg | 48 ++++ .../image/supported_module_start_planner.svg | 48 ++++ 9 files changed, 337 insertions(+), 289 deletions(-) delete mode 100644 planning/behavior_path_planner/image/behavior_modules.svg create mode 100644 planning/behavior_path_planner/image/checking_module_transition.png create mode 100644 planning/behavior_path_planner/image/supported_module_avoidance.svg create mode 100644 planning/behavior_path_planner/image/supported_module_avoidance_by_lane_change.svg create mode 100644 planning/behavior_path_planner/image/supported_module_goal_planner.svg create mode 100644 planning/behavior_path_planner/image/supported_module_lane_change.svg create mode 100644 planning/behavior_path_planner/image/supported_module_lane_following.svg create mode 100644 planning/behavior_path_planner/image/supported_module_start_planner.svg diff --git a/planning/behavior_path_planner/README.md b/planning/behavior_path_planner/README.md index 352f46444b812..37a8946328acb 100644 --- a/planning/behavior_path_planner/README.md +++ b/planning/behavior_path_planner/README.md @@ -8,13 +8,11 @@ The `behavior_path_planner` module is responsible to generate 2. **drivable area** that the vehicle can move (defined in the path msg), 3. **turn signal** command to be sent to the vehicle interface. -## Design +## Features -### Scene modules design +### Supported Scene Modules -#### Support modules - -Behavior path planner has following scene modules. +Behavior Path Planner has following scene modules. | Name | Description | Details | | :----------------------- | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :---------------------------------------------------------------------- | @@ -28,17 +26,27 @@ Behavior path planner has following scene modules. | Goal Planner | this module is performed when ego-vehicle is stationary and footprint of ego-vehicle is included in shoulder lane. This module ends when ego-vehicle merges into the road. | [LINK](./docs/behavior_path_planner_start_planner_design.md) | | Side Shift | (for remote control) shift the path to left or right according to an external instruction. | [LINK](./docs/behavior_path_planner_side_shift_design.md) | -![behavior_modules](./image/behavior_modules.svg) - -All scene modules are implemented by inheriting base class `scene_module_interface.hpp`. + + + + + + + + + + + +
Lane Following ModuleAvoidance ModuleAvoidance by Lane Change Module
Lane Change ModuleStart Planner ModuleGoal Planner Module
-#### How to implement new module? +Users can refer to [Planning component design](https://autowarefoundation.github.io/autoware-documentation/main/design/autoware-architecture/planning/#supported-functions) for some additional behavior. -WIP +#### How to add or implement new module? ---- +All scene modules are implemented by inheriting base class `scene_module_interface.hpp`. +The remainder of this subsection is work in progress (WIP). -### Planner Manager design +### Planner Manager The Planner Manager's responsibilities include: @@ -70,14 +78,15 @@ For more in-depth information, refer to [Manager design](https://autowarefoundat ### Output -| Name | Type | Description | -| :-------------------------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | -| ~/input/path | `autoware_auto_planning_msgs::msg::PathWithLaneId` | the path generated by modules. | -| ~/input/path_candidate | `autoware_auto_planning_msgs::msg::Path` | the path the module is about to take. to be executed as soon as external approval is obtained. | -| ~/input/turn_indicators_cmd | `autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand` | turn indicators command. | -| ~/input/hazard_lights_cmd | `tier4_planning_msgs::msg::PathChangeModuleArray` | hazard lights command. | -| ~/input/ready_module | `tier4_planning_msgs::msg::PathChangeModule` | (for remote control) modules that are ready to be executed. | -| ~/input/running_modules | `tier4_planning_msgs::msg::PathChangeModuleArray` | (for remote control) current running module. | +| Name | Type | Description | QoS | +| :--------------------------- | :------------------------------------------------------- | :--------------------------------------------------------------------------------------------- | --- | +| ~/output/path | `autoware_auto_planning_msgs::msg::PathWithLaneId` | the path generated by modules. | | +| ~/output/turn_indicators_cmd | `autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand` | turn indicators command. | | +| ~/output/hazard_lights_cmd | `tier4_planning_msgs::msg::PathChangeModuleArray` | hazard lights command. | | +| ~/output/turn_indicators_cmd | `autoware_auto_vehicle_msgs::msg::TurnIndicatorsCommand` | turn indicators command. | | +| ~/output/path_candidate | `autoware_auto_planning_msgs::msg::Path` | the path the module is about to take. to be executed as soon as external approval is obtained. | | +| ~/output/ready_module | `tier4_planning_msgs::msg::PathChangeModule` | (for remote control) modules that are ready to be executed. | | +| ~/output/running_modules | `tier4_planning_msgs::msg::PathChangeModuleArray` | (for remote control) current running module. | | ## General features of behavior path planner diff --git a/planning/behavior_path_planner/image/behavior_modules.svg b/planning/behavior_path_planner/image/behavior_modules.svg deleted file mode 100644 index f76632c8d0a87..0000000000000 --- a/planning/behavior_path_planner/image/behavior_modules.svg +++ /dev/null @@ -1,269 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
-
- Lane Following -
-
-
-
- Lane Following -
-
- - - - -
-
-
- Avoidance -
-
-
-
- Avoidance -
-
- - - - -
-
-
- Lane Change -
-
-
-
- Lane Change -
-
- - - - -
-
-
- Goal Planner -
-
-
-
- Goal Planner -
-
- - - - -
-
-
- Start Planner -
-
-
-
- Start Planner -
-
- - - - -
-
-
- Avoidance by Lane Change -
-
-
-
- Avoidance by Lane Change -
-
-
- - - - Text is not SVG - cannot display - - -
diff --git a/planning/behavior_path_planner/image/checking_module_transition.png b/planning/behavior_path_planner/image/checking_module_transition.png new file mode 100644 index 0000000000000000000000000000000000000000..5d933aa0b07184a7eca863c070963e38076ccb7f GIT binary patch literal 46021 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 RHp1;CEv_I|BBJN_e*iMK9G(CG literal 0 HcmV?d00001 diff --git a/planning/behavior_path_planner/image/supported_module_avoidance.svg b/planning/behavior_path_planner/image/supported_module_avoidance.svg new file mode 100644 index 0000000000000..7d566ca3ba20a --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_avoidance.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + +
+
+
+ Avoidance +
+
+
+
+ Avoidance +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_path_planner/image/supported_module_avoidance_by_lane_change.svg b/planning/behavior_path_planner/image/supported_module_avoidance_by_lane_change.svg new file mode 100644 index 0000000000000..c1892d2edb5f3 --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_avoidance_by_lane_change.svg @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + +
+
+
+ Avoidance by Lane Change +
+
+
+
+ Avoidance by Lane Change +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_path_planner/image/supported_module_goal_planner.svg b/planning/behavior_path_planner/image/supported_module_goal_planner.svg new file mode 100644 index 0000000000000..6b790676a0019 --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_goal_planner.svg @@ -0,0 +1,57 @@ + + + + + + + + + + + + + + + + +
+
+
+ Goal Planner +
+
+
+
+ Goal Planner +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_path_planner/image/supported_module_lane_change.svg b/planning/behavior_path_planner/image/supported_module_lane_change.svg new file mode 100644 index 0000000000000..1bc597dde67d8 --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_lane_change.svg @@ -0,0 +1,39 @@ + + + + + + + + + + + + +
+
+
+ Lane Change +
+
+
+
+ Lane Change +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_path_planner/image/supported_module_lane_following.svg b/planning/behavior_path_planner/image/supported_module_lane_following.svg new file mode 100644 index 0000000000000..8b850b4595122 --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_lane_following.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + +
+
+
+ Lane Following +
+
+
+
+ Lane Following +
+
+
+ + + + Text is not SVG - cannot display + + +
diff --git a/planning/behavior_path_planner/image/supported_module_start_planner.svg b/planning/behavior_path_planner/image/supported_module_start_planner.svg new file mode 100644 index 0000000000000..a4784df0f1e57 --- /dev/null +++ b/planning/behavior_path_planner/image/supported_module_start_planner.svg @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + +
+
+
+ Start Planner +
+
+
+
+ Start Planner +
+
+
+ + + + Text is not SVG - cannot display + + +