MOBILE DEVICE LOCATOR
Examples herein involve estimating a first position of a mobile device based on first communication signals, assigning a first set of particles to a number of respective first sampling locations within a threshold distance of the first position, adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device, and estimating a second position of the mobile device based on the second sampling locations.
Latest ENTIT SOFTWARE LLC Patents:
This application is a continuation of U.S. patent application Ser. No. 17/030,673, filed Sep. 24, 2020 which is a continuation of U.S. application Ser. No. 15/739,926, filed on Dec. 26, 2017, which is a national stage application pursuant to 35 U.S.C. § 371 of International Application No. PCT/CN2015/000467, filed Jun. 26, 2015, all of which are incorporated in their entireties herein by reference.
BACKGROUNDLocation based services (LBS) are useful in a plurality of applications. A location based service may provide or indicate a user's location on a map or relative to other objects, locations, establishments, etc. Accordingly, a user may navigate to other locations, determine directions to other locations, etc. LBS may be implemented both outdoors and indoors.
Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.
DETAILED DESCRIPTIONExamples disclosed herein involve a technique for a location based service (LBS) that may be implemented indoors or outdoors. In examples herein, a mobile device locator uses communication signals (e.g., Bluetooth Low Energy (BLE)), a particle filter, and movement sensor measurements to estimate a location of a mobile device. Accordingly, using examples herein, a user may estimate a location of a mobile device regardless of whether the mobile device is indoors or outdoors.
As used herein, indoors or indoor use refer to situations or implementations in the interior of a structure or under a structure that includes a roof (e.g., a building, a pavilion, a house, a warehouse, etc.). As used herein, “position” or “location” may be used interchangeably to refer to a physical location of a mobile device (e.g., a geographical location, a location relative to a building, a room, etc.).
In many outdoor LBSs, a Global Positioning System (GPS) may be used to triangulate a position of a mobile device. In some examples, cellular communication (e.g., 3G Global System of Mobile (GSM) communication, 4G LTE, etc.) may be used additionally or alternatively to the GPS to triangulate a location of a mobile device. However, GPS signals and/or cellular signals may not be strong enough to penetrate a structure to provide an accurate internal location, generally rendering such outdoor LBSs useless while indoors. In examples herein, communication signals, such as Bluetooth low energy (BLE) signals, and inertial movement measurements may be used to determine or estimate a location of a mobile device with relatively increased accuracy. In examples herein, an initial position of the mobile device may be estimated (e.g., using a fingerprint database), and subsequent locations of the mobile device may be estimated or calculated based on measured movement of the mobile device using a particle filter. Accordingly, examples disclosed herein may estimate a location and/or indicate an estimated location of a mobile device when the device is indoors.
An example method includes estimating a first position of a mobile device based on first communication signals, assigning a first set of particles to a number of respective first sampling locations within a threshold distance of the first position, adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device, and estimating a second position of the mobile device based on the second sampling locations.
In the illustrated example of
The example fingerprint locator 210 estimates a position of the mobile device 120. In some examples, the fingerprint locator 210 may estimate a position of the mobile device 120 using a fingerprint database. In examples herein, a fingerprint database refers to a database of communication signal measurements (e.g., received signal strength indications (RSSI)) measured by a mobile device 120 at designated locations (see
An example fingerprint database used herein may be created and developed using any suitable techniques (e.g., by recording RSSIs at designated locations of an area). In some examples, the fingerprint locator 210 iteratively estimates an initial position of the mobile device 120. For example, the fingerprint locator 210 may periodically (e.g., every five seconds) use the fingerprint database to estimate the location of the mobile device 120 in the room 102 every five seconds, every ten seconds, etc. In some examples, the fingerprint locator 210 may estimate the location of the mobile device 120 after detecting movement of the mobile device 120 (e.g., based on measurements of an accelerometer or gyroscope). In examples herein, the fingerprint locator 210 may provide determined location information of the mobile device 120 (e.g., estimated coordinates) to an application (e.g., a navigation application, a mapping application, etc.) or user interface of the mobile device 120.
The example particle allocator 220 of
The example sensor analyzer 230 may analyze movement using sensors (e.g., accelerometer, gyroscope, etc.) of the mobile device 120 or devices in communication with the mobile device 120. Based on the measured movement, the sensor analyzer 230 provides movement information (e.g., estimated direction, speed, altitude, etc.) to the particle allocator 220. The example particle allocator 220 may then move the allocated particles to new coordinates corresponding to the measured movement. In some examples, the particle allocator 220 may also apply a random drift (e.g., (Ax, Ay)) when moving the particles based on the measured movement. The example random drift applied to the particles may be different for each of the particles. Accordingly, the movement of the particles based on the movement of the mobile device 120 may relatively indicate a new position of the mobile device 120.
The example position calculator 240 of
In examples herein, after each iteration of the fingerprint locator 210 estimating the position of the mobile device 120, the particle allocator 220 (using the particle filter) may resample the particles around the position of the mobile device 120 estimated by the fingerprint locator 210. For example, weights may be applied to each of the particles. A default weight value (e.g., a weight value ‘1’) may be given to each newly created particle. Therefore, after the fingerprint locator 210 estimates an initial position, all newly created particles may have a same weight, and after the fingerprint locator 210 estimates a subsequent position, the particles may all have different weights. In some examples, after the particle allocator 220 allocates new particles to new sampling coordinates, the particle allocator 220 may estimate and assign weights to the particles based on the distance between the new sampling coordinates and the estimated position of the mobile device 120. The weights may be representative of a likelihood that the corresponding particle is located near the mobile device 120 (e.g., the greater the weight, the closer the sampling location of the particle is to the estimated position of the mobile device 120). Accordingly, the particle allocator 220 adjusts weights of the particles based on their proximity to the position of the mobile device 120 estimated by the fingerprint locator 210.
The particle allocator 220 may resample the particles by removing particles that have less than a threshold weight (e.g., less than ‘1’) and adding a same number of particles having new weights to the area around the location of the mobile device 120. In examples herein, the particle allocator 220 may move the designated particles based on measured movement of the mobile device 120 at a faster rate (e.g., every second) than the particle allocator 220 resamples the particles around the subsequent locations of the mobile device 120 (e.g., every five seconds).
Accordingly, as the mobile device 120 moves around the room 102 of
While an example manner of implementing the sampling locator 110 of
At Step 1 in
At Step 2 of
At Step 3 of
At Step 4 of
At Step 5 of
At step 6 of
At step 7, in response to receiving location information from fingerprint locator 210, the particle allocator 220 resamples the particles 320 to get a new set of particles 370. In step 7, the particle allocator 220 adjusts weights of the particles 320 of step 2 based on the proximity of the particles 320 to the new location 360. Based on the adjusted weights, the particle allocator 220 may then remove some of the particles 320 that are not within proximity of the new location 360 (e.g., using a threshold weight value) and add a same number of new particles to create the new set of particles 370 of Step 7. Thus, the particles 370 may include some of the particles 320 (e.g., those satisfying a threshold weight). For the sake of illustration, the particles in both the area 322 and new area 372 may have been some of the particles 320 from step 2. Accordingly, the particle allocator 220, at step 7, determines a new set of particles for estimating or calculating the location of the mobile device 120.
At step 8, the position calculator 240 estimates the position 380 of the mobile device 120 by calculating an average of the coordinates of the particles 370 (e.g., similar to Step 5). In some examples, prior to step 8, the sensor analyzer 230 may measure and/or provide movement information to the particle allocator and/or position calculator 240 for estimating the location 380 of the mobile device 120.
Accordingly, the example steps 1-8 of
Flowcharts representative of example machine readable instructions for implementing the sampling locator 110 of
The example process 400 of
At block 420 of the example of
At block 440 of
The example process 500 of
At block 510 of
At block 530, the particle allocator 220 analyzes movement of the mobile device 120 provided by the sensor analyzer 230. At block 540, the particle allocator 220 moves the particles to new sampling locations by determining new sampling coordinates of the new sampling locations calculated in accordance with the movement and a random drift. At block 550, the position calculator 240 may calculate a new position of the mobile device 120 by averaging the coordinates of the new sampling locations determined after moving the particles. At block 560, the sampling locator 110 determines whether to continue analyzing measured movement of the mobile device 120. For example, if a threshold period of time has passed (e.g., 5 seconds), the particle allocator 220 has estimated the new position of the mobile device 120 a threshold number of times (e.g., 5 times), or a new position estimation has been received from the fingerprint locator 210, control may advance to block 570; if not, control may return to block 530.
At block 570, the sampling locator 110 determines whether to estimate the location of the mobile device 120 using the fingerprint database. If the sampling locator 110 is to continue to estimate the location of the mobile device 120 using the fingerprint database (e.g., a threshold period of time has passed since block 510), then control returns to block 510. If, at block 570, the sampling locator 110 is not to estimate a location of the mobile device 120 using the fingerprint database (e.g., due to a shutdown, a failure, etc. of the sampling locator 110), then the example process 500 ends.
The example process 600 of
At block 630, the example particle allocator 220 may remove particles based on a weight threshold. For example, at block 630, if the weights of the particle do not satisfy a weight threshold (e.g., the weights are below or above the weight threshold), then the particle allocator 220 may remove the particles from the sample. At block 640, the particle allocator 220 assigns new particles (with corresponding weights) to random sampling locations within a proximity (e.g., determined by a threshold distance or area) of particles having a weight that satisfies a weight threshold (e.g., a weight threshold representative of relatively close proximity to the position of the mobile device 120 estimated by the fingerprint locator 210). In some examples, the weight threshold to remove the particles may be the same as the weight threshold used when determining locations around which particles the new particles are to be allocated. Accordingly, after executing block 640 of the example process 600 of
As mentioned above, the example processes of
The processor platform 700 of the illustrated example of
The processor 712 of the illustrated example includes a local memory 713 (e.g., a cache). The processor 712 of the illustrated example is in communication with a main memory including a random access memory 714 and a read-only memory 716 (or non-volatile memory) via a bus 718. The random access memory 714 (or other volatile memory) may be implemented by Synchronous Dynamic Random Access Memory (SDRAM), Dynamic Random Access Memory (DRAM), RAMBUS Dynamic Random Access Memory (RDRAM) and/or any other type of random access memory device. The nonvolatile memory 716 may be implemented by flash memory and/or any other desired type of memory device. Access to the main memory 714, 716 is controlled by a memory controller.
The processor platform 700 of the illustrated example also includes an interface circuit 720. The interface circuit 720 may be implemented by any type of interface standard, such as an Ethernet interface, a universal serial bus (USB), and/or a peripheral component interconnect (PCI) express interface.
In the illustrated example, at least one input device 722 is connected to the interface circuit 720. The input device(s) 722 perm it(s) a user to enter data and commands into the processor 712. The input device(s) can be implemented by, for example, an audio sensor, a microphone, a camera (still or video), a keyboard, a button, a mouse, a touchscreen, a track-pad, a trackball, isopoint and/or a voice recognition system.
At least one output device 724 is also connected to the interface circuit 720 of the illustrated example. The output device(s) 724 can be implemented, for example, by display devices (e.g., a light emitting diode (LED), an organic light emitting diode (OLED), a liquid crystal display, a cathode ray tube display (CRT), a touchscreen, a tactile output device, a light emitting diode (LED), a printer and/or speakers). The interface circuit 720 of the illustrated example, thus, may include a graphics driver card, a graphics driver chip or a graphics driver processor.
The interface circuit 720 of the illustrated example also includes a communication device such as a transmitter, a receiver, a transceiver, a modem and/or network interface card to facilitate exchange of data with external machines (e.g., computing devices of any kind) via a network 726 (e.g., an Ethernet connection, a digital subscriber line (DSL), a telephone line, coaxial cable, a cellular telephone system, Wi-fi, etc.).
The processor platform 700 of the illustrated example also includes at least one mass storage device 728 for storing executable instructions (e.g., software) and/or data. Examples of such mass storage device(s) 728 include floppy disk drives, hard drive disks, compact disk drives, Blu-ray disk drives, RAID systems, and digital versatile disk (DVD) drives.
The coded instructions 732 of
From the foregoing, it will be appreciated that the above disclosed methods, apparatus and articles of manufacture provide a sampling locator for a location based service to estimate the location of a device using a fingerprint database, inertial measurements, and a particle filter. In examples herein, communication signals, such as Bluetooth low-energy signals, may be used to periodically (or aperiodically) estimate a position of a mobile device based RSSIs and a RSSI fingerprint database. Using the initial position and movement measurements from sensors of the mobile device (e.g., an accelerometer or gyroscope), a particle filter may be used to estimate the location of the mobile device. Accordingly, examples herein provide a location based service that may estimate a relatively accurate location of a mobile device indoors. In examples herein, enhanced indoor use is possible through the use of the particular types of communication signals (e.g., the BLE signals), a fingerprint database, measurement data from the mobile device, and a particle filter, rather than the use of signals from satellites, cellular towers, Wi-Fi access points, etc. to triangulate a position of the mobile device suitable for outdoor use or other location based services.
Although certain example methods, apparatus and articles of manufacture have been disclosed herein, the scope of coverage of this patent is not limited thereto. On the contrary, this patent covers all methods, apparatus and articles of manufacture fairly falling within the scope of the claims of this patent.
Claims
1. A method comprising:
- performing an analysis of a movement of a mobile device that includes:
- estimating a first position of the mobile device within an indoor setting based on first communication signals by a fingerprint locator, wherein the first communication signals are first Bluetooth Low Energy (BLE) signals detected and provided by a plurality of BLE beacons positioned within the indoor setting;
- assigning a first set of particles to a number of respective first sampling locations within a threshold distance of the first position;
- applying weights to the first set of particles based on their proximity to the first position of the mobile device estimated by the fingerprint locator;
- adjusting the assignment of the first set of particles to second sampling locations based on movement of the mobile device by removing a number of particles having weights that satisfy a first weight threshold and adding a same number of new particles to the second sampling locations within a threshold distance of particles having weights that satisfy a second weight threshold, the adjusting including application of a respective random drift to at least some of the first set of particles, wherein a random drift applied to at least one first particle among the first set of particles is different from a random drift applied to at least one second particle among the first set of particles;
- determining to cease the analysis of the movement of the mobile device, the determining further comprising: determining that a threshold period of time has elapsed since the mobile device has moved; and determining that a position of the mobile device has been estimated a threshold number of times; and
- after ceasing the analysis of the movement of the mobile device, calculating an estimated new position of the mobile device based on the application of the random drift and the analysis of the movement of the mobile device.
2. The method of claim 1, further comprising:
- estimating a third position of the mobile device within the indoor setting based on second communication signals, wherein the second communication signals are second BLE signals detected and provided by the plurality of BLE beacons; and
- estimating a fourth position of the mobile device based on third sampling locations.
3. The method of claim 1, the second set of particles comprising a particle from the first set of particles, wherein the weight of the particle from the first set of particles satisfies a weight threshold.
4. The method of claim 1, further comprising detecting the movement of the mobile device based on inertial measurements of an accelerometer of the mobile device or inertial measurements of a gyroscope of the mobile device.
5. The method as defined in claim 1, further comprising:
- determining the first sampling locations to randomly assign the first set of particles to the first sampling locations within an area of the first position, the area defined by the threshold distance.
6. The method as defined in claim 1, wherein the first position and the second position are located indoors.
7. The method of claim 1, further comprising estimating the first position by:
- receiving the communication signals from a plurality of beacons;
- comparing received signal strength indications of the communication signals to received signal strength indications of a fingerprint database; and
- estimating the first position based on location information corresponding to the received signal strength indications in the fingerprint database.
8. An apparatus comprising:
- a fingerprint locator to estimate a first position of a mobile device based on received signal strengths of communications signals in comparison to received signal strengths of a fingerprint database, wherein the first position is estimated based on a discrete probability distribution of the received signal strengths of communication signals;
- a sensor analyzer to measure movement of the mobile device;
- a particle allocator to control particles of a particle filter based on the first position of the mobile device and movement of the mobile device, wherein the particle allocator is further to: assign weights to the particles, the weights corresponding to distance between the first position and the respective particles; resample the particles by removing a number of particles having weights that satisfy a first weight threshold and adding the same number of new particles to new sampling coordinates within a threshold distance of particles having weights that satisfy a second weight threshold, the resampling including application of a respective random drift to at least some of the particles, wherein a random drift applied to at least one first particle among the particles is different from a random drift applied to at least one second particle among the particles;
- a movement analyzer to analyze movement of the mobile device until a threshold period of time has elapsed since the mobile device has moved and a position of the mobile device has been estimated a threshold number of times; and
- a position calculator to estimate a second position of the mobile device based on sampling coordinates of the particles.
9. The apparatus of claim 8, wherein the position calculator is to estimate the second position by averaging the sampling coordinates, the sampling coordinates corresponding to sampling locations of the particles determined based on the movement of the mobile device.
10. A non-transitory machine readable storage medium comprising instructions that, when executed, cause a machine to at least:
- estimate a first position of a mobile device by comparing received signal strength indications of communication signals to received signal strength indications of a fingerprint database, wherein the first position is estimated based on a discrete probability distribution of the received signal strength indications of communication signals;
- allocate particles to sampling locations within a threshold distance of the first position, the particles comprising respective weights, wherein allocating particles further comprises: determining the weights of the respective particles based on the distance between the first position and the respective particles; and removing a portion of the particles based on the weights of the particles of the portion of the particles failing to satisfy a weight threshold;
- analyze movement of the mobile device based on inertial measurements from sensors of the mobile device;
- move the particles to new sampling locations in accordance with the movement of the mobile device, the moving including application of a respective random drift to at least some of the particles, wherein a random drift applied to at least one first particle among the particles is different from a random drift applied to at least one second particle among the particles;
- determine to cease analyzing movement of the mobile device, the determining further comprising: determine that a threshold period of time has elapsed since the mobile device has moved; and determine that a position of the mobile device has been estimated a threshold number of times; and
- calculate a new position of the mobile device based on the new sampling locations.
11. The non-transitory machine readable storage medium of claim 10, wherein the instructions, when executed, further cause the machine to allocate the particles to the sampling locations by:
- assigning new particles to replace the portion of the particles to new sampling locations within a proximity of a portion of the particles that satisfy the weight threshold.
Type: Application
Filed: May 5, 2023
Publication Date: Aug 31, 2023
Applicant: ENTIT SOFTWARE LLC (Sunnyvale, CA)
Inventors: Wei LI (Shanghai), Jie ZHOU (Shanghai), Xiaoqiang WANG (Shanghai)
Application Number: 18/312,962