Program and teaching support device

JP2025019798APending Publication Date: 2025-02-07KONICA MINOLTA INC
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
JP2023123623
Authority / Receiving Office
JP · JP
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-07-28
Publication Date
2025-02-07

AI Technical Summary

Benefits of technology

【0008】 本発明の一側面によれば、ロボットが、複数のパスセットの中から選択された1つのパスセットを含む動作プログラムに従って制御されると、ロボットの関節が無駄な動きをしない。

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 2025019798000001_ABST
    Figure 2025019798000001_ABST
Patent Text Reader

Abstract

To prevent unnecessary movements of joints of a robot.SOLUTION: A program causes a processor to execute acquisition processing, calculation processing, combination processing, path generation processing, and evaluation processing. In the path generation processing, the processor creates, on the basis of each of multiple posture sets, discrete paths each for each of multiple joints, from an angle of each joint of a joint angle set selected for a first node of multiple nodes to an angle of each joint of a joint angle set selected for a last node of the multiple nodes, thereby, creating, for each of the multiple posture sets, multiple path sets consisting of the paths of the respective multiple joints. In the evaluation processing, the processor selects one from the multiple path sets on the basis of the evaluation of each of the multiple path sets.SELECTED DRAWING: Figure 2
Need to check novelty before this filing date? Find Prior Art

Description

[Technical field]

[0001] The present invention relates to a program and a teaching support device. [Background technology]

[0002] Patent Document 1 discloses a teaching support device that supports an operator in teaching a robot. The operator inputs a plurality of pieces of moving point information, each of which specifies a plurality of moving points, into the teaching support device using an input unit of the teaching support device. The calculation unit of the teaching support device calculates a plurality of solution candidates for each moving point. The solution candidate refers to data that expresses the posture that the robot takes when the robot places its hand at the moving point using the angle of each joint of the robot. Thereafter, the calculation unit of the teaching support device calculates an evaluation value for each of all combinations consisting of one solution candidate of a moving point and one solution candidate of an adjacent moving point. The calculation unit of the teaching support device recognizes the combination with the highest cumulative evaluation value as optimal from among multiple combinations consisting of solution candidates from the first moving point to the last moving point. The calculation unit of this teaching support device does not calculate a path connecting the solution candidates of the optimal combination. The path is data that discretely expresses the transition of the angle of each joint from the angle of the first solution candidate to the angle of the last solution candidate.

[0003] Patent Document 2 discloses a programming support device that generates an operation program executed by a robot controller to operate a robot. The programming support device generates an overall path that represents a series of robot operations from a start point of the robot's operation to an end point of the robot's operation. This overall path includes at least a first work path, an air cut path, and a second work path, in that order. The first and second work paths are paths for the robot to process a workpiece. The air cut path is a path that connects the first work path and the second work path. The air cut path is a path that does not involve processing a workpiece. The programming support device extracts a plurality of candidate evacuation postures in an evacuation area that is an end point of the first work path. The programming support device extracts a plurality of candidate approach postures in an approach area that is an end point of the second work path. The programming support device generates a plurality of candidate paths from a plurality of combinations consisting of one candidate evacuation posture and one candidate approach posture. The programming support device evaluates these candidate paths from the viewpoint of operation time. The programming support device selects a candidate path that realizes the shortest operation time from the plurality of candidate paths. The programming support device determines the selected candidate path as the air cut path. This programming support device does not select any of the overall path candidates by evaluating multiple overall path candidates from the start point of the robot's motion to the end point of the robot's motion. Therefore, there is a risk that the robot's joints will make unnecessary movements before the robot moves from the start point to the end point. [Prior art documents] [Patent documents]

[0004] [Patent Document 1] JP 2007-203380 A [Patent Document 2] JP 2022-76814 A Summary of the Invention [Problem to be solved by the invention]

[0005] Therefore, it is an objective of one or more embodiments of the present invention to prevent unnecessary movement of a robot's joints. [Means for solving the problem]

[0006] In order to solve the above problems, according to one aspect of the present invention, a program causes a processor to: An acquisition process of sequentially acquiring a plurality of nodes including position information and posture information of an end effector of an articulated robot having a plurality of joints and an end effector; a calculation process of calculating a plurality of joint angle sets expressing angles of the plurality of joints from the position information and the posture information included in each of the plurality of nodes acquired by the acquisition process; a combination process for creating a plurality of posture sets by combining and linking a joint angle set selected from the plurality of joint angle sets for each of the plurality of nodes in the order of the plurality of nodes; a path creation process for creating, for each of the plurality of posture sets, a discrete path from the angle of each joint in a joint angle set selected as a first node among the plurality of nodes to the angle of each joint in a joint angle set selected as a last node among the plurality of nodes, thereby creating, for each of the plurality of posture sets, a plurality of path sets consisting of the paths of each of the plurality of joints; an evaluation process for selecting one of the plurality of path sets based on an evaluation of each of the plurality of path sets; Execute the command.

[0007] In order to solve the above problems, according to one aspect of the present invention, a teaching support device includes a processor, The processor, An acquisition process of sequentially acquiring a plurality of nodes including position information and posture information of an end effector of an articulated robot having a plurality of joints and an end effector; a calculation process of calculating a plurality of joint angle sets expressing angles of the plurality of joints from the position information and the posture information included in each of the plurality of nodes acquired by the acquisition process; a combination process for creating a plurality of posture sets by combining and linking a joint angle set selected from the plurality of joint angle sets for each of the plurality of nodes in the order of the plurality of nodes; a path creation process for creating, for each of the plurality of posture sets, a discrete path from the angle of each joint in a joint angle set selected as a first node among the plurality of nodes to the angle of each joint in a joint angle set selected as a last node among the plurality of nodes, thereby creating, for each of the plurality of posture sets, a plurality of path sets consisting of the paths of each of the plurality of joints; an evaluation process for selecting one of the plurality of path sets based on an evaluation of each of the plurality of path sets; Execute. Effect of the Invention

[0008] According to one aspect of the present invention, when a robot is controlled according to an operation program including one path set selected from a plurality of path sets, the joints of the robot do not make unnecessary movements. [Brief description of the drawings]

[0009] [Figure 1] FIG. 1 is a diagram showing a robot, a robot control device, and a teaching support device. [Diagram 2] FIG. 2 is a block diagram of the teaching support device. [Diagram 3] FIG. 3 is a diagram showing an example of the data configuration of the first node. [Figure 4] FIG. 4 is a diagram showing an example of the data configuration of a plurality of joint angle sets for node number "1." [Diagram 5] FIG. 5 is a diagram showing a set of joint angles from the first node to the last node. [Figure 6] FIG. 6 is a diagram showing the linkage between the joint angle set of the selected node number "1" and the joint angle set of the selected node number "2." [Figure 7] FIG. 7 is a diagram showing combinations of linked joint angle sets from the first node number to the last node number. [Figure 8] FIG. 8 is a chart showing an example of a joint path. [Figure 9] FIG. 9 is a data table showing the relationship between the evaluation rank and the score. [Figure 10] FIG. 10 is a data table showing the relationship between the evaluation rank and the score. [Figure 11] FIG. 11 is a data table showing the relationship between the evaluation rank and the score. [Figure 12] FIG. 12 is a data table showing the relationship between the evaluation rank and the score. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0010] Hereinafter, the embodiments will be described with reference to the drawings. The features and technical effects of the embodiments will be understood from the following detailed description and drawings. However, the scope of the present invention is not limited to the embodiments disclosed below. The drawings are provided for illustrative purposes only, and therefore the scope of the present invention is not limited to the illustrations in the drawings.

[0011] <1. Overview of the teaching support device> FIG. 1 is a diagram showing a robot 1, a robot control device 2, and a teaching support device 50.

[0012] The teaching support device 50 is a device that supports a teaching operation by an operator 99. The teaching operation refers to an operation in which the operator 99 uses the teaching support device 50 to teach the robot 1 so that the robot 1 can perform a desired operation. Specifically, when the operator 99 inputs data such as numerical values ​​and commands to the teaching support device 50, the teaching support device 50 creates an operation program executable by the robot control device 2. The operator 99 copies the operation program created by the teaching support device 50 to the robot control device 2 using a network or a portable storage medium.

[0013] The robot 1 is a vertical articulated robot with six degrees of freedom having six joints 1a. That is, the robot 1 has a base 1c at the proximal end of the robot 1, an end effector 1d at the distal end of the robot 1, and a plurality of joints 1a and links 1b connecting the base 1c and the end effector 1d. A plurality of links 1b are connected in series from the base 1c to the end effector 1d, and the joints 1a other than the most distal one connect adjacent links 1b, and the most distal joint 1a connects the end effector 1d and the most distal link 1b. The proximal side refers to the side closer to the base 1c of the robot 1, and the distal side refers to the side closer to the end effector 1d of the robot 1. The robot 1 is also called a manipulator. The end effector 1d is also called a tool. The number of joints of the robot 1 may be other than six, and may be, for example, three, four, five, or seven. In the following description, the number of joints of the robot 1 is six.

[0014] The operation program is executable by the robot control device 2. When the robot control device 2 controls the robot 1 according to the operation program, the robot 1 operates according to the control of the robot control device 2. The operation program includes time series data in which the postures of the robot 1 are arranged in time series. The postures of the robot 1 are represented by the angles of each joint 1a of the robot 1. In other words, the operation program includes time series data in which the angles of each joint 1a of the robot 1 are arranged in time series for each joint 1a. Such time series data is also called a path.

[0015] In the teaching operation, the worker 99 operates the teaching support device 50 to input a plurality of nodes to the teaching support device 50 in order in the absolute coordinate system. Then, the teaching support device 50 recognizes these nodes. The node refers to a waypoint through which the end effector 1d passes when the robot 1 operates according to the operation program. The first input node is the starting point where the movement of the end effector 1d starts when the robot 1 starts operating. The last input node is the end point where the movement of the end effector 1d ends when the robot 1 ends operating. The node represents the position and posture of the end effector 1d arranged at that node in a three-dimensional coordinate system. The three-dimensional coordinate system here refers to a base coordinate system based on the base 1c of the robot 1. The origin of the base coordinate system is determined, for example, on the base 1c of the robot 1, the position of the end effector 1d is represented by xyz coordinates in the base coordinate system, and the posture of the end effector 1d is represented by a roll angle, a pitch angle, and a yaw angle. The x-axis, y-axis, and z-axis in the base coordinate system are mutually perpendicular. The x-coordinate represents the position in the x-axis direction. The y-coordinate represents the position in the y-axis direction. The z-coordinate represents the position in the z-axis direction. The roll angle represents the rotation angle around the x-axis. The pitch angle represents the rotation angle around the y-axis. The yaw axis represents the rotation angle around the z-axis.

