Self-service medicine selling machine parallel sorting method and system based on multi-axis cooperation

CN121747239BActive Publication Date: 2026-10-27BEIJING BOYAN SHENGKE TECH CO LTD
View PDF 3 Cites 0 Cited by

Patent Information

Application Number
CN202610065274.1
Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
Filing Date
2026-01-19
Publication Date
2026-10-27
Estimated Expiration
2046-01-19

AI Technical Summary

Technical Problem

首先,现有的自助售药机多采用单一运动轴或多个运动轴串行工作的方式进行药品分拣,当订单包含多种药品时,需要按照预设顺序依次取药,导致分拣效率低下,难以满足高并发场景下的快速取药需求

Benefits of technology

通过对药品订单信息进行空间拓扑解析并分解为多个子任务集合,实现了多个运动轴可同时在各自工作区域内进行药品抓取操作,提高了系统的并行处理能力和分拣效率。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN121747239B_ABST
    Figure CN121747239B_ABST
Patent Text Reader

Abstract

The application provides a self-service medicine selling machine parallel sorting method and system based on multi-axis cooperation, relates to the technical field of control, and comprises the following steps: obtaining medicine order information, performing space topology analysis, decomposing the order into a plurality of subtask sets, generating an execution path containing avoidance timing constraints, driving a plurality of movement axes to parallelly grab medicines and transmit the medicines to an intermediate caching position, and merging and combining the plurality of medicines and conveying the medicines to a medicine outlet. The application realizes multi-axis cooperative work, avoids physical collision and logical conflict, improves medicine sorting efficiency, and reduces waiting time.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention relates to the field of control technology, and in particular to a parallel sorting method and system for self-service medicine vending machines based on multi-axis collaboration. Background Technology

[0002] With the intelligent development of healthcare services, self-service medicine vending machines, as a new type of drug retail terminal, are gradually becoming more common in public places such as hospitals, pharmacies, and communities. Through automated sorting systems, these machines can quickly and accurately sort out the required medicines according to user needs, improving sales efficiency, reducing manual labor, and meeting people's demand for convenient medicine purchasing services. Currently, most self-service medicine vending machines on the market use single-axis or simple multi-axis serial sorting methods, employing robotic arms or conveyor belts to retrieve medicines one by one according to a preset path and transport them to the dispensing port.

[0003] Traditional self-service medicine vending machines present several technical challenges in the drug sorting process. First, existing machines often employ a single or multiple motion axes working sequentially for drug sorting. When an order contains multiple medications, they must be retrieved in a pre-set order, resulting in low sorting efficiency and failing to meet the demands of rapid drug retrieval in high-concurrency scenarios. Second, in multi-axis systems, the lack of effective spatial coordination mechanisms between motion axes hinders the full utilization of multi-dimensional spatial resources. Interference and conflicts between motion axes are prone to occur, affecting system stability and security. Summary of the Invention

[0004] This invention provides a parallel sorting method and system for self-service medicine vending machines based on multi-axis collaboration, which can solve the problems in the prior art.

[0005] A first aspect of this invention provides a parallel sorting method for a self-service medicine vending machine based on multi-axis collaboration, comprising: Obtain the order information of medicines to be sorted, which includes medicine identifiers and medicine pickup location identifiers; perform spatial topology parsing on the order information, and decompose the order information into multiple sub-task sets according to the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas, with each sub-task set corresponding to an independent reachable range of a motion axis; Based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. The avoidance timing constraints are used to limit the entry and exit times of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. According to the execution path, multiple motion axes are driven to grab medicines from their respective storage areas and transfer the grabbed medicines to an intermediate cache location; Based on the drug retrieval location identifier, multiple drugs located at the intermediate buffer location are merged and combined. Drugs belonging to the same drug retrieval location identifier are gathered from the grasping results of different motion axes into a unified drug dispensing channel, completing order-level aggregation in the parallel sorting process. The merged and combined drugs are then transported to the dispensing port corresponding to the drug retrieval location identifier.

[0006] Spatial topology parsing is performed on the drug order information. Based on the spatial distribution of the storage location corresponding to the drug identifier in multiple storage areas, the drug order information is decomposed into multiple sub-task sets. Each sub-task set corresponds to an independent motion axis reachable range including: The three-dimensional spatial coordinates of the storage locations corresponding to each drug identifier in the drug order information are extracted. A storage location topology map is constructed based on the three-dimensional spatial coordinates. The storage location topology map represents the spatial adjacency and distance relationships between multiple storage locations. Based on the mechanical structural constraint parameters of each motion axis, the reachable boundary of each motion axis in three-dimensional space is determined, and the reachable boundary defines the spatial range that the end effector of the motion axis can reach. Based on the storage location topology and the reachability boundaries of each motion axis, the reachability relationship between each storage location and each motion axis is calculated. The reachability relationship characterizes whether the storage location is located within the reachability boundary of the motion axis. Based on the reachability relationship, multiple drug identifiers in the drug order information are grouped according to the reachability boundary of the motion axis to which their corresponding storage location belongs, forming multiple sub-task sets. Each sub-task set contains all drug identifiers that can be reached by the same motion axis. For a storage location that is simultaneously located within the overlapping area of ​​the reachable boundaries of multiple motion axes, based on the spatial adjacency relationship between the storage location and other storage locations in the storage location topology map, the storage location is assigned to the set of subtasks corresponding to the motion axis with the largest number of spatially adjacent storage locations.

[0007] Based on the storage location topology and the reachability boundaries of each motion axis, the reachability relationship between each storage location and each motion axis is calculated, including: The storage location topology graph is decomposed into multiple topology levels based on the spatial adjacency relationships between storage locations. Extract the set of boundary reachable points for each motion axis from the reachable boundaries. The set of boundary reachable points contains all boundary position points that the motion axis can reach under its motion limit state. Starting from the set of reachable points at the boundary, accessibility propagation is carried out layer by layer inward along the topological hierarchy of the storage location topology graph. In each topological hierarchy, the storage location that has been determined to be reachable in the previous topological hierarchy is used as the propagation source point. For each storage location to be determined, the spatial connectivity between the storage location and its corresponding propagation source point is calculated. The spatial connectivity is determined by detecting whether there is a spatial fault on the path from the propagation source point to the storage location that the motion axis cannot cross. When there is spatial connectivity between the storage location and the propagation source point, the storage location is marked as a reachable storage location of the motion axis, and the storage location is added to the propagation source point set of the next topological level, continuing to propagate reachability to deeper topological levels; After traversing all topology levels to complete reachability propagation, the reachable storage locations marked for each motion axis in all topology levels are summarized, and the reachability relationship between each storage location and each motion axis is generated.

