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.
Levenberg-Marquardt and many other functions in mrpt::random converted into templates.
Added some minor methods to graphic classes, especially CSetOfLines (Pablo Moreno).
Matrix's method to save as plain text has been extended with the possibility of adding user comments and selecting the output format. See mrpt::math::TMatrixTextFileFormat.
Added ray trace simulation methods to CRenderizable and every children class except for C3DSScene, CEllipsoid, CCylinder, CGeneralizedCylinder, CPolyhedron and some classes which don't represent any surfaced object (Pablo Moreno).
Added some classes to mrpt::opengl namespace (Pablo Moreno):
CAngularObservationMesh to represent a 3D world obtained from a set of traced rays.
CCylinder to represent a cylinder, cone or truncated cylinder.
CGeneralizedCylinder to represent a generalized cylinder with an axis roughly perpendicular to the Z coordinate.
CPolyhedron to represent any object without curves. Includes methods to create common polyhedron, although still lacks some geometric methods.
CRenderizable::setColor method now works properly (affecting every child) when used in a CSetOfObjects or CSetOfTriangles (Pablo Moreno).
Added method mrpt::CMatrixTemplateNumeric::rank to calculate the rank of a matrix (Pablo Moreno).
Important changes to improve the design of mrpt::opengl classes: "render" method is "const", more set/get methods instead of public members, etc.
New exception class mrpt::utils::CExceptionEOF, used to distinguish between normal and erroneous EOFs found while de-serializing objects from a stream.
Added support for exclusion areas to mark sensed point as invalid in laser scanners. See C2DRangeFinderAbstract::loadExclusionAreas
New method CPose3D::composePoint for more efficient 3D pose+point composition.
New examples:
icp3D: Demonstration of usage for 3D-ICP.
rayTrace: Demo of 3D ray tracing (Pablo Moreno).
leastSquares: Demonstration of linear least squares interpolation.
SceneViewer3D:
New menu action "Take snapshot" (F2).
RawLogViewer:
New combo-box for selecting among different, automatically detected paths for external images. For example, this allows quickly changing between rectified and original images.
All I/O file operations now support the gz-compressed format.
Edit dialog: Support for multiple selections instead of the old combos.
Menu "regenerate GPS" timestamps now allows operating over several sensor labels at once.
"Raw Map" module: Now builds 3D maps from sequences with 3 RTK GPS.
mrpt::utils::format now works for strings of arbitrarily large lengths.
Visual Studio: Exception when mrpt::utils::format tries to generate a too long string.
Wrong name of mrpt-zlib libs when compiling without wxWidgets and as DLL.
Compilation of app grid-matching fails (SF 2490011, Fabian Menges).
CPose3DInterpolator: Solved spureous transitions when "yaw" crosses the +-PI threshold.
RawLogViewer: Comments text block was lost after some edit operations.
Fixed all the warnings: "dpkg-shlibdeps: warning: dependency on ... could be avoided if ... were not uselessly linked against it (they use none of its symbols)".
Fixed an issue with architectures with big endiannes. Fixed Debian bug #509366 .
Version 0.6.4: Released 20-Dec-2008 (SVN: 696).
Full support for compiling all the libraries as DLLs under Windows.
Topography helper methods are now grouped in a new namespace: mrpt::topography
mrpt::opengl container classes now have a templatized getByClass<>() method.
New interface class for generic PTU called CPtuBase. (Jose Raul Ruiz Sarmiento)
New classes for Directed Perception PTU-46-17.5 and PTU Hokuyo interfacing. See class mrpt::hwdrivers::CPtu and mrpt::hwdrivers::CPtuHokuyo. (Jose Raul Ruiz Sarmiento)
Fixed the destination of MRPTConfig.cmake in "make install" (and debian packages) such CMake can now automatically find MRPT without asking the user.
Added the target "make uninstall" for Linux/Unix systems.
Added mime type files for installation in Linux systems (FreeDesktop-compatible, e.g. KDE, Gnome).
Created test targets. Use: "make", "make test"
Better portability with new HAVE_XXX entries in the "config.h" file.
Compilation with MinGW/GCC under Windows now supported. Refer to the guide on the wiki .
Occupancy grids now have an alternative method to insert laser scans (now set by default), which takes into account the "widening" of the laser beams with distance. See the insertionOptions member of mrpt::slam::COccupancyGridMap, and also the gridmaps tutorial.
New configuration pragma MRPT_ALWAYS_CHECKS_DEBUG_MATRICES, enabled by default. The old MRPT_ALWAYS_CHECKS_DEBUG is not disabled by default for speed up in a number of classes under Release compilation.
New class for pixel color retrieval with sub-pixel accuracy from images with transformed coordinates. See mrpt::utils::CMappedImage
New image processing operations: rectify, Median and Gaussian filter, etc... In mrpt::utils::CMRPTImage.
New method to merge several multivariate Gaussians in a Gaussian mixture (SOG) by minimizing the KL-divergence. See mrpt::poses::CPosePDFSOG::mergeModes.
Application SceneViewer renamed to SceneViewer3D to solve the Debian bug #505272 .
Added support for grabbing FireWire cameras using the library dc1394-2 (The Windows port of dc1394-2 is not released yet). See the new class mrpt::vision::CImageGrabber_dc1394.
New methods in matrix classes (and for vectors in mrpt::math::loadVector) for initializing directly from const C arrays.
RawlogViewer:
Many small improvements in laser & image animations.
New menu commands for transforming rawlogs, manipulating gps data, etc...
rawlog-grabber:
Camera sensors now save images to a external directory. This format is also supported by RawlogViewer and dramatically reduces the cost of visualizing and loading large rawlogs.
Support for high-speed & high-resolution IEEE1394 cameras through the class mrpt::hwdrivers::CCameraSensor -> grabber_type = dc1394.
New examples:
ptuDPerception: Example of use performs a simple scan.
ptuHokuyo: A demostration of how coordinate ptu and hokuyo for obtain a map of points that we show using a opengl window.
sog-merge: Algorithm for merging SOG pose pdfs.
pioneerRobotDemo: A demonstration of connection to a Pioneer robot (ActiveMedia Robotics) and some data requests.
gps-coordinates: Computation of XYZ local coordinates between two precise GPS measurements.
New applications:
grid-matching: A demonstration of algorithms for occupancy grid map matching. See the application page.
stereo-calib-gui: A tool for calibrating stereo cameras. Based on code from the new OpenCV 1.1.0 and the OpenCV book (requires OpenCV 1.1.0).
New class mrpt::poses::CPoseRandomSampler to efficiently draw samples from any 2D/3D pose PDF. Used to refactor code in some SLAM classes. E.g: pf-localization is now 20% faster.
New version 0.3: A full 6D state if always kept, even if the robot moves on a flat surface only. This enables experimenting with 6D SLAM approaches based on particle filtering.
RawLogViewer, changes:
Proper display of IMU observations with all their data fields.
Dialog "Edit" now also processes files gz-compressed.
Dialog "Motion model" allows modification of a part of the rawlog only.
New examples:
feature_extraction: Test for image feature detection using KLT, Harris and SIFTs.
ro-localization: Range-Only Localization with particle filters. See its wiki page.
simul-grid: A command-line application to simulate rawlogs of laser scans using a world modelled by a grid map.
GridmapNavSimul: A GUI application which simulates a robot controlled by a joystick and generate rawlogs with noisy odometry and laser scans plus ground truth. See the wiki.
BUGS FIXED:
Link errors in examples if paths have blank spaces.
ReactiveNavigationDemo crashes with VFF method (Xuan Vu: SF #2183187).
RawlogViewer crashes when opening logs with embedded images (Xuan Vu: SF #2182167).
USB laser scanner data acquisition: wrong bit mask in mm mode.
rawlog-grabber: Loss of 1 observation per grabbing period fixed.
mrpt::utils::CFileStream: Error when opening a file for append (fomAppend) and the file didn't exist.
mrpt::slam:COccupancyGridMap2D: fixed marking as occupied cells at the end of truncated rays when shorter than the "maxDistanceInsertion".
HOKUYO communications reconnect even if USB cable unplugged & plugged again.
New, more robust version of Linux serial port.
particleFilterApplication now supports ".gz" input files as well.
"zlib" & "jpeglib" included as separate libraries, for Windows in the case of not having wxWidgets.
xmlParser library files (src/core/utils/xmlparser/*): Legal issue fixed by replacing license with a BSD-like license from Frank Vanden Berghen (thanks!).
New target (Linux only): "make documentation_tutorial".
New examples:
gravity3d: Demonstration of 3D animation and physics simulation.
New applications:
simul-landmarks
simul-beacons
BUGS FIXED:
Communications with HOKUYO in Linux eventually crashes.
Error in "make install", tried to copy tutorial.ps.gz intended for Debian packages. (Thanks sisyphus me)
Wrong text format of dates & times in mrpt::system functions.
All Debian scripts & files moved away from MRPT source tree for consistency.
Version 0.6.0: Released 14-Aug-2008.
IMPORTANT CHANGES:
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.
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 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 <www.kyprianidis.com> ).
Class for storing rawlogs renamed as "mrpt::slam::CRawlog", and enabled for the new observation-only rawlog file format.
Introduced precompiled headers for a dramatic reduction of compilation time thru the header <mrpt/core.h>.
The method CSerializable::duplicate has been optimized using directly the derived class copy constructor instead of a temporary memory buffer.
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 wiki tutorial on the topic.
Added communications support for the new HOKUYO UTM-30LX (Windows and Linux). Refer to the wiki page.
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 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.
APR-2008:
New 2D font render engine in utils::CMRPTCanvas. It now supports a number of different fonts, including CJK (Chinese-Japanese-Korean) characters.
HOKUYO URG04 laser scanner interface now works for Linux and Windows. See hwdrivers::CHokuyoURG and the wiki page.
Serialization format changed: added an end-flag and 5 bytes saved per dumped object. See the serialization description here.
Management of 3D scenes greatly improved through the introduction of multi-viewports. This has been a major change, but compatibility with old code has been maintained as much as possible. See opengl::COpenGLScene, or the tutorial.
Generation of HTML and CHM documentation has been integrated in the project workspace, as "make documentation_XXX" for "make" or new projects in Visual Studio.
Occupancy grids reimplemented with a discrete representation of log-odds. Most common operations are now faster (e.g. inserting a laser scan is x10 faster!). See mrpt::slam::COccupancyGridMap and the gridmaps tutorial.
The file "MRPT_version.h" is now automatically updated from CMake with the version + SVN (if local copy is a repository).
Socket classes are now fully implemented for Linux and Windows. See utils::CClientTCPSocket and utils::CServerTCPSocket.
Added two new CStream classes: utils::CFileInputStream, utils::CFileOutputStream, specializations of the old utils::CFileStream.
File stream classes rewritten based on standard std::iostream classes (faster I/O). See utils::CFileStream.
Examples can now be built and run from any directory, through the new config file: "MRPT_examples_config.h".
Added a new way to store images within utils::CMRPTImage: external storage in separate files, to enable managing very large rawlogs efficiently. It is transparent to the user, the images will be loaded automatically from disk when needed.
The following synchronization classes can now be safely copied (eg. within STL containers) and they still refer to the same OS's synchronization object: synch::CSemaphore, synch::CCriticalSection, synch::CEvent.
New class utils::CReferencedMemBlock for memory blocks that have to be shared between objects when copied with "=".
Major revision of many classes to satisfy design rules in Scott Meyers' "Effective C++ book" (-Weffc++ gcc option).
Added new examples:
/samples/MRML/pathPlanning: Demonstrating path finding in occupancy grid maps for circular robots.
/samples/MRML/benchmark-gridmap
/samples/MRML/gridMapLikelihoodCharacterization
/samples/HWDRIVERS/HOKUYO_laser_test: Added example for HOKUYO laser range finder.
Re-factorization of the main library (lib_MRPT) for faster rebuild and better modularity. New libraries in "/apps/lib_XXX":
lib_HMTSLAM.
lib_HWDRIVERS.
RawLogViewer version 2.2:
Now the user can choose the format (png,jpg,...) of the image files when generating image lists, transforming into external storage image observations, etc.
BUGS FIXED:
No timestamp saved in rawlogs for some observations.
Extra NULL character stored in type list in utils::CTypeSelector.
MAR-2008:
New classes added in file "UTILS/safe_pointers.h" for making classes with pointer members safer.
Added switches to CMake system to disable MRPT_TRY_START/END and ASSERT_ blocks, for speed up on well tested applications.
Added new class utils::CMemoryChunk.
Added a new application for building metric maps from ".simplemap" files.
Added a class for message passing between threads. See utils::CMessageQueue.
Created mrpt::slam::TKLDParams to unify KLD-sampling parameters across different classes.
Particle filter classes re-organized: options are now kept in bayes::CParticleFilter, and steps are run with CParticleFilter::executeOn, to avoid pointers (less safe) and be more sensible.
Added a tolerance threshold for the pitch/roll of laser scans to be treated as "horizontal" in mrpt::slam::COccupancyGridMap2D.
A textual label added to all observations to describe its sensor (See CObservation::sensorLabel).
All geometry, PDFs, and Kalman Filter classes passed from float -> double.
Added a new, more efficient implementation to bayes::CKalmanFilterCapable, processing one observation (not each scalar component) at once.
Added new fast operations to matrices. See math::CMatrixTemplateNumeric.
Fixed the small memory leak of the ANN library by calling annClose.
SceneViewer:
Scenes are compiled into OpenGL lists for efficiency.
RawLogViewer version 2.2:
Added a command to convert images of old rawlogs into delayed-load images.
Support for delayed-load images: now much larger rawlogs can be managed efficiently.
Added "compact rawlog" command: group consecutive actions & observations.
Added "loss-less decimation".
Added "edit rawlog" by name of sensor.
Now two monocular images can be displayed simultaneously in the "View images as video"-module.
Added "export/import to ALOG format".
BUGS FIXED:
Fixed compiling errors when compiling under Linux without GL/GLUT.
Wrong copy of 3D angles in CPose3DPDFGaussian::copyFrom.
Missing a valid, secure operator (operator =) for bayes::CParticleFilterData.
Compiling errors due to non-ASCII Spanish characters (thanks to Zhe Zhang).
Unpredictable result if a 2D laser scan with all invalid points is inserted in a pointsmap.
Version 0.5.4: Released March 6, 2008.
MAR-2008:
Size variables in mrpt::poses::CPointsMap, math::CPolygon, and ReactiveNavigationLibrary passed to "size_t".
Thread join implemented in Windows.
Added a new class synch::CCriticalSectionLocker to assure consistent critical section leaving in any situation (exceptions, programmer's mistakes,...).
Implemented Iterative Kalman Filter (IKF). See bayes::CKalmanFilterCapable.
Next MRPT release will be published under the GNU GPL version 3 (comment blocks updated in all source files).
Correspondences between point maps implemented with KD-tree: "classic ICP" is now ~10x faster.
Selecting 8bits/16bits cell size in occupancy grid maps.
Enabling code profiling (GNU GCC only).
Added new applications:
icp-slam: A very naive mapping algorithm based on a single metric map & ICP laser scan alignment. See mrpt::slam::CMetricMapBuilderICP.
BUGS FIXED:
Copy operator of 6D poses didn't work always as expected.
Pose composition of 6D Gaussian poses (poses::CPose3DPDFGaussian) used wrong Jacobians.
FEB-2008:
Added a new application: camera-calib, by Vicente Arevalo (University of Malaga).
Added "point size" property to UTILS:opengl::CPointCloud.
Windows only: OpenCV linked again as a DLL instead of a static library, in order to free 30Mb in MRPT packages, useless for non-Windows users.
RawlogViewer & SceneViewer: Directory of last opened file now saved when invoking programs with file as command-line argument.
Added a new mechanism for displaying mathematical graphs using MATLAB-like "plot" commands. See gui::CDisplayWindowPlots.
Visual Leak Detector integrated in the CMake build system.
Extended Kalman Filter implementation rewritten from scratch. See bayes::CKalmanFilterCapable.
Implemented missing operations (move,resize,...) in gui::CDisplayWindow & gui::CDisplayWindow3D.
New implementation of the Kalman Filter in mrpt::slam::CRangeBearingKFSLAM: 'a la Davison', orders of magnitude faster than naive Kalman (new version 0.2 of application "kf-slam").
Improved 3D/6D geometry implementation: x2 speed-up in (inverse) pose compositions (utils::CPoseOrPoint and derived classes).
Addition of a new matrix class: math::CMatrixFixed, for compile-time known sizes (more efficient??).
Fixed compiling errors if MRPT_HAS_WXWIDGETS = 0.
Generation of CMakeLists fully automated for samples.
Added support for "pkg-config libMRPT --libs --cflags" if the library is make install'ed, UNIX only.
"Save as..." implemented in gui::CDisplayWindow.
Added new examples:
samples/UTILS/threadsTest, demonstrating the creation of threads and synchronization.
UTILS/benchmark-matrix.
samples/UTILS/bayesianTracking, implementing a very simple bearing & tracking problem with both a EKF and a particle filter (PF).
gui::CDisplayWindow & gui::CDisplayWindow3D timeout waiting to close windows after class destruction.
Version 0.5.3 (First public release, January 31, 2008)
JAN-2008:
Small changes in CMake files to prepare first public source release.
utils::WxSubsystem created as a centralized manager of GUI windows in the MRPT using the cross-platform wxWidgets. Now used for CDisplayWindow & CDisplayWindow3D.
Application "ReactiveNavigationDemo" rewritten using wxWidgets and integrated in the MRPT CMake tree.
Bumblebee camera support integrated in CMake file system.
RawLogViewer 2.1 finished.
SceneViewer 1.1 finished.
New methods added to matrixes and to the MATH namespace.
"mrpt::slam::CSensFrameProbSequence" and "mrpt::slam::CIncrementalMapPartitioner" modified to work with full 3D/6D poses rather than planar robot poses only.
Added a working example of EKF-SLAM including a sample dataset.
Tree structure modified for clarity, clean up of files at the root directory.
BUG FIXED: Invalid encoder info in CActionRobotMovement2D.
New methods added to CRawlog to enable a better encapsulation of the internal list of objects as "private".
NOV-2007:
BUG FIXED: CObservationGPS didn't load from CStream in Linux. Serialization version 1 is now portable.
Added the sprintf-like function "format" for std::string's.
Integration of xmlParser library within utils::CSimpleDatabase.
A new class for managing the custom USB board that interfaces SRF10 ultrasonic range finders. Class hwdrivers::CBoardSonars.
Class hwdrivers::CBoardENoses has been finished and tested with the real devices.
Many includes in "utils_defs.h" moved to those source files really requiring them, to speed up compilation.
Fixs to allow compiling using the free Borland C++ 5.5.1 compiler from CMake makefiles.
Added new sample for eNose board interface.
Version 0.5.1 (Released for BABEL, November 13, 2007)
NOV-2007:
BUG FIXED: math::generateAxisBaseFromDirection now returns all the three vectors normalized.
Implemented Sum of Gaussians (SOG) as a way to create the PDF of a beacon for RO-SLAM (in mrpt::slam::CBeaconMaps).
Added a new example to "samples/MRML": beaconRawlogSimulator.
Added a new class for interfacing an "e-Noses" board via USB, in hwdrivers::CBoardENoses.
OpenCV added as a monolithic, static linking library to avoid DLL dependencies (for Windows).
New wiki-based website. Old doxygen-based documentation headers (.h) removed.
BUG FIXED: Memory leaks in the MRPT class registration system and in utils::CTicTac have been removed (Using "Visual Leak Detector" it seems there are no more leaks by now...).
BUG FIXED: THROW_EXCEPTION_XXX macros redesigned to avoid eventual exceptions in wxWidgets applications.
OCT-2007:
Methods "computeMatchingWith2D" modified for a sensible usage of the "const" modifier.
Added new class mrpt::poses::CPose3DPDFSOG for Sum of Gaussians-representation of a 6D pose probability density.
Reactive Navigation Library ported from Win32 API to standard C++.
Resampling methods now are separated in a generic, static method bayes::CParticleFilterCapable::computeResampling.
Version 0.4 (Released for BABEL, October 13, 2007)
OCT-2007:
BUG FIXED: Loading grayscale images CMRPTImageFloat now forces to load images from files as grayscale always.
BUG FIXED: To allow inserting into gridmaps laser scans taken with the sensor bottom-up.
All the makefiles of MRPT has been moved to CMake.
SEP-2007:
Structure of "include" directory changed to include the prefix "<MRPT/...". This is for leading to a one-directory install into "usr/include" in Linux systems.
CSemaphore implemented for Linux using pthreads.
CDisplayWindow3D is now based on GLUT and works in Windows & Linux.
Added a new application by Antonio J. Ortiz de Galistea: a MonoSLAM demo.
Different PF resampling methods are now supported. See CParticleFilter::resample.
CParticleFilter now has a centralized structure for all the PF-related options.
BUG FIXED: CDisplayWindow2D now has an extra (global) thread to process OpenCV messages without the need for the application to call "waitForKey".
Added a new procedure into CMultiMetricMapPDF for expanding the potential range of observation likelihoods without having a numerical overflow.
Add Class for Sonar SRF10 Interface (AJOGD).
CMRPTImage now is a wrapper class over OpenCV. More image file types are supported now.
CDisplayWindow now completely portable between windows/Linux thorugh OpenCV.
AUG-2007:
BUG FIXED: In utils::CConfigFile.
Started new application RawLogViewer using wxWidGets for a portable version (windows/linux).
Added utils::getAllRegisteredClasses to obtain at runtime the list of all MRPT registered classes.
Started the porting towards "bakefiles"
A new function added to obtain the compilation date and the library version (including SVN). See utils::SystemUtils.
Started a new version of the application "RawLogViewer" in portable wxWidGets for linux compatibility!.
Borland C++ 5.5 not supported any more, due to a lot of internal compiler errors. We use now BCC version 6.0.
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 CMRPTImage::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::CMRPTImage and utils::CMRPTImageFloat 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::CMRPTCanvas 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"
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.
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 1.5.7.1 for MRPT 0.6.5 SVN: at Mon Feb 23 13:35:09 EST 2009