Motion path generating device, numerical control device, numerical control system, and computer program

JP7640669B2Active Publication Date: 2025-03-05FANUC LTD
View PDF 5 Cites 0 Cited by

Patent Information

Application Number
JP2023505498
Authority / Receiving Office
JP · JP
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-10
Filing Date
2022-03-04
Publication Date
2025-03-05
Estimated Expiration
2042-03-04

Smart Images

  • Figure 0007640669000001
    Figure 0007640669000001
  • Figure 0007640669000002
    Figure 0007640669000002
  • Figure 0007640669000003
    Figure 0007640669000003
Patent Text Reader

Abstract

On the basis of a numerical control program for controlling the motion of a machine tool 2, a motion-path generation device 55 generates a motion path concerning control axes of a robot 3 provided in proximity to the machine tool 2. The motion-path generation device 55 comprises: a model update unit 57 that acquires start coordinate values on the control axes and current tool coordinate values of the machine tool 2 and updates a robot system model on the basis of these coordinate values, the robot system model being configured by disposing three-dimensional models of the robot 3, the machine tool 2, and objects in the vicinity of the machine tool 2 in a virtual space; an interference-avoiding-path generation unit 56 that generates a target motion path starting from the start coordinate values and arriving at end coordinate values on the control axes, the end coordinate values being specified on the basis of the numerical control program, while avoiding interference in the robot system model; and a data transmission / reception unit 59 that transmits an instruction including the target motion path to a robot control device 6.
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present disclosure relates to a motion path generating device, a numerical control device, a numerical control system, and a computer program. [Background technology]

[0002] In recent years, in order to promote automation in machining sites, there is a demand for a numerical control system that controls the operation of a machine tool that processes a workpiece in conjunction with the operation of a robot installed in the vicinity of the machine tool (see, for example, Patent Document 1).

[0003] Generally, the programming languages ​​used for the numerical control programs for controlling machine tools and the robot programs for controlling robots are different, so that in order to link the operation of the machine tool with the operation of the robot, the operator needs to be familiar with both the numerical control programs and the robot programs.

[0004] Patent Document 1 shows a numerical control device that controls both a machine tool and a robot by a numerical control program. More specifically, in the numerical control system shown in Patent Document 1, a numerical control device generates a robot command signal according to the numerical control program, a robot control device generates a robot program based on the robot command signal, and generates a robot control signal for controlling the operation of the robot according to the robot program. According to the numerical control system shown in Patent Document 1, a user familiar with numerical control programs can control a robot without mastering the robot program. [Prior art documents] [Patent documents]

[0005] [Patent Document 1] Patent No. 6647472 [Patent Document 2] Patent No. 5860081 Summary of the Invention [Problem to be solved by the invention]

[0006] When controlling the operation of a machine tool and the operation of a robot in conjunction with each other, it is necessary to create a numerical control program and a robot program for the robot so that the robot avoids interference with the machine tool and with objects surrounding the machine tool, such as a work stocker and pallets.

[0007] Therefore, it is conceivable to incorporate the robot simulation device disclosed in Patent Document 2 into the above-mentioned numerical control system. According to the robot simulation device disclosed in Patent Document 2, a three-dimensional model of the robot and the surrounding objects disposed around the robot are arranged in the same virtual space, and a simulation is performed to generate an operation path that avoids interference between the robot and the surrounding objects.

[0008] However, in the simulation device shown in Patent Document 2, it is necessary to set the teaching position of the robot in advance, so it takes time to generate an operation path. Also, in the simulation device shown in Patent Document 2, it is not considered to control the operation of the machine tool and the operation of the robot in a linked manner, so when performing a simulation, it is necessary to fix the positions of the various axes of the machine tool (i.e., the positions of the tool rest, table, etc. of the machine tool) in advance. In other words, while the machine tool is in operation, the positions of the various axes change each time in accordance with the numerical control program, so there is a risk that the robot will interfere with the various axes of the machine tool.

[0009] The present disclosure provides a motion path generating device, a numerical control device, a numerical control system, and a computer program capable of generating a motion path for a robot so as to avoid interference with a machine tool in operation. [Means for solving the problem]

[0010] One aspect of the present disclosure provides a motion path generation device that generates a motion path of a control axis of a robot provided in the vicinity of a machine tool based on a numerical control program for controlling operation of the machine tool, the motion path generation device comprising: a model updating unit that acquires a start coordinate value of the control axis and a machine coordinate value of the machine tool based on the numerical control program, and updates a robot system model configured by arranging a three-dimensional model of the robot, the machine tool, and an object surrounding the machine tool in a virtual space based on the start coordinate value and the machine coordinate value; an interference avoidance path generating unit that generates a target motion path that avoids interference in the robot system model and reaches a target motion path from the start coordinate value to an end coordinate value of the control axis specified based on the numerical control program; and a communication unit that transmits a command including the target motion path to a robot control device that controls the operation of the robot.

[0011] One aspect of the present disclosure provides a numerical control system including a motion path generating device that generates motion paths of control axes of a robot provided in the vicinity of a machine tool based on a numerical control program for controlling the operation of the machine tool, and a robot control device that is communicatively connected to the motion path generating device and controls the operation of the robot based on commands transmitted from the motion path generating device, wherein the motion path generating device includes a model updating unit that acquires a start coordinate value of the control axis and a machine coordinate value of the machine tool based on the numerical control program, and updates a robot system model configured by arranging a three-dimensional model of the robot, the machine tool, and an object surrounding the machine tool in a virtual space based on the start coordinate value and the machine coordinate value; an interference avoidance path generating unit that generates a target motion path that avoids interference in the robot system model and reaches a target coordinate value of the control axis from the start coordinate value specified based on the numerical control program; and a communication unit that transmits commands including the target motion path to the robot control device, and the robot control device generates a robot program based on the target motion path. Effect of the Invention

