mrpt

The Mobile Robot Programming Toolkit (MRPT)

BSD-3-CLAUSE License

Stars
1.9K
Committers
92

Bot releases are visible (Hide)

mrpt - Release of v2.11.1

Published by jlblancoc 12 months ago

Version 2.11.1: Released Oct 23rd, 2023

  • Changes in libraries:
    • \ref mrpt_math_grp
      • Fix several build warnings introduced in the last version.
    • \ref mrpt_maps_grp
      • Voxel maps: A voxel is considered occupied if its occupancy is larger than likelihoodOptions.occupiedThreshold instead of a fixed 0.5.
mrpt - Release of v2.11.0

Published by jlblancoc about 1 year ago

Version 2.11.0: Released Oct 19th, 2023

  • Changes in libraries:
    • \ref mrpt_maps_grp
      • New voxel map containers, based on Faconti's Bonxai header-only libray (MPL-2.0 license):
        • mrpt::maps::CVoxelMap
        • mrpt::maps::CVoxelMapRGB
        • Example: \ref maps_voxelmap_from_tum_dataset
        • Example: \ref maps_voxelmap_simple
  • BUG FIXES:
    • Fix python wrapper FTBFS in armhf and other architectures.
    • Fix matrices removeColumns() and removeRows() won't throw if user specified a non-existing index.
mrpt - Release of v2.10.2

Published by jlblancoc about 1 year ago

