Robot motion planning method and apparatus

CN122584312APending Publication Date: 2026-08-18QKM TECH (DONG GUAN) CO LTD
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
CN202610785950.2
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2026-06-02
Publication Date
2026-08-18

AI Technical Summary

Technical Problem

[0003]由于机器人实际运动状态与预设值会产生偏差,各运动段之间的轨迹规划相互独立,可能会导致运动段之间动作不连续等问题的出现

Benefits of technology

[0011]本申请提供的机器人运动规划方法、装置、机器人及存储介质,通过在机器人的当前运动段的执行过程中,实时采集与机器人相关的运动参数,并将运动参数锁存到后续目标运动段关联的运动块,以基于运动参数对目标运动段进行轨迹规划。由此,在当前运动段执行过程中实时采集运动参数,并锁存到后续目标运动段关联的运动块中,用于该目标运动段的轨迹规划,由于所采集的运动参数作用于后续目标运动段,不影响当前正在执行的轨迹,因此不会干扰当前运动的稳定性与确定性,同时将最新的实时状态及时融入后续轨迹的生成中,从而在保证当前运动连续性和安全性的同时,可以提升后续运动段的响应能力与规划精度。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122584312A_ABST
    Figure CN122584312A_ABST
Patent Text Reader

Abstract

The application provides a robot motion planning method and device, wherein the method comprises the following steps: collecting motion parameters related to the robot in real time during execution of a current motion segment of the robot; locking the motion parameters into a motion block associated with a subsequent target motion segment; and performing trajectory planning on the target motion segment based on the motion parameters. The method collects motion parameters in real time during execution of the current motion segment, and locks the motion parameters into a motion block associated with a subsequent target motion segment, which is used for trajectory planning of the target motion segment. Since the collected motion parameters act on the subsequent target motion segment, the stability and certainty of the current motion are not affected, and the current motion is not disturbed. Meanwhile, the latest real-time state is timely integrated into generation of the subsequent trajectory, so that the response capability and planning precision of the subsequent motion segment can be improved while ensuring continuity and safety of the current motion.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This application relates to the field of robot control technology, and in particular to a robot motion planning method and apparatus. Background Technology

[0002] In robot control, motion control typically breaks down the task into multiple consecutive motion segments, each corresponding to a trajectory from the starting point to the end point.

[0003] Because the robot's actual motion state may deviate from the preset value, and the trajectory planning between each motion segment is independent of each other, problems such as discontinuity of actions between motion segments may occur. Summary of the Invention

[0004] The main objective of this application is to propose a robot motion planning method and apparatus that can improve the responsiveness and planning accuracy of subsequent motion segments to changes in dynamic environment or working conditions while ensuring the continuity and safety of the current motion.

[0005] To achieve the above objectives, a first aspect of this application proposes a robot motion planning method, comprising:

[0006] During the execution of the robot's current motion segment, motion parameters related to the robot are collected in real time; The motion parameters are latched into the motion block associated with the subsequent target motion segment; Trajectory planning is performed on the target motion segment based on the motion parameters.

[0007] A second aspect of this application provides a robot motion planning device, comprising: The real-time acquisition module is used to acquire motion parameters related to the robot in real time during the execution of the robot's current motion segment; The latching module is used to latch the motion parameters into the motion block associated with the subsequent target motion segment; The trajectory planning module is used to plan the trajectory of the target motion segment based on the motion parameters.

[0008] A third objective of this application is to provide a robot comprising: a processor, and a memory communicatively connected to the processor; The memory stores computer-executed instructions; The processor executes computer execution instructions stored in the memory to implement the robot motion planning method as described in the first aspect embodiment above.

[0009] A fourth aspect of this application provides a computer-readable storage medium storing computer-executable instructions that, when executed by a processor, are used to implement the robot motion planning method as described in the first aspect of the present application.

[0010] The fifth aspect of this application provides a computer program product, including a computer program that, when executed by a processor, implements the robot motion planning method described in the first aspect of the present application.

[0011] The robot motion planning method, apparatus, robot, and storage medium provided in this application collect motion parameters related to the robot in real time during the execution of the current motion segment and latch these parameters into a motion block associated with the subsequent target motion segment. This allows for trajectory planning of the target motion segment based on the motion parameters. Therefore, by collecting motion parameters in real time during the execution of the current motion segment and latching them into a motion block associated with the subsequent target motion segment for trajectory planning, and because the collected motion parameters affect the subsequent target motion segment without affecting the currently executing trajectory, the stability and determinism of the current motion are not interfered with. Simultaneously, the latest real-time state is promptly integrated into the generation of the subsequent trajectory, thereby improving the responsiveness and planning accuracy of subsequent motion segments while ensuring the continuity and safety of the current motion.

[0012] Additional aspects and advantages of this application will be set forth in part in the description which follows, and in part will be obvious from the description, or may be learned by practice of this application. Attached Figure Description

[0013] The above and / or additional aspects and advantages of this application will become apparent and readily understood from the following description of the embodiments taken in conjunction with the accompanying drawings, wherein: Figure 1 A flowchart illustrating a robot motion planning method provided in an embodiment of this application; Figure 2 A flowchart illustrating another robot motion planning method provided in an embodiment of this application; Figure 3 A flowchart illustrating another robot motion planning method provided in an embodiment of this application; Figure 4 Timing diagram of latching and shaping parameters provided in embodiments of this application; Figure 5 This is a schematic diagram of the structure of a robot motion planning device provided in an embodiment of this application. Detailed Implementation

[0014] To make the objectives, technical solutions, and advantages of this application clearer, the following detailed description is provided in conjunction with the accompanying drawings and embodiments. It should be understood that the specific embodiments described herein are merely illustrative and not intended to limit the scope of this application.

[0015] It should be noted that although functional modules are divided in the device schematic diagram and a logical order is shown in the flowchart, in some cases, the steps shown or described may be performed in a different order than the module division in the device or the order in the flowchart. The terms "first," "second," etc., in the specification, claims, and the aforementioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence.

[0016] Unless otherwise defined, all technical and scientific terms used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this application belongs. The terminology used herein is for the purpose of describing embodiments of this application only and is not intended to limit this application.