[0008] Based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. These avoidance timing constraints limit the entry and exit times of different motion axes within the shared workspace, ensuring that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. Based on the spatial path that each motion axis needs to traverse when executing its corresponding set of subtasks, identify the shared workspace that exists between the spatial paths of multiple motion axes. The shared workspace is the region where the spatial paths of at least two motion axes overlap. Analyze the preceding tasks required for each motion axis to enter the shared workspace and the subsequent tasks required to exit the shared workspace, and establish the temporal dependencies between multiple motion axes; Based on the aforementioned temporal dependencies, a time window sequence is allocated to each shared workspace. The time window sequence divides the usage time of the shared workspace into multiple non-overlapping time windows. Each time window is exclusively allocated to a motion axis, ensuring that only one motion axis occupies the shared workspace within the same time window. Based on the time window sequence, an avoidance timing constraint including an entry time and an exit time is generated for each motion axis. The entry time corresponds to the start time of the time window assigned to the motion axis, and the exit time corresponds to the end time of the time window assigned to the motion axis. Based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time when each motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time, thereby generating the execution path of each motion axis.

[0009] Based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time each motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time, including: For each motion axis, based on the spatial distance between the starting position of each task in its subtask set and the entrance to the shared workspace, calculate the estimated arrival time required for the motion axis to move from the starting position of each task to the entrance to the shared workspace. The estimated arrival time is compared with the entry time in the avoidance timing constraint to calculate the time deviation; based on the time deviation, tasks with estimated arrival times earlier than the entry time are adjusted to the later positions in the execution order, and tasks with estimated arrival times later than the entry time are adjusted to the earlier positions in the execution order, generating a reordered task execution sequence; Recalculate the corrected arrival time of the motion axis after it has completed all tasks according to the reordered task execution sequence and is now at the shared workspace entrance. When the corrected arrival time still deviates from the entry time, the target execution speed required by the motion axis during the execution of the reordered task sequence is calculated. The target execution speed is adjusted by changing the motion rate of the motion axis to make the corrected arrival time consistent with the entry time. Based on the reordered task execution sequence and the target execution speed, the motion axis is controlled to execute each task in its sub-task set, so that the actual time when the motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time.

[0010] According to the execution path, multiple motion axes are driven to retrieve medicines from their corresponding storage areas and transmit the retrieved medicines to an intermediate buffer location. Based on the medicine retrieval location identifier, multiple medicines located in the intermediate buffer location are merged and combined, and medicines belonging to the same medicine retrieval location identifier are aggregated from the retrieval results of different motion axes into a unified dispensing channel, including: Based on the execution path, multiple motion axes are driven to grab medicines from their corresponding storage areas. During the grabbing process, transmission identification information is generated for each grabbed medicine. The transmission identification information includes the medicine's identifier, the medicine retrieval location identifier, and the identifier of the motion axis that performed the grabbing. Based on the drug retrieval location identifier in the transmission identification information, a target cache slot in the intermediate cache position is allocated to each drug. The allocation rule for the target cache slot is to allocate drugs with the same drug retrieval location identifier to a group of spatially adjacent cache slots in the intermediate cache position, so that drugs belonging to the same drug retrieval location identifier form a spatial cluster area in the intermediate cache position. Based on the position information of the target cache slot, multiple motion axes are controlled to transport the grasped medicine to their respective target cache slots, completing the temporary storage of the medicine at the intermediate cache position; The arrival status of medicines in each spatial cluster area in the intermediate buffer location is monitored. When it is detected that all target buffer slots in the spatial cluster area corresponding to a certain medicine retrieval location have received medicines, the medicines in all target buffer slots in the spatial cluster area are extracted, and the extracted medicines are gathered into a unified medicine dispensing channel according to the medicine retrieval location identifier in the transmission identifier information.

[0011] A second aspect of the present invention provides a parallel sorting system for self-service medicine vending machines based on multi-axis collaboration, comprising: The first unit is used to acquire the order information of medicines to be sorted, which includes medicine identifiers and medicine pickup location identifiers; the unit performs spatial topology parsing on the order information, and decomposes the order information into multiple sub-task sets according to the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas, with each sub-task set corresponding to an independent reachable range of a motion axis; The second unit is used to generate an execution path containing avoidance timing constraints for each motion axis based on the spatial interference relationship and temporal dependency relationship between the multiple sub-task sets. The avoidance timing constraints are used to limit the entry time and exit time of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. The third unit is used to drive multiple motion axes to grab medicines from their respective storage areas according to the execution path, and to transfer the grabbed medicines to the intermediate cache location; The fourth unit is used to merge and combine multiple drugs located at the intermediate buffer position according to the drug retrieval position identifier, and to gather drugs belonging to the same drug retrieval position identifier from the grasping results of different motion axes into a unified drug dispensing channel, thereby completing order-level aggregation in the parallel sorting process; and to transport the merged and combined drugs to the dispensing port corresponding to the drug retrieval position identifier.

[0012] A third aspect of the present invention, An electronic device is provided, comprising: processor; Memory used to store processor-executable instructions; The processor is configured to invoke instructions stored in the memory to execute the aforementioned method.

[0013] Fourth aspect of the embodiments of the present invention, A computer-readable storage medium is provided, having stored thereon computer program instructions that, when executed by a processor, implement the aforementioned method.

[0014] The beneficial effects of this application are as follows: By performing spatial topology analysis on drug order information and decomposing it into multiple sub-task sets, multiple motion axes can simultaneously perform drug grabbing operations within their respective work areas, improving the system's parallel processing capability and sorting efficiency.

[0015] Based on the spatial interference and temporal dependencies between subtask sets, an execution path containing avoidance temporal constraints is generated, which effectively avoids physical collisions and logical conflicts when multi-axis work together, and improves the safety and stability of system operation.

[0016] By introducing an intermediate cache location as a temporary storage area for multi-axis sorting results, combined with an order-level aggregation mechanism, the contradiction between parallel sorting and sequential drug dispensing is resolved, ensuring the integrity and accuracy of complex orders. Attached Figure Description

[0017] Figure 1 This is a flowchart illustrating the parallel sorting method for a self-service medicine vending machine based on multi-axis collaboration, according to an embodiment of the present invention. Figure 2 A flowchart illustrating the process of generating an execution path that includes avoidance timing constraints for each motion axis. Detailed Implementation

[0018] To make the objectives, technical solutions, and advantages of the embodiments of the present invention clearer, the technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0019] The technical solution of the present invention will be described in detail below with reference to specific embodiments. These specific embodiments can be combined with each other, and the same or similar concepts or processes may not be described again in some embodiments.

[0020] refer to Figure 1 and Figure 2 The present invention provides a parallel sorting method for self-service medicine vending machines based on multi-axis collaboration, comprising: Obtain the order information of medicines to be sorted, which includes medicine identifiers and medicine pickup location identifiers; perform spatial topology parsing on the order information, and decompose the order information into multiple sub-task sets according to the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas, with each sub-task set corresponding to an independent reachable range of a motion axis; Based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. The avoidance timing constraints are used to limit the entry and exit times of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. According to the execution path, multiple motion axes are driven to grab medicines from their respective storage areas and transfer the grabbed medicines to an intermediate cache location; Based on the drug retrieval location identifier, multiple drugs located at the intermediate buffer location are merged and combined. Drugs belonging to the same drug retrieval location identifier are gathered from the grasping results of different motion axes into a unified drug dispensing channel, completing order-level aggregation in the parallel sorting process. The merged and combined drugs are then transported to the dispensing port corresponding to the drug retrieval location identifier.

