CN112692819B - Encoder group position compensation method and robot module position compensation method - Google Patents
Encoder group position compensation method and robot module position compensation method Download PDFInfo
- Publication number
- CN112692819B CN112692819B CN201911006991.3A CN201911006991A CN112692819B CN 112692819 B CN112692819 B CN 112692819B CN 201911006991 A CN201911006991 A CN 201911006991A CN 112692819 B CN112692819 B CN 112692819B
- Authority
- CN
- China
- Prior art keywords
- encoder
- data
- side encoder
- position compensation
- output
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 238000006243 chemical reaction Methods 0.000 claims abstract description 131
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000007781 pre-processing Methods 0.000 claims abstract description 11
- 239000003638 chemical reducing agent Substances 0.000 claims description 14
- 238000013501 data transformation Methods 0.000 claims description 2
- 238000009434 installation Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000012935 Averaging Methods 0.000 description 2
- 238000012937 correction Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/08—Programme-controlled manipulators characterised by modular constructions
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1628—Programme controls characterised by the control loop
- B25J9/1653—Programme controls characterised by the control loop parameters identification, estimation, stiffness, accuracy, error analysis
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Automation & Control Theory (AREA)
- Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Fuzzy Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
The invention discloses a position compensation method of an encoder group and a position compensation method of a robot module. Firstly, collecting data of a coder group; preprocessing data of a coder group to obtain a conversion value; then, spline curve interpolation processing is carried out on the conversion value, so that position compensation information of the motor side encoder and position compensation information of the output side encoder are obtained; therefore, the relative eccentricity of the motor side encoder and the output side encoder is corrected, and the absolute positioning precision of the robot module is effectively improved.
Description
Technical Field
The invention relates to the technical field of robots, in particular to a position compensation method for a coder group and a position compensation method for a robot module.
Background
With the development demand of industry 4.0, the industry of industrial robots has unprecedented rise. In recent years, modular cooperative robots are increasingly exploded, and robot modules are basic components of cooperative robots. In the control of the robot module, the encoder plays an important role. However, installation errors of encoders in a plurality of robot modules are difficult to eliminate completely, the problem of ensuring the concentricity of the encoders installed on two sides of the motor is a difficult problem, the existing method has a function of automatically correcting deviation, but only one positioning error is corrected, the positioning errors of the two encoders cannot be corrected simultaneously, and the installation errors exist all the time.
Disclosure of Invention
In one aspect, an embodiment of the present invention provides a method for compensating a position of an encoder group to solve the problem of an installation error of an encoder.
On the other hand, the embodiment of the invention provides a robot module position compensation method to solve the problem of encoder installation errors and improve the control precision of the robot module.
In a first aspect of the embodiments of the present invention, a position compensation method for an encoder group is provided, where the encoder group is arranged in a robot module, the encoder group includes a motor-side encoder, an output-side encoder, and an external encoder, and the external encoder is arranged on a connecting column at an output side of a speed reducer of the robot module;
the encoder group position compensation method includes:
collecting data of the encoder group under the operation mode of the robot module, wherein the data of the encoder group comprises first data, second data and third data, the first data is data of an output side encoder, the second data is data of a motor side encoder, and the third data is data of an external encoder;
preprocessing the data of the encoder group to obtain a conversion value;
and carrying out spline interpolation processing on the conversion value to obtain position compensation information of the encoder at the motor side and position compensation information of the encoder at the output side.
Further, the preprocessing the data of the encoder group to obtain a conversion value includes:
and performing data conversion on the encoder group data to obtain a first conversion value, a second conversion value and a third conversion value, wherein the first conversion value is obtained by performing data conversion on the first data, the second conversion value is obtained by performing data conversion on the second data, and the third conversion value is obtained by performing data conversion on the third data.
Further, the data conversion of the encoder group to obtain the first conversion value and the third conversion value includes the following steps:
performing a first data conversion on the data of the encoder group using the following formula:
X i =x i %360,i=0,1,2,3,...,n;
Z i =z i %360,i=0,1,2,3,...,n;
wherein x is i An angle value, X, obtained by angle conversion of the first data i Is a first conversion value, z i An angle value, Z, obtained by angle conversion of the third data i Is the third converted value.
Further, performing a second data conversion on the data of the encoder group by using the following formula to obtain a second conversion value, including the following steps:
performing a second data transformation on the second data using the following formula:
p i =y i %360,i=0,1,2,3,...,n;
wherein, y i An angle value, p, obtained for angle conversion of said second data i Is the second intermediate value.
Obtaining a zero angle value using the following formula:
R=r%(360/g);
wherein R is a zero angle value, R is an angle at which the second intermediate value corresponding to the output-side encoder is 0 °, and g is a reduction ratio of a speed reducer;
determining the number of turns m according to the zero angle value R, the first conversion value and the second intermediate value by the following formula i :
m i =round[(X i -R)/(360/g)-(p i /360)],i=0,1,2,3,...,n;
According to the second intermediate value and the number of turns m i The second conversion value Y is determined by the following formula i :
Y i =(p i +360m i )/g,i=0,1,2,...,n。
Further, the obtaining the position compensation information of the motor-side encoder and the position compensation information of the output-side encoder by performing spline interpolation processing on the conversion value includes:
calculating the error of the output side encoder, and performing spline interpolation processing on the error of the output side encoder to obtain position compensation information of the output side encoder;
and calculating the error of the motor side encoder, and performing spline interpolation processing on the error of the motor side encoder to obtain the position compensation information of the motor side encoder.
Further, the calculating an error of the output-side encoder and performing spline interpolation processing on the error of the output-side encoder to obtain position compensation information of the output-side encoder includes:
the output side encoder error exi is obtained using the following equation:
the position compensation information s (x) of the output-side encoder is determined using the following equation:
s(X)={d i (X),X∈[X i ,X i+1 ],i=0,1,2,...,n-1};
d i (X)=a i0 +a i1 (X-X i )+a i2 (X-X i ) 2 +a i3 (X-X i ) 3 ;
wherein X is a conversion value of the output side encoder data acquired in real time after the first data conversion, d i (X) represents [ X ] i ,X i+1 ]Cubic polynomial in interval about said X, a i0 、a i1 、a i2 、a i3 Is a polynomial coefficient, d i (X) satisfies the following constraints:
d 0 (X 0 )=d n-1 (X n )=(e x0 +e xn )/2;
d i (X i )=d i-1 (X i )=e xi ,i=1,2,...,n-1;
further, calculating an error of the motor-side encoder, and performing spline interpolation processing on the error of the motor-side encoder to obtain position compensation information of the motor-side encoder, including:
the error eyi of the motor-side encoder is obtained by the following equation:
determining the position compensation information c (y) of the motor side encoder by adopting the following formula:
c(Y)={f i (Y),Y∈[Y i ,Y i+1 ],i=0,1,2,...,n-1};
f i (Y)=b i0 +b i1 (Y-Y i )+b i2 (y-Y i ) 2 +b i3 (y-Y i ) 3 ;
y is a conversion value of the output side encoder data acquired in real time after the second data conversion, f i (Y) represents [ Y i ,Y i+1 ]Cubic polynomial in interval about said Y, b i0 、b i1 、b i2 、b i3 Is a polynomial coefficient, f i (Y) satisfies the following constraints:
f 0 (Y 0 )=f n-1 (Y n )=(e y0 +e yn )/2;
f i (Y i )=f i-1 (Y i )=e yi ,i=1,2,...,n-1;
in a second aspect of the embodiments of the present invention, there is provided a method for compensating a position of a robot module, where the robot module includes a motor-side encoder and an output-side encoder, the method including:
under the working mode of the robot module, compensating the position error of the output side encoder in real time by adopting the position compensation information of the output side encoder to obtain the reading of the compensated output side encoder;
under the working mode of the robot module, compensating the position error of a motor side encoder in real time by adopting the position compensation information of the motor side encoder to obtain the reading of the compensated motor side encoder;
the position compensation information of the output side encoder and the position compensation information of the motor side encoder are obtained by adopting the encoder position compensation method.
Further, in the robot module operating mode, the position compensation information of the output side encoder is adopted to compensate the position error of the output side encoder in real time, and the reading of the compensated output side encoder is obtained, which includes the following steps:
Wherein,and in order to compensate the reading of the output side encoder, X is a conversion value of the output side encoder data acquired in real time after the first data conversion, and s (X) is position compensation information of the output side encoder.
Further, under robot module mode, adopt the position compensation information of motor side encoder, real-time compensation the position error of motor side encoder obtains the reading of motor side encoder after the compensation, including following step:
And Y is a conversion value of the output side encoder data acquired in real time after the second data conversion, and c (Y) is position compensation information of the motor side encoder.
In the encoder position compensation method provided by the embodiment of the invention, data of an encoder group is collected; preprocessing the data of the encoder group; spline interpolation processing is carried out on the conversion value of the output side encoder and the conversion value of the motor side encoder; obtaining position compensation information of a motor side encoder and position compensation information of an output side encoder; the error of the motor side encoder and the error of the output side encoder can be obtained only by adding an external encoder, the position compensation information of the motor side encoder and the position compensation information of the output side encoder are obtained based on a spline periodic curve, and the hardware scheme is simple, practical and low in cost.
In the robot module position compensation method provided by the embodiment of the invention, the errors of the motor side encoder and the output side encoder are compensated in real time in the motion control process of the module, and the relative eccentricity of the motor side encoder and the output side encoder is corrected at the same time, so that the absolute positioning precision of the robot module is effectively improved.
Drawings
In order to more clearly illustrate the technical solutions of the embodiments of the present invention, the drawings required to be used in the description of the embodiments of the present invention will be briefly introduced below, and it is obvious that the drawings in the description below are only some embodiments of the present invention, and it is obvious for those skilled in the art that other drawings can be obtained according to the drawings without inventive labor.
FIG. 1 is a diagram of an exemplary robot module and encoder set according to an embodiment of the present invention;
FIG. 2 is a flow chart of a method for compensating for the position of a coder group according to an embodiment of the present invention;
FIG. 3 is another flow chart of a method for encoder group position compensation according to an embodiment of the present invention;
FIG. 4 is another flow chart of a method for encoder group position compensation according to an embodiment of the present invention;
FIG. 5 is another flow chart of a method for encoder group position compensation according to an embodiment of the present invention;
fig. 6 is a flowchart of a method for compensating a position of a robot module according to an embodiment of the invention.
Detailed Description
The technical solutions in the embodiments of the present invention will be clearly and completely described below with reference to the drawings in the embodiments of the present invention, and it is obvious that the described embodiments are some, but not all, embodiments of the present invention. All other embodiments, which can be derived by a person skilled in the art from the embodiments given herein without making any creative effort, shall fall within the protection scope of the present invention.
An embodiment of the present invention provides a position compensation method for a coder group, which can be applied to a robot module and implemented by a processor or a control device of the robot module. Further, the encoder group position compensation method can also be realized by an external computer terminal. The computer terminal may be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, or portable wearable devices.
The invention provides a position compensation method for an encoder group, wherein the encoder group is arranged in a robot module, the encoder group comprises a motor side encoder, an output side encoder and an external encoder, and the external encoder is arranged on a connecting column at the output side of a motor of the robot module.
The motor side encoder is used for detecting a feedback signal of motor side position control, the output side encoder is used for measuring an absolute position value of the output side, and the external encoder is used for acquiring a connecting column rotating angle of the output side.
Optionally, as shown in fig. 1, the robot module includes:
a motor drive control board 202, a servo motor 212, a speed reducer 214, a module housing 216, a rotary bearing 218, an output side end face 220, and an output side connection post 222. The servo motor 212 and the speed reducer 214 are provided in the module case 216, the servo motor 212 and the speed reducer 214 are disposed adjacent to each other, and the rotary bearing 218 is disposed so as to pass through the servo motor 212 and the speed reducer 214 and connected to the output-side connection post 222. The rotation bearing 218 is located at one side of the servo motor 212 and is coupled to the module housing 216. The output side end face 220 is located on the side of the speed reducer 214.
Optionally, the encoder set comprises a motor side encoder, an output side encoder and an external encoder.
Optionally, a motor-side encoder is installed on the motor side of the reducer, and the motor-side encoder comprises a motor-side encoder reading head 208 and a motor-side encoder code wheel 210; the output side encoder is arranged on the output side of the speed reducer and comprises an output side encoder reading head 204 and an output side encoder code disc 206; the external encoder 224 is an integral encoder with the external encoder read head and the external encoder code wheel encapsulated.
Alternatively, the motor-side encoder and the output-side encoder may be absolute encoders, and the external encoder may be a 23-bit encoder in Haidenhain.
Optionally, the motor drive control board 202, the output-side encoder reading head 204, and the motor-side encoder reading head 208 are fixedly connected to the module housing 216, the motor-side encoder code wheel 210 is disposed on the servo motor 212, the motor-side encoder code wheel 210 and the servo motor 212 rotate along with the motor side of the speed reducer 214, the output-side encoder code wheel 206 is connected to the rotary bearing 218, and the output-side encoder code wheel 206, the rotary bearing 218, the output-side end face 220, the output-side connection column 222, and the external encoder 224 rotate along with the output side of the speed reducer 214.
In this embodiment, as shown in fig. 2, the encoder group position compensation method includes the following steps:
s10: and acquiring data of the encoder group under the operation mode of the robot module, wherein the data of the encoder group comprises first data, second data and third data, the first data is data of an output side encoder, the second data is data of a motor side encoder, and the third data is data of an external encoder.
Wherein, the robot module operation mode indicates the mode of motor normal operating, normal operation mode includes: the robot module moves towards the positive direction and/or the negative direction of the output side. The first data is (a) 0 ,a 1 ,a 2 ,...,a n ) The second data is (b) 0 ,b 1 ,b 2 ,...,b n ) The third data is (c) 0 ,c 1 ,c 2 ,...,c n ). As will be appreciated, the set of data collected for the set of encoders is (a) i ,b i ,c i ),i∈[0,1,2,...,n]。
Preferably, the movement speed of the robot module motor should be controlled within the range of 50rpm-400 rpm. Further, the fluctuation of the movement speed of the module motor cannot be too large in the range of 50rpm to 400 rpm. Within the range, the moving direction of the robot module can be as follows: the device can move for a preset number of turns in the positive direction of the output side and then move for a preset number of turns in the negative direction of the output side. The predetermined number of turns may be 1, 2, 3 or 5 turns, etc., it being understood that the number of turns in the forward direction may be different from the number of turns in the reverse direction.
More preferably, the robot module is made to move at a constant speed under the current loop, and a time difference between data collected by the output-side encoder and data collected by the motor-side encoder is equal to a time difference between data collected by the motor-side encoder and data collected by the external encoder. For example, the robot module is in a uniform motion state under the current loop, the time difference between the time for acquiring the data of the output side encoder and the time for acquiring the data of the motor side encoder is 50us, the time difference between the time for acquiring the data of the motor side encoder and the time for acquiring the data of the external encoder is 50us, that is, the acquired delay time is 50 us. It is to be understood that, since the delay time between the acquisition of the data of the output-side encoder and the acquisition of the data of the motor-side encoder is equal to the delay time between the acquisition of the data of the motor-side encoder and the acquisition of the data of the external encoder, the delay movement distances corresponding to the equal delay times are also equal, and this delay distance can be eliminated by "subtracting the average value of all error values" in steps S3011 and S3021.
S20: and preprocessing the data of the encoder group to obtain a conversion value.
Wherein preprocessing the data of the set of encoders comprises:
converting data of the encoder group to obtain a first conversion value, a second conversion value and a third conversion value; the first conversion value is obtained by performing data conversion on the first data, the second conversion value is obtained by performing data conversion on the second data, and the third conversion value is obtained by performing data conversion on the third data.
S30: and carrying out spline curve interpolation processing on the conversion value to obtain position compensation information of the encoder at the motor side and position compensation information of the encoder at the output side.
Wherein, spline interpolation is a smooth curve formed by a series of shape value points, and boundary conditions can be introduced when the error of the encoder at the output side is processed by spline interpolation. Alternatively, the boundary condition may be any one of a type 1 boundary condition, a type 2 boundary condition, and a type 3 boundary condition. The position compensation information of the output-side encoder is a relationship between the output-side encoder error obtained by spline curve interpolation and the output-side encoder data. The position compensation information of the motor side encoder is the relationship between the motor side encoder error obtained by spline curve interpolation and the motor side encoder data.
In the embodiment, data of the encoder group is acquired; preprocessing the data of the encoder group; spline interpolation processing is carried out on the conversion value of the output side encoder and the conversion value of the motor side encoder; obtaining position compensation information of a motor side encoder and position compensation information of an output side encoder; the error of the motor side encoder and the error of the output side encoder can be obtained only by adding an external encoder, the position compensation information of the motor side encoder and the position compensation information of the output side encoder are obtained based on the spline periodic curve, and the hardware scheme is simple, practical and low in cost.
In an embodiment, the preprocessing the data of the encoder group to obtain the conversion value specifically includes the following steps:
performing data conversion on the data of the encoder group to obtain a first conversion value, a second conversion value and a third conversion value, wherein the first conversion value is obtained by performing data conversion on the first data, the second conversion value is obtained by performing data conversion on the second data, and the third conversion value is obtained by performing data conversion on the third data;
the data conversion refers to angle conversion of the first data, the second data and the third data to obtain corresponding angle values. Specifically, after the first data, the second data, and the third data are respectively subjected to data conversion to obtain a first angle value, a second angle value, and a third angle value, the first angle value, the second angle value, and the third angle value are respectively subjected to remainder, and then a corresponding first conversion value, a corresponding second conversion value, and a corresponding third conversion value can be obtained.
In this embodiment, by preprocessing the data, the efficiency of performing spline interpolation on the data of the encoder group subsequently is improved, and the influence that spline interpolation cannot be performed due to different data types is eliminated.
In an embodiment, the data of the encoder group is subjected to data conversion to obtain a first conversion value and a third conversion value, and the method includes the following steps:
and performing data conversion on the data of the encoder group by adopting the following formula:
X i =x i %360,i=0,1,2,3,...,n;
Z i =z i %360,i=0,1,2,3,...,n;
wherein x is i An angle value, X, obtained by angle conversion of the first data i Is a first conversion value, z i An angle value, Z, obtained by angle conversion of the third data i Is the third converted value.
In an embodiment, the data of the encoder group is subjected to data conversion to obtain a second conversion value, and the method includes the following steps:
performing a second data conversion on the second data by using the following formula:
p i =y i %360,i=0,1,2,3,...,n;
wherein, y i An angle value, p, obtained for angle conversion of said second data i Is the second intermediate value.
Obtaining a zero angle value using the following formula:
R=r%(360/g);
wherein R is a zero angle value, R is an angle at which the second intermediate value corresponding to the output-side encoder is 0 °, and g is a reduction ratio of a speed reducer;
determining the number of turns m according to the zero angle value R, the first conversion value and the second intermediate value by the following formula i :
m i =round[(X i -R)/(360/g)-(p i /360)],i=0,1,2,3,...,n;
According to said second intermediate value and said number of turns m i The second conversion value Y is determined by the following formula i :
Y i =(p i +360m i )/g,i=0,1,2,...,n。
In this embodiment, through the above conversion, the data of the motor-side encoder is converted into the data of the output side, which facilitates spline interpolation of the data of the motor-side encoder in the following.
In an embodiment, as shown in fig. 3, the spline interpolation processing is performed on the conversion value to obtain the position compensation information of the motor-side encoder and the position compensation information of the output-side encoder, and the method includes the following steps:
s301: and calculating the error of the output side encoder, and performing spline interpolation processing on the error of the output side encoder to obtain the position compensation information of the output side encoder.
S302: and calculating the error of the motor side encoder, and performing spline interpolation processing on the error of the motor side encoder to obtain the position compensation information of the motor side encoder.
Specifically, the data of the corresponding output-side encoder is sequentially subtracted from the data of each external encoder to obtain an output-side encoder difference value. For example, the outer encoder data is Z 0 Corresponding output side encoder data is X 0 At this time, the difference of the encoder on the output side is Z 0 -X 0 . And after the difference value of the encoder at the output side is obtained, the average difference value of the encoder at the output side is obtained by an averaging mode. The output side encoder difference is averaged with the output side encoderThe subtraction of the values yields the error of the encoder on the output side. After the error of the output-side encoder is obtained, spline interpolation is performed on the error of the output-side encoder and the converted value of the data of the output-side encoder to obtain position compensation information of the output-side encoder.
And sequentially subtracting the data of the corresponding motor side encoder from the data of each external encoder to obtain a motor side encoder difference value. For example, the outer encoder data is Z 0 The corresponding motor-side encoder data is Y 0 At this time, the motor side encoder difference is Z 0 -Y 0 . And after the difference value of the motor side encoder is obtained, the average difference value of the motor side encoder is obtained by using an averaging mode. And subtracting the average value of the motor side encoder from the difference value of the motor side encoder to obtain the error of the motor side encoder. After the error of the motor side encoder is obtained, spline interpolation is carried out on the error of the motor side encoder and the data of the motor side encoder to obtain position compensation information of the motor side encoder.
In the embodiment, the spline curve interpolation is utilized to perform position compensation on the motor side encoder and the output side encoder, so that the positioning precision of the robot module is improved.
In one embodiment, as shown in fig. 4, calculating an error of the output-side encoder, and performing spline interpolation processing on the error of the output-side encoder to obtain position compensation information of the output-side encoder includes the following steps:
s3011: the output side encoder error is obtained using the following equation:
wherein e is xi Is the error of the output-side encoder, Zi is the third conversion value, X i Is the first conversion value, (Z) i -X i ) As an error value obtained by the third conversion value and the first conversion value,is the average of all error values.
The data of the output side encoders can be sequenced from small to large, if the same output side encoder data exists, the same output side encoder data is combined, the correspondingly obtained error of the output side encoders is also adjusted in sequence correspondingly, the error of the output side encoders is taken as the average value, and the error of the output side encoders at the head and tail points is taken as the average value of the head and tail points.
S3012: the position compensation information of the output-side encoder is determined using the following formula:
s(X)={d i (X),X∈[X i ,X i+1 ],i=0,1,2,...,n-1}
d i (X)=a i0 +a i1 (X-X i )+a i2 (X-X i ) 2 +a i3 (X-X i ) 3
wherein X is a conversion value of the real-time acquired encoder data of the output side converted by the first data, d i (X) represents [ X ] i ,X i+1 ]Third-order polynomial a in the interval with respect to said X i0 、a i1 、a i2 、a i3 Is a polynomial coefficient.
Optionally, the spline interpolation may adopt a type 3 boundary condition, where the type 3 boundary condition satisfies a period condition: the values of the beginning and end points of the period are equal, the first derivative values of the beginning and end points of the period are equal to the second derivative values of the beginning and end points of the period, i.e. d i (X) satisfies the following constraints:
d 0 (X 0 )=d n-1 (X n )=(e x0 +e xn )/2;
d i (X i )=d i-1 (X i )=e xi ,i=1,2,...,n-1;
in this embodiment, the output-side encoder position compensation based on the cubic spline periodic curve interpolation and the type 3 boundary condition ensures continuity of first derivatives and second derivatives of all points and head and tail points of the output-side encoder position compensation value, avoids noise caused by discontinuity of the first derivatives and the second derivatives of the compensation value, reduces errors of the output-side encoder, and improves the positioning accuracy of the output-side encoder.
In an embodiment, as shown in fig. 5, calculating an error of the motor-side encoder, and performing spline interpolation processing on the error of the motor-side encoder to obtain position compensation information of the motor-side encoder includes the following steps:
s3021: the error of the motor-side encoder is obtained by the following formula:
wherein e is yi Error of the motor-side encoder, Z i Is said third conversion value, Y i Is the second conversion value, (Z) i -Y i ) As an error value obtained by the third conversion value and the second conversion value,is the average of all error values.
Wherein, can arrange in an order motor side encoder data from little to big, if there is the same motor side encoder data, then merge the same motor side encoder data, correspond the also corresponding adjustment order of error of the motor side encoder that obtains, take the error of motor side encoder as the mean value, the error of the motor side encoder of head and the tail point is taken as the mean value of head and the tail point.
S3022: the position compensation information of the motor side encoder is determined by adopting the following formula:
c(Y)={f i (Y),Y∈[Y i ,Y i+1 ],i=0,1,2,...,n-1}
f i (Y)=b i0 +b i1 (Y-Y i )+b i2 (Y-Y i ) 2 +b i3 (Y-Y i ) 3
y is a conversion value of the output side encoder data acquired in real time after the second data conversion, f i (Y) represents [ Y ] i ,Y i+1 ]Cubic polynomial in the interval about said Y, b i0 、b i1 、b i2 、b i3 Is a polynomial coefficient.
Optionally, the spline interpolation may adopt a type 3 boundary condition, where the third boundary condition satisfies a period condition that the period head and tail values are equal, the first-order derivative values of the period head and tail are equal, and the second-order derivative values of the period head and tail are equal, that is, f i (Y) satisfies the following constraints:
f 0 (Y 0 )=f n-1 (Y n )=(e y0 +e yn )/2;
f i (Y i )=f i-1 (Y i )=e yi ,i=1,2,...,n-1;
in this embodiment, the motor-side encoder position compensation based on cubic spline periodic curve interpolation and type 3 boundary conditions ensures continuity of first derivatives and second derivatives of all points and head and tail points of the motor-side encoder position compensation value, avoids noise caused by discontinuity of the first derivatives and the second derivatives of the compensation value, reduces errors of an output-side encoder, and improves positioning accuracy of the output-side encoder.
In one embodiment, as shown in fig. 6, the present invention provides a robot module position compensation method, which can be applied inside a robot module and implemented by a processor or a control device of the robot module. Further, the robot module position compensation method can also be realized through an external computer terminal. The computer terminal may be, but is not limited to, various personal computers, notebook computers, smart phones, tablet computers, or portable wearable devices. The robot module comprises a motor side encoder and an output side encoder, and the method comprises the following steps:
s40: and under the working mode of the robot module, compensating the position error of the output side encoder in real time by adopting the position compensation information of the output side encoder to obtain the reading of the compensated output side encoder.
S50: under the robot module mode of operation, adopt the position compensation information of motor side encoder, compensate in real time the position error of motor side encoder obtains the reading of motor side encoder after the compensation.
The working mode of the robot module is a mode in which a motor of the robot module normally operates.
Specifically, according to the currently acquired data of the output side encoder, a position compensation value of the output side encoder is obtained through the steps of data conversion and spline interpolation, and then according to the position compensation information of the output side encoder, a reading of the compensated motor side encoder is obtained.
Specifically, according to the currently acquired data of the motor side encoder, the position compensation information of the motor side encoder is obtained through the steps of data conversion and spline interpolation, and the reading of the compensated motor side encoder is obtained according to the position compensation information of the motor side encoder.
The position compensation information of the output-side encoder and the position compensation information of the motor-side encoder are obtained by using the encoder position compensation method in any one of the above embodiments.
In this embodiment, the error of real-time compensation motor side encoder and output side encoder in the motion control process of module to the relative off-centre of correction motor side encoder and output side encoder simultaneously effectively improves the absolute positioning accuracy of robot module.
In an embodiment, in a robot module operating mode, the position compensation information of the output-side encoder is used to compensate the position error of the output-side encoder in real time, so as to obtain the reading of the compensated output-side encoder, including the following steps:
the reading of the compensated output side encoder is obtained using the following equation:
wherein,and in order to compensate the reading of the output side encoder, X is a conversion value of the output side encoder data acquired in real time after the first data conversion, and s (X) is position compensation information of the output side encoder.
In this embodiment, the error of the encoder on the output side is compensated in real time in the motion control process of the module, the relative eccentricity of the encoder on the output side is corrected, and the absolute positioning precision of the robot module is effectively improved.
In an embodiment, in a robot module operating mode, the position compensation information of the motor side encoder is used to compensate the position error of the motor side encoder in real time, so as to obtain the reading of the compensated motor side encoder, including the following steps:
the reading of the compensated motor side encoder is obtained using the following formula:
wherein,and in order to compensate the reading of the encoder at the motor side, Y is a conversion value of the encoder data at the output side acquired in real time after the second data conversion, and c (Y) is position compensation information of the encoder at the motor side.
In this embodiment, the error of motor side encoder has been rectified to the relative off-centre of motor side encoder in real time compensation motor side encoder's in the motion control process of module, effectively improves the absolute positioning accuracy of robot module.
Claims (9)
1. The position compensation method of the encoder group is characterized in that the encoder group is arranged in a robot module, the encoder group comprises a motor side encoder, an output side encoder and an external encoder, and the external encoder is arranged on a connecting column at the output side of a speed reducer of the robot module;
the encoder group position compensation method includes:
collecting data of the encoder group in the robot module operation mode, wherein the data of the encoder group comprises first data, second data and third data, the first data is data of the output side encoder, the second data is data of the motor side encoder, and the third data is data of the external encoder;
preprocessing the data of the encoder group to obtain a conversion value;
performing spline interpolation processing on the conversion value to obtain position compensation information of the motor side encoder and position compensation information of the output side encoder;
the preprocessing the data of the encoder group to obtain a conversion value includes:
the method comprises the steps of carrying out data conversion on data of the encoder group to obtain a first conversion value, a second conversion value and a third conversion value, wherein the first conversion value is a numerical value obtained by carrying out data conversion on the first data to obtain a first angle value and then carrying out complementation on the first angle value, the second conversion value is a numerical value obtained by carrying out complementation on a second angle value after carrying out data conversion on the second data to obtain a second angle value, and the third conversion value is a numerical value obtained by carrying out complementation on a third angle value after carrying out data conversion on the third data to obtain a third angle value.
2. The method for compensating the position of the encoder group according to claim 1, wherein the converting the data of the encoder group to obtain the first conversion value and the third conversion value comprises:
performing a first data conversion on the data of the encoder group using the following formula:
X i =x i %360,i=0,1,2,3,...,n;
Z i =z i %360,i=0,1,2,3,...,n;
wherein x is i An angle value, X, obtained by angle conversion of the first data i Is a first conversion value, z i An angle value, Z, obtained by angle conversion of the third data i Is the third conversion value.
3. The encoder group position compensation method as claimed in claim 1, wherein said performing data conversion on the data of the encoder group to obtain a second conversion value comprises:
performing a second data transformation on the second data using the following formula:
p i =y i %360,i=0,1,2,3,...,n;
wherein, y i An angle value, p, obtained for angle conversion of said second data i Is a second intermediate value;
obtaining a zero angle value using the following formula:
R=r%(360/g);
wherein, R is a zero angle value, R is an angle of the output side encoder corresponding to the second intermediate value of 0 °, and g is a reduction ratio of the speed reducer;
determining the number of turns m according to the zero angle value R, the first conversion value and the second intermediate value by the following formula i :
m i =round[(X i -R)/(360/g)-(p i /360)],i=0,1,2,3,...,n;
According to the second intermediate value and the number of turns m i The second conversion value Y is determined by the following formula i :
Y i =(p i +360m i )/g,i=0,1,2,...,n。
4. The encoder group position compensation method of claim 3, wherein said performing spline interpolation processing on the converted values to obtain position compensation information of the motor-side encoder and position compensation information of the output-side encoder comprises:
calculating the error of the output side encoder, and performing spline interpolation processing on the error of the output side encoder to obtain position compensation information of the output side encoder;
and calculating the error of the motor side encoder, and performing spline curve interpolation processing on the error of the motor side encoder to obtain the position compensation information of the motor side encoder.
5. The encoder group position compensation method of claim 4, wherein the calculating of the encoder error of the output-side encoder and the spline interpolation processing of the error of the output-side encoder to obtain the position compensation information of the output-side encoder comprises:
the output side encoder error e is obtained by the following formula xi :
Determining position compensation information s (x) of the output-side encoder using the following formula:
s(X)={d i (X),X∈[X i ,X i+1 ],i=0,1,2,...,n-1};
d i (X)=a i0 +a i1 (X-X i )+a i2 (X-X i ) 2 +a i3 (X-X i ) 3 ;
wherein X is a conversion value of the real-time acquired encoder data of the output side converted by the first data, d i (X) represents [ X ] i ,X i+1 ]Cubic polynomial in interval about said X, a i0 、a i1 、a i2 、a i3 Is a polynomial coefficient, d i (X) satisfies the following constraints:
d 0 (X 0 )=d n-1 (X n )=(e x0 +e xn )/2;
d i (X i )=d i-1 (X i )=e xi ,i=1,2,...,n-1;
6. the encoder group position compensation method of claim 4, wherein calculating the error of the motor-side encoder, and performing spline interpolation processing on the error of the motor-side encoder to obtain the position compensation information of the motor-side encoder comprises:
the error e of the motor side encoder is obtained by the following formula yi :
Determining position compensation information c (Y) of the motor-side encoder by using the following formula:
c(Y)={f i (Y),Y∈[Y i ,Y i+1 ],i=0,1,2,...,n-1}
f i (Y)=b i0 +b i1 (Y-Y i )+b i2 (Y-Y i ) 2 +b i3 (Y-Y i ) 3
y is a conversion value of the output side encoder data acquired in real time after the second data conversion, f i (Y) represents [ Y i ,Y i+1 ]Cubic polynomial in the interval about said Y, b i0 、b i1 、b i2 、b i3 Is a polynomial coefficient, f i (Y) satisfies the following constraints:
f 0 (Y 0 )=f n-1 (Y n )=(e y0 +e yn )/2
f i (Y i )=f i-1 (Y i )=e yi ,i=1,2,...,n-1;
7. a robot cell group position compensation method, characterized in that the robot cell group includes a motor side encoder and an output side encoder, the method comprising:
under the working mode of the robot module, compensating the position error of the output side encoder in real time by adopting the position compensation information of the output side encoder to obtain the reading of the compensated output side encoder;
under a robot module working mode, compensating the position error of a motor side encoder in real time by adopting position compensation information of the motor side encoder to obtain a reading of the compensated motor side encoder;
wherein the position compensation information of the output-side encoder and the position compensation information of the motor-side encoder are obtained by using the encoder position compensation method according to any one of claims 1 to 6.
8. The method of claim 7, wherein in the robot module operating mode, the method of compensating the position error of the output-side encoder in real time using the position compensation information of the output-side encoder to obtain the compensated reading of the output-side encoder comprises:
9. The method of claim 7, wherein in the robot module operating mode, the method of compensating the position error of the motor-side encoder in real time using the position compensation information of the motor-side encoder to obtain the compensated reading of the motor-side encoder comprises:
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911006991.3A CN112692819B (en) | 2019-10-22 | 2019-10-22 | Encoder group position compensation method and robot module position compensation method |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911006991.3A CN112692819B (en) | 2019-10-22 | 2019-10-22 | Encoder group position compensation method and robot module position compensation method |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112692819A CN112692819A (en) | 2021-04-23 |
CN112692819B true CN112692819B (en) | 2022-08-19 |
Family
ID=75505456
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911006991.3A Active CN112692819B (en) | 2019-10-22 | 2019-10-22 | Encoder group position compensation method and robot module position compensation method |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112692819B (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007198805A (en) * | 2006-01-24 | 2007-08-09 | Ricoh Co Ltd | Position detector, position detection method, and image forming device |
CN101709983A (en) * | 2009-10-30 | 2010-05-19 | 大连光洋科技工程有限公司 | On-line actual error compensation system of sine and cosine encoder |
CN102111158A (en) * | 2010-11-23 | 2011-06-29 | 广州数控设备有限公司 | Device for subdividing sine signal and cosine signal of position sensor and coding data, and implementation method thereof |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20140049838A (en) * | 2012-10-18 | 2014-04-28 | 현대중공업 주식회사 | Method for compensationg error occuring during endless axis rotation |
CN105666483B (en) * | 2016-03-18 | 2018-12-14 | 杭州新松机器人自动化有限公司 | A kind of joint encoders arrangement and speed reducer error counteracting method being related to robot |
CN107538494A (en) * | 2016-06-29 | 2018-01-05 | 沈阳新松机器人自动化股份有限公司 | A kind of robot control method and system based on torque sensor and encoder |
JP6696359B2 (en) * | 2016-08-30 | 2020-05-20 | 株式会社デンソーウェーブ | Angular position detector |
CN106655640B (en) * | 2016-11-25 | 2017-08-08 | 西安科技大学 | The absolute position signal corrected value of mixed photoelectric encoder determines method |
CN108844556B (en) * | 2018-05-04 | 2020-04-14 | 苏州汇川技术有限公司 | Absolute value encoder compensation parameter obtaining method and system |
CN109000702A (en) * | 2018-05-16 | 2018-12-14 | 苏州汇川技术有限公司 | Encoder corrects system and method |
CN108731707B (en) * | 2018-06-04 | 2021-01-01 | 大族激光科技产业集团股份有限公司 | Method and device for measuring absolute position by double-increment type encoder |
CN109108967B (en) * | 2018-08-16 | 2021-03-30 | 深圳市歌尔泰克科技有限公司 | Motor compensation method, driver, mechanical arm joint module and mechanical arm |
-
2019
- 2019-10-22 CN CN201911006991.3A patent/CN112692819B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007198805A (en) * | 2006-01-24 | 2007-08-09 | Ricoh Co Ltd | Position detector, position detection method, and image forming device |
CN101709983A (en) * | 2009-10-30 | 2010-05-19 | 大连光洋科技工程有限公司 | On-line actual error compensation system of sine and cosine encoder |
CN102111158A (en) * | 2010-11-23 | 2011-06-29 | 广州数控设备有限公司 | Device for subdividing sine signal and cosine signal of position sensor and coding data, and implementation method thereof |
Also Published As
Publication number | Publication date |
---|---|
CN112692819A (en) | 2021-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108297101B (en) | Multi-joint-arm series robot end pose error detection and dynamic compensation method | |
GB2287322A (en) | Position detecting apparatus and position compensating method therefor | |
CN111805538B (en) | Robot real-time motion planning method based on force feedback | |
CN109696187B (en) | Eccentric correcting device of rotary encoder | |
CN113203508A (en) | Torque measuring method for robot joint | |
CN101682282B (en) | Analog angle sensor accuracy adjustment program, adjustment method, recording medium, and servo driver | |
CN100354078C (en) | Double ring detecting mechanism for robot joint speed reducer flexibility | |
CN111076761B (en) | Magnetic encoder calibration method and system | |
CN112692819B (en) | Encoder group position compensation method and robot module position compensation method | |
CN116182924A (en) | Phase compensation method, device and magnetic encoder | |
TWI411220B (en) | Motor control device | |
CN108471266B (en) | Angular velocity instruction and rotation angle position preprocessing system of servo motor | |
JP2016001103A (en) | Position detector | |
JP3365063B2 (en) | Rotation angle detection method | |
JP6887189B2 (en) | Power failure tracing method and system for mold altitude indicator | |
CN115373433B (en) | Turntable motion compensation method, device, equipment and storage medium | |
CN111089610A (en) | Signal processing method and device of encoder and related components | |
CN108107882B (en) | Automatic calibration and detection system of service robot based on optical motion tracking | |
CN114298098A (en) | Data processing method and device for error correction | |
CN111664882B (en) | Encoder position signal estimation method based on time stamp | |
CN210863035U (en) | Eccentric correcting device of double-feedback rotary encoder | |
KR20170073351A (en) | Motor controlling apparatus and method | |
CN112665531A (en) | Multi-pair-level rotation coordinate transformation angle-solving method | |
TW201720045A (en) | Method for dynamically compensating the torque ripple of a motor | |
TWI748586B (en) | Motor control device and motor control method |
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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210908 Address after: 518103 workshop 601, building 3, Zhizao Center Park, No. 12, Chongqing Road, Heping community, Fuhai street, Bao'an District, Shenzhen, Guangdong Province Applicant after: Shenzhen Dazu robot Co.,Ltd. Address before: 518000 No. 9988 Shennan Road, Nanshan District, Shenzhen, Guangdong Applicant before: HAN'S LASER TECHNOLOGY INDUSTRY GROUP Co.,Ltd. Applicant before: Shenzhen Dazu robot Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |