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

TWI938252BActive Publication Date: 2026-09-11FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
TW111105813
Authority / Receiving Office
TW · TW
Patent Type
Patents
Current Assignee / Owner
Priority Date
2021-03-10
Filing Date
2022-02-17
Publication Date
2026-09-11
Estimated Expiration
2042-02-16

AI Technical Summary

Technical Problem

Existing numerical control systems require operators to be proficient in both numerical control and robot programs to link the movement of machine tools with robots, leading to challenges in avoiding interference between the robot and machine tool or peripheral objects, and the linkage control between the machine tool and robot is not considered, resulting in potential interference.

Method used

A motion path generation device that generates a robot motion path based on a numerical control program, using a model update unit to integrate three-dimensional models of the robot and surrounding objects, an interference avoidance path generation unit to create paths that avoid interference, and a communication unit to send instructions to the robot control device, allowing for seamless integration and control of robot movements with machine tools.

Benefits of technology

The system effectively links the movement of machine tools and robots, reflecting their changing states, and generates interference-free motion paths, ensuring smooth operation and avoiding collisions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure TWG2TB001909812_001
    Figure TWG2TB001909812_001
  • Figure TWG2TB001909812_002
    Figure TWG2TB001909812_002
  • Figure TWG2TB001909812_003
    Figure TWG2TB001909812_003
Patent Text Reader

Abstract

The motion path generation device 55 generates motion paths for the control axes of the robot 3 located near the machine tool 2 based on the numerical control program used to control the motion of the machine tool 2. The motion path generation device 55 includes: a model updating unit 57, which obtains the starting coordinates of the control axis and the current mechanical coordinates of the machine tool 2, and updates the robot system model, which is composed of three-dimensional models of the robot 3, the machine tool 2, and the surrounding objects of the machine tool 2 arranged in virtual space, based on these coordinates; an interference avoidance path generation unit 56, which generates a target motion path that avoids interference on the robot system model and reaches the ending coordinates of the control axis specified by the numerical control program from the starting coordinates; and a data transceiver unit 59, which sends instructions containing the target motion path to the robot control device 6.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] Invention Field

[0002] This disclosure relates to a motion path generation device, a numerical control device, a numerical control system, and a computer program. Prior Technology

[0003] Background of the Invention

[0004] In recent years, in order to promote the automation of the machining site, there has been a demand for a numerical control system that links the actions of the machine tool that processes the workpiece with the actions of the robot located near the machine tool (see, for example, Patent Document 1).

[0005] Generally speaking, the programming languages ​​used to control machine tools and robot programs are different. Therefore, in order to coordinate the actions of machine tools and robots, operators must be proficient in both the numerical control program and the robot program.

[0006] Patent Document 1 describes a numerical control device that controls both a machine tool and a robot using a numerical control program. More specifically, in the numerical control system shown in Patent Document 1, robot command signals are generated in the numerical control device according to the numerical control program, and a robot program is generated in the robot control device based on the aforementioned robot command signals. Then, robot control signals for controlling the robot's actions are generated according to the robot program. With the numerical control system shown in Patent Document 1, any user familiar with numerical control programs can control the robot without needing to be proficient in robot programming. Prior technology documents Patent documents

[0007] Patent Document 1: Japanese Patent No. 6647472 Patent Document 2: Japanese Patent No. 5860081 Summary of the Invention

[0008] Invention Summary The problem the invention aims to solve

[0009] However, when linking the machine tool's movements with the robot's movements, it is necessary to avoid interference between the robot and the machine tool, or workpiece storage containers and pallets, etc., in order to create numerical control programs or robot programs.

[0010] Therefore, it is possible to incorporate the robot simulation device shown in Patent Document 2 into the numerical control system described above. Based on the robot simulation device shown in Patent Document 2, by simulating the robot and surrounding objects in the same virtual space using three-dimensional models of the robot and the objects surrounding the robot, motion paths that avoid interference between the robot and its surroundings can be generated.

[0011] However, in the simulation device shown in Patent Document 2, the robot's teaching position must be preset, which consumes time in generating the motion path. Furthermore, since the simulation device in Patent Document 2 does not consider the linkage control between the machine tool's movements and the robot's movements, the positions of various axes of the machine tool (i.e., the positions of the machine tool's tool table or worktable, etc.) must be fixed in advance during simulation. That is, since the positions of various axes change according to the numerical control program each time the machine tool operates, the robot may interfere with the various axes of the machine tool.

[0012] This disclosure provides a motion path generation device, a numerical control device, a numerical control system, and a computer program that can generate motion paths for robots that avoid interference with operating machine tools. The means to solve the problem

[0013] This disclosure provides a motion path generation device that generates motion paths for control axes of a robot located near a machine tool based on a numerical control program used to control the motion of the machine tool. The motion path generation device includes: a model updating unit that obtains the starting coordinates of the control axis and the machine tool's mechanical coordinates based on the numerical control program, and updates a robot system model composed of three-dimensional models of the robot, the machine tool, and surrounding objects arranged in a virtual space based on the starting coordinates and the machine coordinates; an interference avoidance path generation unit that generates a target motion path that avoids interference in the robot system model and reaches the ending coordinates of the control axis specified by the numerical control program from the starting coordinates; and a communication unit that sends instructions containing the target motion path to a robot control device that controls the motion of the robot.

[0014] This disclosure provides a numerical control system comprising: a motion path generation device that generates motion paths for control axes of a robot located near a machine tool based on a numerical control program for controlling the motion of a machine tool; and a robot control device communicatively connected to the motion path generation device and controlling the robot's motion according to instructions sent from the motion path generation device; the motion path generation device comprising: a model updating unit that obtains the starting coordinates of the control axis and the machine tool's mechanical coordinates based on the numerical control program, and updates a robot system model composed of three-dimensional models of the robot, the machine tool, and surrounding objects arranged in a virtual space based on the starting coordinates and the machine coordinates; an interference avoidance path generation unit that generates a target motion path that avoids interference in the robot system model and reaches the ending coordinates of the control axis specified by the numerical control program from the starting coordinates; and a communication unit that sends instructions containing the target motion path to the robot control device; the robot control device generating a robot program based on the target motion path. Invention Effects

