Abstract
GPS have been able to offer a commercially available outdoor positioning services; however, since the quality of satellite signals declines after entering into the indoor environment, the GPS system cannot provide indoor positioning services. With the development of cloud computing and the Internet of Things technology, indoor positioning has become a hot research hotspot. Radio Frequency Identification is a wireless communication technology, and the Radio Frequency Identification reader can communicate wirelessly through electromagnetic waves with the tag. Radio Frequency Identification technology has the following advantages: no contact, recognition from the long distance, long life and fast moving objects identification, etc. Radio Frequency Identification is the key component of Internet of Things, and many fusion application systems combining Radio Frequency Identification and cloud computing are emerging. This article designs and implements the Radio Frequency Identification indoor positioning system based on Received Signal Strength Indicator, which obtains three-dimensional coordinates orientation through multiple trilateral positioning algorithm on location tag. C# and Python are used to complete positioning system, where C# dominates user interface and calculates three-dimensional coordinates. Python is responsible for three-dimensional display. The two programs communicate through a socket.
Background
Currently, there are more sophisticated system solutions for the positioning system, such as GPS, Galileo, GLONASS, etc. 1 However, these satellite-based positioning system signals have many limitations, such as they cannot provide positioning services in the case of indoor or building block, etc. The indoor environment is the activity place where we stay for a long time. Therefore, how to provide reliable and accurate indoor positioning services becomes a hotspot. With the commercialization of the indoor positioning system (IPS), peopleʼs life will be more convenient. For example, we can find the separated companion in the giant supermarket or museum which can provide real-time positioning guide services, etc. And the indoor positioning technology will help people to analyse big data, such as installing IPS in the supermarket to track the userʼs activities, so that one can analyze the userʼs preferences and provide unique information based on different preferences of different users. For example, if the user is a bank credit card holder, after entering the shop, the map will show which merchant provides the credit card discounts and also the indoor positioning service will provide an user’s guide. It will provide convenience and benefit for people in business, and can help athletes to understand about training in competitive sports. In addition, IPS can record the athletes' location. At the end of the training, coaches and athletes can know their own information easily, which could provide information for football players to know where the activities are active. IPS can provide scientific data for athletes and coaches to help them improve the competitive level. Compared with the convenience from the outdoor positioning services, the IPS will bring changes to peopleʼs lives.
Currently, the wireless communication technology is used for indoor positioning solutions and the mainstream approach includes Wi-Fi, Bluetooth, ZigBee, and Radio Frequency Identification (RFID) 2 technology. For example, in the healthcare system, the RFID has been successfully applied. And because of the lower cost of RFID tags, long life, fast communication speed, ease of deployment, it is one of the most promising indoor positioning technologies. Not only in China but also in other countries, the researches achieves a lot of achievements in this direction, such as the typical representative SpotON system, LANDMARK system. 3 This article discusses about how to execute indoor positioning, and design an RFID three-dimensional (3D) indoor real-time positioning system.
Indoor positioning technology overview
RFID is a wireless communication technology. Readers may communicate with the tag through electromagnetic waves. Compared with the traditional barcode labels, RFID tags have large capacity, fast reading speed, long working distance, strong penetration. With the RFID tag production technology becoming more mature, the cost of RFID tags becomes lower, and the RFID tags will replace barcode labels.
According to the frequency of electronic tags, RFID technology can be divided into low-frequency systems (125 kHz, 134.2 kHz), high-frequency systems (13.56 MHz), Ultra High Frequency (UHF; 860 MHz–960 MHz) and microwave systems (2.45 GHz, 5.8 GHz), etc. Nowadays, much of the attention is paid to high-frequency band, and the UHF RFID system is the fastest growing technology. In addition, RFID can also be divided into passive tags, active tags, and semi-active tags. The passive electronic tag has no battery-powered, when its workʼs energy is generated by RFID reader, which advantages are maintenance-free, light weight, small size, long life, inexpensive, etc. The active tags and semi-active tags have a battery-powered, which disadvantage is the long distance identification. Considering the overall cost, this article uses the passive tag to design and implicate the RFID positioning system.
Indoor positioning means to achieve a position in indoor environment, and an indoor location positioning system mainly consists of wireless communications, base station location, INS location, and other technologies, which can monitor persons and objects in the indoor space. There are some common indoor wireless location technologies:4–6 cellular networks, Wi-Fi, Bluetooth, infrared, ultra-wideband, RFID, ZigBee and ultrasonic, and some indoor location solutions, such as Google, Nokia, Broadcom, IndoorAtals, Qubulus, Duke, and so on.
Google Maps 7 for mobile version 6.0 have added indoor navigation function in some areas, which relied mainly on GPS (there are two or three satellites could be searched in room), Wi-Fi signal, cell phone base station, and according to some “blind” (there is no GPS, Wi-Fi, or local base station signals in room) specific location to complete indoor positioning. Currently, the precision of this program is not very satisfactory. Google released a program called “Google Maps Floor Plan Marker” mobile application, and users follow certain steps to improve the accuracy of indoor navigation. Google has been trying to solve two problems: getting more floor plan and improving indoor navigation accuracy. Interior floor plan is the basis for indoor navigation, just as GPS car navigation needs electronic navigation charts. Google now wants to solve the problem of data sources through “crowdsourcing” way, which is to encourage users to upload a floor plan. In addition, when users use Googleʼs indoor navigation, Google will collects GPS, Wi-Fi, base stations, and other information, which provides users with more accurate positioning service after processing and analysis through the server.
Nokia uses HAIP technology. 8 Nokia is trying to make it a part of the Bluetooth protocol, so as long as the device with a Bluetooth module, it can use this technique to location. However, only one Bluetooth module cannot be completed, users need to install an indoor transmitter to position. The launchers can reach 100 m × 100 m, the positioning accuracy is 30 cm–100 cm. This launcher has the following advantages: low cost, low power consumption, one or more objects can be completed positioning.
Broadcom Corporation developed a new chip for indoor location with 3D positioning function. 9 This chip can support IPS via Wi-Fi, Bluetooth, or NFC technology. More powerful is that the chip can calculate your position in realtime combined with other sensors, such as the phoneʼs gyroscope, accelerometer, position sensors, etc. Broadcomʼs idea wants to build the chip into the smart phone.
Different from the above ideas, Qubulus Company achieved the location based on radio signal. 10 The number of radio signals, frequency, intensity are also different, and Qubulus calculates the specific location according to these differences. Qubulus also need to collect radio signals. Qubulus provide a development kit, which is easy to application.
Duke University developed applications called UnLoc by means of signs (landmarks) in real life. 11 This application can sense wifi, 3G signal dead, as well as some sports features, such as elevators, stairs, etc., and calculate the location based on these positions. When youʼre moving, it tracks the location based on other sensors (gyroscope, accelerometer, position sensors, etc.). This process accuracy will be gradually reduced. But when you arrive at the next signpost, the position will be calibrated.
The use of RFID technology for indoor positioning algorithms can be divided into two categories: algorithms based on distance and algorithms based on non-distance. The method based on the distance is that RFID reader checks the tag and gets a Received Signal Strength Indicator (RSSI) 12 so as to get the distance from the tag to the reader antenna, and calculate the position of the nodes through the relevant algorithm. There are specific algorithms based on distance: triangulation method and maximum likelihood estimation method and so on. The method based on non-distance algorithm mainly includes centroid algorithm, APIT (approximate point-in-triangulation teat), and DV-Hop algorithm.
Through the above analysis, we can find that the current IPS is still in the research stage, and there is no large-scale mature production. In this article, an IPS based on RSSI using RFID technology is implemented.
Trilateral positioning algorithm
The concept of the trilateral positioning algorithm is given in this section. The mainstream logarithmic distance path loss model is used and the path loss is expressed as the following
13
Trilateral positioning algorithm is used to calculate the position of the object through the distance among the other three known positions. Assume there are
The difference between the real distance and the estimated distance is expressed as
Next, we can get the following formulas
Then, we obtain the following equation
Usually,
The more beacon nodes there are, the higher localization accuracy we get, but the greater the cost. In real cases, three anchor nodes are enough to locate an un-known node, so we take n = 3. In addition, the VPython codes are used to draw all example figures.
As shown in Figure 1, the green square indicates the origin of the 3D spatial coordinates, the right is the Simulated antenna and tag.
Calculate the area of a triangle with the three dots of a, b, and c, then Helen Keller formula is used to calculate the area.
In the formula, S is the area of the triangle, a, b, and c are the sides length of the triangle, and
After the area is calculated, its height
As shown in Figure 2, the value of the high Calculation of the triangle high.

