Programming device, programing method, and program

JPWO2024142289A5Pending Publication Date: 2025-09-05
View PDF 0 Cites 0 Cited by

Patent Information

Application Number
JP2024567066
Authority / Receiving Office
JP · JP
Patent Type
Applications
Filing Date
2025-03-21
Publication Date
2025-09-05

AI Technical Summary

Technical Problem

Existing robot control systems face challenges in efficiently converting operation commands into programs due to large data volumes and the complexity of motion trajectories, leading to a high number of teaching points that increase calculation time and data storage requirements.

Method used

A programming device and method that generates trajectory information for a robot's motion trajectory as a program, using a first trajectory information generation unit, teaching point generation unit, and program generation unit to create a program with reduced teaching points by adding points until error tolerance is met, allowing for real-time control and reduced data storage.

Benefits of technology

This approach reduces the number of teaching points needed, shortens the time to generate robot programs, and ensures accurate reproduction of robot motions with fewer data points, improving operational efficiency and reducing the complexity of complex motion trajectories.

✦ Generated by Eureka AI based on patent content.
Patent Text Reader

Abstract

It is desired to further reduce the number of teaching points in a program that moves a robot. Provided is a programming device that generates trajectory information, which indicates a trajectory of movement of a tip point of a robot, as a program. The programming device comprises: a first trajectory information generation unit that generates first trajectory information indicating a trajectory of movement of the tip point of the robot, on the basis of a movement command for the robot; a teaching point generation unit that generates a teaching point on the trajectory of the first trajectory information; a program generation unit that generates a program of the first trajectory information in which the teaching point has been generated; a second trajectory information generation unit that acquires second trajectory information indicating a trajectory of movement of the tip point of the robot moved by the program; an error calculation unit that calculates an error between the first trajectory information and the second trajectory information; and a teaching point addition unit that adds a teaching point on the trajectory of the first trajectory information until the error becomes equal to or less than a tolerance value.
Need to check novelty before this filing date? Find Prior Art

Description

Programming device, programming method and program

[0001] The present disclosure relates to a programming device, a programming method, and a program.

[0002] Conventionally, robots are controlled not by a dedicated control device (hereinafter also referred to as a "robot control device") but by an external control device. When controlling a robot by an external control device, for example, the robot can be controlled by sending operation commands from the external control device to the robot control device at short intervals. In such robot control, not only is the robot controlled in real time by the external control device, but also there are cases where a robot operation that has been executed once under the control of the external control device is repeatedly executed under the control of the robot control device. In such cases, the robot control device needs to store all of the operation commands sent at short intervals from the external control device, resulting in a huge amount of data.

[0003] To solve this problem, a method has been proposed in which trajectory information indicating the robot's motion trajectory is stored as a program. For example, Patent Document 1 describes a robot system that learns the error between the ideal trajectory when controlled to pass through specific intermediate teaching points and the actual trajectory, and adds teaching points at positions that result in the target trajectory, thereby realizing the target trajectory.

[0004] International Publication No. 2022 / 176761

[0005] The motion commands sent from an external control device contain a large amount of data, making it difficult to convert them into a program. Even if they can be converted into a program, as in the case of Patent Document 1, the number of teaching points in the program becomes enormous. In particular, the robot system of Patent Document 1 uses predictive teaching, which means that as the motion trajectory becomes more complex, it takes a long time to calculate intermediate points (teaching points).

[0006] Therefore, it is desirable to reduce the number of teaching points in a program for operating a robot.

[0007] The programming device disclosed herein is a programming device that generates trajectory information indicating the movement trajectory of the tip point of a robot as a program, and includes: a first trajectory information generation unit that generates first trajectory information indicating the movement trajectory of the tip point of the robot based on a robot movement command; a teaching point generation unit that generates teaching points on the trajectory of the first trajectory information; a program generation unit that generates a program of the first trajectory information from which the teaching points have been generated; a second trajectory information generation unit that acquires second trajectory information indicating the movement trajectory of the tip point of the robot operated by the program; an error calculation unit that calculates the error between the first trajectory information and the second trajectory information; and a teaching point addition unit that adds teaching points on the trajectory of the first trajectory information until the error is equal to or less than an allowable value.