[0015] According to one embodiment of this disclosure, the motion path generation device obtains starting coordinates and machine coordinates based on a numerical control program used to control the machine tool's movements, and updates the robot system model based on these values. This allows for coordinated control of the machine tool's movements and the robot's movements according to the numerical control program, while simultaneously reflecting the gradually changing states of the robot and machine tool in the robot system model. Furthermore, according to one embodiment of this disclosure, by generating the robot's target motion path based on such a robot system model, a target motion path that avoids interference can be generated in response to the gradually changing states of the robot and machine tool. Simple Explanation of the Diagram

[0016] Figure 1 is a schematic diagram of a numerical control system according to one embodiment of the present invention. Figure 2 is a functional block diagram of the numerical control device and the robot control device. Figure 3 shows the first example of a numerical control program. Figure 4 is a timing diagram showing the signal or information flow between the numerical control device and the robot control device when the numerical control device is operated according to the numerical control program illustrated in Figure 3. Figure 5 shows the second example of a numerical control program. Figure 6 is a diagram showing an example of a complex array of macro variables stored in the macro variable memory. Figure 7 shows the third example of a numerical control program. Figure 8 is a timing diagram showing the signal or information flow between the numerical control device and the robot control device when the numerical control device is operated according to the numerical control program illustrated in Figure 7. Figure 9 is a diagram showing an example of a complex array of identification codes stored in the identification code memory. Figure 10 shows the fourth example of a numerical control program. Implementation

[0017] Forms used to implement inventions

[0018] The following diagram illustrates one embodiment of the numerical control system disclosed herein.

[0019] Figure 1 is a schematic diagram of the numerical control system 1 of this embodiment.

[0020] 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 movement of the machine tool 2; a robot 3 located near the machine tool 2; and a robot control device 6 that controls the movement of the robot 3. The numerical control system 1 uses the CNC device 5 and the robot control device 6, which are communicatively connected, to perform coordinated control of the movements of the machine tool 2 and the robot 3.

[0021] Machine tool 2 processes a workpiece (not shown) in response to machine tool control signals sent from numerical control device 5. Here, machine tool 2 is, for example, a lathe, drilling machine, milling machine, grinding machine, laser processing machine, and injection molding machine, but is not limited to these.

[0022] Robot 3 operates under the control of robot control device 6, for example, performing a predetermined operation on a workpiece processed by machine tool 2. Robot 3 is, for example, a multi-joint robot, with a tool 32 for gripping, processing, or inspecting the workpiece mounted on the forearm 31 of its arm. The following describes the case where robot 3 is a 6-axis multi-joint robot, but it is not limited to this. Furthermore, the following describes the case where robot 3 is a 6-axis multi-joint robot, but the number of axes is not limited to this.

[0023] The numerical control device 5 and the robot control device 6 are computers composed of the following hardware: a processing unit such as a CPU (Central Processing Unit); auxiliary memory such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) storing various computer programs; main memory such as RAM (Random Access Memory) storing data temporarily needed by the processing unit to execute the computer programs; an operating mechanism such as a keyboard for the operator to perform various operations; and a display mechanism such as a monitor to display various information to the operator. These robot control devices 6 and numerical control devices 5 can send and receive various signals to each other via, for example, an Ethernet network (registered trademark).

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

[0025] First, the detailed structure of the numerical control device 5 will be explained. As shown in Figure 2, the numerical control device 5, through the above-mentioned hardware structure, realizes various functions such as the machine tool control module 50 for controlling the movement of the machine tool 2, the motion path generation device 55 for generating the motion path of the robot's control axis, and the memory unit 54.

[0026] The memory unit 54 includes a program memory unit 541, a mechanical 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 identification code memory unit 546.

[0027] The program memory unit 541 stores, for example, multiple numerical control programs created based on the operator's operations. More specifically, the program memory unit 541 stores numerical control programs composed of instruction blocks such as multiple instruction blocks for controlling the operation of the machine tool 2, or multiple instruction blocks for controlling the operation of the robot 3. The numerical control programs stored in the program memory unit 541 are described using known programming languages, such as G-code or M-code, for controlling the operation of the machine tool 2.

[0028] The machine coordinate memory unit 542 stores machine coordinate values, which represent the positions of various axes of the machine tool 2 operating under the aforementioned numerical control program (i.e., the positions of the tool table or worktable of the machine tool 2). Furthermore, these machine coordinate values ​​are defined within a machine tool coordinate system, which uses a reference point determined at any location on or near the machine tool 2 as its origin. To store the latest values ​​of the machine coordinates, which gradually change under the numerical control program, in this machine coordinate memory unit 542, they are gradually updated through a process not shown.

[0029] Robot coordinate values ​​are stored in the robot coordinate memory unit 543. These robot coordinate values ​​represent the position and posture of the control points (e.g., the forearm end 31 of the robot 3) of the robot 3 operating under the control of the robot control device 6; in other words, they represent the positions of each control axis of the robot 3. Furthermore, these robot coordinate values ​​are defined in a robot coordinate system different from the machine tool coordinate system. In order to store the latest values ​​of the robot coordinate values, which gradually change under the numerical control program, in this robot coordinate memory unit 543, the robot coordinate values ​​obtained from the robot control device 6 are gradually updated through a process not shown.

