Programming device

The programming device simplifies the determination of teaching points for measurement programs by calculating optimal measurement locations and distances, enhancing measurement accuracy and reducing correction time.

DE112022007262T5Pending Publication Date: 2025-03-13FANUC LTD
View PDF 2 Cites 0 Cited by

Patent Information

Application Number
DE112022007262
Authority / Receiving Office
DE · DE
Patent Type
Applications
Current Assignee / Owner
Filing Date
2022-08-01
Publication Date
2025-03-13

AI Technical Summary

Technical Problem

The determination of measuring locations on an object to be measured is largely dependent on operator experience, leading to difficulties in ensuring that the distance between measurement locations is not shorter than a specified distance and that an area wider than a specified area is measured, which results in reduced accuracy and increased time for correction.

Method used

A programming device that creates a measurement program by determining a large number of measurement locations on an object model, calculating the distances between neighboring locations, evaluating the area, and generating teaching points to ensure measurements can be carried out with specified accuracy.

Benefits of technology

Enables the easy determination of teaching points for a measurement program, improving measurement accuracy by ensuring adequate distances and areas are measured, thereby reducing the risk of misalignment and minimizing the time required for correction.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The present invention makes it possible to easily define the blanking points of a measurement program that measures a plurality of measurement points on a test object. A programming device is provided for creating a measurement program that arranges an industrial machine system model, comprising an industrial equipment model and a test object model, in a virtual space and measures a plurality of measurement locations on the test object model.The programming device comprises: a unit for defining measurement locations, which defines a plurality of measurement locations on the model of the object being measured; a unit for calculating distances, which calculates the distance between each adjacent measurement location in an area formed by connecting the plurality of measurement locations; a unit for calculating areas, which calculates the area of ​​the area; a unit for evaluating measurement locations, which, based on the distance between each adjacent measurement location and the area, evaluates whether a measurement with a preset and specified or higher accuracy is possible at the plurality of measurement locations; and a unit for generating blanks, which generates the plurality of measurement locations as blanks to be measured by an industrial machine when the unit for evaluating measurement locations evaluates that a measurement with the specified or higher accuracy is possible.
Need to check novelty before this filing date? Find Prior Art

Description

Technical field

[0001] The present invention relates to a programming device. Background technology

[0002] A technique is known in which: a workpiece model, a robot model, and an imaging unit model are arranged in a virtual space; target locations on the workpiece model, corresponding to the locations to be mapped on a workpiece, are extracted according to preset extraction conditions; the imaging unit model or the workpiece model is moved by the robot model to an imaging position where the target locations are within the field of view of the imaging unit model; and an operating program that causes the imaging unit to map the locations to be mapped is generated based on position data relating to the robot model, obtained when the robot model positions the imaging unit model or the workpiece model at the imaging position, thereby reducing the tasks that the operator must perform to generate the operating program for the robot.Reference should be made, for example, to patent document 1. List of prior art documents

[0003] Patent Document 1: Japanese Unexamined Patent Application Publication No. 2019-18250 Disclosure of the invention Problems to be solved by the invention

[0004] When measuring a large number of locations on an object to be measured, such as a workpiece, using a measurement program, the measuring points (measurement locations) for the measurement program must be set so that: the distance between the measuring points is not shorter than a specified distance; and an area on the object to be measured is measured that is wider than a specified area.

[0005] Therefore, if the measurement in virtual space and in real space is carried out precisely, with the distance between adjacent measuring points being appropriately set for the measurement program so that the distance between the measuring points is not shorter than the specified distance, and an area on the object to be measured is measured that is wider than the specified area, the accuracy of the calculation of a position error between an object model to be measured in virtual space and the object to be measured in real space is improved, so that a misalignment after the correction between the position of the object model to be measured in virtual space and the position of the object to be measured in real space can be prevented.

[0006] Conversely, if the distance between adjacent measuring points for the measurement program is not appropriately defined, e.g., if the distance between the measuring points is shorter than the specified distance, if a narrow area on the object to be measured is measured that is equal to or smaller than the specified area, or if the measuring points on the object to be measured are arranged in a straight line, then the accuracy of calculating an error between positions on the object model to be measured in virtual space and positions on the object to be measured in real space decreases, even if the measurement in virtual space and in real space is carried out accurately, and thus the misalignment after correction between the position of the object model to be measured in virtual space and the position of the object to be measured in real space can increase.

[0007] However, determining the measurement locations on the object to be measured largely depends on the operator's experience, and it would be difficult for an inexperienced operator to determine the measurement locations in such a way that the distance between the measurement locations is not shorter than the specified distance and an area on the object to be measured is measured that is wider than the specified area, which leads to the problem that time is needed for trial and error to determine suitable measurement locations.

[0008] If the measurement locations are not correctly defined and the misalignment after correction between the position of the object model to be measured in virtual space and the position of the object to be measured in real space increases, the process must be repeated, starting with the creation of the measurement program in virtual space, which leads to the problem of a large loss of time.

[0009] Accordingly, it is desirable to enable the simple setting of reference points for a measurement program to measure a large number of measurement locations on an object to be measured. Means to solve the problems

