WO2021095521A1 - 設定装置、設定方法およびプログラム - Google Patents

設定装置、設定方法およびプログラム Download PDF

Info

Publication number
WO2021095521A1
WO2021095521A1 PCT/JP2020/040349 JP2020040349W WO2021095521A1 WO 2021095521 A1 WO2021095521 A1 WO 2021095521A1 JP 2020040349 W JP2020040349 W JP 2020040349W WO 2021095521 A1 WO2021095521 A1 WO 2021095521A1
Authority
WO
WIPO (PCT)
Prior art keywords
end effector
model
point
orientation
position vector
Prior art date
Application number
PCT/JP2020/040349
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 オムロン株式会社
Publication of WO2021095521A1 publication Critical patent/WO2021095521A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators

Definitions

  • This disclosure relates to a setting device, a setting method and a program.
  • a robot equipped with an end effector that picks a target work from a plurality of objects (hereinafter, also referred to as “work") is known.
  • the position and orientation of the end effector (hereinafter, also referred to as “grasping position and orientation”) when picking the work is registered in advance.
  • the control system controls the robot based on the pre-registered gripping position / posture and the position / posture of the work.
  • Patent Document 1 discloses a robot setting device that sets a gripping position / posture in a state where a work model that virtually represents a three-dimensional shape of a work is displayed in an image display area. doing. Specifically, the gripping position / posture corresponds to the input in the designation field for designating the X coordinate, the Y coordinate, the Z coordinate, the R x rotation angle, the R y rotation angle, and the R z rotation angle indicating the gripping position / posture. Is set.
  • the present invention has been made in view of the above problems, and an object of the present invention is to provide a setting device, a setting method, and a program capable of easily setting the position and orientation of an end effector for picking an object.
  • the setting device for setting the position / orientation candidate of the end effector when the end effector of the robot picks the work includes a reception unit, a calculation unit, a determination unit, and a registration unit.
  • the reception unit accepts the designation of the first point and the second point on the work model indicated by the first CAD data that defines the three-dimensional shape of the work.
  • the calculation unit starts from a point defined from the first point and the second point, has a first position vector having the same direction as the direction from the first point to the second point, and the first point and the second point in the work model.
  • the second position vector defined from the normal vector of the point is calculated.
  • the determination unit has a relative positional relationship between the first reference position vector and the second reference position vector, and the first position vector and the second position vector, which are predetermined with respect to the end effector model showing the three-dimensional shape of the end effector.
  • the position and orientation of the end effector model are determined so as to approach a predetermined first reference relationship.
  • the registration unit registers the position / posture determined by the determination unit as a position / posture candidate.
  • the user can set the position / orientation candidate of the end effector when picking the work only by designating the first point and the second point on the work model. That is, the position and orientation of the end effector when picking the work is easily set.
  • the calculation unit further calculates the third position vector represented by the outer product of the first position vector and the second position vector.
  • the determination unit the relative positional relationship between the first reference position vector and the second reference position vector and the first position vector and the second position vector approaches the first reference relationship, and the end effector model is determined in advance. 3 The position and orientation of the end effector model are determined so that the relative positional relationship between the reference position vector and the third position vector approaches a predetermined second reference relationship.
  • the determination unit can determine the position / orientation of the end effector model that can be registered as a position / orientation candidate in consideration of the relative positional relationship between the third position vector and the third reference position vector.
  • the calculation unit may further calculate the third position vector orthogonal to the first position vector. Even in this case, the determination unit determines that the relative positional relationship between the first reference position vector and the second reference position vector and the first position vector and the second position vector approaches the first reference relationship and that the end effector model is in advance. The position and orientation of the end effector model are determined so that the relative positional relationship between the predetermined third reference position vector and the third position vector approaches the predetermined second reference relationship.
  • the end effector model is represented by the second CAD data that defines the three-dimensional shape of the end effector. According to the above disclosure, the user does not have to create an end effector model.
  • the setting device further includes a model creation unit that creates an end effector model according to an input instruction.
  • the model creation unit sets the first reference position vector and the second reference position vector. According to the above disclosure, the user can freely create an end effector model using the model creation unit.
  • the end effector has rotational symmetry.
  • the model creation unit sets the axis of rotational symmetry in the end effector model and the minimum rotational angle ⁇ that overlaps with itself.
  • the registration unit further registers the position / orientation of the end effector model rotated by n times the minimum rotation angle ⁇ about the axis of rotational symmetry from the position / orientation determined by the determination unit as a position / orientation candidate.
  • n is an integer greater than or equal to 1 and less than 360 ° / ⁇ .
  • the work can be gripped even if the end effector is rotated by n times the minimum rotational angle ⁇ with respect to the axis of rotational symmetry.
  • the position / orientation of the end effector model rotated by n times the minimum rotation angle ⁇ about the axis of rotational symmetry from the position / orientation determined by the determination unit is also automatically registered as a gripping point candidate. This reduces the time and effort required for the user to register the gripping point candidate.
  • the setting device further includes a display control unit for displaying the work model on the screen of the display device.
  • the reception unit receives the first point and the second point based on the position specified on the screen.
  • the user can specify the first point and the second point at a desired position on the work model while looking at the work model displayed on the screen.
  • the display control unit displays the coordinate axes based on the work model on the screen, and changes the position and orientation of the work model displayed on the screen according to the operation on the work model.
  • the user can change the position and orientation of the work model to a desired state so that the first point and the second point can be easily specified while looking at the coordinate axes based on the work model.
  • the display control unit superimposes and displays the end effector model of the position and orientation determined by the determination unit on the work model on the screen.
  • the determination unit accepts at least one operation of translational movement along a predetermined direction and rotational movement about a rotation axis parallel to the predetermined direction, and the position and orientation determined according to the operation. To adjust.
  • the display control unit displays an axis indicating a predetermined direction on the screen.
  • the user can easily adjust the position / orientation of the end effector model to a desired state while looking at the first reference position vector and the second reference position vector.
  • the display control unit displays the axial direction of the coordinate system of the end effector model on the screen.
  • the user can easily adjust the position and orientation of the end effector model to a desired state while looking at the axial direction of the coordinate system of the end effector model.
  • the display control unit displays a guide surface having a predetermined shape in contact with the tip of the end effector model on the screen.
  • the end effector has two fingers.
  • the guide surface is a cylindrical shape whose diameter is a line segment connecting two points corresponding to the tips of two fingers in the end effector model, or a square cylinder whose cross section is a circular circumscribing square whose diameter is a line segment. The shape.
  • the end effector is a suction hand having one or more vacuum pads.
  • the guide surface is a planar shape including the tip surface of the part corresponding to one or more vacuum pads in the end effector model.
  • the user can easily grasp the relative positional relationship between the tip of the end effector model and the work model by displaying the guide surface.
  • the setting device further includes a determination unit that determines interference between the end effector model of the position and orientation determined by the determination unit and the work model.
  • the display control unit superimposes the end effector model of the position and orientation determined by the determination unit on the work model and displays it on the screen, and responds to the determination by the determination unit that the end effector model is interfering with the end effector model. Change the display format.
  • the user can easily grasp that the end effector model and the work model are interfering with each other.
  • the setting device further includes a determination unit that determines interference between the end effector model of the position and orientation determined by the determination unit and the work model.
  • the registration unit deletes the position / posture determined to be interfering by the determination unit from the position / posture candidates.
  • the method of setting the position / orientation candidate of the end effector when the end effector of the robot picks the work includes the first to fourth steps.
  • the first step is a step of accepting the designation of the first point and the second point on the work model represented by the first CAD data that defines the three-dimensional shape of the work.
  • the second step starts from the first point and the point defined from the second point, and has the same direction as the direction from the first point to the second point, the first position vector, the first point in the work model, and the second point. This is a step of calculating the second position vector defined from the normal vector of the second point.
  • the third step is the relative position between the first reference position vector and the second reference position vector, and the first position vector and the second position vector, which are predetermined with respect to the end effector model showing the three-dimensional shape of the end effector.
  • This is a step of determining the position and orientation of the end effector model so that the relationship approaches a predetermined reference relationship.
  • the fourth step is a step of registering the determined position / posture as a position / posture candidate.
  • the program causes a computer to execute the above setting method.
  • the position and orientation of the end effector for picking the object can be easily set.
  • the position and orientation of the end effector for picking an object can be easily set.
  • FIG. 1 It is the schematic which shows the overall structure of the control system which concerns on embodiment. It is the schematic which shows an example of the hardware configuration of the image processing apparatus shown in FIG. It is a block diagram which shows an example of the functional structure of the image processing apparatus shown in FIG. It is a figure which shows an example of the model creation screen for supporting the creation of an end effector model. It is a figure which shows an example of the model creation screen displayed during the creation of an end effector model. It is a figure which shows another example of the model creation screen which is displayed during the creation of an end effector model. It is a figure which shows an example of the model creation screen at the time of setting various parameters about an end effector model. It is a figure which shows three end effector models of stroke widths different from each other.
  • FIG. 1 is a schematic view showing an overall configuration of a control system according to an embodiment.
  • the control system SYS illustrated in FIG. 1 is incorporated in a production line or the like, and performs pick-and-place control for a work 1 which is an object bulkly piled up in a container 5.
  • the position and orientation of the work 1 in the container 5 are random.
  • the control system SYS illustrated in FIG. 1 includes an image processing device 100, a robot controller 200, a robot 300, and a measurement head 400.
  • a display device 150 and an input device 160 are connected to the image processing device 100.
  • the display device 150 typically comprises a liquid crystal display and displays various screens.
  • the input device 160 includes, for example, a keyboard and a mouse.
  • the display device 150 and the input device 160 may be integrated to form a touch panel.
  • Robot 300 picks and places work 1.
  • the robot 300 includes an end effector 301 for holding the work 1, an articulated arm 302 for changing the position and orientation of the end effector 301, and a base 303 for supporting the articulated arm 302.
  • the end effector 301 is attached to the tip surface (flange surface) of the articulated arm 302.
  • the operation of the robot 300 is controlled by the robot controller 200.
  • the end effector 301 illustrated in FIG. 1 is a two-finger hand that has two finger portions 310 and grips the work 1 using the two finger portions 310.
  • the finger portion 310 is a portion that comes into contact with the work 1 when gripping the work 1, and is also referred to as a “claw portion”.
  • the robot controller 200 receives information from the image processing device 100 and controls the articulated arm 302 of the robot 300. Specifically, the robot controller 200 controls the articulated arm 302 so that the end effector 301 performs an approach operation, a picking operation, and a place operation in order.
  • the "approach operation” is a movement operation from the outside of the container 5 to a position and posture in which the work 1 can be gripped.
  • the "picking operation” is an operation of gripping the work 1 by moving the two finger portions 310.
  • "outer diameter gripping” in which the work 1 is gripped by moving the two finger portions 310 in the closing direction and by moving the two finger portions 310 in the opening direction. There is an “inner diameter grip” that grips the work 1.
  • the work 1 is located between the two fingers 310.
  • the two finger portions 310 are located inside, for example, the hollow portion of the tubular work 1.
  • the “place operation” is an operation of the end effector 301 until the work 1 is gripped and conveyed to the target position.
  • the robot controller 200 receives position / orientation information indicating the position / orientation to be taken by the end effector 301 at the start of the picking operation from the image processing device 100. Based on the position / orientation information, the robot controller 200 generates a command to sequentially execute the approach operation, the picking operation, and the place operation of the end effector 301, and outputs the command to the robot 300. In response to this command, the end effector 301 of the robot 300 sequentially performs an approach operation, a picking operation, and a place operation.
  • the measurement head 400 is installed so that the container 5 and the work 1 housed in the container 5 are the subjects, and images the subject.
  • the measuring head 400 includes a projection unit 401 and an imaging unit 402.
  • the projection unit 401 projects an arbitrary projection pattern light onto the subject according to an instruction from the image processing device 100.
  • the projection pattern is, for example, a pattern in which the brightness periodically changes along a predetermined direction in the irradiation surface.
  • the imaging unit 402 images a subject in a state where the projection pattern light is projected.
  • the projection unit 401 includes, as main components, a light source such as an LED (Light Emitting Diode) or a halogen lamp, and a filter arranged on the irradiation surface side of the projection unit 401.
  • the filter generates projection pattern light necessary for measuring a three-dimensional shape as described later, and can arbitrarily change the in-plane light transmittance in accordance with a command from the image processing device 100.
  • the projection unit 401 may project a fixed projection pattern light that does not change with time, or may project a projection pattern light that changes with time.
  • the projection unit 401 may have a configuration using a liquid crystal or DMD (Digital Mirror Device) and a light source (LED, laser light source, etc.).
  • the image pickup unit 402 includes, for example, an optical system such as a lens and an image pickup element such as a CCD (Coupled Charged Device) or a CMOS (Complementary Metal Oxide Semiconductor) sensor as main components.
  • an optical system such as a lens
  • an image pickup element such as a CCD (Coupled Charged Device) or a CMOS (Complementary Metal Oxide Semiconductor) sensor as main components.
  • the image processing device 100 selects one of the plurality of works 1 in the container 5 as the target work 2 based on the image received from the measurement head 400, and the end effector 301 when picking the target work 2 Position Position Determine the posture.
  • the position / orientation of the end effector 301 when picking the target work 2 is the position / orientation of the end effector 301 at the start of the picking operation with respect to the target work 2.
  • the image processing device 100 generates position / orientation information indicating the determined position / orientation, and outputs the generated position / orientation information to the robot controller 200.
  • the image processing device 100 measures the three-dimensional shape of the visual field region of the measuring head 400 based on the image received from the measuring head 400. Since the field of view region includes the container 5, the three-dimensional shapes of the plurality of works 1 bulkly stacked in the container 5 are measured. The image processing device 100 selects one of the plurality of works 1 as the target work 2 to be picked based on the measured three-dimensional shape.
  • the image processing device 100 is preset with position / orientation candidates (hereinafter, referred to as “grip point candidates”) to be taken by the end effector 301 at the start of the picking operation for the work 1.
  • the gripping point candidate indicates the relative position and orientation of the end effector 301 with respect to the work 1 at the start of the picking operation with respect to the work 1.
  • the image processing device 100 determines the position / orientation of the end effector 301 when picking the target work 2 based on the position / orientation of the target work 2 and the gripping point candidate.
  • the position and orientation of the target work 2 measured using the image received from the measurement head 400 is represented by a coordinate system (camera coordinate system) with reference to the image pickup unit 402 of the measurement head 400.
  • the position / orientation information output from the image processing device 100 to the robot controller 200 is represented by a coordinate system (robot-based coordinate system) with reference to the robot 300. Therefore, calibration for estimating the relative position-posture relationship between the camera coordinate system and the robot-based coordinate system is performed in advance.
  • a known hand eye calibration can be adopted.
  • the image processing device 100 appropriately performs coordinate conversion using the result of the hand eye calibration performed in advance.
  • the image processing device 100 picks the target work 2 based on the position and orientation of the target work 2 and the one grip point candidate.
  • the position and orientation (grip position and orientation) of the end effector 301 are determined.
  • the end effector 301 in the position and orientation determined in this way may interfere with the work 1 or the container 5 around the target work 2. For example, if the end effector 301 in the position and orientation determined by the image processing device 100 interferes with the container 5, the robot 300 cannot move the end effector 301 to the position and orientation determined by the image processing device 100.
  • a plurality of gripping point candidates are set in the image processing device 100.
  • the image processing device 100 selects one grip point candidate from among the plurality of grip point candidates so that the work 1 and the container 5 around the target work 2 and the end effector 301 do not interfere with each other.
  • the image processing device 100 determines the position / orientation of the end effector 301 when picking the target work 2 based on the position / orientation of the target work 2 and one selected gripping point candidate.
  • the image processing device 100 includes a grip point setting unit 10 as a configuration for supporting the setting of grip point candidates.
  • the gripping point setting unit 10 includes a reception unit 12, a calculation unit 13, a determination unit 14, and a registration unit 17.
  • the reception unit 12 receives the designation of the first point P1 and the second point P2 on the work model M1 indicated by the CAD data that defines the three-dimensional shape of the work 1.
  • the image processing device 100 illustrated in FIG. 1 displays the work model M1 on the screen of the display device 150.
  • the reception unit 12 receives the first point P1 and the second point P2 based on the positions designated on the screen of the display device 150.
  • the calculation unit 13 calculates a position vector V1 having the same direction as the direction from the first point P1 to the second point P2, starting from the point P0 defined by the first point P1 and the second point P2.
  • the point P0 is, for example, the midpoint of the line L connecting the first point P1 and the second point P2 along the surface of the work model M1.
  • the line L is a line connecting the first point P1 and the second point P2 at the shortest distance.
  • the point P0 may be the same as the first point P1 or the second point P2.
  • the position vector V1 has a predetermined length (for example, 1).
  • the calculation unit 13 calculates the position vector V2 defined from the normal vectors of the first point P1 and the second point P2 in the work model M1.
  • the normal vector of the first point P1 becomes the normal of the triangular mesh including the first point P1. It is a unit vector along.
  • the normal vector of the second point P2 is a unit vector along the normal of the triangular mesh including the second point P2.
  • the calculation unit 13 calculates a position vector having the same direction as the average vector of the normal vector of the first point P1 and the normal vector of the second point P2, starting from the point P0, as the position vector V2.
  • the position vector V2 has the same length (for example, 1) as the position vector V1.
  • the determination unit 14 sets the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11 and V12 and the position vectors V1 and V2, which are predetermined with respect to the end effector model M2, approaches the reference relationship. decide.
  • the end effector model M2 shows the three-dimensional shape of the end effector 301. The standard relationship is predetermined.
  • the reference position vectors V11 and V12 exemplified in FIG. 1 have orientations orthogonal to each other, starting from the tip of a part corresponding to one finger portion 310 in the end effector model M2.
  • the reference position vector V11 illustrated in FIG. 1 is orthogonal to the paper surface and has a direction toward the front.
  • the reference position vectors V11 and V12 have the same length (for example, 1) as the position vectors V1 and V2.
  • the registration unit 17 registers the position / posture determined by the determination unit 14 as a gripping point candidate. Specifically, the registration unit 17 registers the relative position / orientation of the end effector model M2 of the position / orientation determined by the determination unit 14 with respect to the work model M1 as a gripping point candidate.
  • the user can set the gripping point candidate only by designating the first point P1 and the second point P2 on the work model M1. That is, the position and orientation of the end effector 301 that picks the work 1 is easily set.
  • the image processing device 100 is typically a computer having a general-purpose architecture, and executes image processing according to the present embodiment by executing a pre-installed program (instruction code). .. Such a program is typically distributed in a state of being stored in various recording media or the like, or installed in the image processing apparatus 100 via a network or the like.
  • an OS Operating System
  • the program according to the present embodiment may call the necessary modules in a predetermined array at a predetermined timing among the program modules provided as a part of the OS to execute the process.
  • the program itself according to the present embodiment does not include the module as described above, and the process may be executed in cooperation with the OS.
  • the program according to the present embodiment may be in a form that does not include such a part of modules.
  • the program according to the present embodiment may be provided by being incorporated into a part of another program. Even in that case, the program itself does not include the modules included in the other programs to be combined as described above, and the processing is executed in cooperation with the other programs. That is, the program according to the present embodiment may be a form incorporated in such another program. Note that some or all of the functions provided by executing the program may be implemented as a dedicated hardware circuit.
  • FIG. 2 is a schematic view showing an example of the hardware configuration of the image processing apparatus shown in FIG.
  • the image processing device 100 includes a CPU (Central Processing Unit) 110 which is an arithmetic processing unit, a main memory 112 and a hard disk 114 as a storage unit, a measurement head interface 116, and an input interface 118. , A display controller 120, a communication interface 124, and a data reader / writer 126. Each of these parts is connected to each other via a bus 128 so as to be capable of data communication.
  • a CPU Central Processing Unit
  • main memory 112 main memory
  • a hard disk 114 as a storage unit
  • a measurement head interface 116 a measurement head interface
  • an input interface 118 a measurement head interface
  • a display controller 120 a communication interface 124
  • a data reader / writer 126 Each of these parts is connected to each other via a bus 128 so as to be capable of data communication.
  • the CPU 110 expands the programs (codes) installed on the hard disk 114 into the main memory 112 and executes them in a predetermined order to perform various operations.
  • the main memory 112 is typically a volatile storage device such as a DRAM (Dynamic Random Access Memory), and holds an image acquired by the measurement head 400 in addition to a program read from the hard disk 114. To do. Further, the hard disk 114 stores various data and the like as described later. In addition to the hard disk 114, or instead of the hard disk 114, a semiconductor storage device such as a flash memory may be adopted.
  • the measurement head interface 116 mediates data transmission between the CPU 110 and the measurement head 400. That is, the measurement head interface 116 is connected to the measurement head 400.
  • the measurement head interface 116 gives a projection command and an imaging command to the measurement head 400 according to an internal command generated by the CPU 110.
  • the measurement head interface 116 includes an image buffer 116a for temporarily storing an image from the measurement head 400. When a predetermined number of frames of images are accumulated in the image buffer 116a, the measurement head interface 116 transfers the accumulated images to the main memory 112.
  • the input interface 118 mediates data transmission between the CPU 110 and the input device 160. That is, the input interface 118 receives the input information input by the user to the input device 160.
  • the display controller 120 is connected to the display device 150 and controls the screen of the display device 150 so as to notify the user of the processing result of the CPU 110 and the like.
  • the communication interface 124 mediates data transmission between the CPU 110 and an external device such as the robot controller 200.
  • the communication interface 124 typically comprises Ethernet (registered trademark), USB (Universal Serial Bus), or the like.
  • the data reader / writer 126 mediates data transmission between the CPU 110 and the memory card 106, which is a recording medium. That is, the memory card 106 is distributed in a state in which a program or the like executed by the image processing device 100 is stored, and the data reader / writer 126 reads the program from the memory card 106. Further, the data reader / writer 126 writes the image captured by the measurement head 400 and / or the processing result in the image processing device 100 to the memory card 106 in response to the internal command of the CPU 110.
  • the memory card 106 is a general-purpose semiconductor storage device such as SD (Secure Digital), a magnetic storage medium such as a flexible disk (Flexible Disk), or an optical storage medium such as a CD-ROM (Compact Disk Read Only Memory). Etc.
  • SD Secure Digital
  • CD-ROM Compact Disk Read Only Memory
  • FIG. 3 is a block diagram showing an example of the functional configuration of the image processing apparatus shown in FIG.
  • the image processing device 100 includes a gripping point setting unit 10, a head control unit 20, an image processing unit 25, a model creation unit 30, and a storage unit 40.
  • the gripping point setting unit 10 and the model creation unit 30 are realized by the CPU 110, the input interface 118, and the display controller 120 shown in FIG.
  • the head control unit 20 is realized by the CPU 110 and the measurement head interface 116 shown in FIG.
  • the image processing unit 25 is realized by the CPU 110 and the communication interface 124 shown in FIG.
  • the storage unit 40 is realized by the main memory 112 and the hard disk 114 shown in FIG.
  • the head control unit 20 controls the operation of the measurement head 400.
  • the head control unit 20 outputs a projection command instructing the projection of a predetermined projection pattern light to the measurement head 400.
  • the head control unit 20 outputs an imaging command to the measurement head 400 in a state where the projection pattern light is projected.
  • the head control unit 20 stores the image data 41 acquired from the measurement head 400 in the storage unit 40.
  • the storage unit 40 stores the image data 41 obtained by imaging the measurement head 400. Further, the storage unit 40 stores in advance CAD (Computer Aided Design) data 42 indicating the three-dimensional shape of the work 1.
  • the CAD data 42 shows the position and orientation of the triangular mesh forming the surface of the work model showing the three-dimensional shape of the work 1.
  • the storage unit 40 stores model data 43 generated by the model creation unit 30 and grip point data 44 indicating grip point candidates of the end effector 301 when gripping the work 1.
  • the grip point data 44 is generated by the grip point setting unit 10.
  • the image processing unit 25 performs the following processing on the image data 41 obtained by imaging the measurement head 400.
  • the image processing unit 25 performs three-dimensional measurement in the visual field region of the measurement head 400 based on the image data 41, and generates three-dimensional point cloud data.
  • the three-dimensional point cloud data indicates the three-dimensional coordinates of each point on the object surface (measurement surface) existing in the visual field region of the measurement head 400.
  • the image processing unit 25 performs three-dimensional measurement processing using a triangular ranging method.
  • the triangular distance measuring method known techniques such as a fixed pattern projection method, a phase shift method, a stereo matching method, and an optical cutting method can be adopted.
  • the phase shift method is a method of using an image captured in a state in which projection pattern light whose shading is changed in a sinusoidal shape is projected onto a subject.
  • a plurality of projection patterns having different shade change periods and phases are prepared, and the projection unit 401 of the measurement head 400 sequentially irradiates the visual field region of the image pickup unit 402 with a plurality of projection pattern lights.
  • the image processing unit 25 calculates the three-dimensional coordinates based on the change in the brightness (brightness and brightness) of the corresponding portion in the image data 41 captured when the plurality of projection patterns are projected.
  • the three-dimensional measurement process is not limited to the triangular ranging method, and may be performed by using another method (for example, a coaxial method).
  • the image processing unit 25 collates a plurality of template data created in advance with the three-dimensional point cloud data, and extracts data similar to the template from the three-dimensional point cloud data.
  • the template data is created in advance based on the CAD data 42.
  • the image processing unit 25 detects the position and orientation of the work 1 existing in the visual field region of the measurement head 400 based on the data similar to the template extracted from the three-dimensional point cloud data.
  • the image processing unit 25 determines the detected work 1 as the target work 2. When the image processing unit 25 detects the position and orientation of the plurality of works 1, one of the plurality of works 1 is selected as the target work 2 according to a predetermined selection criterion.
  • the image processing unit 25 determines the position / orientation of the end effector 301 when picking the target work 2 based on the position / orientation of the target work 2, the grip point candidate shown in the grip point data 44, and the hand eye calibration result. To do.
  • the image processing unit 25 transmits the position / orientation information indicating the determined position / orientation to the robot controller 200.
  • the model creation unit 30 displays a model creation screen that supports the creation of the end effector model M2 on the display device 150, and creates the end effector model M2 according to an input instruction to the input device 160.
  • the model creation unit 30 sets the reference position vectors V11, V12, and V13 for the created end effector model M2.
  • the reference position vectors V11, V12, and V13 have directions orthogonal to each other, starting from one point on the end effector model M2.
  • the reference position vectors V11, V12, V13 have a predetermined length (for example, 1). Details of the method of creating the end effector model M2 and the method of setting the reference position vectors V11, V12, and V13 will be described later.
  • the gripping point setting unit 10 sets a position / orientation candidate (grasping point candidate) of the end effector 301 when picking the work 1.
  • the gripping point setting unit 10 exemplified in FIG. 3 includes a display control unit 11, a reception unit 12, a calculation unit 13, a determination unit 14, a duplication processing unit 15, a determination unit 16, and a registration unit 17. Including.
  • the display control unit 11 controls the screen of the display device 150. Specifically, the display control unit 11 causes the display device 150 to display a setting screen for setting the gripping point candidate, and shifts the screen of the display device 150 in response to the input to the input device 160.
  • the work model M1 indicated by the CAD data 42 is displayed on the setting screen. Details of the setting screen will be described later.
  • the reception unit 12 receives the designation of the first point P1 and the second point P2 on the work model M1 in response to the input operation to the input device 160.
  • the calculation unit 13 calculates a position vector V1 having the same direction as the direction from the first point P1 to the second point P2, starting from the point P0 defined from the first point P1 and the second point P2.
  • the calculation unit 13 calculates the position vector V2 defined from the normal vectors of the first point P1 and the second point P2 in the work model M1. Further, the calculation unit 13 calculates the position vector V3 represented by the outer product of the position vector V1 and the position vector V2.
  • the determination unit 14 determines the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 approaches the reference relationship.
  • the reference relationship is predetermined according to the set position / orientation of the reference position vectors V11, V12, V13 with respect to the end effector model M2, the desired clearance between the end effector 301 and the work 1.
  • the duplication processing unit 15 executes duplication processing of the end effector model M2 and determines the position and orientation of the duplicated end effector model. For example, the duplication processing unit 15 generates a duplicated end effector model by rotating the end effector model M2 of the position and orientation determined by the determination unit 14 in a designated direction by a designated amount.
  • the determination unit 16 determines whether or not there is interference between the end effector model M2 and the work model M1 in each position and orientation determined by the determination unit 14 and the duplication processing unit 15.
  • the registration unit 17 registers each position / posture determined by the determination unit 14 and the duplication processing unit 15 as gripping point candidates. Specifically, the registration unit 17 generates and generates grip point data 44 indicating the relative position / orientation of the end effector model M2 of each position / orientation determined by the determination unit 14 and the duplication processing unit 15 with respect to the work model M1.
  • the gripping point data 44 is stored in the storage unit 40.
  • FIG. 4 is a diagram showing an example of a model creation screen for supporting the creation of an end effector model.
  • the model creation screen 70 illustrated in FIG. 4 is displayed on the display device 150 by the model creation unit 30.
  • FIG. 4 shows a model creation screen 70 before starting the creation of the end effector model M2.
  • the model creation screen 70 includes an area 71 for displaying the end effector model M2, an editing button group 73, and a parts list 74.
  • a coordinate axis 72 indicating an end effector coordinate system is displayed in the area 71.
  • the X-axis, Y-axis, and Z-axis constituting the coordinate axis 72 are orthogonal to each other.
  • the origin of the coordinate axis 72 corresponds to the center of the flange surface at the tip of the articulated arm 302 to which the end effector 301 is attached.
  • the XY plane corresponds to the flange surface.
  • the Z axis corresponds to the normal of the flange surface.
  • the editing button group 73 includes a plurality of buttons for accepting operations of adding, duplicating, deleting, and reversing the parts constituting the end effector model M2.
  • the parts list 74 is a list of parts constituting the end effector model M2.
  • the model creation screen 70 illustrated in FIG. 4 corresponds to a state before accepting an operation on the editing button group 73. Therefore, the parts are not displayed in the parts list 74.
  • FIG. 5 is a diagram showing an example of a model creation screen displayed during creation of an end effector model.
  • the area 71 of the model creation screen 70 illustrated in FIG. 5 six parts 75 to 80 constituting the end effector model M2, which is a two-finger hand, are displayed.
  • the model creation screen 70 includes a radio button group 81 related to color display of parts.
  • the radio button group 81 includes, for example, a radio button for coloring all parts, a radio button for coloring only selected parts, and a radio button for not coloring parts. Including. By operating the radio button group 81, the user can easily distinguish a plurality of parts.
  • the model creation screen 70 includes a check box 82 for displaying the sides and sizes of the circumscribed rectangular parallelepiped of the end effector model M2.
  • the model creation unit 30 displays a line 83 indicating the side of the circumscribed rectangular parallelepiped of the end effector model M2 and a text 84 indicating the size of the circumscribed rectangular parallelepiped in the area 71. This makes it easier for the user to grasp the size of the end effector model M2.
  • each part is determined according to the type of button for adding parts included in the editing button group 73.
  • the part 75 illustrated in FIG. 5 is a part added in response to the operation of the "add cylinder” button, and has a cylindrical shape.
  • the parts 76 to 80 illustrated in FIG. 5 are parts added in response to the operation of the "add rectangular parallelepiped” button, and have a rectangular parallelepiped shape.
  • the editing button group 73 includes a "duplicate” button and a “delete” button.
  • the model creation unit 30 adds a part having the same shape as the selected part.
  • the model creation unit 30 deletes the selected part.
  • the editing button group 73 includes a "reverse (XZ plane)” button and a “reverse (YZ plane)” button.
  • the model creation unit 30 mirror-inverts the selected part with respect to the XZ plane.
  • the model creation unit 30 mirror-inverts the selected part with respect to the YZ plane.
  • the parts list 74 includes the name of the part and the group to which the part belongs for each of the parts 76 to 80 constituting the end effector model M2.
  • the model creation unit 30 sets the name of each part according to the input of the user, and displays the set name.
  • the group of each part indicates the attribute of the part and is selected from a plurality of predetermined groups.
  • the model creation unit 30 displays a pull-down menu including a plurality of groups according to the operation of the pull-down button 74a, and sets the groups according to the user's selection input.
  • the model creation unit 30 displays the set group.
  • a plurality of groups are predetermined according to the form that the end effector 301 can take.
  • the model creation unit 30 can recognize whether each part is a fixed part (non-movable part) or a movable part according to the set group.
  • the “Base” group corresponds to the part (fixed part) that supports the finger part.
  • the “Left tip finger” group corresponds to the tip of one of the two fingers.
  • the “Left finger” group corresponds to the part excluding the tip part on the one side.
  • the “Right tip finger” group corresponds to the tip of the other of the two fingers.
  • the “Right finger” group corresponds to the other part excluding the tip part.
  • the model creation unit 30 recognizes a part belonging to the “Base” group as a fixed unit.
  • the model creation unit 30 recognizes a part belonging to the "Right tip finger” group or the "Right finger” group as a movable part corresponding to one of the two finger parts.
  • the model creation unit 30 recognizes a part belonging to the "Left tip finger” group or the “Left finger” group as a movable part corresponding to the other of the two fingers. Further, in the model creation unit 30, the moving direction of the parts belonging to the "Right tip finger” group or the "Right finger” group and the moving direction of the parts belonging to the "Left tip finger” group or the “Left finger” group are opposite to each other. Recognize that it is oriented.
  • parts 75 and 76 belong to the "Base” group. Further, parts 77, 78, 79, 80 belong to the "Right finger”, “Right tip finger”, “Left finger” and “Left tip finger” groups, respectively. In the end effector model M2 illustrated in FIG. 5, parts 78 and 80 belonging to the “Right tip finger” and the “Left tip finger”, respectively, extend parallel to the Z axis.
  • the display control unit 11 makes the colors of the parts displayed in the area 71 different according to the group. .. For example, the display control unit 11 displays parts 75 and 76 belonging to the "Base” group in gray, displays parts belonging to the "Right tip finger” group or the “Right finger” group in light blue, and displays "Left tip finger”. Parts belonging to the group or "Left finger” group are displayed in pink. This makes it easier for the user to distinguish between the fixed portion and the two movable portions in the end effector model M2.
  • the model creation screen 70 includes tabs 85 and 87 for setting the position, posture and size of each part.
  • the tab 85 is operated when setting the position, posture and size for each part.
  • Tab 87 is operated when setting the positions, postures and sizes of all parts at once.
  • the model creation screen 70 illustrated in FIG. 5 corresponds to the state when the tab 85 is operated.
  • the model creation unit 30 sets various positions, postures, and sizes of the parts selected in the parts list 74 (the parts of “Left 00” are selected in FIG. 5).
  • the area 86 including the input field of is displayed.
  • the model creation unit 30 edits the position, posture, and size of the parts selected in the parts list 74 in response to the input to the input field displayed in the area 86.
  • FIG. 6 is a diagram showing another example of the model creation screen displayed during the creation of the end effector model.
  • the end effector model M2 illustrated in FIG. 6 is different from the end effector model M2 illustrated in FIG. 5 in that it includes parts 78a, 78b, 80a, 80b instead of parts 78, 80.
  • Part 78a belongs to the "Right finger” group.
  • Part 80a belongs to the "Left finger” group.
  • Part 78b belongs to the "Right tip finger” group.
  • Part 80b belongs to the "Left tip finger” group.
  • the parts 78b and 80b are inclined with respect to the Z axis.
  • the user can set the tilt direction of the parts 78b and 80b by inputting the tilt direction in the input field 86a displayed in the area 86. Further, the user can set the tilt angle of the parts 78b and 80b by inputting the tilt angle in the input field 86b displayed in the area 86.
  • FIG. 7 is a diagram showing an example of a model creation screen when setting various parameters related to the end effector model.
  • the model creation screen 70 illustrated in FIG. 7 corresponds to the state when the tab 88 is operated.
  • the model creation screen 70 includes input fields 89 and 90 and an area 91.
  • a hand ID for identifying the end effector model M2 being created is input.
  • a margin used for interference determination by the determination unit 16 is input. The method of using the margin will be described later.
  • the area 91 is used to set the distance between the part 78 belonging to the "Right tip finger” group and the part 80 belonging to the "Left tip finger” group (hereinafter, referred to as "stroke width").
  • the stroke width is also referred to as the "opening width”.
  • an input field 91a for selecting the movable direction between the part 78 belonging to the "Right tip finger” group and the part 80 belonging to the "Left tip finger” group is displayed.
  • the input field 91a includes a pull-down button.
  • the model creation unit 30 displays a pull-down menu including the "X direction” and the "Y direction” according to the operation of the pull-down button, and sets the selected direction as the movable direction.
  • the “Y direction” is selectively input.
  • the movable direction is usually parallel to the end faces (the faces opposite to the parts belonging to the "Base” group) of the parts 78 and 80 belonging to the "Right tip finger” and "Left tip finger” groups, respectively.
  • an input field 91b for setting the maximum stroke width is displayed.
  • the user may input a numerical value according to the specifications of the end effector 301 in the input field 91b.
  • a list 91c of stroke widths that the end effector model M2 can take and buttons 91d and 91e for creating the list 91c are displayed.
  • the button 91d is operated when adding a new stroke width to the list 91c.
  • the button 91e is operated when deleting an unnecessary stroke width from the list 91c.
  • the user can add a plurality of stroke widths to the list 91c according to the type of the work 1.
  • the index number that identifies the stroke width and the numerical value of the stroke width are associated with each other.
  • FIG. 8 is a diagram showing three end effector models having different stroke widths.
  • FIG. 8 shows the end effector model M2 shown in FIG.
  • FIG. 8A shows an end effector model M2 having a stroke width of “0 mm” corresponding to the index number “No. 0”.
  • FIG. 8B shows an end effector model M2 having a stroke width of “15 mm” corresponding to the index number “No. 2”.
  • FIG. 8C shows an end effector model M2 having a stroke width of “30 mm” corresponding to the index number “No. 7”.
  • the model creation unit 30 calculates the coordinates of the midpoint P100 between the center of gravity of the end face of the part 78 belonging to the "Right tip finger” group and the center of gravity of the end face of the part 80 belonging to the "Left tip finger” group.
  • the model creation unit 30 calculates the coordinates of the point P101 separated from the midpoint P100 by half the stroke width on the part 78 side belonging to the "Right tip finger” group along the movable direction.
  • the movable direction is the direction input in the input field 91a.
  • the model creation unit 30 belongs to the parts 77 belonging to the "Right finger” group and the "Right tip finger” group so that the side on the part 80 side on the end face of the part 78 belonging to the "Right tip finger” group passes through the point P101.
  • the part 78 and the part 78 are translated along the movable direction.
  • the model creation unit 30 calculates the coordinates of the point P102, which is separated from the midpoint P100 by half the stroke width on the part 80 side belonging to the "Left tip finger” group along the movable direction.
  • the model creation unit 30 includes a part 79 belonging to the "Left finger” group and a part 80 belonging to the "Left tip finger” group so that the point P102 at the tip of the part 80 belonging to the "Left tip finger” group matches the point P102. And are translated along the movable direction. In this way, the end effector model M2 having a stroke width corresponding to the index number is created.
  • an input field 91f for inputting an initial index number is displayed in the area 91.
  • one index number (initial index number) selected from at least one index number included in the list 91c is input.
  • the user inputs the index number corresponding to the gap between the two fingers 310 of the end effector 301 when picking the work 1 in the input field 91f.
  • the index number "0" is entered in the input field 91f.
  • the model creation unit 30 displays the end effector model M2 having a stroke width corresponding to the initial index number in the area 71.
  • FIG. 9 is a diagram showing an example of a model creation screen when setting information regarding the rotational symmetry of the end effector model.
  • FIG. 9 shows the end effector model M2 shown in FIG.
  • the model creation screen 70 illustrated in FIG. 9 includes a check box 92 and an input field 93.
  • the check box 92 is operated to select the presence or absence of rotational symmetry of the end effector model M2.
  • the model creation unit 30 includes a part 78 belonging to the "Right tip finger” group and a part 80 belonging to the "Left tip finger” group.
  • the Z axis is set as the rotational symmetry axis 96.
  • the minimum rotation angle ⁇ that overlaps with the part 80 when the part 78 is rotated about the rotation symmetry axis 96 is input.
  • 180 ° is input as the minimum rotation angle ⁇ .
  • the model creation screen 70 includes a save button 94 and an end button 95.
  • the save button 94 When the save button 94 is operated, the model creation unit 30 saves the current settings.
  • the end button 95 When the end button 95 is operated, the model creation unit 30 ends the process of creating the end effector model M2.
  • the model creation unit 30 sets the reference position vectors V11, V12, and V13 for the created end effector model M2.
  • FIG. 10 is a diagram showing an example of a reference position vector set for the end effector model.
  • FIG. 10 shows the end effector model M2 shown in FIG.
  • FIG. 11 is a diagram showing another example of the reference position vector set for the end effector model.
  • FIG. 11 shows the end effector model M2 shown in FIG.
  • the model creation unit 30 sets the reference position vectors V11, V12, and V13 for the end effector model M2 having a stroke width corresponding to the initial index number input in the input field 91f.
  • the model creation unit 30 sets the reference position vectors V11, V12, and V13 so as to satisfy the following conditions (a) to (e), for example. Conditions (a) to (e) are predetermined.
  • the end face 80S is a face on the opposite side of the parts belonging to the "Left tip finger” group from the parts belonging to the "Base” group.
  • the movable direction is usually parallel to the end face 80S of the part 78 belonging to the "Left tip finger" group. Therefore, by setting the reference position vectors V11, V12, and V13 according to the above conditions (c) to (e), the reference position vectors V11, V12, and V13 are orthogonal to each other.
  • the model creation unit 30 generates model data 43 indicating various setting information of the end effector model M2 set as described above, and stores the generated model data 43 in the storage unit 40.
  • the model data 43 shows at least the following information. -Position, posture and size of each part that constitutes the end effector model of the stroke width corresponding to the initial index number-Group to which each part belongs-Parts belonging to the "Right tip finger” group and parts belonging to the "Left tip finger” group Movable direction with (direction input in the input field 91a) -Reference position vectors V11, V12, V13 ⁇ Presence / absence of rotational symmetry ⁇ If there is rotational symmetry, the axis of rotational symmetry and the minimum rotational angle ⁇ -Margin entered in the input field 90.
  • FIG. 12 is a diagram illustrating a method of determining the position and orientation of the end effector by the determination unit.
  • a first point P1 and a second point P2 are designated on the surface of the work model M1.
  • the calculation unit 13 starts from the midpoint P0 of the line L connecting the first point P1 and the second point P2 at the shortest distance along the surface of the work model M1, and moves from the first point P1 to the second point P2.
  • the position vector V1 having the same direction as the direction of is calculated.
  • the position vector V1 has a predetermined length (for example, 1).
  • the calculation unit 13 calculates the average vector of the normal vector Va of the first point P1 in the work model M1 and the normal vector Vb of the second point P2 in the work model M1.
  • the normal vectors Va and Vb are unit vectors along the normals of the triangular mesh constituting the work model M1.
  • the calculation unit 13 calculates a position vector V2 having the same direction as the average vector of the normal vector Va and the normal vector Vb, starting from the point P0.
  • the position vector V2 has a predetermined length (for example, 1).
  • calculation unit 13 calculates the position vector V3 represented by the outer product of the position vector V1 and the position vector V2.
  • the reference position vectors V11, V12, and V13 are set for the end effector model M2 having a stroke width corresponding to the initial index number.
  • the model data 43 shows, for example, the coordinates of the start point and the end point of each of the reference position vectors V11, V12, and V13.
  • the determination unit 14 determines the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 approaches the reference relationship.
  • the reference relationship is predetermined as follows, assuming that the outer diameter is gripped by a two-finger hand. That is, the reference relationship is a relationship that coincides with the reference position vectors V11, V12, and V13 when the position vectors V1, V2, and V3 are translated by a predetermined distance in the direction of the position vector V2.
  • the specified distance is determined in consideration of the necessary gap between the end effector 301 and the work 1 at the start of the picking operation.
  • the reference position vectors V11, V12, and V13 are indicated by the end effector coordinate system.
  • the position vectors V1, V2, and V3 are shown in the work coordinate system.
  • the determination unit 14 determines a coordinate transformation matrix for rigidly transforming the end effector coordinate system so that the relative positional relationship between the reference position vectors V11 to V13 and the position vectors V1 to V3 is closest to the reference relationship.
  • the coordinate transformation matrix By transforming the coordinates of the end effector model M2 using the coordinate transformation matrix, the position and orientation of the end effector model M2 when the relative positional relationship between the reference position vectors V11 to V13 and the position vectors V1 to V3 is closest to the reference relationship. Is identified.
  • the determination unit 14 corrects the position vectors V1 to V3 based on the reference relationship in the work coordinate system. Specifically, the determination unit 14 translates the position vectors V1, V2, and V3 by a predetermined distance in the direction of the position vector V2. The determination unit 14 calculates the XYZ coordinates of the end points of the corrected position vectors V1, V2, and V3. The determination unit 14 minimizes the difference between the XYZ coordinates of the end points of the reference position vectors V11, V12, and V13 after the coordinate conversion and the XYZ coordinates of the end points of the corrected position vectors V1, V2, and V3. The coordinate conversion matrix may be determined.
  • FIG. 13 is a diagram showing an example of a setting screen for setting a gripping point candidate.
  • the setting screen 50 illustrated in FIG. 13 is displayed on the display device 150 by the display control unit 11 of the gripping point setting unit 10.
  • the setting screen 50 illustrated in FIG. 11 corresponds to the state when the tab 67 is operated, and is displayed when the end effector 301 is a two-finger hand.
  • the setting screen 50 includes the area 51.
  • the display control unit 11 reads the CAD data 42 from the storage unit 40, and displays the work model M1 indicated by the CAD data 42 in the area 51.
  • the display format of the work model M1 is not particularly limited.
  • the work model M1 may be displayed in wireframe format.
  • the display control unit 11 receives an operation on the work model M1 displayed in the area 51.
  • the display control unit 11 changes the position and orientation of the work model M1 according to the received operation. For example, the display control unit 11 enlarges / reduces, translates, or rotates the work model M1.
  • the display control unit 11 displays the X-axis 52x, the Y-axis 52y and the Z-axis 52z, and the line 53x, the line 53y and the line 53z in the area 51 in order to assist the operation by the user.
  • the X-axis 52x, the Y-axis 52y, and the Z-axis 52z are coordinate axes based on the work model, and represent a work coordinate system with the center of gravity of the work model M1 as the origin.
  • the origin set in the CAD data 42 is not necessarily the center of gravity of the work model M1. Therefore, the display control unit 11 converts the coordinates included in the CAD data 42 so that the origin coincides with the center of gravity of the work model M1.
  • the lines 53x, 53y, and 53z are circular lines indicating the rotation directions centered on the X-axis 52x, Y-axis 52y, and Z-axis 52z, respectively.
  • the reception unit 12 receives the first point P1 and the second point P2 on the work model M1 based on the position designated by the input device 160 in the area 51 of the setting screen 50. For example, when two points overlapping the work model M1 are clicked in order in the area 51, the reception unit 12 accepts the point clicked first among the two points as the first point P1 and clicks after the two points. The point is accepted as the second point P2.
  • the position vectors V1, V2, and V3 are calculated for the work model M1 according to the first point P1 and the second point P2 received by the reception unit 12. Then, the position / orientation of the end effector model M2 is determined so that the relative positional relationship between the reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 indicated by the model data 43 approaches the reference relationship.
  • the reception unit 12 receives the first point P1 and the second point P2
  • the position and orientation of the end effector model M2 are determined according to the first point P1 and the second point P2. Therefore, when the reception unit 12 receives the first point P1 and the second point P2 N times (N is an integer of 2 or more), N positions and orientations of the end effector model M2 are determined.
  • the setting screen 50 includes various buttons for assisting the registration process of the gripping point candidate. As shown in FIG. 13, the setting screen 50 includes a grip point selection button group 55, a delete button 56, an adjustment button group 57, a reverse button group 58, a reset button 59, and a duplicate button group 60. ..
  • the gripping point selection button group 55 receives N positions and orientations of the determined end effector model M2 when the receiving unit 12 receives the first point P1 and the second point P2 N times (N is an integer of 2 or more). Includes a button to select one of them.
  • the display control unit 11 causes the end effector model M2 of the selected position and orientation to be displayed in the area 51 on top of the work model M1 in response to the operation of the grip point selection button group 55.
  • the delete button 56 is a button for deleting the determined position and orientation of the end effector model M2.
  • the registration unit 17 deletes the position / orientation selected by the operation of the grip point selection button group 55 from the grip point candidates.
  • the position vector V2 having the same direction as the average vector of the normal vector Va of the first point P1 in the work model M1 and the normal vector Vb of the second point P2 in the work model M1. Is set. Therefore, the position vector V2 may not be orthogonal to the position vector V1.
  • the reference position vectors V11, V12, and V13 are orthogonal to each other. Therefore, depending on how the first point P1 and the second point P2 are designated, the position / orientation determined by the determination unit 14 may deviate from the desired position / orientation.
  • the image processing device 100 according to the present embodiment has a function of adjusting the position and orientation determined by the determination unit 14.
  • FIG. 14 is a diagram illustrating an example of a method of adjusting the position and orientation of the end effector model.
  • FIG. 15 is a diagram illustrating another example of a method of adjusting the position and orientation of the end effector model.
  • the end effector model M2 of the position and orientation selected by the operation of the gripping point selection button group 55 is displayed.
  • FIG. 14 shows the end effector model M2 shown in FIG.
  • FIG. 15 shows the end effector model M2 shown in FIG.
  • the display control unit 11 converts the coordinates of the end effector model M2 indicated by the model data 43 using the coordinate conversion matrix determined by the determination unit 14.
  • the display control unit 11 displays the end effector model M2 after the coordinate conversion in the area 51.
  • the display control unit 11 performs coordinate conversion of the reference position vectors V11, V12, and V13 indicated by the model data 43 by using the coordinate conversion matrix determined by the determination unit 14.
  • the display control unit 11 may display the reference position vectors V11, V12, and V13 after the coordinate conversion in the area 51.
  • the adjustment button group 57 (see FIG. 13) includes buttons 57a to 57h.
  • the determination unit 14 adjusts the determined position and orientation according to the operation of the buttons 57a to 57h. Further, the display control unit 11 displays the end effector model M2 in the adjusted position and orientation in the area 51.
  • Buttons 57a, 57b, 57c are buttons for translating the end effector model M2.
  • the direction of translational movement is predetermined. For example, by operating the buttons 57a, 57b, 57c, the determination unit 14 is in the same direction as the reference position vectors V11, V12, V13 (that is, in the positive direction of the X-axis, Y-axis, and Z-axis of the end effector coordinate system). ), The end effector model M2 is moved in translation. Then, the display control unit 11 displays the translated end effector model M2 in the area 51.
  • Buttons 57d, 57e, 57f are buttons for rotating and moving the end effector model M2.
  • the axis of rotational movement is predetermined. For example, by operating the buttons 57d, 57e, 57f, the determination unit 14 determines the end effector with the reference position vectors V11, V12, V13 (or the axes parallel to the reference position vectors V11, V12, V13) as the rotation axis.
  • Each model M2 is rotated and moved.
  • the display control unit 11 displays the rotated end effector model M2 in the area 51.
  • the display control unit 11 changes the stroke width of the end effector model M2. Specifically, the display control unit 11 translates the parts belonging to the "Left tip finger”, “Left finger”, “Right tip finger” and “Right finger” groups.
  • the moving direction is the direction of the vector obtained by coordinate-transforming the vector indicating the movable direction shown in the model data 43 by using the coordinate transformation matrix determined by the determination unit 14.
  • the determination unit 14 By operating the button 57h, the determination unit 14 translates the end effector model M2 along the direction of the reference position vector V13. Then, the display control unit 11 displays the translated end effector model M2 in the area 51. Regardless of which of the buttons 57c and 57h is operated, the end effector model M2 translates along the direction of the reference position vector V13. However, the position and orientation of the end effector model to be duplicated when the duplicate button group 60 (see FIG. 13) is operated differs depending on which of the buttons 57c and 57h is operated.
  • the adjustment button group 57 includes a pull-down button 57i for setting a unit movement amount when the buttons 57a to 57h are operated.
  • the unit movement amount when the buttons 57a to 57c, 57g, and 57h are operated is 1% of the length of the side of the circumscribing rectangular parallelepiped of the end effector model M2.
  • the unit movement amount when the buttons 57d to 57f are operated is 1 °.
  • Each of the buttons 57a to 57h includes a plus button and a minus button.
  • the plus button is a button for moving the end effector model M2 by a unit movement amount in the positive direction
  • the minus button is a button for moving the end effector model M2 by a unit movement amount in the negative direction.
  • the display control unit 11 displays the vectors V21 and V31 parallel to the translational movement direction in the area 51 in order to make the user recognize the translational movement direction by operating the button 57a.
  • the vectors V21 and V31 are axes parallel to the reference position vector V11.
  • the display control unit 11 displays the vectors V21 and V31 and the buttons 57a and 57d in the same color (for example, red).
  • the display control unit 11 displays the vectors V22 and V32 parallel to the translational movement direction in the area 51 in order to make the user recognize the translational movement direction by operating the button 57b.
  • the vectors V22 and V32 are axes parallel to the reference position vector V12.
  • the display control unit 11 displays the vectors V22 and V32 and the buttons 57b and 57e in the same color (for example, green).
  • the display control unit 11 displays the vectors V23 and V33 parallel to the translational movement direction in the area 51 in order to make the user recognize the translational movement direction by operating the button 57c.
  • the vectors V23 and V33 are axes parallel to the reference position vector V13.
  • the display control unit 11 displays the vectors V23 and V33 and the buttons 57c and 57f in the same color (for example, blue). As a result, the user can easily perform the button operation according to the desired movement direction.
  • the vectors V21 to V23 are displayed near the tips of the parts (part 78 in FIG. 14) belonging to the "Right tip finger” group in the end effector model M2.
  • the vectors V31 to V33 are displayed near the tips of the parts belonging to the "Left tip finger” group in the end effector model M2 (part 80 in FIG. 14 and part 80b in FIG. 15).
  • one of the vectors V21 to V23 and the vectors V31 to V33 (vectors V21 to V23 in FIG. 15) is hidden in the work model M1 depending on the display direction of the work model M1.
  • the user can operate the buttons according to the desired movement direction while looking at the other. Can be done.
  • the flip button group 58 includes a vertical flip button 58a and a left / right flip button 58b.
  • the display control unit 11 rotates the end effector model M2 by 180 ° about the straight line including the reference position vector V12 as the rotation axis.
  • the display control unit 11 sets the end effector model M2 with the Z axis of the end effector coordinate system coordinate-transformed using the coordinate conversion matrix determined by the determination unit 14 as the rotation axis. Rotate 180 °. The user can easily invert the end effector model M2 by operating the inversion button group 58.
  • the determination unit 14 resets all the adjustments of the position and orientation of the end effector model M2. Therefore, the display control unit 11 returns the position / orientation of the end effector model M2 displayed in the area 51 to the position / orientation before adjustment.
  • the duplication button group 60 shown in FIG. 13 is a button group for making settings related to automatic duplication. As shown in FIG. 13, the duplicate button group 60 includes a "Single" button 60a. When the button 60a is operated, the automatic duplication function is set to off.
  • FIG. 16 is a diagram showing an example of a setting screen when the "Fan” button 60b included in the duplicate button group is operated.
  • FIG. 17 is a diagram showing an example of a setting screen when the “Cylinder” button 60c included in the duplicate button group is operated.
  • FIG. 18 is a diagram showing an example of a setting screen when the “Hybrid” button 60d included in the duplicate button group is operated.
  • FIG. 19 is a diagram showing an example of a setting screen when the “Circle” button 60e included in the duplicate button group is operated.
  • the duplication processing unit 15 determines the rotation axis according to the operation of the buttons 60b to 60e.
  • the duplication processing unit 15 has a midpoint P100 between the center of gravity of the end face of the part belonging to the “Right tip finger” group and the center of gravity of the end face of the part belonging to the “Left tip finger” group in the end effector model M2 (see FIG. 8C). ) Coordinates are calculated. The coordinates of the midpoint P100 are calculated based on the coordinates of the parts converted using the coordinate conversion matrix determined by the determination unit 14.
  • the duplication processing unit 15 determines a straight line passing through the midpoint P100 and parallel to the reference position vector V12 as the rotation axis according to the operation of the button 60b.
  • the duplication processing unit 15 determines a straight line passing through the midpoint P100 and parallel to the reference position vector V11 as the rotation center axis in response to the operation of the button 60c.
  • the duplication processing unit 15 determines a straight line passing through the midpoint P100 and parallel to the reference position vector V11 as the first rotation axis in response to the operation of the button 60d, passes through the midpoint P100, and is parallel to the reference position vector V12.
  • Straight line is determined as the second rotation axis.
  • the duplication processing unit 15 determines a straight line passing through the midpoint P100 and parallel to the reference position vector V13 as the rotation axis in response to the operation of the button 60e.
  • the duplicate button group 60 includes buttons 60f to 60h for setting a rotation angle with respect to the rotation center axis.
  • the button 60f is operated to set the start angle.
  • the button 60g is operated to set the end angle.
  • the button 60h is operated to set the number of duplicates.
  • Each of the buttons 60f to 60h includes a plus button and a minus button. By operating the plus button, the angle or number is changed to the positive side. By operating the minus button, the angle or number is changed to the negative side.
  • the duplication button group 60 includes a pull-down button 60i for selecting the unit change amount of the angle when the buttons 60f and 60g are operated.
  • a pull-down button 60i for selecting the unit change amount of the angle when the buttons 60f and 60g are operated.
  • 1 ° is selected as the unit change amount.
  • the amount of change in the number of duplicates when the button 60h is operated is 1.
  • the display control unit 11 displays the text T66 indicating the start angle, the end angle, and the number of duplicates in the area 51.
  • the user can set a desired start angle, end angle, and number of duplicates by operating the buttons 60f to 60h while looking at the text T66.
  • the duplication processing unit 15 duplicates the end effector models M2_1 to M2_3 by rotating the end effector model M2 by ⁇ 30 °, 0 °, and 30 ° with respect to the rotation axis, respectively.
  • the display control unit 11 displays the duplicated end effector models M2_1 to M2_3 in the area 51.
  • the end effector model M2_2 coincides with the end effector model M2.
  • the duplication processing unit 15 rotates the end effector model M2 by ⁇ 150 °, ⁇ 100 °, ⁇ 50 °, 0 °, 50 °, 100 °, 150 ° with respect to the rotation axis, thereby causing the end effector model.
  • M2_1 to M2_7 are duplicated respectively.
  • the display control unit 11 displays the duplicated end effector models M2_1 to M2_7 in the area 51.
  • the end effector model M2_4 coincides with the end effector model M2.
  • the duplication processing unit 15 duplicates the end effector models M2_1 to M2_3 by rotating the end effector model M2 by ⁇ 30 °, 0 °, and 30 ° with respect to the first rotation axis, respectively.
  • the duplication processing unit 15 rotates the end effector model M2_1 with respect to the second rotation axis by ⁇ 150 °, ⁇ 100 °, ⁇ 50 °, 0 °, 50 °, 100 °, 150 °. Duplicate the 7 end effector models.
  • the duplication processing unit 15 rotates the end effector model M2_2 (M2) by ⁇ 150 °, -100 °, -50 °, 0 °, 50 °, 100 °, 150 ° with respect to the second rotation axis. , 7 end effector models are duplicated.
  • the duplication processing unit 15 rotates the end effector model M2_3 by ⁇ 150 °, -100 °, -50 °, 0 °, 50 °, 100 °, 150 ° with respect to the second rotation axis, thereby causing seven rotations. Duplicate the end effector model.
  • the duplication processing unit 15 duplicates a total of 24 end effector models M2-1 to M2_24.
  • the display control unit 11 displays the duplicated end effector models M2_1 to M2_24 in the area 51.
  • the duplication processing unit 15 duplicates the end effector models M2_1 to M2_3 by rotating the end effector model M2 by ⁇ 88 °, ⁇ 6.5 °, and 75 ° with respect to the rotation axis, respectively.
  • the display control unit 11 displays the duplicated end effector models M2_1 to M2_3 in the area 51.
  • the duplication processing unit 15 duplicates the end effector model based on the adjusted position and orientation. Do it. Specifically, the duplication processing unit 15 sets the rotation axis based on the end effector model M2 of the adjusted position and orientation. The duplication processing unit 15 duplicates the end effector model by rotating the adjusted end effector model M2 with respect to the set rotation axis. Therefore, for example, when the end effector model M2 is translated by +1 in the direction of the reference position vector V11 in FIG. 17, the duplicated end effector models M2-1 to M2_7 are also translated by +1 in the direction of the reference position vector V11.
  • the duplication processing unit 15 duplicates the end effector model based on the adjusted position and orientation. However, the duplication processing unit 15 sets the rotation axis based on the end effector model M2 of the position and orientation before adjustment. Then, the duplication processing unit 15 duplicates the end effector model by rotating the adjusted end effector model M2 with respect to the set rotation axis. Therefore, for example, when the end effector model M2 is translated by +1 in the direction of the reference position vector V13 by operating the button 57h in FIG. 17, each of the duplicated end effector models M2_1 to M2_7 is brought closer to the rotation axis. Translate by +1.
  • the setting screen 50 includes a copy button 61.
  • the duplication processing unit 15 duplicates the end effector model M2 in the position and orientation determined by the determination unit 14.
  • the initial position / orientation of the duplicated end effector model is the same as the position / orientation determined by the determination unit 14.
  • the display control unit 11 displays the duplicated end effector model in the area 51.
  • the duplication processing unit 15 changes the position and orientation of the duplicated end effector model in response to an operation on the duplicated end effector model.
  • the setting screen 50 includes a reverse copy button 62.
  • the duplication processing unit 15 is point-symmetrical with respect to the origin of the work coordinate system (center of gravity of the work model M1) and the end effector model M2 of the position and orientation determined by the determination unit 14. Duplicate an end effector model.
  • the display control unit 11 displays the duplicated end effector model in the area 51.
  • the display control unit 11 has a display function of the auxiliary guide surface so that the relative positional relationship between the tip of the end effector model M2 and the work model M1 can be easily grasped.
  • the auxiliary guide surface is displayed in response to the operation of the pull-down button 63 (see FIG. 13) on the setting screen 50.
  • FIG. 20 is a diagram showing an example of an auxiliary guide surface displayed on the setting screen.
  • "Cylinder (X)" is selected by the pull-down button 63.
  • an auxiliary guide surface is formed between the part 78 belonging to the “Right tip finger” group of the end effector model M2 and the part 80 belonging to the “Left tip finger” group.
  • 69a is displayed.
  • the auxiliary guide surface 69a has a cylindrical shape having a diameter of a line segment connecting points P101 and P102 (see (c) in FIG. 8) located on the end faces of parts 78 and 80, respectively, and having an axis parallel to the reference position vector V11. is there.
  • the point P101 is the point on the end face of the part 78 that passes through the center of gravity of the end face and is parallel to the movable direction and is the closest point to the part 80.
  • the point P102 coincides with the point P10 (see FIG. 10) that is closest to the part 78 among the points on the line that passes through the center of gravity of the end face and is parallel to the movable direction on the end face of the part 80.
  • Cylinder (Z) may be selected by the pull-down button 63.
  • a cylindrical auxiliary guide surface having a diameter of a line segment connecting the points P101 and P102 and having an axis parallel to the reference position vector V13 is displayed.
  • FIG. 21 is a diagram showing another example of the auxiliary guide surface displayed on the setting screen.
  • "Rectangle (Z)" is selected by the pull-down button 63.
  • a square tube shape is formed between the part 78 belonging to the “Right tip finger” group of the end effector model M2 and the part 80 belonging to the “Left tip finger” group.
  • Auxiliary guide surface 69b is displayed.
  • the cross section of the auxiliary guide surface 69b is a circular circumscribed square having a diameter of a line segment connecting points P101 and P102 located at the tips of parts 78 and 80, respectively.
  • the axis of the square cylinder-shaped auxiliary guide surface 69b is parallel to the reference position vector V13.
  • Rectangle (X) may be selected by the pull-down button 63.
  • the area 51 of the setting screen 50 has a square tube-shaped auxiliary guide surface having a cross section of a circular circumscribed square having a diameter of a line segment connecting points P101 and P102 and having an axis parallel to the reference position vector V11. Is displayed.
  • the user may operate the pull-down button 63 according to the shape of the work model M1, the relative positional relationship between the end effector model M2 and the work model M1, and appropriately change the shape and orientation of the auxiliary guide surface.
  • the display control unit 11 displays the auxiliary guide surface based on the adjusted position / orientation. Therefore, for example, when the end effector model M2 is translated by +1 in the direction of the reference position vector V11 in FIG. 20, the auxiliary guide surface 69a is also translated by +1 in the direction of the reference position vector V11. Further, when the stroke width of the end effector model M2 is changed by +1 in FIG. 20, the diameter of the auxiliary guide surface 69a is also changed by +1.
  • the display control unit 11 assists based on the end effector model M2 of the position / orientation before adjustment (that is, the position / orientation determined by the determination unit 14). Display the guide surface. Therefore, for example, even if the end effector model M2 is translated by +1 in the direction of the reference position vector V13 by operating the button 57h in FIG. 20, the auxiliary guide surface 69a does not translate.
  • the setting screen 50 further includes the button groups 64, 65, 66.
  • the button group 64 is operated to set the traveling direction in the approach operation.
  • FIG. 22 is a diagram illustrating a method of setting the approach operation.
  • the button group 64 includes a "Tip” button 64a and a “ToolZ” button 64b.
  • the "Tip” button 64a is operated when setting an approach operation for bringing the end effector 301 closer to the work 1 along the extending direction of the finger portion 310.
  • the extension direction of the finger portion 310 corresponds to the normal direction of the end faces of the parts (part 78b in FIG. 22) belonging to the "Right tip finger” and “Left tip finger” groups in the end effector model M2.
  • the “ToolZ” button 64b is operated when setting an approach operation for bringing the end effector 301 closer to the work 1 along the normal direction of the flange surface of the articulated arm 302 (the Z-axis direction of the end effector coordinate system).
  • the button group 65 is operated to set the priority of the position / orientation determined by the determination unit 14.
  • the button group 65 includes a "High” button and a “Low” button.
  • the user operates the “High” button for the high-priority position and orientation, and operates the “Low” button for the low-priority position and orientation.
  • the registration unit 17 registers the position / posture in which the “High” button is operated as a high-priority gripping point candidate.
  • the registration unit 17 registers the position / posture in which the “Low” button is operated as a low-priority gripping point candidate.
  • the image processing unit 25 determines the position and orientation of the end effector 301 when picking the target work 2 based on the high-priority gripping point candidates.
  • the end effector 301 in the position and orientation determined by using the high-priority gripping point candidate may interfere with the other work 1 or the container 5.
  • the image processing unit 25 determines the position and orientation of the end effector 301 when picking the target work 2 based on the low priority gripping point candidate.
  • the button group 66 is operated to set a gripping method using the two finger portions 310.
  • the button group 66 includes an "Closing" button for setting the outer diameter grip and an "Open” button for setting the inner diameter grip.
  • the display control unit 11 displays the text 54 indicating the current setting state in the area 51.
  • the text 54 indicates “Object ID”, “Hand ID”, “Grasp point”, “DB ID”, “Priority”, “Approach”, “Pattern”, and “Direction”.
  • the "Object ID” is an ID that identifies the work model M1.
  • the “Hand ID” is an ID that identifies the end effector model M2.
  • the “Hand ID” is selected from the IDs entered in the input field 89 of FIG.
  • the "Grasp point” is the total number of positions and postures (denominator) determined by the determination unit 14 according to the designation of the first point P1 and the second point P2, and the position of the end effector model M2 currently displayed in the area 51.
  • the "DB ID” is the total number (denominator) of the position / orientation determined by the determination unit 14 and the position / orientation of the automatically duplicated end effector model, and the position / orientation of the end effector model M2 currently displayed in the area 51. Indicates a number (molecule). “Priority” indicates the priority currently set by operating the button group 65. “Approach” indicates the approach operation currently set by operating the button group 64. “Pattern” indicates an automatic duplication pattern currently set by operating the duplication button group 60. “Direction” indicates a gripping method currently set by operating the button group 66.
  • the determination unit 16 determines interference with the work model M1 for each of the end effector model M2 in the position and orientation determined by the determination unit 14 and the end effector model M2_k duplicated by the duplication processing unit 15. When the adjustment button group 57 is operated, the determination unit 16 determines the interference between the end effector models M2 and M2_k of the adjusted position and orientation and the work model M1.
  • the determination unit 16 makes an interference determination based on the coordinates of each part constituting the end effector models M2 and M2_k and the position coordinates of the triangular mesh constituting the surface of the work model M1.
  • the coordinates of each part constituting the end effector model M2 are calculated by converting the coordinates of each part indicated by the model data 43 using the coordinate transformation matrix determined by the determination unit 14.
  • the coordinates of each part constituting the end effector model M2_k are further calculated based on the rotation axis and the rotation angle determined according to the operation on the duplicate button group 60.
  • the shape and size of the end effector model M2 created by the model creation unit 30 may not match the shape and size of the end effector 301. Therefore, the determination unit 16 may enlarge the end effector models M2 and M2_k by the margin indicated by the model data 43 (the margin input in the input field 90 of FIG. 7). As a result, it is possible to prevent the position and orientation of the end effector 301 that interferes with the target work 2 from being mistakenly registered as a gripping point candidate.
  • FIG. 23 is a diagram showing an example of a setting screen when the end effector model of the position and orientation determined by the determination unit interferes with the work model.
  • the display control unit 11 changes the display format of the end effector model M2. For example, the display control unit 11 changes the display color of the parts 77 to 80 corresponding to the finger portion 310 in the end effector model M2.
  • the user can recognize that the end effector model M2 and the work model M1 are interfering with each other by checking the display colors of the parts 77 to 80.
  • the user may operate the adjustment button group 57 to adjust the position and orientation of the end effector model M2 so as not to interfere with the work model M1.
  • the registration unit 17 registers the position / orientation determined by the determination unit 14 and the position / orientation determined by the duplication processing unit 15 (position / orientation of the duplicated end effector model) as gripping point candidates.
  • the registration unit 17 receives the operation of the adjustment button group 57, the registration unit 17 registers the adjusted position and orientation as a gripping point candidate.
  • the registration unit 17 excludes the position and orientation of the end effector models M2 and M2_k determined by the determination unit 16 to interfere with the work model M1 from the gripping point candidates.
  • the registration unit 17 is an end effector model that is rotated by n ⁇ ⁇ about the axis of rotational symmetry from the position and orientation determined by the determination unit 14. The position and orientation are also registered as gripping point candidates. Note that n is an integer greater than or equal to 1 and less than 360 / ⁇ . Similarly, the registration unit 17 also includes the position and orientation of the end effector model that is rotated by n ⁇ ⁇ about the axis of rotational symmetry from the position and orientation of the end effector model M2_k that is automatically duplicated in response to the operation of the duplication button group 60. Register as a gripping point candidate.
  • FIG. 24 is a diagram illustrating an automatic registration process of grip point candidates in consideration of rotational symmetry of the end effector model.
  • FIG. 24 shows an example of the automatic registration process when 180 ° (two-fold symmetry) is set as the minimum rotation angle ⁇ .
  • FIG. 24A shows an end effector model M2 having a position and orientation determined by the determination unit 14.
  • the end effector model M2 (1) is rotated by 180 ° about the rotation target axis (Z axis of the end effector coordinate system) from the position and orientation of the end effector model M2 shown in (a). Is shown.
  • the end effector model M2 and the end effector model M2 (1) overlap each other.
  • the registration unit 17 registers the position and orientation of the end effector model M2 shown in FIG. 24 (a) as a gripping point candidate, the registration unit 17 of the end effector model M2 (1) shown in FIG. 24 (b).
  • the position and orientation are also automatically registered as gripping point candidates.
  • FIG. 25 is a flowchart showing an example of the flow of the registration process of the gripping point candidate.
  • the CPU 110 of the image processing device 100 accepts the designation of the first point P1 and the second point P2 on the work model M1 indicated by the CAD data 42 (step S1).
  • the CPU 110 specifies the normal vectors of the first point P1 and the second point P2 based on the CAD data 42 (step S2).
  • the CPU 110 calculates a position vector V1 having the same direction as the direction from the first point P1 to the second point P2, starting from the point P0 defined from the first point P1 and the second point P2 (step). S3).
  • the CPU 110 calculates a position vector V2 defined from the normal vector of the first point P1 and the normal vector of the second point P2 (step S4). Further, the CPU 110 calculates the position vector V3 represented by the outer product of the position vector V1 and the position vector V2 (step S5).
  • the CPU 110 makes the relative positional relationship between the predetermined reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 with respect to the end effector model M2 approach the predetermined reference relationship.
  • the position and orientation of the end effector model M2 are determined (step S6).
  • the CPU 110 registers the determined position / orientation as a gripping point candidate (step S7). Specifically, the CPU 110 registers the relative position / orientation of the end effector model M2 of the position / orientation determined in step S6 with respect to the work model M1 as a gripping point candidate.
  • the adjusted position / posture may be registered as a gripping point candidate.
  • the position / orientation of the end effector model M2_k duplicated by rotating the end effector model M2 of the position / orientation determined in step S6 in a designated direction by a designated angle may also be registered as a gripping point candidate.
  • the position and orientation of the end effector model duplicated in consideration of the rotational symmetry of the end effector model M2 may also be registered as a gripping point candidate.
  • the end effector 301 is not limited to the two-finger hand.
  • the end effector 301 may be a multi-finger hand having three or more fingers or a suction hand having one or more vacuum pads.
  • the registration unit 17 registers the position and orientation of the two end effector models rotated by 120 ° and 240 ° around the axis of rotational symmetry from the position and orientation determined by the determination unit 14 as gripping point candidates.
  • FIG. 26 is a diagram showing an example of a model creation screen during creation of an end effector model corresponding to a suction hand.
  • the end effector model M2 is composed of parts 97 to 99.
  • Two groups of "Base” and “Bellows” are predetermined for the end effector which is a suction hand.
  • the "Base” group corresponds to the part that supports the vacuum pad.
  • the “Bellows” group corresponds to vacuum pads.
  • Parts 97 and 98 belong to the "Base” group.
  • Part 99 belongs to the "Bellows” group.
  • FIG. 27 is a diagram showing still another example of the auxiliary guide surface displayed on the setting screen.
  • the end effector model M2 created by using the model creation screen 70 shown in FIG. 26 is displayed.
  • the setting screen 50 illustrated in FIG. 27 corresponds to the state when the tab 68 is operated, and is displayed when the end effector 301 is a suction hand.
  • the determination unit 14 rigidly transforms the end effector coordinate system so that the relative positional relationship between the reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 is closest to the reference relationship.
  • Determine the coordinate transformation matrix That is, the determination unit 14 corrects the position vectors V1, V2, and V3 based on the reference relationship in the work coordinate system.
  • the determination unit 14 minimizes the difference between the XYZ coordinates of the end points of the reference position vectors V11, V12, and V13 after the coordinate conversion and the XYZ coordinates of the end points of the corrected position vectors V1, V2, and V3. Determine the coordinate transformation matrix.
  • the method of determining the coordinate transformation matrix by the determination unit 14 is not limited to this.
  • the coordinate transformation matrix of rigid transformation is determined by using the coordinates of at least three points that are not on a straight line in each coordinate system. Therefore, the determination unit 14 has the XYZ coordinates of the common start point and each end point of the reference position vectors V11 and V12 after the coordinate conversion, and the common start point and the XYZ coordinates of each end point of the corrected position vectors V1 and V2.
  • the coordinate conversion matrix may be determined so that the difference between the two is minimized. In this case, the calculation unit 13 does not have to calculate the position vector V3. Further, the model creation unit 30 does not have to set the reference position vector V13 for the end effector model M2.
  • the calculation unit 13 calculates the position vector represented by the outer product of the position vector V1 and the position vector V2 as the position vector V3.
  • the calculation unit 13 may calculate the position vector V3 by another method.
  • the calculation unit 13 may calculate the position vector orthogonal to the position vector V1 as the position vector V3, starting from the same point P0 as the position vector V1.
  • FIG. 28 is a diagram showing a calculation method of the position vector V3 according to the modification 3.
  • the area 51 of the setting screen 50 is shown.
  • the calculation unit 13 starts at the point P0 where the first point P1 and the second point P2 are defined, and has the same direction as the direction from the first point P1 to the second point P2. Calculate the vector V1. Further, the calculation unit 13 calculates a position vector that passes through the point P0 and is parallel to the screen, with the point P0 as the starting point and the position vector orthogonal to the position vector V1 as the position vector V3.
  • FIG. 28B shows position vectors V1, V2, V3 from different viewpoints.
  • the calculation unit 13 calculates the position vector V2 in the same manner as in the above specific example. As shown in FIG. 28 (b), it is highly possible that the position vectors V1, V2, and V3 calculated according to the modification 3 are not orthogonal to each other.
  • FIG. 28C shows the relative positional relationship between the end effector model M2 and the work model M1 in the position and orientation determined by the determination unit 14.
  • the determination unit 14 determines the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11 to V13 and the position vectors V1 to V3 approaches the reference relationship, as in the above specific example.
  • the reference relationship includes a relationship in which the orientation of the position vector V2 and the orientation of the reference position vector V12 match.
  • the position vectors V1, V2, and V3 are not orthogonal to each other, the direction of the position vector V2 and the direction of the reference position vector V12 may deviate from each other as shown in FIG. 28 (c). In such a case, the position and orientation of the end effector model M2 are adjusted by operating the adjustment button group 57.
  • the calculation unit 13 calculates the position vector defined from the normal vectors of the first point P1 and the second point P2 in the work model M1 as the position vector V2.
  • the calculation unit 13 may calculate the position vector V2 by another method.
  • FIG. 29 is a diagram showing a calculation method of the position vector V2 according to the modified example 4.
  • the area 51 of the setting screen 50 is shown.
  • the calculation unit 13 starts at the point P0 where the first point P1 and the second point P2 are defined, and has the same direction as the direction from the first point P1 to the second point P2. Calculate the vector V1. Further, the calculation unit 13 calculates the position vector orthogonal to the position vector V1 as the position vector V3 on the plane parallel to the screen through the point P0 as in the above-described modification 3. ..
  • FIG. 29 (b) shows position vectors V1, V2, V3 from different viewpoints.
  • the calculation unit 13 calculates the outer product of the position vector V1 and the position vector V3 as the position vector V2.
  • the position vectors V1, V2, and V3 calculated according to the modification 4 are orthogonal to each other.
  • FIG. 29 (c) shows the relative positional relationship between the end effector model M2 and the work model M1 in the position and orientation determined by the determination unit 14.
  • the determination unit 14 determines the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11 to V13 and the position vectors V1 to V3 approaches the reference relationship, as in the above specific example.
  • the reference relationship includes a relationship in which the orientation of the position vector V2 and the orientation of the reference position vector V12 match. Since the position vectors V1, V2, and V3 are orthogonal to each other, the orientation of the position vector V2 and the orientation of the reference position vector V12 coincide with each other as shown in FIG. 29 (c).
  • the direction of the position vector V2 is not limited to the normal direction on the surface of the work model M1, the positions of the first point P1 and the second point P2, and the first point P1 and the second point. It depends on the posture of the work model M1 when P2 is specified. Therefore, as shown in FIG. 29 (c), the end effector model M2 and the work model M1 may interfere with each other. In such a case, the position and orientation of the end effector model M2 are adjusted by operating the adjustment button group 57.
  • FIG. 30 is a diagram showing a calculation method of the position vector V2 according to the modified example 5.
  • the area 51 of the setting screen 50 is shown.
  • the calculation unit 13 starts at the point P0 where the first point P1 and the second point P2 are defined, and has the same direction as the direction from the first point P1 to the second point P2. Calculate the vector V1.
  • the display control unit 11 changes the posture of the work model M1 displayed in the area 51. Specifically, the display control unit 11 changes the posture of the work model M1 displayed in the area 51 so that the point on the line passing through the point P0 and orthogonal to the position vector V1 becomes the user's viewpoint.
  • FIG. 30B shows the region 51 after the posture of the work model M1 has been changed.
  • the reception unit 12 receives the designation of the third point P3 on the plane passing through the point P0 and orthogonal to the position vector V1 in the region 51 shown in FIG. 30 (b).
  • the calculation unit 13 calculates a position vector having the same direction as the direction from the point P0 to the third point P3, starting from the point P0, as the position vector V2. Further, the calculation unit 13 calculates the outer product of the position vector V1 and the position vector V2 as the position vector V3, as in the above specific example.
  • the determination unit 14 determines the position and orientation of the end effector model M2 so that the relative positional relationship between the reference position vectors V11 to V13 and the position vectors V1 to V3 is closest to the reference relationship, as in the above specific example.
  • the user can set the gripping point candidate only by designating the first point P1, the second point P2, and the third point P3.
  • the model creation unit 30 creates the end effector model M2 according to an input instruction by the user. However, the model creation unit 30 accepts the designation of CAD data that defines the three-dimensional shape of the end effector 301, and sets the reference position vectors V11, V12, and V13 for the end effector model indicated by the designated CAD data. You may.
  • the image processing device 100 is assumed to include the gripping point setting unit 10.
  • the setting device communicably connected to the image processing device 100 may include the gripping point setting unit 10.
  • the image processing device 100 sets the position / orientation candidate (grip point candidate) of the end effector 301 when the end effector 301 of the robot 300 picks the work 1.
  • the image processing device 100 includes a reception unit 12, a calculation unit 13, a determination unit 14, and a registration unit 17.
  • the reception unit 12 receives the designation of the first point P1 and the second point P2 on the work model M1 indicated by the CAD data 42 that defines the three-dimensional shape of the work 1.
  • the calculation unit 13 calculates a position vector V1 having the same direction as the direction from the first point P1 to the second point P2, starting from the point P0 defined from the first point P1 and the second point P2.
  • the calculation unit 13 calculates the position vector V2 defined from the normal vectors of the first point P1 and the second point P2 in the work model M1.
  • the determination unit 14 is a first reference in which the relative positional relationship between the reference position vectors V11 and V12 and the position vectors V1 and V2, which are predetermined with respect to the end effector model M2 showing the three-dimensional shape of the end effector 301, is predetermined.
  • the position and orientation of the end effector model M2 are determined so as to approach the relationship.
  • the first reference relationship is, for example, a relationship that coincides with the reference position vectors V11 and V12 when the position vectors V1 and V2 are translated by a predetermined distance in the direction of the position vector V2.
  • the registration unit 17 registers the position / posture determined by the determination unit 14 as a gripping point candidate.
  • the user can set the gripping point candidate only by designating the first point P1 and the second point P2 on the work model M1. That is, the position and orientation of the end effector 301 that picks the work 1 is easily set.
  • the calculation unit 13 further calculates the position vector V3 represented by the outer product of the position vector V1 and the position vector V2.
  • the determination unit 14 the relative positional relationship between the reference position vectors V11 and V12 and the position vectors V1 and V2 approaches the first reference relationship, and the reference position vector V13 and the position vector predetermined for the end effector model M2.
  • the position and orientation of the end effector model M2 are determined so that the relative positional relationship with V3 approaches a predetermined second reference relationship.
  • the second reference relationship is, for example, a relationship that matches the reference position vector V13 when the position vector V3 is translated by a predetermined distance in the direction of the position vector V2.
  • the determination unit 14 can determine the position / orientation that can be registered as a gripping point candidate in consideration of the relative positional relationship between the position vector V3 and the reference position vector V13.
  • the calculation unit 13 may calculate the position vector orthogonal to the position vector V1 as the position vector V3.
  • the image processing device 100 further includes a model creation unit 30 that creates an end effector model M2 according to an input instruction.
  • the model creation unit 30 sets the reference position vectors V11, V12, and V13 for the end effector model M2.
  • the user can freely create the end effector model M2 by using the model creation unit 30.
  • end effector model M2 may be shown by CAD data that defines the three-dimensional shape of the end effector 301 as in the modification 6. In this case, the user does not have to create the end effector model M2 using the model creation unit 30.
  • the end effector 301 has rotational symmetry.
  • the model creation unit 30 sets the axis of rotational symmetry in the end effector model M2 and the minimum rotational angle ⁇ that overlaps with itself.
  • the registration unit 17 further registers the position / orientation of the end effector model M2 rotated by n times the minimum rotation angle ⁇ about the axis of rotational symmetry from the position / orientation determined by the determination unit 14 as a gripping point candidate.
  • n is an integer greater than or equal to 1 and less than 360 ° / ⁇ .
  • the work 1 can be gripped even if the end effector 301 is rotated by n times the minimum rotational angle ⁇ with respect to the axis of rotational symmetry.
  • the position / orientation of the end effector model M2 rotated by n times the minimum rotation angle ⁇ around the axis of rotational symmetry from the position / orientation determined by the determination unit 14 is also automatically registered as a gripping point candidate. To. This reduces the time and effort required for the user to register the gripping point candidate.
  • the image processing device 100 further includes a display control unit 11 for displaying the work model M1 on the setting screen 50 of the display device 150.
  • the reception unit 12 receives the first point P1 and the second point P2 based on the positions designated on the setting screen 50. As a result, the user can specify the first point P1 and the second point P2 at a desired position on the work model M1 while looking at the work model M1 displayed on the setting screen 50.
  • the display control unit 11 displays the coordinate axes (X-axis 52x, Y-axis 52y, and Z-axis 52z) based on the work model M1 on the setting screen 50.
  • the display control unit 11 changes the position and orientation of the work model M1 displayed on the setting screen 50 in response to an operation on the work model M1.
  • the user can easily change the position and orientation of the work model M1 to a desired state so that the first point P1 and the second point P2 can be easily specified while looking at the coordinate axes with respect to the work model M1.
  • the display control unit 11 superimposes and displays the end effector model M2 of the position and orientation determined by the determination unit 14 on the work model M1 on the setting screen 50.
  • the determination unit 14 accepts at least one operation of translational movement along the axial direction of the coordinate system (end effector coordinate system) of the end effector model M2 and rotational movement around a rotation axis parallel to the axial direction.
  • the determined position and orientation are adjusted according to the operation.
  • the user adjusts the position and orientation of the end effector model M2 determined so that the relative positional relationship between the reference position vectors V11, V12, V13 and the position vectors V1, V2, V3 approaches the reference relationship, and after the adjustment.
  • Position and orientation can be registered as gripping point candidates.
  • the reference position vectors V11, V12, and V13 are parallel to the X-axis, Y-axis, and Z-axis in the end effector coordinate system, respectively.
  • the display control unit 11 displays the reference position vectors V11, V12, and V13 on the setting screen 50. This makes it easier for the user to adjust the position and orientation of the end effector model M2 to a desired state while looking at the reference position vectors V11, V12, and V13.
  • the display control unit 11 may display the axial direction of the end effector coordinate system on the setting screen 50. Specifically, the display control unit 11 displays the vectors V21, V31, vectors V22, V32 and vectors V23, V33 parallel to the X-axis, Y-axis, and Z-axis in the end effector coordinate system, respectively. This makes it easier for the user to adjust the position and orientation of the end effector model M2 to a desired state while looking at the vectors V21, V31, V22, V32, V23, and V33.
  • the display control unit 11 displays the auxiliary guide surfaces 69a, 69b, 69c having a predetermined shape in contact with the tip of the end effector model M2 on the setting screen 50.
  • the end effector 301 has, for example, two finger portions 310.
  • a cylindrical auxiliary guide surface 69a having a diameter of a line segment connecting two points corresponding to the tips of the two finger portions 310 in the end effector model M2 is displayed.
  • a square tubular auxiliary guide surface 69b having a cross section of a circumscribed square of a circle having the diameter of the line segment is displayed.
  • the end effector 301 may be a suction hand having one or more vacuum pads.
  • a flat auxiliary guide surface 69c including the tip surface of the part corresponding to one or more vacuum pads in the end effector model M2 is displayed.
  • the user can easily grasp the relative positional relationship between the tip of the end effector model M2 and the work model M1.
  • the image processing device 100 further includes a determination unit 16 that determines interference between the end effector model M2 and the work model M1 in the position and orientation determined by the determination unit 14.
  • the display control unit 11 superimposes and displays the end effector model M2 of the position and orientation determined by the determination unit 14 on the work model M1 on the setting screen 50.
  • the display control unit 11 changes the display format of the end effector model M2 according to the determination by the determination unit 16 that the interference is occurring. As a result, the user can easily grasp that the end effector model M2 and the work model M1 are interfering with each other.
  • the registration unit 17 deletes the position / posture determined to be interfering with the determination unit 16 from the gripping point candidates. As a result, it is possible to prevent the position and orientation of the end effector model M2 that interferes with the work model M1 from being registered as a gripping point candidate.
  • this embodiment includes the following disclosures.
  • the reception unit (12) that accepts the designation of the first point (P1) and the second point (P2) on the work model (M1) indicated by the first CAD data (42) that defines the three-dimensional shape of the work (1).
  • the direction is the same as the direction from the first point (P1) to the second point (P2).
  • the second position vector (V2) defined from the first position vector (V1) and the normal vectors (Va, Vb) of the first point (P1) and the second point (P2) in the work model (M1).
  • the calculation unit (13) The first reference position vector (V11) and the second reference position vector (V12) predetermined for the end effector model (M2) showing the three-dimensional shape of the end effector (301), and the first position vector (V12).
  • a determination unit (14) that determines the position and orientation of the end effector model (M2) so that the relative positional relationship between V1) and the second position vector (V2) approaches a predetermined first reference relationship.
  • a setting device (100) including a registration unit (17) for registering a position / posture determined by the determination unit (14) as the position / posture candidate.
  • the calculation unit (13) further calculates a third position vector (V3) represented by the outer product of the first position vector (V1) and the second position vector (V2).
  • the determination unit (14) has a relative positional relationship between the first reference position vector (V11) and the second reference position vector (V12) and the first position vector (V1) and the second position vector (V2). Approaches the first reference relationship, and the relative positional relationship between the third reference position vector (V13) and the third position vector (V3) predetermined with respect to the end effector model (M2) is predetermined.
  • the setting device (100) according to the configuration 1 for determining the position and orientation of the end effector model (M2) so as to approach the second reference relationship.
  • the calculation unit (13) further calculates a third position vector (V3) orthogonal to the first position vector (V1).
  • the determination unit (14) has a relative positional relationship between the first reference position vector (V11) and the second reference position vector (V12) and the first position vector (V1) and the second position vector (V2). Approaches the first reference relationship, and the relative positional relationship between the third reference position vector (V13) and the third position vector (V3) predetermined with respect to the end effector model (M2) is predetermined.
  • the setting device (100) according to the configuration 1 for determining the position and orientation of the end effector model (M2) so as to approach the second reference relationship.
  • a model creation unit (30) for creating the end effector model (M2) according to an input instruction is further provided.
  • the setting device (100) according to any one of configurations 1 to 3, wherein the model creating unit (30) sets the first reference position vector (V11) and the second reference position vector (V12).
  • the end effector (301) has rotational symmetry and has rotational symmetry.
  • the model creation unit (30) sets the axis of rotational symmetry in the end effector model (M2) and the minimum rotation angle ⁇ that overlaps with itself.
  • the registration unit (17) sets the position and orientation of the end effector model rotated by n times the minimum rotation angle ⁇ around the axis of rotational symmetry from the position and orientation determined by the determination unit (14). Further register as a posture candidate, The setting device (100) according to the configuration 5, wherein n is an integer of 1 or more and less than 360 ° / ⁇ .
  • a display control unit (11) for displaying the work model (M1) on the screen (50) of the display device (150) is further provided.
  • the reception unit (12) according to any one of configurations 1 to 6, which receives the first point (P1) and the second point (P2) based on the position designated on the screen (50).
  • the display control unit (11) The coordinate axes (52x, 52y, 52z) based on the work model (M1) are displayed on the screen (50).
  • the setting device (100) according to configuration 7, which changes the position and orientation of the work model (M1) displayed on the screen (50) in response to an operation on the work model (M1).
  • the display control unit (11) superimposes and displays the end effector model (M2) of the position and orientation determined by the determination unit (14) on the work model (M1).
  • the determination unit (14) accepts at least one operation of translational movement along a predetermined direction and rotational movement about a rotation axis parallel to the predetermined direction, and in response to the operation,
  • the setting device (100) according to configuration 7 or 8, which adjusts the determined position and orientation.
  • the end effector (301) has two fingers (310) and has two fingers.
  • the guide surfaces (69a, 69b) have a cylindrical shape having a diameter of a line segment connecting two points (P101, P102) corresponding to the tips of the two finger portions (310) in the end effector model (M2).
  • the end effector (301) is a suction hand having one or more vacuum pads.
  • the setting device (100) according to the configuration 11 in which the guide surface (69c) has a planar shape including the tip surface of a part (99) corresponding to the one or more vacuum pads in the end effector model (M2).
  • a determination unit (16) for determining interference between the end effector model (M2) and the work model (M1) having a position and orientation determined by the determination unit (14) is further provided.
  • a determination unit (16) for determining interference between the end effector model (M2) and the work model (M1) having a position and orientation determined by the determination unit (14) is further provided.
  • the setting device (100) according to any one of configurations 1 to 13, wherein the registration unit (17) deletes the position / posture determined to be interfering with the determination unit (16) from the position / posture candidates.
  • (Structure 16) This is a method of setting a position / orientation candidate of the end effector (301) when the end effector (301) of the robot (300) picks the work (1).
  • the second position vector (V2) defined from the first position vector (V1) and the normal vectors (Va, Vb) of the first point (P1) and the second point (P2) in the work model (M1).
  • a setting method including a step of registering a position / posture determined by the determination unit (14) as the position / posture candidate.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

