Main MRPT website > C++ reference
MRPT logo
Change Log

Note: If you are displaying a local version of this page and you have not built the whole HTML documentation, the links above will be broken. Either build the documentation invoking make documentation_html or browse it on-line here.

Version 1.0.1: Released 12-MAY-2013 (SVN 3370)

Version 1.0.0: Released 1-MAR-2013 (SVN 3287)

Version 0.9.6 - (Version 1.0.0-Release_Candidate_4): Released 30-MAY-2012 (SVN 2930)

Version 0.9.5 - (Version 1.0.0-Release_Candidate_3): Released 16-OCT-2011 (SVN 2715)

Version 0.9.4 - (Version 1.0.0-Release_Candidate_2): Released 4-JUN-2011 (SVN 2546)

Version 0.9.3 - (Version 1.0.0-Release_Candidate_1): Released 18-DEC-2010 (SVN 2338)

Version 0.9.2: 27-OCT-2010

Version 0.9.1: Released 1-AUG-2010 (SVN 2076)

Version 0.9.0: Released 3-JUN-2010 (SVN 1880)

Version 0.8.1: Released 6-MAR-2010 (svn 1590).

Version 0.8.0: Released 30-Dec-2009 (SVN 1398).

Version 0.7.1: Released 17-Aug-2009 (SVN 1144).

Version 0.7.0: Released 27-May-2009 (SVN 1042).

Version 0.6.5: Released 8-Feb-2009.

Version 0.6.4: Released 20-Dec-2008 (SVN: 696).

Version 0.6.3: Released 23-Oct-2008.

Version 0.6.2: Released 21-Oct-2008.

Version 0.6.1: Released 27-Aug-2008.

