Most of the time, however, people are moving indoors, and the interior sites are now becoming larger.
Indoor navigation system server design
Table of Contents
Overview
- 1 Software background
- 2 software functions
- 3Java running environment
- Related technology introduction
- 1 Commonly used indoor navigation technology
- 2 Commonly used positioning methods
- 3 Related technology comparison
- 4 Positioning terminal introduction
- Requirements analysis
- 1 Indoor navigation overview
- 2 Overview of each module
- Outline design
- 1 Positioning module design
- 2 Navigation module design
- 3 Map module design
- 4 Social module design
- Detailed design
- 1 Implementation of WiFi positioning module
- 2 Implementation of navigation module
- 3 Implementation of map module
- 4 Database module implementation
- 5 social module implementation
- Summary
- Overview
- 1 Software background
There is a common approach to outdoor positioning: a satellite-based positioning, a base station based on a mobile operating network. However, without GPS signals in the interior, people are not able to locate. The indoor navigation system is a system developed to compensate for deficiencies in outdoor positioning navigation systems that do not function well in the interior. It can be seen that there is an acute need for indoor positioning navigation in large supermarkets, convention centres, hospitals, prisons, etc. It can also be used by some businesses to promote promotional information to increase their turnover.
- 2 software functions
They are mainly used for indoor navigation, helping people to find their own places of need as soon as possible in large places, such as shopping centres, large convention fairs, etc.
- 3Java running environment
About Java
The choice of Java as the language for the development of the navigation system is inextricably linked to its many advantages. Java technology has the following advantages: simple, object-oriented, distributed, secure, system-structured, portable, high performance, multi-wire, and dynamic.
The Java language design focuses on objects and their interfaces, which provide a simple type mechanism and dynamic interface model. The object is modularized and the information is hidden by encapsulating its state variables and corresponding methods, while the class provides a prototype for one of the objects and, through the mechanism of inheritance, the subcategory can reuse the code using the method provided by the parent.
The non-platform properties allow the Java program to easily transpose to different machines on the network. At the same time, Java’s catalogues have access to interfaces with different platforms so that they can be transplanted.
In terms of security, Java does not support the pointer, and all access to memory must be achieved through the subject's case-by-case variable, thus preventing programmers from using fraudulent means such as the Trojan horse to visit the private member of the subject, while avoiding the error that can easily occur in the conduct of the pointer.
(2) Eclipse development platform
Eclipse is an open-source extended development platform based on Java. For its part, Eclipse is a framework and set of services for building the environment through plugin components. Eclipse also has a standard plugin set, including Java development tools.
- Related technology introduction
- 1 Commonly used indoor navigation technology
Infrared positioning technology
Infrared positioning techniques require some optical sensors to be installed inside the interior, which then sends the modulated infrared to the perimeter through the equipment, and optical sensors reflect the infrared to the device after receiving it, and eventually locate it. Infrared positioning can achieve a high degree of precision in the interior, but because it can only be transmitted in a straight line, cannot pass through barriers, and because of the short distance of infrared transmission, infrared positioning requires a large number of sensors to ensure that each location and angle can be located. Infrared, moreover, is vulnerable to indoor light. Infrared is not a good choice overall.
LED positioning technology
The LED positioning technique is carried out through the LED lamps on the ceiling, which send a scintillation signal like the moss cable code, and are then received and tested by a user's smartphone camera. The accuracy of the positioning is within 1 metre. The LED positioning requires the adaptation of the LED lamps, increasing the chips, increasing the costs, and infra-red transmission only at distance, with extremely poor penetration, which can be influenced by environmental factors such as light, smoke, etc. This compares with the laboratory ' s precise trajectories of simple objects and the location of indoor walk-by robots. Nevertheless, LED positioning is a promising indoor positioning technique.
Ultrasonic positioning technology
The ultrasound range is measured primarily by the reflection of the ultrasound, and the location of the object is determined by geometric methods such as the smallest two-plication, triangulation, etc. The ultrasound is launched, the receiver receives the same ultrasound after the ultrasound, the ultrasound is received and returned by the subject, and the transmission distance of the ultrasound is calculated based on the time difference between the two ultrasound waves. The ultrasound locator system requires a primary ranger and multiple transponders. At the time of positioning, the primary ranger is placed in a position to be measured and sends an ultrasound to the surroundings, and the surrounding responder also sends an ultrasound to the main ranger after detection of the ultrasound. The main ranger calculates the current coordinates of the main ranger based on the time interval between the two ultrasound waves. Ultrasound positioning is highly accurate and structurally simple, but ultrasound is multi-routing and non-visually transmitted, and ultrasound positioning requires a high degree of assistive equipment in practice, resulting in significant cost increases and therefore unsuitable for use as an indoor positioning technology.
Bluetooth technology
Bluetooth technology is mainly used for small-scale positioning, such as supermarkets, warehouses, etc. The greatest advantage of bluetooth technology is that the equipment used is small, inexpensive, widely available, and integrated into end devices such as mobile phones. Theoretically, as long as equipment like a user’s mobile phone turns on Bluetooth, the Bluetooth Positioning System can locate the device. The Bluetooth Positioning Technology is now an ideal technology, and Nokia is now promoting relevant technological developments.
(5) Radio frequency identification technology
Radio frequency recognition technologies achieve a non-contact two-way communication between source and receiving equipment through radio frequency, and are positioned by acquiring the receiving signal strength of the radio frequency signal. The strength of the radio frequency technology is that the radio frequency signal is transmitted at a relatively long distance, at a fast rate, and can be accessed for position information in a very short time. However, the current integration of radio frequency equipment with day-to-day terminal equipment, such as mobile phones, is poor and requires separate positioning equipment, pending further development. Overall, radio frequency technology is expected to become a new indoor positioning technology.
(6) UltraWideband technology
Superbroadband (UBW, UltraWideband) technology is a brand-new communication technology that differs significantly from previous communications technologies. First, it does not use the carrier in traditional communication technology to transmit signals, but rather to transmit signals through extremely narrow pulses with low frequency (narseconds or below). Superbroadbands can have a GHz-level bandwidth compared to traditional communication technologies, and they also have low consumption, multi-variant effects, high penetration, system simplicity, high security and high accuracy, so they are also a good indoor positioning technique.
(7) ZigBee technology
ZigBee is a relatively mature wireless network technology. It has the characteristics of a short transmission distance and a low transmission rate. So, in practice, there is often a need to use a large number of sensors. ZigBee's positioning system communicates with each other by means of sensors, which connects data from one sensor to another. Since ZigBee technology is highly efficient in its dissemination and has low-cost and low-cost advantages, ZigBee technology is now also a very popular indoor positioning technology.
(8) WiFi technology
WiFi is a technology that can connect terminals like PCs, handheld devices (e.g. Pad, mobile phones) and so on wirelessly. With the spread of IEE802.1l, WiFi is becoming more and more popular in life. So WiFi positioning systems can make good use of existing infrastructure and equipment, thereby significantly reducing initial costs. Wi-Fi positioning can reach the rice level (1-10 m), and Wi-Fi positioning technology has two types, one of which is the degree of wireless signal strength through mobile devices and three wireless network access points, and the differential algorithm, which allows for a more precise triangulation of people and vehicles. The other is pre-recorded recording of the signal strength of a large location, which is determined by comparing the signal strength of the newly added equipment to the database with which large data are available (“fingerprint” positioning). Wi-Fi positioning applies to the navigation of people or vehicles, and can be used in medical institutions, theme parks, factories, malls, etc.
Geomagnetic and computer vision positioning technology
Most of these products are currently used for military and scientific detection, such as geomagnetic navigation, commonly used in military underwater navigation, and computer visual navigation for Mars vehicles.
In addition to the positioning techniques mentioned above, there are positioning techniques based on light tracking, image analysis, and so forth. In the future, indoor positioning will not depend on one technology alone, but the mix of technologies and switching are also important research subjects.
- 2 Commonly used positioning methods
(1) Time of arrival method (TOA)
Time-arrival measures distance by measuring the signal to the time of transmission of multiple receivers in the surrounding area, and locates it by distance.
(2) Time difference of arrival method (TDOA)
The time-arrival margin is different from the time-arrival difference, which is an improvement in the time-arrival algorithm. The time-arrival difference does not directly measure the time of the signal reaching the receiver, but is determined by the time difference of the information received from multiple receiving stations. The time-arrival margin does not actually require synchronization between the mobile terminal and the receiving station, and a high degree of precision can be obtained if the TDOA value is used. The time-arrival margin requires a low level of detail on the network and a high degree of precision in positioning, which is now the hot spot for research.
(3) Angle of arrival method (AOA)
The angle of arrival is primarily to estimate the direction of the entry angle of the base station to the mobile terminal, and to obtain a link between the base station and the mobile terminal. The angle of arrival is subject to a greater environmental impact, with various obstacles and noises affecting the measure of impact. In addition, the equipment to reach the angle is costly and unsuitable for indoor positioning.
(4) Signal strength method (RSSI)
There are two main ways to achieve a signal strength approach. One is to create a mathematical model between the strength of the signal RSSI and the distance of transmission of the signal, to convert RSSI to distance, and then geometrically to calculate the coordinates of the current position. The other is to record the distribution of RSSl at multiple points in the room, and to locate it using RSSI fingerprints.
- 3 Related technology comparison
Technical name
Accuracy
Penetration
Anti-interference
Layout complexity
Cost
Infrared positioning
High
Difficulty
Normal
Ultrasonic positioning
High
Difference
Normal
Normal
High
LED positioning
High
Difference
Normal
Higher
Bluetooth Positioning
middle
Normal
Normal
Normal
Higher
Wi-Fi positioning
Normal
Normal
powerful
easy
Low
ZigBee positioning
Normal
powerful
Normal
Normal
Normal
Ultra-bandwidth positioning
High
powerful
powerful
Normal
High
Radio frequency positioning
High
Normal
Normal
Normal
Normal
Based on a comparison of the above-mentioned positioning techniques, it can be seen that the layout of WiFi positioning is relatively simple, low-cost, less disruptive and less accurate, but can effectively reduce errors and fully meet the locational needs of people in their indoor environment by adding AP nodes or choosing the appropriate algorithms.
- 4 Positioning terminal introduction
Mobile phones have become an essential part of people ' s daily lives, with access to WIFI largely available on mobile phones, while the most commonly used on mobile phones are the Android and iOS systems, which have built-in methods for scanning WIFI information, consisting of operating systems, intermediates, user interfaces and applications. That means that if we do the work of developing the APP, we can use the technology easily, which will greatly facilitate the extension of the software, after all, with the next APP, without the need to install other hardware.
- Requirements analysis
- 1 Indoor navigation overview
A good application system must be well placed to meet the needs of users, both functional and non-functional, and to optimize potential user expectations and reduce potential problems. Therefore, needs analysis plays a very important role in project development, and only a proper needs analysis will ensure smooth software development.
Based on the system ' s needs analysis, the following flowchart is available:
- 2 Overview of each module
These needs and goals are described in detail below:
(1) Positioning function. Users can better determine the starting point for positioning only if they know their current location and are able to reach their destination accurately along the navigation route.
(2) Navigational function. Design a road for the user from the point of origin to the place of destination and, to the extent possible, ensure that road design is reasonable.
(3) Electronic maps. Electronic maps are the basis of the indoor navigation system, are the results used to display the user ' s environment and navigation and positioning, and are the most commonly accessed part of the system.
(4) Information gathering. Mainly, the collection of map nodes, WiFi signal messages.
(5) Social module. Used for user sharing of locations, evaluation of nearby businesses, and some other functions.
- Outline design
Based on the above analysis, the service end of the known indoor navigation system consists mainly of positioning and navigation modules, as well as electronic maps, in which map modelling and WiFi information acquisition modules are the main support modules. The client is composed of a web version (PC) and a mobile version (cell phone, tablet) which, when a user requests access through http, sends to the server a request for location, navigation, etc., the server handles the user's request with different modules, and results are available on the page, and the user module captures the results through http and displays them on an electronic map.
The functionality of the various components of the indoor positioning system is illustrated below.
The APP on the service terminal first receives RSSI information from multiple AP nodes, then sends them to the server, which calculates the coordinates of the terminal's position by comparing and calculating the appropriate algorithm with the database data, and then returns to the terminal, where it is received, and displays this information in the APP's navigation module.
- 1 Positioning module design
(1) Design idea of WiFi positioning module
First, the WiFi positioning module receives location requests from the user module, including information on all APs around the user ' s current location, i.e., the point to be measured.
Each of these AP messages includes the MAC address and RSSI values.
The next round of the RSSI fingerprint database is the collection points, matching the Dk information of each of the collection points with the point to be detected.
Each of these AP information includes the MAC address, RSSI average strength and RSSI error range.
If the RSSI value of an API at a point to be measured is within the range of RSSI values for APki at that point, then the weight of that point is added to one. At the end of the calendar period, the three points with the largest weights, namely, Ml, M2, M3, and their weight values Wl, W2, W3.
- 2 Navigation module design
(1) Design idea of navigation module
Since the starting point may not be a point in the map structure, but rather the coordinates of the current position, it will be necessary to find the nearest accessible node of the starting point and then find a suitable path through the A* algorithm. The navigation module is divided into two parts: the nearest point search and the A* algorithm.
Recent spot search. To prevent the recent points that can be found, for example, from the wall. So, in the structure file of the electronic map, all points are divided into different areas by space.
- 3 Map module design
The e-mapping module, which essentially completes an electronic map, is part of the indoor navigation system showing users. The module requires the creation of a map display layer for the building and all floors and the completion of a Javascript file to operate the electronic map. The map architecture layer will also be built for all floors and the RSSI fingerprint database generated.
- 4 Social module design
The social module provides users with a shared location and an evaluation of the location of the user ' s query for the user ' s information. This requires a shared function, as well as an access provider ' s evaluation at the site and some other information.
- Detailed design
- 1WiFi positioning module implementation
The WiFi positioning module handles user positioning requests as follows.
(1) Data structure of positioning module
The requests sent by the user module to the WiFi positioning module include, inter alia, the total number of all access points currently to be detected at the points and the MAC addresses of these access points, as well as the signal intensity of the access points. The data are formatted as follows:
AP_Num--num&AP_Info=MAC 1:RSSI 1;MAC2:RSSl2······
AP Num is the total number of WiFi access points that can be detected at the current test point. AP info contains all MAC addresses and RSSI strength. MAC and RSSI are separated by colon numbers, and each access point information is separated by semicolons.
The WiFi positioning module also requires data from the RSSI fingerprint database.
The WiFi positioning module requires three categories: AP, AP db and Point.
The AP category records information about the access point to be detected at the test point. Two properties are defined:
string MAC: MAC address of AP access point detected.
Int RSSI: RSSI strength of AP access point detected.
The AP db category records information on the collected access points maintained in the database. Three attributes are defined:
string MAC: MAC address of AP access point.
Int RSSI avg: RSSI strength of AP access point.
Int RSSI dev: RSSI error at AP access point.
The Point category records the relevant information for each of the collection points in the RSSI fingerprint database.
Dictionary<string, AP~db>ap info: All information from a collection point, with MAC and AP db.
int X: x coordinate of the collection point.
int Y: Y coordinate of the collection point.
int W: The weight of the collection point.
The WiFi positioning module accepts the requested data and uses a Dictionary<streaming, AP> to save information, with each access point information stored in an AP class.
WiFi retrieves the data from the database and saves it in a list <Point>.
WiFi positioning module flow chart
- 2 Specific implementation of the navigation module
The navigation module handles the user ' s navigation requests as follows.
(1) Data structure of navigation module
The requests sent to the navigation module by the user module include, inter alia, the name or coordinates of the starting point, the name of the target point. The data are formatted as follows:
From = the name of the starting point & to = the name of the target point or
x = starting point x coordinates & v = starting point Y & t0 = target point name
The navigation module also requires access to structural data for electronic maps.
The navigation module requires a class: node.
The node category records the relevant information on the access point. The following attributes are defined:
intid: The id of the node.
Int areald: Node's areaid.
int x: X coordinate of the node.
int Y: Y coordinate of the node.
int type: node type.
List<int>nextld: id collections of other nodes that can be reached by nodes.
Int preld: id at the previous node, easily traceable after search.
The navigation module uses a Dictionary <id, code> to save map structure information, each node information is stored in a node class, using nodeid as a key for easy search.
In addition, a class is required: area.
The category isa saves the division of the area. The following attributes are defined:
int areaId: area id.
List<int>nodeld: id collections of regional nodes.
List<point>edge: Regional vertex.
Of these, point category includes only X and Y coordinates.
(2) Implementation of navigation module
Road search is the most important part of the navigation module. The navigation module navigation request is calculated as a parameter in conjunction with the structure information of the electronic map.
The navigation module performs the NearestPoint function and the A* function, in addition to the functions of the main module.
(3) Navigation module flow chart
(3) Specific implementation of navigation module
First, Navigate.ashx obtains the requested data by means of conmt.Request in the ProcsRequest function. Saves the requested strining through sprit.
Second, use System.Xml; Name Space Operation Database, use XmlDocument to open XML files, use SelectNodes to save data to XmlNodeList, and eventually save defined data structures.
Then use the navigation algorithm to calculate.
The results of the calculations are then returned to the page by context.Response.Write.
- 3 Implementation of map module
The operating part of the electronic map is stored in a SVG Toolds file. It contains a large number of operational functions on the map.
The movement and zooming down of SVG is achieved by the SVG ' s viewbox properties. The format of the viewbox properties is (xO, yO, u width, u heart), separated by commas or spaces between each values, which jointly define the areas to be displayed in the Windows: the upper left corner coordinates of the Windows are (x0, y0), the width of the Windows is u width, high U height; the transformation works for the entire Windows.
The viewBox is actually set up to include two variations of window space zooming and peaceful transitions.
The calculation for transformation is also simple: for example, the window for the most outer svg element, assuming that the width and length of svg is set at wdth, height, viewBox (XO, yO, u width, u height). The graphics are drawn with a wide and high scaling ratio: wdth/u wdth, height/u head. The coordinates of the upper left corner of the window are set at (x0, y0).
The move function. Enter the parameter in the direction, changing the location of the SVG graphics in the entire window by changing the xO, v0 elements of the viewbox. Bind to the keyboard and button.
(2) Drag function. Enter parameters as original coordinates and offsets. Saves the initial coordinates by rewriteing the events on the web site — onmousedown, onmousemov, onmouseup — and rewrites the viewbox properties by rewrites the events on the webpage — onmousedown, rewrites the initial coordinates when onmousemove time when onmousedown, changes the viewbox properties when onmousemove, and grants unmousemove null values when onmousep.
(3) zoom function. Enter parameters of zoom type, modify zoomLevel parameters when zoom, determine the current zoom level, and modify U width, U in Viewbox
Height zooms down and changes x 0 and y0 to ensure that the centre position remains the same.
(4)add function. Enter parameters for the type of element and add elements to the map.
(5)delete function. Enter the parameter to remove the element from the map.
(6) GetCoordinate function. Enter the room number, return a point inside the room and facilitate the addition of room tags. First, you obtain the d attributes of the path element from the room number, extract the coordinates of each point, and the sum is approximate central. Note is taken that the d properties differ from the coordinates separator under the browser, and that ie is space and chrome is comma, so you use regular expression/[1-9][O-9]*/g to extract numbers.
(7) Highlight function. Enter parameters for a room number to change the colour properties of the SVG element to highlight the room. Tie to the onmousedown case classified in the SVG room.
(8) move ViaKey, zoomViaMouse function. Ties the keyboard, mouse, and move, zoom function.
(9) Initialize function. The initialization function, completes the binding of events, and the variable is given the initial equivalent. Loaded in window.onload.
- 4 Database implementation
The RSSI fingerprint database should consist mainly of the following three tables:
(1) Sample table: The coordinates used to store the sample point include the id, the coordinates of each sample point, with the sample point id as the primary key.
(2) AP Table: Information used to store wireless routers includes id, MAC, coordinates of each AP, with AP id as the primary key.
(3) Sample point RSSI table: RSSI information used to store the sample point includes information on AP information collected from each sample point and information on the strength of the AP signal, sample point ID, with RSSI form ID as the primary key.
Sample point information table:
Type of data
ID int master key, field identification
X float abscissa of sample point
Y float ordinate of sample point
z float The floor where the sample point is located
Wireless router sample points:
Listing Data type Description
ID int primary key, field identifier
X float abscissa of sample point
Y float ordinate of sample point
z float The floor where the sample point is located
AP varchar No route by name
MAC varchar Wireless Passor Physical Address
Location fingerprint information table:
Listing Data type Description
ID int primary key, field identifier
SID int Sample point ID
APID int Wireless router ID
Signal strength of RSSI varchar AP
- 5 social module implementation
The operating part of the social module is stored in a SJ file. It contains a large number of operational functions.
Share function. Through this function, users are able to share their location through some commonly used exchanges of APs, such as Twitter, QQ.
pj function. Through this function, users can evaluate a number of businesses and make their own comments.
View function. Through this function, a user can see some specific information about where you are searching for.
