WO2023053510A1 - ロボットシステム、制御方法および制御プログラム - Google Patents

ロボットシステム、制御方法および制御プログラム Download PDF

Info

Publication number
WO2023053510A1
WO2023053510A1 PCT/JP2022/012266 JP2022012266W WO2023053510A1 WO 2023053510 A1 WO2023053510 A1 WO 2023053510A1 JP 2022012266 W JP2022012266 W JP 2022012266W WO 2023053510 A1 WO2023053510 A1 WO 2023053510A1
Authority
WO
WIPO (PCT)
Prior art keywords
driver bit
screw
robot
driver
robot controller
Prior art date
Application number
PCT/JP2022/012266
Other languages
English (en)
French (fr)
Inventor
正大 村井
Original Assignee
オムロン株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by オムロン株式会社 filed Critical オムロン株式会社
Publication of WO2023053510A1 publication Critical patent/WO2023053510A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Definitions

  • the present invention relates to a robot system, control method and control program.
  • Robots are used for various purposes in the field of industrial automation.
  • One such application is in operations such as screw assembly.
  • Patent Document 1 discloses a screw mounting tool for an assembly work robot, which is a screw supply unit and a work unit, with a simple mechanism without using an air feeding device or the like. and are connected by a transfer section to transfer screws to an intake type driver and automatically mount them.
  • Patent Document 2 Japanese Patent Laying-Open No. 03-221329
  • Patent Document 3 Japanese Patent Laying-Open No. 03-221331
  • Patent Document 1 discloses a configuration in which the driver is lifted while screws are attracted to the driver bit at the tip of the driver. In some cases, the bit may not be able to attract the screw properly.
  • the present invention provides a solution that engages the driver bit and the screw to more reliably achieve the action of retaining the screw on the driver bit.
  • a robot system includes a robot for picking screws and a robot controller for controlling the robot.
  • the robot is equipped with a driver bit for engaging the screw and a mechanism for retaining the screw on the driver bit.
  • the robot controller instructs the robot to lower the driver bit from above the screw toward the screw while the driver bit is rotating. If the threshold is exceeded and the driver bit has reached a predetermined position, the robot is commanded to stop rotating the driver bit and hold the screw in the driver bit.
  • the driver bit can be easily engaged with the screw by lowering the driver bit while it is rotating. Further, by determining both the load generated in the descending direction of the driver bit and the position of the driver bit as conditions, the engagement between the driver bit and the screw can be determined more appropriately. Therefore, the operation of engaging the driver bit and the screw to hold the screw on the driver bit can be realized more reliably.
  • the robot controller may further command the robot to move the driver bit toward the workpiece where the screw is used while holding the screw in the driver bit. According to this configuration, the same robot can be used to perform processes from picking screws to assembling screws into workpieces.
  • the robot controller may give commands to the robot so that the load generated in the downward direction of the driver bit matches the target value. According to this configuration, the position of the driver bit is controlled according to the load generated in the downward direction of the driver bit, so it is possible to avoid applying an excessive load to the screw.
  • the robot controller may give a command to the robot to raise the driver bit when the elapsed time from the start of the downward movement of the driver bit exceeds a predetermined second threshold. According to this configuration, when the driver bit and the screw cannot be properly engaged, retry processing and the like can be executed.
  • the direction of rotation of the driver bit may be set in the opposite direction to the tightening direction of the screw. According to this configuration, even if the screw interferes with the screw feeder or the like, it is possible to increase the possibility that the screw can be engaged with the driver bit.
  • the mechanism for holding the screw in the driver bit may be made to attract the screw by negative pressure. With this configuration, it is possible to reduce the size of the mechanism for holding the screw engaged with the driver bit.
  • the robot controller may determine whether or not the gauge pressure of the screw attracting path is less than a predetermined third threshold. According to this configuration, it is possible to detect a state in which the driver bit is not properly engaged with the screw.
  • the robot controller may further include presenting means for presenting time-series data of the load generated in the downward direction of the driver bit and the position of the driver bit to the user. According to this configuration, the user can refer to the presented time-series data and set necessary parameters.
  • a control method for controlling a robot for picking screws.
  • the robot is equipped with a driver bit for engaging the screw and a mechanism for retaining the screw on the driver bit.
  • the control method includes the step of lowering the driver bit from above the screw toward the screw while the driver bit is rotating, and the load generated in the downward direction of the driver bit exceeding a predetermined first threshold value. and when the driver bit has reached a predetermined position, stopping rotation of the driver bit to retain the screw in the driver bit.
  • a control program for controlling a robot for picking screws.
  • the robot is equipped with a driver bit for engaging the screw and a mechanism for retaining the screw on the driver bit.
  • the control program instructs the computer to lower the driver bit from above the screw toward the screw while the driver bit is rotating; If a threshold of 1 is exceeded and the driver bit has reached a predetermined position, stop rotating the driver bit and command the robot to hold the screw in the driver bit.
  • the operation of engaging the driver bit and the screw and holding the screw on the driver bit can be realized more reliably.
  • FIG. 1 is a schematic diagram showing a configuration example of a robot system according to an embodiment
  • FIG. FIG. 4 is a diagram showing an application example for engaging a screw with a driver bit in a robot system according to the present embodiment
  • 1 is a schematic diagram showing a hardware configuration example of a robot system according to an embodiment
  • FIG. 1 is a diagram for explaining a problem to be solved by a robot system according to an embodiment
  • FIG. FIG. 5 is a diagram for explaining the operation of picking a screw in the robot system according to the present embodiment
  • 4 is a flow chart showing an example of a processing procedure for picking a screw in the robot system according to the present embodiment
  • FIG. 4 is a diagram for explaining a setting example of a pick start position in the robot system according to the embodiment
  • FIG. 10 is a diagram for explaining a setting example of a movement amount threshold value in the robot system according to the present embodiment
  • FIG. 5 is a diagram for explaining an example of a procedure for setting a pick start position and a movement amount threshold value in the robot system according to the embodiment
  • 7 is a flow chart showing an example of a processing procedure for automatically setting a pick start position and an engagement position in the robot system according to the present embodiment
  • FIG. 4 is a schematic diagram showing an example of time-series data presented when automatically setting a pick start position and an engagement position in the robot system according to the present embodiment
  • FIG. 4 is a schematic diagram showing an example of a user interface presented when automatically setting a pick start position and an engagement position in the robot system according to the present embodiment
  • 7 is a flow chart showing an example of a processing procedure for manually setting a pick start position and an engagement position in the robot system according to the present embodiment
  • FIG. 4 is a schematic diagram showing an example of time-series data presented when manually setting a pick start position and an engagement position in the robot system according to the present embodiment
  • FIG. 4 is a diagram for explaining a picking operation in the robot system according to the embodiment
  • FIG. 1 is a schematic diagram showing a configuration example of a robot system 1 according to this embodiment.
  • robot system 1 includes an articulated robot (hereinafter simply referred to as “robot 10 ”) and a robot controller 100 that controls robot 10 .
  • robot 10 an articulated robot
  • robot controller 100 that controls robot 10 .
  • the screw feeder 60 sequentially feeds the screws 50 to predetermined positions.
  • the robot 10 picks the screw 50 fed by the screw feeder 60 .
  • the robot 10 conveys the picked screw 50 to the position of the work 70 and assembles the screw 50 with the work 70 .
  • the robot 10 includes a base 11 and a plurality of movable parts 12, 13, 14, 15, 16, 17.
  • the movable parts 12 , 13 , 14 , 15 , 16 , 17 correspond to joints of the robot 10 .
  • Each of the movable parts 12, 13, 14, 15, 16, 17 drives the links that make up the robot 10 along the rotation axis as shown in FIG.
  • An end effector 18 is attached to the tip of the arm of the robot 10 .
  • a driver bit 20 is rotatably mounted on the end effector 18 for engaging a screw 50 .
  • a suction sleeve 22 is provided on the outer peripheral side of the driver bit 20 as an example of a mechanism for holding the screw 50 on the driver bit 20 .
  • An opening 21 of a suction sleeve 22 is provided near the tip of the driver bit 20 .
  • the adsorption sleeve 22 communicates with an ejector (not shown), and adsorbs the screw 50 by the negative pressure generated by the ejector.
  • a pressure sensor 28 (not shown) for detecting the gauge pressure of the path is provided on the path from the ejector to the suction sleeve 22 .
  • the mechanism for holding the screw 50 on the driver bit 20 attracts the screw 50 with negative pressure.
  • the mechanism for holding the screw 50 in the driver bit 20 is not limited to the structure using suction (negative pressure), and a structure using magnetic force may be used.
  • a load sensor 19 that detects the load generated on the end effector 18 and the driver bit 20 is provided at the portion where the end effector 18 is attached to the arm of the robot 10 .
  • the load sensor 19 outputs a detection result indicating the magnitude of the generated load and the direction in which the load is generated.
  • the detection result of the load sensor 19 may be output in the form of a kind of vector.
  • the operation of the robot 10 will be explained mainly based on the coordinate system XYZ (hereinafter also referred to as "TCP coordinate system") with the end effector 18 as a reference.
  • TCP coordinate system the coordinate system XYZ
  • the axial direction of the driver bit 20 corresponds to the Z axis. That is, the Z-axis corresponds to the direction in which the screw 50 is pressed by the driver bit 20 .
  • the load sensor 19 outputs the load in the X-axis direction (X), the load in the Y-axis direction (Y), and the load in the Z-axis direction (Z) of the TCP coordinate system as detection results. , the load (moment) in the rotational direction (RX) about the X axis, the load (moment) in the rotational direction (RY) about the Y axis, the load (moment) in the rotational direction (RZ) about the Z axis ).
  • An information processing device 200 may be connected to the robot controller 100 .
  • the information processing apparatus 200 is typically a general-purpose computer, presents information from the robot controller 100 to the user, and gives user instructions to the robot controller 100 in accordance with user operations.
  • FIG. 2 is a diagram showing an application example for engaging the driver bit 20 with the screw 50 in the robot system 1 according to the present embodiment.
  • robot controller 100 commands robot 10 to lower driver bit 20 from above screw 50 toward screw 50 while screwdriver bit 20 is rotating.
  • robot controller 100 detects that the load generated in the downward direction of driver bit 20 exceeds a predetermined pressing threshold value (first threshold value) and that driver When the bit 20 reaches a predetermined position (engagement position), the robot 10 is commanded to stop the rotation of the driver bit 20 and hold the screw 50 on the driver bit 20 .
  • first threshold value a predetermined pressing threshold value
  • the driver bit 20 By lowering the driver bit 20 while the driver bit 20 is rotated, the driver bit 20 can be easily engaged with the head 52 of the screw 50 . Further, by determining both the load (reaction force) generated in the downward direction of the driver bit 20 and the position of the driver bit 20 as conditions, the engagement between the driver bit 20 and the screw 50 can be appropriately determined.
  • FIG. 3 is a schematic diagram showing a hardware configuration example of the robot system 1 according to this embodiment.
  • robot 10 includes motors 31, 32, 33, 34, 35, and 36 associated with movable parts 12, 13, 14, 15, 16, and 17, and motors 31, 32, and 33 , 34, 35 and 36, respectively.
  • the robot 10 also includes a motor 37 for rotationally driving the driver bit 20, a motor 38 for vertically moving the driver bit 20, and drivers 47 and 48 for driving the motors 37 and 38, respectively.
  • the robot 10 includes an ejector 39 that generates negative pressure, and an electromagnetic valve 49 that controls ON/OFF of negative pressure generation by the ejector 39 .
  • Drivers 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , load sensor 19 , pressure sensor 28 and teaching pendant 26 are electrically connected to robot controller 100 via interface 40 .
  • the teaching pendant 26 performs teaching of the robot 10 and the like according to user operations.
  • the teaching pendant 26 may be configured to be detachable from the robot 10 .
  • the 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 bus 108 .
  • the processor 102 is typically composed of a CPU (Central Processing Unit), an MPU (Micro-Processing Unit), and the like.
  • the memory 104 is typically composed of a volatile storage device such as DRAM (Dynamic Random Access Memory) or SRAM (Static Random Access Memory).
  • the storage 110 is typically composed of non-volatile storage devices such as SSDs (Solid State Disks) and flash memories.
  • the storage 110 stores a system program 112 for realizing basic processing and a control program 114 .
  • Control program 114 includes computer readable instructions for controlling robot 10 .
  • Processor 102 reads out system program 112 and control program 114 stored in storage 110, develops them in memory 104, and executes them, thereby realizing processing for controlling robot 10 as described later.
  • the interface 106 is responsible for exchanging signals and/or data between the robot controller 100 and the robot 10.
  • commands for controlling the drivers 41, 42, 43, 44, 45, 46, 47 and the solenoid valve 49 are transmitted from the robot controller 100 to the robot 10, and the load sensor 19 and the pressure sensor 28 are transmitted.
  • Each detection result is transmitted from the robot 10 to the robot controller 100 .
  • FIG. 3 shows a configuration example in which necessary processing is provided by the processor 102 executing a program. (Application Specific Integrated Circuit) or FPGA (Field-Programmable Gate Array), etc.).
  • processor 102 Application Specific Integrated Circuit
  • FPGA Field-Programmable Gate Array
  • FIG. 3 shows an example in which the robot controller 100 is configured independently of the robot 10, some or all of the functions and processes provided by the robot controller 100 may be incorporated into the robot 10.
  • the robot controller 100 may be implemented as a controller dedicated to robot control, or may be implemented using a general-purpose PLC (programmable controller) or personal computer.
  • PLC programmable controller
  • robot controller 100 may be implemented using computing resources on a network called a cloud.
  • the robot system 1 may be implemented in any way.
  • FIG. 4 is a diagram for explaining the problem to be solved by the robot system 1 according to this embodiment.
  • screw 50 is attracted to the tip of driver bit 20 by applying negative pressure to screw 50 via suction sleeve 22 while driver bit 20 of robot 10 is engaged with screw 50 .
  • the workpiece 70 is conveyed from the screw feeder 60 to the insertion hole 72 of the workpiece 70 .
  • the screw 50 may separate from the tip of the driver bit 20 and fall while the screw 50 is being transported.
  • a typical reason for such a drop is that screw 50 is not sufficiently held at the tip of driver bit 20 .
  • the screw 50 (male screw) is assembled into the insertion hole 72 of the work 70 by rotationally driving the driver bit 20 .
  • the driver bit 20 is rotationally driven and moved to the workpiece 70, thereby disengaging the driver bit 20 and the screw 50 and causing cam-out.
  • Cam-out can also cause hole breakage in screw 50 .
  • a typical reason for such cam-out is that the screw 50 is obliquely or eccentrically attracted to the driver bit 20 .
  • FIG. 5 is a diagram for explaining the operation of picking the screw 50 in the robot system 1 according to the present embodiment.
  • FIG. 5A shows a state in which the driver bit 20 is not sufficiently engaged with the head 52 of the screw 50.
  • FIG. 5B shows a state in which the driver bit 20 is fully engaged with the head 52 of the screw 50.
  • FIG. 5A shows a state in which the driver bit 20 is not sufficiently engaged with the head 52 of the screw 50.
  • FIG. 5B shows a state in which the driver bit 20 is fully engaged with the head 52 of the screw 50.
  • the robot 10 sucks the screw 50 via the suction sleeve 22 while the driver bit 20 is fully engaged with the head 52 of the screw 50 .
  • the driver bit 20 is rotated during the downward movement of the driver bit 20 toward the screw 50 .
  • the relative relationship between the driver bit 20 and the head 52 of the screw 50 changes with time, so that the possibility of the driver bit 20 engaging with the head 52 of the screw 50 can be increased.
  • the driver bit 20 can be detected by the head 52 of the screw 50 can be assured that it is fully engaged with It should be noted that it may be monitored whether the driver bit 20 is pressing the head portion 52 of the screw 50 based on the reaction force generated in the downward direction.
  • the screw 50 By sucking the driver bit 20 and the head 52 of the screw 50 in a sufficiently engaged state in this manner, the screw 50 can be transported while being sufficiently held, and when the screw 50 is started to be assembled (fastening is started). This prevents the screw 50 from being slanted or eccentric. This reduces the probability that the series of operations of picking, transporting, and assembling screws 50 will fail.
  • FIG. 6 is a flow chart showing an example of a processing procedure for picking the screw 50 in the robot system 1 according to this embodiment.
  • Each step shown in FIG. 6 is typically implemented by executing the control program 114 by the processor 102 of the robot controller 100 .
  • the robot controller 100 gives a command to the robot 10, thereby realizing the processing shown in FIG.
  • the robot controller 100 determines whether or not the pick start condition for the screw 50 is satisfied (step S1). If the pick start condition for screw 50 is not satisfied (NO in step S1), the process of step S1 is repeated.
  • step S1 If the pick start condition for the screw 50 is satisfied (YES in step S1), the robot controller 100 lowers the driver bit 20 toward the screw 50 from above the screw 50 while the driver bit 20 is rotating. command is given to the robot 10 (steps S2 to S4).
  • the robot controller 100 gives a command to the robot 10 to place the driver bit 20 of the robot 10 at the pick start position above the position where the screw 50 of the screw feeder 60 is delivered (step S2). . Subsequently, the robot controller 100 gives a command to the robot 10 to start rotating the driver bit 20 (step S3). Then, the robot controller 100 gives a command to the robot 10 to start lowering the driver bit 20 of the robot 10 (step S4).
  • the robot controller 100 controls the driver of the robot 10 so that the load generated in the lowering direction of the driver bit 20 matches the target pressing force (for example, 5 to 10 [N]).
  • a command is given to 48 to drive the motor 38 . That is, the robot controller 100 lowers the driver bit 20 according to force control. At this time, the robot controller 100 sequentially acquires the load generated in the downward direction of the driver bit 20 detected by the load sensor 19 .
  • the motor 38 for vertically moving the driver bit 20 is provided with an encoder, and the robot controller 100 sequentially acquires the amount of movement of the driver bit 20 .
  • the robot controller 100 determines that the load generated in the downward direction of the driver bit 20 exceeds a predetermined pressing threshold value (first threshold value) and that the driver bit 20 is at a predetermined position (engagement position).
  • first threshold value a predetermined pressing threshold value
  • engagement position a predetermined position
  • the robot 10 is instructed to stop the rotation of the driver bit 20 and hold the screw 50 in the driver bit 20 (steps S5, S8, S9).
  • the robot controller 100 determines whether the load generated in the downward direction exceeds a predetermined pressing threshold value and whether the amount of movement from the pick start position exceeds the movement amount threshold value. (step S5).
  • the movement amount threshold is determined according to the movement distance from the pick start position to the engagement position.
  • step S5 an example of evaluating the amount of movement (that is, relative amount) from the pick start position is shown, but the movement (that is, absolute amount) to a predetermined position (engagement position described later) is evaluated. may be evaluated.
  • step S5 is that the load generated in the downward direction exceeds a predetermined pressing threshold value, and that the amount of movement from the pick start position exceeds the movement amount threshold value. It is preferable to determine whether or not the above conditions hold at the same time.
  • step S5 determines whether or not the elapsed time from the start of descent exceeds a predetermined elapsed time threshold (step S6). If the elapsed time from the start of descent has not exceeded the predetermined elapsed time threshold value (NO in step S6), the processing from step S5 onward is repeated.
  • step S6 If the elapsed time from the start of descent exceeds the predetermined elapsed time threshold (YES in step S6), the robot controller 100 gives a command to the robot 10 to start picking the driver bit 20 of the robot 10. It is raised to the position (step S7). Then, the robot controller 100 repeats the processing from step S4 onward. In this manner, the robot controller 100 raises the driver bit 20 when the elapsed time from the start of the downward movement of the driver bit 20 exceeds a predetermined elapsed time threshold value (second threshold value). gives a command to the robot 10.
  • second threshold value a predetermined elapsed time threshold value
  • the robot The controller 100 gives a command to the robot 10 to stop the rotation of the driver bit 20 and stop the descent of the driver bit 20 (step S8). It should be noted that the rotation of the driver bit 20 and the descent of the driver bit 20 do not necessarily have to be stopped at the same time, and either of them may be stopped first.
  • the robot controller 100 gives a command to the robot 10 to generate negative pressure in the suction sleeve 22 (step S9).
  • the robot controller 100 determines whether or not the gauge pressure in the path from the ejector 39 to the suction sleeve 22 is less than a predetermined pressure threshold value (negative value) (step S10). That is, the robot controller 100 determines whether or not the gauge pressure of the path that attracts the screw 50 is less than a predetermined pressure threshold (third threshold).
  • step S10 If the gauge pressure in the path from the ejector 39 to the suction sleeve 22 is equal to or higher than the predetermined pressure threshold (NO in step S10), the robot controller 100 gives a command to the robot 10 to 20 is raised to the pick start position (step S11). Then, the robot controller 100 repeats the processing from step S3 onwards.
  • the robot controller 100 gives a command to the robot 10 to 20 is moved toward the insertion hole 72 of the work 70 (step S12).
  • the robot controller 100 further commands the robot 10 to move the driver bit 20 toward the workpiece 70 in which the screw 50 is used while the screw 50 is held by the driver bit 20 .
  • the robot controller 100 determines whether or not the gauge pressure in the path from the ejector 39 to the suction sleeve 22 is less than a predetermined pressure threshold (step S13). That is, the robot controller 100 determines whether or not the gauge pressure of the path that attracts the screw 50 is less than a predetermined pressure threshold (third threshold).
  • the robot controller 100 gives a command to the robot 10 to stop generating the negative pressure in the suction sleeve 22 (step S14), and repeats the process from step S1 onwards. That is, if a problem such as the screw 50 dropping off occurs while the screw 50 is being transported by the driver bit 20, the process for picking the screw 50 may be restarted from the beginning.
  • the user may be notified of the occurrence of the problem and the robot 10 may be stopped. In this case, the user performs a predetermined return operation.
  • step S13 If the gauge pressure of the path from the ejector 39 to the suction sleeve 22 is less than the predetermined pressure threshold (YES in step S13), the robot controller 100 controls that the driver bit 20 of the robot 10 is inserted into the insertion hole 72 of the workpiece 70. It is determined whether the target position above is reached (step S15). If the driver bit 20 of the robot 10 has not reached the target position above the insertion hole 72 of the work 70 (NO in step S15), the processes from step S13 onward are repeated.
  • step S15 If the driver bit 20 of the robot 10 has reached the target position above the insertion hole 72 of the workpiece 70 (YES in step S15), the process ends.
  • the pick start position is the initial position where the driver bit 20 of the robot 10 starts descending.
  • the pick start position is determined by prior teaching or the like.
  • the engagement position is the position at which the driver bit 20 of the robot 10 finishes descending. Ideally, the engagement position corresponds to a position shifted from the pick start position by the movement amount threshold.
  • the rotation speed of the driver bit 20 is determined so that the relative relationship between the driver bit 20 and the head portion 52 of the screw 50 can be changed over time.
  • the rotation speed may be determined, for example, so that the head 52 of the screw 50 can rotate 90° or more within the time (cycle time) required for one cycle (from the start of descent to the completion of picking of the screw 50). If it is).
  • Rotational Torque of Driver Bit 20 is the force in the direction of rotation applied to rotationally drive the driver bit 20, and is the torque required to rotationally drive the driver bit 20 from a stationary state. A sufficiently large value is set.
  • the lowering speed of the driver bit 20 is the moving speed at which the driver bit 20 descends from the pick start position.
  • the descent speed is set based on a tradeoff between cycle time and impact force when the driver bit 20 contacts the screw 50 .
  • Target Pressing Force of Driver Bit 20 is a target value when the driver bit 20 is lowered according to force control. The greater the target pressing force, the less likely the driver bit 20 will idle with respect to the screw 50 .
  • the pressing threshold is a threshold for determining engagement between the driver bit 20 and the screw 50 .
  • the pressing threshold is set to the same value as the target pressing force of the driver bit 20 or a value slightly smaller than the target pressing force of the driver bit 20 .
  • Movement Amount Threshold is a threshold for determining engagement between the driver bit 20 and the screw 50 .
  • a movement amount threshold refers to a threshold that defines an engagement position.
  • the elapsed time threshold is a threshold for determining that picking of the screw 50 by the driver bit 20 has failed (timeout).
  • the pressure threshold is a threshold for determining whether the screw 50 is sucked by the driver bit 20 .
  • the pick start position, the engagement position, and the movement amount threshold are important parameters for improving the success rate of picking the screws 50 .
  • the procedure for setting these parameters will be described below.
  • FIG. 7 is a diagram for explaining a setting example of the pick start position in the robot system 1 according to this embodiment.
  • FIG. 7A shows a case where the pick start position is set appropriately
  • FIG. 7B shows a case where the pick start position is set improperly.
  • the pick start position ((X, Y, Z) in the TCP coordinate system) is set. If the horizontal position (X, Y) of the pick start position does not deviate greatly from the center of the head 52 of the screw 50, the screw 50 can be properly engaged by lowering the driver bit 20.
  • FIG. 7(A) for example, focusing on the tip of the driver bit 20, the pick start position ((X, Y, Z) in the TCP coordinate system) is set. If the horizontal position (X, Y) of the pick start position does not deviate greatly from the center of the head 52 of the screw 50, the screw 50 can be properly engaged by lowering the driver bit 20.
  • the pick start position is set so that the horizontal error with respect to the engagement position (the position at which the screw 50 is supplied by the screw feeder 60) is small.
  • FIG. 8 is a diagram for explaining a setting example of the movement amount threshold value in the robot system 1 according to the present embodiment.
  • FIG. 8(A) shows a case where the movement amount threshold is set appropriately
  • FIGS. 8(B) and 8(C) show cases where the movement amount threshold is set inappropriately. indicates if
  • the screw 50 can be properly engaged by lowering the driver bit 20 from the pick start position by the amount of movement threshold.
  • the movement amount threshold value is set smaller than the original value, the condition is satisfied before the driver bit 20 descends to the position where it engages with the screw 50. Therefore, the engagement between the driver bit 20 and the screw 50 cannot be determined properly.
  • the depth of the hole formed in the head 52 of the screw 50 depends on the shape of the hole (for example, cross-recess, hexagonal hole, etc.), the screw diameter, and the shape of the head (for example, pan head screw, countersunk head screw, etc.). Change. Therefore, it is preferable that the pick start position, the engagement position, and the movement amount threshold value are appropriately set or changed according to the head shape of the target screw 50 .
  • the pick start position, engagement position, and movement amount threshold value may be appropriately set or changed according to the standard of the target screw 50 and the like.
  • the pick start position, engagement position, and movement amount threshold are not affected by the material of the screw 50 and the shape of the threaded portion (for example, coarse/fine, pitch, lead, etc.). Therefore, there is no need to change the pick start position, engagement position and movement amount threshold.
  • FIG. 9 is a diagram for explaining an example of the procedure for setting the pick start position and movement amount threshold value in the robot system 1 according to the present embodiment.
  • the position of the driver bit 20 is adjusted as shown in FIG. 9 by a predetermined setting control logic or a teaching operation by the user.
  • a position (X, Y, Z- ⁇ Z) raised from the engagement position by the moving amount threshold value ( ⁇ Z) is determined as the pick start position.
  • the magnitude of the movement amount threshold is a value larger than the maximum depth of the hole formed in the head 52 of the target screw 50 (usually defined by the standard including the error). good.
  • the acquired position and load time series data are presented to the user.
  • the robot controller 100 presents time-series data of the load generated in the downward direction of the driver bit 20 and the position of the driver bit 20 to the user. Time-series data may be presented to the user via the information processing device 200 .
  • FIG. 10 is a flowchart showing a processing procedure example for automatically setting the pick start position and engagement position in the robot system 1 according to the present embodiment.
  • Each step shown in FIG. 10 is typically realized by executing the control program 114 by the processor 102 of the robot controller 100 .
  • the robot controller 100 issues a command to the robot 10, thereby realizing the processing shown in FIG.
  • the same step numbers are given to the same processes as those shown in FIG.
  • the robot controller 100 determines whether or not a user operation instructing the start of automatic setting has been received (step S51). If the user's operation instructing the start of automatic setting has not been received (NO in step S51), the process of step S51 is repeated.
  • the robot controller 100 gives a command to the robot 10 so that the driver bit 20 of the robot 10 feeds the screw 50 of the screw feeder 60. It is placed at the pick start position above the position (step S2). Subsequently, the robot controller 100 gives a command to the robot 10 to start rotating the driver bit 20 (step S3). Then, the robot controller 100 gives a command to the robot 10 to start lowering the driver bit 20 of the robot 10 (step S4).
  • the robot controller 100 determines whether the load generated in the downward direction exceeds a predetermined pressing threshold value and whether the amount of movement from the pick start position exceeds the movement amount threshold value. (step S5).
  • step S5 If the load generated in the downward direction does not exceed the predetermined pressing threshold value, or if the amount of movement from the pick start position does not exceed the movement amount threshold value (NO in step S5), The processing after step S5 is repeated.
  • the robot The controller 100 gives a command to the robot 10 to stop the rotation of the driver bit 20 and stop the descent of the driver bit 20 (step S8).
  • the robot controller 100 presents to the user time-series data of the positions acquired in the series of motions and the load occurring in the downward direction (step S52).
  • the user refers to the presented position and the time-series data of the load occurring in the downward direction to determine whether or not the pick was successful.
  • the robot controller 100 determines whether or not it has received a determination result that the pick was successful from the user (step S53).
  • step S53 If the user has not determined that the pick was successful (NO in step S53), the robot controller 100 gives a command to the robot 10 to raise the driver bit 20 of the robot 10 to the pick start position (step S11). Then, the processing after step S3 is repeated.
  • step S53 If the user has determined that the pick was successful (YES in step S53), the robot controller 100 stores the current position as the engagement position (step S54). Subsequently, the robot controller 100 gives a command to the robot 10 to raise the driver bit 20 of the robot 10 by the moving amount threshold (step S55). The robot controller 100 then updates the current position as a new pick start position (step S56).
  • FIG. 11 is a schematic diagram showing an example of time-series data presented when automatically setting the pick start position and the engagement position in the robot system 1 according to the present embodiment. Referring to FIG. 11, four states ST1 to ST4 are assumed until driver bit 20 engages screw 50. Referring to FIG.
  • State ST1 is a state before the driver bit 20 comes into contact with the screw 50 while it is descending.
  • State ST2 is a state in which the tip of the driver bit 20 is in contact with the screw 50 but the driver bit 20 is not sufficiently engaged with the screw 50 .
  • State ST3 is a state in which the driver bit 20 is not sufficiently engaged with the screw 50 .
  • State ST4 is a state in which the driver bit 20 is pushed to the deepest part of the hole formed in the head 52 of the screw 50 .
  • the user can determine whether the pick was successful by referring to the time-series data shown in FIG.
  • state of the driver bit 20 may be schematically displayed together with the time-series data as shown in FIG.
  • FIG. 12 is a schematic diagram showing an example of a user interface presented when automatically setting the pick start position and engagement position in the robot system 1 according to the present embodiment.
  • 12(A) to 12(D) show the relationship between the driver bit 20 and the screw 50 corresponding to states ST1 to ST4, respectively.
  • the user can more easily determine whether or not the pick was successful.
  • FIG. 13 is a flow chart showing an example of a processing procedure for manually setting the pick start position and engagement position in the robot system 1 according to this embodiment.
  • Each step shown in FIG. 13 is typically implemented by executing the control program 114 by the processor 102 of the robot controller 100 .
  • the robot controller 100 issues a command to the robot 10, thereby realizing the processing shown in FIG.
  • the same step numbers are given to the same processes as those shown in FIG.
  • robot controller 100 determines whether or not a user operation instructing the start of manual setting has been received (step S61). If no user operation instructing the start of manual setting has been received (NO in step S61), the process of step S61 is repeated.
  • the robot controller 100 gives a command to the robot 10 so that the driver bit 20 of the robot 10 feeds the screw 50 of the screw feeder 60. It is placed at the pick start position above the position (step S2). Subsequently, the robot controller 100 gives a command to the robot 10 to start rotating the driver bit 20 (step S3). Then, the robot controller 100 gives a command to the robot 10 according to the user's operation (step S62). That is, the user manipulates the teaching pendant 26 to manipulate the driver bit 20 into engagement with the screw 50 . At the same time, the robot controller 100 presents to the user time-series data of the position, the load occurring in the downward direction, and the load occurring in the horizontal direction, which are acquired during the operation (step S63).
  • the robot controller 100 determines whether or not a user operation instructing termination of manual setting has been received (step S64). If no user operation instructing termination of manual setting has been received (NO in step S64), the processes from step S62 onward are repeated.
  • step S64 If a user operation instructing the end of manual setting has been received (YES in step S64), the robot controller 100 gives a command to the robot 10 to stop the rotation of the driver bit 20 (step S65). The robot controller 100 then stores the current position as the engagement position (step S66). Subsequently, the robot controller 100 gives a command to the robot 10 to raise the driver bit 20 of the robot 10 by the moving amount threshold (step S67). The robot controller 100 then updates the current position as a new pick start position (step S68).
  • FIG. 14 is a schematic diagram showing an example of time-series data presented when manually setting the pick start position and the engagement position in the robot system 1 according to the present embodiment.
  • the time series of the load generated in the downward direction and the load generated in the horizontal direction Data can be referenced.
  • the position of the driver bit 20 is equal to or lower than the predetermined height, it indicates that the driver bit 20 is sufficiently engaged with the screw 50 .
  • the user can determine an appropriate engagement position by referring to the time-series data shown in FIG. 14, and as a result, can also determine the pick start position.
  • the user can set the driver bit 20 to the screw 50 in a short time by teaching while referring to the time-series data. can be engaged. As a result, the pick start position and engagement position can be easily determined.
  • step S6 of FIG. 6 if the elapsed time from the start of descent exceeds a predetermined elapsed time threshold, it can be determined that picking of the screw 50 by the driver bit 20 has failed.
  • step S10 in FIG. 6 if the gauge pressure in the path from the ejector 39 to the suction sleeve 22 is less than a predetermined pressure threshold, it is determined that the picking of the screw 50 by the driver bit 20 has failed. can.
  • a retry operation is executed.
  • all or part of the rotation speed of the driver bit 20, the descending speed of the driver bit 20, and the target pressing force of the driver bit 20 are changed stepwise within a predetermined range.
  • Such a gradual change reduces the static frictional force generated between the screw 50 and the screw feeder 60 and prevents the screw 50 from slipping.
  • FIG. 15 is a diagram for explaining the picking operation in the robot system 1 according to this embodiment.
  • the screw 50 generates a static friction force due to contact with the supply surface 62 of the screw feeder 60 (marked with x in FIG. 15).
  • the rotation of the screw 50 may interfere with the feed surface 62 of the screw feeder 60 . Therefore, the direction of rotation of the driver bit 20 is preferably set opposite to the direction of fastening the screw 50 (right-handed or left-handed).
  • the screw 50 is idly rotated by the rotation force of the driver bit 20, so that the screw 50 and the supply surface 62 of the screw feeder 60 come into contact with each other.
  • the screw 50 is possible to suppress the screw 50 from being pushed into the screw feeder 60 side.
  • FIG. 15(A) shows an example of the behavior of the screw 50 when the direction of rotation of the driver bit 20 is the same as the fastening direction of the screw 50 .
  • the screw 50 spins.
  • the screw 50 comes into contact with the supply surface 62 of the screw feeder 60 by idle rotation, and is pushed along the thread groove of the screw 50 from the contact position toward the screw feeder 60 side.
  • the screw 50 becomes oblique with respect to the descending direction of the driver bit 20 .
  • the driver bit 20 and the screw 50 are engaged with each other, the threaded portion (fastening portion) of the screw 50 interferes with the supply surface 62 .
  • the driver bit 20 can no longer attract the screw 50, and the screw 50 falls.
  • FIG. 15(B) shows an example of the behavior of the screw 50 when the direction of rotation of the driver bit 20 is the same as the direction of tightening the screw 50 .
  • the success rate of picking the screw 50 can be improved.
  • a robot system (1), a robot (10) for picking screws (50); A robot controller (100) that controls the robot, said robot is equipped with a driver bit (20) for engaging said screw and a mechanism (22) for retaining said screw on said driver bit; The robot controller is giving a command to the robot to lower the driver bit toward the screw from above the screw while the driver bit is rotated (S2 to S4); rotation of the driver bit when the load generated in the downward direction of the driver bit exceeds a predetermined first threshold value and the driver bit has reached a predetermined position; and commanding said robot to hold said screw in said driver bit (S5, S8, S9).
  • Configuration 8 Any one of configurations 1 to 7, wherein the robot controller further comprises presenting means (200) for presenting time-series data of the load generated in the downward direction of the driver bit and the position of the driver bit to the user.
  • presenting means 200 for presenting time-series data of the load generated in the downward direction of the driver bit and the position of the driver bit to the user.
  • the driver bit 20 can be easily engaged with the head portion 52 of the screw 50 . Further, by determining both the load (reaction force) generated in the downward direction of the driver bit 20 and the position of the driver bit 20 as conditions, the engagement between the driver bit 20 and the screw 50 can be appropriately determined. By adopting such a configuration and processing, the operation of engaging the driver bit 20 and the screw 50 to hold the screw 50 on the driver bit 20 can be realized more reliably.
  • Robot system 10 Robot, 11 Base, 12, 13, 14, 15, 16, 17 Moving part, 18 End effector, 19 Load sensor, 20 Driver bit, 21 Opening, 22 Suction sleeve, 26 Teaching pendant, 28 Pressure Sensor, 31, 32, 33, 34, 35, 36, 37, 38 Motor, 39 Ejector, 40 Interface, 41, 42, 43, 44, 45, 46, 47, 48 Driver, 49 Solenoid valve, 50 Screw, 52 Head, 60 screw feeder, 62 supply surface, 70 workpiece, 72 insertion hole, 100 robot controller, 102 processor, 104 memory, 106 interface, 108 bus, 110 storage, 112 system program, 114 control program, 200 information processing device.

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

