diff --git a/doc/doxygen-pages/dependency_eigen3.h b/doc/doxygen-pages/dependency_eigen3.h index e4b0568e9f..31fbc78e65 100644 --- a/doc/doxygen-pages/dependency_eigen3.h +++ b/doc/doxygen-pages/dependency_eigen3.h @@ -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 * Back to list of dependencies @@ -16,11 +18,12 @@

Dependency: eigen3


-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 */ - diff --git a/doc/doxygen-pages/lib_mrpt_base.h b/doc/doxygen-pages/lib_mrpt_base.h index 77d6422436..0250092d12 100644 --- a/doc/doxygen-pages/lib_mrpt_base.h +++ b/doc/doxygen-pages/lib_mrpt_base.h @@ -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. - - - - -

mrpt::math

- -MRPT defines a number of generic math containers, which are: - - - -For a more in-depth description of these types, and their relation to the base -Eigen classes, read this page. - -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: - - - - -

mrpt::compress

- -GZip compression methods can be found in this namespace. +mrpt-base: Obsolete in MRPT 2.0.0 + + Back to list of all libraries | See all modules
+ + +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 */ diff --git a/doc/doxygen-pages/lib_mrpt_bayes.h b/doc/doxygen-pages/lib_mrpt_bayes.h index 0bcd51fd38..69773b19ef 100644 --- a/doc/doxygen-pages/lib_mrpt_bayes.h +++ b/doc/doxygen-pages/lib_mrpt_bayes.h @@ -8,26 +8,42 @@ +---------------------------------------------------------------------------+ */ +// clang-format off + /** \defgroup mrpt_bayes_grp [mrpt-bayes] +Bayesian filtering algorithms + Back to list of all libraries | See all modules
-

Library mrpt-bayes

-
- -Here there are two main family of algorithms: - - -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. + */ diff --git a/doc/doxygen-pages/lib_mrpt_comms.h b/doc/doxygen-pages/lib_mrpt_comms.h index 1d7523a0df..1f75d85224 100644 --- a/doc/doxygen-pages/lib_mrpt_comms.h +++ b/doc/doxygen-pages/lib_mrpt_comms.h @@ -13,6 +13,9 @@ Communication utilities: serial ports, networking (TCP, DNS,...), pub/sub nodelets. + Back to list of all libraries | See all modules
+ [TOC] # Library `mrpt-comms` @@ -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 diff --git a/doc/doxygen-pages/config-files.h b/doc/doxygen-pages/lib_mrpt_config_INI_file_format.h similarity index 58% rename from doc/doxygen-pages/config-files.h rename to doc/doxygen-pages/lib_mrpt_config_INI_file_format.h index 0b279fed96..2df4625347 100644 --- a/doc/doxygen-pages/config-files.h +++ b/doc/doxygen-pages/lib_mrpt_config_INI_file_format.h @@ -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] @@ -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). */ - diff --git a/doc/doxygen-pages/lib_mrpt_core.h b/doc/doxygen-pages/lib_mrpt_core.h index a84ef703e1..56b926d6ba 100644 --- a/doc/doxygen-pages/lib_mrpt_core.h +++ b/doc/doxygen-pages/lib_mrpt_core.h @@ -12,7 +12,7 @@ Core functions for MRPT. - Back to list of all libraries | Back to list of all libraries | See all modules
# Library `mrpt-core` @@ -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 diff --git a/doc/doxygen-pages/lib_mrpt_detectors.h b/doc/doxygen-pages/lib_mrpt_detectors.h index 1d686c078e..62e76378ab 100644 --- a/doc/doxygen-pages/lib_mrpt_detectors.h +++ b/doc/doxygen-pages/lib_mrpt_detectors.h @@ -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] - Back to list of all libraries | See all modules -
+Computer-vision detectors -

Library mrpt-detectors

-
+ Back to list of all libraries | See all modules
-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 */ - diff --git a/doc/doxygen-pages/lib_mrpt_graphs.h b/doc/doxygen-pages/lib_mrpt_graphs.h index 0dfcb980d8..1eaf28ab01 100644 --- a/doc/doxygen-pages/lib_mrpt_graphs.h +++ b/doc/doxygen-pages/lib_mrpt_graphs.h @@ -5,27 +5,44 @@ | 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_graphs_grp [mrpt-graphs] - Back to list of all libraries | See all modules -
+Graphs data structures (directed graphs, trees, graphs of pose constraints), +graphs algorithms -

