Skip to content

Commit e793646

Browse files
clean up
Signed-off-by: Yuki Takagi <yuki.takagi@tier4.jp>
1 parent b624c37 commit e793646

File tree

3 files changed

+74
-87
lines changed

3 files changed

+74
-87
lines changed

planning/behavior_path_dynamic_avoidance_module/include/behavior_path_dynamic_avoidance_module/scene.hpp

+14-9
Original file line numberDiff line numberDiff line change
@@ -78,9 +78,9 @@ enum class PolygonGenerationMethod {
7878
};
7979

8080
enum class ObjectBehaviorType {
81-
OutOfTarget = 0,
82-
RegulatedObject,
83-
PrioritizedObject,
81+
Ignore = 0,
82+
Regulated,
83+
Prioritized,
8484
};
8585

8686
struct DynamicAvoidanceParameters
@@ -119,12 +119,18 @@ struct DynamicAvoidanceParameters
119119
double max_overtaking_crossing_object_angle{0.0};
120120
double min_oncoming_crossing_object_vel{0.0};
121121
double max_oncoming_crossing_object_angle{0.0};
122+
double max_pedestrians_crossing_vel{0.0};
122123
double max_stopped_object_vel{0.0};
123124

124125
// drivable area generation
125126
PolygonGenerationMethod polygon_generation_method{};
126127
double min_obj_path_based_lon_polygon_margin{0.0};
127128
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+
128134
double max_lat_offset_to_avoid{0.0};
129135
double max_time_for_lat_shift{0.0};
130136
double lpf_gain_for_lat_avoid_to_offset{0.0};
@@ -242,7 +248,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
242248

243249
// increase counter
244250
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));
246252
} else {
247253
counter_map_.emplace(uuid, 1);
248254
}
@@ -286,7 +292,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
286292
// remove objects whose counter is lower than threshold
287293
const auto counter_map_keys = getAllKeys(counter_map_);
288294
for (const auto & key : counter_map_keys) {
289-
if (counter_map_.at(key) == 0) {
295+
if (counter_map_.at(key) < min_count_) {
290296
counter_map_.erase(key);
291297
object_map_.erase(key);
292298
// std::cerr << "delete: " << key << std::endl;
@@ -378,9 +384,9 @@ class DynamicAvoidanceModule : public SceneModuleInterface
378384
bool canTransitFailureState() override { return false; }
379385

380386
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);
382388
void registerPrioritizedObjects(const std::vector<DynamicAvoidanceObject> & prev_objects);
383-
void determineWhetherToAvoidAgainstLaneDriveObjects(
389+
void determineWhetherToAvoidAgainstRegulatedObjects(
384390
const std::vector<DynamicAvoidanceObject> & prev_objects);
385391
void determineWhetherToAvoidAgainstPrioritizedObjects(
386392
const std::vector<DynamicAvoidanceObject> & prev_objects);
@@ -432,8 +438,7 @@ class DynamicAvoidanceModule : public SceneModuleInterface
432438
const DynamicAvoidanceObject & object) const;
433439
std::optional<tier4_autoware_utils::Polygon2d> calcPrioritizedObstaclePolygon(
434440
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;
437442

438443
void printIgnoreReason(const std::string & obj_uuid, const std::string & reason)
439444
{

planning/behavior_path_dynamic_avoidance_module/src/manager.cpp

+16
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,8 @@ void DynamicAvoidanceModuleManager::init(rclcpp::Node * node)
9999
node->declare_parameter<double>(ns + "crossing_object.min_oncoming_object_vel");
100100
p.max_oncoming_crossing_object_angle =
101101
node->declare_parameter<double>(ns + "crossing_object.max_oncoming_object_angle");
102+
p.max_pedestrians_crossing_vel =
103+
node->declare_parameter<double>(ns + "crossing_object.max_pedestrians_crossing_vel");
102104

103105
p.max_stopped_object_vel =
104106
node->declare_parameter<double>(ns + "stopped_object.max_object_vel");
@@ -111,6 +113,11 @@ void DynamicAvoidanceModuleManager::init(rclcpp::Node * node)
111113
p.min_obj_path_based_lon_polygon_margin =
112114
node->declare_parameter<double>(ns + "object_path_base.min_longitudinal_polygon_margin");
113115
p.lat_offset_from_obstacle = node->declare_parameter<double>(ns + "lat_offset_from_obstacle");
116+
p.margin_distance_around_pedestrian =
117+
node->declare_parameter<double>(ns + "predicted_path.margin_distance_around_pedestrian");
118+
p.end_time_to_consider =
119+
node->declare_parameter<double>(ns + "predicted_path.end_time_to_consider");
120+
p.threshold_confidence = node->declare_parameter<double>(ns + "threshold_confidence");
114121
p.max_lat_offset_to_avoid = node->declare_parameter<double>(ns + "max_lat_offset_to_avoid");
115122
p.max_time_for_lat_shift =
116123
node->declare_parameter<double>(ns + "max_time_for_object_lat_shift");
@@ -214,6 +221,9 @@ void DynamicAvoidanceModuleManager::updateModuleParams(
214221
updateParam<double>(
215222
parameters, ns + "crossing_object.max_oncoming_object_angle",
216223
p->max_oncoming_crossing_object_angle);
224+
updateParam<double>(
225+
parameters, ns + "crossing_object.max_pedestrians_crossing_vel",
226+
p->max_pedestrians_crossing_vel);
217227

218228
updateParam<double>(
219229
parameters, ns + "stopped_object.max_object_vel", p->max_stopped_object_vel);
@@ -231,6 +241,12 @@ void DynamicAvoidanceModuleManager::updateModuleParams(
231241
parameters, ns + "object_path_base.min_longitudinal_polygon_margin",
232242
p->min_obj_path_based_lon_polygon_margin);
233243
updateParam<double>(parameters, ns + "lat_offset_from_obstacle", p->lat_offset_from_obstacle);
244+
updateParam<double>(
245+
parameters, ns + "margin_distance_around_pedestrian", p->margin_distance_around_pedestrian);
246+
updateParam<double>(
247+
parameters, ns + "predicted_path.end_time_to_consider", p->end_time_to_consider);
248+
updateParam<double>(
249+
parameters, ns + "predicted_path.threshold_confidence", p->threshold_confidence);
234250
updateParam<double>(parameters, ns + "max_lat_offset_to_avoid", p->max_lat_offset_to_avoid);
235251
updateParam<double>(
236252
parameters, ns + "max_time_for_object_lat_shift", p->max_time_for_lat_shift);

0 commit comments

Comments
 (0)