Robot control device
The robot control device addresses the challenge of reproducing direct teach operations for workpieces conveyed by a conveying device by generating an operation program with position information on a coordinate system relative to the workpiece, ensuring efficient handling and processing.
Patent Information
- Application Number
- PCT/JP2023/042363
- Authority / Receiving Office
- WO · WO
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2023-11-27
- Publication Date
- 2025-06-05
AI Technical Summary
Existing robot control systems lack the capability to efficiently reproduce a series of operations taught by direct teach for handling workpieces conveyed by a conveying device.
A robot control device that includes a direct teach execution unit, an operation information recording unit, and a program creation unit. The program creation unit generates an operation program based on the recorded operation positions, incorporating position information on a predetermined coordinate system representing the relative position of the robot with respect to the workpiece.
Enables the accurate reproduction of operations taught by direct teach for workpieces conveyed by a conveying device, ensuring efficient handling and processing within the available working time.
Smart Images

Figure JP2023042363_05062025_PF_FP_ABST
Abstract
Description
Robot control device
[0001] The present disclosure relates to a robot control device.
[0002] Direct teaching is known, in which an operator directly operates a robot to teach it how to operate (see, for example, Patent Documents 1 and 2).
[0003] JP 2014-172159 A JP 2022-015850 A
[0004] Among the tasks performed by robots is one that involves handling workpieces transported on a transport device. There is a demand for technology that enables a series of operations that an operator has taught to a robot by direct teaching to be replicated on a workpiece transported by the transport device.
[0005] One aspect of the present disclosure is a robot control device that controls a robot, the robot control device including: a direct teach execution unit that executes direct teach to move the robot in accordance with an operating force applied to the robot; an operation information recording unit that records the operating position of the robot in the direct teach; and a program creation unit that generates an operation program based on the recorded operating position, the program creation unit including the recorded operating position in the operation program as position information on a predetermined coordinate system that represents the relative position of the robot with respect to a workpiece.
[0006] These and other objects, features and advantages of the present invention will become more apparent from the detailed description of exemplary embodiments of the invention illustrated in the accompanying drawings.
[0007] 1 is a diagram illustrating an example of the device configuration of a robot system including a robot control device according to an embodiment. FIG. 2 is a functional block diagram of a robot system. FIG. 3 is a flowchart illustrating a process for creating an operation program by direct teach according to a first embodiment. FIG. 4 is a diagram illustrating a situation in which direct teach is performed by an operator. FIG. 5 is a diagram illustrating a state in which the operation position of a robot by direct teach is set as position information on a tracking coordinate system. FIG. 6 is a diagram illustrating an example of a generated tracking program. FIG. 7 is a diagram for explaining the transportation of a workpiece by a transportation device and tracking information. FIG. 8 is a flowchart illustrating a process for displaying available work time and notifying re-teaching according to a second embodiment. FIG. 9 is a diagram illustrating a situation in which available work time is displayed on a UI screen that accepts the start of direct teach execution. FIG. 10 is a diagram illustrating an example of a UI screen including a countdown of available work time and a message prompting re-teaching. FIG. 11 is a flowchart illustrating a parameter adjustment process according to a third embodiment. FIG. 12 is a diagram illustrating a situation in which parameters of a tracking program have been adjusted by parameter adjustment process. FIG. 13 is a flowchart illustrating a parameter adjustment process according to a fourth embodiment. FIG. 14 is a diagram illustrating an example of a UI screen for setting a speed multiplier.
[0008] Next, embodiments of the present disclosure will be described with reference to the drawings. In the drawings, like components or functional parts are designated by like reference numerals. The scales of these drawings have been changed appropriately to facilitate understanding. Furthermore, the embodiment shown in the drawings is one example for implementing the present invention, and the present invention is not limited to the illustrated embodiment.
[0009] Fig. 1 is a diagram showing an example of the device configuration of a robot system 100 including a robot control device 20 according to an embodiment. Fig. 2 is a functional block diagram of the robot system 100. As shown in Fig. 1, the robot system 100 includes a robot 10, a robot control device 20 that controls the robot 10, and a teaching device 40 that is connected to the robot control device 20 by wire or wirelessly.
[0010] The robot control device 20 according to this embodiment is configured to enable direct teaching, in which an operator directly operates and teaches the robot 10. Direct teaching is an operation mode in which an operator teaches the robot an operation by directly operating the robot's arm, end effector, etc. As will be described in detail below, the robot control device 20 has a function of generating an operation program for reproducing, for a workpiece being transported by a transport device, a series of operations taught by the operator through direct teaching.
[0011] In the exemplary device configuration of FIG. 1 , the robot 10 is a vertical articulated robot having multiple joints. The robot 10 includes a base 14 and a swivel base 13 rotatably supported on the base 14. The base 14 is fixed to a workbench 90. The robot 10 also includes an upper arm 11 and a lower arm 12 rotatably supported relative to each other via a joint. The lower arm 12 is rotatably supported on the swivel base 13. The upper arm 11 is rotatable around a rotation axis parallel to the direction in which the upper arm 11 extends. The robot 10 also includes a wrist 15 rotatably connected to the end of the upper arm 11. The wrist 15 includes a rotatably provided flange 16.
[0012] Actuators are disposed at joints between adjacent components among the components that are arranged in order from the base end of the robot 10, including the base unit 14, swivel base 13, lower arm 12, upper arm 11, and wrist unit 15. In Figure 2, one of the joints of the robot 10 is represented by a dashed rectangle, and the motor 5, encoder 6, and torque sensor 7 that are disposed at the joint are also shown.
[0013] While Fig. 1 shows a configuration example in which a vertical articulated robot is used as the robot 10, various types of robots may be used as the robot 10 depending on the work target, such as a horizontal articulated robot, a parallel link robot, or a dual-arm robot. The robot 10 can perform a desired task using a tool 2 as an end effector attached to a flange 16. The tool 2 is replaceable depending on the application, and may be, for example, a hand, a welding gun, or a tool. Fig. 1 shows an example in which a hand is used as the tool 2.
[0014] The robot controller 20 can control the operation of the robot 10 according to a robot program, commands from the teaching device 40, or commands from an external device. In direct teach mode, the robot controller 20 controls the operation of the robot 10 according to the operating force directly applied to the robot 10 by an operator. The robot controller 20 may have a hardware configuration as a general computer including a processor 21, memory (ROM, RAM, non-volatile memory, etc.), a storage unit 22, an operation unit, an input / output interface, a network interface, etc. (see FIG. 2 ).
[0015] The teaching device 40 is used as an operation terminal for teaching the robot 10 and performing various settings. A teaching device configured as a tablet terminal or the like may be used as the teaching device 40. The teaching device 40 may have a hardware configuration as a general computer having a processor, memory (ROM, RAM, non-volatile memory, etc.), a storage device, an operation unit, a display unit 41 (see FIG. 2 ), an input / output interface, a network interface, etc. The teaching device 40 functions as a display device that displays various information related to teaching and as an input device for user input.
[0016] The functions of the robot system 100 will be described below with reference to the functional block diagram of FIG.
[0017] The robot 10 is equipped with a motor 5 as a drive device, an encoder 6 for detecting the angular position of the joint, and a torque sensor 7 at each joint (represented by a dashed rectangle in FIG. 2 ). Based on feedback (such as the position and velocity of each axis) from the encoder 6 for each axis, the robot controller 20 can determine information such as the position, posture, and velocity of the robot 10. Furthermore, based on the detection values from the torque sensors 7 for each axis and the position and posture information (position information of each axis) of the robot 10, the robot controller 20 can calculate the operating force (force or moment) applied to a predetermined portion of the robot 10 (e.g., the arm tip). Instead of the torque sensors 7 for each axis, a force sensor attached to a predetermined position of the robot 10 (e.g., the robot flange) may be used to calculate the operating force (force or moment) applied to a predetermined portion of the robot 10.
[0018] 2 , the robot control device 20 includes an operation control unit 121, a direct teach execution unit 122, an operation information recording unit 123, a position data conversion unit 124, a program creation unit 125, an available work time setting unit 126, an available work time determination unit 127, a parameter adjustment unit 128, a speed magnification setting unit 129, and an execution time setting unit 130. The direct teach execution unit 122 includes an operation force detection unit 122a and a movement command generation unit 122b. These functional blocks may be functional elements realized by the processor 21 of the robot control device 20 executing software.
[0019] 2 also illustrates a storage unit 22 as a hardware component. The storage unit 22 is a storage device formed of, for example, a nonvolatile memory or a hard disk drive. The storage unit 22 stores operation programs, tracking information for tracking workpieces being transported on the transport device, various setting information related to teaching, and the like.
[0020] The operation control unit 121 controls the operation of the robot 10 in accordance with, for example, an operation program, commands from the teaching device 40, or commands from an external device. The robot control device 20 includes a servo control unit (not shown) that executes servo control of the servo motors of the respective axes in accordance with commands for each axis generated by the operation control unit 121. The operation control unit 121 also has the function of controlling the operation of the tool 2 in accordance with the operation program and setting information related to the tool 2.
[0021] The direct teach execution unit 122 controls the robot 10 in direct teach. The processor 21 may accept user input to switch the robot operation to direct teach via a user interface screen displayed on the display unit 41 of the teaching device 40. When the robot operation is set to direct teach, the direct teach execution unit 122 functions, enabling the operator to perform direct teach. In direct teach, the operation force detection unit 122a calculates the force (operation force) applied by the operator to the arm based on the output from the torque sensor 7 of each axis. The operation force may be calculated as a value based on, for example, a predetermined coordinate system (tool coordinate system). The movement command generation unit 122b generates a movement command corresponding to the operation force and issues it to the robot 10.
[0022] The operation information recording unit 123 has a function of recording position information on the path traversed by the robot 10 (tool tip) during direct teach. The operation information recording unit 123 may be configured to record time information along with the position information on the path traversed by the robot 10 during direct teach. Note that the position information in this case may be acquired as position information on a coordinate system based on the robot 10, such as a tool coordinate system or a world coordinate system (robot coordinate system).
[0023] The position data conversion unit 124 has a function of converting the recorded position information into position information in a predetermined coordinate system that represents the relative position of the robot with respect to the workpiece. For example, when a workpiece is transported on a transport device, the predetermined coordinate system with respect to the workpiece is a tracking coordinate system whose origin is fixed at a predetermined position on the workpiece and moves together with the transported workpiece.
[0024] The program creation unit 125 has a function of generating an operation program based on the position information and time information recorded by the operation information recording unit 123. By using the position information converted by the position data conversion unit 124 as the position information of the robot 10 in direct teach, the program creation unit 125 can generate an operation program that expresses the operation taught by the worker by direct teach as operation content based on a predetermined coordinate system with the work as the reference.
[0025] The workable time setting unit 126 provides a function for setting the time during which the robot 10 can work on a workpiece (workable time) for a task that is the target of direct teaching. The workable time setting unit 126 may have a function for calculating the workable time based on predetermined information. For example, in the case of a task on a workpiece being transported on a transport device, the workable time setting unit 126 can calculate the workable time, which is the time during which the robot 10 can work on the workpiece, based on the transport speed of the transport device and the length of a workable area that is virtually set in the transport direction of the transport device.
[0026] The available work time setting unit 126 may have a function of setting the available work time through an external input or an input operation by the worker.
[0027] The workable time determination unit 127 provides a function of determining whether the work time of the direct teach performed by the worker during or after the direct teach has ended has exceeded the workable time. The workable time determination unit 127 may have a function of displaying the workable time or the remaining workable time on the display unit 41. The workable time determination unit 127 may further have a function of displaying a notification on the display unit 41 when the work time performed by the worker has exceeded the workable time.
[0028] The parameter adjustment unit 128 provides a function to adjust various parameters related to the working time, such as speed parameters in the commands that make up the operating program, so that the execution time of the operating program falls within the available working time when the working time of direct teach or the execution time of the operating program generated by the program creation unit 125 exceeds the available working time.
[0029] The speed multiplier setting unit 129 provides a function of setting a multiplier for the robot's motion speed in the motion program. The speed multiplier setting unit 129 may have a function of automatically setting the speed multiplier based on predetermined information. Alternatively, the speed multiplier setting unit 129 may have a function of setting the speed multiplier through external input or input operation by the operator.
[0030] The execution time setting unit 130 provides a function for setting the execution time of an operation program. The execution time setting unit 130 may have a function for setting the execution time of an operation program through external input or input operation by an operator. The execution time setting unit 130 may have a function for automatically setting the execution time of an operation program based on predetermined information.
[0031] Below, we will explain four examples of the operation program creation function using direct teach provided by the robot control device 20. Here, we will assume that the purpose of direct teach is to create an operation program for performing an operation on a workpiece being transported on a transport device.
[0032] First Example The first example relates to the basic content of the operation program creation function by direct teach provided by the robot control device 20. FIG. 3 is a flowchart showing the operation program creation process by direct teach. This operation program creation process is executed under the control of the processor 21. The purpose of the program creation process shown here is to teach the robot 10 a predetermined task for a workpiece being transported on a transport device (for example, the task of picking up a transported workpiece).
[0033] It is assumed that direct teaching is initiated and this process is launched when an operator performs a predetermined operation via the teaching device 40. As illustrated in FIG. 4, the operator OP may perform direct teaching by holding the teaching device 40 with one hand and applying force to the tip of the arm of the robot 10 with the other hand. The teaching device 40 is also equipped with safety features such as an emergency stop switch and an enable switch. The operator OP places a workpiece on the workbench 90 (i.e., the workpiece is fixed on the workbench 90) and applies an operating force to the robot 10 to perform an operation on the workpiece. At this time, the operator OP can also teach the robot 10 an operation to open and close the hand.
[0034] While the operator OP (see FIG. 4 ) operates the robot 10, the operation information recording unit 123 records position information and time information on the path traversed by the robot 10 (e.g., the tool tip) at regular intervals (step S11). Here, it is assumed that the operation information recording unit 123 records the positions and times of the robot 10 (the tool tip) while the operator OP moves the robot 10, such as (position P1, time t1), (position P2, time t2), (position P3, time t3), (position P4, time t4), (position P5, time t5), and (position P6, time t6). The position information is recorded as position information in a world coordinate system set at the base of the robot 10. The world coordinate system is a reference coordinate system fixed to the workspace. The position information and time information constitute trajectory information taught by the operator.
[0035] The program creation unit 125 calculates the motion speed of the robot 10 (tool tip) based on the recorded position information and time information, and generates a motion command or a standby command for the robot 10 (step S12). For example, the program creation unit 125 calculates the motion speed V1 mm / sec of the robot 10 from position P1 to position P2 by (P2 - P1) / (t2 - t1), and can generate the following linear movement command: L P[1] V1 mm / sec Furthermore, if it is determined from the recorded position information and time information that the robot 10 is waiting at a certain position for a certain time T, the program creation unit 125 can also generate a command WAIT T (sec) to make the robot 10 wait for a certain time.
[0036] The position data conversion unit 124 converts the position information recorded by the operation information recording unit 123 into position data on a tracking coordinate system, which is a coordinate system fixed to a predetermined position of the workpiece being transported on the transport device (i.e., a coordinate system that moves together with the transported workpiece) (step S13). As a result, the trajectory information (position information) taught by the operator OP is expressed as position data on a tracking coordinate system 202, as shown in FIG.
[0037] Information for converting position information on the world coordinate system into position data in the tracking coordinate system is stored as part of the tracking information in the storage unit 22. Here, the tracking information, which is information for tracking a workpiece being transported using transport device information, will be described with reference to FIG. 7. As shown in FIG. 7, the workpiece W is transported on the transport device 80 in the direction of arrow A. An origin O1 of the tracking coordinate system 202 is set at a predetermined position of the workpiece W (here, one vertex of the bottom surface). The tracking coordinate system 202 is fixed to the workpiece W and moves together with the workpiece W being transported. Here, it is assumed that the X-axis direction of the tracking coordinate system 202 coincides with the transport direction.
[0038] The transport device 80 has a virtual downstream limit LL and an upstream limit UL set within which the robot 10 can perform work on the workpiece W. The robot 10 is permitted to perform work only within the range of the virtual downstream limit LL and upstream limit UL. FIG. 7 also shows a world coordinate system 201. Here, it is assumed that the origin of the world coordinate system 201 is positioned at a position corresponding to the upstream limit UL in the transport direction of the transport device 80. The transport device 80 is provided with an object detection sensor 81 that detects objects. The object detection sensor 81 is configured, for example, by an optical sensor, and detects the workpiece W when it reaches a position P0 upstream of the upstream limit UL. A signal from the object detection sensor 81 is input to the robot control device 20. The drive mechanism of the transport device 80 is equipped with an encoder (not shown) that detects the amount of movement of the transport device 80, and a signal from the encoder is also input to the robot control device 20. In addition, a visual sensor for detecting the position and posture of the workpiece W may be further arranged in the work space so that the robot control device 20 can recognize the position and posture of the workpiece W.
[0039] The tracking information includes, for example, the following information: Tracking coordinate system information Tracking axis information Tracking working area Encoder information Trigger information Conveying speed
[0040] The "tracking coordinate system information" is, for example, information indicating the orientation of the tracking coordinate system 202 with the world coordinate system 201 as the reference. Note that the tracking coordinate system 202 is a coordinate system fixed to a predetermined position of the workpiece W, so if the position of the workpiece W on the transport device 80 is identified, the position and orientation of the tracking coordinate system 202 relative to the world coordinate system 201 can also be identified. The "tracking axis information" is information indicating the axis of the tracking coordinate system corresponding to the tracking direction. In the example of FIG. 7, the tracking axis information represents the X axis.
[0041] In the example of Figure 7, the "tracking working area" is information representing the positions of the virtual downstream limit LL and upstream limit UL in the conveying direction (positions on the world coordinate system 201). "Encoder information" is information related to the encoder that detects the movement amount of the conveying device 80. "Encoder information" may include, for example, the encoder's identification number and the encoder's scale factor (information indicating the relationship between pulse count and conveying distance). "Trigger information" is information indicating the position at which the object detection sensor 81 detects the workpiece in the conveying direction. "Trigger information" may be, for example, the encoder value when the object detection sensor 81 outputs a detection signal. The encoder information and trigger information make it possible to detect that the workpiece W has reached a position at a predetermined distance from the upstream limit UL, indicated by the symbol 82. The conveying speed represents the conveying speed of the conveying device 80.
[0042] Returning to the explanation of FIG. 3, the program creation unit 125 creates an operation program by describing the operation commands, wait commands, and position information converted into position data on the tracking coordinate system generated as described above in the operation program (step S14). FIG. 6 shows an example of a tracking program 300 generated through the above program creation process. The tracking program 300 includes an operation command "L P[1] 1000 mm / sec" and a wait command "WAIT 1.00 (sec)," among others. "L P[1] 1000 m / sec" represents a command to move the robot linearly to the position represented by position register P[1] at a speed of 1000 mm / sec. The position data stored in position register P[1] in this case is a position on the tracking coordinate system, as described above.
[0043] In this way, the program creation process can generate a tracking program (operation program) for causing the robot to execute the teachings given by the operator on the tracking coordinate system. The robot control device 20 (operation control unit 121) moves the robot 10 within the tracking work area based on the tracking information so that it follows the workpiece W, and executes the teachings given by the operator on the tracking coordinate system, which is a coordinate system stationary with respect to the workpiece W, in accordance with the tracking program (operation program).
[0044] That is, according to the first embodiment, an operation that an operator directly teaches to a robot can be reproduced for a workpiece moving on a conveying device.
[0045] Second Example The second example relates to the function of the robot control device 20 to display the available work time and notify re-teaching. FIG. 8 is a flowchart showing the process of displaying the available work time and notifying re-teaching. This process is executed under the control of the processor 21. The available work time here refers to the time during which the robot 10 is allowed to work on one workpiece being transported on a transport device.
[0046] This process is an additional process added to the program creation process (FIG. 3) described above as the first embodiment, mainly by the available work time setting unit 126 and the available work time determination unit 127. Hereinafter, this process will be described as being started together with the program creation process (FIG. 3) and executed in parallel with the program creation process.
[0047] First, the workable time setting unit 126 calculates the workable time from the tracking information, or the workable time is set by accepting the workable time setting by the worker (S21). The processing of step S21 may be executed prior to the processing of step S11 of the program creation processing (FIG. 3). In an example of operation in which the workable time setting unit 126 calculates the workable time, the workable time setting unit 126 acquires information on the tracking work area and the conveying speed from the tracking information. Then, the workable time setting unit 126 determines the time during which the workpiece W stays between the downstream limit LL and the upstream limit UL as the workable time based on the distance between the downstream limit LL and the upstream limit UL and the conveying speed.
[0048] In an example of operation in which the available work time setting unit 126 accepts a user input of the available work time, the available work time setting unit 126 presents a user interface for accepting the setting of the available work time on, for example, the display unit 41. The worker can input the available work time via the user interface. In this case, the worker may determine a target work time for one workpiece based on, for example, the quantity of workpieces flowing through the conveying device per unit time, and set this as the available work time.
[0049] When the available work time is set in step S21, the available work time setting unit 126 displays the available work time or the remaining available work time on the display unit 41 (step S22). As an example, as shown in Fig. 9, the available work time setting unit 126 may display the set available work time on a UI (user interface) screen 400 that accepts the start of direct teach execution and is presented on the display unit 41 by a predetermined operation on the teaching device 40. The UI screen 400 presents a start button 401 that accepts the start of direct teach and a display field 402 for the available work time.
[0050] Next, if the work time exceeds the available work time during or after the end of teaching, the available work time determination unit 127 displays a message on the display unit 41 to prompt the operator to re-teach (step S23). FIG. 10 shows an example of a UI screen 420 displayed on the display unit 41 during teaching or after the end of teaching. During teaching, the UI screen 420 may display a bar graph 422 indicating the remaining available work time, or a display field 423 displaying a countdown of the available work time. Here, as an example, a situation is shown in which the length of the bar 422a of the bar graph 422 is minimized and the available work time (remaining time) in the display field 423 is 0 seconds because the operator's work time for teaching has exceeded the available work time. FIG. 10 also shows a situation in which a message 421 prompting the operator to re-teach is displayed on the UI screen 420 because the operator's work time for teaching has exceeded the available work time. The prompt for re-teach may be provided by audio.
[0051] The available work time determination unit 127 may determine whether the work time exceeds the available work time as follows. For example, the available work time determination unit 127 may measure the time (or elapsed time) from the start to the end of direct teaching using the function of an internal clock of the robot control device 20 or the teaching device 40, and determine whether the measured time exceeds the available work time. Alternatively, the available work time determination unit 127 may calculate the work time from the position information and time information recorded by the operation information recording unit 123, and determine whether the calculated work time exceeds the available work time. Alternatively, the available work time determination unit 127 may calculate the execution time of the operation program from the position and operation speed in the operation instructions of the created operation program and the standby time of the standby instruction, and determine whether the calculated execution time exceeds the available work time.
[0052] According to the second embodiment, the available or remaining time for the operation is displayed to the operator during the operation, allowing the operator to accurately perform the direct teach so as to complete the operation within the available time. Furthermore, if the operation time exceeds the available time, a notification is issued urging the operator to re-teach, allowing the operator to know that re-teach is required before checking the operation on the actual machine, thereby improving the efficiency of the operation program creation process.
[0053] Third Example The third example relates to a function of the robot control device 20 to adjust parameters in an operation program so that the operation time falls within the available operation time. Fig. 11 is a flowchart showing a parameter adjustment process for adjusting parameters related to the operation speed in the operation program so that the operation time falls within the available operation time. This process is executed under the control of the processor 21.
[0054] First, as in step S21 of the second embodiment, the workable time setting unit 126 calculates the workable time from the tracking information, or the workable time is set by accepting the workable time setting by the worker (S31).
[0055] Next, the program creation process using direct teach described in the first embodiment is executed (step S32). When the operation program is created and the available work time determination unit 127 determines that the operation time (i.e., the execution time of the operation program) exceeds the available work time, the parameter adjustment unit 128 adjusts the parameters in the operation program so that the operation time falls within the available work time (step S33). The parameter adjustment function of the parameter adjustment unit 128 may be incorporated into the program creation unit 125.
[0056] Details of the parameter adjustment by the parameter adjustment unit 128 in step S33 are described below. The parameter adjustment unit 128 may have the following function as a function for adjusting parameters related to the speed in the operation program so that the operation time of the direct teach (the execution time of the operation program) falls within the available operation time. For example, the parameter adjustment unit 128 may repeatedly perform a process of reducing the operation speed of the operation command by a predetermined percentage so that the execution time falls within the available operation time. If the operation program includes a wait command (WAIT), the parameter adjustment unit 128 may speed up the operation command and the wait command by the same percentage so that the execution time falls within the available operation time.
[0057] FIG. 12 shows an example in which the speed specification value of the motion command (linear movement command L) and the waiting time of the standby command in the tracking program 310 are adjusted to double and half, respectively, by the above-described adjustment function of the parameter adjustment unit 128, and generated as tracking program 310A.
[0058] As described above, according to the third embodiment, the execution time of the operating program is automatically adjusted so that it falls within the available work time.
[0059] The flowchart illustrated in FIG. 11 may be modified as follows. For example, the available work time set in step S31 may be changed after the teaching operation in step S32 is completed. In this case, the available work time setting unit 126 accepts a user input (or an external input) to change the available work time set in step S31 after the teaching operation in step S32 is completed. This modification not only allows the program execution time to be adjusted to fit within the available work time set before the start of direct teaching, but also allows the robot control device 20 to adjust the program execution time at a later stage while retaining the direct teaching teaching data. Alternatively, a processing flow may be possible in which the available work time set in step S31 is set after the teaching operation in step S32 is completed.
[0060] (Fourth Example) The fourth example relates to a function for adjusting parameters relating to the operation speed in an operation program based on the speed multiplier setting function of the speed multiplier setting unit 129. Fig. 13 is a flowchart showing the parameter adjustment process according to the fourth embodiment. This process is executed under the control of the processor 21.
[0061] First, the speed multiplier setting unit 129 sets a speed multiplier for execution of the operation program (S41). The speed multiplier setting in step S41 may be performed by the speed multiplier setting unit 129 presenting a UI (user interface) screen 450 for accepting the setting of the speed multiplier as shown in Fig. 14, and accepting input of the speed multiplier by the operator via this UI screen 450. The UI screen 450 includes an input field 451 for inputting the speed multiplier (%).
[0062] Next, the program creation process using direct teach shown in the first embodiment is executed (step S42). This generates an operation program that includes information about the operator's direct teach operations. In this embodiment, the operator sets a speed multiplier in advance to increase the execution speed of the operation program. Therefore, in step S42, the operator can operate the robot with slower movements than the robot's movements when the operation program is executed. For example, if the speed multiplier is set to 2x, the operator can operate the robot at half the speed of the robot when the operation program is executed. This configuration allows for more appropriate teaching of the robot.
[0063] Once the operation program is generated, the parameter adjustment unit 128 adjusts parameters related to the speed of commands in the operation program in accordance with the set speed multiplier (step S43). The parameter adjustment function of the parameter adjustment unit 128 may be incorporated into the program creation unit 125. For example, the parameter adjustment unit 128 adjusts the speed specification value of the robot's operation command in the operation program and the waiting time of the waiting command in accordance with the speed setting. For example, if the speed multiplier is set to 2x, the parameter adjustment unit 128 generates a tracking program 310A in which the speed specification value of the operation command (linear movement command L) in the tracking program 310 and the waiting time of the waiting command are adjusted to 2x and 1 / 2, respectively, as illustrated in FIG. 12 .
[0064] The flowchart illustrated in FIG. 13 may be modified as follows. For example, the speed multiplier set in step S41 may be changed after the teaching operation in step S42 is completed. In this case, the speed multiplier setting unit 129 accepts a user input (or an external input) for changing the speed multiplier set in step S41 after the teaching operation in step S42 is completed. This modification not only allows the program speed to be adjusted using a speed multiplier set in advance before the start of direct teaching, but also allows the robot control device 20 to adjust the program speed at a later stage while retaining the direct teaching teaching data. Alternatively, a processing flow may be possible in which the speed multiplier is set in step S41 after the teaching operation in step S42 is completed.
[0065] Thus, according to the fourth embodiment, the operator can preset a speed multiplier for executing an operation program, and operate the robot during direct teaching at a slower speed according to the speed multiplier. This configuration allows the operator to perform direct teaching accurately.
[0066] In addition, in the fourth embodiment, the operator can set a speed multiplier based on the time required for direct teaching and the available work time that can be determined based on the tracking information so that the execution time of the operation program falls within the available work time.
[0067] The configuration of the fourth embodiment described above can be applied not only to creating an operation program for replicating the operation content of direct teach on a workpiece being transported by a transport device, but also to generating an operation program for performing work on a workpiece that is stationary in a work space using direct teach. Even when generating an operation program for performing work on a workpiece that is stationary in a work space using direct teach, the advantage of being able to perform direct teach operations accurately at a slow speed is provided, provided that a speed multiplier is set.
[0068] (Modification of the Fourth Embodiment) The fourth embodiment described above is an example of an operation in which the speed multiplier setting unit 129 sets the speed multiplier in accordance with a user input. As a modification of the fourth embodiment, there may be an operation example in which the speed multiplier setting unit 129 automatically sets the speed multiplier based on the execution time of the operation program set by the function of the execution time setting unit 130 and the time required for direct teaching.
[0069] The execution time setting unit 130 has a function of accepting user input for setting the execution time of the operation program. When the operator sets the execution time via the function of the execution time setting unit 130, the speed multiplier setting unit 129 may set the speed multiplier based on the set execution time and the time required for direct teach so that the execution time of the operation program matches the set execution time. Note that the time required for direct teach can be calculated based on the operation information (position information and time information) recorded by the operation information recording unit 123. For example, if the set execution time is 100 seconds and the time required for direct teach is 200 seconds, the speed multiplier setting unit 129 sets the speed multiplier to 200%.
[0070] Alternatively, the execution time setting unit 130 may calculate the execution time as the time during which the robot 10 can follow a workpiece being transported on the transport device and perform work within a predetermined work area on the transport device based on the tracking information. In this case, the speed multiplier setting unit 129 can set the speed multiplier based on the set execution time (i.e., available work time) and the time required for direct teaching so that the execution time of the operation program becomes the set execution time (available work time).
[0071] When the speed multiplier is set in this way, the program creation unit 125 (parameter adjustment unit 128) adjusts the parameters related to the operation speed in the operation program in accordance with the speed multiplier.
[0072] In the case of such a modification of the fourth embodiment, it is possible to enjoy the advantages described above with respect to the fourth embodiment.
[0073] As described above, according to this embodiment, an operation that an operator directly teaches to a robot can be reproduced on a workpiece moving within a work space.
[0074] Here, the flexibility of the system configuration will be described. The functional layout in the functional block diagram shown in FIG. 2 is an example, and various modifications are possible with respect to the functional layout of the functional blocks. It can be understood from the above description that not all of the functional blocks arranged in the robot control device 20 are essential, and some of them may be omitted. In some configurations, some of the functional blocks arranged in the robot control device 20 in the functional block diagram shown in FIG. 2 are arranged on the teaching device 40 side. For example, in some configurations, the available work time setting unit 126, available work time determination unit 127, parameter adjustment unit 128, speed multiplication factor setting unit 129, and execution time setting unit 130 are arranged on the teaching device 40 side.
[0075] In addition, since the teaching device 40 has a function as an operation terminal for the robot control device 20, the function of the teaching device 40 can also be defined as the robot control device.
[0076] The configuration of the above-described embodiment can be applied to reproducing operations directly taught by an operator on objects transported by various types of transport devices within a workspace.
[0077] The operation information recording unit 123 may be configured to record position information obtained by converting the operation position of the robot during direct teaching by the position data conversion unit 124. In this case, the program creation unit 125 can create an operation program using the recorded position information (position information converted into a position on the tracking coordinate system).
[0078] Alternatively, when the operation information recording unit 123 records the operation position of the robot during direct teach as a position on a coordinate system based on the robot, the program creation unit 125 may create the operation program using the position information converted by the position data conversion unit 124 at a stage before the operation program is created. Alternatively, after the operation program is created using the recorded operation position, the program creation unit 125 may convert the operation position into position information on a tracking coordinate system using the function of the position data conversion unit 124.
[0079] The functional blocks of the robot control device in the functional block diagram shown in Figure 2 may be realized by one or more processors of the robot control device executing various software stored in a storage device, or may be realized by a configuration mainly based on hardware such as an ASIC (Application Specific Integrated Circuit).
[0080] The programs that execute various processes such as the operation program creation process, the display of available work time and notification process for re-teaching, and the parameter adjustment process in the above-described embodiments can be recorded on various computer-readable recording media (e.g., semiconductor memory such as ROM, EEPROM, flash memory, magnetic recording media, optical disks such as CD-ROM and DVD-ROM).
[0081] Although the present disclosure has been described in detail, the present disclosure is not limited to the individual embodiments described above. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. These embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these. The same applies when numerical values or mathematical expressions are used in the description of the above-described embodiments.
[0082] The following supplementary notes are provided regarding the above-described embodiment and modified examples. (Supplementary Note 1) A robot control device (20) for controlling a robot, comprising: a direct teach execution unit (122) that executes direct teach to move the robot in accordance with an operating force applied to the robot; an operation information recording unit (123) that records an operation position of the robot in the direct teach; and a program creation unit (125) that generates an operation program based on the recorded operation positions, the program creation unit (125) including the recorded operation positions in the operation program as position information in a predetermined coordinate system that represents a relative position of the robot with respect to a workpiece. (Supplementary Note 2) The robot control device (20) according to Supplementary Note 1 further comprises: a memory unit (22) that stores tracking information for tracking a workpiece transported on a transport device, and the program creation unit (125) includes the recorded operation positions in the operation program based on the tracking information as position information in a tracking coordinate system that is fixed to a predetermined position of the workpiece transported on the transport device and moves together with the workpiece. (Supplementary Note 3) The robot control device (20) according to Supplementary Note 2 further includes an operation control unit (121) that controls the robot in accordance with the operation program in accordance with the predetermined coordinate system while following the workpiece transported on the transport device based on the tracking information. (Supplementary Note 4) The robot control device (20) according to any one of Supplements 1 to 3, wherein the program creation unit (125) converts the recorded operation position into position information on the predetermined coordinate system to generate the operation program. (Supplementary Note 5) The robot control device (20) according to any one of Supplements 1 to 3, wherein the operation information recording unit (123) converts the operation position of the robot into position information on the predetermined coordinate system and records it, and the program creation unit (125) generates the operation program using the recorded position information. (Supplementary Note 6) The robot control device (20) according to any one of Supplements 1 to 3, wherein the program creation unit (125) converts the operation position of the robot described in the operation program into position information on the predetermined coordinate system.(Supplementary Note 7) The robot control device (20) according to any one of Supplements 1 to 6, wherein the operation information recording unit (123) further records time information corresponding to the operation position of the robot, and the program creation unit (125) sets parameters of commands constituting the operation program based on the operation position and time information of the robot. (Supplementary Note 8) The robot control device (20) according to Supplementary Note 2 or 3, further comprising: a display device (41); and a workable time setting unit (126) for setting a workable time when the robot is to perform work on the workpiece, and the workable time setting unit (126) displays the set workable time on the display device. (Supplementary Note 9) The robot control device (20) according to Supplementary Note 8, wherein the workable time setting unit (126) calculates the workable time as a time during which the robot is able to perform work while following the workpiece being transported on the transport device within a predetermined work area on the transport device based on the tracking information. (Supplementary Note 10) The robot control device (20) according to Supplementary Note 8, wherein the workable time setting unit (126) accepts a user input for setting the workable time. (Supplementary Note 11) The robot control device (20) according to any one of Supplementary Notes 8 to 10, further comprising a determination unit (127) that determines whether or not a time taken for the direct teach or an execution time of the generated operation program exceeds the workable time, wherein the determination unit (127) displays a notification on the display device when the time taken for the direct teach or an execution time of the generated operation program exceeds the workable time. (Supplementary Note 12) A robot control device (20) according to any one of Supplementary Notes 8 to 10, further comprising: a determination unit (127) that determines whether the time taken for the direct teach or the execution time of the generated operation program exceeds the available work time; and a parameter adjustment unit (128) that, when it is determined that the time taken for the direct teach or the execution time of the generated operation program exceeds the available work time, adjusts a parameter related to the operation speed in an instruction in the operation program so that the execution time of the operation program falls within the available work time.(Supplementary Note 13) The robot control device (20) according to any one of Supplements 1 to 7, further comprising: a speed multiplier setting unit (129) for setting a speed multiplier when executing the operation program; and a parameter adjustment unit (128) for adjusting a parameter related to an operation speed in an instruction in the operation program in accordance with the set speed multiplier. (Supplementary Note 14) The robot control device (20) according to Supplementary Note 13, wherein the speed multiplier setting unit (129) accepts a user input for setting the speed multiplier. (Supplementary Note 15) The robot control device (20) according to Supplementary Note 13, further comprising: an execution time setting unit (130) for accepting input of an execution time of the operation program, wherein the speed multiplier setting unit (129) sets the speed multiplier so that the execution time of the operation program generated by the program creation unit (125) falls within the execution time input via the execution time setting unit (130). (Supplementary Note 16) A robot control device (20) for controlling a robot, comprising: a direct teach execution unit (122) that executes direct teach to move the robot in accordance with an operating force applied to the robot, an operation information recording unit (123) that records position information and time information of the robot in the direct teach, an execution time setting unit (130) that sets an execution time of an operation program, a speed multiplier setting unit (129) that sets a speed multiplier for executing the operation program based on the set execution time, and a program creation unit (125) that generates an operation program for the robot based on the recorded position information and time information and the set speed multiplier. (Supplementary Note 17) The robot control device (20) according to Supplementary Note 16, wherein the speed multiplier setting unit (129) sets the speed multiplier based on the set execution time and the time required for the direct teach calculated based on the recorded time information. (Supplementary Note 18) The robot control device (20) according to Supplementary Note 16 or 17, wherein the execution time setting unit (130) accepts a user input for setting an execution time of the operation program.(Appendix 19) A robot control device (20) according to appendix 16 or 17, further comprising a memory unit (22) that stores tracking information for following a workpiece being transported on a transport device, wherein the execution time setting unit (130) calculates the execution time as the time during which the robot can follow the workpiece being transported on the transport device and perform work within a predetermined working area on the transport device based on the tracking information.
[0083] 2 Tool 5 Motor 6 Encoder 7 Torque sensor 10 Robot 20 Robot control device 21 Processor 22 Memory unit 40 Teaching device 41 Display unit 80 Conveying device 81 Object detection sensor 90 Work table 100 Robot system 121 Operation control unit 122 Direct teach execution unit 123 Operation information recording unit 124 Position data conversion unit 125 Program creation unit 126 Workable time setting unit 127 Workable time determination unit 128 Parameter adjustment unit 129 Speed magnification setting unit 130 Execution time setting unit 201 World coordinate system 202 Tracking coordinate system 300, 310, 310A Tracking program
Claims
1. A robot control device for controlling a robot, comprising: a direct teach execution unit that executes a direct teach for moving the robot in accordance with an operating force applied to the robot; an operation information recording unit that records an operation position of the robot in the direct teach; and a program creation unit that generates an operation program based on the recorded operation position, wherein the program creation unit includes the recorded operation position in the operation program as position information on a predetermined coordinate system representing a relative position of the robot with respect to a workpiece.
2. The robot control device according to claim 1, further comprising a storage unit that stores tracking information for following a workpiece being conveyed on a conveying device, wherein the program creation unit includes the recorded operation position in the operation program as position information on a tracking coordinate system that is fixed to a predetermined position of the workpiece being conveyed on the conveying device and moves together with the workpiece, based on the tracking information.
3. The robot control device according to claim 2, further comprising an operation control unit that controls the robot in accordance with the operation program while following the workpiece being conveyed on the conveying device based on the tracking information and conforming to the predetermined coordinate system.
4. The robot control device according to any one of claims 1 to 3, wherein the program creation unit generates the operation program by converting the recorded operation position into position information on the predetermined coordinate system.
5. The robot control device according to any one of claims 1 to 3, wherein the operation information recording unit converts and records the operation position of the robot into position information on the predetermined coordinate system, and the program creation unit generates the operation program using the recorded position information.
6. The robot control device according to any one of claims 1 to 3, wherein the program creation unit converts the operation position of the robot described in the operation program into position information on the predetermined coordinate system.
7. The robot control device according to any one of claims 1 to 6, wherein the operation information recording unit further records time information corresponding to the operation position of the robot, and the program creation unit sets parameters of instructions constituting the operation program based on the operation position and time information of the robot.
8. The robot control device according to claim 2 or 3, further comprising a display device and a workable time setting unit for setting a workable time when the robot performs work on the workpiece, wherein the workable time setting unit displays the set workable time on the display device.
9. The robot control device according to claim 8, wherein the workable time setting unit calculates the workable time as a time during which the robot can follow and work on the workpiece being conveyed on the conveying device within a predetermined work area based on the tracking information.
10. The robot control device according to claim 8, wherein the workable time setting unit receives a user input for setting the workable time.
11. The robot control device according to any one of claims 8 to 10, further comprising a determination unit for determining whether the time taken for the direct teach or the execution time of the generated operation program exceeds the workable time, and the determination unit displays a notification on the display device when the time taken for the direct teach or the execution time of the generated operation program exceeds the workable time.
12. The robot control device according to any one of claims 8 to 10, further comprising a determination unit for determining whether the time taken for the direct teach or the execution time of the generated operation program exceeds the workable time, and a parameter adjustment unit for adjusting a parameter related to the operation speed in the instructions of the operation program so that the execution time of the operation program falls within the workable time when it is determined that the time taken for the direct teach or the execution time of the generated operation program exceeds the workable time.
13. The robot control device according to any one of claims 1 to 7, further comprising a speed ratio setting unit for setting a speed ratio when executing the operation program, and a parameter adjustment unit for adjusting a parameter related to the operation speed in the instructions of the operation program according to the set speed ratio.
14. The robot control device according to claim 13, wherein the speed ratio setting unit receives a user input for setting the speed ratio.
15. The robot control device according to claim 13, further comprising an execution time setting unit that receives an input of the execution time of the operation program, wherein the speed magnification setting unit sets the speed magnification so that the execution time of the operation program generated by the program creation unit falls within the execution time input via the execution time setting unit.
16. A robot control device for controlling a robot, comprising: a direct teach execution unit that executes a direct teach for moving the robot in response to an operating force applied to the robot; an operation information recording unit that records position information and time information of the robot in the direct teach; an execution time setting unit for setting the execution time of the operation program; a speed magnification setting unit for setting a speed magnification when executing the operation program based on the set execution time; and a program creation unit that generates an operation program of the robot based on the recorded position information and time information and the set speed magnification.
17. The robot control device according to claim 16, wherein the speed magnification setting unit sets the speed magnification based on the set execution time and the time taken for the direct teach calculated based on the recorded time information.
18. The robot control device according to claim 16 or 17, wherein the execution time setting unit receives a user input for setting the execution time of the operation program.
19. The robot control device according to claim 16 or 17, further comprising a storage unit that stores tracking information for following a workpiece being conveyed on a conveying device, wherein the execution time setting unit calculates the execution time as a time during which the robot can perform work following the workpiece being conveyed on the conveying device within a predetermined work area on the conveying device based on the tracking information.
Citation Information
Patent Citations
Teaching method of robot system with conveyor
JP1992008485A
Robot teaching device, control method for the same, and robot teaching program
JP2020097060A