g2o
Loading...
Searching...
No Matches
g2o::RobustKernelScaleDelta Class Reference

scale a robust kernel to another delta (window size) More...

#include <robust_kernel_impl.h>

Inheritance diagram for g2o::RobustKernelScaleDelta:
Collaboration diagram for g2o::RobustKernelScaleDelta:

Public Member Functions

 RobustKernelScaleDelta (const RobustKernelPtr &kernel, double delta=1.)
 RobustKernelScaleDelta (double delta=1.)
const RobustKernelPtr kernel () const
 return the underlying kernel
void setKernel (const RobustKernelPtr &ptr)
 use another kernel for the underlying operation
void robustify (double error, Vector3 &rho) const
Public Member Functions inherited from g2o::RobustKernel
 RobustKernel ()
 RobustKernel (double delta)
virtual ~RobustKernel ()
virtual void setDelta (double delta)
double delta () const

Protected Attributes

RobustKernelPtr _kernel
Protected Attributes inherited from g2o::RobustKernel
double _delta

Detailed Description

scale a robust kernel to another delta (window size)

Scales a robust kernel to another window size. Useful, in case if one implements a kernel which only is designed for a fixed window size.

Definition at line 42 of file robust_kernel_impl.h.

Constructor & Destructor Documentation

◆ RobustKernelScaleDelta() [1/2]

g2o::RobustKernelScaleDelta::RobustKernelScaleDelta ( const RobustKernelPtr & kernel,
double delta = 1. )
explicit

construct the scaled kernel ontop of another kernel which might be shared across several scaled kernels

Definition at line 35 of file robust_kernel_impl.cpp.

const RobustKernelPtr kernel() const
return the underlying kernel
double delta() const

References _kernel, g2o::RobustKernel::delta(), kernel(), and g2o::RobustKernel::RobustKernel().

◆ RobustKernelScaleDelta() [2/2]

g2o::RobustKernelScaleDelta::RobustKernelScaleDelta ( double delta = 1.)
explicit

Member Function Documentation

◆ kernel()

const RobustKernelPtr g2o::RobustKernelScaleDelta::kernel ( ) const
inline

return the underlying kernel

Definition at line 53 of file robust_kernel_impl.h.

53{ return _kernel; }

References _kernel.

Referenced by RobustKernelScaleDelta().

◆ robustify()

void g2o::RobustKernelScaleDelta::robustify ( double squaredError,
Vector3 & 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 46 of file robust_kernel_impl.cpp.

46 {
47 if (_kernel.get()) {
48 double dsqr = _delta * _delta;
49 double dsqrReci = 1. / dsqr;
50 _kernel->robustify(dsqrReci * error, rho);
51 rho[0] *= dsqr;
52 rho[2] *= dsqrReci;
53 } else { // no robustification
54 rho[0] = error;
55 rho[1] = 1.;
56 rho[2] = 0.;
57 }
58}

References g2o::RobustKernel::_delta, and _kernel.

◆ setKernel()

void g2o::RobustKernelScaleDelta::setKernel ( const RobustKernelPtr & ptr)

use another kernel for the underlying operation

Definition at line 42 of file robust_kernel_impl.cpp.

42 {
43 _kernel = ptr;
44}

References _kernel.

Member Data Documentation

◆ _kernel

RobustKernelPtr g2o::RobustKernelScaleDelta::_kernel
protected

Definition at line 60 of file robust_kernel_impl.h.

Referenced by kernel(), robustify(), RobustKernelScaleDelta(), and setKernel().


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