[0017] It should be noted that the acquisition, storage, use, and processing of data in this application comply with the relevant provisions of national laws and regulations and do not violate public order and good morals.

[0018] The robot motion planning method and apparatus of this application are described below with reference to the accompanying drawings.

[0019] Figure 1 This is a flowchart illustrating a robot motion planning method provided in an embodiment of this application.

[0020] like Figure 1 As shown, the robot motion planning method includes the following steps: Step 101: During the execution of the robot's current motion segment, collect motion parameters related to the robot in real time.

[0021] In this application, when a robot performs a task, it can pre-plan one or more motion segments based on the task's trajectory. The robot can then execute different motion segments in sequence to perform the task. A motion segment can be understood as a planned trajectory of the robot.

[0022] For example, one or more motion segments may be planned during the execution of the preceding motion segments.

[0023] When a robot is performing a task, the pre-planned trajectory may not be fully adapted to the actual operating conditions. By acquiring real-time motion parameters related to the robot, adjustments can be made to subsequent motion segments, enabling adjustments to be made while running. This ensures real-time performance while effectively improving the quality and adaptability of subsequent motions.

[0024] For example, during the execution of the robot's current motion segment, motion parameters related to the robot can be collected in real time based on at least one sensor. The current motion segment refers to a planned trajectory being executed by the robot. The at least one sensor can be located on the robot or independent of it. Furthermore, control commands can be read from the robot's internal controller to determine the motion parameters related to the robot based on these commands.

[0025] For example, the motion parameters related to the robot may include, but are not limited to, the robot's own motion state parameters, such as joint angles, joint positions, joint velocities, joint accelerations, end effector poses, etc., and may also include external information related to the task, such as the position, orientation, motion state (e.g., the speed of the workpiece on the conveyor belt), obstacle positions, target placement points, visual recognition results, etc. of the workpiece to be grasped or manipulated.

[0026] Step 102: Latch the motion parameters into the motion block associated with the subsequent target motion segment.

[0027] In this application, each motion segment of the robot has an associated motion block, wherein the motion block is a data structure used to describe the corresponding motion segment, and can be used to store the trajectory information of the motion segment, the shaping parameters of the shaper, the history cache, the time base, etc.

[0028] The shaping parameters may include, but are not limited to, natural frequency, damping ratio, shaper enable state, impulse amplitude, delay steps and number of taps, as well as related triggering semantics.

[0029] Among them, the snapshot record of the shaping parameters can be the modified shaping parameters or the shaping parameters before modification, without limitation; the shaping state refers to the internal state of the shaper; the history cache refers to the historical input and historical output of the shaper; the time base can refer to the original time parameterization model established by the trajectory planner for the motion segment to associate the path progress with physical time, which can be called the trajectory progress function.

[0030] For example, a mapping relationship can be established between motion segments and motion blocks through identifiers. For instance, a mapping relationship can be established through motion segment identifiers, or through indexes.

[0031] In this application, motion parameters related to the robot, collected in real time during the execution of the current motion segment, can be latched into a motion block associated with a subsequent target motion segment. The target motion segment is the motion segment that follows the current motion segment in the execution sequence.

[0032] For example, latching motion parameters into a motion block associated with a subsequent target motion segment can mean writing the motion parameters into the motion block associated with the target motion segment.

[0033] As an example, motion parameters can be latched into the motion block associated with the subsequent target motion segment by copying motion parameters to form a parameter snapshot.

[0034] As an example, the target motion segment can be determined from the motion segments that follow the current motion segment in the execution order, based on the execution order of each motion segment and whether the associated motion block has been latched. Then, the collected motion parameters can be latched into the motion block associated with the target motion segment.

[0035] Step 103: Perform trajectory planning for the target motion segment based on motion parameters.

[0036] In this application, the motion parameters latched can be read from the motion block associated with the target motion segment, and the trajectory of the target motion segment can be planned based on the motion parameters.

[0037] For example, trajectory planning for a target motion segment can be based on motion parameters, or it can be based on motion parameters to adjust and correct the trajectory of a pre-planned target motion segment, or it can be based on motion parameters to re-plan the trajectory of the target motion segment. There is no limitation on this.

[0038] For example, at least one parameter can be determined from the motion parameters, and trajectory planning can be performed on the target motion segment based on the at least one parameter.

[0039] Since the internal data of a motion block cannot be modified after it is latched, for example, if the trajectory planning of the target motion segment has been completed, but the motion block associated with the target motion segment has not been latched, the trajectory planning of the target motion segment can be re-planned based on the motion parameters in the motion block to obtain the re-planned trajectory of the target motion segment. Thus, the robot can perform corresponding operations based on the re-planned trajectory during the execution of the target motion segment.

[0040] As an example, the replanned trajectory of the target motion segment can be obtained by determining the start and end points of the target motion segment and replanning the trajectory between the start and end points based on the motion parameters. The planned trajectory can include linear interpolation, circular interpolation, or joint space interpolation, among other forms.

[0041] It is understandable that if the target motion segment has not completed trajectory planning, then the target motion segment can be planned based on the motion parameters in the motion blocks associated with the target motion segment.

[0042] In this embodiment, motion parameters related to the robot are collected in real time during the execution of the robot's current motion segment, and these motion parameters are latched into the motion block associated with the subsequent target motion segment. This allows for trajectory planning of the target motion segment based on the motion parameters. Therefore, by collecting motion parameters in real time during the execution of the current motion segment and latching them into the motion block associated with the subsequent target motion segment for trajectory planning, the collected motion parameters do not affect the currently executing trajectory, thus avoiding interference with the stability and determinism of the current motion. Simultaneously, the latest real-time state is promptly integrated into the generation of the subsequent trajectory. This ensures the continuity and safety of the current motion while improving the responsiveness and planning accuracy of subsequent motion segments to dynamic environmental or operational changes.

[0043] Figure 2 This is a flowchart illustrating another robot motion planning method provided in an embodiment of this application.

[0044] like Figure 2 As shown, the robot motion planning method includes the following steps: Step 201: During the execution of the robot's current motion segment, collect motion parameters related to the robot in real time.

[0045] In this application, step 201 can be implemented in any of the embodiments of this application, so it will not be described in detail here.

[0046] Step 202: Determine the target motion segment based on the motion segment whose execution order is after the current motion segment and whose motion block has not yet been latched.

[0047] In this application, after real-time acquisition of the robot's motion parameters, the target motion segment can be determined from the motion segments that are located after the current motion segment in the execution sequence and whose motion blocks have not yet been latched.

[0048] Motion block latching refers to marking a motion block as "finally determined and unmodifiable," thus solidifying the configuration of the motion block. Once a motion block is latched (i.e., the motion block is latched), all its internal data is frozen and no longer accepts any modifications from the planning or execution layer, ensuring the determinism, timing consistency, and security of motion execution.

[0049] It's understandable that a motion block not being latched means it's still in an editable, configurable, or externally parameter-receiving state, but hasn't been marked as "final and unmodifiable" by the control system and handed over to the real-time execution layer. In this state, the motion block's content can be dynamically updated by the planner, scheduler, or execution layer. In other words, a motion block not being latched means it's still in the configuration phase, and its content can be dynamically updated.

[0050] In some embodiments, a motion segment whose execution order is after the current motion segment and whose motion block has not yet been latched can be used as the target motion segment.

[0051] For example, subsequent motion segments can be detected to determine whether the motion blocks of the subsequent motion segments have been latched, and the motion segments in the subsequent motion segments whose motion blocks have not yet been latched are taken as target motion segments. Here, a subsequent motion segment refers to a motion segment whose execution order is after the current motion segment.

[0052] For example, the execution order of motion segments is motion segment 1, motion segment 2, and motion segment 3, with associated motion blocks a, b, and c, respectively. If the current motion segment is motion segment 1, and the motion blocks of subsequent segments 2 and 3 have already been latched, the motion parameters cannot be latched into motion blocks b and c. If the motion blocks of motion segments 2 and 3 have not yet been latched, the target motion segment can be determined from motion segments 2 and 3.

[0053] As one possible implementation, subsequent motion segments can be traversed according to the execution order of robot motion segments to determine whether the motion blocks associated with the subsequent motion segments have been latched. In response to the detection that the motion block associated with any motion segment has not been latched, the motion segment can be taken as the target motion segment.

[0054] It is understandable that the execution order of the target motion segment is after the current motion segment. The target motion segment can be a motion segment adjacent to the current motion segment or a motion segment not adjacent to the current motion segment, and there is no limitation on this.

[0055] For example, if the current motion segment is segment 5, and the motion segment adjacent to segment 5 is determined to be segment 6 based on the execution order, if the motion block of segment 6 has not yet been latched, segment 6 can be used as the target motion segment. If the motion block of segment 6 has been latched, the process continues to determine whether the motion block of segment 7 has been latched, until a motion segment whose motion block has not yet been latched is determined, which is then used as the target motion segment.

[0056] In some embodiments, the controller can pre-plan motion segments and cache the associated motion blocks of the motion segments in a buffer before the current motion segment has been completed. This means that one or more pre-planned motion blocks associated with the motion segments can be stored in the buffer before the current motion segment has been completed. Based on this, if it is detected that the motion blocks of at least one motion segment whose execution order follows the current motion segment have been stored in the buffer and latched, the first motion segment after at least one motion segment whose motion blocks have not yet been latched can be identified as the target motion segment.

[0057] For example, if the current motion segment is segment 1, and the motion blocks of segments 2 and 3, which are executed after segment 1, have been stored in the buffer, while the motion block of segment 4 has not yet been latched, then segment 4 is the first motion segment after segment 1 whose motion block has not yet been latched, and thus segment 4 is taken as the target motion segment.

[0058] Step 203: Latch the motion parameters to the motion block associated with the target motion segment.

[0059] In this application, motion parameters collected in real time during the execution of the current motion segment can be latched into the target motion segment.

[0060] For example, the target motion segment can be a motion segment whose execution order is after the current motion segment and whose motion block has not yet been latched. Motion parameters can be latched to this target motion segment. Thus, the motion block associated with the current motion segment is latched and kept in a frozen state, while the real-time acquired motion parameters only apply to motion segments whose subsequent motion blocks have not yet been latched, ensuring that the adjustment of shaping parameters does not affect the execution of the determined trajectory, while supporting adaptive adjustment of subsequent segments.

[0061] In some embodiments, motion parameters can be latched into a set region in a motion block associated with a target motion segment, wherein the set region can be used to store the latched parameters.

[0062] For example, motion parameters can be latched into the motion block associated with the target motion segment by means of parameter snapshot, that is, the parameter snapshot of the motion parameters is latched into the motion block associated with the target motion segment.

[0063] Step 204: Perform trajectory planning for the target motion segment based on motion parameters.

[0064] In this application, step 204 can be implemented in any of the embodiments of this application, so it will not be described in detail here.

[0065] In practical applications, robot controllers typically support online modification of the shaper's shaping parameters. If these modified shaping parameters are read directly during the execution of the current motion segment, it can lead to inconsistencies between the shaper's internal historical state and the external parameter configuration, resulting in problems such as sudden output changes, abnormal triggering timing, and even unpredictable real-time behavior.

[0066] Based on this, in some embodiments, during the execution of the current motion segment, when a modification operation on the shaping parameters of the shaper is detected, the modified shaping parameters of the shaper can be obtained, and the modified shaping parameters and motion parameters can be latched together into the motion block associated with the target motion segment.

[0067] The method for determining the target motion segment can be found in the above embodiments, and therefore will not be repeated here.

[0068] For example, if a client's shaping parameter modification instruction is detected, it can be determined that a modification operation on the shaping parameters of the shaper has been detected, and the modified shaping parameters can be latched into the motion block associated with the target motion segment.

[0069] In this embodiment, during the execution of the current motion segment, when a modification operation on the shaping parameters of the shaper is detected, the modified shaping parameters of the shaper are obtained, and the motion parameters and the modified shaping parameters are latched into the motion block associated with the target motion segment. This can avoid the disturbance of the current motion segment execution trajectory caused by online parameter modification, and ensure the stability and predictability of the robot's execution trajectory.

[0070] In some embodiments, motion parameters and modified shaping parameters are latched into motion blocks associated with the target motion segment. These motion blocks can be stored in a buffer, which can store motion blocks of different motion segments. The shaping parameters latched in each motion block may be the same or different, and there is no limitation on this.

