Control method, control system and compensation module for a robot arm
Patent Information
- Application Number
- CN202510618289.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2025-04-30
- Filing Date
- 2025-05-14
- Publication Date
- 2026-10-30
AI Technical Summary
机械手臂的关节模块通常由减速机、马达及感知器(位置及/或速度)所组成,但由于减速机存在角传动的误差,会使机械手臂在运作时,产生非预期的震动造成系统的共振,且可能造成机械手臂的夹持物因而被影响或损坏
Smart Images

Figure CN123000756A_ABST
Abstract
Description
Technical Field
[0001] This invention relates to a control method for a robotic arm, and more particularly to reducing the vibration of the motor in the robotic arm. Background Technology
[0002] The development of automated production has increased the demand for robotic arms, and their performance, such as control technology, has become a focus for various companies. The joint modules of a robotic arm typically consist of a reducer, a motor, and sensors (position and / or speed). However, due to angular transmission errors in the reducer, unexpected vibrations can occur during operation, causing system resonance and potentially affecting or damaging the objects being held by the robotic arm. Therefore, there is an urgent need for control compensation technology for the joint modules of robotic arms. Summary of the Invention
[0003] According to the control method and compensation module of the robotic arm provided by the present invention, the learning controller first performs the learning of the angular transmission error relationship and forms an angular transmission error table with the generated relevant values. The table is stored in the storage circuit of the compensation module. During compensation control, the angular transmission error table in the storage circuit is used to calculate compensation parameters (such as amplitude and phase). Finally, the amplitude, phase and other information are used to generate compensation control (such as position compensation and / or speed compensation) to compensate for the control of the robotic arm.
[0004] According to a first aspect of the present invention, a control method for a robotic arm is provided. The control method includes setting up a speed reducer, which includes an assembly method and angular transmission error. The control method also includes setting up a control system to control the robotic arm based on the assembly method of the speed reducer and the angular transmission error.
[0005] According to a second aspect of the invention, a compensation module is provided. The compensation module includes a storage circuit coupled between a joint module and an amplitude and phase calculation circuit, for storing an angular transmission error table. The compensation module also includes an amplitude and phase calculation circuit coupled between the storage circuit and an error compensation calculation circuit, for obtaining the amplitude and phase of the elastic cup and the rigid gear of the reducer. The compensation module further includes an error compensation calculation circuit coupled to a position encoder, the storage circuit, the amplitude and phase calculation circuit, and a control loop, for reading the motor position and motor speed from the position encoder, and obtaining a position compensation value based on the angular transmission error table, the amplitude and phase of the elastic cup, the amplitude and phase of the rigid gear, and the motor position; and obtaining a speed compensation value based on the angular transmission error table, the amplitude and phase of the elastic cup, the amplitude and phase of the rigid gear, the motor position, and the motor speed. The compensation module transmits the position compensation value and the speed compensation value to the control loop of the robotic arm to compensate for the joint module's control of the robotic arm.
[0006] According to a third aspect of the present invention, a control system for a robotic arm is provided. The control system includes a speed reducer, which incorporates an assembly method and angular transmission error. The control system also includes a control loop that adjusts the control information of the robotic arm based on the assembly method of the speed reducer and the angular transmission error. Attached Figure Description
[0007] To make the above-mentioned objects, features and advantages of the present invention more apparent and understandable, the specific embodiments of the present invention will be described in detail below with reference to the accompanying drawings, wherein:
[0008] Figure 1 A functional block diagram illustrating an example of a robotic arm and control system according to an embodiment of the present invention is shown.
[0009] Figure 2 An angular transmission error diagram of the compensation control according to an embodiment of the present invention is shown.
[0010] Figure 3A The diagram shows a cosine signal diagram and a sine signal diagram of the elastic toothed cup 240 with compensation control according to an embodiment of the present invention.
[0011] Figure 3B The diagram shows a cosine signal diagram and a sine signal diagram of a rigid gear 242 with compensation control according to an embodiment of the present invention.
[0012] Figure 3C The diagram shows the cosine product signal of the error of the elastic toothed cup 240 and the sine product signal of the error of the elastic toothed cup 240 according to an embodiment of the present invention.
[0013] Figure 3D The diagram shows the cosine product signal of the error of the rigid gear 242 and the sine product signal of the error of the rigid gear 242 according to an embodiment of the present invention.
[0014] Figure 4 The diagram shows the vibration values and torque output before and after angular transmission error compensation according to an embodiment of the present invention.
[0015] Figure 5 A flowchart of a compensation joint module according to an embodiment of the present invention is shown.
[0016] Figure label:
[0017] 100: Control loop
[0018] 120: Position Controller
[0019] 130: Speed Controller
[0020] 140: Current Controller
[0021] 150: Speed Calculator
[0022] 200: Robotic Arm
[0023] 210: Joint Module
[0024] 211: Motor
[0025] 212: Gearbox
[0026] 213: Output encoder
[0027] 214: Wave Generator
[0028] 215: Flexible Toothed Cup
[0029] 216: Rigid Gear
[0030] 220: Position Encoder
[0031] 230: Current sensor
[0032] 300: Compensation Module
[0033] 310: Storage circuit
[0034] 320: Amplitude and Phase Calculation Circuit
[0035] 321:ATE table
[0036] 322: Angular transmission error diagram
[0037] 330: Error Compensation Calculation Circuit
[0038] 333a: Cosine signal diagram of elastic toothed cup
[0039] 333b: Sine wave diagram of elastic toothed cup
[0040] 334a: Cosine signal diagram of elastic toothed cup
[0041] 334b: Sine wave diagram of elastic toothed cup
[0042] 335a: Cosine product signal diagram of elastic toothed cup error
[0043] 335b: Sine product signal diagram of elastic toothed cup error
[0044] 336a: Cosine product signal diagram of elastic toothed cup error
[0045] 336b: Sine product signal diagram of elastic toothed cup error
[0046] 400: Learning Controller
[0047] 410: Vibration numerical diagram
[0048] 420: Torque Output Diagram
[0049] S510~S540: Steps
[0050] Ctrl_Crt: Controls current
[0051] Motor_Crt: Motor current
[0052] Pos: Rotation state
[0053] Pos_Motor: Motor position
[0054] Pos_Cmd: Command location
[0055] Pos_Err: Absolute position difference
[0056] Pos_Comp: Position compensation value
[0057] Spd_Motor: Motor speed
[0058] Spd_Ctrl: Speed control
[0059] Spd_Diff: Absolute speed difference
[0060] Spd_Comp: Speed compensation value
[0061] Tor_Motor: Motor torque
[0062] Tor_Cmd: Torque command Detailed Implementation
[0063] Figure 1 A functional block diagram illustrating an example of a robotic arm 200 and a control loop 100 according to an embodiment of the present invention is shown. Figure 1 As shown, the control loop 100 is coupled to the joint module 210 of the robotic arm 200 to control the motion state of the robotic arm 200. The joint module 210 includes a motor 211, a position encoder 220 that senses the rotation state Pos of the motor 211, a current sensor 230 that senses the motor current Motor_Crt of the motor 211, a reducer 212 coupled to the motor 211, and an output encoder 213 for indicating the output position value of the reducer 212. In some embodiments, the position encoder 220 and / or the output encoder 213 may be selected as optical encoders and have different resolutions to indicate how many values (scales) one revolution of the encoder can be divided into, for example, one revolution can be divided into 100,000 Pulses to represent information of one 360-degree revolution.
[0064] The reducer 212 may include a wave generator 214, a flexible spline 215, and a circular spline 216. The wave generator 214 can be formed by incorporating thin ball bearings into the outer ring of an elliptical cam. While the inner ring of the bearing is fixed to the cam, the outer ring can be elastically deformed by the balls. The wave generator 214 typically serves as the input to the reducer 212 and is coupled to the output shaft of the motor 211. The flexible spline 215 can be formed from a thin, cup-shaped flexible metal, with toothed grooves on its outer ring at the opening, and its bottom (or cup-shaped bottom) serving as a partition. It typically serves as the output of the reducer 212. The circular spline 216 can be in the form of a rigid ring, with toothed grooves on its inner ring, and is fixed to the housing of the reducer 212. In some embodiments, the number of gears Zf of the rigid gear 216 can be two more than the number of gears Zc of the elastic toothed cup 215. For example, the number of gears Zf of the rigid gear 216 is 242, while the number of gears Zc of the elastic toothed cup 215 is 240. Alternatively, the number of gears Zf of the rigid gear 216 is 202, while the number of gears Zc of the elastic toothed cup 215 is 200. Or, for example, the number of gears Zf of the rigid gear 216 is 162, while the number of gears Zc of the elastic toothed cup 215 is 160.
[0065] The number of gears Zc in the flexible toothed cup and the number of gears Zf in the rigid gear determine the reduction ratio i of the reducer 212. The assembly method of the wave generator 214, the flexible toothed cup 215, and the rigid gear 216 determines the reduction ratio i and the direction of rotation. For example, when Zf is 240 and Zc = 242, and the input is the wave generator 214, the output is the flexible toothed cup 215, and the fixed position is the rigid gear 216, the reduction ratio i = (Zf - Zc) / Zf = (240 - 242) / 240 = -1 / 120. Furthermore, the reduction ratio i is equal to 1 / GR (the reduction ratio parameter). Therefore, in the above example, the reduction ratio parameter GR is 120, meaning that when the motor 211 runs 120 revolutions (the input of the reducer 212), the output of the joint module 210 (also the output of the reducer 212) runs 1 revolution. Similarly, when motor 211 is running at 120 RPM (the input of reducer 212), the output of joint module 210 (also the output of reducer 212) is running at 1 RPM. Since the reduction ratio i = -1 / 120 in the above example is negative, it means that Out (output) = (-1 / 120)In (input), that is, the rotation direction of the input end is opposite to the rotation direction of the output end.
[0066] In addition to the reducer 212 being assembled with a wave generator 214 as the input, an elastic gear cup 215 as the output, and a rigid gear 216 as the fixed component, the reducer 212 can also be assembled with a wave generator 214 as the input, a rigid gear 216 as the output, and an elastic gear cup 215 as the fixed component, thus changing the input and output to different gear ratios and setting different reduction ratios. Regardless of the assembly method, the rotational state (or input value) received by the reducer 212 and the rotational state (or output value) generated after reduction both exhibit angular transmission error. Therefore, the control circuit 100 (or control system) of the robotic arm 200 generates compensation values (such as position compensation value Pos_Comp and / or speed compensation value Spd_Comp) based on the assembly method of the reducer 212 to adjust control information (such as control current Ctrl_Crt or motor voltage, etc.), thereby changing the control of the motor 211, reducing the vibration of the robotic arm 200, and improving the performance and accuracy of the robotic arm 200.
[0067] Control loop 100 is coupled to robotic arm 200 to control the movement of robotic arm 200. Control loop 100 is coupled to compensation module 300 to obtain the movement state of robotic arm 200 via compensation module 300. Control loop 100 may be a part of the circuitry within an electrical control box outside robotic arm 200, or a part of the circuitry within a vehicle such as an autonomous moving device (AMR) or guided moving device (AGC). Control loop 100 includes a position controller 120 coupled to position encoder 220 of robotic arm 200. Position controller 120 receives the absolute position difference Pos_Err between the command position Pos_Cmd and the motor position Pos_Motor (or the sum of motor position Pos_Moto and position compensation value Pos_Comp) provided by position encoder 220, wherein multiple arithmetic units (such as adders or subtractors) are coupled between position controller 120 and position encoder 220. The absolute position difference Pos_Err can be calculated using an adder based on the command position Pos_Cmd and the motor position Pos_Motor (or the sum of the motor position Pos_Moto and the position compensation value Pos_Comp). Figure 1As shown. The command position Pos_Cmd is the position command to control the movement position of the robotic arm 200, that is, the position command to control the rotation position of the motor 211 of the joint module 210; while the motor position Pos_Motor is the rotation state Pos of the joint module 210 read by the position encoder 220, which represents the actual rotation position of the motor 211 and is related to the actual movement position of the robotic arm 200. In other words, the joint module 210 is the driver of the robotic arm 200, and the position controller 120 provides speed control Spd_Ctrl based on the absolute position difference Pos_Err, so that the joint module 210 can adjust its control over the robotic arm 200.
[0068] The control loop 100 also includes a speed calculator 150, a position encoder 220 coupled to the speed controller 130 and the robotic arm 200. The speed calculator 150 generates a motor speed Spd_Motor based on the motor position Pos_Motor received from the position encoder 220, for example, by differential filtering the motor position to obtain the motor speed. The speed calculator 150 provides the motor speed Spd_Motor to the compensation module 300, for example, to the error compensation calculation circuit 330 of the compensation module 300.
[0069] The speed controller 130 of the control loop 100 is coupled to the position controller 120 and the speed calculator 150. The speed controller 130 generates a torque command Tor_Cmd based on the absolute speed difference Spd_Diff obtained by the adder using the motor speed Spd_Motor information generated by the speed calculator 150 and the speed control Spd_Ctrl generated by the position controller 120 (or the speed compensation value Spd_Comp provided by the compensation module 300), which is used to adjust the drive information of the joint module 210.
[0070] The control loop 100 also includes a current controller 140, a motor 211 coupled to the joint module 210, and a speed controller 130 coupled to the current sensor 230 via an arithmetic unit. Thus, the current controller 140 provides drive information to the robotic arm 200 based on the torque command Tor_Cmd (obtained by subtracting the motor current Motor_Crt sensed by the current sensor 230 from the output of the speed controller 130), that is, provides control current Ctrl_Crt to the joint module 210 of the robotic arm 200 to control the rotation state of the joint module 210, such as the rotation state Pos of the motor 211.
[0071] As discussed above, since there is an angle transmission error (ATE) between the motor rotation information obtained at the input end of the reducer 212 and the arm operation information generated at the output end after conversion, the compensation module 300 of the present invention is coupled to the control loop 100 and the joint module 210 to compensate for the ATE caused by the reducer 212. The motor rotation information includes, for example, the motor's rotation state Pos, the rotation position of the motor 211, etc., while the arm operation information includes, for example, information controlling the operation of the robotic arm 200. The compensation module 300 includes a storage circuit 310 coupled to the amplitude and phase calculation circuit 320, and the amplitude and phase calculation circuit 320 coupled to the error compensation calculation circuit 330, and the error compensation calculation circuit 330 coupled to the speed controller 130 via an adder. The storage circuit 310 is used to store the angle transmission error table, i.e., ATEtable 321. ATEtable 321 is pre-generated by a learning controller 400 coupled to the control loop 100 and the joint module 210.
[0072] In some embodiments, the learning controller 400 receives the number of gears Zc of the flexible gear cup 215 and the number of gears Zf of the rigid gear 216 (e.g., coupled to the joint module 210 for reading or input by the user) to obtain the reduction ratio i of the reducer 212 of the joint module 210, for example, the aforementioned reduction ratio i = (Zf - Zc) / Zf = 1 / GR. Next, the learning controller 400 resets the counter and sets the rotation state of the joint module 210 to the origin position, for example, by inputting a position command Pos_Cmd to the control loop 100, such as... Figure 1As shown. Next, the learning controller 400 calculates the amount of data Data_Size related to the reduction ratio i, where the amount of data is the reduction ratio parameter (GR) multiplied by 360, which can be expressed as Data_Size = GR * 360. Next, the learning controller 400 moves the motor 211 one degree, for example, by inputting the position command Pos_Cmd to the control loop 100, and after waiting for a preset time, for example, three seconds, it reads and records the input position value (D_in) of the position encoder 220, for example, the motor position Pos_Motor, and the output position value (D_Out) of the output encoder 213. Next, the learning controller 400 increments the count by one and determines whether the count is greater than or equal to the amount of data Data_Size. When the count is greater than or equal to the set amount of data Data_Size, the learning controller 400 calculates the compensation value based on the input position value (D_in), the output position value (D_Out), and the reduction ratio i to form ATE table 321, and stores it in the storage circuit 310 of the compensation module 300. Conversely, when the count is less than the data quantity Data_Size, the learning controller 400 repeatedly moves the motor 211 by one degree displacement, waits for a preset time, such as three seconds, and then reads and records the input position value (D_in) of the position encoder 220, such as the motor position Pos_Motor, and the output position value (D_Out) of the output encoder 213, and increments the count by one until the count is greater than or equal to the set data quantity Data_Size. Therefore, ATE table 321 can be generated according to the angular transmission accuracy formula: T_err[]=D_out[]-(D_in[] / GR), which represents the difference (T_err[]) between the ideal output (D_in[] / GR) and the actual output (D_out[]) after any angle is input at the input end (motor end). ATE table 321 can also be represented by an angular transmission error diagram, such as Figure 2 The angular transmission error diagram 322 shows the relationship between the output position value (D_Out) of the output encoder 213 and the transmission error (T_err[]), which is the transmission error (T_err[]) corresponding to each rotation position. In other words, by using the rotation position of the output encoder 214 and the transmission error of the reducer 212, the actual rotation position of the motor 211 can be obtained, thus obtaining the actual control information.
[0073] After the storage circuit 310 of the compensation module 300 stores the ATE table 321, the compensation module 300 can perform compensation for the control of the joint module 210 by the control loop 100 according to the ATE table 321. Before performing compensation control, the compensation module 300 needs to obtain compensation parameters, which are related to the amplitude AMP and phase of the elastic toothed cup 215 and the amplitude AMP and phase of the rigid gear 216. Thus, the amplitude and phase calculation circuit 320 of the compensation module 300 obtains them sequentially according to the following steps and equations. First, the cosine and sine diagrams of the elastic toothed cup 215 and the rigid gear 216 are obtained according to the following equations 1 and 2 respectively:
[0074] Cosine graph = cos(-Index × 2 × π × Z)
[0075] (Equation 1)
[0076] Sine graph = sin(-Index × 2 × π × Z)
[0077] (Equation 2)
[0078] Where Z represents the number of gears, such as Zc for the flexible toothed cup 215 or Zf for the rigid gear 216, and Index is the position pointer, which is the equally spaced position at the input end (motor end). As mentioned above, the input position value (D_in) of the position encoder 220 is recorded once for each degree of the motor 211. Therefore, the position pointer Index represents the multiple positions of the motor 211 from 0 to 360*GR degrees (output position value (D_out)). The cosine and sine diagrams of the flexible toothed cup 215 can be referenced in... Figure 3A The cosine signal diagram 333a and the sine signal diagram 333b of the elastic toothed cup are shown. Taking the number of gears Zc of the elastic toothed cup 215 as 240 as an example, 240Hz is used as one revolution for the cosine and sine signal diagrams, for subsequent calculations. Figure 3C The cosine and sine diagrams of the elastic toothed cup 215 can be referenced in [reference needed]. Figure 3B The cosine signal diagram 334a and the sine signal diagram 334b of the elastic toothed cup are shown. Taking the number of gears Zc of the elastic toothed cup 215 as 242 as an example, 242Hz is used as one revolution of cosine and sine signal diagrams for subsequent calculations. Figure 3D The foundation.
[0079] Next, based on Equations 1 and 2, the error cosine product diagram and error sine product diagram of the elastic toothed cup 215, and the error cosine product diagram and error sine product diagram of the rigid gear 216 can be obtained according to the following Equations 3 and 4:
[0080] Error cosine product graph = cos(-Index × 2 × π × Z) × ATEtable(Index)
[0081] (Equation 3) Error Sine Product Chart = sin(-Index × 2 × π × Z) × ATEtable(Index)
[0082] (Equation 4)
[0083] The ATE table is the angular transmission error table, for example, ATE table 321. Therefore, for example, adding the use of... Figure 2 Data at each point and Figure 3A Multiplying the data at each point allows for the preprocessing of calculating the inner product vector of the transmission error and the 240Hz characteristic signal (cosine and sine signals). The error cosine product diagram and error sine product diagram of the elastic toothed cup 215 can be referenced in... Figure 3C The cosine product signal of the elastic gear cup error is shown in Figure 335a, and the sine product signal of the elastic gear cup error is shown in Figure 335b, where the number of gears Zc of the elastic gear cup 215 is 240 as an example. Furthermore, the use of... Figure 2 Data at each point and Figure 3B Multiplying the data at each point allows for the calculation of the preprocessing of the inner product vector between the transmission error and the 242Hz characteristic signal (cosine and sine signals). The error cosine product diagram and error sine product diagram of the elastic toothed cup 215 can be referenced in... Figure 3D The cosine product signal of the elastic gear cup error is shown in Figure 336a and the sine product signal of the elastic gear cup error is shown in Figure 336b, where the number of gears Zc of the elastic gear cup 215 is 242 as an example. In addition, the structure of the rigid gear 216 (such as the number of gears Zf) can also be used as a basis for calculation.
[0084] Next, based on equations 3 and 4, the average value A of the product of cosines of the error and the average value B of the product of sines of the error of the elastic toothed cup 215 can be obtained according to the following equations 5 and 6, respectively:
[0085]
[0086] Where Time represents the total number of times the position pointer (Index) is recorded, indicating how many angular transmission error data points are recorded when the output end (joint end) rotates one revolution. For example, if 1 degree is recorded once, then the total number of times Time is 360*GR.
[0087] Next, based on the average value A of the product of cosines of the errors and the average value B of the product of sines of the errors from Equations 5 and 6, the amplitude AMP and phase of the elastic toothed cup 215, and the amplitude AMP and phase of the rigid gear 216, can be obtained respectively from Equations 7 and 8:
[0088]
[0089] After the amplitude and phase calculation circuit 320 obtains the compensation parameters (amplitude AMP and phase of the elastic toothed cup 215, and amplitude AMP and phase of the rigid gear 216), the error compensation calculation circuit 330 of the compensation module 300 can then calculate the position compensation value Pos_Comp and the speed compensation value Spd_Comp for compensation control based on the motor position Pos_Motor and motor speed Spd_Motor, respectively, using the following equations 9 and 10:
[0090] Position compensation value Pos_Comp = ∑ q=zf,Zc Amp -q ×cos(2π×q×Pos_Motor+Phase -q )
[0091] (Equation 9)
[0092]
[0093] The motor position Pos_Motor and motor speed Spd_Motor can be provided by the position encoder 220 and speed calculator 150 coupled to the error compensation calculation circuit 330.
[0094] Continue to refer to Figure 1 The position compensation value Pos_Comp generated by the error compensation calculation circuit 330 of the compensation module 300 can be provided to the adder to obtain the sum of the position compensation value Pos_Comp and the motor position Pos_Motor. This allows the position controller 120 to subtract the sum of the position compensation value Pos_Comp and the motor position Pos_Motor from the position command Pos_Cmd through another adder, thereby obtaining the absolute position difference Pos_Err, which is provided to the position controller 120. Similarly, the speed compensation value Spd_Comp generated by the error compensation calculation circuit 330 of the compensation module 300 can be provided to the adder. This allows the adder to output the absolute speed difference Spd_Diff to the speed controller 130 based on the speed control Spd_Ctrl, the motor speed Spd_Motor, and the speed compensation value Spd_Comp output by the position controller 120. This, in turn, generates a torque command Tor_Cmd to the current controller 140 and outputs a control current Ctrl_Crt to the motor 211 to compensate for the operation of the joint module 210.
[0095] As discussed above, by providing the position compensation value Pos_Comp and speed compensation value Spd_Comp generated by the error compensation calculation circuit 330 of the compensation module 300 to the control loop 100, compensation control for the joint modules of the robotic arm can be provided for angular transmission error compensation. This reduces system resonance and improves the accuracy, performance, and reliability of the robotic arm during operation, while also preventing adverse effects or damage to the gripped object caused by resonance. The following will refer to... Figure 4 This describes the control and improvement of the joint module 210 of the robotic arm 200 using the compensation module 300 provided in the embodiments of the present invention.
[0096] Figure 4 The diagram 410 shows vibration values before and after angular transmission error compensation (ATE comp) according to an embodiment of the present invention, and the torque output diagram 420 shows the results. Figure 4 As shown in vibration numerical diagram 410, by using the compensation module 300 to control the joint module using angular transmission error compensation (ATE comp), the vibration of the joint module 210 can be improved, reducing its vibration and stabilizing it. Similarly, as Figure 4 As shown in Figure 420, by using the compensation module 300 to provide angular transmission error compensation (ATEcomp) to control the joint module 210, the torque output of the joint module 210 can also be made more stable.
[0097] Figure 5 A flowchart of a compensation joint module according to an embodiment of the present invention is shown. In step S510, the compensation module 300 reads the motor position Pos_Motor and motor speed Spd_Motor of the motor 211 from the position encoder 220.
[0098] In step S520, the error compensation calculation circuit 330 calculates the error based on the angular transmission error table (e.g., stored in...). Figure 1 The compensation module 300 stores the ATE table 321 in the storage circuit 310, the phase and amplitude of the elastic toothed cup 216, the phase and amplitude of the rigid gear 215, and the motor position Pos_Motor to obtain the position compensation value Pos_Comp (for example, according to Equations 1 to 9).
[0099] In step S530, the error compensation calculation circuit 330 obtains the speed compensation value Spd_Comp (for example, according to Equations 1 to 8 and Equation 10) based on the angular transmission error table 321, the phase and amplitude of the elastic toothed cup 216, the phase and amplitude of the rigid gear 215, and the motor position Pos_Motor and the motor speed Spd_Motor.
[0100] In step S540, the compensation module 300 inputs the position compensation value Pos_Comp and the speed compensation value Spd_Comp into the control loop 100 of the joint module 210 to compensate the control information of the joint module 210.
[0101] In some configurations, the joint module 210 has an output encoder 213 coupled to the reducer 212, which is used to indicate the output position value of the joint module 210.
[0102] In some configurations, the angular transmission error table 321 can be generated by the following steps: The learning controller 400 reads the number of gears Zc of the flexible toothed cup 216, the number of gears Zf of the rigid gear 215, and the reduction ratio i of the joint module 210; the learning controller 400 resets the counter and sets the rotation state of the joint module 210 to the origin position; the learning controller 400 calculates the amount of data related to the reduction ratio i; the learning controller 400 controls the motor 211 to rotate by one degree, and after waiting for a default time, reads and records the input position value (D_in) of the position encoder 220 and the output position value (D_Out) of the output encoder 213; the learning controller 400... The learning controller 400 increments the counter and determines whether the counter is greater than or equal to the number of data points. When the counter is greater than or equal to the number of data points, the learning controller 400 calculates the angular transmission error table 321 based on the input position value (D_in), the output position value (D_Out), and the reduction ratio i, and stores it in the storage circuit 310 of the compensation module 300. Alternatively, when the counter is less than the number of data points, the learning controller 400 repeatedly controls the motor 211 to increase the rotational displacement by one degree (or two degrees, or other degrees), waits for a default time, reads and records the input position value (D_in) and the output position value (D_Out), and increments the counter until the counter is greater than or equal to the number of data points.
[0103] Therefore, obtaining position compensation and speed compensation values through the error compensation calculation circuit of the compensation module includes: obtaining the average value of the cosine product and the average value of the sine product of the elastic gear cup based on the number of gears in the elastic gear cup, the angular transmission error table, the position pointer of the motor, and the total number of position pointer cycles using the amplitude and phase calculation circuit of the compensation module; obtaining the amplitude and phase of the elastic gear cup based on the average value of the cosine product and the average value of the sine product of the elastic gear cup; obtaining the average value of the cosine product and the average value of the sine product of the rigid gear based on the number of gears in the rigid gear, the angular transmission error table, the position pointer of the motor, and the total number of position pointer cycles using the amplitude and phase calculation circuit; and obtaining the amplitude and phase of the rigid gear based on the average value of the cosine product and the average value of the sine product of the rigid gear.
[0104] Furthermore, the number of teeth in a flexible gear can be two more than that in a rigid gear cup.
[0105] The technical terms used in this specification are based on common terminology in the field. Where this specification provides further explanation or definition of certain terms, the interpretation of those terms shall be based on the explanation or definition provided in this specification. Each embodiment of the present invention has one or more technical features. Where feasible, those skilled in the art may selectively implement some or all of the technical features in any embodiment, or selectively combine some or all of the technical features in these embodiments.
[0106] The above-described invention provides different features for carrying out some embodiments or examples of the invention. Specific examples of components and configurations described above (e.g., mentioned values or names) are provided to simplify / illustrate some embodiments of the invention. Of course, these components and configurations are merely examples and are not intended to be limiting. Furthermore, reference numerals and / or letters may be repeated in various embodiments of the invention. This repetition is for simplicity and clarity and does not in itself indicate a relationship between the various embodiments and / or configurations discussed.
[0107] Although the present invention has been disclosed above with reference to preferred embodiments, it is not intended to limit the present invention. Any person skilled in the art can make some modifications and improvements without departing from the spirit and scope of the present invention. Therefore, the scope of protection of the present invention shall be defined by the claims.
Claims
1. A control method for a robotic arm: A speed reducer is provided, which includes an assembly method and an angular transmission error; and A control system is set up to control a robotic arm based on the assembly method of the reducer and the angular transmission error.
2. The control method as described in claim 1, characterized in that, One joint module of the robotic arm includes a reducer, a motor, and a position encoder, and the reducer includes a flexible cup and a rigid gear. The control method includes: The motor position and motor speed are read from the position encoder by a compensation module; By means of an error compensation calculation circuit of the compensation module, a position compensation value is obtained based on an angle transmission error table stored in a storage circuit of the compensation module, the phase and amplitude of the elastic toothed cup, the phase and amplitude of the rigid gear, and the position of the motor. Using this error compensation calculation circuit, a speed compensation value is obtained based on the angular transmission error table, the phase and amplitude of the elastic toothed cup, the phase and amplitude of the rigid gear, the motor position, and the motor speed; and The position compensation value and the speed compensation value are input and coupled to a control loop of the joint module through the compensation module to compensate the control of the joint module.
3. The control method as described in claim 2, characterized in that, The joint module has an output encoder coupled to the reducer for indicating an output position value of the joint module.
4. The control method as described in claim 3, characterized in that, This angular transmission error table is generated through the following steps: A reduction ratio of the joint module is read by a learning controller regarding the number of gears in the flexible toothed cup and the number of gears in the rigid gear; The learning controller resets a counter's count and sets the joint module's rotation state to an origin position. The learning controller calculates a number of data points related to the deceleration ratio; The learning controller moves the joint module one degree, and after waiting for a default time, reads and records an input position value of the position encoder and an output position value of the output encoder. The learning controller increments the count by one and determines whether the count is greater than or equal to the amount of data; and When the count is greater than or equal to the amount of data, the learning controller calculates the angular transmission error table based on the input position value, the output position value, and the reduction ratio, and stores it in the storage circuit of the compensation module. or When the count is less than the number of data, the learning controller repeatedly moves the joint module one degree, waits for the default time, reads and records the input position value and the output position value, and increments the count by one until the count is greater than or equal to the number of data.
5. The control method as described in claim 2, characterized in that, The position compensation value and the velocity compensation value obtained by the error compensation calculation circuit of the compensation module include: By means of an amplitude and phase calculation circuit of the compensation module, based on the number of gears of the elastic toothed cup, the angular transmission error table, a position pointer of the motor, and a total number of times the position pointer is used, an average value of the cosine product of errors and an average value of the sine product of errors of the elastic toothed cup are obtained. The amplitude and phase of the elastic toothed cup are obtained by using the amplitude and phase calculation circuit based on the average value of the cosine product of the error and the average value of the sine product of the error. Using the amplitude and phase calculation circuit, based on the number of gears in the rigid gear, the angular transmission error table, the position pointer of the motor, and the total number of times the position pointer has been used, the average value of the cosine product of the errors of the rigid gear and the average value of the sine product of the errors are obtained; and The amplitude and phase calculation circuit is used to obtain the amplitude and phase of the rigid gear based on the average value of the cosine product of the error and the average value of the sine product of the error of the rigid gear; wherein, in the assembly method, the number of teeth of the rigid gear is two more than the number of teeth of the elastic toothed cup.
6. A compensation module, comprising: A storage circuit stores a corner transmission error table; An amplitude and phase calculation circuit is used to obtain the amplitude and phase of an elastic toothed cup in a speed reducer and the amplitude and phase of a rigid gear; and An error compensation calculation circuit reads the motor position and motor speed from a position encoder, and obtains a position compensation value based on an angular transmission error table, the amplitude and phase of the flexible toothed cup, the amplitude and phase of the rigid gear, and the motor position. It also obtains a speed compensation value based on the same angular transmission error table, the amplitude and phase of the flexible toothed cup, the amplitude and phase of the rigid gear, the motor position, and the motor speed. The compensation module transmits the position compensation value and the speed compensation value to a control loop of a robotic arm to compensate for the control of the robotic arm by a joint module.
7. The compensation module as claimed in claim 6, characterized in that, The joint module has an output encoder coupled to the reducer for indicating an output position value of the joint module.
8. The compensation module as described in claim 7, characterized in that: The reduction ratio of the joint module is read regarding the number of gears of the flexible toothed cup and the number of gears of the rigid gear; Reset a counter to a count and set the rotation state of the joint module to an origin position; Calculate the amount of data related to this reduction ratio; Move the joint module one degree, and after waiting for a default time, read and record the input position value of the position encoder and the output position value of the output encoder; Increment the count by one, and determine whether the count is greater than or equal to the number of data items; and When the count is greater than or equal to the data quantity, a learning controller calculates the angular transmission error table based on the input position value, the output position value, and the reduction ratio, and stores it in the storage circuit of the compensation module. or When the count is less than the number of data, the learning controller repeatedly moves the joint module one degree, waits for the default time, reads and records the input position value and the output position value, and increments the count by one until the count is greater than or equal to the number of data.
9. The compensation module as claimed in claim 6, characterized in that, The amplitude and phase calculation circuit obtains the amplitude and phase of the elastic toothed cup and the amplitude and phase of the rigid gear through the following operations: Based on the number of gears in the elastic toothed cup, the angular transmission error table, the position pointer of the motor, and the total number of times the position pointer is used, the average value of the cosine product of the error and the average value of the sine product of the error of the elastic toothed cup are obtained. The amplitude and phase of the elastic toothed cup are obtained by averaging the cosine product and sine product of the error. Based on the number of gears in the rigid gear, the angular transmission error table, the position pointer of the motor, and the total number of times the position pointer has been used, the average value of the cosine product of the errors of the rigid gear and the average value of the sine product of the errors are obtained; and The amplitude and phase of the rigid gear are obtained by the amplitude and phase calculation circuit of the compensation module based on the average value of the cosine product of the error and the average value of the sine product of the error of the rigid gear; wherein the number of teeth of the rigid gear is two more than the number of teeth of the elastic toothed cup.
10. A control system for a robotic arm: A speed reducer, comprising an assembly method and an angular transmission error; and A control loop adjusts a control information of a robotic arm based on the assembly method of the reducer and the angular transmission error.
