WO2024259634A1 - 搬运机器人运动规划方法、装置、设备及存储介质 - Google Patents
搬运机器人运动规划方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- WO2024259634A1 WO2024259634A1 PCT/CN2023/101724 CN2023101724W WO2024259634A1 WO 2024259634 A1 WO2024259634 A1 WO 2024259634A1 CN 2023101724 W CN2023101724 W CN 2023101724W WO 2024259634 A1 WO2024259634 A1 WO 2024259634A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- transport
- task
- path
- handling
- robot
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Ceased
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Program-controlled manipulators
- B25J9/16—Program controls
Definitions
- the present invention relates to the field of robotics technology, and in particular to a method, device, equipment and storage medium for motion planning of a handling robot.
- the purpose of the embodiments of this specification is to provide a method, device, equipment and storage medium for motion planning of a handling robot to reduce or avoid conflicts between multiple handling tasks.
- an embodiment of this specification provides a method for motion planning of a handling robot, comprising:
- an exclusive target transport resource is allocated to the transport task;
- the target transport resource includes a location point and a transport robot;
- the transport subtask sequence is provided to the transport robot for execution.
- the transport robot motion planning method of the embodiment of this specification after confirming whether the transport system currently has available transport resources that meet the transport task, it also includes:
- the corresponding transport task is allocated an exclusive target transport resource, and the waiting queue is updated.
- the detecting whether a deadlock loop exists in an unfinished handling path includes:
- next position point is sequentially placed in the first array, and it is determined whether there is a deadlock loop in the traversal path segment from the first traversal starting point to the next position point of the next position point, until the traversal of all position points in the transport path is completed.
- the detecting whether there is a deadlock loop in the unfinished handling path further includes:
- next position point is sequentially placed in the second array, and it is determined whether there is a deadlock loop in the path segment from the second traversal starting point to the next position point of the next position point, until the transport is completed. Traversal of all the locations in the path.
- the execution of the preset deadlock closed loop release logic includes:
- the transport robot is instructed to transport materials at any position point on the closed-loop path to a cache position point to release the occupation of the position point by the corresponding transport task.
- the allocation of exclusive target transport resources for the transport task includes:
- An exclusive target transport resource is allocated according to the number of available transport resources and the task attributes of the transport task.
- the embodiment of this specification also provides a transport robot motion planning device, including:
- a receiving module used for receiving a request to create a transport task
- a confirmation module configured to confirm, in response to the creation request, whether there are currently available transport resources in the transport system that meet the transport task;
- An allocation module configured to allocate an exclusive target transport resource to the transport task when there are available transport resources that meet the transport task;
- the target transport resource includes a location point and a transport robot;
- a planning module used for planning a transport path according to the location points
- a splitting module used for splitting the transport task into a sequence of transport subtasks according to the transport path
- a module is provided, for providing the transport subtask sequence to the transport robot for execution.
- an embodiment of the present specification further provides a computer device, including a memory, a processor, and a computer program stored in the memory, wherein when the computer program is executed by the processor, the instructions of the above method are executed.
- an embodiment of the present specification further provides a computer storage medium on which a computer program is stored.
- the computer program is executed by a processor of a computer device, the instructions of the above method are executed.
- an embodiment of the present specification further provides a computer program product, wherein the computer program product includes a computer program, and when the computer program is executed by a processor of a computer device, the computer program executes instructions of the above method.
- the transport resources of the transport system can be dynamically maintained and managed in the embodiments of the present specification. Whenever a user has a transport task requirement, the transport system can be queried first to see whether there are currently available transport resources that meet the transport task. When there are available transport resources that meet the transport task, exclusive target transport resources are allocated to the transport task, thereby effectively reducing the possibility of conflicts between different transport tasks due to competition for transport resources. Moreover, since in the embodiments of the present specification, the entire transport task is split into multiple transport subtasks for separate execution, it is easier to implement, and when there is no dependency between the transport subtasks, The transport subtasks can also be executed in parallel, thereby improving the transport efficiency.
- FIG1 is a schematic diagram showing the structure of a transport robot motion planning system in some embodiments of this specification.
- FIG2 shows a flow chart of a method for motion planning of a handling robot in some embodiments of this specification
- FIG3 shows an application scenario intention of the transport robot motion planning in some embodiments of this specification
- FIG4 shows the application scenario intention of the motion planning of the handling robot in other embodiments of this specification
- FIG5 shows the application scenario intention of the motion planning of the handling robot in other embodiments of this specification
- FIG6 shows the application scenario intention of the transport robot motion planning in other embodiments of this specification.
- FIG7a shows a schematic diagram of a check path for a forward traversal check deadlock loop in an exemplary embodiment of this specification
- FIG7b shows a schematic diagram of a check path for reverse traversal check of a deadlock closed loop in an exemplary embodiment of this specification
- FIG8a shows a schematic diagram of a deadlock closed loop in an exemplary embodiment of the present specification
- FIG. 8b to 8e are schematic diagrams showing a process of releasing the deadlock closed loop shown in FIG. 8a;
- FIG9 shows a block diagram of a motion planning device for a handling robot in some embodiments of this specification.
- FIG. 10 shows a structural block diagram of a computer device in some embodiments of the present specification.
- the embodiments of this specification relate to motion planning technology for handling robots to reduce or avoid conflicts between multiple handling tasks, and can be applied to any application scenario where a handling robot is required to handle materials. Therefore, in the following embodiments of the specification, the application scenario of material handling between biological experimental equipment is only used as an example and should not be understood as the only limitation on the application scenarios of the embodiments of this specification.
- FIG1 shows a schematic diagram of a transport robot motion planning system (hereinafter referred to as the transport system) of some embodiments of the present specification, and the application scenario includes a client 10, a transport robot server 20, and a transport robot 30.
- the transport robot server 20 can be configured to: receive a creation request for a transport task sent by the client 10; in response to the creation request, confirm whether there are currently available transport resources in the transport system that meet the transport task; when there are available transport resources that meet the transport task, allocate exclusive target transport resources to the transport task; the target transport resources include a location point and a transport robot 30; plan a transport path according to the location point; and follow the transport task to complete the transport task.
- the path divides the transport task into a transport subtask sequence; and provides the transport subtask sequence to the transport robot 30 for execution.
- the client 10 may be a mobile terminal (i.e., a smart phone), a display, a desktop computer, a tablet computer, a laptop computer, a digital assistant, or a smart wearable device, etc.
- the smart wearable device may include a smart bracelet, a smart watch, smart glasses, or a smart helmet, etc.
- the client 10 is not limited to the above-mentioned electronic devices with a certain entity, and it may also be software running in the above-mentioned electronic devices.
- the transport robot server 20 may be an electronic device with computing and network interaction functions; or it may be software running in the electronic device and providing business logic for data processing and network interaction.
- the handling robot 30 may be any industrial robot capable of performing automated handling operations; wherein the handling operation means that the handling robot 30 device can carry materials and move them from one location to another. It is understood that the handling in the embodiments of the present specification may refer to translation, rotation, or a combination thereof.
- FIG. 1 is only an application environment provided by this specification. In actual applications, in addition to the fact that there can be multiple transfer robots 30, there can also be multiple clients 10 and multiple transfer robot servers 20, and this specification does not impose any restrictions.
- the embodiments of this specification provide a method for motion planning of a transport robot, which can be applied to the above-mentioned transport robot server side.
- the method for motion planning of a transport robot may include the following steps:
- Step 201 Receive a request to create a transport task.
- Step 202 In response to the creation request, confirm whether the transportation system currently has available transportation resources that meet the transportation task.
- Step 203 when there are available transport resources that meet the transport task, an exclusive target transport resource is allocated to the transport task; the target transport resource includes a location point and a transport robot.
- Step 204 planning a transport path according to the location points.
- Step 205 split the transport task into a transport subtask sequence according to the transport path.
- Step 206 Provide the transport subtask sequence to the transport robot for execution.
- the transport resources of the transport system can be dynamically maintained and managed. Whenever a user has a transport task requirement, the transport system can be queried to see whether there are currently available transport resources that meet the transport task. When there are available transport resources that meet the transport task, an exclusive target transport resource is allocated to the transport task. This can effectively reduce the possibility of conflicts between different transport tasks due to competition for transport resources; not only that, in the embodiment of this specification, by splitting the entire transport task into multiple transport sub-tasks and executing them separately, it is easier to implement, and when there is no dependency between the transport sub-tasks, the transport sub-tasks can also be executed in parallel, thereby improving the transport efficiency.
- a transport task can be initiated by a client on demand. For example, in some embodiments of this specification, when a user conducts a certain type of automated biological experiment, a biological experiment request can be initiated through the client. The corresponding experimental process of the biological experiment request requires the execution of a material transport action, which is equivalent to initiating a request to create a transport task.
- a transport task can include a starting position point (i.e., the initial position of the material), a target position point (i.e., the position where the material is expected to be placed), etc.
- handling resources refer to the resources needed to realize material handling.
- handling resources may include but are not limited to handling robots, locations for placing materials (such as fixed or movable material carriers), etc.
- the material is the object being transported.
- the materials may include but are not limited to multi-well plates, polymerase chain reaction (PCR) plates, gun tip boxes, etc.
- the transport robot server when receiving a request to create a transport task, the transport robot server will not directly allocate exclusive target transport resources for the transport task, but will first confirm whether the transport system currently has available transport resources that meet the transport task. Only when the transport system currently has available transport resources that meet the transport task will the server allocate exclusive target transport resources for the transport task.
- confirming whether there are currently available transport resources in the transport system that meet the transport task may include: first determining whether there are currently idle transport robots in the transport system; when there are currently no idle transport robots in the transport system, it can be confirmed that there are currently no available transport resources in the transport system that meet the transport task; when there are currently idle transport robots in the transport system, all feasible paths from the starting position point to the target position point can be pre-planned based on the starting position point and the target position point in the creation request; wherein a feasible path means that all position points on the path are not occupied.
- it can be confirmed that there are currently available transport resources in the transport system that meet the transport task otherwise, it can be confirmed that there are currently no available transport resources in the transport system that meet the transport task.
- a feasible path may be pre-planned first, and then it is determined whether there are idle transport robots. When there is no feasible path, it can be confirmed that there are currently no available transport resources in the transport system that meet the transport task. When there is an available path, When the transport task is to be completed, it is determined whether there is an idle transport robot; when there is an idle transport robot, it can be confirmed that the transport system currently has available transport resources that meet the transport task; otherwise, it can be confirmed that the transport system currently does not have available transport resources that meet the transport task.
- the exclusive target handling resources can be allocated according to the number of available handling resources and the task attributes of the handling task. For example, in an exemplary embodiment, when the handling task can be completed by multiple handling robots in parallel and collaboratively, and the handling system currently has a sufficient number of idle handling robots and occupiable position points, multiple handling robots can be allocated for the handling task, and each of the handling robots can be allocated an occupiable position point to perform parallel collaborative handling.
- the handling task when the handling task can be completed by multiple handling robots in serial collaboration, and the handling system currently has a sufficient number of idle handling robots and occupiable position points, multiple handling robots can be allocated for the handling task, and each of the handling robots can be allocated an occupiable position point to perform serial collaborative handling.
- the handling robot when the handling task can be completed by multiple handling robots in parallel and collaboratively, but the handling system currently has only one handling robot left, the handling robot can be allocated for the handling task.
- the transport robot server can realize the exclusive use of the transport resources allocated to the transport tasks by means of a locking mechanism, etc., so as to avoid the problem of transport resource conflicts between the various transport tasks.
- the transport task after confirming whether the transport system currently has available transport resources that meet the transport task, when there are no available transport resources that meet the transport task, the transport task can be added to the waiting queue; then when the release operation of the transport resource occurs, it is determined whether the transport system currently has available transport resources that meet the transport task in the waiting queue; if so, the corresponding transport task is allocated with an exclusive target transport resource, and the waiting queue is updated. Wherein, when the waiting queue is traversed for judgment each time, it can be judged in the order from the head of the team to the tail of the team to comply with the first-in-first-out order.
- the transport system After confirming that the transport system currently does not have available transport resources that meet the transport task at the head of the waiting queue (i.e., the first priority), it is determined whether the transport system currently has available transport resources that meet the transport task at the second priority in the waiting queue; after confirming that the transport system currently does not have available transport resources that meet the transport task at the second priority in the waiting queue, it is determined whether the transport system currently has available transport resources that meet the transport task at the third priority in the waiting queue; and so on.
- planning a transport path according to the position points refers to: planning a transport path of a transport robot assigned thereto according to the position points assigned thereto.
- the material can be transported by a single transport robot alone.
- the starting point A is located at the biological experiment equipment 40 on the left, and the target point B is located at the biological experiment equipment 40 on the right;
- the planned transport path can be A ⁇ B, that is, the material is transported by a single transport robot 30. Transport from the starting point A to the target point B.
- materials can be handled by multiple handling robots in collaboration.
- the starting position point A is located at the biological experiment equipment 40 on the left
- the target position point B is located at the biological experiment equipment 40 on the right
- the materials are handled by two handling robots 30 in series; there is a transition position point P between the two handling robots 30.
- the planned handling path can be A ⁇ P ⁇ B.
- the transition position point refers to the position point used to transfer materials during handling.
- the transition position point P can be located outside the biological experiment equipment 40.
- the transition point may also be located within the biological experiment equipment.
- Some biological experiment equipment has its own movable clamping parts, which can transfer materials from one position point inside to another position point for internal use or for external handling robots to carry.
- the starting position point A is located at the biological experiment equipment 40 on the left
- the target position point B is located at the biological experiment equipment 40 on the right
- the biological experiment equipment 40 on the left is provided with a transition point P1
- the biological experiment equipment 40 on the right is provided with a transition point P2
- the material is completed by a single handling robot 30; then the planned handling path can be A ⁇ P1 ⁇ P2 ⁇ B.
- the transport resources may also include other resources such as transfer equipment (such as a conveyor rail).
- transfer equipment such as a conveyor rail
- the starting position point A is located at the biological experiment equipment 40 on the left
- the target position point B is located at the biological experiment equipment 40 on the right
- the materials are completed by two transport robots 30 in serial collaboration
- a conveyor rail 50 is provided between the two transport robots 30,
- a transition position point P1 is provided between the conveyor rail 50 and the upper transport robot 30, and
- a transition position point P2 is provided between the conveyor rail 50 and the lower transport robot 30;
- the planned transport path may be A ⁇ P1 ⁇ P2 ⁇ B.
- splitting the handling task into a sequence of handling subtasks according to the handling path means: splitting the entire handling task into multiple handling subtasks according to the handling path, and each handling subtask may have a dependency relationship. In this way, it is easier to implement the handling task and improve the handling efficiency.
- the handling task can be split into two handling subtasks A ⁇ P and P ⁇ B, and the formed handling subtask sequence can be expressed as ⁇ A ⁇ P, P ⁇ B ⁇ .
- the handling subtask A ⁇ P can be performed by the handling robot 30 above
- the handling subtask P ⁇ B can be performed by the handling robot 30 below.
- the handling task can be split into three handling subtasks A ⁇ P1, P1 ⁇ P2 and P2 ⁇ B, and the formed handling subtask sequence can be expressed as ⁇ A ⁇ P1, P1 ⁇ P2, P2 ⁇ B ⁇ .
- the transport subtask A ⁇ P1 can be performed by the upper transport robot 30
- the transport subtask P1 ⁇ P2 can be performed by the conveying rail 50
- the transport subtask P ⁇ B can be performed by the lower transport robot 30 .
- the transport robot 30 and the starting position point A can be released in time, that is, the occupation of the transport robot 30 and the starting position point A by the transport task is released without waiting until the entire transport task is completed; this can help reduce the waste of transport resources and improve the utilization rate of transport resources.
- the handling robot motion planning method may also include the following steps:
- detecting whether a deadlock loop exists in an unfinished transport path may include: first creating a first array for storing traversal paths; for any unfinished transport path, placing its starting position point as the first traversal starting point into the first array; determining whether a deadlock loop exists in the traversal path segment from the first traversal starting point to its next position point; if a deadlock loop exists, outputting a closed-loop path (and throwing a fault to inform the user); if no deadlock loop exists, placing the next position point into the first array in sequence, and determining whether a deadlock loop exists in the traversal path segment from the first traversal starting point to the next position point of the next position point, and so on, until the traversal of all position points in the transport path is completed, thereby completing the forward traversal check for deadlock loops.
- a tree-like first array can be created (such as tree A in Figure 7a).
- detecting whether a deadlock loop exists in an unfinished transport path may also include: while creating a first array for storing the traversal path, creating another second array for storing the traversal path; placing the destination position point in the transport path as the second traversal starting point into the second array; determining whether a deadlock loop exists in the path segment from the second traversal starting point to its next position point; if a deadlock loop exists, outputting a closed-loop path; if no deadlock loop exists, placing the next position point sequentially into the second array, and determining whether a deadlock loop exists in the path segment from the second traversal starting point to the next position point of the next position point, until the traversal of all position points in the transport path is completed.
- the deadlock loop can be quickly and accurately identified through bidirectional synchronous checking.
- a second tree array (such as tree B in Figure 7b) can be created synchronously based on the creation of the first array.
- executing the preset deadlock closed loop release logic may include: instructing the handling robot to carry the material at any position point on the closed loop path to the cache position point to release the occupation of the corresponding handling task on the position point; in this way, the deadlock closed loop solution can be released by borrowing the cache position point, so that the unfinished handling task can continue to be executed.
- the cache position point may be a specific position point reserved in the handling system, or an unoccupied position point in the handling system temporarily used as a cache position point.
- a transport task has a deadlock loop as shown in Figure 8a.
- the material at position point A needs to be transported to position point B, but other materials have been placed at position point B; the material at position point B needs to be transported to position point C, but other materials have been placed at position point C; the material at position point C needs to be transported to position point A, but other materials have been placed at position point A; thus, all material transport operations are blocked, forming a deadlock loop.
- the material at position C can be first transported to the cache position (as shown in Figure 8b), and then the material at position B can be transported to position C (as shown in Figure 8c). As shown in FIG8 ), the material at position A is then transported to position B (as shown in FIG8 d ), and finally the material at the cache position is transported to position A (as shown in FIG8 e ); in this way, the deadlock loop can be released and the expected material transportation can be completed.
- the embodiment of this specification further provides a transport robot motion planning device, which can be configured on the above-mentioned transport robot server.
- the transport robot motion planning device may include:
- a receiving module 91 is used to receive a request for creating a transport task
- a confirmation module 92 configured to confirm, in response to the creation request, whether the transport system currently has available transport resources that meet the transport task;
- An allocation module 93 is used to allocate exclusive target transport resources to the transport task when there are available transport resources that meet the transport task;
- the target transport resources include location points and transport robots;
- a planning module 94 for planning a transport path according to the location points
- a splitting module 95 is used to split the transport task into a sequence of transport subtasks according to the transport path;
- a providing module 96 is used to provide the transport subtask sequence to the transport robot for execution.
- the user information including but not limited to user device information, user personal information, etc.
- data including but not limited to data used for analysis, stored data, displayed data, etc.
- the embodiments of this specification also provide a computer device.
- the computer device 1002 may include one or more processors 1004, such as one or more central processing units (CPUs) or graphics processing units (GPUs), and each processing unit may implement one or more hardware threads.
- the computer device 1002 may also include any memory 1006, which is used to store any kind of information such as code, settings, data, etc.
- the computer program on the memory 1006 and executable on the processor 1004, when the computer program is executed by the processor 1004, can execute the instructions of the handling robot motion planning method described in any of the above embodiments.
- the memory 1006 may include any one or more combinations of the following: any type of RAM, any type of ROM, a flash memory device, a hard disk, an optical disk, etc. More generally, any storage Any memory device may use any technology to store information. Further, any memory may provide volatile or non-volatile retention of information. Further, any memory may represent a fixed or removable component of the computer device 1002. In one case, when the processor 1004 executes the associated instructions stored in any memory or combination of memories, the computer device 1002 may perform any operation of the associated instructions.
- the computer device 1002 also includes one or more drive mechanisms 1008 for interacting with any memory, such as a hard disk drive mechanism, an optical disk drive mechanism, etc.
- the computer device 1002 may also include an input/output interface 1010 (I/O) for receiving various inputs (via input device 1012) and for providing various outputs (via output device 1014).
- a specific output mechanism may include a presentation device 1016 and an associated graphical user interface 1018 (GUI).
- GUI graphical user interface
- the input/output interface 1010 (I/O), input device 1012, and output device 1014 may not be included, and the computer device 1002 may be used as a computer device in a network.
- the computer device 1002 may also include one or more network interfaces 1020 for exchanging data with other devices via one or more communication links 1022.
- One or more communication buses 1024 couple the components described above together.
- the communication link 1022 may be implemented in any manner, for example, through a local area network, a wide area network (e.g., the Internet), a point-to-point connection, etc., or any combination thereof.
- the communication link 1022 may include any combination of hardwired links, wireless links, routers, gateway functions, name servers, etc. governed by any protocol or combination of protocols.
- These computer program instructions can be provided to a processor of a general-purpose computer, a special-purpose computer, an embedded processor, or other programmable data processor to produce a machine, so that the instructions executed by the processor of the computer or other programmable data processor produce a device for implementing the functions specified in one process or multiple processes in the flowchart and/or one box or multiple boxes in the block diagram.
- These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processor to operate in a specific manner, so that the instructions stored in the computer-readable memory produce a product including an instruction device that implements the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
- These computer program instructions may also be loaded onto a computer or other programmable data processor so that a series of operational steps are executed on the computer or other programmable device to produce a computer-implemented process, whereby the instructions executed on the computer or other programmable device provide steps for implementing the functions specified in one or more processes in the flowchart and/or one or more boxes in the block diagram.
- a computer device includes one or more processors (CPU), input/output interfaces, network interfaces, and memory.
- processors CPU
- input/output interfaces network interfaces
- memory volatile and non-volatile memory
- Memory may include non-permanent storage in a computer-readable medium, in the form of random access memory (RAM) and/or non-volatile memory, such as read-only memory (ROM) or flash memory (flash RAM). Memory is an example of a computer-readable medium.
- RAM random access memory
- ROM read-only memory
- flash RAM flash memory
- Computer readable media include permanent and non-permanent, removable and non-removable media that can be implemented by any method or technology to store information.
- Information can be computer readable instructions, data structures, program modules or other data.
- Examples of computer storage media include, but are not limited to, phase change memory (PRAM), static random access memory (SRAM), dynamic random access memory (DRAM), other types of random access memory (RAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), flash memory or other memory technology, compact disk read-only memory (CD-ROM), digital versatile disk (DVD) or other optical storage, magnetic cassettes, disk storage or other magnetic storage devices or any other non-transmission media that can be used to store information that can be accessed by a computer device.
- computer readable media does not include temporary computer readable media (transitory media), such as modulated data signals and carrier waves.
- the embodiments of this specification may be provided as methods, systems or computer program products. Therefore, the embodiments of this specification may take the form of complete hardware embodiments, complete software embodiments or embodiments combining software and hardware. Moreover, the embodiments of this specification may take the form of a computer program product implemented on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing computer-usable program codes.
- computer-usable storage media including but not limited to disk storage, CD-ROM, optical storage, etc.
- the present specification embodiments may be described in the general context of computer-executable instructions executed by a computer, such as program modules.
- program modules include routines, programs, objects, components, data structures, etc. that perform specific tasks or implement specific abstract data types.
- the present specification embodiments may also be practiced in distributed computing environments where tasks are performed by remote processors connected through a communication network.
- program modules may be located in local and remote computer storage media, including storage devices.
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Manipulator (AREA)
Abstract
本说明书涉及机器人技术领域,提供了一种搬运机器人运动规划方法、装置、设备及存储介质,该方法包括:接收搬运任务的创建请求;响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;根据所述位置点规划搬运路径;按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;将所述搬运子任务序列提供给所述搬运机器人执行。本说明书实施例可以降低或避免多个搬运任务间的冲突。
Description
本说明书涉及机器人技术领域,尤其是涉及一种搬运机器人运动规划方法、装置、设备及存储介质。
在生物自动化实验室中,常需要利用搬运机器人在生物实验设备间搬运物料,且很多搬运任务可以并行进行。由于生物自动化实验室的生物实验设备的种类繁多,所需的物料多样,多个搬运任务之间可能会出现争抢同一资源等冲突问题。因此,如何降低或避免多个搬运任务间的冲突,已成为目前亟待解决的技术问题。
发明内容
本说明书实施例的目的在于提供一种搬运机器人运动规划方法、装置、设备及存储介质,以降低或避免多个搬运任务间的冲突。
为达到上述目的,一方面,本说明书实施例提供了一种搬运机器人运动规划方法,包括:
接收搬运任务的创建请求;
响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;
当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;
根据所述位置点规划搬运路径;
按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;
将所述搬运子任务序列提供给所述搬运机器人执行。
本说明书实施例的搬运机器人运动规划方法中,在确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源之后,还包括:
当不存在满足所述搬运任务的可用搬运资源时,将所述搬运任务加入等待队列;
当出现搬运资源的释放操作时,判断所述搬运系统当前是否存在满足所述等待队列中的搬运任务的可用搬运资源;
如果存在,则对应的搬运任务分配独占的目标搬运资源,并更新所述等待队列。
本说明书实施例的搬运机器人运动规划方法中,在将所述搬运子任务序列提供给所述搬运机器人执行之后,还包括:
根据所述搬运机器人反馈的任务执行状态信息,确定所述搬运子任务序列中是否有已完成的搬运子任务;
在每完成所述搬运子任务序列中的一个搬运子任务后,判断该搬运子任务所占用的搬运资源在后续搬运子任务中是否再使用;
若不再使用,则释放该搬运子任务所占用的搬运资源。
本说明书实施例的搬运机器人运动规划方法中,还包括:
检测未执行完成的搬运路径是否存在死锁闭环;
当存在死锁闭环时,执行预设的死锁闭环解除逻辑。
本说明书实施例的搬运机器人运动规划方法中,所述检测未执行完成的搬运路径是否存在死锁闭环,包括:
创建一个用于存储遍历路径的第一数组;
对于任意一个未执行完成的搬运路径,将其起始位置点作为第一遍历起点放入所述第一数组;
判断所述第一遍历起点至其下一位置点的遍历路径段是否存在死锁闭环;
若存在死锁闭环,则输出闭环路径;
若不存在死锁闭环,则将该下一位置点顺序放入所述第一数组中,并判断所述第一遍历起点至该下一位置点的下一位置点的遍历路径段是否存在死锁闭环,直至完成所述搬运路径中所有位置点的遍历。
本说明书实施例的搬运机器人运动规划方法中,所述检测未执行完成的搬运路径是否存在死锁闭环,还包括:
在创建一个用于存储遍历路径的第一数组的同时,创建另一个用于存储遍历路径的第二数组;
将所述搬运路径中的目的位置点作为第二遍历起点放入所述第二数组;
判断所述第二遍历起点至其下一位置点的路径段是否存在死锁闭环;
若存在死锁闭环,则输出闭环路径;
若不存在死锁闭环,则将该下一位置点顺序放入所述第二数组中,并判断所述第二遍历起点至该下一位置点的下一位置点的路径段是否存在死锁闭环,直至完成所述搬运
路径中所有位置点的遍历。
本说明书实施例的搬运机器人运动规划方法中,所述执行预设的死锁闭环解除逻辑,包括:
指示所述搬运机器人将闭环路径上任一位置点的物料搬运至缓存位置点,以释放对应搬运任务对该位置点的占用。
本说明书实施例的搬运机器人运动规划方法中,所述为所述搬运任务分配独占的目标搬运资源,包括:
根据可用搬运资源的数量和所述搬运任务的任务属性分配独占的目标搬运资源。
另一方面,本说明书实施例还提供了一种搬运机器人运动规划装置,包括:
接收模块,用于接收搬运任务的创建请求;
确认模块,用于响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;
分配模块,用于当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;
规划模块,用于根据所述位置点规划搬运路径;
拆分模块,用于按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;
提供模块,用于将所述搬运子任务序列提供给所述搬运机器人执行。
另一方面,本说明书实施例还提供了一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,所述计算机程序被所述处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机存储介质,其上存储有计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
另一方面,本说明书实施例还提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行上述方法的指令。
由以上本说明书实施例提供的技术方案可见,本说明书实施例中可以对搬运系统的搬运资源进行动态维护和管理,每当用户有搬运任务需求时,可以先查询搬运系统当前是否存在满足该搬运任务的可用搬运资源,当存在满足该搬运任务的可用搬运资源时,才为该搬运任务分配独占的目标搬运资源,从而可以有效降低不同搬运任务之间因竞争搬运资源而发生冲突的可能性;不仅如此,由于本说明书实施例中,通过将整个搬运任务拆分为多个搬运子任务分别执行,更易于实现,且当有搬运子任务之间无依赖关系时,
还可以并行执行搬运子任务,从而可以提高搬运效率。
为了更清楚地说明本说明书实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本说明书中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。在附图中:
图1示出了本说明书一些实施例中搬运机器人运动规划系统的结构示意图;
图2示出了本说明书一些实施例中搬运机器人运动规划方法的流程图;
图3示出了本说明书一些实施例中搬运机器人运动规划的应用场景意图;
图4示出了本说明书另一些实施例中搬运机器人运动规划的应用场景意图;
图5示出了本说明书另一些实施例中搬运机器人运动规划的应用场景意图;
图6示出了本说明书另一些实施例中搬运机器人运动规划的应用场景意图;
图7a示出了本说明书一示例性实施例中正向遍历检查死锁闭环的检查路径示意图;
图7b示出了本说明书一示例性实施例中反向遍历检查死锁闭环的检查路径示意图;
图8a示出了本说明书一示例性实施例中死锁闭环的示意图;
图8b~图8e示出了图8a所示死锁闭环的解除过程示意图;
图9示出了本说明书一些实施例中搬运机器人运动规划装置的结构框图;
图10示出了本说明书一些实施例中计算机设备的结构框图。
【附图标记说明】
10、客户端;
20、搬运机器人服务器;
30、搬运机器人;
40、生物实验设备;
50、传送导轨;
91、接收模块;
92、确认模块;
93、分配模块;
94、规划模块;
95、拆分模块;
96、提供模块;
1002、计算机设备;
1004、处理器;
1006、存储器;
1008、驱动机构;
1010、输入/输出接口;
1012、输入设备;
1014、输出设备;
1016、呈现设备;
1018、图形用户接口;
1020、网络接口;
1022、通信链路;
1024、通信总线。
为了使本技术领域的人员更好地理解本说明书中的技术方案,下面将结合本说明书实施例中的附图,对本说明书实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都应当属于本说明书保护的范围。
本说明书实施例涉及搬运机器人的运动规划技术,以降低或避免多个搬运任务间的冲突,可以适用于任何需要搬运机器人搬运物料的应用场景。因此,在说明书以下实施例中,以生物实验设备间物料搬运的应用场景仅作为举例说明,不应理解为对本说明书实施例的应用场景的唯一限定。
图1中示出了本说明书一些实施例的搬运机器人运动规划系统(以下简称搬运系统)的示意图,该应用场景中包括客户端10、搬运机器人服务器20和搬运机器人30。搬运机器人服务器20可以被配置为:接收客户端10发送的搬运任务的创建请求;响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人30;根据所述位置点规划搬运路径;按照所述搬运
路径将所述搬运任务拆分为搬运子任务序列;将所述搬运子任务序列提供给所述搬运机器人30执行。
在本说明书一些实施例中,所述客户端10可以为移动终端(即智能手机)、显示器、台式电脑、平板电脑、笔记本电脑、数字助理或智能可穿戴设备等。其中,智能可穿戴设备可以包括智能手环、智能手表、智能眼镜或智能头盔等。当然,所述客户端10并不限于上述具有一定实体的电子设备,其还可以为运行于上述电子设备中的软件。
在本说明书一些实施例中,所述搬运机器人服务器20可以为具有运算和网络交互功能的电子设备;也可以为运行于该电子设备中,为数据处理和网络交互提供业务逻辑的软件。
在本说明书一些实施例中,所述搬运机器人30可以为任何可进行自动化搬运作业的工业机器人;其中,搬运作业是指:搬运机器人30设备可以携带物料并将其从一个位置搬运到另一个位置。可以理解的是,本说明书实施例中的搬运可以是指平移、旋转或其组合等。
此外,图1所示的仅仅是本说明书提供的一种应用环境,在实际应用中,除了搬运机器人30可以为多个外,所述客户端10也可以为多个,所述搬运机器人服务器20也可以为多个,本说明书不做限制。
本说明书实施例提供了一种搬运机器人运动规划方法,可以应用于上述的搬运机器人服务器侧,参考图2所示,在本说明书一些实施例中,搬运机器人运动规划方法可以包括以下步骤:
步骤201、接收搬运任务的创建请求。
步骤202、响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源。
步骤203、当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人。
步骤204、根据所述位置点规划搬运路径。
步骤205、按照所述搬运路径将所述搬运任务拆分为搬运子任务序列。
步骤206、将所述搬运子任务序列提供给所述搬运机器人执行。
本说明书实施例中,可以对搬运系统的搬运资源进行动态维护和管理,每当用户有搬运任务需求时,可以先查询搬运系统当前是否存在满足该搬运任务的可用搬运资源,当存在满足该搬运任务的可用搬运资源时,才为该搬运任务分配独占的目标搬运资源,
从而可以有效降低不同搬运任务之间因竞争搬运资源而发生冲突的可能性;不仅如此,由于本说明书实施例中,通过将整个搬运任务拆分为多个搬运子任务分别执行,更易于实现,且当有搬运子任务之间无依赖关系时,还可以并行执行搬运子任务,从而可以提高搬运效率。
搬运任务可以由客户按需发起。例如,在本说明书一些实施例中,当用户进行某种或某些自动化生物实验时,可以通过客户端发起生物实验请求,该生物实验请求的对应的实验过程需要执行物料搬运动作,则此时即相当于发起了搬运任务的创建请求。搬运任务可以包含起始位置点(即物料的初始位置)、目标位置点(即物料被期望放置的位置)等。
搬运机器人服务器可以对搬运系统的搬运资源进行动态管理和分配。其中,搬运资源是指为实现物料搬运所需要动用的资源。在本说明书一些实施例中,搬运资源可以包括但不限于搬运机器人、用于放置物料的位置点(例如固定或可移动的物料载架)等。物料即为被搬运对象,在本说明书一些实施例中,以自动化生物实验为例,物料例如可以包括但不限于多孔板、聚合酶链式反应((Polymerase Chain Reaction,PCR))板、枪头盒等。
为了降低或防止不同搬运任务之间的任务冲突,在接收到搬运任务的创建请求时,搬运机器人服务器并不会直接为搬运任务分配独占的目标搬运资源,而是需要先确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源,当搬运系统当前存在满足搬运任务的可用搬运资源时,才为搬运任务分配独占的目标搬运资源。
在本说明书一些实施例中,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源,可以包括:先判断搬运系统当前是否有空闲的搬运机器人;当搬运系统当前无空闲的搬运机器人时,可以确认搬运系统当前不存在满足所述搬运任务的可用搬运资源;当搬运系统当前有空闲的搬运机器人时,可以根据创建请求中的起始位置点和目标位置点,预规划从该起始位置点至该目标位置点的所有可行路径;其中,可行路径是指:路径上的所有位置点均未被占用。当存在可行路径时,可以确认搬运系统当前存在满足所述搬运任务的可用搬运资源;否则,可以确认搬运系统当前不存在满足所述搬运任务的可用搬运资源。
在本说明书另一些实施例中,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源时,也可以先预规划可行路径,再判断是否有空闲的搬运机器人。当不存在可行路径时,可以确认搬运系统当前不存在满足所述搬运任务的可用搬运资源。当存在可
行路径时,继续判断是否有空闲的搬运机器人;当有空闲的搬运机器人时,可以确认搬运系统当前存在满足所述搬运任务的可用搬运资源;否则,可以确认搬运系统当前不存在满足所述搬运任务的可用搬运资源。
在本说明书一些实施例中,当搬运系统当前存在满足所述搬运任务的可用搬运资源时,可以根据可用搬运资源的数量和所述搬运任务的任务属性分配独占的目标搬运资源。例如,在一示例性实施例中,当搬运任务可以由多个搬运机器人并行协作完成,且搬运系统当前存在足够数量的空闲的搬运机器人和可占用的位置点,则可以为该搬运任务分配多个搬运机器人,并为其中每个搬运机器人分配可占用的位置点,以执行并行协作搬运。例如,在另一示例性实施例中,当搬运任务可以由多个搬运机器人串行协作完成,且搬运系统当前存在足够数量的空闲的搬运机器人和可占用的位置点,则可以为该搬运任务分配多个搬运机器人,并为其中每个搬运机器人分配可占用的位置点,以执行串行协作搬运。例如,在另一示例性实施例中,当搬运任务可以由多个搬运机器人并行协作完成,但搬运系统当前仅剩一台搬运机器人,则可以为该搬运任务分配该台搬运机器人。
本说明书的实施例中,搬运机器人服务器可以通过加锁机制等实现搬运任务对其分配到的搬运资源的独占,以避免各个搬运任务之间发生搬运资源冲突的问题。
在本说明书一些实施例中,在确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源之后,当不存在满足所述搬运任务的可用搬运资源时,可以将所述搬运任务加入等待队列;然后当出现搬运资源的释放操作时,判断所述搬运系统当前是否存在满足所述等待队列中的搬运任务的可用搬运资源;如果存在,则对应的搬运任务分配独占的目标搬运资源,并更新所述等待队列。其中,在每次遍历等待队列进行判断时,可以按照从队首至队尾的顺序判断,以符合先入先出的顺序。例如,当确认搬运系统当前不存在满足等待队列中位于队首(即第一顺位)的搬运任务的可用搬运资源后,再判断搬运系统当前是否存在满足等待队列中位于第二顺位的搬运任务的可用搬运资源;当确认搬运系统当前不存在满足等待队列中第二顺位的搬运任务的可用搬运资源后,再判断搬运系统当前是否存在满足等待队列中位于第三顺位的搬运任务的可用搬运资源;以此类推。
在本说明书的实施例中,根据所述位置点规划搬运路径是指:根据为其分配的位置点规划为其分配的搬运机器人的搬运路径。
在本说明书一些实施例中,物料可以由单个搬运机器人独自完成。例如,在如图3所示的实施例中,起始位置点A位于左侧的生物实验设备40,目标位置点B位于右侧的生物实验设备40;则规划出的搬运路径可以为A→B,即由单个的搬运机器人30将物料
从起始位置点A搬运至目标位置点B。
在本说明书一些实施例中,物料可以由多个搬运机器人协作完成。例如,在如图4所示的实施例中,起始位置点A位于左侧的生物实验设备40,目标位置点B位于右侧的生物实验设备40,物料由两个搬运机器人30串行协作完成;两个搬运机器人30之间存在过渡位置点P。则规划出的搬运路径可以为A→P→B。其中,过渡位置点是指搬运中用来中转物料的位置点。在如图4所示的实施例中,过渡位置点P可以位于生物实验设备40之外。
在本说明书另一些实施例中,过渡位置点也可以位于生物实验设备之内。某些生物实验设备自带可以运动的夹持部件,这些生物实验设备可以将物料从其内部的一个位置点转移到另一个位置点,以供内部使用或供外部的搬运机器人搬运。例如,在如图5所示的实施例中,起始位置点A位于左侧的生物实验设备40,目标位置点B位于右侧的生物实验设备40,左侧的生物实验设备40设有过渡位置点P1,右侧的生物实验设备40设有过渡位置点P2,物料由单个搬运机器人30完成;则规划出的搬运路径可以为A→P1→P2→B。
在本说明书另一些实施例中,搬运资源还可以包含中转设备(例如传送导轨)等其他资源。例如,在如图6所示的实施例中,起始位置点A位于左侧的生物实验设备40,目标位置点B位于右侧的生物实验设备40,物料由两个搬运机器人30串行协作完成;两个搬运机器人30之间设有传送导轨50,传送导轨50与上方的搬运机器人30之间设有过渡位置点P1,传送导轨50与下方的搬运机器人30之间设有过渡位置点P2;则规划出的搬运路径可以为A→P1→P2→B。
在本说明书一些实施例中,按照搬运路径将搬运任务拆分为搬运子任务序列是指:按照搬运路径将整个搬运任务拆分为多个搬运子任务,每个搬运子任务之间可以有依赖关系。如此,可以更易于搬运任务的实现,且可以提高搬运效率。例如,在图4所示的实施例中,可以将搬运任务拆分A→P以及P→B两个搬运子任务,则形成的搬运子任务序列可以表示为{A→P,P→B}。其中,搬运子任务A→P可以由上方的搬运机器人30执行,搬运子任务P→B可以由下方的搬运机器人30执行。再如,在图6所示的实施例中,可以将搬运任务拆分为A→P1,P1→P2以及P2→B三个搬运子任务,则形成的搬运子任务序列可以表示为{A→P1,P1→P2,P2→B}。其中,搬运子任务A→P1可以由上方的搬运机器人30执行,搬运子任务P1→P2可以由传送导轨50执行,搬运子任务P→B可以由下方的搬运机器人30执行。
在本说明书一些实施例中,在将所述搬运子任务序列提供给所述搬运机器人执行之后,还可以包括以下步骤:
(1)根据所述搬运机器人反馈的任务执行状态信息,确定所述搬运子任务序列中是否有已完成的搬运子任务。
(2)在每完成所述搬运子任务序列中的一个搬运子任务后,判断该搬运子任务所占用的搬运资源在后续搬运子任务中是否再使用。
(3)若不再使用,则释放该搬运子任务所占用的搬运资源。
例如,在上述图6所示的实施例中{A→P1,P1→P2,P2→B},若搬运子任务A→P1已完成,且上方的搬运机器人30和起始位置点A,在后续的搬运子任务P1→P2和搬运子任务P2→B都不再使用,则可以及时释放搬运机器人30和起始位置点A,即解除该搬运任务对搬运机器人30和起始位置点A的占用,而无需等到整个搬运任务执行完成;如此,可以有利于减少搬运资源的浪费,提高搬运资源的利用率。
在少数情况下,由于异常或故障(例如系统显示已释放的位置点实际上仍被占用等),搬运系统可能会出现死锁闭环,使得搬运任务的线程被阻塞,而无法继续执行。在本说明书一些实施例中,搬运机器人运动规划方法还可以包括以下步骤:
(1)检测未执行完成的搬运路径是否存在死锁闭环。
(2)当存在死锁闭环时,执行预设的死锁闭环解除逻辑。
如此,可以降低或避免搬运系统因陷入死锁而导致系统崩溃或宕机,从而提高了搬运系统运行的稳定性和可靠性。
在本说明书一些实施例中,检测未执行完成的搬运路径是否存在死锁闭环,可以包括:先创建一个用于存储遍历路径的第一数组;对于任意一个未执行完成的搬运路径,将其起始位置点作为第一遍历起点放入所述第一数组;判断所述第一遍历起点至其下一位置点的遍历路径段是否存在死锁闭环;若存在死锁闭环,则输出闭环路径(并可以抛出故障告知用户);若不存在死锁闭环,则将该下一位置点顺序放入所述第一数组中,并判断所述第一遍历起点至该下一位置点的下一位置点的遍历路径段是否存在死锁闭环,以此类推,直至完成所述搬运路径中所有位置点的遍历,从而完成正向遍历检查死锁闭环。
例如,若一个未执行完成的搬运任务为P1→P2→P3,其中,P1为起始位置点,P3为目标位置点,可以创建一个树状的第一数组(如图7a中的树A)。设P1为起点开始遍历,将P1放入第一数组,查询P1→P2是否存在死锁闭环,若不存在死锁闭环,则将
P2放入第一数组并继续遍历,查询P1→P2→P3是否存在死锁闭环,若不存在死锁闭环,则将P3放入第一数组并继续遍历,查询P1→P2→P3→P1是否存在死锁闭环,若不存在死锁闭环,则结束;若存在死锁闭环,则输出P1→P2→P3→P1为一个闭环路径。
在本说明书另一些实施例中,检测未执行完成的搬运路径是否存在死锁闭环,还可以包括:在创建一个用于存储遍历路径的第一数组的同时,创建另一个用于存储遍历路径的第二数组;将所述搬运路径中的目的位置点作为第二遍历起点放入所述第二数组;判断所述第二遍历起点至其下一位置点的路径段是否存在死锁闭环;若存在死锁闭环,则输出闭环路径;若不存在死锁闭环,则将该下一位置点顺序放入所述第二数组中,并判断所述第二遍历起点至该下一位置点的下一位置点的路径段是否存在死锁闭环,直至完成所述搬运路径中所有位置点的遍历。如此,通过双向同步检查可以实现快速准确地识别死锁闭环。
例如,若一个未执行完成的搬运任务为P1→P2→P3,其中,P1为起始位置点,P3为目标位置点,在创建出第一数组的基础上,还可以同步创建一个树状的第二数组(如图7b中的树B)。同步地,设P3为起点开始遍历,将P3放入第一数组,查询P3→P2是否存在死锁闭环,若不存在死锁闭环,则将P2放入第一数组并继续遍历,查询P3→P2→P1是否存在死锁闭环,若不存在死锁闭环,则将P3放入第一数组并继续遍历,查询P3→P2→P1→P3是否存在死锁闭环,若不存在死锁闭环,则结束;若存在死锁闭环,则输出P3→P2→P1→P3为一个闭环路径。
在本说明书一些实施例中,执行预设的死锁闭环解除逻辑,可以包括:指示所述搬运机器人将闭环路径上任一位置点的物料搬运至缓存位置点,以释放对应搬运任务对该位置点的占用;如此,可以通过借用缓存位置点解除死锁闭环解,使未执行完成的搬运任务得以继续执行。其中,缓存位置点可以是搬运系统中预留的特定位置点,也可以是搬运系统中的未被占用的位置点被临时作为缓存位置点。
例如,在本说明书一些实施例中,一个搬运任务出现了如图8a所示的死锁闭环,在图8a中,位置点A的物料需要搬运至位置点B,但位置点B已放置有其他物料;位置点B的物料需要搬运至位置点C,但位置点C已放置有其他物料;位置点C的物料需要搬运至位置点A,但位置点A已放置有其他物料;如此,导致所有物料搬运操作都被阻塞,从而形成一个死锁闭环。
结合图8b~图8e所示,基于上述的死锁闭环解除逻辑,可以先将位置点C的物料搬运至缓存位置点(如图8b所示),然后将位置点B的物料搬运至位置点C(如图8c
所示),然后将位置点A的物料搬运至位置点B(如图8d所示),最后将缓存位置点的物料搬运至位置点A(如图8e所示);如此,则可以解除死锁闭环,并完成预期的物料搬运。
虽然上文描述的过程流程包括以特定顺序出现的多个操作,但是,应当清楚了解,这些过程可以包括更多或更少的操作,这些操作可以顺序执行或并行执行(例如使用并行处理器或多线程环境)。
与上述的搬运机器人运动规划方法对应,本说明书实施例还提供了一种搬运机器人运动规划装置,其可以配置于上述的搬运机器人服务器上,参考图9所示,在本说明书一些实施例中,搬运机器人运动规划装置可以包括:
接收模块91,用于接收搬运任务的创建请求;
确认模块92,用于响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;
分配模块93,用于当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;
规划模块94,用于根据所述位置点规划搬运路径;
拆分模块95,用于按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;
提供模块96,用于将所述搬运子任务序列提供给所述搬运机器人执行。
为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
需要说明的是,本说明书的实施例中,所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权同意且经过各方充分授权的信息和数据。
本说明书的实施例还提供一种计算机设备。如图10所示,在本说明书一些实施例中,所述计算机设备1002可以包括一个或多个处理器1004,诸如一个或多个中央处理单元(CPU)或图形处理器(GPU),每个处理单元可以实现一个或多个硬件线程。计算机设备1002还可以包括任何存储器1006,其用于存储诸如代码、设置、数据等之类的任何种类的信息,一具体实施例中,存储器1006上并可在处理器1004上运行的计算机程序,所述计算机程序被所述处理器1004运行时,可以执行上述任一实施例所述的搬运机器人运动规划方法的指令。非限制性的,比如,存储器1006可以包括以下任一项或多种组合:任何类型的RAM,任何类型的ROM,闪存设备,硬盘,光盘等。更一般地,任何存储
器都可以使用任何技术来存储信息。进一步地,任何存储器可以提供信息的易失性或非易失性保留。进一步地,任何存储器可以表示计算机设备1002的固定或可移除部件。在一种情况下,当处理器1004执行被存储在任何存储器或存储器的组合中的相关联的指令时,计算机设备1002可以执行相关联指令的任一操作。计算机设备1002还包括用于与任何存储器交互的一个或多个驱动机构1008,诸如硬盘驱动机构、光盘驱动机构等。
计算机设备1002还可以包括输入/输出接口1010(I/O),其用于接收各种输入(经由输入设备1012)和用于提供各种输出(经由输出设备1014)。一个具体输出机构可以包括呈现设备1016和相关联的图形用户接口1018(GUI)。在其他实施例中,还可以不包括输入/输出接口1010(I/O)、输入设备1012以及输出设备1014,仅作为网络中的一台计算机设备。计算机设备1002还可以包括一个或多个网络接口1020,其用于经由一个或多个通信链路1022与其他设备交换数据。一个或多个通信总线1024将上文所描述的部件耦合在一起。
通信链路1022可以以任何方式实现,例如,通过局域网、广域网(例如,因特网)、点对点连接等、或其任何组合。通信链路1022可以包括由任何协议或协议组合支配的硬连线链路、无线链路、路由器、网关功能、名称服务器等的任何组合。
本申请是参照本说明书一些实施例的方法、设备(系统)、计算机可读存储介质和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理器的处理器以产生一个机器,使得通过计算机或其他可编程数据处理器的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理器以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理器上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算机设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。内存是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算机设备访问的信息。按照本说明书中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书实施例可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本说明书实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书实施例,在这些分布式计算环境中,由通过通信网络而被连接的远程处理器来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
还应理解,在本说明书实施例中,术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系。例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统
实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本说明书实施例的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (12)
- 一种搬运机器人运动规划方法,其特征在于,包括:接收搬运任务的创建请求;响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;根据所述位置点规划搬运路径;按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;将所述搬运子任务序列提供给所述搬运机器人执行。
- 如权利要求1所述的搬运机器人运动规划方法,其特征在于,在确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源之后,还包括:当不存在满足所述搬运任务的可用搬运资源时,将所述搬运任务加入等待队列;当出现搬运资源的释放操作时,判断所述搬运系统当前是否存在满足所述等待队列中的搬运任务的可用搬运资源;如果存在,则对应的搬运任务分配独占的目标搬运资源,并更新所述等待队列。
- 如权利要求1所述的搬运机器人运动规划方法,其特征在于,在将所述搬运子任务序列提供给所述搬运机器人执行之后,还包括:根据所述搬运机器人反馈的任务执行状态信息,确定所述搬运子任务序列中是否有已完成的搬运子任务;在每完成所述搬运子任务序列中的一个搬运子任务后,判断该搬运子任务所占用的搬运资源在后续搬运子任务中是否再使用;若不再使用,则释放该搬运子任务所占用的搬运资源。
- 如权利要求1所述的搬运机器人运动规划方法,其特征在于,还包括:检测未执行完成的搬运路径是否存在死锁闭环;当存在死锁闭环时,执行预设的死锁闭环解除逻辑。
- 如权利要求4所述的搬运机器人运动规划方法,其特征在于,所述检测未执行完成的搬运路径是否存在死锁闭环,包括:创建一个用于存储遍历路径的第一数组;对于任意一个未执行完成的搬运路径,将其起始位置点作为第一遍历起点放入所述 第一数组;判断所述第一遍历起点至其下一位置点的遍历路径段是否存在死锁闭环;若存在死锁闭环,则输出闭环路径;若不存在死锁闭环,则将该下一位置点顺序放入所述第一数组中,并判断所述第一遍历起点至该下一位置点的下一位置点的遍历路径段是否存在死锁闭环,直至完成所述搬运路径中所有位置点的遍历。
- 如权利要求5所述的搬运机器人运动规划方法,其特征在于,所述检测未执行完成的搬运路径是否存在死锁闭环,还包括:在创建一个用于存储遍历路径的第一数组的同时,创建另一个用于存储遍历路径的第二数组;将所述搬运路径中的目的位置点作为第二遍历起点放入所述第二数组;判断所述第二遍历起点至其下一位置点的路径段是否存在死锁闭环;若存在死锁闭环,则输出闭环路径;若不存在死锁闭环,则将该下一位置点顺序放入所述第二数组中,并判断所述第二遍历起点至该下一位置点的下一位置点的路径段是否存在死锁闭环,直至完成所述搬运路径中所有位置点的遍历。
- 如权利要求5或6所述的搬运机器人运动规划方法,其特征在于,所述执行预设的死锁闭环解除逻辑,包括:指示所述搬运机器人将闭环路径上任一位置点的物料搬运至缓存位置点,以释放对应搬运任务对该位置点的占用。
- 如权利要求1所述的搬运机器人运动规划方法,其特征在于,所述为所述搬运任务分配独占的目标搬运资源,包括:根据可用搬运资源的数量和所述搬运任务的任务属性分配独占的目标搬运资源。
- 一种搬运机器人运动规划装置,其特征在于,包括:接收模块,用于接收搬运任务的创建请求;确认模块,用于响应于所述创建请求,确认搬运系统当前是否存在满足所述搬运任务的可用搬运资源;分配模块,用于当存在满足所述搬运任务的可用搬运资源时,为所述搬运任务分配独占的目标搬运资源;所述目标搬运资源包括位置点和搬运机器人;规划模块,用于根据所述位置点规划搬运路径;拆分模块,用于按照所述搬运路径将所述搬运任务拆分为搬运子任务序列;提供模块,用于将所述搬运子任务序列提供给所述搬运机器人执行。
- 一种计算机设备,包括存储器、处理器、以及存储在所述存储器上的计算机程序,其特征在于,所述计算机程序被所述处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
- 一种计算机存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
- 一种计算机程序产品,其特征在于,所述计算机程序产品包括计算机程序,所述计算机程序被计算机设备的处理器运行时,执行根据权利要求1-8任意一项所述方法的指令。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/101724 WO2024259634A1 (zh) | 2023-06-21 | 2023-06-21 | 搬运机器人运动规划方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/CN2023/101724 WO2024259634A1 (zh) | 2023-06-21 | 2023-06-21 | 搬运机器人运动规划方法、装置、设备及存储介质 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2024259634A1 true WO2024259634A1 (zh) | 2024-12-26 |
Family
ID=93934638
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/CN2023/101724 Ceased WO2024259634A1 (zh) | 2023-06-21 | 2023-06-21 | 搬运机器人运动规划方法、装置、设备及存储介质 |
Country Status (1)
| Country | Link |
|---|---|
| WO (1) | WO2024259634A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116652957A (zh) * | 2023-06-21 | 2023-08-29 | 深圳先进技术研究院 | 搬运机器人运动规划方法、装置、设备及存储介质 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104199428A (zh) * | 2014-09-17 | 2014-12-10 | 上海畔慧信息技术有限公司 | 群体机器人管理服务器及其方法 |
| US9513627B1 (en) * | 2016-04-25 | 2016-12-06 | inVia Robotics, LLC | Autonomous coordination of resources amongst robots |
| CN109426560A (zh) * | 2017-08-28 | 2019-03-05 | 杭州海康机器人技术有限公司 | 任务分配方法、装置及计算机可读存储介质 |
| CN109426884A (zh) * | 2017-08-28 | 2019-03-05 | 杭州海康机器人技术有限公司 | 分配方案确定方法、装置及计算机可读存储介质 |
| CN114202281A (zh) * | 2021-12-10 | 2022-03-18 | 北京云迹科技有限公司 | 一种物品运送系统及方法 |
| CN115431276A (zh) * | 2022-10-09 | 2022-12-06 | 湖南视比特机器人有限公司 | 桁架机器人及其轨迹规划方法和装置 |
-
2023
- 2023-06-21 WO PCT/CN2023/101724 patent/WO2024259634A1/zh not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN104199428A (zh) * | 2014-09-17 | 2014-12-10 | 上海畔慧信息技术有限公司 | 群体机器人管理服务器及其方法 |
| US9513627B1 (en) * | 2016-04-25 | 2016-12-06 | inVia Robotics, LLC | Autonomous coordination of resources amongst robots |
| CN109426560A (zh) * | 2017-08-28 | 2019-03-05 | 杭州海康机器人技术有限公司 | 任务分配方法、装置及计算机可读存储介质 |
| CN109426884A (zh) * | 2017-08-28 | 2019-03-05 | 杭州海康机器人技术有限公司 | 分配方案确定方法、装置及计算机可读存储介质 |
| CN114202281A (zh) * | 2021-12-10 | 2022-03-18 | 北京云迹科技有限公司 | 一种物品运送系统及方法 |
| CN115431276A (zh) * | 2022-10-09 | 2022-12-06 | 湖南视比特机器人有限公司 | 桁架机器人及其轨迹规划方法和装置 |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN116652957A (zh) * | 2023-06-21 | 2023-08-29 | 深圳先进技术研究院 | 搬运机器人运动规划方法、装置、设备及存储介质 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| Gajsek et al. | Using maturity model and discrete-event simulation for industry 4.0 implementation | |
| CN110059926B (zh) | 拣选调度方法、装置、仓储系统及可读存储介质 | |
| CN101882089B (zh) | 一种采用多线程处理业务会话应用的方法及装置 | |
| KR100509794B1 (ko) | 데이터베이스 관리시스템을 이용하는 작업들의 실시간 처리를 위한 스케줄링 방법 | |
| CN114168302B (zh) | 任务调度方法、装置、设备及存储介质 | |
| CN110611707B (zh) | 一种任务调度的方法及装置 | |
| CN111507674B (zh) | 任务信息处理方法、装置及系统 | |
| JP2023541995A (ja) | 注文処理及び出庫方法、設備、システム、並びに記憶媒体 | |
| WO2020232875A1 (zh) | 一种基于Actor模型的任务调度方法、装置及存储介质 | |
| JP6698177B2 (ja) | 再構成可能な分散処理 | |
| JP2018530060A (ja) | データ同期の方法及びシステム | |
| WO2019237852A1 (zh) | 拣选货物的系统、方法和装置及存储介质 | |
| CN109376020A (zh) | 多区块链交互并发下的数据处理方法、装置及存储介质 | |
| CN110597634A (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
| WO2015131542A1 (zh) | 数据处理方法、装置和系统 | |
| WO2024259634A1 (zh) | 搬运机器人运动规划方法、装置、设备及存储介质 | |
| WO2021197477A1 (zh) | 一种用于立体库的设备调度方法和装置 | |
| US20110219378A1 (en) | Iterative data parallel opportunistic work stealing scheduler | |
| CN112581080A (zh) | 一种轻量级的分布式工作流引擎构建系统 | |
| CN114791931A (zh) | 一种基于datax的数据治理方法 | |
| US20200004510A1 (en) | Actor model programming | |
| CN116652957A (zh) | 搬运机器人运动规划方法、装置、设备及存储介质 | |
| CN112239038B (zh) | 一种搬运方法、装置和仓储系统 | |
| CN116700195A (zh) | 生产任务的调度方法及系统 | |
| CN103488530A (zh) | 一种锁迁移方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| 121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 23941936 Country of ref document: EP Kind code of ref document: A1 |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |