27#include <unordered_map>
31#include "modules/common/vehicle_state/proto/vehicle_state.pb.h"
32#include "modules/common_msgs/basic_msgs/geometry.pb.h"
33#include "modules/common_msgs/localization_msgs/pose.pb.h"
34#include "modules/common_msgs/planning_msgs/pad_msg.pb.h"
35#include "modules/common_msgs/planning_msgs/planning.pb.h"
36#include "modules/common_msgs/planning_msgs/planning_internal.pb.h"
37#include "modules/common_msgs/prediction_msgs/prediction_obstacle.pb.h"
38#include "modules/common_msgs/routing_msgs/routing.pb.h"
39#include "modules/planning/planning_base/proto/planning_config.pb.h"
64 explicit Frame(uint32_t sequence_num);
81 const std::list<ReferenceLine> &reference_lines,
82 const std::list<hdmap::RouteSegments> &segments,
83 const std::vector<routing::LaneWaypoint> &future_route_waypoints,
111 const std::vector<const Obstacle *>
obstacles()
const;
115 const std::string &obstacle_id,
const double obstacle_s,
116 double stop_wall_width = 4.0);
119 const std::string &lane_id,
120 const double lane_s);
124 const std::string &obstacle_id,
const double obstacle_start_s,
125 const double obstacle_end_s);
132 const double planning_start_time,
137 current_frame_planned_trajectory_ =
142 return current_frame_planned_trajectory_;
151 return current_frame_planned_path_;
161 const std::map<std::string, uint32_t> &id_to_priority);
174 return pad_msg_driving_action_;
182 bool CreateReferenceLineInfo(
const std::list<ReferenceLine> &reference_lines,
183 const std::list<hdmap::RouteSegments> &segments);
196 const Obstacle *CreateStaticVirtualObstacle(
const std::string &
id,
199 void AddObstacle(
const Obstacle &obstacle);
201 void ReadTrafficLights();
203 void ReadPadMsgDrivingAction();
204 void ResetPadMsgDrivingAction();
208 uint32_t sequence_num_ = 0;
213 std::list<ReferenceLineInfo> reference_line_info_;
215 bool is_near_destination_ =
false;
224 std::unordered_map<std::string, const perception::TrafficLight *>
237 std::vector<routing::LaneWaypoint> future_route_waypoints_;
A general class to denote the return status of an API call.
The class of vehicle state.
Rectangular (undirected) bounding box in 2-D.
High-precision map loader interface.
Frame holds all data for one planning cycle.
const std::vector< const Obstacle * > obstacles() const
const OpenSpaceInfo & open_space_info() const
static void AlignPredictionTime(const double planning_start_time, prediction::PredictionObstacles *prediction_obstacles)
const PadMessage::DrivingAction & GetPadMsgDrivingAction() const
uint32_t SequenceNum() const
const LocalView & local_view() const
const common::VehicleState & vehicle_state() const
const bool is_near_destination() const
const Obstacle * CreateStaticObstacle(ReferenceLineInfo *const reference_line_info, const std::string &obstacle_id, const double obstacle_start_s, const double obstacle_end_s)
: create static virtual object with lane width,
void set_current_frame_planned_trajectory(ADCTrajectory current_frame_planned_trajectory)
OpenSpaceInfo * mutable_open_space_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)
void UpdateReferenceLinePriority(const std::map< std::string, uint32_t > &id_to_priority)
Adjust reference line priority according to actual road conditions @id_to_priority lane id and refere...
ThreadSafeIndexedObstacles * GetObstacleList()
const ReferenceLineInfo * FindDriveReferenceLineInfo()
perception::TrafficLight GetSignal(const std::string &traffic_light_id) const
std::string DebugString() const
const PublishableTrajectory & ComputedTrajectory() const
Obstacle * Find(const std::string &id)
void RecordInputDebug(planning_internal::Debug *debug)
const ADCTrajectory & current_frame_planned_trajectory() const
const ReferenceLineInfo * FindFailedReferenceLineInfo()
common::Status InitForOpenSpace(const common::VehicleStateProvider *vehicle_state_provider, const EgoInfo *ego_info)
void set_current_frame_planned_path(DiscretizedPath current_frame_planned_path)
const ReferenceLineInfo * DriveReferenceLineInfo() const
const DiscretizedPath & current_frame_planned_path() const
const std::list< ReferenceLineInfo > & reference_line_info() const
const Obstacle * CreateStopObstacle(ReferenceLineInfo *const reference_line_info, const std::string &obstacle_id, const double obstacle_s, double stop_wall_width=4.0)
: create static virtual object with lane width, mainly used for virtual stop wall
std::list< ReferenceLineInfo > * mutable_reference_line_info()
const ReferenceLineInfo * FindTargetReferenceLineInfo()
const common::TrajectoryPoint & PlanningStartPoint() const
This is the class that associates an Obstacle with its path properties.
ReferenceLineInfo holds all data for one reference line.
The class of ReferenceLineProvider.
This class decides whether we should send rerouting request based on traffic situation.
Planning module main class.
The class of MonitorLogBuffer
Declaration of the class ReferenceLineProvider.
LocalView contains all necessary data as planning input