A directed graph of pose constraints, with edges being the relative pose between pairs of nodes indentified by their numeric IDs (of type mrpt::utils::TNodeID).
A link or edge between two nodes "i" and "j", that is, the pose
Two main members store all the information in this class:
Graphs can be loaded and saved to text file in the format used by TORO & HoG-man (more on the format here ), using loadFromTextFile and saveToTextFile.
This class is the base for representing networks of poses, which are the main data type of a series of SLAM algorithms implemented in the library mrpt-slam, in the namespace mrpt::graphslam.
For tools to visualize graphs as 2D/3D plots, see the namespace mrpt::opengl::graph_tools in the library mrpt-opengl.
The template arguments are:
Definition at line 75 of file CNetworkOfPoses.h.
#include <mrpt/graphs/CNetworkOfPoses.h>
Classes | |
struct | global_pose_t |
The type of each global pose in nodes: an extension of the constraint_no_pdf_t pose with any optional user-defined data. More... | |
Public Types | |
typedef mrpt::aligned_containers< TPairNodeIDs, edge_t >::multimap_t | edges_map_t |
The type of the member edges. | |
typedef edges_map_t::iterator | iterator |
typedef edges_map_t::const_iterator | const_iterator |
Typedef's | |
typedef mrpt::graphs::CDirectedGraph< CPOSE, EDGE_ANNOTATIONS > | BASE |
The base class "CDirectedGraph<CPOSE,EDGE_ANNOTATIONS>" */. | |
typedef CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS > | self_t |
My own type. | |
typedef CPOSE | constraint_t |
The type of PDF poses in the contraints (edges) (=CPOSE template argument) | |
typedef NODE_ANNOTATIONS | node_annotations_t |
The extra annotations in nodes, apart from a constraint_no_pdf_t. | |
typedef EDGE_ANNOTATIONS | edge_annotations_t |
The extra annotations in edges, apart from a constraint_t. | |
typedef MAPS_IMPLEMENTATION | maps_implementation_t |
The type of map's implementation (=MAPS_IMPLEMENTATION template argument) | |
typedef CPOSE::type_value | constraint_no_pdf_t |
The type of edges or their means if they are PDFs (that is, a simple "edge" value) | |
typedef MAPS_IMPLEMENTATION::template map< mrpt::utils::TNodeID, CPOSE > | global_poses_pdf_t |
A map from pose IDs to their global coordinates estimates, with uncertainty. | |
typedef MAPS_IMPLEMENTATION::template map< mrpt::utils::TNodeID, global_pose_t > | global_poses_t |
A map from pose IDs to their global coordinates estimates, without uncertainty (the "most-likely value") | |
Public Member Functions | |
iterator | begin () |
const_iterator | begin () const |
iterator | end () |
const_iterator | end () const |
I/O file methods | |
void | saveToTextFile (const std::string &fileName) const |
Saves to a text file in the format used by TORO & HoG-man (more on the format here ) For 2D graphs only VERTEX2 & EDGE2 entries will be saved, and VERTEX3 & EDGE3 entries for 3D graphs. | |
void | loadFromTextFile (const std::string &fileName, bool collapse_dup_edges=true) |
Loads from a text file in the format used by TORO & HoG-man (more on the format here ) Recognized line entries are: VERTEX2, VERTEX3, EDGE2, EDGE3, EQUIV. | |
Utility methods | |
void | dijkstra_nodes_estimate () |
Spanning tree computation of a simple estimation of the global coordinates of each node just from the information in all edges, sorted in a Dijkstra tree based on the current "root" node. | |
size_t | collapseDuplicatedEdges () |
Look for duplicated edges (even in opposite directions) between all pairs of nodes and fuse them. | |
double | getGlobalSquareError (bool ignoreCovariances=true) const |
Computes the overall square error from all the pose constraints (edges) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error. | |
double | getEdgeSquareError (const typename BASE::edges_map_t::const_iterator &itEdge, bool ignoreCovariances=true) const |
Computes the square error of one pose constraints (edge) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error. | |
double | getEdgeSquareError (const mrpt::utils::TNodeID from_id, const mrpt::utils::TNodeID to_id, bool ignoreCovariances=true) const |
Computes the square error of one pose constraints (edge) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error. | |
void | clear () |
Empty all edges, nodes and set root to ID 0. | |
size_t | nodeCount () const |
Return number of nodes in the list \nodes of global coordinates (may be differente that all nodes appearing in edges) | |
Ctors & Dtors | |
CNetworkOfPoses () | |
Default constructor (just sets root to "0" and edges_store_inverse_poses to "false") | |
~CNetworkOfPoses () | |
Edges/nodes utility methods | |
size_t | edgeCount () const |
The number of edges in the graph. | |
void | clearEdges () |
Erase all edges. | |
void | insertEdge (TNodeID from_nodeID, TNodeID to_nodeID, const edge_t &edge_value) |
Insert an edge (from -> to) with the given edge value. | |
void | insertEdgeAtEnd (TNodeID from_nodeID, TNodeID to_nodeID, const edge_t &edge_value) |
Insert an edge (from -> to) with the given edge value (more efficient version to be called if you know that the end will go at the end of the sorted std::multimap). | |
bool | edgeExists (TNodeID from_nodeID, TNodeID to_nodeID) const |
Test is the given directed edge exists. | |
edge_t & | getEdge (TNodeID from_nodeID, TNodeID to_nodeID) |
Return a reference to the content of a given edge. | |
const edge_t & | getEdge (TNodeID from_nodeID, TNodeID to_nodeID) const |
Return a reference to the content of a given edge. | |
std::pair< iterator, iterator > | getEdges (TNodeID from_nodeID, TNodeID to_nodeID) |
Return a pair<first,last> of iterators to the range of edges between two given nodes. | |
std::pair< const_iterator, const_iterator > | getEdges (TNodeID from_nodeID, TNodeID to_nodeID) const |
Return a pair<first,last> of const iterators to the range of edges between two given nodes. | |
void | eraseEdge (TNodeID from_nodeID, TNodeID to_nodeID) |
Erase all edges between the given nodes (it has no effect if no edge existed) | |
void | getAllNodes (std::set< TNodeID > &lstNode_IDs) const |
Return a list of all the node_ID's of the graph, generated from all the nodes that appear in the list of edges. | |
std::set< TNodeID > | getAllNodes () const |
Less efficient way to get all nodes that returns a copy of the set object. | |
size_t | countDifferentNodesInEdges () const |
Count how many different node IDs appear in the graph edges. | |
void | getNeighborsOf (const TNodeID nodeID, std::set< TNodeID > &neighborIDs) const |
Return the list of all neighbors of "nodeID", by creating a list of their node IDs. | |
template<class MAP_NODEID_SET_NODEIDS > | |
void | getAdjacencyMatrix (MAP_NODEID_SET_NODEIDS &outAdjacency) const |
Return a map from node IDs to all its neighbors (that is, connected nodes, regardless of the edge direction) This is a much more efficient method than calling getNeighborsOf() for each node in the graph. | |
template<class MAP_NODEID_SET_NODEIDS , class SET_NODEIDS > | |
void | getAdjacencyMatrix (MAP_NODEID_SET_NODEIDS &outAdjacency, const SET_NODEIDS &onlyForTheseNodes) const |
Just like getAdjacencyMatrix but return only the adjacency for those node_ids in the set onlyForTheseNodes (both endings nodes of an edge must be within the set for it to be returned) | |
I/O utilities | |
bool | saveAsDot (std::ostream &o, const TGraphvizExportParams &p=TGraphvizExportParams()) const |
Save the graph in a Graphviz (.dot files) text format; useful for quickly rendering the graph with "dot". | |
bool | saveAsDot (const std::string &fileName, const TGraphvizExportParams &p=TGraphvizExportParams()) const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts. | |
Public Attributes | |
edges_map_t | edges |
The public member with the directed edges in the graph. | |
Data members | |
global_poses_t | nodes |
The nodes (vertices) of the graph, with their estimated "global" (with respect to root) position, without an associated covariance. | |
mrpt::utils::TNodeID | root |
The ID of the node that is the origin of coordinates, used as reference by all coordinates in \nodes. | |
bool | edges_store_inverse_poses |
False (default) if an edge i->j stores the normal relative pose of j as seen from i: ![]() ![]() | |
typedef mrpt::graphs::CDirectedGraph<CPOSE,EDGE_ANNOTATIONS> mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::BASE |
The base class "CDirectedGraph<CPOSE,EDGE_ANNOTATIONS>" */.
Definition at line 80 of file CNetworkOfPoses.h.
|
inherited |
Definition at line 70 of file CDirectedGraph.h.
typedef CPOSE::type_value mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::constraint_no_pdf_t |
The type of edges or their means if they are PDFs (that is, a simple "edge" value)
Definition at line 88 of file CNetworkOfPoses.h.
typedef CPOSE mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::constraint_t |
The type of PDF poses in the contraints (edges) (=CPOSE template argument)
Definition at line 83 of file CNetworkOfPoses.h.
typedef EDGE_ANNOTATIONS mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::edge_annotations_t |
The extra annotations in edges, apart from a constraint_t.
Definition at line 85 of file CNetworkOfPoses.h.
|
inherited |
The type of the member edges.
Definition at line 68 of file CDirectedGraph.h.
typedef MAPS_IMPLEMENTATION::template map<mrpt::utils::TNodeID,CPOSE> mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::global_poses_pdf_t |
A map from pose IDs to their global coordinates estimates, with uncertainty.
Definition at line 100 of file CNetworkOfPoses.h.
typedef MAPS_IMPLEMENTATION::template map<mrpt::utils::TNodeID,global_pose_t> mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::global_poses_t |
A map from pose IDs to their global coordinates estimates, without uncertainty (the "most-likely value")
Definition at line 103 of file CNetworkOfPoses.h.
|
inherited |
Definition at line 69 of file CDirectedGraph.h.
typedef MAPS_IMPLEMENTATION mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::maps_implementation_t |
The type of map's implementation (=MAPS_IMPLEMENTATION template argument)
Definition at line 87 of file CNetworkOfPoses.h.
typedef NODE_ANNOTATIONS mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::node_annotations_t |
The extra annotations in nodes, apart from a constraint_no_pdf_t.
Definition at line 84 of file CNetworkOfPoses.h.
typedef CNetworkOfPoses<CPOSE,MAPS_IMPLEMENTATION,NODE_ANNOTATIONS,EDGE_ANNOTATIONS> mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::self_t |
My own type.
Definition at line 81 of file CNetworkOfPoses.h.
|
inline |
Default constructor (just sets root to "0" and edges_store_inverse_poses to "false")
Definition at line 221 of file CNetworkOfPoses.h.
|
inline |
Definition at line 222 of file CNetworkOfPoses.h.
|
inlineinherited |
Definition at line 79 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getGlobalSquareError(), and mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::saveAsDot().
|
inlineinherited |
Definition at line 81 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inline |
Empty all edges, nodes and set root to ID 0.
Definition at line 203 of file CNetworkOfPoses.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::edges_store_inverse_poses, mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::nodes, and mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::root.
|
inlineinherited |
Erase all edges.
Definition at line 88 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inline |
Look for duplicated edges (even in opposite directions) between all pairs of nodes and fuse them.
Upon return, only one edge remains between each pair of nodes with the mean & covariance (or information matrix) corresponding to the Bayesian fusion of all the Gaussians.
Definition at line 170 of file CNetworkOfPoses.h.
References mrpt::graphs::detail::graph_ops< graph_t >::graph_of_poses_collapse_dup_edges().
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::loadFromTextFile().
|
inlineinherited |
Count how many different node IDs appear in the graph edges.
Definition at line 171 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inline |
Spanning tree computation of a simple estimation of the global coordinates of each node just from the information in all edges, sorted in a Dijkstra tree based on the current "root" node.
Note that "global" coordinates are with respect to the node with the ID specified in root.
Definition at line 164 of file CNetworkOfPoses.h.
References mrpt::graphs::detail::graph_ops< graph_t >::graph_of_poses_dijkstra_init().
|
inlineinherited |
The number of edges in the graph.
Definition at line 87 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Test is the given directed edge exists.
Definition at line 110 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Definition at line 80 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getEdgeSquareError(), and mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::saveAsDot().
|
inlineinherited |
Definition at line 82 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Erase all edges between the given nodes (it has no effect if no edge existed)
Definition at line 150 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Return a map from node IDs to all its neighbors (that is, connected nodes, regardless of the edge direction) This is a much more efficient method than calling getNeighborsOf() for each node in the graph.
Possible values for the template argument MAP_NODEID_SET_NODEIDS are:
Definition at line 203 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Just like getAdjacencyMatrix but return only the adjacency for those node_ids in the set onlyForTheseNodes (both endings nodes of an edge must be within the set for it to be returned)
Definition at line 216 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Less efficient way to get all nodes that returns a copy of the set object.
Definition at line 167 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getAllNodes().
Referenced by mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getAllNodes().
|
inlineinherited |
Return a list of all the node_ID's of the graph, generated from all the nodes that appear in the list of edges.
Definition at line 156 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Return a reference to the content of a given edge.
If several edges exist between the given nodes, the first one is returned.
std::exception | if the given edge does not exist |
Definition at line 118 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, mrpt::format(), and THROW_EXCEPTION.
|
inlineinherited |
Return a reference to the content of a given edge.
If several edges exist between the given nodes, the first one is returned.
std::exception | if the given edge does not exist |
Definition at line 131 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, mrpt::format(), and THROW_EXCEPTION.
|
inlineinherited |
Return a pair<first,last> of iterators to the range of edges between two given nodes.
Definition at line 140 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Return a pair<first,last> of const iterators to the range of edges between two given nodes.
Definition at line 144 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inline |
Computes the square error of one pose constraints (edge) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error.
std::exception | On edge not existing or global poses not in nodes |
Definition at line 195 of file CNetworkOfPoses.h.
References ASSERTMSG_, mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::end(), mrpt::format(), and mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getEdgeSquareError().
|
inline |
Computes the square error of one pose constraints (edge) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error.
std::exception | On global poses not in nodes |
Definition at line 189 of file CNetworkOfPoses.h.
References mrpt::graphs::detail::graph_ops< graph_t >::graph_edge_sqerror().
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getEdgeSquareError().
|
inline |
Computes the overall square error from all the pose constraints (edges) with respect to the global poses in \nodes If ignoreCovariances is false, the squared Mahalanobis distance will be computed instead of the straight square error.
std::exception | On global poses not in nodes |
Definition at line 177 of file CNetworkOfPoses.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::begin(), and mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Return the list of all neighbors of "nodeID", by creating a list of their node IDs.
Definition at line 183 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges.
|
inlineinherited |
Insert an edge (from -> to) with the given edge value.
Definition at line 92 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, and MRPT_ALIGN16.
|
inlineinherited |
Insert an edge (from -> to) with the given edge value (more efficient version to be called if you know that the end will go at the end of the sorted std::multimap).
Definition at line 101 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edges, and MRPT_ALIGN16.
|
inline |
Loads from a text file in the format used by TORO & HoG-man (more on the format here ) Recognized line entries are: VERTEX2, VERTEX3, EDGE2, EDGE3, EQUIV.
If an unknown entry is found, a warning is dumped to std::cerr (only once for each unknown keyword). An exception will be raised if trying to load a 3D graph into a 2D class (in the opposite case, missing 3D data will default to zero).
fileName | The file to load. |
collapse_dup_edges | If true, collapseDuplicatedEdges will be called automatically after loading (note that this operation may take significant time for very large graphs). |
On | any error, as a malformed line or loading a 3D graph in a 2D graph. |
Definition at line 149 of file CNetworkOfPoses.h.
References mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::collapseDuplicatedEdges(), and mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_file().
|
inline |
Return number of nodes in the list \nodes of global coordinates (may be differente that all nodes appearing in edges)
Definition at line 213 of file CNetworkOfPoses.h.
References mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::nodes.
|
inlineinherited |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Definition at line 269 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::saveAsDot().
|
inlineinherited |
Save the graph in a Graphviz (.dot files) text format; useful for quickly rendering the graph with "dot".
Definition at line 237 of file CDirectedGraph.h.
References mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::begin(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::end(), and mrpt::format().
Referenced by mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::saveAsDot().
|
inline |
Saves to a text file in the format used by TORO & HoG-man (more on the format here ) For 2D graphs only VERTEX2 & EDGE2 entries will be saved, and VERTEX3 & EDGE3 entries for 3D graphs.
Note that EQUIV entries will not be saved, but instead several EDGEs will be stored between the same node IDs.
On | any error |
Definition at line 136 of file CNetworkOfPoses.h.
References mrpt::graphs::detail::graph_ops< graph_t >::save_graph_of_poses_to_text_file().
|
inherited |
The public member with the directed edges in the graph.
Definition at line 73 of file CDirectedGraph.h.
Referenced by mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::begin(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::begin(), mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::clear(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::clearEdges(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::countDifferentNodesInEdges(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edgeCount(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::edgeExists(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::end(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::end(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::eraseEdge(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getAdjacencyMatrix(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getAdjacencyMatrix(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getAllNodes(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getEdge(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getEdge(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getEdges(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getEdges(), mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getEdgeSquareError(), mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::getGlobalSquareError(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::getNeighborsOf(), mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::insertEdge(), and mrpt::graphs::CDirectedGraph< TYPE_EDGES, EDGE_ANNOTATIONS >::insertEdgeAtEnd().
bool mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::edges_store_inverse_poses |
False (default) if an edge i->j stores the normal relative pose of j as seen from i:
Definition at line 122 of file CNetworkOfPoses.h.
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::clear().
global_poses_t mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::nodes |
The nodes (vertices) of the graph, with their estimated "global" (with respect to root) position, without an associated covariance.
Definition at line 114 of file CNetworkOfPoses.h.
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::clear(), mrpt::graphs::detail::graph_ops< graph_t >::load_graph_of_poses_from_text_file(), and mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::nodeCount().
mrpt::utils::TNodeID mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::root |
The ID of the node that is the origin of coordinates, used as reference by all coordinates in \nodes.
By default, root is the ID "0".
Definition at line 117 of file CNetworkOfPoses.h.
Referenced by mrpt::graphs::CNetworkOfPoses< CPOSE, MAPS_IMPLEMENTATION, NODE_ANNOTATIONS, EDGE_ANNOTATIONS >::clear().
Page generated by Doxygen 1.9.7 for MRPT 1.4.0 SVN: at Tue Jun 13 13:56:43 UTC 2023 |