演算部は、ワークモデル上の第1点および第2点から定義される点を始点とし、第1点から第2点への向きと同じ向きを有する位置ベクトル(V1)と、ワークモデルにおける第1点および第2点の法線ベクトルから定義される位置ベクトル(V2)とを演算する。決定部は、エンドエフェクタモデルに対して予め定められた基準位置ベクトル(V11,V12)と、位置ベクトル(V1,V2)との相対位置関係が基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。登録部は、決定された位置姿勢を、ワークをピッキングするときのエンドエフェクタの位置姿勢候補として登録する。これにより、対象物をピッキングするエンドエフェクタの位置姿勢が簡易に設定される。

Description

設定装置、設定方法およびプログラム
 本開示は、設定装置、設定方法およびプログラムに関する。
 従来、複数の物体(以下、「ワーク」とも称する。)の中から対象ワークをピッキングするエンドエフェクタを備えたロボットが知られている。このようなロボットの動作の制御システムでは、ワークをピッキングするときのエンドエフェクタの位置姿勢(以下、「把持位置姿勢」とも称する。)が予め登録される。制御システムは、予め登録された把持位置姿勢とワークの位置姿勢とに基づいて、ロボットを制御する。
 例えば、特開2018-144164号公報(特許文献1)は、ワークの三次元形状を仮想的に表現したワークモデルを画像表示領域に表示させた状態で把持位置姿勢を設定するロボット設定装置を開示している。具体的には、把持位置姿勢を示すX座標、Y座標、Z座標、Rx回転角、Ry回転角、Rz回転角を指定するための指定欄への入力に応じて、把持位置姿勢が設定される。
