WO2024042619A1 - 装置、ロボットの制御装置、ロボットシステム、方法 - Google Patents

装置、ロボットの制御装置、ロボットシステム、方法 Download PDF

Info

Publication number
WO2024042619A1
WO2024042619A1 PCT/JP2022/031754 JP2022031754W WO2024042619A1 WO 2024042619 A1 WO2024042619 A1 WO 2024042619A1 JP 2022031754 W JP2022031754 W JP 2022031754W WO 2024042619 A1 WO2024042619 A1 WO 2024042619A1
Authority
WO
WIPO (PCT)
Prior art keywords
model
workpiece
feature
data
processor
Prior art date
Application number
PCT/JP2022/031754
Other languages
English (en)
French (fr)
Inventor
潤 和田
Original Assignee
ファナック株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by ファナック株式会社 filed Critical ファナック株式会社
Priority to PCT/JP2022/031754 priority Critical patent/WO2024042619A1/ja
Publication of WO2024042619A1 publication Critical patent/WO2024042619A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices

Definitions

  • the present disclosure relates to a device, a robot control device, a robot system, and a method for acquiring dissimilar information in a work model.
  • Patent Document 1 There are known devices that acquire positional data of a workpiece by matching a workpiece model to shape data of the workpiece detected by a shape detection sensor (e.g., three-dimensional visual sensor) (e.g., Patent Document 1).
  • a shape detection sensor e.g., three-dimensional visual sensor
  • erroneous detection of position data may occur due to erroneous matching of a workpiece model to data detected by a shape detection sensor.
  • the apparatus is a model acquisition unit that acquires a plurality of workpiece models each modeling a workpiece in a plurality of postures, the workpiece model having a feature model corresponding to a visual feature of the workpiece.
  • a model acquisition unit and information for acquiring dissimilarity information for identifying a first feature model in a first workpiece model in one posture that has a dissimilar relationship with features of a workpiece in another posture. and an acquisition section.
  • a method in another aspect of the present disclosure, includes a method in which the processor generates a plurality of workpiece models each modeling a workpiece in a plurality of postures, each including a feature model corresponding to a visual characteristic of the workpiece.
  • a model is acquired, and dissimilarity information for identifying a first feature model that has a dissimilar relationship with features of a workpiece in another posture in a first workpiece model in one posture is acquired.
  • FIG. 1 is a schematic diagram of a robot system according to an embodiment.
  • 2 is a block diagram of the robot system shown in FIG. 1.
  • FIG. A workpiece and a workpiece model placed in a first posture are shown.
  • the workpiece and workpiece model placed in the second posture are shown.
  • a workpiece and a workpiece model placed in a third posture are shown.
  • An example of detection data detected by the shape detection sensor is shown.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model is appropriately matched with shape data.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model inappropriately matches shape data.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model is appropriately matched with shape data.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model inappropriately matches shape data.
  • FIG. 3 is a block diagram showing other functions of the robot system. 12 is a flowchart showing an example of the operation flow of the robot system shown in FIG. 11.
  • FIG. 3 is a block diagram showing still other functions of the robot system.
  • 14 is a flowchart showing an example of the operation flow of the robot system shown in FIG. 13.
  • 17 is a flowchart showing an example of the flow of step S22 in FIG. 16.
  • a state in which the work model in the first posture OR is appropriately matched to the shape data is shown.
  • 17 is a flowchart showing an example of the flow of step S23 in FIG. 16.
  • FIG. 3 is a block diagram showing still other functions of the robot system.
  • 21 is a flowchart showing an example of the operation flow of the robot system shown in FIG. 20.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model inappropriately matches shape data.
  • FIG. 3 is a diagram for explaining matching between a workpiece model and shape data, and shows an example in which a workpiece model inappropriately matches shape data.
  • 21 is a flowchart showing an example of the flow of step S23 in FIG. 16 executed by the robot system shown in FIG. 20.
  • the robot system 10 includes a robot 12, a shape detection sensor 14, and a control device 16.
  • the robot 12 is a vertically articulated robot, and includes a robot base 18, a rotating trunk 20, a lower arm 22, an upper arm 24, a wrist 26, and an end effector 28.
  • the robot base 18 is fixed on the floor of the work cell.
  • the turning trunk 20 is provided on the robot base 18 so as to be able to turn around a vertical axis.
  • the lower arm portion 22 has its base end rotatably provided on the rotating trunk 20 around a horizontal axis
  • the upper arm portion 24 has its base end rotatably provided on the distal end portion of the lower arm portion 22.
  • the wrist part 26 includes a wrist base 26a provided at the distal end of the upper arm part 24 so as to be rotatable around two axes orthogonal to each other, and a wrist base 26a provided at the distal end of the upper arm part 24 so as to be rotatable around two axes perpendicular to each other. It has a wrist flange 26b provided on a wrist base 26a.
  • the end effector 28 is detachably attached to the wrist flange 26b.
  • the end effector 28 is, for example, a robot hand that can grip the workpiece 100, a welding torch that welds the workpiece 100, or a laser processing head that processes the workpiece 100 with a laser beam, and performs a predetermined operation (workpiece) on the workpiece 100. handling, welding, laser processing, etc.).
  • Each component of the robot 12 (robot base 18, rotating trunk 20, lower arm section 22, upper arm section 24, wrist section 26) is provided with a servo motor 30 (FIG. 2).
  • These servo motors 30 rotate each movable element of the robot 12 (swivel trunk 20, lower arm 22, upper arm 24, wrist base 26a, wrist flange 26b) in accordance with commands from the control device 16. As a result, the robot 12 can move the end effector 28 and place it in any position.
  • the shape detection sensor 14 detects the shape of the workpiece 100.
  • the shape detection sensor 14 is a three-dimensional visual sensor that includes an image sensor (CMOS, CCD, etc.) and an optical lens (collimating lens, focus lens, etc.) that guides a subject image to the image sensor. and is fixed to the end effector 28 (or wrist flange 26b).
  • the shape detection sensor 14 is configured to image a subject along the optical axis A2 and measure the distance d to the subject. Note that the shape detection sensor 14 may be fixed to the end effector 28 so that the optical axis A2 and the wrist axis A1 are parallel (or orthogonal) to each other. The shape detection sensor 14 supplies the detected detection data DD to the control device 16.
  • the robot 12 is set with a robot coordinate system C1 and a tool coordinate system C2.
  • the robot coordinate system C1 is a control coordinate system C for controlling the operation of each movable element of the robot 12.
  • the robot coordinate system C1 is arranged such that its origin is located at the center of the robot base 18 and its z-axis is parallel to (specifically, coincides with) the rotation axis of the rotation trunk 20. It is fixed to the robot base 18.
  • the tool coordinate system C2 is a control coordinate system C that defines the position and orientation of the end effector 28 in the robot coordinate system C1.
  • the tool coordinate system C2 has its origin (so-called TCP) located at the working position of the end effector 28 (e.g., workpiece gripping position, welding position, or laser beam exit port), and its z-axis is set for the end effector 28 so that it is parallel to (specifically, coincides with) the wrist axis A1.
  • the control device 16 When moving the end effector 28, the control device 16 sets the tool coordinate system C2 in the robot coordinate system C1, and moves the robot so that the end effector 28 is placed at the position and orientation represented by the set tool coordinate system C2. A command to each of the twelve servo motors 30 is generated. In this way, the control device 16 can position the end effector 28 at any position and orientation in the robot coordinate system C1.
  • a sensor coordinate system C3 is set for the shape detection sensor 14.
  • the sensor coordinate system C3 is a control coordinate system C that defines the position and orientation of the shape detection sensor 14 (that is, the position and direction of the optical axis A2) in the robot coordinate system C1.
  • the sensor coordinate system C3 is arranged such that its origin is located at the center of the image sensor of the shape detection sensor 14, and its z-axis is parallel to (specifically, coincides with) the optical axis A2. is set for the shape detection sensor 14.
  • the sensor coordinate system C3 defines the coordinates of each pixel of the detection data DD (or the image sensor) detected by the shape detection sensor 14.
  • the positional relationship between the sensor coordinate system C3 and the tool coordinate system C2 is known through calibration. Therefore, the coordinates of the sensor coordinate system C3 and the coordinates of the tool coordinate system C2 are determined by a known transformation matrix (for example, the same mutual conversion is possible via the following transformation matrix). Furthermore, since the positional relationship between the tool coordinate system C2 and the robot coordinate system C1 is known, the coordinates of the sensor coordinate system C3 and the coordinates of the robot coordinate system C1 can be mutually converted via the tool coordinate system C2. . That is, the position and orientation of the shape detection sensor 14 in the robot coordinate system C1 (specifically, the coordinates in the sensor coordinate system C3) are known.
  • the control device 16 controls the operation of the robot 12 to perform a predetermined work (work handling, welding, or laser processing) on the work 100.
  • the control device 16 is a computer having a processor 32, a memory 34, and an I/O interface 36.
  • the processor 32 has a CPU, a GPU, etc., is communicably connected to the memory 34 and the I/O interface 36 via a bus 38, and performs arithmetic processing to realize various functions described below while communicating with these components. I do.
  • the memory 34 has RAM, ROM, etc., and stores various data temporarily or permanently.
  • Memory 34 can be comprised of storage media such as volatile memory, non-volatile memory, magnetic storage media, or optical storage media.
  • the I/O interface 36 has, for example, an Ethernet (registered trademark) port, a USB port, an optical fiber connector, or an HDMI (registered trademark) terminal, and allows data to be exchanged with an external device under instructions from the processor 32. Communicate by wire or wirelessly.
  • Each servo motor 30 and shape detection sensor 14 of the robot 12 are communicably connected to an I/O interface 36.
  • control device 16 is provided with a display device 40 and an input device 42.
  • Display device 40 and input device 42 are communicatively connected to I/O interface 36 .
  • the display device 40 has a liquid crystal display, an organic EL display, or the like, and visibly displays various data under instructions from the processor 32.
  • the input device 42 includes a push button, switch, keyboard, mouse, touch panel, etc., and receives data input from an operator.
  • the display device 40 and the input device 42 may be integrated into the casing of the control device 16, or may be installed as one computer (such as a PC) separate from the casing of the control device 16. It may be attached externally to the housing.
  • the processor 32 generates position data of the workpieces 100 in the robot coordinate system C1 based on detection data DD of the shape detection sensor 14 that detects the shapes of the plurality of workpieces 100 stacked in bulk in the container B. Get PD.
  • An example of the workpiece 100 will be described below with reference to FIGS. 3 to 5.
  • the work 100 has a main body portion 102, a shaft portion 104, and a convex portion 106.
  • the main body portion 102 has a quadrangular prism-like outer shape.
  • the shaft portion 104 has a cylindrical shape and protrudes from one side of the main body portion 102.
  • the shaft portion 104 has a cylindrical side surface 108 and a ring-shaped end surface 110.
  • the convex portion 106 has a quadrangular column shape and protrudes from the top surface of the main body portion 102 .
  • main body portion 102 (specifically, edges and surfaces that define the main body portion 102, etc.), shaft portion 104 (specifically, side surfaces 108, end surfaces 110, these edges, etc.), and convex portion 106 (specifically, (eg, the edges and surfaces that define the protrusions 106) constitute the visual features 102, 104, 106, 108, 110 of the workpiece 100.
  • FIG. 3 shows the work 100 in the first posture OR 1
  • FIG. 4 shows the work 100 in the second posture OR 2
  • FIG. 5 shows the work 100 in the third posture OR 3 . It shows.
  • the processor 32 obtains a plurality of workpiece models 100Mn , each of which models the workpiece 100 in a plurality of postures ORn as shown in FIGS. 3 to 5.
  • the workpiece model 100Mn includes, for example, a CAD model 100Mcn of the workpiece 100, and a point group model 100Mpn that represents model components (edges, surfaces, etc.) of the CAD model 100Mcn as a point group (or normal line). .
  • the CAD model 100Mcn is a three-dimensional CAD model, and is created in advance by an operator using a CAD device (not shown).
  • the processor 32 generates a point cloud model 100Mp n by acquiring a CAD model 100Mc n from a CAD device and adding point clouds to model components of the CAD model 100Mc n according to a predetermined image generation algorithm. good.
  • the workpiece model 100Mn is not limited to the CAD model 100Mcn and the point cloud model 100Mpn , but may be any type of model representing the shape of the workpiece 100.
  • the processor 32 obtains a workpiece model 100M 1 in a first orientation OR 1 that models the workpiece 100 in a first orientation OR 1 shown in FIG. 3 .
  • a model corresponding to feature XXX for example, end face 110
  • feature model XXXM for example, end face model 110M
  • the work model 100M 1 in the first posture OR 1 includes a main body model 102M, a shaft model 104M (specifically, a side model 108M and an end model 110M), and a convex model 106M.
  • the processor 32 obtains a workpiece model 100M 2 in a second posture OR 2 , which is a model of the workpiece 100 in a second posture OR 2 shown in FIG. 4 .
  • the work model 100M2 in the second posture OR2 includes a main body model 102M, a shaft model 104M, and a convex model 106M.
  • the shaft part model 104M has the side model 108M, but does not have the end face model 110M (that is, it is not visible from the viewpoint of FIG. 4).
  • the processor 32 obtains a workpiece model 100M 3 in the third posture OR 3 , which is a model of the workpiece 100 in the third posture OR 3 shown in FIG.
  • the work model 100M 3 in the third posture OR 3 includes a main body model 102M and a shaft model 104M (specifically, a side model 108M and an end model 110M), but does not include the convex model 106M ( In other words, it is not visible from the perspective of Figure 5).
  • a workpiece coordinate system C4 is set for each workpiece model 100Mn .
  • This workpiece coordinate system C4 is a coordinate system for expressing the position and orientation of the workpiece model 100Mn in the control coordinate system C (specifically, the robot coordinate system C).
  • the workpiece coordinate system C4 has its origin located at one vertex O of the main body model 102M, its x-axis is parallel to the width direction of the main body model 102M, and its y-axis is The workpiece model 100M is parallel to the length direction of the main body model 102M (or the axis of the shaft model 104M), and its z-axis is parallel to the height direction of the main body model 102M. It is set.
  • the work model 100Mn may have only model data on the front side that is visible from the corresponding viewpoint, and may not have model data on the back side that is invisible from the corresponding viewpoint.
  • the model data on the front side of the paper in FIG. 4 (model data of the main body model 102M, side model 108M, and convex part model 106M ), while the model data on the back side of the page in FIG. 4 (model data of the end surface model 110M), which is invisible from the viewpoint in FIG. 4, may not be included.
  • the processor 32 when generating the work model 100M2 of FIG. 4 as the point cloud model 100Mp2 , the processor 32 generates point cloud model data of the model component on the front side of the page that is visible in FIG. , it is not necessary to generate model data of point clouds of model components on the back side of the page that are not visible (that is, edges and surfaces on the back side when viewed from the viewpoint of FIG. 4). The same applies to the workpiece model 100M 1 in FIG. 3 and the workpiece model 100M 3 in FIG. 5 . With this configuration, the amount of data of the work model 100M n to be acquired can be reduced.
  • the processor 32 may receive an input from the operator through the input device 42 to set the workpiece coordinate system C4 on the workpiece model 100Mn .
  • the processor 32 stores the plurality of acquired work models 100M n in the memory 34 together with the setting information of the work coordinate system C4.
  • the processor 32 matches each of the plurality of acquired workpiece models 100Mn with the detection data DD detected by the shape detection sensor 14 imaging the workpiece 100 in the container B, thereby determining the workpiece 100 in the robot coordinate system C1. Obtain the position data PD of.
  • FIG. 6 schematically shows an example of the imaged detection data DD.
  • FIG. 6 shows shape data SD 1 of the work 100 in the first orientation OR 1 , shape data SD 2 of the work 100 in the second orientation OR 2 , and shape data SD 2 of the work 100 in the second orientation OR 2.
  • 3 shows an example in which the shape data SD3 of the work 100 shown in FIG.
  • the shape detection sensor 14 actually images the workpieces 100 stacked in bulk in the container B, three or more shape data SD i may be captured in the detection data DD.
  • Each shape data SD i is based on the visual characteristics of the workpiece 100 (that is, the edge or surface of the main body 102, the edge or surface of the shaft portion 104 (side surface 108, end surface 110), and the edge or surface of the convex portion 106). ), and each point constituting the point group has information on the distance d described above. Therefore, each point constituting the point group of the shape data SD i can be expressed as three-dimensional coordinates (X S , Y S , Z S ) of the sensor coordinate system C3.
  • the processor 32 matches the plurality of work models 100M n to each shape data SD i reflected in the detection data DD in the sensor coordinate system C3. For example, as shown in FIG. 7, the processor 32 converts the workpiece model 100M 2 (FIG. 7(a)) in the second posture OR 2 into shape data SD 2 (FIG. 7(b)) reflected in the detection data DD. Match.
  • all the feature models (main body model 102M, side model 108M, convex part model 106M) of the workpiece model 100M2 are the features of the shape data SD2 (the main body of the workpiece 100). shape data of the portion 102, side surface 108, and convex portion 106). That is, in this case, the workpiece model 100M2 is appropriately matched with the shape data SD i , and the workpiece coordinate system C4 set for the workpiece model 100M2 at this time is based on the position and position of the workpiece 100 detected as the shape data SD2. It will show your posture accurately.
  • the processor 32 similarly converts the workpiece model 100M 1 (FIG. 8(a)) in the first posture OR 1 into shape data SD 2 (FIG. 8(b)) reflected in the detection data DD. )).
  • the main body model 102M and the convex part model 106M of the workpiece model 100M1 match the characteristics of the main body part 102 and the convex part 106 shown in the shape data SD2 .
  • the shaft portion model 104M (specifically, the side surface model 108M and the end surface model 110M) of the workpiece model 100M1 does not match the characteristics of the shaft portion 104 shown in the shape data SD2 . That is, in this case, the workpiece model 100M1 is inappropriately matched to the shape data SD2 , and the workpiece coordinate system C4 set for the workpiece model 100M1 at this time is the workpiece 100 detected as the shape data SD2 . It does not accurately indicate the position and orientation of the object.
  • Such inappropriate matching is due to the fact that the main body model 102M and the convex part model 106M of the workpiece model 100M1 are similar to the features of the main body part 102 and the convex part 106 shown in the shape data SD2 . , can happen.
  • the end face model 110M of the workpiece model 100M1 does not exist in the shape data SD2 , and is therefore not similar to any feature appearing in the shape data SD2 .
  • the end face model 110M which has a dissimilar relationship with the features of the shape data SD2 , does not match any of the features of the shape data SD2 in inappropriate matching as shown in FIG. 8(c).
  • the processor 32 matches each of the plurality of work models 100M n to the shape data SD 3 reflected in the detection data DD in FIG. 6 .
  • the processor 32 converts the workpiece model 100M 3 (FIG. 9(a)) in the third posture OR 3 into shape data SD 3 (FIG. 9(b)) reflected in the detection data DD. Match.
  • the workpiece model 100M 3 and the shape data SD 3 are appropriately matched (FIG. 9(c)).
  • the processor 32 similarly converts the workpiece model 100M 1 (FIG. 10(a)) of the first posture OR 1 into shape data SD 3 (FIG. 10(b)) reflected in the detection data DD. )).
  • the convex part model 106M of the workpiece model 100M1 does not match any feature of the shape data SD3 , and therefore the workpiece model 100M1 does not match the shape data SD3 . This results in inappropriate matching.
  • Such inappropriate matching is due to the fact that the body part model 102M and shaft part model 104M of the workpiece model 100M1 are similar to the features of the body part 102 and shaft part 104 shown in the shape data SD3 . , can happen.
  • the convex part model 106M of the workpiece model 100M1 does not exist in the shape data SD3 , and is therefore not similar to any feature appearing in the shape data SD3 .
  • the feature model included in the workpiece model 100M n is Among them, a feature model (for example, the end face model 110M in FIG. 8(c) or the feature model in FIG . 10(c) By paying attention to the convex model 106M), it can be determined whether or not the matching is inappropriate.
  • the processor 32 determines that the workpiece model 100M 1 in the first orientation OR 1 shown in FIG.
  • dissimilarity information NI 1_2 for identifying the end face model 110M is acquired.
  • the operator visually inspects the workpiece model 100M 1 (for example, CAD model 100Mc 1 ) displayed on the display device 40 to verify its characteristics, and operates the input device 42 to identify the end face model 110M.
  • the dissimilar information NI 1_2 may be manually input into the processor 32.
  • the processor 32 identifies the end face model 110M by attempting an operation of matching the workpiece model 100M1 to detection data DD obtained by imaging the workpiece 100 by the shape detection sensor 14 in real space or virtual space.
  • the dissimilar information NI 1_2 may be automatically acquired. Note that details of the function of acquiring dissimilar information NI 1_2 by attempting matching will be described later.
  • Dissimilarity information NI 1_3 for identifying 106M may be obtained.
  • the processor 32 uses the feature model 110M that has a dissimilar relationship with the feature of the workpiece 100 in the other posture OR 2 or OR 3 in the workpiece model 100M 1 in one posture OR 1. Or obtain dissimilar information NI 1_2 or NI 1_3 for identifying 106M. Therefore, the processor 32 functions as an information acquisition unit 46 (FIG. 2) that acquires the dissimilar information NI 1_2 and NI 1_3 .
  • the dissimilar information NI may be an identification code (character string, symbol, etc.) that identifies the feature model (end face model 110M, convex part model 106M), or a flag.
  • the processor 32 attaches the acquired dissimilarity information NI to the model data of the work model 100M n or associates it with the model data of the work model 100M n and stores it in the memory 34 .
  • the processor 32 functions as the model acquisition unit 44 and the information acquisition unit 46 to acquire the dissimilarity information NI of the work model 100M n . Therefore, the model acquisition unit 44 and the information acquisition unit 46 constitute a device 80 (FIG. 2) for acquiring dissimilar information NI.
  • the model acquisition unit 44 acquires a plurality of workpiece models 100M n each modeling a workpiece 100 with a plurality of postures OR n
  • the information acquisition unit 46 acquires a workpiece model 100M with one posture OR 1 . 1
  • dissimilarity information NI 1_2 or NI 1_3 for identifying the feature model 110M or 106M that is dissimilar to the feature of the work 100 in the other posture OR 2 or OR 3 is acquired.
  • the processor 32 can identify the feature model 110M or 106M of the work model 100Mn that is of interest in order to detect inappropriate matching as described above. As a result, the inappropriate matching can be detected with high precision, so that erroneous detection of the position data PD of the workpiece 100 can be reduced.
  • the robot system 10 shown in FIG. 11 acquires the flow shown in FIG. 12.
  • the flow shown in FIG. 12 is a flow for acquiring the above-mentioned dissimilar information NI.
  • the flow in FIG. 12 is started when the processor 32 receives an operation start command from an operator, a higher-level controller, or a computer program PG.
  • step S2 the processor 32 extracts a plurality of feature models included in each work model 100M n acquired in step S1 , and assigns an identification code ID to each extracted feature model.
  • the processor 32 extracts a main body model 102M, a side model 108M, an end face model 110M, and a convex part model 106M as feature models from the workpiece model 100M1 in the first posture OR1 shown in FIG.
  • the processor 32 then assigns a unique identification code ID to each of the extracted main body model 102M, side model 108M, end model 110M, and convex model 106M.
  • the identification code ID is a character string code (for example, "Feature group A”, “Feature group B”, “Feature group C”, etc.).
  • This identification code ID enables the processor 32 to individually identify the feature models 102M, 108M, 110M, and 106M included in the work model 100M1 .
  • the processor 32 functions as the feature extraction unit 48 (FIG. 11) that extracts a feature model from each work model 100Mn and assigns an identification code ID to the feature model.
  • the processor 32 may extract a plurality of model components included in the work model 100Mn as one feature model. For example, the processor 32 extracts the side model 108M and end face model 110M of the work model 100M in the third posture OR 3 shown in FIG. (a character string code such as "Feature group C") may be added.
  • a character string code such as "Feature group C”
  • the main body model 102M and the convex part model 106M which are composed of model components of a plurality of surfaces and edges.
  • main body model 102M, the side model 108M, the end face model 110M, and the convex part model 106M are not limited to being extracted as each feature model, but for example, the combination of the main body part model 102M and the convex part model 106M is extracted as one feature model. Alternatively, a plurality of faces or edges defining the main body model 102M may be extracted as one feature model. Whether model components included in the work model 100Mn are extracted as feature models may be arbitrarily determined by the operator.
  • step S3 the processor 32 acquires shape data SD i of the work 100.
  • the processor 32 acquires detection data DD (FIG. 6) obtained by actually imaging the workpieces 100 stacked in bulk in the container B by the actual shape detection sensor 14 arranged in the real space.
  • the processor 32 may detect that the virtual shape detection sensor 14 placed in the virtual space detects the workpieces 100 stacked in bulk in the container B (for example, the workpiece model 100M placed in the model of the container B). Detection data DD obtained by executing a simulation SL of simulated imaging is acquired.
  • the processor 32 sets the number "n" specifying the posture OR n of the workpiece model 100M n acquired in step S1 to "1".
  • step S5 the processor 32 matches the shape data SD i detected by the shape detection sensor 14 with the work model 100M n of the n-th posture OR n .
  • the processor 32 generates the workpiece model 100M 1 of the first posture OR 1 acquired in step S1 according to a predetermined matching algorithm (FIG. ) is matched with one shape data SD i (for example, shape data SD 1 , SD 2 or SD 3 ) appearing in the detection data DD (FIG. 6) acquired in step S3.
  • the processor 32 functions as the model matching execution unit 50 (FIG. 11) that matches the work model 100M n to the shape data SD i of the work 100 detected by the shape detection sensor 14 .
  • step S6 when the processor 32 matches the work model 100M n to the shape data SD i in the most recent step S5, the processor 32 determines whether the feature model included in the work model 100M n matches the feature reflected in the shape data SD i. Find the frequency ⁇ . For example, assume that the processor 32 matches the workpiece model 100M 1 of the first orientation OR 1 to the shape data SD 1 reflected in the detection data DD shown in FIG. 6 in the most recent step S5.
  • all the feature models such as the main body model 102M , shaft model 104M (side surface model 108M and end face model 110M), and convex part model 106M included in the workpiece model 100M1 have the features reflected in the shape data SD1 ( In other words, it matches the features of the main body portion 102, shaft portion 104, and convex portion 106 of the workpiece 100.
  • the processor 32 determines the degree of coincidence ⁇ between the feature point Fm forming the feature model of the work model 100M1 to which the identification code ID has been assigned and the feature point Fs forming the feature reflected in the shape data SD i .
  • This matching degree ⁇ includes, for example, an error in the distance between the feature point Fm and the feature point Fs corresponding to the feature point Fm.
  • the higher the degree of matching between the feature point Fm and the feature point Fs the smaller the value of the matching degree ⁇ becomes.
  • the matching degree ⁇ includes a degree of similarity representing the similarity between the feature point Fm and the feature point Fs corresponding to the feature point Fm.
  • the processor 32 compares the obtained degree of coincidence ⁇ with a threshold value ⁇ th1 predetermined for the degree of coincidence ⁇ , thereby determining the characteristic models of each of the workpiece models 100M 1 (main body model 102M, side model 108M, It can be determined whether the end face model 110M and the convex part model 106M) match the features (the main body part 102, the side surface 108, the end face 110, and the convex part 106) shown in the shape data SD1 .
  • the frequency ⁇ indicates the number of times that the feature model of the workpiece model 100M n matches the feature reflected in the shape data SD i when the workpiece model 100M n is matched with the shape data SD i . .
  • the processor 32 stores the frequency ⁇ counted for each feature model of the work model 100M n in step S6 in the memory 34 in association with the identification code ID assigned to the feature model.
  • the frequency ⁇ is not limited to the number of times of matching described above, but may be calculated by adding a weighting operation according to the matched feature model or the matching degree ⁇ to the number of times, or may be calculated by any method. Good too.
  • the processor 32 matches the work model 100M 1 of the first posture OR 1 with the shape data SD 2 shown in FIG. 7 in the most recent step S5.
  • the feature models such as the main body part model 102M and the convex part model 106M included in the workpiece model 100M1 are the main body part 102 and the convex part 106 of the workpiece 100 reflected in the shape data SD2 .
  • the shaft portion model 104M (that is, the side surface model 108M and the end surface model 110M) of the workpiece model 100M1 does not match the features of the workpiece 100 reflected in the shape data SD2. Therefore, in this case, the processor 32 does not increment the frequency ⁇ for the side model 108M and end model 110M of the workpiece model 100M1 .
  • the processor 32 determines the frequency with which the feature model included in the work model 100M n matches the feature reflected in the shape data SD i. We are looking for ⁇ . Therefore, the processor 32 functions as the frequency calculation unit 52 (FIG. 11) that calculates the frequency ⁇ .
  • step S8 the process proceeds to step S8
  • step S5 the processor 32 determines NO
  • step S5 the processor 32 repeatedly executes the loop of steps S5 to S7 until it determines YES in step S7, and each time the workpiece model 100M n is matched with the shape data SD i reflected in the detection data DD, the workpiece model 100M
  • the frequency ⁇ is determined for each of the n feature models, and the frequency ⁇ stored in the memory 34 is updated in association with the identification code ID given to the feature model.
  • the processor 32 determines whether the one feature model is different from the feature of the shape data SD i . It is determined that there is a similar relationship. In this manner, in the present embodiment, the processor 32 uses the similarity determination unit 54 (FIG. 11) that determines whether the feature model has a dissimilar relationship with the feature reflected in the shape data SD i based on the frequency ⁇ . functions as
  • step S9 If the processor 32 determines that at least one feature model included in the work model 100M 1 has a dissimilar relationship (that is, YES), the processor 32 proceeds to step S9; If it is determined that the models do not have a dissimilar relationship (that is, NO), the process advances to step S10.
  • step S9 the processor 32 functions as the information acquisition unit 46, and among the plurality of feature models included in the work model 100Mn , the processor 32 selects a dissimilar feature model determined to have a dissimilar relationship in the immediately preceding step S8.
  • Obtain information NI. For example, n 1 is set at the start of step S9, and as a result of step S8, the end surface model 110M (FIG. 8( c )) included in the workpiece model 100M of the first posture OR 1 and the convex part model 106M (FIG. 10(c)) is determined to have a dissimilar relationship with the characteristics of the work 100 in the second posture OR 2 and the characteristics of the work 100 in the third posture OR 3 , respectively. .
  • the processor 32 selects the end face model from among the plurality of feature models (main body model 102M, side model 108M, end face model 110M, and convex part model 106M) included in the work model 100M 1 in the first posture OR 1. Dissimilar information NI 1_2 for identifying the model 110M and dissimilar information NI 1_3 for identifying the convex part model 106M are obtained.
  • the processor 32 obtains the dissimilar information NI 1_2 of the end model 110M in association with the identification code ID given to the end model 110M, and also acquires the dissimilar information NI 1_3 of the convex model 106M from the convex model 110M. It is acquired in association with the identification code ID given to 106M.
  • the processor 32 stores the acquired dissimilar information NI 1_2 and NI 1_3 in the memory 34 in association with the respective identification codes ID.
  • the identification code ID of the feature model of the work model 100M 1 and the dissimilar information NI 1_2 and NI 1_3 of the feature model are stored in the memory 34 in association with each other.
  • the processor 32 functions as the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, and the similarity determination unit 54,
  • the dissimilarity information NI of the work model 100M n is acquired. Therefore, the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, and the similarity determination unit 54 are connected to the device 82 (FIG. 11) for acquiring dissimilar information NI. Configure.
  • the feature extraction unit 48 extracts a plurality of feature models included in each work model 100M n , and assigns an identification code ID to each extracted feature model. (Step S2). Then, the information acquisition unit 46 acquires the dissimilar information NI 1_2 or NI 1_3 in association with the identification code ID given to the feature model (for example, the end face model 110M or the convex part model 106M) (step S9).
  • the processor 32 determines which feature model has a dissimilar relationship among the plurality of feature models included in the work model 100Mn using the mutually associated identification code ID and dissimilar information NI. can be quickly recognized from Further, dissimilar information NI can be accumulated for each feature model classified by the identification code ID.
  • the model matching execution unit 50 matches the work model 100M n with the shape data SD i of the work 100 detected by the shape detection sensor 14 (step S5). Further, the frequency calculation unit 52 uses the model matching execution unit 50 to convert the shape data SD i (for example, shape data SD 1 , SD 2 , SD 3 in FIG. 6) of the plurality of postures OR i to the workpiece model 100M n (for example, , workpiece model 100M 1 ), the frequency ⁇ at which the feature model included in the workpiece model 100M n matches the feature reflected in each of the shape data SD i is determined (step S6).
  • shape data SD i for example, shape data SD 1 , SD 2 , SD 3 in FIG. 6
  • the workpiece model 100M n for example, workpiece model 100M 1
  • the similarity determination unit 54 determines whether or not each feature model has a dissimilar relationship based on the frequency ⁇ determined by the frequency calculation unit 52 for the plurality of feature models included in the work model 100M n . (Step S8). Then, the information acquisition unit 46 selects a feature model that is determined to have a dissimilar relationship by the similarity determination unit 54 (for example, the end face model 110M or the convex part model 106M) among the plurality of feature models included in the workpiece model 100Mn. ), the dissimilarity information is acquired (step S9).
  • the similarity determination unit 54 determines that the feature model of the workpiece model 100M n is the workpiece 100 (specifically , shape data SD i ). According to this configuration, the determination of dissimilar relationships can be performed with high precision using a relatively simple algorithm.
  • the model matching execution unit 50 executes matching of the workpiece model 100Mn using shape data SD i obtained by actually imaging the workpiece 100 by the shape detection sensor 14 in real space (step S2 ). According to this configuration, matching is attempted using the shape data SD i detected by the shape detection sensor 14 of the actual machine, and as a result, dissimilar information NI can be acquired with high accuracy.
  • the model matching execution unit 50 executes matching using the shape data SD i acquired by the simulation SL in which the shape detection sensor 14 captures a simulated image of the work 100 in the virtual space. (Step S2). According to this configuration, it is possible to easily try various matchings, thereby simplifying the task of acquiring dissimilar information NI.
  • step S6 if the processor 32 detects that all the feature models of the workpiece model 100M n matched in the immediately preceding step S5 match the features of the shape data SD i , the processor 32 It is not necessary to increment the frequency ⁇ of each feature model.
  • the processor 32 matches the work model 100M 1 of the first posture OR 1 with the shape data SD 1 reflected in the detection data DD shown in FIG. It can be detected that all the feature models of 100M1 match the features of the shape data SD1 . In this case, the processor 32 does not increment the frequency ⁇ for each of the main body model 102M, side model 108M, end face model 110M, and convex part model 106M of the workpiece model 100M1 .
  • the processor 32 matches the workpiece model 100M n with the shape data SD i of the same orientation OR n (that is, appropriate matching), the processor 32 generates features that match the features of the shape data SD i.
  • the model is excluded from the frequency ⁇ calculation target. Thereby, dissimilar information NI for detecting inappropriate matching can be acquired more efficiently.
  • the robot system 10 shown in FIG. 13 executes the flow shown in FIG. 14.
  • the flow shown in FIG. 14 is a flow for acquiring dissimilar information NI similar to the flow in FIG. 12, but differs from the flow in FIG. 12 in step S12.
  • step S12 the processor 32 matches at least one feature model included in the work model 100M n when matching the work model 100M n in the most recent step S5; It is determined whether or not there is a mismatch with the feature reflected in the shape data SD i .
  • the processor 32 selects feature points constituting each feature model (main body model 102M, side model 108M, end face model 110M, and convex part model 106M) of the work model 100M1 to which the identification code ID is assigned.
  • the degree of coincidence ⁇ between Fm and the feature points Fs constituting the features reflected in the shape data SD 2 is determined.
  • the processor 32 compares the matching degree ⁇ obtained for each feature model to which the identification code ID has been assigned with the threshold value ⁇ th1 , and if the matching degree ⁇ does not exceed the threshold value ⁇ th1 , the processor 32 selects the work model 100M 1 It is determined that there is a mismatch between the feature model of 2 and the feature of shape data SD 2 (that is, YES). As a result of this determination, the processor 32 determines that the side model 108M and the end face model 110M (that is, the shaft part model 104M) of the workpiece model 100M1 are different from the features of the shape data SD2 , as shown in FIG. 8(c). It is determined that they are consistent.
  • step S6 the feature models included in the workpiece model 100M1 (the main body model 102M and the convex part model 106M in FIG. 8(c)) are determined to be the features reflected in the shape data SD i . (Characteristics of the main body portion 102 and convex portion 106) The frequency ⁇ matching the above is determined.
  • the processor 32 determines NO, the process proceeds to step S7.
  • the processor 32 executes matching using the workpiece model 100M n in step S5
  • the processor 32 combines the feature model included in the workpiece model 100M n with the feature reflected in the shape data SD i . It functions as a mismatch determining unit 56 (FIG. 13) that determines whether there is a mismatch between the two.
  • the processor 32 includes the model acquisition section 44, the information acquisition section 46, the feature extraction section 48, the model matching execution section 50, the frequency calculation section 52, the similarity determination section 54, and the inconsistency determination section. It functions as a unit 56 to obtain dissimilarity information NI of the work model 100M n . Therefore, the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, the similarity determination unit 54, and the inconsistency determination unit 56 Configuring device 84 (FIG. 11).
  • the inconsistency determination unit 56 determines whether the work model 100M n between at least one feature model (for example, side model 108M and end face model 110M ) included in It is determined whether a mismatch has occurred (step S12).
  • the frequency calculation unit S6 calculates a feature model other than the at least one feature model (for example, The frequency ⁇ at which the main body portion 102 and the convex portion 106) match the features of the shape data SD i (for example, shape data SD 2 ) is determined (step S6).
  • the frequency ⁇ can be determined only for the feature model that matches the feature of the shape data SD i .
  • the feature models determined to be inconsistent in step S12 are likely to have the above-mentioned dissimilar relationship. Therefore, by collecting the frequency ⁇ obtained when it is determined that a mismatch has occurred in step S12, dissimilar information NI can be efficiently acquired in step S9.
  • the robot system 10 shown in FIG. 15 executes the flow shown in FIG. 16.
  • the flow of FIG. 16 is a flow for causing the robot 12 to perform a predetermined work on the workpieces 100 stacked in bulk in container B, and is performed after the flow of FIG. 12 or 14 is executed (i.e., non- After obtaining the similar information NI), it is executed.
  • the processor 32 starts the flow in FIG. 16 when receiving a work start command from an operator, a host controller, or the computer program PG.
  • step S21 the processor 32 acquires the detection data DD detected by the shape detection sensor 14. Specifically, the processor 32 operates the robot 12 to position the shape detection sensor 14 at an imaging position where the workpieces 100 stacked in bulk in the container B are within the detection range of the shape detection sensor 14. . Then, the processor 32 operates the shape detection sensor 14 to capture an image of the workpiece 100 in the container B, thereby detecting detection data DD as illustrated in FIG. 6 . The processor 32 acquires the detected detection data DD from the shape detection sensor 14.
  • step S22 the processor 32 acquires position data PD of the work 100 in the control coordinate system C by matching the work model 100M n to the shape data SD i reflected in the detection data DD detected by the shape detection sensor 14. That is, in this embodiment, the processor 32 functions as a position data acquisition unit 58 (FIG. 15) that acquires position data PD of the work 100.
  • This step S22 will be explained with reference to FIG. 17.
  • the processor 32 functions as the position data acquisition unit 58 and executes the flow of step S22 shown in FIG.
  • step S31 the processor 32 executes preprocessing PP on the detection data DD acquired in the most recent step S21. For example, as preprocessing PP, the processor 32 selects a point group to be invalidated from among the point group included in the detection data DD (for example, a point group existing outside the container B or a point of the shape data SDi of the work 100). It is also possible to perform a process of deleting from the detection data DD a group of points that are significantly deviated from the group by exceeding a predetermined distance.
  • preprocessing PP the processor 32 selects a point group to be invalidated from among the point group included in the detection data DD (for example, a point group existing outside the container B or a point of the shape data SDi of the work 100). It is also possible to perform a process of deleting from the detection data DD a group of points that are significantly deviated from the group by exceeding a predetermined distance.
  • step S32 the processor 32 performs a coarse search RS according to a predetermined matching algorithm. Specifically, the processor 32 sequentially arranges the plurality of workpiece models 100M n acquired in step S1 above in the virtual space defined by the sensor coordinate system C3 of the detection data DD as the rough search RS, and The model 100M n is matched with each shape data SD i included in the detection data DD. That is, in this embodiment, the processor 32 matches each of the plurality of work models 100M n with one shape data SD i included in the detection data DD.
  • the processor 32 repeatedly displaces the position of the workpiece model 100Mn placed in the sensor coordinate system C3 by a predetermined displacement amount. Each time the processor 32 displaces the position of the work model 100M n , the processor 32 determines the degree of coincidence ⁇ between the feature point Fm of the work model 100M n and the feature point Fs of the shape data SDi.
  • the processor 32 compares the obtained degree of coincidence ⁇ with the threshold value ⁇ th2 , and when the degree of coincidence ⁇ exceeds the threshold value ⁇ th2 (that is, ⁇ > ⁇ th2 or ⁇ th2 ), the processor 32 It is determined that the workpiece model 100M n and the shape data SD i are approximately matched in the coordinate system C3. Note that this threshold value ⁇ th2 may be the same value as the above-mentioned threshold value ⁇ th1 , or may be a different value.
  • FIG. 18 shows a state in which the workpiece model 100M 1 in the first orientation OR 1 is matched with the shape data SD 1 .
  • the processor 32 calculates coordinates Q1 S (X1 S , Y1 S , Z1 S , W1 S , P1 S , R1 S ) are acquired as sensor coordinate system position data PD 0_1 .
  • coordinates (X1 S , Y1 S , Z1 S ) indicate the origin position of workpiece coordinate system C4 in sensor coordinate system C3, and coordinate (W1 S , P1 S , R1 S ) indicate the posture (so-called yaw, pitch, roll) of the workpiece coordinate system C4 in the sensor coordinate system C3.
  • the processor 32 converts the sensor coordinate system position data PD 0_1 into coordinates Q1 R (X1 R , Y1 R , Z1 R , W1 R , P1 R , R1 R ) of the robot coordinate system C1, and converts the coordinates Q1 R is acquired as initial position data PD 1_1 .
  • This initial position data PD 1_1 represents approximate values of the position and orientation of the workpiece 100 detected by the shape detection sensor 14 as the shape data SD 1 in the robot coordinate system C1.
  • the processor 32 sequentially acquires sensor coordinate system position data PD 0_i and initial position data PD 1_i of other shape data SD i reflected in the detection data DD. In this way, the processor 32 acquires the position data PD 0_i and PD 1_i of the work 100 by matching the work model 100M n to the shape data SD i in the rough search RS.
  • step S33 the processor 32 executes a dense search PS.
  • the processor 32 uses a predetermined matching algorithm (for example, a mathematical optimization method such as ICP: Iterative Closest Point (algorithm), a position where the workpiece model 100M n highly matches the shape data SD i is searched for in the sensor coordinate system C3.
  • a predetermined matching algorithm for example, a mathematical optimization method such as ICP: Iterative Closest Point (algorithm)
  • ICP Iterative Closest Point
  • the processor 32 uses the point cloud of the point cloud model 100Mpn placed as the workpiece model 100Mn in the initial position data PD1_i of the sensor coordinate system C3, and the three-dimensional point cloud of the shape data SDi included in the detection data DD. Find the matching degree ⁇ .
  • this matching degree ⁇ is the error in the distance between the point cloud of the point cloud model 100Mp n and the three-dimensional point group of the shape data SD i , or the difference between the point cloud of the point cloud model 100Mp n and the three-dimensional point cloud of the shape data SD i .
  • the processor 32 compares the obtained matching degree ⁇ with a predetermined threshold value ⁇ th for the matching degree ⁇ , and when the matching degree ⁇ exceeds the threshold value ⁇ th (for example, ⁇ > ⁇ th , or ⁇ th ), it is determined that the workpiece model 100M n (for example, the point group model 100Mp n ) and the shape data SD i are highly matched in the sensor coordinate system C3.
  • the processor 32 displaces the position of the workpiece model 100Mn placed in the sensor coordinate system C3 by a predetermined displacement amount, thereby displacing the position of the workpiece model 100Mn .
  • the degree of coincidence ⁇ is calculated for each time, and compared with the threshold value ⁇ th .
  • the processor 32 determines the coordinates in the sensor coordinate system C3 of the workpiece coordinate system C4 set to the workpiece model 100Mn that highly matches the shape data SD i as a dense search PS.
  • Q2 S (X2 S , Y2 S , Z2 S , W2 S , P2 S , R2 S ) is acquired as sensor coordinate system position data PD 2_i .
  • the processor 32 converts the sensor coordinate system position data PD 2_i into coordinates Q2 R (X2 R , Y2 R , Z2 R , W2 R , P2 R , R2 R ) of the robot coordinate system C1, and converts the coordinates Q2 R is acquired as position data PD 3_i of the workpiece 100 detected as shape data SD i .
  • This position data PD 3_i represents the highly accurate position and orientation of the workpiece 100 in the robot coordinate system C1.
  • the processor 32 acquires the position data PD 2_i and PD 3_i of the work 100 by matching the work model 100M n with the shape data SD i in the dense search PS.
  • the processor 32 obtains position data PD 3_i of the plurality of works 100 reflected in the detection data DD.
  • the processor 32 stores the acquired position data PD 3_i in the memory 34 as detection result data DT.
  • An example of the data structure of the detection result data DT is schematically shown in Table 1 below.
  • the detection result data DT shown in Table 1 includes the position data PD 3_i of the workpiece 100 (specifically, the coordinates Q2 R (X2 R , Y2 R , Z2 R , W2 R , P2 R , R2 R ))
  • Detection result parameters PM such as degree ⁇ i , plane ratio ⁇ i , and exposure rate ⁇ i are stored.
  • This detection result parameter PM is a parameter representing the result of matching between the shape data SD i of the work 100 and the work model 100M n , which was performed when acquiring the position data PD 3_i .
  • the matching degree ⁇ i is the matching degree when it is determined in the dense search PS in step S33 that the workpiece model 100M n is highly matched with the shape data SD i .
  • the plane ratio ⁇ i is the largest plane model included in the workpiece model 100Mn (specifically, the plane point group model 100Mp). n ) is the proportion of the work model 100M n (specifically, the entire point group model 100Mp n ).
  • the plane ratio ⁇ i is such that the point group representing the largest plane included in the shape data SD i matched with the work model 100M n in the dense search PS is the entire shape data SD i (specifically, may be a percentage of the entire point group).
  • the exposure rate ⁇ i is, for example, the shape data for the entire workpiece model 100Mn (specifically, all the point groups forming the point cloud model 100Mpn ) matched with the shape data SD i by the dense search PS.
  • the percentage of the area of the work model 100Mp n that matches SD i is shown.
  • the processor 32 acquires the detection result parameters PM (degree of coincidence ⁇ i , plane ratio ⁇ i , and exposure rate ⁇ i ) together with the position data PD 3_i, associates them with the position data PD 3_i , and stores them in the memory 34 as detection result data DT. to be memorized.
  • the detection result parameter PM is not limited to the degree of coincidence ⁇ i , the plane ratio ⁇ i , and the exposure rate ⁇ i , and may include any other parameters.
  • step S34 the processor 32 performs post-processing OP on the detection result data DT.
  • the processor 32 may execute, as post-processing OP, a process of deleting the position data PD 3_i whose detection result parameter PM does not meet a predetermined standard from the detection result data DT.
  • the processor 32 determines that the detection result parameter PM does not meet the standard when the degree of coincidence ⁇ i , the plane ratio ⁇ i , or the exposure rate ⁇ i does not exceed a predetermined reference value,
  • the position data PD3_i associated with the detection result parameter PM may be deleted from the detection result data DT.
  • the processor 32 functions as the position data acquisition unit 58, executes step S22 shown in FIG. 17, and acquires the position data PD 0_i , PD 1_i , PD 2_i , PD 3_i of the workpiece 100.
  • step S23 processor 32 verifies erroneous detection of the position data PD acquired in step S22.
  • processor 32 inappropriately matching the workpiece model 100M n to the shape data SD i in steps S32 and S33 described above, as illustrated in FIG. 8(c) or FIG. 10(c)
  • the position data PD3_i will be acquired.
  • the position data PD3_i obtained as a result of such inappropriate matching becomes erroneously detected data that does not accurately represent the position and orientation of the workpiece 100.
  • the processor 32 verifies erroneous detection of the position data PD3_i stored in the detection result data DT in step S23.
  • This step S23 will be explained with reference to FIG. 19.
  • the processor 32 sets the number "j" specifying the position data PD3_i stored in the detection result data DT to "1".
  • step S42 the processor 32 determines whether dissimilarity information NI has been acquired for the work model 100M n used for matching to acquire the j-th position data PD 3_i .
  • the second (that is, number j 2) position data PD stored in the detection result data DT of Table 1.
  • 3_2 is obtained as a result of inappropriately matching the workpiece model 100M 1 of the first orientation OR 1 to the shape data SD 2 , as shown in FIG. 8(c).
  • the processor 32 identifies the workpiece model 100M1 used for matching when acquiring the second position data PD3_2 , and processes the end face model 110M and the convex part in step S9 described above for the workpiece model 100M1. It can be recognized that dissimilar information NI 1_2 and NI 1_3 that identify the model 106M have been acquired. Therefore, in this case, the processor 32 determines YES in step S42. If the processor 32 determines YES, the process proceeds to step S43, whereas if the processor 32 determines NO, the process proceeds to step S45.
  • step S43 the processor 32 determines whether the feature model identified by the dissimilar information NI is the j-th feature model included in the work model 100Mn used to obtain the j-th position data PD3_i . It is determined whether or not the position data PD 3_i matches the features reflected in the acquired shape data SD i .
  • the processor 32 generates dissimilar information for the workpiece 100 in the second orientation OR 2 in the workpiece model 100M 1 in the first orientation OR 1 used to obtain the second position data PD 3_2 . It is determined whether the end face model 110M identified by NI 1_2 matches the features reflected in the shape data SD 2 .
  • the processor 32 analyzes the matching data obtained when the matching degree ⁇ 2 stored in association with the second position data PD 3_2 in the detection result data DT is obtained, and performs matching in step S33 (fine search PS) described above.
  • the matching degree ⁇ 2 ′ between the end face model 110M and the features of the shape data SD 2 is obtained.
  • the processor 32 uses the dissimilar information NI 1_2 to It is determined that the identified end face model 110M matches the features reflected in the shape data SD 2 (that is, YES).
  • this threshold value ⁇ th ' may be the same value as the above-mentioned threshold value ⁇ th , or may be a different value.
  • the end face model 110M of the workpiece model 100M 1 is inconsistent with the features of the shape data SD 2 , so the matching degree ⁇ 2 ′ is the threshold value. does not exceed ⁇ th '.
  • the processor 32 determines that the end face model 110M identified by the dissimilarity information NI 1_2 is inconsistent with the features reflected in the shape data SD 2 (that is, NO). If the processor 32 determines NO, the process proceeds to step S44, whereas if the processor 32 determines YES, the process proceeds to step S45.
  • the processor 32 acquires the position data PD 3_i by matching the work model 100M n to the shape data SD i , the feature model identified by the dissimilar information NI has a shape It functions as a matching determination unit 62 (FIG. 15) that determines whether or not it matches the feature reflected in the data SD i .
  • step S43 the processor 32 determines whether the workpiece model 100M 1 in the first orientation OR 1 is dissimilar to the workpiece 100 in the third orientation OR 3 (that is, the shape data SD 3 in FIG. 10(c)). It may be determined whether the protrusion model 106M identified by the information NI 1_3 matches the features reflected in the shape data SD 2 .
  • the processor 32 functions as the matching determination unit 62 and determines whether the convex part model 106M matches the features of the shape data SD2 . As shown in FIG. 8(c), the convex part model 106M of the workpiece model 100M1 matches the feature (convex part 106) of the shape data SD2 . Therefore, the processor 32 determines that the protrusion model 106M identified by the dissimilarity information NI 1_3 matches the characteristics of the shape data SD 2 .
  • the processor 32 determines the features of the shape data SD i and the features of the shape data SD i for each of the plurality of feature models identified by the dissimilar information NI. Determine whether they are consistent. Then, the processor 32 determines NO if at least one feature model is inconsistent with the feature of the shape data SD i .
  • step S44 the processor 32 invalidates the position data PD of the workpiece 100 acquired in step S22 described above.
  • the second position data PD3_2 stored in the detection result data DT in Table 1 is obtained as a result of inappropriate matching as shown in FIG. 8(c). It is being In this case, if the processor 32 causes the robot 12 to perform the work on the workpiece 100 using the position data PD 3_2 obtained as a result of the mismatch in step S25, which will be described later, the work will be performed with high precision. It becomes impossible to execute.
  • the processor 32 invalidates the position data PD 3_2 in step S44 in order to avoid using the position data PD 3_2 for control in step S25, which will be described later.
  • the processor 32 deletes the position data PD 3_2 from the detection result data DT created in step S22 described above.
  • the processor 32 adds an invalid flag FL to the position data PD 3_2 of the workpiece 100 stored in the detection result data DT.
  • the processor 32 when executing step S25, which will be described later, when the processor 32 reads out the position data PD 3_2 of the detection result data DT, the processor 32 refers to the invalid flag FL given to the position data PD 3_2 and determines the position of the position data PD 3_2. Ignore data PD 3_2 . As a result, the processor 32 cancels the work on the workpiece 100 detected as the shape data SD2 in step S25.
  • the processor 32 invalidates (for example, deletes or assigns an invalid flag FL) the position data PD3_i stored in the detection result data DT in this step S44, and thereby It is possible to avoid using the position data PD 3_i acquired as a result of mismatch for the control in step S25.
  • the processor 32 determines whether a mismatch has occurred between the workpiece model 100Mn that is matched to the shape data SD i in order to obtain the position data PD 3_i , and the shape data SD i . (in other words, the determination is NO in step S43), it functions as the position data cancellation unit 60 (FIG. 15) that invalidates the position data PD 3_i acquired in step S22.
  • This j MAX is the total number of position data PD 3_i acquired in step S22. If the processor 32 determines YES, it ends the flow of FIG. 19, whereas if the processor 32 determines NO, it proceeds to step S46.
  • step S24 the processor 32 determines the position data PD 3_i . Specifically, the processor 32 determines the detection result data DT after executing step S23 described above as formal control data to be used for control in step S25, which will be described later, and stores it in the memory 34 (for example, RAM).
  • the memory 34 for example, RAM
  • step S25 the processor 32 refers to the detection result data DT determined in step S24, and operates the robot 12 to perform work on the workpiece 100 (workpiece handling, welding, laser processing, etc.). Assume that in step S44 described above, the first position data PD 3_1 is not invalidated, but the second position data PD 3_2 is invalidated.
  • the processor 32 refers to the first position data PD 3_1 stored in the detection result data DT, operates the robot 12, and moves the end effector 28 (that is, the tool coordinate system C2) to the first position data PD 3_1 stored in the detection result data DT.
  • 3_1 that is, the coordinates Q2 R (X2 R , Y2 R , Z2 R , W2 R , P2 R , R2 R ) of the robot coordinate system C1
  • the end effector 28 reads the shape data.
  • the processor 32 cancels the work on the workpiece 100 detected as the shape data SD 2 from which the second position data PD 3_2 was acquired.
  • step S26 the processor 32 determines whether the work on all the works 100 in the container B has been completed. If the processor 32 determines YES, it ends the flow shown in FIG. 16, whereas if the processor 32 determines NO, it returns to step S21. In this way, the processor 32 repeatedly executes the loop of steps S21 to S26 until it determines YES in step S26, acquires the detection data DD newly detected by the shape detection sensor 14 in step S21, and updates the new detection data. Steps S22 to S25 are executed based on the DD.
  • the processor 32 includes the model acquisition section 44, the information acquisition section 46, the feature extraction section 48, the model matching execution section 50, the frequency calculation section 52, the similarity determination section 54, and the inconsistency determination section. 56, functions as a position data acquisition unit 58, a position data cancellation unit 60, and a matching determination unit 62, and acquires dissimilarity information NI of the work model 100Mn .
  • the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, the similarity determination unit 54, the inconsistency determination unit 56, the position data acquisition unit 58, the position data cancellation unit 60 , and the matching determination unit 62 constitute a device 86 (FIG. 15) for acquiring dissimilarity information NI.
  • the position data acquisition unit 58 adds a work model 100M n to the shape data SD i of the work 100 detected by the shape detection sensor 14 arranged at a known position in the control coordinate system C (robot coordinate system C1 ).
  • position data PD (specifically, position data PD 0_i , PD 1_i , PD 2_i , PD 3_i ) of the work 100 in the control coordinate system C is obtained (steps S32, S33).
  • the position data cancellation unit 60 determines whether a mismatch has occurred between the workpiece model 100M n that the position data acquisition unit 58 matched with the shape data SD i in order to acquire the position data PD, and the shape data SD i . (that is, the determination is NO in step S43), the position data PD acquired by the position data acquisition unit 58 is invalidated (step S44).
  • the robot 12 performs the work on the workpiece 100 (step S25) using the position data PD3_i obtained as a result of inappropriate matching as shown in FIG. 8(c) or FIG. 10(c), for example. can be avoided. Thereby, the accuracy of the work performed by the robot 12 in step S25 can be improved.
  • the matching determination unit 62 determines the position by the position data acquisition unit 58 matching the work model 100M n (for example, the work model 100M 1 ) to the shape data SD i (for example, the shape data SD 2 ).
  • the feature model end surface model 110M identified by dissimilar information NI (NI 1_2 ) matches the feature reflected in the shape data SD i . (Step S43).
  • the position data canceling unit 60 cancels the position data acquiring unit.
  • the position data PD (PD 3_2 ) acquired by 58 is invalidated. According to this configuration, it is possible to verify whether or not inappropriate matching has occurred at the time of acquiring the position data PD by paying attention to the feature model identified by the dissimilar information NI. Thereby, erroneous detection of position data PD can be detected with high accuracy.
  • the robot system 10 shown in FIG. 20 executes the flow shown in FIG. 21. Note that in the flow shown in FIG. 21, processes similar to those in the flow of FIG. 14 are given the same step numbers, and redundant explanations will be omitted.
  • step S13 the processor 32 determines that each feature model is , it is determined whether or not there is a similar relationship with the feature appearing in the matched shape data SD i in step S5.
  • the processor 32 determines the characteristics of each feature model (for example, the main body model 102M, the side model 108M, the end face model 110M, and the convex part model 106M) of the workpiece models 100Mn.
  • the obtained frequency ⁇ is compared with a predetermined threshold ⁇ th2 .
  • the processor 32 determines that the one feature model has a similar relationship with the feature of the shape data SD i . .
  • This threshold value ⁇ th2 is set to a value larger than the above-mentioned threshold value ⁇ th1 . If at least one feature model included in the work model 100M n has a similar relationship to the feature of the shape data SD i , the processor 32 determines YES and proceeds to step S14. On the other hand, if none of the feature models included in the work model 100M n have a similar relationship to the features of the shape data SD i , the processor 32 determines NO and proceeds to step S14.
  • step S14 the processor 32 functions as the information acquisition unit 46, and provides similar information SI for the feature model determined to have a similar relationship in the immediately preceding step S13, among the plurality of feature models included in the work model 100Mn . get.
  • the processor 32 functions as the information acquisition unit 46, and provides similar information SI for the feature model determined to have a similar relationship in the immediately preceding step S13, among the plurality of feature models included in the work model 100Mn . get.
  • the processor 32 functions as the information acquisition unit 46, and provides similar information SI for the feature model determined to have a similar relationship in the immediately preceding step S13, among the plurality of feature models included in the work model 100Mn . get.
  • the shape data SD 1 has a similar relationship to the shape data SD 1 representing the main body portion 102 of the work 100 in the first orientation OR 1 shown in FIG. 22(b).
  • the processor 32 identifies the body part model 102M included in the workpiece model 100M2 in the second posture OR2 as having a similar relationship with the body part 102 of the workpiece 100 in the first posture OR1.
  • Obtain information SI 2_1 .
  • this similar information SI 2_1 includes the work model 100M in the second posture OR 2 , the main body model 102M in the work model 102M in the first posture OR 1 , and the main body model 102M in the work model 100M in the first posture OR 1 Contains linking information I2_1 that links these as similar relationships.
  • the operator visually checks the matching result between the workpiece model 100M2 and the shape data SD1 in step S5, which is displayed on the display device 40, and determines the workpiece model 100M2 in the second posture OR2 . It is recognized that the main body model 102M has a similar relationship with the main body model 102M of the workpiece model 100M 1 in the first posture OR 1 . The operator may then operate the input device 42 to manually input the above-mentioned association information I 2_1 into the processor 32 .
  • the processor 32 extracts the associated information I from the matching result in step S5.
  • 2_1 can also be acquired automatically.
  • simulation SL the position and orientation of the workpiece 100 (for example, workpiece model 100M) placed in the virtual space are known, so the processor 32 calculates the second orientation OR 2 of the workpiece model 100M, the main body model 102M of 2 , and , it can be automatically recognized that the work model 100M in the first posture OR 1 and the main body model 102M in the first posture OR 1 have a similar relationship.
  • the main body model 102M of the workpiece model 100M4 is Suppose that it is determined that the shape data SD 1 has a similar relationship to the shape data SD 1 representing the main body portion 102 of the work 100 in the first orientation OR 1 shown in FIG. 23(b).
  • the processor 32 identifies that the main body model 102M included in the work model 100M of the fourth posture OR 4 has a similar relationship with the main body 102 of the work 100 of the first posture OR 1 .
  • This similarity information SI 4_1 is linking information that links the main body model 102M of the work model 100M of the fourth posture OR 4 and the main body model 102M of the work model 100M of the first posture OR 1 as a similarity relationship .
  • Contains I4_1 After step S14, the processor 32 proceeds to step S8.
  • step S23 executed in this embodiment will be described with reference to FIG. 24. Note that in the flow shown in FIG. 24, processes similar to those in the flow shown in FIG. 19 are given the same step numbers, and redundant explanations will be omitted.
  • step S47 the processor 32 determines whether similar information SI has been acquired for the work model 100M n used for matching to acquire the j-th position data PD 3_i .
  • 3_1 is obtained as a result of improper matching of the workpiece model 100M4 in the fourth orientation OR4 to the shape data SD1 , as shown in FIG. 23(c). Since the dissimilar shape NI has not been acquired for this work model 100M4 , the processor 32 determines NO in step S42 and executes step S47.
  • the processor 32 determines that similar information SI 4_1 identifying the main body model 102M has been acquired in step S14 described above for the work model 100M 4 used to acquire the first position data PD 3_1 . can be recognized. Therefore, in this case, the processor 32 determines YES.
  • the convex part model 106M of the workpiece model 100M2 dissimilarity information NI is provided for identifying that the convex part model 106M of the workpiece model 100M2 has a dissimilar relationship with the feature of the workpiece 100 of the third posture OR3 (FIG. 10(b)). Assume that 2_3 has been acquired.
  • the processor 32 determines YES in step S42. Moreover, as shown in FIG. 22(c), the convex part model 106M of the workpiece model 100M2 identified by the dissimilar information NI2_3 has the feature ( In other words, it is aligned with the convex portion 106). Therefore, the processor 32 makes a YES determination in step S43.
  • the processor 32 determines that the similar information SI 2_1 for identifying the main body model 102M in the above-mentioned step S14 is You can recognize that it has been acquired. Therefore, in this case, the processor 32 determines YES.
  • step S48 the processor 32 determines YES. If the processor 32 determines YES, the process proceeds to step S48. On the other hand, if the similar information SI has not been acquired for the work model 100M n used to acquire the j-th position data PD 3_i , the processor 32 determines NO and proceeds to step S45.
  • step S48 the processor 32 acquires a work model 100M different from the work model 100M n used to acquire the j-th position data PD 3_i in step S1 described above, based on the similar information SI. Select from a plurality of work models 100M.
  • Similar information SI 2_1 acquired for the main body model 102M is referred to. From this similarity information SI 2_1 , the processor 32 determines whether the main body model 102M of the workpiece model 100M 2 used when acquiring the first position data PD 3_1 is similar to the main body 102 of the workpiece 100 in the first posture OR 1 . I can recognize that I am in a relationship.
  • the processor 32 refers to the association information I 2_1 included in the similar information SI 2_1 , and the work model 100M that includes a feature model that has a similar relationship with the work model 100M of the second posture OR 2 and the main body model 102M of 2 .
  • the work model 100M 1 with the first posture OR 1 is selected from among the plurality of work models 100M n .
  • the processor 32 selects Similar information SI 4_1 acquired for the main body model 102M is referred to. Then, the processor 32 refers to the association information I 4_1 included in the similar information SI 4_1 , and the work model 100M including the feature model having a similar relationship with the work model 100M of the fourth posture OR 4 and the main body model 102M of 4 . As n , the work model 100M 1 with the first posture OR 1 is selected from among the plurality of work models 100M n .
  • the processor 32 acquires the position data PD 3_1 by matching the work model 100M 2 or 100M 4 to the shape data SD 1 , the feature model 102M has a similar relationship based on the similarity information SI 2_1 or SI 4_1 .
  • a workpiece model 100M1 including a feature model 102M corresponding to the feature (main body portion 102) identified as being present is selected from among the plurality of workpiece models 100Mn . Therefore, the processor 32 functions as a model selection unit 64 (FIG. 20) that selects the work model 100M 1 from the plurality of work models 100M n .
  • step S49 the processor 32 functions as the position data acquisition unit 58, and according to a predetermined matching algorithm, the workpiece model 100Mn selected in the immediately previous step S48 is converted into the shape data SD obtained by acquiring the j-th position data PD3_i . Match i again.
  • the processor 32 matches the workpiece model 100M 1 selected in the previous step S48 with the shape data SD 1 .
  • step S50 the processor 32 functions as the matching determination unit 62, and determines whether the feature model identified by the dissimilar information NI is the j-th feature model among the feature models included in the work models 100M n matched in the previous step S49. It is determined whether the position data PD 3_i matches the features reflected in the acquired shape data SD i .
  • the processor 32 matches the end face model 110M identified by the dissimilarity information NI 1_2 in the workpiece model 100M 1 to the shape data SD 1. Determine whether the image matches the features in the image.
  • the processor 32 acquires the degree of coincidence ⁇ '' between the end face model 110M and the features of the shape data SD 1 , and if the degree of coincidence ⁇ '' exceeds a predetermined threshold value ⁇ th ''( ⁇ ''> ⁇ th '' or ⁇ '' ⁇ th ''), it is determined that the end face model 110M identified by the dissimilarity information NI 1_2 matches the feature reflected in the shape data SD 1 (that is, YES).
  • step S50 the processor 32 determines YES in step S50. If the processor 32 determines YES, the processor 32 proceeds to step S44, functions as the position data cancellation unit 60, and invalidates the first position data PD 3_1 acquired in the above-described step S22.
  • step S50 if it is determined as YES in this step S50, the matching executed when acquiring the first position data PD 3_1 acquired in step S22 is inappropriate (FIG. 22(c) or FIG. 23(c)). , which means that the matching executed in step S49 was appropriate.
  • step S50 when the processor 32 determines YES in step S50, it executes step S44 and invalidates the first position data PD 3_1 acquired in step S22. On the other hand, in step S50, if the feature model identified by the dissimilarity information NI does not match the feature reflected in the shape data SD i , the processor 32 determines NO, and proceeds to step S45.
  • the processor 32 includes the model acquisition section 44, the information acquisition section 46, the feature extraction section 48, the model matching execution section 50, the frequency calculation section 52, the similarity determination section 54, and the inconsistency determination section 56. , the position data acquisition unit 58, the position data cancellation unit 60, the matching determination unit 62, and the model selection unit 64 to acquire dissimilarity information NI of the workpiece model 100Mn .
  • the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, the similarity determination unit 54, the inconsistency determination unit 56, the position data acquisition unit 58, the position data cancellation unit 60 , the matching determination unit 62, and the model selection unit 64 constitute a device 88 (FIG. 20) for acquiring dissimilar information NI.
  • the information acquisition unit 46 determines the characteristics of the workpiece 100 in the first posture OR1 in the workpiece model 100M2 (or 100M4 ) in the second posture OR2 (or fourth posture OR4 ). Similar information SI 2_1 (or SI 4_1 ) for identifying a feature model (main body model 102M) having a similar relationship with (main body 102) is acquired (step S14).
  • the model selection unit 64 selects similar information SI 2_1 (or SI 4_1 )
  • the matching determination unit 62 identifies the It is determined whether the feature model (end surface model 110M) that is displayed matches the feature (end surface 110) reflected in the shape data SD 1 (step S50).
  • the position data cancellation unit 60 deletes the position data acquired by the position data acquisition unit 58.
  • PD 3_1 is invalidated (step S44). According to this configuration, if the position data PD 3_i is acquired by inappropriate matching as shown in FIG. 22(c) or FIG. 23(c) in step S22 described above, the position data PD 3_i This can avoid being used for the control in step S25 described above.
  • the processor 32 may function as the position data acquisition unit 58 and acquire the position data PD3_1 ' of the workpiece model 100M1 that matches the shape data SD1 again. . Then, in the subsequent step S44, the processor 32 may invalidate the original position data PD 3_1 while adding the newly acquired position data PD 3_1 ' to the detection result data DT.
  • step S22 a plurality of position data PD may be acquired for one shape data SD i .
  • the processor 32 generates the position data PD 3_1_1 by matching the work model 100M 1 ( FIG. 3) with the first posture OR 1 to the shape data SD 1 shown in FIG. 22(b). get.
  • step S22 the processor 32 matches the workpiece model 100M 2 of the second posture OR 2 shown in FIG. 22(a) with the shape data SD 1 shown in FIG. 22(b), thereby determining the position.
  • Data PD 3_1_2 can be obtained.
  • Table 2 below shows an example of the data structure of the detection result data DT when a plurality of position data PD 3_1_1 and PD 3_1_2 are acquired for one shape data SD 1 in this way.
  • the total number i of shape data SD i reflected in the detection data DD may be different from the total number j of position data PD 3_i acquired in step S22 (i ⁇ j).
  • the processor 32 invalidates the position data PD 3_1_2 obtained as a result of the inappropriate matching shown in FIG. 22(c) by executing the flow of FIG. 24. Meanwhile, the processor 32 will maintain the position data PD 3_1_1 obtained as a result of the appropriate matching.
  • the processor 32 may execute the flow shown in FIG. 12, FIG. 14, FIG. 16, FIG. 17, FIG. 19, FIG. 21, or FIG. 24 according to the computer program PG stored in the memory 34 in advance.
  • the devices 80, 82, 84, 86, or 88 executed by the processor 32 (that is, the model acquisition unit 44, the information acquisition unit 46, the feature extraction unit 48, the model matching execution unit 50, the frequency calculation unit 52, the similarity determination unit 54) , mismatch determining section 56, position data acquiring section 58, position data canceling section 60, matching determining section 62, and model selecting section 64) may be function modules realized by a computer program PG.
  • step S23 after step S22 (more specifically, step S34) in the flow of FIG. 16.
  • the present invention is not limited thereto, and the processor 32 may execute step S23 after step S32 or S33 in FIG.
  • the processor 32 executes steps S41 to S45 in FIG. 19 or steps S41 to S50 in FIG. 24 based on the initial position data PD 1_i acquired in step S32. Execute. Then, when the determination in step S43 is NO (or the determination is YES in S50), the initial position data PD 1_i is invalidated in step S44.
  • the coarse search RS in step S32 and the fine search PS in step S33 described above are an example of a method for acquiring the position data PD of the workpiece 100, and any modification is made to the coarse search RS or the fine search PR.
  • the position data PD of the workpiece 100 may be acquired by any other method that does not execute the coarse search RS and fine search PR.
  • step S2 may be omitted from the flow of FIG. 12, FIG. 14, or FIG. 21.
  • the feature extractor 48 can be omitted from the device 82, 84, 86 or 88.
  • step S12 may be omitted from the flow of FIG. 21.
  • the mismatch determination unit 56 can be omitted from the device 88.
  • the processor 32 may perform model matching similar to step S32 (coarse search RS) or step S33 (fine search PS) described above. Further, in step S6 of FIG. 12, FIG. 14, or FIG. 21, the processor 32 takes into account detection result parameters PM such as the degree of coincidence ⁇ i , the plane ratio ⁇ i , and the exposure rate ⁇ i in addition to the degree of coincidence ⁇ . Then, the frequency ⁇ may be determined. For example, in step S6, the processor 32 calculates the frequency ⁇ when the matching degree ⁇ exceeds the threshold ⁇ th1 and the detection result parameter PM satisfies a predetermined standard (for example, exceeds the standard value). It's okay.
  • a predetermined standard for example, exceeds the standard value
  • step S3 of FIG. 12, FIG. 14, or FIG. 21 the shape detection sensor 14 does not necessarily have to be placed at a known position in the control coordinate system C (specifically, the robot coordinate system C1). Then, the processor 32 acquires detection data DD obtained by repeatedly imaging the workpiece 100 in various postures OR n one by one by the shape detection sensor 14 placed at an arbitrary position, and for each detection data DD. The matching in step S5 may be performed. As described above, various changes can be made to the flow shown in FIG. 12, FIG. 14, FIG. 16, FIG. 17, FIG. 19, FIG. 21, or FIG.
  • the devices 80, 82, 84, 86, and 88 are implemented in the control device 16.
  • the function of the device 80, 82, 84, 86, or 88 is not limited to this, for example, a teaching device (a teaching pendant, a tablet-type mobile terminal, etc.) that teaches the robot 12 the operation for the work in step S25. , or any other computer such as a PC.
  • a teaching device or a processor of a computer such as a PC functions as device 80, 82, 84, 86 or 88.
  • the shape detection sensor 14 is fixed to the end effector 28 (or wrist flange 26b) and is moved by the robot 12.
  • the present invention is not limited thereto, and the shape detection sensor 14 may be fixed at a known position in the control coordinate system C (robot coordinate system C1) using, for example, a support structure.
  • the shape detection sensor 14 is not limited to a three-dimensional visual sensor, but may be a laser scanner that can detect the three-dimensional shape of an object.
  • the shape detection sensor 14 may include a two-dimensional camera and a distance measurement sensor capable of measuring the distance d to the subject.
  • the detection data DD detected by the shape detection sensor 14 is not limited to three-dimensional point cloud image data as shown in FIG.
  • the image data may include a data set of , or may be any other type of image data (for example, distance image data).
  • the robot 12 is not limited to a vertically articulated robot, but may be any type of robot such as a horizontally articulated robot or a parallel link robot.