[0008] The programming method disclosed herein is a programming method for generating trajectory information indicating the movement trajectory of the tip point of a robot as a program, and includes the steps of generating first trajectory information indicating the movement trajectory of the tip point of the robot based on a robot movement command; generating teaching points on the trajectory of the first trajectory information; generating a program for the first trajectory information in which the teaching points have been generated; acquiring second trajectory information indicating the movement trajectory of the tip point of the robot operated by the program; calculating the error between the first trajectory information and the second trajectory information; and adding teaching points on the trajectory of the first trajectory information until the error is equal to or less than an allowable value.

[0009] The program disclosed herein causes a computer to execute a programming method including the steps described in the above programming method.

[0010] 1 is a configuration diagram of a robot control system 1 according to an embodiment of the present disclosure. FIG. 1 is a block diagram showing the functional configuration of a robot control device 4. FIG. 1 is a block diagram showing the functional configuration of a programming unit 150. FIG. 2 is a diagram showing a process of generating teaching points in first trajectory information. FIG. 3 is a diagram showing a process of generating teaching points in the first trajectory information. FIG. 4 is a diagram showing a process of generating teaching points in the first trajectory information. FIG. 5 is a diagram showing a process of generating teaching points in the first trajectory information. FIG. 6 is a diagram showing a process of generating teaching points in the first trajectory information. FIG. 7 is a diagram showing a process of generating teaching points in the first trajectory information. FIG. 8 is a diagram showing a process of approximating second trajectory information to the first trajectory information. FIG. 9 is a diagram showing a process of approximating second trajectory information to the first trajectory information. FIG. 10 is a diagram showing a process of approximating second trajectory information to the first trajectory information. FIG. 11 is a flowchart showing the steps of a programming process for first trajectory information executed by a program management unit 15. FIG. 12 is a flowchart showing the steps of a programming process for first trajectory information executed by a program management unit 15.

[0011] A programming device, a programming method, and a program according to one aspect of the present disclosure will be described below. Fig. 1 is a configuration diagram of a robot control system 1 according to one embodiment of the present disclosure. Fig. 2 is a block diagram showing the functional configuration of a robot control device 4. Fig. 3 is a block diagram showing the functional configuration of a programming unit 150.

[0012] 1, a robot control system 1 according to an embodiment includes a numerical control device 2 that controls a machine tool 3, a robot control device 4, and a robot 5. In the robot control system 1, the numerical control device 2, the robot control device 4, and the robot 5 are each connected via communication lines (indicated by solid black lines in the figure).

[0013] The numerical control device 2 generates machine tool command signals and robot command signals as commands for the machine tool 3 in accordance with the numerical control program, and transmits these machine tool command signals and robot command signals to the machine tool 3 and robot 5, respectively. When controlling the robot 5 in real time, the numerical control device 2 of the embodiment transmits robot command signals at short intervals (e.g., 40 msec) to the robot control device 4. When controlling the robot 5 via the robot control device 4, the numerical control device 2 serves as an external control device. In other words, the numerical control device 2 is a control device (second control device) different from the robot control device 4 (described later) that directly controls the robot.

[0014] The machine tool 3 processes a workpiece (not shown) in response to a machine tool command signal transmitted from the numerical control device 2. The machine tool 3 is, for example, a lathe, a drilling machine, a milling machine, a grinding machine, a laser processing machine, an injection molding machine, or the like, but is not limited to these.

[0015] The robot controller 4 is a controller (first controller) that directly controls the operation of the robot 5. The robot controller 4 is communicably connected to the numerical controller 2, and controls the operation of the robot 5 in response to a robot command signal transmitted from the numerical controller 2. The configuration of the robot controller 4 will be described later.

[0016] The robot 5 is provided near the machine tool 3 and operates under the control of the robot control device 4. The robot 5 performs a predetermined task on a workpiece being machined inside the machine tool 3, such as a lathe. The robot 5 is, for example, an articulated robot. A tool 5b for gripping, machining, and inspecting the workpiece is attached to an arm tip 5a of the robot 5. In the embodiment, an example will be described in which the robot 5 is a six-axis articulated robot, but the number of joints of the robot 5 is not limited to this.

[0017] The numerical control device 2 and the robot control device 4 are computers whose hardware resources include, for example, a processing means such as a CPU (Central Processing Unit), auxiliary storage means such as an HDD (Hard Disk Drive) or SSD (Solid State Drive) for storing various computer programs, main storage means such as a RAM (Random Access Memory) for temporarily storing data when the processing means executes the computer programs, operation means such as a keyboard or mouse for an operator to input various instructions and information, and display means such as a display for displaying various information. The numerical control device 2 and the robot control device 4 are configured to be able to send and receive various signals to and from each other via, for example, a wired LAN.

