<aside> 💡
This document describes the multiple parameters of the pre-processing step used in config: SLAM and config: Relocalization.
</aside>
pre_process:
# [optional, default=2] Number of threads used for pre-processing
num_threads: 2
# [optional, default=32] Number of rows for the spherical subsampling
num_rows : 32
# [optional, default=512] Number of cols for the spherical subsampling
num_cols : 512
# [optional, default=closest] Keep strategy for each pixel
# * closest: keep only the point with lowest range in each pixel
# * farthest: keep only the point with highest range in each pixel
# * both: keep both points with lowest and highest range in each pixel
keep_strategy : farthest
# [optional, default=0.2(m)] Minimum range of a point to be preserved in subsampling
range_min: 2.0
# [optional, default=250.0(m)] Maximum range of a point to be preserved in subsampling
range_max: 150.0
# [optional, default=[0.0, 0.0, 0.0](m)] Center of the exclusion axis-aligned box
center: [0.0, 0.0, 0.0]
# [optional, default=[0.0, 0.0, 0.0](m)] Size of the exclusion axis-aligned box
size: [5.0, 5.0, 5.0]
# [optional, default=0.1(m)] Resolution of the final voxel subsampling
grid_resolution: 0.1
<aside> ⚠️ The chosen parameters used to produce the images below are not relevant for real processing, their values were selected only to demonstrate the effect of each filter.
</aside>
num_threads
The pre-processing is accelerated by parallelizing some operations through multi-threading. This parameter is the maximum number of threads used for the calculation.
# [optional, default=32] Number of rows for the spherical subsampling
num_rows : 32
# [optional, default=512] Number of cols for the spherical subsampling
num_cols : 512
# [optional, default=closest] Keep strategy for each pixel
# * closest: keep only the point with lowest range in each pixel
# * farthest: keep only the point with highest range in each pixel
# * both: keep both points with lowest and highest range in each pixel
keep_strategy : farthest
The first pre-processing step consists in casting the input point cloud inside a spherical image with parametric number or rows num_rows
and columns num_cols
. This reduces the information in each “angular” pixel by keeping a single point (the farthest if the keep_strategy
is set to farthest
for instance, but we could keep the closest
or both
) which is redundant because of the high accuracy of recent sensors.
Full frame without any pre-processing
Frame after sphercial subsampling with num_rows = 16
and num_cols = 512
<aside>
💡 The number of points in the resulting sub-sampled point cloud is capped by
num_rows
* num_cols
</aside>
# [optional, default=0.2(m)] Minimum range of a point to be preserved in subsampling
range_min: 2.0
# [optional, default=250.0(m)] Maximum range of a point to be preserved in subsampling
range_max: 150.0
After performing the spherical subsampling, the points at a greater range than range_max
and lower range than range_min
are discarded. This is useful to:
range_min
range_max