Skip to content

Commit

Permalink
provide doc pages for each module
Browse files Browse the repository at this point in the history
(Progress with #193)
  • Loading branch information
jlblancoc committed May 23, 2019
1 parent 6f2bef2 commit 87b34b2
Show file tree
Hide file tree
Showing 33 changed files with 488 additions and 361 deletions.
13 changes: 8 additions & 5 deletions doc/doxygen-pages/dependency_eigen3.h
Expand Up @@ -5,9 +5,11 @@
| Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
| See: https://www.mrpt.org/Authors - All rights reserved. |
| Released under BSD License. See details in https://www.mrpt.org/License |
+---------------------------------------------------------------------------+ */
+---------------------------------------------------------------------------+
*/

/** \page dep-eigen3 External dependency: eigen3
* \ingroup dependencies
*
<small> <a href="dependencies.html">Back to list of dependencies</a> </small>
Expand All @@ -16,11 +18,12 @@
<h2>Dependency: <code>eigen3</code></h2>
<hr>
MRPT crucially relies on Eigen3, so this dependency is mandatory. Still, for convenience of users, if Eigen3 is not present
in the system MRPT's CMake build system will automatically switch to an embedded version of this library.
MRPT crucially relies on Eigen3, so this dependency is mandatory. Still, for
convenience of users, if Eigen3 is not present in the system MRPT's CMake build
system will automatically switch to an embedded version of this library.
Read more about the integration of MRPT and Eigen3 in https://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes
Read more about the integration of MRPT and Eigen3 in
https://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes
*/

97 changes: 22 additions & 75 deletions doc/doxygen-pages/lib_mrpt_base.h
Expand Up @@ -10,81 +10,28 @@

/** \defgroup mrpt_base_grp [mrpt-base]
# mrpt-base: Obsolete in MRPT 2.0.0!
In MRPT 2.0, `mrpt-base` has been split into many smaller libraries for the
sake of modularity of easy of code reusability.
TODO: Move these comments to separate lib_*.h files
A comprehensive collection of geometry-related classes to represent all kind of
2D and 3D geomtry transformations in different formats (Euler angles, rotation
matrices, quaternions), as well as networks of pose constrains (as used
typically in SLAM problems).
There are also implemented representations for probability distributions over
all of these transformations, in a generic way that allow mono and multi-modal
Gaussians and particle-based representations.
See mrpt::poses for the complete list of classes here.
<ul>
<li><b>XML-based databases:</b> Simple databases can be mantained, loaded and
saved to files with mrpt::db::CSimpleDatabase. </li>
<li><b>Configuration files:</b> There is one base virtual class
(mrpt::config::CConfigFileBase) which can be used to read/write configuration
files (including basic types, vectors, matrices,...) from any "configuration
source" transparently (an actual configuration file, a text block created on the
fly, etc.). </li>
</ul>
<h3>mrpt::math</h3>
MRPT defines a number of generic <i> math containers</i>, which are:
<ul>
<li><b>Matrices:</b> Dynamic-size matrices (see mrpt::math::CMatrixDouble) and
compile-time fixed-size matrices (see mrpt::math::CMatrixFixed,
mrpt::math::CMatrixDouble33, etc.). </li> <li><b>Arrays:</b> Fixed-size
vectors, just like plain C arrays but with support for STL-like iterators and
much more. See mrpt::math::CVectorFixedDouble<>. </li>
</ul>
For a more in-depth description of these types, and their relation to the base
Eigen classes, read <a
href="http://www.mrpt.org/Matrices_vectors_arrays_and_Linear_Algebra_MRPT_and_Eigen_classes"
>this page</a>.
Notice that fixed-size containers should be preferred where possible, since they
allow more compile-time optimizations.
Apart from the containers, this namespace contains much more functionality:
<ul>
<li>A templatized RANSAC algorithm. </li>
<li>Probability distribution functions. </li>
<li>Statistics: mean, covariance, covariance of weighted samples, etc... from
sets of data.</li> <li>A huge amount of geometry-related functions: Lines
(mrpt::math::TLine3D), planes (mrpt::math::TPlane3D), segments, polygons,
intersections between them, etc. </li> <li>Graph-related stuff: generic directed
graphs (mrpt::math::CDirectedGraph) and trees (mrpt::math::CDirectedTree).</li>
<li>PDF transformations (uncertainty propagation): See
mrpt::math::transform_gaussian_linear,
mrpt::math::transform_gaussian_montecarlo,
mrpt::math::transform_gaussian_unscented.</li> <li>A templatized implementation
of quaternions, mrpt::math::CQuaternion, with support for rotation matrix
convertions, Jacobians, etc.</li>
</ul>
<h3>mrpt::compress</h3>
GZip compression methods can be found in this namespace.
mrpt-base: Obsolete in MRPT 2.0.0
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
href="modules.html" >See all modules</a> </small> <br>
In MRPT 2.0, `mrpt-base` (as defined in MRPT 1.x.x) has been split into many
smaller libraries for the sake of modularity of easy of code reusability:
- \ref mrpt_bayes_grp
- \ref mrpt_comms_grp
- \ref mrpt_config_grp
- \ref mrpt_expr_grp
- \ref mrpt_db_grp
- \ref mrpt_img_grp
- \ref mrpt_io_grp
- \ref mrpt_math_grp
- \ref mrpt_random_grp
- \ref mrpt_rtti_grp
- \ref mrpt_serialization_grp
- \ref mrpt_system_grp
- \ref mrpt_typemeta_grp
*/
48 changes: 32 additions & 16 deletions doc/doxygen-pages/lib_mrpt_bayes.h
Expand Up @@ -8,26 +8,42 @@
+---------------------------------------------------------------------------+
*/

// clang-format off

/** \defgroup mrpt_bayes_grp [mrpt-bayes]
Bayesian filtering algorithms
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
href="modules.html" >See all modules</a> </small> <br>
<h2>Library <code>mrpt-bayes</code></h2>
<hr>
Here there are two main family of algorithms:
<ul>
<li><b>Kalman filters:</b> A generic, templatized Kalman filter implementation
(includes EKF,IEKF and in the future, UKF), which only requires from the
programmer to provide the system models and (optinally) the Jacobians. See
mrpt::bayes::CKalmanFilterCapable </li> <li><b>Particle filters:</b> A set of
helper classes and functions to perform particle filtering. In this case the
algorithms are not as generic as in Kalman filtering, but the classes serve to
organize and unify the interface of different PF algorithms in MRPT. See
mrpt::bayes::CParticleFilter. </li>
</ul>
See all classes in the namespace: mrpt::bayes
[TOC]
# Library `mrpt-bayes`
This C++ library is part of MRPT and can be installed in Debian-based systems with:
sudo apt install libmrpt-bayes-dev
See: \ref mrpt_from_cmake
Refer to classes in the namespace mrpt::bayes and these examples:
- [bayes_tracking_example](https://github.com/MRPT/mrpt/tree/master/samples/bayes_tracking_example)
## Kalman filters
A generic, templatized Kalman filter implementation (includes EKF,IEKF and in the future, UKF),
which only requires from the programmer to provide the system models and (optinally) the Jacobians.
See mrpt::bayes::CKalmanFilterCapable.
## Particle filters
A set of helper classes and functions to perform particle filtering. In this case the algorithms
are not as generic as in Kalman filtering, but the classes serve to organize and unify the interface
of different PF algorithms in MRPT.
See mrpt::bayes::CParticleFilter.
*/
5 changes: 5 additions & 0 deletions doc/doxygen-pages/lib_mrpt_comms.h
Expand Up @@ -13,6 +13,9 @@
Communication utilities: serial ports, networking (TCP, DNS,...), pub/sub
nodelets.
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
href="modules.html" >See all modules</a> </small> <br>
[TOC]
# Library `mrpt-comms`
Expand All @@ -23,6 +26,8 @@ This C++ library is part of MRPT and can be installed in Debian-based systems
sudo apt install libmrpt-comms-dev
See: \ref mrpt_from_cmake
Find below some examples of use.
## Nodelets-like Pub/Sub mechanism
Expand Down
Expand Up @@ -5,45 +5,57 @@
| Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
| See: https://www.mrpt.org/Authors - All rights reserved. |
| Released under BSD License. See details in https://www.mrpt.org/License |
+---------------------------------------------------------------------------+ */
+---------------------------------------------------------------------------+
*/

/** \page config_file_format Configuration file format in MRPT
*
/** \defgroup config_file_format Configuration file format in MRPT
* \ingroup mrpt_config_grp
Configuration ("INI"-like) file format in MRPT
# Description
Plain text configuration files in MRPT follows a custom version of the [INI file](https://en.wikipedia.org/wiki/INI_file)
standard format, comprising "sections", "properties" (or "keys") with associated "values" and, optionally, comments.
Plain text configuration files in MRPT follows a custom version of the [INI
file](https://en.wikipedia.org/wiki/INI_file) standard format, comprising
"sections", "properties" (or "keys") with associated "values" and, optionally,
comments.
The following C++ classes are provided to read and write such files:
- mrpt::config::CConfigFile: Access to physical files.
- mrpt::config::CConfigFileMemory: Wrapper around a configuration file "in memory", without an associated physical file.
- mrpt::config::CConfigFileMemory: Wrapper around a configuration file "in
memory", without an associated physical file.
See also:
- mrpt::config::CConfigFileBase: The base, virtual class underlying the two classes above. Users normally
inkove the API exposed in this base class.
- mrpt::config::CConfigFilePrefixer: A proxy class to manipulate an object of the two classes above such
that all accesses to sections and/or properties are *mapped* to modified versions of their names.
- mrpt::config::CConfigFileBase: The base, virtual class underlying the two
classes above. Users normally inkove the API exposed in this base class.
- mrpt::config::CConfigFilePrefixer: A proxy class to manipulate an object of
the two classes above such that all accesses to sections and/or properties are
*mapped* to modified versions of their names.
# Format specifications
- There exists only one level of hierarchy, i.e. only "toplevel" sections exist, there is no support for nested sections.
A possible workaround to this limitation is using mrpt::config::CConfigFilePrefixer.
- There exists only one level of hierarchy, i.e. only "toplevel" sections exist,
there is no support for nested sections. A possible workaround to this
limitation is using mrpt::config::CConfigFilePrefixer.
- Sections are formatted like: `[section_name]`
- Key/values pair follow the format: `key = value`. Whitespaces are ignored before and after the `=` sign, up to the
first non-blank character of the value.
- API methods exist to read and write different elementary data types (`int`,`double`,`std::string`) and also
vectors, matrices and even `enum`s.
- Key/values pair follow the format: `key = value`. Whitespaces are ignored
before and after the `=` sign, up to the first non-blank character of the value.
- API methods exist to read and write different elementary data types
(`int`,`double`,`std::string`) and also vectors, matrices and even `enum`s.
- Comments can be included in different formats:
- Lines starting with `;`. Example: `; Comment line`
- Lines starting with `#`. Example: `# Comment line`
- After a value, with `//`. Example: `key = value // Explanation of this value`
- An exception to the rule above is hard-coded to allow URLs, e.g. `key = http://www.google.com` is not considered to contain a comment.
- After a value, with `//`. Example: `key = value // Explanation of this
value`
- An exception to the rule above is hard-coded to allow URLs, e.g. `key =
http://www.google.com` is not considered to contain a comment.
- Preprocessor:
- Just like in C/C++, lines can be ended in a backslash (`\`) to mean "line continuation". [New in MRPT 1.5.0]
- C preprocessor-like `#define`s are available as `@define VARNAME VALUE`, then using variables as `${VARNAME}` or math expressions as `$eval{...}`. See the example below: [New in MRPT 1.5.0].
\code
- Just like in C/C++, lines can be ended in a backslash (`\`) to mean "line
continuation". [New in MRPT 1.5.0]
- C preprocessor-like `#define`s are available as `@define VARNAME VALUE`,
then using variables as `${VARNAME}` or math expressions as `$eval{...}`. See
the example below: [New in MRPT 1.5.0]. \code
@define MAXSPEED 10
@define MAXDIST $eval{exp(2*MAXSPEED)}
[test]
Expand All @@ -54,7 +66,7 @@ first non-blank character of the value.
# Examples
There are dozens of examples in the subdirectory [MRPT/share/mrpt/config_files](https://github.com/MRPT/mrpt/tree/master/share/mrpt/config_files).
There are dozens of examples in the subdirectory
[MRPT/share/mrpt/config_files](https://github.com/MRPT/mrpt/tree/master/share/mrpt/config_files).
*/

3 changes: 2 additions & 1 deletion doc/doxygen-pages/lib_mrpt_core.h
Expand Up @@ -12,7 +12,7 @@
Core functions for MRPT.
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
href="modules.html" >See all modules</a> </small> <br>
# Library `mrpt-core`
Expand All @@ -22,6 +22,7 @@ This library is part of MRPT and can be installed in Debian-based systems with:
sudo apt install libmrpt-core-dev
See: \ref mrpt_from_cmake
## Nested exceptions
Expand Down
19 changes: 10 additions & 9 deletions doc/doxygen-pages/lib_mrpt_detectors.h
Expand Up @@ -5,23 +5,24 @@
| Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
| See: https://www.mrpt.org/Authors - All rights reserved. |
| Released under BSD License. See details in https://www.mrpt.org/License |
+---------------------------------------------------------------------------+ */
+---------------------------------------------------------------------------+
*/

/** \defgroup mrpt_detectors_grp [mrpt-detectors]
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a href="modules.html" >See all modules</a> </small>
<br>
Computer-vision detectors
<h2>Library <code>mrpt-detectors</code></h2>
<hr>
<small> <a href="index.html#libs">Back to list of all libraries</a> | <a
href="modules.html" >See all modules</a> </small> <br>
A set of generic computer-vision-based detectors. There is a hierarchy of
# Library `mrpt-detectors`
A set of generic computer-vision-based detectors. There is a hierarchy of
generic detectors and objects:
- mrpt::detectors::CObjectDetection
- mrpt::detectors::CDetectableObject
- mrpt::detectors::CObjectDetection
- mrpt::detectors::CDetectableObject
See mrpt::detectors
*/

0 comments on commit 87b34b2

Please sign in to comment.