31#include "modules/common_msgs/config_msgs/vehicle_config.pb.h"
32#include "modules/planning/planning_open_space/proto/planner_open_space_config.pb.h"
48 std::vector<double>
x;
49 std::vector<double>
y;
50 std::vector<double>
phi;
71 const std::shared_ptr<Node3d> start_node,
72 const std::shared_ptr<Node3d> end_node,
73 std::shared_ptr<ReedSheppPath> optimal_path);
80 const std::shared_ptr<Node3d> start_node,
81 const std::shared_ptr<Node3d> end_node,
82 std::vector<ReedSheppPath>* all_possible_paths);
85 const std::shared_ptr<Node3d> start_node,
86 const std::shared_ptr<Node3d> end_node,
87 std::vector<ReedSheppPath>* all_possible_paths);
91 const std::shared_ptr<Node3d> start_node,
92 const std::shared_ptr<Node3d> end_node,
93 std::vector<ReedSheppPath>* all_possible_paths);
97 const std::shared_ptr<Node3d> start_node,
98 const std::shared_ptr<Node3d> end_node,
109 std::vector<double>* px,
110 std::vector<double>* py,
111 std::vector<double>* pphi,
112 std::vector<bool>* pgear);
116 const double* lengths,
118 std::vector<ReedSheppPath>* all_possible_paths,
119 double radius = 1.0);
123 const double* lengths,
124 const std::string& types,
125 std::vector<ReedSheppPath>* all_possible_paths,
127 bool CS(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
130 bool SCS(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
131 bool CSC(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
132 bool CCC(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
133 bool CCCC(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
134 bool CCSC(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
135 bool CCSCC(
const double x,
const double y,
const double phi, std::vector<ReedSheppPath>* all_possible_paths);
137 void LSL(
const double x,
const double y,
const double phi,
RSPParam* param);
138 void LSR(
const double x,
const double y,
const double phi,
RSPParam* param);
139 void LRL(
const double x,
const double y,
const double phi,
RSPParam* param);
140 void SLS(
const double x,
const double y,
const double phi,
RSPParam* param);
141 void LRLRn(
const double x,
const double y,
const double phi,
RSPParam* param);
142 void LRLRp(
const double x,
const double y,
const double phi,
RSPParam* param);
143 void LRSR(
const double x,
const double y,
const double phi,
RSPParam* param);
144 void LRSL(
const double x,
const double y,
const double phi,
RSPParam* param);
145 void LRSLR(
const double x,
const double y,
const double phi,
RSPParam* param);
146 void LS(
const double x,
const double y,
const double phi,
RSPParam* param);
void LRLRn(const double x, const double y, const double phi, RSPParam *param)
void LRL(const double x, const double y, const double phi, RSPParam *param)
PlannerOpenSpaceConfig planner_open_space_config_
void LSL(const double x, const double y, const double phi, RSPParam *param)
double traj_gear_switch_penalty_
bool SetRSP(const int size, const double *lengths, const char *types, std::vector< ReedSheppPath > *all_possible_paths, double radius=1.0)
void LRSL(const double x, const double y, const double phi, RSPParam *param)
bool CCCC(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
void LSR(const double x, const double y, const double phi, RSPParam *param)
void LRSLR(const double x, const double y, const double phi, RSPParam *param)
void SLS(const double x, const double y, const double phi, RSPParam *param)
bool GenerateLocalConfigurations(const std::shared_ptr< Node3d > start_node, const std::shared_ptr< Node3d > end_node, ReedSheppPath *shortest_path)
void Interpolation(const int index, const double pd, const char m, const double ox, const double oy, const double ophi, const double radius, std::vector< double > *px, std::vector< double > *py, std::vector< double > *pphi, std::vector< bool > *pgear)
void LRSR(const double x, const double y, const double phi, RSPParam *param)
common::VehicleParam vehicle_param_
std::pair< double, double > calc_tau_omega(const double u, const double v, const double xi, const double eta, const double phi)
double traj_forward_penalty_
bool ShortestRSP(const std::shared_ptr< Node3d > start_node, const std::shared_ptr< Node3d > end_node, std::shared_ptr< ReedSheppPath > optimal_path)
virtual ~ReedShepp()=default
double traj_steer_penalty_
bool CCC(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
bool CCSCC(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
bool CCSC(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
double traj_expected_shortest_length_
double traj_short_length_penalty_
WarmStartConfig planner_warm_start_config_
bool GenerateRSPs(const std::shared_ptr< Node3d > start_node, const std::shared_ptr< Node3d > end_node, std::vector< ReedSheppPath > *all_possible_paths)
bool GenerateRSPPar(const std::shared_ptr< Node3d > start_node, const std::shared_ptr< Node3d > end_node, std::vector< ReedSheppPath > *all_possible_paths)
bool CS(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
bool CSC(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
bool SCS(const double x, const double y, const double phi, std::vector< ReedSheppPath > *all_possible_paths)
void LS(const double x, const double y, const double phi, RSPParam *param)
bool SetRSPPar(const int size, const double *lengths, const std::string &types, std::vector< ReedSheppPath > *all_possible_paths, const int idx)
double traj_back_penalty_
double traj_steer_change_penalty_
bool GenerateRSP(const std::shared_ptr< Node3d > start_node, const std::shared_ptr< Node3d > end_node, std::vector< ReedSheppPath > *all_possible_paths)
void LRLRp(const double x, const double y, const double phi, RSPParam *param)
bool reeds_sheep_last_straight_
Planning module main class.
Math-related util functions.
std::vector< double > phi
std::vector< char > segs_types
std::vector< double > segs_lengths