2.2.5.2. Path Planning Library¶
Defines
-
M_PI¶
Enums
-
enum class LogLevel¶
Values:
-
enumerator TRACE¶
-
enumerator DEBUG¶
-
enumerator INFO¶
-
enumerator WARN¶
-
enumerator ERROR¶
-
enumerator FATAL¶
-
enumerator TRACE¶
-
enum class ConeID¶
Values:
-
enumerator YELLOW¶
-
enumerator BLUE¶
-
enumerator ORANGE¶
-
enumerator ORANGE_BIG¶
-
enumerator YELLOW¶
-
enum class Strategy¶
Values:
-
enumerator ERROR¶
-
enumerator ORANGE_CENTERPOINT¶
-
enumerator DYNAMIC_WINDOW_APPROACH_BLUE¶
-
enumerator DYNAMIC_WINDOW_APPROACH_YELLOW¶
-
enumerator GATE_FALLBACK¶
-
enumerator BORDERSHIFT_BLUE¶
-
enumerator BORDERSHIFT_YELLOW¶
-
enumerator RERUN_BORDERSHIFT_BLUE¶
-
enumerator RERUN_BORDERSHIFT_YELLOW¶
-
enumerator DEFAULT¶
-
enumerator ERROR¶
-
class PathPlanningLib¶
Public Functions
-
PathPlanningLib(LogLevel loglevel, float track_width_min = 3.0, int perceived_n_threshold = 4, int perceived_n_threshold_orange_big = 3, float delaunay_lines_max_length = 6.5, float max_distance_between_cone_clusters = 6.0, float sorting_angle_threshold = 52.5, bool clockwise = true, float max_distance_centerpoints = 10.0, float min_distance_close_cones = 2.0)¶
-
std::tuple<Eigen::MatrixX2d, Eigen::MatrixX2d, Eigen::VectorXi, bool> planCenterline(const Eigen::MatrixX2d &left_cones, const Eigen::MatrixX2d &right_cones, const Eigen::MatrixX2d &orange_cones, const Eigen::MatrixXi &percieved_n_left_cones, const Eigen::MatrixXi &percieved_n_right_cones, const Eigen::MatrixXi &percieved_n_orange_cones, bool closed_track = false)¶
-
std::chrono::duration<double> getElapsedTime()¶
Private Functions
-
bool localPathPlanning()¶
-
void truncateCenterline()¶
-
void sortCenterline()¶
-
void combineWithStartingCenterpoints()¶
-
bool fullPathPlanner()¶
-
bool pathPlanningRerun()¶
-
Eigen::MatrixX2d removeCloseCones(const Eigen::MatrixX2d &all_cones, const Eigen::MatrixX2d &unused_cones, const Eigen::MatrixXi &percieved_n)¶
-
std::tuple<Eigen::MatrixX2d, Eigen::MatrixX2d> delaunay()¶
-
std::tuple<Eigen::MatrixX2d, Eigen::MatrixX2d> advancedDynamicWindow(const Eigen::MatrixX2d &point, ConeID cone_id)¶
-
std::tuple<Eigen::MatrixX2d, Eigen::MatrixX2d> bordershift(const Eigen::MatrixX2d &points, ConeID cone_id)¶
-
std::tuple<Eigen::MatrixX2d, Eigen::MatrixX2d> gateFallback()¶
-
Eigen::MatrixX2d startingCenterpoints()¶
-
Eigen::VectorXi sortPoints(const Eigen::MatrixX2d ¢erpoints, float max_distance_centerpoints, float angle_threshold)¶
-
std::vector<Eigen::MatrixX2d> splitCones(const Eigen::MatrixX2d &cones, const Eigen::VectorXd &distances, double threshold)¶
-
Eigen::MatrixXi removeDuplicatesAndSameColorCones(const Eigen::MatrixXi &result, int left_cones_size)¶
-
Eigen::MatrixXi filterLines(const Eigen::MatrixXd &coordinates, Eigen::MatrixXi &result, double threshold, ComparisonType comparison_type)¶
-
Eigen::MatrixXd calcDistances(const Eigen::MatrixXd &coordinates, const Eigen::MatrixXi &result)¶
-
Eigen::MatrixXi sortMatrixRows(const Eigen::MatrixXi &mat)¶
-
Eigen::MatrixX2d calculateCenterpoints(const Eigen::MatrixXi &result)¶
Private Members
-
float track_width_min_¶
-
int perceived_n_threshold_¶
-
int perceived_n_threshold_orange_big_¶
-
float delaunay_lines_max_length_¶
-
float min_distance_between_cone_clusters_¶
-
float sorting_angle_threshold_¶
-
bool clockwise_¶
-
float max_distance_centerpoints_¶
-
float min_distance_close_cones_¶
-
bool closed_track_ = false¶
-
std::chrono::duration<double> elapsed_time_ = std::chrono::duration<double>::zero()¶
-
Eigen::MatrixX2d left_cones_¶
-
Eigen::MatrixX2d right_cones_¶
-
Eigen::MatrixX2d orange_cones_¶
-
Eigen::MatrixXi percieved_n_left_cones_¶
-
Eigen::MatrixXi percieved_n_right_cones_¶
-
Eigen::MatrixXi percieved_n_orange_big_cones_¶
-
Eigen::MatrixX2d centerpoints_¶
-
Eigen::MatrixX2d track_widths_¶
-
Eigen::MatrixX2d delaunay_coordinates_¶
-
Eigen::MatrixX2d unused_cones_left_¶
-
Eigen::MatrixX2d unused_cones_right_¶
-
Eigen::VectorXi strategy_¶
-
Eigen::MatrixX2d starting_centerpoints_¶
-
Eigen::MatrixX2d starting_track_widths_¶
-
Eigen::VectorXi starting_strategy_¶
-
PathPlanningLib(LogLevel loglevel, float track_width_min = 3.0, int perceived_n_threshold = 4, int perceived_n_threshold_orange_big = 3, float delaunay_lines_max_length = 6.5, float max_distance_between_cone_clusters = 6.0, float sorting_angle_threshold = 52.5, bool clockwise = true, float max_distance_centerpoints = 10.0, float min_distance_close_cones = 2.0)¶