Nav2 Navigation Stack - humble  humble
ROS 2 Navigation Stack
Classes | Public Types | Public Member Functions | Protected Attributes | List of all members
nav2_smac_planner::AnalyticExpansion< NodeT > Class Template Reference
Collaboration diagram for nav2_smac_planner::AnalyticExpansion< NodeT >:
Collaboration graph
[legend]

Classes

struct  AnalyticExpansionNode
 

Public Types

typedef NodeT * NodePtr
 
typedef NodeT::Coordinates Coordinates
 
typedef std::function< bool(const unsigned int &, NodeT *&)> NodeGetter
 
typedef std::vector< AnalyticExpansionNodeAnalyticExpansionNodes
 

Public Member Functions

 AnalyticExpansion (const MotionModel &motion_model, const SearchInfo &search_info, const bool &traverse_unknown, const unsigned int &dim_3_size)
 Constructor for analytic expansion object.
 
void setCollisionChecker (GridCollisionChecker *collision_checker)
 Sets the collision checker and costmap to use in expansion validation. More...
 
NodePtr tryAnalyticExpansion (const NodePtr &current_node, const NodePtr &goal_node, const NodeGetter &getter, int &iterations, int &best_cost)
 Attempt an analytic path completion. More...
 
AnalyticExpansionNodes getAnalyticPath (const NodePtr &node, const NodePtr &goal, const NodeGetter &getter)
 Perform an analytic path expansion to the goal. More...
 
NodePtr setAnalyticPath (const NodePtr &node, const NodePtr &goal, const AnalyticExpansionNodes &expanded_nodes)
 Takes final analytic expansion and appends to current expanded node. More...
 
void cleanNode (const NodePtr &nodes)
 Takes an expanded nodes to clean up, if necessary, of any state information that may be poluting it from a prior search iteration. More...
 
void cleanNode (const NodePtr &node)
 
AnalyticExpansion< Node2D >::AnalyticExpansionNodes getAnalyticPath (const NodePtr &node, const NodePtr &goal, const NodeGetter &node_getter)
 
AnalyticExpansion< Node2D >::NodePtr setAnalyticPath (const NodePtr &node, const NodePtr &goal_node, const AnalyticExpansionNodes &expanded_nodes)
 
AnalyticExpansion< Node2D >::NodePtr tryAnalyticExpansion (const NodePtr &current_node, const NodePtr &goal_node, const NodeGetter &getter, int &analytic_iterations, int &closest_distance)
 

Protected Attributes

MotionModel _motion_model
 
SearchInfo _search_info
 
bool _traverse_unknown
 
unsigned int _dim_3_size
 
GridCollisionChecker_collision_checker
 
std::list< std::unique_ptr< NodeT > > _detached_nodes
 

Detailed Description

template<typename NodeT>
class nav2_smac_planner::AnalyticExpansion< NodeT >

Definition at line 33 of file analytic_expansion.hpp.

Member Function Documentation

◆ cleanNode()

template<typename NodeT >
void nav2_smac_planner::AnalyticExpansion< NodeT >::cleanNode ( const NodePtr &  nodes)

Takes an expanded nodes to clean up, if necessary, of any state information that may be poluting it from a prior search iteration.

Parameters
expanded_nodesExpanded node to clean up from search

Definition at line 250 of file analytic_expansion.cpp.

◆ getAnalyticPath()

template<typename NodeT >
AnalyticExpansion< NodeT >::AnalyticExpansionNodes nav2_smac_planner::AnalyticExpansion< NodeT >::getAnalyticPath ( const NodePtr &  node,
const NodePtr &  goal,
const NodeGetter &  getter 
)

Perform an analytic path expansion to the goal.

Parameters
nodeThe node to start the analytic path from
goalThe goal node to plan to
getterThe function object that gets valid nodes from the graph
Returns
A set of analytically expanded nodes to the goal from current node, if possible

Definition at line 120 of file analytic_expansion.cpp.

◆ setAnalyticPath()

template<typename NodeT >
AnalyticExpansion< NodeT >::NodePtr nav2_smac_planner::AnalyticExpansion< NodeT >::setAnalyticPath ( const NodePtr &  node,
const NodePtr &  goal,
const AnalyticExpansionNodes &  expanded_nodes 
)

Takes final analytic expansion and appends to current expanded node.

Parameters
nodeThe node to start the analytic path from
goalThe goal node to plan to
expanded_nodesExpanded nodes to append to end of current search path
Returns
Node pointer to goal node if successful, else return nullptr

Definition at line 213 of file analytic_expansion.cpp.

◆ setCollisionChecker()

template<typename NodeT >
void nav2_smac_planner::AnalyticExpansion< NodeT >::setCollisionChecker ( GridCollisionChecker collision_checker)

Sets the collision checker and costmap to use in expansion validation.

Parameters
collision_checkerCollision checker to use

Definition at line 43 of file analytic_expansion.cpp.

◆ tryAnalyticExpansion()

template<typename NodeT >
AnalyticExpansion< NodeT >::NodePtr nav2_smac_planner::AnalyticExpansion< NodeT >::tryAnalyticExpansion ( const NodePtr &  current_node,
const NodePtr &  goal_node,
const NodeGetter &  getter,
int &  iterations,
int &  best_cost 
)

Attempt an analytic path completion.

Parameters
nodeThe node to start the analytic path from
goalThe goal node to plan to
getterGets a node at a set of coordinates
iterationsIterations to run over
best_costBest heuristic cost to propertionally expand more closer to the goal
Returns
Node pointer reference to goal node if successful, else return nullptr

Definition at line 50 of file analytic_expansion.cpp.


The documentation for this class was generated from the following files: