10915 FACTA UNIVERSITATIS Series: Mechanical Engineering https://doi.org/10.22190/FUME230218071P © 2024 by University of Niš, Serbia | Creative Commons License: CC BY-NC-ND Original scientific paper CONTROL OF A WIRE TENSIONING SYSTEM WITH FORCE PREDICTION USING ARTIFICIAL NEURAL NETWORKS Vukašin Pavlović1, Miša Tomić1, Sergiu-Dan Stan2, Milan Banić1, Miloš Simonović1, Miloš Milošević1 1University of Niš, Faculty of Mechanical Engineering, Niš, Serbia 2Technical University of Cluj-Napoca, Faculty of Automotive, Mechatronics and Mechanical Engineering, Cluj-Napoca, Romania Abstract. In addition to the textile industry, the wire winding/unwinding process is used in various fields such as mechanical engineering, electronics, mechatronics and for military purposes. The wire that is wound/unwound has a combination of rotational and translation motion, thus exhibiting a complicated behavior. Improper wire tensioning leads to problems such as entangling. One of the most crucial factors that affect the wire winding/unwinding process is the regulation of the wire tension. This paper briefly describes the developed wire tensioning system that can measure and control wire tension during the winding/unwinding process. Various data was gathered based on the implemented proportional-integral (PI) control and sensors. This data was then used to build a neural network in order to predict force in the wire during the winding/unwinding process. Key words: Wire, Tension control, Winding/unwinding, Neural network 1. INTRODUCTION Wire tensioning systems can be found in various mechatronic systems as their main sub-systems. These systems are present in machines in the textile industry [1], cranes [2], papermaking [3], medicine [4], etc. Depending on the purpose, wire tensioning systems can be generally divided into two groups: constant tension control and variable tension control [5], where constant tension control is used in fields such as printing and papermaking, while variable tension control can be used in fields where wire can be wound/unwound on a winch or reel. Many researchers have dealt with the design and control of such systems, and this paper will provide an overview of some of these investigations. Received: December 18, 2023 / Accepted April 23, 2024 Corresponding author: Vukašin Pavlović University of Niš, Faculty of Mechanical Engineering, Aleksandra Medvedeva 14, Niš, Serbia E-mail: vukasin.pavlovic@masfak.ni.ac.rs 2 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ Kevac et al. [6] obtained the general mathematical model of a cable winding/unwinding system for several different constructions, where theoretical and simulation results were confirmed through the experimental analysis of one novel construction of the cable winding/unwinding system. Kevac et al. [7] analyzed the phenomenon of non-linear and pulsed nature of the dynamic process of rope winding/unwinding on a winch. Kang et al. [8] developed a device for cable unwinding in order to follow the cable unwinding behavior under various unwinding conditions. Xu et al. [9] proposed a novel tension control method for a winding machine, which can regulate the fiber tension and transport speed of the winding process by governing the outputs of three different driven rollers in three levels. Rodriguez et al. [10] introduced a reinforcement learning approach to optimize the wire profile generated by an automated wire winding machine. Hultman et al. [11] presented a production method using industrial robots for automation of cable winding of electric machine stators, where the concept was validated through computer simulations and full-scale winding experiments. Mousavi et al. [12] proposed a method to optimize the non-negative wire tensions, through the cables which were constrained based on the workspace conditions, in the redundant cable-driven parallel robots. The effectiveness of the proposed method was verified through an experimental study on the RoboCab cable robot. Mishra et al. [13] proposed an unsupervised neural network algorithm to perform real-time forward geometrico-static analysis of an under-constrained suspended cable-driven parallel robot in a suspended configuration under the action of gravity. Li et al. [14] designed, developed and evaluated an innovative miniaturized, low friction, back-drivable reducing mechanism for haptic or surgical robot applications, while Francis et al. [15] proposed a cable driven robotic palpation system, where an indirect method based on cable tension observation was used to estimate the contact force. Imamura et al. [16] designed a filament winding machine that can measure and control winding tension. For this purpose, two kinds of winding tension control were proposed and implemented using a proportional–integral–derivative PID or I-PD control. Sheng-le et al. [17] introduced a closed-loop tension control system with the programmable logic controller (PLC). Lu et al. [18] developed an iterative learning sliding mode control scheme for wire tension control, while a disturbance observer was employed to estimate the wire tension for the implementation of sensorless wire tension control. Abjabi et al. [19] designed a sliding-mode (SM) feedback linearization control system for a multi-motor web-winding system without a tension sensor. Knittel et al. [20] presented multivariable H∞ robust control with two degrees of freedom and gain scheduling applied to winding systems, where a global controller, a semidecentralized controller, and a semidecentralized controller with overlapping were considered. Wang et al. [21] researched and manufactured a closed-loop tension control system, where a neural network was applied to the system to overcome the shortcomings of the traditional proportional–integral–derivative control method. Zhang et al. [22] presented a new control scheme for the winding process of stranded wire helical springs on a computer numerical control (CNC) machine to keep the wire tension uniform using the proportion integral neural network, while Zhu et al. [23] proposed a neural network-based cable tension prediction model for tension control of the traction winch cable in order to substitute the traditional control that can make the cable too slack or too tight. Control of a Wire Tensioning System with Force Prediction Using Artificial Neural Networks 3 This paper presents the design and control of a wire tensioning system as the sub- assembly of the larger self-propelled herding and pasturing system called RoboShepherd. The main function of the developed system is to maintain a certain tension in the wire by winding or unwinding the wire, as well as to enable different formations of the Roboshepherd system. The presented wire tensioning system consists of a force sensor located on one robotic unit and winding reels located on the other robotic unit. The wire is wound or unwound from the winding reels, whereby the sensor detects and sends information about the force in the wire to the control system. The developed control algorithm monitors the force in the wire and tightens or loosens the wire as needed. During the initial tests, it was determined that the traditional closed loop control used to control the wire tensioning system worked well when the robotic units did not move. However, during the movement of robotic units on terrains of different relief, the control algorithm showed certain shortcomings, i.e., it was not always able to respond in an adequate way in real time, for example, insufficient or excessive tension in the wire might occur. In order to overcome these shortcomings, an artificial neural network was built to predict the force in the wire which occurs during the winding/unwinding process of the wire. The paper’s objectives and main contributions are as follows: 1) The development of a wire tensioning system as a subassembly of the robotic unit, 2) The investigation of the behaviour of the developed wire tensioning system during different movement scenarios of the Roboshepherd system, 3) During tests, various data were gathered and later used to train the artificial neural network, 4) The paper provides the results from the test of the traditional control of the wire tensioning system and from the simulation of the proposed artificial neural network for force prediction. The rest of the paper is organized as follows. Section 2 presents a brief description of the RoboShepherd system, and the design and closed-loop control of the wire tensioning system. The experiment in which the closed-loop control was tested is described in Section 3, the design and results of the artificial neural network for predicting the force in the wire are presented in Section 4, and the conclusion is given in Section 5. 2. DESIGN AND CLOSED-LOOP CONTROL OF THE WIRE TENSIONING SYSTEM RoboShepherd is a swarm robotic system which acts as a movable polygonal electric fence that surrounds livestock animals in a field or forces them to move along the predefined path. The system consists of a minimum of four robotic units (RU), i.e., four movable pillars interconnected by wires that form the electric fence as shown in Fig. 1. A pulsed electric current is sent along the wire from an energizer located on the robotic units. This fence serves to keep the animals away from the fence since when an animal touches the wire fence, the electric circuit closes, creating a short, safe, electric shock leading to the animal movement away from the fence. In the same way, the fence serves to protect the animals from the predators that can approach the other side of the electric fence. 4 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ Fig. 1 RoboShepherd System - Robotic units interconnected by wires Each robotic unit consists of a vertical pillar, a movable platform on which the vertical pillar rests, a wire tensioning system and a force sensor. The wire tensioning system (Fig. 2a) subassembly consists of a motor-reducer on which the upper plate and the lower plate are connected via a screw connection and on which linear ball bushings are mounted, through which a linear guide, carrying the entire subassembly, passes. The motor-reducer has a double side output shaft. Winding reels are mounted on the top and bottom sides of the shaft. Rotating the electric motor on which the winding reels are mounted, allows wire winding or unwinding, depending on whether the two adjacent robotic units are at a distance or approaching each other. One end of the wire is attached to one robotic unit via a force sensor (Fig. 2b), while the other end of the wire is wound on a winding reel located on the motor shaft of the other robot unit. In this way the units are serially interconnected and form a closed loop. A schematic representation of the wire tensioning system is given in Fig. 3. Fig. 2 Subassembly of the wire tensioning system (a) and force sensor (b) Control of a Wire Tensioning System with Force Prediction Using Artificial Neural Networks 5 Fig. 3 Schematic representation of the wire tensioning system The tension control system is defined as a closed loop. The force in the wire is measured using a force sensor, and the gathered value is compared with the desired value. The difference between the desired and the current tension force determines an error. This error is sent to a PI controller. The PI controller was selected because it best suited the dynamic behaviour of the wire tensioning system. Due to the inertia of the wire tensioning system, there was almost no chance for the appearance of the excessive force during the winding process and therefore it was not necessary to use a derivative component during control. Based on the calculated error, the PI controller generated the pulse-width modulation (PWM) signal for controlling the voltage of the motor and therefore controlled the motor velocity. The turning of the motor caused the winding reels to turn, which made the wire to tighten or loosen (Fig. 4). In this way the force in the wire was controlled. During the experiments, it was determined that the PI controller was able to bring the system to a setpoint. The setpoint or desired tension force was determined experimentally and it depends on the distance between the robotic units and the acceptable sag which occurs due to the weight of the wire itself. In the movement scenarios described in this paper the desired tension force was set to 80 N. Fig. 4 Block diagram of the control of the wire tensioning system 3. EXPERIMENT To test the closed loop control of the wire tensioning system, an experiment was performed near the city of Niš, Serbia. For this purpose, four robotic units (RU1, RU2, RU3 and RU4) were placed on location and this was the initial position of the robotic units (Fig. 5). After that, the robotic units were interconnected with two rows of wires, where each row had one pair of wires (positive and negative wire). In the initial position, the distance between the two front robots and the distance between the two back robots (RU1- 6 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ RU2 and RU3-RU4) was the same and was approximately 34 m. The distance between the two left side robots (RU2-RU3) was the same as the distance between the two right side robots (RU4-RU1) and was around 28 m. During the experiment different movement scenarios of the robotic units were carried out. Some of the most important scenarios were where one or more robotic units moved, with the distance between them changing, such as: - All robotic units move with a change in the initial distance between them, - Three robotic units move while one waits, - Two robotic units move while two wait, - One robotic unit moves while others wait. Also tested were the scenarios where all robotic units move in the same direction maintaining the distance or some robots move while others wait. This paper presents the scenario in which all robotic units moved. Robotic unit 1 (RU1) started from the initial point RS1 and moved to RS1', robotic unit 2 (RU2) started from the initial point RS2 and moved to RS2', etc. In this scenario the back robotic units (RU3 and RU4) maintained the distance between them, the right side robots (RU4 and RU1) slightly increased the distance, while the distance between the front robotic units (RU1 and RU2) decreased during movement. The distance between the left side robotic units (RU2 and RU3) increased significantly as illustrated in Fig. 5. Fig. 5 Initial position and movement scenario Control of a Wire Tensioning System with Force Prediction Using Artificial Neural Networks 7 In order to minimize the error of position of the robotic units below 1 cm, all robotic units were equipped with real time kinematics (RTK) global positioning system (GPS) trackers with long range communication radio (LoRa). These RTK GPS trackers take in the signals from the global navigation satellite systems along with a correction stream via LoRa and calculate the location of the robotic units within 1 cm accuracy in real time. Also, all robotic units were equipped with force sensors to measure the forces in wires and current sensors to measure the current of the motor which winds/unwinds wires. Each robotic unit had a personal computer equipped with appropriate hardware (to which sensors were connected) and software developed in the LabVIEW environment for control. These personal computers were used for data acquisition, control of the movement of the robotic units and control of the wire tensioning systems during the experiments. Data from the GPS trackers, current and force sensors were recorded for further investigation. During these field tests of the Roboshepherd system several problems with the wire tensioning system occurred. Fig. 6 shows the variation in tension force in the pair of wires between RU1 and RU2 during the movement of the robotic units in the selected scenario. These variations happened for several reasons. The wires used for the fence were viscoelastic, therefore, they did not act the same during the winding/unwinding processes. Another factor that contributed to the force variations was the long time needed for the information from the force sensor to travel to the controller. This led to the slow response of the control of the wire tensioning system, which further led to the inability to maintain the wires in the desired constant tension, resulting in wire loosening. To try to overcome these problems, an artificial neural network for predicting the force in wires was built using the data gathered from different sensors mounted on the robotic units, as well as some data measured during the control of the wire tensioning system. Fig. 6 Measured total force in pair of wires 4. ARTIFICIAL NEURAL NETWORK FOR PREDICTION OF FORCE IN WIRE In this study, a standard backpropagation artificial neural network (ANN) was used. The architecture of an ANN typically consists of three layers: an input layer, hidden layer, and output layer [24]. The ANN created for this study had four layers: an input layer, two hidden layers and an output layer. The variables used in the input network layer were the 8 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ pulse width modulation (PWM) signal, which was used to control the motor velocity, the current in the motor measured via a current sensor, and the distance between two robotic units. The distance between the robotic units was calculated based on the position data gathered from GPS. Each robotic unit was equipped with GPS. The distance between two robots was calculated using a haversine algorithm. The haversine algorithm calculates the distance using latitude and longitude. This algorithm aims to find the nearest straight line distance from two given locations [25]. The variable in the network output layer was the total force in a pair of wires measured on the force sensor. To create the proposed ANN, some data gathered from the above-mentioned scenario where all robotic units moved was used. Four sets, each consisting of 523 pieces of data that were used for the creation of the ANN, were related to the two front robotic units RU1 and RU2 during the movement. The initial distance between robots RU1-RU2 was 34 m, while the final distance was 14 m. During the test, robotic unit 1 traveled 20.8 m from position RS1 to RS1', while robotic unit 2 traveled 32.7 m from position RS2 to RS2'. The measured total force in the wires ranged from 11 N to 105 N, while the maximum motor current was 15 A. The ANN model was created using the MATLAB (The Math Works, Inc. USA) software package. The input layer of the ANN included 3 input neurons, while the output layer included one output neuron. The two hidden layers had 20 hidden neurons each as shown in Fig. 7. The trial-and-error approach was used for determining the number of hidden layers and hidden neurons in these layers. Fig. 7 Artificial neural network with 3 input variables, 2 hidden layers with 20 neurons each, and 1 output variable Control of a Wire Tensioning System with Force Prediction Using Artificial Neural Networks 9 The ANN was trained by using the backpropagation Levenberg–Marquardt algorithm, due to its high accuracy and fast convergence. During the training, the mean squared error was used for performance measuring. The dataset consisted of 4 variables where each variable had 523 samples. These variables were the PWM signal, the distance between the robotic units, the motor current, and the total force in the wires. In order to use these variables in the ANN the dataset was divided into two matrices. One matrix consisted of the PWM signal, the distance and the motor current values, and was called “inputs”. The second matrix had the values of the total force in the wires and was called “targets”. When the matrices were imported, training, validation and testing datasets for neural network were randomly selected. Using the “inputs” and “targets” data, the ANN calculated “outputs”. 367 pieces of data were used as a training sample for network training. The network was adjusted according to the errors during training. For measuring network generalization, a validation sample of 78 pieces of data was used. When the generalization stopped improving, network training was halted. During the ANN training process, although a larger number of iterations was expected, it was observed that fewer iterations were sufficient to train the ANN (Fig. 8). In the end, to verify the network performance, 78 pieces of data were used as an independent testing sample. Fig. 8 Mean squared error during the ANN training process for force prediction In order to measure network performance, a correlation coefficient r was used and the obtained results are shown in Fig. 9. This coefficient shows how well the network was trained by matching the predicted “outputs” with real “targets”. The higher value of r means the better network performance, where r = 1 corresponds to the perfectly matching relationships between “targets” and “outputs”. As can be observed in Fig. 9, during the training of the ANN the correlation coefficient was 0.98693, which means that the network was trained very well. The trained network was tested on the testing dataset where r was 10 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ 0.97527, while the total network performance of the trained ANN was 0.97981, which was recognized as a very satisfying result. Fig. 9 The results of network performance for training, validation and test dataset Table 1 provides a comparison between several metrics. Mean squared error (MSE), root mean squared error (RMSE) and mean absolute error (MAE) are calculated for the desired tension force and measured force using a force sensor, as well as the desired tension force and the outputs given by the trained ANN. As can be observed, the ANN gives a slightly smaller error thus giving a better result. Table 1 Comparison between measured and ANN predicted force MSE (N2) RMSE (N) MAE (N) Measured force 1472.66 38.375 32.49 ANN predicted force 1444.18 38.002 32.37 Control of a Wire Tensioning System with Force Prediction Using Artificial Neural Networks 11 Having the obtained results in mind, it was concluded that the ANN can be used for the prediction of the force in the wire with high accuracy. Therefore, the new control of the wire tensioning system where the force sensor can be substituted with the ANN was proposed and is graphically presented in Fig. 10. The implementation and assessment of performance of this new control algorithm will be the subject in further research. Fig. 10 Proposed control of the wire tensioning system 5. CONCLUSION This paper briefly described the design of the wire tensioning system used as a sub- system for the swarm robotic system called RoboShepherd. The main task of the developed system was to maintain the optimal tension in the wire by rotating the winding reels that wind or unwind the wire during the utilization of the Roboshepherd system. In order to obtain relevant data for the design of this system, tests were carried out at different locations that included environments with different relief and vegetation. The problem of wire tensioning control in the dynamic system when the robotic units move was considered. Using classical control methods for wire tension led to certain shortcomings and did not provide satisfactory results due to the viscoelasticity of the wires and the long system response time. The solution to this problem was found in the application of modern methods and algorithms from the domain of artificial intelligence. Therefore, the use of artificial neural networks for force prediction was investigated. Based on the different data gathered from the test including a movement scenario where all robotic units moved, the ANN was created. The created ANN showed high correlation between the target data – total force in pairs of wires (measured force) used for network training and the data gathered from the simulation of the artificial neural network (predicted force). MSE, RMSE and MAE were also calculated for a comparison between the measured and the ANN predicted force. The obtained results are in favour of using the ANN as a possible substitution for the traditional control. Based on these results, a new type of control of the wire tensioning system using artificial neural networks is proposed. Acknowledgement This paper is a part of the research financially supported by the Innovation fund of Republic of Serbia and Coming Computer Engineering through the project RoboShepherd, and the Ministry of Education, Science and Technological Development of the Republic of Serbia (Contract No. 451-03-9/2021-14/200109) REFERENCES 1. Fazal, M.Z., Khan, S., Abbas, M.A., Nawab, Y., Younis, S., 2021, Machine learning approach for prediction of crimp in cotton woven fabrics, Technical Gazette, 28(1), pp. 88-95. 12 V. PAVLOVIĆ, M. TOMIĆ, S-D. STAN, M. BANIĆ, M. SIMONOVIĆ, M. MILOŠEVIĆ 2. Ham, S-H., Roh, M-I., Lee, H., Ha, S., 2015, Multibody dynamic analysis of a heavy load suspended by a floating crane with constraint-based wire rope, Ocean Engineering, 109, pp. 145-160. 3. Kaurov, P.V., Kokushin, N.N., Tikhonov, A.A., 2011, Mathematical modeling for paper stock drainage at hydrofoils of wire part of paper making machine, International Journal of Industrial Engineering and Management, 2(1), pp. 27-31. 4. Blanc, L., Delchambre, A., Lambert, P., 2017, Flexible medical devices: Review of controllable stiffness solutions, Actuators, 6(3), 23. 5. Wang, S., He, F., 2018, Control technology and strategy of tension control system, Proc. Thirtieth Chinese Control and Decision Conference CCDC 2018, Shenyang, pp. 2620-2625. 6. Kevac, Lj., Filipović, M., 2019, Mathematical model of cable winding/unwinding system, Journal of Mechanics, 35(1), pp. 131–143. 7. Kevac, Lj., Filipović, M., Rakić, A., 2017, Dynamics of the process of the rope winding (unwinding) on the winch, Applied Mathematical Modelling, 48, pp. 821-843. 8. Kang, J-H., Kim, K-W., Lee, J-W., Cho, Y-J., Jang, J-S., 2021, Development of a test method and experimental study on cable unwinding, Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science, 235(15), pp. 2653-2667. 9. Xu, X-M., Zhang, W-X., Ding, X-L., Zhang, M., Wei, S-H., 2018, Design and analysis of a novel tension control method for winding machine, Chinese Journal of Mechanical Engineering, 31, 101. 10. Rodriguez, A., Vrancx, P., Nowe, A., Hostens, E., 2013, Model-free learning of wire winding control, Proc. Ninth Asian Control Conference ASCC 2013, Istanbul, pp. 1-6. 11. Hultman, E., Leijon, M., 2013, Utilizing cable winding and industrial robots to facilitate the manufacturing of electric machines, Robotics and Computer-Integrated Manufacturing, 29(1), pp. 246-256. 12. Mousavi, M.R., Ghanbari, M., Moosavian, S.A.A., Zarafshan, P., 2022, Rapid and safe wire tension distribution scheme for redundant cable-driven parallel manipulators, Robotica, 40(7), pp. 2395-2408. 13. Mishra, U.A., Caro, S., 2022, Forward kinematics for suspended under-actuated cable-driven parallel robots with elastic cables: a neural network approach, Journal of Mechanisms and Robotics 14(4), 041008. 14. Li, H., Liu, W., Wang, K., Kawashima, K., Magid, E., 2018, A cable-pulley transmission mechanism for surgical robot with backdrivable capability, Robotics and Computer-Integrated Manufacturing, 49, pp. 328-334. 15. Francis, C., Sato, T., Okuyama, T., Tanaka, M., 2022, A cable driven robotic palpation system with contact force sensing based on cable tension observation, The International Journal of Medical Robotics and Computer Assisted Surgery, 18(6), e2435. 16. Imamura, T., Kuroiwa, T., Terashima, K., Takemoto, H., 1999, Design and tension control of filament winding system, Proc. International Conference on Systems, Man and Cybernetics ICSMC 1999, Tokyo, pp. 660-665. 17. Sheng-le, R., Hua, L., Yong-zhang, W., Hong-ya, F., 2007, Development of PLC-based tension control system, Chinese Journal of Aeronautics, 20(3), pp. 266-271. 18. Lu, J-S., Cheng, M-Y., Su, K-H., Tsai, M-C., 2018, Wire tension control of an automatic motor winding machine — an iterative learning sliding mode control approach, Robotics and Computer–Integrated Manufacturing, 50, pp. 50-62. 19. Abjadi, N.R., Soltani, J., Askari, J., Arab Markadeh, G.R., 2009, Nonlinear sliding-mode control of a multi- motor web-winding system without tension sensor, IET Control Theory & Applications, 3(4), pp. 419-427. 20. Knittel, D., Laroche, E., Gigan, D., Koc, H., 2003, Tension control for winding systems with two-degrees- of-freedom H∞ controllers, IEEE Transactions on Industry Applications, 39(1), pp. 113-120. 21. Wang, C., Wang, Y., Yang, R., Lu, H., 2004, Research on precision tension control system based on neural network, IEEE Transactions on Industrial Electronics, 51(2), pp. 381-386. 22. Zhang, Q., Wang, S., Zhang, A., Zhou, J., Liu, Q., 2017, Improved PI neural network-based tension control for stranded wire helical springs manufacturing, Control Engineering Practice, 67, pp. 31-42. 23. Zhu, P., Zhang, Q., Zhao, Z., Yang, B., 2023, BP fuzzy neural network PID based constant tension control of traction winch, Measurement and Control, 56(3-4), pp. 857-873. 24. Galić, D., Stojanović, Z., Čajić, E., 2024, Application of neural networks and machine learning in image recognition, Technical Gazette, 31(1), pp. 316-323. 25. Prasetya, D.A., Nguyen, P.T., Faizullin, R., Iswanto, I., Armay, E.F., 2020, Resolving the shortest path problem using the haversine algorithm, Journal of Critical Reviews, 7(1), pp. 62-64.