[0021] In one optional implementation, spatial topology parsing is performed on the drug order information. Based on the spatial distribution of the storage location corresponding to the drug identifier in multiple storage areas, the drug order information is decomposed into multiple sub-task sets. Each sub-task set corresponds to an independent motion axis reachable range including: The three-dimensional spatial coordinates of the storage locations corresponding to each drug identifier in the drug order information are extracted. A storage location topology map is constructed based on the three-dimensional spatial coordinates. The storage location topology map represents the spatial adjacency and distance relationships between multiple storage locations. Based on the mechanical structural constraint parameters of each motion axis, the reachable boundary of each motion axis in three-dimensional space is determined, and the reachable boundary defines the spatial range that the end effector of the motion axis can reach. Based on the storage location topology and the reachability boundaries of each motion axis, the reachability relationship between each storage location and each motion axis is calculated. The reachability relationship characterizes whether the storage location is located within the reachability boundary of the motion axis. Based on the reachability relationship, multiple drug identifiers in the drug order information are grouped according to the reachability boundary of the motion axis to which their corresponding storage location belongs, forming multiple sub-task sets. Each sub-task set contains all drug identifiers that can be reached by the same motion axis. For a storage location that is simultaneously located within the overlapping area of ​​the reachable boundaries of multiple motion axes, based on the spatial adjacency relationship between the storage location and other storage locations in the storage location topology map, the storage location is assigned to the set of subtasks corresponding to the motion axis with the largest number of spatially adjacent storage locations.

[0022] In automated drug dispensing systems, spatial topology analysis of drug order information is a crucial step in improving dispensing efficiency. To effectively handle complex orders and achieve rational resource allocation, spatial topology analysis is performed on drug order information to extract the three-dimensional spatial coordinates of the storage location for each drug. Assume a drug order contains multiple drugs, each with a unique identifier and corresponding storage location. Taking a certain dispensing system as an example, the drug storage rack is divided into several areas, each identified by three coordinates: row, column, and layer. Through database queries, the storage location coordinates (x, y, z) corresponding to the drug identifier are obtained, where x represents the column number of the storage rack, y represents the row number, and z represents the layer height.

[0023] After obtaining the spatial coordinates of all medicines, a storage location topology graph is constructed. This topology graph adopts an undirected weighted graph structure, where each node represents a medicine storage location, the edges between nodes represent the spatial adjacency between two storage locations, and the weight of the edge represents the Euclidean distance between the two locations. For any two storage locations p1(x1, y1, z1) and p2(x2, y2, z2), the distance d between them is calculated. If d is less than a preset threshold (e.g., 1.5 times the distance between adjacent cells), the two locations are considered spatially adjacent, and an edge is added to the topology graph. Simultaneously, the weight of each edge is recorded as the actual distance between the two points.

[0024] Next, the reachability boundaries of each motion axis are determined. In a multi-axis dispensing system, each motion axis has its own mechanical constraints, such as the length of the robotic arm and joint angle limitations. Based on the mechanical parameters, the activity space of the end effector of each motion axis can be calculated. Taking a three-axis robotic arm as an example, assuming the first axis can cover the left side of the storage rack, its reachability boundary is {0≤x≤5, 0≤y≤10, 0≤z≤8}; the second axis covers the middle area, with a reachability boundary of {4≤x≤9, 0≤y≤10, 0≤z≤8}; and the third axis covers the right side, with a reachability boundary of {8≤x≤12, 0≤y≤10, 0≤z≤8}. Note that there are overlapping reachability boundaries between adjacent motion axes, which provides flexibility for subsequent task optimization and allocation.

[0025] Based on the storage location topology and the reachability boundaries of the motion axes, the reachability relationship between each storage location and each motion axis is calculated. For the storage location of each medicine in the order, its coordinates are checked to see if they are within the reachability boundaries of each motion axis. A reachability matrix M is established, where M[i][j] represents whether the i-th storage location is within the reachability boundary of the j-th motion axis, with 1 indicating reachability and 0 indicating inaccessibility.

[0026] Based on reachability relationships, drugs in a drug order are grouped according to the reachability boundaries of the motion axes to which their storage locations belong. For storage locations reachable by only one motion axis, the corresponding drug is directly assigned to the sub-task set of that motion axis. For example, if the storage location of drug A is only within the reachability boundary of the first axis, then drug A is assigned to the sub-task set of the first axis.

[0027] For storage locations that are simultaneously located in overlapping regions of reachable boundaries of multiple motion axes, further allocation optimization is needed. In this case, using the previously constructed storage location topology graph, the spatial adjacency relationship between the storage location and the already allocated locations in the subtask sets of each motion axis is calculated. Specifically, for location p, the number of its adjacent nodes in the topology graph with the already allocated location sets of each motion axis is counted, and p is assigned to the subtask set corresponding to the motion axis with the largest number of adjacent nodes.

[0028] For example, assuming that the storage location p of drug B is within the reachable boundaries of both the first and second axes, topological analysis shows that p has three adjacent nodes to the already assigned locations on the first axis and one adjacent node to the already assigned locations on the second axis. Therefore, drug B is assigned to the subtask set on the first axis. This spatial adjacency-based allocation strategy allows drugs processed on the same motion axis to be clustered together spatially as much as possible, reducing the distance traveled on the motion axis and improving dispensing efficiency.

[0029] Finally, the drug order information is decomposed into multiple sub-task sets, each containing all drug identifiers that can be efficiently processed by the same motion axis. Each sub-task set can be independently assigned to its corresponding motion axis for execution, enabling parallel drug dispensing and improving the overall processing capacity of the system.

[0030] In practical applications, the threshold and weight calculation methods of spatial topology analysis can be adjusted according to the specific storage rack layout and robotic arm parameters to adapt to pharmacy automation systems of different scales and achieve optimized decomposition of order processing.