[0016] <2. Configuration of the teaching support device> FIG. 2 is a block diagram of the teaching support device 50. As shown in FIG. The teaching support device 50 is a computer system such as a laptop computer system, a tablet computer system, a desktop computer system, a cloud computer system, a host computer system, or a smartphone.

[0017] The teaching support device 50 includes a processor 51, a memory 52, an input device 53, a display device 54, and a storage 55. The teaching support device 50 may include components other than those illustrated in FIG.

[0018] The processor 51 is a computer having one or more CPUs (Central Processing Units). In addition to the CPU, the processor 51 may have a GPU (Graphics Processing Unit) that performs calculations under the command of the CPU. The processor 51 performs various calculation processes and also controls the entire teaching support device 50.

[0019] The memory 52 is configured by a RAM such as a volatile memory, etc. The memory 52 provides the processor 51 with a storage area and a working area for temporarily storing data during arithmetic processing by the processor 51.

[0020] The input device 53 is configured by devices such as a touch panel, a mouse, a touch pad, a starry skype, a pointing device, a keyboard, a key, or a push button. When the worker 99 performs a gesture such as pressing, moving, sliding, dragging, dropping, clicking, multi-clicking, touching, multi-touching, tapping, multi-tapping, or swiping on the input device 53, the processor 51 recognizes and acquires input information or a command corresponding to the gesture. A gesture is also called an operation.

[0021] The display device 54 is configured by a display device such as a liquid crystal display device or an organic EL (Electro Luminescence) display device, etc. The processor 51 generates a screen for implementing a GUI (Graphical User Interface), a video signal of the screen is output to the display device 54, and the display device 54 displays the screen in accordance with the video signal.

[0022] The storage 55 is configured by a storage device such as a semiconductor storage device or a magnetic storage device. The storage 55 may be a NAS (Network Attached Storage), a data server, a file server, or a cloud computing system connected to the teaching support device 50 via a computer network. An operating system (OS) is installed in the teaching support device 50, and various programs constituting the OS are stored in the storage. The processor 51 can execute various programs constituting the OS. The OS may be a general-purpose OS such as Windows (registered trademark), Android (registered trademark), iOS (registered trademark), macOS (registered trademark), Linux (registered trademark), or Unix (registered trademark). A program 56 is stored in the storage 55, and the program 56 is installed in the OS. The processor 51 can execute the program 56 on the OS. Specification data 57 available in the program 56 is stored in the storage 55.

[0023] The specification data 57 includes first movable range data 57a, link length data 57b, and singular posture data 57c. The first movable range data 57a represents the movable range of each joint 1a of the robot 1 by a maximum limit angle and a minimum limit angle. The link length data 57b represents the length of each link 1b of the robot 1. The singular posture data 57c represents an uncontrollable singular posture that the robot 1 cannot take by the angle of the joint 1a of the robot 1 that has taken the singular posture. A singular posture is also called a singular point.

[0024] <3. Operation of the teaching support device> The following describes the teaching operation performed by the operator using the teaching support device 50. Additionally, the following describes the flow of a series of processes executed by the processor 51 in accordance with the program 56.

[0025] (1) Startup When the operator 99 issues a command to start the program 56 by operating the input device 53, the processor 51 follows the command to start the program 56. Then, the processor 51 executes the following series of processes according to the program 56.

[0026] (2) Obtaining the position and attitude information of the first node The worker 99 operates the input device 53 to specify the first node, and then inputs the position information and the orientation information of the first node. Then, the processor 51 numbers the position information and the orientation information as the first node and stores them in the memory 52. ​​Such a number is hereinafter referred to as a node number. The node is composed of position information and orientation information in the base coordinate system. The position information represents the position of the end effector 1d in the base coordinate system. The orientation information represents the orientation of the end effector 1d in the base coordinate system. The node can be said to be a six-dimensional vector whose elements are the x-coordinate, y-coordinate, and z-coordinate of the position information, and the roll angle, pitch angle, and yaw angle of the orientation information. FIG. 3 is a data configuration diagram showing an example of the data configuration of the first node 61 stored in the memory 52. ​​(x_1, y_1, z_1) is the position information of the first node 61, and (roll_1, pitch_1, yaw_1) is the orientation information of the first node 61.

[0027] (3) Calculating the multiple joint angle set of No. 1 Next, the processor 51 uses the specification data 57, particularly the first movable range data 57a and the link length data 57b, to calculate a plurality of joint angle sets from the position information and posture information of the first node by inverse kinematic analysis. Each joint angle set expresses the posture of the robot 1 by the angle of each joint 1a of the robot 1. In other words, since the joint angle set is a combination of the angles of the six joints 1a of the robot 1, the joint angle set can also be said to be a six-dimensional vector with the angles of the six joints 1a of the robot 1 as elements. The calculated combination of the angles of the six joints 1a, that is, the joint angle set, expresses the posture of the robot 1 such that the end effector 1d takes a position and posture similar to the position information and posture information of the node. The joint angle set is also called a seed.

[0028] Next, the processor 51 stores the calculated sets of joint angles in the memory 52 in association with the node numbers. FIG. 4 is a data configuration diagram showing an example of the data configuration of the sets of joint angles 71 stored in the memory 52.