Abstract

従来、形状検出センサの検出データにワークモデルを誤ってマッチングしてしまうことにより、位置データの誤検出が生じる場合があった。 装置は、複数の姿勢のワークをそれぞれモデル化した複数のワークモデルを取得するモデル取得部であって、ワークモデルは、ワークの視覚的な特徴に対応する特徴モデルを含む、モデル取得部と、1つの姿勢の第1のワークモデルにおいて、他の姿勢のワークの特徴とは非類似の関係にある第1の特徴モデルを識別するための非類似情報を取得する情報取得部とを備える。

Description

装置、ロボットの制御装置、ロボットシステム、方法
 本開示は、ワークモデルにおいて非類似情報を取得するための装置、ロボットの制御装置、ロボットシステム、及び方法に関する。
 ワークをモデル化したワークモデルを、形状検出センサ(例えば、3次元視覚センサ)が検出したワークの形状データにマッチングすることで、該ワークの位置データを取得する装置が知られている(例えば、特許文献1)。
特開2017-102529号公報
 従来、形状検出センサの検出データにワークモデルを誤ってマッチングしてしまうことにより、位置データの誤検出が生じる場合があった。
 本開示の一態様において、装置は、複数の姿勢のワークをそれぞれモデル化した複数のワークモデルを取得するモデル取得部であって、ワークモデルは、ワークの視覚的な特徴に対応する特徴モデルを含む、モデル取得部と、1つの姿勢の第1のワークモデルにおいて、他の姿勢のワークの特徴とは非類似の関係にある第1の特徴モデルを識別するための非類似情報を取得する情報取得部とを備える。
 本開示の他の態様において、方法は、プロセッサが、複数の姿勢のワークをそれぞれモデル化した複数のワークモデルであって、ワークの視覚的な特徴に対応する特徴モデルを各々含む、複数のワークモデルを取得し、1つの姿勢の第1のワークモデルにおいて、他の姿勢のワークの特徴とは非類似の関係にある第1の特徴モデルを識別するための非類似情報を取得する。
