An algorithm for globally, consistent alignment of a sequence of observations.
This algorithm is based on the work of Lu & Milios [Globally Consistent Range Scan Alignment for Environment Mapping, 1997] for a global optimal estimation of laser range scan poses, but in this case it has been extended to include any type of observations as long as points-map-like operators are implemented over them.
This class work in the following way:
The input is a set of observations with associated "global" poses. This is supplied with a "CSimpleMap" object, but the probabilistic poses are ignored since only the mean values for the pose of each node are taken.
After invoking the algorithm with CConsistentObservationAlignment::execute(), a new "CSimpleMap" object is returned, where the NOTE: The first node on the input map is used as reference and therefore its pose is the only one which will never change.
Definition at line 71 of file CConsistentObservationAlignment.h.
#include <mrpt/slam/CConsistentObservationAlignment.h>
Classes | |
struct | TOptions |
The options for the method. More... | |
Public Member Functions | |
CConsistentObservationAlignment () | |
void | execute (CSimpleMap &inputMap, CSimpleMap &outputMap) |
Executes the algorithm. | |
std::string | getAlgorithmName () |
A textual description for the implemented algorithm. | |
Static Public Member Functions | |
static void | optimizeUserSuppliedData (math::CMatrixTemplateObjects< CPosePDFGaussian > &in_PoseConstraints, math::CMatrixTemplateObjects< CPosePDFGaussian > &out_OptimalPoses) |
This alternate method provides the basic consistent alignment algorithm to any user-supplied matrix of pose constrainsts, returning the optimal poses of all the nodes relative to the first one. | |
Public Attributes | |
struct SLAM_IMPEXP mrpt::slam::CConsistentObservationAlignment::TOptions | options |
Protected Types | |
typedef std::vector < CPosePDFGaussianPtr > | vector_posesPdf |
A sequence of probabilistic poses: |
typedef std::vector<CPosePDFGaussianPtr> mrpt::slam::CConsistentObservationAlignment::vector_posesPdf [protected] |
A sequence of probabilistic poses:
Definition at line 76 of file CConsistentObservationAlignment.h.
mrpt::slam::CConsistentObservationAlignment::CConsistentObservationAlignment | ( | ) |
void mrpt::slam::CConsistentObservationAlignment::execute | ( | CSimpleMap & | inputMap, |
CSimpleMap & | outputMap | ||
) |
Executes the algorithm.
See description in CConsistentObservationAlignment.
inputMap | The input to the algorithm: a set of nodes situated (with global coordinates) and observations from each node. |
outputMap | The globally consistent map, where probabilitic poses are filled with gaussian PDFs, where the mean is the globally optimal estimation and the covariance is also computed. |
std::string mrpt::slam::CConsistentObservationAlignment::getAlgorithmName | ( | ) |
A textual description for the implemented algorithm.
static void mrpt::slam::CConsistentObservationAlignment::optimizeUserSuppliedData | ( | math::CMatrixTemplateObjects< CPosePDFGaussian > & | in_PoseConstraints, |
math::CMatrixTemplateObjects< CPosePDFGaussian > & | out_OptimalPoses | ||
) | [static] |
This alternate method provides the basic consistent alignment algorithm to any user-supplied matrix of pose constrainsts, returning the optimal poses of all the nodes relative to the first one.
in_PoseConstraints | This is a NxN matrix where element M(i,j) is the pose constrainst between node "i" and "j". Please, fill out only the upper-triangle part of the matrix (diagonal and lowe-part entries are not used). |
out_OptimalPoses | The 1xN vector with the consistent global poses of all nodes, where the first node is always at (0,0,0deg). |
Page generated by Doxygen 1.7.3 for MRPT 0.9.4 SVN: at Sat Mar 26 06:40:17 UTC 2011 |