27 #include <unordered_map> 33 #include "modules/common/proto/geometry.pb.h" 35 #include "modules/common/vehicle_state/proto/vehicle_state.pb.h" 36 #include "modules/localization/proto/pose.pb.h" 44 #include "modules/planning/proto/pad_msg.pb.h" 45 #include "modules/planning/proto/planning.pb.h" 46 #include "modules/planning/proto/planning_config.pb.h" 47 #include "modules/planning/proto/planning_internal.pb.h" 49 #include "modules/prediction/proto/prediction_obstacle.pb.h" 50 #include "modules/routing/proto/routing.pb.h" 63 explicit Frame(uint32_t sequence_num);
66 const common::TrajectoryPoint &planning_start_point,
71 const common::TrajectoryPoint &planning_start_point,
72 const common::VehicleState &vehicle_state);
74 virtual ~Frame() =
default;
80 const std::list<ReferenceLine> &reference_lines,
81 const std::list<hdmap::RouteSegments> &segments,
82 const std::vector<routing::LaneWaypoint> &future_route_waypoints,
110 const std::vector<const Obstacle *>
obstacles()
const;
114 const std::string &obstacle_id,
const double obstacle_s);
117 const std::string &lane_id,
118 const double lane_s);
122 const std::string &obstacle_id,
const double obstacle_start_s,
123 const double obstacle_end_s);
130 const double planning_start_time,
131 prediction::PredictionObstacles *prediction_obstacles);
135 current_frame_planned_trajectory_ =
136 std::move(current_frame_planned_trajectory);
140 return current_frame_planned_trajectory_;
145 current_frame_planned_path_ = std::move(current_frame_planned_path);
149 return current_frame_planned_path_;
153 return is_near_destination_;
161 const std::map<std::string, uint32_t> &id_to_priority);
172 return open_space_info_;
176 return &open_space_info_;
179 perception::TrafficLight
GetSignal(
const std::string &traffic_light_id)
const;
182 return pad_msg_driving_action_;
190 bool CreateReferenceLineInfo(
const std::list<ReferenceLine> &reference_lines,
191 const std::list<hdmap::RouteSegments> &segments);
204 const Obstacle *CreateStaticVirtualObstacle(
const std::string &
id,
207 void AddObstacle(
const Obstacle &obstacle);
209 void ReadTrafficLights();
211 void ReadPadMsgDrivingAction();
212 void ResetPadMsgDrivingAction();
215 static DrivingAction pad_msg_driving_action_;
216 uint32_t sequence_num_ = 0;
219 common::TrajectoryPoint planning_start_point_;
220 common::VehicleState vehicle_state_;
221 std::list<ReferenceLineInfo> reference_line_info_;
223 bool is_near_destination_ =
false;
232 std::unordered_map<std::string, const perception::TrafficLight *>
236 ADCTrajectory current_frame_planned_trajectory_;
245 std::vector<routing::LaneWaypoint> future_route_waypoints_;
void UpdateReferenceLinePriority(const std::map< std::string, uint32_t > &id_to_priority)
Adjust reference line priority according to actual road conditions lane id and reference line priori...
const DiscretizedPath & current_frame_planned_path() const
Definition: frame.h:148
const common::TrajectoryPoint & PlanningStartPoint() const
Definition: discretized_path.h:31
Definition: planning_context.h:33
This is the class that associates an Obstacle with its path properties. An obstacle's path properties...
Definition: obstacle.h:60
const ReferenceLineInfo * FindDriveReferenceLineInfo()
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
Declaration of the class ReferenceLineProvider.
OpenSpaceInfo * mutable_open_space_info()
Definition: frame.h:175
void RecordInputDebug(planning_internal::Debug *debug)
Definition: ego_info.h:35
uint32_t SequenceNum() const
static void AlignPredictionTime(const double planning_start_time, prediction::PredictionObstacles *prediction_obstacles)
const OpenSpaceInfo & open_space_info() const
Definition: frame.h:171
Planning module main class. It processes GPS and IMU as input, to generate planning info...
common::Status Init(const common::VehicleStateProvider *vehicle_state_provider, const std::list< ReferenceLine > &reference_lines, const std::list< hdmap::RouteSegments > &segments, const std::vector< routing::LaneWaypoint > &future_route_waypoints, const EgoInfo *ego_info)
LocalView contains all necessary data as planning input.
Frame holds all data for one planning cycle.
Definition: frame.h:61
ReferenceLineInfo holds all data for one reference line.
Definition: reference_line_info.h:54
Definition: publishable_trajectory.h:29
bool Rerouting(PlanningContext *planning_context)
const PublishableTrajectory & ComputedTrajectory() const
std::string DebugString() const
std::list< ReferenceLineInfo > * mutable_reference_line_info()
Rectangular (undirected) bounding box in 2-D.
Definition: box2d.h:52
perception::TrafficLight GetSignal(const std::string &traffic_light_id) const
Frame(uint32_t sequence_num)
const Obstacle * CreateStopObstacle(ReferenceLineInfo *const reference_line_info, const std::string &obstacle_id, const double obstacle_s)
const common::VehicleState & vehicle_state() const
Definition: open_space_info.h:60
const LocalView & local_view() const
Definition: frame.h:163
High-precision map loader interface.
Definition: hdmap.h:53
common::Status InitForOpenSpace(const common::VehicleStateProvider *vehicle_state_provider, const EgoInfo *ego_info)
const ReferenceLineInfo * FindFailedReferenceLineInfo()
The class of MonitorLogBuffer.
const std::list< ReferenceLineInfo > & reference_line_info() const
const Obstacle * CreateStaticObstacle(ReferenceLineInfo *const reference_line_info, const std::string &obstacle_id, const double obstacle_start_s, const double obstacle_end_s)
const ReferenceLineInfo * DriveReferenceLineInfo() const
A general class to denote the return status of an API call. It can either be an OK status for success...
Definition: status.h:43
const bool is_near_destination() const
Definition: frame.h:152
const ReferenceLineInfo * FindTargetReferenceLineInfo()
const std::vector< const Obstacle * > obstacles() const
void set_current_frame_planned_path(DiscretizedPath current_frame_planned_path)
Definition: frame.h:143
This class help collect MonitorMessage pb to monitor topic. The messages can be published automatical...
Definition: monitor_log_buffer.h:60
ThreadSafeIndexedObstacles * GetObstacleList()
Definition: frame.h:167
void set_current_frame_planned_trajectory(ADCTrajectory current_frame_planned_trajectory)
Definition: frame.h:133
Definition: local_view.h:38
Obstacle * Find(const std::string &id)
The class of ReferenceLineProvider. It provides smoothed reference line to planning.
Definition: reference_line_provider.h:59
const DrivingAction & GetPadMsgDrivingAction() const
Definition: frame.h:181
const ADCTrajectory & current_frame_planned_trajectory() const
Definition: frame.h:139
Definition: indexed_queue.h:34