一実施形態に係るロボットシステムの概略図である。 図1に示すロボットシステムのブロック図である。 第1の姿勢に配置されたワーク及びワークモデルを示す。 第2の姿勢に配置されたワーク及びワークモデルを示す。 第3の姿勢に配置されたワーク及びワークモデルを示す。 形状検出センサが検出する検出データの一例を示す。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに適切にマッチングする例を示す。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに不適切にマッチングする例を示す。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに適切にマッチングする例を示す。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに不適切にマッチングする例を示す。 ロボットシステムの他の機能を示すブロック図である。 図11に示すロボットシステムの動作フローの一例を示すフローチャートである。 ロボットシステムのさらに他の機能を示すブロック図である。 図13に示すロボットシステムの動作フローの一例を示すフローチャートである。 ロボットシステムのさらに他の機能を示すブロック図である。 図15に示すロボットシステムの動作フローの一例を示すフローチャートである。 図16中のステップS22のフローの一例を示すフローチャートである。 第1の姿勢ORのワークモデルを形状データに適切にマッチングした状態を示す。 図16中のステップS23のフローの一例を示すフローチャートである。 ロボットシステムのさらに他の機能を示すブロック図である。 図20に示すロボットシステムの動作フローの一例を示すフローチャートである。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに不適切にマッチングする例を示す。 ワークモデルと形状データとのマッチングを説明するための図であって、ワークモデルが形状データに不適切にマッチングする例を示す。 図20に示すロボットシステムが実行する図16中のステップS23のフローの一例を示すフローチャートである。
 以下、本開示の実施の形態を図面に基づいて詳細に説明する。なお、以下に説明する種々の実施形態において、同様の要素には同じ符号を付し、重複する説明を省略する。まず、図1及び図2を参照して、一実施形態に係るロボットシステム10について説明する。ロボットシステム10は、ロボット12、形状検出センサ14、及び制御装置16を備える。
 本実施形態においては、ロボット12は、垂直多関節ロボットであって、ロボットベース18、旋回胴20、下腕部22、上腕部24、手首部26、及びエンドエフェクタ28を有する。ロボットベース18は、作業セルの床の上に固定されている。旋回胴20は、鉛直軸周りに旋回可能となるように、ロボットベース18に設けられている。
 下腕部22は、その基端部が旋回胴20に水平軸周りに回動可能に設けられ、上腕部24は、その基端部が下腕部22の先端部に回動可能に設けられている。手首部26は、互いに直交する2つの軸の周りに回動可能となるように上腕部24の先端部に設けられた手首ベース26aと、手首軸A1の周りに回動可能となるように該手首ベース26aに設けられた手首フランジ26bとを有する。
 エンドエフェクタ28は、手首フランジ26bに着脱可能に取り付けられている。エンドエフェクタ28は、例えば、ワーク100を把持可能なロボットハンド、ワーク100を溶接する溶接トーチ、又は、ワーク100をレーザ加工するレーザ加工ヘッド等であって、ワーク100に対して所定の作業(ワークハンドリング、溶接、又はレーザ加工等)を行う。
 ロボット12の各構成要素(ロボットベース18、旋回胴20、下腕部22、上腕部24、手首部26)には、サーボモータ30(図2)が設けられている。これらサーボモータ30は、制御装置16からの指令に応じて、ロボット12の各可動要素(旋回胴20、下腕部22、上腕部24、手首ベース26a、手首フランジ26b)を回動させる。その結果、ロボット12は、エンドエフェクタ28を移動させて任意の位置に配置することができる。
 形状検出センサ14は、ワーク100の形状を検出する。本実施形態においては、形状検出センサ14は、撮像センサ(CMOS、CCD等)、及び該撮像センサへ被写体像を導光する光学レンズ(コリメートレンズ、フォーカスレンズ等)を有する3次元視覚センサであって、エンドエフェクタ28(又は手首フランジ26b)に対して固定されている。
 形状検出センサ14は、光軸A2に沿って被写体を撮像するとともに、該被写体までの距離dを測定するように構成されている。なお、光軸A2と手首軸A1とが互いに平行となる(又は直交する)ように、形状検出センサ14は、エンドエフェクタ28に対して固定されてもよい。形状検出センサ14は、検出した検出データDDを、制御装置16に供給する。
 図1に示すように、ロボット12には、ロボット座標系C1、及びツール座標系C2が設定されている。ロボット座標系C1は、ロボット12の各可動要素の動作を制御するための制御座標系Cである。本実施形態においては、ロボット座標系C1は、その原点がロボットベース18の中心に配置され、そのz軸が旋回胴20の旋回軸と平行となる(具体的には、一致する)ように、ロボットベース18に対して固定されている。
 一方、ツール座標系C2は、ロボット座標系C1におけるエンドエフェクタ28の位置及び姿勢を規定する制御座標系Cである。本実施形態においては、ツール座標系C2は、その原点(いわゆる、TCP)が、エンドエフェクタ28の作業位置(例えば、ワーク把持位置、溶接位置、又はレーザ光出射口)に配置され、そのz軸が、手首軸A1と平行となる(具体的には、一致する)ように、エンドエフェクタ28に対して設定されている。
 エンドエフェクタ28を移動させるとき、制御装置16は、ロボット座標系C1においてツール座標系C2を設定し、設定したツール座標系C2によって表される位置及び姿勢にエンドエフェクタ28を配置するように、ロボット12の各サーボモータ30への指令を生成する。こうして、制御装置16は、ロボット座標系C1における任意の位置及び姿勢にエンドエフェクタ28を位置決めできる。
 一方、形状検出センサ14には、センサ座標系C3が設定されている。センサ座標系C3は、ロボット座標系C1における形状検出センサ14の位置及び姿勢(つまり、光軸A2の位置及び方向)を規定する制御座標系Cである。本実施形態においては、センサ座標系C3は、その原点が、形状検出センサ14の撮像センサの中心に配置され、そのz軸が光軸A2と平行となる(具体的には、一致する)ように、形状検出センサ14に対して設定されている。センサ座標系C3は、形状検出センサ14が検出した検出データDD(又は、撮像センサ)の各画素の座標を規定する。
 センサ座標系C3とツール座標系C2との位置関係は、キャリブレーションにより既知となっており、故に、センサ座標系C3の座標とツール座標系C2の座標とは、既知の変換行列(例えば、同次変換行列)を介して、相互変換可能となっている。また、ツール座標系C2とロボット座標系C1との位置関係は既知であるので、センサ座標系C3の座標とロボット座標系C1の座標とは、ツール座標系C2を介して、相互変換可能である。すなわち、ロボット座標系C1における形状検出センサ14の位置及び姿勢(具体的には、センサ座標系C3の座標)は、既知となっている。
 制御装置16は、ロボット12の動作を制御して、ワーク100に対して所定の作業(ワークハンドリング、溶接、又はレーザ加工)を実行させる。具体的には、図2に示すように、制御装置16は、プロセッサ32、メモリ34、及びI/Oインターフェース36を有するコンピュータである。プロセッサ32は、CPU又はGPU等を有し、メモリ34及びI/Oインターフェース36とバス38を介して通信可能に接続され、これらコンポーネントと通信しつつ、後述する各種機能を実現するための演算処理を行う。
 メモリ34は、RAM又はROM等を有し、各種データを一時的又は恒久的に記憶する。メモリ34は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、又は光記憶媒体等の記憶媒体から構成することができる。I/Oインターフェース36は、例えば、イーサネット(登録商標)ポート、USBポート、光ファイバコネクタ、又はHDMI(登録商標)端子を有し、プロセッサ32からの指令の下、外部機器との間でデータを有線又は無線で通信する。ロボット12の各サーボモータ30、及び形状検出センサ14は、I/Oインターフェース36に通信可能に接続されている。
 また、制御装置16には、表示装置40及び入力装置42が設けられている。表示装置40及び入力装置42は、I/Oインターフェース36に通信可能に接続されている。表示装置40は、液晶ディスプレイ又は有機ELディスプレイ等を有し、プロセッサ32からの指令の下、各種データを視認可能に表示する。
 入力装置42は、押しボタン、スイッチ、キーボード、マウス、又はタッチパネル等を有し、オペレータからデータの入力を受け付ける。なお、表示装置40及び入力装置42は、制御装置16の筐体に一体に組み込まれてもよいし、又は、制御装置16の筐体とは別体の1つのコンピュータ(PC等)として、該筐体に外付けされてもよい。
 本実施形態においては、プロセッサ32は、容器B内にバラ積みにされた複数のワーク100の形状を検出する形状検出センサ14の検出データDDに基づいて、ロボット座標系C1におけるワーク100の位置データPDを取得する。以下、図3~図5を参照して、ワーク100の一例について説明する。
 本実施形態においては、ワーク100は、本体部102、シャフト部104、及び凸部106を有する。本体部102は、四角柱状の外形を有する。シャフト部104は、円筒状であって、本体部102の一側面から突出する。シャフト部104は、円筒状の側面108と、リング状の端面110とを有する。凸部106は、四角柱状であって、本体部102の頂面から突出する。
 これら本体部102(具体的には、本体部102を画定するエッジ及び面等)、シャフト部104(具体的には、側面108、端面110、及びこれらのエッジ等)、凸部106(具体的には、凸部106を画定するエッジ及び面等)は、ワーク100の視覚的な特徴102、104、106、108、110を構成する。
 図3~図4は、異なる3つの視点からワーク100を見たときの、互いに異なる3つの姿勢OR(n=1,2,3)のワーク100を示している。具体的には、図3は、第1の姿勢ORのワーク100を示し、図4は、第2の姿勢ORのワーク100を示し、図5は、第3の姿勢ORのワーク100を示している。
 本実施形態においては、プロセッサ32は、図3~図5に示すような複数の姿勢ORのワーク100をそれぞれモデル化した、複数のワークモデル100Mを取得する。ワークモデル100Mは、例えば、ワーク100のCADモデル100Mcと、該CADモデル100Mcのモデルコンポーネント(エッジ、面等)を点群(又は、法線)で表す点群モデル100Mpとを有する。
 CADモデル100Mcは、3次元CADモデルであって、CAD装置(図示せず)を用いてオペレータによって予め作成される。プロセッサ32は、CAD装置からCADモデル100Mcを取得し、予め定められた画像生成アルゴリズムに従って該CADモデル100Mcのモデルコンポーネントに点群を付与することで、点群モデル100Mpを生成してもよい。なお、ワークモデル100Mは、CADモデル100Mc及び点群モデル100Mpに限らず、ワーク100の形状を表す如何なるタイプのモデルであってもよい。
 プロセッサ32は、図3に示す第1の姿勢ORのワーク100をモデル化した、第1の姿勢ORのワークモデル100Mを取得する。なお、以下の説明において、ワーク100の特徴XXX(例えば、端面110)に対応するモデルを、特徴モデルXXXM(例えば、端面モデル110M)として言及する。第1の姿勢ORのワークモデル100Mは、本体部モデル102M、シャフト部モデル104M(具体的には、側面モデル108M、及び端面モデル110M)、及び、凸部モデル106Mを含む。
 また、プロセッサ32は、図4に示す第2の姿勢ORのワーク100をモデル化した、第2の姿勢ORのワークモデル100Mを取得する。第2の姿勢ORのワークモデル100Mは、本体部モデル102M、シャフト部モデル104M、及び凸部モデル106Mを含む。しかしながら、ワークモデル100Mにおいては、シャフト部モデル104Mは、側面モデル108Mを有する一方、端面モデル110Mは有していない(つまり、図4の視点からは見えない)。
 また、プロセッサ32は、図5に示す第3の姿勢ORのワーク100をモデル化した、第3の姿勢ORのワークモデル100Mを取得する。第3の姿勢ORのワークモデル100Mは、本体部モデル102M、及びシャフト部モデル104M(具体的には、側面モデル108M、及び端面モデル110M)を含む一方、凸部モデル106Mを含まない(つまり、図5の視点からは見えない)。
 ワークモデル100Mの各々には、ワーク座標系C4が設定される。このワーク座標系C4は、制御座標系C(具体的には、ロボット座標系C)におけるワークモデル100Mの位置及び姿勢を表すための座標系である。本実施形態においては、ワーク座標系C4は、その原点が、本体部モデル102Mの一頂点Oに配置され、そのx軸が、本体部モデル102Mの幅方向と平行であり、そのy軸が、本体部モデル102Mの長さ方向(又は、シャフト部モデル104Mの軸線)と平行であり、そのz軸が、本体部モデル102Mの高さ方向と平行となるように、ワークモデル100Mに対して設定されている。
 プロセッサ32は、図3~図5に例示するような、様々な姿勢ORの複数のワークモデル100Mを、それぞれ別のモデルデータとして、個別に取得する。なお、図3~図5に示す例では、3つの姿勢OR(n=1,2,3)のワークモデル100Mを例示しているが、プロセッサ32は、3以上の姿勢OR(例えば、n=1~500)のワークモデル100Mをそれぞれ取得してもよい。このように、本実施形態においては、プロセッサ32は、複数の姿勢ORのワーク100をそれぞれモデル化した複数のワークモデル100Mを取得するモデル取得部44(図2)として機能する。
 なお、ワークモデル100Mは、対応する視点から見て視認可能な表側のモデルデータのみを有し、該視点から見て視認不能である裏側のモデルデータは有していなくてもよい。例えば、図4のワークモデル100Mの場合、図4の視点から見たときに視認可能な、図4の紙面表側のモデルデータ(本体部モデル102M、側面モデル108M、凸部モデル106Mのモデルデータ)のみを有する一方、図4の視点から見て視認不能な、図4の紙面裏側のモデルデータ(端面モデル110Mのモデルデータ)は有さなくてもよい。
 より具体的には、プロセッサ32は、図4のワークモデル100Mを点群モデル100Mpとして生成するとき、図4で視認可能である紙面表側のモデルコンポーネントの点群のモデルデータを生成する一方、視認不能である紙面裏側のモデルコンポーネント(つまり、図4の視点から見て裏側のエッジ及び面等)の点群のモデルデータを生成しなくてもよい。なお、図3のワークモデル100M、及び図5のワークモデル100Mについても同様である。この構成により、取得するワークモデル100Mのデータ量を削減できる。
 なお、プロセッサ32は、入力装置42を通して、ワークモデル100Mにワーク座標系C4を設定する入力をオペレータから受け付けてもよい。プロセッサ32は、取得した複数のワークモデル100Mを、ワーク座標系C4の設定情報とともに、メモリ34に記憶する。
 プロセッサ32は、取得した複数のワークモデル100Mの各々を、形状検出センサ14が容器B内のワーク100を撮像することで検出した検出データDDにマッチングすることで、ロボット座標系C1におけるワーク100の位置データPDを取得する。図6に、画像化した検出データDDの一例を模式的に示す。
 本実施形態においては、検出データDDは、3次元点群画像データであって、形状検出センサ14が検出した様々な姿勢のワーク100の形状データSD(i=1,2,3,・・・)を含む。なお、図6は、理解の容易のために、第1の姿勢ORのワーク100の形状データSDと、第2の姿勢ORのワーク100の形状データSDと、第3の姿勢ORのワーク100の形状データSDとが写っている例を示している。しかしながら、実際に形状検出センサ14が容器B内にバラ積みされたワーク100を撮像した場合、検出データDDには、3以上の形状データSDが写り得ることを理解されたい。
 各々の形状データSDは、ワーク100の視覚的な特徴(つまり、本体部102のエッジ又は面、シャフト部104(側面108、端面110)のエッジ又は面、及び、凸部106のエッジ又は面)を示す点群を有し、該点群を構成する各点は、上述の距離dの情報を有している。よって、形状データSDの点群を構成する各点は、センサ座標系C3の3次元座標(X,Y,Z)として表すことができるようになっている。
 プロセッサ32は、センサ座標系C3において、検出データDDに写る各々の形状データSDに、複数のワークモデル100Mをそれぞれマッチングする。例えば、図7に示すように、プロセッサ32は、第2の姿勢ORのワークモデル100M(図7(a))を、検出データDDに写る形状データSD(図7(b))にマッチングさせる。
 この場合、図7(c)に示すように、ワークモデル100Mの全ての特徴モデル(本体部モデル102M、側面モデル108M、凸部モデル106M)が、形状データSDの特徴(ワーク100の本体部102、側面108、凸部106の形状データ)に整合する。すなわち、この場合、ワークモデル100Mが形状データSDに適切にマッチングされ、このときのワークモデル100Mに設定されたワーク座標系C4は、形状データSDとして検出されたワーク100の位置及び姿勢を正確に示すことになる。
 一方、図8に示すように、プロセッサ32は、第1の姿勢ORのワークモデル100M(図8(a))も、同様に、検出データDDに写る形状データSD(図8(b))にマッチングさせる。この場合、図8(c)に示すように、ワークモデル100Mの本体部モデル102M及び凸部モデル106Mは、形状データSDに写る本体部102及び凸部106の特徴に整合している。
 その一方で、ワークモデル100Mのシャフト部モデル104M(具体的には、側面モデル108M、及び端面モデル110M)は、形状データSDに写るシャフト部104の特徴と不整合となっている。すなわち、この場合、ワークモデル100Mが形状データSDに不適切にマッチングされており、このときのワークモデル100Mに設定されたワーク座標系C4は、形状データSDとして検出されたワーク100の位置及び姿勢を正確に示すことにならない。
 このような不適切なマッチングは、ワークモデル100Mの本体部モデル102M及び凸部モデル106Mが、形状データSDに写る本体部102及び凸部106の特徴に類似していることに起因して、起こり得る。一方、ワークモデル100Mの端面モデル110Mは、形状データSDには存在しておらず、故に、形状データSDに写るいずれの特徴とも類似していない。その結果、形状データSDの特徴と非類似の関係にある端面モデル110Mは、図8(c)のような不適切なマッチングにおいては、形状データSDのいずれの特徴とも整合していない。
 また、プロセッサ32は、図6の検出データDDに写る形状データSDに、複数のワークモデル100Mをそれぞれマッチングする。例えば、図9に示すように、プロセッサ32は、第3の姿勢ORのワークモデル100M(図9(a))を、検出データDDに写る形状データSD(図9(b))にマッチングさせる。その結果、ワークモデル100Mと形状データSDとが適切にマッチングされる(図9(c))。
 一方、図10に示すように、プロセッサ32は、第1の姿勢ORのワークモデル100M(図10(a))も、同様に、検出データDDに写る形状データSD(図10(b))にマッチングさせる。この場合、図10(c)に示すように、ワークモデル100Mの凸部モデル106Mは、形状データSDの如何なる特徴と整合しておらず、故に、ワークモデル100Mが形状データSDに不適切にマッチングしていることになる。
 このような不適切なマッチングは、ワークモデル100Mの本体部モデル102M及びシャフト部モデル104Mが、形状データSDに写る本体部102及びシャフト部104の特徴に類似していることに起因して、起こり得る。一方、ワークモデル100Mの凸部モデル106Mは、形状データSDには存在しておらず、故に、形状データSDに写るいずれの特徴とも類似していない。その結果、図10(c)のような不適切なマッチングを行った場合には、形状データSDの特徴と非類似の関係にある凸部モデル106Mは、該形状データSDのいずれの特徴とも整合していない。
 上述のように、第nの姿勢ORのワークモデル100Mを、第mの姿勢OR(m≠n)の形状データSDにマッチングさせたとき、ワークモデル100Mに含まれる特徴モデルのうち、形状データSD(つまり、第mの姿勢ORのワーク100)の特徴と非類似の関係にある特徴モデル(例えば、図8(c)の端面モデル110M、又は、図10(c)の凸部モデル106M)に注目することで、該マッチングが不適切であるか否かを判定できる。
 そこで、本実施形態においては、第nの姿勢ORのワークモデル100Mにおいて、第mの姿勢ORのワーク100の特徴とは非類似の関係にある特徴モデル(つまり、図8(c)の端面モデル110M、又は、図10(c)の凸部モデル106M)を識別するための非類似情報NIを取得する。
 例えば、プロセッサ32は、図8に示す第1の姿勢ORのワークモデル100Mにおいて、第2の姿勢ORのワーク100(つまり、形状データSD)の特徴とは非類似の関係にある特徴モデルとして、端面モデル110Mを識別するための非類似情報NI1_2を取得する。一例として、オペレータは、表示装置40に表示されたワークモデル100M(例えば、CADモデル100Mc)を目視してその特徴を検証し、入力装置42を操作して、端面モデル110Mを識別するための非類似情報NI1_2をプロセッサ32に手動で入力してもよい。
 他の例として、プロセッサ32は、実空間又は仮想空間で形状検出センサ14がワーク100を撮像した検出データDDにワークモデル100Mをマッチングする動作を試行することで、端面モデル110Mを識別するための非類似情報NI1_2を自動で取得してもよい。なお、マッチングを試行することで非類似情報NI1_2を取得する機能の詳細については、後述する。
 同様に、プロセッサ32は、図10に示す第1の姿勢ORのワークモデル100Mにおいて、第3の姿勢ORのワーク100の特徴とは非類似の関係にある特徴モデルとして、凸部モデル106Mを識別するための非類似情報NI1_3を取得してもよい。このように、本実施形態においては、プロセッサ32は、1つの姿勢ORのワークモデル100Mにおいて、他の姿勢OR又はORのワーク100の特徴とは非類似の関係にある特徴モデル110M又は106Mを識別するための非類似情報NI1_2又はNI1_3を取得する。したがって、プロセッサ32は、非類似情報NI1_2、NI1_3を取得する情報取得部46(図2)として機能する。
 なお、非類似情報NIは、特徴モデル(端面モデル110M、凸部モデル106M)を識別する識別コード(文字列、記号等)、又はフラグであってもよい。プロセッサ32は、取得した非類似情報NIを、ワークモデル100Mのモデルデータに付帯させるか、又は、該ワークモデル100Mのモデルデータに関連付けて、メモリ34に記憶する。
 以上の通り、本実施形態においては、プロセッサ32は、モデル取得部44及び情報取得部46として機能して、ワークモデル100Mの非類似情報NIを取得している。したがって、モデル取得部44及び情報取得部46は、非類似情報NIを取得するための装置80(図2)を構成する。
 この装置80においては、モデル取得部44は、複数の姿勢ORのワーク100をそれぞれモデル化した複数のワークモデル100Mを取得し、情報取得部46は、1つの姿勢ORのワークモデル100Mにおいて、他の姿勢OR又はORのワーク100の特徴とは非類似の関係にある特徴モデル110M又は106Mを識別するための非類似情報NI1_2又はNI1_3を取得する。
 この装置80によれば、プロセッサ32は、上述したような不適切なマッチングを検出するために注目すべきワークモデル100Mの特徴モデル110M又は106Mを識別可能になる。その結果、該不適切なマッチングを高精度に検出できるようになるので、ワーク100の位置データPDの誤検出を低減できる。
 次に、図11を参照して、ロボットシステム10の他の機能について説明する。図11に示すロボットシステム10は、図12に示すフローを取得する。図12に示すフローは、上述した非類似情報NIを取得するためのフローである。図12のフローは、プロセッサ32が、オペレータ、上位コントローラ、又はコンピュータプログラムPGから動作開始指令を受け付けたときに、開始される。
 ステップS1において、プロセッサ32は、モデル取得部44として機能して、複数のワークモデル100Mを取得する。具体的には、プロセッサ32は、図3~図5に例示したような複数の姿勢OR(例えば、n=1~500)の複数のワークモデル100Mをそれぞれ取得する。プロセッサ32は、ワークモデル100Mを、CADモデル100Mc又は点群モデルとして取得してもよい。
 ステップS2において、プロセッサ32は、ステップS1で取得した各々のワークモデル100Mから、該ワークモデル100Mに含まれる複数の特徴モデルを抽出し、抽出した各々の特徴モデルに識別コードIDを付与する。例えば、プロセッサ32は、図3に示す第1の姿勢ORのワークモデル100Mから、特徴モデルとして、本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106Mを抽出する。
 そして、プロセッサ32は、抽出した本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106Mに、それぞれ固有の識別コードIDを付与する。例えば、識別コードIDは、文字列コード(例えば、「Feature group A」、「Feature group B」、「Feature group C」・・・)である。この識別コードIDによって、プロセッサ32は、ワークモデル100Mに含まれる特徴モデル102M、108M、110M、及び106Mを、個別に識別可能となる。このように、本実施形態においては、プロセッサ32は、各々のワークモデル100Mから特徴モデルを抽出し、該特徴モデルに識別コードIDを付与する特徴抽出部48(図11)として機能する。
 なお、プロセッサ32は、ワークモデル100Mに含まれる複数のモデルコンポーネントを、1つの特徴モデルとして抽出してもよい。例えば、プロセッサ32は、図5に示す第3の姿勢ORのワークモデル100Mの側面モデル108M及び端面モデル110Mを、1つの特徴モデル104Mとして抽出し、該1つの特徴モデル104Mに識別コードID(「Feature group C」等の文字列コード)を付与してもよい。複数の面及びエッジのモデルコンポーネントから構成される本体部モデル102M及び凸部モデル106Mも、同様である。
 また、本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106Mを、それぞれ1つの特徴モデルとして抽出するのに限らず、例えば、本体部モデル102M及び凸部モデル106Mの組み合わせを1つの特徴モデルとして抽出してもよいし、又は、本体部モデル102Mを画定する複数の面又はエッジを、それぞれ1つの特徴モデルとして抽出してもよい。ワークモデル100Mに含まれるモデルコンポーネントを特徴モデルとしてのように抽出するのかは、オペレータによって任意に定められてもよい。
 ステップS3において、プロセッサ32は、ワーク100の形状データSDを取得する。一例として、プロセッサ32は、実空間に配置した実機の形状検出センサ14が、容器B内にバラ積みにされたワーク100を実際に撮像した検出データDD(図6)を取得する。
 他の例として、プロセッサ32は、仮想空間に配置した仮想の形状検出センサ14が、容器B内にバラ積みにされたワーク100(例えば、容器Bのモデル内に配置されたワークモデル100M)を模擬的に撮像するシミュレーションSLを実行することで得られた検出データDDを取得する。
 このように取得された検出データDDには、例えば図6に示すように、様々な姿勢ORの複数のワーク100の形状データSD(i=1,2,3,・・・)が含まれることになる。次いで、ステップS4において、プロセッサ32は、ステップS1で取得したワークモデル100Mの姿勢ORを特定する番号「n」を「1」にセットする。
 ステップS5において、プロセッサ32は、形状検出センサ14が検出した形状データSDに、第nの姿勢ORのワークモデル100Mをマッチングさせる。例えば、このステップS5の開始時点でn=1にセットされている場合、プロセッサ32は、予め定められたマッチングアルゴリズムに従って、ステップS1で取得した第1の姿勢ORのワークモデル100M(図3)を、ステップS3で取得した検出データDD(図6)に写る1つの形状データSD(例えば、形状データSD、SD又はSD)にマッチングさせる。このように、本実施形態においては、プロセッサ32は、形状検出センサ14が検出したワーク100の形状データSDにワークモデル100Mをマッチングさせるモデルマッチング実行部50(図11)として機能する。
 ステップS6において、プロセッサ32は、直近のステップS5で形状データSDにワークモデル100Mをマッチングさせたときに、該ワークモデル100Mに含まれる特徴モデルが該形状データSDに写る特徴と整合する頻度αを求める。例えば、プロセッサ32が、直近のステップS5において、第1の姿勢ORのワークモデル100Mを、図6に示す検出データDDに写る形状データSDにマッチングさせたとする。
 この場合、ワークモデル100Mに含まれる本体部モデル102M、シャフト部モデル104M(側面モデル108M、及び端面モデル110M)、及び凸部モデル106Mといった全ての特徴モデルが、形状データSDに写る特徴(つまり、ワーク100の本体部102、シャフト部104、及び凸部106の特徴)と整合することになる。
 例えば、プロセッサ32は、識別コードIDが付与されたワークモデル100Mの特徴モデルを構成する特徴点Fmと、形状データSDに写る特徴を構成する特徴点Fsとの一致度βを求める。この一致度βは、例えば、特徴点Fmと、該特徴点Fmに対応する特徴点Fsとの距離の誤差を含む。この場合、特徴点Fmと特徴点Fsとが高度に整合するほど、一致度βが小さな値となる。
 代替的には、一致度βは、特徴点Fmと、該特徴点Fmに対応する特徴点Fsとの類似性を表す類似度を含む。この場合、特徴点Fmと特徴点Fsとが高度に整合するほど、一致度βが大きな値となる。プロセッサ32は、求めた一致度βと、該一致度βに対して予め定めた閾値βth1とを比較することで、ワークモデル100Mの各々の特徴モデル(本体部モデル102M、側面モデル108M、端面モデル110M、凸部モデル106M)が、形状データSDに写る特徴(本体部102、側面108、端面110、凸部106)と整合したか否かを判定できる。
 例えば、プロセッサ32は、一致度βが閾値βth1を超えた(β>βth1、又は、β<βth1)場合に、ワークモデル100Mの特徴モデルが形状データSDの特徴と整合したと判定する。この判定の結果、プロセッサ32は、ワークモデル100Mの全ての特徴モデルが形状データSDの特徴と整合したことを検知できる。そして、プロセッサ32は、本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106Mの各々について、頻度αを「1」だけインクリメント(α=α+1)する。
 すなわち、本実施形態においては、頻度αは、ワークモデル100Mを形状データSDにマッチングさせたときに、該ワークモデル100Mの特徴モデルが形状データSDに写る特徴と整合した回数を示す。プロセッサ32は、このステップS6でワークモデル100Mの特徴モデル毎にカウントした頻度αを、該特徴モデルに付与された識別コードIDと関連付けて、メモリ34に記憶する。なお、頻度αは、上述の整合した回数に限らず、例えば該回数に対し、整合した特徴モデル又は一致度βに応じた重み付け演算を加えることで求めてもよいし、如何なる方法で求められてもよい。
 一方、プロセッサ32が、直近のステップS5において、第1の姿勢ORのワークモデル100Mを、図7に示す形状データSDにマッチングさせたとする。この場合、図8(c)に示すように、ワークモデル100Mに含まれる本体部モデル102M及び凸部モデル106Mといった特徴モデルは、形状データSDに写るワーク100の本体部102及び凸部106といった特徴と整合することになる。したがって、この場合、プロセッサ32は、ワークモデル100Mに含まれる本体部モデル102M及び凸部モデル106Mについて、頻度αを「1」だけインクリメント(α=α+1)する。
 その一方で、ワークモデル100Mのシャフト部モデル104M(つまり、側面モデル108M、及び端面モデル110M)は、形状データSDに写るワーク100の特徴と整合していない。したがって、この場合、プロセッサ32は、ワークモデル100Mの側面モデル108M及び端面モデル110Mについては、頻度αをインクリメントしない。
 こうして、プロセッサ32は、直近のステップS5で形状データSDにワークモデル100Mをマッチングさせたときに、該ワークモデル100Mに含まれる特徴モデルが該形状データSDに写る特徴と整合する頻度αを求めている。したがって、プロセッサ32は、頻度αを求める頻度演算部52(図11)として機能する。
 ステップS7において、プロセッサ32は、ステップS3で取得した検出データDDに写る全ての形状データSDにワークモデル100M(n=1にセットされている場合は、第1の姿勢ORのワークモデル100M)をマッチングさせたか否かを判定する。
 プロセッサ32は、YESと判定した場合はステップS8へ進む一方、NOと判定した場合はステップS5へ戻る。こうして、プロセッサ32は、ステップS7でYESと判定するまで、ステップS5~S7のループを繰り返し実行し、検出データDDに写る形状データSDにワークモデル100Mをマッチングする毎に、該ワークモデル100Mの特徴モデル毎に頻度αを求め、特徴モデルに付与された識別コードIDに関連付けてメモリ34に記憶された頻度αを更新する。
 ステップS8において、プロセッサ32は、ワークモデル100Mに含まれる複数の特徴モデルについて求めた頻度αに基づいて、それぞれの該特徴モデルが、ステップS5でマッチングした形状データSDに写る特徴と非類似の関係にあるか否かを判定する。例えば、このステップS8の開始時点でn=1にセットされている場合、プロセッサ32は、ステップS6を実行する毎にワークモデル100Mの各々の特徴モデル(本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106M)について求めた頻度αを、所定の閾値αth1と比較する。
 そして、プロセッサ32は、1つの特徴モデル(例えば、端面モデル110M)の頻度αが閾値αth1以下(α≦αth1)である場合に、該1つの特徴モデルが形状データSDの特徴と非類似の関係にあると判定する。このように、本実施形態においては、プロセッサ32は、頻度αに基づいて特徴モデルが形状データSDに写る特徴と非類似の関係にあるか否かを判定する類似判定部54(図11)として機能する。
 プロセッサ32は、ワークモデル100Mに含まれる少なくとも1つの特徴モデルが非類似の関係にある(すなわち、YES)と判定した場合は、ステップS9へ進む一方、ワークモデル100Mに含まれるいずれの特徴モデルも非類似の関係にない(すなわち、NO)と判定した場合は、ステップS10へ進む。
 ステップS9において、プロセッサ32は、情報取得部46として機能して、ワークモデル100Mに含まれる複数の特徴モデルのうち、直前のステップS8で非類似の関係にあると判定した特徴モデルについて非類似情報NIを取得する。例えば、このステップS9の開始時点でn=1にセットされ、ステップS8の結果、第1の姿勢ORのワークモデル100Mに含まれる端面モデル110M(図8(c))、及び凸部モデル106M(図10(c))が、それぞれ、第2の姿勢ORのワーク100の特徴、及び、第3の姿勢ORのワーク100の特徴とは非類似の関係にあると判定されたとする。
 この場合、プロセッサ32は、第1の姿勢ORのワークモデル100Mに含まれる複数の特徴モデル(本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106M)のうち、端面モデル110Mを識別するための非類似情報NI1_2と、凸部モデル106Mを識別するための非類似情報NI1_3とを取得することになる。
 プロセッサ32は、端面モデル110Mの非類似情報NI1_2を、該端面モデル110Mに付与された識別コードIDと関連付けて取得し、また、凸部モデル106Mの非類似情報NI1_3を、該凸部モデル106Mに付与された識別コードIDと関連付けて取得する。
 そして、プロセッサ32は、取得した非類似情報NI1_2及びNI1_3を、それぞれの識別コードIDと関連付けて、メモリ34に記憶する。その結果、ワークモデル100Mの特徴モデルの識別コードIDと、該特徴モデルの非類似情報NI1_2、NI1_3とが、互いに関連付けられて、メモリ34に格納される。
 ステップS10において、プロセッサ32は、ワークモデル100Mの姿勢ORを特定する番号「n」が最大値nMAXになった(n=nMAX)か否かを判定する。この最大値nMAXは、ステップS1で取得したワークモデル100Mの総数(つまり、姿勢ORの総数)を示す(例えば、nMAX=500)。プロセッサ32は、YESと判定した場合は、図12に示すフローを終了する一方、NOと判定した場合はステップS11へ進む。
 ステップS11において、プロセッサ32は、ワークモデル100Mの姿勢ORを特定する番号「n」を「1」だけインクリメントする(n=n+1)。そして、プロセッサ32は、ステップS5へ戻る。こうして、プロセッサ32は、ステップS10でYES