Library mrpt-graphs

-
+ Back to list of all libraries | See all modules
-Graph-related stuff: generic directed graphs (mrpt::graphs::CDirectedGraph) and trees (mrpt::graphs::CDirectedTree). +# Library `mrpt-graphs` + +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + + sudo apt install libmrpt-graphs-dev + +See: \ref mrpt_from_cmake + +Graph-related stuff: generic directed graphs (mrpt::graphs::CDirectedGraph) and +trees (mrpt::graphs::CDirectedTree). + +Graphs of pose constraints are also defined in this library, via a generic +template mrpt::graphs::CNetworkOfPoses, capable of reading and writing to both +binary and text pose-graph +file formats. -Graphs of pose constraints are also defined in this library, via a generic template mrpt::graphs::CNetworkOfPoses, capable -of reading and writing to both binary and text pose-graph file formats. Predefined typedefs exist for: - - mrpt::graphs::CNetworkOfPoses2D -> Edges are 2D graphs (x,y,phi), without uncertainty. - - mrpt::graphs::CNetworkOfPoses3D -> Edges are 3D graphs (x,y,z,yaw,pitch,roll), without uncertainty. - - mrpt::graphs::CNetworkOfPoses2DInf -> Edges are 2D graphs (x,y,phi), with an inverse covariance (information) matrix. - - mrpt::graphs::CNetworkOfPoses3DInf -> Edges are 3D graphs (x,y,z,yaw,pitch,roll), with an inverse covariance (information) matrix. + - mrpt::graphs::CNetworkOfPoses2D -> Edges are 2D graphs (x,y,phi), without +uncertainty. + - mrpt::graphs::CNetworkOfPoses3D -> Edges are 3D graphs +(x,y,z,yaw,pitch,roll), without uncertainty. + - mrpt::graphs::CNetworkOfPoses2DInf -> Edges are 2D graphs (x,y,phi), with an +inverse covariance (information) matrix. + - mrpt::graphs::CNetworkOfPoses3DInf -> Edges are 3D graphs +(x,y,z,yaw,pitch,roll), with an inverse covariance (information) matrix. */ - diff --git a/doc/doxygen-pages/lib_mrpt_graphslam.h b/doc/doxygen-pages/lib_mrpt_graphslam.h index 5bb6057151..9834a783ac 100644 --- a/doc/doxygen-pages/lib_mrpt_graphslam.h +++ b/doc/doxygen-pages/lib_mrpt_graphslam.h @@ -5,19 +5,28 @@ | 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_graphslam_grp [mrpt-graphslam] - Back to list of all libraries | See all modules -
+GraphSLAM algorithms -

Library mrpt-graphslam

-
+ Back to list of all libraries | See all modules
-Graph-SLAM: See the namespace mrpt::graphslam. -For an introduction to graph-slam maps refer to the summary in https://www.mrpt.org/Graph-SLAM_maps +# Library `mrpt-graphslam` +This C++ library is part of MRPT and can be installed in Debian-based systems +with: -*/ + sudo apt install libmrpt-graphslam-dev + +See: \ref mrpt_from_cmake + +Basic graph-SLAM algorithms: See the namespace mrpt::graphslam. +For an introduction to graph-slam maps refer to the summary in +https://www.mrpt.org/Graph-SLAM_maps + +*/ diff --git a/doc/doxygen-pages/lib_mrpt_gui.h b/doc/doxygen-pages/lib_mrpt_gui.h index 408fdfbbb2..fc86bfa701 100644 --- a/doc/doxygen-pages/lib_mrpt_gui.h +++ b/doc/doxygen-pages/lib_mrpt_gui.h @@ -5,35 +5,47 @@ | 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_gui_grp [mrpt-gui] - Back to list of all libraries | See all modules -
+GUI support: 2D plots (Matlab-like), 3D rendering viewports, etc. -

Library mrpt-gui