[0010] One aspect of the programming device of the present disclosure provides a programming device for creating a measurement program, wherein the measurement program serves to arrange in a virtual space an industrial machine system model, which three-dimensionally represents an industrial machine system comprising an industrial machine and an object to be measured, and comprising an industrial equipment model and an object model to be measured, and serves to measure a plurality of measurement locations on the object model to be measured, the programming device comprising: a unit for defining measurement locations, which is configured to define the plurality of measurement locations on the object model to be measured; a unit for calculating distances, which is configured to calculate the distances between each adjacent measurement locations in a region formed by linking the plurality of measurement locations;A unit for calculating areas, configured to calculate the area of ​​the range; a unit for evaluating measurement locations, configured to evaluate, based on the area and distances between adjacent measurement locations, whether a measurement can be performed at the multitude of measurement locations with a predetermined or higher accuracy; and a unit for generating blanks, configured to generate the multitude of measurement locations as blanks to be measured by the industrial machine when the unit for evaluating measurement locations has evaluated that a measurement can be performed with the predetermined or higher accuracy. Effects of the invention

[0011] According to one aspect, learning points for the measurement program for measuring a large number of measurement locations on an object to be measured can be easily determined. Brief description of the drawings Fig. Figure 1 is a functional block diagram showing a functional configuration example of a programming device according to a first embodiment; Fig. Figure 2 shows an example of an industrial machine system model in a virtual space; Fig. Figure 3 shows an example of a situation in which a large number of measurement locations have been specified; Fig. Figure 4 shows an example of a situation in which a large number of measurement locations have been specified; Fig. Figure 5 shows an example of a situation in which a large number of measurement locations have been specified; Fig. Figure 6 shows an example of a situation in which a large number of measurement locations have been specified; Fig. Figure 7 shows an example of the process of measuring locations, which is carried out by a robot model; Fig. Figure 8 shows an example of the process of measuring locations, which is carried out by a robot model; Fig. Figure 9 shows an example of the process of measuring locations, which is carried out by a robot model; Fig. Figure 10 shows an example of the relationship between the positions of measurement points measured on a workpiece model in a virtual space and the positions of the measurement points measured on a workpiece in real space; Fig. Figure 11 shows an example of the arrangement position of the workpiece model in the virtual space after correction; Fig. 12 is a flowchart showing the correction processing performed by the programming device; Fig. 13 is a functional block diagram showing a functional configuration example of a programming device according to a second embodiment; Fig. Figure 14 shows an example of shape-related features on a workpiece model; Fig. Figure 15 is a flowchart showing the correction processing performed by the programming device; and Fig. Figure 16 shows an example of a situation in which a model of a visual sensor was attached to the tool front end of the robot model. Preferred method of implementation of the invention: First embodiment

[0012] First, an overview of the present embodiment is described. In the present embodiment, a programming device for creating a measurement program comprises, wherein the measurement program serves to arrange in a virtual space an industrial machine system model that three-dimensionally represents an industrial machine system comprising an industrial machine and an object to be measured, and includes an industrial equipment model and an object model to be measured, and serves to measure a plurality of measurement locations on the object model to be measured, comprising: defining a plurality of measurement locations selected by a user on the object model to be measured; calculating the distances between adjacent measurement locations in an area formed by linking the plurality of defined measurement locations; calculating the area of ​​the area;The evaluation, based on the area and distances between adjacent measuring points, of whether a measurement can be carried out at the multitude of measuring points with a predetermined or higher accuracy; and the generation of the multitude of measuring points as blanking points to be measured by the industrial machine, if it has been evaluated that the measurement can be carried out with the predetermined or higher accuracy.

[0013] According to the present embodiment, as a result, teaching points for the measurement program for measuring a large number of measurement locations on an object to be measured can be easily determined.

[0014] The above is an overview of the present embodiment.

[0015] Features of the present embodiment are described in detail below with reference to the drawings. In the example shown below, a rework pen is attached to the front tool end of a robot, which serves as an industrial machine for measuring a workpiece, i.e., an object to be measured. It should be noted that the present invention can also be applied, for example, to situations in which a visual sensor for detection is attached to the front tool end of the robot for measuring the workpiece. The present invention can also be applied to various machines such as machine tools, industrial robots, service robots, forging presses, and injection molding machines, which serve as industrial machines.

[0016] The Fig. Figure 1 is a functional block diagram showing a functional configuration example of the programming device according to the first embodiment.

[0017] As in the Fig. Figure 1 shows that the programming device 1 is a generally known computer and comprises a control unit 10, an input unit 11, a display unit 12, and a storage unit 13. The control unit 10 includes a unit 101 for creating virtual spaces, a unit 102 for arranging three-dimensional models, a unit 103 for defining measurement locations, a unit 104 for calculating distances, a unit 105 for calculating areas, a unit 106 for evaluating measurement locations, a unit 107 for generating blank points, a unit 108 for measuring measurement locations, a unit 109 for calculating arrangement position errors, and a unit 110 for correcting arrangement positions.

[0018] The programming device 1 can be connected to a robot controller (not shown) via a network, such as a local area network (LAN) or the internet, to control the operation of a robot (not shown). Alternatively, the programming device 1 can be connected directly to the robot controller (not shown) via a connection interface (not shown). Input unit 11

[0019] The input unit 11 is, for example, a keyboard or touch panel that is arranged on the display unit 12 (described below) and receives input from a user. Display unit 12

[0020] The display unit 12 is, for example, a liquid crystal display. As described below, the display unit 12 displays, for example, 3D CAD data or the like, which is entered (selected) by the user via the input unit 11 and represents a robot (not shown) in three dimensions (hereinafter referred to as the "robot model"), as well as 3D CAD data or the like that represents a pen (not shown) in three dimensions, which is positioned at the front end of the robot's tool for measuring an object to be measured (hereinafter referred to as the "pen model"), 3D CAD data or the like that represents a workpiece in three dimensions, consisting of the object to be measured by the pen (not shown) (hereinafter referred to as the "workpiece model"), and 3D CAD data or the like that represents, for example, a jig in three dimensions (hereinafter referred to as the "peripheral device model"). Storage unit 13

[0021] Storage unit 13 is a solid-state drive (SSD), a hard disk drive (HDD), or the like, and can, for example, store a measurement program for operating the robot (not shown) to have the pen measure the workpiece. Storage unit 13 also includes a model storage unit 131.

[0022] The model storage unit 131 stores, for example: 3D CAD data that is entered (selected) by the user via the input unit 11 as described above and that relates to the robot (not shown) displayed on the display unit 12 (robot model); 3D CAD data that relates to the pen (not shown) (pen model); 3D CAD data that relates to the workpiece (not shown) (workpiece model); and 3D CAD data that relates to a fixture (not shown) (peripheral device model). Control unit 10

[0023] The control unit 10 comprises, for example, a central processing unit (CPU), a read-only memory (ROM), a random access memory (RAM) and a complementary metal oxide semiconductor memory (CMOS), which are generally known to those skilled in the art and are configured to communicate with each other via a bus.

[0024] The CPU is a processor that controls the entire programming device 1. The CPU reads a system program and an application program, stored in ROM, via the bus and controls the entire programming device 1 according to the system program and the application program. As described in the Fig. As specified in 1, the control unit 10 is configured to implement the functions of unit 101 for creating virtual spaces, unit 102 for arranging three-dimensional models, unit 103 for defining measurement locations, unit 104 for calculating distances, unit 105 for calculating areas, unit 106 for evaluating measurement locations, unit 107 for generating blank points, unit 108 for measuring measurement locations, unit 109 for calculating arrangement position errors, and unit 110 for correcting arrangement positions. The RAM stores various types of data, such as temporary computational data and display data. The CMOS memory is designed as non-volatile memory, backed up by a battery (not shown), and its memory state is retained even when the programming device 1 is switched off.

[0025] Unit 101, for creating virtual spaces, creates a virtual space that represents a three-dimensional work area in which the robot (not shown), the pen (not shown), the workpiece (not shown), and peripheral devices such as a fixture (not shown) are arranged.

[0026] For example, Unit 102 arranges three-dimensional models according to an input operation performed by the user at Input Unit 11, including a robot model of the robot (not shown), a pen model of the pen (not shown), a workpiece model of the workpiece (not shown), and a peripheral device model, for example, of a device (not shown), in the three-dimensional virtual space created by Unit 101 for creating virtual spaces.

[0027] In particular, unit 102 for arranging three-dimensional models reads a robot model of the robot not shown from model storage unit 131 in order to arrange the robot in the virtual space. Unit 102 for arranging three-dimensional models then arranges the read-out robot model in the virtual space.

[0028] The unit 102 for arranging three-dimensional models also reads a pen model of the pen (not shown) from the model storage unit 131 in order to arrange the pen model at the tool end of the robot in virtual space. The unit 102 for arranging three-dimensional models positions the pen model of the read-out pen in virtual space such that the pen model is attached to the tool end of the robot model.

[0029] Unit 102 for arranging three-dimensional models also reads a workpiece model of the unseen workpiece from model storage unit 131 in order to arrange the workpiece model in virtual space. Unit 102 for arranging three-dimensional models then arranges the workpiece model of the read-out workpiece in virtual space.

[0030] The unit 102 for arranging three-dimensional models also reads a peripheral device model, for example of a device not shown, from the model storage unit 131 in order to arrange the peripheral device model in virtual space. The unit 102 for arranging three-dimensional models then arranges the read-out peripheral device model in virtual space.

[0031] The Fig. Figure 2 shows an example of the industrial machine system model in the virtual space.

[0032] For example, in the Fig. As shown in Figure 2, the upper surface of the workpiece model has a multitude of holes. However, the upper surface of the workpiece model is not limited to having a multitude of holes, but can also, for example, have a multitude of protrusions.

[0033] Unit 103 for defining measurement locations defines a variety of measurement locations on the workpiece model, i.e., an object model to be measured.

[0034] In particular, for the purpose of defining measurement locations, the unit 103 extracts, for example, on the basis of an input operation carried out by the user at the input unit 11, a predetermined number of shape-related features in response to, for example, the centers of the holes in the workpiece model being clicked with a mouse or touched with a touch panel as shape-related features, and defines the extracted shape-related features as a multitude of measurement locations.

[0035] The following description is based on the assumption that the specified number is three, but the description is also applicable if the specified number is four or more. Unit 103 for defining measurement locations can also extract the center points of the projections onto a workpiece model as shape-related features.

[0036] The Fig. Figure 3 shows an example of a situation in which a large number of measurement locations have been defined. In the Fig. Three cross markings indicate the designated measuring points.

[0037] Unit 104 for calculating distances calculates the distances between adjacent measuring points in an area formed by linking the specified number of measuring points defined by Unit 103 for defining measuring points.

[0038] In particular, the unit 104 is used to calculate distances, as in the Fig. Figure 3 specifies the distances (a, b, c, d) between adjacent measuring points and a length d (= a + b + c) of the perimeter of the triangle, i.e., the sum of the distances (a, b, c). Unless otherwise specified, the length d of the perimeter may be referred to as "distance d" in the following.