と判定するまで、ステップS5~S11のループを繰り返し実行し、ステップS1で取得した全てのワークモデル100Mについて、非類似の関係の判定(ステップS8)と、非類似情報NIの取得(ステップS9)を実行する。
 以上の通り、本実施形態においては、プロセッサ32は、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、及び類似判定部54として機能して、ワークモデル100Mの非類似情報NIを取得している。したがって、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、及び類似判定部54は、非類似情報NIを取得するための装置82(図11)を構成する。
 この装置82においては、特徴抽出部48は、各々のワークモデル100Mから、該ワークモデル100Mに含まれる複数の特徴モデルを抽出し、抽出した各々の該特徴モデルに識別コードIDを付与する(ステップS2)。そして、情報取得部46は、特徴モデル(例えば、端面モデル110M又は凸部モデル106M)に付与された識別コードIDと関連付けて、非類似情報NI1_2又はNI1_3を取得する(ステップS9)。
 この構成によれば、プロセッサ32は、ワークモデル100Mに含まれる複数の特徴モデルのうち、いずれの特徴モデルが非類似の関係にあるかを、互いに関連付けられた識別コードID及び非類似情報NIから迅速に認識できる。また、非類似情報NIを、識別コードIDによって分類された特徴モデル毎に蓄積できる。
 また、装置82においては、モデルマッチング実行部50は、形状検出センサ14が検出したワーク100の形状データSDにワークモデル100Mをマッチングさせる(ステップS5)。また、頻度演算部52は、モデルマッチング実行部50が、複数の姿勢ORの形状データSD(例えば、図6中の形状データSD、SD、SD)にワークモデル100M(例えば、ワークモデル100M)をそれぞれマッチングさせたときに、該ワークモデル100Mに含まれる特徴モデルが、各々の該形状データSDに写る特徴と整合する頻度αを求める(ステップS6)。
 また、類似判定部54は、頻度演算部52がワークモデル100Mに含まれる複数の特徴モデルについて求めた頻度αに基づいて、それぞれの特徴モデルが非類似の関係にあるか否かを判定する(ステップS8)。そして、情報取得部46は、ワークモデル100Mに含まれる複数の特徴モデルのうち、類似判定部54によって非類似の関係にあると判定された特徴モデル(例えば、端面モデル110M又は凸部モデル106M)について、非類似情報を取得する(ステップS9)。この構成によれば、ワークモデル100Mの特徴モデルがワーク100の特徴と非類似の関係にあるか否かを、頻度αに基づいて高精度に判定できるので、各々の特徴モデルについて非類似情報NIを高精度に取得できる。
 また、装置82においては、類似判定部54は、頻度演算部52が求めた頻度αが所定の閾値αth1以下である場合に、ワークモデル100Mの特徴モデルが、ワーク100(具体的には、形状データSD)の特徴と非類似の関係にあると判定する。この構成によれば、非類似の関係の判定を、比較的簡単なアルゴリズムで、高精度に実行できる。
 また、装置82の一例において、モデルマッチング実行部50は、実空間において形状検出センサ14がワーク100を実際に撮像した形状データSDを用いて、ワークモデル100Mのマッチングを実行する(ステップS2)。この構成によれば、実機の形状検出センサ14が検出した形状データSDによってマッチングを試行し、その結果、非類似情報NIを高精度に取得できる。
 一方、装置82の他の例において、モデルマッチング実行部50は、仮想空間において形状検出センサ14がワーク100を模擬的に撮像するシミュレーションSLによって取得された形状データSDを用いてマッチングを実行する(ステップS2)。この構成によれば、様々なマッチングを容易に試行することができるので、非類似情報NIを取得する作業を簡単化できる。
 なお、上述のステップS6において、プロセッサ32は、直前のステップS5でマッチングさせたワークモデル100Mの全ての特徴モデルが、形状データSDの特徴と整合していることを検知した場合、該全ての特徴モデルの各々の頻度αをインクリメントしなくてもよい。
 例えば、プロセッサ32は、直前のステップS5で第1の姿勢ORのワークモデル100Mを、図6に示す検出データDDに写る形状データSDにマッチングさせた場合、上述したように、ワークモデル100Mの全ての特徴モデルが形状データSDの特徴と整合したことを検知できる。この場合、プロセッサ32は、ワークモデル100Mの本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106Mの各々について、頻度αをインクリメントしない。
 すなわち、この場合、プロセッサ32は、ワークモデル100Mを、同じ姿勢ORの形状データSDにマッチングさせた(つまり、適切なマッチングである)場合、該形状データSDの特徴と整合した特徴モデルについては、頻度αの演算対象から除外する。これにより、不適切なマッチングを検出するための非類似情報NIを、より効率的に取得できる。
 次に、図13を参照して、ロボットシステム10のさらに他の機能について説明する。図13に示すロボットシステム10は、図14に示すフローを実行する。図14に示すフローは、図12のフローと同様に非類似情報NIを取得するためのフローであるが、図12のフローと、ステップS12において相違する。
 具体的には、ステップS5の後、ステップS12において、プロセッサ32は、直近のステップS5でワークモデル100Mのマッチングを実行したときに、該ワークモデル100Mに含まれる少なくとも1つの特徴モデルと、形状データSDに写る特徴との間で不整合が生じているか否かを判定する。
 例えば、直前のステップS5で第1の姿勢ORのワークモデル100Mを、図6の検出データDDに写る形状データSDにマッチングしたとする。この場合、プロセッサ32は、例えば、識別コードIDが付与されたワークモデル100Mの各々の特徴モデル(本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106M)を構成する特徴点Fmと、形状データSDに写る特徴を構成する特徴点Fsとの一致度βを求める。
 そして、プロセッサ32は、識別コードIDが付与された各々の特徴モデルについて求めた一致度βと閾値βth1とを比較し、一致度βが閾値βth1を超えていない場合に、ワークモデル100Mの特徴モデルと形状データSDの特徴との間で不整合が生じている(すなわち、YES)と判定する。この判定の結果、プロセッサ32は、図8(c)に示すように、ワークモデル100Mの側面モデル108M及び端面モデル110M(つまり、シャフト部モデル104M)と、形状データSDの特徴とが不整合となっていると判定することになる。
 プロセッサ32は、YESと判定した場合はステップS6に進み、ワークモデル100Mに含まれる特徴モデル(図8(c)の本体部モデル102M及び凸部モデル106M)が該形状データSDに写る特徴(本体部102及び凸部106の特徴)と整合する頻度αを求める。一方、プロセッサ32は、NOと判定した場合はステップS7へ進む。
 このように、本実施形態においては、プロセッサ32は、ステップS5でワークモデル100Mを用いてマッチングを実行したときに、該ワークモデル100Mに含まれる特徴モデルと、形状データSDに写る特徴との間で不整合が生じているか否かを判定する不整合判定部56(図13)として機能する。
 以上のように、本実施形態においては、プロセッサ32は、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、及び不整合判定部56として機能して、ワークモデル100Mの非類似情報NIを取得している。したがって、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、及び不整合判定部56は、非類似情報NIを取得するための装置84(図11)を構成する。
 この装置84においては、不整合判定部56は、モデルマッチング実行部50がワークモデル100M(例えば、ワークモデル100M)を用いてマッチングを実行したときに(ステップS5)、該ワークモデル100Mに含まれる少なくとも1つの特徴モデル(例えば、側面モデル108M及び端面モデル110M)と、形状データSD(例えば、形状データSD)に写る、該少なくとも1つの特徴モデルに対応する特徴との間で不整合が生じているか否かを判定する(ステップS12)。
 そして、頻度演算部S6は、不整合判定部56によって不整合が生じている(つまり、ステップS12でYES)と判定された場合に、該少なくとも1つの特徴モデルとは別の特徴モデル(例えば、本体部102及び凸部106)が形状データSD(例えば、形状データSD)の特徴と整合する頻度αを求める(ステップS6)。
 この構成によれば、ワークモデル100Mと形状データSDとのマッチングで不整合が生じた場合において、該形状データSDの特徴と整合した特徴モデルについてのみ、頻度αを求めることができる。ここで、ステップS12で不整合と判定された特徴モデルは、上述の非類似の関係になる可能性が高い。よって、ステップS12で不整合が生じたと判定されたときに求めた頻度αを収集することで、ステップS9で非類似情報NIを効率的に取得できる。
 次に、図15を参照して、ロボットシステム10のさらに他の機能について説明する。図15に示すロボットシステム10は、図16に示すフローを実行する。図16のフローは、容器B内にバラ積みにされたワーク100に対してロボット12に所定の作業を実行させるためのフローであって、図12又は図14のフローの実行後(すなわち、非類似情報NIの取得後)に、実行される。プロセッサ32は、図12又は図14のフローの実行後に、オペレータ、上位コントローラ、又はコンピュータプログラムPGから作業開始指令を受け付けたときに、図16のフローを開始する。
 ステップS21において、プロセッサ32は、形状検出センサ14が検出した検出データDDを取得する。具体的には、プロセッサ32は、ロボット12を動作させて、容器B内にバラ積みにされたワーク100を形状検出センサ14の検出範囲内に収める撮像位置に、該形状検出センサ14を位置決めする。そして、プロセッサ32は、形状検出センサ14を動作させて、容器B内のワーク100を撮像することで、図6に例示するような検出データDDを検出させる。プロセッサ32は、検出された検出データDDを形状検出センサ14から取得する。
 ステップS22において、プロセッサ32は、形状検出センサ14が検出した検出データDDに写る形状データSDにワークモデル100Mをマッチングすることで、制御座標系Cにおけるワーク100の位置データPDを取得する。すなわち、本実施形態においては、プロセッサ32は、ワーク100の位置データPDを取得する位置データ取得部58(図15)として機能する。このステップS22について、図17を参照して説明する。プロセッサ32は、位置データ取得部58として機能して、図17に示すステップS22のフローを実行する。
 ステップS22の開始後、ステップS31において、プロセッサ32は、直近のステップS21で取得した検出データDDに対し、前処理PPを実行する。例えば、プロセッサ32は、前処理PPとして、検出データDDに含まれる点群のうち、無効とする点群(例えば、容器Bの外側に存在する点群、又は、ワーク100の形状データSDiの点群から所定の距離を超えて大きく乖離している点群)を検出データDDから削除する処理を実行してもよい。
 ステップS32において、プロセッサ32は、所定のマッチングアルゴリズムに従って、粗探索RSを実行する。具体的には、プロセッサ32は、粗探索RSとして、検出データDDのセンサ座標系C3によって規定される仮想空間に、上述のステップS1で取得した複数のワークモデル100Mを順に配置し、該ワークモデル100Mを、検出データDDに含まれる各々の形状データSDにマッチングさせる。つまり、本実施形態においては、プロセッサ32は、検出データDDに含まれる1つの形状データSDに対し、複数のワークモデル100Mをそれぞれマッチングする。
 このとき、プロセッサ32は、センサ座標系C3に配置したワークモデル100Mの位置を、所定の変位量だけ繰り返し変位させる。そして、プロセッサ32は、ワークモデル100Mの位置を変位させる毎に、該ワークモデル100Mの特徴点Fmと、形状データSDiの特徴点Fsとの一致度βを求める。
 そして、プロセッサ32は、求めた一致度βと閾値βth2とを比較し、該一致度βが該閾値βth2を超えたとき(つまり、β>βth2、又は、β<βth2)、センサ座標系C3においてワークモデル100Mと形状データSDとが概ねマッチングしたと判定する。なお、この閾値βth2は、上述の閾値βth1と同じ値であってもよいし、異なる値であってもよい。
 図18は、第1の姿勢ORのワークモデル100Mを形状データSDにマッチングさせた状態を示す。プロセッサ32は、形状データSDに粗探索RSとしてマッチングさせたワークモデル100Mに設定されているワーク座標系C4の、センサ座標系C3の座標Q1(X1,Y1,Z1,W1,P1,R1)を、センサ座標系位置データPD0_1として取得する。
 このセンサ座標系位置データPD0_1(つまり、座標Q1)のうち、座標(X1,Y1,Z1)は、センサ座標系C3におけるワーク座標系C4の原点位置を示し、座標(W1,P1,R1)は、センサ座標系C3におけるワーク座標系C4の姿勢(いわゆる、ヨー、ピッチ、ロール)を示す。
 そして、プロセッサ32は、センサ座標系位置データPD0_1を、ロボット座標系C1の座標Q1(X1,Y1,Z1,W1,P1,R1)に変換し、該座標Q1を、初期位置データPD1_1として取得する。この初期位置データPD1_1は、形状データSDとして形状検出センサ14によって検出されたワーク100の、ロボット座標系C1における位置及び姿勢の概算値を表す。
 同様にして、プロセッサ32は、検出データDDに写る他の形状データSDのセンサ座標系位置データPD0_i、及び初期位置データPD1_iを順次取得する。このように、プロセッサ32は、粗探索RSにおいて、ワークモデル100Mを形状データSDにマッチングすることで、ワーク100の位置データPD0_i、PD1_iを取得している。
 ステップS33において、プロセッサ32は、密探索PSを実行する。具体的には、プロセッサ32は、検出データDDに写る形状データSDに関し、ステップS32で取得した初期位置データPD1_iを基準とし、所定のマッチングアルゴリズム(例えば、ICP:Iterative Closest Point等の数理最適化アルゴリズム)に従って、センサ座標系C3においてワークモデル100Mが形状データSDと高度にマッチングする位置を探索する。
 例えば、プロセッサ32は、センサ座標系C3の初期位置データPD1_iにワークモデル100Mとして配置した点群モデル100Mpの点群と、検出データDDに含まれる形状データSDの3次元点群との一致度γを求める。例えば、この一致度γは、点群モデル100Mpの点群と、形状データSDの3次元点群との距離の誤差、又は、点群モデル100Mpの点群と、形状データSDの3次元点群との類似度を含む。
 そして、プロセッサ32は、求めた一致度γと、該一致度γに対して予め定めた閾値γthとを比較し、該一致度γが閾値γthを超えたとき(例えば、γ>γth、又は、γ<γth)、センサ座標系C3においてワークモデル100M(例えば、点群モデル100Mp)と形状データSDとが高度にマッチングしたと判定する。一方、一致度γが閾値γthを超えていない場合、プロセッサ32は、センサ座標系C3に配置したワークモデル100Mの位置を所定の変位量だけ変位させ、ワークモデル100Mの位置を変位させる毎に一致度γを求めて、閾値γthと比較する。
 プロセッサ32は、一致度γが閾値γthを超えたとき、密探索PSとして形状データSDと高度にマッチングしたワークモデル100Mに設定されているワーク座標系C4の、センサ座標系C3における座標Q2(X2,Y2,Z2,W2,P2,R2)を、センサ座標系位置データPD2_iとして取得する。
 そして、プロセッサ32は、センサ座標系位置データPD2_iを、ロボット座標系C1の座標Q2(X2,Y2,Z2,W2,P2,R2)に変換し、該座標Q2を、形状データSDとして検出されたワーク100の位置データPD3_iとして取得する。この位置データPD3_iは、ロボット座標系C1におけるワーク100の高精度な位置及び姿勢を表す。このように、プロセッサ32は、密探索PSにおいて、ワークモデル100Mを形状データSDにマッチングすることで、ワーク100の位置データPD2_i、PD3_iを取得している。
 このステップS33の結果、プロセッサ32は、検出データDDに写る複数のワーク100の位置データPD3_iを、それぞれ取得する。プロセッサ32は、取得した位置データPD3_iを、検出結果データDTとしてメモリ34に記憶する。検出結果データDTのデータ構造の一例を、以下の表1に模式的に示す。
 表1に示す検出結果データDTには、ワーク100の位置データPD3_i(具体的には、座標Q2(X2,Y2,Z2,W2,P2,R2))とともに、一致度γ、平面割合δ、及び露出率ε等の検出結果パラメータPMが格納されている。この検出結果パラメータPMは、位置データPD3_iの取得時に実行されたワーク100の形状データSDとワークモデル100Mとのマッチングの結果を表すパラメータである。具体的には、一致度γは、ステップS33の密探索PSでワークモデル100Mを形状データSDと高度にマッチングさせたと判定したときの一致度である。
 平面割合δは、例えば、密探索PSで形状データSDにマッチングさせたワークモデル100Mにおいて、該ワークモデル100Mに含まれる最大の平面モデル(具体的には、平面の点群モデル100Mp)が、該ワークモデル100Mの全体(具体的には、全体の点群モデル100Mp)に占める割合である。代替的には、平面割合δは、密探索PSでワークモデル100Mをマッチングさせた形状データSDに含まれる最大の平面を表す点群が、該形状データSDの全体(具体的には、全体の点群)に占める割合であってもよい。
 露出率εは、例えば、密探索PSで形状データSDにマッチングさせたワークモデル100Mの全体(具体的には、点群モデル100Mpを構成する全ての点群)に対する、該形状データSDとマッチングしているワークモデル100Mの領域(つまり、形状データSDの点群とマッチングしている、点群モデル100Mpの点群)の割合を示す。
 プロセッサ32は、位置データPD3_iとともに、検出結果パラメータPM(一致度γ、平面割合δ、及び露出率ε)を取得し、位置データPD3_iに関連付けて、検出結果データDTとしてメモリ34に記憶する。なお、検出結果パラメータPMは、一致度γ、平面割合δ、及び露出率εに限らず、他の如何なるパラメータを有してもよい。
 また、表1に示す検出結果データDTには、位置データPD3_iを取得した形状データSDの情報と、取得した位置データPD3_iに順に付与された番号j(j=1,2,3,・・・)とが、位置データPD3_i及び検出結果パラメータPMと関連付けて、併せて格納されている。
 ステップS34において、プロセッサ32は、検出結果データDTに対し、後処理OPを実行する。例えば、プロセッサ32は、後処理OPとして、検出結果パラメータPMが所定の基準を満たしていない位置データPD3_iを、検出結果データDTから削除する処理を実行してもよい。
 具体的には、プロセッサ32は、一致度γ、平面割合δ、又は露出率εが所定の基準値を超えていない場合に、検出結果パラメータPMが基準を満たしていないと判定し、該検出結果パラメータPMに関連付けられた位置データPD3_iを、検出結果データDTから削除してもよい。以上のように、プロセッサ32は、位置データ取得部58として機能して、図17に示すステップS22を実行し、ワーク100の位置データPD0_i、PD1_i、PD2_i、PD3_iを取得する。
 再度、図16を参照して、ステップS23において、プロセッサ32は、ステップS22で取得した位置データPDの誤検出を検証する。ここで、プロセッサ32が、上述のステップS32及びS33において、図8(c)又は図10(c)に例示するように、ワークモデル100Mを形状データSDに不適切にマッチングさせた結果、位置データPD3_iを取得してしまう可能性がある。このような不適切なマッチングの結果として得られた位置データPD3_iは、ワーク100の位置及び姿勢を正確に表していない誤検出のデータとなる。
 そこで、本実施形態においては、プロセッサ32は、ステップS23において、検出結果データDTに格納された位置データPD3_iの誤検出を検証する。このステップS23について、図19を参照して説明する。ステップS23の開始後、ステップS41において、プロセッサ32は、検出結果データDTに格納された位置データPD3_iを特定する番号「j」を「1」にセットする。
 ステップS42において、プロセッサ32は、j番目の位置データPD3_iを取得するためのマッチングに用いられたワークモデル100Mについて、非類似情報NIが取得されているか否かを判定する。以下、この時点で、位置データPDの番号「j」が、j=2にセットされ、且つ、表1の検出結果データDTに格納された2番目(つまり、番号j=2)の位置データPD3_2が、図8(c)に示すように、第1の姿勢ORのワークモデル100Mを形状データSDに不適切にマッチングした結果として得られていた場合について説明する。
 この場合、プロセッサ32は、2番目の位置データPD3_2を取得するときにマッチングに用いられたワークモデル100Mを特定し、該ワークモデル100Mについて、上述のステップS9で端面モデル110M及び凸部モデル106Mを識別する非類似情報NI1_2及びNI1_3が取得されていることを認識できる。よって、この場合、プロセッサ32は、このステップS42でYESと判定することになる。プロセッサ32は、YESと判定した場合は、ステップS43へ進む一方、NOと判定した場合はステップS45へ進む。
 ステップS43において、プロセッサ32は、j番目の位置データPD3_iの取得のために用いられたワークモデル100Mに含まれる特徴モデルのうち、非類似情報NIによって識別される特徴モデルが、該j番目の位置データPD3_iを取得した形状データSDに写る特徴と整合しているか否かを判定する。
 具体的には、プロセッサ32は、2番目の位置データPD3_2の取得のために用いられた第1の姿勢ORのワークモデル100Mにおいて、第2の姿勢ORのワーク100に対する非類似情報NI1_2によって識別される端面モデル110Mが、形状データSDに写る特徴と整合しているか否かを判定する。
 例えば、プロセッサ32は、検出結果データDTにおいて2番目の位置データPD3_2と関連付けて格納された一致度γを取得したときのマッチングデータを解析し、上述のステップS33(密探索PS)でマッチングさせた端面モデル110Mと形状データSDの特徴との一致度γ’を取得する。
 そして、プロセッサ32は、一致度γ’が所定の閾値γth’を超えていた場合(γ’>γth’、又は、γ’<γth’)に、非類似情報NI1_2によって識別される端面モデル110Mが形状データSDに写る特徴と整合している(すなわち、YES)と判定する。
 なお、この閾値γth’は、上述の閾値γthと同じ値であってもよいし、又は異なる値であってもよい。本実施形態においては、図8(c)に示すように、ワークモデル100Mの端面モデル110Mは、形状データSDの特徴と不整合となっていることから、一致度γ’は、閾値γth’を超えない。
 したがって、この場合、プロセッサ32は、非類似情報NI1_2によって識別される端面モデル110Mが、形状データSDに写る特徴と不整合となっている(すなわち、NO)と判定することになる。プロセッサ32は、NOと判定した場合は、ステップS44へ進む一方、YESと判定した場合はステップS45へ進む。
 このように、本実施形態においては、プロセッサ32は、形状データSDにワークモデル100Mをマッチングすることで位置データPD3_iを取得したときに、非類似情報NIによって識別される特徴モデルが形状データSDに写る特徴と整合しているか否かを判定する整合判定部62(図15)として機能する。
 なお、プロセッサ32は、このステップS43において、第1の姿勢ORのワークモデル100Mにおいて、第3の姿勢ORのワーク100(つまり、図10(c)の形状データSD)に対する非類似情報NI1_3によって識別される凸部モデル106Mが、形状データSDに写る特徴と整合しているか否かを判定してもよい。
 この場合、プロセッサ32は、整合判定部62として機能して、凸部モデル106Mが形状データSDの特徴と整合しているか否か判定する。図8(c)に示すように、ワークモデル100Mの凸部モデル106Mは、形状データSDの特徴(凸部106)と整合している。よって、プロセッサ32は、非類似情報NI1_3によって識別される凸部モデル106Mについては、形状データSDの特徴と整合していると判定することになる。
 すなわち、プロセッサ32は、このステップS43において、ワークモデル100Mに複数の非類似情報NIがある場合、これら非類似情報NIによって識別される複数の特徴モデルの各々について、形状データSDの特徴と整合しているか否か判定する。そして、プロセッサ32は、少なくとも1つの特徴モデルが形状データSDの特徴と不整合となっている場合、NOと判定する。
 ステップS44において、プロセッサ32は、上述のステップS22で取得したワーク100の位置データPDを無効にする。ここで、上述したように、本実施形態では、表1の検出結果データDTに格納された2番目の位置データPD3_2が、図8(c)に示すような不適切なマッチングの結果として得られている。この場合において、仮に、プロセッサ32が、後述するステップS25において、不整合の結果得られた位置データPD3_2を用いて、ロボット12にワーク100に対する作業を実行させた場合、該作業を高精度に実行できなくなる。
 そこで、本実施形態においては、プロセッサ32は、このステップS44において、後述のステップS25の制御に位置データPD3_2を用いることを避けるために、該位置データPD3_2を無効にする。一例として、プロセッサ32は、上述のステップS22で作成した検出結果データDTから、位置データPD3_2を削除する。
 他の例として、プロセッサ32は、検出結果データDTに格納されているワーク100の位置データPD3_2に、無効フラグFLを付与する。この場合、プロセッサ32は、後述するステップS25を実行するときに、検出結果データDTの位置データPD3_2を読み出したとき、該位置データPD3_2に付与された無効フラグFLを参照して、該位置データPD3_2を無視する。その結果、プロセッサ32は、ステップS25で、形状データSDとして検出されたワーク100に対する作業をキャンセルすることになる。
 このようにして、プロセッサ32は、このステップS44において、検出結果データDTに格納された位置データPD3_iを無効にし(例えば、削除するか、又は無効フラグFLを付与し)、これにより、後述のステップS25の制御に、不整合の結果として取得された位置データPD3_iを用いることを避けることができる。
 このように、本実施形態においては、プロセッサ32は、位置データPD3_iを取得するために形状データSDにマッチングさせたワークモデル100Mと該形状データSDとの間で不整合が生じている(つまり、ステップS43でNOと判定した)場合に、ステップS22で取得した位置データPD3_iを無効にする位置データ取消部60(図15)として機能する。
 ステップS45において、プロセッサ32は、この時点で設定されている位置データPDの番号「j」が、j=jMAXであるか否かを判定する。このjMAXは、ステップS22で取得した位置データPD3_iの総数である。プロセッサ32は、YESと判定した場合は、図19のフローを終了する一方、NOと判定した場合はステップS46へ進む。
 ステップS46において、プロセッサ32は、位置データPD3_iの番号「j」を、「1」だけインクリメントする(j=j+1)。そして、プロセッサ32は、ステップS42へ戻る。こうして、プロセッサ32は、ステップS45でYESと判定するまで、ステップS42~S46のループを繰り返し実行し、検出結果データDTに格納された位置データPD3_iのうち、不整合の結果として取得した位置データPD3_i(例えば、位置データPD3_2)を無効にする。
 再度、図16を参照し、ステップS24において、プロセッサ32は、位置データPD3_iを確定する。具体的には、プロセッサ32は、上述のステップS23を実行後の検出結果データDTを、後述のステップS25の制御に用いる正式な制御データとして確定し、メモリ34(例えば、RAM)に格納する。
 ステップS25において、プロセッサ32は、ステップS24で確定した検出結果データDTを参照し、ロボット12を動作させてワーク100に対する作業(ワークハンドリング、溶接、又はレーザ加工等)を実行する。仮に、上述のステップS44で、1番目の位置データPD3_1が無効にされなかった一方、2番目の位置データPD3_2が無効にされたとする。
 この場合、プロセッサ32は、検出結果データDTに格納された1番目の位置データPD3_1を参照し、ロボット12を動作させて、エンドエフェクタ28(すなわち、ツール座標系C2)を、該位置データPD3_1で示される位置及び姿勢(つまり、ロボット座標系C1の座標Q2(X2,Y2,Z2,W2,P2,R2))に位置決めし、該エンドエフェクタ28によって、形状データSDとして検出されたワーク100に対する作業を実行する。その一方で、プロセッサ32は、2番目の位置データPD3_2を取得した形状データSDとして検出されたワーク100に対する作業をキャンセルする。
 ステップS26において、プロセッサ32は、容器B内の全てのワーク100に対する作業を完了したか否かを判定する。プロセッサ32は、YESと判定した場合は、図16に示すフローを終了する一方、NOと判定した場合はステップS21へ戻る。こうして、プロセッサ32は、ステップS26でYESと判定するまで、ステップS21~S26のループを繰り返し実行し、ステップS21で形状検出センサ14が新たに検出した検出データDDを取得し、該新たな検出データDDに基づいて、ステップS22~S25を実行する。
 以上のように、本実施形態においては、プロセッサ32は、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、及び整合判定部62として機能して、ワークモデル100Mの非類似情報NIを取得する。
 したがって、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、及び整合判定部62は、非類似情報NIを取得するための装置86(図15)を構成する。
 この装置86においては、位置データ取得部58は、制御座標系C(ロボット座標系C1)の既知の位置に配置された形状検出センサ14が検出したワーク100の形状データSDにワークモデル100Mをマッチングすることで、該制御座標系Cにおける該ワーク100の位置データPD(具体的には、位置データPD0_i、PD1_i、PD2_i、PD3_i)を取得する(ステップS32、S33)。
 そして、位置データ取消部60は、位置データ取得部58が位置データPDを取得するために形状データSDにマッチングさせたワークモデル100Mと該形状データSDとの間で不整合が生じている(つまり、ステップS43でNOと判定した)場合に、該位置データ取得部58が取得した該位置データPDを無効にする(ステップS44)。
 この構成によれば、例えば図8(c)又は図10(c)に示すような不適切なマッチングの結果として取得された位置データPD3_iを用いてワーク100に対する作業(ステップS25)をロボット12に実行させるのを避けることができる。これにより、ステップS25で実行するロボット12の作業の精度を向上させることができる。
 また、装置86においては、整合判定部62は、位置データ取得部58が形状データSD(例えば、形状データSD)にワークモデル100M(例えば、ワークモデル100M)をマッチングすることで位置データPD(PD3_2)を取得したときに、非類似情報NI(NI1_2)によって識別される特徴モデル(端面モデル110M)が、該形状データSDに写る特徴と整合しているか否かを判定する(ステップS43)。
 そして、位置データ取消部60は、整合判定部62によって特徴モデル(110M)が形状データSDの特徴と不整合となっている(ステップS43でNO)と判定された場合に、位置データ取得部58が取得した位置データPD(PD3_2)を無効にする。この構成によれば、非類似情報NIによって識別される特徴モデルに注目して、位置データPDの取得時に不適切なマッチングが生じていたのか否かを検証できる。これにより、位置データPDの誤検出を高精度に発見できる。
 次に、図20を参照して、ロボットシステム10のさらに他の機能について説明する。図20に示すロボットシステム10は、図21に示すフローを実行する。なお、図21に示すフローにおいて、図14のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 図21のフローにおいては、ステップS7でYESと判定した場合、ステップS13において、プロセッサ32は、ワークモデル100Mに含まれる複数の特徴モデルについて求めた頻度αに基づいて、それぞれの該特徴モデルが、ステップS5でマッチングした形状データSDに写る特徴と類似の関係にあるか否かを判定する。
 具体的には、プロセッサ32は、上述のステップS6を実行する毎にワークモデル100Mの各々の特徴モデル(例えば、本体部モデル102M、側面モデル108M、端面モデル110M、及び凸部モデル106M)について求めた頻度αを所定の閾値αth2と比較する。
 そして、プロセッサ32は、1つの特徴モデルの頻度αが閾値αth2以上(α≧αth2)である場合に、該1つの特徴モデルが形状データSDの特徴と類似の関係にあると判定する。この閾値αth2は、上述の閾値αth1よりも大きい値に設定される。プロセッサ32は、ワークモデル100Mに含まれる少なくとも1つの特徴モデルが形状データSDの特徴と類似の関係にある場合はYESと判定し、ステップS14へ進む。一方、プロセッサ32は、ワークモデル100Mに含まれる全ての特徴モデルが形状データSDの特徴と類似の関係にない場合はNOと判定し、ステップS14へ進む。
 ステップS14において、プロセッサ32は、情報取得部46として機能して、ワークモデル100Mに含まれる複数の特徴モデルのうち、直前のステップS13で類似の関係にあると判定した特徴モデルについて類似情報SIを取得する。例えば、直前のステップS13で、図22(a)に示す第2の姿勢OR(換言すれば、番号「n」=2)のワークモデル100Mについて、該ワークモデル100Mの本体部モデル102Mが、図22(b)に示す第1の姿勢ORのワーク100の本体部102を写す形状データSDと類似の関係にあると判定されたとする。
 この場合、プロセッサ32は、第2の姿勢ORのワークモデル100Mに含まれる本体部モデル102Mについて、第1の姿勢ORのワーク100の本体部102と類似関係にあることを識別する類似情報SI2_1を取得する。ここで、本実施形態においては、この類似情報SI2_1は、第2の姿勢ORのワークモデル100Mの本体部モデル102Mと、第1の姿勢ORのワークモデル100Mの本体部モデル102Mとを類似関係として紐付ける紐付情報I2_1を含む。
 一例として、オペレータは、表示装置40に表示された、ステップS5でのワークモデル100Mと形状データSDとのマッチング結果を目視で確認することで、第2の姿勢ORのワークモデル100Mの本体部モデル102Mが、第1の姿勢ORのワークモデル100Mの本体部モデル102Mと類似関係にあることを認識する。そして、オペレータは、入力装置42を操作して、上述の紐付情報I2_1を、手動でプロセッサ32に入力してもよい。
 他の例として、ステップS3で上述のシミュレーションSLを実行することで得られた検出データDDに基づいて直近のステップS5を実行した場合、プロセッサ32は、ステップS5でのマッチング結果から、紐付情報I2_1を自動で取得することもできる。シミュレーションSLの場合、仮想空間に配置したワーク100(例えば、ワークモデル100M)の位置及び姿勢は既知であるので、プロセッサ32は、第2の姿勢ORのワークモデル100Mの本体部モデル102Mと、第1の姿勢ORのワークモデル100Mの本体部モデル102Mとが類似関係にあることを自動で認識できる。
 一方、直前のステップS13で、図23(a)に示す第4の姿勢OR(換言すれば、番号「n」=4)のワークモデル100Mについて、該ワークモデル100Mの本体部モデル102Mが、図23(b)に示す第1の姿勢ORのワーク100の本体部102を写す形状データSDと類似の関係にあると判定されたとする。
 この場合、プロセッサ32は、第4の姿勢ORのワークモデル100Mに含まれる本体部モデル102Mについて、第1の姿勢ORのワーク100の本体部102と類似関係にあることを識別する類似情報SI4_1を取得する。この類似情報SI4_1は、第4の姿勢ORのワークモデル100Mの本体部モデル102Mと、第1の姿勢ORのワークモデル100Mの本体部モデル102Mとを類似関係として紐付ける紐付情報I4_1を含む。ステップS14の後、プロセッサ32は、ステップS8に進む。
 図21のフローを実行した後(すなわち、すなわち、類似情報SI及び非類似情報NIの取得後)、プロセッサ32は、図16に示すフローを実行する。ここで、本実施形態で実行される図16のフローは、上述した実施形態と、ステップS23において相違する。以下、図24を参照して、本実施形態で実行するステップS23について説明する。なお、図24に示すフローにおいて、図19のフローと同様のプロセスには同じステップ番号を付し、重複する説明を省略する。
 図24に示すフローにおいては、プロセッサ32は、ステップS42でNOと判定するか、又は、ステップS43でYESと判定した場合、ステップS47へ進む。ステップS47において、プロセッサ32は、j番目の位置データPD3_iの取得のためのマッチングに用いられたワークモデル100Mについて類似情報SIが取得されているか否かを判定する。
 一例として、この時点で位置データPDの番号「j」が、j=1にセットされ、且つ、表1の検出結果データDTに格納された1番目(つまり、番号j=1)の位置データPD3_1が、図23(c)に示すように、第4の姿勢ORのワークモデル100Mが形状データSDに不適切にマッチングされた結果として得られていたとする。このワークモデル100Mについては非類似形状NIが取得されていないので、プロセッサ32は、ステップS42でNOと判定し、このステップS47を実行する。
 この場合、プロセッサ32は、1番目の位置データPD3_1の取得のために用いられたワークモデル100Mについて、上述のステップS14で本体部モデル102Mを識別する類似情報SI4_1が取得されていることを認識できる。よって、この場合、プロセッサ32は、YESと判定する。
 他の例として、この時点でj=1にセットされ、且つ、1番目の位置データPD3_1が、図22(c)に示すように、第2の姿勢ORのワークモデル100Mが形状データSDに不適切にマッチングされた結果として得られていたとする。また、このワークモデル100Mの凸部モデル106Mについて、第3の姿勢ORのワーク100(図10(b))の特徴とは非類似の関係にあることを識別するための非類似情報NI2_3が取得されていたとする。
 この場合、プロセッサ32は、ステップS42でYESと判定することになる。また、図22(c)に示すように、非類似情報NI2_3で識別されるワークモデル100Mの凸部モデル106Mは、第1の姿勢ORのワーク100の形状データSDに写る特徴(つまり、凸部106)と整合している。したがって、プロセッサ32は、ステップS43でYESと判定することになる。
 この場合、プロセッサ32は、このステップS47において、1番目の位置データPD3_1の取得のために用いられたワークモデル100Mについて、上述のステップS14で本体部モデル102Mを識別する類似情報SI2_1が取得されていることを認識できる。よって、この場合、プロセッサ32は、YESと判定する。
 プロセッサ32は、YESと判定した場合は、ステップS48へ進む。一方、プロセッサ32は、j番目の位置データPD3_iの取得のために用いられたワークモデル100Mについて類似情報SIが取得されていない場合はNOと判定し、ステップS45へ進む。
 ステップS48において、プロセッサ32は、類似情報SIに基づいて、j番目の位置データPD3_iの取得のために用いられたワークモデル100Mとは別のワークモデル100Mを、上述のステップS1で取得した複数のワークモデル100Mの中から選択する。
 例えば、上述したように、1番目の位置データPD3_1の取得時に図22(c)に示す不適切なマッチングが行われた場合、プロセッサ32は、第2の姿勢ORのワークモデル100Mの本体部モデル102Mについて取得された類似情報SI2_1を参照する。プロセッサ32は、この類似情報SI2_1から、1番目の位置データPD3_1の取得時に用いられたワークモデル100Mの本体部モデル102Mが、第1の姿勢ORのワーク100の本体部102と類似関係にあることを認識できる。
 そして、プロセッサ32は、この類似情報SI2_1に含まれる紐付情報I2_1を参照し、第2の姿勢ORのワークモデル100Mの本体部モデル102Mと類似関係にある特徴モデルを含むワークモデル100Mとして、複数のワークモデル100Mの中から、第1の姿勢ORのワークモデル100Mを選択する。
 又は、上述したように、1番目の位置データPD3_1の取得時に図23(c)に示す不適切なマッチングが行われた場合、プロセッサ32は、第4の姿勢ORのワークモデル100Mの本体部モデル102Mについて取得された類似情報SI4_1を参照する。そして、プロセッサ32は、この類似情報SI4_1に含まれる紐付情報I4_1を参照し、第4の姿勢ORのワークモデル100Mの本体部モデル102Mと類似関係にある特徴モデルを含むワークモデル100Mとして、複数のワークモデル100Mの中から、第1の姿勢ORのワークモデル100Mを選択する。
 このように、プロセッサ32は、形状データSDにワークモデル100M又は100Mをマッチングすることで位置データPD3_1を取得したときに、類似情報SI2_1又はSI4_1によって特徴モデル102Mが類似の関係にあると識別される特徴(本体部102)に対応する特徴モデル102Mを含むワークモデル100Mを、複数のワークモデル100Mの中から選択する。したがって、プロセッサ32は、複数のワークモデル100Mの中からワークモデル100Mを選択するモデル選択部64(図20)として機能する。
 ステップS49において、プロセッサ32は、位置データ取得部58として機能して、所定のマッチングアルゴリズムに従って、直前のステップS48で選択したワークモデル100Mを、j番目の位置データPD3_iを取得した形状データSDに、再度マッチングする。例えば、上述した図22(c)又は図23(c)の例の場合、プロセッサ32は、直前のステップS48で選択したワークモデル100Mを、形状データSDにマッチングさせる。
 ステップS50において、プロセッサ32は、整合判定部62として機能し、直前のステップS49でマッチングしたワークモデル100Mに含まれる特徴モデルのうち、非類似情報NIによって識別される特徴モデルが、j番目の位置データPD3_iを取得した形状データSDに写る特徴と整合しているか否かを判定する。
 例えば、直前のステップS49でワークモデル100Mを形状データSDにマッチングした場合、プロセッサ32は、該ワークモデル100Mにおいて非類似情報NI1_2によって識別される端面モデル110Mが、形状データSDに写る特徴と整合しているか否かを判定する。
 具体的には、プロセッサ32は、端面モデル110Mと形状データSDの特徴との一致度γ”を取得し、一致度γ”が所定の閾値γth”を超えていた場合(γ”>γth”、又は、γ”<γth”)に、非類似情報NI1_2によって識別される端面モデル110Mが形状データSDに写る特徴と整合している(すなわち、YES)と判定する。
 ワークモデル100Mを形状データSDにマッチングした場合(例えば、図18を参照)、プロセッサ32は、このステップS50でYESと判定することになる。プロセッサ32は、YESと判定した場合は、ステップS44へ進み、位置データ取消部60として機能して、上述のステップS22で取得した1番目の位置データPD3_1を無効にする。
 ここで、このステップS50でYESと判定した場合、ステップS22で取得した1番目の位置データPD3_1の取得時に実行したマッチングが不適切(図22(c)又は図23(c))である一方、ステップS49で実行したマッチングが適切だったことを意味している。
 よって、プロセッサ32は、ステップS50でYESと判定した場合、ステップS44を実行して、ステップS22で取得した1番目の位置データPD3_1を無効にする。一方、プロセッサ32は、ステップS50において、非類似情報NIによって識別される特徴モデルが形状データSDに写る特徴と整合していない場合はNOと判定し、ステップS45へ進む。
 このように、本実施形態においては、プロセッサ32は、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、整合判定部62、及びモデル選択部64として機能して、ワークモデル100Mの非類似情報NIを取得する。
 したがって、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、整合判定部62、及びモデル選択部64は、非類似情報NIを取得するための装置88(図20)を構成する。
 この装置88においては、情報取得部46は、第2の姿勢OR(又は第4の姿勢OR)のワークモデル100M(又は100M)において、第1の姿勢ORのワーク100の特徴(本体部102)と類似の関係にある特徴モデル(本体部モデル102M)を識別するための類似情報SI2_1(又はSI4_1)を取得する(ステップS14)。
 そして、モデル選択部64は、位置データ取得部58が形状データSDにワークモデル100M(又は100M)をマッチングすることで位置データPD3_1を取得したときに、類似情報SI2_1(又はSI4_1)によって特徴モデル102Mが類似の関係にあると識別される特徴(本体部102)に対応する特徴モデル102Mを含む第1の姿勢ORのワークモデル100Mを、複数のワークモデル100Mの中から選択する(ステップS48)。
 また、整合判定部62は、位置データ取得部58が、モデル選択部64によって選択されたワークモデル100Mを形状データSDに再度マッチングしたときに(ステップS49)、非類似情報NI1_2によって識別される特徴モデル(端面モデル110M)が、該形状データデータSDに写る特徴(端面110)と整合しているか否かを判定する(ステップS50)。
 そして、位置データ取消部60は、整合判定部62によって特徴モデル110Mが特徴110と整合している(すなわち、ステップS50でYES)と判定された場合に、位置データ取得部58が取得した位置データPD3_1を無効にする(ステップS44)。この構成によれば、仮に、上述のステップS22で、図22(c)又は図23(c)のような不適切なマッチングによって位置データPD3_iが取得された場合に、該位置データPD3_iが上述のステップS25の制御に用いられることを避けることができる。
 なお、プロセッサ32は、ステップS50でYESと判定したときに、位置データ取得部58として機能して、形状データSDに再度マッチングしたワークモデル100Mの位置データPD3_1’を取得してもよい。そして、プロセッサ32は、その後のステップS44で元の位置データPD3_1を無効にする一方、新たに取得した位置データPD3_1’を検出結果データDTに追加してもよい。
 なお、ステップS22の結果、1つの形状データSDに対し、複数の位置データPDが取得される場合がある。例えば、プロセッサ32は、ステップS22において、図22(b)に示す形状データSDに対し、第1の姿勢ORのワークモデル100M(図3)をマッチングすることで、位置データPD3_1_1を取得する。
 これとともに、プロセッサ32は、ステップS22において、図22(b)に示す形状データSDに対し、図22(a)に示す第2の姿勢ORのワークモデル100Mをマッチングすることで、位置データPD3_1_2を取得し得る。このように、1つの形状データSDに対して複数の位置データPD3_1_1及びPD3_1_2を取得した場合の検出結果データDTのデータ構造の例を、以下の表2に示す。
 この場合、検出データDDに写る形状データSDの総数iと、ステップS22で取得した位置データPD3_iの総数jとは、異なり得る(i<j)。この場合、プロセッサ32は、図24のフローを実行することで、図22(c)に示す不適切なマッチングの結果得られた位置データPD3_1_2を無効にする。その一方で、プロセッサ32は、適切なマッチングの結果得られた位置データPD3_1_1を維持することになる。
 なお、プロセッサ32は、図12、図14、図16、図17、図19、図21又は図24に示すフローを、メモリ34に予め記憶されたコンピュータプログラムPGに従って実行してもよい。また、プロセッサ32が実行する装置80、82、84、86又は88(すなわち、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、整合判定部62、モデル選択部64)の機能は、コンピュータプログラムPGにより実現される機能モジュールであってもよい。
 また、図12、図14、図16、図17、図19、図21又は図24に示すフローに、種々の変更を加えることができる。例えば、上述の実施形態においては、図16のフローにおいて、プロセッサ32は、ステップS22(より具体的には、ステップS34)の後に、ステップS23を実行する場合について述べた。
 しかしながら、これに限らず、プロセッサ32は、図17中のステップS32又はS33の後に、ステップS23を実行してもよい。例えば、ステップS32の後にステップS23を実行する場合、プロセッサ32は、該ステップS32で取得した初期位置データPD1_iに基づいて、図19のステップS41~S45、又は、図24のステップS41~S50を実行する。そして、ステップS43でNOと判定(又は、S50でYESと判定)したときに、ステップS44で初期位置データPD1_iを無効にする。
 また、上述したステップS32の粗探索RS、及びステップS33の密探索PSは、ワーク100の位置データPDを取得する方法の一例であって、粗探索RS又は密探索PRに、如何なる修正を加えてもよいし、粗探索RS及び密探索PRを実行しない他の如何なる方法によってワーク100の位置データPDを取得してもよい。
 また、図12、図14又は図21のフローから、ステップS2を省略してもよい。この場合、装置82、84、86又は88から、特徴抽出部48を省略できる。また、図21のフローから、ステップS12を省略してもよい。装置88から不整合判定部56を省略できる。
 また、図12、図14又は図21のステップS5において、プロセッサ32は、上述のステップS32(粗探索RS)又はステップS33(密探索PS)と同様のモデルマッチングを実行してもよい。また、図12、図14又は図21のステップS6において、プロセッサ32は、一致度βに加えて、一致度γ、平面割合δ、及び露出率ε等の検出結果パラメータPMを加味して、頻度αを求めてもよい。例えば、プロセッサ32は、ステップS6において、一致度βが閾値βth1を超えるとともに、検出結果パラメータPMが所定の基準を満たしている(例えば、基準値を超えている)場合に、頻度αを求めてもよい。
 また、図12、図14又は図21のステップS3においては、形状検出センサ14は、必ずしも制御座標系C(具体的には、ロボット座標系C1)の既知の位置に配置されずともよい。そして、プロセッサ32は、任意の位置に配置された形状検出センサ14が、様々な姿勢ORのワーク100を、1つずつ繰り返し撮像した検出データDDを取得し、各々の検出データDDに対してステップS5のマッチングを実行してもよい。以上のように、図12、図14、図16、図17、図19、図21又は図24に示すフローには種々の変更を加えることができる。
 また、上述の実施形態においては、装置80、82、84、86及び88(すなわち、モデル取得部44、情報取得部46、特徴抽出部48、モデルマッチング実行部50、頻度演算部52、類似判定部54、不整合判定部56、位置データ取得部58、位置データ取消部60、整合判定部62、モデル選択部64)の機能が、制御装置16に実装されている場合について述べた。
 しかしながら、これに限らず、装置80、82、84、86又は88の機能は、例えば、ロボット12にステップS25の作業のための動作を教示する教示装置(教示ペンダント、又はタブレット型携帯端末等)、又はPC等、他の如何なるコンピュータに実装されてもよい。この場合、教示装置又はPC等のコンピュータのプロセッサが、装置80、82、84、86又は88として機能する。
 なお、上述の実施形態においては、形状検出センサ14は、エンドエフェクタ28(又は、手首フランジ26b)に固定され、ロボット12によって移動される場合について述べた。しかしながら、これに限らず、形状検出センサ14は、制御座標系C(ロボット座標系C1)の既知の位置に、例えば支持構造を用いて、固定されてもよい。
 また、形状検出センサ14は、3次元視覚センサに限らず、物体の3次元形状を検出可能なレーザスキャナでもよい。又は、形状検出センサ14は、2次元カメラと、被写体までの距離dを測定可能な測距センサとを有してもよい。また、形状検出センサ14が検出する検出データDDは、図6に示すような3次元点群画像データに限らず、2次元カメラが撮像した2次元画像データと、測距センサが測定した距離dとのデータセットを含むものであってもよいし、他の如何なるタイプの画像データ(例えば、距離画像データ)であってもよい。
 また、ロボット12は、垂直多関節ロボットに限らず、水平多関節ロボット、パラレルリンクロボット等、如何なるタイプのロボットであってもよい。以上、実施形態を通じて本開示を説明したが、上述の実施形態は、特許請求の範囲に係る発明を限定するものではない。
 10  ロボットシステム
 12  ロボット
 14  形状検出センサ
 16  制御装置
 32  プロセッサ
 44  モデル取得部
 46  情報取得部
 48  特徴抽出部
 50  モデルマッチング実行部
 52  頻度演算部
 54  類似判定部
 56  不整合判定部
 58  位置データ取得部
 60  位置データ取消部
 62  整合判定部
 64  モデル選択部
 100  ワーク
 100M  ワークモデル

