70 const std::vector<const Obstacle *> &obstacles,
72 const std::vector<common::PathPoint> &path_data_points,
80 const std::vector<common::PathPoint> &path_data_points,
81 const std::vector<const Obstacle *> &obstacles);
87 const std::vector<std::tuple<std::string, double, double>> &
UnsafeObstacles();
100 void SetLastNudgeDistance(
double dist);
106 void ProcessObstacle(
const std::vector<const Obstacle *> &obstacles,
107 const std::vector<common::PathPoint> &path_data_points,
109 const double min_lane_width,
117 void AddObstacleOffsetDirection(
119 const std::vector<common::PathPoint> &path_data_points,
120 const Obstacle *current_obstacle,
const double proj_len,
double *dist);
126 bool IsNeedFilterObstacle(
129 const std::vector<common::PathPoint> &path_data_points,
137 double GetMinLaneWidth(
const std::vector<common::PathPoint> &path_data_points,
144 void RecordLastNudgeDistance(
const double nudge_dist);
151 double GetObstacleActualOffsetDistance(
152 std::map<double, double>::iterator iter,
const double right_nedge_lane,
153 const double left_nudge_lane,
int *lane_obstacles_num);
159 void KeepNudgePosition(
const double nudge_dist,
int *lane_obstacles_num);
163 std::map<double, double> obstacle_lat_dist_;
164 std::vector<std::tuple<std::string, double, double>> unsafe_obstacle_info_;
165 double last_nudge_dist_ = 0.0;
166 unsigned int no_nudge_num_ = 0;
167 unsigned int limit_speed_num_ = 0;
168 unsigned int eliminate_clutter_num_ = 0;
169 unsigned int last_lane_obstacles_num_ = 0;
170 unsigned int statist_count_ = 0;
171 unsigned int cycles_count_ = 0;
172 bool is_obstacle_stable_ =
false;
173 bool keep_nudge_flag_ =
false;
175 FRIEND_TEST(NaviObstacleDeciderTest, ComputeNudgeDist1);
176 FRIEND_TEST(NaviObstacleDeciderTest, ComputeNudgeDist2);
177 FRIEND_TEST(NaviObstacleDeciderTest, ComputeNudgeDist3);
178 FRIEND_TEST(NaviObstacleDeciderTest, ComputeNudgeDist4);
179 FRIEND_TEST(NaviObstacleDeciderTest, GetUnsafeObstaclesID);
double GetNudgeDistance(const std::vector< const Obstacle * > &obstacles, const ReferenceLine &reference_line, const PathDecision &path_decision, const std::vector< common::PathPoint > &path_data_points, const common::VehicleState &vehicle_state, int *lane_obstacles_num)
get the actual nudgable distance according to the position of the obstacle