-
+ Back to list of all libraries | See all modules
-This library provides three classes that represent GUI windows, each having a +# Library `mrpt-gui` + +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + + sudo apt install libmrpt-gui-dev + +See: \ref mrpt_from_cmake + +This library provides these classes that represent GUI windows, each having a specific specialized purpose: - + - mrpt::gui::CDisplayWindow: Displays 2D bitmap images, and +optionally sets of points over them, etc. + + - mrpt::gui::CDisplayWindow3D: A powerful 3D rendering window capable of +displaying a mrpt::opengl::COpenGLScene, or efficiently displaying 2D images +using graphics card acceleration. It features mouse navigation, Alt+Enter +fullscreen switching, multiple viewports, etc. See this tutorial. -All these window classes inherits from mrpt::gui::CBaseGUIWindow, which provides a set of methods -and variables common to all the classes. -It allow moving/resizing the windows, polling for key strokes, etc. -Note events-driven applications can be also implemented since it also implements -the mrpt::system::CObservable pattern, emitting events as described in -the description of mrpt::gui::CBaseGUIWindow. + - mrpt::gui::CDisplayWindowPlots: Displays one or more 2D vectorial graphs, +in a manner very similar to MATLAB "plot" commands. +All these window classes inherits from mrpt::gui::CBaseGUIWindow, which provides +a set of methods and variables common to all the classes. It allow +moving/resizing the windows, polling for key strokes, etc. Note events-driven +applications can be also implemented since it also implements the +mrpt::system::CObservable pattern, emitting events as described in the +description of mrpt::gui::CBaseGUIWindow. All the classes in this library are in the namespace mrpt::gui */ - diff --git a/doc/doxygen-pages/lib_mrpt_hmtslam.h b/doc/doxygen-pages/lib_mrpt_hmtslam.h index 83ef3d4356..b0a50ef498 100644 --- a/doc/doxygen-pages/lib_mrpt_hmtslam.h +++ b/doc/doxygen-pages/lib_mrpt_hmtslam.h @@ -5,21 +5,31 @@ | 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_hmtslam_grp [mrpt-hmtslam] - Back to list of all libraries | See all modules -
+Hybrid Metric-Topological (HMT) SLAM implementation -

Library mrpt-hmtslam

-
+ Back to list of all libraries | See all modules
-This library includes an implementation of the HMT-SLAM framework. -See the list of classes in mrpt::hmtslam, and the application hmt-slam-gui. +# Library `mrpt-hmtslam` -NOTE: For new designs, it is recommended to try the \ref mrpt_srba_grp "[srba]" library instead. +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + sudo apt install libmrpt-hmtslam-dev -*/ +See: \ref mrpt_from_cmake + +This library includes an implementation of the HMT-SLAM framework. +See the list of classes in mrpt::hmtslam, and the application hmt-slam-gui. + +**NOTE:** For new designs, it is recommended to either try the more modern +alternatives: +- [MOLA](https://github.com/MOLAorg) + - \ref mrpt_graphslam_grp +*/ diff --git a/doc/doxygen-pages/lib_mrpt_hwdrivers.h b/doc/doxygen-pages/lib_mrpt_hwdrivers.h index 370eb77164..d6dfa39b38 100644 --- a/doc/doxygen-pages/lib_mrpt_hwdrivers.h +++ b/doc/doxygen-pages/lib_mrpt_hwdrivers.h @@ -5,24 +5,32 @@ | 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_hwdrivers_grp [mrpt-hwdrivers] - Back to list of all libraries | See all modules -
+Sensor and hardware-related drivers. -

Library mrpt-hwdrivers

-
+ Back to list of all libraries | See all modules
-This namespace includes several hardware-related classes, from serial port -interfaces, USB FTDI chip interfaces, to more complex ones including -handling specific proprietary protocols (SICK lasers, etc.). +# Library `mrpt-hwdrivers` -See the list of classes in mrpt::hwdrivers and the +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + + sudo apt install libmrpt-hwdrivers-dev + +See: \ref mrpt_from_cmake + +This namespace includes several hardware-related classes, from serial port +interfaces, USB FTDI chip interfaces, to more complex ones including +handling specific proprietary protocols (SICK lasers, etc.). + +See the list of classes in mrpt::hwdrivers and the list of supported sensors in this page. */ - diff --git a/doc/doxygen-pages/lib_mrpt_img.h b/doc/doxygen-pages/lib_mrpt_img.h index 2a496d56a8..c020d1a9b0 100644 --- a/doc/doxygen-pages/lib_mrpt_img.h +++ b/doc/doxygen-pages/lib_mrpt_img.h @@ -23,6 +23,9 @@ This C++ library is part of MRPT and can be installed in Debian-based systems sudo apt install libmrpt-img-dev +See: \ref mrpt_from_cmake + + Find below some examples of use. ## Image handling diff --git a/doc/doxygen-pages/lib_mrpt_kinematics.h b/doc/doxygen-pages/lib_mrpt_kinematics.h index 9ce7ac2e1f..91e6f8b307 100644 --- a/doc/doxygen-pages/lib_mrpt_kinematics.h +++ b/doc/doxygen-pages/lib_mrpt_kinematics.h @@ -5,20 +5,27 @@ | 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_kinematics_grp [mrpt-kinematics] - Back to list of all libraries | See all modules -
+Kinematics of robot arms and mobile robots. -

