Skip to content

Commit d5cd150

Browse files
authored
perf(goal_planner): remove unnecessary call to setMap on freespace planning (#9644)
Signed-off-by: Mamoru Sobue <mamoru.sobue@tier4.jp>
1 parent 35da6d8 commit d5cd150

File tree

4 files changed

+9
-9
lines changed

4 files changed

+9
-9
lines changed

planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/include/autoware/behavior_path_goal_planner_module/goal_planner_module.hpp

+4-3
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include "autoware/behavior_path_goal_planner_module/decision_state.hpp"
1919
#include "autoware/behavior_path_goal_planner_module/fixed_goal_planner_base.hpp"
2020
#include "autoware/behavior_path_goal_planner_module/goal_planner_parameters.hpp"
21+
#include "autoware/behavior_path_goal_planner_module/pull_over_planner/freespace_pull_over.hpp"
2122
#include "autoware/behavior_path_goal_planner_module/thread_data.hpp"
2223
#include "autoware/behavior_path_planner_common/utils/parking_departure/common_module_data.hpp"
2324
#include "autoware/behavior_path_planner_common/utils/path_safety_checker/path_safety_checker_parameters.hpp"
@@ -151,7 +152,7 @@ bool checkOccupancyGridCollision(
151152
// freespace parking
152153
std::optional<PullOverPath> planFreespacePath(
153154
const FreespaceParkingRequest & req, const PredictedObjects & static_target_objects,
154-
std::shared_ptr<PullOverPlannerBase> freespace_planner);
155+
std::shared_ptr<FreespacePullOver> freespace_planner);
155156

156157
bool isStopped(
157158
std::deque<nav_msgs::msg::Odometry::ConstSharedPtr> & odometry_buffer,
@@ -198,7 +199,7 @@ class FreespaceParkingPlanner
198199
std::mutex & freespace_parking_mutex, const std::optional<FreespaceParkingRequest> & request,
199200
FreespaceParkingResponse & response, std::atomic<bool> & is_freespace_parking_cb_running,
200201
const rclcpp::Logger & logger, const rclcpp::Clock::SharedPtr clock,
201-
const std::shared_ptr<PullOverPlannerBase> freespace_planner)
202+
const std::shared_ptr<FreespacePullOver> freespace_planner)
202203
: mutex_(freespace_parking_mutex),
203204
request_(request),
204205
response_(response),
@@ -218,7 +219,7 @@ class FreespaceParkingPlanner
218219
rclcpp::Logger logger_;
219220
rclcpp::Clock::SharedPtr clock_;
220221

221-
std::shared_ptr<PullOverPlannerBase> freespace_planner_;
222+
std::shared_ptr<FreespacePullOver> freespace_planner_;
222223

223224
bool isStuck(
224225
const PredictedObjects & static_target_objects, const PredictedObjects & dynamic_target_objects,

planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/include/autoware/behavior_path_goal_planner_module/pull_over_planner/freespace_pull_over.hpp

+2
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ class FreespacePullOver : public PullOverPlannerBase
3636

3737
PullOverPlannerType getPlannerType() const override { return PullOverPlannerType::FREESPACE; }
3838

39+
void setMap(const nav_msgs::msg::OccupancyGrid & costmap) { planner_->setMap(costmap); }
40+
3941
std::optional<PullOverPath> plan(
4042
const GoalCandidate & modified_goal_pose, const size_t id,
4143
const std::shared_ptr<const PlannerData> planner_data,

planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/goal_planner_module.cpp

+3-4
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,6 @@
1616

1717
#include "autoware/behavior_path_goal_planner_module/default_fixed_goal_planner.hpp"
1818
#include "autoware/behavior_path_goal_planner_module/goal_searcher.hpp"
19-
#include "autoware/behavior_path_goal_planner_module/pull_over_planner/freespace_pull_over.hpp"
2019
#include "autoware/behavior_path_goal_planner_module/pull_over_planner/geometric_pull_over.hpp"
2120
#include "autoware/behavior_path_goal_planner_module/pull_over_planner/pull_over_planner_base.hpp"
2221
#include "autoware/behavior_path_goal_planner_module/pull_over_planner/shift_pull_over.hpp"
@@ -225,7 +224,7 @@ bool checkOccupancyGridCollision(
225224

226225
std::optional<PullOverPath> planFreespacePath(
227226
const FreespaceParkingRequest & req, const PredictedObjects & static_target_objects,
228-
std::shared_ptr<PullOverPlannerBase> freespace_planner)
227+
std::shared_ptr<FreespacePullOver> freespace_planner)
229228
{
230229
auto goal_candidates = req.goal_candidates_;
231230
auto goal_searcher = std::make_shared<GoalSearcher>(req.parameters_, req.vehicle_footprint_);
@@ -238,8 +237,8 @@ std::optional<PullOverPath> planFreespacePath(
238237
if (!goal_candidate.is_safe) {
239238
continue;
240239
}
241-
// TODO(soblin): this calls setMap() in freespace_planner in the for-loop, which is very
242-
// inefficient
240+
241+
freespace_planner->setMap(*(req.get_planner_data()->costmap));
243242
const auto freespace_path = freespace_planner->plan(
244243
goal_candidate, 0, req.get_planner_data(), BehaviorModuleOutput{}
245244
// NOTE: not used so passing {} is OK

planning/behavior_path_planner/autoware_behavior_path_goal_planner_module/src/pull_over_planner/freespace_pull_over.cpp

-2
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,6 @@ std::optional<PullOverPath> FreespacePullOver::plan(
6464
{
6565
const Pose & current_pose = planner_data->self_odometry->pose.pose;
6666

67-
planner_->setMap(*planner_data->costmap);
68-
6967
// offset goal pose to make straight path near goal for improving parking precision
7068
// todo: support straight path when using back
7169
constexpr double straight_distance = 1.0;

0 commit comments

Comments
 (0)