[0012] According to one aspect of the present disclosure, the motion path generating device acquires a start point coordinate value and a machine coordinate value based on a numerical control program for controlling the operation of the machine tool, and updates a robot system model based on these start point coordinate values ​​and machine coordinate values, thereby allowing the operation of the machine tool and the operation of the robot to be controlled in conjunction with each other based on the numerical control program, while reflecting the successively changing states of the robot and the machine tool in the robot system model. Also, according to one aspect of the present disclosure, by generating a target motion path for the robot based on such a robot system model, it is possible to generate a target motion path that can avoid interference in accordance with the successively changing states of the robot and the machine tool. [Brief description of the drawings]

[0013] [Figure 1] FIG. 1 is a schematic diagram of a numerical control system according to an embodiment of the present disclosure. [Diagram 2] FIG. 2 is a functional block diagram of a numerical control device and a robot control device. [Diagram 3] This is the first example of a numerical control program. [Figure 4] 4 is a sequence diagram showing the flow of signals and information between the numerical control device and the robot control device when the numerical control device is operated based on the numerical control program illustrated in FIG. 3. [Diagram 5] This is a second example of a numerical control program. [Figure 6] FIG. 13 is a diagram showing an example of a plurality of sets of macro variables stored in a macro variable storage unit. [Figure 7] This is a third example of a numerical control program. [Figure 8] 8 is a sequence diagram showing the flow of signals and information between a numerical control device and a robot control device when the numerical control device is operated based on the numerical control program illustrated in FIG. 7. [Figure 9] 11 is a diagram showing an example of a plurality of sets of identifiers stored in an identifier storage unit; FIG. [Figure 10] This is the fourth example of a numerical control program. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0014] Hereinafter, a numerical control system 1 according to an embodiment of the present disclosure will be described with reference to the drawings.

[0015] FIG. 1 is a schematic diagram of a numerical control system 1 according to the present embodiment.

[0016] The numerical control system 1 includes a machine tool 2 that processes a workpiece (not shown), a numerical control device (CNC) 5 that controls the operation of the machine tool 2, a robot 3 provided in the vicinity of the machine tool 2, and a robot control device 6 that controls the operation of the robot 3. The numerical control system 1 controls the operations of the machine tool 2 and the robot 3 in a coordinated manner by using the numerical control device 5 and the robot control device 6 that are communicatively connected to each other.

[0017] The machine tool 2 machines a workpiece (not shown) in response to a machine tool control signal transmitted from a numerical control device 5. Here, the machine tool 2 is, for example, a lathe, a drill press, a milling machine, a grinding machine, a laser processing machine, an injection molding machine, or the like, but is not limited to these.

[0018] The robot 3 operates under the control of a robot control device 6, and performs a predetermined task on a workpiece being machined by, for example, a machine tool 2. The robot 3 is, for example, an articulated robot, and a tool 32 for gripping, machining, and inspecting the workpiece is attached to an arm tip 31. In the following, the robot 3 will be described as being a six-axis articulated robot, but the present invention is not limited to this. In the following, the robot 3 will be described as being a six-axis articulated robot, but the number of axes is not limited to this.

[0019] The numerical control device 5 and the robot control device 6 are computers each composed of hardware such as a calculation processing means such as a CPU (Central Processing Unit), auxiliary storage means such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various computer programs, main storage means such as a RAM (Random Access Memory) for storing data temporarily required for the calculation processing means to execute the computer programs, operation means such as a keyboard for an operator to perform various operations, and display means such as a display for displaying various information to the operator. The robot control device 6 and the numerical control device 5 are capable of transmitting and receiving various signals to each other, for example, via Ethernet (registered trademark).

[0020] FIG. 2 is a functional block diagram of the numerical control device 5 and the robot control device 6.

[0021] First, a detailed configuration of the numerical control device 5 will be described. As shown in Fig. 2, the numerical control device 5 has various functions realized by the above hardware configuration, such as a machine tool control module 50 that controls the operation of the machine tool 2, a motion path generating device 55 that generates motion paths of the control axes of the robot, and a storage unit 54.

[0022] The memory unit 54 includes a program memory unit 541 , a machine coordinate value memory unit 542 , a robot coordinate value memory unit 543 , a 3D model memory unit 544 , a macro variable memory unit 545 , and an identifier memory unit 546 .

[0023] A plurality of numerical control programs created based on operations by an operator, for example, are stored in the program storage unit 541. More specifically, a numerical control program configured with a plurality of command blocks for the machine tool 2 for controlling the operation of the machine tool 2, a plurality of command blocks for the robot 3 for controlling the operation of the robot 3, and the like is stored in the program storage unit 541. The numerical control programs stored in the program storage unit 541 are written in a known programming language for controlling the operation of the machine tool 2, such as G-code or M-code.

[0024] Machine coordinate value storage unit 542 stores machine coordinate values ​​indicating the positions of various axes of machine tool 2 operating under the above-mentioned numerical control program (i.e., the positions of the tool post, table, etc. of machine tool 2). These machine coordinate values ​​are defined under a machine tool coordinate system having as its origin a reference point determined at an arbitrary position on machine tool 2 or in the vicinity of machine tool 2. Machine coordinate value storage unit 542 is successively updated by processing not shown in the figures so that the latest values ​​of the machine coordinate values ​​which successively change under the numerical control program are stored.

[0025] The robot coordinate value storage unit 543 stores robot coordinate values ​​indicating the position and posture of a control point (e.g., arm tip 31 of the robot 3) of the robot 3 operating under the control of the robot controller 6, in other words, the position of each control axis of the robot 3. These robot coordinate values ​​are defined under a robot coordinate system different from the machine tool coordinate system. The robot coordinate value storage unit 543 is successively updated by the robot coordinate values ​​acquired from the robot controller 6 by a process not shown in the figures so that the latest values ​​of the robot coordinate values ​​which change successively under the numerical control program are stored.

[0026] The robot coordinate system is a coordinate system whose origin is a reference point determined at an arbitrary position on the robot 3 or in the vicinity of the robot 3. In the following, a case where the robot coordinate system is different from the machine tool coordinate system will be described, but this is not limited to this. The robot coordinate system may be made to coincide with the machine tool coordinate system. In other words, the origin and coordinate axis directions of the robot coordinate system may be made to coincide with the origin and coordinate axis directions of the machine tool coordinate system.

[0027] In addition, the robot coordinate system can be switched between two or more coordinate formats with different control axes. More specifically, in the numerical control program, the position and orientation of the control point of the robot 3 can be specified in the Cartesian coordinate format or the coordinate format for each axis.

[0028] In each axis coordinate format, the position and posture of the control point of the robot 3 is specified by a total of six real coordinate values ​​whose components are the rotation angle values ​​(J1, J2, J3, J4, J5, J6) of the six joints of the robot 3.

[0029] In the Cartesian coordinate format, the position and orientation of the control point of the robot 3 is specified by a total of six real coordinate values ​​consisting of three coordinate values ​​(X, Y, Z) along three Cartesian coordinate axes and three rotation angle values ​​(A, B, C) around each Cartesian coordinate axis.

[0030] Here, in the case of each axis coordinate system, the rotation angle of each joint of the robot 3 is directly specified, so that the axial arrangement of each arm and wrist of the robot 3 and the number of rotations of the joints that can rotate 360 ​​degrees or more (hereinafter, these are collectively referred to as the "configuration of the robot 3") are uniquely determined. In contrast, in the case of the Cartesian coordinate system, the position and posture of the control point of the robot 3 are specified by six coordinate values ​​(X, Y, Z, A, B, C), so that the configuration of the robot 3 cannot be uniquely determined. Therefore, in the numerical control program for the robot, it is possible to specify the configuration of the robot 3 by a configuration value P, which is an integer value of a predetermined number of digits. Therefore, the position and posture of the control point of the robot 3 and the configuration of the robot 3 are represented by six coordinate values ​​(J1, J2, J3, J4, J5, J6) in the case of each axis coordinate system, and by six coordinate values ​​and one configuration value (X, Y, Z, A, B, C, P) in the case of the Cartesian coordinate system. In the following, for convenience, the configuration value P is also referred to as a coordinate value.

[0031] The 3D model storage unit 544 stores data on a robot system model configured by arranging in a virtual space three-dimensional models imitating the three-dimensional shapes of the machine tool 2, the robot 3, and objects surrounding the machine tool 2. The objects surrounding the machine tool 2 include objects provided within the motion range of the robot 3, such as a workpiece to be machined by the machine tool 2, a workpiece stocker in which a plurality of workpieces are stored, a pallet, and a safety fence. A motion path generation device 55, which will be described later, performs a simulation using the robot system model stored in the 3D model storage unit 544, and thereby generates a motion trajectory of the control axis of the robot 3 that avoids interference on the robot system model.

[0032] The macro variable storage unit 545 stores a plurality of sets of macro variables in a state associated with robot coordinate values ​​arbitrarily determined by the operator.

[0033] The identifier storage unit 546 stores a plurality of sets of identifiers in a state associated with robot coordinate values ​​determined as teaching positions by a teaching operation by an operator (see FIG. 9 described later). In the identifier storage unit 546, the robot coordinate values ​​associated with each identifier as a teaching position may be obtained from the coordinate values ​​of the actual robot 3, or may be obtained from the coordinate values ​​of a virtual robot in a virtual space realized by a computer (not shown) connected to the numerical control device 5 or the 3D model storage unit 544.

[0034] The machine tool control module 50 includes a program input unit 51, an input analysis unit 52, and an operation control unit 53, and by using these, controls the operation of the machine tool 2 based on the numerical control program.

[0035] The program input unit 51 reads out a numerical control program from the program storage unit 541 and inputs it to the input analysis unit 52 sequentially.

[0036] The input analysis unit 52 analyzes the command type based on the numerical control program input from the program input unit 51 for each command block, and transmits the analysis result to the operation control unit 53 and the movement path generating device 55. More specifically, if the command type of the command block is a command for the machine tool 2, the input analysis unit 52 transmits it to the operation control unit 53, and if the command type of the command block is a command for the robot 3, the input analysis unit 52 transmits it to the movement path generating device 55.

[0037] The operation control unit 53 generates a machine tool control signal for controlling the operation of the machine tool 2 in accordance with the analysis result transmitted from the input analysis unit 52, and inputs the signal to actuators that drive various axes of the machine tool 2. The machine tool 2 operates in accordance with the machine tool control signal input from the operation control unit 53, and machines a workpiece (not shown). After controlling the operation of the machine tool 2 in accordance with the numerical control program as described above, the operation control unit 53 updates the machine coordinate values ​​stored in the machine coordinate value storage unit 542 with the latest machine coordinate values.

[0038] As described above, the movement path generating device 55 generates a movement path of the control axis of the robot 3 based on the numerical control program for controlling the operation of the machine tool 2. More specifically, the movement path generating device 55 includes an interference avoidance path generating unit 56, a model updating unit 57, and a data transmitting / receiving unit 59.

[0039] Here, in the numerical control program, it is possible to cause the motion path generating device 55 to generate a target motion path for the control axis of the robot 3 by using the G codes "G17.4", "G17.5", "G17.6", and "G17.7", and to start a robot program generated in the robot control device 6 based on this target motion path.