[0039] Unit 105, used for calculating areas, calculates the area A of the triangular region enclosed by the measuring points, using a technique generally known to professionals. It should be noted that if the given number is four or greater, the shape of the region is a polygon with four or more sides.

[0040] Based on the distances (a, b, c, d) calculated by Unit 104 for calculating distances and the area A calculated by Unit 105 for calculating areas, Unit 106 evaluates whether a measurement can be carried out at the measurement locations specified by Unit 103 for determining measurement locations with the predetermined specified or higher accuracy.

[0041] For example, if three adjacent shape-related features were defined as multiple measurement locations in a manner as described in the Fig. As shown in Figure 4, the distances (a, b, c, d) and the area A are not equal to or greater than a distance threshold Th1 and an area threshold Th2, which specify the required accuracy, because the large number of measurement locations are excessively close together. Therefore, unit 106, used for evaluating measurement locations, concludes that at the locations shown in the Fig. No measurement with the specified or higher accuracy can be performed at the four defined measurement locations. Since the error can increase with increasing distance from the multitude of defined measurement locations, in this case, the unit 106 for evaluating measurement locations can display, for example, the message "Sufficient measurement accuracy cannot be achieved because the distances between the measurement locations are short and the measuring range is therefore narrow" on the display unit 12, prompting the user to reset the measurement locations. It should be noted that the distance threshold Th1 and the area threshold Th2, which specify the required accuracy, are preferably defined in advance according to, for example, the shape and size of the workpiece.

[0042] If, meanwhile, as in the Fig. Figure 5 shows three shape-related features arranged on the same straight line. When a multitude of measurement locations were defined, the area A of region "0" is determined, and thus the area threshold Th2, which specifies the given accuracy, is neither reached nor exceeded. Therefore, unit 106 evaluates measurement locations, indicating that the multitude of in the Fig. If no measurement with the specified or higher accuracy can be performed at the 5 defined measuring locations, and the accuracy of the workpiece's (object to be measured's) rotation may not be adequately achieved, the unit 106 for evaluating measuring locations may, for example, display a message in the display unit 12 stating "Sufficient measurement accuracy cannot be achieved because the measuring locations are arranged on a straight line," prompting the user to reset the measuring locations.

[0043] If, meanwhile, three form-related characteristics have been defined as a multitude of measurement points in a manner as described in the Fig. As shown in Figure 6, at least the area A of the region is smaller than the area threshold Th2, so that unit 106 evaluates the measurement locations, which is due to the large number of measurement locations in the Fig. If the measurement location is set to 6, no measurement with the specified or higher accuracy can be performed. In this case, the unit 106 for evaluating measurement locations can display a message on the display unit 12, for example, "Although the distances between the measurement locations are sufficient, sufficient measurement accuracy may not be achieved because the measuring range is narrow," prompting the user to reset the measurement locations.

[0044] If, meanwhile, three form-related characteristics have been defined as a multitude of measurement points in a manner as described in the Fig. As shown in Figure 3, the distances (a, b, c, d) and the area A are equal to or greater than the distance threshold Th1 and the area threshold Th2, so that unit 106 evaluates the measurement locations, indicating that the multitude of in the Fig. At three defined measurement points, a measurement can be performed with the specified or higher accuracy. Since the measurement accuracy is improved by capturing a wide area on the workpiece (object to be measured), in this case the unit 106 for evaluating measurement points can display a message such as "Both the distances between the measurement points and the measurement range are sufficient, so it can be assumed that sufficient measurement accuracy can be achieved" in the display unit 12.

[0045] When the unit 106 for evaluating measurement locations has determined that a measurement can be carried out with the specified or higher accuracy, the unit 107 for generating blank points generates the multitude of specified measurement locations as blank points to be measured by the robot (not shown) and specifies the same for the measurement program.

[0046] For example, the Unit 108 for measuring measurement locations measures the positions of the multitude of measurement locations on the workpiece model by executing the measurement program in virtual space for which the multitude of measurement locations were defined as guide points, and measures the positions of the multitude of measurement locations on the workpiece by executing the same measurement program in real space.

[0047] In particular, unit 108 operates the robot model for measuring measurement locations, for example by executing the measurement program in virtual space, as in the Fig. The three measuring locations (gap points) on the workpiece model are shown in the diagram, which uses the pin model attached to the front tool end of the robot model to correct the positions of the three measuring locations (gap points) and to measure the positions of the three measuring locations (gap points). The measuring location unit 108 stores the measured positions of the three measuring locations (gap points) in the memory unit 13.

[0048] Next, unit 108 controls the robot (not shown) for measuring measurement locations by executing the measurement program in real space, as in the case of the Fig. 7 to 9, to adjust the three measuring locations (gap points) on the workpiece (not shown) using the pin (not shown) attached to the front tool end of the robot (not shown), and to measure the positions of the three measuring locations (gap points). The measuring location unit 108 stores the measured positions of the three measuring locations (gap points) in the memory unit 13.

[0049] For example, unit 109 is used to calculate arrangement position errors, as in the Fig. 10, an arrangement position error between the workpiece model in virtual space and the workpiece (not shown) in real space using a technique generally known to those skilled in the art based on the positions of the three measurement locations on the workpiece model in virtual space and the positions of the three measurement locations on the workpiece (not shown) in real space.

