Class LocalParameterization

Inheritance Relationships

Base Type

  • public ceres::LocalParameterization

Derived Types

  • public fuse_core::AutoDiffLocalParameterization< PlusFunctor, MinusFunctor, kGlobalSize, kLocalSize > (Template Class AutoDiffLocalParameterization)

  • public fuse_variables::Orientation2DLocalParameterization

  • public fuse_variables::Orientation3DLocalParameterization

Class Documentation

class LocalParameterization : public ceres::LocalParameterization

The LocalParameterization interface definition.

This class extends the Ceres LocalParameterization class, adding the additional requirement of a Minus() method, the conceptual inverse of the already required Plus() method.

If Plus(x1, delta) -> x2, then Minus(x1, x2) -> delta

See the Ceres documentation for more details. http://ceres- solver.org/nnls_modeling.html::localparameterization

Subclassed by fuse_core::AutoDiffLocalParameterization< PlusFunctor, MinusFunctor, kGlobalSize, kLocalSize >, fuse_variables::Orientation2DLocalParameterization, fuse_variables::Orientation3DLocalParameterization

Public Functions

virtual ~LocalParameterization() = default

Destroy the Local Parameterization object.

virtual int GlobalSize() const = 0

Size of x.

Returns:

int Size of x.

virtual int LocalSize() const = 0

Size of delta.

Returns:

int Size of delta

virtual bool Plus(const double *x, const double *delta, double *x_plus_delta) const = 0

Generalization of the addition operation,.

x_plus_delta = Plus(x, delta)

with the condition that Plus(x, 0) = x.

Parameters:
virtual bool ComputeJacobian(const double *x, double *jacobian) const = 0

The jacobian of Plus(x, delta) w.r.t delta at delta = 0.

Parameters:
Returns:

virtual bool Minus(const double *x, const double *y, double *y_minus_x) const = 0

Generalization of the subtraction operation.

Minus(x, y) -> y_minus_x

with the conditions that:

  • Minus(x, x) -> 0

  • if Plus(x, delta) -> y, then Minus(x, y) -> delta

Parameters:
  • x[in] The value of the first variable, of size GlobalSize()

  • y[in] The value of the second variable, of size GlobalSize()

  • y_minus_x[out] The difference between the second variable and the first, of size LocalSize()

Returns:

True if successful, false otherwise

virtual bool ComputeMinusJacobian(const double *x, double *jacobian) const = 0

The jacobian of Minus(x, y) w.r.t y at x == y.

Parameters:
  • x[in] The value used to evaluate the Jacobian, of size GlobalSize()

  • jacobian[out] The first-order derivative in row-major order, of size LocalSize() x GlobalSize()

Returns:

True if successful, false otherwise

Friends

friend class boost::serialization::access