Main MRPT website > C++ reference for MRPT 1.4.0
changeLog_doc.h
Go to the documentation of this file.
1 /* +---------------------------------------------------------------------------+
2  | Mobile Robot Programming Toolkit (MRPT) |
3  | http://www.mrpt.org/ |
4  | |
5  | Copyright (c) 2005-2016, Individual contributors, see AUTHORS file |
6  | See: http://www.mrpt.org/Authors - All rights reserved. |
7  | Released under BSD License. See details in http://www.mrpt.org/License |
8  +---------------------------------------------------------------------------+ */
9 
10 /** \page changelog Change Log
11  *
12 
13 <p> <b>Note:</b> <i>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 <code>make documentation_html</code> or [browse it on-line](http://www.mrpt.org/).</i></p>
14 
15 <a name="1.4.0">
16  <h2>Version 1.4.0: Released 22-APR-2016 </h2></a>
17  - <b>Most important changes:</b>
18  - Support for Velodyne LIDAR sensors.
19  - New minor version number due to changes in the API of these classes (read details below): mrpt::obs::CObservationGPS, mrpt::hwdrivers::CGPSInterface
20  - [Python bindings](https://github.com/MRPT/mrpt/wiki/PythonBindings) added for a subset of MRPT functionality (Thanks Peter Rudolph and Nikolaus Demmel!)
21  - <b>Detailed list of changes:</b>
22  - New apps:
23  - [gps2rawlog](http://www.mrpt.org/list-of-mrpt-apps/application-gps2rawlog/): Application to parse raw dumps of a GPS (GNSS) receiver output.
24  - [image2gridmap](http://www.mrpt.org/list-of-mrpt-apps/application-image2gridmap/): Small tool to import any image as an MRPT gridmap object file (*.gridmap).
25  - [velodyne-view](http://www.mrpt.org/list-of-mrpt-apps/application-velodyne-view/): Application to test, visualize and grab data from a live Velodyne sensor or from a PCAP record.
26  - Changes in apps:
27  - [rawlog-grabber](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-grabber/): Now does not show GPS and IMU debug data in console, unless `MRPT_HWDRIVERS_VERBOSE` environment variable is set.
28  - [rawlog-edit](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit/): New operation: `--export-gps-all`
29  - Changes in libraries:
30  - \ref mrpt_base_grp
31  - [ABI change] mrpt::system::tokenize() new parameter `skipBlankTokens`
32  - mrpt::utils::circular_buffer now has peek() methods
33  - Eigen::MatrixBase<Derived>::loadFromTextFile() now also accepts `,` as column separator.
34  - New functions:
35  - mrpt::system::timestampAdd()
36  - mrpt::utils::compute_CRC32()
37  - mrpt::utils::saturate<>()
38  - mrpt::utils::CDynamicGrid<> now uses `double` instead of `float` for all dimensions and coordinate computations.
39  - Priority with these functions now work properly in GNU/Linux; though, see the notes in their documentation for required permissions:
40  - mrpt::system::changeCurrentProcessPriority()
41  - mrpt::system::changeThreadPriority()
42  - New classes/structures:
43  - mrpt::math::TPointXYZIu8, mrpt::math::TPointXYZRGBu8, mrpt::math::TPointXYZfIu8, mrpt::math::TPointXYZfRGBu8
44  - \ref mrpt_hwdrivers_grp
45  - New class mrpt::hwdrivers::CVelodyneScanner
46  - mrpt::hwdrivers::CNTRIPEmitter now has a parameter to enable/disable sending back the data from the serial port to the NTRIP caster.
47  - <b>[API changed]</b> mrpt::hwdrivers::CGPSInterface API clean-up and made more generic so any stream can be used to parse GNSS messages, not only serial ports.
48  - New class mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394 for capturing without PGR Flycapture but directly through libdc1394.
49  - Removed class mrpt::hwdrivers::CStereoGrabber_Bumblebee , superseded by mrpt::hwdrivers::CImageGrabber_FlyCapture2 which is capable of both monocular and stereo grabbing.
50  - \ref mrpt_maps_grp
51  - New class mrpt::maps::CHeightGridMap2D_MRF
52  - New base class mrpt::maps::CHeightGridMap2D_Base
53  - mrpt::maps::COccupancyGridMap2D:
54  - New method mrpt::maps::COccupancyGridMap2D::copyMapContentFrom()
55  - New likelihood parameter `LF_useSquareDist`
56  - New parameter mrpt::maps::COccupancyGridMap2D::RAYTRACE_STEP_SIZE_IN_CELL_UNITS
57  - mrpt::maps::COccupancyGridMap2D::simulateScanRay() is now ~40% (GCC) to ~250% (MSVC) faster by default.
58  - New method mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty()
59  - New method mrpt::maps::CHeightGridMap2D::insertIndividualPoint()
60  - mrpt::maps::CMetricMap::compute3DMatchingRatio() has a simplified API now
61  - \ref mrpt_obs_grp
62  - New class mrpt::obs::CObservationVelodyneScan
63  - mrpt::obs::CSinCosLookUpTableFor2DScans now can build a table from a mrpt::obs::T2DScanProperties structure, which now also has its separate header file for better modularity.
64  - <b>[API changed]</b> mrpt::obs::CObservationGPS now stores only one message per objects. API clean-up and extended so the number of GNSS message types is larger and more scalable.
65  - mrpt::obs::gnss: A new namespace with many new data structures for GPS-related messages
66  - mrpt::obs::CObservation3DRangeScan: projection of RGBD images to 3D points now correctly filters out invalid points, which were in previous versions mapped as (0,0,0) points (relative to the sensor).
67  In turn, this leads to point clouds of a dynamic number of points. In case of needing the (u,v) pixel coordinates of projected points, checkout the new fields `points3D_idxs_x` & `points3D_idxs_y`.
68  - New class mrpt::obs::CObservation2DRangeScanWithUncertainty
69  - \ref mrpt_opengl_grp
70  - New class mrpt::opengl::CMesh3D to render 3D models/meshes
71  - New method mrpt::opengl::CPointCloudColoured::recolorizeByCoordinate()
72  - \ref mrpt_slam_grp
73  - Small clean up of mrpt::slam::CICP API, add separate variable to select covariance estimation method.
74  - \ref mrpt_topography_grp
75  - New function mrpt::topography::geocentricToENU_WGS84()
76  - \ref mrpt_vision_grp
77  - mrpt::vision::CDifOdo has been refactored and now does faster image pyramid computation (By Mariano Jaimez)
78  - mrpt::maps::CLandmarksMap changes:
79  - `beaconMaxRange` & `alphaRatio` parameters have been removed since they were not used.
80  - New likelihood parameter `beaconRangesUseObservationStd` to allow using different uncertainty values with each observation.
81  - Changes in build system:
82  - [Python bindings](https://github.com/MRPT/mrpt/wiki/PythonBindings) added for a subset of MRPT functionality (Thanks Peter Rudolph!)
83  - Code ported to support the new libftdi1-dev (Fixes Debian bug #810368, GitHub issue #176)
84  - Fix building with gcc 6.0 (Closes Debian bug #811812)
85  - CMake new option: `DISABLE_MRPT_AUTO_CLASS_REGISTRATION` to reduce the footprint of MRPT statically-linked programs.
86  - Fix building against wxWidgets 3.1
87  - BUG FIXES:
88  - mrpt::math::CQuaternion<> did not check for unit norm in Release builds.
89  - Fix build errors against OpenCV 3.0.0+ without opencv_contrib modules.
90  - mrpt::hwdrivers::CHokuyoURG now correctly handles opening both USB and Ethernet Hokuyo devices (Closes Github issue #180)
91  - Fixed mrpt::utils::net::DNS_resolve_async() may SIGSEGV in slow networks.
92  - mrpt::opengl::CMesh::updateColorsMatrix() did not ignore cells masked out.
93  - Wrong weights used in mrpt::poses::CPosePDFSOG::getMean()
94  - Removed ad-hoc bias addition in range-only predictions in landmarks maps.
95  - Error loading height map count in mrpt::maps::TSetOfMetricMapInitializers (Closes GitHub issue <a href="https://github.com/MRPT/mrpt/issues/205" >#205</a>.
96  - Fix "gray images" grabbed in Windows when capturing the render output of 3D windows (Thanks Mariano J.T. & Christian Kerl from TUM!)
97  - Fix typos and wxWidgets align errors in RawLogViewer GUI (Closes #219)
98  - mrpt::nav::CHolonomicND & mrpt::nav::CHolonomicVFF didn't use the full range of output velocities.
99  - mrpt::utils::CImage::loadFromFile() now does not leave the image in undefined state if the load operation fails.
100  - mrpt::hwdrivers::CLMS100Eth failed to load "pose_yaw" parameter from config file.
101  - mrpt::obs::CObservation3DRangeScan::doDepthAndIntensityCamerasCoincide() did not correctly return `false` for negative offsets between the camera poses.
102 
103 <hr>
104 <a name="1.3.2">
105  <h2>Version 1.3.2: Released 3-NOV-2015 </h2></a>
106  - Changes in Apps:
107  - [rawlog-edit](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit/):
108  - New operation: `--list-poses`
109  - `--list-images` now also works with 3D range scans
110  - Changes in libraries:
111  - The library mrpt-srba has been moved out of MRPT and now is an independent project: https://github.com/MRPT/srba
112  - \ref mrpt_base_grp
113  - mrpt::math::KDTreeCapable::TKDTreeSearchParams: Removed parameter nChecks, which was ignored by nanoflann anyway.
114  - \ref mrpt_hwdrivers_grp
115  - mrpt::hwdrivers::CCameraSensor: Implemented OpenNI2 support for CCameraSensor
116  - \ref mrpt_nav_grp
117  - mrpt::nav::CAbstractPTGBasedReactive: Maximum acceleration filter (SPEEDFILTER_TAU) now follows paths better (Thanks to Steven Butner, UCSB/ECE)
118  - Changes in build system:
119  - `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.
120  - BUG FIXES:
121  - Fix excessive width of paths drawn by CMetricMapBuilderRBPF::drawCurrentEstimationToImage()
122  - Fix image distortion: k3 may be ignored. (Thanks to CBaiz)
123  - Fix Debian bugs.
124 
125 <hr>
126 <a name="1.3.1">
127  <h2>Version 1.3.1: Released 18-JUL-2015 </h2></a>
128  - Changes in apps:
129  - [navlog-viewer](http://www.mrpt.org/list-of-mrpt-apps/application-navlog-viewer/): Now shows more information on navigation logs.
130  - New app [icp-slam-live](http://www.mrpt.org/list-of-mrpt-apps/application-icp-slam-live/): Real-time ICP-SLAM with a LIDAR sensor.
131  - Changes in libraries:
132  - \ref mrpt_base_grp
133  - New helper templates: mrpt::utils::int_select_by_bytecount<>, mrpt::utils::uint_select_by_bytecount<>
134  - New methods to evaluate SO(2), SO(3), SE(2) and SE(3) averages and weighted averages. See:
135  - Header <mrpt/poses/SO_SE_average.h>
136  - mrpt::poses::SO_average<2>, mrpt::poses::SO_average<3>
137  - mrpt::poses::SE_average<2>, mrpt::poses::SE_average<3>
138  - \ref mrpt_hwdrivers_grp
139  - New sensors supported:
140  - mrpt::hwdrivers::CIMUIntersense
141  - mrpt::hwdrivers::CSkeletonTracker
142  - New parameter mrpt::hwdrivers::CHokuyoURG::m_disable_firmware_timestamp to override faulty Hokuyo timestamps with PC time.
143  - mrpt::hwdrivers::CRoboPeakLidar::turnOn() and turnOff() now really implement turning on/off the RPLidar motor.
144  - \ref mrpt_maps_grp
145  - New method mrpt::maps::COccupancyGridMap2D::getAsPointCloud()
146  - \ref mrpt_nav_grp
147  - Removed old base class CPathPlanningMethod
148  - CPathPlanningCircularRobot => mrpt::nav::PlannerSimple2D: Class renamed (and better described) for consistency with other planners
149  - mrpt::nav::CReactiveNavigationSystem:
150  - Documentation has been added about all existing parameters, and template config files provided as starting points.
151  - The loadConfigFile() method with 2 config files has been deprecated favoring the newer, simpler single config file.
152  - 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.
153  - mrpt::nav::CParameterizedTrajectoryGenerator: New methods to save and load trajectories to binary streams. Used to debug in navlog-viewer.
154  - \ref mrpt_obs_grp
155  - mrpt::obs::CObservation3DRangeScan now supports pixel labels (semantic mapping, etc.)
156  - New class mrpt::obs::CObservationSkeleton to hold body tracking information (by Francisco Angel Moreno)
157  - mrpt::obs::CObservationIMU has new data fields and fields are better documented to reflect whether they refer to local/global coordinate frames
158  - \ref mrpt_vision_grp
159  - mrpt::vision::CImageGrabber_dc1394: Changed default Bayer filter from NEAREST to HQLINEAR
160  - BUG FIXES:
161  - Fix ocasional (false) failure of RANSAC unit tests due to their non-deterministic nature.
162  - Fix build error with MSVC 2010 in mrpt-hmtslam (Closes #127).
163  - Fixed potential wrong bounding box results in mrpt::maps::CPointsMap::boundingBox() when SSE2 optimization is enabled.
164  - mrpt::obs::CObservation6DFeatures: Fixed random crashes related to non-aligned memory in 32bit builds (Fixes #141)
165  - Fix Debian bug [#786349](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786349) on Eigen2 support.
166  - mrpt::hwdrivers::CIMUXSens_MT4: Fix crash in destructor of objects not attached to a physical device.
167  - Fix wrong quaternion cross product when target variable is one of the operands. Also affected the += operator of mrpt::poses::CPose3DQuat (Fixes #148)
168  - mrpt::hwdrivers::CKinect with libfreenect driver: Fix potential memory corruption.
169  - 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)
170  - Fix wrong feature points in CFeatureExtraction::extractFeaturesKLT() (Fixes #138)
171 
172 <hr>
173 <a name="1.3.0">
174  <h2>Version 1.3.0: Released 12-JAN-2015 </h2></a>
175  - <b>Most important changes:</b>
176  - Classes in libraries \ref mrpt_obs_grp and \ref mrpt_maps_grp now belong to new namespaces (mrpt::obs, mrpt::maps) instead of the old mrpt::slam
177  - No more `using namespace`s polute MRPT headers. <b>Errors in user projects</b> missing `using namespace XXX` that might be formerly masked will now reveal. <b>This is a good thing</b>, though admitedly annoying...
178  - New library \ref mrpt_nav_grp, subsumming the old \ref mrpt_reactivenav_grp.
179  - New library \ref mrpt_tfest_grp, a refactor of the old \ref mrpt_scanmatching_grp.
180  - <b>Backwards compatible headers</b> have been provided to ease the transition of user code for all those library changes. Warning messages will be shown recommending deprecated replacements.
181  - <b>Detailed list of changes:</b>
182  - Lib changes:
183  - 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.
184  - Namespace "slam" deprecated in libraries mrpt-obs and mrpt-maps (used for historical reasons):
185  - New namespaces \ref mrpt_obs_grp and \ref mrpt_maps_grp.
186  - #include files moved from old paths <mrpt/slam/...> => <mrpt/{obs,maps}/...>
187  - Backward compatible headers added in <mrpt/slam/...> until mrpt 2.0.0
188  - New library \ref mrpt_nav_grp, subsumming the old mrpt-reactivenav (\ref mrpt_reactivenav_grp).
189  - \ref mrpt_reactivenav_grp is now a meta-library, depending on \ref mrpt_nav_grp.
190  - \ref mrpt_tfest_grp : Old library mrpt-scanmatching (\ref mrpt_scanmatching_grp) has been refactored, its API clean-up, and renamed \ref mrpt_tfest_grp
191  - \ref mrpt_scanmatching_grp is now a meta-library, depending on \ref mrpt_tfest_grp.
192  - These classes have been moved between libs for a more sensible organization:
193  - mrpt::slam::CDetectorDoorCrossing ==> mrpt::detectors::CDetectorDoorCrossing
194  - mrpt::slam::CPathPlanningMethod & CPathPlanningCircularRobot: \ref mrpt_slam_grp ==> \ref mrpt_nav_grp
195  - Build System / General changes:
196  - Many optimizations in function arguments (value vs ref). Forces ABI incompatibility with previous versions, hence the change to a new minor version number.
197  - Updated embedded version of Eigen to 3.2.3
198  - Kinect: Dropped support for the CL NUI API, which seems discontinued. Alternatives in use are libfreenect and OpenNI2.
199  - libfreenect is now detected in the system and used instead of compiling the embedded copy of it.
200  - Embedded copy of libfreenect has been updated to (23/oct/2014). It now supports "Kinect for Windows".
201  - More selective linking of .so files to avoid useless dependencies (Fixes #52).
202  - (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.
203  - More unit tests.
204  - Changes in classes:
205  - [mrpt-base]
206  - New function mrpt::math::angDistance()
207  - [mrpt-hwdrivers]
208  - mrpt::hwdrivers::CIMUXSens_MT4: (by Joe Burmeister for Suave Aerial Software)
209  - Upgrade to latest XSens SDK 4.2.1. Requires libudev-dev in Linux
210  - Add GPS observations to CIMUXSens_MT4 for Xsens devices like GTi-G-700 which have GPS
211  - mrpt::hwdrivers::CImageGrabber_dc1394: Length of ring buffer is now configurable via TCaptureOptions_dc1394::ring_buffer_size
212  - [mrpt-maps]
213  - Important refactor of internal code related to mrpt::maps::CMultiMetricMap:
214  - All maps (derived from mrpt::maps::CMetricMap) now have a more uniform interface.
215  - Each map now has a `MapDefinition` structure with all its parameters. See docs for mrpt::maps::TMetricMapInitializer
216  - Introduced mrpt::maps::TMapGenericParams to hold parameters shared in all maps.
217  - [mrpt-obs]
218  - CObservation::getDescriptionAsText(): New virtual method to obstain a textual description of observations. Refactoring of messy code previously in the RawLogViewer app.
219  - [mrpt-vision]
220  - mrpt::vision::CFeatureExtraction: Removed (unused) optional ROI parameter in detectors.
221  - BUG FIXES:
222  - mrpt::poses::CRobot2DPoseEstimator could estimate wrong angular velocities for orientations near +-180deg.
223  - mrpt::system::CDirectoryExplorer::sortByName() didn't sort in descending order
224  - Fixed crashes from MATLAB .mex files: mrpt::system::registerFatalExceptionHandlers() has no longer effect, and will be removed in future releases. (Thanks to Jesús Briales García for all the testing!)
225  - Fixed potential crash for Eigen unaligned memory access in 32bit builds in mrpt::slam::CGridMapAligner and other places ([Closes #94](https://github.com/MRPT/mrpt/issues/94))
226 
227 <hr>
228 <a name="1.2.2">
229  <h2>Version 1.2.2: Released 12-SEP-2014 </h2></a>
230  - Changes in apps:
231  - <a href="http://www.mrpt.org/list-of-mrpt-apps/application-sceneviewer3d/" >SceneViewer3D</a>:
232  - New menu "File" -> "Import" -> "3D model" which supports many standard formats (via mrpt::opengl::CAssimpModel)
233  - New classes:
234  - [mrpt-hwdrivers]
235  - mrpt::hwdrivers::CRoboPeakLidar to interface Robo Peak LIDAR scanners.
236  - [mrpt-opengl]
237  - mrpt::opengl::CAssimpModel for rendering complex 3D models (many supported formats) in OpenGL scenes.
238  - Changes in classes:
239  - Consistency in all "laser scan" classes: angular increments between rays are now FOV/(N-1) instead of FOV/N.
240  - [mrpt-base]
241  - New method mrpt::utils::CImage::loadTGA()
242  - *IMPORTANT*: Changed behavior of CSerializable/CObject macros (see bugfix below), introducing the new macros DEFINE_SERIALIZABLE_POST_*.
243  May require changes in user code if serializable classes are defined:
244  - Previous version:
245  \code
246  DEFINE_SERIALIZABLE_PRE_*(...)
247  class XXX {
248  DEFINE_SERIALIZABLE(XXX)
249  };
250  \endcode
251  - Must be changed in this version to:
252  \code
253  DEFINE_SERIALIZABLE_PRE_*(...)
254  class XXX {
255  DEFINE_SERIALIZABLE(XXX)
256  };
257  DEFINE_SERIALIZABLE_POST_*(...)
258  \endcode
259  - [mrpt-hwdrivers]
260  - Bumblebee2 Linux support in mrpt::hwdrivers::CImageGrabber_FlyCapture2 via Triclops (by Jesus Briales)
261  - [mrpt-maps]
262  - New method mrpt::maps::COccupancyGridMap2D::getRawMap()
263  - New method mrpt::maps::CColouredPointsMap::getPCLPointCloudXYZRGB()
264  - [mrpt-opengl]
265  - mrpt::opengl::CMyGLCanvasBase (affects all 3D rendering classes): better handling of internal timers for smoother updates while rendering in multithreading apps.
266  - [mrpt-srba]
267  - New method to recover the global coordinates graph-slam problem for a RBA map: mrpt::srba::RbaEngine::get_global_graphslam_problem() (see example [MRPT]\samples\srba-examples\srba-tutorials\tutorial-srba-how-to-recover-global-map.cpp)
268  - BUG FIXES:
269  - mrpt::utils::CImage constructor from a matrix crashed.
270  - Unit tests: Named semaphores are not tested anymore if it's detected that the kernel version doesn't support them (Fix Debian 758725).
271  - mrpt::synch::CSemaphore [Linux]: didn't call sem_unlink().
272  - mrpt::gui::CDisplayWindow3D didn't implement get/set FOV.
273  - Valgrind: Fixed potential unaligned memory access warning in point clouds.
274  - Fix build error with AppleClang 5.1 (Closes #71).
275  - mrpt::utils::CClientTCPSocket: Use a connection success check that works on all platforms
276  - Important bug fixed regarding a missing dynamic_cast<> in smart pointers casting. See above possible implications in user code.
277  properly (Patch by Joe Burmeister).
278 
279 <hr>
280 <a name="1.2.1">
281  <h2>Version 1.2.1: Released 10-JUL-2014 </h2></a>
282  - Changes in classes:
283  - [mrpt-base]
284  - All points and poses now have a method setToNaN(), e.g. mrpt::poses::CPose3D::setToNaN()
285  - [mrpt-hwdrivers]
286  - mrpt::hwdrivers::COpenNI2Sensor now has better support for opening several RGBD cameras (by Kenzaburo Miyawaki & Eduardo Fernandez)
287  - Build system:
288  - Fix compilation of SRBA with DEBUG_GARBAGE_FILL_ALL_NUMS=1
289  - Fix de-serialization error in mrpt::reactivenav::CLogFileRecord (and new unit tests added to avoid regressions).
290  - Several Debian bugs closed (see packaging/debian/changelog), including build errors in uncommon platforms (MIPS, kFreeBSD, etc.)
291 
292 <hr>
293 <a name="1.2.0">
294  <h2>Version 1.2.0: Released 25-JUN-2014 </h2></a>
295  - <b>Most important changes:</b>
296  - Public header files (.h) have undergone a serious refactoring to minimize unnecesary dependencies and reduce compile time and memory as much as possible.
297  As a side effect, user code might need to add new #include<> lines. This change justifies the new minor version series 1.2.X.
298  - MRPT now cleanly builds in clang and OSX.
299  - Support for new camera drivers (OpenNI2, DUO3D).
300  - Many bug fixes.
301  - <b>Detailed list of changes:</b>
302  - Changes in apps:
303  - [rawlog-edit](http://www.mrpt.org/Application%3Arawlog-edit):
304  - New operations: --export-odometry-txt, --recalc-odometry
305  - New flag: --rectify-centers-coincide
306  - New examples:
307  - kitti_dataset2rawlog
308  - New classes:
309  - [mrpt-base]
310  - mrpt::math::ContainerType<CONTAINER>::element_t to allow handling either Eigen or STL containers seamlessly.
311  - mrpt::utils::CConfigFilePrefixer
312  - [mrpt-hwdrivers]
313  - mrpt::hwdrivers::COpenNI2Sensor: Interface to OpenNI2 cameras, capable of reading from an array of OpenNI2 RGBD cameras (By Eduardo Fernandez)
314  - mrpt::hwdrivers::CDUO3DCamera: Interface to DUO3D cameras (By Francisco Angel Moreno)
315  - mrpt::hwdrivers::CGPS_NTRIP: A combination of GPS receiver + NTRIP receiver capable of submitting GGA frames to enable RTCM 3.0
316  - [mrpt-obs]
317  - mrpt::obs::CObservation6DFeatures
318  - Changes in classes:
319  - [mrpt-base]
320  - Robust kernel templates moved from mrpt::vision to mrpt::math. See mrpt::math::RobustKernel<>. Added unit tests for robust kernels.
321  - mrpt::poses::CPose3D has new SE(3) methods: mrpt::poses::CPose3D::jacob_dexpeD_de(), mrpt::poses::CPose3D::jacob_dAexpeD_de()
322  - More efficient mrpt::utils::OctetVectorToObject() (avoid memory copy).
323  - Fixed const-correctness of mrpt::utils::CImage::forceLoad() and mrpt::utils::CImage::unload()
324  - [mrpt-hwdrivers]
325  - mrpt::hwdrivers::CCameraSensor: Added a hook for user code to run before saving external image files: mrpt::hwdrivers::CCameraSensor::addPreSaveHook()
326  - mrpt::hwdrivers::CNationalInstrumentsDAQ now supports analog and digital outputs.
327  - New method mrpt::hwdrivers::CNTRIPClient::sendBackToServer()
328  - [mrpt-srba]
329  - Now also implements SE(3) relative graph-slam.
330  - [mrpt-vision]
331  - mrpt::vision::checkerBoardStereoCalibration: More robust handling of stereo calibration patterns. OpenCV sometimes detects corners in the wrong order between (left/right) images, so we detect the situation and fix it.
332  - mrpt::vision::findMultipleChessboardsCorners():
333  - Now enforces a consistent counterclockwise XYZ coordinate frame at each detected chessboard.
334  - Much more robust in distingishing quads of different sizes.
335  - Build system / public API:
336  - Fixes to build in OS X - [Patch](https://gist.github.com/randvoorhies/9283072) by Randolph Voorhies.
337  - Removed most "using namespace" from public headers, as good practice.
338  - Refactoring of MRPT headers.
339  - <mrpt/utils/stl_extensions.h> has been split into:
340  - <mrpt/utils/stl_serialization.h>
341  - <mrpt/utils/circular_buffer.h>
342  - <mrpt/utils/list_searchable.h>
343  - <mrpt/utils/bimap.h>
344  - <mrpt/utils/map_as_vector.h>
345  - <mrpt/utils/traits_map.h>
346  - <mrpt/utils/stl_serialization.h>
347  - <mrpt/utils/printf_vector.h>
348  - <mrpt/utils/stl_containers_utils.h>
349  - <mrpt/utils/ci_less.h>
350  - Deleted methods and functions:
351  - mrpt::system::breakpoint()
352  - mrpt::vector_float is now mrpt::math::CVectorFloat, mrpt::vector_double is mrpt::math::CVectorDouble, for name consistency. Also, using Eigen::VectorXf is preferred for new code.
353  - mrpt::CImage::rectifyImage() with parameters as separate vectors.
354  - mrpt::maps::CPointsMap::getPoint() with mrpt::poses::CPoint3D arguments.
355  - mrpt::vision::correctDistortion() -> use CImage method instead
356  - All previous deprecated functions.
357  - Embedded Eigen updated to version 3.2.1 [(commit)](https://github.com/MRPT/mrpt/commit/47913da94a27e98a9115f85b2a530b6c14a10b8f) [(commit)](https://github.com/MRPT/mrpt/commit/33258761d3b75bf133d38aecb257c64e4d76b21e)
358  - BUG FIXES:
359  - RawlogViewer app: Fixed abort while converting SF->obs.only datasets when there is no odometry.
360  - mrpt::obs::CSensoryFrame: The cached point map is now invalidated with any change to the list of observations so it's rebuild upon next call.
361  - New implementation of mrpt::synch::CSemaphore avoids crashes in OS X - by Randolph Voorhies.
362  - mrpt::opengl::CArrow was always drawn of normalized length.
363  - FlyCapture2 monocular & stereo cameras could return an incorrect timestamp (only in Linux?).
364  - mrpt::system::createDirectory() returned false (error) when the directory already existed.
365  - mrpt::vision::CStereoRectifyMap::rectify() didn't update the left & right camera poses inside mrpt::obs::CObservationStereoImages objects while rectifying.
366  - RawLogViewer: Operation "convert to SF format" didn't take into account odometry observations.
367  - Fix build errors with GCC 4.9
368  - Fix crash of mrpt::hwdrivers::CIMUXSens_MT4's destructor when it fails to scan and open a device.
369  - Fix potential crash in mrpt::slam::data_association_full_covariance with JCBB when no individually compatible matching exists [(commit)](https://github.com/MRPT/mrpt/commit/482472ebd80a3484dce63d294b1ac4e8f001e1eb)
370 
371 <hr>
372  <a name="1.1.0">
373  <h2>Version 1.1.0: Released 22-FEB-2014 </h2></a>
374  - New apps:
375  - [DifOdometry-Camera](http://www.mrpt.org/list-of-mrpt-apps/application-difodometry-camera). (By Mariano Jaimez Tarifa)
376  - [DifOdometry-Datasets](http://www.mrpt.org/list-of-mrpt-apps/application-difodometry-datasets). (By Mariano Jaimez Tarifa)
377  - New classes:
378  - [mrpt-base]
379  - mrpt::synch::CPipe: OS-independent pipe support.
380  - [mrpt-hwdrivers]
381  - mrpt::hwdrivers::CIMUXSens_MT4 : Support for 4th generation xSens MT IMU devices.
382  - mrpt::hwdrivers::CNationalInstrumentsDAQ: Support for acquisition boards compatible with National Instruments DAQmx Base - [(commit)](https://github.com/MRPT/mrpt/commit/a82a7e37997cfb77e7ee9e903bdb2a55e3040b35).
383  - mrpt::hwdrivers::CImageGrabber_FlyCapture2: Support for Point Grey Research's cameras via the FlyCapture2 libray - [(commits)](https://github.com/MRPT/mrpt/pull/5/commits).
384  - [mrpt-maps]
385  - There are now two versions of octomaps (by Mariano Jaimez Tarifa/Jose Luis Blanco) - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3443)
386  - mrpt::maps::COctoMap (only occupancy)
387  - mrpt::maps::CColouredOctoMap (occupancy + RGB color)
388  - [mrpt-obs]
389  - mrpt::obs::CObservationRawDAQ, a placeholder for raw and generic measurements from data acquisition devices. - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3459)
390  - [mrpt-opengl]
391  - mrpt::opengl::CMeshFast, an open gl object that draws a "mesh" as a structured point cloud which is faster to render (by Mariano Jaimez Tarifa). -[(commit)](https://github.com/MRPT/mrpt/commit/9306bb4a585387d4c85b3f6e41dd2cbe5a354e80)
392  - mrpt::opengl::CVectorField2D, an opengl object that shows a 2D Vector Field (by Mariano Jaimez Tarifa). - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3461)
393  - [mrpt-reactivenav]
394  - mrpt::reactivenav::CAbstractPTGBasedReactive, as part of a large code refactoring of these classes: [(commit)](https://github.com/MRPT/mrpt/pull/4)
395  - mrpt::reactivenav::CReactiveNavigationSystem
396  - mrpt::reactivenav::CReactiveNavigationSystem3D
397  - [mrpt-vision]
398  - mrpt::vision::CDifodo, a class which implements visual odometry based on depth images and the "range flow constraint equation". (by Mariano Jaimez Tarifa) - [(commit)](https://github.com/MRPT/mrpt/commit/e6ab5595f70cb889d07658c0b540c27e495a1cfb)
399  - Changes in classes:
400  - Clean up and slight optimization of metric map matching API: - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3446)
401  - <b>Methods marked as deprecated: </b>
402  - mrpt::maps::CMetricMap::computeMatchingWith2D() --> mrpt::maps::CMetricMap::determineMatching2D()
403  - mrpt::maps::CMetricMap::computeMatchingWith3D() --> mrpt::maps::CMetricMap::determineMatching3D()
404  - New structures:
405  - mrpt::slam::TMatchingParams
406  - mrpt::slam::TMatchingExtraResults
407  - mrpt::maps::CPointsMap::TInsertionOptions now have methods to save/load from binary streams, making more maintainable the serialization of point maps - [(commit)](https://github.com/MRPT/mrpt/commit/544d439c3462228b07344142de68e5bc10c1a2e3)
408  - New options in point maps: mrpt::maps::CPointsMap::TInsertionOptions::insertInvalidPoints - [(commit)](https://github.com/MRPT/mrpt/pull/8)
409  - mrpt::obs::CObservationIMU now includes data fields for 3D magnetometers and altimeters. - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3451)
410  - Method renamed mrpt::utils::CEnhancedMetaFile::selectVectorTextFont() to avoid shadowing mrpt::utils::CCanvas::selectTextFont()
411  - mrpt::reactivenav::CParameterizedTrajectoryGenerator: New methods:
412  - mrpt::reactivenav::CParameterizedTrajectoryGenerator::inverseMap_WS2TP() for inverse look-up of WS to TP space - [(commit)](https://github.com/MRPT/mrpt/commit/4d04ef50e3dea581bed6287d4ea6593034c47da3)
413  - mrpt::reactivenav::CParameterizedTrajectoryGenerator::renderPathAsSimpleLine() - [(commit)](https://github.com/MRPT/mrpt/commit/a224fc2489ad00b3ab116c84e8d4a48532a005df)
414  - Changed the signature of mrpt::reactivenav::build_PTG_collision_grids() to become more generic for 2D & 2.5D PTGs - [(commit)](https://github.com/MRPT/mrpt/commit/7bd68e49a4ba3bf08f194678787816c65de1d685)
415  - Deleted classes:
416  - mrpt::utils::CEvent, which was actually unimplemented (!)
417  - mrpt::hwdrivers::CInterfaceNI845x has been deleted. It didn't offer features enough to justify a class.
418  - New examples:
419  - [MRPT]/samples/threadsPipe
420  - [MRPT]/samples/NIDAQ_test
421  - [MRPT]/openNI2_RGBD_demo (by Mariano Jaimez Tarifa)
422  - [MRPT]/openNI2_proximity_demo (by Mariano Jaimez Tarifa)
423  - Build system:
424  - Fixed compilation with clang.
425  - Fixed building against OpenCV 3.0.0 (GIT head)
426  - Updated to the latest nanoflann 1.1.7.
427  - Updated to Eigen 3.2.0 - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3455)
428  - Binary packages for Windows now include .pdb files to help debugging with Visual Studio.
429  - BUG FIXES:
430  - Fixed potential infinity loop in mrpt::math::make_vector<1,T>()
431  - Fixed build error with GCC when experimental parallelization is enabled. [(commit)](http://code.google.com/p/mrpt/source/detail?r=3441)
432  - mrpt::reactivenav::CReactiveNavigationSystem complained about missing config variables ROBOTMODEL_TAU & ROBOTMODEL_DELAY, which were removed in MRPT 1.0.2 - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3452)
433  - Fixed potential mem alignment errors (Eigen's UnalignedArrayAssert) in SRBA for 32bit builds. [(commit)](http://code.google.com/p/mrpt/source/detail?r=3457)
434  - 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)](http://code.google.com/p/mrpt/source/detail?r=3473)
435  - Potential crash when setting mpPolygon::setPoints() with empty vectors - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3478)
436  - mrpt::reactivenav::CReactiveNavigationSystem and mrpt::reactivenav::CReactiveNavigationSystem3D didn't obey the "enableConsoleOutput" constructor flag - [(commit)](https://github.com/MRPT/mrpt/commit/db7b0e76506af2c24f119a28443a1e8f1a217861)
437  - mrpt::synch::CSemaphore::waitForSignal() : Fixed error when thread got an external signal [(commit)](https://github.com/MRPT/mrpt/commit/511e95f03480537ff18ad2cad178c504b1cfbb53)
438 
439  <hr>
440  <a name="1.0.2">
441  <h2>Version 1.0.2: Released 2-AUG-2013 (SVN 3435) </h2></a>
442  - New apps:
443  - [ReactiveNav3D-Demo](http://www.mrpt.org/Application%3AReactiveNav3D-Demo) (By Mariano Jaimez Tarifa)
444  - Changes in apps:
445  - [rawlog-edit](http://www.mrpt.org/Application%3Arawlog-edit):
446  - New operations: --list-timestamps, --remap-timestamps, --export-2d-scans-txt, --export-imu-txt
447  - New classes:
448  - [mrpt-base]
449  - mrpt::poses::CPose3DRotVec is now fully implemented (By Francisco Angel Moreno).
450  - [mrpt-opengl]
451  - mrpt::opengl::CLight - OpenGL scenes now allow customization of OpenGL lighting. See also new lighting methods in mrpt::opengl::COpenGLViewport - <a href="http://code.google.com/p/mrpt/source/detail?r=3409" >r3409</a>
452  - [mrpt-reactivenav]
453  - mrpt::reactivenav::CReactiveNavigationSystem3D - By Mariano Jaimez Tarifa - <a href="http://code.google.com/p/mrpt/source/detail?r=3389" >r3389</a>
454  - New functions:
455  - [mrpt-opengl]
456  - mrpt::opengl::stock_objects::RobotRhodon()
457  - Changes in classes:
458  - [mrpt-base]
459  - Generic particle filter classes now allow directly resampling to a dynamic number of particles. Affected methods: - <a href="http://code.google.com/p/mrpt/source/detail?r=3381" >r3381</a>
460  - mrpt::bayes::CParticleFilterCapable::performResampling()
461  - mrpt::bayes::CParticleFilterCapable::computeResampling()
462  - New method: CImage::loadFromXPM() - <a href="http://code.google.com/p/mrpt/source/detail?r=3397" >r3397</a>
463  - [mrpt-maps]
464  - mrpt::maps::COctoMap now exposes the inner octomap::OcTree object. See example samples/octomap_simple - <a href="http://code.google.com/p/mrpt/source/detail?r=4304" >r4304</a>
465  - [mrpt-openg]
466  - mrpt::opengl::CBox now be also rendered as a solid box + line borders. See mrpt::opengl::CBox::enableBoxBorder()
467  - mrpt::opengl::COctoMapVoxels - <a href="http://code.google.com/p/mrpt/source/detail?r=4329" >r4329</a>
468  - Fixed calculation of normals (fix shading)
469  - Added new coloring scheme to mrpt::opengl::COctoMapVoxels::visualization_mode_t : "FIXED"
470  - By default, light effects are disabled in this object, because shadows aren't computed anyway and the effect isn't pleasant.
471  - Voxels cubes are sorted in ascending Z order so the visual effect is correct when rendering with transparency.
472  - [mrpt-reactivenav]
473  - 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. - <a href="http://code.google.com/p/mrpt/source/detail?r=3395" >r3395</a>
474  - Methods removed since they weren't implemented in any derived class and there are no plans for doing it.
475  - mrpt::reactivenav::CReactiveNavigationSystem ::evaluate()
476  - mrpt::reactivenav::CReactiveNavigationSystem ::setParams()
477  - Build system:
478  - Updated to nanoflann 1.1.7: ICP is ~5% faster.
479  - More unit tests:
480  - [mrpt-base] geometry module.
481  - BUG FIXES:
482  - CTimeLogger::registerUserMeasure() ignored the enable/disable state of the logger - <a href="http://code.google.com/p/mrpt/source/detail?r=3382" >r3382</a>
483  - mrpt-srba: SEGFAULT in 32bit builds due to missing MRPT_MAKE_ALIGNED_OPERATOR_NEW - <a href="http://code.google.com/p/mrpt/source/detail?r=3429" >r3429</a>
484 
485  <br/>
486  <hr>
487  <a name="1.0.1">
488  <h2>Version 1.0.1: Released 12-MAY-2013 (SVN 3370) </h2></a>
489  - Changes in apps:
490  - <a href="http://www.mrpt.org/Application%3ARawLogViewer" >RawLogViewer</a>:
491  - Better description of the "too much memory used" warning while loading large datasets.
492  - <a href="http://www.mrpt.org/Application%3Arobotic-arm-kinematics" >robotic-arm-kinematics</a>:
493  - Now allows changing the orientation of the first DOF (X,Y,Z).
494  - New classes:
495  - [mrpt-hwdrivers]
496  - mrpt::hwdrivers::CInterfaceNI845x: An interface for this USB SPI/I2C data acquisition board.
497  - mrpt::hwdrivers::CCANBusReader: A class to record CAN bus frames with a CAN232 converter.
498  - [mrpt-obs]
499  - mrpt::obs::CObservationCANBusJ1939
500  - New functions:
501  - New opengl_stock objects:
502  - mrpt::opengl::stock_objects::Hokuyo_URG()
503  - mrpt::opengl::stock_objects::Hokuyo_UTM()
504  - mrpt::opengl::stock_objects::Househam_Sprayer()
505  - mrpt::math::saveEigenSparseTripletsToFile() - <a href="http://code.google.com/p/mrpt/source/detail?r=3351" >r3351</a>
506  - New examples:
507  - gmrf_map_demo
508  - Changes in classes:
509  - [mrpt-maps]
510  - mrpt::maps::COccupancyGridMap2D now also evalutes likelihoods for sonar-like observations (mrpt::obs::CObservationRange), allowing particle-filter localization with these sensors - <a href="http://code.google.com/p/mrpt/source/detail?r=3330" >r3330</a>
511  - New method mrpt::slam::CRandomFieldGridMap2D::insertIndividualReading()
512  - [mrpt-kinematics]
513  - mrpt::kinematics::CKinematicChain: Now allows changing the orientation of the first DOF (X,Y,Z).
514  - Removed stuff:
515  - Backwards-compatibility typedef mrpt::vision::TKLTFeatureStatus has been removed. Replace with mrpt::vision::TFeatureTrackStatus
516  - KLT-specific values for mrpt::vision::TFeatureTrackStatus has been removed, since they were not used in detected features anyway.
517  - Build system:
518  - Fixed a potential build error if including FFMPEG's <time.h> instead of the standard header - <a href="http://code.google.com/p/mrpt/source/detail?r=3316" >r3316</a>
519  - Fixed determination of GCC version for all GCC builds - <a href="http://code.google.com/p/mrpt/source/detail?r=3324" >r3324</a>
520  - Updated to Eigen 3.1.3 - <a href="http://code.google.com/p/mrpt/source/detail?r=3349" >r3349</a>
521  - Updated to nanoflann 1.1.5
522  - BUG FIXES:
523  - Unit tests "SchurTests" for mrpt-srba incorrectly reported errors due to an improperly initialized reference to a local variable - <a href="http://code.google.com/p/mrpt/source/detail?r=3318" >r3318</a>
524  - Debian packages: added missing binary deps for libmrpt-dev - <a href="http://code.google.com/p/mrpt/source/detail?r=3335" >r3335</a>
525 
526  <hr>
527  <a name="1.0.0">
528  <h2>Version 1.0.0: Released 1-MAR-2013 (SVN 3287) </h2></a>
529  - <b>Most important changes:</b>
530  - New library with a flexible implementation of Sparser Relative Bundle Adjustment (RBA), as presented in ICRA 2013: <a href="http://www.mrpt.org/srba" >mrpt-srba</a>.
531  - New library for Plane-based Maps: <a href="group__mrpt__pbmap__grp.html" >mrpt-pbmap</a> (also presented in ICRA 2013).
532  - Some MRPT modules are now header-only libraries.
533  - Support for a new Octomap metric map, via the octomap library. See mrpt::maps::COctoMap and detailed changes below.
534  - Support for importing/exporting point clouds in the standard LAS format (Look for liblas below).
535  - Better support for custom builds of MRPT (selective building of individual apps and libs, etc.)
536  - Ready for Visual Studio 2012 and GCC 4.7
537  - From now on, MRPT is released under the "New BSD" license.
538  - Many bug fixes.
539  - <b>Detailed list of changes:</b>
540  - New apps:
541  - <a href="http://www.mrpt.org/Application:srba-slam" >srba-slam</a>: A command-line frontend for the Relative Bundle Adjustment engine in mrpt-srba.
542  - <a href="http://www.mrpt.org/Application:holonomic-navigator-demo" >holonomic-navigator-demo</a>
543  - <a href="http://www.mrpt.org/Application:robotic-arm-kinematics" >robotic-arm-kinematics</a>: A GUI for experimenting with Denavit-Hartenberg parameters.
544  - Changes in apps:
545  - <a href="http://www.mrpt.org/Application%3Anavlog-viewer" >navlog-viewer</a>:
546  - Fixed some minor visualization errors.
547  - <a href="http://www.mrpt.org/Application%3ARawLogViewer" >RawLogViewer</a>:
548  - Import sequence of images as rawlog: Didn't detect "png" file extension as images - <a href="http://code.google.com/p/mrpt/source/detail?r=2940" >r2940</a> - Closes <a href="http://code.google.com/p/mrpt/issues/detail?id=34" >#34</a>
549  - The GUI toolbar has been ported from wxWidget's ToolBar to sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - <a href="http://code.google.com/p/mrpt/source/detail?r=2950" >r2950</a>
550  - <a href="http://www.mrpt.org/Application:ReactiveNavigationDemo" >ReactiveNavigationDemo</a>:
551  - The default holonomic navigation method is now the VFF, since after the last bug fixes and tunes it seems to work quite well.
552  - <a href="http://www.mrpt.org/Application%3ASceneViewer" >SceneViewer3D</a>:
553  - The GUI toolbar has been ported from wxWidget's ToolBar to sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - <a href="http://code.google.com/p/mrpt/source/detail?r=2952" >r2952</a>
554  - Added a new menu: "File -> Import -> From LAS file..." - <a href="http://code.google.com/p/mrpt/source/detail?r=3244" >r3244</a>
555  - <a href="http://www.mrpt.org/Application%3Agrid-matching" >grid-matching</a>: new argument "--aligner" to select aligner method - <a href="http://code.google.com/p/mrpt/source/detail?r=3021" >r3021</a>
556  - New classes:
557  - [mrpt-base]
558  - mrpt::math::MatrixBlockSparseCols, a templated column-indexed efficient storage of block-sparse Jacobian or Hessian matrices, together with other arbitrary information - <a href="http://code.google.com/p/mrpt/source/detail?r=2995" >r2995</a>
559  - mrpt::utils::ignored_copy_ptr<>
560  - mrpt::utils::CTimeLoggerEntry
561  - [mrpt-obs]
562  - mrpt::obs::CObservationWindSensor - <a href="http://code.google.com/p/mrpt/source/detail?r=3050" >r3050</a>
563  - [mrpt-maps]
564  - mrpt::maps::COctoMap
565  - [mrpt-opengl]
566  - mrpt::opengl::COctoMapVoxels
567  - Deleted classes:
568  - [mrpt-vision]
569  - CFeatureTracker_FAST and CFeatureTracker_PatchMatch have been removed since they didn't work robustly. Replace with mrpt::vision::CFeatureTracker_KL
570  - New libraries:
571  - [mrpt-kinematics] See mrpt::kinematics
572  - [mrpt-pbmap] See <a href="group__mrpt__pbmap__grp.html" >mrpt-pbmap</a>.
573  - [mrpt-srba] See <a href="http://www.mrpt.org/srba" >mrpt-srba</a>.
574  - Changes in libraries:
575  - These libs are now header-only: <a href="http://code.google.com/p/mrpt/source/detail?r=3035" >r3035</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3045" >r3045</a>
576  - [mrpt-bayes]
577  - [mrpt-graphs]
578  - [mrpt-graphslam]
579  - Integration of the Octomap C++ library (new BSD License) by Kai M. Wurm et al.: <a href="http://code.google.com/p/mrpt/source/detail?r=3081" >r3081</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3083" >r3083</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3084" >r3084</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3086" >r3086</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3087" >r3087</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3088" >r3088</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3093" >r3093</a>
580  - The main new classes are mrpt::maps::COctoMap & mrpt::opengl::COctoMapVoxels
581  - mrpt::maps::CMultiMetricMap now allows the seamless integration of octomaps in many MRPT map building or localization algorithms.
582  - New example: samples/octomap_simple
583  - Changes in classes:
584  - [mrpt-base]
585  - Eigen::MatrixBase<Derived>::loadFromTextFile(), and all MRPT derived matrix classes, are now much faster loading huge matrices from text files - <a href="http://code.google.com/p/mrpt/source/detail?r=2997" >r2997</a>
586  - The typedef Eigen::MatrixBase<Derived>::typename of MRPT's plugin to Eigen classes has been REMOVED, to avoid conflicts with some part of Eigen's sparse classes. Use Matrix::Scalar instead - <a href="http://code.google.com/p/mrpt/source/detail?r=3065" >r3065</a>
587  - New method mrpt::poses::CPose3DQuat::inverse()
588  - New methods mrpt::poses::SE_traits::pseudo_exp()
589  - mrpt::utils::CTimeLogger:
590  - New method mrpt::utils::CTimeLogger::getStats() for programatic execution time stats analysis - <a href="http://code.google.com/p/mrpt/source/detail?r=2998" >r2998</a>
591  - New method mrpt::utils::CTimeLogger::registerUserMeasure() for making stats of user-providen values - <a href="http://code.google.com/p/mrpt/source/detail?r=3005" >r3005</a>
592  - mrpt::utils::map_as_vector<> can be now customized to use different underlying STL containers for storage - <a href="http://code.google.com/p/mrpt/source/detail?r=3001" >r3001</a>
593  - mrpt::utils::CDynamicGrid::setSize() now also accepts a "fill_value" argument.
594  - Added method mrpt::math::TPoint2D::norm() for consistency with mrpt::math::TPoint3D
595  - Better support for saving (and not only loading) plain text configuration files, including commented files with default values of all existing parameters: - <a href="http://code.google.com/p/mrpt/source/detail?r=2954" >r2954</a>
596  - All mrpt::utils::CConfigFileBase::write() now have an extended signature for formatting.
597  - mrpt::utils::CLoadableOptions::dumpToTextStream() is no longer pure virtual: it now relies on mrpt::utils::CLoadableOptions::saveToConfigFile()
598  - mrpt::utils::CStream::Seek() now supports files larger than 2GB by using uint64_t instead of long (still see issue report for another patch required for MSVC2010) - (Closes <a href="http://code.google.com/p/mrpt/issues/detail?id=39" >issue 39</a>, thanks Robert Schattschneider) - <a href="http://code.google.com/p/mrpt/source/detail?r=3042" >r3042</a>
599  - mrpt::utils::TTypeName<> moved to its own header <mrpt/utils/TTypeName.h> while refactoring <mrpt/utils/CSerializable.h> - <a href="http://code.google.com/p/mrpt/source/detail?r=3044" >r3044</a>
600  - mrpt::utils::CConfigFileBase::write() now has signatures for "uint32_t" and "uint64_t" in both 32 and 64bit builds, instead of relying of the "size_t" type. This was done to fix build errors in some GCC versions under 32bits.
601  - mrpt::poses::CPose2D now caches the cos() and sin() of phi, with a huge performance improvement in most common operations.
602  - [mrpt-bayes]
603  - mrpt::bayes::CKalmanFilterCapable (and all EKF-SLAM methods based on it) are now much faster. The implementation now exploits the sparsity of the Jacobian (~25% faster in a test 6D EKF-SLAM dataset) - <a href="http://code.google.com/p/mrpt/source/detail?r=3059" >r3059</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3060" >r3060</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3061" >r3061</a>
604  - mrpt::bayes::CParticleFilterCapable now makes use of the Curiously Recurring Template Pattern (CRTP) design instead of ugly #define macros - <a href="http://code.google.com/p/mrpt/source/detail?r=3182" >r3182</a>
605  - [mrpt-graphs]
606  - mrpt::graphs::CNetworkOfPoses2D, mrpt::graphs::CNetworkOfPoses3D,... and so on, are now all typedef's instead of classes, since serialization is now implemented as pure templatized code, thus avoiding the need to declare derived auxiliary classes - <a href="http://code.google.com/p/mrpt/source/detail?r=3044" >r3044</a>
607  - [mrpt-gui]
608  - mrpt::gui::CDisplayWindow3D::addTextMessage() (and other opengl text routines) now allows drawing text with a shadow effect - <a href="http://code.google.com/p/mrpt/source/detail?r=3007" >r3007</a>
609  - [mrpt-hwdrivers]
610  - New method mrpt::hwdrivers::CActivMediaRobotBase::areMotorsEnabled()
611  - mrpt::hwdrivers::CGenericSensor (and all derived classes) now allocate objects aligned in memory with MRPT_MAKE_ALIGNED_OPERATOR_NEW
612  - New static method mrpt::hwdrivers::CGPSInterface::parse_NMEA()
613  - [mrpt-maps]
614  - Better integration of point cloud classes with PCL: - <a href="http://code.google.com/p/mrpt/source/detail?r=2943" >r2943</a>
615  - mrpt::maps::CPointsMap::loadPCDFile()
616  - mrpt::maps::CPointsMap::setFromPCLPointCloud()
617  - mrpt::maps::CColouredPointsMap::setFromPCLPointCloudRGB()
618  - 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 - <a href="http://code.google.com/p/mrpt/source/detail?r=3244" >r3244</a>
619  - mrpt::maps::CPointsMap::loadLASFile()
620  - mrpt::maps::CPointsMap::saveLASFile()
621  - Integration of wind measurements in gas-concentration maps (by Javier G. Monroy) - <a href="http://code.google.com/p/mrpt/source/detail?r=3050" >r3050</a>
622  - [mrpt-obs]
623  - New method mrpt::obs::CObservationGPS::clear()
624  - [mrpt-opengl]
625  - Evaluation of bounding box of opengl objects. New methods: - <a href="http://code.google.com/p/mrpt/source/detail?r=3026" >r3026</a>
626  - mrpt::opengl::CRenderizable::getBoundingBox()
627  - mrpt::opengl::COpenGLScene::getBoundingBox()
628  - mrpt::opengl::COpenGLViewport::getBoundingBox()
629  - mrpt::opengl::COctreePointRenderer::octree_get_graphics_boundingboxes() has a new flag to draw solid boxes at each leaf node - <a href="http://code.google.com/p/mrpt/source/detail?r=3033" >r3033</a>
630  - mrpt::opengl::COpenGLViewport has a new set of "global OpenGL switches" that affect the rendering of entire scenes - <a href="http://code.google.com/p/mrpt/source/detail?r=3185" >r3185</a>
631  - Classes drawing lines now by default enable anti-aliasing (can be disabled by the programmer): - <a href="http://code.google.com/p/mrpt/source/detail?r=3185" >r3185</a>
632  - mrpt::opengl::CGridPlaneXY, mrpt::opengl::CGridPlaneXZ
633  - mrpt::opengl::CSimpleLine
634  - mrpt::opengl::CSetOfLines
635  - [mrpt-reactivenav]
636  - Much code of mrpt::reactivenav classes have undergone a clean-up, slight optimizations and a translation of old Spanish names/comments to English - <a href="http://code.google.com/p/mrpt/source/detail?r=2939" >r2939</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=2942" >r2942</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=2958" >r2958</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3091" >r3091</a>
637  - mrpt::reactivenav::CParameterizedTrajectoryGenerator::CColisionGrid now has a more maintainable binary serialization format - <a href="http://code.google.com/p/mrpt/source/detail?r=2939" >r2939</a>
638  - mrpt::reactivenav::CParameterizedTrajectoryGenerator::debugDumpInFiles() now also saves text files which can be used to visualize PTGs from MATLAB (see scripts/viewPTG.m) - <a href="http://code.google.com/p/mrpt/source/detail?r=3009" >r3009</a>
639  - mrpt::reactivenav::CHolonomicVFF and mrpt::reactivenav::CHolonomicND now have more configurable parameters, loadable from config files. See their documentation.
640  - 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)".
641  - Solved a stability issue in C-S paths, in mrpt::reactivenav::CPTG5 (By Mariano Jaimez Tarifa) - <a href="http://code.google.com/p/mrpt/source/detail?r=3085" >r3085</a>
642  - [mrpt-scanmatching]
643  - mrpt::scanmatching::robustRigidTransformation():
644  - Changed behavior not to allow features to appear in duplicated pairings.
645  - Added a consistency test to avoid seeding RANSAC with an inconsistent initial model.
646  - [mrpt-slam]
647  - 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.
648  - New functions:
649  - [mrpt-base]
650  - mrpt::utils::abs_diff()
651  - mrpt::system::getMRPTLicense()
652  - mrpt::system::getFileModificationTime()
653  - mrpt::math::noncentralChi2PDF_CDF() is now exposed (was private)
654  - mrpt::utils::sprintf_container()
655  - mrpt::poses::operator -(mrpt::poses::CPose3DQuat)
656  - max3() and min3() moved from the global namespace to mrpt::utils::max3() and mrpt::utils::min3()
657  - New examples:
658  - octomap_simple
659  - ransac-data-association
660  - Build system:
661  - Update to nanoflann 1.1.4 - <a href="http://code.google.com/p/mrpt/source/detail?r=2937" >r2937</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3017" >r3017</a>
662  - Update to Eigen 3.1.2 - <a href="http://code.google.com/p/mrpt/source/detail?r=3064" >r3064</a>
663  - MRPT's root "CMakeLists.txt" has undergone a big refactoring and cleanup - <a href="http://code.google.com/p/mrpt/source/detail?r=2961" >r2961</a>
664  - Backward compatible "mrpt-core" has been removed as a fake lib for which to search with CMake from user programs - <a href="http://code.google.com/p/mrpt/source/detail?r=2961" >r2961</a>
665  - More system libs are detected in Linux (libclang-dev, lib3ds-dev), discarding embedded versions then - <a href="http://code.google.com/p/mrpt/source/detail?r=2963" >r2963</a> - <a href="http://code.google.com/p/mrpt/issues/detail?id=17" >Closes #17</a>
666  - Automatic detection of supported SIMD extensions (SSE*) from CMake (only for Linux OS) - <a href="http://code.google.com/p/mrpt/source/detail?r=3013" >r3013</a>
667  - Fixed building with Visual Studio 2012 (MSVC11) - <a href="http://code.google.com/p/mrpt/source/detail?r=3017" >r3017</a>
668  - MRPT now allows defining header-only libraries with the define_mrpt_lib_header_only() macro - <a href="http://code.google.com/p/mrpt/source/detail?r=3034" >r3034</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3035" >r3035</a>
669  - More unit tests:
670  - for all probability distribution functions in mrpt::math,
671  - for the parser in mrpt::hwdrivers::CGPSInterface::parse_NMEA()
672  - for the octomap map
673  - for serialization/deserealization of many classes.
674  - Added new documentation page: <a href="env-vars.html" >environment variables</a>.
675  - Removed the build flag "MRPT_BACKCOMPATIB_08X".
676  - Fixes for building under Mac OSX: <a href="http://code.google.com/p/mrpt/source/detail?r=3181" >r3181</a>
677  - Enable some c++11 features if the compiler supports them - <a href="http://code.google.com/p/mrpt/source/detail?r=3273" >r3273</a>
678  - BUG FIXES:
679  - 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. - <a href="http://code.google.com/p/mrpt/source/detail?r=3019" >r3019</a>
680  - [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 - <a href="http://code.google.com/p/mrpt/source/detail?r=2941" >r2941</a>
681  - [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. - <a href="http://code.google.com/p/mrpt/source/detail?r=3003" >r3003</a>
682  - [mrpt-base] Wrong computation of normPDF() values for the multidimensional cases. Closes <a href="http://code.google.com/p/mrpt/issues/detail?id=46" >#46</a> - <a href="http://code.google.com/p/mrpt/source/detail?r=3068" >r3068</a>
683  - [mrpt-base] mrpt::poses::CPoint::asString() confused the 2D and 3D cases (Thanks Cipri!)
684  - [mrpt-base] Fixed errors in de-serialization of mrpt::utils::CPointPDFSOG and mrpt::maps::CReflectivityGridMap2D
685  - [mrpt-base] mrpt::math::KDTreeCapable::kdTreeRadiusSearch2D() always returned 0 matched.
686  - [mrpt-graphs] Fixed bug in RecursiveSpectralPartition (Thanks to Edu!) - <a href="http://code.google.com/p/mrpt/source/detail?r=3026" >r3026</a>
687  - [mrpt-hwdrivers] Fixed potential SEGFAULT in mrpt::hwdrivers::CGPSInterface (Thanks K.Miyawaki for <a href="http://www.mrpt.org/node/2474" >reporting</a>)
688  - [mrpt-hwdrivers] Fixed communications to LMS 1xx scanners (Thanks Henry! See http://code.google.com/p/mrpt/issues/detail?id=49 )
689  - [mrpt-maps] mrpt::maps::COccupancyGridMap2D::getAs3DObject() returned cells with an occupancy of exactly "0" as transparent - <a href="http://code.google.com/p/mrpt/source/detail?r=2957" >r2957</a>
690  - [mrpt-maps] Fixed saving the correct point colors in mrpt::maps::CColouredPointsMap::savePCDFile() (Thanks Mariano!) - <a href="http://code.google.com/p/mrpt/source/detail?r=3090" >r3090</a>
691  - [mrpt-maps] In CPointsMap::computeMatchingWith3D. Fixed matching two 3D point clouds as each correspondence was inserted twice into the output vector. (By Paco) - <a href="http://code.google.com/p/mrpt/source/detail?r=3162" >r3162</a>
692  - [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.
693  - [mrpt-reactivenav] Class mrpt::reactivenav::CHolonomicVFF was not exported in Windows DLL's (Thanks Mariano for noticing!).
694  - [mrpt-reactivenav] Fixed wrong computation of obstacles force fields in mrpt::reactivenav::CHolonomicVFF (Thanks Mariano for noticing!) - <a href="http://code.google.com/p/mrpt/source/detail?r=2953" >r2953</a>
695  - [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 - <a href="http://code.google.com/p/mrpt/source/detail?r=2939" >r2939</a> - Closes <a href="http://code.google.com/p/mrpt/issues/detail?id=33" >#33</a>
696  - [mrpt-reactivenav] ND algorithm: Fixed bugs of "last gap is never evaluated" and wrong composition of representative direction for some gaps (By Mariano) - <a href="http://code.google.com/p/mrpt/source/detail?r=3056" >r3056</a>
697 
698 
699  <br>
700  <hr>
701  <a name="0.9.6">
702  <h2>Version 0.9.6 - (Version 1.0.0-Release_Candidate_4): Released 30-MAY-2012 (SVN 2930) </h2></a>
703  - New applications:
704  - <a href="http://www.mrpt.org/Application:kinect-stereo-calibrate" >kinect-stereo-calibrate</a>: A GUI tool for calibrating RGB+D and/or stereo cameras, including live Kinect capturing.
705  - Removed applications:
706  - 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".
707  - Changes in applications:
708  - <a href="http://www.mrpt.org/Application:icp-slam" >icp-slam</a>:
709  - Added a new option (SHOW_LASER_SCANS_3D in config files) to draw laser scans in the live 3D view - <a href="http://code.google.com/p/mrpt/source/detail?r=2881" >r2881</a>
710  - <a href="http://www.mrpt.org/Application:rawlog-edit" >rawlog-edit</a>:
711  - Operation "--camera-params" now also handles stereo observations.
712  - New operation "--stereo-rectify" for batch rectifying datasets with stereo images.
713  - New operation "--rename-externals".
714  - <a href="http://www.mrpt.org/Application:SceneViewer" >SceneViewer3D</a>:
715  - New menu for generating high-resolution renders of any scene directly to imag files - <a href="http://code.google.com/p/mrpt/source/detail?r=2775" >r2775</a>
716  - Many new menus for selective selecting objects and applying operations on them - <a href="http://code.google.com/p/mrpt/source/detail?r=2776" >r2776</a>
717  - stereo-calib-gui: Now generates a report with detailed and clear results from stereo calibration and allows the user to change most parameters interactively - <a href="http://code.google.com/p/mrpt/source/detail?r=2801" >r2801</a>
718  - <a href="http://www.mrpt.org/Application:kinect-3d-view" >kinect-3d-view</a>: New key command: press '9' to grab selected snapshots to disk - <a href="http://code.google.com/p/mrpt/source/detail?r=2890" >r2890</a>
719  - Kinect stuff:
720  - [mrpt-hwdrivers]
721  - mrpt::hwdrivers::CKinect now decodes Bayer color using OpenCV instead of default freenect - <a href="http://code.google.com/p/mrpt/source/detail?r=2721" >r2721</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=2762" >r2762</a>
722  - mrpt::hwdrivers::CKinect no longer forces a horizontal tilt at start up by default, what may be annoying (if required, set "initial_tilt_angle") - <a href="http://code.google.com/p/mrpt/source/detail?r=2722" >r2722</a>
723  - mrpt::hwdrivers::CKinect now loads Kinect calibration files in a format compatible with stereo cameras. See http://www.mrpt.org/Kinect_calibration
724  - [mrpt-obs]
725  - New method mrpt::obs::CObservation3DRangeScan::convertTo2DScan() allows simulating a "fake 2D laser scanner" from a Kinect. See the example: http://www.mrpt.org/Example_Kinect_To_2D_laser_scan
726  - [mrpt-vision]
727  - New function mrpt::vision::checkerBoardStereoCalibration() to calibrate stereo and RGB+D cameras. See also the program <a href="http://www.mrpt.org/Application:kinect-stereo-calibrate" >kinect-stereo-calibrate</a>:
728  - New classes:
729  - [mrpt-gui]
730  - New event generated by GUI windows: mrpt::gui::mrptEventWindowClosed
731  - [mrpt-hwdrivers]
732  - mrpt::hwdrivers::CRaePID: A new interface to PID gas sensing devices (by Emil Khatib, University of Malaga) - <a href="http://code.google.com/p/mrpt/source/detail?r=2841" >r2841</a>
733  - [mrpt-opengl]
734  - New classes for representing confidence intervals (ellipsoids) in transformed spaces - <a href="http://code.google.com/p/mrpt/source/detail?r=2783" >r2783</a>
735  - mrpt::opengl::CGeneralizedEllipsoidTemplate<>
736  - mrpt::opengl::CEllipsoidRangeBearing2D
737  - mrpt::opengl::CEllipsoidInverseDepth2D
738  - mrpt::opengl::CEllipsoidInverseDepth3D
739  - mrpt::opengl::CFrustum to easily render these geometric figures
740  - New struct mrpt::opengl::TFontParams result of a code refactoring
741  - [mrpt-vision]
742  - mrpt::vision::TSIFTDescriptorsKDTreeIndex, TSURFDescriptorsKDTreeIndex - <a href="http://code.google.com/p/mrpt/source/detail?r=2799" >2799</a>
743  - mrpt::vision::CStereoRectifyMap - See tutorial online: http://www.mrpt.org/Rectifying_stereo_
744 
745 */



Page generated by Doxygen 1.8.11 for MRPT 1.4.0 SVN: at Sun Aug 14 23:58:29 UTC 2016