OKVIS
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Public Member Functions | Protected Attributes | List of all members
okvis::ceres::ParameterBlock Class Referenceabstract

Base class providing the interface for parameter blocks. More...

#include <ParameterBlock.hpp>

Inheritance diagram for okvis::ceres::ParameterBlock:
okvis::ceres::ParameterBlockSized< Dim, MinDim, T > okvis::ceres::ParameterBlockSized< 4, 3, Eigen::Vector4d > okvis::ceres::ParameterBlockSized< 7, 6, okvis::kinematics::Transformation > okvis::ceres::ParameterBlockSized< 9, 9, SpeedAndBias > okvis::ceres::HomogeneousPointParameterBlock okvis::ceres::PoseParameterBlock okvis::ceres::SpeedAndBiasParameterBlock

Public Member Functions

 ParameterBlock ()
 Default constructor, assumes not fixed and no local parameterisation. More...
 
virtual ~ParameterBlock ()
 Trivial destructor. More...
 
virtual void plus (const double *x0, const double *Delta_Chi, double *x0_plus_Delta) const =0
 Generalization of the addition operation, x_plus_delta = Plus(x, delta) with the condition that Plus(x, 0) = x. More...
 
virtual void plusJacobian (const double *x0, double *jacobian) const =0
 The jacobian of Plus(x, delta) w.r.t delta at delta = 0. More...
 
virtual void minus (const double *x0, const double *x0_plus_Delta, double *Delta_Chi) const =0
 Computes the minimal difference between a variable x and a perturbed variable x_plus_delta. More...
 
virtual void liftJacobian (const double *x0, double *jacobian) const =0
 Computes the Jacobian from minimal space to naively overparameterised space as used by ceres. More...
 
virtual std::string typeInfo () const =0
 Return parameter block type as string. More...
 
Setters
void setId (uint64_t id)
 Set parameter block ID. More...
 
virtual void setParameters (const double *parameters)=0
 Directly set values of this parameter block. More...
 
void setFixed (bool fixed)
 Whether or not this should be optimised at all. More...
 
Getters
virtual double * parameters ()=0
 Get parameter values. More...
 
virtual const double * parameters () const =0
 Get parameter values. More...
 
uint64_t id () const
 Get parameter block ID. More...
 
virtual size_t dimension () const =0
 Get the dimension of the parameter block. More...
 
virtual size_t minimalDimension () const =0
 The dimension of the internal parameterisation (minimal representation). More...
 
bool fixed () const
 Whether or not this is optimised at all. More...
 
Local parameterization
virtual void setLocalParameterizationPtr (const ::ceres::LocalParameterization *localParameterizationPtr)
 Set which local parameterisation object to use. More...
 
virtual const
::ceres::LocalParameterization * 
localParameterizationPtr () const
 The local parameterisation object to use. More...
 

Protected Attributes

uint64_t id_
 ID of the parameter block. More...
 
bool fixed_
 Whether or not this should be optimised at all (ceres::problem::setFixed) More...
 
const
::ceres::LocalParameterization * 
localParameterizationPtr_
 The local parameterisation object to use. More...
 

Detailed Description

Base class providing the interface for parameter blocks.

Constructor & Destructor Documentation

okvis::ceres::ParameterBlock::ParameterBlock ( )
inline

Default constructor, assumes not fixed and no local parameterisation.

virtual okvis::ceres::ParameterBlock::~ParameterBlock ( )
inlinevirtual

Trivial destructor.

Member Function Documentation

virtual size_t okvis::ceres::ParameterBlock::dimension ( ) const
pure virtual
bool okvis::ceres::ParameterBlock::fixed ( ) const
inline

Whether or not this is optimised at all.

uint64_t okvis::ceres::ParameterBlock::id ( ) const
inline

Get parameter block ID.

virtual void okvis::ceres::ParameterBlock::liftJacobian ( const double *  x0,
double *  jacobian 
) const
pure virtual

Computes the Jacobian from minimal space to naively overparameterised space as used by ceres.

Parameters
[in]x0Variable.
[out]jacobianthe Jacobian (dimension minDim x dim).
Returns
True on success.

Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.

virtual const ::ceres::LocalParameterization* okvis::ceres::ParameterBlock::localParameterizationPtr ( ) const
inlinevirtual

The local parameterisation object to use.

virtual size_t okvis::ceres::ParameterBlock::minimalDimension ( ) const
pure virtual
virtual void okvis::ceres::ParameterBlock::minus ( const double *  x0,
const double *  x0_plus_Delta,
double *  Delta_Chi 
) const
pure virtual

Computes the minimal difference between a variable x and a perturbed variable x_plus_delta.

Parameters
[in]x0Variable.
[in]x0_plus_DeltaPerturbed variable.
[out]Delta_ChiMinimal difference.
Returns
True on success.

Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.

virtual double* okvis::ceres::ParameterBlock::parameters ( )
pure virtual
virtual const double* okvis::ceres::ParameterBlock::parameters ( ) const
pure virtual
virtual void okvis::ceres::ParameterBlock::plus ( const double *  x0,
const double *  Delta_Chi,
double *  x0_plus_Delta 
) const
pure virtual

Generalization of the addition operation, x_plus_delta = Plus(x, delta) with the condition that Plus(x, 0) = x.

Parameters
[in]x0Variable.
[in]Delta_ChiPerturbation.
[out]x0_plus_DeltaPerturbed x.

Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.

virtual void okvis::ceres::ParameterBlock::plusJacobian ( const double *  x0,
double *  jacobian 
) const
pure virtual

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

Parameters
[in]x0Variable.
[out]jacobianThe Jacobian.

Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.

void okvis::ceres::ParameterBlock::setFixed ( bool  fixed)
inline

Whether or not this should be optimised at all.

Parameters
[in]fixedTrue if not to be optimised.
void okvis::ceres::ParameterBlock::setId ( uint64_t  id)
inline

Set parameter block ID.

Parameters
[in]idA unique ID.
virtual void okvis::ceres::ParameterBlock::setLocalParameterizationPtr ( const ::ceres::LocalParameterization *  localParameterizationPtr)
inlinevirtual

Set which local parameterisation object to use.

Parameters
localParameterizationPtrThe local parameterisation object to use.
virtual void okvis::ceres::ParameterBlock::setParameters ( const double *  parameters)
pure virtual
virtual std::string okvis::ceres::ParameterBlock::typeInfo ( ) const
pure virtual

Member Data Documentation

bool okvis::ceres::ParameterBlock::fixed_
protected

Whether or not this should be optimised at all (ceres::problem::setFixed)

uint64_t okvis::ceres::ParameterBlock::id_
protected

ID of the parameter block.

const ::ceres::LocalParameterization* okvis::ceres::ParameterBlock::localParameterizationPtr_
protected

The local parameterisation object to use.


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