Patent ID: 8548738

Claim:
A method of determining a path of a portable handheld device in an indoor space, the method comprising: identifying a map of the indoor space, the map being based on a plurality of features; generating, by a processor, a first set of particles, each particle of the first set representing a location on the map, further representing a possible heading of the portable handheld device, and being associated with a likelihood value; receiving data from one or more orientation devices; identifying a heading of the client device based on the received data; determining a direction and speed of movement based on the received data; applying the direction and speed of movement to each one of the first set of particles; adjusting the likelihood value of each particle of the first set of particles based on whether the particular particle violated one or more of the plurality of features and further based on whether the heading associated with each particle of the first set of particles is also associated with a heading consistent with the identified heading; generating a second set of particles by selecting particles of the first set based on the likelihood values associated with the first set of particles, adjusting the representative locations of the selected particles of the first set by a select value, and adjusting each of the representative headings of the selected particles of the first set of particles by a select heading value; for each particular particle of the second set of particles, storing information identifying the particle of the first set selected to generate the particular particle of the second set; selecting a given particle of the second set of particles closest to an average representative location of the second set of particles, when all of the particles of the second set of particles are within a threshold radius of one another; and determining a path of the portable handheld device based on the stored information identifying the particle of the first set selected to generate the selected particular particle of the second set.