Odometry Measurement for Spatially Aware User Interfaces on Mobile Devices
By measuring range and angle between mobile devices, determining the importance of communication targets and ranking, the problem of users selecting recipients among multiple contacts is solved, improving selection efficiency and user experience.
Patent Information
- Application Number
- CN202010352116.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Priority Date
- 2019-09-17
- Filing Date
- 2020-04-28
- Publication Date
- 2025-05-02
- Estimated Expiration
- 2040-04-28
AI Technical Summary
In mobile devices, it is difficult for users to quickly find and select the appropriate recipients to interact or communicate with, especially when selecting among multiple available contacts.
By performing range and angle measurements between mobile devices, the importance of the user as a communication target is determined and the target devices are ranked based on this importance, and icons on the user interface are displayed to reflect the ranking order.
It improves the efficiency of users to select the right recipient among multiple contacts, ensures that the icon display on the user interface is consistent with the user's interaction goals, and enhances the user experience.
Smart Images

Figure CN111896940B_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This patent application claims the benefit of and priority to U.S. Provisional Application No. 62 / 843,944, filed May 6, 2019, and U.S. Patent Application No. 16 / 573,422, filed September 17, 2019; each of which is incorporated herein by reference in its entirety. Background Art
[0003] Modern mobile devices (e.g., smart phones) may include many applications. Certain applications may be designed to enable users to interact or communicate with other users. For example, in addition to providing the ability to make phone calls and send SMS text messages, modern mobile devices may also include communication applications for composing email messages, instant messaging, and for initiating video calls and video conferences. In some cases, a user may wish to know when other users included in a contact list are nearby in order to interact or communicate with a particular contact. However, it may be difficult and time-consuming to find and select a desired recipient among all available contacts that a user wishes to interact or communicate with. Summary of the invention
[0004] Embodiments may provide systems, methods, and apparatus for determining range and angle measurements between a user of a mobile device and mobile devices of potential recipients of communications from the user. The importance of a user as a target of a communication may be determined based on a probability that the target mobile device is present in one of several weighted areas relative to the transmitting mobile device. Target devices may be ranked based on their importance, and icons representing users of target devices may be displayed on a user interface display in ranked order, with icons of users of highest ranked target devices having the most prominent position in the display.
[0005] Other embodiments relate to systems, portable consumer devices, and computer-readable media associated with the methods described herein.
[0006] The nature and advantages of embodiments of the present invention may be better understood by referring to the following detailed description and accompanying drawings. BRIEF DESCRIPTION OF THE DRAWINGS
[0007] Figure 1 shows a sequence diagram for performing ranging measurements between two mobile devices according to an embodiment of the present disclosure;
[0008] Figure 2 shows a sequence diagram of ranging operations involving a mobile device having three antennas according to an embodiment of the present disclosure;
[0009] Figure 3is a block diagram of components of a mobile device operable to perform ranging according to aspects of the present disclosure;
[0010] Figure 4 An exemplary sharing scenario is shown in which a mobile device uses ranging to facilitate sharing of a data item with another device according to an embodiment of the present disclosure;
[0011] Figure 5 is a schematic diagram illustrating sectors of a field of view of a mobile device according to aspects of the present disclosure;
[0012] Figure 6 is a schematic diagram illustrating various zones that may be defined within a field of view according to aspects of the present disclosure;
[0013] Figure 7 is a schematic diagram illustrating an example of importance scores assigned to regions according to aspects of the present disclosure;
[0014] Fig. 8A is an illustration of a mobile device having a user interface displaying suggested applications and suggested recipient / application pairs in accordance with aspects of the present disclosure;
[0015] Figure 8B is an illustration of a mobile device having a user interface that displays suggested recipients based on proximity in accordance with aspects of the present disclosure;
[0016] Fig. 9 is a flow chart illustrating a method for identifying one or more other mobile devices in proximity to a first mobile device according to aspects of the present disclosure; and
[0017] Fig.10 is a block diagram of an example of a device according to aspects of the present disclosure. DETAILED DESCRIPTION
[0018] In some embodiments, a mobile device may include a ranging circuit that can determine the relative distance between the mobile device and another mobile device. For example, time-of-flight measurements can be performed using ultra-wideband (UWB) pulses transmitted between mobile devices. Ranging can provide distance and angle information that can be used to determine the relative position of one mobile device to another mobile device. For example, the relative position may include a distance value, angle (orientation) information, or both between two devices.
[0019] Because these distance and angle measurements may be prone to errors (e.g., line of sight (LOS) occlusions, noise, bias, etc.), the location of the target device cannot be precisely known. Using the measurements obtained, the location of the target device can be estimated based on the probability that the target device is located in a given area relative to the transmitting device. In addition, an importance metric can be calculated based on a combination of the probability that the target device is located in a given area and the importance score assigned to the area. The importance metric can be used to rank the target devices according to which device the transmitting device would most like to communicate with (e.g., to share a picture or communicate in other ways).
[0020] I. Distance measurement
[0021] In some embodiments, a mobile device may include circuitry for performing ranging measurements. Such circuitry may include one or more dedicated antennas (e.g., 3) and circuitry for processing the measured signals. The ranging measurements may be performed using the flight time of a pulse between two mobile devices. In some implementations, the round trip time (RTT) is used to determine, for example, distance information for each antenna. In other implementations, a single trip time in one direction may be used. Ultra-wideband (UWB) radio technology may be used to form the pulses.
[0022] A. Sequence diagram
[0023] Figure 1 A sequence diagram for performing ranging measurements between two mobile devices according to an embodiment of the present disclosure is shown. The two mobile devices may belong to two different users. The two users may know each other and therefore have each other's phone numbers or other identifiers. As described in more detail later, such identifiers may be used for authentication purposes, for example, so that ranging is not performed using unknown devices. Although Figure 1 A single measurement is shown, but the process may be repeated to perform multiple measurements over a time interval as part of a ranging session, where such measurements may be averaged or otherwise analyzed to provide, for example, a single range value for each antenna.
[0024] The mobile device 110 (e.g., a smart phone) may initiate a ranging measurement (operation) by transmitting a ranging request 101 to the mobile device 120. The ranging request 101 may include a first set of one or more pulses. The ranging measurement may be performed using a ranging wireless protocol (e.g., UWB). The ranging measurement may be triggered in various ways, for example, based on user input and / or authentication using another wireless protocol (e.g., Bluetooth Low Energy (BLE)).
[0025] At T1, the mobile device 110 sends a ranging request 101. At T2, the mobile device 120 receives the ranging request 101. T2 may be an average reception time when the plurality of pulses are in the first group. The mobile device 120 may anticipate the ranging request 101 within a time window based on previous communications (e.g., using another wireless protocol). The ranging wireless protocol and the another wireless protocol may be synchronized so that the mobile device 120 may turn on one or more ranging antennas and associated circuits within a specified time window, rather than having them turned on throughout the ranging session.
[0026] In response to receiving the ranging request 101, the mobile device 120 can transmit a ranging response 102. As shown, the ranging response 102 is transmitted at time T3 (e.g., the transmission time of one pulse or the average transmission time of a group of pulses). T2 and T3 can also be a group of times for corresponding pulses. The ranging response 102 can include the time T2 and T3 so that the mobile device 110 can calculate the distance information. Alternatively, the difference between the two times (e.g., T3-T2) can be sent.
[0027] At T4, mobile device 110 can receive ranging response 102. As with the other times, T4 can be a single time value or a set of time values.
[0028] At 103, the mobile device 110 calculates distance information 130, which may have various units, such as distance units (e.g., meters) or time (e.g., milliseconds). The time may be equivalent to the distance with a scale factor corresponding to the speed of light. In some embodiments, the distance may be calculated from the total round trip time, which may be equal to T2-T1+T4-T3. More complex calculations may also be used, for example, when the time corresponds to a time group of pulse groups and when frequency correction is implemented.
[0029] B. Triangulation
[0030] In some embodiments, the mobile device may have multiple antennas, for example, to perform triangulation. Individual measurements from different antennas may be used to determine a two-dimensional (2D) position, rather than a single distance value that may be generated by any position on a circle / sphere around the mobile device. A 2D position may be specified using various coordinates, such as Cartesian or polar coordinates, where polar coordinates may include both angular and radial values.
[0031] Figure 2 A sequence diagram of ranging operations involving a mobile device 210 having three antennas 211-213 according to an embodiment of the present disclosure is shown. The antennas 211-213 may be arranged to have different orientations, for example, to define a field of view for performing ranging measurements.
[0032] exist Figure 2In this example, each of antennas 211-213 transmits a packet (comprising one or more pulses) that is received by mobile device 220. These packets may be part of ranging request 201. The packets may each be transmitted at time T1, but in other implementations they may be transmitted at different times.
[0033] In some embodiments, the mobile device 220 itself may have multiple antennas. In such implementations, the antenna of the mobile device 210 may send a packet to a specific antenna of the mobile device 220 (rather than broadcasting), and the specific antenna may respond to the specific packet. The mobile device 220 may listen at a designated antenna so that both devices know which antennas are involved, or the packet may indicate which antenna the message is for. For example, a first antenna may respond to the received packet; and once a response is received, another packet may be sent to a different antenna. This alternative process takes more time and power.
[0034] The three packets of ranging request 201 are received at times T2, T3, and T4, respectively. Thus, one or more antennas (e.g., UWB antennas) of mobile device 220 can listen and respond independently at substantially the same time. Mobile device 220 provides ranging response 202, which is sent at times T5, T6, and T7, respectively. Mobile device 210 receives ranging responses at times T8, T9, and T10, respectively.
[0035] At 203, processor 214 of mobile device 210 calculates distance information 230, for example, as described herein. Processor 214 may receive time from an antenna and more specifically from a circuit (e.g., a UWB circuit) that analyzes signals from antennas 211-213. As described later, processor 214 may be an always-on processor that uses less power than an application processor that may perform more general functions. Distance information 230 may be used to determine a 2D or 3D position of mobile device 220, where such a position may be used to configure a display screen of mobile device 210. For example, the position may be used to determine where to display an icon corresponding to mobile device 220, such as at which position in a list, at which position in a 2D grid, or at which cluster of a 1D, 2D, or 3D distance / position range to display an icon.
[0036] In some embodiments, to determine which ranging response is from which antenna, mobile device 220 may inform mobile device 210 of the order of response messages to be sent, for example, during a ranging setup handshake, which may occur using another wireless protocol. In other embodiments, the ranging response may include an identifier that indicates which antenna sent the message. These identifiers may be negotiated in the ranging setup handshake.
[0037] The messages in ranging request 201 and ranging response 202 may include very little data in the payload, for example, by including very few pulses. Using very few pulses may be advantageous. The environment of a mobile device (perhaps in a pocket) may make measurements difficult. As another example, the antenna of one device may face a different direction than the direction in which other devices are approaching. Therefore, it is desirable to use higher power for each pulse, but there are government restrictions (and battery issues) on how much power can be used within a specified time window (e.g., averaged over 1 millisecond). The length of the packet frames in these messages may be approximately 150 microseconds to 180 microseconds.
[0038] C.UWB
[0039] The wireless protocol used for ranging can have narrower pulses (e.g., narrower full width at half maximum (FWHM)) than the first wireless protocol (e.g., Bluetooth) used for initial authentication or communication of ranging setup. In some implementations, the ranging wireless protocol (e.g., UWB) can provide a distance accuracy of 5 cm or better. In various embodiments, the frequency range can be between 3.1 GHz and 10.6 GHz. Multiple channels can be used, for example, one channel at 6.5 GHz and another channel at 8 GHz. Therefore, in some cases, the ranging wireless protocol does not overlap with the frequency range of the first wireless protocol (e.g., 2.4 GHz to 2.485 GHz).
[0040] The ranging wireless protocol may be specified by IEEE 802.15.4, which is a type of UWB. Each pulse in a pulse-based UWB system may occupy the entire UWB bandwidth (e.g., 500 MHz), allowing the pulse to be localized in time (i.e., narrow width in time, e.g., 0.5 nanoseconds to a few nanoseconds). In terms of distance, for a 500 MHz wide pulse, the pulse may be less than 60 cm wide, and for a 1.3 GHz bandwidth pulse, the pulse may be less than 23 cm. Because the bandwidth is so wide and the width in real space is very narrow, very accurate time-of-flight measurements may be obtained.
[0041] Each of the ranging messages (also referred to as frames or packets) may include a pulse sequence that may represent modulated information. Each data symbol in a frame may be a sequence. A packet may have a preamble that includes, for example, header information of a physical layer and a MAC layer, and may include a destination address. In some implementations, a packet frame may include a synchronization portion and a start frame delimiter that may be timed to line up.
[0042] The packet may include information on how to configure security and include encryption, for example, an identifier of which antenna sent the packet. The encrypted information may be used for additional authentication. However, for ranging operations, it may not be necessary to determine the content of the data. In some embodiments, the timestamp of the pulse of a particular data slice can be used to track the difference between transmission and reception. The content (e.g., decrypted content) can be used to match pulses so that the correct time difference can be calculated. In some specific implementations, the encrypted information may include an indicator of which phase the authentication message corresponds to, for example, ranging request 201 may correspond to phase 1, and ranging response 202 may correspond to phase 2. Such use of indicators may be helpful when more than two devices perform ranging operations near each other.
[0043] Narrow pulses (e.g., widths of about 1 ns) can be used to accurately determine distances. High bandwidth (e.g., a 500 MHz spectrum) allows narrow pulses and accurate position determination. Cross-correlation of pulses can provide timing accuracy that is a fraction of the pulse width, for example, providing accuracy within hundreds or tens of picoseconds, which provides sub-meter ranging accuracy. The pulses can represent ranging waveforms that add 1 and subtract 1 in a certain pattern that is recognized by the receiver. Distance measurements can use round-trip time measurements, also known as time-of-flight measurements. As described above, a mobile device can send a set of timestamps, which can eliminate the need for clock synchronization between the two devices.
[0044] II. Mobile device for performing ranging
[0045] Figure 3 1 is a block diagram of components of a mobile device 300 operable to perform ranging according to aspects of the present disclosure. The mobile device 300 may include antennas for at least two different wireless protocols. A first wireless protocol (e.g., UWB) and a second wireless protocol (e.g., Bluetooth) may both be used to perform ranging with another mobile device.
[0046] like Figure 3 As shown, the mobile device 300 includes a UWB antenna 310 for performing ranging. The UWB antenna 310 is connected to a UWB circuit 315, which is used to analyze the detected signal from the UWB antenna 310. In some embodiments, the mobile device 300 includes three or more UWB antennas, for example, for performing triangulation. Different UWB antennas can have different orientations, for example, two in one direction and the third in another direction, which enables distance and angle information to be obtained for the target mobile device. Triangulation allows the direction to one or more other nearby target devices to be determined relative to the direction in which the user is pointing the device. The orientation of the UWB antenna can define the field of view used for ranging. For example, the field of view can span approximately 120 degrees.
[0047] UWB circuitry 315 may communicate with an always-on processor (AOP) 330, which may use information from the UWB messages to perform further processing. For example, AOP 330 may perform ranging calculations using timing data provided by UWB circuitry 315. AOP 330 and other circuitry of the device may include dedicated circuitry and / or configurable circuitry, such as via firmware or other software.
[0048] The mobile device 300 also includes a BT / WiFi antenna 320. The BT / WiFi antenna 320 is connected to a BT / WiFi circuit 325 that is used to analyze detected signals from the BT / WiFi antenna 320. The BT / WiFi antenna 320 and the BT / WiFi circuit 325 can detect received signal strength indicators (RSSIs) from BT / WiFi antennas of other nearby mobile devices, and can even detect RSSIs from mobile devices that may be considered out of the field of view of the mobile device (e.g., behind a user).
[0049] To perform ranging, the BT / WiFi circuit 325 may analyze a notification signal from another device to determine that the other device wants to perform ranging, for example, as part of a process for sharing content. The BT / WiFi circuit 325 may transmit the notification to the AOP 330, which may schedule the UWB circuit 315 to be ready to detect UWB messages from other devices. For the device that initiates ranging, its AOP may perform ranging calculations. In addition, the AOP may monitor changes in the distance between the other device. For example, the AOP 330 may compare the distance to a threshold and provide an alert when the distance exceeds the threshold, or may provide a reminder when the two devices become close enough.
[0050] In some embodiments, the UWB circuitry 315 and the BT / WiFi circuitry 325 may alternatively or additionally be connected to an application processor 340, which may perform similar functions as the AOP 330. The application processor 340 typically requires more power than the AOP 330, and thus power may be saved by having the AOP 330 handle certain functions so that the application processor 340 may remain in a sleep state, such as an off state. For example, the application processor 340 may be used to transmit audio or video using BT / WiFi, and the AOP 330 may coordinate the transmission of such content and the communication between the UWB circuitry 315 and the BT / WiFi circuitry 325. For example, the AOP 330 may coordinate the timing of UWB messages relative to BT advertisements.
[0051] III. Sharing data based on scope
[0052] A user of a mobile device may want to share data (e.g., a video or audio file) with another user. For example, the user's device may detect other nearby devices and display them as options for sharing data. When two people (i.e., a sender and a recipient) are in a group of other users, the discovery process may identify multiple devices. Ranging may be used to identify appropriate suggested recipients to share with.
[0053] A. Exemplary Sharing Scenarios
[0054] Figure 4 An exemplary sharing scenario is shown in which a mobile device uses ranging to facilitate sharing of data items with another device according to an embodiment of the present disclosure. The data items can be various things, such as contacts, audio files, images, video files, deep links to locations in applications installed on both devices, etc. The sharing session can be initiated by a user 410 using a sending device 415.
[0055] User 410 can initiate a sharing session on sending device 415 in a variety of ways. For example, user 410 can select a data item and then select a share option (e.g., a button on a graphical user interface (GUI)) to share the data item. Selecting the share option can start the sharing process.
[0056] The transmitting device 415 can perform ranging operations with each of the devices 425, 435 and 445, which can respond with ranging information, as shown in the figure. The devices 425, 435 and 445 of the users 420, 430 and 440 can be within the field of view of the transmitting device 415, as shown in the area between the lines 460 and 465. The device 455 of the user 450 located outside the field of view of the transmitting device 415 can also be used to perform ranging, although with lower accuracy. The transmitting device 415 can use the range information to determine distance and angle information, such as the relative position of other devices. For example, if the transmitting device 415 includes multiple antennas (for example, 3 antennas), the transmitting device 415 can determine the position of each device relative to the transmitting device 415 on the 2D grid. For another example, the transmitting device 415 can determine a single distance value to each device, wherein the device can be sorted by the distance in the list.
[0057] B. Configure the display for sharing
[0058] The sending device 415 may use the distance and angle information to configure a display on the screen of the sending device 415. For example, the location may be used to determine where to display an icon corresponding to the user 420 of the mobile device 425, such as where in a list, where in a 2D grid, or which cluster of a 1D, 2D, or 3D distance / location range to display the icon.
[0059] Using the configuration display of mobile device 415, user 410 can select which device to send data item to.As shown, select device 435.This selection can be carried out in various ways, for example, by touching the icon representing receiving device 435, which can be a picture of user 430.In other embodiments, user 410 can point sending device 415 to receiving device 435 to realize selection.For example, the device along the central axis pointed from the sending device can be automatically selected as the recipient of the data item.Like this, user 410 can easily see available devices and select desired devices.In some embodiments, the user can control which other devices can find them and perform ranging, or whether the device will allow sharing.For example, the user can limit such operations to those operations in the contact list or the subset of those operations in the contact list.
[0060] IV. Field of view
[0061] Distance and angle information can be used in a variety of ways. For example, distance information can be used to display the relative position of the receiving mobile device on the screen of the sending mobile device that will send the data item. Such user interfaces can allow users to quickly and accurately select recipient devices, such as devices that frequently and / or recently send and receive messages or emails, for sending data items to applications, such as videos, audio, or links, which can be used to switch applications at specific locations (e.g., pages) in applications. The field of view in which the target mobile device can be detected can be defined for the transmitting mobile device based on the orientation of the three UWB antennas. The field of view of the mobile device can be visualized as a sector of a circle spanning approximately 120 degrees, with the mobile device positioned at the center of the circle. Within the 120-degree field of view, other sectors can be defined.
[0062] A. Sector
[0063] Figure 5 5 is a schematic diagram illustrating sectors in a field of view 500 of a mobile device according to aspects of the present disclosure. Angle of arrival (AoA) information of UWB and / or BT ranging signals may be received within the field of view. Figure 5, a pointing direction 510 within a field of view 500 of a mobile device (e.g., mobile device 300) may be defined. The pointing direction 510 may be referenced relative to the top of the mobile device in the direction in which the user points the mobile device, and may depend on gravity and the UI. For example, the mobile device may be held in a portrait or landscape mode (i.e., vertically or horizontally). The orientation of the mobile device may be sensed by a sensor of the mobile device (e.g., an accelerometer, a gyroscope, etc.). When the mobile device is held vertically (i.e., portrait mode), the central axis of the field of view will extend from the top of the phone. Similarly, when the mobile device is held horizontally (i.e., landscape mode), the central axis of the field of view will extend from one side of the phone and will point forward. The area covered by the pointing direction 510 may include a pointing sector 512 having a central angle 514 of approximately 25 degrees.
[0064] The field of view 500 of the mobile device may include a right sector 520 and a left sector 530, each having a central angle 522, 532 of approximately 60 degrees from a line 540 bisecting the directional sector 512. The remaining sector 550 may be considered outside the field of view of the mobile device.
[0065] B. Region
[0066] Figure 6 is a schematic diagram illustrating various regions that may be defined within a field of view according to aspects of the present disclosure. The field of view may be visualized as a circular region with a transmitting mobile device (e.g., mobile device 300) at the center. A region may be defined that includes a radial distance from the transmitting mobile device. See Figure 6 , a first radial distance zone 605 may be defined between the mobile device 300 and the first radius 610, a second radial distance zone 615 may be defined between the first radius 610 and the second radius 620, and a third radial distance zone 625 may be defined between the second radius 620 and the third radius 630. Figure 6 Three radial zones in the field of view are shown, but other radial zones may be defined without departing from the scope of the present disclosure.
[0067] Similarly, angular zones may be defined within the field of view. The pointing sector 640 may have a central angle of approximately 25 degrees. The pointing sector 640 may be a zone relative to the top of the mobile device in the direction that the user points the mobile device. The side sectors 650, 660 on either side of the pointing sector 640 may have a central angle of 60 degrees with respect to a line bisecting the pointing sector 640 (e.g., Figure 5 An additional sector 670 represented by the remainder of the circular area may be considered to be outside the field of view.
[0068] The radial distance zone and the angular zone may be combined to form an area in which the target mobile device may be located. Figure 6, regions 1-3 may be defined within the pointing sector 640 within the first radial distance zone 605, the second radial distance zone 615, and the third radial distance zone 625, respectively. Similarly, regions 4-6 may be defined within the right sector 650 within the first radial distance zone 605, the second radial distance zone 615, and the third radial distance zone 625, respectively. Since the right sector 650 and the left sector 660 are symmetrical around the pointing sector 640, during the process of determining the location of the target mobile device, the right sector 650 and the left sector 660 may be processed as one sector. Therefore, only three regions (i.e., regions 4-6) are defined for the combination of the side sectors 650 and 660.
[0069] Target mobile devices located outside of the field of view (e.g., within additional sectors 670, within the areas labeled 7, 8, and 9) may still be detectable by the transmitting mobile device 300. For example, the radial distance to the transmitting mobile device may be detected based on RSSI measurements from the BT / WiFi antenna 320. However, angular information may not be available. Target mobile devices located in the area labeled 10 (680) may be outside the detectable range of the transmitting mobile device.
[0070] C. Region importance score
[0071] An importance score may be assigned to each region defined within the field of view (i.e., regions 1-6) and outside the field of view (i.e., regions 7-9) in which the target mobile device may be detected. For example, a static importance score may be assigned to each region based on a perceived desire of a user to communicate with a recipient located in each region. For example, importance scores for various regions may range from 0.1 to 1.0, but they may appear in any scale.
[0072] Figure 7 is a schematic diagram showing an example of importance scores assigned to different regions according to aspects of the present disclosure. Figure 7 As can be seen in FIG. 6 , the area in the pointing sector 640 and the area adjacent to the transmitting mobile device 300 (e.g., area 740) can be assigned the highest importance score because the user is more likely to want to share with the users of these devices. As discussed above, the right sector 650 and the left sector 660 are symmetrical around the pointing sector 640 and can be treated as a sector. Therefore, each area in the left sector 660 corresponding to the areas 740, 750 and 760 in the right sector 650 can be assigned the same importance score. Areas outside the field of view can also be assigned importance scores. For example, area 770 can have the highest importance score of the area outside the field of view because even if the recipient is outside the field of view, the user may also communicate with the recipient who is close. The importance scores of areas 780 and 790 may be lower because the user is unlikely to communicate with the recipient outside the field of view and farther away.
[0073] V. Estimate (Probability)
[0074] Mobile devices detected in the vicinity of a transmitting mobile device (inside and outside the field of view of the transmitting mobile device) can be ranked according to which devices the transmitting device would most like to communicate with (e.g., to share a picture or communicate in other ways.) For example, representations of a given number of detected high-ranking mobile devices can be displayed on a user interface (UI), with the representation of the highest-ranking mobile device being displayed most prominently, and representations of one or more other high-ranking mobile devices being oriented around the highest-ranking mobile device based on their angular information.
[0075] The ranking of detected mobile devices (also referred to herein as "neighboring devices") may be based on an importance metric determined for each detected target mobile device. The importance metric may be based in part on the location of the neighboring devices in a particular area. However, measurement inaccuracies (e.g., line-of-sight (LOS) occlusions, noise, bias, drift, etc.) may prevent accurate determination of the location of neighboring devices both within and outside the field of view. Even within the field of view, there is a probability of falsely detecting a target mobile device. Probabilistic estimates may be used to mitigate the effects of these inaccuracies.
[0076] A. Position detection
[0077] For each detected neighboring device, you can track Figure 6 The probabilities of being in each of the independent regions 1 to 9 are shown. The distance and angle measurements can be used to weight the probabilities of neighboring devices being in each region.
[0078] Given the importance score and probability, an importance metric can be calculated for each neighboring device. The importance metric can be used to sort the list and determine the most important neighboring devices to display on the UI display, for example as the most prominent icon. Based on the UI orientation and AoA information, an angle can be set for displaying additional neighboring devices on an arc around the most important neighboring device on the UI.
[0079] 1. Probability of radial position
[0080] As described above, UWB and / or BT can be used to determine the distance to a transmitting mobile device. In the case where both the transmitting device and the neighboring device are capable, UWB can be used to determine the distance and angle to estimate the location of the neighboring device within the field of view. In some cases, a combination of BT and UWB can be used to determine the distance to a neighboring device in the field of view. For example, BT and UWB can be used simultaneously or alternatively (e.g., time domain multiplexing (TDM)) to estimate the distance. In some cases, a BT RSSI initial range estimate can be used, and then UWB can be used to more accurately estimate the range. If angle information is not available, range information can be used alone. If UWB information is not available, BT received signal strength indication (RSSI) measurements can be used to estimate the range. In the case where the neighboring device is not within the field of view, such as behind the user (e.g., behind the user), the user can estimate the distance. Figure 6 In the case of a wireless communication device within area 7 in FIG. 1 , the distance can be determined using omnidirectional WiFi signals and / or BT received signal strength indication (RSSI) measurements alone or in combination with UWB. However, the measurements only approximate the distance.
[0081] UWB measurements provide distance and angle measurements as well as the precision of both measurements. Based on the distance and precision, a probability distribution (e.g., a Gaussian distribution) in the radial direction can be derived, where the distance measurement is related to the mean and the precision is related to the variance. For example, see again Figure 7 , the UWB measurement may return a distance and accuracy measurement for the target device at point X 702. A radial probability distribution 704 may be generated based on the distance and accuracy associated with the mean and variance of the distribution, respectively. Based on the radial probability distribution 704, the probability that a device at point X 702 is actually located in a particular region may be determined by integrating the probability distribution. For example, the portion of the radial probability distribution 704 that is located in region 740 may be integrated to determine the probability that point X 702 is actually located in region 740.
[0082] Similarly, the portion of radial probability distribution 704 that is in region 750 may be integrated to determine the probability that point X 702 is actually located in region 750. It should be noted that radial probability distribution 704 will approach but not reach zero as it extends outward from the mean (i.e., point X 702). However, the integration of radial probability distribution 704 far beyond the variance may result in a substantially insignificant probability that point X 702 is located in the corresponding region. For example, the integration of radial probability distribution 704 that is located in region 760 may produce a substantially insignificant probability that point X 702 is located in region 760. A radial position probability may be determined for point X 702 in each of regions 710-790, such as Figure 7 The initial probability estimate before receiving the measurement data may be a uniform probability distribution based on the area of the region.
[0083] In some implementations, integrating a probability distribution (e.g., determining a cumulative distribution function (CDF)) can be implemented using a software library function ERF, which is an error function that approximates the CDF for a Gaussian distribution. Other probability distributions can be used, such as, but not limited to, a uniform distribution.
[0084] 2. Probability of angular position
[0085] Similar to the distance measurement, the UWB measurement may return angle and precision measurements for the target device at point X 702. An angle probability distribution 706 may be generated based on the angle and precision associated with the mean and variance of the distribution, respectively. Based on the angle probability distribution 706, the probability that the device at point X 702 is actually located in a particular region may be determined by integrating the angle probability distribution 706. An angular position probability may be determined for point X 702 being located in each of regions 710-790, such as Figure 7 shown.
[0086] When the mobile device is rotated (e.g., the pointing direction is changed), for example, as determined by an accelerometer or gyroscope of the mobile device, the angle measurement to the detected target device can change by a corresponding amount. In some cases, the change in angle can cause the target device to be moved outside the field of view. In this case, the field of view detection can result in the probability being multiplied by Pfa instead of 1-Pfa as in the previous measurement. If the angle measurement does not change by a corresponding amount, the measurement can be discarded and a new measurement performed.
[0087] Although the radial and angular probability distributions are described separately, these distributions can be combined into a single two-dimensional probability distribution that can be integrated over any area to determine the probability of the area.
[0088] A. Field of view detection
[0089] An initial detection may be performed to determine whether the target mobile device is in the field of view (e.g., within one of the left sector 530, the right sector 520, or the pointing sector 512) or outside the field of view (e.g., within the remaining sector 550). For example, a UWB antenna ideally measures angles only within a defined field of view. However, a UWB antenna may also receive signals from outside the field of view. In some implementations, an indication of whether a detected target is within the field of view may be provided by hardware, such as UWB circuitry 315. In some implementations, the field of view indication may be provided by software based on received distance and angle measurements.
[0090] The initial detection may have an associated false alarm probability (Pfa) such that the target device detected as being within the field of view is actually outside the field of view. Therefore, there is uncertainty, which is the probability that the angle is from the field of view. Signals from outside the field of view may be misinterpreted as coming from inside the field of view. This misinterpretation is this false alarm probability (Pfa). For an exemplary probability of 5% false alarm, the probability that the target device is located in each area outside the field of view can be multiplied by Pfa (i.e., 5%), and the probability that the target device is located in each area within the field of view can be multiplied by 1-Pfa (i.e., 95%). If the field of view indicates that the detected target is outside the field of view, the probability that the target device is located in each area within the field of view can be multiplied by Pfa (i.e., 5%), and the probability that the target device is located in each area outside the field of view can be multiplied by 1-Pfa (i.e., 95%).
[0091] B. Position Estimation
[0092] The position of the detected target mobile device may be estimated based on the radial position probability, the angular position probability, and the false alarm probability (Pfa). A position estimate may be generated for each of the regions 710-790, such as Figure 7 As shown. For example, assume that for region 750, point X 702 has a radial position probability of 0.6 and an angular position probability of 0.4. Furthermore, assume that the field of view indicates that point X 702 is within the field of view, so 1-Pfa is 0.05. Since the probabilities are assumed to be independent, the probabilities can be multiplied together to determine the total probability that point X 702 is located in region 750. Using these exemplary numbers, the probability that point X 702 is located in region 750 is 0.6×0.4×0.95=0.23. Therefore, it can be estimated that the probability that point X 702 is located in region 750 is 23%. Position estimation can be performed similarly for each of regions 710-790, as shown in FIG. Figure 7 shown.
[0093] It should be noted that for the purpose of explanation, radial position probabilities and angular position probabilities are considered separately. However, the integration over the two-dimensional probability distribution will determine the total probability that a point is located in a given region.
[0094] 1. Time Effect
[0095] As time passes or neighboring devices undergo movement, the probability may expand to neighboring areas. For example, see Figure 6, as time passes, there is a probability that a neighboring device initially located in the area marked as 2 may move to one of areas 1 or 3-6. When new measurements are received, a new total probability of the target being located in a given area may be calculated. In order to maintain the stability of the ranking order of the target devices (e.g., as displayed on the UI), the new total probability may be combined with the existing total probability. For example, a weighted average of the existing total probability and the new total probability may be used to smooth the resulting total probability over time.
[0096] In some cases, new measurements may not be received. In such cases, the time function can operate on the probability function to expand the confidence level of the probability function. "Confidence level" corresponds to the probability that the model can make a correct prediction based on historical interaction data (i.e., at least one of the predicted recipients is selected after the event). An example of a confidence level is the percentage of events that are correctly predicted (i.e., the predicted recipient is suggested and selected as the recipient of the communication). Another example uses the cumulative distribution function (CDF) of a probability distribution (e.g., beta distribution) generated from the number of correct predictions and the number of incorrect predictions. The CDF can be calculated by integrating the probability distribution. In various specific implementations, the confidence level can be the amount of growth of the CDF beyond the input value (e.g., between 0 and 1, where 1 corresponds to the correct recipient prediction), or the input value of the specified CDF that exceeds the input value is provided. The probability that the recipient is selected may need to be a threshold probability, which is an inference of a model with a confidence level higher than a confidence threshold. The confidence level can be inversely proportional to the entropy measure, so the increase in confidence level from the parent model to the child model can correspond to a decrease in entropy.
[0097] Repeated application of the temporal function can extend the total probability to neighboring regions. For example, matrix operations with off-diagonal elements can operate on the probabilities to include probabilities from neighboring regions. Repeated application of matrix operations can cause the total probability to move toward more uniform values.
[0098] 2. The target devices have the same estimated location
[0099] In some cases, two or more target devices may have approximately the same estimated location in the field of view. In order to determine the most likely person to communicate with, a candidate list of two or more people in the field of view may be provided to a suggestion engine. The suggestion engine may determine who the user is more likely to communicate with based on who the user has communicated with in the past. The suggestion engine may be implemented, for example, by the application processor 340 of the mobile device or another processor. More details about the suggestion engine may be found in U.S. Provisional Application No. 62 / 843,895 filed on May 6, 2019, the contents of which are incorporated herein by reference in their entirety for all purposes.
[0100] The suggestion engine can run a candidate list of people in the field of view through a frequency-recency model, such as a K-nearest neighbor (KNN) model. Such a model can use the frequency and recency of sharing with people in the candidate list, as well as other information (such as which application participated in the sharing) to determine the order in which the user is likely to communicate with each candidate. The model can rank the candidates in the candidate list according to the order in which the user is most likely to communicate with them. The most likely communication candidates can be displayed as special effects avatars.
[0101] VI. Importance Measures
[0102] An importance metric may be determined for each target mobile device detected by the transmitting mobile device. The importance metric may determine the ranking of the suggested target device users displayed on the UI of the transmitting mobile device. The importance metric may be calculated for each target device by rank-ordering the target device in each region (e.g., Figure 7 The position estimate in the region 710-790) is multiplied by Figure 7 The corresponding importance values of the regions shown are summed for all regions. The target devices may be ranked in descending order based on the importance metric. Icons representing users of the highest ranked target devices may be displayed in a prominent position (e.g., a special effects avatar) on the user interface.
[0103] The importance metric calculated for each target device may be compared to a threshold. An importance metric exceeding the threshold may indicate that the target device is a device with which a user of the transmitting device may wish to communicate. An icon representing the user of the target device exceeding the threshold may be displayed on the UI of the transmitting device. The threshold may be a fixed value, or may be the value of the next highest importance metric of another target device.
[0104] VII. Exemplary User Interfaces
[0105] A list of suggested communication targets based on the importance metric may be displayed on a user interface (UI) of a mobile device. The list may be displayed in a graphical form, such as using icons or photos to represent the suggested recipients and icons to represent the suggested applications. Alternatively, the suggestion list may be displayed in a list form.
[0106] A.Display
[0107] Fig. 8A810 is an illustration of a mobile device 800 having a user interface 810 that displays suggested applications and suggested recipient / application pairs according to aspects of the present disclosure. A "user interface" corresponds to any interface through which a user interacts with a device. The user interface of an application allows the user to interact with the application. When the application is running, the user interface can be the interface of the application. As another example, the user interface can be a system interface that provides a set of simplified applications for the user to select, making it easier for the user to use the application. In this example, the mobile device 800 can execute a main application (e.g., in the background) and display a window for a shared routine, wherein the shared routine user interface window 810 covers and partially or completely obscures the main application window.
[0108] The user interface 810 indicates that the user of the mobile device 800 has selected photos 815 from within a host application to be shared with one or more other applications, users, or devices. The host application can be any number of possible applications, such as a photo gallery application, an Internet browser application, a social media application, etc. As described above, the host application can provide a dedicated button, icon, or menu option to initiate the sharing user interface 810.
[0109] When the sharing routine is initiated by the main application, the sharing user interface 810 can display any one or more of the following: a content object 815 to be shared (e.g., for a photo, or no content object is displayed, e.g., for a URL of a website), a user-selectable list of one or more possible applications 820 (exemplary optional components) that can be used to share the content object, and a list of additional capabilities 825 corresponding to other functions for the content object (e.g., copy, print, add to bookmarks) supported by the mobile device 800. In addition, as another example of an optional component, the sharing user interface window 810 may include a user-selectable list of suggested recipients 830 for sharing the content object. In this example, the user-selectable list of suggested recipients 830 includes a recipient-application combination because a small application icon is displayed in conjunction with each recipient. Recipients may also be displayed without associated applications.
[0110] Despite Fig. 8A Individual user faces are not shown in the exemplary interface of , but in some embodiments, the sharing routine may be configured to search for each received recipient in one or more data sources (e.g., the user's contact list, phone book, social media contact list, etc.), and may retrieve additional data, such as the recipient's image, nickname, or other personal data, which may then be incorporated into the recipient suggestion list 830 of the sharing user interface 810.
[0111] The sharing routine may then receive a user selection of one or more applications for sharing the content object and / or one or more recipients with whom to share the content object. For example, the user may select one of the specified applications 820 with which to share the content object 815, or may select an ellipsis to view and select additional applications. Alternatively, the user may select one of the specified recipient-application combinations 830.
[0112] It should be understood that the suggested application groups 820 and suggested recipient-application combinations 830 can correspond to suggestions determined by the suggestion engine using the techniques discussed above and returned to the shared routine. The suggestions can include likelihood (probability) values that specify how the suggestions should be ordered (e.g., for each of the two lists). Alternatively, the suggestions can be sent in the order in which they are to be displayed. More details about shared routines can be found in U.S. Provisional Application 62 / 843,895.
[0113] In some embodiments, the proximity information can be used to determine the location of the suggested recipient displayed on the screen. As described above, a ranging signal (e.g., UWB) can be used to measure proximity to other devices, for example, to measure the flight time between devices. The device 800 may include multiple antennas (e.g., 3 antennas) that can allow the angle with another device to be determined. The spatial information can be used to point the mobile device 800 at a second device, and the mobile device 800 can determine the location of the second device in a radial 360 degree perimeter around the mobile device 800.
[0114] Figure 8B 8 is an illustration of a mobile device 800 having a user interface 850 that displays suggested recipients based on proximity in accordance with aspects of the present disclosure. The user interface 850 can be displayed when a user makes a selection, such as a “nearby” button (not shown), to view which other users may be nearby.
[0115] In response to determining that the importance metric of the target mobile device exceeds the threshold, the transmitting mobile device may provide a user interface 850 to display one or more icons of users of the target device. The display may display a set of ranked icons corresponding to users of the target device with the highest importance metric as suggestions for the transmitting mobile device to communicate with. The icons for users of the mobile devices with the highest ranked importance metric may be displayed in the most prominent position on the UI, such as a large icon centered in a portion of the display.
[0116] exist Figure 8BIn the example of FIG. 8 , the user of the target device with the highest ranking importance metric may be indicated by a highlighted icon 860 on the user interface of the transmitting device. For example, the highlighted icon 860 may be a larger icon than the icons of the users of the other ranked target devices. The distance and angle information of the target device with the next highest ranking importance score may be used to display the icons 870, 880 of those users in relative positions on an arc around the icon of the highest ranked user. The icons 890 of the users of the other ranked target devices may be displayed in other locations on the user interface in the ranking order.
[0117] Despite Figure 8B Individual user faces are not shown in the exemplary interface of , but in some embodiments, the sharing routine may be configured to look up each received recipient in one or more data sources (e.g., the user's contact list, phone book, social media contact list, etc.), and may retrieve additional data, such as the recipient's image, nickname, or other personal data, which may then be incorporated into a list of recipient suggestions in a user interface 850 that includes a highlighted icon 860, icons 870, 880 for those users at relative positions on the arc, and icons 890 for other users of the ranked target devices.
[0118] B. User Interface Update
[0119] The UI may be updated over a period of time as more information is obtained. In order to prevent the displayed list of suggested recipients from changing frequently, heuristics may be applied to minimize UI updates so that the displayed list does not change as the user is about to select from the list. For example, the displayed list may not change unless the user performs an action, such as switching to another UI, shaking the device, etc., which indicates that a change in the list may occur or a substantial change in the estimated location of the recipient is detected. On the contrary, holding the device at a certain angle for a period of time may indicate that the user is viewing the UI and may be about to make a selection. In this case, the list may not change. In some cases, the displayed list may be changed slowly so that the user will know that the list is changing and the selection may be delayed. For example, an indication may be provided, such as a warning flash or flashing of an icon, a color change or fade-out of an icon, or some other indication to alert the user that the list may change.
[0120] VIII. Flowchart
[0121] Fig. 9 9 is a flow chart illustrating a method 900 for identifying one or more other mobile devices in proximity to a first mobile device in accordance with aspects of the present disclosure. The method determines a probability that a target device is located in a spatial region relative to a transmitting mobile device and determines the importance of the target mobile device for communicating with the transmitting mobile device.
[0122] At block 910, a ranging request message may be transmitted by a first (i.e., transmitting) mobile device. The transmitting mobile device may transmit the ranging request message to a second (i.e., target) mobile device using a first wireless protocol. The ranging request message may be a first set of one or more pulses transmitted via a plurality of antennas. The plurality of antennas may be configured to receive signals using a first wireless protocol. The first wireless protocol may be, for example, but not limited to, a UWB protocol.
[0123] At block 920, the transmitting mobile device may receive a ranging response message. The transmitting mobile device may receive one or more ranging response messages at a plurality of antennas. The ranging response message may be a second set of one or more pulses received from a second mobile device.
[0124] At block 930, the transmitting mobile device may determine distance and angle information. The transmitting mobile device may determine distance information and angle information corresponding to one or more transmission times of a first set of one or more pulses (i.e., ranging request messages) and one or more reception times of a second set of one or more pulses (i.e., ranging response messages) received at the plurality of antennas. The angle information may indicate an angle between the pointing direction of the transmitting mobile device and the target mobile device.
[0125] At block 940, the transmitting mobile device may determine a first probability of the location of the target mobile device. The first probability may be determined based on the distance information and the angle information. The first probability may be a probability that the location of the target mobile device is within a first spatial region having a defined distance range and aligned with the pointing direction of the first mobile device. The first probability may be based on a radial probability distribution and an angular probability distribution combined into a single two-dimensional probability distribution.
[0126] At block 950, the transmitting mobile device may determine an importance metric for the target mobile device based on the first probability. The transmitting mobile device may store in a memory a set of importance values corresponding to a set of spatial regions defined at a specified distance and angle around the transmitting mobile device. The set of spatial regions may include the first spatial region. Based on the distance information and the angle information, the transmitting mobile device may determine a set of probabilities that the target mobile device is within the set of spatial regions, the set of probabilities including the first probability.
[0127] The transmitting mobile device may determine an importance metric for the second mobile device based on the set of probabilities and the set of importance values. Each probability in the set of probabilities may be multiplied by a corresponding importance value to obtain an intermediate result, and the intermediate results may be summed. Prior to multiplying by the importance value, each probability in the set of probabilities may be multiplied by a second probability based on whether the target mobile device is determined to be within or outside the field of view of the transmitting mobile device.
[0128] At block 960, the transmitting mobile device may determine that the importance metric exceeds a threshold. For example, the threshold may be a fixed value or a value equal to the second highest importance metric. Thus, the threshold may ensure that the highest importance metric is determined.
[0129] At block 970, the transmitting mobile device may display the target mobile device on a user interface. In response to determining that the importance metric of the target mobile device exceeds a threshold, the transmitting mobile device may provide a user interface to display icons of users of the target devices. The display may display a set of icons corresponding to users of the target devices having the highest importance metrics as suggestions for the transmitting mobile device to communicate with. The icons for users of the mobile devices having the highest ranked importance scores may be displayed in the most prominent position on the UI.
[0130] IX. Exemplary Devices
[0131] Fig.10 1 is a block diagram of an exemplary device 1000 that may be a mobile device. Device 1000 generally includes computer-readable media 1002, a processing system 1004, an input / output (I / O) subsystem 1006, wireless circuitry 1008, and audio circuitry 1010 including a speaker 1050 and a microphone 1052. These components may be coupled via one or more communication buses or signal lines 1003. Device 1000 may be any portable electronic device, including a handheld computer, a tablet computer, a mobile phone, a laptop computer, a tablet device, a media player, a personal digital assistant (PDA), a key fob, a car key, an access card, a multifunction device, a mobile phone, a portable gaming device, a vehicle display device, etc., including combinations of two or more of these items.
[0132] Obviously, Fig.10 The architecture shown is merely one example of an architecture for device 1000 , and device 1000 may have more or fewer components or a different configuration of components than shown. Fig.10 The various components shown in the drawings may be implemented in hardware, software, or a combination of both hardware and software, including one or more signal processing circuits and / or application specific integrated circuits.
[0133] The wireless circuit 1008 is used to send and receive information to conventional circuits of one or more other devices (such as an antenna system, an RF transceiver, one or more amplifiers, a tuner, one or more oscillators, a digital signal processor, a CODEC chipset, memory, etc.) over a wireless link or network. The wireless circuit 1008 can use various protocols, such as those described herein.
[0134] The wireless circuit 1008 is coupled to the processing system 1004 via the peripheral device interface 1016. The interface 1016 may include conventional components for establishing and maintaining communications between peripheral devices and the processing system 1004. Voice information and data information (e.g., in voice recognition or voice command applications) received by the wireless circuit 1008 is sent to the one or more processors 1018 via the peripheral device interface 1016. The one or more processors 1018 can be configured to process various data formats of the one or more application programs 1034 stored on the medium 1002.
[0135] Peripheral interface 1016 couples the device's input peripherals and output peripherals to processor 1018 and computer-readable medium 1002. Processor(s) 1018 communicate with computer-readable medium 1002 via controller 1020. Computer-readable medium 1002 may be any device or medium capable of storing code and / or data for use by processor(s) 1018. Medium 1002 may include a memory hierarchy including cache, main memory, and secondary memory.
[0136] Device 1000 may also include a power system 1042 for powering various hardware components. Power system 1042 may include a power management system, one or more power sources (e.g., batteries, alternating current (AC)), a recharging system, power fault detection circuits, power converters or inverters, power status indicators (e.g., light emitting diodes (LEDs)), and any other components typically associated with the generation, management, and distribution of power in a mobile device.
[0137] In some embodiments, the device 1000 includes a camera 1044. In some embodiments, the device 1000 includes a sensor 1046. The sensor may include an accelerometer, a compass, a gyroscope, a pressure sensor, an audio sensor, a light sensor, a barometer, etc. The sensor 1046 may be used to sense aspects of a location, such as an auditory marker or a light marker of a location.
[0138] In some embodiments, the device 1000 may include a GPS receiver, sometimes referred to as a GPS unit 1048. The mobile device may use a satellite navigation system such as a global positioning system (GPS) to obtain positioning information, timing information, altitude, or other navigation information. During operation, the GPS unit may receive signals from GPS satellites flying around the earth. The GPS unit analyzes the signals to estimate the transmission time and distance. The GPS unit may determine the current location (current position) of the mobile device. Based on these estimates, the mobile device may determine the position, altitude, and / or current speed. The position may be a geographic coordinate, such as latitude information and longitude information.
[0139] The one or more processors 1018 run various software components stored in the medium 1002 to perform various functions of the device 1000. In some embodiments, the software components include an operating system 1022, a communication module (or instruction set) 1024, a location module (or instruction set) 1026, a recipient suggestion module (or instruction set) 1028, and other applications (or instruction sets) 1034, such as a car locator application and a navigation application.
[0140] The operating system 1022 may be any suitable operating system, including iOS, Mac OS, Darwin, RTXC, LINUX, UNIX, OS X, WINDOWS, or an embedded operating system such as VxWorks. The operating system may include various programs, multiple instructions, software components, and / or drivers for controlling and managing general system tasks (e.g., memory management, storage device control, power management, etc.), and facilitate communication between various hardware and software components.
[0141] Communications module 1024 facilitates communication with other devices through one or more external ports 1036 or via wireless circuitry 1008, and includes various software components for processing data received from wireless circuitry 1008 and / or external ports 1036. External ports 1036 (e.g., USB, FireWire, Lightning connector, 60-pin connector, etc.) are suitable for coupling to other devices directly or indirectly through a network (e.g., the Internet, wireless LAN, etc.).
[0142] The location / motion module 1026 can help determine the current location (e.g., coordinates or other geographic location identifiers) and movement of the mobile device 1000. Modern positioning systems include satellite-based positioning systems such as the Global Positioning System (GPS), cellular network positioning based on "cell IDs," and Wi-Fi positioning technology based on Wi-Fi networks. GPS also relies on the visibility of multiple satellites to determine location estimates, which may not be visible (or have weak signals) indoors or in "urban canyons." In some embodiments, the location / motion module 1026 receives data from the GPS unit 1048 and analyzes the signals to determine the current location of the mobile device. In some embodiments, the location / motion module 1026 can use Wi-Fi or cellular location technology to determine the current location. For example, the location of the mobile device can be estimated using knowledge of nearby cell locations and / or Wi-Fi access points and knowledge of their locations. Information identifying the Wi-Fi or cellular transmitter is received at the wireless circuit 1008 and transmitted to the location / motion module 1026. In some embodiments, the location module receives one or more transmitter IDs. In some embodiments, the sequence of transmitter IDs may be compared to a reference database (e.g., a cell ID database, a Wi-Fi reference database) that maps or associates transmitter IDs to location coordinates of corresponding transmitters, and based on the location coordinates of the corresponding transmitters, an estimated location coordinate of the device 1000 is calculated. Regardless of the particular positioning technology used, the position / motion module 1026 receives information from which a position fix can be derived, interprets the information, and returns location information, such as geographic coordinates, latitude / longitude, or other location fix data.
[0143] The recipient suggestion module 1028 may include various sub-modules or systems. The recipient suggestion module 1028 may perform all or part of the method 900 .
[0144] The one or more applications 1034 on the mobile device may include any application installed on the device 1000, including but not limited to a browser, an address book, a contact list, email, instant messaging, video conferencing, video calling, word processing, keyboard emulation, desktop applets, JAVA-enabled applications, encryption, digital rights management, voice recognition, voice replication, a music player (playback of recorded music stored in one or more files such as MP3 or AAC files), and the like.
[0145] There may be other modules or instruction sets (not shown), such as a graphics module, a time module, and the like. For example, the graphics module may include various conventional software components for rendering, animating, and displaying graphical objects (including but not limited to text, web pages, icons, digital images, animations, and the like) on a display surface. In another example, the timer module may be a software timer. The timer module may also be implemented in hardware. The timer module may maintain various timers for any number of events.
[0146] The I / O subsystem 1006 may be coupled to a display system (not shown) which may be a touch-sensitive display. The display displays visual output to the user in the GUI. The visual output may include text, graphics, video, and any combination thereof. Some or all of the visual outputs may correspond to user interface objects. Although the display may use LED (light emitting diode) technology, LCD (liquid crystal display) technology, or LPD (light emitting polymer display) technology, other display technologies may be used in other embodiments.
[0147] In some embodiments, the I / O subsystem 1006 may include a display and a user input device such as a keyboard, a mouse and / or a touchpad. In some embodiments, the I / O subsystem 1006 may include a touch-sensitive display. The touch-sensitive display may also accept input from the user based on tactile and / or tactile contact. In some embodiments, the touch-sensitive display forms a touch-sensitive surface for accepting user input. The touch-sensitive display / surface (together with any associated modules and / or instruction sets in the medium 1002) detects contact (and any movement or release of contact) on the touch-sensitive display, and converts the detected contact into interaction with a user interface object, such as one or more soft keys displayed on the touch screen when contact occurs. In some embodiments, the contact point between the touch-sensitive display and the user corresponds to one or more fingers of the user. The user may contact the touch-sensitive display with any suitable object or accessory such as a stylus, a pen, a finger, etc. The touch-sensitive display surface may use any suitable touch-sensitive technology to detect contact and any movement or release thereof, including capacitive technology, resistive technology, infrared technology, and surface acoustic wave technology, as well as other proximity sensor arrays or other elements, for determining one or more contact points with the touch-sensitive display.
[0148] In addition, the I / O subsystem may also be coupled to one or more other physical control devices (not shown), such as buttons, keys, switches, rocker buttons, dials, slide switches, joysticks, LEDs, etc., for controlling or performing various functions, such as power control, speaker volume control, phone ring volume, keyboard input, scrolling, holding, menus, lock screens, clearing and ending communications, etc. In some embodiments, in addition to the touch screen, the device 1000 may include a touch pad (not shown) for activating or deactivating specific functions. In some embodiments, the touch pad is a touch-sensitive area of the device that, unlike a touch screen, does not display visual output. The touch pad may be a touch-sensitive surface separate from a touch-sensitive display or an extension of a touch-sensitive surface formed by the touch-sensitive display.
[0149] In some embodiments, an application executed on a user's device may be used to perform some or all of the operations described herein. Circuits, logic modules, processors, and / or other components may be configured to perform the various operations described herein. It should be understood by those skilled in the art that such configuration may be accomplished by design, setup, interconnection, and / or programming of specific components, depending on the specific implementation, and again depending on the specific implementation, the configured components may be reconfigurable or not reconfigurable for different operations. For example, a programmable processor may be configured by providing appropriate executable code; a dedicated logic circuit may be configured by appropriately connecting logic gates and other circuit elements; and so on.
[0150] Any software component or function described in this patent application can be implemented as a software code executed by a processor, which uses any suitable computer language, such as, for example, Java, C, C++, C#, Objective-C, Swift, or a scripting language such as Perl or Python using, for example, conventional or object-oriented techniques. The software code can be stored on a computer-readable medium as a plurality of instructions or commands to achieve storage and / or transmission. Suitable non-transitory computer-readable media may include random access memory (RAM), read-only memory (ROM), magnetic media such as a hard drive or floppy disk, or optical media such as a compact disk (CD) or DVD (digital versatile disk), flash memory, etc. The computer-readable medium may be any combination of such storage devices or transmission devices.
[0151] Computer programs incorporating various features of the present invention may be encoded on various computer-readable storage media; suitable media include disks or tapes, optical storage media, such as compact disks (CDs) or DVDs (digital versatile disks), flash memory, etc. Computer-readable storage media encoded with program code may be packaged with compatible devices or provided separately from other devices. In addition, program code may be encoded and transmitted via wired optical and / or wireless networks (including the Internet) conforming to a variety of protocols, thereby allowing distribution, such as via Internet download. Any such computer-readable medium may be present in or located within a single computer product (e.g., a hard drive, a CD, or an entire computer system), and may be present in or located within different computer products within a system or network. The computer system may include a monitor, a printer, or other suitable display for providing any results mentioned herein to a user.
[0152] As described above, one aspect of the technology of the present invention is to collect and use data from various sources to improve predictions of users with whom a user may be interested in interacting. The present disclosure contemplates that, in some instances, these collected data may include personal information data that uniquely identifies or can be used to contact or locate a specific person. Such personal information data may include demographic data, location-based data, phone numbers, email addresses, twitter IDs, home addresses, data or records related to a user's health or fitness level (e.g., vital sign measurements, medication information, exercise information), date of birth, or any other identifying information or personal information.
[0153] The present disclosure recognizes that the use of such personal information data in the present technology can be used to benefit users. For example, personal information data can be used to predict users that users may want to communicate with at a certain time and place. In addition, the present disclosure also anticipates other uses of personal information data that benefit users. For example, health and fitness data can be used to provide insights into the overall health of the user, or can be used as positive feedback to individuals using technology to pursue health goals.
[0154] This disclosure envisions that entities responsible for collecting, analyzing, disclosing, transmitting, storing or otherwise using such personal information data will comply with established privacy policies and / or privacy practices. Specifically, such entities should implement and adhere to privacy policies and practices that are recognized as meeting or exceeding industry or government requirements for maintaining the privacy and security of personal information data. Such policies should be easily accessible to users and should be updated as the collection and / or use of data changes. Personal information from users should be collected for legitimate and reasonable purposes of the entity and not shared or sold outside of these legitimate uses. In addition, such collection / sharing should be performed after receiving informed consent from the user. In addition, such entities should consider taking any necessary steps to defend and secure access to such personal information data and ensure that others who have access to personal information data comply with their privacy policies and processes. In addition, such entities may subject themselves to third-party assessments to demonstrate their compliance with widely accepted privacy policies and practices. In addition, policies and practices should be adjusted to specific types of personal information data collected and / or accessed, and to applicable laws and standards including specific considerations of jurisdiction. For example, in the United States, the collection or access of certain health data may be governed by federal and / or state laws, such as the Health Insurance Portability and Accountability Act (HIPAA), while health data in other countries may be subject to other regulations and policies and should be handled accordingly. Therefore, different privacy practices should be maintained in each country for different types of personal data.
[0155] Regardless of the foregoing, the present disclosure also contemplates implementation schemes in which users selectively block the use or access of personal information data. That is, the present disclosure contemplates providing hardware elements and / or software elements to prevent or block access to such personal information data. For example, with respect to human-centric predictive services, the technology of the present invention may be configured to allow users to choose to "opt in" or "opt out" to participate in the collection of personal information data at any time during or after registration for the service. As another example, a user may choose not to provide precise location information, but permit the transmission of location area information. In addition to providing "opt-in" and "opt-out" options, the present disclosure contemplates providing notifications related to access or use of personal information. For example, a user may be notified that their personal information data will be accessed when downloading an application, and then be reminded again just before the personal information data is accessed by the application.
[0156] In addition, it is an object of the present disclosure that personal information data should be managed and processed to minimize the risk of unintentional or unauthorized access or use. Risks can be minimized by limiting data collection and deleting data once it is no longer needed. In addition, and when applicable, including in certain health-related applications, data de-identification can be used to protect the privacy of users. De-identification can be facilitated by removing specific identifiers (e.g., date of birth, etc.), controlling the amount or specificity of stored data (e.g., collecting location data at the city level rather than at the address level), controlling how data is stored (e.g., aggregating data between users), and / or other methods when appropriate.
[0157] Thus, while the present disclosure broadly covers the use of personal information data to implement one or more of the various disclosed embodiments, the present disclosure also contemplates that various embodiments may also be implemented without access to such personal information data. That is, various embodiments of the present technology will not fail to function properly due to the lack of all or a portion of such personal information data. For example, users with whom a user may wish to communicate at a particular time and place may be predicted based on non-personal information data or an absolute minimum amount of personal information, such as content requested by a device associated with the user, other non-personal information, or publicly available information.
[0158] Although the invention has been described with respect to specific embodiments, it should be understood that the invention is intended to cover all modifications and equivalents within the scope of the following claims.
[0159] All patents, patent applications, publications, and specifications mentioned herein are incorporated by reference in their entirety for all purposes. No admission is made that any document is prior art.
Claims
1. A method for identifying one or more other mobile devices near a first mobile device, the method comprising the first mobile device performing the following operations: transmitting a first set of one or more pulses in a ranging request message to a second mobile device using a first wireless protocol, the first mobile device comprising a plurality of antennas configured to receive signals using the first wireless protocol; receiving, at the plurality of antennas, a second set of one or more pulses in one or more ranging response messages from the second mobile device; determining distance information and angle information corresponding to one or more transmission times of the first set of one or more pulses and one or more reception times of the second set of one or more pulses received at the plurality of antennas, the angle information indicating an angle between a pointing direction of the first mobile device and the second mobile device; determining, based on the distance information and the angle information, a first probability that the position of the second mobile device is located within a first spatial region having a defined distance range and is aligned with the pointing direction of the first mobile device; determining an importance metric for the second mobile device based on the first probability; determining that the importance metric exceeds a threshold; as well as Based on determining that the importance metric exceeds the threshold, providing a user interface that includes the second mobile device as a device to communicate with.
2. The method according to claim 1, further comprising: storing in a memory of the first mobile device a set of importance values corresponding to a set of spatial regions defined at specified distances and angles around the first mobile device, the set of spatial regions including the first spatial region; Determining, based on the distance information and the angle information, a set of probabilities that the second mobile device is within the set of spatial regions, the set of probabilities including the first probability; as well as The importance metric for the second mobile device is determined based on the set of probabilities and the set of importance values.
3. The method of claim 2, wherein determining the importance metric comprises: multiplying each probability in the set of probabilities by a corresponding importance value to obtain an intermediate result; as well as The intermediate results are summed.
4. The method of claim 3, wherein determining the importance metric further comprises: receiving an indication that the second mobile device is within a field of view of the first mobile device; as well as In response to receiving the indication that the second mobile device is within the field of view, each probability in the set of probabilities is multiplied by a second probability that the second mobile device is within the field of view.
5. The method of claim 3, wherein determining the importance metric further comprises: receiving an indication that the second mobile device is outside a field of view of the first mobile device; as well as In response to receiving the indication that the second mobile device is outside of the field of view, each probability in the set of probabilities is multiplied by a second probability that the second mobile device is outside of the field of view. The method according to claim 1 , wherein the threshold value is a fixed value. The method of claim 1 , wherein the threshold is a value equal to the second highest importance metric.
8. The method according to claim 1, further comprising: determining an importance metric for a set of third mobile devices; Each mobile device in the set of third mobile devices and the second mobile device are ranked based on the importance metric determined for each mobile device in the set of third mobile devices and the importance metric determined for the second mobile device.
9. The method according to claim 8, further comprising: The second mobile device and a plurality of highest ranked mobile devices in the set of third mobile devices having an importance metric exceeding the threshold are included on the user interface.
10. The method according to claim 1, further comprising: transmitting, by the first mobile device, a third set of one or more pulses in a ranging request message to a third mobile device using a second wireless protocol, the first mobile device comprising a second plurality of antennas, the second plurality of antennas configured to receive signals using the second wireless protocol; receiving, at the second plurality of antennas, a fourth set of one or more pulses in one or more ranging response messages from the third mobile device; determining second range information corresponding to a signal strength indication of the fourth set of one or more pulses received at the second plurality of antennas; determining, based on the second distance information, a second probability that the location of the third mobile device is within a second spatial region outside the field of view of the first mobile device; determining an importance metric for the third mobile device based on the second probability; determining that the importance metric exceeds the threshold; as well as In response to determining that the importance metric of the third mobile device exceeds the threshold, the third mobile device is included on the user interface as a device to communicate with.
11. A computer readable medium having stored thereon instructions for causing one or more processors to perform the method of any one of claims 1 to 10.
12. A mobile device, comprising: a memory configured to store processor-executable instructions; and One or more processors configured to execute the instructions to perform the method of any one of claims 1 to 10.
13. A method for identifying a second mobile device near a first mobile device, the method comprising: performing the following operations by the first mobile device: determining distance information corresponding to a distance between the first mobile device and the second mobile device using pulses transmitted between the first mobile device and the second mobile device; determining angle information using the pulse transmitted between the first mobile device and the second mobile device, the angle information indicating an angle between a pointing direction of the first mobile device and the second mobile device, wherein the distance information and the angle information correspond to one or more transmission times of the pulse and one or more reception times of the pulse; Based on the distance information and the angle information, determining that the position of the second mobile device is located within a first spatial region, wherein the first spatial region is predefined relative to the pointing direction of the first mobile device; as well as providing a user interface, wherein the user interface displays an icon corresponding to the second mobile device at a predetermined position of the user interface based on the position of the second mobile device being within the first spatial area, wherein determining that the position of the second mobile device is within the first spatial area comprises: Determining, based on the distance information and the angle information, a first probability that the position of the second mobile device is within the first spatial area; determining a first importance metric for the second mobile device based on the first probability; and It is determined that the first importance metric is greater than a threshold.
14. The method according to claim 13, further comprising: determining distance information and angle information for a third mobile device; ranking the third mobile device based on the distance information and the angle information for the third mobile device; as well as On the user interface, an icon corresponding to the third mobile device is displayed at a position in the order of the ranking.
15. The method of claim 14, wherein the predetermined position corresponding to the icon of the second mobile device corresponds to a highest ranking among the sorted positions.
16. The method of claim 15, wherein the icon corresponding to the second mobile device displayed on the user interface is larger than the icon corresponding to the third mobile device displayed on the user interface.
17. The method of claim 13, wherein the first spatial region has a defined distance range from the first mobile device and an angular range relative to the pointing direction of the first mobile device.
18. A method for identifying a second mobile device near a first mobile device, the method comprising: performing the following operations by the first mobile device: determining distance information corresponding to a distance between the first mobile device and the second mobile device using pulses transmitted between the first mobile device and the second mobile device; determining angle information using the pulse transmitted between the first mobile device and the second mobile device, the angle information indicating an angle between a pointing direction of the first mobile device and the second mobile device, wherein the distance information and the angle information correspond to one or more transmission times of the pulse and one or more reception times of the pulse; Based on the distance information and the angle information, determining that the position of the second mobile device is located within a first spatial region, wherein the first spatial region is predefined relative to the pointing direction of the first mobile device; as well as providing a user interface, wherein the user interface displays an icon corresponding to the second mobile device at a predetermined position of the user interface based on the position of the second mobile device being within the first spatial area, Wherein determining that the position of the second mobile device is located in the first spatial area further comprises: determining, based on the distance information and the angle information, a first set of probabilities that the second mobile device is within a set of spatial regions, the set of spatial regions being defined at specified distances and angles around the first mobile device, the first set of probabilities comprising a first probability that the second mobile device is within the first spatial region; determining a first importance metric for the second mobile device based on the first set of probabilities; and It is determined that the first importance metric is greater than a threshold.
19. The method according to claim 18, further comprising: determining a second set of probabilities that the third mobile device is within the set of spatial regions based on the distance information and the angle information for the third mobile device; determining a second importance metric for the third mobile device based on the second set of probabilities; as well as An icon corresponding to the third mobile device is displayed on the user interface, wherein the icon is displayed at a specific location according to the second importance metric.
20. The method of claim 19, wherein the third mobile device is ranked according to the second importance metric, and wherein the icon corresponding to the third mobile device is displayed on the user interface at a location in the order of the ranking.
21. The method of claim 18, further comprising: determining distance information and angle information for a third mobile device; ranking the third mobile device based on the distance information and the angle information for the third mobile device; as well as On the user interface, an icon corresponding to the third mobile device is displayed at a position in the order of the ranking.
22. The method of claim 21, wherein the predetermined position corresponding to the icon of the second mobile device corresponds to a highest ranking among the sorted positions.
23. The method of claim 22, wherein the icon displayed on the user interface corresponding to the second mobile device is larger than the icon displayed on the user interface corresponding to the third mobile device.
24. The method of claim 18, wherein the first spatial region has a defined distance range from the first mobile device and an angular range relative to the pointing direction of the first mobile device.
25. A computer readable medium having stored thereon instructions for causing one or more processors to perform the method of any one of claims 13 to 24.
26. A mobile device, comprising: a memory configured to store processor-executable instructions; and One or more processors configured to execute the instructions to perform the method of any one of claims 13 to 24.
Citation Information
Patent Citations
Establishing communication with wireless devices using orientation data
CN106131762A
Position detection system of mobile unit
JP2005291723A
Terminal and method for recognizing communication target
US20130203448A1