42 bool Init(
const std::string& config_dir,
const std::string& name,
43 const std::shared_ptr<DependencyInjector>& injector)
override;
52 void InterpolateTrajectory(
56 void UpdateVehicleInfo();
59 std::string*
const encoding);
61 bool CheckTrajTraversed(
const std::string& trajectory_encoding_to_check);
63 void UpdateTrajHistory(
const std::string& chosen_trajectory_encoding);
66 std::vector<TrajGearPair>* partitioned_trajectories);
69 const bool is_trajectory_last_point,
77 const size_t trajectories_size,
78 size_t* current_trajectory_point_index);
80 bool UseFailSafeSearch(
81 const std::vector<TrajGearPair>& partitioned_trajectories,
82 const std::vector<std::string>& trajectories_encodings,
83 size_t* current_trajectory_index,
size_t* current_trajectory_point_index);
85 bool InsertGearShiftTrajectory(
86 const bool flag_change_to_next,
const size_t current_trajectory_index,
87 const std::vector<TrajGearPair>& partitioned_trajectories,
90 void GenerateGearShiftTrajectory(
94 double standstill_acceleration);
95 void AdjustRelativeTimeAndS(
96 const std::vector<TrajGearPair>& partitioned_trajectories,
97 const size_t current_trajectory_index,
98 const size_t closest_trajectory_point_index,
104 double heading_search_range_ = 0.0;
105 double heading_track_range_ = 0.0;
106 double distance_search_range_ = 0.0;
107 double heading_offset_to_midpoint_ = 0.0;
108 double lateral_offset_to_midpoint_ = 0.0;
109 double longitudinal_offset_to_midpoint_ = 0.0;
110 double vehicle_box_iou_threshold_to_midpoint_ = 0.0;
111 double linear_velocity_threshold_on_ego_ = 0.0;
114 double ego_length_ = 0.0;
115 double ego_width_ = 0.0;
116 double shift_distance_ = 0.0;
117 double wheel_base_ = 0.0;
119 double ego_theta_ = 0.0;
123 apollo::canbus::Chassis_GearPosition ego_gear_;
125 double vehicle_moving_direction_ = 0.0;
126 int last_index_ = -1;
127 size_t current_trajectory_index_ = 0;
128 bool fail_search_fallback_ =
false;
129 double last_time_ = 0;
132 const std::pair<std::pair<size_t, size_t>,
double>& left,
133 const std::pair<std::pair<size_t, size_t>,
double>& right)
const {
134 return left.second <= right.second;
138 bool operator()(
const std::pair<size_t, double>& left,
139 const std::pair<size_t, double>& right) {
140 return left.second <= right.second;