g2o
Loading...
Searching...
No Matches
Public Member Functions | Protected Attributes | List of all members
g2o::RobustKernel Class Referenceabstract

base for all robust cost functions More...

#include <robust_kernel.h>

Inheritance diagram for g2o::RobustKernel:
Inheritance graph
[legend]

Public Member Functions

 RobustKernel ()
 
 RobustKernel (double delta)
 
virtual ~RobustKernel ()
 
virtual void robustify (double squaredError, Vector3 &rho) const =0
 
virtual void setDelta (double delta)
 
double delta () const
 

Protected Attributes

double _delta
 

Detailed Description

base for all robust cost functions

Note in all the implementations for the other cost functions the e in the functions corresponds to the squared errors, i.e., the robustification functions gets passed the squared error.

e.g. the robustified least squares function is

chi^2 = sum_{e} rho( e^T Omega e )

Definition at line 48 of file robust_kernel.h.

Constructor & Destructor Documentation

◆ RobustKernel() [1/2]

g2o::RobustKernel::RobustKernel ( )

Definition at line 31 of file robust_kernel.cpp.

31: _delta(1.) {}

◆ RobustKernel() [2/2]

g2o::RobustKernel::RobustKernel ( double  delta)
explicit

Definition at line 33 of file robust_kernel.cpp.

33: _delta(delta) {}
double delta() const

◆ ~RobustKernel()

virtual g2o::RobustKernel::~RobustKernel ( )
inlinevirtual

Definition at line 52 of file robust_kernel.h.

52{}

Member Function Documentation

◆ delta()

double g2o::RobustKernel::delta ( ) const
inline

Definition at line 68 of file robust_kernel.h.

68{ return _delta; }

Referenced by setDelta().

◆ robustify()

virtual void g2o::RobustKernel::robustify ( double  squaredError,
Vector3 rho 
) const
pure virtual

compute the scaling factor for a error: The error is e^T Omega e The output rho is rho[0]: The actual scaled error value rho[1]: First derivative of the scaling function rho[2]: Second derivative of the scaling function

Implemented in g2o::RobustKernelHuber, g2o::RobustKernelPseudoHuber, g2o::RobustKernelCauchy, g2o::RobustKernelGemanMcClure, g2o::RobustKernelWelsch, g2o::RobustKernelFair, g2o::RobustKernelTukey, g2o::RobustKernelSaturated, g2o::RobustKernelDCS, and g2o::RobustKernelScaleDelta.

Referenced by g2o::SparseOptimizer::activeRobustChi2(), g2o::StructureOnlySolver< PointDoF >::calc(), and g2o::RobustKernelScaleDelta::robustify().

◆ setDelta()

void g2o::RobustKernel::setDelta ( double  delta)
virtual

set the window size of the error. A squared error above delta^2 is considered as outlier in the data.

Definition at line 35 of file robust_kernel.cpp.

35{ _delta = delta; }

References _delta, and delta().

Referenced by MainWindow::setRobustKernel().

Member Data Documentation

◆ _delta

double g2o::RobustKernel::_delta
protected

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