Closed rayvburn closed 1 year ago
Examined if ObstacleCostFunction
operates using the resultant costmap that has all layers embedded and it is true.
What was compared:
occ_cost = planner_util_->getCostmap()->getCost(cx, cy);
ObstacleCostFunction
obs_cost = obstacle_costs_.footprintCost(cx, cy, 0, costmap_2d::makeFootprintFromRadius(1e-06));
A new channel was added to the PCL created with createCostGridPcl
method - obs_cost
. With a circular footprint created with 1e-06 radius, the obs_cost
channel duplicates occ_cost
. By this means, the ObstacleCostFunction
cost function uses the resultant costmap (with obstacles and social contexts, if enabled), so there is no need to use ContextualizedCostFunction
the classical
ObstacleCostFunction
does the same plus checks if footprint is in a legal position (collision-free)