US 12,467,755 B2
Indoor location-based service
Börje Felipe Fernandes Karlsson, Redmond, WA (US); Yuanchao Shu, Redmond, WA (US); Ruogu Du, Redmond, WA (US); and Yi Jiang, Redmond, WA (US)
Assigned to Microsoft Technology Licensing, LLC, Redmond, WA (US)
Appl. No. 17/056,380
Filed by Microsoft Technology Licensing, LLC, Redmond, WA (US)
PCT Filed Jun. 18, 2019, PCT No. PCT/US2019/037592
§ 371(c)(1), (2) Date Nov. 17, 2020,
PCT Pub. No. WO2020/005636, PCT Pub. Date Jan. 2, 2020.
Claims priority of application No. 201810714698.1 (CN), filed on Jun. 29, 2018.
Prior Publication US 2021/0190505 A1, Jun. 24, 2021
Int. Cl. G01C 21/20 (2006.01); G01C 21/00 (2006.01); H04W 4/02 (2018.01); H04W 4/024 (2018.01); H04W 4/33 (2018.01)
CPC G01C 21/206 (2013.01) [G01C 21/383 (2020.08); G01C 21/3867 (2020.08); H04W 4/024 (2018.02); H04W 4/025 (2013.01); H04W 4/33 (2018.02)] 17 Claims
OG exemplary drawing
 
1. A computer-implemented method, comprising:
obtaining a floor plan about a first floor of a first building comprising at least one floor;
identifying, using a floor parsing module, vertices and edges on the floor plan for the first floor and generating a first map for the first floor based on the floor plan, the first map including the identified vertices and edges, wherein one vertex corresponds to a position on the first floor, an edge connecting two vertices represents a physical object or a passable path on the first floor, and two positions corresponding to the two vertices are located at the physical object or on the passable path;
preprocessing the first map using a triangulation module to add new edges to the first map by applying triangulation to the vertices by inserting edges between endpoints of the vertices until the first floor is divided into triangles, each triangle having an empty interior, and using a topology construction module to add a topology vertex to each new edge, the topology vertex representing a passable position on the floor plan;
determining, using a path construction module, a path between a starting position and a destination position on the first map using the topology vertices of the new edges;
collecting, via sensors of a user device, real-time environment data comprising at least one of WiFi signal data, geomagnetic signal data, and barometer signal data;
binding the determined path with the collected environment data by storing the environment data in an environment database, associating the stored environment data with corresponding positions along the determined path, and determining a current position of the user device by comparing current sensor data to the stored environment data;
providing a location-based service comprising navigation instructions to the user device at least based on the determined path; and
updating the navigation instructions in real-time as the user device moves along the determined path based on the collected environment data.