Exwayz SLAM algorithm performs a processing pipeline.
Pre processing : aims at reducing the number of points input to the registration algorithm (ICP), mainly discarding troublesome or redundant point on the raw data.
ICP : The ICP (Iterative Closest Point) is the registration algorithm used to compute the relative position of the upcoming frame relatively to the local map being built.
Map update : Exwayz SLAM maintains and updates an internal local map which is used for the upcoming frame registration. This map in an internal data structure and has nothing to do with the point cloud produced at the end of the full mapping pipeline.
<aside> 🧠The parameters here described are only processing parameters. The pre-processing and the map parameter will not affect the written frames or the merged point cloud density ****
</aside>
Below is a sample SLAM configuration file.
__profile_name__: "sample"
odometry:
# Processing parameters
#--------------------------------------------------------------------------#
# Preprocessing applied to incoming data
pre_post_process:
num_threads: 2
# row - col subsampling
num_rows : 32
num_cols : 512
keep_strategy : farthest
# range filtering
range_min: 2.0
range_max: 150.0
# crop
center: [0.0, 0.0, 0.0]
size: [5.0, 5.0, 5.0]
# grid subsampling
grid_resolution: 0.1
# ICP used for localization
icp:
num_threads: 2
num_iter: 10
d_max: 0.2
enable_motion_compensation: true
# Map parameters
map:
# Minimum distance since last map update to trigger a new update : the
# smaller, the more often the local map will be updated
d_update: 0.5
# All points further than d_prune from the sensor are cleared from the local map
d_prune: 200.0
# Number of neighbors used to compute map geometrical attributes
normals_knn: 30
# Loacal map resolution in m
resolution: 0.1
# Enable the removal of mobile objects for not adding them to the map
remove_mobile_objects: false
# Checks to ensure relocalization sanity
#--------------------------------------------------------------------------#
checks:
# Used discard incoming frames that would have too few points (less than input_rejection_ratio * previous_frame)
input_rejection_ratio: 0.7
# Output parameters
#--------------------------------------------------------------------------#
outputs:
# Output point cloud mode
# 0 : no output pointcloud
# 1 : process (subsampled) point cloud
# 2 : full frame
output_pc_mode: 1
pre_post_process
icp
map