A real-time navigation method in indoor areas

By dividing the indoor area into sub-regions and using the minimum heap sorting search path, the problem of low navigation efficiency in large indoor environments is solved, and fast and real-time path planning and navigation are achieved.

CN116558516BActive Publication Date: 2025-08-26ZHEJIANG UNIV OF TECH
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
CN202310092065.2
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2023-01-17
Publication Date
2025-08-26
Estimated Expiration
2043-01-17

AI Technical Summary

Technical Problem

The existing indoor navigation algorithms are not efficient in large indoor environments, have large demands for storing map information, and are not real-time enough to plan the path.

Method used

Divide the indoor area into sub-regions, abstracted as a connecting graph, each door is an edge, search the path using the minimum heap sort, optimize the path planning with Euclidean distance and cost estimates, and recalculate the path only when the area switches.

Benefits of technology

It realizes fast and real-time path navigation in large indoor environments, reduces storage and computing requirements, and improves navigation efficiency and accuracy.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN116558516B_ABST
    Figure CN116558516B_ABST
Patent Text Reader

Abstract

The present invention discloses a real-time navigation method in an indoor area. According to an actual indoor area map, the indoor area is divided into several sub-areas. The entire indoor area is abstracted into a connected graph, with each sub-area being a node in the connected graph and each door being an edge in the connected graph. The starting sub-area and the ending sub-area for navigation are then obtained, the corresponding starting node and the ending node are found in the connected graph, the attributes of any edge and any node in the connected graph are initialized, all edges in the connected graph are placed in a minimum heap and sorted according to the edge attributes, and then the edge with the smallest sorting is extracted from the minimum heap. The path to the ending node is searched until the ending node is found, the path search result is returned, and navigation is performed according to the path search result. The present invention ensures that the optimal navigation path is obtained while making the indoor navigation process more real-time and efficient.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present application belongs to the field of indoor pedestrian navigation technology, and specifically relates to a real-time navigation method in an indoor area. Background Art

[0002] With the development of modern cities, large indoor environments such as shopping malls, hospitals, train stations, and airports are becoming increasingly complex. People often need to reach their designated destinations quickly, which requires the use of indoor positioning and navigation technology. The development of indoor positioning technology and digital indoor maps has laid the foundation for indoor navigation.

[0003] Most popular navigation functions are currently limited to outdoor use. Indoor pathfinding primarily involves path planning. Mainstream path planning algorithms include Dijkstra and A*. Dijkstra is a blind search algorithm. When the target node is far from the initial node, it generates many useless nodes, resulting in low search efficiency. The A* algorithm, on the other hand, is primarily used for grid search. Gridding large indoor areas not only increases the number of searches but also requires significant storage space to store map information. Summary of the Invention

[0004] The purpose of this application is to provide a real-time navigation method in an indoor area, which is suitable for providing real-time navigation services for mobile terminals such as smartphones on the basis of achieving indoor positioning, so as to overcome the problem of low search efficiency in the existing technology.

[0005] In order to achieve the above objectives, the technical solutions of this application are as follows:

[0006] A real-time navigation method in an indoor area, comprising:

[0007] Based on the actual indoor area map, the indoor area is divided into several sub-areas. The entire indoor area is abstracted into a connected graph, with each sub-area as a node in the connected graph and each door as an edge in the connected graph. The plane coordinates of each door are stored as the position attributes of each edge in the connected graph.

[0008] Get the starting sub-area and the ending sub-area of ​​the navigation, and find the corresponding starting node and ending node in the connectivity graph;

[0009] Initialize the attributes of any edge and any node in the connected graph;

[0010] Put all the edges in the connected graph into a minimum heap and sort them according to the attributes of the edges. Then take out the edge with the smallest sorting from the minimum heap and start searching for the path to the end node. Update the attributes of the next hop edge and the attributes of the visited node during each search until the end node is found. Return the path search result and navigate according to the path search result.

[0011] Furthermore, the indoor area is divided into several sub-areas, including:

[0012] Think of each room as a sub-area, with sub-areas connected to each other via doors.

[0013] Furthermore, the indoor area is divided into several sub-areas, including:

[0014] The narrow and long area and the open area are divided into several sub-areas, and the plane coordinates of the midpoints of the boundary lines between the sub-areas are used as the coordinates of the doors connecting the sub-areas.

[0015] Furthermore, the attributes of the edge include the shortest distance dist from the starting node to the edge, the previous hop edge of the edge and its attribute prev, whether the edge has been visited e_visited, the position of the edge pos and the cost estimate eval; the attributes of the node include whether the node has been visited v_visited.

