This class contains motions and motions tree structures for the hybrid navigation algorithm.
Usage:
Changes history
Definition at line 52 of file TMoveTree.h.
#include <mrpt/nav/planners/TMoveTree.h>
Classes | |
struct | node_t |
Public Types | |
typedef mrpt::graphs::CDirectedTree< EDGE_TYPE > | base_t |
typedef EDGE_TYPE | edge_t |
typedef MAPS_IMPLEMENTATION::template map< mrpt::utils::TNodeID, node_t > | node_map_t |
Map: TNode_ID => Node info. More... | |
typedef std::list< node_t > | path_t |
A topological path up-tree. More... | |
typedef std::list< TEdgeInfo > | TListEdges |
typedef std::map< TNodeID, TListEdges > | TMapNode2ListEdges |
Public Member Functions | |
template<class NODE_TYPE_FOR_METRIC > | |
mrpt::utils::TNodeID | getNearestNode (const NODE_TYPE_FOR_METRIC &query_pt, const PoseDistanceMetric< NODE_TYPE_FOR_METRIC > &distanceMetricEvaluator, double *out_distance=NULL, const std::set< mrpt::utils::TNodeID > *ignored_nodes=NULL) const |
Finds the nearest node to a given pose, using the given metric. More... | |
void | insertNodeAndEdge (const mrpt::utils::TNodeID parent_id, const mrpt::utils::TNodeID new_child_id, const NODE_TYPE_DATA &new_child_node_data, const EDGE_TYPE &new_edge_data) |
void | insertNode (const mrpt::utils::TNodeID node_id, const NODE_TYPE_DATA &node_data) |
Insert a node without edges (should be used only for a tree root node) More... | |
mrpt::utils::TNodeID | getNextFreeNodeID () const |
const node_map_t & | getAllNodes () const |
void | backtrackPath (const mrpt::utils::TNodeID target_node, path_t &out_path) const |
Builds the path (sequence of nodes, with info about next edge) up-tree from a target_node towards the root Nodes are ordered in the direction ROOT -> start_node. More... | |
Utilities | |
void | clear () |
Empty all edge data and set "root" to INVALID_NODEID. More... | |
void | visitDepthFirst (const TNodeID root, Visitor &user_visitor, const size_t root_depth_level=0) const |
Depth-first visit of all children nodes of a given root (itself excluded from the visit), invoking a user-provided function for each node/edge. More... | |
void | visitBreadthFirst (const TNodeID root, Visitor &user_visitor, const size_t root_depth_level=0) const |
Breadth-first visit of all children nodes of a given root (itself excluded from the visit), invoking a user-provided function for each node/edge. More... | |
std::string | getAsTextDescription () const |
Return a text representation of the tree spanned in a depth-first view, as in this example: More... | |
Public Attributes | |
Data | |
TNodeID | root |
The root of the tree. More... | |
TMapNode2ListEdges | edges_to_children |
The edges of each node. More... | |
Private Attributes | |
node_map_t | m_nodes |
Info per node. More... | |
typedef mrpt::graphs::CDirectedTree<EDGE_TYPE> mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::base_t |
Definition at line 69 of file TMoveTree.h.
typedef EDGE_TYPE mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::edge_t |
Definition at line 70 of file TMoveTree.h.
typedef MAPS_IMPLEMENTATION::template map<mrpt::utils::TNodeID, node_t> mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::node_map_t |
Map: TNode_ID => Node info.
Definition at line 71 of file TMoveTree.h.
typedef std::list<node_t> mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::path_t |
A topological path up-tree.
Definition at line 72 of file TMoveTree.h.
|
inherited |
Definition at line 61 of file CDirectedTree.h.
|
inherited |
Definition at line 62 of file CDirectedTree.h.
|
inline |
Builds the path (sequence of nodes, with info about next edge) up-tree from a target_node
towards the root Nodes are ordered in the direction ROOT -> start_node.
Definition at line 131 of file TMoveTree.h.
References INVALID_NODEID, mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes, and mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::node_t::parent_id.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inlineinherited |
Empty all edge data and set "root" to INVALID_NODEID.
Definition at line 74 of file CDirectedTree.h.
References mrpt::graphs::CDirectedTree< TYPE_EDGES >::edges_to_children, INVALID_NODEID, and mrpt::graphs::CDirectedTree< TYPE_EDGES >::root.
|
inline |
Definition at line 126 of file TMoveTree.h.
References mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inlineinherited |
Return a text representation of the tree spanned in a depth-first view, as in this example:
Definition at line 127 of file CDirectedTree.h.
References mrpt::graphs::CDirectedTree< TYPE_EDGES >::TEdgeInfo::id, MRPT_OVERRIDE, mrpt::graphs::CDirectedTree< TYPE_EDGES >::TEdgeInfo::reverse, mrpt::graphs::CDirectedTree< TYPE_EDGES >::root, and mrpt::graphs::CDirectedTree< TYPE_EDGES >::visitDepthFirst().
|
inline |
Finds the nearest node to a given pose, using the given metric.
Definition at line 76 of file TMoveTree.h.
References ASSERT_, INVALID_NODEID, and mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inline |
Definition at line 124 of file TMoveTree.h.
References mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inline |
Insert a node without edges (should be used only for a tree root node)
Definition at line 119 of file TMoveTree.h.
References INVALID_NODEID, and mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inline |
Definition at line 105 of file TMoveTree.h.
References mrpt::graphs::CDirectedTree< EDGE_TYPE >::edges_to_children, and mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::m_nodes.
Referenced by mrpt::nav::PlannerRRT_SE2_TPS::solve().
|
inlineinherited |
Breadth-first visit of all children nodes of a given root (itself excluded from the visit), invoking a user-provided function for each node/edge.
Definition at line 105 of file CDirectedTree.h.
References mrpt::graphs::CDirectedTree< TYPE_EDGES >::edges_to_children, mrpt::graphs::CDirectedTree< TYPE_EDGES >::root, and mrpt::graphs::CDirectedTree< TYPE_EDGES >::visitDepthFirst().
|
inlineinherited |
Depth-first visit of all children nodes of a given root (itself excluded from the visit), invoking a user-provided function for each node/edge.
Definition at line 91 of file CDirectedTree.h.
References mrpt::graphs::CDirectedTree< TYPE_EDGES >::edges_to_children, mrpt::graphs::CDirectedTree< TYPE_EDGES >::root, and mrpt::graphs::CDirectedTree< TYPE_EDGES >::visitDepthFirst().
|
inherited |
The edges of each node.
Definition at line 67 of file CDirectedTree.h.
Referenced by mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::insertNodeAndEdge().
|
private |
Info per node.
Definition at line 159 of file TMoveTree.h.
Referenced by mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::backtrackPath(), mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::getAllNodes(), mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::getNearestNode(), mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::getNextFreeNodeID(), mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::insertNode(), and mrpt::nav::TMoveTree< NODE_TYPE_DATA, EDGE_TYPE, MAPS_IMPLEMENTATION >::insertNodeAndEdge().
|
inherited |
The root of the tree.
Definition at line 66 of file CDirectedTree.h.
Page generated by Doxygen 1.8.14 for MRPT 1.5.7 Git: 5902e14cc Wed Apr 24 15:04:01 2019 +0200 at lun oct 28 01:39:17 CET 2019 |