[0040] More specifically, the G codes "G17.4" and "G17.7" are commands to instruct the motion path generating device 55 and the robot control device 6 to generate a target motion path of the control axis of the robot 3, to transmit the generated target motion path to the robot control device 6, and to execute a robot program generated in the robot control device 6 based on the target motion path. Hereinafter, the G codes "G17.4" and "G17.7" are also referred to as motion path generation execution commands. Note that under the G code "G17.4", the target motion path is specified directly on the program (see FIG. 3 described later) or is specified using a macro variable stored in the macro variable storage unit 545 (see FIG. 5 described later). On the other hand, under the G code "G17.7", the target motion path is specified using an identifier stored in the identifier storage unit 546 (see FIG. 10 described later).

[0041] Moreover, the G code "G17.5" is a command to instruct the movement path generating device 55 to generate a target movement path of the control axis of the robot 3 and to transmit the generated target movement path to the robot control device 6 (see FIG. 7 described later). Hereinafter, the G code "G17.5" is also referred to as a movement path generation command.

[0042] The G code "G17.6" is a command to instruct the robot controller 6 to execute a robot program generated based on the target movement path in the robot controller 6 (see FIG. 7 described later). Hereinafter, the G code "G17.6" is also referred to as a movement path execution command.

[0043] The model update unit 57 updates the robot system model stored in the 3D model storage unit 544 based on the analysis result of the numerical control program in the input analysis unit 52. More specifically, when the command type based on the numerical control program is a movement path generation command or a movement path generation execution command, the model update unit 57 acquires the start point coordinate value of the robot 3 and the current machine coordinate value of the machine tool 2, and updates the robot system model stored in the 3D model storage unit 544 based on the start point coordinate value and the current machine coordinate value. More specifically, the model update unit 57 updates the robot system model stored in the 3D model storage unit 544 so that the positions of the control axes of the robot 3 in the robot system model match the start point coordinate value and the positions of the axes of the machine tool 2 in the robot system model match the current machine coordinate value.

[0044] The model update unit 57 acquires, as the current machine coordinate values, the machine coordinate values ​​stored in the machine coordinate value storage unit 542 which are successively updated based on the numerical control program as described above. The model update unit 57 also acquires, as the start point coordinate values ​​of the robot 3, the robot coordinate values ​​stored in the robot coordinate value storage unit 543 which are successively updated based on the numerical control program as described above or the robot coordinate values ​​specified in the numerical control program.

[0045] The interference avoidance path generating unit 56 generates a target motion path for the control axis of the robot 3 based on the analysis result of the numerical control program in the input analyzing unit 52. More specifically, when the command type based on the numerical control program is a motion path generation command or a motion path generation execution command, the interference avoidance path generating unit 56 performs a simulation using the robot system model updated by the model updating unit 57 to generate a target motion path on the robot system model that avoids interference between the robot 3 and the machine tool 2 or peripheral objects and that extends from the start coordinate value of the robot 3 to the end coordinate value of the robot 3 specified based on the numerical control program, and writes the generated target motion path to the data transmitting / receiving unit 59.

[0046] In addition, like the model update unit 57, the interference avoidance path generation unit 56 acquires the robot coordinate values ​​stored in the robot coordinate value memory unit 543 or the robot coordinate values ​​specified in the numerical control program as the starting point coordinate values ​​of the robot 3.

[0047] Furthermore, when an identifier is specified in the numerical control program, the interference avoidance path generating unit 56 acquires the robot coordinate values ​​associated with the specified identifier from the identifier storage unit 546, and generates a target motion path with the acquired robot coordinate values ​​as teaching positions. In other words, the interference avoidance path generating unit 56 generates a target motion path that avoids interference on the robot system model and passes through the teaching positions.

[0048] The data transmission / reception unit 59 transmits and receives various data such as commands and robot coordinate values ​​to and from the data transmission / reception unit 69 of the robot control device 6. More specifically, when the target motion path is written by the interference avoidance path generation unit 56, the data transmission / reception unit 59 transmits a command including this target motion path to the data transmission / reception unit 69 of the robot control device 6. Furthermore, when the command type based on the numerical control program is a motion path execution command or a motion path generation and execution command, the data transmission / reception unit 59 transmits the target motion path to the data transmission / reception unit 69 as described above, and then transmits an execution command for the robot program generated in the robot control device 6 based on the target motion path as described below to the data transmission / reception unit 69.

[0049] Next, the configuration of the robot control device 6 will be described in detail. As shown in Fig. 2, the robot control device 6 has various functions, such as a storage unit 61, an input analysis unit 62, a program management unit 63, a trajectory control unit 64, a kinematics control unit 65, a servo control unit 66, and a data transmission / reception unit 69, realized by the above hardware configuration. The robot control device 6 uses the storage unit 61, the input analysis unit 62, the program management unit 63, the trajectory control unit 64, the kinematics control unit 65, the servo control unit 66, and the data transmission / reception unit 69 to control the movement of the robot 3 based on a command transmitted from the movement path generation device 55 of the numerical control device 5.

[0050] The data transmitter / receiver 69 inputs the command transmitted from the data transmitter / receiver 59 of the numerical control device 5 to the input analyzer 62 .

[0051] When the command input from the data transmission / reception unit 69 includes a target movement path, the input analysis unit 62 inputs this target movement path to the program management unit 63. When the command input from the data transmission / reception unit 69 is an execution command for a robot program, the input analysis unit 62 inputs a start command for this robot program to the program management unit 63.

[0052] When a target movement path is input from the input analysis unit 62, the program management unit 63 generates a robot program for moving the control axes of the robot 3 along the target movement path, and stores the robot program in the memory unit 61.

[0053] Furthermore, after generating a robot program based on the previously received target motion path, when a command to start the robot program is input from the input analysis unit 62, the program management unit 63 calls up and starts the robot program corresponding to this command from the storage unit 61. The program management unit 63 executes commands written in the started robot program, and notifies the trajectory control unit 64 of movement commands for the control axes of the robot 3 one by one.

