mp2p_icp package from mp2p_icp repo

mp2p_icp

Package Summary

Tags No category tags.
Version 1.3.2
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/MOLAorg/mp2p_icp.git
VCS Type git
VCS Version master
Last Updated 2024-04-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

  • Jose-Luis Blanco-Claraco

CircleCI Docs

Distro Build dev Build releases Stable version
ROS 2 Humble (u22.04) Build Status Build Status Version
ROS 2 Iron (u22.04) Build Status Build Status Version
ROS 2 Rolling (u24.04) Build Status Build Status Version
Deprecated distros Build releases Stable version
ROS 1 Noetic (u20.04) Build Status Version

mp2p_icp

C++ libraries for multi primitive-to-primitive (MP2P) ICP algorithms and flexible point cloud processing pipelines. mp2p_icp is used in the mola_lidar_odometry framework:

mola_lidar_short_demo_stairs

Introduction

The project provides these C++ libraries: * mp2p_icp_map: Provides the mp2p_icp::metric_map_t generic metric map container. Metric map files with extension *.mm are serializations of instances of this class. * mp2p_icp: With ICP algorithms. It depends on mp2p_icp_map. * mp2p_icp_filters: With point cloud filtering and manipulation algorithms. It depends on mp2p_icp_map.

And these applications: * kitti2mm: Converts KITTI-like .bin files to .mm files. * mm-filter: CLI tool to apply a pipeline to an input metric map (*.mm), saving the result as another metric map file. * mm-info: CLI tool to read a metric map (*.mm) and describe its contents. * mm-viewer: GUI tool to visualize .mm (metric map) files. * mm2txt: CLI tool to export the layers of a metric map (*.mm) as CSV/TXT. * icp-log-viewer: GUI to inspect results from ICP runs. * icp-run: Standalone program to run ICP pipelines. * sm2mm: A CLI tool to convert a simple map *.simplemap (from a SLAM mapping session) into a metric map (*.mm) via a configurable pipeline configuration file. * sm-cli: A CLI tool to inspect, visualize, or modify simple maps *.simplemap (from a SLAM mapping session). * txt2mm: CLI tool to convert pointclouds from CSV/TXT files to mp2p_icp mm.

Key C++ classes provided by this project (see full docs): * mp2p_icp::metric_map_t: A generic data type to store raw or processed point clouds, e.g. segmented, discrete extracted features. Note that filtering point clouds is intentionally left outside of the scope of this library. See MOLA for possible implementations. * mp2p_icp::ICP_Base: A uniform API for matching those generic point clouds. * Implementations/wrappers of different ICP algorithms under such uniform API. * The library exposes both, complete iterative ICP algorithms, and the underlying optimal transformation estimators which are run at each ICP iteration.

mp2p_pairings

CHANGELOG

Changelog for package mp2p_icp

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]{.title-ref} -> [metric_map_t]{.title-ref}
  • 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

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mp2p_icp at Robotics Stack Exchange

mp2p_icp package from mp2p_icp repo

mp2p_icp

Package Summary

Tags No category tags.
Version 1.3.2
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/MOLAorg/mp2p_icp.git
VCS Type git
VCS Version master
Last Updated 2024-04-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

  • Jose-Luis Blanco-Claraco

CircleCI Docs

Distro Build dev Build releases Stable version
ROS 2 Humble (u22.04) Build Status Build Status Version
ROS 2 Iron (u22.04) Build Status Build Status Version
ROS 2 Rolling (u24.04) Build Status Build Status Version
Deprecated distros Build releases Stable version
ROS 1 Noetic (u20.04) Build Status Version

mp2p_icp

C++ libraries for multi primitive-to-primitive (MP2P) ICP algorithms and flexible point cloud processing pipelines. mp2p_icp is used in the mola_lidar_odometry framework:

mola_lidar_short_demo_stairs

Introduction

The project provides these C++ libraries: * mp2p_icp_map: Provides the mp2p_icp::metric_map_t generic metric map container. Metric map files with extension *.mm are serializations of instances of this class. * mp2p_icp: With ICP algorithms. It depends on mp2p_icp_map. * mp2p_icp_filters: With point cloud filtering and manipulation algorithms. It depends on mp2p_icp_map.