The total of The absolute value of the difference between
Since the high of the edge between an1 and an3 is perpendicular to the
As shown in Figure 3, although the four spheres do not intersect at one point at this time, but it still can be calculated according to the position algorithm. In this condition, there are two Position situation.
Design and implementation
Program flow
The main flow of the program is shown in Figure 4. First, the user selects the input source, if the input source is the reader, the computer will connect to the reader and turn on the four antennas of the reader. The program will run properly in case that the four antennas are fully opened. If the input source is a file, then the corresponding *.rssi file is selected as the input source. After pressing the start button, according to the usersʼ choice, the reader will start work or the program will start to read the RSSI value file. After that socket communication server calls the system function to open 3D display program and opens a new thread as the main program which communicates with the 3D display program, while the main thread of the main program is still responsible for UI response and receiving RSSI.
Program flow chart.
To verify the trilateral location algorithm, the RSSI value generated by the program is selected as the input. The specific RSSI generation process is that the ball is controlled by the user, and the program will record the ball position and write it to the file. The contents of the file are the 3D coordinates of the ball in the form of PosX | PosY | PosZ, which is shown as follows: 12.6501187818|20.9082739566|-0.979778445837 13.0379343269 |22.2426966133|-0.979778445837 13.327517457 |22.8093719547 |-0.979778445837 13.4601072262 |23.1814809564 |-0.979778445837 13.4601072262 |23.1814809564 |-0.979778445837 13.6361779895 |23.1881492074 |-0.979778445837 13.6361779895 |23.1881492074 |-0.979778445837 14.3863632864 |22.8501315813|-0.979778445837 15.7764768114 |20.4665822443 |-0.979778445837 17.3408151676 |17.1870685646|-0.979778445837 18.4855720351 |14.5505789266 |-0.979778445837
Then, another program converts the distance between the antenna and the virtual tag to RSSI value. Because the points
The distance
There are four antennas, so users can get the four RSSI values, which can be written to the file in format of EPC |RSSI| ANTENNAID. The value of EPC is the EPC tag content, which can be regarded as a tag ID, RSSI is the simulated RSSI value, and ANTENNAID is the ID of antenna. The program reads the RSSI values from the RSSI file, when it reads a line to get one RSSI value, which just likes the reader to get the tag. Because the RSSI is generated based on the formula, so the value is ideal and the position is accurate.
3D display technology
The physical world around us is 3D, yet traditional display devices can show only two-dimensional (2D) flat images that lack depth (i.e. the third dimension) information. 14 This fundamental restriction greatly limits our ability to perceive and to understand the complexity of real-world objects. Nearly 50% of the capability of the human brain is devoted to processing visual information. 15 Flat images and 2D displays do not harness the brain’s power effectively. With rapid advances in the electronics, optics, laser, and photonics fields, true 3D display technologies are making their way into the marketplace. 3D movies, 3D TV, 3D mobile devices, and 3D games have increasingly demanded true 3D display with no eyeglasses (autostereoscopic). Therefore, it would be very beneficial for us to have a systematic 3D display technology to design and implement IPS.
In our realized system, the 3D scene is written by VPython. Actually, 3D display program is a piece of Python code. When the user presses the start button in the main program, it will call 3D display program. Then, users can observe the simulated scene. Users can use the mouse to interact with the 3D scene, moving perspective by holding the right button of mouse, observe the 3D scene model from different directions, while holding down and drag the left mouse button or the mouse right button, the perspective can be closer or far, which methods can enlarge and reduce the perspective.
RFID reader interaction
In this article, JF-602S R2000 RFID reader is used, which is shown in Figure 5. The upper left cell of figure is RFID reader and antenna, the upper right cell of figure is antenna grid, the left lower cell of figure is the RFID reader, and the lower right grid of figure is an RFID tag. To connect the reader to the computer, the driver has to be properly installed, and the hardware only provides drivers for Windows 32-bit systems, which is a plug and play USB device.
RFID readers and RFID tags.
Data processing
This article presents a low-cost indoor location identification and 3D show methodology for construction projects using UHF passive RFID technology. The RFID tags can be linked on to database system and can be used in the data collection of data processing. In this methodology, a number of passive RFID tags are distributed environment where work is progressing, and the UHF RFID reader is carried by a worker. Each passive RFID tag is deployed as a reference point with a known location within a predefined zone. Reference tags of known locations are used to determine the location of the worker and eventually locate and track surrounding objects. The methodology uses Received RSSI for signal measurements.
Three typed data are needed in our system: RSSI value, EPC and antenna number, whether data are obtained from a file or the reader. Because each EPC tag ID is unique, it can serve as EPC tag identifier. After having read the three data, the program should determine whether the tag has been scanned, and whether there is a list of tags in the same ID. If they have the same ID, according to the antenna, RSSI value will be added directly to the corresponding queue, if not the same ID, then it will create a new tag object. The EPC value of the object added is the same as the EPC value received, then the object is added to the tag list. The specific process is shown in Figure 6.
RSSI value processing flow chart.
When the RSSI value for each antenna number labels is equal to the threshold, the state of tag is set to True. That is, when the RSSI value reaches a certain number, the position of antenna can be calculated.
Module communication
The main program and 3D display program are the two processes, which require inter-process communication. This article uses socket to complete the communication between the two processes. A socket is a software endpoint that establishes bidirectional communication between a server program and one or more client programs. The socket associates the server program with a specific hardware port on the machine where it runs so any client program anywhere in the network with a socket associated with that same port can communicate with the server program. A server program is the one that typically provides resources to a network of client programs. Client programs send requests to the server program, and the server program responds to the request. One way to handle requests from more than one client is to make the server program multi-threaded. A multi-threaded server creates a thread for each communication it accepts from a client. A thread is a sequence of instructions that run independently of the program and of any other threads. Using threads, a multi-threaded server program can accept a connection from a client, start a thread for that communication, and continue listening for requests from other clients.
The main program acts as a server and the 3D display program acts as a client. After 3D display program starts, the server needs to obtain the latest location constantly. When the server receives the information of each client, it will calculate coordinate of tag in the queue and combined as sendFrame. That is, after the client received the sendFrame, the server sends a frame, then parses and displays it. Client sends a request to the server at every 20 ms. After receiving the request, the server calculates information in the tag list, and then sends back to the client, the client receives information from the server and analyzes the received information. In the end, all tags will be displayed in the 3D scene in accordance with the received information. The 3D display process is repeated until the user issues a stop message.
Results and analysis
In the experiment, the RSSI value is obtained by RFID reader JF-602S. First, we open the antennas, and then the program starts to read tags and saves the RSSI value of inventory to the label into a text file. Python codes are designed to read the text file. Figure 7 shows the RSSI value obtained by the reader from different antennas.
The RSSI value from different antenna of the reader.
It can be concluded that when the positioning tag stays static, the RSSI value obtained by the reader fluctuates with the used reader. Therefore, the position by the reader is not accurate. The experimental result is shown in Figure 8.
A position result from the RSSI value.
Because RFID reader Prosperous Investor JF-602S used in this article is not very accurate, we use data generated artificially to test whether the positioning program can orientate accurately in condition that the RSSI value is accurate. The result is shown in Figure 9.
Use the data generated to position.
We can find that the program in this article can orientate accurately in condition that the RSSI value is accurate. However, due to the current hardware limited conditions, we can’t obtain high precision and high accuracy of RSSI, thus it is not reliable to orientate through trilateral positioning. To use RFID to orientate based on RSSI, we need the further research to search for more accurate algorithm and more accurate hardware.
Conclusions
There are some major problems in the current position system, including the following two points.
The lack of overall architecture: Currently, there are many positioning products and positioning systems such as RFID, Wi-Fi, UWB, etc. Different manufacturers use different architecture, some manufacturers even mix positioning algorithms and applications. These methods make the system not only flexibility greatly reduced but also make the systems unable to communicate and collaborate. To develop a unified architecture for the positioning system has become a key issue in the future positioning technology research.16 The solo location algorithm: In previous studies, researchers often use a single location algorithm. In the face of the actual project, they often use a variety of algorithms to solve problems with each other. Currently, most scholars research wireless positioning system just for a single algorithm, and regional targeting are also some experimental space and rarely use the actual application scenarios. In real-life scenarios, a single location algorithm is often not ideal, because different areas need different accuracy requirements, as in this case, a variety of algorithms are needed to be used in combination.17
This article designs and implements an IPS based on RSSI using RFID technology. In our realized system, some RSSI data generated artificially can proof that trilateral localization algorithm could achieve the accurate position when the RSSI value is accurate. Because of the uncontrollable factor of the environmental impact, in the future work, we need to find a method for position algorithm to correct the RSSI value and achieve high accuracy RSSI-based location.
Footnotes
Declaration of conflicting interests
The author(s) declared no potential conflicts of interest with respect to the research, authorship, and/or publication of this article.
Funding
The author(s) disclosed receipt of the following financial support for the research, authorship, and/or publication of this article: National Natural Science Foundation of P. R. China (No. 61572260, No. 61373017, No. 61572261), Scientific & Technological Support Project of Jiangsu Province (No. BE2015702), Natural Science Foundation of Jiangsu Province, China (Grant No. BK20140886, No. BK20140888), China Postdoctoral Science Foundation (Grant No. 2014M561696, No. 2014M551636), Natural Science Foundation of the Jiangsu Higher Education Institutions of China (Grant No. 14KJB520030), Jiangsu Planned Projects for Postdoctoral Research Funds (Grant No. 1401005B, No. 1302090B), Jiangsu Postgraduate Scientific Research and Innovation Projects (SJLX15_0381) and NUPTSF (Grant No. NY213034, No. NY214060, and No. NY214061).