[0054] The trajectory control unit 64 calculates time-series data of the control points of the robot 3 in response to a movement command notified by the program management unit 63 , and inputs the data to the kinematics control unit 65 .

[0055] The kinematics control unit 65 calculates the target angle of each joint of the robot 3 from the input time-series data, and inputs it to the servo control unit 66.

[0056] The servo control unit 66 generates robot control signals for the robot 3 by feedback controlling each servo motor of the robot 3 so as to realize the target angle input from the kinematics control unit 65 , and inputs the signals to the servo motors of the robot 3 .

[0057] Next, the flow of various signals and information in the numerical control system 1 configured as above will be described with reference to FIGS.

[0058] FIG. 3 is a first example of a numerical control program. FIG. 4 is a sequence diagram showing the flow of signals and information between the numerical controller 5 and the robot controller 6 when the numerical controller 5 is operated based on the numerical control program exemplified in FIG.

[0059] The numerical control program shown in FIG. 3 is a program for causing the machine tool 2 to machine a workpiece, and then causing the robot 3 to grip the machined workpiece and release the machined workpiece from the machine tool 2.

[0060] First, the blocks indicated with sequence numbers "N10" to "N19" are commands for the machine tool 2. More specifically, the block indicated with sequence number "N10" is a command related to setting the coordinate system of the machine tool 2, the block indicated with sequence number "N11" is a command to rotate the spindle of the machine tool 2 at a rotation speed of "1000", the block indicated with sequence number "N12" is a command to align the spindle of the machine tool 2 to the machine coordinate value (X=49.0, Z=5.0) by rapid traverse, and the block indicated with sequence number "N13" is a command to move the spindle of the machine tool 2 by linear interpolation at a speed of "2" to the machine coordinate value (Z=0.0). The blocks indicated by sequence numbers "N14" to "N16" are commands to move the spindle of the machine tool 2 to machine coordinate values ​​(X=55.0, Z=-3.0), (Z=-10.0), and (X=80.0, Z=-50.0) sequentially by linear interpolation. The blocks indicated by sequence numbers "N17" to "N18" are commands to position the spindle of the machine tool 2 sequentially by fast forward to machine coordinate values ​​(X=90.0) and (X=100.0, Z=50.0), and the block indicated by sequence number "N19" is a command to stop the rotation of the spindle. The machine tool control module 50 controls the operation of the machine tool 2 in accordance with these commands. At the time when the block indicated by sequence number "N19" is completed, the latest machine coordinate value, that is, the machine coordinate value (X=100.0, Z=50.0) in the example of the numerical control program shown in FIG. 3, is stored in the machine coordinate value storage unit 542.

[0061] Next, the blocks indicated by sequence numbers “N 20 ” to “N 23 ” are commands for the robot 3 including the tool 32 .

[0062] First, in the block indicated by sequence number "N20", the G code "G17.4", which is a movement path generation execution command, is input to the input analysis unit 52 of the numerical control device 5, and the result of the analysis is input to the movement path generating device 55. As a result, the model update unit 57 of the movement path generating device 55 acquires the robot coordinate values ​​stored in the robot coordinate value storage unit 543 as start point coordinate values, acquires the machine coordinate values ​​stored in the machine coordinate value storage unit 542 as current machine coordinate values, and updates the robot system model stored in the 3D model storage unit 544 based on these start point coordinate values ​​and current coordinate values.

[0063] Thereafter, the interference avoidance path generating unit 56 of the motion path generating device 55 acquires the robot coordinate values ​​stored in the robot coordinate value storage unit 543 as start point coordinate values, and acquires the robot coordinate values ​​specified following the G-code "G17.4", i.e., the robot coordinate values ​​(J1=-57.0, J2=49.9, J3=-44.1, J4=0.0, J5=-45.8, J6=57.0) in the example shown in Fig. 3 as end point coordinate values. The interference avoidance path generating unit 56 also performs a simulation using the robot system model after it has been updated by the model updating unit 57, thereby generating a target motion path that avoids interference on the robot system model and reaches the acquired start point coordinate values ​​to the end point coordinate values.

[0064] Thereafter, the data transmitter / receiver 59 of the movement path generating device 55 transmits a command including the desired movement path generated by the interference avoidance path generating unit 56 to the robot controller 6. As a result, the robot controller 6 generates a robot program based on the received desired movement path.

[0065] Thereafter, the data transmitter / receiver 59 of the movement path generating device 55 transmits an execution command for the robot program generated in the robot controller 6 to the robot controller 6. As a result, the robot controller 6 starts the generated robot program and controls the movement of the robot 3 according to the commands described in this robot program. As a result, the robot coordinate values ​​of the control axes of the robot 3 move along the target movement path from the start coordinate values ​​to the end coordinate values.

[0066] Next, in the block indicated by sequence number "N21", "M60" which is a command for the tool 32 is input to a robot command generating unit (not shown) of the numerical control device 5. As a result, the robot command generating unit transmits an open command for the hand attached to the robot 3 as the tool 32 to the robot control device 6 via the data transmitting / receiving unit 59. As a result, the robot control device 6 opens the hand while fixing the position of the control axis of the robot 3.

[0067] Next, in the block indicated by sequence number "N22", the G code "G17.4" which is a motion path generation execution command is input again to the input analysis unit 52 of the numerical control device 5, and the result of the analysis is input to the motion path generation device 55. As a result, the motion path generation device 55 updates the robot system model by the same procedure as the block indicated by sequence number "N20", generates a target motion path with the robot coordinate values ​​(J1=-59.6, J2=56.2, J3=-38.1, J4=0.0, J5=-51.9, J6=59.6) determined near the workpiece of the machine tool 2 as the end point coordinate values, and transmits a command including this target motion path to the robot control device 6. After that, the motion path generation device 55 transmits an execution command for the robot program generated in the robot control device 6 based on this target motion path to the robot control device 6. As a result, the robot coordinate values ​​of the control axes of the robot 3 move along the target motion path.

