ROBOT CONTROL SYSTEM, ROBOT SYSTEM, ROBOT CONTROL METHOD, AND ROBOT CONTROL PROGRAM

The robot control system addresses interference between position and force control axes by selecting appropriate equivalent mass matrices based on velocity, enhancing stability and vibration suppression in robot control.

JP7770202B2Active Publication Date: 2025-11-14YASKAWA DENKI KK
View PDF 4 Cites 0 Cited by

Patent Information

Application Number
JP2022018554
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Filing Date
2022-02-09
Publication Date
2025-11-14
Estimated Expiration
2042-02-09

AI Technical Summary

Technical Problem

Existing robot control systems face challenges in stabilizing control due to interference between position and force control axes, particularly when the bandwidth of the controller is finite and vibrations are amplified, and the inverse matrix of the Jacobian matrix diverges in singular postures.

Method used

A robot control system that selects between a first and second equivalent mass matrix based on the velocity along the force control axis, using a velocity acquisition unit, matrix selection unit, and signal generation unit to generate control signals, thereby reducing interference and stabilizing control.

Benefits of technology

The system effectively reduces interference between position and force control axes, stabilizing robot control and suppressing vibrations, even in singular postures without the need for a force sensor.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 0007770202000028
    Figure 0007770202000028
  • Figure 0007770202000029
    Figure 0007770202000029
  • Figure 0007770202000030
    Figure 0007770202000030
Patent Text Reader

Abstract

To control a robot stably.SOLUTION: A robot control system according to an embodiment, comprises: a velocity acquisition unit for acquiring velocity of a robot in a working space in which the robot processes a workpiece based on a force control axis and a position control axis, the velocity being along the force control axis; a matrix selection unit for selecting an equivalent mass matrix based on the acquired velocity, from a first equivalent mass matrix corresponding to the velocity being 0 and a second equivalent mass matrix corresponding to the velocity not being 0; and a signal generation unit for generating a control signal for controlling the robot based on the selected equivalent mass matrix.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical Field]

[0001] One aspect of the present disclosure relates to a robot control system, a robot system, a robot control method, and a robot control program. [Background technology]

[0002] Patent Document 1 describes a method for controlling a robot by determining appropriate force control parameters in response to changes in the work object. [Prior art documents] [Patent documents]

[0003] [Patent Document 1] Patent No. 2691591 Summary of the Invention [Problem to be solved by the invention]

[0004] In one aspect of the present disclosure, it is desired to stably control a robot. [Means for solving the problem]

[0005] A robot control system according to one aspect of the present disclosure includes a velocity acquisition unit that acquires the velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and a position control axis; a matrix selection unit that selects an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0 based on the acquired velocity; and a signal generation unit that generates a control signal for controlling the robot based on the selected equivalent mass matrix.

[0006] A robot control method according to one aspect of the present disclosure is a robot control method executed by a robot control system having at least one processor, and includes the steps of acquiring the velocity of the robot along a force control axis in a workspace in which the robot processes a workpiece based on the force control axis and a position control axis; selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0 based on the acquired velocity; and generating a control signal for controlling the robot based on the selected equivalent mass matrix.

[0007] A robot control program according to one aspect of the present disclosure causes a computer to execute the steps of acquiring the velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and a position control axis, selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0 based on the acquired velocity, and generating a control signal for controlling the robot based on the selected equivalent mass matrix. [Effects of the Invention]

