Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Member Functions | Private Attributes
jafar::rtslam::Perturbation Class Reference

Base class for all Gaussian perturbation vectors defined in the module rtslam. More...


Detailed Description

Base class for all Gaussian perturbation vectors defined in the module rtslam.

Author:
jsola

The Perturbation class is mainly a Gaussian. It represents discrete-time perturbation vectors.

In case the perturbation and perturbation values want to be specified in continuous-time, this class incorporates private members for storing the continuous values, and also methods for the conversion to discrete-time.

Definition at line 40 of file perturbation.hpp.

#include <perturbation.hpp>

Inheritance diagram for jafar::rtslam::Perturbation:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 Perturbation (const size_t _size)
virtual void resize (size_t _size, bool preserve=true)
 Perturbation (const vec &p, const sym_mat &P)
 Perturbation (const vec &p, const vec &_std)
 Perturbation (const vec &p, const sym_mat &P, double dt)
 Continuous-time specified constructor.
 Perturbation (const vec &p, const vec &_std, double dt)
 Continuous-time specified constructor.
 Perturbation (const Gaussian &p)
void clear ()
 Clear data, keep sizes and ranges.
template<class SymMat >
void set_P_continuous (SymMat &_P_ct)
template<class V >
void set_x_continuous (V &_x_ct)
void set_std_continuous (const vec &_std)
 Set continuous-time covariance from standard deviation specification.
void set_continuous (const vec &_x, const vec &_std)
 Set continuous-time perturbation.
void set_continuous (const vec &_x, const sym_mat &_P)
 Set continuous-time perturbation.
void set_deterministic (jblas::ind_array ia)
void set_deterministic (ublas::range ia)
void set_P_from_continuous (double _dt)
 Discrete perturbation from continuous specification.
void set_P_from_continuous (sym_mat &_P_ct, double _dt)
 Discrete perturbation from continuous specification.
void set_from_continuous (double _dt)
 Discrete perturbation from continuous specifications.
void set_from_continuous (Gaussian &Pct, double _dt)
 Discrete perturbation from continuous specifications.

Private Attributes

vec x_ct
 continuous-time perturbation vector
sym_mat P_ct
 continuous-time covariances matrix
jblas::ind_array ia_deterministic

Constructor & Destructor Documentation

jafar::rtslam::Perturbation::Perturbation ( const vec p,
const sym_mat P,
double  dt 
)

Continuous-time specified constructor.

Parameters:
pthe perturbation mean in continuous time.
Pthe perturbation covariance in continuous time
dtthe sampling time
jafar::rtslam::Perturbation::Perturbation ( const vec p,
const vec _std,
double  dt 
)

Continuous-time specified constructor.

Parameters:
pthe perturbation mean in continuous time.
Pthe perturbation std. deviation in continuous time
dtthe sampling time

Member Function Documentation

void jafar::rtslam::Perturbation::clear ( void  ) [inline, virtual]

Clear data, keep sizes and ranges.

Clears the data of x_ and P_.

Reimplemented from jafar::rtslam::Gaussian.

Definition at line 95 of file perturbation.hpp.

References jafar::image::clear, and jafar::rtslam::Gaussian::clear().

void jafar::rtslam::Perturbation::set_from_continuous ( double  _dt) [inline]

Discrete perturbation from continuous specifications.

  • The deterministic values integrate with time normally, linearly with dt:
    • x = _x_ct * _dt
  • The white, Gaussian random values integrate with the square root of dt. Their variance integrates linearly with dt:
    • x = _x_ct * sqrt(_dt)
    • P = _P_ct * _dt

This function takes mean and covariances from the internal variables of the class (which are often constant).

Parameters:
_dtthe time interval to integrate.

Definition at line 182 of file perturbation.hpp.

References JFR_ASSERT.

void jafar::rtslam::Perturbation::set_from_continuous ( Gaussian Pct,
double  _dt 
) [inline]

Discrete perturbation from continuous specifications.

  • The variance integrates linearly with dt:
    • P = Pct.P * _dt
  • Therefore, the mean values integrate with time linearly with the square root of dt:
    • x = Pct.x * sqrt(_dt)
Parameters:
Pcta continuous-time Gaussian process noise.
_dtthe time interval to integrate.

Definition at line 201 of file perturbation.hpp.

References JFR_ASSERT.

Discrete perturbation from continuous specification.

  • The white, Gaussian random values integrate with the square root of dt. Their variance integrates linearly with dt:
    • P = _P_ct * _dt

This function takes covariances from the internal variables of the class (which is often constant).

Parameters:
_dtthe time interval to integrate.

Definition at line 151 of file perturbation.hpp.

References JFR_ASSERT.

void jafar::rtslam::Perturbation::set_P_from_continuous ( sym_mat _P_ct,
double  _dt 
) [inline]

Discrete perturbation from continuous specification.

  • The white, Gaussian random values integrate with the square root of dt. Their variance integrates linearly with dt:
    • P = _P_ct * _dt
Parameters:
_P_ctcontinuous-time perturbation covariances matrix.
_dtthe time interval to integrate.

Definition at line 165 of file perturbation.hpp.

References JFR_ASSERT.

void jafar::rtslam::Perturbation::set_std_continuous ( const vec _std) [inline]

Set continuous-time covariance from standard deviation specification.

Parameters:
_stda vector with the standard deviations.

Definition at line 116 of file perturbation.hpp.

References JFR_ASSERT.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:45 for Jafar by doxygen 1.7.6.1
LAAS-CNRS