[0050] As in the Fig. As specified in 11, the unit 110 for correcting arrangement positions corrects the arrangement position of the workpiece model in virtual space so that the arrangement position error calculated by the unit 109 for calculating arrangement position errors is eliminated. Correction processing performed by programming device 1

[0051] The correction processing performed by the programming device 1 is described below with reference to the Fig. 12 described.

[0052] The Fig. Figure 12 is a flowchart showing the correction processing performed by the programming device 1. The flow shown here is executed each time the measurement program is created.

[0053] In step S1, the unit 102 arranges three-dimensional models according to an input operation performed by the user at the input unit 11. These models include a robot model of a robot (not shown), a pen model of a pen (not shown), a workpiece model of a workpiece (not shown), and a peripheral device model, for example, of a device (not shown), in a virtual space created by the unit 101. The robot model, the pen model, and the workpiece model form an industrial machine system model.

[0054] In step S2, unit 103 defines a large number of measurement locations on the workpiece model for the purpose of defining measurement locations.

[0055] In step S3, the unit 104 calculates the distances (a, b, c, d) between adjacent measuring points.

[0056] In step S4, the unit 105 calculates the area A of a region formed by linking the multitude of measurement locations defined in step S2.

[0057] In step S5, unit 106 evaluates, based on the distances (a, b, c, d) calculated in step S3 and the area A calculated in step S4, whether a measurement can be carried out at the multitude of measurement locations defined in step S2 with a predetermined or higher accuracy.

[0058] If step S5 determines that a measurement can be performed with the specified or higher accuracy, unit 107 generates the multitude of specified measurement locations as blanks in step S6, which the robot (not shown) is to measure, and sets the same for the measurement program. If step S5 determines that a measurement with the specified or higher accuracy cannot be performed, programming device 1 returns to the process of step S2.

[0059] In step S7, the unit 108 measures the positions of the multitude of measurement locations on the workpiece model by executing the measurement program in the virtual space, for which the multitude of measurement locations were defined as guide points in step S6.

[0060] In step S8, the unit 108 measures the positions of the multitude of measuring locations on the workpiece (not shown) by executing the measurement program in real space for which the measuring locations were defined as guide points in step S6.

[0061] In step S9, the unit 109 calculates an arrangement position error between the workpiece model in virtual space and the workpiece (not shown) in real space based on the positions of the multitude of measurement locations measured on the workpiece model in virtual space and the positions of the measurement locations measured on the workpiece (not shown) in real space.

[0062] In step S10, the unit 110 for correcting arrangement positions corrects the arrangement position of the workpiece model in the virtual space so that the arrangement position error calculated in step S9 is eliminated.

[0063] Accordingly, the programming device 1, according to the first embodiment, defines a plurality of measurement locations on the workpiece model such that the measurement of a wide area is possible by ensuring that: the distances (a, b, c, d) between adjacent measurement locations are equal to or greater than the threshold value Th1; and the area A of a region formed by linking the measurement locations is equal to or greater than the threshold value Th2. In this way, the programming device 1 can easily define learning points for the measurement program for measuring a plurality of measurement locations on the workpiece (object to be measured).

[0064] The programming device 1 can accurately measure the positions of measuring points in virtual space and in real space by defining a large number of measuring points as guide points for the measurement program, for which it has been evaluated that the measurement can be carried out with a specified or higher accuracy, thereby preventing misalignments after correction between the position of the workpiece model (object model to be measured) in virtual space and the position of the workpiece (object to be measured) in real space.

[0065] Furthermore, the programming device 1 can define a large number of suitable measuring locations in a short time, regardless of the operator's experience.

[0066] Furthermore, the programming device 1 can reduce the risk that the processing has to be repeated from the creation of the measurement program in the virtual space because measurement locations are unsuitably defined and thus the misalignment after correction between the position of the workpiece model (object model to be measured) in the virtual space and the position of the workpiece (object to be measured) in the real space becomes greater.

[0067] So far, descriptions of the first embodiment have been given. Second embodiment

[0068] The second embodiment is described below. In the first embodiment, the programming device 1 comprises: defining a plurality of user-selected measurement locations on the object model to be measured; calculating the distances between adjacent measurement locations in an area formed by linking the plurality of defined measurement locations; calculating the area of ​​the area; evaluating, based on the area and the distances between the adjacent measurement locations, whether a measurement can be performed at the plurality of measurement locations with a predetermined or higher accuracy; and generating the plurality of measurement locations as blanking points to be measured by the industrial machine if it has been evaluated that a measurement can be performed with the predetermined or higher accuracy.The second embodiment differs from the first embodiment with respect to a programming device 1A, comprising: creating a plurality of combinations, each consisting of a predetermined number of shape-related features from the shape-related features on an object model to be measured; calculating the distances between adjacent shape-related features and the area of ​​a region formed by linking the shape-related features for each of the plurality of combinations; and evaluating the combination of shape-related features that has the highest value with respect to the calculated distances and the area as a plurality of measurement locations at which a measurement can be carried out with a predetermined or higher accuracy.

[0069] In this way, the programming device 1A according to the second embodiment can easily define learning points for the measuring program for measuring a large number of measurement locations on the workpiece (object to be measured).

[0070] The following are descriptions of the second embodiment.

[0071] The Fig. Figure 13 is a functional block diagram showing a functional configuration example of the programming device according to the second embodiment. The elements in Figure 1 perform similar functions to those in Figure 1. Fig. Items with a reference number of 1 are identified by the same reference symbol, and detailed descriptions of them are omitted here.