ロボットシステムは、ねじをピックするためのロボットと、ロボットを制御するロボットコントローラとを含む。ロボットには、ねじと係合するためのドライバビットと、ドライバビットにねじを保持するための機構とが装着されている。ロボットコントローラは、ドライバビットが回転した状態で、ドライバビットをねじの上方からねじに向けて下降するようにロボットに指令を与え、ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、ドライバビットが予め定められた位置に到達している場合に、ドライバビットの回転を停止して、ドライバビットにねじを保持するようにロボットに指令を与える。

Description

ロボットシステム、制御方法および制御プログラム
 本発明は、ロボットシステム、制御方法および制御プログラムに関する。
 産業オートメーション(Industrial Automation)の分野において、様々な用途にロボットが利用されている。このような用途の一つとして、ねじの組み付けなどの作業がある。
 例えば、特開2021-016909号公報(特許文献1)は、空気圧送装置等を使用することなく、簡単な機構で、ネジ類の供給部と作業部である組み立て作業ロボットのネジ類取り付工具とを移送部で連結して、吸気型ドライバにネジ類を移送し自動的に装着するネジ類取り付装置を開示する。
 また、特開平03-221329号公報(特許文献2)および特開平03-221331号公報(特許文献3)は、ねじ締め装置のドライバのビットにねじを供給するネジ供給装置を開示する。
特開2021-016909号公報 特開平03-221329号公報 特開平03-221331号公報
 特開2021-016909号公報(特許文献1)は、ネジ類がドライバの先端のドライバビットに吸着された状態でドライバが上昇する構成を開示するが、汎用的なロボットを用いる場合には、ドライバビットにねじを適切に吸着できない場合も生じ得る。
 本発明は、ドライバビットとねじとを係合させて、ドライバビットにねじを保持する動作をより確実に実現できるソリューションを提供する。
 ある実施の形態に係るロボットシステムは、ねじをピックするためのロボットと、ロボットを制御するロボットコントローラとを含む。ロボットには、ねじと係合するためのドライバビットと、ドライバビットにねじを保持するための機構とが装着されている。ロボットコントローラは、ドライバビットが回転した状態で、ドライバビットをねじの上方からねじに向けて下降するようにロボットに指令を与え、ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、ドライバビットが予め定められた位置に到達している場合に、ドライバビットの回転を停止して、ドライバビットにねじを保持するようにロボットに指令を与える。
 この構成によれば、ドライバビットが回転した状態で、ドライバビットを下降させることで、ドライバビットがねじと係合し易くなる。また、ドライバビットの下降方向に発生する荷重およびドライバビットの位置の両方を条件として判断することで、ドライバビットとねじとの係合をより適切に判断できる。よって、ドライバビットとねじとを係合させて、ドライバビットにねじを保持する動作をより確実に実現できる。
 ロボットコントローラは、ドライバビットにねじを保持した状態で、ねじが使用されるワークに向けてドライバビットを移動させるようにロボットにさらに指令を与えてもよい。この構成によれば、同一のロボットを用いて、ねじのピックからねじをワークに組み付けまでの処理を実現できる。
 ロボットコントローラは、ドライバビットの下降方向に発生する荷重が目標値と一致するように、ロボットに指令を与えてもよい。この構成によれば、ドライバビットの下降方向に発生する荷重に応じて、ドライバビットの位置を制御するので、ねじに過度な荷重を与えることを回避できる。
 ロボットコントローラは、ドライバビットの下降開始からの経過時間が予め定められた第2のしきい値を超えた場合に、ドライバビットを上昇させるようにロボットに指令を与えてもよい。この構成によれば、ドライバビットとねじとが適切に係合できない場合に、リトライ処理などを実行できる。
 ドライバビットが回転方向は、ねじの締結方向とは逆方向に設定されてもよい。この構成によれば、ねじがねじフィーダなどと干渉したとしても、ドライバビットに係合できる可能性を高めることができる。
 ドライバビットにねじを保持するための機構は、負圧によりねじを吸着するようにしてもよい。この構成によれば、ドライバビットに係合したねじを保持するための機構を小型化できる。
 ロボットコントローラは、ねじを吸着する経路のゲージ圧が予め定められた第3のしきい値未満であるか否かを判断するようにしてもよい。この構成によれば、ドライバビットがねじと適切に係合できていない状態を検出できる。
 ロボットコントローラは、ドライバビットの下降方向に発生する荷重、および、ドライバビットの位置の時系列データをユーザに提示する提示手段をさらに含んでいてもよい。この構成によれば、ユーザが提示された時系列データを参照して、必要なパラメータを設定できる。
 別の実施の形態によれば、ねじをピックするためのロボットを制御する制御方法が提供される。ロボットには、ねじと係合するためのドライバビットと、ドライバビットにねじを保持するための機構とが装着されている。制御方法は、ドライバビットが回転した状態で、ドライバビットをねじの上方からねじに向けて下降するステップと、ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、ドライバビットが予め定められた位置に到達している場合に、ドライバビットの回転を停止して、ドライバビットにねじを保持するステップとを含む。
 さらに別の実施の形態によれば、ねじをピックするためのロボットを制御するための制御プログラムが提供される。ロボットには、ねじと係合するためのドライバビットと、ドライバビットにねじを保持するための機構とが装着されている。制御プログラムはコンピュータに、ドライバビットが回転した状態で、ドライバビットをねじの上方からねじに向けて下降させる指令をロボットへ与えるステップと、ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、ドライバビットが予め定められた位置に到達している場合に、ドライバビットの回転を停止して、ドライバビットにねじを保持する指令をロボットへ与えるステップとを実行させる。
 本発明によれば、ドライバビットとねじとを係合させて、ドライバビットにねじを保持する動作をより確実に実現できる。