Library mrpt-kinematics

-
+ Back to list of all libraries | See all modules
-Classes for defining and managing the kinematics of robotic arms. +# Library `mrpt-kinematics` + +This library is part of MRPT and can be installed in Debian-based systems with: + + sudo apt install libmrpt-kinematics-dev + +See: \ref mrpt_from_cmake + +Classes for defining and managing the kinematics of robotic arms. See mrpt::kinematics */ - diff --git a/doc/doxygen-pages/lib_mrpt_maps.h b/doc/doxygen-pages/lib_mrpt_maps.h index d2b8662cdb..6338066366 100644 --- a/doc/doxygen-pages/lib_mrpt_maps.h +++ b/doc/doxygen-pages/lib_mrpt_maps.h @@ -10,11 +10,18 @@ /** \defgroup mrpt_maps_grp [mrpt-maps] +Map representations for localization and SLAM. + Back to list of all libraries | See all modules
-

Library mrpt-maps

-
+# Library `mrpt-maps` + +This library is part of MRPT and can be installed in Debian-based systems with: + + sudo apt install libmrpt-maps-dev + +See: \ref mrpt_from_cmake This library includes (almost) all the maps usable for localization or mapping in the rest of MRPT classes. diff --git a/doc/doxygen-pages/lib_mrpt_math.h b/doc/doxygen-pages/lib_mrpt_math.h index 2dfa50c723..e673803af3 100644 --- a/doc/doxygen-pages/lib_mrpt_math.h +++ b/doc/doxygen-pages/lib_mrpt_math.h @@ -22,15 +22,51 @@ This library is part of MRPT and can be installed in Debian-based systems with: sudo apt install libmrpt-math-dev +See: \ref mrpt_from_cmake + Main classes and concepts associated with this library: -Lightweight geometry entities: Write me! + - \ref mrpt_math_lwgeom_grp: TPose2D, TPose3D, TPoint3D, TLine3D, etc. (See +also: \ref mrpt_poses_grp) + - xxx + + +MRPT defines a number of generic math containers, which are: + + + +For a more in-depth description of these types, and their relation to the base +Eigen classes, read this page. + +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: + + + -Comparison: lightweight vs. {CPose*, CPoint*}: (Move to a new doc page?) - - Both can be serialized, but CPose* are CSerializable-based. - - CPose* require aligned memory (they hold Eigen containers). - - CPose* include a cache for precomputed cos/sin values, so they are preferable -when doing many pose (+) point compositions. - - Lightweight containers can be constexpr constructed, CPose* cannot. */ diff --git a/doc/doxygen-pages/lib_mrpt_nanoflann.h b/doc/doxygen-pages/lib_mrpt_nanoflann.h index bbdc227155..378c9915f0 100644 --- a/doc/doxygen-pages/lib_mrpt_nanoflann.h +++ b/doc/doxygen-pages/lib_mrpt_nanoflann.h @@ -5,20 +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_nanoflann_grp [mrpt-nanoflann] Embedded copy of the nanoflann C++11 library for KD-trees - Back to list of all libraries | See all modules -
+ Back to list of all libraries | See all modules
# Library `mrpt-nanoflann` [New in MRPT 2.0.0] This library is part of MRPT and can be installed in Debian-based systems with: - sudo apt install libmrpt-nanoflann-dev + sudo apt install libmrpt-nanoflann-dev + +See: \ref mrpt_from_cmake + */ diff --git a/doc/doxygen-pages/lib_mrpt_nav.h b/doc/doxygen-pages/lib_mrpt_nav.h index ca03320e8c..f08eda6b99 100644 --- a/doc/doxygen-pages/lib_mrpt_nav.h +++ b/doc/doxygen-pages/lib_mrpt_nav.h @@ -5,25 +5,36 @@ | 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_nav_grp [mrpt-nav] - Back to list of all libraries | See all modules -
+Autonomous navigation, path planning + + Back to list of all libraries | See all modules
+ +# Library `mrpt-nav` + +This library is part of MRPT and can be installed in Debian-based systems with: + + sudo apt install libmrpt-nav-dev -

