Deployment of indoor positioning system
By combining UWB and BLE technologies, creating precision and visibility maps and optimizing the placement and removal of BLE nodes, solving the limitations of existing indoor positioning systems in terms of accuracy and cost-effectiveness, achieving high accuracy and low cost indoors Positioning system deployment.
Patent Information
- Application Number
- CN202080081332.0
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-11-30
- Filing Date
- 2020-11-17
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2040-11-17
AI Technical Summary
Existing indoor positioning systems have limitations in accuracy and cost-effectiveness, especially in complex environments that are difficult to effectively deploy and maintain.
By combining ultra-wideband (UWB) and Bluetooth low power (BLE) technologies, the accuracy and visibility map is created to optimize the placement and removal of BLE nodes for high accuracy and low cost indoor positioning systems.
Highly accurate positioning in complex indoor environments is achieved, equipment and energy costs are reduced, and system maintenance and environmental changes are simplified.
Smart Images

Figure CN114746765B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates generally to positioning systems, and more particularly to methods and systems for deploying indoor positioning systems. Background Art
[0002] Various technologies for locating devices in space have been increasingly used. Many applications utilize the user's location information to connect them with other users, venues, events, or resources nearby, or give them guidance on how to contact them. The location information is also used to collect usage information. Many of these solutions are based on the Global Positioning System (GPS) and are therefore limited in accuracy and line-of-sight operation. Summary of the invention
[0003] According to various exemplary embodiments, a computing device, a computer-readable storage medium, and a method for deploying an indoor positioning system are provided. During a setup phase, a map of an area including one or more domains is determined. Signals are received from multiple ultra-wideband (UWB) nodes and multiple Bluetooth low energy (BLE) nodes in the area, and the signals are relayed by one or more proxies at one or more locations in the area. An accuracy map is created based on a correlation between received signals from the UWB nodes and received signals from the BLE nodes. Locations where multiple BLE nodes are placed are identified based on the accuracy map.
[0004] In one embodiment, upon completion of the setup phase, the UWB nodes are removed when multiple BLE nodes are placed based on the accuracy map.
[0005] In one embodiment, the actions of the setup phase are repeated until each of the one or more nodes is placed at a location that satisfies one or more predetermined criteria.
[0006] In one embodiment, the act of determining a map of the area includes receiving the map from a computing device of an administrator.
[0007] In one embodiment, constraints for a region are received from a computing device of an administrator. For each domain of the region, the constraints may include at least one of: a wall, a device, one or more locations to avoid BLE sensor placement, or a BLE sensor accuracy threshold. One or more domains may not have the same constraints.
[0008] In one embodiment, receiving signals from the UWB node and the plurality of BLE nodes in the area includes moving at least one of the one or more agents in the area to each of the one or more locations of the area.
[0009] In one embodiment, for each BLE node, a visibility map is created based on received signals from multiple BLE nodes in the area. The identification of locations where multiple BLE nodes are placed is also based on the visibility map. Each BLE node with visibility below a predetermined threshold is identified for removal.
[0010] In one embodiment, creating an accuracy map includes, for each of one or more locations in an area, calculating a first estimate of the location of the corresponding agent's location based on received signals from a plurality of UWB nodes in the area. Calculating a second estimate of the location of the corresponding agent's location based on received signals from at least some of a plurality of BLE nodes in the area. The first estimate is used as a ground truth reference for the second estimate. A difference between the first estimate and the second estimate is determined and recorded in the accuracy map.
[0011] In one embodiment, the first estimate and the second estimate of the location are respectively obtained by trilateration of received UWB and BLE signals.
[0012] In one embodiment, the accuracy captured in the accuracy map is based on at least one of: a difference between the first estimate and the second estimate at a predetermined time, or a difference between the first estimate and the second estimate over a period of time.
[0013] These and other features will become apparent from the following detailed description of illustrative embodiments of the invention, which is to be read in conjunction with the accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0014] The accompanying drawings are illustrative embodiments. They do not show all embodiments. In addition or alternatively, other embodiments may be used. Details that may be obvious or unnecessary may be omitted to save space or for more effective description. Some embodiments may be implemented with additional components or steps and / or without all components or steps shown. When the same number appears in different drawings, it refers to the same or similar components or steps.
[0015] Figure 1 An example architecture for a runtime deployment of an indoor positioning system consistent with the illustrative embodiments is shown.
[0016] Figure 2 An exemplary mesh map for deploying ultra-wideband and Bluetooth low energy nodes is shown in accordance with an exemplary embodiment.
[0017] Figure 3 is a block diagram showing various components of an illustrative agent in the form of a mobile device at a high level.
[0018] Figure 4A conceptual block diagram of a system for generating an indoor positioning system deployment is shown, consistent with the illustrative embodiments.
[0019] Figure 5 It is an accurate map of the area created by the indoor positioning system development engine.
[0020] Figure 6 A visibility map consistent with the illustrative embodiments is shown.
[0021] Figure 7 is a block diagram of a data structure for generating an accuracy / uncertainty map for a region, consistent with an illustrative embodiment.
[0022] Figure 8 is a block diagram of a data structure for generating a visibility / occlusion map for each node of a region, consistent with an illustrative embodiment.
[0023] Fig. 9 An illustrative process for deploying an indoor positioning system during a setup phase is presented.
[0024] Fig.10 Such as Figure 1 A functional block diagram of the computer hardware platform of the deployment engine server. DETAILED DESCRIPTION
[0025] In the following detailed description, numerous specific details are set forth by way of example in order to provide a thorough understanding of the relevant teachings. However, it should be appreciated that the present teachings may be practiced without these details. In other instances, well-known methods, procedures, components, and / or circuits have been described at a relatively high level without detail in order to avoid unnecessarily obscuring aspects of the present teachings.
[0026] The present disclosure generally relates to methods and systems for optimizing the deployment of positioning system technologies. Today's applications are rapidly expanding to indoor applications and other applications where GPS alone cannot provide adequate performance. Several examples include guiding workers in office buildings, tracking equipment and caregivers in hospitals, guiding shoppers in shopping malls, and even guiding robots and drones in caves, tunnels, and factories. For such obstructed environments, positioning systems should be intelligently deployed within the environment and operate with greater accuracy and precision.
[0027] The challenges of designing an effective indoor positioning system (IPS) include configuring the system (e.g., node placement, transmission power, transmission rate, and other settings) in a way that maximizes system performance on a map. As used herein, a map includes a set of states (positions) that an agent can occupy. A node refers to a sensor or transmitter operating at a known location within a map. A configuration refers to a set of nodes (and their corresponding settings) at a known location within a map.
[0028] In various scenarios, indoor environments may have complex constraints on node placement, including but not limited to: building access restrictions, building infrastructure restrictions, power availability, security restrictions, etc. Due to the complexity and often lack of understanding of the constraints, solving the challenge of placing nodes in indoor environments as a pure optimization problem is difficult. Solving this optimization problem without constraints or with unrealistic constraints may lead to solutions that are not practically achievable.
[0029] An example of a challenging indoor environment is that inside a hospital. Patient privacy and safety restrictions may remove several otherwise valid locations from the map. In addition, other equipment may hinder node placement, interfere with signal propagation, or not provide convenient power. For example, some rooms may have specialized equipment (e.g., X-ray, MRI, etc.) that limits node placement from a wide region of the map. These restrictions are typically not realized until the nodes are deployed.
[0030] Other example environments where the techniques discussed herein may be applied include subways, shopping malls, skyscrapers, etc. Significant environments are not limited to buildings, but may include, but are not limited to, tunnels, caves, ruins, etc., each including their own unique constraints. All of these environments are supported by the indoor positioning system discussed herein.
[0031] In addition to configuring an effective IPS, another consideration is system maintenance and adaptability to environmental changes. Indoor environments are dynamic because they can be easily reconfigured. For example, hospitals move equipment and furniture, and often undergo construction to expand buildings or upgrade infrastructure. Broken, blocked, or missing nodes can usually be replaced at predetermined intervals or upon triggering events, which may require adding additional nodes (e.g., new domains in an area and / or recently blocked areas).
[0032] Thus, discussed herein are visually intuitive interactive tools that provide node placement analysis and guidance that can be used to provide improved indoor positioning system configurations. In one aspect, various technologies with different levels of accuracy and precision are used in a coordinated manner during a setup phase to provide a highly accurate, reliable, and cost-effective indoor positioning system for a live phase. For example, a high-performance technology is used during the setup phase to optimize deployment, which can be removed during a later live phase using a more economical technology to reduce positioning system complexity and cost.
[0033] In an embodiment, high-precision ultra-wideband (UWB) technology is paired with low-precision Bluetooth low energy (BLE) technology to provide efficient placement of nodes within a map that produces a predetermined degree of accuracy. The received signal strength (RSS) of each node is used as a metric for estimating the distance of the BLE node to a receiver (e.g., a subject being monitored or guided). However, in various embodiments, the techniques and metrics discussed herein are interchangeable and can be extended to more than two technologies.
[0034] For example, UWB nodes can be used to optimize the performance of BLE nodes during the setup phase. These UWB nodes can be disabled (and / or reused in other environments) thereafter. Although BLE may not be as accurate as UWB, it provides significantly reduced power consumption and cost, enabling the use of more devices (e.g., nodes). In some scenarios, fewer BLE nodes can be used while maintaining the desired accuracy. For example, consider using a UWB system in multiple locations (e.g., in the four corners of an auditorium) to optimize the placement of BLE nodes. After the optimization is complete, the UWB system can be moved to a second location (e.g., a cafeteria to start the same process again). Therefore, it is allowed to reuse the smallest UWB system to deploy BLE nodes in a large space. In this way, a fast and easy-to-use indoor positioning system deployment guide is provided at run time, which maximizes performance, minimizes equipment and energy costs, and can comply with various constraints, which will be discussed in more detail later.
[0035] Administrators are able to quickly determine effective and efficient configurations by making instant notification decisions about where to place BLE nodes. In one embodiment, the system itself provides the recommended number and location for BLE nodes. In addition, when environmental changes and maintenance are required, administrators can periodically test updates to the indoor positioning system with minimal effort, which can be performed with or without UWB nodes. Unlike prior art systems that use RSS-based Wi-Fi and BLE solutions, the precision and accuracy of determining the location of the agent is improved while keeping deployment costs low. By placing BLE nodes in appropriate locations and removing invalid BLE nodes, positioning system performance is improved while energy and equipment costs are reduced. In addition, the techniques discussed herein do not require complex and / or computationally intensive algorithms (e.g., particle filtering, deep learning, genetic algorithms, etc.), which are sometimes used to overcome poor node placement and poor sensor accuracy / precision.
[0036] The technology described herein can be implemented in a variety of ways. An example implementation is provided below with reference to the following figures.
[0037] Figure 1 An example architecture 100 of a runtime deployment of an indoor positioning system (IPS) consistent with an illustrative embodiment is illustrated. The architecture 100 includes an area 102 where a global positioning system (GPS) or other satellite technology may lack sufficient accuracy or penetration, such as, but not limited to, a building, a parking garage, a stadium, a shopping mall, an airport, a hospital, a tunnel, a cave, a factory, etc. There are two main technologies used to locate agents within the area, namely UWB and BLE, represented by nodes 104(1) to 104(N) and 110(1) to 110(N), respectively. These technologies play different roles during the setup phase and the active phase, as discussed in more detail below. As used herein, an agent is a receiver capable of harvesting UWB and / or BLE signals. In various embodiments, the agents can take the form of portable handsets, smart phones, tablet computers, personal digital assistants (PDAs), and smart watches, but they can be implemented in other form factors, including consumer, medical and commercial electronic devices, robots, and drones. For the purposes of discussion, the agents are represented by mobile devices 112 and robots 114. For example, a robot, drone, etc. 114 may automatically roam the area 102 during a setup phase to help determine appropriate locations for BLE nodes 110(1) to 110(N) with the assistance of UWB nodes 104(1) to 104(N), which will be discussed in more detail later. Then, during an active phase, these BLE nodes 110(1) to 110(N) act as beacons to guide agents (such as users with mobile devices 112) through the area 102.
[0038] There may be a network 106 that allows agents 112 and 114 to communicate with various resources connected to the network 106, such as an indoor positioning system (IPS) deployment engine 132 running on a server 120 and / or an administrator via a corresponding computing device 130. In some embodiments, the network 106 may be accessed via a router 116. The network 106 may be, but is not limited to, a local area network ("LAN"), a virtual private network ("VPN"), a cellular network, the Internet, or a combination thereof. For example, the network 106 may include a mobile network that is communicatively coupled to a private network (sometimes referred to as an intranet) that provides various ancillary services, such as communicating with the IPS deployment engine 132 to identify the appropriate placement and number of BLE nodes 110(1) to 110(N).
[0039] In some embodiments, administrator 131 may provide as input various constraints or limitations of area 102 via their computing device 130. For example, these constraints may include walls, equipment that cannot be easily moved, areas to avoid placing sensors (e.g., to prevent interference with medical equipment), etc.
[0040] In some embodiments, administrator 131 may provide initial placement of BLE nodes 110(1) through 110(N) and select their final placement after receiving feedback from IPS deployment engine 132 during a setup phase (e.g., in the form of accuracy, visibility, and / or obscuration maps and other metrics discussed in more detail later).
[0041] Initial input may include where to place the UWB nodes and BLE node deployment information, such as a universally unique identifier (UUID) of each node (e.g., BLE) and the coordinates of each node within the map 200. The nodes may initially be placed randomly or intuitively by an administrator. For example, UWB nodes may be placed at the four corners of the map 200, such as Figure 2 As shown. The initial input may also include the desired accuracy for each grid location (e.g., within a quadrant, sometimes referred to herein as a domain) in the map 200. For example, different quadrants may have different levels of accuracy: for example, a kitchen, a storage location, or a bathroom may not require the same level of accuracy as a hallway and a conference room. In addition, the block size, i.e., the granularity of the grid used to build subsequent maps (e.g., 1m, 2m, 5m, etc.), and the desired accuracy for each domain may be specified. The administrator may provide an initial number of BLE nodes to be used as well as lower and upper limits.
[0042] In some embodiments, administrator 131 specifies a duration for the setup phase (e.g., 2 hours, 1 day, etc.), a resolution of measurements (e.g., at what intervals location determination is performed (e.g., 5m, 1m, etc.)), types of agents (e.g., robots, drones, individuals walking in area 102 using UWB and BLE receivers, whether various agents collect information within a predetermined time period, etc.), and locations to avoid (e.g., it is not expected that agents will cover this area during the later active phase). In some embodiments, manager 131 can provide an accuracy function and a visibility function as input for use by the IPS deployment engine (discussed in more detail later).
[0043] For example, during a setup phase, UWB nodes 104(1) to 104(N) are used to determine the current tile location of a receiver (eg, agent 114) within a grid map. In this regard, reference is made to Figure 2 , which shows an exemplary grid map 200 with a deployment of UWB and BLE nodes according to an exemplary embodiment. UWB nodes are depicted as squares, BLE nodes are depicted as circles, and agents are depicted as diamonds. UWB nodes can achieve a high level of accuracy (e.g., within 10 cm) and can therefore be used as a reference or ground truth for the location of the agent. The received signal strength RSS of Bluetooth Low Energy (BLE) nodes (i.e., at a known location) obtained by a mobile agent can be used to collect measurements for building precision maps, visibility maps, and blackout maps, as well as for calculating several other performance metrics discussed later. RSS, sometimes referred to as the received signal strength indicator (RSSI), is a measurement of the power present in a received radio signal from a BLE node, expressed in decibels (dB), which operates as a beacon with a known location.
[0044] After comparing the signal values received from the registered BLE nodes with their known coordinates, the agent is able to estimate its distance to each corresponding BLE node by RSSI (e.g., using a path loss model). It should be understood that other models may also be used. The longer the distance, the lower the RSSI signal. In one embodiment, trilateration is used with three or more BLE nodes in the agent's line of sight to determine its position on map 200. Typically, three or more nodes are used to determine the position of the agent within map 200. However, in some scenarios, such as narrow passages (e.g., tunnels or corridors), two beacons (i.e., BLE nodes) may be sufficient. When the BLE nodes are effectively placed, the location of the agent can be determined within the desired accuracy. In order to achieve the desired accuracy, UWB nodes are used to determine the correct number and placement of BLE nodes. To this end, accuracy, visibility and / or obscuration maps are generated by correlating the signals received from the UWB nodes and the BLE nodes. These maps facilitate determining the number of BLE nodes and their proper placement to achieve the desired accuracy for each domain of map 200, after which the UWB nodes can be removed (e.g., to be reused in another area). In this way, a low-energy, low-complexity, low-cost, and high-accuracy IPS can be deployed.
[0045] Return to reference Figure 1 Although IPS deployment engine 132 is illustrated as part of remote server 120 as an example, in one embodiment, the functionality of IPS deployment engine 132 may be performed by the agent (e.g., 112 or 114) itself. In other embodiments, one or more of these computing platforms may be implemented by a virtual computing device in the form of a virtual machine or software container hosted in the cloud, thereby providing a resilient architecture for processing and storage.
[0046] like Figure 1 As discussed in the context of , efficient deployment of IPS can involve different types of proxies. To this end, Figure 3 A block diagram is shown showing, at a high level, various components of an illustrative agent in the form of a mobile device 300. For purposes of discussion, the illustration shows mobile device 300 in the form of a wireless computing device, while it will be appreciated that other computing devices are also contemplated.
[0047] The mobile device 300 may include one or more antennas 302; a transceiver 304 for cellular, Wi-Fi communications, short-range communications technology, and / or wired communications; a user interface 306; one or more processors 308; hardware 310; and a memory 330. In some embodiments, the antenna 302 may include an uplink antenna that sends radio signals to a base station and a downlink antenna that receives radio signals from a base station. In some other embodiments, a single antenna may send and receive radio signals. The same or other antennas may be used for Wi-Fi communications, UWB communications, and / or BLE communications. These signals may be processed by the transceiver 304, sometimes collectively referred to as a network interface, which is configured to receive and send digital data. In one embodiment, the mobile device 300 does not include an antenna 302, and communication with external components is via wired communication.
[0048] In one embodiment, the mobile device 300 includes one or more user interfaces 306 that enable a user to provide input and receive output from the mobile device 300. For example, the user interface 306 may include a data output device (e.g., a visual display, an audio speaker, a tactile device, etc.) that can be used to provide visual content to display various content, such as accuracy, visibility, and obstruction maps, as well as various related metrics discussed herein. The display can also be used to display the location of the mobile device 300 relative to the indoor area in which it is located.
[0049] The user interface 306 may also include one or more data input devices. The data input devices may include, but are not limited to, a keypad, a knob / controller, a keyboard, a touch screen, a voice recognition package, and any other suitable device or other electronic / software selection interface.
[0050] The mobile device 300 may include one or more processors 308 , which may be a single core processor, a multi-core processor, a complex instruction set computing (CISC) processor, a gaming processor, or any other type of suitable processor.
[0051] Hardware 310 may include a power supply and a digital signal processor (DSP), which may include a single-core or multi-core processor. Hardware 310 may also include a network processor that manages a high-speed communication interface, including a communication interface that interacts with peripheral components. The network processor and peripheral components may be linked via a switching fabric. Hardware 310 may include a hardware decoder and encoder, a network interface controller, and / or a USB controller.
[0052] The hardware 310 may include various sensors that may be used to facilitate determination of the position and orientation of the mobile device 300. For example, there may be one or more accelerometers 312 configured to measure acceleration forces, which may be used to determine the orientation of the mobile device 300. There may be a gyroscope 314 that allows for measurement of rotation as well as lateral movement of the mobile device 300. In one embodiment, the accelerometer(s) 312 and the gyroscope 414 may be used together to better determine the orientation and speed of movement of the mobile device 300.
[0053] The hardware 310 may further include a GPS sensor 316 operable to provide the location of the mobile device 300 and its velocity when the mobile device 300 transitions out of an indoor area where satellite signals can be received. There may be a camera 320, as well as BLE 318 and / or UWB 322 sensors, and a magnetometer 324.
[0054] The mobile device 300 includes a memory 330 that can be implemented using computer-readable media such as computer storage media. Storage media include volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media include, but are not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD), high-definition video storage disks, or other optical storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other non-transmission media that can be used to store information for access by a computing device.
[0055] The memory 330 may store various software components or modules that may be executed or accessed by the processor(s) 308 and controller(s) of the mobile device 300. The various components of the memory 330 may include software 332 and an operating system 370. The software 332 may include various applications 340, such as an IPS deployment engine 342 having several modules, each configured to control a different aspect of the IPS. In some embodiments, the location engine 342 may include the functionality of the features of the IPS deployment engine discussed herein. Although the modules of the IPS deployment engine 342 are described above in the context of software applications, it should be noted that one or more functions may be performed in the hardware 310.
[0056] The operating system 370 may include components that enable the mobile device 300 to receive and send data via various interfaces (e.g., user controls, communication interfaces, and / or memory input / output devices) and process the data using the processor(s) 308 to generate output. The operating system 370 may include a presentation component that renders the output (e.g., displays at least a portion of the media content on an electronic display of the mobile device 300, stores the data in the memory 330, transmits the data to another electronic device, etc.). In addition, the operating system 370 may include other components that perform various additional functions typically associated with the operating system 370. With the help of the hardware and software of the mobile device 300, the location of the mobile device 300 can be identified with high accuracy and efficiency while maintaining a low IPS cost.
[0057] Figure 4 A conceptual block diagram 400 of an IPS deployment system according to an exemplary embodiment is shown. An IPS deployment engine 432 receives several inputs from a computing device 412 of an administrator 431 to initialize deployment. For example, the inputs may include, but are not limited to, a map of the environment, a UWB positioning system and its location, a list of initial BLE node configuration information, and at least one receiver (e.g., proxy) configuration. The map is gridded at a granularity specified by the administrator 431 (ideally corresponding to the level or accuracy required by the application). The administrator 431 may also specify a sampling period for which the harvested data will be stored.
[0058] During the setup phase, the IPS deployment engine 432 combines the signals received from the UWB positioning system (i.e., representing high accuracy and therefore ground truth of the agent's location) with the BLE positioning system (i.e., low accuracy, low cost, and low complexity). The BLE 404RSS data from all active nodes is collected by the corresponding agents and stored by the IPS deployment engine 432 (e.g., published to a RESTful service). The UWB positioning system 402 and the positioning algorithm (e.g., trilateration, extended Kalman filter (EKF), or any other appropriate real-time solution) are used to determine the current grid block location of one or more active data collection agents. The UWB positioning data is also stored by the IPS deployment engine 432 (e.g., published to a RESTful service). In one embodiment, the administrator 431 can interface with the IPS deployment engine 432 using a computing device running a location engine that can access the RESTful service.
[0059] In one embodiment, the UWB nodes 402 are deployed with at least three or four nodes. For example, three nodes can be used for 2D positioning, while four nodes can be used for 3D positioning. The UWB nodes 402 are deployed locally in the map domain being optimized. BLE (i.e., low precision) nodes 404 are deployed in the area according to an initial configuration (which can be random) to collect data. In one embodiment, the system is initialized to an under-deployment (e.g., below an initial minimum estimate), and BLE nodes 404 are added or moved to improve performance. BLE node 404 measurements are collected and used by the IPS deployment engine 432 to create a map representing the overall accuracy of the node measurements at each visited grid block, referred to herein as an accuracy map, which can be used to determine low-precision and / or high uncertainty domains in the area. At this point, reference is now made to Figure 5 , which is an accuracy map 500 of an area created by an IPS development engine consistent with an illustrative embodiment. For the purposes of discussion, the accuracy map 500 refers to Figure 4 The IPS deployment system is described in detail below.
[0060] In the accuracy map 500, the BLE nodes are represented by "X" (e.g., 540). The accuracy map 500 may include obstacles (e.g., 520) such as concrete columns, immovable devices, etc. There may also be walls (e.g., 510) that provide a physical barrier for the BLE nodes. For simplicity, different types of obstacles, walls, and other restrictions are collectively referred to herein as constraints.
[0061] In various embodiments, the restrictions may be received as input by the IPS deployment engine 432 from the administrator 431 via the administrator's 431 computing device 412, or determined by the IPS deployment engine 432 based on signal strength and noise from the BLE nodes or other sensors (e.g., optical, radar, laser, etc.). In some embodiments, the restrictions may indicate avoiding locations that place BLE nodes within areas that are considered inappropriate (e.g., potentially affected devices, such as sensitive medical devices, or devices that interfere with the signal).
[0062] exist Figure 5In the accuracy map 500, low domains represent high accuracy (i.e., low uncertainty) while high domains have low accuracy (i.e., high uncertainty). In one embodiment, the uncertainty can be determined by calculating the difference between the location information provided by the UWB signal and the BLE signal relative to the subject receiver (i.e., the agent). In this way, the IPS deployment engine 432 is able to determine where to place additional BLE nodes and where they are above or below the representation of the desired level of accuracy. If the magnitude of the domain is substantially low (e.g., below a predetermined threshold standard provided by the administrator 431), then the BLE node can be removed. In other words, if the accuracy is unnecessarily high, it indicates that there may be more BLE nodes than needed, which can allow the BLE node to be reused for another location in the map grid 500.
[0063] In one embodiment, Figure 5 The accuracy indicated in is based on the variance between the ground truth (i.e., the location indication of the subject agent provided by the UWB node 402) and the BLE node 404, where the location based on the signal of the UWB node 402 represents the "ground truth." If the variance is above a predetermined threshold, it is considered a low accuracy and / or high uncertainty location and is graphically represented as a spike (e.g., 530) in the accuracy map 500, and additional beacons (i.e., BLE nodes) indicating that they are at that location are warranted.
[0064] Different types of variance can be considered, each time the location provided by the UWB node is used as ground truth. The first type of variance can be based on the variation between the location provided by the UWB node and the location provided by the BLE node. The second type of variance can be variation over time. For example, a BLE node may make the same measurement at different times. If the signal from a BLE node varies over time above a predetermined threshold, it is considered to be in the high uncertainty and / or low precision domain. Therefore, Figure 5 The accuracy map 500 can be used to determine which domains should receive additional nodes to make the positioning algorithm effective. As non-limiting examples, Kalman filters, extended Kalman filters, k-nearest neighbors (KNN), trilateration, and triangulation can be used.
[0065] Visibility maps 450(1) to 450(N) show a measure of the visibility of a particular node over an associated area. In this regard, reference is made to Figure 6 , which shows a visibility map consistent with an illustrative embodiment. Figure 4 IPS deployment system to discuss visibility map 600. As previously described, BLE nodes are represented by "X". "Low domain (e.g., Figure 6 ) have high visibility (and hence low occlusion), while high domains (e.g. Figure 6) have low visibility (and therefore high occlusion). The IPS deployment engine 432 may determine to remove nodes with empty or nearly flat maps because they do not contribute to overall system performance. If a node's map becomes blank or flat, it may also indicate a failed or missing BLE node, which in turn indicates that the node may need service.
[0066] Thus, the accuracy / uncertainty map 440 and the occlusion / visibility maps 450(1) to 450(N) together indicate how well different domains of a particular BLE node service area are, and can provide insight into which nodes have poor placement and which domains have no coverage. These maps also indicate when a node fails or is substantially blocked, as their visibility maps will become blank. In one embodiment, these accuracy / uncertainty maps 440 and occlusion / visibility maps 450(1) to 450(N) can be provided to an administrator 431 as guidance on where to place BLE nodes for effective positioning operations. In some embodiments, maps are used to determine the appropriate number and placement of BLE nodes. Appropriate locations can be indicated on the map so that the administrator 431 cannot interpret the map.
[0067] Thus, the accuracy / uncertainty map 440 displays a generalized measure of the available measurements at locations in the map. In one embodiment, such a display provides an intuitive visualization of the relative measurement accuracy to the administrator 431, which can directly affect how well the positioning algorithm performs.
[0068] Visibility maps 450(1) to 450(N) provide an intuitive visualization of the visibility of nodes on the map on a per-node basis. In one embodiment, this visualization provides an intuitive way for administrators 431 to understand whether BLE nodes are contributing sufficiently to the overall performance of the positioning system on the map (e.g., having visibility above a predetermined threshold). Blocked, faulty, or failed nodes appear as empty points on the visibility map.
[0069] Due to the different levels of automation, the interaction or workload of the administrator 431 can be substantially more efficient or minimized in determining the number and appropriate placement of the BLE nodes 404. Passive or automated data collection agents (e.g., by robots and / or drones) can also be utilized to further reduce the administrator's workload (e.g., workers in the building simply read their normal day or several autonomous robots move around the area over time during the setup phase using their mobile devices as BLE and UWB receivers). After the setup phase is completed, the UWB nodes can then be removed and reused in another area.
[0070] In one embodiment, the accuracy / uncertainty map 440 and the occlusion / visibility maps 450(1) to 450(N) are updated as measurements are collected and can be used by the IPS deployment engine 432 at any time to perform updates to the configuration of the BLE nodes 404. These maps can highlight to the administrator 431 locations on the map where accurate measurements from available BLE nodes are lacking and which BLE nodes have low visibility within the map area. The administrator can place nodes based on the intelligent guidance provided by the IPS deployment engine via these accuracy and visibility maps.
[0071] On the other hand, in domains where accuracy and / or visibility are above a given threshold level, the administrator can remove nodes and potentially relocate them to locations with lower accuracy. This type of "administrator in the loop" feedback and update feature allows administrator 431 to deploy configurations at runtime without prior knowledge of the constraints of the area. In one embodiment, as administrator 431 encounters constraints during deployment, they can be added to the map via digital messages from computing device 412 to IPS deployment engine 432. Thus, IPS deployment engine 432 allows administrator 431 to review and update the configuration of an area as the environment of the area changes over time.
[0072] The combination of these maps (ie, accuracy / uncertainty 440 and occlusion / visibility (450(1)) through 450(N)) along with administrator judgment in updating constraints and node placement completes the loop of incremental improvements in node deployment.
[0073] The concepts discussed herein may provide, among other benefits, runtime deployment guidance, performance improvements, equipment cost reduction, energy cost reduction, maintenance cost reduction, system failure notification, environmental change notification, and the like.
[0074] There are several candidate functions for creating the accuracy and visibility maps discussed herein. In some embodiments, the administrator 431 may choose to use their own metrics instead of the predefined candidate functions. In this regard, reference is made to Figure 7 , which is a block diagram 700 of a data structure for an accuracy / uncertainty map 712 generated for a region, consistent with an illustrative embodiment.
[0075] The accuracy map 712 may cover an area including multiple blocks (e.g., Block_0 to Block_M). Each block may include multiple BLE nodes. It should be noted that the number of BLE nodes may be different or the same for each block. For each BLE node of a block, the IPS deployment engine applies an accuracy / visibility function to calculate various statistics for that particular node of the block. A specified accuracy function may be applied to the statistics on a per-block basis. The accuracy function returns a generalized measure of the accuracy of the available measurements within the grid block. These measurements are then added to the accuracy map 712.
[0076] Thus, as described above, the accuracy map is used by the IPS deployment engine to help determine the number of BLE nodes and their locations. For example, for each grid block, the IPS deployment engine performs all BLE node measurements and uses all BLE node measurements to calculate the difference for each BLE node. The IPS deployment engine can then calculate the average difference of the n nodes with the smallest difference (we can call this metric the average minimum difference) and generate a map that visualizes this metric on the grid map. Blocks with the worst scores are prioritized for additional node placement. For example, at a grid block, signals from distant BLE nodes can still be detected, and because they are far away, they may not work at all and the signal difference is too high. Therefore, it may be appropriate to only look at the nodes with the smallest difference. Therefore, in some embodiments, a lower limit and / or an upper limit are used.
[0077] Figure 8 800 is a block diagram of a data structure for generating a visibility / occlusion map for each node of a region consistent with an illustrative embodiment. Block 806 indicates statistics calculated by the IPS deployment engine for a particular node of each block across the region. A specified visibility function is applied to the statistics for each block, and the calculated scores (e.g., based on RSSI or distance metrics) are annotated to the corresponding blocks of the visibility map. For each node, a corresponding visibility map is created (e.g., 812(1)-812(N)).
[0078] For example, for each BLE node, the IPS deployment engine calculates the average drop rate across each block of the grid map (e.g., for each block defined in the map). A visibility map is generated that visualizes this metric for the grid map. The coverage of the BLE nodes can be quantified as the sum of the average drop rates for all states. Nodes with the worst scores are prioritized for removal.
[0079] Therefore, as described above, the IPS deployment engine can use the accuracy map and visibility map Figure 2The administrator can then use the generated map to determine the number of BLE nodes and their locations. In one embodiment, the administrator iteratively adds / removes BLE nodes in the area to optimize system performance based on the generated map and several metrics, as discussed herein. Table 1 below provides some simple metrics that can be used in the context of generating an accuracy map, by way of example only and not limitation:
[0080] Table 1:
[0081]
[0082] Table 2 below provides some simple metrics that may be used in the context of the generation of visibility maps, by way of example only and not by way of limitation:
[0083] Table 2:
[0084]
[0085] Regarding the drop rate, for example, if 10 measurements are performed at a grid block and 10 measurements are received from a node, the node is active because its data can be read well because the number of measurements received is equal to the total number of samples taken. However, if 10 measurements are performed at a grid block and only 5 measurements are received from a node due to, for example, an obstacle, the drop rate will be 50%. Although some exemplary metrics are provided in Tables 1 and 2 above, it will be understood that other appropriate metrics may also be used.
[0086] In one embodiment, the IPS deployment engine generates a shielding map based on the accumulation of visibility metrics between nodes. The shielding map is derived from the visibility map and is therefore collectively referred to as a visibility map in this article. The shielding map on the state grid represents the combined visibility of all nodes (e.g., its visualization does not receive signal propagation from any node). In other words, multiple visibility maps are used to create a shielding map. The shielding map visualization does not receive signal propagation from any node (e.g., location). In one example, the visibility map is summed across all nodes. The IPS deployment engine regards any grid location with a sum less than a predetermined threshold as a shielding domain. Such a designation can convey to the administrator that the domain does not have service from available BLE nodes and the positioning algorithm will not be able to operate adequately, and one or more nodes need to be added or moved to the area.
[0087] In one embodiment, the administrator can also introduce new constraints to the data in the form of metrics. Once the administrator has achieved adequate performance, UWB can be disabled and the low energy high performance BLE configuration can be used long term during the active phase. The UWB system can be reactivated periodically to perform maintenance on the system or to adjust for environmental changes.
[0088] If the UWB node is no longer available for redeployment, some measurements from the BLE node can still be used to determine whether the long-term BLE configuration is still valid. For example, the metrics in Table I, the average minimum difference or the maximum minimum difference, or other metrics that do not require UWB positioning, can be used to determine the low accuracy / high uncertainty domain in the case of accuracy / uncertainty maps. The same method can be used for visibility / occlusion maps to determine whether the BLE node is no longer visible on the grid map.
[0089] The following pseudocode provides an example of an update that can be performed.
[0090]
[0091] By comparing architecture 100, Figure 3 With the above overview of the example mobile device 300 and the example block diagram 400, it may be helpful to now consider a high-level discussion of an example call flow process. To this end, Fig. 9 An illustrative process 900 for deploying an IPS during a setup phase is presented. Process 900 is shown as a collection of boxes in the process, representing a sequence of operations that can be implemented in hardware, software, or a combination thereof. In the context of software, the boxes represent computer-executable instructions that, when executed by one or more processors, perform the recited operations. Generally, computer-executable instructions may include routines, programs, objects, components, data structures, etc. that perform specific functions or implement specific abstract data types. The order in which the operations are described is not intended to be construed as a limitation, and any number of the described boxes may be combined in any order and / or executed in parallel to implement the process. For purposes of discussion, reference is made to FIG. Figure 1 Process 900 will be described using architecture 100, and more specifically, it will be assumed that IPS deployment engine 132 is hosted by IPS deployment engine server 120, although it will be understood that in other embodiments the IPS deployment engine may be part of an agent (e.g., 112 or 114).
[0092] At block 902, a map of the area 102 including one or more domains is determined. For example, the map may be received from a computing device 130 of an administrator 131 via a network 106. In some embodiments, various constraints may be received from the computing device 130 of the administrator 131. For example, these constraints may include walls, equipment that cannot be easily moved, areas to avoid sensor placement, etc. Different domains of the area 102 may have different constraints. In some embodiments, an accuracy threshold may be provided by the administrator 131 to the IPS deployment engine 132, which may be different for each domain of the area.
[0093] At block 904, in various embodiments, one or more agents may move around the area to different locations, or may even be stationary. At block 906, for each of the locations, signals from a plurality of UWB nodes are received by a corresponding agent. Similarly, signals from a plurality of BLE nodes are received by a corresponding agent. These signals are relayed by these one or more agents to Figure 1 The IPS deployment engine 132 of the computing device 120.
[0094] At block 908, an accuracy map is created based on correlations between captured signals from the UWB nodes and captured signals from the BLE nodes.
[0095] At block 910, in one embodiment, a visibility map is created based on captured signals from the BLE nodes. For example, a visibility map for each BLE node is created to highlight the visibility of the corresponding node.
[0096] At block 920, locations are identified for placement of the plurality of BLE nodes. In various embodiments, as discussed herein, the determination of placement may be based on an accuracy map, a visibility map, or a combination thereof.
[0097] For example, with respect to the accuracy map, for each of the locations, a first estimate of the location of the corresponding agent is calculated based on the captured signals from at least some of the UWB nodes. A second estimate of the location of the location is calculated based on the captured signals from at least some of the BLE nodes. The first and second estimates of the location can be respectively obtained by triangulating the captured signals from the UWB node and the BLE node. The first estimate is used as a ground truth reference for comparison with the second estimate. The difference between the first estimate and the second estimate is determined. In other words, the greater the difference in the signal from the BLE node relative to the ground truth, the less accurate or uncertain the location is, which is captured in the accuracy map. In various embodiments, accuracy can be characterized in different ways. For example, accuracy can be based on the change between the location provided by the UWB node and the location provided by the BLE node. The second type of change can be a change over time. For example, the same measurement can be made from the BLE node at different times. If the signal from the BLE node changes over time above a predetermined threshold, it is considered to be a high uncertainty and / or low precision domain.
[0098] At block 914, a determination is made as to whether the accuracy of each location is above a predetermined threshold. If not (i.e., "No" at decision block 914), the process continues to block 920, where the BLE nodes are placed at appropriate locations, as provided by the accuracy map and / or visibility map discussed above. The iterative process then returns to block 904. However, after determining that the accuracy of each location is above a predetermined threshold (i.e., "Yes" at decision block 914), in one embodiment (at block 916), for each BLE node, Figure 1 The IPS deployment engine 132 in determines whether the visibility of the corresponding BLE node is above a predetermined threshold. If the visibility is not above the predetermined threshold (i.e., "No" at decision block 916), the process continues to block 920, where the corresponding BLE node is removed / relocated. However, upon determining that the visibility is above the predetermined threshold (i.e., "Yes" at decision block 916), it indicates that the deployment of the IPS has been optimized. In this regard, in one embodiment, at block 924, the UWB node can be removed and repurposed for another area.
[0099] Upon completion of the setup phase, the positioned BLE nodes can provide accurate and low-cost positioning guidance to user devices compatible with BLE technology.
[0100] As described above, functions related to optimizing the deployment of an IPS may be performed using one or more computing devices connected to communicate data via wireless communications, such as Figure 1 As shown. Figure 3 An example mobile device 300 in the form of a smart phone device is discussed in the context of FIG. Fig.10 Such as Figure 1 1 is a functional block diagram of a computer hardware platform of a deployment engine server 120 in FIG. 1 , which can communicate with various networked components as discussed herein.
[0101] Computer platform 1000 may include a central processing unit (CPU) 1004 , a hard disk drive (HDD) 1006 , random access memory (RAM) and / or read only memory (ROM) 1008 , a keyboard 1010 , a mouse 1012 , a display 1014 , and a communication interface 1016 , which are connected to system bus 1002 .
[0102] In one embodiment, HDD 1006 has the ability to include a stored program that can perform various processes in the manner described herein, such as IPS deployment engine 1040. IPS deployment engine 1040 can have various modules configured to perform different functions. For example, there can be an interaction module 1042 that is operable to receive data about UWB and BLE signals from various agents over a network. There can be a trilateral measurement module 1044 that is operable to calculate the location of the agent based on the signal received from the UWB and / or BLE signal. There can be an accuracy module 1046 that operates to generate an accuracy map of the area. There can be a visibility map module 1048 that is operable to generate a visibility map of each BLE node in the area. There can be a mask map module 1050 that is operable to highlight locations in areas where positioning is invalid. As discussed herein, there can be a metric module 1052 that is operable to obtain various signal metrics.
[0103] Although the modules of IPS deployment engine 1040 are described above in the context of HDD 1006, note that one or more of the functions of these modules may be performed in hardware.
[0104] In one embodiment, a server such as Apache TM In one embodiment, HDD 1006 may store an execution application including one or more library software modules, such as a program for implementing a JVM (Java TM Virtual Machine) Java TM Those modules of the runtime environment program.
[0105] The description of various embodiments of the present teachings has been presented for illustrative purposes, but is not intended to be exhaustive or limited to the disclosed embodiments. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope of the described embodiments. The terms used herein are selected to best explain the principles of the embodiments, practical applications, or technical improvements existing in the market, or to enable other persons of ordinary skill in the art to understand the embodiments disclosed herein.
[0106] Although the above has described what is considered to be the best state and / or other examples, it should be understood that various modifications may be made therein, and the subject matter disclosed herein may be implemented in various forms and examples, and the teachings may be applied to many applications, only some of which are described herein. The appended claims are intended to claim any and all applications, modifications and variations that fall within the true scope of the present teachings.
[0107] The components, steps, features, objects, benefits and advantages discussed herein are merely illustrative. None of them, or the discussion related to them, is intended to limit the scope of protection. Although various advantages have been discussed herein, it will be understood that not all embodiments necessarily include all advantages. Unless otherwise stated, all measurements, values, ratings, positions, amplitudes, dimensions and other specifications in this specification, including those set forth in the attached claims, are approximate and not exact. They are intended to have a reasonable range consistent with the functions to which they are related and the customary practices of the field to which they belong.
[0108] Many other embodiments are also contemplated. These include embodiments with fewer, additional and / or different components, steps, features, objects, benefits and advantages. These also include embodiments in which components and / or steps are arranged and / or ordered in different ways.
[0109] Aspects of the present disclosure are described herein with reference to call flow diagrams and / or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the present disclosure. It will be understood that each step of the flow diagrams and / or block diagrams and combinations of blocks in the call flow diagrams and / or block diagrams can be implemented by computer-readable program instructions.
[0110] These computer-readable program instructions may be provided to a processor of a computer, a special purpose computer, or other programmable data processing device to produce a machine, such that the instructions executed via the processor of the computer or other programmable data processing device create a device for implementing the functions / actions specified in one or more blocks of the call flow process and / or block diagram. These computer-readable program instructions may also be stored in a computer-readable storage medium, which may direct the computer, programmable data processing device, and / or other device to operate in a particular manner, such that the computer-readable storage medium having the instructions stored therein includes an article of manufacture, which includes instructions for implementing various aspects of the functions / actions specified in one or more blocks of the call flow and / or block diagram.
[0111] Computer-readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus, or other device to produce a computer-implemented process, whereby the instructions executed on the computer, other programmable apparatus, or other device implement the functions / actions specified in one or more boxes of the call flow process and / or block diagram.
[0112] The flow charts and block diagrams in the accompanying drawings show the possible architecture, functions and operations of the system, method and computer program product according to various embodiments of the present disclosure. In this regard, each frame in the call flow process or block diagram can represent a module, segment or part of an instruction, which includes one or more executable instructions for realizing a specified logical function. In some alternative embodiments, the functions noted in the frame may not occur in the order noted in the figure. For example, the two frames shown in succession can actually be performed substantially simultaneously, or these frames can sometimes be performed in reverse order, depending on the functions involved. It will also be noted that each frame of the block diagram and / or call flow diagram and the combination of frames in the block diagram and / or call flow diagram can be implemented by a dedicated hardware-based system that performs a specified function or action or performs a combination of dedicated hardware and computer instructions.
[0113] Although the foregoing has been described in conjunction with exemplary embodiments, it should be understood that the term "exemplary" is meant only as an example, rather than the best or optimal. Except as immediately stated above, nothing stated or illustrated is intended or should be construed to cause any component, step, feature, object, benefit, advantage, or equivalent to be dedicated to the public, whether or not stated in the claims.
[0114] It should be understood that, unless specific meaning is elaborated in addition at this, the terms and expressions used herein have the common meaning consistent with these terms and expressions about their corresponding respective investigation and research fields. Relation terms such as first and second etc. can be used only to distinguish one entity or action from another, without requiring or implying any actual such relationship or order between these entities or actions. The term "comprise", "comprising" or any other variation thereof is intended to cover non-exclusive inclusion, so that the process, method, article or device including a series of elements not only include those elements, but also can include other elements that are not clearly listed or are inherent to such process, method, article or device. In the absence of further constraints, the element with "one" or "one / kind" in front does not exclude the existence of additional identical elements in the process, method, article or device including the element.
[0115] The abstract of the present disclosure is provided to allow the reader to quickly determine the nature of the present technical disclosure. It should be understood that it is not used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, it can be seen that in order to make the present disclosure smooth, various features are grouped together in various embodiments. This method of disclosure should not be interpreted as reflecting the intention that the claimed embodiments have more features than the features explicitly recited in each claim. On the contrary, as reflected in the attached claims, the subject of the invention lies in less than all the features of a single disclosed embodiment. Therefore, the following claims are hereby incorporated into the specific implementation method, wherein each claim independently serves as a subject claimed separately.
Claims
1. A computing device, comprising: processor; a network interface coupled to the processor to enable communication via a network; a storage device for content and programming coupled to the processor; an indoor positioning system IPS deployment engine stored in the storage device, wherein execution of the IPS deployment engine by the processor configures the computing device to perform actions, the actions comprising during a setup phase: a map identifying an area including one or more domains; receiving signals from a plurality of ultra-wideband (UWB) nodes and a plurality of Bluetooth low energy (BLE) nodes in the area, the signals being relayed by one or more proxies at one or more locations in the area; For each BLE node: creating a visibility map based on received signals from a plurality of BLE nodes in the area; creating an accuracy map based on a correlation between a received signal from the UWB node and a received signal from the BLE node; and Locations for placing the plurality of BLE nodes are identified based on the visibility map and the accuracy map.
2. A computing device according to claim 1, wherein the execution of the IPS deployment engine by the processor also configures the computing device to instruct the removal of the UWB node when the multiple BLE nodes are placed based on the accuracy map when the setup phase is completed.
3. A computing device according to claim 1, wherein the execution of the IPS deployment engine by the processor further configures the computing device to iteratively repeat the actions of the setup phase until each of the one or more nodes is placed in a location that meets one or more predetermined criteria. 4 . The computing device of claim 1 , wherein the act of determining a map of the area comprises receiving the map from a computing device of an administrator.
5. The computing device of claim 1, wherein execution of the IPS deployment engine by the processor further configures the computing device to perform actions comprising: receiving constraints for the zone from a computing device of an administrator. 6 . The computing device of claim 5 , wherein for each domain of the area, the constraint comprises at least one of: a wall, a device, one or more locations to avoid BLE sensor placement, or a BLE sensor accuracy threshold. The computing device of claim 6 , wherein not all of the one or more domains have the same constraints.
8. The computing device of claim 1 , wherein receiving signals from a UWB node and a plurality of BLE nodes in the area comprises: At least one of the one or more agents in the area is moved to each of the one or more locations in the area.
9. The computing device of claim 1, wherein each BLE node having a visibility below a predetermined threshold is identified for removal.
10. The computing device of claim 1, wherein creating the accuracy map comprises, for each of one or more locations in the area: calculating a first estimate of a location of a corresponding agent's position based on received signals from a plurality of UWB nodes in the area; calculating a second estimate of the location of the corresponding agent's position based on received signals from at least some of the plurality of BLE nodes in the area; using the first estimate as a ground truth reference for the second estimate; determining a difference between the first estimate and the second estimate; The determined differences are recorded in the accuracy map.
11. The computing device of claim 10, wherein the first estimate and the second estimate of the location are obtained by trilateration of received UWB signals and BLE signals, respectively.
12. The computing device of claim 10, wherein the accuracy captured in the accuracy map is based on at least one of: the difference between the first estimate and the second estimate at a predetermined time; or The difference between the first estimate and the second estimate over a time period.
13. A computer-readable storage medium tangibly embodying a computer-readable program code having computer-readable instructions, the computer-readable instructions, when executed, causing a computing device to perform a method of deploying an indoor positioning system IPS, the method comprising during a setup phase: a map identifying an area including one or more domains; receiving signals from a plurality of ultra-wideband (UWB) nodes and a plurality of Bluetooth low energy (BLE) nodes in the area, the signals being relayed by one or more proxies at one or more locations in the area; For each BLE node: creating a visibility map based on received signals from a plurality of BLE nodes in the area; creating an accuracy map based on a correlation between a received signal from the UWB node and a received signal from the BLE node; as well as Locations for placing the plurality of BLE nodes are identified based on the visibility map and the accuracy map.
14. The computer-readable storage medium of claim 13, further comprising: Upon completion of the setup phase, the UWB nodes are instructed to be removed when the plurality of BLE nodes are placed based on the accuracy map.
15. The computer-readable storage medium of claim 13, further comprising: The actions of the setup phase are iteratively repeated until each of the one or more nodes is placed in a location that satisfies one or more predetermined criteria.
16. The computer-readable storage medium of claim 13, further comprising receiving constraints for the area from a computing device of an administrator, wherein for each domain of the area, the constraints include at least one of: a wall, a device, one or more locations to avoid BLE sensor placement, or a BLE sensor accuracy threshold.
17. The computer-readable storage medium of claim 13, wherein each BLE node having a visibility below a predetermined threshold is identified for removal.
18. The computer-readable storage medium of claim 13, wherein creating the accuracy map comprises, for each of one or more locations in the region: calculating a first estimate of a location of a corresponding agent's position based on received signals from a plurality of UWB nodes in the area; calculating a second estimate of the location of the corresponding agent's position based on received signals from at least some of the plurality of BLE nodes in the area; using the first estimate as a ground truth reference for the second estimate; determining a difference between the first estimate and the second estimate; The determined differences are recorded in the accuracy map.
19. A method for deploying an indoor positioning system IPS, comprising: During the setup phase: a map identifying an area including one or more domains; receiving signals from a plurality of ultra-wideband (UWB) nodes and a plurality of Bluetooth low energy (BLE) nodes in the area, the signals being relayed by one or more proxies at one or more locations in the area; For each BLE node: creating a visibility map based on received signals from a plurality of BLE nodes in the area; creating an accuracy map based on a correlation between a received signal from the UWB node and a received signal from the BLE node; as well as identifying locations where the plurality of BLE nodes are placed based on the visibility map and the accuracy map; as well as Upon completion of the setup phase, the UWB nodes are removed while placing the plurality of BLE nodes based on the accuracy map.
20. The method according to claim 19, further comprising: The actions of the setup phase are iteratively repeated until each of the one or more nodes is placed in a location that satisfies one or more predetermined criteria.
21. The method of claim 19, further comprising: Each BLE node having a visibility below a predetermined threshold is removed.
22. The method of claim 19, wherein creating the accuracy map comprises, for each of one or more locations in the area: calculating a first estimate of a location of a corresponding agent's position based on received signals from a plurality of UWB nodes in the area; calculating a second estimate of the location of the corresponding agent's position based on received signals from at least some of the plurality of BLE nodes in the area; using the first estimate as a ground truth reference for the second estimate; determining a difference between the first estimate and the second estimate; The determined differences are recorded in the accuracy map.
Citation Information
Patent Citations
Prediction of indoor level and location using a three stage process
CN103718627A
Commissioning of an indoor positioning system using a secondary positioning system
US20190166574A1