ros-lyrical-mp2p-icp (2.9.0-3resolute) resolute; urgency=high

  * Merge pull request #57 <https://github.com/MOLAorg/mp2p_icp/issues/57> from MOLAorg/feat/deskew-filter-ignore-acc
    FilterDeskew: add new option "ignore_accelerometer"
  * Merge pull request #55 <https://github.com/MOLAorg/mp2p_icp/issues/55> from MOLAorg/feat/mm-viewer-read-bin-files
    mm-viewer: can be also open .bin files with serialized CGenericPointsMap
  * Merge pull request #54 <https://github.com/MOLAorg/mp2p_icp/issues/54> from MOLAorg/feat/mm-apps-plugins
    mm-info, mm2grid, mm2las, mm2ply, mm2txt now have a --load-plugins flag
  * Optimization in PointCloudToVoxelGridSingle
  * Add <stdexcept> to all required files (don't depend on transitive includes)
  * mm-info, mm2grid, mm2las, mm2ply, mm2txt now have a --load-plugins flag
  * Merge branch 'generator-generic-cloud' into develop
  * cloud rendering: Implement observing the autoBoundingBoxOutliersPercentile
  * Merge pull request #53 <https://github.com/MOLAorg/mp2p_icp/issues/53> from MOLAorg/generator-generic-cloud
    Generator: creates CGenericPointsMap by default; add sanity checks in most filters
  * remove more old mrpt version guards
  * New sanity check function: warn_on_field_padding_mismatch()
  * FilterDeskew: guard against new MRPT behavior to keep all field lengths in sync
  * Add sanity checks in filters
  * Bump minimum MRPT version to 2.15.4 (and remove now old dead code)
  * Generator new param 'filterOutPointsAtZero', set to true in demo pipelines
  * Generator: now has a param 'default_pointcloud_class' which defaults to 'CGenericPointsMap'
  * Code clean up (remove now dead code; mrpt backwards compatibility)
  * Merge pull request #52 <https://github.com/MOLAorg/mp2p_icp/issues/52> from MOLAorg/icp-log-viewer-quality-filter
    icp-log-viewer: add --min-quality filter CLI flag
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 22 Apr 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.8.1-3resolute) resolute; urgency=high

  * Merge pull request #51 <https://github.com/MOLAorg/mp2p_icp/issues/51> from MOLAorg/fix/new-mrpt-api
    Update to build against mrpt >=2.15.13
  * Update to build against mrpt >=2.15.13 (pointcloud field names as std::string instead of string_view)
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 06 Apr 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.8.0-3resolute) resolute; urgency=high

  * BUGFIX: Fix potential crash (regression in former voxel parallelization)
  * Merge pull request #50 <https://github.com/MOLAorg/mp2p_icp/issues/50> from MOLAorg/fix/ram-usage
    Fix/ram usage
  * Process points by chunks to limit RAM usage
  * reduce memory allocations in voxel views
  * Smarter usage of reserve() in tsl maps
  * Add agents.md
  * Merge pull request #49 <https://github.com/MOLAorg/mp2p_icp/issues/49> from MOLAorg/mm2las/georef
    mm2las: export flag '--frame geodetic' for georeferenced clouds
  * Use geodetic coords cache
  * Correctly honor exportGeodetic
  * mm2las: Add sanity checks
  * Fix: X=lon, Y=lat coord order for WKT2
  * mm2las: export flag '--frame geodetic' for georeferenced clouds
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 01 Apr 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.7.1-3resolute) resolute; urgency=high

  * Merge pull request #48 <https://github.com/MOLAorg/mp2p_icp/issues/48> from MOLAorg/fix/filter-adaptive-avoid-fpe
    FIX: Avoid potential division by zero in FilterDecimateAdaptive
  * Update minimum required MRPT version 2.15.0
  * FIX: Avoid potential division by zero in FilterDecimateAdaptive
  * Merge pull request #47 <https://github.com/MOLAorg/mp2p_icp/issues/47> from MOLAorg/fix/georef-yaml-missing-fields
    FIX: georeferencing yaml serialization missed orientation fields
  * FIX: georeferencing yaml serialization missed orientation fields
  * Merge pull request #46 <https://github.com/MOLAorg/mp2p_icp/issues/46> from MOLAorg/feat/sm2mm-in-enu-frame
    sm2mm: new  feature to directly use georef as input and produce maps (and apply filters!) in ENU frame
  * sm2mm: new  feature to directly use georef as input and produce maps in ENU frame
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sun, 08 Mar 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.7.0-3resolute) resolute; urgency=high

  * Merge pull request #45 <https://github.com/MOLAorg/mp2p_icp/issues/45> from MOLAorg/feat/mm2grid
    Add new cli app: mm2grid
  * Add new cli app: mm2grid
  * Merge pull request #44 <https://github.com/MOLAorg/mp2p_icp/issues/44> from MOLAorg/feat/view-vector
    Generators now optionally generate a 'view' direction vector per point
  * FilterMLS: now uses the view-direction vectors to ensure normals point outwards
  * Generator: add safety consistency check
  * Generators are now also included into sm2mm profiler
  * Generators now optionally generate a 'view' direction vector per point
  * mm-viewer: FIX: show/hide all buttons did not apply to extra viz layers
  * mm-georef: Fix creation of empty output map if input didn't exist
  * mm2txt: Fix wrong console message saying mm-info instead of mm2txt
  * mm-viewer UI: show XY grid plane at the root frame of reference (ENU or map)
  * Merge pull request #43 <https://github.com/MOLAorg/mp2p_icp/issues/43> from MOLAorg/feat/export-enu-frame
    Export tools now accept "--frame enu" to generate XYZ data in ENU frame
  * Export tools now accept "--frame enu" to generate XYZ data in ENU frame
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 03 Mar 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.6.0-3resolute) resolute; urgency=high

  * Merge pull request #42 <https://github.com/MOLAorg/mp2p_icp/issues/42> from MOLAorg/feat/filter-remove-several-point-fields
    FilterRemovePointCloudField now accepts multiple fields
  * FilterRemovePointCloudField now accepts multiple fields
  * Merge pull request #41 <https://github.com/MOLAorg/mp2p_icp/issues/41> from MOLAorg/feat/functor-save-log-file
    Add functor_should_generate_debug_file to override the decision of whether to write .icplog files
  * Add functor_should_generate_debug_file to override the decision of whether to write .icplog files
  * Merge pull request #40 <https://github.com/MOLAorg/mp2p_icp/issues/40> from MOLAorg/feat/new-clear-remove-field-filters
    Add new filters: FilterClear and FilterRemovePointCloudField
  * Add new filters: FilterClear and FilterRemovePointCloudField
  * docs: refer to the online pipeline editor
  * docs: add missing docs for FilterRenameLayer
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 16 Feb 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.5.0-3resolute) resolute; urgency=high

  * Merge pull request #39 <https://github.com/MOLAorg/mp2p_icp/issues/39> from MOLAorg/feat/permit-missing-externals
    sm2mm: Add optional flag --permit-missing-externals
  * sm2mm: Add optional flag --permit-missing-externals
  * Merge pull request #38 <https://github.com/MOLAorg/mp2p_icp/issues/38> from MOLAorg/feat/mls-optimizations
    FilterMLS performance optimizations
  * Merge pull request #37 <https://github.com/MOLAorg/mp2p_icp/issues/37> from MOLAorg/feat/use-zstd
    Use ZStd compression by default (for MRPT>=2.15.7)
  * docs: sm2mm add "--compression-method"
  * Explicitly include mrpt/core/Clock.h where used
  * Use ZStd compression by default (for MRPT>=2.15.7)
  * Merge pull request #36 <https://github.com/MOLAorg/mp2p_icp/issues/36> from MOLAorg/feat/mm2txt-missing-fields-dont-emit
    mm2txt, mm2ply: don't emit columns of zeros for missing user-given fields
  * Merge pull request #35 <https://github.com/MOLAorg/mp2p_icp/issues/35> from MOLAorg/feat/mm2txt-ignore-fields
    mm2txt and mm2ply: Add new option --ignore-missing-fields
  * Merge pull request #34 <https://github.com/MOLAorg/mp2p_icp/issues/34> from MOLAorg/feat/mm2txt-mm2ply-more-precision
    Exploit the maximum float32/float64 precision in exported txt formats
  * Merge pull request #33 <https://github.com/MOLAorg/mp2p_icp/issues/33> from MOLAorg/feat/sm2mm-new-options
    Feat/sm2mm-new-options
  * sm2mm cli app: add new flags for downsampling options
  * sm2mm: add new downsample options and refactor into update_velocity_buffer_from_obs()
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 04 Feb 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.4.1-3resolute) resolute; urgency=high

  * Add more unit tests
  * Update README to keep it in sync with the provided apps and libraries
  * Merge pull request #29 <https://github.com/MOLAorg/mp2p_icp/issues/29> from MOLAorg/fix/cov
    Fix bugs in covariance estimation for some cases
  * fix covariance estimation bugs; add unit tests for cov2cov
  * Update commit for mola_common
  * Merge pull request #28 <https://github.com/MOLAorg/mp2p_icp/issues/28> from MOLAorg/feat/mm-viewer-3d-layers
    mm-viewer: add CLI flags to load overlaid 3D scenes for visualization
  * mm-viewer: add CLI flags to load overlaid 3D scenes for visualization
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 27 Jan 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.4.0-3resolute) resolute; urgency=high

  * Merge pull request #27 <https://github.com/MOLAorg/mp2p_icp/issues/27> from MOLAorg/feat/new-filter-voxel-sor
  * Add new unit test for class factory
  * Add new FilterVoxelSOR filter
  * Merge pull request #26 <https://github.com/MOLAorg/mp2p_icp/issues/26> from MOLAorg/feat/mm2las
  * Add mm2las CLI tool
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 21 Jan 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.3.1-3resolute) resolute; urgency=high

  * Merge pull request #25 <https://github.com/MOLAorg/mp2p_icp/issues/25> from MOLAorg/feat/naive-decimate
    Add trivial FilterDecimate for fast downsampling without spatial awareness
  * lint fixes
  * Add trivial FilterDecimate for fast downsampling without spatial awareness
  * Parameterizable: add virtual base dtor
  * Remove the NormalizeIntensity stage in the demo pipelines; visualization does that already
  * docs: fill missing manpages
  * docs: add sm2mm pipelines page
  * Clarify map layers and simple maps descriptions
    Updated references to CMetricMap and CGenericPointsMap in the documentation for clarity and accuracy.
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 14 Jan 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.3.0-3resolute) resolute; urgency=high

  * Merge pull request #24 <https://github.com/MOLAorg/mp2p_icp/issues/24> from MOLAorg/feat/mm2txt-select-fields
    mm2txt and mm2ply now have a --export-fields flag
  * mm2txt and mm2ply now have a --export-fields flag
  * Merge pull request #23 <https://github.com/MOLAorg/mp2p_icp/issues/23> from MOLAorg/fix/some-deprecations
    Fix usage of deprecated cloud types
  * Provide shortcut names for common cloud field names
  * More deprecated cloud usage
  * FIX bug: FilterDecimateVoxel, if using flatten, did not propagate all input cloud fields
  * Fix usage of some deprecated cloud types
  * FilterSOR: create output layers even if input is empty
  * FilterDeskew: propagate input fields even if the cloud is empty
  * FilterByExpression: show debug-level stats
  * FilterNormalizeIntensity: do not throw on empty clouds
  * Merge pull request #22 <https://github.com/MOLAorg/mp2p_icp/issues/22> from MOLAorg/feat/new-filters
    Add new filter FilterRenameLayer
  * Added filter FilterRenameLayer
  * mm2txt: prepare for deprecated classes in 3.0.0
  * FilterAdjustTimestamps: new method 'None' to bypass filter
  * Fix: sm2mm did not attach to ParameterSource the final_filter elements
  * sm2mm: did not observe the optional profiler parameter for the final_filter stage
  * Fix: FilterMLS did not properly copy all point fields when using upsampling
  * Fix: FilterAbsoluteTimestamp now also works for accumulated points in one layer
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Thu, 08 Jan 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.2.1-3resolute) resolute; urgency=high

  * Merge pull request #21 <https://github.com/MOLAorg/mp2p_icp/issues/21> from MOLAorg/feat/abs-stamp-filter
    Added new filter: FilterAbsoluteTimestamp
  * Fix the logic of the FilterEdgePlane filter parameters
  * Added new filter: FilterAbsoluteTimestamp
  * mm2txt: also export uint8 fields (missing in last release)
  * Merge pull request #20 <https://github.com/MOLAorg/mp2p_icp/issues/20> from MOLAorg/feat/more-unit-tests
    More unit tests
  * Add generators unit tests
  * More unit tests
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 06 Jan 2026 00:00:00 -0000

