CHANGELOG

Changelog for package mp2p_icp

1.4.0 (2024-05-06)

  • 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

1.3.3 (2024-04-30)

  • 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

1.3.2 (2024-04-22)

  • 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

1.3.1 (2024-04-16)

  • 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

1.3.0 (2024-03-10)

  • 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

1.2.0 (2024-02-16)

  • 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

1.1.1 (2024-02-07)

  • 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

1.1.0 (2024-01-25)

  • 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

1.0.0 (2024-01-20)

  • 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

0.2.2 (2023-09-08)

  • 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

0.2.1 (2023-09-02)

  • Update copyright date

  • Update to new name of mola_common

  • update ros badges

  • Contributors: Jose Luis Blanco-Claraco

0.2.0 (2023-08-24)

  • First release as MOLA submodule.

0.1.0 (2023-06-14)

  • First official release of the mp2p_icp libraries

  • Contributors: FranciscoJManasAlvarez, Jose Luis Blanco-Claraco