g2o
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, Vector3D &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 funtions corresponds to the sqaured 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

g2o::RobustKernel::RobustKernel ( )

Definition at line 31 of file robust_kernel.cpp.

31  :
32  _delta(1.)
33 {
34 }
g2o::RobustKernel::RobustKernel ( double  delta)
explicit

Definition at line 36 of file robust_kernel.cpp.

36  :
37  _delta(delta)
38 {
39 }
double delta() const
Definition: robust_kernel.h:69
virtual g2o::RobustKernel::~RobustKernel ( )
inlinevirtual

Definition at line 53 of file robust_kernel.h.

53 {}

Member Function Documentation

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

Definition at line 69 of file robust_kernel.h.

Referenced by setDelta().

69 { return _delta;}
virtual void g2o::RobustKernel::robustify ( double  squaredError,
Vector3D 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::RobustKernelDCS, g2o::RobustKernelSaturated, g2o::RobustKernelTukey, g2o::RobustKernelFair, g2o::RobustKernelWelsch, g2o::RobustKernelGemanMcClure, g2o::RobustKernelCauchy, g2o::RobustKernelPseudoHuber, g2o::RobustKernelHuber, and g2o::RobustKernelScaleDelta.

Referenced by g2o::SparseOptimizer::activeRobustChi2().

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 41 of file robust_kernel.cpp.

References _delta, and delta().

Referenced by MainWindow::setRobustKernel().

42 {
43  _delta = delta;
44 }
double delta() const
Definition: robust_kernel.h:69

Member Data Documentation

double g2o::RobustKernel::_delta
protected

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