特開2018-144164号公報
 特許文献1に開示の技術では、把持位置姿勢を設定するために、ユーザは6つのパラメータを指定する必要がある。そのため、把持位置姿勢の設定に要する手間が煩雑となる。
 本発明は、上記の問題に鑑みてなされたものであり、その目的は、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定可能な設定装置、設定方法およびプログラムを提供することである。
 本開示の一例によれば、ロボットのエンドエフェクタがワークをピッキングするときのエンドエフェクタの位置姿勢候補を設定するための設定装置は、受付部と、演算部と、決定部と、登録部とを備える。受付部は、ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付ける。演算部は、第1点および第2点から定義される点を始点とし、第1点から第2点への向きと同じ向きを有する第1位置ベクトルと、ワークモデルにおける第1点および第2点の法線ベクトルから定義される第2位置ベクトルとを演算する。決定部は、エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が予め定められた第1基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。登録部は、決定部によって決定された位置姿勢を位置姿勢候補として登録する。
 この開示によれば、ユーザは、ワークモデル上の第1点および第2点を指定するだけで、ワークをピッキングするときのエンドエフェクタの位置姿勢候補を設定できる。すなわち、ワークをピッキングするときのエンドエフェクタの位置姿勢が簡易に設定される。
 上述の開示において、演算部は、第1位置ベクトルと第2位置ベクトルとの外積で表される第3位置ベクトルをさらに演算する。決定部は、第1基準位置ベクトルおよび第2基準位置ベクトルと第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が第1基準関係に近づくとともに、エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。
 上記の開示によれば、決定部は、第3位置ベクトルと第3基準位置ベクトルとの相対位置関係も考慮して、位置姿勢候補として登録され得るエンドエフェクタモデルの位置姿勢を決定できる。
 なお、演算部は、第1位置ベクトルに直交する第3位置ベクトルをさらに演算してもよい。この場合でも、決定部は、第1基準位置ベクトルおよび第2基準位置ベクトルと第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が第1基準関係に近づくとともに、エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定する。
 上述の開示において、エンドエフェクタモデルは、エンドエフェクタの三次元形状を定義する第2CADデータによって示される。上記の開示によれば、ユーザは、エンドエフェクタモデルを作成しなくてもよい。
 上述の開示において、設定装置は、入力指示に従ってエンドエフェクタモデルを作成するモデル作成部をさらに備える。モデル作成部は、第1基準位置ベクトルおよび第2基準位置ベクトルを設定する。上記の開示によれば、ユーザは、モデル作成部を用いてエンドエフェクタモデルを自由に作成できる。
 上述の開示において、エンドエフェクタは回転対称性を有する。モデル作成部は、エンドエフェクタモデルにおける回転対称軸と、自身に重なり合う最小回転角度θとを設定する。登録部は、決定部によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルの位置姿勢を位置姿勢候補としてさらに登録する。nは、1以上かつ360°/θ未満の整数である。
 回転対称性を有するエンドエフェクタである場合、回転対称軸に対して最小回転角度θのn倍だけ回転させたエンドエフェクタであっても、ワークを把持可能となる。上記の開示によれば、決定部によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として自動で登録される。これにより、ユーザによる把持点候補の登録操作の手間が削減される。
 上述の開示において、設定装置は、ワークモデルを表示装置の画面に表示させる表示制御部をさらに備える。受付部は、画面において指定された位置に基づいて、第1点および第2点を受け付ける。
 上記の開示によれば、ユーザは、画面に表示されたワークモデルを見ながら、ワークモデル上の所望の位置において第1点および第2点を指定できる。
 上述の開示において、表示制御部は、ワークモデルを基準とする座標軸を画面に表示させ、ワークモデルに対する操作に応じて、画面に表示されるワークモデルの位置姿勢を変更する。
 上記の開示によれば、ユーザは、ワークモデルを基準とする座標軸を見ながら、第1点および第2点を指定しやすいように、ワークモデルの位置姿勢を所望の状態に変更できる。
 上述の開示において、表示制御部は、画面において、決定部によって決定された位置姿勢のエンドエフェクタモデルをワークモデルに重畳して表示させる。決定部は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する。
 上述の開示において、表示制御部は、画面において、予め定められた方向を示す軸を表示させる。
 上記の開示によれば、ユーザは、第1基準位置ベクトルおよび第2基準位置ベクトルを見ながら、エンドエフェクタモデルの位置姿勢を所望の状態に調整しやすくなる。
 上述の開示において、表示制御部は、画面において、エンドエフェクタモデルの座標系の軸方向を表示させる。
 上記の開示によれば、ユーザは、エンドエフェクタモデルの座標系の軸方向を見ながら、エンドエフェクタモデルの位置姿勢を所望の状態に調整しやすくなる。
 上述の開示において、表示制御部は、エンドエフェクタモデルの先端に接する所定形状のガイド面を画面に表示させる。
 例えば、エンドエフェクタは、2本の指部を有する。ガイド面は、エンドエフェクタモデルにおける2本の指部の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状、または、線分を直径とする円の外接正方形を断面とする角筒形状である。
 あるいは、エンドエフェクタは、1以上の真空パッドを有する吸着ハンドである。ガイド面は、エンドエフェクタモデルにおける1以上の真空パッドに対応するパーツの先端面を含む平面形状である。
 上記の開示によれば、ガイド面が表示されることにより、ユーザは、エンドエフェクタモデルの先端とワークモデルとの相対位置関係を容易に把握できる。
 上述の開示において、設定装置は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとの干渉判定を行なう判定部をさらに備える。表示制御部は、画面において、決定部によって決定された位置姿勢のエンドエフェクタモデルをワークモデルに重畳して表示させ、判定部によって干渉していると判定されたことに応じて、エンドエフェクタモデルの表示形式を変更する。
 上記の開示によれば、ユーザは、エンドエフェクタモデルとワークモデルとが干渉していることを容易に把握できる。
 上述の開示において、設定装置は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとの干渉判定を行なう判定部をさらに備える。登録部は、判定部によって干渉していると判定された位置姿勢を位置姿勢候補から削除する。
 上記の開示によれば、ワークモデルと干渉するエンドエフェクタモデルの位置姿勢が、ワークをピッキングするときのエンドエフェクタの位置姿勢候補として登録されることを防止できる。
 本開示の一例によれば、ロボットのエンドエフェクタがワークをピッキングするときのエンドエフェクタの位置姿勢候補の設定方法は、第1~第4のステップを備える。第1のステップは、ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付けるステップである。第2のステップは、第1点および第2点から定義される点を始点とし、第1点から第2点への向きと同じ向きを有する第1位置ベクトルと、ワークモデルにおける第1点および第2点の法線ベクトルから定義される第2位置ベクトルとを演算するステップである。第3のステップは、エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、第1位置ベクトルおよび第2位置ベクトルとの相対位置関係が予め定められた基準関係に近づくように、エンドエフェクタモデルの位置姿勢を決定するステップである。第4のステップは、決定された位置姿勢を位置姿勢候補として登録するステップである。
 本開示の一例によれば、プログラムは、上記の設定方法をコンピュータに実行させる。これらの開示によっても、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定できる。
 本開示によれば、対象物をピッキングするエンドエフェクタの位置姿勢を簡易に設定できる。