[0029] (4) Multiple nodes When the worker 99 performs similar operations one after another in ascending order of node numbers as in (2) above, the processor 51 performs the same processes as in (2) and (3) above for each similar operation. For this purpose, the processor 51 numbers the multiple nodes in ascending order as shown in Fig. 5, and stores the node numbers in the memory 52 in association with the multiple joint angle sets 71 for each node number.

[0030] (5) Combination Processing After calculating the multiple joint angle sets 71 for each node number, the processor 51 creates multiple posture sets by combining the joint angle sets selected from the multiple joint angle sets 71 for each node number in the order of the node numbers. The details are as shown in (5-1) and (5-2) below.

[0031] (5-1) Selection of initial posture The worker 99 operates the input device 53 to specify node number "1" and then selects one from the multiple joint angle sets 71 associated with node number "1". The processor 51 then recognizes the selected joint angle set 71. The selected joint angle set 71 represents the posture of the robot 1 such that the end effector 1d assumes a position and posture similar to the position information and posture information of node 61 No. 1. Note that the processor 51 may select one default from among the multiple joint angle sets 71 associated with node number "1", regardless of whether or not a selection has been made by the operator 99. The default joint angle set 71 represents a posture close to the standard posture of the robot 1.

[0032] Here, if A is an arbitrary integer equal to or greater than 1, hereinafter, the joint angle set 71 associated with node number "A" will be referred to as "the joint angle set 71 of node number "A"".

[0033] (5-2) Selecting the posture of the second and subsequent nodes Next, the processor 51 selects one or two from the multiple joint angle sets 71 of node number "2". The selection of one or two from the multiple joint angle sets 71 of node number "2" is specifically as follows.

[0034] Processor 51 subtracts the joint angle set 71 of the selected node number "1" from each joint angle set 71 of node number "2" to calculate the magnitude of the difference. Processor 51 compares the magnitudes of these differences and identifies the smallest difference, and if necessary, identifies the second smallest difference. Processor 51 selects the joint angle set 71 having the smallest difference from the multiple joint angle sets 71 of node number "2". Processor 51 selects the joint angle set 71 having the second smallest difference if necessary.

[0035] After selecting the joint angle set 71 of node number "2", the processor 51 links the selected joint angle set 71 of node number "2" to the selected joint angle set 71 of node number "1", as shown in Figure 6. In Figure 6, the line connecting the joint angle set 71 of node number "1" and the joint angle set 71 of node number "2" represents the linking between the joint angle set 71 of node number "1" and the joint angle set 71 of node number "2".

[0036] Thereafter, processor 51 executes the same process for node numbers "3" and onwards. In other words, if N is any integer between 2 and the total number of nodes, processor 51 selects one or two from the multiple joint angle sets 71 of node number "N", and then links the selected joint angle set 71 of node number "N" to the selected joint angle set 71 of node number "N-1".

[0037] By executing the above-mentioned processes, the processor 51 creates a combination of linked joint angle sets 71 from the first node number to the last node number as shown in Figure 7. In Figure 7, a line connecting two joint angle sets 71 represents the link between those joint angle sets 71.

[0038] Here, while creating combinations of joint angle sets 71 linked from the first node number to the last node number, processor 51 selects two from the multiple joint angle sets 71 of node number "Nth" twice. Therefore, the number of combinations of joint angle sets 71 linked from the first node number to the last node number is four. Note that processor 51 may select two from the multiple joint angle sets 71 of node number "Nth" three or more times, or may select two once. If the number of times is represented as m, the number of combinations is 2. m m is an integer between 1 and the total number of nodes minus 1.

[0039] Hereinafter, a combination of the joint angle sets 71 linked from the first node number to the last node number will be referred to as a posture set.

[0040] After creating a combination of joint angle sets 71 linked from the first node number to the last node number, processor 51 may subtract the joint angle set 71 of the selected last node number from each joint angle set 71 of node number "1" to calculate the magnitude of the difference. In this case, processor 51 compares the magnitudes of these differences and determines the smallest difference. Processor 51 selects the joint angle set 71 with the smallest difference from the multiple joint angle sets 71 of node number "1". Processor 51 executes process (5-2) again, regarding the joint angle set 71 of node number "1" selected in this manner as being selected in the above process (5-1). Therefore, a new combination of joint angle sets 71 linked from the first node number to the last node number is created. m A pair is created. m The pair combination is discarded and a new pair is created. m The combination of the sets may be used for further processing. m The combination of pairs and the newly created 2 m Both sets of combinations may be used for further processing.

[0041] (6) Creating a path set (6-1) The processor 51 uses a path creation algorithm to create, for each joint 1a, a discrete path as time series data based on the posture set, from the angle included in the joint angle set 71 of the first node number to the angle included in the joint angle set 71 of the last node number.

[0042] FIG. 8 is a chart showing an example of a path of one of the joints 1a, with the vertical axis representing the angle of that joint 1a and the horizontal axis representing the number of steps in a time series or time. A path is discrete time series data, and a collection of elements that make up the time series data is a path. An element is also called a waypoint. Since the number of joints 1a in the robot 1 is six, six paths, that is, six pieces of time series data, are created for each posture set. A combination of six paths for each posture set is called a path set. When the number of posture sets is two, m Therefore, the number of path sets is 2 m It is.

[0043] (6-2) Failure to create a path set and reselection of the initial posture Processor 51 may fail to create a path set for each posture set. For example, if processor 51 has not completed creating a path set for each posture set even after a predetermined time has elapsed since the start of processing of the path creation algorithm, the creation of the path set has failed. In such a case, processor 51 reselects another one from the multiple joint angle sets 71 associated with node number "1". The reselection of another one from the multiple joint angle sets 71 associated with node number "1" is performed as follows.