[0031] In one optional implementation, calculating the reachability relationship between each storage location and each motion axis based on the storage location topology map and the reachability boundaries of each motion axis includes: The storage location topology graph is decomposed into multiple topology levels based on the spatial adjacency relationships between storage locations. Extract the set of boundary reachable points for each motion axis from the reachable boundaries. The set of boundary reachable points contains all boundary position points that the motion axis can reach under its motion limit state. Starting from the set of reachable points at the boundary, accessibility propagation is carried out layer by layer inward along the topological hierarchy of the storage location topology graph. In each topological hierarchy, the storage location that has been determined to be reachable in the previous topological hierarchy is used as the propagation source point. For each storage location to be determined, the spatial connectivity between the storage location and its corresponding propagation source point is calculated. The spatial connectivity is determined by detecting whether there is a spatial fault on the path from the propagation source point to the storage location that the motion axis cannot cross. When there is spatial connectivity between the storage location and the propagation source point, the storage location is marked as a reachable storage location of the motion axis, and the storage location is added to the propagation source point set of the next topological level, continuing to propagate reachability to deeper topological levels; After traversing all topology levels to complete reachability propagation, the reachable storage locations marked for each motion axis in all topology levels are summarized, and the reachability relationship between each storage location and each motion axis is generated.

[0032] In the specific implementation of calculating the reachability relationship between each storage location and each motion axis based on the storage location topology map and the reachability boundary of each motion axis, it is first necessary to obtain the complete storage location topology map and the reachability boundary information of the motion axis, and then perform systematic calculation and analysis.

[0033] When decomposing a storage location topology graph into topological levels, spatial adjacency is used as the basis for partitioning. Specifically, the outermost storage locations in the topology graph are first selected as the first topological level; these locations are typically in direct contact with the external environment. Then, storage locations directly adjacent to the first-level storage locations that have not yet been assigned a level are designated as the second topological level. This process is repeated inwards until all storage locations are assigned to their corresponding topological levels. For example, in a rack storage system, the outermost rack locations are marked as the first level, the next outermost as the second level, and so on.

[0034] When extracting the set of reachable points for each motion axis from the reachable boundaries, it is necessary to consider the motion characteristics and physical limitations of the motion axis. For each motion axis, the boundary conditions of its motion range are analyzed to determine its motion limit values ​​in each dimension. Based on this, all boundary position points reachable by the motion axis are mapped to form the set of reachable points. For example, for a horizontal movement axis in three-dimensional space, its set of reachable points is all points on a rectangular boundary formed on the horizontal plane.

[0035] During reachability propagation, the set of boundary reachable points is used as the initial propagation source point to begin the first round of reachability determination. For each storage location to be determined, it is checked whether there is spatial connectivity between it and the propagation source point. Spatial connectivity determination is achieved by detecting whether there are spatial faults on the path from the propagation source point to the storage location that the motion axis cannot cross.

[0036] Spatial connectivity can be determined using path planning algorithms, such as Dijkstra's algorithm. During the determination process, factors such as motion constraints on the axes of motion and obstacles in the storage environment are considered. If an unobstructed path exists connecting the propagation source and the storage location to be determined, then spatial connectivity between the two is considered to exist.

[0037] Once spatial connectivity between a storage location and a propagation source point is determined, the storage location is marked as a reachable storage location for the current motion axis and added to the propagation source point set of the next topological level. In this way, reachability information propagates from the outer layer to the inner layer. For example, in the first round of propagation, it is determined whether a storage location in the first topological level is reachable; in the second round of propagation, using the reachable storage location determined in the first round as the new propagation source point, it is determined whether a storage location in the second topological level is reachable.

[0038] During the reachability propagation process at each topology level, the collaborative relationships between motion axes also need to be considered. Some storage locations may require multiple motion axes to work together to reach. In this case, the reachability boundaries of each motion axis need to be comprehensively considered to determine their joint reachable region.

[0039] After completing reachability propagation across all topology levels, the reachable storage locations marked for each motion axis across all levels are summarized to generate a reachability matrix or mapping table between each storage location and each motion axis. This relationship indicates which storage locations can be accessed by which motion axes, providing a foundation for subsequent path planning and task allocation.

[0040] This method can also dynamically adapt to changes in the storage environment. When the topology of a storage location changes or the performance parameters of a motion axis are adjusted, reachability relationships can be quickly recalculated, ensuring that the system always makes decisions based on the latest environmental information. For example, when certain storage areas are temporarily closed or the motion axis's range of motion is restricted due to maintenance, reachability relationships can be updated promptly, and workflows can be redesigned.

[0041] This systematic accessibility analysis method can effectively support intelligent decision-making in automated storage systems, optimize access operations, and improve system response speed and resource utilization.

[0042] In one optional implementation, based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. These avoidance timing constraints limit the entry and exit times of different motion axes within the shared workspace, ensuring that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. Based on the spatial path that each motion axis needs to traverse when executing its corresponding set of subtasks, identify the shared workspace that exists between the spatial paths of multiple motion axes. The shared workspace is the region where the spatial paths of at least two motion axes overlap. Analyze the preceding tasks required for each motion axis to enter the shared workspace and the subsequent tasks required to exit the shared workspace, and establish the temporal dependencies between multiple motion axes; Based on the aforementioned temporal dependencies, a time window sequence is allocated to each shared workspace. The time window sequence divides the usage time of the shared workspace into multiple non-overlapping time windows. Each time window is exclusively allocated to a motion axis, ensuring that only one motion axis occupies the shared workspace within the same time window. Based on the time window sequence, an avoidance timing constraint including an entry time and an exit time is generated for each motion axis. The entry time corresponds to the start time of the time window assigned to the motion axis, and the exit time corresponds to the end time of the time window assigned to the motion axis. Based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time when each motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time, thereby generating the execution path of each motion axis.

[0043] For example, in the multi-axis collaborative operation scenario of a self-service medicine vending machine, the joint angle change sequence of each motion axis when performing its assigned task is converted into a three-dimensional spatial position sequence of the end effector through forward kinematic calculation, thereby constructing the spatial path envelope of the motion axis.

[0044] The spatial path envelope is represented by a discrete set of spatial points. The entire movement process of the motion axis from the starting position to the target position is discretized into several spatial sampling points. Each sampling point records the three-dimensional spatial coordinate range occupied by the motion axis at that position. For motion axes of robotic arms, the spatial path envelope includes not only the position point of the end effector, but also the spatial volume swept by each link of the robotic arm during the movement.

[0045] Geometric intersection calculations are performed on the spatial path envelopes of all motion axes. By traversing the sampling points in the spatial path envelopes of any two motion axes, it is determined whether there are cases where the Euclidean distance between the sampling points is less than the safety interval threshold. When such cases exist, the spatial region surrounding these closely spaced sampling points is marked as the shared workspace of the two motion axes. The shared workspace is described using a bounding box, with its six faces parallel to the coordinate planes of the 3D coordinate system. The dimensions of the bounding box are determined by calculating the extreme coordinate values ​​of all sampling points within the shared region.

[0046] For each identified shared workspace, all motion axes involved in that shared workspace are extracted, and the preceding task chain that each motion axis needs to complete before reaching the shared workspace is analyzed. The preceding task chain is constructed by tracing back the task execution sequence of the motion axis, starting from the current position of the motion axis and tracing back to the last executed task node before the motion axis enters the shared workspace. All tasks between this node and the entrance of the shared workspace constitute the preceding task chain.