実施の形態に係る制御システムの全体構成を示す概略図である。 図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。 図1に示す画像処理装置の機能構成の一例を示すブロック図である。 エンドエフェクタモデルの作成を支援するためのモデル作成画面の一例を示す図である。 エンドエフェクタモデルの作成中に表示されるモデル作成画面の一例を示す図である。 エンドエフェクタモデルの作成中に表示されるモデル作成画面の他の例を示す図である。 エンドエフェクタモデルに関する各種パラメータを設定するときのモデル作成画面の一例を示す図である。 互いに異なるストローク幅の3つのエンドエフェクタモデルを示す図である。 エンドエフェクタモデルの回転対称性に関する情報を設定するときのモデル作成画面の一例を示す図である。 エンドエフェクタモデルに対して設定された基準位置ベクトルの一例を示す図である。 エンドエフェクタモデルに対して設定された基準位置ベクトルの別の例を示す図である。 決定部によるエンドエフェクタの位置姿勢の決定方法を説明する図である。 把持点候補を設定するための設定画面の一例を示す図である。 エンドエフェクタモデルの位置姿勢の調整方法の一例を説明する図である。 エンドエフェクタモデルの位置姿勢の調整方法の他の例を説明する図である。 複製ボタン群に含まれる「Fan」ボタンが操作されたときの設定画面の例を示す図である。 複製ボタン群に含まれる「Cylinder」ボタンが操作されたときの設定画面の例を示す図である。 複製ボタン群に含まれる「Hybrid」ボタンが操作されたときの設定画面の例を示す図である。 複製ボタン群に含まれる「Circle」ボタンが操作されたときの設定画面の例を示す図である。 設定画面に表示される補助ガイド面の一例を示す図である。 設定画面に表示される補助ガイド面の別の例を示す図である。 アプローチ動作の設定方法を説明する図である。 決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとが干渉するときの設定画面の一例を示す図である。 エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理を説明する図である。 把持点候補の登録処理の流れの一例を示すフローチャートである。 吸着ハンドに対応するエンドエフェクタモデルを作成中のモデル作成画面の一例を示す図である。 設定画面に表示される補助ガイド面のさらに別の例を示す図である。 変形例3に係る位置ベクトルV3の演算方法を示す図である。 変形例4に係る位置ベクトルV2の演算方法を示す図である。 変形例5に係る位置ベクトルV2の演算方法を示す図である。
 本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰返さない。
 §1 適用例
 図1を参照して、本発明が適用される場面の一例について説明する。図1は、実施の形態に係る制御システムの全体構成を示す概略図である。図1に例示される制御システムSYSは、生産ラインなどに組み込まれ、コンテナ5にばら積みされた物体であるワーク1に対するピックアンドプレースの制御を行なう。コンテナ5内でのワーク1の位置姿勢はランダムである。
 図1に例示される制御システムSYSは、画像処理装置100と、ロボットコントローラ200と、ロボット300と、計測ヘッド400とを備える。
 画像処理装置100には、表示装置150および入力装置160が接続されている。表示装置150は、典型的には液晶ディスプレイからなり、各種画面を表示する。入力装置160は、例えばキーボードおよびマウスを含む。なお、表示装置150および入力装置160は、一体化され、タッチパネルを構成してもよい。
 ロボット300は、ワーク1に対するピックアンドプレースを行なう。ロボット300は、ワーク1を保持するエンドエフェクタ301と、エンドエフェクタ301の位置姿勢を変更するための多関節アーム302と、多関節アーム302を支持するベース303とを含む。エンドエフェクタ301は、多関節アーム302の先端の面(フランジ面)に取り付けられる。ロボット300の動作は、ロボットコントローラ200によって制御される。
 図1に例示されるエンドエフェクタ301は、2本の指部310を有し、2本の指部310を用いてワーク1を把持する2指ハンドである。なお、指部310は、ワーク1を把持する際に、ワーク1に接触する部位であり、「爪部」とも称される。
 ロボットコントローラ200は、画像処理装置100からの情報を受けて、ロボット300の多関節アーム302を制御する。具体的には、ロボットコントローラ200は、エンドエフェクタ301がアプローチ動作、ピッキング動作およびプレース動作を順に行なうように多関節アーム302を制御する。「アプローチ動作」は、コンテナ5の外側からワーク1を把持可能な位置姿勢までの移動動作である。「ピッキング動作」は、2本の指部310を移動させることにより、ワーク1を把持する動作である。なお、ワーク1を把持する方法として、2本の指部310を閉じる方向に移動させることによりワーク1を把持する「外径把持」と、2本の指部310を開く方向に移動させることによりワーク1を把持する「内径把持」とがある。外径把持方法を用いたピッキング動作の開始時(アプローチ動作の終了時)において、ワーク1は、2本の指部310の間に位置する。内径把持方法を用いたピッキング動作の開始時(アプローチ動作の終了時)において、2本の指部310は、例えば筒状のワーク1の中空部分の内部に位置する。「プレース動作」は、ワーク1を把持しながら目標位置に搬送するまでのエンドエフェクタ301の動作である。
 ロボットコントローラ200は、画像処理装置100から、ピッキング動作の開始時にエンドエフェクタ301が取るべき位置姿勢を示す位置姿勢情報を受ける。ロボットコントローラ200は、当該位置姿勢情報に基づいて、エンドエフェクタ301がアプローチ動作、ピッキング動作およびプレース動作を順次実行するように指令を生成し、ロボット300へ出力する。この指令に応答して、ロボット300のエンドエフェクタ301は、アプローチ動作、ピッキング動作およびプレース動作を順次行なう。
 計測ヘッド400は、コンテナ5およびコンテナ5に収容されたワーク1が被写体となるように設置され、当該被写体を撮像する。計測ヘッド400は、投影部401と撮像部402とを備える。投影部401は、画像処理装置100からの指示に従って任意の投影パターン光を被写体に投影する。投影パターンは、例えば照射面内の所定方向に沿って明るさが周期的に変化するパターンである。撮像部402は、投影パターン光が投影された状態の被写体を撮像する。
 投影部401は、主要なコンポーネントとして、例えば、LED(Light Emitting Diode)やハロゲンランプなどの光源と、投影部401の照射面の側に配置されたフィルタとを含む。フィルタは、後述するような三次元形状の計測に必要な投影パターン光を発生させるものであり、画像処理装置100からの指令に従って、面内の透光率を任意に変化させることができる。投影部401は、時間的に変化しない固定の投影パターン光を投影してもよいし、時間的に変化する投影パターン光を投影してもよい。投影部401は、液晶またはDMD(Digital Mirror Device)と光源(LEDまたはレーザ光源など)とを用いた構成であってもよい。
 撮像部402は、主要なコンポーネントとして、例えば、レンズなどの光学系と、CCD(Coupled Charged Device)やCMOS(Complementary Metal Oxide Semiconductor)センサといった撮像素子とを含む。
 画像処理装置100は、計測ヘッド400から受けた画像に基づいて、コンテナ5内の複数のワーク1の中の1つを対象ワーク2として選択し、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢とは、対象ワーク2に対するピッキング動作の開始時におけるエンドエフェクタ301の位置姿勢である。画像処理装置100は、決定した位置姿勢を示す位置姿勢情報を生成し、生成した位置姿勢情報をロボットコントローラ200に出力する。
 具体的には、画像処理装置100は、計測ヘッド400から受けた画像に基づいて、計測ヘッド400の視野領域の三次元形状を計測する。視野領域にはコンテナ5が含まれるため、コンテナ5にばら積みされた複数のワーク1の三次元形状が計測される。画像処理装置100は、計測した三次元形状に基づいて、複数のワーク1の中の1つをピッキング対象となる対象ワーク2として選択する。
 画像処理装置100には、ワーク1に対するピッキング動作の開始時にエンドエフェクタ301が取るべき位置姿勢候補(以下、「把持点候補」と称する。)が予め設定される。把持点候補は、ワーク1に対する、当該ワーク1に対するピッキング動作の開始時におけるエンドエフェクタ301の相対位置姿勢を示す。画像処理装置100は、対象ワーク2の位置姿勢と把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
 なお、計測ヘッド400から受けた画像を用いて計測される対象ワーク2の位置姿勢は、計測ヘッド400の撮像部402を基準とする座標系(カメラ座標系)で表される。一方、画像処理装置100からロボットコントローラ200に出力する位置姿勢情報は、ロボット300を基準とする座標系(ロボットベース座標系)で表される。そのため、カメラ座標系とロボットベース座標系との相対的な位置姿勢関係を推定するためのキャリブレーションが予め実施される。キャリブレーションの方法として、公知のハンドアイキャリブレーションが採用され得る。画像処理装置100は、事前に実施されたハンドアイキャリブレーションの結果を用いて、適宜座標変換を行なう。
 画像処理装置100に1つの把持点候補のみが設定されている場合、画像処理装置100は、対象ワーク2の位置姿勢と当該1つの把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢(把持位置姿勢)を決定する。このようにして決定された位置姿勢のエンドエフェクタ301は、対象ワーク2の周囲のワーク1またはコンテナ5と干渉する可能性がある。例えば画像処理装置100によって決定された位置姿勢のエンドエフェクタ301とコンテナ5とが干渉すると、ロボット300は、画像処理装置100によって決定された位置姿勢までエンドエフェクタ301を移動できない。
 そのため、通常、画像処理装置100には複数の把持点候補が設定される。画像処理装置100は、複数の把持点候補の中から、対象ワーク2の周囲のワーク1およびコンテナ5とエンドエフェクタ301とが干渉しない1つの把持点候補を選択する。画像処理装置100は、対象ワーク2の位置姿勢と選択した1つの把持点候補とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
 画像処理装置100は、把持点候補の設定を支援するための構成として把持点設定部10を備える。把持点設定部10は、受付部12と、演算部13と、決定部14と、登録部17とを含む。
 受付部12は、ワーク1の三次元形状を定義するCADデータによって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。図1に例示される画像処理装置100は、表示装置150の画面にワークモデルM1を表示させる。受付部12は、表示装置150の画面において指定された位置に基づいて、第1点P1および第2点P2を受け付ける。
 演算部13は、第1点P1および第2点P2によって定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。点P0は、例えばワークモデルM1の表面に沿って第1点P1と第2点P2とを結ぶ線Lの中点である。線Lは、第1点P1と第2点P2とを最短距離で結ぶ線である。なお、点P0は、第1点P1または第2点P2と同じであってもよい。位置ベクトルV1は、予め定められた長さ(例えば1)を有する。
 さらに、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。ワーク1に対応するCADデータがワーク1の表面を構成する複数の三角メッシュの各々の位置姿勢を示す場合、第1点P1の法線ベクトルは、第1点P1を含む三角メッシュの法線に沿った単位ベクトルである。第2点P2の法線ベクトルは、第2点P2を含む三角メッシュの法線に沿った単位ベクトルである。例えば、演算部13は、点P0を始点とし、第1点P1の法線ベクトルと第2点P2の法線ベクトルとの平均ベクトルと同じ向きを有する位置ベクトルを位置ベクトルV2として演算する。位置ベクトルV2は、位置ベクトルV1と同じ長さ(例えば1)を有する。
 決定部14は、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12と、位置ベクトルV1,V2との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。エンドエフェクタモデルM2は、エンドエフェクタ301の三次元形状を示す。基準関係は、予め定められる。
 図1に例示される基準位置ベクトルV11,V12は、エンドエフェクタモデルM2における一方の指部310に対応するパーツの先端を始点とし、互いに直交する向きを有する。図1に例示される基準位置ベクトルV11は、紙面に直交し、手前に向かう向きを有する。基準位置ベクトルV11,V12は、位置ベクトルV1,V2と同じ長さ(例えば1)を有する。
 登録部17は、決定部14によって決定された位置姿勢を把持点候補として登録する。具体的には、登録部17は、ワークモデルM1に対する、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を把持点候補として登録する。
 図1に示す画像処理装置100によれば、ユーザは、ワークモデルM1上の第1点P1および第2点P2を指定するだけで、把持点候補を設定できる。すなわち、ワーク1をピッキングするエンドエフェクタ301の位置姿勢が簡易に設定される。
 §2 具体例
 <A.画像処理装置のハードウェア構成例>
 画像処理装置100は、典型的には、汎用的なアーキテクチャを有しているコンピュータであり、予めインストールされたプログラム(命令コード)を実行することで、本実施の形態に係る画像処理を実行する。このようなプログラムは、典型的には、各種記録媒体などに格納された状態で流通し、あるいは、ネットワークなどを介して画像処理装置100にインストールされる。
 このような汎用的なコンピュータを利用する場合には、本実施の形態に係る画像処理を実行するためのアプリケーションに加えて、コンピュータの基本的な処理を実行するためのOS(Operating System)がインストールされていてもよい。この場合には、本実施の形態に係るプログラムは、OSの一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。すなわち、本実施の形態に係るプログラム自体は、上記のようなモジュールを含んでおらず、OSと協働して処理が実行されてもよい。本実施の形態に係るプログラムとしては、このような一部のモジュールを含まない形態であってもよい。
 さらに、本実施の形態に係るプログラムは、他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には、上記のような組合せられる他のプログラムに含まれるモジュールを含んでおらず、当該他のプログラムと協働して処理が実行される。すなわち、本実施の形態に係るプログラムとしては、このような他のプログラムに組込まれた形態であってもよい。なお、プログラムの実行により提供される機能の一部もしくは全部を専用のハードウェア回路として実装してもよい。
 図2は、図1に示す画像処理装置のハードウェア構成の一例を示す概略図である。図2に示されるように、画像処理装置100は、演算処理部であるCPU(Central Processing Unit)110と、記憶部としてのメインメモリ112およびハードディスク114と、計測ヘッドインターフェース116と、入力インターフェース118と、表示コントローラ120と、通信インターフェース124と、データリーダ/ライタ126とを含む。これらの各部は、バス128を介して、互いにデータ通信可能に接続される。
 CPU110は、ハードディスク114にインストールされたプログラム(コード)をメインメモリ112に展開して、これらを所定順序で実行することで、各種の演算を実施する。メインメモリ112は、典型的には、DRAM(Dynamic Random Access Memory)などの揮発性の記憶装置であり、ハードディスク114から読み出されたプログラムに加えて、計測ヘッド400によって取得された画像などを保持する。さらに、ハードディスク114には、後述するような各種データなどが格納される。なお、ハードディスク114に加えて、あるいは、ハードディスク114に代えて、フラッシュメモリなどの半導体記憶装置を採用してもよい。
 計測ヘッドインターフェース116は、CPU110と計測ヘッド400との間のデータ伝送を仲介する。すなわち、計測ヘッドインターフェース116は、計測ヘッド400と接続される。計測ヘッドインターフェース116は、CPU110が発生した内部コマンドに従って、計測ヘッド400に対して投影コマンドおよび撮像コマンドを与える。計測ヘッドインターフェース116は、計測ヘッド400からの画像を一時的に蓄積するための画像バッファ116aを含む。計測ヘッドインターフェース116は、画像バッファ116aに所定コマ数の画像が蓄積されると、その蓄積された画像をメインメモリ112へ転送する。
 入力インターフェース118は、CPU110と入力装置160との間のデータ伝送を仲介する。すなわち、入力インターフェース118は、ユーザが入力装置160に入力した入力情報を受け付ける。
 表示コントローラ120は、表示装置150と接続され、CPU110における処理結果などをユーザに通知するように表示装置150の画面を制御する。
 通信インターフェース124は、CPU110とロボットコントローラ200などの外部装置との間のデータ伝送を仲介する。通信インターフェース124は、典型的には、イーサネット(登録商標)やUSB(Universal Serial Bus)などからなる。
 データリーダ/ライタ126は、CPU110と記録媒体であるメモリカード106との間のデータ伝送を仲介する。すなわち、メモリカード106には、画像処理装置100で実行されるプログラムなどが格納された状態で流通し、データリーダ/ライタ126は、このメモリカード106からプログラムを読出す。また、データリーダ/ライタ126は、CPU110の内部指令に応答して、計測ヘッド400によって撮像された画像および/または画像処理装置100における処理結果などをメモリカード106へ書込む。なお、メモリカード106は、SD(Secure Digital)などの汎用的な半導体記憶デバイスや、フレキシブルディスク(Flexible Disk)などの磁気記憶媒体や、CD-ROM(Compact Disk Read Only Memory)などの光学記憶媒体等からなる。
 <B.画像処理装置の機能構成例>
 図3は、図1に示す画像処理装置の機能構成の一例を示すブロック図である。図3に示されるように、画像処理装置100は、把持点設定部10と、ヘッド制御部20と、画像処理部25と、モデル作成部30と、記憶部40とを備える。把持点設定部10およびモデル作成部30は、図2に示すCPU110、入力インターフェース118および表示コントローラ120によって実現される。ヘッド制御部20は、図2に示すCPU110および計測ヘッドインターフェース116によって実現される。画像処理部25は、図2に示すCPU110および通信インターフェース124によって実現される。記憶部40は、図2に示すメインメモリ112およびハードディスク114によって実現される。
 (B-1.ヘッド制御部)
 ヘッド制御部20は、計測ヘッド400の動作を制御する。ヘッド制御部20は、予め定められた投影パターン光の投影を指示する投影コマンドを計測ヘッド400に出力する。ヘッド制御部20は、投影パターン光が投影されている状態で撮像コマンドを計測ヘッド400に出力する。ヘッド制御部20は、計測ヘッド400から取得した画像データ41を記憶部40に格納する。
 (B-2.記憶部)
 記憶部40には、計測ヘッド400の撮像により得られた画像データ41が格納される。さらに、記憶部40には、ワーク1の三次元形状を示すCAD(Computer Aided Design)データ42が予め格納される。CADデータ42は、ワーク1の三次元形状を示すワークモデルの表面を構成する三角メッシュの位置姿勢を示す。さらに、記憶部40には、モデル作成部30によって生成されたモデルデータ43と、ワーク1を把持するときのエンドエフェクタ301の把持点候補を示す把持点データ44とが格納される。把持点データ44は、把持点設定部10によって生成される。
 (B-3.画像処理部)
 画像処理部25は、計測ヘッド400の撮像により得られた画像データ41に対して以下のような処理を行なう。
 画像処理部25は、画像データ41に基づいて、計測ヘッド400の視野領域における三次元計測を行ない、三次元点群データを生成する。三次元点群データは、計測ヘッド400の視野領域に存在する物体表面(計測表面)上の各点の三次元座標を示す。例えば、画像処理部25は、三角測距方式を用いて三次元計測処理を行なう。三角測距方式として、固定パターン投影法、位相シフト法、ステレオマッチング法、光切断法などの公知の技術が採用され得る。例えば、位相シフト法では、正弦波状に濃淡を変化させた投影パターン光を被写体に投影した状態で撮像された画像を用いる方法である。濃淡の変化周期や位相を異ならせた投影パターンが複数用意され、計測ヘッド400の投影部401は、撮像部402の視野領域に対して、複数の投影パターン光を順次照射する。画像処理部25は、複数の投影パターンが投影されたときにそれぞれ撮像される画像データ41における対応する部分の明るさ(輝度や明度)の変化に基づいて、三次元座標を算出する。なお、三次元計測処理は、三角測距方式に限定されず、他の方法(例えば同軸方式など)を用いて実施されてもよい。
 画像処理部25は、予め作成された複数のテンプレートデータと三次元点群データとを照合し、三次元点群データの中からテンプレートと類似するデータを抽出する。テンプレートデータは、CADデータ42に基づいて予め作成される。画像処理部25は、三次元点群データの中から抽出した、テンプレートと類似するデータに基づいて、計測ヘッド400の視野領域に存在するワーク1の位置姿勢を検出する。画像処理部25は、検出されたワーク1を対象ワーク2として決定する。なお、画像処理部25は、複数のワーク1の位置姿勢を検出した場合、予め定められた選択基準に従って、当該複数のワーク1のうちの1つを対象ワーク2として選択する。
 画像処理部25は、対象ワーク2の位置姿勢と把持点データ44で示される把持点候補とハンドアイキャリブレーション結果とに基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。画像処理部25は、決定した位置姿勢を示す位置姿勢情報をロボットコントローラ200に送信する。
 (B-4.モデル作成部)
 モデル作成部30は、エンドエフェクタモデルM2の作成を支援するモデル作成画面を表示装置150に表示し、入力装置160への入力指示に従ってエンドエフェクタモデルM2を作成する。モデル作成部30は、作成したエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。例えば、基準位置ベクトルV11,V12,V13は、エンドエフェクタモデルM2上の一点を始点とし、互いに直交する向きを有する。基準位置ベクトルV11,V12,V13は、予め定められた長さ(例えば1)を有する。エンドエフェクタモデルM2の作成方法と、基準位置ベクトルV11,V12,V13の設定方法との詳細については後述する。
 (B-5.把持点設定部)
 把持点設定部10は、ワーク1をピッキングするときのエンドエフェクタ301の位置姿勢候補(把持点候補)を設定する。図3に例示される把持点設定部10は、表示制御部11と、受付部12と、演算部13と、決定部14と、複製処理部15と、判定部16と、登録部17とを含む。
 表示制御部11は、表示装置150の画面を制御する。具体的には、表示制御部11は、把持点候補を設定するための設定画面を表示装置150に表示させ、入力装置160への入力に応じて表示装置150の画面を遷移させる。設定画面には、CADデータ42によって示されるワークモデルM1が表示される。設定画面の詳細については後述する。
 受付部12は、入力装置160への入力操作に応じて、ワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。
 演算部13は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。さらに、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する。
 決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。基準関係は、エンドエフェクタモデルM2に対する基準位置ベクトルV11,V12,V13の設定位置姿勢、エンドエフェクタ301とワーク1との所望のクリアランスなどに応じて予め定められる。
 複製処理部15は、エンドエフェクタモデルM2の複製処理を実行し、複製されたエンドエフェクタモデルの位置姿勢を決定する。例えば、複製処理部15は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2を指定方向に指定量だけ回転させることによって複製されたエンドエフェクタモデルを生成する。
 判定部16は、決定部14および複製処理部15によって決定された各位置姿勢のエンドエフェクタモデルM2とワークモデルM1との干渉の有無を判定する。
 登録部17は、決定部14および複製処理部15によって決定された各位置姿勢を把持点候補として登録する。具体的には、登録部17は、ワークモデルM1に対する、決定部14および複製処理部15によって決定された各位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を示す把持点データ44を生成し、生成した把持点データ44を記憶部40に格納する。
 <C.エンドエフェクタモデルの作成>
 図4~9を参照して、モデル作成部30の処理例について説明する。図4は、エンドエフェクタモデルの作成を支援するためのモデル作成画面の一例を示す図である。図4に例示されるモデル作成画面70は、モデル作成部30によって表示装置150に表示される。図4には、エンドエフェクタモデルM2の作成を開始する前のモデル作成画面70が示される。
 モデル作成画面70は、エンドエフェクタモデルM2を表示するための領域71と、編集用ボタン群73と、パーツ一覧74とを含む。領域71には、エンドエフェクタ座標系を示す座標軸72が表示されている。座標軸72を構成するX軸、Y軸およびZ軸は、互いに直交する。座標軸72の原点は、エンドエフェクタ301が取り付けられる多関節アーム302の先端のフランジ面に中心に対応する。XY平面は、当該フランジ面に対応する。Z軸は、フランジ面の法線に対応する。
 編集用ボタン群73は、エンドエフェクタモデルM2を構成するパーツの追加、複製、削除、反転の操作を受け付けるための複数のボタンを含む。パーツ一覧74は、エンドエフェクタモデルM2を構成するパーツの一覧である。図4に例示されるモデル作成画面70は、編集用ボタン群73に対する操作を受け付ける前の状態に対応している。そのため、パーツ一覧74にはパーツが表示されていない。
 図5は、エンドエフェクタモデルの作成中に表示されるモデル作成画面の一例を示す図である。図5に例示されるモデル作成画面70の領域71には、2指ハンドであるエンドエフェクタモデルM2を構成する6つのパーツ75~80が表示されている。
 モデル作成画面70は、パーツの色表示に関するラジオボタン群81を含む。ラジオボタン群81は、例えば、全てのパーツに対して色を付けるためのラジオボタンと、選択されたパーツのみに色を付けるためのラジオボタンと、パーツに色を付けないためのラジオボタンとを含む。ユーザは、ラジオボタン群81を操作することにより、複数のパーツを区別しやすくなる。
 モデル作成画面70は、エンドエフェクタモデルM2の外接直方体の辺およびサイズを表示するためのチェックボックス82を含む。チェックボックス82がチェックされることに応じて、モデル作成部30は、エンドエフェクタモデルM2の外接直方体の辺を示す線83と、当該外接直方体のサイズを示すテキスト84とを領域71に表示する。これにより、ユーザは、エンドエフェクタモデルM2のサイズを把握しやすくなる。
 各パーツの形状は、編集用ボタン群73に含まれるパーツ追加用のボタンの種類に応じて定められる。図5に例示されるパーツ75は、「円柱追加」ボタンの操作に応じて追加されたパーツであり、円柱形状である。図5に例示されるパーツ76~80は、「直方体追加」ボタンの操作に応じて追加されたパーツであり、直方体形状である。
 編集用ボタン群73は、「複製」ボタンと「削除」ボタンとを含む。「複製」ボタンが操作されると、モデル作成部30は、選択されたパーツと同形状のパーツを追加する。「削除」ボタンが操作されると、モデル作成部30は、選択されたパーツを削除する。
 さらに、編集用ボタン群73は、「反転(XZ平面)」ボタンと、「反転(YZ平面)」ボタンとを含む。「反転(XZ平面)」ボタンが操作されると、モデル作成部30は、選択されたパーツをXZ平面に対して鏡像反転させる。「反転(YZ平面)」ボタンが操作されると、モデル作成部30は、選択されたパーツをYZ平面に対して鏡像反転させる。
 パーツ一覧74は、エンドエフェクタモデルM2を構成するパーツ76~80の各々について、当該パーツの名前と当該パーツが属するグループとを含む。モデル作成部30は、ユーザの入力に応じて各パーツの名前を設定し、設定した名前を表示する。各パーツのグループは、当該パーツの属性を示し、予め定められた複数のグループの中から選択される。モデル作成部30は、プルダウンボタン74aの操作に応じて複数のグループを含むプルダウンメニューを表示し、ユーザの選択入力に応じてグループを設定する。モデル作成部30は、設定したグループを表示する。
 複数のグループは、エンドエフェクタ301が取りうる形態に応じて予め定められている。モデル作成部30は、設定されたグループに応じて、各パーツが固定部(非可動部)であるか可動部であるかを認識できる。
 例えば、2指ハンドであるエンドエフェクタについて、「Base」、「Left tip finger」、「Left finger」、「Right tip finger」および「Right finger」の5つのグループが予め定められる。「Base」グループは、指部を支持する部分(固定部)に対応する。「Left tip finger」グループは、2本の指部のうちの一方の先端部分に対応する。「Left finger」グループは、当該一方において、先端部分を除く部分に対応する。「Right tip finger」グループは、2本の指部のうちの他方の先端部分に対応する。「Right finger」グループは、当該他方において、先端部分を除く部分に対応する。モデル作成部30は、「Base」グループに属するパーツを固定部として認識する。モデル作成部30は、「Right tip finger」グループまたは「Right finger」グループに属するパーツを、2本の指部のうちの一方に対応する可動部であると認識する。モデル作成部30は、「Left tip finger」グループまたは「Left finger」グループに属するパーツを、2本の指部のうちの他方に対応する可動部であると認識する。さらに、モデル作成部30は、「Right tip finger」グループまたは「Right finger」グループに属するパーツの移動方向と、「Left tip finger」グループまたは「Left finger」グループに属するパーツの移動方向とが互いに反対向きであると認識する。
 図5に例示されるモデル作成画面70では、パーツ75,76が「Base」グループに属する。さらに、パーツ77、78,79,80が「Right finger」,「Right tip finger」,「Left finger」および「Left tip finger」グループにそれぞれ属する。図5に例示されるエンドエフェクタモデルM2において、「Right tip finger」および「Left tip finger」にそれぞれ属するパーツ78,80は、Z軸に平行に延びている。
 全てのパーツに対して色を付けるためのラジオボタン(ラジオボタン群81に含まれる)がチェックされた場合、表示制御部11は、領域71に表示されるパーツの色をグループに応じて異ならせる。例えば、表示制御部11は、「Base」グループに属するパーツ75,76を灰色で表示し、「Right tip finger」グループまたは「Right finger」グループに属するパーツを水色で表示し、「Left tip finger」グループまたは「Left finger」グループに属するパーツをピンク色で表示する。これにより、ユーザは、エンドエフェクタモデルM2における固定部と2つの可動部とを区別しやすくなる。
 モデル作成画面70は、各パーツの位置、姿勢およびサイズを設定するためのタブ85,87を含む。タブ85は、パーツごとに位置、姿勢およびサイズを設定するときに操作される。タブ87は、全てのパーツの位置、姿勢およびサイズを一括で設定するときに操作される。
 図5に例示されるモデル作成画面70は、タブ85が操作されたときの状態に対応する。タブ85が操作されると、モデル作成部30は、パーツ一覧74において選択されているパーツ(図5では「Left00」のパーツが選択されている)の位置、姿勢およびサイズを設定するための各種の入力欄を含む領域86を表示する。モデル作成部30は、領域86に表示される入力欄への入力に応じて、パーツ一覧74において選択されているパーツの位置、姿勢およびサイズを編集する。
 図6は、エンドエフェクタモデルの作成中に表示されるモデル作成画面の他の例を示す図である。図6に例示されるエンドエフェクタモデルM2は、図5に例示されるエンドエフェクタモデルM2と比較して、パーツ78,80の代わりに、パーツ78a,78b,80a,80bを含む点で相違する。パーツ78aは「Right finger」グループに属する。パーツ80aは「Left finger」グループに属する。パーツ78bは「Right tip finger」グループに属する。パーツ80bは「Left tip finger」グループに属する。
 図6に示されるように、パーツ78b,80bは、Z軸に対して傾斜している。ユーザは、領域86に表示される入力欄86aに傾き方向を入力することにより、パーツ78b,80bの傾き方向を設定できる。さらに、ユーザは、領域86に表示される入力欄86bに傾き角度を入力することにより、パーツ78b,80bの傾き角度を設定できる。
 図7は、エンドエフェクタモデルに関する各種パラメータを設定するときのモデル作成画面の一例を示す図である。図7に例示されるモデル作成画面70は、タブ88が操作されたときの状態に対応する。
 図7に示されるように、モデル作成画面70は、入力欄89,90と、領域91とを含む。
 入力欄89には、作成中のエンドエフェクタモデルM2を識別するためのハンドIDが入力される。
 入力欄90には、判定部16による干渉判定に利用されるマージンが入力される。当該マージンの利用方法については後述する。
 領域91は、「Right tip finger」グループに属するパーツ78と、「Left tip finger」グループに属するパーツ80との間隔(以下、「ストローク幅」と称する。)を設定するために用いられる。ストローク幅は、「開き幅」とも称される。
 領域91には、「Right tip finger」グループに属するパーツ78と、「Left tip finger」グループに属するパーツ80との可動方向を選択するための入力欄91aが表示される。入力欄91aは、プルダウンボタンを含む。モデル作成部30は、プルダウンボタンへの操作に応じて、「X方向」および「Y方向」を含むプルダウンメニューを表示し、選択された方向を可動方向として設定する。図7に例示されるモデル作成画面70の入力欄91aには、「Y方向」が選択入力されている。なお、可動方向は、通常、「Right tip finger」および「Left tip finger」グループにそれぞれ属するパーツ78,80における端面(「Base」グループに属するパーツと反対側の面)に平行である。
 領域91には、最大のストローク幅を設定するための入力欄91bが表示される。ユーザは、エンドエフェクタ301の仕様に応じた数値を入力欄91bに入力すればよい。
 領域91には、エンドエフェクタモデルM2が取りうるストローク幅のリスト91cと、リスト91cを作成するためのボタン91d,91eとが表示される。ボタン91dは、リスト91cに新たなストローク幅を追加するときに操作される。ボタン91eは、リスト91cから不要なストローク幅を削除するときに操作される。ユーザは、ワーク1の種類に応じて、複数のストローク幅をリスト91cに追加できる。リスト91cにおいて、ストローク幅を識別するインデックス番号とストローク幅の数値とが対応付けられている。
 図8は、互いに異なるストローク幅の3つのエンドエフェクタモデルを示す図である。図8には、図5に示すエンドエフェクタモデルM2が示される。図8の(a)には、インデックス番号「No.0」に対応するストローク幅「0mm」のエンドエフェクタモデルM2が示される。図8の(b)には、インデックス番号「No.2」に対応するストローク幅「15mm」のエンドエフェクタモデルM2が示される。図8の(c)には、インデックス番号「No.7」に対応するストローク幅「30mm」のエンドエフェクタモデルM2が示される。
 図8の(c)を参照して、インデックス番号に対応するストローク幅のエンドエフェクタモデルM2の作成方法を説明する。モデル作成部30は、「Right tip finger」グループに属するパーツ78の端面の重心と、「Left tip finger」グループに属するパーツ80の端面の重心との中点P100の座標を演算する。
 モデル作成部30は、中点P100から可動方向に沿って「Right tip finger」グループに属するパーツ78側にストローク幅の半分だけ離れた点P101の座標を演算する。可動方向は、入力欄91aに入力された方向である。モデル作成部30は、「Right tip finger」グループに属するパーツ78の端面におけるパーツ80側の辺が点P101を通るように、「Right finger」グループに属するパーツ77と「Right tip finger」グループに属するパーツ78とを可動方向に沿って並進移動させる。
 同様に、モデル作成部30は、中点P100から可動方向に沿って「Left tip finger」グループに属するパーツ80側にストローク幅の半分だけ離れた点P102の座標を演算する。モデル作成部30は、「Left tip finger」グループに属するパーツ80の先端の点P102が点P102に一致するように、「Left finger」グループに属するパーツ79と「Left tip finger」グループに属するパーツ80とを可動方向に沿って並進移動させる。このようにして、インデックス番号に対応するストローク幅のエンドエフェクタモデルM2が作成される。
 図7に戻って、領域91には、初期インデックス番号を入力するための入力欄91fが表示される。入力欄91fには、リスト91cに含まれる少なくとも1つのインデックス番号から選択された1つのインデックス番号(初期インデックス番号)が入力される。ユーザは、ワーク1をピッキングするときのエンドエフェクタ301の2本の指部310間の隙間に対応するインデックス番号を入力欄91fに入力する。図7に示す例では、インデックス番号「0」が入力欄91fに入力されている。モデル作成部30は、初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2を領域71に表示する。
 図9は、エンドエフェクタモデルの回転対称性に関する情報を設定するときのモデル作成画面の一例を示す図である。図9には、図5に示すエンドエフェクタモデルM2が示される。図9に例示されるモデル作成画面70は、チェックボックス92と入力欄93とを含む。
 チェックボックス92は、エンドエフェクタモデルM2の回転対称性の有無を選択するために操作される。チェックボックス92がチェックされたことに応じて、モデル作成部30は、エンドエフェクタモデルM2を回転させたときに、「Right tip finger」グループに属するパーツ78および「Left tip finger」グループに属するパーツ80の一方が他方に重なり、かつ、他方が一方に重なる回転対称軸96を設定する。図9に例示されるモデル作成画面70では、Z軸が回転対称軸96として設定される。
 入力欄93には、回転対称軸96を中心にパーツ78を回転させたときにパーツ80に重なり合う最小回転角度θが入力される。図9に例示されるモデル作成画面70では、最小回転角度θとして180°が入力されている。
 モデル作成画面70は、保存ボタン94と終了ボタン95とを含む。保存ボタン94が操作されると、モデル作成部30は、現在の設定を保存する。終了ボタン95が操作されると、モデル作成部30は、エンドエフェクタモデルM2の作成処理を終了する。
 モデル作成部30は、作成されたエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
 図10は、エンドエフェクタモデルに対して設定された基準位置ベクトルの一例を示す図である。図10には、図5に示すエンドエフェクタモデルM2が示される。図11は、エンドエフェクタモデルに対して設定された基準位置ベクトルの別の例を示す図である。図11には、図6に示すエンドエフェクタモデルM2が示される。モデル作成部30は、入力欄91fに入力された初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
 モデル作成部30は、例えば以下の条件(a)~(e)を満たすように、基準位置ベクトルV11,V12,V13を設定する。条件(a)~(e)は、予め定められる。