Version 2.10.2: Released Oct 5th, 2023

  • Build system:
    • ROS: fix missing deps in package.xml needed for build via Nix.
    • MRPT and OpenCV versions were until now exposed as macros with 3 hexadecimal digits (e.g. 2.4.0->0x240), with a clear limitation of versions greater than 15. Now, both symbols MRPT_VERSION and MRPT_OPENCV_VERSION_NUM use TWO hexadecimal digits per version part, like: 2.10.2 -> 0x010A02, which is much more general and safe for the future. For backwards compatibility, just make sure your user code only uses MRPT_VERSION>=xxx or MRPT_VERSION>xxx comparisons, instead of less-than comparisons (Fixes issue #1285).
  • Changes in apps:
    • rawlog-edit: Add --select-label optional filter to command --remap-timestamps.
  • Changes in libraries:
    • mrpt-ros1bridge and mrpt-ros2bridge: Remove leftover printf debugging trace printing Ok to console.
    • \ref mrpt_hwdrivers_grp
      • New overload mrpt::hwdrivers::CFFMPEG_InputStream::retrieveFrame() returning the frame PTS (presentation timestamp).
  • BUG FIXES:
    • Fix CSparse "C" linkage build error (OSX Clang). PR #1280
    • Fix missing Python wrapping of poses PDF (poses with uncertainty) composition (\oplus and \ominus) operators. (Closes #1281). PR #1283
    • Fix wrong Jacobian in mrpt::math::CQuaternion::rpy_and_jacobian() for the case of Gimbal Lock. Thanks @giafranchini for reporting!. PR #1290 (Closes #1289)
    • Fix spurious failures in offscreen render unit tests in RISCV64 (Closes #1287).
mrpt - Release of v2.10.1

Published by jlblancoc about 1 year ago

Version 2.10.1: Released August 10th, 2023

  • Build system:
    • Add cmake flag to disable LTO in pymrpt module.
    • Add -flto=auto to pymrpt so linking is much faster.
  • BUG FIXES:
    • Fix "FTBFS when binutils-dev is installed but not libiberty-dev" (Debian bug #1041165)
    • pymrpt Debian packaging: triggering of post/pre installation scripts was missing.
mrpt - Release of v2.10.0

Published by jlblancoc over 1 year ago

Version 2.10.0: Released July 9th, 2023

  • Changes in libraries:
    • \ref mrpt_opengl_grp
      • Move the parameter eyeDistance2lightShadowExtension from TRenderMatrices to mrpt::opengl::TLightParameters so it can be changed from user code (ABI change).
      • New parameter mrpt::opengl::TLightParameters::minimum_shadow_map_extension_ratio
  • Python:
    • More pymrpt examples.
  • BUG FIXES:
    • pymrpt was not automatically built when invoking the python tests using make test_legacy.
mrpt - Release of v2.9.4

Published by jlblancoc over 1 year ago

Version 2.9.4: Released July 1st, 2023

  • Python:
    • pymrpt now ships stub .pyi files, for IDEs to autocomplete MRPT Python programs.
    • maps and multimaps are iterable again (Fixes a regression in v2.9.3)
    • timestamps now has a __str__ operator and to_double() method.
  • Build system:
    • Fix several modern cmake warnings.
  • BUG FIXES:
    • Fix fail to build with libftdi1 v1.4 (Ubuntu Focal).
mrpt - Release of v2.9.3

Published by jlblancoc over 1 year ago

Version 2.9.3: Released June 22nd, 2023

  • Python:
    • New module pymrpt.ros_bridge
    • Matrices now have proper conversion and accessor methods in the Python API, including conversion from/to numpy.
    • Reduce build time of pymrpt.
mrpt - Release of v2.9.2

Published by jlblancoc over 1 year ago

Version 2.9.2: Released June 20th, 2023

  • Changes in docs:
    • Update dependency in instructions from libftdi-dev to libftdi1-dev
  • Changes in libraries:
    • \ref mrpt_comms_grp
      • mrpt::comms::CInterfaceFTDI Fix usage of deprecated API in libftdi
    • \ref mrpt_obs_grp
      • New static method mrpt::obs::CRawlog::ReadFromArchive() (useful for python bindings)
      • New overload mrpt::obs::obs_to_viz() for mrpt::obs::CSensoryFrame containers
    • \ref mrpt_slam_grp
      • mrpt::slam::CMetricMapBuilder::getCurrentlyBuiltMetricMap() returns a const ref instead of a pointer (safer, and does not lead to memory crashes in the Python wrapper).
  • Python:
    • New wrapped functions:
      • mrpt.serialization.archiveFrom()
    • Fix python install directory:
      • ROS 1 or pure Debian: [...]/lib/python3/site-packages/
      • ROS 2: [...]/lib/python3.X/site-packages/
  • BUG FIXES:
    • Fixed including the wrong <mrpt/config.h> if building MRPT in a system with another ROS-provided MRPT build.
    • Fixed build errors with gcc-13 (Fixes Debian bug #1037783)
mrpt - Release of v2.9.1

Published by jlblancoc over 1 year ago

Version 2.9.1: Release June 14th, 2023

  • Build system:
    • ROS 2: fix missing explicit dep on rclcpp in package.xml.
mrpt - Release of v2.9.0

Published by jlblancoc over 1 year ago

Version 2.9.0: Released June 7th, 2023

  • Changes in apps:
    • rosbag2rawlog: Added support for converting nav_msgs/LaserScan topics to mrpt::obs::CObservation2DRangeScan
  • Changes in libraries:
    • New Python3 module pymrpt with an almost full wrapping of all MRPT classes (via pybind11). Refer to the Python API documentation (pydoc3).
    • Removed the legacy module mrpt::hmtslam and associated applications. Please refer to older MRPT releases if needed.
    • Removed all deprecated functions and headers.
    • \ref mrpt_ros2bridge_grp
      • Fix use of obsolete header <cv_bridge.h> in newer ROS distributions.
mrpt - Release of v2.8.1

Published by jlblancoc over 1 year ago

Version 2.8.1: Released April 17th, 2023

  • Changes in libraries:
    • \ref mrpt_opengl_grp
      • Expose shadow bias parameters into mrpt::opengl::TLightParameters
  • BUG FIXES:
    • OpenGL shadow rendering: Fix error in calculation of anti peter-panning and shadow acne effects.
mrpt - Release of v2.8.0

Published by jlblancoc over 1 year ago

Version 2.8.0: Released April 8th, 2023

  • Changes in apps:
    • rosbag2rawlog: Added support for converting nav_msgs/Odometry topics to mrpt::obs::CObservationOdometry
  • Changes in libraries:
    • \ref mrpt_hwdrivers_grp
      • New driver for TAObotics IMU sensors. See mrpt::hwdrivers::CTaoboticsIMU and the example \ref hwdrivers_taobotics_imu
    • \ref mrpt_math_grp
      • mrpt::math::getRegressionPlane() return value is not roughly the inverse of the condition number of the regression problem, which gives a stronger quality indicator than the former formula.
    • \ref mrpt_opengl_grp
      • Header <mrpt/opengl.h> has been updated to include the backwards-compatible type mrpt::opengl::COpenGLScene to smooth transition of existing code bases.
      • mrpt::opengl::CSphere now has a number of divisions property instead of two (one of them was not actually used).
      • Fixed const correctness of mrpt::opengl::CGeneralizedEllipsoidTemplate::getNumberOfSegments()
    • \ref mrpt_system_grp
      • Removed mrpt::system::setConsoleColor() (Deprecated since MRPT 2.3.3)
  • Build system:
    • Fix use of obsolete qt5_use_modules().
    • New minimum CMake version required is CMake 3.16.0
  • BUG FIXES:
    • Fix regression in mrpt::obs::CRawlog::detectImagesDirectory() leading to RawLogViewer and other apps not finding the external image directories for datasets.
    • Fix wrong rendering of shadows of lines when in orthographic projection.
    • mrpt::opengl::CSphere::onUpdateBuffers_Triangles() did not update the list of points
mrpt - Release of v2.7.0

Published by jlblancoc over 1 year ago

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).
mrpt - Release of v2.6.0

Published by jlblancoc almost 2 years ago

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)
mrpt - Release of v2.5.8

Published by jlblancoc almost 2 years ago

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.
mrpt - Release of v2.5.7

Published by jlblancoc almost 2 years ago

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.
mrpt - Release of v2.5.6

Published by jlblancoc almost 2 years ago

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
mrpt - Release of v2.5.5

Published by jlblancoc about 2 years ago

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.
mrpt - Release of v2.5.4

Published by jlblancoc about 2 years ago

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.
mrpt - Release of v2.5.3

Published by jlblancoc about 2 years ago

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)