CN115091470B - Friction compensation model training method and device, electronic equipment and storage medium - Google Patents

Friction compensation model training method and device, electronic equipment and storage medium Download PDF

Info

Publication number
CN115091470B
CN115091470B CN202210993764.XA CN202210993764A CN115091470B CN 115091470 B CN115091470 B CN 115091470B CN 202210993764 A CN202210993764 A CN 202210993764A CN 115091470 B CN115091470 B CN 115091470B
Authority
CN
China
Prior art keywords
data
path
motion
range
training
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN202210993764.XA
Other languages
Chinese (zh)
Other versions
CN115091470A (en
Inventor
许泳
韩乐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Ji Hua Laboratory
Original Assignee
Ji Hua Laboratory
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ji Hua Laboratory filed Critical Ji Hua Laboratory
Priority to CN202210993764.XA priority Critical patent/CN115091470B/en
Publication of CN115091470A publication Critical patent/CN115091470A/en
Application granted granted Critical
Publication of CN115091470B publication Critical patent/CN115091470B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1641Programme controls characterised by the control loop compensation for backlash, friction, compliance, elasticity in the joints

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

The application belongs to the technical field of mechanical arm control, and discloses a friction compensation model training method, a device, electronic equipment and a storage medium, wherein the method comprises the following steps: collecting motion path data samples, specifically, randomly determining the type of a motion instruction, randomly generating motion path data within the reachable range of a corresponding mechanical arm according to the type of the motion instruction, and adding the motion path data into a training path data set as a sample; if the sample size and the sample data distribution of the training path data set meet a first preset condition, finishing the acquisition of the motion path data sample, otherwise, continuously acquiring the motion path data sample; training a friction compensation model by using the training path data set; therefore, the mechanical arm can traverse the working space of the mechanical arm to a higher degree in the process of training the friction compensation model, and the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.

Description

Friction compensation model training method and device, electronic equipment and storage medium
Technical Field
The application relates to the technical field of mechanical arm control, in particular to a friction compensation model training method and device, electronic equipment and a storage medium.
Background
In the motion process of the mechanical arm, the friction force needs to be compensated. The friction compensation model based on deep learning needs to acquire a data set (including a planning position, a feedback position, a planning speed, a feedback speed, a planning torque, a feedback torque and the like) corresponding to the motion trail of the mechanical arm for training. In the traditional method, a data set acquired by a specific path is trained, and the obtained friction compensation model only has a good compensation effect on the same path, and has a poor compensation effect on other paths, so that great errors exist in the motion of a mechanical arm. Therefore, a friction compensation model training method is required to be found, so that the friction compensation model traverses the working space of the mechanical arm as much as possible in the training process, and the trained friction compensation model has a good compensation effect when being applied to any path of the mechanical arm.
Disclosure of Invention
The application aims to provide a friction compensation model training method, a friction compensation model training device, electronic equipment and a storage medium, which can enable a mechanical arm to traverse a working space of the mechanical arm to a higher degree in a friction compensation model training process, so that the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.
In a first aspect, the present application provides a method for training a friction compensation model of a robot arm, including the steps of:
A1. acquiring motion path data samples, specifically comprising:
A101. randomly determining the type of the motion instruction;
A102. randomly generating motion path data according to the motion instruction type within the reach range of the corresponding mechanical arm, and adding the motion path data into a training path data set as a sample;
A2. if the sample size and the sample data distribution of the training path data set meet a first preset condition, executing the step A3, finishing the acquisition of the motion path data sample, and otherwise, returning to the step A1 to continue to acquire the motion path data sample;
A3. training the friction compensation model with the training path dataset.
According to the friction compensation model training method, when a sample is collected, motion instruction types are randomly specified, and motion path data are randomly generated within a corresponding reachable range according to different motion instruction types, so that a large enough training path data set is obtained.
Preferably, step a101 comprises:
generating a first pseudo-random number within a preset first value range;
determining a motion instruction type corresponding to the first pseudo random number according to a second numerical range to which the first pseudo random number belongs; the motion instruction type is a joint motion instruction, a linear motion instruction or an arc motion instruction.
In fact, the motion types of the mechanical arm mainly include joint motion, linear motion and circular motion, when a sample is collected, the motion type corresponding to the sample is randomly specified in the three motion types, so that the obtained training path data set comprises the motion paths of the three main motion types, and the mechanical arm traverses the main motion types in the training process, thereby further improving the applicability of the friction force compensation model obtained by training, and having a better compensation effect when applied to any path of the mechanical arm.
Preferably, the motion path data includes motion parameters of a plurality of path points, and the motion parameters of each path point include rotation angle data and rotation angular velocity data of each joint shaft of the mechanical arm;
if the motion instruction type is a joint motion instruction, the corresponding reachable range of the mechanical arm comprises a rotation angle range and a rotation angular speed range of each joint shaft of the mechanical arm;
step a102 includes:
B1. if the motion instruction type is a joint motion instruction, randomly generating first rotation angle data of each joint shaft corresponding to each first path point in the rotation angle range of each joint shaft of the mechanical arm aiming at a first preset number of first path points;
B2. randomly generating one piece of first rotation angular velocity data within the rotation angular velocity range of the corresponding joint axis for each piece of the first rotation angle data of each joint axis;
B3. taking the first rotation angle data and the first rotation angular velocity data of each joint shaft corresponding to the same first path point as first motion parameters of the first path point, and forming first motion path data by the first motion parameters of all the first path points;
B4. adding the first motion path data as a sample to the training path data set.
Preferably, if the motion instruction type is a linear motion instruction, the corresponding reachable range of the mechanical arm includes a tail end position range, a tail end posture range and a tail end speed range of the tail end of the mechanical arm;
step a102 includes:
C1. if the motion instruction type is a linear motion instruction, generating a second pseudo-random number;
C2. judging whether the tail end posture of the mechanical arm changes or not according to the second pseudo random number;
C3. randomly generating first position data of a second preset number of second path points within the terminal position range; all the second path points are on the same straight line;
C4. if the tail end posture of the mechanical arm is not changed, randomly generating a first tail end posture value in the tail end posture range, and setting the first tail end posture data of all the second path points as the first tail end posture value;
C5. if the tail end gesture of the mechanical arm changes, randomly generating first tail end gesture data of each second path point within the tail end gesture range;
C6. randomly generating first speed data of each second path point within the terminal speed range;
C7. calculating second rotation angle data and second rotation angular velocity data of each joint shaft corresponding to each second path point based on a mechanical arm kinematics inverse solution method according to the first position data, the first tail end attitude data and the first velocity data of each second path point;
C8. taking the second rotation angle data and the second rotation angular velocity data of each joint shaft corresponding to the same second path point as second motion parameters of the second path point, and forming second motion path data by the second motion parameters of all the second path points;
C9. adding the second motion path data as a sample to the training path data set.
Preferably, if the motion instruction type is an arc motion instruction, the corresponding reachable range of the mechanical arm includes a tail end position range, a tail end posture range and a tail end speed range of the tail end of the mechanical arm;
step a102 includes:
D1. if the motion instruction type is an arc motion instruction, generating a third pseudo-random number;
D2. judging whether the tail end posture of the mechanical arm changes or not according to the third pseudo random number;
D3. randomly generating second position data of a third preset number of third path points within the terminal position range; all the third path points are on the same circular arc line;
D4. if the tail end posture of the mechanical arm is not changed, randomly generating a second tail end posture value in the tail end posture range, and setting second tail end posture data of all the third path points as the second tail end posture value;
D5. if the tail end gesture of the mechanical arm changes, second tail end gesture data of each third path point are randomly generated in the tail end gesture range;
D6. randomly generating second speed data of each third path point within the terminal speed range;
D7. calculating third rotation angle data and third rotation angular velocity data of each joint shaft corresponding to each third path point based on a mechanical arm kinematics inverse solution method according to the second position data, the second tail end attitude data and the second velocity data of each third path point;
D8. taking the third rotation angle data and the third rotation angular velocity data of each joint shaft corresponding to the same third path point as third motion parameters of the third path point, and forming third motion path data by the third motion parameters of all the third path points;
D9. adding the third motion path data as a sample to the training path data set.
Preferably, the first preset condition is that: the sample size of the training path data set is not less than a sample size threshold, the distribution of the rotation angle data of each joint shaft meets a first distribution condition, and the distribution of the rotation angular velocity data of each joint shaft meets a second distribution condition;
the first distribution condition includes: the number of the rotating angle data of the same joint shaft distributed in each first angle range is not less than a first distribution number threshold; each first angle range is formed by dividing the rotation angle range of the joint shaft into equal parts;
the second distribution condition includes: the number of the rotating angular speed data of the same joint shaft distributed in each first angular speed range is not less than a second distribution number threshold; each first angular velocity range is formed by dividing the rotating angular velocity range of the joint shaft into equal parts.
Preferably, step A2 comprises:
obtaining a sample size of the training path dataset;
respectively taking each joint axis as a target axis, and acquiring the number of the rotation angle data of the target axis contained in the training path data set distributed in each corresponding first angle range, and recording the number as a first number; acquiring the quantity of the rotating angular speed data of the target axis contained in the training path data set distributed in each corresponding first angular speed range, and recording the quantity as a second quantity;
judging whether the sample size is not less than the sample size threshold, judging whether the first quantity of each target axis is not less than the first distribution quantity threshold, and judging whether the second quantity of each target axis is not less than the second distribution quantity threshold;
if the sample size is not smaller than the sample size threshold, the first number of all the target axes is not smaller than the first distribution number threshold, and the second number of all the target axes is not smaller than the second distribution number threshold, ending the collection of the motion path data samples, executing the step A3, otherwise, returning to the step A1 to continue collecting the motion path data samples.
By limiting the sample size, the training path data set can be ensured to be large enough, the friction compensation model can be trained sufficiently, the rotating angle data of each joint shaft can be ensured to fully traverse the rotating angle range and the rotating angular velocity range by limiting the distribution quantity of the rotating angle data of each joint shaft in each first angular velocity range and limiting the distribution quantity of the rotating angular velocity data of each joint shaft in each first angular velocity range, and the working space degree of the traversing mechanical arm can be further improved, so that the applicability of the friction compensation model can be further improved.
In a second aspect, the present application provides a friction compensation model training device for training a friction compensation model of a robot arm, including:
the sample collection module is used for collecting motion path data samples, and specifically comprises:
randomly determining the type of the motion instruction;
randomly generating motion path data according to the motion instruction type within the reach range of the corresponding mechanical arm, and adding the motion path data into a training path data set as a sample;
the first execution module is used for finishing the acquisition of the motion path data sample when the sample size and the sample data distribution of the training path data set meet a first preset condition, and enabling the sample acquisition module to execute the functional operation again to continue to acquire the motion path data sample when the sample size and the sample data distribution of the training path data set do not meet the first preset condition;
and the training model is used for training the friction compensation model by using the training path data set when the acquisition of the motion path data sample is finished.
When the friction compensation model is trained by using the training path data set, the mechanical arm can traverse the working space of the mechanical arm to a higher degree, so that the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.
In a third aspect, the present application provides an electronic device, comprising a processor and a memory, where the memory stores a computer program executable by the processor, and the processor executes the computer program to perform the steps of the friction compensation model training method as described above.
In a fourth aspect, the present application provides a storage medium having stored thereon a computer program which, when being executed by a processor, performs the steps of the friction compensation model training method as described above.
Has the advantages that:
the application provides a friction compensation model training method, a device, electronic equipment and a storage medium, when a sample is collected, a motion instruction type is randomly designated, motion path data are randomly generated in a corresponding reachable range according to different motion instruction types, so that a large enough training path data set is obtained, when the friction compensation model is trained by using the training path data set, the mechanical arm can traverse the working space of the mechanical arm to a higher degree, and the trained friction compensation model has a better compensation effect when applied to any path of the mechanical arm.
Drawings
Fig. 1 is a flowchart of a friction compensation model training method according to an embodiment of the present disclosure.
Fig. 2 is a schematic structural diagram of a friction compensation model training device according to an embodiment of the present application.
Fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present application.
Detailed Description
The technical solutions in the embodiments of the present application will be clearly and completely described below with reference to the drawings in the embodiments of the present application, and it is obvious that the described embodiments are only some embodiments of the present application, and not all embodiments. The components of the embodiments of the present application, as generally described and illustrated in the figures herein, could be arranged and designed in a wide variety of different configurations. Thus, the following detailed description of the embodiments of the present application, presented in the accompanying drawings, is not intended to limit the scope of the claimed application, but is merely representative of selected embodiments of the application. All other embodiments, which can be derived by a person skilled in the art from the embodiments of the present application without making any creative effort, shall fall within the protection scope of the present application.
It should be noted that: like reference numbers and letters refer to like items in the following figures, and thus, once an item is defined in one figure, it need not be further defined or explained in subsequent figures. Meanwhile, in the description of the present application, the terms "first", "second", and the like are used only for distinguishing the description, and are not construed as indicating or implying relative importance.
Referring to fig. 1, fig. 1 is a method for training a friction compensation model of a robot arm according to some embodiments of the present disclosure, including:
A1. acquiring motion path data samples, specifically comprising:
A101. randomly determining the type of the motion instruction;
A102. randomly generating motion path data according to the motion instruction type within the reach range of the corresponding mechanical arm, and adding the motion path data into a training path data set as a sample;
A2. if the sample size and the sample data distribution of the training path data set meet first preset conditions, finishing the acquisition of the motion path data samples, executing the step A3, and otherwise, returning to the step A1 to continue acquiring the motion path data samples;
A3. the friction compensation model is trained using the training path dataset.
According to the friction compensation model training method, when a sample is collected, the motion instruction type is randomly specified, and the motion path data is randomly generated in the corresponding reachable range according to different motion instruction types, so that a large enough training path data set is obtained.
In this embodiment, step a101 includes:
generating a first pseudo-random number within a preset first value range;
determining the motion instruction type corresponding to the first pseudo random number according to the second numerical range of the first pseudo random number; the motion command type is a joint motion command, a linear motion command or an arc motion command.
In fact, the motion types of the mechanical arm mainly include joint motion, linear motion and circular motion, when samples are collected, the motion types corresponding to the samples are randomly assigned in the three motion types, so that the obtained training path data set comprises the motion paths of the three main motion types, and the mechanical arm traverses the main motion types in the training process, thereby further improving the applicability of the friction compensation model obtained by training, and having better compensation effect when being applied to any path of the mechanical arm.
The second numerical range is a numerical range formed by dividing the first numerical range into three parts, the first numerical range can be set according to actual needs, and the first numerical range can be divided according to actual needs after being set to obtain the second numerical range. For example, the first numerical range is [0,1], and the divided three second numerical ranges are [0, 0.3), [0.3, 0.8), [0.8,1], where the second numerical range [0, 0.3) corresponds to the joint motion command, the second numerical range [0.3, 0.8) corresponds to the linear motion command, and the second numerical range [0.8,1] corresponds to the circular motion command; when the first pseudo-random number falls into a second numerical range [0, 0.3), determining that the motion instruction type corresponding to the first pseudo-random number is an articulation instruction; when the first pseudo random number falls into a second numerical value range [0.3, 0.8), determining that the motion instruction type corresponding to the first pseudo random number is a linear motion instruction; when the first pseudo-random number falls into a second numerical value range [0.8,1], determining that the motion instruction type corresponding to the first pseudo-random number is an arc motion instruction; the first numerical range and the second numerical range are not limited thereto.
Among them, a method of generating a pseudo random number is a prior art, and a detailed description thereof will not be given here.
For example, a positive integer may be randomly generated within a second numerical value range (which may be set according to actual needs), then a remainder is obtained by dividing the randomly generated positive integer by three, and a motion instruction type corresponding to the randomly generated positive integer is determined according to the remainder (for example, if the remainder is 1, the motion instruction type is a joint motion instruction, if the remainder is 2, the motion instruction type is a linear motion instruction, and if the remainder is 0, the motion instruction type is an arc motion instruction).
In this embodiment, the motion path data includes motion parameters of a plurality of path points, and the motion parameters of each path point include rotation angle data and rotation angular velocity data of each joint axis of the robot arm. For example, if the robot arm is a six-axis robot arm, the motion parameter of each path point includes six rotation angle data and six rotation angular velocity data, the six rotation angle data are rotation angle data of six joint axes respectively, and the six rotation angular velocity data are rotation angular velocity data of six joint axes respectively.
Specifically, if the motion instruction type is a joint motion instruction, the corresponding mechanical arm reachable range includes a rotation angle range and a rotation angular velocity range of each joint shaft of the mechanical arm; for example, if a joint axis is rotatable within a range of-90 ° to 90 ° and within an angular velocity range of 0 °/s to 20 °/s, the rotational angle range is [ -90 °, 90 ° ], and the rotational angular velocity range is [0 °/s,20 °/s ].
Further, step a102 includes:
B1. if the motion instruction type is a joint motion instruction, randomly generating first rotation angle data of each joint axis corresponding to each first path point within a rotation angle range of each joint axis of the mechanical arm for a first preset number of first path points (for convenience of description, the rotation angle data corresponding to each first path point is referred to as first rotation angle data);
B2. for each first rotation angle data of each joint axis, randomly generating one first rotation angular velocity data within the rotation angular velocity range of the corresponding joint axis (for convenience of description, the rotation angular velocity data corresponding to the first path point is referred to as first rotation angular velocity data);
B3. taking first rotation angle data and first rotation angular velocity data of each joint shaft corresponding to the same first path point as first motion parameters of the first path point, and forming first motion path data by the first motion parameters of all the first path points;
B4. the first motion path data is added as a sample to the training path data set.
Specifically, if the motion command type is a linear motion command, the corresponding robot arm reachable range includes a terminal position range of the robot arm terminal (i.e., a range of positions reachable by the robot arm terminal, which can be measured in advance), a terminal attitude range (i.e., a range of attitude angles reachable by the robot arm terminal, which can be measured in advance), and a terminal velocity range (i.e., a range of moving velocities reachable by the robot arm terminal, which can be measured in advance).
Further, step a102 includes:
C1. if the motion instruction type is a linear motion instruction, generating a second pseudo-random number;
C2. judging whether the tail end posture of the mechanical arm changes or not according to the second pseudo random number;
C3. randomly generating first position data of a second preset number (which can be set according to actual needs) of second path points in the tail end position range (namely generating the first position data of the second preset number, wherein the first position data are respectively the first position data of the second path points of the second preset number; all the second path points are on the same straight line;
C4. if the tail end posture of the mechanical arm is not changed, randomly generating a first tail end posture value in the tail end posture range, and setting first tail end posture data of all second path points (for convenience of description, the posture data of the tail end of the mechanical arm corresponding to the second path points are called as first tail end posture data) as the first tail end posture value;
C5. if the tail end attitude of the mechanical arm changes, randomly generating first tail end attitude data of each second path point within the tail end attitude range;
C6. randomly generating first speed data of each second path point in the terminal speed range (for convenience of description, the moving speed of the tail end of the mechanical arm corresponding to the second path point is called as first speed data);
C7. calculating second rotation angle data and second rotation angular velocity data of each joint shaft corresponding to each second path point based on a mechanical arm kinematics inverse solution method according to the first position data, the first tail end attitude data and the first velocity data of each second path point (for convenience of description, the rotation angle data and the rotation angular velocity data of each joint shaft corresponding to each second path point are respectively called as second rotation angle data and second rotation angular velocity data);
C8. taking the second rotation angle data and the second rotation angular velocity data of each joint shaft corresponding to the same second path point as second motion parameters of the second path point (for convenience of description, the motion parameters corresponding to the second path point are referred to as second motion parameters), and forming second motion path data by the second motion parameters of all the second path points;
C9. the second motion path data is added as a sample to the training path data set.
For example, a second pseudo random number may be generated within a preset fourth numerical range, and whether the robot arm tip attitude has changed may be determined based on a fifth numerical range to which the second pseudo random number belongs. The fifth numerical range is obtained by dividing the fourth numerical range in equal parts, the two fifth numerical ranges respectively correspond to the situation that the posture of the tail end of the mechanical arm changes and does not change, and the fourth numerical range can be set according to actual needs. For example, if the fourth numerical range is [0,1], the two fifth numerical ranges are [0,0.5 ] and [0.5,1], respectively, if the second pseudo-random number falls within the fifth numerical range [0,0.5 ], the posture of the end of the robot arm is determined to be changed, and if the second pseudo-random number falls within the fifth numerical range [0.5,1], the posture of the end of the robot arm is determined not to be changed; however, the fourth numerical range is not limited thereto, and the correspondence between the two fifth numerical ranges and the robot arm tip attitude changes and does not change is not limited thereto.
In some embodiments, step C3 comprises:
randomly generating first reference position data of a second preset number of first position points in the end position range (for convenience of description, the position data corresponding to the first position points is referred to as first reference position data);
a straight line passing through two of the first position points is taken as a first straight line, a projection point of each first position point on the first straight line is taken as a second path point, and first position data of each second path point is calculated according to first reference position data of each first position point (the specific calculation method is the prior art, and details thereof are not described here).
In other embodiments, step C3 comprises:
randomly generating first start point position data of a first start point and first end point position data of a first end point within the end position range;
generating first position data of a second preset number of second path points according to the first starting point position data and the first end point position data; all the second path points are on the same straight line passing through the first start point and the first end point.
For example, a first start point may be set as a first second path point, a first end point may be set as a last second path point, and equal division points of a connection line of the first start point and the first end point (for convenience of distinction from other equal division points, the equal division points are hereinafter referred to as first equal division points) may be set as other second path points (the number of the first equal division points is equal to a second preset number minus 2), and position data of each first equal division point is calculated from the first start point position data and the first end point position data, thereby obtaining first position data of the second preset number of second path points (the first position data of the first second path point is equal to the first start point position data, the first position data of the last second path point is equal to the first end point position data, and the first position data of the other second path points is equal to the position data of the corresponding first equal division points). The speed of generating the first position data of the second path point in this way is fast.
Furthermore, no matter which way is adopted to generate the first position data of the second path point, part of the obtained second path points may be located outside the end position range; for this purpose, step C3 may further comprise:
judging whether each second path point is in the end position range or not according to the first position data of each second path point;
if not, deleting the first position data of the corresponding second path point and supplementing the first position data of the new second path point by an interpolation mode (performing interpolation according to the first position data of the second path point in the end position range, wherein the specific interpolation method is the prior art, and the detailed description is not provided here).
Thereby, it is advantageous to ensure that all second path points are reachable.
In practical application, after the first speed data of each second path point is randomly generated, the deviation between the first speed data of adjacent second path points may be too large, and the tail end of the mechanical arm needs to have a sufficiently large acceleration, so that the mechanical arm may not provide a sufficient acceleration during training; thus, in some preferred embodiments, step C6 comprises:
randomly generating a second preset number of first speed data in the terminal speed range, and distributing the first speed data to each second path point (which can be distributed sequentially in sequence or randomly);
and sequentially calculating the absolute value deviation of the first speed data of each second path point and the previous second path point from the second path point, and adjusting the current first speed data of the second path point when the absolute value deviation between the current second path point and the previous second path point exceeds a preset deviation threshold (set according to the actual performance of the mechanical arm) so that the absolute value deviation does not exceed the preset deviation threshold.
Thus, on the one hand, the randomness of the first speed data of each second path point is ensured, and on the other hand, the acceleration requirement among the second path points is ensured to be satisfied by the mechanical arm.
The inverse kinematics solution method of the mechanical arm is the prior art, and the detailed description thereof is omitted here.
Preferably, before step C9, it may be further checked by a simulation program whether the motion path corresponding to the second motion path data is reachable, and if yes, step C9 is executed. And enabling the virtual mechanical arm to move according to the second motion path data in the simulation program, so as to detect whether the virtual mechanical arm exceeds a working space and detect whether singular points exist in the path, if the virtual mechanical arm does not exceed the working space and does not have the singular points, judging that the motion path corresponding to the second motion path data is accessible, and otherwise, judging that the motion path corresponding to the second motion path data is inaccessible.
Further, if the motion path corresponding to the second motion path data is unreachable, discarding the second motion path data, and re-executing the steps C1-C8 according to the end position range narrowed down by a preset ratio (which can be set according to actual requirements), to obtain new second motion path data, if the motion path corresponding to the new second motion path data is still unreachable, discarding the new second motion path data, and after changing the motion instruction type of the current motion path data sample collection process into a joint motion instruction, re-collecting the current motion path data sample.
Specifically, if the motion instruction type is an arc motion instruction, the corresponding mechanical arm reachable range includes a tail end position range, a tail end posture range and a tail end speed range of the tail end of the mechanical arm;
step a102 includes:
D1. if the motion instruction type is an arc motion instruction, generating a third pseudo-random number;
D2. judging whether the tail end posture of the mechanical arm changes or not according to the third pseudo random number;
D3. randomly generating second position data of a third preset number (which can be set according to actual needs) of third path points within the tail end position range (namely generating second position data of the third preset number, wherein the second position data are respectively second position data of the third preset number of third path points; all the third path points are on the same circular arc line;
D4. if the tail end posture of the mechanical arm is not changed, randomly generating a second tail end posture value in the tail end posture range, and setting second tail end posture data of all third path points (for convenience of description, the posture data of the tail end of the mechanical arm corresponding to the third path points are called as second tail end posture data) as the second tail end posture value;
D5. if the tail end attitude of the mechanical arm changes, second tail end attitude data of each third path point is randomly generated in the tail end attitude range;
D6. randomly generating second speed data of each third path point in the terminal speed range (for convenience of description, the moving speed of the mechanical arm terminal corresponding to the third path point is called as second speed data);
D7. calculating third rotation angle data and third rotation angular velocity data of each joint shaft corresponding to each third path point based on a mechanical arm kinematics inverse solution method according to the second position data, the second end attitude data and the second velocity data of each third path point (for convenience of description, the rotation angle data and the rotation angular velocity data of each joint shaft corresponding to each third path point are respectively called as third rotation angle data and third rotation angular velocity data);
D8. taking the third rotation angle data and the third rotation angular velocity data of each joint shaft corresponding to the same third path point as third motion parameters of the third path point (for convenience of description, the motion parameters corresponding to the third path point are referred to as third motion parameters), and forming third motion path data by the third motion parameters of all the third path points;
D9. the third motion path data is added as a sample to the training path data set.
For example, a third pseudo random number may be generated within a preset sixth numerical range, and whether the posture of the end of the robot arm changes or not may be determined according to a seventh numerical range to which the third pseudo random number belongs. The seventh numerical range is obtained by dividing the sixth numerical range into two halves, the two seventh numerical ranges respectively correspond to the conditions that the posture of the tail end of the mechanical arm is changed and not changed, and the sixth numerical range can be set according to actual needs. For example, if the sixth numerical range is [0,1], then the two seventh numerical ranges are [0,0.5 ] and [0.5,1], respectively, if the third pseudo random number falls within the seventh numerical range [0,0.5 ], then the pose of the end of the robot is determined to be changed, and if the third pseudo random number falls within the seventh numerical range [0.5,1], then the pose of the end of the robot is determined not to be changed; however, the sixth numerical range is not limited thereto, and the correspondence between the two seventh numerical ranges and the robot arm tip attitude changes and does not change is not limited thereto.
In some embodiments, step D3 comprises:
randomly generating second reference position data of a third preset number of second position points in the end position range (for convenience of description, the position data corresponding to the second position points is referred to as second reference position data);
taking a circumferential line passing through three non-collinear second position points as a first circumferential line, taking a projection point of each second position point on the first circumferential line as a third path point, and calculating second position data of each third path point according to second reference position data of each second position point (the specific calculation method is prior art, and details thereof are not described here).
In other embodiments, step D3 comprises:
randomly generating second starting point position data of a second starting point, second end point position data of a second end point and transition point position data of a transition point in the end position range;
generating second position data of third path points of a third preset number according to the second starting point position data, the second end point position data and the transition point position data; all the third path points are on the same circular arc line, and the circular arc line passes through the second starting point, the transition point and the second end point.
For example, the second starting point may be set as the first third path point, the second end point may be set as the last third path point, and the divided points of equal parts of a circular arc line extending from the second starting point to the second end point through the transition point (for convenience of distinction from the other divided points, the divided points are hereinafter referred to as the second divided points) may be set as the other third path points (the number of the second divided points is equal to the third preset number minus 2), and the position data of each of the second divided points may be calculated from the second starting point position data and the second end point position data, thereby obtaining the second position data of the third preset number of the third path points (the second position data of the first third path point is equal to the second starting point position data, the second position data of the last third path point is equal to the second end point position data, and the second position data of the other third path points is equal to the position data of the corresponding second divided points). The second position data of the third path point is generated at a high speed in this way.
Further, no matter which of the above-mentioned manners is adopted to generate the second position data of the third path points, some of the obtained third path points may be located outside the end position range; to this end, step D3 may further include:
judging whether each third path point is in the end position range or not according to the second position data of each third path point;
if not, deleting the second position data of the corresponding third path point and supplementing the second position data of the new third path point by an interpolation mode (performing interpolation according to the second position data of the third path point in the end position range, wherein the specific interpolation method is the prior art, and the detailed description thereof is omitted here).
Thus, it is advantageous to ensure that all third path points are reachable.
In practical application, after the second speed data of each third path point is randomly generated, the deviation between the second speed data of adjacent third path points may be too large, and the tail end of the mechanical arm needs to have a sufficiently large acceleration, so that the mechanical arm may not provide a sufficient acceleration during training; thus, in some preferred embodiments, step D6 comprises:
randomly generating a third preset number of second speed data in the terminal speed range, and distributing the second speed data to each third path point (which can be distributed sequentially according to the sequence or distributed randomly);
and sequentially calculating the absolute value deviation of the second speed data of each third path point and the previous third path point from the second third path point, and adjusting the current second speed data of the third path point when the absolute value deviation between the current third path point and the previous third path point exceeds a preset deviation threshold (set according to the actual performance of the mechanical arm) so that the absolute value deviation does not exceed the preset deviation threshold.
Therefore, on one hand, randomness of the second speed data of each third path point is guaranteed, and on the other hand, acceleration requirements among the third path points are guaranteed to be met by the mechanical arm.
Preferably, before step D9, it may be further checked by the simulation program whether the motion path corresponding to the third motion path data is reachable, and if so, step D9 is executed. And enabling the virtual mechanical arm to move according to the third motion path data in the simulation program, so as to detect whether the virtual mechanical arm exceeds a working space and detect whether singular points exist in the path, if the virtual mechanical arm does not exceed the working space and does not have the singular points, judging that the motion path corresponding to the third motion path data is accessible, and otherwise, judging that the motion path corresponding to the third motion path data is inaccessible.
Further, if the motion path corresponding to the third motion path data is unreachable, the third motion path data is discarded, and the steps D1-D8 are executed again according to the end position range reduced according to the preset proportion (which can be set according to actual needs), so as to obtain new third motion path data, if the motion path corresponding to the new third motion path data is still unreachable, the new third motion path data is discarded, and the motion instruction type in the current motion path data sample collection process is changed into a joint motion instruction, so as to collect the current motion path data sample again.
In some embodiments, the first preset condition is: the sample size (i.e. the number of samples) of the training path data set is not less than a sample size threshold (which can be set according to actual needs), the distribution of the rotation angle data of each joint axis satisfies the first distribution condition, and the distribution of the rotation angular velocity data of each joint axis satisfies the second distribution condition.
The first distribution condition comprises: the number of the rotation angle data of the same joint shaft distributed in each first angle range is not less than a first distribution number threshold (which can be set according to implementation requirements); each first angle range is formed by dividing the rotation angle range of the joint shaft into equal parts (the specific divided parts can be set according to actual requirements). For example, the threshold value of the first distribution number is n1, the rotation angle range of a certain joint axis is [ a1, a10], the first angle range divided equally includes [ a1, a 2), [ a2, a3 ] \8230 \ 8230 [ [ a9, a10], in the rotation angle data of the joint axis, the number of the rotation angle data falling into [ a1, a2 ] is m1, the number of the rotation angle data falling into [ a2, a3 ] is m2 \8230 \ 8230, and the number of the rotation angle data falling into [ a9, a10] is m10, and it is determined that the distribution of the rotation angle data of the joint axis satisfies the first distribution condition only when m1, m2 \8230 \ 8230; m10 is not less than n 1.
The second distribution condition includes: the number of the rotating angular speed data of the same joint shaft distributed in each first angular speed range is not less than a second distribution number threshold (which can be set according to implementation requirements); each first angular velocity range is formed by dividing the rotating angular velocity range of the joint shaft into equal parts (the specific number of divided parts can be set according to actual needs). For example, the threshold value of the second distribution number is n2, the range of the rotational angular velocity of a certain joint axis is [ b1, b10], and the equally divided first angular velocity range includes [ b1, b 2), [ b2, b3 ] \8230, 8230, and [ b9, b10], and in the rotational angular velocity data of the joint axis, the number of the rotational angular velocity data falling into [ b1, b 2) is k1, the number of the rotational angular velocity data falling into [ b2, b 3) is k2 \8230, and the number of the rotational angular velocity data falling into [ b9, b10] is k10, it is determined that the distribution of the rotational angular velocity data of the joint axis satisfies the second distribution condition only when k1, k2 \8230, and k10 is not less than n 2.
Further, step A2 includes:
acquiring a sample size of a training path data set;
respectively taking each joint axis as a target axis, and acquiring the number of the rotation angle data of the target axis contained in the training path data set distributed in each corresponding first angle range, and recording the number as a first number; acquiring the number of the rotating angular speed data of the target shaft contained in the training path data set distributed in each corresponding first angular speed range, and recording the number as a second number;
judging whether the sample size is not less than a sample size threshold value or not, judging whether the first number of each target axis is not less than a first distribution number threshold value or not, and judging whether the second number of each target axis is not less than a second distribution number threshold value or not;
and if the sample size is not less than the sample size threshold, the first quantity of all the target axes is not less than the first distribution quantity threshold, and the second quantity of all the target axes is not less than the second distribution quantity threshold, ending the acquisition of the motion path data sample, and executing the step A3, otherwise, returning to the step A1 to continue to acquire the motion path data sample.
By limiting the sample size, the training path data set can be ensured to be large enough, the friction compensation model can be trained sufficiently, the rotating angle data of each joint shaft can be ensured to fully traverse the rotating angle range and the rotating angular velocity range by limiting the distribution quantity of the rotating angle data of each joint shaft in each first angular velocity range and limiting the distribution quantity of the rotating angular velocity data of each joint shaft in each first angular velocity range, and the working space degree of the traversing mechanical arm can be further improved, so that the applicability of the friction compensation model can be further improved.
Specifically, in step A3, after the collection of the motion path data samples is finished, the friction compensation model is trained using the collected training path data set. The training can be performed by using the existing training method, and the details are not described here.
In the method for training the friction compensation model, when a sample is collected, a motion instruction type is determined randomly by collecting a motion path data sample, motion path data is generated randomly within the reachable range of the corresponding mechanical arm according to the motion instruction type, and the motion path data is added into a training path data set as a sample; if the sample size and the sample data distribution of the training path data set meet a first preset condition, finishing the acquisition of the motion path data sample, otherwise, continuously acquiring the motion path data sample; when the collection of the motion path data sample is finished, the friction compensation model is trained by the training path data set; therefore, the mechanical arm can traverse the working space of the mechanical arm to a higher degree in the process of training the friction compensation model, and the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.
In a second aspect, the present application provides a friction compensation model training device for training a friction compensation model of a robot arm, including:
the sample collection module 1 is configured to collect a motion path data sample, and specifically includes:
randomly determining the type of the motion instruction;
randomly generating motion path data within the reachable range of the corresponding mechanical arm according to the type of the motion instruction, and adding the motion path data into a training path data set as a sample;
the first execution module 2 is used for finishing the acquisition of the motion path data sample when the sample size and the sample data distribution of the training path data set meet a first preset condition, and enabling the sample acquisition module to execute the functional operation again to continue to acquire the motion path data sample when the sample size and the sample data distribution of the training path data set do not meet the first preset condition;
and the training model 3 is used for training the friction compensation model by using the training path data set when the acquisition of the motion path data sample is finished.
When the friction compensation model is trained by using the training path data set, the mechanical arm can traverse the working space of the mechanical arm to a higher degree, so that the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.
In this embodiment, when randomly determining the type of the motion instruction, the sample acquisition module 1 executes:
generating a first pseudo-random number within a preset first numerical range;
determining the motion instruction type corresponding to the first pseudo random number according to the second numerical range of the first pseudo random number; the motion command type is a joint motion command, a linear motion command or an arc motion command.
In fact, the motion types of the mechanical arm mainly include joint motion, linear motion and circular motion, when samples are collected, the motion types corresponding to the samples are randomly assigned in the three motion types, so that the obtained training path data set comprises the motion paths of the three main motion types, and the mechanical arm traverses the main motion types in the training process, thereby further improving the applicability of the friction compensation model obtained by training, and having better compensation effect when being applied to any path of the mechanical arm.
The second numerical range is a numerical range formed by dividing the first numerical range into three parts, the first numerical range can be set according to actual needs, and the first numerical range can be divided according to actual needs after being set to obtain the second numerical range. For example, the first numerical range is [0,1], and the three divided second numerical ranges are [0, 0.3), [0.3,0.8 ], and [0.8,1], respectively, wherein the second numerical range [0, 0.3) corresponds to the joint motion command, the second numerical range [0.3, 0.8) corresponds to the linear motion command, and the second numerical range [0.8,1] corresponds to the circular motion command; when the first pseudo-random number falls into a second numerical range [0, 0.3), determining that the motion instruction type corresponding to the first pseudo-random number is an articulation instruction; when the first pseudo random number falls into a second numerical value range [0.3, 0.8), determining that the motion instruction type corresponding to the first pseudo random number is a linear motion instruction; when the first pseudo random number falls into a second numerical value range [0.8,1], determining that the motion instruction type corresponding to the first pseudo random number is an arc motion instruction; the first numerical range and the second numerical range are not limited thereto.
The method of generating pseudo random numbers is prior art, and will not be described in detail here.
For example, a positive integer may be randomly generated within a second numerical value range (which may be set according to actual needs), then a remainder may be obtained by dividing the randomly generated positive integer by three, and a motion instruction type corresponding to the randomly generated positive integer may be determined according to the remainder (for example, if the remainder is 1, the motion instruction type is an articulation instruction, if the remainder is 2, the motion instruction type is a linear motion instruction, and if the remainder is 0, the motion instruction type is an arc motion instruction).
In this embodiment, the motion path data includes motion parameters of a plurality of path points, and the motion parameters of each path point include rotation angle data and rotation angular velocity data of each joint axis of the robot arm. For example, if the robot arm is a six-axis robot arm, the motion parameter of each path point includes six rotation angle data and six rotation angular velocity data, the six rotation angle data are rotation angle data of six joint axes respectively, and the six rotation angular velocity data are rotation angular velocity data of six joint axes respectively.
Specifically, if the motion instruction type is a joint motion instruction, the corresponding mechanical arm reachable range includes a rotation angle range and a rotation angular velocity range of each joint shaft of the mechanical arm; for example, if a joint axis is rotatable within a range of-90 ° to 90 ° and within an angular velocity range of 0 °/s to 20 °/s, the rotational angle range is [ -90 °, 90 ° ], and the rotational angular velocity range is [0 °/s,20 °/s ].
Furthermore, when the sample collection module 1 randomly generates motion path data within the reachable range of the corresponding mechanical arm according to the motion instruction type and adds the motion path data as a sample into the training path data set, the following steps are executed:
B1. if the motion instruction type is a joint motion instruction, randomly generating first rotation angle data of each joint axis corresponding to each first path point within a rotation angle range of each joint axis of the manipulator for a first preset number of first path points (which can be set according to actual needs) (here, for convenience of description, the rotation angle data corresponding to the first path points are referred to as first rotation angle data;
B2. for each first rotation angle data of each joint axis, randomly generating one first rotation angular velocity data within the rotation angular velocity range of the corresponding joint axis (for convenience of description, the rotation angular velocity data corresponding to the first path point is referred to as first rotation angular velocity data);
B3. taking first rotation angle data and first rotation angular velocity data of each joint shaft corresponding to the same first path point as first motion parameters of the first path point, and forming first motion path data by the first motion parameters of all the first path points;
B4. the first motion path data is added as a sample to the training path data set.
Specifically, if the motion command type is a linear motion command, the corresponding robot arm reachable range includes a terminal position range of the robot arm terminal (i.e., a range of positions reachable by the robot arm terminal, which can be measured in advance), a terminal attitude range (i.e., a range of attitude angles reachable by the robot arm terminal, which can be measured in advance), and a terminal velocity range (i.e., a range of moving velocities reachable by the robot arm terminal, which can be measured in advance).
Furthermore, when the sample acquisition module 1 randomly generates motion path data within the reach range of the corresponding mechanical arm according to the motion instruction type and adds the motion path data as a sample into the training path data set, the following steps are executed:
C1. if the motion instruction type is a linear motion instruction, generating a second pseudo-random number;
C2. judging whether the tail end posture of the mechanical arm changes or not according to the second pseudo random number;
C3. randomly generating first position data of a second preset number (which can be set according to actual needs) of second path points in the tail end position range (namely generating the first position data of the second preset number, wherein the first position data are respectively the first position data of the second path points of the second preset number; all the second path points are on the same straight line;
C4. if the tail end posture of the mechanical arm is not changed, randomly generating a first tail end posture value in the tail end posture range, and setting first tail end posture data of all second path points (for convenience of description, the posture data of the tail end of the mechanical arm corresponding to the second path points are called as first tail end posture data) as the first tail end posture value;
C5. if the tail end gesture of the mechanical arm changes, randomly generating first tail end gesture data of each second path point in the tail end gesture range;
C6. randomly generating first speed data of each second path point in the terminal speed range (for convenience of description, the moving speed of the tail end of the mechanical arm corresponding to the second path point is called as the first speed data);
C7. calculating second rotation angle data and second rotation angular velocity data of each joint shaft corresponding to each second path point based on a mechanical arm kinematics inverse solution method according to the first position data, the first tail end attitude data and the first velocity data of each second path point (for convenience of description, the rotation angle data and the rotation angular velocity data of each joint shaft corresponding to each second path point are respectively called as second rotation angle data and second rotation angular velocity data);
C8. taking the second rotation angle data and the second rotation angular velocity data of each joint shaft corresponding to the same second path point as second motion parameters of the second path point (for convenience of description, the motion parameters corresponding to the second path point are referred to as second motion parameters), and forming second motion path data by the second motion parameters of all the second path points;
C9. the second motion path data is added as a sample to the training path data set.
For example, a second pseudo random number may be generated within a preset fourth numerical range, and whether the posture of the end of the robot arm changes or not may be determined according to a fifth numerical range to which the second pseudo random number belongs. The fifth numerical range is obtained by dividing the fourth numerical range in equal parts, the two fifth numerical ranges respectively correspond to the conditions that the posture of the tail end of the mechanical arm is changed and not changed, and the fourth numerical range can be set according to actual needs. For example, if the fourth numerical range is [0,1], then the two fifth numerical ranges are [0,0.5 ] and [0.5,1], respectively, if the second pseudo random number falls within the fifth numerical range [0,0.5 ], then the pose of the end of the robot is determined to be changed, and if the second pseudo random number falls within the fifth numerical range [0.5,1], then the pose of the end of the robot is determined not to be changed; however, the fourth numerical range is not limited thereto, and the correspondence between the two fifth numerical ranges and the robot arm tip attitude changes and does not change is not limited thereto.
In some embodiments, step C3 comprises:
randomly generating first reference position data of a second preset number of first position points in the end position range (for convenience of description, the position data corresponding to the first position points is referred to as first reference position data);
a straight line passing through two of the first position points is taken as a first straight line, a projection point of each first position point on the first straight line is taken as a second path point, and first position data of each second path point is calculated according to first reference position data of each first position point (the specific calculation method is the prior art, and details thereof are not described here).
In other embodiments, step C3 comprises:
randomly generating first start point position data of a first start point and first end point position data of a first end point within the end position range;
generating first position data of a second preset number of second path points according to the first starting point position data and the first end point position data; all the second path points are on the same straight line passing through the first start point and the first end point.
For example, a first start point may be set as a first second path point, a first end point may be set as a last second path point, and equal division points of a connection line of the first start point and the first end point (for convenience of distinction from other equal division points, the equal division points are hereinafter referred to as first equal division points) may be set as other second path points (the number of the first equal division points is equal to a second preset number minus 2), and position data of each first equal division point is calculated from the first start point position data and the first end point position data, thereby obtaining first position data of the second preset number of second path points (the first position data of the first second path point is equal to the first start point position data, the first position data of the last second path point is equal to the first end point position data, and the first position data of the other second path points is equal to the position data of the corresponding first equal division points). The first position data of the second path point is generated at a high speed in this way.
Furthermore, no matter which way is adopted to generate the first position data of the second path point, part of the obtained second path points may be located outside the end position range; for this purpose, step C3 may further comprise:
judging whether each second path point is in the end position range or not according to the first position data of each second path point;
if not, deleting the first position data of the corresponding second path point and supplementing the first position data of the new second path point by an interpolation mode (performing interpolation according to the first position data of the second path point in the end position range, wherein the specific interpolation method is the prior art, and the detailed description is not provided here).
Thereby, it is advantageous to ensure that all second path points are reachable.
In practical application, after the first speed data of each second path point is randomly generated, the deviation between the first speed data of adjacent second path points may be too large, and the tail end of the mechanical arm needs to have a sufficiently large acceleration, so that the mechanical arm may not provide a sufficient acceleration during training; thus, in some preferred embodiments, step C6 comprises:
randomly generating a second preset number of first speed data in the terminal speed range, and distributing the first speed data to each second path point (which can be distributed in sequence or distributed randomly);
and sequentially calculating the absolute value deviation of the first speed data of each second path point and the previous second path point from the second path point, and adjusting the first speed data of the current second path point when the absolute value deviation between the current second path point and the previous second path point exceeds a preset deviation threshold (set according to the actual performance of the mechanical arm) so that the absolute value deviation does not exceed the preset deviation threshold.
Thus, on the one hand, the randomness of the first speed data of each second path point is ensured, and on the other hand, the acceleration requirement among the second path points is ensured to be satisfied by the mechanical arm.
Among them, the inverse solution method of mechanical arm kinematics is the prior art, and the detailed description thereof is omitted here.
Preferably, before step C9, it may also be checked by the simulation program whether the motion path corresponding to the second motion path data is reachable, and if so, step C9 is executed. And enabling the virtual mechanical arm to move according to the second motion path data in the simulation program, so as to detect whether the virtual mechanical arm exceeds a working space and detect whether singular points exist in the path, if the virtual mechanical arm does not exceed the working space and does not have the singular points, judging that the motion path corresponding to the second motion path data is accessible, and otherwise, judging that the motion path corresponding to the second motion path data is inaccessible.
Further, if the motion path corresponding to the second motion path data is unreachable, discarding the second motion path data, and re-executing the steps C1-C8 according to the end position range narrowed down by a preset ratio (which can be set according to actual requirements), to obtain new second motion path data, if the motion path corresponding to the new second motion path data is still unreachable, discarding the new second motion path data, and after changing the motion instruction type of the current motion path data sample collection process into a joint motion instruction, re-collecting the current motion path data sample.
Specifically, if the motion instruction type is an arc motion instruction, the corresponding mechanical arm reachable range includes a tail end position range, a tail end posture range and a tail end speed range of the tail end of the mechanical arm;
when the sample acquisition module 1 randomly generates motion path data within the reach range of the corresponding mechanical arm according to the motion instruction type and adds the motion path data into a training path data set as a sample, the following steps are executed:
D1. if the motion instruction type is an arc motion instruction, generating a third pseudo-random number;
D2. judging whether the tail end posture of the mechanical arm changes or not according to the third pseudo random number;
D3. randomly generating second position data of a third preset number (which can be set according to actual needs) of third path points within the tail end position range (namely generating second position data of the third preset number, wherein the second position data are respectively second position data of the third preset number of third path points; all the third path points are on the same circular arc line;
D4. if the tail end posture of the mechanical arm is not changed, randomly generating a second tail end posture value in the tail end posture range, and setting second tail end posture data of all third path points (for convenience of description, the posture data of the tail end of the mechanical arm corresponding to the third path points are called second tail end posture data) as the second tail end posture value;
D5. if the tail end gesture of the mechanical arm changes, randomly generating second tail end gesture data of each third path point in the tail end gesture range;
D6. randomly generating second speed data of each third path point in the terminal speed range (for convenience of description, the moving speed of the tail end of the mechanical arm corresponding to the third path point is referred to as second speed data);
D7. calculating third rotation angle data and third rotation angular velocity data of each joint shaft corresponding to each third path point based on a mechanical arm kinematics inverse solution method according to the second position data, the second end attitude data and the second velocity data of each third path point (for convenience of description, the rotation angle data and the rotation angular velocity data of each joint shaft corresponding to each third path point are respectively called as third rotation angle data and third rotation angular velocity data);
D8. taking the third rotation angle data and the third rotation angular velocity data of each joint shaft corresponding to the same third path point as third motion parameters of the third path point (for convenience of description, the motion parameters corresponding to the third path point are referred to as third motion parameters), and forming third motion path data by the third motion parameters of all the third path points;
D9. the third motion path data is added as a sample to the training path data set.
For example, a third pseudo random number may be generated within a preset sixth numerical range, and whether the robot arm tip attitude has changed may be determined based on a seventh numerical range to which the third pseudo random number belongs. The seventh numerical range is obtained by dividing the sixth numerical range into two halves, the two seventh numerical ranges respectively correspond to the conditions that the posture of the tail end of the mechanical arm is changed and not changed, and the sixth numerical range can be set according to actual needs. For example, if the sixth numerical range is [0,1], then the two seventh numerical ranges are [0,0.5 ] and [0.5,1], respectively, if the third pseudo random number falls within the seventh numerical range [0,0.5 ], then the pose of the end of the robot is determined to be changed, and if the third pseudo random number falls within the seventh numerical range [0.5,1], then the pose of the end of the robot is determined not to be changed; however, the sixth numerical range is not limited thereto, and the correspondence between the two seventh numerical ranges and the robot arm tip attitude changes and does not change is not limited thereto.
In some embodiments, step D3 comprises:
randomly generating second reference position data of a third preset number of second position points in the end position range (for convenience of description, the position data corresponding to the second position points is referred to as second reference position data);
taking a circumferential line passing through three non-collinear second position points as a first circumferential line, taking a projection point of each second position point on the first circumferential line as a third path point, and calculating second position data of each third path point according to second reference position data of each second position point (the specific calculation method is prior art, and details thereof are not described here).
In other embodiments, step D3 comprises:
randomly generating second starting point position data of a second starting point, second end point position data of a second end point and transition point position data of a transition point in the end position range;
generating second position data of third path points of a third preset number according to the second starting point position data, the second end point position data and the transition point position data; all the third path points are on the same circular arc line, and the circular arc line passes through the second starting point, the transition point and the second end point.
For example, the second starting point may be set as the first third path point, the second end point may be set as the last third path point, and the divided points of equal parts of a circular arc line extending from the second starting point to the second end point through the transition point (for convenience of distinction from the other divided points, the divided points are hereinafter referred to as the second divided points) may be set as the other third path points (the number of the second divided points is equal to the third preset number minus 2), and the position data of each of the second divided points may be calculated from the second starting point position data and the second end point position data, thereby obtaining the second position data of the third preset number of the third path points (the second position data of the first third path point is equal to the second starting point position data, the second position data of the last third path point is equal to the second end point position data, and the second position data of the other third path points is equal to the position data of the corresponding second divided points). The second position data of the third path point is generated at a high speed in this way.
Further, no matter which of the above-mentioned manners is adopted to generate the second position data of the third path points, some of the obtained third path points may be located outside the end position range; to this end, step D3 may further include:
judging whether each third path point is in the end position range or not according to the second position data of each third path point;
if not, deleting the second position data of the corresponding third path point and supplementing the second position data of the new third path point by an interpolation mode (performing interpolation according to the second position data of the third path point in the end position range, wherein the specific interpolation method is the prior art, and the detailed description is not provided here).
Thus, it is advantageous to ensure that all third path points are reachable.
In practical application, after the second speed data of each third path point is randomly generated, the deviation between the second speed data of adjacent third path points may be too large, and the tail end of the mechanical arm needs to have a sufficiently large acceleration, so that the mechanical arm may not provide a sufficient acceleration during training; thus, in some preferred embodiments, step D6 comprises:
randomly generating a third preset number of second speed data in the terminal speed range, and distributing the second speed data to each third path point (which can be distributed sequentially according to the sequence or distributed randomly);
and sequentially calculating the absolute value deviation of the second speed data of each third path point and the previous third path point from the second third path point, and adjusting the current second speed data of the third path point when the absolute value deviation between the current third path point and the previous third path point exceeds a preset deviation threshold (set according to the actual performance of the mechanical arm) so that the absolute value deviation does not exceed the preset deviation threshold.
Therefore, on one hand, randomness of the second speed data of each third path point is guaranteed, and on the other hand, acceleration requirements among the third path points are guaranteed to be met by the mechanical arm.
Preferably, before step D9, it may be further checked by a simulation program whether the motion path corresponding to the third motion path data is reachable, and if yes, step D9 is executed. And enabling the virtual mechanical arm to move according to the third motion path data in the simulation program, so as to detect whether the virtual mechanical arm exceeds a working space or not and detect whether singular points exist in the path or not, if the virtual mechanical arm does not exceed the working space and does not have the singular points, judging that the motion path corresponding to the third motion path data is accessible, and otherwise, judging that the motion path corresponding to the third motion path data is inaccessible.
Further, if the motion path corresponding to the third motion path data is unreachable, the third motion path data is discarded, and the steps D1-D8 are executed again according to the end position range reduced according to the preset proportion (which can be set according to actual needs), so as to obtain new third motion path data, if the motion path corresponding to the new third motion path data is still unreachable, the new third motion path data is discarded, and the motion instruction type in the current motion path data sample collection process is changed into a joint motion instruction, so as to collect the current motion path data sample again.
In some embodiments, the first preset condition is: the sample size (i.e. the number of samples) of the training path data set is not less than a sample size threshold (which can be set according to actual needs), the distribution of the rotation angle data of each joint shaft meets the first distribution condition, and the distribution of the rotation angular velocity data of each joint shaft meets the second distribution condition.
The first distribution condition comprises: the number of the rotation angle data of the same joint shaft distributed in each first angle range is not less than a first distribution number threshold (which can be set according to implementation requirements); each first angle range is formed by dividing the rotation angle range of the joint shaft into equal parts (the specific divided parts can be set according to actual needs). For example, the threshold value of the first distribution number is n1, the rotation angle range of a certain joint axis is [ a1, a10], the first angle range divided equally includes [ a1, a 2), [ a2, a3 ] \8230 \ 8230 [ [ a9, a10], in the rotation angle data of the joint axis, the number of the rotation angle data falling into [ a1, a2 ] is m1, the number of the rotation angle data falling into [ a2, a3 ] is m2 \8230 \ 8230, and the number of the rotation angle data falling into [ a9, a10] is m10, and it is determined that the distribution of the rotation angle data of the joint axis satisfies the first distribution condition only when m1, m2 \8230 \ 8230; m10 is not less than n 1.
The second distribution condition includes: the number of the rotating angular speed data of the same joint shaft distributed in each first angular speed range is not less than a second distribution number threshold (which can be set according to implementation requirements); each first angular velocity range is formed by dividing the rotating angular velocity range of the joint shaft into equal parts (the specific divided parts can be set according to actual needs). For example, the threshold value of the second distribution number is n2, the range of the rotational angular velocity of a certain joint axis is [ b1, b10], and the equally divided first angular velocity range includes [ b1, b 2), [ b2, b3 ] \8230, 8230, and [ b9, b10], and in the rotational angular velocity data of the joint axis, the number of the rotational angular velocity data falling into [ b1, b 2) is k1, the number of the rotational angular velocity data falling into [ b2, b 3) is k2 \8230, and the number of the rotational angular velocity data falling into [ b9, b10] is k10, it is determined that the distribution of the rotational angular velocity data of the joint axis satisfies the second distribution condition only when k1, k2 \8230, and k10 is not less than n 2.
Further, the first executing module 2 is specifically configured to execute:
acquiring a sample size of a training path data set;
respectively taking each joint axis as a target axis, and acquiring the number of the rotation angle data of the target axis contained in the training path data set distributed in each corresponding first angle range, and recording the number as a first number; acquiring the number of the rotating angular speed data of the target shaft contained in the training path data set distributed in each corresponding first angular speed range, and recording the number as a second number;
judging whether the sample size is not less than a sample size threshold value, judging whether the first number of each target axis is not less than a first distribution number threshold value, and judging whether the second number of each target axis is not less than a second distribution number threshold value;
if the sample size is not less than the sample size threshold, the first number of all the target axes is not less than the first distribution number threshold, and the second number of all the target axes is not less than the second distribution number threshold, the collection of the motion path data sample is ended, otherwise, the sample collection module 1 is enabled to execute the functional operation again to continue collecting the motion path data sample.
By limiting the sample size, the training path data set can be ensured to be large enough, the friction compensation model can be trained sufficiently, the rotating angle data of each joint shaft can be ensured to be distributed in each first angle range, the rotating angular velocity data of each joint shaft can be limited to be distributed in each first angular velocity range, each joint shaft can be ensured to fully traverse the rotating angle range and the rotating angular velocity range, the degree of traversing the working space of the mechanical arm is further improved, and the applicability of the friction compensation model is further improved.
Specifically, the training model 3 is used to train the friction compensation model with the collected training path data set when the collection of the motion path data sample is finished. The training can be performed by using the existing training method, and the details are not described here.
As can be seen from the above, the friction compensation model training device randomly determines the type of the motion instruction by collecting the motion path data sample when collecting the sample, randomly generates the motion path data within the reachable range of the corresponding mechanical arm according to the type of the motion instruction, and adds the motion path data as a sample into the training path data set; if the sample size and the sample data distribution of the training path data set meet first preset conditions, finishing the collection of the motion path data samples, and otherwise, continuously collecting the motion path data samples; when the collection of the motion path data sample is finished, the friction compensation model is trained by using the training path data set; therefore, the mechanical arm can traverse the working space of the mechanical arm to a higher degree in the friction compensation model training process, and the trained friction compensation model has a better compensation effect when being applied to any path of the mechanical arm.
Referring to fig. 3, fig. 3 is a schematic structural diagram of an electronic device according to an embodiment of the present disclosure, where the present disclosure provides an electronic device, including: the processor 301 and the memory 302, the processor 301 and the memory 302 are interconnected and communicate with each other through the communication bus 303 and/or other types of connection mechanisms (not shown), the memory 302 stores a computer program executable by the processor 301, and when the electronic device runs, the processor 301 executes the computer program to execute the friction compensation model training method in any optional implementation manner of the above embodiments to realize the following functions: collecting motion path data samples, specifically, randomly determining the type of a motion instruction, randomly generating motion path data within the reachable range of a corresponding mechanical arm according to the type of the motion instruction, and adding the motion path data into a training path data set as a sample; if the sample size and the sample data distribution of the training path data set meet a first preset condition, finishing the acquisition of the motion path data sample, otherwise, continuously acquiring the motion path data sample; when the collection of the motion path data samples is finished, the friction compensation model is trained by the training path data set.
The embodiment of the present application provides a storage medium, on which a computer program is stored, and when the computer program is executed by a processor, the method for training a friction compensation model in any optional implementation manner of the foregoing embodiment is executed, so as to implement the following functions: collecting motion path data samples, specifically, randomly determining the type of a motion instruction, randomly generating motion path data within the reachable range of a corresponding mechanical arm according to the type of the motion instruction, and adding the motion path data into a training path data set as a sample; if the sample size and the sample data distribution of the training path data set meet first preset conditions, finishing the collection of the motion path data samples, and otherwise, continuously collecting the motion path data samples; when the collection of the motion path data samples is finished, the friction compensation model is trained by the training path data set. The storage medium may be implemented by any type of volatile or nonvolatile storage device or combination thereof, such as a Static Random Access Memory (SRAM), an Electrically Erasable Programmable Read-Only Memory (EEPROM), an Erasable Programmable Read-Only Memory (EPROM), a Programmable Read-Only Memory (PROM), a Read-Only Memory (ROM), a magnetic Memory, a flash Memory, a magnetic disk, or an optical disk.
In the embodiments provided in the present application, it should be understood that the disclosed apparatus and method may be implemented in other ways. The above-described apparatus embodiments are merely illustrative, and for example, the division of the units into only one type of logical function may be implemented in other ways, and for example, multiple units or components may be combined or integrated into another system, or some features may be omitted, or not implemented. In addition, the shown or discussed coupling or direct coupling or communication connection between each other may be through some communication interfaces, indirect coupling or communication connection between devices or units, and may be in an electrical, mechanical or other form.
In addition, units described as separate parts may or may not be physically separate, and parts displayed as units may or may not be physical units, may be located in one place, or may be distributed on a plurality of network units. Some or all of the units can be selected according to actual needs to achieve the purpose of the solution of the embodiment.
In addition, functional modules in the embodiments of the present application may be integrated together to form an independent part, or each module may exist alone, or two or more modules may be integrated to form an independent part.
In this document, relational terms such as first and second, and the like may be used solely to distinguish one entity or action from another entity or action without necessarily requiring or implying any actual such relationship or order between such entities or actions.
The above description is only an example of the present application and is not intended to limit the scope of the present application, and various modifications and changes may be made by those skilled in the art. Any modification, equivalent replacement, improvement and the like made within the spirit and principle of the present application shall be included in the protection scope of the present application.

Claims (9)

1. A friction compensation model training method is used for training a friction compensation model of a mechanical arm and is characterized by comprising the following steps:
A1. the method for acquiring the motion path data samples specifically comprises the following steps:
A101. randomly determining the type of the motion instruction;
A102. randomly generating motion path data according to the motion instruction type within the reach range of the corresponding mechanical arm, and adding the motion path data into a training path data set as a sample;
A2. if the sample size and the sample data distribution of the training path data set meet first preset conditions, finishing the acquisition of the motion path data samples, executing the step A3, and otherwise, returning to the step A1 to continue to acquire the motion path data samples;
A3. training the friction compensation model with the training path dataset;
the motion path data comprises motion parameters of a plurality of path points, and the motion parameters of each path point comprise rotation angle data and rotation angular velocity data of each joint shaft of the mechanical arm;
the first preset condition is as follows: the sample size of the training path data set is not less than a sample size threshold, the distribution of the rotation angle data of each joint axis meets a first distribution condition, and the distribution of the rotation angular velocity data of each joint axis meets a second distribution condition;
the first distribution condition comprises: the number of the rotating angle data of the same joint shaft distributed in each first angle range is not less than a first distribution number threshold; each first angle range is formed by dividing the rotation angle range of the joint shaft into equal parts;
the second distribution condition includes: the number of the rotating angular speed data of the same joint shaft distributed in each first angular speed range is not less than a second distribution number threshold; each first angular velocity range is formed by dividing the rotating angular velocity range of the joint shaft into equal parts.
2. The friction compensation model training method according to claim 1, wherein step a101 comprises:
generating a first pseudo-random number within a preset first value range;
determining the motion instruction type corresponding to the first pseudo random number according to a second value range to which the first pseudo random number belongs; the motion instruction type is a joint motion instruction, a linear motion instruction or an arc motion instruction.
3. The method for training a friction compensation model according to claim 2, wherein if the motion command type is a joint motion command, the corresponding robot reachable range includes a rotation angle range and a rotation angular velocity range of each joint axis of the robot;
step a102 includes:
B1. if the motion instruction type is a joint motion instruction, randomly generating first rotation angle data of each joint shaft corresponding to each first path point in the rotation angle range of each joint shaft of the mechanical arm aiming at a first preset number of first path points;
B2. randomly generating one piece of first rotation angular velocity data within the rotation angular velocity range of the corresponding joint axis for each piece of the first rotation angle data of each joint axis;
B3. taking the first rotation angle data and the first rotation angular velocity data of each joint shaft corresponding to the same first path point as first motion parameters of the first path point, and forming first motion path data by the first motion parameters of all the first path points;
B4. adding the first motion path data as a sample to the training path data set.
4. The method for training a friction compensation model according to claim 2, wherein if the motion command type is a linear motion command, the corresponding mechanical arm reachable range includes a terminal position range, a terminal attitude range and a terminal speed range of a mechanical arm terminal;
step a102 includes:
C1. if the motion instruction type is a linear motion instruction, generating a second pseudo-random number;
C2. judging whether the tail end posture of the mechanical arm changes or not according to the second pseudo random number;
C3. randomly generating first position data of a second preset number of second path points within the terminal position range; all the second path points are on the same straight line;
C4. if the tail end posture of the mechanical arm is not changed, randomly generating a first tail end posture value in the tail end posture range, and setting the first tail end posture data of all the second path points as the first tail end posture value;
C5. if the tail end gesture of the mechanical arm changes, randomly generating first tail end gesture data of each second path point in the tail end gesture range;
C6. randomly generating first speed data of each second path point within the terminal speed range;
C7. calculating second rotation angle data and second rotation angular velocity data of each joint shaft corresponding to each second path point based on a mechanical arm kinematics inverse solution method according to the first position data, the first tail end attitude data and the first velocity data of each second path point;
C8. taking the second rotation angle data and the second rotation angular velocity data of each joint shaft corresponding to the same second path point as second motion parameters of the second path point, and forming second motion path data by the second motion parameters of all the second path points;
C9. adding the second motion path data as a sample to the training path data set.
5. The method for training a friction compensation model according to claim 2, wherein if the motion command type is an arc motion command, the corresponding mechanical arm reachable range includes a terminal position range, a terminal attitude range and a terminal speed range of a mechanical arm terminal;
step a102 includes:
D1. if the motion instruction type is an arc motion instruction, generating a third pseudo-random number;
D2. judging whether the tail end posture of the mechanical arm changes or not according to the third pseudo random number;
D3. randomly generating second position data of a third preset number of third path points within the terminal position range; all the third path points are on the same circular arc line;
D4. if the tail end gesture of the mechanical arm is not changed, randomly generating a second tail end gesture value in the tail end gesture range, and setting second tail end gesture data of all the third path points as the second tail end gesture value;
D5. if the tail end gesture of the mechanical arm changes, second tail end gesture data of each third path point are randomly generated in the tail end gesture range;
D6. randomly generating second speed data of each third path point within the terminal speed range;
D7. calculating third rotation angle data and third rotation angular velocity data of each joint shaft corresponding to each third path point based on a mechanical arm kinematics inverse solution method according to the second position data, the second tail end attitude data and the second velocity data of each third path point;
D8. taking the third rotation angle data and the third rotation angular velocity data of each joint shaft corresponding to the same third path point as third motion parameters of the third path point, and forming third motion path data by the third motion parameters of all the third path points;
D9. adding the third motion path data as a sample to the training path data set.
6. The friction compensation model training method according to claim 2, wherein step A2 comprises:
obtaining a sample size of the training path dataset;
respectively taking each joint axis as a target axis, and acquiring the number of the rotation angle data of the target axis contained in the training path data set distributed in each corresponding first angle range, and recording the number as a first number; acquiring the number of the rotating angular velocity data of the target axis contained in the training path data set distributed in each corresponding first angular velocity range, and recording the number as a second number;
judging whether the sample size is not less than the sample size threshold, judging whether the first quantity of each target axis is not less than the first distribution quantity threshold, and judging whether the second quantity of each target axis is not less than the second distribution quantity threshold;
if the sample size is not smaller than the sample size threshold, the first quantity of all the target axes is not smaller than the first distribution quantity threshold, and the second quantity of all the target axes is not smaller than the second distribution quantity threshold, ending the collection of the motion path data samples, and executing the step A3, otherwise, returning to the step A1 to continue to collect the motion path data samples.
7. A friction compensation model training device is used for training a friction compensation model of a mechanical arm, and is characterized by comprising:
the sample collection module is used for collecting motion path data samples, and specifically comprises:
randomly determining the type of the motion instruction;
randomly generating motion path data according to the motion instruction type within the reach range of the corresponding mechanical arm, and adding the motion path data into a training path data set as a sample;
the first execution module is used for finishing the acquisition of the motion path data sample when the sample size and the sample data distribution of the training path data set meet a first preset condition, and enabling the sample acquisition module to execute the functional operation again to continue to acquire the motion path data sample when the sample size and the sample data distribution of the training path data set do not meet the first preset condition;
the training model is used for training the friction compensation model by using the training path data set when the acquisition of the motion path data sample is finished;
the motion path data comprises motion parameters of a plurality of path points, and the motion parameters of each path point comprise rotation angle data and rotation angular velocity data of each joint shaft of the mechanical arm;
the first preset condition is as follows: the sample size of the training path data set is not less than a sample size threshold, the distribution of the rotation angle data of each joint axis meets a first distribution condition, and the distribution of the rotation angular velocity data of each joint axis meets a second distribution condition;
the first distribution condition comprises: the number of the rotation angle data of the same joint shaft distributed in each first angle range is not less than a first distribution number threshold; each first angle range is formed by dividing the rotation angle range of the joint shaft into equal parts;
the second distribution condition includes: the number of the rotating angular speed data of the same joint shaft distributed in each first angular speed range is not less than a second distribution number threshold; each first angular velocity range is formed by dividing the rotating angular velocity range of the joint shaft into equal parts.
8. An electronic device comprising a processor and a memory, wherein the memory stores a computer program executable by the processor, and the processor executes the computer program to perform the steps of the friction compensation model training method according to any one of claims 1 to 6.
9. A storage medium having stored thereon a computer program, wherein the computer program, when being executed by a processor, performs the steps of the method for training a friction compensation model according to any one of claims 1 to 6.
CN202210993764.XA 2022-08-18 2022-08-18 Friction compensation model training method and device, electronic equipment and storage medium Active CN115091470B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210993764.XA CN115091470B (en) 2022-08-18 2022-08-18 Friction compensation model training method and device, electronic equipment and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210993764.XA CN115091470B (en) 2022-08-18 2022-08-18 Friction compensation model training method and device, electronic equipment and storage medium

Publications (2)

Publication Number Publication Date
CN115091470A CN115091470A (en) 2022-09-23
CN115091470B true CN115091470B (en) 2022-11-18

Family

ID=83299817

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210993764.XA Active CN115091470B (en) 2022-08-18 2022-08-18 Friction compensation model training method and device, electronic equipment and storage medium

Country Status (1)

Country Link
CN (1) CN115091470B (en)

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5710498A (en) * 1994-12-06 1998-01-20 Trinova Corporation Method and apparatus for friction compensation
US9324040B2 (en) * 2013-01-30 2016-04-26 Technion Research & Development Foundation Limited Training ensembles of randomized decision trees
CN112847358B (en) * 2020-12-31 2022-04-26 深圳辰视智能科技有限公司 Path planning method and industrial robot
CN114474078B (en) * 2022-04-12 2022-06-17 季华实验室 Friction force compensation method and device for mechanical arm, electronic equipment and storage medium

Also Published As

Publication number Publication date
CN115091470A (en) 2022-09-23

Similar Documents

Publication Publication Date Title
US20170210008A1 (en) Robot trajectory generation method, robot trajectory generation apparatus, product fabrication method, recording medium, program, and robot system
CN107263484B (en) Robot joint space point-to-point motion trajectory planning method
CN111788040B (en) Kinetic parameter identification method of robot, robot and storage device
US20180036882A1 (en) Layout setting method and layout setting apparatus
CN113618742B (en) Robot obstacle avoidance method and device and robot
CN111309039B (en) Gesture control method and device for four-foot robot
CN109605367B (en) Robot programming method, device and equipment and storage medium
CN111590587B (en) Method for determining load centroid range of robot and drawing method
US20220019939A1 (en) Method and system for predicting motion-outcome data of a robot moving between a given pair of robotic locations
CN115091470B (en) Friction compensation model training method and device, electronic equipment and storage medium
JP2022027699A (en) Virtualized cable modeling for manufacturing resource simulation
CN114227685A (en) Mechanical arm control method and device, computer readable storage medium and mechanical arm
CN108829996A (en) Obtain the method and device of vehicle location information
CN111482969A (en) Six-degree-of-freedom offset robot inverse solution method based on BAS algorithm
CN109311155B (en) Method and device for calibrating tool coordinate system origin of industrial robot
CN110245809A (en) A kind of intelligent optimization method and system for multirobot multitask cooperative work
CN114255252A (en) Obstacle contour acquisition method, device, equipment and computer-readable storage medium
CN114536351B (en) Redundant double-arm robot teaching method and device, electronic equipment and system
CN114454981B (en) Jumping motion control method and device of biped robot and biped robot
CN114571470B (en) Compensation result optimization method and device, electronic equipment and storage medium
CN110465091A (en) The control method and device of virtual race car object, storage medium and electronic device
CN114789453A (en) Mechanical arm dynamic PID control method and device, electronic equipment and storage medium
CN114440874A (en) Fusion positioning method and device based on optical flow and grating
CN113246133B (en) Rotation instruction calculation method and rotation control method and system for multiple joints of mechanical arm
CN113664839B (en) Non-real-time and real-time mixed interpolation calculation method for industrial robot

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant