@@ -109,8 +109,12 @@ class IntersectionModule : public SceneModuleInterface
109
109
{
110
110
double distance_to_assigned_lanelet_start;
111
111
double duration;
112
- double range ;
112
+ double object_dist_to_stopline ;
113
113
} yield_on_green_traffic_light;
114
+ struct IgnoreOnAmberTrafficLight
115
+ {
116
+ double object_expected_deceleration;
117
+ } ignore_on_amber_traffic_light;
114
118
} collision_detection;
115
119
struct Occlusion
116
120
{
@@ -266,7 +270,8 @@ class IntersectionModule : public SceneModuleInterface
266
270
267
271
// for occlusion detection
268
272
const bool enable_occlusion_detection_;
269
- std::optional<std::vector<util::DiscretizedLane>> occlusion_attention_divisions_{std::nullopt};
273
+ std::optional<std::vector<lanelet::ConstLineString3d>> occlusion_attention_divisions_{
274
+ std::nullopt};
270
275
StateMachine collision_state_machine_; // ! for stable collision checking
271
276
StateMachine before_creep_state_machine_; // ! for two phase stop
272
277
StateMachine occlusion_stop_state_machine_;
@@ -302,27 +307,24 @@ class IntersectionModule : public SceneModuleInterface
302
307
const util::PathLanelets & path_lanelets,
303
308
const std::optional<lanelet::CompoundPolygon3d> & first_attention_area);
304
309
305
- autoware_auto_perception_msgs::msg::PredictedObjects filterTargetObjects (
306
- const lanelet::ConstLanelets & attention_area_lanelets,
307
- const lanelet::ConstLanelets & adjacent_lanelets,
310
+ util::TargetObjects generateTargetObjects (
311
+ const util::IntersectionLanelets & intersection_lanelets,
308
312
const std::optional<Polygon2d> & intersection_area) const ;
309
313
310
314
bool checkCollision (
311
315
const autoware_auto_planning_msgs::msg::PathWithLaneId & path,
312
- const autoware_auto_perception_msgs::msg::PredictedObjects & target_objects,
313
- const util::PathLanelets & path_lanelets, const size_t closest_idx,
314
- const size_t last_intersection_stop_line_candidate_idx, const double time_delay,
315
- const util::TrafficPrioritizedLevel & traffic_prioritized_level);
316
+ util::TargetObjects * target_objects, const util::PathLanelets & path_lanelets,
317
+ const size_t closest_idx, const size_t last_intersection_stop_line_candidate_idx,
318
+ const double time_delay, const util::TrafficPrioritizedLevel & traffic_prioritized_level);
316
319
317
320
bool isOcclusionCleared (
318
321
const nav_msgs::msg::OccupancyGrid & occ_grid,
319
322
const std::vector<lanelet::CompoundPolygon3d> & attention_areas,
320
323
const lanelet::ConstLanelets & adjacent_lanelets,
321
324
const lanelet::CompoundPolygon3d & first_attention_area,
322
325
const util::InterpolatedPathInfo & interpolated_path_info,
323
- const std::vector<util::DiscretizedLane> & lane_divisions,
324
- const std::vector<autoware_auto_perception_msgs::msg::PredictedObject> &
325
- parked_attention_objects,
326
+ const std::vector<lanelet::ConstLineString3d> & lane_divisions,
327
+ const std::vector<util::TargetObject> & blocking_attention_objects,
326
328
const double occlusion_dist_thr);
327
329
328
330
/*
0 commit comments