pcl::registration::GraphHandler< GraphT > Class Template Reference
Module registration

GraphHandler class is a wrapper for a general SLAM graph The actual graph class must fulfil the following boost::graph concepts: More...

`#include <pcl/registration/graph_handler.h>`

## Public Types

typedef boost::shared_ptr< GraphHandler< GraphT > > | Ptr
typedef boost::shared_ptr< const GraphHandler< GraphT > > | ConstPtr
typedef boost::shared_ptr< GraphT > | GraphPtr
typedef boost::shared_ptr< const GraphT > | GraphConstPtr
typedef boost::graph_traits< GraphT >::vertex_descriptor | Vertex
typedef boost::graph_traits< GraphT >::edge_descriptor | Edge

## Public Member Functions

| GraphHandler ()
| Empty constructor. More...
| ~GraphHandler ()
| Destructor. More...
void | clear ()
| Clear the graph. More...
GraphConstPtr | getGraph () const
| Get a pointer to the BGL graph. More...
GraphPtr | getGraph ()
| Get a pointer to the BGL graph. More...
template<class PointT >
Vertex | addPointCloud (const typename pcl::PointCloud< PointT >::ConstPtr &cloud, const Eigen::Matrix4f &pose)
| Add a new point cloud to the graph and return the new vertex. More...
template<class EstimateT >
Vertex | addGenericVertex (const EstimateT &estimate)
| Add a new generic vertex created according to the given estimate. More...
template<class InformationT >
Edge | addPoseConstraint (const Vertex &v_start, const Vertex &v_end, const Eigen::Matrix4f &relative_transformation, const InformationT &information_matrix)
| Add a new constraint between two poses. More...
template<class MeasurementT >
Edge | addGenericConstraint (const MeasurementT &measurement)
| Add a generic constraint created according to the given measurement. More...
void | removeVertex (const Vertex &v)
| Remove a vertex from the graph. More...
void | removeConstraint (const Edge &e)
| Remove a constraint from the graph. More...

## Protected Member Functions

bool | init ()
| This method is called right after the creation of graph_impl_. More...
bool | deinit ()
| This method is called when graph_impl_ is going to be destroyed. More...

## Detailed Description

### template<typename GraphT>
class pcl::registration::GraphHandler< GraphT >

GraphHandler class is a wrapper for a general SLAM graph The actual graph class must fulfil the following boost::graph concepts:

- BidirectionalGraph
- AdjacencyGraph
- VertexAndEdgeListGraph
- MutableGraph

Other valid expressions:

- add_edge (m,g) add a new edge according to the given measurement. Return type: std::pair<edge_descriptor, bool>
- add_vertex (e,g) add a new vertex according to the given estimate. Return type: vertex_descriptor
- get_pose (v,g) retrieve the pose estimate for v, if any. Return type: Eigen::Matrix4f
- get_cloud (v,g) retrieve the cloud pointer associated to v, if any. Return type: pcl::PointCloud<PointT>::ConstPtr
- set_estimate (v,e,g) set the estimate for an existing vertex. Return type: void.
- set_measurement (d,m,g) set the measurement for an existing edge. Return type: void. Notation:
- m an edge measurement
- e a vertex estimate
- v a vertex
- d an edge
- g a graph A valid graph implementation should accept at least the PoseEstimate estimate and the PoseMeasurement measurement

If a specific graph implementation needs initialization and/or finalization, specialize the protected methods init() and deinit() for your graph type

Author
  Nicola Fioraio

Definition at line 82 of file graph_handler.h.

## Member Typedef Documentation

template<typename GraphT>

typedef boost::shared_ptr<const GraphHandler<GraphT> > pcl::registration::GraphHandler< GraphT >::ConstPtr

Definition at line 86 of file graph_handler.h.

template<typename GraphT>

typedef boost::graph_traits<GraphT>::edge_descriptor pcl::registration::GraphHandler< GraphT >::Edge

Definition at line 91 of file graph_handler.h.

template<typename GraphT>

typedef boost::shared_ptr<const GraphT> pcl::registration::GraphHandler< GraphT >::GraphConstPtr

Definition at line 88 of file graph_handler.h.

template<typename GraphT>

typedef boost::shared_ptr<GraphT> pcl::registration::GraphHandler< GraphT >::GraphPtr

Definition at line 87 of file graph_handler.h.

template<typename GraphT>

typedef boost::shared_ptr<GraphHandler<GraphT> > pcl::registration::GraphHandler< GraphT >::Ptr

Definition at line 85 of file graph_handler.h.

template<typename GraphT>

