<aside> đź’ˇ

This document describes the multiple parameters of the internal local map used in config: SLAM and config: Relocalization (in local mapping).

</aside>


Example YAML

map_local:
		# [optional, default=0.5(m)] Linear distance to the last added frame for triggering map update
		d_update: 0.5
		# [optional, default=200.0(m)] Pruning radius of the map
		d_prune: 200.0
		# [optional, default=30] Number of neighbors used to compute map normals
		normals_knn: 30
		# [optional, default=0.2(m)] Map voxel size
		resolution: 0.2

Explanation

d_update

To avoid updating the map at each new incoming frame (which would lead to higher processing time and map “pollution” by the dynamic objects), the internal SLAM map is updated only with a “spacing” distance (the value of this parameter) between frames, the d_update value.

Example of SLAM map with

Example of SLAM map with d_update = 10.0

Example of SLAM map with

Example of SLAM map with d_update = 0.1

One might have a fine d_update (typically 0.05) value when the sensors is subject to high dynamics and is moved in narrow places, such as indoors. Outdoors, it is recommended to have a d_update higher than 0.5 .

d_prune

As the map is regularly updated, it also regularly removes data that was inserted in it too far away from the current local position in the map, e.g. further than d_prune from the current position.

Given our current position $u_{curr}$, the pruning step will remove all map points $p_i$ such that

$$ \left\| u_{curr} - p_i\right\|2>d{prune} $$

knn_normals

Geometrical attributes are computed in the map. Among them, 3D normals are computed using a K-nearest neighbors method. knn_normals neighbors are searched and used to estimate the normals.

<aside> đź’ˇ

This parameters works together with the resolution . Indeed, when setting a finer map resolution, you might want to use more neighbors for estimating the normals to get more context, thus more accuracy in the estimation.

</aside>

Example of normals ( being mapped on  ) computed on a map with  and  . We can see that normals are sharp on curbs and window frames for instance.

Example of normals ((nx, ny, nz) being mapped on (r, g, b) ) computed on a map with resolution: 0.1 and knn_normals: 10 . We can see that normals are sharp on curbs and window frames for instance.