Robotic arm posture synchronization method, device, equipment, medium and product
By calculating the starting point and end point information in the position synchronization of the robot arm, using the S-type planning algorithm and the interpolation coefficient to adjust the duration, the problem of poor attitude path of the robot arm is solved, and the position and attitude synchronization of the robot arm in the fusion section is achieved, improving the overall performance of the robot arm.
Patent Information
- Application Number
- CN202411494799.4
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-24
- Publication Date
- 2025-08-29
- Estimated Expiration
- 2044-10-24
AI Technical Summary
In the prior art, the position synchronization planning of the robot arm leads to the poor posture path of the robot arm, and the position and attitude cannot be synchronized, resulting in the uncontrollable performance of the robot arm in the fusion section planning.
By determining the first path, the second path and the fusion radius in the trajectory queue pool, the start point information and the end point information of the third path are calculated, the duration is adjusted using the S-type planning algorithm, and the interpolation coefficient is used to synchronize the position path and the attitude path.
The position and attitude of the robot arm in the fusion section are synchronized, ensuring the controllability of the robot arm in the planning process, and improving the overall performance of the robot arm.
Smart Images

Figure CN119304874B_ABST
Abstract
Description
Technical Field
[0001] The embodiments of the present disclosure relate to the field of intelligent control technology, and in particular to a method, device, equipment, medium and product for synchronizing the posture of a robotic arm. Background Art
[0002] Currently, few manufacturers have conducted in-depth research on phase synchronization of fusion segment pose. Most companies split pose planning into three axes and perform independent planning. This results in a suboptimal robot pose path and a lack of phase synchronization between the robot's position and pose during planning. Summary of the Invention
[0003] The embodiments of the present disclosure provide a method, apparatus, device, medium, and product for synchronizing the position and posture of a robotic arm, thereby achieving synchronization of the position and posture of a fusion path.
[0004] In a first aspect, a method for synchronizing a robot arm posture is provided, the method comprising:
[0005] Determining a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path;
[0006] Determining the starting point information of the fused path according to the third path; the starting point information includes the starting point velocity and the starting point acceleration;
[0007] Based on the S-type planning algorithm, a first duration and a second duration are determined according to the starting point information and the ending point information of the fused path; the fused path includes a position path and a posture path; the first duration is the duration required for the manipulator to execute the position path corresponding to the fused path, and the second duration is the duration required for the manipulator to execute the posture path corresponding to the fused path; the ending point information is calculated based on the second path and the fused radius; the ending point information includes the ending point velocity and the ending point acceleration;
[0008] Determining an interpolation coefficient based on the first duration and the second duration, the interpolation coefficient being used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal, the interpolation number being the number of times interpolation is performed on the first duration or the second duration;
[0009] The corresponding duration is corrected according to the interpolation coefficient to synchronize the position path and the posture path of the fused path.
[0010] In a second aspect, a robotic arm posture synchronization device is provided, comprising:
[0011] a third path determination module, configured to determine a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path;
[0012] A starting point information determination module, configured to determine the starting point information of the fused path according to the third path; the starting point information includes a starting point velocity and a starting point acceleration;
[0013] a duration determination module, configured to determine, based on an S-type planning algorithm and according to the starting point information and the ending point information of the fused path, a first duration and a second duration; the fused path including a position path and a posture path; the first duration being the duration required for the manipulator to execute the position path corresponding to the fused path, and the second duration being the duration required for the manipulator to execute the posture path corresponding to the fused path; the ending point information being calculated based on the second path and the fused radius; and the ending point information including an ending point velocity and an ending point acceleration;
[0014] an interpolation coefficient determination module, configured to determine an interpolation coefficient based on a first duration and a second duration, the interpolation coefficient being used to adjust a number of interpolation times corresponding to the first duration or the second duration so that the first duration and the second duration are equal, the interpolation times being the number of times interpolation is performed on the first duration or the second duration;
[0015] The corresponding duration is corrected according to the interpolation coefficient to synchronize the position path and the posture path of the fused path.
[0016] According to a third aspect, an electronic device is provided, including:
[0017] at least one processor; and
[0018] a memory communicatively connected to the at least one processor; wherein,
[0019] The memory stores a computer program that can be executed by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the robot arm posture synchronization method as described in the first aspect above.
[0020] In a fourth aspect, a computer-readable storage medium is provided, on which a computer program is stored. When the program is executed by a processor, the robot arm posture synchronization method as described in the first aspect above is implemented.
[0021] In a fifth aspect, a computer program product is provided, which includes a computer program, and when the computer program is executed by a processor, it implements the robot arm posture synchronization method as described in the first aspect above.
[0022] The embodiments of the present disclosure disclose a method, apparatus, device, medium and product for synchronizing the posture of a robotic arm, including: determining a third path according to a first path, a second path and a fusion radius in a trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; the fusion path is used to connect the fourth path and the second path; determining the starting point information of the fusion path according to the third path; the starting point information includes the starting point speed and the starting point acceleration; determining the first duration and the second duration based on the S-type planning algorithm according to the starting point information and the ending point information of the fusion path; the fusion path The path includes a position path and a posture path; the first duration is the duration required for the manipulator to execute the position path corresponding to the fusion path, and the second duration is the duration required for the manipulator to execute the posture path corresponding to the fusion path; the end point information is calculated based on the second path and the fusion radius; the end point information includes the end point velocity and the end point acceleration; an interpolation coefficient is determined based on the first duration and the second duration, the interpolation coefficient is used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal, and the number of interpolations is the number of times the first duration or the second duration is interpolated; the corresponding duration is corrected based on the interpolation coefficient to synchronize the position path and the posture path of the fusion path. The technical solution provided in this embodiment solves the problem in the prior art that the fusion segment planning causes the manipulator joint velocity to be too large due to the posture synchronization processing, making the overall performance of the manipulator in the fusion segment uncontrollable, ensuring that the manipulator is controllable in the fusion segment planning, and performing online planning for the position and posture in the fusion segment to ensure the phase synchronization of the fusion segment position and posture.
[0023] It should be understood that the content described in this section is not intended to identify the key or important features of the embodiments of the present disclosure, nor is it intended to limit the scope of the embodiments of the present disclosure. Other features of the embodiments of the present disclosure will become easily understood through the following description. BRIEF DESCRIPTION OF THE DRAWINGS
[0024] In order to more clearly illustrate the technical solutions in the embodiments of the present disclosure, the following briefly introduces the drawings required for use in the description of the embodiments. Obviously, the drawings described below are only some embodiments of the embodiments of the present disclosure. For ordinary technicians in this field, other drawings can be obtained based on these drawings without any creative work.
[0025] Figure 1 This is a flow chart of a method for synchronizing the posture of a robotic arm provided in the first embodiment of the present disclosure;
[0026] Figure 2 This is a schematic diagram of a posture point provided in the first embodiment of the present disclosure;
[0027] Figure 3 This is a schematic diagram of a robotic arm posture synchronization process provided by the first embodiment of the present disclosure;
[0028] Figure 4 Schematic diagram of the structure of a robotic arm posture synchronization device provided in the second embodiment of the present disclosure;
[0029] Figure 5 This is a structural diagram of an electronic device provided in Example 3 of the present disclosure. DETAILED DESCRIPTION
[0030] In order to enable those skilled in the art to better understand the solutions of the embodiments of the present disclosure, the technical solutions of the embodiments of the present disclosure will be clearly and completely described below in conjunction with the drawings in the embodiments of the present disclosure. Obviously, the embodiments described are only part of the embodiments of the present disclosure, not all of them. Based on the embodiments of the present disclosure, all other embodiments obtained by ordinary technicians in this field without making creative efforts should fall within the scope of protection of the embodiments of the present disclosure.
[0031] It should be noted that the terms "first", "second", etc. in the description and claims of the embodiments of the present disclosure and the above-mentioned drawings are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. It should be understood that the data used in this way can be interchangeable where appropriate, so that the embodiments of the present disclosure described herein can be implemented in an order other than those illustrated or described herein. In addition, the terms "including" and "having" and any variations thereof are intended to cover non-exclusive inclusions, for example, a process, method, system, product or device that includes a series of steps or units is not necessarily limited to those steps or units clearly listed, but may include other steps or units that are not clearly listed or inherent to these processes, methods, products or devices.
[0032] Example 1
[0033] Figure 1 This is a flow chart of a method for synchronizing the posture of a robotic arm provided in the first embodiment of the present disclosure. This embodiment is applicable to situations where the posture of a robotic arm is synchronized. The method can be executed by a robotic arm posture synchronization device, which can be implemented in the form of hardware and / or software. The robotic arm posture synchronization device can be configured in an electronic device, including but not limited to computers, computers, terminals, servers, and other devices with data processing capabilities. Figure 1 As shown, the method includes:
[0034] S110: Determine a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, where the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path.
[0035] In this embodiment, the trajectory queue pool can be a set of multiple paths pre-defined by the user based on actual needs. The trajectory queue pool can also include a fusion radius for the sections that need to be connected between the paths. The trajectory planner can sequentially obtain the first path, the second path, and the fusion radius from the trajectory queue pool. The first path and the second path can be intersecting paths, and the first path and the second path can have an intersection point.
[0036] Specifically, a third path can be determined based on the first path, the second path, and the fusion radius. This can be understood as replanning the first and second paths that intersect so that the first and second paths are connected by an arc. The third path can be a replanned version of the first path and can include a fusion path and a fourth path. The fourth path can be a path in the first path that is not within the circular range corresponding to the fusion radius. The fusion path is used to connect the fourth path and the second path.
[0037] S120: Determine starting point information of the fused path according to the third path; the starting point information includes starting point velocity and starting point acceleration.
[0038] It can be known that after obtaining the third path, the robotic arm can execute the third path. When the robotic arm executes to the starting point position of the fusion path, the starting point information of the fusion path can be determined based on the third path, thereby improving the accuracy of the starting point information of the fusion path. In this embodiment, the starting point information may include the starting point velocity and the starting point acceleration. Among them, the starting point velocity may include the starting point position velocity and the starting point attitude velocity, and the starting point acceleration may include the starting point position acceleration and the starting point attitude acceleration. It should be noted that the starting point information may also include: starting point position information, starting point attitude information, the starting point position information may include information such as the position of the starting point, the tangent and normal of the starting point position, and the starting point attitude information may include the starting point attitude.
[0039] S130. Based on the S planning algorithm, determine the first duration and the second duration according to the starting point information and the ending point information of the fusion path; the fusion path includes the position path and the posture path; the first duration is the duration required for the robot arm to execute the position path corresponding to the fusion path, and the second duration is the duration required for the robot arm to execute the posture path corresponding to the fusion path; the ending point information is calculated based on the second path and the fusion radius; the ending point information includes the ending point velocity and the ending point acceleration.
[0040] As can be seen, after obtaining the starting point information through the third path, the first duration and the second duration can be determined based on the starting point information and the end point information of the fused path based on the S-planning algorithm. The fused path may include a pre-planned position path and attitude path, so the first duration can be the time required for the robotic arm to execute the position path, and the second duration can be the time required for the robotic arm to execute the attitude path.
[0041] Continuing with the above description, the endpoint information can be calculated using the second path and the fusion radius. The endpoint information includes endpoint velocity and endpoint acceleration. The endpoint velocity can include both endpoint position velocity and endpoint attitude velocity, and the endpoint acceleration can include both endpoint position acceleration and endpoint attitude acceleration. It should be noted that the endpoint information can also include endpoint position information and endpoint attitude information. The endpoint position information can include information such as the endpoint position, its tangent, and its normal.
[0042] For example, the starting point information may include the starting point position velocity vp1, the starting point position acceleration ap1, the starting point attitude angular velocity wq1, and the starting point attitude acceleration aq1. The starting point position can be represented as p1, and the starting point attitude can be represented as q1. Based on the calculated vp1, ap1, vp2, and ap2, the fusion path can be speed-planned. The speed planning can adopt a seven-segment S-shaped speed planning to obtain the first duration tp (fusion path position planning duration).
[0043] For example, the endpoint information may include the endpoint position velocity vp2, the endpoint position acceleration ap2, the endpoint attitude angular velocity wq2, and the endpoint attitude acceleration aq2. The endpoint position can be represented as p2, and the endpoint attitude can be represented as q2. Based on the calculated vq1, aq1, vq2, and aq2, velocity planning is performed for the fusion path attitude to obtain the second duration tq (the duration of the fusion segment attitude planning).
[0044] It should be noted that the posture paths in the first path and the second path can be represented by quaternions. The curve of the posture path in the first path can be represented as:
[0045] q(t1)=slerp(qs1,qe1,t1)=(qe1*qs1 -1 ) t1 *qs1
[0046] Among them, qs1 is the quaternion description of the posture of the starting point of the first path, qe1 is the quaternion description of the posture of the end point of the first path, the value range of t1 can be 0-1, t1=1-the distance from p1 to the end point of the first path / the length of the first path, and slerp can be a quaternion interpolation function.
[0047] The curve of the posture path in the second path can be expressed as:
[0048] q(t2)=slerp(qs2,qe2,t2)=(qe2*qs2 -1 ) t2 *qs2
[0049] Where qs2 is the quaternion description of the attitude of the starting point of the second path, qe2 is the quaternion description of the attitude of the end point of the second path, and the value range of t2 can be 0-1, t2 = the distance from the starting point of the second path to p2 / the length of the second path. The calculation formula of the attitude angular velocity wq1 of the first path can be expressed as:
[0050] wq1=2*q′(t1)*q -1 (t1)
[0051] The calculation formula of the attitude angular velocity wq2 of the second path can be expressed as:
[0052] wq2=2*q′(t2)*q -1 (t2)
[0053] Where q'(t1) is the derivative of the posture path curve in the first path, and q'(t2) is the derivative of the posture path curve in the second path. The calculation formula of the posture acceleration aq1 of the first path can be expressed as:
[0054] aq1=2*q″(t1)*q′(t1)+2*q′(t1)*(q -1 (t1))′
[0055] The calculation formula of the attitude acceleration aq2 of the second path can be expressed as:
[0056] aq2=2*q″(t2)*q′(t2)+2*q′(t2)*(q -1 (t2))′
[0057] Wherein, q′(t1) is the derivative of the posture path curve in the first path, and q′(t2) is the derivative of the posture path curve in the second path; wherein, q″(t1) is the second-order derivative of the posture path curve in the first path, and q″(t2) is the second-order derivative of the posture path curve in the second path.
[0058] It should be noted that the starting point position p1, starting point posture q1, starting point position velocity vp1, and starting point position acceleration ap1 in the starting point information are all real-time interpolation information. That is, when the robot arm executes to the starting point of the fusion path, if the position path or posture path needs to be interpolated, the interpolation information is collected in real time. The end point position p2, end point posture q2, end point position velocity vp2, and end point position acceleration ap2 in the end point information can be calculated using the second path and the fusion radius.
[0059] For example, assuming the second path is a straight line, the length of the second path can be expressed as L2, the straight line direction vector of the second path can be expressed as vec2, the starting point position of the second path can be expressed as ps2, the starting point posture position of the second path can be expressed as qs2, and the ending point posture can be expressed as qe2. The fusion radius can be expressed as r, and the calculation formula for the ending point position p2 and the ending point posture q2 in the fusion path ending point information can be expressed as:
[0060] p2=ps2+r / L2*vec2
[0061] q2=(qe2*qs2 -1 ) r / L2 *qs2
[0062] The position velocity of the end point can be expressed as vp2. The calculation process of vp2 is as follows:
[0063] t21=a2m / j2m;
[0064] v21=0.5*a2m*t21
[0065] In order to ensure that the robot arm can stop at the end of the second path, the formula can be listed as follows:
[0066] 0.5*a2m*t22 2 +(v21+a2m*t21)*t22+(v21*t21+0.5*a2m*t21 2
[0067] -L2+r=0
[0068] The above formula can be used to determine the value of t22, where t22 can be the uniform acceleration time required to ensure that the robot arm stops at the end point of the second path. After obtaining t22, the value of t22 can be substituted into the following formula to determine the value of vp2.
[0069] vp2=min(v2m,v21+a2m*(t22+t21)-0.5*j2m*t21*t21
[0070] Where t21 represents the time required for the acceleration to accelerate from 0 to a2m, v21 represents the velocity change resulting from the acceleration from 0 to a2m, r can be the fusion radius, L2 can be the length of the second path, v2m is the maximum velocity of the second path, a2m is the maximum acceleration of the second path, j2m is the maximum jerk of the second path, the maximum velocity of the second path can be the maximum velocity that the manipulator can reach while executing the second path, the maximum acceleration of the second path can be the maximum rate of velocity change per unit time of the manipulator while executing the second path, and the maximum jerk of the second path can be the maximum rate of acceleration change of the manipulator while changing from uniform acceleration to uniform speed or from uniform speed to uniform deceleration. It should be noted that the endpoint position acceleration and the endpoint attitude acceleration can be 0, therefore, the endpoint position acceleration ap2 = 0.
[0071] S140. Determine an interpolation coefficient based on the first duration and the second duration. The interpolation coefficient is used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal. The interpolation number is the number of times interpolation is performed on the first duration or the second duration.
[0072] Specifically, after the first duration and the second duration are determined, an interpolation coefficient can be determined based on the first duration and the second duration, wherein the interpolation coefficient can be used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal.
[0073] It should be noted that considering that the robotic arm is a continuous system, the interpolation coefficient λq should be a continuous curve, and there are various choices for this continuous curve: such as a cosine curve with a fixed duration, a 4-segment symmetric S-profile with a specified duration, etc. Taking the 4-segment symmetric S-profile with a specified duration as an example, the first duration can be expressed as tp, the second duration can be expressed as tq, and tp > tq. Then the interpolation coefficient is the interpolation coefficient λq of the second duration. Assuming that the initial velocity V0 of the 4-segment symmetric S-profile is 0 and the target velocity V1 of the 4-segment symmetric S-profile is 0, then there are:
[0074] q = tp - tq
[0075] vm = 2 * q / tp
[0076] am = 4 * vm / tp
[0077] jm = 4 * am / tp
[0078] Among them, q can be the difference between the first duration and the second duration, vm can be the maximum velocity of the 4-segment symmetric S-profile, am can be the maximum acceleration of the 4-segment symmetric S-profile, and jm can be the maximum jerk of the 4-segment symmetric S-profile. The current execution time of tq of the second duration can be expressed as t. According to different values of t, the expression of the interpolation coefficient λq of the second duration is as follows:
[0079] If t ≤ 0.25 * tp, then λq = 1 - 0.5 * jm * t 2
[0080] If 0.25 * tp < t ≤ 0.5 * tp, then λq = 1 - 0.5 * jm * (0.25 * tp) 2 -am *
[0081] (t - 0.25 * tp) + 0.5 * jm * (t - 0.25 * tp) 2
[0082] If 0.5 * tp < t ≤ 0.75 * tp, then λq = 1 - vm + 0.5 * jm * (t - 0.5tp) 2
[0083] If 0.75 * tp < t ≤ tp, then λq = 1 - vm + 0.5 * jm * (0.25 * tp) 2 +am *
[0084] (t - 0.75 * tp) - 0.5 * jm * (t - 0.75 * tp) 2
[0085] It should be explained that the minimum duration between the first duration and the second duration can be selected, and the minimum duration can be determined as the duration that needs to be repaired. The number of interpolations of the minimum duration can be determined based on the maximum duration and the interpolation period. The number of interpolations is the number of times the first duration or the second duration is interpolated.
[0086] For example, the first duration can be expressed as tp, the second duration can be expressed as tq, ts is a single interpolation period, which can be a fixed value, λq is the attitude interpolation coefficient, and λp is the position interpolation coefficient. Then, we have: tp = number * λp * ts; tq = number * λq * ts; where number is the interpolation period of the fusion segment and can be a fixed value. This means that when tp and tq are unequal, the interpolation coefficient (λq or λq) can be adjusted to make them equal.
[0087] S150 , correcting the corresponding duration according to the interpolation coefficient to synchronize the position path and the posture path of the fusion path.
[0088] It can be seen that after obtaining the interpolation coefficient, the corresponding duration can be corrected according to the interpolation coefficient to make the first duration and the second duration equal, so that the position path and the posture path of the fusion path are synchronized.
[0089] For example, the minimum of the first duration and the second duration is the first duration, and the maximum is the second duration. The interpolation coefficient determined is the interpolation coefficient of the first duration. The interpolation coefficient of the first duration can be multiplied by the single interpolation cycle to achieve interpolation of the first duration (which can be understood as reducing the execution speed of the robot arm on the position path). By correcting the first duration corresponding to the position path, the first duration and the second duration are equal, thereby achieving synchronization of the robot arm's position path and posture path.
[0090] The present embodiment provides a method for synchronizing a manipulator's posture, comprising: determining a third path according to a first path, a second path and a fusion radius in a trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within a circular range corresponding to the fusion radius; the fusion path is used to connect the fourth path and the second path; determining the starting point information of the fusion path according to the third path; the starting point information includes a starting point speed and a starting point acceleration; determining a first duration and a second duration based on the starting point information and the ending point information of the fusion path based on an S-type planning algorithm; the fusion path includes a position path. The first duration is the duration required for the manipulator to execute the position path corresponding to the fusion path, and the second duration is the duration required for the manipulator to execute the posture path corresponding to the fusion path; the end point information is calculated based on the second path and the fusion radius; the end point information includes the end point velocity and the end point acceleration; the interpolation coefficient is determined based on the first duration and the second duration, and the interpolation coefficient is used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal, and the number of interpolations is the number of times the first duration or the second duration is interpolated; the corresponding duration is corrected based on the interpolation coefficient so that the position path and the posture path of the fusion path are synchronized. The technical solution provided in this embodiment interpolates the corresponding duration through the interpolation coefficient and the fusion path (position path or posture path), solving the problem in the prior art that the fusion segment planning causes the manipulator joint velocity to be too large due to the posture synchronization processing, making the overall performance of the manipulator in the fusion segment uncontrollable, ensuring that the manipulator is controllable in the fusion segment planning, and performing online planning for the position and posture in the fusion segment to ensure that the position and posture phase of the fusion segment are synchronized.
[0091] As an optional implementation of this embodiment, the robot arm posture synchronization method provided in this embodiment further includes:
[0092] 1) performing position planning on the fusion path according to the position of the starting point of the fusion path and the position of the ending point of the fusion path to determine the position path;
[0093] It is understood that the starting point information may also include starting point location information, which may include the location of the starting point; the ending point information may also include ending point location information, which may include the location of the ending point. Position planning can be performed on the fused path based on the starting point location and the ending point location of the fused path using an S-planning algorithm to determine the position path.
[0094] Exemplarily, the position path in the fusion path can be represented by a Bezier curve, and specifically can be expressed as:
[0095] where \(0 < t < 1\), \(m\) represents the maximum order of the curve. In this embodiment, \(m\) can be 5. represents the combination number, that is, the combination method of selecting \(i\) points from \(m\) points. Among them, \(p(i)\) is the control point of the Bezier curve, which can be determined by the tangents and normal lines at points \(p1\) and \(p1\), and the tangents and normal lines at points \(p2\) and \(p2\), and \(t\) i is the weight coefficient corresponding to the control point.
[0096] 2) Determine the pose path according to the end pose of the first path, the start pose of the fusion path, and the end pose of the fusion path.
[0097] Specifically, the first path may include the end pose of the first path, and the fusion path may include the start pose of the fusion path and the end pose of the fusion path. The pose path can be determined according to the end pose of the first path, the start pose of the fusion path, and the end pose of the fusion path.
[0098] Exemplarily, the pose path in the fusion path can be represented by a quaternion Bezier curve, and specifically can be expressed as:
[0099]
[0100] where the value range of \(t\) is from 0 to 1, \(q1\) is the start pose of the fusion path, \(qm\) is the end pose of the first path, and \(q2\) is the end pose of the fusion path.
[0101] As an optional implementation manner of this embodiment, the robotic arm pose synchronization method provided in this embodiment further includes:
[0102] 1) Determine the third duration required for the robotic arm to execute the route between the end pose of the first path and the start pose of the fusion path, and the fourth duration required for the robotic arm to execute the route between the end pose of the first path and the end pose of the fusion path;
[0103] It can be known that based on the S planning algorithm, the third duration required for the robotic arm to execute the route between the end pose of the first path and the start pose of the fusion path can be determined according to the route between the end pose of the first path and the start pose of the fusion path, and the fourth duration required for the robotic arm to execute the route between the end pose of the first path and the end pose of the fusion path can be determined according to the route between the end pose of the first path and the end pose of the fusion path.
[0104] Figure 2 A schematic diagram of a posture point provided in this embodiment, such as Figure 2 As shown, q0 can be represented as the starting point pose of the first path, the ending point pose of the first path can be represented as qm, the starting point pose of the fused path can be represented as q1 (fusion starting point pose), the ending point pose of the fused path can be represented as q2 (fusion ending point pose), and the ending point pose of the second path can be represented as q3. The third duration can be represented as t1, and the fourth duration can be represented as t2. The time required for the robot arm to execute q1 to qm can be represented as t1, and the time required for the robot arm to execute qm to q2 can be represented as t2.
[0105] 2) determining the number of segments of the gesture path based on the third duration, the fourth duration, and the first duration;
[0106] Specifically, after obtaining the third duration and the fourth duration, the number of segments of the gesture path may be determined based on the third duration, the fourth duration, and the first duration.
[0107] For example, the number of segments count of the posture path can be expressed as:
[0108] count=16*max(t1,t2,tp) / ts
[0109] Among them, t1 is the third time length, t2 is the fourth time length, tp is the first time length, and ts is the interpolation period. For example, ts may be 4 milliseconds, and the interpolation period may be the duration of the interpolation interval.
[0110] 3) Segmenting the posture path according to the number of segments, and determining the quaternion of each segment point;
[0111] Specifically, after the number of segments of the posture path is obtained by calculation, the posture path can be segmented according to the number of segments. For example, if the number of segments is 10, the posture path can be evenly divided into 10 segments.
[0112] Continuing with the above description, after the posture path is segmented, the quaternion of each segment point can be determined. The quaternion can be a function expression of the segment point. The quaternion can be used to represent the rotation in three-dimensional space. The quaternion can be composed of a scalar part and a three-dimensional vector part. For example, the quaternion can be expressed as: q = a + bi + cj + dk, where a, b, c and d are real numbers, i, j and k are imaginary numbers and satisfy the following multiplication principle:
[0113] i 2 =j 2 =k 2 =ijk=-1,
[0114] 4) For each segment point, determine the angular displacement of the segment point according to the quaternion of the segment point;
[0115] Specifically, for each segment point, the angular displacement of the segment point can be determined according to the quaternion of the segment point.
[0116] For example, the quaternion of the segment point can be recorded as q(di), where di = the i-th point divided by the number of segments count. Substituting di into the planned posture path formula can obtain q(di). The angular displacement between the starting point of the fusion segment and the n-th point is recorded as s(n), which can be expressed as:
[0117]
[0118] 5) Determine an angular displacement table according to the angular displacement of each segment point, wherein the angular displacement table includes the angular displacement and the segment number corresponding to the angular displacement, and the segment number is used to determine the interpolation position of the angular displacement on the posture path.
[0119] Specifically, after the angular displacement of each segment point is determined, the angular displacement of each segment point can be summarized into a table, and then the angular displacement table can be determined. The angular displacement table may include the angular displacement and the segment number corresponding to the angular displacement. The segment number is used to determine the interpolation position of the angular displacement on the posture path.
[0120] Optionally, when the interpolation coefficient is the interpolation coefficient of the second time length and the fusion path is a gesture path,
[0121] The correcting the corresponding duration according to the interpolation coefficient to synchronize the position path and the posture path of the fusion path includes:
[0122] 1) interpolating the second duration according to the interpolation coefficient of the second duration to obtain an interpolation angular displacement of the fusion path;
[0123] Specifically, when the interpolation coefficient is the interpolation coefficient of the second time length, the second time length needs to be interpolated according to the interpolation coefficient of the second time length, so as to obtain the interpolation angular displacement of the fusion path.
[0124] 2) determining the segment number of the interpolated angular displacement based on the angular displacement table and the interpolated angular displacement, and determining the interpolated posture path through linear fitting according to the segment number, so as to synchronize the position and posture of the fused path.
[0125] Continuing with the above description, after the interpolated angular displacement is determined, the segment number of the interpolated angular displacement can be determined in the angular displacement table. For example, based on the angular displacement table, the segment number of the current angular displacement can be determined by bisection. To ensure the continuity of the robot arm's posture, the posture path between each segment is linearly fitted to determine the interpolated posture path, so that the position and posture of the fused path are synchronized.
[0126] As an optional implementation of this embodiment, the robot arm posture synchronization method provided in this embodiment, before determining the fusion path and the fourth path according to the first path, the second path and the fusion radius in the trajectory queue pool, further includes:
[0127] 1) Selecting a path from the trajectory queue pool as the first path;
[0128] Specifically, a path may be selected from the trajectory queue pool in order as the first path;
[0129] 2) executing the first path and obtaining the path length of the first path completed by execution;
[0130] Specifically, the robot arm may be controlled to execute the first path, and the length of the path completed by the execution of the first path may be obtained in real time. For example, in the first path, the length of the path completed by the execution of the first path may be 0.7 meters.
[0131] 3) When the length of the path completed by executing the first path is greater than a preset parameter, a path is selected from the trajectory queue pool as the second path.
[0132] In this embodiment, the preset parameter may be a parameter pre-set by the user, and the preset parameter may be a percentage of the completed length of the first path to the total length of the first path. An exemplary preset parameter may be 50%. When the completed length of the first path is greater than the preset parameter, a path may be sequentially selected from the trajectory queue pool as the second path.
[0133] As an optional implementation of this embodiment, determining the third path according to the first path, the second path, and the fusion radius in the trajectory queue pool includes:
[0134] 1) determining a fusion path curve according to the first path, the second path, and the fusion radius;
[0135] Specifically, after obtaining the first path, the second path, and the fusion radius, a fusion path curve can be determined based on the first path, the second path, and the fusion radius using an S-planning algorithm. The S-planning algorithm, also known as the S-curve trajectory planning method, is a commonly used trajectory planning technique in the field of motion control. It smoothly controls changes in velocity and acceleration to ensure a smooth transition between the planned starting point and the target point for a robot or other moving object, reducing motion shock and improving motion and control accuracy. In this embodiment, the first path and the second path can be connected by having a common intersection point, and both the first path and the second path can include trajectory information. The trajectory information in the first path can include the path's endpoint position, the path's maximum velocity, the path's maximum acceleration, and trajectory fusion information. The trajectory fusion information can be information that integrates information from different sources within the trajectory. Exemplarily, the trajectory fusion information can include location information, environmental information, historical trajectory data, and information on abnormal events. The trajectory information in the second path can also include the path's endpoint position, the path's maximum velocity, the path's maximum acceleration, and trajectory fusion information. The trajectory fusion information can be information that integrates information from different sources within the trajectory. An S-planning algorithm can be used to determine a fused path curve based on the trajectory information of the first path, the trajectory information of the second path, and the fusion radius. The fused path curve can be a curve connecting the first path and the second path with an arc. This can be understood as replanning the first path so that the first path and the second path are connected by an arc.
[0136] 2) integrating the fusion path curve to determine the fusion path length;
[0137] Specifically, after obtaining the fusion path curve, the fusion path curve can be integrated based on an integration algorithm to determine the length of the fusion path. In this embodiment, the integration algorithm can be the Simpson's Rule. The Simpson's Rule is a numerical integration method used to approximate the value of a definite integral. It is based on the concept of polynomial interpolation and approximates the integrand by constructing a quadratic polynomial, which is then integrated. The Simpson's Rule has high accuracy because it utilizes the second-order derivative information of the integrand on the integration interval.
[0138] 3) determining the length of the third path based on the fusion radius, the fusion path length, and the length of the first path; wherein the length of the first path is calculated based on the starting point position, the ending point position, and the path type corresponding to the first path;
[0139] In this embodiment, after obtaining the length of the fusion path, the length of the third path can be determined based on the fusion radius, the fusion path length, and the length of the first path. The length of the first path can be calculated by the starting point position, the end point position, and the path type corresponding to the first path.
[0140] Exemplarily, the fusion path length can be expressed as Lb, the fusion radius can be expressed as r, the length of the first path can be expressed as L1, and the length of the third path can be expressed as Ls, then Ls=L1-r+Lb.
[0141] 4) updating the position of the first path end point according to the length of the third path and the maximum speed of the fused path end point to determine the third path;
[0142] The maximum speed of the fusion path termination point is determined by the target speed, target acceleration, target jerk and fusion radius corresponding to the second path.
[0143] Specifically, after calculating the length of the third path, the position of the end point of the first path can be updated based on the S-planning algorithm according to the length of the third path and the maximum speed of the end point of the fused path. The original end point of the first path can be the intersection of the first path and the second path. After the original end point of the first path is updated, the end point of the first path can be the starting point position of the fused path.
[0144] In this embodiment, the maximum velocity at the fused path's endpoint is determined by the target velocity, target acceleration, target jerk, and fusion radius corresponding to the second path. For example, in this embodiment, the maximum velocity at the fused path's endpoint can be expressed as V2, which can be calculated using the same formula for the endpoint position velocity vp2 given in this embodiment.
[0145] Figure 3 A schematic diagram of the robot arm posture synchronization process provided in this embodiment is as follows: Figure 3As shown, first, according to user needs, multiple paths can be taught to form a path pool (trajectory path pool). The trajectory planner can be used to obtain the first path (first path) from the trajectory pool (trajectory path pool), and the robot arm can be controlled to execute the current trajectory motion planning. The fusion radius can be obtained from the trajectory path pool, and it can be determined whether the fusion radius is zero. If the fusion radius is zero, the path planning is terminated. If the fusion radius is not zero, it can be determined whether the current trajectory (the path length completed by the execution of the first path) is executed to the position (preset parameter) where the user obtains the next trajectory setting in advance. If so, the next trajectory (second path) is obtained from the trajectory queue pool, and the fusion segment length (fusion path length) is calculated. The current planning target position (the end point position of the first path) and the target speed (the maximum speed of the fusion path end point) are modified and re-planned. By re-planning the target position and target speed, the third path can be determined. The third path includes the fusion path and the fourth path. When the current trajectory (third path) executes to the fusion point (the starting point of the fusion path), the fusion segment planning is entered. According to the current trajectory (third path), the position is recalculated to fuse the incident point information (the starting point information of the fusion path) and the exit point information (the ending point information of the fusion path). The time tp (first duration) required for position planning is determined based on the fusion segment position planning (position path), and the time tq (second duration) required for attitude planning and the attitude quaternion table (i.e., angular displacement table) are determined based on the fusion segment attitude planning (attitude path). The planning duration of the fusion segment is determined based on tp and tq (the maximum value of tp and tq), and the interpolation coefficient is determined based on tp and tq to interpolate the position of the fusion segment or the attitude of the fusion segment. In the process of interpolating the attitude of the fusion segment, the attitude interpolation quaternion needs to be determined based on the interpolation angular displacement table (angular displacement table), thereby realizing the interpolation of the attitude of the fusion segment. When the interpolation trajectory (fusion path) reaches the fusion exit point (fusion path termination point), the second trajectory planning is entered. The corresponding duration is interpolated through the interpolation coefficient and the fusion path. This solves the problem in the existing technology that the fusion segment planning causes the robot arm joint speed to be too high due to the posture synchronization processing, making the overall performance of the robot arm in the fusion segment uncontrollable. It ensures that the robot arm is controllable in the fusion segment planning, and performs online planning for the position and posture in the fusion segment to ensure the phase synchronization of the position and posture of the fusion segment.
[0146] Example 2
[0147] Figure 4 : is a structural diagram of a robot arm posture synchronization device provided in the second embodiment of the present disclosure; Figure 4 As shown, the device includes: a third path determination module 210, a starting point information determination module 220, a duration determination module 230, an interpolation coefficient determination module 240, and a synchronization module 250.
[0148] The third path determination module 210 is configured to determine a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path.
[0149] A starting point information determining module 220 is configured to determine the starting point information of the fused path according to the third path; the starting point information includes the starting point velocity and the starting point acceleration;
[0150] The duration determination module 230 is configured to determine a first duration and a second duration based on the starting point information and the ending point information of the fused path based on an S-type planning algorithm; the fused path includes a position path and a posture path; the first duration is the duration required for the manipulator to execute the position path corresponding to the fused path, and the second duration is the duration required for the manipulator to execute the posture path corresponding to the fused path; the ending point information is calculated based on the second path and the fused radius; the ending point information includes the ending point velocity and the ending point acceleration;
[0151] an interpolation coefficient determination module 240, configured to determine an interpolation coefficient based on the first duration and the second duration, the interpolation coefficient being used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal, the interpolation number being the number of times interpolation is performed on the first duration or the second duration;
[0152] The synchronization module 250 is configured to modify the corresponding duration according to the interpolation coefficient so as to synchronize the position path and the posture path of the fusion path.
[0153] A second embodiment of the present disclosure provides a robotic arm posture synchronization device to ensure synchronization of the fusion segment position and posture phase.
[0154] Furthermore, the device further comprises:
[0155] A first path determination module, configured to select a path from a trajectory queue pool as the first path;
[0156] an execution module, configured to execute the first path and obtain a path length of the first path completed by execution;
[0157] The second path determining module is configured to select a path from the trajectory queue pool as the second path when the length of the path completed by executing the first path is greater than a preset parameter.
[0158] Furthermore, the third path determination module 210 is further configured to:
[0159] determining a fusion path curve according to the first path, the second path, and the fusion radius;
[0160] Integrating the fusion path curve to determine the fusion path length;
[0161] determining the length of the third path according to the fusion radius, the fusion path length, and the length of the first path; wherein the length of the first path is calculated based on the starting point position, the ending point position, and the path type corresponding to the first path;
[0162] updating the position of the first path end point according to the length of the third path and the maximum speed of the fused path end point to determine the third path;
[0163] The maximum speed of the fusion path termination point is determined by the target speed, target acceleration, target jerk and the fusion radius corresponding to the second path.
[0164] Furthermore, the device further includes:
[0165] A position path determination module, configured to perform position planning on the fusion path according to the position of the fusion path starting point and the position of the fusion path ending point, so as to determine the position path;
[0166] The posture path determination module is used to determine the posture path according to the posture of the end point of the first path, the posture of the starting point of the fusion path, and the posture of the end point of the fusion path.
[0167] Furthermore, the device further includes:
[0168] A third duration and a fourth duration determining module, configured to determine a third duration required for the robot arm to execute a route between the endpoint posture of the first path and the posture of the starting point of the fused path, and a fourth duration required for the robot arm to execute a route between the endpoint posture of the first path and the posture of the fused path end point;
[0169] A segment number determination module, configured to determine the segment number of the gesture path based on the third duration, the fourth duration, and the first duration;
[0170] A quaternion determination module, configured to segment the posture path according to the segment number and determine the quaternion of each segment point;
[0171] An angular displacement determination module, configured to determine, for each segment point, an angular displacement of the segment point according to the quaternion of the segment point;
[0172] The angular displacement table determination module is used to determine the angular displacement table according to the angular displacement of each segment point, wherein the angular displacement table includes the angular displacement and the segment number corresponding to the angular displacement, and the segment number is used to determine the interpolation position of the angular displacement on the posture path.
[0173] Furthermore, when the interpolation coefficient is the interpolation coefficient of the second duration and the fusion path is a gesture path, the synchronization module 250 is further configured to:
[0174] interpolating the second duration according to the interpolation coefficient of the second duration to obtain an interpolation angular displacement of the fusion path;
[0175] The segment number of the interpolated angular displacement is determined based on the angular displacement table and the interpolated angular displacement, and the interpolated posture path is determined by linear fitting according to the segment number to synchronize the position and posture of the fused path.
[0176] The robotic arm posture synchronization device provided in the embodiments of the present disclosure can execute the robotic arm posture synchronization method provided in any embodiment of the present disclosure, and has the corresponding functional modules and beneficial effects of the execution method.
[0177] Example 3
[0178] Figure 5 A schematic diagram of an electronic device 10 that can be used to implement embodiments of the present disclosure is shown. The electronic device is intended to represent various forms of digital computers, such as laptop computers, desktop computers, workstations, personal digital assistants, servers, blade servers, mainframe computers, and other suitable computers. The components shown herein, their connections and relationships, and their functions are provided for example only and are not intended to limit the implementation of the embodiments of the present disclosure described and / or claimed herein.
[0179] like Figure 5 As shown, the electronic device 10 includes at least one processor 11 and a memory, such as a read-only memory (ROM) 12, a random access memory (RAM) 13, etc., which is communicatively connected to the at least one processor 11. The memory stores a computer program that can be executed by the at least one processor. The processor 11 can perform various appropriate actions and processes according to the computer program stored in the read-only memory (ROM) 12 or the computer program loaded from the storage unit 18 into the random access memory (RAM) 13. Various programs and data required for the operation of the electronic device 10 can also be stored in the RAM 13. The processor 11, ROM 12, and RAM 13 are connected to each other via a bus 14. An input / output (I / O) interface 15 is also connected to the bus 14.
[0180] Multiple components in the electronic device 10 are connected to the I / O interface 15, including an input unit 16, such as a keyboard, a mouse, etc.; an output unit 17, such as various types of displays, speakers, etc.; a storage unit 18, such as a magnetic disk, an optical disk, etc.; and a communication unit 19, such as a network card, a modem, a wireless communication transceiver, etc. The communication unit 19 allows the electronic device 10 to exchange information / data with other devices via a computer network such as the Internet and / or various telecommunication networks.
[0181] The processor 11 can be any general-purpose and / or specialized processing component with processing and computing capabilities. Some examples of the processor 11 include, but are not limited to, a central processing unit (CPU), a graphics processing unit (GPU), various specialized artificial intelligence (AI) computing chips, various processors running machine learning model algorithms, a digital signal processor (DSP), and any appropriate processor, controller, microprocessor, etc. The processor 11 executes the various methods and processes described above, such as the robotic arm posture synchronization method.
[0182] In some embodiments, the robot arm posture synchronization method can be implemented as a computer program, which is tangibly contained in a computer-readable storage medium, such as a storage unit 18. In some embodiments, part or all of the computer program can be loaded and / or installed on the electronic device 10 via the ROM 12 and / or the communication unit 19. When the computer program is loaded into the RAM 13 and executed by the processor 11, one or more steps of the robot arm posture synchronization method described above can be performed. Alternatively, in other embodiments, the processor 11 can be configured to execute the robot arm posture synchronization method in any other appropriate manner (for example, by means of firmware).
[0183] Various embodiments of the systems and techniques described herein can be implemented in digital electronic circuit systems, integrated circuit systems, field programmable gate arrays (FPGAs), application specific integrated circuits (ASICs), application specific standard products (ASSPs), system-on-chip systems (SOCs), programmable logic devices (CPLDs), computer hardware, firmware, software, and / or combinations thereof. These various embodiments can include being implemented in one or more computer programs that are executable and / or interpreted on a programmable system that includes at least one programmable processor, which can be a special purpose or general purpose programmable processor that can receive data and instructions from a storage system, at least one input device, and at least one output device, and transmit data and instructions to the storage system, the at least one input device, and the at least one output device.
[0184] The computer programs for implementing the methods of the embodiments of the present disclosure may be written in any combination of one or more programming languages. These computer programs may be provided to a processor of a general-purpose computer, a special-purpose computer, or other programmable data processing device, so that when the computer programs are executed by the processor, the functions / operations specified in the flowcharts and / or block diagrams are implemented. The computer programs may be executed entirely on the machine, partially on the machine, as a stand-alone software package, partially on the machine and partially on a remote machine, or entirely on a remote machine or server.
[0185] In the context of the embodiments of the present disclosure, a computer-readable storage medium can be a tangible medium that can contain or store a computer program for use by an instruction execution system, device or equipment or used in combination with an instruction execution system, device or equipment. A computer-readable storage medium can include, but is not limited to, electronic, magnetic, optical, electromagnetic, infrared, or semiconductor systems, devices or equipment, or any suitable combination of the foregoing. Alternatively, a computer-readable storage medium can be a machine-readable signal medium. A more specific example of a machine-readable storage medium can include an electrical connection based on one or more lines, a portable computer disk, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or flash memory), an optical fiber, a portable compact disk read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.
[0186] To provide interaction with a user, the systems and techniques described herein can be implemented on an electronic device having: a display device (e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor) for displaying information to the user; and a keyboard and pointing device (e.g., a mouse or trackball) through which the user can provide input to the electronic device. Other types of devices can also be used to provide interaction with the user; for example, the feedback provided to the user can be any form of sensory feedback (e.g., visual feedback, auditory feedback, or tactile feedback); and input from the user can be received in any form (including acoustic input, voice input, or tactile input).
[0187] The systems and techniques described herein can be implemented in a computing system that includes back-end components (e.g., as a data server), or a computing system that includes middleware components (e.g., an application server), or a computing system that includes front-end components (e.g., a user computer with a graphical user interface or web browser through which a user can interact with implementations of the systems and techniques described herein), or a computing system that includes any combination of such back-end components, middleware components, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication (e.g., a communication network). Examples of communication networks include: a local area network (LAN), a wide area network (WAN), a blockchain network, and the Internet.
[0188] A computing system may include clients and servers. The clients and servers are typically remote from each other and typically interact via a communication network. This client-server relationship arises through computer programs running on the respective computers, creating a client-server relationship. The server may be a cloud server, also known as a cloud computing server or cloud host. This server is a hosting product within the cloud computing service ecosystem that addresses the management difficulties and limited scalability of traditional physical hosting and VPS services.
[0189] It should be understood that the various forms of processes shown above can be used to reorder, add, or delete steps. For example, the steps described in the embodiments of the present disclosure can be performed in parallel, sequentially, or in a different order, as long as the desired results of the technical solutions of the embodiments of the present disclosure can be achieved, and this document is not limited here.
[0190] The above specific implementations do not constitute a limitation on the scope of protection of the embodiments of the present disclosure. Those skilled in the art should understand that various modifications, combinations, sub-combinations, and substitutions may be made based on design requirements and other factors. Any modifications, equivalent substitutions, and improvements made within the spirit and principles of the embodiments of the present disclosure shall be included within the scope of protection of the embodiments of the present disclosure.
[0191] The embodiments of the present disclosure also provide a computer program product, including a computer program and / or instructions, which, when executed by a processor, implements the robot arm posture synchronization method provided in any embodiment of the present application.
[0192] During implementation, the computer program product may be written in one or more programming languages or a combination thereof to write computer program code for performing the operations of the disclosed embodiments, including object-oriented programming languages such as Java, Smalltalk, C++, and conventional procedural programming languages such as "C" or similar programming languages. The program code may be executed entirely on the user's computer, partially on the user's computer, as a separate software package, partially on the user's computer and partially on a remote computer, or entirely on a remote computer or server. In cases involving a remote computer, the remote computer may be connected to the user's computer via any type of network, including a local area network (LAN) or a wide area network (WAN), or may be connected to an external computer (e.g., via the Internet using an Internet service provider).
[0193] Note that the above are only preferred embodiments of the present disclosure and the technical principles used. Those skilled in the art will understand that the present disclosure is not limited to the specific embodiments herein, and that various obvious changes, readjustments, and substitutions can be made by those skilled in the art without departing from the scope of protection of the present disclosure. Therefore, although the present disclosure is described in more detail through the above embodiments, the present disclosure is not limited to the above embodiments, and may include more other equivalent embodiments without departing from the concept of the present disclosure, and the scope of the present disclosure is determined by the scope of the appended claims.
Claims
1. A method for synchronizing a robot arm's posture, characterized in that: The method comprises: Determining a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path; Determining the starting point information of the fused path according to the third path; the starting point information includes the starting point velocity and the starting point acceleration; Based on the S-planning algorithm, a first duration and a second duration are determined according to the starting point information and the ending point information of the fused path; the fused path includes a position path and a posture path; the first duration is the duration required for the manipulator to execute the position path corresponding to the fused path, and the second duration is the duration required for the manipulator to execute the posture path corresponding to the fused path; the ending point information is calculated based on the second path and the fused radius; the ending point information includes the ending point velocity and the ending point acceleration; Determining an interpolation coefficient based on the first duration and the second duration, the interpolation coefficient being used to adjust the number of interpolations corresponding to the first duration or the second duration so that the first duration and the second duration are equal, the interpolation number being the number of times interpolation is performed on the first duration or the second duration; The corresponding duration is corrected according to the interpolation coefficient to synchronize the position path and the posture path of the fused path.
2. The method according to claim 1, characterized in that Before determining the fused path and the fourth path according to the first path, the second path, and the fused radius in the trajectory queue pool, the method further includes: Selecting a path from the trajectory queue pool as the first path; Executing the first path and obtaining the path length of the first path completed by execution; When the length of the path completed by executing the first path is greater than a preset parameter, a path is selected from the trajectory queue pool as the second path.
3. The method according to claim 1, characterized in that The determining of the third path according to the first path, the second path, and the fusion radius in the trajectory queue pool includes: determining a fusion path curve according to the first path, the second path, and the fusion radius; Integrating the fusion path curve to determine the fusion path length; determining the length of the third path according to the fusion radius, the fusion path length, and the length of the first path; wherein the length of the first path is calculated based on the starting point position, the ending point position, and the path type corresponding to the first path; updating the position of the first path end point according to the length of the third path and the maximum speed of the fused path end point to determine the third path; The maximum speed of the fusion path termination point is determined by the target speed, target acceleration, target jerk and the fusion radius corresponding to the second path.
4. The method according to claim 1, wherein The method further comprises: Performing position planning on the fusion path according to the position of the fusion path starting point and the position of the fusion path ending point to determine the position path; The posture path is determined according to the first path end point posture, the fusion path starting point posture and the fusion path end point posture.
5. The method according to claim 4, characterized in that The method further comprises: Determining a third duration required for the robot arm to execute a route between the endpoint posture of the first path and the posture of the starting point of the fused path, and a fourth duration required for the robot arm to execute a route between the endpoint posture of the first path and the posture of the fused path termination point; determining the number of segments of the gesture path based on the third duration, the fourth duration, and the first duration; Segmenting the posture path according to the number of segments, and determining the quaternion of each segment point; For each segment point, determining the angular displacement of the segment point according to the quaternion of the segment point; An angular displacement table is determined according to the angular displacement of each segment point, wherein the angular displacement table includes the angular displacement and the segment number corresponding to the angular displacement, and the segment number is used to determine the interpolation position of the angular displacement on the posture path.
6. The method according to claim 5, characterized in that In the case where the interpolation coefficient is the interpolation coefficient of the second duration and the fusion path is a gesture path, The correcting the corresponding duration according to the interpolation coefficient to synchronize the position path and the posture path of the fusion path includes: interpolating the second duration according to the interpolation coefficient of the second duration to obtain an interpolation angular displacement of the fusion path; The segment number of the interpolated angular displacement is determined based on the angular displacement table and the interpolated angular displacement, and the interpolated posture path is determined by linear fitting according to the segment number to synchronize the position and posture of the fused path.
7. A robotic arm posture synchronization device, characterized in that: include: a third path determination module, configured to determine a third path based on the first path, the second path, and the fusion radius in the trajectory queue pool, wherein the third path includes a fusion path and a fourth path; wherein the first path and the second path have an intersection point; the fourth path is a path in the first path that is not within the circular range corresponding to the fusion radius; and the fusion path is used to connect the fourth path and the second path; A starting point information determination module, configured to determine the starting point information of the fused path according to the third path; the starting point information includes a starting point velocity and a starting point acceleration; a duration determination module, configured to determine, based on an S-type planning algorithm and according to the starting point information and the ending point information of the fused path, a first duration and a second duration; the fused path including a position path and a posture path; the first duration being the duration required for the manipulator to execute the position path corresponding to the fused path, and the second duration being the duration required for the manipulator to execute the posture path corresponding to the fused path; the ending point information being calculated based on the second path and the fused radius; and the ending point information including an ending point velocity and an ending point acceleration; an interpolation coefficient determination module, configured to determine an interpolation coefficient based on a first duration and a second duration, the interpolation coefficient being used to adjust a number of interpolation times corresponding to the first duration or the second duration so that the first duration and the second duration are equal, the interpolation times being the number of times interpolation is performed on the first duration or the second duration; The synchronization module is used to correct the corresponding duration according to the interpolation coefficient so as to synchronize the position path and the posture path of the fusion path.
8. An electronic device, characterized in that: include: at least one processor; as well as a memory communicatively connected to the at least one processor; wherein, The memory stores a computer program that can be executed by the at least one processor, and the computer program is executed by the at least one processor so that the at least one processor can execute the robot arm posture synchronization method as described in any one of claims 1 to 6.
9. A computer-readable storage medium having a computer program stored thereon, characterized in that: When the program is executed by a processor, the robot arm posture synchronization method as described in any one of claims 1 to 6 is implemented.
10. A computer program product, characterized in that The computer program product comprises a computer program, which, when executed by a processor, implements the method for synchronizing the posture of a robotic arm as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Position and pose synchronizing method and device of transition route of mechanical arm
CN109773780A
Pose-synchronous six-axis industrial robot track smoothing method
CN110900612A