Introduction

Increasing demands for location-based services require accurate wireless indoor location information. Location-based services include indoor navigation for people or robots, personnel, asset tracking, guiding blind people, factory automation, workplace safety, locating patients in a hospital, and location-based advertising [1]. Additionally, such services are becoming essential in various other fields such as mobile commerce, parcel or vehicle tracking, discovering the nearest shops or restaurants, and social networking [2]. Moreover, analyses of personnel and asset tracking and collecting movement data have been limited.

With the increasing prevalence of global positioning system (GPS) applications, satellite signals have had a significant impact on outdoor positioning systems owing to their high accuracy. However, in indoor environments, indoor location and navigation remain unsolved problems. Because of such factors as multipath effects and Wi-Fi signal interference, satellite signals become unreliable for positioning indoors. Consequently, GPS-based indoor positioning techniques still face major obstacles, including the unavailability or degradation of GPS signals, real-world indoor environments, and low-grade devices [3, 4]. Given such circumstances, various positioning techniques have been proposed. According to [5], positioning techniques are classified into two categories, infrastructure-based and infrastructure-free technologies. An infrastructure-based technology requires pre-installation and configuration of specialized hardware in the environment. For instance, these include radio-frequency identification (RFID) [6], ultrasound [7], Bluetooth [8], ultra-wideband beacons (UWB) [9], ZigBee [10], infrared [11], and pseudolites [12]. Infrastructure-free technologies are typically based on Wi-Fi [13,14,15,16], magnetic fields, motion sensors [(inertial measurement units (IMUs)], and vision techniques [17]. Recently, there are many other technologies like audio signal based localization [18], magnetic field-based localization [19]. Compare to RF methods, audio signal based localization or acoustic localization is more accurate and cheaper [20]. However, acoustic localization requires microphones and speakers which are available in every smart mobile device to combine with Bluetooth low energy (BLE) and Wi-Fi-based approaches. In this system, BLE or Wi-Fi can be utilized for rough location estimation and acoustic signals are used for computing the precise location [20].

Wi-Fi based indoor localization systems have become a prominent tool for indoor positioning for various reasons. First, nearly all smartphones have a built-in Wi-Fi module. Second, Wi-Fi access points are installed ubiquitously, and a Wi-Fi based indoor localization system has suitable cost and accessibility [2, 21]. Third, Wi-Fi does not require additional special-purpose hardware. Location estimation can be easily estimated by measuring the received signal strength (RSS) values from a Wi-Fi access point. Finally, the bandwidth of Wi-Fi systems has increased significantly to meet the requirements of high data rates [1].

Alternatively, Wi-Fi indoor positioning techniques are classified into two categories, signal propagation models [17, 32] and location fingerprinting [29]. A comparison of signal propagation models and the location fingerprinting method is presented in Table 1. In a signal propagation model, an indoor positioning system using the time-of arrival (ToA) and time difference of arrival (TDoA) suffers from multipath fading on several paths [5] while measuring the distance to the station from mobile devices. Alternatively, the location can be estimated using the angles of the signals received from the mobile user and the Wi-Fi access point; this includes the angle of arrival (AoA) and angle of departure (AoD) techniques. Most systems based on AoA measure the relative angles between signals coming from multiple anchor nodes to estimate the position requiring the antenna directions of both the mobile user and Wi-Fi access point to be known. By measuring the time-of-flight of the signal traveling from the sender to the user and back, the round-trip time-of-flight (RToF) of the signal is used to measure a location. However, this requires the exact delay and processing time. In location fingerprinting, a database containing measurements of the wireless signals at various reference points in a wireless LAN coverage area is established first. Indoor positioning systems using location fingerprinting compare the wireless signal measurements with the reference data [29]. However, this method requires database generation and maintenance. Compared with location fingerprinting, implementing signal propagation is simple. However, signal propagation (as a result of such factors as penetration losses through walls and floors) and multipath propagation are still very complicated [29]. For this reason, a novel Wi-Fi-based indoor positioning system was proposed to achieve a better performance.

Table 1 Comparisons of signal propagation model and location fingerprinting method

In addition, in the era of computing paradigms, cloudlet is known as the technology at the edge of the Internet for deploying mobile cloud services. The aim of using cloudlets, typically accessed through Wi-Fi connections, is to bring cloud technologies closer to the end-user and provide resource- and latency-sensitive applications [33]. Moreover, cloudlets are small-scale data center that are designed to provide cloud computing applications quickly to mobile devices such as smartphones, tablets, and wearable devices within close geographical proximity. This places cloudlets in the following three-tier hierarchy: mobile device, cloudlet, and remote cloud, as shown in Fig. 1. Based on the mobile user’s request, one or more custom virtual machines can be instantiated immediately on the cloudlet for remote execution of applications [34]. The advantages of cloudlets include the following:

  1. 1.

    Through Wi-Fi located on a one-hop wireless network [35], a cloudlet system efficiently provides a powerful computing resource and speeds up mobile application executions.

  2. 2.

    The real-time interactive response can access the cloudlet through a one-hop high-bandwidth wireless to reduce the transmission delay [35, 36].

  3. 3.

    Utilizing mobile device connectivity to nearby cloud servers enables a cloudlet to overcome the distant wide-area network latency and cellular energy consumption problems [37].

  4. 4.

    Using cloudlets is more optimized and efficient, enhancing the user experience when computation-intensive tasks offload to nearby cloud servers in a cloudlet-based cloud computing system [38].

  5. 5.

    Cloudlets leverage the computational capacity of connected mobile devices [39].

Fig. 1
figure 1

Cloudlet-based mobile cloud computing system

Cloudlets deployed one wireless hop away from mobile devices can process the computationally intensive tasks offloaded from devices efficiently [33]. Therefore, cloudlets are typically set up at a public place, such as a shopping center, theater, office building, or assembly room, to enable convenient access for mobile devices [35]. Compared to the baseline Wi-Fi indoor positioning system, a combination of a cloudlet-based cloud computing system, indoor positioning, and navigation, considered as a single system, is practical. To achieve that, we designed a model of a cloudlet-based mobile cloud computing system enabling Wi-Fi indoor positioning and navigation, as shown in Fig. 2. The system consists of a self-driving cart, a small-box data center (cloudlet) available in a wireless access point, and a core cloud.

Fig. 2
figure 2

Model of a cloudlet-based mobile cloud computing system enabling Wi-Fi indoor positioning and navigation

Finally, implementing a cloudlet-based cloud computing system enabling Wi-Fi indoor positioning and navigation is possible for the following reasons. First, because a cloudlet supports resource- and latency-sensitive applications [34], it can provide location-based services such as indoor navigation for people or robots, personnel, asset tracking, guiding blind people, factory automation, workplace safety, locating patients in a hospital, and location-based advertising [1]. Second, a cloudlet provides not only the reference access point locations but also all location information of devices in the network to find the route path for an indoor cart. Moreover, the moving edge cloud in an indoor cart can determine the distances between it and the reference access points using a received signal strength indication (RSSI)-based method. Similarly, [40], our system can estimate the location of the indoor cart as the location of the reference access point that is located closest to the indoor cart.

The contributions of this paper are as follows:

  1. 1.

    We propose a novel cloudlet-based cloud computing system enabling Wi-Fi indoor positioning and navigation. Moreover, with the rapid growth of Internet of Things (IoT) applications and their deployments on cloud computing, our proposed system brings the cloud closer to IoT devices for providing resource- and latency-sensitive applications.

  2. 2.

    We define a core cloud, cloudlet, and moving edge cloud. The core cloud is used to store all of the object information, such as global position and status, while the cloudlet stores all specific information for the objects. The moving edge cloud is embedded to a task-driven indoor mobile robot, referred here to as a self-driving indoor cart. The moving edge cloud determines the route path and makes movement decisions.

  3. 3.

    We propose a movement decision algorithm for a self-driving cart. A movement decision is made based on measurements of the RSS at a moving edge cloud, which is embedded in the self-driving cart. Consequently, the navigation of the self-driving indoor cart is adjusted in accordance with its current position and the position coordinates of the access points.

  4. 4.

    In real-world indoor environments, such as a one-floor scenario, although our system uses only one access point to estimate the location of an indoor cart, as contrasted with standard methods using at least three access points, the experimental results for our system are superior to those of the standard methods in terms of the accuracy of navigation.

  5. 5.

    Our proposals were tested using a self-driving indoor cart and real-world indoor environment on the third floor of the Computer Science and Engineering building at Kyung Hee University, Korea.

Related works

Wi-Fi survey-based indoor positioning techniques are generally divided into two types, trilateration and triangulation algorithms [17, 43, 44], as shown in Figs. 3 and 4. A trilateration algorithm incorporates ToA, TDoA, RSS, and RToF techniques, while a triangulation algorithm incorporates AoA and AoD techniques. Trilateration algorithms measure the distance from multiple known access points, while triangulation algorithms compute the angles relative to multiple known access points. A comparison of trilateration and triangulation algorithms is provided in Table 2. The trilateration algorithm calculates the exact location of a user, given the exact location of access points and distances from each access point to the user.

Fig. 3
figure 3

Positioning based on trilateration algorithms

Fig. 4
figure 4

Positioning based on triangulation algorithms

Table 2 Wi-Fi based indoor positioning techniques

As shown in Table 2, the issues of Wi-Fi-based indoor positioning techniques for use in a real-world indoor environment are as follows.

  1. 1.

    It is difficult to determine a line-of-sight channel between the transmitter and the receiver.

  2. 2.

    A complex radio propagation model must be considered with the multipath effect in indoor environments.

  3. 3.

    Triangulation algorithms show poor accuracy of the estimated location because the multipath affects both the time and the angle of an arrival signal.

A typical indoor self-driving cart consists of four modules: perception, localization, navigation, and motion [45]. One important module known as localization is a key prerequisite for success in navigating the robot, which requires exact identification of current localization [46]. Moreover, the indoor self-driving cart must know which movements to make until it reaches the goal position when the localization is tested. This has led to extensive study of the localization and navigation of mobile robots. We summarize a comparison between our solution and other indoor positioning systems in Table 3.

Table 3 Comparisons of localization and navigation system of indoor mobile robots

Cordeiro et al. [47] estimates and records graphically the absolute position of the robot based on odometry. A robot can autonomously move following the desired trajectory while avoiding detected obstacles based on depth images. In addition to odometry, Bessa et al. [48] use computational vision in omnidirectional images to estimate the localization of a robot.

Zhang et al. [49] use QR codes as landmarks to provide global pose references. The QR codes must be placed on the ceiling. A robot uses a camera at the top to read these QR codes more quickly. Thus, the localization of the robot is estimated based on the positional relationship between the camera and the QR codes when QR codes can be recognized. Moreover, a robot uses a laser ranger finder to avoid collisions. The authors also use the Dijkstra algorithm to plan a global path and the dynamic window approach to plan local paths.

Mota et al. [50] estimate the position of a robot in a map represented by the incidence matrix of a Petri net (PN), and the use of PN dynamics as the cognition system by evaluating the use of RFID technology. First, cards with RFID technology were placed at each intersection of the pathways of a structured environment (labyrinth). Second, a robot was equipped with an RFID reader on its bottom. A robot moves until it passes over cards with RFID. At each intersection, the robot performs actions, such as turning right or left according to the map defined in its algorithm. Next, it goes straight to the next card. Moreover, the authors use a black line to connect each card to its neighbor cards. The robot is equipped with three infrared sensors to detect and follow these lines.

In the mobile edge computing environment, a multi-modal framework for indoor localization tasks was proposed in [51]. In this system, machine learning models are used for processing RSS based indoor localization tasks. Nevertheless, the presence of unstable factors that affect RSS is a major drawback. It will be failed to repeat the same performance in practical situations.

On the other hand, smartphone-based indoor localization and navigation systems rely on RSSI from BLE beacons and inbuilt sensors of smartphones for localizing the user in indoor area, such as Bluetooth receivers, accelerometers, and barometers [52]. Lee et al. [53] use the RSSI of the signal received from Bluetooth beacons to estimate location with the help of the trilateration algorithm. Satan et al. [54] use Bluetooth beacon-based method to trace back the wayfinding. To remove the noise signal, the positioning algorithm [55] estimates the distance between client and beacon, based on Bluetooth RSSI values and log-distance path loss model. In [55], Dijkstra’s shortest path algorithm is used to find the shortest route for navigation. Yu et al. [56] propose a dead reckoning algorithm that combines Bluetooth and multiple sensors to improve localization accuracy. This algorithm includes multisensor-based position estimation, Bluetooth model-based position estimation, and Kalman filter fusion. However, Bluetooth beacon-based indoor localization and navigation systems require for client-based solutions and have a relatively small range (up to 30m). Especially, Sadowski et al. [57] compare between Wi-Fi, BLE, ZigBee, and the long-range wide area network (LoRaWAN) for use in an indoor localization system in terms of localization accuracy and power consumption when IoT devices are used. They proved Wi-Fi to be the most accurate [57].

To reduce the negative effects arising from the propagation model, we propose a new system structure that combines a cloudlet-based cloud computing system and indoor positioning and navigation techniques using an RSS-based method. Our system can estimate the position accurately and navigate the task-driven, self-driving indoor cart, as discussed in the next section.

System structure

For integration of the Wi-Fi access point with the cloud network, we propose a three-tier architecture for a self-driving indoor cart, as shown in Fig. 5. In the first tier, a core cloud connects with cloudlets that are placed on the corridors. The core cloud stores all information collected from cloudlets. In the second tier, the cloudlets manage local information such as the specific position and status. Finally, the third tier is the moving edge cloud, which is placed in the self-driving indoor cart. Based on the information requested from the cloudlet or core cloud, the moving edge cloud calculates the route path for reaching a destination point. The route path includes the names of the access points (APs) that the cart will be moved past. Note that the route path provides the optimized shortest distance from the starting point to the destination point.

Fig. 5
figure 5

Three-tier cloud computing architecture for a self-driving indoor cart

In the moving edge cloud, a movement decision is made when the self-driving indoor cart moves within the AP’s coverage. There are three alternatives depending on the route path: go straight (Fig. 6a), turn left (Fig. 6c), or turn right (Fig. 6b). Note that the AP must be placed in corridor intersections to make the movement decision. In real-world indoor environments, such as a one-floor scenario, APs are deployed at corridor ceilings, especially at intersections. The movement decision is based on the previous position, current AP position, and next position, as shown in Fig. 6. Additionally, positioning estimates are used for correcting the movement of the self-driving indoor cart due to avoid the obstacle. For example, the cart moves from position A (3, 4) to position B (10, 4) in the deployed grid map, and it estimates that the movement time is 10 s. However, the cart avoided something in the corridors; hence, 10 s later, it is not at point B (10, 4), and we assume it is at point C. These A, B, and C points are shown in Fig. 7b. The cart has to estimate its current position and move to point B (10, 4) using positioning estimation.

Fig. 6
figure 6

The movement decision strategies for a self-driving indoor cart

Fig. 7
figure 7

Movement from AP1 to AP2 strategies

In this paper, we propose a new movement decision algorithm based on comparing the current position (\(x_{t,cart}, y_{t,cart}\)) and target position (\(x_{target}, y_{target}\)). As described in Fig. 6, the difference between two values \(x_{t,cart}\) and \(x_{target}\) are used to make go-ahead decision by comparing it with the threshold, \(\delta \). Additionally, the turn left and right decisions are based on the difference between the y axis values, (\(y_{t,cart}, y_{target}\)) comparing with the threshold, \(\delta \). The self-driving cart can reach the target position by updating the current position (\(x_{t,cart}, y_{t,cart}\)), as shown in Fig. 8. In the indoor environment, we divide the distance from the beginning point to the destination point into segments according to the respective AP locations. The self-driving cart will move among APs in accordance with movement decisions based on its current position and AP positions (known as target positions). Note that the threshold, \(\delta \), is determined based on the stable segment of Wi-Fi coverage, as described in the next section.

Fig. 8
figure 8

Movement decision strategies for a self-driving indoor cart

Path planning using Dijkstra’s algorithm

According to [58], Dijkstra’s algorithm is typically used in the indoor environment because it is easy to implement for various environments. Dijkstra’s algorithm is a special form of dynamic programming and a breadth-first-search algorithm for finding the shortest paths from a single source vertex to all other vertices [59]. The shortest path between two vertices is defined as a path with the shortest length, called link-distance. In Dijkstra’s algorithm, the distance from u to v, denoted by w(uv), is the length of a path if there is a path from u to v. Otherwise, it is \(\infty \).

In this paper, the core cloud stores all information of each AP in the network including its position and neighboring AP positions. Note that the core cloud only stores AP’s information if it has a cloudlet. When the indoor cart requests network information to the core cloud, the core cloud will forward all information to it. Based on collected information, the indoor cart will use Dijkstra’s algorithm to find the shortest path between its current position and target position through AP positions. A generalization of Dijkstra’s algorithm can be found in [58]. Dijkstra’s algorithm operation is summarized as follows.

  1. 1.

    Initially, we assign Node(A) = 0 as the weight of the initial node and \(w(x) = \infty \) to all other nodes, where x represents the other nodes.

  2. 2.

    Search x node for which it has the smallest temporary value of w(x). If \(w(x) = \infty \) or there are no temporary nodes, the operation will stop the algorithm. The node x is now labeled as permanent and as the current node, meaning parent of x and w(x) will stay fixed.

  3. 3.

    For each node adjacent to x labeled y which are also temporary, the operation compares and updates as follows. If \(w(x) +Wxy < w(y)\), then w(y) is updated to \(w(x) +Wxy\), where W is the cost of the adjacent node. Then, the operation assigns y to have parent x.

  4. 4.

    The operation repeats the process from 2 until the shortest path is found.

Figure 9 illustrates the example from the Dijkstra-based scenario. There are APs that include the cloudlet system and their information is stored in a core cloud. The indoor cart requests prof. Huh’s room information to the core cloud through the closest AP. Once the core cloud receives the requested packet for an indoor cart, it will send network information to the cart. Be collecting AP information and prof. Huh’s room position, the indoor cart will draw the graph from its current position to prof. Huh’s room position, as shown in Fig. 10. Using a generalization of Dijkstra’s algorithm, we can find the shortest path label from robot to room according to Table 4 following the above-mentioned Dijkstra’s algorithm operation.

Fig. 9
figure 9

A snap-shot of the Dijkstra’s algorithm example

Fig. 10
figure 10

A graph of the Dijkstra’s algorithm example

Table 4 Finding shortest path label from robot to room

Measuring principles and cloud-based algorithms

Measuring principles

To calculate the distance from the transmitter to the receiver based on the IEEE 802.11 standard, the RSSI is used to measure the relative signal strength, typically measured in decibel milliwatts (dBm) or milliWatts (mW). However, there are no specific formulas to compute accurate distances owing to the impacts of real-world indoor environments and manufacturer implementations [60]. According to [57, 61,62,63,64,65] and using a simple path-loss propagation model [66], the RSSI distance measurement is given as

$$\begin{aligned} RSSI=-10 \gamma log_{10}(d/d_0)+ \Delta \end{aligned}$$
(1)

where \(\gamma \) is the path loss exponent depending on the environment, d is the distance between the mobile device and a reference access point, and \(\Delta \) is a variable accounting for the variation of the mean, often referred to as shadow fading [64, 65, 67]. Moreover, \(d_0\) usually is given as 1 m.

We now consider a single access point and a cart in a simple scenario to measure the RSSI, as shown in Fig. 11. It is clear that environment dependent path loss affects distance measurements in a real environment. One such major issue is that the signal propagation methods in the RSSI-based indoor positioning system are not stable because of the effect of path loss when there are many obstacles, such as the wall, building, weather, or interference. Therefore, many approaches have been proposed to eliminate interference and the effect of path loss, as well as to reduce the positioning error; these techniques include Kalman Filters [68, 69], Extended Kalman Filter-Based Integration [2, 70], weighted K-nearest neighbor [71], and back propagation neural networks optimized by particle swarm optimization [65] algorithms. Herein, we consider a Wi-Fi-based indoor positioning algorithm using the Kalman Filter method, because the location error is controlled within 1.2 m after the Kalman Filter improves the location accuracy of indoor robots effectively [72]. Different RSSI measurements at specific distances are shown in Fig. 12 over 1 m (Fig. 12a), 3 m (Fig. 12b), 6 m (Fig. 12), and 9 m (Fig. 12d) in one closed room.

Fig. 11
figure 11

Simple scenario including a self-driving indoor cart and single access point

Fig. 12
figure 12

RSSI measurements with and without Kalman Filter

Based on Fig. 12, we obtain the following conclusions:

  1. 1.

    Without the filter, the RSSI measurements change over time, increasing the positioning error. When the distance increases, the performance of the RSSI measurements is not stable.

  2. 2.

    With the Kalman Filter, the RSSI measurements are stable over a small distance, from 1 to 3 m. At longer distances of 6 and 9 m, the variance is approximately \(-0.5\) dbm.

  3. 3.

    Alternatively, when we calculate the mean of the RSSI measurements, we find that the average RSSI measurements with and without the Kalman Filter have the same value. Therefore, if a self-driving indoor cart has time to calculate the average RSSI measurement, the positioning error can be reduced. However, in a real environment, this is a challenge since indoor self-driving requires rapid calculation and continuous movement. In the next section, we introduce a new method for position estimation.

Cloud-based algorithm

Based on Fig. 12, we divide the Wi-Fi coverage into three segments according to the quality of the RSSI measurement: stable, unstable, and indeterminate measurements. Although the RSSI measurement is affected by interference and path loss, the nearer the mobile device moves to the reference access point, the more stable the RSSI measurement. As shown in Fig. 13, we can examine the circle for a stable segment with \(R_{st}\), unstable segment with \(R_{ust}\), and indeterminate segment with \(R_{ind}\). Note that R is the radius. The stable segment is defined as in this segment, attaining an RSSI measurement variance of less than 0.5 dBm, while in the unstable segment, the RSSI measurement variance is less than 1.5 dBm. Otherwise, it is called an indeterminate segment.

Fig. 13
figure 13

Segments are divided in Wi-Fi coverage

In the cloud network-based algorithm, APs embedded in the cloud server have known positions. We assume that the speed of the cart is constant, \(v_c\), and the positions of access points 1 (AP1) and 2 (AP2) are \((x_1,y_1)\) and \((x_2,y_2)\), respectively. The Euclidean distance between AP1 and AP2 is

$$\begin{aligned} d_{12}=\sqrt{(x_1 - x_2)^2 + (y_1 - y_2)^2} \end{aligned}$$
(2)

The time \(t_{12}\), which moves from AP1 to AP2, is

$$\begin{aligned} t_{12}=d_{12}/v_c \end{aligned}$$
(3)

Under a hypothetical set-up, as shown in Fig. 7a, the self-driving cart will be in a stable segment of AP2 after \(t_{12}\). However, in a real indoor environment, the cart has a time delay owing to the need to avoid an obstacle in the corridors. After \(t_{12}\), we assume that the cart is in the unstable segment of AP2. To move to a stable segment of AP2, the cart must continue moving until the time \(t_{correct}\). If there are too many obstacles and the cart does not reach even the unstable segment within \(t_{12}\), the cart will move 1 m until it reaches the stable segment. Note that when the cart arrives at the stable segment, it will run the movement decision algorithm (Fig. 8) with (\(x_{t,cart}, y_{t,cart}\)) as the current AP position and (\(x_{target}, y_{target}\)) as the next AP position or target position.

The total time \(t_{total}\) to move from AP1 to AP2 is

$$\begin{aligned} t_{total}=t_{12} + t_{correct} + n.1//v_c \end{aligned}$$
(4)

where \(t_{12}\) is calculated according to Eq. (3), n is number of 1 m increases until the cart reaches the stable segment. The correct time is

$$\begin{aligned} t_{correct}=d/v_c \end{aligned}$$
(5)

where d is determined by Eq. (1) and shown in Fig. 7b.

Finally, as seen in Fig. 5, we implement two processes, a local positioning process, and a global positioning/AP map information process, as shown in Fig 14. Figure 14a shows that the self-driving cart requests the destination’s positioning information from the cloudlet. If there is destination positioning information, the cloudlet forwards this packet to the cart. Note that this destination positioning information is the local position. Otherwise, the cloudlet requests destination positioning information from the core cloud. The core cloud stores all information in the corridors; hence, it forwards the destination positioning packet, including the global positioning/AP map information process, as shown in Fig. 14b. Based on this information, the self-driving cart determines the route path by minimizing the distance between the starting position and the destination point.

Fig. 14
figure 14

The positioning information process schematic diagram

Experimental results

Our indoor localization and navigation system was tested using a Raspberry Pi 3 Model B V1.2, 2015 [73], shown in Fig. 15a, and a self-driving cart, shown in Fig. 15b. We used five Raspberry Pi 3 setups: setups: three for the cloudlets, one for the core cloud, and one for the moving edge cloud. The operation of our implementation is summarized as follows.

  1. 1

    First, we assume that the cart has no information regarding the network, with the target position stored either in the cloudlet (fixed cloud) or the core cloud. At the beginning operation stage, the user chooses a target item for the self-driving cart to reach.

  2. 2

    Second, the moving edge cloud sends the target point to the corresponding cloudlet located closest to that cart. If the cloudlet stores the target item, it feeds back on the target location to the self-driving cart. Otherwise, it requests to the core cloud to achieve the target location; then, it sends this target location to the self-driving cart.

  3. 3

    Third, based on the global position and AP map, the cart calculates the route path to minimize the movement time if there is a loop or multiple paths to the same object. The path planning is determined using the Dijkstra algorithm.

  4. 4

    Four, the cart moves in accordance with the route path. Note that, in the self-driving cart, there are sensors, such as HC-SR04 ultrasonic sensors, used to avoid obstacles.

  5. 5

    Finally, our proposal is applied to the self-driving cart and it reaches the target item.

The system was deployed on corridors on the third floor of the Computer Science and Engineering building, Kyung Hee University, Korea. The starting point and destination point are shown in Fig. 16a. We measured and drew the grid map for a real-world indoor environment for testing. Here, both the x and y grid lines are separated by units of 1 m, as shown in Fig. 16b.

Fig. 15
figure 15

Equipments for deploying our proposal

Fig. 16
figure 16

A real-world indoor environment for testing

To implement our system, we set up a web server, which consists of the database and HTTP server. A Raspberry Pi is used as the web server for the following reason. First, a Raspberry Pi uses an ARM 11 processor running at 700 MHz with 512 MB RAM, and hence is known as a small computer. To learn about web design and server administration for a Raspberry Pi as a web server refer to [74]. It must connect the HC-SR04 ultrasonic sensors and motor controller of the cart with the Raspberry Pi to avoid obstacles and adjust the speed. In addition, we set up a database using MySQL [75]. The interactions between the web servers of our self-driving cart, cloudlet, and core cloud are shown in Fig. 17. In addition, we also set up a Raspberry Pi 3 as an access point [76]. Once the cart moves to that access point coverage, the cart connects with that access point and access webserver if it chooses. Finally, all Raspberry Pi 3 devices are set up as shown in Fig. 18.

Fig. 17
figure 17

Interactions between user, self-driving cart, cloudlet, and core cloud

Fig. 18
figure 18

3-tier architecture setup

A core cloud stores all information from each cloudlet, referred to here as cloudlets #1, #2, and #3. Each cloudlet contains stored local information for each object. Cloudlet #3 contains the local information of Prof. Huh’s room, \(\#301\), which is located at \((-5,0)_{Cl3}\), whereas cloudlet #3 is located at \((0,0)_{Cl3}\) in its \(x-y\) axis, as shown in Fig. 19.

Fig. 19
figure 19

Global x–y axis and local x–y axis of cloudlet #3

Positioning estimation

We determined \(R_{st}\), \(R_{ust}\), and \(R_{ind}\) in the real-world indoor environment in accordance to Fig. 13. We considered the distance measurements for fifty iterations under a moving edge cloud and one cloudlet by varying the distance from the cart and cloudlet. Observational errors, the differences between measured quantities and their respective true values, are observed. For each iteration, we took the average distance over ten measurements, with the results shown in Table 5. Clearly, \(0<R_{st}<2\), \(2<R_{ust}<3\), and \(R_{ind}>4\).

Table 5 Average of distance measurements using Eq. (1) according to the number of iterations

Cloud-based algorithm run

We then applied the cloud-based algorithm to the self-driving cart. The processing and results in the real-world indoor environment for the self-driving cart are shown in Fig. 20. Using the cloud network and RSSI-based distance measurements, the cart can move successfully to the destination point during the experiments within the length of the stable segment. We also provide the open-source code at the following links: https://github.com/icns-distributed-cloud/WebServers and https://github.com/icns-distributed-cloud/stm-cartcontroller. The demo of our proposal also is shown as the following link: https://youtu.be/h3wYM76PDGs.

Fig. 20
figure 20

Processing and results in a real-world indoor environment for the self-driving cart

Conclusion

We proposed a Wi-Fi indoor positioning and navigation method using a cloudlet-based cloud computing system. Our proposal was tested using Raspberry Pi 3 equipment designed with cloudlets, a core cloud, and a self-driving cart, which was equipped with a moving edge cloud. The cloud network not only provides the destination position and wireless access point map but also navigates the cart’s movement to reach the destination point. The moving edge cloud calculates the route path, movement decisions, and positioning estimations. The implementation results demonstrated the effectiveness of our proposal. The proposed method can also be used to guide blind people or locate patients in a hospital. In future work, we will enhance our system by decreasing the movement time and total processing time of the indoor cart.