[0047] For the analysis of subsequent tasks, we start from the position where the motion axis leaves the shared workspace and trace forward to the next task node that needs to be executed immediately after the motion axis completes the relevant operation in the shared workspace. By comparing the preceding task chains and subsequent task chains of different motion axes, we identify the dependencies between tasks. When the preceding task chain of motion axis A contains a condition that requires motion axis B to complete a specific task, we establish a temporal dependency edge from B to A between motion axis A and motion axis B, forming a temporal dependency graph with a directed acyclic graph structure.

[0048] A topological sort is performed on the motion axes based on the temporal dependency graph to obtain a priority sequence for motion axes accessing the shared workspace. The topological sort starts with a motion axis node with an in-degree of zero in the graph, adds the node to the priority sequence, and removes the node and all temporal dependency edges emanating from it from the graph. This process is repeated until all motion axis nodes have been added to the priority sequence.

[0049] Time windows are allocated to the shared workspace based on a priority sequence. Starting from the initial moment of task execution, non-overlapping time windows are allocated sequentially according to the order of motion axes in the priority sequence. For the first motion axis in the priority sequence, the start time of its time window is set to the initial moment, and the length of the time window is set to the estimated time required for the motion axis to move from the entrance to the exit of the shared workspace and completely leave the shared workspace. The estimated time is obtained by calculating the path length that the motion axis needs to move within the shared workspace and dividing it by the standard moving speed of the motion axis. The path length is the spatial distance between the entrance and exit points of the shared workspace. For subsequent motion axes in the priority sequence, the start time of their time windows is set to the end time of the time window of the previous motion axis, and the length of the time window is also determined based on the estimated time for the motion axis to traverse the shared workspace.

[0050] The time window allocated to each motion axis is converted into an avoidance timing constraint. This constraint includes two time parameters: entry time and exit time. The entry time is directly taken as the start time of the time window, and the exit time is directly taken as the end time of the time window. In a vending machine example with three robotic arms, the first robotic arm is allocated a time window from 0 seconds to 7 seconds, the second robotic arm from 7 seconds to 13 seconds, and the third robotic arm from 13 seconds to 20 seconds. Therefore, the avoidance timing constraint for the first robotic arm is an entry time of 0 seconds and an exit time of 7 seconds; for the second robotic arm, it is an entry time of 7 seconds and an exit time of 13 seconds; and for the third robotic arm, it is an entry time of 13 seconds and an exit time of 20 seconds.

[0051] The task execution order of the motion axis is adjusted based on the avoidance timing constraints. When the subtask set of the motion axis contains multiple independent tasks, all possible task permutations are enumerated, and the estimated time for the motion axis to reach the entrance of the shared workspace when executing tasks in that permutation order is calculated for each permutation. The estimated time is calculated by accumulating the time required for the motion axis to execute each preceding task sequentially from the initial position. The execution time of each task includes the movement time of the motion axis to the task target position and the operation time of performing the operation at the target position.

[0052] The movement time is obtained by dividing the movement distance by the standard movement speed, and the operation time is determined according to the preset duration of the operation type. For example, the operation time for a grab operation is 2 seconds, and the operation time for a place operation is 1 second. The estimated time for all permutations and combinations is compared with the entry time in the avoidance timing constraints, and the permutation and combination with the smallest difference between the estimated time and the entry time is selected as the adjusted task execution order.

[0053] After determining the task execution sequence, the movement speed of the motion axis during each task is further adjusted to eliminate residual deviations between the estimated time and the entry time. When the estimated time is earlier than the entry time, a time advance is calculated and evenly distributed among the various movement stages of the motion axis in executing the preceding task. By reducing the movement speed, the time consumed by each movement stage is extended, so that the total increase in time equals the time advance. The reduced movement speed is the original standard movement speed multiplied by a speed adjustment coefficient, where the speed adjustment coefficient is less than 1 and greater than the ratio of the minimum allowable speed of the motion axis to the standard speed.

[0054] When the expected time is later than the entry time, the time lag is calculated, and the time consumed by the movement link is shortened by increasing the movement speed. The increased movement speed is the original standard movement speed multiplied by a speed adjustment coefficient greater than 1. This coefficient does not exceed the ratio of the maximum allowable speed of the movement axis to the standard speed.

[0055] For the movement of the motion axis within the shared workspace, calculate the movement time from the entrance to the exit of the shared workspace, ensuring that this time does not exceed the time difference between the exit and entry times. If the movement time at the standard speed exceeds the allowable time difference, increase the movement speed of the motion axis within the shared workspace. The increased speed is calculated by dividing the path length within the shared workspace by the allowable time difference. Simultaneously, verify whether this speed exceeds the maximum speed limit of the motion axis. If it does, report to the time window allocation stage that the time window length of the motion axis needs to be extended.

[0056] After adjusting the task order and speed, the adjusted task execution order, the movement speed of each task, and the entry and exit times in the shared workspace are integrated into the execution path of the motion axis. The execution path clearly marks the spatial position and movement speed that the motion axis should be at each time point, ensuring that the motion axis strictly follows the avoidance sequence constraints when entering and leaving the shared workspace, and realizing the conflict-free collaborative use of shared space resources by multiple motion axes.

[0057] In one optional implementation, based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time each motion axis arrives at the shared workspace coincides with the entry time, and the occupation of the shared workspace is completed before the exit time, including: For each motion axis, based on the spatial distance between the starting position of each task in its subtask set and the entrance to the shared workspace, calculate the estimated arrival time required for the motion axis to move from the starting position of each task to the entrance to the shared workspace. The estimated arrival time is compared with the entry time in the avoidance timing constraint to calculate the time deviation; based on the time deviation, tasks with estimated arrival times earlier than the entry time are adjusted to the later positions in the execution order, and tasks with estimated arrival times later than the entry time are adjusted to the earlier positions in the execution order, generating a reordered task execution sequence; Recalculate the corrected arrival time of the motion axis after it has completed all tasks according to the reordered task execution sequence and is now at the shared workspace entrance. When the corrected arrival time still deviates from the entry time, the target execution speed required by the motion axis during the execution of the reordered task sequence is calculated. The target execution speed is adjusted by changing the motion rate of the motion axis to make the corrected arrival time consistent with the entry time. Based on the reordered task execution sequence and the target execution speed, the motion axis is controlled to execute each task in its sub-task set, so that the actual time when the motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time.

[0058] In a multi-axis collaborative robot system, when multiple motion axes need to share a workspace, to avoid collisions and improve system efficiency, for each motion axis, the estimated arrival time required for the axis to move from the starting position of each task in its sub-task set to the entrance of the shared workspace is calculated based on the spatial distance between the starting position of each task and the entrance of the shared workspace. Specifically, assume that the sub-task set of motion axis A includes tasks A1, A2, and A3, motion axis A is currently at position P0, the starting position of task A1 is P1, the starting position of task A2 is P2, the starting position of task A3 is P3, and the entrance position of the shared workspace is S. Calculate the distance d01 from P0 to P1, the distance d12 from P1 after completing task A1 to P2, the distance d23 from P2 after completing task A2 to P3, and the distance d3S from P3 after completing task A3 to the entrance S of the shared workspace. Assuming the default speed of motion axis A is v, when the task sequence is A1→A2→A3, the estimated time for motion axis A to reach the shared workspace entrance S is: t = (d01 + t1 + d12 + t2 + d23 + t3 + d3S) / v, where t1, t2, and t3 are the times required to execute tasks A1, A2, and A3, respectively.

