gtsam 4.1.1
gtsam
gtsam::noiseModel::mEstimator::L2WithDeadZone Class Reference

Detailed Description

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

The resulting penalty within the dead zone is always zero, and grows quadratically outside the dead zone. In this sense, the L2WithDeadZone penalty is "robust to inliers", rather than being robust to outliers. This penalty can be used to create barrier functions in a general way.

+ Inheritance diagram for gtsam::noiseModel::mEstimator::L2WithDeadZone:

Public Member Functions

 L2WithDeadZone (double k=1.0, const ReweightScheme reweight=Block)
 
double weight (double distance) const override
 
double loss (double distance) const override
 
void print (const std::string &s) const override
 
bool equals (const Base &expected, double tol=1e-8) const override
 
- Public Member Functions inherited from gtsam::noiseModel::mEstimator::Base
 Base (const ReweightScheme reweight=Block)
 
virtual double loss (double distance) const
 
virtual double weight (double distance) const =0
 
virtual void print (const std::string &s) const =0
 
virtual bool equals (const Base &expected, double tol=1e-8) const =0
 
double sqrtWeight (double distance) const
 
Vector weight (const Vector &error) const
 produce a weight vector according to an error vector and the implemented robust function
 
Vector sqrtWeight (const Vector &error) const
 square root version of the weight function
 
void reweight (Vector &error) const
 reweight block matrices and a vector according to their weight implementation
 
void reweight (std::vector< Matrix > &A, Vector &error) const
 
void reweight (Matrix &A, Vector &error) const
 
void reweight (Matrix &A1, Matrix &A2, Vector &error) const
 
void reweight (Matrix &A1, Matrix &A2, Matrix &A3, Vector &error) const
 

Static Public Member Functions

static shared_ptr Create (double k, const ReweightScheme reweight=Block)
 

Public Types

typedef boost::shared_ptr< L2WithDeadZoneshared_ptr
 
- Public Types inherited from gtsam::noiseModel::mEstimator::Base
enum  ReweightScheme { Scalar , Block }
 
typedef boost::shared_ptr< Baseshared_ptr
 

Protected Attributes

double k_
 
- Protected Attributes inherited from gtsam::noiseModel::mEstimator::Base
ReweightScheme reweight_
 the rows can be weighted independently according to the error or uniformly with the norm of the right hand side
 

Friends

class boost::serialization::access
 Serialization function.
 

Member Function Documentation

◆ equals()

bool gtsam::noiseModel::mEstimator::L2WithDeadZone::equals ( const Base expected,
double  tol = 1e-8 
) const
overridevirtual

◆ loss()

double gtsam::noiseModel::mEstimator::L2WithDeadZone::loss ( double  distance) const
overridevirtual

◆ print()

void gtsam::noiseModel::mEstimator::L2WithDeadZone::print ( const std::string &  s = "") const
overridevirtual

◆ weight()

double gtsam::noiseModel::mEstimator::L2WithDeadZone::weight ( double  distance) const
overridevirtual

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