[0044] Processor 51 subtracts one or two joint angle sets 71 of node number "2" selected in (5-2) above from each joint angle set 71 of node number "1" and calculates the magnitude of the difference. Processor 51 compares the magnitudes of these differences and identifies the smallest difference. Processor 51 reselects the joint angle set 71 having the smallest difference from the multiple joint angle sets 71 of node number "1". After the reselection, processor 51 executes the processes of (5-2) and (6-1) above again.

[0045] (6-3) Re-failure in creating a path set and re-selection of the initial posture Even if processor 51 executes the above processes (5-2) and (6-1) again, processor 51 may fail again to create a path set for each posture set. For example, if processor 51 has not completed creating a path set for each posture set even after a predetermined time has elapsed since the start of processing of the path creation algorithm, the creation of the path set will have failed again. In such a case, processor 51 reselects another one of the multiple joint angle sets 71 associated with node number "1". The reselection of another one of the multiple joint angle sets 71 associated with node number "1" is as follows.

[0046] Processor 51 subtracts the joint angle set 71 of node number "1" that was initially selected from each joint angle set 71 of node number "2" and calculates the magnitude of the difference. Processor 51 compares the magnitudes of these differences and identifies the largest difference. Processor 51 designates the joint angle set 71 that has the largest difference from among the multiple joint angle sets 71 of node number "2". Processor 51 subtracts the designated joint angle set 71 of node number "2" from each joint angle set 71 of node number "1" and calculates the magnitude of the difference. Processor 51 compares the magnitudes of these differences and identifies the smallest difference. Processor 51 again selects the joint angle set 71 that has the smallest difference from among the multiple joint angle sets 71 of node number "1". After the third selection, processor 51 executes the above processes (5-2) and (6-1) again.

[0047] (7) Path set evaluation After the path set for each posture set is successfully created, the processor 51 evaluates each path set and selects one of the multiple path sets based on the evaluation of each path set. The evaluation process by the processor 51 includes a division evaluation process and a comprehensive evaluation process. The division evaluation process and the comprehensive evaluation process will be described in detail below.

[0048] (7-1) Department evaluation processing After the path set for each posture set is successfully created, the processor 51 evaluates each path set according to the following first to fifth evaluation criteria, thereby giving each path set an evaluation ranking. All of the following first to fifth evaluation criteria may be adopted, or any one, two, three or four of the first to fifth evaluation criteria may be adopted. The worker 99 may operate the input device 53 to input whether or not each of the following first to fifth evaluation criteria is adopted, and the processor 51 may determine whether or not each of the first to fifth evaluation criteria is adopted according to the input.

[0049] (7-1A) First Evaluation Criterion The processor 51 counts the total number of elements constituting the time series data, that is, the total number of waypoints, for each piece of time series data included in the path set (i.e., for each joint 1a). If necessary, the processor 51 may weight the total number by a weight specific to each joint 1a. The weight may be input by the operator 99 operating the input device 53. Processor 51 calculates an integrated value of the total numbers by accumulating the calculated total numbers for each path set. Hereinafter, the integrated value of the total numbers for each path set is also referred to as a first evaluation reference value.

[0050] The processor 51 compares the accumulated values ​​(first evaluation reference values) of the total numbers of these path sets, and ranks the path sets in ascending order of accumulated value of the total number. Therefore, the path set with the smallest accumulated value of the total number has the highest evaluation rank, and the path set with the largest accumulated value of the total number has the lowest evaluation rank.

[0051] The path creation algorithm has the characteristic that the greater the difference between the joint angle set 71 of a certain node number and the joint angle set 71 of the next node number, the more intervals are made between the paths between those nodes. Therefore, the greater the integrated value of the total number, the more complex each path in the path set. The smaller the integrated value of the total number, the simpler each path in the path set. Therefore, the lower the evaluation ranking of the path set, the more complex each path in the path set. The higher the evaluation ranking of the path set, the simpler each path in the path set.

[0052] (7-1B) Second Evaluation Criterion The processor 51 extracts, in a time series, minimum and maximum values ​​from among elements constituting the time series data for each of the time series data included in the path set (i.e., for each of the joints 1a). For each of the extracted minimum and maximum values, the processor 51 calculates the absolute value of the difference between the minimum or maximum value and the previous maximum or minimum value. If necessary, the processor 51 may weight the absolute value of the difference with a weight specific to each of the joints 1a. The weight may be input by the operator 99 operating the input device 53.

[0053] Next, processor 51 calculates an integrated value of the absolute values ​​by accumulating the absolute values ​​of the calculated differences for each path set. Hereinafter, the integrated value for each path set is also referred to as a second evaluation reference value.

[0054] Next, the processor 51 compares the integrated values ​​(second evaluation reference values) of these path sets, and ranks the path sets in ascending order of integrated value. Therefore, the path set with the smallest integrated value has the highest evaluation rank, and the path set with the largest integrated value has the lowest evaluation rank.

[0055] In addition, the larger the absolute value of the difference between the minimum or maximum value of the path of the joint 1a and the next maximum or minimum value, the larger the angle of the joint 1a. Therefore, the larger the integrated value of the path set, the more complex each path in the path set. The smaller the integrated value of the path set, the simpler each path in the path set. Therefore, the lower the evaluation ranking of the path set, the more complex each path in the path set. The higher the evaluation ranking of the path set, the simpler each path in the path set.

