MROB
Public Member Functions | List of all members
mrob::Factor2Poses2dOdom Class Reference

#include <factor2Poses2d.hpp>

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

Public Member Functions

 Factor2Poses2dOdom (const Mat31 &observation, std::shared_ptr< Node > &nodeOrigin, std::shared_ptr< Node > &nodeTarget, const Mat3 &obsInf, bool updateNodeTarget=true, Factor::robustFactorType robust_type=Factor::robustFactorType::QUADRATIC)
 
void evaluate_residuals () override
 
void evaluate_jacobians () override
 
- Public Member Functions inherited from mrob::Factor2Poses2d
 Factor2Poses2d (const Mat31 &observation, std::shared_ptr< Node > &nodeOrigin, std::shared_ptr< Node > &nodeTarget, const Mat3 &obsInf, bool updateNodeTarget=false, Factor::robustFactorType robust_type=Factor::robustFactorType::QUADRATIC)
 
void evaluate_chi2 () override
 
MatRefConst get_obs () const override
 
VectRefConst get_residual () const override
 
MatRefConst get_information_matrix () const override
 
MatRefConst get_jacobian ([[maybe_unused]]mrob::factor_id_t id=0) const override
 
void print () const override
 
- 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
 
virtual MatRefConst get_jacobian ([[maybe_unused]] mrob::factor_id_t id=0) const =0
 
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)
 

Additional Inherited Members

- Public Types inherited from mrob::Factor
enum  robustFactorType {
  QUADRATIC = 0, HUBER, CAUCHY, MCCLURE,
  RANSAC
}
 
- Protected Attributes inherited from mrob::Factor2Poses2d
Mat31 obs_
 
Mat31 r_
 
Mat3 W_
 
Mat< 3, 6 > J_
 
- 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_
 

Detailed Description

Factor2Poses2dOdom if a factor expressing the relation between consecutive 2d nodes with odometry observations such that; residual = g (x_origin, observation) - x_dest

Observation = [drot1, dtrans, drot2]

We assume that this factor also updates the value of node destination unless explicitly written

Constructor & Destructor Documentation

◆ Factor2Poses2dOdom()

Factor2Poses2dOdom::Factor2Poses2dOdom ( const Mat31 &  observation,
std::shared_ptr< Node > &  nodeOrigin,
std::shared_ptr< Node > &  nodeTarget,
const Mat3 &  obsInf,
bool  updateNodeTarget = true,
Factor::robustFactorType  robust_type = Factor::robustFactorType::QUADRATIC 
)

Constructor of factor Odom. Conventions are: 1) obs = [drot1, dtrans, drot2] 2) This factor also updates the value of node destination according to obs

Member Function Documentation

◆ evaluate_jacobians()

void Factor2Poses2dOdom::evaluate_jacobians ( )
overridevirtual

Evaluates Jacobians, this also creates a new linearization point. This function MOST likely needs to evaluate residuals first

Reimplemented from mrob::Factor2Poses2d.

◆ evaluate_residuals()

void Factor2Poses2dOdom::evaluate_residuals ( )
overridevirtual

Residuals are evaluated with respect to the current solution

Reimplemented from mrob::Factor2Poses2d.


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