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.
Version 1.3.2: Released 3-NOV-2015
- Changes in Apps:
- rawlog-edit:
- New operation:
--list-poses
--list-images
now also works with 3D range scans
- Changes in libraries:
- Changes in build system:
FIND_PACKAGE(MRPT)
will return libraries in the var MRPT_LIBRARIES
, following the CMake convention. The old variable name MRPT_LIBS
will be also returned for backward compatibility.
- BUG FIXES:
- Fix excessive width of paths drawn by CMetricMapBuilderRBPF::drawCurrentEstimationToImage()
- Fix image distortion: k3 may be ignored. (Thanks to CBaiz)
- Fix Debian bugs.
Version 1.3.1: Released 18-JUL-2015
- Changes in apps:
- Changes in libraries:
- [mrpt-base]
- New helper templates: mrpt::utils::int_select_by_bytecount<>, mrpt::utils::uint_select_by_bytecount<>
- New methods to evaluate SO(2), SO(3), SE(2) and SE(3) averages and weighted averages. See:
- [mrpt-hwdrivers]
- [mrpt-maps]
- [mrpt-nav]
- Removed old base class CPathPlanningMethod
- CPathPlanningCircularRobot => mrpt::nav::PlannerSimple2D: Class renamed (and better described) for consistency with other planners
- mrpt::nav::CReactiveNavigationSystem:
- Documentation has been added about all existing parameters, and template config files provided as starting points.
- The loadConfigFile() method with 2 config files has been deprecated favoring the newer, simpler single config file.
- The "ROBOT_NAME" parameter is no longer employed. A minor side effect (probably affecting no one) is that PTG cache files are no longer named differently for different robots.
- mrpt::nav::CParameterizedTrajectoryGenerator: New methods to save and load trajectories to binary streams. Used to debug in navlog-viewer.
- [mrpt-obs]
- [mrpt-vision]
- mrpt::vision::CImageGrabber_dc1394: Changed default Bayer filter from NEAREST to HQLINEAR
- BUG FIXES:
- Fix ocasional (false) failure of RANSAC unit tests due to their non-deterministic nature.
- Fix build error with MSVC 2010 in mrpt-hmtslam (Closes #127).
- Fixed potential wrong bounding box results in mrpt::maps::CPointsMap::boundingBox() when SSE2 optimization is enabled.
- mrpt::obs::CObservation6DFeatures: Fixed random crashes related to non-aligned memory in 32bit builds (Fixes #141)
- Fix Debian bug #786349 on Eigen2 support.
- mrpt::hwdrivers::CIMUXSens_MT4: Fix crash in destructor of objects not attached to a physical device.
- Fix wrong quaternion cross product when target variable is one of the operands. Also affected the += operator of mrpt::poses::CPose3DQuat (Fixes #148)
- mrpt::hwdrivers::CKinect with libfreenect driver: Fix potential memory corruption.
- Fix a bug in mrpt::tfest::se3_l2_robust() that led to it returning without trying to find a good consensus solution. It affected the demo app kinect-3d-slam (Fixes #156)
- Fix wrong feature points in CFeatureExtraction::extractFeaturesKLT() (Fixes #138)
Version 1.3.0: Released 12-JAN-2015
- Most important changes:
- Classes in libraries [mrpt-obs] and [mrpt-maps] now belong to new namespaces (mrpt::obs, mrpt::maps) instead of the old mrpt::slam
- No more
using namespace
s polute MRPT headers. Errors in user projects missing using namespace XXX
that might be formerly masked will now reveal. This is a good thing, though admitedly annoying...
- New library [mrpt-nav], subsumming the old [mrpt-reactivenav].
- New library [mrpt-tfest], a refactor of the old [mrpt-scanmatching].
- Backwards compatible headers have been provided to ease the transition of user code for all those library changes. Warning messages will be shown recommending deprecated replacements.
- Detailed list of changes:
- Lib changes:
- Clean up of the bad practice of
using namespace
in public scopes of headers. May lead to user code failing for missing using namespace
s which were previously masked.
- Namespace "slam" deprecated in libraries mrpt-obs and mrpt-maps (used for historical reasons):
- New namespaces [mrpt-obs] and [mrpt-maps].
- #include files moved from old paths <mrpt/slam/...> => <mrpt/{obs,maps}/...>
- Backward compatible headers added in <mrpt/slam/...> until mrpt 2.0.0
- New library [mrpt-nav], subsumming the old mrpt-reactivenav ([mrpt-reactivenav]).
- [mrpt-reactivenav] is now a meta-library, depending on [mrpt-nav].
- [mrpt-tfest] : Old library mrpt-scanmatching ([mrpt-scanmatching]) has been refactored, its API clean-up, and renamed [mrpt-tfest]
- [mrpt-scanmatching] is now a meta-library, depending on [mrpt-tfest].
- These classes have been moved between libs for a more sensible organization:
- Build System / General changes:
- Many optimizations in function arguments (value vs ref). Forces ABI incompatibility with previous versions, hence the change to a new minor version number.
- Updated embedded version of Eigen to 3.2.3
- Kinect: Dropped support for the CL NUI API, which seems discontinued. Alternatives in use are libfreenect and OpenNI2.
- libfreenect is now detected in the system and used instead of compiling the embedded copy of it.
- Embedded copy of libfreenect has been updated to (23/oct/2014). It now supports "Kinect for Windows".
- More selective linking of .so files to avoid useless dependencies (Fixes #52).
- (Windows only) MRPT can now be safely built with libusb support (Freenect, Kinect,...) and it will run on systems without libusb installed, by means of /DELAYLOAD linking flags.
- More unit tests.
- Changes in classes:
- [mrpt-base]
- [mrpt-hwdrivers]
- mrpt::hwdrivers::CIMUXSens_MT4: (by Joe Burmeister for Suave Aerial Software)
- Upgrade to latest XSens SDK 4.2.1. Requires libudev-dev in Linux
- Add GPS observations to CIMUXSens_MT4 for Xsens devices like GTi-G-700 which have GPS
- mrpt::hwdrivers::CImageGrabber_dc1394: Length of ring buffer is now configurable via TCaptureOptions_dc1394::ring_buffer_size
- [mrpt-maps]
- [mrpt-obs]
- CObservation::getDescriptionAsText(): New virtual method to obstain a textual description of observations. Refactoring of messy code previously in the RawLogViewer app.
- [mrpt-vision]
- BUG FIXES:
Version 1.2.2: Released 12-SEP-2014
- Changes in apps:
- New classes:
- [mrpt-hwdrivers]
- [mrpt-opengl]
- Changes in classes:
- Consistency in all "laser scan" classes: angular increments between rays are now FOV/(N-1) instead of FOV/N.
- [mrpt-base]
- New method mrpt::utils::CImage::loadTGA()
- IMPORTANT: Changed behavior of CSerializable/CObject macros (see bugfix below), introducing the new macros DEFINE_SERIALIZABLE_POST_*. May require changes in user code if serializable classes are defined:
- Previous version:
DEFINE_SERIALIZABLE_PRE_*(...)
class XXX {
};
- Must be changed in this version to:
DEFINE_SERIALIZABLE_PRE_*(...)
class XXX {
};
DEFINE_SERIALIZABLE_POST_*(...)
- [mrpt-hwdrivers]
- [mrpt-maps]
- [mrpt-opengl]
- mrpt::opengl::CMyGLCanvasBase (affects all 3D rendering classes): better handling of internal timers for smoother updates while rendering in multithreading apps.
- [mrpt-srba]
- New method to recover the global coordinates graph-slam problem for a RBA map: mrpt::srba::RbaEngine::get_global_graphslam_problem() (see example [MRPT]-examples\srba-tutorials\tutorial-srba-how-to-recover-global-map.cpp)
- BUG FIXES:
- mrpt::utils::CImage constructor from a matrix crashed.
- Unit tests: Named semaphores are not tested anymore if it's detected that the kernel version doesn't support them (Fix Debian 758725).
- mrpt::synch::CSemaphore [Linux]: didn't call sem_unlink().
- mrpt::gui::CDisplayWindow3D didn't implement get/set FOV.
- Valgrind: Fixed potential unaligned memory access warning in point clouds.
- Fix build error with AppleClang 5.1 (Closes #71).
- mrpt::utils::CClientTCPSocket: Use a connection success check that works on all platforms
- Important bug fixed regarding a missing dynamic_cast<> in smart pointers casting. See above possible implications in user code. properly (Patch by Joe Burmeister).
Version 1.2.1: Released 10-JUL-2014
- Changes in classes:
- [mrpt-base]
- [mrpt-hwdrivers]
- Build system:
- Fix compilation of SRBA with DEBUG_GARBAGE_FILL_ALL_NUMS=1
- Fix de-serialization error in mrpt::reactivenav::CLogFileRecord (and new unit tests added to avoid regressions).
- Several Debian bugs closed (see packaging/debian/changelog), including build errors in uncommon platforms (MIPS, kFreeBSD, etc.)
Version 1.2.0: Released 25-JUN-2014
- Most important changes:
- Public header files (.h) have undergone a serious refactoring to minimize unnecesary dependencies and reduce compile time and memory as much as possible. As a side effect, user code might need to add new #include<> lines. This change justifies the new minor version series 1.2.X.
- MRPT now cleanly builds in clang and OSX.
- Support for new camera drivers (OpenNI2, DUO3D).
- Many bug fixes.
- Detailed list of changes:
- Changes in apps:
- rawlog-edit:
- New operations: –export-odometry-txt, –recalc-odometry
- New flag: –rectify-centers-coincide
- New examples:
- New classes:
- [mrpt-base]
- [mrpt-hwdrivers]
- [mrpt-obs]
- Changes in classes:
- [mrpt-base]
- [mrpt-hwdrivers]
- [mrpt-srba]
- Now also implements SE(3) relative graph-slam.
- [mrpt-vision]
- Build system / public API:
- Fixes to build in OS X - Patch by Randolph Voorhies.
- Removed most "using namespace" from public headers, as good practice.
- Refactoring of MRPT headers.
- Deleted methods and functions:
- Embedded Eigen updated to version 3.2.1 (commit) (commit)
- BUG FIXES:
Version 1.1.0: Released 22-FEB-2014
- New apps:
- New classes:
- [mrpt-base]
- [mrpt-hwdrivers]
- [mrpt-maps]
- There are now two versions of octomaps (by Mariano Jaimez Tarifa/Jose Luis Blanco) - (commit)
- [mrpt-obs]
- [mrpt-opengl]
- [mrpt-reactivenav]
- mrpt::reactivenav::CAbstractPTGBasedReactive, as part of a large code refactoring of these classes: (commit)
- mrpt::reactivenav::CReactiveNavigationSystem
- mrpt::reactivenav::CReactiveNavigationSystem3D
- [mrpt-vision]
- mrpt::vision::CDifodo, a class which implements visual odometry based on depth images and the "range flow constraint equation". (by Mariano Jaimez Tarifa) - (commit)
- Changes in classes:
- Deleted classes:
- mrpt::utils::CEvent, which was actually unimplemented (!)
- mrpt::hwdrivers::CInterfaceNI845x has been deleted. It didn't offer features enough to justify a class.
- New examples:
- [MRPT]/samples/threadsPipe
- [MRPT]/samples/NIDAQ_test
- [MRPT]/openNI2_RGBD_demo (by Mariano Jaimez Tarifa)
- [MRPT]/openNI2_proximity_demo (by Mariano Jaimez Tarifa)
- Build system:
- Fixed compilation with clang.
- Fixed building against OpenCV 3.0.0 (GIT head)
- Updated to the latest nanoflann 1.1.7.
- Updated to Eigen 3.2.0 - (commit)
- Binary packages for Windows now include .pdb files to help debugging with Visual Studio.
- BUG FIXES:
- Fixed potential infinity loop in mrpt::math::make_vector<1,T>()
- Fixed build error with GCC when experimental parallelization is enabled. (commit)
- mrpt::reactivenav::CReactiveNavigationSystem complained about missing config variables ROBOTMODEL_TAU & ROBOTMODEL_DELAY, which were removed in MRPT 1.0.2 - (commit)
- Fixed potential mem alignment errors (Eigen's UnalignedArrayAssert) in SRBA for 32bit builds. (commit)
- mrpt::topography::geodeticToENU_WGS84() and related functions used a local +Z axis aligned to the line towards the Earth center; now the Z axis points normally to the ellipsoid surface. The difference with the previous behavior is small but may be of a few millimeters for each meter from the reference point. (commit)
- Potential crash when setting mpPolygon::setPoints() with empty vectors - (commit)
- mrpt::reactivenav::CReactiveNavigationSystem and mrpt::reactivenav::CReactiveNavigationSystem3D didn't obey the "enableConsoleOutput" constructor flag - (commit)
- mrpt::synch::CSemaphore::waitForSignal() : Fixed error when thread got an external signal (commit)
Version 1.0.2: Released 2-AUG-2013 (SVN 3435)
- New apps:
- Changes in apps:
- rawlog-edit:
- New operations: –list-timestamps, –remap-timestamps, –export-2d-scans-txt, –export-imu-txt
- New classes:
- [mrpt-base]
- [mrpt-opengl]
- [mrpt-reactivenav]
- mrpt::reactivenav::CReactiveNavigationSystem3D - By Mariano Jaimez Tarifa - r3389
- New functions:
- Changes in classes:
- [mrpt-base]
- Generic particle filter classes now allow directly resampling to a dynamic number of particles. Affected methods: - r3381
- New method: CImage::loadFromXPM() - r3397
- [mrpt-maps]
- [mrpt-openg]
- [mrpt-reactivenav]
- mrpt::reactivenav::CParameterizedTrajectoryGenerator: The "low pass filter" has been removed since it wasn't practical and was never used; thus, parameters "TAU" and "DELAY" has been removed. - r3395
- Methods removed since they weren't implemented in any derived class and there are no plans for doing it.
- mrpt::reactivenav::CReactiveNavigationSystem ::evaluate()
- mrpt::reactivenav::CReactiveNavigationSystem ::setParams()
- Build system:
- Updated to nanoflann 1.1.7: ICP is ~5% faster.
- More unit tests:
- [mrpt-base] geometry module.
- BUG FIXES:
- CTimeLogger::registerUserMeasure() ignored the enable/disable state of the logger - r3382
- mrpt-srba: SEGFAULT in 32bit builds due to missing MRPT_MAKE_ALIGNED_OPERATOR_NEW - r3429
Version 1.0.1: Released 12-MAY-2013 (SVN 3370)
- Changes in apps:
- RawLogViewer:
- Better description of the "too much memory used" warning while loading large datasets.
- robotic-arm-kinematics:
- Now allows changing the orientation of the first DOF (X,Y,Z).
- New classes:
- [mrpt-hwdrivers]
- mrpt::hwdrivers::CInterfaceNI845x: An interface for this USB SPI/I2C data acquisition board.
- mrpt::hwdrivers::CCANBusReader: A class to record CAN bus frames with a CAN232 converter.
- [mrpt-obs]
- New functions:
- New examples:
- Changes in classes:
- [mrpt-maps]
- [mrpt-kinematics]
- Removed stuff:
- Build system:
- Fixed a potential build error if including FFMPEG's <time.h> instead of the standard header - r3316
- Fixed determination of GCC version for all GCC builds - r3324
- Updated to Eigen 3.1.3 - r3349
- Updated to nanoflann 1.1.5
- BUG FIXES:
- Unit tests "SchurTests" for mrpt-srba incorrectly reported errors due to an improperly initialized reference to a local variable - r3318
- Debian packages: added missing binary deps for libmrpt-dev - r3335
Version 1.0.0: Released 1-MAR-2013 (SVN 3287)
- Most important changes:
- New library with a flexible implementation of Sparser Relative Bundle Adjustment (RBA), as presented in ICRA 2013: mrpt-srba.
- New library for Plane-based Maps: mrpt-pbmap (also presented in ICRA 2013).
- Some MRPT modules are now header-only libraries.
- Support for a new Octomap metric map, via the octomap library. See mrpt::maps::COctoMap and detailed changes below.
- Support for importing/exporting point clouds in the standard LAS format (Look for liblas below).
- Better support for custom builds of MRPT (selective building of individual apps and libs, etc.)
- Ready for Visual Studio 2012 and GCC 4.7
- From now on, MRPT is released under the "New BSD" license.
- Many bug fixes.
- Detailed list of changes:
- New apps:
- Changes in apps:
- navlog-viewer:
- Fixed some minor visualization errors.
- RawLogViewer:
- Import sequence of images as rawlog: Didn't detect "png" file extension as images - r2940 - Closes #34
- The GUI toolbar has been ported from wxWidget's ToolBar to sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - r2950
- ReactiveNavigationDemo:
- The default holonomic navigation method is now the VFF, since after the last bug fixes and tunes it seems to work quite well.
- SceneViewer3D:
- The GUI toolbar has been ported from wxWidget's ToolBar to sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - r2952
- Added a new menu: "File -> Import -> From LAS file..." - r3244
- grid-matching: new argument "--aligner" to select aligner method - r3021
- New classes:
- [mrpt-base]
- [mrpt-obs]
- [mrpt-maps]
- [mrpt-opengl]
- Deleted classes:
- New libraries:
- Changes in libraries:
- Changes in classes:
- [mrpt-base]
- [mrpt-bayes]
- [mrpt-graphs]
- [mrpt-gui]
- [mrpt-hwdrivers]
- [mrpt-maps]
- Better integration of point cloud classes with PCL: - r2943
- Point cloud loading & saving in the standard ASPRS LiDAR LAS format (if liblas is installed in the system, see http://www.liblas.org/ ). See also the ready-to-use import menu in SceneViewer3D - r3244
- Integration of wind measurements in gas-concentration maps (by Javier G. Monroy) - r3050
- [mrpt-obs]
- [mrpt-opengl]
- [mrpt-reactivenav]
- Much code of mrpt::reactivenav classes have undergone a clean-up, slight optimizations and a translation of old Spanish names/comments to English - r2939, r2942, r2958, r3091
- mrpt::reactivenav::CParameterizedTrajectoryGenerator::CColisionGrid now has a more maintainable binary serialization format - r2939
- mrpt::reactivenav::CParameterizedTrajectoryGenerator::debugDumpInFiles() now also saves text files which can be used to visualize PTGs from MATLAB (see scripts/viewPTG.m) - r3009
- mrpt::reactivenav::CHolonomicVFF and mrpt::reactivenav::CHolonomicND now have more configurable parameters, loadable from config files. See their documentation.
- Repulsive forces from obstacles in mrpt::reactivenav::CHolonomicVFF are now automatically normalized wrt the density of the 360deg view of obstacles and forces follow a "1/range" law instead of the old "exp(-range)".
- Solved a stability issue in C-S paths, in mrpt::reactivenav::CPTG5 (By Mariano Jaimez Tarifa) - r3085
- [mrpt-scanmatching]
- [mrpt-slam]
- mrpt::slam::CMetricMapBuilderICP now does not integrate the small pose changes due to odometry and/or relocalization when considering the distance and angle thresholds. This means that fewer map updates are now done for the same ICP-SLAM parameters, which should lead to "less noisy" maps.
- New functions:
- New examples:
- octomap_simple
- ransac-data-association
- Build system:
- Update to nanoflann 1.1.4 - r2937, r3017
- Update to Eigen 3.1.2 - r3064
- MRPT's root "CMakeLists.txt" has undergone a big refactoring and cleanup - r2961
- Backward compatible "mrpt-core" has been removed as a fake lib for which to search with CMake from user programs - r2961
- More system libs are detected in Linux (libclang-dev, lib3ds-dev), discarding embedded versions then - r2963 - Closes #17
- Automatic detection of supported SIMD extensions (SSE*) from CMake (only for Linux OS) - r3013
- Fixed building with Visual Studio 2012 (MSVC11) - r3017
- MRPT now allows defining header-only libraries with the define_mrpt_lib_header_only() macro - r3034, r3035
- More unit tests:
- Added new documentation page: environment variables.
- Removed the build flag "MRPT_BACKCOMPATIB_08X".
- Fixes for building under Mac OSX: r3181
- Enable some c++11 features if the compiler supports them - r3273
- BUG FIXES:
- Build: Fixed detection of OpenCV 2.4.2+ installed in the system via CMake config file instead of pkg-config, which seems to be broken. - r3019
- [mrpt-base] The iterator returned by end() in all MRPT vectors and matrices (based on Eigen) pointed to the last element, not to the (now correct) next position after the last element - r2941
- [mrpt-base] mrpt::dynamicsize_vector::resize() performed a memory reallocation even if given the current size, due to an inherited behavior from Eigen. It is not the expected behavior, so it has been fixed. - r3003
- [mrpt-base] Wrong computation of normPDF() values for the multidimensional cases. Closes #46 - r3068
- [mrpt-base] mrpt::poses::CPoint::asString() confused the 2D and 3D cases (Thanks Cipri!)
- [mrpt-base] Fixed errors in de-serialization of mrpt::utils::CPointPDFSOG and mrpt::maps::CReflectivityGridMap2D
- [mrpt-base] mrpt::math::KDTreeCapable::kdTreeRadiusSearch2D() always returned 0 matched.
- [mrpt-graphs] Fixed bug in RecursiveSpectralPartition (Thanks to Edu!) - r3026
- [mrpt-hwdrivers] Fixed potential SEGFAULT in mrpt::hwdrivers::CGPSInterface (Thanks K.Miyawaki for reporting)
- [mrpt-hwdrivers] Fixed communications to LMS 1xx scanners (Thanks Henry! See http://code.google.com/p/mrpt/issues/detail?id=49 )
- [mrpt-maps] mrpt::maps::COccupancyGridMap2D::getAs3DObject() returned cells with an occupancy of exactly "0" as transparent - r2957
- [mrpt-maps] Fixed saving the correct point colors in mrpt::maps::CColouredPointsMap::savePCDFile() (Thanks Mariano!) - r3090
- [mrpt-maps] In CPointsMap::computeMatchingWith3D. Fixed matching two 3D point clouds as each correspondence was inserted twice into the output vector. (By Paco) - r3162
- [mrpt-opengl] Fixed a potential bug: after deserializing an object based on a display-list (most of them), it won't update in the opengl view.
- [mrpt-reactivenav] Class mrpt::reactivenav::CHolonomicVFF was not exported in Windows DLL's (Thanks Mariano for noticing!).
- [mrpt-reactivenav] Fixed wrong computation of obstacles force fields in mrpt::reactivenav::CHolonomicVFF (Thanks Mariano for noticing!) - r2953
- [mrpt-reactivenav] Precomputed collision grids could be loaded in mrpt::reactivenav::CParameterizedTrajectoryGenerator even for different robot parameters/shape: now it correctly detects such situations and recompute when needed - r2939 - Closes #33
- [mrpt-reactivenav] ND algorithm: Fixed bugs of "last gap is never evaluated" and wrong composition of representative direction for some gaps (By Mariano) - r3056
Version 0.9.6 - (Version 1.0.0-Release_Candidate_4): Released 30-MAY-2012 (SVN 2930)
- New applications:
- Removed applications:
- stereo-calib-gui: it's now superseded by kinect-stereo-gui. The old command line tool is still useful, so it's still there as the example "stereo-calib-opencv".
- Changes in applications:
- icp-slam:
- Added a new option (SHOW_LASER_SCANS_3D in config files) to draw laser scans in the live 3D view - r2881
- rawlog-edit:
- Operation "--camera-params" now also handles stereo observations.
- New operation "--stereo-rectify" for batch rectifying datasets with stereo images.
- New operation "--rename-externals".
- SceneViewer3D:
- New menu for generating high-resolution renders of any scene directly to imag files - r2775
- Many new menus for selective selecting objects and applying operations on them - r2776
- stereo-calib-gui: Now generates a report with detailed and clear results from stereo calibration and allows the user to change most parameters interactively - r2801
- kinect-3d-view: New key command: press '9' to grab selected snapshots to disk - r2890
- Kinect stuff:
- [mrpt-hwdrivers]
- [mrpt-obs]
- [mrpt-vision]
- New classes:
- [mrpt-gui]
- [mrpt-hwdrivers]
- [mrpt-opengl]
- [mrpt-vision]