Version 0.6.0: Released 14-Aug-2008.

          - All classes reorganized into a new set of namespaces. Existing user-code out of MRPT will not compile, though changes typically imply just changing the names of the included files and adding some "using namespace XXX;" lines.
          - Better support of user applications using CMake command "FIND_PACKAGE( MRPT REQUIRED )". Refer to:
          - Pointers have been passed to smart pointer all across the code.
          - RawLog files: a new "observations-only" format has been introduced, and now all rawlog are saved compressed using "gzip" automatically (they are decompressed automatically to the user when loaded). Alternatively the user can rename a rawlog file to "name.rawwlog.gz", then use standard tools to extract the uncompressed version, if necessary.
          - The MRPT libraries can now be compiled as a shared library (.dll/.so), by setting MRPT_BUILD_SHARED_LIB from the CMake GUI.
          - New hardware libraries supported:
                  - Cross-platform (Windows/Linux) library ARIA (distributed by ActivMedia Robotics under GNU GPL) integrated into MRPT. Select the appropriate switch in CMake to enable it. See hwdrivers::CActivMediaRobotBase.
                  - New hardware driver for XSens inertial measuring units (IMU). See hwdrivers::CIMUXSens.
          - New applications:
                  - RawLogGrabber, for gathering data in real-time from a robotic platform. See wiki page:
                  - hmtMapViewer, an inspection tool for HMT-SLAM. See wiki page:
          - Visual Studio 6 is not supported anymore from now on: it's a too old compiler, buggy, and lacks many modern C++ features.
          - Many bugs fixed.

  - All changes:
          - Many additions to conform to Debian packaging standards and standard files for creating application menus, etc.
          - Added new "colored points" map & opengl objects. See mrpt::slam::CColouredPointMap and mrpt::opengl::CPointCloudColoured.
          - SceneViewer also is able to read from .gz'd files (.3Dscene files, but can be renamed to .3Dscene.gz if desired).
          - Management of local and UTC times clarifies with new methods. See mrpt::system, time functions.
          - Added a new class for transparent disk-swapped loading of very large datasets. see mrpt::slam::CRawlogXXL.
          - Exception handling prepared to correctly manage bad_alloc exceptions (for out of memory scenarios).
          - Added a 1D function interpolator using splines. See mrpt::math::CSplineInterpolator1D.
          - Added a 6D poses interpolator, using splines. See mrpt::poses::CPose3DInterpolator.
          - Removed built-in zlib library, replaced by wxWidget's one.
          - Added support for easy read and write of .gz files. For the automatic streams, see mrpt::utils::CFileGZInputStream and mrpt::utils::CFileGZOutputStream. For manual operation, see mrpt::compress::zip.
          - New opengl object: mrpt::opengl::C3DSScene for importing complete scenes from 3D Studio files (using the open source lib3ds library, Copyright (C) 1996-2007 by Jan Eric Kyprianidis <> ).
          - Class for storing rawlogs renamed as "mrpt::slam::CRawlog", and enabled for the new observation-only <a href="">rawlog file format</a>.
          - Introduced precompiled headers for a dramatic reduction of compilation time thru the header <mrpt/slam.h>.
          - The method CSerializable::duplicate has been optimized using directly the derived class copy constructor instead of a temporary memory buffer.
          - Created a new metric map: grid map of heights. See mrpt::slam::CHeightGridMap2D.
          - Added a method for estimating the Jacobian of a function by finite differences. See math::estimateJacobian.
          - Source tree has undergone a re-ordering and rename. Now, libraries are named as: mrpt-core, mrpt-hwdrivers, mrpt-ann, etc. and all the sources are in <mrpt>/src.
          - Added generic class for Levenberg-Marquart optimization problems. See utils::CLevenbergMarquardt and the <a href="">wiki tutorial on the topic</a>.
          - Added communications support for the new HOKUYO UTM-30LX (Windows and Linux). Refer to the <a href="" >wiki page</a>.
          - New method introduced to gas distribution mapping: optimized Kalman filter with constant time update. See mrpt::slam::CGasConcentrationGridMap2D.
          - The class utils::CTicTac now does not use dynamic memory, so it's constructor & destructor are faster.
          - Several optimizations applied to 2D and 3D geometry classes (poses::CPoseOrPoint derived ones).
          - Added cross-platform support for "alloca". See system::alloca.
          - Sources updated to be compatible with GCC 4.3 and Visual Studio C++ 2008.
          - Thread statistics now are also implemented for Linux. See system::getCurrentThreadTimes.
          - HWDRIVERS classes unified under the "generic sensor model". See hwdrivers::CGenericSensor.
          - 3D render canvas classes unified under the new class utils::WX_gui::CMyGLCanvas_Base.
          - Added serializable STL classes. See utils::vector_serializable, etc. See utils/stl_extensions.h
          - Added serialization to the whole mapping framework state in HMT-SLAM, and many related classes. See mrpt::hmtslam::CHMTSLAM.
          - lib_hwdrivers: Custom device-dependent initialization commands can be sent when opening a GPS interface. See hwdrivers::CGPSInterface.
          - Joysticks and game-pads fully supported now under both Windows and Linux. See hwdrivers::CJoystick.
          - Added new applications:
                  - RawLogGrabber, for gathering data in real-time from a robotic platform. See wiki page:
                  - hmtMapViewer, an inspection tool for HMT-SLAM. See wiki page:
          - Added new examples:
                  - /samples/UTILS/fileSystemWatcher: Demonstrating watching of directory changes. Based on class utils::CFileSystemWatcher.
          - RawLogViewer:
                  - A new facy custom tree view, extremely more efficient for very large datasets and with a time-line to graphically visualize timestamps.
                  - Many new commands: resort from timestamps, regenerate timestamps from GPS observations, etc.
                  - In the "raw-map" window the user can change now the number of types of maps to build from odometry + raw observations.
                  - Implemented building a map from a rawlog with RTK GPS data. See "RawMap" dialog.
          - BUGS FIXED:
                  - Textual representation of dates and times with seconds represented with just one digit.
                  - Fixed wrong computation of transformation from GPS to local coordinates.
                  - Exception raised if an empty CImage is serialized.
                  - Wrong conversion of old serialization versions of gridmaps.
                  - Parameters of a gas gridmap were ignored after loading from .ini.
                  - Changing by hand the coordinates in mrpt::poses::CPose3D was not persistent when serializing the object.
                  - Added missing "+ operators" to mrpt::poses::CPoint3D.
                  - mrpt::slam::CSimplePointsMap: Serialization was not cross-platform (it used "unsigned long" data type).
                  - mrpt::slam::CObservationGPS didn't save the "sensorPose" when streaming.

  - MAY-2008:
          - mrpt::poses::CPointsMap now also has a horizontal tolerance range for "horizontal" or "planar" maps.
          - Pseudorandom number generator algorithm Mersenne twister MT19937 implemented in utils::RandomGenerator for uniform distributions (in turn used for the rest). This assures same PRNs over different platforms.
          - gui::CDisplayWindowPlots now can also manage 2D bitmaps plots, that can be combined with 2D vectorial plots. See gui::CDisplayWindowPlots::image.
          - CPointsMap::compute3DMatchingRatio is now ~6 times faster (using KD-tree).
          - Missing implementation of KD-tree for 3D points in mrpt::poses::CPointsMap now complete.
          - Added support for file-system watching. See utils::CFileSystemWatcher.
          - SceneViewer:
                  - New option to allow free rotation and zoom of the camera even for scenes with the flag "followCamera".
          - RawLogViewer:
                  - Added importer for "rtl" log files.
                  - Added capability to export several GPSs to text files.
                  - Sensor labels appear in the tree view.
          - BUGS FIXED:
                  - "mrpt::slam::CSensFrameProbSequence::operator =" was wrongly implemented.
                  - In gridmaps (mrpt::slam::COccupancyGridMap2D):
                          - Calling mrpt::slam::COccupancyGridMap2D::resizeGrid only supports growing the grid (not shrinking). This is now forced internally to fix impredictable results.
                          - In some situations, inserting a 2D laser scan ray ending very close to the border didn't make the grid to extend its size, and may lead to memory corruption.
                          - Disabled ROWSIZE_MULTIPLE_16 in mrpt::slam::COccupancyGridMap2D to avoid rare memory corruptions (bug to be tracked down if wanna enable it in the future again...).
                  - Fixed support for Bumblebee in external applications through CMake system (MRPTconfig.cmake).
                  - Wrong reporting of stacked exceptions messages.
                  - Fixed wrong calculation of (x,y,z) coordinates from latitude, longitude and height, in mrpt::slam::CObservationGPS.
                  - utils::CClientSocket did send debug information in the middle of actual data!. Thanks to Vicente Arevalo for reporting.