[0071] For example, the shaping parameters of different motion segments can be maintained independently, so as to achieve complete independence or controllable continuity of each motion segment at the shaper level, thereby ensuring the vibration suppression effect and the smoothness of motion switching.

[0072] For example, in the buffer, snapshots of the shaping parameters, shaping states, historical caches, and time bases of each motion segment of the robot can be maintained separately, indexed by the identifier of the motion block. In other words, each motion segment can independently store its own snapshots of shaping parameters, shaping states, historical caches, and time bases.

[0073] In this embodiment, by capturing the robot's motion state parameters in real time during the execution of the current motion segment and preemptively locking them into the motion block associated with the target motion segment that has not yet been locked after the current motion segment, cross-segment pre-transmission of motion information is realized. This ensures that the subsequent motion segment can obtain the latest state data based on the current actual dynamics before formal execution, providing accurate input for trajectory shaping, smooth connection, or adaptive adjustment. This can effectively improve the continuity, responsiveness, and overall motion stability between multiple motion segments, while avoiding trajectory abrupt changes or vibration surges caused by state lag.

[0074] In the above embodiments, regarding the latching of the corrected shaping parameters into the target motion segment, the following is a detailed explanation. Figure 3 This describes the input shaping scheme based on the corrected shaping parameters during the execution of the target motion segment. Figure 3 This is a flowchart illustrating another robot motion planning method provided in an embodiment of this application.

[0075] like Figure 3As shown, the robot motion planning method includes the following steps: Step 301: When initializing the shaping state of the target motion segment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment is loaded into the state structure corresponding to the target motion segment.

[0076] In this application, the state structure corresponding to the target motion segment can be a data structure used to store a snapshot of the modified shaping parameters of the target motion segment.

[0077] Before the target motion segment begins execution, the internal state of the shaper during operation can be set to a known initial value suitable for that motion segment, which means the shaping state of the target motion segment can be initialized.

[0078] For example, when initializing the shaping state of the target motion segment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment can be loaded into the state structure corresponding to the target motion segment.

[0079] In this embodiment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment is loaded into the state structure corresponding to the target motion segment. This allows access to the snapshot parameters only. Even if the shaping parameters are modified during the execution of the target motion segment, the input shaping is still performed according to the snapshot of the modified shaping parameters stored in the state structure. This ensures the determinism, safety, and smooth switching capability of motion control.

[0080] Step 302: During the execution of the target motion segment, a snapshot of the modified shaping parameters is read from the state structure.

[0081] Step 303: Based on the snapshot of the modified shaping parameters, perform input shaping on the target motion segment to obtain the shaped trajectory corresponding to the target motion segment.

[0082] In this application, during the execution of the target motion segment, the robot can read a snapshot of the modified shaping parameters from the state structure, determine the modified shaping parameters in the snapshot based on the snapshot of the modified shaping parameters, and perform input shaping on the target motion segment based on the modified shaping parameters to counteract the residual vibration of the robot after the motion ends.

[0083] In some embodiments, during the planning phase, the trajectory of the target motion segment can be planned based on the motion parameters in the motion block associated with the target motion segment, and the trajectory progress function corresponding to the target motion segment can be obtained. During the execution of the target motion segment, a snapshot of the corrected shaping parameters is read from the state structure. Based on the snapshot and the trajectory progress function, the target motion segment is input shaped to obtain the shaped trajectory corresponding to the target motion segment.

[0084] The trajectory progress function can be a function model constructed during the planning phase based on motion parameters, representing the mapping relationship between trajectory progress and time. For example, the independent variable of the trajectory progress function is time, and the dependent variable is trajectory progress.

[0085] Among them, trajectory progress can be used to characterize the relative degree of completion along the preset motion path within the target motion segment. Trajectory progress is a dimensionless progress measure.

[0086] As one possible implementation, a pre-acceleration method can be used to input-shape the target motion segment and reconstruct the motion trajectory: the compressed trajectory progress can be obtained based on the time compression coefficient associated with the target motion segment and the trajectory progress function corresponding to the target motion segment, and the compressed trajectory progress can be input-shaped based on the modified shaping parameters to obtain the shaped trajectory progress, and then the shaped trajectory corresponding to the target motion segment can be reconstructed based on the shaped trajectory progress.

[0087] For example, the time compression factor associated with the target motion segment can be determined based on the total duration of the target motion segment and the maximum delay of the shaper. The time compression factor can be greater than 0 and less than 1.

[0088] The total duration of the target motion segment can refer to the duration of the motion trajectory of the target motion segment. The maximum delay of the shaper can be the maximum value of the delays of all taps in the shaper, where the delay of the i-th tap represents the time delay of the i-th pulse of the shaper relative to the original input signal.

[0089] For example, the time compression factor associated with the target motion segment can be implemented in the following way: the difference between the total duration of the target motion segment and the maximum delay of the shaper can be determined, and the time compression factor associated with the target motion segment can be determined based on the ratio of the difference to the total duration of the target motion segment.

[0090] For example, the time compression coefficient associated with the target motion segment is k = (T - max_delay) / T, where T represents the total duration of the target motion segment, max_delay represents the maximum delay of the shaper, and k is greater than 0 and less than 1.

[0091] For example, if T is less than or equal to max_delay, since the total duration of the target motion segment is insufficient to complete zero-delay compensation, a degradation strategy can be adopted, such as setting k to 1 to disable zero-delay input integer shaping.

[0092] The above method of obtaining the compressed trajectory progress based on the time compression coefficient associated with the target motion segment and the trajectory progress function corresponding to the target motion segment can be implemented in the following way: the current execution time can be compressed according to the time compression coefficient associated with the target motion segment to obtain the compressed time, and then the compressed trajectory progress can be obtained based on the compressed time and the trajectory progress function.

[0093] For example, the current execution time can be compressed along the time axis based on the time compression factor associated with the target motion segment: the ratio of the current execution time to the time compression factor can be used as the compressed time. For instance, the compressed time scaled_time = current_time / k, where current_time represents the current execution time.

