diff --git a/nav2_smac_planner/src/node_hybrid.cpp b/nav2_smac_planner/src/node_hybrid.cpp index bbbae87ae7c..d6317432bf0 100644 --- a/nav2_smac_planner/src/node_hybrid.cpp +++ b/nav2_smac_planner/src/node_hybrid.cpp @@ -390,6 +390,10 @@ bool NodeHybrid::isNodeValid( float NodeHybrid::getTraversalCost(const NodePtr & child) { + if (child == nullptr) { + return 0.0f; + } + const float normalized_cost = child->getCost() / 252.0f; if (std::isnan(normalized_cost)) { throw std::runtime_error( @@ -397,11 +401,6 @@ float NodeHybrid::getTraversalCost(const NodePtr & child) "cost without a known SE2 collision cost!"); } - // this is the first node - if (getMotionPrimitiveIndex() == std::numeric_limits::max()) { - return NodeHybrid::travel_distance_cost; - } - const TurnDirection & child_turn_dir = child->getTurnDirection(); float travel_cost_raw = motion_table.travel_costs[child->getMotionPrimitiveIndex()]; float travel_cost = 0.0;