Skip to content

Commit 5bbd3c6

Browse files
authored
Merge pull request #1735 from tier4/ref/transient
fix: cherry-pick autowarefoundation#8997 and autowarefoundation#9279
2 parents 1cd4ca1 + 0b18e63 commit 5bbd3c6

File tree

6 files changed

+179
-181
lines changed

6 files changed

+179
-181
lines changed

planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/scene.hpp

+9-6
Original file line numberDiff line numberDiff line change
@@ -142,9 +142,8 @@ class NormalLaneChange : public LaneChangeBase
142142
FilteredByLanesObjects filterObjectsByLanelets(
143143
const PredictedObjects & objects, const PathWithLaneId & current_lanes_ref_path) const;
144144

145-
PathWithLaneId getPrepareSegment(
146-
const lanelet::ConstLanelets & current_lanes, const double backward_path_length,
147-
const double prepare_length) const override;
145+
bool get_prepare_segment(
146+
PathWithLaneId & prepare_segment, const double prepare_length) const override;
148147

149148
PathWithLaneId getTargetSegment(
150149
const lanelet::ConstLanelets & target_lanes, const Pose & lane_changing_start_pose,
@@ -155,17 +154,21 @@ class NormalLaneChange : public LaneChangeBase
155154
const LaneChangePath & path, const lanelet::ConstLanelets & current_lanes,
156155
const lanelet::ConstLanelets & target_lanes, const Direction direction = Direction::NONE) const;
157156

157+
std::vector<LaneChangePhaseMetrics> get_prepare_metrics() const;
158+
std::vector<LaneChangePhaseMetrics> get_lane_changing_metrics(
159+
const PathWithLaneId & prep_segment, const LaneChangePhaseMetrics & prep_metrics,
160+
const double shift_length, const double dist_to_reg_element) const;
161+
158162
bool get_lane_change_paths(LaneChangePaths & candidate_paths) const;
159163

160164
LaneChangePath get_candidate_path(
161165
const LaneChangePhaseMetrics & prep_metrics, const LaneChangePhaseMetrics & lc_metrics,
162166
const PathWithLaneId & prep_segment, const std::vector<std::vector<int64_t>> & sorted_lane_ids,
163-
const Pose & lc_start_pose, const double target_lane_length, const double shift_length,
164-
const double next_lc_buffer, const bool is_goal_in_route) const;
167+
const Pose & lc_start_pose, const double shift_length) const;
165168

166169
bool check_candidate_path_safety(
167170
const LaneChangePath & candidate_path, const lane_change::TargetObjects & target_objects,
168-
const double lane_change_buffer, const bool is_stuck) const;
171+
const bool is_stuck) const;
169172

170173
std::optional<LaneChangePath> calcTerminalLaneChangePath(
171174
const lanelet::ConstLanelets & current_lanes,

planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/base_class.hpp

+2-3
Original file line numberDiff line numberDiff line change
@@ -238,9 +238,8 @@ class LaneChangeBase
238238
protected:
239239
virtual int getNumToPreferredLane(const lanelet::ConstLanelet & lane) const = 0;
240240

241-
virtual PathWithLaneId getPrepareSegment(
242-
const lanelet::ConstLanelets & current_lanes, const double backward_path_length,
243-
const double prepare_length) const = 0;
241+
virtual bool get_prepare_segment(
242+
PathWithLaneId & prepare_segment, const double prepare_length) const = 0;
244243

245244
virtual bool isValidPath(const PathWithLaneId & path) const = 0;
246245

planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/data_structs.hpp

+5
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,11 @@ struct TransientData
338338
double max_prepare_length{
339339
std::numeric_limits<double>::max()}; // maximum prepare length, starting from ego's base link
340340

341+
double target_lane_length{std::numeric_limits<double>::min()};
342+
343+
lanelet::ArcCoordinates current_lanes_ego_arc; // arc coordinates of ego pose along current lanes
344+
lanelet::ArcCoordinates target_lanes_ego_arc; // arc coordinates of ego pose along target lanes
345+
341346
bool is_ego_near_current_terminal_start{false};
342347
};
343348

planning/behavior_path_planner/autoware_behavior_path_lane_change_module/include/autoware/behavior_path_lane_change_module/utils/utils.hpp

+5-11
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,7 @@ std::vector<int64_t> replaceWithSortedIds(
7979
const std::vector<int64_t> & original_lane_ids,
8080
const std::vector<std::vector<int64_t>> & sorted_lane_ids);
8181

82-
std::vector<std::vector<int64_t>> getSortedLaneIds(
83-
const RouteHandler & route_handler, const Pose & current_pose,
84-
const lanelet::ConstLanelets & current_lanes, const lanelet::ConstLanelets & target_lanes);
82+
std::vector<std::vector<int64_t>> get_sorted_lane_ids(const CommonDataPtr & common_data_ptr);
8583

8684
lanelet::ConstLanelets getTargetNeighborLanes(
8785
const RouteHandler & route_handler, const lanelet::ConstLanelets & target_lanes,
@@ -104,12 +102,9 @@ ShiftLine get_lane_changing_shift_line(
104102
const Pose & lane_changing_start_pose, const Pose & lane_changing_end_pose,
105103
const PathWithLaneId & reference_path, const double shift_length);
106104

107-
PathWithLaneId getReferencePathFromTargetLane(
108-
const RouteHandler & route_handler, const lanelet::ConstLanelets & target_lanes,
109-
const Pose & lane_changing_start_pose, const double target_lane_length,
110-
const double lane_changing_length, const double forward_path_length,
111-
const double resample_interval, const bool is_goal_in_route,
112-
const double next_lane_change_buffer);
105+
PathWithLaneId get_reference_path_from_target_Lane(
106+
const CommonDataPtr & common_data_ptr, const Pose & lane_changing_start_pose,
107+
const double lane_changing_length, const double resample_interval);
113108

114109
std::vector<DrivableLanes> generateDrivableLanes(
115110
const std::vector<DrivableLanes> & original_drivable_lanes, const RouteHandler & route_handler,
@@ -145,8 +140,7 @@ bool isParkedObject(
145140

146141
bool passed_parked_objects(
147142
const CommonDataPtr & common_data_ptr, const LaneChangePath & lane_change_path,
148-
const std::vector<ExtendedPredictedObject> & objects, const double minimum_lane_change_length,
149-
CollisionCheckDebugMap & object_debug);
143+
const std::vector<ExtendedPredictedObject> & objects, CollisionCheckDebugMap & object_debug);
150144

151145
std::optional<size_t> getLeadingStaticObjectIdx(
152146
const RouteHandler & route_handler, const LaneChangePath & lane_change_path,

0 commit comments

Comments
 (0)