[0072] As in the Fig. As shown in Figure 13, the programming device 1A according to the second embodiment comprises a control unit 10a, an input unit 11, a display unit 12, and a storage unit 13. The control unit 10a comprises a unit 101 for creating virtual spaces, a unit 102 for arranging three-dimensional models, a unit 103a for defining measurement locations, a unit 104a for calculating distances, a unit 105a for calculating areas, a unit 106a for evaluating measurement locations, a unit 107 for generating blank points, a unit 108 for measuring measurement locations, a unit 109 for calculating arrangement position errors, and a unit 110 for correcting arrangement positions.

[0073] The input unit 11, the display unit 12 and the storage unit 13 have similar functions to the input unit 11, the display unit 12 and the storage unit 13 in the first embodiment.

[0074] The model storage unit 131 has similar functions to the model storage unit 131 in the first embodiment. Control unit 10a

[0075] The control unit 10a, for example, includes a CPU, a ROM, a RAM and a CMOS memory, which are generally known to experts and are configured to communicate with each other via a bus.

[0076] The CPU is a processor that controls the entire programming device 1A. The CPU reads a system program and an application program stored in ROM via the bus and controls the entire programming device 1A in accordance with the system program and the application program. In this way, the control unit 10, as shown in the Fig. 13 specified, configured to implement the functions of unit 101 for creating virtual spaces, unit 102 for arranging three-dimensional models, unit 103a for defining measurement locations, unit 104a for calculating distances, unit 105a for calculating areas, unit 106a for evaluating measurement locations, unit 107 for generating blank points, unit 108 for measuring measurement locations, unit 109 for calculating arrangement position errors, and unit 110 for correcting arrangement positions.

[0077] The unit 101 for creating virtual spaces, the unit 102 for arranging three-dimensional models, the unit 107 for generating blanks, the unit 108 for measuring measurement locations, the unit 109 for calculating arrangement position errors, and the unit 110 for correcting arrangement positions have equivalent functions as the unit 101 for creating virtual spaces, the unit 102 for arranging three-dimensional models, the unit 107 for generating blanks, the unit 108 for measuring measurement locations, the unit 109 for calculating arrangement position errors, and the unit 110 for correcting arrangement positions in the first embodiment.

[0078] Unit 103a for defining measurement types defines a variety of measurement types by extracting shape-related features from a workpiece model.

[0079] In particular, unit 103a automatically extracts, for example, the centers of holes in the workpiece model as shape-related features for determining measurement locations, as in the Fig. 14. Unit 103a for defining measurement types defines a multitude of combinations as a multitude of measurement types, each of which is obtained by selecting a predetermined number of shape-related features from the multitude of extracted shape-related features.

[0080] The following description is based on the assumption that the specified number is three, but the description is also applicable if the specified number is four or more. When a multitude of protrusions are formed on a workpiece model, unit 103a can also extract the surface centers of the protrusions as shape-related features for determining measurement locations.

[0081] The unit 104a for calculating distances calculates, for each of the plurality of combinations that have been specified, the distances (a, b, c, d) between adjacent shape-related features in an area formed by linking the shape-related features, as in the unit 104 for calculating distances in the first embodiment.

[0082] Unit 105a for calculating areas calculates the area A of the region for each of the multitude of combinations, as with unit 105 for calculating areas in the first embodiment.

[0083] Unit 106 for evaluating measurement locations evaluates, as a multitude of measurement locations at which a measurement can be carried out with a specified or higher accuracy, the combination of shape-related features among the multitude of combinations that has the highest value with regard to the distances (a, b, c, d) between adjacent shape-related features and the area A. Correction processing performed by programming device 1A

[0084] The following describes the sequence of correction processing performed by the programming device 1A with reference to the Fig. 15 described.

[0085] The Fig. Figure 15 is a flowchart illustrating the correction processing performed by programming device 1A. Processes similar to those of the correction processing performed by programming device 1 in the Fig. The 12 similar ones are identified by the same step numbers, and detailed descriptions of them are omitted here.

[0086] In step S2a, unit 103a extracts form-related features to a workpiece model to define measurement types and defines a multitude of combinations as a multitude of measurement types, each of which is obtained by selecting a predetermined number of form-related features from the multitude of extracted form-related features.

[0087] Unit 104a, for calculating distances, calculates in step S3a for each of the multitude of combinations that has been specified the distances (a, b, c, d) between adjacent shape-related features in an area formed by linking the shape-related features.

[0088] The unit 105a for calculating areas calculates the area A of the region for each of the multitude of combinations in step S4a.

[0089] In step S5a, unit 106a evaluates the combination of shape-related features that has the highest value with respect to the distances (a, b, c, d) calculated in step S3a and the area A calculated in step S4a.

[0090] In step S6a, the unit 107 generates the combination of shape-related features evaluated in step S5a as blanks to be measured by a robot (not shown), and specifies the generated blanks for the measurement program.

[0091] Accordingly, the programming device 1A according to the second embodiment comprises: creating a plurality of combinations, each consisting of a predetermined number of shape-related features, on an object model to be measured; calculating the distances between adjacent shape-related features and the area of ​​a region formed by linking the shape-related features for each of the plurality of combinations; and evaluating the combination of shape-related features that exhibits the highest value with respect to the calculated distances and the area as a plurality of measurement locations at which a measurement can be performed with a predetermined or higher accuracy. In this way, the programming device 1A can easily define learning points for the measurement program for measuring a plurality of measurement locations on the workpiece (object to be measured).