[0030] The robot coordinate system is a coordinate system whose origin is a reference point determined at any position on or near the robot 3. Furthermore, although the following describes cases where the robot coordinate system differs from the machine tool coordinate system, it is not limited to this. The robot coordinate system can also be made consistent with the machine tool coordinate system. In other words, the origin or coordinate axis direction of the robot coordinate system can also be consistent with the origin or coordinate axis direction of the machine tool coordinate system.

[0031] Furthermore, the robot coordinate system can switch between two or more coordinate formats for different control axes. More specifically, in the numerical control program, the position and orientation of the control points of robot 3 can be specified using orthogonal coordinates or individual axis coordinates.

[0032] In each axis coordinate form, the position and posture of the control point of robot 3 are specified by a total of 6 real coordinate values, which are composed of the rotation angle values ​​(J1, J2, J3, J4, J5, J6) of the 6 joints of robot 3.

[0033] In orthogonal coordinate form, the position and orientation of the control point of robot 3 are specified by a total of 6 real coordinate values, which consist of 3 coordinate values ​​(X, Y, Z) along the 3 orthogonal coordinate axes and 3 rotation angle values ​​(A, B, C) around each orthogonal coordinate axis.

[0034] Therefore, in the single-axis coordinate system, since the rotation angle of each joint of robot 3 is directly specified, the axis configuration of each arm or wrist of robot 3, or the number of rotations of joints that can rotate more than 360 degrees (hereinafter collectively referred to as the "shape of robot 3"), is determined without discrepancy. In contrast, in the orthogonal coordinate system, since the position and posture of the control points of robot 3 are specified by 6 coordinate values ​​(X, Y, Z, A, B, C), the shape of robot 3 cannot be determined without discrepancy. Therefore, in the robot numerical control program, the shape of robot 3 can be specified by an integer value with a predetermined number of bits, namely the shape value P. Therefore, the position and posture of the control points of robot 3 and the shape of robot 3 are represented by 6 coordinate values ​​(J1, J2, J3, J4, J5, J6) in the single-axis coordinate system, and by 6 coordinate values ​​and 1 shape value (X, Y, Z, A, B, C, P) in the orthogonal coordinate system. Furthermore, for convenience, the morphological value P will also be referred to as the coordinate value below.

[0035] The 3D model memory unit 544 stores data about the robot system model. This robot system model is constructed by arranging the three-dimensional shapes of the simulation machine tool 2, robot 3, and various peripheral objects of machine tool 2 in a virtual space. These peripheral objects include objects located within the operating range of robot 3, such as workpieces that are processed by machine tool 2, workpiece storage containers holding multiple workpieces, pallets, and safety barriers. The motion path generation device 55, described later, generates motion trajectories for the control axes of robot 3 on the robot system model that avoid interference by simulating the robot system model stored in the 3D model memory unit 544.

[0036] The macro variable memory unit 545 stores complex macro variables, which are stored in a state that is associated with robot coordinate values ​​arbitrarily determined by the operator.

[0037] The identification code memory unit 546 stores a complex array of identification codes, which are stored in a state where they are associated with the robot coordinate values ​​that are determined by the operator as the teaching position through a teaching operation (see Figure 9 described later). In this identification code memory unit 546, the robot coordinate values ​​associated with each identification code as the teaching position can be obtained from the coordinate values ​​of the actual robot 3, or from the coordinate values ​​of a virtual robot in a virtual space implemented in a computer (not shown) or a 3D model memory unit 544 connected to the numerical control device 5.

[0038] The machine tool control module 50 includes a program input unit 51, an input analysis unit 52, and a motion control unit 53, which are used to control the motion of the machine tool 2 according to the numerical control program.

[0039] The program input unit 51 reads the numerical control program from the program memory unit 541 and inputs it step by step into the input analysis unit 52.

[0040] For each instruction block, the input analysis unit 52 analyzes the instruction category of the numerical control program input from the program input unit 51 and sends the analysis results to the motion control unit 53 and the motion path generation device 55. More specifically, the input analysis unit 52 sends the instruction category of the instruction block to the motion control unit 53 when it is an instruction for the machine tool 2, and sends the instruction category of the instruction block to the motion path generation device 55 when it is an instruction for the robot 3.

[0041] The motion control unit 53 generates machine tool control signals to control the movement of the machine tool 2 based on the analysis results sent from the input analysis unit 52, and inputs these signals to the actuators driving various axes of the machine tool 2. The machine tool 2 operates in response to the machine tool control signals input from the motion control unit 53, machining a workpiece (not shown). Furthermore, after controlling the movement of the machine tool 2 according to the numerical control program as described above, the motion control unit 53 updates the machine coordinate values ​​stored in the machine coordinate value memory unit 542 with the latest machine coordinate values.

[0042] The motion path generation device 55 generates motion paths for the control axes of the robot 3 based on the numerical control program used to control the motion of the machine tool 2 as described above. More specifically, the motion path generation device 55 includes an interference avoidance path generation unit 56, a model update unit 57, and a data transceiver unit 59.

[0043] Here, the numerical control program can use G codes “G17.4”, “G17.5”, “G17.6” and “G17.7” to make the motion path generation device 55 generate the target motion path of the robot 3, or to start the robot program generated by the robot control device 6 according to the target motion path.

[0044] More specifically, G codes "G17.4" and "G17.7" are instructions to the motion path generation device 55 and the robot control device 6 to perform the following actions: generate the target motion path for the control axis of the robot 3, send the generated target motion path to the robot control device 6, and execute the robot program generated by the robot control device 6 based on the target motion path. Hereinafter, G codes "G17.4" and "G17.7" will also be referred to as motion path generation execution instructions. Furthermore, under G code "G17.4", the target motion path is directly specified in the program (refer to Figure 3 described later) or specified using macro variables stored in the macro variable memory unit 545 (refer to Figure 5 described later). In contrast, under G code "G17.7", the target motion path is specified using an identification code stored in the identification code memory unit 546 (refer to Figure 10 described later).