[0016] Furthermore, the initialization of the attributes of any edge and any node in the connected graph includes:

[0017] The dist of the edge directly connected to the starting node is initialized to 0, and the dist of the remaining edges is initialized to +∞;

[0018] The edge's prev is initialized to empty;

[0019] The estimated cost of the edge, eval, is calculated using the following formula:

[0020]

[0021]

[0022]

[0023]

[0024] Among them, E d represents the set of all edges connected to the terminal node d, E s represents the set of all edges connected to the starting node s, |E d | represents the set E d The number of elements in |E s | represents the set E s The number of elements in D(pos[e],pos[e i ]) represents the position of edge e and edge e i The Euclidean distance between the positions, β is an empirical parameter; D(pos[s],pos[e i]) represents the average position of all edges connected to the starting node s and the edge e i The Euclidean distance between the locations.

[0025] The e_visited attribute value of all edges is initialized to unvisited;

[0026] The v_visited attribute value of the starting node s is initialized to visited, and the v_visited attribute values ​​of the remaining nodes are initialized to unvisited.

[0027] Furthermore, the sorting according to the attributes of the edges includes:

[0028] Sort by the sum of the edge's dist value and eval value.

[0029] Furthermore, the smallest edge is taken from the minimum heap, and a path to the end node is searched. The attributes of the next hop edge and the attributes of the visited node are updated during each search until the end node is found. The path search result is returned, including:

[0030] Denote the edge with the smallest sorting as e min , if e min The dist attribute value is +∞, indicating "destination unreachable", and navigation ends;

[0031] If e min The dist attribute value is not +∞, and e min Not connected to the terminal node d, then further judge e min The v_visited attribute values ​​of the two connected nodes. If the v_visited attribute values ​​are both visited, then e min Discard it and start searching again by taking out the smallest edge from the minimum heap; otherwise, get e min The connected v_visited is the unvisited node v * , v_visited[v * ] and e_visited[e min ]Mark as visited;

[0032] If e min The dist attribute value is not +∞, and e min Connected to the terminal node d, then according to e min Iterate the query on the prev attribute value until the prev attribute value is empty, and get all the edges on the path. The path search ends and the path search result is returned.

[0033] Among them, in e min The dist attribute value is not +∞, and e minIn the case where it is not connected to the end node d, it is also necessary to make a judgment on v * as follows:

[0034] If the node v * is connected to the end node d, then let all the edges connecting the node v * and d be the set E v*d . For [[ID=1...]]Calculate the Euclidean distance D(e min min , e) between the position of e min and the position of e. If dist[e min +D(e min , e)<dist[e], then set dist[e] to (dist[e min +D(e min , e)), set prev[e] to e

[0035] If the node v * is not connected to the end node d, then let all the edges connecting the node v * be the set E v* . For and the e_visited attribute value of e is unvisited, calculate the Euclidean distance D(e min min , e) between the position of e min and the position of e. If dist[e min +D(e min …]] min min , e)), set prev[e] to e min

[0036] A real-time navigation method in an indoor area provided by this application comprehensively considers the distance from the current position to the target position and the distance from the current position to the starting position during path planning, and dynamically adjusts the weight of the cost estimation function according to the specific position of the user. It can quickly obtain a reasonable path and only restart path calculation when the user switches areas, which can reduce the computational amount of the navigation system. Compared with the existing indoor navigation pathfinding solutions, the space required to store map information and the computational amount required during navigation are both small. While ensuring the optimal navigation path is obtained, the indoor navigation process is made more real-time and efficient. BRIEF DESCRIPTION OF THE DRAWINGS

[0037] Figure 1 ​​​This is a flow chart of the real-time navigation method in indoor areas of this application.

[0038] Figure 2 This is an example of an indoor map according to an embodiment of the present application.

[0039] Figure 3 This is a schematic diagram of the topological model corresponding to the indoor map in the embodiment of the present application. DETAILED DESCRIPTION

[0040] In order to make the purpose, technical solutions and advantages of this application more clear, the following further describes this application in detail with reference to the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are only used to explain this application and are not intended to limit this application.

[0041] In one embodiment, Figure 1 As shown, a real-time navigation method for an indoor area includes:

[0042] Step S1: Divide the indoor area into several sub-areas based on the actual indoor area map, abstract the entire indoor area into a connected graph, each sub-area is a node in the connected graph, each door is an edge in the connected graph, and the plane coordinates of each door are stored as the position attribute of each edge in the connected graph.