[0068] Next, in the block indicated by sequence number "N23", "M61", which is a command for the tool 32, is input to the robot command generating unit of the numerical control unit 5. As a result, the robot command generating unit transmits a command to close the hand attached to the robot 3 to the robot control unit 6 via the data transmitting / receiving unit 59. As a result, the robot control unit 6 closes the hand while fixing the position of the control axis of the robot 3. As a result, the workpiece of the machine tool 2 is gripped by the hand attached to the robot 3.

[0069] Next, the block indicated by sequence number "N24" is a command to the machine tool 2. More specifically, the block indicated by sequence number "N24" is a command to open the chuck that holds the workpiece in the machine tool 2. This causes the machine tool 2 to release the workpiece. Therefore, thereafter, the machined workpiece can be transported to a predetermined position by the robot 3.

[0070] 5 is a second example of the numerical control program. In the second example shown in FIG. 5, the blocks indicated by sequence numbers "N30" to "N39", "N41", "N43", and "N44" are the same as the blocks indicated by sequence numbers "N10" to "N19", "N21", "N23", and "N24" in FIG. 3, and therefore detailed description will be omitted. In addition, in the second example shown in FIG. 5, only the blocks indicated by sequence numbers "N40" and "N42" are different from the first example shown in FIG. 3. In addition, the operations of the machine tool 2 and the robot 3 realized by the numerical control program shown in FIG. 5 are almost the same as those of the numerical control program shown in FIG. 3.

[0071] In the first example shown in Fig. 3, the case where the end point coordinate value of the robot 3 when generating a target motion path is directly written in the numerical control program has been described. In contrast to this, Fig. 5 shows a case where the end point coordinate value of the robot 3 is specified using macro variables "500" to "505" and "510" to "515".

[0072] Fig. 6 is a diagram showing an example of a plurality of sets of macro variables stored in the macro variable storage unit 545. In the example shown in Fig. 6, macro variable "500" is associated with a value "-57.0", macro variable "501" is associated with a value "49.9", macro variable "502" is associated with a value "-44.1", macro variable "503" is associated with a value "0.0", macro variable "504" is associated with a value "-45.8", and macro variable "505" is associated with a value "-57.0". Moreover, macro variable “510” is associated with a value “−59.6”, macro variable “511” is associated with a value “56.2”, macro variable “512” is associated with a value “−38.1”, macro variable “513” is associated with a value “0.0”, macro variable “514” is associated with a value “−51.9”, and macro variable “515” is associated with a value “59.6”. According to the second example shown in Fig. 5, by associating a value with each macro variable as shown in Fig. 6, a target movement path similar to that of the first example shown in Fig. 3 is generated.

[0073] FIG. 7 is a third example of a numerical control program. FIG. 8 is a sequence diagram showing the flow of signals and information between the numerical controller 5 and the robot controller 6 when the numerical controller 5 is operated based on the numerical control program exemplified in FIG.

[0074] Fig. 9 is a diagram showing an example of a plurality of sets of identifiers stored in the identifier storage unit 546. In the example shown in Fig. 9, the identifier "0" is associated with the current robot coordinate value, i.e., the robot coordinate value stored in the robot coordinate value storage unit 543, the identifier "1" is associated with the robot coordinate value of a predetermined first teaching position, the identifier "2" is associated with the robot coordinate value of a predetermined second teaching position, the identifier "3" is associated with the robot coordinate value of a predetermined third teaching position, the identifier "4" is associated with the robot coordinate value of a predetermined fourth teaching position, and the identifier "5" is associated with the robot coordinate value of a predetermined fifth teaching position.

[0075] The numerical control program shown in Figure 7, like the numerical control program shown in Figure 3, is a program for machining a workpiece using machine tool 2, then having robot 3 grasp the machined workpiece and release the machined workpiece from machine tool 2.

[0076] First, in blocks indicated by sequence numbers "N50" to "N59", commands for the machine tool 2 are input to the machine tool control module 50 of the numerical control device 5. Note that the blocks indicated by sequence numbers "N50" to "N59" are the same as the blocks indicated by sequence numbers "N10" to "N19" in Fig. 3, and therefore detailed description thereof will be omitted.

[0077] Next, in the block indicated by sequence number "N60", the G code "G17.5" which is a movement path generation command is input to the input analysis unit 52 of the numerical controller 5, and the result of the analysis is input to the movement path generation device 55. As a result, the model update unit 57 of the movement path generation device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the same block (i.e., the current robot coordinate value in the example of FIG. 9) as the start point coordinate value, acquires the machine coordinate value stored in the machine coordinate value storage unit 542 as the current machine coordinate value, and updates the robot system model stored in the 3D model storage unit 544 based on the start point coordinate value and the current machine coordinate value.

[0078] Thereafter, the interference avoidance path generating unit 56 of the motion path generating device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the same block (i.e., in the example of FIG. 9, the current robot coordinate value) as the start point coordinate value, and acquires the robot coordinate value associated with the identifier described following the letter "J" in the same block (i.e., in the example of FIG. 9, the robot coordinate value of the second taught position) as the end point coordinate value. The interference avoidance path generating unit 56 also performs a simulation using the robot system model after it has been updated by the model updating unit 57, thereby generating a target motion path that avoids interference on the robot system model and reaches the acquired start point coordinate value from the end point coordinate value.

[0079] Thereafter, the data transmitter / receiver unit 59 of the movement path generating device 55 transmits a command including the target movement path generated by the interference avoidance path generating unit 56 and the program number (0001 in the example of FIG. 7) described following the letter "P" in the same block to the robot controller 6. As a result, the robot controller 6 generates a robot program with the received program number (0001) based on the received target movement path.

