Apparatus and method for acquiring position and orientation of workpiece, apparatus and method for specifying feature of workpiece, and computer program
By matching the workpiece model with the shape detection sensor and simulating virtual space, the accuracy problem of workpiece feature posture detection was solved, and the precise positioning of the workpiece position and posture was achieved.
Patent Information
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- FANUC LTD
- Filing Date
- 2023-12-05
- Publication Date
- 2026-06-19
AI Technical Summary
In existing technologies, it is difficult to accurately detect the posture of workpieces with features that serve as posture references.
By matching the workpiece model with the shape data detected by the shape detection sensor, the position and orientation are obtained, and the feature determination unit is used to determine whether the shape data contains features; or multiple search models are generated, the feature model region corresponding to the feature is specified, and the position and orientation are obtained by matching; or the workpiece model is configured in virtual space, simulation is performed and the feature model region is determined.
It enables accurate detection of workpiece features and acquisition of posture, improving the accuracy of workpiece position and posture determination.
Smart Images

Figure CN122249835A_ABST
Abstract
Description
Technical Field
[0001] This disclosure relates to apparatus and method for obtaining the position and orientation of a workpiece, apparatus and method for specifying features of a workpiece, and computer program. Background Technology
[0002] It is known that a technique is used to detect a workpiece that has features that serve as an attitude reference, taking those features into account (e.g., Patent Document 1).
[0003] Existing technical documents
[0004] Patent documents
[0005] Patent Document 1: Japanese Patent Application Publication No. 2021-86432 Summary of the Invention
[0006] The problem that the invention aims to solve
[0007] When inspecting workpieces with features that serve as attitude references, it is sometimes impossible to accurately detect their attitude.
[0008] Methods for solving problems
[0009] In one aspect of this disclosure, an apparatus for acquiring the position and orientation of a workpiece having features serving as a reference for determining the orientation is provided. The apparatus comprises: a position acquisition unit that acquires the position and orientation by matching a workpiece model with shape data of the workpiece detected by a shape detection sensor, wherein the workpiece model is obtained by modeling the workpiece and is assigned a feature model region corresponding to a feature; and a feature determination unit that determines whether the shape data contains a feature based on the amount of data of the shape data overlapping the specified feature model region in the workpiece model that matches the shape data.
[0010] In other aspects of this disclosure, an apparatus for acquiring the position and orientation of a workpiece having features as a reference for determining the orientation is provided. The apparatus comprises: a model generation unit that generates multiple search models based on a drawing model representing the overall shape of the workpiece, each search model representing a portion of the shape of the drawing model as seen from multiple viewpoints; a feature designation unit that designates a feature model region corresponding to a feature among the feature-containing search models generated by the model generation unit; a position acquisition unit that acquires the position and orientation by matching each search model with shape data of the workpiece detected by a shape detection sensor; and a feature determination unit that, upon acquiring the position and orientation, determines that the shape data contains a feature if the designated feature model region exists in the search model matching the shape data.
[0011] In another aspect of this disclosure, an apparatus for specifying a feature in a workpiece having a feature as a reference for determining an orientation is provided. The apparatus comprises: an image generation unit that generates image data displaying an image of a workpiece model obtained by modeling the workpiece; an input receiving unit that receives input in the workpiece model displayed in the image data, the input specifying a feature model region corresponding to the feature; and a position data generation unit that generates position data representing the position of the feature model region specified by the input received by the input receiving unit within the workpiece model.
[0012] In another aspect of this disclosure, an apparatus for specifying a feature in a workpiece having a feature as a reference for determining an attitude is provided. The apparatus comprises: a model configuration unit that configures a workpiece model obtained by modeling the workpiece in a virtual space; a quantization execution unit that quantizes the virtual space configured by the model configuration unit into a minimum image unit; a simulation unit that performs a simulation in the virtual space quantized by the quantization execution unit to rotate the workpiece model about a predetermined angle around an axis of symmetry; an image unit determination unit that determines the minimum image unit in which the image value changes before and after the simulation; and a feature specification unit that specifies a feature model region corresponding to the feature in the workpiece model based on the minimum image unit determined by the image unit determination unit.
[0013] In another aspect of this disclosure, a method for obtaining the position and orientation of a workpiece having features that serve as a reference for determining the orientation is provided. The position and orientation are obtained by matching a workpiece model with shape data of the workpiece detected by a shape detection sensor. The workpiece model is obtained by modeling the workpiece and is assigned a feature model region corresponding to the features. The shape data is determined to contain features based on the amount of data in the shape data that overlaps with the specified feature model region in the workpiece model that matches the shape data.
[0014] In another aspect of this disclosure, a method for obtaining the position and orientation of a workpiece having features serving as a reference for determining the orientation includes generating multiple search models based on a drawing model representing the overall shape of the workpiece, each search model representing a portion of the shape of the drawing model as seen from multiple viewpoints; specifying a feature model region corresponding to a feature in one of the generated search models that includes the feature; obtaining the position and orientation by matching each search model with shape data of the workpiece detected by a shape detection sensor; and determining that the shape data contains a feature if the specified feature model region exists in the search model that matches the shape data when the position and orientation are obtained.
[0015] In another aspect of this disclosure, a method for specifying features in a workpiece having features, the features serving as a reference for determining an orientation, generating image data displaying an image of the workpiece model, the workpiece model being obtained by modeling the workpiece; receiving input in the workpiece model displayed in the image data for specifying a feature model region corresponding to the features; and generating position data representing the position of the feature model region specified by the received input within the workpiece model.
[0016] In another aspect of this disclosure, a method for specifying a feature in a workpiece having a feature, the feature serving as a reference for determining an orientation, is as follows: a workpiece model obtained by modeling the workpiece is configured in a virtual space; the virtual space with the workpiece model configured is quantized into a minimum image unit; in the quantized virtual space, a simulation is performed that rotates the workpiece model about a symmetry axis by a specified angle; the minimum image unit in which the image values change before and after the simulation is determined is determined; and based on the determined minimum image unit, a feature model region corresponding to the feature is specified in the workpiece model. Attached Figure Description
[0017] Figure 1 This is a schematic diagram of a robot system according to one embodiment.
[0018] Figure 2 yes Figure 1 The diagram shows a block diagram of the robot system.
[0019] Figure 3 This is a top view of the workpiece and drawing model according to one embodiment.
[0020] Figure 4 yes Figure 3 The workpiece and the drawing model are shown in a three-dimensional view.
[0021] Figure 5 yes Figure 3 The side view of the workpiece and the drawing model shown.
[0022] Figure 6 This is a top view of the workpiece and drawing model in other embodiments.
[0023] Figure 7 yes Figure 6 The workpiece and the drawing model are shown in a three-dimensional view.
[0024] Figure 8 yes Figure 6 The side view of the workpiece and the drawing model shown.
[0025] Figure 9 This is the GUI for specifying features for a workpiece model.
[0026] Figure 10 It means Figure 1 A block diagram showing other functions of the robot system.
[0027] Figure 11 It means in Figure 10 The flowchart shows a method for specifying features for a workpiece in the robot system shown.
[0028] Figure 12 It is a diagram that schematically represents the state of a virtual space configured with a workpiece model.
[0029] Figure 13 This represents the simulated state after moving the workpiece model within virtual space, and... Figure 12 correspond.
[0030] Figure 14 It represents the smallest image unit in which the image value changes before and after the simulation.
[0031] Figure 15 This represents the workpiece model after it has moved in the virtual space before and after the simulation.
[0032] Figure 16 It is a diagram that schematically represents the state of a virtual space configured with a workpiece model.
[0033] Figure 17 This represents the simulated state after moving the workpiece model within virtual space, and... Figure 16 correspond.
[0034] Figure 18 This represents the workpiece model after it has moved in the virtual space before and after the simulation.
[0035] Figure 19 It means Figure 1 A block diagram showing another function of the robot system.
[0036] Figure 20 It means in Figure 19 The flowchart shown is a process flow diagram for the operation of a workpiece in the robot system.
[0037] Figure 21 This represents an example of image data captured by a shape detection sensor.
[0038] Figure 22 express Figure 3 The search model for the workpiece is shown.
[0039] Figure 23 express Figure 4 The search model for the workpiece is shown.
[0040] Figure 24 express Figure 5 The search model for the workpiece is shown.
[0041] Figure 25 Indicates viewing from the rear side Figure 3 The search model for the workpiece shown is as follows.
[0042] Figure 26 This indicates the state of matching the search model with the image data captured by the shape detection sensor.
[0043] Figure 27 This is an example representing the test result data.
[0044] Figure 28 It means Figure 20 The flowchart of step S13 in the process.
[0045] Figure 29 Indicates in Figure 28 In step S22, the search model is matched with the shape data.
[0046] Figure 30 Indicates in Figure 28 In step S22, the state of matching other search models with shape data.
[0047] Figure 31 Schematic representation in Figure 28 The image data was quantized in step S24.
[0048] Figure 32 It means Figure 20 The flowchart of step S14 in the process.
[0049] Figure 33 express Figure 6 The search model for the workpiece is shown.
[0050] Figure 34 express Figure 7 The search model for the workpiece is shown.
[0051] Figure 35 express Figure 8 The search model for the workpiece is shown.
[0052] Figure 36 Schematic representation in Figure 28 The image data was quantized in step S24.
[0053] Figure 37 It means Figure 1 A block diagram showing another function of the robot system.
[0054] Figure 38 It means Figure 20 The flowchart of other processes in step S13. Detailed Implementation
[0055] Hereinafter, embodiments of the present disclosure will be described in detail with reference to the accompanying drawings. Furthermore, in the various embodiments described below, the same elements will be labeled with the same reference numerals, and repeated descriptions will be omitted. First, refer to... Figure 1 and Figure 2 The robot system 10 according to one embodiment will be described. The robot system 10 includes: a robot 12, a shape detection sensor 14, and a control device 16.
[0056] In this embodiment, robot 12 is a vertical articulated robot, comprising: a robot base 18, a rotating body 20, a lower arm 22, an upper arm 24, a wrist 26, and an end effector 28. The robot base 18 is fixed to the ground of the work unit or to an automated guided vehicle (AVG). The rotating body 20 is mounted on the robot base 18 so as to be able to rotate about a vertical axis. The lower arm 22 is mounted on the rotating body 20 so as to be able to rotate about a horizontal axis, and the upper arm 24 is mounted on the front end of the lower arm 22 so as to be able to rotate. The wrist 26 is mounted on the front end of the upper arm 24 so as to be able to rotate about two mutually orthogonal axes.
[0057] The end effector 28 is detachably mounted on the wrist 26. The end effector 28 may be, for example, a robotic arm capable of holding a workpiece, a welding torch for welding a workpiece, or a laser processing head for laser processing a workpiece, and performs a specified operation on the workpiece (workpiece handling, welding, or laser processing).
[0058] Servo motors 30 are installed in each component of robot 12 (robot base 18, rotating body 20, lower arm 22, upper arm 24, wrist 26). Figure 2 These servo motors 30, according to instructions from the control unit 16, cause the movable elements of the robot 12 (rotor 20, lower arm 22, upper arm 24, wrist 26, end effector 28) to rotate. As a result, the robot 12 moves the end effector 28 to any position.
[0059] The shape detection sensor 14 detects the shape of objects such as workpieces. In this embodiment, the shape detection sensor 14 is a three-dimensional vision sensor, which includes: a pair of imaging sensors (CMOS, CCD, etc.), a pair of optical lenses (collimating lenses, focusing lenses, etc.) that guide the image of the subject to the pair of imaging sensors, and an image processing processor. The shape detection sensor 14 can be fixed at a predetermined imaging position Pi. The shape detection sensor 14 is configured to image the subject along the optical axis A1 and measure the distance to the subject.
[0060] like Figure 1As shown, a robot coordinate system C1 and a tool coordinate system C2 are set for the robot 12. The robot coordinate system C1 is a coordinate system used for automatically controlling the movements of each movable element of the robot 12. In this embodiment, the robot coordinate system C1 is set for the robot base 18 with its origin located at the center of the robot base 18 and its z-axis parallel (specifically, consistent) with the rotation axis of the rotary body 20.
[0061] On the other hand, the tool coordinate system C2 is a coordinate system in the robot coordinate system C1 that defines the position and orientation of the end effector 28. In this embodiment, the tool coordinate system C2 is set for the end effector 28 by configuring its origin (so-called TCP) at the working position of the end effector 28 (e.g., workpiece holding position, welding position, or laser beam exit position).
[0062] When the end effector 28 is moved, the control device 16 sets the tool coordinate system C2 in the robot coordinate system C1 and generates instructions for each servo motor 30 of the robot 12 so as to configure the end effector 28 to a position and orientation represented by the set tool coordinate system C2. In this way, the control device 16 can position the end effector 28 to any position and orientation in the robot coordinate system C1.
[0063] On the other hand, a sensor coordinate system C3 is set for the shape detection sensor 14. The sensor coordinate system C3 is a coordinate system used to define the position and orientation (i.e., the position and orientation of the optical axis A1) of the shape detection sensor 14 in the robot coordinate system C1. In this embodiment, the sensor coordinate system C3 is set for the shape detection sensor 14 with its origin located at the center of the imaging sensor of the shape detection sensor 14, and its z-axis parallel (specifically, consistent) with the optical axis A1.
[0064] The positional relationships between the robot coordinate system C1, the tool coordinate system C2, and the sensor coordinate system C3 are known through calibration. Therefore, the coordinates of the robot coordinate system C1, the tool coordinate system C2, and the sensor coordinate system C3 can be transformed into each other through a known transformation matrix (e.g., a homogeneous transformation matrix).
[0065] The control device 16 controls the movements of the robot 12 and the shape detection sensor 14. Specifically, as follows: Figure 2 As shown, the control device 16 is a computer having a processor 32, a memory 34, an I / O interface 36, a display device 38, and an input device 40. The processor 32 has a CPU or GPU, etc., and is communicatively connected to the memory 34, the I / O interface 36, the display device 38, and the input device 40 via a bus 42, and communicates with these components and performs arithmetic processing to implement various functions described later.
[0066] The memory 34 may have RAM or ROM, etc., to temporarily or permanently store various data. The memory 34 may be composed of computer-readable non-temporary storage media such as volatile memory, non-volatile memory, magnetic storage media, or optical storage media. The I / O interface 36 may have, for example, an Ethernet port, a USB port, a fiber optic connector, or an HDMI terminal, and communicates with external devices via wired or wireless means under the instruction from the processor 32. The servo motors 30 and shape detection sensors 14 of the robot 12 can be communicatively connected to the I / O interface 36.
[0067] The display device 38 has a liquid crystal display or an organic EL display, which can visually display various data under the instructions of the processor 32. The input device 40 has buttons, switches, keyboards, mice or touch panels, etc., to accept data input from the operator. In addition, the display device 38 and the input device 40 can be integrally assembled into the housing of the control device 16, or they can be connected to the I / O interface 36 as a separate computer (PC, etc.) from the housing of the control device 16.
[0068] In this embodiment, the processor 32 performs operations on the workpieces that are bulk in the container E (not shown). Figures 3-5 The workpiece 100 is shown in one embodiment. The workpiece 100 has: a cylindrical main body 102 having a central axis A2, and a cylindrical protrusion 104 protruding from the main body 102. The protrusion 104 is disposed at a position isolated from the central axis A2 of the main body 102. Specifically, the protrusion 104 has: an outer peripheral surface 108 extending from the upper surface 106 of the main body 102 on a cylinder, and an end surface 110 connected to the end edge of the outer peripheral surface 108. The main body 102 is symmetrical about the central axis A2. Therefore, the central axis A2 constitutes the axis of symmetry of the workpiece 100.
[0069] Figures 6-8 The workpiece 120 represents another embodiment. The workpiece 120 has a cylindrical main body 122 with a central axis A3 and two holes 124 penetrating the main body 122. Each hole 124 is defined by a cylindrical inner circumferential surface 126. Furthermore, the edges 130 of the holes 124 are defined on the upper surface 128 of the main body 122, and the edges 132 of the holes 124 are defined on the lower surface 134 of the main body 122. The main body 122 is symmetrical about the central axis A3. Therefore, the central axis A3 constitutes the axis of symmetry of the workpiece 120.
[0070] Define a workpiece coordinate system C4 for workpieces 100 and 120. Workpiece coordinate system C4 is a coordinate system within robot coordinate system C1 that represents the position and orientation of workpieces 100 and 120. Figures 3-5In the workpiece 100 shown, a workpiece coordinate system C4 is established with its origin at the center of the main body 102, its positive y-axis pointing towards the central axis of the protrusion 104, and its positive z-axis pointing towards the upper surface 106. For example... Figures 3-5 As shown in the workpiece coordinate system C4, the protrusion 104 (specifically, the outer peripheral surface 108 and the end face 110) constitutes the feature FT, which serves as a reference for determining the orientation of the workpiece 100.
[0071] On the other hand, Figures 6-8 In the workpiece 120 shown, a workpiece coordinate system C4 is established with its origin at the center of the main body 122, its positive y-axis pointing towards the central axis of one hole 124, its positive x-axis pointing towards the central axis of the other hole 124, and its positive z-axis pointing towards the upper surface 128. For example... Figures 6-8 As shown in the workpiece coordinate system C4, the hole 124 (specifically, the inner circumferential surface 126, the edges 130 and 132) constitutes the feature FT, which serves as a reference for determining the orientation of the workpiece 120.
[0072] In this embodiment, the processor 32 of the control device 16 specifies a feature FT as an attitude reference in the workpiece 100 or 120. The method for specifying the feature FT for the workpiece 100 will be described below. In this embodiment, the processor 32 first obtains a workpiece model 100M obtained by modeling the workpiece 100, the object of the operation. In this embodiment, the workpiece model 100M includes a drawing model 100D and a search model 100S.
[0073] The drawing model 100D is, for example, a three-dimensional CAD model representing the overall shape of the workpiece 100. The drawing model 100D is created by the operator using a design-aided system (such as a CAD / CAM system) and downloaded to the control device 16. The processor 32 obtains the drawing model 100D through the I / O interface 36 and stores it in the memory 34.
[0074] like Figures 3-5 As shown, the drawing model 100D has a main body model 102D and a protrusion model 104D (outer peripheral surface model 108D, end face model 110D). The workpiece coordinate system C4 described above is set for the drawing model 100D, and the model components (faces, edges, vertices, etc.) of the drawing model 100D are represented as coordinates in the workpiece coordinate system C4. On the other hand, the search model 100S is used to search for the workpiece 100 in the image data obtained from the shape detection sensor 14 to perform the operation. Furthermore, the search model 100S will be described later.
[0075] In this embodiment, the processor 32 generates image data 200 that displays the drawing model 100D together with the workpiece coordinate system C4 in a three-dimensional virtual space VS, and displays it on the display device 38. Therefore, the processor 32 serves as the image generation unit 52 that generates the image data 200. Figure 2 The image data 200 displays the workpiece model 100M (specifically, the drawing model 100D) obtained by modeling the workpiece 100.
[0076] Figure 9 This represents an example of generated image data 200. The operator visually recognizes image data 200 and operates input device 40 to specify the feature model region FTe corresponding to feature FT in drawing model 100D. As an example, such as... Figure 9 As shown, the processor 32 displays a specified frame image 202 within the virtual space VS. The operator can move the specified frame image 202 to any position within the virtual space VS by operating the input device 40, and can also change the size (length, width, and height) of the specified frame image 202.
[0077] The operator operates the input device 40 to surround the desired model components of the drawing model 100D by specifying the box image 202, thereby enabling the designation of a feature model region FTe. For example, the operator, through the input device 40, such as... Figure 9 As shown, an input IP1 is provided that surrounds the protrusion model 104D through a specified bounding box image 202. The processor 32 then accepts the input IP1, determines the protrusion model 104D (or the outer peripheral surface model 108D, the end face model 110D) located within the specified bounding box image 202, and designates it as the feature model region FTe.
[0078] As other examples, such as Figure 9 As shown, the processor 32 displays a cursor image 204, which corresponds to movement within the virtual space VS corresponding to operations on the input device 40. The operator operates the input device 40 and can select desired model components of the drawing model 100D via the cursor image 204. For example, the operator provides input IP2, which refers to clicking on at least one (e.g., both) of the peripheral surface model 108D and the end face model 110D constituting the protrusion model 104D to make a selection (or specifying a region of the model to be selected via drag-and-drop).
[0079] Therefore, the processor 32 receives input IP2 and designates the outer peripheral surface model 108D and the end face model 110D selected by the cursor image 204 as the feature model region FTe. Thus, in this embodiment, the processor 32 serves as the input receiving unit 54 ( Figure 2The input receiving unit 54 receives input IP1 or IP2 that specifies the feature model region FTe in the drawing model 100D displayed on the image data 200.
[0080] Next, the processor 32 generates position data Pf, which represents the position of the protruding model 104D (or the outer peripheral model 108D and the end face model 110D) designated as the feature model region FTe through the operations described above, within the drawing model 100D. Specifically, the processor 32 obtains the coordinates of the designated protruding model 104D, outer peripheral model 108D, or end face model 110D in the workpiece coordinate system C4 of the dedicated area, and generates the position data Pf for the feature model region FTe.
[0081] Thus, processor 32 serves as the position data generation unit 56 for generating position data Pf. Figure 2 The processor 32 performs its function, where the position data Pf represents the position of the feature model region FTe specified by input IP1 or IP2 in the drawing model 100D (specifically, the workpiece coordinate system C4). The processor 32 stores the generated position data Pf in association with the drawing model 100D. For example, the processor 32 can store the position data Pf as separate data from the drawing model 100D, associated with it in the memory 34. Alternatively, the processor 32 can also associate the generated position data Pf with the drawing model 100D by storing it within the data of the drawing model 100D.
[0082] Furthermore, processor 32 for Figures 6-8 The workpiece 120 shown can also have its feature model region FTe specified in the same way. Specifically, the processor 32 obtains a workpiece model 120M obtained by modeling the workpiece 120. The workpiece model 120M includes a drawing model 120D and a search model 120S. The search model 120S will be described later. Figures 6-8 As shown, the drawing model 120D (3D CAD model) represents the overall shape of the workpiece 120. Specifically, the drawing model 120D includes the main body model 122D, the hole model 124D (inner circumferential surface model 126D, edge models 130D and 132D).
[0083] Furthermore, the processor 32 functions as an image generation unit 52, generating image data 200 that displays the drawing model 120D and the workpiece coordinate system C4. Additionally, the processor 32 displays a specified frame image 202 or a cursor image 204 in the image data 200, and functions as an input receiving unit 54, receiving inputs IP1 or IP2 that specify the feature model region FTe using the specified frame image 202 or the cursor image 204.
[0084] For example, the operator designates two hole models 124D (or, inner circumferential surface model 126D, edge models 130D and 132D) as feature model regions FTe. Then, the processor 32 functions as a position data generation unit 54 to generate position data Pf, which represents the position of the proprietary region of hole model 124D, inner circumferential surface model 126D, or edge models 130D and 132D in the workpiece coordinate system C4.
[0085] As described above, in this embodiment, the processor 32 functions as an image generation unit 52, an input receiving unit 54, and a position data generation unit 56, specifying features FT (feature model region FTe) in the workpiece 100 or 120 (specifically, the drawing model 100D or 120D). Therefore, the image generation unit 52, the input receiving unit 54, and the position data generation unit 56 constitute a device 50 for specifying features FT on the workpiece 100 or 120. Figure 2 ).
[0086] In this apparatus 50, the image generation unit 52 generates image data 200, which displays a workpiece model 100M or 120M (specifically, a drawing model 100D or 120D) obtained by modeling the workpiece 100 or 120. The input receiving unit 54 receives input IP1 or IP2 that specifies a feature model region FTe in the workpiece model 100M or 120M displayed in the image data 200.
[0087] Then, the position data generation unit 56 generates position data Pf, which represents the position (specifically, the coordinates of the workpiece coordinate system C4) of the feature model region FTe specified by the input IP1 or IP2 received by the input receiving unit 54 in the workpiece model 100M or 120M. According to this structure, the operator can easily and appropriately specify the feature model region FTe in the workpiece model 100M or 120M by displaying the image data 200 of the workpiece model 100M or 120M.
[0088] Furthermore, the processor 32 can execute a method for specifying features FT on workpieces 100 or 120 in the device 50 according to a computer program PG2 pre-stored in the memory 34. Additionally, the functions of the device 50 executed by the processor 32 can also be functional modules implemented by the computer program PG2.
[0089] Next, refer to Figure 10 Other functions of the robot system 10 will be described below. In this embodiment, the processor 32 of the control device 16 automatically assigns the aforementioned feature FT to the workpiece 100 or 120. Hereinafter, refer to... Figure 11This describes a method for assigning feature FT to workpiece 100. In step S1, processor 32 configures workpiece model 100M in virtual space VS. In this embodiment, processor 32 will... Figures 3-5 The drawing model 100D shown is configured together with the workpiece coordinate system C4 in the virtual space VS.
[0090] Thus, in this embodiment, the processor 32 serves as the model configuration unit 62. Figure 10 The model configuration unit 62 configures the workpiece model 100M (drawing model 100D) in the virtual space VS. Furthermore, the processor 32 can also function as the image generation unit 52 described above, generating images such as... Figure 9 The image data 200, which arranges the drawing model 100D and the workpiece coordinate system C4 in the virtual space VS as shown, is displayed on the display device 38.
[0091] In step S2, the processor 32 quantizes the virtual space VS configured with the workpiece model 100M into the smallest image unit IU. In this embodiment, the processor 32 quantizes the virtual space VS into voxels 206, which are the smallest image units IU. Figure 12 Enlarged indicates that configuration has been set. Figure 3 The virtual space VS of the drawing model 100D shown is a part of the drawing model 100D when it is quantized to voxel 206.
[0092] Figure 12 The boundary between the outer peripheral surface model 108D of the protruding model 104D in the drawing model 100D and the hollow region of the virtual space VS is represented by a set of voxels 206 in gray, which represent the private region (i.e., the solid region) of the protruding model 104D, and a set of voxels 206 in white, which represent the hollow region. In this embodiment, the processor 32 sets the reference coordinate system C5, which serves as the quantization reference, at an arbitrary position in the virtual space VS.
[0093] For example, the processor 32 analyzes the drawing model 100D to determine its centroid (or the center of the main body model 102D) and the central axis A2, which serves as the axis of symmetry. Furthermore, the processor 32 can automatically set the reference coordinate system C5 by placing its origin at the determined centroid and ensuring its z-axis is parallel to the central axis A2. Alternatively, the processor 32 can set the position and orientation of the reference coordinate system C5 according to the operator's input to the input device 40, or it can use any coordinate system, such as the coordinate system set for the drawing model 100D, as the reference coordinate system C5.
[0094] Next, the processor 32, following the image quantization program PG1 pre-stored in the memory 34, quantizes the virtual space VS configured with the drawing model 100D into a plurality of voxels 206 arranged in a grid pattern along the x, y, and z axes of the set reference coordinate system C5. Each voxel 206 has a unit volume Vu, represented as the coordinates (x, y, z) of the reference coordinate system C5. The unit volume Vu can also be specified in the image quantization program PG1. Alternatively, the size of the unit volume Vu can be arbitrarily set by the operator operation input device 40.
[0095] Each voxel 206 has an image value Vi. In this embodiment, the image value Vi is numerical information such as "0" or "1". For example, in Figure 12 In this embodiment, the image value Vi of voxel 206 (i.e., the proprietary region of the protrusion model 104D), represented in gray, is "1", while the image value Vi of voxel 206 (i.e., the hollow region), represented in white, is "0". Thus, in this embodiment, the processor 32 serves as the quantization execution unit 64 ( Figure 10 The quantization execution unit 64 quantizes the virtual space VS configured with the workpiece model 100M (drawing model 100D) into the smallest image unit IU (voxel 206).
[0096] In step S3, the processor 32 executes a simulation SL in the quantized virtual space VS, rotating the workpiece model 100M around the axis of symmetry by a specified angle θ. Specifically, as the simulation SL, the processor 32, within the virtual space VS quantized into voxels 206, rotates the drawing model 100D from its initial position P0 at the time point when the virtual space VS was quantized, around the central axis A2 (which serves as the axis of symmetry). Figure 2 Simulate rotation by a specified angle θ (e.g., θ = 0.1°).
[0097] Figure 13 This indicates that voxel 206 was executed after the simulation SL was performed. Figure 13 The voxel 206 shown is Figure 12 Corresponding. For example... Figure 13 As shown, through simulation SL, the protrusion model 104D in the virtual space VS is relative to the reference coordinate system C5 from... Figure 12 The initial position P0 shown is moved. On the other hand, the reference coordinate system C5 and voxel 206 remain stationary. Thus, in this embodiment, the processor 32 serves as the simulation unit 66 that executes the simulation SL. Figure 2 It can perform its functions.
[0098] In step S4, processor 32 determines the smallest image unit IU (voxel 206) at which the image value Vi changes before and after the simulated SL in previous step S3. For example... Figure 12 and Figure 13As shown, the result of performing step S3 is that the image value Vi of a portion of voxels 206 changes from "1" to "0". Figure 14 In the image, voxel 206A is represented by gray as the image value Vi changes from "1" to "0".
[0099] Processor 32 monitors the image values Vi of each voxel 206 before and after step S3, and determines voxel 206A whose image value Vi changes. Then, processor 32 obtains the coordinates of the determined voxel 206A in the reference coordinate system C5. Thus, in this embodiment, processor 32 serves as the image unit determination unit 68. Figure 10 The image unit determination unit 68 determines the smallest image unit IU (voxel 206) whose image value Vi changes before and after the simulation SL.
[0100] In step S5, the processor 32 determines whether to end the simulation SL. During the period when the processor 32 determines no in step S5, it repeatedly executes the loop of steps S3 to S5. The processor 32 repeatedly executes the result of step S3 and determines whether the total angle θs (=Σθ) of the rotation of the drawing model 100D from its initial position P0 around the central axis A2 within the virtual space VS reaches the specified threshold θth.
[0101] For example, when the workpiece has rotational symmetry at a symmetry angle θa, the threshold θth can be set to θth = θa. On the other hand, in Figures 3-5 In the case of workpiece 100 shown, its main body 102 has infinite rotational symmetry. In this case, the threshold θth can also be set to any angle below 360° (for example, θth = 90°). The threshold θth is determined by the operator taking into account the symmetry of the workpiece 100.
[0102] Thus, the processor 32 determines whether to end the simulation SL based on the total angle θs. If the total angle θs reaches the threshold θth, it determines "yes" and proceeds to step S6. On the other hand, if the total angle θs does not reach the threshold θth, the processor 32 determines "no" and returns to step S3, executing steps S3 and S4 again.
[0103] In step S6, the processor 32 specifies the feature model region FTe corresponding to the feature FT in the workpiece model 100M based on the smallest image unit IU determined in step S4. Here, when step S3 is executed repeatedly, voxel 206 ( Figure 12 The gray voxel 206 is transformed into a void region of the virtual space VS, wherein the voxel 206 represents the protrusion model 104D of the drawing model 100D configured at the initial position P0. Figure 15 This indicates the state.
[0104] Figure 15 The gray area 104D' in the figure represents the protruding model 104D of the drawing model 100D positioned at the initial position P0. On the other hand, the solid line 104D represents the protruding model 104D after being moved by the simulation SL in step S3. The voxel 206A determined by repeatedly performing step S4 ( Figure 14 ),and Figure 15 The gray area 104D' shown is consistent with the protrusion model 104D as a feature FT.
[0105] Thus, processor 32 can determine protrusion model 104D based on voxel 206A determined in step S4, and designate protrusion model 104D as feature model region FTe. In this way, processor 32 acts as feature designation unit 70 ( Figure 10 The feature designation unit 70 performs its function by designating the feature model region FTe based on the smallest image unit IU (voxel 206A) determined in step S4.
[0106] In step S7, the processor 32 functions as the aforementioned position data generation unit 56 to generate position data Pf (coordinates in the workpiece coordinate system C4) for the feature model region FTe specified in step S6. In this way, the processor 32 can automatically assign the feature FT (feature model region FTe) to the workpiece 100 (drawing model 100D).
[0107] In addition, processor 32 executes Figure 11 The process, in Figures 6-8 In the workpiece 120 (drawing model 120D) shown, the feature FT (feature model region FTe) can also be automatically specified. Specifically, in step S1, the processor 32 functions as a model configuration unit 62, configuring the drawing model 120D at the initial position P0 of the virtual space VS.
[0108] In step S2, the processor 32 functions as the quantization execution unit 64, quantizing the virtual space VS configured with the drawing model 120D into voxels 206. Figure 16 Enlarged indicates that configuration has been set. Figure 6 The virtual space of the drawing model 120D shown is compared to the inner circumferential surface model 126D of the quantized hole model 124D. In Figure 16 In the diagram, a set of voxels 206, indicated in white, represents the hole model 124D (i.e., the void region), while a set of voxels 206, indicated in gray, represents the proprietary region of the main body model 122D.
[0109] In step S3, the processor 32 functions as the simulation unit 66 and executes a simulation SL in the quantized virtual space VS to rotate the drawing model 120D around the central axis A3, which serves as the axis of symmetry, by an angle θ. Figure 17 This indicates voxel 206 after performing the simulation SL. For example... Figure 17 As shown, by simulating SL, the main body model 122D and hole model 124D move relative to the reference coordinate system C5 in the virtual space VS.
[0110] In step S4, the processor 32 functions as the image unit determination unit 68, determining the voxels 206 whose image values Vi have changed before and after the previous step S3. Here, in the simulation SL of the drawing model 120D, as... Figure 16 and Figure 17 As shown, the image value Vi of a portion of voxels 206 changes from "0" to "1". Figure 14 Voxel 206A represents the image value Vi changing from "0" to "1". Processor 32 determines voxel 206A whose image value Vi has changed and obtains the coordinates of the reference coordinate system C5 of voxel 206A.
[0111] Subsequently, if the determination in step S5 is yes, in step S6, the processor 32 functions as the feature designation unit 70, and designates the feature model region FTe in the drawing model 120D based on the voxel 206A determined in step S4. When step S3 is repeatedly executed in the drawing model 120D, voxel 206 ( Figure 16 The white voxel 206 is transformed into a dedicated region (i.e., a solid region) of the main body model 122D, wherein the voxel 206 represents the hole model 124D of the drawing model 120D disposed at the initial position P0. Figure 18 This indicates the state.
[0112] Figure 18 The gray area 124D' in the diagram represents the hole model 124D of the drawing model 120D positioned at the initial position P0. On the other hand, the solid line 124D represents the hole model 124D after being moved by the simulation SL in step S3. The voxel 206A determined in step S4 ( Figure 14 ),and Figure 18 The gray area 124D' shown is consistent with the hole model 124D as a feature FT.
[0113] Based on the voxel 206A determined in step S4, processor 32 determines hole model 124D (or inner circumferential surface model 126D, edge models 130D and 132D), and designates hole model 124D as feature model region FTe. Then, in step S7, processor 32 functions as position data generation unit 56, generating position data Pf (coordinates in workpiece coordinate system C4) for each hole model 124D designated as feature model region FTe.
[0114] As described above, in this embodiment, the processor 32 functions as a model configuration unit 62, a quantization execution unit 64, a simulation unit 66, an image unit determination unit 68, a feature assignment unit 70, and a position data generation unit 56, assigning features FT (feature model area FTe) in the workpieces 100 and 120 (drawing models 100D and 120D). Therefore, the model configuration unit 62, the quantization execution unit 64, the simulation unit 66, the image unit determination unit 68, the feature assignment unit 70, and the position data generation unit 56 constitute a device 60 for assigning features FT in the workpieces 100 and 120. Figure 10 ).
[0115] In the device 60, the model configuration unit 62 configures the workpiece models 100M and 120M (drawing models 100D and 120D) in the virtual space VS (step S1), and the quantization execution unit 64 quantizes the virtual space VS configured by the model configuration unit 62 for the workpiece models 100M and 120M into the smallest image unit IU (voxel 206) (step S2).
[0116] In the virtual space VS quantized by the quantization execution unit 64, the simulation unit 66 executes a simulation SL (step S3) that rotates the workpiece models 100M and 120M (drawing models 100D and 120D) around the axes of symmetry A2 and A3 by a predetermined angle θ. The image unit determination unit 68 determines the smallest image unit IU (voxel 206A) that causes the image value Vi to change before and after the simulation SL (step S4).
[0117] Then, the feature designation unit 70 designates the feature model region FTe (protrusion model 104D, hole model 124D) corresponding to the feature FT in the workpiece models 100M and 120M based on the smallest image unit IU (voxel 206A) determined by the image unit determination unit 68 (step S6). According to this structure, the feature model region FTe can be automatically searched from the workpiece models 100M or 120M, and the feature model region FTe can be automatically designated for the workpiece model 100M or 120M. This significantly reduces the burden on the operator in designating the feature model region FTe.
[0118] Additionally, in the device 60, the position data generation unit 56 generates position data Pf, which represents the position of the feature model region FTe specified by the feature designation unit 70 within the workpiece models 100M and 120M. Based on this structure, the position data Pf of the specified feature model region FTe can be automatically generated and stored. Alternatively, the position data generation unit 56 can be omitted from the device 60. In this case, the operator can confirm the feature model region FTe (protrusion model 104D, hole model 124D) automatically specified by the processor 32 and manually generate the position data Pf of the feature model region FTe.
[0119] Furthermore, the processor 32 can also determine the aforementioned angle θ in the simulation SL of step S3 above, based on the size of the smallest image unit IU (voxel 206) in the quantized virtual space VS relative to the workpiece model 100M or 120M (specifically, unit volume Vu). For example, in Figures 3-5 In the case of the drawing model 100D shown, even if the processor 32 performs simulation SL when the angle θ is too small, Figure 12 as well as Figure 13 The movement within the virtual space VS of the protruding model 104D shown is also extremely small. In this case, Figure 14 The number of voxels 206A shown becomes extremely small, resulting in reduced efficiency of step S4 and potentially increased number of iterations of steps S3-S5.
[0120] Conversely, if the angle θ is too large, it may be impossible to determine the feature FT (protrusion model 104D) with high accuracy. Therefore, the processor 32 determines the angle θ based on the size of the unit volume Vu of the voxel 206 relative to the drawing model 100D configured in the virtual space VS after quantization in step S2. Specifically, if the voxel 206 is large relative to the unit volume Vu of the drawing model 100D during quantization in step S2, the processor 32 sets the angle θ to a larger value.
[0121] On the other hand, when the voxel 206 is smaller than the unit volume Vu of the drawing model 100D during quantization, the processor 32 sets the angle θ to a smaller value. For example, the processor 32 calculates the ratio Rv = Vu / Vm of the unit volume Vu of the voxel 206 to the volume Vm of the proprietary region of the drawing model 100D. Furthermore, the processor 32 ensures that the ratio Rv is less than Rv. th1 In this case, the angle is set as θ = θ1, and in Rv th1 ≤Rv<Rv th2 In the case of θ = θ2 (< θ1), in Rv th2 If Rv is less than or equal to Rv, then θ is set to θ3 (< θ2). This threshold Rv... th1and Rv th2 This can be determined by the operator.
[0122] In this way, the processor 32 can automatically determine the angle θ based on the size (unit volume Vu) of the smallest quantized image unit IU (voxel 206). Therefore, the processor 32 acts as the angle determining unit 72 that determines the angle θ. Figure 2 The processor 32 also functions in the drawing model 120D, automatically determining the angle θ based on the unit volume Vu of the voxel 206 relative to the drawing model 120D.
[0123] The angle determination unit 72, together with the model configuration unit 62, the quantization execution unit 64, the simulation unit 66, the image unit determination unit 68, the feature assignment unit 70, and the position data generation unit 56, constitutes the device 60. According to this structure, the optimal angle θ is automatically determined for simulating SL, thus improving… Figure 11 The efficiency of step S4 is improved, thereby optimizing the number of times steps S3 to S5 are repeatedly executed.
[0124] Furthermore, in the above embodiment, the case where the image value Vi is numerical information such as "0" or "1" has been described. However, it is not limited to this; the image value Vi may also be multi-level (e.g., 0 to 255 levels) of brightness (luminance, etc.) information. In this case, the processor 32 can also monitor the change of the image value Vi in step S4 described above and determine the voxel 206A based on the change.
[0125] Furthermore, in the above embodiment, the processor 32 can accept input IP3, which is used to edit the specified feature model region FTe (e.g., protrusion model 104D or hole model 124D). For example, Figure 11 As a result of the process, when the protrusion model 104D is designated as the feature model region FTe, the operator operates the input device 40 to provide the following input IP3: to exclude a portion of the private area of the outer peripheral surface model 108D and the end face model 110D of the protrusion model 104D from the feature model region FTe.
[0126] The processor 32 functions as the aforementioned input receiving unit 54, receiving input IP3 to edit the feature model region FTe by excluding a portion of the outer peripheral surface model 108D and the end face model 110D specified by input IP3. That is, in this case, the device 60 also has an input receiving unit 54 that receives input IP3. According to this structure, the operator can freely edit the feature model region FTe, thus enabling the specification of an optimal feature model region FTe for the workpiece model 100M or 120M.
[0127] Furthermore, the processor 32 can execute according to the computer program PG3 pre-stored in the memory 34. Figure 11 The process is shown. Additionally, the functions of the device 60 executed by the processor 32 can also be functional modules implemented by the computer program PG3.
[0128] Next, refer to Figures 19-22 The following describes another function of the robot system 10. In this embodiment, the processor 32 of the control device 16 acquires the position and orientation of the workpiece 100 or 120 and performs a prescribed operation on the workpiece 100 or 120. Hereinafter, reference will be made to... Figure 20 The process of removing the workpiece 100 from the container E and placing it in the fixture J in a predetermined orientation will be described.
[0129] When processor 32 receives a job start instruction from the operator, the host controller, or computer program CP2, it begins... Figure 20 The process. In addition, in this embodiment, the feature model region FTe (protrusion model 104D) is pre-specified in the drawing model 100D by means of the above-mentioned device 50 or 60, and the above-mentioned position data Pf is pre-acquired.
[0130] In step S11, the processor 32 takes a picture of the workpiece 100. Specifically, the processor 32 activates the shape detection sensor 14 and takes a picture of the workpiece 100, which is bulk in the container E. Figure 21 This is an example of image data 210 of a workpiece 100 captured by shape detection sensor 14. In this embodiment, image data 210 is three-dimensional point cloud image data, and shape data SD1, SD2, SD3 and SD4 are represented in image data 210. Shape data SD1, SD2, SD3 and SD4 represent the visual features (faces, edges, vertices, etc.) of multiple workpieces 100 in various poses.
[0131] Shape data SD i (i = 1, 2, 3, 4) are each composed of a point cloud dispersed in the sensor coordinate system C3, where each point represents the coordinates of the sensor coordinate system C3. Furthermore, Figure 21 This represents the shape data SD of the four workpieces 100 in image data 210. i This is an example, but it should actually be understood as being able to represent more than 5 workpieces. The processor 32 acquires image data 210 captured by the shape detection sensor 14.
[0132] In step S12, the processor 32 compares the workpiece model 100M with the shape data SD of the workpiece 100 detected by the shape detection sensor 14. iMatching is performed to obtain the position and orientation of the workpiece 100. Specifically, the processor 32 generates multiple search models 100S based on the drawing model 100D of the workpiece 100. m Multiple search models 100S m These represent partial shapes of the drawing model 100D as observed from multiple viewpoints VP. As described above, the search model 100S... m The workpiece model is 100M.
[0133] Figures 22-25 Indicates the search model 100S m Examples. Figures 22-25 The search models 100S1, 100S2, 100S3 and 100S4 shown are each composed of point clouds. The processor 32 generates search models 100S1, 100S2, 100S3 and 100S4 in various poses by attaching point clouds to the model components of the drawing model 100D observed from different viewpoints VP.
[0134] In this embodiment, the processor 32 generates the search model 100S. m When m = 1, 2, 3, 4, point clouds of model components on the surface side that can be viewed from viewpoint VP are generated; on the other hand, model components on the back side that cannot be viewed from viewpoint VP are not generated (e.g., Figure 3 The point cloud of the paper back side edge and face in the model components of the 100D drawing model.
[0135] The generated search model 100S is positioned and posed in the same way as the drawing model 100D. m Set the workpiece coordinate system to C4. Then, the processor 32 generates search models 100S in various orientations based on the drawing model 100D. m Therefore, processor 32 serves as the generator for the search model 100S. m Model generation unit 82 ( Figure 19 It can perform its functions.
[0136] Here, as described above, the location data Pf of the feature model region FTe is pre-acquired in association with the drawing model 100D. The processor 32 can refer to the location data Pf when performing a search on the generated search model 100S. m The feature model region FTe is determined in the established workpiece coordinate system C4. The processor 32 extracts the search model 100S that overlaps with the feature model region FTe in the workpiece coordinate system C4. m The point cloud is used as the feature model region FTe'.
[0137] For example, in Figures 22-24The search models 100S1, 100S2, and 100S3 contain a feature model region FTe; therefore, the processor 32 can extract the feature model region FTe'. On the other hand, in Figure 25 The feature model region FTe is absent (in other words, not visible) in the search model 100S4 shown; therefore, the feature model region FTe' is absent in the search model 100S4. Thus, the processor 32 can generate the search model 100S4. m Furthermore, it can identify whether the feature model region FTe' exists in the search model 100S. m middle.
[0138] Next, the processor 32 generates search models 100S for various poses. m The shape data SD represented in the image data 210 captured in the previous step S11 i Perform matching. Each time a search model for various poses is used, it is matched every 100 seconds. m With shape data SD i During matching, processor 32 calculates a score representing the similarity between the two and searches against the search model 100S. m Matching shape data SD i This is to ensure that the score exceeds the specified threshold.
[0139] Figure 26 This indicates that the search model 100S is set in the sensor coordinate system C3. m The shape data SD represented in image data 210 i A matching state. In Figure 26 In the example shown, search model 100S1 is matched with shape data SD1, search model 100S4 is matched with shape data SD2, and search model 100S2 is matched with shape data SD3.
[0140] like Figure 26 As shown, the processor 32 acquires the coordinates Qs1 (x, y, z, w, p, r) of the workpiece coordinate system C4 in the sensor coordinate system C3, which is set for the search model 100S1 that matches the shape data SD1. The coordinates Qs1 represent the position and orientation of the workpiece 100 within the container E detected as shape data SD1 in the sensor coordinate system C3.
[0141] In coordinate system Qs1 (x, y, z, w, p, r), the coordinates (x, y, z) represent the position of workpiece 100 in sensor coordinate system C3, and the coordinates (w, p, r) represent the attitude (yaw, pitch, roll) of workpiece 100 in sensor coordinate system C3. Similarly, processor 32 obtains the coordinates Qs2 of the workpiece coordinate system C4 in sensor coordinate system C3 for the search model 100S4 that matches shape data SD2, and obtains the coordinates Qs3 of the workpiece coordinate system C4 in sensor coordinate system C3 for the search model 100S2 that matches shape data SD3.
[0142] Then, processor 32 generates the three detected coordinates Qs. n The detection result data for (n=1, 2, 3) is 212. Figure 27 This represents an example of data construction for test result data 212. Figure 27 In the middle, column 214 represents the coordinates Qs used to identify the detected coordinates. n The number "n", column 216 indicates the coordinates Qs used to identify the number "n". n (x, y, z, w, p, r). Furthermore, the processor 32 can determine the coordinates according to the detected coordinates Qs. n The z-coordinate values (i.e., the height of the detected workpiece 100) are assigned the identification number "n" in sequence.
[0143] On the other hand, column 218 represents the flag FL, which indicates whether feature FT is included in the search model 100S. m Shape data SD i In addition, the flag FL will be described later. Thus, processor 32 searches model 100S. m With shape data SD i Perform matching to obtain the position and orientation (coordinates Qs) of workpiece 100. n Therefore, the processor 32 serves as the position acquisition unit 84 for acquiring the position and orientation of the workpiece 100. Figure 19 It can perform its functions.
[0144] In step S13, the processor 32 executes the feature determination process. (Refer to...) Figure 28 The following describes step S13. In step S21, the processor 32 stores the coordinates Qs in the detection result data 212 generated in the previous step S12. n The identification number “n” is set to “1” (n=1).
[0145] In step S22, processor 32 will use the search model 100S used for matching in the previous step S12. m Again, compare with the image data 210 captured in the most recent step S11 ( Figure 21 The shape data SD represented in ) i Matching is performed. Specifically, the processor 32 identifies the coordinates Qs of the identification number "n" set at that time point in the sensor coordinate system C3 of the specified image data 210. n Configure search model 100S m .
[0146] For example, at this time point, the identification number "n" is set to n=1. In this case, the processor 32 simulates the search model 100S1 that matches the shape data SD1 when the coordinates Qs1 of the sensor coordinate system C3 of the specified image data 210 are acquired (i.e., the search model 100S1 is configured to match the shape data SD1). m The point cloud is projected onto the sensor coordinate system C3. Figure 29 This indicates the state. For example... Figure 29 As shown, with Figure 26 Similarly, the search model 100S1 configured (or projected) in the sensor coordinate system C3 is matched with the shape data SD1. The feature model region FTe' is specified in the search model 100S1.
[0147] On the other hand, at this time point, the identification number "n" is set to n=2. In this case, the processor 32 simulates the search model 100S4 (which matches the shape data SD2 when the coordinates Qs2 of the sensor coordinate system C3 of the specified image data 210 are acquired) in the form of coordinates Qs2. Figure 26 ). Figure 30 This indicates the state. For example... Figure 30 As shown, with Figure 26 Similarly, the search model 100S4 configured in the sensor coordinate system C3 is matched with the shape data SD2. No feature model region FTe' exists in this search model 100S4.
[0148] Refer again Figure 28 In step S23, the processor 32 determines the search model 100S that matches the previous step S22. m Does the feature model region FTe' have been specified? For example, in step S22, if... Figure 29 With the search model 100S1 configured as described, and the feature model region FTe' specified, the processor 32 determines that it is correct and proceeds to step S24. On the other hand, in the case of... Figure 30 With the search model 100S4 configured in that way, there is no feature model region FTe'. Therefore, the processor 32 determines that it is not true and proceeds to step S26.
[0149] In step S24, processor 32 functions as quantization execution unit 64 and matches the search model 100S that was matched in the most recent step S22. m The image data 210 is quantized into the smallest image unit IU. Specifically, the processor 32 quantizes the image data 210 into voxels 206 according to the image quantization program PG1, with the sensor coordinate system C3 as the reference.
[0150] As a result, the image data 210 is quantized into a plurality of voxels 206 arranged in a grid pattern along the x, y, and z axes of the sensor coordinate system C3, with each voxel 206 representing the coordinates (x, y, z) of the sensor coordinate system C3. Furthermore, the processor 32 can set the aforementioned reference coordinate system C5 at any position within the sensor coordinate system C3, and quantize the image data 210 using this reference coordinate system C5 as a reference.
[0151] In step S25, the processor 32 determines the search model 100S that was matched in the most recent step S22. m The shape data SD of the overlapping feature model region FTe' specified in the model. i The amount of data δ is used to determine the shape data SD. i Does it contain the feature FT? Specifically, processor 32 calculates the matching search model 100S from the quantized image data 210 in the previous step S24. m The specified feature model region FTe' and shape data SD i The number N of the smallest overlapping image units (IU). Figure 31 This indicates that in step S24, for Figure 29 When the image data 210 shown is quantized, it is in contrast to... Figure 29 The region XXX corresponds to voxel 206.
[0152] exist Figure 31 In the diagram, a set of voxels 206, represented in white, indicates the void region. On the other hand, a set of voxels 206B, represented by a diagonal line region, represents voxels 206 that characterize only the points of shape data SD1. A set of voxels 206C, represented by a point region, represents voxels 206 that characterize only the points of feature model region FTe'. Furthermore, a set of voxels 206D, represented in gray, represents voxels 206 that characterize both the points of shape data SD1 and the points of feature model region FTe'. In this voxel 206D, the points of shape data SD1 overlap with the points of feature model region FTe'.
[0153] The image value Vi of voxel 206, represented in white, is "0". Additionally, the image values Vi of voxel 206B, represented by the diagonal lines and the point regions, are both "1". Furthermore, the image value Vi of voxel 206D, represented in gray, is the sum of the image values Vi "1" of the points in shape data SD1 and the image values Vi "1" of the points in the feature model region FTe', both totaling "2".
[0154] The processor 32 calculates the image value Vi of each voxel 206 in the quantized image data 210, and calculates the number N1 of voxels 206D where the image value Vi is "2". This number N1 is equivalent to... Figure 29 The amount of shape data SD1 overlapping with the feature model region FTe' when the search model 100S1 is matched with the shape data SD1 is δ. Thus, the processor 32 calculates the number N1 of voxels 206D overlapping the feature model region FTe' with the shape data SD1 in the quantized image data 210, as the amount of data δ. Therefore, the processor 32, as the image unit 86 that calculates the number N1, performs the calculation. Figure 19 It can perform its functions.
[0155] Next, the processor 32 calculates the ratio R1 = N1 / N2 of the calculated number N1 to the number N2, where the number N2 is the number of the smallest image unit IU (voxel 206) corresponding to the feature model region FTe' in the quantized image data 210. Specifically, the processor 32 determines the voxels 206 (i.e., the sum of voxels 206C and 206D) representing the points of the feature model region FTe' in the image data 210 quantized into voxels 206, and calculates its number N2. Then, the processor 32 calculates the ratio R1 = N1 / N2. Thus, in this embodiment, the processor 32 is configured with a ratio calculation unit 87 for calculating the ratio R1. Figure 19 In addition, the processor 32 can also calculate the total number of voxels 206 of the point cloud representing the shape data SD1 as the number N2.
[0156] Furthermore, when the calculated ratio R1 is greater than or equal to a predetermined threshold Rth1 (R1 ≥ Rth1), the processor 32 determines that the shape data SD1 of the search model 100S1 matched in step S22 contains the feature FT (i.e., it is). Here, when R1 ≥ Rth1, it is consistent with... Figure 29 The feature model region FTe' overlaps with the shape data SD1, which contains a large amount of data δ (the number N1 in this embodiment). Therefore, it means that the shape data SD1 contains data equivalent to that of the feature FT (in this case, the protrusion 104, the outer peripheral surface 108, or the end face 110) (in other words, most of the feature FT can be seen in the shape data SD1).
[0157] Therefore, in this case, in step S12, the search model 100S1 is matched with the shape data SD1 containing the feature FT. Thus, the coordinates Qs1 (w, p, r) obtained from the search model 100S1 that matches the shape data SD1 containing the feature FT can be regarded as accurately representing the posture of the workpiece 100 detected as the shape data SD1.
[0158] Conversely, when R1 < Rth1, the amount of data δ in shape data SD1 that overlaps with the feature model region FTe' is less, which means that shape data SD1 does not contain data equivalent to the feature FT (in other words, most of the feature FT is not visible in shape data SD1). For example, when the shape detection sensor 14 captures the image of the workpiece 100 in step S11, sometimes the data equivalent to the feature FT is missing from the shape data SD1 due to reflected light from the workpiece 100, scattered light from the surroundings, or halos. In this case, the amount of data δ decreases, and as a result, R1 < Rth1 may occur. In such a case, the coordinates Qs1 (w, p, r) obtained from the matching search model 100S1 in step S12 may not accurately represent the orientation of the workpiece 100.
[0159] If the processor 32 determines "yes" in step S25, it proceeds to step S27; conversely, if it determines "no," it proceeds to step S26. Thus, in this embodiment, the processor 32 functions as the feature determination unit 88. Figure 19 The feature determination unit 88 determines whether the shape data SD1 contains the feature FT based on the amount of data δ.
[0160] In step S26, processor 32 compares the position and orientation (coordinates Qs) acquired in the most recent step S12. n ) Set the shape data SD i The flag FL1, which does not contain the feature FT, is specifically the detection result data 212 produced by processor 32 in the most recent step S12. Figure 27 In the diagram, the coordinates Qs of the identification number "n" set at that time point are... n Set the flag FL in column 218 to "FL1".
[0161] Assuming that at this time point n=2, processor 32 sets the flag FL of the coordinate Qs2, which identifies number "2", to "FL1". As described above, Figure 30 As shown, the feature model region FTe' does not exist in the search model 100S4 that matches the shape data SD2. In this case, the processor 32 determines no in step S23 and executes step S26. Therefore, as Figure 27As shown, the flag FL of the coordinates Qs2 obtained from the search model 100S4 is set to "FL1".
[0162] In step S27, the processor 32 considers the position and orientation (coordinates Qs) acquired in the most recent step S12. n ), set the shape data SD i The flag FL2 includes the feature FT. Assuming that at this time point n=1, the processor 32 sets the flag FL of the coordinate Qs1 with identification number "1" to "FL2" in the detection result data 212. As described above, if the search model 100S1 matching the shape data SD1 contains a feature model region FTe' (i.e., determined to be yes in step S23), and was determined to be yes in the previous step S25, then... Figure 27 As shown, the flag FL of the coordinates Qs1 obtained from the search model 100S1 is set to "FL2".
[0163] In step S28, the processor 32 determines whether the identification number "n" set at this time point reaches the coordinate Qs detected in step S12. n The number of n MAX When processor 32 determines that the condition is yes, it terminates. Figure 28 As shown in step S13, proceed to... Figure 20 Step S14. On the other hand, if the determination is negative, the processor 32 proceeds to step S29.
[0164] In step S29, processor 32 increments the identification number "n" by "1" (n = n + 1). Then, processor 32 returns to step S22. Thus, processor 32 repeatedly executes the loop of steps S21 to S29 until it is determined to be correct in step S28. Figure 27 The multiple coordinates Qs stored in the detection result data 212 shown are n Set the flag FL for "FL1" or "FL2".
[0165] Again, refer to Figure 20 In step S14, processor 32 executes the job. (See reference...) Figure 32 Step S14 will be explained below. In step S31, the processor 32, as in step S21 above, sets the identification number "n" to "1" (n = 1). In step S32, the processor 32 determines the coordinates Qs of the identification number "n" set at this time point in order to obtain the coordinates. n And with search model 100S m Matching shape data SD i Does it contain the feature FT?
[0166] Specifically, the processor 32 refers to the detection result data 212 generated in the most recent step S11 and determines whether the flag FL of the identification number "n" set at that time point is set to "FL1" or "FL2". If it is set to "FL1", the processor 32 determines that it is not set and proceeds to step S33. On the other hand, if it is set to "FL2", the processor determines that it is set and proceeds to step S33.
[0167] In step S33, the processor 32 holds the workpiece 100 and moves it to the specified position Pw. Assume that at this time point, the identification number "n" is set to "2". In this case, the processor 32 obtains the coordinates Qs2 of the identification number "2" from the detection result data 212 and transforms these coordinates Qs2 into coordinates Qr2 in the robot coordinate system C1.
[0168] Then, the processor 32 causes the robot 12 to move so as to position the end effector 28 (or tool coordinate system C2) to a position and orientation corresponding to coordinate Qr2. Then, the processor 32 causes the end effector 28 to move, using the end effector 28 to hold the workpiece 100 (specifically, as...). Figure 21 The shape data SD2 detects the workpiece 100, which is taken out from the container E and positioned at a location Pw determined in the robot coordinate system C1. This location Pw is predetermined as follows: the feature FT (protrusion 104) of the workpiece 100 held by the robot 12 converges within the field of view of the shape detection sensor 14.
[0169] In step S34, the processor 32 activates the shape detection sensor 14 to photograph the workpiece 100 held by the robot 12 again. The processor 32 acquires the image data ID (3D point cloud image data) captured by the shape detection sensor 14. The feature FT (protrusion 104) of the workpiece 100 is represented in this image data ID.
[0170] In step S35, the processor 32 obtains the pose of the workpiece 100 to be held by the robot 12 based on the image data ID acquired in the previous step S34. Specifically, similar to step S12 described above, the processor 32 searches the model 100S... m The shape data SD of the workpiece 100, which is represented in the image data ID, is matched to obtain the coordinates Qs' of the position and orientation of the workpiece 100 (workpiece coordinate system C4) in the sensor coordinate system C3.
[0171] The feature FT (protrusion 104) is characterized in the image data ID, therefore, the coordinates Qs' represent the accurate orientation of the workpiece 100. Then, the processor 32 uses the acquired coordinates Qs' and the known positional relationship between the sensor coordinate system C3 and the tool coordinate system C2 to acquire the coordinates Qt(w, p, r) representing the orientation of the workpiece 100 (workpiece coordinate system C4) in the tool coordinate system C2.
[0172] In step S36, the processor 32 sets the workpiece 100 in a predetermined posture Ow onto the fixture J. Assuming that step S36 is executed after step S35, the processor 32 sets the workpiece 100 held by the robot 12 in posture Ow onto the fixture J based on the coordinates Qt obtained in the previous step S35. As described above, the processor 32 can identify the accurate posture of the workpiece 100 held by the robot 12 in the tool coordinate system C2 using the coordinates Qt. Therefore, the processor 32 can accurately set the workpiece 100 in posture Ow onto the fixture J.
[0173] On the other hand, if step S36 is executed after determining in step S32 that it is true, the processor 32 performs the following operation: based on the coordinate Qs of the identification number "n" set at that time point. n The workpiece 100 is removed from container E and placed in fixture J. Assume that at this time point, the identification number "n" is set to "1". In this case, processor 32 obtains the coordinates Qs1 of identification number "1" from detection result data 212 and transforms these coordinates Qs1 into coordinates Qr1 in robot coordinate system C1.
[0174] Then, the processor 32 positions the end effector 28 (or tool coordinate system C2) to a position and orientation corresponding to coordinate Qr1, and uses the end effector 28 to hold the workpiece 100 (specifically, as...). Figure 21 The workpiece 100 is detected by the shape data SD1 in the image. Here, the coordinates Qr1 are obtained by matching the search model 100S1 with the shape data SD1 representing the feature FT. Therefore, the accurate orientation of the workpiece 100 (workpiece coordinate system C4) held by the robot 12 in the tool coordinate system C2 is known. Thus, the processor 32 can accurately set the held workpiece 100 in the fixture J with a specified orientation Ow.
[0175] In step S37, the processor 32, as in step S28 above, determines whether the number of identification numbers "n" has reached a certain number n. MAX If the processor 32 determines that the condition is correct, it terminates the process. Figure 32 As shown in step S14, proceed to... Figure 20In step S15, if the determination is negative, the process proceeds to step S38. In step S38, the processor 32 increments the identification number "n" by "1" (n = n + 1). Afterward, the processor 32 returns to step S32.
[0176] Again, refer to Figure 20 In step S15, the processor 32 determines whether the operation has been completed for all workpieces 100 within container E. If the determination is yes, the processor 32 terminates the process. Figure 20 On the other hand, if the determination is negative, the process returns to step S11. Thus, the processor 32 performs the following workpiece processing: based on the image data 210 captured by the shape detection sensor 14, it removes the workpiece 100 that is bulk in the container E and places it in the fixture J.
[0177] In addition, processor 32 can also be configured according to Figure 20 The process Figures 6-8 The workpiece 120 shown is subjected to workpiece processing. The following describes the operations performed on workpiece 120. Figure 20 In this process, the differences from the above-described operation process for workpiece 100 will be explained. After acquiring image data 210' (not shown) of workpiece 120 inside the imaging container E in step S11, in step S12, the processor 32 generates a search model 120S to obtain the position and orientation of workpiece 120. m . Figures 33 to 35 Indicates search model 120S m Examples (m = 1, 2, 3).
[0178] Processor 32, based on pre-acquired location data Pf, performs a search on model 120S. m The feature model region FTe is determined within the established workpiece coordinate system C4. In this case, the feature model region FTe corresponds to the hole model 124D (i.e., the void region). Additionally, the processor 32 can extract the search model 120S that overlaps with the determined feature model region FTe. m The point cloud is used as the feature model region FTe'. In this case, the feature model region FTe' corresponds to the proprietary regions (in other words, solid regions) of the inner circumferential surface model 126D, the edge model 130D, and 132D.
[0179] exist Figure 33 and Figure 34 In the search models 120S1 and 120S2, there exists (in other words, the feature model region FTe or FTe' is visible). On the other hand, in Figure 35The feature model region FTe or FTe' is absent (in other words, not visible) in the search model 120S3 shown. The processor 32 will process the generated search models 120S3 in various poses. m The shape data SD represented in the image data 210' captured in step S11 i Perform matching to obtain the coordinates Qs. n and generate with Figure 27 The same test result data 212.
[0180] exist Figure 28 In step S23, the processor 32 determines the search model 120S that matches the image data 210' in the previous step S22. m Whether the feature model region FTe or FTe' is specified. For example, in step S22, it is configured. Figure 33 or Figure 34 In the case of search model 120S1 or 120S2, since the feature model region FTe or FTe' is specified, the processor 32 determines that it is correct and proceeds to step S24. On the other hand, when configured with Figure 35 In the case of the search model 120S3 shown, since there is no feature model region FTe or FTe', the processor 32 determines it as no and proceeds to step S26.
[0181] In step S25, the processor 32 functions as the feature determination unit 88, determining the shape data SD based on the data quantity δ. i Does it contain the feature FT? Specifically, processor 32 calculates the matching search model 120S in the image data 210' quantized in the previous step S24. m The specified feature model region FTe or FTe' and shape data SD i The number of overlapping voxels, N.
[0182] Figure 36 This represents voxel 206 obtained by quantizing image data 210'. In Figure 36 In the diagram, the set of voxels 206, represented in white, corresponds only to the feature model region FTe (i.e., the void region equivalent to the hole model 124D). The set of voxels 206E, represented in gray, represents the shape data SD. i Points and search model 120S m The voxels 206 in the text represent points of the main body model 122D. In addition, a set of voxels 206C represented by point regions represent voxels 206 that only characterize the feature model region FTe' (i.e., the exclusive region corresponding to the inner circumferential surface model 126D, the edge model 130D or 132D).
[0183] On the other hand, a set of voxels 206F, represented by the obliquely lined region, represents the feature model region FTe (hole model 124D) and shape data SD. i The points overlap at voxel 206. Within voxel 206F, the shape data SD i The points overlap with the feature model region FTe, which is the void region. Additionally, a set of voxels 206D, represented in dark gray, represents the shape data SD. i The voxels 206 are the points and feature model regions FTe' (inner circumferential surface model 126D, edge model 130D or 132D) on both sides. Within this voxel 206D, the shape data SD i The points overlap with the points in the feature model region FTe'.
[0184] The image value Vi of voxel 206, represented in white, is "0". Additionally, the image value Vi of voxel 206F, represented by a diagonal line area, and the image value Vi of voxel 206C, represented by a dotted area, are "1". The image value Vi of voxel 206E, represented in gray, and the image value Vi of voxel 206D, represented in dark gray, are "2".
[0185] As an example, processor 32 functions as image unit arithmetic unit 86, calculating the feature model region FTe and shape data SD from the quantized image data 210'. i The number of overlapping voxels 206F is N3. This number N3 is equivalent to searching model 120S. m With shape data SD i The shape data SD that overlaps with the feature model region FTe, which is the hole region, when matching. i The data volume δ. Next, the processor 32, acting as the ratio calculation unit 87, calculates the ratio R2 (=N3 / N4) of the calculated number N3 to the number N4, where the number N4 is the voxel 206 in the quantized image data 210' corresponding to the feature model region FTe (equivalent to Figure 36 The number of white voxels 206 and the sum of oblique voxels 206F.
[0186] Then, when the calculated ratio R2 is below the specified threshold Rth2 (R2≤Rth2), the processor 32 determines that the search model 120S was matched in step S22. m Shape data SD i It contains the feature FT (i.e., is). Here, the larger the value of R2 (i.e., the number N3), the larger it represents the shape data SD of the solid region. i The more points overlap in the feature model region FTe, which is a hollow region, the more this means in the search model 120S m The specified feature model region FTe is not associated with the shape data SD.i Match appropriately.
[0187] Conversely, when R2 is smaller than Rth2 to satisfy R2≤Rth2, it means that the feature model region FTe has been aligned with the shape data SD. i Proper matching, therefore, in shape data SD i It includes the feature FT (in this case, hole 124) (in other words, in the shape data SD) i (Most of the hole 124 can be seen in the image). The processor 32 functions as a feature determination unit 88, determining "yes" when R2 ≤ Rth2 and proceeding to step S27, and "no" when R2 > Rth2 and proceeding to step S26. Furthermore, the processor 32 can also calculate the characterization shape data SD. i The total number of voxels 206 in the point cloud is used as the number N4.
[0188] As another example, processor 32 functions as an image unit arithmetic unit 86, calculating shape data SD from the quantized image data 210'. i The number N1 of voxels 206D that overlap with the points of the feature model region FTe' (inner peripheral model 126D, edge model 130D or 132D). This number N1 is equivalent to the number of voxels 206D that overlap with the points of the search model 120S. m With shape data SD i The shape data SD that overlaps with the feature model region FTe' when matching i The amount of data δ.
[0189] Then, the processor 32 functions as a ratio calculation unit 87, calculating the ratio R1 (=N1 / N2) of the calculated number N1 to the number N2, where the number N2 is the number of voxels 206 corresponding to the feature model region FTe' in the quantized image data 210' (equivalent to the sum of voxels 206C and 206D). Then, the processor 32 functions as a feature determination unit 88, determining "yes" when R1≥Rth1 and proceeding to step S27, and "no" when R1<Rth1 and proceeding to step S26. In this way, the processor 32 can also execute [the function] for the workpiece 120. Figure 28 Step S13 can be executed in accordance with the flag FL set in step S26 or S27, and step S14 can be performed accordingly. Furthermore, the processor 32 can calculate the shape characterization data SD. i The total number of voxels 206 in the point cloud is used as the number N2.
[0190] As described above, in this embodiment, the processor 32 functions as a quantization execution unit 64, a model generation unit 82, a position acquisition unit 84, an image unit calculation unit 86, a comparison calculation unit 87, and a feature determination unit 88, acquiring the position and orientation (coordinates Qs, Qr) of the workpiece 100 or 120, and performing operations based on the position and orientation. Therefore, the model generation unit 82, the position acquisition unit 84, the image unit calculation unit 86, the comparison calculation unit 87, and the feature determination unit 88 constitute a device 80 for acquiring the position and orientation of the workpiece 100 or 120. Figure 19 ).
[0191] In this device 80, the position acquisition unit 84 acquires the workpiece models 100M and 120M (search models 100S and 120S) with pre-defined feature model regions FTe and FTe', and the shape data SD of the workpieces 100 and 120 detected by the shape detection sensor 14. i Matching is performed to obtain the position and orientation (coordinates Qs, Qr) of workpieces 100 and 120 (step S12).
[0192] Then, the feature determination unit 88 determines the feature based on the shape data SD. i The shape data SD of the overlapping feature model regions FTe and FTe' specified in the matching workpiece models 100M and 120M. i The amount of data δ is used to determine the shape data SD. i Does it contain feature FT (step S25)? As described above, when the position and orientation of workpiece 100 or 120 are obtained, if the shape data SD i If the FT feature (e.g., protrusion 104 or hole 124) is not included, the orientation of workpiece 100 or 120 cannot be accurately detected.
[0193] According to device 80, the shape data SD can be automatically determined. i Whether the data contains the Fourier Transform (FT) feature can be used to identify the possibility of detecting inaccurate poses. As a result, for example, in... Figure 32 The first action, such as "No" in step S32 → "Steps S33~S36", and the second action, such as "Yes" in step S32 → "Step S36", can cause the robot 12 to perform different actions according to the determination result of whether or not the feature FT is present.
[0194] In addition, Figure 32 In the process, if the processor 32 determines in step S32 that the error is not detected, it can generate an alarm signal instead of steps S33-S35. Furthermore, the processor 32 can also terminate the operation without executing step S36. In this case, the operator can still identify the possibility of detecting inaccurate posture and take countermeasures such as design changes.
[0195] Additionally, in device 80, shape detection sensor 14 has the function of capturing shape data SD. i The visual sensors 210 and 210', and the position acquisition unit 84, in the image data 210 and 210', compare the workpiece models 100M and 120M with the shape data SD. i Matching is performed. The quantization execution unit 64 quantizes the image data 210, 210' into the smallest image unit IU (voxel 206) (step S24).
[0196] The image unit processing unit 86 calculates the feature model regions FTe and FTe' and the shape data SD in the quantized image data 210 and 210'. i The number of overlapping smallest image units (IU), N1 and N3, is used as the data volume δ. Then, the feature determination unit 88 makes a determination based on the number N1 and N3. According to this structure, the determination of whether there is a feature FT can be performed by calculating the number of smallest image units (IU), N1 or N3, and therefore, the determination can be performed quickly.
[0197] Furthermore, in the device 80, the comparison calculation unit 87 calculates the ratios R1 and R2 between the number N1 and N3 calculated by the image unit calculation unit 86 and the number N2 and N4 of the smallest image unit IU corresponding to the feature model regions FTe and FTe' in the quantized image data 210 and 210'. Then, the feature determination unit 88 makes a determination based on the ratios R1 and R2. According to this structure, the determination of the presence or absence of feature FT can be performed quickly with a more accurate and simpler algorithm.
[0198] Furthermore, the processor 32 can also perform the determination in step S25 without calculating the ratios R1 and R2. For example, in step S25, the processor 32 can determine "yes" when the number N1 is above a predetermined threshold (or the number N3 is below a predetermined threshold). That is, in this case, the ratio calculation unit 87 can be omitted from the device 80. Moreover, the determination method in step S25 described above is one example; the processor 32 can also determine the shape data SD based on the data quantity δ using any other method. i Does it contain the feature FT?
[0199] Furthermore, in step S12 described above, the processor 32 can detect the coordinates Qs of the sensor coordinate system C3. n Transformed into coordinates Qr in robot coordinate system C1 n Create the coordinates Qr n The detection result data is 212. Additionally, the coordinates Qr of the robot coordinate system C1 can also be used. n To execute steps S22-S25. The processor 32 can convert the shape data SD represented in the image data 210 or 210' into shape data SD. iThe point cloud's coordinates in the sensor coordinate system C1 are transformed into the robot coordinate system C1, and the shape data SD is transformed. i This is indicated in the robot coordinate system C1.
[0200] Furthermore, in step S22, the search model 100S can be placed in the robot coordinate system C1. m Or 120S m With shape data SD i The matching is performed, and in step S24, the image data 210 or 210' is quantized into the smallest image unit IU (voxel 206) based on the robot coordinate system C1. In this way, the processor 32 can execute steps S22 to S25 based on the robot coordinate system C1.
[0201] Furthermore, in the above embodiment, the material produced during the execution of step S12 is... Figure 27 After the test result data 212 shown, execute... Figure 28 The case of step S13 has been described. However, it is not limited to this; steps S12 and S13 can also be combined, whenever coordinate Qs is obtained in step S12. n When, execute Figure 28 Steps S23 to S27 in the process.
[0202] Specifically, in step S12, the processor 32 searches for model 100S m Or 120S m Compared with the shape data SD in image data 210 or 210' i To obtain coordinates Qs through matching n At this time, steps S23~S27 are executed. During this time, processor 32 determines the coordinates Qs based on the desired coordinates. n And with shape data SD i Matching search model 100S m Or 120S m Then proceed with steps S23 to S27.
[0203] At this time, the processor 32 will acquire the coordinates Qs n Stored in the detection result data 212, and for this coordinate Qs n In step S26 or S27, the flag FL of column 218 is set to "FL1" or "FL2". Therefore, in step S12, it is possible to create... Figure 27 The detection result data 212 is set with the flag FL as shown.
[0204] Furthermore, in step S24 described above, processor 32 can replace voxel 206 by quantizing it into multiple pixels arranged in a grid pattern along the x and y axes of the sensor coordinate system C3, serving as the smallest image unit IU. Then, processor 32 can execute step S25 based on the image value Vi' of the pixel.
[0205] In addition, it can also be obtained from Figure 28 Step S24 is omitted in the illustrated process. Then, in step S25, the processor 32 can acquire shape data SD in the sensor coordinate system C3 that has coordinates that are the same as (or within a specified distance of) the coordinates of a point in the feature model region FTe or FTe'. i The number of points N5 is used as the shape data SD that overlaps with the feature model region FTe or FTe'. i The amount of data δ. Then, the processor 32 can determine if the number N5 is above or below a predetermined threshold. That is, in this case, the quantization execution unit 64, the image unit calculation unit 86, and the comparison calculation unit 87 can be omitted from the device 80.
[0206] In addition, in step S12 above, the search model 100S is replaced. m Or 120S m For example, a drawing model 100D or 120D, or any other type of workpiece model 100M or 120M, can be combined with shape data SD. i Matching is performed. That is, in this case, the model generation unit 82 can be omitted from the device 80.
[0207] Next, refer to Figures 37-3 9. Another function of the robot system 10 will be described. In this embodiment, the processor 32 of the control device 16, as in the above embodiment, acquires the position and orientation of the workpiece 100 or 120 and performs workpiece processing on the workpiece 100 or 120. In this embodiment, the processor 32 executes... Figure 20 The process shown is used to operate on workpiece 100 or 120.
[0208] Specifically, after step S11, in step S12, the processor 32 acts as the model generation unit 82 ( Figure 37 ) Utilizes its function to generate a search model 100S m Or 120S m Additionally, processor 32 serves as feature designator 70 ( Figure 37 ) to perform its function, in generating multiple search models 100S m Or 120S m Search model 100S containing feature FT m Or 120S mIn the text, the feature model region FTe or FTe' corresponding to the feature FT is specified. For example, processor 32, based on pre-generated location data Pf, in... Figures 22-24 The specified feature model region FTe' (protrusion model 104D, peripheral surface model 108D or end face model 110D) is shown in the search models 100S1~100S3.
[0209] As an alternative, processor 32, based on pre-generated position data Pf, in Figure 33 and Figure 34 The search models 120S1 and 120S2 shown specify the feature model region FTe (hole model 124D) or the feature model region FTe' (inner circumferential surface model 126D, edge models 130D and 132D). Then, the processor 32 acts as the position acquisition unit 84 ( Figure 37 ) Utilize its function to generate a search model 100S m Or 120S m The shape data SD represented in the image data 210 or 210' captured in step S11 i Matching is performed to obtain the position and orientation (coordinates Qs) of workpiece 100 or 120. Then, processor 32 manufactures... Figure 27 The test result data 212 is shown.
[0210] In this embodiment, as step S13, the processor 32 executes... Figure 38 The process is shown. Furthermore, in Figure 38 In the process shown, for and Figure 28 The same process is labeled with the same step numbers, and repeated descriptions are omitted. After step S13 begins, processor 32 executes step S21 as described above.
[0211] In step S41, the processor 32 acts as the feature determination unit 88. Figure 37 ) Performs its function to determine shape data SD i Whether it contains features FT. Specifically, processor 32 determines whether the search model 100S matches the shape data SDi characterized in the image data 210 or 210' in the most recent step S12. m Or 120S m Does the specified feature model region FTe or FTe' exist? For example, in the most recent step S12, it is created... Figure 27 The detection result data 212 shown has the identification number "n" set to "2" at that time point.
[0212] In this case, processor 32 will search model 100S2 with shape data SD2, which was characterized in image data 210 in the most recent step S12. Figure 26The processor 32 performs a matching operation. No feature model region FTe' exists in the search model 100S2. Therefore, the processor 32 determines the shape data SD. i If the FT feature is not included (i.e., no), proceed to step S27.
[0213] On the other hand, if the search models 100S1, 100S2, or 100S3 are matched in the most recent step S12, the feature model region FTe' is specified in them. In this case, the processor 32 determines that the shape data SD is correct. i If the feature FT is included (i.e., it is), proceed to step S26. Then, processor 32 executes steps S26 to S19 sequentially, as in the above embodiment. Figure 20 Steps S14 and S15 in the process.
[0214] As described above, in this embodiment, the processor 32 functions as a model generation unit 82, a feature designation unit 70, a position acquisition unit 84, and a feature determination unit 88, acquiring the position and orientation (coordinates Qs, Qr) of the workpiece 100 or 120, and performing operations based on the position and orientation. Therefore, the model generation unit 82, the feature designation unit 70, the position acquisition unit 84, and the feature determination unit 88 constitute a device 90 for acquiring the position and orientation of the workpiece 100 or 120. Figure 37 ).
[0215] In this device 90, the feature designation unit 70 generates multiple search models 100S in the model generation unit 82. m Or 120S m In the search model 100S1, 100S2 or 100S3 or 120S1 or 120S2 containing the feature FT, specify the feature model region FTe or FTe' corresponding to the feature FT.
[0216] Then, when the position acquisition unit 84 acquires the position and orientation, it compares the shape data SD with the position acquisition unit 84. i Matching search model 100S m Or 120S m If the specified feature model region FTe or FTe' exists in the data, the feature determination unit 88 determines that the shape data SD is the shape data. i Includes feature FT (step S41). Based on this structure, a search model 100S can be used for matching to obtain the position and orientation of workpiece 100 or 120. m Or 120S m It quickly performs the determination of whether or not a feature-rich Fourier Transform (FT) is present. Additionally, it is related to... Figure 28 Compared to the previous process, this reduces the amount of computation and thus reduces the loop time.
[0217] Furthermore, the device 90 may also have the functions of the aforementioned device 50 (image generation unit 52, input receiving unit 54, and location data generation unit 56). For example, the processor 32 functions as a model generation unit 82 to generate the search model 100S. m Or 120S m At that time, the image generation unit 52 functions as an image generation unit to generate and display the search model 100S. m Or 120S m The image data 200' is displayed on the display device 38.
[0218] In the image data 200', the processor 32 can display the specified box image 202 or cursor image 204 as described above. Next, the processor 32 functions as an input receiving unit 54, receiving the following input IP1 or IP2 via the input device 40: the search model 100S displayed in the image data 200'. m Or 120S m In the text, specify the feature model region FTe or FTe'.
[0219] For example, an operator can manipulate input device 40 to provide processor 32 with information to enclose the search model 100S within a specified bounding box image 202. m Or 120S m The input IP1 is the point cloud, or the input IP2 is the point cloud selected by the cursor image 204 (or the area of the point cloud to be selected is specified by drag and drop).
[0220] Next, the processor 32, acting as the position data generation unit 56, generates position data Pf (coordinates in the workpiece coordinate system C4). This position data Pf represents the feature model region FTe or FTe' specified by the input IP1 or IP2 in the search model S. m Or 120S m The position within the search model S. Thus, device 50 can be configured to operate within the search model S. m Or 120S m The feature model region FTe or FTe' is specified in the specification. Then, the processor 32 can perform the following based on the feature model region FTe or FTe' specified by the function of the device 50: Figure 38 Step S41 in the process.
[0221] Furthermore, the processor 32 can execute according to the computer program PG4 pre-stored in the memory 34. Figure 20 The process is shown. Additionally, the functions of the devices 80 or 90 executed by the processor 32 can be functional modules implemented by the computer program PG4.
[0222] Furthermore, the shape detection sensor 14 is not limited to a vision sensor; for example, it can be any type of sensor capable of detecting the shape of workpieces 100 and 120, such as a laser scanner. Additionally, workpieces 100 and 120 are examples; they can also be workpieces of any shape having a feature FT as an attitude reference. For example, workpiece 100 may have multiple protrusions 104, or workpiece 120 may have any number of holes 124.
[0223] Furthermore, the shape detection sensor 14 is not limited to fixed-point mounting; it can also be mounted on the robot 12 and positioned at the shooting position Pi by the robot 12. In this case, the second shape detection sensor 14' can be fixed to the work unit separately from the shape detection sensor 14. In step S34 described above, the processor 32 causes the second shape detection sensor 14' to capture images of the workpiece 100 or 120 held by the robot 12.
[0224] Furthermore, all the functions of devices 50, 60, 80, and 90 can also be installed in the control device 16. In this case, the processor 32 has the functions of an image generation unit 52, an input receiving unit 54, a position data generation unit 56, a model configuration unit 62, a quantization execution unit 64, an analog unit 66, an image unit determination unit 68, a feature specification unit 70, a model generation unit 82, a position acquisition unit 84, an image unit calculation unit 86, a comparison calculation unit 87, and a feature determination unit 88.
[0225] Furthermore, in the above embodiments, the functions of devices 50, 60, 80, and 90 are described as being installed in the control device 16. However, at least a portion of the functions of devices 50, 60, 80, or 90 may also be installed in any type of computer different from the control device 16, such as a teaching pendant for teaching actions to the robot 12 or a PC for the shape detection sensor 14. Additionally, the robot 12 is not limited to a vertical articulated robot; it may be any type of robot, such as a horizontal articulated robot or a parallel linkage robot. Furthermore, as a task, the robot 12 is not limited to the workpiece handling described above; it may be configured to perform any task, such as welding or laser processing.
[0226] The present disclosure has been described in detail above, but it is not limited to the various embodiments described above. These embodiments can be modified, altered, or partially deleted in various ways without departing from the core essence of the present disclosure, or without departing from the core essence of the present disclosure derived from the claims and their equivalents. Furthermore, these embodiments can also be implemented in combination. For example, in the above embodiments, the order of each action and the order of each process have been shown as an example, but this is not a limitation. Similarly, the use of numerical values or mathematical formulas in the description of the above embodiments is also consistent.
[0227] This disclosure describes the following methods.
[0228] (Method 1) An apparatus 80 for acquiring the position and orientation of workpieces 100 and 120, the workpieces 100 and 120 having features FT as a reference for determining the orientation, the apparatus 80 comprising: a position acquisition unit 84, which acquires the position of workpiece models 100M and 120M by means of shape data SD of workpieces 100 and 120 detected by shape detection sensor 14. i Matching is performed to obtain position and orientation. Workpiece models 100M and 120M are modeled from workpieces 100 and 120, and are assigned feature model regions FTe and FTe' corresponding to feature FT. The feature determination unit 88 determines the position and orientation based on the shape data SD. i The shape data SD of the overlapping feature model regions FTe and FTe' specified in the matching workpiece models 100M and 120M. i The amount of data δ is used to determine the shape data SD. i Does it contain features?
[0229] (Method 2) The apparatus 80 according to Method 1, wherein the shape detection sensor 14 includes: a vision sensor that captures shape data SD. i Image data 210, 210', the position acquisition unit 84 combines the workpiece models 100M, 120M with the shape data SD in the image data 210, 210'. i For matching, the device 80 further includes: a quantization execution unit 64 that quantizes the image data 210, 210' into the smallest image unit IU; and an image unit calculation unit 86 that calculates the feature model regions FTe, FTe' and shape data SD in the quantized image data 210, 210'. i The number of overlapping smallest image units (IU) N1 and N3 are used as the data volume δ, and the feature determination unit 88 makes a determination based on the number N1 and N3.
[0230] (Method 3) According to the apparatus 80 of Method 2, the apparatus 80 further includes: a comparison calculation unit 87, which calculates the ratios R1 and R2 of the number N1, N3 calculated by the image unit calculation unit 86 and the number N2, N4 of the smallest image unit IU corresponding to the feature model regions FTe, FTe' in the quantized image data 210, 210', and the feature determination unit 88 makes a determination based on the ratios R1 and R2.
[0231] (Method 4) An apparatus 90 for acquiring the position and orientation of workpieces 100 and 120, the workpieces 100 and 120 having features FT as a reference for determining the orientation, the apparatus 90 comprising: a model generation unit 82, which generates multiple search models 100S based on drawing models 100D and 120D representing the overall shape of the workpieces 100 and 120. m 120S m Multiple search models 100S m 120S m These represent partial shapes of the drawing model 100D and 120D as seen from multiple viewpoints VP; the feature specification unit 70, which generates multiple search models 100S in the model generation unit 82. m 120S m Search model 100S containing feature FT m 120S m In the middle, the feature model regions FTe and FTe' corresponding to the feature FT are specified; the location acquisition unit 84, which obtains the location by each search model 100S m 120S m The shape data SD of workpieces 100 and 120 detected by shape detection sensor 14 i The system performs matching to obtain position and pose; the feature determination unit 88, upon obtaining position and pose, compares the feature with the shape data SD. i Matching search model 100S m 120S m If the specified feature model regions FTe and FTe' exist in the data, it is determined to be the shape data SD. i It contains the feature FT.
[0232] (Method 5) An apparatus 50 for specifying the feature FT in workpieces 100 and 120 having the feature FT as a reference for determining the posture. The apparatus 50 includes: an image generation unit 52 that generates image data 200 and 200' of workpiece models 100M and 120M, which are obtained by modeling workpieces 100 and 120; an input receiving unit 54 that receives inputs IP1 and IP2 in the workpiece models 100M and 120M displayed in the image data 200, which are used to specify feature model regions FTe and FTe' corresponding to the feature FT; and a position data generation unit 56 that generates position data Pf, which represents the position of the feature model regions FTe and FTe' specified by the inputs IP1 and IP2 received by the input receiving unit 54 in the workpiece models 100M and 120M.
[0233] (Method 6) An apparatus 60 for specifying the feature FT in workpieces 100 and 120 having the feature FT as a reference for determining the posture. The apparatus 60 includes: a model configuration unit 62, which configures workpiece models 100M and 120M obtained by modeling the workpieces 100 and 120 in a virtual space VS; a quantization execution unit 64, which quantizes the virtual space VS configured by the model configuration unit 62 for the workpiece model 100M into a minimum image unit IU; a simulation unit 66, which executes a simulation SL in the virtual space VS quantized by the quantization execution unit 64 to rotate the workpiece models 100M and 120M around the symmetry axes A2 and A3 by a predetermined angle θ; an image unit determination unit 68, which determines the minimum image unit Vi in which the image value Vi changes before and after the simulation SL; and a feature specification unit 70, which specifies the feature model regions FTe and FTe' corresponding to the feature FT in the workpiece models 100M and 120M based on the minimum image unit IU determined by the image unit determination unit 68.
[0234] (Method 7) The apparatus 60 according to Method 6, wherein the apparatus 60 further comprises: a position data generation unit 56, which generates position data Pf, the position data Pf representing the position of the feature model regions FTe, FTe' specified by the feature designation unit 70 in the workpiece models 100M, 120M.
[0235] (Method 8) The device 60 according to Method 6 or 7, wherein the device 60 further comprises: an angle determining unit 72, which determines a specified angle θ based on the size of the smallest image unit IU in the quantized virtual space VS relative to the workpiece model 100M or 120M.
[0236] (Method 9) A method for acquiring the position and orientation of workpieces 100 and 120, the workpieces 100 and 120 having features FT as a reference for determining the orientation, by comparing the workpiece models 100M and 120M with the shape data SD of the workpieces 100 and 120 detected by the shape detection sensor 14. i Matching is performed to obtain position and orientation. Workpiece models 100M and 120M are derived by modeling workpieces 100 and 120, respectively, and are assigned feature model regions FTe and FTe' corresponding to the feature FT. Based on the shape data SD... i The shape data SD of the overlapping feature model regions FTe and FTe' specified in the matching workpiece models 100M and 120M. i The amount of data δ is used to determine the shape data SD. i Does it contain the feature FT?
[0237] (Method 10) A method for obtaining the position and orientation of workpieces 100 and 120, the workpieces 100 and 120 having features FT as a reference for determining the orientation, and generating multiple search models 100S based on drawing models 100D and 120D representing the overall shape of workpieces 100 and 120. m 120S m Multiple search models 100S m 120S m These represent partial shapes of the drawing model 100D and 120D as seen from multiple viewpoints VP; in the generated multiple search models 100S m 120S m Search model 100S containing feature FT m 120S m In the middle, specify the feature model regions FTe and FTe' corresponding to the feature FT; by using each search model 100S m 120S m The shape data SD of workpieces 100 and 120 detected by shape detection sensor 14 i Perform matching to obtain position and pose; once position and pose are obtained, compare them with shape data SD. i Matching search model 100S m 120S m If the specified feature model regions FTe and FTe' exist in the data, it is determined to be the shape data SD. i It contains the feature FT.
[0238] (Method 11) A method for specifying the feature FT in workpieces 100 and 120 having the feature FT as a reference for determining the posture; generating image data 200 and 200' displaying workpiece models 100M and 120M, which are obtained by modeling workpieces 100 and 120; receiving inputs IP1 and IP2 in the workpiece models 100M and 120M displayed in the image data 200, which are used to specify the feature model regions FTe and FTe' corresponding to the feature FT; generating position data Pf, which represents the position of the feature model regions FTe and FTe' specified by the received inputs IP1 and IP2 in the workpiece models 100M and 120M.
[0239] (Method 12) A method for specifying the feature FT in workpieces 100 and 120 having the feature FT, wherein the feature FT serves as a reference for determining the attitude, and workpiece models 100M and 120M obtained by modeling the workpieces 100 and 120 are configured in a virtual space VS; the virtual space VS with the workpiece models 100M and 120M configured is quantized into a minimum image unit IU; in the quantized virtual space VS, a simulation SL is performed to rotate the workpiece models 100M and 120M around the symmetry axes A2 and A3 by a specified angle θ; the minimum image unit IU in which the image value Vi changes before and after the simulation SL is determined; and based on the determined minimum image unit IU, the feature model regions FTe and FTe' corresponding to the feature FT are specified in the workpiece models 100M and 120M.
[0240] (Method 13) A computer program PG2, PG3, PG4, wherein the processor 32 is caused to execute the method of any one of methods 9 to 12.
[0241] Symbol Explanation
[0242] 10 Robotic Systems
[0243] 12 robots
[0244] 14 Shape Detection Sensor
[0245] 16. Control device
[0246] 52 Image Generation Unit
[0247] 54 Input Acceptance Department
[0248] 56. Location Data Generation Department
[0249] 62 Model Configuration Department
[0250] 64 Quantitative Execution Department
[0251] 66. Simulation Department
[0252] 68 Image Unit Determination Section
[0253] 70 Feature Designation Section
[0254] 82 Model Generation Department
[0255] 84 Location Acquisition Department
[0256] 86 Image Unit Computing Unit
[0257] 87 Comparison Unit
[0258] 88 Feature Determination Unit
[0259] 100 and 120 workpieces
[0260] 100M and 120M workpiece models
[0261] Image data of 200 and 210.
Claims
1. An apparatus for acquiring the position and orientation of a workpiece, the workpiece having features serving as a reference for determining the orientation, characterized in that, The device has: A position acquisition unit acquires the position and the orientation by matching a workpiece model with shape data of the workpiece detected by a shape detection sensor, wherein the workpiece model is obtained by modeling the workpiece and is assigned a feature model region corresponding to the features; and The feature determination unit determines whether the shape data contains the feature based on the amount of data in the shape data that overlaps with the feature model region specified in the workpiece model that matches the shape data.
2. The apparatus according to claim 1, characterized in that, The shape detection sensor includes: a vision sensor that captures image data characterizing the shape data. The position acquisition unit matches the workpiece model with the shape data in the image data. The device also has: The quantization execution unit quantizes the image data into the smallest image unit; as well as The image unit calculation unit calculates the number of the smallest image units in the quantized image data where the feature model region overlaps with the shape data, and uses this number as the data volume. The feature determination unit makes the determination based on the number of features.
3. The apparatus according to claim 2, characterized in that, The device further includes: a comparison unit that calculates the ratio of the number calculated by the image unit calculation unit to the number of the smallest image units corresponding to the feature model region in the quantized image data. The feature determination unit makes the determination based on the ratio.
4. An apparatus for acquiring the position and orientation of a workpiece, the workpiece having features serving as a reference for determining the orientation, characterized in that, The device has: The model generation unit generates multiple search models based on a drawing model representing the overall shape of the workpiece. Each of the multiple search models represents a portion of the shape of the drawing model as seen from multiple viewpoints. The feature specification unit specifies a feature model region corresponding to the feature in the search model that includes the feature among the plurality of search models generated by the model generation unit; The position acquisition unit acquires the position and the orientation by matching each of the search models with the shape data of the workpiece detected by the shape detection sensor. as well as The feature determination unit, upon acquiring the position and the pose, determines that the shape data contains the specified feature if the specified feature model region exists in the search model that matches the shape data.
5. An apparatus for specifying a feature in a workpiece having a characteristic, said feature serving as a reference for determining an attitude, characterized in that, The device has: The image generation unit generates and displays image data of a workpiece model, which is obtained by modeling the workpiece. An input receiving unit accepts inputs in the workpiece model displayed in the image data, the inputs being used to specify the feature model area corresponding to the feature; as well as A position data generation unit generates position data that represents the position of the feature model region specified by the input received by the input receiving unit within the workpiece model.
6. An apparatus for specifying a feature in a workpiece having a characteristic, said feature serving as a reference for determining an attitude, characterized in that, The device has: The model configuration unit configures the workpiece model obtained by modeling the workpiece in the virtual space; The quantization execution unit quantizes the virtual space of the workpiece model configured by the model configuration unit into the smallest image unit; The simulation unit performs a simulation in the virtual space quantized by the quantization execution unit, which causes the workpiece model to rotate around the axis of symmetry by a specified angle. An image unit determination unit determines the smallest image unit whose image value changes before and after the simulation. as well as The feature designation unit designates a feature model region in the workpiece model corresponding to the feature based on the smallest image unit determined by the image unit determination unit.
7. The apparatus according to claim 6, characterized in that, The device further includes: a position data generation unit that generates position data representing the position of the feature model region specified by the feature designation unit in the workpiece model.
8. The apparatus according to claim 6, characterized in that, The device further includes an angle determining unit that determines the specified angle based on the size of the smallest image unit in the quantized virtual space relative to the workpiece model.
9. A method for obtaining the position and orientation of a workpiece, the workpiece having features serving as a reference for determining the orientation, characterized in that, The position and the orientation are obtained by matching the workpiece model with the shape data of the workpiece detected by the shape detection sensor, wherein the workpiece model is obtained by modeling the workpiece and is assigned a feature model region corresponding to the feature. Based on the amount of data in the shape data that overlaps with the feature model region specified in the workpiece model that matches the shape data, it is determined whether the shape data contains the feature.
10. A method for obtaining the position and orientation of a workpiece, the workpiece having features serving as a reference for determining the orientation, characterized in that, Multiple search models are generated based on a drawing model representing the overall shape of the workpiece, each of which represents a portion of the shape of the drawing model as seen from multiple viewpoints. In the generated plurality of search models that include the feature, specify the feature model region corresponding to the feature; The position and orientation are obtained by matching each of the search models with the shape data of the workpiece detected by the shape detection sensor; as well as When the position and the pose are obtained, if the specified feature model region exists in the search model that matches the shape data, it is determined that the shape data contains the feature.
11. A method for specifying a feature in a workpiece having a characteristic, said feature serving as a reference for determining an orientation, characterized in that, Image data displaying a workpiece model is generated, the workpiece model being obtained by modeling the workpiece; The input is received in the workpiece model displayed in the image data, and the input is used to specify the feature model region corresponding to the feature; as well as Generate location data that represents the position of the feature model region specified by the accepted input within the workpiece model.
12. A method for specifying a feature in a workpiece having a characteristic, said feature serving as a reference for determining an orientation, characterized in that, The workpiece model obtained by modeling the workpiece is configured in the virtual space; The virtual space configured with the workpiece model is quantized into the smallest image unit; In the quantized virtual space, a simulation is performed to rotate the workpiece model by a specified angle around the axis of symmetry; Determine the smallest image unit whose image value changes before and after the simulation; as well as Based on the determined minimum image unit, a feature model region corresponding to the feature is specified in the workpiece model.
13. A computer program, characterized in that, The processor is made to execute the method according to any one of claims 9 to 12.