Skip to content

Commit 101fefa

Browse files
change constraints evaluation to return vectors
Signed-off-by: Daniel Sanchez <danielsanchezaran@gmail.com>
1 parent c5e9b5c commit 101fefa

File tree

2 files changed

+15
-20
lines changed

2 files changed

+15
-20
lines changed

planning/behavior_path_sampling_planner_module/include/behavior_path_sampling_planner_module/util.hpp

+9-10
Original file line numberDiff line numberDiff line change
@@ -50,32 +50,31 @@ using SoftConstraintsFunctionVector = std::vector<std::function<double(
5050
using HardConstraintsFunctionVector = std::vector<std::function<bool(
5151
sampler_common::Path &, const sampler_common::Constraints &, const MultiPoint2d &)>>;
5252

53-
inline void evaluateSoftConstraints(
53+
inline std::vector<double> evaluateSoftConstraints(
5454
sampler_common::Path & path, const sampler_common::Constraints & constraints,
5555
const SoftConstraintsFunctionVector & soft_constraints_functions,
56-
const SoftConstraintsInputs & input_data, std::vector<double> & constraints_results)
56+
const SoftConstraintsInputs & input_data)
5757
{
58-
constraints_results.clear();
58+
std::vector<double> constraints_results;
5959
for (const auto & f : soft_constraints_functions) {
6060
const auto cost = f(path, constraints, input_data);
6161
constraints_results.push_back(cost);
6262
}
6363
if (constraints.soft.weights.size() != constraints_results.size()) {
6464
path.cost = std::accumulate(constraints_results.begin(), constraints_results.end(), 0.0);
65-
return;
65+
return constraints_results;
6666
}
6767

6868
path.cost = std::inner_product(
6969
constraints_results.begin(), constraints_results.end(), constraints.soft.weights.begin(), 0.0);
70-
return;
70+
return constraints_results;
7171
}
7272

73-
inline void evaluateHardConstraints(
73+
inline std::vector<bool> evaluateHardConstraints(
7474
sampler_common::Path & path, const sampler_common::Constraints & constraints,
75-
const MultiPoint2d & footprint, const HardConstraintsFunctionVector & hard_constraints,
76-
std::vector<bool> & constraints_results)
75+
const MultiPoint2d & footprint, const HardConstraintsFunctionVector & hard_constraints)
7776
{
78-
constraints_results.clear();
77+
std::vector<bool> constraints_results;
7978
bool constraints_passed = true;
8079
int idx = 0;
8180
for (const auto & f : hard_constraints) {
@@ -86,7 +85,7 @@ inline void evaluateHardConstraints(
8685
}
8786

8887
path.constraints_satisfied = constraints_passed;
89-
return;
88+
return constraints_results;
9089
}
9190

9291
inline sampler_common::State getInitialState(

planning/behavior_path_sampling_planner_module/src/sampling_planner_module.cpp

+6-10
Original file line numberDiff line numberDiff line change
@@ -260,9 +260,8 @@ bool SamplingPlannerModule::isReferencePathSafe() const
260260
!sampler_common::constraints::has_collision(footprint, constraints.obstacle_polygons);
261261
return path.constraint_results.collision;
262262
});
263-
behavior_path_planner::evaluateHardConstraints(
264-
reference_path, internal_params_->constraints, footprint, hard_constraints_reference_path,
265-
hard_constraints_results);
263+
evaluateHardConstraints(
264+
reference_path, internal_params_->constraints, footprint, hard_constraints_reference_path);
266265
return reference_path.constraints_satisfied;
267266
}
268267

@@ -575,17 +574,14 @@ BehaviorModuleOutput SamplingPlannerModule::plan()
575574
std::vector<std::vector<bool>> hard_constraints_results_full;
576575
std::vector<std::vector<double>> soft_constraints_results_full;
577576
for (auto & path : frenet_paths) {
578-
std::vector<bool> hard_constraints_results;
579-
std::vector<double> soft_constraints_results;
580577
const auto footprint =
581578
sampler_common::constraints::buildFootprintPoints(path, internal_params_->constraints);
582-
behavior_path_planner::evaluateHardConstraints(
583-
path, internal_params_->constraints, footprint, hard_constraints_, hard_constraints_results);
579+
std::vector<bool> hard_constraints_results =
580+
evaluateHardConstraints(path, internal_params_->constraints, footprint, hard_constraints_);
584581
path.constraint_results.curvature = true;
585582
debug_data_.footprints.push_back(footprint);
586-
evaluateSoftConstraints(
587-
path, internal_params_->constraints, soft_constraints_, soft_constraints_input,
588-
soft_constraints_results);
583+
std::vector<double> soft_constraints_results = evaluateSoftConstraints(
584+
path, internal_params_->constraints, soft_constraints_, soft_constraints_input);
589585
soft_constraints_results_full.push_back(soft_constraints_results);
590586
}
591587

0 commit comments

Comments
 (0)