[0045] Furthermore, G code "G17.5" is an instruction to the motion path generation device 55 to perform the following actions: generate the target motion path for the control axis of robot 3, and send the generated target motion path to robot control device 6 (see Figure 7 described later). Hereinafter, G code "G17.5" will also be referred to as the motion path generation instruction.

[0046] G-code "G17.6" is an instruction to robot control device 6 to perform the following action: execute the robot program generated in robot control device 6 according to the aforementioned target motion path (see Figure 7 described later). Hereinafter, G-code "G17.6" will also be referred to as the motion path execution instruction.

[0047] The model update unit 57 updates the robot system model stored in the 3D model memory unit 544 based on the analysis results of the numerical control program input by the analysis unit 52. More specifically, when the instruction type of the numerical control program is a motion path generation instruction or a motion path generation execution instruction, the model update unit 57 obtains the starting coordinates of the robot 3 and the current machine coordinates of the machine tool 2, and updates the robot system model stored in the 3D model memory unit 544 based on these starting coordinates and current machine coordinates. More specifically, the model update unit 57 updates the robot system model stored in the 3D model memory unit 544 so that the positions of each control axis of the robot 3 in the robot system model are consistent with the starting coordinates, and the positions of each axis of the machine tool 2 in the robot system model are consistent with the current machine coordinates.

[0048] Furthermore, the model update unit 57 obtains the machine coordinate values ​​stored in the machine coordinate value memory unit 542, which are updated progressively according to the numerical control program as described above, and uses them as the current machine coordinate values. Also, the model update unit 57 obtains the robot coordinate values ​​stored in the robot coordinate value memory unit 543, which are updated progressively according to the numerical control program as described above, or the robot coordinate values ​​specified in the numerical control program, and uses them as the starting coordinate values ​​of the robot 3.

[0049] The interference avoidance path generation unit 56 generates the target motion path for the control axis of the robot 3 based on the analysis results of the numerical control program input to the analysis unit 52. More specifically, when the instruction type of the numerical control program is a motion path generation instruction or a motion path generation execution instruction, the interference avoidance path generation unit 56 generates a target motion path on the robot system model that avoids interference between the robot 3 and the machine tool 2 or surrounding objects, and reaches the end point coordinates of the robot 3 from the starting coordinates of the robot 3 as specified by the numerical control program. The generated target motion path is then written to the data transceiver unit 59.

[0050] Furthermore, similar to the model update unit 57, the interference avoidance path generation unit 56 obtains the robot coordinates stored in the robot coordinate memory unit 543 or the robot coordinates specified in the numerical control program as the starting coordinates of the robot 3.

[0051] Furthermore, when an identification code is specified in the numerical control program, the interference avoidance path generation unit 56 obtains the robot coordinate values ​​associated with the specified identification code from the identification code memory unit 546, and generates a target motion path using the obtained robot coordinate values ​​as the teaching position. That is, the interference avoidance path generation unit 56 generates a target motion path on the robot system model that avoids interference and passes through the teaching position.

[0052] The data transceiver unit 59 communicates with the data transceiver unit 69 of the robot control device 6 to send and receive various data, including commands and robot coordinates. More specifically, when the interference avoidance path generation unit 56 writes a target motion path, the data transceiver unit 59 sends commands containing the target motion path to the data transceiver unit 69 of the robot control device 6. Furthermore, when the command type of the numerical control program is a motion path execution command or a motion path generation execution command, after sending the target motion path to the data transceiver unit 69 as described above, the data transceiver unit 59 sends the execution commands of the robot program generated by the robot control device 6 based on the target motion path to the data transceiver unit 69.

[0053] Next, the structure of the robot control device 6 will be described in detail. As shown in Figure 2, the robot control device 6 utilizes the aforementioned hardware configuration to realize various functions such as the memory unit 61, input analysis unit 62, program management unit 63, trajectory control unit 64, kinematic control unit 65, servo control unit 66, and data transceiver unit 69. The robot control device 6 uses these memory unit 61, input analysis unit 62, program management unit 63, trajectory control unit 64, kinematic control unit 65, servo control unit 66, and data transceiver unit 69 to control the movements of the robot 3 according to the instructions sent from the motion path generation device 55 of the numerical control device 5.

[0054] The data transceiver unit 69 inputs the instructions sent from the data transceiver unit 59 of the numerical control device 5 into the input analysis unit 62.

[0055] When the instruction input from the data transceiver unit 69 contains a target motion path, the input analysis unit 62 inputs that target motion path into the program management unit 63. Furthermore, when the instruction input from the data transceiver unit 69 is an execution instruction for the robot program, the input analysis unit 62 inputs the robot program start instruction into the program management unit 63.

[0056] When the target motion path is input from the input analysis unit 62, the program management unit 63 generates a robot program that moves the control axis of the robot 3 along the target motion path and stores it in the memory unit 61.

[0057] Furthermore, after the program management unit 63 generates the robot program based on the previously received target motion path, when a start command for the robot program is input from the input analysis unit 62, it calls the robot program corresponding to the start command from the memory unit 61 and starts it. The program management unit 63 executes the commands described in the started robot program and gradually notifies the trajectory control unit 64 of the movement commands of the robot 3's control axes.

[0058] The trajectory control unit 64 calculates the time sequence data of the control points of the robot 3 in response to the movement command notified by the program management unit 63 and inputs it into the kinematic control unit 65.

[0059] The kinematic control unit 65 calculates the target angles of each joint of the robot 3 from the input time series data and inputs them into the servo control unit 66.

[0060] The servo control unit 66 generates a robot control signal for the robot 3 that realizes the target angle input from the kinematic control unit 65 by performing feedback control on each servo motor of the robot 3, and inputs it into the servo motor of the robot 3.

