Implement NDTMapRepresentation
Description
Necessary classes and functionality for an NDT map representation is implemented. The map converts a map pointcloud into a grid where each cell corresponds a normal distribution of points. The map object wraps the existing voxel_grid
and spatial_hash
structures for fast lookup.
Notes for Reviewer
-
MR includes few fixups for correctly compiling code in the other newly introduced localization related packages. Though for this MR the actually relevant files are
ndt_map
andndt_representations
-
NDTVoxelMap
inherits avoxel_grid
that wraps aspatial_hash
to avoid copying data, voxel_grid iterators are contained in the spatial hash. -
Covariance computation for each cell is done after the pointcloud is added to the voxel grid and it finalizes the map creation. Incremental covariance update isn't implemented, hence adding new points after a voxel covariance computation is done, resets the covariance state of the voxel.
Checklist
-
Documentation was updated
Closes #138 (closed)