[0080] Next, in a block indicated by sequence number "N61", a G code "G17.5" which is a movement path generation command is input to the movement path generating device 55 of the numerical controller 5. As a result, the model update unit 57 of the movement path generating device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the block (i.e., the robot coordinate value of the second teaching position in the example of FIG. 9) as the start point coordinate value, acquires the machine coordinate value stored in the machine coordinate value storage unit 542 as the current machine coordinate value, and updates the robot system model stored in the 3D model storage unit 544 based on the start point coordinate value and the current machine coordinate value.

[0081] Thereafter, the interference avoidance path generating unit 56 of the motion path generating device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the block (i.e., in the example of FIG. 9, the robot coordinate value of the second teaching position) as the start coordinate value, acquires the robot coordinate value associated with the identifier described following the letter "J" in the block (i.e., in the example of FIG. 9, the robot coordinate value of the fifth teaching position) as the intermediate coordinate value, and acquires the robot coordinate value associated with the identifier described following the letter "K" in the block (i.e., in the example of FIG. 9, the robot coordinate value of the first teaching position determined near the workpiece of the machine tool 2) as the end coordinate value. The interference avoidance path generating unit 56 also generates a target motion path that avoids interference on the robot system model and reaches the end coordinate value from the acquired start coordinate value via the intermediate coordinate value on the robot system model.

[0082] Thereafter, the data transmission / reception unit 59 of the motion path generating device 55 transmits to the robot controller 6 a command including the target motion path generated by the interference avoidance path generating unit 56 and the program number (0001 in the example of FIG. 7) described following the letter "P" in the same block. As a result, the robot controller 6 generates a robot program with the received program number (0001) based on the received target motion path. In the example shown in FIG. 7, the program number specified in the sequence number "N61" is "0001", which is the same as the program number specified in the sequence number "N60". Therefore, in this case, the robot controller 6 adds the robot program generated based on the command of the sequence number "N61" to the robot program generated based on the command of the sequence number "N60".

[0083] Next, in the block indicated by sequence number "N62," a command "M60" for the hand attached to the robot 3 is input to a robot command generating unit (not shown) of the numerical control device 5. This causes the robot control device 6 to open the hand while keeping the position of the control axis of the robot 3 fixed, using the same procedure as that of sequence number "N21" in Fig. 3.

[0084] Next, in the block indicated by sequence number "N63", the G code "G17.6" which is a motion path execution command is input to the input analysis unit 52 of the numerical control device 5, and the analysis result is input to the motion path generation device 55. As a result, the data transmission / reception unit 59 of the motion path generation device 55 transmits an execution command for the robot program with program number "0001" generated in the robot control device 6 to the robot control device 6. As a result, the robot control device 6 starts the robot program with program number "0001" and controls the operation of the robot 3 according to the command described in this robot program. As a result, the robot coordinate value of the control axis of the robot 3 moves along the target motion path from the start point coordinate value, through the second taught position and the fifth taught position, toward the first taught position defined near the workpiece of the machine tool 2.

[0085] Next, in the block indicated by sequence number "N64," a command "M61" for the hand attached to the robot 3 is input to the robot command generating unit of the numerical control device 5. As a result, the robot control device 6 closes the hand while fixing the position of the control axis of the robot 3, in the same procedure as that of sequence number "N23" in Fig. 3. As a result, the workpiece of the machine tool 2 is gripped by the hand attached to the robot 3.

[0086] Next, the block indicated by sequence number "N65" is a command to open the chuck that holds the workpiece in the machine tool 2, similar to sequence number "N24" in Fig. 3. This causes the machine tool 2 to release the workpiece. Therefore, from this point on, the machined workpiece can be transported to a specified position by the robot 3.

[0087] FIG. 10 is a fourth example of the numerical control program. In the fourth example shown in FIG. 10, the blocks indicated by sequence numbers "N70" to "N79", "N81", "N83", and "N84" are the same as the blocks indicated by sequence numbers "N50" to "N59", "N62", "N64", and "N65" in FIG. 7, and therefore detailed description thereof will be omitted. In addition, in the fourth example shown in FIG. 10, only the blocks indicated by sequence numbers "N80" and "N82" are different from the third example shown in FIG. 7. In addition, the operations of the machine tool 2 and the robot 3 realized by the numerical control program shown in FIG. 10 are almost the same as those in the numerical control program shown in FIG. 7.

[0088] In the block indicated by sequence number "N80", the G code "G17.7" which is a movement path generation execution command is input to the input analysis unit 52 of the numerical controller 5, and the result of the analysis is input to the movement path generating device 55. As a result, the model update unit 57 of the movement path generating device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the same block (i.e., the current robot coordinate value in the example of FIG. 9) as the start point coordinate value, acquires the machine coordinate value stored in the machine coordinate value storage unit 542 as the current machine coordinate value, and updates the robot system model stored in the 3D model storage unit 544 based on the start point coordinate value and the current machine coordinate value.

[0089] Thereafter, the interference avoidance path generating unit 56 of the motion path generating device 55 acquires the robot coordinate value associated with the identifier described following the letter "I" in the same block (i.e., in the example of FIG. 9, the current robot coordinate value) as the start point coordinate value, and acquires the robot coordinate value associated with the identifier described following the letter "J" in the same block (i.e., in the example of FIG. 9, the robot coordinate value of the first taught position) as the end point coordinate value. The interference avoidance circuit generating unit 56 also performs a simulation using the robot system model after it has been updated by the model updating unit 57, thereby generating a target motion path that avoids interference on the robot system model and reaches the acquired start point coordinate value from the end point coordinate value.

[0090] Thereafter, the data transmitter / receiver 59 of the movement path generating device 55 transmits a command including the desired movement path generated by the interference avoidance path generating unit 56 to the robot controller 6. As a result, the robot controller 6 generates a robot program based on the received desired movement path.