[0018] Next, the configuration of the robot control device 4 will be described. As shown in Fig. 2, the robot control device 4 uses the above hardware resources to realize various functions, such as a memory unit 11, a data transmission / reception unit 12, an analysis unit 13, a robot operation command generation unit 14, a program management unit 15, a trajectory control unit 16, a kinematics control unit 17, and a servo control unit 18. Specifically, the robot control device 4 controls the operation of the robot 5 based on various command signals transmitted from the numerical control device 2 by using the memory unit 11, the data transmission / reception unit 12, the analysis unit 13, the robot operation command generation unit 14, the program management unit 15, the trajectory control unit 16, the kinematics control unit 17, and the servo control unit 18.

[0019] The memory unit 11 stores various programs for operating the robot, information indicating the positions of various axes of the machine tool 3, information regarding the positions and postures of control points of the robot, information regarding teaching points of the robot, etc. The data transmitter / receiver unit 12 receives robot command signals transmitted from the numerical control device 2. The data transmitter / receiver unit 12 also outputs the received robot command signals to the analysis unit 13 one by one. The analysis unit 13 analyzes the robot command signals input from the data transmitter / receiver unit 12. The analysis unit 13 also outputs the analysis results to the robot operation command generation unit 14.

[0020] The robot operation command generation unit 14 generates a robot operation command (hereinafter also referred to as a "operation command") corresponding to the robot command signal based on the analysis result of the robot command signal input from the analysis unit 13. The robot operation command generation unit 14 outputs the generated operation command to the program management unit 15. Note that the robot command signal is transmitted from the numerical control device 2 at short intervals. Therefore, the robot operation command generation unit 14 also generates operation commands at the same intervals and outputs them to the program management unit 15.

[0021] The program management unit 15 receives operation commands from the robot operation command generation unit 14 and sequentially executes the operation commands in real time. The program management unit 15 generates an operation plan for the robot 5 in accordance with the operation commands and outputs the plan to the trajectory control unit 16. This makes it possible to control the operation of the robot 5 in real time. Furthermore, for example, when repeating an operation of the robot 5 that has been executed once, the program management unit 15 operates the robot 5 based on a program (described below) of first trajectory information stored in the memory unit 11.

[0022] The program management unit 15 includes a programming unit (programming device) 150. The programming unit 150 generates, as a program, trajectory information indicating the movement trajectory of the tip point of the robot 5, based on a robot command signal transmitted from the numerical control device 2. Furthermore, when the program management unit 15 operates the robot 5 according to a program generated by the programming unit 150, it generates a movement plan based on the robot trajectory information described in the program, and outputs the plan to the trajectory control unit 16. The function of the programming unit 150 will be described in detail later.

[0023] When the motion plan is input from the program management unit 15, the trajectory control unit 16 calculates time-series data of the control points of the robot 5 and outputs it to the kinematics control unit 17. The kinematics control unit 17 calculates the target angles of each joint of the robot 5 from the input time-series data and outputs it to the servo control unit 18.

[0024] The servo control unit 18 generates robot control signals for the robot 5 by feedback controlling each servo motor of the robot 5 so as to realize the target angle input from the kinematics control unit 17, and inputs these signals to the servo motors of the robot 5. As a result, the robot 5 operates in accordance with the operation plan generated by the program management unit 15.

[0025] Next, the programming unit 150 will be described. Based on a robot command signal transmitted from the numerical control device 2, the programming unit 150 generates trajectory information indicating the movement trajectory of the tip of the robot 5 as a program, and stores the program in the storage unit 11. This program is used when the robot 5 is directly controlled by the robot control device 4, rather than by the numerical control device 2. In this embodiment, the tip of the robot 5 is, for example, the arm tip 5a of the robot 5 (see FIG. 1 ).

[0026] As shown in FIG. 3, the programming unit 150 includes a first trajectory information generating unit 151, a teaching point generating unit 152, a program generating unit 153, a second trajectory information generating unit 154, an error calculating unit 155, and a teaching point adding unit 156. Below, the processing executed by each unit constituting the programming unit 150 and specific examples thereof will be described with reference to the drawings. FIGS. 4A to 4G are diagrams showing the process of generating teaching points for the first trajectory information. FIGS. 5A to 5C are diagrams showing the process of approximating the second trajectory information to the first trajectory information. Processing such as generating a virtual straight line for the trajectory information and generating teaching points is executed in the virtual space of the storage unit 11, for example.

[0027] The first trajectory information generation unit 151 records the movement commands generated by the robot movement command generation unit 14 until the movement of the robot 5 is completed. Then, the first trajectory information generation unit 151 generates three-dimensional first trajectory information indicating the movement trajectory (including the posture) of the tip point of the robot 5 based on the stored movement commands of the robot 5. Specifically, the first trajectory information generation unit 151 acquires a trajectory (sequence of points) DL of the tip point of the robot 5 at regular time intervals based on the stored movement commands, as shown in Fig. 4A. In Fig. 4A, the size and spacing of the points are depicted schematically to facilitate understanding.

[0028] In the embodiment, the three-dimensional trajectory information (first trajectory information, second trajectory information) is described as a two-dimensional curve. The posture of the tip point of the robot 5 is determined by, for example, the rotation angle of the shaft that drives the arm tip 5 a of the robot 5 (see FIG. 1 ), and changes continuously from the start point to the end point of the motion trajectory.

[0029] Then, the first trajectory information generator 151 generates a spline curve (spline function) SC that passes through the acquired trajectory, as shown in Fig. 4B. Hereinafter, the curve that indicates the movement trajectory of the tip point of the robot shown in Fig. 4B will also be referred to as "first trajectory information" or "first trajectory information LO1." Note that the movement trajectory may include not only curved portions but also straight portions, but in this specification they will be collectively referred to as "curves."

[0030] The teaching point generation unit 152 generates teaching points on the trajectory of the first trajectory information. Specifically, as shown in FIG. 4C , the teaching point generation unit 152 sets a start point p1 and an end point p2 on the first trajectory information LO1, and further generates a virtual line L1 between the start point p1 and the end point p2 as shown in FIG. 4D . The teaching point generation unit 152 then determines whether there is a point that is the farthest from the line L1 and whose distance from the line L1 is equal to or greater than a threshold value. If there is a corresponding point, the teaching point generation unit 152 generates a teaching point t1 at that point as shown in FIG. 4E . The distance threshold used as a guide for the above determination is set, for example, by an operator through an operation unit (not shown).

[0031] When a teaching point is generated on the first trajectory information (when a teaching point is established), the teaching point generation unit 152 further generates a new virtual line L2 between the start point p1 and the teaching point t1, as shown in FIG. 4F , and generates a new virtual line L3 between the teaching point t1 and the end point p2. The teaching point generation unit 152 then determines whether there is a point whose distance from each line is equal to or greater than a threshold and is the farthest from the other lines. If such a point exists, the teaching point generation unit 152 generates a teaching point at that point. FIG. 4G shows an example in which teaching point t2 is generated at the point whose distance from line L2 is equal to or greater than a threshold and is the farthest from the other lines, and teaching point t3 is generated at the point whose distance from line L3 is equal to or greater than a threshold. The teaching point generation unit 152 repeats the above process until there are no more points whose distance from the lines is equal to or greater than a threshold.

[0032] 4G, when two or more teaching points are generated between the start point and the end point, the teaching point generation unit 152 not only generates virtual straight lines between the start point and the end point and the teaching points adjacent to each of them, but also generates virtual straight lines between adjacent teaching points on the curve. When there is no longer a point whose distance from the straight line is equal to or greater than the threshold and which is the farthest from the straight line (when no teaching point exists), the teaching point generation unit 152 ends the process of generating teaching points.

[0033] In the example shown in Figure 4G, the teaching point generation unit 152 generates virtual straight lines (not shown) between the start point p1 and the teaching point t2, between the teaching points t2 and t1, between the teaching points t1 and t3, and between the teaching point t3 and the end point p2, and determines whether there is a point whose distance from each of the straight lines is equal to or greater than a threshold and which is the farthest from the other straight lines. In the example shown in Figure 4G, it is assumed that a new teaching point was not established based on the above straight lines generated in the first trajectory information. In this embodiment, the curve shown in Figure 4G is the first trajectory information from which teaching points were initially generated.

[0034] 3 , the program generation unit 153 generates a program for the first trajectory information in which teaching points have been generated or added, or generates a program for the first trajectory information in which the distance error is within an allowable value. The program generation unit 153 generates a program for the first trajectory information using an operation command for making the tip point of the robot 5 pass through the positions of the teaching points. Here, the operation command for making the tip point of the robot 5 pass through the positions of the teaching points is an instruction for creating a program that passes through the positions of all teaching points on the trajectory, and for example, a spline interpolation operation instruction may be used.

[0035] The program management unit 15 operates the robot 5 based on the program of the first trajectory information generated by the program generation unit 153. The operation of the robot 5 is executed via the kinematics control unit 17 and the servo control unit 18 by outputting the operation plan generated by the program management unit 15 to the trajectory control unit 16. The process in the program generation unit 153 for generating the program of the first trajectory information having teaching points on the trajectory is repeatedly executed by the teaching point addition unit 156 (described later) every time a teaching point is added.

[0036] The second trajectory information generating unit 154 acquires second trajectory information indicating the movement trajectory of the tip point of the robot 5 operated by the program of the first trajectory information in the program managing unit 15. In the second trajectory information generating unit 154, the process of acquiring the second trajectory information is repeatedly executed every time a teaching point is added to the first trajectory information in the teaching point adding unit 156 (described later).

[0037] The error calculation unit 155 calculates the error between the first trajectory information and the second trajectory information. FIG. 5A is a diagram in which the curve of the second trajectory information is superimposed on the curve of the first trajectory information. In FIG. 5A, the solid line indicates the curve of the first trajectory information LO1. The dashed line indicates the curve of the second trajectory information LO2 when the robot 5 is actually operated. The error calculation unit 155 calculates the error e between the first trajectory information LO1 and the second trajectory information LO2, for example, in the section between the teaching point t3 and the end point p2 shown in FIG. 5A. In addition, the error calculation unit 155 calculates the error between the first trajectory information LO1 and the second trajectory information LO2 in the sections between the starting point p1 and the teaching point t2, between the teaching points t2 and t1, and between the teaching points t1 and t3.

[0038] The error calculated by the error calculation unit 155 includes not only the error in the distance between the two curves but also the error in the attitude. The error in the attitude is the error in the three-dimensional coordinate space of the two curves. As shown in the flowchart (step S19 and subsequent steps) described later, the error calculation unit 155 calculates the error in the attitude of the two curves when the error in the distance between the two curves is equal to or less than the allowable value.

[0039] The error calculation unit 155 can use, for example, the following method to calculate the error. First, the curves of the two pieces of trajectory information are each projected onto the X plane to create a two-dimensional (X-Y) curve. Then, the two two-dimensional curves are compared, and the difference between a specific Y-axis value and the Z-axis value, as well as the difference in the wrp angle at that position, are compared. This process is performed not only on the X plane, but also on the Y plane and the Z plane. In addition, the curve may be divided at the positions of the teaching points, and a straight line connecting the start point and end point of the divided curve and a plane on which the farthest point from that straight line is located may be calculated, and the error between the curves of the two pieces of trajectory information may be calculated relative to that plane. Alternatively, points that divide the curves of the two pieces of trajectory information into equal parts may be set on each curve, and the distance between the points on the two curves may be calculated as the error between the curves.

[0040] The teaching point adding unit 156 determines whether the distance or orientation error calculated by the error calculating unit 155 is equal to or smaller than the allowable value. The allowable value for the distance or orientation error is input to the program managing unit 15 in advance by the operator. If there is a section where the distance or orientation error exceeds the allowable value, for example, if the distance error e exceeds the allowable value in the section between teaching point t3 and end point p2 of the first trajectory information LO1 shown in FIG. 5B , the teaching point adding unit 156 adds a teaching point tX to the point (position) where the error e is the largest. If the distance error e also exceeds the allowable value in other sections, the teaching point adding unit 156 adds a teaching point to at least one position in the sequence of points (see FIG. 4A ) that formed the first trajectory information. Although not shown, the teaching point adding unit 156 adds a teaching point to the point where the orientation error is the largest in the first trajectory information LO1. After the teaching point adding unit 156 adds the teaching point, the program generating unit 153 generates a program for the first trajectory information to which the teaching point has been added.

[0041] The teaching point adding unit 156 repeats the process of adding teaching points to the trajectory of the first trajectory information until the error in distance or orientation becomes equal to or less than the tolerance. Each time the teaching point adding unit 156 adds a teaching point, the error in distance or orientation becomes smaller. This allows the second trajectory information to approach the first trajectory information. On the other hand, if the teaching point adding unit 156 determines that the error in distance or orientation is equal to or less than the tolerance, the program of the first trajectory information is stored in the storage unit 11 as a program of trajectory information that indicates the movement trajectory of the tip point of the robot 5, as will be described later.

