16 namespace mrpt {
namespace srba {
44 template <
class MATRIX_H,
class MATRIX_J1,
class MATRIX_J2>
45 inline static void accum_JtJ(MATRIX_H & H,
const MATRIX_J1 & J1,
const MATRIX_J2 &J2,
const size_t obs_idx,
const parameters_t & obs_noise_params)
48 H.noalias() += J1.transpose() * J2;
51 template <
class MATRIX_H>
59 template <
class VECTOR_GRAD,
class MATRIX_J,
class VECTOR_R>
60 inline static void accum_Jtr(VECTOR_GRAD & g,
const MATRIX_J & J,
const VECTOR_R &r,
const size_t obs_idx,
const parameters_t & obs_noise_params)
63 g.noalias() += J.transpose() * r;
66 template <
class VECTOR_GRAD>
78 template <
class OBS_TYPE>
81 static const size_t OBS_DIMS = OBS_TYPE::OBS_DIMS;
102 template <
class MATRIX_H,
class MATRIX_J1,
class MATRIX_J2>
103 inline static void accum_JtJ(MATRIX_H & H,
const MATRIX_J1 & J1,
const MATRIX_J2 &J2,
104 const size_t obs_idx,
const parameters_t & obs_noise_params)
107 H.noalias() += J1.transpose() * obs_noise_params.
lambda * J2;
111 template <
class MATRIX_H>
119 template <
class VECTOR_GRAD,
class MATRIX_J,
class VECTOR_R>
120 inline static void accum_Jtr(VECTOR_GRAD & g,
const MATRIX_J & J,
const VECTOR_R &r,
121 const size_t obs_idx,
const parameters_t & obs_noise_params)
124 g.noalias() += J.transpose() * obs_noise_params.
lambda * r;
127 template <
class VECTOR_GRAD>
static void scale_H(MATRIX_H &H, const parameters_t &obs_noise_params)
Do scaling, if applicable, to H after end of all calls to accum_JtJ()
static void scale_H(MATRIX_H &H, const parameters_t &obs_noise_params)
Do scaling, if applicable, to H after end of all calls to accum_JtJ()
Eigen::Matrix< double, OBS_DIMS, OBS_DIMS > obs_noise_matrix_t
Type for symetric, positive-definite noise matrices.
Internal struct for data that must be stored for each observation.
static void accum_JtJ(MATRIX_H &H, const MATRIX_J1 &J1, const MATRIX_J2 &J2, const size_t obs_idx, const parameters_t &obs_noise_params)
Must execute H+= J1^t * * J2.
Usage: A possible type for RBA_OPTIONS::obs_noise_matrix_t.
static const size_t OBS_DIMS
The dimension of one observation.
#define MRPT_UNUSED_PARAM(a)
Can be used to avoid "not used parameters" warnings from the compiler.
static void accum_Jtr(VECTOR_GRAD &g, const MATRIX_J &J, const VECTOR_R &r, const size_t obs_idx, const parameters_t &obs_noise_params)
Must execute grad+= J^t * * r.
Internal struct for data that must be stored for each observation.
static void scale_Jtr(VECTOR_GRAD &g, const parameters_t &obs_noise_params)
Do scaling, if applicable, to GRAD after end of all calls to accum_Jtr()
Observation noise parameters to be filled by the user in srba.parameters.obs_noise.
static void accum_JtJ(MATRIX_H &H, const MATRIX_J1 &J1, const MATRIX_J2 &J2, const size_t obs_idx, const parameters_t &obs_noise_params)
Must execute H+= J1^t * * J2.
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.
#define ASSERTDEB_(f)
Defines an assertion mechanism - only when compiled in debug.
Usage: A possible type for RBA_OPTIONS::obs_noise_matrix_t.
static void accum_Jtr(VECTOR_GRAD &g, const MATRIX_J &J, const VECTOR_R &r, const size_t obs_idx, const parameters_t &obs_noise_params)
Must execute grad+= J^t * * r.
Observation noise parameters to be filled by the user in srba.parameters.obs_noise.
static void scale_Jtr(VECTOR_GRAD &g, const parameters_t &obs_noise_params)
Do scaling, if applicable, to GRAD after end of all calls to accum_Jtr()
double std_noise_observations
One sigma of the Gaussian noise assumed for every component of observations (Default value: 1) ...
obs_noise_matrix_t lambda
The constant information matrix (inverse of covariance) for all the observations ( in common SLAM not...