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  {
59  mm6DOF
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). */
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 
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
Column vector, like Eigen::MatrixX*, but automatically initialized to zeros since construction.
Definition: types_math.h:68
Declares a class for storing a robot action.
Definition: CAction.h:28
Represents a probabilistic 3D (6D) movement.
std::vector< bool > hasVelocities
Each "true" entry means that the corresponding "velocities" element contains valid data - There are 6...
mrpt::poses::CPose3DPDFGaussian poseChange
The 3D pose change probabilistic estimation.
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...
struct mrpt::obs::CActionRobotMovement3D::TMotionModelOptions motionModelConfiguration
TEstimationMethod estimationMethod
This fields indicates the way this estimation was obtained.
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...
TEstimationMethod
A list of posible ways for estimating the content of a CActionRobotMovement3D object.
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.
mrpt::poses::CPose3D rawOdometryIncrementReading
This is the raw odometry reading, and only is used when "estimationMethod" is "TEstimationMethod::emO...
A class used to store a 3D pose (a 3D translation + a rotation in 3D).
Definition: CPose3D.h:87
Declares a class that represents a Probability Density function (PDF) of a 3D pose .
This namespace contains representation of robot actions and observations.
unsigned __int32 uint32_t
Definition: rptypes.h:47
float additional_std_XYZ
An additional noise added to the 6DOF model (std.
uint32_t nParticlesCount
Options for the 6DOFModel model which generates a CPosePDFParticles object an then create from that C...
The parameter to be passed to "computeFromOdometry".
TDrawSampleMotionModel modelSelection
The model to be used.
struct mrpt::obs::CActionRobotMovement3D::TMotionModelOptions::TOptions_6DOFModel mm6DOFModel



Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 814d80880 Fri Aug 24 01:51:28 2018 +0200 at mar 26 may 2026 12:30:59 CEST