Main MRPT website > C++ reference for MRPT 1.9.9
CEllipsoidInverseDepth3D.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_CEllipsoidInverseDepth3D_H
10 #define opengl_CEllipsoidInverseDepth3D_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,pitch) 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  * - pitch: Angle for the rotation around +Y ("elevation"). Positive means
25  * pointing below the XY plane.
26  *
27  * This parameterization is based on the paper:
28  * - Civera, J. and Davison, A.J. and Montiel, J., "Inverse depth
29  * parametrization for monocular SLAM", T-RO, 2008.
30  *
31  * This class expects you to provide a mean vector of length 3 and a 3x3
32  * covariance matrix, set with \a setCovMatrixAndMean().
33  *
34  * Please read the documentation of
35  * CGeneralizedEllipsoidTemplate::setQuantiles() for learning
36  * the mathematical details about setting the desired confidence interval.
37  *
38  * <div align="center">
39  * <table border="0" cellspan="4" cellspacing="4" style="border-width: 1px;
40  * border-style: solid;">
41  * <tr> <td> mrpt::opengl::CEllipsoidInverseDepth3D </td> <td> \image html
42  * preview_CEllipsoidInverseDepth3D.png </td> </tr>
43  * </table>
44  * </div>
45  *
46  *
47  * \ingroup mrpt_opengl_grp
48  */
50 {
53 
54  public:
55  /** The maximum range to be used as a correction when a point of the
56  * ellipsoid falls in the negative ranges (default: 1e6) */
57  void setUnderflowMaxRange(const double maxRange)
58  {
59  m_underflowMaxRange = maxRange;
60  }
61  double getUnderflowMaxRange() const { return m_underflowMaxRange; }
62  protected:
63  /** To be implemented by derived classes: maps, using some arbitrary space
64  * transformation, a list of points
65  * defining an ellipsoid in parameter space into their corresponding
66  * points in 2D/3D space.
67  */
69  const std::vector<BASE::array_parameter_t>& in_pts,
70  std::vector<BASE::array_point_t>& out_pts) const override;
71 
72  private:
74 
75  public:
76  /** Constructor
77  */
79  /** Private, virtual destructor: only can be deleted from smart pointers */
81 };
82 
83 } // end namespace
84 
85 } // End of namespace
86 
87 #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 ~CEllipsoidInverseDepth3D()
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< 3 > 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