@@ -33,22 +33,25 @@ struct DrivableAreaExpansionParameters
33
33
static constexpr auto EGO_EXTRA_FRONT_OVERHANG = " dynamic_expansion.ego.extra_front_overhang" ;
34
34
static constexpr auto EGO_EXTRA_WHEELBASE = " dynamic_expansion.ego.extra_wheelbase" ;
35
35
static constexpr auto EGO_EXTRA_WIDTH = " dynamic_expansion.ego.extra_width" ;
36
- static constexpr auto DYN_OBJECTS_EXTRA_OFFSET_FRONT =
37
- " dynamic_expansion.dynamic_objects.extra_footprint_offset.front" ;
38
- static constexpr auto DYN_OBJECTS_EXTRA_OFFSET_REAR =
39
- " dynamic_expansion.dynamic_objects.extra_footprint_offset.rear" ;
40
- static constexpr auto DYN_OBJECTS_EXTRA_OFFSET_LEFT =
41
- " dynamic_expansion.dynamic_objects.extra_footprint_offset.left" ;
42
- static constexpr auto DYN_OBJECTS_EXTRA_OFFSET_RIGHT =
43
- " dynamic_expansion.dynamic_objects.extra_footprint_offset.right" ;
36
+ static constexpr auto OBJECTS_EXTRA_OFFSET_FRONT =
37
+ " dynamic_expansion.object_exclusion.extra_footprint_offset.front" ;
38
+ static constexpr auto OBJECTS_EXTRA_OFFSET_REAR =
39
+ " dynamic_expansion.object_exclusion.extra_footprint_offset.rear" ;
40
+ static constexpr auto OBJECTS_EXTRA_OFFSET_LEFT =
41
+ " dynamic_expansion.object_exclusion.extra_footprint_offset.left" ;
42
+ static constexpr auto OBJECTS_EXTRA_OFFSET_RIGHT =
43
+ " dynamic_expansion.object_exclusion.extra_footprint_offset.right" ;
44
+ static constexpr auto STOPPED_OBJ_VEL_THRESH =
45
+ " dynamic_expansion.object_exclusion.stopped_object_velocity_threshold" ;
44
46
static constexpr auto MAX_EXP_DIST_PARAM = " dynamic_expansion.max_expansion_distance" ;
45
47
static constexpr auto RESAMPLE_INTERVAL_PARAM =
46
48
" dynamic_expansion.path_preprocessing.resample_interval" ;
47
49
static constexpr auto MAX_PATH_ARC_LENGTH_PARAM =
48
50
" dynamic_expansion.path_preprocessing.max_arc_length" ;
49
51
static constexpr auto MAX_REUSE_DEVIATION_PARAM =
50
52
" dynamic_expansion.path_preprocessing.reuse_max_deviation" ;
51
- static constexpr auto AVOID_DYN_OBJECTS_PARAM = " dynamic_expansion.dynamic_objects.avoid" ;
53
+ static constexpr auto AVOID_STA_OBJECTS_PARAM = " dynamic_expansion.object_exclusion.exclude_static" ;
54
+ static constexpr auto AVOID_DYN_OBJECTS_PARAM = " dynamic_expansion.object_exclusion.exclude_dynamic" ;
52
55
static constexpr auto AVOID_LINESTRING_TYPES_PARAM = " dynamic_expansion.avoid_linestring.types" ;
53
56
static constexpr auto AVOID_LINESTRING_DIST_PARAM = " dynamic_expansion.avoid_linestring.distance" ;
54
57
static constexpr auto SMOOTHING_CURVATURE_WINDOW_PARAM =
@@ -72,18 +75,24 @@ struct DrivableAreaExpansionParameters
72
75
double extra_width{};
73
76
int curvature_average_window{};
74
77
double max_bound_rate{};
75
- double dynamic_objects_extra_left_offset{};
76
- double dynamic_objects_extra_right_offset{};
77
- double dynamic_objects_extra_rear_offset{};
78
- double dynamic_objects_extra_front_offset{};
79
78
double max_expansion_distance{};
80
79
double max_path_arc_length{};
81
80
double resample_interval{};
82
81
double arc_length_range{};
83
82
double max_reuse_deviation{};
84
83
double min_bound_interval{};
85
- bool avoid_dynamic_objects{};
86
84
bool print_runtime{};
85
+
86
+ struct ObjectExclusion {
87
+ bool exclude_static{};
88
+ bool exclude_dynamic{};
89
+ double front_offset{};
90
+ double rear_offset{};
91
+ double left_offset{};
92
+ double right_offset{};
93
+ double stopped_obj_vel_th{};
94
+ } object_exclusion;
95
+
87
96
std::vector<std::string> avoid_linestring_types{};
88
97
autoware::vehicle_info_utils::VehicleInfo vehicle_info;
89
98
@@ -109,17 +118,15 @@ struct DrivableAreaExpansionParameters
109
118
max_path_arc_length = node.declare_parameter <double >(MAX_PATH_ARC_LENGTH_PARAM);
110
119
resample_interval = node.declare_parameter <double >(RESAMPLE_INTERVAL_PARAM);
111
120
max_reuse_deviation = node.declare_parameter <double >(MAX_REUSE_DEVIATION_PARAM);
112
- dynamic_objects_extra_front_offset =
113
- node.declare_parameter <double >(DYN_OBJECTS_EXTRA_OFFSET_FRONT);
114
- dynamic_objects_extra_rear_offset =
115
- node.declare_parameter <double >(DYN_OBJECTS_EXTRA_OFFSET_REAR);
116
- dynamic_objects_extra_left_offset =
117
- node.declare_parameter <double >(DYN_OBJECTS_EXTRA_OFFSET_LEFT);
118
- dynamic_objects_extra_right_offset =
119
- node.declare_parameter <double >(DYN_OBJECTS_EXTRA_OFFSET_RIGHT);
121
+ object_exclusion.exclude_static = node.declare_parameter <bool >(AVOID_STA_OBJECTS_PARAM);
122
+ object_exclusion.exclude_dynamic = node.declare_parameter <bool >(AVOID_DYN_OBJECTS_PARAM);
123
+ object_exclusion.stopped_obj_vel_th = node.declare_parameter <double >(STOPPED_OBJ_VEL_THRESH);
124
+ object_exclusion.front_offset = node.declare_parameter <double >(OBJECTS_EXTRA_OFFSET_FRONT);
125
+ object_exclusion.rear_offset = node.declare_parameter <double >(OBJECTS_EXTRA_OFFSET_REAR);
126
+ object_exclusion.left_offset = node.declare_parameter <double >(OBJECTS_EXTRA_OFFSET_LEFT);
127
+ object_exclusion.right_offset = node.declare_parameter <double >(OBJECTS_EXTRA_OFFSET_RIGHT);
120
128
avoid_linestring_types =
121
129
node.declare_parameter <std::vector<std::string>>(AVOID_LINESTRING_TYPES_PARAM);
122
- avoid_dynamic_objects = node.declare_parameter <bool >(AVOID_DYN_OBJECTS_PARAM);
123
130
avoid_linestring_dist = node.declare_parameter <double >(AVOID_LINESTRING_DIST_PARAM);
124
131
min_bound_interval = node.declare_parameter <double >(MIN_BOUND_INTERVAL);
125
132
print_runtime = node.declare_parameter <bool >(PRINT_RUNTIME_PARAM);
0 commit comments