Library mrpt-nav

-
+See: \ref mrpt_from_cmake This library implements: - Reactive navigation: - - Holonomic navigation algorithms: Virtual Force Fields (VFF), Nearness Diagram (ND), ... See mrpt::nav::CAbstractHolonomicReactiveMethod - - A complex reactive navigator: Using space transformations (PTGs) to drive a robot using - an internal simpler holonomic algorithm. See mrpt::nav::CReactiveNavigationSystem + - Holonomic navigation algorithms: Virtual Force Fields (VFF), Nearness +Diagram (ND), ... See mrpt::nav::CAbstractHolonomicReactiveMethod + - A complex reactive navigator: Using space transformations (PTGs) to drive a +robot using an internal simpler holonomic algorithm. See +mrpt::nav::CReactiveNavigationSystem - A number of different PTGs: See mrpt::nav::CParameterizedTrajectoryGenerator - - See the full list of classes in mrpt::nav, or the online page https://www.mrpt.org/list-of-mrpt-apps/application-reactivenavigationdemo/ for a working application (see MRPT/apps/ReactiveNavigationDemo). + - See the full list of classes in mrpt::nav, or the online page +https://www.mrpt.org/list-of-mrpt-apps/application-reactivenavigationdemo/ for a +working application (see MRPT/apps/ReactiveNavigationDemo). * Planned / hybrid navigation: * See mrpt::nav diff --git a/doc/doxygen-pages/lib_mrpt_obs.h b/doc/doxygen-pages/lib_mrpt_obs.h index de9ad6ceb4..e7060b4e39 100644 --- a/doc/doxygen-pages/lib_mrpt_obs.h +++ b/doc/doxygen-pages/lib_mrpt_obs.h @@ -5,38 +5,50 @@ | 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_obs_grp [mrpt-obs] - Back to list of all libraries | See all modules -
+Observation classes for all kinds of robot sensors. -

Library mrpt-obs

-
+ Back to list of all libraries | See all modules
-In this library there are five key elements or groups of elements: - @@ -44,4 +56,3 @@ See the list of classes in mrpt::obs */ - diff --git a/doc/doxygen-pages/lib_mrpt_opengl.h b/doc/doxygen-pages/lib_mrpt_opengl.h index 31605e870c..a37da47c91 100644 --- a/doc/doxygen-pages/lib_mrpt_opengl.h +++ b/doc/doxygen-pages/lib_mrpt_opengl.h @@ -5,16 +5,26 @@ | 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 | - +---------------------------------------------------------------------------+ */ + +---------------------------------------------------------------------------+ + */ + +// clang-format off /** \defgroup mrpt_opengl_grp [mrpt-opengl] +Visualization helpers for 3D rendering of all kind of primitives + Back to list of all libraries | See all modules
-

Library mrpt-opengl

-
+# Library `mrpt-opengl` + +This library is part of MRPT and can be installed in Debian-based systems with: + + sudo apt install libmrpt-opengl-dev + +See: \ref mrpt_from_cmake This library includes several data classes that represent objects that can be inserted into a 3D scene, which can be then rendered or streamed to disk or whatever. @@ -91,4 +101,3 @@ Note: The following extra OpenGL classes are provided by other libraries: */ - diff --git a/doc/doxygen-pages/lib_mrpt_pbmap.h b/doc/doxygen-pages/lib_mrpt_pbmap.h index 4a46ff897a..5cc44be4bc 100644 --- a/doc/doxygen-pages/lib_mrpt_pbmap.h +++ b/doc/doxygen-pages/lib_mrpt_pbmap.h @@ -5,23 +5,38 @@ | 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_pbmap_grp [mrpt-pbmap] - Back to list of all libraries | See all modules -
+Plane-based maps -

Library mrpt-pbmap