And these applications: * kitti2mm: Converts KITTI-like .bin files to .mm files. * mm-filter: CLI tool to apply a pipeline to an input metric map (*.mm), saving the result as another metric map file. * mm-info: CLI tool to read a metric map (*.mm) and describe its contents. * mm-viewer: GUI tool to visualize .mm (metric map) files. * mm2txt: CLI tool to export the layers of a metric map (*.mm) as CSV/TXT. * icp-log-viewer: GUI to inspect results from ICP runs. * icp-run: Standalone program to run ICP pipelines. * sm2mm: A CLI tool to convert a simple map *.simplemap (from a SLAM mapping session) into a metric map (*.mm) via a configurable pipeline configuration file. * sm-cli: A CLI tool to inspect, visualize, or modify simple maps *.simplemap (from a SLAM mapping session). * txt2mm: CLI tool to convert pointclouds from CSV/TXT files to mp2p_icp mm.

Key C++ classes provided by this project (see full docs): * mp2p_icp::metric_map_t: A generic data type to store raw or processed point clouds, e.g. segmented, discrete extracted features. Note that filtering point clouds is intentionally left outside of the scope of this library. See MOLA for possible implementations. * mp2p_icp::ICP_Base: A uniform API for matching those generic point clouds. * Implementations/wrappers of different ICP algorithms under such uniform API. * The library exposes both, complete iterative ICP algorithms, and the underlying optimal transformation estimators which are run at each ICP iteration.

mp2p_pairings

CHANGELOG

Changelog for package mp2p_icp

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]{.title-ref} -> [metric_map_t]{.title-ref}
  • 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

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mp2p_icp at Robotics Stack Exchange

mp2p_icp package from mp2p_icp repo

mp2p_icp

Package Summary

Tags No category tags.
Version 1.3.2
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/MOLAorg/mp2p_icp.git
VCS Type git
VCS Version master
Last Updated 2024-04-23
Dev Status DEVELOPED
CI status No Continuous Integration
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

  • Jose-Luis Blanco-Claraco

CircleCI Docs

Distro Build dev Build releases Stable version
ROS 2 Humble (u22.04) Build Status Build Status Version
ROS 2 Iron (u22.04) Build Status Build Status Version
ROS 2 Rolling (u24.04) Build Status Build Status Version
Deprecated distros Build releases Stable version
ROS 1 Noetic (u20.04) Build Status Version

mp2p_icp

C++ libraries for multi primitive-to-primitive (MP2P) ICP algorithms and flexible point cloud processing pipelines. mp2p_icp is used in the mola_lidar_odometry framework:

mola_lidar_short_demo_stairs

Introduction

The project provides these C++ libraries: * mp2p_icp_map: Provides the mp2p_icp::metric_map_t generic metric map container. Metric map files with extension *.mm are serializations of instances of this class. * mp2p_icp: With ICP algorithms. It depends on mp2p_icp_map. * mp2p_icp_filters: With point cloud filtering and manipulation algorithms. It depends on mp2p_icp_map.

And these applications: * kitti2mm: Converts KITTI-like .bin files to .mm files. * mm-filter: CLI tool to apply a pipeline to an input metric map (*.mm), saving the result as another metric map file. * mm-info: CLI tool to read a metric map (*.mm) and describe its contents. * mm-viewer: GUI tool to visualize .mm (metric map) files. * mm2txt: CLI tool to export the layers of a metric map (*.mm) as CSV/TXT. * icp-log-viewer: GUI to inspect results from ICP runs. * icp-run: Standalone program to run ICP pipelines. * sm2mm: A CLI tool to convert a simple map *.simplemap (from a SLAM mapping session) into a metric map (*.mm) via a configurable pipeline configuration file. * sm-cli: A CLI tool to inspect, visualize, or modify simple maps *.simplemap (from a SLAM mapping session). * txt2mm: CLI tool to convert pointclouds from CSV/TXT files to mp2p_icp mm.

Key C++ classes provided by this project (see full docs): * mp2p_icp::metric_map_t: A generic data type to store raw or processed point clouds, e.g. segmented, discrete extracted features. Note that filtering point clouds is intentionally left outside of the scope of this library. See MOLA for possible implementations. * mp2p_icp::ICP_Base: A uniform API for matching those generic point clouds. * Implementations/wrappers of different ICP algorithms under such uniform API. * The library exposes both, complete iterative ICP algorithms, and the underlying optimal transformation estimators which are run at each ICP iteration.

mp2p_pairings

CHANGELOG

Changelog for package mp2p_icp

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]{.title-ref} -> [metric_map_t]{.title-ref}
  • 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

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mp2p_icp at Robotics Stack Exchange

mp2p_icp package from mp2p_icp repo

mp2p_icp

Package Summary

Tags No category tags.
Version 1.3.2
License BSD
Build type CMAKE
Use RECOMMENDED

