Control device, robot and control method
The control device for industrial robot arms predicts and compensates for deformations in the first robot arm to maintain the precision and stability of the second robot arm's position, addressing positional inaccuracies caused by changes in center of gravity and loads.
Patent Information
- Application Number
- JP2021024980
- Authority / Receiving Office
- JP · JP
- Patent Type
- Patents
- Current Assignee / Owner
- Filing Date
- 2021-02-19
- Publication Date
- 2024-12-23
- Estimated Expiration
- 2041-02-19
AI Technical Summary
Industrial robot devices experience positional inaccuracies due to changes in center of gravity and applied loads, leading to vibrations and deformations in links and joints, which affect the accuracy of their operations.
A control device for a robot arm system that includes a first robot arm with multiple links and joints, equipped with estimation units to predict deformations and generate correction commands to compensate for these changes, ensuring precise alignment of a second robot arm.
The control device effectively suppresses unintended fluctuations in the position of the second robot arm's base, maintaining accuracy and stability during operations.
Smart Images

Figure 0007604264000018 
Figure 0007604264000019 
Figure 0007604264000020
Abstract
Description
[Technical field]
[0001] The present disclosure relates to a control device and a robot. [Background technology]
[0002] Conventionally, there is a robot arm mounted on a moving device. For example, Patent Document 1 discloses an industrial robot device that includes an articulated industrial robot and a moving device that moves the industrial robot. The moving device has a horizontal two-joint link mechanism composed of two links, and is fixed to an installation surface. The industrial robot is attached to the tip of the tip-side link. [Prior art documents] [Patent documents]
[0003] [Patent Document 1] Japanese Patent Application Publication No. 1-281891 Summary of the Invention [Problem to be solved by the invention]
[0004] In the industrial robot device of Patent Document 1, when the industrial robot operates, the center of gravity of the industrial robot fluctuates, and the moment that the industrial robot applies to the link of the moving device may fluctuate. For example, when the industrial robot grasps a workpiece, the load and moment that the industrial robot applies to the link of the moving device may fluctuate. Such fluctuations in load and moment may cause deformation such as bending in the link and joint of the moving device. The deformation of the link and joint fluctuates the position of the industrial robot, and the fluctuation in position causes the industrial robot to vibrate. This may reduce the accuracy of the work of the industrial robot.
[0005] An object of the present disclosure is to provide a control device and a robot that suppress unintended fluctuations in the position of a base of a second robot arm supported by a first robot arm. [Means for solving the problem]
[0006] A control device according to one embodiment of the present disclosure is a control device for a first robot arm having at least two links supporting a second robot arm and at least one joint connecting the at least two links to each other, the control device including a first estimation unit that acquires a first operation command for causing the first robot arm to perform a first target operation that is a target operation, and estimates an operation of the at least one joint when the first robot arm operates in accordance with the first operation command, and a second estimation unit that acquires a second operation command for causing the second robot arm to perform a second target operation that is a target operation, and estimates an operation of the at least one joint when the second robot arm operates in accordance with the second operation command, and a connection unit between the second robot arm and the link. a second estimator that estimates a force that the link receives from the second robot arm; a third estimator that estimates a force that the link receives based on the movement of the at least one joint estimated by the first estimator and the force estimated by the second estimator; a fourth estimator that estimates at least one of a deformation amount of the link and a deformation amount of the at least one joint based on the force estimated by the third estimator; and a correction command unit that generates a correction command for the first movement command to compensate for the deformation amount so as to move the connection part in accordance with the first target movement, based on the deformation amount estimated by the fourth estimator, and issues the correction command to the first robot arm. Effect of the Invention
[0007] According to the technique of the present disclosure, it is possible to suppress unintended fluctuations in the position of the base of the second robot arm supported by the first robot arm. [Brief description of the drawings]
[0008] [Figure 1] FIG. 1 is a side view showing an example of a configuration of a robot according to an embodiment; [Diagram 2] FIG. 1 is a side view showing a model of an example of a configuration of a robot according to an embodiment; [Diagram 3] FIG. 1 is a block diagram showing an example of a hardware configuration of a control device according to an embodiment. [Figure 4] FIG. 1 is a block diagram showing an example of a functional configuration of a control device according to an embodiment; [Diagram 5] 1 is a flowchart showing an example of an operation of a control device according to an embodiment. [Figure 6] A side view of a model of a configuration of a robot according to Modification 1. [Figure 7] A side view of a model of a robot configuration according to Modification 2. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0009] (Embodiment) Hereinafter, the embodiments of the present disclosure will be described with reference to the drawings. Note that the embodiments described below are all comprehensive or specific examples. In addition, among the components in the following embodiments, components that are not described in the independent claims showing the highest concept are described as optional components. In addition, each figure in the attached drawings is a schematic diagram and is not necessarily illustrated precisely. Furthermore, in each figure, substantially the same components are given the same reference numerals, and duplicated descriptions may be omitted or simplified. In addition, in this specification and the claims, "apparatus" may mean not only one apparatus but also a system consisting of multiple apparatuses.
[0010] [Robot configuration] The configuration of a robot 1 according to an embodiment will be described with reference to Fig. 1 and Fig. 2. Fig. 1 is a side view showing an example of the configuration of a robot 1 according to an embodiment. Fig. 2 is a side view showing a model of the example of the configuration of a robot 1 according to an embodiment.
[0011] The robot 1 according to the embodiment includes a first robot arm 100, a second robot arm 200, and a control device 300. The first robot arm 100 is fixed to a support surface S and supports the second robot arm 200. The first robot arm 100 has at least one joint and at least two links, and the second robot arm 200 has at least one joint and at least one link.
[0012] In this embodiment, the first robot arm 100 includes two joints JTA1 and JTA2, three links 101 to 103, and drive units MA1 and MA2 for the joints JTA1 and JTA2, but is not limited thereto. The second robot arm 200 includes six joints JTB1 to JTB6, seven links 201 to 207, and drive units MB1 to MB6 for the joints JTB1 to JTB6, respectively. The second robot arm 200 is a vertical multi-joint robot arm, but may be any type of robot arm. For example, the second robot arm 200 may be a horizontal multi-joint robot arm, a polar coordinate type, a cylindrical coordinate type, a rectangular coordinate type, or any other type of robot arm. In addition, the number of links of the second robot arm 200 is not limited to seven, but may be six or less or eight or more, and the number of joints of the second robot arm 200 is not limited to six, but may be five or less or seven or more.
[0013] With respect to the first robot arm 100, the link 103 is located at the base of the first robot arm 100 and is fixed to a support surface S. Although not limited to this, in the present embodiment, the link 103 has a platform shape and functions as a base for the links 101 and 102. The link 102 is located at the tip of the first robot arm 100, and the link 101 is located between the links 102 and 103. The link 103 is an example of a base end link.
[0014] Joint JTA1 is a one-degree-of-freedom rotary joint, and connects one end of columnar link 101 to link 103 so as to be rotatable around a first axis S1. Joint JTA2 is a one-degree-of-freedom rotary joint, and connects one end of columnar link 102 to the other end of link 101 so as to be rotatable around a second axis S2. A second robot arm 200 is attached to the other end of link 102. Thus, links 101 and 102 can be operated by joints JTA1 and JTA2.
[0015] Although not limited thereto, in this embodiment, the first axis S1 extends in a direction along the support surface S, for example, in a horizontal direction, and the second axis S2 extends in a direction perpendicular to the support surface S, for example, in a vertical direction. The link 101 can rotate in a direction along a plane perpendicular to the support surface S, and the link 102 can rotate in a direction along the support surface S. Note that the directions of the first axis S1 and the second axis S2 may be any direction and may be different or the same as each other. The first axis S1 and the second axis S2 are also joint axes of the joints JTA1 and JTA2, respectively.
[0016] The driving devices MA1 and MA2 are configured to rotationally drive the joints JTA1 and JTA2, respectively. The driving devices MA1 and MA2 each include an electric motor (not shown) as a driving source and a reducer (not shown). The reducer of the driving devices MA1 and MA2 reduces the rotational speed of the rotational driving force of each electric motor and increases the rotational driving force to transmit it to the joints JTA1 and JTA2, respectively. In this embodiment, the electric motor is a servo motor.
[0017] In this specification and the claims, the terms "horizontal direction" and "vertical direction" respectively mean the "horizontal direction" and "vertical direction" in the case where the robot 1 is placed on a horizontal support surface S. Furthermore, the term "upward direction" means an upward direction perpendicular to the support surface S in a similar case, that is, a vertically upward direction, and the term "downward direction" means a downward direction perpendicular to the support surface S in a similar case, that is, a vertically downward direction. Furthermore, in this specification and the claims, the terms "vertical", "vertical", "horizontal" and "parallel" may each include cases where the directions are completely vertical, vertical, horizontal or parallel, and cases where the directions can be considered to be substantially vertical, vertical, horizontal or parallel, including the vicinity of completely vertical, vertical, horizontal or parallel.
[0018] Regarding the second robot arm 200, the link 207 is located at the base of the second robot arm 200 and is fixed to the upper surface of the link 102. The link 207 is located higher than the first robot arm 100. An interface 110 between the link 207 and the link 102 is an example of a connection portion of the robot arms 100 and 200. Although not limited to this, in the present embodiment, a center point 110A of the interface 110 is a reference point of the robot arms 100 and 200. Hereinafter, the "interface 110" may be expressed as the "connection portion 110", and the "center point 110A" may be expressed as the "reference point 110A".
[0019] Although not limited thereto, in this embodiment, link 207 has a platform shape and functions as a base for links 201 to 206. Link 206 is located at the tip of second robot arm 200, and links 201 to 205 are arranged in this order between links 206 and 207, from link 207 to link 206. An end effector E capable of acting on a work target W is attached to the tip of link 206. Although not limited thereto, in this embodiment, end effector E is configured to be able to grip target W.
[0020] Each of joints JTB1 to JTB6 is a one-degree-of-freedom rotational joint capable of rotating around one axis. Joint JTB1 rotatably connects link 201 to link 207. Joint JTB2 rotatably connects link 202 to link 201. Joint JTB3 rotatably connects link 203 to link 202. Joint JTB4 rotatably connects link 204 to link 203. Joint JTB5 rotatably connects link 205 to link 204. Joint JTB6 rotatably connects link 206 to link 205.
[0021] The driving units MB1 to MB6 are configured to rotate and drive the joints JTB1 to JTB6, respectively. The driving units MB1 to MB6 each include an electric motor (not shown) as a driving source, and a reducer (not shown). In this embodiment, the electric motor is a servo motor.
[0022] Although not limited thereto, in this embodiment, the control device 300 is configured to control the operation of the entire robot 1. The control device 300 includes an information processing device 300A and a robot controller 300B. The robot controller 300B is configured to control the operations of the robot arms 100 and 200. The information processing device 300A is configured to perform arithmetic processing related to the operation control of the robot arms 100 and 200.
[0023] The information processing device 300A and the robot controller 300B include computer devices. The configuration of the information processing device 300A is not particularly limited, and may be, for example, an electronic circuit board, an electronic control unit, a microcomputer, a personal computer, a workstation, a smart device such as a smartphone or a tablet, or other electronic device. The robot controller 300B may include an electric circuit for controlling the power supplied to the robot arms 100 and 200, etc.
[0024] [Control device hardware configuration] With reference to FIG. 3, the hardware configuration of the control device 300 according to the embodiment will be described. FIG. 3 is a block diagram showing an example of the hardware configuration of the control device 300 according to the embodiment. The information processing device 300A includes a processor 301A, a memory 302A, a storage 303A, and an input / output I / F (Interface) 304A as components. The components of the information processing device 300A are connected to each other by a bus 310A, but may be connected by any other wired or wireless communication. The robot controller 300B includes a processor 301B, a memory 302B, an input / output I / F 304B, and drive I / Fs 305B and 306B as components. The robot controller 300B may include a storage. The components of the robot controller 300B are connected to each other by a bus 310B, but may be connected by any other wired or wireless communication. Not all of the components included in the information processing device 300A and the robot controller 300B are essential.
[0025] A pair of the processor 301A and the memory 302A, and a pair of the processor 301B and the memory 302B each constitute a computing unit. The computing unit transmits and receives commands, information, data, and the like to and from other devices. The computing unit receives inputs of signals from various devices and outputs control signals to each controlled object.
[0026] The memories 302A and 302B store programs executed by the processors 301A and 301B, various fixed data, and the like, respectively. The memories 302A and 302B may be configured with storage devices such as semiconductor memories, such as volatile memories and nonvolatile memories. Although not limited thereto, in this embodiment, the memories 302A and 302B include RAM (Random Access Memory), which is a volatile memory, and ROM (Read-Only Memory), which is a nonvolatile memory.
[0027] The storage 303A stores various data, and may be configured with a storage device such as a semiconductor memory, a hard disk drive (HDD: Hard Disk Drive), or a solid state drive (SSD: Solid State Drive).
[0028] Both the processors 301A and 301B, together with the RAM and ROM, form a computer system. The computer system of the information processing device 300A may realize the functions of the information processing device 300A by the processor 301A using the RAM as a work area to execute a program recorded in the ROM. The computer system of the robot controller 300B may realize the functions of the robot controller 300B by the processor 301B using the RAM as a work area to execute a program recorded in the ROM.
[0029] Some or all of the functions of the information processing device 300A and the robot controller 300B may be realized by the above-mentioned computer system, by a dedicated hardware circuit such as an electronic circuit or an integrated circuit, or by a combination of the above-mentioned computer system and the hardware circuit. The information processing device 300A and the robot controller 300B may each be configured to execute each process by centralized control of a single device, or may be configured to execute each process by distributed control by cooperation of multiple devices. The information processing device 300A and the robot controller 300B may be configured to include at least a part of each other's functions, or may be integrated.
[0030] For example, but not limited to, the processors 301A and 301B may include a CPU (Central Processing Unit), an MPU (Micro Processing Unit), a GPU (Graphics Processing Unit), a microprocessor, a processor core, a multiprocessor, an ASIC (Application-Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), etc., and each process may be realized by a logic circuit or a dedicated circuit formed in an IC (Integrated Circuit) chip, an LSI (Large Scale Integration), etc. A plurality of processes may be realized by one or more integrated circuits, or may be realized by a single integrated circuit.
[0031] The input / output I / F 304A of the information processing device 300A connects the information processing device 300A and the robot controller 300B, enabling input / output of information, commands, data, etc. between them. The input / output I / F 304B of the robot controller 300B connects the robot controller 300B and the input / output I / F 304A of the information processing device 300A, enabling input / output of information, commands, data, etc. between them.
[0032] The first drive I / F 305B connects the robot controller 300B and the first drive circuit 120 of the first robot arm 100, enabling transmission and reception of signals between them. The first drive circuit 120 is configured to control the power supplied to the drive devices MA1 and MA2 of the first robot arm 100 according to a command value included in a signal received from the robot controller 300B.
[0033] The second drive I / F 306B connects the robot controller 300B and the second drive circuit 220 of the second robot arm 200, enabling transmission and reception of signals etc. between them. The second drive circuit 220 is configured to control the power supplied to the drive devices MB1 to MB6 of the second robot arm 200 according to command values included in signals received from the robot controller 300B.
[0034] The robot controller 300B may be configured to servo-control the servo motors of the drive devices MA1, MA2, and MB1 to MB6. The robot controller 300B receives, as feedback information, from the drive circuits 120 and 220, detection values of rotation sensors provided in each servo motor and current command values from the drive circuits 120 and 220 to each servo motor. The robot controller 300B determines drive command values for each servo motor using the feedback information and transmits them to the drive circuits 120 and 220.
[0035] The robot controller 300B may be configured to enable the axis controls of multiple servo motors to be coordinated with each other. The robot controller 300B may be configured to control the servo motors of the driving devices MB1 to MB6 as robot axis control, which is a part of the multiple axis control, and to control the servo motors of the driving devices MA1 and MA2 as external axis control, which is a part of the multiple axis control.
[0036] [Functional configuration of the control device] A functional configuration of the control device 300 according to the embodiment will be described with reference to FIG. 4. FIG. 4 is a block diagram showing an example of the functional configuration of the control device 300 according to the embodiment. The information processing device 300A includes a first operation command unit 401, a second operation command unit 402, a first estimation unit 403, a second estimation unit 404, a third estimation unit 405, a fourth estimation unit 406, a first position estimation unit 407, a second position estimation unit 408, an inertial element estimation unit 409, an inertial force estimation unit 410, a correction command unit 411, and memory units 421 to 423 as functional components. The functions of the functional components other than the memory units 421 to 423 are realized by the processor 301A or the like, and the functions of the memory units 421 to 423 are realized by a storage device such as the memory 302A and / or the storage 303A. The functions of the storage units 421 to 423 may be realized by separate storage devices, or at least two of the functions of the storage units 421 to 423 may be realized by one storage device. All of the above functional components are not essential.
[0037] The robot controller 300B includes, as functional components, a first drive command unit 501 and a second drive command unit 502. The functions of the drive command units 501 and 502 are realized by a processor 301B or the like. All of the above functional components are not essential.
[0038] The storage units 421 to 423 store various information and data, and enable reading of the stored information and data. For example, the first storage unit 421 stores a control program for the robot arms 100 and 200. Although not limited thereto, in this embodiment, the control device 300 is configured to cause the robot arms 100 and 200 to operate autonomously according to the control program, that is, to cause the robot arms 100 and 200 to automatically operate. The first storage unit 421 may store target operation data such as teaching data for causing the robot arms 100 and 200 to operate autonomously. Note that the control device 300 may be configured to cause the robot arms 100 and 200 to operate according to an operation command received from an operation device (not shown), that is, to cause the robot arms 100 and 200 to operate manually.
[0039] For example, the second storage unit 422 stores information on the first robot arm 100. The information on the first robot arm 100 includes information on the links 101 to 103 and the joints JTA1 and JTA2. The information on the links 101 to 103 may include information on the mass, dimensions, shape, center of gravity position, moment of inertia, rigidity, and connection position with the joints of each of the links 101 to 103. The rigidity of the link may include bending rigidity and torsional rigidity of the link. The information on the joints JTA1 and JTA2 may include information on the mass, dimensions, shape, center of gravity position, moment of inertia, rigidity, position and direction of the rotation central axis of each of the joints JTA1 and JTA2, and connection position with the links. The rigidity of the joint may include the rigidity of the members constituting the joint, the rigidity of the rotating part of the joint, and the rigidity of the reduction gear of the joint.
[0040] The information on the links 101 to 103 may be a virtual model reflecting the above information on the links 101 to 103, and the information on the joints JTA1 and JTA2 may be a virtual model reflecting the above information on the joints JTA1 and JTA2. For example, the virtual model may be a three-dimensional model such as a three-dimensional CAD (Computer-Aided Design) model.
[0041] For example, the third storage unit 423 stores information on the second robot arm 200. The information on the second robot arm 200 includes information on the links 201 to 207 and the joints JTB1 to JTB6. Furthermore, the information on the second robot arm 200 may include information on the end effector E attached to the second robot arm 200, and information on the target object W such as a workpiece held by the end effector E. The information on the links 201 to 207 may include information on the mass, dimensions, shape, center of gravity position, moment of inertia, and connection position with the joints of each of the links 201 to 207. The information on the joints JTB1 to JTB6 may include information on the mass, dimensions, shape, center of gravity position, moment of inertia, position and direction of the rotation center axis of each of the joints JTB1 to JTB6, and connection position with the links. The information on the end effector E may include information on its mass, dimensions, shape, center of gravity position, moment of inertia, and connection position with the link 206. The information on the object W may include information on its mass, dimensions, shape, center of gravity, and posture when held. The information on the links 201-207, the joints JTB1-JTB6, the end effector E, and the object W may be virtual models that reflect the above information. For example, the virtual models may be three-dimensional models such as three-dimensional CAD models.
[0042] The first action command unit 401 generates an action command (hereinafter also referred to as a "first action command") for making the first robot arm 100 execute a target action according to first target action data, which is target action data for the first robot arm 100 stored in the first storage unit 421. The first target action data is data for making the first robot arm 100 operate according to a control program. For example, the first action command unit 401 calculates a target position and a target posture of the connection part 110 for moving the connection part 110 according to the first target action data, using information of the first robot arm 100 stored in the second storage unit 422. The target position and the target posture may be a three-dimensional position of the reference point 110A and a three-dimensional posture of the interface of the connection part 110.
[0043] Furthermore, the first operation command unit 401 calculates the target rotation direction and the target rotation amount of the joints JTA1 and JTA2 for moving the connection part 110 to the target position and the target posture, using the information of the first robot arm 100 stored in the second storage unit 422. That is, the first operation command unit 401 calculates the target rotation positions of the joints JTA1 and JTA2. The first operation command unit 401 may be configured to calculate the target rotation positions of the joints JTA1 and JTA2, using the first target operation data and the information of the first robot arm 100. The first operation command unit 401 generates a first operation command including the target rotation positions of the joints JTA1 and JTA2. In the case of manual operation, the first operation command unit 401 generates a first operation command for causing the first robot arm 100 to execute a target operation according to an operation command received from an operation device (not shown) in the same manner as described above.
[0044] The second action command unit 402 generates an action command (hereinafter also referred to as a "second action command") for causing the second robot arm 200 to execute a target action according to second target action data, which is target action data for the second robot arm 200 stored in the first storage unit 421. The second target action data is data for causing the second robot arm 200 to operate according to a control program. For example, the second action command unit 402 calculates a target position and a target posture of the link 206 for moving the link 206 according to the second target action data, using information of the second robot arm 200 stored in the third storage unit 423. The target position and the target posture may be a three-dimensional position and a three-dimensional posture of the tip of the link 206.
[0045] Furthermore, the second movement command unit 402 calculates the target rotation direction and the target rotation amount of the joints JTB1 to JTB6 for moving the link 206 to the target position and the target posture, using the information of the second robot arm 200 stored in the third storage unit 423. That is, the second movement command unit 402 calculates the target rotation positions of the joints JTB1 to JTB6. The second movement command unit 402 may be configured to calculate the target rotation positions of the joints JTB1 to JTB6, using the second target movement data and the information of the second robot arm 200. The second movement command unit 402 generates a second movement command including the target rotation positions of the joints JTB1 to JTB6. In the case of manual operation, the second movement command unit 402 generates a second movement command for causing the second robot arm 200 to execute a target movement according to an operation command received from an operating device (not shown) in the same manner as described above.
[0046] The first estimation unit 403 acquires the first movement command from the first movement command unit 401, and estimates the movements of the joints JTA1 and JTA2 when the first robot arm 100 moves according to the first movement command. For example, the first estimation unit 403 calculates estimated rotation positions, which are estimated values of the rotation positions of the joints JTA1 and JTA2, as the movements of the joints JTA1 and JTA2. The estimated rotation positions of the joints JTA1 and JTA2 include estimated values of the rotation direction and rotation amount of the joints JTA1 and JTA2. The estimated rotation positions of the joints JTA1 and JTA2 correspond to the target rotation positions of the joints JTA1 and JTA2 included in the first movement command. Furthermore, the first estimation unit 403 calculates estimated rotation speeds, which are estimated values of the rotation speeds of the joints JTA1 and JTA2, based on the estimated rotation positions of the joints JTA1 and JTA2.
[0047] The second estimation unit 404 acquires a second movement command from the second movement command unit 402, and estimates a force that the connection part 110 receives from the second robot arm 200 at the reference point 110A when the second robot arm 200 moves according to the second movement command. Although not limited to this, in the present embodiment, the second estimation unit 404 estimates the above force using a reference coordinate system with the reference point 110A as the origin O.
[0048] The reference coordinate system may be a coordinate system having the reference point 110A as the origin O. Although not limited thereto, in this embodiment, the reference coordinate system is defined by an X-axis and a Y-axis extending from the reference point 110A along the interface of the connection part 110 and perpendicular to each other, and a Z-axis extending from the reference point 110A in a direction perpendicular to the interface of the connection part 110 and perpendicular to the X-axis and the Y-axis, as shown in FIG. 2. The positive direction of the Z-axis is the direction from the link 207 toward the link 102. Alternatively, for example, the reference coordinate system may be defined by an X-axis and a Y-axis extending horizontally from the reference point 110A and perpendicular to each other, and a Z-axis extending vertically downward from the reference point 110A and perpendicular to the X-axis and the Y-axis. The vertical downward direction may be the direction of gravity, and the horizontal direction may be perpendicular to the direction of gravity.
[0049] For example, the force may include the load of the second robot arm 200 and a moment generated by the second robot arm 200 at the connection portion 110. For example, the second estimation unit 404 may estimate the positions and orientations of the links 201-207 and the joints JTB1-JTB6 when the second robot arm 200 operates in accordance with the second operation command, and estimate the force using the estimation result and information about the second robot arm 200 stored in the third storage unit 423.
[0050] The load of the second robot arm 200 may include the mass of the second robot arm 200 itself, the mass of the end effector E, and the mass of the object W held by the end effector E. The moment of the second robot arm 200 may include a moment generated at a connection portion 110 between the second robot arm 200 itself, the end effector E, and the object W. The second estimation unit 404 calculates the load and moment of the second robot arm 200 using the information of the second robot arm 200 stored in the third storage unit 423 and the target rotation positions of the joints JTB1 to JTB6 included in the second operation command. The second estimation unit 404 expresses the load and moment of the second robot arm 200 using a reference coordinate system. Furthermore, the second estimation unit 404 calculates the moment of inertia of the entire second robot arm 200 with reference to the reference coordinate system, using the information on the second robot arm 200 stored in the third storage unit 423 and the target rotational positions of the joints JTB1 to JTB6 included in the second operation command. The moment of inertia is the moment of inertia with reference to the origin O of the reference coordinate system.
[0051] The third estimation unit 405 estimates the forces acting on the links 101 to 103 based on the movements of the joints JTA1 and JTA2 estimated by the first estimation unit 403 and the force acting on the connection part 110 from the second robot arm 200 estimated by the second estimation unit 404. Although not limited thereto, in this embodiment, the trapezoidal link 103 is immobile with almost no deformation such as bending even when it receives a force via the link 101 and the joint JTA1, so the third estimation unit 405 estimates the forces acting on the links 101 and 102.
[0052] For example, the third estimation unit 405 estimates the force acting on the links 101 and 102 based on the inertial force acting on the links 101 and 102, which is estimated by the inertial force estimation unit 410 based on the movements of the joints JTA1 and JTA2 estimated by the first estimation unit 403, and the force acting on the connection portion 110 from the second robot arm 200.
[0053] The fourth estimation unit 406 estimates at least one of the deformation amounts of the links 101 and 102 and the deformation amounts of the joints JTA1 and JTA2, based on the forces acting on the links 101 and 102 estimated by the third estimation unit 405. In this embodiment, the fourth estimation unit 406 estimates both the deformation amounts of the links 101 and 102 and the deformation amounts of the joints JTA1 and JTA2.
[0054] The first position estimation unit 407 estimates the positions and orientations of the links 101 and 102 and the joints JTA1 and JTA2. The first position estimation unit 407 estimates the three-dimensional positions and three-dimensional orientations of the links 101 and 102 and the joints JTA1 and JTA2 using a reference coordinate system. For example, the first position estimation unit 407 uses the estimated rotational positions of the joints JTA1 and JTA2 estimated by the first estimation unit 403 and the information of the first robot arm 100 stored in the second storage unit 422 to calculate the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2 at the estimated rotational positions. The first position estimation unit 407 calculates the moments of inertia of the links 101 and 102 based on the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2 based on the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2, based on the reference coordinate system. The moment of inertia is the moment of inertia with respect to the origin O of the reference coordinate system.
[0055] The second position estimation unit 408 estimates the position of the connection part 110. Specifically, the second position estimation unit 408 estimates the three-dimensional position of the reference point 110A of the connection part 110 and the three-dimensional orientation of the interface of the connection part 110 using a reference coordinate system. For example, the first position estimation unit 407 may calculate the estimated position and estimated orientation of the connection part 110 at the estimated rotation position using the estimated rotation positions of the joints JTA1 and JTA2 estimated by the first estimation unit 403 and the information of the first robot arm 100 stored in the second storage unit 422. The second position estimation unit 408 may calculate the estimated position and estimated orientation of the connection part 110 using the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2 estimated by the first position estimation unit 407. The second position estimation unit 408 may obtain the target position and target posture of the connection part 110 corresponding to the target rotation positions of the joints JTA1 and JTA2 from the first operation command unit 401, and convert the target position and target posture into a reference coordinate system to obtain an estimated position and estimated posture.
[0056] The inertial element estimation unit 409 estimates the inertial characteristics of the links 101 to 103 and the inertial characteristics of the second robot arm 200. Although not limited thereto, in this embodiment, the link 103 is immobile with almost no deformation such as bending even when a force is applied via the link 101 and the joint JTA1, so the inertial element estimation unit 409 estimates the inertial characteristics of the links 101 and 102. The inertial characteristics of the links 101 and 102 include the inertial moment and mass of the links 101 and 102 as elements. The inertial characteristics of the second robot arm 200 include the inertial moment and mass of the second robot arm 200 as elements.
[0057] The inertial force estimating unit 410 estimates the inertial forces (hereinafter also referred to as "joint-induced inertial forces") generated in the links 101 to 103 due to the movements of the joints JTA1 and JTA2, based on the movements of the joints JTA1 and JTA2 estimated by the first estimating unit 403. Although not limited thereto, in the present embodiment, the link 103 is immobile with almost no deformation such as bending even when it receives a force via the link 101 and the joint JTA1, so the inertial force estimating unit 410 estimates the joint-induced inertial forces generated in the links 101 and 102.
[0058] Specifically, the inertial force estimator 410 estimates the joint-induced inertial forces occurring in the links 101 and 102 using the inertial characteristics of the links 101 and 102, the inertial characteristics of the second robot arm 200, the accelerations of the joints JTA1 and JTA2, and the joint screws of the joints JTA1 and JTA2. The joint screws of the joints JTA1 and JTA2 are characteristics indicating the state of the joints, including an element indicating the orientation of the joints.
[0059] The correction command unit 411 generates a correction command for the first movement command to compensate for the deformation amount so as to move the connection part 110 according to the first target movement based on the deformation amount of the links 101 and 102 and / or the deformation amount of the joints JTA1 and JTA2 estimated by the fourth estimator 406. The correction command unit 411 outputs the correction command to the first robot arm 100, specifically, to the first drive command unit 501. Although not limited to this, in the present embodiment, the correction command unit 411 corrects the first movement command to compensate for the deformation amount, and generates the corrected first movement command as a correction command. When the correction command unit 411 does not correct the first movement command, it outputs the uncorrected first movement command as a correction command to the first drive command unit 501. In addition, the correction command unit 411 outputs the second movement command to the second robot arm 200, specifically, to the second drive command unit 502.
[0060] The first drive command unit 501 generates a drive command for driving the drive devices MA1 and MA2 to drive the joints JTA1 and JTA2 to the target rotation positions of the joints JTA1 and JTA2 included in the correction command, and outputs the drive command to the drive devices MA1 and MA2. The drive command includes command values for currents of the servo motors of the drive devices MA1 and MA2. The first drive command unit 501 generates the drive command using feedback information of the servo motors.
[0061] The second drive command unit 502 generates drive commands for driving the drive devices MB1 to MB6 to the target rotation positions of the joints JTB1 to JTB6 included in the second operation command, and outputs the drive commands to the drive devices MB1 to MB6. The drive commands include command values for the currents of the servo motors of the drive devices MB1 to MB6. The second drive command unit 502 generates the drive commands using feedback information of the servo motors.
[0062] [Control device operation] The operation of the control device 300 will be described with reference to Fig. 5. Fig. 5 is a flowchart showing an example of the operation of the control device 300 according to the embodiment. First, in the information processing device 300A, the first operation command unit 401 generates a first operation command for operating the first robot arm 100 in accordance with the first target operation data stored in the first storage unit 421 (step S101).
[0063] Next, the second operation command unit 402 generates a second operation command for operating the second robot arm 200 in accordance with the second desired operation data stored in the first storage unit 421 (step S102).
[0064] Next, the first estimation unit 403 estimates the movements of the joints JTA1 and JTA2 when the first robot arm 100 moves according to the first movement command (step S103). The first estimation unit 403 calculates estimated rotational positions and estimated rotational velocities of the joints JTA1 and JTA2 as movements to be estimated.
[0065] Next, the first position estimation unit 407 estimates the positions and orientations of the links 101 and 102 and the joints JTA1 and JTA2 when the first robot arm 100 operates according to the first motion command (step S104). For example, the first position estimation unit 407 may calculate the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2 using the estimated rotational positions of the joints JTA1 and JTA2 estimated by the first estimation unit 403 and information on the first robot arm 100 stored in the second storage unit 422.
[0066] For example, the first position estimation unit 407 calculates the estimated positions of the centers of gravity of the links 101 and 102 based on the reference coordinate system as the estimated positions of the links 101 and 102. For example, the first position estimation unit 407 calculates an estimated position vector γ of the center of gravity of the first link 101 in the reference coordinate system. g1о and an estimated position vector γ of the center of gravity of the second link 102 in the reference coordinate system. g2о In the following, the position vector of the i-th link with respect to the reference point 110A, which is the origin O of the reference coordinate system, is calculated as "γ giо The link number "i" increases from the base end to the tip end of the first robot arm 100. The first position estimation unit 407 may be configured to calculate estimated positions of other reference points set on the links 101 and 102 based on the reference coordinate system.
[0067] For example, the first position estimation unit 407 calculates the estimated positions of the centers of gravity of the joints JTA1 and JTA2 and the estimated orientations of the reference axes thereof based on the reference coordinate system as the estimated positions and orientations of the joints JTA1 and JTA2. For example, the first position estimation unit 407 calculates an estimated position vector γ of the center of gravity of the first joint JTA1 in the reference coordinate system. 1о and the estimated position vector γ of the center of gravity of the second joint JTA2 in the reference coordinate system. 2о In the following, the position vector of the j-th joint with respect to the origin O of the reference coordinate system is calculated as "γ jоThe joint number "j" increases from the base end to the tip end of the first robot arm 100. The first position estimation unit 407 may be configured to calculate estimated positions of other reference points set at the joints JTA1 and JTA2 based on the reference coordinate system.
[0068] For example, the first position estimation unit 407 estimates an estimated direction vector d 1о and the estimated direction vector d of the second joint JTA2 in the reference coordinate system. 2о In the following, the direction vector of the j-th joint with respect to the origin O of the reference coordinate system is calculated as "d jо " The direction vector d jо is a vector that indicates the direction of the reference axis of the motion of the j-th joint. For example, if the j-th joint is a rotational joint, the directional vector d jо is the direction vector of the rotation axis, which is the joint axis. If the j-th joint is a prismatic joint, the direction vector d jо is the directional vector of the axis in the linear motion direction, which is the joint axis.
[0069] Furthermore, the first position estimation unit 407 calculates the moment of inertia l of the links 101 and 102 with respect to the origin O of the reference coordinate system, using the estimated positions of the links 101 and 102 and the estimated positions and postures of the joints JTA1 and JTA2, and the information of the first robot arm 100 stored in the second storage unit 422. 1О and l 2О In the following, the moment of inertia of the i-th link with respect to the origin O of the reference coordinate system is defined as "l iО " is expressed as ".
[0070] Next, the second position estimation unit 408 estimates the position and orientation of the connection part 110 when the first robot arm 100 operates according to the first operation command (step S105). For example, the first position estimation unit 407 may calculate the estimated position and estimated orientation of the connection part 110 using the estimated positions and estimated orientations of the links 101 and 102 and the joints JTA1 and JTA2 estimated by the first position estimation unit 407 and the information of the first robot arm 100 stored in the second storage unit 422.
[0071] The second position estimation unit 408 calculates the estimated position of the reference point 110A and the estimated posture of the interface of the connection part 110 with the robot coordinate system as a reference. That is, the second position estimation unit 408 calculates the estimated position and estimated posture of the reference coordinate system with the robot coordinate system as a reference. The robot coordinate system is a coordinate system defined with the robot 1 as a reference. Although not limited thereto, in this embodiment, as shown in FIG. 2, the origin Or of the robot coordinate system is set to the position of the link 103 on the support surface S. The Xr axis and the Yr axis extend from the origin Or along the support surface S and are orthogonal to each other. The Zr axis extends from the origin Or perpendicularly to the support surface S and is orthogonal to the Xr axis and the Yr axis.
[0072] Next, the second estimation unit 404 estimates a force that the connection part 110 receives from the second robot arm 200 when the second robot arm 200 operates in accordance with the second operation command (step S106). The force includes the load of the second robot arm 200 and a moment that the second robot arm 200 generates at the connection part 110. For example, the second estimation unit 404 calculates estimated positions and orientations of the links 201-207 and the joints JTB1-JTB6 with respect to the reference coordinate system, based on the target rotation positions of the joints JTB1-JTB6 included in the second operation command. Furthermore, the second estimation unit 404 uses the estimated positions and estimated postures of the links 201-207 and the joints JTB1-JTB6, the estimated position and estimated posture of the connection part 110 estimated by the second position estimation unit 408, and information of the second robot arm 200 stored in the third memory unit 423 to calculate the moment generated at the connection part 110 by the second robot arm 200 and the load of the second robot arm 200, based on the reference coordinate system.
[0073] Furthermore, the second estimation unit 404 uses the estimated positions and orientations of the links 201-207 and the joints JTB1-JTB6, and information on the second robot arm 200, to calculate an estimated center of gravity position that is the center of gravity position of the entire second robot arm 200, and an estimated moment of inertia that is the moment of inertia of the entire second robot arm 200. At this time, the second estimation unit 404 may use, as information on the second robot arm 200, the center of gravity positions and masses of the links 201-207, the center of gravity positions and masses of the joints JTB1-JTB6, the center of gravity position and mass of the end effector E, and the center of gravity position and mass of the target object W, etc.
[0074] Next, the inertial element estimation unit 409 estimates the inertial characteristics of each of the links 101 and 102 of the first robot arm 100 and the inertial characteristics of the entire second robot arm 200 (step S107). The inertial element estimation unit 409 calculates each inertial characteristic based on the reference coordinate system using the information of the first robot arm 100 stored in the second storage unit 422 and the information of the second robot arm 200 stored in the third storage unit 423.
[0075] In the following, the inertial characteristic of the i-th link is defined as "L iо " and the inertial characteristic of the entire second robot arm 200 is represented as "L aо " The inertial feature "L iо " and "L aо " is based on the origin O of the reference coordinate system. Inertial characteristics L iо is a 6×6 matrix representing the mass and moment of inertia of the i-th link. aо is a 6×6 matrix representing the mass and moment of inertia of the entire second robot arm 200. The inertial element estimation unit 409 estimates the inertial characteristic L iо and L aо are calculated using the following Equations 1 and 2, respectively. iо and L aо is also called an inertial binary.
[0076]
number
[0077] In formula 1, the element "m i " is the mass of the i-th link and is a scalar. The element "l iО " is a 3 × 3 matrix that represents the moment of inertia of the i-th link. Element "E" is a unit matrix. Element "γ giО " is the three-dimensional position vector of the center of gravity of the i-th link. [γ giО ×] is the position vector γ giО is expressed as a skew-symmetric matrix, and the position vector γ giО It is also called the cross product matrix of
[0078] In formula 2, the element "m a " is the mass of the entire second robot arm 200 and is a scalar. aО " is a 3×3 matrix that represents the moment of inertia of the entire second robot arm 200. The element "γ gaО " is the three-dimensional position vector of the center of gravity of the entire second robot arm 200. [γ gaО ×] is the position vector γ gaО This is a skew-symmetric matrix representation of the cross product of
[0079] Next, the inertial force estimating unit 410 estimates the inertial forces (joint-induced inertial forces) generated in the links 101 and 102 due to the movements of the joints JTA1 and JTA2, based on the movements of the joints JTA1 and JTA2 estimated by the first estimating unit 403 (step S108). The inertial force estimating unit 410 calculates the joint-induced inertial forces generated in the links 101 and 102 using the estimated rotational positions of the joints JTA1 and JTA2 estimated by the first estimating unit 403 and the inertial characteristics estimated by the inertial element estimating unit 409.
[0080] Specifically, the inertia force estimator 410 calculates the joint screws of the joints JTA1 and JTA2. jо The inertia force estimation unit 410 estimates the inertia force of the first joint JTA1.1о and the estimated joint screw M of the second joint JTA2 2о and are calculated based on the reference coordinate system. jо is expressed as a six-dimensional vector.
[0081] In this embodiment, both of the joints JTA1 and JTA2 are rotary joints that can rotate around one rotation center axis. For example, the inertia force estimating unit 410 estimates the inertia force of the j-th joint by estimating the joint screw M jо In formula 3, γ jо ×d jо is γ jо and d jо The element "γ jо " is the 3D estimated position vector of the jth joint, and the element "d jо 」 is the three-dimensional estimated direction vector of the j-th joint. The estimated direction vector d jо indicates the direction vector of the central axis of rotation, which is the joint axis of the j-th joint.
[0082]
number
[0083] The above formula 3 shows the joint screw of the j-th joint when the j-th joint is a rotary joint, but even if the j-th joint is another type of joint, the joint screw of the j-th joint can be calculated. For example, when the j-th joint is a linear joint, the joint screw of the j-th joint can be expressed as the following formula 4. When the j-th joint is a screw joint, the joint screw of the j-th joint can be expressed as the following formula 5. In formula 4, the element "d jо " indicates the direction vector of the axis in the linear motion direction which is the joint axis of the j-th joint. In Equation 5, the element "d jо" indicates the direction vector of the central axis of rotation of the screw rotation, which is the joint axis of the j-th joint, and this direction vector is also the direction vector of the axis in the direction of advancement and retreat due to the screw rotation. The screw joint is configured so that when the link connected to the screw joint rotates around the central axis of rotation, the link advances and retreats in the direction of the central axis of rotation. The element "h" indicates the pitch of the screw rotation, and indicates, for example, the amount of advancement and retreat of the link in the direction of the central axis of rotation per 1 radian rotation.
[0084]
number
[0085] Furthermore, the inertial force estimating unit 410 estimates the accelerations of the joints JTA1 and JTA2. The accelerations are the accelerations generated by the joints JTA1 and JTA2 when the joints JTA1 and JTA2 move to the estimated rotation positions. For example, the inertial force estimating unit 410 calculates the estimated accelerations θ1, θ2, and θ3 of the joints JTA1 and JTA2 by time-differentiating the estimated rotation speeds of the joints JTA1 and JTA2 estimated by the first estimating unit 403. ’’ and θ2 ’’ Calculate.
[0086] The inertial force estimation unit 410 estimates the inertial characteristic L 1о , L 2о and L aо and joint screw M 1о and M 2о and the estimated acceleration θ1 ’’ and θ2 ’’ Using the above, the estimated acceleration θ1 ’’ and θ2 ’’ The joint-induced inertial force F acting on the i-th link due to ijо is calculated based on the reference coordinate system. ijо is the estimated acceleration θ of the j-th joint based on the origin О of the reference coordinate system. j ’’ The inertial force generated in the i-th link is expressed by the following equation. ijо The inertial force estimation unit 410 estimates the estimated acceleration θ1’’ and θ2 ’’ The joint-induced inertial force F generated in the links 101 and 102 due to 11о , F 12о , F 21о and F 22о is calculated as shown in the following Equations 6 to 9. ijо includes the inertial characteristics of the link that moves as a result of the operation of the j-th joint and the inertial characteristics of the second robot arm 200 as elements.
[0087]
number
[0088] Next, the third estimator 405 estimates the forces acting on the links 101 and 102 based on the joint-induced inertial force estimated by the inertial force estimator 410 and the force estimated by the second estimator 404 (step S109). The third estimator 405 estimates the estimated inertial force F of the second robot arm 200 as the force estimated by the second estimator 404. aо The estimated inertial force F aо may be the inertial force that the second robot arm 200 applies to the origin O of the reference coordinate system. Although not limited thereto, in this embodiment, the estimated inertial force F aо The load and moment of the second robot arm 200 estimated by the second estimator 404 are used as the estimated inertial force F aо contains three directional components of the load and three directional components of the moment, and is expressed as a six-dimensional vector.
[0089] The third estimation unit 405 estimates the joint-induced inertial force F ijо and the estimated inertial force F aо Using the above, the estimated inertial force F generated in the i-th link with respect to the origin O of the reference coordinate system is calculated. iо is calculated as the force acting on the i-th link. The estimated inertial force F iо The third estimator 405 estimates the inertial force F generated in the links 101 and 102 by calculating the inertial force F 1о and F2о is calculated as shown in the following Equations 10 and 11.
[0090]
number
[0091] Next, the fourth estimating unit 406 estimates the deformation amounts of the links 101 and 102 and the deformation amounts of the joints JTA1 and JTA2 based on the forces acting on the links 101 and 102 estimated by the third estimating unit 405 (step S110).
[0092] The fourth estimation unit 406 estimates the stiffness k of the joints JTA1 and JTA2 included in the information of the first robot arm 100 stored in the second storage unit 422. g1 and k g2 and the estimated inertial force F 1о and F 2о In this case, the fourth estimator 406 calculates the estimated deformation amounts of the joints JTA1 and JTA2 using the estimated inertial force F 1о and F 2о and joint screw M 1о and M 2о Using these, the estimated torques τ1 and τ2 acting on the joints JTA1 and JTA2, respectively, are calculated as shown in the following Equations 12 and 13. In the following, the stiffness of the j-th joint is referred to as "k gj ” and the estimated torque of the jth joint is expressed as “τ j " Stiffness k gj is a six-dimensional vector that contains three translational components and three rotational components. gj includes the spring constant of the reducer, which is the stiffness of the reducer at the j-th joint. j is a scalar.
[0093]
number
[0094] The operator "o" in formulas 12 and 13 indicates a vector distribution operation. For example, if a six-dimensional vector A includes a vector a1 including a three-dimensional translation component and a vector a2 including a three-dimensional rotation component, and a six-dimensional vector B includes a vector b1 including a three-dimensional translation component and a vector b2 including a three-dimensional rotation component, the operation of vectors A and B using the operator "o" is shown as in formula 14 below.
[0095]
number
[0096] Furthermore, the fourth estimation unit 406 estimates the estimated torque τ j The stiffness k gj The estimated deformation amount Δθ of the jth joint is calculated by dividing j The fourth estimator 406 calculates the estimated deformation amounts Δθ1 and Δθ2 of the joints JTA1 and JTA2, respectively, as shown in the following Equations 15 and 16. j can be used as a compensation amount for the deformation at the j-th joint.
[0097]
number
[0098] The fourth estimation unit 406 estimates the compliance C of the links 101 and 102 included in the information of the first robot arm 100 stored in the second storage unit 422. I1о and C I2о and the estimated inertial force F 1о and F 2о The estimated deformation amount of the links 101 and 102 is calculated using the above. In the following, the compliance of the i-th link is referred to as "C Iiо " Compliance C Iiо indicates the stiffness of the i-th link with respect to the origin O of the reference coordinate system, and is expressed as a 6 × 6 matrix.
[0099] The fourth estimation unit 406 estimates the inertial force F 1о and F2о and Compliance C. I1о and C I2о Using the above, the estimated deformation amounts Δ 1о and Δ 2о is calculated as shown in the following formulas 17 and 18. In the following, the estimated deformation amount of the i-th link is referred to as "Δ iо " The estimated deformation amount Δ iо is expressed as a six-dimensional vector that includes three translational components and three rotational components and is based on the reference coordinate system.
[0100]
number
[0101] Furthermore, the fourth estimator 406 estimates the estimated deformation amount Δ iо and the joint screw M of the jth joint jо Using the above, the estimated deformation amount Δ iо may be converted to the estimated deformation amount of the j-th joint. iо Let the vector containing the three-dimensional translational components contained in be the vector δ tiо and joint screw M jо Let us define the vector containing the three-dimensional translational components contained in jо The estimated deformation of the i-th link Δ iо As shown in the following equation 19, the estimated deformation amount ΔθL of the jth joint j The estimated deformation amount ΔθL j can be a compensation amount for the deformation of the link.
[0102]
number
[0103] Next, the correction command unit 411 generates a correction command for the first operation command to compensate for the amount of deformation so as to move the connection part 110 according to the first target operation based on the amount of deformation estimated by the fourth estimation unit 406 (step S111). The correction command unit 411 associates the correction command with the second operation command and transmits them to the robot controller 300B. The correction command unit 411 corrects the first operation command so as to make the position and posture of the connection part 110 the target position and target posture by compensating for the amount of deformation, and transmits the corrected first operation command as a correction command.
[0104] For example, the correction command unit 411 may add an estimated deformation amount Δθ of the j-th joint to the target rotation position of the j-th joint included in the first motion command. j The correction command unit 411 may correct the first movement command by adding the estimated deformation amount ΔθL of the j-th joint to the target rotation position of the j-th joint included in the first movement command. j In this embodiment, since the j-th joint is a rotational joint having one degree of freedom, the correction command unit 411 may correct the first movement command by adding the estimated deformation amount Δθ j and the estimated deformation amount ΔθL j Either one of these is added to the target rotation position of the j-th joint, but both may be added to the target rotation position of the j-th joint. When the j-th joint has two or more degrees of freedom, the correction command unit 411 calculates the estimated deformation amount Δθ j and the estimated deformation amount ΔθL j Sometimes both are added to the target rotational position of the j-th joint.
[0105] Next, in the robot controller 300B, the drive command units 501 and 502 generate drive commands and output them to the robot arms 100 and 200 (step S112). The first drive command unit 501 generates a drive command according to the correction command and outputs it to the drive units MA1 and MA2 of the first robot arm 100. The second drive command unit 502 generates a drive command according to the second operation command and outputs it to the drive units MB1 to MB6 of the second robot arm 200. The drive command units 501 and 502 output their respective drive commands in cooperation with each other so as to synchronize the output timing of each drive command. As a result, the robot arms 100 and 200 simultaneously execute their respective target operations, but the position and posture of the connection part 110 are prevented from fluctuating from the target position and target posture due to the operations of the two robot arms 100 and 200. Therefore, the second robot arm 200 can accurately perform the target operation on the object W to be acted upon.
[0106] (Variation 1) This modification differs from the embodiment in that the first robot arm 100A has only one joint. The following describes this modification, focusing on the differences from the embodiment, and omitting descriptions of the similarities to the embodiment as appropriate.
[0107] FIG. 6 is a side view of a model of the configuration of a robot 1A according to the first modification. As shown in FIG. 6, the robot 1A includes a second robot arm 200 similar to that of the embodiment, and a first robot arm 100A. The first robot arm 100A includes links 101A and 102A, and a joint JTAA1 that rotatably connects the links 101A and 102A. Although not limited thereto, the first link 101A of this modification has a configuration similar to that of the second link 102 of the embodiment, and the second link 102A of this modification has a configuration similar to that of the third link 103 of the embodiment. The first joint JTAA1 of this modification has a configuration similar to that of the second joint JTA2 of the embodiment. The robot 1A includes a control device 300 including an information processing device 300A and a robot controller 300B similar to those of the embodiment. The information processing device 300A performs the same processing as that of the embodiment, but performs calculations using a calculation formula that differs from that of the embodiment in the following respects.
[0108] The inertial force estimation unit 410 uses the following equation 20 instead of the equations 6 to 9 in the embodiment to calculate the estimated acceleration θ1 of the first joint JTAA1. ’’ The joint-induced inertial force F generated in the first link 101A due to 11о Calculate the following.
[0109]
number
[0110] The third estimation unit 405 uses the following equation 21 instead of the equations 10 and 11 in the embodiment to estimate the inertial force F generated in the first link 101A. 1о Calculate the following.
[0111]
number
[0112] The fourth estimator 406 calculates an estimated torque τ1 of the first joint JTAA1 by using Equation 12. Furthermore, the fourth estimator 406 calculates an estimated deformation amount Δθ1 of the first joint JTAA1 by using Equation 15. The fourth estimator 406 calculates an estimated deformation amount Δ 1о The fourth estimator 406 calculates the estimated deformation amount Δ 1о is converted into an estimated deformation amount ΔθL1 of the first joint JTAA1.
[0113] (Variation 2) This modification differs from the embodiment in that the first robot arm 100B has three joints. Below, this modification will be described focusing on the differences from the embodiment and modification 1, and descriptions of the same points as the embodiment and modification 1 will be omitted as appropriate.
[0114] FIG. 7 is a side view of a model of the configuration of a robot 1B according to the second modification. As shown in FIG. 7, the robot 1B includes a second robot arm 200 similar to that of the embodiment, and a first robot arm 100B. The first robot arm 100B includes links 101B, 102B, 103B, and 104B, and joints JTAB1, JTAB2, and JTAB3. Although not limited thereto, the links 101B and 102B of this modification have the same configuration as the links 101 and 102 of the embodiment, respectively, and the fourth link 104B of this modification has the same configuration as the third link 103 of the embodiment. The joints JTAB1 and JTAB2 of this modification have the same configuration as the joints JTA1 and JTA2 of the embodiment, respectively.
[0115] One end of the third link 103B of this modification is connected to the second link 102B by a third joint JTAB3. The second robot arm 200 is attached to the other end of the third link 103B of this modification, similar to the second link 102 of the embodiment. The third joint JTAB3 is rotatable about a third axis S3 extending in a direction perpendicular to the support surface S. The directions of the first axis S1, the second axis S2, and the third axis S3 may be any direction, and may be different or the same. The robot 1B is equipped with a control device 300 including an information processing device 300A and a robot controller 300B similar to those of the embodiment. The information processing device 300A performs the same process as the embodiment, but performs calculations using a calculation formula different from that of the embodiment in the following respects.
[0116] The inertial element estimation unit 409 calculates the inertial characteristics L of each of the links 101B, 102B, and 103B using Equation 1. 1о , L 2о and L 3о Calculate the following.
[0117] The inertia force estimation unit 410 uses Equation 3 to calculate the inertia force of each of the joint screws M 1о , M 2о and M 3о Calculate the following.
[0118] The inertial force estimation unit 410 estimates the accelerations θ1 of the joints JTAB1, JTAB2, and JTAB3 by using the following equations 22 to 30 instead of the equations 6 to 9 in the embodiment. ’’ , θ 12 ’’ and θ3 ’’ The joint-induced inertial force F generated in the links 101B, 102B, and 103B due to 11о , F 12о , F 13о , F 21о , F 22о , F 23о , F 31о , F 32о and F 33о In this calculation, the inertial force estimator 410 calculates the estimated acceleration θ1 of each of the joints JTAB1, JTAB2, and JTAB3.’’ , θ 12 ’’ and θ3 ’’ and the inertial characteristics L of each of the links 101B, 102B and 103B. 1о , L 2о and L 3о and the inertial characteristic L of the second robot arm 200. aо and the joint screws M of the joints JTAB1, JTAB2 and JTAB3. 1о , M 2о and M 3о and are used.
[0119]
number
[0120] The third estimation unit 405 uses the following equations 31 to 33 instead of the equations 10 and 11 in the embodiment to estimate the inertial forces F generated in the links 101B, 102B, and 103B, respectively. 1о , F 2о and F 3о Calculate the following.
[0121]
number
[0122] The fourth estimator 406 uses the following equations 34 to 36 instead of equations 12 and 13 in the embodiment to calculate estimated torques τ1, τ2, and τ3 acting on the joints JTAB1, JTAB2, and JTAB3, respectively.
[0123]
number
[0124] The fourth estimator 406 uses the following formulas 37 to 39 instead of formulas 15 and 16 in the embodiment to calculate the estimated deformation amounts Δθ1, Δθ2, and Δθ3 of the joints JTAB1, JTAB2, and JTAB3. In this calculation, the fourth estimator 406 calculates the stiffness k g1 , k g2 and k g3 is used.
[0125]
number
[0126] The fourth estimator 406 uses the following expressions 40 to 42 instead of the expressions 17 and 18 in the embodiment to calculate the estimated deformation amounts Δ 1о , Δ 2о and Δ 3о In this calculation, the fourth estimator 406 calculates the compliances C I1о , C I2о and C I3о is used.
[0127]
number
[0128] The fourth estimator 406 calculates the estimated deformation amount Δ 1о , Δ 2о and Δ 3о are converted into estimated deformation amounts ΔθL1, ΔθL2, and ΔθL3 of the joints JTAB1, JTAB2, and JTAB3.
[0129] (Other embodiments) Although the embodiment and the modified examples of the present disclosure have been described above, the present disclosure is not limited to the above embodiment and modified examples. In other words, various modifications and improvements are possible within the scope of the present disclosure. For example, the embodiment and modified examples to which various modifications have been applied, and forms constructed by combining components in different embodiments and modified examples are also included within the scope of the present disclosure.
[0130] For example, although the embodiment and the modified example show a case where the number of joints of the first robot arm is 1, 2 or 3, the number of joints of the first robot arm may be 4 or more. In this case, the control device 300 can perform the same control as in the embodiment and the modified example.
[0131] In the embodiment and the modified example, the degree of freedom of the joints of the first robot arm and the second robot arm is one, but is not limited to this. Even if the degree of freedom of the joints of the first robot arm and the second robot arm is two or more, the control device 300 can perform the same control as in the embodiment and the modified example.
[0132] In addition, in the embodiments and modified examples, a case is exemplified in which the robot 1 performs the task of holding an object W, but regardless of the task the robot 1 performs, the control device 300 can perform control similar to that in the embodiments and modified examples.
[0133] Examples of each aspect of the technology of the present disclosure are given below: A control device according to one aspect of the present disclosure is a control device for a first robot arm having at least two links supporting a second robot arm and at least one joint connecting the at least two links to each other, comprising a first estimation unit that acquires a first motion command for causing the first robot arm to perform a first target motion that is a target motion, and estimates the motion of the at least one joint when the first robot arm operates in accordance with the first motion command, and a second estimation unit that acquires a second motion command for causing the second robot arm to perform a second target motion that is a target motion, and estimates the motion of a connection between the second robot arm and the link when the second robot arm operates in accordance with the second motion command. a second estimator that estimates a force that the link receives from the second robot arm; a third estimator that estimates a force that the link receives based on the movement of the at least one joint estimated by the first estimator and the force estimated by the second estimator; a fourth estimator that estimates at least one of a deformation amount of the link and a deformation amount of the at least one joint based on the force estimated by the third estimator; and a correction command unit that generates a correction command for the first movement command to compensate for the deformation amount so as to move the connection part in accordance with the first target movement, based on the deformation amount estimated by the fourth estimator, and issues the correction command to the first robot arm.
[0134] According to the above aspect, the control device estimates a deformation amount occurring in the link and / or joint of the first robot arm when the first robot arm executes a first target motion and the second robot arm executes a second target motion. The deformation amount may cause a difference between an actual motion of the connection part according to the first motion command and the first target motion. The control device can cause the first robot arm to perform a motion that reduces the difference, that is, a motion that compensates for the deformation amount, by issuing a correction command to the first robot arm. Thus, the control device can suppress the connection part from being unintentionally displaced from the target position and from being unintentionally oscillated due to the deformation of the link and / or the deformation of the joint. Thus, unintentional fluctuation in the position of the connection part, which is the base of the second robot arm, is suppressed.
[0135] In a control device according to one aspect of the present disclosure, the at least two links may include a base end link and a first link connected to the base end link and the second robot arm, the at least one joint may include a first joint connecting the first link to the base end link, the first estimator may estimate a movement of the first joint, the third estimator may estimate a force acting on the first link based on the movement of the first joint estimated by the first estimator and a force estimated by the second estimator, and the fourth estimator may estimate at least one of a deformation amount of the first link and a deformation amount of the first joint based on the force acting on the first link estimated by the third estimator.
[0136] According to the above aspect, the control device can control the first robot arm having one joint, and can suppress unintended fluctuations in the position of the base of the second robot arm.
[0137] In a control device according to an aspect of the present disclosure, the at least two links include a base end link, a first link connected to the base end link, and a second link connected to the second robot arm, the at least one joint includes a first joint connecting the first link to the base end link and a second joint connecting the second link to the first link, the first estimator estimates movements of the first joint and the second joint, and the third estimator estimates a force of the first link based on the movements of the first joint and the second joint estimated by the first estimator and a force estimated by the second estimator. the third estimator estimates a force applied to the second link based on movements of the first joint and the second joint estimated by the first estimator and a force estimated by the second estimator; the fourth estimator estimates at least one of a deformation amount of the first link and a deformation amount of the first joint based on the force applied to the first link estimated by the third estimator; and the fourth estimator estimates at least one of a deformation amount of the second link and a deformation amount of the second joint based on the force applied to the second link estimated by the third estimator.
[0138] According to the above aspect, the control device controls a first robot arm having two joints, and can suppress unintended fluctuations in the position of the base of a second robot arm. The control device uses all of the estimated motions of the first joint and the second joint to estimate the force acting on the first link and the force acting on the second link, respectively. This improves the accuracy of estimating the force acting on each link, thereby improving the accuracy of estimating the deformation amount of each link and each joint.
[0139] A control device according to one embodiment of the present disclosure may further include an inertial force estimation unit that estimates an inertial force generated in the link due to movement of the at least one joint based on the movement of the at least one joint estimated by the first estimation unit, and the third estimation unit may estimate a force received by the link based on the inertial force estimated by the inertial force estimation unit and the force estimated by the second estimation unit.
[0140] According to the above aspect, the control device estimates the inertial force of the link generated due to the movement of the joint, and estimates the force acting on the link using the estimated inertial force of the link, thereby improving the estimation accuracy of the force acting on the link.
[0141] A control device according to one embodiment of the present disclosure may further include a first position estimation unit that estimates a position of the link, a second position estimation unit that estimates a position of the connection portion, and an inertial element estimation unit that estimates an inertial characteristic of the link and an inertial characteristic of the second robot arm, wherein the inertial characteristic of the link includes an inertial moment and a mass of the link as elements, and the inertial characteristic of the second robot arm includes an inertial moment and a mass of the second robot arm as elements, the inertial force estimation unit estimates the inertial force generated in the link using the inertial characteristic of the link, the inertial characteristic of the second robot arm, an acceleration of the at least one joint, and a joint screw of the at least one joint, and the joint screw may be a feature indicating a state of the at least one joint including an element indicating an orientation of the at least one joint.
[0142] According to the above aspect, the inertial characteristic includes an element of the moment of inertia and an element of the mass. The control device estimates the inertial force generated in the link due to the movement of the joint by using the inertial characteristics of the link and the second robot arm. Thus, the estimation accuracy of the inertial force is improved.
[0143] A robot according to an embodiment of the present disclosure includes the control device according to an embodiment of the present disclosure, the first robot arm, and the second robot arm. According to the above embodiment, the same effect as that of the control device according to an embodiment of the present disclosure can be obtained. The robot can cause the first robot arm and the second robot arm to perform a target motion while suppressing unintended fluctuations in the position of the base of the second robot arm.
[0144] In the robot according to one aspect of the present disclosure, the control device may be configured to generate the first motion command and the second motion command and control the motions of the first robot arm and the second robot arm. According to the above aspect, the control device can function as a robot controller. That is, the robot controller can cause the first robot arm and the second robot arm to perform target motions while suppressing unintended fluctuations in the position of the base of the second robot arm.
[0145] In addition, all the numbers such as ordinal numbers and quantities used above are exemplified to specifically explain the technology of the present disclosure, and the present disclosure is not limited to the exemplified numbers. In addition, the connection relationships between the components are exemplified to specifically explain the technology of the present disclosure, and the connection relationships that realize the functions of the present disclosure are not limited to these.
[0146] In addition, the division of blocks in the functional block diagram is an example, and multiple blocks may be realized as one block, one block may be divided into multiple blocks, and / or some functions may be transferred to another block. Furthermore, the functions of multiple blocks having similar functions may be processed in parallel or in a time-division manner by a single piece of hardware or software. [Explanation of symbols]
[0147] 1,1A,1B Robot 100, 100A, 100B First robot arm 101, 101A, 101B 1st link 102, 102A, 102B 2nd link 103 Link (base link) 103B 3rd link 104B 4th link (base link) 110 Connection part (interface) 200 Second Robot Arm 300 Control device 300A Information processing equipment 300B Robot Controller 403 1st estimation part 404 Second estimation part 405 Third Estimation Department 406 4th Estimation Department 407 First position estimation section 408 Second position estimation section 409 Inertial element estimator 410 Inertia force estimation section 411 Correction command section JTA1, JTAA1, JTAB1 1st joint JTA2, JTAB2 2nd joint JTAB3 Third joint
Claims
1. A control device for a first robot arm having at least two links supporting a second robot arm and at least one joint interconnecting the at least two links, comprising: a first estimation unit that acquires a first movement command for causing the first robot arm to perform a first target movement that is a target movement, and estimates a movement of the at least one joint when the first robot arm moves in accordance with the first movement command; a second estimation unit that acquires a second operation command for causing the second robot arm to perform a second target operation that is a target operation, and estimates a force that is applied from the second robot arm to a connection portion between the second robot arm and the link when the second robot arm operates in accordance with the second operation command; an inertial force estimator that estimates an inertial force generated in the link due to movement of the at least one joint, based on the movement of the at least one joint estimated by the first estimator; a third estimation unit that estimates a force acting on the link based on the inertial force estimated by the inertial force estimation unit and the force estimated by the second estimation unit; a fourth estimator that estimates at least one of a deformation amount of the link and a deformation amount of the at least one joint based on the force estimated by the third estimator; a correction command unit that generates a correction command for the first operation command to compensate for the amount of deformation so as to move the connection portion in accordance with the first target operation based on the amount of deformation estimated by the fourth estimation unit, and issues the correction command to the first robot arm. Control device.
2. the at least two links include a base end link and a first link connected to the base end link and the second robot arm; the at least one joint includes a first joint connecting the first link to the base link; The first estimator estimates a motion of the first joint; the inertial force estimator estimates, based on the movement of the first joint estimated by the first estimator, a force of inertia generated in the first link due to the movement of the first joint; the third estimation unit estimates a force acting on the first link based on the inertial force acting on the first link estimated by the inertial force estimation unit and the force estimated by the second estimation unit; The fourth estimator estimates at least one of a deformation amount of the first link and a deformation amount of the first joint based on the force acting on the first link estimated by the third estimator. The control device according to claim 1 .
3. the at least two links include a base end link, a first link connected to the base end link, and a second link connected to the second robot arm; the at least one joint includes a first joint connecting the first link to the base link and a second joint connecting the second link to the first link; The first estimator estimates movements of the first joint and the second joint, the inertial force estimator estimates, based on the movements of the first joint and the second joint estimated by the first estimator, inertial forces generated in the first link and the second link due to movements of the first joint and the second joint; the third estimation unit estimates a force acting on the first link based on the inertial force acting on the first link estimated by the inertial force estimation unit and the force estimated by the second estimation unit; the third estimation unit estimates a force acting on the second link based on the inertial force occurring in the second link estimated by the inertial force estimation unit and the force estimated by the second estimation unit; the fourth estimator estimates at least one of a deformation amount of the first link and a deformation amount of the first joint based on the force acting on the first link estimated by the third estimator; The fourth estimator estimates at least one of a deformation amount of the second link and a deformation amount of the second joint based on the force acting on the second link estimated by the third estimator. The control device according to claim 1 .
4. a first position estimation unit that estimates a position of the link; A second position estimation unit that estimates a position of the connection portion; an inertial element estimator that estimates an inertial characteristic of the link and an inertial characteristic of the second robot arm, The inertial characteristics of the link include a moment of inertia and a mass of the link; The inertial characteristics of the second robot arm include a moment of inertia and a mass of the second robot arm as elements; the inertial force estimator estimates the inertial force generated in the link by using an inertial characteristic of the link, an inertial characteristic of the second robot arm, an acceleration of the at least one joint, and a joint screw of the at least one joint; The joint screw is a feature indicative of a state of the at least one joint, the feature including an element indicative of an orientation of the at least one joint. The control device according to any one of claims 1 to 3.
5. A control device according to any one of claims 1 to 4; The first robot arm; The second robot arm robot.
6. The control device is configured to generate the first movement command and the second movement command to control movement of the first robot arm and the second robot arm. The robot according to claim 5.
7. A method for controlling a first robot arm having at least two links supporting a second robot arm and at least one joint interconnecting the at least two links, comprising: Obtaining a first motion command for causing the first robot arm to perform a first target motion that is a target motion; Estimating an estimated joint motion, which is a motion of the at least one joint when the first robot arm moves in accordance with the first motion command; Obtaining a second movement command for causing the second robot arm to perform a second target movement that is a target movement; estimating an estimated connection part force, which is a force that a connection part between the second robot arm and the link receives from the second robot arm when the second robot arm operates in accordance with the second movement command; estimating an estimated inertial force, which is an inertial force generated in the link due to the motion of the at least one joint, based on the estimated joint motion; estimating an estimated link force, which is a force acting on the link, based on the estimated inertial force and the estimated connection portion force; estimating an estimated deformation amount including at least one of a deformation amount of the link and a deformation amount of the at least one joint based on the estimated link force; generating a correction command for the first motion command to compensate for the estimated deformation amount based on the estimated deformation amount so as to move the connection portion in accordance with the first target motion; and issuing the correction command to the first robot arm. Control methods.
Citation Information
Patent Citations
Industrial robot device
JP1989281891A
Robot control device and robot control method
JP2005242794A
Robot control device, and robot control method
JP2017056544A
Robot system and robot control method
JP2017087375A
Determining An Orientation Of A Robot Relative To The Direction Of Gravity
US20190009410A1
