@@ -78,9 +78,9 @@ enum class PolygonGenerationMethod {
78
78
};
79
79
80
80
enum class ObjectBehaviorType {
81
- OutOfTarget = 0 ,
82
- RegulatedObject ,
83
- PrioritizedObject ,
81
+ Ignore = 0 ,
82
+ Regulated ,
83
+ Prioritized ,
84
84
};
85
85
86
86
struct DynamicAvoidanceParameters
@@ -119,12 +119,18 @@ struct DynamicAvoidanceParameters
119
119
double max_overtaking_crossing_object_angle{0.0 };
120
120
double min_oncoming_crossing_object_vel{0.0 };
121
121
double max_oncoming_crossing_object_angle{0.0 };
122
+ double max_pedestrians_crossing_vel{0.0 };
122
123
double max_stopped_object_vel{0.0 };
123
124
124
125
// drivable area generation
125
126
PolygonGenerationMethod polygon_generation_method{};
126
127
double min_obj_path_based_lon_polygon_margin{0.0 };
127
128
double lat_offset_from_obstacle{0.0 };
129
+ double margin_distance_around_pedestrian{0.0 };
130
+
131
+ double end_time_to_consider{0.0 };
132
+ double threshold_confidence{0.0 };
133
+
128
134
double max_lat_offset_to_avoid{0.0 };
129
135
double max_time_for_lat_shift{0.0 };
130
136
double lpf_gain_for_lat_avoid_to_offset{0.0 };
@@ -242,7 +248,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
242
248
243
249
// increase counter
244
250
if (counter_map_.count (uuid) != 0 ) {
245
- counter_map_.at (uuid) = std::min (max_count_, counter_map_.at (uuid) + 1 );
251
+ counter_map_.at (uuid) = std::min (max_count_, std::max ( 1 , counter_map_.at (uuid) + 1 ) );
246
252
} else {
247
253
counter_map_.emplace (uuid, 1 );
248
254
}
@@ -286,7 +292,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
286
292
// remove objects whose counter is lower than threshold
287
293
const auto counter_map_keys = getAllKeys (counter_map_);
288
294
for (const auto & key : counter_map_keys) {
289
- if (counter_map_.at (key) == 0 ) {
295
+ if (counter_map_.at (key) < min_count_ ) {
290
296
counter_map_.erase (key);
291
297
object_map_.erase (key);
292
298
// std::cerr << "delete: " << key << std::endl;
@@ -378,9 +384,9 @@ class DynamicAvoidanceModule : public SceneModuleInterface
378
384
bool canTransitFailureState () override { return false ; }
379
385
380
386
ObjectBehaviorType getLabelAsTargetObstacle (const uint8_t label) const ;
381
- void registerLaneDriveObjects (const std::vector<DynamicAvoidanceObject> & prev_objects);
387
+ void registerRegulatedObjects (const std::vector<DynamicAvoidanceObject> & prev_objects);
382
388
void registerPrioritizedObjects (const std::vector<DynamicAvoidanceObject> & prev_objects);
383
- void determineWhetherToAvoidAgainstLaneDriveObjects (
389
+ void determineWhetherToAvoidAgainstRegulatedObjects (
384
390
const std::vector<DynamicAvoidanceObject> & prev_objects);
385
391
void determineWhetherToAvoidAgainstPrioritizedObjects (
386
392
const std::vector<DynamicAvoidanceObject> & prev_objects);
@@ -432,8 +438,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
432
438
const DynamicAvoidanceObject & object) const ;
433
439
std::optional<tier4_autoware_utils::Polygon2d> calcPrioritizedObstaclePolygon (
434
440
const DynamicAvoidanceObject & object, const EgoPathReservePoly & ego_path_poly) const ;
435
- EgoPathReservePoly calcEgoPathReservePoly (
436
- const PathWithLaneId & ego_path) const ;
441
+ EgoPathReservePoly calcEgoPathReservePoly (const PathWithLaneId & ego_path) const ;
437
442
438
443
void printIgnoreReason (const std::string & obj_uuid, const std::string & reason)
439
444
{
0 commit comments