-
+[TOC] -This library implements the functionality to build Plane-based Maps (PbMaps) from a set of point clouds plus their corresponding poses, which might be given by e.g. the odometry of a robot. +# Library `mrpt-pbmap` -A PbMap consists of a set of planar entities (patches) described by geometric features (shape, relative position, etc.) and/or radiometric features (dominant color). It is organized as an annotated, undirected graph, where nodes stand for planar patches and edges connect neighbor planes when the distance between their closest points is under a threshold. +This library is part of MRPT and can be installed in Debian-based systems with: -A method for PbMap place recognition (useful for re-localization or loop closure) is also implemented. This method relies on an interpretation tree which applies geometric constraints to efficiently match sets of neighboring planes. + sudo apt install libmrpt-pbmap-dev -Refer to the PbMap Guide (PDF). +See: \ref mrpt_from_cmake + +This library implements the functionality to build Plane-based Maps (PbMaps) +from a set of point clouds plus their corresponding poses, which might be given +by e.g. the odometry of a robot. + +A PbMap consists of a set of planar entities (patches) described by geometric +features (shape, relative position, etc.) and/or radiometric features (dominant +color). It is organized as an annotated, undirected graph, where nodes stand for +planar patches and edges connect neighbor planes when the distance between their +closest points is under a threshold. + +A method for PbMap place recognition (useful for re-localization or loop +closure) is also implemented. This method relies on an interpretation tree which +applies geometric constraints to efficiently match sets of neighboring planes. + +Refer to the [**PbMap Guide (PDF)**](pbmap-guide.pdf). See: - Online web with papers, tutorials, etc: https://www.mrpt.org/pbmap @@ -29,4 +44,3 @@ Refer to the PbMap Guide (PDF). */ - diff --git a/doc/doxygen-pages/lib_mrpt_random.h b/doc/doxygen-pages/lib_mrpt_random.h index 57a54be9cf..ade8cf332a 100644 --- a/doc/doxygen-pages/lib_mrpt_random.h +++ b/doc/doxygen-pages/lib_mrpt_random.h @@ -5,14 +5,16 @@ | 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_random_grp [mrpt-random] -Random number generator C++ library support uniform, Gaussian, multivariable distributions. +Random number generator C++ library support uniform, Gaussian, multivariable +distributions. - Back to list of all libraries | See all modules -
+ Back to list of all libraries | See all modules
# Library `mrpt-random` [New in MRPT 2.0.0] @@ -20,7 +22,9 @@ Random number generator C++ library support uniform, Gaussian, multivariable dis This library is part of MRPT but it's pure C++11 and has no other dependencies. It can be installed in Debian-based systems with: - sudo apt install libmrpt-random-dev + sudo apt install libmrpt-random-dev + +See: \ref mrpt_from_cmake */ diff --git a/doc/doxygen-pages/lib_mrpt_reactivenav.h b/doc/doxygen-pages/lib_mrpt_reactivenav.h deleted file mode 100644 index 2329b57cf4..0000000000 --- a/doc/doxygen-pages/lib_mrpt_reactivenav.h +++ /dev/null @@ -1,22 +0,0 @@ -/* +---------------------------------------------------------------------------+ - | Mobile Robot Programming Toolkit (MRPT) | - | https://www.mrpt.org/ | - | | - | 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_reactivenav_grp [mrpt-reactivenav] - - Back to list of all libraries | See all modules -
- -

Library mrpt-reactivenav

-
- -Since MRPT 1.3.0 this is a meta-library forwarding a dependence to mrpt-nav (\sa mrpt_nav_grp). - -*/ - diff --git a/doc/doxygen-pages/lib_mrpt_rtti.h b/doc/doxygen-pages/lib_mrpt_rtti.h index ccfb7ef85c..35b0ce9722 100644 --- a/doc/doxygen-pages/lib_mrpt_rtti.h +++ b/doc/doxygen-pages/lib_mrpt_rtti.h @@ -22,6 +22,8 @@ This library is part of MRPT and can be installed in Debian-based systems with: sudo apt install libmrpt-rtti-dev +See: \ref mrpt_from_cmake + Any class with RTTI support has to be derived from mrpt::rtti::CObject, either directly or via a hierarchy of inheriting classes. Class factory by name enables deserialization of polymorphic classes in the diff --git a/doc/doxygen-pages/lib_mrpt_scanmatching.h b/doc/doxygen-pages/lib_mrpt_scanmatching.h deleted file mode 100644 index 66c009782e..0000000000 --- a/doc/doxygen-pages/lib_mrpt_scanmatching.h +++ /dev/null @@ -1,22 +0,0 @@ -/* +---------------------------------------------------------------------------+ - | Mobile Robot Programming Toolkit (MRPT) | - | https://www.mrpt.org/ | - | | - | 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_scanmatching_grp [mrpt-scanmatching] - - Back to list of all libraries | See all modules -
- -

Library mrpt-scanmatching

-
- -Since MRPT 1.3.0 this is a meta-library forwarding a dependence to \ref mrpt_tfest_grp - -*/ - diff --git a/doc/doxygen-pages/lib_mrpt_serialization.h b/doc/doxygen-pages/lib_mrpt_serialization.h index 58bb8580f4..77ccaf749a 100644 --- a/doc/doxygen-pages/lib_mrpt_serialization.h +++ b/doc/doxygen-pages/lib_mrpt_serialization.h @@ -21,6 +21,8 @@ This library is part of MRPT and can be installed in Debian-based systems with: sudo apt install libmrpt-serialization-dev +See: \ref mrpt_from_cmake + ## Binary serialization (most efficient) Main classes and concepts associated with this library: diff --git a/doc/doxygen-pages/lib_mrpt_slam.h b/doc/doxygen-pages/lib_mrpt_slam.h index 1a2a1e36b6..e179fe9ad8 100644 --- a/doc/doxygen-pages/lib_mrpt_slam.h +++ b/doc/doxygen-pages/lib_mrpt_slam.h @@ -5,16 +5,28 @@ | 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 | - +---------------------------------------------------------------------------+ */ + +---------------------------------------------------------------------------+ + */ +// clang-format off /** \defgroup mrpt_slam_grp [mrpt-slam] +SLAM and PF-localization algorithms + Back to list of all libraries | See all modules
-

Library mrpt-slam

-
+[TOC] + +# Library `mrpt-slam` + [New in MRPT 2.0.0] + +This library is part of MRPT and can be installed in Debian-based systems with: + + sudo apt install libmrpt-slam-dev + +See: \ref mrpt_from_cmake Interesting stuff in this library: @@ -29,9 +41,8 @@ Interesting stuff in this library: - Data association: The NN and the JCBB algorithms, as very generic templates. See data_association.h - -See the full list of classes in mrpt::slam. -Note that there are many classes +See the full list of classes in mrpt::slam. +Note that there are many classes in that namespace not in the library mrpt-slam, but in libraries mrpt-slam depends on. However, in you set mrpt-slam as a dependence of your project, you can be safe all mrpt::slam classes will be available to you. @@ -40,4 +51,3 @@ See also: For Graph-SLAM, see the namespace mrpt::graphslam in the library mrpt- */ - diff --git a/doc/doxygen-pages/lib_mrpt_stereoslam.h b/doc/doxygen-pages/lib_mrpt_stereoslam.h deleted file mode 100644 index e3a86be5b9..0000000000 --- a/doc/doxygen-pages/lib_mrpt_stereoslam.h +++ /dev/null @@ -1,27 +0,0 @@ -/* +---------------------------------------------------------------------------+ - | Mobile Robot Programming Toolkit (MRPT) | - | https://www.mrpt.org/ | - | | - | 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_stereoslam_grp [mrpt-stereoslam] - - Back to list of all libraries | See all modules -
- -

Library mrpt-stereoslam

-
- -Implementations of stereo-vision visual odometry and SLAM. This library -is experimental and it's under development. - -See the namespace mrpt::stereoslam - - - -*/ - diff --git a/doc/doxygen-pages/lib_mrpt_system.h b/doc/doxygen-pages/lib_mrpt_system.h index 998b5d8522..50d957222e 100644 --- a/doc/doxygen-pages/lib_mrpt_system.h +++ b/doc/doxygen-pages/lib_mrpt_system.h @@ -23,8 +23,9 @@ This C++ library is part of MRPT and can be installed in Debian-based systems sudo apt install libmrpt-system-dev -Refer to the list of submodules for details. +See: \ref mrpt_from_cmake +Refer to the list of submodules for details. ## Name-based argument passing diff --git a/doc/doxygen-pages/lib_mrpt_tfest.h b/doc/doxygen-pages/lib_mrpt_tfest.h index b6fdc67368..7a9bd5a2e4 100644 --- a/doc/doxygen-pages/lib_mrpt_tfest.h +++ b/doc/doxygen-pages/lib_mrpt_tfest.h @@ -5,22 +5,35 @@ | 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_tfest_grp [mrpt-tfest] - Back to list of all libraries | See all modules -
+Algorithms to find optimal transformations from sets of correspondences. + + Back to list of all libraries | See all modules
+ +[TOC] + +# Library `mrpt-tfest` + [New in MRPT 2.0.0] + +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + + sudo apt install libmrpt-tfest-dev -

