Abstract:
Location of mobile device in venue is estimated by using state space estimator to determine candidate locations of the mobile device at first time point based on previous candidate positions conditioned upon observation of one or more environmental variables. Second observation is received at second time point, and the state space estimator performs propagation step to determine the candidate locations at the second time point based on the candidate locations at the first time point and the second observation. The propagation step includes sub-propagation steps in which time length between the sub-propagation steps is a fraction of the time length between the first and second time points, and at each sub-propagation step each candidate location is propagated according to a stochastic process. The location of the mobile device at the second time point is determined based on the candidate locations at the second time point.
Abstract:
Systems, methods and computer program products are disclosed for machine learning to determine preferential device behavior. In some implementations, a server receives inputs, including attributes from a client device, crowd-sourced data from a number of other devices and a priori knowledge. The server includes a concept engine that applies machine-learning process to the inputs. The output of the machine learning process is transported to the client device. At the client device, a client engine associates attributes observed at the device to the machine learning output to determine a user profile. Applications may access the user profile to determine preferential device behavior, such as provide targeted information to the user or take action on the device that is personalized to the user of the device.
Abstract:
Systems, methods, and program products for providing services to a user by a mobile device based on the user's daily routine of movement. The mobile device determines whether a location cluster indicates a significant location for the user based on one or more hints that indicate an interest of the user in locations in the cluster. The mobile device can perform adaptive clustering to determine a size of area of the significant location based on how multiple locations converge in the location cluster. The mobile device can provide location-based services for calendar items, including predicting a time of arrival at an estimated location of a calendar item. The mobile device can provide various services related to a location of the mobile device or a significant location of the user through an application programming interface (API).
Abstract:
Techniques of delivering location data are described. A location server can receive, from a mobile device, a request for location data for determining a location of the mobile device at a venue. The request can include an estimated location of the mobile device. The location server can provide to the mobile device coarse location data for each venue that is located within a threshold distance to the estimated location of the mobile device. The coarse location data can include a list of coarse tiles at each venue, and parameters of a probability distribution function for determining in which tile of the venue the mobile device is located based on signals detected by the mobile device. The location server can the provide location fingerprint data associated with the tile and neighboring tiles to the mobile device. The mobile can use the location fingerprint data to determine a more detailed location.
Abstract:
Methods, program products, and systems for using a location fingerprint database to determine a location of a mobile device are described. A mobile device can use location fingerprint data and readings of a sensor to obtain a location observation. The mobile device can use the location observation in a particle filter for determining a location of the mobile device at a venue. Using state of movement of the mobile device and a map of the venue, the mobile device can determine one or more candidate locations of the device. The mobile device can then update the candidate locations using a next observation, and determine a probability density function based on the candidate locations. The mobile device can then present to a user a most probable location as a current location of the device in the venue.
Abstract:
Methods, systems, and computer program products for determining transit routes through crowd-sourcing, for determining an estimated time of arrival (ETA) of a vehicle of the transit route at a given location, and for providing predictive reminders to a user for catching a vehicle of the transit route. A server receives signal source information about wireless signal sources detected by user devices, including information about a first wireless signal source detected by some devices. The server determines that the first wireless signal source is moving. The server determines that the first wireless signal source is associated with a public transit route upon determining that the signal source information satisfies one or more selection criteria. The server stores information associating the first wireless signal source with the public transit route as transit movement data corresponding to the public transit route.
Abstract:
A server can receive, from a mobile device, a reference location and one or more measurements of signal from signal sources. Each signal source is associated with a signal source location in a location database. The server can use the measurements and the signal source locations to validate the reference location. The server can use the validated reference location to validate the signal source locations, including detecting moved signal sources.
Abstract:
Methods, program products, and systems of location estimation using multiple wireless access gateways are disclosed. In general, in one aspect, a mobile device can scan and detect multiple wireless access gateways. The mobile device can determine an initial estimate of distance between the mobile device and each wireless access gateway. The mobile device can receive, from a server, location data of the detected wireless access gateways. The location data can include an estimated location of each wireless access gateway, an uncertainty of the estimated location, and a reach of each wireless access gateway. The mobile device can assign a weight to each estimated location using the uncertainty, the reach, and the initial estimate. The mobile device can estimate the location of the mobile device using the weighted locations.
Abstract:
Methods, program products, and systems for monitoring geofence exits using wireless access points are disclosed. In general, in one aspect, a mobile device can detect one or more entry gateways that are wireless access points selected for monitoring a geofence. The mobile device can determine that the mobile device is located in the geofence based on the detection. The mobile device can monitor the entry gateways and one or more exit gateways, which can be wireless access points observable by the mobile device when the mobile device is in the geofence. When the mobile device determines, after a number of scans using a wireless processor, that the entry gateways and exit gateways are unobservable, the mobile device can use an application processor to determine whether the mobile device has exited from the geofence.
Abstract:
Methods, program products, and systems for monitoring geofence exits using wireless access points are disclosed. In general, in one aspect, the mobile device can select, from multiple wireless access points, one or more wireless access points for monitoring a geofence. Selecting the one or more wireless access points can include determining multiple geographic regions corresponding to the geofence. The mobile device can select the one or more wireless access points based on a maximum total number of wireless access points to be selected and an access point allowance for each of the geographic regions. The access point allowance can indicate a maximum number of wireless access points to be selected for the geographic region. The mobile device can detect a potential entry or exit of the geofence by monitoring the selected one or more wireless access points using a wireless processor.