[0043] After obtaining the map of the actual indoor area, the indoor area is divided into several sub-areas, a topological model of the indoor map is established, and then the entire indoor area is abstracted into a connected graph.

[0044] This embodiment divides the indoor area into several sub-areas, including but not limited to the following division methods:

[0045] Specific implementation method: 1. Treat each room as a sub-area, and the sub-areas are connected to each other through doors.

[0046] Specific implementation method 2: Divide the narrow and long area and the open area into several sub-areas, and use the plane coordinates of the midpoints of the boundary lines between the sub-areas as the coordinates of the doors connecting the sub-areas.

[0047] For example, a long and narrow area such as a corridor and a large open area such as a hall can be divided into several sub-areas according to actual conditions, and the plane coordinates of the midpoints of the boundary lines between the sub-areas are used as the coordinates of the doors connecting the sub-areas.

[0048] After dividing the sub-areas, the entire indoor area is abstracted into a connected graph, which specifically includes:

[0049] Each sub-region is a node in the connected graph, each door is an edge in the connected graph, and the plane coordinates of each door are stored as the position attribute of each edge in the connected graph.

[0050] by Figure 2 Take the indoor area shown in as an example, Figure 2 The line segments with numbers in the middle are the "doors" in the figure. The corridor is divided into sub-areas V1 and V2 by the "door" numbered 56. Each of the remaining rooms is a separate sub-area and is connected to the corridor through a door.

[0051] According to this method, the entire indoor area is abstracted into a connectivity graph of each sub-area. In the connectivity graph, "doors" correspond to edges in the connectivity graph, and sub-areas correspond to nodes in the connectivity graph. Figure 2 The connectivity graph corresponding to the indoor area shown in the indoor scene is as follows Figure 3 shown.

[0052] Step S2: Obtain the starting sub-region and the ending sub-region of the navigation, and find the corresponding starting node and ending node in the connectivity graph.

[0053] In this embodiment, the user's current location coordinates are obtained using relevant indoor positioning technology, and then the sub-area where the user is currently located is obtained as the navigation starting sub-area, and the node corresponding to the starting sub-area is recorded as node s.

[0054] The user's current location coordinates can be obtained by using wireless positioning technology through a wireless base station installed indoors. This is a relatively mature technology in this field and will not be described in detail here.

[0055] In addition, according to the destination information input by the user, the sub-area where the destination is located is obtained as the navigation end sub-area, and the node corresponding to the end area is recorded as node d.

[0056] It should be noted that the user's sub-area is first determined. If the user is already at the destination, no navigation path calculation is required, and the navigation process ends. If the user is not in the destination sub-area, the navigation path calculation begins. That is, if node s is the same as node d, the user has reached the destination, and navigation ends.

[0057] In this embodiment, it is assumed that the user is currently in room c505 and the destination is room d509. Therefore, during the first path search, node s is the c505 node and node d is the d509 node. If the sub-area where the user is located changes, node s will be changed to the corresponding node of the sub-area where the user is currently located.

[0058] Step S3: Initialize the attributes of any edge and any node in the connected graph.

[0059] In a specific embodiment, the attributes of the edge include the shortest distance dist from the starting node to the edge, the previous hop edge of the edge and its attribute prev, whether the edge has been visited e_visited, the position of the edge pos and the cost estimate eval; the attributes of the node include whether the node has been visited v_visited.

[0060] It should be noted that the present application is not limited to the above attributes. Those skilled in the art may also set other attributes according to actual needs as conventional settings to meet actual business needs, which will not be repeated here.

[0061] In a specific embodiment, the initialization of the attributes of any edge and any node in the connected graph includes:

[0062] The dist of the edge directly connected to the starting node is initialized to 0, and the dist of the remaining edges is initialized to +∞;

[0063] The edge's prev is initialized to empty;

[0064] The estimated cost of the edge, eval, is calculated using the following formula:

[0065]

[0066]

[0067]

[0068]

[0069] Among them, E d represents the set of all edges connected to the terminal node d, E s represents the set of all edges connected to the starting node s, |E d | represents the set E d The number of elements in |E s | represents the set E s The number of elements in D(pos[e],pos[e i ]) represents the position of edge e and edge e i The Euclidean distance between the positions, β is an empirical parameter; D(pos[s],pos[e i ]) represents the average position of all edges connected to the starting node s and the edge e i The Euclidean distance between the locations.

[0070] The e_visited attribute value of all edges is initialized to unvisited