Claims (12)

  1.  複数の姿勢のワークをそれぞれモデル化した複数のワークモデルを取得するモデル取得部であって、前記ワークモデルは、前記ワークの視覚的な特徴に対応する特徴モデルを含む、モデル取得部と、
     1つの前記姿勢の第1の前記ワークモデルにおいて、他の前記姿勢の前記ワークの前記特徴とは非類似の関係にある第1の前記特徴モデルを識別するための非類似情報を取得する情報取得部と、を備える、装置。
  2.  各々の前記ワークモデルから、該ワークモデルに含まれる複数の前記特徴モデルを抽出し、抽出した各々の該特徴モデルに識別コードを付与する特徴抽出部をさらに備え、
     前記情報取得部は、前記第1の特徴モデルに付与された前記識別コードと関連付けて、前記非類似情報を取得する、請求項1に記載の装置。
  3.  形状検出センサが検出した前記ワークの形状データに前記ワークモデルをマッチングさせるモデルマッチング実行部と、
     前記モデルマッチング実行部が、複数の姿勢の前記形状データに前記第1のワークモデルをそれぞれマッチングさせたときに、該第1のワークモデルに含まれる前記特徴モデルが、各々の該形状データに写る前記特徴と整合する頻度を求める頻度演算部と、
     前記頻度演算部が、前記第1のワークモデルに含まれる複数の前記特徴モデルについて求めた前記頻度に基づいて、それぞれの該特徴モデルが前記非類似の関係にあるか否かを判定する類似判定部と、をさらに備え、
     前記情報取得部は、前記第1のワークモデルに含まれる前記複数の特徴モデルのうち、前記類似判定部によって前記非類似の関係にあると判定された前記第1の特徴モデルについて前記非類似情報を取得する、請求項1又は2に記載の装置。
  4.  前記類似判定部は、前記頻度演算部が求めた前記頻度が所定の閾値以下である場合に、前記特徴モデルが前記非類似の関係にあると判定する、請求項3に記載の装置。
  5.  前記モデルマッチング実行部が前記第1のワークモデルを用いて前記マッチングを実行したときに、該第1のワークモデルに含まれる少なくとも1つの前記特徴モデルと、前記形状データに写る前記特徴との間で不整合が生じているか否かを判定する不整合判定部をさらに備え、
     前記頻度演算部は、前記不整合判定部によって前記不整合が生じていると判定された場合に、前記少なくとも1つの特徴モデルとは別の前記特徴モデルが前記特徴と整合する前記頻度を求める、請求項3又は4に記載の装置。
  6.  前記モデルマッチング実行部は、
      実空間において前記形状検出センサが前記ワークの形状を実際に検出した前記形状データを用いて前記マッチングを実行するか、又は、
      仮想空間において前記形状検出センサが前記ワークの形状を模擬的に検出するシミュレーションによって取得された前記形状データを用いて前記マッチングを実行する、請求項3~5のいずれか1項に記載の装置。
  7.  制御座標系の既知の位置に配置された形状検出センサが検出した前記ワークの形状データに前記ワークモデルをマッチングすることで、該制御座標系における該ワークの位置データを取得する位置データ取得部と、
     前記位置データ取得部が前記位置データを取得するために前記形状データにマッチングさせた前記ワークモデルと該形状データとの間で不整合が生じている場合に、該位置データ取得部が取得した該位置データを無効にする位置データ取消部と、をさらに備える、請求項1~6のいずれか1項に記載の装置。
  8.  前記位置データ取得部が前記形状データに前記第1のワークモデルをマッチングすることで第1の前記位置データを取得したときに、前記非類似情報によって識別される前記第1の特徴モデルが、該形状データに写る前記特徴と整合しているか否かを判定する整合判定部をさらに備え、
     前記位置データ取消部は、前記整合判定部によって前記第1の特徴モデルが前記特徴と不整合となっていると判定された場合に、前記位置データ取得部が取得した前記第1の位置データを無効にする、請求項7に記載の装置。
  9.  前記情報取得部は、前記他の姿勢の第2の前記ワークモデルにおいて、前記1つの姿勢の前記ワークの前記特徴と類似の関係にある第2の前記特徴モデルを識別するための類似情報をさらに取得し、
     前記装置は、
      前記位置データ取得部が前記形状データに前記第2のワークモデルをマッチングすることで第2の前記位置データを取得したときに、前記類似情報によって前記第2の特徴モデルが前記類似の関係にあると識別される前記特徴に対応する前記特徴モデルを含む前記第1のワークモデルを、前記複数のワークモデルの中から選択するモデル選択部と、
      前記位置データ取得部が、前記モデル選択部によって選択された前記第1のワークモデルを前記形状データに再度マッチングしたときに、前記非類似情報によって識別される前記第1の特徴モデルが、該形状データに写る前記特徴と整合しているか否かを判定する整合判定部と、をさらに備え、
     前記位置データ取消部は、前記整合判定部によって前記第1の特徴モデルが前記特徴と整合していると判定された場合に、前記位置データ取得部が取得した前記第2の位置データを無効にする、請求項7に記載の装置。
  10.  請求項1~9のいずれか1項に記載の装置を備え、前記ワークに対して所定の作業を実行するロボットの動作を制御する制御装置。
  11.  ワークに対して所定の作業を実行するロボットと、
     前記ワークの形状を検出する形状検出センサと、
     請求項1~9のいずれか1項に記載の装置と、を備える、ロボットシステム。
  12.  プロセッサが、
      複数の姿勢のワークをそれぞれモデル化した複数のワークモデルであって、前記ワークの視覚的な特徴に対応する特徴モデルを各々含む、複数のワークモデルを取得し、
      1つの前記姿勢の第1の前記ワークモデルにおいて、他の前記姿勢の前記ワークの前記特徴とは非類似の関係にある第1の前記特徴モデルを識別するための非類似情報を取得する、方法。
