g2o
Public Member Functions | List of all members
g2o::RobustKernelGemanMcClure Class Reference

Geman-McClure cost function. More...

#include <robust_kernel_impl.h>

Inheritance diagram for g2o::RobustKernelGemanMcClure:
Inheritance graph
[legend]
Collaboration diagram for g2o::RobustKernelGemanMcClure:
Collaboration graph
[legend]

Public Member Functions

virtual void robustify (double e2, Vector3D &rho) const
 
- Public Member Functions inherited from g2o::RobustKernel
 RobustKernel ()
 
 RobustKernel (double delta)
 
virtual ~RobustKernel ()
 
virtual void setDelta (double delta)
 
double delta () const
 

Additional Inherited Members

- Protected Attributes inherited from g2o::RobustKernel
double _delta
 

Detailed Description

Geman-McClure cost function.

See http://research.microsoft.com/en-us/um/people/zhang/Papers/ZhangIVC-97-01.pdf and http://www2.informatik.uni-freiburg.de/~agarwal/resources/agarwal-thesis.pdf

e2

e2 + 1

Definition at line 123 of file robust_kernel_impl.h.

Member Function Documentation

void g2o::RobustKernelGemanMcClure::robustify ( double  squaredError,
Vector3D rho 
) const
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

Implements g2o::RobustKernel.

Definition at line 101 of file robust_kernel_impl.cpp.

References g2o::RobustKernel::_delta.

102 {
103  const double aux = _delta / (_delta + e2);
104  rho[0] = e2 * aux;
105  rho[1] = aux * aux;
106  rho[2] = -2. * rho[1] * aux;
107 }

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