[0071] The v_visited attribute value of the starting node s is initialized to visited, and the v_visited attribute values ​​of the remaining nodes are initialized to unvisited.

[0072] It should be noted that the setting of the initial value of the attribute can be some specific numerical values, such as a maximum number as +∞, etc., and this application does not impose any restrictions on this.

[0073] Specifically, for any edge e in the connected graph, set the attributes dist, prev, e_visited, pos, and eval, where dist represents the shortest distance from the starting node s to the edge e. The dist of the edge directly connected to the starting node s is initialized to 0, and the dist of the remaining edges is initialized to +∞. Prev represents the previous hop edge of edge e and all its attributes, which are initialized to an empty set. e_visited indicates whether edge e has been visited. The e_visited attribute value of all edges is initialized to unvisited. pos indicates the position attribute of edge e. eval is the cost estimate (used to indicate the estimated cost of reaching the end node). β is an empirical parameter that can be set to 0.5. i ]) represents the average position of all edges connected to the starting node s and the edge e i The Euclidean distance between the locations.

[0074] For any node v in the connected graph, set the attribute v_visited to record whether this node has been visited. The v_visited attribute value of the starting node s is initialized to visited, and the v_visited attribute values ​​of the remaining nodes are initialized to unvisited.

[0075] Specifically, for Figure 3 In the embodiment, the dist attribute values ​​of the 4th and 10th edges directly connected to the c505 node are initialized to 0, the dist attribute values ​​of the remaining edges are initialized to +∞, and the prev values ​​of all edges are initialized to Calculate the eval attribute value of each edge in the connected graph respectively, and use the plane coordinates of the corresponding position of each edge in the indoor area as the pos attribute value of the edge. The e_visited attribute values ​​of all edges are initialized to unvisited, the v_visited of the c505 node is initialized to visited, and the v_visited of the remaining nodes are initialized to unvisited.

[0076] Step S4: Put all edges in the connected graph into a minimum heap and sort them according to the attributes of the edges. Then, take out the edge with the smallest order from the minimum heap and start searching for the path to the end node. Update the attributes of the next hop edge and the attributes of the visited node during each search until the end node is found. Return the path search result and navigate according to the path search result.

[0077] This embodiment establishes a minimum heap H, in which edges are used as storage units. All edges in the connected graph are placed in the minimum heap, and the minimum heap is sorted according to the sum of the dist value and the eval value of the edge.

[0078] In a specific embodiment, the present application extracts the smallest-ordered edge from the minimum heap and begins searching for a path to the end node. The attributes of the next-hop edge and the attributes of the visited nodes are updated during each search until the end node is found. The path search result is returned, including:

[0079] Denote the edge with the smallest sorting as e min , if e min The dist attribute value is +∞, indicating "destination unreachable", and navigation ends;

[0080] If e min The dist attribute value is not +∞, and e min Not connected to the terminal node d, then further judge e min The v_visited attribute values ​​of the two connected nodes. If the v_visited attribute values ​​are both visited, then e min Discard it and start searching again by taking out the smallest edge from the minimum heap; otherwise, get e min The connected v_visited is the unvisited node v * , v_visited[v * ] and e_visited[e min ]Mark as visited;

[0081] If e min The dist attribute value is not +∞, and e min Connected to the terminal node d, then according to e min Iterate the query on the prev attribute value until the prev attribute value is empty, and get all the edges on the path. The path search ends and the path search result is returned.

[0082] Among them, in e min The dist attribute value is not +∞, and e min In the case that it is not connected to the terminal node d, it is also necessary to * Make judgments, including:

