26 #include "Eigen/Dense" 28 #include "modules/canbus/proto/chassis.pb.h" 29 #include "modules/common/configs/proto/vehicle_config.pb.h" 32 #include "modules/common/vehicle_state/proto/vehicle_state.pb.h" 36 #include "modules/map/proto/map_id.pb.h" 42 #include "modules/planning/proto/planning_internal.pb.h" 47 typedef std::pair<DiscretizedTrajectory, canbus::Chassis::GearPosition>
57 canbus::Chassis::GEAR_DRIVE;
66 return target_parking_spot_id_;
70 return &target_parking_spot_id_;
74 return target_parking_spot_;
78 return &target_parking_spot_;
82 return target_parking_lane_;
86 target_parking_lane_ = lane_info_const_ptr;
90 return open_space_pre_stop_fence_s_;
94 open_space_pre_stop_fence_s_ = s;
100 pre_stop_rightaway_flag_ = flag;
104 return pre_stop_rightaway_point_;
108 return &pre_stop_rightaway_point_;
112 return is_on_open_space_trajectory_;
116 is_on_open_space_trajectory_ = flag;
122 obstacles_num_ = obstacles_num;
126 return obstacles_edges_num_;
130 return &obstacles_edges_num_;
135 return obstacles_vertices_vec_;
138 std::vector<std::vector<common::math::Vec2d>>
140 return &obstacles_vertices_vec_;
143 const Eigen::MatrixXd &
obstacles_A()
const {
return obstacles_A_; }
147 const Eigen::MatrixXd &
obstacles_b()
const {
return obstacles_b_; }
154 origin_heading_ = original_heading;
162 return ROI_xy_boundary_;
168 return open_space_end_pose_;
172 return &open_space_end_pose_;
176 return optimizer_trajectory_data_;
180 return &optimizer_trajectory_data_;
185 return stitching_trajectory_data_;
189 return &stitching_trajectory_data_;
193 return stitched_trajectory_result_;
197 return &stitched_trajectory_result_;
201 return open_space_provider_success_;
205 open_space_provider_success_ = flag;
213 return interpolated_trajectory_result_;
217 return &interpolated_trajectory_result_;
222 return partitioned_trajectories_;
226 return &partitioned_trajectories_;
230 return gear_switch_states_;
234 return &gear_switch_states_;
239 return chosen_partitioned_trajectory_;
243 return &chosen_partitioned_trajectory_;
253 return fallback_trajectory_;
257 fallback_trajectory_ = traj_gear_pair;
260 std::pair<PublishableTrajectory, canbus::Chassis::GearPosition>
262 return &publishable_trajectory_data_;
265 const std::pair<PublishableTrajectory, canbus::Chassis::GearPosition>
267 return publishable_trajectory_data_;
272 return &future_collision_point_;
276 return future_collision_point_;
283 void set_debug(apollo::planning_internal::Debug *debug) { debug_ = debug; }
285 const apollo::planning_internal::Debug &
debug()
const {
return *debug_; }
288 return debug_instance_;
292 return &debug_instance_;
298 if (!debug_->planning_data().open_space().obstacles().empty()) {
299 debug_instance_.mutable_planning_data()
300 ->mutable_open_space()
303 debug_instance_.MergeFrom(*debug_);
306 void RecordDebug(apollo::planning_internal::Debug *ptr_debug);
311 std::string target_parking_spot_id_;
317 double open_space_pre_stop_fence_s_ = 0.0;
319 bool pre_stop_rightaway_flag_ =
false;
323 bool is_on_open_space_trajectory_ =
false;
326 size_t obstacles_num_ = 0;
330 Eigen::MatrixXi obstacles_edges_num_;
333 std::vector<double> ROI_xy_boundary_;
337 std::vector<double> open_space_end_pose_;
340 std::vector<std::vector<common::math::Vec2d>> obstacles_vertices_vec_;
343 Eigen::MatrixXd obstacles_A_;
344 Eigen::MatrixXd obstacles_b_;
347 double origin_heading_ = 0.0;
355 std::vector<common::TrajectoryPoint> stitching_trajectory_data_;
359 bool open_space_provider_success_ =
false;
361 bool destination_reached_ =
false;
365 std::vector<TrajGearPair> partitioned_trajectories_;
371 bool fallback_flag_ =
true;
375 common::TrajectoryPoint future_collision_point_;
377 std::pair<PublishableTrajectory, canbus::Chassis::GearPosition>
378 publishable_trajectory_data_;
381 apollo::planning_internal::Debug *debug_;
385 apollo::planning_internal::Debug debug_instance_;
387 double time_latency_ = 0.0;
std::string * mutable_target_parking_spot_id()
Definition: open_space_info.h:69
void set_fallback_trajectory(const TrajGearPair &traj_gear_pair)
Definition: open_space_info.h:256
void set_debug(apollo::planning_internal::Debug *debug)
Definition: open_space_info.h:283
const std::vector< common::TrajectoryPoint > & stitching_trajectory_data() const
Definition: open_space_info.h:183
const apollo::planning_internal::Debug debug_instance() const
Definition: open_space_info.h:287
bool pre_stop_rightaway_flag() const
Definition: open_space_info.h:97
apollo::canbus::Chassis::GearPosition gear_shift_position
Definition: open_space_info.h:56
Eigen::MatrixXd * mutable_obstacles_A()
Definition: open_space_info.h:145
bool open_space_provider_success() const
Definition: open_space_info.h:200
const Eigen::MatrixXd & obstacles_A() const
Definition: open_space_info.h:143
common::math::Vec2d * mutable_origin_point()
Definition: open_space_info.h:159
GearSwitchStates * mutable_gear_switch_states()
Definition: open_space_info.h:233
std::shared_ptr< const ParkingSpaceInfo > ParkingSpaceInfoConstPtr
Definition: hdmap_common.h:134
const Eigen::MatrixXd & obstacles_b() const
Definition: open_space_info.h:147
void set_open_space_provider_success(const bool flag)
Definition: open_space_info.h:204
PlanningContext is the runtime context in planning. It is persistent across multiple frames...
Definition: atomic_hash_map.h:25
const std::vector< TrajGearPair > & partitioned_trajectories() const
Definition: open_space_info.h:220
std::vector< TrajGearPair > * mutable_partitioned_trajectories()
Definition: open_space_info.h:225
std::pair< PublishableTrajectory, canbus::Chassis::GearPosition > * mutable_publishable_trajectory_data()
Definition: open_space_info.h:261
const std::string target_parking_spot_id() const
Definition: open_space_info.h:65
const Eigen::MatrixXi & obstacles_edges_num() const
Definition: open_space_info.h:125
Definition: discretized_trajectory.h:32
const std::vector< double > & open_space_end_pose() const
Definition: open_space_info.h:167
const DiscretizedTrajectory & interpolated_trajectory_result() const
Definition: open_space_info.h:212
bool is_on_open_space_trajectory() const
Definition: open_space_info.h:111
const common::TrajectoryPoint & future_collision_point() const
Definition: open_space_info.h:275
Planning module main class. It processes GPS and IMU as input, to generate planning info...
apollo::planning_internal::Debug * mutable_debug_instance()
Definition: open_space_info.h:291
std::pair< DiscretizedTrajectory, canbus::Chassis::GearPosition > TrajGearPair
Definition: open_space_info.h:48
DiscretizedTrajectory * mutable_stitched_trajectory_result()
Definition: open_space_info.h:196
void set_obstacles_num(const size_t obstacles_num)
Definition: open_space_info.h:121
std::vector< common::TrajectoryPoint > * mutable_stitching_trajectory_data()
Definition: open_space_info.h:188
std::vector< std::vector< common::math::Vec2d > > * mutable_obstacles_vertices_vec()
Definition: open_space_info.h:139
Definition: open_space_info.h:50
void sync_debug_instance()
Definition: open_space_info.h:295
const TrajGearPair & chosen_partitioned_trajectory() const
Definition: open_space_info.h:237
double gear_shift_start_time
Definition: open_space_info.h:55
void set_target_parking_lane(hdmap::LaneInfoConstPtr lane_info_const_ptr)
Definition: open_space_info.h:85
const std::vector< std::vector< common::math::Vec2d > > & obstacles_vertices_vec() const
Definition: open_space_info.h:133
Eigen::MatrixXi * mutable_obstacles_edges_num()
Definition: open_space_info.h:129
common::TrajectoryPoint * mutable_future_collision_point()
Definition: open_space_info.h:271
const std::vector< double > & ROI_xy_boundary() const
Definition: open_space_info.h:161
bool gear_shift_period_finished
Definition: open_space_info.h:52
size_t obstacles_num() const
Definition: open_space_info.h:119
bool fallback_flag() const
Definition: open_space_info.h:246
const hdmap::LaneInfoConstPtr target_parking_lane() const
Definition: open_space_info.h:81
const hdmap::MapPathPoint & pre_stop_rightaway_point() const
Definition: open_space_info.h:103
apollo::planning_internal::Debug * mutable_debug()
Definition: open_space_info.h:281
Implements a class of 2-dimensional vectors.
Definition: vec2d.h:42
DiscretizedTrajectory * mutable_optimizer_trajectory_data()
Definition: open_space_info.h:179
Definition: open_space_info.h:60
const DiscretizedTrajectory & stitched_trajectory_result() const
Definition: open_space_info.h:192
void set_open_space_pre_stop_fence_s(const double s)
Definition: open_space_info.h:93
TrajGearPair * mutable_fallback_trajectory()
Definition: open_space_info.h:250
const DiscretizedTrajectory & optimizer_trajectory_data() const
Definition: open_space_info.h:175
double gear_shift_period_time
Definition: open_space_info.h:54
const common::math::Vec2d & origin_point() const
Definition: open_space_info.h:157
std::shared_ptr< const LaneInfo > LaneInfoConstPtr
Definition: hdmap_common.h:125
const hdmap::ParkingSpaceInfoConstPtr target_parking_spot() const
Definition: open_space_info.h:73
Eigen::MatrixXd * mutable_obstacles_b()
Definition: open_space_info.h:149
void set_destination_reached(const bool flag)
Definition: open_space_info.h:210
void set_origin_heading(const double original_heading)
Definition: open_space_info.h:153
const TrajGearPair & fallback_trajectory() const
Definition: open_space_info.h:252
void set_is_on_open_space_trajectory(const bool flag)
Definition: open_space_info.h:115
TrajGearPair * mutable_chosen_partitioned_trajectory()
Definition: open_space_info.h:242
void set_fallback_flag(const bool flag)
Definition: open_space_info.h:248
hdmap::MapPathPoint * mutable_pre_stop_rightaway_point()
Definition: open_space_info.h:107
const GearSwitchStates & gear_switch_states() const
Definition: open_space_info.h:229
hdmap::ParkingSpaceInfoConstPtr * mutable_target_parking_spot()
Definition: open_space_info.h:77
bool gear_switching_flag
Definition: open_space_info.h:51
void set_pre_stop_rightaway_flag(const bool flag)
Definition: open_space_info.h:99
void set_time_latency(double time_latency)
Definition: open_space_info.h:308
double open_space_pre_stop_fence_s() const
Definition: open_space_info.h:89
double origin_heading() const
Definition: open_space_info.h:151
bool destination_reached() const
Definition: open_space_info.h:208
std::vector< double > * mutable_ROI_xy_boundary()
Definition: open_space_info.h:165
const std::pair< PublishableTrajectory, canbus::Chassis::GearPosition > & publishable_trajectory_data() const
Definition: open_space_info.h:266
const apollo::planning_internal::Debug & debug() const
Definition: open_space_info.h:285
std::vector< double > * mutable_open_space_end_pose()
Definition: open_space_info.h:171
bool gear_shift_period_started
Definition: open_space_info.h:53
DiscretizedTrajectory * mutable_interpolated_trajectory_result()
Definition: open_space_info.h:216