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.
RTTI (RunTime Type Information): A cross-platform, compiler-independent RTTI system is built around the base class mrpt::utils::CObject.
Smart pointers: Based on std::shared_ptr<>, any class CFoo inheriting from CObject, automatically has associated smart pointers types CFoo::Ptr and CFoo::ConstPtr. MRPT implements advanced smart pointers capable of multi-thread safe usage and smart pointer typecasting with runtime check for correct castings (tutorial]).
Image handling: The class mrpt::img::CImage represents a wrapper around OpenCV IplImage's, plus extra functionality such as on-the-fly loading of images stored in disk upon first usage. The internal IplImage is always available so OpenCV's functions can be still used to operate on MRPT images.
Serialization/Persistence: Object serialization in a simple but powerful (including versioning) format is supported by dozens of MRPT classes, all based on mrpt::serialization::CSerializable.
Streams: Stream classes (see the base mrpt::utils::CStream) allow serialization of MRPT objects. There are classes for tranparent GZ-compressed files, sockets, serial ports, etc.
XML-based databases: Simple databases can be mantained, loaded and saved to files with mrpt::db::CSimpleDatabase.
Name-based argument passing: See the structure mrpt::system::TParameters
Configuration files: 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.).
MRPT defines a number of generic math containers, which are:
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:
This namespace includes threading tools such as critical sections, semaphores or utilities such as the template mrpt::synch::CThreadSafeVariable that converts any variable into a pair variable-critical section.
Here can be found functions for filesystem managing, watching directories, creating and handling threads in an OS-independent way, etc.
GZip compression methods can be found in this namespace.
|This class allows loading and storing values and vectors of different types from ".ini" files easily. More...|
|This class allows loading and storing values and vectors of different types from a configuration text, which can be implemented as a ".ini" file, a memory-stored string, etc... More...|
|This class implements a config file-like interface over a memory-stored string list. More...|
|This is a virtual base class for sets of options than can be loaded from and/or saved to configuration plain-text files. More...|
|This class implements the tables of databases. More...|
|A wrapper of |
|An arbitrary list of "annotations", or named attributes, each being an instance of any CSerializable object (Multi-hypotheses version). More...|
|An arbitrary list of "annotations", or named attributes, each being an instance of any CSerializable object. More...|
|A virtual base class that implements the capability of importing 3D point clouds and faces from a file in the Stanford PLY format. More...|
|A virtual base class that implements the capability of exporting 3D point clouds and faces to a file in the Stanford PLY format. More...|
|class||mrpt::serialization::CMemoryChunkBase< Derived >|
|A memory buffer (implements CStream) which can be itself serialized. More...|
|By creating an object of this class, all the output to std::cout (and std::cerr) will be redirected to a text file, and optionally also shown on the console. More...|
|An event sent by any CObservable object (automatically) just before being destroyed and telling its observers to unsubscribe. More...|
|A structure for holding correspondences between two sets of points or points-like entities in 2D or 3D. More...|
|A list of TMatchingPair. More...|
|template<typename T , class... Args>|
|std::shared_ptr< T >||mrpt::make_aligned_shared (Args &&... args)|
|Creates a |
|template<class POSE_T >|
|void||mrpt::poses::readFileWithPoses (const std::string &fname, std::vector< POSE_T > *poses_vec, std::vector< mrpt::system::TTimeStamp > *timestamps=NULL, bool substract_init_offset=false)|
|Parse the textfile and fill in the corresponding poses vector. More...|
|std::shared_ptr<T> mrpt::make_aligned_shared||(||Args &&...||args||)|
shared_ptr with aligned memory via aligned_allocator_cpp11<>.
|void mrpt::poses::readFileWithPoses||(||const std::string &||fname,|
|std::vector< POSE_T > *||poses_vec,|
|std::vector< mrpt::system::TTimeStamp > *||timestamps =
Parse the textfile and fill in the corresponding poses vector.
The file to be parsed is to contain 2D or 3D poses along with their corresponding timestamps, one line for each.
The expected format is the following:
For 2D Poses: timestamp x y theta (in rad) For 3D Poses in RPY form : x y z yaw pitch roll For 3D Poses in Quaternion form : x y z qw qx qy qz For 3D Poses in Quaternion form [TUM Datasets] : x y z qx qy qz qw
The 2D format abides to the groundtruth file format used by the GridMapNavSimul application
The TUM format is compatible with the groundtruth format for the TUM RGBD datasets as generated by the * rgbd_dataset2rawlog MRPT tool.
|[in]||fname||Filename from which the timestamps and poses are read|
|[out]||poses_vec||std::vector which is to contain the 2D poses.|
|[out]||timestamps||std::vector which is to contain the timestamps for the corresponding ground truth poses. Ignore this argument if timestamps are not needed.|
|[in]||substract_init_offset||If true, the filled poses are to start from 0, that means, that if the first found pose is non-zero, it's going to be considered and offset and substracted from all poses in the file.|
|Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at lun oct 28 00:14:14 CET 2019|