Indoor-Localization of AGV: network packets and trajectory

Indoor-Localization of AGV: network packets and trajectory

1. Introduction for indoor-localization

Localization for AGV in indoor environment might be tricky. Because GPS does not work indoors, various solutions using networks - such as bluetooth, zigbee, wifi - has been researched. Utilizing networks for indoor localization can be composed in various ways. One commonly used indoor positioning system is a method of determining location through the RSSI (Received Signal Strength Indicator) values transmitted from sensors in a wireless sensor network.

2. KNN + fingerprinting

RSSI decreases as the distance between the transmitter and receiver increases, and this decrease can be used to estimate the distance. This can be estimated based on the Path Loss Model, which takes into account environmental factors. One of the commonly used indoor positioning systems that uses RSSI is based on fingerprinting. In this approach, real-time RSSI vectors are matched with pre-built offline RSSI vector maps. We tested various comparison methods and constructed a positioning system using KNN. We also evaluated the performance of the RSSI reconstruction algorithm and the KNN positioning system based on packet loss rate and various noise characteristics of RSSI. Additionally, we analyzed the difference between the actual and predicted positions of AGVs using the loss RSSI reconstruction algorithm.

3. Using LSTM network for localizing with lossy RSSI

In our basic research, we developed an algorithm to complement the RSSI vector in a traditional way, and used this method to estimate the position of the AGV using KNN by recovering the RSSI vector with loss. To create a more robust system, we complemented the AGV's sensor data, namely speed, acceleration, and steering angle, by fusion. However, this approach has the disadvantage of an unstable initial value problem and the inability to effectively utilize the RSSI values obtained from the previous point. Since packet loss is estimated only with the RSSI of the current point and errors are corrected, we predicted that performance could be further improved if the RSSI of the previous point were also considered.

Based on this idea, I used Pytorch to build a 3-layer LSTM network model and conducted a study to train the sequential pattern of RSSI data. I recorded RSSI values for each situation when the packet loss rate was 0.0, assuming the sensor nodes (AP) were in fixed positions. The AGV's location was labeled, and the RSSI tuple was used as X to change the data shape into a supervised learning format. The X data became a two-dimensional data (time axis, RSSI intensity). I sliced the data along the time axis and trained the model by changing the parameters.

To be honest, the performance of this experiment was not outstanding, mainly due to two reasons: 1) the amount of data was too small, and 2) the model we built was not robust enough to handle lossy RSSI vectors. Although our goal was to predict the next position, we realized that it might be more effective to develop a neural network that can estimate which elements in the RSSI vector are lossy and how much packet loss has occurred, a network that can recover the RSSI vector based on this information, and a network that can estimate the position based on the recovered RSSI vector. If we had divided the problem into these three sub-tasks and ensemble the results, we might have obtained better results.