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