[0059] Next, the expected arrival time is compared with the entry time in the obstacle avoidance timing constraint to calculate the time deviation. For example, if the obstacle avoidance timing constraint specifies the entry time of motion axis A as T, then the time deviation Δt = t - T. If Δt > 0, it means the expected arrival time is later than the specified entry time; if Δt < 0, it means the expected arrival time is earlier than the specified entry time.

[0060] Based on time deviation, the task execution order is adjusted. When Δt > 0, tasks with expected arrival times later than their entry times need to be moved to earlier positions in the execution order. Specifically, heuristic algorithms can be used, such as executing tasks farther from the shared workspace earlier. For example, if the original task execution order is A1→A2→A3, and task A3 is farther from the shared workspace, it can be adjusted to A3→A1→A2. When Δt < 0, tasks with expected arrival times earlier than their entry times are moved to later positions in the execution order. For example, if task A1 is closer to the shared workspace, it can be adjusted to A2→A3→A1.

[0061] Through the above adjustments, a reordered task execution sequence is generated. Taking the reordered sequence A3→A1→A2 as an example, the corrected arrival time t' of motion axis A after completing all tasks according to the reordered task execution sequence and reaching the shared workspace entrance is recalculated. At this time, the distance from P0 to P3 is d03, the distance from P3 after completing task A3 to P1 is d31, the distance from P1 after completing task A1 to P2 is d12, and the distance from P2 after completing task A2 to the shared workspace entrance S is d2S. The corrected arrival time t' = (d03 + t3 + d31 + t1 + d12 + t2 + d2S) / v.

[0062] When the corrected arrival time t' still deviates from the entry time T by a time deviation Δt' = t' - T, it is necessary to calculate the target execution speed v' required by motion axis A during the execution of the reordered task sequence, so that the corrected arrival time is consistent with the entry time. Target execution speed v' = (d03 + t3 + d31 + t1 + d12 + t2 + d2S) / T.

[0063] Finally, based on the reordered task execution sequence and the target execution speed, the motion axis is controlled to execute each task in its subtask set. For example, motion axis A is controlled to execute tasks in the order A3→A1→A2 at a speed v', ensuring that the actual time of motion axis A's arrival in the shared workspace coincides with its entry time T. Simultaneously, it must be ensured that motion axis A completes its occupation of the shared workspace before the exit time T_out. To this end, the dwell time t_stay of motion axis A in the shared workspace is calculated, ensuring that t_stay ≤ T_out - T. If the expected dwell time exceeds the maximum allowable dwell time, the dwell time can be shortened by increasing the motion speed of the motion axis in the shared workspace.

[0064] In one optional implementation, multiple motion axes are driven according to the execution path to retrieve medicines from their corresponding storage areas and transmit the retrieved medicines to an intermediate buffer location; based on the medicine retrieval location identifier, multiple medicines located in the intermediate buffer location are merged and combined, and medicines belonging to the same medicine retrieval location identifier are aggregated from the retrieval results of different motion axes into a unified dispensing channel, including: Based on the execution path, multiple motion axes are driven to grab medicines from their corresponding storage areas. During the grabbing process, transmission identification information is generated for each grabbed medicine. The transmission identification information includes the medicine's identifier, the medicine retrieval location identifier, and the identifier of the motion axis that performed the grabbing. Based on the drug retrieval location identifier in the transmission identification information, a target cache slot in the intermediate cache position is allocated to each drug. The allocation rule for the target cache slot is to allocate drugs with the same drug retrieval location identifier to a group of spatially adjacent cache slots in the intermediate cache position, so that drugs belonging to the same drug retrieval location identifier form a spatial cluster area in the intermediate cache position. Based on the position information of the target cache slot, multiple motion axes are controlled to transport the grasped medicine to their respective target cache slots, completing the temporary storage of the medicine at the intermediate cache position; The arrival status of medicines in each spatial cluster area in the intermediate buffer location is monitored. When it is detected that all target buffer slots in the spatial cluster area corresponding to a certain medicine retrieval location have received medicines, the medicines in all target buffer slots in the spatial cluster area are extracted, and the extracted medicines are gathered into a unified medicine dispensing channel according to the medicine retrieval location identifier in the transmission identifier information.

[0065] In an automated drug delivery system, the process of driving multiple motion axes to retrieve drugs from corresponding storage areas based on execution paths is as follows: First, a medication dispensing task containing drug identifiers and drug retrieval location identifiers is obtained. The task parsing module then converts the medication dispensing task into an execution path for motion axes. Each motion axis is responsible for the drug retrieval operation in a specific storage area, and the execution path includes the three-dimensional coordinate sequence of the motion axis and the retrieval action instructions.

[0066] Once the execution path is obtained, the control module sends drive signals to each motion axis, causing each axis to move to the target drug location along a preset trajectory. The motion axes are equipped with vision recognition devices, which can accurately locate the drug and grasp it using end effectors (such as mechanical grippers or suction cups).

[0067] During the grasping process, a transmission identification information is generated for each grasped medicine. This information contains three key elements: medicine identification (such as medicine number and specifications), medicine retrieval location identification (such as window number and medicine retrieval area number), and motion axis identification for the grasping action (such as axis number). This information is stored in a data structure for easy retrieval during subsequent medicine merging. The transmission identification information can be attached to a temporary medicine container via RFID tags or QR codes, or stored in the memory database of the central control system.

[0068] Based on the medication location identifier in the transmission identification information, a target cache slot in the intermediate cache location is assigned to each medication. The allocation follows a specific rule: medications with the same medication location identifier are assigned to a group of spatially adjacent cache slots in the intermediate cache location. In practice, the intermediate cache location can be designed as a matrix structure, such as a 6×8 matrix with 48 cache slots. The system pre-divides areas, for example, assigning slots 1-8 to medication location A, slots 9-16 to medication location B, and so on.

[0069] When multiple medications need to be delivered to a particular pickup location (e.g., location A), these medications are allocated to consecutive slots within the corresponding area, forming a spatial cluster. This allocation method facilitates subsequent batch pickup and transfer operations.

[0070] Based on the location information of the target buffer slots, multiple motion axes are controlled to transport the grasped medicines to their corresponding target buffer slots. During the transmission, the motion axes plan the optimal path based on the three-dimensional coordinate information of the buffer slots to ensure efficient transmission. When a motion axis reaches above a target buffer slot, it performs precise positioning and releases the medicine, completing the temporary storage of the medicine at the buffer location. After each medicine is placed, the system updates the status flag of the buffer slot to "occupied".

