38 #ifndef PCL_REGISTRATION_IA_KFPCS_H_ 39 #define PCL_REGISTRATION_IA_KFPCS_H_ 41 #include <pcl/registration/ia_fpcs.h> 45 namespace registration
55 template <
typename Po
intSource,
typename Po
intTarget,
typename NormalT = pcl::Normal,
typename Scalar =
float>
60 typedef boost::shared_ptr <KFPCSInitialAlignment <PointSource, PointTarget, NormalT, Scalar> >
Ptr;
61 typedef boost::shared_ptr <const KFPCSInitialAlignment <PointSource, PointTarget, NormalT, Scalar> >
ConstPtr;
72 typedef std::vector <MatchingCandidate> MatchingCandidates;
148 getNBestCandidates (
int n,
float min_angle3d,
float min_translation3d, MatchingCandidates &candidates);
160 getTBestCandidates (
float t,
float min_angle3d,
float min_translation3d, MatchingCandidates &candidates);
205 const std::vector <int> &base_indices,
206 std::vector <std::vector <int> > &matches,
207 MatchingCandidates &candidates);
228 finalCompute (
const std::vector <MatchingCandidates > &candidates);
261 #include <pcl/registration/impl/ia_kfpcs.hpp> 263 #endif // PCL_REGISTRATION_IA_KFPCS_H_ virtual bool initCompute()
Internal computation initialization.
float lower_trl_boundary_
Lower boundary for translation costs calculation.
FPCSInitialAlignment computes corresponding four point congruent sets as described in: "4-points cong...
boost::shared_ptr< std::vector< int > > IndicesPtr
boost::shared_ptr< const Registration< PointSource, PointTarget, Scalar > > ConstPtr
float lambda_
Weighting factor for translation costs (standard = 0.5).
pcl::PointCloud< PointTarget > PointCloudTarget
boost::shared_ptr< Registration< PointSource, PointTarget, Scalar > > Ptr
void getNBestCandidates(int n, float min_angle3d, float min_translation3d, MatchingCandidates &candidates)
Get the N best unique candidate matches according to their fitness score.
Container for matching candidate consisting of.
void getTBestCandidates(float t, float min_angle3d, float min_translation3d, MatchingCandidates &candidates)
Get all unique candidate matches with fitness scores above a threshold t.
VectorType::iterator iterator
void setLowerTranslationThreshold(float lower_trl_boundary)
Set the lower translation threshold used for score evaluation.
PointCloudSource::Ptr PointCloudSourcePtr
boost::shared_ptr< PointCloud< PointSource > > Ptr
virtual void finalCompute(const std::vector< MatchingCandidates > &candidates)
Final computation of best match out of vector of matches.
virtual void handleMatches(const std::vector< int > &base_indices, std::vector< std::vector< int > > &matches, MatchingCandidates &candidates)
Method to handle current candidate matches.
KFPCSInitialAlignment()
Constructor.
virtual int validateTransformation(Eigen::Matrix4f &transformation, float &fitness_score)
Validate the transformation by calculating the score value after transforming the input source cloud...
pcl::IndicesPtr indices_validation_
Subset of input indices on which we evaluate candidates.
PointCloudTarget::Ptr PointCloudTargetPtr
Registration represents the base registration class for general purpose, ICP-like methods...
MatchingCandidates candidates_
Container for resulting vector of registration candidates.
bool use_trl_score_
Flag if translation score should be used in validation (internal calculation).
void setLambda(float lambda)
Set the weighting factor of the translation cost term.
void setUpperTranslationThreshold(float upper_trl_boundary)
Set the upper translation threshold used for score evaluation.
float upper_trl_boundary_
Upper boundary for translation costs calculation.
float getLowerTranslationThreshold() const
float getUpperTranslationThreshold() const
pcl::PointCloud< PointSource > PointCloudSource
KFPCSInitialAlignment computes corresponding four point congruent sets based on keypoints as describe...
virtual ~KFPCSInitialAlignment()
Destructor.