[0094] If T is less than max_delay, that is, the time compression coefficient is less than 1, the system can access future trajectory points in advance by using current_time / k to achieve pre-acceleration. This can offset the delay introduced by subsequent input shaping, achieve zero-delay input shaping, and thus achieve zero-delay vibration suppression, that is, effectively suppress residual vibration without prolonging the total motion duration.

[0095] For example, obtaining the compressed trajectory progress based on the compressed time and trajectory progress function can be achieved in the following way: the compressed trajectory progress can be obtained by querying the trajectory progress function based on the compressed time. For instance, the compressed time can be input into the trajectory progress function to calculate the compressed trajectory progress.

[0096] Alternatively, the compressed trajectory progress can be obtained in the following way: Based on the compressed time, the original trajectory planning curve of the target motion segment can be queried to obtain the trajectory position at the compressed time. Based on the trajectory position and the starting position of the target motion segment, the cumulative displacement of the trajectory position relative to the starting position can be determined. The ratio of the cumulative displacement to the total planned displacement is determined as the compressed trajectory progress. The total planned displacement can be used to characterize the total position change that needs to be completed in the target motion segment.

[0097] As another possible implementation, a non-pre-acceleration method can be adopted, that is, a time compression coefficient k=1, to input-shape the target motion segment and reconstruct the motion trajectory: based on the current execution time of the target motion segment, the trajectory progress function of the target motion segment can be queried to obtain the original trajectory progress under the current execution time, and based on the modified shaping parameters, the original trajectory progress can be input-shaped to obtain the shaped trajectory progress, and then based on the shaped trajectory progress, the shaped trajectory corresponding to the target motion segment can be reconstructed and generated.

[0098] For example, the above-mentioned reconstruction of the shaped trajectory corresponding to the target motion segment based on the shaped trajectory progress can be achieved in the following way: the shaped trajectory corresponding to the target motion segment can be reconstructed based on the motion space type of the target motion segment and the shaped trajectory progress. The motion type includes, but is not limited to, Cartesian motion, joint motion, etc.

[0099] For example, for Cartesian motion, the reconstructed trajectory can be generated in the following way: the progress of the reconstructed trajectory can be input into the original geometric interpolation function for solving to obtain the current pose including the current Cartesian position and the current attitude angle. Then, time difference is performed based on the current Cartesian position and the current attitude angle to determine the current position velocity and the current angular velocity. Thus, the reconstructed trajectory is obtained based on the current Cartesian position, the current attitude angle, the current position velocity, and the current angular velocity.

[0100] Among them, the original geometric interpolation function can refer to the original mathematical function that solves the spatial coordinates and attitude of any intermediate point on the path based on the preset discrete key points of the trajectory and according to geometric rules such as straight lines and arcs. It can determine the spatial shape, direction, and total distance of the trajectory.

[0101] The time difference can refer to estimating the first time derivative (e.g., velocity) of a state variable (e.g., position) by dividing the difference between the current real-time control cycle and the previous real-time control cycle by the time step between the two real-time control cycles.

[0102] It is understandable that, for Cartesian motion, the reconstructed and shaped trajectory may include, but is not limited to, the current Cartesian position, the current attitude angle, the current position velocity, and the current angular velocity.

[0103] For example, for joint motion, the following method can be used to reconstruct and generate the shaped trajectory: the starting position and planned displacement of each joint in the target motion segment can be obtained. Based on the starting position, planned displacement and the progress of the shaped trajectory, the current reconstructed joint position corresponding to the joint is determined. The time difference between the current reconstructed joint position and the joint position output in the previous real-time control cycle is calculated to obtain the current joint angular velocity. Then, the shaped trajectory is generated based on the current reconstructed joint position and the current joint angular velocity.

[0104] The planned displacement is the difference between the end position of the joint in the target motion segment and the beginning position in the target motion segment.

[0105] The reconstructed joint position can refer to the joint position reconstructed based on the current trajectory progress after the reshaping.

[0106] For example, the above method of determining the current reconstructed joint position based on the starting position, the planned displacement increment, and the shaped trajectory progress can be implemented in the following way: the product between the planned displacement and the shaped trajectory progress can be determined as the shaped displacement, and the sum of the starting position and the shaped displacement can be determined as the current reconstructed joint position.

[0107] The reshaped displacement is the displacement that the joint should achieve from the starting position after the planned curve has been reshaped. It is the target displacement that is recalculated to achieve global synchronization and smooth motion.

[0108] In practical applications, robots may need to perform corresponding technological actions during the motion phase.

[0109] In the field of robot control, process motion refers to non-motion-related functional operations triggered at a specific position or moment on a motion trajectory to complete a specific manufacturing, operation, or task. It complements the robot's motion control, but does not directly change the robot's pose or trajectory; instead, it performs auxiliary or core tasks related to the production process.

[0110] Alternatively, a process action can refer to an external equipment operation or internal function call triggered when preset conditions are met during the robot's movement, used to achieve a specific process objective, such as turning the welding gun on or off, spraying, clamping, grasping, placing, taking pictures, laser cutting, IO signal output, data acquisition, etc.

[0111] For example, if the task is a gripping task, and the robot needs to grip the workpiece during the motion segment, then the process action is gripping.

[0112] For example, a corresponding process action can be executed when the robot's trajectory meets the process triggering condition. For instance, if welding is performed when the robot's current position reaches the welding position, then the process triggering condition is that the position reaches the welding position.

[0113] For example, a process trigger condition refers to a pre-defined logical rule used to determine when a process action is executed. As an example, the types of process trigger conditions may include: position trigger, displacement trigger, speed trigger, time trigger, etc.

[0114] For example, the process triggering conditions are: the position reaches the target position, or the displacement reaches the target displacement, or the set time has elapsed since the start.

[0115] Since input shaping alters the temporal distribution of the actual position, continuing to use the original planned arc length or joint position as the trigger condition will result in a mismatch between the triggering timing of the process action and the robot's actual movement position. Therefore, this application switches the trigger condition quantity from the original arc length or joint position to the shaped position quantity to ensure consistency between the process triggering and the actual output.

[0116] For example, during the process of the robot executing the target motion segment based on the shaped trajectory, it can determine whether the shaped trajectory meets the preset process triggering conditions, and when the preset process triggering conditions are met, it executes the corresponding process action to ensure that the process action is synchronized with the robot's actual motion position and improves the processing accuracy.

