Laboratori d'Automatització i Robòtica, Universitat de Lleida
Inicio   Equipo    Publicaciones    TFG/TFM/Tesis    Proyectos    SLAMICP-library    Contacto
SLAMICP Library ( Free and Open Source )
Description of the SLAMICP library
The SLAMICP library is a Free and Open Source library that performs Iterative Closest Point matching for mobile robot Self-Localization and Map creation based on LiDAR data.

The general assumption is that the position of a mobile robot (or a mobile platform) in an given environment is defined by the position of the LiDAR.

The Iterative Closest Point (ICP) is a matching technique used to determine the transformation matrix that minimizes the distance between two point clouds: a Map (M) and a LiDAR scan (T).

Example calls to the SLAMICP library using a MATLAB wrapper ( includded in the library as a precompiled MEX file for Windows®):

>> [ Pi, niter, md, Oindx, Ocoords, tTi, Mi, Ni ] = SLAMICP( Mi-1, Ti, inlierthreshold, method, maxiter, Pi-1, Ni-1, Outlierthreshold );

>> [ Pi ] = SLAMICP( M, Ti, inlierthreshold, method, maxiter, Pi-1, N, Outlierthreshold );

The parameters used in the calls must be all defined as 'double' and are:
Representation of example input ( Mi-1, Ti ) and output ( tTi, Mi ) 2D point clouds:


Based on the LIBICP library
The SLAMICP library is based on LIBICP (LIBrary for Iterative Closest Point fitting) which is a cross-platfrom C++ library with MATLAB wrappers for fitting 2d or 3d point clouds with respect to each other. Currently it implements the SVD-based point-to-point algorithm as well as the linearized point-to-plane algorithm. It also supports outlier rejection and is accelerated by the use of k-d trees as well as a coarse matching stage using only a subset of all points.
Compared with LIBICP, the SLAMICP library returns the number of iterations, the mean inlier distance, the outliers, the transformed point cloud and the updated map.

The original LIBICP library is available in: https://www.cvlibs.net/software/libicp/

When compiled, the MATLAB wrapper of the LIBICP library can be called using:

>> [ Trfit ] = icpMEX( M, Ti, Trinitial_guess, inlierthreshold, method );

Where Tr = ( R( θ ), t ) is the transformation matrix that must be applied to T to match M.


↧  SLAMICP Library V5.3 (optimized for method = 'point_to_plane')

↧  Matlab SLAMICP 2D Map application example (scans from Hokuyo UTM-30LX 2D LiDAR)

↧  Matlab SLAMICP 3D Map application example (scans from Livox Mid-360 3D LiDAR)

Additional packages required to compile the SLAMICP and LIBICP library from scratch
  • Boost libraries - Used by the k-d tree search
  • CMake - Requiered to control the software compilation

  • SLAMICP library License
    Free and Open Source. The code of the SLAMICP library is published under the GNU General Public License.

    ↧  PCMerge V1.2 (additional performance function)

    ↧  ComputeNormals V1.2 (additional performance function)


    Authors
    Eduard Clotet & Jordi Palacín

    Application images & videos
    • Mobile robot trajectory obtained matching 2D LIDAR data with a 2D Map:


    • Creation of a 3D Map with the SLAMICP library

    • Creation of a 2D Map with the SLAMICP library

    • Path Planning for a Multi-story mobile robot: https://youtu.be/IjQ5V-fAVek

    • Multi-story mobile robot navigation based on 2D LIDAR data and a 2D Map: https://youtu.be/q7XyZmrdGHk

    Inicio   Equipo    Publicaciones    TFG/TFM/Tesis    Proyectos    SLAMICP-library    Contacto

    © Laboratori de Robòtica, Universitat de Lleida