[0042] As described above, the program generation unit 153 generates a program of the first trajectory information to which teaching points have been added by the teaching point addition unit 156. The program management unit 15 operates the robot 5 based on the program of the first trajectory information newly generated by the program generation unit 153. The second trajectory information generation unit 154 acquires second trajectory information indicating the movement trajectory of the tip point of the robot 5 operated by the newly created program of the first trajectory information. Note that when the robot 5 is operated based on the program of the first trajectory information to which teaching points have been added, the curve of the second trajectory information changes as a whole, not just the portion to which the teaching points have been added. The error calculation unit 155 calculates the error in distance or posture between the first trajectory information and the second trajectory information. Furthermore, the teaching point addition unit 156 determines whether the error in distance or posture is equal to or less than a tolerance.

[0043] The programming unit 150 repeats the process of adding teaching points to the trajectory of the first trajectory information described above in the teaching point adding unit 156 until it is determined that the error in distance or orientation is equal to or less than the tolerance. As a result, for example, as shown in Fig. 5C , the error in distance or orientation between the first trajectory information LO1 and the second trajectory information LO2 can be kept equal to or less than the tolerance in each section. The program of the first trajectory information shown in Fig. 5C is stored in the storage unit 11 by the program management unit 15 as a program of trajectory information that indicates the motion trajectory of the tip point of the robot 5.

[0044] Next, a specific example of the programming process for the first trajectory information in the embodiment will be described. Figures 6 and 7 are flowcharts showing the steps of the programming process for the first trajectory information executed by the program management unit 15. Prior to the programming process in the embodiment, the program management unit 15 generates an operation command based on a robot command signal transmitted from the numerical control device 2, and operates the robot 5 according to this operation command.

[0045] 6, the first trajectory information generation unit 151 records the operation command generated by the robot operation command generation unit 14 until the operation of the robot 5 is completed. Then, the first trajectory information generation unit 51 generates first trajectory information indicating the operation trajectory of the tip point of the robot 5 based on the operation command of the robot 5.

[0046] In step S12, the teaching point generating unit 152 generates teaching points on the trajectory of the first trajectory information based on the threshold value.

[0047] In step S13, the program generation unit 153 generates a program for the first trajectory information in which the teaching points have been generated or added.

[0048] In step S14, the program management unit 15 operates the robot 5 based on the program of the first trajectory information.

[0049] In step S15, the second trajectory information generating unit 154 acquires second trajectory information indicating the movement trajectory of the tip point of the robot 5 operated according to the program of the first trajectory information.

[0050] In step S16, the error calculation unit 155 calculates the error in distance between the first trajectory information and the second trajectory information.

[0051] In step S17, the teaching point adding unit 156 determines whether the distance error is equal to or less than the allowable value. If the teaching point adding unit 156 determines in step S17 that the distance error is equal to or less than the allowable value, the process proceeds to step S19 (see FIG. 7). On the other hand, if the teaching point adding unit 156 determines in step S17 that the distance error exceeds the allowable value, the process proceeds to step S18.

[0052] In step S18 (step S17: NO), the teaching point adding unit 156 adds the teaching point to the first trajectory information. After step S18, the process returns to step S13, and the processes of steps S13 to S17 described above are performed based on the first trajectory information to which the teaching point has been added. In step S17, the teaching point adding unit 156 repeatedly executes the process of adding the teaching point to the trajectory of the first trajectory information until the distance error becomes equal to or less than the allowable value.

[0053] In step S19 shown in FIG. 7 (step S17: YES), the program generation unit 153 generates a program (hereinafter also referred to as a "correction program") for the first trajectory information in which the distance error is equal to or less than the allowable value.

[0054] In step S20, the program management unit 15 operates the robot 5 based on the correction program for the first trajectory information.

[0055] In step S21, the second trajectory information generating unit 154 acquires second trajectory information indicating the movement trajectory of the tip point of the robot 5 operated according to the correction program for the first trajectory information.

[0056] In step S22, the error calculation unit 155 calculates the attitude error between the first trajectory information in which the distance error is equal to or less than the allowable value and the second trajectory information acquired in step S21.

