odometry
Gaussian.hpp
Go to the documentation of this file.
1 #ifndef ODOMETRY_GAUSSIAN_HPP__
2 #define ODOMETRY_GAUSSIAN_HPP__
3 
4 #include <odometry/Configuration.hpp>
5 #include <base/Pose.hpp>
6 
7 #include <boost/random/linear_congruential.hpp>
8 #include <boost/random/uniform_real.hpp>
9 #include <boost/random/variate_generator.hpp>
10 #include <boost/random/normal_distribution.hpp>
11 
12 namespace odometry
13 {
14 
15 base::Pose2D projectPoseDelta( const Eigen::Quaterniond& orientation, const base::Pose& pose );
16 
22 {
23  typedef base::Matrix6d Matrix6d;
24  typedef base::Vector6d Vector6d;
25 
26 public:
27  EIGEN_MAKE_ALIGNED_OPERATOR_NEW
44  void update( const Vector6d& mean, const Matrix6d& llt );
48  Vector6d sample();
49 
50 public:
51  Matrix6d poseCov, poseLT;
52  Vector6d poseMean;
53 
54 protected:
56 
58  boost::variate_generator<boost::minstd_rand, boost::normal_distribution<> > rand_norm;
59 };
60 
61 }
62 #endif
helper class that represents a pose (position and orientation) and associated gaussian uncertainty...
Definition: Gaussian.hpp:21
Matrix6d poseCov
Definition: Gaussian.hpp:51
Configuration config
Definition: Gaussian.hpp:55
Matrix6d poseLT
Definition: Gaussian.hpp:51
Vector6d poseMean
Definition: Gaussian.hpp:52
Vector6d sample()
get a pose sample based on mean and covariance provided by update
Definition: Gaussian.cpp:59
base::Pose2D projectPoseDelta(const Eigen::Quaterniond &orientation, const base::Pose &pose)
Definition: Gaussian.cpp:32
void update(const Vector6d &mean, const Matrix6d &llt)
set mean and upper triangular matrix of covariance
Definition: Gaussian.cpp:52
Eigen::Matrix< double, 6, 1 > Vector6d
Definition: ContactOdometry.hpp:15
Definition: Configuration.hpp:19
boost::variate_generator< boost::minstd_rand, boost::normal_distribution<> > rand_norm
Definition: Gaussian.hpp:58
Eigen::Matrix< double, 6, 6 > Matrix6d
Definition: ContactOdometry.hpp:14
EIGEN_MAKE_ALIGNED_OPERATOR_NEW GaussianSamplingPose3D(const Configuration &config)
Definition: Gaussian.cpp:43