MROB
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
mrob::EigenFactorPlaneCoordinatesAlign Class Reference

#include <EigenFactorPlaneCoordinatesAlign.hpp>

Inheritance diagram for mrob::EigenFactorPlaneCoordinatesAlign:
Inheritance graph
[legend]
Collaboration diagram for mrob::EigenFactorPlaneCoordinatesAlign:
Collaboration graph
[legend]

Public Member Functions

 EigenFactorPlaneCoordinatesAlign (Factor::robustFactorType robust_type=Factor::robustFactorType::QUADRATIC)
 
void evaluate_residuals () override
 
void evaluate_jacobians () override
 
void evaluate_chi2 () override
 
- Public Member Functions inherited from mrob::EigenFactorPlaneCenter
 EigenFactorPlaneCenter (Factor::robustFactorType robust_type=Factor::robustFactorType::QUADRATIC)
 
- Public Member Functions inherited from mrob::EigenFactorPlane
 EigenFactorPlane (Factor::robustFactorType robust_type=Factor::robustFactorType::QUADRATIC)
 
void print () const
 
MatRefConst get_obs () const
 
VectRefConst get_residual () const
 
MatRefConst get_information_matrix () const
 
MatRefConst get_jacobian ([[maybe_unused]] mrob::factor_id_t id=0) const override
 
MatRefConst get_hessian (mrob::factor_id_t id=0) const override
 
VectRefConst get_state (void) const override
 
void add_point (const Mat31 &p, std::shared_ptr< Node > &node, matData_t &W) override
 
void add_points_array (const MatX &P, std::shared_ptr< Node > &node, mrob::matData_t &W) override
 
void add_points_S_matrix (const Mat4 &S, std::shared_ptr< Node > &node, mrob::matData_t &W) override
 
Mat31 get_mean_point (factor_id_t id)
 
- Public Member Functions inherited from mrob::EigenFactor
 EigenFactor (robustFactorType factor_type=QUADRATIC, uint_t potNumberNodes=5)
 
- Public Member Functions inherited from mrob::Factor
 Factor (uint_t dim, uint_t allNodesDim, robustFactorType factor_type=QUADRATIC, uint_t potNumberNodes=5)
 
matData_t get_chi2 () const
 
factor_id_t get_id () const
 
void set_id (factor_id_t id)
 
uint_t get_dim_obs () const
 
void set_dim_obs (uint_t dim)
 
uint_t get_all_nodes_dim () const
 
void set_all_nodes_dim (uint_t dim)
 
const std::vector< std::shared_ptr< Node > > * get_neighbour_nodes (void) const
 
matData_t evaluate_robust_weight (matData_t u, matData_t params=0.0)
 

Protected Member Functions

Mat31 get_estimate_normal () const
 
Mat31 get_estimate_mean () const
 
void estimate_planes_at_poses ()
 
- Protected Member Functions inherited from mrob::EigenFactorPlaneCenter
void estimate_plane () override
 
- Protected Member Functions inherited from mrob::EigenFactorPlane
void calculate_all_matrices_S ()
 
void calculate_all_matrices_Q ()
 

Protected Attributes

std::deque< matData_t > lambda_1_
 
std::deque< matData_t > lambda_2_
 
std::deque< matData_t > r1_
 
std::deque< matData_t > r2_
 
std::deque< matData_t > r3_
 
std::deque< matData_t > n_points_
 
std::deque< Mat31, Eigen::aligned_allocator< Mat31 > > v1_
 
std::deque< Mat31, Eigen::aligned_allocator< Mat31 > > v2_
 
- Protected Attributes inherited from mrob::EigenFactorPlaneCenter
Mat4 accumulatedCenterQ_
 
Mat41 planeEstimationUnit_
 
Mat4 Tcenter_
 
- Protected Attributes inherited from mrob::EigenFactorPlane
std::deque< factor_id_t > nodeIds_
 
std::unordered_map< factor_id_t, uint_t > reverseNodeIds_
 
std::deque< Mat61, Eigen::aligned_allocator< Mat61 > > J_
 
std::deque< Mat6, Eigen::aligned_allocator< Mat6 > > H_
 
std::deque< Mat4, Eigen::aligned_allocator< Mat4 > > S_
 
std::deque< Mat4, Eigen::aligned_allocator< Mat4 > > Q_
 
Mat4 accumulatedQ_
 
Mat41 planeEstimation_
 
Mat41 planeEstimationCenter_
 
std::deque< std::deque< Mat31, Eigen::aligned_allocator< Mat31 > > > allPlanePoints_
 
std::deque< std::deque< matData_t > > allPointsInformation_
 
uint_t numberPoints_
 
matData_t planeError_
 
Mat4 Tcenter_
 
- Protected Attributes inherited from mrob::Factor
factor_id_t id_
 
std::vector< std::shared_ptr< Node > > neighbourNodes_
 
uint_t dim_
 
uint_t allNodesDim_
 
matData_t chi2_
 
robustFactorType robust_type_
 
matData_t robust_weight_
 

Additional Inherited Members

- Public Types inherited from mrob::Factor
enum  robustFactorType {
  QUADRATIC = 0, HUBER, CAUCHY, MCCLURE,
  RANSAC
}
 

Detailed Description

This is an implementation of the Plane Coordinates Align (BA,multiPC) from Huang RAL2021

It requires the estimation of planes from one side and then the matching of these parameters with the accumulated matrix S. The EF strucutre is very convenient to use here

Constructor & Destructor Documentation

◆ EigenFactorPlaneCoordinatesAlign()

EigenFactorPlaneCoordinatesAlign::EigenFactorPlaneCoordinatesAlign ( Factor::robustFactorType  robust_type = Factor::robustFactorType::QUADRATIC)

Creates an Eigen Factor plane. The minimum requirements are 1 pose, which is not required at this stage, but will be introduced when we add points/Q matrix.

Member Function Documentation

◆ evaluate_chi2()

void EigenFactorPlaneCoordinatesAlign::evaluate_chi2 ( )
overridevirtual

Chi2 is a scaling of the plane error from lambda_min

Reimplemented from mrob::EigenFactorPlaneCenter.

◆ evaluate_jacobians()

void EigenFactorPlaneCoordinatesAlign::evaluate_jacobians ( )
overridevirtual

Evaluates Jacobians, given the residual evaluated It also evaluated the Hessians

Reimplemented from mrob::EigenFactorPlaneCenter.

◆ evaluate_residuals()

void EigenFactorPlaneCoordinatesAlign::evaluate_residuals ( )
overridevirtual

Jacobians are not evaluated, just the residuals. This function is calculating the current plane estimation

Reimplemented from mrob::EigenFactorPlaneCenter.


The documentation for this class was generated from the following files: