A path finding method and system

The path finding method and system address indoor navigation challenges by appending nodes to a node graph within candidate spaces, using algorithms to generate efficient paths, ensuring users reach their destinations without obstacles, and accommodating accessibility needs.

WO2026015926A1PCT designated stage Publication Date: 2026-01-22ART PROCESSORS PTY LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
PCT/AU2025/050715
Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
Priority Date
2024-07-16
Filing Date
2025-07-03
Publication Date
2026-01-22

AI Technical Summary

Technical Problem

Indoor navigation systems face challenges in accurately guiding users between arbitrary locations within buildings due to limitations in node graphs, often leading to inefficient or impossible paths that may involve traversing through walls or away from the intended destination.

Method used

A path finding method and system that identifies candidate spaces and nodes within a building, appending origin and destination nodes to a node graph while avoiding boundaries, and using algorithms like Dijkstra's to generate efficient navigation paths, considering accessibility and desirability modifiers.

Benefits of technology

Provides accurate and efficient navigation paths between arbitrary locations in buildings, avoiding obstacles and ensuring users reach their destinations without frustration, while accommodating accessibility needs.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure AU2025050715_22012026_PF_FP_ABST
    Figure AU2025050715_22012026_PF_FP_ABST
Patent Text Reader

Abstract

A method of path finding for navigation comprising receiving data defining a plurality of spaces of at least one building, receiving at least one node graph, wherein the node graph contains connections between nodes that are indicative of paths for navigation, receiving at least one origin node from a portable device of a user, determining an origin candidate space for the origin node, wherein the origin candidate space contains the origin node and at least one candidate node, appending the origin node to each candidate node within the origin candidate space provided the connection from the origin node to the candidate nodes does not intersect a boundary of the origin candidate space, determining a navigation path from the origin node to the node graph using one of the candidate nodes dependent on an end location, and communicating the navigation path to the portable device of the user.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] A PATH FINDING METHOD AND SYSTEM

[0002] 1. FIELD OF THE TECH NOLOGY

[0003] The present technology generally relates to a path finding method and system for navigation.

[0004] 2. BACKGROUND TO THE TECHNOLOGY

[0005] Path finding within buildings often provides more challenges than outdoor navigation. Whilst outdoor navigation typically assumes a 2D map, building navigation may need to take into account multiple building levels of a 3D space and it may be more difficult to locate a person within a building. Indoor navigation systems currently exist, however, there are limitations in the accuracy of the system given a more confined building environment as opposed to outdoor navigation systems that utilise GPS. Node graphs are often utilised to provide potential pathways for a user to travel along in a navigation system, however, these systems often place the onus on the user to travel from arbitrary locations to the predefined node graph. As such, there are deficiencies in travelling to or from arbitrary locations in map. Some systems may attempt to find the closest node in the node graph, however, this may result in a suggestion that a user travel through walls or levels or being instructed to travel away from their intended destination in order to join the node graph. This can lead users to become frustrated with navigation systems.

[0006] Accordingly, there is a need for an improved path finding method and system, or at least a method and system that provides an alternative.

[0007] 3. SUMMARY OF THE TECHNOLOGY

[0008] According to one embodiment of the technology there is provided a method of path finding for navigation comprising: receiving data defining a plurality of spaces of at least one building; receiving at least one node graph, wherein the node graph is a graph which has a plurality of nodes corresponding to locations within the spaces, wherein the node graph contains connections between nodes that are indicative of paths a user can use for navigation; receiving at least one origin node from a portable device of a user, wherein the origin node is indicative of a starting location for path finding; determining an origin candidate space for the origin node, wherein the origin candidate space contains the origin node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; appending the origin node to each candidate node within the origin candidate space provided the connection from the origin node to the candidate nodes does not intersect with a boundary of the origin candidate space; determining a navigation path from the origin node to the node graph using one of the candidate nodes dependent on an end location; and communicating the navigation path from the origin node to the node graph to the portable device of the user.

[0009] According to another embodiment of the technology, the method further comprises: receiving a destination node, wherein the destination node is indicative of the end location for path finding; determining a destination candidate space, wherein the destination candidate space of the destination node contains the destination node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; appending the destination node to each candidate node within the destination candidate space provided the connection from the destination node to the candidate nodes does not intersect with a boundary of the destination candidate space; determining a navigation path from the origin node to the destination node; and communicating the navigation path from the origin node to the destination node to the portable device of the user.

[0010] According to another embodiment of the technology, the method further comprises: generating intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and appending the origin node to at least one intersection node of the respective candidate space of the origin node.

[0011] According to another embodiment of the technology, the method further comprises: generating intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and appending the destination node to at least one intersection node of the respective candidate space of the destination node.

[0012] According to another embodiment of the technology, the origin node is selected by the user on the portable device of the user.

[0013] According to another embodiment of the technology, the destination node is selected by the user on the portable device of the user. According to another embodiment of the technology, the method further comprises receiving data associated with properties of each node of the node graph, wherein the properties of each node comprise a unique id, location coordinates and outbound connections to adjacent nodes.

[0014] According to another embodiment of the technology, the data associated with properties of each node of the node graph further comprises at least one of an accessibility flag, wherein the accessibility flag provide information regarding accessibility of a node.

[0015] According to another embodiment of the technology, the data associated with properties of each node of the node graph further comprises a desirability modifier, wherein the desirability modifier represents a weighted value that makes the node more or less desirable than other nodes.

[0016] According to another embodiment of the technology, the node graph of a building comprises multiple floor node graphs.

[0017] According to another embodiment of the technology, the multiple floor node graphs are connected to each other by at least one connection between at least one node of at least one other floor node graph.

[0018] According to another embodiment of the technology, at least one node of a floor node graph is connected in parallel to at least one node of at least two different floor node graphs.

[0019] According to another embodiment of the technology, wherein the data defining a plurality of spaces of at least one building comprises: a unique building id; and a 2D boundary defining the building boundary.