[0061] Next, referring to Figures 3 to 10, the flow of various signals or information of the numerical control system 1 constructed as described above will be explained.

[0062] Figure 3 shows the first example of a numerical control program. Figure 4 is a timing diagram showing the signal or information flow between the numerical control device 5 and the robot control device 6 when the numerical control device 5 is operated according to the numerical control program illustrated in Figure 3.

[0063] The numerical control program shown in Figure 3 is used to instruct the machine tool 2 to process the workpiece, then instruct the robot 3 to hold the processed workpiece, and finally instruct the machine tool 2 to release the processed workpiece.

[0064] First, the blocks indicated by numbers "N10" to "N19" are instructions for machine tool 2. More specifically, the block indicated by number "N10" is an instruction for setting the coordinate system of machine tool 2, the block indicated by number "N11" is an instruction for rotating the spindle of machine tool 2 by a number of revolutions "1000", the block indicated by number "N12" is an instruction for aligning the spindle of machine tool 2 to the machine coordinate value (X=49.0, Z=5.0) by rapid advance, and the block indicated by number "N13" is an instruction for moving the spindle of machine tool 2 to the machine coordinate value (Z=0.0) at a speed of "2" using linear interpolation. The blocks labeled "N14" to "N16" contain instructions to move the spindle of machine tool 2 sequentially to the machine coordinate values ​​(X=55.0, Z=-3.0), (Z=-10.0), and (X=80.0, Z=-50.0) using linear interpolation. The blocks labeled "N17" to "N18" contain instructions to align the spindle of machine tool 2 sequentially to the machine coordinate values ​​(X=90.0) and (X=100.0, Z=50.0) using rapid traverse. The block labeled "N19" contains instructions to stop the spindle rotation. The machine tool control module 50 controls the operation of machine tool 2 according to these instructions. Furthermore, at the end of the block indicated by “N19”, the latest mechanical coordinate value will be stored in the mechanical coordinate value memory unit 542, that is, the mechanical coordinate value (X=100.0, Z=50.0) will be stored in the routine of the numerical control program shown in Figure 3.

[0065] Next, the blocks indicated by numbers “N20” to “N23” contain instructions for robot 3, which includes tool 32.

[0066] First, in the block indicated by serial number "N20", the G-code "G17.4", which serves as the motion path generation execution instruction, 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. Thereby, the model update unit 57 of the motion path generation device 55 obtains the robot coordinate values ​​stored in the robot coordinate value memory unit 543 as the starting coordinate values, and obtains the machine coordinate values ​​stored in the machine coordinate value memory unit 542 as the current machine coordinate values. Based on these starting coordinate values ​​and current coordinate values, it updates the robot system model stored in the 3D model memory unit 544.

[0067] Subsequently, the interference avoidance path generation unit 56 of the motion path generation device 55 obtains the robot coordinate values ​​stored in the robot coordinate value memory unit 543 as the starting coordinate value, and obtains the robot coordinate values ​​specified by the G code "G17.4", that is, in the example shown in FIG3, the robot coordinate values ​​(J1=-57.0, J2=49.9, J3=-44.1, J4=0.0, J5=-45.8, J6=57.0) as the ending coordinate values. Furthermore, the interference avoidance path generation unit 56 generates a target motion path that avoids interference on the robot system model and reaches the ending coordinate value from the obtained starting coordinate value by simulating the robot system model updated by the model update unit 57.

[0068] Subsequently, the data transceiver 59 of the motion path generation device 55 sends an instruction containing the target motion path generated by the interference avoidance path generation unit 56 to the robot control device 6. The robot control device 6 then generates a robot program based on the received target motion path.

[0069] Subsequently, the data transceiver unit 59 of the motion path generation device 55 sends the execution instructions for the robot program generated in the robot control device 6 to the robot control device 6. Thereby, the robot control device 6 starts the generated robot program and controls the robot 3's movements according to the commands described in the robot program. As a result, the robot coordinates of the robot 3's control axes move from the starting coordinates towards the ending coordinates along the target motion path.

[0070] Next, in the block indicated by number "N21", the robot command generation unit (not shown) of the numerical control device 5 inputs the command "M60" for tool 32. Thereby, the robot command generation unit, through the data transceiver unit 59, sends the command to the robot control device 6 to open the hand of tool 32 mounted on robot 3. In this way, the robot control device 6 maintains the position of the control axis of robot 3 fixed and opens the hand.

[0071] Next, in the block indicated by number "N22", the G-code "G17.4", which serves as the motion path generation execution instruction, is again input into the input analysis unit 52 of the numerical control device 5, and the analysis result is input into the motion path generation device 55. Thereby, the motion path generation device 55 updates the robot system model using the same procedure as in the block indicated by number "N20", and generates a target motion path using 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 endpoint coordinate values, and sends an instruction containing this target motion path to the robot control device 6. Subsequently, the motion path generation device 55 sends the execution instructions for the robot program generated in the robot control device 6 based on this target motion path to the robot control device 6. Thereby, the robot coordinate values ​​of the control axes of the robot 3 move along the target motion path.

[0072] Next, in the block indicated by number "N23", the robot instruction generation unit of the numerical control device 5 inputs the instruction "M61" for tool 32. Thereby, the robot instruction generation unit, through the data transceiver unit 59, sends the closing instruction of the hand mounted on robot 3 to robot control device 6. In turn, robot control device 6 maintains the position of the control axis of robot 3 in a fixed position and closes the hand. Furthermore, the workpiece of machine tool 2 is then held by the hand mounted on robot 3.

[0073] Next, the block indicated by number "N24" contains instructions for machine tool 2. More specifically, the block indicated by number "N24" contains an open instruction for the chuck holding the workpiece in machine tool 2. This causes machine tool 2 to release the workpiece. Therefore, the machined workpiece can then be moved to a predetermined position by robot 3.

