From 606795daa1d8164b5294228890d6f986d7ef7b43 Mon Sep 17 00:00:00 2001 From: Zulfaqar Azmi Date: Wed, 8 Nov 2023 15:02:34 +0900 Subject: [PATCH] docs(behavior_path_planner): update main documentation Signed-off-by: Zulfaqar Azmi --- planning/behavior_path_planner/README.md | 34 +++++++++++------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/planning/behavior_path_planner/README.md b/planning/behavior_path_planner/README.md index 0c0c7c806c119..0fd57ab02f63e 100644 --- a/planning/behavior_path_planner/README.md +++ b/planning/behavior_path_planner/README.md @@ -65,17 +65,6 @@ set(COMPILE_WITH_OLD_ARCHITECTURE TRUE) # <- HERE ... ``` -**What is the Behavior Tree?**: In the behavior path planner, the behavior tree mechanism is used to manage which modules are activated in which situations. In general, this "behavior manager" like function is expected to become bigger as more and more modules are added in the future. To improve maintainability, we adopted the behavior tree. The behavior tree has the following advantages: easy visualization, easy configuration management (behaviors can be changed by replacing configuration files), and high scalability compared to the state machine. - -The current behavior tree structure is shown below. Each modules (LaneChange, Avoidance, etc) have _Request_, _Ready_, and _Plan_ nodes as a common function. - -- **Request**: Check if there is a request from the module (e.g. LaneChange has a request when there are multi-lanes and the vehicle is not on the preferred lane), -- **Ready**: Check if it is safe to execute the plan (e.g. LaneChange is ready when the lane_change path does not have any conflicts with other dynamic objects on S-T space). -- **Plan**: Calculates path and set it to the output of the BehaviorTree. Until the internal status returns SUCCESS, it will be in running state and will not transit to another module. -- **ForceApproval**: A lane change-specific node that overrides the result of _Ready_ when a forced lane change command is given externally. - -![behavior_path_planner_bt_config](./image/behavior_path_planner_bt_config.png) - ## Inputs / Outputs / API ### output @@ -91,13 +80,22 @@ The current behavior tree structure is shown below. Each modules (LaneChange, Av ### input -| Name | Type | Description | -| :----------------------------- | :----------------------------------------------------- | :------------------------------------------------------------------------------------ | -| ~/input/route | `autoware_auto_mapping_msgs::msg::LaneletRoute` | current route from start to goal. | -| ~/input/vector_map | `autoware_auto_mapping_msgs::msg::HADMapBin` | map information. | -| ~/input/objects | `autoware_auto_perception_msgs::msg::PredictedObjects` | dynamic objects from perception module. | -| ~/input/occupancy_grid_map/map | `nav_msgs::msg::OccupancyGrid` | occupancy grid map from perception module. This is used for only Goal Planner module. | -| ~/input/kinematic_state | `nav_msgs::msg::Odometry` | for ego velocity. | +#### Mandatory +| Name | Type | Description | +|:---------------------------|:-------------------------------------------------------|:--------------------------------------------------------------------------------------| +| ~/input/odometry | `nav_msgs::msg::Odometry` | for ego velocity. | +| ~/input/accel | `geometry_msgs::msg::AccelWithCovarianceStamped` | for ego acceleration. | +| ~/input/objects | `autoware_auto_perception_msgs::msg::PredictedObjects` | dynamic objects from perception module. | +| ~/input/occupancy_grid_map | `nav_msgs::msg::OccupancyGrid` | occupancy grid map from perception module. This is used for only Goal Planner module. | +| ~/input/traffic_signals | `autoware_perception_msgs::msg::TrafficSignalArray` | traffic signals information from the perception module | +| ~/input/lateral_offset | `tier4_planning_msgs::msg::LateralOffset` | lateral offset from the | +| ~/input/vector_map | `autoware_auto_mapping_msgs::msg::HADMapBin` | vector map information. | +| ~/input/route | `autoware_auto_mapping_msgs::msg::LaneletRoute` | current route from start to goal. | + +#### Optional +| Name | Type | Description | +|:---------------------------|:-------------------------------------------------------|:--------------------------------------------------------------------------------------| +| ~/input/lateral_offset | `tier4_planning_msgs::msg::LateralOffset` | lateral offset from the | ## General features of behavior path planner