条件(a):基準位置ベクトルV11,V12,V13の始点は、「Left tip finger」グループに属するパーツ(図10ではパーツ80,図11ではパーツ80b)の端面80S内において、重心P11を通り、かつ可動方向に平行な線上の点のうち、「Right tip finger」グループに属するパーツに最も近い点P10である。端面80Sは、「Left tip finger」グループに属するパーツにおいて、「Base」グループに属するパーツと反対側の面である。
条件(b):基準位置ベクトルV11,V12,V13は、予め定められた長さ(例えば1)を有する。
条件(c):基準位置ベクトルV12は、可動方向に平行であり、「Right tip finger」グループに属するパーツに向いた向きを有する。
条件(d):基準位置ベクトルV13は、端面80Sの法線方向と同じ向きを有する。
条件(e):基準位置ベクトルV11は、端面80Sに平行であり、基準位置ベクトルV12と直交する向きを有する。ただし、基準位置ベクトルV11と基準位置ベクトルV12との外積V11×V12は、「Base」グループに属するパーツと反対側を向く。
 上述したように、可動方向は、通常、「Left tip finger」グループに属するパーツ78の端面80Sに平行である。そのため、上記の条件(c)~(e)に従った基準位置ベクトルV11,V12,V13が設定されることにより、基準位置ベクトルV11,V12,V13は、互いに直交する。
 モデル作成部30は、上記のようにして設定したエンドエフェクタモデルM2の各種の設定情報を示すモデルデータ43を生成し、生成したモデルデータ43を記憶部40に格納する。具体的には、モデルデータ43は、少なくとも以下の情報を示す。
・初期インデックス番号に対応するストローク幅のエンドエフェクタモデルを構成する各パーツの位置、姿勢およびサイズ
・各パーツが属するグループ
・「Right tip finger」グループに属するパーツと「Left tip finger」グループに属するパーツとの可動方向(入力欄91aに入力された方向)
・基準位置ベクトルV11,V12,V13
・回転対称性の有無
・回転対称性が有りの場合、回転対称軸および最小回転角度θ
・入力欄90に入力されたマージン。
 <D.把持点候補の登録方法>
 <D-1.決定部によるエンドエフェクタの位置姿勢の決定方法>
 図12は、決定部によるエンドエフェクタの位置姿勢の決定方法を説明する図である。図12に示されるように、ワークモデルM1の表面上において第1点P1と第2点P2とが指定される。演算部13は、例えば、ワークモデルM1の表面に沿って第1点P1と第2点P2とを最短距離で結ぶ線Lの中点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。位置ベクトルV1は、予め定められた長さ(例えば1)を有する。
 演算部13は、ワークモデルM1における第1点P1の法線ベクトルVaと、ワークモデルM1における第2点P2の法線ベクトルVbとの平均ベクトルを演算する。法線ベクトルVa,Vbは、ワークモデルM1を構成する三角メッシュの法線に沿った単位ベクトルである。演算部13は、点P0を始点とし、法線ベクトルVaと法線ベクトルVbとの平均ベクトルと同じ向きを有する位置ベクトルV2を演算する。位置ベクトルV2は、予め定められた長さ(例えば1)を有する。
 さらに、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する。
 上述したように、基準位置ベクトルV11,V12,V13は、初期インデックス番号に対応するストローク幅のエンドエフェクタモデルM2に対して設定される。モデルデータ43は、例えば、基準位置ベクトルV11,V12,V13それぞれの始点および終点の座標を示す。
 決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。
 本実施の形態では、基準関係は、2指ハンドによる外径把持を想定して、以下のように予め定められる。すなわち、基準関係は、位置ベクトルV2の向きに位置ベクトルV1,V2,V3を規定距離だけ並進移動させたときに、基準位置ベクトルV11,V12,V13にそれぞれ一致する関係である。規定距離は、ピッキング動作の開始時においてエンドエフェクタ301とワーク1との間の必要な隙間を考慮して定められる。
 基準位置ベクトルV11,V12,V13は、エンドエフェクタ座標系で示される。位置ベクトルV1,V2,V3は、ワーク座標系で示される。決定部14は、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくようにエンドエフェクタ座標系を剛体変換させるための座標変換行列を決定する。当該座標変換行列を用いてエンドエフェクタモデルM2を座標変換することにより、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくときのエンドエフェクタモデルM2の位置姿勢が特定される。
 決定部14は、ワーク座標系において、基準関係に基づいて位置ベクトルV1~V3を補正する。具体的には、決定部14は、位置ベクトルV2の向きに規定距離だけ位置ベクトルV1,V2,V3を並進移動させる。決定部14は、補正後の位置ベクトルV1,V2,V3の各々の終点のXYZ座標を演算する。決定部14は、座標変換後の基準位置ベクトルV11,V12,V13の終点のXYZ座標と補正後の位置ベクトルV1,V2,V3の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定すればよい。
 <D-2.設定画面>
 図13は、把持点候補を設定するための設定画面の一例を示す図である。図13に例示される設定画面50は、把持点設定部10の表示制御部11によって表示装置150に表示される。図11に例示される設定画面50は、タブ67が操作されたときの状態に対応し、エンドエフェクタ301が2指ハンドであるときに表示される。
 図13に示されるように、設定画面50は、領域51を含む。表示制御部11は、記憶部40からCADデータ42を読み出し、CADデータ42によって示されるワークモデルM1を領域51に表示させる。なお、ワークモデルM1の表示形式は特に限定されない。例えば、ワークモデルM1は、ワイヤーフレーム形式で表示されてもよい。
 表示制御部11は、領域51に表示されたワークモデルM1に対する操作を受け付ける。表示制御部11は、受け付けた操作に応じて、ワークモデルM1の位置姿勢を変更する。例えば、表示制御部11は、ワークモデルM1を拡大縮小、並進移動または回転移動させる。
 表示制御部11は、ユーザによる操作を補助するために、X軸52x、Y軸52yおよびZ軸52zと、線53x、線53yおよび線53zとを領域51に表示させる。
 X軸52x、Y軸52yおよびZ軸52zは、ワークモデルを基準とする座標軸であり、ワークモデルM1の重心を原点とするワーク座標系を表す。なお、CADデータ42において設定されている原点は、必ずしもワークモデルM1の重心とは限らない。そのため、表示制御部11は、原点がワークモデルM1の重心と一致するように、CADデータ42に含まれる座標を変換する。
 線53x,53y,53zは、それぞれX軸52x,Y軸52yおよびZ軸52zを中心とする回転方向を示す円状の線である。
 受付部12は、設定画面50の領域51において入力装置160によって指定された位置に基づいて、ワークモデルM1上の第1点P1および第2点P2を受け付ける。例えば、領域51においてワークモデルM1と重なる2点が順にクリックされると、受付部12は、当該2点のうち先にクリックされた点を第1点P1として受け付け、当該2点のうち後にクリックされた点を第2点P2として受け付ける。
 上述したように、受付部12が受け付けた第1点P1および第2点P2に応じて、ワークモデルM1に対して位置ベクトルV1,V2,V3が演算される。そして、モデルデータ43によって示される基準位置ベクトルV11,V12,V13と位置ベクトルV1、V2,V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢が決定される。
 受付部12が第1点P1および第2点P2を受け付けるたびに、当該第1点P1および第2点P2に応じて、エンドエフェクタモデルM2の位置姿勢が決定される。そのため、受付部12が第1点P1および第2点P2をN回(Nは2以上の整数)受け付けた場合、エンドエフェクタモデルM2のN個の位置姿勢が決定される。
 設定画面50は、把持点候補の登録処理を補助するための各種のボタンを含む。図13に示されるように、設定画面50は、把持点選択ボタン群55と、削除ボタン56と、調整ボタン群57と、反転ボタン群58と、リセットボタン59と、複製ボタン群60とを含む。
 把持点選択ボタン群55は、受付部12が第1点P1および第2点P2をN回(Nは2以上の整数)受け付けた場合に、決定されたエンドエフェクタモデルM2のN個の位置姿勢のうちの1つを選択するためのボタンを含む。表示制御部11は、把持点選択ボタン群55の操作に応じて、選択された位置姿勢のエンドエフェクタモデルM2を領域51にワークモデルM1と重ねて表示させる。
 削除ボタン56は、決定されたエンドエフェクタモデルM2の位置姿勢を削除するためのボタンである。削除ボタン56の操作に応じて、登録部17は、把持点選択ボタン群55の操作によって選択された位置姿勢を把持点候補から削除する。
 <D-3.エンドエフェクタモデルの位置姿勢の調整>
 図12を用いて説明したように、ワークモデルM1における第1点P1の法線ベクトルVaと、ワークモデルM1における第2点P2の法線ベクトルVbとの平均ベクトルと同じ向きを有する位置ベクトルV2が設定される。そのため、位置ベクトルV2は、位置ベクトルV1と直交しない可能性がある。一方、基準位置ベクトルV11,V12,V13は互いに直交する。従って、第1点P1および第2点P2の指定の仕方によっては、決定部14によって決定された位置姿勢が所望の位置姿勢からずれ得る。本実施の形態に係る画像処理装置100は、決定部14によって決定された位置姿勢を調整する機能を有する。
 図14は、エンドエフェクタモデルの位置姿勢の調整方法の一例を説明する図である。図15は、エンドエフェクタモデルの位置姿勢の調整方法の他の例を説明する図である。図14に例示される設定画面50の領域51には、把持点選択ボタン群55の操作によって選択された位置姿勢のエンドエフェクタモデルM2が表示されている。図14には、図5に示すエンドエフェクタモデルM2が示される。図15には、図6に示すエンドエフェクタモデルM2が示される。表示制御部11は、モデルデータ43によって示されるエンドエフェクタモデルM2の座標を決定部14によって決定された座標変換行列を用いて変換する。表示制御部11は、座標変換後のエンドエフェクタモデルM2を領域51に表示させる。
 さらに、表示制御部11は、決定部14によって決定された座標変換行列を用いて、モデルデータ43によって示される基準位置ベクトルV11,V12,V13を座標変換する。表示制御部11は、座標変換後の基準位置ベクトルV11,V12,V13を領域51に表示させてもよい。
 調整ボタン群57(図13参照)は、ボタン57a~57hを含む。決定部14は、ボタン57a~57hの操作に応じて、決定した位置姿勢を調整する。さらに、表示制御部11は、調整された位置姿勢のエンドエフェクタモデルM2を領域51に表示させる。
 ボタン57a,57b,57cは、エンドエフェクタモデルM2を並進移動させるためのボタンである。並進移動の方向は、予め定められている。例えば、ボタン57a,57b,57cが操作されることにより、決定部14は、基準位置ベクトルV11,V12,V13と同じ方向(すなわち、エンドエフェクタ座標系のX軸,Y軸,Z軸の正方向)にエンドエフェクタモデルM2をそれぞれ並進移動させる。そして、表示制御部11は、並進移動されたエンドエフェクタモデルM2を領域51に表示させる。
 ボタン57d,57e,57fは、エンドエフェクタモデルM2を回転移動させるためのボタンである。回転移動の軸は、予め定められている。例えば、ボタン57d,57e,57fが操作されることにより、決定部14は、基準位置ベクトルV11,V12,V13(または、基準位置ベクトルV11,V12,V13に平行な軸)を回転軸としてエンドエフェクタモデルM2をそれぞれ回転移動させる。表示制御部11は、回転移動されたエンドエフェクタモデルM2を領域51に表示させる。
 ボタン57gが操作されることにより、表示制御部11は、エンドエフェクタモデルM2のストローク幅を変更する。具体的には、表示制御部11は、「Left tip finger」、「Left finger」、「Right tip finger」および「Right finger」グループに属するパーツを並進移動させる。移動方向は、決定部14によって決定された座標変換行列を用いて、モデルデータ43で示される可動方向を示すベクトルを座標変換することにより得られるベクトルの方向である。
 ボタン57hが操作されることにより、決定部14は、エンドエフェクタモデルM2を基準位置ベクトルV13の方向に沿って並進移動させる。そして、表示制御部11は、並進移動されたエンドエフェクタモデルM2を領域51に表示させる。なお、ボタン57c,57hのいずれが操作されても、エンドエフェクタモデルM2は、基準位置ベクトルV13の方向に沿って並進移動する。ただし、ボタン57c,57hのいずれが操作されたかに応じて、複製ボタン群60(図13参照)が操作されたときに複製されるエンドエフェクタモデルの位置姿勢に差異が生じる。
 調整ボタン群57は、ボタン57a~57hが操作されたときの単位移動量を設定するためのプルダウンボタン57iを含む。図14および図15に例示される設定画面50では、ボタン57a~57c,57g,57hが操作されたときの単位移動量がエンドエフェクタモデルM2の外接直方体の辺の長さの1%であり、ボタン57d~57fが操作されたときの単位移動量が1°である。なお、ボタン57a~57hの各々は、プラスボタンとマイナスボタンとを含む。プラスボタンは、正方向に単位移動量だけエンドエフェクタモデルM2を移動させるためのボタンであり、マイナスボタンは、負方向に単位移動量だけエンドエフェクタモデルM2を移動させるためのボタンである。
 表示制御部11は、ボタン57aの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV21,V31を領域51に表示させる。ベクトルV21,V31は、基準位置ベクトルV11と平行な軸である。表示制御部11は、ベクトルV21,V31とボタン57a,57dとを同一色(例えば赤色)で表示させる。表示制御部11は、ボタン57bの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV22,V32を領域51に表示させる。ベクトルV22,V32は、基準位置ベクトルV12と平行な軸である。表示制御部11は、ベクトルV22,V32とボタン57b,57eとを同一色(例えば緑色)で表示させる。表示制御部11は、ボタン57cの操作による並進移動方向をユーザに認識させるために、当該並進移動方向と平行であるベクトルV23,V33を領域51に表示させる。ベクトルV23,V33は、基準位置ベクトルV13と平行な軸である。表示制御部11は、ベクトルV23,V33とボタン57c,57fとを同一色(例えば青色)で表示させる。これにより、ユーザは、所望の移動方向に応じたボタン操作を行ないやすい。
 ベクトルV21~V23は、エンドエフェクタモデルM2における「Right tip finger」グループに属するパーツ(図14ではパーツ78)の先端付近に表示される。ベクトルV31~V33は、エンドエフェクタモデルM2における「Left tip finger」グループに属するパーツ(図14ではパーツ80、図15ではパーツ80b)の先端付近に表示される。図15に示されるように、ワークモデルM1の表示方向によって、ベクトルV21~V23とベクトルV31~V33との一方(図15ではベクトルV21~V23)は、ワークモデルM1に隠れる。しかしながら、ユーザは、ベクトルV21~V23とベクトルV31~V33との一方がワークモデルM1またはエンドエフェクタモデルM2に隠れている場合であっても、他方を見ながら、所望の移動方向に応じたボタン操作を行なえる。
 図14および図15に示されるように、反転ボタン群58(図13参照)は、上下反転ボタン58aと、左右反転ボタン58bとを含む。上下反転ボタン58aが操作されると、表示制御部11は、基準位置ベクトルV12を含む直線を回転軸として、エンドエフェクタモデルM2を180°回転させる。左右反転ボタン58bが操作されると、表示制御部11は、決定部14によって決定された座標変換行列を用いて座標変換されたエンドエフェクタ座標系のZ軸を回転軸として、エンドエフェクタモデルM2を180°回転させる。ユーザは、反転ボタン群58を操作することにより、エンドエフェクタモデルM2を簡単に反転させることができる。
 リセットボタン59が操作されると、決定部14は、エンドエフェクタモデルM2の位置姿勢の調整を全てリセットする。そのため、表示制御部11は、領域51に表示されているエンドエフェクタモデルM2の位置姿勢を、調整前の位置姿勢に戻す。
 <D-4.ボタン操作に応じたエンドエフェクタモデルの自動複製>
 図13および図16~図19を参照して、エンドエフェクタモデルM2の自動複製操作について説明する。指定された第1点P1および第2点P2に基づいて決定されたエンドエフェクタモデルの位置姿勢から指定方向に回転移動した位置姿勢であっても、把持点候補として利用できる場合がありうる。そのため、指定方向に回転移動した位置姿勢も把持点候補として登録可能なように、複製処理部15は、エンドエフェクタモデルM2の自動複製処理を行なう。
 図13に示す複製ボタン群60は、自動複製に関する設定を行なうためのボタン群である。図13に示されるように、複製ボタン群60は、「Single」ボタン60aを含む。ボタン60aが操作されたとき、自動複製機能がオフに設定される。
 図16は、複製ボタン群に含まれる「Fan」ボタン60bが操作されたときの設定画面の例を示す図である。図17は、複製ボタン群に含まれる「Cylinder」ボタン60cが操作されたときの設定画面の例を示す図である。図18は、複製ボタン群に含まれる「Hybrid」ボタン60dが操作されたときの設定画面の例を示す図である。図19は、複製ボタン群に含まれる「Circle」ボタン60eが操作されたときの設定画面の例を示す図である。
 複製処理部15は、ボタン60b~60eの操作に応じて、回転軸を決定する。複製処理部15は、エンドエフェクタモデルM2における「Right tip finger」グループに属するパーツの端面の重心と「Left tip finger」グループに属するパーツの端面の重心との中点P100(図8(c)参照)の座標を演算する。中点P100の座標は、決定部14によって決定された座標変換行列を用いて変換されたパーツの座標に基づいて演算される。
 複製処理部15は、ボタン60bの操作に応じて、中点P100を通り、基準位置ベクトルV12に平行な直線を回転軸として決定する。複製処理部15は、ボタン60cの操作に応じて、中点P100を通り、基準位置ベクトルV11に平行な直線を回転中心軸として決定する。複製処理部15は、ボタン60dの操作に応じて、中点P100を通り、基準位置ベクトルV11に平行な直線を第1の回転軸として決定し、中点P100を通り、基準位置ベクトルV12に平行な直線を第2の回転軸として決定する。複製処理部15は、ボタン60eの操作に応じて、中点P100を通り、基準位置ベクトルV13に平行な直線を回転軸として決定する。
 複製ボタン群60は、回転中心軸に対する回転角度を設定するためのボタン60f~60hを含む。ボタン60fは、開始角度を設定するために操作される。ボタン60gは、終了角度を設定するために操作される。ボタン60hは、複製個数を設定するために操作される。ボタン60f~60hの各々は、プラスボタンとマイナスボタンとを含む。プラスボタンが操作されることにより、角度または個数が正側に変更される。マイナスボタンが操作されることにより、角度または個数が負側に変更される。
 複製ボタン群60は、ボタン60f,60gが操作されたときの角度の単位変更量を選択するためのプルダウンボタン60iを含む。図16~図19に例示される設定画面50では、単位変更量として1°が選択されている。なお、ボタン60hが操作されたときの複製個数の変更量は1である。
 表示制御部11は、領域51において、開始角度、終了角度および複製個数を示すテキストT66を表示させる。ユーザは、テキストT66を見ながらボタン60f~60hを操作することにより、所望の開始角度、終了角度および複製個数を設定できる。
 図16に例示される設定画面50では、開始角度「-30°」、終了角度「30°」、複製個数「3個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-30°、0°、30°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_3を領域51に表示する。なお、エンドエフェクタモデルM2_2は、エンドエフェクタモデルM2と一致する。
 図17に例示される設定画面50では、開始角度「-150°」、終了角度「150°」、複製個数「7個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、エンドエフェクタモデルM2_1~M2_7をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_7を領域51に表示する。なお、エンドエフェクタモデルM2_4は、エンドエフェクタモデルM2と一致する。
 図18に例示される設定画面50では、第1の回転軸に対して、開始角度「-30°」、終了角度「30°」、複製個数「3個」が設定されている。さらに、第2の回転軸に対して、開始角度「-150°」、終了角度「150°」、複製個数「7個」が設定されている。そのため、複製処理部15は、第1の回転軸に対して、エンドエフェクタモデルM2を-30°、0°、30°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。
 さらに、複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_1を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_2(M2)を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。複製処理部15は、第2の回転軸に対して、エンドエフェクタモデルM2_3を-150°,-100°,-50°,0°,50°,100°,150°回転させることにより、7つのエンドエフェクタモデルを複製する。
 このようにして、複製処理部15は、合計24個のエンドエフェクタモデルM2_1~M2_24を複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_24を領域51に表示する。
 図19に例示される設定画面50では、開始角度「-88°」、終了角度「75°」、複製個数「3個」が設定されている。そのため、複製処理部15は、回転軸に対して、エンドエフェクタモデルM2を-88°,-6.5°,75°回転させることにより、エンドエフェクタモデルM2_1~M2_3をそれぞれ複製する。表示制御部11は、複製されたエンドエフェクタモデルM2_1~M2_3を領域51に表示する。
 なお、調整ボタン群57に含まれるボタン57a~57gが操作され、決定部14が位置姿勢の調整を行なった場合、複製処理部15は、調整後の位置姿勢に基づいてエンドエフェクタモデルの複製を行なう。具体的には、複製処理部15は、調整後の位置姿勢のエンドエフェクタモデルM2に基づいて回転軸を設定する。複製処理部15は、設定した回転軸に対して調整後のエンドエフェクタモデルM2を回転させることにより、エンドエフェクタモデルを複製する。そのため、例えば図17においてエンドエフェクタモデルM2が基準位置ベクトルV11の向きに+1だけ並進移動された場合、複製されるエンドエフェクタモデルM2_1~M2_7も基準位置ベクトルV11の向きに+1だけ並進移動する。
 調整ボタン群57に含まれるボタン57hが操作された場合も、複製処理部15は、調整後の位置姿勢に基づいてエンドエフェクタモデルの複製を行なう。ただし、複製処理部15は、調整前の位置姿勢のエンドエフェクタモデルM2に基づいて回転軸を設定する。そして、複製処理部15は、設定した回転軸に対して調整後のエンドエフェクタモデルM2を回転させることにより、エンドエフェクタモデルを複製する。そのため、例えば図17においてボタン57hの操作によりエンドエフェクタモデルM2が基準位置ベクトルV13の向きに+1だけ並進移動された場合、複製されるエンドエフェクタモデルM2_1~M2_7の各々は、回転軸に近づくように+1だけ並進移動する。
 <D-5.エンドエフェクタモデルの手動複製>
 図13に示されるように、設定画面50は、コピーボタン61を含む。コピーボタン61の操作に応じて、複製処理部15は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2を複製する。複製されたエンドエフェクタモデルの初期の位置姿勢は、決定部14によって決定された位置姿勢と同一である。表示制御部11は、複製されたエンドエフェクタモデルを領域51に表示する。複製処理部15は、複製されたエンドエフェクタモデルに対する操作に応じて、当該複製されたエンドエフェクタモデルの位置姿勢を変更する。
 図13に示されるように、設定画面50は、反転コピーボタン62を含む。反転コピーボタン62の操作に応じて、複製処理部15は、ワーク座標系の原点(ワークモデルM1の重心)に対して、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2と点対称であるエンドエフェクタモデルを複製する。表示制御部11は、複製されたエンドエフェクタモデルを領域51に表示する。
 <D-6.補助ガイド面の表示機能>
 表示制御部11は、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係が容易に把握されるように、補助ガイド面の表示機能を有している。補助ガイド面は、設定画面50のプルダウンボタン63(図13参照)の操作に応じて表示される。
 図20は、設定画面に表示される補助ガイド面の一例を示す図である。図20に例示される設定画面50では、プルダウンボタン63により「Cylinder(X)」が選択されている。図20に示されるように、設定画面50の領域51には、エンドエフェクタモデルM2の「Right tip finger」グループに属するパーツ78と「Left tip finger」グループに属するパーツ80との間に補助ガイド面69aが表示される。補助ガイド面69aは、パーツ78,80の端面にそれぞれ位置する点P101,P102(図8の(c)参照)を結ぶ線分を直径とし、基準位置ベクトルV11に平行な軸を有する円筒形状である。点P101は、パーツ78の端面において、当該端面の重心を通り、かつ可動方向に平行な線上の点のうちパーツ80に最も近い点である。点P102は、パーツ80の端面において、当該端面の重心を通り、かつ可動方向に平行な線上の点のうちパーツ78に最も近い点P10(図10参照)と一致する。補助ガイド面69aが表示されることにより、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係が容易に把握される。
 なお、プルダウンボタン63により、「Cylinder(Z)」が選択されてもよい。この場合、設定画面50の領域51には、点P101,P102を結ぶ線分を直径とし、基準位置ベクトルV13に平行な軸を有する円筒形状の補助ガイド面が表示される。
 図21は、設定画面に表示される補助ガイド面の別の例を示す図である。図21に例示される設定画面50では、プルダウンボタン63により「Rectangular(Z)」が選択されている。図21に示されるように、設定画面50の領域51には、エンドエフェクタモデルM2の「Right tip finger」グループに属するパーツ78と「Left tip finger」グループに属するパーツ80との間に角筒形状の補助ガイド面69bが表示される。補助ガイド面69bの断面は、パーツ78,80の先端にそれぞれ位置する点P101,P102を結ぶ線分を直径とする円の外接正方形である。さらに、角筒形状の補助ガイド面69bの軸は、基準位置ベクトルV13に平行である。補助ガイド面69bが表示されることにより、エンドエフェクタモデルM2の先端と直方体形状のワークモデルM1との相対位置関係が容易に把握される。
 なお、プルダウンボタン63により、「Rectangular(X)」が選択されてもよい。この場合、設定画面50の領域51には、点P101,P102を結ぶ線分を直径とする円の外接正方形を断面とし、基準位置ベクトルV11に平行な軸を有する角筒形状の補助ガイド面が表示される。
 ユーザは、ワークモデルM1の形状、エンドエフェクタモデルM2とワークモデルM1との相対位置関係などに応じてプルダウンボタン63を操作し、補助ガイド面の形状および向きを適宜変更すればよい。
 なお、調整ボタン群57に含まれるボタン57a~57gが操作され、決定部14が位置姿勢を調整した場合、表示制御部11は、調整後の位置姿勢に基づいて補助ガイド面を表示させる。そのため、例えば図20においてエンドエフェクタモデルM2が基準位置ベクトルV11の向きに+1だけ並進移動された場合、補助ガイド面69aも基準位置ベクトルV11の向きに+1だけ並進移動する。また、図20においてエンドエフェクタモデルM2のストローク幅が+1だけ変更された場合、補助ガイド面69aの直径も+1だけ変更される。
 一方、調整ボタン群57に含まれるボタン57hが操作された場合、表示制御部11は、調整前の位置姿勢(すなわち、決定部14によって決定された位置姿勢)のエンドエフェクタモデルM2に基づいて補助ガイド面を表示させる。そのため、例えば図20においてボタン57hの操作によりエンドエフェクタモデルM2が基準位置ベクトルV13の向きに+1だけ並進移動されたとしても、補助ガイド面69aは並進移動しない。
 <D-7.他の設定機能>
 図13に戻って、設定画面50は、ボタン群64,65,66をさらに含む。ボタン群64は、アプローチ動作における進行方向を設定するために操作される。
 図22は、アプローチ動作の設定方法を説明する図である。図22に示されるように、ボタン群64は、「Tip」ボタン64aと、「ToolZ」ボタン64bとを含む。「Tip」ボタン64aは、指部310の延伸方向に沿ってエンドエフェクタ301をワーク1に近づけるアプローチ動作を設定するときに操作される。指部310の延伸方向は、エンドエフェクタモデルM2における「Right tip finger」および「Left tip finger」グループに属するパーツ(図22ではパーツ78b)の端面の法線方向に対応する。「ToolZ」ボタン64bは、多関節アーム302のフランジ面の法線方向(エンドエフェクタ座標系のZ軸方向)に沿ってエンドエフェクタ301をワーク1に近づけるアプローチ動作を設定するときに操作される。
 ボタン群65は、決定部14によって決定された位置姿勢の優先度を設定するために操作される。ボタン群65は、「High」ボタンと「Low」ボタンとを含む。ユーザは、優先度の高い位置姿勢に対して「High」ボタンを操作し、優先度の低い位置姿勢に対して「Low」ボタンを操作する。登録部17は、「High」ボタンが操作された位置姿勢を、高優先度の把持点候補として登録する。登録部17は、「Low」ボタンが操作された位置姿勢を、低優先度の把持点候補として登録する。
 まず、画像処理部25は、高優先度の把持点候補に基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。ただし、高優先度の把持点候補を用いて決定した位置姿勢のエンドエフェクタ301が他のワーク1やコンテナ5と干渉する可能性がある。このような場合、画像処理部25は、低優先度の把持点候補に基づいて、対象ワーク2をピッキングするときのエンドエフェクタ301の位置姿勢を決定する。
 ボタン群66は、2本の指部310を用いた把持方法を設定するために操作される。ボタン群66は、外径把持を設定するための「Closing」ボタンと、内径把持を設定するための「Open」ボタンとを含む。
 表示制御部11は、現在の設定状態を示すテキスト54を領域51内に表示する。テキスト54は、「Object ID」と「Hand ID」と「Grasp point」と「DB ID」と「Priority」と「Approach」と「Pattern」と「Direction」とを示す。「Object ID」は、ワークモデルM1を識別するIDである。「Hand ID」は、エンドエフェクタモデルM2を識別するIDである。「Hand ID」は、図7の入力欄89に入力されたIDの中から選択される。「Grasp point」は、第1点P1および第2点P2の指定に応じて決定部14によって決定された位置姿勢の総数(分母)と、領域51に現在表示されているエンドエフェクタモデルM2の位置姿勢の番号(分子)とを示す。「DB ID」は、決定部14によって決定された位置姿勢と自動複製されたエンドエフェクタモデルの位置姿勢との総数(分母)と、領域51に現在表示されているエンドエフェクタモデルM2の位置姿勢の番号(分子)とを示す。「Priority」は、ボタン群65への操作によって現在設定されている優先度を示す。「Approach」は、ボタン群64への操作によって現在設定されているアプローチ動作を示す。「Pattern」は、複製ボタン群60への操作によって現在設定されている自動複製パターンを示す。「Direction」は、ボタン群66への操作によって現在設定されている把持方法を示す。
 <D-8.干渉判定>
 判定部16は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2と複製処理部15によって複製されたエンドエフェクタモデルM2_kとの各々について、ワークモデルM1との干渉判定を行なう。なお、調整ボタン群57が操作されている場合、判定部16は、調整後の位置姿勢のエンドエフェクタモデルM2,M2_kとワークモデルM1との干渉判定を行なう。
 判定部16は、エンドエフェクタモデルM2,M2_kを構成する各パーツの座標と、ワークモデルM1の表面を構成する三角メッシュの位置座標とに基づいて、干渉判定を行なう。エンドエフェクタモデルM2を構成する各パーツの座標は、決定部14によって決定された座標変換行列を用いて、モデルデータ43によって示される各パーツの座標を変換することにより算出される。エンドエフェクタモデルM2_kを構成する各パーツの座標は、さらに複製ボタン群60への操作に応じて定められる回転軸および回転角度に基づいて算出される。
 モデル作成部30によって作成されたエンドエフェクタモデルM2の形状およびサイズは、エンドエフェクタ301の形状およびサイズと一致していないことがありうる。そのため、判定部16は、モデルデータ43によって示されるマージン(図7の入力欄90に入力されたマージン)だけ、エンドエフェクタモデルM2,M2_kを拡大させてもよい。これにより、対象ワーク2と干渉するエンドエフェクタ301の位置姿勢が誤って把持点候補として登録されることを抑制できる。
 図23は、決定部によって決定された位置姿勢のエンドエフェクタモデルとワークモデルとが干渉するときの設定画面の一例を示す図である。エンドエフェクタモデルM2とワークモデルM1とが干渉している場合、表示制御部11は、エンドエフェクタモデルM2の表示形式を変更する。例えば、表示制御部11は、エンドエフェクタモデルM2において指部310に対応するパーツ77~80の表示色を変更する。これにより、ユーザは、パーツ77~80の表示色を確認することにより、エンドエフェクタモデルM2とワークモデルM1とが干渉していることを認識できる。エンドエフェクタモデルM2とワークモデルM1とが干渉している場合、ユーザは、調整ボタン群57を操作して、ワークモデルM1と干渉しないようにエンドエフェクタモデルM2の位置姿勢を調整すればよい。
 <D-9.登録処理>
 登録部17は、決定部14によって決定された位置姿勢と複製処理部15によって決定された位置姿勢(複製されたエンドエフェクタモデルの位置姿勢)とを把持点候補として登録する。なお、登録部17は、調整ボタン群57の操作を受けた場合には、調整後の位置姿勢を把持点候補として登録する。ただし、登録部17は、判定部16によってワークモデルM1と干渉していると判定されたエンドエフェクタモデルM2,M2_kの位置姿勢を把持点候補から除外する。
 <D-10.エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理>
 エンドエフェクタモデルM2が回転対称性を有する場合、登録部17は、当該回転対称性を考慮して把持点候補の自動登録処理を行なう。エンドエフェクタモデルM2の回転対称性は、図9に示すモデル作成画面において、チェックボックス92がチェックされ、入力欄93に最小回転角度θが入力されることにより設定される。これにより、回転対称軸と最小回転角度θとを示すモデルデータ43が作成される。
 登録部17は、モデルデータ43が回転対称軸と最小回転角度θとを示す場合、決定部14によって決定された位置姿勢から当該回転対称軸を中心にn×θだけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として登録する。なお、nは、1以上かつ360/θ未満の整数である。同様に、登録部17は、複製ボタン群60の操作に応じて自動複製されたエンドエフェクタモデルM2_kの位置姿勢から当該回転対称軸を中心にn×θだけ回転させたエンドエフェクタモデルの位置姿勢も把持点候補として登録する。
 図24は、エンドエフェクタモデルの回転対称性を考慮した把持点候補の自動登録処理を説明する図である。図24には、最小回転角度θとして180°(2回対称)が設定されたときの自動登録処理の例が示される。図24の(a)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2が示される。図24の(b)には、(a)に示すエンドエフェクタモデルM2の位置姿勢から回転対象軸(エンドエフェクタ座標系のZ軸)を中心に180°だけ回転させたエンドエフェクタモデルM2(1)が示される。図24に示されるように、エンドエフェクタモデルM2とエンドエフェクタモデルM2(1)とは重なり合う。そのため、登録部17は、図24の(a)に示されるエンドエフェクタモデルM2の位置姿勢を把持点候補として登録するときに、図24の(b)に示されるエンドエフェクタモデルM2(1)の位置姿勢も把持点候補として自動登録する。
 <E.把持点候補の登録処理の流れ>
 図25は、把持点候補の登録処理の流れの一例を示すフローチャートである。まず、画像処理装置100のCPU110は、CADデータ42によって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける(ステップS1)。CPU110は、CADデータ42に基づいて、第1点P1および第2点P2の各々の法線ベクトルを特定する(ステップS2)。
 次に、CPU110は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する(ステップS3)。CPU110は、第1点P1の法線ベクトルおよび第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する(ステップS4)。さらに、CPU110は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3を演算する(ステップS5)。
 次に、CPU110は、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12,V13と、位置ベクトルV1,V2,V3との相対位置関係が予め定められた基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する(ステップS6)。
 CPU110は、決定された位置姿勢を把持点候補として登録する(ステップS7)。具体的には、CPU110は、ワークモデルM1に対する、ステップS6において決定された位置姿勢のエンドエフェクタモデルM2の相対位置姿勢を把持点候補として登録する。
 なお、ステップS6において決定された位置姿勢が調整された場合、調整後の位置姿勢が把持点候補として登録されてもよい。また、ステップS6において決定された位置姿勢のエンドエフェクタモデルM2を指定方向に指定角度だけ回転させることにより複製されたエンドエフェクタモデルM2_kの位置姿勢も把持点候補として登録されてもよい。さらに、エンドエフェクタモデルM2の回転対称性を考慮して複製されたエンドエフェクタモデルの位置姿勢も把持点候補として登録されてもよい。
 <F.変形例>
 <F-1.変形例1>
 エンドエフェクタ301は、2指ハンドに限定されない。例えば、エンドエフェクタ301は、3本以上の指部を有する多指ハンドや、1以上の真空パッドを有する吸着ハンドであってもよい。
 エンドエフェクタ301が3本の指部を有する場合、エンドエフェクタモデルM2における3本の指部にそれぞれ対応する3つのパーツは、3回対称となる。そのため、図9に示すモデル作成画面70の入力欄93には、最小回転角度θとして120°が入力される。これにより、登録部17は、決定部14によって決定された位置姿勢から回転対称軸を中心に120°,240°だけそれぞれ回転させた2つのエンドエフェクタモデルの位置姿勢を把持点候補として登録する。
 図26は、吸着ハンドに対応するエンドエフェクタモデルを作成中のモデル作成画面の一例を示す図である。図26に例示されるモデル作成画面70では、エンドエフェクタモデルM2は、パーツ97~99によって構成される。吸着ハンドであるエンドエフェクタについて、「Base」および「Bellows」の2つのグループが予め定められる。「Base」グループは、真空パッドを支持する部分に対応する。「Bellows」グループは、真空パッドに対応する。パーツ97,98は、「Base」グループに属する。パーツ99は、「Bellows」グループに属する。
 図27は、設定画面に表示される補助ガイド面のさらに別の例を示す図である。図27に例示される設定画面50には、図26に示すモデル作成画面70を用いて作成されたエンドエフェクタモデルM2が表示されている。なお、図27に例示される設定画面50は、タブ68が操作されたときの状態に対応し、エンドエフェクタ301が吸着ハンドであるときに表示される。
 図27に示されるように、タブ68が操作されると、プルダウンボタン63により「Plane」が選択可能となる。「Plane」が選択されると、表示制御部11は、「Bellows」グループに属するパーツ99の先端面を含む平面形状の補助ガイド面69cを表示させる。これにより、パーツ99の先端とワークモデルM1との相対位置関係が容易に把握される。
 <F-2.変形例2>
 上記の具体例では、決定部14は、基準位置ベクトルV11,V12,V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に最も近づくようにエンドエフェクタ座標系を剛体変換させるための座標変換行列を決定する。すなわち、決定部14は、ワーク座標系において、基準関係に基づいて位置ベクトルV1,V2,V3を補正する。決定部14は、座標変換後の基準位置ベクトルV11,V12,V13の終点のXYZ座標と補正後の位置ベクトルV1,V2,V3の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定する。しかしながら、決定部14による座標変換行列の決定方法はこれに限定されない。
 剛体変換の座標変換行列は、各座標系における、一直線上にない少なくとも3つの点の座標を用いることにより決定される。そのため、決定部14は、座標変換後の基準位置ベクトルV11,V12の共通の始点および各々の終点のXYZ座標と、補正後の位置ベクトルV1,V2の共通の始点および各々の終点のXYZ座標とのそれぞれの差分が最小となるように、座標変換行列を決定してもよい。この場合、演算部13は、位置ベクトルV3を演算しなくてもよい。また、モデル作成部30は、エンドエフェクタモデルM2に対して基準位置ベクトルV13を設定しなくてもよい。
 <F-3.変形例3>
 上記の具体例では、演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルを位置ベクトルV3として演算した。しかしながら、演算部13は、別の方法で位置ベクトルV3を演算してもよい。例えば、演算部13は、位置ベクトルV1と同じ点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算してもよい。
 図28は、変形例3に係る位置ベクトルV3の演算方法を示す図である。図28の(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、点P0を通り、画面に平行な平面上において、点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算する。
 図28の(b)には、異なる視点からの位置ベクトルV1,V2,V3が示される。なお,演算部13は、上記の具体例と同様に、位置ベクトルV2を演算する。図28の(b)に示されるように、変形例3に従って演算された位置ベクトルV1,V2,V3は、互いに直交しない可能性が高い。
 図28の(c)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との相対位置関係が示される。決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。例えば、基準関係は、位置ベクトルV2の向きと基準位置ベクトルV12の向きとが一致する関係を含む。ただし、位置ベクトルV1,V2,V3が互いに直交しないため、図28の(c)に示されるように、位置ベクトルV2の向きと基準位置ベクトルV12の向きとにずれが生じうる。このような場合、調整ボタン群57の操作によってエンドエフェクタモデルM2の位置姿勢が調整される。
 <F-4.変形例4>
 上記の具体例では、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルを位置ベクトルV2として演算した。しかしながら、演算部13は、別の方法で位置ベクトルV2を演算してもよい。
 図29は、変形例4に係る位置ベクトルV2の演算方法を示す図である。図29の(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、上記の変形例3と同様に、点P0を通り、画面に平行な平面上において、点P0を始点とし、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算する。
 図29の(b)には、異なる視点からの位置ベクトルV1,V2,V3が示される。演算部13は、位置ベクトルV1と位置ベクトルV3との外積を位置ベクトルV2として演算する。図29の(b)に示されるように、変形例4に従って演算された位置ベクトルV1,V2,V3は、互いに直交する。
 図29の(c)には、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との相対位置関係が示される。決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。例えば、基準関係は、位置ベクトルV2の向きと基準位置ベクトルV12の向きとが一致する関係を含む。位置ベクトルV1,V2,V3が互いに直交するため、図29の(c)に示されるように、位置ベクトルV2の向きと基準位置ベクトルV12の向きとは一致する。ただし、変形例4では、位置ベクトルV2の向きは、ワークモデルM1の表面における法線方向とは限らず、第1点P1および第2点P2の位置、および、第1点P1および第2点P2を指定するときのワークモデルM1の姿勢に依存する。そのため、図29の(c)に示されるように、エンドエフェクタモデルM2とワークモデルM1とが干渉してしまうことがある。このような場合、調整ボタン群57の操作によってエンドエフェクタモデルM2の位置姿勢が調整される。
 <F-5.変形例5>
 図30は、変形例5に係る位置ベクトルV2の演算方法を示す図である。図30の(a)には、設定画面50の領域51が示される。演算部13は、上記の具体例と同様に、第1点P1および第2点P2が定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。
 位置ベクトルV1が演算されると、表示制御部11は、領域51に表示されるワークモデルM1の姿勢を変更する。具体的には、表示制御部11は、点P0を通り、位置ベクトルV1に直交する線上の点がユーザの視点となるように、領域51に表示されるワークモデルM1の姿勢を変更する。
 図30の(b)には、ワークモデルM1の姿勢が変更された後の領域51が示される。受付部12は、図30の(b)に示す領域51において、点P0を通り、位置ベクトルV1に直交する平面上の第3点P3の指定を受け付ける。演算部13は、点P0を始点とし、点P0から第3点P3への向きと同じ向きを有する位置ベクトルを位置ベクトルV2として演算する。さらに、演算部13は、上記の具体例と同様に、位置ベクトルV1と位置ベクトルV2との外積を位置ベクトルV3として演算する。
 決定部14は、上記の具体例と同様に、基準位置ベクトルV11~V13と位置ベクトルV1~V3との相対位置関係が基準関係に最も近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。これにより、ユーザは、第1点P1、第2点P2および第3点P3を指定だけで、把持点候補を設定できる。
 <F-6.変形例6>
 上記の具体例では、モデル作成部30は、ユーザによる入力指示に従ってエンドエフェクタモデルM2を作成する。しかしながら、モデル作成部30は、エンドエフェクタ301の三次元形状を定義するCADデータの指定を受け付け、指定されたCADデータによって示されるエンドエフェクタモデルに対して基準位置ベクトルV11,V12,V13を設定してもよい。
 <F-7.変形例7>
 上記の具体例では、画像処理装置100が把持点設定部10を備えるものとした。しかしながら、画像処理装置100と通信可能に接続された設定装置が把持点設定部10を備えていてもよい。
 <G.作用・効果>
 以上のように、画像処理装置100は、ロボット300のエンドエフェクタ301がワーク1をピッキングするときのエンドエフェクタ301の位置姿勢候補(把持点候補)を設定する。画像処理装置100は、受付部12と、演算部13と、決定部14と、登録部17とを備える。受付部12は、ワーク1の三次元形状を定義するCADデータ42によって示されるワークモデルM1上の第1点P1および第2点P2の指定を受け付ける。演算部13は、第1点P1および第2点P2から定義される点P0を始点とし、第1点P1から第2点P2への向きと同じ向きを有する位置ベクトルV1を演算する。さらに、演算部13は、ワークモデルM1における第1点P1および第2点P2の法線ベクトルから定義される位置ベクトルV2を演算する。決定部14は、エンドエフェクタ301の三次元形状を示すエンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV11,V12と位置ベクトルV1,V2との相対位置関係が予め定められた第1基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。なお、第1基準関係は、例えば、位置ベクトルV2の向きに位置ベクトルV1,V2を規定距離だけ並進移動させたときに、基準位置ベクトルV11,V12にそれぞれ一致する関係である。登録部17は、決定部14によって決定された位置姿勢を把持点候補として登録する。
 上記の構成によれば、ユーザは、ワークモデルM1上の第1点P1および第2点P2を指定するだけで、把持点候補を設定できる。すなわち、ワーク1をピッキングするエンドエフェクタ301の位置姿勢が簡易に設定される。
 演算部13は、位置ベクトルV1と位置ベクトルV2との外積で表される位置ベクトルV3をさらに演算する。決定部14は、基準位置ベクトルV11,V12と位置ベクトルV1,V2との相対位置関係が前記第1基準関係に近づくとともに、エンドエフェクタモデルM2に対して予め定められた基準位置ベクトルV13と位置ベクトルV3との相対位置関係が予め定められた第2基準関係に近づくように、エンドエフェクタモデルM2の位置姿勢を決定する。なお、第2基準関係は、例えば、位置ベクトルV2の向きに位置ベクトルV3を規定距離だけ並進移動させたときに、基準位置ベクトルV13に一致する関係である。
 上記の構成によれば、決定部14は、位置ベクトルV3と基準位置ベクトルV13との相対位置関係も考慮して、把持点候補として登録され得る位置姿勢を決定できる。
 なお、変形例3のように、演算部13は、位置ベクトルV1に直交する位置ベクトルを位置ベクトルV3として演算してもよい。
 画像処理装置100は、入力指示に従ってエンドエフェクタモデルM2を作成するモデル作成部30をさらに備える。モデル作成部30は、エンドエフェクタモデルM2に対して、基準位置ベクトルV11,V12,V13を設定する。
 上記の構成によれば、ユーザは、モデル作成部30を用いてエンドエフェクタモデルM2を自由に作成できる。
 なお、変形例6のように、エンドエフェクタモデルM2は、エンドエフェクタ301の三次元形状を定義するCADデータによって示されてもよい。この場合、ユーザは、モデル作成部30を用いてエンドエフェクタモデルM2を作成しなくてもよい。
 エンドエフェクタ301は回転対称性を有する。モデル作成部30は、エンドエフェクタモデルM2における回転対称軸と、自身に重なり合う最小回転角度θとを設定する。登録部17は、決定部14によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルM2の位置姿勢を把持点候補としてさらに登録する。nは、1以上かつ360°/θ未満の整数である。
 回転対称性を有するエンドエフェクタ301である場合、回転対称軸に対して最小回転角度θのn倍だけ回転させたエンドエフェクタ301であっても、ワーク1を把持可能となる。上記の構成によれば、決定部14によって決定された位置姿勢から回転対称軸を中心に最小回転角度θのn倍だけ回転させたエンドエフェクタモデルM2の位置姿勢も把持点候補として自動で登録される。これにより、ユーザによる把持点候補の登録操作の手間が削減される。
 画像処理装置100は、ワークモデルM1を表示装置150の設定画面50に表示させる表示制御部11をさらに備える。受付部12は、設定画面50において指定された位置に基づいて、第1点P1および第2点P2を受け付ける。これにより、ユーザは、設定画面50に表示されたワークモデルM1を見ながら、ワークモデルM1上の所望の位置において第1点P1および第2点P2を指定できる。
 表示制御部11は、ワークモデルM1を基準とする座標軸(X軸52x、Y軸52yおよびZ軸52z)を設定画面50に表示させる。表示制御部11は、ワークモデルM1に対する操作に応じて、設定画面50に表示されるワークモデルM1の位置姿勢を変更する。これにより、ユーザは、ワークモデルM1を基準とする座標軸を見ながら、第1点P1および第2点P2を指定しやすいように、ワークモデルM1の位置姿勢を所望の状態に変更しやすくなる。
 表示制御部11は、設定画面50において、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2をワークモデルM1に重畳して表示させる。決定部14は、エンドエフェクタモデルM2の座標系(エンドエフェクタ座標系)の軸方向に沿った並進移動および当該軸方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する。これにより、ユーザは、基準位置ベクトルV11,V12、V13と位置ベクトルV1,V2,V3との相対位置関係が基準関係に近づくように決定されたエンドエフェクタモデルM2の位置姿勢を調整し、調整後の位置姿勢を把持点候補として登録できる。
 基準位置ベクトルV11,V12,V13は、エンドエフェクタ座標系におけるX軸、Y軸およびZ軸とそれぞれ平行である。表示制御部11は、設定画面50において、基準位置ベクトルV11,V12,V13を表示させる。これにより、ユーザは、基準位置ベクトルV11,V12,V13を見ながら、エンドエフェクタモデルM2の位置姿勢を所望の状態に調整しやすくなる。
 表示制御部11は、設定画面50において、エンドエフェクタ座標系の軸方向を表示させてもよい。具体的には、表示制御部11は、エンドエフェクタ座標系におけるX軸、Y軸およびZ軸にそれぞれ平行なベクトルV21,V31,ベクトルV22,V32およびベクトルV23,V33を表示させる。これにより、ユーザは、ベクトルV21、V31,V22,V32,V23,V33を見ながら、エンドエフェクタモデルM2の位置姿勢を所望の状態に調整しやすくなる。
 表示制御部11は、エンドエフェクタモデルM2の先端に接する所定形状の補助ガイド面69a,69b,69cを設定画面50に表示させる。
 エンドエフェクタ301は、例えば2本の指部310を有する。この場合、エンドエフェクタモデルM2における2本の指部310の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状の補助ガイド面69aが表示される。または、当該線分を直径とする円の外接正方形を断面とする角筒形状の補助ガイド面69bが表示される。
 あるいは、エンドエフェクタ301は、1以上の真空パッドを有する吸着ハンドであってもよい。この場合、エンドエフェクタモデルM2における1以上の真空パッドに対応するパーツの先端面を含む平面形状の補助ガイド面69cが表示される。
 補助ガイド面69a,69b,69cが表示されることにより、ユーザは、エンドエフェクタモデルM2の先端とワークモデルM1との相対位置関係を容易に把握できる。
 画像処理装置100は、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2とワークモデルM1との干渉判定を行なう判定部16をさらに備える。表示制御部11は、設定画面50において、決定部14によって決定された位置姿勢のエンドエフェクタモデルM2をワークモデルM1に重畳して表示させる。表示制御部11は、判定部16によって干渉していると判定されたことに応じて、エンドエフェクタモデルM2の表示形式を変更する。これにより、ユーザは、エンドエフェクタモデルM2とワークモデルM1とが干渉していることを容易に把握できる。
 登録部17は、判定部16によって干渉していると判定された位置姿勢を把持点候補から削除する。これにより、ワークモデルM1と干渉するエンドエフェクタモデルM2の位置姿勢が把持点候補として登録されることを防止できる。
 §3 付記
 以上のように、本実施の形態は以下のような開示を含む。
 (構成1)
 ロボット(300)のエンドエフェクタ(301)がワーク(1)をピッキングするときの前記エンドエフェクタ(301)の位置姿勢候補を設定するための設定装置(100)であって、
 前記ワーク(1)の三次元形状を定義する第1CADデータ(42)によって示されるワークモデル(M1)上の第1点(P1)および第2点(P2)の指定を受け付ける受付部(12)と、
 前記第1点(P1)および前記第2点(P2)から定義される点(P0)を始点とし、前記第1点(P1)から前記第2点(P2)への向きと同じ向きを有する第1位置ベクトル(V1)と、前記ワークモデル(M1)における前記第1点(P1)および前記第2点(P2)の法線ベクトル(Va,Vb)から定義される第2位置ベクトル(V2)とを演算する演算部(13)と、
 前記エンドエフェクタ(301)の三次元形状を示すエンドエフェクタモデル(M2)に対して予め定められた第1基準位置ベクトル(V11)および第2基準位置ベクトル(V12)と、前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する決定部(14)と、
 前記決定部(14)によって決定された位置姿勢を前記位置姿勢候補として登録する登録部(17)とを備える、設定装置(100)。
 (構成2)
 前記演算部(13)は、前記第1位置ベクトル(V1)と前記第2位置ベクトル(V2)との外積で表される第3位置ベクトル(V3)をさらに演算し、
 前記決定部(14)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)と前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデル(M2)に対して予め定められた第3基準位置ベクトル(V13)と前記第3位置ベクトル(V3)との相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する、構成1に記載の設定装置(100)。
 (構成3)
 前記演算部(13)は、前記第1位置ベクトル(V1)に直交する第3位置ベクトル(V3)をさらに演算し、
 前記決定部(14)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)と前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデル(M2)に対して予め定められた第3基準位置ベクトル(V13)と前記第3位置ベクトル(V3)との相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定する、構成1に記載の設定装置(100)。
 (構成4)
 前記エンドエフェクタモデル(M2)は、前記エンドエフェクタ(301)の三次元形状を定義する第2CADデータによって示される、構成1から3のいずれかに記載の設定装置(100)。
 (構成5)
 入力指示に従って前記エンドエフェクタモデル(M2)を作成するモデル作成部(30)をさらに備え、
 前記モデル作成部(30)は、前記第1基準位置ベクトル(V11)および前記第2基準位置ベクトル(V12)を設定する、構成1から3のいずれかに記載の設定装置(100)。
 (構成6)
 前記エンドエフェクタ(301)は回転対称性を有し、
 前記モデル作成部(30)は、前記エンドエフェクタモデル(M2)における回転対称軸と、自身に重なり合う最小回転角度θとを設定し、
 前記登録部(17)は、前記決定部(14)によって決定された位置姿勢から前記回転対称軸を中心に前記最小回転角度θのn倍だけ回転させた前記エンドエフェクタモデルの位置姿勢を前記位置姿勢候補としてさらに登録し、
 nは、1以上かつ360°/θ未満の整数である、構成5に記載の設定装置(100)。
 (構成7)
 前記ワークモデル(M1)を表示装置(150)の画面(50)に表示させる表示制御部(11)をさらに備え、
 前記受付部(12)は、前記画面(50)において指定された位置に基づいて、前記第1点(P1)および前記第2点(P2)を受け付ける、構成1から6のいずれかに記載の設定装置(100)。
 (構成8)
 前記表示制御部(11)は、
  前記ワークモデル(M1)を基準とする座標軸(52x,52y,52z)を前記画面(50)に表示させ、
  前記ワークモデル(M1)に対する操作に応じて、前記画面(50)に表示される前記ワークモデル(M1)の位置姿勢を変更する、構成7に記載の設定装置(100)。
 (構成9)
 前記表示制御部(11)は、前記画面(50)において、前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)を前記ワークモデル(M1)に重畳して表示させ、
 前記決定部(14)は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する、構成7または8に記載の設定装置(100)。
 (構成10)
 前記表示制御部(11)は、前記画面(50)において、前記予め定められた方向を示す軸を表示させる、構成9に記載の設定装置(100)。
 (構成11)
 前記表示制御部(11)は、前記エンドエフェクタモデル(M2)の先端に接する所定形状のガイド面(69a~69c)を前記画面(50)に表示させる、構成9または10に記載の設定装置(100)。
 (構成12)
 前記エンドエフェクタ(301)は、2本の指部(310)を有し、
 前記ガイド面(69a,69b)は、前記エンドエフェクタモデル(M2)における前記2本の指部(310)の先端にそれぞれ対応する2点(P101,P102)を結ぶ線分を直径とする円筒形状、または、前記線分を直径とする円の外接正方形を断面とする角筒形状である、構成11に記載の設定装置(100)。
 (構成13)
 前記エンドエフェクタ(301)は、1以上の真空パッドを有する吸着ハンドであり、
 前記ガイド面(69c)は、前記エンドエフェクタモデル(M2)における前記1以上の真空パッドに対応するパーツ(99)の先端面を含む平面形状である、構成11に記載の設定装置(100)。
 (構成14)
 前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)と前記ワークモデル(M1)との干渉判定を行なう判定部(16)をさらに備え、
 前記表示制御部(11)は、
  前記画面(50)において、前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)を前記ワークモデル(M1)に重畳して表示させ、
  前記判定部(16)によって干渉していると判定されたことに応じて、前記エンドエフェクタモデル(M2)の表示形式を変更する、構成7または8に記載の設定装置(100)。
 (構成15)
 前記決定部(14)によって決定された位置姿勢の前記エンドエフェクタモデル(M2)と前記ワークモデル(M1)との干渉判定を行なう判定部(16)をさらに備え、
 前記登録部(17)は、前記判定部(16)によって干渉していると判定された位置姿勢を前記位置姿勢候補から削除する、構成1から13のいずれかに記載の設定装置(100)。
 (構成16)
 ロボット(300)のエンドエフェクタ(301)がワーク(1)をピッキングするときの前記エンドエフェクタ(301)の位置姿勢候補の設定方法であって、
 前記ワーク(1)の三次元形状を定義する第1CADデータ(42)によって示されるワークモデル(M1)上の第1点(P1)および第2点(P2)の指定を受け付けるステップと、
 前記第1点(P1)および前記第2点(P2)から定義される点(P0)を始点とし、前記第1点(P1)から前記第2点(P2)への向きと同じ向きを有する第1位置ベクトル(V1)と、前記ワークモデル(M1)における前記第1点(P1)および前記第2点(P2)の法線ベクトル(Va,Vb)から定義される第2位置ベクトル(V2)とを演算するステップと、
 前記エンドエフェクタ(301)の三次元形状を示すエンドエフェクタモデル(M2)に対して予め定められた第1基準位置ベクトル(V11)および第2基準位置ベクトル(V12)と、前記第1位置ベクトル(V1)および前記第2位置ベクトル(V2)との相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデル(M2)の位置姿勢を決定するステップと、
 前記決定部(14)によって決定された位置姿勢を前記位置姿勢候補として登録するステップとを備える、設定方法。
 (構成17)
 構成16に記載の設定方法をコンピュータに実行させるプログラム。
 本発明の実施の形態について説明したが、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
 1 ワーク、2 対象ワーク、5 コンテナ、10 把持点設定部、11 表示制御部、12 受付部、13 演算部、14 決定部、15 複製処理部、16 判定部、17 登録部、20 ヘッド制御部、25 画像処理部、30 モデル作成部、40 記憶部、41 画像データ、42 CADデータ、43 モデルデータ、44 把持点データ、50 設定画面、51,71,86,91 領域、52x X軸、52y Y軸、52z Z軸、53x~53z,83,L 線、54,T66,84 テキスト、55 把持点選択ボタン群、56 削除ボタン、57 調整ボタン群、57a~57h,60a~60h,91d,91e ボタン、57i,60i,63,74a プルダウンボタン、58 反転ボタン群、58a 上下反転ボタン、58b 左右反転ボタン、59 リセットボタン、60 複製ボタン群、61 コピーボタン、62 反転コピーボタン、64,65,66 ボタン群、67,68,85,87,88 タブ、69a~69c 補助ガイド面、70 モデル作成画面、72 座標軸、73 編集用ボタン群、74 パーツ一覧、75~80,97~99 パーツ、81 ラジオボタン群、82,92 チェックボックス、86a,86b,89,90,91a,91b,91f,93 入力欄、91c リスト、94 保存ボタン、95 終了ボタン、96 回転対称軸、100 画像処理装置、106 メモリカード、110 CPU、112 メインメモリ、114 ハードディスク、116 計測ヘッドインターフェース、116a 画像バッファ、118 入力インターフェース、120 表示コントローラ、124 通信インターフェース、126 データリーダ/ライタ、128 バス、150 表示装置、160 入力装置、200 ロボットコントローラ、300 ロボット、301 エンドエフェクタ、302 多関節アーム、303 ベース、310 指部、400 計測ヘッド、401 投影部、402 撮像部、M1 ワークモデル、P0 点、P1 第1点、P2 第2点、P3 第3点、SYS 制御システム、V1,V2,V3,V13 位置ベクトル、V11,V12,V13 基準位置ベクトル、Va,Vb 法線ベクトル。

