US12072192B2 - System and method for geomodelling and pathfinding - Google Patents
System and method for geomodelling and pathfinding Download PDFInfo
- Publication number
- US12072192B2 US12072192B2 US17/866,416 US202217866416A US12072192B2 US 12072192 B2 US12072192 B2 US 12072192B2 US 202217866416 A US202217866416 A US 202217866416A US 12072192 B2 US12072192 B2 US 12072192B2
- Authority
- US
- United States
- Prior art keywords
- level
- cell
- grid
- geohash
- cells
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active, expires
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 230000003068 static effect Effects 0.000 claims abstract description 10
- 230000002123 temporal effect Effects 0.000 claims abstract description 9
- 238000013507 mapping Methods 0.000 claims description 10
- 238000009877 rendering Methods 0.000 claims description 4
- 238000013506 data mapping Methods 0.000 claims description 2
- 238000000547 structure data Methods 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 8
- 230000002452 interceptive effect Effects 0.000 abstract description 4
- 239000007787 solid Substances 0.000 abstract description 3
- 230000006978 adaptation Effects 0.000 abstract 1
- 238000004590 computer program Methods 0.000 description 9
- 238000010586 diagram Methods 0.000 description 9
- 238000012545 processing Methods 0.000 description 9
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 6
- 230000008569 process Effects 0.000 description 6
- 238000013459 approach Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000000926 separation method Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000011960 computer-aided design Methods 0.000 description 2
- 239000004567 concrete Substances 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- IMQLKJBTEOYOSI-UHFFFAOYSA-N Diphosphoinositol tetrakisphosphate Chemical compound OP(O)(=O)OC1C(OP(O)(O)=O)C(OP(O)(O)=O)C(OP(O)(O)=O)C(OP(O)(O)=O)C1OP(O)(O)=O IMQLKJBTEOYOSI-UHFFFAOYSA-N 0.000 description 1
- 206010039203 Road traffic accident Diseases 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000013480 data collection Methods 0.000 description 1
- 239000002355 dual-layer Substances 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- WHWDWIHXSPCOKZ-UHFFFAOYSA-N hexahydrofarnesyl acetone Natural products CC(C)CCCC(C)CCCC(C)CCCC(C)=O WHWDWIHXSPCOKZ-UHFFFAOYSA-N 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 239000004033 plastic Substances 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 239000002023 wood Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/20—Instruments for performing navigational calculations
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3804—Creation or updating of map data
- G01C21/3807—Creation or updating of map data characterised by the type of data
- G01C21/383—Indoor data
-
- G—PHYSICS
- G01—MEASURING; TESTING
- G01C—MEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
- G01C21/00—Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
- G01C21/38—Electronic maps specially adapted for navigation; Updating thereof
- G01C21/3863—Structures of map data
- G01C21/387—Organisation of map data, e.g. version management or database structures
- G01C21/3881—Tile-based structures
Definitions
- the present invention is a system for constructing a cell-based digital representation of indoors and outdoors to store information associated with the location for applications such as asset management, data marketplace, and runtime pathfinding.
- Destinations are represented by street addresses and/or location names fixed on an outdoors' map.
- temporal events such as traffic accidents, road closures, and congestions must be accounted for when the shortest path is determined
- the graph (node and link) topologies e.g., addresses and roads on the map
- Minor topological changes such as new buildings, new roadways, store closures, etc., occur, but these are infrequent.
- the traffic events that are temporal only change the weight of a link in the graph during real-time pathfinding.
- the route from a traveler to the destination only needs to consider the traveler's location and link weights as variables.
- the routes are also fixed when considering airport, mall, or campus maps since the venues are known a-priori. Therefore, indoor and outdoor modeling, used primarily for pathfinding applications in the prior art, are designed by the principle of fixed map/topological data.
- some data associated with locations are highly temporal. For example, in a large store (e.g., Target) or a warehouse (e.g., Amazon) the item locations on the floor plan change rather frequently. Runtime computation of the shortest path from a person's current location towards an item, for example, becomes much more time-consuming compared to outdoors pathfinding because nodes (signifying item locations) are not fixed.
- a large store e.g., Target
- a warehouse e.g., Amazon
- Simple pathfinding applications on mobile phones would be useful to aid shoppers in conveniently finding locations of items without needing assistance from store employees. Such pathfinding applications also aid warehouse workers in quickly locating items for asset tracking, packaging, and shipping.
- the pathfinding algorithm must be efficient enough to make a fast route determination by first determining where the item is in the store at that time, constructing the dynamic topology of the graph, and finally determining the best path in real-time.
- First step is developing a database to store all the items in the store and all feasible item locations.
- An Indoor Positioning System (IPS) (see “Indoor Positioning System (IPS),” https://en.wikipedia.org/wiki/Indoor_positioning_system#References) and short-distance wireless communications such as Bluetooth, Wi-Fi, and Li-Fi that are well known in the prior art can be used.
- An item's location can be described in terms of indoor structures such as floor, room, partition, aisle, rack, shelf, table in a database, or by a location index.
- Item location update operation must be performed whenever the location of the item changes. This update involves deleting a reference for the item indicating a past location index in the database and adding a new reference.
- a venue can be digitally mapped using various techniques.
- the simplest technique is to create a grid comprised of cells wherein a cell is a polygon.
- the grid is created using Geohashing (see Geohash, https://en.wikipedia.org/wiki/Geohash#References) that is used to encode geographic coordinates (latitude and longitude) into a short string of digits and letters (known as geohash) using base-32 alphabet encoding (characters can be 0 to 9 and a to z, excluding ‘a’, T, ‘l’, and ‘o’).
- the geohash level 1 divides the world into 32 cells where each cell is defined by the geohash of length 1.
- the geohash level-1 cell is then divided into 32 cells. Each cell is defined by an area that has a geohash of length 2 and so on. The more characters in the geohash string, the smaller the cell and the more precise the location. While a level 1 cell is 5000 km by 5000 km, a level 9 cell is only 5 m by 5 m.
- the string length of a geohash represents its level. There is no limit or maximum geohash length, but for most human-scale geospatial use, the longest useful hashes are 12 characters. The lower level, of shorter hashes, are called parents, while the longer hashes, contained within, are called children.
- each geohash is globally unique. Simply inspecting the geohash, one can tell the exact location and physical size of the indoor cell (country, city, street, store, etc.) without needing to store cumbersome data such as the latitude and longitude. Second, many new applications (business, demographic, social, retail-centric, or other) will emerge that leverage the seamless merger of indoor and outdoor representations. Third, geohashes are hierarchical, which creates a hierarchical way of storing and abstracting data associated with the cell and working on more (or less) detailed information. Proximity searches are quick by simply inspecting the geohash. Finally, each cell represents a real-life object.
- the geohash can be used as an index to store map and non-map-related cell-specific static, dynamic, and location-based information. Even access rights to that data can be stored in association with the geohash.
- an embodiment of this invention creates a uniformly modeled and seamlessly integrated indoor and outdoor cell-based grid, wherein each cell contains much more than simply map information, and hence establishes a true digital twin of the world that changes constantly.
- the geohash is extended to represent floor and height information.
- geohash in the prior art is an index for a 2D (x and y axes) representation.
- index for a 2D (x and y axes) representation.
- special symbols ‘#’ and ‘@’ are chosen.
- level 9 geohash u173zyxe2 according to the prior art can be extended as follows:
- the latter is used more often in the system of the present invention, as the height often refers to building height, and floor indication is agnostic of the actual, possibly variable height of each floor.
- the cm option can be used for more specific cases, where precise height is important, such as rack height.
- These extensions allow geohashes to essentially represent 3D cells (using x, y, and z axes). Special symbols other than ‘#’ and ‘@’ can also be used. Without loss of generality, information other than height and floor level can be parsed from the geohash using other special symbols.
- a pathfinding algorithm is tailored for indoors and outdoors that leverages the hierarchical cells and geohashes of multiple floors and heights.
- the indoor areas are populated by structures (walls, floors, racks, etc.).
- urban areas are densely populated by human-built structures such as houses, commercial buildings, bridges, railways, underground passages, etc. Therefore, the pathfinding application must factor in presence of structures and yet must run fast.
- Interactive gaming applications model virtual environments using a grid.
- runtime pathfinding For runtime pathfinding, they rely on hierarchical cell-based vector field pathfinding algorithm (see Jansen et al., “Direction Maps for Cooperative Pathfinding,” and Durant, “Understanding Goal-Based Vector Field Pathfinding,”) that has proven to have many advantages over traditional shortest-path algorithms (such as Dijkstra) in environments with many obstacles. Although the algorithm does not use geohashes, it is ideally tailored for a grid, and therefore, a perfect match to cell-based indoor models of this embodiment. Runtime to path computations using a node-link model are cumbersome and therefore not fast enough in areas with many obstacles and variable topologies.
- the cells corresponding to structures are deleted from the grid using a computer implementation, to create a representation of clear passages (referred to as the walkway grid). Thereafter, the heatmap and vector field are generated for optimal pathfinding on walkways as it is done in computer games. Multiple floors and different height objects are easily modeled. By doing so, the pathfinding algorithm becomes applicable to single-floor, multi-floor, and underground surroundings.
- GeoJSON specified in RFC 7946 (see RFC 7946, “The GeoJSON Format,”) by Internet Engineering Task Force (IEFT) teaches how to specify an indoor object with its geo-location.
- IEFT Internet Engineering Task Force
- IMDF Indoor Mapping Data Format
- IMDF Indoor Mapping Data Format
- IMDF Indoor Mapping Data Format
- the IMDF further provides templates for attributes of indoor objects.
- U.S. Pat. No. 10,672,063 B2 provides a system for users to find the location of and best route to an item in a store using a mobile application. Although this patent describes routing, it does not describe with accurate and fine granularity the location information associated with items in the store is modeled, and how the item data is associated with location data.
- U.S. Pat. No. 9,582,826 B2 describes an indoor pathfinding application on a user's mobile phone that operates on a shopping list.
- Patent application CA2824107A1 describes another pathfinding system that is integrated with a targeted message generation system wherein the message based on the user's profile is generated to the user viewing an item.
- the information stored in the pathfinding map is static. None of this prior art relies on a geomap.
- US2003176986 A1 discloses a wheeled mobile device for spatial data collection for use in creating floor plans, maps, and models of existing spaces.
- EP2817659B1 describes a method to develop a floor plan using a handheld wireless device by the user—as the user travels from the first location to a second location indoors and captures and marks lines of travel.
- Embodiments of the present invention are an improvement over prior art systems and methods.
- the present invention provides a runtime pathfinding method for determining the shortest path between a start point and end point in a geo grid of level-n comprised of cells, comprising the steps of: (a) determining, at runtime, a first child level cell associated with the start point; (b) determining, at runtime, a second child level cell associated with the end point; (c) determining, at runtime a first shortest path between the first child level cell associated with the start point and a first parent cell edge nearest to the start point; (d) determining, at runtime a second shortest path between the second child level cell and a second parent cell edge nearest to the end point; (e) extracting a pre-computed and cached shortest path between the first nearest parent cell edge and the second nearest parent cell edge; (f) constructing, at runtime, the shortest path between the start point and the end point by adding cell paths obtained in (c), (d) and (e); and (g) outputting the constructed shortest path between the start point and
- the method further comprises mapping of an area onto the geo grid of level-n by: (a) forming the level-n grid covering the area, where n>2, the forming comprising: (1) assigning a plurality of level-1 cells to cover the area, each level-1 cell in the grid indexed by a geohash of length 1; (2) assigning a plurality of level-2 (child) cells to cover each level-1 (parent) cell, each level-2 cell indexed by another geohash of length 2, and assigning a plurality of level-3 cells to cover each level-2 cell, each level-3 cell indexed by yet another geohash of length 3, wherein assigning in (2) is repeated, when necessary, until a level-n grid is formed; (b) storing map information associated with each geohash in the level-n grid; and (c) storing non-map information associated with each geohash in the level-n grid.
- the present invention provides a system comprising: (a) a first database storing first data mapping an area onto a level-n grid, where n>2, the level-n grid formed by (1) assigning a plurality of level-1 cells to cover the area, each level-1 cell in the grid indexed by a geohash of length 1; (2) assigning a plurality of level-2 cells to cover each level-1 cell, each level-2 cell indexed by another geohash of length 2, and assigning a plurality of level-3 cells to cover each level-2 cell, each level-3 cell indexed by yet another geohash of length 3, wherein assigning in (2) is repeated, when necessary, until a level-n grid is formed; (b) a second database storing map information associated with each geohash in the level-n grid; (c) a third database storing non-map information associated with each geohash in the level-n grid; and (d) a fourth database storing cached shortest paths between parent cell edges in the level-n grid.
- FIG. 1 depicts an example of path distances (heatmap) on a grid comprised of cells according to the prior art.
- FIG. 2 depicts how vector directions are constructed on a vector field diagram according to the prior art.
- FIG. 3 illustrates optimal paths using heatmap and vector field according to the prior art.
- FIG. 4 illustrates the shortest paths according to prior art approaches.
- FIG. 5 depicts an example indoor map with two levels of geohashes according to the present invention.
- FIG. 6 depicts an optimal path on the walkway geomap according to the present invention.
- FIG. 7 depicts a high-level diagram of the components of an embodiment of the system of the present invention.
- FIG. 8 depicts a flowchart of the first exemplary method of the present invention.
- FIG. 9 depicts a flowchart of the second exemplary method of the present invention.
- FIG. 10 depicts an example of walkway geogrids of an actual venue generated by Studio Application 601 , a subsystem of the present invention.
- references to “one embodiment” or “an embodiment” mean that the feature being referred to is included in at least one embodiment of the invention. Further, separate references to “one embodiment” in this description do not necessarily refer to the same embodiment; however, neither are such embodiments mutually exclusive, unless so stated and except as will be readily apparent to those of ordinary skill in the art. Thus, the present invention can include any variety of combinations and/or integrations of the embodiments described herein.
- n cell grid there are n 2 possible goal cells and n 2 corresponding heatmaps.
- the next step is determining on each heatmap which neighboring (local) cell to move towards to reach the goal cell, given that each neighbor cell has a different distance toward the goal cell. This step is known in the prior art as the vector field generation.
- the vector (direction of movement) of cell 201 a is diagonal towards the neighbor cell labeled with distance 1 since this is the cell with the shortest distance to the goal cell.
- the vector direction for cell 201 b is downward since the neighbor cell labeled with distance 3 has the shortest distance to the goal cell.
- the vector direction for cell 201 c is diagonal since the neighbor cell labeled with distance 1 has the shortest distance to the goal cell.
- This technique applies to a multi-floor grid configuration as illustrated in 201 d wherein the vector points downward when the shortest path is downstairs.
- FIG. 3 shows the optimal paths from cells labeled 304 , 302 , and 303 towards the goal cell 301 using the heatmap and the vector field principles described above.
- FIGS. 1 - 3 are widely used in interactive computer gaming applications to calculate the shortest paths in runtime between moving game objects.
- the simulated/virtual indoors has many obstacles.
- the grids used in gaming applications are synthetically created and designed for representing a virtual environment.
- the hierarchical grid with multiple levels used in this embodiment has an actual physical context on the earth's surface.
- Cell-based vector fields can further be enriched with information stored in the cells, i.e., incrementing or decrementing a cell path distance based on some other information.
- FIG. 4 depicts a realistic map of a segment indoors wherein a solid (untraversable) structure 402 is placed in the room.
- the first step is to generate the heatmap of the walkway. The number on each cell along the walkway shows the path distance to the goal cell. Note that there are several possible paths between 401 a and 401 b , but the shortest path 403 (traced by arrows) obtained by applying the vector field approach described above is the only interest.
- Cell hierarchy enables cached optimal routes that are determined at a higher-level (parent) grid to cover long and well-known route segments.
- FIG. 5 a simple diagram of the indoors is illustrated in FIG. 5 .
- Child-level cells are preferred around structures/obstacles such as racks and shelves on which objects (such as merchandise) are placed to accurately pinpoint the location of the object.
- the pathfinding algorithm relies on a more detailed mapping of the immediate neighborhood of person 540 , shown as child-level cells in 502 (not drawn to scale). There is a plurality of non-traversable structures labeled as 501 a , . . . , 501 e , which block the linear shortest distance between cells.
- mapping of an area using multiple geohash levels enables zooming into structures to view for example an object on the structure. Furthermore, by storing information associated with the cell's geohash, one can obtain important object information (name, category, manufacturer, category, price, reviews, expiration date, etc.) while viewing the object. Storing access rights along with object data associated with the geohash enables privacy and data security. Not only static information but certain temporal information can also be stored and viewed (e.g., counts such as the number of persons at a location at a time, measurements, weather).
- the given space is pre-processed, first by dividing it into walkways contained within parent-level geohashes to enable hierarchal routing according to an aspect of the present invention.
- This representation is then used in non-real-time to compute shortest path routes between parent cell pairs (considering distances from all four edges of each parent cell) and to cache these routes.
- a graph database is used to store each parent cell, along with the shortest routes it has to all other (or selected) parent cells.
- the nodes of this graph represent the parent cells, and the lines that join them represent the shortest route across the parent cell structure between each node pair.
- These node clusters, processed from the parent cells are then joined with their neighbors, together forming a grid of the whole space.
- Cell 502 is the start parent cell.
- Cell 503 is the end parent cell.
- the arrow directions at the start and end points show the best vector field directions towards the corresponding nearest parent cell edges.
- edge 602 of parent cell 502 is obtained according to step 1 above.
- edge 601 of parent cell 503 is obtained according to step 2 above.
- the shortest path between 601 and 602 is retrieved from the cache according to step 3, above. If the endpoint is readily located on a parent cell edge, then the route can be pieced as follows:
- FIG. 7 is a high-level block diagram of a computer implementation of the system of the present invention. Note that the diagram shows various databases and logic components implementable in software or hardware. Two separate subsystems are shown:
- FIG. 7 Various logical databases 600 , 602 , 603 , 615 , and 616 are shown in FIG. 7 .
- These databases can be relational, hierarchical (e.g., LDAP), or graphical (e.g., NoSQL) depending on implementation.
- a single physical database or a plurality of physical databases may host these logical databases.
- the databases may be on a local computer, a remote computer, or in the cloud.
- the software programs can be written in any programming language such as C, C++, Java, or Phyton.
- the graphical user interface can be a touch screen, menu-driven and/or form-driven. Some software components may run on a custom application-specific integrated circuit (ASIC) or on general-purpose computer chips. All these variations of implementation are covered by this invention.
- the Client subsystem 633 is a downloadable application (e.g., from an App. Store or from a website).
- Studio Application UI 601 is a key component of invention and provides means to convert Building Information Model (BIM) and Computer-Aided Design (CAD) information of building or city plans into a detailed digital plan with relevant details such as locations of buildings, walls, concrete structures, and permanent fixtures of interest. This information must be accurately rendered.
- BIM Building Information Model
- CAD Computer-Aided Design
- the key aspect of innovation in Studio App 601 is generating an accurate geogrid with a proper indication of floors and heights (a 3D grid).
- UI 601 By mapping the geogrid, UI 601 generates a hierarchical map with multiple cell levels, say two levels with parent level (e.g., level 9) and lower level (e.g., level 9) geocells, creates geohashes for each cell, and pushes the geohashes into the geohash database. All objects are incorporated using GeoJSON objects stored in Structure Database 603 with their corresponding cell locations. For a multi-floor indoors, each floor is separately processed as described above, and the geohashes of cells are marked with an indicator of floor number to represent a layered geohash structure.
- items database 602 stores information about all items located in the store/warehouse. Items database 602 can be a separate inventory system database tracking inventory in the store/warehouse and located in another system or it can be a local copy.
- Indoor Structures database 603 stores digital rendering of all indoor or outdoor structures.
- Cells/Geohashes database 600 stores geohash information.
- Walkway Mapper 612 is an application that extracts only the walkway grids by removing structures from the grid.
- Location Mapper 605 maps items to geohashes and indoor structures. These are also stored in database 600 .
- Vector Field Mapper 613 generates vector flow directions according to all goal cells located on the walkway grid.
- Path Optimizer 614 determines the shortest paths between all parent cell pairs on the walkway grid and stores them in Cached Paths 615 which may or may not be a graph database. All these components of subsystem 690 form the foundation for various possible real-time applications. The diagram may have omitted other components that an implementor may want to add, but the basic components described in subsystem 690 suffice to teach key aspects of the system of the present invention.
- Exemplary application 632 generates the map of indoors upon request from Phone App 633 at different geohash levels.
- Real-Time Path Finder 617 calculates a path from user 630 to a selected item using cached paths and calculated path segments according to the method explained in the first embodiment. If mobile user 630 doesn't follow the optimal path, the Real-Time Path Finder 617 recalculates the path according to the current position of mobile user 630 , the new start point being the current parent and child cells (neither cell being on the original optimal path) and displays the new path on the map.
- mapping of data to geohash with associated various static and temporal information applied here to a warehouse applies without any loss of generality to other types of stores, commercial or residential buildings, parking lots, urban outdoor venues, smart cities, etc.
- the flow chart of a method of the present invention is shown in FIG. 8 .
- the method starts at step 701 wherein the geohashes are generated by Studio App 601 and stored in Geohash DB 600 .
- a plurality of levels is used.
- all static structures are rendered digitally as GeoJSON objects by Studio App 601 and stored in Structures DB 603 . Since each GeoJSON object corresponding to a structure has coordinates as attributes according to GeoJSON, they can be easily mapped onto cells of indoor map in step 704 .
- the parent cells corresponding to walkways are extracted and a map of walkways is created in step 704 along with the determination of corresponding heatmaps and vector fields using vector field mapper 613 .
- the child-level cells may be needed for accurately overlapping the structures of uneven shapes onto the geogrid.
- the lower-level grid cells of the walkway are also marked in step 705 .
- a two-level hierarchy is described, more or fewer levels may be used depending on many factors, such as the shape of the indoors, the shape and number of untraversable structures, and runtime and accuracy requirements.
- the shortest paths between parent grid cells are computed using Path Optimizer 614 and stored in Cache Paths DB 615 in step 709 .
- the flow chart of another method of invention executed by Real-Time Path Finder 617 is shown in FIG. 9 .
- the scenario is finding the path from a shopper to an item in the store.
- Step 801 is extracting the item's location in the store and its mapping to the corresponding cell and hash.
- the item is mapped onto a lower-level cell in step 802 a .
- the shopper is mapped onto a lower-level cell in step 803 a , in parallel to step 802 a or in sequence.
- steps 802 b and 803 b the optimal paths to the nearest parent edge are determined for the item and shopper, respectively.
- step 804 the cached optimal path between corresponding parent cells is determined.
- the optimal path is then obtained in step 805 by concatenating these three paths.
- FIG. 10 illustrates an exemplary rendering of an indoors using parent and child-level cells.
- the logical operations of the various embodiments are implemented as: (1) a sequence of computer-implemented steps, operations, or procedures running on a programmable circuit within a general use computer, (2) a sequence of computer-implemented steps, operations, or procedures running on a specific-use programmable circuit; and/or (3) interconnected machine modules or program engines within the programmable circuits.
- ⁇ can be implemented as software processes that are specified as a set of instructions recorded on a computer-readable storage medium (also referred to as computer-readable medium).
- a computer-readable storage medium also referred to as computer-readable medium.
- processing unit(s) e.g., one or more processors, cores of processors, or other processing units
- Embodiments within the scope of the present disclosure may also include tangible and/or non-transitory computer-readable storage media for carrying or having computer-executable instructions or data structures stored thereon.
- Such non-transitory computer-readable storage media can be any available media that can be accessed by a general-purpose or special-purpose computer, including the functional design of any special-purpose processor.
- non-transitory computer-readable media can include flash memory, RAM, ROM, EEPROM, CD-ROM or other optical disk storage, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to carry or store desired program code means in the form of computer-executable instructions, data structures, or processor chip design.
- the computer-readable media does not include carrier waves and electronic signals passing wirelessly or over wired connections.
- Computer-executable instructions include, for example, instructions and data which cause a general-purpose computer, special purpose computer, or special purpose processing device to perform a certain function or group of functions.
- Computer-executable instructions also include program modules that are executed by computers in stand-alone or network environments.
- program modules include routines, programs, components, data structures, objects, and the functions inherent in the design of special-purpose processors, etc. that perform particular tasks or implement particular abstract data types.
- Computer-executable instructions, associated data structures, and program modules represent examples of the program code means for executing steps of the methods disclosed herein. The particular sequence of such executable instructions or associated data structures represents examples of corresponding acts for implementing the functions described in such steps.
- processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer.
- a processor will receive instructions and data from a read-only memory or a random access memory or both.
- the essential elements of a computer are a processor for performing or executing instructions and one or more memory devices for storing instructions and data.
- a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks.
- a computer need not have such devices.
- a computer can be embedded in another device, e.g., a mobile telephone, a personal digital assistant (PDA), a mobile audio or video player, a game console, a Global Positioning System (GPS) receiver, or a portable storage device (e.g., a universal serial bus (USB) flash drive), to name just a few.
- PDA personal digital assistant
- GPS Global Positioning System
- USB universal serial bus
- the term “software” is meant to include firmware residing in read-only memory or applications stored in magnetic storage or flash storage, for example, a solid-state drive, which can be read into memory for processing by a processor.
- multiple software technologies can be implemented as sub-parts of a larger program while remaining distinct software technologies.
- multiple software technologies can also be implemented as separate programs.
- any combination of separate programs that together implement a software technology described here is within the scope of the subject technology.
- the software programs when installed to operate on one or more electronic systems, define one or more specific machine implementations that execute and perform the operations of the software programs.
- a computer program (also known as a program, software, software application, script, or code) can be written in any form of programming language, including compiled or interpreted languages, declarative or procedural languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, object, or other unit suitable for use in a computing environment.
- a computer program may, but need not, correspond to a file in a file system.
- a program can be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple coordinated files (e.g., files that store one or more modules, sub programs, or portions of code).
- a computer program can be deployed to be executed on one computer or on multiple computers that are located at one site or distributed across multiple sites and interconnected by a communication network.
- Some implementations include electronic components, for example, microprocessors, storage, and memory that store computer program instructions in a machine-readable or computer-readable medium (alternatively referred to as computer-readable storage media, machine-readable media, or machine-readable storage media).
- computer-readable media include RAM, ROM, read-only compact discs (CD-ROM), recordable compact discs (CD-R), rewritable compact discs (CD-RW), read-only digital versatile discs (e.g., DVD-ROM, dual-layer DVD-ROM), a variety of recordable/rewritable DVDs (e.g., DVD-RAM, DVD-RW, DVD+RW, etc.), flash memory (e.g., SD cards, mini-SD cards, micro-SD cards, etc.), magnetic or solid-state hard drives, read-only and recordable BluRay® discs, ultra density optical discs, any other optical or magnetic media, and floppy disks.
- CD-ROM compact discs
- CD-R recordable compact discs
- the computer-readable media can store a computer program that is executable by at least one processing unit and includes sets of instructions for performing various operations.
- Examples of computer programs or computer code include machine code, for example is produced by a compiler, and files including higher-level code that are executed by a computer, an electronic component, or a microprocessor using an interpreter.
- ASICs application specific integrated circuits
- FPGAs field programmable gate arrays
- integrated circuits execute instructions that are stored on the circuit itself.
- the terms “computer”, “server”, “processor”, and “memory” all refer to electronic or other technological devices. These terms exclude people or groups of people.
- display or displaying means displaying on an electronic device.
- the terms “computer-readable medium” and “computer-readable media” are entirely restricted to tangible, physical objects that store information in a form that is readable by a computer. These terms exclude any wireless signals, wired download signals, and any other ephemeral signals.
- any specific order or hierarchy of steps in the processes disclosed is an illustration of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the processes may be rearranged, or that all illustrated steps be performed. Some of the steps may be performed simultaneously. For example, in certain circumstances, multitasking and parallel processing may be advantageous. Moreover, the separation of various system components illustrated above should not be understood as requiring such separation, and it should be understood that the described program components and systems can generally be integrated together in a single software product or packaged into multiple software products.
- a phrase, for example, an “aspect” does not imply that the aspect is essential to the subject technology or that the aspect applies to all configurations of the subject technology.
- a disclosure relating to an aspect may apply to all configurations or one or more configurations.
- a phrase, for example, an aspect may refer to one or more aspects and vice versa.
- a phrase, for example, a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology.
- a disclosure relating to a configuration may apply to all configurations, or one or more configurations.
- a phrase, for example, a configuration may refer to one or more configurations and vice versa.
Landscapes
- Engineering & Computer Science (AREA)
- Radar, Positioning & Navigation (AREA)
- Remote Sensing (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Processing Or Creating Images (AREA)
Abstract
Description
-
- u173zyxe2#221=> indicates that the cell is at a height of 221 cm.
- u173zyxe2@2=> indicates that the cell is on the 2nd floor. A negative floor value indicates under-ground.
-
- 1. Determine in runtime the shortest route between the start point (on the start-parent) and its nearest parent-cell edge using its child-level map of the start-parent cell. This computation is performed on a small 32×32 grid, and therefore very quick.
- 2. Determine in runtime the shortest route between the endpoint (on the end-parent) and the nearest parent-cell edge using the child level map of the end-parent cell. This computation is performed on a small 32×32 grid, and therefore very quick.
- 3. Retrieve the cached shortest route across the parent level map between the start-parent and end-parent cells. No computation is required since the route is determined beforehand and cached.
-
- 1. Determine in runtime the shortest route between the start point (on the start-parent) and its nearest parent-cell edge using its child level map of the parent cell only. This computation is performed on a small 32×32 grid, and therefore very quick.
- 2. Retrieve the cached shortest route across the parent level map between the start-parent and end-parent cells. No computation is required since this route is determined beforehand and cached.
-
- (i)
Server subsystem 690 that maps the indoors into a multiple-level grid using geohashes, and stores associated data. This subsystem has several other components (a) studio application that generates indoors or outdoors grid, (b) heatmap and vector field generator, (c) parent-level path optimizer, and (d) real-time pathfinder. - (ii)
Client subsystem 633 that is illustrated on a mobile smartphone. This application with a graphical user interface leverages the intelligence and data ofsubsystem 690 that models indoors or outdoors. An exemplary intelligent application is real-time pathfinder 617. However, many other intelligent applications (such as asset or people tracking) can leverage components ofsystem 690 and offer different services tomobile user 630.Client subsystem 633 may also be on a stationary computer.
- (i)
Claims (17)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US17/866,416 US12072192B2 (en) | 2021-07-15 | 2022-07-15 | System and method for geomodelling and pathfinding |
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202163222146P | 2021-07-15 | 2021-07-15 | |
| US17/866,416 US12072192B2 (en) | 2021-07-15 | 2022-07-15 | System and method for geomodelling and pathfinding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| US20230015235A1 US20230015235A1 (en) | 2023-01-19 |
| US12072192B2 true US12072192B2 (en) | 2024-08-27 |
Family
ID=84892038
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| US17/866,416 Active 2043-02-15 US12072192B2 (en) | 2021-07-15 | 2022-07-15 | System and method for geomodelling and pathfinding |
Country Status (1)
| Country | Link |
|---|---|
| US (1) | US12072192B2 (en) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12189915B2 (en) | 2022-06-24 | 2025-01-07 | Lowe's Companies, Inc. | Simulated environment for presenting virtual objects and virtual resets |
| US12211161B2 (en) | 2022-06-24 | 2025-01-28 | Lowe's Companies, Inc. | Reset modeling based on reset and object properties |
| US20240095656A1 (en) * | 2022-09-15 | 2024-03-21 | Uber Technologies, Inc. | Systems and Methods for Generating and Utilizing Dynamic Isochrones for Delivery |
| US12430856B2 (en) | 2022-12-16 | 2025-09-30 | Lowe's Companies, Inc. | Compact augmented reality view experience |
| CN119322811B (en) * | 2024-10-11 | 2025-10-10 | 湖南先进技术研究院 | Digital twin city generation method based on grid segmentation coding |
Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030176986A1 (en) | 2002-03-14 | 2003-09-18 | Jeanne Dietsch | Spatial data collection apparatus and method |
| US20090043504A1 (en) | 2007-05-31 | 2009-02-12 | Amrit Bandyopadhyay | System and method for locating, tracking, and/or monitoring the status of personnel and/or assets both indoors and outdoors |
| US8694603B2 (en) | 2011-06-20 | 2014-04-08 | International Business Machines Corporation | Geospatial visualization performance improvement for contiguous polylines with similar dynamic characteristics |
| US9535927B2 (en) | 2013-06-24 | 2017-01-03 | Great-Circle Technologies, Inc. | Method and apparatus for situational context for big data |
| US9582826B2 (en) | 2012-01-23 | 2017-02-28 | Bank Of America Corporation | Directional wayfinding |
| EP2817659B1 (en) | 2012-02-24 | 2018-05-30 | Google LLC | System and method for mapping an indoor environment |
| US20200159701A1 (en) | 2012-11-12 | 2020-05-21 | Samsung Electronics Co., Ltd. | Method and apparatus for managing storage space on storage device in an electronic apparatus by using context data and user profile data |
| US10672063B2 (en) | 2013-08-15 | 2020-06-02 | Frank Daly Ward | Indoor location mapping and wayfinding system |
-
2022
- 2022-07-15 US US17/866,416 patent/US12072192B2/en active Active
Patent Citations (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20030176986A1 (en) | 2002-03-14 | 2003-09-18 | Jeanne Dietsch | Spatial data collection apparatus and method |
| US20090043504A1 (en) | 2007-05-31 | 2009-02-12 | Amrit Bandyopadhyay | System and method for locating, tracking, and/or monitoring the status of personnel and/or assets both indoors and outdoors |
| US8694603B2 (en) | 2011-06-20 | 2014-04-08 | International Business Machines Corporation | Geospatial visualization performance improvement for contiguous polylines with similar dynamic characteristics |
| US9582826B2 (en) | 2012-01-23 | 2017-02-28 | Bank Of America Corporation | Directional wayfinding |
| EP2817659B1 (en) | 2012-02-24 | 2018-05-30 | Google LLC | System and method for mapping an indoor environment |
| US20200159701A1 (en) | 2012-11-12 | 2020-05-21 | Samsung Electronics Co., Ltd. | Method and apparatus for managing storage space on storage device in an electronic apparatus by using context data and user profile data |
| US9535927B2 (en) | 2013-06-24 | 2017-01-03 | Great-Circle Technologies, Inc. | Method and apparatus for situational context for big data |
| US10672063B2 (en) | 2013-08-15 | 2020-06-02 | Frank Daly Ward | Indoor location mapping and wayfinding system |
Non-Patent Citations (6)
| Title |
|---|
| "Geohash," Wikipedia, <https://en.wikipedia.org/wiki/Geohash#References>, pp. 1-11. |
| "Indoor Mapping Data Format (IMDF)—Overview," <https://register.apple.com/resources/imdf/, Oct. 19, 2021, v1.0.0, pp. 1. |
| "Indoor Positioning System (IPS)," Wikipedia, <https://en.wikipedia.org/wiki/indoor_positioning_system#References>, pp. 1-15. |
| Butler et al., "The GeoJSON Format," Internet Engineering Task Force (IEFT) RFC 7946, Aug. 2016, pp. 1-28. |
| Durant, "Understanding Goal-Based Vector Field Pathfinding," <https://gamedevelopment.tutsplus.com/tutorials/understanding-goal-based-vector-field-pathfinding-gamedev-9007>, Jul. 5, 2013, pp. 1-11. |
| Jansen et al., "Direction Maps for Cooperative Pathfinding," Proceedings of the Fourth Artificial Intelligence and Interactive Digital Entertainment Conference, 2008, 4(1), pp. 185-190. |
Also Published As
| Publication number | Publication date |
|---|---|
| US20230015235A1 (en) | 2023-01-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US12072192B2 (en) | System and method for geomodelling and pathfinding | |
| Goetz | Towards generating highly detailed 3D CityGML models from OpenStreetMap | |
| CN106980633B (en) | Indoor map data generation method and device | |
| Lee | A three-dimensional navigable data model to support emergency response in microspatial built-environments | |
| US20210176726A1 (en) | Methods and systems for making a determination of whether a mobile device is positioned indoors or outdoors | |
| CN106403925B (en) | The spatial network construction and paths planning method to navigate in faced chamber with the underground space | |
| Yan et al. | A unified 3D space-based navigation model for seamless navigation in indoor and outdoor | |
| EP3795950B1 (en) | Method and apparatus for providing an indoor pedestrian origin-destination matrix and flow analytics | |
| CN106713380A (en) | Position sensing based information sharing, pushing and exchanging system | |
| CN106469339A (en) | A kind of around geographic information application and provide the system of infrastructure service | |
| Yan et al. | Navigation network derivation for QR code‐based indoor pedestrian path planning | |
| Bansal | Use of geographic information systems in spatial planning: A case study of an institute campus | |
| Sabri et al. | A multi-dimensional analytics platform to support planning and design for liveable and sustainable urban environment | |
| Dutta et al. | Development of CityGML application domain extension for indoor routing and positioning | |
| Rahman et al. | Manifestation of lattice topology data model for indoor navigation path based on the 3D building environment | |
| Biba et al. | Who can access transit? Reviewing methods for determining population access to bus transit | |
| Singh et al. | Dynamic shortest route finder using pgRouting for emergency management | |
| KR102374342B1 (en) | Food waste management support apparatus and method | |
| Li et al. | A Landmark-based cognition strength grid model for indoor guidance | |
| Ariyanto et al. | A Web and Mobile GIS for Identifying Areas within the Radius Affected by Natural Disasters Based on OpenStreetMap Data. | |
| Yan et al. | An indoor service area determination approach for pedestrian navigation path planning | |
| Atila et al. | Integration of CityGML and Oracle Spatial for implementing 3D network analysis solutions and routing simulation within 3D-GIS environment | |
| Mao et al. | Bike-sharing dynamic scheduling model based on spatio-temporal graph | |
| Fadli | Two-graph building interior representation for emergency response applications | |
| Liu et al. | A spatial data model for accessibility with indoor temporal changes |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| FEPP | Fee payment procedure |
Free format text: ENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITY |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: DOCKETED NEW CASE - READY FOR EXAMINATION |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: NOTICE OF ALLOWANCE MAILED -- APPLICATION RECEIVED IN OFFICE OF PUBLICATIONS |
|
| ZAAA | Notice of allowance and fees due |
Free format text: ORIGINAL CODE: NOA |
|
| ZAAB | Notice of allowance mailed |
Free format text: ORIGINAL CODE: MN/=. |
|
| AS | Assignment |
Owner name: UNL NETWORK B.V., NETHERLANDS Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNOR:VAN DER HEIJDEN, XANDER;REEL/FRAME:068014/0177 Effective date: 20240717 |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT RECEIVED |
|
| STPP | Information on status: patent application and granting procedure in general |
Free format text: PUBLICATIONS -- ISSUE FEE PAYMENT VERIFIED |
|
| STCF | Information on status: patent grant |
Free format text: PATENTED CASE |