Skip to content

Commit 45a5eb7

Browse files
lc - cherry pick filter 3rd lane moving object
Signed-off-by: Zulfaqar Azmi <zulfaqar.azmi@tier4.jp>
1 parent 2376a6f commit 45a5eb7

File tree

2 files changed

+23
-2
lines changed

2 files changed

+23
-2
lines changed

planning/behavior_path_lane_change_module/src/scene.cpp

+14-1
Original file line numberDiff line numberDiff line change
@@ -1195,7 +1195,7 @@ FilteredByLanesObjects NormalLaneChange::filterObjectsByLanelets(
11951195
};
11961196

11971197
if (
1198-
check_optional_polygon(object, lanes_polygon.expanded_target) && is_lateral_far &&
1198+
check_optional_polygon(object, lanes_polygon.target) && is_lateral_far &&
11991199
is_before_terminal()) {
12001200
const auto ahead_of_ego =
12011201
utils::lane_change::is_ahead_of_ego(common_data_ptr_, current_lanes_ref_path, object);
@@ -1207,6 +1207,19 @@ FilteredByLanesObjects NormalLaneChange::filterObjectsByLanelets(
12071207
continue;
12081208
}
12091209

1210+
if (check_optional_polygon(object, lanes_polygon.expanded_target) && is_before_terminal()) {
1211+
const auto ahead_of_ego =
1212+
utils::lane_change::is_ahead_of_ego(common_data_ptr_, current_lanes_ref_path, object);
1213+
if (object.kinematics.initial_twist_with_covariance.twist.linear.x < 1.0) {
1214+
if (ahead_of_ego) {
1215+
target_lane_leading_objects.push_back(object);
1216+
} else {
1217+
target_lane_trailing_objects.push_back(object);
1218+
}
1219+
continue;
1220+
}
1221+
}
1222+
12101223
const auto is_overlap_target_backward = std::invoke([&]() -> bool {
12111224
const auto check_backward_polygon = [&object](const auto & target_backward_polygon) {
12121225
return isPolygonOverlapLanelet(object, target_backward_polygon);

planning/behavior_path_lane_change_module/src/utils/utils.cpp

+9-1
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@
3838
#include <geometry_msgs/msg/detail/pose__struct.hpp>
3939

4040
#include <boost/geometry/algorithms/detail/disjoint/interface.hpp>
41+
#include <boost/geometry/algorithms/difference.hpp>
4142

4243
#include <lanelet2_core/LaneletMap.h>
4344
#include <lanelet2_core/geometry/LineString.h>
@@ -1212,11 +1213,18 @@ LanesPolygon create_lanes_polygon(const CommonDataPtr & common_data_ptr)
12121213
const auto expanded_target_lanes = utils::lane_change::generateExpandedLanelets(
12131214
lanes->target, common_data_ptr->direction, lc_param_ptr->lane_expansion_left_offset,
12141215
lc_param_ptr->lane_expansion_right_offset);
1215-
lanes_polygon.expanded_target = utils::lane_change::createPolygon(
1216+
1217+
const auto expanded_target_polygon = utils::lane_change::createPolygon(
12161218
expanded_target_lanes, 0.0, std::numeric_limits<double>::max());
12171219

12181220
lanes_polygon.target_neighbor = *utils::lane_change::createPolygon(
12191221
lanes->target_neighbor, 0.0, std::numeric_limits<double>::max());
1222+
std::vector<lanelet::BasicPolygon2d> difference;
1223+
boost::geometry::difference(*expanded_target_polygon, *lanes_polygon.target, difference);
1224+
1225+
if (!difference.empty()) {
1226+
lanes_polygon.expanded_target = std::make_optional<lanelet::BasicPolygon2d>(difference.front());
1227+
}
12201228

12211229
lanes_polygon.preceding_target.reserve(lanes->preceding_target.size());
12221230
for (const auto & preceding_lane : lanes->preceding_target) {

0 commit comments

Comments
 (0)