@@ -1005,42 +1005,22 @@ void NormalLaneChange::filterObjectsByLanelets(
1005
1005
1006
1006
// get backward lanes
1007
1007
const auto backward_length = lane_change_parameters_->backward_lane_length ;
1008
- const auto target_backward_lanes = [&]() -> std::vector<lanelet::ConstLanelets> {
1009
- if (target_lanes.empty ()) {
1010
- return {};
1011
- }
1012
-
1013
- const auto arc_length = lanelet::utils::getArcCoordinates (target_lanes, current_pose);
1014
-
1015
- if (arc_length.length >= backward_length) {
1016
- return {};
1017
- }
1018
-
1019
- const auto & front_lane = target_lanes.front ();
1020
- return route_handler->getPrecedingLaneletSequence (
1021
- front_lane, std::abs (backward_length - arc_length.length ), {front_lane});
1022
- }();
1008
+ const auto target_backward_lanes =
1009
+ utils::getPrecedingLanelets (*route_handler, target_lanes, current_pose, backward_length);
1023
1010
1024
1011
{
1025
1012
lane_change_debug_.current_lanes = current_lanes;
1026
1013
lane_change_debug_.target_lanes = target_lanes;
1027
1014
1028
- lanelet::ConstLanelets backward_lanes{};
1029
- const auto num_of_lanes = std::invoke ([&target_backward_lanes]() {
1030
- size_t sum{0 };
1031
- for (const auto & lanes : target_backward_lanes) {
1032
- sum += lanes.size ();
1033
- }
1034
- return sum;
1035
- });
1036
-
1037
- backward_lanes.reserve (num_of_lanes);
1038
-
1039
- for (const auto & lanes : target_backward_lanes) {
1040
- backward_lanes.insert (backward_lanes.end (), lanes.begin (), lanes.end ());
1041
- }
1042
-
1043
- lane_change_debug_.target_backward_lanes = backward_lanes;
1015
+ // TODO(Azu) change the type to std::vector<lanelet::ConstLanelet>
1016
+ lane_change_debug_.target_backward_lanes .clear ();
1017
+ std::for_each (
1018
+ target_backward_lanes.begin (), target_backward_lanes.end (),
1019
+ [&](const lanelet::ConstLanelets & target_backward_lane) {
1020
+ lane_change_debug_.target_backward_lanes .insert (
1021
+ lane_change_debug_.target_backward_lanes .end (), target_backward_lane.begin (),
1022
+ target_backward_lane.end ());
1023
+ });
1044
1024
}
1045
1025
1046
1026
const auto expanded_target_lanes = utils::lane_change::generateExpandedLanelets (
0 commit comments