PCT/JP2022/031754 2022-08-23 2022-08-23 装置、ロボットの制御装置、ロボットシステム、方法 WO2024042619A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/031754 WO2024042619A1 (ja) 2022-08-23 2022-08-23 装置、ロボットの制御装置、ロボットシステム、方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/031754 WO2024042619A1 (ja) 2022-08-23 2022-08-23 装置、ロボットの制御装置、ロボットシステム、方法

Publications (1)

Publication Number Publication Date
WO2024042619A1 true WO2024042619A1 (ja) 2024-02-29

Family

ID=90012734

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/031754 WO2024042619A1 (ja) 2022-08-23 2022-08-23 装置、ロボットの制御装置、ロボットシステム、方法

Country Status (1)

Country Link
WO (1) WO2024042619A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004333422A (ja) * 2003-05-12 2004-11-25 Fanuc Ltd 画像処理装置
JP2007245283A (ja) * 2006-03-15 2007-09-27 Nissan Motor Co Ltd ワーク姿勢検知装置、ワーク姿勢検知方法、ピッキングシステム、およびピッキング方法
JP2018144161A (ja) * 2017-03-03 2018-09-20 株式会社キーエンス ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2019185239A (ja) * 2018-04-05 2019-10-24 オムロン株式会社 物体認識処理装置及び方法、並びに、物体ピッキング装置及び方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004333422A (ja) * 2003-05-12 2004-11-25 Fanuc Ltd 画像処理装置
JP2007245283A (ja) * 2006-03-15 2007-09-27 Nissan Motor Co Ltd ワーク姿勢検知装置、ワーク姿勢検知方法、ピッキングシステム、およびピッキング方法
JP2018144161A (ja) * 2017-03-03 2018-09-20 株式会社キーエンス ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器
JP2019185239A (ja) * 2018-04-05 2019-10-24 オムロン株式会社 物体認識処理装置及び方法、並びに、物体ピッキング装置及び方法