[0071] To ensure accurate drug delivery to the buffer slots, photoelectric or pressure sensors are installed at intermediate buffer locations to detect whether the drug has correctly reached the target slot. If a delivery failure is detected, the system immediately issues an alarm and logs the error, awaiting manual intervention or triggering an automatic error correction mechanism.

[0072] The system continuously monitors the arrival status of medicines in each spatial cluster area of ​​the intermediate cache locations. The monitoring module checks the status of all target cache slots in the spatial cluster area corresponding to each medicine retrieval location identifier through timed queries or event triggers. When it is detected that all target cache slots in the spatial cluster area corresponding to a certain medicine retrieval location identifier (such as location A) have received medicines, the system initiates the merging and combination process.

[0073] During the merging and combination process, the system controls a dedicated extraction mechanism to extract all drugs from the target buffer slots within the spatial aggregation area. The extraction mechanism can employ a push-plate, suction, or clamping structure, enabling the extraction of all drugs within the entire area at once. After extraction, according to the drug retrieval location identifier in the transmission identification information, the extracted drugs are collected via conveyor belt or chute to a unified dispensing channel. The dispensing channel is divided into multiple sub-channels based on the drug retrieval location identifier, ensuring that drugs from different retrieval locations are not mixed up.

[0074] When the medication arrives at the dispensing terminal, a final verification is performed to confirm that the quantity and type of medication match the dispensing task requirements. After successful verification, the medication is placed in a packaging container (such as a medicine bag or box), labeled with patient information and instructions for use, and finally delivered to the corresponding pickup location, completing the entire medication delivery process.

[0075] The entire process achieves efficient flow of medicines from the storage area to the retrieval location. Through spatial clustering design and intelligent merging mechanism at intermediate buffer locations, the accuracy and efficiency of medicine delivery under multi-axis collaborative operation are ensured. This method is particularly suitable for scenarios such as hospital pharmacies and large pharmacies that need to handle multiple dispensing tasks simultaneously.

[0076] This invention relates to a multi-axis collaborative parallel sorting system for self-service medicine vending machines, comprising: The first unit is used to acquire the order information of medicines to be sorted, which includes medicine identifiers and medicine pickup location identifiers; the unit performs spatial topology parsing on the order information, and decomposes the order information into multiple sub-task sets according to the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas, with each sub-task set corresponding to an independent reachable range of a motion axis; The second unit is used to generate an execution path containing avoidance timing constraints for each motion axis based on the spatial interference relationship and temporal dependency relationship between the multiple sub-task sets. The avoidance timing constraints are used to limit the entry time and exit time of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. The third unit is used to drive multiple motion axes to grab medicines from their respective storage areas according to the execution path, and to transfer the grabbed medicines to the intermediate cache location; The fourth unit is used to merge and combine multiple drugs located at the intermediate buffer position according to the drug retrieval position identifier, and to gather drugs belonging to the same drug retrieval position identifier from the grasping results of different motion axes into a unified drug dispensing channel, thereby completing order-level aggregation in the parallel sorting process; and to transport the merged and combined drugs to the dispensing port corresponding to the drug retrieval position identifier.

[0077] A third aspect of the present invention provides an electronic device, comprising: processor; Memory used to store processor-executable instructions; The processor is configured to invoke instructions stored in the memory to execute the aforementioned method.

[0078] A fourth aspect of the present invention provides a computer-readable storage medium having stored thereon computer program instructions that, when executed by a processor, implement the aforementioned method.

[0079] This invention can be a method, apparatus, system, and / or computer program product. The computer program product may include a computer-readable storage medium having computer-readable program instructions loaded thereon for performing various aspects of the invention.

[0080] Finally, it should be noted that the above embodiments are only used to illustrate the technical solutions of the present invention, and not to limit them; although the present invention has been described in detail with reference to the foregoing embodiments, those skilled in the art should understand that modifications can still be made to the technical solutions described in the foregoing embodiments, or equivalent substitutions can be made to some or all of the technical features; and these modifications or substitutions do not cause the essence of the corresponding technical solutions to deviate from the scope of the technical solutions of the embodiments of the present invention.

Claims

1. A parallel sorting method for self-service medicine vending machines based on multi-axis collaboration, characterized in that, include: Obtain the order information for medicines to be sorted, which includes medicine identifiers and pickup location identifiers; perform spatial topology parsing on the order information, and decompose the order information into multiple sub-task sets based on the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas. Each sub-task set corresponds to an independent reachable range of a motion axis, including: The three-dimensional spatial coordinates of the storage locations corresponding to each drug identifier in the drug order information are extracted. A storage location topology map is constructed based on the three-dimensional spatial coordinates. The storage location topology map represents the spatial adjacency and distance relationships between multiple storage locations. Based on the mechanical structural constraint parameters of each motion axis, the reachable boundary of each motion axis in three-dimensional space is determined, and the reachable boundary defines the spatial range that the end effector of the motion axis can reach; Based on the storage location topology and the reachability boundaries of each motion axis, the reachability relationship between each storage location and each motion axis is calculated. The reachability relationship characterizes whether the storage location is located within the reachability boundary of the motion axis. Based on the reachability relationship, multiple drug identifiers in the drug order information are grouped according to the reachability boundary of the motion axis to which their corresponding storage location belongs, forming multiple sub-task sets. Each sub-task set contains all drug identifiers that can be reached by the same motion axis. For a storage location that is simultaneously located within the overlapping area of ​​the reachable boundaries of multiple motion axes, based on the spatial adjacency relationship between the storage location and other storage locations in the storage location topology map, the storage location is assigned to the set of subtasks corresponding to the motion axis with the largest number of spatially adjacent storage locations; Based on the storage location topology and the reachability boundaries of each motion axis, the reachability relationship between each storage location and each motion axis is calculated, including: The storage location topology graph is decomposed into multiple topology levels based on the spatial adjacency relationships between storage locations. Extract the set of boundary reachable points for each motion axis from the reachable boundaries. The set of boundary reachable points contains all boundary position points that the motion axis can reach under its motion limit state. Starting from the set of reachable points at the boundary, accessibility propagation is carried out layer by layer inward along the topological hierarchy of the storage location topology graph. In each topological hierarchy, the storage location that has been determined to be reachable in the previous topological hierarchy is used as the propagation source point. For each storage location to be determined, the spatial connectivity between the storage location and its corresponding propagation source point is calculated. The spatial connectivity is determined by detecting whether there is a spatial fault on the path from the propagation source point to the storage location that the motion axis cannot cross. When there is spatial connectivity between the storage location and the propagation source point, the storage location is marked as a reachable storage location of the motion axis, and the storage location is added to the propagation source point set of the next topological level, continuing to propagate reachability to deeper topological levels; After traversing all topology levels to complete reachability propagation, the reachable storage locations marked by each motion axis in all topology levels are summarized, and the reachability relationship between each storage location and each motion axis is generated. Based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. The avoidance timing constraints are used to limit the entry and exit times of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. According to the execution path, multiple motion axes are driven to grab medicines from their respective storage areas and transfer the grabbed medicines to an intermediate cache location; Based on the drug retrieval location identifier, multiple drugs located at the intermediate buffer location are merged and combined. Drugs belonging to the same drug retrieval location identifier are gathered from the grasping results of different motion axes into a unified drug dispensing channel, completing order-level aggregation in the parallel sorting process. The merged and combined drugs are then transported to the dispensing port corresponding to the drug retrieval location identifier.