[0057] In step S23, the teaching point adding unit 156 determines whether the attitude error is equal to or less than the allowable value. If the teaching point adding unit 156 determines in step S23 that the attitude error is equal to or less than the allowable value, the processing of this flowchart ends. On the other hand, if the teaching point adding unit 156 determines in step S23 that the attitude error exceeds the allowable value, the processing proceeds to step S24.

[0058] In step S24 (step S23: NO), the teaching point adding unit 156 adds the teaching point to the first trajectory information. After step S24, the process returns to step S19. Thereafter, the processes of steps S20 to S23 described above are performed based on the first trajectory information to which the teaching point has been added. In step S23, the teaching point adding unit 156 repeatedly executes the process of adding teaching points to the trajectory of the first trajectory information until the error in the attitude becomes equal to or less than the allowable value. If it is determined in step S23 that the error in the attitude is equal to or less than the allowable value, the process of this flowchart ends.

[0059] The robot control device 4 according to the above-described embodiment has the following advantages, for example. The robot control device 4 includes a programming unit 150 that compares first trajectory information generated based on operation commands from the external numerical control device 2 with second trajectory information that is the trajectory of the robot operated according to a program of the first trajectory information, and adds teaching points to the first trajectory information until the error in the distance and posture between the first trajectory information and the second trajectory information is within an allowable value. This allows the robot control device 4 to generate a program of the first trajectory information with fewer teaching points, which has the same trajectory (including posture) as when the robot is controlled in real time according to operation commands from the numerical control device 2.

[0060] The program generator 153 generates a program for the first trajectory information using a motion command that causes the tip point of the robot to pass through the position of the teaching point. This eliminates the need for the work of setting a target trajectory with a point that is not on the ideal trajectory as an intermediate point and learning in advance the error that occurs when controlling the robot, as in Patent Document 1. Therefore, even when the path of the robot's motion trajectory is complex, there is no need for extensive learning work in advance, and the robot program can be generated in a shorter time.

[0061] The first trajectory information generated by the first trajectory information generating unit 151 is made up of a sequence of points indicating the position of the tip point of the robot. Therefore, when the program of the first trajectory information generated by the program generating unit 153 is executed, the behavior of the robot when controlled by the numerical control device 2 can be reproduced more faithfully.

[0062] The teaching point adding unit 156 adds a teaching point to at least one position of the sequence of points that is the source of the first trajectory information (see FIG. 4A ). Therefore, compared to adding teaching points at positions away from the curve as in Patent Document 1, the trajectory when the robot is actually operated can be made closer to the trajectory of the first trajectory information with a smaller number of teaching points.

[0063] The program generation unit 153 generates a program for the first trajectory information based on the teaching points generated on the trajectory of the first trajectory information. Therefore, by applying a technique such as spline interpolation to the teaching points on the trajectory in the program generation unit 153, it is possible to generate a program that reproduces movements that are closer to the actual movements of the robot.

[0064] The first trajectory information generator 151 obtains the operation command for the robot 5 from a numerical control device 2 (second control device) that is different from the robot control device 4 (first control device) that directly controls the robot. Therefore, when it is desired to repeat an operation of the robot that has been executed once, the robot control device 4 can operate the robot in the same way as when controlling the robot in real time.

[0065] (Modifications) Although the embodiments of the present disclosure have been described above, the present disclosure is not limited to the above-described embodiments. Various additions, substitutions, modifications, partial deletions, etc. are possible in these embodiments without departing from the gist of the present disclosure or the spirit of the present disclosure derived from the content of the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination. For example, in the above-described embodiments, the order of each operation and the order of each process are shown as examples and are not limited to these.

[0066] In an embodiment of the present disclosure, all hardware resources of the robot control device 4 may be arranged in the same housing, or may be distributed across multiple housings.

[0067] In the embodiment of the present disclosure, an example has been shown in which one robot control device 4 is connected to one numerical control device 2, but this is not limiting. A configuration in which multiple robot control devices 4 are connected to one or multiple numerical control devices 2 may also be used.

