Main library for ICP components and pipelines. More...
Typedefs | |
using | mp2p_icp::MatchedLineList = std::vector< matched_line_t > |
using | mp2p_icp::MatchedPlaneList = std::vector< matched_plane_t > |
using | mp2p_icp::MatchedPointLineList = std::vector< point_line_pair_t > |
Functions | |
mrpt::math::CMatrixDouble66 | mp2p_icp::covariance (const Pairings &finalPairings, const mrpt::poses::CPose3D &finalAlignSolution, const CovarianceParameters &p) |
mrpt::math::CVectorFixedDouble< 4 > | mp2p_icp::error_line2line (const mp2p_icp::matched_line_t &pairing, const mrpt::poses::CPose3D &relativePose, mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 4, 12 >> jacobian=std::nullopt) |
mrpt::math::CVectorFixedDouble< 3 > | mp2p_icp::error_plane2plane (const mp2p_icp::matched_plane_t &pairing, const mrpt::poses::CPose3D &relativePose, mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> jacobian=std::nullopt) |
mrpt::math::CVectorFixedDouble< 3 > | mp2p_icp::error_point2line (const mp2p_icp::point_line_pair_t &pairing, const mrpt::poses::CPose3D &relativePose, mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> jacobian=std::nullopt) |
mrpt::math::CVectorFixedDouble< 3 > | mp2p_icp::error_point2plane (const mp2p_icp::point_plane_pair_t &pairing, const mrpt::poses::CPose3D &relativePose, mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> jacobian=std::nullopt) |
mrpt::math::CVectorFixedDouble< 3 > | mp2p_icp::error_point2point (const mrpt::tfest::TMatchingPair &pairing, const mrpt::poses::CPose3D &relativePose, mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> jacobian=std::nullopt) |
std::tuple< mrpt::math::TPoint3D, mrpt::math::TPoint3D > | mp2p_icp::eval_centroids_robust (const Pairings &in, const OutlierIndices &outliers) |
std::tuple< mp2p_icp::ICP::Ptr, mp2p_icp::Parameters > | mp2p_icp::icp_pipeline_from_yaml (const mrpt::containers::yaml &config, const mrpt::system::VerbosityLevel &vLevel=mrpt::system::LVL_INFO) |
mrpt::serialization::CArchive & | mp2p_icp::operator<< (mrpt::serialization::CArchive &out, const Pairings &obj) |
mrpt::serialization::CArchive & | mp2p_icp::operator<< (mrpt::serialization::CArchive &out, const Results &obj) |
mrpt::serialization::CArchive & | mp2p_icp::operator>> (mrpt::serialization::CArchive &in, Pairings &obj) |
mrpt::serialization::CArchive & | mp2p_icp::operator>> (mrpt::serialization::CArchive &in, Results &obj) |
bool | mp2p_icp::optimal_tf_gauss_newton (const Pairings &in, OptimalTF_Result &result, const OptimalTF_GN_Parameters &gnParams=OptimalTF_GN_Parameters()) |
bool | mp2p_icp::optimal_tf_olae (const Pairings &in, const WeightParameters &wp, OptimalTF_Result &result) |
Pairings | mp2p_icp::run_matchers (const matcher_list_t &matchers, const metric_map_t &pcGlobal, const metric_map_t &pcLocal, const mrpt::poses::CPose3D &local_wrt_global, const MatchContext &mc, const mrpt::optional_ref< MatchState > &userProvidedMS=std::nullopt) |
template<class LAMBDA , class LAMBDA2 > | |
void | mp2p_icp::visit_correspondences (const Pairings &in, const WeightParameters &wp, const mrpt::math::TPoint3D &ct_local, const mrpt::math::TPoint3D &ct_global, OutlierIndices &in_out_outliers, LAMBDA lambda_each_pair, LAMBDA2 lambda_final, bool normalize_relative_point_vectors, const mrpt::optional_ref< VisitCorrespondencesStats > &outStats=std::nullopt) |
Main library for ICP components and pipelines.
using mp2p_icp::MatchedLineList = typedef std::vector<matched_line_t> |
Definition at line 50 of file Pairings.h.
using mp2p_icp::MatchedPlaneList = typedef std::vector<matched_plane_t> |
Definition at line 41 of file Pairings.h.
using mp2p_icp::MatchedPointLineList = typedef std::vector<point_line_pair_t> |
Definition at line 69 of file Pairings.h.
|
strong |
Reason of iterating termination.
Enumerator | |
---|---|
Undefined | |
NoPairings | |
SolverError | |
MaxIterations | |
Stalled | |
QualityCheckpointFailed | |
HookRequest |
Definition at line 18 of file IterTermReason.h.
mrpt::math::CMatrixDouble66 mp2p_icp::covariance | ( | const Pairings & | finalPairings, |
const mrpt::poses::CPose3D & | finalAlignSolution, | ||
const CovarianceParameters & | p | ||
) |
Covariance estimation methods for an ICP result.
Definition at line 22 of file covariance.cpp.
mrpt::math::CVectorFixedDouble< 4 > mp2p_icp::error_line2line | ( | const mp2p_icp::matched_line_t & | pairing, |
const mrpt::poses::CPose3D & | relativePose, | ||
mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 4, 12 >> | jacobian = std::nullopt |
||
) |
Definition at line 167 of file errorTerms.cpp.
mrpt::math::CVectorFixedDouble< 3 > mp2p_icp::error_plane2plane | ( | const mp2p_icp::matched_plane_t & | pairing, |
const mrpt::poses::CPose3D & | relativePose, | ||
mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> | jacobian = std::nullopt |
||
) |
Definition at line 337 of file errorTerms.cpp.
mrpt::math::CVectorFixedDouble< 3 > mp2p_icp::error_point2line | ( | const mp2p_icp::point_line_pair_t & | pairing, |
const mrpt::poses::CPose3D & | relativePose, | ||
mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> | jacobian = std::nullopt |
||
) |
Definition at line 61 of file errorTerms.cpp.
mrpt::math::CVectorFixedDouble< 3 > mp2p_icp::error_point2plane | ( | const mp2p_icp::point_plane_pair_t & | pairing, |
const mrpt::poses::CPose3D & | relativePose, | ||
mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> | jacobian = std::nullopt |
||
) |
Definition at line 109 of file errorTerms.cpp.
mrpt::math::CVectorFixedDouble< 3 > mp2p_icp::error_point2point | ( | const mrpt::tfest::TMatchingPair & | pairing, |
const mrpt::poses::CPose3D & | relativePose, | ||
mrpt::optional_ref< mrpt::math::CMatrixFixed< double, 3, 12 >> | jacobian = std::nullopt |
||
) |
Definition at line 28 of file errorTerms.cpp.
std::tuple< mrpt::math::TPoint3D, mrpt::math::TPoint3D > mp2p_icp::eval_centroids_robust | ( | const Pairings & | in, |
const OutlierIndices & | outliers | ||
) |
Evaluates the centroids [ct_local, ct_global] for point-to-point correspondences only, taking into account the current guess for outliers
Definition at line 63 of file Pairings.cpp.
std::tuple< mp2p_icp::ICP::Ptr, mp2p_icp::Parameters > mp2p_icp::icp_pipeline_from_yaml | ( | const mrpt::containers::yaml & | config, |
const mrpt::system::VerbosityLevel & | vLevel = mrpt::system::LVL_INFO |
||
) |
Sets up an ICP pipeline from a YAML configuration file.
The basic structure of the YAML configuration block is (see also example YAML files):
Definition at line 18 of file icp_pipeline_from_yaml.cpp.
mrpt::serialization::CArchive & mp2p_icp::operator<< | ( | mrpt::serialization::CArchive & | out, |
const Pairings & | obj | ||
) |
Definition at line 48 of file Pairings.cpp.
mrpt::serialization::CArchive & mp2p_icp::operator<< | ( | mrpt::serialization::CArchive & | out, |
const Results & | obj | ||
) |
Definition at line 36 of file Results.cpp.
mrpt::serialization::CArchive & mp2p_icp::operator>> | ( | mrpt::serialization::CArchive & | in, |
Pairings & | obj | ||
) |
Definition at line 55 of file Pairings.cpp.
mrpt::serialization::CArchive & mp2p_icp::operator>> | ( | mrpt::serialization::CArchive & | in, |
Results & | obj | ||
) |
Definition at line 43 of file Results.cpp.
bool mp2p_icp::optimal_tf_gauss_newton | ( | const Pairings & | in, |
OptimalTF_Result & | result, | ||
const OptimalTF_GN_Parameters & | gnParams = OptimalTF_GN_Parameters() |
||
) |
Gauss-Newton non-linear, iterative optimizer to find the SE(3) optimal transformation between a set of correspondences.
This method requires a linearization point in OptimalTF_GN_Parameters::linearizationPoint
.
Definition at line 28 of file optimal_tf_gauss_newton.cpp.
bool mp2p_icp::optimal_tf_olae | ( | const Pairings & | in, |
const WeightParameters & | wp, | ||
OptimalTF_Result & | result | ||
) |
OLAE algorithm to find the SE(3) optimal transformation given a set of correspondences between points-points, lines-lines, planes-planes. Refer to technical report: Jose-Luis Blanco-Claraco. OLAE-ICP: Robust and fast alignment of geometric features with the optimal linear attitude estimator, Arxiv 2019.
Definition at line 233 of file optimal_tf_olae.cpp.
Pairings mp2p_icp::run_matchers | ( | const matcher_list_t & | matchers, |
const metric_map_t & | pcGlobal, | ||
const metric_map_t & | pcLocal, | ||
const mrpt::poses::CPose3D & | local_wrt_global, | ||
const MatchContext & | mc, | ||
const mrpt::optional_ref< MatchState > & | userProvidedMS = std::nullopt |
||
) |
Runs a sequence of matcher between two metric_map_t objects.
This is normally invoked by mp2p_icp::ICP, but users can use it as a standalone module as needed.
Definition at line 39 of file mp2p_icp/src/Matcher.cpp.
void mp2p_icp::visit_correspondences | ( | const Pairings & | in, |
const WeightParameters & | wp, | ||
const mrpt::math::TPoint3D & | ct_local, | ||
const mrpt::math::TPoint3D & | ct_global, | ||
OutlierIndices & | in_out_outliers, | ||
LAMBDA | lambda_each_pair, | ||
LAMBDA2 | lambda_final, | ||
bool | normalize_relative_point_vectors, | ||
const mrpt::optional_ref< VisitCorrespondencesStats > & | outStats = std::nullopt |
||
) |
Visit each correspondence
Definition at line 31 of file visit_correspondences.h.