Skip to content

Releases: MRPT/mrpt

Release of v2.7.0

04 Mar 00:53
2.7.0
b750be5
Compare
Choose a tag to compare

Version 2.7.0: Released March 4th, 2023

  • Changes in libraries:
    • \ref mrpt_gui_grp
      • All OpenGL viewports: pan is now also achieved by pressing the mouse middle button (wheel) + dragging, for similarity with many other CAD UIs.
    • \ref mrpt_opengl_grp
      • Shadows can now be rendered for directional lights. See mrpt::opengl::Viewport::enableShadowCasting()
      • These class names have been shortened for ease of use (typedefs with the older names still exist for backwards compatibility, including deserialization of old files):
        • mrpt::opengl::COpenGLScene ==> mrpt::opengl::Scene
        • mrpt::opengl::COpenGLViewport ==> mrpt::opengl::Viewport
      • New class mrpt::opengl::CSkyBox for rendering "3D background" as sky boxes. Refer to example \ref opengl_skybox_example
      • OpenGL shaders: more rational use of GLSL precision specifiers: highp for positions, lowp for colors.
      • New flag mrpt::opengl::CFBORender::Parameters::raw_depth
      • mrpt::opengl::FrameBuffer: Remove stencil bit for faster off-screen rendering.
      • New class mrpt::opengl::OpenGLDepth2LinearLUTs
      • mrpt::opengl::CMesh now supports texture wrapping over the mesh extension.
      • Texture handling refactored into a new class mrpt::opengl::Texture
      • Enabled GL MipMap texture generation.
      • Triangles shaders now also account for shininess of material to generate specular reflections. See new method mrpt::opengl::CRenderizable::materialShininess()
      • mrpt::opengl::TLightParameters has been modified to make it more consistent: just one light color and three floats (diffuse, ambient, specular).
      • mrpt::opengl::CRenderizable base methods are now 100% thread-safe. getPoseRef() method has been removed since it was not safe.
  • BUG FIXES:
    • Fix unrealistic odometry error simulation in mrpt::kinematics::CVehicleSimulVirtualBase (it affected the app GridmapNavSimul).

Release of v2.6.0

12 Jan 18:19
2.6.0
451f276
Compare
Choose a tag to compare

