struct mp2p_icp::Pairings¶
Overview¶
Common pairing input data for OLAE, Horn’s, and other solvers. More…
#include <Pairings.h> struct Pairings { // fields mrpt::tfest::TMatchingPairList paired_pt2pt; MatchedPointLineList paired_pt2ln; MatchedPointPlaneList paired_pt2pl; MatchedLineList paired_ln2ln; MatchedPlaneList paired_pl2pl; std::vector<std::pair<std::size_t, double>> point_weights; // methods virtual bool empty() const; virtual size_t size() const; virtual std::string contents_summary() const; virtual void push_back(const Pairings& o); virtual void push_back(Pairings&& o); virtual void serializeTo(mrpt::serialization::CArchive& out) const; virtual void serializeFrom(mrpt::serialization::CArchive& in); virtual auto get_visualization(const mrpt::poses::CPose3D& localWrtGlobal, const pairings_render_params_t& p = pairings_render_params_t()) const; virtual void get_visualization_pt2pt( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2pt_t& p ) const; virtual void get_visualization_pt2pl( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2pl_t& p ) const; virtual void get_visualization_pt2ln( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2ln_t& p ) const; };
Detailed Documentation¶
Common pairing input data for OLAE, Horn’s, and other solvers. Planes and lines must have unit director and normal vectors, respectively.
Pairings are between a “global” (or “this”) and a “local” (or “other”) pointcloud, while we are searching for the relative pose of “local” wrt “global”, such that “relative_pose oplus localPoint = globalPoint”.
Fields¶
mrpt::tfest::TMatchingPairList paired_pt2pt
We reuse MRPT struct to allow using their matching functions. on MRPT naming convention: “this”=global; “other”=local.
std::vector<std::pair<std::size_t, double>> point_weights
Individual weights for paired_pt2pt: each entry specifies how many points have the given (mapped second value) weight, in the same order as stored in paired_pt2pt. If empty, all points will have equal weights.
Methods¶
virtual size_t size() const
Overall number of element-to-element pairings (points, lines, planes)
virtual std::string contents_summary() const
Returns a string summarizing all the paired elements
virtual void push_back(const Pairings& o)
Copy and append pairings from another container.
virtual void push_back(Pairings&& o)
Move pairings from another container.
virtual auto get_visualization( const mrpt::poses::CPose3D& localWrtGlobal, const pairings_render_params_t& p = pairings_render_params_t() ) const
Gets a renderizable view of all geometric entities.
See render_params_t for options to show/hide the different geometric entities and point layers.
If deriving user classes inheriting from metric_map_t, remember to reimplement this method and call this base class method to render common elements.
virtual void get_visualization_pt2pt( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2pt_t& p ) const
Used inside get_visualization(), renders pt-to-pt pairings only.
virtual void get_visualization_pt2pl( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2pl_t& p ) const
Used inside get_visualization(), renders pt-to-pl pairings only.
virtual void get_visualization_pt2ln( mrpt::opengl::CSetOfObjects& o, const mrpt::poses::CPose3D& localWrtGlobal, const render_params_pairings_pt2ln_t& p ) const
Used inside get_visualization(), renders pt-to-ln pairings only.