68 const std::shared_ptr<relative_map::MapMsg>& relative_map =
nullptr);
91 std::list<hdmap::RouteSegments>* segments);
100 std::shared_ptr<routing::LaneWaypoint>& end_point)
const;
115 bool CreateReferenceLine(std::list<ReferenceLine>* reference_lines,
116 std::list<hdmap::RouteSegments>* segments);
122 void UpdateReferenceLine(
123 const std::list<ReferenceLine>& reference_lines,
124 const std::list<hdmap::RouteSegments>& route_segments);
126 void GenerateThread();
127 void IsValidReferenceLine();
128 void PrioritizeChangeLane(std::list<hdmap::RouteSegments>* route_segments);
131 std::list<hdmap::RouteSegments>* segments);
136 bool SmoothReferenceLine(
const ReferenceLine& raw_reference_line,
139 bool SmoothPrefixedReferenceLine(
const ReferenceLine& prefix_ref,
144 std::vector<AnchorPoint>* anchor_points)
const;
160 bool GetReferenceLinesFromRelativeMap(
161 std::list<ReferenceLine>* reference_lines,
162 std::list<hdmap::RouteSegments>* segments);
168 bool GetNearestWayPointFromNavigationPath(
170 const std::unordered_set<std::string>& navigation_lane_ids,
177 bool is_initialized_ =
false;
178 std::atomic<bool> is_stop_{
false};
180 std::unique_ptr<ReferenceLineSmoother> smoother_;
181 ReferenceLineSmootherConfig smoother_config_;
183 std::mutex pnc_map_mutex_;
186 std::vector<std::shared_ptr<planning::PncMapBase>> pnc_map_list_;
187 std::shared_ptr<planning::PncMapBase> current_pnc_map_;
190 std::shared_ptr<relative_map::MapMsg> relative_map_;
192 std::mutex vehicle_state_mutex_;
195 std::mutex routing_mutex_;
197 bool has_planning_command_ =
false;
198 bool is_new_command_ =
false;
200 std::mutex reference_lines_mutex_;
201 std::list<ReferenceLine> reference_lines_;
202 std::list<hdmap::RouteSegments> route_segments_;
203 double last_calculation_time_ = 0.0;
205 std::queue<std::list<ReferenceLine>> reference_line_history_;
206 std::queue<std::list<hdmap::RouteSegments>> route_segments_history_;
208 std::future<void> task_future_;
210 std::atomic<bool> is_reference_line_updated_{
true};
212 const common::VehicleStateProvider* vehicle_state_provider_ =
nullptr;