Version 2.6.0: Released January 12th, 2023

  • Changes in libraries:
    • \ref mrpt_math_grp
      • Remove unused header: <mrpt/math/bits_math.h>
    • \ref mrpt_opengl_grp
      • New method mrpt::opengl::CAssimpModel::texturedObjects()
  • BUG FIXES:
    • Fix wrong evaluation of the pivot point for the angular threshold parameters in ICP (Closes #1264)

Release of v2.5.8

07 Jan 18:52
2.5.8
6e92f75
Compare
Choose a tag to compare

Version 2.5.8: Released January 7th, 2023

  • Changes in libraries:
    • \ref mrpt_core_grp
      • Move the _deg literal to a new namespace mrpt::literals to allow finer-grained using namespace mrpt::literals; instead of using namespace mrpt;. This change is backwards compatible, no user code change required, but recommended.
    • \ref mrpt_expr_grp
      • New mrpt::expr::CRuntimeCompiledExpression::register_function() to allow user-defined functions in runtime-compiled formulas.

Release of v2.5.7

25 Nov 14:02
2.5.7
6c277a0
Compare
Choose a tag to compare

Version 2.5.7: Released November 25th, 2022

  • Changes in applications:
    • navlog-viewer:
      • It now shows custom visualization artifacts stored in the new field mrpt::nav::CLogFileRecord::visuals.
  • Changes in libraries:
    • Upgrade embedded version of nanoflann to current master (2022-Nov-18).
    • \ref mrpt_maps_grp
      • mrpt::math::KDTreeCapable updated to build against nanoflann v1.5.0
    • \ref mrpt_system_grp
      • New method mrpt::system::COutputLogger::setVerbosityLevelForCallbacks()
  • General build changes:
    • clang-format: enforce and upgraded to use clang-format-11.
  • BUG FIXES:
    • Fix crash if calling mrpt::opengl::CSetOfObjects::getByName() with null pointers as children objects.
    • Fix opengl resources leak if mrpt::opengl::CRenderizableShaderTexturedTriangles instance is destroyed from a thread different than the one used to render.

Release of v2.5.6

12 Nov 07:15
2.5.6
b989c96
Compare
Choose a tag to compare

Version 2.5.6: Released November 12th, 2022

  • Changes in libraries:
    • \ref mrpt_containers_grp
      • New template class mrpt::containers::PerThreadDataHolder
    • \ref mrpt_opengl_grp
      • The rendering pipeline (mrpt::opengl::enqueueForRendering) is now more optimized to cull earlier, achieving faster rendering of large and complex 3D scenes.
      • All opengl shaders, objects, and renderers are now multithread capable, including rendering several FBOs in different threads.
      • mrpt::opengl::CFBORender constructor now takes a parameters struct making it much more configurable.
      • mrpt::opengl::CAssimpModel now supports (de)serializing, storing itself in the Assimp binary format (assbin).
      • New opengl shaders: one set for light-enabled objects and another for objects without diffuse reflection effects (to avoid conditionals inside the GPU shader programs).
    • \ref mrpt_gui_grp
      • mrpt::gui OpenGL canvas windows and components no longer have a background color property. It is now always handled by the mrpt::opengl::COpenGLViewport to avoid duplicated functionalities.
    • \ref mrpt_system_grp
      • These functions are now thread-safe if built in a system with the localtime_r() variant of localtime():
        • mrpt::system::timestampToParts()
        • mrpt::system::dateTimeLocalToString()
        • mrpt::system::timeLocalToString()
  • Build system:
    • Provide CMAKE_BUILD_TYPES SanitizeThread and SanitizeAddress.
    • Fix build against latest (Debian/sid) libglut-dev.
  • BUG FIXES:
    • Fix build against latest version of EMSDK (Emscripten).
    • Fix wrong scaling of samples in mrpt::random::CRandomGenerator::drawGaussianMultivariate() and mrpt::random::CRandomGenerator::drawGaussianMultivariateMany()
    • mrpt::opengl::CSetOfTexturedTriangles was not automatically registered in the mrpt::rtti system

Release of v2.5.5

19 Oct 08:01
2.5.5
b62d125
Compare
Choose a tag to compare

Version 2.5.5: Released October 19th, 2022

  • Changes in applications:
    • prg-configurator:
      • A maximum trajectory time can be specified now for rendering PTGs.
      • New CLI arguments --ini, --ini-section to automate loading custom INI files.
  • Changes in libraries:
    • \ref mrpt_containers_grp
      • mrpt::container::yaml:
        • Clearer error messages when an invalid type conversion is requested.
        • It now does not throw internal exceptions when trying to convert strings to bool.
    • \ref mrpt_imgs_grp
      • mrpt::img::CImage::filledRectangle() is now implemented using the fast opencv draw function instead of the slow mrpt::img::CCanvas default base implementation.
    • \ref mrpt_math_grp
      • Correct copyright notes for embedded version of the CSparse sources (PR #1255).
    • \ref mrpt_typemeta_grp
      • mrpt::typemeta::TEnumType<> on invalid names, it now prints all valid known enum names in its exception error message.

Release of v2.5.4

24 Sep 07:39
2.5.4
e84151b
Compare
Choose a tag to compare

Version 2.5.4: Released September 24th, 2022

  • Changes in libraries:
    • \ref mrpt_opengl_grp
      • mrpt::opengl::CFBORender is now faster, using a LUT for converting from logarithmic to linear depth values.
    • \ref mrpt_ros1bridge_grp
      • Implemented missing mrpt::ros1bridge::toROS() for point clouds.
    • \ref mrpt_ros2bridge_grp
      • Implemented missing mrpt::ros2bridge::toROS() for point clouds.
  • BUG FIXES:
    • Fix build on hppa for parisc architecture too (not supported flag -mtune=native)
    • nanogui: Fix mismatched memory allocator/free in serialization code.
    • Fix potential segfault in RawLogViewer while building the tree view.

Release of v2.5.3

06 Sep 08:51
2.5.3
3205059
Compare
Choose a tag to compare

Version 2.5.3: Released September 6th, 2022

  • Changes in libraries:
    • \ref mrpt_gui_grp
      • nanogui::mainloop() (and mrpt::gui::CDisplayWindowGUI()) now allows defining a minimum period for calls to user callback functions via a new second optional parameter.
    • \ref mrpt_obs_grp
      • Not all CObservation* classes were declared in <mrpt/obs/obs_frwds.h>. Now it is corrected.
  • BUG FIXES:
    • Fix build on hppa (parisc64) architecture (not supported flag -mtune=native)

Release of v2.5.2

30 Aug 07:22
2.5.2
3292445
Compare
Choose a tag to compare

Version 2.5.2: Released August 30th, 2022

  • BUG FIXES:
    • mrpt::math::MatrixBase::eig_symmetric() now is ensured not to return negative eigenvalues due to numerical innacuracies in some platforms (i386).
    • mrpt::maps::COccupancyGridMap2D::getAsPointCloud() did not return the outermost cells as obstacles.
    • Fix unit test errors when compiling with LTO (Closes Debian bug #1015550)

Release of v2.5.1

03 Aug 22:40
2.5.1
4cfc607
Compare
Choose a tag to compare

Version 2.5.1: Released August 4th, 2022

  • Changes in applications:
    • RawLogViewer:
      • Bold points when selecting a sensor in the timeline UI.
  • Changes in libraries:
    • Embedded nanoflann version upgraded to v1.4.3
  • BUG FIXES:
    • Fix regression: mrpt::opengl::CAssimpModel may fail to resolve texture relative paths.
    • mrpt::opengl::CMesh was implementing texture coordinates flipping (u,v) wrt documented behavior.
    • Fix static_assert() failure in CTicTac when building with latest emscripten clang compiler.
    • Fix regression: yaml parsing boolean values may throw an exception inside std::stoi().