29 #include <unordered_set> 35 #include "modules/common/vehicle_state/proto/vehicle_state.pb.h" 38 #include "modules/map/relative_map/proto/navigation.pb.h" 41 #include "modules/planning/proto/planning_config.pb.h" 65 const std::shared_ptr<relative_map::MapMsg>& relative_map =
nullptr);
81 std::list<hdmap::RouteSegments>* segments);
96 bool CreateReferenceLine(std::list<ReferenceLine>* reference_lines,
97 std::list<hdmap::RouteSegments>* segments);
103 void UpdateReferenceLine(
104 const std::list<ReferenceLine>& reference_lines,
105 const std::list<hdmap::RouteSegments>& route_segments);
107 void GenerateThread();
108 void IsValidReferenceLine();
109 void PrioritzeChangeLane(std::list<hdmap::RouteSegments>* route_segments);
111 bool CreateRouteSegments(
const common::VehicleState& vehicle_state,
112 std::list<hdmap::RouteSegments>* segments);
117 bool SmoothReferenceLine(
const ReferenceLine& raw_reference_line,
120 bool SmoothPrefixedReferenceLine(
const ReferenceLine& prefix_ref,
125 std::vector<AnchorPoint>* anchor_points)
const;
134 bool ExtendReferenceLine(
const common::VehicleState& state,
141 bool GetReferenceLinesFromRelativeMap(
142 std::list<ReferenceLine>* reference_lines,
143 std::list<hdmap::RouteSegments>* segments);
149 bool GetNearestWayPointFromNavigationPath(
150 const common::VehicleState& state,
151 const std::unordered_set<std::string>& navigation_lane_ids,
158 bool is_initialized_ =
false;
159 std::atomic<bool> is_stop_{
false};
161 std::unique_ptr<ReferenceLineSmoother> smoother_;
162 ReferenceLineSmootherConfig smoother_config_;
164 std::mutex pnc_map_mutex_;
165 std::unique_ptr<hdmap::PncMap> pnc_map_;
168 std::shared_ptr<relative_map::MapMsg> relative_map_;
170 std::mutex vehicle_state_mutex_;
171 common::VehicleState vehicle_state_;
173 std::mutex routing_mutex_;
174 routing::RoutingResponse routing_;
175 bool has_routing_ =
false;
177 std::mutex reference_lines_mutex_;
178 std::list<ReferenceLine> reference_lines_;
179 std::list<hdmap::RouteSegments> route_segments_;
180 double last_calculation_time_ = 0.0;
182 std::queue<std::list<ReferenceLine>> reference_line_history_;
183 std::queue<std::list<hdmap::RouteSegments>> route_segments_history_;
185 std::future<void> task_future_;
187 std::atomic<bool> is_reference_line_updated_{
true};
class RouteSegments
Definition: route_segments.h:50
The class of vehicle state. It includes basic information and computation about the state of the vehi...
Definition: vehicle_state_provider.h:46
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
Planning module main class. It processes GPS and IMU as input, to generate planning info...
void UpdateVehicleState(const common::VehicleState &vehicle_state)
bool UpdateRoutingResponse(const routing::RoutingResponse &routing)
bool UpdatedReferenceLine()
Definition: reference_line_provider.h:87
ReferenceLineProvider()=default
Definition: reference_line_smoother.h:31
Defines the Factory class.
High-precision map loader interface.
Definition: hdmap.h:53
Definition: reference_line.h:39
bool GetReferenceLines(std::list< ReferenceLine > *reference_lines, std::list< hdmap::RouteSegments > *segments)
~ReferenceLineProvider()
Default destructor.
The class of ReferenceLineProvider. It provides smoothed reference line to planning.
Definition: reference_line_provider.h:59
std::vector< routing::LaneWaypoint > FutureRouteWaypoints()