[0117] If the motion segment has undergone input shaping, the judgment quantity for process triggering can be switched from the original planned quantity to the shaped position quantity to maintain consistency between process triggering and actual output. In other words, process triggering conditions can be determined based on the shaped position quantity, where the shaped position quantity is a motion state quantity of the shaped trajectory.

[0118] For example, for a target motion segment, the position quantity on which the process triggering condition is based can be determined according to the motion type of the target motion segment.

[0119] For example, the motion type of the target motion segment may include, but is not limited to: Cartesian motion, joint motion, conveyor belt synchronous motion, etc., and the position quantity based on the corresponding process triggering conditions may include, but is limited to, the arc length position after shaping, the joint position after shaping, the displacement after shaping, etc.

[0120] For Cartesian motion, the positional quantity used to trigger the process can be the shaped arc length position. This shaped arc length position can be obtained by multiplying the shaped trajectory progress by the total arc length of the target motion segment.

[0121] For example, the process triggering condition is that the shaped arc length position corresponding to the target motion segment reaches the preset arc length position. During the execution of the target motion segment, when the shaped arc length position reaches the preset arc length position, the corresponding process action is triggered.

[0122] For joint motion, the positional quantity used as the triggering condition for the process can be the reshaped joint position. The reshaped joint position is obtained by multiplying the reshaped trajectory progress by the planned displacement of each joint in the target motion segment, and then adding the initial position.

[0123] For example, the process triggering condition is that the shaped joint position corresponding to the target motion segment reaches the preset joint position. During the execution of the target motion segment, when the shaped joint position reaches the preset joint position, the corresponding process action is triggered.

[0124] For synchronous motion of conveyor belts, the position quantity based on the process triggering condition can be the shaped displacement quantity, which is obtained by multiplying the shaped trajectory progress by the total displacement quantity of the target motion segment.

[0125] For example, the process triggering condition is that the displacement of the target motion segment after shaping reaches the preset displacement. When the displacement of the target motion segment after shaping reaches the preset displacement, the corresponding process action is triggered.

[0126] Therefore, for different types of motion space, the process triggering conditions can be determined based on the corresponding displacement, which can not only keep the process triggering consistent with the actual output, but also meet the process triggering requirements of different scenarios.

[0127] In this embodiment, when initializing the shaping state of the target motion segment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment can be loaded into the state structure corresponding to the target motion segment. During the execution of the target motion segment, the snapshot of the modified shaping parameters is read from the state structure. Based on the snapshot of the modified shaping parameters, the target motion segment is input-shaped to obtain the shaped trajectory corresponding to the target motion segment. This ensures that the shaping parameters modified in the current motion segment take effect in subsequent target motion segments. Furthermore, during the execution of the target motion segment, only the snapshot of the modified shaping parameters is accessed. Even if the shaping parameters are modified during the execution of the target motion segment, the trajectory planning of the target motion segment is still based on the snapshot of the modified shaping parameters stored in the state structure, guaranteeing the determinism, safety, and smooth switching capability of motion control.

[0128] In some embodiments of this application, when initializing the shaping state of the current motion segment, a snapshot of the shaping parameters in the motion block associated with the current motion segment can be loaded into the state structure corresponding to the current motion segment. During the execution of the current motion segment, the snapshot of the shaping parameters corresponding to the current motion segment is read from the state structure, and then the current motion segment is input-shaped based on the snapshot of the shaping parameters corresponding to the current motion segment to obtain the shaped trajectory corresponding to the current motion segment.

[0129] The state structure corresponding to the current motion segment can be a data structure used to store a snapshot of the integer parameters corresponding to the current motion segment.

[0130] The method for inputting and shaping the current motion segment based on a snapshot of the shaping parameters corresponding to the current motion segment is similar to the method for inputting and shaping the target motion segment based on a snapshot of the shaping parameters corresponding to the target motion segment, so it will not be described again.

[0131] Figure 4Timing diagram of latching and shaping parameters provided in the embodiments of this application. Figure 4 If the motion segments are the 5th and 6th motion segments, then the motion blocks associated with the motion segments are motion block 5 and motion block 6, respectively.

[0132] For the fifth motion segment, the trajectory of the fifth motion segment is planned, and the shaping parameter P is latched into motion block 5. old When initializing the shaping state of the 5th motion segment, only the shaping parameter P of the 5th motion segment is read. old Based on the shaping parameter P old Input shaping is performed on the fifth motion segment.

[0133] During the execution of the fifth motion segment, a modification operation on the shaping parameters of the shaper was detected, and the modified shaping parameters P of the shaper were obtained. new Determine whether motion block 6, associated with the 6th motion segment, has been latched. If motion block 6 has not been latched, plan the 6th motion segment and apply the corrected shaping parameter P. new Latched into motion block 6. During the initialization of the shaping state of motion segment 6, the corrected shaping parameter P is read. new Based on the modified shaping parameter P new Input shaping is performed on the 6th motion segment.

[0134] If motion block 6 has already completed latching, motion block 6 retains the existing shaping parameter P of the 6th motion segment. old And based on the existing shaping parameter P old Input shaping is performed on the 6th motion segment. At this time, the corrected shaping parameter P is... new Then wait for subsequent motion blocks that have not yet completed latching, in order to apply the corrected shaping parameter P new Latch it to a subsequent motion block that has not yet been latched.

[0135] It should be noted that the integer parameter P used in paragraph 5... old The shaping parameter P used in the 6th motion segment old They can be independent of each other, they can be the same or different, and there is no restriction on this.

[0136] To achieve the above embodiments, this application also proposes a robot motion planning device.

[0137] Figure 5 This is a schematic diagram of the structure of a robot motion planning device provided in an embodiment of this application.

[0138] like Figure 5 As shown, the robot motion planning device includes: The real-time acquisition module 510 is used to acquire motion parameters related to the robot in real time during the execution of the robot's current motion segment; The latching module 520 is used to latch the motion parameters into the motion block associated with the subsequent target motion segment; The trajectory planning module 530 is used to plan the trajectory of the target motion segment based on the motion parameters.