[0074] Figure 5 shows the second example of the numerical control program. In this second example, since the blocks numbered "N30" to "N39", "N41", "N43", and "N44" are the same as those numbered "N10" to "N19", "N21", "N23", and "N24" in Figure 3, detailed explanations are omitted. Furthermore, in this second example, only the blocks numbered "N40" and "N42" differ from the first example shown in Figure 3. Moreover, the actions of the machine tool 2 and robot 3 implemented by the numerical control program shown in Figure 5 are almost identical to those in the numerical control program shown in Figure 3.

[0075] The first example shown in Figure 3 illustrates the case where the endpoint coordinates of robot 3 are directly described in the numerical control program when generating the target motion path. In contrast, Figure 5 shows the case where the endpoint coordinates of robot 3 are specified using macro variables “500”~“505” and “510”~“515”.

[0076] Figure 6 is a diagram showing an example of a complex array of macro variables stored in the macro variable memory unit 545. In the example shown in Figure 6, macro variable "500" is associated with the value "-57.0", macro variable "501" is associated with the value "49.9", macro variable "502" is associated with the value "-44.1", macro variable "503" is associated with the value "0.0", macro variable "504" is associated with the value "-45.8", and macro variable "505" is associated with the value "-57.0". Furthermore, macro variable "510" is associated with the value "-59.6", macro variable "511" is associated with the value "56.2", macro variable "512" is associated with the value "-38.1", macro variable "513" is associated with the value "0.0", macro variable "514" is associated with the value "-51.9", and macro variable "515" is associated with the value "59.6". If we follow the second example shown in Figure 5, as shown in Figure 6, by pre-associating the values ​​with each macro variable, we can generate the same target action path as the first example shown in Figure 3.

[0077] Figure 7 shows the third example of a numerical control program. Figure 8 is a timing diagram showing the signal or information flow between the numerical control device 5 and the robot control device 6 when the numerical control device 5 is operated according to the numerical control program illustrated in Figure 7.

[0078] Figure 9 is a diagram showing an example of a complex array of identification codes stored in the identification code memory unit 546. In the example shown in Figure 9, identification code "0" is associated with the current robot coordinate value, that is, with the robot coordinate value stored in the robot coordinate value memory unit 543; identification code "1" is associated with the robot coordinate value at the predetermined first teaching position; identification code "2" is associated with the robot coordinate value at the predetermined second teaching position; identification code "3" is associated with the robot coordinate value at the predetermined third teaching position; identification code "4" is associated with the robot coordinate value at the predetermined fourth teaching position; and identification code "5" is associated with the robot coordinate value at the predetermined fifth teaching position.

[0079] Similar to the numerical control program shown in Figure 3, the numerical control program shown in Figure 7 is a program that causes the robot 3 to hold the finished workpiece after the machine tool 2 has processed it, and causes the machine tool 2 to release the finished workpiece.

[0080] First, in the blocks indicated by numbers "N50" to "N59", the machine tool control module 50 of the numerical control device 5 inputs the instructions for the machine tool 2. Furthermore, since the blocks indicated by numbers "N50" to "N59" are the same as the blocks indicated by numbers "N10" to "N19" in Figure 3, detailed explanations are omitted.

[0081] Next, in the block indicated by serial number "N60", the G code "G17.5" as the motion path generation execution instruction 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. Thereby, the model update unit 57 of the motion path generation device 55 obtains the robot coordinate value associated with the identification code described by the character "I" in the same block (that is, the current robot coordinate value in the example of FIG9) as the starting coordinate value, obtains the robot coordinate value stored in the mechanical coordinate value memory unit 542 as the current robot coordinate value, and updates the robot system model stored in the 3D model memory unit 544 based on these starting coordinate values ​​and current mechanical coordinate values.

[0082] Subsequently, the interference avoidance path generation unit 56 of the motion path generation device 55 obtains the robot coordinates associated with the identification code described by the character "I" in the same block (that is, the current robot coordinates in the example of FIG9) as the starting coordinates, and obtains the robot coordinates associated with the identification code described by the character "J" in the same block (that is, the robot coordinates at the second teaching position in the example of FIG9) as the ending coordinates. Furthermore, the interference avoidance path generation unit 56 generates a target motion path that avoids interference on the robot system model and reaches the ending coordinates from the obtained starting coordinates by simulating the robot system model updated by the model update unit 57.

[0083] Subsequently, the data transceiver 59 of the motion path generation device 55 sends an instruction containing the target motion path generated by the interference avoidance path generation unit 56 and the program number (0001 in the example of FIG7) described by the character "P" in the same block to the robot control device 6. Thereby, the robot control device 6 generates a robot program with the received program number (0001) based on the received target motion path.

[0084] Next, in the block indicated by serial number "N61", the G code "G17.5" as a motion path generation instruction is input into the motion path generation device 55 of the numerical control device 5. Herein, the model update unit 57 of the motion path generation device 55 obtains the robot coordinate value (that is, the robot coordinate value at the second teaching position in the same block) associated with the identification code described by the character "I", as the starting coordinate value, obtains the mechanical coordinate value stored in the mechanical coordinate value memory unit 542 as the current mechanical coordinate value, and updates the robot system model stored in the 3D model memory unit 544 based on these starting coordinate values ​​and current mechanical coordinate values.

[0085] Subsequently, the interference avoidance path generation unit 56 of the motion path generation device 55 obtains the robot coordinate value associated with the identification code described by the character "I" in the same block (that is, the robot coordinate value at the second teaching position in the example of FIG9) as the starting coordinate value, and obtains the robot coordinate value associated with the identification code described by the character "J" in the same block (that is, the robot coordinate value at the fifth teaching position in the example of FIG9) as the intermediate coordinate value, and obtains the robot coordinate value associated with the identification code described by the character "K" in the same block (that is, the robot coordinate value at the first teaching position determined near the workpiece of the machine tool 2 in the example of FIG9) as the ending coordinate value. Furthermore, the interference avoidance path generation unit 56 generates a target motion path on the robot system model that avoids interference and reaches the end point coordinate value from the obtained starting point coordinate value through intermediate coordinate values ​​by simulating the robot system model updated by the model update unit 57.