ros-lyrical-mp2p-icp (2.2.0-3resolute) resolute; urgency=high

  * docs: explain FilterSOR
  * Merge pull request #19 <https://github.com/MOLAorg/mp2p_icp/issues/19> from MOLAorg/feat/mm2ply
    Add mm2ply CLI tool
  * Merge pull request #18 <https://github.com/MOLAorg/mp2p_icp/issues/18> from MOLAorg/feat/new-sor-filter
    Add FilterSOR: Statistical Outlier Rejection
  * More unit tests: cover MLS
  * Merge pull request #17 <https://github.com/MOLAorg/mp2p_icp/issues/17> from MOLAorg/feat/filter-by-expr
    Add new filter: FilterByExpression
  * More code coverage; fix protected-level initialize methods
  * Add new filter: FilterByExpression
  * FIX: missing uint8 fields in Deskew
  * sanityCheck: also check all double/uint8 fields
  * ui: fix case without geo-ref
  * mm-viewer: show lat/lon coordinates for mouse selected points
  * mm-viewer: GUI now shows the ENU & map miniviews for orientation hints
  * mm-viewer: handle special coloring channel groups 'rgb' and 'rgbf'
  * clean non used code in deskew test
  * map viz: use new mrpt 2.15.3 coloring modes
  * sm2mm: auto-guess lazy-load externals directory for .simplemap files
  * mm-viewer: implement colorize clouds by any field
  * MLS filter: add 'output_layer_class' parameter
  * mm2txt: export all fields of CGenericPointsMap layers
  * Merge pull request #16 <https://github.com/MOLAorg/mp2p_icp/issues/16> from MOLAorg/fix/generic-cloud-deskew-fields
    Add test for missing fields in generic cloud deskew
  * FIX: correctly register arbitrary pointcloud fields into output clouds
  * Add test for missing fields in generic cloud deskew
  * sm2mm: FIx console message on "FinalFilters" did not obey verbosity level
  * Fix clang-tidy warnings
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sun, 28 Dec 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (2.1.2-3resolute) resolute; urgency=high

  * mm-viewer: Automatic retry to load maps if missing plugins, trying to reload with libmola_metric_maps.so
  * Enable coverage run for noble docker image
  * Add new unit tests
  * docs: fix broken formatting of filters page
  * Merge pull request #14 <https://github.com/MOLAorg/mp2p_icp/issues/14>
    deskew filter: refactoring to handle arbitrary point fields
  * get code ready for API update in MRPT 2.15.3
  * Fix build w/o imu library
  * mm-viewer: add keystrokes shift+cursor arrows to move up/down
  * Add Codecov badge to README
  * MLS filter: add progress report logging
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Fri, 28 Nov 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (2.1.1-3resolute) resolute; urgency=high

  * FIX: SanityCheck was triggering as errors optional pointcloud fields in XYZIRT clouds
  * FIX: Throw exception instead of crashing if FilterDeskew is invoked with an empty local velocity buffer
  * Fix yaml file for not using mola_yaml extensions
  * Add more sm2mm demo pipelines
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sat, 08 Nov 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (2.1.0-3resolute) resolute; urgency=high

  * Merge pull request #13 <https://github.com/MOLAorg/mp2p_icp/issues/13> from MOLAorg/fix/filterdecimate-bug
  * Add unit test for FilterDecimateVoxel
  * mm-viewer: ensure proper order of opengl object destruction
  * Add more debug traces for Filters
  * Generator: Add more info on layer contents in debug traces
  * FIX: Avoid crash in FilterVoxelSlice if there are no points in the ROI
  * Merge pull request #12 <https://github.com/MOLAorg/mp2p_icp/issues/12> from MOLAorg/feat/mls
    Implemented MLS filter
  * Merge pull request #11 <https://github.com/MOLAorg/mp2p_icp/issues/11> from MOLAorg/feat/use-faster-insertion
    Use the faster insertion-with-context in MRPT 2.15.0
  * Update to build using CGenericPointsMap in upcoming MRPT >=2.15
  * Merge pull request #10 <https://github.com/MOLAorg/mp2p_icp/issues/10> from MOLAorg/fix/ci
  * Upgrade CircleCI images to u24.04
  * Fix build out of ROS and w/o IMU preintegration
  * Update mola_common version
  * Fix: Warning message missing new line
  * FilterDecimateVoxels: add new parameter 'minimum_points_per_voxel'
  * Fix docs typo
  * Update docs for Deskew filter
  * Update README.md badges
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 28 Oct 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (2.0.0-3resolute) resolute; urgency=high

  * Merge pull request #9 <https://github.com/MOLAorg/mp2p_icp/issues/9> from MOLAorg/feature/better-lio
    Better LIO
  * sm2mm cli app: add --profiler flag
  * demo sm2mm pipelines: add deskew method entry
  * CI: Add another pipeline without TBB
  * FIX: bug in non-TBB serial implementation of GN optimizer
  * CI: add running unit tests
  * FIX: potential crash in FilterDeskew
  * Add deskew unit tests
  * Add unit test for cov2cov optimizer
  * Add 'name' property to all generators and filters for disaggregated stats
  * Allow building without the IMU library
  * Update mola_common to 0.5.1
  * clang-tidy fixes
  * Remove dead code
  * Refactor errorTerm for pt2pt for better reusability
  * mm-viewer: add combo box to select intensity colormap
  * Add docs for filters
  * BUGFIX: FilterMerge would lost all point fields except XYZ
  * Remove external libpointmatcher
  * Update formatter script
  * icp log viewer: more options for cov2cov visualization
  * Define virtual API MetricMapMergeCapable
  * fix bug in FilterByIntensity params parser
  * Render cov2cov pairings
  * FilterByRange new parameter: metric_l_infinity
  * FilterDecimateAdaptive now exploits parallelization
  * Progress visualizing cov2cov pairings
  * New cov2cov ICP optimizer
  * Implement a new Cov2Cov matcher
  * Make Matcher_Points_Base::transform_local_to_global() to use TBB, and remove unused parameters
  * Add [[nodiscard]] to estimate_points_eigen()
  * BBox filter: fix target layer must be same type than input
  * Use fractional integers for faster sampling
  * New FPS filter
  * Remove FilterDecimateVoxelsQuadratic
  * Style: public 'params_' rename as 'params'
  * New interface 'IcpPrepareCapable'
  * Add new virtual interface NearestPointWithCovCapable
  * Refactor mp2p_icp_map into mp2p_icp_common for IMU-related parts
  * Finished integration of new IMU API package
  * Depend on imu external library
  * Move code out to the imu preintegration package
  * Move LocalVelocityBuffer to the IMU repository
  * Add [[nodiscard]] to icp_pipeline_from_yaml()
  * deskew filter: new option 'in_place' to avoid allocating a new cloud whenever possible
  * Finish implementation of higher-order IMU interpolator
  * Implement trajectory reconstruction for deskew
  * cmake files: prefer spaces indentation
  * Add imu preintegration package as dependency
  * FilterNormalizeIntensity can now use a fixed min/max range given by hand
  * Docs: update mp2p_icp_basics for better searchability of simplemaps
  * New option to set pointcloud alpha channel
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 13 Oct 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.8.0-3resolute) resolute; urgency=high

  * Modernize and unify license notes in all files
  * Merge pull request #8 <https://github.com/MOLAorg/mp2p_icp/issues/8> from MOLAorg/feat/precise-deskew
    Precise scan deskew:
    - Implement LocalVelocityBuffer inside ParameterSource's
    - Update LocalVelocityBuffer from IMU data from Generators.
    - Export / Import LocalVelocityBuffer to/from YAML
    - Implement precise cloud undistortion in FilterDeskew
    - Use precise cloud undistortion in the context of sm2mm.
  * sm2mm: Use local velocity buffer if available
  * add serialization to velocity buffer
  * Generators now handle IMU readings and forward them to the velocity buffer
  * Update to latest mola_common for embedded builds
  * linter: clang-tidy fixes
  * fix param name for better consistency
  * feature: Option to use std::map instead of tsl robin_map in voxelization filters
  * docs: fill txt2mm man page
  * Feature: txt2mm new import format 'xyzrgb_normalized'
  * remove code to support older MRPT versions; code style clean ups
  * Fix: FilterAdjustTimestamps may trigger exception if input cloud is empty
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 26 Aug 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.7.1-3resolute) resolute; urgency=high

  * docs: Populate sm2mm app page
  * New feature: all pipeline modules now has an optional "plugin" YAML field to load them from user-provided plugins.
  * Update REAME ROS badges
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Fri, 20 Jun 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.7.0-3resolute) resolute; urgency=high

  * metric map data type: add new metadata YAML field
  * Update broken link to ROS Index
  * docs: change references to default branch master->develop
  * Default generator: more details in debug traces when ignoring an observation
  * Update package license tag to "BSD-3-Clause"
  * Integrate vscode with colcon custom settings and clang-tidy
  * Fix build unit tests with older gcc versions
  * Drop apparently useless build dep
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 02 Jun 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.7-3resolute) resolute; urgency=high

  * mm-georef cli app: support reading/writing georef info in YAML format
  * georeferencing metadata now can be read/writen as YAML files
  * clang-format: switch to column limit=100
  * Update to robin-map v1.4.0
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Thu, 03 Apr 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.6-3resolute) resolute; urgency=high

  * Docs: add page for mm-georef
  * docs: Update 2025 paper citation
  * print metric_map_t as string: show lat/lon coordinates in a format directly compatible with Google Map searches.
  * New cli tool: mm-georef, to manipulate the geo-referencing metadata of metric map files
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 26 Feb 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.5-3resolute) resolute; urgency=high

  * Add GitHub actions
  * Add pole-detector filter
  * mm-filter app: add --load-plugins flag too
  * Add sanity check assert in FilterDeskew
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 28 Jan 2025 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.4-3resolute) resolute; urgency=high

  * merge two docs pages in one to shorten the docs TOC
  * Update README.md: Mark ROS2 Iron as EOL
  * Also use TBB for parallel solving point-to-plane pairings
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 18 Dec 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.3-3resolute) resolute; urgency=high

  * icp-log-viewer: also reduce GUI refresh rate
  * mm-viewer: avoid useless GUI refresh (CPU usage reduction)
  * txt2mm: Add input filter xyzrgb
  * mm-viewer: add a 'fit view to map' button
  * New cli app rawlog-filter
  * FilterCurvature: better handling scans with <=3 points in some rings
  * new subcommand 'sm-cli tf'
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 11 Nov 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.2-3resolute) resolute; urgency=high

  * Expose << and >> operators for geo-reference data structures
  * Fix missing build_dep
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sat, 14 Sep 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.1-3resolute) resolute; urgency=high

  * Fix missing catkin buildtoo_depend for ROS1 builds
  * Update RTTI macros for upcoming MRPT 2.14.0
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 11 Sep 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.6.0-3resolute) resolute; urgency=high

  * Port Point2Plane matcher to use the new NN-for-planes API
  * mp2p_icp_map library: add NearestPlaneCapable virtual API
  * cmake: move from glob expressions to explicit lists of source files
  * clarify eigenvalues order in headers
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sun, 08 Sep 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.6-3resolute) resolute; urgency=high

  * sm2mm cli: show map contents before writing to disk
  * add another demo sm2mm file for the mola tutorials
  * Add another sm2mm demo file w/o deskew for the mola mapping tutorial
  * Matcher_Point2Plane: fix build error in armhf
  * Fix build with embedded mola_common
  * README: Add ROS badges for all architectures
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sat, 07 Sep 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.5-3resolute) resolute; urgency=high

  * Explicitly add tbb as dependency in package.xml
  * Depend on new mrpt_lib packages (deprecate mrpt2)
  * FIX: build errors in armhf arch
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 27 Aug 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.4-3resolute) resolute; urgency=high

  * Do not use Eigen::Vector for compatibility with Eigen3 <3.4 in ROS Noetic
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 20 Aug 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.3-3resolute) resolute; urgency=high

  * Re-add ROS1 Noetic as supported distribution
  * Generator sanity check asserts: more informative error messages
  * sm-cli: new command 'join' to merge simplemaps
  * icp-log-viewer UI: new keybind 'I' to switch initial/final pose
  * icp-log-viewer UI: add option to visualize voxelmaps empty space
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 20 Aug 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.2-3resolute) resolute; urgency=high

  * Add sm2mm yaml example for dynamic/static obstacles
  * Update sample sm2mm pipelines to use de-skew
  * docs: add mm-filter example
  * Fix pointcloud ptr typo
  * More safety sanity checks added in mm-viewer and sm2mm
  * BUGFIX: Generator should not create empty maps for GPS observations
  * Contributors: Jose Luis Blanco-Claraco, Raúl Aguilera López

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 24 Jul 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.1-3resolute) resolute; urgency=high

  * Update docs
  * ICP: Add optional functors for before-logging maps
  * icp-log-viewer UI: fix potential out-of-range exception when autoplay is on
  * FilterAdjustTimestamps: add new param 'time_offset' useful for multiple LiDARs setups
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 03 Jul 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.5.0-3resolute) resolute; urgency=high

  * ICP: Add optional user-provided per-iteration hooks
  * Add new filter: FilterByRing
  * Add new filter: FilterAdjustTimestamps
  * Add sanity checks for point cloud fields.
  * Fix typo in default class for FilterDeskew
  * generators API: add bool return type to detect if observation was actually processed
  * generic Generator: handle velodyne observations so timestamps are generated
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Fri, 21 Jun 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.4.3-3resolute) resolute; urgency=high

  * Add pointcloud_sanity_check() auxiliary function
  * Generator: more DEBUG level traces
  * BUGFIX: FilterDeskew generated buggy output points if the input does not contain timestamps
  * Add sanity checks for point cloud fields
  * ICP log records now also store the dynamic variables. icp-log-viewer displays them.
  * ICP log files: automatically create output directory if it does not exist
  * Update ros2 badges (added Jazzy)
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 11 Jun 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.4.2-3resolute) resolute; urgency=high

  * mm-viewer: add check-all, check-none to layer filters
  * Add new filter: FilterRemoveByVoxelOccupancy
  * mm-viewer: camera travelling keyframes-based animations
  * mm-viewer: navigate the map with keyboard arrows; add a load button
  * mm-viewer: can now also draws a TUM trajectory overlaid with the map
  * UI apps: smoother rendering
  * icp-log-viewer and mm-viewer: the UI now has a XYZ corner overlay
  * sm-cli: command "export-kfs" now has an optional flag '--output-twist'
  * FilterDeskew: ignore empty input maps
  * More debug-level traces
  * deskew filter: Fix case of variable names in docs
  * sm-cli app: Add new command 'trim' to cut simplemaps by bounding box
  * mm-viewer: show mouse pointing coordinates
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 28 May 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.4.1-3resolute) resolute; urgency=high

  * Fix build for older mrpt versions
  * ICP pipelines: Implement loading ``quality_checkpoints`` parameter from YAML config file
  * Quality evaluators: add the option for 'hard discard'
  * Update QualityEvaluator_Voxels to use prebuilt voxel layers from input maps. Add unit tests.
  * BUGFIX: Fix deserializing georeferenced .mm files stored in <1.4.0 format
  * ICP: quality evaluators can now have formulas in their parameters too
  * mm-viewer and icp-log-viewer: extend zoom range so maps of tens of kms can be viewed at once
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sun, 19 May 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.4.0-3resolute) resolute; urgency=high

  * Update commit for robin-map to latest version (patch contributed upstream)
  * icp-log-viewer: UI now has a slider for each map point size
  * ICP: Add a new quality_checkpoint parameter to early abort ICP attempts
  * georeferenced maps: T_enu_to_map now has a covariance field
  * mm-viewer: display ENU frame too
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 06 May 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.3.3-3resolute) resolute; urgency=high

  * Add minimum_input_points_to_filter option to FilterDecimateVoxels
  * FIX: QualityEvaluator_PairedRatio throws when one of the reference maps is empty
  * FIX BUG: Won't try to match 2D pointclouds if their height is different
  * Clarify comments in metricmap.h about geodetic references
  * Fix printing metric_map_t contents when it only has a gridmap
  * Fix potential dangling references (g++ 13 warning)
  * Fix potential use of uninitialized point index
  * Bump cmake_minimum_required to 3.5
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 30 Apr 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.3.2-3resolute) resolute; urgency=high

  * tsl::robin_map library is no longer exposed neither in the public API nor as public headers (PIMPL pattern)
    This is to prevent Debian-level collisions with other packages also exposing it.
  * add first icp-log-viewer docs
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Mon, 22 Apr 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.3.1-3resolute) resolute; urgency=high

  * mm-viewer and icp-log-viewer: saves UI state in persistent user config file
  * FIX: missing UI refresh when clicking showPairings checkbox
  * renamed apps for less verbose names: icp-run, icp-log-viewer
  * ICP core now defines a variable ICP_ITERATION for use in programmable formulas in pipelines
  * icp-log-viewer: much faster rendering of ICP iteration details
  * mm-viewer: fix bug in calculation of bounding box
  * Merge docs with main MOLA repo
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Tue, 16 Apr 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.3.0-3resolute) resolute; urgency=high

  * mm-viewer: new options to visualize georeferenced maps
  * New sm-cli commands: --cut, --export-keyframes, --export-rawlog
  * propagate cmake deps downstream
  * metric_map_t: add georeferencing optional field
  * mm-filter: add --rename operation
  * GetOrCreatePointLayer() moved to its own header and uses shared ptrs
  * FilterMerge: add param input_layer_in_local_coordinates
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sun, 10 Mar 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.2.0-3resolute) resolute; urgency=high

  * Add new apps: sm-cli, mm-info, txt2mm, mm2txt, mm-filter
  * Improved documentation.
  * new filter FilterByIntensity
  * FilterNormalizeIntensity: add option for intensity range memory
  * FilterByRange: renamed params to simplify them (removed param 'keep_between')
  * FIX: missing intensity channel in decimate voxel when using some decimation methods
  * sm-cli: new subcommand 'level' to maximize the 'horizontality' of built maps
  * add optional profiler to filter pipelines
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Fri, 16 Feb 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.1.1-3resolute) resolute; urgency=high

  * MergeFilter: now also handles CVoxelMap as inputs
  * more memory efficient defaults
  * FilterCurvature: now based on ring_id channel
  * Use hash map min_factor to speed up clear()s
  * add missing hash reserve
  * PointCloudToVoxelGridSingle: Fix wrong initialization of point count
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 07 Feb 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.1.0-3resolute) resolute; urgency=high

  * FilterDecimateVoxels: Replace 3 bool parameters with an enum
  * Fix clang warnings
  * Save and visualize ICP step partial solutions
  * QualityEvaluator_PairedRatio: now does not require parameters
  * Add filter: Bonxai VoxelMap -> 2D gridmap. Bayesian filtering of voxel columns
  * Generator: allow defining custom metric maps directly in the YAML configuration
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Thu, 25 Jan 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (1.0.0-3resolute) resolute; urgency=high

  * Gauss-Newton solver: Add optional prior term
  * Added FilterMerge and modifications to allow sm2mm to build any type maps
  * sm2mm: add option for lazy-load external directory
  * Decimate filter: add flatten_to option to efficiently convert 3D->2D point clouds
  * FilterBoundingBox: parameter name changed for clearer split of inside / outside bbox
  * Deskew: add option to bypass de-skew operation
  * bump minimum required mrpt version
  * Better coloring; add option to export mm layers
  * Use new mrpt api to propagate point properties; add final_filter stage to sm2mm
  * sm2mm: add verbosity flag
  * bbox filter: allow processing variables too
  * Introduce robot_{x,y,z} variables
  * Better mm-viewer; update sm2mm demo file
  * Progress with RST docs
  * Add missing robotPose argument to generators; progress with mm-viewer
  * Add sm2mm app
  * Add FILE attribute to license tag
  * More dynamic parameters
  * fix print format
  * Add Deskew filter
  * update CI to u22.04
  * Introduce Parameterizable interface
  * New layers: create of the same input cloud type
  * Add FilterCurvature
  * filter: optional additional layer for deleted points
  * FIX: important error in robust gradient
  * expose GN params as public
  * new generators and filters
  * Filters: use tsl robin_map, faster than std::unordered_map
  * prefer nn_radius_search() to exploit nanoflann rknn
  * Minor UI updates
  * gui: autoplay
  * estimate_points_eigen.h moved to the mp2p_icp_map library
  * Solvers: add option to select by correction magnitude
  * add [[nodiscard]] to generator API
  * Add specialized implementation of voxelize for 1 pt/vx
  * add Cauchy robust kernel
  * Add support for TBB for parallelization
  * add angularThresholdFactor; add max plane-to-pt distance
  * viewer UI: show number of points per layer
  * Prefer Teschner's spatial hash
  * Use nn_single_search() when possible
  * viewer: add follow local checkbox
  * Add new filter: FilterDecimateVoxelsQuadratic
  * FilterDecimateVoxels: new option use_closest_to_voxel_average
  * FilterDecimateVoxels: new param use_random_point_within_voxel
  * less unnecesary mem allocs
  * generator: create map layers first, then filter by observation name/class filter
  * port to NN radius search
  * add "enabled" property to base Matcher class
  * Solvers: add property 'enabled'
  * Add robust kernels to GN solver
  * Add optional profiler to ICP
  * New parameter decimationDebugFiles
  * Add plugin option to viewer
  * VoxelFilter: is now ~7 times faster and does not need a bounding box parameter, thanks to using an associative container.
  * viewer: add new flag -f to load one single log file
  * viewer: increase slider range for max far plane
  * Options to recolorize maps in icp log viewer
  * Fix regression in rendering options for point clouds
  * Matcher: new parameter bounding_box_intersection_check_epsilon
  * New env var MP2P_ICP_GENERATE_DEBUG_FILES can be use to override generation of icp log files
  * BUGFIX: Ignored sensorPose for Generator::filterPointCloud()
  * Allow ICP matching against voxel metric map types
  * mp2p_icp_filters::Generator now can create a map from a generic INI file (e.g. voxelmaps)
  * fix references to old pointcloud_t -> metric_map_t
  * Remove support for MRPT<2.4.0
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sat, 20 Jan 2024 00:00:00 -0000

ros-lyrical-mp2p-icp (0.2.2-3resolute) resolute; urgency=high

  * Fix missing cmake dependencies between libraries
  * Update mola_common
  * Refactor into a new small library mp2p_icp_map with just the metric_map_t class
  * sync mola_common submodule
  * Update submodule mola_common
  * Remove redundant section
  * Update ROS badges
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Fri, 08 Sep 2023 00:00:00 -0000

ros-lyrical-mp2p-icp (0.2.1-3resolute) resolute; urgency=high

  * Update copyright date
  * Update to new name of mola_common
  * update ros badges
  * Contributors: Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Sat, 02 Sep 2023 00:00:00 -0000

ros-lyrical-mp2p-icp (0.2.0-3resolute) resolute; urgency=high

  * First release as MOLA submodule.

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Thu, 24 Aug 2023 00:00:00 -0000

ros-lyrical-mp2p-icp (0.1.0-3resolute) resolute; urgency=high

  * First official release of the mp2p_icp libraries
  * Contributors: FranciscoJManasAlvarez, Jose Luis Blanco-Claraco

 -- Jose-Luis Blanco-Claraco <joseluisblancoc@gmail.com>  Wed, 14 Jun 2023 00:00:00 -0000