[0056] (7-1C) Third Evaluation Criterion The processor 51 extracts a maximum value and a minimum value from among the elements constituting the time series data for each of the time series data included in the path set (i.e., for each joint 1a). Next, the processor 51 calculates the absolute value of the difference between the maximum limit angle and the maximum value of the first movable range data 57a. Furthermore, the processor 51 calculates the absolute value of the difference between the minimum limit angle and the minimum value of the first movable range data 57a. If necessary, the processor 51 may weight the absolute value of the difference with a weight specific to each joint 1a. The weight may be input by the operator 99 operating the input device 53.

[0057] Next, processor 51 calculates an integrated value of the absolute values ​​by accumulating the absolute values ​​of the differences for each path set. Hereinafter, the integrated value for each path set is also referred to as a third evaluation reference value.

[0058] Next, the processor 51 compares the integrated values ​​(third evaluation criterion values) of these path sets, and ranks the path sets in descending order of integrated value. Therefore, the path set with the largest integrated value has the highest evaluation rank, and the path set with the smallest integrated value has the lowest evaluation rank.

[0059] In addition, the smaller the absolute value of the difference between the maximum value of the path of the joint 1a and the maximum limit angle, the smaller the rotational margin of the joint 1a. The larger the absolute value of the difference between the maximum value of the path of the joint 1a and the maximum limit angle, the larger the rotational margin of the joint 1a. The smaller the absolute value of the difference between the minimum value of the path of the joint 1a and the minimum limit angle, the smaller the rotational margin of the joint 1a. The larger the absolute value of the difference between the minimum value of the path of the joint 1a and the minimum limit angle, the larger the rotational margin of the joint 1a. Therefore, the lower the evaluation ranking of the path set, the smaller the rotational margin of the joint 1a. The higher the evaluation ranking of the path set, the larger the rotational margin of the joint 1a.

[0060] (7-1D) Fourth Evaluation Criterion The processor 51 calculates the minimum manipulability for each path set based on the multiple time-series data included in the path set and the singular posture data 57c. The manipulability is an index that indicates the difference between the angle of each joint 1a when the robot 1 takes a certain posture and the singular posture data 57c, and the smaller the manipulability, the closer the posture of the robot 1 is to the singular posture specified by the singular posture data 57c. Hereinafter, the minimum manipulability for each path set is also referred to as a fourth evaluation reference value.

[0061] Next, the processor 51 compares the minimum manipulability (fourth evaluation criterion value) of these path sets, and ranks the path sets in descending order of minimum manipulability. Therefore, the path set with the largest minimum manipulability has the highest evaluation rank, and the path set with the smallest minimum manipulability has the lowest evaluation rank.

[0062] The lower the evaluation rank of the path set, the smaller the margin of each joint 1a of the robot 1 from a singular posture. The higher the evaluation rank of the path set, the larger the margin of each joint 1a of the robot 1 from a singular posture.

[0063] (7-1E) Fifth Evaluation Criterion The processor 51 calculates the difference between each element constituting the time series data and the element immediately before it, and obtains the maximum difference for each piece of time series data included in the path set (i.e., for each joint 1a). If necessary, the processor 51 may weight the maximum difference with a weight specific to each joint 1a. The weight may be input by the operator 99 operating the input device 53.

[0064] Next, processor 51 calculates an integrated value of the maximum differences by integrating the maximum differences for each path set. Hereinafter, the integrated value for each path set is also referred to as a fifth evaluation reference value.

[0065] Next, the processor 51 compares the integrated values ​​(fifth evaluation criterion values) of these path sets, and ranks the path sets in ascending order of integrated value. Therefore, the path set with the smallest integrated value has the highest evaluation rank, and the path set with the largest integrated value has the lowest evaluation rank.

[0066] The difference between each element constituting the time series data and the element immediately preceding it represents the rate of change in the angle of the joint 1a per unit time. The greater the rate of change in the angle of the joint 1a per unit time, the higher the rotation speed of the joint 1a must be. If the rotation speed of the joint 1a increases, this may be disadvantageous in terms of noise, vibration, and power. Therefore, in the fifth evaluation criterion, the path sets are evaluated based on the integrated value of the maximum difference for each path set.

[0067] (7-2) Comprehensive evaluation process After the department evaluation process, processor 51 assigns a total score to each path set based on the evaluation ranking in accordance with the first to fifth evaluation criteria.

[0068] For example, processor 51 may assign scores to each path set in ascending order according to the ascending order of the evaluation rankings of the first to fifth evaluation criteria, and add up these scores for each path set to assign an overall score to each path set, as shown in Fig. 9. For example, processor 51 may assign scores to each path set in descending order according to the ascending order of the evaluation rankings of the first to fifth evaluation criteria, and add up these scores for each path set to assign an overall score to each path set. For example, as shown in Fig. 10, the processor 51 may assign a minimum score of "0" to the evaluation ranking "1st" according to the first to fifth evaluation criteria, assign a maximum score of "1" to the evaluation ranking "2nd to 4th" according to the first to fifth evaluation criteria, and add up these scores for each path set to assign a total score to the path set. For example, the processor 51 may assign a maximum score of "1" to the evaluation ranking "1st" according to the first to fifth evaluation criteria, assign a minimum score of "0" to the evaluation ranking "2nd to 4th" according to the first to fifth evaluation criteria, and add up these scores for each path set to assign a total score to the path set.