[0139] Optionally, the latch module 520 is further configured to: The target motion segment is determined based on the motion segment whose execution order is after the current motion segment and whose motion block has not yet been latched. The motion parameters are latched into the motion block associated with the target motion segment.

[0140] Optionally, the latch module 520 is further configured to: During the execution of the current motion segment, when a modification operation on the shaping parameters of the shaper is detected, the modified shaping parameters of the shaper are obtained. The motion parameters and the modified shaping parameters are latched into the motion block associated with the target motion segment.

[0141] Optionally, the trajectory planning module 530 is further configured to: When initializing the shaping state of the target motion segment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment is loaded into the state structure corresponding to the target motion segment; wherein, the state structure corresponding to the target motion segment is a data structure used to store the snapshot of the modified shaping parameters; During the execution of the target motion segment, a snapshot of the modified shaping parameters is read from the state structure; Based on a snapshot of the modified shaping parameters, the target motion segment is subjected to input shaping to obtain the shaped trajectory corresponding to the target motion segment.

[0142] Optionally, the trajectory planning module 530 is further configured to: Based on the time compression coefficient associated with the target motion segment and the trajectory progress function corresponding to the target motion segment, the compressed trajectory progress is obtained; wherein, the trajectory progress function is a function model constructed based on the motion parameters in the planning stage, representing the mapping relationship between trajectory progress and time; Based on the snapshot of the modified shaping parameters, the compressed trajectory progress is input-shaped to obtain the shaped trajectory progress; Based on the shaped trajectory progress, the shaped trajectory corresponding to the target motion segment is reconstructed and generated.

[0143] Optionally, the device further includes: The process action execution module is used to execute corresponding process actions when the shaped trajectory corresponding to the target motion segment meets the preset process triggering conditions; wherein, the position quantity based on the process triggering conditions is determined according to the motion type of the target motion segment.

[0144] Optionally, the position quantity on which the process triggering condition is based is determined according to the motion type of the target motion segment, including at least one of the following: The Cartesian motion corresponds to the shaped arc length position, which is obtained by multiplying the shaped trajectory progress by the total arc length of the target motion segment; The joint movement corresponds to the reshaped joint position, which is obtained by multiplying the reshaped trajectory progress by the planned displacement of each joint and then adding the initial joint angle. The synchronous movement of the conveyor belt corresponds to the shaped displacement, which is obtained by multiplying the shaped trajectory progress by the total displacement of the target movement segment.

[0145] Optionally, the latch module 520 is further configured to: If it is detected that the motion block of at least one motion segment whose execution order is after the current motion segment has been stored in the buffer and has been latched, the first motion segment after the at least one motion segment whose motion block has not yet been latched is determined as the target motion segment.

[0146] Optionally, the latch module 520 is further configured to: In the buffer, using the identifier of the motion block as an index, snapshots, shaping states, historical caches, and time bases of the shaping parameters of each motion segment of the robot are maintained respectively.

[0147] It should be noted that the foregoing explanation of the robot motion planning method embodiment also applies to the robot motion planning device of this embodiment, and will not be repeated here.

[0148] To implement the above embodiments, this application also proposes an electronic device, including: a processor and a memory communicatively connected to the processor; the memory stores computer execution instructions; the processor executes the computer execution instructions stored in the memory to implement the robot motion planning method provided in the foregoing embodiments.

[0149] To implement the above embodiments, this application also proposes a computer-readable storage medium storing computer-executable instructions, which, when executed by a processor, are used to implement the robot motion planning method provided in the foregoing embodiments.

[0150] To implement the above embodiments, this application also proposes a computer program product, including a computer program that, when executed by a processor, implements the robot motion planning method provided in the foregoing embodiments.

[0151] The collection, storage, use, processing, transmission, provision, and disclosure of user personal information involved in this application all comply with the provisions of relevant laws and regulations and do not violate public order and good morals.

[0152] It should be noted that personal information collected from users should be used for legitimate and reasonable purposes and should not be shared or sold outside of these legitimate uses. Furthermore, such collection / sharing should only be conducted after receiving the user's informed consent, including but not limited to notifying the user to read the user agreement / user notice and sign an agreement / authorization that includes authorization of relevant user information before the user uses the function. In addition, any necessary steps must be taken to protect and safeguard access to such personal information data and ensure that others with access to personal information data comply with their privacy policies and procedures.

[0153] This application is intended to provide an implementation scheme for users to selectively prevent the use or access to their personal information data. Specifically, this disclosure is intended to provide hardware and / or software to prevent or block access to such personal information data. Once personal information data is no longer needed, risks can be minimized by restricting data collection and deleting data. Furthermore, where applicable, such personal information is de-identified to protect user privacy.

[0154] In the foregoing descriptions of the embodiments, the terms "one embodiment," "some embodiments," "example," "specific example," or "some examples," etc., refer to specific features, structures, materials, or characteristics described in connection with that embodiment or example, which are included in at least one embodiment or example of this application. In this specification, the illustrative expressions of the above terms do not necessarily refer to the same embodiment or example. Furthermore, the specific features, structures, materials, or characteristics described may be combined in any suitable manner in one or more embodiments or examples. Moreover, without contradiction, those skilled in the art can combine and integrate the different embodiments or examples described in this specification, as well as the features of different embodiments or examples.

[0155] Furthermore, the terms "first" and "second" are used for descriptive purposes only and should not be construed as indicating or implying relative importance or implicitly specifying the number of technical features indicated. Thus, a feature defined as "first" or "second" may explicitly or implicitly include at least one of that feature. In the description of this application, "multiple" means at least two, such as two, three, etc., unless otherwise explicitly specified.

[0156] Any process or method description in the flowchart or otherwise herein can be understood as representing a module, segment, or portion of code comprising one or more executable instructions for implementing custom logic functions or processes, and the scope of the preferred embodiments of this application includes additional implementations in which functions may be performed not in the order shown or discussed, including substantially simultaneously or in reverse order depending on the functions involved, as should be understood by those skilled in the art to which embodiments of this application pertain.