Version 0.5.5: Released April 30, 2008.

Version 0.5.4: Released March 6, 2008.

Version 0.5.3 (First public release, January 31, 2008)

Version 0.5.2 (Released December 26, 2007)

Version 0.5.1 (Released for BABEL, November 13, 2007)

Version 0.4 (Released for BABEL, October 13, 2007)

Version 0.3 (Released for BABEL v3.800, July 2007)

  - JUL-2007:
          - A new class for Range-Only Localization (mrpt::slam::CRejectionSamplingRangeOnlyLocalization).
          - Range-Only SLAM is now supported with a new map class (mrpt::slam::CBeaconMap), which has been also integrated in mrpt::slam::CMultiMetricMap.
          - A new class for parsing messages from/to a USB FTDI device (hwdrivers::CInterfaceFTDIMessages).
          - Added a new class for 3D Point PDF representation as a SOG (poses::CPoint3DPFGSOG).

Version 0.2

  - JUN-2007:
          - From now on MRPT is updated through Subversion (SVN).
          - Start solving portability issues towards a full Linux support.
  - MAY-2007:
          - Included the makefile project for "Code::Blocks" compiler, for supporting Linux GCC C++ compiler.
  - FEB-2007:
          - BUG FIXED: In "CSerializable::duplicate()"
          - Added new config file-like interfaces. See utils::CConfigFileBase and derived classes.
          - Added utils::CStringList.
  - JAN-2007:
          - New fast image correlation method based on 2D FFT. See CImage::cross_correlation_FFT
          - 2D FFT functions added to utils::MATH
          - The class utils::CConfigFile now can read entries as "std::vector"'s.
          - New utilities added to utils::MRPT_OS for tokenizing strings.