[0091] Thereafter, the data transmitter / receiver 59 of the motion path generating device 55 transmits an execution command for the robot program generated in the robot controller 6 to the robot controller 6. As a result, the robot controller 6 starts the generated robot program and controls the motion of the robot 3 according to the commands described in this robot program. As a result, the robot coordinate values ​​of the control axes of the robot 3 move along the target motion path from the start point coordinate values ​​toward the first taught position.

[0092] Next, in the block indicated by sequence number "N82", the G code "G17.7" which is a motion path generation execution command is input again to the input analysis unit 52 of the numerical control device 5, and the analysis result is input to the motion path generation device 55. As a result, the motion path generation device 55 updates the robot system model by the same procedure as in the block indicated by sequence number "N80", generates a target motion path with the robot coordinate value associated with the identifier described after the letter "J" (i.e., in the example of FIG. 9, the robot coordinate value of the second teaching position) as the end point coordinate value, and transmits a command including this target motion path to the robot control device 6. After that, the motion path generation device 55 transmits an execution command for the robot program generated in the robot control device 6 based on this target motion path to the robot control device 6. As a result, the robot coordinate value of the control axis of the robot 3 moves from the first teaching position to the second teaching position set in the vicinity of the workpiece of the machine tool 2 along the target motion path.

[0093] The present disclosure is not limited to the above embodiment, and various changes and modifications are possible. For example, in the above embodiment, the movement path generating device 55 and the 3D model storage unit 544 are realized by a computer program installed in the numerical control device 5, but the present disclosure is not limited to this. The movement path generating device 55 and the 3D model storage unit 544 may be realized by a computer program installed in a server connected to the numerical control device 5 and the robot control device 6 so as to be able to communicate with each other. [Explanation of symbols]

[0094] 1. Numerical control system 2…Machine tools 3. Robot 5...Numerical control device 50...Machine tool control module 54...Storage section 541...Program storage unit 542...Machine coordinate value storage unit 543...Robot coordinate value storage unit 544…3D model storage section 545…Macro variable storage section 546...Identifier storage unit 55...Motion path generation device 56...Interference avoidance path generation unit 57…Model Update Section 59...Data transmission / reception unit (communication unit) 6...Robot control device

Claims

1. 1. A motion path generating device that generates motion paths of control axes of a robot based on a numerical control program including a machine tool command block for controlling an operation of a machine tool and a robot command block for controlling an operation of a robot provided near the machine tool, comprising: a model updating unit that acquires a start point coordinate value of the control axis and a machine coordinate value of the machine tool based on the numerical control program, and updates a robot system model configured by arranging three-dimensional models of the robot, the machine tool, and peripheral objects of the machine tool in a virtual space based on the start point coordinate value and the machine coordinate value; an interference avoidance path generating unit that generates a target motion path from the start point coordinate value to an end point coordinate value of the control axis specified based on the robot command block while avoiding interference between the robot, the machine tool, and the peripheral object on the robot system model; A movement path generating device comprising: a communication unit that transmits a command including the target movement path to a robot control device that controls the movement of the robot.

2. An identifier storage unit that stores a plurality of sets of identifiers associated with the coordinate values ​​of the control axes, 2. The motion path generating device according to claim 1, wherein the interference avoidance path generating unit generates the target motion path so as to avoid the interference on the robot system model and to pass through coordinate values ​​associated with an identifier specified based on the numerical control program.

3. The motion path generating device according to claim 1 or 2, wherein the surrounding objects include at least one of a work, a work stocker, a pallet, and a safety fence.

4. a program storage unit that stores the numerical control program; A numerical control device comprising: a motion path generating device according to any one of claims 1 to 3.

5. a motion path generating device that generates motion paths of control axes of the robot based on a numerical control program including a machine tool command block for controlling the operation of the machine tool and a robot command block for controlling the operation of a robot provided in the vicinity of the machine tool; a robot control device communicably connected to the movement path generating device and controlling a movement of the robot based on a command transmitted from the movement path generating device, The motion path generating device includes: a model updating unit that acquires a start point coordinate value of the control axis and a machine coordinate value of the machine tool based on the numerical control program, and updates a robot system model configured by arranging three-dimensional models of the robot, the machine tool, and peripheral objects of the machine tool in a virtual space based on the start point coordinate value and the machine coordinate value; an interference avoidance path generating unit that generates a target motion path from the start point coordinate value to an end point coordinate value of the control axis specified based on the robot command block while avoiding interference between the robot, the machine tool, and the peripheral object on the robot system model; a communication unit that transmits a command including the target motion path to the robot control device, The robot control device is a numerical control system that generates a robot program based on the target motion path.

6. the communication unit transmits the target motion path to the robot control device, and then transmits an execution command for the robot program to the robot control device; The numerical control system according to claim 5 , wherein the robot control device starts the robot program in response to receiving the execution command.

7. a computer that stores a numerical control program including a machine tool command block for controlling an operation of a machine tool and a robot command block for controlling an operation of a robot provided in the vicinity of the machine tool, acquiring a start coordinate value of a control axis of the robot and a machine coordinate value of the machine tool based on the numerical control program; updating a robot system model configured by arranging three-dimensional models of the robot, the machine tool, and peripheral objects of the machine tool in a virtual space based on the start point coordinate value and the machine coordinate value; generating a target motion path on the robot system model, the target motion path avoiding interference between the robot, the machine tool, and the peripheral objects, from the start point coordinate value to the end point coordinate value of the control axis specified based on the robot command block; A computer program for causing a robot control device that controls the operation of the robot to transmit a command including the target motion path to the robot control device.

Citation Information

Patent Citations

  • JP1983060081A

  • Robot off-line programming system

    JP2010218036A

  • Interference check system between machine tool and robot

    JP2017016228A

  • Numerical control device and numerical control method

    JP6647472B1

  • Numerical control device and numerical control method

    WO2020144772A1