@@ -123,7 +123,6 @@ AvoidOutlines ShiftLineGenerator::generateAvoidOutline(
123
123
{
124
124
// To be consistent with changes in the ego position, the current shift length is considered.
125
125
const auto current_ego_shift = helper_->getEgoShift ();
126
- const auto & base_link2rear = data_->parameters .base_link2rear ;
127
126
128
127
// Calculate feasible shift length
129
128
const auto get_shift_profile =
@@ -140,13 +139,10 @@ AvoidOutlines ShiftLineGenerator::generateAvoidOutline(
140
139
141
140
// calculate remaining distance.
142
141
const auto prepare_distance = helper_->getNominalPrepareDistance ();
143
- const auto & additional_buffer_longitudinal =
144
- object_parameter.use_conservative_buffer_longitudinal ? data_->parameters .base_link2front
145
- : 0.0 ;
146
- const auto constant = object_parameter.safety_buffer_longitudinal +
147
- additional_buffer_longitudinal + prepare_distance;
148
- const auto has_enough_distance = object.longitudinal > constant + nominal_avoid_distance;
149
- const auto remaining_distance = object.longitudinal - constant;
142
+ const auto constant_distance = helper_->getFrontConstantDistance (object);
143
+ const auto has_enough_distance =
144
+ object.longitudinal > constant_distance + prepare_distance + nominal_avoid_distance;
145
+ const auto remaining_distance = object.longitudinal - constant_distance - prepare_distance;
150
146
const auto avoidance_distance =
151
147
has_enough_distance ? nominal_avoid_distance : remaining_distance;
152
148
@@ -278,11 +274,8 @@ AvoidOutlines ShiftLineGenerator::generateAvoidOutline(
278
274
}
279
275
}
280
276
281
- // use each object param
282
- const auto object_type = utils::getHighestProbLabel (o.object .classification );
283
- const auto object_parameter = parameters_->object_parameters .at (object_type);
277
+ // calculate feasible shift length based on behavior policy
284
278
const auto feasible_shift_profile = get_shift_profile (o, desire_shift_length);
285
-
286
279
if (!feasible_shift_profile.has_value ()) {
287
280
if (o.avoid_required && is_forward_object (o)) {
288
281
break ;
@@ -297,12 +290,8 @@ AvoidOutlines ShiftLineGenerator::generateAvoidOutline(
297
290
298
291
AvoidLine al_avoid;
299
292
{
300
- const auto & additional_buffer_longitudinal =
301
- object_parameter.use_conservative_buffer_longitudinal ? data_->parameters .base_link2front
302
- : 0.0 ;
303
- const auto offset =
304
- object_parameter.safety_buffer_longitudinal + additional_buffer_longitudinal;
305
- const auto to_shift_end = o.longitudinal - offset;
293
+ const auto constant_distance = helper_->getFrontConstantDistance (o);
294
+ const auto to_shift_end = o.longitudinal - constant_distance;
306
295
const auto path_front_to_ego = data.arclength_from_ego .at (data.ego_closest_path_index );
307
296
308
297
// start point (use previous linear shift length as start shift length.)
@@ -338,8 +327,8 @@ AvoidOutlines ShiftLineGenerator::generateAvoidOutline(
338
327
339
328
AvoidLine al_return;
340
329
{
341
- const auto offset = object_parameter. safety_buffer_longitudinal + base_link2rear + o. length ;
342
- const auto to_shift_start = o.longitudinal + offset ;
330
+ const auto constant_distance = helper_-> getRearConstantDistance (o) ;
331
+ const auto to_shift_start = o.longitudinal + constant_distance ;
343
332
344
333
// start point
345
334
al_return.start_shift_length = feasible_shift_profile.value ().first ;
0 commit comments