49 const std::vector<std::vector<common::math::Vec2d>>& roi_parking_boundary,
50 std::vector<double>*
const XYBoundary);
54 std::vector<std::vector<common::math::Vec2d>>* roi_parking_boundary);
58 std::vector<common::math::Vec2d>* roi_parking_boundary);
72 const double filtering_distance,
73 const double perception_obstacle_buffer,
74 const std::vector<double>& xy_boundary,
76 std::vector<std::vector<common::math::Vec2d>>*
77 const roi_parking_boundary);
86 const double filtering_distance,
88 const std::vector<double>& xy_boundary,
97 const size_t& obstacles_num,
98 const Eigen::MatrixXi& obstacles_edges_num,
99 const std::vector<std::vector<Vec2d>>& obstacles_vertices_vec,
100 Eigen::MatrixXd* A_all,
101 Eigen::MatrixXd* b_all);
103 const Vec2d& origin_point,
104 const double& origin_heading,
109 std::vector<Vec2d>* points);
Rectangular (undirected) bounding box in 2-D.
Implements a class of 2-dimensional vectors.
Frame holds all data for one planning cycle.
This is the class that associates an Obstacle with its path properties.
static bool AdjustPointsOrderToClockwise(std::vector< Vec2d > *polygon)
static bool LoadObstacleInHyperPlanes(OpenSpaceInfo *const open_space_info)
brief Transform the vertice presentation of the obstacles into linear inequality as Ax>b
static bool FormulateBoundaryConstraints(OpenSpaceInfo *const open_space_info)
main process to compute and load info needed by open space planner
static bool LoadObstacles(const double filtering_distance, const double perception_obstacle_buffer, const std::vector< double > &xy_boundary, Frame *const frame, std::vector< std::vector< common::math::Vec2d > > *const roi_parking_boundary)
Load obstacle polygon to roi_boundary in clock wise order
static bool UpdateParkingPointsOrder(const apollo::hdmap::Path &nearby_path, std::vector< Vec2d > *points)
static void TransformByOriginPoint(const common::math::Vec2d &origin_point, const double heading, std::vector< std::vector< common::math::Vec2d > > *roi_parking_boundary)
static bool IsPolygonClockwise(const std::vector< Vec2d > &polygon)
static void GetRoiXYBoundary(const std::vector< std::vector< common::math::Vec2d > > &roi_parking_boundary, std::vector< double > *const XYBoundary)
get XY boundary which is minmax x or y in roi boundary
static bool FilterOutObstacle(const double filtering_distance, const Frame &frame, const std::vector< double > &xy_boundary, const Obstacle &obstacle)
is obstacle can be filterd out, filtered by distance and roi XY bound
static bool GetHyperPlanes(const size_t &obstacles_num, const Eigen::MatrixXi &obstacles_edges_num, const std::vector< std::vector< Vec2d > > &obstacles_vertices_vec, Eigen::MatrixXd *A_all, Eigen::MatrixXd *b_all)
Planning module main class.