[0069] The processor 51 may weight the points assigned to the evaluation ranking according to any one of the first to fifth evaluation criteria. The weight may be input by the operator 99 operating the input device 53.

[0070] For example, as shown in FIG. 9, the processor 51 assigns unweighted scores to each path set in ascending order according to the ascending order of the evaluation ranking according to the first, third, and fourth evaluation criteria. Furthermore, as shown in FIG. 11, the processor 51 assigns weighted scores to each path set in ascending order according to the ascending order of the evaluation ranking according to the second evaluation criterion. The weighted scores in FIG. 11 are obtained by multiplying the unweighted scores in FIG. 9 by a weight of "2". Furthermore, as shown in FIG. 12, the processor 51 assigns weighted scores to each path set in ascending order according to the ascending order of the evaluation ranking according to the fifth evaluation criterion. The weighted scores in FIG. 12 are obtained by multiplying the unweighted scores in FIG. 9 by a weight of "1.5". Then, the processor 51 assigns a total score to the path set by totaling these scores for each path set. Processor 51 may assign a weight "0" to the score of the evaluation ranking according to the unadopted criterion among the first to fifth evaluation criteria. In this case, the unadopted criterion is ignored.

[0071] After assigning an overall score to each path set, processor 51 assigns an overall ranking to each path set based on the overall score assigned to each path set. For example, when processor 51 assigns scores to each path set in ascending order according to the ascending order of the evaluation rankings of the first to fifth evaluation criteria as shown in Fig. 9, processor 51 assigns an overall ranking to each path set in ascending order according to the ascending order of the overall scores. For example, when processor 51 assigns scores to each path set in descending order according to the ascending order of the evaluation rankings of the first to fifth evaluation criteria, processor 51 assigns an overall ranking to each path set in ascending order according to the descending order of the overall scores. Note that the path set that is assigned the overall ranking "1st place" has the best evaluation.

[0072] Next, processor 51 compares the overall rankings of the path sets and selects the path set that has been given the overall ranking "1st place."

[0073] (8) Creating an operating program The processor 51 creates an operation program including the path set that has been assigned the overall ranking of “1st.” The processor 51 records the operation program in the storage 55.

[0074] <4. Summary> A path set is made up of paths whose number corresponds to the number of joints 1a of the robot 1. A path is discrete time-series data that represents the transition of the angle of the joints 1a of the robot 1. The processor 51 evaluates each such path set. Based on the evaluation of each path set, the processor 51 selects the path set with the best evaluation from among the multiple path sets. Therefore, when the robot 1 is controlled according to an operation program that includes the path set with the best evaluation, the joints 1a of the robot 1 do not make unnecessary movements.

[0075] The evaluation process by the processor 51 consists of a department evaluation process and an overall evaluation process. In the department evaluation process, the processor 51 evaluates each pass set according to the first to fifth evaluation criteria, thereby giving each pass set an evaluation ranking. In the overall evaluation process, the processor 51 gives each pass set a total score based on the evaluation ranking according to the first to fifth evaluation criteria, and gives each pass set an overall ranking based on the total score given to each pass set. Such an evaluation method realizes multifaceted evaluation of each pass set from various viewpoints. Therefore, the operation program including the pass set with the best evaluation has a high probability of eliminating unnecessary movement of the joint 1a of the robot 1.

[0076] A path set to be evaluated is created for each posture set. These posture sets are candidates narrowed down by the above-mentioned combination process. Therefore, the burden of the path set creation process and evaluation process is low, and the time and resources required for the processor 51 to execute these processes are reduced.

[0077] When creating a posture set, processor 51 subtracts joint angle set 71 of the selected N-1th node from each of the multiple joint angle sets 71 of the Nth node. Processor 51 compares the magnitude of these differences to select the joint angle set having the smallest difference from the multiple joint angle sets of the Nth node. Processor 51 links the joint angle set of the selected Nth node to the joint angle set of the selected N-1th node. In this way, processor 51 creates a posture set. These processes contribute to the creation of a path set that is more likely to have a good evaluation. [Explanation of symbols]

[0078] 1. Robot 1a Joint 50 Teaching support device 51 Processors 55 Storage 56 Programs 57 Specification Data 71 joint angle set

Claims

1. To the processor, An acquisition process of sequentially acquiring a plurality of nodes including position information and posture information of an end effector of an articulated robot having a plurality of joints and an end effector; a calculation process of calculating a plurality of joint angle sets expressing angles of the plurality of joints from the position information and the posture information included in each of the plurality of nodes acquired by the acquisition process; a combination process for creating a plurality of posture sets by combining and linking a joint angle set selected from the plurality of joint angle sets for each of the plurality of nodes in the order of the plurality of nodes; a path creation process for creating, for each of the plurality of posture sets, a discrete path from the angle of each joint in a joint angle set selected as a first node among the plurality of nodes to the angle of each joint in a joint angle set selected as a last node among the plurality of nodes, thereby creating, for each of the plurality of posture sets, a plurality of path sets consisting of the paths of each of the plurality of joints; an evaluation process for selecting one of the plurality of path sets based on an evaluation of each of the plurality of path sets; A program that executes the following.

2. The evaluation of each of the plurality of path sets in the evaluation process is a comprehensive evaluation of evaluations according to a plurality of evaluation criteria. The program according to claim 1.