typedef boost::graph_traits<GraphT>::vertex_descriptor pcl::registration::GraphHandler< GraphT >::Vertex

Definition at line 90 of file graph_handler.h.

## Constructor & Destructor Documentation

template<typename GraphT>

pcl::registration::GraphHandler< GraphT >::GraphHandler | ( |  | ) |

inline

Empty constructor.

Definition at line 94 of file graph_handler.h.

References pcl::registration::GraphHandler< GraphT >::init().

template<typename GraphT>

pcl::registration::GraphHandler< GraphT >::~GraphHandler | ( |  | ) |

inline

Destructor.

Definition at line 101 of file graph_handler.h.

References pcl::registration::GraphHandler< GraphT >::deinit().

## Member Function Documentation

template<typename GraphT>
template<class MeasurementT >

Edge pcl::registration::GraphHandler< GraphT >::addGenericConstraint | ( | const MeasurementT & | measurement | ) |

inline

Add a generic constraint created according to the given measurement.

Parameters

  measurement | the measurement

Returns
  a reference to the new edge

Definition at line 172 of file graph_handler.h.

template<typename GraphT>
template<class EstimateT >

Vertex pcl::registration::GraphHandler< GraphT >::addGenericVertex | ( | const EstimateT & | estimate | ) |

inline

Add a new generic vertex created according to the given estimate.

Parameters

  estimate | the parameters' estimate

Returns
  a reference to the new vertex

Definition at line 146 of file graph_handler.h.

template<typename GraphT>
template<class PointT >

Vertex pcl::registration::GraphHandler< GraphT >::addPointCloud | ( | const typename pcl::PointCloud< PointT >::ConstPtr & | cloud,
|  | const Eigen::Matrix4f & | pose
| ) |  |

inline

Add a new point cloud to the graph and return the new vertex.

Parameters

  cloud | the new point cloud
  pose | the pose estimate

Returns
  a reference to the new vertex

Definition at line 136 of file graph_handler.h.

template<typename GraphT>
template<class InformationT >

Edge pcl::registration::GraphHandler< GraphT >::addPoseConstraint | ( | const Vertex & | v_start,
|  | const Vertex & | v_end,
|  | const Eigen::Matrix4f & | relative_transformation,
|  | const InformationT & | information_matrix
| ) |  |

inline

Add a new constraint between two poses.

Parameters

  v_start | the first pose
  v_end | the second pose
  relative_transformation | the transformation from v_start to v_end
  information_matrix | the uncertainty

Returns
  a reference to the new edge

Definition at line 159 of file graph_handler.h.

template<typename GraphT>

void pcl::registration::GraphHandler< GraphT >::clear | ( |  | ) |

inline

Clear the graph.

Definition at line 108 of file graph_handler.h.

References pcl::registration::GraphHandler< GraphT >::deinit(), and pcl::registration::GraphHandler< GraphT >::init().

template<typename GraphT>

bool pcl::registration::GraphHandler< GraphT >::deinit | ( |  | ) |

inline protected

This method is called when graph_impl_ is going to be destroyed.

Definition at line 205 of file graph_handler.h.

Referenced by pcl::registration::GraphHandler< GraphT >::clear(), and pcl::registration::GraphHandler< GraphT >::~GraphHandler().

template<typename GraphT>

GraphConstPtr pcl::registration::GraphHandler< GraphT >::getGraph | ( |  | ) | const

inline

Get a pointer to the BGL graph.

Definition at line 118 of file graph_handler.h.

template<typename GraphT>

GraphPtr pcl::registration::GraphHandler< GraphT >::getGraph | ( |  | ) |

inline

Get a pointer to the BGL graph.

Definition at line 125 of file graph_handler.h.

template<typename GraphT>

bool pcl::registration::GraphHandler< GraphT >::init | ( |  | ) |

inline protected

This method is called right after the creation of graph_impl_.

Definition at line 198 of file graph_handler.h.

Referenced by pcl::registration::GraphHandler< GraphT >::clear(), and pcl::registration::GraphHandler< GraphT >::GraphHandler().

template<typename GraphT>

void pcl::registration::GraphHandler< GraphT >::removeConstraint | ( | const Edge & | e | ) |

inline

Remove a constraint from the graph.

Parameters

  e | the edge

Definition at line 190 of file graph_handler.h.

template<typename GraphT>

void pcl::registration::GraphHandler< GraphT >::removeVertex | ( | const Vertex & | v | ) |

inline

Remove a vertex from the graph.

Parameters

  v | the vertex

Definition at line 181 of file graph_handler.h.

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

- /build/pcl-0nnAvv/pcl-1.7.2/registration/include/pcl/registration/graph_handler.h