ROBOT SYSTEM AND CONTROLLER
20240189986 ยท 2024-06-13
Assignee
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
B23Q15/013
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1664
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1687
PERFORMING OPERATIONS; TRANSPORTING
B25J15/0019
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1602
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1653
PERFORMING OPERATIONS; TRANSPORTING
International classification
B25J11/00
PERFORMING OPERATIONS; TRANSPORTING
Abstract
A robot system includes a robot to which a screw tightening driver for screw tightening is attached as an end effector and a controller that controls the robot. The controller includes a first command generation module that generates a command for rotation of the screw tightening driver in accordance with a predetermined operation profile and a second command generation module that generates a command to move the screw tightening driver along a predetermined direction by displacement calculated in accordance with the command generated by the first command generation module.
Claims
1. A robot system comprising: a robot to which a screw tightening driver for screw tightening is attached as an end effector; and a controller that controls the robot, wherein the controller comprises a first command generation module that generates a command for rotation of the screw tightening driver in accordance with a predetermined operation profile, and a second command generation module that generates a command to move the screw tightening driver along a predetermined direction by displacement calculated in accordance with the command generated by the first command generation module.
2. The robot system according to claim 1, wherein the operation profile defines change in cumulative angle of the screw tightening driver with respect to time.
3. The robot system according to claim 1, wherein the second command generation module outputs as the command, second displacement calculated by multiplying first displacement indicated by the command generated by the first command generation module by a coefficient.
4. The robot system according to claim 3, wherein the coefficient is determined depending on a lead of a screw rotationally driven by the screw tightening driver.
5. The robot system according to claim 4, wherein a corresponding coefficient among a plurality of coefficients is selected in accordance with a type of the screw rotationally driven by the screw tightening driver.
6. The robot system according to claim 1, wherein a processor of the controller is configured to execute a control program, and the control program includes functional blocks that define the first command generation module and the second command generation module, respectively.
7. A controller that controls a robot to which a screw tightening driver for screw tightening is attached as an end effector, the controller comprising: a first command generation module that generates a command for rotation of the screw tightening driver in accordance with a predetermined operation profile; and a second command generation module that generates a command to move the screw tightening driver along a predetermined direction by displacement calculated in accordance with the command generated by the first command generation module.
8. The controller according to claim 7, wherein the operation profile defines change in cumulative angle of the screw tightening driver with respect to time.
9. The controller according to claim 7, wherein the second command generation module outputs as the command, second displacement calculated by multiplying first displacement indicated by the command generated by the first command generation module by a coefficient.
10. The controller according to claim 9, wherein the coefficient is determined depending on a lead of a screw rotationally driven by the screw tightening driver.
11. The controller according to claim 10, wherein a corresponding coefficient among a plurality of coefficients is selected in accordance with a type of the screw rotationally driven by the screw tightening driver.
12. The controller according to claim 7, wherein a processor of the controller is configured to execute a control program, and the control program includes functional blocks that define the first command generation module and the second command generation module, respectively.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0016]
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
DESCRIPTION OF THE PREFERRED EMBODIMENTS
[0025] An embodiment of the present disclosure will be described in detail with reference to the drawings. The same or corresponding elements in the drawings have the same reference characters allotted and description thereof will not be repeated.
<A. Exemplary Overall Configuration of Robot System>
[0026] An exemplary overall configuration of a robot system 1 according to the present embodiment will initially be described.
[0027]
[0028] Robot 10 includes a base 11 and a plurality of movable portions 12, 13, 14, 15, 16, and 17. Movable portions 12, 13, 14, 15, 16, and 17 correspond to joints of robot 10. Each of movable portions 12, 13, 14, 15, 16, and 17 drives a link constituting robot 10 along a rotation axis as illustrated in
[0029] A screw tightening driver 20 for screw tightening is attached as an end effector to robot 10. More specifically, screw tightening driver 20 as the end effector is attached to a tip of an arm of robot 10.
[0030] Screw tightening driver 20 includes a rotational drive portion 22 and a driver bit 24 mechanically connected to rotational drive portion 22. Driver bit 24 is engaged with a hole provided in a head of a screw and the screw is rotationally driven by rotational drive portion 22 with driver bit 24 being interposed. Rotational drive portion 22 contains a motor 37 (see
[0031] A load sensor 18 (see
[0032] An information processing apparatus 200 may be connected to robot controller 100. Information processing apparatus 200 which is typically a general-purpose computer presents information from robot controller 100 to a user and gives any command to robot controller 100 according to a user operation.
<B. Hardware Configuration Example of Robot System>
[0033] An exemplary hardware configuration of robot system 1 according to the present embodiment will now be described.
[0034]
[0035] Robot 10 also includes a driver 47 that drives motor 37 provided in screw tightening driver 20.
[0036] Robot 10 further includes load sensor 18 and a teaching pendant 26. Load sensor 18 detects a load generated in the end effector or the like. Teaching pendant 26 performs teaching or the like of robot 10 according to a user operation. Teaching pendant 26 may be constructed as being attachable to and removable from robot 10.
[0037] Drivers 41, 42, 43, 44, 45, 46, and 47, load sensor 18, and teaching pendant 26 are electrically connected to robot controller 100 with an interface 40 being interposed.
[0038] Robot controller 100 is a kind of computer, and includes a processor 102, a memory 104, an interface 106, and a storage 110 as main hardware components. These components are electrically connected via a bus 108.
[0039] Processor 102 typically includes a central processing unit (CPU), a micro processing unit (MPU), and the like. Memory 104 typically includes a volatile storage device such as a dynamic random access memory (DRAM) or a static random access memory (SRAM). Storage 110 typically includes a non-volatile storage device such as a solid state disk (SSD) or a flash memory. Storage 110 stores a system program 112 for achieving basic processing and a control program 114. Control program 114 includes computer-readable instructions for controlling robot 10. Processor 102 reads system program 112 and control program 114 stored in storage 110, expands the programs in main memory 104, and executes the programs, thereby implementing processing for controlling robot 10 as described later.
[0040] Interface 106 exchanges signals and/or data between robot controller 100 and robot 10. In robot system 1, commands for controlling drivers 41, 42, 43, 44, 45, 46, and 47 are transmitted from robot controller 100 to robot 10, and detection results of load sensor 18 are transmitted from robot 10 to robot controller 100.
[0041] Although
[0042] Although
[0043] Further, some or all of the functions and processes provided by robot controller 100 may be achieved by using computing resources on a network called cloud.
[0044] As described above, robot system 1 according to the present embodiment may be mounted in any manner.
<C. Synchronization Control of Robot System>
[0045] Synchronization control of robot system 1 according to the present embodiment will now be described.
[0046] As a typical operation of robot 10 to which screw tightening driver 20 is attached as the end effector, an operation to change the position of screw tightening driver 20 in conformity with rotational drive of the screw by screw tightening driver 20 and movement of the screw toward a screw hole as a result of rotational drive is assumed. In order to perform such an operation, the position of screw tightening driver 20 should be changed in coordination with movement of the screw toward the screw hole.
[0047] In general, a spring is provided between rotational drive portion 22 and driver bit 24, and a distance therebetween increases with external force applied to driver bit 24. By adopting such a mechanism, while the position of screw tightening driver 20 is fixed, movement of the screw by rotational drive is accommodated. In adoption of this construction, a spring or a spring washer should appropriately be selected and adjusted. In order to do so, however, experiences to some extent are required, and a user with poor knowledge is unable to do so with ease.
[0048] Robot system 1 according to the present embodiment provides a configuration that more readily allows control for synchronization between an operation of screw tightening driver 20 and an operation of robot 10.
[0049]
[0050] Referring to
[0051] Rotational drive command generation module 130 generates a rotational drive command value in accordance with a predetermined operation profile 132.
[0052] Specifically, rotational drive command generation module 130 generates a command for rotation of screw tightening driver 20 (rotational drive portion 22) in accordance with operation profile 132. The rotational drive command value may be, for example, a rotation angle (rotation position), the number of rotations, a rotation velocity, or the like for each control cycle, for motor 37 of rotational drive portion 22.
[0053] Rotational drive command generation module 130 outputs displacement in accordance with the rotational drive command value generated in accordance with operation profile 132. The displacement is calculated in accordance with operation profile 132.
[0054]
[0055] As shown in
[0056] A duration of each of periods T1, T2, and T3 and cumulative angle R can freely be set.
[0057] As shown in
[0058] Referring again to
[0059] Robot operation command generation module 140 calculates the robot position command value in accordance with the displacement from rotational drive command generation module 130 and a screw lead 144, for an axis designated by slave axis designation 142. Specifically, robot operation command generation module 140 generates a command to move screw tightening driver 20 along a predetermined direction by the displacement calculated in accordance with a robot operation command generated by rotational drive command generation module 130.
[0060]
[0061] In an example shown in
[0062] When the cumulative angle (the number of times of rotation) and the lead of screw 50 can be specified, the distance over which screw 50 moves toward the screw hole can accurately be calculated.
[0063] For example, an example in which screw tightening driver 20 attached to the tip of the arm of robot 10 moves along a direction of advance of screw 50 (assumed, for example, as a Z-axis direction) in coordination with rotation of rotational drive portion 22 is assumed.
[0064] The position in the Z-axis direction of screw tightening driver 20 is determined in coordination with the cumulative angle (displacement) of rotational drive portion 22 of screw tightening driver 20. More specifically, a value calculated by multiplying a cumulative angle R.sub.D(t) [deg] of rotational drive portion 22 by a lead L is the displacement given to robot 10. More specifically, a robot position command P.sub.RZ(t) is calculated as below.
P.sub.RZ(t)=P.sub.RZS+L?R.sub.D(t)/360
[0065] An operation start position P.sub.RZS represents a position of robot 10 at which the robot starts a screw tightening operation.
[0066] Robot operation command generation module 140 thus outputs as the robot position command value, the displacement calculated by multiplying the displacement indicated by the rotational drive command value generated by rotational drive command generation module 130 by a coefficient. At this time, the coefficient such as screw lead 144 may be determined depending on the lead of screw 50 rotationally driven by screw tightening driver 20.
[0067] A plurality of screw leads 144 may be prepared in accordance with the type of the screw. In this case, one of the plurality of prepared screw leads 144 is selected in accordance with a screw of interest. In other words, a corresponding coefficient among a plurality of coefficients (screw leads 144) may be selected in accordance with the type of screw 50 rotationally driven by screw tightening driver 20.
[0068] As set forth above, in robot system 1 according to the present embodiment, the tip of the arm of robot 10 operates in coordination with rotation of rotational drive portion 22. Therefore, the position of screw tightening driver 20 can appropriately be controlled with advance of screw 50.
[0069] Kinematics module 150 calculates a robot operation command value that supports a position or an angle of each joint based on the robot position command value from robot operation command generation module 140, in accordance with kinematics of robot 10.
[0070]
[0071] Functional block 1140 is an instruction for defining rotational drive command generation module 130 (
[0072] Operation profile 132 is set in functional block 1140. In the example shown in
[0073] Functional block 1141 and functional block 1142 are instructions for defining robot operation command generation module 140 (
[0074] A robot and an axis that operate in a manner following a master axis are designated in functional block 1141. In the example shown in
[0075] The master axis is designated in functional block 1141. In the example shown in
[0076] Furthermore, information for coordination between the master axis and a slave axis is designated in functional block 1141. In the example shown in
[0077] Functional block 1142 is an instruction for activating synchronization control. As an Enable input of functional block 1142 is activated, robot 10 is controlled to be in synchronization in coordination with the operation of screw tightening driver 20.
<D. Exemplary Operation>
[0078] An exemplary operation of robot system 1 according to the present embodiment will now be described.
[0079]
[0080] Initially, robot controller 100 gives a control command to robot 10 to move screw tightening driver 20 to a position of start of approach to workpiece 52 while screw 50 is attached to driver bit 24 (for example, screw tightening driver 20 is provided with a not-shown attachment-by-suction structure) (see
[0081] In succession, robot controller 100 activates control for synchronization between screw tightening driver 20 and robot 10 (see
[0082] Robot controller 100 lowers the rotation velocity of rotational drive portion 22 before a seating surface of the head of screw 50 is seated in workpiece 52 or an object to be fastened, in accordance with operation profile 132 (see
[0083] Screw tightening driver 20 of robot controller 100 thus decelerates immediately before the head of screw 50 is seated. The screw tightening driver then stops at the time when the head of screw 50 is seated. Such a behavior of screw tightening driver 20 is defined in operation profile 132.
[0084] Synchronization control may be deactivated when the head of screw 50 is seated.
[0085] In succession, robot controller 100 gives robot 10 a control command to move screw tightening driver 20 upward to a prescribed height (
[0086] Screw tightening processing is completed through such a series of operations.
[0087]
[0088]
[0089] At time t1, screw tightening driver 20 of robot 10 starts approach to workpiece 52 from the operation start position. At this time, synchronization control has been activated, and rotational drive portion 22 of screw tightening driver 20 rotates and screw tightening driver 20 moves toward the screw hole in accordance with operation profile 132. At time t2, the rotation velocity of rotational drive portion 22 has stopped in a state where the seating surface of the head of screw 50 is seated.
[0090] Thereafter, screw tightening driver 20 of robot 10 moves upward and upward movement is completed at time t3.
[0091]
[0092] More specifically, the time chart shown in
[0093] The time chart shown in
[0094] In contrast, synchronization control according to the present embodiment determines the position of screw tightening driver 20 in coordination with rotation of screw tightening driver 20. Therefore, the screw can appropriately be tightened without adjustment by trial and error.
<E. Exemplary Procedure of Creation of Control Programming>
[0095] An exemplary procedure of creation of control program 114 executed in robot controller 100 of robot system 1 according to the present embodiment will now be described
[0096]
[0097] In succession, the user incorporates determined operation profile 132 into control program 114 (step S4) and sets an operation axis (motor 37 that drives rotational drive portion 22) of screw tightening driver 20 as the master axis (step S6). Setting of the master axis is described in control program 114.
[0098] The user then makes setting such that robot 10 operates in synchronization with the set master axis (step S8). Setting of the operation is described in control program 114.
[0099] Control program 114 is created through the processing procedure as set forth above.
<F. Advantages>
[0100] According to the present embodiment, the screw tightening driver is rotated in accordance with the predetermined operation profile, so that the position of the screw by engagement of the screw can be controlled. In addition, the appropriate position of the screw tightening driver can be determined in accordance with the position of the screw. The operation profile is appropriately designed so that possibility of generation of impulsive force at the time of seating of the screw or the like can be lowered without the need for a sensor or the like.
[0101] The rotation velocity of the screw tightening driver may be varied by mechanical disturbance such as friction caused in a reduction gear or resistance caused between the screw and the screw hole. According to the present embodiment, even in such a case, the velocity or the position (the velocity of downward movement or the height by way of example) of the screw tightening driver can automatically be adjusted in accordance with the mechanical disturbance. Such automatic adjustment of the velocity or the position of the screw tightening driver can prevent, without bothersome adjustment, cam out due to delayed downward movement of the screw tightening driver (inability to follow the advance of the screw) and any damage on the head of the screw due to fast downward movement of the screw tightening driver (excessive pressing of the screw).
[0102] Though an embodiment of the present disclosure has been described, it should be understood that the embodiment disclosed herein is illustrative and non-restrictive in every respect. The scope of the present disclosure is defined by the terms of the claims and is intended to include any modifications within the scope and meaning equivalent to the terms of the claims.