Abstract:
A location of a mobile device in a venue can be estimated by using a state space estimator to determine candidate locations of the mobile device at a first time point based on previous candidate positions conditioned upon an observation of one or more environmental variables. A second observation is received at a second time point, and the state space estimator performs a 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 a plurality of sub-propagation steps in which a 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:
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 using a mobile WAP for location and context purposes are disclosed. In general, in one aspect, a server can estimate an effective location of a wireless access gateway using harvested data. The server can harvest location data from multiple mobile devices. The harvested data can include a location of each mobile device and an identifier of a wireless access gateway that is located within a communication range of the mobile device. In some implementations, the server can identify a mobile wireless access gateway based on a distance comparison. Data indicating the mobility of a wireless access gateway can be used by a mobile device to initiate one or more actions, including managing power of the mobile device, modifying entrance and exit conditions of virtual fences and determining a context of the mobile device.
Abstract:
Techniques of category-based fence are described. A category-based fence can correspond to a group of signal sources instead of a point location fixed to latitude and longitude coordinates. The group of signal sources can represent a category of entities, e.g., a particular business chain. The signal sources can be distributed to multiple discrete locations. A category-based fence associated with the group, accordingly, can correspond to multiple locations instead of a single point location and a radius. Each signal source in the group can be associated with a category identifier unique to the group and uniform among signal sources in the group. The category identifier can be programmed into each signal source. A mobile device can enter the category-based fence by entering any of the discrete locations when the mobile device detects the signal identifier. The mobile device can then execute an application program associated with the category-based fence.
Abstract:
Implementations are disclosed for obtaining a range state of a device operating in an indoor environment with radio frequency (RF) signal sources. In some implementations, windowed signal measurements obtained from RF signals transmitted by an RF signal source are classified into range classes that are defined by threshold values obtained from a RF signal propagation model. A range class observation is obtained by selecting a range class among a plurality of range classes based on a percentage of a total number of windowed signal measurements that are associated with the range class. The range class observation is provided as input to a state estimator that estimates a range class that accounts for process and/or measurement noise. The output of the state estimator is provided as input to a state machine.
Abstract:
A mobile device can send a request to a server having a plurality of tiles of location data associated with a venue, each tile having location data associated with a portion of the venue, the request including data representing an estimated location of the mobile device. The mobile device can receive a first tile of location data sent from the server, the first tile being associated with a first portion of the venue that includes the estimated location. The mobile device can receive a first sensor reading and determine a first location of the mobile device at the venue using the first sensor reading and the first tile of location data. The mobile device may receive a second tile of location data sent from the server, the second tile being associated with a second portion of the venue. The mobile device may receive a second sensor reading and determine a second location of the mobile device at the venue using the second sensor reading and the second tile of location data.
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 a location fingerprint database to determine the location where GPS signals are unavailable. A server can generate location fingerprint data for the database. The server can generate the location fingerprint data using crowd sourcing, using known locations of signal sources, or both. The server can receive, from a sampling device, measurements of environment variables, e.g., signals from a signal source at one or more sampling points. The server can extrapolate, from the received measurements, estimated measurements at one or more locations in a venue. The server can store the extrapolated measurements as location fingerprint data. The server can send the location fingerprint data to a mobile device for determining a location of the mobile device when the mobile device is at the venue.
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:
An automated environment can include an accessory device that operates according to an automation rule, to take a prescribed action when a triggering condition occurs. A controller device for the automated environment can determine a user's regular routine and can detect when the user is deviating from the regular routine. The controller device can communicate with accessory devices in the automated environment to modify their behavior relative to the automation rules.
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).