@@ -856,23 +856,38 @@ LaneChangeTargetObjects NormalLaneChange::getTargetObjects(
856
856
target_objects.other_lane .reserve (target_obj_index.other_lane .size ());
857
857
858
858
// objects in current lane
859
+
860
+ lanelet::ConstLanelet current_lane;
861
+ if (getRouteHandler ()->getClosestLaneletWithinRoute (getEgoPose (), ¤t_lane)) {
862
+ }
863
+ const auto ego_footprint =
864
+ utils::lane_change::getEgoCurrentFootprint (getEgoPose (), common_parameters.vehicle_info );
865
+ const auto is_ego_within_intersection =
866
+ utils::lane_change::isWithinIntersection (getRouteHandler (), current_lane, ego_footprint);
867
+
868
+ const auto check_prepare_phase =
869
+ is_ego_within_intersection || lane_change_parameters_->enable_prepare_segment_collision_check ;
870
+
859
871
for (const auto & obj_idx : target_obj_index.current_lane ) {
860
872
const auto extended_object = utils::lane_change::transform (
861
- objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_);
873
+ objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_,
874
+ check_prepare_phase);
862
875
target_objects.current_lane .push_back (extended_object);
863
876
}
864
877
865
878
// objects in target lane
866
879
for (const auto & obj_idx : target_obj_index.target_lane ) {
867
880
const auto extended_object = utils::lane_change::transform (
868
- objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_);
881
+ objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_,
882
+ check_prepare_phase);
869
883
target_objects.target_lane .push_back (extended_object);
870
884
}
871
885
872
886
// objects in other lane
873
887
for (const auto & obj_idx : target_obj_index.other_lane ) {
874
888
const auto extended_object = utils::lane_change::transform (
875
- objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_);
889
+ objects.objects .at (obj_idx), common_parameters, *lane_change_parameters_,
890
+ check_prepare_phase);
876
891
target_objects.other_lane .push_back (extended_object);
877
892
}
878
893
@@ -930,14 +945,25 @@ LaneChangeTargetObjectIndices NormalLaneChange::filterObject(
930
945
target_backward_polygons.push_back (lane_polygon);
931
946
}
932
947
948
+ lanelet::ConstLanelet current_lane;
949
+ if (!route_handler.getClosestLaneletWithinRoute (getEgoPose (), ¤t_lane)) {
950
+ }
951
+ const auto ego_footprint =
952
+ utils::lane_change::getEgoCurrentFootprint (getEgoPose (), common_parameters.vehicle_info );
953
+ const auto is_ego_within_intersection =
954
+ utils::lane_change::isWithinIntersection (getRouteHandler (), current_lane, ego_footprint);
955
+
956
+ const auto check_prepare_phase =
957
+ is_ego_within_intersection || lane_change_parameters_->enable_prepare_segment_collision_check ;
958
+
933
959
LaneChangeTargetObjectIndices filtered_obj_indices;
934
960
for (size_t i = 0 ; i < objects.objects .size (); ++i) {
935
961
const auto & object = objects.objects .at (i);
936
962
const auto obj_velocity_norm = std::hypot (
937
963
object.kinematics .initial_twist_with_covariance .twist .linear .x ,
938
964
object.kinematics .initial_twist_with_covariance .twist .linear .y );
939
- const auto extended_object =
940
- utils::lane_change::transform ( object, common_parameters, *lane_change_parameters_);
965
+ const auto extended_object = utils::lane_change::transform (
966
+ object, common_parameters, *lane_change_parameters_, check_prepare_phase );
941
967
942
968
const auto obj_polygon = tier4_autoware_utils::toPolygon2d (object);
943
969
0 commit comments