Application control of a distance measurement
The operating system API in electronic devices allows applications to control ranging mechanisms by specifying operational characteristics, enhancing ranging efficiency and performance by aligning with application-specific needs.
Patent Information
- Application Number
- DE112022008026
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-11-21
- Publication Date
- 2025-11-06
AI Technical Summary
Existing ranging technologies in electronic devices lack the ability for applications to control the selection of ranging mechanisms based on specific operational characteristics, leading to inefficiencies and suboptimal performance.
An operating system API allows applications to specify operational characteristics such as power budget, accuracy, and latency for ranging, enabling the system to select and invoke appropriate ranging mechanisms to meet these requirements.
Enables efficient and context-aware ranging by allowing applications to select mechanisms that align with their needs, improving accuracy, power efficiency, and latency based on specified criteria.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
GENERAL STATE OF THE ART
[0001] An electronic device can be equipped with distance measurement technology that allows it to determine the distance to another device and possibly also the position of that other device (e.g., to determine the orientation of the distance). This distance measurement technology can facilitate various useful functions.
[0002] For example, distance measurement can help facilitate encounters between people by, for instance, helping to guide users toward each other. Specifically, a first user's device can use distance measurement to determine how far away a second user's device is and to determine the angle at which the second user's device is located relative to the first user's device. Based on the results of this distance measurement, the first user's device can then display a graphic representation of the distance and direction to the second user's device on a screen for the first user, and the first user can then conveniently use this graphic representation as a basis for approaching the second user.
[0003] As another example, distance measurement can facilitate unlocking a secured system. For instance, a user's device might include a digital key that unlocks a secured system, such as a car or house, and is configured to unlock the secured system only when the secured system is close enough to the user's device, such that the secured system is positioned within a predefined threshold distance. In this case, the user's device can use distance measurement to determine how close the secured system is to the device and, in response to determining from this distance measurement that the secured system is close enough, then allow the use of the digital key to unlock the secured system.
[0004] Other examples are also possible. OVERVIEW
[0005] A representative device may be equipped with several distance-measuring mechanisms that it could use to perform a distance measurement between itself and a given other device. For example, the device may include several radios, circuits, and / or other modules, each configured to operate according to a specific air interface protocol that the other device may also use. Furthermore, the device may include one or more antennas that it can use to perform a distance measurement using a given such protocol.
[0006] Such a device can include an operating system (e.g., Android, ChromeOS, Windows, or Linux) and run one or more applications configured to interact with the operating system to trigger distance measurement. For example, the operating system can provide an application programming interface (API) that defines a distance request, which can be used to trigger a distance measurement directed at an identifier associated with the other device. An application on the device can thus issue an API call to the operating system requesting a distance measurement, and the operating system can respond to this API call by performing the requested distance measurement.In response to the application's distance measurement request, the operating system may, for example, first establish a data connection with the other device, exchange distance measurement capabilities and / or other parameters with the other device via this data connection, and then select and invoke a supported distance measurement mechanism to determine the distance and / or the relative angle between the device and the other device.
[0007] This process can isolate the application from knowledge of the underlying distance measurement mechanism that the operating system calls to perform the requested distance measurement. For example, the API call might not specify which distance measurement mechanism the operating system should call, the operating system might not inform the application which distance measurement mechanism it is calling, and the application might not know which distance measurement mechanism the operating system is calling.
[0008] However, the API call can allow the application to exert some control over the selection of distance measurement mechanisms by specifying one or more operational properties that the application requests from the distance measurement device. For example, the API call can allow the application to specify as arguments not only an identity associated with the other device, but also one or more operational properties that the application requests from the distance measurement device. Examples of these operational properties may include, without limitation, (i) the power budget of the distance measurement device, (ii) the security of the distance measurement device, (iii) the accuracy of the distance measurement device, and (iv) the latency of the distance measurement device.Given the application's specification regarding one or more such operational characteristics that the application requires from the distance measurement, the operating system can then select a distance measurement mechanism based on at least one determination that the selected distance measurement mechanism would possess the one or more operational characteristics. For example, the operating system can select a distance measurement mechanism based on a determination that the selected distance measurement mechanism would meet or exceed the specified operational characteristics.
[0009] Enabling this type of control over the application's selection of a distance measurement mechanism via the operating system can enable the selection and use of a distance measurement mechanism that meets one or more of the application's needs, desires, or contexts.
[0010] Accordingly, a method for application control via distance measurement is disclosed in one respect. The method includes receiving a distance measurement request into an operating system of a device from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and specifies one or more operating characteristics that the application requests from the distance measurement. Additionally, the method includes the operating system selecting a distance measurement mechanism from a plurality of available distance measurement mechanisms based on at least the one or more operating characteristics requested by the application.Furthermore, the method, based at least on the selection, includes the operating system causing the device to implement the selected distance measurement mechanism in response to the distance measurement request.
[0011] In another aspect, a device is disclosed. The device includes a processor, a non-transitory data storage, and an operating system stored in the non-transitory data storage, which is executable by the processor and defines program instructions that can be executed by the processor to perform operations. These operations include receiving a distance measurement request from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and specifies one or more operational characteristics that the application requests from the distance measurement.Additionally, the operations include selecting a distance measurement mechanism from a variety of available distance measurement mechanisms based on at least one or more operating characteristics required by the application. Furthermore, based on at least the selection, the operations include causing the device to implement the selected distance measurement mechanism in response to the distance measurement requirement.
[0012] In another respect, a non-transitory computer-readable medium is disclosed on which an operating system is stored that defines instructions executable by a processor of a device to cause the device to perform operations such as those described above.
[0013] In yet another respect, a system is revealed which includes various means for carrying out each of the processes described herein.
[0014] These and other aspects, advantages, and alternatives will become apparent to the person skilled in the art upon reading the following detailed description, possibly with reference to the accompanying drawings. Furthermore, it should be clear that the descriptions provided in this summary and below are intended to illustrate the invention only as an example and not as a limitation. BRIEF DESCRIPTION OF THE DRAWINGS Fig. Figure 1 is an illustration of exemplary distance and angle measurements between two example devices. Fig. Figure 2 is a simplified block diagram of an example device. Fig. Figure 3 is an example of an illustrative representation of the mapping of data to correlate one or more application-requested operating characteristics with a distance measurement mechanism to be called in response to a distance measurement request. Fig. Figure 4 is a flowchart that illustrates an example procedure. DETAILED DESCRIPTION
[0015] This document describes exemplary methods, devices, and systems. However, it should be understood that no disclosed embodiment is necessarily to be considered preferred or advantageous over other embodiments unless explicitly stated otherwise. Furthermore, it should be understood that variations in the specific arrangements and processes disclosed are possible. For example, various disclosed entities, components, connections, operations, and other elements could be added, omitted, distributed, replicated, rearranged, reordered, combined, or otherwise modified. Additionally, it is assumed that various disclosed technical operations could be implemented, at least partially, by a processing unit programmed to perform the operations or to cause one or more other entities to perform the operations. Example of distance measurement between devices
[0016] As mentioned above, distance measurement between devices can involve determining a distance between the devices and / or determining an angular orientation of one of the devices relative to the other. For example, given two devices D1 and D2, distance measurement could involve determining a distance between the physical positions of D1 and D2 and / or determining an angular orientation of one of the devices in a Cartesian or polar coordinate system defined with respect to a physical position and orientation of the other device. Fig. Figure 1 illustrates general examples of distance and angular alignment between devices D1 and D2.
[0017] The present disclosure assumes that a given device D1 performs a distance measurement between itself and another device D2. In this arrangement, at least one of these two devices can be in motion, while the other device can be in motion or stationary. For example, D1 can be in motion and D2 can be stationary, so that D1 is moving relative to D2. Alternatively, D1 can be stationary and D2 can be in motion, so that D2 is moving relative to D1. In either case, D1 can perform a distance measurement to determine the distance between D1 and D2 and / or the angular orientation of D2 relative to D1.
[0018] Devices D1 and D2 could take a variety of forms. Examples include, without limitation, mobile phones, tablet computers, laptop computers, gaming devices, portable devices, package tracking devices, livestock tracking devices, household appliances, wireless key fobs, and Internet of Things (IoT) or other machine-to-machine (M2M) devices.
[0019] Device D1 may have a user interface, such as a display screen or other interface, through which it can be configured to present the results of its distance measurement. For example, D1 may be configured to display a numerical value or other indication of its determined distance from D2 on a display screen. Alternatively or additionally, D1 may be configured to display an arrow on a display screen, intended to point in the direction of D2, thus enabling a user of D1 to potentially approach the location of D2. Alternatively, the distance measurement results could be provided to another entity for presentation and / or processing.
[0020] Furthermore, the device D1 can repeatedly perform the distance measurement. For example, D1 can periodically determine its distance from D2 and / or the orientation angle of D2 relative to D1 and present the results of this distance measurement. Furthermore, D1 can vary the periodicity and / or the form of this distance measurement, such as by measuring the distance more frequently or with greater granularity, as the distance between D1 and D2 decreases (i.e., as D1 approaches D2 and / or as D2 approaches D1). Examples of distance measurement mechanisms
[0021] As mentioned above, various distance measurement mechanisms are possible. These mechanisms may, among other things, use wireless signaling communication between D1 and D2 and / or involve communication with one or more centralized positioning systems. Furthermore, each distance measurement mechanism may have specific operational characteristics, such as a suitable power budget, safety, accuracy, latency, and capabilities for determining distance and / or angular orientation.
[0022] In some distance measurement mechanisms, D1 and D2 can first establish a data communication session (e.g., via wireless peer-to-peer communication and / or Wi-Fi, cellular, or other network communication). Through this data communication session, D1 and D2 can then exchange data to facilitate the calculation of distance and / or angular orientation. For example, D1 and D2 can exchange data about the distance measurement mechanism they are using and agree on a radio channel over which they can exchange distance measurement signals. Furthermore, D1 and D2 can exchange information via wireless signaling.
[0023] Distance measurement mechanisms that determine the distance between D1 and D2 based on wireless signal transmission between D1 and D2 can take various forms, including the use of signal strength and / or signal propagation time between D1 and D2 and / or the respective positions of D1 and D2.
[0024] Regarding distance determination based on signal strength, for example, if D2 transmits a signal detectable by D1, D1 can receive this signal, measure the signal strength as a received signal strength indicator (RSSI) value, and convert this RSSI value into a distance between the devices. D1 can use information about the transmit power of D2 and / or knowledge of relative distances corresponding to different RSSI levels as a basis for converting RSSI into distance.For example, if an RSSI value of -50 decibels per milliwatt (dBm) represents a distance of 1 meter (1 m) between the devices, and if each decrease in RSSI of -6 dBm represents a doubling of the distance between the devices, then D1 could consider an RSSI value of -56 dBm as representing a distance of 2 m between the devices, D1 could consider an RSSI of -72 dBm as representing a distance of 4 m between the devices, and so on. Alternatively, if D1 broadcasts a signal detectable by D2, D2 could measure the RSSI of that signal and report the measured RSSI to D1, which D1 could then convert into a distance value between the devices, or D2 could convert the RSSI into a distance value and report that distance value to D1.
[0025] This or other distance measurement mechanisms based on signal strength can be relatively simple and fast, with a relatively low power budget. However, they can be faulty and inaccurate due to signal reflections and interference from obstacles, among other things. Furthermore, this type of distance measurement alone would not allow for the determination of the angular alignment between devices.
[0026] Distance determination based on signal propagation time, on the other hand, can involve wirelessly transmitting one or more pulses (e.g., individual images) between D1 and D2, measuring the transit times of each such transmission, and using the speed of light as a basis for converting the measured transit times into a measure of the distance between the devices. For example, distance measurement could involve calculating the transit time of each of several such pulses transmitted in rapid succession from D1 to D2, calculating an average of these transit times, and converting the calculated average transit time into a specific distance between the devices.Alternatively, the distance measurement could involve calculating the travel time of each such pulse, converting the calculated travel times into distance values, and calculating an average of the calculated distance values as a specific distance between the devices.
[0027] For example, D1 could transmit one or more time-stamped pulses to D2, and for each pulse, D2 could record its reception time and calculate the propagation time as the difference between the transmission and reception times, then report this back to D1. Considering the speed of light, D1 could then convert the calculated propagation time from D2 into a distance between D1 and D2, possibly taking into account processing, encoding, and / or other delays not caused by distance. Alternatively, for each pulse, D2 could record its reception time, calculate the propagation time, convert the calculated propagation time into a distance between D1 and D2, and report this calculated distance back to D1. Furthermore, such calculations could be averaged over a set of such pulses.
[0028] Alternatively, in a one-way, two-way distance measurement process, D1 could transmit one or more time-stamped interrogation pulses to D2, and for each interrogation pulse, D2 could transmit a corresponding response pulse to D1. D1 could then calculate a round-trip time (RTT) (e.g., round-trip delay - RTD) as the total time from D1 transmitting an interrogation pulse until D1 receives the response pulse (also taking into account any processing, encoding, and / or other delays not caused by distance). D1 could then use half of this RTT as a measurement of the transit time between D1 and D2 and convert this transit time into a distance between D1 and D2.
[0029] Alternatively, D1 and D2 can perform a combination of two one-way, two-way distance measurement processes in a two-way, two-way distance measurement process. For example, D1 could transmit one or more time-stamped query pulses to D2, and for each query pulse, D2 could transmit both a corresponding response pulse and its own time-stamped query pulse to D1, to which D1 could respond with its own corresponding response pulse to D2. For each such exchange, D1 could then calculate an RTT for D1's query to D2 and D2's corresponding response to D1, and D2 could calculate and report an RTT for D2's query to D1 and D1's corresponding response to D2.D1 could then use these two RTT calculations in combination (also taking into account any processing, encoding and / or other delays not attributable to distance) as the basis for calculating the runtime between D1 and D2 and convert this runtime into a distance between D1 and D2.
[0030] These or other distance measurement mechanisms based on signal propagation time can be more accurate than distance measurements based on signal strength, but they also require tightly synchronized clocks, which may or may not be feasible in some situations. Furthermore, they may have a higher power budget due to their need for additional wireless communication and processing. Additionally, these types of distance measurements alone may not allow for the determination of the angular alignment between devices.
[0031] Determining the distance based on the respective positions of D1 and D2 can, on the other hand, involve determining the respective positions of D1 and D2 in a common coordinate system and calculating a difference between these determined positions as a specific distance between the devices.
[0032] Determining the respective positions of devices D1 and D2 in a common coordinate system could itself take various forms. For example, both devices, or each device, could use a global navigation satellite system (GNSS), such as the global positioning system (GPS), with the aid of a GNSS receiver to receive time-stamped signals from each of the multiple GNSS satellites at known orbital locations, and perform triangulation or trilateration based on these signals to determine their geographic location.As another example, both devices, or each device, can use cellular, WiFi, or other such broadcast signals, with a receiver being used to receive signals from multiple base stations or access nodes at known geographic locations, and perform triangulation or trilateration based on these signals to determine their geographic location.
[0033] If each device determines its own position, one device could report its position to the other, and the other device could compare this position to its own to calculate the distance between them. For example, D2 could report its position to D1, and D1 could then calculate the distance between D1 and D2 as the difference between D1's position and D2's position. This method of distance measurement could also facilitate determining the angular orientation of D1 relative to D2.
[0034] This or other distance measurement mechanisms that involve determining and comparing the respective positions of D1 and D2 can be even more accurate than some other distance measurement mechanisms, but may also have increased power budgets and latency due to their use of positioning mechanisms such as GNSS or cellular communication. On the other hand, these types of distance measurement can support not only distance determination but also angular orientation determination.
[0035] Other distance measurement mechanisms that determine the angular orientation of D2 relative to D1 can also take various forms, potentially employing triangulation, trilateration, and / or other technologies. For example, the angular orientation of D2 relative to D1 could be determined using an arrival phase difference technique.
[0036] The angle at which D2 is positioned relative to D1 could be measured at D1 with respect to a defined plane. One way to measure this angle is to use an antenna array (e.g., a linear antenna array) at D1, with the antennas arranged in a plane (e.g., spaced apart by at least half the carrier wavelength), and to measure the phase difference of a given signal as received at the different antennas in the plane. Specifically, when D1 receives a pulse signal from D2, D1 could determine the phase of the signal as received at each antenna and, based on a comparison of these phases, determine an arrival direction (e.g., from 0 to 180 degrees) of the signal with respect to the antenna array plane. If D1 determines that the phase of the signal is the same at each antenna, D1 could conclude that D2 is oriented at 90 degrees to the plane.If, however, D1 determines that there is a phase difference between the different antennas, D1 could use this phase difference as the basis for calculating the arrival angle of the signal from D2 and thus the orientation of D2 with respect to the plane. Once this orientation of D2 and the distance between D1 and D2 have been determined, D1 could then further determine the position of D2 in a Cartesian or polar coordinate system defined with respect to D1.
[0037] This or similar distance measurement mechanisms, which determine the angle of orientation of D2 relative to D1, can be relatively fast and also have relatively low power budgets. Furthermore, the degree of accuracy of this type of distance measurement can depend on factors such as the carrier frequency used for signaling and / or the design of the antenna array. Moreover, while this type of distance measurement mechanism cannot determine distance on its own, it can be combined with one or more other mechanisms to facilitate both distance and angle orientation determination. For example, the distance could be calculated based on the signal strength and / or signal delay, while the angle could be measured based on the phase difference.
[0038] As mentioned above, distance measurement to determine the distance between D1 and D2 and / or the angular orientation of D2 relative to D1 may also or alternatively involve communication with a centralized positioning system. For example, D1 may engage in network communication with a system configured to calculate or otherwise determine the respective positions of D1 and D2 in a common coordinate system and report the associated distance measurement information to D1. For instance, D1 may transmit a distance measurement request between D1 and D2 to the system via a Wi-Fi, cellular, or other connection. After authorization from D1, the system can then cooperate with D1 and D2 to determine their respective positions, possibly using GNSS or other techniques.The system can then report these specific positions to D1 and D1 can compare the positions to determine the distance and / or angular orientation, or the system can determine the distance and / or angular orientation and report it to D1.
[0039] This type of distance measurement can be very accurate, especially when it involves the use of GNSS or similar technologies. However, due to the additional communication with the centralized system and potentially the use of GNSS and / or one or more other such technologies, this type of distance measurement can also have a relatively high latency and a relatively high power budget.
[0040] The exemplary distance measurement mechanisms discussed above can vary in their operating characteristics, among other things, based on their respective implementation.
[0041] For example, the operating characteristics of distance measurement mechanisms can differ based on the air interface protocols or wireless communication technologies used for distance measurement. For instance, distance measurement using some forms of Wi-Fi or Bluetooth signaling may have relatively low accuracy, whereas distance measurement using ultra-wideband (UWB) signaling, which uses very narrow pulses and operates at a very high frequency and across a wide spectrum, can have much higher accuracy. Furthermore, distance measurement using some forms of Bluetooth (e.g., Bluetooth Low Energy (BLE) with RSSI measurements) may have lower accuracy than distance measurement using other forms of Bluetooth (e.g., Bluetooth High Accuracy Distance Measurement (HADM)).Furthermore, distance measurement, which is carried out through interaction with a central positioning system, can be very accurate.
[0042] Furthermore, these or other distance measurement mechanisms can differ in their level of security, such as their ability to prevent relay or man-in-the-middle attacks (e.g., spoofing). For example, some forms of UWB-based distance measurement can provide a very high level of security compared to WiFi- or Bluetooth-based distance measurement. Distance measurement performed through interaction with a secure centralized positioning system, such as a mobile network operator's mobile location system, can also be highly secure.
[0043] Additionally, some distance measurement mechanisms can differ in their power budgets based on their level of safety, accuracy, and / or other operating characteristics. For example, a distance measurement device with a variable level of safety may consume more energy when operated at a higher level of safety than when operated at a lower level. Similarly, a distance measurement device with a variable level of accuracy may consume more energy when operated at a higher level of accuracy than when operated at a lower level. Exemplary application-based control of distance measurement
[0044] As mentioned above, a device's operating system could be configured to allow applications some control over the distance measurement process by permitting them to request one or more operational properties that they require for the distance measurement. For example, the operating system could expose an API through which any given application on the device could request a distance measurement and specify one or more desired operational properties. Upon receiving such an API call from an application, the operating system could then select one distance measurement mechanism from several available mechanisms, with the selection based on at least one of the operational properties requested by the application.In this way, if one or more of the requested operating properties vary from distance measurement request to distance measurement request (e.g., from application to application and / or from situation to situation), the operating system can select and call different distance measurement mechanisms to achieve different application goals.
[0045] Fig. Figure 2 is a block diagram of an example device 200, showing some of the components that might be present in the device to facilitate the performance of the operations described herein. Fig. 2 can represent an example arrangement of device D1 and / or an example arrangement of device D2.
[0046] As in Fig. As shown in Figure 2, the example device includes 200 wireless communication modules 202, a user interface 204, a processor 206 and a non-transitory data storage 208, all of which can be integrated and / or communicatively connected to each other in various ways, such as via a system bus, a network or another connection mechanism 210.
[0047] Wireless communication modules 202 can comprise various components to facilitate wireless communication between the device 200 and other entities, such as, but not limited to, between the device 200 and another device that could be subject to distance measurement, and / or between the device 200 and a local or wide area network (e.g., a WiFi network and / or a cellular network). Each wireless communication module can be configured to support communication according to, among other things, a different air interface protocol than each other wireless communication module and / or according to a different air interface protocol version or communication mechanism than the others. For example, the wireless communication modules 202 can include WiFi, Bluetooth, UWB, and cellular (e.g., 4G, 5G, 6G, etc.) modules. Each of these modules can be individually addressable and controllable.However, one or more such modules may be arranged on a common chipset or other unit, and some of the modules may share one or more components.
[0048] As shown in the figure, an exemplary wireless communication module 202 can include one or more radios 212, one or more amplifiers 214, and one or more antennas 216. The one or more radios can include one or more transmitters configured to modulate baseband signals onto radio frequency (RF) carriers and one or more receivers configured to demodulate baseband signals from one or more RF carriers. The one or more amplifiers can be configured to amplify outgoing signals for transmission and / or incoming signals for processing. And the one or more antennas can be configured to transmit and / or receive RF signals.The wireless communication module 102 may further include various circuits and / or other logic to facilitate operation according to an exemplary air interface protocol, such as to facilitate one or more exemplary distance measurement mechanisms.
[0049] The user interface 204 can comprise one or more components to facilitate interaction with a user of the device 200. For example, the user interface 204 can include various output components such as a display screen, a speaker, indicator lights, and a haptic feedback interface, as well as associated circuitry and / or other logic to facilitate the operation of these output components. Furthermore, the user interface 204 can include various input components such as a touchscreen interface integrated into the display screen, a microphone, and a keyboard, as well as associated circuitry and / or other logic to facilitate the operation of these input components.
[0050] The processor 206 may comprise one or more general-purpose processors (e.g., one or more microprocessors, etc.) and / or one or more specialized processors (e.g., application-specific integrated circuits, etc.). Furthermore, the non-transitory data storage 208 may comprise one or more volatile and / or non-volatile memory components (e.g., read-only memory, random-access memory, flash memory, cache memory, etc.) that may be wholly or partially integrated into the processor 206.
[0051] As shown, the data memory 208 can store program instructions 218 that can be executed by the processor 206 to perform various operations described herein. In particular, the program instructions 218 can, as shown, represent an operating system 220 of the device and one or more applications 222 installed on the device.
[0052] In accordance with these program commands 218, the operating system 220 can control various services and functions of the device 200 and manage the applications 222 by providing an API that the applications can use to access the services and functions. For example, the API can allow the applications to submit distance measurement requests and specify requested operational characteristics of the requested distance measurement to facilitate the selection and invocation of appropriate distance measurement mechanisms. To facilitate this, the operating system 220 can be configured to interact with one or more wireless communication modules to, among other things, initiate and / or coordinate a distance measurement according to the distance measurement mechanisms, such as one or more of those mentioned above.
[0053] The applications 222 can in turn comprise one or more native applications and / or one or more third-party applications. Each such application can be installed on the operating system 220 and thus on the device, and can be executed by the processor 206 carrying out the application's instructions.
[0054] A given application can be considered to be running on the device 200 if the device performs one or more operations in response to the application's program instructions or is configured to perform them. Furthermore, an application can run in a foreground state or a background state from time to time. An application can be in the foreground state if it is focused and / or exhibits user-perceived activity, regardless of whether it is running or stopped. Conversely, an application can be in the background state if it is not in the foreground state.For example, if several given windows each represent applications running on the device, when a given window has focus, its application can be considered to be in a foreground state, whereas when a given window does not have focus, its application can be considered to be running in a background state.
[0055] As in Fig. As further shown in Figure 2, the data storage device 208 can also store reference data 224, which the processor 206 can access according to the program instructions 218 to facilitate the execution of various device operations.
[0056] As discussed above, the reference data 224 can include mapping data 226 (e.g., a mapping table and / or another logical data structure) that correlate different sets of operating characteristics with different distance measurement mechanisms. The device can be pre-provided with this mapping data and / or the data can be built up over time through machine learning or other techniques. Referring to such mapping data 226, the processor 206 can select a distance measurement mechanism based on one or more operating characteristics that an application requests from the distance measurement, so that the processor 206 can then invoke the selected distance measurement mechanism in response to the application's request.
[0057] In an exemplary implementation involving machine learning, the processor can evaluate distance measurement data over a specific period to programmatically establish or update correlations between certain operating characteristics and specific distance measurement mechanisms. For example, the device may be pre-loaded with an initial set of mapping data that correlates certain operating characteristics with specific distance measurement mechanisms, such as data indicating that certain distance measurement mechanisms are likely to exhibit certain operating characteristics or specific combinations of operating characteristics.Since the processor applies this mapping data over time to select distance measurement mechanisms that are likely to have certain operating characteristics according to the mapping data, the processor can evaluate the actual resulting operating characteristics of the selected distance measurement mechanisms to determine whether and / or to what extent the distance measurement mechanisms exhibit the operating characteristics specified by the mapping data (effectively as a machine-learning loss function), and the device can modify the mapping data based on this evaluation.
[0058] For example, if the imaging data indicates that a given distance-measuring mechanism is likely to have low latency, but the device determines in practice that this distance-measuring mechanism typically has medium or high latency, the device can respond to this determination by revising the imaging data to indicate instead that the given distance-measuring mechanism is likely to have medium or high latency. Subsequently, when the device applies the imaging data to determine a distance-measuring mechanism to be selected based on one or more specified operating characteristics, the device would use the updated imaging data, with improved correlations between the operating characteristics and the imaging data.
[0059] Fig. Figure 3 illustrates an example of such mapping data 226 as a representative table in which each row (i) specifies in a first column a respective set S of operating characteristics of the distance measurement and (ii) in a second column a distance measurement mechanism M that is to correspond to the set S of the first column.
[0060] As in Fig. As mentioned in section 3, the example table can define each set S of operating characteristics as a bit sequence in which bits at predefined positions have values representing the respective operating characteristics of the distance measurement. For example, the bit sequence can comprise eight bits, where each pair of bits represents a low (e.g., 01), medium (e.g., 10), or high (e.g., 11) value of a given operating characteristic, or is zero (e.g., 00) if that operating characteristic is unspecified. For example, the first two bits can represent the power budget, the second two bits can represent the accuracy level, the third two bits can represent the security level, and the fourth two bits can represent the latency.Furthermore, although not shown, the exemplary table can define each distance measurement mechanism M as a respective binary code that can be interpreted by the processor 206 to represent a particular distance measurement mechanism, such as the use of a particular air interface protocol for distance measurement and / or the use of one or more particular mechanisms, such as those discussed above.
[0061] In an example implementation, if application 222 wants to cause the device to perform a distance measurement, it can issue a distance measurement request API call to operating system 220. Furthermore, the application can include various arguments in this API call that enable operating system 220 to process the distance measurement request.
[0062] For example, the application in the API call can include an identifier associated with the other device that will be a target for distance measurement, such as an identifier associated with D2 in the discussion above. This could be an identifier that allows device 200 to initiate a communication session with the other device and / or otherwise facilitates distance measurement between device 200 and the other device. This could, for example, be an account identifier of the other device or of a user of the other device.
[0063] Furthermore, in the API call, application 222 can include a specification of one or more operational properties that the application requests from the distance measurer. This specification could take the form of a bit sequence as described above, or it could take another form that the operating system would interpret to represent the one or more operational properties requested by the application. For example, the specification could specify a power budget that the application wants for the distance measurer, a level of security that the application wants for the distance measurer, a level of accuracy that the application wants for the distance measurer, and / or a level of latency that the application wants for the distance measurer.The application may not know which distance measurement mechanism(s) the operating system can use to meet such requirements, but the requirements may enable the operating system to make (or attempt to make) an appropriate selection.
[0064] As a concrete example, if the device 200 is battery-powered and an application has a reason to conserve the device's battery power (e.g., to avoid the operating system 220 stopping the application if the application consumes too much battery power), and if a lower safety distance measurement could consume less battery power, the application may choose to request a low or medium safety distance measurement instead of a high safety distance measurement.As another example, if the application has reason to obtain very high accuracy in distance measurement, such as if the application uses distance measurement as the basis for triggering the unlocking of a security system (such as a car or a house), it may choose to request high accuracy in distance measurement instead of low or medium accuracy.
[0065] Upon receiving this API call from application 222, operating system 220 can read the identifier of the other device from the API call and use this identifier as a basis for processing to establish an initial data communication session between device 200 and the other device, using, for example, one of the wireless communication modules 202. Through this data communication session, the operating system can exchange information with the other device about the distance measurement capabilities of device 200 and the other device in order to determine a set of distance measurement mechanisms supported by both device 200 and the other device.
[0066] Furthermore, the operating system 220 can read from the API call the specification of one or more operating properties that the application 222 requests for distance measurement, and the operating system 220 can use the specified one or more operating properties as a basis to select a distance measurement mechanism from the set of available distance measurement mechanisms (e.g., from the set of distance measurement mechanisms supported by both the device 200 and the other device). For example, the operating system 220 can refer to mapping data such as that described above to determine a distance measurement mechanism that corresponds to the one or more operating properties requested by the application.
[0067] The operating system 220 can then invoke the selected distance measurement mechanism, i.e., cause the device 200 to implement the selected distance measurement mechanism. For example, the operating system 220 can signal to a specific wireless communication module 202 and possibly coordinate its operation to perform the selected distance measurement mechanism. Through this distance measurement process, the operating system 220 can thus determine the distance between the device 200 and the other device and / or an angular orientation of the other device with respect to a position and orientation of the device 200. This distance measurement may or may not be perfect; the distance and / or the angular orientation may not be entirely accurate, but represent the best possible estimate considering the selected distance measurement mechanism and the circumstances.
[0068] As mentioned above, the result of this distance measurement can be data specifying the position and orientation of device 200 and the other device, and / or the angular orientation of the other device relative to device 200. The operating system 220 can return this data to the application in response to the application's API call. The application can then use this data. For example, the application can display a representation of the specified distance and / or angular orientation on its user interface 204.
[0069] In another implementation, the 220 operating system can use the one or more application-requested operating properties as a basis for selecting more than one distance measurement mechanism to be invoked in response to the application's request. For example, based on the one or more operating properties, the 220 operating system can decide to invoke a first distance measurement mechanism (e.g., a BLE-based distance measurement mechanism) and use the threshold proximity (closeness) detected by this mechanism as a trigger or gate to then invoke a second distance measurement mechanism (e.g., a UWB-based distance measurement mechanism), possibly to produce more refined distance measurement results or for one or more other purposes.
[0070] Furthermore, in addition to considering one or more application-requested operating properties, the operating system 220 can consider one or more other factors as an additional basis for selecting a distance measurement mechanism to be called in response to the application's request.
[0071] An example of an additional factor is the foreground or background state of the application. For instance, the operating system 220 may have data indicating the current foreground / background state of the application and, upon receiving a distance measurement request from the application, may reference this data and use it as an additional basis for selecting a distance measurement mechanism. For example, depending on whether the application is in the foreground or background state, the operating system 220 may filter the set of available distance measurement mechanisms, from which it can then make a selection based on the one or more operational properties requested by the application.
[0072] As a specific example, if the operating system 220 determines that the requesting application is in the foreground state and not in the background state, then, based at least on this determination, it can weight its selection of a distance measurement mechanism in favor of a mechanism that may consume more energy. Conversely, if the operating system 220 determines that the requesting application is in the background state and not in the foreground state, then, based at least on this determination, it can weight its selection of a distance measurement mechanism in favor of a mechanism that may consume less energy.
[0073] Fig. Figure 4 is a flowchart that represents an example procedure that could be carried out according to the present disclosure to facilitate the control of the application via distance measurement.
[0074] As in Fig.As shown in Block 400, the method includes an operating system of a device that receives a distance measurement request from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and specifies one or more operating characteristics that the application requests from the distance measurement; additionally, the method at Block 402 includes the operating system selecting a distance measurement mechanism from a plurality of available distance measurement mechanisms based on at least the one or more operating characteristics requested by the application.Furthermore, the procedure at block 404, based at least on the selection, includes the operating system causing the device to implement the selected distance measurement mechanism in response to the distance measurement request.
[0075] In accordance with the above discussion, distance measurement could involve determining a distance between the device and the other device and / or determining an angular orientation of the other device in relation to the device.
[0076] Furthermore, as discussed above, the operating system may have access to mapping data that correlates distance measurement mechanisms with operational properties of the distance measurement, in which case the process of selecting the distance measurement mechanism based on at least one or more operational properties requested by the application may involve: (i) determining, with reference to the mapping data, a given distance measurement mechanism that the mapping data correlates with one or more operational properties, and (ii) selecting the given distance measurement mechanism as the distance measurement mechanism based on at least the determination.
[0077] As discussed above, examples of one or more operational characteristics that may be required by the application include a distance measurement power budget and / or distance measurement reliability. Furthermore, or alternatively, examples of one or more operational characteristics that may be required by the application include distance measurement accuracy and / or distance measurement latency.
[0078] Additionally, as discussed above, the process of selecting the distance measurement mechanism could also be based on a determination of whether the application is currently operating in a foreground state or rather in a background state.
[0079] Furthermore, as discussed above, the distance measurement requirement could additionally specify an identity associated with the other device, which could facilitate the requested distance measurement.
[0080] As further explained above, the present disclosure also relates to a device comprising a processor, a non-transitory data storage medium, and an operating system stored in the non-transitory data storage medium and executable by the processor, wherein the operating system defines program instructions executable by the processor to perform operations such as those described above. Furthermore, the present disclosure relates to a non-transitory computer-readable medium on which an operating system is stored, defining instructions executable by a processor of a device to cause the device to perform such operations.
[0081] In some implementations, the operating system can respond to a distance measurement request from an application by selecting a distance measurement mechanism based on a determination that the selected distance measurement mechanism would meet or exceed the specified operational characteristics of the application, based on the operating system's evaluation of previous distance measurement requests from the application based on resources available to the operating system, and / or based on one or more other considerations.For example, if an application requests an accurate and safe distance measurement every ten minutes and a low-quality distance measurement every minute, and if conditions are such that the device can provide accurate and safe distance measurements more frequently than every ten minutes, the operating system can select and call up the accurate and safe distance measurement for the application, even if the application requests a low-quality distance measurement.
[0082] Exemplary embodiments have been described above. However, the person skilled in the art will understand that changes and modifications can be made to these embodiments without departing from the true scope and spirit of the invention.
Claims
[1] Method for application control of a distance measurement, wherein the method comprises: Receiving a distance measurement request by an operating system of a device from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and the distance measurement request specifies one or more operating characteristics that the application requests from the distance measurement; Selecting a distance measurement mechanism from a variety of available distance measurement mechanisms by the operating system based on at least one or more operating properties requested by the application; and To cause the device to implement the selected distance measurement mechanism in response to the distance measurement request, based at least on the selection by the operating system. [2] Method according to claim 1, wherein the distance measurement comprises determining a distance between the device and the other device. [3] Method according to claim 2, wherein the distance measurement comprises determining an angular orientation of the other device in relation to the device. [4] Method according to claim 1, wherein the operating system has access to imaging data that correlate distance measurement mechanisms with operating properties of the distance measurement, and wherein the selection of the distance measurement mechanism based on at least one or more operating properties requested by the application comprises: Determining a given distance measurement mechanism that correlates the imaging data with one or more operational characteristics, with reference to the imaging data; and Selecting the given distance measurement mechanism as a distance measurement mechanism based at least on determining. [5] Method according to claim 1, wherein the one or more operating characteristics requested by the application include at least one operating characteristic selected from the group consisting of (i) distance measurement power budget and (ii) distance measurement security. [6] Method according to claim 1, wherein the one or more operating characteristics required by the application include at least one operating characteristic selected from the group consisting of (i) distance measurement accuracy and (ii) distance measurement latency. [7] Method according to claim 1, wherein the selection of the distance measurement mechanism is further based on a determination of whether the application is currently operating in a foreground state or rather in a background state. [8] Method according to claim 1, wherein the distance measurement request further specifies an identity that is associated with the other device, the identity facilitating the requested distance measurement. [9] Device comprising the following: a processor; non-transitory data storage; and an operating system stored in the non-transitory data memory and executable by the processor, wherein the operating system defines program instructions executable by the processor to perform operations, including: Receiving a distance measurement request from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and the distance measurement request specifies one or more operating characteristics that the application requires from the distance measurement, Selecting a distance measurement mechanism from a variety of available distance measurement mechanisms based on at least one or more operating characteristics required by the application, and To cause, based at least on selecting, the device to implement the selected distance measurement mechanism in response to the distance measurement requirement. [10] Device according to claim 9, wherein the distance measurement comprises determining a distance between the device and the other device. [11] Device according to claim 10, wherein the distance measurement comprises determining an angular orientation of the other device in relation to the device. [12] Device according to claim 9, wherein the operating system has access to imaging data that correlate distance measurement mechanisms with operating characteristics of the distance measurement, and wherein the selection of the distance measurement mechanism based on at least one or more operating characteristics requested by the application comprises the following: Determining a given distance measurement mechanism that correlates the imaging data with one or more operational characteristics, with reference to the imaging data; and Selecting the given distance measurement mechanism as a distance measurement mechanism based at least on determining. [13] Device according to claim 9, wherein the one or more operating characteristics required by the application include at least one operating characteristic selected from the group consisting of (i) distance measurement power budget and (ii) distance measurement security. [14] Method according to claim 9, wherein the one or more operating characteristics required by the application include at least one operating characteristic selected from the group consisting of (i) distance measurement accuracy and (ii) distance measurement latency. [15] Device according to claim 9, wherein the selection of the distance measurement mechanism is further based on a determination of whether the application is currently operating in a foreground state or rather in a background state. [16] Device according to claim 9, wherein the distance measurement request further specifies an identity that is associated with the other device, the identity facilitating the requested distance measurement. [17] Non-transitory computer-readable medium on which an operating system is stored which defines instructions executable by a processor of a device to cause the device to perform operations, comprising the following: Receiving a distance measurement request from an application on the device, wherein the distance measurement request requests a distance measurement between the device and another device and the distance measurement request specifies one or more operating characteristics that the application requires from the distance measurement; Selecting a distance measurement mechanism from a variety of available distance measurement mechanisms based on at least one or more operational characteristics required by the application; and To cause, based at least on selecting, the device to implement the selected distance measurement mechanism in response to the distance measurement requirement. [18] Non-transitory computer-readable medium according to claim 17, wherein the distance measurement comprises determining at least one of a distance between the device and the other device and an angular orientation of the other device with respect to the device. [19] Non-transitory computer-readable medium according to claim 17, wherein the operating system has access to mapping data that correlate distance measurement mechanisms with operating characteristics of the distance measurement, and wherein the selection of the distance measurement mechanism based on at least one or more operating characteristics requested by the application comprises: Determining a given distance measurement mechanism that correlates the imaging data with one or more operational characteristics, with reference to the imaging data; and Selecting the given distance measurement mechanism as a distance measurement mechanism based at least on determining. [20] Non-transitory computer-readable medium according to claim 17, wherein the one or more operating characteristics requested by the application include at least one operating characteristic selected from the group consisting of (i) distance measurement power budget, (ii) distance measurement security, (iii) distance measurement accuracy and (iv) distance measurement latency.