Main MRPT website > C++ reference for MRPT 1.9.9
CEllipsoidInverseDepth2D.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-2017, 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 opengl_CEllipsoidInverseDepth2D_H
10 #define opengl_CEllipsoidInverseDepth2D_H
11 
13 
14 namespace mrpt
15 {
16 namespace opengl
17 {
18 /** An especial "ellipsoid" in 3D computed as the uncertainty iso-surfaces of a
19  * (inv_range,yaw) variable.
20  * The parameter space of this ellipsoid comprises these variables (in this
21  * order):
22  * - inv_range: The inverse distance from the sensor to the feature.
23  * - yaw: Angle for the rotation around +Z ("azimuth").
24  *
25  * This parameterization is a 2D version of that presented in the paper:
26  * - Civera, J. and Davison, A.J. and Montiel, J., "Inverse depth
27  * parametrization for monocular SLAM", T-RO, 2008.
28  *
29  * This class expects you to provide a mean vector of length 4 and a 4x4
30  * covariance matrix, set with \a setCovMatrixAndMean().
31  *
32  * Please read the documentation of
33  * CGeneralizedEllipsoidTemplate::setQuantiles() for learning
34  * the mathematical details about setting the desired confidence interval.
35  *
36  * <div align="center">
37  * <table border="0" cellspan="4" cellspacing="4" style="border-width: 1px;
38  * border-style: solid;">
39  * <tr> <td> mrpt::opengl::CEllipsoidInverseDepth2D </td> <td> \image html
40  * preview_CEllipsoidInverseDepth2D.png </td> </tr>
41  * </table>
42  * </div>
43  *
44  * \ingroup mrpt_opengl_grp
45  */
47 {
50 
51  public:
52  /** The maximum range to be used as a correction when a point of the
53  * ellipsoid falls in the negative ranges (default: 1e6) */
54  void setUnderflowMaxRange(const double maxRange)
55  {
56  m_underflowMaxRange = maxRange;
57  }
58  double getUnderflowMaxRange() const { return m_underflowMaxRange; }
59  protected:
60  /** To be implemented by derived classes: maps, using some arbitrary space
61  * transformation, a list of points
62  * defining an ellipsoid in parameter space into their corresponding
63  * points in 2D/3D space.
64  */
66  const std::vector<BASE::array_parameter_t>& in_pts,
67  std::vector<BASE::array_point_t>& out_pts) const override;
68 
69  private:
71 
72  public:
73  /** Constructor
74  */
76  /** Private, virtual destructor: only can be deleted from smart pointers */
78 };
79 
80 } // end namespace
81 
82 } // End of namespace
83 
84 #endif
#define DEFINE_SERIALIZABLE(class_name)
This declaration must be inserted in all CSerializable classes definition, within the class declarati...
An especial "ellipsoid" in 3D computed as the uncertainty iso-surfaces of a (inv_range,...
virtual ~CEllipsoidInverseDepth2D()
Private, virtual destructor: only can be deleted from smart pointers.
void setUnderflowMaxRange(const double maxRange)
The maximum range to be used as a correction when a point of the ellipsoid falls in the negative rang...
virtual void transformFromParameterSpace(const std::vector< BASE::array_parameter_t > &in_pts, std::vector< BASE::array_point_t > &out_pts) const override
To be implemented by derived classes: maps, using some arbitrary space transformation,...
CGeneralizedEllipsoidTemplate< 2 > BASE
A class that generalizes the concept of an ellipsoid to arbitrary parameterizations of uncertainty sh...
This is the global namespace for all Mobile Robot Programming Toolkit (MRPT) libraries.



Page generated by Doxygen 1.9.1 for MRPT 1.9.9 Git: 63ea9d1f1 Thu Nov 23 00:06:53 2017 +0100 at mar 26 may 2026 12:19:29 CEST