Version ALFA 0.1 (Published with BABEL v3.0.0, Jan-2007)

  - JAN-2007:
          - The classes "utils::CBitmapXX" have been removed, and BMP image format operations appropriately integrated into existing utils::CImage and utils::CImageFloat classes.
          - Now 3D scenes are supported through "opengl::COpenGLScene", objects in "mrpt::opengl" namespace, and an external 3D Scene viewer application for Windows.
  - DEC-2006:
          - Addition of TCP/IP sockets, through classes utils::CServerTCPSocket and utils::CClientTCPSocket, allowing serialization of MRPT objects through a TCP socket.
          - New classes in HWDRIVERS namespace allow using serial ports and interfacing GPS units.
          - A new interface utils::CCanvas has been defined for enabling drawing primitives to be implemented in graphical classes.
          - New class gui::CDisplayWindow for visualization of images in a GUI.
          - Portability issues solved for compatibility with Microsoft Visual Studio 2005 (VC8), including the new standard C++ library "secure" functions.
          - A new class "mrpt::slam::CMultiMetricMap" has been introduced for storing any set of metric maps, in a much more convenient and flexible way that the previous (non existing now) class "mrpt::slam::CHybridMetricMap"
  - NOV-2006:
          - The new Optimal Auxiliary Particle Filter has been implemented in "poses::CPosePDFParticles", and in "mrpt::slam::CMultiMetricMapPDF"
          - BUG FIXED: In matrix inversion, into class "math::CMatrixTemplateNumeric".
          - RANSAC method added for correspondences-pair lists, in "mrpt::slam::CICP::robustRigidTransformation"
  - OCT-2006:
          - The Dieter Fox's algorithm "KLD-sampling" for adative particle filter has been implemented in the class "poses::CPosePDFParticles"
          - Major changes in the way bayes::CParticleFilter works: Now there are four diferent particle filter algorithms defined.
          - New utils::MATH functions added (chi-square and normal quantiles, etc...)
          - A new probabilistic motion model has been added to "mrpt::slam::CActionRobotMovement2D", the particles draw process described in Thrun's 2006 book.
  - SEP-2006:
          - The Lu & Milios algorithm now works with any user-supplied matrix of pose constrains. See "mrpt::slam::CConsistentObservationAlignment".
          - A new generic matrix template has been created, "math::CMatrixTemplate" and "math::CMatrixTemplateNumeric", which are now the base for math::CMatrix and math::CMatrixD.
          - Template functions defined for dealing with STL's vectors: basic math operations, printing to screen,... in "utils::MATH"
          - The mrpt::slam::CICP algorithm now also deals with mrpt::slam::CLandmarksMap metric maps.
  - AUG-2006:
          - A new SLAM framework has been implemented in the main class mrpt::slam::CHierarchicalMappingFramework
          - A new class added for managing INI-like config files "utils::CConfigFile".
          - Hill-climbing algorithm "utils::CHillClimbing" added to the library.
          - Improved SIFT features detection, triangulation and matching in "mrpt::slam::CLandmarksMap" for pairs of stereo images.
  - JUN-2006:
          - New functions added to "poses::CPointPDFGaussian" for Bayesian fusion, correspondence likelihood,...
  - MAY-2006:
          - Introduction of "pixel to 3D" functions in vision
          - SIFT features extractor moved to vision
  - ABR-2006:
          - mrpt::slam::CLandmarksMap now works with SIFT features: loading from images, fusing,...
          - SIFT features extractor in "utils::CImage"
  - FEB-2006:
          - The class mrpt::slam::COccupancyGrid2D now uses 16bit for storing cell values, and many new options added.
          - Rao-Blackwellized Particle filters now supported in class mrpt::slam::CMultiMetricMapPDF
  - JAN-2006:
          - Landmarks-based maps now supported with mrpt::slam::CLandmarksMap
          - ZIP compression supported with the introduction of classes in the new namespace compress::zip.
          - Rao-Balckwellized particle filter mapping supported with mrpt::slam::CMetricMapBuilderRBPF
          - Points map are now fused considering the weights of points (mrpt::slam::CSimplePointsMap)
          - Definition of a new class mrpt::slam::CMetricMapBuilding for grouping map building methods.
          - Addition of a new class for 3D occupancy grid building.
          - New types of points map derived from mrpt::slam::CMetricMap.
  - DEC-2005:
          - New methods added to MRML, for circular robots paths planning. See the base class mrpt::slam::CPathPlanningMethod
          - The method by Lu & Milios for consistent maps alignment has been integrated into the MRML library, in the mrpt::slam::CConsistentObservationAlignment
          - The CObservation-derived classes has been modified to adhere to the "BABEL modules proposal for robotics architecture" (Technical report, dec.2005)
          - Metrics maps has been grouped using a common base class: mrpt::slam::CMetricMap
          - The spectral-based method for maps partitioning has been integrated into the MRML library, in the class mrpt::slam::CIncrementalMapPartitioner.
          - CObservationLaserRangeScan renamed as CObservation2DRangeScan.
  - NOV-2005:
          - New types of observations added (mrpt::slam::CObservation descendant classes) for images (from a camera) and for sonar readings.
  - OCT-2005:
          - New class added: A simple SLAM method for 2D localization and simple, metric maps building (non-hierarchical global maps). See mrpt::slam::CSimple2DSLAM.
          - Addition of "streaming versioning" for mrpt::utils::CSerializable classes.
          - A new observation type has been introduced, the mrpt::slam::CObservationIRRing.
          - Introduction of 3D poses using 4x4 transformation matrices and yaw/pitch/roll angles.
          - Polymorphism mechanishs for mrpt::utils::CSerializable derived classes and correct streaming using "<<" and ">>" operators has been provided through a set of "#define"'s and functions. See CSerializable.h
  - SEP-2005:
          - Reactive Navigator totally rewritten for integration into MRPT applications repository (See MRPT::reactivenav::CReactiveNavigationSystem).
          - Added MRPT applications repository section.
  - AUG-2005:
          - Particle filters basic algorithm added to UTILS library.
          - Bitmap classes (utils::CBitmap) totally rewritten for a sensible use of classes inheritance.
  - JUN-2005:
          - First version of the library! there are a few classes for matrix manipulation, 2D point map management, and an implementation of the ICP algorithm.

Page generated by Doxygen for MRPT 1.0.1 SVN:3369M at Sun May 12 14:03:29 CEST 2013