Repository Summary

Checkout URI https://github.com/MOLAorg/mp2p_icp.git
VCS Type git
VCS Version master
Last Updated 2024-04-23
Dev Status DEVELOPED
CI status Continuous Integration : 0 / 0
Released RELEASED
Tags No category tags.
Contributing Help Wanted (0)
Good First Issues (0)
Pull Requests to Review (0)

Package Description

A repertory of multi primitive-to-primitive (MP2P) ICP algorithms in C++

Additional Links

Maintainers

  • Jose-Luis Blanco-Claraco

Authors

  • Jose-Luis Blanco-Claraco

CircleCI Docs

Distro Build dev Build releases Stable version
ROS 2 Humble (u22.04) Build Status Build Status Version
ROS 2 Iron (u22.04) Build Status Build Status Version
ROS 2 Rolling (u24.04) Build Status Build Status Version
Deprecated distros Build releases Stable version
ROS 1 Noetic (u20.04) Build Status Version

mp2p_icp

C++ libraries for multi primitive-to-primitive (MP2P) ICP algorithms and flexible point cloud processing pipelines. mp2p_icp is used in the mola_lidar_odometry framework:

mola_lidar_short_demo_stairs

Introduction

The project provides these C++ libraries: * mp2p_icp_map: Provides the mp2p_icp::metric_map_t generic metric map container. Metric map files with extension *.mm are serializations of instances of this class. * mp2p_icp: With ICP algorithms. It depends on mp2p_icp_map. * mp2p_icp_filters: With point cloud filtering and manipulation algorithms. It depends on mp2p_icp_map.

And these applications: * kitti2mm: Converts KITTI-like .bin files to .mm files. * mm-filter: CLI tool to apply a pipeline to an input metric map (*.mm), saving the result as another metric map file. * mm-info: CLI tool to read a metric map (*.mm) and describe its contents. * mm-viewer: GUI tool to visualize .mm (metric map) files. * mm2txt: CLI tool to export the layers of a metric map (*.mm) as CSV/TXT. * icp-log-viewer: GUI to inspect results from ICP runs. * icp-run: Standalone program to run ICP pipelines. * sm2mm: A CLI tool to convert a simple map *.simplemap (from a SLAM mapping session) into a metric map (*.mm) via a configurable pipeline configuration file. * sm-cli: A CLI tool to inspect, visualize, or modify simple maps *.simplemap (from a SLAM mapping session). * txt2mm: CLI tool to convert pointclouds from CSV/TXT files to mp2p_icp mm.

Key C++ classes provided by this project (see full docs): * mp2p_icp::metric_map_t: A generic data type to store raw or processed point clouds, e.g. segmented, discrete extracted features. Note that filtering point clouds is intentionally left outside of the scope of this library. See MOLA for possible implementations. * mp2p_icp::ICP_Base: A uniform API for matching those generic point clouds. * Implementations/wrappers of different ICP algorithms under such uniform API. * The library exposes both, complete iterative ICP algorithms, and the underlying optimal transformation estimators which are run at each ICP iteration.

mp2p_pairings

CHANGELOG

Changelog for package mp2p_icp

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]{.title-ref} -> [metric_map_t]{.title-ref}
  • 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

Wiki Tutorials

See ROS Wiki Tutorials for more details.

Source Tutorials

Not currently indexed.

Package Dependencies

System Dependencies

Name
cmake
doxygen

Dependant Packages

No known dependants.

Launch files

No launch files found

Messages

No message files found.

Services

No service files found

Plugins

No plugins found.

Recent questions tagged mp2p_icp at Robotics Stack Exchange

No version for distro ardent. Known supported distros are highlighted in the buttons above.
No version for distro bouncy. Known supported distros are highlighted in the buttons above.
No version for distro crystal. Known supported distros are highlighted in the buttons above.
No version for distro eloquent. Known supported distros are highlighted in the buttons above.
No version for distro dashing. Known supported distros are highlighted in the buttons above.
No version for distro galactic. Known supported distros are highlighted in the buttons above.
No version for distro foxy. Known supported distros are highlighted in the buttons above.
No version for distro lunar. Known supported distros are highlighted in the buttons above.
No version for distro jade. Known supported distros are highlighted in the buttons above.
No version for distro indigo. Known supported distros are highlighted in the buttons above.
No version for distro hydro. Known supported distros are highlighted in the buttons above.
No version for distro kinetic. Known supported distros are highlighted in the buttons above.
No version for distro melodic. Known supported distros are highlighted in the buttons above.