OKVIS
|
Base class providing the interface for parameter blocks. More...
#include <ParameterBlock.hpp>
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... | |
Base class providing the interface for parameter blocks.
|
inline |
Default constructor, assumes not fixed and no local parameterisation.
|
inlinevirtual |
Trivial destructor.
|
pure virtual |
Get the dimension of the parameter block.
Implemented in okvis::ceres::ParameterBlockSized< Dim, MinDim, T >, okvis::ceres::ParameterBlockSized< 9, 9, SpeedAndBias >, okvis::ceres::ParameterBlockSized< 7, 6, okvis::kinematics::Transformation >, and okvis::ceres::ParameterBlockSized< 4, 3, Eigen::Vector4d >.
|
inline |
Whether or not this is optimised at all.
|
inline |
Get parameter block ID.
|
pure virtual |
Computes the Jacobian from minimal space to naively overparameterised space as used by ceres.
[in] | x0 | Variable. |
[out] | jacobian | the Jacobian (dimension minDim x dim). |
Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.
|
inlinevirtual |
The local parameterisation object to use.
|
pure virtual |
The dimension of the internal parameterisation (minimal representation).
Implemented in okvis::ceres::ParameterBlockSized< Dim, MinDim, T >, okvis::ceres::ParameterBlockSized< 9, 9, SpeedAndBias >, okvis::ceres::ParameterBlockSized< 7, 6, okvis::kinematics::Transformation >, and okvis::ceres::ParameterBlockSized< 4, 3, Eigen::Vector4d >.
|
pure virtual |
Computes the minimal difference between a variable x and a perturbed variable x_plus_delta.
[in] | x0 | Variable. |
[in] | x0_plus_Delta | Perturbed variable. |
[out] | Delta_Chi | Minimal difference. |
Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Generalization of the addition operation, x_plus_delta = Plus(x, delta) with the condition that Plus(x, 0) = x.
[in] | x0 | Variable. |
[in] | Delta_Chi | Perturbation. |
[out] | x0_plus_Delta | Perturbed x. |
Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.
|
pure virtual |
The jacobian of Plus(x, delta) w.r.t delta at delta = 0.
[in] | x0 | Variable. |
[out] | jacobian | The Jacobian. |
Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.
|
inline |
Whether or not this should be optimised at all.
[in] | fixed | True if not to be optimised. |
|
inline |
Set parameter block ID.
[in] | id | A unique ID. |
|
inlinevirtual |
Set which local parameterisation object to use.
localParameterizationPtr | The local parameterisation object to use. |
|
pure virtual |
Directly set values of this parameter block.
[in] | parameters | Pointer to parameters to be copied into this. |
Implemented in okvis::ceres::ParameterBlockSized< Dim, MinDim, T >, okvis::ceres::ParameterBlockSized< 9, 9, SpeedAndBias >, okvis::ceres::ParameterBlockSized< 7, 6, okvis::kinematics::Transformation >, and okvis::ceres::ParameterBlockSized< 4, 3, Eigen::Vector4d >.
|
pure virtual |
Return parameter block type as string.
Implemented in okvis::ceres::HomogeneousPointParameterBlock, okvis::ceres::SpeedAndBiasParameterBlock, and okvis::ceres::PoseParameterBlock.
|
protected |
Whether or not this should be optimised at all (ceres::problem::setFixed)
|
protected |
ID of the parameter block.
|
protected |
The local parameterisation object to use.