28 #include "Eigen/Dense" 30 #include "modules/common/configs/proto/vehicle_config.pb.h" 33 #include "modules/common/vehicle_state/proto/vehicle_state.pb.h" 38 #include "modules/map/proto/map_id.pb.h" 50 const std::shared_ptr<DependencyInjector> &injector);
58 bool GetParkingSpot(
Frame *
const frame,
59 std::array<common::math::Vec2d, 4> *vertices,
63 bool GetPullOverSpot(
Frame *
const frame,
64 std::array<common::math::Vec2d, 4> *vertices,
68 void SetOrigin(
Frame *
const frame,
69 const std::array<common::math::Vec2d, 4> &vertices);
71 void SetParkingSpotEndPose(
72 Frame *
const frame,
const std::array<common::math::Vec2d, 4> &vertices);
74 void SetPullOverSpotEndPose(
Frame *
const frame);
75 void SetParkAndGoEndPose(
Frame *
const frame);
79 const hdmap::Path &nearby_path,
const double center_line_s,
81 std::vector<common::math::Vec2d> *left_lane_boundary,
82 std::vector<common::math::Vec2d> *right_lane_boundary,
83 std::vector<common::math::Vec2d> *center_lane_boundary_left,
84 std::vector<common::math::Vec2d> *center_lane_boundary_right,
85 std::vector<double> *center_lane_s_left,
86 std::vector<double> *center_lane_s_right,
87 std::vector<double> *left_lane_road_width,
88 std::vector<double> *right_lane_road_width);
91 void GetRoadBoundaryFromMap(
92 const hdmap::Path &nearby_path,
const double center_line_s,
94 std::vector<common::math::Vec2d> *left_lane_boundary,
95 std::vector<common::math::Vec2d> *right_lane_boundary,
96 std::vector<common::math::Vec2d> *center_lane_boundary_left,
97 std::vector<common::math::Vec2d> *center_lane_boundary_right,
98 std::vector<double> *center_lane_s_left,
99 std::vector<double> *center_lane_s_right,
100 std::vector<double> *left_lane_road_width,
101 std::vector<double> *right_lane_road_width);
104 void AddBoundaryKeyPoint(
105 const hdmap::Path &nearby_path,
const double check_point_s,
106 const double start_s,
const double end_s,
const bool is_anchor_point,
107 const bool is_left_curb,
108 std::vector<common::math::Vec2d> *center_lane_boundary,
109 std::vector<common::math::Vec2d> *curb_lane_boundary,
110 std::vector<double> *center_lane_s, std::vector<double> *road_width);
126 bool GetParkingBoundary(
Frame *
const frame,
127 const std::array<common::math::Vec2d, 4> &vertices,
129 std::vector<std::vector<common::math::Vec2d>>
130 *
const roi_parking_boundary);
132 bool GetPullOverBoundary(
Frame *
const frame,
133 const std::array<common::math::Vec2d, 4> &vertices,
135 std::vector<std::vector<common::math::Vec2d>>
136 *
const roi_parking_boundary);
138 bool GetParkAndGoBoundary(
Frame *
const frame,
const hdmap::Path &nearby_path,
139 std::vector<std::vector<common::math::Vec2d>>
140 *
const roi_parking_boundary);
144 void SearchTargetParkingSpotOnPath(
149 bool CheckDistanceToParkingSpot(
154 bool FuseLineSegments(
155 std::vector<std::vector<common::math::Vec2d>> *line_segments_vec);
158 bool FormulateBoundaryConstraints(
159 const std::vector<std::vector<common::math::Vec2d>> &roi_parking_boundary,
165 bool LoadObstacleInVertices(
166 const std::vector<std::vector<common::math::Vec2d>> &roi_parking_boundary,
169 bool FilterOutObstacle(
const Frame &frame,
const Obstacle &obstacle);
173 bool LoadObstacleInHyperPlanes(
Frame *
const frame);
176 bool GetHyperPlanes(
const size_t &obstacles_num,
177 const Eigen::MatrixXi &obstacles_edges_num,
178 const std::vector<std::vector<common::math::Vec2d>>
179 &obstacles_vertices_vec,
180 Eigen::MatrixXd *A_all, Eigen::MatrixXd *b_all);
187 bool IsInParkingLot(
const double adc_init_x,
const double adc_init_y,
188 const double adc_init_heading,
189 std::array<common::math::Vec2d, 4> *parking_lot_vertices);
197 std::array<common::math::Vec2d, 4> *vertices);
201 std::string target_parking_spot_id_;
205 apollo::common::VehicleParam vehicle_params_;
209 common::VehicleState vehicle_state_;
This is the class that associates an Obstacle with its path properties. An obstacle's path properties...
Definition: obstacle.h:60
std::shared_ptr< const ParkingSpaceInfo > ParkingSpaceInfoConstPtr
Definition: hdmap_common.h:134
Definition: open_space_roi_decider.h:47
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...
Frame holds all data for one planning cycle.
Definition: frame.h:61
Implements a class of 2-dimensional vectors.
Definition: vec2d.h:42
High-precision map loader interface.
Definition: hdmap.h:53
OpenSpaceRoiDecider(const TaskConfig &config, const std::shared_ptr< DependencyInjector > &injector)
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