MRPT
1.9.9
changeLog_doc.h
Go to the documentation of this file.
1
/* +------------------------------------------------------------------------+
2
| Mobile Robot Programming Toolkit (MRPT) |
3
| https://www.mrpt.org/ |
4
| |
5
| Copyright (c) 2005-2019, Individual contributors, see AUTHORS file |
6
| See: https://www.mrpt.org/Authors - All rights reserved. |
7
| Released under BSD License. See: https://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
14
have not built the whole HTML documentation, the links above will be broken.
15
Either build the documentation invoking <code>make documentation_html</code> or
16
[browse it on-line](http://www.mrpt.org/).</i></p>
17
18
<hr>
19
<a name="2.0.0">
20
<h2>Version 2.0.0: (Under development) </h2></a>
21
- <b>Most important changes:</b>
22
- MRPT now requires **C++17** to build and use. See this page for a guide to
23
port existing code to MRPT 2.0: \ref porting_mrpt2
24
- Support for old namespaces `mrpt-scanmatching`, `mrpt-reactivenav` is
25
over.
26
- Backwards compatible headers for "maps" and "observations" in mrpt::slam
27
are removed. They moved to their own namespaces in MRPT v1.3.0 (Jan 2015).
28
- All pointer typedefs are now in their respective classes: FooPtr ->
29
Foo::Ptr
30
- Add support for serialization with std::variant
31
- <b>Detailed list of changes:</b>
32
- Changes in applications:
33
- RawLogViewer:
34
- The ICP module now supports Velodyne 3D scans.
35
- pf-localization:
36
- Odometry is now used also for observation-only rawlogs.
37
- Changes in libraries:
38
- \ref mrpt_base_grp => Refactored into several smaller libraries, one
39
per namespace.
40
- Removed class std::vector<std::string>. Replace by STL containers
41
of `std::string` and functions mrpt::system::stringListAsString() in \ref
42
string_manage.
43
- \ref mrpt_core_grp [NEW IN MRPT 2.0.0]
44
- Memory alignment of aligned_allocator_cpp11<> is set to 16,32 or
45
64 depending on whether AVX optimizations are enabled, to be compatible with
46
Eigen.
47
- \ref mrpt_math_grp [NEW IN MRPT 2.0.0]
48
- Removed functions (replaced by C++11/14 standard library):
49
- mrpt::math::erf, mrpt::math::erfc, std::isfinite,
50
mrpt::math::std::isnan
51
- `mrpt::math::make_vector<>` => `std::vector<>{...}` braced
52
initializator
53
- Removed the include file: `<mrpt/math/jacobians.h>`. Replace by
54
`<mrpt/math/num_jacobian.h>` or individual methods in \ref mrpt_poses_grp
55
classes.
56
- \ref mrpt_config_grp [NEW IN MRPT 2.0.0]
57
- mrpt::config::CConfigFileBase::write() now supports enum types.
58
- \ref mrpt_serialization_grp [NEW IN MRPT 2.0.0]
59
- New method mrpt::serialization::CArchive::ReadPOD() and macro
60
`MRPT_READ_POD()` for reading unaligned POD variables.-
61
- Add support for `$env{}` syntax to evaluate environment variables.
62
- \ref mrpt_slam_grp
63
- rbpf-slam: Add support for simplemap continuation.
64
- CICP: parameter `onlyClosestCorrespondences` deleted (always true
65
now).
66
- \ref mrpt_system_grp
67
- functions to get timestamp as *local* time were removed, since
68
they don't make sense. All timestamps in MRPT are UTC, and they can be formated
69
as dates in either UTC or local time frames.
70
- \ref mrpt_nav_grp
71
- Removed deprecated mrpt::nav::THolonomicMethod.
72
- mrpt::nav::CAbstractNavigator: callbacks in
73
mrpt::nav::CRobot2NavInterface are now invoked *after* `navigationStep()` to
74
avoid problems if user code invokes the navigator API to change its state.
75
- Added methods to load/save mrpt::nav::TWaypointSequence to
76
configuration files.
77
- Waypoints now have a field `speed_ratio` which is directly
78
forwarded to the low-level reactive navigator.
79
- \ref mrpt_comms_grp [NEW IN MRPT 2.0.0]
80
- This new module has been created to hold all serial devices &
81
networking classes, with minimal dependencies.
82
- \ref mrpt_maps_grp
83
- mrpt::maps::CMultiMetricMap has been greatly simplified and now it
84
is actually defined in the mrpt-maps library.
85
- New map type: mrpt::maps::CPointsMapXYZI for pointclouds with an
86
intensity channel.
87
- New observation class: mrpt::obs::CObservationPointCloud
88
- Added optional "channel" attribute to CReflectivityGridMap2D and
89
CObservationReflectivity to support different colors of light.
90
- \ref mrpt_hwdrivers_grp
91
- COpenNI2Generic: is safer in multithreading apps.
92
- CHokuyoURG:
93
- Rewrite driver to be safer and reduce mem allocs.
94
- New parameter `scan_interval` to decimate scans.
95
- VelodyneCalibration: Can now load YAML files, in addition to XML.
96
- \ref mrpt_opengl_grp
97
- Update Assimp lib version 4.0.1 -> 4.1.0 (when built as
98
ExternalProject)
99
- \ref mrpt_obs_grp
100
- mrpt::obs::T3DPointsProjectionParams and
101
mrpt::obs::CObservation3DRangeScan::project3DPointsFromDepthImageInto now
102
together support organized PCL point clouds.
103
- \ref mrpt_poses_grp [NEW IN MRPT 2.0.0]
104
- Reorganized all Lie Algebra methods into \ref mrpt_poses_lie_grp
105
- Removed CPose3DRotVec, since its conceptual design is identical to
106
Lie tangent space vectors.
107
108
- BUG FIXES:
109
- Fix reactive navigator inconsistent state if navigation API is called
110
from within rnav callbacks.
111
- Fix incorrect evaluation of "ASSERT" formulas in
112
mrpt::nav::CMultiObjectiveMotionOptimizerBase
113
- Fix aborting reading from LMS111 scanner on first error.
114
- Fix == operator on CPose3D: it now uses an epsilon for comparing the
115
rotation matrices.
116
- Fix accessing unaligned POD variables deserializing CObservationGPS
117
(via the new `MRPT_READ_POD()` macro).
118
- Fix segfault in CMetricMap::loadFromSimpleMap() if the provided
119
CMetricMap has empty smart pointers.
120
- Fix crash in CGPSInterface when not setting an external mutex.
121
122
<hr>
123
<a name="1.5.7">
124
<h2>Version 1.5.7: (Under development) </h2></a>
125
- <b>Detailed list of changes:</b>
126
- \ref mrpt_graphslam_grp
127
- CNetworkOfPoses: read/write format made compatible with G2O EDGE_SE2
128
types.
129
- BUG FIXES:
130
- Fix missing "-ldl" linker flag.
131
- Fix building against wxWidgets 3.1.1 in Windows (zlib link error).
132
133
<hr>
134
<a name="1.5.6">
135
<h2>Version 1.5.6: Released 24/APR/2018 </h2></a>
136
- Applications:
137
- pf-localization:
138
- Odometry is now used also for observation-only rawlogs.
139
- \ref mrpt_hwdrivers_grp
140
- mrpt::hwdrivers::COpenNI2Generic: added mutexes for safer
141
multi-threading operation.
142
- mrpt::hwdrivers::CHokuyoURG: Added a new parameter to skip scans.
143
Driver clean up to be safer and perform less memory allocs.
144
- \ref mrpt_maps_grp
145
- COccupancyGridMap2D: New LIDAR insertion parameters:
146
maxFreenessUpdateCertainty, maxFreenessInvalidRanges.
147
- \ref mrpt_reactivenav_grp
148
- CAbstractPTGBasedReactive: Added new score `holo_stage_eval`.
149
- BUG FIXES:
150
- circular_buffer: exception made state preserving
151
152
<hr>
153
<a name="1.5.5">
154
<h2>Version 1.5.5: (Under development) </h2></a>
155
- <b>Detailed list of changes:</b>
156
- \ref mrpt_nav_grp
157
- mrpt::nav::CHolonomicFullEval now uses an internal sin/cos LUT cache
158
for improved performance.
159
- \ref mrpt_hwdrivers_grp
160
- A new class for SICK TIM561(TIM55x/TIM56x) lidar:
161
- A new source file named CSICKTim561Eth_2050101.cpp, which supports
162
SICK TIM series lidar including Tim55x, Tim56x
163
- mrpt::hwdrivers::CSICKTim561Eth
164
- A new test sample for SICK TIM561(TIM55x/TIM56x) lidar:
165
- sample/SICK_tim561eth_test/test.cpp
166
- BUG FIXES:
167
- Fix likelihood computation in mrpt::maps::CReflectivityGridMap2D
168
(which led to crash)
169
- Fixed regression in particle resampling affecting RBPF-SLAM methods.
170
Introduced in Dec. 2016 with [this
171
commit](https://github.com/MRPT/mrpt/commit/691973813bdc53d3faa7088b092eb041aa80d0ce).
172
173
<hr>
174
<a name="1.5.4">
175
<h2>Version 1.5.4: Released 31/OCT/2017 </h2></a>
176
- <b>Detailed list of changes:</b>
177
- \ref mrpt_base_grp
178
- Fix potential uninitialized value in
179
CRobot2DPoseEstimator::getLatestRobotPose()
180
- MRPT_getCompilationDate() returns time as well
181
- \ref mrpt_gui_grp
182
- mrpt::gui::mrptEventMouseMove: Added new mrpt::gui windows event
183
type.
184
- Build system:
185
- Fix MRPTConfig.cmake for system octomap libraries.
186
- Fix package-contains-vcs-control-file (.gitingore) Lintian error.
187
- Fix compiling without liboctomap-dev in Ubuntu PPA.
188
- BUG FIXES:
189
- Fix waypoint reactive navigator edge case in which "end event" won't
190
be issued.
191
- Fix waypoint reactive navigator error while doing final aligning
192
(missing and dupplicated nav-end events).
193
- Fix aborting reading from LMS111 scanner on first error.
194
- Fix waypoint reactive navigator edge case in which "end event" won't
195
be issued.
196
- Fix corrupted pointers in CNetworkOfPoses after copy or move
197
operations.
198
- Fix invalid TP-targets generated during reactive navigation.
199
- Fix memory leak in reactivenav engine.
200
- Fix potential out-of-range access in
201
CObservation3DRangeScan::convertTo2DScan()
202
203
<hr>
204
<a name="1.5.3">
205
<h2>Version 1.5.3: Released 13/AUG/2017 </h2></a>
206
- <b>Detailed list of changes:</b>
207
- CMake >=3.1 is now required for use of ExternalProjects.
208
- Scripts `scripts/prepare_{debian,release}.sh` have been refactored and
209
simplified.
210
- Removed embedded source code versions of Eigen, assimp and octomap.
211
Downloaded and built as ExternalProjects if not present in the system.
212
- Releases will be signed with PGP from now on and posted as binary
213
attachments to GitHub releases.
214
215
<hr>
216
<a name="1.5.2">
217
<h2>Version 1.5.2: Released 6/AUG/2017 </h2></a>
218
- <b>Detailed list of changes:</b>
219
- Changes in libraries:
220
- \ref mrpt_base_grp
221
- Added methods:
222
- mrpt::synch::CCriticalSection::try_enter()
223
- mrpt::synch::CCriticalSectionRecursive::try_enter()
224
- \ref mrpt_nav_grp
225
- mrpt::nav::CAbstractNavigator: callbacks in
226
mrpt::nav::CRobot2NavInterface are now invoked *after* `navigationStep()` to
227
avoid problems if user code invokes the navigator API to change its state.
228
- Added methods to load/save mrpt::nav::TWaypointSequence to
229
configuration files.
230
- \ref mrpt_slam_grp
231
- rbpf-slam: Add support for simplemap continuation.
232
- BUG FIXES:
233
- Fix reactive navigator inconsistent state if navigation API is called
234
from within rnav callbacks.
235
- Fix incorrect evaluation of "ASSERT" formulas in
236
mrpt::nav::CMultiObjectiveMotionOptimizerBase
237
238
<hr>
239
<a name="1.5.1">
240
<h2>Version 1.5.1: Released 21/JUN/2017 </h2></a>
241
- <b>Detailed list of changes:</b>
242
- Changes in libraries:
243
- \ref mrpt_nav_grp
244
- fix const-correctness:
245
[commit](https://github.com/MRPT/mrpt/commit/7e79003d2adeb7b170fa04e0bc34d42707e07306)
246
- More flexible callback behavior:
247
[commit](https://github.com/MRPT/mrpt/commit/5b054336a1ac75f6e4f8741e5049971917a2980a)
248
249
250
<hr>
251
<a name="1.5.0">
252
<h2>Version 1.5.0: Released 10-JUN-2018</h2></a>
253
- Changes in apps:
254
- New app
255
[PTG-configurator](http://www.mrpt.org/list-of-mrpt-apps/application-ptg-configurator/)
256
-
257
[ReactiveNavigationDemo](http://www.mrpt.org/list-of-mrpt-apps/application-reactivenavigationdemo/)
258
has been totally rebuilt as a 3D visualizer capable of testing different
259
navigation algorithms and robot kinematics.
260
- [RawLogViewer](http://www.mrpt.org/list-of-mrpt-apps/rawlogviewer/):
261
- Now displays a textual and graphical representation of all
262
observation timestamps, useful to quickly detect sensor "shortages" or temporary
263
failures.
264
- New menu operation: "Edit" -> "Rename selected observation"
265
- mrpt::obs::CObservation3DRangeScan pointclouds are now shown in
266
local coordinates wrt to the vehicle/robot, not to the sensor.
267
-
268
[rawlog-edit](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit/):
269
New flag: `--txt-externals`
270
- Changes in libraries:
271
- \ref mrpt_base_grp
272
- New API to interface ZeroMQ: \ref noncstream_serialization_zmq
273
- Deprecated function (since 1.3.0) deleted:
274
mrpt::system::registerFatalExceptionHandlers()
275
- New method mrpt::poses::CPosePDFParticles::resetAroundSetOfPoses()
276
- Class mrpt::utils::CRobotSimulator renamed ==>
277
mrpt::kinematics::CVehicleSimul_DiffDriven
278
- New twist (linear + angular velocity state) classes:
279
mrpt::math::TTwist2D, mrpt::math::TTwist3D
280
- New template method: mrpt::utils::CStream::ReadAsAndCastTo
281
- Added missing method mrpt::poses::CPose2D::inverseComposePoint()
282
for consistency with CPose3D
283
- New class std::recursive_mutex
284
- New class mrpt::system::COutputLogger replaces the classes
285
mrpt::utils::CDebugOutputCapable (deprecated) and mrpt::utils::CLog (removed).
286
- New macros for much more versatily logging:
287
- MRPT_LOG_DEBUG(), MRPT_LOG_INFO(), MRPT_LOG_WARN(),
288
MRPT_LOG_ERROR()
289
- MRPT_LOG_DEBUG_STREAM, MRPT_LOG_INFO_STREAM,
290
MRPT_LOG_WARN_STREAM, MRPT_LOG_ERROR_STREAM
291
- New functions for polynomial roots: see \ref polynomial_roots
292
- New functions for signal filtering: see \ref filtering_grp
293
- New functions for Fresnel integrals: see \fresnel_integrals_grp
294
- New classes mrpt::math::CAtan2LookUpTable,
295
mrpt::math::CAtan2LookUpTableMultiRes
296
- [API change] The following functions are no longer static methods:
297
(since their classes are now derived from the state-aware
298
mrpt::system::COutputLogger)
299
- mrpt::math::RANSAC_Template::execute()
300
- mrpt::math::CLevenbergMarquardtTempl::execute()
301
- Deleted methods in Eigen-extensions: leftDivideSquare(),
302
rightDivideSquare()
303
- Removed support for **named** semaphores in
304
mrpt::synch::CSemaphore
305
- new method mrpt::system::CTimeLogger::getLastTime()
306
- Removed mrpt::utils::CStartUpClassesRegister, replaced by the new
307
macro MRPT_INITIALIZER()
308
- New class mrpt::utils::CRateTimer
309
- mrpt::poses::CRobot2DPoseEstimator now uses a more generic
310
odometry-based velocity model (vx,vy,omega).
311
- New template mrpt::utils::ts_hash_map<> for thread-safe,
312
std::map-like containers based on hash functions.
313
- Included exprtk header-only library to runtime compile &
314
evaluation of mathematical expressions, under `<mrpt/otherlibs/exprtk.hpp>`
315
- New smart pointer templates: `mrpt::utils::copy_ptr<>`,
316
`mrpt::utils::poly_ptr<>`.
317
- New colormap: mrpt::utils::hot2rgb()
318
- New function mrpt::system::find_mrpt_shared_dir()
319
- New class mrpt::containers::CDynamicGrid3D<>
320
- New function mrpt::comms::net::http_request()
321
- New function mrpt::system::now_double()
322
- New function mrpt::rtti::getAllRegisteredClassesChildrenOf()
323
- Safer CClassRegistry: detect and warn on attempts to duplicated
324
class registration.
325
- New class mrpt::expr::CRuntimeCompiledExpression
326
- mrpt::config::CConfigFile and mrpt::config::CConfigFileMemory now
327
can parse config files with end-of-line backslash to split long strings into
328
several lines.
329
- New class mrpt::poses::FrameTransformer
330
- mrpt::poses classes now have all their constructors from
331
mrpt::math types marked as explicit, to avoid potential ambiguities and
332
unnoticed conversions.
333
- [Sophus](https://github.com/strasdat/Sophus/) is now used
334
internally for some Lie Algebra methods, and also exposed to the user as
335
`#include <mrpt/otherlibs/sophus/so3.hpp>`, etc. as part of mrpt-base
336
- \ref mrpt_bayes_grp
337
- [API change] `verbose` is no longer a field of
338
mrpt::bayes::CParticleFilter::TParticleFilterOptions. Use the
339
setVerbosityLevel() method of the CParticleFilter class itself.
340
- [API change] mrpt::bayes::CProbabilityParticle (which affects all
341
PF-based classes in MRPT) has been greatly simplified via usage of the new
342
mrpt::utils::copy_ptr<> pointee-copy-semantics smart pointer.
343
- \ref mrpt_graphs_grp
344
- New class mrpt::graphs::ScalarFactorGraph, a simple but extensible
345
linear GMRF solver. Refactored from mrpt::maps::CGasConcentrationGridMap2D, etc.
346
- \ref mrpt_gui_grp
347
- mrpt::gui::CWxGLCanvasBase is now derived from
348
mrpt::opengl::CTextMessageCapable so they can draw text labels
349
- New class mrpt::gui::CDisplayWindow3DLocker for exception-safe 3D
350
scene lock in 3D windows.
351
- \ref mrpt_hwdrivers_grp
352
- Using rplidar newest SDK 1.5.6 instead of 1.4.3, which support
353
rplidar A1 and rplidar A2
354
- mrpt::hwdrivers::CNTRIPEmitter can now also dump raw NTRIP data to
355
a file
356
- \ref mrpt_kinematics_grp
357
- New classes for 2D robot simulation:
358
- mrpt::kinematics::CVehicleSimul_DiffDriven
359
- mrpt::kinematics::CVehicleSimul_Holo
360
- New classes for 2D robot kinematic motion commands. See children
361
of mrpt::kinematics::CVehicleVelCmd
362
- \ref mrpt_maps_grp
363
- mrpt::maps::COccupancyGridMap2D::loadFromBitmapFile() correct
364
description of `yCentralPixel` parameter.
365
- mrpt::maps::CPointsMap `liblas` import/export methods are now in a
366
separate header. See \ref mrpt_maps_liblas_grp and \ref dep-liblas
367
- New class mrpt::maps::CRandomFieldGridMap3D
368
- New class mrpt::maps::CPointCloudFilterByDistance
369
- \ref mrpt_obs_grp
370
- [ABI change] mrpt::obs::CObservation2DRangeScan
371
- range scan vectors are now protected for safety.
372
- New getter/setter methods.
373
- backwards-compatible proxies added for read-only from range
374
scan members.
375
- [ABI change] mrpt::obs::CObservation3DRangeScan:
376
- Now uses more SSE2 optimized code
377
- Depth filters are now available for
378
mrpt::obs::CObservation3DRangeScan::project3DPointsFromDepthImageInto() and
379
mrpt::obs::CObservation3DRangeScan::convertTo2DScan()
380
- New switch
381
mrpt::obs::CObservation3DRangeScan::EXTERNALS_AS_TEXT for runtime selection of
382
externals format.
383
- mrpt::obs::CObservation2DRangeScan now has an optional field for
384
intensity.
385
- mrpt::obs::CRawLog can now holds objects of arbitrary type, not
386
only actions/observations. This may be useful for richer logs aimed at
387
debugging.
388
- mrpt::obs::CObservationVelodyneScan::generatePointCloud() can now
389
generate the microseconds-precise timestamp for each individual point (new param
390
`generatePerPointTimestamp`).
391
- \ref mrpt_opengl_grp
392
- [ABI change] mrpt::opengl::CAxis now has many new options exposed
393
to configure its look.
394
- mrpt::opengl::CSetOfLines can now optionally show vertices as
395
dots.
396
- lib3DS is no longer shipped as an embedded version. A system
397
library in Linux is required to use mrpt::opengl::C3DSScene. Use
398
mrpt::opengl::CAssimpModel as a more powerful alternative.
399
- \ref mrpt_slam_grp
400
- [API change] mrpt::slam::CMetricMapBuilder::TOptions does not have
401
a `verbose` field anymore. It's supersedded now by the verbosity level of the
402
CMetricMapBuilder class itself.
403
- [API change] getCurrentMetricMapEstimation() renamed
404
mrpt::slam::CMultiMetricMapPDF::getAveragedMetricMapEstimation() to avoid
405
confusions.
406
- \ref mrpt_hwdrivers_grp
407
- mrpt::hwdrivers::CGenericSensor: external image format is now
408
`png` by default instead of `jpg` to avoid losses.
409
- [ABI change] mrpt::hwdrivers::COpenNI2Generic:
410
- refactored to expose more methods and allow changing
411
parameters via its constructor.
412
- Now supports reading from an IR, RGB and Depth channels
413
independenty.
414
- mrpt::hwdrivers::CHokuyoURG now can optionally return intensity
415
values.
416
- Deleted old, unused classes:
417
- mrpt::hwdrivers::CBoardIR
418
- mrpt::hwdrivers::CBoardDLMS
419
- mrpt::hwdrivers::CPtuHokuyo
420
- mrpt::hwdrivers::CHokuyoURG no longer as a "verbose" field. It's
421
superseded now by the COutputLogger interface.
422
- mrpt::hwdrivers::CActivMediaRobotBase and the embedded ARIA
423
library have been removed. Nowadays, one can access to ARIA robots via ROS
424
packages more easily than via MRPT.
425
- \ref mrpt_maps_grp
426
- mrpt::maps::CMultiMetricMapPDF added method
427
CMultiMetricMapPDF::prediction_and_update_pfAuxiliaryPFStandard().
428
- \ref mrpt_nav_grp
429
- New mrpt::nav::CWaypointsNavigator interface for waypoint
430
list-based navigation.
431
- [ABI & API change] PTG classes refactored (see new virtual base
432
class mrpt::nav::CParameterizedTrajectoryGenerator and its derived classes):
433
- Old classes `CPTG%d` have been renamed to describe each path
434
type. Old PTGs #6 and #7 have been removed for lack of practical use.
435
- New separate classes for PTGs based on numerically-integrated
436
paths and on closed-form formulations.
437
- Old deprecated method of PTGs `lambdaFunction()` removed.
438
- Parameters are no longer passed via a
439
mrpt::system::TParameters class, but via a mrpt::config::CConfigFileBase which
440
makes parameter passing to PTGs much more maintainable and consistent.
441
- PTGs now have a score_priority field to manually set hints
442
about preferences for path planning.
443
- PTGs are now mrpt::config::CLoadableOptions classes
444
- New classes:
445
- mrpt::nav::CMultiObjectiveMotionOptimizerBase
446
- \ref mrpt_graphslam_grp
447
- Extend mrpt-graphslam lib to execute simulated/real-time
448
graphSLAM. mrpt-graphslam supports 2D/3D execution of graphSLAM, utilizing
449
LaserScans, odometry information.
450
- Develop application `graphslam-engine` that executes graphSLAM via
451
the mrpt-graphslam lib
452
- mrpt::grpahslam::CGraphSlamEngine as the generic object that
453
manages graphSLAM, Node/Edge registration decider
454
classes under the mrpt::graphslam::deciders namesapce, optimizer
455
wrapper classes under mrpt::graphslam::optimizers
456
- Changes in build system:
457
- [Windows only] `DLL`s/`LIB`s now have the signature
458
`lib-${name}${2-digits-version}${compiler-name}_{x32|x64}.{dll/lib}`, allowing
459
several MRPT versions to coexist in the system PATH.
460
- [Visual Studio only] There are no longer `pragma comment(lib...)` in
461
any MRPT header, so it is the user responsibility to correctly tell user
462
projects to link against MRPT libraries. Normally, this is done with the
463
standard command `TARGET_LINK_LIBRARIES(MYTARGET ${MRPT_LIBS})`.
464
- Debian package: depends on libopenni-dev
465
- Optional dependency `liblas`: minimum required version is now 1.6.0
466
(Ubuntu Trusty or above).
467
- Update of embedded copy of nanoflann to version 1.2.0.
468
- New script for automated dumping stack traces on unit tests failures
469
(`tests/run_all_tests_gdb.sh`)
470
- Fix build against wxWidgets 3.1.*
471
- Embedded version of gtest upgraded to 1.8.0
472
- BUG FIXES:
473
- Fix inconsistent state after calling
474
mrpt::obs::CObservation3DRangeScan::swap()
475
- Fix SEGFAULT in mrpt::obs::CObservation3DRangeScan if trying to build
476
a pointcloud in an external container (mrpt::opengl, mrpt::maps)
477
- Fix mrpt::hwdrivers::CHokuyoURG can return invalid ray returns as
478
valid ranges.
479
- Fix PTG look-up-tables will always fail to load from cache files and
480
will re-generate (Closes [GitHub #243](https://github.com/MRPT/mrpt/issues/243))
481
- Fix mrpt::maps::COccupancyGridMap2D::simulateScanRay() fails to mark
482
out-of-range ranges as "invalid".
483
- Fix mrpt::io::CMemoryStream::Clear() after assigning read-only
484
memory blocks.
485
- Fix point into polygon checking not working for concave polygons. Now,
486
mrpt::math::TPolygon2D::contains() uses the winding number test which works for
487
any geometry.
488
- Fix inconsistent internal state after externalizing
489
mrpt::obs::CObservation3DRangeScan
490
- Fix a long outstanding bug regarding losing of keystroke events in
491
CDisplayWindow3D windows (Closes #13 again)
492
- Fix wrong units for negative numbers in mrpt::system::unitsFormat()
493
- Fix potential thread-unsafe conditions while inserting a
494
mrpt::obs::CObservation2DRangeScan into a pointmap with SSE2 optimizations
495
enabled.
496
- CStream: Fix memory leak if an exception (e.g. EOF) is found during
497
object deserialization.
498
- Fix a bug in the `onlyUniqueRobust` option for point cloud matching
499
(affecting CICP, etc.). Thanks [Shuo](https://github.com/ygzhangsoya)!
500
501
<hr>
502
<a name="1.4.0">
503
<h2>Version 1.4.0: Released 22-APR-2016 </h2></a>
504
- <b>Most important changes:</b>
505
- Support for Velodyne LIDAR sensors.
506
- New minor version number due to changes in the API of these classes
507
(read details below): mrpt::obs::CObservationGPS, mrpt::hwdrivers::CGPSInterface
508
- [Python bindings](https://github.com/MRPT/mrpt/wiki/PythonBindings)
509
added for a subset of MRPT functionality (Thanks Peter Rudolph and Nikolaus
510
Demmel!)
511
- <b>Detailed list of changes:</b>
512
- New apps:
513
-
514
[gps2rawlog](http://www.mrpt.org/list-of-mrpt-apps/application-gps2rawlog/):
515
Application to parse raw dumps of a GPS (GNSS) receiver output.
516
-
517
[image2gridmap](http://www.mrpt.org/list-of-mrpt-apps/application-image2gridmap/):
518
Small tool to import any image as an MRPT gridmap object file (*.gridmap).
519
-
520
[velodyne-view](http://www.mrpt.org/list-of-mrpt-apps/application-velodyne-view/):
521
Application to test, visualize and grab data from a live Velodyne sensor or from
522
a PCAP record.
523
- Changes in apps:
524
-
525
[rawlog-grabber](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-grabber/):
526
Now does not show GPS and IMU debug data in console, unless
527
`MRPT_HWDRIVERS_VERBOSE` environment variable is set.
528
-
529
[rawlog-edit](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit/):
530
New operation: `--export-gps-all`
531
- Changes in libraries:
532
- \ref mrpt_base_grp
533
- [ABI change] mrpt::system::tokenize() new parameter
534
`skipBlankTokens`
535
- mrpt::utils::circular_buffer now has peek() methods
536
- Eigen::MatrixBase<Derived>::loadFromTextFile() now also
537
accepts `,` as column separator.
538
- New functions:
539
- mrpt::system::timestampAdd()
540
- mrpt::utils::compute_CRC32()
541
- mrpt::utils::saturate<>()
542
- mrpt::containers::CDynamicGrid<> now uses `double` instead of
543
`float` for all dimensions and coordinate computations.
544
- Priority with these functions now work properly in GNU/Linux;
545
though, see the notes in their documentation for required permissions:
546
- mrpt::system::changeCurrentProcessPriority()
547
- mrpt::system::changeThreadPriority()
548
- New classes/structures:
549
- mrpt::math::TPointXYZIu8, mrpt::math::TPointXYZRGBu8,
550
mrpt::math::TPointXYZfIu8, mrpt::math::TPointXYZfRGBu8
551
- \ref mrpt_hwdrivers_grp
552
- New class mrpt::hwdrivers::CVelodyneScanner
553
- mrpt::hwdrivers::CNTRIPEmitter now has a parameter to
554
enable/disable sending back the data from the serial port to the NTRIP caster.
555
- <b>[API changed]</b> mrpt::hwdrivers::CGPSInterface API
556
clean-up and made more generic so any stream can be used to parse GNSS messages,
557
not only serial ports.
558
- New class mrpt::hwdrivers::CStereoGrabber_Bumblebee_libdc1394
559
for capturing without PGR Flycapture but directly through libdc1394.
560
- Removed class mrpt::hwdrivers::CStereoGrabber_Bumblebee ,
561
superseded by mrpt::hwdrivers::CImageGrabber_FlyCapture2 which is capable of
562
both monocular and stereo grabbing.
563
- \ref mrpt_maps_grp
564
- New class mrpt::maps::CHeightGridMap2D_MRF
565
- New base class mrpt::maps::CHeightGridMap2D_Base
566
- mrpt::maps::COccupancyGridMap2D:
567
- New method
568
mrpt::maps::COccupancyGridMap2D::copyMapContentFrom()
569
- New likelihood parameter `LF_useSquareDist`
570
- New parameter
571
mrpt::maps::COccupancyGridMap2D::RAYTRACE_STEP_SIZE_IN_CELL_UNITS
572
- mrpt::maps::COccupancyGridMap2D::simulateScanRay() is now
573
~40% (GCC) to ~250% (MSVC) faster by default.
574
- New method
575
mrpt::maps::COccupancyGridMap2D::laserScanSimulatorWithUncertainty()
576
- New method
577
mrpt::maps::CHeightGridMap2D::insertIndividualPoint()
578
- mrpt::maps::CMetricMap::compute3DMatchingRatio() has a
579
simplified API now
580
- \ref mrpt_obs_grp
581
- New class mrpt::obs::CObservationVelodyneScan
582
- mrpt::obs::CSinCosLookUpTableFor2DScans now can build a table
583
from a mrpt::obs::T2DScanProperties structure, which now also has its separate
584
header file for better modularity.
585
- <b>[API changed]</b> mrpt::obs::CObservationGPS now stores
586
only one message per objects. API clean-up and extended so the number of GNSS
587
message types is larger and more scalable.
588
- mrpt::obs::gnss: A new namespace with many new data structures
589
for GPS-related messages
590
- mrpt::obs::CObservation3DRangeScan: projection of RGBD images
591
to 3D points now correctly filters out invalid points, which were in previous
592
versions mapped as (0,0,0) points (relative to the sensor). In turn, this leads
593
to point clouds of a dynamic number of points. In case of needing the (u,v)
594
pixel coordinates of projected points, checkout the new fields `points3D_idxs_x`
595
& `points3D_idxs_y`.
596
- New class mrpt::obs::CObservation2DRangeScanWithUncertainty
597
- \ref mrpt_opengl_grp
598
- New class mrpt::opengl::CMesh3D to render 3D models/meshes
599
- New method
600
mrpt::opengl::CPointCloudColoured::recolorizeByCoordinate()
601
- \ref mrpt_slam_grp
602
- Small clean up of mrpt::slam::CICP API, add separate variable
603
to select covariance estimation method.
604
- \ref mrpt_topography_grp
605
- New function mrpt::topography::geocentricToENU_WGS84()
606
- \ref mrpt_vision_grp
607
- Removed the old GPL-licensed Hess SIFT implementation.
608
- mrpt::vision::CDifOdo has been refactored and now does faster
609
image pyramid computation (By Mariano Jaimez)
610
- mrpt::maps::CLandmarksMap changes:
611
- `beaconMaxRange` & `alphaRatio` parameters have been
612
removed since they were not used.
613
- New likelihood parameter `beaconRangesUseObservationStd`
614
to allow using different uncertainty values with each observation.
615
- Changes in build system:
616
- [Python
617
bindings](https://github.com/MRPT/mrpt/wiki/PythonBindings) added for a subset
618
of MRPT functionality (Thanks Peter Rudolph!)
619
- Code ported to support the new libftdi1-dev (Fixes Debian bug
620
#810368, GitHub issue #176)
621
- Fix building with gcc 6.0 (Closes Debian bug #811812)
622
- CMake new option: `DISABLE_MRPT_AUTO_CLASS_REGISTRATION` to reduce
623
the footprint of MRPT statically-linked programs.
624
- Fix building against wxWidgets 3.1
625
- BUG FIXES:
626
- mrpt::math::CQuaternion<> did not check for unit norm in Release
627
builds.
628
- Fix build errors against OpenCV 3.0.0+ without opencv_contrib
629
modules.
630
- mrpt::hwdrivers::CHokuyoURG now correctly handles opening both USB
631
and Ethernet Hokuyo devices (Closes Github issue #180)
632
- Fixed mrpt::comms::net::DNS_resolve_async() may SIGSEGV in slow
633
networks.
634
- mrpt::opengl::CMesh::updateColorsMatrix() did not ignore cells
635
masked out.
636
- Wrong weights used in mrpt::poses::CPosePDFSOG::getMean()
637
- Removed ad-hoc bias addition in range-only predictions in
638
landmarks maps.
639
- Error loading height map count in
640
mrpt::maps::TSetOfMetricMapInitializers (Closes GitHub issue <a
641
href="https://github.com/MRPT/mrpt/issues/205" >#205</a>.
642
- Fix "gray images" grabbed in Windows when capturing the render
643
output of 3D windows (Thanks Mariano J.T. & Christian Kerl from TUM!)
644
- Fix typos and wxWidgets align errors in RawLogViewer GUI (Closes
645
#219)
646
- mrpt::nav::CHolonomicND & mrpt::nav::CHolonomicVFF didn't use the
647
full range of output velocities.
648
- mrpt::img::CImage::loadFromFile() now does not leave the image in
649
undefined state if the load operation fails.
650
- mrpt::hwdrivers::CLMS100Eth failed to load "pose_yaw" parameter
651
from config file.
652
-
653
mrpt::obs::CObservation3DRangeScan::doDepthAndIntensityCamerasCoincide() did not
654
correctly return `false` for negative offsets between the camera poses.
655
656
<hr>
657
<a name="1.3.2">
658
<h2>Version 1.3.2: Released 3-NOV-2015 </h2></a>
659
- Changes in Apps:
660
-
661
[rawlog-edit](http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit/):
662
- New operation: `--list-poses`
663
- `--list-images` now also works with 3D range scans
664
- Changes in libraries:
665
- The library mrpt-srba has been moved out of MRPT and now is an
666
independent project: https://github.com/MRPT/srba
667
- \ref mrpt_base_grp
668
- mrpt::math::KDTreeCapable::TKDTreeSearchParams: Removed parameter
669
nChecks, which was ignored by nanoflann anyway.
670
- \ref mrpt_hwdrivers_grp
671
- mrpt::hwdrivers::CCameraSensor: Implemented OpenNI2 support for
672
CCameraSensor
673
- \ref mrpt_nav_grp
674
- mrpt::nav::CAbstractPTGBasedReactive: Maximum acceleration filter
675
(SPEEDFILTER_TAU) now follows paths better (Thanks to Steven Butner, UCSB/ECE)
676
- Changes in build system:
677
- `FIND_PACKAGE(MRPT)` will return libraries in the var
678
`MRPT_LIBRARIES`, following the CMake convention. The old variable name
679
`MRPT_LIBS` will be also returned for backward compatibility.
680
- BUG FIXES:
681
- Fix excessive width of paths drawn by
682
CMetricMapBuilderRBPF::drawCurrentEstimationToImage()
683
- Fix image distortion: k3 may be ignored. (Thanks to CBaiz)
684
- Fix Debian bugs.
685
686
<hr>
687
<a name="1.3.1">
688
<h2>Version 1.3.1: Released 18-JUL-2015 </h2></a>
689
- Changes in apps:
690
-
691
[navlog-viewer](http://www.mrpt.org/list-of-mrpt-apps/application-navlog-viewer/):
692
Now shows more information on navigation logs.
693
- New app
694
[icp-slam-live](http://www.mrpt.org/list-of-mrpt-apps/application-icp-slam-live/):
695
Real-time ICP-SLAM with a LIDAR sensor.
696
- Changes in libraries:
697
- \ref mrpt_base_grp
698
- New helper templates: mrpt::utils::int_select_by_bytecount<>,
699
mrpt::uint_select_by_bytecount<>
700
- New methods to evaluate SO(2), SO(3), SE(2) and SE(3) averages and
701
weighted averages. See:
702
- Header <mrpt/poses/SO_SE_average.h>
703
- mrpt::poses::SO_average<2>, mrpt::poses::SO_average<3>
704
- mrpt::poses::SE_average<2>, mrpt::poses::SE_average<3>
705
- \ref mrpt_hwdrivers_grp
706
- New sensors supported:
707
- mrpt::hwdrivers::CIMUIntersense
708
- mrpt::hwdrivers::CSkeletonTracker
709
- New parameter
710
mrpt::hwdrivers::CHokuyoURG::m_disable_firmware_timestamp to override faulty
711
Hokuyo timestamps with PC time.
712
- mrpt::hwdrivers::CRoboPeakLidar::turnOn() and turnOff() now really
713
implement turning on/off the RPLidar motor.
714
- \ref mrpt_maps_grp
715
- New method mrpt::maps::COccupancyGridMap2D::getAsPointCloud()
716
- \ref mrpt_nav_grp
717
- Removed old base class CPathPlanningMethod
718
- CPathPlanningCircularRobot => mrpt::nav::PlannerSimple2D: Class
719
renamed (and better described) for consistency with other planners
720
- mrpt::nav::CReactiveNavigationSystem:
721
- Documentation has been added about all existing parameters,
722
and template config files provided as starting points.
723
- The loadConfigFile() method with 2 config files has been
724
deprecated favoring the newer, simpler single config file.
725
- The "ROBOT_NAME" parameter is no longer employed. A minor side
726
effect (probably affecting no one) is that PTG cache files are no longer named
727
differently for different robots.
728
- mrpt::nav::CParameterizedTrajectoryGenerator: New methods to save
729
and load trajectories to binary streams. Used to debug in navlog-viewer.
730
- \ref mrpt_obs_grp
731
- mrpt::obs::CObservation3DRangeScan now supports pixel labels
732
(semantic mapping, etc.)
733
- New class mrpt::obs::CObservationSkeleton to hold body tracking
734
information (by Francisco Angel Moreno)
735
- mrpt::obs::CObservationIMU has new data fields and fields are
736
better documented to reflect whether they refer to local/global coordinate
737
frames
738
- \ref mrpt_vision_grp
739
- mrpt::vision::CImageGrabber_dc1394: Changed default Bayer filter
740
from NEAREST to HQLINEAR
741
- BUG FIXES:
742
- Fix ocasional (false) failure of RANSAC unit tests due to their
743
non-deterministic nature.
744
- Fix build error with MSVC 2010 in mrpt-hmtslam (Closes #127).
745
- Fixed potential wrong bounding box results in
746
mrpt::maps::CPointsMap::boundingBox() when SSE2 optimization is enabled.
747
- mrpt::obs::CObservation6DFeatures: Fixed random crashes related to
748
non-aligned memory in 32bit builds (Fixes #141)
749
- Fix Debian bug
750
[#786349](https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=786349) on Eigen2
751
support.
752
- mrpt::hwdrivers::CIMUXSens_MT4: Fix crash in destructor of objects
753
not attached to a physical device.
754
- Fix wrong quaternion cross product when target variable is one of
755
the operands. Also affected the += operator of mrpt::poses::CPose3DQuat (Fixes
756
#148)
757
- mrpt::hwdrivers::CKinect with libfreenect driver: Fix potential
758
memory corruption.
759
- Fix a bug in mrpt::tfest::se3_l2_robust() that led to it returning
760
without trying to find a good consensus solution. It affected the demo app
761
kinect-3d-slam (Fixes #156)
762
- Fix wrong feature points in
763
CFeatureExtraction::extractFeaturesKLT() (Fixes #138)
764
765
<hr>
766
<a name="1.3.0">
767
<h2>Version 1.3.0: Released 12-JAN-2015 </h2></a>
768
- <b>Most important changes:</b>
769
- Classes in libraries \ref mrpt_obs_grp and \ref mrpt_maps_grp now
770
belong to new namespaces (mrpt::obs, mrpt::maps) instead of the old mrpt::slam
771
- No more `using namespace`s polute MRPT headers. <b>Errors in user
772
projects</b> missing `using namespace XXX` that might be formerly masked will
773
now reveal. <b>This is a good thing</b>, though admitedly annoying...
774
- New library \ref mrpt_nav_grp, subsumming the old \ref
775
mrpt_reactivenav_grp.
776
- New library \ref mrpt_tfest_grp, a refactor of the old \ref
777
mrpt_scanmatching_grp.
778
- <b>Backwards compatible headers</b> have been provided to ease the
779
transition of user code for all those library changes. Warning messages will be
780
shown recommending deprecated replacements.
781
- <b>Detailed list of changes:</b>
782
- Lib changes:
783
- Clean up of the bad practice of `using namespace` in public scopes
784
of headers. May lead to user code failing for missing `using namespace`s which
785
were previously masked.
786
- Namespace "slam" deprecated in libraries mrpt-obs and mrpt-maps
787
(used for historical reasons):
788
- New namespaces \ref mrpt_obs_grp and \ref mrpt_maps_grp.
789
- #include files moved from old paths <mrpt/slam/...> =>
790
<mrpt/{obs,maps}/...>
791
- Backward compatible headers added in <mrpt/slam/...> until
792
mrpt 2.0.0
793
- New library \ref mrpt_nav_grp, subsumming the old mrpt-reactivenav
794
(\ref mrpt_reactivenav_grp).
795
- \ref mrpt_reactivenav_grp is now a meta-library, depending on \ref
796
mrpt_nav_grp.
797
- \ref mrpt_tfest_grp : Old library mrpt-scanmatching (\ref
798
mrpt_scanmatching_grp) has been refactored, its API clean-up, and renamed \ref
799
mrpt_tfest_grp
800
- \ref mrpt_scanmatching_grp is now a meta-library, depending on
801
\ref mrpt_tfest_grp.
802
- These classes have been moved between libs for a more sensible
803
organization:
804
- mrpt::slam::CDetectorDoorCrossing ==>
805
mrpt::detectors::CDetectorDoorCrossing
806
- mrpt::slam::CPathPlanningMethod & CPathPlanningCircularRobot:
807
\ref mrpt_slam_grp ==> \ref mrpt_nav_grp
808
- Build System / General changes:
809
- Many optimizations in function arguments (value vs ref). Forces
810
ABI incompatibility with previous versions, hence the change to a new minor
811
version number.
812
- Updated embedded version of Eigen to 3.2.3
813
- Kinect: Dropped support for the CL NUI API, which seems
814
discontinued. Alternatives in use are libfreenect and OpenNI2.
815
- libfreenect is now detected in the system and used instead of
816
compiling the embedded copy of it.
817
- Embedded copy of libfreenect has been updated to (23/oct/2014). It
818
now supports "Kinect for Windows".
819
- More selective linking of .so files to avoid useless dependencies
820
(Fixes #52).
821
- (Windows only) MRPT can now be safely built with libusb support
822
(Freenect, Kinect,...) and it will run on systems without libusb installed, by
823
means of /DELAYLOAD linking flags.
824
- More unit tests.
825
- Changes in classes:
826
- [mrpt-base]
827
- New function mrpt::math::angDistance()
828
- [mrpt-hwdrivers]
829
- mrpt::hwdrivers::CIMUXSens_MT4: (by Joe Burmeister for Suave
830
Aerial Software)
831
- Upgrade to latest XSens SDK 4.2.1. Requires libudev-dev in
832
Linux
833
- Add GPS observations to CIMUXSens_MT4 for Xsens devices
834
like GTi-G-700 which have GPS
835
- mrpt::hwdrivers::CImageGrabber_dc1394: Length of ring buffer
836
is now configurable via TCaptureOptions_dc1394::ring_buffer_size
837
- [mrpt-maps]
838
- Important refactor of internal code related to
839
mrpt::maps::CMultiMetricMap:
840
- All maps (derived from mrpt::maps::CMetricMap) now have a
841
more uniform interface.
842
- Each map now has a `MapDefinition` structure with all its
843
parameters. See docs for mrpt::maps::TMetricMapInitializer
844
- Introduced mrpt::maps::TMapGenericParams to hold
845
parameters shared in all maps.
846
- [mrpt-obs]
847
- CObservation::getDescriptionAsText(): New virtual method to
848
obstain a textual description of observations. Refactoring of messy code
849
previously in the RawLogViewer app.
850
- [mrpt-vision]
851
- mrpt::vision::CFeatureExtraction: Removed (unused) optional
852
ROI parameter in detectors.
853
- BUG FIXES:
854
- mrpt::poses::CRobot2DPoseEstimator could estimate wrong angular
855
velocities for orientations near +-180deg.
856
- mrpt::system::CDirectoryExplorer::sortByName() didn't sort in
857
descending order
858
- Fixed crashes from MATLAB .mex files:
859
mrpt::system::registerFatalExceptionHandlers() has no longer effect, and will be
860
removed in future releases. (Thanks to Jesús Briales GarcÃa for all the
861
testing!)
862
- Fixed potential crash for Eigen unaligned memory access in 32bit
863
builds in mrpt::slam::CGridMapAligner and other places ([Closes
864
#94](https://github.com/MRPT/mrpt/issues/94))
865
866
<hr>
867
<a name="1.2.2">
868
<h2>Version 1.2.2: Released 12-SEP-2014 </h2></a>
869
- Changes in apps:
870
- <a
871
href="http://www.mrpt.org/list-of-mrpt-apps/application-sceneviewer3d/"
872
>SceneViewer3D</a>:
873
- New menu "File" -> "Import" -> "3D model" which supports many
874
standard formats (via mrpt::opengl::CAssimpModel)
875
- New classes:
876
- [mrpt-hwdrivers]
877
- mrpt::hwdrivers::CRoboPeakLidar to interface Robo Peak LIDAR
878
scanners.
879
- [mrpt-opengl]
880
- mrpt::opengl::CAssimpModel for rendering complex 3D models (many
881
supported formats) in OpenGL scenes.
882
- Changes in classes:
883
- Consistency in all "laser scan" classes: angular increments between
884
rays are now FOV/(N-1) instead of FOV/N.
885
- [mrpt-base]
886
- New method mrpt::img::CImage::loadTGA()
887
- *IMPORTANT*: Changed behavior of CSerializable/CObject macros (see
888
bugfix below), introducing the new macros DEFINE_SERIALIZABLE_POST_*. May
889
require changes in user code if serializable classes are defined:
890
- Previous version:
891
\code
892
DEFINE_SERIALIZABLE_PRE_*(...)
893
class XXX {
894
DEFINE_SERIALIZABLE(XXX)
895
};
896
\endcode
897
- Must be changed in this version to:
898
\code
899
DEFINE_SERIALIZABLE_PRE_*(...)
900
class XXX {
901
DEFINE_SERIALIZABLE(XXX)
902
};
903
DEFINE_SERIALIZABLE_POST_*(...)
904
\endcode
905
- [mrpt-hwdrivers]
906
- Bumblebee2 Linux support in
907
mrpt::hwdrivers::CImageGrabber_FlyCapture2 via Triclops (by Jesus Briales)
908
- [mrpt-maps]
909
- New method mrpt::maps::COccupancyGridMap2D::getRawMap()
910
- New method
911
mrpt::maps::CColouredPointsMap::getPCLPointCloudXYZRGB()
912
- [mrpt-opengl]
913
- mrpt::opengl::CWxGLCanvasBase (affects all 3D rendering classes):
914
better handling of internal timers for smoother updates while rendering in
915
multithreading apps.
916
- [mrpt-srba]
917
- New method to recover the global coordinates graph-slam problem
918
for a RBA map: mrpt::srba::RbaEngine::get_global_graphslam_problem() (see
919
example
920
[MRPT]\samples\srba-examples\srba-tutorials\tutorial-srba-how-to-recover-global-map.cpp)
921
- BUG FIXES:
922
- mrpt::img::CImage constructor from a matrix crashed.
923
- Unit tests: Named semaphores are not tested anymore if it's detected
924
that the kernel version doesn't support them (Fix Debian 758725).
925
- mrpt::synch::CSemaphore [Linux]: didn't call sem_unlink().
926
- mrpt::gui::CDisplayWindow3D didn't implement get/set FOV.
927
- Valgrind: Fixed potential unaligned memory access warning in point
928
clouds.
929
- Fix build error with AppleClang 5.1 (Closes #71).
930
- mrpt::utils::CClientTCPSocket: Use a connection success check that
931
works on all platforms
932
- Important bug fixed regarding a missing dynamic_cast<> in smart
933
pointers casting. See above possible implications in user code. properly (Patch
934
by Joe Burmeister).
935
936
<hr>
937
<a name="1.2.1">
938
<h2>Version 1.2.1: Released 10-JUL-2014 </h2></a>
939
- Changes in classes:
940
- [mrpt-base]
941
- All points and poses now have a method setToNaN(), e.g.
942
mrpt::poses::CPose3D::setToNaN()
943
- [mrpt-hwdrivers]
944
- mrpt::hwdrivers::COpenNI2Sensor now has better support for opening
945
several RGBD cameras (by Kenzaburo Miyawaki & Eduardo Fernandez)
946
- Build system:
947
- Fix compilation of SRBA with DEBUG_GARBAGE_FILL_ALL_NUMS=1
948
- Fix de-serialization error in mrpt::reactivenav::CLogFileRecord (and
949
new unit tests added to avoid regressions).
950
- Several Debian bugs closed (see packaging/debian/changelog), including
951
build errors in uncommon platforms (MIPS, kFreeBSD, etc.)
952
953
<hr>
954
<a name="1.2.0">
955
<h2>Version 1.2.0: Released 25-JUN-2014 </h2></a>
956
- <b>Most important changes:</b>
957
- Public header files (.h) have undergone a serious refactoring to
958
minimize unnecesary dependencies and reduce compile time and memory as much as
959
possible. As a side effect, user code might need to add new #include<> lines.
960
This change justifies the new minor version series 1.2.X.
961
- MRPT now cleanly builds in clang and OSX.
962
- Support for new camera drivers (OpenNI2, DUO3D).
963
- Many bug fixes.
964
- <b>Detailed list of changes:</b>
965
- Changes in apps:
966
- [rawlog-edit](http://www.mrpt.org/Application%3Arawlog-edit):
967
- New operations: --export-odometry-txt, --recalc-odometry
968
- New flag: --rectify-centers-coincide
969
- New examples:
970
- kitti_dataset2rawlog
971
- New classes:
972
- [mrpt-base]
973
- mrpt::math::ContainerType<CONTAINER>::element_t to allow
974
handling either Eigen or STL containers seamlessly.
975
- mrpt::config::CConfigFilePrefixer
976
- [mrpt-hwdrivers]
977
- mrpt::hwdrivers::COpenNI2Sensor: Interface to OpenNI2 cameras,
978
capable of reading from an array of OpenNI2 RGBD cameras (By Eduardo Fernandez)
979
- mrpt::hwdrivers::CDUO3DCamera: Interface to DUO3D cameras (By
980
Francisco Angel Moreno)
981
- mrpt::hwdrivers::CGPS_NTRIP: A combination of GPS receiver +
982
NTRIP receiver capable of submitting GGA frames to enable RTCM 3.0
983
- [mrpt-obs]
984
- mrpt::obs::CObservation6DFeatures
985
- Changes in classes:
986
- [mrpt-base]
987
- Robust kernel templates moved from mrpt::vision to mrpt::math.
988
See mrpt::math::RobustKernel<>. Added unit tests for robust kernels.
989
- mrpt::poses::CPose3D has new SE(3) methods:
990
mrpt::poses::CPose3D::jacob_dexpeD_de(),
991
mrpt::poses::CPose3D::jacob_dAexpeD_de()
992
- More efficient mrpt::utils::OctetVectorToObject() (avoid
993
memory copy).
994
- Fixed const-correctness of mrpt::img::CImage::forceLoad() and
995
mrpt::img::CImage::unload()
996
- [mrpt-hwdrivers]
997
- mrpt::hwdrivers::CCameraSensor: Added a hook for user code to
998
run before saving external image files:
999
mrpt::hwdrivers::CCameraSensor::addPreSaveHook()
1000
- mrpt::hwdrivers::CNationalInstrumentsDAQ now supports analog
1001
and digital outputs.
1002
- New method mrpt::hwdrivers::CNTRIPClient::sendBackToServer()
1003
- [mrpt-srba]
1004
- Now also implements SE(3) relative graph-slam.
1005
- [mrpt-vision]
1006
- mrpt::vision::checkerBoardStereoCalibration: More robust
1007
handling of stereo calibration patterns. OpenCV sometimes detects corners in the
1008
wrong order between (left/right) images, so we detect the situation and fix it.
1009
- mrpt::vision::findMultipleChessboardsCorners():
1010
- Now enforces a consistent counterclockwise XYZ coordinate
1011
frame at each detected chessboard.
1012
- Much more robust in distingishing quads of different
1013
sizes.
1014
- Build system / public API:
1015
- Fixes to build in OS X -
1016
[Patch](https://gist.github.com/randvoorhies/9283072) by Randolph Voorhies.
1017
- Removed most "using namespace" from public headers, as good
1018
practice.
1019
- Refactoring of MRPT headers.
1020
- <mrpt/utils/stl_extensions.h> has been split into:
1021
- <mrpt/serialization/stl_serialization.h>
1022
- <mrpt/containers/circular_buffer.h>
1023
- <mrpt/utils/list_searchable.h>
1024
- <mrpt/containers/bimap.h>
1025
- <mrpt/utils/map_as_vector.h>
1026
- <mrpt/containers/traits_map.h>
1027
- <mrpt/serialization/stl_serialization.h>
1028
- <mrpt/containers/printf_vector.h>
1029
- <mrpt/containers/stl_containers_utils.h>
1030
- <mrpt/utils/ci_less.h>
1031
- Deleted methods and functions:
1032
- mrpt::system::breakpoint()
1033
- mrpt::vector_float is now mrpt::math::CVectorFloat,
1034
mrpt::vector_double is mrpt::math::CVectorDouble, for name consistency. Also,
1035
using Eigen::VectorXf is preferred for new code.
1036
- mrpt::CImage::rectifyImage() with parameters as separate
1037
vectors.
1038
- mrpt::maps::CPointsMap::getPoint() with mrpt::poses::CPoint3D
1039
arguments.
1040
- mrpt::vision::correctDistortion() -> use CImage method instead
1041
- All previous deprecated functions.
1042
- Embedded Eigen updated to version 3.2.1
1043
[(commit)](https://github.com/MRPT/mrpt/commit/47913da94a27e98a9115f85b2a530b6c14a10b8f)
1044
[(commit)](https://github.com/MRPT/mrpt/commit/33258761d3b75bf133d38aecb257c64e4d76b21e)
1045
- BUG FIXES:
1046
- RawlogViewer app: Fixed abort while converting SF->obs.only
1047
datasets when there is no odometry.
1048
- mrpt::obs::CSensoryFrame: The cached point map is now invalidated
1049
with any change to the list of observations so it's rebuild upon next call.
1050
- New implementation of mrpt::synch::CSemaphore avoids crashes in OS
1051
X - by Randolph Voorhies.
1052
- mrpt::opengl::CArrow was always drawn of normalized length.
1053
- FlyCapture2 monocular & stereo cameras could return an incorrect
1054
timestamp (only in Linux?).
1055
- mrpt::system::createDirectory() returned false (error) when the
1056
directory already existed.
1057
- mrpt::vision::CStereoRectifyMap::rectify() didn't update the left
1058
& right camera poses inside mrpt::obs::CObservationStereoImages objects while
1059
rectifying.
1060
- RawLogViewer: Operation "convert to SF format" didn't take into
1061
account odometry observations.
1062
- Fix build errors with GCC 4.9
1063
- Fix crash of mrpt::hwdrivers::CIMUXSens_MT4's destructor when it
1064
fails to scan and open a device.
1065
- Fix potential crash in
1066
mrpt::slam::data_association_full_covariance with JCBB when no individually
1067
compatible matching exists
1068
[(commit)](https://github.com/MRPT/mrpt/commit/482472ebd80a3484dce63d294b1ac4e8f001e1eb)
1069
1070
<hr>
1071
<a name="1.1.0">
1072
<h2>Version 1.1.0: Released 22-FEB-2014 </h2></a>
1073
- New apps:
1074
-
1075
[DifOdometry-Camera](http://www.mrpt.org/list-of-mrpt-apps/application-difodometry-camera).
1076
(By Mariano Jaimez Tarifa)
1077
-
1078
[DifOdometry-Datasets](http://www.mrpt.org/list-of-mrpt-apps/application-difodometry-datasets).
1079
(By Mariano Jaimez Tarifa)
1080
- New classes:
1081
- [mrpt-base]
1082
- mrpt::synch::CPipe: OS-independent pipe support.
1083
- [mrpt-hwdrivers]
1084
- mrpt::hwdrivers::CIMUXSens_MT4 : Support for 4th generation xSens
1085
MT IMU devices.
1086
- mrpt::hwdrivers::CNationalInstrumentsDAQ: Support for acquisition
1087
boards compatible with National Instruments DAQmx Base -
1088
[(commit)](https://github.com/MRPT/mrpt/commit/a82a7e37997cfb77e7ee9e903bdb2a55e3040b35).
1089
- mrpt::hwdrivers::CImageGrabber_FlyCapture2: Support for Point Grey
1090
Research's cameras via the FlyCapture2 libray -
1091
[(commits)](https://github.com/MRPT/mrpt/pull/5/commits).
1092
- [mrpt-maps]
1093
- There are now two versions of octomaps (by Mariano Jaimez
1094
Tarifa/Jose Luis Blanco) -
1095
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3443)
1096
- mrpt::maps::COctoMap (only occupancy)
1097
- mrpt::maps::CColouredOctoMap (occupancy + RGB color)
1098
- [mrpt-obs]
1099
- mrpt::obs::CObservationRawDAQ, a placeholder for raw and generic
1100
measurements from data acquisition devices. -
1101
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3459)
1102
- [mrpt-opengl]
1103
- mrpt::opengl::CMeshFast, an open gl object that draws a "mesh" as
1104
a structured point cloud which is faster to render (by Mariano Jaimez Tarifa).
1105
-[(commit)](https://github.com/MRPT/mrpt/commit/9306bb4a585387d4c85b3f6e41dd2cbe5a354e80)
1106
- mrpt::opengl::CVectorField2D, an opengl object that shows a 2D
1107
Vector Field (by Mariano Jaimez Tarifa). -
1108
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3461)
1109
- [mrpt-reactivenav]
1110
- mrpt::reactivenav::CAbstractPTGBasedReactive, as part of a large
1111
code refactoring of these classes:
1112
[(commit)](https://github.com/MRPT/mrpt/pull/4)
1113
- mrpt::reactivenav::CReactiveNavigationSystem
1114
- mrpt::reactivenav::CReactiveNavigationSystem3D
1115
- [mrpt-vision]
1116
- mrpt::vision::CDifodo, a class which implements visual odometry
1117
based on depth images and the "range flow constraint equation". (by Mariano
1118
Jaimez Tarifa) -
1119
[(commit)](https://github.com/MRPT/mrpt/commit/e6ab5595f70cb889d07658c0b540c27e495a1cfb)
1120
- Changes in classes:
1121
- Clean up and slight optimization of metric map matching API: -
1122
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3446)
1123
- <b>Methods marked as deprecated: </b>
1124
- mrpt::maps::CMetricMap::computeMatchingWith2D() -->
1125
mrpt::maps::CMetricMap::determineMatching2D()
1126
- mrpt::maps::CMetricMap::computeMatchingWith3D() -->
1127
mrpt::maps::CMetricMap::determineMatching3D()
1128
- New structures:
1129
- mrpt::slam::TMatchingParams
1130
- mrpt::slam::TMatchingExtraResults
1131
- mrpt::maps::CPointsMap::TInsertionOptions now have methods to
1132
save/load from binary streams, making more maintainable the serialization of
1133
point maps -
1134
[(commit)](https://github.com/MRPT/mrpt/commit/544d439c3462228b07344142de68e5bc10c1a2e3)
1135
- New options in point maps:
1136
mrpt::maps::CPointsMap::TInsertionOptions::insertInvalidPoints -
1137
[(commit)](https://github.com/MRPT/mrpt/pull/8)
1138
- mrpt::obs::CObservationIMU now includes data fields for 3D
1139
magnetometers and altimeters. -
1140
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3451)
1141
- Method renamed mrpt::utils::CEnhancedMetaFile::selectVectorTextFont()
1142
to avoid shadowing mrpt::CCanvas::selectTextFont()
1143
- mrpt::reactivenav::CParameterizedTrajectoryGenerator: New methods:
1144
-
1145
mrpt::reactivenav::CParameterizedTrajectoryGenerator::inverseMap_WS2TP() for
1146
inverse look-up of WS to TP space -
1147
[(commit)](https://github.com/MRPT/mrpt/commit/4d04ef50e3dea581bed6287d4ea6593034c47da3)
1148
-
1149
mrpt::reactivenav::CParameterizedTrajectoryGenerator::renderPathAsSimpleLine() -
1150
[(commit)](https://github.com/MRPT/mrpt/commit/a224fc2489ad00b3ab116c84e8d4a48532a005df)
1151
- Changed the signature of
1152
mrpt::reactivenav::build_PTG_collision_grids() to become more generic for 2D
1153
& 2.5D PTGs -
1154
[(commit)](https://github.com/MRPT/mrpt/commit/7bd68e49a4ba3bf08f194678787816c65de1d685)
1155
- Deleted classes:
1156
- mrpt::utils::CEvent, which was actually unimplemented (!)
1157
- mrpt::hwdrivers::CInterfaceNI845x has been deleted. It didn't offer
1158
features enough to justify a class.
1159
- New examples:
1160
- [MRPT]/samples/threadsPipe
1161
- [MRPT]/samples/NIDAQ_test
1162
- [MRPT]/openNI2_RGBD_demo (by Mariano Jaimez Tarifa)
1163
- [MRPT]/openNI2_proximity_demo (by Mariano Jaimez Tarifa)
1164
- Build system:
1165
- Fixed compilation with clang.
1166
- Fixed building against OpenCV 3.0.0 (GIT head)
1167
- Updated to the latest nanoflann 1.1.7.
1168
- Updated to Eigen 3.2.0 -
1169
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3455)
1170
- Binary packages for Windows now include .pdb files to help debugging
1171
with Visual Studio.
1172
- BUG FIXES:
1173
- Fixed potential infinity loop in mrpt::math::make_vector<1,T>()
1174
- Fixed build error with GCC when experimental parallelization is
1175
enabled. [(commit)](http://code.google.com/p/mrpt/source/detail?r=3441)
1176
- mrpt::reactivenav::CReactiveNavigationSystem complained about missing
1177
config variables ROBOTMODEL_TAU & ROBOTMODEL_DELAY, which were removed in
1178
MRPT 1.0.2 - [(commit)](http://code.google.com/p/mrpt/source/detail?r=3452)
1179
- Fixed potential mem alignment errors (Eigen's UnalignedArrayAssert) in
1180
SRBA for 32bit builds.
1181
[(commit)](http://code.google.com/p/mrpt/source/detail?r=3457)
1182
- mrpt::topography::geodeticToENU_WGS84() and related functions used a
1183
local +Z axis aligned to the line towards the Earth center; now the Z axis
1184
points normally to the ellipsoid surface. The difference with the previous
1185
behavior is small but may be of a few millimeters for each meter from the
1186
reference point. [(commit)](http://code.google.com/p/mrpt/source/detail?r=3473)
1187
- Potential crash when setting mpPolygon::setPoints() with empty vectors
1188
- [(commit)](http://code.google.com/p/mrpt/source/detail?r=3478)
1189
- mrpt::reactivenav::CReactiveNavigationSystem and
1190
mrpt::reactivenav::CReactiveNavigationSystem3D didn't obey the
1191
"enableConsoleOutput" constructor flag -
1192
[(commit)](https://github.com/MRPT/mrpt/commit/db7b0e76506af2c24f119a28443a1e8f1a217861)
1193
- mrpt::synch::CSemaphore::waitForSignal() : Fixed error when thread got
1194
an external signal
1195
[(commit)](https://github.com/MRPT/mrpt/commit/511e95f03480537ff18ad2cad178c504b1cfbb53)
1196
1197
<hr>
1198
<a name="1.0.2">
1199
<h2>Version 1.0.2: Released 2-AUG-2013 (SVN 3435) </h2></a>
1200
- New apps:
1201
-
1202
[ReactiveNav3D-Demo](http://www.mrpt.org/Application%3AReactiveNav3D-Demo) (By
1203
Mariano Jaimez Tarifa)
1204
- Changes in apps:
1205
- [rawlog-edit](http://www.mrpt.org/Application%3Arawlog-edit):
1206
- New operations: --list-timestamps, --remap-timestamps,
1207
--export-2d-scans-txt, --export-imu-txt
1208
- New classes:
1209
- [mrpt-base]
1210
- mrpt::poses::CPose3DRotVec is now fully implemented (By Francisco
1211
Angel Moreno).
1212
- [mrpt-opengl]
1213
- mrpt::opengl::CLight - OpenGL scenes now allow customization of
1214
OpenGL lighting. See also new lighting methods in mrpt::opengl::COpenGLViewport
1215
- <a href="http://code.google.com/p/mrpt/source/detail?r=3409" >r3409</a>
1216
- [mrpt-reactivenav]
1217
- mrpt::reactivenav::CReactiveNavigationSystem3D - By Mariano Jaimez
1218
Tarifa - <a href="http://code.google.com/p/mrpt/source/detail?r=3389" >r3389</a>
1219
- New functions:
1220
- [mrpt-opengl]
1221
- mrpt::opengl::stock_objects::RobotRhodon()
1222
- Changes in classes:
1223
- [mrpt-base]
1224
- Generic particle filter classes now allow directly resampling to a
1225
dynamic number of particles. Affected methods: - <a
1226
href="http://code.google.com/p/mrpt/source/detail?r=3381" >r3381</a>
1227
- mrpt::bayes::CParticleFilterCapable::performResampling()
1228
- mrpt::bayes::CParticleFilterCapable::computeResampling()
1229
- New method: CImage::loadFromXPM() - <a
1230
href="http://code.google.com/p/mrpt/source/detail?r=3397" >r3397</a>
1231
- [mrpt-maps]
1232
- mrpt::maps::COctoMap now exposes the inner octomap::OcTree object.
1233
See example samples/octomap_simple - <a
1234
href="http://code.google.com/p/mrpt/source/detail?r=4304" >r4304</a>
1235
- [mrpt-openg]
1236
- mrpt::opengl::CBox now be also rendered as a solid box + line
1237
borders. See mrpt::opengl::CBox::enableBoxBorder()
1238
- mrpt::opengl::COctoMapVoxels - <a
1239
href="http://code.google.com/p/mrpt/source/detail?r=4329" >r4329</a>
1240
- Fixed calculation of normals (fix shading)
1241
- Added new coloring scheme to
1242
mrpt::opengl::COctoMapVoxels::visualization_mode_t : "FIXED"
1243
- By default, light effects are disabled in this object, because
1244
shadows aren't computed anyway and the effect isn't pleasant.
1245
- Voxels cubes are sorted in ascending Z order so the visual
1246
effect is correct when rendering with transparency.
1247
- [mrpt-reactivenav]
1248
- mrpt::reactivenav::CParameterizedTrajectoryGenerator: The "low
1249
pass filter" has been removed since it wasn't practical and was never used;
1250
thus, parameters "TAU" and "DELAY" has been removed. - <a
1251
href="http://code.google.com/p/mrpt/source/detail?r=3395" >r3395</a>
1252
- Methods removed since they weren't implemented in any derived
1253
class and there are no plans for doing it.
1254
- mrpt::reactivenav::CReactiveNavigationSystem ::evaluate()
1255
- mrpt::reactivenav::CReactiveNavigationSystem ::setParams()
1256
- Build system:
1257
- Updated to nanoflann 1.1.7: ICP is ~5% faster.
1258
- More unit tests:
1259
- [mrpt-base] geometry module.
1260
- BUG FIXES:
1261
- CTimeLogger::registerUserMeasure() ignored the enable/disable state of
1262
the logger - <a href="http://code.google.com/p/mrpt/source/detail?r=3382"
1263
>r3382</a>
1264
- mrpt-srba: SEGFAULT in 32bit builds due to missing
1265
- <a
1266
href="http://code.google.com/p/mrpt/source/detail?r=3429" >r3429</a>
1267
1268
<br/>
1269
<hr>
1270
<a name="1.0.1">
1271
<h2>Version 1.0.1: Released 12-MAY-2013 (SVN 3370) </h2></a>
1272
- Changes in apps:
1273
- <a href="http://www.mrpt.org/Application%3ARawLogViewer"
1274
>RawLogViewer</a>:
1275
- Better description of the "too much memory used" warning while
1276
loading large datasets.
1277
- <a href="http://www.mrpt.org/Application%3Arobotic-arm-kinematics"
1278
>robotic-arm-kinematics</a>:
1279
- Now allows changing the orientation of the first DOF (X,Y,Z).
1280
- New classes:
1281
- [mrpt-hwdrivers]
1282
- mrpt::hwdrivers::CInterfaceNI845x: An interface for this USB
1283
SPI/I2C data acquisition board.
1284
- mrpt::hwdrivers::CCANBusReader: A class to record CAN bus frames
1285
with a CAN232 converter.
1286
- [mrpt-obs]
1287
- mrpt::obs::CObservationCANBusJ1939
1288
- New functions:
1289
- New opengl_stock objects:
1290
- mrpt::opengl::stock_objects::Hokuyo_URG()
1291
- mrpt::opengl::stock_objects::Hokuyo_UTM()
1292
- mrpt::opengl::stock_objects::Househam_Sprayer()
1293
- mrpt::math::saveEigenSparseTripletsToFile() - <a
1294
href="http://code.google.com/p/mrpt/source/detail?r=3351" >r3351</a>
1295
- New examples:
1296
- gmrf_map_demo
1297
- Changes in classes:
1298
- [mrpt-maps]
1299
- mrpt::maps::COccupancyGridMap2D now also evalutes likelihoods for
1300
sonar-like observations (mrpt::obs::CObservationRange), allowing particle-filter
1301
localization with these sensors - <a
1302
href="http://code.google.com/p/mrpt/source/detail?r=3330" >r3330</a>
1303
- New method
1304
mrpt::slam::CRandomFieldGridMap2D::insertIndividualReading()
1305
- [mrpt-kinematics]
1306
- mrpt::kinematics::CKinematicChain: Now allows changing the
1307
orientation of the first DOF (X,Y,Z).
1308
- Removed stuff:
1309
- Backwards-compatibility typedef mrpt::vision::TKLTFeatureStatus has
1310
been removed. Replace with mrpt::vision::TFeatureTrackStatus
1311
- KLT-specific values for mrpt::vision::TFeatureTrackStatus has been
1312
removed, since they were not used in detected features anyway.
1313
- Build system:
1314
- Fixed a potential build error if including FFMPEG's <time.h> instead
1315
of the standard header - <a
1316
href="http://code.google.com/p/mrpt/source/detail?r=3316" >r3316</a>
1317
- Fixed determination of GCC version for all GCC builds - <a
1318
href="http://code.google.com/p/mrpt/source/detail?r=3324" >r3324</a>
1319
- Updated to Eigen 3.1.3 - <a
1320
href="http://code.google.com/p/mrpt/source/detail?r=3349" >r3349</a>
1321
- Updated to nanoflann 1.1.5
1322
- BUG FIXES:
1323
- Unit tests "SchurTests" for mrpt-srba incorrectly reported errors due
1324
to an improperly initialized reference to a local variable - <a
1325
href="http://code.google.com/p/mrpt/source/detail?r=3318" >r3318</a>
1326
- Debian packages: added missing binary deps for libmrpt-dev - <a
1327
href="http://code.google.com/p/mrpt/source/detail?r=3335" >r3335</a>
1328
1329
<hr>
1330
<a name="1.0.0">
1331
<h2>Version 1.0.0: Released 1-MAR-2013 (SVN 3287) </h2></a>
1332
- <b>Most important changes:</b>
1333
- New library with a flexible implementation of Sparser Relative Bundle
1334
Adjustment (RBA), as presented in ICRA 2013: <a href="http://www.mrpt.org/srba"
1335
>mrpt-srba</a>.
1336
- New library for Plane-based Maps: <a
1337
href="group__mrpt__pbmap__grp.html" >mrpt-pbmap</a> (also presented in ICRA
1338
2013).
1339
- Some MRPT modules are now header-only libraries.
1340
- Support for a new Octomap metric map, via the octomap library. See
1341
mrpt::maps::COctoMap and detailed changes below.
1342
- Support for importing/exporting point clouds in the standard LAS
1343
format (Look for liblas below).
1344
- Better support for custom builds of MRPT (selective building of
1345
individual apps and libs, etc.)
1346
- Ready for Visual Studio 2012 and GCC 4.7
1347
- From now on, MRPT is released under the "New BSD" license.
1348
- Many bug fixes.
1349
- <b>Detailed list of changes:</b>
1350
- New apps:
1351
- <a
1352
href="http://www.mrpt.org/list-of-mrpt-apps/application-srba-slam"
1353
>srba-slam</a>: A command-line frontend for the Relative Bundle Adjustment
1354
engine in mrpt-srba.
1355
- <a
1356
href="http://www.mrpt.org/list-of-mrpt-apps/application-holonomic-navigator-demo"
1357
>holonomic-navigator-demo</a>
1358
- <a
1359
href="http://www.mrpt.org/list-of-mrpt-apps/application-robotic-arm-kinematics"
1360
>robotic-arm-kinematics</a>: A GUI for experimenting with Denavit-Hartenberg
1361
parameters.
1362
- Changes in apps:
1363
- <a href="http://www.mrpt.org/Application%3Anavlog-viewer"
1364
>navlog-viewer</a>:
1365
- Fixed some minor visualization errors.
1366
- <a href="http://www.mrpt.org/Application%3ARawLogViewer"
1367
>RawLogViewer</a>:
1368
- Import sequence of images as rawlog: Didn't detect "png" file
1369
extension as images - <a
1370
href="http://code.google.com/p/mrpt/source/detail?r=2940" >r2940</a> - Closes <a
1371
href="http://code.google.com/p/mrpt/issues/detail?id=34" >#34</a>
1372
- The GUI toolbar has been ported from wxWidget's ToolBar to
1373
sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - <a
1374
href="http://code.google.com/p/mrpt/source/detail?r=2950" >r2950</a>
1375
- <a
1376
href="http://www.mrpt.org/list-of-mrpt-apps/application-ReactiveNavigationDemo"
1377
>ReactiveNavigationDemo</a>:
1378
- The default holonomic navigation method is now the VFF, since
1379
after the last bug fixes and tunes it seems to work quite well.
1380
- <a href="http://www.mrpt.org/Application%3ASceneViewer"
1381
>SceneViewer3D</a>:
1382
- The GUI toolbar has been ported from wxWidget's ToolBar to
1383
sets of wxCustomButton's to avoid visualization problems in wx 2.9.X - <a
1384
href="http://code.google.com/p/mrpt/source/detail?r=2952" >r2952</a>
1385
- Added a new menu: "File -> Import -> From LAS file..." - <a
1386
href="http://code.google.com/p/mrpt/source/detail?r=3244" >r3244</a>
1387
- <a href="http://www.mrpt.org/Application%3Agrid-matching"
1388
>grid-matching</a>: new argument "--aligner" to select aligner method - <a
1389
href="http://code.google.com/p/mrpt/source/detail?r=3021" >r3021</a>
1390
- New classes:
1391
- [mrpt-base]
1392
- mrpt::math::MatrixBlockSparseCols, a templated column-indexed
1393
efficient storage of block-sparse Jacobian or Hessian matrices, together with
1394
other arbitrary information - <a
1395
href="http://code.google.com/p/mrpt/source/detail?r=2995" >r2995</a>
1396
- mrpt::utils::ignored_copy_ptr<>
1397
- mrpt::system::CTimeLoggerEntry
1398
- [mrpt-obs]
1399
- mrpt::obs::CObservationWindSensor - <a
1400
href="http://code.google.com/p/mrpt/source/detail?r=3050" >r3050</a>
1401
- [mrpt-maps]
1402
- mrpt::maps::COctoMap
1403
- [mrpt-opengl]
1404
- mrpt::opengl::COctoMapVoxels
1405
- Deleted classes:
1406
- [mrpt-vision]
1407
- CFeatureTracker_FAST and CFeatureTracker_PatchMatch have been
1408
removed since they didn't work robustly. Replace with
1409
mrpt::vision::CFeatureTracker_KL
1410
- New libraries:
1411
- [mrpt-kinematics] See mrpt::kinematics
1412
- [mrpt-pbmap] See <a href="group__mrpt__pbmap__grp.html"
1413
>mrpt-pbmap</a>.
1414
- [mrpt-srba] See <a href="http://www.mrpt.org/srba" >mrpt-srba</a>.
1415
- Changes in libraries:
1416
- These libs are now header-only: <a
1417
href="http://code.google.com/p/mrpt/source/detail?r=3035" >r3035</a>, <a
1418
href="http://code.google.com/p/mrpt/source/detail?r=3045" >r3045</a>
1419
- [mrpt-bayes]
1420
- [mrpt-graphs]
1421
- [mrpt-graphslam]
1422
- Integration of the Octomap C++ library (new BSD License) by Kai M.
1423
Wurm et al.: <a href="http://code.google.com/p/mrpt/source/detail?r=3081"
1424
>r3081</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3083"
1425
>r3083</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3084"
1426
>r3084</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3086"
1427
>r3086</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3087"
1428
>r3087</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3088"
1429
>r3088</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3093"
1430
>r3093</a>
1431
- The main new classes are mrpt::maps::COctoMap &
1432
mrpt::opengl::COctoMapVoxels
1433
- mrpt::maps::CMultiMetricMap now allows the seamless
1434
integration of octomaps in many MRPT map building or localization algorithms.
1435
- New example: samples/octomap_simple
1436
- Changes in classes:
1437
- [mrpt-base]
1438
- Eigen::MatrixBase<Derived>::loadFromTextFile(), and all MRPT
1439
derived matrix classes, are now much faster loading huge matrices from text
1440
files - <a href="http://code.google.com/p/mrpt/source/detail?r=2997" >r2997</a>
1441
- The typedef Eigen::MatrixBase<Derived>::typename of MRPT's
1442
plugin to Eigen classes has been REMOVED, to avoid conflicts with some part of
1443
Eigen's sparse classes. Use Matrix::Scalar instead - <a
1444
href="http://code.google.com/p/mrpt/source/detail?r=3065" >r3065</a>
1445
- New method mrpt::poses::CPose3DQuat::inverse()
1446
- New methods mrpt::poses::SE_traits::pseudo_exp()
1447
- mrpt::system::CTimeLogger:
1448
- New method mrpt::system::CTimeLogger::getStats() for
1449
programatic execution time stats analysis - <a
1450
href="http://code.google.com/p/mrpt/source/detail?r=2998" >r2998</a>
1451
- New method
1452
mrpt::system::CTimeLogger::registerUserMeasure() for making stats of
1453
user-providen values - <a
1454
href="http://code.google.com/p/mrpt/source/detail?r=3005" >r3005</a>
1455
- mrpt::utils::map_as_vector<> can be now customized to use
1456
different underlying STL containers for storage - <a
1457
href="http://code.google.com/p/mrpt/source/detail?r=3001" >r3001</a>
1458
- mrpt::containers::CDynamicGrid::setSize() now also accepts a
1459
"fill_value" argument.
1460
- Added method mrpt::math::TPoint2D::norm() for consistency with
1461
mrpt::math::TPoint3D
1462
- Better support for saving (and not only loading) plain text
1463
configuration files, including commented files with default values of all
1464
existing parameters: - <a
1465
href="http://code.google.com/p/mrpt/source/detail?r=2954" >r2954</a>
1466
- All mrpt::config::CConfigFileBase::write() now have an
1467
extended signature for formatting.
1468
-
1469
mrpt::config::CLoadableOptions::dumpToTextStreamstd::ostream::Seek() now
1470
supports files larger than 2GB by using uint64_t instead of long (still see
1471
issue report for another patch required for MSVC2010) - (Closes <a
1472
href="http://code.google.com/p/mrpt/issues/detail?id=39" >issue 39</a>, thanks
1473
Robert Schattschneider) - <a
1474
href="http://code.google.com/p/mrpt/source/detail?r=3042" >r3042</a>
1475
- mrpt::typemeta::TTypeName<> moved to its own header
1476
<mrpt/typemeta/TTypeName.h> while refactoring
1477
<mrpt/serialization/CSerializable.h>
1478
- <a href="http://code.google.com/p/mrpt/source/detail?r=3044" >r3044</a>
1479
- mrpt::config::CConfigFileBase::write() now has signatures for
1480
"uint32_t" and "uint64_t" in both 32 and 64bit builds, instead of relying of the
1481
"size_t" type. This was done to fix build errors in some GCC versions under
1482
32bits.
1483
- mrpt::poses::CPose2D now caches the cos() and sin() of phi,
1484
with a huge performance improvement in most common operations.
1485
- [mrpt-bayes]
1486
- mrpt::bayes::CKalmanFilterCapable (and all EKF-SLAM methods
1487
based on it) are now much faster. The implementation now exploits the sparsity
1488
of the Jacobian (~25% faster in a test 6D EKF-SLAM dataset) - <a
1489
href="http://code.google.com/p/mrpt/source/detail?r=3059" >r3059</a>, <a
1490
href="http://code.google.com/p/mrpt/source/detail?r=3060" >r3060</a>, <a
1491
href="http://code.google.com/p/mrpt/source/detail?r=3061" >r3061</a>
1492
- mrpt::bayes::CParticleFilterCapable now makes use of the
1493
Curiously Recurring Template Pattern (CRTP) design instead of ugly #define
1494
macros - <a href="http://code.google.com/p/mrpt/source/detail?r=3182" >r3182</a>
1495
- [mrpt-graphs]
1496
- mrpt::graphs::CNetworkOfPoses2D,
1497
mrpt::graphs::CNetworkOfPoses3D,... and so on, are now all typedef's instead of
1498
classes, since serialization is now implemented as pure templatized code, thus
1499
avoiding the need to declare derived auxiliary classes - <a
1500
href="http://code.google.com/p/mrpt/source/detail?r=3044" >r3044</a>
1501
- [mrpt-gui]
1502
- mrpt::gui::CDisplayWindow3D::addTextMessage() (and other
1503
opengl text routines) now allows drawing text with a shadow effect - <a
1504
href="http://code.google.com/p/mrpt/source/detail?r=3007" >r3007</a>
1505
- [mrpt-hwdrivers]
1506
- New method
1507
mrpt::hwdrivers::CActivMediaRobotBase::areMotorsEnabled()
1508
- mrpt::hwdrivers::CGenericSensor (and all derived classes) now
1509
allocate objects aligned in memory with
1510
- New static method mrpt::hwdrivers::CGPSInterface::parse_NMEA()
1511
- [mrpt-maps]
1512
- Better integration of point cloud classes with PCL: - <a
1513
href="http://code.google.com/p/mrpt/source/detail?r=2943" >r2943</a>
1514
- mrpt::maps::CPointsMap::loadPCDFile()
1515
- mrpt::maps::CPointsMap::setFromPCLPointCloud()
1516
- mrpt::maps::CColouredPointsMap::setFromPCLPointCloudRGB()
1517
- Point cloud loading & saving in the standard ASPRS LiDAR LAS
1518
format (if liblas is installed in the system, see http://www.liblas.org/ ). See
1519
also the ready-to-use import menu in SceneViewer3D - <a
1520
href="http://code.google.com/p/mrpt/source/detail?r=3244" >r3244</a>
1521
- mrpt::maps::CPointsMap::loadLASFile()
1522
- mrpt::maps::CPointsMap::saveLASFile()
1523
- Integration of wind measurements in gas-concentration maps (by
1524
Javier G. Monroy) - <a href="http://code.google.com/p/mrpt/source/detail?r=3050"
1525
>r3050</a>
1526
- [mrpt-obs]
1527
- New method mrpt::obs::CObservationGPS::clear()
1528
- [mrpt-opengl]
1529
- Evaluation of bounding box of opengl objects. New methods: -
1530
<a href="http://code.google.com/p/mrpt/source/detail?r=3026" >r3026</a>
1531
- mrpt::opengl::CRenderizable::getBoundingBox()
1532
- mrpt::opengl::COpenGLScene::getBoundingBox()
1533
- mrpt::opengl::COpenGLViewport::getBoundingBox()
1534
-
1535
mrpt::opengl::COctreePointRenderer::octree_get_graphics_boundingboxes() has a
1536
new flag to draw solid boxes at each leaf node - <a
1537
href="http://code.google.com/p/mrpt/source/detail?r=3033" >r3033</a>
1538
- mrpt::opengl::COpenGLViewport has a new set of "global OpenGL
1539
switches" that affect the rendering of entire scenes - <a
1540
href="http://code.google.com/p/mrpt/source/detail?r=3185" >r3185</a>
1541
- Classes drawing lines now by default enable anti-aliasing (can
1542
be disabled by the programmer): - <a
1543
href="http://code.google.com/p/mrpt/source/detail?r=3185" >r3185</a>
1544
- mrpt::opengl::CGridPlaneXY, mrpt::opengl::CGridPlaneXZ
1545
- mrpt::opengl::CSimpleLine
1546
- mrpt::opengl::CSetOfLines
1547
- [mrpt-reactivenav]
1548
- Much code of mrpt::reactivenav classes have undergone a
1549
clean-up, slight optimizations and a translation of old Spanish names/comments
1550
to English - <a href="http://code.google.com/p/mrpt/source/detail?r=2939"
1551
>r2939</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=2942"
1552
>r2942</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=2958"
1553
>r2958</a>, <a href="http://code.google.com/p/mrpt/source/detail?r=3091"
1554
>r3091</a>
1555
-
1556
mrpt::reactivenav::CParameterizedTrajectoryGenerator::CCollisionGrid now has a
1557
more maintainable binary serialization format - <a
1558
href="http://code.google.com/p/mrpt/source/detail?r=2939" >r2939</a>
1559
-
1560
mrpt::reactivenav::CParameterizedTrajectoryGenerator::debugDumpInFiles() now
1561
also saves text files which can be used to visualize PTGs from MATLAB (see
1562
scripts/viewPTG.m) - <a
1563
href="http://code.google.com/p/mrpt/source/detail?r=3009" >r3009</a>
1564
- mrpt::reactivenav::CHolonomicVFF and
1565
mrpt::reactivenav::CHolonomicND now have more configurable parameters, loadable
1566
from config files. See their documentation.
1567
- Repulsive forces from obstacles in
1568
mrpt::reactivenav::CHolonomicVFF are now automatically normalized wrt the
1569
density of the 360deg view of obstacles and forces follow a "1/range" law
1570
instead of the old "exp(-range)".
1571
- Solved a stability issue in C-S paths, in
1572
mrpt::reactivenav::CPTG_DiffDrive_CS (By Mariano Jaimez Tarifa) - <a
1573
href="http://code.google.com/p/mrpt/source/detail?r=3085" >r3085</a>
1574
- [mrpt-scanmatching]
1575
- mrpt::scanmatching::robustRigidTransformation():
1576
- Changed behavior not to allow features to appear in
1577
duplicated pairings.
1578
- Added a consistency test to avoid seeding RANSAC with an
1579
inconsistent initial model.
1580
- [mrpt-slam]
1581
- mrpt::slam::CMetricMapBuilderICP now does not integrate the
1582
small pose changes due to odometry and/or relocalization when considering the
1583
distance and angle thresholds. This means that fewer map updates are now done
1584
for the same ICP-SLAM parameters, which should lead to "less noisy" maps.
1585
- New functions:
1586
- [mrpt-base]
1587
- mrpt::utils::abs_diff()
1588
- mrpt::system::getMRPTLicense()
1589
- mrpt::system::getFileModificationTime()
1590
- mrpt::math::noncentralChi2PDF_CDF() is now exposed (was
1591
private)
1592
- mrpt::utils::sprintf_container()
1593
- mrpt::poses::operator -(mrpt::poses::CPose3DQuat)
1594
- max3() and min3() moved from the global namespace to
1595
mrpt::utils::max3() and mrpt::utils::min3()
1596
- New examples:
1597
- octomap_simple
1598
- ransac-data-association
1599
- Build system:
1600
- Update to nanoflann 1.1.4 - <a
1601
href="http://code.google.com/p/mrpt/source/detail?r=2937" >r2937</a>, <a
1602
href="http://code.google.com/p/mrpt/source/detail?r=3017" >r3017</a>
1603
- Update to Eigen 3.1.2 - <a
1604
href="http://code.google.com/p/mrpt/source/detail?r=3064" >r3064</a>
1605
- MRPT's root "CMakeLists.txt" has undergone a big refactoring and
1606
cleanup - <a href="http://code.google.com/p/mrpt/source/detail?r=2961"
1607
>r2961</a>
1608
- Backward compatible "mrpt-core" has been removed as a fake lib for
1609
which to search with CMake from user programs - <a
1610
href="http://code.google.com/p/mrpt/source/detail?r=2961" >r2961</a>
1611
- More system libs are detected in Linux (libclang-dev, lib3ds-dev),
1612
discarding embedded versions then - <a
1613
href="http://code.google.com/p/mrpt/source/detail?r=2963" >r2963</a> - <a
1614
href="http://code.google.com/p/mrpt/issues/detail?id=17" >Closes #17</a>
1615
- Automatic detection of supported SIMD extensions (SSE*) from CMake
1616
(only for Linux OS) - <a
1617
href="http://code.google.com/p/mrpt/source/detail?r=3013" >r3013</a>
1618
- Fixed building with Visual Studio 2012 (MSVC11) - <a
1619
href="http://code.google.com/p/mrpt/source/detail?r=3017" >r3017</a>
1620
- MRPT now allows defining header-only libraries with the
1621
define_mrpt_lib_header_only() macro - <a
1622
href="http://code.google.com/p/mrpt/source/detail?r=3034" >r3034</a>, <a
1623
href="http://code.google.com/p/mrpt/source/detail?r=3035" >r3035</a>
1624
- More unit tests:
1625
- for all probability distribution functions in mrpt::math,
1626
- for the parser in mrpt::hwdrivers::CGPSInterface::parse_NMEA()
1627
- for the octomap map
1628
- for serialization/deserealization of many classes.
1629
- Added new documentation page: <a href="env-vars.html" >environment
1630
variables</a>.
1631
- Removed the build flag "MRPT_BACKCOMPATIB_08X".
1632
- Fixes for building under Mac OSX: <a
1633
href="http://code.google.com/p/mrpt/source/detail?r=3181" >r3181</a>
1634
- Enable some c++11 features if the compiler supports them - <a
1635
href="http://code.google.com/p/mrpt/source/detail?r=3273" >r3273</a>
1636
- BUG FIXES:
1637
- Build: Fixed detection of OpenCV 2.4.2+ installed in the system
1638
via CMake config file instead of pkg-config, which seems to be broken. - <a
1639
href="http://code.google.com/p/mrpt/source/detail?r=3019" >r3019</a>
1640
- [mrpt-base] The iterator returned by end() in all MRPT vectors and
1641
matrices (based on Eigen) pointed to the last element, not to the (now correct)
1642
next position after the last element - <a
1643
href="http://code.google.com/p/mrpt/source/detail?r=2941" >r2941</a>
1644
- [mrpt-base] mrpt::dynamicsize_vector::resize() performed a memory
1645
reallocation even if given the current size, due to an inherited behavior from
1646
Eigen. It is not the expected behavior, so it has been fixed. - <a
1647
href="http://code.google.com/p/mrpt/source/detail?r=3003" >r3003</a>
1648
- [mrpt-base] Wrong computation of normPDF() values for the
1649
multidimensional cases. Closes <a
1650
href="http://code.google.com/p/mrpt/issues/detail?id=46" >#46</a> - <a
1651
href="http://code.google.com/p/mrpt/source/detail?r=3068" >r3068</a>
1652
- [mrpt-base] mrpt::poses::CPoint::asString() confused the 2D and 3D
1653
cases (Thanks Cipri!)
1654
- [mrpt-base] Fixed errors in de-serialization of
1655
mrpt::utils::CPointPDFSOG and mrpt::maps::CReflectivityGridMap2D
1656
- [mrpt-base] mrpt::math::KDTreeCapable::kdTreeRadiusSearch2D()
1657
always returned 0 matched.
1658
- [mrpt-graphs] Fixed bug in RecursiveSpectralPartition (Thanks to
1659
Edu!) - <a href="http://code.google.com/p/mrpt/source/detail?r=3026" >r3026</a>
1660
- [mrpt-hwdrivers] Fixed potential SEGFAULT in
1661
mrpt::hwdrivers::CGPSInterface (Thanks K.Miyawaki for <a
1662
href="http://www.mrpt.org/node/2474" >reporting</a>)
1663
- [mrpt-hwdrivers] Fixed communications to LMS 1xx scanners (Thanks
1664
Henry! See http://code.google.com/p/mrpt/issues/detail?id=49 )
1665
- [mrpt-maps] mrpt::maps::COccupancyGridMap2D::getAs3DObject()
1666
returned cells with an occupancy of exactly "0" as transparent - <a
1667
href="http://code.google.com/p/mrpt/source/detail?r=2957" >r2957</a>
1668
- [mrpt-maps] Fixed saving the correct point colors in
1669
mrpt::maps::CColouredPointsMap::savePCDFile() (Thanks Mariano!) - <a
1670
href="http://code.google.com/p/mrpt/source/detail?r=3090" >r3090</a>
1671
- [mrpt-maps] In CPointsMap::computeMatchingWith3D. Fixed matching
1672
two 3D point clouds as each correspondence was inserted twice into the output
1673
vector. (By Paco) - <a href="http://code.google.com/p/mrpt/source/detail?r=3162"
1674
>r3162</a>
1675
- [mrpt-opengl] Fixed a potential bug: after deserializing an object
1676
based on a display-list (most of them), it won't update in the opengl view.
1677
- [mrpt-reactivenav] Class mrpt::reactivenav::CHolonomicVFF was not
1678
exported in Windows DLL's (Thanks Mariano for noticing!).
1679
- [mrpt-reactivenav] Fixed wrong computation of obstacles force
1680
fields in mrpt::reactivenav::CHolonomicVFF (Thanks Mariano for noticing!) - <a
1681
href="http://code.google.com/p/mrpt/source/detail?r=2953" >r2953</a>
1682
- [mrpt-reactivenav] Precomputed collision grids could be loaded in
1683
mrpt::reactivenav::CParameterizedTrajectoryGenerator even for different robot
1684
parameters/shape: now it correctly detects such situations and recompute when
1685
needed - <a href="http://code.google.com/p/mrpt/source/detail?r=2939" >r2939</a>
1686
- Closes <a href="http://code.google.com/p/mrpt/issues/detail?id=33" >#33</a>
1687
- [mrpt-reactivenav] ND algorithm: Fixed bugs of "last gap is never
1688
evaluated" and wrong composition of representative direction for some gaps (By
1689
Mariano) - <a href="http://code.google.com/p/mrpt/source/detail?r=3056"
1690
>r3056</a>
1691
1692
1693
<br>
1694
<hr>
1695
<a name="0.9.6">
1696
<h2>Version 0.9.6 - (Version 1.0.0-Release_Candidate_4): Released 30-MAY-2012
1697
(SVN 2930) </h2></a>
1698
- New applications:
1699
- <a
1700
href="http://www.mrpt.org/list-of-mrpt-apps/application-kinect-stereo-calibrate"
1701
>kinect-stereo-calibrate</a>: A GUI tool for calibrating RGB+D and/or stereo
1702
cameras, including live Kinect capturing.
1703
- Removed applications:
1704
- stereo-calib-gui: it's now superseded by kinect-stereo-gui. The old
1705
command line tool is still useful, so it's still there as the example
1706
"stereo-calib-opencv".
1707
- Changes in applications:
1708
- <a href="http://www.mrpt.org/list-of-mrpt-apps/application-icp-slam"
1709
>icp-slam</a>:
1710
- Added a new option (SHOW_LASER_SCANS_3D in config files) to draw
1711
laser scans in the live 3D view - <a
1712
href="http://code.google.com/p/mrpt/source/detail?r=2881" >r2881</a>
1713
- <a
1714
href="http://www.mrpt.org/list-of-mrpt-apps/application-rawlog-edit"
1715
>rawlog-edit</a>:
1716
- Operation "--camera-params" now also handles stereo observations.
1717
- New operation "--stereo-rectify" for batch rectifying datasets
1718
with stereo images.
1719
- New operation "--rename-externals".
1720
- <a
1721
href="http://www.mrpt.org/list-of-mrpt-apps/application-SceneViewer"
1722
>SceneViewer3D</a>:
1723
- New menu for generating high-resolution renders of any scene
1724
directly to imag files - <a
1725
href="http://code.google.com/p/mrpt/source/detail?r=2775" >r2775</a>
1726
- Many new menus for selective selecting objects and applying
1727
operations on them - <a
1728
href="http://code.google.com/p/mrpt/source/detail?r=2776" >r2776</a>
1729
- stereo-calib-gui: Now generates a report with detailed and clear
1730
results from stereo calibration and allows the user to change most parameters
1731
interactively - <a href="http://code.google.com/p/mrpt/source/detail?r=2801"
1732
>r2801</a>
1733
- <a
1734
href="http://www.mrpt.org/list-of-mrpt-apps/application-kinect-3d-view"
1735
>kinect-3d-view</a>: New key command: press '9' to grab selected snapshots to
1736
disk - <a href="http://code.google.com/p/mrpt/source/detail?r=2890" >r2890</a>
1737
- Kinect stuff:
1738
- [mrpt-hwdrivers]
1739
- mrpt::hwdrivers::CKinect now decodes Bayer color using OpenCV
1740
instead of default freenect - <a
1741
href="http://code.google.com/p/mrpt/source/detail?r=2721" >r2721</a>, <a
1742
href="http://code.google.com/p/mrpt/source/detail?r=2762" >r2762</a>
1743
- mrpt::hwdrivers::CKinect no longer forces a horizontal tilt at
1744
start up by default, what may be annoying (if required, set
1745
"initial_tilt_angle") - <a
1746
href="http://code.google.com/p/mrpt/source/detail?r=2722" >r2722</a>
1747
- mrpt::hwdrivers::CKinect now loads Kinect calibration files in a
1748
format compatible with stereo cameras. See
1749
http://www.mrpt.org/Kinect_calibration
1750
- [mrpt-obs]
1751
- New method mrpt::obs::CObservation3DRangeScan::convertTo2DScan()
1752
allows simulating a "fake 2D laser scanner" from a Kinect. See the example:
1753
http://www.mrpt.org/Example_Kinect_To_2D_laser_scan
1754
- [mrpt-vision]
1755
- New function mrpt::vision::checkerBoardStereoCalibration() to
1756
calibrate stereo and RGB+D cameras. See also the program <a
1757
href="http://www.mrpt.org/list-of-mrpt-apps/application-kinect-stereo-calibrate"
1758
>kinect-stereo-calibrate</a>:
1759
- New classes:
1760
- [mrpt-gui]
1761
- New event generated by GUI windows:
1762
mrpt::gui::mrptEventWindowClosed
1763
- [mrpt-hwdrivers]
1764
- mrpt::hwdrivers::CRaePID: A new interface to PID gas sensing
1765
devices (by Emil Khatib, University of Malaga) - <a
1766
href="http://code.google.com/p/mrpt/source/detail?r=2841" >r2841</a>
1767
- [mrpt-opengl]
1768
- New classes for representing confidence intervals (ellipsoids) in
1769
transformed spaces - <a
1770
href="http://code.google.com/p/mrpt/source/detail?r=2783" >r2783</a>
1771
- mrpt::opengl::CGeneralizedEllipsoidTemplate<>
1772
- mrpt::opengl::CEllipsoidRangeBearing2D
1773
- mrpt::opengl::CEllipsoidInverseDepth2D
1774
- mrpt::opengl::CEllipsoidInverseDepth3D
1775
- mrpt::opengl::CFrustum to easily render these geometric figures
1776
- New struct mrpt::opengl::TFontParams result of a code refactoring
1777
- [mrpt-vision]
1778
- mrpt::vision::TSIFTDescriptorsKDTreeIndex,
1779
TSURFDescriptorsKDTreeIndex - <a
1780
href="http://code.google.com/p/mrpt/source/detail?r=2799" >2799</a>
1781
- mrpt::vision::CStereoRectifyMap - See tutorial online:
1782
http://www.mrpt.org/Rectifying_stereo_
1783
1784
*/
Page generated by
Doxygen 1.8.14
for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019