g2o
Loading...
Searching...
No Matches
g2o::RobustKernel Class Referenceabstract

base for all robust cost functions More...

#include <robust_kernel.h>

Inheritance diagram for g2o::RobustKernel:

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 ( )

◆ RobustKernel() [2/2]

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

Definition at line 33 of file robust_kernel.cpp.

References _delta, and delta().

◆ ~RobustKernel()

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

Definition at line 52 of file robust_kernel.h.

Member Function Documentation

◆ delta()

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

◆ 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::RobustKernelCauchy, g2o::RobustKernelDCS, g2o::RobustKernelFair, g2o::RobustKernelGemanMcClure, g2o::RobustKernelHuber, g2o::RobustKernelPseudoHuber, g2o::RobustKernelSaturated, g2o::RobustKernelScaleDelta, g2o::RobustKernelTukey, and g2o::RobustKernelWelsch.

References delta(), and setDelta().

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

◆ 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.

References _delta, and delta().

Referenced by robustify(), and MainWindow::setRobustKernel().

Member Data Documentation

◆ _delta


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