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

#include <EigenFactorPoint.hpp>

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

Public Member Functions

 EigenFactorPoint (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::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 Attributes

std::deque< Mat31, Eigen::aligned_allocator< Mat31 > > r_
 
std::deque< Mat31, Eigen::aligned_allocator< Mat31 > > transformed_mu_
 
SE3 T_ini_inv_
 
- 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
}
 
- Protected Member Functions inherited from mrob::EigenFactorPlane
virtual void estimate_plane ()
 
void calculate_all_matrices_S ()
 
void calculate_all_matrices_Q ()
 

Detailed Description

Eigen factor Point is a vertex that complies with the Fgraph standards and inherits from base EigenFactor.hpp and EigenFactorPlane

This particualr examples solve the point to point aligments between the centroids of the plane in the current frame vs the overall centroid of the plane:

r = W_I*(T0^{-1}*T_i mu_i - mu(Q_0)), where

This leads to a weighted LSQ

The Chi2 is of a different kind than the EFplane, since this is point2point

Constructor & Destructor Documentation

◆ EigenFactorPoint()

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

Creates an Eigen Factor point.

Member Function Documentation

◆ evaluate_chi2()

void EigenFactorPoint::evaluate_chi2 ( )
overridevirtual

Chi2 is a scaling of the plane error

Reimplemented from mrob::EigenFactorPlane.

◆ evaluate_jacobians()

void EigenFactorPoint::evaluate_jacobians ( )
overridevirtual

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

Reimplemented from mrob::EigenFactorPlane.

◆ evaluate_residuals()

void EigenFactorPoint::evaluate_residuals ( )
overridevirtual

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

Reimplemented from mrob::EigenFactorPlane.


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