Path searching method and device, electronic equipment and computer readable storage medium
By dividing the pending scheduling tasks into two groups and using buffer threads and regional threads to process them separately, the problem of increased calculation time of the path search algorithm in large-scale warehousing environments is solved, and the efficiency of robot path planning and scheduling is improved.
Patent Information
- Application Number
- CN202510771812.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2025-06-10
- Publication Date
- 2025-09-16
AI Technical Summary
The calculation time of existing path search algorithms increases in large-scale warehousing environments, affecting the efficiency of robot scheduling.
将未完成路径规划的待处理调度任务分为两组,使用缓冲线程和区域线程分别处理不同组的任务,缓冲线程处理邻近子区域的任务,区域线程处理单独子区域的任务,并行执行路径规划。
The planning and scheduling efficiency of the robot's motion path is improved, and the demand for computing resources is reduced.
Smart Images

Figure CN120653462A_ABST
Abstract
Description
Technical Field
[0001] The present application relates to the field of intelligent warehousing technology, and in particular to a path search method, device, electronic device, and computer-readable storage medium. Background Art
[0002] In the field of smart warehousing, path-finding algorithms are often used to configure robot movement paths. Current path-finding algorithms rely on real-time environmental information to centrally schedule each robot to a path that avoids spatial and temporal conflicts and ultimately leads to its respective mission destination. However, due to computational resource constraints, the computation time of existing path-finding algorithms increases with the expansion of map size and the number of robots to be scheduled, impacting robot scheduling efficiency. Summary of the Invention
[0003] Embodiments of the present application provide a path search method, device, electronic device, and computer-readable storage medium to improve the efficiency of planning a robot's motion path.
[0004] In a first aspect, an embodiment of the present application provides a path search method, which is applied to a server of a warehouse management system, and the method includes:
[0005] All pending scheduling tasks with incomplete path planning are grouped into a first group and a second group, wherein the first group includes the pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at a second preset position, where the second preset position is a position within the storage area other than the first preset position, and the first preset position is a position adjacent to a common edge between two adjacent sub-areas;
[0006] Calling a buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group;
[0007] Simultaneously, multiple regional threads are called to execute path planning of multiple pending scheduling tasks in the second group in parallel, wherein each regional thread corresponds to a sub-area in the storage area, and each regional thread only executes path planning of the pending scheduling tasks in the corresponding sub-area.
[0008] In conjunction with the first aspect above, in a possible example, the calling buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group includes:
[0009] Calling the buffer thread to plan a path of the first type of scheduled tasks in the first group to a task target location, where the task target location is a first preset location other than the current starting point;
[0010] The buffer thread is called to plan the path of the second type of scheduling tasks in the first group to the first pause point. The second type of scheduling tasks are other scheduling tasks in the first group except the first type of scheduling tasks. The first pause point is the first of the second preset positions planned in the path planning.
[0011] In conjunction with the first aspect above, in a possible example, the calling buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group includes:
[0012] If multiple buffer areas are interconnected, calling the buffer thread to serially execute the path planning of the at least one pending scheduling task in the first group, wherein the buffer area is an area at a preset distance from the common boundary of two adjacent sub-areas;
[0013] If the multiple buffer areas are isolated from each other, multiple buffer threads are called to execute path planning of multiple pending scheduling tasks in the first group in parallel.
[0014] In combination with the first aspect above, in a possible example, the simultaneously calling multiple regional threads to parallelly execute path planning for the multiple pending scheduling tasks in the second group includes:
[0015] Simultaneously, multiple regional threads are called to respectively execute path planning of the pending scheduling tasks in the corresponding sub-regions, so that each regional thread serially executes path planning of multiple pending scheduling tasks in the corresponding sub-regions.
[0016] In combination with the first aspect above, in a possible example, the simultaneously calling multiple regional threads to parallelly execute path planning for the multiple pending scheduling tasks in the second group includes:
[0017] Simultaneously calling a plurality of the regional threads to plan a path for the third type of scheduled tasks in the second group to a task target location, the task target location and the current starting point being located in the same sub-region, and the third type of scheduled tasks being intra-regional tasks;
[0018] Simultaneously calling multiple regional threads to plan the path of the fourth type of scheduling task in the second group to the second pause point, the fourth type of scheduling task is a cross-regional scheduling task, and the second pause point is the first of the first preset positions planned in the path planning.
[0019] In combination with the first aspect above, in a possible example, the method further includes:
[0020] Acquire all path points in the storage area and location information of each path point, wherein the location information includes the sub-area corresponding to the path point and the location in the sub-area;
[0021] Determining protection points among all the path points based on the position information of all the path points; the protection points include path points located within a buffer area, and the buffer area is a range with a preset distance from a common boundary of two adjacent sub-areas;
[0022] The first preset position and the second preset position are determined according to the protection point.
[0023] In combination with the foregoing first aspect, in a possible example, determining the first preset position and the second preset position according to the protection point includes:
[0024] Determine a buffer point among all the path points according to the protection point, where the buffer point is a path point that is directly connected to the protection point and is not within the preset distance;
[0025] Determining a position corresponding to the protection point and a position corresponding to the buffer point as the first preset position;
[0026] The positions corresponding to all the path points except the protection point and the buffer point are determined as the second preset positions.
[0027] In combination with the first aspect above, in a possible example, determining the protection point among all the path points according to the position information of all the path points includes:
[0028] Determine a first path point based on the position information of all the path points, where the first path point is a path point where a cross-region path exists;
[0029] Determine a second path point based on the first path point, where the second path point is a path point connected to the first path point and located within the preset distance;
[0030] The first path point and the second path point are determined as the protection points.
[0031] In combination with the first aspect above, in a possible example, the preset distance is greater than or equal to the sum of the maximum size of the robot in the storage area and a preset safety distance.
[0032] In a second aspect, an embodiment of the present application provides a path search device, which is applied to a server of a warehouse management system. The path search device includes:
[0033] a grouping unit, configured to group all pending scheduling tasks for which path planning has not been completed into a first group and a second group, wherein the first group includes the pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at a second preset position, wherein the second preset position is a position within the storage area other than the first preset position, and the first preset position is a position adjacent to a common edge between two adjacent sub-areas;
[0034] A first calling unit, configured to call a buffer thread to execute path planning of at least one of the pending scheduling tasks in the first group;
[0035] The second calling unit is used to simultaneously call multiple regional threads to parallelly execute path planning for multiple pending scheduling tasks in the second group, wherein each of the regional threads corresponds to a sub-area in the storage area, and each of the regional threads only executes path planning for the pending scheduling tasks in the corresponding sub-area.
[0036] In a third aspect, an embodiment of the present application provides an electronic device comprising a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the programs include instructions for executing the steps in the first aspect of the embodiment of the present application.
[0037] In a fourth aspect, an embodiment of the present application provides a computer storage medium that stores a computer program for electronic data exchange, wherein the computer program enables a computer to execute some or all of the steps described in the first aspect of this embodiment.
[0038] It can be seen that in the present application, the server groups all pending scheduling tasks with unfinished path planning into a first group and a second group. The first group includes pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes pending scheduling tasks whose current starting point is located at a second preset position. The second preset position is a position other than the first preset position in the storage area, and the first preset position is a position adjacent to the common edge between two adjacent sub-areas. The buffer thread is called to execute the path planning of at least one pending scheduling task in the first group. At the same time, multiple regional threads are called to execute the path planning of multiple pending scheduling tasks in the second group in parallel, wherein each regional thread corresponds to a sub-area in the storage area, and each regional thread only executes the path planning of the pending scheduling tasks in the corresponding sub-area. It can be seen that the present application configures different threads for path planning for all pending scheduling tasks with unfinished path planning according to the position of the current starting point, and can simultaneously call multiple regional threads to perform path planning for pending scheduling tasks in multiple sub-areas, which is beneficial to improving the planning efficiency of the robot's motion path, thereby improving the scheduling efficiency of the robot. BRIEF DESCRIPTION OF THE DRAWINGS
[0039] In order to more clearly illustrate the embodiments of the present application or the technical solutions in the prior art, the following briefly introduces the drawings required for use in the embodiments or the description of the prior art. Obviously, the drawings described below are only some embodiments of the present application. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0040] Figure 1 This is a schematic diagram of the architecture of a warehouse management system provided in an embodiment of the present application;
[0041] Figure 2 This is a flow chart of a path search method provided in an embodiment of the present application;
[0042] Figure 3 This is a schematic diagram of an application scenario of a path search method provided in an embodiment of the present application;
[0043] Figure 4 This is a schematic diagram of an application scenario of another path search method provided in an embodiment of the present application;
[0044] Figure 5 This is a flow chart of a planning thread performing path planning provided in an embodiment of the present application;
[0045] Figure 6 This is a partial schematic diagram of an application scenario of another path search method provided in an embodiment of the present application;
[0046] Figure 7 This is a block diagram of the functional units of a path search device provided in an embodiment of the present application;
[0047] Figure 8 This is a block diagram of the functional units of another path search device provided by an embodiment of the present application;
[0048] Figure 9 This is a block diagram of the structure of an electronic device provided in an embodiment of the present application. DETAILED DESCRIPTION
[0049] In order to enable those skilled in the art to better understand the present invention, the following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without creative work are within the scope of protection of this application.
[0050] The terms "first," "second," and the like in the specification and claims of this application and the accompanying drawings are used to distinguish between different objects, not to describe a particular order. Furthermore, the terms "including," "having," and any variations thereof, are intended to cover non-exclusive inclusions. For example, a process, method, system, product, or apparatus comprising a series of steps or elements is not limited to the listed steps or elements but may optionally include steps or elements not listed, or may optionally include other steps or elements inherent to the process, method, product, or apparatus.
[0051] References herein to "embodiments" mean that a particular feature, structure, or characteristic described in connection with the embodiments may be included in at least one embodiment of the present application. The appearance of this phrase in various places in the specification does not necessarily refer to the same embodiment, nor does it constitute an independent or alternative embodiment that is mutually exclusive of other embodiments. It is understood, both explicitly and implicitly, by those skilled in the art that the embodiments described herein may be combined with other embodiments.
[0052] The embodiments of the present application are described below with reference to the accompanying drawings.
[0053] The technical solution of this application can be applied to Figure 1The warehouse management system 10 shown includes a server 100 and a robot 200. There are multiple robots 200 in the storage area. The robots 200 can move within the storage area to complete material transportation. The storage area refers to the area managed by the warehouse management system. Specifically, the server can generate a pending scheduling task for a single task of a single robot 200. The server 100 is used to plan paths for the pending scheduling tasks corresponding to all robots 200 in the storage area that have not completed path planning. This path is the movement path of the robot 200 when performing the task.
[0054] In a specific implementation, the server 100 refers to a remote computer used to process large amounts of computing tasks and store data. The robot is an automated robot such as an AGV (Automated Guided Vehicle) or an AMR (Autonomous Mobile Robot). The types of robots include but are not limited to robots that walk on flat ground, robots that move on tracks, and robots that move by lifting and lowering. Specifically, the server 100 can be connected to multiple robots for communication respectively. The way in which the server 100 controls the robot can specifically be to send control instructions to the robot. The control instructions are at least used to instruct the robot to move according to the planned path. After receiving the control instructions, the robot can perform the corresponding operation according to the control instructions. In addition, each time the robot completes an operation according to the control instructions of the server 100, it can send a notification to the server 100 to notify the server 100 that the operation has been completed, so that the server 100 can control the robot to perform other operations again.
[0055] In a specific implementation, the server 100 can be an outsourced server, a cloud server, an edge server, etc., which is not limited here. Specifically, the server 100 may include a main thread 110, a buffer thread 120, and a regional thread 130. Among them, the main thread 110 is used to execute the following path search method. The buffer thread 120 and the regional thread 130 can respectively perform path planning for the pending scheduling tasks corresponding to different robots 200 under the control of the main thread 110. The buffer thread 120 and the regional thread 130 can realize the planning of all or part of the path corresponding to the pending scheduling tasks. Specifically, one or more buffer threads 120 can be provided, and the buffer thread 120 is used to perform path planning for at least one pending scheduling task in the first group in the following path search method. Multiple regional threads 130 can be provided, and multiple regional threads 130 can perform path planning for multiple pending scheduling tasks in the second group in the following path search method in parallel.
[0056] In a specific implementation, the server 100 in the warehouse management system 10 may also be a server cluster. In one possible example, the main thread 110, buffer thread 120, and area thread 130 may be respectively configured on different servers in the server cluster, thereby reducing the configuration requirements for single server processing.
[0057] See also Figure 2 , Figure 2 This is a flow chart of a path search method provided by an embodiment of the present application. This method can be applied in the following situations: Figure 1 The server 100 in the warehouse management system shown in FIG. Figure 2 As shown, the path search method includes:
[0058] Step S210: group all pending scheduling tasks with unfinished path planning into a first group and a second group.
[0059] Among them, the first group includes the pending scheduling tasks whose current starting point is located at the first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at the second preset position. The second preset position is other locations in the storage area except the first preset position, and the first preset position is the position adjacent to the common edge between two adjacent sub-areas.
[0060] Among them, pending scheduling tasks refer to the robot's picking and placing tasks, which are specifically full-process tasks that complete the automatic picking, handling, and placement of goods (such as material boxes, which are standardized containers for storing raw materials, semi-finished products, or finished products) according to order instructions. Each pending scheduling task includes information about the robot that performs the task (such as the robot type or the robot's current position, etc.) as well as the task starting point and task target position corresponding to the task. Among them, the task starting point usually refers to the robot's initial position, which can be the target point when the robot performed the previous task or the location of the waiting area, etc.
[0061] In a specific implementation, all pending scheduling tasks for which path planning has not been completed include at least one of: pending scheduling tasks for which path planning has not yet been completed; and pending scheduling tasks for which path planning has been partially completed. If a pending scheduling task is a task for which path planning has been completed, the pending scheduling task should also include the planned path and the target point of the planned path.
[0062] In a specific implementation, the server can determine the robot's current location as the current starting point for pending scheduled tasks that have not yet completed path planning. For pending scheduled tasks that have not yet completed path planning, the robot's current location is the target point of the previous task or the location of the waiting area. For tasks that have partially completed path planning, the robot's current location is the target point of the planned path. The server can group all pending scheduled tasks that have not completed path planning based on the location of the current starting point in the storage area, thereby forming the first and second groups described above.
[0063] Specifically, the storage area can be divided into multiple sub-areas. The shapes and sizes of the multiple sub-areas can be the same or different, and the storage area can be divided according to the needs. The area division operation can be performed manually by the administrator or by the main thread. For example, the main thread can disassemble the large-scale map corresponding to the storage area to obtain multiple sub-areas. For example, see Figure 3 The storage area can be divided into eight sub-areas: Area 1, Area 2, Area 3, Area 4, Area 5, Area 6, Area 7 and Area 8.
[0064] Step S220: calling a buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group.
[0065] The buffer thread is used to perform path planning near the common edge for a pending scheduling task corresponding to a robot whose current starting point is located near the common edge between two adjacent sub-areas.
[0066] In one possible example, the calling buffer thread executes path planning for at least one of the pending scheduling tasks in the first group, including: calling the buffer thread to plan the path of the first type of scheduling tasks in the first group to the task target position, and the task target position is a first preset position other than the current starting point; calling the buffer thread to plan the path of the second type of scheduling tasks in the first group to a first pause point, and the second type of scheduling tasks are other scheduling tasks in the first group except the first type of scheduling tasks, and the first pause point is the first of the second preset positions planned in the path planning.
[0067] The first type of scheduling tasks refers to tasks where both the current starting point and the task target are at the first preset location. The second type of scheduling tasks refers to tasks where the task target is at the second preset location. The task target for the second type of scheduling tasks can be located in any sub-area.
[0068] In a specific implementation, when grouping pending scheduling tasks, the server can further categorize the pending scheduling tasks in the first group based on their target locations, dividing them into a first category of scheduling tasks with a target location at a first preset location and a second category of scheduling tasks with a target location at a second preset location. For the first category of scheduling tasks, the server can directly call a buffer thread to plan a path for the task, with the path starting at the current starting point and ending at the target location. After the path planning is completed, the status of the pending scheduling task is updated to indicate that the path planning is complete. For the second category of scheduling tasks, the server can call a buffer thread to plan a route to a first pause point and, based on the first pause point in the planned path, determine the regional thread that will subsequently take over the pending scheduling task. This regional thread is the thread corresponding to the subregion where the first pause point is located. In other words, during the actual robot control process, the robot can first move to the first pause point in the path planned by the buffer thread, and then move along the path planned by the regional thread corresponding to the subregion where the first pause point is located. This prevents conflicts in robot control between the buffer thread and the regional thread, thereby ensuring system reliability.
[0069] It can be seen that in this example, by classifying the pending scheduling tasks in the first group into first-category scheduling tasks and second-category scheduling tasks, and then calling the buffer thread to perform path planning, the accuracy and reliability of the buffer thread path planning can be improved.
[0070] In one possible example, the calling of the buffer thread to execute the path planning of at least one of the pending scheduling tasks in the first group includes: if multiple buffer areas are interconnected, calling the buffer thread to serially execute the path planning of at least one of the pending scheduling tasks in the first group, wherein the buffer area is an area that is a preset distance away from the common boundary of two adjacent sub-areas; if multiple buffer areas are isolated, calling multiple buffer threads to parallelly execute the path planning of multiple pending scheduling tasks in the first group.
[0071] In the specific implementation, refer to Figure 4 The storage area can be divided into eight sub-areas: Area 1, Area 2, Area 3, Area 4, Area 5, Area 6, Area 7 and Area 8. The buffer area is an area with a preset distance from the common boundary of two adjacent sub-areas, that is, Figure 4 The dark area is selected by the dotted line. Figure 4As shown, when multiple buffer areas are connected, the server can be configured with a buffer thread and a number of area threads corresponding to the number of sub-areas. In this scenario, the buffer thread can plan paths for all pending scheduled tasks in the first group. Specifically, the buffer thread can serially execute path planning for multiple pending scheduled tasks in the first group. By connecting multiple buffer areas and having a single buffer thread handle path planning for pending scheduled tasks in the first group, the possibility of thread conflicts can be reduced and the reliability of system scheduling can be improved.
[0072] Alternatively, in a specific implementation, when multiple buffer regions are isolated, the server can configure multiple buffer threads and a number of regional threads corresponding to the number of sub-regions. In this scenario, the server can call multiple buffer threads to plan paths for pending scheduling tasks in different buffer regions. In this case, multiple buffer threads can process tasks in parallel to improve processing efficiency.
[0073] In a specific implementation, when the server is configured with multiple buffer threads, after classifying the pending scheduling tasks into the first and second groups, the server can further determine the corresponding buffer area for the multiple pending scheduling tasks in the first group based on the current starting point, and thus configure buffer threads for them based on their corresponding buffer areas. By configuring multiple buffer threads to execute path planning for pending scheduling tasks in different buffer areas when multiple buffer areas are isolated, the integrity and reliability of path planning within the storage area can be guaranteed. At the same time, configuring multiple buffer threads to adapt to the isolated multiple buffer areas can be more flexibly adapted to different scenarios.
[0074] Step S230: calling multiple regional threads simultaneously to execute path planning of multiple pending scheduling tasks in the second group in parallel.
[0075] Each of the regional threads corresponds to a sub-region in the storage area, and each of the regional threads only executes path planning for the pending scheduling tasks in the corresponding sub-region. Specifically, the number of regional threads corresponds to the number of sub-regions in the storage area.
[0076] In the specific implementation, after the server classifies the pending scheduling tasks into the first group and the second group, the server can determine the sub-area to which the multiple pending scheduling tasks in the second group belong based on the current starting point of the processing scheduling tasks, and determine the planning thread corresponding to the sub-area as the current planning thread corresponding to the pending scheduling task, so as to complete the allocation of the pending scheduling tasks in the second group.
[0077] In one possible example, the simultaneously calling multiple regional threads to execute the path planning of multiple pending scheduling tasks in the second group in parallel includes: simultaneously calling multiple regional threads to respectively execute the path planning of the pending scheduling tasks in the corresponding sub-regions, so that each regional thread executes the path planning of multiple pending scheduling tasks in the corresponding sub-regions in serial.
[0078] In a specific implementation, all or part of the multiple regional threads can execute path planning operations in parallel to speed up the overall path planning efficiency within the warehouse area, thereby improving the efficiency of robot scheduling. For example, if the warehouse management system configures a regional thread for each sub-area, multiple regional threads can simultaneously perform path planning for pending scheduling tasks with the current starting point in its corresponding sub-area. When a single regional thread needs to process two or more pending scheduling tasks, the regional thread can perform path planning serially for multiple pending scheduling tasks in the same sub-area to avoid path conflicts and improve the reliability of path planning.
[0079] It can be seen that in this example, by parallel processing of multiple regional threads and serial planning of multiple pending scheduling tasks managed by a single regional thread, the path planning efficiency can be improved while avoiding conflicts in the planned paths and improving the reliability of path planning.
[0080] In a possible example, the simultaneous calling of multiple regional threads to execute path planning of multiple pending scheduling tasks in the second group in parallel includes: simultaneously calling multiple regional threads to plan the path of the third type of scheduling tasks in the second group to the task target position, the task target position and the current starting point are located in the same sub-region, and the third type of scheduling tasks are intra-regional tasks; simultaneously calling multiple regional threads to plan the path of the fourth type of scheduling tasks in the second group to the second pause point, the fourth type of scheduling tasks are cross-regional scheduling tasks, and the second pause point is the first of the first preset positions planned in the path planning.
[0081] The third type of scheduling tasks refers to tasks where the current starting point and the task target location are the second preset location and are within the same sub-area. The fourth type of scheduling tasks refers to tasks where the task target location is located in the buffer area or any other sub-area other than the sub-area where the target starting point is located.
[0082] In a specific implementation, when the server groups the pending scheduling tasks, it can further classify the pending scheduling tasks in the second group according to the task target location, so as to divide the pending scheduling tasks in the second group into a third type of scheduling tasks whose task target location is located at the second preset location of the current sub-region and a fourth type of scheduling tasks whose task target location is not located at the second preset location of the current sub-region. For the third type of scheduling tasks, the server can directly call the regional thread of the sub-region where the current starting point is located to perform path planning. The starting point of the planned path is the current starting point and the end point is the task target location. After the path planning is completed, the status of the pending scheduling task is updated to confirm that the path planning has been completed. For the fourth type of scheduling tasks, the server can call the regional thread of the sub-region where the current starting point is located to plan a path for it to the second pause point. When determining that the path is planned to the second pause point, if the server is configured with a buffer thread, it is determined that the pending scheduling task will subsequently be taken over by the buffer thread. If the server is configured with multiple buffer threads, the server can determine the corresponding buffer thread to take over based on the buffer area where the second pause point is located. During the actual process of controlling the robot, the robot can first move to the second pause point in the path according to the path planned by the regional thread, and then move according to the path planned by the buffer thread corresponding to the second pause point to avoid control conflicts between the regional thread and the buffer thread, thereby ensuring the reliability of the system.
[0083] It can be seen that in this example, by classifying the pending scheduling tasks in the second group into third-category scheduling tasks and fourth-category scheduling tasks, and then calling the corresponding regional threads for path planning, the accuracy and reliability of the regional thread path planning can be improved.
[0084] In the specific implementation, refer to Figure 5 , the server configures a buffer thread as an example. When the server calls the buffer thread and the regional thread to execute the path planning of the pending scheduling tasks, the path planning of the pending scheduling tasks can be executed in the order of the time indicated by the timestamp. Specifically, the buffer thread can first execute all the pending scheduling tasks in the first group (such as Figure 5The first pending scheduling task, the second pending scheduling task, ..., the W1th pending scheduling task, etc.) are path planned, and then multiple regional threads (such as the first regional thread, the second regional thread, ..., the Eth regional thread, etc.) execute the path planning of the pending scheduling tasks in their corresponding sub-areas in parallel. For example, the first regional thread is used to perform path planning for the third pending scheduling task, the fourth pending scheduling task, ..., the W2th pending scheduling task, etc.; the second regional thread is used to perform path planning for the fifth pending scheduling task, the sixth pending scheduling task, ..., the W3th pending scheduling task, etc.; ...; the Eth regional thread is used to perform path planning for the seventh pending scheduling task, the eighth pending scheduling task, ..., the W4th pending scheduling task, etc. Alternatively, the server can also first perform path planning for the second type of scheduling tasks in the first group by the buffer thread. Afterwards, the buffer thread can execute the path planning of the first type of scheduling tasks in the first group and the processing of multiple regional threads in parallel to improve planning efficiency. There is no restriction here.
[0085] Specifically, in the above two methods, after the buffer thread performs path planning for the second-class scheduling task in the first group, the server can determine the end point of the path planned by the buffer thread for the second-class scheduling task as the updated current starting point of the second-class scheduling task, and can assign the second-class scheduling task to the second group based on the updated current starting point. When multiple regional threads perform path planning in parallel, they can perform path planning for the original pending scheduling tasks in the second group and the original second-class scheduling tasks newly added to the second group, so as to improve the efficiency of path planning. Specifically, the pending scheduling tasks corresponding to a single regional thread can be empty, that is, there are no tasks that need to be processed; or, the pending scheduling tasks corresponding to a single regional thread can only include the original pending scheduling tasks of the second group; or, the pending scheduling tasks corresponding to a single regional thread can only include the second-class scheduling tasks assigned according to the above steps; or, the pending scheduling tasks corresponding to a single regional thread can include both the original pending scheduling tasks of the second group and the second-class scheduling tasks assigned according to the above steps. The specific configuration can be based on actual conditions. In practical applications, the above method can be used to define a sequence where the buffer thread first executes path planning, followed by multiple regional threads executing path planning in parallel, as a round. The server then plans paths for all pending scheduled tasks in this cyclical manner. This method of planning paths for all pending scheduled tasks improves the overall planning efficiency of all pending scheduled tasks.
[0086] In the specific implementation, after completing the path planning of a single pending scheduling task, a single buffer thread and a single area thread can write the planned path into the path information, and update the time window occupancy information corresponding to each path point in the storage area based on the path information, thereby ensuring the orderliness of robot scheduling based on the path information.
[0087] In a specific implementation, when a robot moves along a path planned by a buffer thread or region thread, it can wait until the buffer thread or region thread completes path planning for all pending scheduled tasks it manages. Alternatively, the robot can begin moving after the buffer thread or region thread completes path planning for the robot's corresponding pending scheduled tasks, improving task execution efficiency.
[0088] It can be seen that in the present application, the server groups all pending scheduling tasks with unfinished path planning into a first group and a second group. The first group includes pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes pending scheduling tasks whose current starting point is located at a second preset position. The second preset position is a position other than the first preset position in the storage area, and the first preset position is a position adjacent to the common edge between two adjacent sub-areas. The buffer thread is called to execute the path planning of at least one pending scheduling task in the first group. At the same time, multiple regional threads are called to execute the path planning of multiple pending scheduling tasks in the second group in parallel, wherein each regional thread corresponds to a sub-area in the storage area, and each regional thread only executes the path planning of the pending scheduling tasks in the corresponding sub-area. It can be seen that the present application configures different threads for path planning for all pending scheduling tasks with unfinished path planning according to the position of the current starting point, and can simultaneously call multiple regional threads to perform path planning for pending scheduling tasks in multiple sub-areas, which is beneficial to improving the planning efficiency of the robot's motion path, thereby improving the scheduling efficiency of the robot.
[0089] See also Figure 5 In one possible example, the method further includes: obtaining all path points in the storage area and location information of each path point, the location information including the sub-area corresponding to the path point and the location in the sub-area; determining protection points among all the path points based on the location information of all the path points; the protection points include path points located in a buffer area, and the buffer area is a range with a preset distance from the common boundary of two adjacent sub-areas; and determining the first preset position and the second preset position based on the protection points.
[0090] The first and second preset locations are pre-set path points within the storage area. The path point information can be identified and confirmed through QR code location information recognition, Bluetooth location recognition, or laser location recognition. The path point information includes the location of the path point and information about other path points connected to the path point.
[0091] In a specific implementation, all path points within a preset distance from the common boundary of two adjacent sub-areas can be determined as protection points based on the path point location information. The location of the path point corresponding to the protection point is then determined as the first preset location, and the location of the path point corresponding to the non-protection point is determined as the second preset location. This improves the simplicity of the method for determining the first and second preset locations.
[0092] Alternatively, in a specific implementation, the determining of the protection points among all the path points based on the location information of all the path points includes: determining a first path point based on the location information of all the path points, the first path point being a path point where there is a cross-regional path; determining a second path point based on the first path point, the second path point being a path point connected to the first path point and located within the preset distance; and determining the first path point and the second path point as the protection points.
[0093] A cross-region path refers to a path formed by a path point and other connected path points that cross regions. A connection between path points refers to a path between them that the robot can travel on.
[0094] The second path point and the first path point are directly connected or indirectly connected.
[0095] In a specific implementation, the determination of the first preset position and the second preset position can be completed before the first path planning is performed; or, the initial setting can be performed when the path planning is performed for the first time. No further restrictions are imposed here.
[0096] Specifically, when determining protection points, first, based on the location information of the path points, a first path point with a cross-regional path can be determined. Then, for each first path point, the following steps are performed: all path points connected to the first path point are determined, and path points located within a preset distance are determined as second path points directly connected to the first path point. Then, among all path points directly connected to these second path points, path points located within a preset distance are determined as second path points indirectly connected to the first path point. The above method is then recursively repeated for the newly added indirectly connected second path points until all second path points connected to the first path point and located within the preset distance are determined. Thus, all first path points and all second path points are statistically determined as protection points.
[0097] For example, see Figure 6 When determining the protection points, the multiple path points can be first classified based on the location information of the multiple path points (i.e., the path points corresponding to sequence numbers 0-13) and the dividing line between area 1 and area 2, so that the path points corresponding to sequence numbers 0, 3, 4, 6, 8, 9, 11, and 12 are determined as path points in area 1. The path points corresponding to sequence numbers 1, 2, 5, 7, 10, and 13 are determined as path points in area 2. Then, based on the connection relationship between different path points, it can be determined that sequence numbers 0, 1, 4, 5, 6, and 7 are the first path points with cross-area paths. After determining the first path point, all path points directly connected to the first path point can be determined, i.e., the path points corresponding to sequence numbers 2, 3, 8, and 10. Among them, the path points corresponding to sequence numbers 3 and 8 are located within the preset distance, so the path points corresponding to sequence numbers 3 and 8 are determined as the second path points directly connected to the first path point. Then, based on sequence numbers 3 and 8, we can determine the path points connected to sequence number 8, namely sequence numbers 9 and 11. Since the path points corresponding to sequence numbers 9 and 11 are not within the preset distance, the recursive loop for sequence number 8 ends. Figure 6 In the application scenario shown, the protection points include sequence numbers 0, 1, 3, 4, 5, 6, 7, and 8.
[0098] As can be seen, in this example, by first identifying a first protection point where a cross-region path exists, and then determining a second protection point connected to the first protection point, the identification of protection points can be achieved, thereby reducing the complexity of protection point identification and improving protection point determination efficiency. Furthermore, compared to directly identifying protection points based on path points within a preset distance, this can improve the comprehensiveness and accuracy of protection point identification.
[0099] In one possible example, determining the first preset position and the second preset position based on the protection point includes: determining a buffer point among all the path points based on the protection point, the buffer point being a path point directly connected to the protection point and not located within the preset distance; determining the position corresponding to the protection point and the position corresponding to the buffer point as the first preset position; and determining the position corresponding to all the path points except the protection point and the buffer point as the second preset position.
[0100] In a specific implementation, if the path points within the preset distance are directly determined as protection points in the above manner, then when determining the buffer points, the non-protection points connected to the protection points can be directly determined as buffer points.
[0101] Alternatively, in a specific implementation, if the first path point in the protection point is first determined in the above manner, and then the second path point connected to the first path point is determined, the buffer point connected to the first path point can be identified in the process of determining the second path point directly connected to the first path point, and the buffer point connected to the second path point can be identified in the process of searching for the second path point indirectly connected to the first path point in a cyclic recursive manner based on the determined second path point, thereby completing the determination of the buffer point. For example, Figure 6 As shown in the figure, the path points corresponding to serial numbers 2, 9, 10, and 11 are buffer points.
[0102] In a specific implementation, after the guard points and buffer points are determined, the locations corresponding to the guard points and buffer points can be determined as the first preset locations, and the locations corresponding to other path points other than the guard points and buffer points can be determined as the second preset locations. In other words, the buffer thread will handle the path planning for the pending scheduled tasks corresponding to the robots at the guard points and buffer points, while the regional threads corresponding to the regions to which the other path points belong will handle the path planning for the pending scheduled tasks corresponding to the robots at other path points.
[0103] In a specific implementation, the first pause point is a non-buffering point and a non-protection point, and the second pause point is a buffering point.
[0104] It can be seen that in this example, by further setting buffer points on the basis of protection points, the path points planned by the buffer thread can be expanded. On the basis of not interfering with the path planning of the regional thread, it can be avoided that the regional thread includes protection points in the path planned for the robot when planning the path across regions, thereby avoiding the robot entering the preset distance and conflicting with the path planned by the regional thread of the adjacent area.
[0105] In a possible example, the preset distance is greater than or equal to the sum of the maximum size of the robot in the storage area and a preset safety distance.
[0106] The maximum size of a robot within a storage area refers to the size of the largest robot among all robots within the storage area. The preset safety distance refers to the minimum distance that a robot should maintain from its surroundings to avoid collisions during movement.
[0107] In this example, by setting the preset distance to be greater than or equal to the sum of the maximum size of the robots in the storage area and the preset safety distance, it can be ensured that the robot of the largest size can also move safely according to the path planned by the buffer thread, which is conducive to improving the reliability of path planning.
[0108] The present application can divide the server into functional units according to the above method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one processing unit. The above integrated unit can be implemented in the form of hardware or in the form of software functional units. It should be noted that the division of units in the embodiment of the present application is schematic and is only a logical functional division. In actual implementation, there may be other division methods.
[0109] In accordance with the above-mentioned embodiment, please refer to Figure 7 , Figure 7 This is a block diagram of the functional units of a path search device provided in an embodiment of the present application. The path search device is the above-mentioned server or a part of the server. The path search device 70 includes:
[0110] The grouping unit 710 is configured to group all pending scheduling tasks for which path planning has not been completed into a first group and a second group, wherein the first group includes the pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at a second preset position, where the second preset position is a position within the storage area other than the first preset position, and the first preset position is a position adjacent to a common edge between two adjacent sub-areas;
[0111] A first calling unit 720 is configured to call a buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group;
[0112] The second calling unit 730 is used to simultaneously call multiple regional threads to parallelly execute path planning for multiple pending scheduling tasks in the second group, wherein each of the regional threads corresponds to a sub-area in the storage area, and each of the regional threads only executes path planning for the pending scheduling tasks in the corresponding sub-area.
[0113] In one possible example, in terms of calling the buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group, the first calling unit is specifically used to: call the buffer thread to plan the path of the first type of scheduling tasks in the first group to the task target position, and the task target position is a first preset position other than the current starting point; call the buffer thread to plan the path of the second type of scheduling tasks in the first group to a first pause point, and the second type of scheduling tasks are other scheduling tasks in the first group except the first type of scheduling tasks, and the first pause point is the first of the second preset positions planned in the path planning.
[0114] In one possible example, in terms of calling the buffer thread to execute the path planning of at least one of the pending scheduling tasks in the first group, the first calling unit is specifically used to: if multiple buffer areas are interconnected, call the buffer thread to serially execute the path planning of at least one of the pending scheduling tasks in the first group, wherein the buffer area is an area that is a preset distance away from the common boundary of two adjacent sub-areas; if multiple buffer areas are isolated, call multiple buffer threads to execute the path planning of multiple pending scheduling tasks in the first group in parallel.
[0115] In one possible example, in terms of simultaneously calling multiple regional threads to execute path planning for multiple pending scheduling tasks in the second group in parallel, the second calling unit is specifically used to: simultaneously call multiple regional threads to respectively execute path planning for the pending scheduling tasks in the corresponding sub-regions, so that each regional thread serially executes path planning for multiple pending scheduling tasks in the corresponding sub-regions.
[0116] In one possible example, in terms of simultaneously calling multiple regional threads to parallelly execute path planning for multiple pending scheduling tasks in the second group, the second calling unit is specifically used to: simultaneously call multiple regional threads to plan the path of the third type of scheduling task in the second group to the task target position, the task target position and the current starting point are located in the same sub-region, and the third type of scheduling task is an intra-regional task; simultaneously call multiple regional threads to plan the path of the fourth type of scheduling task in the second group to a second pause point, the fourth type of scheduling task is a cross-regional scheduling task, and the second pause point is the first of the first preset positions planned in the path planning.
[0117] In one possible example, the path search device also includes a determination unit, which is used to: obtain all path points in the storage area and the location information of each path point, the location information including the sub-area corresponding to the path point and the location in the sub-area; determine the protection points among all the path points based on the location information of all the path points; the protection points include path points located in a buffer area, and the buffer area is a range with a preset distance from the common boundary of two adjacent sub-areas; determine the first preset position and the second preset position based on the protection points.
[0118] In one possible example, in terms of determining the first preset position and the second preset position based on the protection point, the determination unit is specifically used to: determine a buffer point among all the path points based on the protection point, the buffer point being a path point that is directly connected to the protection point and is not within the preset distance; determine the position corresponding to the protection point and the position corresponding to the buffer point as the first preset position; and determine the position corresponding to all the path points except the protection point and the buffer point as the second preset position.
[0119] In one possible example, in terms of determining the protection points among all the path points based on the location information of all the path points, the determination unit is specifically used to: determine a first path point based on the location information of all the path points, the first path point being a path point where there is a cross-regional path; determine a second path point based on the first path point, the second path point being a path point connected to the first path point and located within the preset distance; and determine the first path point and the second path point as the protection points.
[0120] In a possible example, the preset distance is greater than or equal to the sum of the maximum size of the robot in the storage area and a preset safety distance.
[0121] It can be understood that since the method embodiment and the device embodiment are different presentation forms of the same technical concept, the content of the method embodiment part in this application should be synchronously adapted to the device embodiment part and will not be repeated here.
[0122] In the case of using an integrated unit, the functional unit composition block diagram of another path search device provided by the embodiment of the present application is as follows: Figure 8 As shown. Figure 8 In the embodiment, the path search device 70 includes: a processing module 820 and a communication module 810. The processing module 820 is used to control and manage the actions of the path search device 70, for example, the steps performed by the grouping unit 710, the first calling unit 720 and the second calling unit 730, and / or other processes for performing the technology described herein. The communication module 810 is used to support the interaction between the path search device 70 and other devices. Figure 8 As shown, the path search device 70 may further include a storage module 830 , and the storage module 830 is used to store program codes and data of the path search device 70 .
[0123] Among them, the processing module 820 can be a processor or controller, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an ASIC, an FPGA or other programmable logic device, a transistor logic device, a hardware component or any combination thereof. It can implement or execute the various exemplary logic blocks, modules and circuits described in conjunction with the disclosure of the embodiments of the present application. The processor can also be a combination that implements computing functions, for example, a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like. The communication module 810 can be a transceiver, an RF circuit or a communication interface, etc. The storage module 830 can be a memory.
[0124] Among them, all relevant contents of each scenario involved in the above method embodiment can be referred to the functional description of the corresponding functional module, and will not be repeated here. The above path search device 70 can execute the above Figure 2 The path search method shown.
[0125] Figure 9 This is a block diagram of the structure of an electronic device provided in an embodiment of the present application. Figure 9 As shown, electronic device 900 can be a server or robot in the above-mentioned warehouse management system. The electronic device may include a processor 910, a memory 920, a communication interface 930, and one or more programs 921, wherein the processor 910, the memory 920, and the communication interface 930 are interconnected and perform communication work between them. The one or more programs 921 are stored in the above-mentioned memory 920 and are configured to be executed by the above-mentioned processor 910. The one or more programs 921 include instructions for executing any step in the above-mentioned method embodiment.
[0126] Among them, the communication interface 930 is used to support the communication of the electronic device 900 with other devices. The processor 910 can be, for example, a central processing unit (CPU), a general-purpose processor, a digital signal processor (DSP), an application-specific integrated circuit (ASIC), a field programmable gate array (FPGA) or other programmable logic devices, transistor logic devices, hardware components or any combination thereof. It can implement or execute the various exemplary logic blocks, units and circuits described in conjunction with the disclosure of the embodiments of the present application. The processor can also be a combination that implements a computing function, such as a combination of one or more microprocessors, a combination of a DSP and a microprocessor, and the like.
[0127] The memory 920 may be a volatile memory or a nonvolatile memory, or may include both volatile and nonvolatile memories. The nonvolatile memory may be a read-only memory (ROM), a programmable read-only memory (PROM), an erasable programmable read-only memory (EPROM), an electrically erasable programmable read-only memory (EEPROM), or a flash memory. The volatile memory may be a random access memory (RAM), which is used as an external cache. By way of example and not limitation, many forms of random access memory are available, such as static random access memory (SRAM), dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), double data rate synchronous dynamic random access memory (DDR SDRAM), enhanced synchronous dynamic random access memory (ESDRAM), synchronous link dynamic random access memory (SynchLink DRAM, SLDRAM), and direct RAM bus random access memory (DRRAM).
[0128] In a specific implementation, the processor 910 is used to execute any step in the above method embodiment, and when performing data transmission such as sending, it can choose to call the communication interface 930 to complete the corresponding operation.
[0129] It should be noted that the structural diagram of the electronic device 900 is merely an example, and the specific components included may be more or less, and this is not a sole limitation.
[0130] The present application can divide the functional units of the electronic device according to the above method examples. For example, each functional unit can be divided according to each function, or two or more functions can be integrated into one processing unit. The above-mentioned integrated unit can be implemented in the form of hardware or in the form of software functional units. It should be noted that the division of units in the embodiments of the present application is schematic and is only a logical function division. There may be other division methods in actual implementation.
[0131] An embodiment of the present application also provides a computer-readable storage medium, wherein the computer-readable storage medium stores a computer program for electronic data exchange, and the computer program enables a computer to execute part or all of the steps of any method described in the above method embodiments, and the above computer includes a server.
[0132] Embodiments of the present application also provide a computer program product, comprising a non-transitory computer-readable storage medium storing a computer program, wherein the computer program is operable to cause a computer to execute some or all of the steps of any of the path search methods described in the above method embodiments. The computer program product may be a software installation package.
[0133] It should be noted that for the aforementioned method embodiments, for the sake of simplicity, they are all expressed as a series of action combinations, but those skilled in the art should be aware that this application is not limited by the order of the actions described, because according to this application, certain steps can be performed in other orders or simultaneously. Secondly, those skilled in the art should also be aware that the embodiments described in the specification are all preferred embodiments, and the actions and modules involved are not necessarily required by this application.
[0134] In the above embodiments, the description of each embodiment has its own focus. For parts that are not described in detail in a certain embodiment, reference can be made to the relevant descriptions of other embodiments.
[0135] In the several embodiments provided in this application, it should be understood that the disclosed devices can be implemented in other ways. For example, the device embodiments described above are merely illustrative. For example, the division of the above-mentioned units is only a logical function division. In actual implementation, there may be other division methods, such as multiple units or components can be combined or integrated into another system, or some features can be ignored or not executed. Another point is that the mutual coupling or direct coupling or communication connection shown or discussed can be through some interfaces, and the indirect coupling or communication connection of devices or units can be electrical or other forms.
[0136] The units described above as separate components may or may not be physically separate, and the components shown as units may or may not be physical units, that is, they may be located in one place or distributed across multiple network units. Some or all of these units may be selected according to actual needs to achieve the purpose of the solution of this embodiment.
[0137] In addition, the functional units in the various embodiments of the present application may be integrated into a single processing unit, or each unit may exist physically separately, or two or more units may be integrated into a single unit. The aforementioned integrated units may be implemented in the form of hardware or software functional units.
[0138] If the above-mentioned integrated unit is implemented in the form of a software functional unit and sold or used as an independent product, it can be stored in a computer-readable memory. Based on this understanding, the technical solution of the present application, or the part that contributes to the prior art, or all or part of the technical solution can be embodied in the form of a software product, which is stored in a memory and includes a number of instructions for enabling a computer device (which can be a personal computer, server or network device, etc.) to execute all or part of the steps of the above-mentioned methods of each embodiment of the present application. The aforementioned memory includes: various media that can store program codes, such as a USB flash drive, a read-only memory (ROM), a random access memory (RAM), a mobile hard disk, a magnetic disk or an optical disk.
[0139] Those skilled in the art will understand that all or part of the steps in the various methods of the above embodiments can be completed by instructing the relevant hardware through a program, and the program can be stored in a computer-readable memory, which may include: a flash drive, ROM, RAM, a magnetic disk or an optical disk, etc.
[0140] The above is a detailed introduction to the embodiments of the present application. Specific examples are used herein to illustrate the principles and implementation methods of the present application. The description of the above embodiments is only used to help understand the method and core idea of the present application. At the same time, for those skilled in the art, according to the idea of the present application, there may be changes in the specific implementation methods and application scope. In summary, the content of this specification should not be understood as a limitation on the present application.
Claims
1. A path search method, characterized in that: Applied to a server of a warehouse management system, the method comprises: All pending scheduling tasks with incomplete path planning are grouped into a first group and a second group, wherein the first group includes the pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at a second preset position, where the second preset position is a position within the storage area other than the first preset position, and the first preset position is a position adjacent to a common edge between two adjacent sub-areas; Calling a buffer thread to execute path planning for at least one of the pending scheduling tasks in the first group; Simultaneously, multiple regional threads are called to execute path planning of multiple pending scheduling tasks in the second group in parallel, wherein each regional thread corresponds to a sub-area in the storage area, and each regional thread only executes path planning of the pending scheduling tasks in the corresponding sub-area.
2. The method according to claim 1, characterized in that The calling buffer thread executes path planning of at least one of the pending scheduling tasks in the first group, including: Calling the buffer thread to plan a path of the first type of scheduled tasks in the first group to a task target location, where the task target location is a first preset location other than the current starting point; The buffer thread is called to plan the path of the second type of scheduling tasks in the first group to the first pause point. The second type of scheduling tasks are other scheduling tasks in the first group except the first type of scheduling tasks. The first pause point is the first of the second preset positions planned in the path planning.
3. The method according to claim 1 or 2, characterized in that The calling buffer thread executes path planning of at least one of the pending scheduling tasks in the first group, including: If multiple buffer areas are interconnected, calling the buffer thread to serially execute the path planning of the at least one pending scheduling task in the first group, wherein the buffer area is an area at a preset distance from the common boundary of two adjacent sub-areas; If the multiple buffer areas are isolated from each other, multiple buffer threads are called to execute path planning of multiple pending scheduling tasks in the first group in parallel.
4. The method according to claim 1, wherein The simultaneously calling multiple regional threads to execute path planning of the multiple pending scheduling tasks in the second group in parallel includes: Simultaneously, multiple regional threads are called to respectively execute path planning of the pending scheduling tasks in the corresponding sub-regions, so that each regional thread serially executes path planning of multiple pending scheduling tasks in the corresponding sub-regions.
5. The method according to claim 1 or 4, characterized in that The simultaneously calling multiple regional threads to execute path planning of the multiple pending scheduling tasks in the second group in parallel includes: Simultaneously calling a plurality of the regional threads to plan a path for the third type of scheduled tasks in the second group to a task target location, the task target location and the current starting point being located in the same sub-region, and the third type of scheduled tasks being intra-regional tasks; Simultaneously calling multiple regional threads to plan the path of the fourth type of scheduling task in the second group to the second pause point, the fourth type of scheduling task is a cross-regional scheduling task, and the second pause point is the first of the first preset positions planned in the path planning.
6. The method according to claim 1, wherein The method further comprises: Acquire all path points in the storage area and location information of each path point, wherein the location information includes the sub-area corresponding to the path point and the location in the sub-area; Determining protection points among all the path points based on the position information of all the path points; the protection points include path points located within a buffer area, and the buffer area is a range with a preset distance from a common boundary of two adjacent sub-areas; The first preset position and the second preset position are determined according to the protection point.
7. The method according to claim 6, wherein The determining the first preset position and the second preset position according to the protection point includes: Determine a buffer point among all the path points according to the protection point, where the buffer point is a path point that is directly connected to the protection point and is not within the preset distance; Determining a position corresponding to the protection point and a position corresponding to the buffer point as the first preset position; The positions corresponding to all the path points except the protection point and the buffer point are determined as the second preset positions.
8. The method according to claim 6, wherein The determining of the protection points among all the path points according to the position information of all the path points includes: Determine a first path point based on the position information of all the path points, where the first path point is a path point where a cross-region path exists; Determine a second path point based on the first path point, where the second path point is a path point connected to the first path point and located within the preset distance; The first path point and the second path point are determined as the protection points.
9. The method according to claim 6, wherein The preset distance is greater than or equal to the sum of the maximum size of the robot in the storage area and the preset safety distance.
10. A route search device, characterized in that: Applied to a server of a warehouse management system, the path search device includes: a grouping unit, configured to group all pending scheduling tasks for which path planning has not been completed into a first group and a second group, wherein the first group includes the pending scheduling tasks whose current starting point is located at a first preset position, and the second group includes the pending scheduling tasks whose current starting point is located at a second preset position, wherein the second preset position is a position within the storage area other than the first preset position, and the first preset position is a position adjacent to a common edge between two adjacent sub-areas; A first calling unit, configured to call a buffer thread to execute path planning of at least one of the pending scheduling tasks in the first group; The second calling unit is used to simultaneously call multiple regional threads to parallelly execute path planning for multiple pending scheduling tasks in the second group, wherein each of the regional threads corresponds to a sub-area in the storage area, and each of the regional threads only executes path planning for the pending scheduling tasks in the corresponding sub-area.
11. An electronic device, characterized in that: The method comprises a processor, a memory, a communication interface, and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the processor, and the programs include instructions for executing the steps in the method according to any one of claims 1 to 9.
12. A computer-readable storage medium, characterized in that A computer program for electronic data exchange is stored, wherein the computer program enables a computer to execute the steps of the method according to any one of claims 1 to 9.