Control method, device, equipment, storage medium and program of mechanical arm
Patent Information
- Application Number
- CN202311849711.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2023-12-28
- Publication Date
- 2026-09-18
- Estimated Expiration
- 2043-12-28
AI Technical Summary
然而,上述方法中,需要在多机械臂系统中设置大量的传感器,使得机械臂的控制成本较高
[0077] The robotic arm control method, apparatus, device, storage medium, and program provided in this application can obtain a first current position of a first robotic arm and a second current position of a second robotic arm. If the first current position and the second current position are different, the current driving voltage of the drive motor of the first robotic arm is obtained. Based on the first current position, the second current position, and the current driving voltage, the actual driving voltage of the drive motor is determined, and the drive motor is controlled according to the actual driving voltage to make the drive motor drive the first robotic arm to move. In the above method, only the position of the robotic arm needs to be obtained, without the need to obtain other operating parameters of the robotic arm. Only a position sensor for collecting the position of the robotic arm needs to be set, reducing the number of sensors required and lowering the control cost of the robotic arm.
Smart Images

Figure CN117565059B_ABST
Abstract
Description
Technical Field
[0001] This application relates to the field of intelligent agent control technology, and in particular to a control method, device, equipment, storage medium, and program for a robotic arm. Background Technology
[0002] A multi-arm system can include multiple robotic arms. When a multi-arm system is running, it is usually necessary to perform distributed consistency control on the multiple robotic arms in the system.
[0003] Currently, multiple sensors can be installed on each robotic arm in a multi-arm system. These sensors can be position sensors, speed sensors, and current sensors, among others. Operating parameters of the robotic arms can be collected using these sensors, and distributed, consistent control can be implemented across the multiple robotic arms in the system based on these collected parameters. For example, operating parameters could include the position, speed, and current of the robotic arm. However, this method requires a large number of sensors in the multi-arm system, resulting in high control costs for the robotic arms. Summary of the Invention
[0004] This application provides a control method, apparatus, device, storage medium, and program for a robotic arm, which can reduce the control cost of the robotic arm.
[0005] In a first aspect, this application provides a control method for a robotic arm, comprising:
[0006] The first current position of the first robotic arm and the second current position of each second robotic arm are obtained. The number of second robotic arms is one or more, and the first robotic arm and the second robotic arm are communicatively connected.
[0007] If the first current position is different from the second current position of any one or more second robotic arms, then obtain the current driving voltage of the drive motor of the first robotic arm;
[0008] Based on the first current position, the second current position of each second robotic arm, and the current driving voltage, the actual driving voltage of the drive motor is determined, and the drive motor is controlled according to the actual driving voltage so that the drive motor drives the first robotic arm to move.
[0009] In one possible implementation, determining the actual drive voltage of the drive motor based on the first current position, the second current position of each second robotic arm, and the current drive voltage includes:
[0010] Based on the first current position and the second current position of each second robotic arm, a first intermediate control signal is determined to control the first robotic arm;
[0011] The estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current are obtained by driving the filter with the current drive voltage.
[0012] The actual driving voltage is determined based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current.
[0013] In one possible implementation, a first intermediate control signal for controlling the first robotic arm is determined based on the first current position and the second current position of each of the second robotic arms, including:
[0014] Determine the rate of change of position between the first current position and the second current position of each of the second robotic arms;
[0015] Determine the amount of position change corresponding to the rate of position change;
[0016] The first intermediate control signal is determined based on the first current position and the position change amount.
[0017] In one possible implementation, determining the first intermediate control signal based on the first current position and the position change amount includes:
[0018] Perform coordinate transformation on the first current position and the position change to obtain the third position information;
[0019] Determine the preset performance function and preset control coefficients;
[0020] The first intermediate control signal is determined based on the third position information, the preset performance function, and the preset control coefficient.
[0021] In one possible implementation, the preset control coefficients include a first coefficient, a second coefficient, and a third coefficient; determining the first intermediate control signal based on the third position information, the preset performance function, and the preset control coefficients includes:
[0022] The ratio of the third location information to the preset performance function is determined as the first ratio.
[0023] A first auxiliary function is obtained by performing a preset operation on the first coefficient, the second coefficient, and the first ratio.
[0024] The product of the third coefficient and the first auxiliary function is determined as the first intermediate control signal.
[0025] In one possible implementation, determining the actual driving voltage based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current includes:
[0026] The second auxiliary function is determined based on the first intermediate control signal and the estimated angular velocity;
[0027] The second intermediate control signal is determined based on the second auxiliary function and the estimated position;
[0028] Based on the estimated current and the second intermediate control signal, a third auxiliary function is determined;
[0029] The actual driving voltage is determined based on the third auxiliary function.
[0030] In one possible implementation, determining the second auxiliary function based on the first intermediate control signal and the estimated angular velocity includes:
[0031] The first intermediate control signal and the estimated angular velocity are subjected to coordinate transformation to obtain the fourth position information;
[0032] The ratio of the fourth location information to the preset performance function is determined as the second ratio.
[0033] The second auxiliary function is obtained by performing a preset operation on the preset first coefficient, the preset second coefficient, and the second ratio.
[0034] In one possible implementation, the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current are obtained by driving the filter with the current drive voltage, including:
[0035] The estimated current is obtained by driving the filter with the current driving voltage;
[0036] The estimated angular velocity is determined based on the estimated current;
[0037] The estimated position is determined based on the estimated angular velocity.
[0038] Secondly, this application provides a control device for a robotic arm, the device comprising: an acquisition module, a determination module, and a control module, wherein,
[0039] The acquisition module is used to acquire the first current position of the first robotic arm and the second current position of each second robotic arm, wherein there are one or more second robotic arms, and the first robotic arm and the second robotic arm are communicatively connected.
[0040] If the first current position is different from the second current position of any one or more second robotic arms, the acquisition module is further configured to acquire the current driving voltage of the drive motor of the first robotic arm;
[0041] The determining module is used to determine the actual driving voltage of the drive motor based on the first current position, the second current position of each second robotic arm, and the current driving voltage;
[0042] The control module is used to control the drive motor according to the actual drive voltage, so that the drive motor drives the first robotic arm to move.
[0043] In one possible implementation, the determining module is specifically used for,
[0044] Based on the first current position and the second current position of each second robotic arm, a first intermediate control signal is determined to control the first robotic arm;
[0045] The estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current are obtained by driving the filter with the current drive voltage.
[0046] The actual driving voltage is determined based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current.
[0047] In one possible implementation, the determining module is specifically used for,
[0048] Determine the rate of change of position between the first current position and the second current position of each of the second robotic arms;
[0049] Determine the amount of position change corresponding to the rate of position change;
[0050] The first intermediate control signal is determined based on the first current position and the position change amount.
[0051] In one possible implementation, the determining module is specifically used for,
[0052] Perform coordinate transformation on the first current position and the position change to obtain the third position information;
[0053] Determine the preset performance function and preset control coefficients;
[0054] The first intermediate control signal is determined based on the third position information, the preset performance function, and the preset control coefficient.
[0055] In one possible implementation, the preset control coefficients include a first coefficient, a second coefficient, and a third coefficient; the determining module is specifically used for,
[0056] The ratio of the third location information to the preset performance function is determined as the first ratio.
[0057] A first auxiliary function is obtained by performing a preset operation on the first coefficient, the second coefficient, and the first ratio.
[0058] The product of the third coefficient and the first auxiliary function is determined as the first intermediate control signal.
[0059] In one possible implementation, the determining module is specifically used for,
[0060] The second auxiliary function is determined based on the first intermediate control signal and the estimated angular velocity;
[0061] The second intermediate control signal is determined based on the second auxiliary function and the estimated position;
[0062] Based on the estimated current and the second intermediate control signal, a third auxiliary function is determined;
[0063] The actual driving voltage is determined based on the third auxiliary function.
[0064] In one possible implementation, the determining module is specifically used for,
[0065] The first intermediate control signal and the estimated angular velocity are subjected to coordinate transformation to obtain the fourth position information;
[0066] The ratio of the fourth location information to the preset performance function is determined as the second ratio.
[0067] The second auxiliary function is obtained by performing a preset operation on the preset first coefficient, the preset second coefficient, and the second ratio.
[0068] In one possible implementation, the determining module is specifically used for,
[0069] The estimated current is obtained by driving the filter with the current driving voltage;
[0070] The estimated angular velocity is determined based on the estimated current;
[0071] The estimated position is determined based on the estimated angular velocity.
[0072] Thirdly, this application provides a control device for a robotic arm, including: a processor, and a memory communicatively connected to the processor;
[0073] The memory stores computer programs;
[0074] The processor executes the computer program to implement the method as described in any of the first aspects.
[0075] Fourthly, this application provides a computer-readable storage medium storing a computer program that, when executed by a computer, implements the method described in any of the first aspects.
[0076] Fifthly, this application provides a computer program product, including a computer program that, when executed by a computer, implements the method described in any of the first aspects.
[0077] The robotic arm control method, apparatus, device, storage medium, and program provided in this application can obtain a first current position of a first robotic arm and a second current position of a second robotic arm. If the first current position and the second current position are different, the current driving voltage of the drive motor of the first robotic arm is obtained. Based on the first current position, the second current position, and the current driving voltage, the actual driving voltage of the drive motor is determined, and the drive motor is controlled according to the actual driving voltage to make the drive motor drive the first robotic arm to move. In the above method, only the position of the robotic arm needs to be obtained, without the need to obtain other operating parameters of the robotic arm. Only a position sensor for collecting the position of the robotic arm needs to be set, reducing the number of sensors required and lowering the control cost of the robotic arm. Attached Figure Description
[0078] To more clearly illustrate the technical solutions in the embodiments of the present invention or the prior art, the drawings used in the description of the embodiments or the prior art will be briefly introduced below. Obviously, the drawings described below are only some embodiments of the present invention. For those skilled in the art, other drawings can be obtained based on these drawings without creative effort.
[0079] Figure 1 A schematic diagram of a nonlinear dead zone model provided in an embodiment of this application;
[0080] Figure 2 A schematic diagram illustrating an application scenario provided in an embodiment of this application;
[0081] Figure 3 A flowchart illustrating a control method for a robotic arm provided in an embodiment of this application;
[0082] Figure 4 A flowchart illustrating another control method for a robotic arm provided in an embodiment of this application;
[0083] Figure 5This is a schematic diagram of the structure of a control device for a robotic arm provided in an embodiment of this application;
[0084] Figure 6 This is a schematic diagram of the hardware structure of a control device for a robotic arm provided in an embodiment of this application. Detailed Implementation
[0085] Exemplary embodiments will now be described in detail, examples of which are illustrated in the accompanying drawings. When the following description relates to the drawings, unless otherwise indicated, the same numbers in different drawings denote the same or similar elements. The embodiments described in the following exemplary embodiments do not represent all embodiments consistent with this application. Rather, they are merely examples of apparatuses and methods consistent with some aspects of this application as detailed in the appended claims.
[0086] It should be noted that, in this document, the terms "comprising," "including," or any other variations thereof are intended to cover non-exclusive inclusion, such that a process, method, article, or apparatus that comprises a list of elements includes not only those elements but also other elements not expressly listed, or elements inherent to such a process, method, article, or apparatus. Unless otherwise specified, an element defined by the phrase "comprising one..." does not exclude the presence of other identical elements in the process, method, article, or apparatus that includes that element.
[0087] To facilitate understanding, the technical terms involved in the embodiments of this application will be explained first.
[0088] Multi-agent consensus: refers to the ability of all agents in a system to achieve a common goal or state when executing their respective strategies or actions, or to coordinate and cooperate with each other to achieve the overall stability and efficiency of the system.
[0089] Distributed consensus control refers to a system where, when agents communicate only locally, they can utilize the state information of themselves and their neighbors to ensure that certain states of agents in the system reach the same value over time, or that the difference between their states tends to zero over time.
[0090] Dead-zone function: refers to a function that satisfies the following dead-zone model:
[0091]
[0092] in,
[0093] The following is combined with Figure 1 The dead zone model will be explained. Figure 1 This is a schematic diagram of a nonlinear dead zone model provided in an embodiment of this application.
[0094] like Figure 1 As shown, if u i ≥b ir ,but If u i =0, then D i (u i )=0; if u i ≤-b il ,but
[0095] In this embodiment of the application, u i The driving voltage for the robotic arm's drive motor, D i (u i This can be the drive voltage for the motor of a robotic arm with a dead zone.
[0096] It should be understood that if -b il i ir The robotic arm is affected by dead-zone voltage. That is, if -b il i ir In a multi-arm robotic system, the robotic arms may be distributed inconsistently.
[0097] To facilitate understanding, the following will be combined with... Figure 2 The application scenarios involved in the embodiments of this application are described.
[0098] Figure 2 This is a schematic diagram illustrating an application scenario provided by an embodiment of this application. For example... Figure 2 As shown, a multi-robotic arm system may include robotic arm 1, robotic arm 2, ..., and robotic arm n, and may also include drive motor 1, drive motor 2, ..., and drive motor n. Here, n is an integer greater than 2.
[0099] like Figure 2 As shown, drive motor 1 can be connected to robotic arm 1 to drive robotic arm 1 to move. Drive motor 2 can be connected to robotic arm 2 to drive robotic arm 2 to move. Drive motor n can be connected to robotic arm n to drive robotic arm n to move.
[0100] In practical applications, it is usually necessary to perform distributed consistency control on multiple robotic arms in a multi-robotic arm system so that the multiple robotic arms can achieve consistency.
[0101] Currently, when performing distributed consistency control on multiple robotic arms in a multi-arm system, it is necessary to collect the position, speed, and current of the robotic arms. This data is used to determine the actual driving voltage of each robotic arm. Driving the robotic arms using the actual driving voltage enables consistency among them.
[0102] For example, for any robotic arm, it is necessary to collect the position, speed, and current of the robotic arm, as well as the position, speed, and drive current of the robotic arm that is connected to it in communication. Based on the collected parameters, the actual drive voltage of the robotic arm can be determined.
[0103] In practice, the position of the robotic arm can be collected using a position sensor, the speed can be collected using a speed sensor, and the drive current can be collected using a current sensor. However, the above methods require the installation of a large number of sensors, which increases the control cost of the robotic arm.
[0104] In view of this, embodiments of this application provide a control method for a robotic arm to solve the technical problem of high control costs for robotic arms.
[0105] In this method, for any given robotic arm, the position of the robotic arm and the position of the robotic arms communicatively connected to it can be collected, and the actual driving voltage of the robotic arm can be determined based on the collected position. This method only requires collecting the position of the robotic arm, without needing to collect other operating parameters. Therefore, when controlling the robotic arm, only a position sensor is needed, reducing the number of sensors required and lowering the control cost.
[0106] In addition, in this embodiment of the application, the number of operating parameters of the robotic arm collected is relatively small, so the number of operating parameters of the robotic arm that need to be transmitted is also small, which reduces the number of parameters to be transmitted and reduces the parameter transmission overhead.
[0107] In addition, the method provided in this application embodiment can control the distribution consistency of the robotic arm by the position of the robotic arm when there is a dead zone voltage in the driving voltage of the robotic arm drive motor, so that the stability of the multi-robotic arm system is better.
[0108] The technical solutions shown in this application will now be described through specific embodiments. It should be noted that the following embodiments may exist independently or in combination with each other; for the same or similar content, the description will not be repeated in different embodiments.
[0109] Figure 3This is a flowchart illustrating a control method for a robotic arm provided in an embodiment of this application. The executing entity in this embodiment can be a control device for the robotic arm, or a control unit for the robotic arm housed within the control device. The control unit for the robotic arm can be implemented through software or a combination of software and hardware. The following explanation uses a control device for the robotic arm as the executing entity. Figure 3 As shown, the method in this embodiment includes:
[0110] S301. Obtain the first current position of the first robotic arm and the second current position of each second robotic arm.
[0111] In this embodiment, the number of second robotic arms can be one or more.
[0112] In this embodiment, the first robotic arm can be any robotic arm in a multi-robotic arm system. The first robotic arm and the second robotic arm are communicatively connected. For example, the first robotic arm can be... Figure 2 In the multi-arm system shown, any one of the robotic arms can be a second robotic arm that is communicatively connected to the first robotic arm.
[0113] The first current position can be the angular position of the first robotic arm drive motor. The second current position can be the angular position of the second robotic arm drive motor.
[0114] It should be understood that if there is one second robotic arm, there can also be one second current position; if there are multiple second robotic arms, there can also be multiple second current positions. In other words, the number of second current positions is the same as the number of second robotic arms.
[0115] In this embodiment, each robotic arm can be equipped with a position sensor to obtain the angular position of the robotic arm drive motor. Specifically, the first current position can be obtained through the position sensor on the first robotic arm, and the second current position can be obtained through the position sensor on the second robotic arm.
[0116] In this embodiment, the multi-robotic arm system can be a multi-robotic arm system that meets the following conditions:
[0117]
[0118]
[0119] Where, x i,j and These represent the state parameters of the robotic arm; for example, the state parameters can be the angular position of the robotic arm's drive motor, etc. and It can represent unknown nonlinear functions; d i,j(t) and d i,n (t) can represent an unknown external disturbance; u i D can represent the drive voltage of the robotic arm's drive motor. i (u i () can represent the drive voltage of the robotic arm drive motor that has a dead zone.
[0120] In this embodiment, the dynamic model of the first robotic arm can be:
[0121]
[0122]
[0123] in, J i K can represent the moment of inertia of the first robotic arm. i,τ The conversion coefficient, m, can represent the conversion factor from the armature current of the first robotic arm's drive motor to the drive motor itself. i L can represent the mass of the first robotic arm. i,0 M can represent the length of the first robotic arm. i,0 R can represent the load mass of the first robotic arm. i,0 This can represent the load radius of the first robotic arm; B i,0 This can represent the coefficient of friction at the joint of the first robotic arm; g can represent gravitational acceleration; I i L can represent the armature current of the first robotic arm's drive motor; i R can represent the armature inductance of the first robotic arm's drive motor; i K can represent the armature resistance of the drive motor of the first robotic arm. i,b It can represent the back electromotive force coefficient; d i,1 (t) and d i,2 (t) can represent time-varying disturbances; q i It can represent the angular position of the drive motor of the first robotic arm.
[0124] In this embodiment, x can be defined. i,1 =q i , x i,3 =I i , D(V i,e )=D(u i Based on the dynamic model of the first robotic arm, the following formula can be derived:
[0125]
[0126]
[0127]
[0128] S302. If the first current position is different from the second current position of any one or more second robotic arms, then obtain the current driving voltage of the drive motor of the first robotic arm.
[0129] In this embodiment, if there is only one second robotic arm, and its first current position is different from the second current position of that single second robotic arm, the current driving voltage of the first robotic arm's drive motor can be obtained. If there are multiple second robotic arms, and their first current position is different from the second current position of any one or more of the multiple second robotic arms, the current driving voltage of the first robotic arm's drive motor can be obtained.
[0130] It should be noted that if the first current position differs from the second current position of any one or more second robotic arms, then an inconsistency between the first and second robotic arms can be determined. If an inconsistency exists between the first and second robotic arms, consistency control is required.
[0131] In this embodiment, the control device of the robotic arm can obtain the current driving voltage from the drive motor of the first robotic arm.
[0132] S303. Determine the actual drive voltage of the drive motor based on the first current position, the second current position of each second robotic arm, and the current drive voltage.
[0133] When the drive motor drives the first robotic arm with the actual drive voltage, the first robotic arm and the second robotic arm can be synchronized.
[0134] In this embodiment, the control device of the robotic arm can update the driving voltage of the first robotic arm based on the first current position, the second current position, and the current driving voltage to obtain the actual driving voltage.
[0135] It should be noted that the specific implementation of the robotic arm's control device updating the drive voltage of the first robotic arm based on the first current position, the second current position, and the current drive voltage can be found in [reference needed]. Figure 4 Examples are not detailed here.
[0136] S304. Control the drive motor according to the actual drive voltage so that the drive motor drives the first robotic arm to move.
[0137] In this embodiment, the control device of the robotic arm can control the operation of the drive motor of the first robotic arm. After determining the actual drive voltage, the control device of the robotic arm can control the operation of the drive motor of the first robotic arm according to the actual drive voltage to achieve consistency between the first robotic arm and the second robotic arm.
[0138] It should be noted that in this embodiment, S301-S304 can be executed repeatedly until the first current position and the second current position are the same.
[0139] The robotic arm control method provided in this embodiment can obtain the first current position of the first robotic arm and the second current position of each second robotic arm. If the first current position differs from the second current position of any one or more second robotic arms, the current driving voltage of the drive motor of the first robotic arm is obtained. Based on the first current position, the second current position of each second robotic arm, and the current driving voltage, the actual driving voltage of the drive motor is determined, and the drive motor is controlled according to the actual driving voltage to make the drive motor drive the first robotic arm to move. In the above method, only the position of the robotic arm needs to be obtained, without the need to obtain other operating parameters of the robotic arm. Only a position sensor for collecting the position of the robotic arm needs to be set, reducing the number of sensors required and lowering the control cost of the robotic arm.
[0140] Based on any of the above embodiments, the following is combined with Figure 4 The method for determining the actual drive voltage of the first robotic arm based on the first current position, the second current position of each second robotic arm, and the current drive voltage is described in detail.
[0141] Figure 4 This is a flowchart illustrating another robotic arm control method provided in an embodiment of this application. The executing entity in this embodiment can be a robotic arm control device, or a robotic arm control unit installed within the robotic arm control device. The robotic arm control unit can be implemented through software or a combination of software and hardware. The following explanation uses a robotic arm control device as the executing entity as an example. Figure 4 As shown, the method in this embodiment includes:
[0142] S401. Obtain the first current position of the first robotic arm and the second current position of each second robotic arm.
[0143] S402. If the first current position is different from the second current position of any one or more second robotic arms, then obtain the current driving voltage of the drive motor of the first robotic arm.
[0144] It should be noted that the specific implementation methods of S401-S402 can be found in S301-S302, and will not be repeated here.
[0145] S403. Determine the rate of change of position between the first current position and the second current position of each second robotic arm.
[0146] In this embodiment, the rate of change of position between the first current position and the second current position of each second robotic arm can be determined by the rate of change of position formula.
[0147] Specifically, the formula for the rate of change of position can be:
[0148]
[0149] in, c can be the rate of change of position between the first current position and the second current position. i It can be a positive number, a i,j The coefficients of the adjacency matrix can be N. i x can be the number of remaining robotic arms in a multi-arm system excluding the first robotic arm. j,1 It can be the second current position, x i,1 It can be the first current position.
[0150] It should be noted that c i and a i,j The settings can be configured according to actual needs, and this application embodiment does not limit them.
[0151] S404. Determine the amount of position change corresponding to the rate of position change.
[0152] In this embodiment, the change in position can be determined by integral calculation.
[0153] Specifically, the rate of change of position can be integrated to obtain the change in position corresponding to the rate of change of position.
[0154] S405. Determine the first intermediate control signal based on the first current position and the position change amount.
[0155] In this embodiment, when determining the first intermediate control signal based on the first current position and the position change, coordinate transformation processing can be performed on the first current position and the position change to obtain the third position information; a preset performance function and a preset control coefficient can be determined; and the first intermediate control signal can be determined based on the third position information, the preset performance function, and the preset control coefficient.
[0156] In this embodiment, the coordinate transformation of the first current position and the position change can be performed using the coordinate transformation formula of the third position information to obtain the third position information. The coordinate transformation formula for the third position information can be:
[0157] z i,1 =x i,1 -α i,0
[0158] Among them, z i,1 It can be third position information, αi,0 It can be the change in position.
[0159] The preset control coefficient is a pre-set constant. The preset control coefficient can be set according to actual needs, and this embodiment does not limit it.
[0160] The preset performance function can be a pre-set performance function. The preset control coefficient can be set according to actual needs, and this embodiment does not limit it.
[0161] For example, the preset performance function satisfies:
[0162]
[0163] in, A preset performance function can be provided. and Both can be constants, and λ i,j It can be a positive number, and t can be a time interval.
[0164] In this embodiment, the preset control coefficients may include a first coefficient, a second coefficient, and a third coefficient. When determining the first intermediate control signal based on the third position information, the preset performance function, and the preset control coefficients, the ratio of the third position information to the preset performance function can be determined as the first ratio; a preset operation is performed on the first coefficient, the second coefficient, and the first ratio to obtain the first auxiliary function; and the product of the third coefficient and the first auxiliary function is determined as the first intermediate control signal.
[0165] Specifically, the first ratio can be:
[0166]
[0167] Where, δ i1 It can be the first ratio.
[0168] The default operation can be the natural logarithm operation.
[0169] The first auxiliary function can be:
[0170]
[0171] Where, γ i1 It can be the first auxiliary function. η i,j It can be the first coefficient. It can be the second coefficient.
[0172] The first intermediate control signal can be:
[0173] β i1 =-k i,1γ1
[0174] Where, β i1 This can be the first intermediate control signal, k i,1 It can be the third coefficient.
[0175] S406. Drive the filter with the current drive voltage to obtain the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current.
[0176] The estimated position of the first robotic arm can be the predicted angular position of the first robotic arm drive motor.
[0177] The estimated angular velocity of the drive motor can be the predicted angular velocity of the first robotic arm drive motor.
[0178] The estimated current can be the predicted drive current of the first robotic arm drive motor.
[0179] In this embodiment, the filter can be a driving filter. Inputting the current driving voltage into the driving filter will enable the filter to operate.
[0180] In this embodiment, a third-order filter (i.e., the filter described above) can be set in the control device of the robotic arm. The control device of the robotic arm can determine the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current through the third-order filter.
[0181] It should be noted that in this embodiment, the first and second current positions can be measured using sensors, but other operating parameters are not measured. To overcome the situation of limited operating parameters, a third-order filter can be set in the control device of the robotic arm to estimate the unmeasured operating parameters. The unmeasured operating parameters may be the estimated angular velocity and estimated current of the drive motor of the first robotic arm.
[0182] In this embodiment, the control device of the robotic arm can drive a third-order filter to operate using the current driving voltage to obtain an estimated current; based on the estimated current, an estimated angular velocity is determined; based on the estimated angular velocity, an estimated position is determined.
[0183] Specifically, the control device of the robotic arm can determine the estimated current using a third-order filter based on the following formula:
[0184]
[0185] in, It can be used to estimate the first derivative of the current. For estimating location, l i,3 It can be a constant. It can be as well as A set that consists of.
[0186] The estimated angular velocity can be determined using a third-order filter through the following formula:
[0187]
[0188] in, It can be used to estimate the first derivative of the angular velocity. This can be used to estimate the current. It can be and The set composed of l i,2 It can be a constant.
[0189] The estimated location can be determined using the following formula and a third-order filter:
[0190]
[0191] in, For estimating location, It can be the first derivative for estimating the position. For estimating angular velocity, l i,1 It can be a constant, l i,1 , l i,2 and l i,3 Guarantee the polynomial H(x) = x 3 +l i,1 x 2 +l i,2 x+l i,3 It is a Herwitz polynomial.
[0192] S407. Determine the actual driving voltage based on the first intermediate control signal, estimated position, estimated angular velocity, and estimated current.
[0193] In this embodiment, the control device of the robotic arm can determine a second auxiliary function based on a first intermediate control signal and an estimated angular velocity; determine a second intermediate control signal based on the second auxiliary function and an estimated position; determine a third auxiliary function based on an estimated current and a second intermediate control signal; and determine the actual driving voltage based on the third auxiliary function.
[0194] In this embodiment, when the control device of the robotic arm determines the second auxiliary function based on the first intermediate control signal and the estimated angular velocity, it can perform coordinate transformation processing on the first intermediate control signal and the estimated angular velocity to obtain the fourth position information; determine the ratio of the fourth position information and the preset performance function as the second ratio; and perform preset calculations on the preset first coefficient, the preset second coefficient and the second ratio to obtain the second auxiliary function.
[0195] Specifically, the coordinate transformation of the first intermediate control signal and the estimated angular velocity can be performed using the coordinate transformation formula for the fourth position information to obtain the fourth position information. The coordinate transformation formula for the fourth position information is as follows:
[0196]
[0197] Among them, z i,2 This can be the fourth position information.
[0198] The second ratio can be:
[0199]
[0200] Where, δ i2 It can be the second ratio.
[0201] The second auxiliary function can be:
[0202]
[0203] Where, γ i2 It can be a second auxiliary function.
[0204] The second intermediate control signal can be:
[0205]
[0206] Where, β i2 It can be a second intermediate control signal, k i,2 It can be a positive number.
[0207] Before determining the third auxiliary function, the estimated current and the second intermediate control signal can be transformed using the coordinate transformation formula for the fifth position information to obtain the fifth position information. The coordinate transformation formula for the fifth position information is as follows:
[0208]
[0209] Among them, z i,3 It can be the fifth position.
[0210] Before determining the third auxiliary function, the ratio of the fifth position to the preset performance function can also be determined as the third ratio. The third ratio can be:
[0211]
[0212] Where, δ i3 It can be the third ratio.
[0213] The third auxiliary function can be:
[0214]
[0215] Where, γ i3 It can be a third auxiliary function.
[0216] The actual driving voltage can be:
[0217] u i =-k i,3 γ i3
[0218] Where, k i,3 k can be a constant. i,3 The size can be set according to actual needs.
[0219] S408. Control the drive motor according to the actual drive voltage so that the drive motor drives the first robotic arm to move.
[0220] It should be noted that the specific implementation of S408 can be found in S304, and will not be repeated here.
[0221] The robotic arm control method provided in this embodiment can acquire the first current position of the first robotic arm and the second current position of each second robotic arm. If the first current position differs from the second current position of any one or more second robotic arms, the current driving voltage of the drive motor of the first robotic arm can be acquired. The rate of change of position between the first current position and the second current position of each second robotic arm can be determined. The amount of position change corresponding to the rate of change of position can be determined. A first intermediate control signal can be determined based on the first current position and the amount of position change. A filter can be driven by the current driving voltage to obtain the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current. The actual driving voltage can be determined based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current. The drive motor can be controlled based on the actual driving voltage to move the first robotic arm. In the above method, only the position of the robotic arm needs to be acquired, without acquiring other operating parameters of the robotic arm. Only a position sensor for acquiring the position of the robotic arm needs to be set, reducing the number of sensors required and lowering the control cost of the robotic arm.
[0222] Figure 5 This is a schematic diagram of a control device for a robotic arm provided in an embodiment of this application. The control device for the robotic arm provided in this embodiment can be in the form of software and / or hardware. The control device for the robotic arm provided in this embodiment can be a module, unit, chip, chip module, etc. in the robotic arm.
[0223] like Figure 5 As shown, the control device 10 for the robotic arm provided in this embodiment includes: an acquisition module 11, a determination module 12, and a control module 13, wherein,
[0224] The acquisition module 11 is used to acquire the first current position of the first robotic arm and the second current position of each second robotic arm, wherein there are one or more second robotic arms, and the first robotic arm and the second robotic arm are communicatively connected.
[0225] If the first current position is different from the second current position of any one or more second robotic arms, the acquisition module 11 is further configured to acquire the current driving voltage of the drive motor of the first robotic arm;
[0226] The determining module 12 is used to determine the actual driving voltage of the drive motor based on the first current position, the second current position, and the current driving voltage;
[0227] The control module 13 is used to control the drive motor according to the actual drive voltage, so that the drive motor drives the first robotic arm to move.
[0228] The control device for the robotic arm provided in this embodiment can be used to execute the control method of the robotic arm provided in any of the above method embodiments. Its implementation principle and technical effect are similar, and will not be described in detail here.
[0229] In one possible implementation, the determining module 12 is specifically used for,
[0230] Based on the first current position and the second current position of each second robotic arm, a first intermediate control signal is determined to control the first robotic arm;
[0231] The estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current are obtained by driving the filter with the current drive voltage.
[0232] The actual driving voltage is determined based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current.
[0233] In one possible implementation, the determining module 12 is specifically used for,
[0234] Determine the rate of change of position between the first current position and the second current position of each of the second robotic arms;
[0235] Determine the amount of position change corresponding to the rate of position change;
[0236] The first intermediate control signal is determined based on the first current position and the position change amount.
[0237] In one possible implementation, the determining module 12 is specifically used for,
[0238] Perform coordinate transformation on the first current position and the position change to obtain the third position information;
[0239] Determine the preset performance function and preset control coefficients;
[0240] The first intermediate control signal is determined based on the third position information, the preset performance function, and the preset control coefficient.
[0241] In one possible implementation, the preset control coefficients include a first coefficient, a second coefficient, and a third coefficient; the determining module 12 is specifically used for,
[0242] The ratio of the third location information to the preset performance function is determined as the first ratio.
[0243] A first auxiliary function is obtained by performing a preset operation on the first coefficient, the second coefficient, and the first ratio.
[0244] The product of the third coefficient and the first auxiliary function is determined as the first intermediate control signal.
[0245] In one possible implementation, the determining module 12 is specifically used for,
[0246] The second auxiliary function is determined based on the first intermediate control signal and the estimated angular velocity;
[0247] The second intermediate control signal is determined based on the second auxiliary function and the estimated position;
[0248] Based on the estimated current and the second intermediate control signal, a third auxiliary function is determined;
[0249] The actual driving voltage is determined based on the third auxiliary function.
[0250] In one possible implementation, the determining module 12 is specifically used for,
[0251] The first intermediate control signal and the estimated angular velocity are subjected to coordinate transformation to obtain the fourth position information;
[0252] The ratio of the fourth location information to the preset performance function is determined as the second ratio.
[0253] The second auxiliary function is obtained by performing a preset operation on the preset first coefficient, the preset second coefficient, and the second ratio.
[0254] In one possible implementation, the determining module 12 is specifically used for,
[0255] The estimated current is obtained by driving the filter with the current driving voltage;
[0256] The estimated angular velocity is determined based on the estimated current;
[0257] The estimated position is determined based on the estimated angular velocity.
[0258] The control device for the robotic arm provided in this embodiment can be used to execute the control method of the robotic arm provided in any of the above method embodiments. Its implementation principle and technical effect are similar, and will not be described in detail here.
[0259] Figure 6 This is a schematic diagram of the hardware structure of a control device for a robotic arm, provided in an embodiment of this application. The control device for the robotic arm can be a chip, chip module, or similar component within the robotic arm.
[0260] like Figure 6 As shown, the control device 20 of the robotic arm may include a processor 21 and a memory 22, wherein the processor 21 and the memory 22 can communicate; for example, the processor 21 and the memory 22 communicate through a communication bus 23, the memory 22 is used to store program instructions, and the processor 21 is used to call the program instructions in the memory to execute the control method of the robotic arm shown in any of the above method embodiments.
[0261] Optionally, the control device 20 of the robotic arm may also include a communication interface, which may include a transmitter and / or a receiver.
[0262] Optionally, the aforementioned processor can be a Central Processing Unit (CPU), or other general-purpose processors, digital signal processors (DSPs), application-specific integrated circuits (ASICs), etc. The general-purpose processor can be a microprocessor or any conventional processor. The steps of the method disclosed in this application can be directly implemented by a hardware processor, or implemented by a combination of hardware and software modules within the processor.
[0263] The control device for the robotic arm provided in this embodiment can be used to execute the control method of the robotic arm shown in any of the above method embodiments. Its implementation principle and technical effect are similar, and will not be described again here.
[0264] This application also provides a computer-readable storage medium storing a computer program. When the computer program is executed by a computer, it implements the control method of the robotic arm as shown in any of the above method embodiments. The implementation principle and technical effect are similar, and will not be described in detail here.
[0265] This application also provides a chip, including: a memory, a processor, and hardware system resources. The memory stores a computer program, and the processor runs the computer program to implement the control method of the robotic arm as shown in any of the above method embodiments. The implementation principle and technical effect are similar, and will not be described again here.
[0266] This application also provides a computer program product, including a computer program. When the computer program is executed by a computer, it implements the control method of the robotic arm as shown in any of the above method embodiments. The implementation principle and technical effect are similar, and will not be described in detail here.
[0267] All or part of the steps in the above method embodiments can be implemented by hardware related to program instructions. The aforementioned program can be stored in a readable memory. When the program is executed, it performs the steps of the above method embodiments; and the aforementioned memory (storage medium) includes: read-only memory (ROM), RAM, flash memory, hard disk, solid-state drive, magnetic tape, floppy disk, optical disk, and any combination thereof.
[0268] This application describes embodiments with reference to flowchart illustrations and / or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of this application. It should be understood that each block of the flowchart illustrations and / or block diagrams, and combinations of blocks in the flowchart illustrations and / or block diagrams, can be implemented by computer program instructions. These computer program instructions can be provided to a processing unit of a general-purpose computer, special-purpose computer, embedded processor, or other programmable terminal device to produce a machine, such that the instructions, which execute via the processing unit of the computer or other programmable terminal device, generate instructions for implementing the flowchart. Figure 1 One or more processes and / or boxes Figure 1 A device that provides the functions specified in one or more boxes.
[0269] These computer program instructions may also be stored in a computer-readable storage medium that can direct a computer or other programmable terminal device to function in a particular manner, such that the instructions stored in the computer-readable storage medium produce an article of manufacture including instruction means, which are implemented in a process Figure 1 One or more processes and / or boxes Figure 1 The function specified in one or more boxes.
[0270] These computer program instructions can also be loaded onto a computer or other programmable terminal device, causing a series of operational steps to be performed on the computer or other programmable device to produce a computer-implemented process, thereby providing instructions that execute on the computer or other programmable device for implementing the process. Figure 1 One or more processes and / or boxes Figure 1 The steps of the function specified in one or more boxes.
[0271] Obviously, those skilled in the art can make various modifications and variations to the embodiments of this application without departing from the spirit and scope of this application. Therefore, if these modifications and variations to the embodiments of this application fall within the scope of the claims of this application and their equivalents, this application also intends to include these modifications and variations.
[0272] In this application, the term "comprising" and its variations can refer to non-limiting inclusion; the term "or" and its variations can refer to "and / or". The terms "first", "second", etc., in this application are used to distinguish similar objects and are not necessarily used to describe a specific order or sequence. In this application, "multiple" refers to two or more. "And / or" describes the relationship between related objects, indicating that three relationships can exist. For example, A and / or B can represent: A existing alone, A and B existing simultaneously, and B existing alone. The character " / " generally indicates that the preceding and following related objects have an "or" relationship.
Claims
1. A control method for a robotic arm, characterized in that, include: The first current position of the first robotic arm and the second current position of each second robotic arm are obtained. The number of second robotic arms is one or more, and the first robotic arm and the second robotic arm are communicatively connected. If the first current position is different from the second current position of any one or more second robotic arms, then obtain the current driving voltage of the drive motor of the first robotic arm; Determine the rate of change of position between the first current position and the second current position of each of the second robotic arms; Determine the amount of position change corresponding to the rate of position change; A first intermediate control signal is determined based on the first current position and the position change amount; The estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current are obtained by driving the filter with the current drive voltage. The actual drive voltage of the drive motor is determined based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current. The drive motor is controlled according to the actual drive voltage so that the drive motor drives the first robotic arm to move.
2. The method according to claim 1, characterized in that, Determining the first intermediate control signal based on the first current position and the position change amount includes: Perform coordinate transformation on the first current position and the position change to obtain the third position information; Determine the preset performance function and preset control coefficients; The first intermediate control signal is determined based on the third position information, the preset performance function, and the preset control coefficient.
3. The method according to claim 2, characterized in that, The preset control coefficients include a first coefficient, a second coefficient, and a third coefficient; the first intermediate control signal is determined based on the third position information, the preset performance function, and the preset control coefficients, including: The ratio of the third location information to the preset performance function is determined as the first ratio. A first auxiliary function is obtained by performing a preset operation on the first coefficient, the second coefficient, and the first ratio. The product of the third coefficient and the first auxiliary function is determined as the first intermediate control signal.
4. The method according to any one of claims 1-3, characterized in that, Determining the actual driving voltage based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current includes: The second auxiliary function is determined based on the first intermediate control signal and the estimated angular velocity; The second intermediate control signal is determined based on the second auxiliary function and the estimated position; Based on the estimated current and the second intermediate control signal, a third auxiliary function is determined; The actual driving voltage is determined based on the third auxiliary function.
5. The method according to claim 4, characterized in that, Based on the first intermediate control signal and the estimated angular velocity, a second auxiliary function is determined, including: The first intermediate control signal and the estimated angular velocity are subjected to coordinate transformation to obtain the fourth position information; The ratio of the fourth location information to the preset performance function is determined as the second ratio. The second auxiliary function is obtained by performing a preset operation on the preset first coefficient, the preset second coefficient, and the second ratio.
6. The method according to claim 1, characterized in that, The process of obtaining the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current by driving the filter with the current drive voltage includes: The estimated current is obtained by driving the filter with the current driving voltage; The estimated angular velocity is determined based on the estimated current; The estimated position is determined based on the estimated angular velocity.
7. A control device for a robotic arm, characterized in that, The device includes: an acquisition module, a determination module, and a control module, wherein, The acquisition module is used to acquire the first current position of the first robotic arm and the second current position of each second robotic arm, wherein there are one or more second robotic arms, and the first robotic arm and the second robotic arm are communicatively connected. If the first current position is different from the second current position of any one or more second robotic arms, the acquisition module is further configured to acquire the current driving voltage of the drive motor of the first robotic arm; The determining module is used to determine the rate of change of position between the first current position and the second current position of each second robotic arm; The determining module is further configured to determine the position change amount corresponding to the position change rate; The determining module is further configured to determine a first intermediate control signal based on the first current position and the position change amount; The determining module is further configured to drive the filter through the current driving voltage to obtain the estimated position of the first robotic arm, the estimated angular velocity of the drive motor, and the estimated current. The determining module is further configured to determine the actual driving voltage of the drive motor based on the first intermediate control signal, the estimated position, the estimated angular velocity, and the estimated current; The control module is used to control the drive motor according to the actual drive voltage, so that the drive motor drives the first robotic arm to move.
8. A control device for a robotic arm, characterized in that, include: A processor, and a memory communicatively connected to the processor; The memory stores computer programs; The processor executes the computer program to implement the method as described in any one of claims 1 to 6.
9. A computer-readable storage medium, characterized in that, The computer-readable storage medium stores a computer program that, when executed by a computer, implements the method as described in any one of claims 1 to 6.
10. A computer program product, characterized in that, It includes a computer program that, when executed by a computer, implements the method as described in any one of claims 1 to 6.
Citation Information
Patent Citations
Mechanical arm control method and device, robot and computer readable storage medium
CN116945152A
Multi-joint hydraulic mechanical arm servo control method and system based on sliding mode self-adaption
CN117047774A