[0020] According to one embodiment of the technology there is provided a path finding system comprising: a server receiving data over a network, the server configured to: receive data defining a plurality of spaces of at least one building; receive at least one node graph, wherein the node graph is a graph which has a plurality of nodes corresponding to locations within the spaces, wherein the node graph contains connections between nodes that are indicative of paths a user can use for navigation; receive at least one origin node from a portable device of a user, wherein the origin node is indicative of a starti ng location for path finding; determine an origin candidate space for the origin node, wherein the origin candidate space contains the origin node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; append the origin node to each candidate node within the origin candidate space provided the connection from the origin node to the candidate nodes does not intersect with a boundary of the origin candidate space; determine a navigation path from the origin node to the node graph using one of the candidate nodes dependent on an end location; and communicate the navigation path from the origin node to the node graph to the portable device of the user.

[0021] According to another embodiment of the technology, the path finding system further comprises: at least one communication unit configured to send current location information to the portable device of the user.

[0022] According to another embodiment of the technology, the server is further configured to: receive a destination node, wherein the destination node is indicative of the end location for path finding; determine a destination candidate space, wherein the destination candidate space of the destination node contains the destination node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; append the destination node to each candidate node within the destination candidate space provided the connection from the destination node to the candidate nodes does not intersect with a boundary of the destination candidate space; determine a navigation path from the origin node to the destination node; and communicate the navigation path from the origin node to the destination node to the portable device of the user.

[0023] According to another embodiment of the technology, the server is further configured to: generate intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and append the origin node to at least one intersection node of the respective candidate space of the origin node.

[0024] According to another embodiment of the technology, the server is further configured to: generate intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and append the destination node to at least one intersection node of the respective candidate space of the destination node.

[0025] Further aspects of the technology, which should be considered in all its novel aspects, will become apparent to those skilled in the art upon reading of the following description which provides at least one example of a practical application of the technology. 4. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] One or more embodiments of the technology will be described below by way of example only, and without intending to be limiting, with reference to the following drawings, in which:

[0027] Figure 1 is a diagram depicting a path finding system of an embodiment.

[0028] Figure 2 is a diagram depicting the interactions of the path finding system.

[0029] Figure 3 is a diagram depicting example components of a portable device.

[0030] Figures 4A and 4B show a flow chart depicting the path finding method of an embodiment.

[0031] Figure 5 is a diagram depicting an example of candidate spaces and candidate nodes.

[0032] Figure 6 is a diagram depicting a further example of candidate spaces and candidate nodes.

[0033] Figure 7 is a diagram depicting a further example of candidate spaces and candidate nodes.

[0034] Figure 8 is a diagram depicting an example of candidate spaces and candidate nodes of a node graph.

[0035] Figure 9 is a diagram depicting a further example of candidate spaces and candidate nodes of a node graph.

[0036] Figure 10 is a diagram depicting an example of node graph representing stair and escalator connections.

[0037] Figure 1 1 is a diagram depicting a n example of node graph representing elevator connections.

[0038] Figure 12 is a diagram depicting a small gap between spaces.

[0039] Figure 13 is a diagram depicting a large gap between spaces.

[0040] Figure 14 is a diagram depicting a transition from a large space to a smaller space.

[0041] Figure 15 is a diagram depicting a transition from a small space to a larger space.

[0042] Figure 16 is a diagram depicting a node graph and how connections are formed to the node graph.

[0043] 5. BRIEF DESCRIPTION OF EXEMPLARY FORMS OF THE TECHNOLOGY