Library mrpt-tfest

-
+See: \ref mrpt_from_cmake Transformation estimation (tfest): This module provides -functions in charge of solving the optimization problem of aligning a set of 2D or 3D corresponding points, estimating -the optimal transformation between the two frames of reference. +functions in charge of solving the optimization problem of aligning a set of 2D +or 3D corresponding points, estimating the optimal transformation between the +two frames of reference. -Note that this does not include the related iterative ICP algorithm (see mrpt::slam::CICP), included in the library \ref mrpt_slam_grp +Note that this does not include the related iterative ICP algorithm (see +mrpt::slam::CICP), included in the library \ref mrpt_slam_grp See list of all functions: mrpt::tfest diff --git a/doc/doxygen-pages/lib_mrpt_topography.h b/doc/doxygen-pages/lib_mrpt_topography.h index 59cfbdebb8..ffdf86d1f3 100644 --- a/doc/doxygen-pages/lib_mrpt_topography.h +++ b/doc/doxygen-pages/lib_mrpt_topography.h @@ -5,18 +5,30 @@ | 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_topography_grp [mrpt-topography] - Back to list of all libraries | See all modules -
+Topographic functions, geoid transformations. + + Back to list of all libraries | See all modules
+ + +[TOC] -

Library mrpt-topography

-
+# Library `mrpt-topography` + [New in MRPT 2.0.0] -Conversion and useful data structures to handle topographic data, perform +This C++ library is part of MRPT and can be installed in Debian-based systems +with: + + sudo apt install libmrpt-topography-dev + +See: \ref mrpt_from_cmake + +Conversion and useful data structures to handle topographic data, perform geoid transformations, geocentric coordinates, etc... @@ -26,4 +38,3 @@ See mrpt::topography */ - diff --git a/doc/doxygen-pages/lib_mrpt_typemeta.h b/doc/doxygen-pages/lib_mrpt_typemeta.h index 5370b5b628..cc4f146e82 100644 --- a/doc/doxygen-pages/lib_mrpt_typemeta.h +++ b/doc/doxygen-pages/lib_mrpt_typemeta.h @@ -17,6 +17,8 @@ complex STL compound types. Back to list of all libraries | See all modules
+[TOC] + # Library `mrpt-typemeta` [New in MRPT 2.0.0] @@ -25,7 +27,8 @@ in Debian-based systems with: sudo apt install libmrpt-typemeta-dev -[TOC] +See: \ref mrpt_from_cmake + ## Example #1: compile-time type/struct/class names to strings Use mrpt::typemeta::TTypeName to extract a `constexpr` string with a diff --git a/doc/doxygen-pages/lib_mrpt_vision.h b/doc/doxygen-pages/lib_mrpt_vision.h index 29845411db..741707570d 100644 --- a/doc/doxygen-pages/lib_mrpt_vision.h +++ b/doc/doxygen-pages/lib_mrpt_vision.h @@ -10,11 +10,22 @@ /** \defgroup mrpt_vision_grp [mrpt-vision] +Computer vision algorithms + Back to list of all libraries | See all modules
-

Library mrpt-vision

-
+[TOC] + +# Library `mrpt-vision` + [New in MRPT 2.0.0] + +This library is part of MRPT but has no dependencies, so it can be installed +in Debian-based systems with: + + sudo apt install libmrpt-vision-dev + +See: \ref mrpt_from_cmake This library includes some extensions to OpenCV functionality, plus some original classes: @@ -22,9 +33,7 @@ original classes: - The namespace mrpt::vision::pinhole contains several projection and Jacobian auxiliary functions for projective cameras. -- Sparse Bundle Adjustment algorithms. Implemented versions are: - - mrpt::vision::bundle_adj_full : Levenberg-Marquart full optimization of -camera frames (6D) + feature points (3D). +- Sparse Bundle Adjustment algorithms. See \ref mrpt_vision_lgpl_grp - A versatile feature tracker. See mrpt::vision::CGenericFeatureTracker and the implementation mrpt::vision::CFeatureTracker_KL