[0086] Subsequently, the data transceiver 59 of the motion path generation device 55 sends an instruction containing the target motion path generated by the interference avoidance path generation unit 56 and the program number (0001 in the example of FIG. 7) described by the character "P" in the same block to the robot control device 6. Thereby, the robot control device 6 generates a robot program with the received program number (0001) based on the received target motion path. Furthermore, in the example shown in FIG. 7, the program number specified in sequence number "N61" and the program number specified in sequence number "N60" are both "0001". Therefore, in this case, the robot control device 6 adds the robot program generated according to the instruction generated according to sequence number "N61" to the robot program generated according to the instruction generated according to sequence number "N60".

[0087] Next, in the block indicated by number "N62", the robot command generation unit (not shown) of the numerical control device 5 inputs the command "M60" for the hand mounted on the robot 3. In this way, the robot control device 6, using the same procedure as number "N21" in Figure 3, keeps the position of the robot 3's control axis fixed and opens the hand.

[0088] Next, in the block indicated by serial number "N63", the G code "G17.6" as the motion path execution instruction 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. Thereby, the data transceiver unit 59 of the motion path generation device 55 sends the execution instruction for the robot program with program number "0001" generated in the robot control device 6 to the robot control device 6. Thereby, the robot control device 6 starts the robot program with program number "0001" and controls the movement of the robot 3 according to the commands described in the robot program. Thereby, the robot coordinates of the control axis of the robot 3 move from the starting coordinates along the target motion path, passing through the second and fifth taught positions, and towards the first taught position determined near the workpiece of the machine tool 2.

[0089] Next, in the block indicated by number "N64", the robot instruction generation unit of the numerical control device 5 inputs the instruction "M61" for the hand mounted on the robot 3. Thereby, the robot control device 6, using the same procedure as number "N23" in Figure 3, maintains the position of the control axis of the robot 3 in a fixed position and closes the hand. Furthermore, the workpiece of the machine tool 2 is held by the hand mounted on the robot 3.

[0090] Next, similar to number "N24" in Figure 3, the block shown as number "N65" is the open command for the chuck holding the workpiece in machine tool 2. This causes machine tool 2 to release the workpiece. Therefore, the machined workpiece can then be moved to a predetermined position by robot 3.

[0091] Figure 10 shows the fourth example of the numerical control program. In this fourth example shown in Figure 10, since the blocks numbered "N70" to "N79", "N81", "N83", and "N84" are the same as the blocks numbered "N50" to "N59", "N62", "N64", and "N65" in Figure 7, detailed explanations are omitted. Furthermore, in this fourth example shown in Figure 10, only the blocks numbered "N80" and "N82" differ from the third example shown in Figure 7. Moreover, the actions of the machine tool 2 and robot 3 implemented by the numerical control program shown in Figure 10 are almost identical to those of the numerical control program shown in Figure 7.

[0092] In the block indicated by serial number "N80", the G code "G17.7" as the motion path generation execution instruction 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. Thereby, the model update unit 57 of the motion path generation device 55 obtains the robot coordinate value (that is, the current robot coordinate value in the example of FIG9) that is associated with the identification code described by the character "I" in the same block, and uses it as the starting coordinate value. It also obtains the mechanical coordinate value stored in the mechanical coordinate value memory unit 542 as the current mechanical coordinate value, and updates the robot system model stored in the 3D model memory unit 544 based on these starting coordinate values ​​and current mechanical coordinate values.

[0093] Subsequently, the interference avoidance path generation unit 56 of the motion path generation device 55 obtains the robot coordinates associated with the identification code described by the character "I" in the same block (that is, the current robot coordinates in the example of FIG. 9) as the starting coordinates, and obtains the robot coordinates associated with the identification code described by the character "J" in the same block (that is, the robot coordinates at the first teaching position in the example of FIG. 9) as the ending coordinates. Furthermore, the interference avoidance path generation unit 56 generates a target motion path that avoids interference on the robot system model and reaches the ending coordinates from the obtained starting coordinates by simulating the robot system model updated by the model update unit 57.

[0094] Subsequently, the data transceiver 59 of the motion path generation device 55 sends an instruction containing the target motion path generated by the interference avoidance path generation unit 56 to the robot control device 6. The robot control device 6 then generates a robot program based on the received target motion path.

[0095] Subsequently, the data transceiver unit 59 of the motion path generation device 55 sends the execution instructions for the robot program generated in the robot control device 6 to the robot control device 6. Thereby, the robot control device 6 starts the generated robot program and controls the movement of the robot 3 according to the commands described in the robot program. As a result, the robot coordinates of the control axes of the robot 3 move from the starting coordinates towards the first taught position along the target motion path.

[0096] Next, in the block indicated by number "N82", the G code "G17.7" as the motion path generation execution instruction is again input into the input analysis unit 52 of the numerical control device 5, and the analysis result is input into the motion path generation device 55. Thereby, the motion path generation device 55 updates the robot system model using the same procedure as in the block indicated by number "N80", and generates a target motion path using the robot coordinate values ​​associated with the identification code described by character "J" (i.e., the robot coordinate values ​​at the second teaching position in the example of Figure 9) as the endpoint coordinate values, and sends an instruction containing this target motion path to the robot control device 6. Subsequently, the motion path generation device 55 sends the execution instructions for the robot program generated in the robot control device 6 based on this target motion path to the robot control device 6. Thereby, the robot coordinate values ​​of the control axis of the robot 3 move from the first teaching position along the target motion path towards the second teaching position set near the workpiece of the machine tool 2.

