MRPT  1.9.9
CActionRobotMovement3D.h
Go to the documentation of this file.
1 /* +------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2018, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +------------------------------------------------------------------------+ */
9 #ifndef CActionRobotMovement3D_H
10 #define CActionRobotMovement3D_H
11 
12 #include <mrpt/obs/CAction.h>
14 
15 namespace mrpt::obs
16 {
17 /** Represents a probabilistic 3D (6D) movement.
18 * Currently this can be determined from visual odometry for full 6D, or from
19 * wheel encoders for 2D movements only.
20 * Here implemented the motion model from the next article: A. L. Ballardini, A.
21 * Furlan, A. Galbiati, M. Matteucci, F. Sacchi, D. G. Sorrenti An effective 6DoF
22 * motion model for 3D-6DoF Monte Carlo Localization 4th Workshop on Planning,
23 * Perception and Navigation for Intelligent Vehicles, IROS, 2012
24 * \ingroup mrpt_obs_grp
25 * \sa CAction
26 */
28 {
30 
31  public:
32  /** A list of posible ways for estimating the content of a
33  * CActionRobotMovement3D object.
34  */
36  {
39  };
40 
42 
43  /** The 3D pose change probabilistic estimation. It can be converted to/from
44  * these alternative classes:
45  * - mrpt::poses::CPose3DQuatPDFGaussian
46  */
48 
49  /** This is the raw odometry reading, and only is used when
50  * "estimationMethod" is "TEstimationMethod::emOdometry" */
52  /** This fields indicates the way this estimation was obtained.
53  */
55 
57  {
60  };
61 
62  /** The parameter to be passed to "computeFromOdometry". */
64  {
65  /** Default values loader. */
67 
68  /** The model to be used. */
70 
72  {
73  /** Options for the 6DOFModel model which generates a
74  * CPosePDFParticles object an then create from that
75  * CPosePDFGaussian object in poseChange */
77  float a1, a2, a3, a4, a5, a6, a7, a8, a9, a10;
78  /** An additional noise added to the 6DOF model (std. dev. in meters
79  * and radians). */
81  } mm6DOFModel;
82 
84 
85  /** Computes the PDF of the pose increment from an odometry reading and
86  * according to the given motion model (speed and encoder ticks information
87  * is not modified).
88  * According to the parameters in the passed struct, it will be called one
89  * the private sampling functions (see "see also" next).
90  * \sa computeFromOdometry_model6DOF
91  */
93  const mrpt::poses::CPose3D& odometryIncrement,
94  const TMotionModelOptions& options);
95  /** Computes the PDF of the pose increment from an odometry reading, using
96  * the motion model for 6 DOF.
97  * The source: A. L. Ballardini, A. Furlan, A. Galbiati, M. Matteucci, F.
98  * Sacchi, D. G. Sorrenti An effective 6DoF motion model for 3D-6DoF Monte
99  * Carlo Localization 4th Workshop on Planning, Perception and Navigation
100  * for Intelligent Vehicles, IROS, 2012
101  * \sa computeFromOdometry
102  */
104  const mrpt::poses::CPose3D& odometryIncrement,
105  const TMotionModelOptions& o);
106 
107  /** Each "true" entry means that the corresponding "velocities" element
108  * contains valid data - There are 6 entries.
109  */
110  std::vector<bool> hasVelocities;
111 
112  /** The velocity of the robot in each of 6D:
113  * v_x,v_y,v_z,v_yaw,v_pitch,v_roll (linear in meters/sec and angular in
114  * rad/sec).
115  */
117 
118 }; // End of class def.
119 
120 }
121 #endif
122 
123 
struct mrpt::obs::CActionRobotMovement3D::TMotionModelOptions::TOptions_6DOFModel mm6DOFModel
mrpt::poses::CPose3DPDFGaussian poseChange
The 3D pose change probabilistic estimation.
std::vector< bool > hasVelocities
Each "true" entry means that the corresponding "velocities" element contains valid data - There are 6...
void computeFromOdometry_model6DOF(const mrpt::poses::CPose3D &odometryIncrement, const TMotionModelOptions &o)
Computes the PDF of the pose increment from an odometry reading, using the motion model for 6 DOF...
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction...
Definition: eigen_frwds.h:44
struct mrpt::obs::CActionRobotMovement3D::TMotionModelOptions motionModelConfiguration
float additional_std_XYZ
An additional noise added to the 6DOF model (std.
void computeFromOdometry(const mrpt::poses::CPose3D &odometryIncrement, const TMotionModelOptions &options)
Computes the PDF of the pose increment from an odometry reading and according to the given motion mod...
TEstimationMethod estimationMethod
This fields indicates the way this estimation was obtained.
The parameter to be passed to "computeFromOdometry".
Represents a probabilistic 3D (6D) movement.
uint32_t nParticlesCount
Options for the 6DOFModel model which generates a CPosePDFParticles object an then create from that C...
TEstimationMethod
A list of posible ways for estimating the content of a CActionRobotMovement3D object.
This namespace contains representation of robot actions and observations.
Declares a class for storing a robot action.
Definition: CAction.h:27
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
TDrawSampleMotionModel modelSelection
The model to be used.
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:86
Declares a class that represents a Probability Density function (PDF) of a 3D pose ...
mrpt::math::CVectorFloat velocities
The velocity of the robot in each of 6D: v_x,v_y,v_z,v_yaw,v_pitch,v_roll (linear in meters/sec and a...
mrpt::poses::CPose3D rawOdometryIncrementReading
This is the raw odometry reading, and only is used when "estimationMethod" is "TEstimationMethod::emO...
unsigned __int32 uint32_t
Definition: rptypes.h:47



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 7d5e6d718 Fri Aug 24 01:51:28 2018 +0200 at lun nov 2 08:35:50 CET 2020