The simultaneous localization and mapping (SLAM) problem in robotics and artificial intelligence (AI) is the ability of an autonomous robot to map out its environment, whilst simultaneously keeping track of its position and movements through its surroundings. The robot starts from an unknown location and attempts to accurately localise itself and the objects around it. Various solutions for solving this problem involve the GraphSLAM, EKF SLAM, ICP SLAM and FastSLAM algorithms.
This project has explored the above-mentioned four SLAM algorithms by first analysing how they work theoretically and comparing their benefits and drawbacks. The next step was to perform practical algorithm simulations using the Python language and a Raspberry Pi 3 B+ computer for processing and comparing each algorithm. We compare these to results in previous literature, with particular attention to speed, efficiency, and accuracy. It was observed that all but FastSLAM were consistent with the findings of other researchers, this algorithm being slower than the other three.
Once the four algorithms were duly tested, the next stage was to develop a practical application of a SLAM algorithm specially devised for a mobile robot as part of the project.
The robot was built with the Elegoo Smart Robot Car Kit V4.0, an Arduino Uno as an input/output subsystem, and the Raspberry Pi 3 B+ for the processing of the data received. The robot was fitted with an ultrasonic sensor to detect the various obstacles set around it (see Figure 1) and an accelerometer/gyroscope to measure its orientation.
The solution was tested using various environments, different obstacle configurations and robot starting points. When the robot stopped at a corner, a map of the environment indicating the obstacles, along with the localised robot position (Figure 2) was duly collected. These results were then compared to previous literature to validate their consistency.
Figure 1. The robot encountering obstacle and looking to the right
Figure 2. Output of the SLAM algorithm adopted in this project
Student: Gabriel Borg
Supervisor: Prof. Matthew Montebello