48 COV(3,3)=COV(2,2); COV(2,2)=0;
49 COV(0,3)=COV(3,0) = COV(0,2); COV(0,2)=COV(2,0)=0;
50 COV(1,3)=COV(3,1) = COV(1,2); COV(1,2)=COV(2,1)=0;
66 COVINV(3,3)=COVINV(2,2); COVINV(2,2)=0;
67 COVINV(0,3)=COVINV(3,0) = COVINV(0,2); COVINV(0,2)=COVINV(2,0)=0;
68 COVINV(1,3)=COVINV(3,1) = COVINV(1,2); COVINV(1,2)=COVINV(2,1)=0;
83 for (it1=
obj->m_particles.begin(),it2=newObj->
m_particles.begin();it1!=
obj->m_particles.end();++it1,++it2)
85 it2->log_w = it1->log_w;
100 for (it1=
obj->begin(),it2=newObj->
begin();it1!=
obj->end();++it1,++it2)
102 it2->log_w = it1->log_w;
103 it2->val.mean.setFromValues( it1->mean.x(),it1->mean.y(),0, it1->mean.phi(),0,0 );
105 it2->val.cov.zeros();
107 it2->val.cov.get_unsafe(0,0) = it1->cov.get_unsafe(0,0);
108 it2->val.cov.get_unsafe(1,1) = it1->cov.get_unsafe(1,1);
109 it2->val.cov.get_unsafe(3,3) = it1->cov.get_unsafe(2,2);
111 it2->val.cov.get_unsafe(0,1) =
112 it2->val.cov.get_unsafe(1,0) = it1->cov.get_unsafe(0,1);
114 it2->val.cov.get_unsafe(0,3) =
115 it2->val.cov.get_unsafe(3,0) = it1->cov.get_unsafe(0,2);
117 it2->val.cov.get_unsafe(1,3) =
118 it2->val.cov.get_unsafe(3,1) = it1->cov.get_unsafe(1,2);
169 x.getAsQuaternion(q_dumm, &dq_dr_sub);
170 J_E2Q_dx.get_unsafe(0,0)=J_E2Q_dx.get_unsafe(1,1)=J_E2Q_dx.get_unsafe(2,2)=1;
171 J_E2Q_dx.insertMatrix(3,3,dq_dr_sub);
180 J_E2Q_du.get_unsafe(0,0)=J_E2Q_du.get_unsafe(1,1)=J_E2Q_du.get_unsafe(2,2)=1;
181 J_E2Q_du.insertMatrix(3,3,dq_dr_sub);
201 J_Q2E.get_unsafe(0,0) = J_Q2E.get_unsafe(1,1) = J_Q2E.get_unsafe(2,2) = 1;
216 dr_dq_sub.multiply(dr_dq_sub_aux,dnorm_dq);
218 J_Q2E.insertMatrix(3,3,dr_dq_sub);
224 df_dx.multiply_ABC(J_Q2E, quat_df_dx, J_E2Q_dx);
225 df_du.multiply_ABC(J_Q2E, quat_df_du, J_E2Q_du);
mrpt::math::CQuaternionDouble & quat()
Read/Write access to the quaternion representing the 3D rotation.
CPose3D mean
The mean value.
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
TModesList::iterator iterator
static void jacobiansPoseComposition(const CPose3D &x, const CPose3D &u, mrpt::math::CMatrixDouble66 &df_dx, mrpt::math::CMatrixDouble66 &df_du)
This static method computes the pose composition Jacobians.
#define THROW_EXCEPTION(msg)
Declares a class that represents a Probability Density function (PDF) of a 3D(6D) pose ...
mrpt::math::CMatrixDouble66 cov_inv
The inverse of the 6x6 covariance matrix.
const Scalar * const_iterator
GLsizei GLsizei GLuint * obj
CParticleList m_particles
The array of particles.
A numeric matrix of compile-time fixed size.
This base provides a set of functions for maths stuff.
#define IMPLEMENTS_VIRTUAL_SERIALIZABLE(class_name, base_class_name, NameSpace)
This must be inserted as implementation of some required members for virtual CSerializable classes: ...
Declares a class that represents a Probability Density function (PDF) of a 2D pose ...
void crossProduct(const CQuaternion &q1, const CQuaternion &q2)
Calculate the "cross" product (or "composed rotation") of two quaternion: this = q1 x q2 After the op...
CMatrixTemplateNumeric< double > CMatrixDouble
Declares a matrix of double numbers (non serializable).
CPose3D mean
The mean value.
Declares a class that represents a Probability Density Function (PDF) over a 2D pose (x...
A class used to store a 3D pose as a translation (x,y,z) and a quaternion (qr,qx,qy,qz).
Declares a class that represents a probability density function (pdf) of a 2D pose (x...
Classes for 2D/3D geometry representation, both of single values and probability density distribution...
mrpt::math::CMatrixDouble66 cov
The 6x6 covariance matrix.
#define CLASS_ID(class_name)
Access to runtime class ID for a defined class name.
A Probability Density function (PDF) of a 2D pose as a Gaussian with a mean and the inverse of the c...
void normalizationJacobian(MATRIXLIKE &J) const
Calculate the 4x4 Jacobian of the normalization operation of this quaternion.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Declares a class that represents a Probability Density function (PDF) of a 3D pose as a Gaussian des...
static void jacobiansPoseComposition(const CPose3DQuat &x, const CPose3DQuat &u, mrpt::math::CMatrixDouble77 &df_dx, mrpt::math::CMatrixDouble77 &df_du, CPose3DQuat *out_x_oplus_u=NULL)
This static method computes the two Jacobians of a pose composition operation $f(x,u)= x u$.
Declares a class that represents a Probability Density function (PDF) of a 3D pose ...
A quaternion, which can represent a 3D rotation as pair , with a real part "r" and a 3D vector ...
void rpy_and_jacobian(T &roll, T &pitch, T &yaw, MATRIXLIKE *out_dr_dq=NULL, bool resize_out_dr_dq_to3x4=true) const
Return the yaw, pitch & roll angles associated to quaternion, and (optionally) the 3x4 Jacobian of th...
CMatrixFixedNumeric< double, 6, 6 > CMatrixDouble66
Declares a class that represents a Probability Density Function (PDF) of a 3D pose (6D actually)...
void getAsQuaternion(mrpt::math::CQuaternionDouble &q, mrpt::math::CMatrixFixedNumeric< double, 4, 3 > *out_dq_dr=NULL) const
Returns the quaternion associated to the rotation of this object (NOTE: XYZ translation is ignored) ...
CListGaussianModes::const_iterator const_iterator
Declares a class that represents a Probability Density function (PDF) of a 3D pose.