Programming device, programming method and program
The programming device and method address the challenge of converting movement commands into efficient robot programs by generating trajectory information for a robot's peak point and adding teaching points to minimize errors, resulting in a reduced number of teaching items and improved program execution for complex trajectories.
Patent Information
- Application Number
- DE112022007760
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-12-27
- Publication Date
- 2025-06-26
AI Technical Summary
Existing methods for converting movement commands into programs for robots face challenges due to the large amount of data involved, leading to an enormous number of teaching items in the program, especially when predicting complex trajectories.
A programming device and method that generate trajectory information for a robot's peak point, involving units for generating first trajectory information, teaching points, programs, and error calculation, to add teaching points until the error between the first and second trajectory information is within a tolerance value.
This approach reduces the number of teaching items in the program, allowing for more efficient generation and execution of robot movement programs, particularly for complex trajectories, without the need for extensive error learning.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELD
[0001] The present disclosure relates to a programming apparatus, a programming method and a program. TECHNICAL BACKGROUND
[0002] Conventionally, a robot is controlled by an external device instead of its own controller (hereinafter also referred to as a "robot control device"). When using an external device to control a robot, a movement command is sent from the external device to a robot control device in a short cycle, thereby making it possible to control the robot. In such control of a robot, in addition to cases where the robot is controlled in real time by the external device, there are also cases where the movement of a robot, which is executed once by the control of the external device, is repeatedly executed by the control of the robot control device. In this case, since it is necessary to store all the movement commands sent from the external device in a short cycle in the robot control device, the amount of data becomes enormous.
[0003] To solve this problem, a storage method has been proposed that stores trajectory information indicating a robot's movement trajectory as a program. For example, Patent Document 1 describes a robot system that learns an error between an actual trajectory and an ideal trajectory controlled to pass through a specific intermediate teaching point, and adds a teaching point to a position to achieve a target trajectory, thereby realizing the target trajectory. Citation listPatent document
[0004] Patent Document 1: PCT International Publication No. WO2022 / 176761 DISCLOSURE OF THE INVENTION Problems to be solved by the invention:
[0005] A motion command sent from an external device contains a large amount of data, making it difficult to convert the motion command into a program. Even if conversion into a program is possible, as in Patent Document 1 mentioned above, there is still a problem that the number of teaching points in the program becomes enormous. Specifically, the robot system in Patent Document 1 has the problem that predictive teaching is performed, and therefore, as a motion trajectory becomes more complex, calculating intermediate points (teaching points) takes more time.
[0006] Accordingly, it is desirable to reduce the number of teaching points in a program that causes a robot to move. Means to solve the problems:
[0007] A programming device according to the present disclosure generates, as a program, trajectory information indicating a movement trajectory for a tip point of a robot, the programming device being equipped with: a first trajectory information generation unit configured to generate, based on a robot command, first trajectory information indicating a movement trajectory for the tip point of the robot; a teaching point generation unit configured to generate a teaching point on a trajectory corresponding to the first trajectory information; a program generation unit configured to generate a program corresponding to the first trajectory information for which the teaching point is generated;a second trajectory information generation unit configured to obtain second trajectory information indicating a movement trajectory for the tip point of the robot caused to move in accordance with the program; an error calculation unit configured to calculate an error between the first trajectory information and the second trajectory information; and a teaching point addition unit configured to add a teaching point to the trajectory corresponding to the first trajectory information until the error becomes equal to or smaller than a tolerance value.
[0008] A programming method according to the present disclosure generates, as a program, trajectory information indicative of a movement trajectory for a tip point of a robot, the programming method comprising a step of generating, based on a movement command for the robot, first trajectory information indicative of a movement trajectory for the tip point of the robot; a step of generating a teaching point on a trajectory corresponding to the first trajectory information; a step of generating a program corresponding to the first trajectory information for which the teaching point is generated; a step of obtaining second trajectory information indicative of a movement trajectory for the tip point of the robot caused to move in accordance with the program; a step of calculating an error between the first trajectory information and the second trajectory information;and a step of adding a teaching point to the path corresponding to the first path information until the error becomes equal to or smaller than a tolerance value;
[0009] A program according to the present disclosure causes a computer to perform a programming method that includes each step set forth in the programming method described above. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 is a configuration diagram of a robot control system 1 according to an embodiment of the present disclosure; Fig. 2 is a block diagram illustrating a functional configuration of a robot control device 4; Fig. 3 is a block diagram illustrating a functional configuration of a programming unit 150; Fig. 4A is a diagram illustrating a method of generating teaching points for first trajectory information; Fig. 4B is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. Figure 4C is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. 4D is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. Figure 4E is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. Figure 4F is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. 4G is a diagram illustrating the process of generating teaching points for initial trajectory information; Fig. 5A is a diagram illustrating a process for bringing second trajectory information close to the first trajectory information; Fig. 5B is a diagram illustrating the process of approximating the second trajectory information to the first trajectory information; Fig. 5C is a diagram illustrating the process of bringing the second trajectory information close to the first trajectory information; Fig. 6 is a flowchart illustrating a method for a first path information programming process executed by the program management unit 15; and Fig. 7 is a flowchart illustrating the procedure for the first path information programming process executed by the program management unit 15. PREFERRED MODE FOR CARRYING OUT THE INVENTION
[0010] The following describes a programming apparatus, a programming method, and a program according to an embodiment of the present disclosure. Fig. 1 is a configuration diagram of a robot control system 1 according to an embodiment of the present disclosure. Fig. 2 is a block diagram illustrating a functional configuration of a robot control device 4. Fig. 3 is a block diagram illustrating a functional configuration of a programming unit 150.
[0011] As in Fig. 1, the robot control system 1 according to the embodiment is provided with: a numerical control device 2 that controls a machine tool 3; the 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 respectively connected via communication lines (solid black lines in the drawing).
[0012] In accordance with a numerical control program, the numerical control device 2 generates a machine tool command signal and a robot command signal as commands for the machine tool 3 and transmits the machine tool command signal and the robot command signal to the machine tool 3 and the robot 5, respectively. The numerical control device 2 transmits the robot command signal to the robot control device 4 in a short cycle (e.g., 40 ms) to control the robot 5 in real time. The numerical control device 2 serves as an external device in controlling the robot 5 via the robot control device 4. In other words, the numerical control device 2 is a control device (second control device), which is different from the robot control device 4 (see below) that directly controls a robot.
[0013] The machine tool 3 machines a workpiece (not shown) in response to the 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 grinder, a laser processing machine, an injection molding machine, or the like, but this is not limited.
[0014] The robot control device 4 is a controller (first control device) that directly controls the movement of the robot 5. The robot control device 4 is communicatively connected to the numerical control device 2 and controls the movement of the robot 5 in response to the robot command signal transmitted from the numerical control device 2. The configuration of the robot control device 4 is described below.
[0015] The robot 5 is located near the machine tool 3 and operates according to the control executed by the robot control device 4. The robot 5 performs, for example, a predetermined task for a workpiece being machined in the machine tool 3, such as a lathe or the like. The robot 5 includes, for example, an articulated robot. A tool 5b for gripping, machining, or inspecting a workpiece is attached to an arm tip 5a of the robot 5. In the embodiment, an example is described in which the robot 5 is assumed to be a six-axis articulated robot, but the number of axes for the joints of the robot 5 is not limited thereto.
[0016] The numerical control device 2 and the robot control device 4 are, for example, a computer that includes, as hardware resources, an arithmetic processing means such as a CPU (Central Processing Unit); an auxiliary storage means such as an HDD (Hard Disk Drive) or SSD (Solid-State Drive) that stores various computer programs; a main storage means such as RAM (Random-Access Memory) for temporarily storing data so that the arithmetic processing means can execute a computer program; an operation means such as a keyboard or a mouse for an operator to execute inputs such as various instructions or information; and a display means such as a display device that displays various information. For example, the numerical control device 2 and the robot control device 4 are configured to transmit and receive various signals via a wired LAN.
[0017] 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-described hardware resources to realize various functions, such as a storage unit 11, a transmission / reception unit 12, an analysis unit 13, a robot 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 command device 4 uses the storage unit 11, the data transmission / reception unit 12, the analysis unit 13, the robot 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, to thereby control the motion of the robot 5 based on various command signals transmitted from the numerical control device 2.
[0018] The storage unit 11 stores, among other things, various programs for operating a robot, information indicating the positions of various shafts in the machine tool 3, information related to the position or orientation of a control point for the robot, and information related to teaching points for the robot. The transmission / reception unit 12 receives a robot command signal transmitted from the numerical control device 2. Furthermore, the transmission / reception unit 12 sequentially outputs the received robot command signal to the analysis unit 13. The analysis unit 13 analyzes the robot command signal input from the transmission / reception unit 12. Furthermore, the analysis unit 13 outputs an analysis result to the robot command generation unit 14.
[0019] Based on the analysis result of the robot command signal input from the analysis unit 13, the robot command generation unit 14 generates a robot command (hereinafter also referred to as a "movement command") corresponding to this robot command signal. The robot command generation unit 14 outputs the generated movement command to the program management unit 15. Note that robot command signals are transmitted from the numerical control device 2 in a short cycle. Accordingly, in the robot command generation unit 14, the movement command is generated with the same cycle and output to the program management unit 15.
[0020] The robot command generation unit 14 transmits the motion command to the program management unit 15, which successively executes this motion command in real time. The program management unit 15 generates a motion plan for the robot 5 in response to the robot command described above and outputs the motion plan to the trajectory control unit 16. In this way, it is possible to control the motion of the robot 5 in real time. Furthermore, when repeating a motion of the robot 5 once, for example, the program management unit 15 causes the robot 5 to move based on a program (described below) that corresponds to the first trajectory information and is stored in the storage unit 11.
[0021] The program management unit 15 is equipped with a programming unit (programming device) 150. Based on a robot command signal transmitted from the numerical control device 2, the programming device 150 generates, as a program, trajectory information indicating a motion trajectory for a tip point of the robot 5. When the robot 5 is operated according to the program generated by the programming unit 150, the program management unit 15 also generates a motion plan based on trajectory information specific to the robot included in this program and outputs the motion plan to the trajectory control unit 16. The operation of the programming unit 150 will be described in detail below.
[0022] After input of a motion plan by the program management unit 15, the path control unit 16 calculates time series data of control points for the robot 5 and outputs the time series data to the kinematics control unit 17. The kinematics control unit 17 calculates target angles for the respective joints of the robot 5 from the input time series data and outputs the target angles to the servo control unit 18.
[0023] The servo control unit 18 performs feedback control for the respective servomotors in the robot 5 to generate robot control signals with respect to the robot 5 to realize the target angles input from the kinematics control unit 17, and transmits the robot control signals to the servomotors in the robot 5. As a result, the robot 5 moves according to the motion plan created by the program management unit 15.
[0024] 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, as a program, trajectory information indicating a movement trajectory for a tip point of the robot 5 and causes the storage unit 11 to store the program. This program is used in a case where the robot control device 4 directly controls the robot 5 instead of the numerical control device 2. In the embodiment, the tip point of the robot 5 is, for example, the arm tip 5a of the robot 5 (see Fig. 1).
[0025] As in Fig. 3, the programming unit 150 is equipped with a first path information generation unit 151, a teaching point generation unit 152, a program generation unit 153, a second path information generation unit 154, an error calculation unit 155, and a teaching point supplementation unit 156. The following describes the processes performed by each unit of the programming unit 150, and gives concrete examples thereof with reference to the drawings. Fig. 4A to Fig. 4G are diagrams that illustrate a process for generating teaching points for initial trajectory information. Fig. 5A to Fig. 5C are diagrams illustrating a process for approximating the second trajectory information to the first trajectory information. A process, etc., that generates a virtual straight line or a teaching point with respect to the trajectory information is executed, for example, in a virtual space in the storage unit 11.
[0026] The first trajectory information generation unit 151 stores a movement command generated by the robot command generation unit 14 until the movement of the robot 5 ends. Based on the stored movement command for the robot 5, the first trajectory information generation unit 151 then generates three-dimensional first trajectory information indicating a movement trajectory (including an orientation) for the tip point of the robot 5. Specifically, based on the stored robot command, the first trajectory information generation unit 151 obtains a trajectory (a sequence of points) DL applicable to the tip of the robot 5 per unit time, as shown in Fig. 4A. In Fig. 4A, the size of a dot and an interval between adjacent dots are schematically shown to facilitate understanding.
[0027] Furthermore, three-dimensional trajectory information (first trajectory information and second trajectory information) in the embodiment is described as a two-dimensional curved line. An orientation of the tip point of the robot 5, which is defined, for example, in accordance with a rotation angle of the shaft that drives the arm tip 5a of the robot 5 (see Fig. 1), changes continuously from the starting point to the end point of the trajectory.
[0028] The first trajectory information generation unit 151 generates a curved spline line (spline function) SC passing through the obtained trajectory, as shown in Fig. 4B. The curved line indicating the trajectory of the tip point of the robot, as shown in Fig. 4B, may also be referred to as "first trajectory information" or "first trajectory information LO1" hereinafter. Note that a trajectory may include both a straight line and a curved section, but is generally referred to as a "curved line" in this specification.
[0029] The teaching point generation unit 152 generates teaching points on a trajectory corresponding to the first trajectory information. Specifically, the teaching point generation unit 152 sets a start point p1 and an end point p2 on the first trajectory information LO1, as shown in Fig. 4C, and also virtually creates a straight line L1 between the starting 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 whose distance from the straight line L1 is both the farthest and 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 on the basis of which the determination described above is made is set, for example, by an operator making an input via an operating means (not shown).
[0030] In a case where a teaching point is generated with respect to the first trajectory information (in a case where a teaching point is set up), the teaching point generating unit 152 further generates a straight line L2 virtually between the start point p1 and the teaching point t1 and also a straight line L3 virtually between the teaching point t1 and the end point p2, as shown in Fig. 4F. The teaching point generating unit 152 determines whether there is a point whose distance from each straight line is the farthest and equal to or greater than the threshold value, and if there is a corresponding point, generates a teaching point at the corresponding point. Fig. 4G illustrates an example in which a teaching point t2 is generated at a point where the distance from the straight line L2 is the farthest and equal to or greater than the threshold, and a teaching point t3 is generated at a point where the distance from the straight line L3 is the farthest and equal to or greater than the threshold. The teaching point generation unit 152 repeats the above-described process until there is no longer a point whose distance from the straight line is equal to or greater than the threshold.
[0031] In a case where two or more teaching points are created between the start point and the end point, as in Fig. As shown in Figure 4G, the teaching point generation unit 152 virtually generates not only a straight line between either the start point or the end point and a teaching point adjacent thereto, but also a straight line between a teaching point and another teaching point adjacent to each other on a curved line. If there is no point whose distance from the straight line is the furthest and equal to or greater than the threshold (in a case where no teaching point is set), the teaching point generation unit 152 terminates the teaching point generation process.
[0032] In the Fig. 4G, the teaching point generation unit 152 generates virtual straight lines (not shown) between the starting 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 the furthest away and equal to or greater than a threshold value. In the example shown in Fig. 4G, it is assumed that no new teaching point was set in the determination based on the straight lines described above that were generated for the first trajectory information. In the embodiment, the Fig. 4G represents the first path information for which teaching points are generated.
[0033] Back to Fig. 3, the program generation unit 153 generates a program corresponding to the first trajectory information in which teaching points are created or added, or generates a program corresponding to the first trajectory information whose distance error is equal to or smaller than a tolerance value. The program generation unit 153 uses a motion command that instructs the tip of the robot 5 to traverse the positions of the teaching points to generate a program for the first trajectory information. The motion command that instructs the tip of the robot 5 to traverse the positions of the teaching points includes a program that causes the tip to traverse the positions of all teaching points on the trajectory, and a motion command using spline interpolation, for example, can be used.
[0034] The program management unit 15 causes the robot 5 to operate based on the program corresponding to the first trajectory information generated by the program generation unit 153. Note that the motion plan generated by the program management unit 15 is output to the trajectory control unit 16, and accordingly, the movement of the robot 5 is executed via the kinematics control unit 17 and the servo control unit 18. In the program generation unit 153, a process for generating the program corresponding to the first trajectory information and having teaching points on the trajectory is repeatedly executed every time a teaching point is added by the teaching point addition unit 156 (see below).
[0035] In the program management unit 15, the second trajectory information generation unit 154 receives second trajectory information indicating a motion trajectory for the tip point of the robot 5, which is caused to move in accordance with the program corresponding to the first trajectory information. In the second trajectory information generation unit 154, each time a teaching point is added to the first trajectory information by the teaching point addition unit 156, a process for acquiring the second trajectory information is repeatedly executed (described below).
[0036] The error calculation unit 155 calculates an error between the first trajectory information and the second trajectory information. Fig. 5A is a diagram in which a curved line for the second trajectory information intersects with the curved line for the first trajectory information. In Fig. In FIG. 5A, a solid line indicates the curved line for the first trajectory information LO1. A dashed line indicates the curved line for the second trajectory information LO2 when the robot 5 is actually moved. The error calculation unit 155 calculates, for example, an error e between the first trajectory information LO1 and the second trajectory information LO2 in an interval between the Fig. 5A and the end point p2. In addition, errors between the first trajectory information LO1 and the second trajectory information LO2 are calculated in the intervals between the start point p1 and the teaching point t2, between the teaching points t2 and t1, and between the teaching points t1 and t3.
[0037] The error calculated in the error calculation unit 155 includes both an orientation error and a distance error between two curved lines. The orientation error is an error in a three-dimensional coordinate space for two curved lines. As shown in a flowchart described later (step S19 and thereafter), the error calculation unit 155 calculates an orientation error between the two curved lines when a distance error between two curved lines has become equal to or smaller than a tolerance value.
[0038] For example, it is possible to use a method like the following to calculate an error in the error calculation unit 155. First, the curved lines for two pieces of trajectory information are each projected onto an X-plane to obtain two-dimensional (XY) curved lines. By comparing two two-dimensional curved lines, a difference in a Z-axis value and a difference in a WRP angle with respect to a specific Y-axis value are compared. This process is performed for a Y-plane and a Z-plane in addition to the X-plane.In addition, it may be possible to: divide a curved line at the position of a teaching point; calculate a straight line connecting a start point and an end point of the divided curved line and a plane in which a point farthest from the straight line exists; and calculate an error between curved lines for two pieces of trajectory information with respect to the plane. Furthermore, it may also be possible to set points that divide each curved line into certain equal parts on curved lines for two pieces of trajectory information, and calculate a distance between a pair of corresponding points on the two curved lines as an error between the curved lines.
[0039] The teaching point supplement unit 156 determines whether the distance or orientation error calculated by the error calculation unit 155 is equal to or smaller than a tolerance value. A tolerance value for the distance or orientation error is input in advance by an operator into the program management unit 15. In a case where there is an interval in which the distance or orientation error exceeds the tolerance value, for example, in a case where the distance error exceeds the tolerance value in an interval between the teaching point t3 and the end point p2 of the Fig. 5B, the teaching point addition unit 156 adds a teaching point tX to the point (position) where the error e is the largest. A teaching point is also added at other intervals when the distance error e exceeds the tolerance value. The teaching point addition unit 156 adds a teaching point to at least one position in the point sequence (see Fig. 4A), which serves as the basis for the first trajectory information. Although not shown, the teaching point addition unit 156 adds a teaching point to a point having the largest orientation error in the first trajectory information LO1. After a teaching point is added by the teaching point addition unit 156, the program generation unit 153 generates a program corresponding to the first trajectory information to which the teaching point has been added.
[0040] The teaching point addition unit 156 repeats a process of adding a teaching point to the trajectory corresponding to the first trajectory information until the distance or orientation error becomes equal to or smaller than the tolerance value. In the teaching point addition unit 156, the distance or orientation error decreases with each added teaching point. This makes it possible to approximate the second trajectory information to the first trajectory information. On the other hand, if the teaching point addition unit 156 determines that the distance or orientation error is equal to or smaller than the tolerance value, the program corresponding to the first trajectory information is stored in the storage unit 11 as a program corresponding to the trajectory information indicating a movement trajectory for the tip point of the robot 5.
[0041] As described above, the program generation unit 153 generates a program corresponding to the first trajectory information to which a teaching point has been added by the teaching point addition unit 156. The program management unit 15 causes the robot 5 to move based on the program corresponding to the first trajectory information newly generated by the program generation unit 153. The second trajectory information generation unit 154 obtains second trajectory information indicating a movement trajectory for the tip of the robot 5 moved according to the newly generated program corresponding to the first trajectory information.Note that in a case where the robot 5 is moved based on the program corresponding to the first trajectory information to which a teaching point has been added, the entire curved line may be changed for the second trajectory information in addition to the part to which the teaching point has been added. The error calculation unit 155 calculates the distance or orientation error between the first trajectory information and the second trajectory information. The teaching point addition unit 156 determines whether the distance or orientation error is equal to or smaller than the tolerance value.
[0042] The programming unit 150 repeats a process of adding a teaching point to the aforementioned path corresponding to the first path information until the distance or orientation error is determined by the teaching point addition unit 156 to be equal to or smaller than the tolerance value. As a result, for example, the distance or orientation error between the first path information LO1 and the second path information LO2 can be maintained equal to or smaller than the tolerance value in each interval, as shown in Fig. 5C. The program management unit 15 stores the program corresponding to the Fig. 5C, in the storage unit 11 as a program corresponding to trajectory information indicating a movement trajectory for the tip point of the robot 5.
[0043] A concrete example of a programming operation for first path information in this embodiment will be described below. Fig. 6 and Fig. 7 are flowcharts illustrating a flow of a process for programming the first trajectory information executed by the program management unit 15. Note that, before this programming process, in the embodiment, the program management unit 15 generates a movement command based on a robot command signal transmitted from the numerical control device 2 and uses this movement command to move the robot 5.
[0044] In the Fig. In step S11 shown in FIG. 6, the first trajectory information generation unit 151 records a movement command generated by the robot command generation unit 14 until the movement of the robot 5 ends. Based on the robot command for the robot 5, the first trajectory information generation unit 151 then generates first trajectory information indicating a movement trajectory for the tip point of the robot 5.
[0045] In step S12, the teaching point generation unit 152 generates a teaching point on the path corresponding to the first path information based on the threshold value.
[0046] In step S13, the program generation unit 153 generates a program corresponding to the first trajectory information in which a teaching point has been generated or added.
[0047] In step S14, the program management unit 15 causes the robot 5 to move based on the program corresponding to the first path information.
[0048] In step S15, the second trajectory information generating unit 154 obtains second trajectory information indicating a movement trajectory for the tip point of the robot 5 caused to move in accordance with the program corresponding to the first trajectory information.
[0049] In step S16, the error calculation unit 155 calculates a distance error between the first trajectory information and the second trajectory information.
[0050] In step S17, the teaching point supplementing unit 156 determines whether the distance error is equal to or smaller than a tolerance value. If the teaching point supplementing unit 156 determines in step S17 that the distance error is equal to or smaller than the tolerance value, the process proceeds to step S19 (see Fig. 7). However, if the teaching point supplementing unit 156 determines in step S17 that the distance error exceeds the tolerance value, the process proceeds to step S18.
[0051] In step S18 (step S17: NO), the teaching point addition unit 156 adds a teaching point to the first trajectory information. The process returns to step S13 after step S18, and the above-described processing from step S13 to step S17 is performed based on the first trajectory information to which the teaching point has been added. The teaching point addition unit 156 repeatedly executes the process of adding a teaching point to the trajectory corresponding to the first trajectory information until the distance error becomes equal to or smaller than the tolerance value in step S17.
[0052] In step S19 (step S17: YES), which is Fig. 7, the program generation unit 153 generates a program corresponding to the first path information whose distance error has become equal to or smaller than the tolerance value (hereinafter may be referred to as a “corrected program”).
[0053] In step S20, the program management unit 15 causes the robot 5 to move based on the corrected program corresponding to the first trajectory information.
[0054] In step S21, the second trajectory information generating unit 154 obtains second trajectory information indicating a movement trajectory for the tip point of the robot 5 caused to move according to the corrected program corresponding to the first trajectory information.
[0055] In step S22, the error calculation unit 155 calculates an orientation error between the first path information whose distance error has become equal to or smaller than the tolerance value and the second path information obtained in step S21.
[0056] In step S23, the teaching point supplement unit 156 determines whether the orientation error is equal to or smaller than a tolerance value. If the teaching point supplement unit 156 determines in step S23 that the orientation error is equal to or smaller than the tolerance value, the process for the present flowchart ends. Conversely, if the teaching point supplement unit 156 determines in step S23 that the orientation error exceeds the tolerance value, the process proceeds to step S24.
[0057] In step S24 (step S23: NO), the teaching point addition unit 156 adds a teaching point to the first trajectory information. After step S24, the process returns to step S19. Then, based on the first trajectory information to which the teaching point has been added, the above-described processing for step S20 to step S23 is performed. The teaching point addition unit 156 executes the process of adding a teaching point to the trajectory corresponding to the first trajectory information until the orientation error becomes equal to or smaller than the tolerance value in step S23. If it is determined in step S23 that the orientation error is equal to or smaller than the tolerance value, the process for the present flowchart ends.
[0058] For example, the robot control device 4 according to the above-described embodiment achieves the following effects. The robot control device 4 is equipped with a programming device 150 that compares the first trajectory information generated based on the movement command from the external numerical control device 2 with the second trajectory information serving as a movement trajectory for the robot caused to move according to the program corresponding to the first trajectory information; and adds the teaching point to the first trajectory information until both the distance error and the orientation error become equal to or smaller than the tolerance value.As a result, the robot control device 4 is able to generate, as a program with few teaching points, the program corresponding to the first trajectory information and having the same motion trajectory (including the orientation) as that of the robot controlled in real time according to the motion command of the numerical control device 2.
[0059] The program generation unit 153 uses the motion command that instructs the tip point of the robot to traverse the positions of the teaching points to generate the program corresponding to the initial trajectory information. This eliminates the need for learning an error in advance through preparation in which a robot is controlled after setting a target trajectory using a point that is not on an ideal trajectory as an intermediate point, as described in Patent Document 1. Accordingly, in a case where the route for a trajectory for a robot is complex, it is not necessary to perform a huge amount of learning work in advance, and therefore, it is possible to create a program for the robot in a shorter time.
[0060] The first trajectory information generated in the first trajectory information generation unit 151 consists of a sequence of points indicating the positions of the tip point of the robot. Accordingly, when the program corresponding to the first trajectory information generated by the program generation unit 153 is executed, it is possible to reproduce the motion more faithfully than when the robot is controlled by the numerical control device 2.
[0061] The teaching point addition unit 156 adds the teaching point to at least one position in the sequence of points (see Fig.4A) serving as the basis for the first trajectory information. Accordingly, it is possible to approximate the trajectory on which the robot actually moves to the trajectory corresponding to the first trajectory information with a smaller number of teaching points, compared to a case where a teaching point is added at a position away from a curved line as described in Patent Document 1.
[0062] The program generation unit 153 generates the program corresponding to the first trajectory information based on the teaching points generated on the trajectory corresponding to the first trajectory information. Accordingly, in the program generation unit 153, a method such as spline interpolation is applied to the teaching points on the trajectory, making it possible to generate a motion reproducing program that is closer to the actual motion of the robot.
[0063] The first trajectory information generation unit 151 receives the movement command for the robot 5 from the numerical control device 2 (second control device), which is different from the robot control device 4 (first control device) that directly controls the robot. Accordingly, when the robot's movement once executed is to be repeated, the robot control device 4 can cause the robot to move similarly to the robot controlled in real time. (Modification)
[0064] One embodiment of the present disclosure has been described above, but the present disclosure is not limited to the above-described embodiment. These embodiments may be subjected to various additions, replacements, changes, partial deletions, or the like within a scope that does not deviate from the substance of the present disclosure or within a scope that does not deviate from the purpose of the present disclosure as understood from the content set forth in the claims or their equivalents. Furthermore, these embodiments may also be combined. The order of operations or the order of processes in the above-described embodiments is displayed as an example and is not limitative.
[0065] In the embodiment according to the present disclosure, all hardware resources for the robot control device 4 may be arranged in the same housing or separately in a plurality of housings.
[0066] In the embodiment according to the present disclosure, an example in which one robot control device 4 is connected to one numerical control device 2 has been described, but this is not limitative. Alternatively, a plurality of robot control devices 4 may be connected to one or more numerical control devices 2.
[0067] In connection with the embodiments and variations described above, the following notes are also disclosed. (Note 1)
[0068] A programming device (150) that generates, as a program, trajectory information indicative of a movement trajectory for a tip point of a robot, the programming device comprising: a first trajectory information generation unit (151) configured to generate, based on a movement command for the robot, first trajectory information indicative of a movement trajectory for the tip point of the robot; a teaching point generation unit (152) configured to generate a teaching point on a trajectory corresponding to the first trajectory information; a program generation unit (153) configured to generate a program corresponding to the first trajectory information for which the teaching point is generated;a second trajectory information generation unit (154) configured to obtain second trajectory information indicating a movement trajectory for the tip point of the robot caused to move in accordance with the program; an error calculation unit (155) configured to calculate an error between the first trajectory information and the second trajectory information; and a teaching point addition unit (156) configured to add a teaching point to the trajectory corresponding to the first trajectory information until the error becomes equal to or smaller than a tolerance value. (Note 2)
[0069] The program generation unit (153) generates the program corresponding to the first trajectory information using a movement command that instructs the tip point of the robot to pass a position corresponding to the teaching point. (Note 3)
[0070] The first trajectory information is configured to consist of a sequence of points indicating positions of the robot's tip. (Note 4)
[0071] The teaching point addition unit (156) is configured to add a teaching point to at least one position in the point sequence. (Note 5)
[0072] The program generation unit (153) is configured to generate the program corresponding to the first trajectory information based on a teaching point generated on the trajectory corresponding to the first trajectory information. (Note 6)
[0073] The first trajectory information generating unit (151) is configured to receive the movement command for the robot from a second controller (2) different from a first controller (4) that directly controls the robot. (Note 7)
[0074] A programming method that generates, as a program, trajectory information indicative of a movement trajectory for a tip point of a robot, the programming method comprising: a step of generating, based on a movement command for the robot, first trajectory information indicative of a movement trajectory for the tip point of the robot; a step of generating a teaching point on a trajectory corresponding to the first trajectory information; a step of generating a program corresponding to the first trajectory information for which the teaching point is generated; a step of obtaining second trajectory information indicative of a movement trajectory for the tip point of the robot that is caused to move in accordance with the program; a step of calculating an error between the first trajectory information and the second trajectory information;and a step of adding a teaching point to the path corresponding to the first path information until the error becomes equal to or smaller than a tolerance value; (Note 8)
[0075] A program causes a computer to perform a programming method that includes each step set forth in the programming method described above. EXPLANATION OF REFERENCE NUMBERS
[0076] 1: Robot control system, 2: Numerical control device, 3: Machine tool, 4: Robot control device, 5: Robot, 5a: Arm tip, 11: Storage unit, 12: Data transmission / reception unit, 13: Analysis unit, 14: Robot command generation unit, 15: Program management unit, 16: Path control unit, 17: Kinematics control unit, 18: Servo control unit, 151: First path information generation unit, 150: Programming unit, 151: First path information generation unit, 152: Teaching point generation unit, 153: Program generation unit, 154: Second path information generation unit, 155: Error calculation unit, 156: Teaching point supplementation unit QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] WO 2022 / 176761
[0004]
Claims
[1] A programming device for generating trajectory information indicating a movement trajectory for a tip point of a robot as a program, the programming device comprising: a first trajectory information generation unit configured to generate, based on a robot command, for the robot first trajectory information indicating a movement trajectory for the tip point of the robot; a teaching point generating unit configured to generate a teaching point on a path corresponding to the first path information; a program generation unit configured to generate a program corresponding to the first trajectory information for which the teaching point is generated; a second trajectory information generating unit configured to obtain second trajectory information indicating a movement trajectory for the tip point of the robot caused to move in accordance with the program; an error calculation unit configured to calculate an error between the first trajectory information and the second trajectory information; and a teaching point addition unit configured to add a teaching point to the path corresponding to the first path information until the error becomes equal to or smaller than a tolerance value. [2] The teaching device according to claim 1, wherein the program generation unit is configured to generate the program corresponding to the first trajectory information using a movement command that instructs the tip point of the robot to pass a position corresponding to the teaching point. [3] The programming device according to claim 1 or 2, wherein the first trajectory information is configured to be a sequence of points indicating positions of the tip point of the robot. [4] The programming device according to claim 3, wherein the teaching point addition unit is configured to add a teaching point to at least one position in the point sequence. [5] The programming device according to any one of claims 1 to 4, wherein the program generation unit is configured to generate the program corresponding to the first trajectory information based on a teaching point generated on the trajectory corresponding to the first trajectory information. [6] The programming device according to any one of claims 1 to 5, wherein the first trajectory information generating unit is configured to receive the movement command for the robot from a second controller different from a first controller that directly controls the robot. [7] A programming method for generating, as a program, trajectory information indicating a movement trajectory for a tip point of a robot, the programming method comprising: a step of generating, based on a movement command for the robot, first trajectory information indicating a movement trajectory for the tip point of the robot; a step of generating a teaching point on a path corresponding to the first path information; a step of generating a program corresponding to the first trajectory information for which the teaching point is generated; a step of obtaining second trajectory information indicating a motion trajectory for the tip point of the robot caused to move in accordance with the program; a step of calculating an error between the first trajectory information and the second trajectory information; and a step of adding a teaching point to the path corresponding to the first path information until the error becomes equal to or smaller than a tolerance value. [8] A program for causing a computer to perform a programming method comprising each of the steps recited in claim 7.
Citation Information
Patent Citations
Control device, robot system, learning device, control method, and program
WO2022176761A1