A task execution method and device
Through the division and serial number locking technology of narrow tunnel path points, the problems of low concurrency and deadlock in narrow tunnels are solved, and the picking efficiency is improved.
Patent Information
- Application Number
- CN202010082792.7
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2020-02-07
- Publication Date
- 2025-02-25
- Estimated Expiration
- 2040-02-07
AI Technical Summary
In warehousing and logistics, the concurrency of AGV in narrow tunnels is low, resulting in the impact of picking efficiency and deadlock problems.
By dividing the path points in the narrow tunnel, the path points that need to be locked are determined and locked according to the serial number, ensuring that the car unlocks when passing through the locking point, thereby improving the concurrency of the AGV and avoiding deadlocks.
The concurrency of AGV cars in narrow lanes is improved, the picking efficiency is improved, and the occurrence of deadlocks is avoided by sequential locking.
Smart Images

Figure CN113253713B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the technical field of warehousing logistics, and in particular to a task execution method and device. Background Art
[0002] With the development of automation technology, AGV (Automated Guided Vehicle) is increasingly used in warehousing and logistics. In some special scenarios, due to the special conditions of the production environment, there is not enough space for AGV, such as a narrow alley that can only accommodate one AGV at a time. Since the path of the narrow alley is a two-way road, the deadlock problem when multiple vehicles are running at the same time must be considered. How to make more AGVs work simultaneously in narrow alleys has become a problem that needs to be solved to improve handling efficiency in this special scenario.
[0003] In the process of implementing the present invention, the inventors found that there are at least the following problems in the prior art: the prior art directly sets the entire lane as a mutually exclusive zone, resulting in low concurrency of AGVs, which greatly affects the picking efficiency. Summary of the invention
[0004] In view of this, an embodiment of the present invention provides a task execution method and device, which can improve the concurrency of the AGV car, thereby improving the picking efficiency, and at the same time avoid the occurrence of deadlock by sequential locking.
[0005] To achieve the above object, according to one aspect of an embodiment of the present invention, a task execution method is provided, comprising:
[0006] Divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time;
[0007] Determine the first serial number of each locking point and generate a locking point set;
[0008] Determine the second serial number of each path point in the picking task path;
[0009] When the picking task path includes the locking point, taking the locking point with the smallest second sequence number that is not passed in the picking task path as the target locking point, and determining whether all the locking points in the locking point set whose first sequence number is not greater than the first sequence number of the target locking point can be locked;
[0010] If so, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to perform the picking task; when the trolley passes the locked locking point, the locking point is unlocked.
[0011] Optionally, the method also includes: after unlocking the locking point, determining a new target locking point and determining whether all locking points in the locking point set whose first serial number is not greater than the first serial number of the new target locking point can be locked until the cart completes the picking task.
[0012] Optionally, determining a new target locking point includes:
[0013] Determine whether the unlocked lock point is the lock point with the smallest first sequence number among the locked lock points;
[0014] If yes, a new target locking point is determined.
[0015] Optionally, the path points in the narrow alley are divided, and the path points that need to be locked are determined, and the path points that need to be locked are used as locking points, including: determining the starting point, end point and intersection of the narrow alley, and using the starting point, end point and intersection as locking points.
[0016] Optionally, determining whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked includes:
[0017] Determine whether all the lock points in the lock point set whose first sequence number is not greater than that before the target lock point are locked;
[0018] If there is a locked locking point, it is determined whether the direction of the locked locking point when locked is consistent with the direction of the picking task path.
[0019] Optionally, determining the first serial number of each locking point includes: sorting according to the path direction from the picking point to the unloading point or sorting according to the path direction from the unloading point to the picking point;
[0020] Determining the second serial number of each path point in the picking task path includes: sorting each path point in the picking task path according to the driving direction of the picking task path.
[0021] Optionally, dividing the path points in the narrow lane includes: determining unloading points and picking points in the narrow lane, and using the unloading points and picking points as resource points;
[0022] Before determining whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked, the method further includes:
[0023] When the end point of the picking task path is a resource point, determining whether the end point can be docked;
[0024] If so, it is determined whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked.
[0025] To achieve the above object, according to another aspect of an embodiment of the present invention, a task execution device is provided, comprising:
[0026] A division module is used to divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time;
[0027] A first sorting module is used to determine the first serial number of each locking point, generate a locking point set, sort the locking points, and obtain the locking point set;
[0028] A second sorting module, used to determine a second sequence number of each path point in the picking task path;
[0029] A locking judgment module, used for, when the picking task path includes the locking point, taking the locking point with the smallest second serial number that has not been passed in the picking task path as the target locking point, and determining whether all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point can be locked;
[0030] A locking module, used to lock all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point, and drive the trolley to move to perform the picking task;
[0031] The lock release module is used to release the lock on the locked point when the vehicle passes through the occupied locked point.
[0032] Optionally, the locking judgment module is also used to: after unlocking the locking point, determine a new target locking point and determine whether all locking points in the locking point set whose first serial number is not greater than the first serial number of the new target locking point can be locked.
[0033] Optionally, the lock determination module is further used to: determine whether the unlocked lock point is the lock point with the smallest first sequence number among the locked lock points; if so, determine a new target lock point.
[0034] Optionally, the division module is further used to: determine the starting point, end point and intersection of the narrow lane, and use the starting point, end point and intersection as locking points.
[0035] Optionally, the locking determination module is further used for:
[0036] Determine whether all the lock points in the lock point set whose first sequence number is not greater than that before the target lock point are locked;
[0037] If there is a locked locking point, it is determined whether the direction of the locked locking point when locked is consistent with the direction of the picking task path.
[0038] Optionally, the first sorting module is further used to: sort according to the path direction from the picking point to the unloading point or sort according to the path direction from the unloading point to the picking point;
[0039] The second sorting module is also used to sort the path points in the picking task path according to the driving direction of the picking task path.
[0040] Optionally, the division module is further used to: determine unloading points and picking points in narrow lanes, and use the unloading points and picking points as resource points;
[0041] The locking judgment module is also used for:
[0042] When the end point of the picking task path is a resource point, determining whether the end point can be docked;
[0043] If so, it is determined whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked.
[0044] To achieve the above-mentioned purpose, according to another aspect of an embodiment of the present invention, there is provided an electronic device, comprising: one or more processors; a storage device for storing one or more programs, wherein when the one or more programs are executed by the one or more processors, the one or more processors implement the task execution method of an embodiment of the present invention.
[0045] To achieve the above objective, according to another aspect of an embodiment of the present invention, a computer-readable medium is provided, on which a computer program is stored, and when the program is executed by a processor, the task execution method of the embodiment of the present invention is implemented.
[0046] One embodiment of the above invention has the following advantages or beneficial effects: because by dividing the path points in the narrow alley, the path points that need to be locked are determined, and the path points that need to be locked are used as locking points; the first serial number of each locking point is determined, and a locking point set is generated; the second serial number of each path point in the picking task path is determined; when the picking task path includes the locking point, the locking point with the smallest second serial number that has not been passed in the picking task path is used as the target locking point, and the locking point with a first serial number not greater than the target locking point in the locking point set that can be locked. In the case of all the locking points with the first serial number of the target locking point, all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to move to perform the picking task; when the trolley passes through the locked locking point, the locking of the locking point is unlocked, so it is not necessary for each picking task to occupy all the locking points at one time, thereby improving the concurrency of the AGV trolley, that is, increasing the number of trolleys allowed to enter the same lane at the same time, thereby improving the picking efficiency, and avoiding the occurrence of deadlock through sequential locking.
[0047] The further effects of the above-mentioned non-conventional optional manner will be described below in conjunction with the specific implementation manner. BRIEF DESCRIPTION OF THE DRAWINGS
[0048] The accompanying drawings are used to better understand the present invention and do not constitute an improper limitation of the present invention.
[0049] Figure 1 is a schematic diagram of the main process of a task execution method according to an embodiment of the present invention;
[0050] Figure 2 is a schematic diagram of a narrow lane area in a task execution method according to an embodiment of the present invention;
[0051] Figure 3 is a schematic diagram of the main process of a task execution method according to another embodiment of the present invention;
[0052] Figure 4 is a schematic diagram of the main process of a task execution method according to another embodiment of the present invention;
[0053] Figure 5 is a schematic diagram of the main modules of the task execution device according to an embodiment of the present invention;
[0054] Figure 6 is an exemplary system architecture diagram to which embodiments of the present invention may be applied;
[0055] Figure 7 It is a schematic diagram of the structure of a computer system of a terminal device or a server suitable for implementing an embodiment of the present invention. DETAILED DESCRIPTION
[0056] The following is a description of exemplary embodiments of the present invention in conjunction with the accompanying drawings, including various details of the embodiments of the present invention to facilitate understanding, which should be considered as merely exemplary. Therefore, it should be recognized by those of ordinary skill in the art that various changes and modifications may be made to the embodiments described herein without departing from the scope and spirit of the present invention. Similarly, for clarity and conciseness, the description of well-known functions and structures is omitted in the following description.
[0057] Figure 1 is a schematic diagram of the main process of the task execution method of an embodiment of the present invention, such as Figure 1 As shown, the method includes:
[0058] Step S101: Divide the path points in the narrow alley, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow alley can only accommodate one car passing through at the same time.
[0059] In this embodiment, the path points in the narrow lanes can be divided into three types: path points that need to be locked (i.e., locking points), resource points (unloading points or intermediate picking points), and path points other than locking points and resource points. More specifically, the starting point, end point, and intersection in the narrow lanes can be used as locking points.
[0060] As an example, Figure 2 As shown in the figure, the paths shown in the figure are all narrow lanes, that is, only one AGV can pass through at a time. According to the above division of path points in narrow lanes, path points A, B, C, D, E, F, G, and H in the figure are all lock points, path points J, L, and N are all resource points, and path points I, K, and M are path points other than lock points and resource points.
[0061] Step S102: Determine the first serial number of each locking point and generate a locking point set.
[0062] In this embodiment, the order of the locking points is determined based on the common driving path of the trolley, which is generally the path from the picking point to the unloading point. Therefore, in this step, the order can be sorted according to the path direction from the picking point to the unloading point. In other optional embodiments, the order can also be sorted according to the path direction from the unloading point to the picking point. As an example, Figure 2 As shown, the lock points A, B, C, D, E, F, G, and H can be sorted in order from A to H, that is, the first sequence number of the lock point A is 1, and the first sequence number of the lock point H is 8. The obtained lock point set is shown in the following Table 1:
[0063] Table 1:
[0064] serial number First serial number A 1 B 2 C 3 D 4 E 5 F 6 G 7 H 8
[0065] In other optional embodiments, the order may also be from H to A, that is, the first serial number of the locking point A is 8, and the first serial number of the locking point H is 1.
[0066] Step S103: Determine the second sequence number of each path point in the picking task path. Specifically, the path points in the picking task path may be sorted according to the driving direction of the picking task path.
[0067] As an example, if the picking task path is A→B→I→J, the second sequence number of each path point in the picking task path is shown in Table 2:
[0068] Table 2:
[0069]
[0070]
[0071] Step S104: When the locking point is included in the picking task path, the locking point with the smallest second serial number that has not been passed in the picking task path is taken as the target locking point, and it is determined whether all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point can be locked.
[0072] In this step, it can be determined whether there are locking points in the locking point set in the picking task path. If not, it means that the path points in the picking task path do not pass through the narrow aisle area, or pass through the narrow aisle area but do not need to be locked (that is, the picking task path of the trolley passes through the narrow aisle area but there is no mutual exclusion problem, and there is no possibility of collision); if so, it is necessary to lock the locking points in the picking task path in advance. When locking, it is not necessary to lock all the locking points at once. It is only necessary to lock all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point.
[0073] In an optional embodiment, before determining whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked, the method further includes:
[0074] When the end point of the picking task path is a resource point, determining whether the end point can be docked;
[0075] If so, it is determined whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked.
[0076] Among them, you can pre-configure the resource point to be occupied by several cars at the same time, that is, several cars can be parked at the same time. If a resource point can park 5 cars at the same time, and 4 cars are currently parked at the resource point, then the resource point can still park one car, and you can continue to execute the following steps. If 5 cars are currently parked at the resource point, the resource point cannot park other cars, and the loop waits until the resource point can park a car.
[0077] As an example, if the picking task path is A→B→I→J, and the end point J of the picking task path is a resource point, first determine whether the resource point J can be docked, and if so, determine the target locking point. In this embodiment, the target locking point is locking point A. Then, all the locking points before the target locking point A in the locking point set shown in Table 1 are locking point A. Then, determine whether the locking point A can be locked.
[0078] As another example, if the picking task path is L→E→D→C→B→A, and the end point of the picking task path is not a resource point, there is no need to determine whether the end point can be stopped, and the target locking point can be directly determined. In this embodiment, the target locking point is locking point E (the order of the path points in the picking task path is shown in Table 3 below). Then, in the locking point set shown in Table 1, all the locking points before the target locking point E are locking points D, C, B, and A. Then, determine whether these locking points D, C, B, and A can be locked.
[0079] Table 3:
[0080] point order L 1 E 2 D 3 C 4 B 7 A 8
[0081] In an optional embodiment, determining whether all the lock points in the lock point set whose first serial number is not greater than the first serial number of the target lock point can be locked may also include:
[0082] Determine whether all the lock points in the lock point set whose first sequence number is not greater than that before the target lock point are locked;
[0083] If there is a locked locking point, it is determined whether the direction of the locked locking point when locked is consistent with the direction of the picking task path.
[0084] More specifically, Figure 3 As shown, locking can be performed according to the following process:
[0085] Step S301: determining whether all the lock points in the lock point set whose first sequence number is not greater than that before the target lock point are locked, that is, determining whether all the lock points in the lock point set before the target lock point are locked;
[0086] Step S302: if there is a locked locking point, determining whether the direction of the locked locking point when locked is consistent with the direction of the picking task path;
[0087] Step S303: if there is no locked locking point or the locked locking point is consistent with the direction of the picking task path, then determine that all the locking points in the locking point set before the target locking point can be locked;
[0088] Step S304: if there are lock points with inconsistent directions, it is determined that all lock points before the target lock point in the lock point set cannot be locked.
[0089] As an example, assume that there are two picking tasks, that is, there are two picking task paths, namely the first picking task path A→B→I→J and the second picking task path A→B→C→D→K→L. If the locking point A has been locked by the first picking path, and the direction when locked is from A to B. When driving at the locking point in the second picking task path, it is also necessary to lock the locking point A. At this time, the locking point A has been locked, and it is necessary to determine whether the direction in which the locking point A is locked is consistent with the direction of the second picking task path. In this embodiment, the direction in which the locking point A is locked is consistent with the direction of the second picking task path, then for the second picking task path, the locking point A can be locked.
[0090] In the embodiment of the present invention, when the locking points are sorted, the state of each locking point (the state includes unlocked and locked) and the locked direction (i.e. the direction in which the vehicle enters the locking point) can be determined. As a specific example, the locking point set can be recorded as pointLockList = {pl i |<point i ,status i ,order i ,direction i ,count i >,0≤i≤n}, where point indicates the path point number; status indicates the status of the current locking point, 0 indicates unlocked, 1 indicates locked; order indicates the order of the locking points in the narrow lane area; direction indicates the direction of the lock in the locked state, which is the direction in which the AGV enters the point. The initial value is 0, indicating no direction. Other directions can be numbered in a certain order, for example Figure 2 In the figure, the lock points can be numbered in counterclockwise order, 1 represents north, 2 represents west, 3 represents south, and 4 represents east; count represents the number of locks.
[0091] In this step, by judging whether all the lock points before the target lock point in the lock point set can be locked, the lock points are locked sequentially, thereby avoiding the occurrence of deadlock.
[0092] Step S105: If it is possible to lock, then lock all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point, and drive the trolley to move to perform the picking task; when the trolley passes the locked locking point, unlock the locking point.
[0093] If locking is not possible, the process will retry step S104 in a loop.
[0094] The task execution method of the embodiment of the present invention divides the path points in the narrow alley, determines the path points that need to be locked in the path points, and uses the path points that need to be locked as locking points; determines the first serial number of each locking point and generates a locking point set; determines the second serial number of each path point in the picking task path; when the picking task path includes the locking point, uses the locking point with the smallest second serial number that has not been passed in the picking task path as the target locking point, and locks the first serial number of the target locking point in the locking point set that is not greater than the first serial number of the target locking point. In the case of all locking points, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to move to perform the picking task; when the trolley passes through the locked locking point, the locking point is unlocked. Therefore, it is not necessary for each picking task to occupy all the locking points at one time, thereby improving the concurrency of the AGV trolley, that is, increasing the number of trolleys allowed to enter the same lane at the same time, thereby improving the picking efficiency, and avoiding the occurrence of deadlock through sequential locking.
[0095] In an optional embodiment, the task execution method also includes: after the lock on the locking point is released, determining a new target locking point and determining whether all locking points in the locking point set whose first serial number is not greater than the first serial number of the new target locking point can be locked until the cart completes the picking task.
[0096] Specifically, in the example shown in Table 2, after the trolley passes through locking point A, the locking point A is unlocked, a new target locking point B is determined, and all locking points before the new target locking point in the locking point set are locking point B, then locking point B is locked, and the trolley is driven to travel. The above process is repeated until the trolley completes the picking task path and completes the picking task.
[0097] In an optional embodiment, determining a new target locking point includes:
[0098] Determine whether the unlocked lock point is the lock point with the smallest first sequence number among the locked lock points;
[0099] If yes, a new target locking point is determined.
[0100] Specifically, in the example shown in Table 3, after the car passes through the locking point E, the locking point E is unlocked, and it is determined whether the unlocked locking point E is the locking point with the smallest first sequence number among the locked locking points. In this example, the locked locking points include locking points E, D, C, B, and A, and the order of locking points D, C, B, and A in the locking point set is before locking point E, that is, the first sequence number of locking points D, C, B, and A is smaller than the first sequence number of locking point E (the locking point with the smallest first sequence number is locking point A). If locking point E is not the locking point with the smallest first sequence number, the car continues to be driven. When the car passes through locking point A and unlocks locking point A, a new target locking point is determined.
[0101] Figure 4 is a schematic diagram of the main process of the task execution method according to an embodiment of the present invention. Figure 2 Take the narrow lane shown in the figure as an example. Figure 4 As shown, the method includes:
[0102] Step S401: Divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points.
[0103] After dividing the path points in the narrow lanes, the set pointList is obtained: pointList = {p|<point, type, cache>}, where point represents the number of the path point; type represents the type of point, 1 represents a lock point, that is, a path point that needs to be locked, 2 represents a path point, that is, other points except the lock point and the resource point, 3 represents a resource point, that is, the end point (unloading point) or the intermediate stop (picking point) of the picking path; cache represents how many vehicles can occupy it at the same time, for example Figure 2 Each resource point in the table can accommodate 5 AGVs at the same time. The details are shown in Table 4 below:
[0104] Table 4:
[0105]
[0106]
[0107] Step S402: Initialize the lock point and obtain the lock point set pointLockList={pl i |<point i ,statusi ,order1 i ,direction i ,count i >,0≤i≤n}, where point represents the number of the locking point; status represents the current state of the locking point, 0 represents unlocked, 1 represents locked; order1 represents the first order of the locking point in a given area; direction represents the direction of the lock in the locked state, which is the direction in which the AGV enters the point, and the initial value is 0, which means no direction. Other directions can be numbered in a certain order, for example Figure 2 The lock points can be numbered in counterclockwise order, 1 for north, 2 for west, 3 for south, 4 for east; count represents the number of locks. Specifically, as shown in Table 5 below:
[0108] Table 5:
[0109] point status Order1 direction count A 0 1 0 0 B 0 2 0 0 C 0 3 0 0 D 0 4 0 0 E 0 5 0 0 F 0 6 0 0 G 0 7 0 0 H 0 8 0 0
[0110] Step S403: Initialize the path points in the picking task path, and obtain the picking task path point set taskPointList={tp|<point, direction, order>}. Specifically, as shown in Table 3.
[0111] Step S404: Determine whether the picking task path includes the locking point, that is, determine whether the picking task path point set taskPointList contains the locking point in the locking point set pointLockList. If not, execute step S408 to end the process; if so, execute step S405.
[0112] Step S405: If it exists, take the locking point with the smallest second serial number that has not been passed in the picking task path as the target locking point, and determine whether all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point can be locked. Specifically, determine the smallest locking point pl in pl.order in the target locking point set realPointLockList, and record it as index. Then take all the locking points pl in pointLockList that are before index as parameters (that is, the locking points A, B, C, D, and E in pointLockList are all taken as parameters), call the occupy method of the fine-grained lock, and if successful, drive the car to move; otherwise, retry in a loop;
[0113] Among them, the principle of occupying the ocuppy method is as follows:
[0114] Determine whether all the lock points in the lock point set before the target lock point are locked;
[0115] If there is no locked lock point, determine that all lock points before the target lock point in the lock point set can be locked;
[0116] If there is a locked locking point, determining whether the direction of the locked locking point when locked is consistent with the direction of the picking task path;
[0117] If the directions are consistent, determining that all locking points in the locking point set before the target locking point can be locked;
[0118] If there are locking points with inconsistent directions, it is determined that all locking points before the target locking point in the locking point set cannot be locked.
[0119] More specifically, the input parameter of the ocuppy method is: the set of points to be occupied ocuppyPointList = {op|<point,direction,order>}; the return parameter is: if the occupation is successful, return true, otherwise return false.
[0120] The description of the occupation ocuppy method is: occupy the lock point pl corresponding to op.point in the order of op.order in ocuppyPointList from small to large, that is, if the current lock point pl.status=0, then set pl.status=1, pl.direction=op.direction, pl.count=pl.count+1, indicating that the current lock point pl is locked successfully; if the current lock pl.status=1, then determine whether pl.direction=op.directions is true, if true, set pl.count=pl.count+1, indicating that the current lock point pl is occupied successfully, otherwise the current lock point fails to be locked. If all the pl corresponding to op in ocuppyPointList are occupied successfully, the occupy method returns true, otherwise, all the locked lock points pl are rolled back, and the occupy method returns false.
[0121] Step S406: If yes, lock all the locking points in the locking point set whose first serial numbers are not greater than the first serial number of the target locking point, and drive the trolley to move to perform the picking task.
[0122] Step S407: After the vehicle passes through the occupied locking point, the locking point is unlocked and step S405 is executed in a loop.
[0123] The unlocking of the lock point includes deleting the lock point pl from the realPointLockList and calling the release method.
[0124] Among them, the input parameter of the release method is: the point number poin of pl to be released, and the return parameter is: true if the release is successful, otherwise false; the method is described as: when releasing the lock pl, first check whether pl.status = 1 is true, if not, the release method directly returns false, if it is true, check whether pl.count-1 = 0 is true, if so, set pl.status = 0, pl.count = 0, and the release method returns true; otherwise, set pl.count = pl.count-1, and the release method returns true.
[0125] Figure 5 is a schematic diagram of the main modules of the task execution device 500 according to an embodiment of the present invention. Figure 5 As shown, the task execution device 500 includes:
[0126] A division module 501 is used to divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time;
[0127] A first sorting module 502, used to determine the first serial number of each locking point and generate a locking point set;
[0128] The second sorting module 503 is used to determine the second sequence number of each path point in the picking task path;
[0129] The locking judgment module 504 is used for, when the picking task path includes the locking point, taking the locking point with the smallest second sequence number that is not passed in the picking task path as the target locking point, and determining whether all the locking points in the locking point set whose first sequence number is not greater than the first sequence number of the target locking point can be locked;
[0130] The locking module 504 is used to lock all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point, and drive the trolley to move to perform the picking task;
[0131] The lock release module 505 is used to release the lock on the locking point after the vehicle passes through the locked locking point.
[0132] Optionally, the locking judgment module is also used to: after the locking point is unlocked, determine a new target locking point and determine whether all locking points in the locking point set whose first serial number is not greater than the first serial number of the new target locking point can be locked until the cart completes the picking task.
[0133] Optionally, the lock determination module is further used to: determine whether the unlocked lock point is the lock point with the smallest first sequence number among the locked lock points; if so, determine a new target lock point.
[0134] Optionally, the division module is further used to: determine the starting point, end point and intersection of the narrow lane, and use the starting point, end point and intersection as locking points.
[0135] Optionally, the locking determination module is further used for:
[0136] Determine whether all the lock points in the lock point set whose first sequence number is not greater than that before the target lock point are locked;
[0137] If there is a locked locking point, it is determined whether the direction of the locked locking point when locked is consistent with the direction of the picking task path.
[0138] Optionally, the first sorting module is further used to: sort according to the path direction from the picking point to the unloading point or sort according to the path direction from the unloading point to the picking point;
[0139] The second sorting module is also used to sort the path points in the picking task path according to the driving direction of the picking task path.
[0140] Optionally, the division module is further used to: determine unloading points and picking points in narrow lanes, and use the unloading points and picking points as resource points;
[0141] The locking judgment module is also used for:
[0142] When the end point of the picking task path is a resource point, determining whether the end point can be docked;
[0143] If so, it is determined whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked.
[0144] The task execution device of the embodiment of the present invention divides the path points in the narrow alley, determines the path points that need to be locked among the path points, and uses the path points that need to be locked as locking points; determines the first serial number of each locking point and generates a locking point set; determines the second serial number of each path point in the picking task path; when the picking task path includes the locking point, uses the locking point with the smallest second serial number that has not been passed in the picking task path as the target locking point, and locks the first serial number of the target locking point in the locking point set that is not greater than the first serial number of the target locking point. In the case of all locking points, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to move to perform the picking task; when the trolley passes through the locked locking point, the locking point is unlocked. Therefore, the embodiment of the present invention does not require each picking task to occupy all the locking points at one time, thereby improving the concurrency of the AGV trolley, that is, increasing the number of trolleys allowed to enter the same lane at the same time, thereby improving the picking efficiency, and avoiding the occurrence of deadlock through sequential locking.
[0145] The above device can execute the method provided by the embodiment of the present invention, and has the functional modules and beneficial effects corresponding to the execution method. For technical details not described in detail in this embodiment, please refer to the method provided by the embodiment of the present invention.
[0146] Figure 6 An exemplary system architecture 600 to which the task execution method or task execution apparatus according to the embodiment of the present invention can be applied is shown.
[0147] like Figure 6 As shown, system architecture 600 may include terminal devices 601, 602, 603, network 604 and server 605. Network 604 is used to provide a medium for communication links between terminal devices 601, 602, 603 and server 605. Network 604 may include various connection types, such as wired, wireless communication links or optical fiber cables, etc.
[0148] The user can use the terminal devices 601, 602, 603 to interact with the server 605 through the network 604 to receive or send messages, etc. Various communication client applications can be installed on the terminal devices 601, 602, 603, such as shopping applications, web browser applications, search applications, instant messaging tools, email clients, social platform software, etc.
[0149] The terminal devices 601 , 602 , and 603 may be various electronic devices having a display screen and supporting web browsing, including but not limited to smart phones, tablet computers, laptop computers, and desktop computers, etc.
[0150] The server 605 may be a server that provides various services, such as a backend management server that provides support for shopping websites browsed by users using the terminal devices 601, 602, and 603. The backend management server may analyze and process the received data such as product information query requests, and feed back the processing results (such as target push information and product information) to the terminal device.
[0151] It should be noted that the task execution method provided in the embodiment of the present invention is generally executed by the server 605 , and accordingly, the task execution device is generally arranged in the server 605 .
[0152] It should be understood that Figure 6 The number of terminal devices, networks and servers in the embodiment is only for illustration. Any number of terminal devices, networks and servers may be provided according to implementation requirements.
[0153] Reference below Figure 7 , which shows a schematic diagram of the structure of a computer system 700 of a terminal device suitable for implementing an embodiment of the present invention. Figure 7 The terminal device shown is only an example and should not bring any limitation to the functions and scope of use of the embodiments of the present invention.
[0154] like Figure 7 As shown, the computer system 700 includes a central processing unit (CPU) 701, which can perform various appropriate actions and processes according to a program stored in a read-only memory (ROM) 702 or a program loaded from a storage part 708 into a random access memory (RAM) 703. In the RAM 703, various programs and data required for the operation of the system 700 are also stored. The CPU 701, the ROM 702, and the RAM 703 are connected to each other via a bus 704. An input / output (I / O) interface 705 is also connected to the bus 704.
[0155] The following components are connected to the I / O interface 705: an input section 706 including a keyboard, a mouse, etc.; an output section 707 including a cathode ray tube (CRT), a liquid crystal display (LCD), etc., and a speaker, etc.; a storage section 708 including a hard disk, etc.; and a communication section 709 including a network interface card such as a LAN card, a modem, etc. The communication section 709 performs communication processing via a network such as the Internet. A drive 710 is also connected to the I / O interface 705 as needed. A removable medium 711, such as a magnetic disk, an optical disk, a magneto-optical disk, a semiconductor memory, etc., is installed on the drive 710 as needed, so that a computer program read therefrom is installed into the storage section 708 as needed.
[0156] In particular, according to the embodiments disclosed in the present invention, the process described above with reference to the flowchart can be implemented as a computer software program. For example, the embodiments disclosed in the present invention include a computer program product, which includes a computer program carried on a computer-readable medium, and the computer program includes a program code for executing the method shown in the flowchart. In such an embodiment, the computer program can be downloaded and installed from the network through the communication part 709, and / or installed from the removable medium 711. When the computer program is executed by the central processing unit (CPU) 701, the above-mentioned functions defined in the system of the present invention are executed.
[0157] It should be noted that the computer-readable medium shown in the present invention may be a computer-readable signal medium or a computer-readable storage medium or any combination of the above two. The computer-readable storage medium may be, for example, but not limited to, an electrical, magnetic, optical, electromagnetic, infrared, or semiconductor system, device or device, or any combination of the above. More specific examples of computer-readable storage media may include, but are not limited to: an electrical connection with one or more wires, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the above. In the present invention, a computer-readable storage medium may be any tangible medium containing or storing a program that can be used by or in combination with an instruction execution system, device or device. In the present invention, a computer-readable signal medium may include a data signal propagated in a baseband or as part of a carrier wave, which carries a computer-readable program code. This propagated data signal may take a variety of forms, including but not limited to electromagnetic signals, optical signals, or any suitable combination of the above. Computer-readable signal media may also be any computer-readable medium other than computer-readable storage media, which may send, propagate or transmit a program for use by or in conjunction with an instruction execution system, apparatus or device. The program code contained on the computer-readable medium may be transmitted using any appropriate medium, including but not limited to: wireless, wire, optical cable, RF, etc., or any suitable combination of the above.
[0158] The flow chart and block diagram in the accompanying drawings illustrate the possible architecture, function and operation of the system, method and computer program product according to various embodiments of the present invention. In this regard, each box in the flow chart or block diagram can represent a module, a program segment, or a part of a code, and the above-mentioned module, program segment, or a part of a code contains one or more executable instructions for realizing the specified logical function. It should also be noted that in some alternative implementations, the functions marked in the box can also occur in a different order from the order marked in the accompanying drawings. For example, two boxes represented in succession can actually be executed substantially in parallel, and they can sometimes be executed in the opposite order, depending on the functions involved. It should also be noted that each box in the block diagram or flow chart, and the combination of the boxes in the block diagram or flow chart can be implemented with a dedicated hardware-based system that performs a specified function or operation, or can be implemented with a combination of dedicated hardware and computer instructions.
[0159] The modules involved in the embodiments of the present invention may be implemented in software or hardware. The modules described may also be set in a processor. For example, they may be described as: a processor includes a sending module, an acquisition module, a determination module, and a first processing module. The names of these modules do not, in some cases, constitute a limitation on the unit itself. For example, the sending module may also be described as a "module for sending a picture acquisition request to the connected server."
[0160] As another aspect, the present invention further provides a computer-readable medium, which may be included in the device described in the above embodiment; or may exist independently without being assembled into the device. The above computer-readable medium carries one or more programs, and when the above one or more programs are executed by a device, the device includes:
[0161] Divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time;
[0162] Determine the first serial number of each locking point and generate a locking point set;
[0163] Determine the second serial number of each path point in the picking task path;
[0164] When the picking task path includes the locking point, taking the locking point with the smallest second sequence number that is not passed in the picking task path as the target locking point, and determining whether all the locking points in the locking point set whose first sequence number is not greater than the first sequence number of the target locking point can be locked;
[0165] If so, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to perform the picking task; when the trolley passes the locked locking point, the locking point is unlocked.
[0166] The technical solution of the embodiment of the present invention is to divide the path points in the narrow alley, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points; determine the first sequence number of each locking point and generate a locking point set; determine the second sequence number of each path point in the picking task path; when the picking task path includes the locking point, use the locking point with the smallest second sequence number that has not been passed in the picking task path as the target locking point, and lock the first sequence number of the target locking point in the locking point set that is not greater than the first sequence number of the target locking point. In the case of all locking points with the same serial number, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to move to perform the picking task; when the trolley passes through the locked locking point, the lock on the locking point is released. Therefore, it is not necessary for each picking task to occupy all the locking points at one time, thereby improving the concurrency of the AGV trolley, that is, increasing the number of trolleys allowed to enter the same aisle at the same time, thereby improving the picking efficiency, and at the same time avoiding the occurrence of deadlock through sequential locking.
[0167] The above specific implementations do not constitute a limitation on the protection scope of the present invention. It should be understood by those skilled in the art that various modifications, combinations, sub-combinations and substitutions may occur depending on design requirements and other factors. Any modification, equivalent substitution and improvement made within the spirit and principle of the present invention shall be included in the protection scope of the present invention.
Claims
1. A task execution method, characterized in that: include: Divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time; Determine the first serial number of each locking point and generate a locking point set; Determine the second serial number of each path point in the picking task path; When the picking task path includes the locking point, the locking point with the smallest second serial number that is not passed in the picking task path is taken as the target locking point, and it is determined whether all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point can be locked, including: determining whether all the locking points in the locking point set whose first serial number is not greater than the target locking point are locked; if there is a locked locking point, determining whether the direction of the locked locking point when locked is consistent with the direction of the picking task path; If so, all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point are locked, and the trolley is driven to perform the picking task; when the trolley passes the locked locking point, the locking point is unlocked.
2. The method according to claim 1, characterized in that The method further comprises: After the locking point is unlocked, a new target locking point is determined and it is determined whether all locking points in the locking point set whose first serial number is not greater than the first serial number of the new target locking point can be locked until the trolley completes the picking task.
3. The method according to claim 2, characterized in that Determine the new target lock points include: Determine whether the unlocked lock point is the lock point with the smallest first sequence number among the locked lock points; If yes, a new target locking point is determined.
4. The method according to claim 1, characterized in that: Dividing the path points in the narrow lane, determining the path points that need to be locked among the path points, and using the path points that need to be locked as locking points includes: The starting point, end point and intersection of the narrow lane are determined, and the starting point, end point and intersection are used as locking points.
5. The method according to any one of claims 1 to 4, characterized in that: Determining the first sequence number of each locking point includes: sorting according to the path direction from the picking point to the unloading point or sorting according to the path direction from the unloading point to the picking point; Determining the second serial number of each path point in the picking task path includes: sorting each path point in the picking task path according to the driving direction of the picking task path.
6. The method according to claim 1, characterized in that Dividing the path points in the narrow lanes includes: determining unloading points and picking points in the narrow lanes, and using the unloading points and picking points as resource points; Before determining whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked, the method further includes: When the end point of the picking task path is a resource point, determining whether the end point can be docked; If so, it is determined whether all the lock points in the lock point set whose first serial numbers are not greater than the first serial number of the target lock point can be locked.
7. A task execution device, characterized in that: include: A division module is used to divide the path points in the narrow lane, determine the path points that need to be locked among the path points, and use the path points that need to be locked as locking points, wherein the narrow lane can only accommodate one car passing through at the same time; A first sorting module, used to determine the first serial number of each locking point and generate a locking point set; A second sorting module, used to determine a second sequence number of each path point in the picking task path; A locking judgment module, for, when the picking task path includes the locking point, taking the locking point with the smallest second serial number that has not been passed in the picking task path as the target locking point, and determining whether all the locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point can be locked, including: determining whether all the locking points in the locking point set whose first serial number is not greater than the target locking point are locked; if there are locked locking points, determining whether the direction of the locked locking point when locked is consistent with the direction of the picking task path; A locking module, used to lock all locking points in the locking point set whose first serial number is not greater than the first serial number of the target locking point, and drive the trolley to move to perform the picking task; The locking release module is used to release the locking point after the vehicle passes through the locked locking point.
8. An electronic device, characterized in that: include: one or more processors; a storage device for storing one or more programs, When the one or more programs are executed by the one or more processors, the one or more processors implement the method according to any one of claims 1 to 6.
9. A computer readable medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the method according to any one of claims 1 to 6 is implemented.
Citation Information
Patent Citations
Robot path planning system and method, computer readable storage medium and device
CN110244711A
Route resource controlling method, intelligent vehicle on-board controller and object controller
EP3483031A1