Point Cloud Library (PCL)
1.14.1-dev
|
DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the following criteria for registration loop evaluation: More...
#include <pcl/registration/default_convergence_criteria.h>
Public Types | |
enum | ConvergenceState { CONVERGENCE_CRITERIA_NOT_CONVERGED , CONVERGENCE_CRITERIA_ITERATIONS , CONVERGENCE_CRITERIA_TRANSFORM , CONVERGENCE_CRITERIA_ABS_MSE , CONVERGENCE_CRITERIA_REL_MSE , CONVERGENCE_CRITERIA_NO_CORRESPONDENCES , CONVERGENCE_CRITERIA_FAILURE_AFTER_MAX_ITERATIONS } |
using | Ptr = shared_ptr< DefaultConvergenceCriteria< Scalar > > |
using | ConstPtr = shared_ptr< const DefaultConvergenceCriteria< Scalar > > |
using | Matrix4 = Eigen::Matrix< Scalar, 4, 4 > |
Public Types inherited from pcl::registration::ConvergenceCriteria | |
using | Ptr = shared_ptr< ConvergenceCriteria > |
using | ConstPtr = shared_ptr< const ConvergenceCriteria > |
Public Member Functions | |
DefaultConvergenceCriteria (const int &iterations, const Matrix4 &transform, const pcl::Correspondences &correspondences) | |
Empty constructor. More... | |
~DefaultConvergenceCriteria () override=default | |
Empty destructor. More... | |
void | setMaximumIterationsSimilarTransforms (const int nr_iterations) |
Set the maximum number of consecutive iterations that the internal rotation, translation, and MSE differences are allowed to be similar. More... | |
int | getMaximumIterationsSimilarTransforms () const |
Get the maximum number of consecutive iterations that the internal rotation, translation, and MSE differences are allowed to be similar, as set by the user. More... | |
void | setMaximumIterations (const int nr_iterations) |
Set the maximum number of iterations the internal optimization should run for. More... | |
int | getMaximumIterations () const |
Get the maximum number of iterations the internal optimization should run for, as set by the user. More... | |
void | setFailureAfterMaximumIterations (const bool failure_after_max_iter) |
Specifies if the registration fails or converges when the maximum number of iterations is reached. More... | |
bool | getFailureAfterMaximumIterations () const |
Get whether the registration will fail or converge when the maximum number of iterations is reached. More... | |
void | setRotationThreshold (const double threshold) |
Set the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution. More... | |
double | getRotationThreshold () const |
Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user. More... | |
void | setTranslationThreshold (const double threshold) |
Set the translation threshold (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution. More... | |
double | getTranslationThreshold () const |
Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user. More... | |
void | setRelativeMSE (const double mse_relative) |
Set the relative MSE between two consecutive sets of correspondences. More... | |
double | getRelativeMSE () const |
Get the relative MSE between two consecutive sets of correspondences. More... | |
void | setAbsoluteMSE (const double mse_absolute) |
Set the absolute MSE between two consecutive sets of correspondences. More... | |
double | getAbsoluteMSE () const |
Get the absolute MSE between two consecutive sets of correspondences. More... | |
bool | hasConverged () override |
Check if convergence has been reached. More... | |
ConvergenceState | getConvergenceState () |
Return the convergence state after hasConverged () More... | |
void | setConvergenceState (ConvergenceState c) |
Sets the convergence state externally (for example, when ICP does not find enough correspondences to estimate a transformation, the function is called setting the convergence state to ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES) More... | |
Public Member Functions inherited from pcl::registration::ConvergenceCriteria | |
ConvergenceCriteria ()=default | |
Empty constructor. More... | |
virtual | ~ConvergenceCriteria ()=default |
Empty destructor. More... | |
operator bool () | |
Bool operator. More... | |
Protected Member Functions | |
double | calculateMSE (const pcl::Correspondences &correspondences) const |
Calculate the mean squared error (MSE) of the distance for a given set of correspondences. More... | |
Protected Attributes | |
const int & | iterations_ |
The number of iterations done by the registration loop so far. More... | |
const Matrix4 & | transformation_ |
The current transformation obtained by the transformation estimation method. More... | |
const pcl::Correspondences & | correspondences_ |
The current set of point correspondences between the source and the target. More... | |
double | correspondences_prev_mse_ {std::numeric_limits<double>::max()} |
The MSE for the previous set of correspondences. More... | |
double | correspondences_cur_mse_ {std::numeric_limits<double>::max()} |
The MSE for the current set of correspondences. More... | |
int | max_iterations_ {100} |
The maximum nuyyGmber of iterations that the registration loop is to be executed. More... | |
bool | failure_after_max_iter_ {false} |
Specifys if the registration fails or converges when the maximum number of iterations is reached. More... | |
double | rotation_threshold_ {0.99999} |
The rotation threshold is the relative rotation between two iterations (as angle cosine). More... | |
double | translation_threshold_ {3e-4 * 3e-4} |
The translation threshold is the relative translation between two iterations (0 if no translation). More... | |
double | mse_threshold_relative_ {0.00001} |
The relative change from the previous MSE for the current set of correspondences, e.g. More... | |
double | mse_threshold_absolute_ {1e-12} |
The absolute change from the previous MSE for the current set of correspondences. More... | |
int | iterations_similar_transforms_ {0} |
Internal counter for the number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar. More... | |
int | max_iterations_similar_transforms_ {0} |
The maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar. More... | |
ConvergenceState | convergence_state_ {CONVERGENCE_CRITERIA_NOT_CONVERGED} |
The state of the convergence (e.g., why did the registration converge). More... | |
DefaultConvergenceCriteria represents an instantiation of ConvergenceCriteria, and implements the following criteria for registration loop evaluation:
Definition at line 65 of file default_convergence_criteria.h.
using pcl::registration::DefaultConvergenceCriteria< Scalar >::ConstPtr = shared_ptr<const DefaultConvergenceCriteria<Scalar> > |
Definition at line 68 of file default_convergence_criteria.h.
using pcl::registration::DefaultConvergenceCriteria< Scalar >::Matrix4 = Eigen::Matrix<Scalar, 4, 4> |
Definition at line 70 of file default_convergence_criteria.h.
using pcl::registration::DefaultConvergenceCriteria< Scalar >::Ptr = shared_ptr<DefaultConvergenceCriteria<Scalar> > |
Definition at line 67 of file default_convergence_criteria.h.
enum pcl::registration::DefaultConvergenceCriteria::ConvergenceState |
Definition at line 72 of file default_convergence_criteria.h.
|
inline |
Empty constructor.
Sets:
[in] | iterations | a reference to the number of iterations the loop has ran so far |
[in] | transform | a reference to the current transformation obtained by the transformation evaluation |
[in] | correspondences | a reference to the current set of point correspondences between source and target |
Definition at line 94 of file default_convergence_criteria.h.
|
overridedefault |
Empty destructor.
|
inlineprotected |
Calculate the mean squared error (MSE) of the distance for a given set of correspondences.
[in] | correspondences | the given set of correspondences |
Definition at line 262 of file default_convergence_criteria.h.
|
inline |
Get the absolute MSE between two consecutive sets of correspondences.
Definition at line 230 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_absolute_.
|
inline |
Return the convergence state after hasConverged ()
Definition at line 241 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::convergence_state_.
|
inline |
Get whether the registration will fail or converge when the maximum number of iterations is reached.
Definition at line 156 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::failure_after_max_iter_.
|
inline |
Get the maximum number of iterations the internal optimization should run for, as set by the user.
Definition at line 138 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_.
|
inline |
Get the maximum number of consecutive iterations that the internal rotation, translation, and MSE differences are allowed to be similar, as set by the user.
Definition at line 120 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_similar_transforms_.
|
inline |
Get the relative MSE between two consecutive sets of correspondences.
Definition at line 214 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_relative_.
|
inline |
Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user.
Definition at line 177 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::rotation_threshold_.
|
inline |
Get the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) as set by the user.
Definition at line 198 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::translation_threshold_.
|
overridevirtual |
Check if convergence has been reached.
Implements pcl::registration::ConvergenceCriteria.
Definition at line 51 of file default_convergence_criteria.hpp.
|
inline |
Set the absolute MSE between two consecutive sets of correspondences.
[in] | mse_absolute | the relative MSE threshold |
Definition at line 223 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_absolute_.
|
inline |
Sets the convergence state externally (for example, when ICP does not find enough correspondences to estimate a transformation, the function is called setting the convergence state to ConvergenceState::CONVERGENCE_CRITERIA_NO_CORRESPONDENCES)
[in] | c | the convergence state |
Definition at line 252 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::convergence_state_.
|
inline |
Specifies if the registration fails or converges when the maximum number of iterations is reached.
[in] | failure_after_max_iter | If true, the registration fails. If false, the registration is assumed to have converged. |
Definition at line 148 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::failure_after_max_iter_.
|
inline |
Set the maximum number of iterations the internal optimization should run for.
[in] | nr_iterations | the maximum number of iterations the internal optimization should run for |
Definition at line 130 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_.
|
inline |
Set the maximum number of consecutive iterations that the internal rotation, translation, and MSE differences are allowed to be similar.
[in] | nr_iterations | the maximum number of iterations |
Definition at line 110 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::max_iterations_similar_transforms_.
|
inline |
Set the relative MSE between two consecutive sets of correspondences.
[in] | mse_relative | the relative MSE threshold |
Definition at line 207 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::mse_threshold_relative_.
|
inline |
Set the rotation threshold cosine angle (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.
[in] | threshold | the rotation threshold in order for an optimization to be considered as having converged to the final solution. |
Definition at line 168 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::rotation_threshold_.
|
inline |
Set the translation threshold (maximum allowable difference between two consecutive transformations) in order for an optimization to be considered as having converged to the final solution.
[in] | threshold | the translation threshold in order for an optimization to be considered as having converged to the final solution. |
Definition at line 189 of file default_convergence_criteria.h.
References pcl::registration::DefaultConvergenceCriteria< Scalar >::translation_threshold_.
|
protected |
The state of the convergence (e.g., why did the registration converge).
Definition at line 321 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getConvergenceState(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setConvergenceState().
|
protected |
The current set of point correspondences between the source and the target.
Definition at line 280 of file default_convergence_criteria.h.
|
protected |
The MSE for the current set of correspondences.
Definition at line 286 of file default_convergence_criteria.h.
|
protected |
The MSE for the previous set of correspondences.
Definition at line 283 of file default_convergence_criteria.h.
|
protected |
Specifys if the registration fails or converges when the maximum number of iterations is reached.
Definition at line 294 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getFailureAfterMaximumIterations(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setFailureAfterMaximumIterations().
|
protected |
The number of iterations done by the registration loop so far.
Definition at line 272 of file default_convergence_criteria.h.
|
protected |
Internal counter for the number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar.
Definition at line 314 of file default_convergence_criteria.h.
|
protected |
The maximum nuyyGmber of iterations that the registration loop is to be executed.
Definition at line 290 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getMaximumIterations(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setMaximumIterations().
|
protected |
The maximum number of iterations that the internal rotation, translation, and MSE differences are allowed to be similar.
Definition at line 318 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getMaximumIterationsSimilarTransforms(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setMaximumIterationsSimilarTransforms().
|
protected |
The absolute change from the previous MSE for the current set of correspondences.
Definition at line 310 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getAbsoluteMSE(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setAbsoluteMSE().
|
protected |
The relative change from the previous MSE for the current set of correspondences, e.g.
.1 means 10% change.
Definition at line 306 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getRelativeMSE(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setRelativeMSE().
|
protected |
The rotation threshold is the relative rotation between two iterations (as angle cosine).
Definition at line 298 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getRotationThreshold(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setRotationThreshold().
|
protected |
The current transformation obtained by the transformation estimation method.
Definition at line 276 of file default_convergence_criteria.h.
|
protected |
The translation threshold is the relative translation between two iterations (0 if no translation).
Definition at line 302 of file default_convergence_criteria.h.
Referenced by pcl::registration::DefaultConvergenceCriteria< Scalar >::getTranslationThreshold(), and pcl::registration::DefaultConvergenceCriteria< Scalar >::setTranslationThreshold().