39 #ifndef INCLUDE_OKVIS_CERES_SPEEDANDBIASPARAMETERBLOCK_HPP_
40 #define INCLUDE_OKVIS_CERES_SPEEDANDBIASPARAMETERBLOCK_HPP_
108 virtual void plus(
const double* x0,
const double* Delta_Chi,
109 double* x0_plus_Delta)
const {
110 Eigen::Map<const Eigen::Matrix<double, 9, 1> > x0_(x0);
111 Eigen::Map<const Eigen::Matrix<double, 9, 1> > Delta_Chi_(Delta_Chi);
112 Eigen::Map<Eigen::Matrix<double, 9, 1> > x0_plus_Delta_(x0_plus_Delta);
113 x0_plus_Delta_ = x0_ + Delta_Chi_;
120 double* jacobian)
const {
121 Eigen::Map<Eigen::Matrix<double, 9, 9, Eigen::RowMajor> > identity(
123 identity.setIdentity();
132 virtual void minus(
const double* x0,
const double* x0_plus_Delta,
133 double* Delta_Chi)
const {
134 Eigen::Map<const Eigen::Matrix<double, 9, 1> > x0_(x0);
135 Eigen::Map<Eigen::Matrix<double, 9, 1> > Delta_Chi_(Delta_Chi);
136 Eigen::Map<const Eigen::Matrix<double, 9, 1> > x0_plus_Delta_(
138 Delta_Chi_ = x0_plus_Delta_ - x0_;
146 double* jacobian)
const {
147 Eigen::Map<Eigen::Matrix<double, 9, 9, Eigen::RowMajor> > identity(
149 identity.setIdentity();
154 return "SpeedAndBiasParameterBlock";
virtual std::string typeInfo() const
Return parameter block type as string.
Definition: SpeedAndBiasParameterBlock.hpp:153
okvis::Time timestamp_
Time of this state.
Definition: SpeedAndBiasParameterBlock.hpp:158
okvis::Time timestamp() const
Get the time.
Definition: SpeedAndBiasParameterBlock.hpp:96
virtual void liftJacobian(const double *, double *jacobian) const
Computes the Jacobian from minimal space to naively overparameterised space as used by ceres...
Definition: SpeedAndBiasParameterBlock.hpp:145
Header file for the TimeBase, Time and WallTime class.
virtual ~SpeedAndBiasParameterBlock()
Trivial destructor.
Definition: SpeedAndBiasParameterBlock.cpp:53
virtual void plus(const double *x0, const double *Delta_Chi, double *x0_plus_Delta) const
Generalization of the addition operation, x_plus_delta = Plus(x, delta) with the condition that Plus(...
Definition: SpeedAndBiasParameterBlock.hpp:108
Header file for the ParameterBlockSized class.
Base class providing the interface for parameter blocks.
Definition: ParameterBlockSized.hpp:59
Eigen::Matrix< double, 9, 1 > SpeedAndBias
Definition: SpeedAndBiasParameterBlock.hpp:52
void setTimestamp(const okvis::Time ×tamp)
Set the time.
Definition: SpeedAndBiasParameterBlock.hpp:85
virtual void minus(const double *x0, const double *x0_plus_Delta, double *Delta_Chi) const
Computes the minimal difference between a variable x and a perturbed variable x_plus_delta.
Definition: SpeedAndBiasParameterBlock.hpp:132
virtual void setEstimate(const SpeedAndBias &speedAndBias)
Set estimate of this parameter block.
Definition: SpeedAndBiasParameterBlock.cpp:68
virtual void plusJacobian(const double *, double *jacobian) const
The jacobian of Plus(x, delta) w.r.t delta at delta = 0.
Definition: SpeedAndBiasParameterBlock.hpp:119
Time representation. May either represent wall clock time or ROS clock time.
Definition: Time.hpp:187
virtual SpeedAndBias estimate() const
Get estimate.
Definition: SpeedAndBiasParameterBlock.cpp:75
ParameterBlockSized< 9, 9, SpeedAndBias > base_t
The base class type.
Definition: SpeedAndBiasParameterBlock.hpp:60
SpeedAndBias estimate_t
The estimate type (9D vector).
Definition: SpeedAndBiasParameterBlock.hpp:63
SpeedAndBiasParameterBlock()
Default constructor (assumes not fixed).
Definition: SpeedAndBiasParameterBlock.cpp:47
Wraps the parameter block for a speed / IMU biases estimate.
Definition: SpeedAndBiasParameterBlock.hpp:55