[0044] As explained in more detail below, a path finding method of an example of the technology operates in a path finding system that is accessible using a portable device by a user (e.g. via a user's mobile device). In the context of indoor navigation, a user may wish to travel from where they are in a room to another location within the building. To do so, an interface on the portable device is made available for the user to select their starting location, either based on their current location or a location selected via a map or via a keyword search. Their destination or end location can be selected in a similar way. The start and end location selected by the user is received by a server which processes that information and joins the start and end locations (as necessary) to a node graph defining movement paths through the building, and then uses the enriched node graph to generate a navigation route that can be provided to the user. The navigation route describes how to navigate from the entered starting location to the entered destination. Therefore, a user can traverse from an unknown location in the building join a path (predefined by the node graph) to another point in the building before departing the predefined path to travel to the entered destination. As an example, a user may utilise the path finding method to travel from a random point in a room of a museum to a known statue in a different room of the museum.

[0045] 5.1. Path Finding Method

[0046] Fig. 1 depicts an embodiment of a path finding system and shows the connections between the components of the path finding system 100. A server 140 comprises a building information database 122 and path finding module 124 which executes a path finding algorithm. In this embodiment, network 160 is a WiFi network and server 140 communicates with portable devices 1 10 via the WiFi network 160 which is connected to portable device 1 10 which may be a user's mobile device (e.g. a cell phone). It can also be understood that the network 160 may also be any other form of a network that provides a link between the server 140 and portable device 1 10 such as the internet (via a cellular network or otherwise). As the server 140 has the building information database 122 and path finding module 124, information from these components may be sent via the network 160 to the portable device 1 10. Communication units 180 may be WiFi routers or Bluetooth waypoints that serve to provide location information to the portable device 110. However, in another form, the communication units 180 may also be utilised to provide location data to the portable device 1 10.

[0047] In another embodiment, there may be no communication units 180. Where a user is interested in viewing a potential navigation route rather than physically navigating the route simultaneously with the navigation route on their portable device 1 10, they can instead define the start and end location themselves. This process can be performed with or without the communication units 180 as it does not require the current location, since the user can enter the start and end location instead. To do so, the building information database 122 of the server 140 sends building map data to the portable device, from which the user can select a starting location and end location based on the map. This process would also be available even if the communication units 180 are present, as such, the user may choose a start location based on their current location or manually select it from the map of the building on the portable device 1 10. The end location would also be selectable through the map of the portable device 110. In another embodiment, the path finding module 124 may be downloaded and operate on the portable device 110. After receiving information from the server 140 comprising a node graph for a relevant building from the building information database 122, the portable device can utilise the path finding module 124 without requiring additional information from the server 140 via the network 160.

[0048] Fig. 2 depicts the interactions between the components of the path finding method's system. From the server 140, building space and level data is stored in the building information database 122 which allows building map data 210 to be sent from the server 140 to the portable device 110 via the network 160 (network 160 shown in Fig. 1 ). In this embodiment, the communication units 180 provide current location data 240 to the portable device 1 10 for navigation. The location data 220 shared from the portable device 1 10 to the server 140 is utilised to identify or receive a start location for navigation. In this embodiment, the current location data 240 may serve to provide the starting location for navigation or may also be used to determine the building the user is located in to provide the corresponding building map data 210 automatically. The portable device may also have components onboard capable of determining a current location for determining the building location, such as a GPS unit. The user may also be able to select the starting and end location themselves, this may be entered via a map on the portable device 1 10 based on the building map data 210, or typed manually via a word search of locations within the building, as well as other known methods of location selection. Once this location data 220 is sent from the portable device 1 10 to the server 140, the path finding module 124 processes the location data 220 and outputs navigation paths 230 to the portable device 1 10 which are used for navigation from the start location to end location.

[0049] In Fig. 3, example components of the portable device 1 10 are depicted. The portable device 1 10 comprises a microprocessor 202, RAM 304, flash memory 306, display 308, RF transceiver 310, GPS unit 312, accelerometer 314, gyroscope 318, magnetometer 318, speaker 320, microphone 322, and Bluetooth unit 324.

[0050] 5. 1. 1. Node Graphs

[0051] The path finding method utilises a model of a building and data of spaces and levels of a building. Each model will typically be defined for a building through a configuration process. A node graph may then be created by a person or generated by a program based on the model of a building and data of spaces and levels of a building. The data of the spaces and levels describes various architectural and experiential spaces and rooms in which a person could be standing, further including the indoor and outdoor levels of a building. The model may be arranged such that the levels are in a stacking order. As such, the node graph is arranged as connected nodes in stacked levels within the various buildings, providing a predefined transition between spaces free of obstacles (e.g. walls); and levels (e.g. via stairs). The node graph of the building provides various points to which a person may travel to through a navigation path where the transition between spaces represents a doorway or opening; and the transition between levels represents an elevator / lift, escalator, ramp or stairs.

[0052] Fig. 16 shows an illustrative node graph 1600 of a building, having nodes 1610, 161 1, 1612, 1613, 1614, 1615, 1616, 1617, 1618 represent nodes of the building's node graph 1600. The connections between the nodes 1610, 161 1, 1612, 1613, 1614, 1615, 1616, 1617, 1618 are referred to as edges and represent paths. Nodes 1610-1615 are contained within space 1601 . Nodes 1610 and 1611 are contained within spaces 1601 and 1602. Nodes 1612-1615 are contained within spaces 1601 and 1603. Nodes 1616 and 1617 are contained within space 1604. Node 1618 is contained within space 1605.

[0053] 5. 1.2. Nodes

[0054] In the node graphs based on the buildings, each node represents a 2D location, wherein the properties of each node comprise at least a unique node ID, a number of levels the node appears on (referenced by ID), and a list of outbound connections to other nodes (by their unique node ID). Additionally, further node properties may include accessibility flags (wheelchair accessible, high-sensitivity, etc.) and desirability modifiers (represented as a static offset in the weight). The connections, otherwise known as edges, between nodes represent a path between the locations of the nodes, which also include the distance or time of each connection between the nodes. The edges can be unidirectional or bidirectional, meaning that depending on the path / edge, a user may be able to travel back and forth (bidirectional) or may be restricted to one direction (unidirectional). The edges may be a straight line. Alternatively, the edges may be a curved line.

[0055] 5. 1.3. Spaces and Levels

[0056] The spaces and levels of a building may be stored in an Indoor Mapping Data Format (IMDF) format which is encoded in GeoJSON, however, they may also be stored in any other format suitable for indoor navigation, including spaces and levels designed and constructed by hand. Levels may also include areas that are either indoor or outdoor. As such, the graph may graph may traverse empty areas - e.g. outdoors or not covered by spaces. In the data of the spaces and levels of a building, 2D boundaries may be established to define spaces. Spaces may be any area of a map, however, they are often used to define rooms, architectural spaces or experiential spaces of a building. Spaces may be represented by polygons with areas (e.g. polygonal IMDF feature); this may help with sorting spaces by their areas (e.g. largest to smallest). Whilst spaces can be used to define accessible spaces for wayfinding, they can be used inversely to define spaces that are inaccessible for wayfinding. The spaces are also defined by unique IDs that can be utilised by nodes to indicate which spaces they exist within. The spaces of a building may be contained in a single level of a building, or may span across multiple levels, such as in multi-level spaces. The levels on which these spaces appear are referenced by a unique ID for each level. In particular, a level index or stacking index may be utilised in various properties of nodes and spaces to define the level upon which they exist.

[0057] This data can be formed into a map and presented to a user. For example, Figs. 8 and 9 each show a portion of a map. The map may then be utilised by the user to select a start and end location.

[0058] In Fig. 4a and Fig. 4b, a flow chart outlines the steps of the path finding method 400 and assumes that a map of the building has already been provided to user portable device 1 10. In an example, the portable device could be pre-configured with the map, for example, if a visitor to a location is provided with a portable electronic device. In another example, the map may downloaded onto a user's own portable device, e.g. by downloading an application or accessing a web page corresponding to the building being visited. The first step for the path finding method requires that the server receives a navigation request comprising a start location and an end location 405. The start destination may be based on the current location data 240 of the portable device 1 10. Alternatively, the user may also be able to select the start location themselves, this may be entered via a map on the portable device 1 10 based on the building map data 210, or typed manually via a word search of locations within a building, as well as other known methods of location selection. The map on the portable device 1 10 presents an interface for selecting a location by either pressing on a location on a screen of the portable device 1 10, or by pressing predefined nodes of the node graph that may be represented as landmarks. Other known implementations of map interfaces may also be used where they provide the ability to select start or end locations on a map. The end location may be selected by the user in a similar means or may be preset to a certain location.

[0059] At step 410, the server 140 accesses the building information database 122 to retrieve data of spaces and levels of a building based on the location input from the portable device 140. In step 415, a node graph corresponding to the building is received from the building information database 122. Steps 410 and 415 relate to a configuration phase. The configuration phase may also occur offline in order to reduce the time necessary to determine the necessary building data and corresponding node graph. The server 140 may have already preset a default building upon which the spaces and levels of the building are used for navigation (e.g. the method is implemented in a website / application for navigation in a specific building).

[0060] 5. 1.4. Joining origin and destination nodes to the node graph

[0061] The provided node graph of the building provides a known network of paths in which a user can take. However, it does not describe how to travel between any two arbitrary points in space. In order to enable the user to do so, the two arbitrary points, an origin node and a destination node, are appended to the node graph to represent a start and end location respectively. In the example, Fig. 16, an origin node 1630 defines a starting point from which a path can be found. Similarly, a destination node 1640 defines an end point at which the path can finish. In this example, the origin node 1630 and destination node 1640 are not part of the original node graph and it is necessary to append them to the node graph 1600. When appending the origin and destination nodes, they should not pass through a wall and should not result in a visitor walking away from their next logical node, e.g. walking in a hook or circle rather than walking straight to the next logical node. Further, the origin or destination node should join the node graph on the correct level of the building if the building has multiple levels. For example, an origin node on level 1 should join the node graph on level 1 , and if the destination node is on level 3 then it should join the node graph on level 3. Whilst the origin and destination nodes may be arbitrary points, in some examples, one or both of them may be a known node of the node graph of the building. For example, someone from an arbitrary starting point may travel to a known location of the node graph. In this case, someone may in travel from a random location within a room and then travel to a known location of the building that is available on the node graph, e.g. an artwork in a museum. Therefore, it is expected that someone may travel from an arbitrary location to an arbitrary location, an arbitrary location to a known location, a known location to an arbitrary location, or a known location to a known location. In the case of a known location to a known location, the origin node and / or destination node will not need to be appended to the graph since the node already exists on the node graph of the building. Accordingly, only arbitrary locations need to be appended to the node graph. Where the case is that the start and end locations are known locations, then a path finding algorithm may be utilised on the provided node graph to find a navigation path. Wherein there is an arbitrary location and a known location, only the arbitrary location is appended to the node graph.

[0062] At step 420, the method checks whether the start location received in 405 is a node of the graph, if yes, then an origin node is set based on the a node of a node graph of step 415 upon which the starting location is located (step 422), if no, then an origin node is set to the starting location that was received (step 424). In step 430, similar to step 420, the method checks whether the end location received in step 405 is a node of the node graph received in step 415. If yes, (i.e. the end location is a node of the node graph) (step 432), then a destination node is set based on the node of a node graph of step 415 upon which the starting location is located (step 432). If no, i.e. the end location is not a node of the node graph, then a destination node is set based on the end location received in step 405 (step 434). Steps 420-434 check whether the starting or end location exist on the node graph already, if so, it assigns the origin or destination node as the corresponding node of the node graph, otherwise it will create an origin or destination node at the arbitrary location as determined by the start or end location data received in step 405. This process prevents the path finding method from generating origin or destination nodes where it is unnecessary, and allows it to utilise pre-existing nodes of the node graph to define the origin or destination node. Therefore, nodes of the node graph, such as nodes that may represent landmarks within a building may be utilised to initialise a start or end location for the origin and destination node respectively.

[0063] In the pathfinding method, the process of joining the path comprises three main steps: finding a candidate space, finding candidate nodes, and finding possible intersection nodes with nodes out of the candidate space. The origin node and destination node are also referred to as search waypoints. Accordingly, these steps occur for each search waypoint, whether it is the origin node, destination node, or both. The path finding method allows the search waypoint to identify and append to appropriate nodes of the node graph and append to appropriate intersections between a candidate node and nodes outside of the candidate space. The path finding method is also able to filter nodes and edges based on properties such as accessibility settings.

[0064] 5.1.4.1. Finding a candidate space

[0065] A candidate space is a space that contains a search waypoint, either the origin node or destination node that is currently being processed, as well as at least one node of the node graph. The candidate spaces are formed for each of the origin and destination node, respectively referred to as an origin candidate space and a destination candidate space. The boundaries of the spaces are not crossed except at places where the predefined node graph crosses (e.g. doors and openings). Typically, a space may be constricted to a room and bound by the walls of the room. Alternatively, it may represent spaces that a map designer intends to be separated from other locations that may not be bound by walls (e.g. an outdoor theatre area without walls or a special zone). It is preferable to find a candidate space that is the smallest possible candidate space containing the origin or destination nodes as well as at least one node of the node graph. Candidate spaces are assumed to be free of barriers and obstacles the user cannot easily navigate around, ensuring that a user can safely join the node graph without crossing an uncrossable barrier. When joining a search waypoint to the node graph, there are some considerations that apply for the properties of a candidate space. A candidate space must share the same level with the respective search waypoint, meaning that the origin candidate space must be on the same level containing the origin node, and the destination candidate space must be on the same level containing the destination node. A candidate space must contain the respective origin or destination nodes, meaning that the origin candidate space must contain the origin node, and destination candidate space must contain the destination node. A candidate space must also contain at least one node from the node graph. The chosen candidate space should be the smallest possible candidate area meeting these criteria. In the example of Fig. 16 origin node 1630 is the starting point, and hence space 1602 is treated as the origin candidate space since it contains the origin node 1630 and is the smallest space containing the origin node 1630 and at least one node from the graph (1610, 1611 ). In contrast, while space 1601 contains the origin node 1630 and at least one node from the graph (1610, 1611, 1612, 1613, 1614, 1615), it is not the smallest space that fulfils these requirements since space 1602 is smaller and contained within space 1601. Similarly, destination node 1640 is contained within space 1605 which is treated as the destination candidate space since it contains the destination node 1640 and is the smallest space containing the destination node 1640 and at least one node from the graph (1618).

[0066] At step 440, the path finding module 124 of the server 140 determines a candidate space for each of the origin and destination nodes where necessary.

[0067] Fig. 5 shows an illustrative example where there are three spaces A 510, B 520 and C 530, of which spaces A 510 and B 520 are a sub-space of space C 530. Space A 510 contains the search waypoint 500 and a node 540 of the node graph. Space B 520 contains another node 550 of the node graph but does not contain the search waypoint 500. Space C 530 contains all of spaces A 510 and B 520 but does not have any nodes outside of spaces A 510 and B 520. Based on the candidate space requirements, only spaces containing the search waypoint 500 and another node of the node graph are defined as candidate spaces. Accordingly, spaces A 510 and C 530 are considered candidate spaces as they contain the search waypoint 500 and at least one node of the node graph. Since space A 510 is the smallest space that fulfils the candidate space requirements, space A 510 becomes the chosen candidate space. In Fig. 6, the same spaces are present as in Fig. 5, however, the node 650 of the node graph is now in space C 630 outside of spaces A 610 and B 620. In this case, since space A 610 no longer contains a node of the node graph, space A 610 is no longer considered a candidate space. Consequently, space C 530 becomes the chosen candidate space as it is now the smallest candidate space available which contains the search waypoint 600 and at least one node of the node graph. 5.1.4.2. Finding candidate nodes

[0068] A candidate node is a node of the node graph that is within the respective candidate space of the search waypoint and is not the respective search waypoint. At step 445, candidate nodes are determined for each of the candidate spaces. In step 450, the origin node and destination node are appended to the candidate nodes of respective candidate spaces provided that the connection does not intersect with a boundary of the respective candidate spaces (i.e. origin node is connected to candidate nodes in the origin candidate space, and destination node is connected to candidate nodes in the destination candidate space). If a line from a search waypoint to a candidate node intersects the boundary or one or more holes (e.g. void areas within a space) of a respective candidate space - or any polygonal feature fully contained within the candidate space (e.g. objects contained within a space) - then this candidate node may be rejected. For example, in an L shaped space, the search waypoint may be on one end of the L shaped space, wherein a candidate node may be on the other end of the L shaped space. A direct line from the ends of the L shaped space (i.e. from the search waypoint to the candidate node) would intersect the boundary of the L shaped space, therefore resulting in the candidate node being rejected. Thus, an edge is not formed with candidate nodes that would cause an intersection with the boundary of a space, holes in the space, or polygonal features (e.g. objects) within the space. However, if all candidate nodes are rejected, then this check is bypassed and all candidate nodes are allowed instead as a fallback.

[0069] In Fig 5. there is one candidate node 540 present in space A (candidate space 510) and two candidate nodes 540 and 550 in space C 530. The path finding method can also restrict the number of candidate nodes returned. As such, a single candidate node that is closest to the search waypoint may be returned. Alternatively, the path finding method may be set to return n closest nodes (e.g. n closest = 2).

[0070] In Fig. 7, the path finding method is set to return n closest = 2 of the candidate nodes. Whilst node G1 750, node G2 740 and node C 770 are all candidate nodes of candidate space A 710, only node G1 750 and node G2 740 are returned as chosen candidate nodes as they are the 2 closest candidate nodes to the search waypoint 700. Although node P 780 is the closest node to the search waypoint 700, node P 780 is outside the chosen candidate space A 710, which is the smallest candidate space available. As such, node P 780 is not considered a candidate node. Node B 760 is also not considered a candidate node as it is outside candidate space A 710.

[0071] Once a number n of candidate nodes has been identified, the search waypoint is appended to the chosen candidate nodes. This process for finding and appending candidate nodes is executed for each search waypoint. As such, the candidate nodes of the origin candidate space are identified for the origin node, and the candidate nodes of the destination candidate space are identified for the destination node. In the example of Fig. 16, the origin candidate space 1602 contains the candidate nodes 1610 and 1611, whilst destination candidate space 1605 contains the candidate node 1618. Consequently, edges are formed from the respective origin node 1630 or destination node 1640 to the candidate nodes (1610, 1611 and 1618) in the candidate spaces (1602 and 1605). In the case that both the origin node and the destination node are located in the same room / candidate space, then the origin node may find that the destination node is a candidate node for the origin node, and the destination node may find that the origin node is a candidate node for the destination node. As a result, the origin node and destination nodes would be appended to each other and form a direct connection from start to end.

[0072] In Fig.8, the search waypoint is the destination node 810. Accordingly, the candidate space 800 is regarded as the destination candidate space. The destination candidate space 800 contains the destination node 810 (search waypoint), the origin node 820, and nodes of the node graph 830 and 840. Another node 850 is located outside the space 800 but is not considered a candidate node as it is outside of the candidate space 800. In this case, the number n of candidate nodes being identified is 2. Thus, the 2 closest candidate nodes within the destination candidate space 800 are node 830 and origin node 820. Consequently, an edge is connected between destination node 810 and node 830 of the node graph, and an edge is also connected between destination node 810 and origin node 820. Therefore, a direct path is formed from the destination node 810 (search waypoint) to the origin node 820.

[0073] 5.1.4.3. Finding possible intersection nodes

[0074] At step 455, possible intersection nodes are generated based on the connection between a candidate node and adjacent nodes located outside the respective candidate space that intersect with a boundary of the candidate space. In one embodiment, if the search waypoint is the origin node, the adjacent node has an inbound edge directed from a candidate node, Further, if the search waypoint is the destination node, then the adjacent node may have an outbound edge directed to the candidate node. Thus, preventing accidental circumnavigation of unidirectional edges. When properly configured, the node graph of the building will only cross space boundaries at valid doors and openings. For example, in Fig. 16, where the node graph intersects a boundary of space 1602, the path from node 1611 to node 1612 crosses the opening of space 1602 and forms an intersection node 1620. In the case of origin node 1630, an edge is formed from the origin node 1630 to intersection node 1620 in addition to forming edges between nodes 1610 and 1611. Similarly, an edge is formed between destination node 1640 and intersection node 1625, in addition to forming the edge between the destination node and node 1618. Finding intersections where candidate nodes exit the space creates direct paths to a door or opening without needing to pass through a candidate node which allows the path finding method to avoid hooks or U-turns where the user is told to travel in a different direction to the logical direction. For each candidate node that has a connected node that is not contained within the candidate space on the same level (referred to as a relation node), an intersection may be formed on the intersection of the edge between the candidate node to the relation node, and the boundary of the candidate space.

[0075] In Fig. 9, given the origin candidate space 900 and origin node 910 (search waypoint), the origin node 910 forms an edge that is connected to candidate node 920 of the node graph, as well as an edge between origin node 910 and candidate node 950. Candidate node 920 of the node graph is also connected to node 940 of the node graph that is outside the origin candidate space 900. Since the node graph only crosses the boundary of spaces at valid doors and openings, an intersection node may be formed where it crosses the space (i.e. an intersection node forming at the door and openings). Accordingly, intersection node 930 is formed between the intersection of the edge of candidate node 920 and node 940 of the node graph outside the origin candidate space 900. Consequently, given the generated intersection node 930, an edge is formed that connects between the origin node 910 and intersection node 930. As seen in Fig. 9, the edge from the origin node 910 to the intersection node 930 becomes the most efficient path directly to exiting the space (i.e. start to a door or opening). If a line from the search waypoint to an additional "intersection node" itself crosses the boundary or holes of the candidate space - or any polygonal feature fully contained within the candidate space - except at the very state or end of the line (within a margin of error) - then this additional intersection node is rejected. As seen in Fig. 9, the edge from the origin node 91 O to intersection node 930 crosses a polygonal feature 915 (the rectangle) within the candidate space 900, as such, the intersection node 930 would be rejected.

[0076] In Fig. 4B, step 460, the origin node and destination node are appended to respective intersection nodes of the candidate space if possible. In the case that the origin or destination node is a node of the node graph as determined in step 424 or 434, then an intersection node may not be necessary to generate. Additionally, if the origin node and destination node are located in the same candidate space, then checking for intersection nodes may not be necessary as they can connect to each other directly.

[0077] At the end of step 460, the search waypoint (for each origin and destination nodes) should be connected to candidate nodes and possible intersection nodes. Thus, a final node graph is generated based on the edges formed between the origin and destination nodes, the initial node graph and the generated intersection nodes with new graph edges added between the origin and destination nodes, the respective candidate nodes and the generated intersection nodes. 5. 7.5. Solving the path

[0078] Once the node graph has been appended with the additional nodes, a standard path finding algorithm can be used (e.g. Dijkstra's algorithm, Bellman-Ford's algorithm, Floyd-Warshall algorithm, and A-star algorithm). In Fig. 4B, step 465, a path finding algorithm is executed on the node graph and the appended nodes including the origin node, destination node, candidate nodes, and intersection nodes to determine a navigation path from the origin node to the destination node. As an example, in Fig. 16, the closest nodes to the origin node 1630 or destination node 1640 are treated as candidate nodes which then form temporary pathways to the respective origin node 1630 or destination node 1640. Once the temporary pathways have formed to the candidate nodes, an algorithm is implemented to find the shortest pathway between the origin node 1630 and destination node 1640 using the node graph inclusive of the temporary pathways (i.e. paths between the appended nodes). In this example, the shortest pathway is formed by pathways between the origin node 1630, intersection node 1620, nodes 1612, 1613, 161 5, 1616, 1617, intersection node 1625, then finally destination node 1640.

[0079] In the path finding method of the invention, Dijkstra's algorithm is utilised, however, any other standard path finding algorithm could be usable on the node graph. Dijkstra's algorithm is a well-known algorithm that is utilised for finding the shortest path between nodes in a non-negative weighted graph. The weight of the edges between nodes represents a distance or time between the nodes. Dijkstra's algorithm starts at a source node, otherwise referred to as the origin node, which iteratively visits unvisited nodes with the smallest tentative weight (e.g. distance, time) from the origin node. The algorithm continues from that node and visits its neighbouring nodes to update the tentative distance if a shorter path is found. This process is repeated until the destination node is reached or all reachable nodes are visited.

[0080] In step 470, a navigation path from the origin node to the node graph is extracted from the navigation path found in step 465. The extracted path in step 470 provides guidance for a user to enter the node graph from a starting location. In step 475, the navigation paths of steps 465 and 470 are exported to the portable device. This navigation path can be displayed on the portable device 1 10 in various ways, such as a visible route on the map of the building on the portable device 1 10, text or audio direction instruction. The current location data 240 may be utilised to provide live updates of the user's location along the navigation path as they travel along the route. The live location data 240 can also be utilised to guide the user back to the navigation path should they veer off the navigation path. This process could be initiated by the user leaving the navigation path by a certain distance, or can be initiated by the user inputting an action that results in the path finding method starting from step 405. Accordingly, the path finding method may be repeated where necessary to find the navigation path from start to end.

[0081] 5.1.6. Weight Function

[0082] The weight of the edges is calculated may be calculated as the Haversine distance between nodes. A static weight offset may be used to alter the weighting. An example of this includes a static weight offset to increase the weight of an edge that requires vertical traversal (e.g. staircase) that can reduce the desirability of a path. Furthermore, the weight of an edge can also be offset to make a path more or less desirable and also factor in the accessibility needs of users. As such, static modifiers or multipliers may be used when appropriate in representing changes in the weight of an edge.

[0083] In some examples, the path finding method is also able to filter nodes and edges based on properties such as accessibility settings, wherein a user may have a wheelchair and the path finding method filters out inaccessible locations such as stairways. Further, a node may be marked as 'high-sensory' (e.g. noisy, bright or crowded), that node and its edge may be filtered out from the graph for users who experience sensory sensitivity and set their accessibility filters as preferring to avoid 'high-sensory' environments. Other accessibility filters may include content-warnings (18+), epilepsy warnings, as well as other potential accessibility filters where appropriate. The path finding method may remove nodes or omit generation of nodes or connected nodes that do not satisfy the user's requested accessibility requirements.

[0084] 5. 1.7. Levei Transitions

[0085] Nodes may be present between different levels to provide vertical access. The properties of the nodes are annotated to indicate the type of vertical access (e.g. elevator, escalator, stairs, ramps). The node is assumed to transition all indicated levels at the same 2D point. In an example, there may be a building with five levels, of which level 2 is a mezzanine, in this case the elevator may only go between levels 1 and 3 to 5, skipping the mezzanine on floor 2. As such, the elevator node transitions at all the indicated levels of 1 and 3 to 5. For stairs, ramps and escalators, the node is represented at the middle of the flight of stairs / ramps / escalators. Nodes that transition levels are expanded into a series of connected, single-level nodes, whose cost function includes a standardised cost.

[0086] For staircases, ramps and escalators, the nodes are connected in series, level to level. In Fig. 10, the ground floor 1000 is connected in series to floors 1010, 1020 and 1030. As such, when travelling from floor 1000 to 1030, the weight 1040 is accumulated in series such that travelling from floor 1000 to 1030 would accumulate a total weight of 3 times the weight 1040. Stair, ramp and escalator nodes are connected in series to each of the other stair, ramp and escalator floor nodes and accumulate distance as they are travelled between floors. Escalator nodes will typically have a lower weight relative to stair or ramp nodes. For stairs and ramps, the nodes would typically have a slightly higher weight to go up than the weight to go down, which represents the difference in physical effort for climbing stairs or going up ramps. This can be represented by encoding in the directional graph a different weight for the edge directions (e.g. higher floor node to lower floor node being lower weight and lower floor node to higher floor node being higher). Further, the nodes of stairs, ramps and escalators may both have accessibility flags that are annotated in their node properties. This may be utilised to filter available nodes for users who are not ambulant.

[0087] For elevators, the nodes are connected in parallel, wherein the cost of the elevator is roughly fixed. In Fig. 1 1, the ground floor 1 100 is connected in parallel to floors 1 110, 1120 and 1 130. As such, when travelling from floor 1000 to 1030, the weight 1040 of travelling from floor 1000 to 1030 would simply be the weight 1040. As such, travelling on an elevator from floor 1 100 to floor 1130 accumulates the same distance as travelling from floor 1 100 to 11 10. On the other hand, travelling on a staircase or escalator from floor 1000 to 1030 accumulates the weight 1040 for each floor travelled. However, travelling on an elevator costs a higher weight than that of stairs, ramps or escalators. Since wait times for an elevator may be long, taking stairs / ramps / escalators up 1 floor may be more efficient than using an elevator to travel 1 floor given the relative weight differences.

[0088] 5. 1.8. Navigation

[0089] Navigation may be conducted using a map with visual indicators directing the user where to go or generating text with pointers of where to go. The text may also be provided as audio, for example, using text to speech to play navigation audio to a user's headphones. In another embodiment, a navigation system can identify spaces traversed along the generated path, landmarks or objects along or near the generated path, as well as level transitions. Using the identified information, the navigation system can utilise the spaces, landmarks / objects / level transitions to describe navigation details to the user. Specifically, the navigation system provides instructions for navigation in at least the following types: space entry, space exit, landmarks, level change, and destination. Space entry involves instructing the user to "go to [space]". Space exit involves instructing the user to "leave space". Landmark involves instructing the user to "pass by [landmark]". Level change involves instructing the user to "use [transition type), go [up / down] to [level]" (stairs, elevator, etc), Destination involves instructing the user to "arrive [at object / at point of interest / in space]". The navigation system may also instruct the user to follow paths or combine instructions with additional cues such as "on level 2, follow path, go to [space]". In an example of navigation instructions, the navigation system may state "Enter the [Flower Room]", wherein the Flower Room is a space. In another similar example, the navigation system may state "Pass by [Picasso Painting]", wherein the Picasso Painting is a landmark / object. Continuing the example, the navigation system may state "Use [stairs], Go [Up] to [Floor Two]", wherein the stairs is the transition type and Up describes the direction to the level Floor Two. Further, the navigation may state "Arrive at [Ant Room]", wherein the ant room is the destination set by the user. In another example, users may also be instructed to follow paths "On level three, follow path, arrive at Golden Gallery" or follow paths in combination with the above instructions "On level five, follow path, use elevator, go up to level nine".

[0090] The navigation system may iterate through each node of the navigation path to check for: level transition and space transition. In a level transition, the navigation system checks whether the new node is different from the current level and that the node defines a level transition. This is used to check whether an instruction is required to instruct a user to transition between levels (e.g. "Use [elevator], Go [down] to [Floor One]". In a space transition, the navigation system checks whether the new node's level is the same as the current level, but its primary space is different from the current primary space (including changes from outdoors / empty spaces to known spaces), wherein a primary space is the smallest space in which the node is currently located within. This is used to check whether an instruction is required to instruct a user to enter or exit spaces (e.g. "Enter [Stone Gallery]" or "Leave [Bird Room]"). After each node is iterated and a level transition or space transition is checked, then a Destination step is finally executed which adds the last node to be the navigation path and instructs the user to "Arrive at [destination]". The navigation system can utilise stored information from the building information database to identify the relevant information for describing the navigation route.

[0091] The navigation system can utilise two different distance thresholds: landmark distance and space gap. Landmark distance represents a radius of a ring around an exit of a space to search for pass-by landmarks within. For example, after a space exit, the navigation system can search for landmarks within 5 meters of the space exit for use in describing landmarks that can be passed by. Space gap represents the maximum distance that can be traversed between spaces without declaring that there is a "gap" and a "follow path" instruction is necessary. For example, after leaving space A, the next space B may be within 5 meters of the space A, as such, it would the navigation system will instruct the user to "exit space A" and then "enter space B". On the other hand, if the next space is further away, it may tell the user to "exit space A", then "follow path" (or other direction instruction", then "enter space B". Therefore, the space gap distance can reduce the number of unnecessary instructions, especially if the space is visible and / or easily accessible from the exit of the current space. The landmark distance and space gap distance can be adjusted, e.g. for the needs of the user, room design, environment and other factors.

[0092] In Fig. 12, there is a small gap between the space A 1200 and space B 1220, wherein the space gap between the spaces is below the space gap distance threshold. The navigation path traverses from node 1210 to node 1230. If there is a landmark belonging to space A near the point the path exits space A, for example object 1215, then the user would be instructed to "Pass by object (1215)". Otherwise, the user would be instructed to "Go to [space B]".

[0093] In Fig. 13, there is a large gap between the space A 1300 and space B 1320, wherein the space gap between the spaces is above the space gap distance threshold. The navigation path traverses from node 1310 to node 1330. If there is a landmark belonging to space A near the point the path exits space A, for example object 1315, then the user would be instructed to "Pass by object (1315)" then "Follow path, go to [space B]". Otherwise, the user would be instructed to "Leave [space A]" then "Follow path, go to [space B]".

[0094] In Fig. 14, there is an overlap between a large space A 1400 and small space B 1420, wherein space A 1400 is bigger than space B 1420. The navigation path traverses from node 1410 in the larger space A 1400 to node 1430 in the smaller space B 1420. If there is a landmark belonging to space A near the point the path enters smaller space B 1420, for example object 1415, then the user would be instructed to "Pass by object (1415)". Otherwise, the user would be instructed to "Go to [space B]".

[0095] In Fig. 15, there is an overlap between a small space A 1500 and large space B 1520, wherein space A 1500 is smaller than space B 1520. The navigation path traverses from node 1510 in the larger space A 1500 to node 1530 in the smaller space B 1520. If there is a landmark belonging to space A near the point the path exits smaller space A 1500, for example object 1515, then the user would be instructed to "Pass by object (1515)". Otherwise, the user would be instructed to "Go to [space B]".

[0096] 5.2. Other Remarks

[0097] Unless the context clearly requires otherwise, throughout the description and the claims, the words "comprise", "comprising", and the like, are to be construed in an inclusive sense as opposed to an exclusive or exhaustive sense, that is to say, in the sense of "including, but not limited to". The entire disclosures of all applications, patents and publications cited above and below, if any, are herein incorporated by reference.

[0098] Reference to any prior art in this specification is not, and should not be taken as, an acknowledgement or any form of suggestion that that prior art forms part of the common general knowledge in the field of endeavour in any country in the world.

[0099] The technology may also be said broadly to consist in the parts, elements and features referred to or indicated in the specification of the application, individually or collectively, in any or all combinations of two or more of said parts, elements or features.

[0100] Where in the foregoing description reference has been made to integers or components having known equivalents thereof, those integers are herein incorporated as if individually set forth. It should be noted that various changes and modifications to the presently preferred embodiments described herein will be apparent to those skilled in the art. Such changes and modifications may be made without departing from the spirit and scope of the technology and without diminishing its attendant advantages. It is therefore intended that such changes and modifications be included within the present technology.

Claims

CLAIMS1 . A method of path finding for navigation comprising: receiving data defining a plurality of spaces of at least one building; receiving at least one node graph, wherein the node graph is a graph which has a plurality of nodes corresponding to locations within the spaces, wherein the node graph contains connections between nodes that are indicative of paths a user can use for navigation; receiving at least one origin node from a portable device of a user, wherein the origin node is indicative of a starting location for path finding; determining an origin candidate space for the origin node, wherein the origin candidate space contains the origin node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; appending the origin node to each candidate node within the origin candidate space provided the connection from the origin node to the candidate nodes does not intersect with a boundary of the origin candidate space; determining a navigation path from the origin node to the node graph using one of the candidate nodes dependent on an end location; and communicating the navigation path from the origin node to the node graph to the portable device of the user.

2. The method according to claim 1, further comprising: receiving a destination node, wherein the destination node is indicative of the end location for path finding; determining a destination candidate space, wherein the destination candidate space of the destination node contains the destination node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; appending the destination node to each candidate node within the destination candidate space provided the connection from the destination node to the candidate nodes does not intersect with a boundary of the destination candidate space; determining a navigation path from the origin node to the destination node; and communicating the navigation path from the origin node to the destination node to the portable device of the user.

3. The method according to claim 1 or 2, further comprising:generating intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and appending the origin node to at least one intersection node of the respective candidate space of the origin node.

4. The method according to claim 2 or 3, further comprising: generating intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and appending the destination node to at least one intersection node of the respective candidate space of the destination node.

5. The method according to any one of claims 1 to 4, further comprising: wherein the origin node is selected by the user on the portable device of the user.

6. The method according to any one of claims 2 to 5, further comprising: wherein the destination node is selected by the user on the portable device of the user.

7. The method according to any one of claims 1 to 6, further comprising: receiving data associated with properties of each node of the node graph, wherein the properties of each node comprise a unique id, location coordinates and outbound connections to adjacent nodes.

8. The method according to claim 7, wherein the data associated with properties of each node of the node graph further comprises: at least one of an accessibility flag, wherein the accessibility flag provides information regarding accessibility of a node.

9. The method according to claim 7 or 8, wherein the data associated with properties of each node of the node graph comprises: a desirability modifier, wherein the desirability modifier represents a weighted value that makes the node more or less desirable than other nodes.

10. The method according to any one of claims 1 to 9, further comprising: wherein the node graph of a building comprises multiple floor node graphs.1 1. The method according to claim 10, further comprising: wherein the multiple floor node graphs are connected to each other by at least one connection between at least one node of at least one other floor node graph.

12. The method according to claim 11 , further comprising: wherein at least one node of a floor node graph is connected in series to at least one node of at least two different floor node graphs.

13. The method according to claim 11 or 12, further comprising: wherein at least one node of a floor node graph is connected in parallel to at least one node of at least two different floor node graphs.

14. The method according to any one of claims 1 to 13, wherein the data defining a plurality of spaces of at least one building comprises: a unique building id; and a 2D boundary defining the building boundary.

15. A path finding system comprising a server receiving data over a network, the server configured to: receive data defining a plurality of spaces of at least one building; receive at least one node graph, wherein the node graph is a graph which has a plurality of nodes corresponding to locations within the spaces, wherein the node graph contains connections between nodes that are indicative of paths a user can use for navigation; receive at least one origin node from a portable device of a user, wherein the origin node is indicative of a starting location for path finding; determine an origin candidate space for the origin node, wherein the origin candidate space contains the origin node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; append the origin node to each candidate node within the origin candidate space provided the connection from the origin node to the candidate nodes does not intersect with a boundary of the origin candidate space;determine a navigation path from the origin node to the node graph using one of the candidate nodes dependent on an end location; and communicate the navigation path from the origin node to the node graph to the portable device of the user.

16. The path finding system of claim 15 further comprising: at least one communication unit configured to send current location information to the portable device of the user.

17. The path finding system according to claim 15 or claim 16, wherein the server is further configured to: receive a destination node, wherein the destination node is indicative of the end location for path finding; determine a destination candidate space, wherein the destination candidate space of the destination node contains the destination node and at least one candidate node, wherein each candidate node is a node of the node graph that is contained within the candidate space; append the destination node to each candidate node within the destination candidate space provided the connection from the destination node to the candidate nodes does not intersect with a boundary of the destination candidate space; determine a navigation path from the origin node to the destination node; and communicate the navigation path from the origin node to the destination node to the portable device of the user.

18. The path finding system according to any one of claims 15 to 17, wherein the server is further configured to: generate intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and append the origin node to at least one intersection node of the respective candidate space of the origin node.

19. The path finding system according to claim 17 or claim 18, wherein the server is further configured to:generate intersection nodes, wherein the intersection nodes are nodes that are located on a connection between a candidate node and an adjacent node that is located outside the respective candidate space that intersect with the boundaries of the respective candidate space; and append the destination node to at least one intersection node of the respective candidate space of the destination node.

Citation Information

Patent Citations

  • Method and apparatus for accounting for user experience in pedestrian navigation routing

    US20110144903A1

  • Navigation devices and methods carried out thereon

    US20150168170A1

  • Trace segments based navigation

    WO2018227507A1