Template Class AnalyticExpansion

Nested Relationships

Nested Types

Class Documentation

template<typename NodeT>
class AnalyticExpansion

Public Types

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

Public 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.

Parameters:

collision_checker – Collision checker to use

NodePtr tryAnalyticExpansion(const NodePtr &current_node, const NodePtr &goal_node, const NodeGetter &getter, int &iterations, int &best_cost)

Attempt an analytic path completion.

Parameters:
  • node – The node to start the analytic path from

  • goal – The goal node to plan to

  • getter – Gets a node at a set of coordinates

  • iterations – Iterations to run over

  • best_cost – Best heuristic cost to propertionally expand more closer to the goal

Returns:

Node pointer reference to goal node if successful, else return nullptr

AnalyticExpansionNodes getAnalyticPath(const NodePtr &node, const NodePtr &goal, const NodeGetter &getter)

Perform an analytic path expansion to the goal.

Parameters:
  • node – The node to start the analytic path from

  • goal – The goal node to plan to

  • getter – The function object that gets valid nodes from the graph

Returns:

A set of analytically expanded nodes to the goal from current node, if possible

NodePtr setAnalyticPath(const NodePtr &node, const NodePtr &goal, const AnalyticExpansionNodes &expanded_nodes)

Takes final analytic expansion and appends to current expanded node.

Parameters:
  • node – The node to start the analytic path from

  • goal – The goal node to plan to

  • expanded_nodes – Expanded nodes to append to end of current search path

Returns:

Node pointer to goal node if successful, else return nullptr

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.

Parameters:

expanded_nodes – Expanded node to clean up from search

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
struct AnalyticExpansionNode

Public Functions

inline AnalyticExpansionNode(NodePtr &node_in, Coordinates &initial_coords_in, Coordinates &proposed_coords_in)

Public Members

NodePtr node
Coordinates initial_coords
Coordinates proposed_coords