Method and system for cloth sorting and scheduling by four parallel mechanical arms
Patent Information
- Application Number
- CN202611101051.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2026-07-23
- Publication Date
- 2026-10-30
AI Technical Summary
由于缺少指令可行性的前置把关,实际设备运行过程中偶发性停机、撞机等故障频发,不仅打断分拣连续性,也增加了维护成本和安全隐患
[0018]与现有技术相比,本申请的有益效果至少包括:通过四轴协同、双轴协同、单轴兜底的多层级优先级调度策略,在单横梁上实现最多四个机械臂的并行作业,显著压缩串行拾取时间,有效匹配上游裁床出料节拍,解决流水线堵料问题。
Smart Images

Figure CN123000781A_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of industrial automation technology, and in particular to a method and system for material sorting and scheduling of four parallel robotic arms. Background Technology
[0002] After the fabric is cut on a single-layer cutting bed, the individual cut pieces need to be sorted into corresponding bins according to parts or order rules. Currently, the mainstream methods use manual sorting or single robotic arm serial sorting, which reveals the following inherent technical defects in actual production: Existing single-arm robotic systems can only pick up one piece of fabric at a time, and all pieces must be picked up and placed sequentially. Limited by the effective travel range of the single robotic arm in the Y direction, when dealing with large-volume orders, the sorting cycle time is constrained by the cumulative time of the single-axis reciprocating motion, making it difficult to match the continuous output speed of the upstream cutting bed. This easily causes material blockage on the production line, and the production capacity can only meet the needs of small-batch or low-cycle production scenarios.
[0003] Traditional equipment typically only features fixed-layout single-point suction cups or universal clamps, lacking the ability to flexibly adjust the picking strategy based on the actual outline size and aspect ratio of the cut pieces. When dealing with large-sized cut pieces, uneven distribution of suction force can easily cause them to fall off, while when dealing with small-sized or irregularly shaped cut pieces, there are problems such as suction cups not picking up properly and wasting resources. It is impossible to balance gripping stability and versatility.
[0004] The existing robotic arm grasping sequence and motion programming heavily rely on manual configuration and fixation by process engineers based on specific patterns. When the upstream process causes temporary changes in the cut piece layout due to fabric defect avoidance, fabric placement offset, or CAD pattern modification, the original preset logic cannot be automatically adapted. Manual intervention and debugging must be carried out again, which is not only time-consuming and labor-intensive, but also prone to human configuration errors, severely restricting the production line's ability to quickly change over.
[0005] Existing control systems assign tasks to each pickup unit independently or sequentially, lacking a collaborative decision-making mechanism among multiple actuators. Often, only one actuator is operational at any given time, while the others remain idle and waiting. This isolated scheduling mode results in hardware resource utilization far below theoretically achievable levels, failing to effectively leverage the advantages of parallel configurations in cycle time compression.
[0006] Motion commands generated by the scheduling layer are directly sent to the underlying controller. Before execution, it is impossible to predict or screen any abnormal states (such as overtravel, collision, or joint anomalies) that may be caused by the command sequence. Due to the lack of pre-emptive control over the feasibility of commands, occasional shutdowns, collisions, and other malfunctions occur frequently during actual equipment operation, which not only disrupts the continuity of sorting but also increases maintenance costs and safety hazards. Summary of the Invention
[0007] This application provides a method and system for scheduling four parallel robotic arms for material sorting. By coordinating the allocation of robotic arms through a multi-level priority scheduling strategy and multiple motion constraints, and supplemented by a closed loop for pre-simulation verification, it achieves efficient parallel sorting of four robotic arms, avoids interference at the source, and significantly improves sorting efficiency, equipment utilization and operational reliability.
[0008] Firstly, this application provides a fabric sorting and scheduling method using four parallel robotic arms, applicable to a fabric sorting device equipped with four parallel robotic arms. The four parallel robotic arms include a first robotic arm, a second robotic arm, a third robotic arm, and a fourth robotic arm, each robotic arm having two end effectors. The method includes the following steps: Obtain the geometric features of each piece of fabric, determine the gripping mode type of each piece of fabric based on the geometric features, and calculate the feasible range of motion for each candidate robotic arm when performing gripping based on the gripping mode type. The robot arm collaborative picking schedule is executed cyclically with the termination condition being that all cut pieces are planned. In each round of scheduling, the robot arm is allocated according to a multi-level priority strategy of four-axis collaboration first, two-axis collaboration second, and single-axis as a last resort. The allocation in this round terminates when the number of attempts reaches the preset limit or all robot arms are selected. Once a round of picking and scheduling is completed, the corresponding placement action is generated based on the materials allocated in the current round and the status of the robotic arm, thus completing the coordinated scheduling of picking and placement. Motion simulation verification is performed on each action generated by the scheduler, and the feasibility of the scheduled actions is confirmed based on the simulation verification results. The grasping modes include multi-arm collaborative grasping mode and single-arm independent grasping mode.
[0009] Preferably, the multi-robotic arm collaborative grasping mode includes four-point grasping and longitudinal two-point grasping, and the single-robotic arm independent grasping mode includes lateral two-point grasping and single-point grasping; Among them, the candidate robotic arm combinations for four-point gripping and longitudinal two-point gripping are any combination of the first robotic arm and the second robotic arm, the second robotic arm and the third robotic arm, and the third robotic arm and the fourth robotic arm; the candidate robotic arm for lateral two-point gripping is any one of the first robotic arm, the second robotic arm, the third robotic arm, or the fourth robotic arm; single-point gripping is completed by a single end effector of a single robotic arm.
[0010] Preferably, the feasible range of motion includes the feasible interval of the crossbeam X. When the crossbeam is located within the feasible interval of X, the pitch travel of each end effector participating in the current grasping in the X direction does not exceed the preset maximum pitch travel and is not less than the preset minimum pitch travel, and each end effector can simultaneously reach its corresponding grasping point X coordinate. Wherein, the feasible interval of beam X is the set of all beam X coordinates that simultaneously satisfy the above conditions.
[0011] Preferably, there is a minimum distance constraint in the Y direction between two adjacent robotic arms among the four parallel robotic arms; the feasible range of motion also includes the Y-occupied interval of the robotic arm, which is determined by deducting the safety avoidance margin of the adjacent robotic arm based on the minimum distance constraint in the Y direction between adjacent robotic arms.
[0012] Preferably, the multi-level priority strategy is executed based on a cyclic trial allocation mechanism. Before each round of scheduling begins, the trial count is initialized to a preset initial value. The allocation is terminated when the trial count reaches a preset upper limit or when all four robotic arms are selected. The allocation process is executed sequentially in the order of first priority, second priority, and third priority. The allocation process is as follows: Search for cut pieces that fit the current candidate robotic arm combination from the unplanned cut pieces. After finding a suitable cut piece, further verify that the cut piece has not been allocated to other robotic arms. If the verification passes, bind the cut piece to each robotic arm in the current candidate robotic arm combination and update the robotic arm selection status and end effector allocation status, generating a picking action. If the search fails, maintain the unselected state of each robotic arm in the current candidate robotic arm combination, increment the trial count, and switch to the next candidate robotic arm combination or the next priority. First priority: When the trial count is equal to the preset initial value and none of the robotic arms are selected, the allocation process is executed with four robotic arms as candidate robotic arm combinations; if the search fails, the trial count is incremented and the process enters the second priority. Second priority: When the trial count is within the first numerical range, according to the first preset order, it is determined whether both robotic arms in each adjacent dual-arm combination are not selected. If neither is selected, the adjacent dual-arm combination is used as a candidate combination and the allocation process is executed. Each value of the trial count within the first numerical range corresponds to one allocation process. After the process is completed, the trial count is incremented. When the trial count exceeds the upper limit of the first numerical range, the process enters the third priority. Third priority: When the trial count is in the second numerical range, according to the second preset order, it is determined whether each single robotic arm has not been selected. If it has not been selected, the single robotic arm is used as a candidate combination and the allocation process is executed. Each value of the trial count in the second numerical range corresponds to one allocation process. After the process is completed, the trial count is incremented. When the trial count exceeds the upper limit of the second numerical range, the current allocation is terminated. Wherein, the preset initial value is less than the lower limit of the first numerical interval, and the upper limit of the first numerical interval is less than the lower limit of the second numerical interval.
[0013] Preferably, the robotic arm allocation process includes multiple constraints; the multiple constraints include the intersection constraint of the X interval of the beam, the mutual exclusion constraint of the Y interval of the robotic arm, and the mutual exclusion constraint of the robotic arm occupancy. The beam X interval intersection constraint is used to ensure that the feasible beam X intervals of each robot arm assigned to the same scheduling round have a common intersection. The mutual exclusion constraint of the Y-section of the robotic arm is used to ensure that the Y-section occupied by each robotic arm assigned to the same scheduling round does not overlap. The mutual exclusion constraint for robotic arm occupancy is used to ensure that the same robotic arm will not be repeatedly assigned within the same scheduling round, and that the same cut piece will not be repeatedly assigned to different robotic arms.
[0014] Preferably, the placement action is output in a standardized vector format of a multi-dimensional, multi-axis action sequence, and the standardized vector format is compatible with multiple brands of servo controllers.
[0015] Preferably, when simulation verification detects abnormal scheduling actions, the robotic arms are automatically reassigned.
[0016] Preferably, each scheduling task, scheduling result, and simulation verification log are archived according to the timestamp directory, and log rolling cleanup is performed.
[0017] Secondly, this application provides a sorting and scheduling system, the system including a piece sorting device with four parallel robotic arms, a memory and a processor, the memory including a computer-readable storage medium for storing a computer program, and the processor executing the computer program to implement the steps of the method described in the embodiments of this application.
[0018] Compared with the prior art, the beneficial effects of this application include at least the following: by using a multi-level priority scheduling strategy of four-axis collaboration, dual-axis collaboration, and single-axis fallback, up to four robotic arms can operate in parallel on a single crossbeam, significantly reducing the serial picking time, effectively matching the upstream cutting bed output cycle, and solving the problem of material blockage in the production line.
[0019] Based on the geometric characteristics of the cut piece, it automatically matches four-point gripping, vertical two-point gripping, horizontal two-point gripping, or single-point gripping modes, so that the end effector configuration dynamically matches the outline and aspect ratio of the cut piece, which not only improves gripping stability, but also avoids suction cups from sucking up empty or wasting resources.
[0020] By employing a triple mechanism of intersection constraints in the X-section of the beam, mutual exclusion constraints in the Y-section of the robotic arm, and mutual exclusion constraints for occupancy, the feasible movement intervals of each robotic arm are ensured to have a common intersection and do not overlap in physical space within the same scheduling round, thus fundamentally avoiding the risk of collision.
[0021] Before the scheduling action is sent to the underlying controller, a motion simulation verification closed loop is introduced to detect abnormal states such as overtravel, collision or singular pose in advance; when the verification is abnormal, it automatically rolls back and reassigns, effectively reducing the failure rate and unplanned downtime.
[0022] The scheduling logic eliminates the need for manual pre-arrangement of the pattern grabbing order. It can dynamically allocate tasks based on the real-time layout of the cut pieces, adapting to pattern changes or fabric shifts, significantly reducing changeover and debugging time, and lowering the error rate of human configuration.
[0023] Placement actions are output in a standardized vector format, compatible with multiple brands of servo controllers; at the same time, scheduling task data, results and verification logs are archived by timestamp, realizing full-link data traceability, which facilitates problem investigation and system optimization. Attached Figure Description
[0024] Figure 1 The diagram shown is a schematic representation of the hardware structure of an embodiment of this application. Figure 2 The diagram shown is a schematic diagram of a four-parallel robotic arm material sorting and scheduling method according to an embodiment of this application. Figure 3 The diagram shown is a schematic diagram of the material sorting and scheduling process of four parallel robotic arms according to an embodiment of this application. Detailed Implementation
[0025] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numerals in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with one or more embodiments of this specification. Rather, they are merely examples of apparatuses and methods consistent with some aspects of one or more embodiments of this specification as detailed in the appended claims.
[0026] It should be noted that the steps of the corresponding methods are not necessarily performed in the order shown and described in this specification in other embodiments. In some other embodiments, the methods may include more or fewer steps than described in this specification. Furthermore, a single step described in this specification may be broken down into multiple steps in other embodiments; and multiple steps described in this specification may be combined into a single step in other embodiments.
[0027] Example 1, refer to Appendix Figure 1 Appendix Figure 2 Appendix Figure 3This embodiment provides a four-parallel robotic arm fabric sorting and scheduling method, applied to a fabric sorting device equipped with four parallel robotic arms on a single crossbeam. The four parallel robotic arms are a first robotic arm r1, a second robotic arm r2, a third robotic arm r3, and a fourth robotic arm r4. Each robotic arm has two end effectors, and there is a minimum distance constraint in the Y direction between adjacent robotic arms. The method includes the following steps: S1: Obtain the geometric features of each piece of fabric, determine the gripping mode type of each piece of fabric based on the geometric features, and calculate the feasible range of motion for each candidate robotic arm when performing gripping based on the gripping mode type. S2: The robotic arm collaborative picking scheduling is executed cyclically with the termination condition that all cut pieces are planned. In each round of scheduling, the robotic arms are allocated according to a multi-level priority strategy of four-axis collaboration first, two-axis collaboration second, and single-axis as a last resort. The allocation of this round ends when the number of attempts reaches the preset limit or all robotic arms are selected. After the termination of a single round, it returns to the starting point of the loop to continue the next round of scheduling until all cut pieces are planned. S3: After a round of picking and scheduling is completed, the corresponding placement action is generated based on the materials allocated in the current round and the status of the robotic arm, thus completing the coordinated scheduling of picking and placement. S4: Perform motion simulation verification on each action generated by the scheduler, and confirm the feasibility of the scheduled actions based on the simulation verification results; The grasping modes include multi-arm collaborative grasping mode and single-arm independent grasping mode.
[0028] The core geometric threshold parameters, mechanical parameters, and placement pose parameters are all concentrated in the configuration file. The core geometric threshold parameters include the minimum end-effector pitch (min_x_range), the maximum end-effector pitch (max_x_range), and the Y-space (min_y_space). The mechanical parameters include the maximum acceleration and maximum velocity of each axis.
[0029] like Figure 1 As shown, the cut piece sorting equipment includes a single crossbeam with four parallel robotic arms r1, r2, r3, and r4 mounted on it. Specifically, the first robotic arm r1 corresponds to end effectors eef11 and eef12, the second robotic arm r2 corresponds to end effectors eef21 and eef22, the third robotic arm r3 corresponds to end effectors eef31 and eef32, and the fourth robotic arm r4 corresponds to end effectors eef41 and eef42. There is a minimum distance constraint in the Y-direction between adjacent robotic arms among the four parallel robotic arms, and the eight end effectors move within a limited range in the X-direction.
[0030] like Figure 2 As shown, the four-parallel robotic arm fabric sorting and scheduling method is executed by the controller of the sorting equipment and includes the following steps.
[0031] Specifically, the controller first reads the geometric feature information of each piece in the current scheduling batch. The geometric feature information comes from the layout CAD file and includes at least parameters such as the outer contour coordinates, length, width, aspect ratio, and area of each piece.
[0032] The controller determines the gripping mode type for each piece of fabric based on its geometric features and according to preset classification rules. The gripping mode types include a multi-arm collaborative gripping mode and a single-arm independent gripping mode. For example, for large-sized pieces of fabric, the multi-arm collaborative gripping mode is suitable; for small-sized pieces of fabric, the single-arm independent gripping mode is suitable. The multi-arm collaborative gripping mode refers to a mode where two or more robotic arms jointly grip the same piece of fabric, while the single-arm independent gripping mode refers to a mode where a single robotic arm independently completes the gripping process.
[0033] After determining the grasping mode type, the controller calculates the feasible motion range for each candidate robotic arm to perform grasping based on the grasping mode type. The feasible motion range refers to the set of coordinate intervals within which a robotic arm and its end effector can simultaneously reach the grasping point without interference when assigned a grasping task. The feasible motion range includes at least the feasible position interval in the X-direction of the beam and the occupied interval in the Y-direction of the robotic arm.
[0034] The controller calculates the feasible motion range using corresponding calculation rules based on the different grasping modes. For example, for a multi-arm collaborative grasping mode, it is necessary to calculate whether there is a common intersection position of each participating arm in the X direction of the beam, so that each end effector can simultaneously reach its respective grasping point X coordinate; for a single-arm independent grasping mode, it is only necessary to calculate whether the single arm can reach the target grasping point within its X-pitch travel range. The specific calculation method will be further described in subsequent embodiments.
[0035] The process terminates when all cut pieces are planned, and the robotic arm collaborative picking scheduling is executed cyclically. In each round of scheduling, the robotic arms are allocated according to a multi-level priority strategy of four-axis collaboration first, two-axis collaboration second, and single-axis collaboration as a last resort, until the number of attempts in this round reaches the preset limit or all robotic arms are selected. After a single round terminates, the process returns to the starting point of the loop to continue the next round of scheduling until all cut pieces are planned. Specifically, the controller uses the successful planning of all cut pieces in the sorting task as the termination condition to cyclically execute the robotic arm collaborative picking schedule.
[0036] Before each round of scheduling begins, the controller initializes the selection status of each robotic arm to "not selected" and sets a counter for the number of attempts. In each round of scheduling, the controller attempts to allocate robotic arms sequentially according to a multi-level priority strategy: Four-axis collaboration: Prioritize assigning all four robotic arms in the current scheduling round to the cut piece simultaneously to achieve parallel four-axis grasping.
[0037] Dual-axis collaboration: If the four-axis collaborative allocation fails, try to allocate two adjacent robotic arms to the cut piece at the same time to achieve dual-axis parallel grasping.
[0038] Single-axis fallback: If dual-axis collaborative allocation also fails, try to allocate a single robotic arm to the cut piece in turn to ensure that at least one robotic arm can be assigned to the grasping task in each round of scheduling.
[0039] When the number of attempts counter reaches the preset limit, or when all four robotic arms have been selected, the current round of picking and scheduling ends, and the process proceeds to step S3.
[0040] During the robotic arm allocation process, the controller synchronously verifies the following constraints: whether there is an overlap in the feasible motion ranges of each robotic arm to ensure no physical interference occurs; whether the same robotic arm is repeatedly allocated within the same scheduling round; and whether the same cut piece is repeatedly allocated to different robotic arms. The specific allocation order and maximum number of attempts for each priority level will be further described in subsequent embodiments.
[0041] Once a round of picking and scheduling is completed, the corresponding placement action is generated based on the materials allocated in the current round and the status of the robotic arm, thus completing the coordinated scheduling of picking and placement.
[0042] Specifically, after a round of picking and scheduling is completed, the controller executes the placement action generation process based on the cut pieces allocated in the current round and the corresponding robotic arm and end effector allocation status, and generates the corresponding placement action.
[0043] In this process, the controller generates a corresponding placement action for each assigned gripping action based on the target material box position information of the cut piece. The placement action includes: path planning for moving each robotic arm from the current gripping point position to the target placement point position, motion parameters (speed, acceleration, displacement) of each axis, and arrival timing.
[0044] All actions generated by the controller are output in a preset standardized format.
[0045] Motion simulation verification is performed on each action generated by the scheduler, and the feasibility of the scheduled actions is confirmed based on the simulation verification results.
[0046] Specifically, before officially sending all the picking and placing actions generated by S3 to the servo controller, the controller performs motion simulation verification on each action.
[0047] The simulation verification calculates the motion time of each axis involved in the action for each action, and uses the maximum motion time of each axis as the total time of the multi-axis synchronous action. As an example, the total time of an action depends on the time required for the axis with the longest travel or the slowest speed to complete the action. That is, when all axes move synchronously, the total time is determined by the axis with the longest travel time.
[0048] The controller also draws simulation results of each action according to a preset size ratio, which intuitively displays the motion trajectory and pose changes of each robotic arm and end effector in three-dimensional space, and is used to check whether there are abnormalities such as crossbeam overrun, robotic arm collision, and end effector overtravel.
[0049] If the simulation verification passes, meaning that all actions meet the hardware constraints and there is no risk of interference, the controller will send the generated action sequence to the servo controller of the sorting equipment for execution.
[0050] If an anomaly is detected during simulation verification, the controller will trigger an anomaly rollback mechanism, abandon the scheduling results of this round, and retain the relevant clips for re-allocation in the next scheduling round.
[0051] The effects of the above technical solution are as follows: By coordinating the operation of four parallel robotic arms on a shared single beam, and employing a multi-level priority strategy of prioritizing four-axis collaboration, followed by two-axis collaboration, and then single-axis collaboration as a fallback, a maximum of four cut pieces can be grasped simultaneously in a single scheduling round. Compared to the traditional serial mode where a single robotic arm grasps only one cut piece at a time, this achieves true parallel operation of multiple robotic arms, effectively solving the material blockage problem on the production line in mass production scenarios.
[0052] By employing a progressive allocation strategy that prioritizes four-axis collaboration, followed by two-axis collaboration, and then uses single-axis collaboration as a fallback, the system maximizes the number of pieces captured in a single round while ensuring that all pieces are successfully allocated, preventing pieces from being shelved for extended periods due to allocation failures. Simultaneously, the maximum number of attempts mechanism effectively controls the computation time for each round of scheduling, avoiding infinite loops in extreme cases.
[0053] By calculating and verifying the feasible range of motion for each candidate robotic arm during the allocation phase, and combining the mutual exclusion of robotic arm occupancy and the verification of repeated allocation of cut pieces, the algorithm ensures that each robotic arm can reach its respective gripping point position simultaneously without physical interference, without relying on collision avoidance processing during runtime.
[0054] Before the scheduled actions are officially issued, this method uses a multi-axis synchronous motion time model for simulation verification, accurately calculating the motion time of each axis and using the maximum time of each axis as the total synchronization time. The simulation results visually display the motion trajectory of each robotic arm in three-dimensional space, and can detect and eliminate potential risks such as boundary crossing, collision, and overtravel before the action is executed.
[0055] Preferably, the multi-robotic arm collaborative grasping mode includes four-point grasping and longitudinal two-point grasping, and the single-robotic arm independent grasping mode includes lateral two-point grasping and single-point grasping; Among them, the candidate robotic arm combinations for four-point grasping and longitudinal two-point grasping are any combination of the first robotic arm r1 and the second robotic arm r2, the second robotic arm r2 and the third robotic arm r3, and the third robotic arm r3 and the fourth robotic arm r4; the candidate robotic arm for lateral two-point grasping is any one of the first robotic arm r1, the second robotic arm r2, the third robotic arm r3, or the fourth robotic arm r4; single-point grasping is completed by a single end effector of a single robotic arm.
[0056] Specifically, when the controller determines the grasping mode type based on the geometric features of the cut piece in step S1, it classifies them according to the following rules: The grasping modes are divided into two main categories: multi-arm collaborative grasping mode and single-arm independent grasping mode. Multi-arm collaborative grasping mode refers to a mode in which two robotic arms jointly grasp the same piece of fabric, including four-point grasping and vertical two-point grasping subtypes. Single-arm independent grasping mode refers to a mode in which a single robotic arm independently completes the grasping process, including horizontal two-point grasping and single-point grasping subtypes.
[0057] The controller's configuration file pre-stores four-point gripping size thresholds, two-point vertical gripping size thresholds, two-point horizontal gripping size thresholds, and a single-point gripping size threshold. The controller compares the length and width dimensions of each fabric piece with these preset thresholds and automatically determines the appropriate gripping mode type for each fabric piece based on the comparison results. When the length of the cut piece is greater than the preset four-point gripping length threshold and the width is greater than the preset four-point gripping width threshold, the controller determines that the cut piece is suitable for the four-point gripping mode.
[0058] Four-point gripping refers to the process where the four end effectors of two adjacent robotic arms jointly grip the same fabric piece. Specifically, the two end effectors of each of the two robotic arms participating in four-point gripping attach to four gripping points on the fabric piece. These four gripping points are distributed in four different areas of the fabric piece, forming a stable gripping support.
[0059] For the four-point grasping mode, the candidate robotic arm combinations are any adjacent pair of robotic arms among the following combinations: the combination of the first robotic arm r1 and the second robotic arm r2, the combination of the second robotic arm r2 and the third robotic arm r3, and the combination of the third robotic arm r3 and the fourth robotic arm r4. When the controller performs four-axis collaborative allocation, it tries each candidate combination in the order of [r1,r2], [r2,r3], and [r3,r4], and selects the combination that has a common intersection in the feasible interval of the corresponding beam X and satisfies the Y-direction spacing constraint to perform the grasping.
[0060] When the length of the cut piece is greater than the preset two-point gripping length threshold and the width is less than or equal to the preset four-point gripping width threshold, the controller determines that the cut piece is suitable for the two-point gripping mode.
[0061] Longitudinal two-point gripping refers to the coordinated gripping of a piece of fabric by one end effector from each of two adjacent robotic arms (a total of two end effectors). The two end effectors respectively attach to two gripping points along the length of the fabric.
[0062] For the vertical two-point grasping mode, the candidate robotic arm combinations are any adjacent dual-arm combinations among the following: the combination of the first robotic arm r1 and the second robotic arm r2, the combination of the second robotic arm r2 and the third robotic arm r3, and the combination of the third robotic arm r3 and the fourth robotic arm r4. When performing dual-axis collaborative allocation, the controller tries each candidate combination in the order of [r1,r2], [r2,r3], and [r3,r4].
[0063] When the width of the cut piece is greater than the preset horizontal two-point gripping width threshold and the length is less than or equal to the preset vertical two-point gripping length threshold, the controller determines that the cut piece is suitable for the horizontal two-point gripping mode.
[0064] Lateral two-point gripping refers to the simultaneous gripping of a cut piece by two end effectors of a single robotic arm along its width. The two end effectors of this single robotic arm respectively attach to two gripping points along the width of the cut piece.
[0065] For the lateral two-point grasping mode, the candidate robotic arm is any single robotic arm among the first robotic arm r1, the second robotic arm r2, the third robotic arm r3, or the fourth robotic arm r4. When assigning a single axis, the controller tries each candidate single robotic arm in the order of r1, r2, r3, r4, and selects the robotic arm that is not currently assigned and whose feasible range of motion can cover the piece grasping point to perform the grasping.
[0066] When the length of the cut piece is less than or equal to a preset single-point gripping length threshold and the width is less than or equal to a preset single-point gripping width threshold, the controller determines that the cut piece is suitable for the single-point gripping mode.
[0067] Single-point gripping refers to gripping independently by a single end effector of a single robotic arm. This single end effector adsorbs the geometric center area of the cut piece.
[0068] For single-point grasping mode, the candidate execution method is any end effector of any robotic arm. When the controller performs single-axis allocation, it selects the end effector of the robotic arm that is not currently allocated to perform grasping.
[0069] The order of the preset thresholds is as follows: four-point gripping size threshold > vertical two-point gripping size threshold > horizontal two-point gripping size threshold > single-point gripping size threshold. Through this four-level progressive threshold comparison, the controller can automatically match the optimal gripping method based on the different geometric dimensions of the cut pieces, achieving comprehensive coverage of cut pieces of different sizes.
[0070] The effects of the above technical solution are as follows: By subdividing the grasping mode into four types—four-point grasping, vertical two-point grasping, horizontal two-point grasping, and single-point grasping—and automatically determining the applicable mode based on the length, width, and aspect ratio of the cut piece, it can cover the entire size range from large to small cut pieces. It achieves dynamic matching between the grasping combination and the geometric features of the cut piece, significantly improving grasping stability.
[0071] The four-point grasping and vertical two-point grasping modes employ adjacent dual-arm combinations [r1,r2], [r2,r3], and [r3,r4], fully utilizing the physical advantages of the close proximity between adjacent arms and the ease with which the feasible intervals of the beam X can intersect during cooperative movement. The horizontal two-point grasping and single-point grasping modes are performed independently by a single arm, avoiding the allocation complexity associated with multi-arm collaboration. Candidate combinations for each mode are tried sequentially in a fixed order, resulting in simple logic and high computational efficiency.
[0072] The four gripping modes correspond to the four-axis collaborative (four-point gripping), dual-axis collaborative (vertical two-point gripping), and single-axis independent (horizontal two-point gripping, single-point gripping) allocation strategies in S2, forming a complete logical link from gripping mode determination to robotic arm allocation, ensuring that the optimal gripping scheme can be found for each piece of fabric.
[0073] Preferably, the feasible range of motion includes the feasible interval of the crossbeam X. When the crossbeam is located within the feasible interval of X, the pitch travel of each end effector participating in the current grasping in the X direction does not exceed the preset maximum pitch travel and is not less than the preset minimum pitch travel, and each end effector can simultaneously reach its corresponding grasping point X coordinate. Wherein, the feasible interval of beam X is the set of all beam X coordinates that simultaneously satisfy the above conditions.
[0074] The feasible interval of the beam X is calculated as follows: For four-point grasping or two-point horizontal grasping, the feasible interval of the beam X is: For two-point vertical grasping, the feasible interval of the beam X is: For single-point grasping, the feasible interval of the beam X is: Where, left_range=[ , [] represents the range of motion of the left end effector, right_range=[ , [This refers to the range of motion of the right-hand end effector.] This represents the maximum pitch of the end effector. This is the minimum pitch for the end effector.
[0075] Preferably, the feasible range of motion further includes the Y-occupancy interval of the robotic arm, which is determined by deducting the safety clearance margin of adjacent robotic arms based on the minimum distance constraint in the Y direction between adjacent robotic arms.
[0076] The feasible range of the crossbeam X refers to the range of positions in the X direction where the crossbeam can stay. When the crossbeam is located at any X coordinate within this range, the pitch travel of each end effector participating in the current grasping in the X direction does not exceed the preset maximum pitch travel and is not less than the preset minimum pitch travel, and each end effector can simultaneously reach its corresponding grasping point X coordinate.
[0077] The controller's configuration file contains the following pre-stored parameters: the X-axis motion range of the left end effector, left_range=[ , The X-axis range of motion of the right-hand end effector is right_range=[ , The maximum pitch of the X-axis variable pitch of the end effector. Minimum pitch of the X-axis pitch of the end effector .
[0078] in, The minimum reachable position coordinates of the left end effector in the X direction. The coordinates of the maximum reachable position of the left end effector in the X direction; Let X be the minimum reachable position coordinate of the right-hand end effector in the X direction. The coordinates of the maximum reachable position of the right-hand end effector in the X direction are given.
[0079] The pitch refers to the distance between the two end effectors of the same robotic arm in the X direction. The maximum pitch travel... The maximum achievable distance between the two end effectors in the X direction is limited by the physical constraints of the end effector's pitch control module; the minimum pitch travel... The minimum distance that can be achieved between two end effectors in the X direction is limited by the body size and installation spacing of the two end effectors.
[0080] The controller calculates the feasible interval of beam X according to different grasping mode types in the following ways: For four-point gripping or lateral two-point gripping, the end effectors involved in the current gripping include two end effectors of the same robotic arm, or four end effectors of two adjacent robotic arms. In either case, the left and right end effectors are involved in the gripping simultaneously, and a position interval that simultaneously satisfies the pitch travel constraints of the left and right end effectors needs to be found in the X direction of the beam.
[0081] The controller calculates the feasible interval of beam X in the following manner. : The lower limit is taken as the larger of the following two values: the maximum reachable position of the left end effector. Minimum pitch stroke of the end effector The sum of half of the total, and the maximum reachable position of the right end effector. Maximum pitch stroke of the end effector The difference is one-half.
[0082] The upper limit is taken as the smaller of the following two values: the minimum reachable position of the right-hand end effector. Minimum pitch stroke of the end effector The difference of half, and the minimum reachable position of the left end effector. Maximum pitch stroke of the end effector The sum of half of.
[0083] When the calculated lower limit is less than or equal to the upper limit, the feasible range of the beam X exists. Any X coordinate within this range allows the left and right end effectors to simultaneously reach their respective gripping point X coordinates, and the variable pitch stroke does not exceed a preset range. When the lower limit is greater than the upper limit, the feasible range of the beam X for this candidate robotic arm combination does not exist, meaning that the combination cannot complete gripping simultaneously.
[0084] For a longitudinal two-point gripping operation, the current gripping involves one end effector from each of the two adjacent robotic arms, for a total of two end effectors. Compared to a four-point gripping operation, a longitudinal two-point gripping operation only involves a subset of the end effectors, and the constraints on the feasible section of the beam X are more relaxed.
[0085] The controller calculates the feasible interval of beam X in the following manner. : The lower limit is taken as the maximum reachable position of the right end effector. Maximum pitch stroke of the end effector The difference is one-half.
[0086] The upper limit is taken as the minimum reachable position of the right end effector. Minimum pitch stroke of the end effector The difference is one-half.
[0087] When the calculated lower limit value is less than or equal to the upper limit value, the feasible interval of the beam X exists.
[0088] For single-point grasping, only a single end effector needs to complete the grasping, and there is no pitch constraint between two end effectors of the same robotic arm. Therefore, the calculation of the feasible range of the beam X only needs to consider the relationship between the reachable range of a single end effector and the X coordinate of the grasping point.
[0089] The controller calculates the feasible interval of beam X in the following manner. : The lower limit is taken as the minimum reachable position of the right end effector. Maximum pitch stroke of the end effector The difference is one-half.
[0090] The upper limit is taken as the minimum reachable position of the right end effector. Minimum pitch stroke of the end effector The difference is one-half.
[0091] When the calculated lower limit value is less than or equal to the upper limit value, the feasible interval of the beam X exists.
[0092] It should be noted that the above calculation method uniformly uses the motion range parameter of the right-side end effector. For single-point grasping performed solely by the left-side end effector, the same result can be obtained by replacing the right-side parameter with the motion range parameter of the left-side end effector for symmetrical calculation.
[0093] The Y-occupied range of the robotic arm refers to the position range occupied by the main body structure of a robotic arm in the Y direction (i.e., the arrangement direction of adjacent robotic arms) when a robotic arm is performing a grasping task.
[0094] The controller's configuration file pre-stores the minimum Y-direction spacing constraint between adjacent robotic arms, and a safety avoidance margin (min_y_space) for adjacent robotic arms based on the minimum Y-direction spacing constraint. This safety avoidance margin is greater than zero to ensure that adjacent robotic arms will not collide with each other during the grasping task, even with certain motion errors or vibrations.
[0095] When the controller determines the Y-occupancy range of each candidate robotic arm in step S1, it calculates the basic occupancy range of the robotic arm in the Y direction with the target Y coordinate of the robotic arm as the center and the preset Y-direction movement range as the radius. Then, based on the basic occupancy range, it subtracts half of the safety avoidance margin min_y_space in the direction of the adjacent robotic arm to obtain the final Y-occupancy range of the robotic arm, so that there is at least one safety avoidance margin min_y_space interval between the Y-occupancy ranges of two adjacent robotic arms.
[0096] When the Y-occupied regions of any two adjacent robotic arms do not overlap, the two robotic arms can perform grasping tasks simultaneously; when the Y-occupied regions of two adjacent robotic arms overlap, the controller excludes this combination during scheduling and allocation, thereby fundamentally avoiding mechanical collisions.
[0097] The effects of the above technical solution are as follows: By precisely calculating the feasible range of the crossbeam X, the system ensures that the crossbeam's stopping position allows all end effectors involved in the grasping process to simultaneously meet the dual constraints of maximum and minimum travel in the X direction. This fundamentally prevents the crossbeam from exceeding its physical limits during movement or failing to reach the target grasping point due to overtravel during pitch adjustment. From the scheduling generation stage, all actions are guaranteed to remain within the hardware capability boundaries, eliminating the need for runtime overtravel protection triggers.
[0098] By calculating the Y-axis occupancy range of the robotic arm and deducting a safety margin, the scheduling and allocation phase ensures that the Y-axis occupancy ranges of any two adjacent robotic arms do not overlap, fundamentally avoiding the risk of collisions in the Y direction. During the scheduling generation phase, algorithmic constraints eliminate all collision possibilities, eliminating the need for additional real-time obstacle avoidance processing.
[0099] The calculation formulas for the feasible interval of the beam X are different for four-point gripping, two-point horizontal gripping, two-point vertical gripping, and single-point gripping. These formulas correspond to the variable-pitch stroke constraints under different numbers of end effectors and usage methods, ensuring that each gripping mode can obtain the optimal beam dwell position under its own physical constraints.
[0100] Core geometric parameters such as the left end effector's motion range (left_range), the right end effector's motion range (right_range), the maximum pitch range (max_x_range), the minimum pitch range (min_x_range), and the Y-direction safety margin (min_y_space) are all centrally stored in the configuration file. When the equipment model changes, the robotic arm's installation position is adjusted, or the end effector is replaced, only the corresponding parameters in the configuration file need to be modified; there is no need to rewrite the scheduling logic code, thus achieving rapid adaptation to the new equipment.
[0101] Preferably, the multi-level priority strategy is executed based on a cyclic trial allocation mechanism. Before each round of scheduling begins, the trial count is initialized to a preset initial value. The allocation is terminated when the trial count reaches a preset upper limit or when all four robotic arms are selected. The allocation process is executed sequentially in the order of first priority, second priority, and third priority. The allocation process is as follows: Search for cut pieces that fit the current candidate robotic arm combination from the unplanned cut pieces. After finding a suitable cut piece, further verify that the cut piece has not been allocated to other robotic arms. If the verification passes, bind the cut piece to each robotic arm in the current candidate robotic arm combination and update the robotic arm selection status and end effector allocation status, generating a picking action. If the search fails, maintain the unselected state of each robotic arm in the current candidate robotic arm combination, increment the trial count, and switch to the next candidate robotic arm combination or the next priority. First priority: When the trial count is equal to the preset initial value and none of the robotic arms are selected, the allocation process is executed with four robotic arms as candidate robotic arm combinations; if the search fails, the trial count is incremented and the process enters the second priority. Second priority: When the trial count is within the first numerical range, according to the first preset order, it is determined whether both robotic arms in each adjacent dual-arm combination are not selected. If neither is selected, the adjacent dual-arm combination is used as a candidate combination and the allocation process is executed. Each value of the trial count within the first numerical range corresponds to one allocation process, and the trial count is incremented after execution. When the trial count exceeds the upper limit of the first numerical range, the third priority is entered. The first preset order is preferably in the order of first robotic arm and second robotic arm, second robotic arm and third robotic arm, and third robotic arm and fourth robotic arm. Third priority: When the trial count is within the second numerical range, according to the second preset order, it is determined whether each single robotic arm has not been selected. If it has not been selected, the single robotic arm is used as a candidate combination to execute the allocation process. Each value of the trial count within the second numerical range corresponds to one allocation process. After the process is completed, the trial count is incremented. When the trial count exceeds the upper limit of the second numerical range, the current allocation terminates. The second preset order is preferably from left to right, i.e., the order of the first robotic arm, the second robotic arm, the third robotic arm, and the fourth robotic arm. The preset initial value is less than the lower limit of the first numerical interval, and the upper limit of the first numerical interval is less than the lower limit of the second numerical interval.
[0102] Preferably, the robotic arm allocation process includes multiple constraints; these multiple constraints prevent or eliminate interference from the scheduling source. The multiple constraints include the intersection constraint of the X-section of the beam, the mutual exclusion constraint of the Y-section of the robotic arm, and the mutual exclusion constraint of the robotic arm occupancy. The beam X interval intersection constraint is used to ensure that the feasible beam X intervals of each robot arm assigned to the same scheduling round have a common intersection. The mutual exclusion constraint of the Y-section of the robotic arm is used to ensure that the Y-section occupied by each robotic arm assigned to the same scheduling round does not overlap. The mutual exclusion constraint for robotic arm occupancy is used to ensure that the same robotic arm will not be repeatedly assigned within the same scheduling round, and that the same cut piece will not be repeatedly assigned to different robotic arms.
[0103] During the robotic arm allocation process described in S2, the following verification is also performed: after verifying that the cut piece has not been repeatedly allocated, the allocation status of the end effector is updated and a picking action is generated.
[0104] Specifically, the controller performs the robotic arm cooperative pickup scheduling in S2 in the following manner: The overall scheduling task is terminated when all cut pieces are planned, and multiple rounds of robotic arm collaborative picking scheduling are executed in a loop.
[0105] The multi-level priority strategy is implemented based on a cyclical trial allocation mechanism. Before each round of scheduling begins, the controller initializes the trial count to a preset initial value (e.g., 0) and resets the selection state of each robotic arm to unselected. Each round of scheduling terminates when the trial count reaches a preset upper limit or when all four robotic arms are selected.
[0106] The controller executes the allocation process sequentially in the order of first priority, second priority, and third priority.
[0107] The allocation process is as follows: The controller retrieves a piece of fabric suitable for the current candidate robotic arm combination from the unplanned fabric piece queue. After finding a suitable piece, it further verifies that the piece has not been assigned to any other robotic arm. If the verification passes, the controller binds the piece to each robotic arm in the current candidate robotic arm combination, updates the robotic arm selection status and end effector allocation status, and generates a picking action. If the retrieval fails, the controller maintains the unselected state of each robotic arm in the current candidate robotic arm combination, increments the trial count, and switches to the next candidate robotic arm combination or the next priority.
[0108] When the trial count is equal to the preset initial value and none of the robotic arms are selected, the controller executes the allocation process with four robotic arms as candidate robotic arm combinations.
[0109] Specifically, the controller iterates through the queue of unplanned cut pieces, checking each piece for suitability for the four-point grasping mode. For each candidate cut piece, it calculates the feasible X-section of the beam for each of the four robotic arms participating in the grasping of that piece, and verifies whether there is a common intersection between the feasible X-sections of the beams of each robotic arm. If there is a common intersection, it further verifies whether the Y-sections occupied by the four robotic arms do not overlap. If both verifications pass, it is determined that the cut piece can be picked up collaboratively by the four robotic arms. The controller assigns four robotic arms and their corresponding end effectors to the cut piece, generates a picking action, updates the selection status of all four robotic arms to selected, and marks the cut piece as planned. If the search fails, i.e., the four-axis allocation process does not find a cut piece that meets the constraints among all the cut pieces to be planned, the controller maintains the unselected state of each robotic arm, increments the trial count, and enters the second priority.
[0110] When the trial count is within the first numerical range (e.g., trial count is 1, 2, 3), the controller sequentially determines whether both robotic arms in each adjacent pair of robotic arms are not selected, according to the adjacent combination order of first robotic arm r1 and second robotic arm r2, second robotic arm r2 and third robotic arm r3, and third robotic arm r3 and fourth robotic arm r4. If both robotic arms in a certain combination are not selected, the controller uses that adjacent pair of robotic arms as a candidate combination and executes the allocation process.
[0111] Specifically, for the current candidate dual-arm combination, the controller traverses the queue of unplanned cut pieces, checking each piece to see if it is suitable for a four-point gripping mode or a longitudinal two-point gripping mode. For each candidate cut piece, the controller calculates the feasible X-section of the beam for each of the two robotic arms participating in the gripping of that piece, and checks whether their feasible X-sections have a common intersection. If a common intersection exists, the controller further checks whether the Y-sections occupied by the two robotic arms do not overlap. If both checks pass, the controller further checks whether the cut piece has already been assigned to another robotic arm (to prevent duplicate assignment). If all the aforementioned checks pass, the controller assigns the corresponding two robotic arms and their end effectors to the cut piece, generates a picking action, updates the selection status of the two robotic arms in the dual-axis combination to "selected," and marks the cut piece as planned.
[0112] For each value of the trial count within the first numerical interval, an allocation process is executed once. Specifically, when the trial count is the first value in the first numerical interval, the controller attempts the [r1, r2] combination; after execution, the trial count is incremented to the second value, and the [r2, r3] combination is attempted; after execution, the trial count is incremented to the third value, and the [r3, r4] combination is attempted. After execution, the controller increments the trial count. When the trial count exceeds the upper limit of the first numerical interval, the controller enters the third priority level.
[0113] When the trial count is in the second numerical range (e.g., trial count is 4, 5, 6, 7), the controller sequentially determines whether each individual robotic arm has not been selected, in the order of first robotic arm r1, second robotic arm r2, third robotic arm r3, and fourth robotic arm r4. If a single robotic arm is not selected, the controller uses that single robotic arm as a candidate combination to execute the allocation process.
[0114] Specifically, for the current candidate robotic arm, the controller traverses the queue of unplanned cut pieces, checking each piece to see if it is suitable for either a two-point horizontal gripping mode or a single-point gripping mode. For each candidate cut piece, the controller calculates the feasible X-section of the robotic arm's beam, verifies whether the robotic arm can enable its end effector to reach the target gripping point X coordinate within its feasible X-section, and further verifies whether the Y-section occupied by the robotic arm does not overlap with the Y-section occupied by the selected robotic arm. If the verification passes, the controller further verifies whether the cut piece has been assigned to another robotic arm. If all the aforementioned verifications pass, the controller assigns the corresponding single robotic arm and its end effector to the cut piece, generates a picking action, updates the selection status of the robotic arm to "selected," and marks the cut piece as planned.
[0115] Each value of the trial count within the second numerical interval corresponds to one allocation process. That is, when the trial count is the first value in the second numerical interval, the controller attempts r1; after execution, the trial count is incremented to the second value, and r2 is attempted; and so on, until r4 is attempted. After execution, the controller increments the trial count. When the trial count exceeds the upper limit of the second numerical interval, the current allocation round terminates.
[0116] During the allocation process of the first, second, and third priorities mentioned above, the controller synchronously performs the following multiple constraint checks to ensure that the movements of the robotic arms do not interfere with each other in the same scheduling round: When assigning cut pieces to a combination of robotic arms (whether it's four-axis collaborative, two-axis collaborative, or single-axis independent), the controller performs an intersection calculation on the feasible X-coordinate intervals of the beam for each assigned robotic arm. If the feasible X-coordinate intervals of the beams of all robotic arms have a common intersection, the constraint passes, indicating that each robotic arm can simultaneously stop within the same X-coordinate interval of the beam to complete its respective grasping action. If the feasible X-coordinate intervals of the beams of all robotic arms do not have a common intersection, the controller abandons the assigned combination, re-marks the relevant robotic arms as unselected, and continues to try the next candidate combination or enter the next priority level.
[0117] When assigning cut pieces to a combination of robotic arms, the controller performs overlap detection on the Y-occupancy intervals of each assigned robotic arm. If the Y-occupancy intervals of each robotic arm do not overlap, the constraint is passed, indicating that adjacent robotic arms maintain a safe distance in the Y direction; if the Y-occupancy intervals of any two robotic arms overlap, the controller abandons the assigned combination and continues to try the next candidate combination or enters the next priority.
[0118] The controller ensures that the same robotic arm is not repeatedly assigned to two different pieces within the same scheduling round. Once a robotic arm has been assigned to a piece in the current scheduling round, its selection status is updated to "selected," and in all subsequent priority attempts, the controller skips that robotic arm and does not assign it to other pieces.
[0119] When executing the allocation process for each priority level, after determining the candidate cut piece and before generating the picking action, the controller performs a cut piece duplicate allocation check: it checks whether the cut piece has already been picked up by another robotic arm that has been allocated in the current scheduling round. If the cut piece has been marked as planned, the controller skips the cut piece and continues to search for the next candidate cut piece, ensuring that the same cut piece is not repeatedly allocated to different robotic arms.
[0120] Once all the above constraint checks pass and the piece has not been assigned repeatedly, the controller updates the end effector allocation status and generates a pick-up action. If any constraint check fails or the piece has been assigned repeatedly, the controller abandons the current allocation attempt and continues to try the next candidate combination or moves to the next priority level.
[0121] Through the aforementioned iterative allocation mechanism and multiple constraint checks, the controller prioritizes four-axis coordination in each round of scheduling, only downgrading to two-axis after four-axis allocation fails, and only downgrading to single-axis after two-axis allocation fails. After one round of allocation is completed, the controller returns to the starting point of the loop and continues the next round of scheduling until all cut pieces have been planned.
[0122] The effects of the above technical solution are as follows: By employing a multi-tiered priority allocation strategy—prioritizing four-axis collaboration, followed by two-axis collaboration, and then single-axis as a fallback—each scheduling round prioritizes attempting to fully utilize all four robotic arms. Only after four-axis allocation fails does it degrade to two-axis, and only after two-axis allocation fails does it degrade to single-axis. Combined with a cyclical trial allocation mechanism, this ensures maximum robotic arm utilization in each scheduling round, thereby improving equipment throughput.
[0123] Through the single-axis fallback mechanism, even if the four-axis and dual-axis allocation both fail, the controller will still traverse all single robotic arms and try to allocate the cutting pieces that can be completed by a single axis one by one, ensuring that all cutting pieces can be successfully planned and there is no problem of cutting pieces being shelved for a long time or permanently unable to be allocated due to allocation failure.
[0124] By dividing the trial count into three levels—a preset initial value, a first numerical interval, and a second numerical interval—corresponding to allocation attempts for four-axis collaboration, two-axis collaboration, and single-axis independence, respectively, each priority is executed within the preset trial count interval. The preset initial value is less than the lower limit of the first numerical interval, and the upper limit of the first numerical interval is less than the lower limit of the second numerical interval, ensuring that the priority strategy of four-axis first, two-axis second, and single-axis last is strictly followed. Simultaneously, by setting a preset upper limit for the trial count, the maximum number of attempts per round of scheduling is effectively controlled, avoiding infinite loops and calculation timeouts caused by traversing all cut pieces and all combinations in extreme cases, thus guaranteeing the real-time performance of the scheduling algorithm.
[0125] By employing a triple constraint—the intersection constraint of the X-section of the beam, the mutual exclusion constraint of the Y-section of the robotic arm, and the mutual exclusion constraint of the robotic arm's occupancy—all possible collision combinations are eliminated during the scheduling and allocation phase. The X-section intersection constraint ensures that each robotic arm can simultaneously stop within the same X-coordinate interval of the beam to complete the grasping action; the Y-section mutual exclusion constraint ensures that adjacent robotic arms maintain a safe distance in the Y direction; and the occupancy mutual exclusion constraint ensures that the same robotic arm and the same piece of fabric are not repeatedly allocated. This triple constraint works synergistically, eliminating the need for real-time collision detection and obstacle avoidance during execution, thus reducing the complexity of the control system.
[0126] By encapsulating the process of retrieving suitable cut pieces from unplanned cut pieces → verifying that the cut pieces have not been repeatedly assigned → binding the robotic arm and updating its status → generating the picking action into a unified allocation process, the three priorities share the same allocation logic, with only the candidate robotic arm combinations differing (four-axis / dual-axis / single-axis). This greatly simplifies the implementation complexity of the scheduling algorithm, reduces code maintenance costs, and ensures the consistency of the allocation logic for each priority.
[0127] In the allocation process, after determining the candidate cut pieces and before generating the picking action, the controller performs a cut piece duplication check to ensure that the same cut piece is not repeatedly allocated to different robotic arms. At the same time, by updating the robotic arm selection state, it ensures that the same robotic arm is not repeatedly allocated to two different cut pieces in the same scheduling round. The dual verification mechanism guarantees the uniqueness and correctness of the scheduling result data.
[0128] Preferably, before determining the gripping mode type of each piece based on the geometric features in step S1, a physical attribute pre-screening step is further included: Obtain the physical property parameters of each cut piece, including the weight of the cut piece, the coefficient of friction of the fabric surface, and the tensile strength; Based on the weight of the cut piece and the friction coefficient of the fabric surface, calculate the theoretical clamping force safety factor in the single robotic arm independent gripping mode; if the theoretical clamping force safety factor is lower than the preset clamping safety threshold, then remove all single robotic arm independent gripping modes from the candidate gripping modes of the corresponding cut piece and forcibly limit it to the multi-robotic arm collaborative gripping mode. Based on the weight of the cut piece and the theoretical effective contact area of the end effector in the current candidate gripping mode, the local stress risk value of the cut piece in each candidate gripping mode is calculated. The local stress risk value of the cut piece is compared with the tensile strength. If the local stress risk value of the cut piece exceeds the preset deformation safety threshold, the current candidate gripping mode is replaced with a collaborative gripping mode containing more end effectors in order of increasing number of end effectors, until the local stress risk value of the cut piece drops below the deformation safety threshold or there are no more available end effectors to call.
[0129] Preferably, the physical property parameters are obtained in the following manner: Obtain the type identifier of the current batch of fabric, and query the matching cut piece weight, fabric surface friction coefficient, and tensile strength from the preset fabric attribute database based on the type identifier; when there is no record matching the type identifier in the fabric attribute database, trigger the online physical property detection process, obtain the cut piece weight through a weighing sensor, obtain the fabric surface friction coefficient through a friction coefficient detection device, obtain the tensile strength through a tensile test, and store the detection results in the fabric attribute database.
[0130] The theoretical effective contact area of the end effector is determined by the number of end effectors participating in the current grasping, the nominal adsorption area of each end effector, and the relative positions between each end effector. The local stress risk value of the cut piece is calculated as follows: based on the adsorption force distribution of each end effector and the relative position, the maximum local stress value within the adsorption area of the cut piece is calculated; the maximum local stress value is used as the local stress risk value of the cut piece.
[0131] The step of replacing the current candidate grasping mode with a collaborative grasping mode containing more end effectors in ascending order of the number of end effectors specifically includes: Level 1: Upgrade the single-point grasping of a single robotic arm to a two-point lateral grasping of a single robotic arm; Level 2: Upgrade the single robotic arm's horizontal two-point grasping to the vertical two-point grasping of adjacent dual robotic arms; Level 3: Upgrade the vertical two-point gripping of adjacent dual robotic arms to four-point gripping of adjacent dual robotic arms; If the local stress risk value of the cut piece still exceeds the deformation safety threshold after upgrading to the four-point gripping of the adjacent dual robotic arms, the cut piece is marked as a cut piece that cannot be automatically sorted and an alarm is triggered.
[0132] The multi-level priority strategy described in S2, which prioritizes four-axis collaboration, followed by two-axis collaboration, and then uses single-axis collaboration as a fallback, is constrained by the physical attribute pre-screening step: For cut pieces that are forcibly restricted to multi-robotic arm collaborative grasping mode, during the allocation process in S2, it is prohibited to assign them to single-axis independent grasping mode.
[0133] In fabric sorting scenarios, the cut pieces are made of various materials (such as silk, cotton, denim, and leather), and the weight, surface smoothness, and tensile strength of different materials vary significantly. Determining the gripping mode type solely based on the geometric characteristics (length, width, aspect ratio) of the cut pieces may lead to the following problems: for heavy cut pieces with smooth surfaces, insufficient friction during independent gripping by a single robotic arm can cause the cut pieces to slip during handling; for thin cut pieces with low tensile strength, excessive local stress during single-point gripping can easily cause irreversible tensile deformation or breakage near the gripping point. Therefore, before determining the gripping mode type based on geometric characteristics, a pre-screening step using physical properties should be added to preemptively eliminate unsafe gripping modes from a mechanical perspective.
[0134] Specifically, before the controller performs physical attribute pre-screening in step S1 to determine the gripping mode type of each piece based on the geometric features, it performs the following process: The controller acquires the physical property parameters of each piece of fabric in the current scheduling batch. The physical property parameters include at least the piece weight W, the fabric surface friction coefficient μ, and the tensile strength σ_b.
[0135] In a preferred embodiment, the physical property parameters are obtained in the following manner: The controller first obtains the type identifier of the current batch of fabrics (for example, "SILK_001" represents silk fabric, "COTTON_002" represents cotton fabric, "DENIM_003" represents denim fabric, and "LEATHER_004" represents leather fabric). Based on the type identifier, the controller queries a preset fabric attribute database for the matching cut piece weight (weight per unit area, i.e., grams per square meter), fabric surface friction coefficient, and tensile strength.
[0136] When no record matching the type identifier is found in the fabric attribute database, the controller triggers an online physical attribute detection process. Specifically, the controller obtains the weight of the cut pieces using a weighing sensor installed on the cut piece conveyor line; obtains the surface friction coefficient of the fabric using a friction coefficient detection device (e.g., an inclined plane friction coefficient meter or a horizontal tensile friction coefficient meter); and obtains the tensile strength of the fabric (the maximum tensile force that a unit area can withstand, measured in Newtons per square centimeter) using a tensile testing machine. After the detection is completed, the controller stores the type identifier and the corresponding detection results in the fabric attribute database for direct querying by subsequent scheduling batches of the same fabric.
[0137] The controller calculates the theoretical clamping force safety factor in the single robotic arm independent gripping mode based on the weight W of the cut piece and the friction coefficient μ of the fabric surface.
[0138] Specifically, in the single-arm independent gripping mode, one robotic arm applies an adsorption force to the cut piece through its end effector. The theoretical gripping force safety factor is the ratio of the maximum adsorption force F_max that the end effector can provide to the weight W×g of the cut piece, multiplied by the fabric surface friction coefficient μ, i.e.: η=(F_max×μ) / (W×g), where g is the acceleration due to gravity; its physical meaning is: the higher this coefficient, the greater the margin of resistance to slippage after the end effector adsorbs the cut piece, and the safer the gripping.
[0139] When the theoretical clamping force safety factor η is lower than the preset clamping safety threshold η_th, it indicates that the suction force provided by the end effector in the single-arm independent gripping mode is insufficient to overcome the risk of slippage of the cut piece due to inertia or vibration during handling. At this time, the controller removes all single-arm independent gripping modes (i.e., horizontal two-point gripping mode and single-point gripping mode) from the candidate gripping modes of the cut piece, and forcibly limits it to a multi-arm collaborative gripping mode (i.e., four-point gripping mode or vertical two-point gripping mode), with two robotic arms sharing the weight of the cut piece, increasing the number of end effectors participating in the gripping to provide a greater total suction force.
[0140] The controller calculates the local stress risk value σ_risk of the cut piece under each candidate gripping mode based on the cut piece weight W and the theoretical effective contact area of the end effector under the current candidate gripping mode; and compares σ_risk with the tensile strength σ_b.
[0141] The theoretical effective contact area of the end effector is determined by the following three factors: the number N of end effectors participating in the current gripping, the nominal adsorption area A_i of each end effector, and the relative position between the end effectors. The more end effectors there are, the larger the total contact area; the larger the nominal adsorption area, the better the stress dispersion effect of a single adsorption point; the more uniform the relative position distribution of the adsorption points, the more balanced the force on the cut piece.
[0142] In a preferred embodiment, the local stress risk value of the cut piece is calculated according to the following mechanical model: First, based on the weight W of the cut piece and the number N of end effectors participating in the current gripping, calculate the average suction force borne by a single end effector: F_avg=(W×g×S_f) / N, where g is the acceleration due to gravity and S_f is the preset dynamic load safety factor (with a value range of 1.2 to 2.0, set according to the operating speed of the equipment).
[0143] Secondly, based on the relative positions of each end effector on the surface of the cut piece, the normalized distance d_i = L_i / L_max of each adsorption point relative to the geometric center of the cut piece is determined, where L_i is the distance from the i-th adsorption point to the geometric center of the cut piece, and L_max is the farthest distance from the geometric center of the cut piece to the edge of the cut piece.
[0144] Then, the stress concentration coefficient K_i is calculated according to the normalized distance of each adsorption point. The relationship between the stress concentration coefficient and the position of the adsorption point is as follows: the closer the adsorption point is to the edge of the cut piece, the more significant the stress concentration effect, and the larger the K_i value; the closer the adsorption point is to the geometric center of the cut piece, the weaker the stress concentration effect, and the smaller the K_i value. Preferably, the value of K_i is as follows: When d_i≤0.3, K_i=1.0 (in the central region, the stress concentration effect is negligible); When 0.3<d_i≤0.7, K_i=1.0+2.0×(d_i-0.3) (in the intermediate transition region, the stress concentration effect increases linearly with the distance); When d_i>0.7, K_i=1.8+0.5×(d_i-0.7) / 0.3 (in the edge region, the stress concentration effect increases significantly, with a maximum value of 2.0).
[0145] That is, the value range of K_i is 1.0 to 2.0.
[0146] Next, the local stress value at each adsorption point is calculated: σ_i=K_i×F_avg / A_i, where A_i is the nominal adsorption area of the end effector.
[0147] Finally, the maximum value of the local stress values at all adsorption points is taken as the local stress risk value of the cut piece: σ_risk=max(σ_1,σ_2,…,σ_N).
[0148] The controller compares the calculated σ_risk with the tensile strength σ_b. If σ_risk exceeds the preset deformation safety threshold σ_th (the deformation safety threshold is the tensile strength multiplied by a preset proportional coefficient, σ_th=σ_b×λ, where λ is the safety proportional coefficient with a value range of 0.5 to 0.8, preferably 0.6, that is, 60% of the tensile strength is taken as the safety upper limit), it is determined that the local stress risk value of the cut piece under the current grasping mode exceeds the standard, the local stress on the surface of the cut piece under the current grasping mode is too large, and there is a risk of causing irreversible tensile deformation or damage of the cut piece near the adsorption point.
[0149] At this time, the controller sequentially replaces the current candidate grasping mode with a cooperative grasping mode containing more end effectors in ascending order of the number of end effectors. Specifically, the stepwise upgrade path is as follows: First level: upgrade the single-arm single-point grasping (1 end effector) to the single-arm transverse two-point grasping (2 end effectors); Level 2: Upgrade the single robotic arm's horizontal two-point grasping (2 end effectors) to the adjacent dual robotic arms' vertical two-point grasping (2 robotic arms, 1 end effector each, for a total of 2 end effectors, but the two end effectors are installed on the two robotic arms respectively, with a larger adjustable range of spacing, and the load is shared by the two robotic arms). Level 3: Upgrade the two-point longitudinal gripping of adjacent dual robotic arms (2 end effectors) to four-point gripping of adjacent dual robotic arms (2 end effectors for each of the 2 robotic arms, for a total of 4 end effectors).
[0150] After each upgrade, the controller recalculates the local stress risk value σ_risk of the cut piece under the current gripping mode and compares it with the deformation safety threshold σ_th. If σ_risk ≤ σ_th, the upgrade stops, and the current gripping mode is used as the final gripping mode for the cut piece; if σ_risk > σ_th, the next upgrade level is executed.
[0151] When the process is upgraded to a four-point gripping mechanism with adjacent dual robotic arms, if σ_risk still exceeds σ_th, it indicates that even using all available end effectors cannot reduce the local stress to a safe level. In this case, the controller marks the cut piece as unsortable and triggers an alarm, notifying on-site operators to manually process the piece to prevent damage or equipment malfunction caused by forced automatic gripping.
[0152] The output of the physical property pre-screening step forms a reverse constraint on the multi-level priority strategy in S2, which prioritizes four-axis collaboration, followed by two-axis collaboration, and then single-axis collaboration as a fallback.
[0153] For cut pieces that are forcibly limited to multi-arm collaborative gripping mode (i.e., cut pieces whose gripping force safety factor is lower than the threshold and are therefore excluded from single-arm independent gripping mode), during the allocation process in S2, the controller prohibits them from being allocated to single-axis independent gripping mode (i.e., lateral two-point gripping mode and single-point gripping mode). This cut piece can only participate in allocation in the first priority (four-axis collaboration) or the second priority (two-axis collaboration).
[0154] Specifically, when the controller executes the single-axis independent allocation process of S2, it performs a pre-screening status check on each candidate piece: if the piece has been marked as "forced multi-robotic arm collaboration", the controller skips the piece and does not attempt to allocate it in the single-axis independent allocation process, thereby ensuring that the safety judgment result of the physical attribute pre-screening is strictly executed from the scheduling strategy level.
[0155] Through the aforementioned physical property pre-screening steps, clamping force safety factor verification, local stress risk value verification and step-by-step upgrade mechanism, as well as the reverse constraint on scheduling allocation, the controller pre-assesses and intervenes in the gripping safety of the cut piece from a physical and mechanical perspective before determining the gripping mode type based on geometric features, ensuring that the final gripping mode can meet both geometric adaptation requirements and mechanical safety requirements.
[0156] Preferably, S2 also includes a piece hunger detection and forced allocation mechanism: Count the number of times each cut piece has waited for a scheduling round from the moment it first entered the scheduling queue until the current time; When the number of waiting scheduling rounds for a certain piece of cut exceeds the preset hunger threshold, the piece of cut is marked as a hungry piece; In subsequent scheduling rounds, robotic arm resources are allocated to the hungry cut pieces first; if all robotic arms in the current scheduling round have been allocated to other cut pieces and there are no idle robotic arms available to grab the hungry cut pieces, then after re-verification according to the triple constraints, the lowest priority assigned task in the current scheduling round is forcibly interrupted, and the corresponding robotic arm is released to grab the hungry cut pieces.
[0157] During multi-round cyclic scheduling, the following situations may occur: some cut pieces, due to their unique location distribution, have their geometric center located in the boundary area accessible by all four robotic arms, or their applicable grasping mode requires a specific combination of robotic arms, resulting in unsuccessful matching in each round of scheduling's four-axis collaborative allocation, two-axis collaborative allocation, and single-axis independent allocation. As the number of rounds increases, newly added cut pieces are continuously allocated, while these unmatched cut pieces remain stuck in the queue, creating a scheduling starvation phenomenon that severely impacts overall sorting efficiency. Therefore, this solution provides a cut piece starvation detection and forced allocation mechanism.
[0158] Specifically, during the cyclic execution of S2, the controller synchronously executes the following hunger detection and forced allocation process: The controller maintains a waiting counter for each piece of fabric in the scheduling queue, which records the number of scheduling rounds that piece of fabric has gone through from the moment it first enters the scheduling queue to the current moment. After each round of scheduling is completed (i.e., each round of allocation ends and proceeds to step S3), the controller increments the waiting counters of all pieces of fabric that have not yet been scheduled by 1.
[0159] For example, if piece A enters the scheduling queue in the first batch and is not assigned after the first round of scheduling, its waiting counter increments from 0 to 1; if it is still not assigned after the second round of scheduling, its waiting counter increments to 2; and so on.
[0160] The controller's configuration file has a preset hunger threshold (e.g., 10 rounds). Before each round of scheduling begins, the controller iterates through all unplanned pieces in the current scheduling queue and compares the waiting counter value of each piece with the hunger threshold.
[0161] When the waiting counter value of a certain piece exceeds the hunger threshold, the controller marks the piece as a hungry piece. Hungry pieces have a special status identifier in the scheduling queue, distinguishing them from ordinary pieces.
[0162] In subsequent scheduling rounds, when the controller executes the allocation process for each priority, it prioritizes allocating robotic arm resources to the pieces marked as hungry.
[0163] Specifically, in each round of scheduling, under the first priority (four-axis collaboration), second priority (two-axis collaboration), and third priority (single-axis independence) conditions, the controller first iterates through all the pieces marked as "starved" and attempts to match them with corresponding robotic arm combinations. Only after all "starved" pieces have been successfully assigned (or the process is forced to terminate due to physical constraints preventing a match) does the controller begin processing the assignment of ordinary pieces.
[0164] In some extreme cases, all robotic arms in the current scheduling round may have been assigned to other cut pieces, and there may be no idle robotic arms available to grab the hungry cut pieces, but the hungry cut pieces are still waiting to be assigned. In this case, the controller will execute a forced interruption mechanism.
[0165] Specifically, the controller first checks each task already assigned in the current scheduling round. If there are multiple assigned tasks, the controller identifies the task with the lowest priority. The task with the lowest priority is defined as the task with the lowest priority level when it was assigned during the current scheduling round (i.e., a task assigned on a single axis with the third priority has a lower priority than a task assigned on a dual axis with the second priority, and a task assigned on a dual axis with the second priority has a lower priority than a task assigned on a quad axis with the first priority).
[0166] The controller pauses the execution of the lowest priority task, releasing the robotic arm resources occupied by the task. Subsequently, the controller reassigns the released robotic arm to the hungry cut piece to perform the grasping action.
[0167] Before executing a forced interruption, the controller must re-verify the triple constraints. Specifically, the controller recalculates whether there is a common intersection between the released robotic arm and other allocated robotic arms in the current scheduling round, whether the occupied Y intervals do not overlap, and whether the robotic arm's binding with the hungry piece satisfies the robotic arm occupancy mutual exclusion constraint. Only after all the above triple constraint re-verifications pass can the controller execute the forced interruption and reallocation. If the triple constraint verification fails, the controller abandons the forced interruption, maintains the current allocation state, and the hungry piece waits for the next scheduling round to continue trying.
[0168] When the controller executes a forced interrupt and successfully allocates the starved slice, the slice corresponding to the originally interrupted task is remarked as unplanned and released back into the scheduling queue, awaiting re-allocation in subsequent scheduling rounds. The slice's wait counter remains unchanged (not reset) to prevent it from falling into a new starvation state due to an interruption.
[0169] Suppose there is a piece of content A in the scheduling queue, and its waiting counter has accumulated to 12 rounds, exceeding the preset hunger threshold of 10 rounds, and it is marked as a hungry piece of content A. In a certain round of scheduling: Neither the first priority (four-axis collaboration) nor the second priority (two-axis collaboration) could match a suitable robotic arm combination for piece A.
[0170] After entering the third priority (single-axis independent), r1, r2, and r3 of the four robotic arms have been assigned to fabric pieces B, C, and D, respectively, leaving only r4 unselected. However, the geometric center of fabric piece A is not within the reach of r4, so the single-axis independent assignment fails.
[0171] At this point, all robotic arms have been assigned, and no idle robotic arm can be used to grasp piece A. In the current scheduling round, the assigned tasks are divided according to priority: pieces B and C are both assigned in the first priority category (four-axis collaboration), and piece D is assigned in the second priority category (two-axis collaboration). Piece D has the lowest priority level (second priority is lower than first priority), therefore the controller pauses the assignment of piece D and releases the robotic arms r2 and r3 it occupies.
[0172] The controller re-verifies the triple constraints: after reassigning r2 and r3 to piece A, whether there is a common intersection between the feasible intervals of beam X and r1 and r4, whether the occupied intervals of Y do not overlap, and whether the occupancy is mutually exclusive. After the triple verification passes, the controller assigns r2 and r3 to piece A and generates a picking action.
[0173] Piece D is remarked as unplanned and released back into the scheduling queue, to be reallocated in subsequent rounds.
[0174] The effects of the above technical solution are as follows: By maintaining a waiting counter for each cut piece and triggering priority allocation when the waiting rounds exceed the hunger threshold, the problem of some cut pieces remaining in the scheduling queue for a long time and not being planned due to special location distribution or robotic arm allocation preferences is effectively avoided. The priority allocation mechanism ensures that hungry cut pieces receive higher allocation priority in subsequent rounds, and can obtain robotic arm resources even under resource constraints through forced interruption.
[0175] When a starved cutting task cannot obtain robotic arm resources during the normal allocation process, the lowest-priority allocated task is forcibly interrupted to release the resources. This mechanism must re-verify the triple constraints before executing the interruption to ensure that the robotic arm combination after release and reallocation still meets the interference-free condition. It balances the goals of eliminating starvation and ensuring safety, and solves the technical problem that forced interruption may introduce new collision risks.
[0176] The slice corresponding to the interrupted task is remarked as "unplanned" and released back into the scheduling queue, with the wait counter remaining unchanged to ensure it is not completely forgotten. This mechanism guarantees the integrity and consistency of scheduling data, avoiding the problems of task loss or duplicate planning due to forced interruption. The interrupted slice still has the opportunity to be reallocated in subsequent rounds.
[0177] By eliminating the blocking effect of hungry pieces on the subsequent entry of pieces into the queue, the problem of queue congestion and reduced overall sorting efficiency caused by the long-term retention of individual pieces is avoided. Experiments show that in extreme scenarios with uneven piece distribution, the hunger detection and forced allocation mechanism can significantly shorten the waiting time of the longest piece and effectively improve the overall scheduling throughput.
[0178] Preferably, S2 also includes historical allocation pattern learning and fast allocation: Record the successfully assigned cut piece geometric features, grasping mode type, assigned robotic arm combination and its order in each scheduling round; When a new round of scheduling begins, the geometric features of the current piece to be assigned are matched with the geometric features of the pieces in the historical records; If a match is successful, the corresponding robotic arm combination and allocation order in the history will be used directly for allocation, skipping the step-by-step trial process; If a match fails or no corresponding allocation scheme exists in the history, the allocation will be attempted level by level according to the multi-level priority strategy, and the allocation result will be stored in the history.
[0179] Specifically, after successfully completing the allocation in each scheduling round, the controller stores the relevant information of this allocation in the historical allocation record database.
[0180] Each historical allocation record must include at least the following fields: Geometric features of the cut pieces: These include at least the length, width, aspect ratio, and area of the cut pieces, which serve as index keys for subsequent matching; Grab mode type: The final grab mode used for this piece of fabric (four-point grab, vertical two-point grab, horizontal two-point grab, or single-point grab). Assigned robotic arm combination: The robotic arm bound to perform this grasping task (for four-axis robots, it is [r1,r2,r3,r4]; for two-axis robots, it is one of [r1,r2], [r2,r3], or [r3,r4]; for single-axis robots, it is a single one of r1, r2, r3, or r4). Allocation order: Whether the piece was successfully allocated in the first, second, or third priority category; Historical allocation timestamp: The date and time of this allocation, used for timeliness management of subsequent records.
[0181] The historical allocation record library is stored in the controller's local storage medium in a structured data format (such as a JSON file or a lightweight database).
[0182] To prevent the historical allocation record library from expanding indefinitely and affecting matching efficiency, the controller performs timeliness management on the historical records.
[0183] Specifically, at the start of each new scheduling batch, the controller checks the storage timestamps of each record in the historical allocation record library. For historical records whose storage time exceeds a preset expiration threshold (e.g., 30 days), the controller automatically marks them as expired records and removes them from subsequent matching queries. Expired records can be periodically cleaned up or archived to external storage.
[0184] The preset time limit is pre-set by the operations and maintenance personnel in the configuration file and can be flexibly adjusted according to the actual production rhythm and order repetition cycle. For scenarios with high order repetition frequency (such as fast fashion brands), the time limit can be set to a longer time (such as 90 days); for scenarios with low order repetition frequency (such as haute couture), the time limit can be set to a shorter time (such as 7 days) to ensure the matching efficiency of the historical record database.
[0185] When a new round of scheduling begins, the controller matches the geometric features of the currently assigned piece with the geometric features of the pieces in the historical allocation record library.
[0186] In a preferred embodiment, the matching employs a fuzzy matching method based on feature similarity. Specifically, the controller compares the length, width, and aspect ratio of the current cut piece with the corresponding fields in the historical records one by one. When the deviations of each geometric feature of the current cut piece from the corresponding field of a certain historical record do not exceed a preset similarity deviation threshold (e.g., length deviation not exceeding ±5mm, width deviation not exceeding ±5mm, aspect ratio deviation not exceeding ±5%), the controller determines that the match is successful.
[0187] If a match is successful, the controller directly reads the grasping mode type, assigned robotic arm combination, and assignment order stored in the historical record and performs a fast assignment. Specifically, the controller binds the corresponding robotic arm combination to the current piece of fabric according to the grasping mode type recorded in the historical record, directly generates a picking action, and skips the complete priority-based trial process (i.e., there is no need to sequentially perform the step-by-step retrieval and verification of four-axis collaborative assignment, dual-axis collaborative assignment, and single-axis independent assignment).
[0188] If a match fails, meaning there is no record in the historical allocation record library that matches the current piece's geometric features with a deviation threshold, the controller executes a complete step-by-step allocation process according to the multi-level priority strategy (i.e., sequentially searching for suitable pieces in the order of first priority four-axis collaboration, second priority dual-axis collaboration, and third priority single-axis independence). After allocation, the controller stores the current piece's geometric features, the final grasping mode type, the allocated robotic arm combination, and the allocation order as a new historical record in the historical allocation record library for direct reuse of subsequent identical or similar pieces.
[0189] The effects of the above technical solution are as follows: For repetitive production or similar patterned historical cut pieces, the historical allocation scheme can be directly reused, which effectively improves the overall sorting cycle time, and is especially suitable for continuous production scenarios with large batches of the same style or pattern of orders.
[0190] By setting a preset similarity deviation threshold, the geometric features of the current cut piece are compared one by one with those in the historical records. The historical scheme is reused only when the deviation meets the threshold requirement, thus avoiding the problem of the reuse scheme being unsuitable due to differences in cut piece size. The deviation threshold can be adjusted according to actual needs, balancing matching success rate and allocation security.
[0191] Reusing historical allocation schemes can reduce the frequency of calls to multi-axis synchronous time simulation and bottleneck axis analysis, lower the controller's computational load, and allow the controller to have more resources to handle other real-time tasks (such as communication and monitoring), which is beneficial to improving equipment operational stability. Especially in production scenarios with large order volumes and high cycle time requirements, the computational overhead of step-by-step process trials cannot be ignored, and the computational resource savings brought by historical matching have significant engineering value.
[0192] By setting expiration thresholds for historical records and periodically cleaning up expired records, the unlimited expansion of the historical record database is prevented from impacting matching speed, thus ensuring the response efficiency of the matching algorithm in long-term operation. The expiration thresholds can be flexibly configured according to the actual order repetition cycle to adapt to the needs of different production scenarios.
[0193] Preferably, the motion curve in step S4 is any one of a trapezoidal velocity curve, a triangular velocity curve, or an S-velocity curve.
[0194] Each motion generated by the scheduler is calculated using trapezoidal / triangular / S-shaped velocity curves to determine the motion time of each axis. The total time for multi-axis synchronous motion is the maximum value of the times of all participating axes. T_total=max(T_R1Y,T_R2Y,T_R3Y,T_R4Y,T_R1Z,...) Among them, T_R1Y, T_R2Y, T_R3Y, and T_R4Y are the Y-axis travel times of the four robotic arms, and T_R1Z and others are the Z-axis travel times of each robotic arm.
[0195] In step S4, the crossbeam travel, the Y / Z travel of each robot arm, and the end effector pitch travel are also counted as total time and axis percentage, which are used to evaluate scheduling quality and bottleneck axes.
[0196] Before formally sending all the picking and placing actions generated in step S3 to the servo controller, the controller calculates the estimated motion time of each axis involved in the action based on the motion stroke of each axis and the preset motion parameters for each action.
[0197] In a preferred embodiment, the controller can calculate the motion time of each axis using any one of a trapezoidal velocity curve, a triangular velocity curve, or an S-curve. The specific velocity curve type used can be preset in the configuration file according to actual working conditions. The trapezoidal velocity curve is suitable for scenarios requiring high calculation speed, the triangular velocity curve is suitable for scenarios with short-stroke, rapid movements, and the S-curve is suitable for scenarios requiring high motion smoothness and minimizing mechanical impact.
[0198] The travel of each axis includes: the travel of each robotic arm in the Y direction (i.e., the distance the robotic arm moves in the direction of adjacent robotic arm arrangement), the travel of each robotic arm in the Z direction (i.e., the distance the robotic arm moves in the lifting direction), and the pitch adjustment travel of each robotic arm end effector in the X direction (i.e., the distance between the two end effectors of the same robotic arm for adjustment).
[0199] Since all axes need to move synchronously in the same action (i.e., all axes start and stop at the same time), the total time of multi-axis synchronous action is determined by the axis with the longest motion time among those participating in the action.
[0200] The controller determines the total time of multi-axis synchronous operation in the following manner: T_total=max(T_R1Y,T_R2Y,T_R3Y,T_R4Y,T_R1Z,T_R2Z,T_R3Z,T_R4Z,T_X1,T_X2,T_X3,T_X4) Wherein, T_R1Y, T_R2Y, T_R3Y, and T_R4Y are the travel times of the first robotic arm r1, the second robotic arm r2, the third robotic arm r3, and the fourth robotic arm r4 in the Y direction, respectively; T_R1Z, T_R2Z, T_R3Z, and T_R4Z are the travel times of the first robotic arm r1, the second robotic arm r2, the third robotic arm r3, and the fourth robotic arm r4 in the Z direction, respectively; and T_X1, T_X2, T_X3, and T_X4 are the pitch travel times of the end effectors of the first robotic arm r1, the second robotic arm r2, the third robotic arm r3, and the fourth robotic arm r4 in the X direction, respectively.
[0201] By comparing the travel time of each axis, the controller uses the maximum travel time among all participating axes as the total synchronization time for the action, thereby ensuring that all axes can complete their respective actions within the total time in synchronous motion mode.
[0202] After completing the time calculation for each action, the controller will also calculate the time distribution of each axis in each scheduling round to evaluate the scheduling quality and identify bottleneck axes.
[0203] Specifically, the controller calculates the total travel time of the beam in the X direction, the total travel time of each robotic arm in the Y and Z directions, and the total travel time of each end effector in the X direction as the total time and axis percentage for each axis.
[0204] The controller identifies the bottleneck axis by comparing the total travel time of each axis. For example, if the Y-axis travel time of the first robotic arm r1 is significantly longer than that of other axes in a certain scheduling round, then the Y-axis of the first robotic arm r1 is identified as the bottleneck axis of the current scheduling batch. Based on the bottleneck axis identification results, maintenance personnel can adjust the operating parameters of the corresponding axis or optimize the scheduling allocation strategy to shorten the running time of the bottleneck axis and improve overall scheduling efficiency.
[0205] After completing the time calculation and bottleneck axis identification for each action, the controller also draws the simulation result diagram of each action according to the preset size ratio.
[0206] Specifically, the controller plots the motion paths and pose changes of each robotic arm in a virtual three-dimensional space according to a certain scale, based on the motion trajectories of each robotic arm and end effector between the gripping point and the placement point. The simulation results visually demonstrate the correspondence between the X-direction motion of the beam, the Y-direction and Z-direction motions of each robotic arm, and the X-direction pitch-changing motion of each end effector in the time series.
[0207] The controller checks each action for the following abnormalities based on the simulation result graph: Beam out of bounds: The X coordinate of the beam exceeds its physical limit range; Robotic arm collision: The distance between adjacent robotic arms in the Y direction is less than the preset safety distance; End-effector overtravel: The X-direction pitch travel of the end effector exceeds the maximum pitch range or is less than the minimum pitch range.
[0208] If the simulation verification passes, meaning that all actions meet the above hardware constraints and there is no risk of interference, the controller will send the generated action sequence to the servo controller of the sorting equipment for execution.
[0209] If an anomaly is detected during simulation verification, the controller will trigger an anomaly rollback mechanism, abandon all scheduling results of the current round, re-mark the relevant cut pieces as unplanned, and automatically return to S2 to redistribute the robotic arm, ensuring that the action sequence sent to the servo controller is safe and fault-free.
[0210] The effects of the above technical solution are as follows: By accurately calculating the single-axis motion time of each axis using trapezoidal velocity curves, triangular velocity curves, or S-velocity curves, and using the maximum motion time of each axis as the total time of multi-axis synchronous action, the execution time of each scheduling action can be accurately predicted, providing a quantitative basis for cycle control and capacity forecasting.
[0211] By analyzing the total time and axis percentage of the beam travel, the Y / Z travel of each robotic arm, and the end effector's pitch change travel, the bottleneck axis restricting the speed of the sorting equipment can be quickly located. Based on the bottleneck axis identification results, maintenance personnel can adjust the operating parameters of the corresponding axis or optimize the allocation strategy to continuously improve overall operating efficiency.
[0212] The simulation results drawn according to the preset size scale can intuitively show the motion trajectory and pose changes of each robotic arm and end effector in three-dimensional space, and can detect and eliminate potential risks such as boundary crossing, collision, and overtravel before the action is executed.
[0213] By employing a complete simulation verification chain—from speed curve calculation to total time determination, bottleneck axis identification, simulation graph verification, and anomaly rollback—all actions are fully validated before official deployment. Upon detection of an anomaly, a rollback and reassignment are immediately triggered, forming a closed-loop safety mechanism encompassing scheduling allocation, action generation, simulation verification, and anomaly rollback. This effectively prevents equipment failures and safety incidents caused by scheduling errors.
[0214] Preferably, the placement action is output in a standardized vector format of a multi-dimensional, multi-axis action sequence, and the standardized vector format is compatible with multiple brands of servo controllers.
[0215] Specifically, after completing a round of picking and scheduling, the controller executes the placement action generation process according to the cut pieces allocated in the current round and the corresponding robotic arm and end effector allocation status; and generates the corresponding placement action.
[0216] In this process, the controller generates a corresponding placement action for each assigned gripping action based on the target material box position information of the cut piece. The placement action includes: path planning for each robotic arm to move from the current gripping point position to the target placement point position, motion parameters of each axis, and arrival timing; the motion parameters of each axis include at least motion speed, acceleration, and displacement.
[0217] Specifically, the placement action generation process includes the following steps: Step 1: The controller reads the list of cut pieces allocated in the current round, and obtains the cut piece identifier of each cut piece, as well as the robotic arm identifier and end effector identifier bound to that cut piece.
[0218] Step 2: For each assigned piece of fabric, the controller calculates the motion path of each robotic arm from its current gripping point to the target placement point, based on the target bin position information of that piece and the current gripping point position of each robotic arm. The motion path includes at least the displacement and direction of movement of each robotic arm in the X, Y, and Z axes.
[0219] Step 3: The controller generates corresponding axis motion commands for each motion path segment based on preset motion parameters (including motion speed, acceleration and deceleration), including the motion direction, motion stroke, motion speed and acceleration / deceleration curve type of each axis.
[0220] Step 4: The controller determines the execution sequence of each action based on the movement path and movement command of each robotic arm. When multiple robotic arms perform placement actions simultaneously in the same scheduling round, the controller allocates the start time offset of each robotic arm based on factors such as whether the movement paths of each robotic arm intersect spatially and the order in which each robotic arm arrives at the placement point, so that each robotic arm can complete the placement safely and orderly.
[0221] Step 5: The controller assembles all axis motion commands, timing parameters, and auxiliary information into an action sequence according to the following standardized vector format, and outputs it as the placement action list.
[0222] To ensure that the generated motion sequence can be correctly parsed and executed by servo controllers of different brands and models, the controller outputs all placement actions in a preset multi-dimensional multi-axis motion sequence standardized vector format.
[0223] The standardized vector format is a set of data structures with fixed dimensions and a fixed field order, with each action corresponding to one vector. Each vector includes at least the following fields: Action type identifier: Used to identify the type of the current action, such as pick-up or place-down action; Robotic arm identifier: Specifies the robotic arm number (such as first robotic arm, second robotic arm, third robotic arm, or fourth robotic arm) that is performing the current action. End effector identifier: Specifies the end effector number involved in the current action; Target position coordinates: including target position along the X-axis, target position along the Y-axis, and target position along the Z-axis; Motion parameters: including velocity, acceleration, and deceleration; Action timing: including the action start time offset and the action execution duration.
[0224] The order of the above fields in the vector, their data types (such as floating-point, integer, and enumeration types), and their value ranges are all uniformly specified according to the preset standardized specifications and will not change due to different brands or models of downstream servo controllers.
[0225] Specifically, for each placement action generated in the current round of scheduling, the controller generates a corresponding normalized vector according to the following steps: Step 1: Based on the current action's execution object (piece), read the robotic arm and end effector information bound to the piece from the scheduling results, and fill in the robotic arm identifier field and end effector identifier field.
[0226] Step 2: Based on the target material box position information of the cut piece, calculate the X, Y, and Z coordinates of each robotic arm as it moves from the current gripping point to the target placement point, and fill them into the target position coordinate field.
[0227] Step 3: Read the preset motion speed, acceleration, and deceleration parameters from the controller's configuration file and fill them into the motion parameter field. Preferably, different types of actions (pick-up actions and placement actions) can be configured with different motion parameters to adapt to the different process requirements of the grasping and placement stages.
[0228] Step 4: Based on the position of the current action in the scheduling sequence of each robotic arm, calculate the start time offset of the action (the delay relative to the start time of this round of scheduling), and fill it into the action timing field in combination with the total time of multi-axis synchronous action calculated in step S4.
[0229] Step 5: Assemble all the above fields into a complete action vector according to the preset standardized vector format.
[0230] All motion vectors are arranged in chronological order of execution, forming a multi-dimensional, multi-axis motion sequence. The controller uses this motion sequence as a standardized output for subsequent execution by the servo controller.
[0231] The standardized vector format was designed with reference to commonly used motion control standards and specifications in the field of industrial automation. Specifically: The naming conventions and value ranges of fields such as motion type identifier, robotic arm identifier, and target position coordinates in the format refer to the standardized interfaces defined in internationally recognized motion control function block standards (such as the PLCopen motion control specification). Any servo controller that supports this standard can directly parse the standardized vector format.
[0232] The data types and scaling methods of the motion parameter fields (velocity, acceleration, deceleration) and action timing fields (start time offset, action execution duration) in the format refer to the standard data objects defined in the general servo drive communication protocol.
[0233] Through the above standardized design, the action sequence output by the controller does not need to be formatted or recompiled for different brands of servo controllers, and can be directly sent to various servo controllers that support the corresponding standards for execution.
[0234] As a preferred example of this embodiment, the standardized vector format can adopt the following 17-dimensional vector structure (with the order of each field fixed): [Action type, robotic arm ID, end effector ID, target X, target Y, target Z, velocity, acceleration, deceleration, start time offset, execution duration, reserved field 1, reserved field 2, reserved field 3, reserved field 4, reserved field 5, checksum]; The reserved fields are used for future feature expansion, and the checksum is used to ensure the integrity of data transmission. It should be noted that the above 17-dimensional vector is only a preferred example; in actual applications, the vector dimensions can be adjusted according to specific device requirements, as long as the consistent field order and data type specifications are maintained.
[0235] The effects of the above technical solution are as follows: By outputting placement actions in a standardized vector format of multi-dimensional, multi-axis motion sequences, designed in accordance with internationally recognized motion control standards, the generated motion sequences can be directly parsed and executed by servo controllers of different brands and models. Equipment purchasers are not bound to specific brands of servo controllers and can freely choose based on factors such as cost and delivery time, effectively reducing equipment procurement costs and supply chain risks.
[0236] Because the standardized vector format unifies the field definitions, data types, and arrangement order of motion commands, integrators do not need to learn different command formats and programming standards for different brands of servo controllers when debugging equipment in different projects. The unified output format significantly shortens the on-site debugging cycle and reduces the technical threshold and training costs for technicians.
[0237] The standardized vector format output by the controller decouples the upper-level scheduling decisions (which piece to grab and which bin to place) from the lower-level servo drive execution (how to drive the motor to the target position). When the servo controller brand or model is changed, it is only necessary to ensure that the new controller supports the standardized vector format; there is no need to modify the upper-level scheduling algorithm code, which greatly improves the portability and reusability of the scheduling software.
[0238] The standardized vector format includes reserved fields to facilitate future functional expansion (such as adding axis control parameters, process parameters, etc.) without altering the definitions and order of existing fields, ensuring backward compatibility. Simultaneously, the checksum field at the end of the vector ensures the integrity and correctness of the motion data during transmission, enhancing the system's reliability and security.
[0239] Preferably, each scheduling task data, scheduling result data, and simulation verification log are archived according to the timestamp directory, and log rolling cleanup is performed to achieve full-link data traceability.
[0240] After a round of scheduling is completed, the controller stores the following three types of data generated during this round of scheduling into the timestamp directory according to a preset format: The scheduling task data is the input data for the current scheduling batch, and includes at least: A list of all cut pieces in the current batch, each cut piece must include at least a unique identifier (such as a cut piece number), geometric characteristics of the cut piece (length, width, aspect ratio, and outer contour coordinates), style and size information of the cut piece; The target bin location information for each cut piece, namely the target bin number and target placement point coordinates that each cut piece should be placed in after sorting; The fabric type identifier for the current batch is used to associate physical attribute parameters in the fabric attribute database.
[0241] The scheduling task data is stored in a structured data format (such as JSON or CSV table format) in the "task_data" subdirectory under the timestamp directory.
[0242] The scheduling result data is the output data of the current scheduling batch, and includes at least: The allocation record for each piece of fabric is as follows: which robotic arm combination (four-axis / dual-axis / single-axis) the piece of fabric is assigned to, which robotic arms and end effectors are specifically bound to it, and what gripping mode is being performed (four-point / vertical two-point / horizontal two-point / single-point). The allocation details for each round of scheduling include the trial count results (success / failure) under each value, the list of successfully allocated cut pieces for each priority, and the corresponding robotic arm combinations; The complete sequence of pick-up and place-down actions generated in each scheduling round includes motion parameters and timing information for each axis.
[0243] The scheduling result data is stored in a structured data format in the "result_data" subdirectory under the timestamp directory.
[0244] The simulation verification log is the simulation verification record generated in step S4 of the current scheduling batch, and includes at least: The total time of multi-axis synchronous motion for each action and the individual travel time of each axis; Statistics on the time consumption distribution of each axis in each scheduling round and the results of bottleneck axis identification; The simulation results are image files (such as bitmap or vector graphics) that record the motion trajectory and pose changes of each robotic arm in three-dimensional space. Simulation verification result (pass / abnormal) and abnormal details (if the verification fails, record the cut piece identifier that triggered the abnormality, the abnormality type, and the rollback and reassignment record).
[0245] The simulation verification logs are stored in a structured data format in the "simulation_logs" subdirectory under the timestamp directory, and the simulation result graphs are stored in the same directory as image files.
[0246] As the sorting equipment operates continuously for extended periods, the amount of scheduling data will continue to grow. To control storage space usage, the controller implements a log rolling cleanup mechanism.
[0247] Specifically, before each new scheduling batch begins, the controller checks the total number of archive directories or the total storage capacity. When the total number of archive directories exceeds the preset maximum retention number (e.g., 1000 scheduling cycles), or the total storage capacity occupied by the archive directories exceeds the preset maximum storage capacity (e.g., 10GB), the controller deletes the oldest archive directory and all its contents in order of timestamp from oldest to newest, until the total number of archive directories and the total storage capacity both drop below the preset threshold.
[0248] The preset maximum retention quantity and maximum storage capacity are pre-set by the operation and maintenance personnel in the configuration file and can be flexibly adjusted according to the storage hardware capacity of the device and actual business needs.
[0249] Preferably, when the controller performs log rolling cleanup, it can set an exception retention policy for archive directories marked as abnormal scheduling (i.e., scheduling batches that failed simulation verification and triggered abnormal rollback), allowing such directories to be unaffected by the rolling cleanup mechanism, so as to retain abnormal on-site data for subsequent fault analysis.
[0250] Through the timestamp directory archiving and log rolling cleanup mechanism described above, the complete process data for each scheduling is persistently stored. Operations personnel can achieve end-to-end data traceability through the following methods: When it is necessary to trace the production process of a specific batch, the operation and maintenance personnel locate the corresponding timestamp directory based on the production time of the batch, and read the scheduling task data, scheduling result data and simulation verification log from the directory.
[0251] This application also provides a sorting and scheduling system, which includes a cut piece sorting device with four parallel robotic arms, a memory, and a processor. The memory includes a computer-readable storage medium for storing a computer program. When the processor executes the computer program, it implements the steps of the method described in Embodiment 1.
[0252] This application may take the form of a computer program product implemented on one or more computer-readable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) containing program code. Computer-readable storage media include permanent and non-permanent, removable and non-removable media, and information storage can be implemented using any method or technology. Information may be computer-readable instructions, data structures, program modules, or other data. Examples of computer-readable 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 technologies, CD-ROM, digital versatile optical disc (DVD) or other optical storage, magnetic tape, disk storage or other magnetic storage devices, or any other non-transfer medium that can be used to store information accessible by a computing device.
[0253] The above description is merely a preferred embodiment of this specification and is not intended to limit this specification. Any modifications, equivalent substitutions, improvements, etc., made within the spirit and principles of this specification should be included within the scope of protection of this specification.
[0254] It should also be noted that the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such process, method, article, or apparatus. Without further limitation, an element qualified by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes said element.
Claims
1. A four-parallel robotic arm material sorting and scheduling method, characterized in that, A piece sorting device is applied to a cut piece sorting device equipped with four parallel robotic arms, wherein the four parallel robotic arms respectively include a first robotic arm, a second robotic arm, a third robotic arm, and a fourth robotic arm, and each robotic arm includes two end effectors, comprising the following steps: Obtain the geometric features of each piece of fabric, determine the gripping mode type of each piece of fabric based on the geometric features, and calculate the feasible range of motion for each candidate robotic arm when performing gripping based on the gripping mode type. The robot arm collaborative picking schedule is executed cyclically with the termination condition being that all cut pieces are planned. In each round of scheduling, the robot arm is allocated according to a multi-level priority strategy of four-axis collaboration first, two-axis collaboration second, and single-axis as a last resort. The allocation in this round terminates when the number of attempts reaches the preset limit or all robot arms are selected. Once a round of picking and scheduling is completed, the corresponding placement action is generated based on the materials allocated in the current round and the status of the robotic arm, thus completing the coordinated scheduling of picking and placement. Motion simulation verification is performed on each action generated by the scheduler, and the feasibility of the scheduled actions is confirmed based on the simulation verification results. The grasping modes include multi-arm collaborative grasping mode and single-arm independent grasping mode.
2. The sorting and scheduling method according to claim 1, characterized in that, The multi-robotic arm collaborative grasping mode includes four-point grasping and longitudinal two-point grasping, and the single-robotic arm independent grasping mode includes lateral two-point grasping and single-point grasping. Among them, the candidate robotic arm combinations for four-point gripping and longitudinal two-point gripping are any combination of the first robotic arm and the second robotic arm, the second robotic arm and the third robotic arm, and the third robotic arm and the fourth robotic arm; the candidate robotic arm for lateral two-point gripping is any one of the first robotic arm, the second robotic arm, the third robotic arm, or the fourth robotic arm; single-point gripping is completed by a single end effector of a single robotic arm.
3. The sorting and scheduling method according to claim 2, characterized in that, The feasible range of motion includes the feasible interval of the crossbeam X. When the crossbeam is located within the feasible interval of X, the pitch travel of each end effector participating in the current grasping in the X direction does not exceed the preset maximum pitch travel and is not less than the preset minimum pitch travel, and each end effector can simultaneously reach its corresponding grasping point X coordinate. Wherein, the feasible interval of beam X is the set of all beam X coordinates that simultaneously satisfy the above conditions.
4. The sorting and scheduling method according to claim 1, characterized in that, There is a minimum distance constraint in the Y direction between two adjacent robotic arms among the four parallel robotic arms; the feasible range of motion also includes the Y-occupied interval of the robotic arm, which is determined by deducting the safety avoidance margin of the adjacent robotic arm based on the minimum distance constraint in the Y direction between adjacent robotic arms.
5. The sorting and scheduling method according to claim 1, characterized in that, The multi-level priority strategy is executed based on a cyclical trial allocation mechanism. Before each round of scheduling begins, the trial count is initialized to a preset initial value. The allocation is terminated when the trial count reaches a preset upper limit or when all four robotic arms are selected. The allocation process is executed sequentially in the order of first priority, second priority, and third priority. The allocation process is as follows: search for cut pieces that are suitable for the current candidate robotic arm combination in the unplanned cut pieces. After finding a suitable cut piece, further verify that the cut piece has not been allocated by other robotic arms. If the verification is successful, bind the cut piece to each robotic arm in the current candidate robotic arm combination and update the robotic arm selection status and end effector allocation status to generate a picking action. If the search fails, the unselected state of each robot arm in the current candidate robot arm combination is maintained, and the trial count is incremented, switching to the next candidate robot arm combination or the next priority. First priority: When the trial count is equal to the preset initial value and none of the robotic arms are selected, the allocation process is executed with four robotic arms as candidate robotic arm combinations. If the search fails, the attempt count is incremented, and the process moves to the second priority level. Second priority: When the trial count is within the first numerical range, according to the first preset order, it is determined whether both robotic arms in each adjacent dual-arm combination are not selected. If neither is selected, the adjacent dual-arm combination is used as a candidate combination and the allocation process is executed. Each value of the trial count within the first numerical range corresponds to one allocation process. After the process is completed, the trial count is incremented. When the trial count exceeds the upper limit of the first numerical range, the process enters the third priority. Third priority: When the trial count is in the second numerical range, according to the second preset order, it is determined whether each single robotic arm has not been selected. If it has not been selected, the single robotic arm is used as a candidate combination and the allocation process is executed. Each value of the trial count in the second numerical range corresponds to one allocation process. After the process is completed, the trial count is incremented. When the trial count exceeds the upper limit of the second numerical range, the current allocation is terminated. Wherein, the preset initial value is less than the lower limit of the first numerical interval, and the upper limit of the first numerical interval is less than the lower limit of the second numerical interval.
6. The sorting and scheduling method according to claim 1, characterized in that, The robotic arm allocation process includes multiple constraints; these multiple constraints include the intersection constraint of the X-section of the beam, the mutual exclusion constraint of the Y-section of the robotic arm, and the mutual exclusion constraint of the robotic arm occupancy. The beam X interval intersection constraint is used to ensure that the feasible beam X intervals of each robot arm assigned to the same scheduling round have a common intersection. The mutual exclusion constraint of the Y-section of the robotic arm is used to ensure that the Y-section occupied by each robotic arm assigned to the same scheduling round does not overlap. The mutual exclusion constraint for robotic arm occupancy is used to ensure that the same robotic arm will not be repeatedly assigned within the same scheduling round, and that the same cut piece will not be repeatedly assigned to different robotic arms.
7. The sorting and scheduling method according to claim 1, characterized in that, The placement action is output in a standardized vector format according to a multi-dimensional, multi-axis action sequence, and the standardized vector format is compatible with multiple brands of servo controllers.
8. The sorting and scheduling method according to claim 1, characterized in that, When simulation verification detects abnormal scheduling actions, the robotic arm will be automatically reassigned.
9. The sorting and scheduling method according to claim 1, characterized in that, Each scheduling task, scheduling result data, and simulation verification log are archived according to the timestamp directory, and log rolling cleanup is performed.
10. A sorting and scheduling system, characterized in that, The system includes a piece sorting device with four parallel robotic arms, a memory, and a processor. The memory includes a computer-readable storage medium for storing a computer program. When the processor executes the computer program, it implements the steps of the method according to any one of claims 1-9.