2. The method according to claim 1, characterized in that, Based on the spatial interference and temporal dependencies among the multiple sub-task sets, an execution path containing avoidance timing constraints is generated for each motion axis. These avoidance timing constraints limit the entry and exit times of different motion axes within the shared workspace, ensuring that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. Based on the spatial path that each motion axis needs to traverse when executing its corresponding set of subtasks, identify the shared workspace that exists between the spatial paths of multiple motion axes. The shared workspace is the region where the spatial paths of at least two motion axes overlap. Analyze the preceding tasks required for each motion axis to enter the shared workspace and the subsequent tasks required to exit the shared workspace, and establish the temporal dependencies between multiple motion axes; Based on the aforementioned temporal dependencies, a time window sequence is allocated to each shared workspace. The time window sequence divides the usage time of the shared workspace into multiple non-overlapping time windows. Each time window is exclusively allocated to a motion axis, ensuring that only one motion axis occupies the shared workspace within the same time window. Based on the time window sequence, an avoidance timing constraint including an entry time and an exit time is generated for each motion axis. The entry time corresponds to the start time of the time window assigned to the motion axis, and the exit time corresponds to the end time of the time window assigned to the motion axis. Based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time when each motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time, thereby generating the execution path of each motion axis.

3. The method according to claim 2, characterized in that, Based on the avoidance timing constraints, the execution order and speed of each task in its subtask set are adjusted so that the actual time each motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time, including: For each motion axis, based on the spatial distance between the starting position of each task in its subtask set and the entrance to the shared workspace, calculate the estimated arrival time required for the motion axis to move from the starting position of each task to the entrance to the shared workspace. The estimated arrival time is compared with the entry time in the avoidance timing constraint to calculate the time deviation; based on the time deviation, tasks with estimated arrival times earlier than the entry time are adjusted to the later positions in the execution order, and tasks with estimated arrival times later than the entry time are adjusted to the earlier positions in the execution order, generating a reordered task execution sequence; Recalculate the corrected arrival time of the motion axis after it has completed all tasks according to the reordered task execution sequence and is now at the shared workspace entrance. When the corrected arrival time still deviates from the entry time, the target execution speed required by the motion axis during the execution of the reordered task sequence is calculated. The target execution speed is adjusted by changing the motion rate of the motion axis to make the corrected arrival time consistent with the entry time. Based on the reordered task execution sequence and the target execution speed, the motion axis is controlled to execute each task in its sub-task set, so that the actual time when the motion axis arrives at the shared workspace is consistent with the entry time, and the occupation of the shared workspace is completed before the exit time.

4. The method according to claim 1, characterized in that, According to the execution path, multiple motion axes are driven to retrieve medicines from their corresponding storage areas and transmit the retrieved medicines to an intermediate buffer location. Based on the medicine retrieval location identifier, multiple medicines located in the intermediate buffer location are merged and combined, and medicines belonging to the same medicine retrieval location identifier are aggregated from the retrieval results of different motion axes into a unified dispensing channel, including: Based on the execution path, multiple motion axes are driven to grab medicines from their corresponding storage areas. During the grabbing process, transmission identification information is generated for each grabbed medicine. The transmission identification information includes the medicine's identifier, the medicine retrieval location identifier, and the identifier of the motion axis that performed the grabbing. Based on the drug retrieval location identifier in the transmission identification information, a target cache slot in the intermediate cache position is assigned to each drug. The allocation rule for the target cache slot is to assign drugs with the same drug retrieval location identifier to a group of spatially adjacent cache slots in the intermediate cache position, so that drugs belonging to the same drug retrieval location identifier form a spatial cluster area in the intermediate cache position. Based on the position information of the target cache slot, multiple motion axes are controlled to transport the grasped medicine to their respective target cache slots, completing the temporary storage of the medicine at the intermediate cache position; The arrival status of medicines in each spatial cluster area in the intermediate buffer location is monitored. When it is detected that all target buffer slots in the spatial cluster area corresponding to a certain medicine retrieval location have received medicines, the medicines in all target buffer slots in the spatial cluster area are extracted, and the extracted medicines are gathered into a unified medicine dispensing channel according to the medicine retrieval location identifier in the transmission identifier information.

5. A parallel sorting system for self-service medicine vending machines based on multi-axis collaboration, used to implement the method as described in any one of claims 1-4, characterized in that, include: The first unit is used to acquire the order information of medicines to be sorted, which includes medicine identifiers and medicine pickup location identifiers; the unit performs spatial topology parsing on the order information, and decomposes the order information into multiple sub-task sets according to the spatial distribution of the storage location corresponding to the medicine identifier in multiple storage areas, with each sub-task set corresponding to an independent reachable range of a motion axis; The second unit is used to generate an execution path containing avoidance timing constraints for each motion axis based on the spatial interference relationship and temporal dependency relationship between the multiple sub-task sets. The avoidance timing constraints are used to limit the entry time and exit time of different motion axes in the shared workspace, so that multiple motion axes avoid physical collisions and logical conflicts when executing their respective sub-task sets. The third unit is used to drive multiple motion axes to grab medicines from their respective storage areas according to the execution path, and to transfer the grabbed medicines to the intermediate cache location; The fourth unit is used to merge and combine multiple drugs located at the intermediate buffer position according to the drug retrieval position identifier, and to gather drugs belonging to the same drug retrieval position identifier from the grasping results of different motion axes into a unified drug dispensing channel, thereby completing order-level aggregation in the parallel sorting process; and to transport the merged and combined drugs to the dispensing port corresponding to the drug retrieval position identifier.

6. An electronic device, characterized in that, include: processor; Memory used to store processor-executable instructions; The processor is configured to invoke instructions stored in the memory to execute the method according to any one of claims 1 to 4.

7. A computer-readable storage medium having computer program instructions stored thereon, characterized in that, When the computer program instructions are executed by the processor, they implement the method described in any one of claims 1 to 4.

Citation Information

Patent Citations

  • Medicine getting and putting method through multiple mechanical arms

    CN109955240A

  • Processing task-driven multi-robot collaborative planning method

    CN114925988A

  • System and method for consolidating items for fulfilment of order in warehouse

    US20230033636A1