Main MRPT website
>
C++ reference for MRPT 1.9.9
lib_mrpt_base.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
*/
10
11
/** \defgroup mrpt_base_grp [mrpt-base]
12
13
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
14
href="modules.html" >See all modules</a> </small> <br>
15
16
<h2> mrpt-base: Obsolete in MRPT 2.0.0!</h2>
17
18
In MRPT 2.0, `mrpt-base` has been split into many smaller libraries for the
19
sake of modularity of easy of code reusability.
20
21
TODO: Move these comments to separate lib_*.h files
22
23
24
A comprehensive collection of geometry-related classes to represent all kind of
25
2D and 3D geomtry transformations in different formats (Euler angles, rotation
26
matrices, quaternions), as well as networks of pose constrains (as used
27
typically in SLAM problems).
28
29
There are also implemented representations for probability distributions over
30
all of these transformations, in a generic way that allow mono and multi-modal
31
Gaussians and particle-based representations.
32
33
See mrpt::poses for the complete list of classes here.
34
35
36
<h3>mrpt::utils</h3>
37
38
<ul>
39
<li><b>RTTI (RunTime Type Information):</b> A cross-platform,
40
compiler-independent RTTI system is built around the base class
41
mrpt::utils::CObject.</li>
42
43
<li><b>Smart pointers:</b> Based on std::shared_ptr<>, any class CFoo inheriting
44
from CObject, automatically has associated smart pointers types CFoo::Ptr and
45
CFoo::ConstPtr. MRPT implements advanced smart pointers capable of multi-thread
46
safe usage and smart pointer typecasting with runtime check for correct castings
47
([tutorial](http://www.mrpt.org/Smart_pointers)]).</li>
48
49
<li><b>Image handling:</b> The class mrpt::img::CImage represents a wrapper
50
around OpenCV IplImage's, plus extra functionality such as on-the-fly loading of
51
images stored in disk upon first usage. The internal IplImage is always
52
available so OpenCV's functions can be still used to operate on MRPT images.
53
</li>
54
55
<li><b>Serialization/Persistence:</b> Object serialization in a simple but
56
powerful (including versioning) format is supported by dozens of MRPT classes,
57
all based on mrpt::serialization::CSerializable. </li>
58
59
<li><b>Streams:</b> Stream classes (see the base mrpt::utils::CStream) allow
60
serialization of MRPT objects. There are classes for tranparent GZ-compressed
61
files, sockets, serial ports, etc. </li>
62
63
<li><b>XML-based databases:</b> Simple databases can be mantained, loaded and
64
saved to files with mrpt::db::CSimpleDatabase. </li>
65
66
<li><b>Name-based argument passing:</b> See the structure
67
mrpt::system::TParameters </li>
68
69
<li><b>Configuration files:</b> There is one base virtual class
70
(mrpt::config::CConfigFileBase) which can be used to read/write configuration
71
files (including basic types, vectors, matrices,...) from any "configuration
72
source" transparently (an actual configuration file, a text block created on the
73
fly, etc.). </li>
74
75
76
</ul>
77
78
<h3>mrpt::math</h3>
79
80
MRPT defines a number of generic <i> math containers</i>, which are:
81
82
<ul>
83
<li><b>Matrices:</b> Dynamic-size matrices (see mrpt::math::CMatrixDouble) and
84
compile-time fixed-size matrices (see mrpt::math::CMatrixFixedNumeric,
85
mrpt::math::CMatrixDouble33, etc.). </li> <li><b>Arrays:</b> Fixed-size
86
vectors, just like plain C arrays but with support for STL-like iterators and
87
much more. See mrpt::math::CArrayDouble<>. </li>
88
</ul>
89
90
For a more in-depth description of these types, and their relation to the base
91
Eigen classes, read <a
92
href="http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes"
93
>this page</a>.
94
95
Notice that fixed-size containers should be preferred where possible, since they
96
allow more compile-time optimizations.
97
98
Apart from the containers, this namespace contains much more functionality:
99
100
<ul>
101
<li>A templatized RANSAC algorithm. </li>
102
<li>Probability distribution functions. </li>
103
<li>Statistics: mean, covariance, covariance of weighted samples, etc... from
104
sets of data.</li> <li>A huge amount of geometry-related functions: Lines
105
(mrpt::math::TLine3D), planes (mrpt::math::TPlane3D), segments, polygons,
106
intersections between them, etc. </li> <li>Graph-related stuff: generic directed
107
graphs (mrpt::math::CDirectedGraph) and trees (mrpt::math::CDirectedTree).</li>
108
<li>PDF transformations (uncertainty propagation): See
109
mrpt::math::transform_gaussian_linear,
110
mrpt::math::transform_gaussian_montecarlo,
111
mrpt::math::transform_gaussian_unscented.</li> <li>A templatized implementation
112
of quaternions, mrpt::math::CQuaternion, with support for rotation matrix
113
convertions, Jacobians, etc.</li>
114
</ul>
115
116
117
118
<h3>mrpt::synch</h3>
119
120
This namespace includes threading tools such as critical sections, semaphores or
121
utilities such as the template mrpt::synch::CThreadSafeVariable that converts
122
any variable into a pair variable-critical section.
123
124
125
<h3>mrpt::system</h3>
126
127
Here can be found functions for filesystem managing, watching directories,
128
creating and handling threads in an OS-independent way, etc.
129
130
131
<h3>mrpt::compress</h3>
132
133
GZip compression methods can be found in this namespace.
134
135
136
*/
Page generated by
Doxygen 1.8.17
for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST