Assigning UWB anchors for client ranging

Presented herein are techniques for assigning Ultra-Wideband (UWB) anchors for client ranging. A location server can estimate a coarse location of a mobile device using a localization technique other than a UWB localization technique. The localization technique can involve multiple wireless access points or other radio devices. The location server can define an area around the coarse location to identify a set of candidate anchors for UWB ranging. The set of candidate anchors can be disposed within the area and include at least a subset of the radio devices. The location server can modify the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. The location server can select a primary anchor from the modified set of candidate anchors and send a command to cause a UWB ranging procedure to be initiated between the primary anchor and the mobile device.

TECHNICAL FIELD

The present disclosure relates to network equipment and services.

BACKGROUND

Networking architectures have grown increasingly complex in communications environments, particularly mobile networking environments. In some instances, it is useful to determine a mobile device location within a mobile networking environment. While Institute of Electrical and Electronics Engineers (IEEE) 802.11 (e.g., Wi-Fi@) or Bluetooth@ ranging techniques may be utilized in some cases to determine mobile device location, such technologies typically provide limited location accuracy.

Ultra-Wideband (UWB), as defined in IEEE 802.15.4a and 802.15.4z, may offer improved ranging accuracy over Bluetooth and Wi-Fi. However, UWB ranging techniques are not designed for scale. For example, UWB ranging procedures generally require all UWB anchors and clients to be on the same channel, which can cause channel saturation and/or signal collisions.

DESCRIPTION OF EXAMPLE EMBODIMENTS

Overview

In one embodiment, a location server can be configured to assign UWB anchors for client ranging. The location server can estimate a coarse location of a mobile device using a localization technique other than a UWB localization technique. The localization technique can involve multiple radio devices. The location server can define an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device. The set of candidate anchors can be disposed within the area and include at least a subset of the radio devices. The location server can modify the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. The location server can select a primary anchor from the modified set of candidate anchors and send a command to cause a UWB ranging procedure to be initiated between the primary anchor and the mobile device.

EXAMPLE EMBODIMENTS

Presented herein are techniques for assigning UWB anchors for UWB client ranging. Client ranging can be used, e.g., for detecting and/or tracking a location of a mobile device. Client ranging using a UWB localization technique, i.e., a localization technique involving UWB transmissions, is referred to herein as “UWB ranging.” For example, UWB ranging can include time-of-flight (ToF), time-of-arrival (ToA), time-difference-of-arrival (TDoA), received signal strength indicator (RSSI), or other analyses of UWB transmissions. UWB ranging is relatively precise, providing ranging accuracy within about 10 centimeters in line-of-sight (LoS) situations. This level of accuracy is useful for both client-driven and infrastructure-based applications where, for example, Bluetooth Low Energy (BLE) or Wi-Fi-based ranging may provide disappointing results.

However, UWB ranging protocols are not designed for scale. For example, in IEEE 802.15.4a and IEEE 802.15.4z, UWB ranging is specified for one mobile device ranging against only one or a few UWB anchors. Yet, in certain environments, there may be many available UWB anchors, especially when the UWB anchors are installed near access points at ceiling level and in radio frequency (RF) range of one another.

Moreover, UWB protocols generally require all UWB anchors and mobile devices to be on the same channel. Determining which UWB anchor is associated to which mobile device can be important to avoid channel saturation. This is true both for UWB anchors (which may detect transmissions from many mobile devices but may suffer from collisions with mobile devices ranging against neighboring UWB anchors) and for mobile devices (which may encounter channel saturation and be prevented from engaging in the ranging exchanges they need for accurate location).

In an example embodiment, a location server is configured to identify an optimal set of UWB anchors against which a mobile device should range. For example, the location server can be configured to assign an initial set of UWB anchors for client ranging when a mobile device first enters a space serviced by the UWB anchors. The location server also may be configured to dynamically change the UWB anchor assignment if, and as, the mobile device moves within the space.

The space can include a plurality of radio devices, including, e.g., one or more access points. Each of the radio devices is configured to communicate using any radio access technology, such as Wi-Fi, Bluetooth, Bluetooth Low Energy (BLE), IEEE 802.15.4 (low-rate wireless personal area networks (LR-WPANs)), etc. Each of the radio devices may or may not include UWB communication or functionality. The space also may include one or more UWB anchor devices, which include UWB functionality.

The location server can cooperate with the radio devices to estimate a coarse location of the mobile device using a localization technique other than a UWB localization technique, i.e., using a technique that does not involve UWB transmissions. For example, the location server can estimate the coarse location using lateration (e.g., based on RSSI values from the access points) and/or an angle-of-arrival (AoA) technique (e.g., based on TDoA values from the access points). As may be appreciated by a person of ordinary skill in the art, lateration may enable the coarse location to be estimated within, for example, approximately a five to ten meter accuracy of the actual location of the mobile device, while an AoA technique may enable the coarse location to be estimated within about a one to two meter accuracy of the actual location of the mobile device.

The location server can define an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device. For example, the location server can use a convex hull algorithm to define a convex hull spanning all access points or other radio devices within range of one another within an envelope around the coarse location. The set of candidate anchors can include, e.g., access points or other radio devices involved in the coarse location determination, which are disposed within the defined area. The term “candidate anchor” is used herein to refer to any device, which is considered for potential use as a UWB anchor for UWB ranging, even if the device ultimately is not used as a UWB anchor, e.g., because the device does not qualify as a UWB anchor (because it doesn't have UWB capability) or because it is a UWB anchor but nevertheless is not selected for UWB ranging.

The location server can modify the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. For example, the location server can remove from the set of candidate anchors any access points or other radio devices that do not have UWB functionality. In addition, or in the alternative, the location server can add to the set of candidate anchors any UWB anchor devices within the defined area that were not involved in the coarse location determination. For example, the UWB anchor devices may not have been involved in the coarse location determination because they are standalone UWB anchor devices and not integrated with, or attached to, an access point or other radio device, and/or because they do not include a type of communication or functionality that was involved in the coarse location determination.

The location server can select a primary anchor from the modified set of candidate anchors and send a command to instruct the primary anchor to initiate a UWB ranging procedure with the mobile device. For example, the primary anchor can communicate with the mobile device to complete a location exchange, while secondary anchors in RF proximity to the primary anchor can operate as “receive-only anchors,” which passively receive UWB transmissions from the mobile device and from the primary anchor but do not send communications to the mobile device. The secondary anchors can, e.g., report the UWB transmissions, and/or information based on the UWB transmissions, to the location server for processing.

Turning now toFIG. 1, an example system100for assigning UWB anchors for client ranging within a space101can include a plurality of radio devices105configured to wirelessly communicate with a plurality of mobile devices140via one or more of a variety of different communication technologies. Each of the radio devices105can include any access point or other radio or network device configured to facilitate a communication involving one or more mobile devices (such as mobile devices140). For example, the radio devices105can include one or more access points configured to facilitate communication between one or more of the mobile devices140and a network150. Access points are sometimes referred to herein as “APs” or “WLAN access points.”

Each of the radio devices105can communicate with (i.e., send transmissions to, and/or receive transmission from) one or more of the mobile devices140using a relatively short-range wireless local area communication technology, such as (but not limited to) Wi-Fi WLAN, BLE, and/or UWB. For example, radio device105(1) includes built-in/integrated Wi-Fi functionality for communicating with one or more of the mobile devices140over Wi-Fi WLAN, BLE functionality for communicating with one or more of the mobile devices140over BLE, and UWB functionality for communicating with one or more of the mobile devices140over UWB. Radio device105(2) includes built-in/integrated Wi-Fi functionality and BLE functionality but not UWB functionality. However, radio device105(2) is configured to achieve UWB functionality via a separate, peripheral UWB anchor device115connected to radio device105(2). For example, the UWB anchor device115can be embodied in a peripheral device connected to radio device105(2) via a universal serial bus (USB) dongle, a time-synchronized network (TSN) connection, or another connection technology now known or hereinafter developed. Radio device105(n) also does not include built-in/integrated UWB functionality, and is not connected to any peripheral UWB anchor device. Therefore, radio device105(n) is not configured to achieve UWB functionality.

Each of the mobile devices140can include any mobile device or other object capable of over-the-air RF communications utilizing wireless local area communication technologies such as (but not limited to) Wi-Fi WLAN, BLE, and UWB. Each of the mobile devices140also may be capable of over-the-air RF communications utilizing one or more wireless wide area communication technologies such as Third Generation Partnership Project (3GPP) communication technologies (e.g., Fourth Generation (4G)/Long Term Evolution (LTE), Fifth Generation (5G), etc.). For example, each of the mobile devices140can include a mobile wireless phone, computer, tablet, smart glasses, Augmented Reality tool, an electronic tag (which may, e.g., be coupled to, or associated with, an electronic or non-electronic object), or another device or object now known or hereinafter developed. A mobile device is sometimes referred to herein as a “client” or “station.”

Each of the mobile devices140is configured to communicate with one or more of the radio devices105. For example, each of the mobile devices140may include Wi-Fi WLAN functionality for communicating with one or more of the radio devices105over Wi-Fi WLAN, BLE functionality for communicating with one or more of the radio devices105over BLE, and/or UWB functionality for communicating with one or more of the radio devices105over UWB (either directly or via a peripheral UWB anchor device115).

The mobile devices140also may be configured to communicate over UWB with one or more standalone UWB anchor devices120. A standalone UWB anchor device120includes functionality for receiving (and potentially also sending and/or processing) UWB transmissions without being connected to, or integrated with, a radio device105. Each standalone UWB anchor device120also may include other communication capabilities, such as BLE wireless communication capabilities and/or wired communication capabilities, e.g., via a connection to a network (such as network150) over IEEE 802.11, Ethernet, or another connection mechanism now known or hereinafter developed.

The terms “UWB anchor” and “anchor” are used interchangeably herein to refer to any device or object configured to detect UWB transmissions from one or more mobile devices (e.g., one or more of the mobile devices140). For example, a UWB anchor can include a standalone UWB anchor device120, a peripheral UWB anchor device115connected to a radio device105(2), and/or a radio device105(1) with UWB functionality. As would be appreciated by a person of ordinary skill in the art, while a UWB anchor can include a radio device105, not all UWB anchors include radio devices105, and not all radio devices105constitute UWB anchors.

It should be appreciated that the number, type, and arrangement of the radio devices105, mobile devices140, peripheral anchor devices115, standalone anchor devices120, and UWB anchors, and their respective connectivity configurations and capabilities, are illustrative and can vary in alternative example embodiments.

The radio devices105, peripheral UWB anchor device115, standalone UWB anchor device120, and mobile devices140are configured to communicate with a control device180via a network150. The network150includes any communications medium for transmitting information between two or more computing devices. For example, the network150can include a local area network (LAN), wide area network (WAN), virtual private network (VPN), Intranet, Internet, hardwire connections, modem connections, wireless connections, or combinations of one or more these items.

The control device180includes one or more computing devices, which include a controller185and a location server190. The controller185includes hardware and/or software that is configured to manage operation of the radio devices105. For example, the controller185may be configured to facilitate certain communications involving one or more of the mobile devices140through one or more of the radio devices105. In one form, the controller185and the location server190may be separate and physically distinct entities. Alternatively, at least certain of the features and/or functionality of the controller185and location server190may be integrated into a single entity, certain of the features and/or functionality described herein in connection with the controller185may be included in, and/or performed by, the location server190, and/or certain of the features and/or functionality described herein in connection with the location server190may be included in, and/or performed by, the controller185.

The location server190includes hardware and/or software that is configured to manage location-related transmissions involving the radio devices105, peripheral UWB anchor device115, standalone UWB anchor device120, and/or mobile devices140. For example, the location server190can be configured to cooperate with the radio devices105, peripheral UWB anchor device115, standalone UWB anchor device120, and/or mobile devices140to initiate and complete client ranging procedures within the space101, e.g., by assigning and/or instructing one or more of the radio devices105, peripheral UWB anchor device115, and/or standalone UWB anchor device120to complete client ranging procedures with respect to one or more of the mobile devices140. For example, the location server190can be configured so that, when a mobile device140enters the space101, the location server190assigns one of the radio devices105, peripheral UWB anchor device115, or standalone UWB anchor device120as a primary anchor for engaging in a location exchange with the mobile device140and other(s) of the radio devices105, peripheral UWB anchor device115, and/or standalone UWB anchor device120as secondary anchors for passively receiving transmissions from the mobile device140and transmissions from the primary UWB anchor for location processing.

The space101can include any indoor or outdoor area, such as a home, school, campus, office building, conference center, stadium, or other venue or location or portion thereof. The space101may support any density of mobile devices140. The location server190can be configured to assign anchors so that accurate client ranging is enabled for each of the mobile devices140regardless of density. For example, as set forth in more detail below, for a particular mobile device140, the location server190can select an optimal set of anchors for client ranging from all available radio devices105, peripheral UWB anchor devices115, and/or standalone UWB anchor devices120in the space101.

The location server190can be configured to coordinate client ranging procedures involving any of a variety of different localization techniques. In an example embodiment, the location server190can be configured to coordinate client ranging procedures involving one or more UWB localization techniques, such as ToF, ToA, TDoA, RSSI, or another technique involving analysis of UWB transmissions, and/or one or more non-UWB localization techniques, such as lateration, AoA, or another technique that does not involve UWB transmissions. For example, the location server190can estimate a coarse location for a mobile device140using a non-UWB localization technique, select an optimal set of UWB anchor points for UWB ranging based on the coarse location, and use the selected UWB anchor points to determine more precise location information for the mobile device140using one or more UWB localization techniques. Thus, the location server may limit UWB ranging to selected UWB anchor points, potentially reducing a likelihood of channel saturation and/or signal collisions relative to a configuration in which UWB ranging involves all available or nearby UWB anchor points.

The location server190can include logic for performing one or more location computations based on the localization techniques. For example, the location server190can process time, distance, angle, signal strength or other information from one or more of the radio devices105, peripheral UWB anchor devices115, standalone UWB anchor devices120, and/or mobile devices140to determine and/or track a location of a particular one of the mobile devices140. The location server190can be configured to return results of that processing to the particular one of the mobile devices140, e.g., through one or more of the radio devices105, or to some other entity seeking that location information, if so desired. In addition, or in the alternative, the radio devices105, peripheral anchor devices115, standalone anchor devices120, and/or mobile devices140can be configured to perform certain location computations and, potentially, to report results from those computations to the location server190.

Though illustrated inFIG. 1as discrete components, and as explained above, it should be appreciated that the controller185and location server190may be integrated or otherwise reconfigured in any number of different components without departing from the spirit and scope of the present disclosure.

FIG. 2is a block diagram of an access point200, according to an example embodiment. The access point200includes a Wi-Fi chipset220for providing Wi-Fi functionality, a BLE chipset235for providing BLE functionality, and a UWB chipset250for providing UWB functionality. The Wi-Fi chipset220includes one or more Wi-Fi radio transceivers225configured to perform Wi-Fi RF transmission and reception, and one or Wi-Fi baseband processors230configured to perform Media Access Control (MAC) and physical layer (PHY) modulation/demodulation processing. The BLE chipset235includes a BLE radio transceiver240configured to perform BLE RF transmission and reception, and a BLE baseband processor245configured to perform BLE baseband modulation and demodulation. The UWB chipset250includes a UWB radio transceiver255configured to perform UWB RF transmission and reception, and a UWB baseband processor260configured to perform UWB baseband modulation and demodulation. For example, the Wi-Fi chipset220, BLE chipset235, and UWB chipset250may be implemented in one or more application-specific integrated circuits (ASICs), field-programmable gate arrays (FPGAs) or other digital logic embodied in one or more integrated circuits.

The access point200includes one or more processors205, which may embody or include one or more microprocessors and/or microcontrollers. In addition, the access point200includes a memory210that stores control logic215. The processor(s)205are configured to execute instructions of the control logic215to execute various control functions for the access point200.

As would be understood by a person of ordinary skill in the art, the features and functionality of the access point200are illustrative and can vary in alternative example embodiments. For example, the access point200may include more, less, or different chipsets in alternative example embodiments. In particular, the access point200may not include the Wi-Fi chipset220if the access point200does not include Wi-Fi functionality; the access point200may not include the BLE chipset235if the access point200does not include BLE functionality; and the access point200may not include the UWB chipset250if the access point200does not include UWB functionality. In addition, as would be recognized by a person of ordinary skill in the art, the access point200may include one or more additional components, such as a network interface to provide an IEEE 802.11 connection, Ethernet connection, or other connection, which are not depicted inFIG. 2for purposes of simplicity.

FIG. 3is a block diagram of a mobile device300, according to an example embodiment. As would be appreciated by a person of ordinary skill in the art, the mobile device300includes chipsets similar to the chipsets of an access point, though with configurations for client-side operations and mobile device/battery-powered use cases. In particular, as with the access point200described above in connection withFIG. 2, the mobile device300includes a Wi-Fi chipset320for providing Wi-Fi functionality, a BLE chipset335for providing BLE functionality, and a UWB chipset350for providing UWB functionality, with the Wi-Fi chipset320including one or more Wi-Fi radio transceivers325and one or Wi-Fi baseband processors330, the BLE chipset335including a BLE radio transceiver340and a BLE baseband processor345, and the UWB chipset350including a UWB radio transceiver355and a UWB baseband processor360. The mobile device300also includes one or more processors305(e.g., microprocessor(s) and/or microcontroller(s)) and a memory310that stores control logic315.

As would be understood by a person of ordinary skill in the art, the features and functionality of the mobile device300are illustrative and can vary in alternative example embodiments. For example, as with the access point200depicted inFIG. 2, the mobile device300can include more, less, or different components in alternative example embodiments.

FIG. 4is a block diagram of a UWB anchor device400, according to an example embodiment. The UWB anchor device400can be, for example, a standalone UWB anchor device or a peripheral UWB anchor device. Accordingly, the UWB anchor device400may include some, but not all, of the features depicted inFIGS. 2 and 3for example access point200and mobile device300, respectively. In particular, while the UWB anchor device400includes a UWB chipset450(with a UWB radio transceiver455and UWB baseband processor460), as well as one or more processors405(e.g., microprocessor(s) and/or microcontroller(s)) and a memory410that stores control logic415, the UWB anchor device400does not include a Wi-Fi chipset or BLE chipset.

However, the UWB anchor device400may include these features, and/or other features not depicted inFIG. 4, in alternative example embodiments. For example, the UWB anchor device400can include additional communication capabilities beyond UWB, such as BLE wireless communication capabilities and/or wired communication capabilities, in alternative example embodiments. In addition, as noted above, the UWB anchor device400(or functionality thereof) may be integrated in, or connected to, a radio device, such as the access point200, which may include the same or different components than those depicted in the UWB anchor device400ofFIG. 4.

Turning now toFIGS. 5-10, an example operational flow for assigning UWB anchors for client ranging is now described. Referring first toFIG. 5, in a first stage500, a mobile device550has entered a venue505. The venue505includes any indoor or outdoor area, such as a home, school, campus, office building, conference center, stadium, or other venue or location or portion thereof. The venue505includes a plurality of access points510-524and a plurality of standalone UWB anchor devices540and541. Certain of the access points510-524, namely access points510,511,512,513,514,515,516,517,518,519and520(the “APs w/UWB”), have UWB functionality, while certain other of the access points510-524, namely access points521,522,523and524(the “APs w/o UWB”), do not have UWB functionality. As described above, each of the APs w/UWB510-520can achieve UWB functionality either by including built-in/integrated UWB functionality or by being connected to a peripheral UWB anchor device or other device with UWB functionality. For simplicity, the UWB functionality for each of the APs w/UWB510-520is described below with reference to the APs w/UWB510-520, though it is to be understood that such functionality may be provided by, or involve, a peripheral UWB device or other device connected to the APs510-520.

A location server590is configured to cooperate with the access points510-524, standalone UWB anchor devices540and541, and/or mobile device550to provide client ranging for the mobile device550. For example, the location server590can be configured to cause client ranging procedures to be initiated upon entry of the mobile device550into the venue505, e.g., by assigning one or more of the access points510-524and/or standalone UWB anchor devices540and541as a primary anchor for completing a location exchange with the mobile device550and other of the access points510-524and/or standalone UWB anchor devices540and541as secondary anchors for passively receiving transmissions from the mobile device550for location processing. The location server590also may be configured to dynamically adjust the anchor assignment if, and as, the mobile device550moves within the venue505. Though depicted as being disposed within the venue505, it should be understood that the location server590may be located remote from the venue505, e.g., in a cloud-based solution, in alternative example embodiments.

Next, inFIG. 6, in an example embodiment, the location server590initiates the client ranging procedure in stage500by cooperating with access points510-517and522to estimate a coarse location605of the mobile device550using a localization technique other than a UWB technique, i.e., using a technique that does not involve UWB transmissions. For example, the location server590can estimate the coarse location605using lateration (e.g., based on RSSI values from the access points510-517and522) and/or an AoA technique. The localization technique may involve, e.g., Wi-Fi, BLE, or other non-UWB transmissions from/to the access points510-517and522. It should be understood that the localization technique, and the number, type, and arrangement of devices involved in the localization technique, may vary in alternative example embodiments. For example, though not involved in the localization technique depicted inFIG. 6, one or more UWB anchor devices, such as UWB anchor device540and/or UWB anchor device541, may be involved in the localization technique in alternative example embodiments if, and to the extent that, the UWB anchor devices include Wi-Fi, BLE, or other (non-UWB) functionality that corresponds to a transmission method involved in the localization technique.

As may be appreciated by a person of ordinary skill in the art, lateration may enable the coarse location605to be estimated within about a five to ten meter accuracy of the actual location of the mobile device550, while an AoA technique may enable the coarse location605to be estimated within about a one to two meter accuracy of the actual location of the mobile device550. Thus, in the first stage500, the location server590may determine a general (but not precise) area where the mobile device550is located, within an accuracy of about 1 meter to about 7 meters, but perhaps as much as 10 meters.

As shown inFIG. 7, in a second stage700, the location server590defines an area705around the coarse location605to identify a set of candidate anchors for UWB ranging for the mobile device550. The candidate anchors include all of the access points510-517and522(and/or other devices) within the area705, which were involved in the determination of the coarse location605. For example, the location server590may use a convex hull algorithm, such as a Slow Convex Hull or Graham's Scan, to define the area705as a convex hull spanning all access points510-517and522within RF range of one another within an envelope around the coarse location605. In an example embodiment, the defined area705is a closed polygon, with a plurality of line segments connecting each pair of its points (e.g., at one or more of the access points (510and512-517) and/or other devices), surrounding the coarse location605. A size of the area705can vary, but in an example embodiment, the area705is defined large enough to include at least one candidate anchor in each of four quadrants (viewed as a “clock”) around the coarse location605. It should be appreciated that the size and shape of the area705, and the number, type, and configuration of the candidate anchors and any other devices therein, are illustrative and should not be construed as being limiting in any way.

Turning now toFIG. 8, in a third stage800, the location server590determines UWB capabilities (or a lack of UWB capability) for each of the candidate anchors. For example, the location server590, or a controller or other device in communication with the location server590, can send one or more communications to the candidate anchors to determine which of the candidate anchors has UWB functionality (whether integrated within the candidate anchor or provided through a peripheral or other device). The location server590modifies the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. In particular, the location server590removes from the set of candidate anchors any access points, such as access point522, which do not have UWB functionality. The location server590also can add to the set of candidate anchors any devices, such as standalone anchor devices540and541, which are located within the area705and have UWB functionality but were not involved in the coarse location determination. For example, these devices may include standalone UWB devices that do not include a type of functionality that was involved in the coarse location determination or otherwise were not included in the coarse location determination.

Next, the location server590selects a best possible UWB anchor in the modified set of candidate anchors to be the primary/active anchor for a location exchange with the mobile device550. The location server590also selects secondary anchors for passively receiving transmissions from the mobile device550and the primary anchor for location processing. For example, the secondary anchors can act as “observers,” observing and reporting on the client ranging exchange with the primary anchor. This information can be used, e.g., to compute an accurate location for the mobile device550. For example, time of reception measurements made at the secondary anchors can be used, either alone or in combination with information from the primary anchor, to compute distances from the mobile device550to the secondary anchors.

The location server590can select the primary and secondary anchors, for example, by forming coherent subgroups of the candidate anchors in stage900as shown inFIG. 9, selecting a best subgroup from the coherent subgroups in a stage1000shown inFIG. 10, and selecting primary and secondary anchors from the selected subgroup in a stage1100as shown inFIG. 11. In stage900, the location server evaluates, for each candidate anchor in the modified set of candidate anchors, the UWB reachability to each other candidate anchor. As would be appreciated by a person of ordinary skill in the art, a typical Wi-Fi range is larger than a typical UWB range. Therefore, while certain candidate anchors having Wi-Fi capability may be in Wi-Fi range of one another, they may not be in UWB range of one another.

More specifically, as shown inFIG. 9, the location server590forms a plurality of subgroups901-905, with each of the subgroups901-905including a subset of the candidate anchors that are all in UWB range of one another. Subgroup901includes access point511, access point512, access point513, access point517, and UWB anchor device540; subgroup902includes access point510, access point511, UWB anchor device540, UWB anchor device541, and access point514; subgroup903includes access point514, access point511, UWB anchor device540, access point516, UWB anchor device541, and access point515; subgroup904includes access point514, access point511, UWB anchor device540, access point517, access point516, and UWB anchor device541; subgroup905includes access point511, access point512, UWB anchor device540, access point517, access point516, and UWB anchor device541. For example, the location server590can form as many subgroups as possible from the modified set of candidate anchors. It should be appreciated that the number, type, and configuration of the subgroups901-905, and any devices therein, are illustrative and should not be construed as being limiting in any way.

For each of the subgroups901-905, the location server590calculates a distance to a center of the coarse location605, e.g., by using one or more location estimation using noisy measurements techniques, such as a mean-square technique, 3-sphere technique, and/or direct Kalman technique. In an example embodiment, the coarse location605can include an area, rather than a point, and the center of the coarse location605may be computed as a “center” of that area. For example, the location server590can use a mean-square reduction computation to sort the subgroups901-905by relative distance to the center of the coarse location605.

A shorter distance may be helpful, for example, to achieve a maximize RF signal with minimal collisions, though distance alone is not a determining factor. For example, there may be walls or other obstacles between a mobile device550and an anchor that are relatively close in terms of distance, but for which the RF proximity is not sufficient to use that anchor as a primary anchor for UWB ranging. It can be desirable, for example, to select a primary anchor that maximizes the likelihood that as many other anchors (secondary anchors) as possible within the modified set of candidate anchors will receive the location exchange transmissions from both the mobile device550and the primary anchor, and furthermore, so that there is at least one anchor (primary or secondary) in each quadrant around the mobile device550in order to compute a reliable triangulation location result.

Starting from a particular one of the subgroups901-905with the smallest distance to the center of the coarse location605, the location server590can determine whether any of the subgroups901-905includes an anchor that is set as a primary anchor for another mobile device. If a particular one of the subgroups901-905includes an anchor that is set as a primary anchor for another mobile device, the location server590may select that particular one of the subgroups901-905as a best subgroup, and the anchor from that particular one of the subgroup901-905as a best primary anchor, for the mobile device550. For example, selecting as the primary anchor a device that already is serving as a primary anchor for another mobile device may reduce complexity for managing collisions across the overall space of the venue505, e.g., by preventing a device from serving as both a primary anchor for one or more mobile devices and a secondary anchor for one or more other mobile devices.

If none of the subgroups901-905include an anchor that is set as a primary anchor for another mobile device, then the location server590can select a one of the subgroups901-905, which is farthest away from others of the subgroups901-905and, within that one of the subgroups901-905, can select as the primary anchor an anchor that has a smallest neighbor count. Thus, the location server590can minimize a chance of collisions between the selected subgroup/anchor and any other group of anchors formed for UWB ranging with another mobile device. For example, in the example depicted inFIGS. 5-11, the location server590has selected, in stage1000(shown inFIG. 10), subgroup904as a best subgroup for the mobile device550and access point516within that subgroup905as the best primary anchor for the mobile device550.

The location server590may select one or more other devices within the subgroup904, e.g., access point514, access point511, UWB anchor device540, access point517, and/or UWB anchor device541, as secondary (receive-only) anchors for UWB ranging for the mobile device550. For example, location server590may select only a closest x number of anchors to include as secondary anchors, e.g., to limit the group of primary and secondary anchors below a total of six or another maximum number of anchors. In addition, or in the alternative, the location server590may select as secondary anchors any anchors disposed along a perimeter of the area705(shown inFIG. 7). It should be understood that certain of the selected anchors may participate in client ranging, e.g., by receiving ranging exchanges, both for the mobile device550and for one or more other mobile devices. As described in more detail below, with reference toFIG. 12, the location server590can be configured to maintain a convex hull or other configuration for the anchors while minimizing collisions among the anchors by spreading transmissions as appropriate.

The location server590can be configured to send (or cooperate with a controller or other device, which sends) commands to cause the selected anchors to complete a UWB ranging procedure with the mobile device550. For example, the location server590can send (or cooperate with a controller or other device, which sends) a signal to the primary anchor to invoke a mode in which the primary anchor sends to the mobile device550a “nudge” message that suggests that the mobile device550range with the primary anchor. In addition, or in the alternative, the location server590can engage a hybrid mode in which the mobile device550is sent a unicast message notifying the mobile device550about its primary anchor. The mobile device550can then send a “nudge” message that any device can detect, but with a destination address corresponding only to the primary anchor so that only the primary anchor responds. In another embodiment, the mobile device550may use a broadcast or multicast address, with only the primary anchor answering and only the secondary anchors considering the message.

Returning to the example depicted inFIGS. 5-11, the location server590has selected, in stage1000, access point516as a primary anchor for mobile device550. The location server590causes access point516(as shown inFIG. 10) to complete a location exchange1005with the mobile device550. In stage1100, shown inFIG. 11, selected secondary anchors, namely, access point511, UWB anchor device540, and access point517, passively receive the transmission(s) that the mobile device550sends to the access point516(as the primary anchor) and the transmission that the access point516(as the primary anchor) sends to the mobile device550, as shown at1105a-1105cfor the mobile device550.

In an example embodiment, the location server590can be further configured to evaluate whether a selected primary anchor is in range of another primary anchor (for another mobile device). If so, the location server590can allocate half the UWB slots to each of the primary anchors. Then, the selected primary anchor can send a unicast (or multicast if multiple mobile devices are in the zone) Time-Division Multiple Access (TDMA) trigger to the mobile device550, allocating transmission slots to the mobile device550.

An example mechanism1200for allocating UWB slots to primary anchors is shown inFIG. 12. A first UWB slot1205ais assigned to a first mobile device for UWB ranging, and a second UWB slot1205bis assigned to a second mobile device for UWB ranging. The first UWB slot1205aand the second UWB slot1205bare separated by a guard interval1210. Each of the UWB slots1205aand1205bincludes at least one burst1220. Each burst1220includes one or more burst positions1230. Within each burst position1230, there are different chip positions1240.

A UWB signal sent during a burst position1230generally includes a short-lived pulse. Each pulse includes a relatively wide bandwidth signal (e.g., 499.2 MHz) that is relatively flat (e.g., with low power). Because the pulse is so short-lived and may not display consistent spectral intensity across the entire bandwidth, it may appear narrow in the frequency domain and in the time domain. Thus, two different mobile devices could be assigned the same burst position1230, and their pulses may be: 1) displaying peak intensity on different subsets of the signal and, thus, detectable from each other, or 2) slightly misaligned in time and, thus, able to coexist without colliding. Accordingly, the location server can spread devices into different slots, at a narrower time resolution level, and the location server can assign devices to different burst positions in the same slot. For example, even if two devices are assigned the same burst position1230, they may be assigned different chip positions1240and, therefore, avoid collisions.

Turning now toFIG. 13, an example method1300is shown for assigning UWB anchors for client ranging, according to an example embodiment. In step1305, a location server estimates a coarse location of a mobile device using a non-UWB localization technique, i.e., using a technique that does not involve UWB transmissions. For example, the location server can estimate the coarse location using lateration and/or an AoA technique. The localization technique may involve, e.g., Wi-Fi, BLE, or other non-UWB transmissions from/to one or more access points or other radio devices.

In step1310, the location server defines an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device. For example, the location server can use a convex hull algorithm, such as a Slow Convex Hull or Graham's Scan, to define the area as a convex hull spanning all access points within RF range of one another within an envelope around the coarse location. The candidate anchors can include, e.g., at least a subset of the devices involved in determining the coarse location in step1305.

In step1315, the location server modifies the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. For example, the location server can create the modified set of candidate anchors by removing from the set of candidate anchors any access points or other radio devices, which do not have UWB functionality, and adding to the set of candidate anchors any devices which are located within the area and have UWB functionality but were not involved in the coarse location determination. Operations that may be performed during step1315are described in more detail below with reference toFIG. 14.

In step1320, the location server selects a primary anchor from the modified set of candidate anchors. For example, the location server can select the primary anchor by creating a plurality of coherent subgroups of the candidate anchors that are within a UWB range of one another and then selecting a primary anchor based on one or more characteristics of the subgroups. Operations that may be performed during step1320are described in more detail below with reference toFIG. 15.

In step1325, the location server selects secondary anchors within UWB range of the primary anchor. For example, the location server can select one or more (or all) secondary anchors from the subgroup corresponding to the selected primary anchor. The location server may, for example, select a number of secondary anchors so that a total number of anchors participating in UWB ranging with the mobile device is below a predetermined maximum (e.g., six or less total anchors). For example, the location server can select only a closest x number of anchors to the mobile device to include as secondary anchors. In addition, or in the alternative, the location server may select as secondary anchors any anchors disposed along a perimeter of the area defined in step1310.

In step1330, the location server causes a command to be sent (either by the location server or a controller or other device cooperating with the location server) to cause the selected anchors to complete a UWB ranging procedure with the mobile device. The primary anchor can communicate with the mobile device to complete a location exchange, while the secondary anchors around can operate as “receive-only anchors,” which passively receive UWB transmissions from the mobile device and the primary anchor but do not send communications to the mobile device. The secondary anchors may, for example, report the UWB transmissions, and/or information (times of arrival, etc.) based on the received UWB transmissions, to the location server for processing.

For example, the location server can send (or cooperate with a controller or other device, which sends) a signal to the primary anchor to invoke a mode in which the primary anchor sends to the mobile device a “nudge” message that suggests that the mobile device range with the primary anchor. In addition, or in the alternative, the location server can engage a hybrid mode in which the mobile device is sent a unicast message notifying the mobile device about its primary anchor. The mobile device can then send a “nudge” message that any device can detect, but with a destination address corresponding only to the primary anchor so that only the primary anchor responds. In another embodiment, the mobile device may use a broadcast or multicast address, with only the primary anchor answering back to the mobile device, and the secondary anchors not responding to the message.

FIG. 14is a flow chart depicting in more detail operations that may be performed at step1315for creating a modified set of candidate anchors for client ranging, according to an example embodiment. The operations of step1315continue from step1310of the method1300described above. In step1405, the location server removes from the set of candidate anchors at least one access point or other radio device that is not UWB enabled. For example, the radio device may include Wi-Fi, BLE, or another communication technology, but not UWB functionality. That other communication technology may have been used, e.g., in the estimation of the coarse location in step1305of the method1300.

In step1410, the location server adds to the set of candidate anchors at least one UWB-enabled device that was not involved in the estimation of the coarse location in step1305. For example, the UWB anchor devices may not have been involved in the coarse location determination because they are standalone UWB anchor devices and not integrated with, or attached to, an access point or other radio device, and/or because they do not include a type of functionality that was involved in the coarse location determination. Each of the one or more UWB-enabled devices that are added to the set of candidate anchors may, for example, be disposed within the area that was defined in step1310. Processing continues to step1320inFIG. 13.

FIG. 15is a flow chart depicting operations that may be performed in step1320for selecting a primary UWB anchor for client ranging, according to an example embodiment. The operations of step1320continue from step1315of the method1300described above. In step1505, the location server identifies a plurality of subgroups from the modified set of candidate anchors (that was created in step1315). Each of the subgroups includes anchors from the modified set of candidate anchors. For example, the location server can identify subgroups that each include a subset of the candidate anchors that are all in UWB range of one another.

In step1510, the location server calculates, for each of the subgroups, a distance to the coarse location. For example, the location server can calculate a distance to a center of the coarse location using one or more location estimation using noisy measurements techniques, such as a mean-square technique, 3-sphere technique, and/or direct Kalman technique. In step1515, the location server determines, e.g., in an order based on the calculating, whether any of the subgroups includes an anchor that is set as a primary anchor for another mobile device. For example, the location server can use a mean-square reduction computation to sort the subgroups by relative distance to the center of the coarse location and then determine, in order of shortest to longest, whether each of the subgroups includes an anchor that is set as a primary anchor for another mobile device.

If, at1520, the location server determines that one of the subgroups includes an anchor that is set as a primary anchor for another mobile device, then the process continues to step1525. In step1525, the location server selects the anchor that is set as the primary anchor for the other mobile device as the primary anchor. If the location server determines in step1515that none of the subgroups includes an anchor that is set as a primary anchor for another mobile device, then processing continues to step1530where the location server identifies a particular one of the subgroups that is farthest away from others of the subgroups. In step1535, the location server selects as the primary anchor an anchor in the one of the subgroups, which has a smallest neighbor count. Thus, the location server can minimize a chance of collisions between the selected subgroup/anchor and any other group of anchors formed for UWB ranging with another mobile device. Processing then continues to step1325shown inFIG. 13.

As would be recognized by a person of skill in the art, the steps associated with the methods of the present disclosure, including method1300, the operations of step1315, and the operations of step1320, may vary widely. Steps may be added, removed, altered, combined, and reordered without departing from the spirit or the scope of the present disclosure. Therefore, the example methods are to be considered illustrative and not restrictive, and the examples are not to be limited to the details given herein but may be modified within the scope of the appended claims.

Referring toFIG. 16,FIG. 16illustrates a hardware block diagram of a computing device1600that may perform functions associated with operations discussed herein in connection with the techniques depicted inFIGS. 1-15. In various embodiments, a computing device, such as computing device1600or any combination of computing devices1600, may be configured as any entity/entities as discussed for the techniques depicted in connection withFIG. 16, such as controller185or location server190shown inFIG. 1or location server590shown inFIGS. 5-11, in order to perform operations of the various techniques discussed herein.

In at least one embodiment, the computing device1600may include one or more processor(s)1605, one or more memory element(s)1610, storage1615, a bus1620, one or more network processor unit(s)1625interconnected with one or more network input/output (I/O) interface(s)1630, one or more I/O interface(s)1635, and control logic1640. In various embodiments, instructions associated with logic for computing device1600can overlap in any manner and are not limited to the specific allocation of instructions and/or operations described herein.

In at least one embodiment, processor(s)1605is/are at least one hardware processor configured to execute various tasks, operations and/or functions for computing device1600as described herein according to software and/or instructions configured for computing device1600. Processor(s)1605(e.g., a hardware processor) can execute any type of instructions associated with data to achieve the operations detailed herein. In one example, processor(s)1605can transform an element or an article (e.g., data, information) from one state or thing to another state or thing. Any of potential processing elements, microprocessors, digital signal processor, baseband signal processor, modem, PHY, controllers, systems, managers, logic, and/or machines described herein can be construed as being encompassed within the broad term ‘processor’.

In at least one embodiment, memory element(s)1610and/or storage1615is/are configured to store data, information, software, and/or instructions associated with computing device1600, and/or logic configured for memory element(s)1610and/or storage1615. For example, any logic described herein (e.g., control logic1640) can, in various embodiments, be stored for computing device1600using any combination of memory element(s)1610and/or storage1615. Note that in some embodiments, storage1615can be consolidated with memory element(s)1610(or vice versa), or can overlap/exist in any other suitable manner.

In at least one embodiment, bus1620can be configured as an interface that enables one or more elements of computing device1600to communicate in order to exchange information and/or data. Bus1620can be implemented with any architecture designed for passing control, data and/or information between processors, memory elements/storage, peripheral devices, and/or any other hardware and/or software components that may be configured for computing device1600. In at least one embodiment, bus1620may be implemented as a fast kernel-hosted interconnect, potentially using shared memory between processes (e.g., logic), which can enable efficient communication paths between the processes.

In various embodiments, network processor unit(s)1625may enable communication between computing device1600and other systems, entities, etc., via network I/O interface(s)1630to facilitate operations discussed for various embodiments described herein. In various embodiments, network processor unit(s)1625can be configured as a combination of hardware and/or software, such as one or more Ethernet driver(s) and/or controller(s) or interface cards, Fibre Channel (e.g., optical) driver(s) and/or controller(s), and/or other similar network interface driver(s) and/or controller(s) now known or hereafter developed to enable communications between computing device1600and other systems, entities, etc. to facilitate operations for various embodiments described herein. In various embodiments, network I/O interface(s)1630can be configured as one or more Ethernet port(s), Fibre Channel ports, and/or any other I/O port(s) now known or hereafter developed. Thus, the network processor unit(s)1625and/or network I/O interface(s)1630may include suitable interfaces for receiving, transmitting, and/or otherwise communicating data and/or information in a network environment.

In various embodiments, control logic1640can include instructions that, when executed, cause processor(s)1605to perform operations, which can include, but not be limited to, providing overall control operations of computing device; interacting with other entities, systems, etc. described herein; maintaining and/or interacting with stored data, information, parameters, etc. (e.g., memory element(s), storage, data structures, databases, tables, etc.); combinations thereof, and/or the like to facilitate various operations for embodiments described herein.

In summary, in one form, a computer-implemented method can include estimating, by a location server, a coarse location of a mobile device using a localization technique other than a UWB localization technique. For example, the estimating may be performed in response to the mobile device entering a venue where the area is located. The localization technique can involve, e.g., a plurality of radio devices. The location server can define an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device. For example, the location server can define the area around the coarse location using a convex hull algorithm.

The set of candidate anchors can, e.g., be disposed within the area and comprise at least a subset of the plurality of radio devices. The location server can modify the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices. For example, the location server can create the modified set of candidate anchors by removing from the set of candidate anchors at least one radio device within the subset of the plurality of radio devices that is not UWB-enabled. In addition, or in the alternative, the location server can add to the set of candidate anchors at least one UWB-enabled device that was not involved in the estimating.

The location server can select a primary anchor from the modified set of candidate anchors. For example, selecting can include identifying a plurality of subgroups from the modified set of candidate anchors, each of the plurality of subgroups comprising a plurality of anchors from the modified set of candidate anchors, which are within a UWB range of one another; and selecting the primary anchor from a particular one of the plurality of subgroups based on a characteristic of the particular one of the plurality of subgroups. Selecting the primary anchor from the particular one of the plurality of subgroups can include, e.g., determining whether any of the plurality of subgroups includes an anchor that is set as a primary anchor for another mobile device; and in response to determining that one of the plurality of subgroups includes a particular anchor that is set as a primary anchor for another mobile device, selecting the particular anchor as the primary anchor.

For example, the location server can calculate, for each of the plurality of subgroups, a distance to a center of the coarse location and complete the determining (re: whether any of the plurality of subgroups includes an anchor that is set as a primary anchor for another mobile device) in an order based on the calculating. In response to determining that none of the plurality of subgroups includes an anchor that is set as a primary anchor for another mobile device, the location server can, e.g., identify a one of the plurality of subgroups that is farthest away from others of the plurality of subgroups; and select as the primary anchor an anchor in the one of the plurality of subgroups, which anchor has a smallest neighbor count. A command can be sent from the location server to the primary anchor to instruct the primary anchor to initiate a UWB ranging procedure with the mobile device.

In another form, an apparatus can include an interface configured to enable network communications, and one or more processors coupled to the interface. The one or more processors can be configured to perform operations including: estimating a coarse location of a mobile device using a localization technique other than an ultra-wide band (UWB) localization technique, the localization technique involving a plurality of radio devices; defining an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device, the set of candidate anchors being disposed within the area and comprising at least a subset of the plurality of radio devices; modifying the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices; selecting a primary anchor from the modified set of candidate anchors; and sending a command to cause a UWB ranging procedure to be initiated between the primary anchor and the mobile device.

In another form, one or more non-transitory computer readable storage media can include instructions that, when executed by at least one processor, are operable to: estimate a coarse location of a mobile device using a localization technique other than an ultra-wide band (UWB) localization technique, the localization technique involving a plurality of radio devices; define an area around the coarse location to identify a set of candidate anchors for UWB ranging for the mobile device, the set of candidate anchors being disposed within the area and comprising at least a subset of the plurality of radio devices; modify the set of candidate anchors to create a modified set of candidate anchors that includes only UWB-enabled devices; select a primary anchor from the modified set of candidate anchors; and send a command to cause a UWB ranging procedure to be initiated between the primary anchor and the mobile device.

Variations and Implementations