[0083] If the node v * Connected to the terminal node d, let the connecting node v * and all edges of d are set E v*d ,for Calculate e min The Euclidean distance D(emin , e), if dist[e min +D(e min , e)<dist[e], then set dist[e] to (dist[e min +D(e min , e)), set prev[e] to e min , update the attributes of edge e, and restart the search from the edge with the smallest order taken out from the minimum heap;

[0084] If node v * is not connected to the end node d, then make all the edges connecting node v * be set as set E v* , for and the e_visited attribute value of e is unvisited, calculate the Euclidean distance D(e min from the position of e to the position of e), if dist[e min +D(e min , e)<dist[e], then set dist[e] to (dist[e min +D(e min , e)), set prev[e] to e min , update the attributes of edge e, and restart the search from the edge with the smallest order taken out from the minimum heap. min Specifically, during the search, judge whether H is empty. If it is empty, it means that there is no unvisited door on the map, and at this time the target area has not been found yet. Therefore, return the result: "The end point is unreachable", and the navigation ends. If H is not empty, start the path search. In this embodiment, it is reachable from node c505 to node d509, so the situation where H is empty will not occur, and the path search starts.

[0085] Start the path search, and take out edge e

[0086] from the minimum heap H. min . If the dist of e min is +∞, it means that the edge closest to the starting point is also unreachable. At this time, return the result: "The end point is unreachable", and the navigation ends. If the dist attribute value of e min is not +∞, continue with the following steps.

[0087] In this embodiment, the dist attribute values of edge 4 and edge 10 are 0, but the eval attribute value of edge 4 is less than that of edge 10. Therefore, the e min obtained from H for the first time is edge 4. The subsequent e min will be generated from the edges connected to node v1 until edge 56 is searched. After that, e minIt will be generated from the edge connected to the v2 node, and finally search for edge 17 adjacent to the end room, completing the search.

[0088] If e min In the connectivity graph, it is connected to the terminal node, indicating that the terminal room has been searched. min The prev attribute value of e min Go back to prev and connect the path with the anchor point to get the complete navigation path.

[0089] In this embodiment, when e min When it is side 17, e min In the connected graph, it is connected to the end node. At this time, the prev attribute value of edge 17 is checked to obtain the previous hop edge of edge 17, that is, edge 56. Then the prev attribute value of edge 56 is accessed to obtain edge 4, and the prev attribute value of edge 4 is Then, based on the pos attribute value, find the plane coordinates of these three edges in the map. Connect Gate 4, Gate 56, and Gate 17 in the map in sequence to obtain the first navigation path. Then, connect the user's location point with Gate 4 to obtain the second navigation path. The first and second navigation paths can be combined and displayed on the user interface.

[0090] After obtaining the navigation path, the technical solution of the present application also continuously detects the user's location and updates the path in real time until the user reaches the destination.

[0091] Specifically, the searched path is used as the first segment of the path, and the user's location coordinates are connected to the starting point of the first segment of the path to obtain the second segment of the path. The combination of the two segments of the path is the final navigation path;

[0092] At fixed intervals, the current user location coordinates are used to determine whether the user's location has changed. If the user's location coordinates have changed but the user's location has not, the starting point of the second path segment is changed so that the starting point of the second path segment is always the user's location coordinates. If the user's location coordinates have changed and the user's location has also changed, the node corresponding to the new area is recorded as node s, and the path planning is restarted until the user reaches the destination area.

[0093] For example, after the calculation of the first segment of the path is completed and displayed on the user interface, the sub-area where the user is located is judged every 1 second. If the user arrives at a new sub-area, node s is set to the corresponding node of the new sub-area, and the first segment of the navigation path is replanned; otherwise, the first segment of the navigation path remains unchanged; if the new node s is d509, it means that the user has reached the end point and the navigation ends.

[0094] The second path is updated at a high frequency, which is consistent with the update frequency of the user's positioning coordinates.

[0095] If e min If it is not connected to the terminal node in the connectivity graph, then detect e min Are the v_visited of the two connected nodes both in the visited state? If so, set e min Discard it and start searching again by taking out the smallest edge from the minimum heap. Otherwise, get the edge with the same order as e. min The connected v_visited is the unvisited node v * (It is impossible for e to appear min The v_visited of the two connected nodes are both unvisited, so v * Only one), v * and e min The v_visited and e_visited are marked as visited.

[0096] If in a connected graph, node v * Connected to the terminal node d, traversing the connection node v * All edges between d and d are judged and replaced according to the technical solution, and the edge with the smallest sorting is taken out from the minimum heap to start the search again.

[0097] If the node v * Not connected to the end node d, traverse the connection node v * If all v_visited edges are unvisited, they are judged and replaced according to the technical solution, and the search is restarted by taking the smallest edge from the minimum heap.

[0098] The above-described embodiments merely represent several implementation methods of the present application. While the descriptions are relatively specific and detailed, they should not be construed as limiting the scope of the present invention. It should be noted that a person skilled in the art could make various modifications and improvements without departing from the spirit of the present application, all of which fall within the scope of protection of the present application. Therefore, the scope of protection of the present patent application shall be determined by the appended claims.

Claims

1. A real-time navigation method in an indoor area, characterized in that: The real-time navigation method in the indoor area includes: Based on the actual indoor area map, the indoor area is divided into several sub-areas. The entire indoor area is abstracted into a connected graph, with each sub-area as a node in the connected graph and each door as an edge in the connected graph. The plane coordinates of each door are stored as the position attributes of each edge in the connected graph. Get the starting sub-area and the ending sub-area of ​​the navigation, and find the corresponding starting node and ending node in the connectivity graph; Initialize the attributes of any edge and any node in the connected graph; Put all edges in the connected graph into a minimum heap and sort them according to the attributes of the edges. Then, take the edge with the smallest order from the minimum heap and start searching for the path to the end node. During each search, update the attributes of the next hop edge and the attributes of the visited nodes until the end node is found. Return the path search result and navigate based on the path search result. The attributes of the edge include the shortest distance dist from the starting node to the edge, the previous hop edge of the edge and its attribute prev, whether the edge has been visited e_visited, the position of the edge pos and the cost estimate eval; the attributes of the node include whether the node has been visited v_visited; The sorting according to the attributes of the edges includes: Sort by the sum of the edge's dist value and eval value.

2. The real-time navigation method in an indoor area according to claim 1, characterized in that: The indoor area is divided into several sub-areas, including: Think of each room as a sub-area, with sub-areas connected to each other via doors.

3. The real-time navigation method in an indoor area according to claim 1, characterized in that: The indoor area is divided into several sub-areas, including: The narrow and long area and the open area are divided into several sub-areas, and the plane coordinates of the midpoints of the boundary lines between the sub-areas are used as the coordinates of the doors connecting the sub-areas.

4. The real-time navigation method in an indoor area according to claim 1, characterized in that: Initializing the attributes of any edge and any node in the connected graph includes: The dist of the edge directly connected to the starting node is initialized to 0, and the dist of the remaining edges is initialized to +∞; The edge's prev is initialized to empty; The estimated cost of the edge, eval, is calculated using the following formula: Among them, E d represents the set of all edges connected to the terminal node d, E s represents the set of all edges connected to the starting node s, |E d | represents the set E d The number of elements in |E s | represents the set E s The number of elements in D(pos[e],pos[e i ]) represents the position of edge e and edge e i The Euclidean distance between the positions, β is an empirical parameter; D(pos[s],pos[e i ]) represents the average position of all edges connected to the starting node s and the edge e i The Euclidean distance between the locations; The e_visited attribute value of all edges is initialized to unvisited; The v_visited attribute value of the starting node s is initialized to visited, and the v_visited attribute values ​​of the remaining nodes are initialized to unvisited.

5. The real-time navigation method in an indoor area according to claim 1, characterized in that: The method extracts the smallest edge from the minimum heap and starts searching for a path to the destination node. The attributes of the next hop edge and the attributes of the visited node are updated during each search until the destination node is found. The path search result is returned, including: Denote the edge with the smallest sorting as e min , if e min The dist attribute value is +∞, indicating "destination unreachable", and navigation ends; If e min The dist attribute value is not +∞, and e min Not connected to the terminal node d, then further judge e min The v_visited attribute values ​​of the two connected nodes. If the v_visited attribute values ​​are both visited, then e min Discard it and start searching again by taking out the smallest edge from the minimum heap; otherwise, get e min The connected v_visited is the unvisited node v * , v_visited[v * ] and e_visited[e min ]Mark as visited; If e min The dist attribute value is not +∞, and e min Connected to the terminal node d, then according to e min Iterate the query on the prev attribute value until the prev attribute value is empty, and get all the edges on the path. The path search ends and the path search result is returned. Among them, in e min The dist attribute value is not +∞, and e min In the case that it is not connected to the terminal node d, it is also necessary to * Make judgments, including: If node v * is connected to the end node d, then let all the edges connecting node v * and d be the set E v*d . For calculate the Euclidean distance D(e min , e) between the position of e min and the position of e. If dist[e min +D(e min , e)<dist[e], then set dist[e] to (dist[e min +D(e min , e)), set prev[e] to e min , update the attributes of edge e, and restart the search from the edge with the smallest order retrieved from the minimum heap; If node v * is not connected to the end node d, then let all the edges connecting node v * be the set E v* . For and the e_visited attribute value of e is unvisited, calculate the Euclidean distance D(e min , e) between the position of e min and the position of e. If dist[e min +D(e min , e)<dist[e], then set dist[e] to (dist[e min +D(e min , e)), set prev[e] to e min , update the attributes of edge e, and restart the search from the edge with the smallest sort in the minimum heap.

Citation Information

Patent Citations

  • Indoor navigation method

    CN105571594A

  • Navigation method, device, navigation robot and storage medium

    CN110549339A