[0068] The following supplementary note is further disclosed regarding the above embodiment. (Supplementary Note 1) A programming device (150) that generates trajectory information indicating a motion trajectory of a tip point of a robot as a program includes: a first trajectory information generation unit (151) that generates first trajectory information indicating a motion trajectory of a tip point of the robot based on a robot operation command, a teaching point generation unit (152) that generates teaching points on the trajectory of the first trajectory information, a program generation unit (153) that generates a program for the first trajectory information from which the teaching points have been generated, a second trajectory information generation unit (154) that acquires second trajectory information indicating a motion trajectory of the tip point of the robot operated by the program, an error calculation unit (155) that calculates an error between the first trajectory information and the second trajectory information, and a teaching point addition unit (156) that adds teaching points on the trajectory of the first trajectory information until the error is equal to or less than a tolerance. (Supplementary Note 2) The program generation unit (153) generates a program for the first trajectory information using an operation command for causing the tip point of the robot to pass through the position of a teaching point. (Supplementary Note 3) The first trajectory information consists of a sequence of points indicating the position of the tip point of the robot. (Supplementary Note 4) The teaching point addition unit (156) adds a teaching point to at least one position of the sequence of points. (Supplementary Note 5) The program generation unit (153) generates a program for the first trajectory information based on teaching points generated on the trajectory of the first trajectory information. (Supplementary Note 6) The first trajectory information generation unit (151) obtains the operation command for the robot from a second control device (2) different from a first control device (4) that directly controls the robot. (Supplementary Note 7) A programming method for generating trajectory information indicating a motion trajectory of a tip point of a robot as a program includes the steps of generating first trajectory information indicating a motion trajectory of a tip point of a robot based on a robot operation command, generating teaching points on the trajectory of the first trajectory information, generating a program for the first trajectory information in which the teaching points have been generated, obtaining second trajectory information indicating a motion trajectory of the tip point of the robot operated by the program, calculating an error between the first trajectory information and the second trajectory information, and adding teaching points on the trajectory of the first trajectory information until the error is equal to or less than an allowable value.(Supplementary Note 8) The program causes a computer to execute a programming method including the steps described in the above programming method.

[0069] 1: robot control system, 2: numerical control device, 3: machine tool, 4: robot control device, 5: robot, 5a: arm tip, 11: memory unit, 12: data transmission / reception unit, 13: analysis unit, 14: robot operation command generation unit, 15: program management unit, 16: trajectory control unit, 17: kinematics control unit, 18: servo control unit, 51: first trajectory information generation unit, 150: programming unit, 151: first trajectory information generation unit, 152: teaching point generation unit, 153: program generation unit, 154: second trajectory information generation unit, 155: error calculation unit, 156: teaching point addition unit

Claims

1. A programming device that generates trajectory information indicating a motion trajectory of a tip point of a robot as a program, a first trajectory information generating unit that generates first trajectory information indicating a trajectory of a movement of the tip point of the robot based on a movement command of the robot; a teaching point generating unit that generates teaching points on the trajectory of the first trajectory information; a program generation unit that generates a program for the first trajectory information in which the teaching points are generated; a second trajectory information generating unit that acquires second trajectory information indicating a motion trajectory of the tip point of the robot operated by the program; an error calculation unit that calculates an error between the first trajectory information and the second trajectory information; a teaching point adding unit that adds teaching points onto the trajectory of the first trajectory information until the error becomes equal to or less than a tolerance; A programming device comprising:

2. the program generation unit generates a program for the first trajectory information using an operation command in which a tip point of the robot passes through a position of a teaching point.

2. The programming device of claim 1.

3. the first trajectory information is composed of a sequence of points indicating the position of the tip point of the robot; 3. A programming device according to claim 1 or 2.

4. the teaching point adding unit adds a teaching point to at least one position of the point sequence; 4. The programming device of claim 3.

5. the program generation unit generates a program for the first trajectory information based on teaching points generated on the trajectory of the first trajectory information.

3. A programming device according to claim 1 or 2.

6. the first trajectory information generation unit acquires the operation command for the robot from a second control device different from a first control device that directly controls the robot; 3. A programming device according to claim 1 or 2.

7. A programming method for generating trajectory information indicating a motion trajectory of a tip point of a robot as a program, comprising: generating first trajectory information indicating a movement trajectory of a tip point of the robot based on a movement command for the robot; generating a teaching point on the trajectory of the first trajectory information; generating a program for the first trajectory information in which the teaching points are generated; acquiring second trajectory information indicating a motion trajectory of the tip point of the robot operated by the program; calculating an error between the first trajectory information and the second trajectory information; adding teaching points to the trajectory of the first trajectory information until the error is equal to or smaller than an allowable value; Programming methods including:

8. A program for causing a computer to execute a programming method including the steps of claim 7.