[0092] The programming device 1A can accurately measure the positions of measuring points in virtual and real space by defining a large number of measuring points as guide points for the measurement program, for which it has been evaluated that the measurement can be carried out with a specified or higher accuracy, thereby preventing misalignments after correction between the position of the workpiece model (object model to be measured) in virtual space and the position of the workpiece (object to be measured) in real space.

[0093] Furthermore, the programming device 1A can quickly determine suitable measuring locations, regardless of the operator's experience.

[0094] Furthermore, the programming device 1A can reduce the risk that the processing has to be repeated from the creation of the measurement program in the virtual space because measurement locations are unsuitably defined and thus the misalignment after correction between the position of the workpiece model (object model to be measured) in the virtual space and the position of the workpiece (object to be measured) in the real space becomes greater.

[0095] So far, descriptions of the second embodiment have been given.

[0096] Although the first and second embodiments have been described, the programming devices 1 and 1A are not limited to the embodiments described above and include, for example, variations and improvements, as long as the objectives can be achieved. First variation

[0097] In the first and second embodiments, a pin for rework is attached to the front of the tool of the robot model (not shown). However, the present invention is not limited to this. For example, as shown in the Fig. Figure 16 shows that, for example, a visual sensor for detection is attached to the front of the tool of the robot model (not shown). In this case, the programming device 1, 1A can, by executing the measurement program in a virtual space (or real space), control the robot model (or the robot) as shown in the Fig. Figures 7 to 9 show how to operate to detect each of a multitude of measurement locations using a model of a visual sensor (or visual sensor) and to measure the positions of the measurement locations. Second option

[0098] In the first and second embodiments, the programming devices 1 and 1A, for example, measure the positions of a plurality of measuring points on the upper surface of a workpiece model (or workpiece) by executing the measurement program in virtual space (or real space). However, the present invention is not limited thereto. For example, the programming devices 1 and 1A can measure the positions of a plurality of measuring points on a side surface of the workpiece model (or workpiece) by executing the measurement program in virtual space (or real space). Third option

[0099] In the second embodiment, the programming device 1A extracts, for example, shape-related features from a workpiece model and creates a plurality of combinations, each obtained by selecting a predetermined number of shape-related features from all extracted shape-related features. However, the present invention is not limited to this. For example, the programming device 1A can determine, based on an input process performed by a user with the input unit 11, shape-related features to be excluded from the extracted shape-related features.

[0100] The functions included in the programming devices 1 and 1A in the first and second embodiments can each be implemented by hardware, software, or a combination thereof. In this respect, the expression "implemented by software" means that this is implemented by a computer reading a program.

[0101] The program can be stored on and provided to the computer using various types of non-volatile, computer-readable media. Non-volatile, computer-readable media include various types of physical storage media. Examples of non-volatile, computer-readable media are magnetic recording media (e.g., floppy disks, magnetic tapes, hard disk drives), magneto-optical recording media (e.g., magneto-optical disks), read-only memory (CD-ROMs), CD-Rs, CD-R / Ws, and semiconductor memory (e.g., mask ROM, programmable ROM (PROM), erasable PROM (EPROM), flash ROM, RAM). The program can also be provided to a computer using various types of volatile, computer-readable media. Examples of volatile, computer-readable media are electrical signals, optical signals, and electromagnetic waves.The volatile, computer-readable media can provide programs to a computer via wireless communication channels or wired communication channels, such as electrical wires and fiber optic cables.

[0102] Steps for describing programs recorded on the recording medium include processes that are executed in chronological order and processes that are not necessarily executed in chronological order, but rather in parallel or separately.

[0103] Accordingly, the programming device of the present disclosure can implement various types and forms of embodiments with the following configuration. (1) The programming device 1 of the present disclosure is for creating a measurement program, wherein the measurement program serves to arrange in a virtual space an industrial machine system model, which three-dimensionally represents an industrial machine system comprising an industrial machine and an object to be measured, and includes an industrial equipment model and an object model to be measured, and serves to measure a plurality of measurement locations on the object model to be measured, the programming device comprising: a unit 103 for defining measurement locations, which is configured to define the plurality of measurement locations on the workpiece model; a unit 104 for calculating distances, which calculates the distances (a, b, c, d) between adjacent measurement locations in an area formed by linking the plurality of measurement locations; a unit 105 for calculating areas, which is configured to calculate the area A of the area;A unit 106 for evaluating measurement locations, configured to evaluate, based on the area A and the distances (a, b, c, d) between adjacent measurement locations, whether a measurement can be performed at the plurality of measurement locations with a predetermined or higher accuracy; and a unit 107 for generating blank points, configured to generate the plurality of measurement locations as blank points to be measured by the robot when the unit 106 for evaluating measurement locations has evaluated that a measurement can be performed with the predetermined or higher accuracy.

[0104] The programming device 1 can easily define blanking points for the measurement program to measure a large number of measurement locations on the object to be measured. (2) The programming device 1 according to paragraph (1) may further comprise: a unit for measuring measurement locations, configured to measure the positions of the plurality of measurement locations on the object model to be measured by executing a measurement program in virtual space, and to measure the positions of the plurality of measurement locations on the object to be measured by executing the measurement program in real space; a unit for calculating arrangement position errors, configured to calculate an arrangement position error between the object model to be measured and the object to be measured on the basis of the measured positions of the plurality of measurement locations on the object model to be measured and the measured positions of the plurality of measurement locations on the object to be measured;and a unit for correcting array positions, configured to correct the array position of the object model being measured in such a way as to eliminate the array position error. (3) The programming device 1A according to paragraph (1) can be configured so that the unit 103a for defining measurement locations defines a plurality of measurement locations by extracting a plurality of shape-related features to a workpiece model. (4) The programming device 1A according to paragraph (3) can be configured such that: the unit 103a for defining measurement locations defines a plurality of combinations as a plurality of measurement locations, each obtained by selecting a predetermined number of shape-related features from the plurality of extracted shape-related features; for each of the plurality of combinations defined, the unit 104a for calculating distances calculates the distances between adjacent shape-related features in an area formed by linking the shape-related features; for each of the plurality of combinations, the unit 105a for calculating areas calculates the area of ​​the area;and unit 106a for evaluating measurement locations evaluates, as a multitude of measurement locations at which a measurement can be carried out with the specified or higher accuracy, the combination of shape-related features that has the highest value with regard to the distances between the adjacent shape-related features and the area of ​​the region among the multitude of combinations. (5) The programming devices 1 and 1A according to any of paragraphs (1) to (4) may be configured such that, if the industrial machine is a robot, the measurement program refines a variety of measurement locations using a stylus attached to the front end of the robot's arm and then performs a measurement. (6) The programming devices 1 and 1A according to any of paragraphs (1) to (4) may be configured such that, if the industrial machine is a robot, the measurement program detects a plurality of measurement locations using a virtual sensor attached to the front end of the robot's arm and then performs a measurement. Explanation of reference symbols 1, 1A Programming device 10, 10a Control unit 101 Unit on Creating Virtual Spaces 102 Unit for arranging three-dimensional models 103, 103a Unit for determining measurement locations 104, 104a Unit for calculating distances 105, 105a Unit for calculating areas 106, 106a Unit for evaluating measurement locations 107 Unit for generating learning points 108 Unit for measuring measurement locations 109 Unit for calculating arrangement position errors 110 units for correcting arrangement positions 11 Input unit 12 Display unit 13 storage units 131 Model storage unit QUOTES INCLUDED IN THE DESCRIPTION

[0000] This list of documents cited by the applicant was automatically generated and is included solely for the reader's convenience. The list is not part of the German patent or utility model application. The DPMA accepts no liability for any errors or omissions. Cited patent literature

[0000] JP 2019-18250

[0003]

Claims

[1] A programming device for creating a measurement program, the measurement program being used to arrange in a virtual space an industrial machine system model which three-dimensionally represents an industrial machine system comprising an industrial machine and an object to be measured and comprising an industrial device model and an object model to be measured, and being used to measure a plurality of measurement locations on the object model to be measured, the programming device comprising: a measurement location specifying unit configured to specify the plurality of measurement locations on the object model to be measured; a distance calculation unit configured to calculate the distances between adjacent measurement locations in an area formed by linking the plurality of measurement locations; an area calculation unit configured to calculate an area of ​​the region; a measurement location evaluation unit configured to evaluate, based on the area and distances between the adjacent measurement locations, whether a measurement can be performed at the plurality of measurement locations with a predetermined or higher accuracy; and a teaching point generation unit configured to generate the plurality of measurement locations as teaching points to be measured by the industrial machine when the measurement location evaluation unit has evaluated that measurement can be performed with the specified accuracy or higher. [2] The programming device according to claim 1, further comprising: a measurement location measuring unit configured to measure positions of the plurality of measurement locations on the object model to be measured by executing a measurement program in virtual space, and to measure the positions of the plurality of measurement locations on the object to be measured by executing the measurement program in real space; an arrangement position error calculation unit configured to calculate an arrangement position error between the object model to be measured and the object to be measured based on the measured positions of the plurality of measurement locations on the object model to be measured and the measured positions of the plurality of measurement locations on the object to be measured; and an arrangement position correction unit configured to correct the arrangement position of the object model to be measured so as to eliminate the arrangement position error. [3] The programming device according to claim 1, wherein the measurement location setting unit sets the plurality of measurement locations by extracting the plurality of shape-related features to the object model to be measured. [4] The programming device according to claim 3, wherein the measurement location specifying unit specifies, as the plurality of measurement locations, a plurality of combinations each obtained by selecting a predetermined number of shape-related features from the plurality of extracted shape-related features; , the distance calculation unit calculates, for each of the plurality of combinations that have been determined, the distances between adjacent shape-related features in an area formed by linking the shape-related features, the area calculation unit calculates the area of ​​the area for each of the plurality of combinations, and and the measurement location evaluation unit evaluates, as the plurality of measurement locations at which measurement can be performed with the predetermined or higher accuracy, the combination of shape-related features having the highest value in terms of the distances between the adjacent shape-related features and the area of ​​the region among the plurality of combinations. [5] The programming device according to any one of claims 1 to 4, wherein in a case where the industrial machine is a robot, the measurement program revises the plurality of measurement locations using a pen attached to the front arm end of the robot and then performs a measurement. [6] The programming device according to any one of claims 1 to 4, wherein in a case where the industrial machine is a robot, the measurement program detects the plurality of measurement locations using a virtual sensor attached to the front arm end of the robot and then performs a measurement.

Citation Information

Patent Citations

  • Programming device for generating operation program, and program generating method

    JP2019018250A

  • 2019-18250