Claims (17)

  1.  ロボットのエンドエフェクタがワークをピッキングするときの前記エンドエフェクタの位置姿勢候補を設定するための設定装置であって、
     前記ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付ける受付部と、
     前記第1点および前記第2点から定義される点を始点とし、前記第1点から前記第2点への向きと同じ向きを有する第1位置ベクトルと、前記ワークモデルにおける前記第1点および前記第2点の法線ベクトルから定義される第2位置ベクトルとを演算する演算部と、
     前記エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が予め定められた第1基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する決定部と、
     前記決定部によって決定された位置姿勢を前記位置姿勢候補として登録する登録部とを備える、設定装置。
  2.  前記演算部は、前記第1位置ベクトルと前記第2位置ベクトルとの外積で表される第3位置ベクトルをさらに演算し、
     前記決定部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルと前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと前記第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する、請求項1に記載の設定装置。
  3.  前記演算部は、前記第1位置ベクトルに直交する第3位置ベクトルをさらに演算し、
     前記決定部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルと前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が前記第1基準関係に近づくとともに、前記エンドエフェクタモデルに対して予め定められた第3基準位置ベクトルと前記第3位置ベクトルとの相対位置関係が予め定められた第2基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定する、請求項1に記載の設定装置。
  4.  前記エンドエフェクタモデルは、前記エンドエフェクタの三次元形状を定義する第2CADデータによって示される、請求項1から3のいずれか1項に記載の設定装置。
  5.  入力指示に従って前記エンドエフェクタモデルを作成するモデル作成部をさらに備え、
     前記モデル作成部は、前記第1基準位置ベクトルおよび前記第2基準位置ベクトルを設定する、請求項1から3のいずれか1項に記載の設定装置。
  6.  前記エンドエフェクタは回転対称性を有し、
     前記モデル作成部は、前記エンドエフェクタモデルにおける回転対称軸と、自身に重なり合う最小回転角度θとを設定し、
     前記登録部は、前記決定部によって決定された位置姿勢から前記回転対称軸を中心に前記最小回転角度θのn倍だけ回転させた前記エンドエフェクタモデルの位置姿勢を前記位置姿勢候補としてさらに登録し、
     nは、1以上かつ360°/θ未満の整数である、請求項5に記載の設定装置。
  7.  前記ワークモデルを表示装置の画面に表示させる表示制御部をさらに備え、
     前記受付部は、前記画面において指定された位置に基づいて、前記第1点および前記第2点を受け付ける、請求項1から6のいずれか1項に記載の設定装置。
  8.  前記表示制御部は、
      前記ワークモデルを基準とする座標軸を前記画面に表示させ、
      前記ワークモデルに対する操作に応じて、前記画面に表示される前記ワークモデルの位置姿勢を変更する、請求項7に記載の設定装置。
  9.  前記表示制御部は、前記画面において、前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルを前記ワークモデルに重畳して表示させ、
     前記決定部は、予め定められた方向に沿った並進移動および当該予め定められた方向に平行な回転軸を中心とする回転移動の少なくとも一方の操作を受け付け、当該操作に応じて、決定した位置姿勢を調整する、請求項7または8に記載の設定装置。
  10.  前記表示制御部は、前記画面において、前記予め定められた方向を示す軸を表示させる、請求項9に記載の設定装置。
  11.  前記表示制御部は、前記エンドエフェクタモデルの先端に接する所定形状のガイド面を前記画面に表示させる、請求項9または10に記載の設定装置。
  12.  前記エンドエフェクタは、2本の指部を有し、
     前記ガイド面は、前記エンドエフェクタモデルにおける前記2本の指部の先端にそれぞれ対応する2点を結ぶ線分を直径とする円筒形状、または、前記線分を直径とする円の外接正方形を断面とする角筒形状である、請求項11に記載の設定装置。
  13.  前記エンドエフェクタは、1以上の真空パッドを有する吸着ハンドであり、
     前記ガイド面は、前記エンドエフェクタモデルにおける前記1以上の真空パッドに対応するパーツの先端面を含む平面形状である、請求項11に記載の設定装置。
  14.  前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルと前記ワークモデルとの干渉判定を行なう判定部をさらに備え、
     前記表示制御部は、
      前記画面において、前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルを前記ワークモデルに重畳して表示させ、
      前記判定部によって干渉していると判定されたことに応じて、前記エンドエフェクタモデルの表示形式を変更する、請求項7または8に記載の設定装置。
  15.  前記決定部によって決定された位置姿勢の前記エンドエフェクタモデルと前記ワークモデルとの干渉判定を行なう判定部をさらに備え、
     前記登録部は、前記判定部によって干渉していると判定された位置姿勢を前記位置姿勢候補から削除する、請求項1から13のいずれか1項に記載の設定装置。
  16.  ロボットのエンドエフェクタがワークをピッキングするときの前記エンドエフェクタの位置姿勢候補の設定方法であって、
     前記ワークの三次元形状を定義する第1CADデータによって示されるワークモデル上の第1点および第2点の指定を受け付けるステップと、
     前記第1点および前記第2点から定義される点を始点とし、前記第1点から前記第2点への向きと同じ向きを有する第1位置ベクトルと、前記ワークモデルにおける前記第1点および前記第2点の法線ベクトルから定義される第2位置ベクトルとを演算するステップと、
     前記エンドエフェクタの三次元形状を示すエンドエフェクタモデルに対して予め定められた第1基準位置ベクトルおよび第2基準位置ベクトルと、前記第1位置ベクトルおよび前記第2位置ベクトルとの相対位置関係が予め定められた基準関係に近づくように、前記エンドエフェクタモデルの位置姿勢を決定するステップと、
     決定された位置姿勢を前記位置姿勢候補として登録するステップとを備える、設定方法。
  17.  請求項16に記載の設定方法をコンピュータに実行させるプログラム。
PCT/JP2020/040349 2019-11-15 2020-10-28 設定装置、設定方法およびプログラム WO2021095521A1 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2019-207051 2019-11-15
JP2019207051A JP7392409B2 (ja) 2019-11-15 2019-11-15 設定装置、設定方法およびプログラム

Publications (1)

Publication Number Publication Date
WO2021095521A1 true WO2021095521A1 (ja) 2021-05-20

Family

ID=75912312

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/040349 WO2021095521A1 (ja) 2019-11-15 2020-10-28 設定装置、設定方法およびプログラム

Country Status (2)

Country Link
JP (1) JP7392409B2 (ja)
WO (1) WO2021095521A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2022189506A (ja) * 2021-06-11 2022-12-22 オムロン株式会社 把持情報生成装置、方法、及びプログラム
EP4364905A4 (en) * 2021-06-29 2024-08-14 Fuji Corp ROBOT DEVICE AND ARM OPERATING METHOD
WO2024150319A1 (ja) * 2023-01-11 2024-07-18 ファナック株式会社 制御装置及びプログラム

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10264065A (ja) * 1997-03-27 1998-10-06 Mitsubishi Electric Corp ロボットの遠隔操作支援装置
JPH1158279A (ja) * 1997-08-22 1999-03-02 Meidensha Corp 把持位置姿勢教示装置及びその処理を実現するソフトウェアを記録した記録媒体
JP2009214212A (ja) * 2008-03-10 2009-09-24 Toyota Motor Corp 動作教示システム及び動作教示方法
JP2013046937A (ja) * 2011-08-29 2013-03-07 Dainippon Screen Mfg Co Ltd 対象物把持装置および対象物把持方法および対象物把持プログラム
JP2015085475A (ja) * 2013-10-31 2015-05-07 キヤノン株式会社 情報処理装置、情報処理方法
US20170326728A1 (en) * 2016-05-11 2017-11-16 X Development Llc Generating a grasp pose for grasping of an object by a grasping end effector of a robot
JP2018144164A (ja) * 2017-03-03 2018-09-20 株式会社キーエンス ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10264065A (ja) * 1997-03-27 1998-10-06 Mitsubishi Electric Corp ロボットの遠隔操作支援装置
JPH1158279A (ja) * 1997-08-22 1999-03-02 Meidensha Corp 把持位置姿勢教示装置及びその処理を実現するソフトウェアを記録した記録媒体
JP2009214212A (ja) * 2008-03-10 2009-09-24 Toyota Motor Corp 動作教示システム及び動作教示方法
JP2013046937A (ja) * 2011-08-29 2013-03-07 Dainippon Screen Mfg Co Ltd 対象物把持装置および対象物把持方法および対象物把持プログラム
JP2015085475A (ja) * 2013-10-31 2015-05-07 キヤノン株式会社 情報処理装置、情報処理方法
US20170326728A1 (en) * 2016-05-11 2017-11-16 X Development Llc Generating a grasp pose for grasping of an object by a grasping end effector of a robot
JP2018144164A (ja) * 2017-03-03 2018-09-20 株式会社キーエンス ロボット設定装置、ロボット設定方法、ロボット設定プログラム及びコンピュータで読み取り可能な記録媒体並びに記録した機器

Also Published As

Publication number Publication date
JP2021079464A (ja) 2021-05-27
JP7392409B2 (ja) 2023-12-06

Similar Documents

Publication Publication Date Title
WO2021095521A1 (ja) 設定装置、設定方法およびプログラム
US11207781B2 (en) Method for industrial robot commissioning, industrial robot system and control system using the same
JP6427972B2 (ja) ロボット、ロボットシステム及び制御装置
US10805546B2 (en) Image processing system, image processing device, and image processing program
US9135519B2 (en) Pattern matching method and pattern matching apparatus
JP6973444B2 (ja) 制御システム、情報処理装置および制御方法
KR20140008262A (ko) 로봇 시스템, 로봇, 로봇 제어 장치, 로봇 제어 방법 및 로봇 제어 프로그램
US10664939B2 (en) Position control system, position detection device, and non-transitory recording medium
JP2020027439A (ja) 情報処理装置、情報処理方法
JP7250489B2 (ja) 画像処理装置およびその制御方法、プログラム
JP6420537B2 (ja) 多関節型三次元測定装置
CN112109069A (zh) 机器人示教装置以及机器人系统
JP2018194542A (ja) 画像処理システム、画像処理装置および画像処理プログラム
JP2021024052A (ja) 画像処理装置、画像処理方法およびプログラム
TWI834918B (zh) 影像處理設備及其控制方法和儲存其控制程式的儲存媒體
CN112818428B (zh) 一种用于cad模型面结构光全自动扫描路径规划方法
JP7533265B2 (ja) 支援システム、画像処理装置、支援方法およびプログラム
JP2021071420A (ja) 情報処理装置、情報処理方法、プログラム、システム、物品の製造方法、計測装置及び計測方法
TWI747500B (zh) 自動物件取像方法及裝置
US20240246237A1 (en) Robot control device, robot control system, and robot control method
CN118551583B (zh) 一种基于多评估算法的多机器人协同测量视点规划方法
US20240346674A1 (en) Information processing device, information processing method, imaging device, and information processing system
CN113297952B (zh) 一种复杂环境下绳驱柔性机器人的测量方法和系统
JP2023085916A (ja) 画像処理装置、ロボット制御システムおよび制御方法
JP2021077290A (ja) 情報処理装置、情報処理方法、プログラム、システム及び物品の製造方法

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: 20887162

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20887162

Country of ref document: EP

Kind code of ref document: A1