gtsam  4.0.0 gtsam
gtsam::noiseModel::mEstimator Namespace Reference

The mEstimator name space contains all robust error functions. More...

## Classes

class  Base

class  Cauchy
Cauchy implements the "Cauchy" robust error model (Lee2013IROS). More...

class  DCS
DCS implements the Dynamic Covariance Scaling robust error model from the paper Robust Map Optimization (Agarwal13icra). More...

class  Fair
Fair implements the "Fair" robust error model (Zhang97ivc) More...

class  GemanMcClure
GemanMcClure implements the "Geman-McClure" robust error model (Zhang97ivc). More...

class  Huber
Huber implements the "Huber" robust error model (Zhang97ivc) More...

L2WithDeadZone implements a standard L2 penalty, but with a dead zone of width 2*k, centered at the origin. More...

class  Null
Null class is not robust so is a Gaussian ? More...

class  Tukey
Tukey implements the "Tukey" robust error model (Zhang97ivc) More...

class  Welsh
Welsh implements the "Welsh" robust error model (Zhang97ivc) More...

## Detailed Description

The mEstimator name space contains all robust error functions.

It mirrors the exposition at http://research.microsoft.com/en-us/um/people/zhang/INRIA/Publis/Tutorial-Estim/node24.html which talks about minimizing \sum \rho(r_i), where \rho is a residual function of choice.

To illustrate, let's consider the least-squares (L2), L1, and Huber estimators as examples:

Name Symbol Least-Squares L1-norm Huber Residual \rho(x) 0.5*x^2 |x| 0.5*x^2 if x<k, 0.5*k^2 + k|x-k| otherwise Derivative \phi(x) x sgn(x) x if x<k, k sgn(x) otherwise Weight w(x)=\phi(x)/x 1 1/|x| 1 if x<k, k/|x| otherwise

With these definitions, D(\rho(x), p) = \phi(x) D(x,p) = w(x) x D(x,p) = w(x) D(L2(x), p), and hence we can solve the equivalent weighted least squares problem \sum w(r_i) \rho(r_i)

Each M-estimator in the mEstimator name space simply implements the above functions.