[0008] According to one aspect of the present disclosure, a robot can be stably controlled. [Brief explanation of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram illustrating an example of a hardware configuration of a computer used for a robot control system. [Figure 2] FIG. 1 illustrates an example of a robot system. [Figure 3] FIG. 1 illustrates an example of a robot system. [Figure 4] FIG. 10 is a diagram illustrating an example of the relationship between two control axes and an equivalent mass matrix. [Figure 5] 10 is a flowchart illustrating an example of processing in a robot control system. [Figure 6]FIG. 10 is a diagram illustrating another example of a robot system. [Figure 7] FIG. 10 is a diagram illustrating another example of a robot system. [Figure 8] 10 is a flowchart showing another example of processing in the robot control system. DETAILED DESCRIPTION OF THE INVENTION

[0010] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. In the description of the drawings, the same or equivalent elements are designated by the same reference numerals, and redundant description will be omitted.

[0011] [System Overview] An example robot control system is a computer system for operating a robot using hybrid control of position and force (also simply referred to as "hybrid control"). Examples of tasks performed by a robot include processing a workpiece while contacting the end effector of the robot with the workpiece, such as assembly and polishing. In such tasks, it is necessary to appropriately control not only the position of the end effector but also the force applied by the end effector to the workpiece. Hybrid control is one method for achieving this appropriate control. Hybrid control is a technology for simultaneously controlling the position and force of a robot by acquiring the position and force for each of the position control axis and the force control axis, and feeding these positions and forces back to the position control loop and the force control loop to track target values. The position control axis defines the direction in which the robot's position is to be controlled, and the force control axis defines the direction in which the robot's force is to be controlled. For example, applying hybrid control to polishing a workpiece using a robot can apply a desired force to the polishing tool, which is the end effector, along the workpiece surface in a normal direction to the workpiece surface while moving the polishing tool at a desired speed along the workpiece surface.

[0012] The robot control system uses an equivalent mass matrix to perform hybrid control. The equivalent mass matrix is ​​a matrix that represents the relationship between acceleration and force in the workspace where the robot processes a workpiece based on the force control axis and the position control axis. The workspace is a real space. By introducing the equivalent mass matrix, the output of the position controller and the output of the force controller can be unified in the dimension of force.

[0013] By using only the diagonal terms of the equivalent mass matrix, the position control axes and the force control axes can be made non-interacting with each other. This method is effective when the bandwidth of the controller, such as a disturbance observer or I control (integral control), for reducing the error between command and response to zero is infinite. However, in practice, it is impossible to make the bandwidth infinite, and therefore vibrations in the bandwidth that cannot be compensated for are amplified. In addition, when only the diagonal terms of the equivalent mass matrix are used, the inverse matrix of the Jacobian matrix diverges in singular postures of the robot, i.e., the determinant becomes 0, making it impossible to perform matrix calculations.

[0014] To solve these problems and stably control the robot, the robot control system uses a first equivalent mass matrix corresponding to the robot's velocity along the force control axis being zero and a second equivalent mass matrix corresponding to the velocity being non-zero. The robot control system obtains the robot's velocity along the force control axis in the workspace, selects an equivalent mass matrix from the first equivalent mass matrix and the second equivalent mass matrix based on the velocity, and generates a control signal for controlling the robot based on the selected equivalent mass matrix. The robot control system outputs the control signal to the robot. In this disclosure, the "robot velocity along the force control axis" is also simply referred to as the "velocity along the force control axis."

[0015] [System-related theory] The relationship between the robot's velocity sX in the workspace and the robot's velocity sθ in the joint space, where the number of joints in the robot is set as the degree of freedom, is determined by time-differentiating the kinematics and the Jacobian matrix J aco It is expressed by equation (1) using s, where s is the Laplace operator.

number

[0016] In this disclosure, the velocity of the robot is, for example, the velocity of an end effector attached to the tip of the robot. The velocity of this end effector is also called the "tip velocity." The "velocity along the force control axis" may be the "tip velocity along the force control axis."

[0017] Equation (2) is obtained by differentiating both sides of equation (1). When the robot is in contact with the workpiece, the change in the robot's posture and velocity are small, so in this differentiation, the Jacobian matrix J aco The differential term can be approximated as 0.

number

[0018] Torque τ of each joint of the robot res is expressed by equation (3) using the inertia matrix J. ext represents the external force acting on the robot, and τ dis indicates disturbances acting on the robot other than the external force.

number

[0019] Force F in the workspace res and the torque τ in the joint space res The relationship between these is expressed by equation (4) based on the principle of virtual work.

number

[0020] Equation (5) can be obtained by combining equations (2) to (4).

number

[0021] Equation (6) is defined for this equation (5), and equation (5) is transformed into equation (7).

number

number

[0022] From equations (6) and (7), we obtain the equivalent mass matrix M, which is a matrix that represents the relationship between acceleration and force in the workspace. The equivalent mass matrix M is expressed by equation (8).

number

[0023] This equivalent mass matrix is ​​also described in the following references 1 and 2. (Reference 1) T. Murakami, F. Yu, and K. Ohnishi: “Torque Sensorless Control inMultidegree-of-Freedom Manipulator,” IEEE Transactions on Industrial Electronics, vol. 40, No. 2, pp. 259-265, 1993. (Reference 2) N. Togashi, T. Shimono, N. Motoi, and N. Oda: “Experimental Comparison of DesignMethods for Equivalent Mass Matrix in Motion Control System based on WorkspaceObserver,” 2014 IEEE 13th International Workshop on Advanced Motion Control, pp.669-674, March 2014.

[0024] As mentioned above, for the equivalent mass matrix M, the Jacobian matrix Jaco There is a problem that the determinant of the matrix becomes 0. To solve this problem, the robot control system sets each element of the equivalent mass matrix so that the determinant does not become 0.

[0025] As mentioned above, hybrid control considers the position control axis and the force control axis. Rewriting equation (7) to show each element yields equations (9) and (10).

number

number

[0026] In equation (9), X f indicates the robot position on the force control axis, and X p indicates the robot position on the position control axis. F f denotes the robot force on the force control axis, and X p denotes the robot force in the position control axis.

[0027] In this disclosure, the equivalent mass matrix used in the robot control system is defined as M n From a certain acceleration, the equivalent mass matrix M n The force calculated using F n and the force calculated from the acceleration using the theoretical equivalent mass matrix M is expressed as F. Under this assumption, when the velocity along the force control axis is not 0, F n The relationship between F and the total disturbance is expressed by equation (11). ext and disturbances other than external forces F dis and (F dis +F ext ) is expressed as

number

[0028] equivalent mass matrix M n Using the force F n outWhen outputting, the actual force F is output to the motor to operate the robot. out is expressed by equation (12).

number

[0029] On the other hand, when the velocity along the force control axis is 0, the force response (the force with which the motor rotates and moves) on the force control axis is 0, and the force F along the force control axis of the motor n out and total disturbance (F dis +F ext ) are considered to be balanced as shown in equation (13).

number

[0030] In this case, it can be said that the reaction force from the workpiece that the robot is in contact with is equal to the above output. f and the equivalent mass matrix for calculating the force is M n c Let the estimated or detected force be F^ n rtob and the force command value is F cmd and the cutoff frequency of the I control component such as the observer is ω wob Then, the total disturbance that occurs is expressed by equation (14).

number

[0031] From equations (11) and (14), the way in which interference occurs between the force control axis and the position control axis changes depending on whether the velocity along the force control axis is 0 or not. In order to reduce the interference between the control axes and to suppress the transmission of vibrations (e.g., high-frequency vibrations) generated in one control axis to the other control axis, the robot control system uses the equivalent mass matrix M n In one example, the equivalent mass matrix M nis set to reduce interference from the position control axis to the force control axis and to suppress transmission of vibrations (e.g., high-frequency vibrations) generated in the position control axis to the force control axis. In this case, the equivalent mass matrix M n is expressed by equation (15) when the velocity along the force control axis is non-zero, and by equation (16) when the velocity is zero.

number

number

[0032] That is, the robot control system calculates the first equivalent mass matrix M, which corresponds to the robot velocity along the force control axis being zero. n2 and the second equivalent mass matrix M corresponding to the velocity being non-zero. n3 The robot control system obtains the velocity of the robot along the force control axis and calculates the first equivalent mass matrix M n2 and the second equivalent mass matrix M n3 Then, based on the velocity, the equivalent mass matrix M n Then, the robot control system selects the equivalent mass matrix M n Based on this, a control signal for controlling the robot is generated and output.

[0033] If the robot does not have a force sensor to detect the force, i.e., if the robot is force sensorless, the robot control system estimates the force using a reaction force estimation observer. n can also be used in this reaction force estimation observer. Similarly to equation (12), the force F^ n rtob is expressed by equation (17). In one example, the equivalent mass matrix M n The second equivalent mass matrix M n3 is set.

number

[0034] As mentioned above, in one example, in order to reduce the interference from the position control axis to the force control axis when the velocity along the force control axis is not zero, the second equivalent mass matrix M n3 In this case, decoupling control may be introduced to reduce interference from the force control axis to the position control.

[0035] The decoupling control will be explained. The equivalent mass matrix M in Eq. (15) n3 -1 Assume that the inverse matrix of is as shown in equation (18).

number

[0036] From the definition of the inverse matrix, equation (19) holds.

number

[0037] Therefore, the term representing the interference between the position control axis and the force control axis is defined by equation (20).

number

[0038] From equation (20), the force interference is expressed by equation (21). F n represents the calculated force and F represents the real force.

number

[0039] If the velocity along the force control axis is not zero, the relationship between the calculated force and the actual force on the force control axis is I + M instead of I. n3fp M ipf The matrix multiplication M n3fp M ipfcan be derived and therefore can be removed by performing subtraction or multiplication to change the ratio. n3fp M ipf This can be said to be a process of compensating for the error between the calculated force and the actual force by removing the force.

[0040] It is assumed that equations (22) and (23) can be derived for the equivalent mass matrix.

number

number

[0041] The inverse matrix of equation (23) is defined as equation (24).

number

[0042] In this case, equation (21) is modified to equation (25). The non-interference control is the process expressed by equation (25).

number

[0043] [First example of the system] (System configuration) The robot control system can be realized by any type of computer. The computer can be a general-purpose computer such as a personal computer or a business server, or it can be incorporated into a dedicated device that performs specific processing. The robot control system can be realized by a single computer or a distributed system having multiple computers.

[0044] 1 is a diagram showing an example of the hardware configuration of a computer 100 used for a robot control system. In this example, the computer 100 includes a main body 110, a monitor 120, and an input device .

[0045] The main body 110 is a device having a circuit 160. The circuit 160 has at least one processor 161, a memory 162, a storage 163, an input / output port 164, and a communication port 165. The storage 163 stores programs for configuring each functional module of the main body 110. The storage 163 is a computer-readable recording medium such as a hard disk, a non-volatile semiconductor memory, a magnetic disk, or an optical disk. The memory 162 temporarily stores programs loaded from the storage 163, calculation results of the processor 161, and the like. The processor 161 configures each functional module by executing programs in cooperation with the memory 162. The input / output port 164 inputs and outputs electrical signals to and from the monitor 120 or the input device 130 in response to instructions from the processor 161. The input / output port 164 may also input and output electrical signals to and from other devices. The communication port 165 performs data communication with other devices via a communication network N in response to instructions from the processor 161.

[0046] Monitor 120 is a device for displaying information output from main body 110. Monitor 120 may be any device capable of displaying graphics, and a specific example thereof is a liquid crystal panel.

[0047] The input device 130 is a device for inputting information to the main body 110. The input device 130 may be any device that can input desired information, and specific examples include operation interfaces such as a keypad, a mouse, and an operation controller.

[0048] The monitor 120 and the input device 130 may be integrated as a touch panel. For example, the main body 110, the monitor 120, and the input device 130 may be integrated as a tablet computer.

[0049] Each functional module of the robot control system is realized by loading a robot control program onto processor 161 or memory 162 and having processor 161 execute the program. The robot control program includes code for realizing each functional module of the robot control system. Processor 161 operates input / output port 164 or communication port 165 in accordance with the robot control program, and reads and writes data from and to memory 162 or storage 163.

[0050] The robot control program may be provided by being permanently recorded on a non-transitory recording medium such as a CD-ROM, a DVD-ROM, a semiconductor memory, etc. Alternatively, the robot control program may be provided via a communication network as a data signal superimposed on a carrier wave.

[0051] 2 and 3 are diagrams showing an example of a robot system 1 including a robot control system 10 and a robot 2 according to an example. n2 is selected, and Fig. 3 shows the second equivalent mass matrix M n3is selected. The robot system 1 is an example of an application of a robot control system according to the present disclosure. The robot control system 10 operates a robot 2 arranged in a workspace 9. A motor control device 3 for controlling a motor of the robot 2 may also be arranged in the workspace 9. In one example, a motor and a motor control device 3 are provided for each of multiple drive objects of the robot 2, and one motor control device 3 corresponds to one motor for each drive object. A joint is an example of a drive object. The robot control system 10 and the motor control device 3 are connected to each other via a communication network. The communication network connecting the devices may be a wired network or a wireless network. The communication network may include at least one of the Internet and an intranet. Alternatively, the communication network may be simply implemented by a single communication cable. While FIGS. 2 and 3 show a configuration in which one robot 2 is connected to the robot control system 10, the robot control system 10 may be connected to multiple robots 2.

[0052] The robot 2 is a device that receives power and performs a predetermined operation according to a purpose to perform a useful task. In one example, the robot 2 is a multi-axis, serial-link, vertical articulated robot that is configured to be able to perform various processes while holding an end effector 2a at its tip. The robot 2 can freely change the position and orientation of its tip within a predetermined range. The robot 2 may be a six-axis vertical articulated robot, or a seven-axis vertical articulated robot that adds one redundant axis to the six axes.

[0053] The end effector 2a is a device that acts on a workpiece, for example, a device that applies some kind of physical change to the workpiece. The end effector 2a can be various devices such as a polishing tool, a welding gun, a press, etc.

[0054] The motors are devices that generate power to drive the drive targets of the robot 2 in response to power supplied from the motor control device 3. Each drive target is operated by each motor, and as a result, the end effector 2a performs a predetermined task on a workpiece. The motors may be rotary motors that rotate the drive targets, or linear motors that displace the drive targets along a straight line. The motors may be synchronous motors or induction motors. The motors may be permanent magnet synchronous motors such as SPM (Surface Permanent Magnet) motors and IPM (Interior Permanent Magnet) motors. The motors may be synchronous motors without permanent magnets, such as synchronous reluctance motors. The motors may be DC motors or AC motors.

[0055] The robot 2 may be equipped with at least one sensor, which is a device that detects the response of the robot 2 operated by power from the motor control device 3. For example, the robot 2 may be equipped with a force sensor. A response refers to the output of the robot in response to a command, which is an instruction for controlling the robot. For example, the response indicates information regarding at least one of the motion and state of the robot 2. The response may indicate information regarding at least one of the motion and state of the motor, for example, at least one of the motor's shaft speed and magnetic pole position. If the motor is a rotary motor, the rotation angle of the object driven by the motor corresponds to the "position," and the rotation speed of the object driven by the motor corresponds to the "velocity." The response may indicate information regarding at least one of the motion and state of the object driven, for example, at least one of the position, velocity, and force of the object driven. The sensor transmits a response signal indicating the response to the robot control system 10. The response may be the value obtained by the sensor itself, or may be represented by a value calculated or processed by a given calculation or algorithm.

[0056] The motor control device 3 is a device for making the output of the motor follow commands from the robot control system 10. The motor control device 3 generates power for operating the motor based on commands from the robot control system 10 and supplies the power to the motor. This supplied power corresponds to a driving force command such as a torque command or a current command. The motor control device 3 may be, for example, an inverter or a servo amplifier. The motor control device 3 may be incorporated into the robot 2. The motor control device 3 may also be equipped with a sensor for detecting its own response.

[0057] As shown in Figures 2 and 3, in one example, a robot control system 10 includes, as functional components, a command unit 11, a kinematics conversion unit 12, a position / force control unit 13, a filter unit 14, a velocity acquisition unit 15, a matrix selection unit 16, a force calculation unit 17, a coordinate conversion unit 18, a signal generation unit 19, a disturbance estimation unit 20, and a reaction force estimation unit 21.

[0058] The command unit 11 outputs a command value X for the position that the robot 2 is to realize. cmd and the command value F cmd and to the position / force control unit 13. The command unit 11 may generate at least one of these command values, or may receive at least one of these command values ​​from another device such as a higher-level controller (host controller). In either case, the command unit 11 generates the command value X cmd ,F cmd Output.

[0059] The kinematics conversion unit 12 calculates the response value θ of the position in the joint space by kinematics calculation. res The response value X of the position in the workspace res In one example, the response value θ res indicates the rotation angle of each motor, i.e., the rotation angle of each joint. The kinematics conversion unit 12 converts the response value X res to the position / force control unit 13 and the velocity acquisition unit 15.

[0060] The position / force control unit 13 receives the command value Xcmd ,F cmd , and execute feedback control for each of them to obtain the acceleration reference value s in the workspace 9. 2 X ref The position / force control unit 13 is a functional module that calculates the acceleration reference value s 2 X ref to the filter unit 14. The acceleration reference value is a reference value for the acceleration command. In one example, the position / force control unit 13 outputs the position command value X cmd and the position response value X res Furthermore, the position / force control unit 13 calculates the difference between the force command value F cmd and the reaction force F^ estimated by the reaction force estimation unit 21 or detected by the force sensor. n rtob The position / force control unit 13 calculates the difference between the position and force as the force difference. 2 X ref As shown in equation (9), the acceleration reference value s 2 X ref is a value that takes into account the position control axis and the force control axis.

[0061] The filter unit 14 filters out the high frequency components of the acceleration command, i.e., the acceleration reference value s 2 X ref Therefore, the filter unit 14 can be said to be a low-pass filter. The filter unit 14 is a functional module that removes high-frequency components from the acceleration reference value s 2 X ref is output to the force calculation unit 17.

[0062] The velocity acquisition unit 15 acquires the velocity sX of the robot 2 along the force control axis in the workspace 9. f In one example, the speed acquisition unit 15 acquires the position response value X res Calculate the speed sX based on f The speed acquisition unit 15 acquires the speed sX f is output to the matrix selection unit 16.

[0063] The matrix selection unit 16 selects the velocity sX fThe first equivalent mass matrix M corresponding to n2 and speed sX f The second equivalent mass matrix M corresponding to n3 And then, the speed sX f Based on the equivalent mass matrix M n The matrix selection unit 16 is a functional module that selects the velocity sX f is 0, the first equivalent mass matrix M n2 Select the speed sX f In response to the fact that is not zero, the second equivalent mass matrix M n3 Select .

[0064] The matrix selection unit 16 selects the equivalent mass matrix M n The elements of the equivalent mass matrix M n is transmitted to the force calculation unit 17, the disturbance estimation unit 20, and the reaction force estimation unit 21. f is 0, the matrix selection unit 16 selects the first equivalent mass matrix M n2 , i.e., the first equivalent mass matrix M derived from equation (16) n2 The matrix selection unit 16 selects the first equivalent mass matrix M n2 matrix element M ff ,M pp Set the speed sX f is not 0, the matrix selection unit 16 selects a second equivalent mass matrix M in which at least some of the matrix elements indicating interference between the force control axis and the position control axis are not 0. n3 For example, the matrix selection unit 16 selects the velocity sX f When is not 0, the matrix element M that indicates the interference from the position control axis to the force control axis fp is not 0, and the matrix element M indicates interference from the force control axis to the position control axis. pf The second equivalent mass matrix M n3 That is, the matrix selection unit 16 selects the second equivalent mass matrix M n3 The matrix selection unit 16 selects the second equivalent mass matrix M n3 matrix element M ff ,M pp,M ifp Set.

[0065] In one example, the matrix selection unit 16 selects the first equivalent mass matrix M n2 or the second equivalent mass matrix M n3 Regardless of the selection of the equivalent mass matrix M, the selected equivalent mass matrix M is determined based on the fact that the force control axis and the position control axis are orthogonal to each other. n The "force control axis and position control axis are orthogonal to each other" means that the direction of the force applied to the workpiece by the robot (e.g., end effector) is orthogonal to the direction in which the robot (e.g., end effector) moves.

[0066] Figure 4 shows the two orthogonal control axes and the equivalent mass matrix M n This is a diagram showing an example of the relationship between the force and the position control axis. This example shows a situation in which the end effector 2a moves along the surface of the workpiece 90 while applying a force in the normal direction to the surface. Therefore, the direction of the force and the direction of movement of the end effector 2a are perpendicular to each other. Such a situation can occur, for example, during polishing. In this example, the force control axis extending along the normal direction and the position control axis extending along the surface are perpendicular to each other. F f is the force along the force control axis, and F p is the force along the position control axis. s 2 X f is the acceleration along the force control axis, and s 2 X p is the acceleration along the position control axis. iff is the force F f from acceleration s 2 X f The matrix element M ifp is the force F p from acceleration s 2 X f The matrix element M ipf is the force F f from acceleration s 2 X p The matrix element M ipp is the force F p from acceleration s 2 X p Indicates the degree of impact on

[0067] It should be noted that the relationships between the respective forces, the respective accelerations, and the respective matrix components shown in FIG. 4 also hold true even when the force control axes and the position control axes are not orthogonal to each other.

[0068] 2 and 3, the force calculation unit 17 calculates the selected equivalent mass matrix M n Based on the acceleration reference value s 2 X ref from the force reference value F in workspace 9 n ref The force reference value is a reference value of the force command. In one example, the force calculation unit 17 calculates the acceleration reference value s 2 X ref , that is, the force reference value F based on the acceleration command from which high frequency components have been removed. n ref This calculation can be said to be an implementation of equation (7). In another example, the force calculation unit 17 calculates the disturbance F^ estimated by the disturbance estimation unit 20 (to be described later). n wob Further based on the force reference value F n ref For example, calculate the acceleration reference value s 2 X ref and the selected equivalent mass matrix M n The temporary force reference value obtained from n temp Then, the force calculation unit 17 calculates a temporary force reference value F n temp and disturbance F^ n wob The sum of these is the force reference value F n ref The force calculation unit 17 calculates the force reference value F n ref is output to the coordinate conversion unit 18.

[0069] first equivalent mass matrix M n2 is selected, i.e., the speed sX f is 0, as shown in FIG. 2, the force calculation unit 17 calculates the first equivalent mass matrix M n2 Using the force reference value Fn ref Calculate.

[0070] second equivalent mass matrix M n3 is selected, i.e., the speed sX f is not 0, as shown in FIG. 3, the force calculation unit 17 calculates the second equivalent mass matrix M n3 and performing decoupling control to obtain the force reference value F n ref Calculate the second equivalent mass matrix M n3 is defined by equation (15), the force calculation unit 17 executes decoupling control to compensate for interference from the force control axis to the position control axis.

[0071] The coordinate conversion unit 18 calculates the force reference value F based on the principle of virtual work. n ref The torque reference value τ in the joint space of robot 2 n ref The torque reference value is a reference value of the torque command. The coordinate conversion unit 18 converts the torque reference value τ n ref to the signal generating unit 19. The coordinate transforming unit 18 can be said to implement a calculation including equation (4).

[0072] The signal generator 19 generates the selected equivalent mass matrix M n , which is a functional module that generates a control signal for controlling the robot 2 based on the selected equivalent mass matrix M. In one example, a signal generator 19 is provided for each of the multiple motor control devices 3, and one signal generator 19 corresponds to one motor control device 3. The signal generator 19 generates a control signal for controlling the robot 2 based on the selected equivalent mass matrix M n The torque reference value τ calculated using n ref and outputs the control signal as a command to the motor control device 3. For example, the signal generating unit 19 generates a control signal based on the torque reference value τ n ref As described above, the motor control device 3 generates and outputs a control signal indicating the motor speed, based on the control signal (command), and supplies the motor with the power to operate the motor.

[0073] The disturbance estimation unit 20 estimates the disturbance F^ in the work space 9. n wob , the selected equivalent mass matrix M n The disturbance estimation unit 20 is a functional module that estimates the disturbance F^ based on the disturbance F^. The disturbance estimation unit 20 is realized as a disturbance observer, for example. n wob is output to the force calculation unit 17. The first equivalent mass matrix M n2 is selected, i.e., the speed sX f is 0, as shown in FIG. 2, the disturbance estimation unit 20 does not execute the decoupling control, but calculates the first equivalent mass matrix M n2 Using the disturbance F^ n wob The second equivalent mass matrix M n3 is selected, i.e., the speed sX f is not 0, as shown in FIG. 3, the disturbance estimation unit 20 calculates the second equivalent mass matrix M n3 By using and performing decoupling control, the disturbance F^ n wob Estimate.

[0074] The reaction force estimation unit 21 estimates the reaction force F^ applied to the motor for operating the robot 2. n rtob The reaction force estimator 21 is a functional module that estimates the second equivalent mass matrix M without depending on the selection of the equivalent mass matrix by the matrix selector 16. n3 Based on the reaction force F^ n rtob That is, the reaction force estimator 21 estimates the first equivalent mass matrix M n2 When is selected, the second equivalent mass matrix M n3 In either case, the second equivalent mass matrix M n3 Based on the reaction force F^ n rtob The reaction force estimation unit 21 estimates the reaction force F^ n rtob is output to the position / force control unit 13.

[0075] (Robot control method) As an example of a robot control method according to the present disclosure, an example of a processing procedure executed by the robot control system 10, particularly an example of processing related to selection of an equivalent mass matrix, will be described with reference to Fig. 5. Fig. 5 is a flowchart showing an example of processing in the robot control system 10 as processing flow S1. That is, the robot control system 10 executes processing flow S1.

[0076] In step S101, the kinematics conversion unit 12 acquires, as at least a part of the response, the rotation angle and rotation speed of each motor of the robot 2. In one example, the kinematics conversion unit 12 acquires the rotation angle of each motor and differentiates each rotation angle to acquire the rotation speed of each motor.

[0077] In step S102, the position / force control unit 13 calculates the Jacobian matrix J corresponding to the current posture of the robot 2. aco In one example, the position / force control unit 13 calculates the Jacobian matrix J based on the position of the robot 2 in the joint space and the DH parameters, which are information about the links of the robot 2. aco The DH parameters include, for example, the distance between the joint axes and the torsion.

[0078] In step S103, the position / force control unit 13 calculates the speed sX of the robot 2 based on the rotation angle of each motor. As described above, the speed sX is, for example, the tip speed.

[0079] In step S104, the position / force control unit 13 calculates an inertia matrix J corresponding to the current posture of the robot. In one example, the position / force control unit 13 calculates the inertia matrix J based on the position of the robot 2 in the joint space, the DH parameters of the robot 2, and weight information related to the links of the robot 2. The weight information includes, for example, the mass and the center of gravity position.

[0080] In step S105, the matrix selection unit 16 selects the equivalent mass matrix M n In one example, the matrix selection unit 16 calculates the Jacobian matrix J acoBased on the inertia matrix J, the first equivalent mass matrix M is calculated using the following equation (8): n2 and the second equivalent mass matrix M n3 Calculate each of the following.

[0081] In step S106, the reaction force estimation unit 21 selects the second equivalent mass matrix M n3 is set to estimate the reaction force. The matrix selection unit 16 selects the second equivalent mass matrix M n3 is transmitted to the reaction force estimator 21, and the reaction force estimator 21 calculates the second equivalent mass matrix M n3 Set.

[0082] In steps S107 to S109, the matrix selection unit 16 selects the equivalent mass matrix M n In step S107, the matrix selection unit 16 selects the velocity sX of the robot 2 along the force control axis. f Determine whether or not the velocity sX is 0. f If is 0, the process proceeds to step S108. In step S108, the matrix selection unit 16 selects the first equivalent mass matrix M n2 and calculate the first equivalent mass matrix M n2 is transmitted to the force calculation unit 17 and the disturbance estimation unit 20. On the other hand, the velocity sX f If is not 0, the process proceeds to step S109. In step S109, the matrix selection unit 16 selects the second equivalent mass matrix M n3 and this second equivalent mass matrix M n3 is transmitted to the force calculation unit 17 and the disturbance estimation unit 20.

[0083] In step S110, the force calculation unit 17 calculates the selected equivalent mass matrix M n Based on the force reference value F n ref In one example, the force calculation unit 17 calculates the acceleration reference value s 2 X ref and the selected equivalent mass matrix M n and based on the force reference value F n ref In another example, the disturbance estimation unit 20 calculates the selected equivalent mass matrix M nBased on the disturbance F^ n wob The force calculation unit 17 estimates the disturbance F^ n wob Further based on the force reference value F n ref Calculate.

[0084] In step S111, the signal generating unit 19 calculates the force reference value F n ref In one example, the coordinate transformation unit 18 generates a control signal based on the force reference value F n ref The torque reference value τ n ref and the signal generating unit 19 converts the torque reference value τ n ref The signal generator 19 generates a control signal based on the above. The signal generator 19 outputs the control signal to the motor control device 3.

[0085] As shown by step S112, the robot control system 10 may repeatedly execute steps S101 to S111 until the predetermined process is completed. For example, the robot control system 10 repeats steps S101 to S111 at predetermined intervals.

[0086] [Second example of a system] (System configuration) 6 and 7 are diagrams showing an example of a robot system 1A including a robot control system 30 and a robot 2 according to another example. n2 is selected, and Fig. 7 shows the second equivalent mass matrix M n3 is selected. Robot system 1A is an example of an application of a robot control system according to the present disclosure. As with robot system 1, a robot 2 and a motor control device 3 are placed in a workspace 9. A robot control system 30 connects to the motor control device 3 via a communication network and operates the robot 2.

[0087] As shown in FIGS. 6 and 7 , in one example, the robot control system 30 includes, as functional components, a force command unit 31, a force control unit 32, a position command unit 33, an inverse kinematics conversion unit 34, a kinematics conversion unit 35, a velocity acquisition unit 36, a matrix selection unit 37, a signal generation unit 38, and a reaction force estimation unit 39.

[0088] The force command unit 31 outputs a force command value F cmd to the force control unit 32. The force command unit 31 may generate the command value, or may receive the command value from another device such as a higher-level controller.

[0089] The force control unit 32 determines the force command value F cmd Implement feedback control to obtain the force reference value F ref The force control unit 32 is a functional module that calculates the force reference value F ref to the position command unit 33. In one example, the force control unit 32 outputs a force command value F cmd and the reaction force F^ estimated by the reaction force estimation unit 39 or detected by the force sensor. n rtob The difference between this and the force reference value F ref The force control unit 32 calculates the force reference value F ref is output to the position command unit 33.

[0090] The position command unit 33 outputs a position command value X cmd to the inverse kinematics transformation unit 34. The position command unit 33 may generate the command value or may receive the command value from another device such as a higher-level controller. The position command unit 33 calculates the force reference value F in the workspace. ref is also output to the inverse kinematics transformation unit 34.

[0091] The inverse kinematics transformation unit 34 calculates the inverse kinematics to obtain the command value X cmd The position command value θ in the joint space cmd The inverse kinematics conversion unit 34 converts the command value θ cmd and the force reference value Fref and are output to the signal generating unit 38.

[0092] The kinematics conversion unit 35 calculates the response value θ of the position in the joint space by kinematic calculation. res The response value X of the position in the workspace res In one example, the response value θ res indicates the rotation angle of each motor, i.e., the rotation angle of each joint. The kinematics conversion unit 35 converts the response value X res is output to the speed acquisition unit 36.

[0093] The velocity acquisition unit 36 ​​acquires the velocity sX of the robot 2 along the force control axis in the workspace 9. f In one example, the speed acquisition unit 36 ​​acquires the position response value X res Calculate the speed sX based on f The speed acquisition unit 36 ​​acquires the speed sX f is output to the matrix selection unit 37.

[0094] The matrix selection unit 37 selects the velocity sX f The first equivalent mass matrix M corresponding to n2 and speed sX f The second equivalent mass matrix M corresponding to n3 And then, the speed sX f Based on the equivalent mass matrix M n The matrix selection unit 37 is a functional module that selects the velocity sX f is 0, the first equivalent mass matrix M n2 Select the speed sX f In response to the fact that is not zero, the second equivalent mass matrix M n3 Select .

[0095] The matrix selection unit 37 selects the equivalent mass matrix M n The elements of the equivalent mass matrix M n is transmitted to the signal generating unit 38 and the reaction force estimating unit 39. f is 0, the matrix selection unit 37 selects the first equivalent mass matrix M n2The matrix selection unit 37 selects the first equivalent mass matrix M n2 matrix element M ff ,M pp Set the speed sX f is not 0, the matrix selection unit 37 selects a second equivalent mass matrix M in which at least some of the matrix elements indicating interference between the force control axis and the position control axis are not 0. n3 For example, the matrix selection unit 37 selects the second equivalent mass matrix M n3 The matrix selection unit 37 selects the second equivalent mass matrix M n3 matrix element M ff ,M pp ,M ifp Set.

[0096] In one example, the matrix selection unit 37 selects the first equivalent mass matrix M n2 or the second equivalent mass matrix M n3 Regardless of the selection of the equivalent mass matrix M, the selected equivalent mass matrix M is determined based on the fact that the force control axis and the position control axis are orthogonal to each other. n The example in FIG. 4 also applies to the matrix selection unit 37.

[0097] The signal generator 38 generates the selected equivalent mass matrix M n The signal generator 38 is a functional module that generates a control signal for controlling the robot 2 based on the equivalent mass matrix M selected by the matrix selector 37. A signal generator 38 may be provided for each of the multiple motor control devices 3, with one signal generator 38 corresponding to one motor control device 3. In one example, the signal generator 38 generates a control signal for controlling the robot 2 based on the equivalent mass matrix M selected by the matrix selector 37. n Based on this, the position of the robot 2 in the joint space is converted into a torque reference value of the robot 2, and a control signal is generated based on the torque reference value. The signal generation unit 38 outputs the control signal as a command to the motor control device 3. For example, the signal generation unit 38 generates and outputs a control signal indicating the torque reference value. Based on the control signal (command), the motor control device 3 generates power for operating the motor and supplies the power to the motor.

[0098] In one example, the signal generating unit 38 includes a position control unit 41, an inertia matrix setting unit 42, a torque compensating unit 43, and a combining unit 44.

[0099] The position control unit 41 receives a position command value θ cmd and the force reference value F ref and based on the torque reference value τ ref The position control unit 41 is a functional module that calculates the command value θ cmd and response value θ res The difference between these values ​​is calculated as the torque reference value τ ref The position control unit 41 calculates the torque reference value τ ref is output to the synthesis unit 44.

[0100] The inertia matrix setting unit 42 calculates the inertia fluctuation of the robot 2 as a torque reference value τ ref Inertia matrix J to reflect n dtr , the selected equivalent mass matrix M n This is a functional module that sets the inertia matrix J based on n dtr is an example of an inertia matrix for robot 2. Inertia fluctuation is a phenomenon that occurs due to the posture of robot 2, the relationship between robot 2 and the workpiece, etc.

[0101] first equivalent mass matrix M n2 When is selected, the inertia matrix setting unit 42 calculates the inertia matrix J by the equation (26). n dtr Set.

number

[0102] On the other hand, the second equivalent mass matrix M n3 When is selected, the inertia matrix setting unit 42 calculates the inertia matrix J by the equation (27). n dtr Set.

number

[0103] The torque compensation unit 43 calculates the inertia matrix J n dtr Based on the torque reference value τ ref In one example, the torque compensator 43 is a functional module that compensates for the position command value θ cmd and the force reference value F ref and the inertia matrix J n dtr and based on the torque compensation value τ n cmp The torque compensation unit 43 calculates the torque compensation value τ n cmp is output to the synthesis unit 44.

[0104] The combiner 44 generates a compensated torque reference τ ref In one example, the synthesis unit 44 is a functional module that generates a control signal based on a torque reference τ ref Torque compensation value τ n cmp to obtain the compensated torque reference τ n ref Then, the synthesizer 44 calculates the compensated torque reference value τ n ref and outputs the control signal to the motor control device 3. For example, the synthesizer 44 generates a control signal based on the compensated torque reference value τ n ref As described above, the motor control device 3 generates and outputs a signal indicating the motor drive current (motor speed) based on the control signal (command), and supplies the motor with the generated power.

[0105] The reaction force estimation unit 39 estimates the reaction force F^ applied to the motor for operating the robot 2. n rtob The reaction force estimation unit 39 is a functional module that estimates the second equivalent mass matrix M without depending on the selection of the equivalent mass matrix by the matrix selection unit 37. n3 Based on the reaction force F^ n rtob That is, the reaction force estimation unit 39 estimates the first equivalent mass matrix M n2When is selected, the second equivalent mass matrix M n3 In either case, the second equivalent mass matrix M n3 Based on the reaction force F^ n rtob The reaction force estimation unit 39 estimates the reaction force F^ n rtob is output to the force control unit 32.

[0106] (Robot control method) As an example of a robot control method according to the present disclosure, an example of a processing procedure executed by the robot control system 30, particularly an example of processing related to selection of an equivalent mass matrix, will be described with reference to Fig. 8. Fig. 8 is a flowchart showing an example of processing in the robot control system 30 as processing flow S2. That is, the robot control system 30 executes processing flow S2.

[0107] In step S201, the kinematics conversion unit 35 acquires the rotation angle and rotation speed of each motor of the robot 2 as at least a part of the response. In one example, the kinematics conversion unit 35 acquires the rotation angle of each motor and differentiates each rotation angle to acquire the rotation speed of each motor.

[0108] In step S202, the position control unit 41 calculates the Jacobian matrix J corresponding to the current posture of the robot 2. aco In one example, the position control unit 41 calculates the Jacobian matrix J based on the position of the robot 2 in the joint space and the DH parameters of the robot 2. aco Calculate.

[0109] In step S203, the position control unit 41 calculates the speed sX of the robot 2 based on the rotation angle of each motor. As described above, the speed sX is, for example, the tip speed.

[0110] In step S204, the position control unit 41 calculates an inertia matrix J corresponding to the current posture of the robot. In one example, the position control unit 41 calculates the inertia matrix J based on the position of the robot 2 in the joint space, the DH parameters of the robot 2, and weight information related to the links of the robot 2.

[0111] In step S205, the matrix selection unit 37 selects the equivalent mass matrix M n In one example, the matrix selection unit 37 calculates the Jacobian matrix J aco Based on the inertia matrix J, the first equivalent mass matrix M is calculated using the following equation (8): n2 and the second equivalent mass matrix M n3 Calculate each of the following.

[0112] In step S206, the reaction force estimation unit 39 selects the second equivalent mass matrix M n3 is set to estimate the reaction force. The matrix selection unit 37 selects the second equivalent mass matrix M n3 is transmitted to the reaction force estimator 39, and the reaction force estimator 39 calculates the second equivalent mass matrix M n3 Set.

[0113] In steps S207 to S209, the matrix selection unit 37 selects the equivalent mass matrix M n In step S207, the matrix selection unit 37 selects the velocity sX of the robot 2 along the force control axis. f Determine whether or not the velocity sX is 0. f If is 0, the process proceeds to step S208. In step S208, the matrix selection unit 37 selects the first equivalent mass matrix M n2 and calculate the first equivalent mass matrix M n2 is transmitted to the inertia matrix setting unit 42. On the other hand, the velocity sX f If is not 0, the process proceeds to step S209. In step S209, the matrix selection unit 37 selects the second equivalent mass matrix M n3 and this second equivalent mass matrix M n3 is transmitted to the inertia matrix setting unit 42.

[0114] In step S210, the signal generator 38 calculates the selected equivalent mass matrix M n Based on the torque reference value τ n ref The signal generator 38 calculates the equivalent mass matrix M n Based on this, the command value θ cmd The torque reference value τ ref In one example, the position control unit 41 converts the position command value θ cmd and response value θ res The difference between these values ​​is calculated as the torque reference value τ ref In addition, the inertia matrix setting unit 42 calculates the equivalent mass matrix M n Based on the inertia matrix J n dtr The torque compensation unit 43 calculates the inertia matrix J n dtr Based on the torque compensation value τ n cmp Then, the synthesis unit 44 calculates the torque reference value τ ref Torque compensation value τ n cmp to obtain the compensated torque reference τ n ref get.

[0115] In step S211, the signal generating unit 38 generates a torque reference value τ ref In one example, the synthesizer 44 generates a control signal based on the compensated torque reference τ n ref and outputs the control signal to the motor control device 3.

[0116] As shown by step S212, the robot control system 30 may repeatedly execute steps S201 to S211 until the predetermined process is completed. For example, the robot control system 30 repeats steps S201 to S211 at predetermined intervals.

[0117] [effect] As described above, a robot control system according to one aspect of the present disclosure includes a velocity acquisition unit that acquires the velocity of the robot along a force control axis and a position control axis in a workspace where the robot processes a workpiece based on the force control axis and the position control axis; a matrix selection unit that selects an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0, based on the acquired velocity; and a signal generation unit that generates a control signal for controlling the robot based on the selected equivalent mass matrix.

[0118] A robot control method according to one aspect of the present disclosure is a robot control method executed by a robot control system having at least one processor, and includes the steps of acquiring the velocity of the robot along a force control axis in a workspace in which the robot processes a workpiece based on the force control axis and a position control axis; selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0 based on the acquired velocity; and generating a control signal for controlling the robot based on the selected equivalent mass matrix.

[0119] A robot control program according to one aspect of the present disclosure causes a computer to execute the steps of acquiring the velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and a position control axis, selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to a velocity of 0 and a second equivalent mass matrix corresponding to a velocity that is not 0 based on the acquired velocity, and generating a control signal for controlling the robot based on the selected equivalent mass matrix.

[0120] A robot system according to one aspect of the present disclosure includes the robot control system described above and a robot.

[0121] In this aspect, the equivalent mass matrix is ​​switched depending on the robot's velocity along the force control axis. This mechanism prevents matrix calculation failures during the process of generating control signals, enabling stable control of the robot.

[0122] In a robot control system according to another aspect, the matrix selection unit may select a first equivalent mass matrix in which a matrix element indicating interference between the force control axis and the position control axis is 0 when the velocity is 0. By setting the first equivalent mass matrix in this manner, the robot can be stably controlled when the velocity of the robot along the force control axis is 0.

[0123] In a robot control system according to another aspect, the matrix selection unit may select a second equivalent mass matrix in which at least some of the matrix elements indicating interference between the force control axis and the position control axis are non-zero when the velocity is non-zero. By setting the second equivalent mass matrix in this manner, it is possible to prevent the inverse matrix from diverging in the process of generating a control signal when the velocity of the robot along the force control axis is non-zero. This allows for stable control of the robot.

[0124] In a robot control system according to another aspect, the matrix selection unit may set the matrix components of the equivalent mass matrix based on the fact that the force control axis and the position control axis are orthogonal to each other. In this case, it is possible to stably control the robot that applies a force to a workpiece and moves in a direction orthogonal to the direction of the force.

[0125] A robot control system according to another aspect may further include a reaction force estimator that estimates a reaction force acting on a motor for operating the robot based on a second equivalent mass matrix, without relying on the selection of an equivalent mass matrix by the matrix selector. This configuration allows the reaction force to be estimated taking into account interference between the force control axis and the position control axis.

[0126] A robot control system according to another aspect may further include a force calculation unit that calculates a force reference value in the workspace based on a selected equivalent mass matrix, and a conversion unit that converts the force reference value into a torque reference value in the joint space of the robot, and the signal generation unit may generate a control signal based on the torque reference value. Calculating the force reference value using an equivalent mass matrix selected according to the velocity of the robot along the force control axis avoids situations in which the calculation becomes impossible. Therefore, the robot can be stably controlled.

[0127] In a robot control system according to another aspect, the force calculation unit may calculate the force reference value by performing non-interference control when the velocity is not 0. By using non-interference control, interference between the force control axis and the position control axis is further reduced, allowing the force reference value to be calculated with higher accuracy.

[0128] In a robot control system according to another aspect, the matrix selection unit may select a second equivalent mass matrix in which a matrix element indicating interference from the position control axis to the force control axis is not zero when the velocity is not zero, and the force calculation unit may execute decoupling control to compensate for the interference from the force control axis to the position control axis when the velocity is not zero. By selectively using the second equivalent mass matrix and decoupling control depending on the direction of interference between the position control axis and the force control axis, the configuration for eliminating or reducing the interference can be simplified.

[0129] According to another aspect, the robot control system may further include a disturbance estimator that estimates a disturbance in the workspace based on a selected equivalent mass matrix, and the force calculator may calculate the force reference value based on the estimated disturbance. By estimating the disturbance using the equivalent mass matrix selected according to the velocity of the robot along the force control axis, the force reference value can be calculated more accurately.

[0130] In a robot control system according to another aspect, the disturbance estimation unit may estimate the disturbance by performing non-interference control when the velocity is not 0. By using non-interference control, interference between the force control axis and the position control axis is further reduced, allowing the disturbance to be estimated with higher accuracy.

[0131] According to another aspect, the robot control system may further include a filter unit that removes high-frequency components from the acceleration command in the workspace, and the force calculation unit may calculate the force reference value based on the acceleration command from which the high-frequency components have been removed. This configuration makes it possible to suppress vibrations in the high-frequency band and control the robot more stably.

[0132] In a robot control system according to another aspect, the signal generator may convert the position of the robot in the joint space into a torque reference value of the robot based on the selected equivalent mass matrix, and generate a control signal based on the torque reference value. Calculating the torque reference value using the equivalent mass matrix selected according to the velocity of the robot along the force control axis avoids situations in which the calculation becomes impossible. Therefore, the robot can be stably controlled.

[0133] In a robot control system according to another aspect, the signal generator may set an inertia matrix for the robot based on the selected equivalent mass matrix, compensate the torque reference based on the inertia matrix, and generate a control signal based on the compensated torque reference. By using the equivalent mass matrix selected according to the velocity of the robot along the force control axis, the torque reference is reliably compensated, allowing for more accurate control of the robot.

[0134] [Variations] The present disclosure has been described in detail above based on the embodiments. However, the present disclosure is not limited to the above embodiments. Various modifications of the present disclosure are possible without departing from the spirit and scope of the present disclosure.

[0135] The functional configuration of the robot control system is not limited to the above example. For example, the filter unit may be omitted. If the robot has a force sensor, the reaction force estimation unit may be omitted.

[0136] In the above example, the robot control system is separate from the motor control device, but the robot control system may be incorporated into the motor control device, or may be incorporated into a host controller that outputs commands to the motor control device.

[0137] The hardware configuration of the system is not limited to the implementation of each functional module by executing a program. For example, at least some of the functional modules may be configured with logic circuits specialized for the respective functions, or may be configured with an ASIC (Application Specific Integrated Circuit) that integrates such logic circuits.

[0138] The processing steps of the method executed by at least one processor are not limited to the above examples. For example, some of the steps or processes described above may be omitted, or the steps may be performed in a different order. Furthermore, any two or more of the steps described above may be combined, or some of the steps may be modified or deleted. Alternatively, other steps may be performed in addition to the steps described above.

[0139] When comparing the magnitude of two numbers within a computer system or computer, either of the two criteria "greater than or equal to" and "greater than" can be used, or either of the two criteria "less than or equal to" and "under". [Explanation of symbols]

[0140] 1, 1A... robot system, 2... robot, 2a... end effector, 3... motor control device, 9... workspace, 10... robot control system, 11... command unit, 12... kinematics conversion unit, 13... force control unit, 14... filter unit, 15... velocity acquisition unit, 16... matrix selection unit, 17... force calculation unit, 18... coordinate conversion unit, 19... signal generation unit, 20... disturbance estimation unit, 21... reaction force estimation unit, 30... robot control system, 31... force command unit, 32... force control unit, 33... position command unit, 34... inverse kinematics conversion unit, 35... kinematics conversion unit, 36... velocity acquisition unit, 37... matrix selection unit, 38... signal generation unit, 39... reaction force estimation unit, 41... position control unit, 42... inertia matrix setting unit, 43... torque compensation unit, 44... synthesis unit, 90... workpiece

Claims

1. a velocity acquisition unit that acquires a velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and the position control axis; a matrix selection unit that selects an equivalent mass matrix from a first equivalent mass matrix corresponding to the velocity being 0 and a second equivalent mass matrix corresponding to the velocity being non-zero based on the acquired velocity; a signal generating unit that generates a control signal for controlling the robot based on the selected equivalent mass matrix; Equipped with The first equivalent mass matrix is a first matrix element indicating a degree of influence of the robot's force along the force control axis on the robot's acceleration along the force control axis, and a second matrix element indicating a degree of influence of the robot's force along the position control axis on the robot's acceleration along the position control axis, a matrix element indicating interference between the force control axis and the position control axis is 0; is the equivalent mass matrix, The second equivalent mass matrix is comprising the first matrix element and the second matrix element, At least some of the matrix elements indicating the interference between the force control axis and the position control axis are not zero. The equivalent mass matrix is Robot control system.

2. the matrix selection unit selects the first equivalent mass matrix when the velocity is 0. The robot control system of claim 1 .

3. the matrix selection unit selects the second equivalent mass matrix when the velocity is not 0. The robot control system according to claim 1 or 2.

4. the matrix selection unit sets matrix elements of the equivalent mass matrix based on the fact that the force control axis and the position control axis are orthogonal to each other. The robot control system according to any one of claims 1 to 3.

5. The robot control system according to any one of claims 1 to 4, further comprising a reaction force estimator that estimates a reaction force applied to a motor for operating the robot based on the second equivalent mass matrix, without depending on the selection of the equivalent mass matrix by the matrix selector.

6. a force calculation unit that calculates a force reference value in the workspace based on the selected equivalent mass matrix; a conversion unit that converts the force reference value into a torque reference value in a joint space of the robot; Further provided with the signal generator generates the control signal based on the torque reference value. The robot control system according to any one of claims 1 to 5.

7. the force calculation unit performs decoupling control to calculate the force reference value when the velocity is not 0; The robot control system of claim 6.

8. the matrix selection unit selects the second equivalent mass matrix in which a matrix element indicating interference from the position control axis to the force control axis is not zero when the velocity is not zero; the force calculation unit executes the decoupling control to compensate for interference from the force control axis to the position control axis when the velocity is not 0; The robot control system of claim 7.

9. a disturbance estimator that estimates a disturbance in the workspace based on the selected equivalent mass matrix; the force calculation unit calculates the force reference value based on the estimated disturbance. The robot control system according to any one of claims 6 to 8.

10. the disturbance estimation unit executes non-interference control to estimate the disturbance when the speed is not zero; The robot control system of claim 9.

11. a filter unit that removes high-frequency components of the acceleration command in the working space, the force calculation unit calculates the force reference value based on the acceleration command from which the high-frequency component has been removed. The robot control system according to any one of claims 6 to 10.

12. The signal generation unit converting the robot's joint space position to a torque reference value for the robot based on the selected equivalent mass matrix; generating the control signal based on the torque reference; The robot control system according to any one of claims 1 to 5.

13. The signal generation unit setting an inertia matrix for the robot based on the selected equivalent mass matrix; Compensating the torque reference based on the inertia matrix; generating the control signal based on the compensated torque reference; The robot control system of claim 12.

14. A robot control system according to any one of claims 1 to 13; Robots and A robot system comprising:

15. 1. A robot control method executed by a robot control system having at least one processor, comprising: acquiring a velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and a position control axis; selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to the velocity being zero and a second equivalent mass matrix corresponding to the velocity being non-zero based on the obtained velocity; generating a control signal for controlling the robot based on the selected equivalent mass matrix; Including, The first equivalent mass matrix is a first matrix element indicating a degree of influence of the robot's force along the force control axis on the robot's acceleration along the force control axis, and a second matrix element indicating a degree of influence of the robot's force along the position control axis on the robot's acceleration along the position control axis, a matrix element indicating interference between the force control axis and the position control axis is 0; is the equivalent mass matrix, The second equivalent mass matrix is comprising the first matrix element and the second matrix element, At least some of the matrix elements indicating the interference between the force control axis and the position control axis are not zero. The equivalent mass matrix is Robot control method.

16. acquiring a velocity of the robot along a force control axis in a workspace where the robot processes a workpiece based on the force control axis and a position control axis; selecting an equivalent mass matrix from a first equivalent mass matrix corresponding to the velocity being zero and a second equivalent mass matrix corresponding to the velocity being non-zero based on the obtained velocity; generating a control signal for controlling the robot based on the selected equivalent mass matrix; on the computer, The first equivalent mass matrix is a first matrix element indicating a degree of influence of the robot's force along the force control axis on the robot's acceleration along the force control axis, and a second matrix element indicating a degree of influence of the robot's force along the position control axis on the robot's acceleration along the position control axis, a matrix element indicating interference between the force control axis and the position control axis is 0; is the equivalent mass matrix, The second equivalent mass matrix is comprising the first matrix element and the second matrix element, At least some of the matrix elements indicating the interference between the force control axis and the position control axis are not zero. The equivalent mass matrix is Robot control program.

Citation Information

Patent Citations

  • Method for controlling power control robot

    JP1990139190A

  • Robot control system, robot control method, robot control device, and program, applied to high speed high precision contact work,

    JP2011067884A

  • Control method of force-controlled robot

    JP2691591B2

  • JPP2691591B