Skip to content

Commit cdbb9f4

Browse files
removing hypotf from smac planner heuristic computation (#3217)
* removing hypotf * swapping to node2d sqrt
1 parent d0c8ff9 commit cdbb9f4

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

nav2_smac_planner/src/node_2d.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,9 @@ float Node2D::getHeuristicCost(
8686
{
8787
// Using Moore distance as it more accurately represents the distances
8888
// even a Van Neumann neighborhood robot can navigate.
89-
return hypotf(goal_coordinates.x - node_coords.x, goal_coordinates.y - node_coords.y);
89+
auto dx = goal_coordinates.x - node_coords.x;
90+
auto dy = goal_coordinates.y - node_coords.y;
91+
return std::sqrt(dx * dx + dy * dy);
9092
}
9193

9294
void Node2D::initMotionModel(

nav2_smac_planner/src/node_hybrid.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -381,9 +381,9 @@ inline float distanceHeuristic2D(
381381
const unsigned int idx, const unsigned int size_x,
382382
const unsigned int target_x, const unsigned int target_y)
383383
{
384-
return std::hypotf(
385-
static_cast<int>(idx % size_x) - static_cast<int>(target_x),
386-
static_cast<int>(idx / size_x) - static_cast<int>(target_y));
384+
int dx = static_cast<int>(idx % size_x) - static_cast<int>(target_x);
385+
int dy = static_cast<int>(idx / size_x) - static_cast<int>(target_y);
386+
return std::sqrt(dx * dx + dy * dy);
387387
}
388388

389389
void NodeHybrid::resetObstacleHeuristic(

tools/planner_benchmarking/metrics.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ def getPlannerResults(navigator, initial_pose, goal_pose, planners):
3838
path = navigator._getPathImpl(initial_pose, goal_pose, planner, use_start=True)
3939
if path is not None:
4040
results.append(path)
41+
else:
42+
return results
4143
return results
4244

4345

0 commit comments

Comments
 (0)