42 const std::string& config_dir,
43 const std::string& name,
44 const std::shared_ptr<DependencyInjector>& injector)
override;
52 bool DecidePathBounds(std::vector<PathBoundary>* boundary);
58 bool OptimizePath(
const std::vector<PathBoundary>& path_boundaries, std::vector<PathData>* candidate_path_data);
64 bool AssessPath(std::vector<PathData>* candidate_path_data,
PathData* final_path);
70 bool GetBoundaryFromNeighborLane(
73 std::string* borrow_lane_type);
81 bool IsNecessaryToBorrowLane();
83 bool HasSingleReferenceLine(
const Frame& frame);
85 bool IsWithinSidePassingSpeedADC(
const Frame& frame);
87 bool IsLongTermBlockingObstacle();
93 void UpdateSelfPathInfo();
104 void CheckLaneBorrow(
106 bool* left_neighbor_lane_borrowable,
107 bool* right_neighbor_lane_borrowable);
115 bool CheckLaneBoundaryType(
117 const double check_s,
125 void SetPathInfo(
PathData*
const path_data);
127 void GetSLPolygons(std::vector<SLPolygon>* polygons,
LaneBorrowInfo lane_borrow_info);
130 std::vector<SidePassDirection> decided_side_pass_direction_;
132 std::string blocking_obstacle_id_;
133 bool is_in_path_lane_borrow_scenario_ =
false;
134 std::unordered_map<std::string, double> narrowest_width_;