FYP Review Paper
FYP Review Paper
Abstract—In the realm of robotics and AI, the Simultaneous popular and researched aspects of modern-day robotics. This
Localization And Mapping (SLAM) problem pertains to enabling final year project deals with the localization and mapping
an autonomous robot to map its surroundings while maintaining of a mobile robot through the use of landmarks and an
awareness of its global position and movement during navigation.
This project delves into SLAM within the confines of a static occupancy grid which will serve as the environment in which
environment, examining four chosen algorithms: Graph-SLAM, the robot will operate. Circumstances such as these are used
EKF-SLAM, Fast-SLAM, and ICP-SLAM. The study involves in a variety of situations, such as USAR[10] in which mobile
both theoretical analysis and algorithmic comparisons, which robots would be deployed to find missing people or possibly
are drawn from previous research. Practical simulations are survivors following a catastrophic disaster. Part of localisation
employed to evaluate the algorithms based on speed, efficiency,
and accuracy. The results obtained are then compared with is also trajectory estimation of moving targets[12], and such
literature to test their consistency. The study culminates in the research is used in tracking and guiding of missile systems,
development of a practical SLAM algorithm for a mobile robot, implying that care must be taken to first localise the object
which draws inspiration from the investigated algorithms, and is before tracking its current trajectory and also predict its future
rigorously tested across diverse scenarios, followed by resource way-point. Moreover, such a problem can also be used for
analysis and different map configurations.
Index Terms—SLAM, Robot, Localisation, Simulations autonomous vehicles[3], which need to accurately determine
their position within an environment to better plan routes
I. I NTRODUCTION and avoid obstacles. With this method used so widely and
When a mobile robot is placed either in a known or so commonly in the field of robotics, it is justified to be
unknown environment, a question can be posed, as to what a very important subject for research and development to
is the current position of this mobile robot with respect to improve autonomous navigation and manoeuvrability through
the environment around it. This ultimately leads to the Simul- an environment.
taneous Localization And Mapping (SLAM) problem, which
was researched extensively due to the possibility of providing
a solution to truly autonomous mobile robot navigation and B. Aims & Objectives
traversal [1, 2, 3]. The SLAM process involves mapping out
the environment of the robot by moving through it, while
simultaneously attempting to localise itself with respect to This study aims at investigating the solutions to the prob-
what the robot observes. These observations can be done lem of SLAM when being applied to a mobile robot within
through various sensors that can exist onboard the mobile the confines of a static environment. To achieve this aim, we
robot, such as ultrasonic sensors [4], cameras [5], or even identified the following objectives:
LiDAR technology [6]. With different sensors being equipped,
several methods of solving the SLAM problem began being
researched and also applied in practical use [4, 5, 7, 8]. Such • O1: Investigate a number of SLAM techniques from
uses of this mapping method involve autonomous vehicles in various researchers by reviewing multiple algorithms,
city streets [3] and unmanned aerial drones or planes [9] in outlining how they work, their advantages and disadvan-
Search And Rescue operations [10] to find missing people in tages.
disastrous situations. • O2: Employ each of the SLAM algorithms considered
through the use of virtual simulations of the various
A. Motivation algorithms.
SLAM is a well-known problem when it comes to ma- • O3: Implement a practical application of SLAM on a
noeuvring mobile robots in either a known or an unknown mobile robot kit in a static environment by choosing con-
environment [11]. Many researchers try to find an efficient cepts from the SLAM algorithms simulated and choosing
technique for solving this problem, making it one of the most the best components to build and program the robot.
II. BACKGROUND AND L ITERATURE R EVIEW sonar measurements. A Triangulation Based Fusion algorithm
A. Background Research is then used to extract line and point features from corners and
walls, along with length and angle. These features are used at
1) Introduction to SLAM
the same time in an EKF-SLAM framework, which includes a
The SLAM problem deals with mapping out an envi- prediction stage and an update stage. The update is calculated
ronment by a mobile robot by moving through it, while by using the difference between the predicted observation and
simultaneously attempting to localise itself with respect to the actual observation from the camera and sensors. A map
what the robot observes. These observations can be done is then created using the floor plan of the environment and
through various sensors that can exist onboard the mobile works out the localised position of the mobile robot using
robot, such as ultrasonic sensors[4], cameras[5], or even object detection on that map. Ahn stated that this algorithm can
LiDAR technology[6]. With different sensors being equipped, resolve false associations of data coming from the ultrasonic
several methods of solving the SLAM problem began being sensor, while the camera reduces the number of landmarks
applied in practical use[4, 5, 7, 8]. needed for localization, making it more accurate. However, the
2) Hardware, Robotic Kit and Arduino camera can also slow down the algorithm because it will be
dealing with image processing, sacrificing speed for accuracy.
The robot solution consists of a kit made by the company Given the kit to investigate these algorithms, it would be a
ELEGOO and is their 4th version of a smart robot car very computationally expensive algorithm to implement.
with an integrated camera module[13]. It works using the
Arduino microprocessor, executes code through the Arduino 2) Graph-SLAM with Applications to Large-Scale Map-
IDE and using the proprietary Arduino programming language, ping Of Urban Structures.
and already comes with a complete package of pre-coded In 2006, Thrun et al. [17] represented the SLAM posterior
programs, such as obstacle avoidance and line tracking. The in a graph network. This network would represent the like-
ELEGOO robot kit described comes with various components lihood of the data in logarithmic form. The network would
that are used in this project to achieve the aim and objectives be reduced using variable elimination techniques, and finally
set. These are: solved using conventional optimisation methods such as a
• HC-SR04 Ultrasonic sensor: Measures the distance greedy algorithm, which is used for Data Association. We start
between the robot and obstacles directly in front of it by by extracting constraints from data and representing them in a
emitting ultrasonic sound waves and converts the reflected graph. This data can be in the form of robot motion, denoted
sound into an electrical signal. by xi , and map features mi which could be landmarks that
• Motors: The motors used in this project are single-axis the robot might encounter. This data can now be represented
DC gear motors, which are used to spin the wheels and using an information matrix. Finally, this matrix undergoes
move the robot around. variable elimination using factorization, which generates links
• MPU6050 Accel-gryo: This Micro Electro-Mechanical between the data and the features of the environment. The
system [14] consists of a three-axis three-axis gyroscope map would be created using the robot path and solving
used for measuring the robot orientation, crucial to the the previously obtained constraints in a globally consistent
localisation process. estimate. According to [18], this algorithm can process a large
3) Raspberry Pi area of mapping such as floor plans and large terrains due
to the matrix structure that can easily map the graph with
A Raspberry Pi[15] is also used in conjunction with the the robot position and landmark information. However, Graph
Arduino to aid in computational performance. The Raspberry SLAM does have a high computational cost since it takes into
Pi uses its operating system called ”Raspbian”, and can even account all the robot’s states and landmarks within the map,
be used as a standalone computer. Just like the Arduino, it and the cost is proportional to the map size [18].
contains a processor, memory, I/O ports to allow the connec-
tion of peripherals, and can also store data using an SD card, 3) Fast-SLAM
making it better than the Arduino’s volatile RAM . This Fast-SLAM approach, implemented in a research
B. Literature Review paper by Montemerlo [19], manages to reduce the SLAM
problem by using a modified particle filter to estimate the
1) EKF-SLAM using ultrasonic sensors and a stereo cam- posterior over the robot paths. Landmarks are also localised
era. and the robot path is estimated using a particle algorithm. Each
Ultrasonic sensors were used in conjunction with SLAM landmark is processed individually through the EKF, leading
algorithms to solve the localization problem. Saranya et al. to a significant increase in computational speed when com-
[16] built upon a form of SLAM called Distributed Particle pared to Graph-SLAM, while needing less memory storage
SLAM (DP-SLAM) while Ahn et al.[7] used a stereo camera to operate. This is shown in [18] through an evaluation and
to perform accurate SLAM with an EKF for the application of comparison of EKF, Fast-SLAM and Graph-SLAM. For the
an indoor environment. This Vision and Range sensor-SLAM robot to detect landmarks, Montemerlo uses the robot pose in
(VR-SLAM) method uses visual, point and line features from relation to the sensor reading from the landmark’s position
p(θk|st , zt , ut , nt ) and feeds it to the algorithm, where st Raspberry Pi and Arduino communication. This phase
represents the posterior of the landmark obtained by a particle is directly linked with objective O1.
at a time t. The algorithm would then use the EKF to update 2) The Simulation Phase: This involves the simulated
the position of the landmark based on new sensory infor- testing of the SLAM algorithms. This phase is directly
mation which overlaps the previous landmark. Finally, Data linked with objective O2.
Association occurs and the landmark information is placed 3) The Development Phase: This involves the practical
in the generated map at the specific location which directly application of SLAM on the mobile robotic kit. This
represents the actual position of the environment. Moreover, it phase is directly linked with objective O3.
would also need to determine whether it encountered the same A. Preparation Phase
landmark twice, and update accordingly to not allow incorrect
measurements to reflect the representation of the environment This project will make use of an Arduino chipset, used in
inside the map. various implementations described in previous literature [23]
for obstacle avoidance robots. However, the Arduino chipset
4) ICP-SLAM Algorithm for Fire Bird V for Mapping of does have a limited amount of processing power, as well as
an Indoor Environment working memory [24]. For this reason, we decided to pair the
This algorithm has been used in [20], in which the Fire Arduino with a Raspberry Pi 3 B+ chipset which has higher
Bird V robot UAV’s was used to traverse an indoor space computational power and more working memory [15]. Both
with rooms and corridors to create a map and visualise it. chipsets will be working inside the Elegoo Smart Robot Car
The robot was equipped with a LiDAR sensor to calculate Kit V4.0 [13], which is composed of a robotic car chassis, an
the spatial range between the sensor and the obstacles and ultrasonic sensor, and an accel-gyro component. The Arduino
walls. This laser measurement would also be used to map the would pass on data obtained by the sensors to the Raspberry
distance between the robot and the environment detected. This Pi via serial communication, where the latter would handle
algorithm is used as a scan-matching algorithm to determine the processing and visualisation of the data returned by the
the robot’s transformation between the two poses by matching SLAM algorithm.
the scans obtained from the sensors. ICP-SLAM implemented 1) Robotic Kit Limitations
by Shankar works under the assumption that every point found
in the first scan corresponds to its closest point found in the Two tests were conducted using the ultrasonic sensor to
second scan. It first obtains a laser scan projection, then Data test its performance. The first experiment was carried out to
Association to calculate the Euclidean distances between one identify the range of the ultrasonic sensor. The second test was
point and all the points obtained. Finally it executes Position aimed to obtain the field of view of the sensor. Both tests were
estimation, which involves estimating the parameters of the conducted using a school bag placed at different distances,
robot transformation (tx , ty and θ) by reducing the squared and repeated readings were taken to obtain consistent results.
error of the distance calculated in the previous step between These results can be found in Figure 1.
the two associated scans obtained.
C. Evaluation Metrics Used In Previous Literature.
These evaluation metrics below will be used for the valida-
tion of data coming from both the robot and the simulations.
• Speed Metric: This metric, previously used in [21], will
be used to evaluate how fast the robot manages to localise
itself based on the layout of the environment.
• Accuracy Metric: This metric, used in [22], will deal
with how accurately the robot managed to localise itself
when compared to the perceived and actual position that
the robot started from. Fig. 1. Graph showing the results obtained from the Sensor FOV test.
• Efficiency Metric: This metric is used to evaluate the
robot and algorithms’ efficiency when considering the B. Simulation Phase
computational resources of the Raspberry Pi and the
1) EKF-SLAM Simulation
Arduino throughout its execution.
This virtual robot started from an unknown spot and
III. M ETHODOLOGY moved throughout its environment. Throughout the algorithm
This chapter was split into three consecutive phases, with iteration, the robot would attempt to track its movement and
each phase appertaining to each objective described. These the positions of the obstacles placed within the environment.
phases are: After the robot finished its movement pattern through the grid,
1) The Preparation Phase: This involves the setting up a graph is outputted of the robot’s trajectory, along with the
of the robot kit, the sensors and the integration of the perceived positions of the obstacles, the ground truth, and the
Dead Reckoning path, which represents the path that the robot environment to replicate the simulations. The algorithm is split
takes without relying on external observations. into two sections. The first section contains the Arduino logic
2) Graph-SLAM Simulation necessary for the robot to explore, map and take decisions on
where to go in the environment based on the obstacle layout.
To test this simulated algorithm the virtual robot started The second section handles the processing and visualisation of
from an unknown spot, similar to how the EKF-SLAM started, the map by the Raspberry Pi. All the code used can be found
with the landmarks spread out on the map. The robot has to in [25].
traverse this map by making a loop in its trajectory, and upon
every step taken, it would measure to see if there were any 1) The Arduino Logic
landmarks in its proximity. The algorithm would repeatedly For the robot to keep track of its surroundings, a virtual
try and update the robot’s positioning, until at the end of 20x20 two-dimensional array was initialised with default 0
execution, a graph is outputted, comparing the ground truth values in memory. The size of the virtual grid was chosen
trajectory taken, the estimated trajectory computed by the so that the robot can spaciously and virtually mark cells. The
SLAM algorithm, and the Dead Reckoning path taken. robot starts with a predetermined position (10,10) in the virtual
3) Fast-SLAM Simulation 20x20 array, but it does not know its initial position inside
the physical 10x10 grid, since the process of discovering its
After following the same procedure as the previous al-
start and end point will be left entirely to the robot. The robot
gorithms tested, the virtual robot was instructed to move in
performs a scan to check the cells in front, to the right, and
an environment filled with obstacles. At each time step, the
to the left. It moves in increments of 30cm, marking cells
algorithm would attempt to use the landmarks as a method of
that are free with a value of 1 in the array and cells with
guidance, similar to anchor points, to calculate the trajectory of
obstacles with a value of 2. The resulting array represents the
the robot throughout its traversal. Furthermore, the algorithm
environment explored by the robot. This logic is adapted from
attempted to localise each of the landmarks in the environment.
the Graph-SLAM [17] algorithm creating a matrix to show
Conclusively, the simulation returned a graph that shows
the environment. The robot also favors unexplored cells and
the trajectory taken by the robot, the estimated trajectory
decides where to go based on its position upon encountering
computed by the Fast-SLAM algorithm, the Dead Reckoning
an obstacle in front of it. This logic was inspired by the
trajectory, each landmark’s true position, and the computed
Data Association process used in the Fast-SLAM algorithm in
estimated localised position of the landmarks by the algorithm.
[19]. The algorithm terminates after the robot has recognised
4) ICP-SLAM Simulation a corner. Finally, the robot will stop at an identified corner
For this SLAM algorithm simulation, the robot stood encountered, and then backtrack in both axes to calculate
stationary at the origin point (where x = 0 and y = 0) where the robot initially started from, obtaining not only the
of the two-dimension plane environment. The algorithm was current position but also the starting point in the 10x10 grid.
allowed to converge a total of ten times to generate ten 2) The Raspberry Pi Logic
different environments with ten different formations of the
five points that were to be localised by the algorithm. The After the robot managed to map its environment before
algorithm started by initialising points that were the furthest returning its localised position, the 20x20 virtual grid is
away from the actual previous points set before the algorithm sent from the Arduino micro-controller to the Raspberry Pi
was set to execute. As it iterated, it got closer to the points computer, where a residing script will be manually executed,
scattered throughout the plane, before finally converging as which reads the serial data input, process it into a Data-frame
it determined the actual localised x and y positioning of with integer numbers, and converts it to a heat-map which
the points. The algorithm’s execution time, RAM, and CPU shows the layout of the mapped environment in the 20x20
resource utilisation were documented and tabulated along with Data-frame. The Pi is accessed from a laptop remotely through
the three other SLAM algorithms. Remote Desktop, which allows this system to be completely
autonomous onboard the robot.
C. Development Phase
IV. R ESULTS A ND E VALUATION
We used an occupancy grid to test the practical SLAM
A. Evaluating the Algorithm Simulations
algorithm. This was inspired from [17] and [16], where the
landmarks and environmental details extracted are stored and In terms of Speed, the ICP-SLAM algorithm was the
represented in a map, which is then used as a reference to the fastest, averaging a time of 1.48 minutes. This is consistent
robot’s environment. We decided on having a closed cardboard with the performance show in [26]. Moreover, when looking
grid of 10x10 cells, where each cell would be 30x30cm in at the algorithms’ resource expenditure in terms of Efficiency,
size. The size of the grid was determined as to not be too we observed that the ICP-SLAM algorithm took less RAM
computationally expensive to process, while also being large to operate, averaging at 50.0%. Finally, we observed that the
enough to produce significant results. The size of each cell was Fast-SLAM algorithm took the least CPU resources to operate,
determined relative to the robot’s size of 24cm. Five cardboard being 1.50%. This is confirmed to be consistent with [17].
obstacles with a height of over 20cm were placed in the However it also took the most time to execute, exceeding 15
minutes and directly contradicting the research done in [27]. V. C ONCLUSIONS A ND F UTURE W ORK
The results obtained from all the simulations are visualised in In conclusion, we successfully achieved all of our objec-
Figure 2. tives and reached our final goal of implementing SLAM on a
mobile robot in a static environment. We research four SLAM
algorithms, the Fast-SLAM, Graph-SLAM, EKF-SLAM, and
ICP-SLAM, we investigate how they work using previous
literature and then implement simulations for every algorithm.
After tabulating and comparing the results, we observe that
the Fast-SLAM algorithm that took the most time to run (See
2). We then develop our algorithm using key principles taken
from those researched and tested it for a mobile robot within an
environment populated with static obstacles. Lastly, we collect
the results which can be found in Figure 4, and compare
them with those taken from [17] and [28] to verify and
Fig. 2. Graph showing the results obtained from the simulations. validate the algorithm’s consistency and performance. Future
work on this system involves using more accurate components
B. Evaluating the Practical SLAM Algorithm like switching the MPU6050 accel-gryo component with a
In terms of accuracy, the algorithm performs well in less noisy component such as the MinIMU-9 accel-gryo[29],
identifying obstacles while also mapping their locations within replacing the ultrasonic sensor with a 360◦ Lidar sensor,
the grid based on the robot’s orientation. Moreover, the robot the addition of wheel encoders which allow the robot to
can accurately determine its end position by keeping track accurately track its movement and the inclusion of a larger
of its x and y values and backtracking to deduce its original environment with dynamic obstacles.
position. In terms of efficiency, the algorithm becomes more R EFERENCES
memory intensive on the Arduino as the distance that the robot [1] T. Bailey and H. 1 Durrant-Whyte. “Simultaneous lo-
travels increases, as can be seen in Figure 3, however it also calization and mapping (SLAM): part I”. In: IEEE
resulted in low CPU cost on the Arduino. Robotics Automation Magazine 13 (Nov. 2022),
pp. 108–117. DOI: 10.1109/mra.2006.1678144. URL:
https://people.eecs.berkeley.edu/ ∼pabbeel/cs287-fa09/
readings/Durrant- Whyte Bailey SLAM- tutorial- I.pdf
(visited on 11/17/2022).
[2] T. Bailey and H. 2 Durrant-Whyte. “Simultaneous Lo-
calization and Mapping (SLAM): Part II”. In: IEEE
Robotics Automation Magazine 13 (Nov. 2022),
pp. 108–117. DOI: 10.1109/mra.2006.1678144. URL:
http://robotics.caltech.edu/ ∼jwb/courses/ME132/final/
slamtute2.pdf (visited on 12/29/2019).
[3] Kai Lim and Thomas Bräunl. A REVIEW OF VISUAL
Fig. 3. Graph showing the results obtained from all grid corners.
ODOMETRY METHODS AND ITS APPLICATIONS
FOR AUTONOMOUS DRIVING a PREPRINT. 2020.
URL : https://arxiv.org/pdf/2009.09193.pdf (visited on
11/17/2022).
[4] Mattias Jonsson. MASTER’S THESIS 2020 SLAM in
Low Speed Scenarios Using Ultrasonic Sensors. 2020.
URL : https : / / lup . lub . lu . se / luur / download ? func =
downloadFile&recordOId=9024868&fileOId=9024869
(visited on 11/17/2022).
[5] Xinke Deng et al. Feature-constrained Active Visual
SLAM for Mobile Robot Navigation. 2018. URL: https:
/ / zzx9636 . github. io / files / ICRA 2018 . pdf (visited on
11/17/2022).
[6] D Vivet. “A Review of Visual-LiDAR Fusion
Based Simultaneous Localization and Mapping”.
In: (Apr. 2020). DOI: 10 . 3390 / s20072068. URL:
https : / / www . researchgate . net / publication /
Fig. 4. Practical SLAM algorithm heat-map output. 340510035 A Review of Visual - LiDAR Fusion
based Simultaneous Localization and Mapping [18] Talha Takleh Omar Takleh et al. “A Brief Sur-
(visited on 11/17/2022). vey on SLAM Methods in Autonomous Vehicle”.
[7] SungHwan Ahn et al., eds. A Practical Approach for In: International Journal of Engineering Technol-
EKF-SLAM in an Indoor environment: Fusing Ultra- ogy 7 (Nov. 2018), p. 38. DOI: 10 . 14419 / ijet .
sonic Sensors and Stereo Camera. www.proquest.com, v7i4 . 27 . 22477. URL: https : / / www . researchgate .
Apr. 2008. URL: https://www.proquest.com/docview/ net / publication / 329873195 A Brief Survey on
879445288 (visited on 11/17/2022). SLAM Methods in Autonomous Vehicle (visited on
[8] Bor-Woei Kuo et al. “A Light-and-Fast SLAM Algo- 12/07/2022).
rithm for Robots in Indoor Environments Using Line [19] Michael Montemerlo et al. FastSLAM: a Factored So-
Segment Map”. In: Journal of Robotics 2011 (2011), lution to the Simultaneous Localization and Mapping
pp. 1–12. DOI: 10 . 1155 / 2011 / 257852. (Visited on Problem. 2002. URL: https : / / www. aaai . org / Papers /
11/17/2022). AAAI/2002/AAAI02-089.pdf (visited on 11/17/2022).
[9] Jiaxin Li et al., eds. Real-time Simultaneous [20] Atsushi Sakai. Iterative Closest Point Matching.
Localization and Mapping for UAV: a Survey. Research GitHub, May 2022. URL: https : / / github . com /
Gate, Oct. 2016. URL: https : / / www . researchgate . AtsushiSakai / PythonRobotics / tree / master / docs /
net / profile / Mo - Shan / publication / 353327069 Real - modules/slam/iterative closest point matching (visited
time Simultaneous Localization and Mapping for on 02/27/2023).
UAV A Survey / links / 60f49b9bfb568a7098bd1741 / [21] Michael A. Goodrich and Dan R. Olsen. “Metrics for
Real - time - Simultaneous - Localization - and - Mapping - Evaluating Human-Robot Interactions”. In: 2003.
for-UAV-A-Survey.pdf (visited on 11/17/2022). [22] Timothy A. Zimmerman. “Metrics and Key Perfor-
[10] N Ruangpayoongsak, H Roth, and Jan Chudoba, eds. mance Indicators for Robotic Cybersecurity Perfor-
Mobile Robots for Search and Rescue. 2005. URL: https: mance Analysis”. In: 2017.
//www.researchgate.net/publication/4170870 Mobile [23] Kolapo Sulaimon et al. “Development of an Arduino-
robots for search and rescue (visited on 11/17/2022). based obstacle avoidance robotic system for an un-
[11] R. Siegwart and I. Nourbakhsh, eds. Mobile Robot manned vehicle”. In: ARPN Journal of Engineering and
Localization. URL: https : / / www. cs . cmu . edu / ∼rasc / Applied Sciences 13 (Feb. 2018), p. 886.
Download/AMRobots5.pdf (visited on 11/17/2022). [24] Arduino. Arduino Memory Guide — Arduino Documen-
[12] Jin-Hwa Ju et al., eds. Trajectory Estimation of a Mov- tation. Ed. by José Bagur and Taddy Chung. Arduino
ing Object Using Kohonen Networks. Aug. 2004. URL: Memory Guide, Feb. 2023. URL: https://docs.arduino.
https://koreascience.kr/article/CFKO200433239343937. cc / learn / programming / memory - guide (visited on
pdf (visited on 11/17/2022). 02/09/2023).
[13] Elegoo. ELEGOO UNO R3 Project Smart Robot Car [25] gabrielborg20. gabrielborg20/Simultaneous-
Kit V 4.0 (with Camera). ELEGOO Official. URL: https: Localization-And-Mapping-For-a-Mobile-Robot-In-
//www.elegoo.com/products/elegoo- smart- robot- car- A-Static-Environment-FYP-Submission-Code. GitHub,
kit-v-4-0 (visited on 11/17/2022). May 2023. URL: https : / / github . com / gabrielborg20 /
[14] CiferTech. What Is MPU6050? Arduino Project Hub, Simultaneous - Localization - And - Mapping - For - a -
Oct. 2019. URL: https://create.arduino.cc/projecthub/ Mobile - Robot - In - A - Static - Environment - FYP -
CiferTech / what - is - mpu6050 - b3b178 (visited on Submission-Code.git (visited on 05/24/2023).
11/17/2022). [26] Hao Bai. ICP Algorithm: Theory, Practice And Its
[15] Raspberry Pi (Trading) Ltd. Buy a Raspberry Pi 3 SLAM-oriented Taxonomy. June 2022. URL: https : / /
Model B+. Raspberry Pi 3 Model B+. URL: https : / / arxiv.org/ftp/arxiv/papers/2206/2206.06435.pdf (visited
www.raspberrypi.com/products/raspberry-pi-3-model- on 02/28/2023).
b-plus/ (visited on 02/09/2023). [27] Tin Lai. “A Review on Visual-SLAM: Advancements
[16] C. Saranya. “Occupancy Grid Based Path Planning from Geometric Modelling to Learning-Based Semantic
and Terrain Mapping Scheme for Autonomous Mobile Scene Understanding Using Multi-Modal Sensor Fu-
Robots”. In: (2015). Ed. by Manju Unnikrishnan, S. sion”. In: Sensors 22 (Sept. 2022), p. 7265. DOI: 10.
Akbar Ali, and D. S. Sheela, pp. 1053–1061. URL: https: 3390/s22197265.
//serialsjournals.com/abstract/36101 25.pdf (visited on [28] Fethi Demim et al. “Simultaneous localization, map-
11/17/2022). ping, and path planning for unmanned vehicle using
[17] Sebastian Thrun and Michael Montemerlo. “The Graph optimal control”. In: Advances in Mechanical Engineer-
SLAM Algorithm with Applications to Large-Scale ing 10 (Jan. 2018), p. 168781401773665. DOI: 10.1177/
Mapping of Urban Structures”. In: The International 1687814017736653.
Journal of Robotics Research 25 (May 2006), pp. 403– [29] Pololu. Pololu - MinIMU-9 v5 Gyro, Accelerometer,
429. DOI: 10 . 1177 / 0278364906065387. (Visited on and Compass (LSM6DS33 and LIS3MDL Carrier).
11/17/2022). www.pololu.com. URL: https : / / www . pololu . com /
product/2738 (visited on 04/09/2023).