[0157] The logic and / or steps represented in the flowchart or otherwise described herein, for example, can be considered as a sequenced list of executable instructions for implementing logical functions, and can be embodied in any computer-readable medium for use by, or in conjunction with, an instruction execution system, apparatus, or device (such as a computer-based system, a processor-included system, or other system that can fetch and execute instructions from, an instruction execution system, apparatus, or device). For the purposes of this specification, "computer-readable medium" can be any means that can contain, store, communicate, propagate, or transmit programs for use by, or in conjunction with, an instruction execution system, apparatus, or device. More specific examples (a non-exhaustive list) of computer-readable media include: an electrical connection having one or more wires (electronic device), a portable computer disk drive (magnetic device), random access memory (RAM), read-only memory (ROM), erasable and editable read-only memory (EPROM or flash memory), fiber optic devices, and portable optical disc read-only memory (CDROM). Alternatively, the computer-readable medium may be paper or other suitable media on which the program can be printed, since the program can be obtained electronically, for example, by optically scanning the paper or other medium, followed by editing, interpreting, or otherwise processing as necessary, and then stored in a computer memory.

[0158] It should be understood that various parts of this application can be implemented using hardware, software, firmware, or a combination thereof. In the above embodiments, multiple steps or methods can be implemented using software or firmware stored in memory and executed by a suitable instruction execution system. For example, if implemented in hardware as in another embodiment, it can be implemented using any one or a combination of the following techniques known in the art: discrete logic circuits having logic gates for implementing logical functions on data signals, application-specific integrated circuits (ASICs) having suitable combinational logic gates, programmable gate arrays (PGAs), field-programmable gate arrays (FPGAs), etc.

[0159] Those skilled in the art will understand that all or part of the steps of the methods in the above embodiments can be implemented by a program instructing related hardware. The program can be stored in a computer-readable storage medium, and when executed, the program includes one or a combination of the steps of the method embodiments.

[0160] Furthermore, the functional units in the various embodiments of this application can be integrated into a processing module, or each unit can exist physically separately, or two or more units can be integrated into a module. The integrated module can be implemented in hardware or as a software functional module. If the integrated module is implemented as a software functional module and sold or used as an independent product, it can also be stored in a computer-readable storage medium.

[0161] The storage medium mentioned above can be a read-only memory, a disk, or an optical disk, etc. Although embodiments of this application have been shown and described above, it is understood that the above embodiments are exemplary and should not be construed as limiting this application. Those skilled in the art can make changes, modifications, substitutions, and variations to the above embodiments within the scope of this application.

Claims

1. A robot motion planning method, characterized in that, include: During the execution of the robot's current motion segment, motion parameters related to the robot are collected in real time; The motion parameters are latched into the motion block associated with the subsequent target motion segment; Trajectory planning is performed on the target motion segment based on the motion parameters.

2. The method as described in claim 1, characterized in that, The step of latching the motion parameters into the motion block associated with the subsequent target motion segment includes: The target motion segment is determined based on the motion segment whose execution order is after the current motion segment and whose motion block has not yet been latched. The motion parameters are latched into the motion block associated with the target motion segment.

3. The method as described in claim 2, characterized in that, The step of latching the motion parameters to the motion block associated with the target motion segment includes: During the execution of the current motion segment, when a modification operation on the shaping parameters of the shaper is detected, the modified shaping parameters of the shaper are obtained. The motion parameters and the modified shaping parameters are latched into the motion block associated with the target motion segment.

4. The method as described in claim 3, characterized in that, The method further includes: When initializing the shaping state of the target motion segment, a snapshot of the modified shaping parameters in the motion block associated with the target motion segment is loaded into the state structure corresponding to the target motion segment; wherein, the state structure corresponding to the target motion segment is a data structure used to store the snapshot of the modified shaping parameters; During the execution of the target motion segment, a snapshot of the modified shaping parameters is read from the state structure; Based on a snapshot of the modified shaping parameters, the target motion segment is subjected to input shaping to obtain the shaped trajectory corresponding to the target motion segment.

5. The method as described in claim 4, characterized in that, The step of performing input shaping on the target motion segment based on the snapshot of the modified shaping parameters to obtain the shaped trajectory corresponding to the target motion segment includes: Based on the time compression coefficient associated with the target motion segment and the trajectory progress function corresponding to the target motion segment, the compressed trajectory progress is obtained; wherein, the trajectory progress function is a function model constructed based on the motion parameters in the planning stage, representing the mapping relationship between trajectory progress and time; Based on the snapshot of the modified shaping parameters, the compressed trajectory progress is input-shaped to obtain the shaped trajectory progress; Based on the shaped trajectory progress, the shaped trajectory corresponding to the target motion segment is reconstructed and generated.

6. The method as described in claim 4, characterized in that, The method further includes: If the shaped trajectory corresponding to the target motion segment meets the preset process triggering conditions, the corresponding process action is executed; wherein, the position quantity on which the process triggering conditions are based is determined according to the motion type of the target motion segment.

7. The method as described in claim 6, characterized in that, The position quantity on which the process triggering condition is based is determined according to the motion type of the target motion segment, including at least one of the following: The Cartesian motion corresponds to the shaped arc length position, which is obtained by multiplying the shaped trajectory progress by the total arc length of the target motion segment; The joint movement corresponds to the reshaped joint position, which is obtained by multiplying the reshaped trajectory progress by the planned displacement of each joint and then adding the initial joint angle. The synchronous movement of the conveyor belt corresponds to the shaped displacement, which is obtained by multiplying the shaped trajectory progress by the total displacement of the target movement segment.

8. The method according to any one of claims 2-7, characterized in that, The step of determining the target motion segment based on motion segments that are executed after the current motion segment and whose motion blocks have not yet been latched includes: If it is detected that the motion block of at least one motion segment whose execution order is after the current motion segment has been stored in the buffer and has been latched, the first motion segment after the at least one motion segment whose motion block has not yet been latched is determined as the target motion segment.

9. The method as described in claim 8, characterized in that, The method further includes: In the buffer, using the identifier of the motion block as an index, snapshots, shaping states, historical caches, and time bases of the shaping parameters of each motion segment of the robot are maintained respectively.

10. A robot motion planning device, characterized in that, include: The real-time acquisition module is used to acquire motion parameters related to the robot in real time during the execution of the robot's current motion segment; The latching module is used to latch the motion parameters into the motion block associated with the subsequent target motion segment; The trajectory planning module is used to plan the trajectory of the target motion segment based on the motion parameters.