WO2023127021A1 - 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム - Google Patents

制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム Download PDF

Info

Publication number
WO2023127021A1
WO2023127021A1 PCT/JP2021/048572 JP2021048572W WO2023127021A1 WO 2023127021 A1 WO2023127021 A1 WO 2023127021A1 JP 2021048572 W JP2021048572 W JP 2021048572W WO 2023127021 A1 WO2023127021 A1 WO 2023127021A1
Authority
WO
WIPO (PCT)
Prior art keywords
axis
amount
change
imaging
image data
Prior art date
Application number
PCT/JP2021/048572
Other languages
English (en)
French (fr)
Inventor
幸司 細見
日雅留 繁野
アシク イフテカル
牧人 宮野
智志 長谷川
晃平 三村
大輔 小柳
友介 森野
英之 佐野
颯 清水
Original Assignee
株式会社ニコン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ニコン filed Critical 株式会社ニコン
Priority to PCT/JP2021/048572 priority Critical patent/WO2023127021A1/ja
Publication of WO2023127021A1 publication Critical patent/WO2023127021A1/ja

Links

Images

Classifications

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

Definitions

  • the present invention for example, relates to the technical field of control devices, control systems, robot systems, control methods, and computer programs capable of generating control signals for controlling robots.
  • Patent Document 1 describes an example of a control device that calculates the position of an object to be processed by the robot and controls the robot based on the calculated position. Such a control device is required to accurately calculate the position of an object.
  • a processing device that processes an object, a first imaging device that outputs first image data, and a second imaging device that outputs second image data
  • the processing A control device that generates a control signal for controlling a robot arm that moves the device and the first and second imaging devices, comprising: a computing unit that generates the control signal; an output unit for outputting a control signal, wherein the computing unit receives the image obtained by the first imaging device capturing an image of the object during relative movement between the first and second imaging devices and the object; Based on the first image data, a first direction parallel to the first axis and the second axis within a first coordinate system defined by a first axis, a second axis, and a third axis orthogonal to each other and a position of the object in at least one of a second direction parallel to and a third direction parallel to the third axis, and one of the first axis, the second axis, and the third axis
  • the second image data obtained by calculating a
  • a second coordinate system defined by mutually orthogonal fourth, fifth, and sixth axes and different from the first coordinate system, based on shape data representing the three-dimensional shape of the object generated from in at least one of a fourth direction parallel to the fourth axis, a fifth direction parallel to the fifth axis, and a sixth direction parallel to the sixth axis; calculating a second position including at least one of a posture of the object about at least one of the fourth axis, the fifth axis, and the sixth axis; A control device for generating the control signal based on the position, wherein the output unit outputs the control signal generated by the calculation unit based on the first position and the second position at a first predetermined cycle. be done.
  • a control system comprising the control device provided by the first aspect, the first imaging device, and the second imaging device.
  • a robot system including the control device provided by the first aspect, the first imaging device, the second imaging device, and the robot arm.
  • a processing device that processes an object, a first imaging device that outputs first image data, and a second imaging device that outputs second image data
  • the processing A control method for generating control signals for controlling a robot arm that moves an apparatus and said first and second imaging devices, wherein said within a first coordinate system defined by a first axis, a second axis, and a third axis that are orthogonal to each other, based on the first image data obtained by imaging the object by the first imaging device , a position of the object in at least one of a first direction parallel to the first axis, a second direction parallel to the second axis, and a third direction parallel to the third axis; calculating a first position comprising at least one of a pose of the object about at least one of a first axis, the second axis, and the third axis; A fourth axis, a fifth axis, and a sixth axis that are orthogonal to each other are generated from the second
  • calculating a second position comprising one; generating the control signal based on the first position and the second position; and generating the control signal based on the first position and the second position. and outputting a signal at a predetermined cycle.
  • a computer program that causes a computer to execute the control method provided by the fourth aspect.
  • FIG. 1 is a block diagram showing the configuration of the robot system of this embodiment.
  • FIG. 2 is a side view showing the appearance of the robot of this embodiment.
  • FIG. 3 is a block diagram showing the configuration of the control device of this embodiment.
  • FIG. 4 is a flowchart showing the flow of robot control processing.
  • Each of FIGS. 5(a) to 5(d) shows the state at a certain point in time during the gripping process for gripping the workpiece placed on the placing device that is moving on the support surface.
  • FIG. 4 is a side view showing the positional relationship between the robot and the work;
  • FIGS. 6(a) to 6(d) illustrates the robot and workpiece at a point in time during the placement process for placing the workpiece onto the placement device moving on the support surface.
  • FIG. 7 is a block diagram showing logical processing blocks for calculating the position of the workpiece W by performing matching processing and tracking processing.
  • FIG. 8 schematically shows the 2D matching process.
  • FIG. 9 is a timing chart showing the relationship between the timing when the imaging device generates the workpiece image and the timing when the 2D matching section performs the 2D matching process.
  • FIG. 10 schematically shows the 3D matching process.
  • FIG. 11 is a timing chart showing the relationship between the timing at which the imaging device generates a work image and the timing at which the 3D matching section performs 3D matching processing.
  • FIG. 12 schematically shows 3D matching target data, which is a part of work shape data.
  • FIG. 13 schematically shows the 2D tracking process.
  • FIG. 14 is a timing chart showing the relationship between the timing at which the imaging device generates a work image and the timing at which the 2D tracking unit performs 2D tracking processing.
  • FIG. 15 schematically shows 3D tracking processing.
  • FIG. 16 is a timing chart showing the relationship between the timing at which the imaging device generates a workpiece image and the timing at which the 3D tracking section performs 3D tracking processing.
  • FIG. 17 is a timing chart showing the relationship between the timing at which the 2D matching section performs 2D matching processing and the timing at which the 2D tracking section performs 2D tracking processing.
  • FIG. 18 is a block diagram showing the configuration of the control device in the first modified example.
  • FIG. 19 schematically shows the plane removal process.
  • FIG. 20 is a block diagram showing the configuration of the imaging unit.
  • FIG. 21 schematically shows high dynamic range synthesis processing.
  • FIG. 22 schematically shows noise removal processing.
  • FIG. 23 is a block diagram showing the configuration of the robot system in the second modified example.
  • Embodiments of a control device, a control system, a robot system, a control method, and a computer program will be described below with reference to the drawings. Embodiments of the control device, the control system, the robot system, the control method, and the computer program will be described below using the robot system SYS.
  • FIG. 1 is a block diagram showing the overall configuration of the robot system SYS.
  • the robot system SYS includes a robot 1, an imaging unit 2, and a control device 3.
  • the robot 1 is a device capable of performing predetermined processing on a work W, which is an example of an object.
  • An example of a robot 1 is shown in FIG.
  • FIG. 2 is a side view showing the appearance of the robot 1.
  • the robot 1 includes, for example, a base 11, a robot arm 12, an end effector 13, and a robot controller .
  • the base 11 is a base member of the robot 1 .
  • the base 11 is arranged on a support surface S such as a floor surface.
  • the base 11 may be fixed to the support surface S.
  • the base 11 may be movable with respect to the support surface S.
  • the base 11 may be self-propelled on the support surface S.
  • the base 11 may be installed on an automatic guided vehicle (AGV).
  • FIG. 2 shows an example in which the base 11 is fixed to the support surface S. As shown in FIG.
  • the robot arm 12 is attached to the base 11.
  • the robot arm 12 is a device in which a plurality of links 121 are connected via joints 122 .
  • the joint 122 contains an actuator.
  • Link 121 may be rotatable about an axis defined by joint 122 by an actuator built into joint 122 .
  • At least one link 121 may be extendable along the direction in which the link 121 extends.
  • a device including a device in which a plurality of links 121 are connected via joints 122 and the base 11 may be called a robot arm 12 .
  • the end effector 13 is attached to the robot arm 12.
  • the end effector 13 is attached to the tip of the robot arm 12 .
  • the end effector 13 is movable by movement of the robot arm 12 . That is, the robot arm 12 moves the end effector 13 .
  • the end effector 13 is a device that performs a predetermined process on the workpiece W.
  • the end effector 13 may perform gripping processing for gripping the workpiece W.
  • the end effector 13 may perform placement processing for placing the workpiece W gripped by the end effector 13 at a desired position.
  • the end effector 13 may perform a fitting process for fitting the work W gripped by the end effector 13 into another object different from the work W.
  • a hand gripper capable of gripping the work W by physically sandwiching the work W and a work At least one vacuum gripper capable of gripping W is included.
  • FIG. 2 shows an example in which the end effector 13 is a hand gripper.
  • FIG. 2 shows an example in which the robot 1 is a robot having a robot arm 12 (that is, a vertical articulated robot).
  • the robot 1 may be a robot different from the vertical articulated robot.
  • the robot 1 may be a SCARA robot (that is, a horizontal articulated robot).
  • robot 1 may be a parallel link robot.
  • the robot 1 may be a dual-arm robot having two robot arms 12 .
  • the robot 1 may be a Cartesian robot.
  • the work W to be processed by the end effector 13 may be placed on the placement device 4 .
  • the mounting device 4 may be arranged on the support surface S.
  • the mounting device 4 may be fixed to the support surface S.
  • the mounting device 4 may be movable with respect to the support surface S.
  • the mounting device 4 may be self-propelled on the support surface S.
  • FIG. 2 shows an example in which the mounting device 4 can move on the support surface S by itself.
  • the mounting device 4 may be called an automatic guided vehicle (AGV).
  • the mounting device 4 may be called a belt conveyor.
  • the robot control device 14 controls the motion of the robot 1.
  • robot controller 14 may control the movement of robotic arm 12 .
  • robot controller 14 may control motion of robot arm 12 such that desired link 121 rotates about an axis defined by desired joint 122 .
  • the robot controller 14 may control the operation of the robot arm 12 so that the end effector 13 attached to the robot arm 12 is positioned at a desired position (in other words, moves).
  • the robot controller 14 may control the motion of the end effector 13 .
  • the robot control device 14 may control the operation of the end effector 13 so that the end effector 13 grips the workpiece W at desired timing.
  • the robot controller 14 may control the operation of the end effector 13 so that the end effector 13 places the work W at a desired position at a desired timing (that is, releases the gripped work W). .
  • the robot controller 14 may control the timing of opening and closing the hand gripper.
  • the robot controller 14 may control the timing of turning on/off the vacuum of the vacuum gripper.
  • the imaging unit 2 images a target object (for example, work W).
  • the imaging unit 2 includes an imaging device 21 , an imaging device 22 , and a projection device 23 to capture an image of the workpiece W.
  • the imaging device 21 is a camera capable of imaging a target object (for example, work W).
  • the image capturing device 21 captures an image of the work W to generate work image data IMG_2D.
  • Work image data IMG_2D generated by the imaging device 21 is output from the imaging device 21 to the control device 3 .
  • the imaging device 21 is a monocular camera.
  • the imaging device 21 can image the workpiece W using a monocular camera (in other words, an imaging device).
  • the imaging device 21 is not limited to a monocular camera.
  • the imaging device 21 may be a stereo camera capable of imaging the workpiece W using two monocular cameras, or may include three or more monocular cameras.
  • the imaging device 21 may be at least one of a light field camera, a plenoptic camera, and a multispectral camera.
  • the imaging device 22 is a camera capable of imaging a target object (for example, work W).
  • the imaging device 22 is a stereo camera.
  • the imaging device 22 is a stereo camera capable of imaging the workpiece W using two monocular cameras (in other words, two imaging elements).
  • the image capturing device 22 captures an image of the work W to generate work image data IMG_3D.
  • the imaging device 22 since the imaging device 22 is a stereo camera, the imaging device 22 generates work image data IMG_3D including two image data generated by two monocular cameras.
  • Work image data IMG_3D generated by the imaging device 22 is output from the imaging device 22 to the control device 3 .
  • the imaging device 22 is not limited to a stereo camera.
  • the imaging device 22 may be a monocular camera or may include three or more monocular cameras.
  • the imaging device 22 may be at least one of a light field camera, a plenoptic camera, and a multispectral camera.
  • the projection device 23 is a device capable of irradiating a target object (for example, a work W) with projection light.
  • the projection device 23 is a device capable of projecting a desired projection pattern onto the work W by irradiating the work W with projection light.
  • the desired projected pattern may include, for example, random patterns.
  • the random pattern may be a projected pattern having a different pattern for each unit irradiation area.
  • the random pattern may include random dot patterns.
  • the desired projected pattern is not limited to a random pattern, and may include, for example, a one-dimensional or two-dimensional grid pattern, or a pattern different from the grid pattern.
  • the imaging device 22 images the work W on which the projection pattern is projected.
  • the image indicated by the workpiece image data IMG_3D includes the workpiece W on which the projection pattern is projected.
  • the imaging device 21 does not have to image the work W on which the projection pattern is projected.
  • the imaging device 21 may capture an image of the work W on which no projection pattern is projected.
  • the image indicated by the workpiece image data IMG_2D may not include the workpiece W on which the projection pattern is projected.
  • the image indicated by the workpiece image data IMG_2D may include the workpiece W on which the projection pattern is not projected.
  • the projection device 23 may be regarded as illuminating the work W with the projection light by irradiating the work W with the projection light.
  • the projection device 23 may function as an illumination device that illuminates the workpiece W.
  • the projection light may be referred to as illumination light.
  • the projection light does not have to be light that can project a desired projection pattern onto the workpiece W.
  • the imaging unit 2 is provided on the robot arm 12, similar to the end effector 13. That is, the imaging devices 21 and 22 and the projection device 23 are attached to the robot arm 12 .
  • the imaging devices 21 and 22 and the projection device 23 may be attached to the tip of the robot arm 12 in the same manner as the end effector 13 .
  • imaging devices 21 and 22 and projection device 23 are movable by the movement of robot arm 12 . That is, the robot arm 12 moves the imaging devices 21 and 22 and the projection device 23 .
  • the imaging unit 2 may not be provided on the robot arm 12 .
  • the imaging unit 2 may be provided at any position where the workpiece W can be irradiated with the projection light and the workpiece W can be imaged.
  • At least one of the imaging device 21, the imaging device 22, and the projection device 23 of the imaging unit 2 is provided on the robot arm 12, and the imaging device 21, the imaging device 22, and the projection device 23 of the imaging unit 2 are provided. may be provided at a location different from the robot arm 12 .
  • the imaging devices 21 and 22 may image the workpiece W while synchronizing with each other.
  • the imaging devices 21 and 22 may image the work W at the same time. That is, the imaging devices 21 and 22 may image the work W so that the time when the imaging device 21 images the work W and the time when the imaging device 22 images the work W are the same.
  • the imaging devices 21 and 22 do not have to image the work W at the same time. That is, the imaging devices 21 and 22 may image the work W such that the time when the imaging device 21 images the work W and the time when the imaging device 22 images the work W are different.
  • the control device 3 performs robot control processing.
  • the robot control process is a process of generating a robot control signal for controlling the robot 1 .
  • the control device 3 generates robot control signals based on the workpiece image data IMG_2D and IMG_3D output from the imaging unit 2 .
  • the control device 3 calculates the position of the workpiece W within the global coordinate system of the robot system SYS based on the workpiece image data IMG_2D and IMG_3D, and controls the robot based on the calculated position of the workpiece W.
  • Generate a signal For example, the global coordinate system can also be said to be a coordinate system based on the robot 1 .
  • the control device 3 Based on the work image data IMG_2D and IMG_3D, the control device 3 operates within a coordinate system different from the global coordinate system of the robot system SYS (for example, within a 2D imaging coordinate system, a 3D imaging coordinate system, or a common coordinate system, which will be described later).
  • the position of the workpiece W within the system may be calculated, and the robot control signal may be generated based on the calculated position of the workpiece W.
  • control device 3 and the imaging unit 2 are used to control the robot 1. Therefore, the system including the control device 3 and the imaging unit 2 may be referred to as a robot control system or control system.
  • the robot control signal generated by the control device 3 is output to the robot control device 14 of the robot 1.
  • the robot control device 14 controls the operation of the robot 1 (for example, controls the driving of the actuator built in the joint 122 of the robot arm 12) based on the robot control signal generated by the control device 3. Therefore, the robot control signal may include a signal for controlling the motion of the robot 1 .
  • the robot control signal may include a signal that can be used as is for the robot controller 14 to control the operation of the robot 1.
  • the robot control signal may include a signal that can be used as it is as a robot drive signal used by the robot controller 14 to control the operation of the robot 1 .
  • the robot control device 14 may use the robot control signal as it is to control the motion of the robot 1 .
  • the control device 3 generates a drive signal for an actuator built in the joint 122 of the robot arm 12 as a robot control signal
  • the robot control device 14 generates a robot control signal generated by the control device 3 ( That is, the drive signal of the actuator built in the joint 122 of the robot arm 12 may be used as it is to control the actuator built in the joint 122 of the robot arm 12 .
  • the robot controller 14 can move the robot arm 12 .
  • the control device 3 generates, as a robot control signal, a drive signal for an actuator that moves the end effector 13 attached to the robot arm 12, and the robot control device 14 generates a robot control signal generated by the control device 3 (that is, an end effector).
  • the drive signal for the actuator that moves the effector 13 may be used as is to control the actuator that moves the end effector 13 .
  • the robot controller 14 can move the end effector 13 .
  • the robot control signals may include signals that the robot controller 14 can use to generate robot drive signals for controlling the operation of the robot 1 .
  • a signal that can be used by the robot control device 14 to generate a robot drive signal for controlling the motion of the robot 1 can be said to be a signal that the robot control device 14 controls the motion of the robot 1 as a basis.
  • the robot control device 14 may generate a signal for controlling the motion of the robot 1 based on the robot control signal, and may control the motion of the robot 1 based on the generated signal.
  • the robot control device 14 generates a drive signal for an actuator built in the joint 122 of the robot arm 12 based on the robot control signal, and based on the generated signal, drives the actuator built in the joint 122 of the robot arm 12.
  • Actuators may be controlled.
  • the robot controller 14 can move the robot arm 12 .
  • the robot control device 14 may generate a drive signal for an actuator that moves the end effector 13 based on the robot control signal, and control the actuator that moves the end effector 13 based on the generated signal.
  • the robot controller 14 can move the end effector 13 .
  • a signal that can be used by the robot control device 14 to generate a signal for controlling the operation of the robot 1 may be a signal representing the position of the workpiece W in the global coordinate system.
  • the robot control device 14 causes the end effector 13 to approach the work W in the global coordinate system represented by the robot control signal (that is, the robot 1 and the work W
  • a drive signal for the actuator built in the robot joint 122 of the robot arm 12 may be generated so that the positional relationship of the robot arm 12 becomes a desired positional relationship, and the motion of the robot 1 may be controlled based on the generated signal.
  • a signal that can be used by the robot control device 14 to generate a signal for controlling the operation of the robot 1 is a signal representing a desired positional relationship between the robot 1 and the workpiece W in the global coordinate system. good too.
  • the robot control device 14 controls the robot arm 12 based on the robot control signal so that the desired positional relationship between the robot 1 and the workpiece W in the global coordinate system is represented by the robot control signal.
  • a drive signal for an actuator built in the robot joint 122 may be generated, and the motion of the robot 1 may be controlled based on the generated signal.
  • the signals that the robot controller 14 can use to generate signals for controlling the motion of the robot 1 may include signals representing the desired position of the end effector 13 in the global coordinate system.
  • the robot control device 14 moves the end effector 13 to a desired position in the global coordinate system represented by the robot control signal (i.e., the robot 1 and the workpiece W).
  • a drive signal for the actuator built in the robot joint 122 of the robot arm 12 is generated so that the positional relationship between the robot arm 12 and the robot joint 122 becomes a desired positional relationship, and the operation of the robot 1 is controlled based on the generated signal. good.
  • the robot control device 14 moves the end effector 13 to a position where the end effector 13 can grip the workpiece W located at the position indicated by the robot control signal.
  • a drive signal for an actuator built in the robot joint 122 of the robot arm 12 may be generated, and the motion of the robot 1 may be controlled based on the generated signal.
  • the robot control device 14 causes the end effector 13 that has gripped the work W positioned at the position represented by the robot control signal to move the end effector 13 to the placement device on which the work W was placed. 4
  • a drive signal for an actuator built in the robot joint 122 of the robot arm 12 may be generated, and the motion of the robot 1 may be controlled based on the generated signal.
  • a signal that can be used by the robot controller 14 to generate a signal for controlling the operation of the robot 1 is, for example, a signal representing a desired position of the tip of the robot arm 12 in the global coordinate system.
  • the coordinate system used as a reference in the robot control signal may be a coordinate system other than the global coordinate system (for example, within a 2D imaging coordinate system, within a 3D imaging coordinate system, or within a common coordinate system, which will be described later).
  • FIG. 3 is a block diagram showing the configuration of the control device 3. As shown in FIG.
  • the control device 3 includes an arithmetic device 31, a storage device 32, and a communication device 33. Furthermore, the control device 3 may comprise an input device 34 and an output device 35 . However, the control device 3 does not have to include at least one of the input device 34 and the output device 35 . Arithmetic device 31 , storage device 32 , communication device 33 , input device 34 , and output device 35 may be connected via data bus 36 .
  • the computing device 31 includes, for example, at least one of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and an FPGA (Field Programmable Gate Array).
  • Arithmetic device 31 reads a computer program.
  • arithmetic device 31 may read a computer program stored in storage device 32 .
  • the computing device 31 may read a computer program stored in a computer-readable non-temporary recording medium using a recording medium reading device (not shown) included in the control device 3 .
  • the computing device 31 may acquire (that is, download) a computer program from a device (not shown) arranged outside the control device 3 via the communication device 33 (or other communication device). or read).
  • Arithmetic device 31 executes the read computer program.
  • logical functional blocks for executing the processing (for example, the robot control processing described above) that should be performed by the control device 3 are realized in the arithmetic device 31 .
  • the arithmetic device 31 can function as a controller for realizing logical functional blocks for executing the processing that the control device 3 should perform.
  • a computing model that can be constructed by machine learning may be implemented in the computing device 31 by the computing device executing a computer program.
  • An example of an arithmetic model that can be constructed by machine learning is an arithmetic model that includes a neural network (so-called artificial intelligence (AI)).
  • learning the computational model may include learning neural network parameters (eg, at least one of weights and biases).
  • the arithmetic device 31 may use the arithmetic model to execute the robot control process.
  • the action of executing the robot control process may include the action of executing the robot control process using the arithmetic model.
  • the computing device 31 may be equipped with a computing model that has been constructed by off-line machine learning using teacher data.
  • the calculation model installed in the calculation device 31 may be updated on the calculation device 31 by online machine learning.
  • the arithmetic device 31 may be implemented in a device external to the arithmetic device 31 (that is, a device provided outside the control device 3) in addition to or instead of the arithmetic model implemented in the arithmetic device 31. may be used to perform the robot control process.
  • Recording media for recording computer programs executed by the arithmetic unit 31 include CD-ROMs, CD-Rs, CD-RWs, flexible disks, MOs, DVD-ROMs, DVD-RAMs, DVD-Rs, DVD+Rs, and DVDs.
  • optical discs such as RW, DVD+RW and Blu-ray (registered trademark)
  • magnetic media such as magnetic tapes, magneto-optical discs, semiconductor memories such as USB memories, and other arbitrary media that can store programs
  • the recording medium may include a device capable of recording a computer program (for example, a general-purpose device or a dedicated device in which a computer program is implemented in at least one form of software, firmware, etc., in an executable state).
  • each process and function included in the computer program may be realized by a logical processing block realized in the arithmetic device 31 by the arithmetic device 31 (that is, computer) executing the computer program, It may be realized by hardware such as a predetermined gate array (FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit)) provided in the arithmetic unit 31, or a logical processing block and a part of hardware
  • FPGA Field Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • FIG. 3 shows an example of logical functional blocks implemented within the arithmetic device 31 to execute robot control processing.
  • a shape data generator 311 a position calculator 312 , and a signal generator 313 are realized in the computing device 31 .
  • the processing performed by each of the shape data generation unit 311, the position calculation unit 312, and the signal generation unit 313 will be described later in detail with reference to FIG.
  • the storage device 32 can store desired data.
  • the storage device 32 may temporarily store computer programs executed by the arithmetic device 31 .
  • the storage device 32 may temporarily store data that is temporarily used by the arithmetic device 31 while the arithmetic device 31 is executing a computer program.
  • the storage device 32 may store data that the control device 3 saves for a long period of time.
  • the storage device 32 may include at least one of RAM (Random Access Memory), ROM (Read Only Memory), hard disk device, magneto-optical disk device, SSD (Solid State Drive), and disk array device. good. That is, the storage device 32 may include non-transitory recording media.
  • the communication device 33 can communicate with each of the robot 1 and the imaging unit 2 via a communication network (not shown). Alternatively, the communication device 33 can communicate with another device different from the robot 1 and the imaging unit 2 in addition to or instead of at least one of the robot 1 and the imaging unit 2 via a communication network (not shown). good too. In this embodiment, the communication device 33 may receive (that is, acquire) the workpiece image data IMG_2D and IMG_3D from the imaging unit 2 . Furthermore, the communication device 33 may transmit (that is, output) a robot control signal to the robot 1 .
  • the input device 34 is a device that receives input of information to the control device 3 from the outside of the control device 3 .
  • the input device 34 may include an operation device (for example, at least one of a keyboard, a mouse, and a touch panel) that can be operated by the user of the control device 3 .
  • the input device 34 may include a recording medium reading device capable of reading information recorded as data on a recording medium that can be externally attached to the control device 3 .
  • Information can be input to the control device 3 as data from a device external to the control device 3 via the communication device 33 .
  • the communication device 33 may function as an input device that receives input of information to the control device 3 from outside the control device 3 .
  • the output device 35 is a device that outputs information to the outside of the control device 3 .
  • the output device 35 may output information as an image.
  • the output device 35 may include a display device (so-called display) capable of displaying images.
  • the output device 35 may output information as audio.
  • the output device 35 may include an audio device capable of outputting audio (so-called speaker).
  • the output device 35 may output information on paper. That is, the output device 35 may include a printing device (so-called printer) capable of printing desired information on paper.
  • the output device 35 may output information as data to a recording medium that can be externally attached to the control device 3 .
  • Information can be output as data from the control device 3 to a device external to the control device 3 via the communication device 33 .
  • the communication device 33 may function as an output device that outputs information to the outside of the control device 3 .
  • FIG. 4 is a flowchart showing the flow of robot control processing.
  • the control device 3 uses the communication device 33 to acquire the workpiece image data IMG_2D from the imaging device 21 (step S1). Specifically, the imaging device 21 images the work W at a predetermined 2D imaging rate. For example, the imaging device 21 may image the work W at a 2D imaging rate that images the work W several tens to several hundred times (for example, 500 times) per second. As a result, the imaging device 21 generates work image data IMG_2D at a cycle corresponding to a predetermined 2D imaging rate. For example, the imaging device 21 may generate several tens to several hundreds (for example, 500) pieces of work image data IMG_2D per second.
  • the control device 3 acquires the work image data IMG_2D each time the imaging device 21 generates the work image data IMG_2D. That is, the control device 3 may acquire several tens to several hundred (for example, 500) workpiece image data IMG_2D per second.
  • the control device 3 uses the communication device 33 to acquire work image data IMG_3D from the imaging device 22 (step S1). Specifically, the imaging device 22 images the work W at a predetermined 3D imaging rate.
  • the 3D imaging rate is the same as the 2D imaging rate. However, the 3D imaging rate may differ from the 2D imaging rate.
  • the imaging device 22 may image the work W at a 3D imaging rate that images the work W several tens to several hundred times (for example, 500 times) per second. As a result, the imaging device 22 generates work image data IMG_3D at a cycle corresponding to a predetermined 3D imaging rate.
  • the imaging device 22 may generate several tens to several hundreds (for example, 500) pieces of work image data IMG_3D per second.
  • the control device 3 acquires the work image data IMG_3D each time the imaging device 22 generates the work image data IMG_3D. That is, the control device 3 may acquire several tens to several hundreds (for example, 500) pieces of workpiece image data IMG_3D per second.
  • the shape data generation unit 311 generates work shape data WSD representing the three-dimensional shape of the work W based on the acquired work image data IMG_3D (step S2).
  • the image represented by the workpiece image data IMG_3D includes the workpiece W on which the projection pattern is projected.
  • the three-dimensional shape of the work W on which the projection pattern is projected is reflected in the projection pattern reflected in the image indicated by the work image data IMG_3D.
  • the shape of the projection pattern reflected in the image represented by the work image data IMG_3D reflects the three-dimensional shape of the work W on which the projection pattern is projected.
  • the shape data generator 311 generates the work shape data WSD based on the projection pattern appearing in the image indicated by the work image data IMG_3D. For example, the shape data generation unit 311 calculates the parallax by associating each part (for example, each pixel) between the images indicated by the two image data included in the work image data IMG_3D. Specifically, in this association, the shape data generation unit 311 generates projection patterns reflected in the images represented by the two image data (that is, projection patterns reflected in the respective images). Each part) is associated to calculate the parallax.
  • the shape data generator 311 generates workpiece shape data WSD (that is, calculates the three-dimensional shape of the workpiece W) by a well-known method based on the principle of triangulation using the calculated parallax. It is better to associate each part of images in which projection patterns are reflected (in other words, each part of projected patterns in which they are reflected) than to associate each part of images in which projection patterns are not reflected. is calculated with higher accuracy. Therefore, the accuracy of the work shape data WSD to be generated (that is, the accuracy of calculation of the three-dimensional shape of the work W) becomes higher.
  • the work shape data WSD may be any data as long as it can indicate the three-dimensional shape of the work W.
  • An example of the workpiece shape data WSD is depth image data.
  • Depth image data is an image in which each pixel of the depth image indicated by the depth image data is associated with depth information in addition to luminance information.
  • Depth information is information that indicates the distance (that is, depth) between each part of an object reflected in each pixel and the imaging device 22 .
  • the depth image data may be an image in which the luminance information of each pixel indicates the depth of each part of the object (the distance between each part of the object and the imaging device 22).
  • the shape data generator 311 determines the distance between each part of the object appearing in the image indicated by the work image data IMG_3D and the imaging device 22 based on the projection pattern appearing in the image indicated by the work image data IMG_3D. and associate the calculated distance with each pixel of the work image data IMG_3D as depth information to generate a depth image.
  • Another example of the workpiece shape data WSD is point cloud data.
  • the point cloud data is data representing a set of points in a three-dimensional space corresponding to each part of an object appearing in the image represented by the workpiece image data IMG_3D.
  • the shape data generator 311 may generate point cloud data based on the depth image data and camera parameters of the imaging device 22 .
  • the position calculation unit 312 calculates the position of the work W based on the work image data IMG_2D acquired in step S1 and the work shape data WSD generated in step S2 (step S3).
  • the position calculator 312 may calculate the position of the feature point of the work W.
  • FIG. Examples of feature points of the work W include at least one of the center of the work W, the center of gravity of the work W, the vertex of the work W, the center of the surface of the work W, and the center of gravity of the surface of the work W.
  • the position calculator 312 calculates the position of the workpiece W in the global coordinate system.
  • the global coordinate system is a coordinate system that serves as a reference for the robot system SYS.
  • the global coordinate system is the coordinate system used to control the robot 1 .
  • the robot controller 14 may control the robot arm 12 so that the end effector 13 is positioned at a desired position within the global coordinate system.
  • a global coordinate system is a coordinate system defined by an X-axis (GL), a Y-axis (GL), and a Z-axis (GL) that are orthogonal to each other.
  • the X-axis (GL) may be an axis along the horizontal plane.
  • the Y-axis (GL) may be an axis along the horizontal plane.
  • the Z-axis (GL) may be an axis perpendicular to the horizontal plane.
  • the Z-axis (GL) may be an axis extending along the direction of gravity.
  • the X-axis, Y-axis and Z-axis shown in FIG. 2 may be the X-axis (GL), Y-axis (GL) and Z-axis (GL), respectively.
  • the origin of the global coordinate system does not have to be the origin of the X-axis (GL), Y-axis (GL) and Z-axis (GL) shown in FIG.
  • the origin of the global coordinate system may be an arbitrary position on the base 11 in FIG. (eg, the center of the contact surface or the center of gravity).
  • the position calculation unit 312 calculates the position Tx of the work W in the X-axis direction (GL) parallel to the X-axis (GL) and the Y-axis direction (GL ) and the position Tz of the work W in the Z-axis direction (GL) parallel to the Z-axis (GL).
  • the position calculation unit 312 calculates, in addition to or instead of at least one of the positions Tx, Ty, and Tz, the amount of rotation Rx of the work W around the X axis (GL), the Y axis ( GL)
  • At least one of the rotation amount Ry of the workpiece W around and the rotation amount Rz of the workpiece W around the Z-axis (GL) may be calculated.
  • the amount of rotation Rx of the work W around the X-axis (GL), the amount of rotation Ry of the work W around the Y-axis (GL), and the amount of rotation Rz of the work W around the Z-axis (GL) are respectively the X-axis (GL) It may be regarded as equivalent to the parameter representing the attitude of the surrounding work W, the parameter representing the attitude of the work W around the Y-axis (GL), and the parameter representing the attitude of the work W around the Z-axis (GL).
  • the position calculation unit 312 calculates the position of the work W as the posture of the work W around the X-axis (GL), the posture of the work W around the Y-axis (GL), and the posture of the work W around the Z-axis (GL). can be considered to be calculated.
  • the amount of rotation Rx of the work W around the X-axis (GL), the amount of rotation Ry of the work W around the Y-axis (GL), and the amount of rotation Rz of the work W around the Z-axis (GL) respectively correspond to the X-axis ( GL) may be regarded as indicating the position of the work W in the direction of rotation about the Y-axis (GL), the position of the work W in the direction of rotation about the Y-axis (GL), and the position of the work W in the direction of rotation about the Z-axis (GL).
  • the amount of rotation Rx of the work W around the X-axis (GL), the amount of rotation Ry of the work W around the Y-axis (GL), and the amount of rotation Rz of the work W around the Z-axis (GL) are all equal to the amount of rotation Rx of the work W can be regarded as a parameter representing the position of
  • the amount of rotation Rx of the work W around the X-axis (GL), the amount of rotation Ry of the work W around the Y-axis (GL), and the amount of rotation Ry of the work W around the Z-axis (GL) are respectively the position Rx of the workpiece W in the direction of rotation about the X-axis (GL), the position Ry of the workpiece W in the direction of rotation about the Y-axis (GL), and the direction of rotation about the Z-axis (GL)
  • the position Rz of the workpiece W is called.
  • the signal generator 313 generates a robot control signal based on the position of the workpiece W calculated in step S3 (step S4).
  • the signal generator 313 may generate a robot control signal so that the robot 1 performs a predetermined process on the workpiece W.
  • the signal generation unit 313 may generate the robot control signal so that the positional relationship between the robot 1 and the workpiece W becomes a desired positional relationship.
  • the signal generator 313 may generate a robot control signal for controlling the operation of the robot arm 12 so that the positional relationship between the robot 1 and the workpiece W becomes a desired positional relationship.
  • the signal generator 313 generates a robot control signal so that the end effector 13 performs a predetermined process on the work W when the positional relationship between the robot 1 and the work W reaches a desired positional relationship.
  • the signal generator 313 is a robot for controlling the operation of the end effector 13 so as to perform a predetermined process on the work W when the positional relationship between the robot 1 and the work W reaches a desired positional relationship.
  • a control signal may be generated.
  • the robot control signal for controlling the operation of the end effector 13 can also be called an end effector control signal.
  • each of FIGS. 5(a) to 5(d) is for grasping a work W placed on a placing device 4 such as an AGV (Automatic Guided Vehicle) moving on the support surface S.
  • a placing device 4 such as an AGV (Automatic Guided Vehicle) moving on the support surface S.
  • the signal generator 313 performs robot control for controlling the operation of the robot arm 12 so that the end effector 13 moves toward the space directly above the moving workpiece W.
  • a signal may be generated.
  • the signal generator 313 is configured so that the end effector 13 positioned directly above the moving work W can grip the work W while continuing to be positioned directly above the work W.
  • a robot control signal may be generated for controlling the operation of the robot arm 12 so as to approach the workpiece W until the workpiece W is reached.
  • the signal generator 313 controls the robot arm so that the end effector 13 positioned at a position where it can grip the moving workpiece W follows the moving workpiece W and grips the workpiece W.
  • Robotic control signals may be generated to control the operation of 12 and end effector 13 .
  • the signal generation unit 313 causes the robot arm 12 and the end effector 13 to operate so that the end effector 13 that grips the work W leaves the moving work W while gripping the work W.
  • a robot control signal may be generated for controlling.
  • the robot 1 may place the gripped work W on the placement device 4 .
  • the robot 1 may perform placement processing for placing the work W on the placement device 4 .
  • the control device 3 performs the same operation as when calculating the position of the work W to determine the position of the mounting device 4 (for example, the portion of the mounting device 4 where the work W is to be mounted). position), and the robot control signal may be generated based on the calculated position of the mounting device 4 .
  • the imaging device 21 may generate workpiece image data IMG_2D in which the mounting device 4 is captured by capturing an image of the mounting device 4 .
  • the work image data IMG_2D generated by the imaging device 21 is an image in which an object different from the work W is captured or in which the work W is not captured. may be image data indicating Further, the imaging device 22 may generate workpiece image data IMG_3D in which the mounting device 4 is captured by capturing an image of the mounting device 4 .
  • the work image data IMG_3D is image data representing an image in which an object different from the work W is captured or in which the work W is not captured.
  • the control device 3 calculates the position of the mounting device 4 based on workpiece image data IMG_2D and IMG_3D generated by imaging the mounting device 4, and controls the robot based on the calculated position of the mounting device 4. 1 may generate robot control signals to perform the placement process.
  • FIGS. 6(a) to 6(d) shows a certain period during the placement process for placing the work W on the placement device 4 that is moving on the support surface S.
  • FIG. 4 is a side view showing the positional relationship between the robot 1 and the workpiece W at the point in time; In this case, as shown in FIG.
  • the signal generator 313 determines that the end effector 13 gripping the workpiece W moves while gripping the workpiece W based on the calculated position of the placing device 4 .
  • a robot control signal may be generated for controlling the operation of the robot arm 12 so as to move to the space directly above the placement device 4 .
  • the signal generation unit 313 determines that the end effector 13 that is positioned directly above the moving mounting device 4 and grips the work W is located on the basis of the calculated position of the mounting device 4.
  • the robot arm 12 is operated to approach the mounting device 4 until the work W can be placed on the mounting device 4 while continuing to be positioned directly above the mounting device 4 and gripping the work W.
  • a robot control signal may be generated for controlling. As shown in FIG.
  • the signal generator 313 determines that the end effector 13 located at a position where the workpiece W can be placed on the mounting device 4 based on the calculated position of the mounting device 4 is A robot for controlling the operations of the robot arm 12 and the end effector 13 so as to place the work W on the mounting device 4 while following the moving mounting device 4 (that is, release the gripped work W).
  • a control signal may be generated.
  • the signal generation unit 313 determines that the end effector 13, which has finished arranging the workpiece W on the mounting device 4, from the mounting device 4 based on the calculated position of the mounting device 4.
  • a robotic control signal may be generated to control movement of the robotic arm 12 apart.
  • the target object whose position is calculated by the control device 3 is not limited to the work W, and any object different from the work W (
  • the examples shown in FIGS. 6(a) to 6(d) may include a mounting device 4).
  • the imaging device 21 may capture an image of the target object and generate work image data IMG_2D representing an image including the target object.
  • the work image data IMG_2D representing an image including the target object may be simply referred to as image data IMG_2D.
  • the imaging device 22 may capture an image of the target object and generate work image data IMG_3D representing an image including the target object.
  • the work image data IMG_3D representing an image including the target object may be simply referred to as image data IMG_3D.
  • the shape data generation unit 311 of the control device 3 may generate work shape data WSD representing the three-dimensional shape of the target object based on the work image data IMG_3D.
  • the workpiece shape data WSD representing the three-dimensional shape of the target object may be simply referred to as shape data WSD.
  • the position calculator 312 of the control device 3 may calculate the position of the target object based on the work image data IMG_2D and the work shape data WSD.
  • the signal generator 313 of the control device 3 may generate the robot control signal based on the position of the target object.
  • the signal generator 313 may generate the robot control signal so that the end effector 13 approaches the target object.
  • the signal generator 313 may generate the robot control signal so that the end effector 13 follows the moving target object.
  • the signal generator 313 may generate the robot control signal so that the end effector 13 moves away from the target object.
  • the target object whose position is calculated by the control device 3 can also be said to be the target object whose processing is performed by the end effector 13 .
  • the signal generation unit 313 uses the communication device 33 to output the robot control signal generated in step S4 to the robot 1 (in particular, the robot control device 14).
  • the robot controller 14 controls the motion of the robot 1 (for example, the motion of at least one of the robot arm 12 and the end effector 13) based on the robot control signal.
  • control device 3 repeats a series of processes from step S1 to step S4 until it is determined that the robot control process is finished (step S5).
  • the control device 3 continues to acquire workpiece image data IMG_2D and IMG_3D from the imaging devices 21 and 22, respectively, even while the operation of the robot 1 is being controlled based on the robot control signal.
  • each of the imaging devices 21 and 22 can detect the difference between the target object (for example, the workpiece W) and the imaging devices 21 and 22.
  • the target object for example, the work W
  • the target object for example, the work W
  • the target object may be imaged during the relative movement.
  • each of the imaging devices 21 and 22 captures an image of the target object (eg, work W) while the target object (eg, work W) is stationary while the imaging devices 21 and 22 are moving.
  • each of the imaging devices 21 and 22 captures an image of the target object (eg, work W) while the target object (eg, work W) is moving while the imaging devices 21 and 22 are stationary.
  • each of the imaging devices 21 and 22 may image the target object (eg, work W) while the target object (eg, work W) is moving and the imaging devices 21 and 22 are moving. .
  • the control device 3 controls the relative movement between the target object (eg, workpiece W) and the imaging devices 21 and 22 (that is, when at least one of the imaging devices 21 and 22 and the target object (eg, workpiece W) moves). 4, the robot control process shown in FIG. 4 may continue. As a result, even while the operation of the robot 1 is being controlled based on the robot control signal, the control device 3 can determine the position of the target object (for example, the work W) based on the newly acquired work image data IMG_2D and IMG_3D. can be newly calculated (that is, updated). However, each of the imaging devices 21 and 22 may image the target object (eg, work W) while the target object (eg, work W) is stationary and the imaging devices 21 and 22 are stationary. . The control device 3 may perform the robot control processing shown in FIG. 4 while the imaging devices 21 and 22 and the target object (for example, work W) are stationary.
  • the position calculator 312 does not have to calculate the position of the target object (for example, the work W) in the global coordinate system in step S3.
  • the position calculation unit 312 determines that the target object (for example, The position of the work W) may be calculated.
  • the signal generation unit 313 may generate a robot control signal in step S4 based on the position of the target object (for example, workpiece W) in a coordinate system different from the global coordinate system calculated in step S3. good.
  • step S3 of FIG. 4 Details of processing for calculating the position of the target object in step S3 of FIG. 4 will be described.
  • the position calculation unit 312 may calculate the position of any target object by performing the same operation as the processing for calculating the position of the workpiece W. That is, the following description of the processing for calculating the position of the work W can be used as an explanation of the processing for calculating the position of the target object by replacing the term "work W" with the term "target object". It is possible.
  • the position calculation unit 312 performs matching processing using the workpiece image data IMG_2D and the workpiece shape data WSD, and tracking processing using the workpiece image data IMG_2D and the workpiece shape data WSD. Calculate the position.
  • processing for calculating the position of the work W by performing matching processing and tracking processing will be described with reference to FIG.
  • FIG. 7 is a block diagram showing logical processing blocks for calculating the position of the workpiece W by performing matching processing and tracking processing.
  • the position calculation section 312 includes a 2D matching section 3121, a 3D matching section 3122, a 2D tracking section 3123, a 3D tracking section 3124, and a coordinate conversion section 3125.
  • the 2D matching unit 3121 performs 2D matching processing, which is an example of matching processing.
  • the 3D matching unit 3122 performs 3D matching processing, which is an example of matching processing.
  • the 2D tracking unit 3123 performs 2D tracking processing, which is an example of tracking processing.
  • the 3D tracking unit 3124 performs 3D tracking processing, which is an example of tracking processing.
  • the coordinate conversion unit 3125 performs position calculation processing for calculating the position of the workpiece W in the global coordinate system based on the results of the matching processing and tracking processing. Therefore, 2D matching processing, 3D matching processing, 2D tracking processing, 3D tracking processing, and position calculation processing will be described in order below.
  • the 2D matching unit 3121 performs matching processing using work image data IMG_2D as 2D matching processing. Matching processing using work image data IMG_2D is matching processing using work image data IMG_2D and reference image data IMG_2M.
  • the reference image data IMG_2M is image data representing a two-dimensional image of the work W that serves as a reference.
  • the reference image data IMG_2M is, for example, a plurality of images generated by virtually imaging a three-dimensional model of the workpiece W (for example, a CAD model created by CAD (Computer Aided Design)) from a plurality of different photographing directions. It may be image data representing a two-dimensional image.
  • the reference image data IMG_2M may be image data representing a two-dimensional image of the actual work W captured in advance.
  • the reference image data IMG_2M may be image data representing a plurality of two-dimensional images respectively generated by imaging the actual workpiece W from a plurality of different photographing directions.
  • the actual workpiece W that is imaged in advance may be a reference or a non-defective workpiece W.
  • the 2D matching unit 3121 may perform matching processing on the workpiece image data IMG_2D using the workpiece W appearing in the two-dimensional image indicated by the reference image data IMG_2M as a template.
  • the matching process itself may be the same as the existing matching process. For this reason, the detailed description of the matching process is omitted, but the outline thereof will be described below.
  • the 2D matching unit 3121 determines that a feature point (for example, at least one of a feature point and an edge) in the entire work W appearing in the two-dimensional image indicated by the reference image data IMG_2M corresponds to the image indicated by the work image data IMG_2D.
  • the work W reflected in the two-dimensional image indicated by the reference image data IMG_2M is translated, enlarged, reduced, and / Or it may be rotated.
  • the 2D matching unit 3121 matches the feature points of the entire work W appearing in the two-dimensional image indicated by the reference image data IMG_2M with the feature points of the entire work W appearing in the image indicated by the work image data IMG_2D.
  • the coordinate system of the reference image data IMG_2M for example, the coordinate system of the CAD model
  • the 2D imaging coordinate system based on the imaging device 21 that has imaged the work W. You may change the positional relationship.
  • the 2D matching unit 3121 can identify the positional relationship between the coordinate system of the reference image data IMG_2M and the 2D imaging coordinate system. After that, based on the positional relationship between the coordinate system of the reference image data IMG_2M and the 2D imaging coordinate system, the 2D matching unit 3121 shifts the position of the workpiece W in the coordinate system of the reference image data IMG_2M to the position of the workpiece W in the 2D imaging coordinate system. A position may be calculated. Note that the 2D matching unit 3121 determines that the feature part of the part of the work W reflected in the two-dimensional image indicated by the reference image data IMG_2M is the part of the work W reflected in the image indicated by the work image data IMG_2D.
  • the coordinate system of the reference image data IMG_2M (for example, the coordinate system of the CAD model) and the 2D image capturing coordinate system based on the image capturing device 21 that captured the image of the workpiece W so as to approach (typically match) the feature location. You may change the positional relationship with.
  • the matching process using the workpiece image data IMG_2D for example, at least one of SIFT (Scale-Invariant Feature Transform) and SURF (Speed-Upped Robust Feature) known methods may be used.
  • the method of calculating the position of the work W is not limited to the matching process using the work image data IMG_2D described above, and may be any other known method of calculating the position of the work W using the work image data IMG_2D. good.
  • the method of calculating the position of the work W may be a known method of calculating the position of the work W based on the work image data IMG_2D without using the reference image data IMG_2M. and the workpiece image data IMG_2D, a known method of calculating the position of the workpiece W may be used.
  • the method of calculating the position of the work W may be a method of calculating the position of the work W based on the work image data IMG_2D by machine learning or deep learning.
  • a prediction model is constructed that outputs the position of the work W when the work image data IMG_2D is input. can be calculated.
  • This prediction model may be stored in the 2D matching unit 3121 .
  • the 2D matching unit 3121 may read out this prediction model stored in the storage device 32 Coordinate system defined.
  • At least one of the X-axis (2D), Y-axis (2D), and Z-axis (2D) is aligned with the optical axis AX21 (in FIG. 2 see). It should be noted that the optical axis AX21 can also be said to be the optical axis of the imaging device 21 .
  • the 2D matching unit 3121 determines the position of the work W in the 2D imaging coordinate system by determining the position Tx (2D) of the work W in the X-axis direction (2D) parallel to the X-axis (2D), the Y At least one of the position Ty (2D) of the work W in the axial direction (2D) and the position Tz (2D) of the work W in the Z-axis direction (2D) parallel to the Z-axis (2D) may be calculated. .
  • the 2D matching unit 3121 in addition to or instead of at least one of positions Tx (2D), Ty (2D), and Tz (2D), as the position of the work W in the 2D imaging coordinate system, At least one of the amount of rotation Rx (2D) of the work W, the amount of rotation Ry (2D) of the work W around the Y axis (2D), and the amount of rotation Rz (2D) of the work W around the Z axis (2D) is can be calculated.
  • the 2D matching unit 3121 determines the position of the work W as the posture of the work W around the X-axis (2D), the posture of the work W around the Y-axis (2D), and the posture of the work W around the Z-axis (2D). can be considered to be calculated.
  • the amount of rotation Rx (2D) of the workpiece W around the X axis (2D) and the amount of rotation Rx (2D) of the work W around the X axis (2D), and The amount of rotation Ry (2D) of the workpiece W around and the amount of rotation Rz (2D) of the workpiece W around the Z axis (2D) are respectively calculated from the position Rx (2D) of the workpiece W in the direction of rotation around the X axis (2D).
  • the 2D matching unit 3121 calculates the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D) and the position Rz (2D). At least one position having relatively high accuracy as compared with the position of the workpiece W to be measured may be calculated. On the other hand, the 2D matching unit 3121 selects the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D), and the position Rz (2D). At least one other position with relatively low accuracy compared to the position of the workpiece W calculated by 3122 may not be calculated.
  • the 2D matching unit 3121 performs matching processing using work image data IMG_2D and reference image data IMG_2M that do not have position information in the Z-axis direction (2D).
  • the position Tx (2D), the position Ty (2D), and the position Rz (2D) can be calculated with relatively high accuracy without using positional information in the Z-axis direction (2D).
  • the accuracies of the position Tx (2D), the position Ty (2D), and the position Rz (2D) calculated by the 2D matching unit 3121 are respectively the positions Tx (3D), which are calculated by the 3D matching unit 3122, and the positions Ty (3D) and position Rz(3D) accuracy may be higher.
  • the 2D matching unit 3121 may calculate the position Tx (2D), the position Ty (2D) and the position Rz (2D).
  • the 2D matching unit 3121 may or may not calculate the position Tz (2D), the position Rx (2D), and the position Ry (2D). In the following description, an example will be described in which the 2D matching unit 3121 calculates at least the position Tx (2D), the position Ty (2D), and the position Rz (2D).
  • the control device 3 uses the position Tx (2D), the position Ty (2D), and the position Rz (2D) with relatively high accuracy calculated by the 2D matching unit 3121, in the global coordinate system Calculate the position of the workpiece W at .
  • the control device 3 can be calculated with relatively high accuracy.
  • the 2D matching unit 3121 outputs information on the calculated position of the work W to the coordinate conversion unit 3125 each time the position of the work W is calculated.
  • the 2D matching unit 3121 can match all 6 DOF (Degree Of Freedom) positions (that is, position Tx (2D), position Ty (2D), position Tz (2D), position Rx (2D), position Ry (2D ) and position Rz (2D)), and information on a part of the calculated 6DOF positions (for example, the above-described relatively high-precision position Tx (2D), position Ty (2D) and position Rz ( 2D)) may be output to the coordinate transformation unit 3125 .
  • 6 DOF Degree Of Freedom
  • the 2D matching unit 3121 may calculate a part of the 6DOF position and output information about the calculated part of the 6DOF position to the coordinate conversion unit 3125 .
  • the 2D matching unit 3121 calculates the position Tx (2D), the position Ty (2D), and the position Rz (2D) with relatively high accuracy described above, and calculates the position Tx (2D), the position Ty (2D), and the position Information about Rz(2D) may be output to the coordinate transformation unit 3125 .
  • the 2D matching unit 3121 may calculate all the 6DOF positions and output information about all the calculated 6DOF positions to the coordinate conversion unit 3125 .
  • the coordinate transformation unit 3125 may calculate the 6DOF position of the workpiece W using all the 6DOF positions output by the 2D matching unit 3121 .
  • the coordinate transformation unit 3125 converts some of the 6DOF positions output by the 2D matching unit 3121 (for example, the above-described relatively high-precision position Tx (2D), position Ty (2D), and position Rz (2D)) may be selected, and the 6DOF position of the workpiece W may be calculated using part of the selected 6DOF position.
  • the 2D matching section 3121 may calculate the position of the work W at a predetermined 2D matching cycle. In other words, the 2D matching section 3121 may calculate the position of the workpiece W each time the time corresponding to the 2D matching period elapses. Conversely, it may be considered that the time corresponding to the 2D matching period is required from the time when the 2D matching unit 3121 starts the 2D matching process to the time when the 2D matching process is completed. In this case, the 2D matching section 3121 may output information on the position of the work W to the coordinate transformation section 3125 at a predetermined 2D matching cycle.
  • the 2D matching cycle may be longer than the 2D imaging cycle corresponding to the 2D imaging rate at which the imaging device 21 images the workpiece W.
  • the 2D matching cycle may be a cycle in which the 2D matching unit 3121 can perform the 2D matching process ten-odd times to several tens times (for example, 15 times to 30 times) per second.
  • the imaging device 21 generates new workpiece image data IMG_2D from the time the 2D matching unit 3121 starts the 2D matching process to the time it completes.
  • the 2D matching unit 3121 keeps the work image newly generated by the imaging device 21 even when the imaging device 21 generates new work image data IMG_2D until the already started 2D matching process is completed.
  • a new 2D matching process using the data IMG_2D may not be started.
  • the 2D matching unit 3121 may newly start the 2D matching process using the latest work image data IMG_2D at that time.
  • the timing for generating the work image data IMG_2D shown in FIG. 9 may be the timing for the imaging device 21 to image the work W to generate the work image data IMG_2D.
  • the 2D matching period does not have to be longer than the 2D imaging period.
  • the 2D matching period may be shorter than the 2D imaging period.
  • the 2D matching period may be the same as the 2D imaging period.
  • the 3D matching section 3122 performs matching processing using the workpiece shape data WSD as 3D matching processing.
  • the matching process using the work shape data WSD is the matching process using the work shape data WSD and the reference shape data WMD.
  • the reference shape data WMD is data indicating the three-dimensional shape of the workpiece W that serves as a reference.
  • the reference shape data WMD may be, for example, data representing a three-dimensional model (for example, a CAD model) of the workpiece W.
  • the data representing the three-dimensional shape of the workpiece W may be depth image data, point cloud data, or other data representing the three-dimensional shape of the work W. good too.
  • the reference shape data WMD may be data representing the three-dimensional shape of the work W obtained by measuring the shape of the actual work W in advance.
  • the reference shape data WMD is generated in advance by the shape data generation unit 311 based on the work image data IMG_3D generated by imaging the work W on which the projection pattern from the projection device 23 is projected by the imaging device 22. It may be generated or generated in advance using a well-known shape measuring device different from the robot system SYS.
  • the actual work W that is imaged or measured in advance for generating the reference shape data WSD may be a reference or a non-defective work W.
  • the 3D matching unit 3122 may perform matching processing on the workpiece shape data WSD using the workpiece W indicated by the reference shape data WMD as a template.
  • the matching process itself may be the same as the existing matching process. For this reason, the detailed description of the matching process is omitted, but the outline thereof will be described below.
  • the 3D matching unit 3122 performs the The workpiece W indicated by the reference shape data WMD may be translated, enlarged, reduced and/or rotated. That is, the 3D matching unit 3122 performs The positional relationship between the coordinate system of the reference shape data WMD (for example, the coordinate system of the CAD model) and the 3D image capturing coordinate system based on the image capturing device 22 that captured the workpiece W may be changed.
  • the 3D matching unit 3122 can identify the positional relationship between the coordinate system of the reference shape data WMD and the 3D imaging coordinate system. After that, based on the positional relationship between the coordinate system of the reference shape data WMD and the 3D imaging coordinate system, the 3D matching unit 3122 shifts the position of the work W in the coordinate system of the reference shape data WMD from the position of the work W in the 3D imaging coordinate system. A position may be calculated. Note that the 3D matching unit 3122 is arranged so that the feature location in the part of the work W indicated by the work shape data WSD approaches (typically matches) the feature location in the part of the work W indicated by the reference shape data WMD.
  • the positional relationship between the coordinate system of the reference shape data WMD (for example, the coordinate system of the CAD model) and the 3D imaging coordinate system based on the imaging device 22 that has imaged the work W may be changed.
  • a matching process using the workpiece shape data WSD for example, at least one of RANSAC (Random Sample Consensus), SIFT (Scale-Invariant Feature Transform), ICP (Iterative Closest Point), and DSO (Direct Sparse Odomtry) method may be used.
  • the method of calculating the position of the work W is not limited to the matching process using the work shape data WSD described above, and may be any other known method of calculating the position of the work W using the work shape data WSD. good.
  • the method of calculating the position of the work W may be a well-known method of calculating the position of the work W based on the work shape data WSD without using the reference shape data WMD. and the work shape data WSD may be used to calculate the position of the work W.
  • the method of calculating the position of the work W may be a method of calculating the position of the work W based on the work shape data WSD by machine learning or deep learning.
  • a prediction model that outputs the position of the work W when the work shape data WSD is input is constructed in advance. may be calculated.
  • This prediction model may be stored in the 3D matching section 3122 . .
  • the 3D matching unit 3122 may read this prediction model stored in the storage device 32.
  • the 3D matching unit 3122 performs 3D matching processing using the above-described point cloud data as work shape data WSD. As a result, the calculation accuracy of the position of the work W is higher than when the depth image data is used as the work shape data WSD.
  • the 3D matching unit 3122 uses point cloud data (for example, point cloud data representing a CAD model) representing a three-dimensional shape that serves as a reference for the workpiece W as the reference shape data WMD.
  • point cloud data for example, point cloud data representing a CAD model
  • the 3D matching unit 3122 may perform 3D matching processing using the depth image data described above as the workpiece shape data WSD.
  • the 3D matching unit 3122 may use depth image data (for example, depth image data representing a CAD model) representing the three-dimensional shape of the workpiece W as the reference shape data WMD.
  • the 3D imaging coordinate system is a coordinate system defined by mutually orthogonal X-axis (3D), Y-axis (3D) and Z-axis (3D). At least one of the X-axis (3D), Y-axis (3D), and Z-axis (3D) is the optical axis AX22 (particularly, the terminal optical element such as an objective lens) of the imaging device 22 (Fig. 2 see). It should be noted that the optical axis AX22 can also be said to be the optical axis of the imaging device 22 .
  • the optical axis AX22 is the optical axis of an optical system provided in one of the two monocular cameras. good too.
  • the optical axis AX22 may be the optical axis of either one of the two monocular cameras.
  • the Z-axis (3D) is an axis along the optical axis of the optical system provided in the imaging device 22
  • the 3D matching unit 3122 determines the position of the work W in the 3D imaging coordinate system by determining the position Tx (3D) of the work W in the X-axis direction (3D) parallel to the X-axis (3D), the Y At least one of the position Ty (3D) of the work W in the axial direction (3D) and the position Tz (3D) of the work W in the Z-axis direction (3D) parallel to the Z-axis (3D) may be calculated. .
  • the 3D matching unit 3122 in addition to or instead of at least one of the positions Tx (3D), Ty (3D) and Tz (3D), as the position of the workpiece W in the 3D imaging coordinate system, At least one of the amount of rotation Rx (3D) of the work W, the amount of rotation Ry (3D) of the work W around the Y-axis (3D), and the amount of rotation Rz (3D) of the work W around the Z-axis (3D) is can be calculated.
  • the amount of rotation Rx (3D) of the work W around the X-axis (3D), the amount of rotation Ry (3D) of the work W around the Y-axis (3D), and the amount of rotation Rz (3D) of the work W around the Z-axis (3D) are equivalent to a parameter representing the posture of the work W around the X-axis (3D), a parameter representing the posture of the work W around the Y-axis (3D), and a parameter representing the posture of the work W around the Z-axis (3D).
  • the 3D matching unit 3122 determines the position of the work W as the posture of the work W around the X-axis (3D), the posture of the work W around the Y-axis (3D), and the posture of the work W around the Z-axis (3D). can be considered to be calculated.
  • the amount of rotation Rx (3D) of the workpiece W around the X axis (3D) and the amount of rotation Rx (3D) of the workpiece W around the X axis (3D), and The amount of rotation Ry (3D) of the workpiece W around and the amount of rotation Rz (3D) of the workpiece W around the Z axis (3D) are respectively calculated from the position Rx (3D) of the workpiece W in the direction of rotation around the X axis (3D).
  • the 3D matching unit 3122 calculates the position Tx (3D), the position Ty (3D), the position Tz (3D), the position Rx (3D), the position Ry (3D) and the position Rz (3D). At least one position having relatively high accuracy as compared with the position of the workpiece W to be measured may be calculated. On the other hand, the 3D matching unit 3122 selects the position Tx (3D), the position Ty (3D), the position Tz (3D), the position Rx (3D), the position Ry (3D), and the position Rz (3D). At least one other position whose accuracy is relatively low compared to the position of the workpiece W calculated by 3121 may not be calculated.
  • the 3D matching unit 3122 performs a matching process using workpiece shape data WSD and reference shape data WMD having position information in the Z-axis direction (3D).
  • the position Tz (3D), the position Rx (3D), and the position Ry (3D) can be calculated with relatively high accuracy by using positional information in the Z-axis direction (3D).
  • the accuracies of the position Tz(3D), the position Rx(3D), and the position Ry(3D) calculated by the 3D matching unit 3122 are the positions Tz(2D), the position Rx(2D) calculated by the 2D matching unit 3121, respectively. ) and position Ry(2D).
  • the 3D matching unit 3122 may calculate the position Tz (3D), the position Rx (3D) and the position Ry (3D). On the other hand, the 3D matching unit 3122 may or may not calculate the position Tx (3D), the position Ty (3D), and the position Rz (3D). In the following description, an example will be described in which the 3D matching unit 3122 calculates at least the position Tz (3D), the position Rx (3D), and the position Ry (3D).
  • the control device 3 uses the position Tz (3D), the position Rx (3D), and the position Ry (3D) with relatively high accuracy calculated by the 3D matching unit 3122 in the global coordinate system.
  • the position of the work W at is calculated.
  • the control device 3 can be calculated with relatively high accuracy.
  • the 3D matching unit 3122 outputs information regarding the calculated position of the work W to the coordinate conversion unit 3125 each time the position of the work W is calculated.
  • the 3D matching unit 3121 detects all 6DOF positions (that is, position Tx (3D), position Ty (3D), position Tz (3D), position Rx (3D), position Ry (3D) and position Rz ( 3D)), and information on some of the calculated 6DOF positions (for example, the above-described relatively high-precision position Tz (3D), position Rx (3D), and position Ry (3D)), You may output to the coordinate transformation part 3125.
  • the 3D matching unit 3122 may calculate part of the 6DOF position and output information about the calculated part of the 6DOF position to the coordinate conversion unit 3125 .
  • the 3D matching unit 3122 calculates the position Tz (3D), the position Rx (3D) and the position Ry (3D) with relatively high accuracy described above, and calculates the position Tz (3D), the position Rx (3D) and the position Information about Ry (3D) may be output to the coordinate transformation unit 3125 .
  • the 3D matching unit 3122 may calculate all the 6DOF positions and output information about all the calculated 6DOF positions to the coordinate conversion unit 3125 .
  • the coordinate transformation unit 3125 may calculate the 6DOF position of the workpiece W using all the 6DOF positions output by the 3D matching unit 3122 .
  • the coordinate transformation unit 3125 selects a portion of the 6DOF positions output by the 3D matching unit 3122, and converts a portion of the selected 6DOF positions (for example, the above-described relatively accurate position Tz (3D),
  • the 6DOF position of the workpiece W may be calculated using the position Rx (3D) and the position Ry (3D)).
  • the 3D matching section 3122 may calculate the position of the work W at a predetermined 3D matching cycle. In other words, the 3D matching section 3122 may calculate the position of the workpiece W each time the time corresponding to the 3D matching period elapses. Conversely, it may be considered that the 3D matching unit 3122 requires a period of time corresponding to the 3D matching period from the start of the 3D tracking process to the completion of the 3D tracking process. In this case, the 3D matching section 3122 may output information about the position of the workpiece W to the coordinate transformation section 3125 at a predetermined 3D matching cycle.
  • the 3D matching cycle may be longer than the 3D imaging cycle corresponding to the 3D imaging rate at which the imaging device 22 images the work W.
  • the 3D matching cycle may be a cycle in which the 3D matching unit 3122 can perform the 3D matching process several times to several tens of times (for example, 1 time to 30 times) per second.
  • the imaging device 22 generates new workpiece image data IMG_3D from the time the 3D matching unit 3122 starts the 3D matching process to the time the 3D matching process is completed.
  • the 3D matching unit 3122 even if the imaging device 22 generates new work image data IMG_3D, until the already started 3D matching process is completed, the work image newly generated by the imaging device 22 A new 3D matching process using the data IMG_3D does not have to be started. After completing the started 3D matching process, the 3D matching unit 3122 may newly start the 3D matching process using the latest work image data IMG_3D at that time.
  • the timing of generating the workpiece image data IMG_3D shown in FIG. 11 can also be said to be the timing of imaging the workpiece W by the imaging device 22 in order to generate the workpiece image data IMG_3D.
  • the 3D matching period does not have to be longer than the 3D imaging period.
  • the 3D matching period may be shorter than the 3D imaging period.
  • the 3D matching period may be the same as the 3D imaging period.
  • the 3D matching period may be the same as the 2D matching period.
  • the length of the 3D matching period may be the same as the length of the 2D matching period. That is, the time from when the 3D matching unit 3122 starts to completes the 3D matching process may be the same as the time from when the 2D matching unit 3121 starts to completes the 2D matching process.
  • the 2D matching unit 3121 starts 2D matching processing after the imaging device 21 images the work W
  • the 3D matching unit 3122 starts 3D matching processing after the imaging device 22 images the work W.
  • the time from when the imaging device 21 images the workpiece W until the 2D matching unit 3121 completes the 2D matching process (that is, calculates the position of the workpiece W) is the 3D time from when the imaging device 22 images the workpiece W. It may be the same as the time until the matching unit 3122 completes the 3D matching process (that is, calculates the position of the workpiece W).
  • the 3D matching period does not have to be the same as the 2D matching period.
  • the length of the 3D matching period may be longer than the length of the 2D matching period.
  • the length of the 3D matching period may be shorter than the length of the 2D matching period.
  • the 3D matching period and the 2D matching period may temporally overlap as shown in the second and third timing charts from the top of FIG. . That is, the start time of the 3D matching cycle and the start time of the 2D matching cycle may be the same, and the end time of the 3D matching cycle and the end time of the 2D matching cycle may be the same.
  • the time when the 3D matching unit 3122 starts the 3D matching process and the time when the 2D matching unit 3121 starts the 2D matching process are the same, and the time when the 3D matching unit 3122 completes the 3D matching process.
  • the time at which the 2D matching unit 3121 completes the 2D matching process may be the same.
  • the start time of the 3D matching cycle and the start time of the 2D matching cycle may be shifted by a predetermined time.
  • the end time of the 3D matching cycle and the end time of the 2D matching cycle may be shifted by a predetermined time.
  • the time when the 3D matching section 3122 starts the 3D matching process and the time when the 2D matching section 3121 starts the 2D matching process may be shifted by a predetermined time.
  • the time at which the 3D matching unit 3122 completes the 3D matching process and the time at which the 2D matching unit 3121 completes the 2D matching process may be shifted by a predetermined time.
  • the data sizes of the work shape data WSD and the reference shape data WMD used for the 3D matching process are usually larger than the data sizes of the work image data IMG_2D and the reference image data IMG_2M used for the 2D matching process. Therefore, the 3D matching cycle, which is the time required for the 3D matching unit 3122 to complete the 3D matching process, is longer than the 2D matching cycle, which is the time required for the 2D matching unit 3121 to complete the 2D matching process. may become. Therefore, the 3D matching unit 3122 may perform processing for shortening the 3D matching period such that the 3D matching period is the same as the 2D matching period or the 3D matching period is shorter than the 2D matching period. .
  • the 3D matching unit 3122 uses the results of the 2D matching process (for example, the above-described position Tx (2D), position Ty (2D), position Tz (2D), position Rx (2D), position Ry (2D) and position (at least one of Rz(2D)), a part of the workpiece shape data WSD may be selected as 3D matching target data for 3D matching processing.
  • the positional relationship between the 2D imaging coordinate system and the 3D imaging coordinate system depends on the positional relationship between the imaging devices 21 and 22 . Therefore, the control device 3 stores coordinate system information indicating the positional relationship between the 2D imaging coordinate system and the 3D imaging coordinate system, which is generated based on the positional relationship between the imaging devices 21 and 22, in the storage device 32. You can store it.
  • the coordinate system information transforms a position within one of the 2D imaging coordinate system and the 3D imaging coordinate system into a position within the other coordinate system of the 2D imaging coordinate system and the 3D imaging coordinate system.
  • the control device 3 converts the position in either the 2D imaging coordinate system or the 3D imaging coordinate system to the 2D imaging coordinate system or the 3D imaging coordinate system based on the coordinate system information (particularly, the transformation matrix). Either of the coordinate systems can be transformed to a position in the other coordinate system.
  • the 3D matching unit 3122 converts the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D) and the position Rz (2D) into the position Tx (3D) , position Ty (3D), position Tz (3D), position Rx (3D), position Ry (3D) and position Rz (3D). That is, as shown in FIG. 12, the 3D matching section 3122 may estimate the area where the work W is estimated to exist within the 3D imaging coordinate system based on the result of the 2D matching processing. After that, the 3D matching section 3122 may select, as 3D matching target data, a partial data portion corresponding to an area in which the work W is estimated to exist from the work shape data WSD. After that, the 3D matching section 3122 may perform 3D matching processing on the 3D matching target data which is a part of the workpiece shape data WSD.
  • the work shape data WSD may include not only a data portion indicating the shape of the work W, but also a data portion indicating the shape of an object different from the work W.
  • the imaging field of view of the imaging device 22 that generates the workpiece image data IMG_3D used to generate the workpiece shape data WSD may include not only the workpiece W but also an object different from the workpiece W.
  • the work shape data WSD is generated from the work image data IMG_3D generated by imaging the work W placed on the mounting device 4 by the imaging device 22.
  • a data portion indicating the shape of the mounting device 4 is included in addition to the data portion indicating the shape.
  • the 3D matching target data is typically data obtained by removing a data portion indicating the shape of an object different from the work W (that is, an object different from the target object) from the work shape data WSD.
  • the 3D matching target data may typically be regarded as equivalent to data obtained by selectively extracting data portions indicating the shape of the work W from the work shape data WSD.
  • the time required to complete the 3D matching process performed on the 3D matching target data is less than the time required to complete the This is because the time required to complete the 3D matching process depends on the size of the data on which the 3D matching process is performed.
  • the 3D matching cycle becomes shorter than when the 3D matching process is performed on the entire work shape data WSD.
  • the operation of selecting the 3D matching target data, which is a part of the work shape data WSD is equivalent to the operation of not selecting (or deleting) the data portion other than the 3D matching target data in the work shape data WSD. may be regarded as Therefore, based on the result of the 2D matching process, the 3D matching unit 3122 selects a part of the work shape data WSD corresponding to an area in which the work W is estimated not to exist (for example, as described above).
  • 3D matching target data, which is a part of the workpiece shape data WSD may be generated by deleting the data portion indicating the shape of an object different from the workpiece W).
  • the 3D matching unit 3122 may select 3D matching target data based on a user's instruction specifying a part of the work shape data WSD.
  • the control device 3 uses a GUI ( Graphical User Interface) may be displayed.
  • the control device 3 uses the output device 35 including a display device to display a plurality of points indicated by point cloud data, which is an example of the work shape data WSD, and point corresponding to the work W among the plurality of points.
  • a user-operable GUI may be displayed to specify the .
  • the control device 3 uses the output device 35 including a display device to display the depth image indicated by the depth image data, which is an example of the work shape data WSD, and designate the pixels corresponding to the work W in the depth image.
  • a GUI that can be operated by the user may be displayed.
  • the 3D matching unit 3122 may perform the 3D matching process on the 3D matching target data, which is a part of the work shape data WSD designated by the user. As a result, the 3D matching cycle becomes shorter than when the 3D matching process is performed on the entire work shape data WSD.
  • the 2D tracking unit 3123 performs 2D tracking processing by capturing two images of the workpiece W by the imaging device 21 at different times t1 and t2. Tracking processing is performed using the workpiece image data IMG_2D#t1 and IMG_2D#t2.
  • Tracking processing is performed using the workpiece image data IMG_2D#t1 and IMG_2D#t2.
  • the tracking process using the two workpiece image data IMG_2D#t1 and IMG_2D#t2 is, as shown in FIG. and at least one of edges) in the workpiece image data IMG_2D#t2. Note that the tracking process itself may be the same as the existing tracking process. Therefore, detailed description of the tracking process is omitted.
  • the 2D tracking unit 3123 may calculate the amount of change in the position of at least one feature location within the 2D imaging coordinate system between times t1 and t2 by performing tracking processing. After that, the 2D tracking unit 3123 determines the amount of change in the position of the workpiece W within the 2D imaging coordinate system between times t1 and t2 based on the amount of change in the position of at least one characteristic location within the 2D imaging coordinate system. may be calculated.
  • the method of calculating the amount of change in the position of the workpiece W is not limited to the tracking process using the two workpiece image data IMG_2D#t1 and IMG_2D#t2.
  • Other well-known methods of calculating the amount of change in the position of the work W using the method may be used.
  • the method of calculating the amount of change in the position of the work W is a method of calculating the amount of change in the position of the work W based on the two work image data IMG_2D#t1 and IMG_2D#t2 by machine learning or deep learning.
  • a prediction model is constructed that outputs the amount of change in the position of the work W when two work image data IMG_2D#t1 and IMG_2D#t2 are input.
  • the amount of change in the position of the workpiece W may be calculated by inputting the image data IMG_2D#t1 and IMG_2D#t2.
  • the 2D tracking unit 3123 may include this prediction model.
  • the 2D tracking unit 3123 calculates the change amount ⁇ Tx(2D) of the position Tx(2D) of the work W in the X-axis direction (2D) parallel to the X-axis (2D) as the change amount of the position of the work W in the 2D imaging coordinate system. , the amount of change ⁇ Ty (2D) of the position Ty (2D) of the workpiece W in the Y-axis direction (2D) parallel to the Y-axis (2D) and the position of the workpiece W in the Z-axis direction (2D) parallel to the Z-axis (2D) At least one of the amount of change ⁇ Tz(2D) of the position Tz(2D) may be calculated.
  • the 2D tracking unit 3123 in addition to or instead of at least one of the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), and the amount of change ⁇ Tz (2D) as the position of the workpiece W in the 2D imaging coordinate system, (2D) the amount of change ⁇ Rx (2D) in the position Rx (2D) of the work W in the direction of rotation around the Y axis (2D), the amount of change ⁇ Ry (2D) in the position Ry (2D) of the work W in the direction of rotation around the Y axis (2D), and At least one of the amount of change ⁇ Rz(2D) of the position Rz(2D) of the workpiece W in the direction of rotation about the Z-axis (2D) may be calculated.
  • the 2D tracking unit 3123 calculates the amount of change in the position of the work W as the amount of change in the posture of the work W around the X-axis (2D), the amount of change in the posture of the work W around the Y-axis (2D), and the amount of change in the posture of the work W around the Z-axis ( 2D)
  • the amount of change in the posture of the surrounding workpiece W may be calculated.
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change ⁇ Rz (2D). At least one amount of change may be calculated with relatively high accuracy compared to the amount of change in the position of the workpiece W calculated by the 3D tracking unit 3124 .
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change ⁇ Rz (2D).
  • at least one other amount of change whose accuracy is relatively low compared to the amount of change in the position of the workpiece W calculated by the 3D tracking unit 3124 may not be calculated.
  • the 2D tracking unit 3123 performs tracking processing using work image data IMG_2D that does not have position information in the Z-axis direction (2D).
  • the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), and the amount of change ⁇ Rz (2D) can be calculated with relatively high accuracy without using positional information in the Z-axis direction (2D).
  • the accuracies of the change amount ⁇ Tx(2D), the change amount ⁇ Ty(2D), and the change amount ⁇ Rz(2D) calculated by the 2D tracking unit 3123 are respectively the change amounts ⁇ Tx(3D ), the accuracy of the variation ⁇ Ty(3D) and the variation ⁇ Rz(3D).
  • the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), and the amount of change ⁇ Ry (2D) with high accuracy without using positional information in the Z-axis direction (2D).
  • the accuracies of the change amount ⁇ Tz(2D), the change amount ⁇ Rx(2D), and the change amount ⁇ Ry(2D) calculated by the 2D tracking unit 3123 are respectively the change amounts ⁇ Tz(3D ), the accuracy of variation ⁇ Rx(3D) and variation ⁇ Ry(3D) may be higher.
  • the 2D tracking unit 3123 may calculate the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty(2D), and the amount of change ⁇ Rz(2D). On the other hand, the 2D tracking unit 3123 may or may not calculate the amount of change ⁇ Tz(2D), the amount of change ⁇ Rx(2D), and the amount of change ⁇ Ry(2D). In the following description, an example will be described in which the 2D tracking unit 3123 calculates at least the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty(2D), and the amount of change ⁇ Rz(2D).
  • the control device 3 uses the relatively high-precision change amount ⁇ Tx (2D), change amount ⁇ Ty (2D), and change amount ⁇ Rz (2D) calculated by the 2D tracking unit 3123 to perform global A position of the workpiece W within the coordinate system is calculated.
  • the control device 3 can can be calculated with relatively high accuracy.
  • the 2D tracking unit 3123 outputs information about the calculated amount of change in the position of the work W to the coordinate conversion unit 3125 each time the amount of change in the position of the work W is calculated.
  • the 2D tracking unit 3123 detects all the amount of change in the position of 6 DOF (that is, the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry(2D) and the amount of change ⁇ Rz(2D)) may be calculated, and information about a part of the calculated amount of change in the position of 6 DOF may be output to the coordinate transformation section 3125 .
  • the 2D tracking unit 3123 may calculate part of the 6DOF position change amount and output information about the calculated part of the 6DOF position change amount to the coordinate conversion unit 3125 .
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty(2D), and the amount of change ⁇ Rz(2D) with relatively high accuracy, and calculates the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty (2D) and information on the amount of change ⁇ Rz(2D) may be output to the coordinate transformation unit 3125 .
  • the 2D tracking unit 3123 may calculate all the amount of change in the 6 DOF position and output information about all the calculated amount of change in the 6 DOF position to the coordinate conversion unit 3125 .
  • the coordinate transformation unit 3125 may calculate the amount of change in the 6DOF position of the workpiece W using all the amount of change in the 6DOF position output by the 2D tracking unit 3123 .
  • the coordinate transformation unit 3125 selects a portion of the 6DOF position change amount output by the 2D tracking unit 3123, and uses the selected portion of the 6DOF position change amount to calculate the 6DOF position change amount of the workpiece W. can be calculated.
  • the 2D tracking unit 3123 may calculate the amount of change in the position of the work W at a predetermined 2D tracking cycle. In other words, the 2D tracking unit 3123 may calculate the amount of change in the position of the work W each time the time corresponding to the 2D tracking period has passed. Conversely, it may be considered that a time corresponding to the 2D tracking period is required from the time when the 2D tracking unit 3123 starts the 2D tracking process to the time when the 2D tracking process is completed. In this case, the 2D tracking section 3123 may output information about the amount of change in the position of the workpiece W to the coordinate transformation section 3125 at a predetermined 2D tracking cycle.
  • the 2D tracking cycle may be the same as the 2D imaging cycle corresponding to the 2D imaging rate at which the imaging device 21 images the workpiece W.
  • the 2D tracking cycle may be a cycle in which the 2D tracking unit 3123 can perform the 2D tracking process several tens to several hundred times (for example, 500 times) per second.
  • the 2D tracking unit 3123 detects the workpiece image data IMG_2D#t generated at time t and t+1 at the same time as or after the workpiece image data IMG_2D#t+1 is generated at time t+1. and 2D tracking processing using IMG_2D#t+1 may be performed.
  • the 2D tracking unit 3123 detects the workpiece image data IMG_2D#t+1 generated at times t+1 and t+2 at the same time as or after the workpiece image data IMG_2D#t+2 is generated at time t+2. and 2D tracking processing using IMG_2D#t+2 may be performed. As a result, the amount of change in the position of the workpiece W between times t+1 and t+2 is calculated.
  • the 2D tracking cycle does not have to be the same as the 2D imaging cycle.
  • the 2D tracking period may be shorter than the 2D imaging period.
  • the 2D tracking period may be longer than the 2D imaging period.
  • the 2D tracking unit 3123 does not need to calculate the amount of change in the position of the workpiece W within the 2D imaging coordinate system between times t1 and t2. For example, the 2D tracking unit 3123 calculates the positions of the workpiece W within the 2D imaging coordinate system at times t1 and t2 by performing the matching process described above on the two workpiece image data IMG_2D#t1 and IMG_2D#t2. You may Since the position of the workpiece W is calculated at different times (for example, times t1 and t2), the processing performed by the 2D tracking unit 3123 can be said to be tracking processing.
  • the 2D tracking unit 3123 performs the matching processing by the above-described 2D matching unit 3121, and uses fewer characteristic locations than the characteristic locations of the workpiece W appearing in the image indicated by the workpiece image data IMG_2D, to match the two workpieces. Matching processing may be performed for each of the image data IMG_2D#t1 and IMG_2D#t2. In this case, the 2D tracking unit 3123 can shorten the calculation time required for the matching process, so that the tracking process can be performed in a shorter period than the matching process by the 2D matching unit 3121 .
  • the 2D tracking period is shorter than the 2D matching period in which the 2D matching unit 3121 described above performs the 2D matching process.
  • the calculation device 31 may perform calculation focusing on the data portion related to the characteristic locations of the work W in the work image data IMG_2D and the work shape data WSD.
  • the arithmetic unit 31 needs to perform an arithmetic operation to search for the work W from the entire work image data IMG_2D and work shape data WSD.
  • the amount of calculation required for tracking processing is less than the amount of calculation required for matching processing. Therefore, the 2D tracking period is usually shorter than the 2D matching period.
  • the 2D tracking unit 3123 may perform the 2D tracking process multiple times from the start to the end of one 2D matching cycle. In other words, the 2D tracking unit 3123 may perform the 2D tracking process multiple times during the period from when the 2D matching unit 3121 starts the 2D matching process to when the 2D matching process is completed.
  • the 2D tracking period does not have to be shorter than the 2D matching period.
  • the 2D tracking period may be the same as the 2D matching period.
  • the 2D tracking period may be longer than the 2D matching period.
  • the timing of generating the workpiece image data IMG_2D shown in FIG. 14 can also be said to be the timing of imaging the workpiece W by the imaging device 21 in order to generate the workpiece image data IMG_2D.
  • the 3D tracking unit 3124 performs tracking processing using two workpiece shape data WSD#s1 and WSD#s2 as 3D tracking processing.
  • the two workpiece shape data WSD#s1 and WSD#s2 are respectively generated from the two workpiece image data IMG_3D#s1 and IMG_3D#s2 generated by imaging the workpiece W by the imaging device 22 at different times s1 and s2. be done.
  • Tracking processing using two workpiece shape data WSD#s1 and WSD#s2 is, as shown in FIG. (at least one) in the workpiece shape data WSD#s2. Note that the tracking process itself may be the same as the existing tracking process.
  • the 3D tracking unit 3124 may calculate the amount of change in the position of at least one feature location within the 3D imaging coordinate system between times s1 and s2 by performing tracking processing. After that, the 3D tracking unit 3124 determines the amount of change in the position of the workpiece W within the 3D imaging coordinate system between times s1 and s2 based on the amount of change in the position of at least one feature location within the 3D imaging coordinate system. may be calculated.
  • Tracking processing using the two workpiece shape data WSD#s1 and WSD#s2 includes, for example, RANSAC (Random Sample Consensus), SIFT (Scale-Invariant Feature Transform), ICP (Iterative Closest Point), and DSO (Direct At least one known method of sparse odometry may be used.
  • RANSAC Random Sample Consensus
  • SIFT Scale-Invariant Feature Transform
  • ICP Iterative Closest Point
  • DSO Direct At least one known method of sparse odometry may be used.
  • the method of calculating the amount of change in the position of the workpiece W is not limited to the tracking process using the two workpiece shape data WSD#s1 and WSD#s2.
  • Other well-known methods of calculating the amount of change in the position of the work W using the position of the work W may be used.
  • the method of calculating the amount of change in the position of the work W is a method of calculating the amount of change in the position of the work W based on two pieces of work shape data WSD#s1 and WSD#s2 by machine learning or deep learning.
  • a prediction model is constructed in advance such that when two workpiece shape data WSD#s1 and WSD#s2 are input, the amount of change in the position of the workpiece W is output.
  • the amount of change in the position of the workpiece W may be calculated by inputting the workpiece shape data WSD#s1 and WSD#s2.
  • This prediction model may be stored in the 3D tracking unit 3124 . Note that the 3D tracking unit 3124 may read this prediction model stored in the storage device 32 .
  • the 3D tracking unit 3124 calculates the change amount ⁇ Tx(3D) of the position Tx(3D) of the work W in the X-axis direction (3D) parallel to the X-axis (3D) as the change amount of the position of the work W in the 3D imaging coordinate system. , the change amount ⁇ Ty (3D) of the position Ty (3D) of the workpiece W in the Y-axis direction (3D) parallel to the Y-axis (3D) and the position of the workpiece W in the Z-axis direction (3D) parallel to the Z-axis (3D) At least one of the amount of change ⁇ Tz(3D) of the position Tz(3D) may be calculated.
  • the 3D tracking unit 3124 uses the X-axis as the position of the work W in the 3D imaging coordinate system in addition to or instead of at least one of the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), and the amount of change ⁇ Tz (3D).
  • the 3D tracking unit 3124 calculates the amount of change in the position of the work W as the amount of change in the posture of the work W around the X axis (3D), the amount of change in the posture of the work W around the Y axis (3D), and the amount of change in the posture of the work W around the Z axis ( 3D)
  • the amount of change in the posture of the surrounding workpiece W may be calculated.
  • the 3D tracking unit 3124 performs the following: At least one amount of change having relatively high accuracy as compared with the amount of change in the position of the workpiece W calculated by the 2D tracking unit 3123 may be calculated. On the other hand, the 3D tracking unit 3124 calculates the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D). Of these, at least one other amount of change whose accuracy is relatively low compared to the amount of change in the position of the work W calculated by the 2D tracking unit 3123 may not be calculated.
  • the 3D tracking unit 3124 performs tracking processing using workpiece shape data WSD having position information in the Z-axis direction (3D).
  • the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) can be calculated with relatively high accuracy by using positional information in the Z-axis direction (3D).
  • the accuracy of the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) calculated by the 3D tracking unit 3124 is respectively the amount of change ⁇ Tz (2D ), the accuracy of variation ⁇ Rx(2D) and variation ⁇ Ry(2D) may be higher.
  • the 3D tracking unit 3124 may calculate the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D). On the other hand, the 3D tracking unit 3124 may or may not calculate the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), and the amount of change ⁇ Rz (3D). In the following description, an example will be described in which the 3D tracking unit 3124 calculates at least the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D).
  • the control device 3 uses the relatively high-precision change amount ⁇ Tz (3D), change amount ⁇ Rx (3D), and change amount ⁇ Ry (3D) calculated by the 3D tracking unit 3124 to perform global A position of the workpiece W within the coordinate system is calculated.
  • the control device 3 can operate within the global coordinate system can be calculated with relatively high accuracy.
  • the 3D tracking unit 3124 outputs information about the calculated amount of change in the position of the work W to the coordinate conversion unit 3125 each time the amount of change in the position of the work W is calculated.
  • the 3D tracking unit 3124 detects all of the 6DOF variations (that is, variation ⁇ Tx (3D), variation ⁇ Ty (3D), variation ⁇ Tz (3D), variation ⁇ Rx (3D), variation ⁇ Ry ( 3D) and the amount of change ⁇ Rz(3D)), and information on a part of the calculated amount of change of 6DOF may be output to the coordinate transformation section 3125 .
  • the 3D tracking unit 3124 may calculate part of the 6DOF change amount and output information about the calculated part of the 6DOF change amount to the coordinate conversion unit 3125 .
  • the 3D tracking unit 3124 calculates the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) with relatively high accuracy, and calculates the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D) and information on the amount of change ⁇ Ry (3D) may be output to the coordinate transformation unit 3125 .
  • the 3D tracking unit 3124 may calculate all the 6DOF change amounts and output information about all the calculated 6DOF change amounts to the coordinate transformation unit 3125 .
  • the coordinate transformation unit 3125 may calculate the amount of change in 6DOF of the work W using all the amounts of change in 6DOF output by the 3D tracking unit 3124 .
  • the coordinate conversion unit 3125 may select a portion of the 6DOF variation output from the 3D tracking unit 3124 and calculate the 6DOF variation of the workpiece W using the selected portion of the 6DOF variation. good.
  • the 3D tracking unit 3124 may calculate the amount of change in the position of the work W at a predetermined 3D tracking cycle. In other words, the 3D tracking unit 3124 may calculate the amount of change in the position of the work W each time the time corresponding to the 3D tracking period elapses. Conversely, it may be considered that the time corresponding to the 3D tracking period is required from the time when the 3D tracking unit 3124 starts the 3D tracking process to the time when the 3D tracking process is completed. In this case, the 3D tracking unit 3124 may output information regarding the amount of change in the position of the workpiece W to the coordinate transformation unit 3125 at a predetermined 3D tracking cycle.
  • the 3D tracking cycle may be the same as the 3D imaging cycle corresponding to the 3D imaging rate at which the imaging device 22 images the workpiece W.
  • the 3D tracking cycle may be a cycle in which the 3D tracking unit 3124 can perform the 3D tracking process several tens to several hundred times (eg, 500 times) per second.
  • the 3D tracking unit 3124 detects the work image data IMG_3D#s generated at times s and s+1 simultaneously with or after the work image data IMG_3D#s+1 is generated at time s+1. and IMG_3D#s+1, 3D tracking processing may be performed using workpiece shape data WSD#s and WSD#s+1 respectively generated.
  • the 3D tracking unit 3124 detects work image data IMG_3D#s+1 generated at times s+1 and s+2 at the same time or after work image data IMG_3D#s+2 is generated at time s+2. and IMG_3D#s+2, 3D tracking processing may be performed using workpiece shape data WSD#s+1 and WSD#s+2 respectively generated. As a result, the amount of change in the position of the workpiece W between times s+1 and s+2 is calculated.
  • the timing of generating the work image data IMG_3D shown in FIG. 16 can also be said to be the timing of the imaging device 22 imaging the work W in order to generate the work image data IMG_3D.
  • the 3D tracking cycle does not have to be the same as the 3D imaging cycle.
  • the 3D tracking period may be shorter than the 3D imaging period.
  • the 3D tracking period may be longer than the 3D imaging period.
  • the 3D tracking unit 3124 does not need to calculate the amount of change in the position of the workpiece W within the 3D imaging coordinate system between times s1 and s2. For example, the 3D tracking unit 3124 performs the above-described 3D matching processing on each of the two workpiece shape data WSD#s1 and WSD#s2, thereby determining the position of the workpiece W within the 3D imaging coordinate system at times s1 and s2. can be calculated. Since the position of the workpiece W is calculated at different times (for example, times s1 and s2), the processing performed by the 3D tracking unit 3124 can be called tracking processing.
  • the 3D tracking unit 3124 uses fewer feature points than the feature points of the work W indicated by the work shape data WSD, which are used in the matching process by the 3D matching unit 3122 described above, to obtain the two work shape data WSD#s1 and Three matching processes may be performed for each WSD#s2.
  • the 3D tracking unit 3124 can shorten the calculation time required for the matching process, so that the tracking process can be performed in a shorter period than the matching process by the 3D matching unit 3122 .
  • the 3D tracking period is shorter than the 3D matching period in which the 3D matching section 3122 described above performs the 3D matching process. This is because, as described above, the amount of calculation required for tracking processing is less than the amount of calculation required for matching processing. Therefore, the 3D tracking unit 3124 may perform the 3D tracking process multiple times from the start to the end of one 3D matching cycle. The 3D tracking unit 3124 may perform the 3D tracking process multiple times after the 3D matching unit 3122 starts the 3D matching process until the 3D matching process is completed.
  • the 3D tracking period does not have to be shorter than the 3D matching period.
  • the 3D tracking period may be the same as the 3D matching period.
  • the 3D tracking period may be longer than the 3D matching period.
  • the 3D tracking period may be the same as the 2D tracking period.
  • the length of the 3D tracking period may be the same as the length of the 2D tracking period. That is, the time from when the 3D tracking unit 3124 starts to completes the 3D tracking process may be the same as the time from when the 2D tracking unit 3123 starts to completes the 2D tracking process.
  • the 2D tracking unit 3123 starts 2D tracking processing after the imaging device 21 images the work W
  • the 3D tracking unit 3124 starts 3D tracking processing after the imaging device 22 images the work W.
  • the time from when the imaging device 21 images the workpiece W until the 2D tracking unit 3123 completes the 2D tracking process (that is, calculates the amount of change in the position of the workpiece W) is It may be the same as the time from imaging until the 3D tracking unit 3124 completes the 3D tracking process (that is, calculates the amount of change in the position of the work W).
  • the 3D tracking period may not be the same as the 2D tracking period.
  • the length of the 3D tracking period may be longer than the length of the 2D tracking period.
  • the length of the 3D tracking period may be shorter than the length of the 2D tracking period.
  • the 3D tracking cycle and the 2D tracking cycle may temporally overlap as shown in the second and fourth timing charts from the top of FIG. . That is, the start time of the 3D tracking cycle and the start time of the 2D tracking cycle may be the same, and the completion time of the 3D tracking cycle and the end time of the 2D tracking cycle may be the same.
  • the time when the 3D tracking unit 3124 starts the 3D tracking process and the time when the 2D tracking unit 3123 starts the 2D tracking process are the same, and the time when the 3D tracking unit 3124 completes the 3D tracking process.
  • the time at which the 2D tracking unit 3123 completes the 2D tracking process may be the same.
  • the times t1 and t2 at which the imaging device 21 images the workpiece W in order to generate the two workpiece image data IMG_2D#t1 and IMG_2D#t2 used for the 2D tracking process are respectively used for the 3D tracking process.
  • the 3D tracking period and the 2D tracking period do not have to overlap in terms of time.
  • the start time of the 3D tracking cycle and the start time of the 2D tracking cycle may be shifted by a predetermined time.
  • the end time of the 3D tracking cycle and the end time of the 2D tracking cycle may be shifted by a predetermined time.
  • the time when the 3D tracking unit 3124 starts the 3D tracking process and the time when the 2D tracking unit 3123 starts the 2D tracking process may be shifted by a predetermined time.
  • the time when the 3D tracking unit 3124 completes the 3D tracking process and the time when the 2D tracking unit 3123 completes the 2D tracking process may be shifted by a predetermined time.
  • the time t1 at which the imaging device 21 images the workpiece W to generate two pieces of workpiece image data IMG_2D#t1 used for 2D tracking processing is used to generate workpiece image data IMG_3D#s1 used for 3D tracking processing.
  • the time s1 at which the device 22 images the workpiece W may be different.
  • the time t2 at which the imaging device 21 images the work W to generate two pieces of work image data IMG_2D#t2 used for 2D tracking processing is used to generate work image data IMG_3D#s2 used for 3D tracking processing. It may be different from the time s2 at which the device 22 images the work W.
  • the 2D matching period may be the same as the 3D matching period or longer than the 2D tracking period.
  • the 3D matching period may be the same as the 2D matching period or longer than the 3D tracking period.
  • the 2D tracking period may be the same as the 3D tracking period or shorter than the 2D matching period.
  • the 3D tracking period may be the same as the 2D tracking period or shorter than the 3D matching period.
  • the shorter one of the 2D matching period and the 3D matching period is the longer one of the 2D tracking period and the 3D tracking period.
  • the relationship that the period is longer than the period of the other may be established. This is because, as described above, the amount of calculation required for tracking processing is less than the amount of calculation required for matching processing.
  • the data size of the workpiece shape data WSD used for 3D tracking processing is usually larger than the data size of workpiece image data IMG_2D used for 2D tracking processing.
  • the work shape data WSD is point cloud data
  • the data size of the work shape data WSD is likely to be larger than the data size of the work image data IMG_2D. Therefore, the 3D tracking cycle, which is the time required for the 3D tracking unit 3124 to complete the 3D tracking process, is longer than the 2D tracking cycle, which is the time required for the 2D tracking unit 3123 to complete the 2D tracking process. may become. Therefore, the 3D tracking unit 3124 may perform 3D tracking processing such that the 3D tracking cycle is the same as the 2D tracking cycle, or the 3D tracking cycle is shorter than the 2D tracking cycle.
  • the 3D tracking unit 3124 may perform 3D tracking processing using the depth image data described above as the workpiece shape data WSD.
  • the amount of calculation required for performing the tracking process is reduced.
  • the amount of computation required to perform the tracking process is reduced as the 3D tracking period is the same as the 2D tracking period. This is because the data size of depth image data in which depth information is associated with each pixel of a two-dimensional image does not differ greatly from the data size of work image data IMG_2D, which is a two-dimensional image.
  • the 3D tracking unit 3124 may perform 3D tracking processing using the point cloud data described above as the workpiece shape data WSD.
  • the coordinate transformation unit 3125 performs global A position of the workpiece W in the coordinate system is calculated. That is, the coordinate transformation unit 3125 calculates the position Tx, the position Ty, the position Tz, the position Rx, the position Ry, and the position Rz as the positions of the workpiece W in the global coordinate system.
  • the coordinate conversion unit 3125 corrects the result of the 2D matching process based on the result of the 2D tracking process, and corrects the result of the 3D matching process based on the result of the 3D tracking process. correct the result of Specifically, as shown in FIG. 7, the coordinate transformation unit 3125 acquires information about the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), and the amount of change ⁇ Rz (2D) as a result of the 2D tracking process. .
  • the coordinate transformation unit 3125 acquires information on the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) as a result of the 3D tracking process.
  • the coordinate transformation unit 3125 acquires information on the position Tx (2D), the position Ty (2D), and the position Rz (2D) as a result of the 2D matching process.
  • the coordinate transformation unit 3125 acquires information about the position Tz (3D), the position Rx (3D), and the position Ry (3D) as a result of the 3D matching process.
  • the coordinate conversion unit 3125 corrects the position Tx(2D) based on the amount of change ⁇ Tx(2D), thereby correcting the position Tx′(2D) of the work W in the X-axis direction (2D) of the 2D imaging coordinate system. may be calculated.
  • the coordinate conversion unit 3125 calculates the position Ty' (2D) of the work W in the Y-axis direction (2D) of the 2D imaging coordinate system by correcting the position Ty (2D) based on the amount of change ⁇ Ty (2D).
  • the coordinate conversion unit 3125 calculates the position Tz′ (3D) of the workpiece W in the Z-axis direction (3D) of the 3D imaging coordinate system by correcting the position Tz (3D) based on the amount of change ⁇ Tz (3D).
  • the coordinate transformation unit 3125 corrects the position Rx(3D) based on the amount of change ⁇ Rx(3D), so that the position Rx′(3D) of the workpiece W in the rotation direction around the X-axis (3D) of the 3D imaging coordinate system. may be calculated.
  • the coordinate conversion unit 3125 corrects the position Ry (3D) based on the amount of change ⁇ Ry (3D), thereby changing the position Ry′ (3D) of the workpiece W in the rotation direction around the Y-axis (3D) of the 3D imaging coordinate system. may be calculated.
  • the coordinate transformation unit 3125 corrects the position Rz(2D) based on the amount of change ⁇ Rz(2D), so that the position Rz′(2D) of the workpiece W in the rotation direction around the Z-axis (2D) of the 2D imaging coordinate system. may be calculated.
  • the process of correcting the result of the 2D matching process based on the result of the 2D tracking process may include the process of adding the result of the 2D tracking process to the result of the 2D matching process.
  • the process of correcting the result of the 3D matching process based on the result of the 3D tracking process may include the process of adding the result of the 3D tracking process to the result of the 3D matching process.
  • the coordinate transformation unit 3125 may calculate the position Tx'(2D) by adding the change amount ⁇ Tx(2D) to the position Tx(2D).
  • the coordinate transformation unit 3125 may calculate the position Ty'(2D) by adding the change amount ⁇ Ty(2D) to the position Ty(2D).
  • the coordinate transformation unit 3125 may calculate the position Tz'(3D) by adding the amount of change ⁇ Tz(3D) to the position Tz(3D).
  • the coordinate transformation unit 3125 may calculate the position Rx′(3D) by adding the change amount ⁇ Rx(3D) to the position Rx(3D).
  • the coordinate transformation unit 3125 may calculate the position Ry' (3D) by adding the change amount ⁇ Ry (3D) to the position Ry (3D).
  • the coordinate transformation unit 3125 may calculate the position Rz'(2D) by adding the amount of change ⁇ Rz(2D) to the position Rz(2D).
  • the 2D tracking period which is the period in which the variation ⁇ Tx(2D) is generated, is shorter than the 2D matching period, which is the period in which the position Tx(2D) is generated.
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx(2D) a plurality of times after the new position Tx(2D) is generated and before the next position Tx(2D) is generated. In this case, each time the change amount ⁇ Tx(2D) is newly calculated, the coordinate conversion unit 3125 performs , the position Tx′ (2D) may be calculated.
  • the coordinate conversion unit 3125 converts the position Tx(2D) to the change amount calculated after the position Tx(2D) is calculated.
  • the position Tx'(2D) may be calculated by adding the sum of ⁇ Tx(2D).
  • the coordinate conversion unit 3125 converts the position Tx′(2D) at that time (that is, the position to which the calculated amount of change ⁇ Tx(2D) has already been added).
  • a new position Tx′(2D) may be calculated by adding the newly calculated amount of change ⁇ Tx(2D) to Tx(2D)). Therefore, each time the amount of change ⁇ Tx(2D) is calculated, the total sum of the amount of change ⁇ Tx(2D) added to the position Tx(2D) increases.
  • the position Tx'(2D) is updated more frequently than the comparative example in which the position Tx(2D) is used as it is as the position Tx'(2D).
  • the update frequency of the position Tx'(2D) depends on the 2D matching period, which is the period for calculating the position Tx(2D). do.
  • the position Tx'(2D) is calculated by correcting the position Tx(2D) based on the change amount ⁇ Tx(2D)
  • the update frequency of the position Tx'(2D) is the change amount ⁇ Tx(2D).
  • the position calculator 312 can calculate the position of the workpiece W within the global coordinate system in a shorter cycle. That is, the position calculator 312 can calculate the position of the workpiece W within the global coordinate system more frequently (in other words, at a higher speed).
  • the amount of change ⁇ Tx(2D) calculated by the 2D tracking process may contain an error corresponding to the amount of deviation from the actual position of the work W.
  • the error included in the sum total of the amount of change ⁇ Tx(2D) which continues to increase each time the amount of change ⁇ Tx(2D) is calculated, also increases.
  • the deviation between the position Tx'(2D) of the work W calculated by the control device 3 and the actual position of the work W increases each time the amount of change ⁇ Tx(2D) is added.
  • the accuracy of the position calculated by the matching process is higher than the accuracy of the position calculated by the tracking process.
  • the coordinate conversion unit 3125 calculates the amount of change ⁇ Tx(2D) added to the position Tx(2D) to calculate the position Tx′(2D). You may reset the summation. In this case, the coordinate conversion unit 3125 calculates the total sum of the amounts of change ⁇ Tx(2D) newly calculated after the position Tx(2D) is newly calculated for the newly calculated position Tx(2D). may be added to calculate the position Tx' (2D). As a result, the position calculator 312 can accurately calculate the position Tx'(2D).
  • the coordinate conversion unit 3125 calculates the position Tx(2D) to which the total sum of the amount of change Tx(2D) is added at the newly calculated position Tx(2D). ' (2D) is corrected.
  • FIG. 17 shows an example in which the position Tx(2D)#1 is newly calculated at time t10, and then the position Tx(2D)#2 is newly calculated at time t20 after the 2D matching period has elapsed from time t10. is shown.
  • the position Tx(2D)#1 has been newly calculated, so the amount of change ⁇ Tx(2D) to be added to the position Tx(2D)#1 has not yet been calculated. Therefore, from time t10 to time t11, position Tx(2D)#1 is used as position Tx'(2D).
  • the coordinate conversion unit 3125 adds the change amount ⁇ Tx(2D)#11 to the position Tx(2D)#1.
  • position Tx(2D)#1+change amount ⁇ Tx(2D)#11 is used as position Tx'(2D).
  • the coordinate transformation unit 3125 converts the amount of change ⁇ Tx(2D)#11 to ⁇ Tx(2D)# at the position Tx(2D)#1. Add 12.
  • the coordinate transformation unit 3125 adds the newly calculated ⁇ Tx(2D)#12 to the position Tx(2D)#1 to which the variation ⁇ Tx(2D)#11 has already been added.
  • position Tx(2D)#1+change amount .DELTA.Tx(2D)#11+change amount .DELTA.Tx(2D)#12 is used as position Tx'(2D).
  • the coordinate transformation unit 3125 converts the amount of change ⁇ Tx(2D)#11 to ⁇ Tx(2D)# at the position Tx(2D)#1. Add 13. Alternatively, the coordinate transformation unit 3125 adds the newly calculated ⁇ Tx(2D)#13 to the position Tx(2D)#1 to which the variation ⁇ Tx(2D)#11 to ⁇ Tx(2D)#12 have already been added. to add.
  • position Tx(2D)#1+change amount .DELTA.Tx(2D)#11+change amount .DELTA.Tx(2D)#12+change amount .DELTA.Tx(2D)#13 is equal to position Tx'(2D) used as
  • position Tx(2D)#2 is newly calculated, the amount of change ⁇ Tx(2D) to be added to the position Tx(2D) to calculate the position Tx′(2D) is The sum is reset to zero. Therefore, from time t20 to time t21, position Tx(2D)#2 is used as position Tx'(2D).
  • the coordinate conversion section 3125 adds the amount of change ⁇ Tx(2D)#21 to the position Tx(2D)#2.
  • position Tx(2D)#2+change amount ⁇ Tx(2D)#21 is used as position Tx'(2D).
  • the coordinate conversion unit 3125 converts the change amount ⁇ Tx(2D)#21 to ⁇ Tx(2D)# at the position Tx(2D)#2. Add 22.
  • the coordinate transformation unit 3125 adds the newly calculated ⁇ Tx(2D)#22 to the position Tx(2D)#2 to which the change amount ⁇ Tx(2D)#21 has already been added.
  • position Tx(2D)#2+change amount ⁇ Tx(2D)#21+change amount ⁇ Tx(2D)#22 is used as position Tx'(2D).
  • the coordinate conversion unit 3125 calculates the position Ty' (2D), the position Tz' (3D), the position Rx, as in the case of calculating the position Tx' (2D). ' (3D), position Ry' (3D) and position Rz' (2D) are calculated. That is, each time the change amount ⁇ Ty(2D) is newly calculated, the coordinate conversion unit 3125 converts the position Ty(2D) to the change amount ⁇ Ty(2D) calculated after the position Ty(2D) is calculated. ) may be added to calculate the position Ty′ (2D).
  • the coordinate conversion unit 3125 converts the position Ty′(2D) at that time (that is, the position to which the calculated amount of change ⁇ Ty(2D) has already been added).
  • the new position Ty'(2D) may be calculated by adding the newly calculated amount of change ⁇ Ty(2D) to Ty(2D)).
  • the coordinate conversion unit 3125 calculates the ⁇ change amount Ty(2D) to be added to the position Ty(2D) to calculate the position Ty'(2D).
  • a position Ty' (2D) may be calculated.
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Tz(3D) calculated after the position Tz(3D) was calculated to the position Tz(3D).
  • the position Tz' (3D) may be calculated by adding the sums.
  • the coordinate conversion unit 3125 converts the position Tz′(3D) at that time (that is, the position to which the calculated change amount ⁇ Tz(3D) has already been added).
  • a new position Tz'(3D) may be calculated by adding the newly calculated amount of change ⁇ Tz(3D) to Tz(3D)).
  • the coordinate conversion unit 3125 calculates the change amount ⁇ Tz(3D) to be added to the position Tz(3D) to calculate the position Tz′(3D).
  • the position Tz'(3D) may be calculated.
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Rx(3D) calculated after the position Rx(3D) is calculated to the position Rx(3D).
  • the position Rx' (3D) may be calculated by adding the sums.
  • the coordinate conversion unit 3125 converts the position Rx′(3D) at that time (that is, the position to which the calculated amount of change ⁇ Rx(3D) has already been added).
  • a new position Rx′(3D) may be calculated by adding the newly calculated amount of change ⁇ Rx(3D) to Rx(3D)).
  • the coordinate conversion unit 3125 calculates the amount of change ⁇ Rx(3D) to be added to the position Rx(3D) to calculate the position Rx′(3D).
  • the position Rx' (3D) may be calculated.
  • the coordinate conversion unit 3125 converts the change amount ⁇ Ry(3D) calculated after the position Ry(3D) is calculated to the position Ry(3D).
  • the position Ry' (3D) may be calculated by adding the sums.
  • the coordinate conversion unit 3125 converts the position Ry′(3D) at that time (that is, the position to which the calculated amount of change ⁇ Ry(3D) has already been added).
  • a new position Ry'(3D) may be calculated by adding the newly calculated amount of change ⁇ Ry(3D) to Ry(3D)).
  • the coordinate conversion unit 3125 calculates the amount of change ⁇ Ry(3D) to be added to the position Ry(3D) to calculate the position Ry′(3D).
  • the position Ry' (3D) may be calculated.
  • the coordinate conversion unit 3125 converts the change amount ⁇ Rz(2D) calculated after the position Rz(2D) is calculated to the position Rz(2D).
  • the position Rz' (2D) may be calculated by adding the sums.
  • the coordinate conversion unit 3125 converts the position Rz′(2D) at that time (that is, the position to which the calculated amount of change ⁇ Rz(2D) has already been added).
  • a new position Rz′(2D) may be calculated by adding the newly calculated amount of change ⁇ Rz(2D) to Rz(2D)).
  • the coordinate transformation unit 3125 calculates the amount of change ⁇ Rz(2D) to be added to the position Rz(2D) to calculate the position Rz′(2D). By resetting the total sum and successively adding the amount of change ⁇ Rz(2D) newly calculated after the position Rz(2D) was newly calculated to the newly calculated position Rz(2D), the position Rz'(2D) may be calculated.
  • the coordinate transformation unit 3125 transforms the position Tx' (2D), the position Ty' (2D), the position Tz' (3D), the position Rx' (3D), the position Ry' (3D), and the position Rz' (2D). Based on this, the position Tx, position Ty, position Tz, position Rx, position Ry, and position Rz of the workpiece W in the global coordinate system are calculated. Specifically, first, the coordinate transformation unit 3125 converts the position Tx' (2D), the position Ty' (2D), the position Tz' (3D), the position Rx' (3D), the position Ry' (3D) and the position Rz ' (2D) to a position in a common coordinate system, which is either a 2D imaging coordinate system or a 3D imaging coordinate system. However, any coordinate system different from the 2D imaging coordinate system and the 3D imaging coordinate system may be used as the common coordinate system.
  • the coordinate transformation unit 3125 does not have to transform the position Tx' (2D), the position Ty' (2D), and the position Rz' (2D).
  • the coordinate transformation unit 3125 transforms the position Tz' (3D), the position Rx' (3D), and the position Ry' (3D) into the position Tz' (2D) in the Z-axis direction (2D) of the 2D imaging coordinate system, Transform into a position Rx' (2D) in the direction of rotation about the X-axis (2D) of the 2D imaging coordinate system and a position Ry' (2D) in the direction of rotation about the Y-axis (2D) of the 2D imaging coordinate system.
  • the coordinate transformation unit 3125 uses the transformation matrix M32 for transforming the position in the 3D imaging coordinate system into the position in the 2D imaging coordinate system to convert the position Tz′ (3D), the position Rx′ (3D) and the position Ry' (3D) may be transformed into position Tz' (2D), position Rx' (2D) and position Ry' (2D).
  • the transformation matrix M32 can be calculated from the positional relationship between the imaging devices 21 and 22 as described above.
  • the accuracy of the position Tx' (2D), the position Ty' (2D), and the position Rz' (2D) is relatively high. Furthermore, as already mentioned above, the accuracy of the position Tz' (3D), the position Rx' (3D) and the position Ry' (3D) is relatively high. As a result, the accuracy of position Tz' (2D), position Rx' (2D) and position Ry' (2D) transformed from position Tz' (3D), position Rx' (3D) and position Ry' (3D) is also Also relatively high.
  • the accuracy of the 6DOF (Degree of Freedom) position of the workpiece W within the 2D imaging coordinate system (within the common coordinate system) used by the coordinate transformation unit 3125 to calculate the position of the workpiece W within the global coordinate system is , relatively high.
  • the control device 3 can calculate the position of the workpiece W within the global coordinate system with high accuracy using the 6DOF position of the workpiece W within the highly accurate 2D imaging coordinate system as described above. .
  • the control device 3 controls the position Tx (2D) and the amount of change ⁇ Tx (2D), the position Ty (2D) and the amount of change ⁇ Ty (2D), the position Tz (3D) and the amount of change ⁇ Tz (3D), the position Rx (3D) and amount of change ⁇ Rx (3D), position Ry (3D) and amount of change ⁇ Ry (3D), and position Rz (2D) and amount of change ⁇ Rz (2D) within the global coordinate system position Tx (2D) and amount of change ⁇ Tx (2D), position Ty (2D) and amount of change ⁇ Ty (2D), position Tz (3D) and amount of change ⁇ Tz (3D), position Rx ( 3D) and amount of change ⁇ Rx (3D), position Ry (3D) and amount of change ⁇ Ry (3D), and position R
  • position Tz' (3D), position Rx' (3D), and position Ry' (3D) are already positions in the 3D imaging coordinate system. is shown. Therefore, the coordinate transformation unit 3125 does not have to transform the position Tz' (3D), the position Rx' (3D) and the position Ry' (3D).
  • the coordinate transformation unit 3125 transforms the position Tx' (2D), the position Ty' (2D), and the position Rz' (2D) into the position Tx' ( 3D), the position Ty′ (3D) in the Y-axis direction (3D) of the 3D imaging coordinate system, and the position Rz′ (3D) in the rotation direction around the Z-axis (3D) of the 3D imaging coordinate system.
  • the coordinate transformation unit 3125 uses the transformation matrix M23 for transforming the position in the 2D imaging coordinate system into the position in the 3D imaging coordinate system to convert the position Tx′ (2D), the position Ty′ (2D) and the position Rz' (2D) may be transformed into position Tx' (3D), position Ty' (3D) and position Rz' (3D).
  • the transformation matrix M23 can be calculated from the positional relationship between the imaging devices 21 and 22 as described above.
  • the transformation matrix M23 may be an inverse matrix of the transformation matrix M32 described above.
  • the accuracy of the position Tz' (3D), the position Rx' (3D) and the position Ry' (3D) is relatively high. Furthermore, as already mentioned above, the position Tx' (2D), the position Ty' (2D) and the position Rz' (2D) are relatively accurate. As a result, the accuracy of the position Tx' (3D), the position Ty' (3D) and the position Rz' (3D) transformed from the position Tx' (2D), the position Ty' (2D) and the position Rz' (2D) is also Also relatively high. Therefore, the accuracy of the 6DOF position of the work W within the 3D imaging coordinate system used by the coordinate transformation unit 3125 to calculate the position of the work W within the global coordinate system is relatively high.
  • the control device 3 can highly accurately calculate the position of the workpiece W within the global coordinate system using the 6DOF position of the workpiece W within the highly accurate 3D imaging coordinate system as described above. .
  • the control device 3 controls the position Tx (2D) and the amount of change ⁇ Tx (2D), the position Ty (2D) and the amount of change ⁇ Ty (2D), the position Tz (3D) and the amount of change ⁇ Tz (3D), the position Rx (3D) and amount of change ⁇ Rx (3D), position Ry (3D) and amount of change ⁇ Ry (3D), and position Rz (2D) and amount of change ⁇ Rz (2D) within the global coordinate system position Tx (2D) and amount of change ⁇ Tx (2D), position Ty (2D) and amount of change ⁇ Ty (2D), position Tz (3D) and amount of change ⁇ Tz (3D), position Rx ( 3D) and amount of change ⁇ Rx (3D), position Ry (3D) and amount of change ⁇ Ry (3D), and global
  • the imaging devices 21 and 22 may be arranged so that the origin of the 2D imaging coordinate system is as close as possible to the origin of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the X-axis (2D) of the 2D imaging coordinate system is as close as possible to the X-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Y-axis (2D) of the 2D imaging coordinate system is as close as possible to the Y-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Z axis (2D) of the 2D imaging coordinate system is as close as possible to the Z axis (3D) of the 3D imaging coordinate system.
  • the position Tz' (2D), the position Rx '(2D) and position Ry' (2D) are more likely to remain relatively accurate.
  • the position Tx' (3D), the position Ty '(3D) and position Rz'(3D) are more likely to remain relatively accurate.
  • the coordinate transformation unit 3125 performs position Tx' (2D), position Ty' (2D), position Tz' (3D), position Rx' (3D), position Ry' (3D) and position Rz After calculating '(2D), position Tx' (2D), position Ty' (2D), position Tz' (3D), position Rx' (3D), position Ry' (3D) and position Rz' (2D) to a position in the common coordinate system.
  • the coordinate transformation unit 3125 transforms the position Tx (2D), the position Ty (2D), the position Tz (3D), the position Rx (3D), the position Ry (3D), and the position Rz (2D) into You can convert to position.
  • the coordinate transformation unit 3125 converts the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (2D). may be transformed into a variation in the common coordinate system.
  • the coordinate transformation unit 3125 transforms the position Tx(2D), the position Ty(2D) and the position Rz(2D) into the change amount ⁇ Tx(2D), the change amount ⁇ Ty(2D) and the change amount ⁇ Rz(2D). You don't have to.
  • the coordinate transformation unit 3125 transforms the position Tz(3D), the position Rx(3D), and the position Ry(3D) into the position Tz(2D_conv), the position Rx(2D_conv ) and position Ry(2D_conv).
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) into the amount of change ⁇ Tz (2D_conv) within the 2D imaging coordinate system, which is the common coordinate system, It may be converted into the amount of change ⁇ Rx(2D_conv) and the amount of change ⁇ Ry(2D_conv).
  • the coordinate transformation unit 3125 may perform the transformation described above using a transformation matrix M32 for transforming a position within the 3D imaging coordinate system into a position within the 2D imaging coordinate system. After that, the coordinate transformation unit 3125 converts the position Tx (2D), the position Ty (2D), the position Tz (2D_conv), the position Rx (2D_conv), the position Ry (2D_conv), the position Rz (2D), the change amount ⁇ Tx (2D ), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D_conv), the amount of change ⁇ Rx (2D_conv), the amount of change ⁇ Ry (2D_conv), and the amount of change ⁇ Rz (2D), the position Tx′ (2D), the position Ty '(2D), position Tz' (2D), position Rx' (2D), position Ry' (2D) and position Rz' (2D) may be calculated.
  • a transformation matrix M32 for transforming a position within the 3D imaging coordinate system into a position
  • the coordinate transformation unit 3125 may calculate the position Tx'(2D) by correcting the position Tx(2D) based on the amount of change ⁇ Tx(2D).
  • the coordinate transformation unit 3125 may calculate the position Ty'(2D) by correcting the position Ty(2D) based on the amount of change ⁇ Ty(2D).
  • the coordinate conversion unit 3125 may calculate the position Tz'(2D) by correcting the position Tz(2D_conv) based on the amount of change ⁇ Tz(2D_conv).
  • the coordinate conversion unit 3125 may calculate the position Rx'(2D) by correcting the position Rx(2D_conv) based on the amount of change ⁇ Rx(2D_conv).
  • the coordinate conversion unit 3125 may calculate the position Ry'(2D) by correcting the position Ry(2D_conv) based on the amount of change ⁇ Ry(2D_conv).
  • the coordinate transformation unit 3125 may calculate the position Rz'(2D) by correcting the position Rz(2D) based on the amount of change ⁇ Rz(2D).
  • position Tz (3D), position Rx (3D), and position Ry (3D) already indicate positions within the 3D imaging coordinate system.
  • the amount of change ⁇ Tz(3D), the amount of change ⁇ Rx(3D), and the amount of change ⁇ Ry(3D) already indicate the amount of change within the 3D imaging coordinate system. Therefore, the coordinate transformation unit 3125 transforms the position Tz (3D), the position Rx (3D), and the position Ry (3D) into the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D). You don't have to.
  • the coordinate conversion unit 3125 converts the position Tx (2D), the position Ty (2D), and the position Rz (2D) into the position Tx (3D_conv), the position Ty (3D_conv) within the 3D imaging coordinate system, which is the common coordinate system. ) and position Rz(3D_conv).
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty(2D), and the amount of change ⁇ Rz(2D) into the amount of change ⁇ Tx(3D_conv) within the 3D imaging coordinate system, which is the common coordinate system, It may be converted into the amount of change ⁇ Ty(3D_conv) and the amount of change ⁇ Rz(3D_conv).
  • the coordinate transformation unit 3125 may perform the transformation described above using a transformation matrix M32 for transforming a position within the 2D imaging coordinate system into a position within the 3D imaging coordinate system.
  • the coordinate transformation unit 3125 converts the position Tx (3D_conv), the position Ty (3D_conv), the position Tz (3D), the position Rx (3D), the position Ry (3D) and the position Rz (3D_conv) into the change amount ⁇ Tx (3D_conv ), the amount of change ⁇ Ty (3D_conv), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D_conv), the position Tx′ (3D), the position Ty '(3D), position Tz' (3D), position Rx' (3D), position Ry' (3D) and position Rz' (3D) may be calculated.
  • the coordinate conversion unit 3125 may calculate the position Tx'(3D) by correcting the position Tx(3D_conv) based on the amount of change ⁇ Tx(3D_conv).
  • the coordinate conversion unit 3125 may calculate the position Ty'(3D) by correcting the position Ty(3D_conv) based on the amount of change ⁇ Ty(3D_conv).
  • the coordinate transformation unit 3125 may calculate the position Tz'(3D) by correcting the position Tz(3D) based on the amount of change ⁇ Tz(3D).
  • the coordinate transformation unit 3125 may calculate the position Rx′(3D) by correcting the position Rx(3D) based on the change amount ⁇ Rx(3D).
  • the coordinate transformation unit 3125 may calculate the position Ry'(3D) by correcting the position Ry(3D) based on the amount of change ⁇ Ry(3D).
  • the coordinate conversion unit 3125 may calculate the position Rz'(3D) by correcting the position Rz(3D_conv) based on the amount of change ⁇ Rz(3D_conv).
  • the coordinate conversion unit 3125 converts the 6DOF of the work W within the global coordinate system based on the 6DOF position of the work W within the 2D imaging coordinate system or the 6DOF position of the work W within the 3D imaging coordinate system. Calculate the position. That is, the coordinate conversion unit 3125 converts the position Tx, position Ty, position Tz, position Rx, position Ry and position Rz are calculated.
  • the coordinate transformation unit 3125 uses a transformation matrix M for transforming a position within the 2D imaging coordinate system or the 3D imaging coordinate system to a position within the global coordinate system to convert the 6DOF of the work W within the 2D imaging coordinate system. or the 6DOF position of the work W within the 3D imaging coordinate system may be transformed into the 6DOF position of the work W within the global coordinate system.
  • Transformation matrix M may include, for example, a product of transformation matrices that reflect changes in the position coordinates of imaging device 21 or 22 due to rotation of link 121 about the axis defined by each joint 122 of robot arm 12. .
  • This transformation matrix may be a so-called rotation matrix, a rotation matrix containing a translation component, or a matrix based on Euler angles.
  • an existing transformation method may be used, so a detailed description thereof will be omitted.
  • control device 3 controls the position Tx (2D), the position Ty (2D ) and position Rz (2D), and relatively high-precision change amount ⁇ Tx (2D), change amount ⁇ Ty (2D), and change amount ⁇ Rz (2D) among the change amounts of 6DOF calculated by the 2D tracking unit 3123.
  • the position of the workpiece W in the global coordinate system is calculated using the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D), which have relatively high accuracy. For this reason, the difference in the accuracy of the 6DOF positions calculated by the 2D matching unit 3121 and the 3D matching unit 3122 is not considered, and the accuracy of the 6DOF change amount calculated by the 2D tracking unit 3123 and the 3D tracking unit 3124 is not considered.
  • the control device 3 can calculate the position of the workpiece W in the global coordinate system with high accuracy as compared with the case where the position of the workpiece W in the global coordinate system is calculated without considering the difference.
  • control device 3 corrects the result of the 2D matching process based on the result of the 2D tracking process, and corrects the result of the 3D matching process based on the result of the 3D tracking process, so that the workpiece in the global coordinate system
  • the position of W is calculated. Therefore, as described above, compared to the case where the position of the workpiece W in the global coordinate system is calculated based on the results of the 2D matching processing and the 3D matching processing without using the results of the 2D tracking processing and the 3D tracking processing.
  • the control device 3 can calculate the position of the workpiece W in the global coordinate system at a shorter period (that is, at a higher frequency). That is, the position calculator 312 can calculate the position of the workpiece W in the global coordinate system at a higher speed.
  • control device 3 can generate (that is, update) control signals and output them to the robot 1 at a higher frequency. It can also be said that the control device 3 can generate (update) the control signal at a higher speed and output it to the robot 1 .
  • control device 3 may generate a control signal each time the position of the workpiece W is calculated.
  • the control device 3 can generate the control signal in the same cycle as the cycle in which the position of the workpiece W is calculated (for example, the 2D tracking cycle or the 3D tracking cycle described above).
  • the control device 3 can output the control signal to the robot 1 in the same period as the period in which the position of the workpiece W is calculated (for example, the 2D tracking period or the 3D tracking period described above).
  • the control device 3 may calculate the workpiece W
  • the control signal is generated and output in the same period as the 2D matching period or 3D matching period (typically, a period shorter than the 2D tracking period or 3D tracking period), which is the period in which the position of is calculated. . Therefore, in this embodiment, the control device 3 can generate (that is, update) the control signal more frequently (faster) and output it to the robot 1 as compared with this case. Note that the control device 3 may generate and output the control signal in a period different from the period in which the position of the workpiece W is calculated (for example, in a period different from the above-described 2D tracking period or 3D tracking period). .
  • Such an effect is especially beneficial when at least one of the robot 1 and the work W is moving. This is because the lower the frequency of calculation of the position of the work W under the condition that at least one of the robot 1 and the work W is moving, the more the position of the work W calculated by the control device 3 and the actual position of the work W will be different. This is because the period during which the degree of divergence is large becomes longer.
  • the control device 3 calculates the position of the workpiece W in the global coordinate system more frequently (faster). and the degree of divergence becomes relatively small. Therefore, the control device 3 can calculate the position of the work W with high accuracy by calculating the position of the work W at a high frequency.
  • control device 3 appropriately generates (that is, updates) a control signal for controlling the robot 1 so as to perform desired processing on the workpiece W whose position is calculated with high accuracy and at high frequency. and output to the robot 1.
  • the possibility that the motion of the robot 1 will be different from the intended motion is reduced.
  • the robot 1 grabs a moving workpiece W as shown in FIG. (ie, generate and output robot control signals). Therefore, even if the movement of the robot 1 deviates from the desired movement for following the moving workpiece, the movement of the robot 1 is corrected at high frequency (high speed) in accordance with the calculation cycle of the position of the workpiece W. be done. As an example, even if the movement of the moving work W is irregular, the movement of the robot 1 is corrected at high frequency (high speed) according to the irregular movement of the work W. As another example, even if the work W moves at high speed, the movement of the robot 1 is corrected at high frequency (high speed) in accordance with the high-speed movement of the work.
  • the robot 1 can follow the moving workpiece W while reducing unnecessary movements.
  • the robot 1 can grip the moving workpiece W while reducing unnecessary movements.
  • the robot 1 can move with respect to a target object such as a work W while reducing wasteful movements.
  • the robot 1 since the position of the target object such as the work W is calculated with high frequency, the possibility of the target object such as the work W falling out of the imaging field of the imaging unit 2 is reduced. Therefore, the robot 1 can move accurately and at high speed with respect to the target object such as the work W (for example, accurately and at high speed follow the target object such as the work W) without losing sight of the target object such as the work W.
  • the end effector 13 can perform desired processing on the target object such as the work W.
  • the robot 1 approaches the target object such as the work W accurately and at high speed, and the end effector 13 performs desired processing on the target object such as the work W. It can be performed.
  • the control device 3 uses the workpiece intermediately calculated in the process of calculating the position of the workpiece W within the global coordinate system.
  • the first method considers the difference in the accuracy of the 6DOF position and variation of W, and the method corrects the results of the 2D matching process and the 3D matching process based on the results of the 2D tracking process and the 3D tracking process, respectively.
  • the second method is adopted. Therefore, the control device 3 can calculate the position of the workpiece W with much higher accuracy than when only one of the first and second methods is employed. However, the control device 3 may employ only one of the first and second methods. Even in this case, the control device 3 can calculate the position of the workpiece W with higher accuracy than when neither of the first and second methods are employed.
  • the control device 3 considers that the amount of change ⁇ Tx(2D) calculated by the 2D tracking process includes an error, and when the position Tx(2D) is newly calculated, may reset the sum of the amount of change Tx(2D) that is added to the position Tx(2D) to calculate the position Tx'(2D). As a result, the control device 3 can calculate the position Tx′(2D) with higher accuracy than when the sum of the amount of change Tx(2D) added to the position Tx(2D) is not reset. .
  • control device 3 calculates the position Ty' (2D), the position Tz' (3D), the position Rx' (3D), the position Ry' (3D) and the position Rz' (2D) with higher accuracy. can do. As a result, the control device 3 can calculate the position of the work W with much higher accuracy.
  • the 2D matching period may temporally overlap the 3D matching period, or the 2D tracking period may temporally overlap the 3D tracking period. good too.
  • the time when the imaging device 21 images the work W for the 2D matching process may be the same as the time when the imaging device 22 images the work W for the 3D matching process.
  • the times t1 and t2 at which the imaging device 21 images the workpiece W for the 3D tracking process may be the same as the times s1 and s2 at which the imaging device 22 images the workpiece W for the 3D tracking process.
  • position Tx' (2D), position Ty' (2D) and position Rz' (2D) calculated from the results of 2D matching processing and 2D tracking processing, and calculated from the results of 3D matching processing and 3D tracking processing
  • the control device 3 determines the position Tx' (2D), the position Ty' (2D), and the position Rz' (2D) of the work W at one time, and the position Tz' (3D) of the work W at one time, Based on the position Rx' (3D) and the position Ry' (3D), the position of the work W at one time in the global coordinate system can be calculated with much higher accuracy.
  • the controller 3 may determine the workpiece at one time.
  • Position Tx' (2D), position Ty' (2D) and position Rz' (2D) of W, and position Tz' (3D) and position Rx' (3D) of workpiece W at another time different from one time and the position Ry' (3D) there is the possibility to calculate the position of the workpiece W at one time or the other.
  • the position of the work W at one time may differ from the position of the work W at another time.
  • the control device 3 receives the work image data from the imaging device 21.
  • Work image data IMG_3D can be obtained from the imaging device 22 at the same time that IMG_2D is obtained. Therefore, the imaging device 21 for generating the work image data IMG_2D and the imaging device 22 for generating the work image data IMG_3D are not prepared separately (for example, a single unit for generating the work image data IMG_2D and IMG_3D).
  • the acquisition frequency of workpiece image data IMG_2D and IMG_3D is higher than in the case where one imaging device) is prepared.
  • the control device 3 appropriately generates (that is, updates) the control signal for controlling the robot 1 so as to perform desired processing on the workpiece W whose position is frequently calculated. and output to the robot 1.
  • FIG. 18 is a block diagram showing the configuration of the control device 3a in the first modified example.
  • the control device 3a in the first modified example differs from the control device 3 described above in that the arithmetic device 31 includes a preprocessing unit 314a as a logical processing block.
  • the preprocessing unit 314a performs preprocessing before matching processing and tracking processing are performed.
  • Other features of the control device 3 a may be identical to other features of the control device 3 .
  • the pre-processing unit 314a may perform pre-processing on the workpiece shape data WSD generated by the shape data generation unit 311.
  • the 3D matching unit 3122 may perform the 3D matching process using the preprocessed work shape data WSD.
  • the 3D tracking unit 3124 may perform 3D tracking processing using two pieces of work shape data WSD that have been preprocessed respectively.
  • the pre-processing performed on the work shape data WSD may include data deletion processing for deleting a part of the data portion of the work shape data WSD.
  • the work shape data WSD may include not only a data portion indicating the shape of the work W, but also a data portion indicating the shape of an object different from the work W (that is, an object different from the target object). have a nature.
  • the work shape data WSD is generated from the work image data IMG_3D generated by the imaging device 22 imaging the work W placed on the mounting device 4
  • the work shape data WSD is generated by the mounting device It may contain a data portion that indicates the shape of 4. Therefore, as shown in FIG. 19, the preprocessing unit 314a may delete the data portion indicating the shape of the mounting device 4 from the workpiece shape data WSD.
  • the mounting surface of the mounting device 4 on which the workpiece W is mounted may be flat.
  • the preprocessing unit 314a may perform plane removal processing, which is an example of data deletion processing, on the workpiece shape data WSD.
  • plane removal process include at least one of plane removal process using RANSAC (Random Sample Consensus) and plane removal process using the least squares method.
  • Such data deletion processing reduces the data size of the workpiece shape data WSD.
  • the amount of calculation required for the 3D matching process using the workpiece shape data WSD and the amount of calculation required for the 3D tracking process using the workpiece shape data WSD are reduced. Therefore, the 3D matching cycle, which is the time required for the 3D matching unit 3122 to complete the 3D matching process, and the 3D tracking cycle, which is the time required for the 3D tracking unit 3124 to complete the 3D tracking process, can be shortened.
  • the position calculation unit 312 mistakenly regards the data portion indicating the shape of an object different from the work W (that is, an object different from the target object) as the data portion indicating the shape of the work W. less likely to be recognized. This is because the data portion indicating the shape of the object different from the workpiece W, which may become noise in the tracking processing and matching processing described above, is deleted. Therefore, the position calculator 312 can appropriately recognize the data portion indicating the shape of the workpiece W.
  • FIG. For example, when the workpiece shape data WSD is point cloud data, the position calculator 312 can recognize the point cloud regarding the workpiece W appropriately.
  • the position calculation unit 312 can recognize depth information about the work W appropriately. As a result, the position detection unit 312 can calculate the position of the workpiece W with higher accuracy than when the data deletion process is not performed.
  • the pre-processing unit 314a extracts an object different from the work W from the work shape data WSD based on a user's instruction to designate a data portion indicating a shape of an object different from the work W in the work shape data WSD. may be deleted.
  • the control device 3 uses an output device 35 including a display device to designate a part of the work shape data WSD as a data portion indicating the shape of an object different from the work W.
  • a user-operable GUI may be displayed for this purpose.
  • the control device 3 uses the output device 35 including a display device to display a plurality of points indicated by the point cloud data, which is an example of the work shape data WSD, and select an object different from the work W among the plurality of points.
  • a user-operable GUI may be displayed to designate a point indicating the shape of the .
  • the control device 3 uses an output device 35 including a display device to display a depth image indicated by depth image data, which is an example of the work shape data WSD, and to display the shape of an object different from the work W in the depth image.
  • a user-operable GUI may be displayed to specify the pixel indicating the .
  • the preprocessing unit 314a may perform preprocessing on at least one of the workpiece image data IMG_2D and IMG_3D.
  • the 2D matching unit 3121 may perform 2D matching processing using preprocessed workpiece image data IMG_2D.
  • the 2D tracking unit 3123 may perform 2D tracking processing using two preprocessed workpiece image data IMG_2D.
  • the shape data generation unit 311 may generate the work shape data WSD using the preprocessed work image data IMG_3D.
  • the 3D matching unit 3122 may perform 3D matching processing using work shape data WSD generated from preprocessed work image data IMG_3D.
  • the 3D tracking unit 3124 may perform 3D tracking processing using two pieces of work shape data WSD generated from two pieces of work image data IMG_3D that have been preprocessed.
  • the pre-processing performed on at least one of the workpiece image data IMG_2D and IMG_3D may include gamma correction processing.
  • the gamma correction process adjusts the contrast of the work image data IMG_2D (or work image data IMG_3D) to emphasize the edge of the work W appearing in the work image data IMG_2D (or work image data IMG_3D). may include processing.
  • At least one of the imaging devices 21 and 22 may be capable of automatically adjusting exposure.
  • the imaging unit 2 may be provided with a photometric device 24a capable of measuring the brightness (that is, luminance) of the workpiece W. .
  • At least one of the imaging devices 21 and 22 may automatically adjust the exposure based on the measurement results of the photometric device 24a.
  • at least one of the imaging devices 21 and 22, in addition to or in place of the measurement result of the photometric device 24a obtains the luminance values (for example, multiple The exposure may be automatically adjusted based on the average luminance value of the pixels).
  • At least one of the imaging devices 21 and 22 may automatically adjust the exposure so that the luminance value of the work image data IMG_2D (or work image data IMG_3D) falls within a desired range.
  • the contrast of the work image data IMG_2D (or the work image data IMG_3D) is increased by the gamma correction process so as to emphasize the edge of the work W reflected in the work image data IMG_2D (or the work image data IMG_3D). can be properly adjusted.
  • the pre-processing performed on at least one of the work image data IMG_2D and IMG_3D may include high dynamic range synthesis processing.
  • a plurality of work image data IMG_2D (or a plurality of work image data IMG_3D) generated by imaging the work W under a plurality of imaging environments with different exposures are synthesized.
  • processing for generating work image data IMG_2D (or work image data IMG_3D) having a wide dynamic range with little blown-out highlights or blocked-up shadows may be included.
  • the pre-processing performed on at least one of the work image data IMG_2D and IMG_3D may include noise removal processing. As shown in FIG. 22, the noise removal process removes noise contained in the work image data IMG_2D (or work image data IMG_3D) to obtain work image data IMG_2D (or work image data IMG_3D) with less noise. ) may be generated.
  • the pre-processing unit 314a may perform known filter processing on at least one of the work image data IMG_2D and IMG_3D as the noise removal processing. For example, the preprocessing unit 314a may perform at least one filtering process of an averaging filter, a median filter, and an expansion filter on at least one of the work image data IMG_2D and IMG_3D.
  • the preprocessing unit 314a may perform known filter processing on at least one of the work image data IMG_2D and IMG_3D in addition to the noise removal processing.
  • the preprocessing unit 314a may perform at least one of a smoothing filter and an edge enhancement filter on at least one of the work image data IMG_2D and IMG_3D.
  • FIG. 23 is a block diagram showing the configuration of the robot system SYS in the second modified example.
  • robot system SYSb the second modified example of robot system SYS is called "robot system SYSb" to distinguish it from robot system SYS described above.
  • the robot system SYSb in the second modified example may differ from the robot system SYS described above in that it includes an imaging unit 2b instead of the imaging unit 2.
  • Other features of the robot system SYSb may be the same as other features of the robot system SYS.
  • the imaging unit 2b in the second modified example differs from the imaging unit 2 described above in that it includes an illumination device 24b, a filter 25b, and a filter 26b. Other features of the imaging unit 2b may be the same as other features of the imaging unit 2b.
  • the illumination device 24b is a device capable of irradiating the workpiece W with illumination light.
  • the illumination device 24b is a device capable of illuminating the work W with the illumination light by irradiating the work W with the illumination light.
  • the illumination device 24b may illuminate the work W with illumination light containing light components in the second wavelength band (for example, the wavelength band of red light).
  • the projection light with which the projection device 23 irradiates the workpiece W includes a light component in a first wavelength band (for example, a wavelength band of blue light) different from the second wavelength band. You may
  • the projection device 23 is a device that projects a desired projection pattern onto the work W by irradiating the work W with projection light.
  • the projection device 23 may be regarded as illuminating the workpiece W with projection light. That is, the projection device 23 may be regarded as an illumination device that illuminates the workpiece W with projection light. As described above, when the projection device 23 is regarded as an illumination device, the projection light may not be light capable of projecting a desired projection pattern onto the target object.
  • the filter 25b can attenuate the light component in the first wavelength band.
  • the image capturing device 21 captures an image of the work W by receiving the light from the work W with the image sensor through the filter 25b.
  • the filter 25b attenuates the projection light. Therefore, return light (for example, at least one of reflected light and scattered light of the projection light) from the workpiece W irradiated with the projection light (that is, on which the projection pattern is projected) is attenuated by the filter 25b.
  • the image pickup device 21 is affected by the projection light emitted from the projection device 23.
  • the work W illuminated by the illumination light emitted from the illumination device 24b can be properly imaged without receiving the light.
  • the filter 26b can attenuate the optical components in the second wavelength band.
  • the image capturing device 22 captures an image of the work W (in other words, a projection pattern projected onto the work W) by receiving light from the work W with the image sensor through the filter 26b.
  • the filter 26b attenuates the illumination light because the illumination light contains light components in the second wavelength band. Therefore, return light (for example, at least one of reflected light and scattered light of the illumination light) from the workpiece W irradiated with the illumination light from the illumination device 24b is attenuated by the filter 26b.
  • the imaging device 22 can detect the illumination light emitted from the illumination device 24b.
  • the workpiece W illuminated by the projection light emitted from the projection device 23 (in other words, the projection pattern projected onto the workpiece W) can be properly imaged without being affected.
  • the imaging device 21 can image the work W without being affected by the imaging of the work W (projection pattern projected onto the work W) by the imaging device 22 .
  • the imaging device 22 can image the work W (the projection pattern projected onto the work W) without being affected by the imaging of the work W by the imaging device 21 . Therefore, the imaging devices 21 and 22 can image the work W at the same time. That is, even if the time when the imaging device 21 images the work W and the time when the imaging device 22 images the work W (the projection pattern projected onto the work W) are the same, each of the imaging devices 21 and 22 , the workpiece W can be imaged properly.
  • FIG. 24 is a side view showing the appearance of the robot system SYS in the third modified example.
  • robot system SYSc the third modification of the robot system SYS is referred to as "robot system SYSc" to distinguish it from the robot system SYS described above.
  • the robot system SYSc in the third modification differs from the robot system SYS described above in that the positional relationships between the robot arm 12 and the imaging devices 21 and 22 are changed.
  • Other features of the robot system SYSc may be the same as other features of the robot system SYS.
  • the imaging device 22 may be attached at a position farther from the robot arm 12 than the position at which the imaging device 21 is attached.
  • the imaging devices 21 and 22 may be attached to the robot arm 12 such that the distance from the imaging device 22 to the robot arm 12 is longer than the distance from the imaging device 21 to the robot arm 12 .
  • the imaging device 22 may be attached at a position farther from the end effector 13 than the position at which the imaging device 21 is attached.
  • the imaging devices 21 and 22 may be attached to the robot arm 12 such that the distance from the imaging device 22 to the end effector 13 is longer than the distance from the imaging device 21 to the end effector 13 .
  • the imaging devices 21 and 22 may be attached to the robot arm 12 via the support member 15c.
  • the imaging device 21 may be attached to the first portion of the support member 15c.
  • the imaging device 22 may be attached to a second portion of the support member 15c that is farther from the robot arm 12 than the first portion.
  • the imaging device 22 may be attached to a second portion of the support member 15c that is farther from the end effector 13 than the first portion.
  • the imaging device 21 is more likely to be able to capture an image of the work W from the space directly above the work W or the vicinity of the space, compared to the imaging device 22 . This is because when the end effector 13 performs a predetermined process on the work W, there is a high possibility that the end effector 13 will be positioned right above the work W. This is because there is a high possibility that the image capturing device 21 that is used can also capture an image of the work W from the space directly above the work W or the vicinity of the space.
  • the imaging device 21 When the imaging device 21 images the work W from the space directly above the work W or the vicinity of the space, the imaging device 21 detects that the Z axis (2D) of the 2D imaging coordinate system intersects the upper surface of the work W at an angle of There is a high possibility that the workpiece W can be imaged in a state close to 90 degrees. As a result, the control device 3 extracts the position Tx(2D), the position Ty(2D), and the position Rz(2D) from the workpiece image data IMG_2D, and the amount of change ⁇ Tx(2D), the amount of change ⁇ Ty(2D), and The amount of change ⁇ Rz(2D) can be calculated with higher accuracy.
  • the imaging device 21 can generate work image data IMG_2D representing an image in which the work W with little upper surface distortion is reflected. For this reason, compared to the case of using the workpiece image data IMG_2D representing an image in which the workpiece W whose upper surface is highly distorted is reflected, the control device 3 controls the workpiece W under the condition in which the mark is formed on the upper surface of the workpiece W.
  • the marks formed on the upper surface of the workpiece W can be appropriately recognized from the image data IMG_2D.
  • the control device 3 can accurately perform the process using the mark. For example, when the control device 3 performs a process of calculating the position of the work W based on the position of the mark as the process using the mark, the control device 3 can calculate the position of the work W more accurately. can be done.
  • the imaging device 22 is more likely to be able to capture an image of the work W from a space obliquely above the work W. As a result, the imaging device 22 is more likely to be able to image not only the top surface of the work W but also the side surface of the work W (or any surface other than the top surface).
  • the workpiece shape data WSD generated from the workpiece image data IMG_3D indicates not only the three-dimensional shape of the top surface of the workpiece W, but also the three-dimensional shape of the side surface (or any surface other than the top surface) of the workpiece W. more likely. Therefore, it is possible to generate work shape data WSD in which the three-dimensional shape of the work W is more appropriately reflected.
  • the 3D matching unit 3122 and The 3D tracking unit 3124 can easily identify the sides and vertices of the work W as the feature points of the work W (for example, at least one of feature points and edges). As a result, the control device 3 can perform each of the 3D matching process and the 3D tracking process more appropriately.
  • the projection device 23 described above may be provided on the support member 15 c or the robot arm 12 . Also, the projection device 23 described above may be provided at a location different from the support member 15 c or the robot arm 12 .
  • the lighting device 24b described above may be provided on the support member 15c or the robot arm 12.
  • FIG. The illumination device 24b described above may be provided at a location different from the support member 15c or the robot arm 12.
  • the robot arm 12 is attached with an end effector 13 (for example, a hand gripper) that performs at least one of the gripping process, the placement process, and the fitting process.
  • an end effector 13 for example, a hand gripper
  • the end effector 13 is not limited to a device that performs at least one of the gripping process, the placement process, and the fitting process, and may be a device that performs other processes on the target object such as the workpiece W.
  • the robot arm 12 may be attached with a processing device for processing the workpiece W, which is an example of the end effector 13 .
  • the processing device performs at least one of additional processing of adding a new shaped object to the work W, removal processing of removing a part of the work W, welding processing of joining two works W, and cutting processing of cutting the work W. You may do one.
  • the processing device may process the workpiece W using a tool. In this case, a processing device including tools may be attached to the robot arm 12 .
  • the processing apparatus may process the work W by irradiating the work W with an energy beam (for example, light, electromagnetic wave, and charged particle beam).
  • an energy beam for example, light, electromagnetic wave, and charged particle beam
  • a processing device including an irradiation device that irradiates the workpiece W with an energy beam may be attached to the robot arm 12 .
  • a processing device as an example of the end effector 13 may perform a soldering process for soldering components to the workpiece W.
  • the processing device may solder the component to the work W using a soldering iron.
  • a processing device including a soldering iron may be attached to the robot arm 12 .
  • the processing apparatus may solder the component to the work W by irradiating the solder with an energy beam (eg, light, electromagnetic wave, and charged particle beam).
  • an energy beam eg, light, electromagnetic wave, and charged particle beam
  • a processing device including an irradiation device that irradiates the workpiece W with an energy beam may be attached to the robot arm 12 .
  • the robot arm 12 may be attached with a measuring device for measuring the workpiece W, which is an example of the end effector 13 .
  • the measuring device may be capable of measuring the characteristics of the workpiece W. At least one of the shape of the work W, the size of the work W, and the temperature of the work W is given as an example of the characteristics of the work W.
  • the measuring device may measure the workpiece W using a touch probe. In this case, a measuring device including a touch probe may be attached to the robot arm 12 .
  • the measuring device may measure the workpiece W by irradiating the workpiece W with an energy beam (for example, light, electromagnetic wave, and charged particle beam). In this case, a measuring device including an irradiation device that irradiates the workpiece W with an energy beam may be attached to the robot arm 12 .
  • an energy beam for example, light, electromagnetic wave, and charged particle beam
  • the control device 3 When at least one of a processing device and a measuring device as an example of the end effector 13 is attached to the robot arm 12, the control device 3 outputs a control signal for controlling the operation of at least one of the processing device and the measuring device. may be generated.
  • the control device 3 may generate a control signal for controlling rotation of a tool included in the processing device.
  • the control device 3 may generate a control signal for controlling on/off of the energy beam by the irradiation device provided in at least one of the processing device and the measurement device.
  • the imaging unit 2 includes the imaging device 22 and the projection device 23 in order to generate the work image data IMG_3D.
  • the imaging unit 2 does not have to be equipped with the projection device 23 in order to generate the work image data IMG_3D.
  • the imaging device 22 is a stereo camera, and therefore the workpiece shape data representing the shape of the target object such as the workpiece W can be obtained from the two workpiece image data IMG_3D respectively generated by the two imaging elements of the stereo camera. This is because WSD can be generated.
  • the shape data generation unit 311 calculates the parallax by associating each part (for example, each pixel) of the images indicated by the two image data included in the work image data IMG_3D by a known process, Work shape data WSD may be generated by a well-known method based on the principle of triangulation using the calculated parallax.
  • the imaging device 22 does not have to be a stereo camera.
  • the imaging device 22 may be a monocular camera that images a target object such as a workpiece W using a single imaging device.
  • the workpiece W on which the projection pattern is projected is reflected in the image indicated by the workpiece image data IMG_3D.
  • the three-dimensional shape of the work W on which the projection pattern is projected is reflected in the shape of the projection pattern reflected in the image indicated by the work image data IMG_3D. Therefore, even if the imaging device 22 is not a stereo camera, the shape data generator 311 generates the work shape data WSD by a known process based on the projection pattern appearing in the image indicated by the work image data IMG_3D. can be generated.
  • the imaging unit 2 may include either one of the imaging devices 21 and 22 (that is, a single imaging device) and the projection device 23.
  • image data generated by imaging the work W with a single imaging device while the projection device 23 is not projecting the desired projection pattern onto the work W may be used as the work image data IMG_2D. good.
  • image data generated by imaging the work W with a single imaging device while the projection device 23 is projecting a desired projection pattern onto the work W is used as the work image data IMG_3D. good.
  • the position calculator 312 calculates the position of the workpiece W based on the workpiece image data IMG_2D and the workpiece shape data WSD generated from the workpiece image data IMG_3D in step S3 of FIG.
  • the 2D matching unit 3121 performs 2D matching processing to obtain the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx At least one of (2D), position Ry (2D) and position Rz (2D) may be calculated.
  • the 3D matching unit 3122 obtains a position Tx (3D), a position Ty (3D), a position Tz (3D), a position Rx (3D), a position At least one of Ry(3D) and position Rz(3D) may be calculated.
  • the 2D tracking unit 3123 performs 2D tracking processing to obtain the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change At least one of the quantities ⁇ Rz(2D) may be calculated.
  • the 3D tracking unit 3124 performs 3D tracking processing to obtain the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change At least one of the quantities ⁇ Rz(3D) may be calculated.
  • the imaging unit 2 includes either one of the imaging devices 21 and 22 (that is, a single imaging device)
  • the 2D imaging coordinate system and the 3D imaging coordinate system are the same coordinate system. Therefore, it can be said that the 2D matching unit 3121 and the 3D matching unit 3122 calculate the 6DOF position of the workpiece W in the same coordinate system.
  • the 2D tracking unit 3123 and the 3D tracking unit 3124 calculate the amount of change in the 6DOF position of the work W in the same coordinate system.
  • the coordinate transformation unit 3125 may calculate the position of the workpiece W in the global coordinate system by using the result of the 2D matching process, the result of the 3D matching process, the result of the 2D tracking process, and the 3D tracking process. Note that when the 2D imaging coordinate system and the 3D imaging coordinate system are the same coordinate system, the coordinate transformation unit 3125 does not need to perform coordinate transformation using the transformation matrix M32 or M23 described above.
  • the signal generator 313 may generate a robot control signal based on the calculated position of the workpiece W.
  • the imaging unit 2 may include an imaging device 22 that is a stereo camera, but may not include the imaging device 21 .
  • image data generated by capturing an image of the workpiece W by either one of the two monocular cameras included in the imaging device 22 may be used as the workpiece image data IMG_2D.
  • image data representing two images respectively generated by imaging the workpiece W with both of the two monocular cameras provided in the imaging device 22 may be used as the workpiece image data IMG_3D.
  • the position calculator 312 calculates the position of the workpiece W based on the workpiece image data IMG_2D and the workpiece shape data WSD generated from the workpiece image data IMG_3D in step S3 of FIG.
  • the 2D matching unit 3121 performs 2D matching processing to obtain the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx At least one of (2D), position Ry (2D) and position Rz (2D) may be calculated.
  • the 3D matching unit 3122 obtains a position Tx (3D), a position Ty (3D), a position Tz (3D), a position Rx (3D), a position At least one of Ry(3D) and position Rz(3D) may be calculated.
  • the 2D tracking unit 3123 performs 2D tracking processing to obtain the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change At least one of the quantities ⁇ Rz(2D) may be calculated.
  • the 3D tracking unit 3124 performs 3D tracking processing to obtain the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change At least one of the quantities ⁇ Rz(3D) may be calculated.
  • the 2D imaging coordinate system and the 3D imaging coordinate system may be the same coordinate system, or the 2D imaging coordinate system and A coordinate system different from the 3D imaging coordinate system may be used.
  • a coordinate system in which an axis extending along the optical axis of one of the two monocular cameras is the Z axis may be used as each of the 2D imaging coordinate system and the 3D imaging coordinate system.
  • the 2D imaging coordinate system and the 3D imaging coordinate system may be the same coordinate system.
  • a coordinate system in which the axis extending along the optical axis of one of the two monocular cameras is the Z axis is used as the 2D imaging coordinate system
  • the A coordinate system in which the axis extending along the optical axis is the Z-axis may be used as each of the 3D imaging coordinate systems.
  • the 2D imaging coordinate system and the 3D imaging coordinate system may be different coordinate systems.
  • the 2D tracking unit 3123 and the 3D tracking unit 3124 calculate the amount of change in the 6DOF position of the work W in the same coordinate system.
  • the coordinate transformation unit 3125 may calculate the position of the workpiece W in the global coordinate system by using the result of the 2D matching process, the result of the 3D matching process, the result of the 2D tracking process, and the 3D tracking process. Note that when the 2D imaging coordinate system and the 3D imaging coordinate system are the same coordinate system, the coordinate transformation unit 3125 does not need to perform coordinate transformation using the transformation matrix M32 or M23 described above.
  • the signal generator 313 may generate a robot control signal based on the calculated position of the workpiece W.
  • control device 3 (particularly, the shape data generator 311) generates the work shape data WSD from the work image data IMG_3D.
  • a device different from the control device 3 may generate the workpiece shape data WSD from the workpiece image data IMG_3D.
  • the imaging unit 2 that generates the work image data IMG_3D may generate the work shape data WSD from the work image data IMG_3D.
  • the control device 3 may acquire the work shape data WSD from a device different from the control device 3 .
  • the control device 3 may perform at least one of the above-described 3D matching processing and 3D tracking processing using workpiece shape data WSD acquired from a device different from the control device 3 .
  • the control device 3 acquires the workpiece shape data WSD from the imaging unit 2 and performs at least one of the above-described 3D matching processing and 3D tracking processing. You may do one.
  • the coordinate transformation unit 3215 uses the transformation matrix M32 to transform the position Tz′ (3D), the position Rx′ (3D), and the position Ry′. (3D) to position Tz' (2D), position Rx' (2D) and position Ry' (2D).
  • the coordinate transformation unit 3215 may calculate the position Tz' (2D), the position Rx' (2D) and the position Ry' (2D) by the following method.
  • the coordinate transformation unit 3215 calculates the position Tz′ (3D), the position Rx′ (3D), and the position Ry′ (3D), and converts the amount of change ⁇ Tx (3D) to the position Tx (3D ) to calculate the position Tx′ (3D), add the amount of change ⁇ Ty (3D) to the position Ty (3D) to calculate the position Ty′ (3D), and calculate the amount of change ⁇ Rz (3D)
  • the position Rz' (3D) may be calculated by adding to the position Rz (3D).
  • (3D) and the method of calculating the position Rz′ (3D) by adding the change amount ⁇ Rz (3D) to the position Rz (3D) are the already explained change amount ⁇ Tz (3D) Since it may be the same as the method of calculating the position Tz' (3D) by adding it to the position Tz (3D), its detailed description is omitted.
  • the coordinate conversion unit 3215 may calculate the 6DOF position in the 3D imaging coordinate system based on the result of the 3D matching process and the result of the 3D tracking process.
  • the coordinate transformation unit 3215 may then calculate a rigid transformation matrix RTM30 from the 6DOF position in the 3D imaging coordinate system using a well-known method for computing rigid transformation matrices.
  • the coordinate transformation unit 3215 may calculate the transformation matrix TM30 representing the position of 6DOF in the 2D imaging coordinate system by multiplying the rigid body transformation matrix RTM30 and the transformation matrix M32.
  • the coordinate transformation unit 3215 may calculate the 6DOF position in the 2D imaging coordinate system from the calculated transformation matrix TM30 using a well-known method.
  • the coordinate conversion unit 3215 converts the calculated position of 6DOF in the 2D imaging coordinate system into the position in the Z-axis direction (2D) of the 2D imaging coordinate system, the position in the rotation direction around the X-axis (2D) of the 2D imaging coordinate system, and the positions in the rotation direction around the Y-axis (2D) of the 2D imaging coordinate system may be extracted as position Tz' (2D), position Rx' (2D) and position Ry' (2D), respectively.
  • the calculated position Tz'(2D) is calculated based on the results of the 3D matching process and the results of the 3D tracking process.
  • Each component of the 6DOF position in the coordinate system is the position that contributed to the calculation. That is, the calculated position Tz' (2D) includes not only the components of the position Tz' (3D), but also the position Tx' (3D), the position Ty' (3D), the position Rx' (3D), the position Ry' ( 3D) and position Rz'(3D) are also positions that contributed to the calculation.
  • the position Rx′ (2D) and the position Ry′ (2D) are calculated using the rigid transformation matrix, the closer the 2D imaging coordinate system is to the 3D imaging coordinate system, the more the calculated position Rx′ ( 2D) and position Ry' (2D) are more accurate.
  • the imaging devices 21 and 22 may be arranged so that the 2D imaging coordinate system is as close as possible to the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the X-axis (2D) of the 2D imaging coordinate system is as close as possible to the X-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Y-axis (2D) of the 2D imaging coordinate system is as close as possible to the Y-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Z axis (2D) of the 2D imaging coordinate system is as close as possible to the Z axis (3D) of the 3D imaging coordinate system.
  • the coordinate transformation unit 3215 uses the transformation matrix M23 to transform the position Tx′ (2D), the position Ty′ (2D) and Position Rz' (2D) is transformed into position Tx' (3D), position Ty' (3D) and position Rz' (3D).
  • the coordinate transformation unit 3215 may calculate the position Tx' (3D), the position Ty' (3D), and the position Rz' (3D) by the following method.
  • the coordinate transformation unit 3215 calculates the position Tx′ (2D), the position Ty′ (2D), and the position Rz′ (2D), and converts the change amount ⁇ Tz (2D) to the position Tz (2D ) to calculate the position Tz′ (2D), add the amount of change ⁇ Rx (2D) to the position Rx (2D) to calculate the position Rx′ (2D), and calculate the amount of change ⁇ Ry (2D) by
  • the position Ry' (2D) may be calculated by adding to the position Ry (2D).
  • (2D) and the method of calculating the position Ry′ (2D) by adding the change amount ⁇ Ry(2D) to the position Ry(2D)
  • the already explained change amount ⁇ Tx(2D) is Since it may be the same as the method of calculating the position Tx'(2D) by adding to the position Tx(2D), the detailed description thereof is omitted.
  • the coordinate transformation unit 3215 may calculate the 6DOF position in the 2D imaging coordinate system based on the result of the 2D matching process and the result of the 2D tracking process.
  • the coordinate transformation unit 3215 may then calculate the rigid transformation matrix RTM20 from the 6DOF position in the 2D imaging coordinate system using a well-known method for computing rigid transformation matrices.
  • the coordinate transformation unit 3215 may calculate the transformation matrix TM20 representing the position of 6DOF in the 3D imaging coordinate system by multiplying the rigid body transformation matrix RTM20 and the transformation matrix M21.
  • the coordinate transformation unit 3215 may calculate the position of 6DOF in the 3D imaging coordinate system from the calculated transformation matrix TM20.
  • the coordinate conversion unit 3215 converts the calculated 6DOF position in the 3D imaging coordinate system from the position in the X-axis direction (3D) of the 3D imaging coordinate system to the Y-axis direction ( 3D) and the position in the direction of rotation about the Z-axis (3D) of the 3D imaging coordinate system may be extracted as position Tx′ (3D), position Ty′ (3D) and position Rz′ (3D), respectively. good.
  • the calculated position Tx' (3D) is calculated based on the results of the 2D matching process and the 2D tracking process.
  • Each component of the 6DOF position in the coordinate system is the position that contributed to the calculation. That is, the calculated position Tx' (3D) includes not only the component of the position Tx' (2D), but also the position Ty' (2D), the position Tz' (2D), the position Rx' (2D), the position Ry' ( 2D) and position Rz′(2D) are also positions that contributed to the calculation.
  • the closer the 2D imaging coordinate system is to the 3D imaging coordinate system the more the position Tx'(2D) contributes to the calculation of the position Tx'(3D).
  • the imaging devices 21 and 22 may be arranged so that the 2D imaging coordinate system is as close as possible to the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the X-axis (2D) of the 2D imaging coordinate system is as close as possible to the X-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Y-axis (2D) of the 2D imaging coordinate system is as close as possible to the Y-axis (3D) of the 3D imaging coordinate system.
  • the imaging devices 21 and 22 may be arranged such that the Z axis (2D) of the 2D imaging coordinate system is as close as possible to the Z axis (3D) of the 3D imaging coordinate system.
  • the coordinate transformation unit 3125 transforms the position Tx (2D), the position Ty (2D), the position Tz (3D), the position Rx (3D), the position Ry (3D), and the position Rz (2D) into positions within the common coordinate system.
  • the rigid transformation matrix described above may be used.
  • the coordinate transformation unit 3125 transforms the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (2D) into common coordinates.
  • the above-described rigid transformation matrix may be used.
  • the coordinate transformation unit 3215 uses the transformation matrix M32 to transform the position Tz (3D), the position Rx (3D), and the position Ry (3D) is converted into a position Tz (2D_conv), a position Rx (2D_conv), and a position Ry (2D_conv) within a 2D imaging coordinate system, which is a common coordinate system.
  • the coordinate transformation unit 3125 converts the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), and the amount of change ⁇ Ry (3D) into the 2D imaging coordinate system, which is the common coordinate system, using the conversion matrix M32.
  • the coordinate transformation unit 3215 uses a well-known method for calculating a rigid transformation matrix to convert the 6DOF position in the 3D imaging coordinate system calculated by 3D matching processing (that is, , position Tz(3D), position Ty(3D), position Tz(3D), position Rx(3D), position Ry(3D), and position Rz(3D)).
  • the coordinate transformation unit 3215 may calculate the transformation matrix TM31 representing the position of 6DOF in the 2D imaging coordinate system by multiplying the rigid body transformation matrix RTM31 and the transformation matrix M32. After that, the coordinate transformation unit 3215 may calculate the 6DOF position in the 2D imaging coordinate system from the calculated transformation matrix TM31 using a well-known method.
  • the coordinate conversion unit 3215 converts the calculated position of 6DOF in the 2D imaging coordinate system into the position in the Z-axis direction (2D) of the 2D imaging coordinate system, the position in the rotation direction around the X-axis (2D) of the 2D imaging coordinate system, and the positions in the rotation direction around the Y-axis (2D) of the 2D imaging coordinate system may be extracted as position Tz (2D_conv), position Rx (2D_conv), and position Ry (2D_conv), respectively.
  • the coordinate transformation unit 3215 uses a well-known technique for calculating a rigid body transformation matrix to calculate the amount of change (that is, the amount of change ⁇ Tz(3D ), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D)), the rigid transformation matrix RTM32 may be calculated. After that, the coordinate transformation unit 3215 may calculate the transformation matrix TM32 by multiplying the rigid body transformation matrix RTM32 and the transformation matrix M32. After that, the coordinate transformation unit 3215 may calculate the amount of change in the 6DOF position in the 2D imaging coordinate system from the calculated transformation matrix TM32.
  • the coordinate conversion unit 3215 calculates the amount of change in the position in the Z-axis direction (2D) of the 2D imaging coordinate system, the X-axis (2D) of the 2D imaging coordinate system, and the amount of change in the position of the 6DOF position in the 2D imaging coordinate system.
  • the amount of change in the position in the direction of rotation around and the amount of change in the direction of rotation in the direction of rotation around the Y-axis (2D) of the 2D imaging coordinate system are represented by the amount of change ⁇ Tz (2D_conv), the amount of change ⁇ Rx (2D_conv), and the amount of change ⁇ Ry, respectively. (2D_conv) may be extracted.
  • the imaging devices 21 and 22 may be arranged so that the 2D imaging coordinate system is as close as possible to the 3D imaging coordinate system.
  • the coordinate conversion unit 3215 uses the conversion matrix M23 to convert the position Tx (2D), the position Ty (2D), and Position Rz(2D) is converted into position Tx(3D_conv), position Ty(3D_conv) and position Rz(3D_conv) within the 3D imaging coordinate system, which is a common coordinate system.
  • the coordinate transformation unit 3125 converts the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), and the amount of change ⁇ Rz (2D) into the 3D imaging coordinate system, which is the common coordinate system, using the conversion matrix M23.
  • the amount of change ⁇ Tx (3D_conv), the amount of change ⁇ Ty (3D_conv), and the amount of change ⁇ Rz (3D_conv) are converted.
  • the coordinate transformation unit 3215 uses a well-known method for calculating a rigid body transformation matrix, and uses a 6DOF position in the 2D imaging coordinate system calculated by 2D matching processing (that is, , position Tz(2D), position Ty(2D), position Tz(2D), position Rx(2D), position Ry(2D), and position Rz(2D)).
  • the coordinate transformation unit 3215 may calculate the transformation matrix TM21 representing the position of 6DOF in the 3D imaging coordinate system by multiplying the rigid body transformation matrix RTM21 and the transformation matrix M23. After that, the coordinate transformation unit 3215 may calculate the position of 6DOF in the 3D imaging coordinate system from the calculated transformation matrix TM21 using a well-known method.
  • the coordinate conversion unit 3215 converts the calculated 6DOF position in the 3D imaging coordinate system to the position in the X-axis direction (3D) of the 3D imaging coordinate system, the position in the Y-axis direction (3D) of the 3D imaging coordinate system, and the 3D imaging
  • the positions in the direction of rotation about the Z-axis (3D) of the coordinate system may be extracted as position Tx (3D_conv), position Ty (3D_conv), and position Rz (3D_conv), respectively.
  • the coordinate transformation unit 3215 uses a well-known technique for calculating a rigid body transformation matrix to calculate the amount of change in the 6DOF position in the 2D imaging coordinate system calculated by the 2D tracking process (that is, the amount of change ⁇ Tz(2D ), the amount of change ⁇ Ty(2D), the amount of change ⁇ Tz(2D), the amount of change ⁇ Rx(2D), the amount of change ⁇ Ry(2D), and the amount of change ⁇ Rz(2D)), the rigid transformation matrix RTM22 may be calculated. After that, the coordinate transformation unit 3215 may calculate the transformation matrix TM22 by multiplying the rigid body transformation matrix RTM22 and the transformation matrix M23.
  • the coordinate transformation unit 3215 may calculate the amount of change in the 6DOF position in the 3D imaging coordinate system from the calculated transformation matrix TM22.
  • the coordinate conversion unit 3215 calculates the amount of change in the position of the 6DOF position in the 3D imaging coordinate system, the amount of change in the X-axis direction (3D) of the 3D imaging coordinate system, the Y-axis direction (3D ) and the positional change in the direction of rotation about the Z-axis (3D) of the 3D imaging coordinate system, respectively, are the amount of change ⁇ Tx (3D_conv), the amount of change ⁇ Ty (3D_conv), and the amount of change ⁇ Rz (3D_conv) can be extracted as Also in this case, for the reasons already explained, as the 2D imaging coordinate system approaches the 3D imaging coordinate system, the calculated position Tx (3D_conv), position Ty (3D_conv), and position Rz (3D_conv), and The accuracy of the amount of change ⁇ Tx(3D_conv), the
  • the control device 3 controls the position Tx' (2D), the position Ty' (2D), the position Tz' (3D), the position Rx' (3D), the position Ry' (3D) and the position Rz' (2D). ), the position of the workpiece W within the global coordinate system is calculated. However, the control device 3 controls position Tx' (2D), position Ty' (2D), position Tz' (3D), position Rx' (3D), position Ry' (3D) and position Rz' (2D).
  • the position of the workpiece W within the global coordinate system may be calculated without using at least one of
  • the control device 3 calculates the position Tx' (3D) based on the position Tx (3D) and the amount of change ⁇ Tx (3D), and based on the calculated position Tx' (3D), in the global coordinate system may be calculated.
  • the control device 3 calculates the position Ty' (3D) based on the position Ty (3D) and the amount of change ⁇ Ty (3D), and moves the workpiece within the global coordinate system based on the calculated position Ty' (3D).
  • the position of W may be calculated.
  • the control device 3 calculates a position Tz'(2D) based on the position Tz(2D) and the amount of change ⁇ Tz(2D), and based on the calculated position Tz'(2D), moves the workpiece within the global coordinate system.
  • the position of W may be calculated.
  • the control device 3 calculates the position Rx'(2D) based on the position Rx(2D) and the amount of change ⁇ Rx(2D), and based on the calculated position Rx'(2D), moves the workpiece within the global coordinate system.
  • the position of W may be calculated.
  • the control device 3 calculates the position Ry' (2D) based on the position Ry (2D) and the change amount ⁇ Ry (2D), and moves the workpiece within the global coordinate system based on the calculated position Ry' (2D).
  • the position of W may be calculated.
  • the control device 3 calculates a position Rz' (3D) based on the position Rz (3D) and the change amount ⁇ Rz (3D), and based on the calculated position Rz' (3D), moves the workpiece within the global coordinate system.
  • the position of W may be calculated.
  • control device 3 controls the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Rz (2D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D ), position Tx (2D), position Ty (2D) and position Rz (2D), and position Tz (3D), position Rx (3D) and position Ry (3D), the workpiece in the global coordinate system
  • the position of W is calculated.
  • control device 3 controls the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D) and the amount of change ⁇ Rz (2D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D) and the amount of change ⁇ Ry (3D), the position global coordinate system without using at least one of Tx(2D), position Ty(2D) and position Rz(2D), and position Tz(3D), position Rx(3D) and position Ry(3D) You may calculate the position of the workpiece
  • control device 3 the 6DOF position calculated by the 2D matching processing unit 3121, the 6DOF position calculated by the 3D matching processing unit 3122, the amount of change in the 6DOF position calculated by the 2D tracking processing unit 3123, and the 3D tracking
  • the position of the workpiece W within the global coordinate system may be calculated based on at least one of the amount of change in the 6DOF position calculated by the processing unit 3124 .
  • the control device 3 corrects the result of the 2D matching process based on the result of the 2D tracking process, and corrects the result of the 3D matching process based on the result of the 3D tracking process, so that the global coordinates
  • the position of the workpiece W in the system is calculated.
  • the control device 3 may calculate the position of the workpiece W in the global coordinate system based on the results of the 2D matching process and the 3D matching process without using the results of the 2D tracking process and the 3D tracking process.
  • the coordinate transformation unit 3125 transforms the position Tx (2D), the position Ty (2D), and the position Rz (2D) calculated by the 2D matching process into the position Tx' (2D), the position Ty' (2D), and the position Rz'.
  • the control device 3 calculates intermediately in the process of calculating the position of the work W within the global coordinate system. There is no change in considering the difference in the accuracy of the 6DOF position of the workpiece W to be processed.
  • the control device 3 can calculate the position of the work W with a correspondingly high degree of accuracy, compared to the case where the difference in accuracy of the 6DOF position of the work W calculated intermediately is not taken into account. Therefore, the robot 1 moves accurately and at high speed with respect to the work W (for example, accurately and at high speed follows (approaches) the work W) without losing sight of the work W (that is, the target object), and ends. Desired processing can be performed on the workpiece W by the effector 13 . When the work W is stationary, the robot 1 can approach the work W accurately and at high speed, and perform desired processing on the work W with the end effector 13 .
  • control device 3 may calculate (that is, update) the position of the workpiece W within the global coordinate system at a cycle corresponding to the 2D matching cycle or the 3D matching cycle. As a result, the control device 3 may output the control signal to the robot 1 at a cycle corresponding to the 2D matching cycle or the 3D matching cycle.
  • the 2D matching unit 3121 calculates the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D), and the position Rz (2D). good too.
  • the 3D matching unit 3122 uses the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D) and the position Rz (2D) to match the position Tx (3D ), position Ty (3D), position Tz (3D), position Rx (3D), position Ry (3D) and position Rz (3D).
  • the 3D matching unit 3122 uses the position Tx (2D), the position Ty (2D), the position Tz (2D), the position Rx (2D), the position Ry (2D), and the position Rz (2D) to determine the workpiece shape
  • a part of the data WSD is selected as 3D matching target data for 3D matching processing, and by performing 3D matching processing using the selected 3D matching target data, position Tx (3D), position Ty (3D), position Tz(3D), position Rx(3D), position Ry(3D) and position Rz(3D) may be calculated.
  • the 2D tracking unit 3123 performs the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change ⁇ Rz ( 2D) may be calculated.
  • the 3D tracking unit 3124 calculates the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D). need not be calculated.
  • the 3D tracking unit 3124 calculates the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D). Even if at least one is calculated, it is not necessary to output the calculated amount of change in the position of the workpiece W to the coordinate conversion section 3125 .
  • the 3D tracking unit 3124 does not calculate the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D).
  • the position calculator 312 does not have to include the 3D tracking unit 3124 .
  • the coordinate transformation unit 3125 uses the results of the 2D matching processing, the results of the 3D matching processing, and the results of the 2D tracking processing, while the position of the workpiece W in the global coordinate system is calculated without using the results of the 3D tracking processing. may be calculated.
  • the coordinate transformation unit 3125 may correct the result of the 2D matching process based on the result of the 2D tracking process and correct the result of the 3D matching process based on the result of the 2D tracking process. For example, the coordinate transformation unit 3125 may calculate the position Tx'(2D) by correcting the position Tx(2D) based on the amount of change ⁇ Tx(2D). The coordinate transformation unit 3125 may calculate Ty'(2D) by correcting the position Ty(2D) based on the amount of change ⁇ Ty(2D).
  • the coordinate conversion unit 3125 converts the change amount ⁇ Tz(2D) in the 2D imaging coordinate system into the change amount ⁇ Tz(3D_conv) in the 3D imaging coordinate system, and converts the position Tz(3D) based on the converted change amount ⁇ Tz(3D_conv).
  • the position Tz' (3D) may be calculated by correcting .
  • the coordinate transformation unit 3125 transforms the change amount ⁇ Rx(2D) in the 2D imaging coordinate system into the change amount ⁇ Rx(3D_conv) in the 3D imaging coordinate system, and converts the position Rx(3D) based on the converted change amount ⁇ Rx(3D_conv).
  • the position Rx' (3D) may be calculated by correcting .
  • the coordinate conversion unit 3125 converts the change amount ⁇ Ry(2D) in the 2D imaging coordinate system into the change amount ⁇ Ry(3D_conv) in the 3D imaging coordinate system, and converts the position Ry(3D) based on the converted change amount ⁇ Ry(3D_conv).
  • the position Ry' (3D) may be calculated by correcting .
  • the coordinate transformation unit 3125 may calculate the position Rz'(2D) by correcting the position Rz(2D) based on the amount of change ⁇ Rz(2D). Subsequent processing may be identical to the processing described above.
  • the coordinate transformation unit 3125 may calculate the position of the work W in the global coordinate system based on the work shape data WSD in addition to the results of the 2D matching process, the results of the 3D matching process, and the results of the 2D tracking process. .
  • the coordinate conversion unit 3125 converts the image pickup device 22 to the workpiece W at time s2, which is the later of times s1 and s2, in addition to the result of the 2D matching process, the result of the 3D matching process, and the result of the 2D tracking process.
  • the position of the work W in the global coordinate system may be calculated based on the work shape data WSD generated from the work image data IMG_3D#s2 generated by imaging the .
  • the signal generator 313 Since the signal generator 313 generates the robot control signal based on the position of the workpiece W in the global coordinate system, in this case, the signal generator 313 generates the result of the 2D matching process, the result of the 3D matching process, and the 2D It may be considered that the robot control signal is generated based on the workpiece shape data WSD in addition to the result of the tracking process.
  • the above-described 2D tracking unit 3123 is based on two workpiece image data IMG_2D#t1 and IMG_2D#t2 generated by imaging the workpiece W by the imaging device 21 at different times t1 and t2, and the workpiece shape data WSD. , the amount of change in the position of the workpiece W within the 2D imaging coordinate system between times t1 and t2 may be calculated.
  • the 2D tracking unit 3123 based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD, the above-described change amount ⁇ Tx(2D), change amount ⁇ Ty(2D), change amount ⁇ Tz( 2D), the amount of change ⁇ Rx(2D), the amount of change ⁇ Ry(2D), and the amount of change ⁇ Rz(2D).
  • the 2D tracking unit 3123 is generated by imaging the workpiece W by the imaging device 22 at time s2 which is the later of the two workpiece image data IMG_2D#t1 and IMG_2D#t2, which are different from each other.
  • the amount of change in the position of the workpiece W may be calculated based on the workpiece shape data WSD generated from the workpiece image data IMG_3D#s2.
  • the coordinate transformation unit 3125 converts the result of the 2D matching process, the result of the 3D matching process, and the result of the 2D tracking process (that is, based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD).
  • the position of the workpiece W in the global coordinate system may be calculated based on the amount of change calculated by Since the signal generator 313 generates the robot control signal based on the position of the workpiece W in the global coordinate system, in this case, the signal generator 313 generates the result of the 2D matching process, the result of the 3D matching process, and the 2D Even if it is assumed that the robot control signal is generated based on the result of the tracking process (that is, the amount of change calculated based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD). good.
  • the 3D tracking unit 3124 performs the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz (3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D). ) may be calculated.
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change ⁇ Rz (2D). need not be calculated.
  • the 2D tracking unit 3123 calculates the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), the amount of change ⁇ Ry (2D), and the amount of change ⁇ Rz (2D). Even if at least one is calculated, it is not necessary to output the calculated amount of change in the position of the workpiece W to the coordinate conversion section 3125 .
  • the 2D tracking unit 3123 does not calculate amount of change ⁇ Tx(2D), amount of change ⁇ Ty(2D), amount of change ⁇ Tz(2D), amount of change ⁇ Rx(2D), amount of change ⁇ Ry(2D) and amount of change ⁇ Rz(2D)
  • the position calculator 312 does not have to include the 2D tracking unit 3123 .
  • the coordinate transformation unit 3125 uses the result of the 2D matching process, the result of the 3D matching process, and the result of the 3D tracking process, while the position of the workpiece W in the global coordinate system is calculated without using the result of the 2D tracking process. may be calculated.
  • the coordinate transformation unit 3125 corrects the result of the 2D matching process based on the result of the 3D tracking process, and corrects the result of the 3D matching process based on the result of the 3D tracking process.
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Tx (3D) in the 3D imaging coordinate system into the amount of change ⁇ Tx (2D_conv) in the 2D imaging coordinate system, and the position Tx ( 2D) may be corrected to calculate the position Tx'(2D).
  • the coordinate conversion unit 3125 converts the change amount ⁇ Ty(3D) in the 3D imaging coordinate system into the change amount ⁇ Ty(2D_conv) in the 2D imaging coordinate system, and converts the position Ty(2D) based on the converted change amount ⁇ Ty(2D_conv). Ty'(2D) may be calculated by correcting .
  • the coordinate transformation unit 3125 may calculate the position Tz'(3D) by correcting the position Tz(3D) based on the amount of change ⁇ Tz(3D).
  • the coordinate transformation unit 3125 may calculate the position Rx'(3D) by correcting the position Rx(3D) based on the amount of change ⁇ Rx(3D).
  • the coordinate transformation unit 3125 may calculate the position Ry'(3D) by correcting the position Ry(3D) based on the amount of change ⁇ Ry(3D).
  • the coordinate transformation unit 3125 transforms the amount of change ⁇ Rz(3D) in the 3D imaging coordinate system into the amount of change ⁇ Rz(2D_conv) in the 2D imaging coordinate system, and converts the amount of change ⁇ Rz(2D_conv) into the position Rz(2D).
  • the position Rz' (2D) may be calculated by correcting . Subsequent processing may be identical to the processing described above.
  • the coordinate transformation unit 3125 may calculate the amount of change ⁇ Tx(2D_conv), the amount of change ⁇ Ty(2D_conv), and the amount of change ⁇ Rz(2D_conv) using the rigid body transformation matrix as described above.
  • the above-described 3D tracking unit 3124 is based on two workpiece image data IMG_2D#t1 and IMG_2D#t2 generated by imaging the workpiece W by the imaging device 21 at different times t1 and t2, and the workpiece shape data WSD. , the amount of change in the position of the workpiece W within the 3D imaging coordinate system between times t1 and t2 may be calculated.
  • the 3D tracking unit 3124 based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD, changes the amount of change ⁇ Tx (3D), the amount of change ⁇ Ty (3D), the amount of change ⁇ Tz ( 3D), the amount of change ⁇ Rx (3D), the amount of change ⁇ Ry (3D), and the amount of change ⁇ Rz (3D).
  • the 3D tracking unit 3124 is generated by imaging the workpiece W by the imaging device 22 at time s2, which is the later of the two workpiece image data IMG_2D#t1 and IMG_2D#t2, which are different from each other.
  • the amount of change in the position of the workpiece W may be calculated based on the workpiece shape data WSD generated from the workpiece image data IMG_3D#s2.
  • the coordinate transformation unit 3125 converts the result of the 2D matching process, the result of the 3D matching process, and the result of the 3D tracking process (that is, based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD).
  • the position of the workpiece W in the global coordinate system may be calculated based on the amount of change calculated by Since the signal generator 313 generates the robot control signal based on the position of the workpiece W in the global coordinate system, in this case, the signal generator 313 generates the result of the 2D matching process, the result of the 3D matching process, and the 3D Even if it is assumed that the robot control signal is generated based on the result of the tracking process (that is, the amount of change calculated based on the two workpiece image data IMG_2D#t1 and IMG_2D#t2 and the workpiece shape data WSD). good.
  • the control device 3 may include a robot control device 14.
  • the control device 3 may function as the robot control device 14 .
  • a logical functional block capable of functioning as the robot control device 14 may be realized in the arithmetic device 31 of the control device 3 .
  • the control device 3 may control the operation of the robot 1 (for example, control the driving of the actuator built in the joint 122 of the robot arm 12) based on the robot control signal generated by the control device 3. In this case, the robot 1 does not have to be equipped with the robot controller 14 .
  • the shape data generation unit 311 of the control device 3 generates a work shape from one work image data IMG_3D (for example, one work image data IMG_3D containing two image data when the imaging device 22 is a stereo camera). Data WSD is generated.
  • the shape data generator 311 may generate the work shape data WSD from a plurality of pieces of work image data IMG_3D.
  • the shape data generator 311 may generate the work shape data WSD from a plurality of pieces of work image data IMG_3D obtained by imaging the work W from different directions.
  • the signal generation unit 313 moves the work W in different directions with the position of the work W as a starting point.
  • the image pickup unit 2 that is, the robot arm 11
  • the signal generator 313 generates a robot control signal for operating the robot arm 11 so that the workpiece W can be imaged from different directions starting from the position of the workpiece W, and outputs the signal to the robot controller 14 .
  • the imaging device 22 may generate a plurality of pieces of workpiece image data IMG_3D obtained by imaging the workpiece W from different directions by performing imaging multiple times as the imaging unit 2 moves from the position of the workpiece W as a starting point. .
  • the shape data generator 311 may generate shape data for each of the plurality of workpiece image data IMG_3D through the above process. This shape data can also be said to be work shape data WSD.
  • the shape data generator 311 may generate the workpiece shape data WSD by synthesizing a plurality of generated shape data by existing processing.
  • the shape data generation unit 311 may synthesize a plurality of point cloud data by performing ICP (Iterative Closest Point) processing.
  • ICP Intelligent Closest Point
  • the shape data generation unit 311 performs a process of aligning the positions of the feature locations on the depth image indicated by the respective depth image data to generate a plurality of depth image data.
  • Depth image data may be synthesized.
  • the position calculation unit 312 calculates the position of the work W by executing at least one of the above-described matching processing and tracking processing using the work shape data WSD generated by the synthesizing process by the shape data generation unit 311, and outputs a signal
  • the generation unit 313 may generate a robot control signal based on the position of the work W calculated by the position calculation unit 312 and output it to the robot control device 14 so that the end effector 13 can process the work W. .
  • a control device that generates a control signal for controlling a robot that moves an imaging unit, a calculation unit that generates the control signal; an output unit that outputs the control signal generated by the calculation unit; with
  • the calculation unit is within a first coordinate system defined by a first axis, a second axis, and a third axis that are orthogonal to each other, the first a position of the object in at least one of a first direction parallel to a first axis, a second direction parallel to the second axis, and a third direction parallel to the third axis; the first axis; calculating a first position including at least one of a pose of the object about at least one of the second axis and the third axis; Based on shape data representing a three-dimensional shape of the object and generated from second image data acquired by the imaging unit capturing an image of the object, a fourth axis, a fifth axi
  • the first image data is generated by the image capturing unit capturing an image of the object during relative movement between the image capturing unit and the object, The control device according to appendix 1, wherein the second image data is generated by imaging the object with the imaging unit during the relative movement.
  • the calculation unit is the at least one direction between the different times within the first coordinate system based on two pieces of the first image data obtained by imaging the object by the imaging unit at mutually different times; calculating a first amount of change that is the amount of change in at least one of the position of the object in and the orientation of the object about the at least one axis; Based on two pieces of shape data representing the three-dimensional shape of the object generated from each of the two pieces of second image data obtained by imaging the object by the imaging unit at different times, the second a second amount of change that is the amount of change in at least one of the position of the object in the at least one direction and the orientation of the object about the at least one axis between the different times in the coordinate system; calculate, 5.
  • control device according to any one of appendices 1 to 4, wherein the control signal is generated based on the first position, the first amount of change, the second position, and the second amount of change.
  • the output unit outputs the control signal generated by the calculation unit based on the first position, the first change amount, the second position, and the second change amount in a second period. Control device as described.
  • Appendix 7 The mutually different times at which the imaging unit images the object to obtain the two first image data and the mutually different times at which the imaging unit images the object to obtain the two second image data 7.
  • the control device according to appendix 5 or 6, wherein the times are the same.
  • [Appendix 9] A time from when the object is imaged by the imaging unit until the first position is calculated based on the first image data, and after the object is imaged by the imaging unit based on the second image data The control device according to appendix 8, wherein the time until the second position is calculated is the same.
  • [Appendix 10] a time from when the imaging unit images the object at different times until the first amount of change is calculated based on the two first image data, and when the object is captured at different times by the imaging unit The control device according to appendix 8 or 9, wherein the time from imaging to calculation of the second amount of change based on the two second image data is the same.
  • the calculation unit is calculating the first position in a third period; calculating the first amount of change in a fourth period shorter than the third period; calculating the second position in a fifth period; 11.
  • [Appendix 12] 12.
  • the control device according to appendix 11, wherein the fourth period and the sixth period are the same period.
  • [Appendix 13] 13 13.
  • the output unit outputs the control signal generated by the calculation unit based on the first position, the first amount of change, the second position, and the second amount of change in a second period, 14.
  • the calculation unit is A seventh direction parallel to the seventh axis within a common coordinate system defined by a seventh axis, an eighth axis, and a ninth axis orthogonal to each other based on the first position and the first change amount , an eighth direction parallel to the eighth axis, and a ninth direction parallel to the ninth axis; calculating a third position including at least one of a pose of the object about at least one of nine axes; a position of the object in at least one remaining direction different from the at least one direction and the at least one axis within the common coordinate system based on the second position and the second amount of change; calculating a fourth position comprising at least one of a different pose of said object about at least one remaining axis; 17.
  • Appendix 18 18.
  • the calculation unit is calculating the first position in a third period; calculating the first amount of change in a fourth period shorter than the third period; calculating the second position in a fifth period; calculating the second amount of change in a sixth cycle shorter than the fifth cycle; The first amount of change is newly calculated in the fourth period after the first position is newly calculated as one period of the third period and before the next calculation of the first position.
  • the control device each time, calculating the third position based on the newly calculated first change amount and the newly calculated first position;
  • the second amount of change is newly calculated in the sixth period after the second position is newly calculated as one period of the fifth period until the second position is next calculated.
  • the control device according to appendix 17 or 18, wherein the fourth position is calculated based on the newly calculated second amount of change and the newly calculated second position each time.
  • the seventh axis is the first axis
  • the eighth axis is the second axis
  • the ninth axis is the third axis
  • the calculation unit is At least the position of the object in the at least one direction and the pose of the object about the at least one axis within the common coordinate system by correcting the first position with the first amount of change.
  • the seventh axis is the fourth axis
  • the eighth axis is the fifth axis
  • the ninth axis is the sixth axis
  • a position of the object in the at least one direction and a position of the object about the at least one axis within the first coordinate system calculated by correcting the first position with the first change amount
  • calculating the third position in the common coordinate system based on at least one of the orientation
  • 20 The control device according to any one of appendices 17 to 19, wherein at least one of posture and posture is calculated as the fourth position.
  • the calculation unit is At least the position of the object in the at least one direction and the pose of the object about the at least one axis within the common coordinate system by correcting the first position with the first amount of change.
  • the control device according to any one of appendices 17 to 19, wherein the fourth position is calculated by correcting with at least one change amount.
  • the seventh axis is the fourth axis
  • the eighth axis is the fifth axis
  • the ninth axis is the sixth axis
  • the calculation unit is At least one of the position of the object in the at least one direction and the pose of the object about the at least one axis in the common coordinate system calculated based on the first position is defined as the first correcting at least one of the position of the object in the at least one direction and the orientation of the object about the at least one axis within the common coordinate system, which is calculated based on the amount of change.
  • the third position includes a position of the object in the eighth direction, a position of the object in the ninth direction, and a pose of the object about the seventh axis;
  • the fourth position includes a position of the object in the seventh direction, a pose of the object about the eighth axis, and a pose of the object about the ninth axis;
  • the seventh axis is the first axis, the eighth axis is the second axis, the ninth axis is the third axis, 23.
  • the control device according to any one of appendices 17 to 20 and 22, wherein the first axis is an axis along an optical axis of an optical system of the imaging section.
  • the third position includes a position of the object in the eighth direction, a position of the object in the ninth direction, and a pose of the object about the seventh axis;
  • the fourth position includes a position of the object in the seventh direction, a pose of the object about the eighth axis, and a pose of the object about the ninth axis;
  • the seventh axis is the fourth axis,
  • the eighth axis is the fifth axis,
  • the ninth axis is the sixth axis, 24.
  • the control device according to any one of appendices 17 to 19, 21 and 23, wherein the fourth axis is an axis along the optical axis of the optical system of the imaging unit.
  • the first axis is an axis along the optical axis of the optical system of the imaging unit
  • the fourth axis is an axis along the optical axis of the optical system of the imaging unit
  • the first position includes a position of the object in the second direction, a position of the object in the third direction, and a pose of the object about the first axis
  • a control device according to any one of the preceding paragraphs.
  • the first axis is an axis along the optical axis of the optical system of the imaging unit
  • the fourth axis is an axis along the optical axis of the optical system of the imaging unit
  • the first position includes a position of the object in the second direction, a position of the object in the third direction, and a pose of the object about the first axis
  • the first amount of change includes an amount of change in the position of the object in the second direction, an amount of change in the position of the object in the third direction, and an amount of change in posture of the object about the first axis.
  • the second position includes a position of the object in the fourth direction, a pose of the object about the fifth axis, and a pose of the object about the sixth axis;
  • the second amount of change is an amount of change in position of the object in the fourth direction, an amount of change in posture of the object about the fifth axis, and an amount of change in the posture of the object about the sixth axis.
  • the control device according to any one of appendices 5 to 25.
  • the calculation unit is calculating the first position by performing a matching process using the first image data and reference image data representing a two-dimensional image serving as a reference of the object; 28.
  • the control device according to any one of appendices 1 to 27, wherein the second position is calculated by performing a matching process using the shape data and reference shape data indicating a three-dimensional shape serving as a reference of the object.
  • the calculation unit is calculating the first position by performing a matching process using the first image data and reference image data representing a two-dimensional image serving as a reference of the object; calculating the second position by performing a matching process using the shape data and reference shape data indicating a three-dimensional shape serving as a reference of the object; a data portion indicating a first characteristic portion of the object in one of the first image data and the first characteristic portion of the object in the other first image data of the two first image data; Calculate the first amount of change by performing tracking processing using the data part shown, Tracking using a data portion indicating the second characteristic portion of the object in one of the shape data and a data portion indicating the second characteristic portion of the object in the other shape data of the two shape data 28.
  • the control device according to any one of appendices 5 to 25 and 27, wherein the second amount of change is calculated by performing processing.
  • the calculation unit is Selecting a data portion indicating at least a partial shape of the object from the shape data based on the first position, and performing matching processing using the selected data portion and the reference shape data. 30.
  • the control device according to appendix 28 or 29, wherein the second position is calculated by .
  • the calculation unit is subjecting the shape data to data deletion processing for deleting a data portion indicating a shape of another object different from the object; 31.
  • the control device according to any one of appendices 28 to 30, wherein the second position is calculated by performing a matching process using the shape data subjected to the data deletion process and the reference shape data.
  • Appendix 32 32.
  • Appendix 33 The robot is provided with a processing device for processing the object, 33.
  • [Appendix 34] 34 34.
  • the control device according to appendix 33, wherein the control signal is a signal for controlling the processing device.
  • Appendix 35 35.
  • the control device according to any one of appendices 1 to 34, wherein the imaging unit can automatically adjust exposure based on a result of imaging the object by the imaging unit.
  • the calculation unit is performing image processing on at least one of the first image data and the second image data; The first position can be calculated based on the first image data subjected to the image processing, 36.
  • the control device according to any one of appendices 1 to 35, wherein the second position can be calculated based on the shape data generated from the second image data.
  • the calculation unit is performing image processing on at least one of the two first image data and the two second image data; It is possible to calculate the first amount of change based on the two first image data subjected to the image processing, 30.
  • a control device according to any one of the preceding paragraphs.
  • the imaging unit generates at least one of the second image data and the two second image data by imaging the object onto which pattern light is projected from a light projection device provided on the robot arm. 39. Control device according to any one of the appendices 1 to 38.
  • a control device A control device according to any one of claims 1 to 39; A control system comprising: the imaging unit; [Appendix 41]
  • the imaging unit includes a first imaging device and a second imaging device, a first filter that attenuates a light component in a first wavelength band of light from the object; a second filter that attenuates a light component in a second wavelength band different from the first wavelength band out of the light from the object,
  • the first imaging device captures an image of the object by receiving light from the object through the first filter, 41.
  • the control system according to appendix 40, wherein the second imaging device images the object by receiving light from the object through the second filter.
  • a control device according to any one of claims 1 to 39; the imaging unit; A robot system comprising: the robot; [Appendix 45] A control method for generating a control signal for controlling a robot that moves an imaging unit, Within a first coordinate system defined by a first axis, a second axis, and a third axis that are orthogonal to each other, the first a position of the object in at least one of a first direction parallel to a first axis, a second direction parallel to the second axis, and a third direction parallel to the third axis; the first axis; calculating a first position comprising at least one of a pose of the object about at least one of the second axis and the third axis; Based on the shape data representing the three-dimensional shape of the object generated from the second image data acquired by the imaging unit imaging the object, a fourth axis, a fifth axis, and a third axis orthogonal to each other are generated.
  • Appendix 46 A computer program that causes a computer to execute the control method according to appendix 45.
  • a control device that generates a control signal for controlling a robot that moves an imaging unit, a calculation unit that generates the control signal; an output unit that outputs the control signal generated by the calculation unit; with
  • the calculation unit is within a first coordinate system defined by a first axis, a second axis, and a third axis that are orthogonal to each other, the first a position of the object in at least one of a first direction parallel to a first axis, a second direction parallel to the second axis, and a third direction parallel to the third axis; the first axis; calculating a first position including at least one of a pose of the object about at least one of the second axis and the third axis; acquiring shape data generated by the imaging unit and indicating a three-dimensional shape of the object from the second image data acquired by the imaging unit imaging the object, from the imaging unit; based on the shape data, in a second coordinate system defined by mutually orthogonal fourth, fifth, and sixth axe
  • the first image data is generated by the image capturing unit capturing an image of the object during relative movement between the image capturing unit and the object, 48.
  • the control device according to appendix 47, wherein the second image data is generated by imaging the object with the imaging unit during the relative movement.
  • the control device according to appendix 47 or 48, wherein the output unit outputs the control signal generated by the calculation unit based on the first position and the second position in a first cycle.
  • the time at which the imaging unit images the object to obtain the first image data and the time at which the imaging unit images the object to obtain the second image data are the same.
  • the calculation unit is the at least one direction between the different times within the first coordinate system based on two pieces of the first image data obtained by imaging the object by the imaging unit at mutually different times; calculating a first amount of change that is the amount of change in at least one of the position of the object in and the orientation of the object about the at least one axis; Based on two pieces of shape data representing the three-dimensional shape of the object generated from each of the two pieces of second image data obtained by imaging the object by the imaging unit at different times, the second a second amount of change that is the amount of change in at least one of the position of the object in the at least one direction and the orientation of the object about the at least one axis between the different times in the coordinate system; calculate, 51.
  • control device The control device according to any one of appendices 47 to 50, wherein said control signal is generated based on said first position, said first amount of change, said second position and said second amount of change.
  • the output unit outputs the control signal generated by the calculation unit based on the first position, the first change amount, the second position, and the second change amount in a second period. Control device as described.
  • Appendix 53 The mutually different times at which the imaging unit images the object to obtain the two first image data and the mutually different times at which the imaging unit images the object to obtain the two second image data 53.
  • the control device according to appendix 51 or 52, wherein the times are the same.
  • [Appendix 55] A time from when the object is imaged by the imaging unit until the first position is calculated based on the first image data, and after the object is imaged by the imaging unit based on the second image data 55.
  • the control device according to appendix 54, wherein the time until the second position is calculated is the same.
  • [Appendix 56] a time from when the imaging unit images the object at different times until the first amount of change is calculated based on the two first image data, and when the object is captured at different times by the imaging unit 56.
  • the calculation unit is calculating the first position in a third period; calculating the first amount of change in a fourth period shorter than the third period; calculating the second position in a fifth period; 57.
  • the control device according to any one of appendices 51 to 56, wherein the second amount of change is calculated in a sixth period shorter than the fifth period.
  • the control device according to appendix 57, wherein the fourth period and the sixth period are the same period.
  • the output unit outputs the control signal generated by the calculation unit based on the first position, the first amount of change, the second position, and the second amount of change in a second period, 60.
  • the control device according to any one of appendices 57 to 59, wherein the predetermined period is the same as the fourth period or the sixth period.
  • the control device according to any one of appendices 57 to 60, wherein the third period and the fifth period are the same period.
  • the calculation unit is A seventh direction parallel to the seventh axis within a common coordinate system defined by a seventh axis, an eighth axis, and a ninth axis orthogonal to each other based on the first position and the first change amount , an eighth direction parallel to the eighth axis, and a ninth direction parallel to the ninth axis; calculating a third position including at least one of a pose of the object about at least one of nine axes; a position of the object in at least one remaining direction different from the at least one direction and the at least one axis within the common coordinate system based on the second position and the second amount of change; calculating a fourth position comprising at least one of a different pose of said object about at least one remaining axis; 63.
  • a control device according to any one of clauses 51 to 62, wherein said control signal is generated based on said third position and said fourth position.
  • Appendix 64 64. The control device according to appendix 63, wherein the output unit outputs the control signal generated by the calculation unit based on the third position and the fourth position in a seventh cycle.
  • the calculation unit is calculating the first position in a third period; calculating the first amount of change in a fourth period shorter than the third period; calculating the second position in a fifth period; calculating the second amount of change in a sixth cycle shorter than the fifth cycle; The first amount of change is newly calculated in the fourth period after the first position is newly calculated as one period of the third period and before the next calculation of the first position.
  • the control device each time, calculating the third position based on the newly calculated first change amount and the newly calculated first position;
  • the second amount of change is newly calculated in the sixth period after the second position is newly calculated as one period of the fifth period until the second position is next calculated.
  • 65. The control device according to appendix 63 or 64, wherein the fourth position is calculated based on the newly calculated second change amount and the newly calculated second position each time.
  • the seventh axis is the first axis
  • the eighth axis is the second axis
  • the ninth axis is the third axis
  • the calculation unit is At least the position of the object in the at least one direction and the pose of the object about the at least one axis within the common coordinate system by correcting the first position with the first amount of change.
  • the seventh axis is the fourth axis
  • the eighth axis is the fifth axis
  • the ninth axis is the sixth axis
  • a position of the object in the at least one direction and a position of the object about the at least one axis within the first coordinate system calculated by correcting the first position with the first change amount
  • calculating the third position in the common coordinate system based on at least one of the orientation; position of the object in the remaining at least one direction and of the object about the remaining at least one axis within the common coordinate system by correcting the second position with the second change amount
  • the control device according to any one of appendices 63 to 65, wherein at least one of posture and posture is calculated as the fourth position.
  • the calculation unit is At least the position of the object in the at least one direction and the pose of the object about the at least one axis within the common coordinate system by correcting the first position with the first amount of change.
  • the calculation unit is At least one of the position of the object in the at least one direction and the pose of the object about the at least one axis in the common coordinate system calculated based on the first position is defined as the first correcting at least one of the position of the object in the at least one direction and the orientation of the object about the at least one axis within the common coordinate system, which is calculated based on the amount of change. calculating the third position by position of the object in the remaining at least one direction and of the object about the remaining at least one axis within the common coordinate system by correcting the second position with the second change amount; 66.
  • the control device according to any one of appendices 63 to 65, wherein at least one of posture and posture is calculated as the fourth position.
  • the third position includes a position of the object in the eighth direction, a position of the object in the ninth direction, and a pose of the object about the seventh axis;
  • the fourth position includes a position of the object in the seventh direction, a pose of the object about the eighth axis, and a pose of the object about the ninth axis;
  • the seventh axis is the first axis
  • the eighth axis is the second axis
  • the ninth axis is the third axis, 69.
  • the third position includes a position of the object in the eighth direction, a position of the object in the ninth direction, and a pose of the object about the seventh axis;
  • the fourth position includes a position of the object in the seventh direction, a pose of the object about the eighth axis, and a pose of the object about the ninth axis;
  • the seventh axis is the fourth axis,
  • the eighth axis is the fifth axis,
  • the ninth axis is the sixth axis, 69.
  • the control device according to any one of appendices 63 to 65, 67 and 69, wherein the fourth axis is an axis along the optical axis of the optical system of the imaging unit.
  • the first axis is an axis along the optical axis of the optical system of the imaging unit
  • the fourth axis is an axis along the optical axis of the optical system of the imaging unit
  • the first position includes a position of the object in the second direction, a position of the object in the third direction, and a pose of the object about the first axis; 72.
  • the second position includes a position of the object in the fourth direction, a pose of the object about the fifth axis, and a pose of the object about the sixth axis
  • the first axis is an axis along the optical axis of the optical system of the imaging unit
  • the fourth axis is an axis along the optical axis of the optical system of the imaging unit
  • the first position includes a position of the object in the second direction, a position of the object in the third direction, and a pose of the object about the first axis
  • the first amount of change includes an amount of change in the position of the object in the second direction, an amount of change in the position of the object in the third direction, and an amount of change in posture of the object about the first axis.
  • the second position includes a position of the object in the fourth direction, a pose of the object about the fifth axis, and a pose of the object about the sixth axis;
  • the second amount of change is an amount of change in position of the object in the fourth direction, an amount of change in posture of the object about the fifth axis, and an amount of change in the posture of the object about the sixth axis.
  • 72. The control device of any one of clauses 51-71.
  • the calculation unit is calculating the first position by performing a matching process using the first image data and reference image data representing a two-dimensional image serving as a reference of the object; 74.
  • the control device according to any one of appendices 47 to 73, wherein the second position is calculated by performing a matching process using the shape data and reference shape data indicating a three-dimensional shape serving as a reference of the object.
  • the calculation unit is calculating the first position by performing a matching process using the first image data and reference image data representing a two-dimensional image serving as a reference of the object; calculating the second position by performing a matching process using the shape data and reference shape data indicating a three-dimensional shape serving as a reference of the object; a data portion indicating a first characteristic portion of the object in one of the first image data and the first characteristic portion of the object in the other first image data of the two first image data; Calculate the first amount of change by performing tracking processing using the data part shown, Tracking using a data portion indicating the second characteristic portion of the object in one of the shape data and a data portion indicating the second characteristic portion of the object in the other shape data of the two shape data 74.
  • the control device according to any one of appendices 51 to 71 and 73, wherein the second amount of change is calculated by performing processing.
  • the calculation unit is Selecting a data portion indicating at least a partial shape of the object from the shape data based on the first position, and performing matching processing using the selected data portion and the reference shape data.
  • the control device according to appendix 74 or 75, wherein the second position is calculated by: [Appendix 77]
  • the calculation unit is subjecting the shape data to data deletion processing for deleting a data portion indicating a shape of another object different from the object; 77.
  • the control device according to any one of appendices 74 to 76, wherein the second position is calculated by performing a matching process using the shape data subjected to the data deletion process and the reference shape data.
  • Appendix 78 78.
  • Appendix 79 The robot is provided with a processing device for processing the object, 79.
  • the control device of any one of Clauses 47-78, wherein the robot moves the processing device.
  • the control device of Claim 79, wherein the control signal is a signal for controlling the processing device.
  • Appendix 81 81.
  • the control device according to any one of appendices 47 to 80, wherein at least one of the first and imaging units can automatically adjust exposure based on a result of imaging the object by at least one of the first and imaging units.
  • the calculation unit is performing image processing on at least one of the first image data and the second image data; The first position can be calculated based on the first image data subjected to the image processing, 82.
  • the control device according to any one of appendices 47 to 81, wherein the second position can be calculated based on the shape data generated from the second image data on which the image processing has been performed.
  • the calculation unit is performing image processing on at least one of the two first image data and the two second image data; It is possible to calculate the first amount of change based on the two first image data subjected to the image processing, 76. Any one of claims 51 to 71, 73 and 75, wherein the second amount of change can be calculated based on the second shape data generated from the two pieces of second image data subjected to the image processing.
  • a control device according to any one of the preceding paragraphs.
  • Appendix 84 84.
  • the imaging unit generates at least one of the second image data and the two second image data by imaging the object onto which pattern light is projected from a light projection device provided on the robot arm. 85.
  • a control device according to any one of clauses 47-84.
  • [Appendix 86] a control device according to any one of claims 47 to 85;
  • a control system comprising: the imaging unit; [Appendix 87]
  • the imaging unit includes a first imaging device and a second imaging device, a first filter that attenuates a light component in a first wavelength band of light from the object; a second filter that attenuates a light component in a second wavelength band different from the first wavelength band out of the light from the object,
  • the first imaging device captures an image of the object by receiving light from the object through the first filter, 87.
  • the control system of Claim 86 wherein the second imaging device images the object by receiving light from the object through the second filter.
  • Appendix 88 a first illumination device that illuminates the object with first illumination light containing a light component in the first wavelength band; 88.
  • the control system of clause 87 further comprising: a second illumination device that illuminates the object with a second illumination light that includes a light component in the second wavelength band.
  • Appendix 89 89.
  • the present invention is not limited to the above-described embodiments, and can be modified as appropriate within the scope not contrary to the gist or idea of the invention that can be read from the scope of claims and the entire specification.
  • a control system, a robot system, a control method and a computer program are also included in the technical scope of the present invention.

Landscapes

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

Abstract

制御装置は、第1及び第2撮像装置と物体との相対移動中に第1撮像装置が物体を撮像することで取得される第1画像データに基づいて、第1から第3軸で規定される第1座標系内での、第1から第3軸とそれぞれ平行な第1から第3方向の少なくとも一つにおける物体の位置と、第1から第3軸の少なくとも一つの周りの物体の姿勢との少なくとも一方を含む第1位置を算出し、相対移動中に第2撮像装置が物体を撮像することで取得される第2画像データから生成され且つ物体の三次元形状を示す形状データに基づいて、第4から第6軸で規定される第2座標系内での、第4から第6軸とそれぞれ平行な第4から第6方向の少なくとも一つにおける物体の位置と、第4から第6軸の少なくとも一つの周りの物体の姿勢との少なくとも一方を含む第2位置を算出し、第1及び第2位置に基づいて制御信号を生成し、制御信号を第1周期で出力する。

Description

制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
 本発明は、例えば、ロボットを制御するための制御信号を生成可能な制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの技術分野に関する。
 ロボットが行う処理の対象となっている物体の位置を算出し、算出した位置に基づいてロボットを制御する制御装置の一例が、特許文献1に記載されている。このような制御装置では、物体の位置を精度よく算出することが求められる。
米国特許出願公開第2013/0230235号明細書
 第1の態様によれば、物体に対して処理を行う処理装置と第1画像データを出力する第1撮像装置と第2画像データを出力する第2撮像装置とが設けられ、且つ、前記処理装置と前記第1及び第2撮像装置とを移動させるロボットアームを制御するための制御信号を生成する制御装置であって、前記制御信号を生成する演算部と、前記演算部で生成された前記制御信号を出力する出力部とを備え、前記演算部は、前記第1及び第2撮像装置と前記物体との相対移動中に前記第1撮像装置が前記物体を撮像することで取得される前記第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出し、前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系とは異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出し、前記第1位置及び前記第2位置に基づいて前記制御信号を生成し、前記出力部は、前記演算部で前記第1位置及び前記第2位置に基づいて生成された前記制御信号を第1所定周期で出力する制御装置が提供される。
 第2の態様によれば、第1の態様によって提供される制御装置と、前記第1撮像装置と、前記第2撮像装置とを備える制御システムが提供される。
 第3の態様によれば、第1の態様によって提供される制御装置と、前記第1撮像装置と、前記第2撮像装置と、前記ロボットアームとを備えるロボットシステムが提供される。
 第4の態様によれば、物体に対して処理を行う処理装置と第1画像データを出力する第1撮像装置と第2画像データを出力する第2撮像装置とが設けられ、且つ、前記処理装置と前記第1及び第2撮像装置とを移動させるロボットアームを制御するための制御信号を生成する制御方法であって、前記第1及び第2撮像装置と前記物体との相対移動中に前記第1撮像装置が前記物体を撮像することで取得される前記第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出することと、前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系とは異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出することと、前記第1位置及び前記第2位置に基づいて前記制御信号を生成することと、前記第1位置及び前記第2位置に基づいて生成された前記制御信号を所定周期で出力することとを含む制御方法が提供される。
 第5の態様によれば、コンピュータに、第4の態様によって提供される制御方法を実行させるコンピュータプログラムが提供される。
 本発明の作用及び他の利得は次に説明する実施するための形態から明らかにされる。
図1は、本実施形態のロボットシステムの構成を示すブロック図である。 図2は、本実施形態のロボットの外観を示す側面図である。 図3は、本実施形態の制御装置の構成を示すブロック図である。 図4は、ロボット制御処理の流れを示すフローチャートである。 図5(a)から図5(d)のそれぞれは、支持面上を移動している載置装置に載置されているワークを掴むための掴み処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図6(a)から図6(d)のそれぞれは、支持面上を移動している載置装置上にワークを配置するための配置処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図7は、マッチング処理及びトラッキング処理を行うことでワークWの位置を算出するための論理的な処理ブロックを示すブロック図である。 図8は、2Dマッチング処理を模式的に示す。 図9は、撮像装置がワーク画像を生成するタイミングと2Dマッチング部が2Dマッチング処理を行うタイミングとの関係を示すタイミングチャートである。 図10は、3Dマッチング処理を模式的に示す。 図11は、撮像装置がワーク画像を生成するタイミングと3Dマッチング部が3Dマッチング処理を行うタイミングとの関係を示すタイミングチャートである。 図12は、ワーク形状データの一部である3Dマッチング対象データを模式的に示す。 図13は、2Dトラッキング処理を模式的に示す。 図14は、撮像装置がワーク画像を生成するタイミングと2Dトラッキング部が2Dトラッキング処理を行うタイミングとの関係を示すタイミングチャートである。 図15は、3Dトラッキング処理を模式的に示す。 図16は、撮像装置がワーク画像を生成するタイミングと3Dトラッキング部が3Dトラッキング処理を行うタイミングとの関係を示すタイミングチャートである。 図17は、2Dマッチング部が2Dマッチング処理を行うタイミングと2Dトラッキング部が2Dトラッキング処理を行うタイミングとの関係を示すタイミングチャートである。 図18は、第1変形例における制御装置の構成を示すブロック図である。 図19は、平面除去処理を模式的に示す。 図20は、撮像ユニットの構成を示すブロック図である。 図21は、ハイダイナミックレンジ合成処理を模式的に示す。 図22は、ノイズ除去処理を模式的に示す。 図23は、第2変形例におけるロボットシステムの構成を示すブロック図である。 図24は、第3変形例におけるロボットシステムの外観を示すブロック図である。
 以下、図面を参照しながら、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態について説明する。以下では、ロボットシステムSYSを用いて、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態の実施形態について説明する。
 (1)ロボットシステムSYSの構成
 はじめに、ロボットシステムSYSの構成について説明する。
 (1-1)ロボットシステムSYSの全体構成
 はじめに、図1を参照しながら、ロボットシステムSYSの全体構成について説明する。図1は、ロボットシステムSYSの全体構成を示すブロック図である。
 図1に示すように、ロボットシステムSYSは、ロボット1と、撮像ユニット2と、制御装置3とを備えている。
 ロボット1は、物体の一例であるワークWに対して所定の処理を行うことが可能な装置である。ロボット1の一例が図2に示されている。図2は、ロボット1の外観を示す側面図である。図2に示すように、ロボット1は、例えば、基台11と、ロボットアーム12と、エンドエフェクタ13と、ロボット制御装置14とを備えている。
 基台11は、ロボット1の基礎となる部材である。基台11は、床面等の支持面Sに配置される。基台11は、支持面Sに固定されていてもよい。或いは、基台11は、支持面Sに対して移動可能であってもよい。一例として、基台11は、支持面S上を自走可能であってもよい。この場合、基台11は、自動搬送車(AGV:Automatic Guided Vehicle)に設置されていてもよい。尚、図2は、基台11が支持面Sに固定されている例を示している。
 ロボットアーム12は、基台11に取り付けられている。ロボットアーム12は、複数のリンク121がジョイント122を介して連結された装置である。ジョイント122には、アクチュエータが内蔵されている。リンク121は、ジョイント122に内蔵されたアクチュエータによって、ジョイント122が規定する軸周りに回転可能であってもよい。尚、少なくとも一つのリンク121は、リンク121が延びる方向に沿って伸縮可能であってもよい。尚、複数のリンク121がジョイント122を介して連結された装置と基台11とを含む装置を、ロボットアーム12と称してもよい。
 エンドエフェクタ13は、ロボットアーム12に取り付けられる。図2に示す例では、エンドエフェクタ13は、ロボットアーム12の先端に取り付けられている。エンドエフェクタ13は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、エンドエフェクタ13を移動させる。
 エンドエフェクタ13は、ワークWに対して所定の処理を行う装置である。例えば、エンドエフェクタ13は、ワークWを掴むための掴み処理を行ってもよい。例えば、エンドエフェクタ13は、エンドエフェクタ13が掴んでいるワークWを所望位置に配置するための配置処理を行ってもよい。例えば、エンドエフェクタ13は、エンドエフェクタ13が掴んでいるワークWを、ワークWとは異なる他の物体にはめ込むためのはめ込み処理を行ってもよい。掴み処理、配置処理及びはめ込み処理の少なくとも一つを行うエンドエフェクタ13の一例として、ワークWを物理的に挟み込むことでワークWを掴むことが可能なハンドグリッパー及びワークWを真空吸着することでワークWを掴むことが可能なバキュームグリッパーの少なくとも一つがあげられる。図2は、エンドエフェクタ13がハンドグリッパーである例を示している。
 尚、図2は、ロボット1が、ロボットアーム12を備えるロボット(つまり、垂直多関節型ロボット)である例を示している。しかしながら、ロボット1は、垂直多関節型ロボットとは異なるロボットであってもよい。例えば、ロボット1は、スカラロボット(つまり、水平多関節型ロボット)であってもよい。例えば、ロボット1は、パラレルリンクロボットであってもよい。例えば、ロボット1は、ロボットアーム12を二つ備える双腕型ロボットであってもよい。例えば、ロボット1は、直交座標型ロボットであってもよい。
 エンドエフェクタ13が所定の処理を行うワークWは、載置装置4に載置されていてもよい。載置装置4は、支持面S上に配置されていてもよい。載置装置4は、支持面Sに固定されていてもよい。或いは、載置装置4は、支持面Sに対して移動可能であってもよい。一例として、載置装置4は、支持面S上を自走可能であってもよい。尚、図2は、載置装置4が支持面S上を自走可能である例を示している。この場合、載置装置4は、自動搬送車(AGV:Automatic Guided Vehicle)と称されてもよい。尚、載置装置4は、ベルトコンベアと称されてもよい。
 ロボット制御装置14は、ロボット1の動作を制御する。一例として、ロボット制御装置14は、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置14は、所望のリンク121が所望のジョイント122が規定する軸周りに回転するように、ロボットアーム12の動作を制御してもよい。ロボット制御装置14は、ロボットアーム12に取り付けられたエンドエフェクタ13が所望位置に位置する(言い換えれば、移動する)ように、ロボットアーム12の動作を制御してもよい。他の一例として、ロボット制御装置14は、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングでワークWを掴むように、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングでワークWを所望位置に配置する(つまり、掴んでいたワークWをリリースする)ように、エンドエフェクタ13の動作を制御してもよい。エンドエフェクタ13がハンドグリッパーである場合には、ロボット制御装置14は、ハンドグリッパーが開閉するタイミングを制御してもよい。エンドエフェクタ13がバキュームグリッパーである場合には、ロボット制御装置14は、バキュームグリッパーのバキュームをオン・オフするタイミングを制御してもよい。
 再び図1において、撮像ユニット2は、対象物体(例えば、ワークW)を撮像する。ワークWを撮像するために、撮像ユニット2は、撮像装置21と、撮像装置22と、投影装置23とを備えている。
 撮像装置21は、対象物体(例えば、ワークW)を撮像可能なカメラである。撮像装置21は、ワークWを撮像することで、ワーク画像データIMG_2Dを生成する。撮像装置21が生成したワーク画像データIMG_2Dは、撮像装置21から制御装置3に出力される。本実施形態では、撮像装置21は、単眼カメラである。具体的には、撮像装置21は、単眼カメラ(言い換えれば、撮像素子)を用いてワークWを撮像可能である。尚、撮像装置21は、単眼カメラに限られない。撮像装置21は、2つの単眼カメラを用いてワークWを撮像可能なステレオカメラであってもよいし、3つ以上の単眼カメラを含んでいてもよい。尚、撮像装置21は、ライトフィールドカメラ、プレノプティックカメラ、及びマルチスペクトルカメラの少なくとも一つであってもよい。
 撮像装置22は、撮像装置21と同様に、対象物体(例えば、ワークW)を撮像可能なカメラである。本実施形態では、撮像装置22は、ステレオカメラである。具体的には、撮像装置22は、二つの単眼カメラ(言い換えれば、二つの撮像素子)を用いてワークWを撮像可能なステレオカメラである。撮像装置22は、ワークWを撮像することで、ワーク画像データIMG_3Dを生成する。具体的には、撮像装置22がステレオカメラであるがゆえに、撮像装置22は、二つの単眼カメラがそれぞれ生成する二つの画像データを含むワーク画像データIMG_3Dを生成する。撮像装置22が生成したワーク画像データIMG_3Dは、撮像装置22から制御装置3に出力される。尚、撮像装置22は、ステレオカメラに限られない。撮像装置22は、単眼カメラであってもよいし、3つ以上の単眼カメラを含んでいてもよい。尚、撮像装置22は、ライトフィールドカメラ、プレノプティックカメラ、及びマルチスペクトルカメラの少なくとも一つであってもよい。
 投影装置23は、対象物体(例えば、ワークW)に投影光を照射可能な装置である。特に、投影装置23は、ワークWに投影光を照射することで、ワークWに所望の投影パターンを投影可能な装置である。所望の投影パターンは、例えば、ランダムパターンを含んでいてもよい。ランダムパターンは、単位照射領域毎に異なるパターンを有する投影パターンであってもよい。ランダムパターンは、ランダムドットパターンを含んでいてもよい。所望の投影パターンは、ランダムパターンに限らず、例えば、一次元又は二次元の格子パターンを含んでいてもよいし、格子パターンとは異なるパターンを含んでいてもよい。撮像装置22は、投影パターンが投影されているワークWを撮像する。この場合、ワーク画像データIMG_3Dが示す画像には、投影パターンが投影されているワークWが写り込んでいる。一方で、撮像装置21は、投影パターンが投影されているワークWを撮像しなくてもよい。撮像装置21は、投影パターンが投影されていないワークWを撮像してもよい。この場合、ワーク画像データIMG_2Dが示す画像には、投影パターンが投影されているワークWが写り込んでいなくてもよい。ワーク画像データIMG_2Dが示す画像には、投影パターンが投影されていないワークWが写り込んでいてもよい。
 尚、投影装置23は、ワークWに投影光を照射することで、ワークWを投影光で照明しているとみなしてもよい。この場合、投影装置23は、ワークWを照明する照明装置として機能してもよい。投影装置23が照明装置として機能する場合には、投影光は、照明光と称されてもよい。投影装置23が照明装置として機能する場合には、投影光は、ワークWに所望の投影パターンを投影可能な光でなくてもよい。
 撮像ユニット2は、エンドエフェクタ13と同様に、ロボットアーム12に設けられている。つまり、撮像装置21及び22並びに投影装置23は、ロボットアーム12に取り付けられる。例えば、図2に示すように、撮像装置21及び22並びに投影装置23は、エンドエフェクタ13と同様に、ロボットアーム12の先端に取り付けられていてもよい。この場合、撮像装置21及び22並びに投影装置23は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、撮像装置21及び22並びに投影装置23を移動させる。尚、撮像ユニット2は、ロボットアーム12に設けられていなくてもよい。撮像ユニット2は、ワークWに投影光を照射可能で且つワークWを撮像可能な任意の位置に設けられていてもよい。尚、撮像ユニット2のうちの撮像装置21、撮像装置22、及び投影装置23の少なくとも一つが、ロボットアーム12に設けられ、撮像ユニット2のうちの撮像装置21、撮像装置22、及び投影装置23の他の少なくとも一つが、ロボットアーム12とは異なる場所に設けられていてもよい。
 撮像装置21及び22は、互いに同期しながらワークWを撮像してもよい。例えば、撮像装置21及び22は、同時にワークWを撮像してもよい。つまり、撮像装置21及び22は、撮像装置21がワークWを撮像する時刻と撮像装置22がワークWを撮像する時刻とが同じになるように、ワークWを撮像してもよい。但し、撮像装置21及び22は、同時にワークWを撮像しなくてもよい。つまり、撮像装置21及び22は、撮像装置21がワークWを撮像する時刻と撮像装置22がワークWを撮像する時刻とが異なるものとなるように、ワークWを撮像してもよい。
 制御装置3は、ロボット制御処理を行う。ロボット制御処理は、ロボット1を制御するためのロボット制御信号を生成する処理である。具体的には、制御装置3は、撮像ユニット2から出力されるワーク画像データIMG_2D及びIMG_3Dに基づいて、ロボット制御信号を生成する。本実施形態では、制御装置3は、ワーク画像データIMG_2D及びIMG_3Dに基づいて、ロボットシステムSYSのグローバル座標系内でのワークWの位置を算出し、算出したワークWの位置に基づいて、ロボット制御信号を生成する。例えば、グローバル座標系は、ロボット1を基準とする座標系とも言える。尚、制御装置3は、ワーク画像データIMG_2D及びIMG_3Dに基づいて、ロボットシステムSYSのグローバル座標系とは異なる座標系内(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は共通座標系内)でのワークWの位置を算出し、算出したワークWの位置に基づいて、ロボット制御信号を生成してもよい。
 このように、制御装置3及び撮像ユニット2は、ロボット1を制御するために用いられる。このため、制御装置3及び撮像ユニット2を含むシステムは、ロボット制御システム又は制御システムと称されてもよい。
 制御装置3が生成したロボット制御信号は、ロボット1のロボット制御装置14に出力される。ロボット制御装置14は、制御装置3が生成したロボット制御信号に基づいて、ロボット1の動作を制御(例えば、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動を制御)する。このため、ロボット制御信号は、ロボット1の動作を制御するための信号を含んでいてもよい。
 ロボット制御信号は、ロボット制御装置14がロボット1の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置14がロボット1の動作を制御するために用いるロボット駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号をそのまま用いて、ロボット1の動作を制御してもよい。具体的には、例えば、制御装置3は、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号をロボット制御信号として生成し、ロボット制御装置14は、制御装置3が生成したロボット制御信号(つまり、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号)をそのまま用いて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。その結果、ロボット制御装置14は、ロボットアーム12を動かすことができる。例えば、制御装置3は、ロボットアーム12に取り付けられたエンドエフェクタ13を動かすアクチュエータの駆動信号をロボット制御信号として生成し、ロボット制御装置14は、制御装置3が生成したロボット制御信号(つまり、エンドエフェクタ13を動かすアクチュエータの駆動信号)をそのまま用いて、エンドエフェクタ13を動かすアクチュエータを制御してもよい。その結果、ロボット制御装置14は、エンドエフェクタ13を動かすことができる。
 或いは、ロボット制御信号は、ロボット制御装置14がロボット1の動作を制御するためのロボット駆動信号を生成するために利用可能な信号を含んでいてもよい。尚、ロボット制御装置14がロボット1の動作を制御するためのロボット駆動信号を生成するために利用可能な信号は、ロボット制御装置14がロボット1の動作を制御する基となる信号とも言える。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット1の動作を制御するための信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。その結果、ロボット制御装置14は、ロボットアーム12を動かすことができる。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13を動かすアクチュエータの駆動信号を生成し、生成した信号に基づいて、エンドエフェクタ13を動かすアクチュエータを制御してもよい。その結果、ロボット制御装置14は、エンドエフェクタ13を動かすことができる。
 尚、ロボット制御装置14がロボット1の動作を制御するための信号を生成するために利用可能な信号は、グローバル座標系でのワークWの位置を表す信号であってもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された、グローバル座標系でのワークWにエンドエフェクタ13が近づくように(つまり、ロボット1とワークWとの位置関係が所望の位置関係となるように)、ロボットアーム12のロボットジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。尚、ロボット制御装置14がロボット1の動作を制御するための信号を生成するために利用可能な信号は、グローバル座標系でのロボット1とワークWとの所望の位置関係を表す信号であってもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された、グローバル座標系でのロボット1とワークWとの所望の位置関係になるように、ロボットアーム12のロボットジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。尚、ロボット制御装置14がロボット1の動作を制御するための信号を生成するために利用可能な信号は、グローバル座標系でのエンドエフェクタ13の所望の位置を表す信号を含んでいてもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された、グローバル座標系でのエンドエフェクタ13の所望の位置になるように(つまり、ロボット1とワークWとの位置関係が所望の位置関係となるように)、ロボットアーム12のロボットジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。一例として、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された位置に位置するワークWをエンドエフェクタ13が掴むことが可能な位置にエンドエフェクタ13が移動するように、ロボットアーム12のロボットジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。他の一例として、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された位置に位置するワークWを掴んだエンドエフェクタ13が、ワークWが載置されていた載置装置4から離れるように、ロボットアーム12のロボットジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボット1の動作を制御してもよい。尚、ロボット制御装置14がロボット1の動作を制御するための信号を生成するために利用可能な信号は、例えば、グローバル座標系での所望のロボットアーム12の所望の先端部の位置を表す信号であってもよいし、グローバル座標系での撮像ユニット2の所望の位置を表す信号であってもよい。なお、ロボット制御信号で基準となる座標系は、グローバル座標系以外の座標系(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は共通座標系内)であってもよい。
 (1-2)制御装置3の構成
 続いて、図3を参照しながら、制御装置3の構成について説明する。図3は、制御装置3の構成を示すブロック図である。
 図3に示すように、制御装置3は、演算装置31と、記憶装置32と、通信装置33とを備えている。更に、制御装置3は、入力装置34と、出力装置35とを備えていてもよい。但し、制御装置3は、入力装置34及び出力装置35のうちの少なくとも一つを備えていなくてもよい。演算装置31と、記憶装置32と、通信装置33と、入力装置34と、出力装置35とは、データバス36を介して接続されていてもよい。
 演算装置31は、例えば、CPU(Central Processing Unit)、GPU(Graphics Proecssing Unit)及びFPGA(Field Programmable Gate Array)のうちの少なくとも一つを含む。演算装置31は、コンピュータプログラムを読み込む。例えば、演算装置31は、記憶装置32が記憶しているコンピュータプログラムを読み込んでもよい。例えば、演算装置31は、コンピュータで読み取り可能であって且つ一時的でない記録媒体が記憶しているコンピュータプログラムを、制御装置3が備える図示しない記録媒体読み取り装置を用いて読み込んでもよい。演算装置31は、通信装置33(或いは、その他の通信装置)を介して、制御装置3の外部に配置される不図示の装置からコンピュータプログラムを取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。演算装置31は、読み込んだコンピュータプログラムを実行する。その結果、演算装置31内には、制御装置3が行うべき処理(例えば、上述したロボット制御処理)を実行するための論理的な機能ブロックが実現される。つまり、演算装置31は、制御装置3が行うべき処理を実行するための論理的な機能ブロックを実現するためのコントローラとして機能可能である。
 演算装置31内には、演算装置がコンピュータプログラムを実行することで、機械学習によって構築可能な演算モデルが実装されてもよい。機械学習によって構築可能な演算モデルの一例として、例えば、ニューラルネットワークを含む演算モデル(いわゆる、人工知能(AI:Artificial Intelligence))があげられる。この場合、演算モデルの学習は、ニューラルネットワークのパラメータ(例えば、重み及びバイアスの少なくとも一つ)の学習を含んでいてもよい。演算装置31は、演算モデルを用いて、ロボット制御処理を実行してもよい。つまり、ロボット制御処理を実行する動作は、演算モデルを用いてロボット制御処理を実行する動作を含んでいてもよい。尚、演算装置31には、教師データを用いたオフラインでの機械学習により構築済みの演算モデルが実装されてもよい。また、演算装置31に実装された演算モデルは、演算装置31上においてオンラインでの機械学習によって更新されてもよい。或いは、演算装置31は、演算装置31に実装されている演算モデルに加えて又は代えて、演算装置31の外部の装置(つまり、制御装置3の外部に設けられる装置)に実装された演算モデルを用いて、ロボット制御処理を実行してもよい。
 尚、演算装置31が実行するコンピュータプログラムを記録する記録媒体としては、CD-ROM、CD-R、CD-RWやフレキシブルディスク、MO、DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW及びBlu-ray(登録商標)等の光ディスク、磁気テープ等の磁気媒体、光磁気ディスク、USBメモリ等の半導体メモリ、及び、その他プログラムを格納可能な任意の媒体の少なくとも一つが用いられてもよい。記録媒体には、コンピュータプログラムを記録可能な機器(例えば、コンピュータプログラムがソフトウェア及びファームウェア等の少なくとも一方の形態で実行可能な状態に実装された汎用機器又は専用機器)が含まれていてもよい。更に、コンピュータプログラムに含まれる各処理や機能は、演算装置31(つまり、コンピュータ)がコンピュータプログラムを実行することで演算装置31内に実現される論理的な処理ブロックによって実現されてもよいし、演算装置31が備える所定のゲートアレイ(FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit))等のハードウェアによって実現されてもよいし、論理的な処理ブロックとハードウェアの一部の要素を実現する部分的ハードウェアモジュールとが混在する形式で実現してもよい。
 図3には、ロボット制御処理を実行するために演算装置31内に実現される論理的な機能ブロックの一例が示されている。図3に示すように、演算装置31内には、形状データ生成部311と、位置算出部312と、信号生成部313とが実現される。尚、形状データ生成部311、位置算出部312及び信号生成部313のそれぞれが行う処理については、後に図4等を参照しながら詳述するため、ここでの説明を省略する。
 記憶装置32は、所望のデータを記憶可能である。例えば、記憶装置32は、演算装置31が実行するコンピュータプログラムを一時的に記憶していてもよい。記憶装置32は、演算装置31がコンピュータプログラムを実行している場合に演算装置31が一時的に使用するデータを一時的に記憶してもよい。記憶装置32は、制御装置3が長期的に保存するデータを記憶してもよい。尚、記憶装置32は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。つまり、記憶装置32は、一時的でない記録媒体を含んでいてもよい。
 通信装置33は、不図示の通信ネットワークを介して、ロボット1及び撮像ユニット2のそれぞれと通信可能である。或いは、通信装置33は、不図示の通信ネットワークを介して、ロボット1及び撮像ユニット2の少なくとも一方に加えて又は代えて、ロボット1及び撮像ユニット2とは異なる他の装置と通信可能であってもよい。本実施形態では、通信装置33は、撮像ユニット2から、ワーク画像データIMG_2D及びIMG_3Dを受信(つまり、取得)してもよい。更に、通信装置33は、ロボット1に、ロボット制御信号を送信(つまり、出力)してもよい。
 入力装置34は、制御装置3の外部からの制御装置3に対する情報の入力を受け付ける装置である。例えば、入力装置34は、制御装置3のユーザが操作可能な操作装置(例えば、キーボード、マウス及びタッチパネルのうちの少なくとも一つ)を含んでいてもよい。例えば、入力装置34は、制御装置3に対して外付け可能な記録媒体にデータとして記録されている情報を読み取り可能な記録媒体読取装置を含んでいてもよい。
 尚、制御装置3には、通信装置33を介して、制御装置3の外部の装置から情報がデータとして入力可能である。この場合、通信装置33は、制御装置3の外部からの制御装置3に対する情報の入力を受け付ける入力装置として機能してもよい。
 出力装置35は、制御装置3の外部に対して情報を出力する装置である。例えば、出力装置35は、情報を画像として出力してもよい。つまり、出力装置35は、画像を表示可能な表示装置(いわゆる、ディスプレイ)を含んでいてもよい。例えば、出力装置35は、情報を音声として出力してもよい。つまり、出力装置35は、音声を出力可能な音声装置(いわゆる、スピーカ)を含んでいてもよい。例えば、出力装置35は、紙面に情報を出力してもよい。つまり、出力装置35は、紙面に所望の情報を印刷可能な印刷装置(いわゆる、プリンタ)を含んでいてもよい。例えば、出力装置35は、制御装置3に外付け可能な記録媒体に、情報をデータとして出力してもよい。
 尚、制御装置3からは、通信装置33を介して制御装置3の外部の装置に対して情報がデータとして出力可能である。この場合、通信装置33は、制御装置3の外部に対して情報を出力する出力装置として機能してもよい。
 (2)ロボット制御処理
 続いて、制御装置3が行うロボット制御処理について説明する。
 (2-1)ロボット制御処理の流れ
 初めに、図4を参照しながら、ロボット制御処理の流れについて説明する。図4は、ロボット制御処理の流れを示すフローチャートである。
 図4に示すように、制御装置3は、通信装置33を用いて、撮像装置21からワーク画像データIMG_2Dを取得する(ステップS1)。具体的には、撮像装置21は、所定の2D撮像レートでワークWを撮像する。例えば、撮像装置21は、一秒間に数十回から数百回(一例として、500回)ワークWを撮像する2D撮像レートで、ワークWを撮像してもよい。その結果、撮像装置21は、所定の2D撮像レートに応じた周期でワーク画像データIMG_2Dを生成する。例えば、撮像装置21は、一秒間に数十個から数百個(一例として、500個)のワーク画像データIMG_2Dを生成してもよい。制御装置3は、撮像装置21がワーク画像データIMG_2Dを生成する都度、ワーク画像データIMG_2Dを取得する。つまり、制御装置3は、一秒間に数十個から数百個(一例として、500個)のワーク画像データIMG_2Dを取得してもよい。
 制御装置3は更に、通信装置33を用いて、撮像装置22からワーク画像データIMG_3Dを取得する(ステップS1)。具体的には、撮像装置22は、所定の3D撮像レートでワークWを撮像する。3D撮像レートは、2D撮像レートと同じである。但し、3D撮像レートは、2D撮像レートと異なっていてもよい。例えば、撮像装置22は、一秒間に数十回から数百回(一例として、500回)ワークWを撮像する3D撮像レートで、ワークWを撮像してもよい。その結果、撮像装置22は、所定の3D撮像レートに応じた周期でワーク画像データIMG_3Dを生成する。例えば、撮像装置22は、一秒間に数十個から数百個(一例として、500個)のワーク画像データIMG_3Dを生成してもよい。制御装置3は、撮像装置22がワーク画像データIMG_3Dを生成する都度、ワーク画像データIMG_3Dを取得する。つまり、制御装置3は、一秒間に数十個から数百個(一例として、500個)のワーク画像データIMG_3Dを取得してもよい。
 制御装置3がワーク画像データIMG_3Dを取得する都度、形状データ生成部311は、取得したワーク画像データIMG_3Dに基づいて、ワークWの三次元形状を示すワーク形状データWSDを生成する(ステップS2)。上述したように、ワーク画像データIMG_3Dが示す画像には、投影パターンが投影されているワークWが写り込んでいる。この場合、ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンには、投影パターンが投影されているワークWの三次元形状が反映されている。ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンの形状には、投影パターンが投影されているワークWの三次元形状が反映されている。このため、形状データ生成部311は、ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、ワーク形状データWSDを生成する。例えば、形状データ生成部311は、ワーク画像データIMG_3Dに含まれる二つの画像データのそれぞれが示す画像同士の各部(例えば各画素)について対応付けを行うことで視差を算出する。具体的には、この対応付けにおいて、形状データ生成部311は、二つの画像データのそれぞれが示す画像に写り込んでいる投影パターンの各部(つまり、それぞれの画像に写り込んでいる投影パターン同士の各部)について対応付けを行うことで視差を算出する。形状データ生成部311は、算出した視差を用いた三角測量の原理に基づく周知の方法でワーク形状データWSDを生成する(つまり、ワークWの三次元形状を算出する)。投影パターンが写り込んでいない画像同士の各部の対応付けを行うよりも、投影パターンが写り込んだ画像同士の各部(つまり、写り込んだ投影パターン同士の各部)の対応付けを行う方が、視差の算出精度がより高くなる。したがって、生成されるワーク形状データWSDの精度(つまり、ワークWの三次元形状の算出精度)がより高くなる。
 ワーク形状データWSDは、ワークWの三次元形状を示すことができる限りは、どのようなデータであってもよい。ワーク形状データWSDの一例として、深度画像データがあげられる。深度画像データは、深度画像データが示す深度画像の各画素に、輝度情報に加えて深度情報が関連付けられた画像である。深度情報は、各画素に写り込んでいる物体の各部分と撮像装置22との間の距離(つまり、奥行き)を示す情報である。なお、深度画像データは、各画素の輝度情報が物体の各部分の深度(物体の各部分と撮像装置22との間の距離)示す画像であってもよい。形状データ生成部311は、ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、ワーク画像データIMG_3Dが示す画像に写り込んでいる物体の各部分と撮像装置22との間の距離を算出し、ワーク画像データIMG_3Dの各画素に算出した距離を深度情報として関連付けることで、深度画像を生成してもよい。ワーク形状データWSDの他の一例として、点群データがあげられる。点群データは、ワーク画像データIMG_3Dが示す画像に写り込んでいる物体の各部分に対応する点の三次元空間内での集合を示すデータである。形状データ生成部311は、深度画像データと撮像装置22のカメラパラメータとに基づいて、点群データを生成してもよい。
 その後、位置算出部312は、ステップS1において取得されたワーク画像データIMG_2DとステップS2において生成されたワーク形状データWSDとに基づいて、ワークWの位置を算出する(ステップS3)。例えば、位置算出部312は、ワークWの特徴点の位置を算出してもよい。ワークWの特徴点の一例として、ワークWの中心、ワークWの重心、ワークWの頂点、ワークWの表面の中心、及び、ワークWの表面の重心のうちの少なくとも一つがあげられる。
 ステップS3では、位置算出部312は、グローバル座標系におけるワークWの位置を算出する。グローバル座標系は、ロボットシステムSYSの基準となる座標系である。具体的には、グローバル座標系は、ロボット1を制御するために用いられる座標系である。例えば、ロボット制御装置14は、グローバル座標系内の所望位置にエンドエフェクタ13が位置するように、ロボットアーム12を制御してもよい。グローバル座標系は、互いに直交するX軸(GL)、Y軸(GL)及びZ軸(GL)で規定される座標系である。X軸(GL)は、水平面に沿った軸であってもよい。Y軸(GL)は、水平面に沿った軸であってもよい。Z軸(GL)は、水平面に直交する軸であってもよい。Z軸(GL)は、重力方向に沿って延びる軸であってもよい。尚、図2に示すX軸、Y軸及びZ軸は、それぞれ、X軸(GL)、Y軸(GL)及びZ軸(GL)であってもよい。尚、グローバル座標系の原点は、図2に示すX軸(GL)、Y軸(GL)及びZ軸(GL)の原点でなくてもよい。例えば、グローバル座標系の原点は、図2の基台11の任意の位置であってもよいし、支持面Sの任意の位置であってもよいし、支持面Sに対する基台11の接触面の任意の位置(例えば、接触面の中心又は重心)であってもよい。
 位置算出部312は、グローバル座標系におけるワークWの位置として、X軸(GL)と平行なX軸方向(GL)におけるワークWの位置Tx、Y軸(GL)と平行なY軸方向(GL)におけるワークWの位置Ty及びZ軸(GL)と平行なZ軸方向(GL)におけるワークWの位置Tzのうちの少なくとも一つを算出してもよい。位置算出部312は、グローバル座標系におけるワークWの位置として、位置Tx、Ty及びTzの少なくとも一つに加えて又は代えて、X軸(GL)周りのワークWの回転量Rx、Y軸(GL)周りのワークWの回転量Ry及びZ軸(GL)周りのワークWの回転量Rzのうちの少なくとも一つを算出してもよい。X軸(GL)周りのワークWの回転量Rx、Y軸(GL)周りのワークWの回転量Ry及びZ軸(GL)周りのワークWの回転量Rzは、それぞれ、X軸(GL)周りのワークWの姿勢を表すパラメータ、Y軸(GL)周りのワークWの姿勢を表すパラメータ及びZ軸(GL)周りのワークWの姿勢を表すパラメータと等価であるとみなしてもよい。この場合、位置算出部312は、ワークWの位置として、X軸(GL)周りのワークWの姿勢、Y軸(GL)周りのワークWの姿勢及びZ軸(GL)周りのワークWの姿勢を算出しているとみなしてもよい。
 尚、X軸(GL)周りのワークWの回転量Rx、Y軸(GL)周りのワークWの回転量Ry及びZ軸(GL)周りのワークWの回転量Rzは、それぞれ、X軸(GL)周りの回転方向におけるワークWの位置、Y軸(GL)周りの回転方向におけるワークWの位置及びZ軸(GL)周りの回転方向におけるワークWの位置を示しているとみなしてもよい。つまり、X軸(GL)周りのワークWの回転量Rx、Y軸(GL)周りのワークWの回転量Ry及びZ軸(GL)周りのワークWの回転量Rzは、いずれも、ワークWの位置を表すパラメータであるとみなしてもよい。以下の説明では、用語の統一を図るために、X軸(GL)周りのワークWの回転量Rx、Y軸(GL)周りのワークWの回転量Ry及びZ軸(GL)周りのワークWの回転量Rzを、それぞれ、X軸(GL)周りの回転方向におけるワークWの位置Rx、Y軸(GL)周りの回転方向におけるワークWの位置Ry及びZ軸(GL)周りの回転方向におけるワークWの位置Rzと称する。
 尚、図4のステップS3のグローバル座標系におけるワークWの位置を算出する処理については、後に図7等を参照しながら詳述するため、ここでの説明は省略する。
 その後、信号生成部313は、ステップS3において算出されたワークWの位置に基づいて、ロボット制御信号を生成する(ステップS4)。例えば、信号生成部313は、ロボット1がワークWに対して所定の処理を行うように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1とワークWとの位置関係が所望の位置関係となるように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1とワークWとの位置関係が所望の位置関係となるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1とワークWとの位置関係が所望の位置関係となった時点でエンドエフェクタ13がワークWに対して所定の処理を行うように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1とワークWとの位置関係が所望の位置関係となった時点でワークWに対して所定の処理を行うようにエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。なお、エンドエフェクタ13の動作を制御するためのロボット制御信号は、エンドエフェクタ制御信号ともいえる。
 一例として、図5(a)から図5(d)のそれぞれは、支持面S上を移動しているAGV(Automatic Guided Vehicle)などの載置装置4に載置されているワークWを掴むための掴み処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図5(a)に示すように、信号生成部313は、移動するワークWの直上の空間に向かってエンドエフェクタ13が移動するようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図5(b)に示すように、信号生成部313は、移動するワークWの直上に位置するエンドエフェクタ13が、ワークWの直上に位置し続けたまま、ワークWを掴むことができるようになるまでワークWに近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図5(c)に示すように、信号生成部313は、移動するワークWを掴むことができる位置に位置するエンドエフェクタ13が、移動するワークWに追従しながらワークWを掴むようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。図5(d)に示すように、信号生成部313は、ワークWを掴んだエンドエフェクタ13が、ワークWを掴んだまま移動するワークWから離れるようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。
 尚、ロボット1がエンドエフェクタ13を用いてワークWを掴んだ場合には、ロボット1は、掴んだワークWを載置装置4上に載置してもよい。つまり、ロボット1は、載置装置4上にワークWを配置するための配置処理を行ってもよい。この場合、制御装置3は、ワークWの位置を算出する場合と同様の動作を行うことで、載置装置4の位置(例えば、載置装置4のうちのワークWを載置するべき部分の位置)を算出し、算出した載置装置4の位置に基づいて、ロボット制御信号を生成してもよい。具体的には、撮像装置21は、載置装置4を撮像することで、載置装置4が写り込んだワーク画像データIMG_2Dを生成してもよい。尚、撮像装置21がワークWとは異なる物体を撮像する場合には、撮像装置21が生成するワーク画像データIMG_2Dは、ワークWとは異なる物体が写り込んだ又はワークWが写り込んでいない画像を示す画像データであってもよい。また、撮像装置22は、載置装置4を撮像することで、載置装置4が写り込んだワーク画像データIMG_3Dを生成してもよい。尚、撮像装置22がワークWとは異なる物体を撮像する場合には、ワーク画像データIMG_3Dは、ワークWとは異なる物体が写り込んだ又はワークWが写り込んでいない画像を示す画像データであってもよい。制御装置3は、載置装置4を撮像することで生成されるワーク画像データIMG_2D及びIMG_3Dに基づいて、載置装置4の位置を算出し、算出した載置装置4の位置に基づいて、ロボット1が配置処理を行うように、ロボット制御信号を生成してもよい。例えば、図6(a)から図6(d)のそれぞれは、支持面S上を移動している載置装置4上にワークWを配置するための配置処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図6(a)に示すように、信号生成部313は、算出した載置装置4の位置に基づいて、ワークWを掴んでいるエンドエフェクタ13が、ワークWを掴んだまま、移動する載置装置4の直上の空間に移動するようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図6(b)に示すように、信号生成部313は、算出した載置装置4の位置に基づいて、移動する載置装置4の直上に位置し且つワークWを掴んでいるエンドエフェクタ13が、載置装置4の直上に位置し続け且つワークWを掴んだまま、ワークWを載置装置4に配置することができるようになるまで載置装置4に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図6(c)に示すように、信号生成部313は、算出した載置装置4の位置に基づいて、ワークWを載置装置4に配置することができる位置に位置するエンドエフェクタ13が、移動する載置装置4に追従しながら載置装置4にワークWを載置する(つまり、掴んでいたワークWをリリースする)ようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。図6(d)に示すように、信号生成部313は、算出した載置装置4の位置に基づいて、ワークWを載置装置4に配置し終えたエンドエフェクタ13が、載置装置4から離れるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。
 図6(a)から図6(d)の説明から分かるように、本実施形態では、制御装置3が位置を算出する対象物体は、ワークWに限らず、ワークWとは異なる任意の物体(図6(a)から図6(d)に示す例では、載置装置4)を含んでいてもよい。この場合、撮像装置21は、対象物体を撮像し、対象物体が写り込んだ画像を示すワーク画像データIMG_2Dを生成してもよい。尚、対象物体が写り込んだ画像を示すワーク画像データIMG_2Dは、単に画像データIMG_2Dと称されてもよい。また、撮像装置22は、対象物体を撮像し、対象物体が写り込んだ画像を示すワーク画像データIMG_3Dを生成してもよい。尚、対象物体が写り込んだ画像を示すワーク画像データIMG_3Dは、単に画像データIMG_3Dと称されてもよい。また、制御装置3の形状データ生成部311は、ワーク画像データIMG_3Dに基づいて、対象物体の三次元形状を示すワーク形状データWSDを生成してもよい。尚、対象物体の三次元形状を示すワーク形状データWSDは、単に形状データWSDと称されてもよい。制御装置3の位置算出部312は、ワーク画像データIMG_2D及びワーク形状データWSDに基づいて、対象物体の位置を算出してもよい。制御装置3の信号生成部313は、対象物体の位置に基づいて、ロボット制御信号を生成してもよい。例えば、信号生成部313は、対象物体にエンドエフェクタ13が近づくように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、移動する対象物体にエンドエフェクタ13が追従するように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、対象物体からエンドエフェクタ13が離れるように、ロボット制御信号を生成してもよい。尚、制御装置3が位置を算出する対象物体は、エンドエフェクタ13で処理を行う対象物体ともいえる。
 信号生成部313は、通信装置33を用いて、ステップS4において生成されたロボット制御信号をロボット1(特に、ロボット制御装置14)に出力する。その結果、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット1の動作(例えば、ロボットアーム12及びエンドエフェクタ13の少なくとも一つの動作)を制御する。
 以降、制御装置3は、ロボット制御処理を終了すると判定されるまで、ステップS1からステップS4までの一連の処理を繰り返す(ステップS5)。つまり、制御装置3は、ロボット制御信号に基づいてロボット1の動作が制御されている期間中も、撮像装置21及び22からワーク画像データIMG_2D及びIMG_3Dをそれぞれ取得し続ける。この場合、上述したようにロボット制御信号に基づいてロボット1の動作が制御されているがゆえに、撮像装置21及び22のそれぞれは、対象物体(例えば、ワークW)と撮像装置21及び22との相対移動中に、対象物体(例えば、ワークW)を撮像してもよい。例えば、撮像装置21及び22のそれぞれは、対象物体(例えば、ワークW)が静止している一方で撮像装置21及び22が移動している間に、対象物体(例えば、ワークW)を撮像してもよい。例えば、撮像装置21及び22のそれぞれは、対象物体(例えば、ワークW)が移動している一方で撮像装置21及び22が静止している間に、対象物体(例えば、ワークW)を撮像してもよい。例えば、撮像装置21及び22のそれぞれは、対象物体(例えば、ワークW)が移動し且つ撮像装置21及び22が移動している間に、対象物体(例えば、ワークW)を撮像してもよい。つまり、制御装置3は、対象物体(例えば、ワークW)と撮像装置21及び22との相対移動中に(つまり、撮像装置21及び22並びに対象物体(例えば、ワークW)の少なくとも一つが移動している間に)、図4に示すロボット制御処理を行い続けてもよい。その結果、制御装置3は、ロボット制御信号に基づいてロボット1の動作が制御されている期間中も、新たに取得したワーク画像データIMG_2D及びIMG_3Dに基づいて対象物体(例えば、ワークW)の位置を新たに算出する(つまり、更新する)ことができる。但し、撮像装置21及び22のそれぞれは、対象物体(例えば、ワークW)が静止し且つ撮像装置21及び22が静止している間に、対象物体(例えば、ワークW)を撮像してもよい。制御装置3は、撮像装置21及び22並びに対象物体(例えば、ワークW)が静止している間に、図4に示すロボット制御処理を行ってもよい。
 尚、位置算出部312は、ステップS3でグローバル座標系における対象物体(例えば、ワークW)の位置を算出しなくてもよい。例えば、位置算出部312は、ステップS3でグローバル座標系とは異なる座標系内(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は共通座標系内)での対象物体(例えば、ワークW)の位置を算出してもよい。この場合、信号生成部313は、ステップS4で、ステップS3において算出されたグローバル座標系とは異なる座標系における対象物体(例えば、ワークW)の位置に基づいて、ロボット制御信号を生成してもよい。
 (2-2)対象物体の位置を算出するための処理の詳細
 続いて、図4のステップS3において対象物体の位置を算出するための処理の詳細について説明する。尚、以下の説明では、説明の便宜上、対象物体の一例であるワークWの位置を算出するための処理の詳細について説明する。但し、位置算出部312は、ワークWの位置を算出するための処理と同様の動作を行うことで、任意の対象物体の位置を算出してもよい。つまり、以下のワークWの位置を算出するための処理の説明は、「ワークW」という文言を「対象物体」という文言に置き換えることで、対象物体の位置を算出するための処理の説明として利用可能である。
 本実施形態では、位置算出部312は、ワーク画像データIMG_2D及びワーク形状データWSDを用いたマッチング処理と、ワーク画像データIMG_2D及びワーク形状データWSDを用いたトラッキング処理とを行うことで、ワークWの位置を算出する。以降、図7を参照しながら、マッチング処理及びトラッキング処理を行うことでワークWの位置を算出する処理について説明する。図7は、マッチング処理及びトラッキング処理を行うことでワークWの位置を算出するための論理的な処理ブロックを示すブロック図である。
 図7に示すように、位置算出部312は、2Dマッチング部3121と、3Dマッチング部3122と、2Dトラッキング部3123と、3Dトラッキング部3124と、座標変換部3125とを含んでいる。2Dマッチング部3121は、マッチング処理の一例である2Dマッチング処理を行う。3Dマッチング部3122は、マッチング処理の一例である3Dマッチング処理を行う。2Dトラッキング部3123は、トラッキング処理の一例である2Dトラッキング処理を行う。3Dトラッキング部3124は、トラッキング処理の一例である3Dトラッキング処理を行う。座標変換部3125は、マッチング処理及びトラッキング処理の結果に基づいて、グローバル座標系におけるワークWの位置を算出する位置算出処理を行う。このため、以下では、2Dマッチング処理、3Dマッチング処理、2Dトラッキング処理、3Dトラッキング処理及び位置算出処理について順に説明する。
 (2-2-1)2Dマッチング部3121が行う2Dマッチング処理
 2Dマッチング部3121は、2Dマッチング処理として、ワーク画像データIMG_2Dを用いたマッチング処理を行う。ワーク画像データIMG_2Dを用いたマッチング処理は、ワーク画像データIMG_2Dと基準画像データIMG_2Mとを用いたマッチング処理である。
 基準画像データIMG_2Mは、ワークWの基準となる二次元画像を示す画像データである。基準画像データIMG_2Mは、例えば、ワークWの三次元モデル(例えば、CAD(Computer Aided Design)で作成されたCADモデル)を複数の異なる撮影方向から仮想的に撮像することでそれぞれ生成される複数の二次元画像を示す画像データであってもよい。尚、基準画像データIMG_2Mは、実際のワークWを事前に撮像した二次元画像を示す画像データであってもよい。この場合、基準画像データIMG_2Mは、実際のワークWを複数の異なる撮影方向から撮像することでそれぞれ生成される複数の二次元画像を示す画像データであってもよい。尚、事前に撮像する実際のワークWは、基準又は良品のワークWであってもよい。
 2Dマッチング部3121は、図8に示すように、ワーク画像データIMG_2Dに対して、基準画像データIMG_2Mが示す二次元画像に写り込んでいるワークWをテンプレートとして用いるマッチング処理を行ってもよい。尚、マッチング処理そのものは、既存のマッチング処理と同一であってもよい。このため、マッチング処理の詳細な説明は省略するが、以下にその概要を説明する。例えば、2Dマッチング部3121は、基準画像データIMG_2Mが示す二次元画像に写り込んでいるワークWの全体における特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)が、ワーク画像データIMG_2Dが示す画像に写り込んでいるワークWの全体における特徴箇所に近づく(典型的には、一致する)ように、基準画像データIMG_2Mが示す二次元画像に写り込んでいるワークWを平行移動、拡大、縮小及び/又は回転させてもよい。つまり、2Dマッチング部3121は、基準画像データIMG_2Mが示す二次元画像に写り込んでいるワークWの全体における特徴箇所が、ワーク画像データIMG_2Dが示す画像に写り込んでいるワークWの全体における特徴箇所に近づく(典型的には、一致する)ように、基準画像データIMG_2Mの座標系(例えば、CADモデルの座標系)と、ワークWを撮像した撮像装置21を基準とする2D撮像座標系との位置関係を変更してもよい。その結果、2Dマッチング部3121は、基準画像データIMG_2Mの座標系と2D撮像座標系との位置関係を特定することができる。その後、2Dマッチング部3121は、基準画像データIMG_2Mの座標系と2D撮像座標系との位置関係に基づいて、基準画像データIMG_2Mの座標系におけるワークWの位置から、2D撮像座標系におけるワークWの位置を算出してもよい。尚、2Dマッチング部3121は、基準画像データIMG_2Mが示す二次元画像に写り込んでいるワークWの一部における特徴箇所が、ワーク画像データIMG_2Dが示す画像に写り込んでいるワークWの一部における特徴箇所に近づく(典型的には、一致する)ように、基準画像データIMG_2Mの座標系(例えば、CADモデルの座標系)と、ワークWを撮像した撮像装置21を基準とする2D撮像座標系との位置関係を変更してもよい。尚、ワーク画像データIMG_2Dを用いたマッチング処理として、例えば、SIFT(Scale-Invariant Feature Transform)及びSURF(Speed-Upped Robust Feature)の少なくとも一方の周知の方法を用いてもよい。
 尚、ワークWの位置を算出する方法は、上述のワーク画像データIMG_2Dを用いたマッチング処理に限られず、ワーク画像データIMG_2Dを用いてワークWの位置を算出する他の周知の方法であってもよい。ワークWの位置を算出する方法は、基準画像データIMG_2Mを用いずにワーク画像データIMG_2Dに基づいてワークWの位置を算出する周知の方法であってもよいし、基準画像データIMG_2Mとは異なるデータとワーク画像データIMG_2Dとを用いてワークWの位置を算出する周知の方法であってもよい。例えば、ワークWの位置を算出する方法は、機械学習又は深層学習によって、ワーク画像データIMG_2Dに基づいてワークWの位置を算出する方法であってもよい。この場合、機械学習又は深層学習によって、ワーク画像データIMG_2Dを入力するとワークWの位置を出力するような予測モデルを構築し、この予測モデルにワーク画像データIMG_2Dを入力することによってワークWの位置を算出してもよい。この予測モデルは、2Dマッチング部3121に記憶されていてもよい。尚、2Dマッチング部3121は、記憶装置32に記憶されたこの予測モデルを読み出してもよい
 2D撮像座標系は、互いに直交するX軸(2D)、Y軸(2D)及びZ軸(2D)で規定される座標系である。X軸(2D)、Y軸(2D)及びZ軸(2D)のうちの少なくとも一つは、撮像装置21が備える光学系(特に、対物レンズ等の終端光学素子)の光軸AX21(図2参照)に沿った軸であってもよい。尚、光軸AX21は、撮像装置21の光軸ともいえる。以下の説明では、Z軸(2D)が、撮像装置21が備える光学系の光軸に沿った軸である例について説明する。2Dマッチング部3121は、2D撮像座標系におけるワークWの位置として、X軸(2D)と平行なX軸方向(2D)におけるワークWの位置Tx(2D)、Y軸(2D)と平行なY軸方向(2D)におけるワークWの位置Ty(2D)及びZ軸(2D)と平行なZ軸方向(2D)におけるワークWの位置Tz(2D)のうちの少なくとも一つを算出してもよい。2Dマッチング部3121は、2D撮像座標系におけるワークWの位置として、位置Tx(2D)、Ty(2D)及びTz(2D)の少なくとも一つに加えて又は代えて、X軸(2D)周りのワークWの回転量Rx(2D)、Y軸(2D)周りのワークWの回転量Ry(2D)及びZ軸(2D)周りのワークWの回転量Rz(2D)のうちの少なくとも一つを算出してもよい。X軸(2D)周りのワークWの回転量Rx(2D)、Y軸(2D)周りのワークWの回転量Ry(2D)及びZ軸(2D)周りのワークWの回転量Rz(2D)は、それぞれ、X軸(2D)周りのワークWの姿勢を表すパラメータ、Y軸(2D)周りのワークWの姿勢を表すパラメータ及びZ軸(2D)周りのワークWの姿勢を表すパラメータと等価であるとみなしてもよい。この場合、2Dマッチング部3121は、ワークWの位置として、X軸(2D)周りのワークWの姿勢、Y軸(2D)周りのワークWの姿勢及びZ軸(2D)周りのワークWの姿勢を算出しているとみなしてもよい。
 尚、上述した回転量Rx、Ry及びRzと同様に、以下の説明では、用語の統一を図るために、X軸(2D)周りのワークWの回転量Rx(2D)、Y軸(2D)周りのワークWの回転量Ry(2D)及びZ軸(2D)周りのワークWの回転量Rz(2D)を、それぞれ、X軸(2D)周りの回転方向におけるワークWの位置Rx(2D)、Y軸(2D)周りの回転方向におけるワークWの位置Ry(2D)及びZ軸(2D)周りの回転方向におけるワークWの位置Rz(2D)と称する。
 2Dマッチング部3121は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)のうち、3Dマッチング部3122が算出するワークWの位置と比較して精度が相対的に高い少なくとも一つの位置を算出してもよい。一方で、2Dマッチング部3121は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)のうち、3Dマッチング部3122が算出するワークWの位置と比較して精度が相対的に低い少なくとも他の一つの位置を算出しなくてもよい。例えば、2Dマッチング部3121は、Z軸方向(2D)における位置の情報を有していないワーク画像データIMG_2D及び基準画像データIMG_2Mを用いたマッチング処理を行う。この場合、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)は、Z軸方向(2D)における位置の情報を用いることなく、相対的に高精度に算出可能である。この場合、2Dマッチング部3121が算出する位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)の精度は、それぞれ、3Dマッチング部3122が算出する後述の位置Tx(3D)、位置Ty(3D)及び位置Rz(3D)の精度よりも高くなる可能性がある。一方で、位置Tz(2D)、位置Rx(2D)及び位置Ry(2D)は、Z軸方向(2D)における位置の情報を用いることなく、高精度に算出することは容易ではない場合がある。この場合、2Dマッチング部3121が算出する位置Tz(2D)、位置Rx(2D)及び位置Ry(2D)の精度は、それぞれ、3Dマッチング部3122が算出する後述の位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)の精度よりも低くなる可能性がある。このため、2Dマッチング部3121は、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を算出してもよい。一方で、2Dマッチング部3121は、位置Tz(2D)、位置Rx(2D)及び位置Ry(2D)を算出してもよいし、算出しなくてもよい。以下の説明では、2Dマッチング部3121が、少なくとも位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を算出する例について説明する。
 後に詳述するように、制御装置3は、2Dマッチング部3121が算出した相対的に精度の高い位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を用いて、グローバル座標系内でのワークWの位置を算出する。この場合、2Dマッチング部3121が算出した相対的に精度の低い位置を用いてグローバル座標系内でのワークWの位置が算出される場合と比較して、制御装置3は、グローバル座標系内でのワークWの位置を、相対的に高精度に算出することができる。
 2Dマッチング部3121は、ワークWの位置を算出する都度、算出したワークWの位置に関する情報を、座標変換部3125に出力する。一例として、2Dマッチング部3121は、6DOF(Degree Of Freedom)の位置の全て(つまり、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D))を算出し、算出した6DOFの位置のうちの一部に関する情報(例えば、上述した相対的に精度が高い位置Tx(2D)、位置Ty(2D)及び位置Rz(2D))を、座標変換部3125に出力してもよい。他の一例として、2Dマッチング部3121は、6DOFの位置の一部を算出し、算出した6DOFの位置の一部に関する情報を、座標変換部3125に出力してもよい。例えば、2Dマッチング部3121は、上述した相対的に精度が高い位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を算出し、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)に関する情報を、座標変換部3125に出力してもよい。他の一例として、2Dマッチング部3121は、6DOFの位置の全てを算出し、算出した6DOFの位置の全てに関する情報を、座標変換部3125に出力してもよい。この場合、座標変換部3125は、2Dマッチング部3121が出力した6DOFの位置の全てを用いてワークWの6DOFの位置を算出してもよい。或いは、座標変換部3125は、2Dマッチング部3121が出力した6DOFの位置の一部(例えば、上述した相対的に精度が高い位置Tx(2D)、位置Ty(2D)及び位置Rz(2D))を選択し、選択した6DOFの位置の一部を用いてワークWの6DOFの位置を算出してもよい。
 ここで、2Dマッチング部3121は、所定の2Dマッチング周期で、ワークWの位置を算出してもよい。つまり、2Dマッチング部3121は、2Dマッチング周期に相当する時間が経過する都度、ワークWの位置を算出してもよい。逆に言えば、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでに、2Dマッチング周期に相当する時間が必要であるとみなしてもよい。この場合、2Dマッチング部3121は、所定の2Dマッチング周期で、ワークWの位置に関する情報を座標変換部3125に出力してもよい。
 図9に示すように、2Dマッチング周期は、撮像装置21がワークWを撮像する2D撮像レートに対応する2D撮像周期よりも長くてもよい。例えば、2Dマッチング周期は、2Dマッチング部3121が一秒間に十数回から数十回(一例として、15回から30回)2Dマッチング処理を行うことが可能な周期であってもよい。この場合、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでの間に、撮像装置21が新たなワーク画像データIMG_2Dを生成する。この場合、2Dマッチング部3121は、開始済みの2Dマッチング処理を完了するまでは、撮像装置21が新たなワーク画像データIMG_2Dを生成した場合であっても、撮像装置21が新たに生成したワーク画像データIMG_2Dを用いた2Dマッチング処理を新たに開始しなくてもよい。2Dマッチング部3121は、開始済みの2Dマッチング処理を完了した後に、その時点で最新のワーク画像データIMG_2Dを用いた2Dマッチング処理を新たに開始してもよい。尚、図9に示す、ワーク画像データIMG_2Dを生成するタイミングは、ワーク画像データIMG_2Dを生成するために撮像装置21がワークWを撮像するタイミングであってもよい。
 但し、2Dマッチング周期は、2D撮像周期よりも長くなくてもよい。例えば、2Dマッチング周期は、2D撮像周期よりも短くてもよい。例えば、2Dマッチング周期は、2D撮像周期と同じであってもよい。
 (2-2-2)3Dマッチング部3122が行う3Dマッチング処理
 3Dマッチング部3122は、3Dマッチング処理として、ワーク形状データWSDを用いたマッチング処理を行う。ワーク形状データWSDを用いたマッチング処理は、ワーク形状データWSDと基準形状データWMDとを用いたマッチング処理である。基準形状データWMDは、ワークWの基準となる三次元形状を示すデータである。
 基準形状データWMDは、例えば、ワークWの三次元モデル(例えば、CADモデル)を示すデータであってもよい。尚、ワークWの基準となる三次元形状を示すデータは、深度画像データであってもよいし、点群データであってもよいし、他の基準となる三次元形状を示すデータであってもよい。尚、基準形状データWMDは、実際のワークWの形状を事前に測定することによって得られたワークWの三次元形状を示すデータであってもよい。この場合、基準形状データWMDは、投影装置23からの投影パターンが投影されているワークWを撮像装置22で撮像することによって生成されたワーク画像データIMG_3Dに基づいて形状データ生成部311により事前に生成されてもよいし、ロボットシステムSYSとは異なる周知の形状測定装置を用いて事前に生成されてもよい。尚、基準形状データWSDの生成のために、事前に撮像又測定する実際のワークWは、基準又は良品のワークWであってもよい。
 3Dマッチング部3122は、図10に示すように、ワーク形状データWSDに対して、基準形状データWMDが示すワークWをテンプレートとして用いるマッチング処理を行ってもよい。尚、マッチング処理そのものは、既存のマッチング処理と同一であってもよい。このため、マッチング処理の詳細な説明は省略するが、以下にその概要を説明する。例えば、3Dマッチング部3122は、ワーク形状データWSDが示すワークWの全体における特徴箇所が、基準形状データWMDが示すワークWの全体における特徴箇所に近づく(典型的には、一致する)ように、基準形状データWMDが示すワークWを平行移動、拡大、縮小及び/又は回転させてもよい。つまり、3Dマッチング部3122は、ワーク形状データWSDが示すワークWの全体における特徴箇所が、基準形状データWMDが示すワークWの全体における特徴箇所に近づく(典型的には、一致する)ように、基準形状データWMDの座標系(例えば、CADモデルの座標系)と、ワークWを撮像した撮像装置22を基準とする3D撮像座標系との位置関係を変更してもよい。その結果、3Dマッチング部3122は、基準形状データWMDの座標系と3D撮像座標系との位置関係を特定することができる。その後、3Dマッチング部3122は、基準形状データWMDの座標系と3D撮像座標系との位置関係に基づいて、基準形状データWMDの座標系におけるワークWの位置から、3D撮像座標系におけるワークWの位置を算出してもよい。尚、3Dマッチング部3122は、ワーク形状データWSDが示すワークWの一部における特徴箇所が、基準形状データWMDが示すワークWの一部における特徴箇所に近づく(典型的には、一致する)ように、基準形状データWMDの座標系(例えば、CADモデルの座標系)と、ワークWを撮像した撮像装置22を基準とする3D撮像座標系との位置関係を変更してもよい。尚、ワーク形状データWSDを用いたマッチング処理として、例えば、RANSAC(Random Sample Consensus)、SIFT(Scale-Invariant Feature Transform)、ICP(Iterative Closest Point)、及びDSO(Direct Sparse Odometry)の少なくとも一つの周知の方法を用いてもよい。
 尚、ワークWの位置を算出する方法は、上述のワーク形状データWSDを用いたマッチング処理に限られず、ワーク形状データWSDを用いてワークWの位置を算出する他の周知の方法であってもよい。ワークWの位置を算出する方法は、基準形状データWMDを用いずにワーク形状データWSDに基づいてワークWの位置を算出する周知の方法であってもよいし、基準形状データWMDとは異なるデータとワーク形状データWSDとを用いてワークWの位置を算出する周知の方法であってもよい。例えば、ワークWの位置を算出する方法は、機械学習又は深層学習によって、ワーク形状データWSDに基づいてワークWの位置を算出する方法であってもよい。この場合、機械学習又は深層学習によって、ワーク形状データWSDを入力するとワークWの位置を出力するような予測モデルを予め構築し、この予測モデルにワーク形状データWSDを入力することによってワークWの位置を算出してもよい。この予測モデルは、3Dマッチング部3122に記憶されていてもよい。。尚、3Dマッチング部3122は、記憶装置32に記憶されたこの予測モデルを読み出してもよい
 3Dマッチング部3122は、ワーク形状データWSDとして、上述した点群データを用いて、3Dマッチング処理を行う。その結果、ワーク形状データWSDとして深度画像データが用いられる場合と比較して、ワークWの位置の算出精度が高くなる。この場合、3Dマッチング部3122は、基準形状データWMDとして、ワークWの基準となる三次元形状を示す点群データ(例えば、CADモデルを示す点群データ)を用いる。但し、3Dマッチング部3122は、ワーク形状データWSDとして、上述した深度画像データを用いて、3Dマッチング処理を行ってもよい。この場合、3Dマッチング部3122は、基準形状データWMDとして、ワークWの基準となる三次元形状を示す深度画像データ(例えば、CADモデルを示す深度画像データ)を用いてもよい。
 3D撮像座標系は、互いに直交するX軸(3D)、Y軸(3D)及びZ軸(3D)で規定される座標系である。X軸(3D)、Y軸(3D)及びZ軸(3D)のうちの少なくとも一つは、撮像装置22が備える光学系(特に、対物レンズ等の終端光学素子)の光軸AX22(図2参照)に沿った軸であってもよい。尚、光軸AX22は、撮像装置22の光軸ともいえる。ここで、上述したように撮像装置22が二つの単眼カメラを含むステレオカメラである場合には、光軸AX22は、二つの単眼カメラのうちのいずれか一方が備える光学系の光軸であってもよい。つまり、光軸AX22は、二つの単眼カメラのうちのいずれか一方の光軸であってもよい。以下の説明では、Z軸(3D)が、撮像装置22が備える光学系の光軸に沿った軸である例について説明する。3Dマッチング部3122は、3D撮像座標系におけるワークWの位置として、X軸(3D)と平行なX軸方向(3D)におけるワークWの位置Tx(3D)、Y軸(3D)と平行なY軸方向(3D)におけるワークWの位置Ty(3D)及びZ軸(3D)と平行なZ軸方向(3D)におけるワークWの位置Tz(3D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3D撮像座標系におけるワークWの位置として、位置Tx(3D)、Ty(3D)及びTz(3D)の少なくとも一つに加えて又は代えて、X軸(3D)周りのワークWの回転量Rx(3D)、Y軸(3D)周りのワークWの回転量Ry(3D)及びZ軸(3D)周りのワークWの回転量Rz(3D)のうちの少なくとも一つを算出してもよい。X軸(3D)周りのワークWの回転量Rx(3D)、Y軸(3D)周りのワークWの回転量Ry(3D)及びZ軸(3D)周りのワークWの回転量Rz(3D)は、それぞれ、X軸(3D)周りのワークWの姿勢を表すパラメータ、Y軸(3D)周りのワークWの姿勢を表すパラメータ及びZ軸(3D)周りのワークWの姿勢を表すパラメータと等価であるとみなしてもよい。この場合、3Dマッチング部3122は、ワークWの位置として、X軸(3D)周りのワークWの姿勢、Y軸(3D)周りのワークWの姿勢及びZ軸(3D)周りのワークWの姿勢を算出しているとみなしてもよい。
 尚、上述した回転量Rx、Ry及びRzと同様に、以下の説明では、用語の統一を図るために、X軸(3D)周りのワークWの回転量Rx(3D)、Y軸(3D)周りのワークWの回転量Ry(3D)及びZ軸(3D)周りのワークWの回転量Rz(3D)を、それぞれ、X軸(3D)周りの回転方向におけるワークWの位置Rx(3D)、Y軸(3D)周りの回転方向におけるワークWの位置Ry(3D)及びZ軸(3D)周りの回転方向におけるワークWの位置Rz(3D)と称する。
 3Dマッチング部3122は、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)のうち、2Dマッチング部3121が算出するワークWの位置と比較して精度が相対的に高い少なくとも一つの位置を算出してもよい。一方で、3Dマッチング部3122は、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)のうち、2Dマッチング部3121が算出するワークWの位置と比較して精度が相対的に低い少なくとも他の一つの位置を算出しなくてもよい。例えば、3Dマッチング部3122は、Z軸方向(3D)における位置の情報を有しているワーク形状データWSD及び基準形状データWMDを用いたマッチング処理を行う。この場合、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)は、Z軸方向(3D)における位置の情報を用いることで、相対的に高精度に算出可能である。この場合、3Dマッチング部3122が算出する位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)の精度は、それぞれ、2Dマッチング部3121が算出する位置Tz(2D)、位置Rx(2D)及び位置Ry(2D)の精度よりも高くなる可能性がある。このため、3Dマッチング部3122は、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を算出してもよい。一方で、3Dマッチング部3122は、位置Tx(3D)、位置Ty(3D)及び位置Rz(3D)を算出してもよいし、算出しなくてもよい。以下の説明では、3Dマッチング部3122が、少なくとも位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を算出する例について説明する。
 後に詳述するように、制御装置3は、3Dマッチング部3122が算出した相対的に精度の高い位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を用いて、グローバル座標系内でのワークWの位置が算出される。この場合、3Dマッチング部3122が算出した相対的に精度の低い位置を用いてグローバル座標系内でのワークWの位置が算出される場合と比較して、制御装置3は、グローバル座標系内でのワークWの位置を、相対的に高精度に算出することができる。
 3Dマッチング部3122は、ワークWの位置を算出する都度、算出したワークWの位置)に関する情報を、座標変換部3125に出力する。一例として、3Dマッチング部3121は、6DOFの位置の全て(つまり、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D))を算出し、算出した6DOFの位置のうちの一部に関する情報(例えば、上述した相対的に精度が高い位置Tz(3D)、位置Rx(3D)及び位置Ry(3D))を、座標変換部3125に出力してもよい。他の一例として、3Dマッチング部3122は、6DOFの位置の一部を算出し、算出した6DOFの位置の一部に関する情報を、座標変換部3125に出力してもよい。例えば、3Dマッチング部3122は、上述した相対的に精度が高い位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を算出し、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)に関する情報を、座標変換部3125に出力してもよい。他の一例として、3Dマッチング部3122は、6DOFの位置の全てを算出し、算出した6DOFの位置の全てに関する情報を、座標変換部3125に出力してもよい。この場合、座標変換部3125は、3Dマッチング部3122が出力した6DOFの位置の全てを用いてワークWの6DOFの位置を算出してもよい。或いは、座標変換部3125は、3Dマッチング部3122が出力した6DOFの位置の一部を選択し、選択した6DOFの位置の一部(例えば、上述した相対的に精度が高い位置Tz(3D)、位置Rx(3D)及び位置Ry(3D))を用いてワークWの6DOFの位置を算出してもよい。
 ここで、3Dマッチング部3122は、所定の3Dマッチング周期で、ワークWの位置を算出してもよい。つまり、3Dマッチング部3122は、3Dマッチング周期に相当する時間が経過する都度、ワークWの位置を算出してもよい。逆に言えば、3Dマッチング部3122が3Dトラッキング処理を開始してから完了するまでに、3Dマッチング周期に相当する時間が必要であるとみなしてもよい。この場合、3Dマッチング部3122は、所定の3Dマッチング周期で、ワークWの位置に関する情報を座標変換部3125に出力してもよい。
 図11に示すように、3Dマッチング周期は、撮像装置22がワークWを撮像する3D撮像レートに対応する3D撮像周期よりも長くてもよい。例えば、3Dマッチング周期は、3Dマッチング部3122が一秒間に数回から数十回(一例として、1回から30回)3Dマッチング処理を行うことが可能な周期であってもよい。この場合、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでの間に、撮像装置22が新たなワーク画像データIMG_3Dを生成する。この場合、3Dマッチング部3122は、開始済みの3Dマッチング処理を完了するまでは、撮像装置22が新たなワーク画像データIMG_3Dを生成した場合であっても、撮像装置22が新たに生成したワーク画像データIMG_3Dを用いた3Dマッチング処理を新たに開始しなくてもよい。3Dマッチング部3122は、開始済みの3Dマッチング処理を完了した後に、その時点で最新のワーク画像データIMG_3Dを用いた3Dマッチング処理を新たに開始してもよい。尚、図11に示す、ワーク画像データIMG_3Dを生成するタイミングは、ワーク画像データIMG_3Dを生成するために撮像装置22がワークWを撮像するタイミングともいえる。
 但し、3Dマッチング周期は、3D撮像周期よりも長くなくてもよい。例えば、3Dマッチング周期は、3D撮像周期よりも短くてもよい。例えば、3Dマッチング周期は、3D撮像周期と同じであってもよい。
 3Dマッチング周期は、2Dマッチング周期と同じであってもよい。具体的には、3Dマッチング周期の長さは、2Dマッチング周期の長さと同じであってもよい。つまり、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでの時間は、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでの時間と同じであってもよい。撮像装置21がワークWを撮像してから2Dマッチング部3121が2Dマッチング処理を開始し、且つ、撮像装置22がワークWを撮像してから3Dマッチング部3122が3Dマッチング処理を開始するがゆえに、撮像装置21がワークWを撮像してから2Dマッチング部3121が2Dマッチング処理を完了する(つまり、ワークWの位置を算出する)までの時間は、撮像装置22がワークWを撮像してから3Dマッチング部3122が3Dマッチング処理を完了する(つまり、ワークWの位置を算出する)までの時間と同じであってもよい。但し、3Dマッチング周期は、2Dマッチング周期と同じでなくてもよい。例えば、3Dマッチング周期の長さは、2Dマッチング周期の長さよりも長くてもよい。例えば、3Dマッチング周期の長さは、2Dマッチング周期の長さよりも短くてもよい。
 3Dマッチング周期が2Dマッチング周期と同じである場合、図11の上から2段目及び3段目のタイミングチャートに示すように、3Dマッチング周期と2Dマッチング周期とが時間的に重なっていてもよい。つまり、3Dマッチング周期の開始時刻と2Dマッチング周期の開始時刻とが同じになり、且つ、3Dマッチング周期の終了時刻と2Dマッチング周期の終了時刻とが同じになっていてもよい。言い換えれば、3Dマッチング部3122が3Dマッチング処理を開始する時刻と、2Dマッチング部3121が2Dマッチング処理を開始する時刻とが同じになり、且つ、3Dマッチング部3122が3Dマッチング処理を完了する時刻と、2Dマッチング部3121が2Dマッチング処理を完了する時刻とが同じになっていてもよい。但し、3Dマッチング周期と2Dマッチング周期とが時間的に重なっていなくてもよい。3Dマッチング周期の開始時刻と2Dマッチング周期の開始時刻とが所定時間ずれていてもよい。3Dマッチング周期の終了時刻と2Dマッチング周期の終了時刻とが所定時間ずれていてもよい。3Dマッチング部3122が3Dマッチング処理を開始する時刻と、2Dマッチング部3121が2Dマッチング処理を開始する時刻とが所定時間ずれていてもよい。3Dマッチング部3122が3Dマッチング処理を完了する時刻と、2Dマッチング部3121が2Dマッチング処理を完了する時刻とが所定時間ずれていてもよい。
 ここで、通常、3Dマッチング処理に用いられるワーク形状データWSD及び基準形状データWMDのデータサイズは、2Dマッチング処理に用いられるワーク画像データIMG_2D及び基準画像データIMG_2Mのデータサイズよりも多い。このため、3Dマッチング部3122が3Dマッチング処理を完了するために必要な時間である3Dマッチング周期は、2Dマッチング部3121が2Dマッチング処理を完了するために必要な時間である2Dマッチング周期よりも長くなる可能性がある。そこで、3Dマッチング部3122は、3Dマッチング周期が2Dマッチング周期と同じになるように又は3Dマッチング周期が2Dマッチング周期よりも短くなるように、3Dマッチング周期を短縮するための処理を行ってもよい。
 一例として、3Dマッチング部3122は、2Dマッチング処理の結果(例えば、上述した位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)のうちの少なくとも一つ)に基づいて、ワーク形状データWSDのうちの一部のデータ部分を、3Dマッチング処理を行う3Dマッチング対象データとして選択してもよい。具体的には、2D撮像座標系と3D撮像座標系との位置関係は、撮像装置21と撮像装置22との位置関係に依存する。このため、制御装置3は、撮像装置21と撮像装置22との位置関係に基づいて生成される、2D撮像座標系と3D撮像座標系との位置関係を示す座標系情報を、記憶装置32に格納しておいてもよい。座標系情報は、2D撮像座標系及び3D撮像座標系のいずれかの一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれかの他方の座標系内の位置に変換するための変換行列を含んでいてもよい。変換行列は、撮像装置21と撮像装置22との位置関係から算出可能である。この場合、制御装置3は、座標系情報(特に、変換行列)に基づいて、2D撮像座標系及び3D撮像座標系のいずれかの一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれかの他方の座標系内の位置に変換することができる。そこで、3Dマッチング部3122は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)を、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)に変換してもよい。つまり、図12に示すように、3Dマッチング部3122は、2Dマッチング処理の結果に基づいて、3D撮像座標系内においてワークWが存在すると推定される領域を推定してもよい。その後、3Dマッチング部3122は、ワーク形状データWSDのうちのワークWが存在すると推定される領域に対応する一部のデータ部分を、3Dマッチング対象データとして選択してもよい。その後、3Dマッチング部3122は、ワーク形状データWSDの一部である3Dマッチング対象データに対して3Dマッチング処理を行ってもよい。
 ここで、ワーク形状データWSDは、ワークWの形状を示すデータ部分のみならず、ワークWとは異なる物体の形状を示すデータ部分を含んでいる可能性がある。なぜならば、ワーク形状データWSDを生成するために用いられるワーク画像データIMG_3Dを生成する撮像装置22の撮像視野内には、ワークWのみならず、ワークWとは異なる物体が含まれている可能性があるからである。例えば、載置装置4に載置されたワークWを撮像装置22が撮像することで生成されるワーク画像データIMG_3Dからワーク形状データWSDが生成されるがゆえに、ワーク形状データWSDは、ワークWの形状を示すデータ部分のみならず、載置装置4の形状を示すデータ部分を含んでいる可能性がある。この場合、3Dマッチング対象データは、典型的には、ワーク形状データWSDから、ワークWとは異なる物体(つまり、対象物体とは異なる物体)の形状を示すデータ部分を除去することで得られるデータと等価であるとみなしてもよい。言い換えれば、3Dマッチング対象データは、典型的には、ワーク形状データWSDから、ワークWの形状を示すデータ部分を選択的に抽出することで得られるデータと等価であるとみなしてもよい。その結果、3Dマッチング対象データ(つまり、ワーク形状データWSDの一部)に対して行われる3Dマッチング処理を完了するために必要な時間は、ワーク形状データWSDの全体に対して行われる3Dマッチング処理を完了するために必要な時間よりも短くなる。なぜならば、3Dマッチング処理を完了するために必要な時間は、3Dマッチング処理が行われるデータのサイズに依存するからである。その結果、ワーク形状データWSDの全体に対して3Dマッチング処理が行われる場合と比較して、3Dマッチング周期が短くなる。
 尚、ワーク形状データWSDの一部である3Dマッチング対象データを選択する動作は、ワーク形状データWSDのうちの3Dマッチング対象データ以外のデータ部分を選択しない(或いは、削除する)動作と等価であるとみなしてもよい。このため、3Dマッチング部3122は、2Dマッチング処理の結果に基づいて、ワーク形状データWSDのうちのワークWが存在しないと推定される領域に対応する一部のデータ部分(例えば、上述したようにワークWとは異なる物体の形状を示すデータ部分)を削除することで、ワーク形状データWSDのうち一部である3Dマッチング対象データを生成してもよい。
 他の一例として、3Dマッチング部3122は、ワーク形状データWSDのうちの一部のデータ部分を指定するユーザの指示に基づいて、3Dマッチング対象データを選択してもよい。具体的には、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDのうちの一部のデータ部分を3Dマッチング対象データとして指定するためにユーザが操作可能なGUI(Graphical User Interface)を表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDの一例である点群データが示す複数の点を表示し、複数の点のうちのワークWに対応する点を指定するためにユーザが操作可能なGUIを表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDの一例である深度画像データが示す深度画像を表示し、深度画像のうちのワークWに対応する画素を指定するためにユーザが操作可能なGUIを表示してもよい。この場合においても、3Dマッチング部3122は、ワーク形状データWSDのうちのユーザが指定した一部のデータ部分である3Dマッチング対象データに対して3Dマッチング処理を行ってもよい。その結果、ワーク形状データWSDの全体に対して3Dマッチング処理が行われる場合と比較して、3Dマッチング周期が短くなる。
 (2-2-3)2Dトラッキング部3123が行う2Dトラッキング処理
 2Dトラッキング部3123は、2Dトラッキング処理として、互いに異なる時刻t1及びt2に撮像装置21がワークWを撮像することで生成される二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を用いたトラッキング処理を行う。二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を用いたトラッキング処理は、図13に示すように、ワーク画像データIMG_2D#t1に写り込んでいるワークWの少なくとも一つの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)と同じ少なくとも一つの特徴箇所を、ワーク画像データIMG_2D#t2内で追跡するトラッキング処理である。尚、トラッキング処理そのものは、既存のトラッキング処理と同一であってもよい。このため、トラッキング処理の詳細な説明は省略する。2Dトラッキング部3123は、トラッキング処理を行うことで、時刻t1及びt2の間における2D撮像座標系内での少なくとも一つの特徴箇所の位置の変化量を算出してもよい。その後、2Dトラッキング部3123は、2D撮像座標系内での少なくとも一つの特徴箇所の位置の変化量に基づいて、時刻t1及びt2の間における2D撮像座標系内でのワークWの位置の変化量を算出してもよい。
 尚、ワークWの位置の変化量を算出する方法は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を用いたトラッキング処理に限られず、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を用いてワークWの位置の変化量を算出する他の周知の方法であってもよい。例えば、ワークWの位置の変化量を算出する方法は、機械学習又は深層学習によって、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2に基づいてワークWの位置の変化量を算出する方法であってもよい。この場合、機械学習又は深層学習によって、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を入力するとワークWの位置の変化量を出力するような予測モデルを構築し、この予測モデルに二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を入力することによってワークWの位置の変化量を算出してもよい。2Dトラッキング部3123は、この予測モデルを含んでいてもよい。
 2Dトラッキング部3123は、2D撮像座標系におけるワークWの位置の変化量として、X軸(2D)と平行なX軸方向(2D)におけるワークWの位置Tx(2D)の変化量ΔTx(2D)、Y軸(2D)と平行なY軸方向(2D)におけるワークWの位置Ty(2D)の変化量ΔTy(2D)及びZ軸(2D)と平行なZ軸方向(2D)におけるワークWの位置Tz(2D)の変化量ΔTz(2D)のうちの少なくとも一つを算出してもよい。2Dトラッキング部3123は、2D撮像座標系におけるワークWの位置として、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔTz(2D)の少なくとも一つに加えて又は代えて、X軸(2D)周りの回転方向におけるワークWの位置Rx(2D)の変化量ΔRx(2D)、Y軸(2D)周りの回転方向におけるワークWの位置Ry(2D)の変化量ΔRy(2D)及びZ軸(2D)周りの回転方向におけるワークWの位置Rz(2D)の変化量ΔRz(2D)のうちの少なくとも一つを算出してもよい。つまり、2Dトラッキング部3123は、ワークWの位置の変化量として、X軸(2D)周りのワークWの姿勢の変化量、Y軸(2D)周りのワークWの姿勢の変化量及びZ軸(2D)周りのワークWの姿勢の変化量を算出してもよい。
 2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうち、3Dトラッキング部3124が算出するワークWの位置の変化量と比較して精度が相対的に高い少なくとも一つの変化量を算出してもよい。一方で、2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうち、3Dトラッキング部3124が算出するワークWの位置の変化量と比較して精度が相対的に低い少なくとも他の一つの変化量を算出しなくてもよい。例えば、2Dトラッキング部3123は、Z軸方向(2D)における位置の情報を有していないワーク画像データIMG_2Dを用いたトラッキング処理を行う。この場合、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)は、Z軸方向(2D)における位置の情報を用いることなく、相対的に高精度に算出可能である。この場合、2Dトラッキング部3123が算出する変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)の精度は、それぞれ、3Dトラッキング部3124が算出する後述の変化量ΔTx(3D)、変化量ΔTy(3D)及び変化量ΔRz(3D)の精度よりも高くなる可能性がある。一方で、変化量ΔTz(2D)、変化量ΔRx(2D)及び変化量ΔRy(2D)は、Z軸方向(2D)における位置の情報を用いることなく、高精度に算出することは容易ではない場合がある。この場合、2Dトラッキング部3123が算出する変化量ΔTz(2D)、変化量ΔRx(2D)及び変化量ΔRy(2D)の精度は、それぞれ、3Dトラッキング部3124が算出する後述の変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)の精度よりも高くなる可能性がある。このため、2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を算出してもよい。一方で、2Dトラッキング部3123は、変化量ΔTz(2D)、変化量ΔRx(2D)及び変化量ΔRy(2D)を算出してもよいし、算出しなくてもよい。以下の説明では、2Dトラッキング部3123が、少なくとも変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を算出する例について説明する。
 後に詳述するように、制御装置3は、2Dトラッキング部3123が算出した相対的に精度の高い変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を用いて、グローバル座標系内でのワークWの位置を算出する。この場合、2Dトラッキング部3123が算出した相対的に精度の低い変化量を用いてグローバル座標系内でのワークWの位置が算出される場合と比較して、制御装置3は、グローバル座標系内でのワークWの位置を、相対的に高精度に算出することができる。
 2Dトラッキング部3123は、ワークWの位置の変化量を算出する都度、算出したワークWの位置の変化量に関する情報を、座標変換部3125に出力する。一例として、2Dトラッキング部3123は、6DOFの位置の変化量の全て(つまり、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D))を算出し、算出した6DOFの位置の変化量のうちの一部に関する情報を、座標変換部3125に出力してもよい。他の一例として、2Dトラッキング部3123は、6DOFの位置の変化量の一部を算出し、算出した6DOFの位置の変化量の一部に関する情報を、座標変換部3125に出力してもよい。例えば、2Dトラッキング部3123は、上述した相対的に精度が高い変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を算出し、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)に関する情報を、座標変換部3125に出力してもよい。他の一例として、2Dトラッキング部3123は、6DOFの位置の変化量の全てを算出し、算出した6DOFの位置の変化量の全てに関する情報を、座標変換部3125に出力してもよい。この場合、座標変換部3125は、2Dトラッキング部3123が出力した6DOFの位置の変化量の全てを用いてワークWの6DOFの位置の変化量を算出してもよい。或いは、座標変換部3125は、2Dトラッキング部3123が出力した6DOFの位置の変化量の一部を選択し、選択した6DOFの変化量の一部を用いてワークWの6DOFの位置の変化量を算出してもよい。
 ここで、2Dトラッキング部3123は、所定の2Dトラッキング周期で、ワークWの位置の変化量を算出してもよい。つまり、2Dトラッキング部3123は、2Dトラッキング周期に相当する時間が経過する都度、ワークWの位置の変化量を算出してもよい。逆に言えば、2Dトラッキング部3123が2Dトラッキング処理を開始してから完了するまでに、2Dトラッキング周期に相当する時間が必要であるとみなしてもよい。この場合、2Dトラッキング部3123は、所定の2Dトラッキング周期で、ワークWの位置の変化量に関する情報を座標変換部3125に出力してもよい。
 図14に示すように、2Dトラッキング周期は、撮像装置21がワークWを撮像する2D撮像レートに対応する2D撮像周期と同じであってもよい。例えば、2Dトラッキング周期は、2Dトラッキング部3123が一秒間に数十回から数百回(一例として、500回)2Dトラッキング処理を行うことが可能な周期であってもよい。この場合、例えば、図14に示すように、2Dトラッキング部3123は、時刻t+1にワーク画像データIMG_2D#t+1が生成されると同時に又は後に、時刻t及びt+1に生成されたワーク画像データIMG_2D#t及びIMG_2D#t+1を用いた2Dトラッキング処理を行ってもよい。その結果、時刻t及びt+1の間におけるワークWの位置の変化量が算出される。同様に、例えば、図14に示すように、2Dトラッキング部3123は、時刻t+2にワーク画像データIMG_2D#t+2が生成されると同時に又は後に、時刻t+1及びt+2に生成されたワーク画像データIMG_2D#t+1及びIMG_2D#t+2を用いた2Dトラッキング処理を行ってもよい。その結果、時刻t+1及びt+2の間におけるワークWの位置の変化量が算出される。
 但し、2Dトラッキング周期は、2D撮像周期と同じでなくてもよい。例えば、2Dトラッキング周期は、2D撮像周期よりも短くてもよい。例えば、2Dトラッキング周期は、2D撮像周期よりも長くてもよい。
 尚、2Dトラッキング部3123は、時刻t1及びt2の間における2D撮像座標系内でのワークWの位置の変化量を算出しなくてもよい。例えば、2Dトラッキング部3123は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2それぞれについて上述のマッチング処理を行うことによって、時刻t1及びt2それぞれにおける2D撮像座標系内でのワークWの位置を算出してもよい。尚、異なる時刻毎(例えば、時刻t1及びt2)のワークWの位置を算出していることから、ここで2Dトラキング部3123が行っている処理は、トラッキング処理ともいえる。ここで、2Dトラッキング部3123は、上述の2Dマッチング部3121によるマッチング処理に用いる、ワーク画像データIMG_2Dが示す画像に写り込んでいるワークWの特徴箇所よりも少ない特徴箇所を用いて、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2それぞれについてマッチング処理を行ってもよい。この場合、2Dトラッキング部3123は、マッチング処理に要する演算時間を短縮できるため、2Dマッチング部3121によるマッチング処理よりも短い周期でトラッキング処理を行うことができる。
 更に、図14に示すように、2Dトラッキング周期は、上述した2Dマッチング部3121が2Dマッチング処理を行う2Dマッチング周期よりも短い。具体的には、トラッキング処理では、演算装置31はワーク画像データIMG_2D及びワーク形状データWSDのうちのワークWの特徴箇所に関連するデータ部分に着目した演算を行えばよい一方で、マッチング処理では、演算装置31はワーク画像データIMG_2D及びワーク形状データWSDの全体からワークWを探索する演算を行う必要がある。その結果、トラッキング処理を行うために必要な演算量は、マッチング処理を行うために必要な演算量よりも少なくなる。このため、通常は、2Dトラッキング周期は、2Dマッチング周期よりも短くなる。このため、2Dトラッキング部3123は、一の2Dマッチング周期が開始してから終了するまでの間に、2Dトラッキング処理を複数回行ってもよい。つまり、2Dトラッキング部3123は、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでの間に、2Dトラッキング処理を複数回行ってもよい。但し、2Dトラッキング周期は、2Dマッチング周期よりも短くなくてもよい。例えば、2Dトラッキング周期は、2Dマッチング周期と同じであってもよい。例えば、2Dトラッキング周期は、2Dマッチング周期よりも長くてもよい。尚、図14に示す、ワーク画像データIMG_2Dを生成するタイミングは、ワーク画像データIMG_2Dを生成するために撮像装置21がワークWを撮像するタイミングともいえる。
 (2-2-4)3Dトラッキング部3124が行う3Dトラッキング処理
 3Dトラッキング部3124は、3Dトラッキング処理として、二つのワーク形状データWSD#s1及びWSD#s2を用いたトラッキング処理を行う。二つのワーク形状データWSD#s1及びWSD#s2は、互いに異なる時刻s1及びs2に撮像装置22がワークWを撮像することで生成される二つのワーク画像データIMG_3D#s1及びIMG_3D#s2からそれぞれ生成される。二つのワーク形状データWSD#s1及びWSD#s2を用いたトラッキング処理は、図15に示すように、ワーク形状データWSD#s1が示すワークWの少なくとも一つの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)と同じ少なくとも一つの特徴箇所を、ワーク形状データWSD#s2内で追跡するトラッキング処理である。尚、トラッキング処理そのものは、既存のトラッキング処理と同一であってもよい。このため、トラッキング処理の詳細な説明は省略する。3Dトラッキング部3124は、トラッキング処理を行うことで、時刻s1及びs2の間における3D撮像座標系内での少なくとも一つの特徴箇所の位置の変化量を算出してもよい。その後、3Dトラッキング部3124は、3D撮像座標系内での少なくとも一つの特徴箇所の位置の変化量に基づいて、時刻s1及びs2の間における3D撮像座標系内でのワークWの位置の変化量を算出してもよい。尚、二つのワーク形状データWSD#s1及びWSD#s2を用いたトラッキング処理として、例えば、RANSAC(Random Sample Consensus)、SIFT(Scale-Invariant Feature Transform)、ICP(Iterative Closest Point)、及びDSO(Direct Sparse Odometry)の少なくとも一つの周知の方法を用いてもよい。
 尚、ワークWの位置の変化量を算出する方法は、二つのワーク形状データWSD#s1及びWSD#s2を用いたトラッキング処理に限られず、二つのワーク形状データWSD#s1及びWSD#s2を用いてワークWの位置の変化量を算出する他の周知の方法であってもよい。例えば、ワークWの位置の変化量を算出する方法は、機械学習又は深層学習によって、二つのワーク形状データWSD#s1及びWSD#s2に基づいてワークWの位置の変化量を算出する方法であってもよい。この場合、機械学習又は深層学習によって、二つのワーク形状データWSD#s1及びWSD#s2を入力するとワークWの位置の変化量を出力するような予測モデルを予め構築し、この予測モデルに二つのワーク形状データWSD#s1及びWSD#s2ワークを入力することによってワークWの位置の変化量を算出してもよい。この予測モデルは、3Dトラッキング部3124に記憶されていてもよい。尚、3Dトラッキング部3124は、記憶装置32に記憶されたこの予測モデルを読み出してもよい。
 3Dトラッキング部3124は、3D撮像座標系におけるワークWの位置の変化量として、X軸(3D)と平行なX軸方向(3D)におけるワークWの位置Tx(3D)の変化量ΔTx(3D)、Y軸(3D)と平行なY軸方向(3D)におけるワークWの位置Ty(3D)の変化量ΔTy(3D)及びZ軸(3D)と平行なZ軸方向(3D)におけるワークWの位置Tz(3D)の変化量ΔTz(3D)のうちの少なくとも一つを算出してもよい。3Dトラッキング部3124は、3D撮像座標系におけるワークWの位置として、変化量ΔTx(3D)、変化量ΔTy(3D)及び変化量ΔTz(3D)の少なくとも一つに加えて又は代えて、X軸(3D)周りの回転方向におけるワークWの位置Rx(3D)の変化量ΔRx(3D)、Y軸(3D)周りの回転方向におけるワークWの位置Ry(3D)の変化量ΔRy(3D)及びZ軸(3D)周りの回転方向におけるワークWの位置Rz(3D)の変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。つまり、3Dトラッキング部3124は、ワークWの位置の変化量として、X軸(3D)周りのワークWの姿勢の変化量、Y軸(3D)周りのワークWの姿勢の変化量及びZ軸(3D)周りのワークWの姿勢の変化量を算出してもよい。
 3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうち、2Dトラッキング部3123が算出するワークWの位置の変化量と比較して精度が相対的に高い少なくとも一つの変化量を算出してもよい。一方で、3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうち、2Dトラッキング部3123が算出するワークWの位置の変化量と比較して精度が相対的に低い少なくとも他の一つの変化量を算出しなくてもよい。例えば、3Dトラッキング部3124は、Z軸方向(3D)における位置の情報を有しているワーク形状データWSDを用いたトラッキング処理を行う。この場合、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)は、Z軸方向(3D)における位置の情報を用いることで、相対的に高精度に算出可能である。この場合、3Dトラッキング部3124が算出する変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)の精度は、それぞれ、2Dトラッキング部3123が算出する後述の変化量ΔTz(2D)、変化量ΔRx(2D)及び変化量ΔRy(2D)の精度よりも高くなる可能性がある。このため、3Dトラッキング部3124は、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を算出してもよい。一方で、3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)及び変化量ΔRz(3D)を算出してもよいし、算出しなくてもよい。以下の説明では、3Dトラッキング部3124が、少なくとも変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を算出する例について説明する。
 後に詳述するように、制御装置3は、3Dトラッキング部3124が算出した相対的に精度の高い変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を用いて、グローバル座標系内でのワークWの位置を算出する。この場合、3Dトラッキング部3124が算出した相対的に精度の低い変化量を用いてグローバル座標系内でのワークWの位置が算出される場合と比較して、制御装置3は、グローバル座標系内でのワークWの位置を、相対的に高精度に算出することができる。
 3Dトラッキング部3124は、ワークWの位置の変化量を算出する都度、算出したワークWの位置の変化量に関する情報を、座標変換部3125に出力する。一例として、3Dトラッキング部3124は、6DOFの変化量の全て(つまり、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D))を算出し、算出した6DOFの変化量のうちの一部に関する情報を、座標変換部3125に出力してもよい。他の一例として、3Dトラッキング部3124は、6DOFの変化量の一部を算出し、算出した6DOFの変化量の一部に関する情報を、座標変換部3125に出力してもよい。例えば、3Dトラッキング部3124は、上述した相対的に精度が高い変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を算出し、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)に関する情報を、座標変換部3125に出力してもよい。他の一例として、3Dトラッキング部3124は、6DOFの変化量の全てを算出し、算出した6DOFの変化量の全てに関する情報を、座標変換部3125に出力してもよい。この場合、座標変換部3125は、3Dトラッキング部3124が出力した6DOFの変化量の全てを用いてワークWの6DOFの変化量を算出してもよい。或いは、座標変換部3125は、3Dトラッキング部3124が出力した6DOFの変化量の一部を選択し、選択した6DOFの変化量の一部を用いてワークWの6DOFの変化量を算出してもよい。
 ここで、3Dトラッキング部3124は、所定の3Dトラッキング周期で、ワークWの位置の変化量を算出してもよい。つまり、3Dトラッキング部3124は、3Dトラッキング周期に相当する時間が経過する都度、ワークWの位置の変化量を算出してもよい。逆に言えば、3Dトラッキング部3124が3Dトラッキング処理を開始してから完了するまでに、3Dトラッキング周期に相当する時間が必要であるとみなしてもよい。この場合、3Dトラッキング部3124は、所定の3Dトラッキング周期で、ワークWの位置の変化量に関する情報を座標変換部3125に出力してもよい。
 図16に示すように、3Dトラッキング周期は、撮像装置22がワークWを撮像する3D撮像レートに対応する3D撮像周期と同じであってもよい。例えば、3Dトラッキング周期は、3Dトラッキング部3124が一秒間に数十回から数百回(一例として、500回)3Dトラッキング処理を行うことが可能な周期であってもよい。この場合、例えば、図16に示すように、3Dトラッキング部3124は、時刻s+1にワーク画像データIMG_3D#s+1が生成されると同時に又は後に、時刻s及びs+1に生成されたワーク画像データIMG_3D#s及びIMG_3D#s+1からそれぞれ生成されるワーク形状データWSD#s及びWSD#s+1を用いた3Dトラッキング処理を行ってもよい。その結果、時刻s及びs+1の間におけるワークWの位置の変化量が算出される。同様に、例えば、図16に示すように、3Dトラッキング部3124は、時刻s+2にワーク画像データIMG_3D#s+2が生成されると同時に又は後に、時刻s+1及びs+2に生成されたワーク画像データIMG_3D#s+1及びIMG_3D#s+2からそれぞれ生成されるワーク形状データWSD#s+1及びWSD#s+2を用いた3Dトラッキング処理を行ってもよい。その結果、時刻s+1及びs+2の間におけるワークWの位置の変化量が算出される。尚、図16に示す、ワーク画像データIMG_3Dを生成するタイミングは、ワーク画像データIMG_3Dを生成するために撮像装置22がワークWを撮像するタイミングともいえる。
 但し、3Dトラッキング周期は、3D撮像周期と同じでなくてもよい。例えば、3Dトラッキング周期は、3D撮像周期よりも短くてもよい。例えば、3Dトラッキング周期は、3D撮像周期よりも長くてもよい。
 尚、3Dトラッキング部3124は、時刻s1及びs2の間における3D撮像座標系内でのワークWの位置の変化量を算出しなくてもよい。例えば、3Dトラッキング部3124は、二つのワーク形状データWSD#s1及びWSD#s2それぞれについて上述の3Dマッチング処理を行うことによって、時刻s1及びs2それぞれにおける3D撮像座標系内でのワークWの位置を算出してもよい。尚、異なる時刻毎(例えば、時刻s1及びs2)のワークWの位置を算出していることから、ここで3Dトラッキング部3124が行っている処理は、トラッキング処理ともいえる。ここで、3Dトラッキング部3124は、上述の3Dマッチング部3122によるマッチング処理に用いる、ワーク形状データWSDが示すワークWの特徴箇所よりも少ない特徴箇所を用いて、二つのワーク形状データWSD#s1及びWSD#s2それぞれについて3マッチング処理を行ってもよい。この場合、3Dトラッキング部3124は、マッチング処理に要する演算時間を短縮できるため、3Dマッチング部3122によるマッチング処理よりも短い周期でトラッキング処理を行うことができる。
 更に、図16に示すように、3Dトラッキング周期は、上述した3Dマッチング部3122が3Dマッチング処理を行う3Dマッチング周期よりも短い。なぜならば、上述したように、トラッキング処理を行うために必要な演算量は、マッチング処理を行うために必要な演算量よりも少ないからである。このため、3Dトラッキング部3124は、一の3Dマッチング周期が開始してから終了するまでの間に、3Dトラッキング処理を複数回行ってもよい。3Dトラッキング部3124は、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでの間に、3Dトラッキング処理を複数回行ってもよい。但し、3Dトラッキング周期は、3Dマッチング周期よりも短くなくてもよい。例えば、3Dトラッキング周期は、3Dマッチング周期と同じであってもよい。例えば、3Dトラッキング周期は、3Dマッチング周期よりも長くてもよい。
 更に、図16に示すように、3Dトラッキング周期は、2Dトラッキング周期と同じであってもよい。具体的には、3Dトラッキング周期の長さは、2Dトラッキング周期の長さと同じであってもよい。つまり、3Dトラッキング部3124が3Dトラッキング処理を開始してから完了するまでの時間は、2Dトラッキング部3123が2Dトラッキング処理を開始してから完了するまでの時間と同じであってもよい。撮像装置21がワークWを撮像してから2Dトラッキング部3123が2Dトラッキング処理を開始し、且つ、撮像装置22がワークWを撮像してから3Dトラッキング部3124が3Dトラッキング処理を開始するがゆえに、撮像装置21がワークWを撮像してから2Dトラッキング部3123が2Dトラッキング処理を完了する(つまり、ワークWの位置の変化量を算出する)までの時間は、且つ、撮像装置22がワークWを撮像してから3Dトラッキング部3124が3Dトラッキング処理を完了する(つまり、ワークWの位置の変化量を算出する)までの時間と同じであってもよい。但し、3Dトラッキング周期は、2Dトラッキング周期と同じでなくてもよい。例えば、3Dトラッキング周期の長さは、2Dトラッキング周期の長さよりも長くてもよい。例えば、3Dトラッキング周期の長さは、2Dトラッキング周期の長さよりも短くてもよい。
 3Dトラッキング周期が2Dトラッキング周期と同じである場合、図16の上から2段目及び4段目のタイミングチャートに示すように、3Dトラッキング周期と2Dトラッキング周期とが時間的に重なっていてもよい。つまり、3Dトラッキング周期の開始時刻と2Dトラッキング周期の開始時刻とが同じになり、且つ、3Dトラッキング周期の完了時刻と2Dトラッキング周期の終了時刻とが同じになっていてもよい。言い換えれば、3Dトラッキング部3124が3Dトラッキング処理を開始する時刻と、2Dトラッキング部3123が2Dトラッキング処理を開始する時刻とが同じになり、且つ、3Dトラッキング部3124が3Dトラッキング処理を完了する時刻と、2Dトラッキング部3123が2Dトラッキング処理を完了する時刻とが同じになっていてもよい。この場合には、2Dトラッキング処理に用いられる二つのワーク画像データIMG_2D#t1及びIMG_2D#t2を生成するために撮像装置21がワークWを撮像する時刻t1及びt2は、それぞれ、3Dトラッキング処理に用いられる二つのワーク画像データIMG_3D#s1及びIMG_3D#s2を生成するために撮像装置22がワークWを撮像する時刻s1及びs2と同じであってもよい。但し、3Dトラッキング周期と2Dトラッキング周期とが時間的に重なっていなくてもよい。3Dトラッキング周期の開始時刻と2Dトラッキング周期の開始時刻とが所定時間ずれていてもよい。3Dトラッキング周期の終了時刻と2Dトラッキング周期の終了時刻とが所定時間ずれていてもよい。3Dトラッキング部3124が3Dトラッキング処理を開始する時刻と、2Dトラッキング部3123が2Dトラッキング処理を開始する時刻とが所定時間ずれていてもよい。3Dトラッキング部3124が3Dトラッキング処理を完了する時刻と、2Dトラッキング部3123が2Dトラッキング処理を完了する時刻とが所定時間ずれていてもよい。2Dトラッキング処理に用いられる二つのワーク画像データIMG_2D#t1を生成するために撮像装置21がワークWを撮像する時刻t1は、3Dトラッキング処理に用いられるワーク画像データIMG_3D#s1を生成するために撮像装置22がワークWを撮像する時刻s1と異なっていてもよい。2Dトラッキング処理に用いられる二つのワーク画像データIMG_2D#t2を生成するために撮像装置21がワークWを撮像する時刻t2は、3Dトラッキング処理に用いられるワーク画像データIMG_3D#s2を生成するために撮像装置22がワークWを撮像する時刻s2と異なっていてもよい。
 ここで、これまで説明した2Dマッチング周期、3Dマッチング周期、2Dトラッキング周期及び3Dトラッキング周期についてまとめる。上述したように、2Dマッチング周期は、3Dマッチング周期と同じであってもよいし、2Dトラッキング周期よりも長い。3Dマッチング周期は、2Dマッチング周期と同じであってもよいし、3Dトラッキング周期よりも長い。2Dトラッキング周期は、3Dトラッキング周期と同じであってもよいし、2Dマッチング周期よりも短い。3Dトラッキング周期は、2Dトラッキング周期と同じであってもよいし、3Dマッチング周期よりも短い。この場合、2Dマッチング周期、3Dマッチング周期、2Dトラッキング周期及び3Dトラッキング周期の間には、2Dマッチング周期及び3Dマッチング周期のうちの短い方の周期が、2Dトラッキング周期及び3Dトラッキング周期のうちの長い方の周期よりも長いという関係が成立していてもよい。なぜならば、上述したように、トラッキング処理を行うために必要な演算量は、マッチング処理を行うために必要な演算量よりも少ないからである。
 ここで、上述したいように、通常、3Dトラッキング処理に用いられるワーク形状データWSDのデータサイズは、2Dトラッキング処理に用いられるワーク画像データIMG_2Dのデータサイズよりも多い。特に、ワーク形状データWSDが点群データである場合には、ワーク形状データWSDのデータサイズはワーク画像データIMG_2Dのデータサイズよりも多くなる可能性が高い。このため、3Dトラッキング部3124が3Dトラッキング処理を完了するために必要な時間である3Dトラッキング周期は、2Dトラッキング部3123が2Dトラッキング処理を完了するために必要な時間である2Dトラッキング周期よりも長くなる可能性がある。そこで、3Dトラッキング部3124は、3Dトラッキング周期が2Dトラッキング周期と同じになるように、又は3Dトラッキング周期が2Dトラッキング周期よりも短くなるように、3Dトラッキング処理を行ってもよい。
 一例として、3Dトラッキング部3124は、ワーク形状データWSDとして、上述した深度画像データを用いて、3Dトラッキング処理を行ってもよい。この場合、ワーク形状データWSDとして上述した点群データを用いて3Dトラッキング処理が行われる場合と比較して、トラッキング処理を行うために必要な演算量が少なくなる。典型的には、トラッキング処理を行うために必要な演算量は、3Dトラッキング周期が2Dトラッキング周期と同じになるほどに少なくなる。なぜならば、二次元画像の各画素に深度情報が関連付けられた深度画像データのデータサイズは、二次元画像であるワーク画像データIMG_2Dのデータサイズとそれほど大きく変わることはないからである。但し、3Dトラッキング部3124は、ワーク形状データWSDとして、上述した点群データを用いて、3Dトラッキング処理を行ってもよい。
 (2-2-5)座標変換部3125が行う位置算出処理
 座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、2Dトラッキング処理の結果及び3Dトラッキング処理の結果に基づいて、グローバル座標系におけるワークWの位置を算出する。つまり、座標変換部3125は、グローバル座標系におけるワークWの位置として、位置Tx、位置Ty、位置Tz、位置Rx、位置Ry及び位置Rzを算出する。
 グローバル座標系におけるワークWの位置を算出するために、座標変換部3125は、2Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正し、且つ、3Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正する。具体的には、図7に示すように、座標変換部3125は、2Dトラッキング処理の結果として、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)に関する情報を取得する。座標変換部3125は、3Dトラッキング処理の結果として、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)に関する情報を取得する。座標変換部3125は、2Dマッチング処理の結果として、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)に関する情報を取得する。座標変換部3125は、3Dマッチング処理の結果として、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)に関する情報を取得する。この場合、座標変換部3125は、変化量ΔTx(2D)に基づいて位置Tx(2D)を補正することで、2D撮像座標系のX軸方向(2D)におけるワークWの位置Tx’(2D)を算出してもよい。座標変換部3125は、変化量ΔTy(2D)に基づいて位置Ty(2D)を補正することで、2D撮像座標系のY軸方向(2D)におけるワークWの位置Ty’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)に基づいて位置Tz(3D)を補正することで、3D撮像座標系のZ軸方向(3D)におけるワークWの位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)に基づいて位置Rx(3D)を補正することで、3D撮像座標系のX軸(3D)周りの回転方向におけるワークWの位置Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)に基づいて位置Ry(3D)を補正することで、3D撮像座標系のY軸(3D)周りの回転方向におけるワークWの位置Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)に基づいて位置Rz(2D)を補正することで、2D撮像座標系のZ軸(2D)周りの回転方向におけるワークWの位置Rz’(2D)を算出してもよい。
 2Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正する処理は、2Dトラッキング処理の結果を2Dマッチング処理の結果に加算する処理を含んでいてもよい。3Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正する処理は、3Dトラッキング処理の結果を3Dマッチング処理の結果に加算する処理を含んでいてもよい。例えば、座標変換部3125は、変化量ΔTx(2D)を位置Tx(2D)に加算することで、位置Tx’(2D)を算出してもよい。座標変換部3125は、変化量ΔTy(2D)を位置Ty(2D)に加算することで、位置Ty’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)を位置Tz(3D)に加算することで、位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)を位置Rx(3D)に加算することで、位置Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)を位置Ry(3D)に加算することで、位置Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)を位置Rz(2D)に加算することで、位置Rz’(2D)を算出してもよい。
 上述したように、変化量ΔTx(2D)が生成される周期である2Dトラッキング周期は、位置Tx(2D)が生成される周期である2Dマッチング周期よりも短い。この場合、2Dトラッキング部3123は、位置Tx(2D)が新たに生成されてから位置Tx(2D)が次に生成されるまでの間に、変化量ΔTx(2D)を複数回算出する。この場合、座標変換部3125は、変化量ΔTx(2D)が新たに算出されるたびに、新たに算出された位置Tx(2D)と新たに算出された変化量ΔTx(2D)とに基づいて、位置Tx’(2D)を算出してもよい。具体的には、座標変換部3125は、変化量ΔTx(2D)が新たに算出されるたびに、位置Tx(2D)に対して、位置Tx(2D)が算出されてから算出された変化量ΔTx(2D)の総和を加算することで、位置Tx’(2D)を算出してもよい。或いは、座標変換部3125は、変化量ΔTx(2D)が新たに算出されるたびに、その時点での位置Tx’(2D)(つまり、算出済みの変化量ΔTx(2D)が加算済みの位置Tx(2D))に対して、新たに算出された変化量ΔTx(2D)を加算することで、新たな位置Tx’(2D)を算出してもよい。従って、変化量ΔTx(2D)が算出される都度、位置Tx(2D)に加算される変化量ΔTx(2D)の総和が増えていく。
 この場合、位置Tx(2D)がそのまま位置Tx’(2D)として用いられる比較例と比較して、位置Tx’(2D)の更新頻度が高くなる。具体的には、位置Tx(2D)がそのまま位置Tx’(2D)として用いられる場合、位置Tx’(2D)の更新頻度は、位置Tx(2D)を算出する周期である2Dマッチング周期に依存する。一方で、変化量ΔTx(2D)に基づいて位置Tx(2D)を補正することで位置Tx’(2D)を算出する場合、位置Tx’(2D)の更新頻度は、変化量ΔTx(2D)を算出する周期である2Dトラッキング周期に依存する。その結果、2Dトラッキング周期が2Dマッチング周期よりも短いがゆえに、位置Tx’(2D)の更新頻度が高くなる。後述するように2D撮像座標系内でのワークWの位置Tx’(2D)に基づいてグローバル座標系内でのワークWの位置が算出されるがゆえに、座標変換部3125は、2Dトラッキング周期と同じ周期で、グローバル座標系内でのワークWの位置を算出することができる。このため、位置算出部312は、より短い周期で、グローバル座標系内でのワークWの位置を算出することができる。つまり、位置算出部312は、より高頻度に(言い換えれば、高速に)、グローバル座標系内でのワークWの位置を算出することができる。
 ところで、2Dトラッキング処理によって算出される変化量ΔTx(2D)には、ワークWの実際の位置に対するずれ量に相当する誤差が含まれている可能性がある。その結果、変化量ΔTx(2D)が算出されるたびに増え続ける変化量ΔTx(2D)の総和に含まれる誤差も大きくなっていく可能性がある。その結果、変化量ΔTx(2D)が加算される都度、制御装置3が算出したワークWの位置Tx’(2D)とワークWの実際の位置との乖離が大きくなっていく可能性がある。一方で、マッチング処理によって算出される位置の精度は、トラッキング処理によって算出される位置の精度よりも高い。そこで、座標変換部3125は、位置Tx(2D)が新たに算出された場合には、位置Tx’(2D)を算出するために位置Tx(2D)に加算される変化量ΔTx(2D)の総和をリセットしてもよい。この場合には、座標変換部3125は、新たに算出された位置Tx(2D)に対して、位置Tx(2D)が新たに算出されてから新たに算出された変化量ΔTx(2D)の総和を加算することで、位置Tx’(2D)を算出してもよい。その結果、位置算出部312は、位置Tx’(2D)を精度よく算出することができる。尚、座標変換部3125は、位置Tx(2D)が新たに算出された場合には、その新たに算出された位置Tx(2D)で、変化量Tx(2D)の総和が加算された位置Tx’(2D)を補正するともいえる。
 位置Tx’(2D)を算出する流れの一例が、図17に示されている。図17は、時刻t10において、位置Tx(2D)#1が新たに算出され、その後、時刻t10から2Dマッチング周期が経過した時刻t20において、位置Tx(2D)#2が新たに算出される例を示している。この場合、時刻t10においては、位置Tx(2D)#1が新たに算出されたがゆえに、位置Tx(2D)#1に加算される変化量ΔTx(2D)が未だ算出されていない。このため、時刻t10から時刻t11までは、位置Tx(2D)#1が、位置Tx’(2D)として用いられる。その後、時刻t11において、変化量ΔTx(2D)#11が算出された場合には、座標変換部3125は、位置Tx(2D)#1に変化量ΔTx(2D)#11を加算する。その結果、時刻t11から時刻t12までは、位置Tx(2D)#1+変化量ΔTx(2D)#11が、位置Tx’(2D)として用いられる。その後、時刻t12において、変化量ΔTx(2D)#12が算出された場合には、座標変換部3125は、位置Tx(2D)#1に変化量ΔTx(2D)#11からΔTx(2D)#12を加算する。或いは、座標変換部3125は、変化量ΔTx(2D)#11が既に加算されている位置Tx(2D)#1に、新たに算出されたΔTx(2D)#12を加算する。その結果、時刻t12から時刻t13までは、位置Tx(2D)#1+変化量ΔTx(2D)#11+変化量ΔTx(2D)#12が、位置Tx’(2D)として用いられる。その後、時刻t13において、変化量ΔTx(2D)#13が算出された場合には、座標変換部3125は、位置Tx(2D)#1に変化量ΔTx(2D)#11からΔTx(2D)#13を加算する。或いは、座標変換部3125は、変化量ΔTx(2D)#11からΔTx(2D)#12が既に加算されている位置Tx(2D)#1に、新たに算出されたΔTx(2D)#13を加算する。その結果、時刻t13から時刻t14までは、位置Tx(2D)#1+変化量ΔTx(2D)#11+変化量ΔTx(2D)#12+変化量ΔTx(2D)#13が、位置Tx’(2D)として用いられる。その後、時刻t20において、位置Tx(2D)#2が新たに算出された場合には、位置Tx’(2D)を算出するために位置Tx(2D)に加算される変化量ΔTx(2D)の総和がゼロにリセットされる。このため、時刻t20から時刻t21までは、位置Tx(2D)#2が、位置Tx’(2D)として用いられる。その後、時刻t21において、変化量ΔTx(2D)#21が算出された場合には、座標変換部3125は、位置Tx(2D)#2に変化量ΔTx(2D)#21を加算する。その結果、時刻t21から時刻t22までは、位置Tx(2D)#2+変化量ΔTx(2D)#21が、位置Tx’(2D)として用いられる。その後、時刻t22において、変化量ΔTx(2D)#22が算出された場合には、座標変換部3125は、位置Tx(2D)#2に変化量ΔTx(2D)#21からΔTx(2D)#22を加算する。或いは、座標変換部3125は、変化量ΔTx(2D)#21が既に加算されている位置Tx(2D)#2に、新たに算出されたΔTx(2D)#22を加算する。その結果、時刻t22から時刻t23までは、位置Tx(2D)#2+変化量ΔTx(2D)#21+変化量ΔTx(2D)#22が、位置Tx’(2D)として用いられる。
 尚、重複する説明を省略するために図示しないものの、座標変換部3125は、位置Tx’(2D)を算出する場合と同様に、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)を算出する。つまり、座標変換部3125は、変化量ΔTy(2D)が新たに算出されるたびに、位置Ty(2D)に対して、位置Ty(2D)が算出されてから算出された変化量ΔTy(2D)の総和を加算することで、位置Ty’(2D)を算出してもよい。或いは、座標変換部3125は、変化量ΔTy(2D)が新たに算出されるたびに、その時点での位置Ty’(2D)(つまり、算出済みの変化量ΔTy(2D)が加算済みの位置Ty(2D))に対して、新たに算出された変化量ΔTy(2D)を加算することで、新たな位置Ty’(2D)を算出してもよい。その後、座標変換部3125は、位置Ty(2D)が新たに算出された場合には、位置Ty’(2D)を算出するために位置Ty(2D)に加算されるΔ変化量Ty(2D)の総和をリセットし、新たに算出された位置Ty(2D)に対して、位置Ty(2D)が新たに算出されてから新たに算出された変化量ΔTy(2D)を逐次加算することで、位置Ty’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)が新たに算出されるたびに、位置Tz(3D)に対して、位置Tz(3D)が算出されてから算出された変化量ΔTz(3D)の総和を加算することで、位置Tz’(3D)を算出してもよい。或いは、座標変換部3125は、変化量ΔTz(3D)が新たに算出されるたびに、その時点での位置Tz’(3D)(つまり、算出済みの変化量ΔTz(3D)が加算済みの位置Tz(3D))に対して、新たに算出された変化量ΔTz(3D)を加算することで、新たな位置Tz’(3D)を算出してもよい。その後、座標変換部3125は、位置Tz(3D)が新たに算出された場合には、位置Tz’(3D)を算出するために位置Tz(3D)に加算される変化量ΔTz(3D)の総和をリセットし、新たに算出された位置Tz(3D)に対して、位置Tz(3D)が新たに算出されてから新たに算出された変化量ΔTz(3D)を逐次加算することで、位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)が新たに算出されるたびに、位置Rx(3D)に対して、位置Rx(3D)が算出されてから算出された変化量ΔRx(3D)の総和を加算することで、位置Rx’(3D)を算出してもよい。或いは、座標変換部3125は、変化量ΔRx(3D)が新たに算出されるたびに、その時点での位置Rx’(3D)(つまり、算出済みの変化量ΔRx(3D)が加算済みの位置Rx(3D))に対して、新たに算出された変化量ΔRx(3D)を加算することで、新たな位置Rx’(3D)を算出してもよい。その後、座標変換部3125は、位置Rx(3D)が新たに算出された場合には、位置Rx’(3D)を算出するために位置Rx(3D)に加算される変化量ΔRx(3D)の総和をリセットし、新たに算出された位置Rx(3D)に対して、位置Rx(3D)が新たに算出されてから新たに算出された変化量ΔRx(3D)を逐次加算することで、位置Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)が新たに算出されるたびに、位置Ry(3D)に対して、位置Ry(3D)が算出されてから算出された変化量ΔRy(3D)の総和を加算することで、位置Ry’(3D)を算出してもよい。或いは、座標変換部3125は、変化量ΔRy(3D)が新たに算出されるたびに、その時点での位置Ry’(3D)(つまり、算出済みの変化量ΔRy(3D)が加算済みの位置Ry(3D))に対して、新たに算出された変化量ΔRy(3D)を加算することで、新たな位置Ry’(3D)を算出してもよい。その後、座標変換部3125は、位置Ry(3D)が新たに算出された場合には、位置Ry’(3D)を算出するために位置Ry(3D)に加算される変化量ΔRy(3D)の総和をリセットし、新たに算出された位置Ry(3D)に対して、位置Ry(3D)が新たに算出されてから新たに算出された変化量ΔRy(3D)を逐次加算することで、位置Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)が新たに算出されるたびに、位置Rz(2D)に対して、位置Rz(2D)が算出されてから算出された変化量ΔRz(2D)の総和を加算することで、位置Rz’(2D)を算出してもよい。或いは、座標変換部3125は、変化量ΔRz(2D)が新たに算出されるたびに、その時点での位置Rz’(2D)(つまり、算出済みの変化量ΔRz(2D)が加算済みの位置Rz(2D))に対して、新たに算出された変化量ΔRz(2D)を加算することで、新たな位置Rz’(2D)を算出してもよい。その後、座標変換部3125は、位置Rz(2D)が新たに算出された場合には、位置Rz’(2D)を算出するために位置Rz(2D)に加算される変化量ΔRz(2D)の総和をリセットし、新たに算出された位置Rz(2D)に対して、位置Rz(2D)が新たに算出されてから新たに算出された変化量ΔRz(2D)を逐次加算することで、位置Rz’(2D)を算出してもよい。
 その後、座標変換部3125は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)に基づいて、グローバル座標系におけるワークWの位置Tx、位置Ty、位置Tz、位置Rx、位置Ry及び位置Rzを算出する。具体的には、まず、座標変換部3125は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)を、2D撮像座標系及び3D撮像座標系のうちのいずれか一方である共通座標系内の位置に変換する。但し、2D撮像座標系及び3D撮像座標系とは異なる任意の座標系が、共通座標系として用いられてもよい。
 一例として、2D撮像座標系が共通座標系として用いられる場合には、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)は、既に2D撮像座標系内の位置を示している。従って、座標変換部3125は、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)を変換しなくてもよい。一方で、座標変換部3125は、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)を、2D撮像座標系のZ軸方向(2D)における位置Tz’(2D)、2D撮像座標系のX軸(2D)周りの回転方向における位置Rx’(2D)及び2D撮像座標系のY軸(2D)周りの回転方向における位置Ry’(2D)に変換する。例えば、座標変換部3125は、3D撮像座標系内の位置を2D撮像座標系内の位置に変換するための変換行列M32を用いて、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)を、位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)に変換してもよい。具体的には、座標変換部3125は、位置Tz’(2D)=M32×位置Tz’(3D)、位置Rx’(2D)=M32×位置Rx’(3D)及び位置Ry’(2D)=M32×位置Ry’(3D)という数式を用いて、位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)を算出してもよい。尚、変換行列M32は、上述したように、撮像装置21と撮像装置22との位置関係から算出可能である。
 この場合、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)の精度が相対的に高いことは、既に上述したとおりである。更に、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)の精度が相対的に高いことは、既に上述したとおりである。その結果、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)から変換される位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)の精度もまた相対的に高い。従って、グローバル座標系内でのワークWの位置を算出するために座標変換部3125が用いる2D撮像座標系内(共通座標系内)でのワークWの6DOF(Degree of Freedom)の位置の精度は、相対的に高い。具体的には、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)に基づいて算出される2D撮像座標系内(共通座標系内)でのワークWの6DOFの位置の精度は、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)の少なくとも一つを用いることなく算出される2D撮像座標系内(共通座標系内)でのワークWの6DOFの位置の精度よりも高くなる。従って、制御装置3は、上述したように精度が高い2D撮像座標系内でのワークWの6DOFの位置を用いて、グローバル座標系内でのワークWの位置を高精度に算出することができる。具体的には、制御装置3は、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)に基づいてグローバル座標系内でのワークWの位置を算出することで、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)の少なくとも一つを用いることなく算出されるグローバル座標系内でのワークWの位置の精度よりも高い精度で、グローバル座標系内でのワークWの位置を算出することができる。
 他の一例として、3D撮像座標系が共通座標系として用いられる場合には、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)は、既に3D撮像座標系内の位置を示している。従って、座標変換部3125は、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)を変換しなくてもよい。一方で、座標変換部3125は、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)を、3D撮像座標系のX軸方向(3D)における内での位置Tx’(3D)、3D撮像座標系のY軸方向(3D)における位置Ty’(3D)及び3D撮像座標系のZ軸(3D)周りの回転方向における位置Rz’(3D)に変換する。例えば、座標変換部3125は、2D撮像座標系内の位置を3D撮像座標系内の位置に変換するための変換行列M23を用いて、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)を、位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)に変換してもよい。具体的には、座標変換部3125は、位置Tx’(3D)=M23×位置Tx’(2D)、位置Ty’(3D)=M23×位置Ty’(2D)及び位置Rz’(3D)=M23×位置Rz’(2D)という数式を用いて、位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)を算出してもよい。尚、変換行列M23は、上述したように、撮像装置21と撮像装置22との位置関係から算出可能である。変換行列M23は、上述した変換行列M32の逆行列であってもよい。
 この場合、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)の精度が相対的に高いことは、既に上述したとおりである。更に、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)の精度が相対的に高いことは、既に上述したとおりである。その結果、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)から変換される位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)の精度もまた相対的に高い。従って、グローバル座標系内でのワークWの位置を算出するために座標変換部3125が用いる3D撮像座標系内でのワークWの6DOFの位置の精度は、相対的に高い。具体的には、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)に基づいて算出される3D撮像座標系内(共通座標系内)でのワークWの6DOFの位置の精度は、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)の少なくとも一つを用いることなく算出される3D撮像座標系内(共通座標系内)でのワークWの6DOFの位置の精度よりも高くなる。従って、制御装置3は、上述したように精度が高い3D撮像座標系内でのワークWの6DOFの位置を用いて、グローバル座標系内でのワークWの位置の高精度に算出することができる。具体的には、制御装置3は、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)に基づいてグローバル座標系内でのワークWの位置を算出することで、位置Tx(2D)及び変化量ΔTx(2D)、位置Ty(2D)及び変化量ΔTy(2D)、位置Tz(3D)及び変化量ΔTz(3D)、位置Rx(3D)及び変化量ΔRx(3D)、位置Ry(3D)及び変化量ΔRy(3D)、並びに、位置Rz(2D)及び変化量ΔRz(2D)の少なくとも一つを用いることなく算出されるグローバル座標系内でのワークWの位置の精度よりも高い精度で、グローバル座標系内でのワークWの位置を算出することができる。
 撮像装置21及び22は、2D撮像座標系の原点が3D撮像座標系の原点に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のX軸(2D)が3D撮像座標系のX軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のY軸(2D)が3D撮像座標系のY軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のZ軸(2D)が3D撮像座標系のZ軸(3D)に可能な限り近づくように配置されていてもよい。この場合、2D撮像座標系が共通座標系として用いられる場合において、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)から変換される位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)の精度が相対的に高い状態が維持される可能性が高くなる。同様に、3D撮像座標系が共通座標系として用いられる場合において、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)から変換される位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)の精度が相対的に高い状態が維持される可能性が高くなる。
 尚、上述した説明では、座標変換部3125は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)を算出した後に、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)を、共通座標系内の位置に変換している。しかしながら、座標変換部3125は、位置Tx(2D)、位置Ty(2D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(2D)を、共通座標系内の位置に変換してもよい。同様に、座標変換部3125は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(2D)を、共通座標系内の変化量に変換してもよい。
 一例として、2D撮像座標系が共通座標系として用いられる場合には、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)は、既に2D撮像座標系内の位置を示している。同様に、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)は、既に2D撮像座標系内の変化量を示している。従って、座標変換部3125は、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)と、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)とを変換しなくてもよい。一方で、座標変換部3125は、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を、共通座標系である2D撮像座標系内での位置Tz(2D_conv)、位置Rx(2D_conv)及び位置Ry(2D_conv)に変換してもよい。同様に、座標変換部3125は、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を、共通座標系である2D撮像座標系内での変化量ΔTz(2D_conv)、変化量ΔRx(2D_conv)及び変化量ΔRy(2D_conv)に変換してもよい。例えば、座標変換部3125は、3D撮像座標系内の位置を2D撮像座標系内の位置に変換するための変換行列M32を用いて、上述した変換を行ってもよい。その後、座標変換部3125は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D_conv)、位置Rx(2D_conv)、位置Ry(2D_conv)及び位置Rz(2D)と、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D_conv)、変化量ΔRx(2D_conv)、変化量ΔRy(2D_conv)及び変化量ΔRz(2D)とに基づいて、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(2D)、位置Rx’(2D)、位置Ry’(2D)及び位置Rz’(2D)を算出してもよい。具体的には、座標変換部3125は、変化量ΔTx(2D)に基づいて位置Tx(2D)を補正することで、位置Tx’(2D)を算出してもよい。座標変換部3125は、変化量ΔTy(2D)に基づいて位置Ty(2D)を補正することで、位置Ty’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(2D_conv)に基づいて位置Tz(2D_conv)を補正することで、位置Tz’(2D)を算出してもよい。座標変換部3125は、変化量ΔRx(2D_conv)に基づいて位置Rx(2D_conv)を補正することで、位置Rx’(2D)を算出してもよい。座標変換部3125は、変化量ΔRy(2D_conv)に基づいて位置Ry(2D_conv)を補正することで、位置Ry’(2D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)に基づいて位置Rz(2D)を補正することで、位置Rz’(2D)を算出してもよい。
 他の一例として、3D撮像座標系が共通座標系として用いられる場合には、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)は、既に3D撮像座標系内の位置を示している。同様に、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)は、既に3D撮像座標系内の変化量を示している。従って、座標変換部3125は、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)と、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)とを変換しなくてもよい。一方で、座標変換部3125は、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を、共通座標系である3D撮像座標系内での位置Tx(3D_conv)、位置Ty(3D_conv)及び位置Rz(3D_conv)に変換してもよい。同様に、座標変換部3125は、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を、共通座標系である3D撮像座標系内での変化量ΔTx(3D_conv)、変化量ΔTy(3D_conv)及び変化量ΔRz(3D_conv)に変換してもよい。例えば、座標変換部3125は、2D撮像座標系内の位置を3D撮像座標系内の位置に変換するための変換行列M32を用いて、上述した変換を行ってもよい。その後、座標変換部3125は、位置Tx(3D_conv)、位置Ty(3D_conv)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D_conv)と、変化量ΔTx(3D_conv)、変化量ΔTy(3D_conv)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D_conv)とに基づいて、位置Tx’(3D)、位置Ty’(3D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(3D)を算出してもよい。具体的には、座標変換部3125は、変化量ΔTx(3D_conv)に基づいて位置Tx(3D_conv)を補正することで、位置Tx’(3D)を算出してもよい。座標変換部3125は、変化量ΔTy(3D_conv)に基づいて位置Ty(3D_conv)を補正することで、位置Ty’(3D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)に基づいて位置Tz(3D)を補正することで、位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)に基づいて位置Rx(3D)を補正することで、位置Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)に基づいて位置Ry(3D)を補正することで、位置Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(3D_conv)に基づいて位置Rz(3D_conv)を補正することで、位置Rz’(3D)を算出してもよい。
 その後、座標変換部3125は、2D撮像座標系内でのワークWの6DOFの位置又は3D撮像座標系内でのワークWの6DOFの位置に基づいて、グローバル座標系内でのワークWの6DOFの位置を算出する。つまり、座標変換部3125は、2D撮像座標系内でのワークWの6DOFの位置又は3D撮像座標系内でのワークWの6DOFの位置に基づいて、グローバル座標系におけるワークWの位置Tx、位置Ty、位置Tz、位置Rx、位置Ry及び位置Rzを算出する。
 例えば、座標変換部3125は、2D撮像座標系又は3D撮像座標系内の位置をグローバル座標系内の位置に変換するための変換行列Mを用いて、2D撮像座標系内でのワークWの6DOFの位置又は3D撮像座標系内でのワークWの6DOFの位置を、グローバル座標系内でのワークWの6DOFの位置に変換してもよい。変換行列Mは、例えば、ロボットアーム12の各ジョイント122が規定する軸周りのリンク121の回転に起因した撮像装置21又は22の位置座標の変化を反映する変換行列の積を含んでいてもよい。この変換行列は、いわゆる回転行列であってもよいし、回転行列に並進成分を含む行列であってもよいし、オイラー角に基づく行列であってもよい。尚、変換行列を用いたロボットアームの座標変換そのものについては既存の変換方法を用いてもよいため、その詳細な説明は省略する。
 (3)ロボットシステムSYSの技術的効果
 以上説明したように、制御装置3は、2Dマッチング部3121が算出する6DOFの位置のうちの相対的に精度が高い位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)と、2Dトラッキング部3123が算出する6DOFの変化量のうちの相対的に精度が高い変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)と、3Dマッチング部3122が算出する6DOFの位置のうちの相対的に精度が高い位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)と、3Dトラッキング部3124が算出する6DOFの変化量のうちの相対的に精度が高い変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)とを用いて、グローバル座標系におけるワークWの位置を算出している。このため、2Dマッチング部3121及び3Dマッチング部3122のそれぞれが算出する6DOFの位置の精度の違いを考慮せず且つ2Dトラッキング部3123及び3Dトラッキング部3124のそれぞれが算出する6DOFの変化量の精度の違いを考慮することなくグローバル座標系におけるワークWの位置が算出される場合と比較して、制御装置3は、グローバル座標系におけるワークWの位置を高精度に算出することができる。
 また、制御装置3は、2Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正し、且つ、3Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正することで、グローバル座標系におけるワークWの位置を算出している。このため、上述したように、2Dトラッキング処理及び3Dトラッキング処理の結果を用いることなく2Dマッチング処理及び3Dマッチング処理の結果に基づいてグローバル座標系におけるワークWの位置が算出される場合と比較して、制御装置3は、より短い周期で(つまり、より高い頻度で)、グローバル座標系におけるワークWの位置を算出することができる。つまり、位置算出部312は、より高速に、グローバル座標系におけるワークWの位置を算出することができる。その結果、制御装置3は、より高い頻度で制御信号を生成(つまり、更新)し、且つ、ロボット1に出力することができる。尚、制御装置3は、より高速に制御信号を生成(更新)し、且つ、ロボット1に出力することができるともいえる。
 例えば、制御装置3は、ワークWの位置が算出される都度、制御信号を生成してもよい。この場合、制御装置3は、ワークWの位置が算出される周期(例えば、上述した2Dトラッキング周期又は3Dトラッキング周期)と同じ周期で、制御信号を生成することができる。その結果、制御装置3は、ワークWの位置が算出される周期(例えば、上述した2Dトラッキング周期又は3Dトラッキング周期)と同じ周期で、制御信号をロボット1に出力することができる。仮に、2Dトラッキング処理及び3Dトラッキング処理の結果を用いることなく2Dマッチング処理及び3Dマッチング処理の結果に基づいてグローバル座標系におけるワークWの位置が算出される場合には、制御装置3は、ワークWの位置が算出される周期である2Dマッチング周期又は3Dマッチング周期と同じ周期(典型的には、2Dトラッキング周期又は3Dトラッキング周期よりも短い周期)で、制御信号を生成し且つ出力することになる。従って、本実施形態では、この場合と比較して、制御装置3は、より高い頻度で(より高速に)制御信号を生成(つまり、更新)し、且つ、ロボット1に出力することができる。尚、制御装置3は、ワークWの位置が算出される周期とは異なる周期(例えば、上述した2Dトラッキング周期又は3Dトラッキング周期とは異なる周期)で、制御信号を生成し且つ出力してもよい。
 このような効果は、特に、ロボット1とワークWとの少なくとも一方が移動している場合に有益である。なぜならば、ロボット1とワークWとの少なくとも一方が移動している状況下でワークWの位置を算出する頻度が低くなるほど、制御装置3が算出したワークWの位置とワークWの実際の位置との乖離度が大きい期間が長くなってしまうからである。本実施形態では、制御装置3は、より高い頻度で(より高速に)グローバル座標系におけるワークWの位置を算出するがゆえに、制御装置3が算出したワークWの位置とワークWの実際の位置との乖離度が相対的に小さくなる。従って、制御装置3は、ワークWの位置を高い頻度で算出することで、実質的に、ワークWの位置を高精度に算出することができる。その結果、制御装置3は、位置が高精度に且つ高頻度に算出されるワークWに対して所望の処理を行うようにロボット1を制御するための制御信号を適切に生成(つまり、更新)し、且つ、ロボット1に出力することができる。その結果、ロボット1の動きが意図した動きとは異なった動きとなってしまう可能性が低くなる。
 例えば、図5に示すように移動するワークWをロボット1が掴む場合には、制御装置3は、ワークWの位置の算出周期に合わせて、移動するワークWに追従するロボット1の動きを制御(つまり、ロボット制御信号を生成及び出力)することができる。このため、ロボット1の動きが、移動するワークを追従するための所望の動きからずれていたとしても、ロボット1の動きは、ワークWの位置の算出周期に合わせて高頻度(高速)に修正される。一例として、移動するワークWの動きが不規則であったとしても、不規則なワークWの動きに合わせて、ロボット1の動きは、高頻度(高速)に修正される。他の一例として、ワークWが高速に移動する場合であったとしても、高速なワークの動きに合わせて、ロボット1の動きは、高頻度(高速)に修正される。このため、ロボット1は、無駄な動きを少なくしつつ、移動するワークWに追従することができる。その結果、ロボット1は、無駄な動きを少なくしつつ、移動するワークWを掴むことができる。図5に示す例に限らず、ロボット1は、無駄な動きを少なくしつつ、ワークWなどの対象物体に対して動くことができる。更に、ワークWなどの対象物体の位置が高頻度に算出されるがゆえに、ワークWなどの対象物体が撮像ユニット2の撮像視野から外れてしまう可能性が低くなる。このため、ロボット1は、ワークWなどの対象物体を見失なうことなく、ワークWなどの対象物体に対して正確且つ高速に動き(例えば、ワークWなどの対象物体を正確且つ高速に追従し)、エンドエフェクタ13でワークWなどの対象物体に対して所望の処理を行うことができる。尚、ロボット1は、ワークWなどの対象物体が静止している場合には、ワークWなどの対象物体へ正確且つ高速に近づき、エンドエフェクタ13でワークWなどの対象物体に対して所望の処理を行うことができる。
 このように、制御装置3は、ワークWの位置を高精度に算出できるという効果を享受するために、グローバル座標系内でのワークWの位置を算出される過程で中間的に算出されるワークWの6DOFの位置及び変化量のそれぞれの精度の違いを考慮するという第1の方法と、2Dトラッキング処理及び3Dトラッキング処理の結果に基づいて2Dマッチング処理及び3Dマッチング処理の結果をそれぞれ補正するという第2の方法とを採用している。このため、第1及び第2の方法のいずれか一方のみが採用される場合と比較して、制御装置3は、ワークWの位置をより一層高精度に算出することができる。但し、制御装置3は、第1及び第2の方法のいずれか一方のみを採用してもよい。この場合であっても、第1及び第2の方法の双方が採用されない場合と比較して、制御装置3は、ワークWの位置を高精度に算出できる。
 また、上述したように、制御装置3は、2Dトラッキング処理によって算出される変化量ΔTx(2D)に誤差が含まれていることを考慮し、位置Tx(2D)が新たに算出された場合には、位置Tx’(2D)を算出するために位置Tx(2D)に加算される変化量Tx(2D)の総和をリセットしてもよい。その結果、位置Tx(2D)に加算される変化量Tx(2D)の総和がリセットされない場合と比較して、制御装置3は、位置Tx’(2D)をより高精度に算出することができる。同様の理由から、制御装置3は、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)をより高精度に算出することができる。その結果、制御装置3は、ワークWの位置をより一層高精度に算出することができる。
 また、本実施形態では、図11及び図16で説明したように、2Dマッチング周期が3Dマッチング周期と時間的に重なっていてもよいし、2Dトラッキング周期が3Dトラッキング周期と時間的に重なっていてもよい。この場合、2Dマッチング処理のために撮像装置21がワークWを撮像する時刻は、3Dマッチング処理のために撮像装置22がワークWを撮像する時刻と同じであってもよいし、2Dトラッキング処理のために撮像装置21がワークWを撮像する時刻t1及びt2は、それぞれ、3Dトラッキング処理のために撮像装置22がワークWを撮像する時刻s1及びs2と同じであってもよい。この場合、2Dマッチング処理及び2Dトラッキング処理の結果から算出される位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)と、3Dマッチング処理及び3Dトラッキング処理の結果から算出される位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)は、同じ時間のワークWの位置を示している。つまり、2Dマッチング処理及び2Dトラッキング処理の結果から一の時間におけるワークWの位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)が算出される場合には、3Dマッチング処理及び3Dトラッキング処理の結果から、同じ一の時間におけるワークWの位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)が算出される。その結果、制御装置3は、一の時間におけるワークWの位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)と一の時間におけるワークWの位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)とに基づいて、グローバル座標系での一の時間におけるワークWの位置をより一層高精度に算出することができる。
 仮に、2Dマッチング周期が3Dマッチング周期と時間的に重なっておらず且つ2Dトラッキング周期が3Dトラッキング周期と時間的に重なっていない場合には、場合によっては、制御装置3は、一の時間におけるワークWの位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)と、一の時間とは異なる他の時間におけるワークWの位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)とに基づいて、一の時間又は他の時間におけるワークWの位置を算出する可能性がある。ここで、特に撮像装置21及び22とワークWとが相対移動している場合には、一の時間におけるワークWの位置と、他の時間におけるワークWの位置とが異なる可能性がある。従って、一の時間における位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)と他の時間における位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)とに基づいて算出されるワークWの位置の精度が悪化する可能性があるという技術的問題が生ずる。しかるに、2Dマッチング周期が3Dマッチング周期と時間的に重なり、且つ、2Dトラッキング周期が3Dトラッキング周期と時間的に重なっている場合には、このような技術的問題は生じない。但し、上述したように、2Dマッチング周期が3Dマッチング周期と時間的に重なっていなくてもよいし、2Dトラッキング周期が3Dトラッキング周期と時間的に重なっていなくてもよい。
 また、ワーク画像データIMG_2Dを生成するための撮像装置21とワーク画像データIMG_3Dを生成するための撮像装置22とが別々に用意されているがゆえに、制御装置3は、撮像装置21からワーク画像データIMG_2Dを取得すると同時に、撮像装置22からワーク画像データIMG_3Dを取得することができる。従って、ワーク画像データIMG_2Dを生成するための撮像装置21とワーク画像データIMG_3Dを生成するための撮像装置22とが別々に用意されていない(例えば、ワーク画像データIMG_2D及びIMG_3Dを生成するための単一の撮像装置)が用意されている場合と比較して、ワーク画像データIMG_2D及びIMG_3Dの取得頻度が高くなる。その結果、ワークWの位置の算出頻度もまた高くなる。従って、上述したように、制御装置3は、位置が高頻度に算出されるワークWに対して所望の処理を行うようにロボット1を制御するための制御信号を適切に生成(つまり、更新)し、且つ、ロボット1に出力することができる。
 (4)変形例
 続いて、ロボットシステムSYSの変形例について説明する。尚、以下の変形例では、位置算出部312が位置を算出する対象物体がワークWである例について説明する。但し、対象物体がワークWとは異なる物体である場合においても、以下の変形例が適用されてもよい。
 (4-1)第1変形例
 初めに、ロボットシステムSYSの第1変形例について説明する。尚、以下の説明では、ロボットシステムSYSの第1変形例を、“ロボットシステムSYSa”と称することで、上述したロボットシステムSYSと区別する。第1変形例におけるロボットシステムSYSaは、上述したロボットシステムSYSと比較して、制御装置3に代えて、制御装置3aを備えているという点で異なっていてもよい。ロボットシステムSYSaのその他の特徴は、ロボットシステムSYSのその他の特徴と同一であってもよい。このため、以下では、図18を参照しながら、第1変形例における制御装置3aについて説明する。図18は、第1変形例における制御装置3aの構成を示すブロック図である。
 図18に示すように、第1変形例における制御装置3aは、上述した制御装置3と比較して、演算装置31が事前処理部314aを論理的な処理ブロックとして備えているという点で異なる。事前処理部314aは、マッチング処理及びトラッキング処理が行われる前に、事前処理を行う。制御装置3aのその他の特徴は、制御装置3のその他の特徴と同一であってもよい。
 事前処理部314aは、形状データ生成部311が生成したワーク形状データWSDに対して事前処理を行ってもよい。この場合、3Dマッチング部3122は、事前処理が行われたワーク形状データWSDを用いて、3Dマッチング処理を行ってもよい。3Dトラッキング部3124は、それぞれに事前処理が行われた二つのワーク形状データWSDを用いて、3Dトラッキング処理を行ってもよい。
 ワーク形状データWSDに対して行われる事前処理は、ワーク形状データWSDのうちの一部のデータ部分を削除するデータ削除処理を含んでいてもよい。具体的には、ワーク形状データWSDは、ワークWの形状を示すデータ部分のみならず、ワークWとは異なる物体(つまり、対象物体とは異なる物体)の形状を示すデータ部分を含んでいる可能性がある。例えば、載置装置4に載置されたワークWを撮像装置22が撮像することで生成されるワーク画像データIMG_3Dからワーク形状データWSDが生成されるがゆえに、ワーク形状データWSDは、載置装置4の形状を示すデータ部分を含んでいる可能性がある。そこで、図19に示すように、事前処理部314aは、ワーク形状データWSDから、載置装置4の形状を示すデータ部分を削除してもよい。
 ワークWが載置される載置装置4の載置面は、平面であってもよい。この場合、事前処理部314aは、ワーク形状データWSDに対して、データ削除処理の一例である平面除去処理を行ってもよい。平面除去処理の一例として、RANSAC(Random Sample Consensus)を用いた平面除去処理及び最小二乗法を用いた平面除去処理のうちの少なくとも一つがあげられる。
 このようなデータ削除処理により、ワーク形状データWSDのデータサイズが小さくなる。その結果、ワーク形状データWSDを用いた3Dマッチング処理に必要な演算量及びワーク形状データWSDを用いた3Dトラッキング処理に必要な演算量が減少する。このため、3Dマッチング部3122が3Dマッチング処理を完了するために必要な時間である3Dマッチング周期及び3Dトラッキング部3124が3Dトラッキング処理を完了するために必要な時間である3Dトラッキング周期が短縮可能となる。
 また、このようなデータ削除処理により、位置算出部312は、ワークWとは異なる物体(つまり、対象物体とは異なる物体)の形状を示すデータ部分を、ワークWの形状を示すデータ部分として誤認識する可能性が低くなる。なぜならば、上述したトラッキング処理及びマッチング処理にとってノイズとなり得る、ワークWとは異なる物体の形状を示すデータ部分が削除されるからである。このため、位置算出部312は、ワークWの形状を示すデータ部分を適切に認識することができる。例えば、ワーク形状データWSDが点群データである場合には、位置算出部312は、ワークWに関する点群を適切に認識することができる。例えば、ワーク形状データWSDが深度画像データである場合には、位置算出部312は、ワークWに関する深度情報を適切に認識することができる。その結果、データ削除処理が行われない場合と比較して、位置検出部312は、ワークWの位置を精度よく算出することができる。
 尚、事前処理部314aは、ワーク形状データWSDのうちの、ワークWとは異なる物体の形状を示すデータ部分を指定するユーザの指示に基づいて、ワーク形状データWSDから、ワークWとは異なる物体の形状を示すデータ部分を削除してもよい。具体的には、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDのうちの一部のデータ部分を、ワークWとは異なる物体の形状を示すデータ部分として指定するためにユーザが操作可能なGUI(Graphical User Interface)を表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDの一例である点群データが示す複数の点を表示し、複数の点のうちのワークWとは異なる物体の形状を示す点を指定するためにユーザが操作可能なGUIを表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、ワーク形状データWSDの一例である深度画像データが示す深度画像を表示し、深度画像のうちのワークWとは異なる物体の形状を示す画素を指定するためにユーザが操作可能なGUIを表示してもよい。
 事前処理部314aは、ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に対して事前処理を行ってもよい。この場合、2Dマッチング部3121は、事前処理が行われたワーク画像データIMG_2Dを用いて、2Dマッチング処理を行ってもよい。2Dトラッキング部3123は、それぞれに事前処理が行われた二つのワーク画像データIMG_2Dを用いて、2Dトラッキング処理を行ってもよい。形状データ生成部311は、事前処理が行われたワーク画像データIMG_3Dを用いて、ワーク形状データWSDを生成してもよい。3Dマッチング部3122は、事前処理が行われたワーク画像データIMG_3Dから生成されたワーク形状データWSDを用いて、3Dマッチング処理を行ってもよい。3Dトラッキング部3124は、それぞれに事前処理が行われた二つのワーク画像データIMG_3Dからそれぞれ生成された二つのワーク形状データWSDを用いて、3Dトラッキング処理を行ってもよい。
 ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ガンマ補正処理を含んでいてもよい。ガンマ補正処理は、ワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)のコントラストを調整することで、ワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)に写り込んでいるワークWのエッジを強調する補正処理を含んでいてもよい。
 尚、ガンマ補正処理が行われる場合には、撮像装置21及び22の少なくとも一方は、露出を自動調整可能であってもよい。具体的には、ガンマ補正処理が行われる場合には、図20に示すように、撮像ユニット2は、ワークWの明るさ(つまり、輝度)を測定可能な測光装置24aを備えていてもよい。撮像装置21及び22の少なくとも一方は、測光装置24aの測定結果に基づいて、露出を自動的に調節してもよい。或いは、撮像装置21及び22の少なくとも一方は、測光装置24aの測定結果に加えて又は代えて、実際に生成されたワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)の輝度値(例えば、複数の画素の輝度値の平均値)に基づいて、露出を自動的に調節してもよい。一例として、撮像装置21及び22の少なくとも一方は、ワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)の輝度値が所望範囲に収まるように、露出を自動的に調節してもよい。この場合、ワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)に写り込んでいるワークWのエッジを強調するように、ガンマ補正処理によってワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)のコントラストがより適切に調整可能となる。
 ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ハイダイナミックレンジ合成処理を含んでいてもよい。ハイダイナミックレンジ処理は、図21に示すように、露出が異なる複数の撮像環境下でワークWを撮像することで生成される複数のワーク画像データIMG_2D(或いは、複数のワーク画像データIMG_3D)を合成することで、白飛びや黒つぶれの少ない広いダイナミックレンジを有するワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)を生成する処理を含んでいてもよい。
 ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ノイズ除去処理を含んでいてもよい。ノイズ除去処理は、図22に示すように、ワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)に含まれているノイズを除去することで、ノイズが少ないワーク画像データIMG_2D(或いは、ワーク画像データIMG_3D)を生成する処理であってもよい。事前処理部314aは、ノイズ除去処理として、ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に既知のフィルタ処理を実行してもよい。例えば、事前処理部314aは、ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に平均化フィルタ、メディアンフィルタ、及び膨張フィルタの少なくとも一つのフィルタ処理を実行してもよい。
 尚、事前処理部314aは、ノイズ除去処理以外にも、ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に既知のフィルタ処理を実行してもよい。例えば、事前処理部314aは、ワーク画像データIMG_2D及びIMG_3Dの少なくとも一方に平滑化フィルタ、及びエッジエンハンスフィルタの少なくとも一方のフィルタ処理を実行してもよい。
 (4-2)第2変形例
 続いて、図23を参照しながら、ロボットシステムSYSの第2変形例について説明する。図23は、第2変形例におけるロボットシステムSYSの構成を示すブロック図である。尚、以下の説明では、ロボットシステムSYSの第2変形例を、“ロボットシステムSYSb”と称することで、上述したロボットシステムSYSと区別する。
 図23に示すように、第2変形例におけるロボットシステムSYSbは、上述したロボットシステムSYSと比較して、撮像ユニット2に代えて、撮像ユニット2bを備えているという点で異なっていてもよい。ロボットシステムSYSbのその他の特徴は、ロボットシステムSYSのその他の特徴と同一であってもよい。
 第2変形例における撮像ユニット2bは、上述した撮像ユニット2と比較して、照明装置24bと、フィルタ25bと、フィルタ26bとを備えているという点で異なっている。撮像ユニット2bのその他の特徴は、撮像ユニット2のその他の特徴と同一であってもよい。
 照明装置24bは、ワークWに照明光を照射可能な装置である。特に、照明装置24bは、ワークWに照明光を照射することで、ワークWを照明光で照明可能な装置である。照明装置24bは、第2の波長帯域(例えば、赤色光の波長帯域)の光成分を含む照明光でワークWを照明してもよい。一方で、投影装置23がワークWに照射する投影光は、第2の波長帯域とは異なる第1の波長帯域(例えば、青色光の波長帯域)の光成分を含む投影光をワークWに照射してもよい。尚、投影装置23は、ワークWに投影光を照射することで、ワークWに所望の投影パターンを投影する装置である。この場合、投影装置23は、ワークWを投影光で照明しているとみなしてもよい。つまり、投影装置23は、ワークWを投影光で照明する照明装置であるとみなしてもよい。尚、上述したように、投影装置23が照明装置であるとみなされる場合には、投影光は、対象物体に所望の投影パターンを投影可能な光でなくてもよい。
 フィルタ25bは、第1の波長帯域の光成分を減衰可能である。撮像装置21は、フィルタ25bを介してワークWからの光を撮像素子で受光することで、ワークWを撮像する。ここで、上述したように、投影装置23からの投影光が第1の波長帯域の光成分を含むがゆえに、フィルタ25bは、投影光を減衰する。このため、投影光が照射された(つまり、投影パターンが投影された)ワークWからの戻り光(例えば、投影光の反射光及び散乱光の少なくとも一つ)は、フィルタ25bによって減衰される。その結果、撮像装置22にワークWを撮像させるために投影装置23が投影光をワークWに照射している場合であっても、撮像装置21は、投影装置23から射出される投影光の影響を受けることなく、照明装置24bから射出される照明光で照明されたワークWを適切に撮像することができる。
 フィルタ26bは、第2の波長帯域の光成分を減衰可能である。撮像装置22は、フィルタ26bを介してワークWからの光を撮像素子で受光することで、ワークW(言い換えると、ワークWに投影された投影パターン)を撮像する。ここで、上述したように、照明光が第2の波長帯域の光成分を含むがゆえに、フィルタ26bは、照明光を減衰する。このため、照明装置24bからの照明光が照射されたワークWからの戻り光(例えば、照明光の反射光及び散乱光の少なくとも一つ)は、フィルタ26bによって減衰される。その結果、撮像装置21にワークWを撮像させるために、照明装置24bが照明光をワークWに照射している場合であっても、撮像装置22は、照明装置24bから射出される照明光の影響を受けることなく、投影装置23から射出される投影光で照明されたワークW(言い換えると、ワークWに投影された投影パターン)を適切に撮像することができる。
 このように、第2変形例では、撮像装置21は、撮像装置22によるワークW(ワークWに投影された投影パターン)の撮像に影響を受けることなく、ワークWを撮像することができる。同様に、撮像装置22は、撮像装置21によるワークWの撮像に影響を受けることなく、ワークW(ワークWに投影された投影パターン)を撮像することができる。このため、撮像装置21及び22は、同時にワークWを撮像することができる。つまり、撮像装置21がワークWを撮像する時刻と撮像装置22がワークW(ワークWに投影された投影パターン)を撮像する時刻とが同一であったとしても、撮像装置21及び22のそれぞれは、ワークWを適切に撮像することができる。
 (4-3)第3変形例
 続いて、図24を参照しながら、ロボットシステムSYSの第3変形例について説明する。図24は、第3変形例におけるロボットシステムSYSの外観を示す側面図である。尚、以下の説明では、ロボットシステムSYSの第3変形例を、“ロボットシステムSYSc”と称することで、上述したロボットシステムSYSと区別する。
 図24に示すように、第3変形例におけるロボットシステムSYScは、上述したロボットシステムSYSと比較して、ロボットアーム12と撮像装置21及び22のそれぞれとの位置関係が変わっているという点で異なっていてもよい。ロボットシステムSYScのその他の特徴は、ロボットシステムSYSのその他の特徴と同一であってもよい。
 具体的には、図24に示すように、第3変形例では、撮像装置22は、撮像装置21が取り付けられる位置よりもロボットアーム12から離れた位置に取り付けられてもよい。撮像装置21及び22は、撮像装置21からロボットアーム12までの距離よりも、撮像装置22からロボットアーム12までの距離が長くなるように、ロボットアーム12に取り付けられていてもよい。撮像装置22は、撮像装置21が取り付けられる位置よりもエンドエフェクタ13から離れた位置に取り付けられてもよい。撮像装置21及び22は、撮像装置21からエンドエフェクタ13までの距離よりも、撮像装置22からエンドエフェクタ13までの距離が長くなるように、ロボットアーム12に取り付けられていてもよい。
 撮像装置21及び22は、支持部材15cを介してロボットアーム12に取り付けられていてもよい。この場合、撮像装置21は、支持部材15cの第1部分に取り付けられてもよい。撮像装置22は、第1部分よりもロボットアーム12から遠い支持部材15cの第2部分に取り付けられてもよい。撮像装置22は、第1部分よりもエンドエフェクタ13から遠い支持部材15cの第2部分に取り付けられてもよい。
 このような第3変形例では、撮像装置21は、撮像装置22と比較して、ワークWの直上の空間又は当該空間の近傍からワークWを撮像することができる可能性が高くなる。なぜならば、ワークWに対してエンドエフェクタ13が所定の処理を行う場合には、ワークWの直上にエンドエフェクタ13が位置する可能性が高いがゆえに、エンドエフェクタ13に相対的に近い位置に配置される撮像装置21もまた、ワークWの直上の空間又は当該空間の近傍からワークWを撮像することができる可能性が高くなるからである。ワークWの直上の空間又は当該空間の近傍から撮像装置21がワークWを撮像する場合には、撮像装置21は、2D撮像座標系のZ軸(2D)がワークWの上面と交差する角度が90度に近い状態でワークWを撮像することができる可能性が高くなる。その結果、制御装置3は、ワーク画像データIMG_2Dから、上述した位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)、並びに、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)をより高精度に算出することができる。更には、撮像装置21は、上面の歪みが少ないワークWが写り込んだ画像を示すワーク画像データIMG_2Dを生成することができる。このため、上面の歪みが多いワークWが写り込んだ画像を示すワーク画像データIMG_2Dを用いる場合と比較して、ワークWの上面にマークが形成されている状況下で、制御装置3は、ワーク画像データIMG_2Dから、ワークWの上面に形成されたマークを適切に認識することができる。この場合、制御装置3は、マークを用いた処理を精度良く行うことができる。例えば、制御装置3が、マークを用いた処理として、マークの位置に基づいてワークWの位置を算出する処理を行う場合には、制御装置3は、ワークWの位置をより精度よく算出することができる。
 一方で、撮像装置22は、撮像装置21と比較して、ワークWの斜め上方の空間からワークWを撮像することができる可能性が高くなる。その結果、撮像装置22は、ワークWの上面のみならず、ワークWの側面(或いは、上面以外の任意の面)を撮像することができる可能性が高くなる。この場合、ワーク画像データIMG_3Dから生成されるワーク形状データWSDは、ワークWの上面の三次元形状のみならず、ワークWの側面(或いは、上面以外の任意の面)の三次元形状をも示す可能性が高くなる。このため、ワークWの三次元形状がより適切に反映されたワーク形状データWSDが生成可能となる。更には、ワーク形状データWSDが、ワークWの上面の三次元形状のみならず、ワークWの側面(或いは、上面以外の任意の面)の三次元形状を示す場合には、3Dマッチング部3122及び3Dトラッキング部3124は、ワークWの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)として、ワークWの辺や頂点を特定しやすくなる。その結果、制御装置3は、3Dマッチング処理及び3Dトラッキング処理のそれぞれをより適切に行うことができる。
 尚、上述の投影装置23が支持部材15c又はロボットアーム12に設けられていてもよい。また、上述の投影装置23が、支持部材15c又はロボットアーム12とは異なる場所に設けられていてもよい。尚、上述の照明装置24bが、支持部材15c又はロボットアーム12に設けられていてもよい。上述の照明装置24bが、支持部材15c又はロボットアーム12とは異なる場所に設けられていてもよい。
 (4-4)その他の変形例
 (4-4-1)ロボット1の変形例
 上述した説明では、ロボットアーム12には、掴み処理、配置処理及びはめ込み処理の少なくとも一つを行うエンドエフェクタ13(例えば、ハンドグリッパー)が取り付けられている。しかしながら、エンドエフェクタ13は、掴み処理、配置処理及びはめ込み処理の少なくとも一つを行う装置に限られず、ワークWなどの対象物体に対して他の処理を行う装置であってもよい。
 一例として、ロボットアーム12には、エンドエフェクタ13の一例としての、ワークWを加工するための加工装置が取り付けられていてもよい。加工装置は、ワークWに新たな造形物を付加する付加加工、ワークWの一部を除去する除去加工、二つのワークWを接合する溶接加工及びワークWを切断する切断加工のうちの少なくとも一つを行ってもよい。加工装置は、工具を用いてワークWを加工してもよい。この場合、工具を含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)をワークWに照射することでワークWを加工してもよい。この場合、エネルギービームをワークWに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
 エンドエフェクタ13の一例としての加工装置は、ワークWに部品をはんだ付けするはんだ付け加工を行ってもよい。加工装置は、はんだごてを用いてワークWに部品をはんだ付けしてもよい。この場合、はんだごてを含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)をはんだに照射することでワークWに部品をはんだ付けしてもよい。この場合、エネルギービームをワークWに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
 他の一例として、ロボットアーム12には、エンドエフェクタ13の一例としての、ワークWを計測するための計測装置が取り付けられていてもよい。計測装置は、ワークWの特性を計測可能であってもよい。ワークWの特性の一例として、ワークWの形状、ワークWのサイズ及びワークWの温度の少なくとも一つがあげられる。計測装置は、タッチプローブを用いてワークWを計測してもよい。この場合、タッチプローブを含む計測装置が、ロボットアーム12に取り付けられてもよい。或いは、計測装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)をワークWに照射することでワークWを計測してもよい。この場合、エネルギービームをワークWに照射する照射装置を含む計測装置が、ロボットアーム12に取り付けられていてもよい。
 ロボットアーム12にエンドエフェクタ13の一例としての加工装置及び計測装置の少なくとも一方が取り付けられている場合には、制御装置3は、加工装置及び計測装置の少なくとも一方の動作を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置が備える工具の回転を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置及び計測装置の少なくとも一方が備える照射装置によるエネルギービームのオン・オフを制御するための制御信号を生成してもよい。
 (4-4-2)撮像ユニット2の変形例
 上述した説明では、ワーク画像データIMG_3Dを生成するために、撮像ユニット2は、撮像装置22と投影装置23とを備えている。しかしながら、撮像ユニット2は、ワーク画像データIMG_3Dを生成するために、投影装置23を備えていなくてもよい。なぜならば、上述したように撮像装置22がステレオカメラであるがゆえに、ステレオカメラの二つの撮像素子がそれぞれ生成する二つのワーク画像データIMG_3Dから、ワークWなどの対象物体の形状を示すワーク形状データWSDが生成可能であるからである。この場合、形状データ生成部311は、ワーク画像データIMG_3Dに含まれる二つの画像データのそれぞれが示す画像同士の各部(例えば各画素)について周知の処理で対応付けを行うことで視差を算出し、算出した視差を用いた三角測量の原理に基づく周知の方法でワーク形状データWSDを生成してもよい。
 撮像装置22は、ステレオカメラでなくてもよい。例えば、撮像装置22は、単一の撮像素子を用いてワークWなどの対象物体を撮像する単眼カメラであってもよい。この場合であっても、ワーク画像データIMG_3Dが示す画像には、投影パターンが投影されているワークWが写り込んでいる。この場合、ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンの形状には、投影パターンが投影されているワークWの三次元形状が反映されている。このため、撮像装置22がステレオカメラでない場合であっても、形状データ生成部311は、ワーク画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、周知の処理でワーク形状データWSDを生成することができる。
 撮像ユニット2は、撮像装置21及び22のいずれか一方(つまり、単一の撮像装置)と、投影装置23とを備えていてもよい。この場合、投影装置23が所望の投影パターンをワークWに投影していない期間中に単一の撮像装置がワークWを撮像することで生成する画像データが、ワーク画像データIMG_2Dとして用いられてもよい。一方で、投影装置23が所望の投影パターンをワークWに投影している期間中に単一の撮像装置がワークWを撮像することで生成する画像データが、ワーク画像データIMG_3Dとして用いられてもよい。この場合においても、位置算出部312は、図4のステップS3において、ワーク画像データIMG_2Dと、ワーク画像データIMG_3Dから生成されるワーク形状データWSDとに基づいて、ワークWの位置を算出する。具体的には、2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系におけるワークWの位置として、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系におけるワークWの位置として、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)のうちの少なくとも一つを算出してもよい。2Dトラッキング部3123は、2Dトラッキング処理を行うことで、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうちの少なくとも一つを算出してもよい。3Dトラッキング部3124は、3Dトラッキング処理を行うことで、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。但し、撮像ユニット2が撮像装置21及び22のいずれか一方(つまり、単一の撮像装置)を備える場合には、2D撮像座標系と3D撮像座標系とは同一の座標系となる。このため、2Dマッチング部3121及び3Dマッチング部3122は、同一の座標系におけるワークWの6DOFの位置を算出していると言える。同様に、2Dトラッキング部3123及び3Dトラッキング部3124は、同一の座標系におけるワークWの6DOFの位置の変化量を算出していると言える。その後、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、2Dトラッキング処理の結果及び3Dトラッキング処理を用いることで、グローバル座標系におけるワークWの位置を算出してもよい。尚、2D撮像座標系と3D撮像座標系とが同一の座標系となる場合には、座標変換部3125は、上述した変換行列M32又はM23を用いた座標変換を行わなくてもよい。なぜならば、2Dマッチング処理の結果及び3Dマッチング処理の結果は、共通座標系として用いてもよい同一の座標系におけるワークWの6DOFの位置を既に示しており、2Dトラッキング処理の結果及び3Dトラッキング処理の結果は、共通座標系として用いてもよい同一の座標系におけるワークWの6DOFの位置の変化量を既に示しているとみなしてもよいからである。その後、信号生成部313は、算出したワークWの位置に基づいて、ロボット制御信号を生成してもよい。
 撮像ユニット2は、ステレオカメラである撮像装置22を備える一方で、撮像装置21を備えていなくてもよい。この場合、撮像装置22が備える二つの単眼カメラのいずれか一方がワークWを撮像することで生成する画像データが、ワーク画像データIMG_2Dとして用いられてもよい。一方で、撮像装置22が備える二つの単眼カメラの双方がワークWを撮像することでそれぞれ生成する二つの画像を示す画像データが、ワーク画像データIMG_3Dとして用いられてもよい。この場合においても、位置算出部312は、図4のステップS3において、ワーク画像データIMG_2Dと、ワーク画像データIMG_3Dから生成されるワーク形状データWSDとに基づいて、ワークWの位置を算出する。具体的には、2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系におけるワークWの位置として、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系におけるワークWの位置として、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)のうちの少なくとも一つを算出してもよい。2Dトラッキング部3123は、2Dトラッキング処理を行うことで、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうちの少なくとも一つを算出してもよい。3Dトラッキング部3124は、3Dトラッキング処理を行うことで、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。尚、ステレオカメラである撮像装置22がワーク画像データIMG_2D及びIMG_3Dを生成する場合には、2D撮像座標系と3D撮像座標系とは同一の座標系となってもよいし、2D撮像座標系と3D撮像座標系とは互いに異なる座標系となってもよい。例えば、二つの単眼カメラのうちの一方の単眼カメラの光軸に沿って延びる軸がZ軸となる座標系が、2D撮像座標系及び3D撮像座標系の夫々として用いられてもよい。この場合、2D撮像座標系と3D撮像座標系とは同一の座標系となってもよい。或いは、二つの単眼カメラのうちの一方の単眼カメラの光軸に沿って延びる軸がZ軸となる座標系が、2D撮像座標系として用いられ、二つの単眼カメラのうちの他方の単眼カメラの光軸に沿って延びる軸がZ軸となる座標系が、3D撮像座標系の夫々として用いられてもよい。この場合、2D撮像座標系と3D撮像座標系とは互いに異なる座標系となってもよい。2D撮像座標系と3D撮像座標系とが同一の座標系となる場合には、2Dマッチング部3121及び3Dマッチング部3122は、同一の座標系におけるワークWの6DOFの位置を算出していると言える。同様に、2Dトラッキング部3123及び3Dトラッキング部3124は、同一の座標系におけるワークWの6DOFの位置の変化量を算出していると言える。その後、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、2Dトラッキング処理の結果及び3Dトラッキング処理を用いることで、グローバル座標系におけるワークWの位置を算出してもよい。尚、2D撮像座標系と3D撮像座標系とが同一の座標系となる場合には、座標変換部3125は、上述した変換行列M32又はM23を用いた座標変換を行わなくてもよい。なぜならば、2Dマッチング処理の結果及び3Dマッチング処理の結果は、共通座標系として用いてもよい同一の座標系におけるワークWの6DOFの位置を既に示しており、2Dトラッキング処理の結果及び3Dトラッキング処理の結果は、共通座標系として用いてもよい同一の座標系におけるワークWの6DOFの位置の変化量を既に示しているとみなしてもよいからである。その後、信号生成部313は、算出したワークWの位置に基づいて、ロボット制御信号を生成してもよい。
 (4-4-3)制御装置3の変形例
 上述した説明では、制御装置3(特に、形状データ生成部311)が、ワーク画像データIMG_3Dからワーク形状データWSDを生成している。しかしながら、制御装置3とは異なる装置が、ワーク画像データIMG_3Dからワーク形状データWSDを生成してもよい。例えば、ワーク画像データIMG_3Dを生成する撮像ユニット2が、ワーク画像データIMG_3Dからワーク形状データWSDを生成してもよい。この場合、制御装置3は、制御装置3とは異なる装置からワーク形状データWSDを取得してもよい。制御装置3は、制御装置3とは異なる装置から取得したワーク形状データWSDを用いて、上述した3Dマッチング処理及び3Dトラッキング処理の少なくとも一つを行ってもよい。例えば、撮像ユニット2が、ワーク画像データIMG_3Dからワーク形状データWSDを生成する場合、制御装置3は、撮像ユニット2からワーク形状データWSDを取得し、上述した3Dマッチング処理及び3Dトラッキング処理の少なくとも一つを行ってもよい。
 上述した説明では、2D撮像座標系が共通座標系として用いられる場合には、座標変換部3215は、変換行列M32を用いて、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)を、位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)に変換している。しかしながら、座標変換部3215は、以下の方法で、位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)を算出してもよい。具体的には、座標変換部3215は、位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)を算出することに加えて、変化量ΔTx(3D)を位置Tx(3D)に加算することで位置Tx’(3D)を算出し、変化量ΔTy(3D)を位置Ty(3D)に加算することで位置Ty’(3D)を算出し、変化量ΔRz(3D)を位置Rz(3D)に加算することで位置Rz’(3D)を算出してもよい。尚、変化量ΔTx(3D)を位置Tx(3D)に加算することで位置Tx’(3D)を算出する方法、変化量ΔTy(3D)を位置Ty(3D)に加算することで位置Ty’(3D)を算出する方法、及び、変化量ΔRz(3D)を位置Rz(3D)に加算することで位置Rz’(3D)を算出する方法は、既に説明済みの変化量ΔTz(3D)を位置Tz(3D)に加算することで位置Tz’(3D)を算出する方法と同一であってもよいため、その詳細な説明を省略する。つまり、座標変換部3215は、3Dマッチング処理の結果及び3Dトラッキング処理の結果に基づいて、3D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、剛体変換行列を算出するための周知の方法を用いて、3D撮像座標系における6DOFの位置から、剛体変換行列RTM30を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM30と変換行列M32との積を算出することで、2D撮像座標系における6DOFの位置を表す変換行列TM30を算出してもよい。その後、座標変換部3215は、周知の方法を用いて、算出した変換行列TM30から、2D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、算出した2D撮像座標系における6DOFの位置から、2D撮像座標系のZ軸方向(2D)における位置、2D撮像座標系のX軸(2D)周りの回転方向における位置及び2D撮像座標系のY軸(2D)周りの回転方向における位置を、それぞれ、位置Tz’(2D)、位置Rx’(2D)及び位置Ry’(2D)として抽出してもよい。
 剛体変換行列を用いて位置Tz’(2D)が算出される場合には、算出される位置Tz’(2D)は、3Dマッチング処理の結果及び3Dトラッキング処理の結果に基づいて算出される3D撮像座標系における6DOFの位置の各成分が算出に寄与した位置となる。つまり、算出される位置Tz’(2D)は、位置Tz’(3D)の成分のみならず、位置Tx’(3D)、位置Ty’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(3D)のそれぞれの成分もまた算出に寄与した位置となる。この場合、2D撮像座標系が3D撮像座標系に近づくほど、位置Tz’(3D)が位置Tz’(2D)の算出に寄与する度合いが高くなる。位置Tz’(3D)が位置Tz’(2D)の算出に寄与する度合いが高くなるほど、算出される位置Tz’(2D)の精度が高くなる。剛体変換行列を用いて位置Rx’(2D)及び位置Ry’(2D)が算出される場合も同様の理由から、2D撮像座標系が3D撮像座標系に近づくほど、算出される位置Rx’(2D)及び位置Ry’(2D)の精度が高くなる。このため、撮像装置21及び22は、2D撮像座標系が3D撮像座標系に可能な限り近づくように配置されていてもよい。例えば、撮像装置21及び22は、2D撮像座標系のX軸(2D)が3D撮像座標系のX軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のY軸(2D)が3D撮像座標系のY軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のZ軸(2D)が3D撮像座標系のZ軸(3D)に可能な限り近づくように配置されていてもよい。
 一方で、上述した説明では、3D撮像座標系が共通座標系として用いられる場合には、座標変換部3215は、変換行列M23を用いて、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)を、位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)に変換している。しかしながら、座標変換部3215は、以下の方法で、位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)を算出してもよい。具体的には、座標変換部3215は、位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)を算出することに加えて、変化量ΔTz(2D)を位置Tz(2D)に加算することで位置Tz’(2D)を算出し、変化量ΔRx(2D)を位置Rx(2D)に加算することで位置Rx’(2D)を算出し、変化量ΔRy(2D)を位置Ry(2D)に加算することで位置Ry’(2D)を算出してもよい。尚、変化量ΔTz(2D)を位置Tz(2D)に加算することで位置Tz’(2D)を算出する方法、変化量ΔRx(2D)を位置Rx(2D)に加算することで位置Rx’(2D)を算出する方法、及び、変化量ΔRy(2D)を位置Ry(2D)に加算することで位置Ry’(2D)を算出する方法は、既に説明済みの変化量ΔTx(2D)を位置Tx(2D)に加算することで位置Tx’(2D)を算出する方法と同一であってもよいため、その詳細な説明を省略する。つまり、座標変換部3215は、2Dマッチング処理の結果及び2Dトラッキング処理の結果に基づいて、2D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、剛体変換行列を算出するための周知の方法を用いて、2D撮像座標系における6DOFの位置から、剛体変換行列RTM20を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM20と変換行列M21との積を算出することで、3D撮像座標系における6DOFの位置を表す変換行列TM20を算出してもよい。その後、座標変換部3215は、算出した変換行列TM20から、3D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、周知の方法を用いて、算出した3D撮像座標系における6DOFの位置から、3D撮像座標系のX軸方向(3D)における位置、3D撮像座標系のY軸方向(3D)における位置及び3D撮像座標系のZ軸(3D)周りの回転方向における位置を、それぞれ、位置Tx’(3D)、位置Ty’(3D)及び位置Rz’(3D)として抽出してもよい。
 剛体変換行列を用いて位置Tx’(3D)が算出される場合には、算出される位置Tx’(3D)は、2Dマッチング処理の結果及び2Dトラッキング処理の結果に基づいて算出される2D撮像座標系における6DOFの位置の各成分が算出に寄与した位置となる。つまり、算出される位置Tx’(3D)は、位置Tx’(2D)の成分のみならず、位置Ty’(2D)、位置Tz’(2D)、位置Rx’(2D)、位置Ry’(2D)及び位置Rz’(2D)のそれぞれの成分もまた算出に寄与した位置となる。この場合、2D撮像座標系が3D撮像座標系に近づくほど、位置Tx’(2D)が位置Tx’(3D)の算出に寄与する度合いが高くなる。位置Tx’(2D)が位置Tx’(3D)の算出に寄与する度合いが高くなるほど、算出される位置Tx’(3D)の精度が高くなる。剛体変換行列を用いて位置Ty’(3D)及び位置Rz’(3D)が算出される場合も同様の理由から、2D撮像座標系が3D撮像座標系に近づくほど、算出される位置Ty’(3D)及び位置Rz’(3D)の精度が高くなる。このため、撮像装置21及び22は、2D撮像座標系が3D撮像座標系に可能な限り近づくように配置されていてもよい。例えば、撮像装置21及び22は、2D撮像座標系のX軸(2D)が3D撮像座標系のX軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のY軸(2D)が3D撮像座標系のY軸(3D)に可能な限り近づくように配置されていてもよい。撮像装置21及び22は、2D撮像座標系のZ軸(2D)が3D撮像座標系のZ軸(3D)に可能な限り近づくように配置されていてもよい。
 尚、座標変換部3125は、位置Tx(2D)、位置Ty(2D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(2D)を共通座標系内の位置に変換する場合に、上述した剛体変換行列を用いてもよい。座標変換部3125は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(2D)を共通座標系内の変化量に変換する場合に、上述した剛体変換行列を用いてもよい。
 一例として、上述した説明では、2D撮像座標系が共通座標系として用いられる場合には、座標変換部3215は、変換行列M32を用いて、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を、共通座標系である2D撮像座標系内での位置Tz(2D_conv)、位置Rx(2D_conv)及び位置Ry(2D_conv)に変換している。同様に、座標変換部3125は、変換行列M32を用いて、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)を、共通座標系である2D撮像座標系内での変化量ΔTz(2D_conv)、変化量ΔRx(2D_conv)及び変化量ΔRy(2D_conv)に変換している。一方で、剛体変換行列を用いる場合には、座標変換部3215は、剛体変換行列を算出するための周知の方法を用いて、3Dマッチング処理によって算出される3D撮像座標系における6DOFの位置(つまり、位置Tz(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D))から、剛体変換行列RTM31を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM31と変換行列M32との積を算出することで、2D撮像座標系における6DOFの位置を表す変換行列TM31を算出してもよい。その後、座標変換部3215は、周知の方法を用いて、算出した変換行列TM31から、2D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、算出した2D撮像座標系における6DOFの位置から、2D撮像座標系のZ軸方向(2D)における位置、2D撮像座標系のX軸(2D)周りの回転方向における位置及び2D撮像座標系のY軸(2D)周りの回転方向における位置を、それぞれ、位置Tz(2D_conv)、位置Rx(2D_conv)及び位置Ry(2D_conv)として抽出してもよい。同様に、座標変換部3215は、剛体変換行列を算出するための周知の技術を用いて、3Dトラッキング処理によって算出される3D撮像座標系における6DOFの位置の変化量(つまり、変化量ΔTz(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D))から、剛体変換行列RTM32を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM32と変換行列M32との積を算出することで、変換行列TM32を算出してもよい。その後、座標変換部3215は、算出した変換行列TM32から、2D撮像座標系における6DOFの位置の変化量を算出してもよい。その後、座標変換部3215は、算出した2D撮像座標系における6DOFの位置の変化量から、2D撮像座標系のZ軸方向(2D)における位置の変化量、2D撮像座標系のX軸(2D)周りの回転方向における位置の変化量及び2D撮像座標系のY軸(2D)周りの回転方向における位置の変化量を、それぞれ、変化量ΔTz(2D_conv)、変化量ΔRx(2D_conv)及び変化量ΔRy(2D_conv)として抽出してもよい。尚、この場合においても、既に説明済みの理由から、2D撮像座標系が3D撮像座標系に近づくほど、算出される位置Tz(2D_conv)、位置Rx(2D_conv)及び位置Ry(2D_conv)、並びに、変化量ΔTz(2D_conv)、変化量ΔRx(2D_conv)及び変化量ΔRy(2D_conv)の精度が高くなる。このため、撮像装置21及び22は、2D撮像座標系が3D撮像座標系に可能な限り近づくように配置されていてもよい。
 他の一例として、上述した説明では、3D撮像座標系が共通座標系として用いられる場合には、座標変換部3215は、変換行列M23を用いて、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を、共通座標系である3D撮像座標系内での位置Tx(3D_conv)、位置Ty(3D_conv)及び位置Rz(3D_conv)に変換している。同様に、座標変換部3125は、変換行列M23を用いて、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)を、共通座標系である3D撮像座標系内での変化量ΔTx(3D_conv)、変化量ΔTy(3D_conv)及び変化量ΔRz(3D_conv)に変換している。一方で、剛体変換行列を用いる場合には、座標変換部3215は、剛体変換行列を算出するための周知の方法を用いて、2Dマッチング処理によって算出される2D撮像座標系における6DOFの位置(つまり、位置Tz(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D))から、剛体変換行列RTM21を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM21と変換行列M23との積を算出することで、3D撮像座標系における6DOFの位置を表す変換行列TM21を算出してもよい。その後、座標変換部3215は、周知の方法を用いて、算出した変換行列TM21から、3D撮像座標系における6DOFの位置を算出してもよい。その後、座標変換部3215は、算出した3D撮像座標系における6DOFの位置から、3D撮像座標系のX軸方向(3D)における位置、3D撮像座標系のY軸方向(3D)における位置及び3D撮像座標系のZ軸(3D)周りの回転方向における位置を、それぞれ、位置Tx(3D_conv)、位置Ty(3D_conv)及び位置Rz(3D_conv)として抽出してもよい。同様に、座標変換部3215は、剛体変換行列を算出するための周知の技術を用いて、2Dトラッキング処理によって算出される2D撮像座標系における6DOFの位置の変化量(つまり、変化量ΔTz(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D))から、剛体変換行列RTM22を算出してもよい。その後、座標変換部3215は、剛体変換行列RTM22と変換行列M23との積を算出することで、変換行列TM22を算出してもよい。その後、座標変換部3215は、算出した変換行列TM22から、3D撮像座標系における6DOFの位置の変化量を算出してもよい。その後、座標変換部3215は、算出した3D撮像座標系における6DOFの位置の変化量から、3D撮像座標系のX軸方向(3D)における位置の変化量、3D撮像座標系のY軸方向(3D)における位置の変化量及び3D撮像座標系のZ軸(3D)周りの回転方向における位置の変化量を、それぞれ、変化量ΔTx(3D_conv)、変化量ΔTy(3D_conv)及び変化量ΔRz(3D_conv)として抽出してもよい。尚、この場合においても、既に説明済みの理由から、2D撮像座標系が3D撮像座標系に近づくほど、算出される位置Tx(3D_conv)、位置Ty(3D_conv)及び位置Rz(3D_conv)、並びに、変化量ΔTx(3D_conv)、変化量ΔTy(3D_conv)及び変化量ΔRz(3D_conv)の精度が高くなる。このため、撮像装置21及び22は、2D撮像座標系が3D撮像座標系に可能な限り近づくように配置されていてもよい。
 上述した説明では、制御装置3は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)に基づいて、グローバル座標系内でのワークWの位置を算出している。しかしながら、制御装置3は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(3D)、位置Rx’(3D)、位置Ry’(3D)及び位置Rz’(2D)のうちの少なくとも一つを用いることなく、グローバル座標系内でのワークWの位置を算出してもよい。例えば、制御装置3は、位置Tx(3D)と変化量ΔTx(3D)とに基づいて、位置Tx’(3D)を算出し、算出した位置Tx’(3D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。制御装置3は、位置Ty(3D)と変化量ΔTy(3D)とに基づいて位置Ty’(3D)を算出し、算出した位置Ty’(3D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。制御装置3は、位置Tz(2D)と変化量ΔTz(2D)とに基づいて位置Tz’(2D)を算出し、算出した位置Tz’(2D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。制御装置3は、位置Rx(2D)と変化量ΔRx(2D)とに基づいて位置Rx’(2D)を算出し、算出した位置Rx’(2D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。制御装置3は、位置Ry(2D)と変化量ΔRy(2D)とに基づいて位置Ry’(2D)を算出し、算出した位置Ry’(2D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。制御装置3は、位置Rz(3D)と変化量ΔRz(3D)とに基づいて位置Rz’(3D)を算出し、算出した位置Rz’(3D)に基づいて、グローバル座標系内でのワークWの位置を算出してもよい。
 上述した説明では、制御装置3は、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)、並びに、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)に基づいて、グローバル座標系内でのワークWの位置を算出している。しかしながら、制御装置3は、変化量ΔTx(2D)、変化量ΔTy(2D)及び変化量ΔRz(2D)、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)、位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)、並びに、位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)のうちの少なくとも一つを用いることなく、グローバル座標系内でのワークWの位置を算出してもよい。例えば、制御装置3は、2Dマッチング処理部3121が算出した6DOFの位置、3Dマッチング処理部3122が算出した6DOFの位置、2Dトラッキング処理部3123が算出した6DOFの位置の変化量、及び、3Dトラッキング処理部3124が算出した6DOFの位置の変化量のうちの少なくとも一つに基づいて、グローバル座標系内でのワークWの位置を算出してもよい。
 上述した説明では、制御装置3は、2Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正し、且つ、3Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正することで、グローバル座標系におけるワークWの位置を算出している。しかしながら、制御装置3は、2Dトラッキング処理及び3Dトラッキング処理の結果を用いることなく、2Dマッチング処理及び3Dマッチング処理の結果に基づいて、グローバル座標系におけるワークWの位置を算出してもよい。例えば、座標変換部3125は、2Dマッチング処理によって算出される位置Tx(2D)、位置Ty(2D)及び位置Rz(2D)を位置Tx’(2D)、位置Ty’(2D)及び位置Rz’(2D)として用い、且つ、3Dマッチング処理によって算出される位置Tz(3D)、位置Rx(3D)及び位置Ry(3D)を位置Tz’(3D)、位置Rx’(3D)及び位置Ry’(3D)として用いてもよい。この場合であっても、制御装置3は、ワークWの位置を高精度に算出できるという効果を享受するために、グローバル座標系内でのワークWの位置を算出される過程で中間的に算出されるワークWの6DOFの位置の精度の違いを考慮していることに変わりはない。このため、中間的に算出されるワークWの6DOFの位置の精度の違いが考慮されない場合と比較して、制御装置3は、ワークWの位置を相応に高精度に算出することができる。したがって、ロボット1は、ワークW(つまり、対象物体)を見失なうことなく、ワークWに対して正確且つ高速に動き(例えば、ワークWを正確且つ高速に追従(近づき)し)、エンドエフェクタ13でワークWに対して所望の処理を行うことができる。尚、ロボット1は、ワークWが静止している場合には、正確且つ高速にワークWに近づき、エンドエフェクタ13でワークWに対して所望の処理を行うことができる。尚、この場合には、制御装置3は、2Dマッチング周期又は3Dマッチング周期に応じた周期で、グローバル座標系内でのワークWの位置を算出(つまり、更新)してもよい。その結果、制御装置3は、2Dマッチング周期又は3Dマッチング周期に応じた周期で、制御信号をロボット1に出力してもよい。
 上述のように、2Dマッチング部3121は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)を算出してもよい。3Dマッチング部3122は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)を利用して、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)を算出してもよい。例えば、3Dマッチング部3122は、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、位置Rx(2D)、位置Ry(2D)及び位置Rz(2D)を利用して、ワーク形状データWSDのうちの一部のデータ部分を、3Dマッチング処理を行う3Dマッチング対象データとして選択し、選択した3Dマッチング対象データを用いた3Dマッチング処理を行うことで、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、位置Rx(3D)、位置Ry(3D)及び位置Rz(3D)を算出してもよい。
 上述のように、2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)を算出してもよい。この場合、3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を算出しなくてもよい。或いは、3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)の少なくとも一つを算出したとしても、その算出したワークWの位置の変化量を座標変換部3125に出力しなくてもよい。3Dトラッキング部3124が、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を算出しない場合、位置算出部312は、3Dトラッキング部3124を備えていなくてもよい。この場合、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果を用いる一方で、3Dトラッキング処理の結果を用いることなく、グローバル座標系におけるワークWの位置を算出してもよい。具体的には、座標変換部3125は、2Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正し、且つ、2Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正してもよい。例えば、座標変換部3125は、変化量ΔTx(2D)に基づいて位置Tx(2D)を補正することで位置Tx’(2D)を算出してもよい。座標変換部3125は、変化量ΔTy(2D)に基づいて位置Ty(2D)を補正することでTy’(2D)を算出してもよい。座標変換部3125は、2D撮像座標系における変化量ΔTz(2D)を、3D撮像座標系における変化量ΔTz(3D_conv)に変換し、変換した変化量ΔTz(3D_conv)に基づいて位置Tz(3D)を補正することで位置Tz’(3D)を算出してもよい。座標変換部3125は、2D撮像座標系における変化量ΔRx(2D)を、3D撮像座標系における変化量ΔRx(3D_conv)に変換し、変換した変化量ΔRx(3D_conv)に基づいて位置Rx(3D)を補正することで位置Rx’(3D)を算出してもよい。座標変換部3125は、2D撮像座標系における変化量ΔRy(2D)を、3D撮像座標系における変化量ΔRy(3D_conv)に変換し、変換した変化量ΔRy(3D_conv)に基づいて位置Ry(3D)を補正することで位置Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)に基づいて位置Rz(2D)を補正することで位置Rz’(2D)を算出してもよい。その後の処理は、上述した処理と同一であってもよい。
 座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果に加えて、ワーク形状データWSDに基づいて、グローバル座標系におけるワークWの位置を算出してもよい。特に、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果に加えて、互いに異なる時刻s1及びs2のうちの後の時刻s2に撮像装置22がワークWを撮像することで生成されるワーク画像データIMG_3D#s2から生成されるワーク形状データWSDに基づいて、グローバル座標系におけるワークWの位置を算出してもよい。グローバル座標系におけるワークWの位置に基づいて信号生成部313がロボット制御信号を生成するがゆえに、この場合には、信号生成部313は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果に加えて、ワーク形状データWSDに基づいて、ロボット制御信号を生成しているとみなしてもよい。
 上述した2Dトラッキング部3123は、互いに異なる時刻t1及びt2に撮像装置21がワークWを撮像することで生成される二つのワーク画像データIMG_2D#t1及びIMG_2D#t2と、ワーク形状データWSDとに基づいて、時刻t1及びt2の間における2D撮像座標系内でのワークWの位置の変化量を算出してもよい。例えば、2Dトラッキング部3123は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて、上述した変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうちの少なくとも一つを算出してもよい。特に、2Dトラッキング部3123は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2と、互いに異なる時刻s1及びs2のうちの後の時刻s2に撮像装置22がワークWを撮像することで生成されるワーク画像データIMG_3D#s2から生成されるワーク形状データWSDとに基づいて、ワークWの位置の変化量を算出してもよい。この場合、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果(つまり、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて算出される変化量)に基づいて、グローバル座標系におけるワークWの位置を算出してもよい。グローバル座標系におけるワークWの位置に基づいて信号生成部313がロボット制御信号を生成するがゆえに、この場合には、信号生成部313は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び2Dトラッキング処理の結果(つまり、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて算出される変化量)に基づいて、ロボット制御信号を生成しているとみなしてもよい。
 上述のように3Dトラッキング部3124は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を算出してもよい。この場合、2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)を算出しなくてもよい。又は、2Dトラッキング部3123は、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)の少なくとも一つを算出したとしても、その算出したワークWの位置の変化量を座標変換部3125に出力しなくてもよい。2Dトラッキング部3123が、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)を算出しない場合、位置算出部312は、2Dトラッキング部3123を備えていなくてもよい。この場合、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び3Dトラッキング処理の結果を用いる一方で、2Dトラッキング処理の結果を用いることなく、グローバル座標系におけるワークWの位置を算出してもよい。具体的には、座標変換部3125は、3Dトラッキング処理の結果に基づいて2Dマッチング処理の結果を補正し、且つ、3Dトラッキング処理の結果に基づいて3Dマッチング処理の結果を補正する。例えば、座標変換部3125は、3D撮像座標系における変化量ΔTx(3D)を、2D撮像座標系における変化量ΔTx(2D_conv)に変換し、変換した変化量ΔTx(2D_conv)に基づいて位置Tx(2D)を補正することで位置Tx’(2D)を算出してもよい。座標変換部3125は、3D撮像座標系における変化量ΔTy(3D)を、2D撮像座標系における変化量ΔTy(2D_conv)に変換し、変換した変化量ΔTy(2D_conv)に基づいて位置Ty(2D)を補正することでTy’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)に基づいて位置Tz(3D)を補正することで位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)に基づいて位置Rx(3D)を補正することで位置Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)に基づいて位置Ry(3D)を補正することで位置Ry’(3D)を算出してもよい。座標変換部3125は、3D撮像座標系における変化量ΔRz(3D)を、2D撮像座標系における変化量ΔRz(2D_conv)に変換し、変換した変化量ΔRz(2D_conv)に基づいて位置Rz(2D)を補正することで位置Rz’(2D)を算出してもよい。その後の処理は、上述した処理と同一であってもよい。なお、座標変換部3125は、上述と同様に、剛体変換行列を用いて、変化量ΔTx(2D_conv)、変化量ΔTy(2D_conv)、及び変化量ΔRz(2D_conv)を算出してもよい。
 上述した3Dトラッキング部3124は、互いに異なる時刻t1及びt2に撮像装置21がワークWを撮像することで生成される二つのワーク画像データIMG_2D#t1及びIMG_2D#t2と、ワーク形状データWSDとに基づいて、時刻t1及びt2の間における3D撮像座標系内でのワークWの位置の変化量を算出してもよい。例えば、3Dトラッキング部3124は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて、上述した変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。特に、3Dトラッキング部3124は、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2と、互いに異なる時刻s1及びs2のうちの後の時刻s2に撮像装置22がワークWを撮像することで生成されるワーク画像データIMG_3D#s2から生成されるワーク形状データWSDとに基づいて、ワークWの位置の変化量を算出してもよい。この場合、座標変換部3125は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び3Dトラッキング処理の結果(つまり、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて算出される変化量)に基づいて、グローバル座標系におけるワークWの位置を算出してもよい。グローバル座標系におけるワークWの位置に基づいて信号生成部313がロボット制御信号を生成するがゆえに、この場合には、信号生成部313は、2Dマッチング処理の結果、3Dマッチング処理の結果、及び3Dトラッキング処理の結果(つまり、二つのワーク画像データIMG_2D#t1及びIMG_2D#t2とワーク形状データWSDとに基づいて算出される変化量)に基づいて、ロボット制御信号を生成しているとみなしてもよい。
 制御装置3は、ロボット制御装置14を備えていてもよい。制御装置3は、ロボット制御装置14として機能してもよい。制御装置3の演算装置31内に、ロボット制御装置14として機能可能な論理的な機能ブロックが実現されてもよい。制御装置3は、制御装置3が生成したロボット制御信号に基づいて、ロボット1の動作を制御(例えば、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動を制御)してもよい。この場合、ロボット1は、ロボット制御装置14を備えていなくてもよい。
 上述した説明では、制御装置3の形状データ生成部311が、一つのワーク画像データIMG_3D(例えば、撮像装置22がステレオカメラの場合は二つの画像データを含む一つのワーク画像データIMG_3D)からワーク形状データWSDを生成している。しかしながら、形状データ生成部311は、複数のワーク画像データIMG_3Dからワーク形状データWSDを生成してもよい。例えば、形状データ生成部311は、ワークWを異なる方向から撮像した複数のワーク画像データIMG_3Dからワーク形状データWSDを生成してもよい。ワークWを異なる方向から撮像した複数のワーク画像データIMG_3Dを用いることによって、オクルージョンなどによりワーク形状データWSDの一部が欠落することを軽減できる。信号生成部313は、位置算出部312による上述のマッチング処理及びトラッキング処理の少なくとも一方の処理で算出されたワークWの位置に基づいて、そのワークWの位置を起点にして、ワークWを異なる方向から撮像可能なように撮像ユニット2(つまり、ロボットアーム11)を移動させてもよい。つまり、信号生成部313は、ワークWの位置を起点にして、ワークWを異なる方向から撮像可能なようにロボットアーム11を動作させるためのロボット制御信号を生成し、ロボット制御装置14に出力してもよい。撮像装置22は、ワークWの位置を起点とした撮像ユニット2の移動に伴って複数回、撮像を行うことによって、ワークWを異なる方向から撮像した複数のワーク画像データIMG_3Dを生成してもよい。形状データ生成部311は、複数のワーク画像データIMG_3Dそれぞれについて上述の処理で形状データを生成してもよい。尚、この形状データは、ワーク形状データWSDともいえる。形状データ生成部311は、生成した複数の形状データを既存の処理によって合成することによってワーク形状データWSDを生成してもよい。例えば、生成された複数の形状データが複数の点群データの場合、形状データ生成部311は、ICP(Iterative Closest Point)による処理を行うことによって複数の点群データを合成してもよい。例えば、生成された複数の形状データが複数の深度画像データの場合、形状データ生成部311は、それぞれの深度画像データが示す深度画像上の特徴箇所同士の位置を合わせる処理を行うことによって複数の深度画像データを合成してもよい。位置算出部312は、形状データ生成部311による合成処理で生成されたワーク形状データWSDを用いて、上述のマッチング処理及びトラッキング処理の少なくとも一方を実行することによってワークWの位置を算出し、信号生成部313は、エンドエフェクタ13によるワークWへの処理のために、位置算出部312で算出されたワークWの位置に基づいてロボット制御信号を生成し、ロボット制御装置14に出力してもよい。
 (5)付記
 以上説明した実施形態に関して、更に以下の付記を開示する。
[付記1]
 撮像部を移動させるロボットを制御するための制御信号を生成する制御装置であって、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と、
 を備え、
 前記演算部は、
 前記撮像部が物体を撮像することで取得される第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出し、
 前記撮像部が前記物体を撮像することで取得される第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系と同じ又は異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出し、
 前記第1位置及び前記第2位置に基づいて前記制御信号を生成する
 制御装置。
[付記2]
 前記第1画像データは、前記撮像部と前記物体との相対移動中に前記撮像部が前記物体を撮像することで生成され、
 前記第2画像データは、前記相対移動中に前記撮像部が前記物体を撮像することで生成される
 付記1に記載の制御装置。
[付記3]
 前記出力部は、前記演算部で前記第1位置及び前記第2位置に基づいて生成された前記制御信号を第1周期で出力する
 付記1又は2に記載の制御装置。
[付記4]
 前記第1画像データを取得するために前記撮像部が前記物体を撮像する時刻と前記第2画像データを取得するために前記撮像部が前記物体を撮像する時刻は同じである
 付記1から3のいずれか一項に記載の制御装置。
[付記5]
 前記演算部は、
 互いに異なる時刻に前記撮像部が前記物体を撮像することで取得される二つの前記第1画像データに基づいて、前記第1座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第1変化量を算出し、
 互いに異なる時刻に前記撮像部が前記物体を撮像することで取得される二つの前記第2画像データのそれぞれから生成され且つ前記物体の三次元形状を示す二つの形状データに基づいて、前記第2座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第2変化量を算出し、
 前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて前記制御信号を生成する
 付記1から4のいずれか一項に記載の制御装置。
[付記6]
 前記出力部は、前記演算部で前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力する
 付記5に記載の制御装置。
[付記7]
 前記二つの第1画像データを取得するために前記撮像部が前記物体を撮像する前記互いに異なる時刻と前記二つの第2画像データを取得するために前記撮像部が前記物体を撮像する前記互いに異なる時刻は同じである
 付記5又は6に記載の制御装置。
[付記8]
 前記撮像部により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記撮像部により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間のうちの短い方の時間は、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間のうちの長い方の時間よりも長い
 付記5から7のいずれか一項に記載の制御装置。
[付記9]
 前記撮像部により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記撮像部により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間とは同じである
 付記8に記載の制御装置。
[付記10]
 前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間とは同じである
 付記8又は9に記載の制御装置。
[付記11]
 前記演算部は、
 第3周期で前記第1位置を算出し、
 前記第3周期よりも短い第4周期で前記第1変化量を算出し、
 第5周期で前記第2位置を算出し、
 前記第5周期よりも短い第6周期で前記第2変化量を算出する
 付記5から10のいずれか一項に記載の制御装置。
[付記12]
 前記第4周期と前記第6周期は同じ周期である
 付記11に記載の制御装置。
[付記13]
 前記第4周期と前記第6周期とは重なっている
 付記11又は12に記載の制御装置。
[付記14]
 前記出力部は、前記演算部で前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力し、
 前記所定周期は、前記第4周期又は前記第6周期と同じである
 付記11から13のいずれか一項に記載の制御装置。
[付記15]
 前記第3周期と前記第5周期は同じ周期である
 付記11から14のいずれか一項に記載の制御装置。
[付記16]
 前記第3周期と前記第5周期とは重なっている
 付記11から15のいずれか一項に記載の制御装置。
[付記17]
 前記演算部は、
 前記第1位置及び前記第1変化量に基づいて、互いに直交する第7軸、第8軸、及び第9軸で規定される共通座標系内での、前記第7軸と平行な第7方向、前記第8軸と平行な第8方向、及び前記第9軸と平行な第9方向のうちの少なくとも一つの方向における前記物体の位置と、前記第7軸、前記第8軸、及び前記第9軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第3位置を算出し、
 前記第2位置及び前記第2変化量に基づいて、前記共通座標系内での、前記少なくとも一つの方向とは異なる、残りの少なくとも一つの方向における前記物体の位置と、前記少なくとも一つの軸とは異なる、残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第4位置を算出し、
 前記第3位置及び前記第4位置に基づいて前記制御信号を生成する
 付記5から16のいずれか一項に記載の制御装置。
[付記18]
 前記出力部は、前記演算部で前記第3位置及び前記第4位置に基づいて生成された前記制御信号を第7周期で出力する
 付記17に記載の制御装置。
[付記19]
 前記演算部は、
 第3周期で前記第1位置を算出し、
 前記第3周期よりも短い第4周期で前記第1変化量を算出し、
 第5周期で前記第2位置を算出し、
 前記第5周期よりも短い第6周期で前記第2変化量を算出し、
 前記第3周期の1周期としての前記第1位置が新たに算出されてから前記第1位置が次に算出されるまでの間に、前記第4周期で前記第1変化量が新たに算出されるたびに、前記新たに算出された第1変化量と前記新たに算出された第1位置とに基づいて前記第3位置を算出し、
 前記第5周期の1周期としての前記第2位置が新たに算出されてから前記第2位置が次に算出されるまでの間に、前記第6周期で前記第2変化量が新たに算出されるたびに、前記新たに算出された第2変化量と前記新たに算出された第2位置とに基づいて前記第4位置を算出する
 付記17又は18に記載の制御装置。
[付記20]
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記演算部は、
 前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
 前記第2位置を前記第2変化量で補正することによって算出された、前記第2座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第4位置を算出する
 付記17から19のいずれか一項に記載の制御装置。
[付記21]
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記第1位置を前記第1変化量で補正することによって算出された、前記第1座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第3位置を算出し、
 前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
 付記17から19のいずれか一項に記載の制御装置。
[付記22]
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記演算部は、
 前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
 前記第2位置に基づいて算出された、前記共通座標系での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第2変化量に基づいて算出された、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第4位置を算出する
 付記17から19のいずれか一項に記載の制御装置。
[付記23]
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記演算部は、
 前記第1位置に基づいて算出された、前記共通座標系での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第1変化量に基づいて算出された、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第3位置を算出し、
 前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
 付記17から19のいずれか一項に記載の制御装置。
[付記24]
 前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
 前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸である
 付記17から20及び22のいずれか一項に記載の制御装置。
[付記25]
 前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
 前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸である
 付記17から19、21及び23のいずれか一項に記載の制御装置。
[付記26]
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
 前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含む
 付記1から25のいずれか一項に記載の制御装置。
[付記27]
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
 前記第1変化量は、前記第2方向における前記物体の位置の変化量、前記第3方向における前記物体の位置の変化量、及び前記第1軸の周りの前記物体の姿勢の変化量を含み、
 前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含み、
 前記第2変化量は、前記第4方向における前記物体の位置の変化量、前記第5軸の周りの前記物体の姿勢の変化量、及び前記第6軸の周りの前記物体の姿勢の変化量を含む
 付記5から25のいずれか一項に記載の制御装置。
[付記28]
 前記演算部は、
 前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いてマッチング処理を行うことで、前記第1位置を算出し、
 前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いてマッチング処理を行うことで、前記第2位置を算出する
 付記1から27のいずれか一項に記載の制御装置。
[付記29]
 前記演算部は、
 前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いたマッチング処理を行うことによって前記第1位置を算出し、
 前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出し、
 前記二つの第1画像データのうち、一方の前記第1画像データのうちの前記物体の第1特徴箇所を示すデータ部分と、他方の前記第1画像データにおける前記物体の前記第1特徴箇所を示すデータ部分とを用いたトラッキング処理を行うことで、前記第1変化量を算出し、
 前記二つの形状データのうち、一方の前記形状データにおける前記物体の第2特徴箇所を示すデータ部分と、他方の前記形状データにおける前記物体の前記第2特徴箇所を示すデータ部分とを用いたトラッキング処理を行うことで、前記第2変化量を算出する
 付記5から25及び27のいずれか一項に記載の制御装置。
[付記30]
 前記演算部は、
 前記第1位置に基づいて、前記形状データのうちの前記物体の少なくとも一部の形状を示すデータ部分を選択し、前記選択されたデータ部分と前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
 付記28又は29に記載の制御装置。
[付記31]
 前記演算部は、
 前記形状データに対して、前記物体とは異なる他の物体の形状を示すデータ部分を削除するためのデータ削除処理を施し、
 前記データ削除処理が施された前記形状データと前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
 付記28から30のいずれか一項に記載の制御装置。
[付記32]
 前記他の物体は、前記物体が載置される載置装置を含む
 付記31に記載の制御装置。
[付記33]
 前記ロボットには、前記物体に対して処理を行う処理装置が設けられ、
 前記ロボットは、前記処理装置を移動させる
 付記1から32のいずれか一項に記載の制御装置。
[付記34]
 前記制御信号は、前記処理装置を制御するための信号である
 付記33に記載の制御装置。
[付記35]
 前記撮像部は、前記撮像部による前記物体の撮像結果に基づいて露出を自動調整可能である
 付記1から34のいずれか一項に記載の制御装置。
[付記36]
 前記演算部は、
 前記第1画像データ及び前記第2画像データの少なくとも一つに対して画像処理を施し、
 前記画像処理が施された前記第1画像データに基づいて前記第1位置を算出可能であり、
 前記第2画像データから生成される前記形状データに基づいて前記第2位置を算出可能である
 付記1から35のいずれか一項に記載の制御装置。
[付記37]
 前記演算部は、
 前記二つの第1画像データ及び前記二つの第2画像データの少なくとも一つに対して画像処理を施し、
 前記画像処理が施された前記二つの第1画像データに基づいて前記第1変化量を算出可能であり、
 前記画像処理が施された前記二つの第2画像データから生成される前記第二つの形状データに基づいて前記第2変化量を算出可能である
 請求項5から25、27及び29のいずれか一項に記載の制御装置。
[付記38]
 前記画像処理は、ガンマ補正処理、HDR(High Dynamic Range)処理及びノイズ除去処理のうちの少なくとも一つを含む
 付記36又は37に記載の制御装置。
[付記39]
 前記撮像部は、前記ロボットアームに設けられた光投影装置からパターン光が投影された前記物体を撮像することで、前記第2画像データ及び前記二つの第2画像データとの少なくとも一方を生成する
 付記1から38のいずれか一項に記載の制御装置。
[付記40]
 請求項1から39のいずれか一項に記載の制御装置と、
 前記撮像部と
 を備える制御システム。
[付記41]
 前記撮像部は、第1撮像装置と第2撮像装置とを備え、
 前記物体からの光のうちの第1波長帯域の光成分を減衰する第1フィルタと、
 前記物体からの光のうちの前記第1波長帯域とは異なる第2波長帯域の光成分を減衰する第2フィルタと
 を更に備え、
 前記第1撮像装置は、前記第1フィルタを介して前記物体からの光を受光することで、前記物体を撮像し、
 前記第2撮像装置は、前記第2フィルタを介して前記物体からの光を受光することで、前記物体を撮像する
 付記40に記載の制御システム。
[付記42]
 前記第1波長帯域の光成分を含む第1照明光で前記物体を照明する第1照明装置と、
 前記第2波長帯域の光成分を含む第2照明光で前記物体を照明する第2照明装置と
 を更に備える付記41に記載の制御システム。
[付記43]
 前記第1撮像装置が前記物体を撮像する時刻と前記第2撮像装置が前記物体を撮像する時刻は同じである
 付記41又は42に記載の制御システム。
[付記44]
 請求項1から39のいずれか一項に記載の制御装置と、
 前記撮像部と、
 前記ロボットと
 を備えるロボットシステム。
[付記45]
 撮像部を移動させるロボットを制御するための制御信号を生成する制御方法であって、
 前記撮像部が物体を撮像することで取得される第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出することと、
 前記撮像部が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系と同じ又は異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出することと、
 前記第1位置及び前記第2位置に基づいて前記制御信号を生成することと
 を含む制御方法。
[付記46]
 コンピュータに、付記45に記載の制御方法を実行させるコンピュータプログラム。
[付記47]
 撮像部を移動させるロボットを制御するための制御信号を生成する制御装置であって、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と、
 を備え、
 前記演算部は、
 前記撮像部が物体を撮像することで取得される第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出し、
 前記撮像部から、前記撮像部が前記物体を撮像することで取得される前記第2画像データから前記撮像部によって生成され且つ前記物体の三次元形状を示す形状データを取得し、
 前記形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系と同じ又は異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出し、
 前記第1位置及び前記第2位置に基づいて前記制御信号を生成する
 制御装置。
[付記48]
 前記第1画像データは、前記撮像部と前記物体との相対移動中に前記撮像部が前記物体を撮像することで生成され、
 前記第2画像データは、前記相対移動中に前記撮像部が前記物体を撮像することで生成される
 付記47に記載の制御装置。
[付記49]
 前記出力部は、前記演算部で前記第1位置及び前記第2位置に基づいて生成された前記制御信号を第1周期で出力する
 付記47又は48に記載の制御装置。
[付記50]
 前記第1画像データを取得するために前記撮像部が前記物体を撮像する時刻と前記第2画像データを取得するために前記撮像部が前記物体を撮像する時刻は同じである
 付記47から49のいずれか一項に記載の制御装置。
[付記51]
 前記演算部は、
 互いに異なる時刻に前記撮像部が前記物体を撮像することで取得される二つの前記第1画像データに基づいて、前記第1座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第1変化量を算出し、
 互いに異なる時刻に前記撮像部が前記物体を撮像することで取得される二つの前記第2画像データのそれぞれから生成され且つ前記物体の三次元形状を示す二つの形状データに基づいて、前記第2座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第2変化量を算出し、
 前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて前記制御信号を生成する
 付記47から50のいずれか一項に記載の制御装置。
[付記52]
 前記出力部は、前記演算部で前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力する
 付記51に記載の制御装置。
[付記53]
 前記二つの第1画像データを取得するために前記撮像部が前記物体を撮像する前記互いに異なる時刻と前記二つの第2画像データを取得するために前記撮像部が前記物体を撮像する前記互いに異なる時刻は同じである
 付記51又は52に記載の制御装置。
[付記54]
 前記撮像部により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記撮像部により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間のうちの短い方の時間は、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間のうちの長い方の時間よりも長い
 付記51から5のいずれか一項に記載の制御装置。
[付記55]
 前記撮像部により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記撮像部により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間とは同じである
 付記54に記載の制御装置。
[付記56]
 前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記撮像部により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間とは同じである
 付記54又は55に記載の制御装置。
[付記57]
 前記演算部は、
 第3周期で前記第1位置を算出し、
 前記第3周期よりも短い第4周期で前記第1変化量を算出し、
 第5周期で前記第2位置を算出し、
 前記第5周期よりも短い第6周期で前記第2変化量を算出する
 付記51から56のいずれか一項に記載の制御装置。
[付記58]
 前記第4周期と前記第6周期は同じ周期である
 付記57に記載の制御装置。
[付記59]
 前記第4周期と前記第6周期とは重なっている
 付記57又は58に記載の制御装置。
[付記60]
 前記出力部は、前記演算部で前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力し、
 前記所定周期は、前記第4周期又は前記第6周期と同じである
 付記57から59のいずれか一項に記載の制御装置。
[付記61]
 前記第3周期と前記第5周期は同じ周期である
 付記57から60のいずれか一項に記載の制御装置。
[付記62]
 前記第3周期と前記第5周期とは重なっている
 付記57から61のいずれか一項に記載の制御装置。
[付記63]
 前記演算部は、
 前記第1位置及び前記第1変化量に基づいて、互いに直交する第7軸、第8軸、及び第9軸で規定される共通座標系内での、前記第7軸と平行な第7方向、前記第8軸と平行な第8方向、及び前記第9軸と平行な第9方向のうちの少なくとも一つの方向における前記物体の位置と、前記第7軸、前記第8軸、及び前記第9軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第3位置を算出し、
 前記第2位置及び前記第2変化量に基づいて、前記共通座標系内での、前記少なくとも一つの方向とは異なる、残りの少なくとも一つの方向における前記物体の位置と、前記少なくとも一つの軸とは異なる、残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第4位置を算出し、
 前記第3位置及び前記第4位置に基づいて前記制御信号を生成する
 付記51から62のいずれか一項に記載の制御装置。
[付記64]
 前記出力部は、前記演算部で前記第3位置及び前記第4位置に基づいて生成された前記制御信号を第7周期で出力する
 付記63に記載の制御装置。
[付記65]
 前記演算部は、
 第3周期で前記第1位置を算出し、
 前記第3周期よりも短い第4周期で前記第1変化量を算出し、
 第5周期で前記第2位置を算出し、
 前記第5周期よりも短い第6周期で前記第2変化量を算出し、
 前記第3周期の1周期としての前記第1位置が新たに算出されてから前記第1位置が次に算出されるまでの間に、前記第4周期で前記第1変化量が新たに算出されるたびに、前記新たに算出された第1変化量と前記新たに算出された第1位置とに基づいて前記第3位置を算出し、
 前記第5周期の1周期としての前記第2位置が新たに算出されてから前記第2位置が次に算出されるまでの間に、前記第6周期で前記第2変化量が新たに算出されるたびに、前記新たに算出された第2変化量と前記新たに算出された第2位置とに基づいて前記第4位置を算出する
 付記63又は64に記載の制御装置。
[付記66]
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記演算部は、
 前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
 前記第2位置を前記第2変化量で補正することによって算出された、前記第2座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第4位置を算出する
 付記63から65のいずれか一項に記載の制御装置。
[付記67]
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記第1位置を前記第1変化量で補正することによって算出された、前記第1座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第3位置を算出し、
 前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
 付記63から65のいずれか一項に記載の制御装置。
[付記68]
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記演算部は、
 前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
 前記第2位置に基づいて算出された、前記共通座標系での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第2変化量に基づいて算出された、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第4位置を算出する
 付記63から65のいずれか一項に記載の制御装置。
[付記69]
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記演算部は、
 前記第1位置に基づいて算出された、前記共通座標系での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第1変化量に基づいて算出された、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第3位置を算出し、
 前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
 付記63から65のいずれか一項に記載の制御装置。
[付記70]
 前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
 前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
 前記第7軸は前記第1軸であり、
 前記第8軸は前記第2軸であり、
 前記第9軸は前記第3軸であり、
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸である
 付記63から66及び68のいずれか一項に記載の制御装置。
[付記71]
 前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
 前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
 前記第7軸は前記第4軸であり、
 前記第8軸は前記第5軸であり、
 前記第9軸は前記第6軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸である
 付記63から65、67及び69のいずれか一項に記載の制御装置。
[付記72]
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
 前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含む
 付記47から71のいずれか一項に記載の制御装置。
[付記73]
 前記第1軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第4軸は、前記撮像部の光学系の光軸に沿った軸であり、
 前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
 前記第1変化量は、前記第2方向における前記物体の位置の変化量、前記第3方向における前記物体の位置の変化量、及び前記第1軸の周りの前記物体の姿勢の変化量を含み、
 前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含み、
 前記第2変化量は、前記第4方向における前記物体の位置の変化量、前記第5軸の周りの前記物体の姿勢の変化量、及び前記第6軸の周りの前記物体の姿勢の変化量を含む
 付記51から71のいずれか一項に記載の制御装置。
[付記74]
 前記演算部は、
 前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いてマッチング処理を行うことで、前記第1位置を算出し、
 前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いてマッチング処理を行うことで、前記第2位置を算出する
 付記47から73のいずれか一項に記載の制御装置。
[付記75]
 前記演算部は、
 前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いたマッチング処理を行うことによって前記第1位置を算出し、
 前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出し、
 前記二つの第1画像データのうち、一方の前記第1画像データのうちの前記物体の第1特徴箇所を示すデータ部分と、他方の前記第1画像データにおける前記物体の前記第1特徴箇所を示すデータ部分とを用いたトラッキング処理を行うことで、前記第1変化量を算出し、
 前記二つの形状データのうち、一方の前記形状データにおける前記物体の第2特徴箇所を示すデータ部分と、他方の前記形状データにおける前記物体の前記第2特徴箇所を示すデータ部分とを用いたトラッキング処理を行うことで、前記第2変化量を算出する
 付記51から71及び73のいずれか一項に記載の制御装置。
[付記76]
 前記演算部は、
 前記第1位置に基づいて、前記形状データのうちの前記物体の少なくとも一部の形状を示すデータ部分を選択し、前記選択されたデータ部分と前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
 付記74又は75に記載の制御装置。
[付記77]
 前記演算部は、
 前記形状データに対して、前記物体とは異なる他の物体の形状を示すデータ部分を削除するためのデータ削除処理を施し、
 前記データ削除処理が施された前記形状データと前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
 付記74から76のいずれか一項に記載の制御装置。
[付記78]
 前記他の物体は、前記物体が載置される載置装置を含む
 付記77に記載の制御装置。
[付記79]
 前記ロボットには、前記物体に対して処理を行う処理装置が設けられ、
 前記ロボットは、前記処理装置を移動させる
 付記47から78のいずれか一項に記載の制御装置。
[付記80]
 前記制御信号は、前記処理装置を制御するための信号である
 付記79に記載の制御装置。
[付記81]
 前記第1及び撮像部の少なくとも一方は、前記第1及び撮像部の少なくとも一方による前記物体の撮像結果に基づいて露出を自動調整可能である
 付記47から80のいずれか一項に記載の制御装置。
[付記82]
 前記演算部は、
 前記第1画像データ及び前記第2画像データの少なくとも一つに対して画像処理を施し、
 前記画像処理が施された前記第1画像データに基づいて前記第1位置を算出可能であり、
 前記画像処理が施された前記第2画像データから生成される前記形状データに基づいて前記第2位置を算出可能である
 付記47から81のいずれか一項に記載の制御装置。
[付記83]
 前記演算部は、
 前記二つの第1画像データ及び前記二つの第2画像データの少なくとも一つに対して画像処理を施し、
 前記画像処理が施された前記二つの第1画像データに基づいて前記第1変化量を算出可能であり、
 前記画像処理が施された前記二つの第2画像データから生成される前記第二つの形状データに基づいて前記第2変化量を算出可能である
 請求項51から71、73及び75のいずれか一項に記載の制御装置。
[付記84]
 前記画像処理は、ガンマ補正処理、HDR(High Dynamic Range)処理及びノイズ除去処理のうちの少なくとも一つを含む
 付記82又は83に記載の制御装置。
[付記85]
 前記撮像部は、前記ロボットアームに設けられた光投影装置からパターン光が投影された前記物体を撮像することで、前記第2画像データ及び前記二つの第2画像データとの少なくとも一方を生成する
 付記47から84のいずれか一項に記載の制御装置。
[付記86]
 請求項47から85のいずれか一項に記載の制御装置と、
 前記撮像部と
 を備える制御システム。
[付記87]
 前記撮像部は、第1撮像装置と第2撮像装置とを備え、
 前記物体からの光のうちの第1波長帯域の光成分を減衰する第1フィルタと、
 前記物体からの光のうちの前記第1波長帯域とは異なる第2波長帯域の光成分を減衰する第2フィルタと
 を更に備え、
 前記第1撮像装置は、前記第1フィルタを介して前記物体からの光を受光することで、前記物体を撮像し、
 前記第2撮像装置は、前記第2フィルタを介して前記物体からの光を受光することで、前記物体を撮像する
 付記86に記載の制御システム。
[付記88]
 前記第1波長帯域の光成分を含む第1照明光で前記物体を照明する第1照明装置と、
 前記第2波長帯域の光成分を含む第2照明光で前記物体を照明する第2照明装置と
 を更に備える付記87に記載の制御システム。
[付記89]
 前記第1撮像装置が前記物体を撮像する時刻と前記第2撮像装置が前記物体を撮像する時刻は同じである
 付記87又は88に記載の制御システム。
[付記90]
 請求項47から85のいずれか一項に記載の制御装置と、
 前記撮像部と、
 前記ロボットと
 を備えるロボットシステム。
[付記91]
 撮像部を移動させるロボットを制御するための制御信号を生成する制御方法であって、
 前記撮像部が物体を撮像することで取得される第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出することと、
 前記撮像部から、前記撮像部が前記物体を撮像することで取得される前記第2画像データから前記撮像部によって生成され且つ前記物体の三次元形状を示す形状データを取得することと、
 前記形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系と同じ又は異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出することと、
 前記第1位置及び前記第2位置に基づいて前記制御信号を生成することと
 を含む制御方法。
[付記92]
 コンピュータに、付記91に記載の制御方法を実行させるコンピュータプログラム。
 上述の各実施形態の構成要件の少なくとも一部は、上述の各実施形態の構成要件の少なくとも他の一部と適宜組み合わせることができる。上述の各実施形態の構成要件のうちの一部が用いられなくてもよい。また、法令で許容される限りにおいて、上述の各実施形態で引用した全ての公開公報及び米国特許の開示を援用して本文の記載の一部とする。
 本発明は、上述した実施例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムもまた本発明の技術的範囲に含まれるものである。
 SYS ロボットシステム
 1 ロボット
 12 ロボットアーム
 13 エンドエフェクタ
 14 制御装置
 2 撮像ユニット
 21、22 撮像装置
 23 投影装置
 24b 照明装置
 25b、26b フィルタ
 3 ロボット制御装置
 31 演算装置
 311 画像変換部
 312 位置算出部
 3121 2Dマッチング部
 3122 3Dマッチング部
 3123 2Dトラッキング部
 3124 3Dトラッキング部
 3125 座標変換部
 313 信号生成部
 314a 事前処理部
 33 通信装置
 4 載置装置
 W ワーク
 IMG_2D、IMG_3D ワーク画像データ
 IMG_2M 基準画像データ
 WSD ワーク形状データ
 WMD 基準形状データ

Claims (54)

  1.  物体に対して処理を行う処理装置と第1画像データを出力する第1撮像装置と第2画像データを出力する第2撮像装置とが設けられ、且つ、前記処理装置と前記第1及び第2撮像装置とを移動させるロボットアームを制御するための制御信号を生成する制御装置であって、
     前記制御信号を生成する演算部と、
     前記演算部で生成された前記制御信号を出力する出力部と
     を備え、
     前記演算部は、
     前記第1及び第2撮像装置と前記物体との相対移動中に前記第1撮像装置が前記物体を撮像することで取得される前記第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出し、
     前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系とは異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出し、
     前記第1位置及び前記第2位置に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第1位置及び前記第2位置に基づいて生成された前記制御信号を第1周期で出力する
     制御装置。
  2.  前記第1画像データを取得するために前記第1撮像装置が前記物体を撮像する時刻と前記第2画像データを取得するために前記第2撮像装置が前記物体を撮像する時刻は同じである
     請求項1に記載の制御装置。
  3.  前記演算部は、
     前記相対移動中であって互いに異なる時刻に前記第1撮像装置が前記物体を撮像することで取得される二つの前記第1画像データに基づいて、前記第1座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第1変化量を算出し、
     前記第1位置、前記第1変化量、及び前記第2位置に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第1位置、前記第1変化量、及び前記第2位置に基づいて生成された前記制御信号を第2周期で出力する
     請求項1又は2に記載の制御装置。
  4.  前記演算部は、前記第1位置、前記第1変化量、前記第2位置、及び前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて前記制御信号を生成し、
     前記出力部は、前記第1位置、前記第1変化量、前記第2位置、及び前記形状データに基づいて生成された前記制御信号を前記第2周期で出力する
     請求項3に記載の制御装置。
  5.  前記演算部は、
     前記相対移動中であって互いに異なる時刻に前記第1撮像装置が前記物体を撮像することで取得される二つの前記第1画像データと、前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データとに基づいて、前記互いに異なる時刻間の、前記物体の位置と前記物体の姿勢との少なくとも一方の変化量を算出し、
     前記第1位置、前記第2位置、及び前記変化量に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第1位置、前記第2位置、及び前記変化量に基づいて生成された前記制御信号を第2周期で出力する
     請求項1又は2に記載の制御装置。
  6.  前記形状データは、前記互いに異なる時刻のうちの後の時刻に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示すデータを含む
     請求項4又は5に記載の制御装置。
  7.  前記演算部は、
     前記相対移動中であって互いに異なる時刻に前記第2撮像装置が前記物体を撮像することで取得される二つの前記第2画像データのそれぞれから生成され且つ前記物体の三次元形状を示す二つの形状データに基づいて、前記第2座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第2変化量を算出し、
     前記第1位置、前記第2位置、及び前記第2変化量に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第1位置、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力する
     請求項1又は2に記載の制御装置。
  8.  前記演算部は、
     前記相対移動中であって互いに異なる時刻に前記第1撮像装置が前記物体を撮像することで取得される二つの前記第1画像データに基づいて、前記第1座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第1変化量を算出し、
     前記相対移動中であって互いに異なる時刻に前記第2撮像装置が前記物体を撮像することで取得される二つの前記第2画像データのそれぞれから生成され且つ前記物体の三次元形状を示す二つの形状データに基づいて、前記第2座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第2変化量を算出し、
     前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力する
     請求項1又は2に記載の制御装置。
  9.  前記二つの第1画像データを取得するために前記第1撮像装置が前記物体を撮像する前記互いに異なる時刻と前記二つの第2画像データを取得するために前記第2撮像装置が前記物体を撮像する前記互いに異なる時刻は同じである
     請求項8に記載の制御装置。
  10.  前記第1撮像装置により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記第2撮像装置により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間のうちの短い方の時間は、前記第1撮像装置により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記第2撮像装置により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間のうちの長い方の時間よりも長い
     請求項8又は9に記載の制御装置。
  11.  前記第1撮像装置により前記物体が撮像されてから前記第1画像データに基づいて前記第1位置が算出されるまでの時間と、前記第2撮像装置により前記物体が撮像されてから前記第2画像データに基づいて前記第2位置が算出されるまでの時間とは同じである
     請求項10に記載の制御装置。
  12.  前記第1撮像装置により前記物体が互いに異なる時刻に撮像されてから前記二つの第1画像データに基づいて前記第1変化量が算出されるまでの時間と、前記第2撮像装置により前記物体が互いに異なる時刻に撮像されてから前記二つの第2画像データに基づいて前記第2変化量が算出されるまでの時間とは同じである
     請求項10又は11に記載の制御装置。
  13.  前記演算部は、
     前記相対移動中に、第3周期で前記第1位置を算出し、
     前記相対移動中に、前記第3周期よりも短い第4周期で前記第1変化量を算出し、
     前記相対移動中に、第5周期で前記第2位置を算出し、
     前記相対移動中に、前記第5周期よりも短い第6周期で前記第2変化量を算出する
     請求項8から12のいずれか一項に記載の制御装置。
  14.  前記第4周期と前記第6周期は同じ周期である
     請求項13に記載の制御装置。
  15.  前記第4周期と前記第6周期とは重なっている
     請求項13又は14に記載の制御装置。
  16.  前記第2周期は、前記第4周期又は前記第6周期と同じである
     請求項13から15のいずれか一項に記載の制御装置。
  17.  前記第3周期と前記第5周期は同じ周期である
     請求項13から16のいずれか一項に記載の制御装置。
  18.  前記第3周期と前記第5周期とは重なっている
     請求項13から16のいずれか一項に記載の制御装置。
  19.  前記演算部は、
     前記第1位置及び前記第1変化量に基づいて、互いに直交する第7軸、第8軸、及び第9軸で規定される共通座標系内での、前記第7軸と平行な第7方向、前記第8軸と平行な第8方向、及び前記第9軸と平行な第9方向のうちの少なくとも一つの方向における前記物体の位置と、前記第7軸、前記第8軸、及び前記第9軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第3位置を算出し、
     前記第2位置及び前記第2変化量に基づいて、前記共通座標系内での、前記少なくとも一つの方向とは異なる、残りの少なくとも一つの方向における前記物体の位置と、前記少なくとも一つの軸とは異なる、残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第4位置を算出し、
     前記第3位置及び前記第4位置に基づいて前記制御信号を生成し、
     前記出力部は、前記演算部で前記第3位置及び前記第4位置に基づいて生成された前記制御信号を第2周期で出力する
     請求項8から18のいずれか一項に記載の制御装置。
  20.  前記演算部は、
     前記相対移動中に、第3周期で前記第1位置を算出し、
     前記相対移動中に、前記第3周期よりも短い第4周期で前記第1変化量を算出し、
     前記相対移動中に、第5周期で前記第2位置を算出し、
     前記相対移動中に、前記第5周期よりも短い第6周期で前記第2変化量を算出し、
     前記第3周期の1周期としての前記第1位置が新たに算出されてから前記第1位置が次に算出されるまでの間に、前記第4周期で前記第1変化量が新たに算出されるたびに、前記新たに算出された第1変化量と前記新たに算出された第1位置とに基づいて前記第3位置を算出し、
     前記第5周期の1周期としての前記第2位置が新たに算出されてから前記第2位置が次に算出されるまでの間に、前記第6周期で前記第2変化量が新たに算出されるたびに、前記新たに算出された第2変化量と前記新たに算出された第2位置とに基づいて前記第4位置を算出する
     請求項19に記載の制御装置。
  21.  前記第7軸は前記第1軸であり、
     前記第8軸は前記第2軸であり、
     前記第9軸は前記第3軸であり、
     前記演算部は、
     前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
     前記第2位置を前記第2変化量で補正することによって算出された、前記第2座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第4位置を算出する
     請求項19又は20に記載の制御装置。
  22.  前記第7軸は前記第4軸であり、
     前記第8軸は前記第5軸であり、
     前記第9軸は前記第6軸であり、
     前記第1位置を前記第1変化量で補正することによって算出された、前記第1座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方に基づいて、前記共通座標系における前記第3位置を算出し、
     前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
     請求項19又は20に記載の制御装置。
  23.  前記第7軸は前記第1軸であり、
     前記第8軸は前記第2軸であり、
     前記第9軸は前記第3軸であり、
     前記演算部は、
     前記第1位置を前記第1変化量で補正することによって、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第3位置として算出し、
     前記第2位置に基づいて算出された、前記共通座標系での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第2変化量に基づいて算出された、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第4位置を算出する
     請求項19又は20に記載の制御装置。
  24.  前記第7軸は前記第4軸であり、
     前記第8軸は前記第5軸であり、
     前記第9軸は前記第6軸であり、
     前記演算部は、
     前記第1位置に基づいて算出された、前記共通座標系での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を、前記第1変化量に基づいて算出された、前記共通座標系内での、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量で補正することによって前記第3位置を算出し、
     前記第2位置を前記第2変化量で補正することによって、前記共通座標系内での、前記残りの少なくとも一つの方向における前記物体の位置と前記残りの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を前記第4位置として算出する
     請求項19又は20に記載の制御装置。
  25.  前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
     前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
     前記第7軸は前記第1軸であり、
     前記第8軸は前記第2軸であり、
     前記第9軸は前記第3軸であり、
     前記第1軸は、前記第1撮像装置の光学系の光軸に沿った軸である
     請求項19、20、21、又は23に記載の制御装置。
  26.  前記第3位置は、前記第8方向における前記物体の位置、前記第9方向における前記物体の位置、及び前記第7軸の周りの前記物体の姿勢を含み、
     前記第4位置は、前記第7方向における前記物体の位置、前記第8軸の周りの前記物体の姿勢、及び前記第9軸の周りの前記物体の姿勢を含み、
     前記第7軸は前記第4軸であり、
     前記第8軸は前記第5軸であり、
     前記第9軸は前記第6軸であり、
     前記第4軸は、前記第2撮像装置の光学系の光軸に沿った軸である
     請求項19、20、22、又は24に記載の制御装置。
  27.  前記第1軸は、前記第1撮像装置の光学系の光軸に沿った軸であり、
     前記第4軸は、前記第2撮像装置の光学系の光軸に沿った軸であり、
     前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
     前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含む
     請求項1から26のいずれか一項に記載の制御装置。
  28.  前記第1軸は、前記第1撮像装置の光学系の光軸に沿った軸であり、
     前記第4軸は、前記第2撮像装置の光学系の光軸に沿った軸であり、
     前記第1位置は、前記第2方向における前記物体の位置、前記第3方向における前記物体の位置、及び前記第1軸の周りの前記物体の姿勢を含み、
     前記第1変化量は、前記第2方向における前記物体の位置の変化量、前記第3方向における前記物体の位置の変化量、及び前記第1軸の周りの前記物体の姿勢の変化量を含み、
     前記第2位置は、前記第4方向における前記物体の位置、前記第5軸の周りの前記物体の姿勢、及び前記第6軸の周りの前記物体の姿勢を含み、
     前記第2変化量は、前記第4方向における前記物体の位置の変化量、前記第5軸の周りの前記物体の姿勢の変化量、及び前記第6軸の周りの前記物体の姿勢の変化量を含む
     請求項8から26のいずれか一項に記載の制御装置。
  29.  前記演算部は、
     前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いてマッチング処理を行うことで、前記第1位置を算出し、
     前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いてマッチング処理を行うことで、前記第2位置を算出する
     請求項1から28のいずれか一項に記載の制御装置。
  30.  前記演算部は、
     前記第1画像データと前記物体の基準となる二次元画像を示す基準画像データとを用いたマッチング処理を行うことによって前記第1位置を算出し、
     前記形状データと前記物体の基準となる三次元形状を示す基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出し、
     前記二つの第1画像データのうち、一方の前記第1画像データのうちの前記物体の第1特徴箇所と、他方の前記第1画像データにおける前記物体の前記第1特徴箇所とを用いたトラッキング処理を行うことで、前記第1変化量を算出し、
     前記二つの形状データのうち、一方の前記形状データにおける前記物体の第2特徴箇所と、他方の前記形状データにおける前記物体の前記第2特徴箇所とを用いたトラッキング処理を行うことで、前記第2変化量を算出する
     請求項8から26及び28のいずれか一項に記載の制御装置。
  31.  前記演算部は、
     前記第1位置に基づいて、前記形状データのうちの前記物体の少なくとも一部の形状を示すデータ部分を選択し、前記選択されたデータ部分と前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
     請求項29又は30に記載の制御装置。
  32.  前記演算部は、
     前記形状データに対して、前記物体とは異なる他の物体の形状を示すデータ部分を削除するためのデータ削除処理を施し、
     前記データ削除処理が施された前記形状データと前記基準形状データとを用いたマッチング処理を行うことで前記第2位置を算出する
     請求項29から31のいずれか一項に記載の制御装置。
  33.  前記他の物体は、前記物体が載置される載置装置を含む
     請求項32に記載の制御装置。
  34.  前記制御信号は、前記処理装置を制御するための信号を含む
     請求項1から33のいずれか一項に記載の制御装置。
  35.  前記第1及び第2撮像装置の少なくとも一方は、前記第1及び第2撮像装置の少なくとも一方による前記物体の撮像結果に基づいて露出を自動調整可能である
     請求項1から34のいずれか一項に記載の制御装置。
  36.  前記演算部は、
     前記第1画像データ及び前記第2画像データの少なくとも一つに対して事前処理を施し、
     前記事前処理が施された前記第1画像データに基づいて前記第1位置を算出可能であり、
     前記事前処理が施された前記第2画像データから生成される前記形状データに基づいて前記第2位置を算出可能である
     請求項1から35のいずれか一項に記載の制御装置。
  37.  前記演算部は、
     前記二つの第1画像データ及び前記二つの第2画像データの少なくとも一つに対して事前処理を施し、
     前記事前処理が施された前記二つの第1画像データに基づいて前記第1変化量を算出可能であり、
     前記事前処理が施された前記二つの第2画像データから生成される前記二つの形状データに基づいて前記第2変化量を算出可能である
     請求項8から26、28及び30のいずれか一項に記載の制御装置。
  38.  前記事前処理は、ガンマ補正処理、ハイダイナミックレンジ合成処理及びノイズ除去処理のうちの少なくとも一つを含む
     請求項36又は37に記載の制御装置。
  39.  前記第2撮像装置は、前記ロボットアームに設けられた光投影装置からパターン光が投影された前記物体を撮像することで、前記第2画像データを生成する
     請求項1から38のいずれか一項に記載の制御装置。
  40.  前記第1撮像装置は、前記ロボットアームに設けられた照明装置からの照明光で照明された前記物体を撮像することで、前記第1画像データを生成する
     請求項1から39のいずれか一項に記載の制御装置。
  41.  前記照明光の波長と前記パターン光の波長とは異なる
     請求項40に記載の制御装置。
  42.  前記第2撮像装置は、ステレオカメラを含み、
     前記第2撮像装置から出力される前記第2画像データは、二つの画像データを含む
     請求項1から41のいずれか一項に記載の制御装置。
  43.  前記第1撮像装置は、単眼カメラを含む
     請求項1から42のいずれか一項に記載の制御装置。
  44.  請求項1から43のいずれか一項に記載の制御装置と、
     前記第1撮像装置と、
     前記第2撮像装置と
     を備える制御システム。
  45.  前記物体からの光のうちの第1波長帯域の光成分を減衰する第1フィルタと、
     前記物体からの光のうちの前記第1波長帯域とは異なる第2波長帯域の光成分を減衰する第2フィルタと
     を更に備え、
     前記第1撮像装置は、前記第1フィルタを介して前記物体からの光を受光することで、前記物体を撮像し、
     前記第2撮像装置は、前記第2フィルタを介して前記物体からの光を受光することで、前記物体を撮像する
     請求項44に記載の制御システム。
  46.  前記第1波長帯域の光成分を含む照明光で前記物体を照明する照明装置と、
     前記第2波長帯域の光成分を含むパターン光を前記物体に投影する光投影装置と
     を更に備える請求項45に記載の制御システム。
  47.  前記第1撮像装置が前記物体を撮像する時刻と前記第2撮像装置が前記物体を撮像する時刻は同じである
     請求項44から46のいずれか一項に記載の制御システム。
  48.  前記第2撮像装置は、ステレオカメラを含む
     請求項44から47のいずれか一項に記載の制御システム
  49.  前記第1撮像装置は、単眼カメラを含む
     請求項44から48のいずれか一項に記載の制御システム。
  50.  請求項1から43のいずれか一項に記載の制御装置と、
     前記第1撮像装置と、
     前記第2撮像装置と、
     前記ロボットアームと
     を備えるロボットシステム。
  51.  前記物体に対して処理を行う処理装置を更に備える
     請求項50に記載のロボットシステム。
  52.  物体に対して処理を行う処理装置と第1画像データを出力する第1撮像装置と第2画像データを出力する第2撮像装置とが設けられ、且つ、前記処理装置と前記第1及び第2撮像装置とを移動させるロボットアームを制御するための制御信号を生成する制御方法であって、
     前記第1及び第2撮像装置と前記物体との相対移動中に前記第1撮像装置が前記物体を撮像することで取得される前記第1画像データに基づいて、互いに直交する第1軸、第2軸、及び第3軸で規定される第1座標系内での、前記第1軸と平行な第1方向、前記第2軸と平行な第2方向、及び前記第3軸と平行な第3方向のうちの少なくとも一つの方向における前記物体の位置と、前記第1軸、前記第2軸、及び前記第3軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第1位置を算出することと、
     前記相対移動中に前記第2撮像装置が前記物体を撮像することで取得される前記第2画像データから生成され且つ前記物体の三次元形状を示す形状データに基づいて、互いに直交する第4軸、第5軸、及び第6軸で規定され且つ前記第1座標系とは異なる第2座標系内での、前記第4軸と平行な第4方向、前記第5軸と平行な第5方向、及び前記第6軸と平行な第6方向のうちの少なくとも一つの方向における前記物体の位置と、前記第4軸、前記第5軸、及び前記第6軸のうちの少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方を含む第2位置を算出することと、
     前記第1位置及び前記第2位置に基づいて前記制御信号を生成することと、
     前記第1位置及び前記第2位置に基づいて生成された前記制御信号を第1周期で出力することと
     を含む制御方法。
  53.  前記相対移動中であって互いに異なる時刻に前記第1撮像装置が前記物体を撮像することで取得される二つの前記第1画像データに基づいて、前記第1座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第1変化量を算出することと、
     前記相対移動中であって互いに異なる時刻に前記第2撮像装置が前記物体を撮像することで取得される二つの前記第2画像データのそれぞれから生成され且つ前記物体の三次元形状を示す二つの形状データに基づいて、前記第2座標系内での、前記互いに異なる時刻間の、前記少なくとも一つの方向における前記物体の位置と前記少なくとも一つの軸の周りの前記物体の姿勢との少なくとも一方の変化量である第2変化量を算出することと
     を含み、
     前記制御信号を生成することは、前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて前記制御信号を生成することを含み、
     前記制御信号を出力することは、前記第1位置、前記第1変化量、前記第2位置、及び前記第2変化量に基づいて生成された前記制御信号を第2周期で出力することを含む
     請求項52に記載の制御方法。
  54.  コンピュータに、請求項52又は53に記載の制御方法を実行させるコンピュータプログラム。
PCT/JP2021/048572 2021-12-27 2021-12-27 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム WO2023127021A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048572 WO2023127021A1 (ja) 2021-12-27 2021-12-27 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/048572 WO2023127021A1 (ja) 2021-12-27 2021-12-27 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
WO2023127021A1 true WO2023127021A1 (ja) 2023-07-06

Family

ID=86998336

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/048572 WO2023127021A1 (ja) 2021-12-27 2021-12-27 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Country Status (1)

Country Link
WO (1) WO2023127021A1 (ja)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000288974A (ja) * 1999-04-08 2000-10-17 Fanuc Ltd 画像処理機能を持つロボット装置
JP2019119027A (ja) * 2018-01-10 2019-07-22 キヤノン株式会社 ロボットシステムの制御方法、およびロボットシステム
WO2021010181A1 (ja) * 2019-07-17 2021-01-21 日立金属株式会社 検査装置、検査方法、位置決め方法、およびプログラム

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000288974A (ja) * 1999-04-08 2000-10-17 Fanuc Ltd 画像処理機能を持つロボット装置
JP2019119027A (ja) * 2018-01-10 2019-07-22 キヤノン株式会社 ロボットシステムの制御方法、およびロボットシステム
WO2021010181A1 (ja) * 2019-07-17 2021-01-21 日立金属株式会社 検査装置、検査方法、位置決め方法、およびプログラム

Similar Documents

Publication Publication Date Title
US10805546B2 (en) Image processing system, image processing device, and image processing program
JP6573354B2 (ja) 画像処理装置、画像処理方法、及びプログラム
JP5567908B2 (ja) 3次元計測装置、その計測方法及びプログラム
US20200238525A1 (en) System and method for automatic hand-eye calibration of vision system for robot motion
JP7027299B2 (ja) ビジョンベース操作システムのキャリブレーション及びオペレーション
US20140018957A1 (en) Robot system, robot, robot control device, robot control method, and robot control program
JP6836561B2 (ja) 画像処理装置及び画像処理方法
CN112862878B (zh) 一种基于3d视觉的机械臂修坯方法
WO2024027647A1 (zh) 机器人控制方法、系统和计算机程序产品
US20190287258A1 (en) Control Apparatus, Robot System, And Method Of Detecting Object
CN116766194A (zh) 基于双目视觉的盘类工件定位与抓取系统和方法
JP7427370B2 (ja) 撮像装置、画像処理装置、画像処理方法、撮像装置の校正方法、ロボット装置、ロボット装置を用いた物品の製造方法、制御プログラムおよび記録媒体
KR101972432B1 (ko) 레이저비전 센서 및 그 보정방법
EP3486040B1 (en) Gripping method, gripping system, and program
JP7031204B2 (ja) 制御装置、制御装置の制御方法、情報処理プログラム、および記録媒体
WO2023127021A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
JP2019060695A (ja) 3次元物体検出装置、ロボット、及びプログラム
JP2021026599A (ja) 画像処理システム
Seçil et al. 3-d visualization system for geometric parts using a laser profile sensor and an industrial robot
WO2023209974A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
US11559888B2 (en) Annotation device
JP7323057B2 (ja) 制御装置、制御方法、および、制御プログラム
Fröhlig et al. Three-dimensional pose estimation of deformable linear object tips based on a low-cost, two-dimensional sensor setup and AI-based evaluation
JP7249221B2 (ja) センサ位置姿勢キャリブレーション装置及びセンサ位置姿勢キャリブレーション方法
WO2024069886A1 (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: 21969905

Country of ref document: EP

Kind code of ref document: A1