[0097] This disclosure is not limited to the above-described embodiments and may include various modifications and variations. For example, the above-described embodiment illustrates the implementation of the motion path generation device 55 or the 3D model memory unit 544 by a computer program installed on the numerical control device 5, but this disclosure is not limited thereto. The motion path generation device 55 or the 3D model memory unit 544 may also be implemented by a computer program installed on a server that is communicatively connected to both the numerical control device 5 and the robot control device 6.

[0098] 1: Numerical Control System 2: Machine Tools 3: Robot 5: Numerical control device 6: Robot control device 31: Forearm end 32: Tools 50: Machine Tool Control Module 51: Program Input Section 52, 62: Input Analysis Department 53: Motion Control Department 54, 61: Memory Department 55: Motion path generation device 56: Interference Avoidance Path Generation Department 57: Model Update Department 59: Data Receiving and Dispatching Department (Communications Department) 63: Programming Management Department 64: Track Control Department 65: Kinematic Control Department 66: Servo Control Unit 69: Data Receiving and Dispatch Department 541: Program Memory Department 542: Mechanical coordinate value memory unit 543: Robot Coordinate Value Memory Department 544: 3D Model Memory Department 545: Macro Variable Memory Department 546: Identification Code Memory Department CNC: Numerical Control System CPU: Central Processing Unit HDD: Hard Disk Drive P: Morphological value RAM: Random Access Memory SSD: Solid State Drive

Claims

1. A motion path generation apparatus that generates motion paths for control axes of a robot positioned near a machine tool according to a numerical control program, the numerical control program including a machine tool instruction block for controlling the movement of the machine tool and a robot instruction block for controlling the movement of the robot, the motion path generation apparatus comprising: a model updating unit that obtains the starting coordinates of the control axis and the machine tool's mechanical coordinates according to the numerical control program, and updates a robot system model composed of three-dimensional models of the robot, the machine tool, and surrounding objects of the machine tool arranged in a virtual space according to the starting coordinates and the machine coordinates; an interference avoidance path generation unit that generates a target motion path that avoids interference in the robot system model and reaches the ending coordinates of the control axis specified by the robot instruction block from the starting coordinates; and a communication unit that sends instructions containing the target motion path to a robot control device, and controls the movement of the robot by the robot control device; The aforementioned model update unit obtains the latest value of the coordinates of the aforementioned control axis, which changes gradually under the control of the aforementioned robot control device, and uses it as the aforementioned starting coordinate value.

2. The motion path generation device of claim 1 further includes an identification code memory unit, which stores a complex array of identification codes associated with the coordinate values ​​of the control axis. The interference avoidance path generation unit generates the target motion path, which avoids interference in the robot system model and passes through coordinate values ​​associated with the identification codes specified by the numerical control program.

3. The motion path generation device as claimed in claim 1 or 2, wherein the aforementioned surrounding objects include at least one of a workpiece, a workpiece storage container, a pallet, and a safety barrier.

4. A numerical control device comprising: a program memory unit for storing the aforementioned numerical control program; and an action path generation device as requested in claim 1 or 2.

5. A numerical control system comprising: a motion path generation device that generates motion paths for control axes of a robot disposed near a machine tool according to a numerical control program, the numerical control program including a machine tool instruction block for controlling the motion of the machine tool and a robot instruction block for controlling the motion of the robot; and a robot control device communicatively connected to the motion path generation device and controlling the motion of the robot according to instructions sent from the motion path generation device; the motion path generation device comprising: a model updating unit that obtains the starting coordinate values ​​of the control axes and the machine tool's mechanical coordinate values ​​according to the numerical control program, and updates a robot system model composed of three-dimensional models of the robot, the machine tool, and surrounding objects of the machine tool arranged in a virtual space according to the starting coordinate values ​​and the machine tool's mechanical coordinate values; The system includes an interference avoidance path generation unit that generates a target motion path that avoids interference in the robot system model and reaches the endpoint coordinates of the control axis specified by the robot instruction block from the starting coordinates; a communication unit that sends an instruction containing the target motion path to the robot control device and controls the robot's actions through the robot control device; a model update unit that obtains the latest value of the coordinates of the control axis, which changes gradually under the control of the robot control device, as the starting coordinates; and a robot control device that generates a robot program based on the target motion path.

6. The numerical control system of claim 5, wherein after the aforementioned communication unit sends the aforementioned target motion path to the aforementioned robot control device, it sends the execution instructions for the aforementioned robot program to the aforementioned robot control device, and the aforementioned robot control device starts the aforementioned robot program in response to receiving the aforementioned execution instructions.

7. A computer program for instructing a computer storing a numerical control program to execute the following steps, the numerical control program including a machine tool instruction block for controlling the movement of a machine tool and a robot instruction block for controlling the movement of a robot positioned near the machine tool, the steps including: obtaining the starting coordinates of the control axis of the robot and the mechanical coordinates of the machine tool according to the numerical control program; updating a robot system model composed of three-dimensional models of the robot, the machine tool, and surrounding objects of the machine tool in a virtual space according to the starting coordinates and the mechanical coordinates; generating a target motion path, the target motion path avoiding interference in the robot system model and reaching the ending coordinates of the control axis specified by the robot instruction block from the starting coordinates; and sending an instruction containing the target motion path to a robot control device, and controlling the movement of the robot by the robot control device; Furthermore, the aforementioned computer program instructs the computer to obtain the latest coordinate values ​​of the aforementioned control axis, which gradually change under the control of the aforementioned robot control device, and use them as the aforementioned starting coordinate values.

Citation Information

Patent Citations

  • Robot off-line programming system

    JP2010218036A

  • Method and apparatus for managing robot program

    WO2020164030A1