The present description relates to determining a location of a mobile device. This description more specifically relates to dynamically determining the location of at least one mobile device using social, local and other contextual parameters of a user and the at least one mobile device.
Location based services allow for a user to see where friends, people with common interests, venues, merchants and/or other points of interests are located with respect to the user. In addition, social networking or social discovery services may be enhanced by information provided by the location of a mobile device, such as providing services based upon the number of mobile devices located within a particular location.
Many location based services require a user to “check-in” or provide manual updates corresponding to the location of the mobile device. Accordingly, manual updates and/or “check-in” procedures may not provide the resolution, fidelity, convenience, or efficiency that an automatic, passive location tracking service provides. In addition, some procedures may determine a location of a mobile device based on arbitrary parameters, such as an arbitrary time interval. Accordingly, there is a need for a system and method for determining the location of a mobile device in an efficient and practical manner.
In general, example embodiments of the present invention provide herein systems, methods and computer readable storage media for facilitating the determination of the location of a mobile device. Among other things, embodiments discussed herein can be configured to receive contextual data from at least a first mobile device, determine the velocity and acceleration of the first mobile device, predict a future location of the first mobile device, and determine a new location of the first mobile device. Some embodiments may be configured to transmit data corresponding to the new location of the first mobile device to at least one other mobile device. Some embodiments discussed herein can be configured to aid in predicting the location of a mobile device, which promotes efficient location based tracking of a plurality of mobile devices.
Other systems, methods, and features will be, or will become, apparent to one with skill in the art upon examination of the following figures and detailed description. It is intended that all such additional systems, methods, features and be included within this description, be within the scope of the disclosure, and be protected by the following claims.
Having thus described embodiments of the invention in general terms, reference will now be made to the accompanying drawings, which are not necessarily drawn to scale, and wherein:
Embodiments of the present invention now will be described more fully hereinafter with reference to the accompanying drawings, in which some, but not all embodiments of the inventions are shown. Indeed, embodiments of the invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will satisfy applicable legal requirements. Like numbers refer to like elements throughout.
As used herein, the terms “data,” “content,” “information” and similar terms may be used interchangeably to refer to data capable of being captured, transmitted, received, displayed and/or stored in accordance with various example embodiments. Thus, use of any such terms should not be taken to limit the spirit and scope of the disclosure. Further, where a computing device is described herein to receive data from another computing device, it will be appreciated that the data may be received directly from the another computing device or may be received indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, and/or the like. Similarly, where a computing device is described herein to send data to another computing device, it will be appreciated that the data may be sent directly to the another computing device or may be sent indirectly via one or more intermediary computing devices, such as, for example, one or more servers, relays, routers, network access points, base stations, and/or the like.
The principles described herein may be embodied in many different forms. Not all of the depicted components may be required, however, and some implementations may include additional, different, or fewer components. Variations in the arrangement and type of the components may be made without departing from the spirit or scope of the claims as set forth herein. Additional, different, or fewer components may be provided.
As discussed herein, a first user may request the location of at least one mobile device of another user. For example, a group of friends or acquaintances may each have a mobile device, such as a smartphone, a laptop, a mobile computing device, a tablet computing device, and/or the like. Accordingly, in an instance where the group of friends may decide to meet one another, one person may request the location of at least one mobile device of one friend so as to determine where the friend is located. In some embodiments, the person may request the location of at least one mobile device of one friend so as to accurately predict and/or determine where the friend may be in the near future.
In this regard, embodiments discussed herein may be configured to advantageously provide for efficient location-based tracking of a number of mobile devices. For example, embodiments of the present invention may advantageously provide for predicting a new location of a mobile device without the mobile device having to consume power to transmit the location of the mobile device each time the location of the mobile device is requested. Accordingly, embodiments may provide for location-based tracking that is highly accurate while preserving the power of a mobile device and/or minimizing the power usage by the mobile device.
Referring to
Network 101 may include any wired or wireless communication network including, for example, a wired or wireless local area network (LAN), personal area network (PAN), metropolitan area network (MAN), wide area network (WAN), mobile broadband network, or the like, as well as any hardware, software and/or firmware required to implement it (such as, e.g., network routers, etc.). For example, network 101 may include a cellular telephone, a 202.11, 202.16, 202.20, and/or WiMax network. Further, the network 101 may include a public network, such as the Internet, a private network, such as an intranet, or combinations thereof, and may utilize a variety of networking and/or communication protocols now available or later developed including, but not limited to TCP/IP based networking protocols.
In this regard,
As discussed herein, embodiments of the present invention may advantageously provide for efficient location tracking of a mobile device. In one embodiment, the VoIP protocol 302 may be configured for communicating format and headers for a datagram, such as those communicated by the base datagram protocol. The at least one mobile device 110A, 110Z may maintain an open socket connection between the mobile device locating system 102 and the at least one mobile device with a VoIP protocol 302. In some embodiments, the at least one mobile device 110A, 110Z may be configured to transmit data using the VoIP protocol 302 while being in a low powered state. As such, the at least one mobile device 110A, 110Z may be configured to maintain the open socket connection between the at least one mobile device and mobile device locating system 102 without being in a high-powered state. Further, the at least one mobile device 110A, 110Z may be configured to maintain the open socket connection between the at least one mobile device and the mobile device locating system 102 without using the TCP/IP based networking protocol. As such, the mobile device locating system 102 and the mobile device 110A, 110Z may be configured to advantageously provide for location based tracking of a mobile device in a power efficient manner. According to some embodiments, the protocol stack 300 may further include an application specific protocol 303 configured to communicate custom data formats for the application, which may allow for the mobile device locating system 102 to any one of the at least one mobile devices 110A, 110Z.
Returning to
As shown in
In addition, at 604, the mobile device locating system 102 may be configured to receive mobile device contextual data corresponding to sharing permission data. For example, a first mobile device 110A may be configured to transmit data to the mobile device locating system 102 that corresponds with the sharing permissions of the first mobile device. Specifically, the first mobile device may be configured to share location data with a second mobile device 110B, but not with a third mobile device 110C. In some embodiments, the mobile device may be configured to edit sharing permissions via a touch-sensitive display screen of the mobile device.
For example,
According to some embodiments, the mobile device locating system 102, as shown in
Referring back to
At 608, the mobile device locating system 102 may be configured to predict a future location of the mobile device, based at least in part on the contextual data received from the mobile device. In one example embodiment, the mobile device locating system 102 may use a Kalman filter or a Markov chain for predicting the future location of the mobile device. For example, the mobile device locating system 102 may use contextual data received from a mobile device that corresponds to the velocity of the mobile device and/or the acceleration of the mobile device. One of skill in the art may appreciate that any suitable graphical model may be used to predict the future location of the mobile device. As discussed in greater detail herein, the mobile device locating system 102 may be configured to determine a new location of the mobile device at 610. The process may end at 612.
At 704, a mobile device locating system 102 may be configured to receive mobile device contextual data. For example, referring to
Referring to
As stated above, the application may be configured to display on a touch-sensitive display 500 of a first mobile device a detailed information portion 503 that may correspond to a selected location annotation 501 displayed on the display 500. Accordingly, the detailed information portion 503 may provide information corresponding to the selected location annotation 101, such as the user's name, the elapsed time since the location information has been updated, and/or the amount of time a user has been spent at a particular location. In addition, the application may be configured to transmit data corresponding to location of the first mobile device 110A to the mobile device locating system 102. For example, the first mobile device 110A may be configured to transmit data corresponding to the location of the mobile device and/or the area of the map portion 510 displayed on the display 500 of the mobile device, and accordingly, the mobile device locating system 102 may be configured to receive such data from the first mobile device 110A.
Further, any one of the mobile devices 110A, 110Z may be configured to transmit contextual data to the mobile device locating system 102, such as data corresponding to the respective mobile device's velocity, acceleration and/or the like. In addition, the mobile device locating system 102 may be configured to receive such contextual data at 704. For example, the mobile device locating system 102 may be configured to receive data corresponding to an audio recording, video recording and/or other signal recording of the at least one mobile device at 704.
At 706, the mobile device locating system may be configured to determine a velocity and acceleration of the at least one mobile device 110A. For example, a mobile device locating system 102 may be configured to determine an acceleration of the mobile device 110A from data corresponding to the velocity of the mobile device over a given period of time. Accordingly, the mobile device locating system 102 may be configured to determine the acceleration of the mobile device from the velocity measurements taken at discrete times.
At 708, the mobile device locating system 102 may be configured to predict a future location of the mobile device, based at least in part on the contextual data received from the mobile device. In one example embodiment, the mobile device locating system 102 may use a Kalman filter or a Markov chain for predicting the future location of the mobile device. For example, the mobile device locating system 102 may use contextual data received from a mobile device that corresponds to the velocity of the mobile device and/or the acceleration of the mobile device so as to determine whether or not the mobile device is in motion.
At 710, the mobile device locating system 102 may be configured to determine whether the predicted location of the mobile device meets an accuracy threshold. The mobile device locating system 102 may be configured to determine that a predicted location of the first mobile device 110A does not meet an accuracy threshold if, for example, the contextual data received by the mobile device locating system does not correspond to the predicted location. For example, a portion of the contextual data may indicate that a first velocity vector and acceleration vector of the mobile device is in the same direction, while a second velocity vector, corresponding to a velocity measurement taken subsequently to the first velocity vector measurement, of the mobile device points in an opposite direction. Accordingly, the velocity measurements and the acceleration vector may not correspond, which may cause the mobile device locating system 102 to determine that the predicted location of the first mobile device does not meet an accuracy threshold.
In some embodiments, where the predicted location of the mobile device meets an accuracy threshold, the mobile device locating system 102 may be configured to then transmit data corresponding to the predicted location of the mobile device as the new location of the mobile device. As such, in one embodiment, a first mobile device 110A may be configured to request the location of a second mobile device 110B. In addition, the first mobile device 110A and the second mobile device 110B may be configured to share their respective locations with one another, as indicated by the respective user via an application on the respective mobile device (e.g., an indication 401 corresponding to a sharing status on the display of a mobile device). Accordingly, at 712 of
If the mobile device locating system 102 determines that the predicted location of the mobile device does not meet the accuracy threshold at 710, the mobile device locating system may be configured to receive data corresponding to a location of at least one device that is in communication with the mobile device. According to one embodiment, the mobile device locating system 102 may be configured to receive data of the location of a known networking and/or communication equipment device, such as a wireless local area network router and/or a cell phone tower. In some embodiments, the mobile device locating system may be configured to receive data corresponding to an estimated distance between the known device in communication with the mobile device and the mobile device. For example, a mobile device 110A may be configured to receive a signal from a mobile device locating system 102 corresponding to an indication that the mobile device locating system 102 determined the predicted location of the mobile device 110A did not meet an accuracy threshold. As such, the mobile device 110A may be configured to transmit data corresponding to the distance of the mobile device from a device in communication with the mobile device, such as a cell phone tower and/or the like. In some embodiments, the mobile device 110A may be configured to transmit data corresponding to the identity of the closest device that is in communication with the mobile device, such as networking equipment, a cell phone tower, and/or the like. Accordingly, the mobile device locating system 102 may be configured to receive data corresponding to the location of at least one device in communication with the mobile device.
In some embodiments, the mobile device locating system 102 may be configured to receive data corresponding to an identity of a device in communication with the mobile device. Further, the mobile device locating system 102 may be configured to retrieve data corresponding to the device in communication with the mobile device. For example, the contextual database 106 may include data corresponding to the location of known networking and/or communication equipment devices, such as a wireless local area network router and/or a cell phone tower. Accordingly, the mobile device locating system 102 may be configured to determine the location of the mobile device 110A based, at least in part, on the data corresponding to the at least one device in communication with the mobile device.
At 716, the mobile device locating system 102 may be configured to determine the location of the mobile device based on the data corresponding to the location of the at least one device in communication with the mobile device 110A. For example, a mobile device locating system 102 may be configured to receive data corresponding to a plurality of devices that are in communication with the mobile device. As such, the mobile device locating system 102 may be configured to determine the exact position based upon data corresponding to the distance of the mobile device from the location of three devices that are in communication with the mobile device, wherein the location of the three devices in communication with the mobile device are known, stored within the contextual database 106, and/or transmitted to the mobile device locating system 102. Accordingly, at 718, a mobile device locating system 102 may be configured to transmit data corresponding to the location of the mobile device based at least on the data corresponding to the location of the at least one device in communication with the mobile device.
In some embodiments, the mobile device locating system 102 may be configured to use the location of at least one device in communication with the mobile device, such as a cell phone tower, as a temporary location of the mobile device. For example, the mobile device locating system 102 may be configured to receive data corresponding to the location of a cell phone tower at 714. In one example embodiment, the data may further indicate that the mobile device is located within 1 mile of the cell phone tower. Accordingly, the mobile device locating system 102 may be configured to transmit data corresponding to the location of the cell phone tower as the temporary location of the mobile device at 718. The process 700 may then end at 726.
If the mobile device locating system 102 is unable to determine the location of the mobile device at 716, the mobile device locating system 102 may be configured to transmit a signal corresponding to a request for the mobile device location at 720. For example, if the mobile device locating system 102 is unable to determine the location of the mobile device, the mobile device locating system may transmit a signal to the mobile device indicating a request for the mobile device to transmit data corresponding to the location of the mobile device.
At 722, the mobile device locating system 102 may be configured to receive data corresponding to the current location of the mobile device. For example, in response to receiving a signal indicating a request for the mobile device's location, a mobile device may be configured to determine the location of the mobile device using any number of suitable methods, such as GPS locating technology. In some embodiments, the mobile device may be configured to communicate with a number of devices having fixed known locations, such as cell phone towers and/or networking equipment, such as a wireless local area network router. Accordingly, the mobile device may be configured to determine the distance of the mobile device from any number of these devices configured to communicate with the mobile device so as to determine the location of the mobile device. In some embodiments, the mobile device may be configured to communicate with devices that are configured to communicate with the mobile device, which have a location unknown to the mobile device locating system 102. Accordingly, the mobile device locating system 102 may not be able to determine the location of the mobile device at 716, but the mobile device may be configured to determine the location of the mobile device and transmit the corresponding data to the mobile device locating system such that the mobile device locating system receives data corresponding to the location of the mobile device at 722. As such, the mobile device locating system 102 may be configured to transmit data corresponding to the current location of a first mobile device 110A to at least one other mobile device at 724. The process ends at 726.
Accordingly, embodiments herein may advantageously provide for an efficient method of determining the location of a mobile device. Specifically, the mobile device locating system 102 may be configured to predict the location of a mobile device 110A,110Z based at least upon contextual data of the at least one mobile device. As such, the mobile device may not need to determine the location of the mobile device and transmit data corresponding to the location of the mobile device to the mobile device locating system. In some embodiments, the mobile device may transmit contextual data corresponding to the mobile device, and the mobile device locating system 102 may be configured to determine the location of the mobile device from the contextual data. In another embodiment, the mobile device may be configured to transmit data corresponding to the location of at least one device in communication with the mobile device, such as data corresponding to the distance of the mobile device from a cell phone tower. As such, embodiments may advantageously provide for a method of determining the location of the mobile device without the mobile device having to determine the location of the mobile device. Further, embodiments may advantageously provide for determining the location of the mobile device using suitable methods, such as GPS locating technology, when the mobile device locating system is unable to accurately predict the location of the mobile device.
In some embodiments, such as when circuitry 200 is included in a mobile device locating system 102 and/or mobile device 110A, a location prediction module 210 may be included. As referred to herein, “module” includes hardware, software and/or firmware configured to perform one or more particular functions. In this regard, the means of circuitry 200 as described herein may be embodied as, for example, circuitry, hardware elements (e.g., a suitably programmed processor, combinational logic circuit, and/or the like), a computer program product comprising computer-readable program instructions stored on a non-transitory computer-readable medium (e.g., memory 204) that is executable by a suitably configured processing device (e.g., processor 202), or some combination thereof.
Processor 202 may, for example, be embodied as various means including one or more microprocessors with accompanying digital signal processor(s), one or more processor(s) without an accompanying digital signal processor, one or more coprocessors, one or more multi-core processors, one or more controllers, processing circuitry, one or more computers, various other processing elements including integrated circuits such as, for example, an ASIC (application specific integrated circuit) or FPGA (field programmable gate array), or some combination thereof. Accordingly, although illustrated in
Whether configured by hardware, firmware/software methods, or by a combination thereof, processor 202 may comprise an entity capable of performing operations according to embodiments of the present invention while configured accordingly. Thus, for example, when processor 202 is embodied as an ASIC, FPGA or the like, processor 202 may comprise specifically configured hardware for conducting one or more operations described herein. As another example, when processor 202 is embodied as an executor of instructions, such as may be stored in memory 204, the instructions may specifically configure processor 202 to perform one or more algorithms and operations described herein.
Memory 204 may comprise, for example, volatile memory, non-volatile memory, or some combination thereof. Although illustrated in
Communications module 206 may be embodied as any device or means embodied in circuitry, hardware, a computer program product comprising computer readable program instructions stored on a computer readable medium (e.g., memory 204) and executed by a processing device (e.g., processor 202), or a combination thereof that is configured to receive and/or transmit data from/to another device, such as, for example, a second circuitry 200 and/or the like. In some embodiments, communications module 206 (like other components discussed herein) can be at least partially embodied as or otherwise controlled by processor 202. In this regard, communications module 206 may be in communication with processor 202, such as via a bus. Communications module 206 may include, for example, an antenna, a transmitter, a receiver, a transceiver, network interface card and/or supporting hardware and/or firmware/software for enabling communications with another computing device. Communications module 206 may be configured to receive and/or transmit any data that may be stored by memory 204 using any protocol that may be used for communications between computing devices. Communications module 206 may additionally or alternatively be in communication with the memory 204, input/output module 208 and/or any other component of circuitry 200, such as via a bus.
Input/output module 208 may be in communication with processor 202 to receive an indication of a user input and/or to provide an audible, visual, mechanical, or other output to a user. Some example visual outputs that may be provided to a user by circuitry 200 are discussed in connection with the displays described above. As such, input/output module 208 may include support, for example, for a keyboard, a mouse, a joystick, a display, an image capturing device, a touch screen display, a microphone, a speaker, a RFID reader, barcode reader, biometric scanner, and/or other input/output mechanisms. In embodiments wherein circuitry 200 is embodied as a server or database, aspects of input/output module 208 may be reduced as compared to embodiments where circuitry 200 is implemented as an end-user machine (e.g., a mobile device) or other type of device designed for complex user interactions. In some embodiments (like other components discussed herein), input/output module 208 may even be eliminated from circuitry 200. Input/output module 208 may be in communication with memory 204, communications module 206, and/or any other component(s), such as via a bus. Although more than one input/output module and/or other component can be included in circuitry 200, only one is shown in
Location prediction module 210 may also or instead be included and configured to perform the functionality discussed herein related to facilitating the determination of a location of a mobile device, as discussed above. In some embodiments, some or all of the functionality related facilitating the determination of a location of a mobile device may be performed by processor 202. In this regard, the example processes and algorithms discussed herein can be performed by at least one processor 202 and/or location prediction module 210. For example, non-transitory computer readable storage media can be configured to store firmware, one or more application programs, and/or other software, which include instructions and other computer-readable program code portions that can be executed to control processors of the components of system 200 to implement various operations, including the examples shown above. As such, a series of computer-readable program code portions may be embodied in one or more computer program products and can be used, with a computing device, server, and/or other programmable apparatus, to produce the machine-implemented processes discussed herein.
Any such computer program instructions and/or other type of code may be loaded onto a computer, processor or other programmable apparatuses circuitry to produce a machine, such that the computer, processor or other programmable circuitry that executes the code may be the means for implementing various functions, including those described herein.
The illustrations described herein are intended to provide a general understanding of the structure of various embodiments. The illustrations are not intended to serve as a complete description of all of the elements and features of apparatus, processors, and systems that utilize the structures or methods described herein. Many other embodiments may be apparent to those of skill in the art upon reviewing the disclosure. Other embodiments may be utilized and derived from the disclosure, such that structural and logical substitutions and changes may be made without departing from the scope of the disclosure. Additionally, the illustrations are merely representational and may not be drawn to scale. Certain proportions within the illustrations may be exaggerated, while other proportions may be minimized. Accordingly, the disclosure and the figures are to be regarded as illustrative rather than restrictive.
The above disclosed subject matter is to be considered illustrative, and not restrictive, and the appended claims are intended to cover all such modifications, enhancements, and other embodiments, which fall within the true spirit and scope of the description. Thus, to the maximum extent allowed by law, the scope is to be determined by the broadest permissible interpretation of the following claims and their equivalents, and shall not be restricted or limited by the foregoing detailed description.
This non-provisional application is a continuation application of U.S. application Ser. No. 13/835,276, filed on Mar. 15, 2013, which claims the benefit of U.S. Provisional Patent Application No. 61/618,693, filed Mar. 30, 2012, entitled “Method and system for power-efficient location tracking for location-based services on mobile devices”, each incorporated herein by reference in its entirety.
Number | Name | Date | Kind |
---|---|---|---|
5825759 | Liu et al. | Oct 1998 | A |
6351218 | Smith et al. | Feb 2002 | B1 |
7486201 | Kelly et al. | Feb 2009 | B2 |
7848765 | Phillips et al. | Dec 2010 | B2 |
7949330 | Yuhara et al. | May 2011 | B2 |
8000726 | Altman et al. | Aug 2011 | B2 |
8019692 | Rosen | Sep 2011 | B2 |
8102253 | Brady, Jr. | Jan 2012 | B1 |
8108144 | Forstall et al. | Jan 2012 | B2 |
8108414 | Stackpole | Jan 2012 | B2 |
8588821 | Hewinson et al. | Nov 2013 | B1 |
8688143 | Steenstra et al. | Apr 2014 | B2 |
20040010553 | Katz et al. | Jan 2004 | A1 |
20060287817 | Nagel et al. | Dec 2006 | A1 |
20080102809 | Beyer et al. | May 2008 | A1 |
20080284588 | Kim et al. | Nov 2008 | A1 |
20090286526 | Matsunaga et al. | Nov 2009 | A1 |
20100085947 | Ringland et al. | Apr 2010 | A1 |
20110279261 | Gauger et al. | Nov 2011 | A1 |
Number | Date | Country | |
---|---|---|---|
61618693 | Mar 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 13835276 | Mar 2013 | US |
Child | 14949750 | US |