Similar Documents

Publication Publication Date Title
JP5245938B2 (ja) 3次元認識結果の表示方法および3次元視覚センサ
CA3016539C (en) Image processing method, display device, and inspection system
US10456918B2 (en) Information processing apparatus, information processing method, and program
JP5257335B2 (ja) 3次元視覚センサにおける計測有効領域の表示方法および3次元視覚センサ
JP5471355B2 (ja) 3次元視覚センサ
JP3242108B2 (ja) ターゲットマークの認識・追跡システム及び方法
JP5852364B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
JP5835926B2 (ja) 情報処理装置、情報処理装置の制御方法、およびプログラム
US11654571B2 (en) Three-dimensional data generation device and robot control system
JP6632208B2 (ja) 情報処理装置、情報処理方法、プログラム
JP6054831B2 (ja) 画像処理装置、画像処理方法及び画像処理プログラム
EP2738515B1 (en) Measuring system, method and computer program product
JP2011185650A (ja) モデル作成装置およびモデル作成プログラム
JP2009053147A (ja) 3次元計測方法および3次元計測装置
JP2020047049A (ja) 画像処理装置及び画像処理方法
JP5858773B2 (ja) 3次元計測方法、3次元計測プログラム及びロボット装置
JP5762099B2 (ja) 姿勢認識装置、作業ロボット、姿勢認識方法、プログラム及び記録媒体
JP5083715B2 (ja) 三次元位置姿勢計測方法および装置
WO2024042619A1 (ja) 装置、ロボットの制御装置、ロボットシステム、方法
JP7439410B2 (ja) 画像処理装置、画像処理方法およびプログラム
US20230405850A1 (en) Device for adjusting parameter, robot system, method, and computer program
JP3516668B2 (ja) 3次元形状認識方法、装置およびプログラム
JP2015062017A (ja) モデル作成装置、モデル作成プログラム、および画像認識システム
WO2023248353A1 (ja) ワークの位置データを取得する装置、制御装置、ロボットシステム、方法、及びコンピュータプログラム
CN109491327B (zh) 三维模型制作装置

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 22956447

Country of ref document: EP

Kind code of ref document: A1