3. The evaluation process includes: A process of evaluating each of the plurality of path sets based on an integrated value of the total number of elements of the paths included in each of the plurality of path sets. Includes The program according to claim 1.

4. The evaluation process includes: a process of evaluating each of the plurality of path sets based on an integrated value of absolute values ​​of differences between minimum values ​​and maximum values ​​extracted from elements of paths included in each of the plurality of path sets; Includes The program according to claim 1.

5. The evaluation process includes: A process of evaluating each of the plurality of path sets based on an integrated value of an absolute value of a difference between a maximum value extracted from among the path elements included in each of the plurality of path sets and a maximum limit angle of the joint, and an absolute value of a difference between a minimum value extracted from among the path elements included in each of the plurality of path sets and a minimum limit angle of the joint. Includes The program according to claim 1.

6. The evaluation process includes: A process of evaluating each of the plurality of path sets based on a minimum manipulability calculated from each of the plurality of path sets and singular posture data of the articulated robot. Includes The program according to claim 1.

7. The evaluation process includes: A process of evaluating each of the plurality of path sets based on a maximum difference among differences between each element of a path included in each of the plurality of path sets and an element immediately before that element. Includes The program according to claim 1.

8. The evaluation process includes: a first evaluation process for evaluating each of the plurality of path sets based on an integrated value of a total number of elements of paths included in each of the plurality of path sets; a second evaluation process for evaluating each of the plurality of path sets based on an integrated value of absolute values ​​of differences between minimum values ​​and maximum values ​​extracted from elements of paths included in each of the plurality of path sets; a third evaluation process for evaluating each of the plurality of path sets based on an integrated value obtained by integrating an absolute value of a difference between a maximum value extracted from among elements of paths included in each of the plurality of path sets and a maximum limit angle of the joint, and an absolute value of a difference between a minimum value extracted from among elements of paths included in each of the plurality of path sets and a minimum limit angle of the joint; a fourth evaluation process for evaluating each of the plurality of path sets based on a minimum manipulability calculated from each of the plurality of path sets and singular posture data of the articulated robot; a fifth evaluation process for evaluating each of the plurality of path sets based on a maximum difference among differences between each element of a path included in each of the plurality of path sets and an element immediately preceding the element; a comprehensive evaluation process for selecting a path set having the best comprehensive evaluation from among the plurality of path sets by comprehensively evaluating the evaluations obtained by the first evaluation process, the second evaluation process, the third evaluation process, the fourth evaluation process, and the fifth evaluation process; Includes The program according to claim 1.

9. The comprehensive evaluation process includes: A process of performing a comprehensive evaluation by weighting the evaluations performed in the first evaluation process, the second evaluation process, the third evaluation process, the fourth evaluation process, and the fifth evaluation process. Includes The program according to claim 8.

10. The evaluation process includes: A process for determining whether or not to adopt each of the first evaluation process, the second evaluation process, the third evaluation process, the fourth evaluation process, and the fifth evaluation process in accordance with an operation by an operator. Includes The program according to claim 8.

11. The combination process includes: a first selection process for selecting one joint angle set from the plurality of joint angle sets for a first node among the plurality of nodes; a second selection process in which, when N is any integer between 2 and the total number of the plurality of nodes, for nodes 2 and onwards among the plurality of nodes, the joint angle set of the selected (N-1)th node is subtracted from each of the plurality of joint angle sets of the (N)th node, and the magnitudes of these differences are compared to select a joint angle set having the smallest difference from among the plurality of joint angle sets of the (N)th node, and the joint angle set of the selected (N-1)th node is linked to the joint angle set of the selected (N-1)th node; Includes The program according to claim 1.

12. In the second selection process, in addition to the joint angle set having the smallest difference, a joint angle set having the second smallest difference is selected from the plurality of joint angle sets of the Nth node. The program according to claim 11.

13. When m is an integer ranging from 1 to the total number of the plurality of nodes minus 1, the number of times that the joint angle set having the smallest difference and the joint angle set having the second smallest difference are selected from the plurality of joint angle sets of the Nth node is m. The program according to claim 12.

14. In the first selection process, one of the plurality of joint angle sets of the first node is selected by an operator's designation, selected by a default designation, selected based on the joint angle set selected for the last node, or reselected based on the joint angle set selected for the second node. The program according to claim 11.

15. Equipped with a processor, The processor, An acquisition process of sequentially acquiring a plurality of nodes including position information and posture information of an end effector of an articulated robot having a plurality of joints and an end effector; a calculation process of calculating a plurality of joint angle sets expressing angles of the plurality of joints from the position information and the posture information included in each of the plurality of nodes acquired by the acquisition process; a combination process for creating a plurality of posture sets by combining and linking a joint angle set selected from the plurality of joint angle sets for each of the plurality of nodes in the order of the plurality of nodes; a path creation process for creating, for each of the plurality of posture sets, a discrete path from the angle of each joint in a joint angle set selected as a first node among the plurality of nodes to the angle of each joint in a joint angle set selected as a last node among the plurality of nodes, thereby creating, for each of the plurality of posture sets, a plurality of path sets consisting of the paths of each of the plurality of joints; an evaluation process for selecting one of the plurality of path sets based on an evaluation of each of the plurality of path sets; Run Teaching support device.

Citation Information

Patent Citations

  • Instruction support device for robot

    JP2007203380A

  • Program generation system, robot system, program generation method and generation program

    JP2022076814A