本実施の形態に係るロボットシステムの構成例を示す模式図である。 本実施の形態に係るロボットシステムにおけるドライバビットがねじと係合するための適用例を示す図である。 本実施の形態に係るロボットシステムのハードウェア構成例を示す模式図である。 本実施の形態に係るロボットシステムが解決しようとする課題について説明するための図である。 本実施の形態に係るロボットシステムにおけるねじをピックする際の動作を説明するための図である。 本実施の形態に係るロボットシステムにおけるねじをピックするための処理手順例を示すフローチャートである。 本実施の形態に係るロボットシステムにおけるピック開始位置の設定例を説明するための図である。 本実施の形態に係るロボットシステムにおける移動量しきい値の設定例を説明するための図である。 本実施の形態に係るロボットシステムにおけるピック開始位置および移動量しきい値の設定手順の一例を説明するための図である。 本実施の形態に係るロボットシステムにおけるピック開始位置および係合位置を自動設定するための処理手順例を示すフローチャートである。 本実施の形態に係るロボットシステムにおけるピック開始位置および係合位置を自動設定する際に提示される時系列データの一例を示す模式図である。 本実施の形態に係るロボットシステムにおけるピック開始位置および係合位置を自動設定する際に提示されるユーザインターフェイスの一例を示す模式図である。 本実施の形態に係るロボットシステムにおけるピック開始位置および係合位置を手動設定するための処理手順例を示すフローチャートである。 本実施の形態に係るロボットシステムにおけるピック開始位置および係合位置を手動設定する際に提示される時系列データの一例を示す模式図である。 本実施の形態に係るロボットシステムにおけるピック動作を説明するための図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
 <A.適用例>
 まず、本発明が適用される場面の一例について説明する。
 図1は、本実施の形態に係るロボットシステム1の構成例を示す模式図である。図1を参照して、ロボットシステム1は、多関節ロボット(以下、単に「ロボット10」と称す。)と、ロボット10を制御するロボットコントローラ100とを含む。
 ロボットシステム1においては、ねじフィーダ60がねじ50を所定位置に順次繰り出す。ロボット10は、ねじフィーダ60が繰り出したねじ50をピックする。ロボット10は、ピックしたねじ50をワーク70の位置まで搬送し、ねじ50をワーク70に組み付ける。
 ロボット10は、ベース11と、複数の可動部12,13,14,15,16,17とを含む。可動部12,13,14,15,16,17は、ロボット10のジョイントに相当する。可動部12,13,14,15,16,17の各々は、図1に示すような回転軸に沿ってロボット10を構成するリンクを駆動する。ロボット10のアーム先端には、エンドエフェクタ18が取り付けられている。エンドエフェクタ18には、ねじ50と係合するためのドライバビット20が回転可能に取り付けられている。ドライバビット20にねじ50を保持するための機構の一例として、ドライバビット20の外周側には吸着スリーブ22が設けられている。ドライバビット20の先端近傍には、吸着スリーブ22の開口部21が設けられている。吸着スリーブ22は、図示しないエジェクタと連通しており、エジェクタが発生する負圧によりねじ50を吸着する。また、エジェクタから吸着スリーブ22までの経路には、当該経路のゲージ圧を検出する図示しない圧力センサ28が設けられている。
 すなわち、ドライバビット20にねじ50を保持するための機構は、負圧によりねじ50を吸着する。但し、ドライバビット20にねじ50を保持するための機構としては、吸着(負圧)による構成に限らず、磁力を用いる構成などを用いてもよい。
 ロボット10のアームにエンドエフェクタ18が取り付けられる部分には、エンドエフェクタ18およびドライバビット20に発生する荷重を検出する荷重センサ19が設けられている。荷重センサ19は、発生している荷重の大きさ、および、荷重が発生している方向を示す検出結果を出力する。荷重センサ19の検出結果は、一種のベクトルの形で出力されてもよい。
 以下の説明では、主として、エンドエフェクタ18を基準とした座標系XYZ(以下、「TCP座標系」とも称す。)に基づいてロボット10の動作を説明する。なお、TCP座標系において、ドライバビット20の軸方向がZ軸に相当する。すなわち、Z軸は、ドライバビット20がねじ50を押し付ける方向に相当する。
 より具体的には、荷重センサ19は、検出結果として、TCP座標系のX軸方向(X)の荷重、Y軸方向(Y)の荷重、Z軸方向(Z)の荷重をそれぞれ出力するとともに、X軸を中心とした回転方向(RX)の荷重(モーメント)、Y軸を中心とした回転方向(RY)の荷重(モーメント)、Z軸を中心とした回転方向(RZ)の荷重(モーメント)を出力する。
 ロボットコントローラ100には、情報処理装置200が接続されてもよい。情報処理装置200は、典型的には、汎用コンピュータであり、ロボットコントローラ100からの情報をユーザに提示するとともに、ユーザ操作に従ってユーザ指示をロボットコントローラ100へ与える。
 図2は、本実施の形態に係るロボットシステム1におけるドライバビット20がねじ50と係合するための適用例を示す図である。図2(A)を参照して、ロボットコントローラ100は、ドライバビット20が回転した状態で、ドライバビット20をねじ50の上方からねじ50に向けて下降するようにロボット10に指令を与える。図2(B)を参照して、ロボットコントローラ100は、ドライバビット20の下降方向に発生する荷重が予め定められた押付しきい値(第1のしきい値)を超えており、かつ、ドライバビット20が予め定められた位置(係合位置)に到達している場合に、ドライバビット20の回転を停止して、ドライバビット20にねじ50を保持するようにロボット10に指令を与える。
 ドライバビット20が回転した状態で、ドライバビット20を下降させることで、ドライバビット20がねじ50の頭部52と係合し易くなる。また、ドライバビット20の下降方向に発生する荷重(反力)およびドライバビット20の位置の両方を条件として判断することで、ドライバビット20とねじ50との係合を適切に判断できる。
 <B.ロボットシステム1のハードウェア構成例>
 図3は、本実施の形態に係るロボットシステム1のハードウェア構成例を示す模式図である。図3を参照して、ロボット10は、可動部12,13,14,15,16,17にそれぞれ対応付けられたモータ31,32,33,34,35,36と、モータ31,32,33,34,35,36をそれぞれ駆動するドライバ41,42,43,44,45,46とを含む。また、ロボット10は、ドライバビット20を回転駆動するためのモータ37およびドライバビット20を上下方向に移動するためのモータ38、ならびに、モータ37,38をそれぞれ駆動するドライバ47,48を含む。
 ロボット10は、負圧を発生するエジェクタ39と、エジェクタ39による負圧の発生のオン/オフを制御する電磁弁49とを含む。
 ドライバ41,42,43,44,45,46,47,48、荷重センサ19、圧力センサ28およびティーチングペンダント26は、インターフェイス40を介して、ロボットコントローラ100と電気的に接続される。ティーチングペンダント26は、ユーザ操作に応じて、ロボット10のティーチングなどを行う。ティーチングペンダント26は、ロボット10に対して着脱可能に構成されてもよい。
 ロボットコントローラ100は、一種のコンピュータであり、主要なハードウェアコンポーネントとして、プロセッサ102と、メモリ104と、インターフェイス106と、ストレージ110とを含む。これらのコンポーネントはバス108を介して電気的に接続される。
 プロセッサ102は、典型的には、CPU(Central Processing Unit)やMPU(Micro-Processing Unit)などで構成される。メモリ104は、典型的には、DRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などの揮発性記憶装置で構成される。ストレージ110は、典型的には、SSD(Solid State Disk)やフレッシュメモリなどの不揮発性記憶装置で構成される。ストレージ110は、基本的な処理を実現するためのシステムプログラム112と、制御プログラム114とを格納する。制御プログラム114は、ロボット10を制御するためのコンピュータ読取可能な命令を含む。プロセッサ102は、ストレージ110に格納されたシステムプログラム112および制御プログラム114を読出して、メモリ104に展開して実行することで、後述するようなロボット10を制御するための処理を実現する。
 インターフェイス106は、ロボットコントローラ100とロボット10との間の信号および/またはデータのやり取りを担当する。ロボットシステム1においては、ドライバ41,42,43,44,45,46,47および電磁弁49を制御するための指令がロボットコントローラ100からロボット10へ送信されるとともに、荷重センサ19および圧力センサ28によるそれぞれの検出結果がロボット10からロボットコントローラ100へ送信される。
 図3には、プロセッサ102がプログラムを実行することで必要な処理が提供される構成例を示したが、これらの提供される処理の一部または全部を、専用のハードウェア回路(例えば、ASIC(Application Specific Integrated Circuit)またはFPGA(Field-Programmable Gate Array)など)を用いて実装してもよい。
 図3には、ロボットコントローラ100をロボット10から独立して構成した例を示しているが、ロボットコントローラ100が提供する機能および処理の一部または全部をロボット10に組み入れてもよい。この場合、ロボットコントローラ100は、ロボット制御に専用化されたコントローラとして実装してもよいし、汎用的なPLC(プログラマブルコントローラ)あるいはパーソナルコンピュータを用いて実装してもよい。
 さらに、ロボットコントローラ100が提供する機能および処理の一部または全部をいわゆるクラウドと称されるネットワーク上のコンピューティングリソースを用いて実現してもよい。
 以上のように、本実施の形態に係るロボットシステム1は、どのように実装してもよい。
 <C.ねじのピックおよび搬送における課題>
 次に、本実施の形態に係るロボットシステム1が解決しようとする課題について概略する。
 図4は、本実施の形態に係るロボットシステム1が解決しようとする課題について説明するための図である。図4を参照して、ロボット10のドライバビット20がねじ50と係合した状態で、吸着スリーブ22を介して負圧をねじ50に与えることで、ねじ50は、ドライバビット20の先端に吸着された状態で、ねじフィーダ60からワーク70の挿入孔72まで搬送される。
 このような動作において、ねじ50の搬送中にドライバビット20の先端からねじ50が離れて落下する場合がある。このような落下の典型的な理由としては、ドライバビット20の先端にねじ50が十分に保持されていないことが挙げられる。
 また、ねじ50がワーク70の挿入孔72まで搬送された後、ドライバビット20を回転駆動することで、ねじ50(雄ねじ)をワーク70の挿入孔72に組み付けることになる。このとき、ねじ50と挿入孔72とが噛み合わない状態で、ドライバビット20が回転駆動するとともに、ワーク70に移動することで、ドライバビット20とねじ50との係合が外れてカムアウトが発生し得る。カムアウトにより、ねじ50の穴の破損も発生し得る。このようなカムアウトの典型的な理由としては、ドライバビット20に対してねじ50が斜めあるいは偏心して吸着していることが挙げられる。
 <D.ロボットシステム1の動作>
 次に、上述したような課題を解決するための本実施の形態に係るロボットシステム1の動作について説明する。
 (d1:概要)
 図5は、本実施の形態に係るロボットシステム1におけるねじ50をピックする際の動作を説明するための図である。図5(A)には、ドライバビット20がねじ50の頭部52と十分に係合していない状態を示す。図5(B)には、ドライバビット20がねじ50の頭部52と十分に係合している状態を示す。
 ロボット10は、ドライバビット20がねじ50の頭部52と十分に係合している状態で、吸着スリーブ22を介してねじ50を吸着する。ドライバビット20がねじ50の頭部52と十分に係合している状態を保証するために、ドライバビット20をねじ50に向けて下降する過程でドライバビット20を回転させる。これによって、ドライバビット20とねじ50の頭部52との相対関係が時間的に変化するので、ドライバビット20がねじ50の頭部52と係合する可能性を高めることができる。
 また、ドライバビット20の下降に伴う移動量が予め定められた値を超えていること(あるいは、所定位置まで下降していること)を監視することで、ドライバビット20がねじ50の頭部52と十分に係合していることを保証できる。なお、下降方向に発生する反力に基づいて、ドライバビット20がねじ50の頭部52を押さえ付けていることを監視するようにしてもよい。
 このように、ドライバビット20とねじ50の頭部52とを十分に係合した状態で、吸着することで、ねじ50を十分に保持した状態で搬送でき、ねじ50の組み付け開始時(締結開始時)にねじ50が斜めあるいは偏心する状態を抑制する。これによって、ねじ50のピック、搬送、組み付けといった一連の動作が失敗する確率を低減する。
 (d2:処理手順)
 図6は、本実施の形態に係るロボットシステム1におけるねじ50をピックするための処理手順例を示すフローチャートである。図6に示す各ステップは、典型的には、ロボットコントローラ100のプロセッサ102が制御プログラム114を実行することで実現される。この結果、ロボットコントローラ100からロボット10に対して指令が与えることで図6に示す処理が実現される。
 図6を参照して、ロボットコントローラ100は、ねじ50のピック開始条件が成立するか否かを判断する(ステップS1)。ねじ50のピック開始条件が成立していなければ(ステップS1においてNO)、ステップS1の処理が繰り返される。
 ねじ50のピック開始条件が成立していれば(ステップS1においてYES)、ロボットコントローラ100は、ドライバビット20が回転した状態で、ドライバビット20をねじ50の上方からねじ50に向けて下降するようにロボット10に指令を与える(ステップS2~S4)。
 より具体的には、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をねじフィーダ60のねじ50が繰り出される位置の上方にあるピック開始位置に配置する(ステップS2)。続いて、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を開始する(ステップS3)。そして、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20の下降を開始する(ステップS4)。
 ロボットコントローラ100は、ドライバビット20を下降するための制御において、ドライバビット20の下降方向に発生する荷重が目標押付力(例えば、5~10[N])と一致するように、ロボット10のドライバ48に指令を与えてモータ38を駆動する。すなわち、ロボットコントローラ100は、ドライバビット20を力制御に従って下降させる。このとき、ロボットコントローラ100は、荷重センサ19が検出するドライバビット20の下降方向に発生する荷重を順次取得する。
 また、ドライバビット20を上下方向に移動するためのモータ38には、エンコーダが設けられており、ロボットコントローラ100は、ドライバビット20の移動量を逐次取得する。ロボットコントローラ100は、ドライバビット20の下降方向に発生する荷重が予め定められた押付しきい値(第1のしきい値)を超えており、かつ、ドライバビット20が予め定められた位置(係合位置)に到達している場合に、ドライバビット20の回転を停止して、ドライバビット20にねじ50を保持するようにロボット10に指令を与える(ステップS5,S8,S9)。
 ロボットコントローラ100は、下降方向に発生している荷重が予め定められた押付しきい値を超えており、かつ、ピック開始位置からの移動量が移動量しきい値を超えているか否かを判断する(ステップS5)。移動量しきい値は、ピック開始位置から係合位置までの移動距離に応じて決定される。
 なお、ステップS5においては、ピック開始位置からの移動量(すなわち、相対量)を評価する例を示すが、予め定められた位置(後述する係合位置)までの移動(すなわち、絶対量)を評価してもよい。
 また、ステップS5の判断は、下降方向に発生している荷重が予め定められた押付しきい値を超えていること、および、ピック開始位置からの移動量が移動量しきい値を超えていることが同時に成立しているか否かを判断することが好ましい。
 下降方向に発生している荷重が予め定められた押付しきい値を超えておらず、または、ピック開始位置からの移動量が移動量しきい値を超えていなければ(ステップS5においてNO)、ロボットコントローラ100は、下降開始からの経過時間が予め定められた経過時間しきい値を超えているか否かを判断する(ステップS6)。下降開始からの経過時間が予め定められた経過時間しきい値を超えていなければ(ステップS6においてNO)、ステップS5以下の処理が繰り返される。
 下降開始からの経過時間が予め定められた経過時間しきい値を超えていれば(ステップS6においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をピック開始位置まで上昇させる(ステップS7)。そして、ロボットコントローラ100は、ステップS4以下の処理を繰り返す。このように、ロボットコントローラ100は、ドライバビット20の下降開始からの経過時間が予め定められた経過時間しきい値(第2のしきい値)を超えた場合に、ドライバビット20を上昇させるようにロボット10に指令を与える。
 下降方向に発生している荷重が予め定められた押付しきい値を超えており、かつ、ピック開始位置からの移動量が移動量しきい値を超えていれば(ステップS5においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を停止するとともに、ドライバビット20の下降を停止する(ステップS8)。なお、ドライバビット20の回転の停止と、ドライバビット20の下降の停止とは、必ずしも同時である必要はなく、どちらかを先に停止させてもよい。
 続いて、ロボットコントローラ100は、ロボット10に指令を与えて、吸着スリーブ22に負圧を発生させる(ステップS9)。ロボットコントローラ100は、エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値(負値)未満であるか否かを判断する(ステップS10)。すなわち、ロボットコントローラ100は、ねじ50を吸着する経路のゲージ圧が予め定められた圧力しきい値(第3のしきい値)未満であるか否かを判断する。
 エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値以上であれば(ステップS10においてNO)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をピック開始位置まで上昇させる(ステップS11)。そして、ロボットコントローラ100は、ステップS3以下の処理を繰り返す。
 エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値未満であれば(ステップS10においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をワーク70の挿入孔72に向けて移動させる(ステップS12)。このように、ロボットコントローラ100は、ドライバビット20にねじ50を保持した状態で、ねじ50が使用されるワーク70に向けてドライバビット20を移動させるようにロボット10にさらに指令を与える。
 ロボットコントローラ100は、エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値未満であるか否かを判断する(ステップS13)。すなわち、ロボットコントローラ100は、ねじ50を吸着する経路のゲージ圧が予め定められた圧力しきい値(第3のしきい値)未満であるか否かを判断する。
 エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値以上であれば(ステップS13においてNO)、ドライバビット20によるねじ50の搬送中にねじ50の脱落などの不具合が発生したと判断できる。そのため、ロボットコントローラ100は、ロボット10に指令を与えて、吸着スリーブ22での負圧の発生を停止し(ステップS14)、ステップS1以下の処理を再度行う。すなわち、ドライバビット20によるねじ50の搬送中にねじ50の脱落などの不具合が発生した場合には、ねじ50をピックするための処理を最初からやり直すようにしてもよい。
 あるいは、ドライバビット20によるねじ50の搬送中にねじ50の脱落などの不具合が発生した場合には、異常発生をユーザに通知して、ロボット10を停止するようにしてもよい。この場合には、ユーザが所定の復帰操作を行う。
 エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値未満であれば(ステップS13においてYES)、ロボットコントローラ100は、ロボット10のドライバビット20がワーク70の挿入孔72の上方にある目的位置に到着したか否かを判断する(ステップS15)。ロボット10のドライバビット20がワーク70の挿入孔72の上方にある目的位置に到着していなければ(ステップS15においてNO)、ステップS13以下の処理が繰り返される。
 ロボット10のドライバビット20がワーク70の挿入孔72の上方にある目的位置に到着していれば(ステップS15においてYES)、処理は終了する。
 (d3:パラメータ)
 次に、図6に示す処理手順において用いられるパラメータについて説明する。
 (1)ピック開始位置
 ピック開始位置は、ロボット10のドライバビット20が下降を開始する初期位置である。ピック開始位置は、事前のティーチングなどによって決定される。
 (2)係合位置(ねじフィーダ60によるねじ50の供給位置)
 係合位置は、ロボット10のドライバビット20が下降を終了する位置である。理想的には、係合位置は、ピック開始位置を移動量しきい値分だけずらした位置に相当する。
 (3)ドライバビット20の回転速度
 ドライバビット20の回転速度は、ドライバビット20とねじ50の頭部52との相対関係を時間的に変化できるように決定される。回転速度は、例えば、1サイクル(下降開始からねじ50のピック完了まで)に要する時間(サイクルタイム)内に90°以上回転できるように決定されてもよい(ねじ50の頭部52が十字穴である場合)。
 (4)ドライバビット20の回転トルク
 ドライバビット20の回転トルクは、ドライバビット20を回転駆動するために与える回転方向の力であり、ドライバビット20が静止した状態から回転駆動するために必要なトルクより十分大きな値を設定される。
 (5)ドライバビット20の下降速度
 ドライバビット20の下降速度は、ピック開始位置から下降する際の移動速度である。下降速度は、サイクルタイムと、ドライバビット20がねじ50に接触したときの衝撃力とのトレードオフに基づいて設定される。
 (6)ドライバビット20の目標押付力
 ドライバビット20の目標押付力は、ドライバビット20を力制御に従って下降させる際の目標値である。目標押付力が大きいほど、ドライバビット20がねじ50に対して空転しにくくなる。
 (7)押付しきい値
 押付しきい値は、ドライバビット20とねじ50との係合を判断するためのしきい値である。押付しきい値は、ドライバビット20の目標押付力と同値、あるいは、ドライバビット20の目標押付力より若干小さい値に設定される。
 (8)移動量しきい値
 移動量しきい値は、ドライバビット20とねじ50との係合を判断するためのしきい値である。移動量しきい値は、係合位置を定義するしきい値を意味する。
 (9)経過時間しきい値
 経過時間しきい値は、ドライバビット20によるねじ50のピックが失敗である(タイムアウト)と判断するためのしきい値である。
 (10)圧力しきい値
 圧力しきい値は、ドライバビット20によるねじ50の吸着を判断するためのしきい値である。
 これらのパラメータのうち、ピック開始位置、係合位置および移動量しきい値は、ねじ50のピックの成功率を向上させるために重要なパラメータである。以下、これらのパラメータの設定手順について説明する。
 <E.パラメータの設定手順>
 次に、ピック開始位置、係合位置および移動量しきい値などのパラメータを設定する手順例について説明する。
 (e1:設定対象のパラメータ)
 図7は、本実施の形態に係るロボットシステム1におけるピック開始位置の設定例を説明するための図である。図7(A)には、ピック開始位置が適切に設定されている場合を示し、図7(B)には、ピック開始位置が不適切に設定されている場合を示す。
 図7(A)を参照して、例えば、ドライバビット20の先端に着目して、ピック開始位置(TCP座標系で(X,Y,Z))が設定される。ピック開始位置の水平位置(X,Y)がねじ50の頭部52の中心から大きくずれていなければ、ドライバビット20が下降することで、ねじ50と正しく係合できる。
 これに対して、図7(B)に示すように、ピック開始位置の水平位置(X,Y)がねじ50の頭部52の中心から大きくずれていれば、ドライバビット20が下降した際に、ねじ50の頭部52からずれてしまい、ねじ50と正しく係合できない。
 このように、ピック開始位置は、係合位置(ねじフィーダ60によるねじ50の供給位置)に対して水平方向の誤差が小さくなるように設定される。
 図8は、本実施の形態に係るロボットシステム1における移動量しきい値の設定例を説明するための図である。図8(A)には、移動量しきい値が適切に設定されている場合を示し、図8(B)および図8(C)には、移動量しきい値が不適切に設定されている場合を示す。
 図8(A)を参照して、ドライバビット20がピック開始位置から移動量しきい値分だけ降下することで、ねじ50と正しく係合できる。
 これに対して、図8(B)に示すように、移動量しきい値が本来の値より大きく設定されてしまうと、ねじフィーダ60のねじ50の供給面に接近し過ぎるため、ドライバビット20とねじ50との係合を適切に判断できない。
 また、図8(C)に示すように、移動量しきい値が本来の値より小さく設定されてしまうと、ドライバビット20がねじ50と係合する位置まで下降する前に条件が成立してしまうため、ドライバビット20とねじ50との係合を適切に判断できない。
 以上のように、ピック開始位置、係合位置および移動量しきい値については、いずれも適切に設定する必要がある。パラメータを適切に設定しなければ、ピック失敗でリトライが増加するため、生産性の低下に繋がる。
 ねじ50の頭部52に形成される穴の深さなどは、穴形状(例えば、十字穴・六角穴など)、ねじ径、および頭部形状(例えば、鍋ねじ・皿ねじなど)に応じて変化する。そのため、ピック開始位置、係合位置および移動量しきい値は、対象のねじ50の頭部形状に応じて、適宜設定あるいは変更されることが好ましい。
 また、ピック開始位置、係合位置および移動量しきい値は、対象のねじ50の規格などに応じて、適宜設定あるいは変更されるようにしてもよい。
 なお、ピック開始位置、係合位置および移動量しきい値は、ねじ50の材質およびねじ部形状(例えば、並目・細目、ピッチ、リードなど)などには影響を受けない。そのため、ピック開始位置、係合位置および移動量しきい値を変更する必要はない。
 図9は、本実施の形態に係るロボットシステム1におけるピック開始位置および移動量しきい値の設定手順の一例を説明するための図である。
 予め定められた設定制御ロジック、あるいは、ユーザによるティーチング操作によって、図9に示すように、ドライバビット20の位置が調整される。
 (1)ドライバビット20をねじ50に係合させる。このとき、ドライバビット20は、ねじ50の頭部52に形成された穴の最奥部まで押し込まれているとする。この状態の座標(X,Y,Z)を係合位置として決定する。
 (2)係合位置から移動量しきい値分(ΔZ)だけ上昇させた位置(X,Y,Z-ΔZ)をピック開始位置として決定する。
 なお、移動量しきい値の大きさは、対象のねじ50の頭部52に形成される穴の最大深さ(通常は、誤差を含めて規格で定められている)より大きな値であればよい。
 上述したような動作は、典型的には、ロボット10の通常動作を利用して実現する方法(自動設定)と、ユーザがティーチングペンダント26を操作して実現する方法(手動設定)とが想定される。
 自動設定および手動設定においては、取得された位置および荷重の時系列データがユーザへ提示される。ロボットコントローラ100は、ドライバビット20の下降方向に発生する荷重、および、ドライバビット20の位置の時系列データをユーザに提示する。時系列データは、情報処理装置200を介してユーザへ提示されてもよい。
 (e2:自動設定)
 次に、ピック開始位置および係合位置(移動量しきい値)の自動設定の詳細について説明する。自動設定においては、図6に示すねじ50をピックするための処理と同様の処理を用いて、ピック開始位置および係合位置が決定される。
 なお、自動設定を実行する前に、ピック開始位置の水平位置(X,Y)については、ユーザのティーチングにより設定されているものとする。また、押付しきい値および移動量しきい値についてもおおよその値が設定されているものとする。なお、移動量しきい値については、少し大きめに設定しておくことが好ましい。
 図10は、本実施の形態に係るロボットシステム1におけるピック開始位置および係合位置を自動設定するための処理手順例を示すフローチャートである。図10に示す各ステップは、典型的には、ロボットコントローラ100のプロセッサ102が制御プログラム114を実行することで実現される。この結果、ロボットコントローラ100からロボット10に対して指令が与えることで図10に示す処理が実現される。なお、図6に示す処理と同様の処理については、同じステップ番号を付与している。
 図10を参照して、ロボットコントローラ100は、自動設定の開始を指示するユーザ操作を受けたか否かを判断する(ステップS51)。自動設定の開始を指示するユーザ操作を受けていなければ(ステップS51においてNO)、ステップS51の処理が繰り返される。
 自動設定の開始を指示するユーザ操作を受けていれば(ステップS51においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をねじフィーダ60のねじ50が繰り出される位置の上方にあるピック開始位置に配置する(ステップS2)。続いて、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を開始する(ステップS3)。そして、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20の下降を開始する(ステップS4)。
 ロボットコントローラ100は、下降方向に発生している荷重が予め定められた押付しきい値を超えており、かつ、ピック開始位置からの移動量が移動量しきい値を超えているか否かを判断する(ステップS5)。
 下降方向に発生している荷重が予め定められた押付しきい値を超えておらず、または、ピック開始位置からの移動量が移動量しきい値を超えていなければ(ステップS5においてNO)、ステップS5以下の処理が繰り返される。
 下降方向に発生している荷重が予め定められた押付しきい値を超えており、かつ、ピック開始位置からの移動量が移動量しきい値を超えていれば(ステップS5においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を停止するとともに、ドライバビット20の下降を停止する(ステップS8)。
 そして、ロボットコントローラ100は、一連の動作において取得された位置および下降方向に発生している荷重の時系列データをユーザに提示する(ステップS52)。ユーザは、提示された位置および下降方向に発生している荷重の時系列データを参照して、ピックが成功したか否かを判断する。ロボットコントローラ100は、ユーザからピックが成功したとの判断結果を受けたか否かを判断する(ステップS53)。
 ユーザからピックが成功したとの判断結果を受けていなければ(ステップS53においてNO)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をピック開始位置まで上昇させる(ステップS11)。そして、ステップS3以下の処理が繰り返される。
 ユーザからピックが成功したとの判断結果を受けていれば(ステップS53においてYES)、ロボットコントローラ100は、現在の位置を係合位置として格納する(ステップS54)。続いて、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20を移動量しきい値分だけ上昇させる(ステップS55)。そして、ロボットコントローラ100は、現在の位置を新しいピック開始位置として更新する(ステップS56)。
 以上により、ピック開始位置および係合位置の自動設定は完了する。
 図11は、本実施の形態に係るロボットシステム1におけるピック開始位置および係合位置を自動設定する際に提示される時系列データの一例を示す模式図である。図11を参照して、ドライバビット20がねじ50と係合するまでには、4つの状態ST1~ST4が想定される。
 状態ST1は、ドライバビット20が下降中でねじ50と接触する前の状態である。
 状態ST2は、ドライバビット20の先端がねじ50と接触しているが、ドライバビット20がねじ50と十分には係合していない状態である。
 状態ST3は、ドライバビット20がねじ50と十分には係合していない状態である。
 状態ST4は、ドライバビット20がねじ50の頭部52に形成された穴の最奥部まで押し込まれている状態である。
 ユーザは、図11に示すような時系列データを参照することで、ピックが成功したか否かを判断できる。
 なお、図11に示すような時系列データと併せて、ドライバビット20の状態を模式的に表示するようにしてもよい。
 図12は、本実施の形態に係るロボットシステム1におけるピック開始位置および係合位置を自動設定する際に提示されるユーザインターフェイスの一例を示す模式図である。
 図12(A)~図12(D)には、それぞれ状態ST1~ST4に対応するドライバビット20とねじ50との関係を示す。図12に示すようなユーザインターフェイスを示すことで、ユーザは、より用意にピックが成功したか否かを判断できる。
 例えば、ドライバビット20がねじ50と適切に係合できない場合には、位置が変化せず、荷重のみが増加するような時間的変化を示す。
 このように、ピック開始位置および係合位置(移動量しきい値)の自動設定を採用することで、パラメータ設定の開始から終了までの処理において、ユーザがロボット10を直接操作する必要がないため、専門知識を有していないユーザであっても、ピック開始位置および係合位置を容易に決定できる。
 (e3:手動設定)
 次に、ピック開始位置および係合位置(移動量しきい値)の手動設定の詳細について説明する。手動設定において、ユーザは、発生する荷重を確認しながらロボット10をティーチングする。
 図13は、本実施の形態に係るロボットシステム1におけるピック開始位置および係合位置を手動設定するための処理手順例を示すフローチャートである。図13に示す各ステップは、典型的には、ロボットコントローラ100のプロセッサ102が制御プログラム114を実行することで実現される。この結果、ロボットコントローラ100からロボット10に対して指令が与えることで図13に示す処理が実現される。なお、図6に示す処理と同様の処理については、同じステップ番号を付与している。
 図13を参照して、ロボットコントローラ100は、手動設定の開始を指示するユーザ操作を受けたか否かを判断する(ステップS61)。手動設定の開始を指示するユーザ操作を受けていなければ(ステップS61においてNO)、ステップS61の処理が繰り返される。
 手動設定の開始を指示するユーザ操作を受けていれば(ステップS61においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20をねじフィーダ60のねじ50が繰り出される位置の上方にあるピック開始位置に配置する(ステップS2)。続いて、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を開始する(ステップS3)。そして、ロボットコントローラ100は、ユーザ操作に従って、ロボット10に指令を与える(ステップS62)。すなわち、ユーザは、ティーチングペンダント26を操作して、ねじ50と係合するようにドライバビット20を操作する。併せて、ロボットコントローラ100は、動作中に取得される、位置、下降方向に発生している荷重、および水平方向に発生している荷重の時系列データをユーザに提示する(ステップS63)。
 ロボットコントローラ100は、手動設定の終了を指示するユーザ操作を受けたか否かを判断する(ステップS64)。手動設定の終了を指示するユーザ操作を受けていなければ(ステップS64においてNO)、ステップS62以下の処理が繰り返される。
 手動設定の終了を指示するユーザ操作を受けていれば(ステップS64においてYES)、ロボットコントローラ100は、ロボット10に指令を与えて、ドライバビット20の回転を停止する(ステップS65)。そして、ロボットコントローラ100は、現在の位置を係合位置として格納する(ステップS66)。続いて、ロボットコントローラ100は、ロボット10に指令を与えて、ロボット10のドライバビット20を移動量しきい値分だけ上昇させる(ステップS67)。そして、ロボットコントローラ100は、現在の位置を新しいピック開始位置として更新する(ステップS68)。
 以上により、ピック開始位置および係合位置の手動設定は完了する。
 図14は、本実施の形態に係るロボットシステム1におけるピック開始位置および係合位置を手動設定する際に提示される時系列データの一例を示す模式図である。図14を参照して、ユーザは、ピック開始位置および係合位置を手動設定する際には、ドライバビット20の位置に加えて、下降方向に発生する荷重および水平方向に発生する荷重の時系列データを参照できる。
 下降方向に発生する荷重が非ゼロの値を示す場合には、ドライバビット20がねじ50と係合していることを示す。水平方向に発生する荷重が非ゼロの値を示す場合には、ドライバビット20がねじ50に対して位置ずれを生じていることを示す。
 また、ドライバビット20の位置が予め定められた高さ以下である場合には、ドライバビット20がねじ50と十分に係合していることを示す。
 このように、ユーザは、図14に示すような時系列データを参照することで、適切な係合位置を決定でき、その結果、ピック開始位置についても決定できる。
 このように、ピック開始位置および係合位置(移動量しきい値)の手動設定を採用することで、ユーザは、時系列データを参照しながら、ティーチングによりドライバビット20をねじ50と短時間に係合させることができる。その結果、ピック開始位置および係合位置を容易に決定できる。
 <F.リトライ動作>
 次に、ドライバビット20によるねじ50のピックが失敗した場合のリトライ動作について説明する。
 図6のステップS6に示すように、下降開始からの経過時間が予め定められた経過時間しきい値を超えていれば、ドライバビット20によるねじ50のピックが失敗であると判断できる。
 図6のステップS10に示すように、エジェクタ39から吸着スリーブ22までの経路のゲージ圧が予め定められた圧力しきい値未満であれば、ドライバビット20によるねじ50のピックが失敗であると判断できる。
 このような場合、リトライ動作が実行される。リトライ動作においては、ドライバビット20の回転速度、ドライバビット20の下降速度、および、ドライバビット20の目標押付力のうち全部または一部について、所定範囲内で段階的に変化させる。このような段階的な変化によって、ねじ50とねじフィーダ60とに発生する静止摩擦力が低減され、ねじ50の空転を防止できる。
 あるいは、リトライ動作においては、ドライバビット20の回転を維持したまま、一度上昇した上で、再度下降するようにしてもよい。このようなリトライ動作によって、ねじ50とねじフィーダ60との接触状態を変化させることができる。
 このようなリトライ動作を行うことで、ドライバビット20がねじ50と係合する確率を向上できる。
 <G.ドライバビット20とねじ50とが係合する確率を高める工夫>
 次に、ドライバビット20とねじ50とが係合する確率を高める工夫の一例について説明する。
 図15は、本実施の形態に係るロボットシステム1におけるピック動作を説明するための図である。図15を参照して、ねじ50は、ねじフィーダ60の供給面62との接触に伴う静止摩擦力が発生する(図15の×印部分)。
 ドライバビット20がねじ50に与える回転力に対して、ねじ50に発生する静止摩擦力が小さければ、ねじ50は空転することになる。このようなねじ50の空転を抑制するためには、ドライバビット20による押付力を大きくするとともに、ドライバビット20の回転速度および回転トルクを抑制することが好ましい。
 ドライバビット20による押付力を大きくすることにより、ねじ50に発生する静止摩擦力を増加させることができる。
 一方で、ねじ50が回転することにより、ねじ50がねじフィーダ60の供給面62と干渉する場合がある。そのため、ドライバビット20の回転方向は、ねじ50の締結方向(右ねじあるいは左ねじ)とは逆方向に設定されることが好ましい。
 ドライバビット20の回転方向をねじ50の締結方向とは逆方向にすることで、ドライバビット20の回転力によって、ねじ50が空転することで、ねじ50とねじフィーダ60の供給面62とが接触して、ねじ50がねじフィーダ60側に押し込まれることを抑制できる。これによって、ねじ50がねじフィーダ60側に押し込まれて斜めになることで、ドライバビット20とねじ50とが適切に係合できないといった事態を回避できる。
 図15(A)には、ドライバビット20の回転方向がねじ50の締結方向と同方向である場合のねじ50の挙動例を示す。ドライバビット20がねじ50に接触すると、ねじ50が空転する。ねじ50は、空転によってねじフィーダ60の供給面62と接触し、ねじ50のねじ溝に沿って接触した位置からねじフィーダ60側に押し込まれる。この結果、ねじ50は、ドライバビット20の下降方向に対して斜めになる。この状態で、ドライバビット20とねじ50とが係合すると、ねじ50のねじ部(締結部)が供給面62と干渉する。その結果、ドライバビット20がねじ50を吸着しきれなくなり、ねじ50が落下する。
 図15(B)には、ドライバビット20の回転方向がねじ50の締結方向と同方向である場合のねじ50の挙動例を示す。ドライバビット20がねじ50に接触すると、ねじ50が空転する。ねじ50は、空転によってねじフィーダ60の供給面62と接触し、ねじ50のねじ溝に沿って接触した位置から供給面62より上側に浮き上がる。このような浮き上がりが生じても、ねじ50は、ドライバビット20の下降方向に対して平行を維持できる。よって、ドライバビット20はねじ50と適切に係合できる。
 このように、ドライバビット20がねじ50を回転させる際に、ねじ50とねじフィーダ60の供給面62との関係を考慮することで、ねじ50のピックの成功率を向上させることができる。
 <H.付記>
 上述したような本実施の形態は、以下のような技術思想を含む。
 [構成1]
 ロボットシステム(1)であって、
 ねじ(50)をピックするためのロボット(10)と、
 前記ロボットを制御するロボットコントローラ(100)とを備え、
 前記ロボットには、前記ねじと係合するためのドライバビット(20)と、前記ドライバビットに前記ねじを保持するための機構(22)とが装着されており、
 前記ロボットコントローラは、
  前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降するように前記ロボットに指令を与え(S2~S4)、
  前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持するように前記ロボットに指令を与える(S5,S8,S9)、ロボットシステム。
 [構成2]
 前記ロボットコントローラは、前記ドライバビットに前記ねじを保持した状態で、前記ねじが使用されるワークに向けて前記ドライバビットを移動させるように前記ロボットにさらに指令を与える(S12)、構成1に記載のロボットシステム。
 [構成3]
 前記ロボットコントローラは、前記ドライバビットの下降方向に発生する荷重が目標値と一致するように、前記ロボットに指令を与える、構成1または2に記載のロボットシステム。
 [構成4]
 前記ロボットコントローラは、前記ドライバビットの下降開始からの経過時間が予め定められた第2のしきい値を超えた場合に、前記ドライバビットを上昇させるように前記ロボットに指令を与える(S6,S7)、構成1~3のいずれか1項に記載のロボットシステム。
 [構成5]
 前記ドライバビットが回転方向は、前記ねじの締結方向とは逆方向に設定される、構成1~4のいずれか1項に記載のロボットシステム。
 [構成6]
 前記ドライバビットに前記ねじを保持するための機構は、負圧により前記ねじを吸着する、構成1~5のいずれか1項に記載のロボットシステム。
 [構成7]
 前記ロボットコントローラは、前記ねじを吸着する経路のゲージ圧が予め定められた第3のしきい値未満であるか否かを判断する(S10,S13)、構成1~6のいずれか1項に記載のロボットシステム。
 [構成8]
 前記ロボットコントローラは、前記ドライバビットの下降方向に発生する荷重、および、前記ドライバビットの位置の時系列データをユーザに提示する提示手段(200)をさらに備える、構成1~7のいずれか1項に記載のロボットシステム。
 [構成9]
 ねじ(50)をピックするためのロボット(10)を制御する制御方法であって、前記ロボットには、前記ねじと係合するためのドライバビット(20)と、前記ドライバビットに前記ねじを保持するための機構(22)とが装着されており、前記制御方法は、
 前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降するステップ(S2~S4)と、
 前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持するステップ(S5,S8,S9)とを備える、制御方法。
 [構成10]
 ねじ(50)をピックするためのロボット(10)を制御するための制御プログラム(114)であって、前記ロボットには、前記ねじと係合するためのドライバビット(20)と、前記ドライバビットに前記ねじを保持するための機構(22)とが装着されており、前記制御プログラムはコンピュータ(100)に、
 前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降させる指令を前記ロボットへ与えるステップ(S2~S4)と、
 前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持する指令を前記ロボットへ与えるステップ(S5,S8,S9)とを実行させる、制御プログラム。
 <I.利点>
 本実施の形態においては、ドライバビット20が回転した状態で、ドライバビット20を下降させることで、ドライバビット20がねじ50の頭部52と係合し易くなる。また、ドライバビット20の下降方向に発生する荷重(反力)およびドライバビット20の位置の両方を条件として判断することで、ドライバビット20とねじ50との係合を適切に判断できる。このような構成および処理を採用することで、ドライバビット20とねじ50とを係合させて、ドライバビット20にねじ50を保持する動作をより確実に実現できる。
 今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 ロボットシステム、10 ロボット、11 ベース、12,13,14,15,16,17 可動部、18 エンドエフェクタ、19 荷重センサ、20 ドライバビット、21 開口部、22 吸着スリーブ、26 ティーチングペンダント、28 圧力センサ、31,32,33,34,35,36,37,38 モータ、39 エジェクタ、40 インターフェイス、41,42,43,44,45,46,47,48 ドライバ、49 電磁弁、50 ねじ、52 頭部、60 ねじフィーダ、62 供給面、70 ワーク、72 挿入孔、100 ロボットコントローラ、102 プロセッサ、104 メモリ、106 インターフェイス、108 バス、110 ストレージ、112 システムプログラム、114 制御プログラム、200 情報処理装置。

Claims (10)

  1.  ロボットシステムであって、
     ねじをピックするためのロボットと、
     前記ロボットを制御するロボットコントローラとを備え、
     前記ロボットには、前記ねじと係合するためのドライバビットと、前記ドライバビットに前記ねじを保持するための機構とが装着されており、
     前記ロボットコントローラは、
      前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降するように前記ロボットに指令を与え、
      前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持するように前記ロボットに指令を与える、ロボットシステム。
  2.  前記ロボットコントローラは、前記ドライバビットに前記ねじを保持した状態で、前記ねじが使用されるワークに向けて前記ドライバビットを移動させるように前記ロボットにさらに指令を与える、請求項1に記載のロボットシステム。
  3.  前記ロボットコントローラは、前記ドライバビットの下降方向に発生する荷重が目標値と一致するように、前記ロボットに指令を与える、請求項1または2に記載のロボットシステム。
  4.  前記ロボットコントローラは、前記ドライバビットの下降開始からの経過時間が予め定められた第2のしきい値を超えた場合に、前記ドライバビットを上昇させるように前記ロボットに指令を与える、請求項1~3のいずれか1項に記載のロボットシステム。
  5.  前記ドライバビットが回転方向は、前記ねじの締結方向とは逆方向に設定される、請求項1~4のいずれか1項に記載のロボットシステム。
  6.  前記ドライバビットに前記ねじを保持するための機構は、負圧により前記ねじを吸着する、請求項1~5のいずれか1項に記載のロボットシステム。
  7.  前記ロボットコントローラは、前記ねじを吸着する経路のゲージ圧が予め定められた第3のしきい値未満であるか否かを判断する、請求項1~6のいずれか1項に記載のロボットシステム。
  8.  前記ロボットコントローラは、前記ドライバビットの下降方向に発生する荷重、および、前記ドライバビットの位置の時系列データをユーザに提示する提示手段をさらに備える、請求項1~7のいずれか1項に記載のロボットシステム。
  9.  ねじをピックするためのロボットを制御する制御方法であって、前記ロボットには、前記ねじと係合するためのドライバビットと、前記ドライバビットに前記ねじを保持するための機構とが装着されており、前記制御方法は、
     前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降するステップと、
     前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持するステップとを備える、制御方法。
  10.  ねじをピックするためのロボットを制御するための制御プログラムであって、前記ロボットには、前記ねじと係合するためのドライバビットと、前記ドライバビットに前記ねじを保持するための機構とが装着されており、前記制御プログラムはコンピュータに、
     前記ドライバビットが回転した状態で、前記ドライバビットを前記ねじの上方から前記ねじに向けて下降させる指令を前記ロボットへ与えるステップと、
     前記ドライバビットの下降方向に発生する荷重が予め定められた第1のしきい値を超えており、かつ、前記ドライバビットが予め定められた位置に到達している場合に、前記ドライバビットの回転を停止して、前記ドライバビットに前記ねじを保持する指令を前記ロボットへ与えるステップとを実行させる、制御プログラム。
PCT/JP2022/012266 2021-09-29 2022-03-17 ロボットシステム、制御方法および制御プログラム WO2023053510A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2021158916A JP2023049270A (ja) 2021-09-29 2021-09-29 ロボットシステム、制御方法および制御プログラム
JP2021-158916 2021-09-29

Publications (1)

Publication Number Publication Date
WO2023053510A1 true WO2023053510A1 (ja) 2023-04-06

Family

ID=85782139

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/012266 WO2023053510A1 (ja) 2021-09-29 2022-03-17 ロボットシステム、制御方法および制御プログラム

Country Status (3)

Country Link
JP (1) JP2023049270A (ja)
TW (1) TWI819566B (ja)
WO (1) WO2023053510A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012086341A (ja) * 2010-10-22 2012-05-10 Sharp Corp 自動組付け装置、自動組付け方法、およびプログラム
JP2019084636A (ja) * 2017-11-08 2019-06-06 三菱電機株式会社 ロボットおよびロボットによるねじの嵌合方法
JP2020147305A (ja) * 2019-03-12 2020-09-17 株式会社イシダ 吸着装置
WO2021144935A1 (ja) * 2020-01-16 2021-07-22 オムロン株式会社 制御装置、制御方法、及び制御プログラム

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106736485A (zh) * 2017-01-06 2017-05-31 深圳大学 一种基于机器人的自动锁螺丝系统及其实现方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012086341A (ja) * 2010-10-22 2012-05-10 Sharp Corp 自動組付け装置、自動組付け方法、およびプログラム
JP2019084636A (ja) * 2017-11-08 2019-06-06 三菱電機株式会社 ロボットおよびロボットによるねじの嵌合方法
JP2020147305A (ja) * 2019-03-12 2020-09-17 株式会社イシダ 吸着装置
WO2021144935A1 (ja) * 2020-01-16 2021-07-22 オムロン株式会社 制御装置、制御方法、及び制御プログラム

Also Published As

Publication number Publication date
TWI819566B (zh) 2023-10-21
TW202313263A (zh) 2023-04-01
JP2023049270A (ja) 2023-04-10

Similar Documents

Publication Publication Date Title
US10363661B2 (en) Control device, robot, and robot system
WO2018195866A1 (zh) 基于机器人系统的零件抓取方法及机器人系统、夹具
US10996649B2 (en) Self-corrective nut running for robotic applications
KR101952767B1 (ko) 로봇
JP7204354B2 (ja) ロボットシステム、ロボットシステムの制御方法、ロボットシステムを用いた物品の製造方法、プログラム及び記録媒体
JP2018083284A (ja) ロボット制御装置、ロボット、ロボットシステム、及び、ロボット制御方法
KR20010075664A (ko) 부품장착 방법 및 그 장치
WO2010004636A1 (ja) ロボット及びその教示方法
US10202244B2 (en) Workpiece supplying device, robot, and robot system
JP2017127940A (ja) ロボット装置
JP2018024075A (ja) 制御装置、ロボットおよびロボットシステム
WO2023053510A1 (ja) ロボットシステム、制御方法および制御プログラム
US9926142B2 (en) Workpiece supplying device, picking device, timepiece assembling apparatus, and picking method
JP2019084636A (ja) ロボットおよびロボットによるねじの嵌合方法
JP6154689B2 (ja) 自動ねじ締め機
US20200068719A1 (en) Component mounting device and method of controlling the same
TW202014280A (zh) 使用自動機操縱器將物件插入物件容室之方法
US20230158678A1 (en) Robot system, control method and non-transitory storage medium storing control program thereon
JP2021158166A (ja) ダイボンディング装置および半導体装置の製造方法
JP2020203361A (ja) ロボット制御装置及びその制御方法
JP2022142491A (ja) ねじ締め装置およびねじ締め方法
JP2012064833A (ja) 部品実装用装置および部品実装用装置における位置決め制御方法
JP6731113B2 (ja) ヘッドユニット及び部品実装機
US20220241964A1 (en) Robot control method and robot system
JP6663837B2 (ja) 自動生産設備および自動生産方法

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22875393

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE