Implementation of a LiDAR-based SLAM pipeline

Return to Carano Antonio's personal page

The internship will cover the integration and operation of a software pipeline for SLAM based on LiDAR and/or 3D cameras. The work will include the incremental part, followed by the management of the pose-graph, the detection and validation of loop closures, as well as the optimization of the map and trajectory after each closure. In addition, the challenge of identifying incorrect loop closures will be addressed. A significant part of the work will involve practical testing in outdoor environments, both on-road and off-road, to assess the effectiveness of the pipeline.

 

Step 1: Odometry and Keyframe Generation

The robot is equipped with 3D sensors such as LiDAR or RGB-D cameras, which continuously acquire representations of the environment in the form of point clouds. A point cloud is a set of 3D points, each with spatial coordinates (x, y, z), describing the geometry of surrounding objects.
Between two successive acquisitions, a rigid transformation is estimated, consisting of rotation and translation, which represents the relative displacement of the robot.
Keyframes are selected, that is particularly representative scans, typically every N meters or when you observe a significant change in the scene.

Step 2: Place Recognition

Location recognition is used to determine whether the robot is passing through an area which it has previously explored. This step is crucial to enable loop closures.
Each keyframe is transformed into an embedding. An embedding can be a vector or synthetic image that describes the shape and spatial structure of the observed scene.
The embeddings are saved in a database, each associated with the keyframe from which it was generated. When a new keyframe is acquired, the system compares its embedding with existing ones. If the similarity is high, it is assumed that the robot is revisiting a place already mapped and a possible loop closure is generated.

Step 3: Point Cloud Registration

Once the system has identified a potential loop closure, it is necessary to verify it.
This is done by recording point clouds, a process that consists of aligning two 3D scans.
The two point clouds associated to keyframes are considered: the one just acquired and the one already stored, corresponding to the recognized place. The system looks for a rigid transformation that aligns these two point clouds as precisely as possible. If the alignment is successful, that is the error between the two point clouds is low, it confirms that the two keyframes represent the same place.