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

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

Info

Publication number
WO2023209974A1
WO2023209974A1 PCT/JP2022/019364 JP2022019364W WO2023209974A1 WO 2023209974 A1 WO2023209974 A1 WO 2023209974A1 JP 2022019364 W JP2022019364 W JP 2022019364W WO 2023209974 A1 WO2023209974 A1 WO 2023209974A1
Authority
WO
WIPO (PCT)
Prior art keywords
imaging
image data
similarity
object obj
coordinate system
Prior art date
Application number
PCT/JP2022/019364
Other languages
English (en)
French (fr)
Inventor
大輔 小柳
祥也 横田
Original Assignee
株式会社ニコン
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 株式会社ニコン filed Critical 株式会社ニコン
Priority to PCT/JP2022/019364 priority Critical patent/WO2023209974A1/ja
Publication of WO2023209974A1 publication Critical patent/WO2023209974A1/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 relates to the technical field of, for example, a control device, a control system, a robot system, a control method, and a computer program that can generate a control signal for controlling a robot arm.
  • Patent Document 1 An example of a control device that calculates at least one of the position and orientation of an object that is a target of processing performed by the robot and controls the robot based on at least one of the calculated position and orientation is described in Patent Document 1. There is. Such a control device is required to accurately calculate at least one of the position and orientation of an object.
  • a robot arm is provided with 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.
  • a control device that generates a control signal for controlling the control device, wherein the control signal controls the robot arm to move the processing device and the first and second imaging devices, and the control device includes a calculation unit that generates the control signal, and an output unit that outputs the control signal generated by the calculation unit, and the calculation unit generates the control signal generated by the first imaging device imaging the object.
  • first information indicating the position and orientation of the object using the first image data, and generating information from the second image data generated by the second imaging device imaging the object; and determining the position of the object using three-dimensional position data indicating the three-dimensional positions of each of the plurality of points on the object and three-dimensional model data of the object at the position and orientation determined based on the first information.
  • a control device that generates second information indicating a posture and generates the control signal based on the second information.
  • the robot arm is provided with 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.
  • a control device that generates a control signal for controlling the control device, wherein the control signal controls the robot arm to move the processing device and the first and second imaging devices, and the control device includes a calculation unit that generates the control signal, and an output unit that outputs the control signal generated by the calculation unit, and the calculation unit outputs the control signal to the first imaging device at mutually different first and second times. is generated from two first image data, each generated by imaging the object, and the second image data generated by the second imaging device imaging the object at a third time, and the second image data is generated by imaging the object at a third time.
  • the amount of change in the position and orientation of the object between the first and second times is calculated based on three-dimensional position data indicating the three-dimensional position of each of the plurality of points on the object, and the control is performed based on the amount of change.
  • a controller is provided that generates a signal.
  • a processing device that performs processing on at least one of a first object and a second object in which at least one of a position and an orientation differs from the first object; and a processing device that outputs first image data.
  • a control device that generates a control signal for controlling a robot arm that is provided with a first imaging device and a second imaging device that outputs second image data, the control device generating a control signal that controls the processing device, The robot arm is controlled to move the first and second imaging devices, and the control device includes a calculation unit that generates the control signal, and an output that outputs the control signal generated by the calculation unit.
  • the calculation unit is configured to calculate the first or second object based on the first image data generated by the first imaging device imaging the first and second objects.
  • the processing device determines whether or not to select the object as the target object to be processed, and if the first or second object is selected as the target object as a result of the determination, the second imaging device and three-dimensional position data generated from the second image data generated by imaging the second object and indicating the three-dimensional positions of each of the plurality of points on the object, and the first image data.
  • a control system including the control device provided by any one of the first to third aspects, the first imaging device, and the second imaging device. be done.
  • control device provided by any one of the first to third aspects, the first imaging device, the second imaging device, and the robot arm.
  • a robot system is provided.
  • the robot arm is provided with a processing device that processes an object, a first imaging device that outputs the first image data, and a second imaging device that outputs the second image data.
  • a control method that generates a control signal for controlling the object, the first image data indicating the position and orientation of the object using the first image data generated by the first imaging device imaging the object. 1 information, and three-dimensional position data generated from the second image data generated by imaging the object by the second imaging device and indicating three-dimensional positions of each of a plurality of points on the object.
  • a control method is provided in which the robot arm is controlled to move.
  • the robot arm is provided with 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.
  • a control method for generating a control signal for controlling the object comprising: two pieces of first image data each generated by the first imaging device capturing the object at first and second times different from each other; Based on three-dimensional position data generated from the second image data generated by the second imaging device imaging the object at a third time and indicating three-dimensional positions of each of the plurality of points on the object, Processing the object with the processing device, including calculating an amount of change in the position and orientation of the object between the first and second times, and generating the control signal based on the amount of change. Therefore, a control method is provided in which the robot arm is controlled to move the processing device and the first and second imaging devices based on the generated control signal.
  • a processing device that performs processing on at least one of a first object and a second object in which at least one of a position and an orientation differs from the first object; and a processing device that outputs first image data.
  • a controlled method is provided.
  • a computer program that causes a computer to execute the control method provided by any one of the sixth to eighth aspects.
  • FIG. 1 is a block diagram showing the configuration of the robot system of this embodiment.
  • FIG. 2 is a side view showing the external 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.
  • FIGS. 5(a) to 5(d) shows a point in time during a period during which a holding process is being performed to hold a workpiece placed on a placing device moving on a support surface.
  • FIG. 3 is a side view showing the positional relationship between the robot and the workpiece in FIG.
  • FIGS. 5(a) to 5(d) shows a point in time during a period during which a holding process is being performed to hold a workpiece placed on a placing device moving on a support surface.
  • FIG. 3 is a side view showing the positional relationship between the robot and the workpiece in FIG.
  • FIGS. 5(a) to 5(d) shows a point in time
  • FIGS. 7(a) to 7(b) shows a point in time during a period during which a holding process is being performed to hold a workpiece placed on a placing device that is stationary on a support surface.
  • 7(c) to 7(e) are side views showing the positional relationship between the robot and the workpiece in FIG.
  • FIG. 3 is a side view showing the positional relationship between the robot and the workpiece at a certain point in time during processing.
  • FIG. 8(a) to 8(e) shows a holding process for sequentially holding multiple workpieces placed on a mounting device one by one, and a holding process for sequentially holding multiple workpieces one by one.
  • FIG. 3 is a side view showing the positional relationship between the robot and the workpiece at a certain point in time during a period in which a release process for placing the workpiece in the apparatus is being performed.
  • FIGS. 9(a) to 9(e) shows a holding process for sequentially holding multiple workpieces placed on a mounting device one by one, and a holding process for sequentially holding multiple workpieces one by one on a mounting device.
  • FIG. 3 is a side view showing the positional relationship between the robot and the workpiece at a certain point in time during a period in which a release process for placing the workpiece in the apparatus is being performed.
  • FIG. 7 is a block diagram showing logical processing blocks for calculating the position and orientation of an object by performing matching processing and tracking processing.
  • FIG. 11 schematically shows the 2D matching process.
  • FIG. 12 is a timing chart showing the relationship between the timing at which the imaging device generates image data and the timing at which the 2D matching section performs 2D matching processing.
  • FIG. 13 schematically shows the 3D matching process.
  • FIG. 14 shows the initial position and initial orientation of the three-dimensional model.
  • FIG. 15 is a timing chart showing the relationship between the timing at which the imaging device generates image data and the timing at which the 3D matching section performs 3D matching processing.
  • FIG. 16 schematically shows 3D matching target data that is part of the 3D position data.
  • FIG. 17 schematically shows the tracking process.
  • FIG. 18 is a timing chart showing the relationship between the timing at which the imaging device generates image data and the timing at which the tracking unit performs tracking processing.
  • FIG. 19 is a timing chart showing the relationship between the timing at which the 2D matching section performs 2D matching processing, the timing at which the 3D matching section performs 3D matching processing, and the timing at which the tracking section performs tracking processing.
  • FIG. 20 is a block diagram showing the configuration of a control device in the first modification.
  • FIG. 20 is a block diagram showing the configuration of a control device in the first modification.
  • FIG. 21 is a flowchart showing the flow of robot control processing in the first modification.
  • FIG. 22 is a plan view showing two objects detected by 2D matching processing.
  • FIG. 23(a) shows the imaging device in rotational movement
  • FIG. 23(b) shows the imaging device in translational movement.
  • FIG. 24(a) shows a robot arm moving an end effector toward a first object
  • FIG. 24(b) shows a robot arm moving an end effector toward a second object.
  • FIG. 25 is a perspective view showing an imaging device that images an object from a first position and an imaging device that images an object from a second position different from the first position.
  • FIG. 26 is a block diagram showing the configuration of a control device in a second modification.
  • FIG. 27 schematically shows the plane removal process.
  • FIG. 28 is a block diagram showing the configuration of the imaging unit.
  • FIG. 29 schematically shows high dynamic range synthesis processing.
  • FIG. 30 schematically shows the noise removal process.
  • FIG. 31 is a
  • 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, a control device 3, and an end effector 13.
  • the robot 1 is a device that can perform predetermined processing on the object OBJ.
  • An example of the robot 1 is shown in FIG.
  • FIG. 2 is a side view showing the external appearance of the robot 1.
  • the robot 1 includes, for example, a base 11, a robot arm 12, and a robot control device 14.
  • the base 11 is a member that serves as the foundation of the robot 1.
  • the base 11 is placed 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 in an automatic guided vehicle (AGV).
  • AGV automatic guided vehicle
  • FIG. 2 shows an example in which the base 11 is fixed to the support surface S.
  • 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 has a built-in actuator.
  • the link 121 may be rotatable around an axis defined by the joint 122 by an actuator built into the joint 122.
  • at least one link 121 may be expandable and contractible 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 referred to as a robot arm 12.
  • An end effector 13 is attached to the robot arm 12. That is, the end effector 13 is attached to the robot 1.
  • the end effector 13 is attached to the tip of the robot arm 12.
  • End effector 13 is movable by movement of robot arm 12. That is, the robot arm 12 moves the end effector 13. That is, the robot 1 moves the end effector 13.
  • the end effector 13 is a device that performs a predetermined process (in other words, a predetermined operation) on the object OBJ.
  • the end effector 13 may be called a processing device because it performs predetermined processing on the object OBJ.
  • the end effector 13 may perform a holding process (in other words, a holding operation) for holding the object OBJ, as an example of the predetermined process.
  • the end effector 13 may be considered to be performing a holding process on the object OBJ that it should hold.
  • the end effector 13 capable of performing a holding process may be referred to as a holding device.
  • the end effector 13 may perform a release process (in other words, a release operation) to release (that is, release) the held object OBJ.
  • the end effector 13 may be considered to be performing a release process on the object OBJ held by the end effector 13.
  • the holding device may perform a release process on the object OBJ held by the holding device.
  • the end effector 13 capable of performing a release process may be referred to as a release device.
  • the release process includes a release process of releasing (that is, releasing) the first object OBJ held by the end effector 13 so that the first object OBJ is placed on the second object OBJ.
  • the end effector 13 may be considered to be performing a release process on the first object OBJ held by the end effector 13.
  • the end effector 13 may be considered to be performing release processing on the first object OBJ that the end effector 13 should release.
  • the end effector 13 may be considered to be performing a release process on the second object OBJ on which the first object OBJ to be released by the end effector 13 is placed.
  • a hand gripper is an example of the end effector 13 that can perform holding processing and releasing processing.
  • the hand gripper is an end effector 13 that can hold the object OBJ by physically pinching the object OBJ using a plurality of (for example, two, three, or four) finger members or claw members. be.
  • Another example of the end effector 13 that can perform the holding process is at least one vacuum gripper that can hold the object OBJ by vacuum suctioning the object OBJ.
  • FIG. 2 shows an example in which the end effector 13 is a hand gripper.
  • the robot 1 may perform placement processing (in other words, placement operation) to place the object OBJ at a desired position using the end effector 13 that is capable of performing holding processing and release processing. For example, the robot 1 uses the end effector 13 to hold a first object OBJ, and then transfers the first object OBJ held by the end effector 13 to a second object OBJ different from the first object OBJ. You may also perform placement processing to place it at a desired position.
  • placement processing in other words, placement operation
  • the robot 1 uses an end effector 13 capable of performing a holding process and a release process to perform a fitting process (in other words, a fitting process) for fitting the first object OBJ into a second object OBJ that is different from the first object OBJ.
  • a fitting operation may be performed.
  • the robot 1 uses the end effector 13 to hold a first object OBJ, and then transfers the first object OBJ held by the end effector 13 to a second object OBJ different from the first object OBJ.
  • An inset process may be performed to fit it in.
  • the object OBJ on which the end effector 13 performs predetermined processing may include a workpiece W, as shown in FIG. 2.
  • the work W may include, for example, parts or members used to manufacture a desired product.
  • the work W may include, for example, parts or members that are processed to manufacture a desired product.
  • the work W may include, for example, parts or members that are transported to manufacture a desired product.
  • the object OBJ on which the end effector 13 performs predetermined processing may include a mounting device T on which a workpiece W is mounted, as shown in FIG.
  • An example of the mounting device T is a pallet.
  • the mounting device T may be arranged on the support surface S.
  • the mounting device T may be fixed to the support surface S.
  • the mounting device T may be movable with respect to the support surface S.
  • the mounting device T may be able to move on the support surface S by itself.
  • FIG. 2 shows an example in which the mounting device T can move on the support surface S by itself.
  • the mounting device T may be called an automatic guided vehicle (AGV).
  • AGV automatic guided vehicle
  • the movable mounting device T may be able to function as a moving device that moves the workpiece W.
  • a belt conveyor may be used as the mounting device T.
  • the object OBJ does not need to include the mounting device T.
  • the self-propelled device capable of self-propelled on the support surface S and the pallet may be separate bodies.
  • the pallet may be installed on a self-propelled device.
  • a device including both a self-propelled device and a pallet may be referred to as a mounting device T.
  • the object OBJ may not include at least one of the self-propelled device and the pallet.
  • a self-propelled device may also be referred to as an automated guided vehicle.
  • the mounting device T may be able to fly on the support surface S.
  • the mounting device T may be referred to as an unmanned aerial vehicle.
  • the flight device capable of flying over the support surface S and the pallet may be separate bodies.
  • the pallet may be installed on the flight device.
  • a device including a flying device and a pallet may be referred to as a mounting device T.
  • a flying device may also be referred to as an unmanned aerial vehicle.
  • the workpiece W does not need to be placed on the placement device T.
  • the workpiece W may be placed on the support surface S.
  • the above-mentioned holding process includes processing for holding the workpiece W placed on a stationary or moving mounting device T.
  • the above-described holding process may include a process of holding the workpiece W placed on the support surface S.
  • the above-mentioned release process is performed in order to place the workpiece W held by the end effector 13 at a desired position on the stationary or moving mounting device T. It may also include processing to release.
  • the release process described above may include a process of releasing the workpiece W held by the end effector 13 in order to place the workpiece W held by the end effector 13 at a desired position on the support surface S. .
  • the above-described release process is performed in order to fit the first workpiece W held by the end effector 13 into the second workpiece W placed on the stationary or moving mounting device T.
  • the process may include a process of releasing the first workpiece W held by the end effector 13.
  • the above-described release process is performed in order to fit the first workpiece W held by the end effector 13 into the second workpiece W placed on the support surface S.
  • the process may include a process of releasing the work W of .
  • the robot control device 14 controls the operation of the robot 1.
  • the robot control device 14 may control the operation of the robot arm 12.
  • the robot controller 14 may control the operation of the robot arm 12 such that a desired link 121 rotates around an axis defined by a desired joint 122.
  • the robot control device 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.
  • the robot control device 14 may control the operation of the robot arm 12 so that the end effector 13 attached to the robot arm 12 moves to a desired position.
  • the robot control device 14 may also control the operation of the end effector 13 attached to the robot 1.
  • the robot control device 14 may control the operation of the end effector 13 so that the end effector 13 holds the object OBJ at a desired timing. That is, the robot control device 14 may control the operation of the end effector 13 so that the end effector 13 performs the holding process at a desired timing.
  • the robot control device 14 may control the operation of the end effector 13 so that the end effector 13 releases the object OBJ held at a desired timing. That is, the robot control device 14 may control the operation of the end effector 13 so that the end effector 13 performs the release process at a desired timing.
  • the robot control device 14 may control the timing at which the hand gripper opens and closes.
  • the robot control device 14 may control the timing of turning on and off the vacuum device of the vacuum gripper.
  • FIG. 2 shows an example in which the robot 1 is a robot arm 12 (that is, a vertically articulated robot).
  • the robot 1 may be a robot different from the vertically articulated robot.
  • the robot 1 may be a SCARA robot (that is, a horizontal articulated robot).
  • the robot 1 may be a parallel link robot.
  • the robot 1 may be a dual-arm robot including two robot arms 12.
  • the robot 1 may be a Cartesian coordinate robot.
  • the robot 1 may be a cylindrical coordinate robot.
  • the robot 1 may also be referred to as a mobile device.
  • the mobile device may include at least one of an automatic guided vehicle and an unmanned aerial vehicle.
  • the robot 1 may be installed in at least one of an automatic guided vehicle and an unmanned aircraft.
  • the imaging unit 2 images the object OBJ.
  • the imaging unit 2 includes an imaging device 21, an imaging device 22, and a projection device 23. Note that the imaging unit 2 may be referred to as an imaging section.
  • the imaging device 21 is a camera that can image the object OBJ.
  • the imaging device 21 generates image data IMG_2D by imaging the object OBJ.
  • 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 is capable of imaging the object OBJ 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 that can image the object OBJ 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 that can image the object OBJ.
  • the imaging device 22 is a stereo camera.
  • the imaging device 22 is a stereo camera that can image the object OBJ using two monocular cameras (in other words, two imaging elements).
  • the imaging device 22 generates image data IMG_3D by imaging the object OBJ.
  • the imaging device 22 since the imaging device 22 is a stereo camera, the imaging device 22 generates image data IMG_3D including two pieces of image data respectively generated by two monocular cameras.
  • 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 that can irradiate projection light onto the object OBJ.
  • the projection device 23 is a device that can project a desired projection pattern onto the object OBJ by irradiating the object OBJ with projection light.
  • the desired projection pattern may include, for example, a random pattern.
  • the random pattern may be a projection pattern having a different pattern for each unit irradiation area.
  • the random pattern may include a random dot pattern.
  • the desired projection pattern may include, for example, a one-dimensional or two-dimensional grid pattern.
  • the desired projection pattern may include other projection patterns.
  • the imaging device 22 images the object OBJ onto which the projection pattern from the projection device 23 is projected.
  • the object OBJ on which the projection pattern is projected is reflected in the image indicated by the image data IMG_3D.
  • the imaging device 21 does not need to image the object OBJ onto which the projection pattern is projected.
  • the imaging device 21 may image an object OBJ on which no projection pattern is projected.
  • the object OBJ on which the projection pattern is projected does not need to be reflected in the image indicated by the image data IMG_2D.
  • the image indicated by the image data IMG_2D may include an object OBJ on which no projection pattern is projected.
  • the projection light for projecting a desired projection pattern onto the object OBJ may be referred to as pattern light or structured light.
  • the projection light may include pattern light or structured light.
  • the projection device 23 may consider that by irradiating the object OBJ with the projection light, the projection device 23 illuminates the object OBJ with the projection light. In this case, the projection device 23 may be able to function as a lighting device that illuminates the object OBJ.
  • the projection light may be referred to as illumination light.
  • the projection light does not need to be light that can project a desired projection pattern onto the object OBJ.
  • the imaging unit 2 like the end effector 13, is provided on the robot arm 12. 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 similarly to the end effector 13.
  • the imaging devices 21 and 22 and the projection device 23 are movable by the movement of the 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 does not need to be provided on the robot arm 12.
  • the imaging unit 2 may be provided at any position where it can irradiate the object OBJ with projection light and image the object OBJ.
  • at least one of the imaging device 21 , the imaging device 22 , and the projection device 23 is provided on the robot arm 12
  • at least one other of the imaging device 21 , the imaging device 22 , and the projection device 23 is provided on the robot arm 12 . They may be provided at different locations.
  • at least one of the imaging device 21 and the imaging device 22 is provided at a location different from the robot arm 12, at least one of the imaging device 21 and the imaging device 22 is installed on a pillar or the like arranged so as to be able to image the object OBJ.
  • the projection device 23 may be installed in a structure. Further, when the projection device 23 is installed at a different location from the robot arm 12, the projection device 23 may be installed on a structure such as a pillar arranged so as to be able to irradiate the object OBJ with projection light. .
  • the imaging devices 21 and 22 may image the object OBJ in synchronization with each other.
  • the imaging devices 21 and 22 may simultaneously image the object OBJ.
  • the imaging devices 21 and 22 image the object OBJ so that the 2D imaging time when the imaging device 21 images the object OBJ and the 3D imaging time when the imaging device 22 images the object OBJ are the same time.
  • the imaging devices 21 and 22 have a 2D imaging time at which the imaging device 21 images the object OBJ to generate image data IMG_2D, and a 3D imaging time at which the imaging device 22 images the object OBJ to generate the image data IMG_3D.
  • the object OBJ may be imaged so that the times are the same.
  • the imaging devices 21 and 22 may image the object OBJ under the control of the control device 3.
  • the time (in other words, timing) at which each of the imaging devices 21 and 22 images the object OBJ may be controlled by the control device 3.
  • the control device 3 may control the imaging devices 21 and 22 so that the imaging devices 21 and 22 image the object OBJ in synchronization with each other.
  • the control device 3 may control the imaging devices 21 and 22 so that the imaging devices 21 and 22 simultaneously capture images of the object OBJ. That is, the control device 3 may control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are the same time.
  • the state that "the 2D imaging time and the 3D imaging time are the same time” may include the state that "the 2D imaging time and the 3D imaging time are literally the same time”.
  • the state where "2D imaging time and 3D imaging time are the same” means "2D imaging time and 3D imaging time are not exactly the same time, but the time difference between 2D imaging time and 3D imaging time is It may also include a state in which the 2D imaging time and the 3D imaging time can be considered to be substantially the same time because the deviation is smaller than the allowable upper limit.
  • the allowable upper limit value may be an allowable upper limit value based on a control error of the robot arm 12.
  • an error occurs in the calculation result of at least one of the position and orientation of the object OBJ, which will be described later, due to a time difference between the 2D imaging time and the 3D imaging time (in other words, at least one of the calculated position and orientation of the object OBJ is There are cases where the accuracy of one side decreases).
  • an error in the calculation of at least one of the position and orientation of the object OBJ may cause a control error in the robot arm 12.
  • a control error of the robot arm 12 becomes a movement error of the end effector 13, and the end effector 13 may not be able to appropriately perform a predetermined process on the object OBJ.
  • the allowable upper limit value may be considered to be equivalent to the allowable upper limit value of the movement error of the end effector 13 by the robot arm 12. For example, even if there is a time difference between the 2D imaging time and the 3D imaging time due to a synchronization error in the imaging processing of the imaging devices 21 and 22, the 2D imaging time and the 3D imaging time are substantially the same time. It may be considered that Note that the synchronization error in the imaging processing of the imaging devices 21 and 22 may be a synchronization control error in the imaging processing of the imaging devices 21 and 22 by the control device 3.
  • the imaging devices 21 and 22 do not need to simultaneously image the object OBJ.
  • the imaging devices 21 and 22 are configured to image the object OBJ so that the 2D imaging time when the imaging device 21 images the object OBJ and the 3D imaging time when the imaging device 22 images the object OBJ are different times. good.
  • the state where "2D imaging time and 3D imaging time are different times" means “2D imaging time and 3D imaging time are different because the time difference between 2D imaging time and 3D imaging time is larger than the allowable upper limit value.” may include a state in which the two cannot be considered to be at substantially the same time.
  • the imaging devices 21 and 22 when the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are relatively displaced, the imaging devices 21 and 22 The object OBJ may be imaged so that the imaging time and the 3D imaging time are the same time. That is, when the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are relatively displaced, the control device 3 controls the 2D imaging time and the 3D imaging time. The imaging devices 21 and 22 may be controlled so that the times are the same. The reason for this will be explained again when explaining the effects of the robot system SYS.
  • each of the imaging devices 21 and 22 and the object OBJ are relatively displaced means a state in which the relative positional relationship between each of the imaging devices 21 and 22 and the object OBJ is changing. You can leave it there.
  • the state in which each of the imaging devices 21 and 22 and the object OBJ are relatively displaced may mean the state in which each of the imaging devices 21 and 22 and the object OBJ are moving relative to each other.
  • the imaging devices 21 and 22 capture the 2D imaging time. It is not necessary to image the object OBJ so that the 3D imaging time and the 3D imaging time are the same time. That is, the control device 3 does not have to control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are the same time.
  • the imaging devices 21 and 22 may image the object OBJ such that the 2D imaging time and the 3D imaging time are different times. That is, the control device 3 may control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are different times.
  • each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced includes the state where the relative positional relationship between each of the imaging devices 21 and 22 and the object OBJ is not changed. You can stay there.
  • the state in which each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced may include the state in which each of the imaging devices 21 and 22 and the object OBJ are not moved relative to each other.
  • the state in which each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced may include a state in which each of the imaging devices 21 and 22 and the object OBJ are stationary.
  • the imaging devices 21 and 22 when the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced, the imaging devices 21 and 22 change the 2D imaging time and the object OBJ.
  • the object OBJ may be imaged so that the 3D imaging time is the same time. That is, the control device 3 may control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are the same time.
  • the control device 3 performs robot control processing.
  • the robot control process includes a process of generating a robot control signal for controlling the robot 1.
  • the control device 3 generates a robot control signal based on the image data IMG_2D and IMG_3D output from the imaging unit 2.
  • the control device 3 calculates at least one of the position and orientation of the object OBJ in the global coordinate system of the robot system SYS based on the image data IMG_2D and IMG_3D, and calculates the calculated position and orientation of the object OBJ in the global coordinate system of the robot system SYS.
  • a robot control signal is generated based on at least one of the following.
  • the global coordinate system is a coordinate system that serves as a reference for the robot system SYS.
  • the global coordinate system may be a coordinate system that serves as a reference for the robot 1. Note that when the global coordinate system is a coordinate system that serves as a reference for the robot 1, the global coordinate system may be referred to as a robot coordinate system.
  • control device 3 may perform end effector processing.
  • the end effector control process may include a process of generating an end effector control signal for controlling the end effector 13. Specifically, the control device 3 may generate the end effector control signal based on at least one of the calculated position and orientation of the object OBJ.
  • the end effector process may or may not be included in the robot control process. That is, the end effector control signal generated by the control device 3 may or may not be included in the robot control signal.
  • robot control processing may mean processing for generating at least one of a robot control signal and an end effector control signal.
  • the robot control signal may mean at least one of a signal for controlling the robot 1 and a signal for controlling the end effector 13.
  • robot control signal may also be simply referred to as a control signal.
  • control device 3 uses image data IMG_2D and IMG_3D in a coordinate system different from the global coordinate system of the robot system SYS (for example, in a 2D imaging coordinate system, a 3D imaging coordinate system, or a common coordinate system, which will be described later).
  • the robot control signal may be generated based on at least one of the calculated position and orientation of the object OBJ.
  • 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 a 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 based on the robot control signal generated by the control device 3. Therefore, the robot control signal may include a signal for controlling the operation of the robot 1.
  • the robot control signal may include a signal for controlling the robot arm 12. That is, the robot arm 12 may be controlled by the robot control signal.
  • the robot control device 14 may control the operation of the robot arm 12 based on the robot control signal.
  • the robot control device 14 may control the operation of the robot arm 12 by controlling the drive of an actuator built into the joint 122 based on the robot control signal.
  • the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 13 is positioned at a desired position.
  • the robot control signals may include signals for controlling the robot arm 12 so that the end effector 13 moves to a desired position.
  • the robot control signal may include a signal for controlling the robot arm 12 so that the positional relationship between the end effector 13 and the object OBJ becomes a desired positional relationship.
  • the robot control device 14 may control the robot arm 12 based on the robot control signal so that the end effector 13 is located at a desired position.
  • the robot control device 14 may control the robot arm 12 so that the end effector 13 moves to a desired position based on the robot control signal.
  • the robot control device 14 may control the robot arm 12 based on the robot control signal so that the positional relationship between the end effector 13 and the object OBJ becomes a desired positional relationship.
  • the robot control signal causes the end effector 13 to move toward a holding position where the end effector 13 can hold the object OBJ ( In other words, it may include a signal for controlling the robot arm 12 to move closer. That is, the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 13 is located at the holding position.
  • the robot control device 14 may control the robot arm 12 so that the end effector 13 moves toward (that is, approaches) the holding position based on the robot control signal. That is, the robot control signal may control the robot arm 12 so that the end effector 13 is located in the holding position.
  • the robot control signal when performing a holding process to release the object OBJ held by the end effector 13, causes the end effector 13 to release the object OBJ held by the end effector 13. It may also include signals for controlling the robot arm 12 to move toward (ie, approach) the desired release position. That is, the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 13 is located at the release position. In this case, the robot control device 14 may control the robot arm 12 so that the end effector 13 moves toward (that is, approaches) the release position based on the robot control signal. That is, the robot control signal may control the robot arm 12 so that the end effector 13 is located at the release position.
  • the robot control signal may include a signal for controlling the end effector 13 (that is, an end effector control signal) in addition to or instead of a signal for controlling the robot arm 12. That is, the end effector 13 may be controlled by the robot control signal.
  • the robot control device 14 may control the operation of the end effector 13 based on the robot control signal.
  • the robot control device 14 may control the operation of the end effector 13 by controlling the drive of an actuator that moves a hand gripper that constitutes the end effector 13 based on the robot control signal.
  • the robot control device 14 may control the operation of the end effector 13 by controlling the drive of a vacuum device of a vacuum gripper that constitutes the end effector 13 based on the robot control signal.
  • the robot control signal controls the end effector 13 so that the end effector 13 located at the above-mentioned holding position holds the object OBJ. It may also include a signal to do so. In this case, the robot control device 14 may control the end effector 13 based on the robot control signal so that the end effector 13 located at the holding position holds the object OBJ.
  • the robot control signal The end effector 13 may include a signal for controlling the end effector 13 to release the end effector 13 .
  • the robot control device 14 may control the end effector 13 to release the object OBJ held by the end effector 13 located at the release position based on the robot control signal.
  • the robot control signal may include a signal that can be used as is by the robot control device 14 to control the operation of the robot 1.
  • the robot control signal may include a signal that can be used as is as a robot drive signal used by the robot control device 14 to control the operation of the robot 1.
  • the robot control device 14 may control the operation of the robot 1 using the robot control signal as it is.
  • 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, and the robot control device 14 uses the robot control signal generated by the control device 3 as it is to control the robot.
  • An actuator built into the joint 122 of the arm 12 may be controlled.
  • the robot control signals may include signals that can be directly used by the robot controller 14 to control the operation of the end effector 13.
  • the robot control signal may include a signal that can be used as is as an end effector drive signal used by the robot control device 14 to control the operation of the end effector 13.
  • the control device 3 generates a drive signal (end effector drive signal) for an actuator that moves the hand gripper constituting the end effector 13 as a robot control signal, and the robot control device 14
  • the actuator of the end effector 13 may be controlled using the robot control signal as is.
  • control device 3 generates a drive signal (end effector drive signal) for driving the vacuum device of the vacuum gripper that constitutes the end effector 13 as a robot control signal
  • robot control device 14 generates a
  • the vacuum device of the end effector 13 may be controlled using the robot control signal as it is.
  • the robot control signal is a signal that can be used as is by the robot controller 14 to control the operation of the robot 1, and a signal that can be used as is by the robot controller 14 to control the operation of the end effector 13. If the robot 1 includes a possible signal, the robot 1 does not need to be equipped with the robot control device 14.
  • the robot control signal may include a signal that can be used by the robot control device 14 to generate a robot drive signal for controlling the operation of the robot 1.
  • the robot control device 14 generates a robot drive signal for controlling the motion of the robot 1 based on the robot control signal, and controls the motion of the robot 1 based on the generated robot drive signal.
  • the robot control device 14 generates a drive signal for the actuator built in the joint 122 of the robot arm 12 based on the robot control signal, and based on the generated signal, the drive signal for the actuator built in the joint 122 of the robot arm 12 is generated. Actuators may also be controlled.
  • the robot control signal may include a signal that can be used by the robot controller 14 to generate an end effector drive signal for controlling the operation of the end effector 13.
  • the robot control device 14 generates an end effector drive signal for controlling the operation of the end effector 13 based on the end effector control signal, and operates the end effector 13 based on the generated end effector drive signal. may be controlled.
  • the robot control device 14 may generate a drive signal for the actuator or vacuum device of the end effector 13 based on the robot control signal, and control the actuator or vacuum device of the end effector 13 based on the generated signal. good.
  • the signal that can be used by the robot control device 14 to generate the robot drive signal may be a signal that represents the position of the object OBJ in the global coordinate system.
  • the robot control device 14 controls the robot 1 (end effector A drive signal is generated for the actuator built in the joint 122 of the robot arm 12 so that the positional relationship between the robot arm 13) and the object OBJ becomes a desired positional relationship, and the robot arm 12 is operated based on the generated drive signal. may be controlled.
  • the signal that can be used by the robot control device 14 to generate the robot drive signal may be a signal that represents the desired positional relationship between the robot 1 and the object OBJ in the global coordinate system.
  • the robot control device 14 controls the robot based on the robot control signal so that the positional relationship between the robot 1 (end effector 13) and the object OBJ becomes the desired positional relationship expressed by the robot control signal.
  • a drive signal for an actuator built into the joint 122 of the arm 12 may be generated, and the operation of the robot arm 12 may be controlled based on the generated drive signal.
  • the signals that can be used by robot controller 14 to generate robot drive signals may include signals representing the desired position of end effector 13 in the global coordinate system.
  • the robot control device 14 controls the robot 1 (end effector 13) and the object OBJ based on the robot control signal so that the end effector 13 is located at the desired position indicated by the robot control signal.
  • a drive signal is generated for the actuator built in the joint 122 of the robot arm 12 so that the positional relationship between the good.
  • the robot control device 14 causes the end effector 13 to move to a holding position where the end effector 13 can hold the object OBJ located at the position indicated by the robot control signal, based on the robot control signal.
  • a drive signal for an actuator built into the joint 122 of the robot arm 12 may be generated, and the operation of the robot arm 12 may be controlled based on the generated drive signal.
  • the robot control device 14 causes the end effector 13 holding the object OBJ located at the position indicated by the robot control signal to move away from the position where the object OBJ was placed.
  • a drive signal for an actuator built in the joint 122 of the robot arm 12 may be generated, and the operation of the robot arm 12 may be controlled based on the generated drive signal.
  • the signals that can be used by the robot control device 14 to generate the robot drive signal may include, for example, a signal representing the desired position of the tip of the robot arm 12 in the global coordinate system, or a signal that represents the desired position of the tip of the robot arm 12 in the global coordinate system. It may also include a signal representing the desired position of the imaging unit 2 in the system.
  • the reference coordinate system for 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 a calculation device 31, a storage device 32, and a communication device 33. Furthermore, the control device 3 may include an input device 34 and an output device 35. However, the control device 3 does not need to include at least one of the input device 34 and the output device 35.
  • the arithmetic device 31, the storage device 32, the communication device 33, the input device 34, and the output device 35 may be connected via a data bus 36.
  • the arithmetic unit 31 is, for example, one of a CPU (Central Processing Unit), a GPU (Graphics Processing Unit), and an FPGA (Field Programmable Gate Array). Contains at least one.
  • Arithmetic device 31 reads a computer program.
  • the arithmetic device 31 may read a computer program stored in the storage device 32.
  • the arithmetic 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 arithmetic device 31 may obtain (that is, download) a computer program from a device (not shown) located outside the control device 3 via the communication device 33 (or other communication device). (or you can load it).
  • the arithmetic device 31 executes the loaded computer program.
  • a logical functional block is realized for executing the processing that the control device 3 should perform (for example, the robot control processing described above). That is, the arithmetic device 31 can function as a controller for realizing a logical functional block for executing the processing that the control device 3 should perform.
  • a calculation model that can be constructed by machine learning may be implemented in the calculation device 31 by the calculation device executing a computer program.
  • An example of a calculation model that can be constructed by machine learning is a calculation model that includes a neural network (so-called artificial intelligence (AI)).
  • learning the computational model may include learning parameters (eg, at least one of weights and biases) of the neural network.
  • the calculation device 31 may use the calculation model to execute robot control processing. That is, the operation of executing the robot control process may include the operation of executing the robot control process using a calculation model.
  • the calculation device 31 may be equipped with a calculation model that has been constructed by offline machine learning using teacher data. Further, the calculation model installed in the calculation device 31 may be updated by online machine learning on the calculation device 31.
  • the calculation device 31 may use a calculation model installed in a device external to the calculation device 31 (that is, a device provided outside the control device 3) in addition to or in place of the calculation model installed in the calculation device 31.
  • the robot control process may be performed using the .
  • recording media for recording computer programs executed by the arithmetic unit 31 include CD-ROM, CD-R, CD-RW, flexible disk, MO, DVD-ROM, DVD-RAM, DVD-R, DVD+R, and DVD.
  • optical disks such as RW, DVD+RW and Blu-ray (registered trademark)
  • magnetic media such as magnetic tape, magneto-optical disks, semiconductor memories such as USB memory, and any other arbitrary medium capable of storing programs is used. It's okay to be hit.
  • 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 an executable state in the form of at least one of software and firmware).
  • each process or function included in the computer program may be realized by a logical processing block that is realized in the arithmetic device 31 when the arithmetic device 31 (that is, a computer) executes the computer program, or It may be realized by hardware such as a predetermined gate array (FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit)) included in the arithmetic unit 31, or a logical processing block. and some of the hardware It may also be realized in a mixed format with partial hardware modules that realize the elements.
  • FPGA Field Programmable Gate Array
  • ASIC Application Specific Integrated Circuit
  • FIG. 3 shows an example of logical functional blocks implemented within the arithmetic unit 31 to execute robot control processing.
  • a three-dimensional position data generation section 311, a position/orientation calculation section 312, and a signal generation section 313 are implemented within the arithmetic device 31. Note that the processing performed by each of the three-dimensional position data generation section 311, position/orientation calculation section 312, and signal generation section 313 will be described in detail later with reference to FIG. 4, etc., so a description thereof will be omitted here.
  • the storage device 32 can store desired data.
  • the storage device 32 may temporarily store a computer program executed by the arithmetic device 31.
  • the storage device 32 may temporarily store data that is temporarily used by the arithmetic device 31 when the arithmetic device 31 is executing a computer program.
  • the storage device 32 may store data that the control device 3 stores for a long period of time.
  • the storage device 32 may include at least one of a RAM (Random Access Memory), a ROM (Read Only Memory), a hard disk device, a magneto-optical disk device, an SSD (Solid State Drive), and a disk array device. good. That is, the storage device 32 may include a non-temporary recording medium.
  • the communication device 33 is capable of communicating 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 the present embodiment, the communication device 33 may receive (that is, acquire) the 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. Note that the communication device 33 that outputs the robot control signal to the robot 1 may be referred to as an output section.
  • the input device 34 is a device that accepts input of information to the control device 3 from outside the control device 3.
  • the input device 34 may include an operating device (for example, at least one of a keyboard, a mouse, and a touch panel) that can be operated by a 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 as data to the control device 3 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 information input 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 the information as an image. That is, the output device 35 may include a display device (so-called display) capable of displaying an image.
  • the output device 35 may output the information as audio. That is, the output device 35 may include an audio device (so-called speaker) that can output audio.
  • the output device 35 may output information on paper. That is, the output device 35 may include a printing device (so-called printer) that can print 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 image data IMG_2D from the imaging device 21 (step S1). Specifically, the imaging device 21 images the object OBJ at a predetermined 2D imaging rate. For example, the imaging device 21 may image the object OBJ at a 2D imaging rate that images the object OBJ several tens to hundreds of times (as an example, 500 times) per second. As a result, the imaging device 21 generates image data IMG_2D at a cycle according to the predetermined 2D imaging rate. For example, the imaging device 21 may generate several tens to hundreds of pieces of image data IMG_2D (500 pieces as an example) per second. The control device 3 acquires the image data IMG_2D each time the imaging device 21 generates the image data IMG_2D. That is, the control device 3 may acquire several dozen to several hundred (for example, 500) pieces of image data IMG_2D per second.
  • the imaging device 21 may image other objects different from the object OBJ. For example, if both the object OBJ and the other object are included in the imaging range (field of view) of the imaging device 21, the imaging device 21 may image both the object OBJ and the other object. . As a result, the imaging device 21 may generate image data IMG_2D representing an image in which both the object OBJ and another object are reflected.
  • the control device 3 further uses the communication device 33 to obtain image data IMG_3D from the imaging device 22 (step S1). Specifically, the imaging device 22 images the object OBJ at a predetermined 3D imaging rate.
  • the 3D imaging rate is the same as the 2D imaging rate. However, the 3D imaging rate may be different from the 2D imaging rate.
  • the imaging device 22 may image the object OBJ at a 3D imaging rate that images the object OBJ several tens to hundreds of times (as an example, 500 times) per second. As a result, the imaging device 22 generates image data IMG_3D at a cycle according to the predetermined 3D imaging rate.
  • the imaging device 22 may generate several tens to hundreds (500 pieces of image data, for example) of image data IMG_3D per second.
  • the control device 3 acquires the image data IMG_3D each time the imaging device 22 generates the image data IMG_3D. That is, the control device 3 may acquire several dozen to several hundred (500 pieces of image data as an example) image data IMG_3D per second.
  • the imaging device 22 may image other objects different from the object OBJ. For example, if both the object OBJ and the other object are included in the imaging range (field of view) of the imaging device 22, the imaging device 22 may image both the object OBJ and the other object. . As a result, the imaging device 22 may generate image data IMG_3D representing an image in which both the object OBJ and another object are reflected.
  • the three-dimensional position data generation unit 311 Each time the control device 3 acquires image data IMG_3D, the three-dimensional position data generation unit 311 generates three-dimensional position data WSD based on the acquired image data IMG_3D (step S2). Further, the three-dimensional position data generation unit 311 outputs the generated three-dimensional position data WSD to the position and orientation calculation unit 312.
  • the three-dimensional position data WSD is data indicating the three-dimensional position of the object OBJ reflected in the image data IMG_3D.
  • the three-dimensional position data WSD may be data indicating the three-dimensional position of at least a portion of the surface of the object OBJ.
  • the three-dimensional position data WSD is data indicating the three-dimensional position of each of a plurality of points on the object OBJ.
  • the three-dimensional position data WSD may be data indicating the respective three-dimensional positions of multiple points on the surface of the object OBJ.
  • the three-dimensional position data WSD may be data indicating the respective three-dimensional positions of a plurality of points corresponding to a plurality of parts on the surface of the object OBJ.
  • the object OBJ on which the projection pattern is projected is reflected in the image indicated by the image data IMG_3D.
  • the projection pattern reflected in the image indicated by the image data IMG_3D reflects the three-dimensional shape of at least a portion of the surface of the object OBJ on which the projection pattern is projected.
  • the shape of the projection pattern reflected in the image indicated by the image data IMG_3D reflects the three-dimensional shape of at least a portion of the surface of the object OBJ on which the projection pattern is projected.
  • the three-dimensional position data generation unit 311 can calculate the three-dimensional shape of at least a portion of the surface of the object OBJ based on the projection pattern reflected in the image indicated by the image data IMG_3D.
  • the three-dimensional shape of at least a portion of the surface of object OBJ substantially indicates the three-dimensional position of each of a plurality of points on object OBJ. This is because each of the plurality of points of object OBJ is included in the surface of object OBJ. Therefore, the process of calculating the three-dimensional shape of at least a portion of the surface of the object OBJ is considered to be substantially equivalent to the process of calculating the three-dimensional position of each of the plurality of points on the object OBJ. It's okay. Therefore, the three-dimensional position data generation unit 311 can generate the three-dimensional position data WSD based on the image data IMG_3D.
  • the three-dimensional position data WSD indicating the three-dimensional position of each of the plurality of points of the object OBJ is substantially equal to the three-dimensional position data WSD of the plurality of points of the object OBJ.
  • the three-dimensional position data generation unit 311 associates each part (for example, each pixel) of the images indicated by each of the two image data included in the image data IMG_3D. Parallax may also be calculated. Specifically, in this association, the three-dimensional position data generation unit 311 generates each part of the projection pattern reflected in the image indicated by each of the two image data (that is, the projection pattern reflected in each image). The parallax may be calculated by associating each part of the image. The three-dimensional position data generation unit 311 may calculate the three-dimensional position of each of the plurality of points of the object OBJ using a well-known method based on the principle of triangulation using the calculated parallax.
  • three-dimensional position data WSD indicating the three-dimensional positions of each of the plurality of points on the object OBJ is generated.
  • the accuracy of parallax calculation becomes higher. Therefore, the accuracy of the generated three-dimensional position data WSD (that is, the calculation accuracy of the three-dimensional positions of each of the plurality of points on the object OBJ) becomes higher.
  • the three-dimensional position data WSD may be any data as long as it can indicate the three-dimensional position of each of the plurality of points on the object OBJ. That is, the three-dimensional position data WSD may be any data that directly or indirectly indicates the three-dimensional position of each of the plurality of points on the object OBJ.
  • the three-dimensional position data WSD may include coordinate information indicating the three-dimensional position of each of a plurality of points on the object OBJ.
  • the three-dimensional position data WSD may include information indicating the three-dimensional shape of at least a portion of the object OBJ.
  • the three-dimensional position data generation unit 311 also sequentially generates the plurality of three-dimensional position data WSD from the plurality of image data IMG_3D.
  • the three-dimensional position data WSD generated from the image data IMG_3D at one time may indicate the three-dimensional position of each of the plurality of first points of the object OBJ.
  • the three-dimensional position data WSD generated from the image data IMG_3D at another time different from the one time may indicate the three-dimensional position of each of the plurality of second points of the object OBJ.
  • the plurality of first points of the object OBJ may be the same as the plurality of second points of the object OBJ.
  • at least one of the plurality of first points of the object OBJ may be different from at least one of the plurality of second points of the object OBJ.
  • Depth image data is image data in which depth information is associated with each pixel of a depth image indicated by the depth image data in addition to brightness information.
  • the depth information is information indicating the distance (that is, the depth) between each part of the object OBJ reflected in each pixel and the imaging device 22.
  • the depth image data may be image data in which the brightness information of each pixel indicates the depth of each part of the object OBJ (that is, the distance between each part of the object OBJ and the imaging device 22).
  • the three-dimensional position data generation unit 311 determines the distance between each part of the object OBJ reflected in the image indicated by image data IMG_3D and the imaging device 22 based on the projection pattern reflected in the image indicated by image data IMG_3D.
  • a depth image may be generated by calculating a distance and associating each pixel of the image indicated by the image data IMG_3D with the calculated distance as depth information.
  • the point cloud data is data indicating a set in a three-dimensional space of points corresponding to each part of the object OBJ reflected in the image indicated by the image data IMG_3D.
  • the three-dimensional position data generation unit 311 may generate point cloud data based on the depth image data and camera parameters of the imaging device 22.
  • the three-dimensional position data WSD is generated based on the image data IMG_3D, it may be data indicating the three-dimensional position of the object OBJ in a 3D imaging coordinate system, which will be described later.
  • the image data IMG_3D is An image in which both object OBJ and another object are reflected is shown.
  • the three-dimensional position data WSD may be data indicating not only the three-dimensional position of the object OBJ reflected in the image data IMG_3D but also the three-dimensional position of other objects reflected in the image data IMG_3D. good.
  • the three-dimensional position data WSD includes data indicating the three-dimensional position of the object OBJ
  • the three-dimensional position data WSD indicates the three-dimensional position of each of the plurality of points on the object OBJ. It may be considered as data. This is because even if data indicating the three-dimensional position of another object is included in the three-dimensional position data WSD, data indicating the three-dimensional position of object OBJ is included in the three-dimensional position data WSD. This is because there is no difference.
  • the position and orientation calculation unit 312 calculates at least one of the position and orientation of the object OBJ based on the image data IMG_2D acquired in step S1 and the three-dimensional position data WSD generated in step S2 (step S3 ). As a result, the position and orientation calculation unit 312 generates position and orientation information POI0 indicating at least one of the position and orientation of the object OBJ (step S3).
  • the position/orientation calculation unit 312 calculates at least one of the position and orientation of the object OBJ in the global coordinate system. That is, the position/orientation calculation unit 312 generates position/orientation information POI0 indicating at least one of the position and orientation of the object OBJ in the global coordinate system.
  • the global coordinate system is a coordinate system that serves as a reference for the robot system SYS. Specifically, the global coordinate system is a coordinate system used to control the robot 1.
  • the robot control device 14 may control the robot arm 12 so that the end effector 13 is located at a desired position within the global coordinate system.
  • the 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 a horizontal plane.
  • the Y axis (GL) may be an axis along a 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. Note that 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. 2.
  • the origin of the global coordinate system may be set at an arbitrary position on the base 11 in FIG. 2.
  • the origin of the global coordinate system may be set at any position on the support surface S.
  • the origin of the global coordinate system may be set at an arbitrary position of the contact surface of the base 11 with respect to the support surface S (for example, the center or center of gravity of the contact surface).
  • the position and orientation calculation unit 312 calculates the position of the object OBJ in the global coordinate system by determining the position Tx (GL) of the object OBJ in the X-axis direction (GL) parallel to the X-axis (GL) and the Y-axis parallel to the Y-axis (GL). At least one of the position Ty (GL) of the object OBJ in the axial direction (GL) and the position Tz (GL) of the object OBJ in the Z-axis direction (GL) parallel to the Z-axis (GL) may be calculated. .
  • the position and orientation calculation unit 312 calculates the rotation amount Rx (GL) of the object OBJ around the X-axis (GL) and the rotation amount Ry (GL) of the object OBJ around the Y-axis (GL) as the orientation of the object OBJ in the global coordinate system. and the amount of rotation Rz(GL) of the object OBJ around the Z-axis (GL). This is because the rotation amount Rx (GL) of the object OBJ around the X-axis (GL), the rotation amount Ry (GL) of the object OBJ around the Y-axis (GL), and the rotation amount Rz of the object OBJ around the Z-axis (GL).
  • GL represents a parameter representing the attitude of the object OBJ around the X-axis (GL), a parameter representing the attitude of the object OBJ around the Y-axis (GL), and an attitude of the object OBJ around the Z-axis (GL), respectively. This is because it is equivalent to the parameter.
  • the rotation amount Rz (GL) of OBJ is determined by the attitude Rx (GL) of the object OBJ around the X-axis (GL), the attitude Ry (GL) of the object OBJ around the Y-axis (GL), and the attitude Ry (GL) of the object OBJ around the Z-axis (GL), respectively.
  • the attitude of the object OBJ is called Rz(GL).
  • the posture Rx (GL) of the object OBJ around the X-axis (GL), the posture Ry (GL) of the object OBJ around the Y-axis (GL), and the posture Rz (GL) of the object OBJ around the Z-axis (GL) are , respectively, indicate the position of the object OBJ in the rotational direction around the X-axis (GL), the position of the object OBJ in the rotational direction around the Y-axis (GL), and the position of the object OBJ in the rotational direction around the Z-axis (GL), respectively. It may be assumed that there is.
  • the posture Rx (GL) of the object OBJ around the X-axis (GL), the posture Ry (GL) of the object OBJ around the Y-axis (GL), and the posture Rz (GL) of the object OBJ around the Z-axis (GL) are , may be regarded as parameters representing the position of the object OBJ.
  • the position and orientation calculation unit 312 calculates the position Tx (GL), the position Ty (GL), and the position Tz (GL) as at least one of the position and orientation of the object OBJ in the global coordinate system. , posture Rx (GL), posture Ry (GL), and posture Rz (GL).
  • the process of calculating at least one of the position and orientation of the object OBJ in the global coordinate system in step S3 in FIG. 4 (that is, the process of generating position and orientation information POI0) will be described in detail later with reference to FIG. 10 etc. Therefore, the explanation here will be omitted.
  • the signal generation unit 313 generates a robot control signal using the position and orientation information POI0 generated in step S3 (step S4).
  • the signal generation unit 313 may generate a robot control signal so that the robot 1 (end effector 13) can perform predetermined processing on the object OBJ.
  • the signal generation unit 313 may generate a robot control signal so that the positional relationship between the robot 1 (end effector 13) and the object OBJ is a desired positional relationship.
  • the signal generation unit 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 (end effector 13) and the object OBJ becomes a desired positional relationship.
  • the signal generation unit 313 generates a robot control signal so that the end effector 13 performs a predetermined process on the object OBJ when the positional relationship between the robot 1 and the object OBJ becomes a desired positional relationship.
  • the signal generation unit 313 performs robot control to control the operation of the end effector 13 so as to perform a predetermined process on the object OBJ when the positional relationship between the robot 1 and the object OBJ reaches a desired positional relationship.
  • a signal may also be generated.
  • the robot control signal for controlling the operation of the end effector 13 may be referred to as an end effector control signal.
  • the signal generation unit 313 may generate a robot control signal under feedback control using the position and orientation information POI0 generated in step S3.
  • the signal generation unit 313 may generate a robot control signal under P (Proportional) control using the position and orientation information POI0.
  • the signal generation unit 313 may generate a robot control signal under PI (Proportional-Integral) control using the position and orientation information POI0.
  • the signal generation unit 313 may generate a robot control signal under PID (Proportional-Integral-Differential) control using the position and orientation information POI0.
  • FIGS. 5(a) to 5(d) shows a mounting device T#1 (that is, an example of an object OBJ) such as an AGV (Automatic Guided Vehicle) moving on a support surface S.
  • FIG. 3 is a side view showing the positional relationship between the robot 1 and the workpiece W at a certain point in time during a period in which a holding process for holding the placed workpiece W (that is, another example of object OBJ) is being performed; .
  • the control device 3 generates position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W to be held, and uses the generated position and orientation information POI0 to generate a robot control signal. Good too.
  • FIG. 1 that is, an example of an object OBJ
  • AGV Automatic Guided Vehicle
  • the signal generation unit 313 generates a robot control signal 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. may be generated. As shown in FIG. 5(b), the signal generation unit 313 enables the end effector 13 located directly above the moving workpiece W to hold the workpiece W while continuing to be located directly above the workpiece W. A robot control signal may be generated to control the operation of the robot arm 12 so as to approach the workpiece W until the distance is reached. As shown in FIG. 5C, the signal generation unit 313 causes the end effector 13 located at a position where it can hold the moving workpiece W to hold the workpiece W while following the moving workpiece W.
  • Robot control signals may be generated to control the operation of the robot arm 12 and end effector 13.
  • the signal generation unit 313 controls the robot arm 12 and the end effector so that the end effector 13 holding the workpiece W is separated from the mounting device T#1 that moves while holding the workpiece W.
  • a robot control signal may be generated to control the operation of 13.
  • the robot 1 uses the end effector 13 to hold the workpiece W placed on the mounting device T#1, the robot 1 places the held workpiece W on a different mounting device than that on the mounting device T#1.
  • a release process may be performed to release the held workpiece W so that it is placed on the device T#2. That is, the robot 1 may perform a placement process (or a fitting process) for placing the workpiece W on the mounting device T#2 by sequentially performing the holding process and the release process.
  • the control device 3 generates position and posture information POI0 indicating at least one of the position and posture of the mounting device T#2 that is the target of the release process, and uses the generated position and posture information POI0 to send robot control signals. may be generated. For example, each of FIGS.
  • FIG. 3 is a side view showing the positional relationship between the robot 1 and the workpiece W at a certain point in time.
  • the signal generation unit 313 causes the end effector 13 holding the work W to move into a space directly above the mounting device T#2 that moves while holding the work W.
  • a robot control signal may be generated to control the operation of the robot arm 12 to move the robot arm 12 to the robot arm 12 . As shown in FIG.
  • the signal generation unit 313 detects that the end effector 13, which is located directly above the moving mounting device T#2 and holds the workpiece W, is directly above the mounting device T#2. In order to control the operation of the robot arm 12 so that it approaches the mounting device T#2 while continuing to be located at and holding the workpiece W until the workpiece W can be placed on the mounting device T#2. robot control signals may be generated. As shown in FIG. 6(c), the signal generation unit 313 causes the end effector 13 located at a position where the workpiece W can be placed on the mounting device T#2 to follow the moving mounting device T#2.
  • the signal generation unit 313 causes the robot arm 12 to move so that the end effector 13, which has finished placing the workpiece W on the mounting device T#2, moves away from the mounting device T#2.
  • a robot control signal may be generated to control the robot.
  • the control device 3 controls the position and position of the mounting device T#2, which is the first target of the release process.
  • position and orientation information POI0 that indicates at least one of the orientations
  • position and orientation information POI0 that represents at least one of the position and orientation of the workpiece W that is the second target of the release process may be further generated.
  • the control device 3 Before the end effector 13 holds the workpiece W, the control device 3 generates position/orientation information POI0 indicating at least one of the position and orientation of the workpiece W not yet held by the end effector 13; After the end effector 13 holds the workpiece W, position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W held by the end effector 13 may be generated.
  • the control device 3 uses the end effector in addition to the position and orientation information POI0 regarding the mounting device T#2.
  • the robot control signal may be generated using position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W held by the robot controller 13. That is, the control device 3 uses the position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W held by the end effector 13 during at least part of the period during which the end effector 13 holds the workpiece W.
  • the robot control signal may be generated using the robot control signal.
  • the signal generation unit 313 generates a robot control signal for controlling the robot arm 12 to move the workpiece W held by the end effector 13 to a desired position (for example, a position where the workpiece W should be released). You may. In this case, the robot 1 can appropriately move the workpiece W held by the end effector 13 to a desired position, compared to the case where the position and orientation information POI0 regarding the workpiece W is not used. This is because the position of the workpiece W held by the end effector 13 becomes known information to the control device 3. Further, for example, the signal generation unit 313 may generate a robot control signal for controlling the end effector 13 so as to change the posture of the workpiece W held by the end effector 13 to a desired posture.
  • a desired position for example, a position where the workpiece W should be released. You may.
  • the robot 1 can appropriately move the workpiece W held by the end effector 13 to a desired position, compared to the case where the position and orientation information POI0 regarding the workpiece W is not used. This is
  • the robot 1 can place or fit the workpiece W in the desired orientation onto the mounting device T using the end effector 13. . This is because at least one of the position and orientation of the work W held by the end effector 13 becomes information known to the control device 3. If the attitude of the workpiece W is not the desired attitude, there is a possibility that the workpiece W will collide with the mounting device T. However, in this embodiment, since the robot 1 can be controlled so that the posture of the work W becomes a desired posture, there is no or low possibility that the work W will collide with the mounting device T.
  • control device 3 controls at least one of the position and orientation of the workpiece W held by the end effector 13.
  • a robot control signal may be generated using position/orientation information POI0 indicating .
  • FIG. 3 is a side view showing the positional relationship between the robot 1 and the workpiece W at a certain point in time during a period of time.
  • the signal generation unit 313 moves the robot arm 12 so that the end effector 13 approaches the workpiece W until it can hold the stationary workpiece W.
  • Robot control signals may be generated to control motion.
  • FIG. 7(b) the signal generation unit 313 controls the robot arm 12 and the end effector so that the end effector 13 located at a position where it can hold the stationary workpiece W holds the workpiece W.
  • a robot control signal may be generated to control the operation of 13.
  • FIGS. 7(c) to 7(e) shows the period during which the release process for placing the workpiece W on the mounting device T#2 which is stationary on the support surface S is being performed.
  • FIG. 3 is a side view showing the positional relationship between the robot 1 and the workpiece W at a certain point in time. In this case, as shown in FIG.
  • the signal generation unit 313 causes the end effector 13 holding the workpiece W to place the workpiece on the stationary mounting device T#2 while holding the workpiece W.
  • a robot control signal may be generated to control the operation of the robot arm 12 so as to approach the mounting device T#2 until the robot arm 12 can be placed.
  • the signal generation unit 313 generates a message that the end effector 13, which is located at a position where the workpiece W can be placed on the mounting device T#2, is placed in the stationary mounting device T#2.
  • a robot control signal may be generated to control the operations of the robot arm 12 and the end effector 13 so as to place the work W on (that is, release the held work W).
  • the signal generation unit 313 causes the robot arm 12 to move so that the end effector 13, which has finished placing the workpiece W on the mounting device T#2, moves away from the mounting device T#2.
  • a robot control signal may be generated to control the robot.
  • a plurality of works W may be placed on the mounting device T#1.
  • a plurality of workpieces W may be placed on the placement device T#1 so that the plurality of workpieces W are lined up on the placement device T#1 with a certain standard.
  • a plurality of workpieces W may be placed on the placement device T#1 so that the plurality of workpieces W are randomly stacked on the placement device T#1.
  • the robot 1 may perform a holding process to selectively hold a desired one of the plurality of works W placed on the mounting device T#1.
  • the robot 1 may perform a holding process to sequentially hold the plurality of works W placed on the mounting device T#1 one by one.
  • the robot 1 may perform a release process to place a plurality of workpieces W on the mounting device T#2.
  • the robot 1 sequentially transfers the plurality of workpieces W placed on the mounting device T#1 one by one to the mounting device T#2 (or further A placement process may also be performed to place the item on a placement device (a placement device).
  • the robot 1 performs a release process to sequentially place the plurality of workpieces W on the mounting device T#2 one by one so that the plurality of workpieces W are lined up on the mounting device T#2 with a certain standard. It's okay.
  • the robot 1 may perform a release process to sequentially place the plurality of works W on the mounting device T#2 one by one so that the plurality of works W are randomly stacked on the mounting device T#2.
  • FIGS. 8(a) to 8(e) and 9(a) to 9(e) shows two workpieces W#1 and W placed on mounting device T#1.
  • FIG. 2 is a side view showing the positional relationship between the robot 1 and the workpiece W at a certain point in time.
  • the signal generation unit 313 determines whether the end effector 13 is capable of handling one of the workpieces W#1 and W#2 (in the example shown in FIG.
  • the workpiece W# 2 A robot control signal may be generated to control the operation of the robot arm 12 so as to approach the workpiece W#2 until it can hold the workpiece W#2.
  • the signal generation unit 313 causes the robot arm 12 and the end effector 13 located at a position where it can hold the workpiece W#2 to A robot control signal for controlling the operation of the end effector 13 may be generated.
  • the signal generation unit 313 causes the end effector 13 holding the workpiece W#2 to place the workpiece W#2 on the mounting device T#2 while holding the workpiece W#2.
  • a robot control signal may be generated to control the operation of the robot arm 12 so as to approach the mounting device T#2 until it is possible to place the robot arm T#2.
  • the signal generation unit 313 causes the end effector 13 located at a position where the workpiece W#2 can be placed on the mounting device T#2 to
  • a robot control signal may be generated to control the operations of the robot arm 12 and the end effector 13 so as to place the work W#2 on (that is, release the held work W#2).
  • the signal generation unit 313 causes the robot to move the end effector 13, which has finished placing the workpiece W#2 onto the mounting device T#2, away from the mounting device T#2.
  • Robot control signals may be generated to control movement of arm 12.
  • the signal generation unit 313 causes the end effector 13 to transmit the remaining one of the workpieces W#1 and W#2 (in the example shown in FIG. 9(a), the workpiece W#1 ) may be generated to control the operation of the robot arm 12 so as to approach the workpiece W#1 until it can hold the workpiece W#1.
  • the signal generation unit 313 causes the robot arm 12 and the end effector 13 located at a position where it can hold the work W#1 to A robot control signal for controlling the operation of the end effector 13 may be generated. Thereafter, as shown in FIG.
  • the signal generation unit 313 causes the end effector 13 holding the workpiece W#1 to transfer the workpiece W#2 to the mounting device T#2 while holding the workpiece W#1.
  • a robot control signal may be generated to control the operation of the robot arm 12 so as to approach the placement device T#2 until it is possible to place #1.
  • the signal generation unit 313 causes the end effector 13 located at a position where the workpiece W#1 can be placed on the mounting device T#2 to A robot control signal may be generated for controlling the operations of the robot arm 12 and the end effector 13 so as to place the work W#1 on (that is, release the held work W#1).
  • the signal generation unit 313 causes the robot to move the end effector 13, which has finished placing the workpiece W#1 onto the mounting device T#2, away from the mounting device T#2.
  • Robot control signals may be generated to control movement of arm 12.
  • the robot 1 may perform a holding process to sequentially hold the plurality of works W placed on the mounting device T#1 moving on the support surface S one by one.
  • the robot 1 may perform a holding process to sequentially hold the plurality of works W placed on the placing device T#1 that is stationary on the support surface S, one by one.
  • the robot 1 may perform a release process in which the plurality of works W are placed one by one on the mounting device T#2 that moves on the support surface S.
  • the robot 1 may perform a release process in which the plurality of works W are placed one by one on the mounting device T#2 that is stationary on the support surface S.
  • 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 control device 14 controls at least one of the operation of the robot 1 (for example, the operation of the robot arm 12) and the operation of 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 to end the robot control process (step S5).
  • control device 3 continues to acquire image data IMG_2D and IMG_3D from the imaging devices 21 and 22, respectively, even during a period when the operation of at least one of the robot arm 12 and the end effector 13 is controlled based on the robot control signal. .
  • each of the imaging devices 21 and 22 is configured to control the object OBJ and the imaging devices 21 and 22
  • the object OBJ may be imaged while moving relative to the object OBJ.
  • each of the imaging devices 21 and 22 may image the object OBJ while the imaging devices 21 and 22 are moving while the object OBJ is stationary.
  • each of the imaging devices 21 and 22 may image the object OBJ while the imaging devices 21 and 22 are stationary while the object OBJ is moving.
  • each of the imaging devices 21 and 22 may image the object OBJ while the object OBJ is moving and the imaging devices 21 and 22 are moving.
  • control device 3 controls the robot shown in FIG. Processing may continue.
  • the control device 3 indicates at least one of the position and orientation of the object OBJ based on the newly acquired image data IMG_2D and IMG_3D even during the period when the operation of the robot 1 is being controlled based on the robot control signal.
  • the position and orientation information POI0 can be newly generated (that is, updated).
  • each of the imaging devices 21 and 22 may image the object OBJ while the object OBJ is stationary and the imaging devices 21 and 22 are stationary.
  • the control device 3 may perform the robot control process shown in FIG. 4 while the imaging devices 21 and 22 and the object OBJ are stationary.
  • the position/orientation calculation unit 312 does not need to calculate at least one of the position and orientation of the object OBJ in the global coordinate system in step S3.
  • the position/orientation calculation unit 312 does not need to generate the position/orientation information POI0 indicating at least one of the position and orientation of the object OBJ in the global coordinate system.
  • the position and orientation calculation unit 312 calculates the object OBJ in a coordinate system different from the global coordinate system (for example, within a 2D imaging coordinate system, a 3D imaging coordinate system, or a common coordinate system, which will be described later). At least one of the position and orientation may be calculated.
  • the position and orientation calculation unit 312 calculates the position and orientation of the object OBJ in a coordinate system different from the global coordinate system (for example, within a 2D imaging coordinate system, a 3D imaging coordinate system, or a common coordinate system, which will be described later).
  • Position and orientation information POI0 indicating at least one may be generated.
  • the signal generation unit 313 generates a robot control signal using position and orientation information POI0 indicating at least one of the position and orientation of the object OBJ in a coordinate system different from the global coordinate system calculated in step S3. may be generated.
  • step S3 of FIG. Details of the process for calculating at least one of the postures (that is, the process for generating the position and posture information POI0) will be described.
  • the position and orientation calculation unit 312 may calculate at least one of the position and orientation of the object OBJ by performing the same operation as the processing for calculating both the position and orientation of the object OBJ.
  • the position/orientation calculation unit 312 performs matching processing using image data IMG_2D and three-dimensional position data WSD, and tracking processing using image data IMG_2D and three-dimensional position data WSD, so that object OBJ Calculate the position and orientation of.
  • FIG. 10 is a block diagram showing logical processing blocks for calculating the position and orientation of object OBJ by performing matching processing and tracking processing.
  • the position and orientation calculation section 312 includes a 2D matching section 3121, a 3D matching section 3122, a tracking section 3123, and a coordinate transformation 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 tracking unit 3123 performs tracking processing.
  • the coordinate conversion unit 3125 performs a position and orientation calculation process that calculates the position and orientation of the object OBJ in the global coordinate system based on the results of the matching process and the tracking process. Therefore, below, 2D matching processing, 3D matching processing, tracking processing, and position calculation processing will be explained in order.
  • the 2D matching unit 3121 calculates the position and orientation of object OBJ in the 2D imaging coordinate system by performing 2D matching processing. That is, the 2D matching unit 3121 generates position and orientation information POI1 indicating the position and orientation of the object OBJ in the 2D imaging coordinate system by performing 2D matching processing.
  • the 2D imaging coordinate system is a coordinate system of the imaging device 21.
  • the 2D imaging coordinate system is a coordinate system based on the imaging device 21.
  • the position and orientation information POI1 may be considered to indicate the position and orientation of the object OBJ with respect to the imaging device 21.
  • the position and orientation information POI1 may be considered to indicate the position and orientation of the object OBJ as seen from the imaging device 21.
  • the 2D imaging coordinate system is a coordinate system defined by an X-axis (2D), a Y-axis (2D), and a Z-axis (2D) that are orthogonal to each other. At least one of the X-axis (2D), Y-axis (2D), and Z-axis (2D) is the optical axis AX21 (FIG. 2 (see). Note that the optical axis AX21 may be considered to be the optical axis of the imaging device 21. In the following description, an example will be described in which the Z-axis (2D) is an axis along the optical axis of the optical system included in the imaging device 21.
  • the 2D matching unit 3121 performs matching processing using image data IMG_2D as 2D matching processing.
  • the matching process using image data IMG_2D is matching process using image data IMG_2D and two-dimensional model data IMG_2M.
  • Two-dimensional model data IMG_2M is data indicating a two-dimensional model WM2 of object OBJ.
  • the two-dimensional model data IMG_2M is data indicating a two-dimensional model WM2 having a two-dimensional shape that serves as a reference for the object OBJ.
  • the two-dimensional model data IMG_2M is image data that represents a two-dimensional image that serves as a reference for the object OBJ. More specifically, the two-dimensional model data IMG_2M is image data indicating a two-dimensional image including the two-dimensional model WM2 of the object OBJ.
  • the two-dimensional model data IMG_2M is image data indicating a two-dimensional image including a two-dimensional model WM2 having a two-dimensional shape serving as a reference for the object OBJ.
  • the two-dimensional model data IMG_2M is, for example, a plurality of objects each generated by virtually projecting the three-dimensional model WM3 of the object OBJ from a plurality of different directions onto a virtual plane orthogonal to a plurality of different directions. It may be two-dimensional image data showing the two-dimensional model WM2 of OBJ.
  • the three-dimensional model WM3 of the object OBJ is a three-dimensional model having a three-dimensional shape that serves as a reference for the object OBJ.
  • An example of the three-dimensional model WM3 of the object OBJ is a CAD (Computer Aided Design) model of the object OBJ.
  • the three-dimensional model WM3 of the object OBJ is a three-dimensional model having the same shape as the three-dimensional shape of the object OBJ obtained by measuring the actual object OBJ in advance.
  • the three-dimensional model WM3 is generated in advance by the three-dimensional position data generation unit 311 based on image data IMG_3D generated by capturing an image of the object OBJ on which the projection pattern from the projection device 23 is projected using the imaging device 22. You may.
  • the three-dimensional model WM3 may be generated in advance using a known three-dimensional shape measuring device different from the robot system SYS.
  • the actual object OBJ whose shape is measured in advance may be a reference object or a non-defective object OBJ.
  • the two-dimensional model data IMG_2M may be image data indicating a two-dimensional image generated by capturing an image of the actual object OBJ in advance.
  • the two-dimensional model data IMG_2M may be image data indicating a plurality of two-dimensional images each generated by capturing images of the actual object OBJ from a plurality of different photographing directions.
  • image data IMG_2D generated by imaging the object OBJ by the imaging device 21 may be used as the two-dimensional model data IMG_2M.
  • image data generated by imaging the object OBJ by an arbitrary imaging device different from the robot system SYS may be used as the two-dimensional model data IMG_2M.
  • the object OBJ reflected in the two-dimensional image indicated by the image data IMG_2D as the two-dimensional model data IMG_2M may be referred to as a two-dimensional model WM2 of the object OBJ.
  • the actual object OBJ to be imaged in advance may be a reference or a non-defective object OBJ.
  • the 2D matching unit 3121 may perform matching processing on the image indicated by the image data IMG_2D using the two-dimensional image indicated by the two-dimensional model data IMG_2M as a template image. Specifically, the 2D matching unit 3121 may perform object detection processing to detect the object OBJ indicated by the template image within the image indicated by the image data IMG_2D as the matching processing. In other words, the 2D matching unit 3121 performs object detection to detect the object OBJ in the image indicated by the image data IMG_2D by detecting a similar image part similar to the template image in the image indicated by the image data IMG_2D as a matching process. Processing may be performed.
  • the 2D matching process itself may be the same as the existing matching process.
  • the 2D matching unit 3121 may perform 2D matching processing using a well-known method such as SIFT (Scale-Invariant Feature Transform) or SURF (Speed-Upped Robust Feature).
  • SIFT Scale-Invariant Feature Transform
  • SURF Speed-Upped Robust Feature
  • the 2D matching unit 3121 determines whether a feature point (for example, at least one of a feature point or an edge) in the entire two-dimensional model WM2 of the object OBJ that is reflected in the template image is reflected in the image indicated by the image data IMG_2D. Changing one template image to another template image with a different projection direction or imaging direction so as to approach (typically, coincide with) characteristic points in the entire object OBJ, and objects reflected in the template image. At least one of parallel translation, enlargement, reduction, and/or rotation of the two-dimensional model WM2 of OBJ may be performed.
  • the 2D matching unit 3121 determines that the characteristic points in the entire two-dimensional model WM2 of the object OBJ reflected in the template image approach the characteristic points in the entire object OBJ reflected in the image indicated by the image data IMG_2D (typical Specifically, the coordinate system of the two-dimensional model data IMG_2M (for example, the coordinate system of the CAD model) and the 2D imaging coordinate system of the imaging device 21 that imaged the object OBJ (generated the image data IMG_2D) You may change the positional relationship. As a result, the 2D matching unit 3121 can specify the positional relationship between the coordinate system of the two-dimensional model data IMG_2M and the 2D imaging coordinate system.
  • the 2D matching unit 3121 calculates the 2D imaging coordinate system from the position and orientation of the object OBJ in the coordinate system of the 2D model data IMG_2M based on the positional relationship between the coordinate system of the 2D model data IMG_2M and the 2D imaging coordinate system.
  • the position and orientation of the object OBJ may also be calculated.
  • the matching similarity which is the similarity between the template image (that is, the two-dimensional model WM2 of the object OBJ) and the image indicated by the image data IMG_2D (particularly the image portion in which the object OBJ of the template image is combined), is calculated. Good too.
  • the 2D matching unit 3121 changes one template image to another template image with a different projection direction or imaging direction, and creates a two-dimensional model of the object OBJ reflected in the template image so that the matching similarity is maximized.
  • At least one of parallel translation, enlargement, reduction, and/or rotation of WM2 may be performed.
  • the image portion of the image indicated by the image data IMG_2D to which the two-dimensional model WM2 of the object OBJ of the template image is matched is within the image indicated by the image data IMG_2D. It is detected as a similar image portion that is similar to the template image. In other words, the object OBJ indicated by the similar image portion is detected.
  • the matching similarity may be considered to be equivalent to the correlation that indicates the correlation between the template image and the image indicated by the image data IMG_2D.
  • the degree of correlation can also be said to be an index indicating the correlation between the two-dimensional model WM2 of the object OBJ reflected in the template image and the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the matching similarity may also be referred to as a matching score.
  • the 2D matching unit 3121 matches the characteristic points in a part of the two-dimensional model WM2 of the object OBJ reflected in the template image to the characteristic points in a part of the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the positional relationship between the coordinate system of the two-dimensional model data IMG_2M (for example, the coordinate system of the CAD model) and the 2D imaging coordinate system of the imaging device 21 that imaged the object OBJ is determined so that they approach (typically, match). May be changed. Even in this case, the 2D matching unit 3121 may calculate the matching similarity.
  • the object OBJ is There may be a situation where the object OBJ is so large that a part of the object OBJ is out of the imaging range (field of view) of the imaging device 21 when the object OBJ approaches .
  • the imaging range field of view
  • the object OBJ is large, the shorter the distance between the object OBJ and the imaging device 21 (that is, the closer the object OBJ is to the imaging device 21), the more the imaging of the entire object OBJ becomes.
  • the proportion occupied by a part of the object OBJ located within the imaging range (field of view) of the device 21 is reduced.
  • the ratio of the part of the object OBJ that is actually reflected in the image indicated by the image data IMG_2D to the entire object OBJ decreases.
  • the state where "2D matching processing fails" refers to the state in which the object OBJ indicated by the template image is not included in the image indicated by the image data IMG_2D, even though the object OBJ is reflected in the image indicated by the image data IMG_2D.
  • the 2D matching unit 3121 performs the 2D matching process using a part of the two-dimensional model WM2 that corresponds to a part of the object OBJ included in the imaging range (field of view) of the imaging device 21. You may go. As a result, even if the object is large, the 2D matching unit 3121 can detect the object OBJ indicated by the template image within the image indicated by the image data IMG_2D.
  • the part of the two-dimensional model WM2 of the object OBJ that is reflected in each template image with a different projection direction or imaging direction is subjected to the 2D matching processing. It may be specified (in other words, selected) in advance as part of the two-dimensional model WM2 used for. For example, if the object OBJ is so large that when the object OBJ approaches the imaging device 21, a part of the object OBJ is out of the imaging range (field of view) of the imaging device 21, the object OBJ is included in the imaging range (field of view) of the imaging device 21.
  • a part of the two-dimensional model WM2 corresponding to a part of the object OBJ assumed to be may be specified in advance as a part of the two-dimensional model WM2 used for the 2D matching process.
  • a part of the two-dimensional model WM2 used in the 2D matching process may be specified (in other words, selected) while the 2D matching process is being performed. That is, one range of the two-dimensional model WM2 used for the 2D matching process may be changed while the 2D matching process is being performed. For example, consider that as the distance between the object OBJ and the imaging device 21 becomes shorter, the proportion of the part of the object OBJ located within the imaging range (field of view) of the imaging device 21 to the entire object OBJ decreases. Then, a part of the range of the two-dimensional model WM2 used for the 2D matching process may be changed depending on the distance between the object OBJ and the imaging device 21.
  • the range of the part of the two-dimensional model WM2 used for the 2D matching process becomes smaller (in other words, narrower) as the distance between the object OBJ and the imaging device 21 becomes shorter.
  • a part of the two-dimensional model WM2 may be specified.
  • a single portion of the two-dimensional model WM2 may be specified as a part of the two-dimensional model WM2 used in the 2D matching process.
  • multiple parts of the two-dimensional model WM2 may be specified as a part of the two-dimensional model WM2 used in the 2D matching process.
  • a plurality of parts of the two-dimensional model WM2, each of which can be used as a characteristic part of the two-dimensional model WM2 may be designated as part of the two-dimensional model WM2 used in the 2D matching process.
  • a part of the two-dimensional model WM2 used in the 2D matching process may be specified by the user of the robot system SYS.
  • the user may specify a part of the two-dimensional model WM2 displayed on a display (not shown).
  • the user estimates a part of the object OBJ that is assumed to be included in the imaging range (field of view) of the imaging device 21, and specifies a part of the two-dimensional model WM2 that corresponds to the estimated part of the object OBJ. It's okay.
  • the control device 3 may automatically designate a part of the two-dimensional model WM2 used in the 2D matching process.
  • the control device 3 estimates a part of the object OBJ that is assumed to be included in the imaging range (field of view) of the imaging device 21, and selects a part of the two-dimensional model WM2 corresponding to the estimated part of the object OBJ. May be specified.
  • the control device 3 controls, for example, the direction of relative movement between the object OBJ and the imaging device 21 (or the direction in which the robot 1 approaches the object OBJ), the distance between the object OBJ and the imaging device 21 (or the robot Object OBJ that is assumed to be included in the imaging range (field of view) of the imaging device 21 based on information regarding at least one of the distance between 1 and the object OBJ) and the imaging range (field of view) of the imaging device 21. You may estimate a part of it.
  • the 2D matching unit 3121 performs a process to bring the characteristic points of the two-dimensional model WM2 of the object OBJ reflected in the template image closer to the characteristic points of the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the process may be performed sequentially for a plurality of objects OBJ that are reflected in the image indicated by the data IMG_2D.
  • the 2D matching unit 3121 may select one object OBJ with the maximum matching similarity among the plurality of objects OBJ reflected in the image indicated by the image data IMG_2D as a target for subsequent processing. .
  • the 2D matching unit 3121 selects one object OBJ whose matching similarity exceeds the matching determination threshold among the plurality of objects OBJ reflected in the image indicated by the image data IMG_2D as a target for subsequent processing. Good too.
  • the matching determination threshold value is determined between a state in which the object OBJ detected by the 2D matching process is the same as the object OBJ on which the end effector 13 should perform predetermined processing, and a 2D
  • the object OBJ detected by the matching process may be set to an appropriate value that allows the end effector 13 to perform a predetermined process to appropriately distinguish a different state from the object OBJ based on the matching similarity. .
  • the matching judgment threshold is determined based on the condition that the object OBJ detected by the 2D matching process is the same as the object OBJ reflected in the template image, and the condition that the object OBJ detected by the 2D matching process is the same as the object OBJ reflected in the template image.
  • the matching similarity may be set to an appropriate value that can appropriately distinguish between the object OBJ and a different state based on the matching similarity.
  • the method for calculating the position and orientation of the object OBJ is not limited to the matching process using the image data IMG_2D described above.
  • the 2D matching unit 3121 may calculate the position and orientation of the object OBJ using another well-known method of calculating the position and orientation of the object OBJ using the image data IMG_2D.
  • the method of calculating the position and orientation of the object OBJ may be a well-known method of calculating the position and orientation of the object OBJ based on the image data IMG_2D without using the two-dimensional model data IMG_2M, or the method of calculating the position and orientation of the object OBJ based on the image data IMG_2D without using the two-dimensional model data IMG_2M.
  • a well-known method may be used to calculate the position and orientation of the object OBJ using data different from IMG_2M and image data IMG_2D.
  • the method of calculating the position and orientation of the object OBJ may be a method of calculating the position and orientation of the object OBJ based on the image data IMG_2D using machine learning or deep learning.
  • a prediction model is constructed in advance to output the position and orientation of the object OBJ when the image data IMG_2D is input, and by inputting the image data IMG_2D to this prediction model, the position and orientation of the object OBJ is and the posture may be calculated.
  • This prediction model may be stored in the 2D matching section 3121. Note that the 2D matching unit 3121 may read out this prediction model stored in the storage device 32.
  • the 2D matching unit 3121 determines, as the position of the object OBJ in the 2D imaging coordinate system, a position Tx (2D) of the object OBJ in the X-axis direction (2D) parallel to the X-axis (2D), and a Y parallel to the Y-axis (2D). At least one of the position Ty (2D) of the object OBJ in the axial direction (2D) and the position Tz (2D) of the object OBJ in the Z-axis direction (2D) parallel to the Z-axis (2D) may be calculated. .
  • the 2D matching unit 3121 determines the rotation amount Rx (2D) of the object OBJ around the X-axis (2D) and the rotation amount Ry (2D) of the object OBJ around the Y-axis (2D) as the posture of the object OBJ in the 2D imaging coordinate system. and the amount of rotation Rz (2D) of the object OBJ around the Z-axis (2D).
  • the rotation amount Rx (2D) of the object OBJ around the X axis (2D), the Y axis (2D) The rotation amount Ry (2D) of the surrounding object OBJ and the rotation amount Rz (2D) of the object OBJ around the Z axis (2D) are calculated as the posture Rx (2D) of the object OBJ around the X axis (2D) and the Y axis, respectively.
  • (2D) is referred to as the posture Ry (2D) of the surrounding object OBJ and the posture Rz (2D) of the object OBJ around the Z axis (2D).
  • the posture Rx (2D) of the object OBJ around the X-axis (2D), the posture Ry (2D) of the object OBJ around the Y-axis (2D), and the posture Rz (2D) of the object OBJ around the Z-axis (2D) are , respectively, indicate the position of the object OBJ in the rotational direction around the X-axis (2D), the position of the object OBJ in the rotational direction around the Y-axis (2D), and the position of the object OBJ in the rotational direction around the Z-axis (2D), respectively. It may be assumed that there is.
  • the posture Rx (2D) of the object OBJ around the X-axis (2D), the posture Ry (2D) of the object OBJ around the Y-axis (2D), and the posture Rz (2D) of the object OBJ around the Z-axis (2D) are , may be regarded as parameters representing the position of the object OBJ.
  • the 2D matching unit 3121 Each time the 2D matching unit 3121 generates the position and orientation information POI1, it outputs the generated position and orientation information POI1 to the 3D matching unit 3122.
  • the 2D matching unit 3121 selects all of the positions and orientations of 6DOF (Degree Of Freedom) (that is, position Tx (2D), position Ty (2D), position Tz (2D), orientation Rx (2D), and orientation Ry). (2D) and orientation Rz(2D)), and output position/orientation information POI1 indicating the calculated position and orientation of 6DOF to the 3D matching unit 3122.
  • 6DOF Degree Of Freedom
  • the 2D matching unit 3121 calculates the positions and orientations of the 6DOFs, and calculates some of the calculated positions and orientations of the 6DOFs (i.e., position Tx (2D), position Ty (2D), position Tz ( 2D), orientation Rx (2D), orientation Ry (2D), and part of orientation Rz (2D)) may be output to the 3D matching unit 3122.
  • the 2D matching unit 3121 may calculate a part of the position and orientation of the 6DOF, and output position and orientation information POI1 indicating a part of the calculated position and orientation of the 6DOF to the 3D matching unit 3122. good.
  • the 2D matching unit 3121 sets the position and orientation of the object OBJ as position Tx (2D), position Ty (2D), position Tz (2D), An example of calculating posture Rx (2D), posture Ry (2D), and posture Rx (2D) will be described. That is, in the following description, for convenience of explanation, as shown in FIG. An example in which position and orientation information POI1 indicating (2D) and orientation Rx (2D) is generated and output to the 3D matching unit 3122 will be described.
  • the 2D matching unit 3121 may calculate the position and orientation of the object OBJ at a predetermined 2D matching cycle. In other words, the 2D matching unit 3121 may calculate the position and orientation of the object OBJ every time the time corresponding to the 2D matching period elapses. In other words, it may be assumed that a time corresponding to the 2D matching period is required from when the 2D matching unit 3121 starts the 2D matching process until it completes the 2D matching process. In this case, the 2D matching unit 3121 may output position and orientation information POI1 indicating the position and orientation of the object OBJ to the 3D matching unit 3122 at a predetermined 2D matching cycle.
  • the 2D matching period may be longer than the 2D imaging period corresponding to the 2D imaging rate at which the imaging device 21 images the object OBJ.
  • the 2D matching period may be a period in which the 2D matching unit 3121 can perform the 2D matching process from ten to several dozen times (as an example, from 15 to 30 times) per second.
  • the imaging device 21 generates new image data IMG_2D from when the 2D matching unit 3121 starts the 2D matching process until it completes the 2D matching process.
  • the 2D matching unit 3121 will not be able to match the newly generated image data IMG_2D until the started 2D matching process is completed.
  • the 2D matching unit 3121 may start a new 2D matching process using the latest image data IMG_2D at that time. Note that even if the 2D matching process that has been started is not completed, the 2D matching unit 3121 uses the newly generated image data IMG_2D by the imaging device 21 when the imaging device 21 generates new image data IMG_2D. You may start a new 2D matching process using . Note that the timing at which the image data IMG_2D shown in FIG. 12 is generated may be considered to be the timing at which the imaging device 21 images the object OBJ in order to generate the image data IMG_2D.
  • the 2D matching cycle does not have to be longer than the 2D imaging cycle.
  • 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 unit 3122 calculates the position and orientation of object OBJ in the 3D imaging coordinate system by performing 3D matching processing. That is, the 3D matching unit 3122 generates position and orientation information POI2 indicating the position and orientation of the object OBJ in the 3D imaging coordinate system by performing 3D matching processing.
  • the 3D imaging coordinate system is a coordinate system of the imaging device 22.
  • the 3D imaging coordinate system is a coordinate system based on the imaging device 22.
  • the position and orientation information POI2 may be considered to indicate the position and orientation of the object OBJ with respect to the imaging device 22.
  • the position and orientation information POI2 may be considered to indicate the position and orientation of the object OBJ as seen from the imaging device 22.
  • the 3D imaging coordinate system is a coordinate system defined by an X-axis (3D), a Y-axis (3D), and a Z-axis (3D) that are orthogonal to each other. At least one of the X-axis (3D), Y-axis (3D), and Z-axis (3D) is the optical axis AX22 (FIG. 2 (see). Note that the optical axis AX22 may be considered to be the optical axis of the imaging device 22.
  • the optical axis AX22 is the optical axis of the optical system included in either 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 included in the imaging device 22.
  • the 3D matching unit 3122 performs matching processing using the three-dimensional position data WSD as at least part of the 3D matching processing. That is, the 3D matching unit 3122 performs 3D matching processing including matching processing using the three-dimensional position data WSD.
  • the matching process using the three-dimensional position data WSD is a matching process using the three-dimensional position data WSD and the three-dimensional model data WMD.
  • the three-dimensional model data WMD is data indicating the three-dimensional model WM3 of the object OBJ.
  • the three-dimensional model data WMD is data indicating a three-dimensional model WM3 having a three-dimensional shape that serves as a reference for the object OBJ.
  • the three-dimensional model WM3 may be a CAD model of the object OBJ, which is an example of the three-dimensional model WM3 of the object OBJ.
  • the three-dimensional model WM3 may be a three-dimensional model having a shape similar to the three-dimensional shape of the object OBJ obtained by measuring the three-dimensional shape of the actual object OBJ in advance.
  • the three-dimensional model data WMD is generated by the three-dimensional position data generation unit 311 based on the image data IMG_3D generated by imaging the object OBJ on which the projection pattern from the projection device 23 is projected using the imaging device 22. may be generated in advance.
  • the three-dimensional model data WMD may be generated in advance by shape measurement using a known three-dimensional shape measuring device different from the robot system SYS.
  • the three-dimensional model data WMD may be depth image data indicating the three-dimensional model WM3 of the object OBJ.
  • the three-dimensional model data WMD may be point group data indicating the three-dimensional model WM3 of the object OBJ.
  • the actual object OBJ that is imaged or measured in advance for generating the three-dimensional model data WMD may be a reference or a non-defective object OBJ.
  • the 3D matching unit 3122 may perform matching processing on the three-dimensional position data WSD using the three-dimensional model WM3 indicated by the three-dimensional model data WMD as a template model.
  • the matching process itself using the three-dimensional position data WSD may be the same as the existing matching process.
  • the 3D matching unit 3122 uses RANSAC (Random Sample Consensus), SIFT (Scale-Invariant Feature Transform), and ICP (Iterative Closest Point). using a well-known method including at least one of t) and DSO (Direct Sparse Odometry).
  • RANSAC Random Sample Consensus
  • SIFT Scale-Invariant Feature Transform
  • ICP Iterative Closest Point
  • the 3D matching unit 3122 determines that a feature location in the entire three-dimensional model WM3 indicated by the three-dimensional model data WMD approaches a feature location in the entire object OBJ whose three-dimensional position is indicated by the three-dimensional position data WSD (typically
  • the three-dimensional model WM3 indicated by the three-dimensional model data WMD may be translated, enlarged, reduced, and/or rotated within the 3D imaging coordinate system so that the three-dimensional model data WMD matches the three-dimensional model data WMD.
  • the 3D matching unit 3122 determines that the feature location in the entire object OBJ whose 3D position is indicated by the 3D position data WSD approaches the feature location in the entire 3D model WM3 indicated by the 3D model data WMD (typically The positional relationship between the coordinate system of the three-dimensional model data WMD (for example, the coordinate system of the CAD model) and the 3D imaging coordinate system may be changed so that they match. As a result, the 3D matching unit 3122 can specify the positional relationship between the coordinate system of the three-dimensional model data WMD and the 3D imaging coordinate system.
  • the 3D matching unit 3122 performs 3D imaging from the position and orientation of the 3D model WM3 in the coordinate system of the 3D model data WMD, based on the positional relationship between the coordinate system of the 3D model data WMD and the 3D imaging coordinate system.
  • the position and orientation of the object OBJ in the coordinate system may be calculated.
  • the coordinate system of the three-dimensional model data WMD may be referred to as the coordinate system of the three-dimensional model WM3 indicated by the three-dimensional model data WMD.
  • the 3D matching unit 3122 determines that a characteristic point in a part of the three-dimensional model WM3 indicated by the three-dimensional model data WMD approaches a characteristic point in a part of the object OBJ whose three-dimensional position is indicated by the three-dimensional position data WSD (typical In other words, the positional relationship between the coordinate system of the three-dimensional model data WMD (for example, the coordinate system of the CAD model) and the 3D imaging coordinate system of the imaging device 22 that imaged the object OBJ is changed so that they match Good too.
  • the object OBJ is connected to the imaging device 22.
  • the object OBJ is so large that a part of the object OBJ is out of the imaging range (field of view) of the imaging device 22 when the object OBJ approaches .
  • the imaging range field of view
  • the proportion occupied by a portion of the object OBJ located within the imaging range (field of view) of the device 22 is reduced.
  • the ratio of the part of the object OBJ that is actually reflected in the image indicated by the image data IMG_3D to the entire object OBJ decreases. Therefore, the proportion of the part of the object OBJ in which the three-dimensional position data WSD generated from the image data IMG_3D indicates the three-dimensional position occupies with respect to the entire object OBJ. If 3D matching processing is performed using the entire three-dimensional model WM3 under such circumstances, there is a high possibility that the 3D matching processing will fail.
  • the state where "3D matching processing fails” refers to the state where the 3D matching process fails even though the 3D position data WSD includes the 3D position data of the object OBJ. It may also mean a state in which the indicated object OBJ cannot be detected. Specifically, the smaller the proportion of the part of the object OBJ that is actually reflected in the image indicated by the image data IMG_3D (in other words, the more the three-dimensional position data WSD generated from the image data IMG_3D indicates the three-dimensional position The smaller the proportion occupied by a part of the object OBJ), the higher the possibility that the 3D matching process will fail.
  • the 3D matching unit 3122 selects a part of the object OBJ included in the imaging range (field of view) of the imaging device 22 (a part of the object OBJ whose three-dimensional position data WSD indicates the three-dimensional position).
  • 3D matching processing may be performed using a part of the three-dimensional model WM3 corresponding to .
  • a part of the 3D model WM3 of the object OBJ is specified in advance as a part of the 3D model WM3 used for the 3D matching process ( In other words, it may be selected (selected). For example, if the object OBJ is so large that when the object OBJ approaches the imaging device 22, a part of the object OBJ is out of the imaging range (field of view) of the imaging device 22, the object OBJ is included in the imaging range (field of view) of the imaging device 22.
  • a part of the three-dimensional model WM3 corresponding to a part of the object OBJ assumed to be may be specified in advance as a part of the three-dimensional model WM3 used in the 3D matching process.
  • a part of the three-dimensional model WM3 used in the 3D matching process may be specified (in other words, selected) while the 3D matching process is being performed. That is, one range of the three-dimensional model WM3 used for the 3D matching process may be changed while the 3D matching process is being performed. For example, consider that as the distance between the object OBJ and the imaging device 22 becomes shorter, the proportion of the part of the object OBJ located within the imaging range (field of view) of the imaging device 22 to the entire object OBJ decreases. Then, a part of the range of the three-dimensional model WM3 used for the 3D matching process may be changed depending on the distance between the object OBJ and the imaging device 22.
  • the range of the part of the three-dimensional model WM3 used for the 3D matching process becomes smaller (in other words, narrower) as the distance between the object OBJ and the imaging device 22 becomes shorter.
  • a part of the three-dimensional model WM3 may be specified.
  • a single portion of the three-dimensional model WM3 may be specified as a part of the three-dimensional model WM3 used in the 3D matching process.
  • multiple parts of the three-dimensional model WM3 may be specified as parts of the three-dimensional model WM3 used in the 3D matching process.
  • a plurality of parts of the three-dimensional model WM3, each of which can be used as a characteristic part of the three-dimensional model WM3, may be designated as part of the three-dimensional model WM3 used in the 3D matching process.
  • a part of the three-dimensional model WM3 used in the 3D matching process may be specified by the user of the robot system SYS.
  • the user may specify a part of the three-dimensional model WM3 displayed on a display (not shown).
  • the user estimates a part of the object OBJ that is assumed to be included in the imaging range (field of view) of the imaging device 22, and specifies a part of the three-dimensional model WM3 that corresponds to the estimated part of the object OBJ. You can.
  • the control device 3 may automatically designate a part of the three-dimensional model WM3 used in the 3D matching process.
  • control device 3 controls a part of the object OBJ that is assumed to be included in the imaging range (field of view) of the imaging device 22 (the three-dimensional position data WSD that is assumed to be generated from the image data IMG_3D A portion of the three-dimensional model WM3 corresponding to the estimated portion of the object OBJ may be specified.
  • control device 3 controls, for example, the direction of relative movement between the object OBJ and the imaging device 22 (or the direction in which the robot 1 approaches the object OBJ), the distance between the object OBJ and the imaging device 22 (or the robot 1 and the object OBJ) and the imaging range (field of view) of the imaging device 22, the object OBJ is assumed to be included in the imaging range (field of view) of the imaging device 22. may be partially estimated.
  • a process of bringing the feature parts of the three-dimensional model WM3 indicated by the three-dimensional model data WMD closer to the feature parts of the object OBJ indicated by the three-dimensional position data WSD that is, matching processing using the three-dimensional position data WSD
  • the 3D matching unit 3122 determines at least one of the initial position and initial orientation of the three-dimensional model WM3. That is, before starting the matching process using the three-dimensional position data WSD, the 3D matching unit 3122 determines at least one of the initial position and initial orientation of the three-dimensional model WM3 as at least part of the 3D matching process. Perform posture determination processing.
  • the 3D matching process performed by the 3D matching unit 3122 includes position and orientation determination processing that determines at least one of the initial position and initial orientation of the three-dimensional model WM3, and matching using the three-dimensional position data WSD. It may also include processing.
  • the 3D matching process includes a matching process using the three-dimensional position data WSD, it may not include the position and orientation determination process.
  • the 3D matching unit 3122 may perform position and orientation determination processing as processing separate from the 3D matching processing.
  • a processing block or device different from the 3D matching unit 3122 may perform the position and orientation determination processing.
  • the 3D matching process converts the characteristic points of the three-dimensional model WM3 indicated by the three-dimensional model data WMD to the characteristic points of the object OBJ indicated by the three-dimensional position data WSD in the 3D imaging coordinate system. (that is, matching processing using three-dimensional position data WSD). Therefore, the 3D matching unit 3122 may determine the initial position and initial orientation of the three-dimensional model WM3 within the 3D imaging coordinate system. Thereafter, the 3D matching unit 3122 arranges the three-dimensional model WM3 at the determined initial position and in the determined initial posture within the 3D imaging coordinate system.
  • the 3D matching unit 3122 starts a process of bringing the feature points of the three-dimensional model WM3 placed in the initial position and initial posture closer to the feature points of the object OBJ indicated by the three-dimensional position data WSD. That is, the 3D matching unit 3122 starts matching processing using the three-dimensional model WM3 and the three-dimensional position data WSD at the initial position and initial orientation.
  • the 3D matching process is performed by matching the 3D model so that the feature location of the 3D model WM3 indicated by the 3D model data WMD approaches the feature location of the object OBJ whose 3D position data WSD indicates the 3D position. It can also be said that it includes processing for changing the positional relationship between the coordinate system of the data WMD (for example, the coordinate system of the CAD model) and the 3D imaging coordinate system.
  • the operation of determining the initial position and initial orientation of the three-dimensional model WM3 within the 3D imaging coordinate system is essentially the initial positional relationship between the coordinate system of the three-dimensional model data WMD and the 3D imaging coordinate system. It may be considered to be equivalent to the operation of determining the state.
  • the 3D matching unit 3122 adjusts the coordinate system of the 3D model data WMD and the 3D imaging coordinate system so that the positional relationship between the coordinate system of the 3D model data WMD and the 3D imaging coordinate system is in the determined initial state. may be aligned. Thereafter, the 3D matching unit 3122 may start a process of bringing the feature points of the three-dimensional model WM3 closer to the feature points of the object OBJ indicated by the three-dimensional position data WSD.
  • the position and orientation calculation unit 312 calculates both the position and orientation of the object OBJ in step S3 of FIG. Both the initial position and initial attitude of the three-dimensional model WM3 within the imaging coordinate system are determined.
  • the 3D matching unit 3122 calculates both the initial position and initial orientation of the three-dimensional model WM3 within the 3D imaging coordinate system. may be determined.
  • the 3D matching unit 3122 may use the position and orientation information POI1 output from the 2D matching unit 3121 to the 3D matching unit 3122. That is, the 3D matching unit 3122 may determine the initial position and initial orientation of the three-dimensional model WM3 based on the position and orientation information POI1.
  • the 3D matching unit 3122 converts the position and orientation information POI1 indicating the position and orientation of the object OBJ in the 2D imaging coordinate system into the position and orientation of the object OBJ in the 3D imaging coordinate system. and the position/orientation information POI1_conv indicating the orientation.
  • the position and orientation information POI1_conv may indicate the position Tx (2D to 3D) of the object OBJ in the X-axis direction (3D) parallel to the X-axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the position and orientation information POI1_conv may indicate the position Ty (2D to 3D) of the object OBJ in the Y-axis direction (3D) parallel to the Y-axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the position and orientation information POI1_conv may indicate the position Tz (2D to 3D) of the object OBJ in the Z-axis direction (3D) parallel to the Z-axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the position and orientation information POI1_conv may indicate the amount of rotation Rx (2D to 3D) of the object OBJ around the X-axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the position and orientation information POI1_conv may indicate the amount of rotation Ry (2D to 3D) of the object OBJ around the Y axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the position and orientation information POI1_conv may indicate the amount of rotation Rz (2D to 3D) of the object OBJ around the Z axis (3D) of the 3D imaging coordinate system, which is calculated by conversion.
  • the amount of rotation Rz (2Dto3D) of the object OBJ around the axis (3D) is determined by the attitude Rx (2Dto3D) of the object OBJ in the rotational direction around the X-axis (3D) and the object OBJ in the rotational direction around the Y-axis (3D), respectively.
  • the posture Ry (2Dto3D) of the object OBJ in the rotation direction around the Z axis (3D) is referred to as the posture Rz (2Dto3D).
  • the posture Rx (2Dto3D) of the object OBJ around the X axis (2Dto3D), the posture Ry (2Dto3D) of the object OBJ around the Y axis (2Dto3D), and the posture Rz (2Dto3D) of the object OBJ around the Z axis (2Dto3D) are , respectively indicate the position of the object OBJ in the rotational direction around the X-axis (2Dto3D), the position of the object OBJ in the rotational direction around the Y-axis (2Dto3D), and the position of the object OBJ in the rotational direction around the Z-axis (2Dto3D). It may be assumed that there is.
  • the posture Rx (2Dto3D) of the object OBJ around the X-axis (2Dto3D), the posture Ry (2Dto3D) of the object OBJ around the Y-axis (2Dto3D), and the posture Rz (2Dto3D) of the object OBJ around the Z-axis (2Dto3D) are , may be regarded as parameters representing the position of the object OBJ.
  • the 3D matching unit 3122 may use coordinate system information indicating the positional relationship between the 2D imaging coordinate system and the 3D imaging coordinate system.
  • the coordinate system information may be stored in the storage device 32 in advance, for example.
  • the coordinate system information is information for converting a position in either the 2D imaging coordinate system or the 3D imaging coordinate system to a position in the other coordinate system of the 2D imaging coordinate system or the 3D imaging coordinate system. It may also include a transformation matrix (typically a rigid transformation matrix). The transformation matrix can be calculated using a mathematical method from external parameters indicating the positional relationship between the imaging device 21 and the imaging device 22.
  • the transformation matrix can be calculated by a mathematical method that solves a PnP (Perspective n Point) problem based on external parameters indicating the positional relationship between the imaging device 21 and the imaging device 22.
  • the control device 3 converts the position and orientation information POI1 indicating the position and orientation of the object OBJ in the 2D imaging coordinate system to the position and orientation of the object OBJ in the 3D imaging coordinate system based on the coordinate system information (in particular, the transformation matrix). It can be converted into position and orientation information POI1_conv indicating the position and orientation.
  • the 3D matching unit 3122 may set the position indicated by the position and orientation information POI1_conv as the initial position of the three-dimensional model WM3. Furthermore, the 3D matching unit 3122 may set the orientation indicated by the position and orientation information POI1_conv as the initial orientation of the three-dimensional model WM3. For example, the 3D matching unit 3122 may set the position Tx (2D to 3D) indicated by the position and orientation information POI1_conv as the initial position of the three-dimensional model WM3 in the X-axis direction (3D).
  • the 3D matching unit 3122 may set the position Ty (2D to 3D) indicated by the position and orientation information POI1_conv as the initial position of the three-dimensional model WM3 in the Y-axis direction (3D).
  • the 3D matching unit 3122 may set the position Tz (2D to 3D) indicated by the position and orientation information POI1_conv as the initial position of the three-dimensional model WM3 in the Z-axis direction (3D).
  • the 3D matching unit 3122 may set the orientation Rx (2D to 3D) indicated by the position and orientation information POI1_conv as the initial orientation of the three-dimensional model WM3 around the X-axis (3D).
  • the 3D matching unit 3122 may set the posture Ry (2D to 3D) indicated by the position and posture information POI1_conv as the initial posture of the three-dimensional model WM3 around the Y-axis (3D).
  • the 3D matching unit 3122 may set the orientation Rz (2D to 3D) indicated by the position and orientation information POI1_conv as the initial orientation of the three-dimensional model WM3 around the Z-axis (3D).
  • the 3D matching unit 3122 places the three-dimensional model WM3 at the determined initial position and in the determined initial posture within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the position of the three-dimensional model WM3 in the X-axis direction (3D) is the position Tx (2D to 3D) within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the position of the three-dimensional model WM3 in the Y-axis direction (3D) is the position Ty (2D to 3D) within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the position of the three-dimensional model WM3 in the Z-axis direction (3D) is the position Tz (2D to 3D) within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the posture of the three-dimensional model WM3 around the X-axis (3D) becomes the posture Rx (2D to 3D) in the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the posture of the three-dimensional model WM3 around the Y-axis (3D) becomes the posture Ry (2D to 3D) in the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 so that the posture of the three-dimensional model WM3 around the Z-axis (3D) becomes the posture Rz (2D to 3D) in the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 at the determined initial position and in the determined initial posture within the 3D imaging coordinate system using the procedure described below. Specifically, the 3D matching unit 3122 may first place (set) the three-dimensional model WM3 within the coordinate system of the three-dimensional model WM3 (within the coordinate system of the three-dimensional model data WSD). In this case, the 3D matching unit 3122 may arrange the three-dimensional model WM3 within the coordinate system of the three-dimensional model WM3 so that the center of gravity of the three-dimensional model WM3 is located at the origin within the coordinate system of the three-dimensional model WM3. good.
  • the 3D matching unit 3122 aligns the coordinate system of the three-dimensional model WM3 and the 3D imaging coordinate system. For example, the 3D matching unit 3122 aligns the coordinate system of the 3D model WM3 and the 3D imaging coordinate system so that the origin of the coordinate system of the 3D model WM3 matches the origin of the 3D imaging coordinate system. Good too. For example, the 3D matching unit 3122 matches the coordinate system of the 3D model WM3 and the 3D imaging coordinate system so that the X axis of the coordinate system of the 3D model WM3 matches the X axis (3D) of the 3D imaging coordinate system. Positioning may also be performed.
  • the 3D matching unit 3122 matches the coordinate system of the three-dimensional model WM3 and the 3D imaging coordinate system so that the Y-axis of the coordinate system of the three-dimensional model WM3 matches the Y-axis (3D) of the 3D imaging coordinate system. Positioning may also be performed. For example, the 3D matching unit 3122 adjusts the coordinate system of the 3D model WM3 and the 3D imaging coordinate system so that the Z axis of the coordinate system of the 3D model WM3 matches the Z axis (3D) of the 3D imaging coordinate system. Positioning may also be performed.
  • the 3D matching unit 3122 positions the coordinate system of the three-dimensional model WM3 and the 3D imaging coordinate system so that the scaling of the coordinates in the coordinate system of the three-dimensional model WM3 matches the scaling of the coordinates in the 3D imaging coordinate system. You may also perform matching. Thereafter, the 3D matching unit 3122 may arrange the three-dimensional model WM3 at the determined initial position and in the determined initial attitude within the coordinate system of the three-dimensional model WM3 in which the three-dimensional model WM3 is placed.
  • positioning the three-dimensional model WM3 within the coordinate system of the three-dimensional model WM3 means that the 3D imaging coordinate system This is equivalent to arranging the three-dimensional model WM3 within.
  • the 3D matching unit 3122 can arrange the three-dimensional model WM3 at the determined initial position and in the determined initial attitude within the 3D imaging coordinate system.
  • the 3D matching unit 3122 aligns the coordinate system of the three-dimensional model WM3 and the coordinate system of the three-dimensional model WM3.
  • a transformation matrix typically a rigid transformation matrix
  • the three-dimensional model WM3 may be placed at the determined initial position and in the determined initial posture.
  • the 3D matching unit 3122 places the 3D model WM3 in the coordinate system of the 3D model WM3 based on the transformation matrix.
  • the position and orientation of the three-dimensional model WM3 (that is, the position and orientation within the coordinate system of the three-dimensional model WM3) may be converted into the position and orientation of the three-dimensional model WM3 within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 at the determined initial position and in the determined initial posture within the 3D imaging coordinate system.
  • the 3D matching unit 3122 determines the initial position and initial orientation of the three-dimensional model WM3 within the 2D imaging coordinate system. and an initial attitude may be determined. In this case, the 3D matching unit 3122 converts the position and orientation indicated by the position and orientation information POI1 to the initial positions of the three-dimensional model WM3 within the 2D imaging coordinate system, without converting the position and orientation information POI1 to position and orientation information POI1_conv. It may be set to the position and initial attitude.
  • the 3D matching unit 3122 aligns the coordinate system of the three-dimensional model WM3 with the 2D imaging coordinate system. You may do so. Specifically, the 3D matching unit 3122 may align the coordinate system of the three-dimensional model WM3 and the 2D imaging coordinate system after arranging the three-dimensional model WM3 within the coordinate system of the three-dimensional model WM3. . For example, the 3D matching unit 3122 aligns the coordinate system of the 3D model WM3 and the 2D imaging coordinate system so that the origin of the coordinate system of the 3D model WM3 matches the origin of the 2D imaging coordinate system. Good too.
  • the 3D matching unit 3122 matches the coordinate system of the 3D model WM3 and the 2D imaging coordinate system so that the X axis of the coordinate system of the 3D model WM3 matches the X axis (2D) of the 2D imaging coordinate system. Positioning may also be performed.
  • the 3D matching unit 3122 matches the coordinate system of the 3D model WM3 and the 2D imaging coordinate system so that the Y axis of the coordinate system of the 3D model WM3 matches the Y axis (2D) of the 2D imaging coordinate system. Positioning may also be performed.
  • the 3D matching unit 3122 adjusts the coordinate system of the 3D model WM3 and the 3D imaging coordinate system so that the Z axis of the coordinate system of the 3D model WM3 matches the Z axis (2D) of the 2D imaging coordinate system. Positioning may also be performed.
  • the 3D matching unit 3122 positions the coordinate system of the three-dimensional model WM3 and the 2D imaging coordinate system so that the scaling of the coordinates in the coordinate system of the three-dimensional model WM3 matches the scaling of the coordinates in the 2D imaging coordinate system. You may also perform matching.
  • the 3D matching unit 3122 may arrange the three-dimensional model WM3 at the determined initial position and in the determined initial attitude within the coordinate system of the three-dimensional model WM3 in which the three-dimensional model WM3 is placed.
  • the 3D matching unit 3122 can arrange the three-dimensional model WM3 at the determined initial position and in the determined initial attitude within the 2D imaging coordinate system.
  • the 3D matching unit 3122 converts the position in either the 2D imaging coordinate system or the 3D imaging coordinate system to the position in the other coordinate system of the 2D imaging coordinate system or the 3D imaging coordinate system.
  • the position and orientation of the three-dimensional model WM3 in the 2D imaging coordinate system are changed using a transformation matrix (typically, a rigid transformation matrix) for You can also convert it into a posture.
  • the position and orientation of the three-dimensional model WM3 within the 3D imaging coordinate system obtained by the transformation reach the initial position and initial orientation of the three-dimensional model WM3 within the 3D imaging coordinate system, respectively.
  • the 3D matching unit 3122 can arrange the three-dimensional model WM3 at the determined initial position and in the determined initial attitude within the 3D imaging coordinate system.
  • the 3D matching unit 3122 starts a process of bringing the feature points of the three-dimensional model WM3 closer to the feature points of the object OBJ indicated by the three-dimensional position data WSD. As a result, the 3D matching unit 3122 can calculate the position and orientation of the object OBJ. In other words, the 3D matching unit 3122 can generate position and orientation information POI2.
  • the method for calculating the position and orientation of the object OBJ is not limited to the above-described matching process using the three-dimensional position data WSD.
  • the 3D matching unit 3122 may calculate the position and orientation of the object OBJ using another well-known method of calculating the position and orientation of the object OBJ using the three-dimensional position data WSD.
  • the method of calculating the position and orientation of the object OBJ may be a well-known method of calculating the position and orientation of the object OBJ based on the three-dimensional position data WSD without using the three-dimensional model data WMD, or the method of calculating the position and orientation of the object OBJ based on the three-dimensional position data WSD without using the three-dimensional model data WMD.
  • a well-known method may be used to calculate the position of the object OBJ using data different from the data WMD and the three-dimensional position data WSD.
  • the method of calculating the position and orientation of the object OBJ may be a method of calculating the position and orientation of the object OBJ based on the three-dimensional position data WSD by machine learning or deep learning.
  • a predictive model is constructed in advance to output the position and orientation of the object OBJ when the three-dimensional position data WSD is input, and the three-dimensional position data WSD is input to this predictive model.
  • the position and orientation of object OBJ may also be calculated.
  • This prediction model may be stored in the 3D matching section 3122. Note that the 3D matching unit 3122 may read out this prediction model stored in the storage device 32.
  • the 3D matching unit 3122 performs 3D matching processing using the above-mentioned point cloud data as the three-dimensional position data WSD. As a result, the accuracy of calculating the position and orientation of the object OBJ becomes higher than when depth image data is used as the three-dimensional position data WSD.
  • the 3D matching unit 3122 uses point cloud data (for example, point cloud data indicating a CAD model) indicating a three-dimensional shape serving as a reference of the object OBJ as the three-dimensional model data WMD.
  • the 3D matching unit 3122 may perform 3D matching processing using the depth image data described above as the three-dimensional position data WSD.
  • the 3D matching unit 3122 may use, as the three-dimensional model data WMD, depth image data indicating a three-dimensional shape serving as a reference of the object OBJ (for example, depth image data indicating a CAD model).
  • the 3D matching unit 3122 determines, as the position of the object OBJ in the 3D imaging coordinate system, a position Tx (3D) of the object OBJ in the X-axis direction (3D) parallel to the X-axis (3D), and a Y parallel to the Y-axis (3D). At least one of the position Ty (3D) of the object OBJ in the axial direction (3D) and the position Tz (3D) of the object OBJ in the Z-axis direction (3D) parallel to the Z-axis (3D) may be calculated. .
  • the 3D matching unit 3122 determines the rotation amount Rx (3D) of the object OBJ around the X-axis (3D) and the rotation amount Ry (3D) of the object OBJ around the Y-axis (3D) as the posture of the object OBJ in the 3D imaging coordinate system. and the amount of rotation Rz (3D) of the object OBJ around the Z-axis (3D).
  • the rotation amounts Rx (3D) of the object OBJ around the X-axis (3D), Y-axis (3D) The rotation amount Ry (3D) of the surrounding object OBJ and the rotation amount Rz (3D) of the object OBJ around the Z axis (3D) are calculated as the posture Rx (3D) of the object OBJ around the X axis (3D) and the Y axis, respectively.
  • (3D) is referred to as the posture Ry (3D) of the surrounding object OBJ and the posture Rz (3D) of the object OBJ around the Z axis (3D).
  • the posture Rx (3D) of the object OBJ around the X-axis (3D), the posture Ry (3D) of the object OBJ around the Y-axis (3D), and the posture Rz (3D) of the object OBJ around the Z-axis (3D) are , respectively, indicate the position of the object OBJ in the rotational direction around the X-axis (3D), the position of the object OBJ in the rotational direction around the Y-axis (3D), and the position of the object OBJ in the rotational direction around the Z-axis (3D), respectively. It may be assumed that there is.
  • the posture Rx (3D) of the object OBJ around the X-axis (3D), the posture Ry (3D) of the object OBJ around the Y-axis (3D), and the posture Rz (3D) of the object OBJ around the Z-axis (3D) are , may be regarded as parameters representing the position of the object OBJ.
  • the 3D matching unit 3122 Each time the 3D matching unit 3122 generates the position and orientation information POI2, it outputs the generated position and orientation information POI2 to the coordinate conversion unit 3125.
  • the 3D matching unit 3122 stores all of the positions and orientations of 6DOF (that is, position Tx (3D), position Ty (3D), position Tz (3D), orientation Rx (3D), orientation Ry (3D), and orientation Rz(3D)) and outputs position/orientation information POI1 indicating the calculated position and orientation of 6DOF to the coordinate conversion unit 3125.
  • the 3D matching unit 3122 may calculate the positions and orientations of the 6 DOFs, and output position and orientation information POI2 indicating a part of the calculated positions and orientations of the 6 DOFs to the coordinate conversion unit 3125. . As another example, the 3D matching unit 3122 may calculate a part of the position and orientation of the 6DOF, and output position and orientation information POI2 indicating a part of the calculated position and orientation of the 6DOF to the coordinate conversion unit 3125. good.
  • the 3D matching unit 3122 may calculate the position and orientation of the object OBJ at a predetermined 3D matching cycle. In other words, the 3D matching unit 3122 may calculate the position and orientation of the object OBJ each time the time corresponding to the 3D matching period elapses. In other words, it may be assumed that a time period corresponding to the 3D matching period is required from when the 3D matching unit 3122 starts the 3D matching process until it completes the 3D matching process. In this case, the 3D matching unit 3122 may output position and orientation information POI2 indicating the position and orientation of the object OBJ to the coordinate conversion unit 3125 at a predetermined 3D matching cycle.
  • the 3D matching period may be longer than the 3D imaging period corresponding to the 3D imaging rate at which the imaging device 22 images the object OBJ.
  • the 3D matching period may be a period in which the 3D matching unit 3122 can perform the 3D matching process from several times to several dozen times (as an example, from 1 time to 30 times) per second.
  • the imaging device 22 generates new image data IMG_3D from when the 3D matching unit 3122 starts the 3D matching process until it completes the 3D matching process.
  • the 3D matching unit 3122 will not be able to process the newly generated image data IMG_3D until the started 3D matching process is completed.
  • the 3D matching unit 3122 may start a new 3D matching process using new image data IMG_3D after completing the already started 3D matching process. Note that even if the 3D matching process that has already been started has not been completed, the 3D matching unit 3122 uses the newly generated image by the imaging device 22 when the imaging device 22 generates new image data IMG_3D. A new 3D matching process using data IMG_3D may be started. Note that the timing at which the image data IMG_3D shown in FIG. 15 is generated may be considered to be the timing at which the imaging device 22 images the object OBJ in order to generate the image data IMG_3D. However, the 3D matching cycle does not need to be longer than the 3D imaging cycle. For example, the 3D matching period may be shorter than the 3D imaging period. For example, the 3D matching period may be the same as the 3D imaging period.
  • the 3D matching unit 3122 performs 3D matching processing using the result of the 2D matching processing performed by the 2D matching unit 3121 (that is, the position and orientation information POI1). Therefore, when the imaging devices 21 and 22 generate image data IMG_2D and IMG_3D, respectively, by capturing an image of the object OBJ at a certain time ta, the control device 3 generates a 2D image using the image data IMG_2D generated at the time ta.
  • the matching process and the 3D matching process using the three-dimensional position data WSD generated from the image data IMG_3D generated at time ta may be performed at different timings.
  • the 2D matching unit 3121 starts 2D matching processing using the image data IMG_2D generated at time ta.
  • the 3D matching unit 3122 uses the three-dimensional position data WSD generated from the image data IMG_3D generated at time ta until the 2D matching process using image data IMG_2D generated at time ta is completed. There is no need to start the 3D matching process. This is because, as described above, the 3D matching unit 3122 determines the initial position and initial orientation of the three-dimensional model WM3 using the results of the 2D matching process.
  • the 3D matching unit 3122 calculates the result of the 2D matching process (that is, the object OBJ in the 2D imaging coordinate system at time ta).
  • the 3D matching process may be started using the position and orientation information POI1) indicating the position and orientation and the three-dimensional position data WSD generated from the image data IMG_3D generated at time ta.
  • the 3D matching unit 3122 may generate position and orientation information POI2 indicating the position and orientation of the object OBJ in the 3D imaging coordinate system at time ta.
  • the 3D matching unit 3122 uses the position and orientation information POI2 that indicates the position and orientation of the object OBJ in the 3D imaging coordinate system at the time ta, and the imaging devices 21 and 22 to image the object OBJ at the time ta. It may be generated after a period corresponding to the sum of the 2D matching period and the 3D matching period has elapsed.
  • the 2D matching unit 3121 performs 2D matching processing using image data IMG_2D generated at one time, and the three-dimensional position generated from image data IMG_3D generated at another time different from one time.
  • the 3D matching unit 3122 may perform 3D matching processing using the data WSD. For example, when the 2D matching unit 3121 performs the 2D matching process using the image data IMG_2D generated at time ta, the 3D matching unit 3122 performs the 2D matching process using the image data IMG_2D generated at time ta. 3D matching processing may be performed using the three-dimensional position data WSD generated from IMG_3D.
  • the 3D matching unit 3122 determines that the remaining time until the 2D matching processing ends is less than a predetermined time.
  • the 3D matching process may be performed using the three-dimensional position data WSD generated from the image data IMG_3D generated at the time.
  • 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.
  • the time from when the 3D matching section 3122 starts to the completion of the 3D matching process may be the same as the time from when the 2D matching section 3121 starts to the completion of the 2D matching process.
  • 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 data size of the three-dimensional position data WSD and the three-dimensional model data WMD used in the 3D matching process is usually larger than the data size of the image data IMG_2D and the two-dimensional model data IMG_2M used in 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. There is a possibility that it will happen. Furthermore, in this embodiment, the 3D matching process includes a position/orientation determination process for determining the initial position and initial orientation of the 3D model WM3 in addition to the matching process using the 3D position data WSD.
  • the matching period can be longer than the 2D matching period. Therefore, the 3D matching unit 3122 may perform processing to shorten the 3D matching period so that the 3D matching period becomes the same as the 2D matching period or so that the 3D matching period becomes shorter than the 2D matching period. .
  • the 3D matching unit 3122 uses the results of the 2D matching process (for example, the above-mentioned position Tx (2D), position Ty (2D), position Tz (2D), attitude Rx (2D), attitude Ry (2D), and Based on the position and orientation information POI1) indicating Rz (2D), a part of the data portion of the three-dimensional position data WSD may be selected as the 3D matching target data for performing the 3D matching process.
  • the 3D matching unit 3122 may estimate the area where the object OBJ is estimated to exist within the 3D imaging coordinate system based on the position and orientation information POI1.
  • the 3D matching unit 3122 converts position and orientation information POI1 indicating the position and orientation of the object OBJ in the 2D imaging coordinate system to position and orientation information POI1_conv indicating the position and orientation of the object OBJ in the 3D imaging coordinate system. You can. Thereafter, the 3D matching unit 3122 may estimate an area where the object OBJ is estimated to exist within the 3D imaging coordinate system based on the position and orientation information POI1_conv. For example, the 3D matching unit 3122 may estimate an area of a predetermined size that includes the position indicated by the position and orientation information POI1_conv as an area in which the object OBJ is estimated to exist within the 3D imaging coordinate system.
  • the 3D matching unit 3122 may estimate a region of a predetermined shape that includes the position indicated by the position and orientation information POI1_conv as the region in which the object OBJ is estimated to exist within the 3D imaging coordinate system. Thereafter, the 3D matching unit 3122 may select a part of the data portion of the three-dimensional position data WSD that corresponds to a region where the object OBJ is estimated to exist, as the 3D matching target data. Thereafter, the 3D matching unit 3122 may perform 3D matching processing on the 3D matching target data that is part of the 3D position data WSD.
  • the three-dimensional position data WSD may include not only a data part related to the object OBJ but also a data part related to another object different from the object OBJ. This is because the imaging range (field of view) of the imaging device 22 that generates the image data IMG_3D used to generate the three-dimensional position data WSD includes not only the object OBJ but also other objects different from the object OBJ.
  • the three-dimensional position data WSD is generated from the image data IMG_3D generated by the imaging device 22 capturing an image of the work W placed on the support surface S
  • the three-dimensional position data WSD is There is a possibility that it includes not only a data part related to the support surface S but also a data part related to the support surface S.
  • the process of selecting the 3D matching target data described above is equivalent to the process of selecting the data portion related to the workpiece W.
  • the 3D matching target data may typically be considered to be equivalent to data obtained by removing a data portion related to another object different from the object OBJ from the three-dimensional position data WSD.
  • the 3D matching target data may be considered to be typically equivalent to data obtained by selectively extracting a data portion related to the object OBJ from the three-dimensional position data WSD.
  • the operation of selecting the 3D matching target data that is part of the 3D position data WSD is equivalent to the operation of not selecting (or deleting) the data part other than the 3D matching target data of the 3D position data WSD. It may be assumed that Therefore, based on the result of the 2D matching process, the 3D matching unit 3122 selects a part of the data portion of the three-dimensional position data WSD that corresponds to an area where it is estimated that the object OBJ does not exist (for example, as described above). 3D matching target data, which is a part of the three-dimensional position data WSD, may be generated by deleting the data portion related to an object different from the object OBJ.
  • the 3D matching unit 3122 may select 3D matching target data based on a user's instruction specifying a part of the data portion of the three-dimensional position data WSD.
  • the control device 3 uses an output device 35 including a display device to provide a GUI that can be operated by the user in order to designate a part of the data portion of the three-dimensional position data WSD as 3D matching target data. (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 that is an example of the three-dimensional position data WSD, and displays a plurality of points corresponding to the object OBJ among the plurality of points.
  • a GUI that can be operated by the user may be displayed to specify a point.
  • the control device 3 uses the output device 35 including a display device to display a depth image indicated by depth image data that is an example of the three-dimensional position data WSD, and selects pixels corresponding to the object OBJ in the depth image.
  • a GUI that can be operated by the user may be displayed for specification.
  • the 3D matching unit 3122 may perform 3D matching processing on 3D matching target data, which is a part of the 3D position data WSD specified by the user. As a result, the 3D matching cycle becomes shorter than when the 3D matching process is performed on the entire three-dimensional position data WSD.
  • Tracking processing performed by the tracking unit 3123 performs tracking processing such that the imaging device 21 images the object OBJ at a first time t1 and a second time t2 after the first time t1. Tracking processing is performed using the two image data IMG_2D#t1 and IMG_2D#t2 generated by this. As shown in FIG. 17, the tracking process using the two image data IMG_2D#t1 and IMG_2D#t2 is performed by tracking at least one feature point (for example, a feature point and an edge) of the object OBJ reflected in the image data IMG_2D#t1.
  • the tracking process using the two image data IMG_2D#t1 and IMG_2D#t2 is performed by tracking at least one feature point (for example, a feature point and an edge) of the object OBJ reflected in the image data IMG_2D#t1.
  • the tracking unit 3123 calculates the amount of change in the position of at least one feature point between the first time t1 and the second time t2 by performing tracking processing. Specifically, the tracking unit 3123 generates position information PI4 indicating the position of at least one feature of the object OBJ at the first time t1, based on the image data IMG_2D#t1 at the first time t1. For example, the tracking unit 3123 may generate position information PI4 indicating the position of the feature in at least one of the X-axis direction (2D) and the Y-axis direction (2D) in the 2D imaging coordinate system.
  • the tracking unit 3123 generates position information PI5 indicating the position of at least one feature of the object OBJ at the second time t2, based on the image data IMG_2D#t2 at the second time t2. For example, the tracking unit 3123 may generate position information PI5 indicating the position of the feature in at least one of the X-axis direction (2D) and the Y-axis direction (2D) in the 2D imaging coordinate system.
  • each of the position information PI4 and PI5 indicates the position of a characteristic location in each of the X-axis direction (2D) and the Y-axis direction (2D).
  • the tracking unit 3123 calculates the amount of change in at least one of the position and orientation of the object OBJ between the first time t1 and the second time t2 based on the position information PI4 and PI5. As a result, the tracking unit 3123 generates change amount information VI indicating the amount of change in at least one of the position and orientation of the object OBJ between the first time t1 and the second time t2.
  • the position and orientation calculation unit 312 calculates both the position and orientation of the object OBJ.
  • the tracking unit 3123 may generate change amount information VI indicating the amount of change in both the position and orientation of the object OBJ.
  • change amount information VI indicating the amount of change in both the position and orientation of the object OBJ.
  • the tracking unit 3123 may calculate the amount of change in the position of the object OBJ in the 2D imaging coordinate system.
  • the tracking unit 3123 calculates the amount of change ⁇ Tx (2D) in the position Tx (2D) of the object OBJ in the X-axis direction (2D) and the object in the Y-axis direction (2D) as the amount of change in the position of the object OBJ in the 2D imaging coordinate system.
  • At least one of the amount of change ⁇ Ty (2D) in the position Ty (2D) of OBJ and the amount of change ⁇ Tz (2D) in the position Tz (2D) of the object OBJ in the Z-axis direction (2D) may be calculated.
  • the tracking unit 3123 calculates the change amount ⁇ Rx (2D) in the posture Rx (2D) of the object OBJ around the X-axis (2D) and the object around the Y-axis (2D) as the amount of change in the posture of the object OBJ in the 2D imaging coordinate system. At least one of the amount of change ⁇ Ry(2D) in the posture Ry(2D) of OBJ and the amount ⁇ Rz(2D) of change in the posture Rz(2D) of the object OBJ around the Z-axis (2D) may be calculated.
  • the tracking unit 3123 may calculate the amount of change in the position of the object OBJ in the 3D imaging coordinate system.
  • the tracking unit 3123 calculates the amount of change ⁇ Tx (3D) in the position Tx (3D) of the object OBJ in the X-axis direction (3D) and the object in the Y-axis direction (3D) as the amount of change in the position of the object OBJ in the 3D imaging coordinate system.
  • At least one of the amount of change ⁇ Ty (3D) in the position Ty (3D) of OBJ and the amount of change ⁇ Tz (3D) in the position Tz (3D) of the object OBJ in the Z-axis direction (3D) may be calculated.
  • the tracking unit 3123 calculates the change amount ⁇ Rx (3D) in the posture Rx (3D) of the object OBJ around the X-axis (3D) and the object around the Y-axis (3D) as the amount of change in the posture of the object OBJ in the 3D imaging coordinate system. At least one of the amount of change ⁇ Ry (3D) in the posture Ry (3D) of OBJ and the amount ⁇ Rz (3D) of change in the posture Rz (3D) of the object OBJ around the Z-axis (3D) may be calculated.
  • the tracking unit 3123 may calculate the amount of change in the position of the object OBJ in the global coordinate system.
  • the tracking unit 3123 calculates, as the amount of change in the position of the object OBJ in the global imaging coordinate system, the amount of change ⁇ Tx (GL) in the position Tx (GL) of the object OBJ in the X-axis direction (GL), and the amount of change ⁇ Tx (GL) in the position Tx (GL) of the object OBJ in the Y-axis direction (GL).
  • At least one of the amount of change ⁇ Ty (GL) in the position Ty (GL) of OBJ and the amount of change ⁇ Tz (GL) in the position Tz (GL) of object OBJ in the Z-axis direction (GL) may be calculated.
  • the tracking unit 3123 calculates the amount of change ⁇ Rx (GL) in the posture Rx (GL) of the object OBJ around the X-axis (GL) and the amount of change ⁇ Rx (GL) in the posture of the object OBJ around the Y-axis (GL) as the amount of change in the posture of the object OBJ in the global imaging coordinate system.
  • At least one of the amount of change ⁇ Ry(GL) in the posture Ry(GL) of OBJ and the amount ⁇ Rz(GL) of change in the posture Rz(GL) of the object OBJ around the Z-axis (GL) may be calculated.
  • the amount of change in the position of the object OBJ calculated by the tracking unit 3123 may be considered to be equivalent to the amount of change in the relative position of the object OBJ and the imaging device 21.
  • the amount of change in the posture of the object OBJ calculated by the tracking unit 3123 may be considered to be equivalent to the amount of change in the relative posture of the object OBJ and the imaging device 21.
  • the tracking unit 3123 generates the change amount information VI based on the three-dimensional position data WSD in addition to the two image data IMG_2D#t1 and IMG_2D#t2. Specifically, in addition to the two image data IMG_2D#t1 and IMG_2D#t2 generated by the imaging device 22 capturing images of the object OBJ at the first time t1 and the second time t2, the tracking unit 3123 The change amount information VI is also generated based on the three-dimensional position data WSD generated from the image data IMG_3D generated by the imaging device 22 capturing an image of the object OBJ at the third time t3.
  • the third time t3 at which the imaging device 22 images the object OBJ for the tracking process is the same time as the second time t2 at which the imaging device 21 images the object OBJ for the tracking process.
  • the tracking unit 3123 records the image data IMG_3D generated by the imaging device 22 imaging the object OBJ at the third time t3, which is the same as the second time t2.
  • the amount of change information VI is also generated based on the three-dimensional position data WSD generated from the three-dimensional position data WSD.
  • the state that "the second time t2 and the third time t3 are the same time” may include the state that "the second time t2 and the third time t3 are literally the same time”. good.
  • the state where "the second time t2 and the third time t3 are the same time” means “the second time t2 and the third time t3 are not completely the same time, but the second time t2 and the third time t3 are the same time”.
  • the second time t2 and the third time t3 can be considered to be substantially the same time because the time difference with t3 is smaller than the allowable upper limit value.
  • the allowable upper limit value may be an allowable upper limit value based on a control error of the robot arm 12.
  • the time difference between the second time t2 and the third time t3 causes an error in the calculation result of at least one of the position and orientation of the object OBJ, which will be described later (in other words, the calculated position and orientation of the object OBJ).
  • an error in the calculation of at least one of the position and orientation of the object OBJ may cause a control error in the robot arm 12.
  • a control error of the robot arm 12 becomes a movement error of the end effector 13, and the end effector 13 may not be able to appropriately perform a predetermined process on the object OBJ.
  • the allowable upper limit value can also be said to be the allowable upper limit value of the movement error of the end effector 13 by the robot arm 12. Further, for example, even if there is a time difference between the second time t2 and the third time t3 due to a synchronization error in the imaging processing of the imaging devices 21 and 22, the second time t2 and the third time t3 are substantially different from each other. It may be assumed that they are at the same time. Note that the synchronization error in the imaging processing of the imaging devices 21 and 22 may be a synchronization control error in the imaging processing of the imaging devices 21 and 22 by the control device 3.
  • the second time t2 and the third time t3 may be different times.
  • the state where "the second time t2 and the third time t3 are different times" means "the time difference between the second time t2 and the third time t3 is larger than the allowable upper limit, so the second time t2 and the third time t3 are different”.
  • the third time t3 may not be considered to be substantially the same time.
  • the imaging devices 21 and 22 when the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are relatively displaced, the imaging devices 21 and 22 The object OBJ may be imaged so that the second time t2 and the third time t3 are the same time. That is, when the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are relatively displaced, the control device 3 The imaging devices 21 and 22 may be controlled so that the third time t3 is the same time. The reason for this will be explained again when explaining the effects of the robot system SYS.
  • the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced, the imaging devices 21 and 22 capture images of the object OBJ at the second time. It is not necessary to image the object OBJ so that t2 and third time t3 are the same time. That is, the control device 3 does not have to control the imaging devices 21 and 22 so that the second time t2 and the third time t3 are the same time. For example, the imaging devices 21 and 22 may image the object OBJ so that the second time t2 and the third time t3 are different times.
  • the control device 3 may control the imaging devices 21 and 22 so that the second time t2 and the third time t3 are different times.
  • the imaging devices 21 and 22 image the object OBJ during a period in which each of the imaging devices 21 and 22 and the object OBJ are not relatively displaced, the imaging devices 21 and 22
  • the object OBJ may be imaged so that the third time t3 and the third time t3 are the same time. That is, the control device 3 may control the imaging devices 21 and 22 so that the second time t2 and the third time t3 are the same time.
  • the tracking unit 3123 In order to generate the change amount information VI based on the three-dimensional position data WSD, the tracking unit 3123 first generates position information PI3 indicating the position of at least one feature of the object OBJ based on the three-dimensional position data WSD. generate. Since the three-dimensional position data WSD is generated from the image data IMG_3D generated by the image capturing device 22 capturing an image of the object OBJ at the third time t3, the tracking unit 3123 calculates the first position based on the three-dimensional position data WSD. 3. Position information PI3 indicating the position of at least one characteristic point of object OBJ at time t3 is generated.
  • the tracking unit 3123 may calculate the position of at least one feature of the object OBJ in the Z-axis direction (3D) of the 3D imaging coordinate system. In this case, the tracking unit 3123 determines the position of the object OBJ in the Z-axis direction (3D) of the 3D imaging coordinate system based on the three-dimensional position of each of the plurality of points of the object OBJ in the 3D imaging coordinate system indicated by the three-dimensional position data WSD. The position of at least one feature point may be calculated. As a result, the tracking unit 3123 may generate position information PI3 indicating the position of at least one feature of the object OBJ in the Z-axis direction (3D).
  • the tracking unit 3123 may calculate the position of at least one feature point of the object OBJ in the Z-axis direction (2D) of the 2D imaging coordinate system.
  • the tracking unit 3123 stores the above coordinate system information (for example, the position in one of the 2D imaging coordinate system and the 3D imaging coordinate system, and the position in one of the 2D imaging coordinate system and the 3D imaging coordinate system).
  • conversion matrix for converting to a position in the coordinate system of It may also be converted into the three-dimensional position of each of a plurality of points on the OBJ.
  • the tracking unit 3123 may calculate the position of at least one feature of the object OBJ in the Z-axis direction (2D) based on the three-dimensional positions of each of the plurality of points of the object OBJ in the 2D imaging coordinate system. . As a result, the tracking unit 3123 may generate position information PI3 indicating the position of at least one feature of the object OBJ in the Z-axis direction (2D).
  • the tracking unit 3123 After that, the tracking unit 3123 generates change amount information based on the position information PI4 and PI5 generated from the two image data IMG_2D#t1 and IMG_2D#t2, respectively, and the position information PI3 generated from the three-dimensional position data WSD. Generate a VI. Specifically, the tracking unit 3123 calculates the position information PI5, which indicates the position of at least one characteristic part of the object OBJ at the second time t2, from a third point that is the same as the second time t2 (however, different depending on the case). Position information PI3 indicating the position of at least one feature point of object OBJ at time t3 is reflected.
  • the position information PI5 indicates the position of the feature in each of the X-axis direction (2D) and the Y-axis direction (2D), as described above
  • the position information PI3 indicates the position of the characteristic location in the Z-axis direction (2D) as described above.
  • the position of the feature point in the direction (2D) or the Z-axis direction (3D) is shown.
  • the tracking unit 3123 detects the feature in the Z-axis direction (2D) or the Z-axis direction (3D) indicated by the position information PI3 with respect to the position information PI5 that does not indicate the position of the feature in the Z-axis direction (2D).
  • the location of the part may also be added.
  • the tracking unit 3123 calculates the position information PI5 from the three-dimensional position data WSD in addition to the positions of the characteristic points in the X-axis direction (2D) and Y-axis direction (2D) calculated from the image data IMG_2D.
  • the position information PI3 is reflected in the position information PI5 so that the position information indicates the position of the characteristic location in the Z-axis direction (2D) or the Z-axis direction (3D).
  • both the position information PI5 and the position information PI3 indicate the position in the 2D imaging coordinate system.
  • the coordinate system of the position indicated by the position information PI5 is the same as the coordinate system of the position indicated by the position information PI3.
  • the tracking unit 3123 may add the position information PI3 indicating the position of the feature in the 2D imaging coordinate system to the position information PI5 indicating the position of the feature in the 2D imaging coordinate system. good.
  • the position information PI3 indicates the position of the feature in the Z-axis direction (3D)
  • the position information PI3 indicates the position in the 3D imaging coordinate system
  • the position information PI5 indicates the position in the 2D imaging coordinate system. It shows the position in the imaging coordinate system.
  • the coordinate system of the position indicated by the position information PI5 is different from the coordinate system of the position indicated by the position information PI3.
  • the tracking unit 3123 converts one of the position information PI3 and PI5 so that the coordinate system of the position indicated by the position information PI5 is the same as the coordinate system of the position indicated by the position information PI3, and then converts the coordinate system to the position information PI5.
  • Position information PI3 may be added to the information.
  • the tracking unit 3123 may store the above coordinate system information (for example, a position in one of the 2D imaging coordinate system and 3D imaging coordinate system, and a position in the other coordinate system of the 2D imaging coordinate system and 3D imaging coordinate system)
  • the position of the feature in the 2D imaging coordinate system indicated by the position information PI5 is converted to the position of the feature in the 3D imaging coordinate system using a transformation matrix for converting to a position in the coordinate system.
  • the tracking unit 3123 may add position information PI3 that has been converted to indicate the position of the feature in the 3D imaging coordinate system to position information PI5 indicating the position of the feature in the 3D imaging coordinate system. .
  • the tracking unit 3123 After that, the tracking unit 3123 generates change amount information VI based on the position information PI4 and the position information PI5 on which the position information PI3 is reflected. In other words, the tracking unit 3123 detects a change in at least one of the position and orientation of the object OBJ between the first time t1 and the second time t2 based on the position information POI4 and the position information PI5 reflecting the position information PI3. Calculate the amount.
  • the position information PI4 indicates the position of the characteristic location in each of the X-axis direction and the Y-axis direction.
  • the position information PI5 indicates the position of the characteristic location in each of the X-axis direction, Y-axis direction, and Z-axis direction.
  • the process of calculating the amount of change information VI indicating the amount of change in the position and orientation of the object OBJ can be considered to be substantially equivalent to the process of solving a PnP (Perspective n Point) problem.
  • PnP Perspective n Point
  • a general PnP problem involves solving the positions (three-dimensional positions) of n feature points of object OBJ existing in three-dimensional space and the positions of n feature points of object OBJ on a two-dimensional image.
  • This is a problem of estimating the position and orientation (specifically, the translation matrix and rotation matrix) of the imaging device 21 or 22 that images the object OBJ.
  • the estimated translation matrix and rotation matrix convert the position and orientation of the object OBJ existing in the three-dimensional space to the position and orientation of the object OBJ on the two-dimensional image, or conversely, convert the position and orientation of the object OBJ in the two-dimensional image.
  • the tracking unit 3123 uses position information PI4 indicating the positions (two-dimensional positions) of n feature points of the object OBJ at the first time t1 and the position information PI4 of the object OBJ at the second time t2 as a PnP problem.
  • position information PI4 indicating the positions (two-dimensional positions) of n feature points of the object OBJ at the first time t1 and the position information PI4 of the object OBJ at the second time t2 as a PnP problem.
  • a problem may be set up to estimate the required translation and rotation matrices.
  • the tracking unit 3123 may estimate the translation matrix and rotation matrix by solving a PnP problem. Thereafter, the tracking unit 3123 may calculate the amount of change in the position of the object OBJ between the first time t1 and the second time t2 based on the estimated translation matrix. The tracking unit 3123 may calculate the amount of change in the posture of the object OBJ between the first time t1 and the second time t2 based on the estimated rotation matrix.
  • the method for calculating the amount of change in the position and orientation of object OBJ is limited to tracking processing using two image data IMG_2D#t1 and IMG_2D#t2 (and three-dimensional position data WSD if necessary). do not have.
  • the tracking unit 3123 uses another well-known method to calculate the amount of change in the position and orientation of the object OBJ using the two image data IMG_2D#t1 and IMG_2D#t2 (and the three-dimensional position data WSD as necessary). may be used to calculate the amount of change in the position and orientation of the object OBJ.
  • a method for calculating the amount of change in the position and orientation of object OBJ is to use machine learning or deep learning to calculate two image data IMG_2D#t1 and IMG_2D#t2 (and three-dimensional position data WSD as necessary).
  • the amount of change in the position and orientation of the object OBJ may be calculated based on the above.
  • machine learning or deep learning when two image data IMG_2D#t1 and IMG_2D#t2 (and three-dimensional position data WSD if necessary) are input, the amount of change in the position and orientation of the object OBJ is output.
  • the position and orientation of the object OBJ can be determined by constructing a prediction model in advance for The amount of change may also be calculated.
  • the tracking unit 3123 may include this prediction model.
  • the tracking unit 3123 calculates the change amount information VI, it outputs the generated change amount information VI to the coordinate conversion unit 3125.
  • the tracking unit 3123 detects all of the changes in the positions and orientations of the 6 DOFs (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 ⁇ Ry (2D) and the amount of change ⁇ Rz (2D), or 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, and the amount of change information VI indicating the amount of change in the calculated position and orientation of 6 DOF may be output to the coordinate conversion unit 3125.
  • the tracking unit 3123 calculates a part of the amount of change in the position and orientation of the 6DOF, and transfers the amount of change information VI indicating a part of the amount of change in the calculated position and orientation of the 6DOF to the coordinate conversion unit 3125. You can also output to
  • the tracking unit 3123 may calculate the amount of change in the position and orientation of the object OBJ at a predetermined tracking cycle. In other words, the tracking unit 3123 may calculate the amount of change in the position and orientation of the object OBJ each time the time corresponding to the tracking period elapses. Conversely, it may be assumed that a time period corresponding to the tracking cycle is required from when the tracking unit 3123 starts tracking processing until it completes the tracking process. In this case, the tracking unit 3123 may output change amount information VI indicating the amount of change in the position and orientation of the object OBJ to the coordinate conversion unit 3125 at a predetermined tracking cycle.
  • the tracking period may be the same as the 2D imaging period corresponding to the 2D imaging rate at which the imaging device 21 images the object OBJ.
  • the tracking cycle may be a cycle that allows the tracking unit 3123 to perform tracking processing several tens to hundreds of times (as an example, 500 times) per second.
  • the tracking unit 3123 determines whether the image data IMG_2D#ta is generated at time ta, at the same time as or after the image data IMG_2D#ta is generated at time ta and at time ta-1 before time ta.
  • Tracking processing may be performed using image data IMG_2D#ta and IMG_2D#ta-1 and three-dimensional position data WSD generated using image data IMG_3D#ta generated at time ta.
  • the tracking unit 3123 generates the image data IMG_2D#ta+1 at time ta+1 at the same time or after the image data IMG_2D#ta+1 is generated, at time ta+1 and at time ta before time ta+1.
  • Tracking processing may be performed using data IMG_2D#ta+1 and IMG_2D#ta and three-dimensional position data WSD generated using image data IMG_3D#ta+1 generated at time ta+1.
  • the amount of change in the position and orientation of the object OBJ between times ta and ta+1 is calculated.
  • the timing at which the image data IMG_2D shown in FIG. 18 is generated may be considered to be the timing at which the imaging device 21 images the object OBJ in order to generate the image data IMG_2D.
  • the tracking period may be the same as the 3D imaging period corresponding to the 3D imaging rate at which the imaging device 22 images the object OBJ.
  • the tracking unit 3123 generates the image data IMG_3D#ta using the image data IMG_3D#ta generated at the time ta, simultaneously with or after the image data IMG_3D#ta is generated at the time ta.
  • Tracking processing may be performed using the three-dimensional position data WSD generated at time ta and image data IMG_2D#ta and IMG_2D#ta-1 generated at time ta-1 before time ta.
  • the tracking unit 3123 generates image data IMG_3D#ta+1 using image data IMG_3D#ta+1 generated at time ta+1, simultaneously with or after image data IMG_3D#ta+1 is generated at time ta+1.
  • Tracking processing may be performed using the three-dimensional position data WSD and the image data IMG_2D#ta+1 and IMG_2D#ta generated at time ta+1 and time ta before time ta+1.
  • the timing at which the image data IMG_3D shown in FIG. 18 is generated may be considered to be the timing at which the imaging device 22 images the object OBJ in order to generate the image data IMG_3D.
  • the tracking period does not have to be the same as the 2D imaging period.
  • the tracking period may be shorter than the 2D imaging period.
  • the tracking period may be longer than the 2D imaging period.
  • the tracking period may not be the same as the 3D imaging period.
  • the tracking period may be shorter than the 3D imaging period.
  • the tracking period may be longer than the 3D imaging period.
  • the tracking period is shorter than the 2D matching period in which the 2D matching section 3121 described above performs 2D matching processing. That is, the 2D matching period is longer than the tracking period.
  • the arithmetic unit 31 only needs to perform calculations focusing on the data portions of the image data IMG_2D and the three-dimensional position data WSD that are related to the characteristic locations of the object OBJ, while in the matching process, The calculation device 31 needs to perform calculations to search for the object OBJ from the entire image data IMG_2D and three-dimensional position data WSD.
  • the amount of calculation required to perform the tracking process is usually smaller than the amount of calculation required to perform the matching process.
  • the tracking period is usually shorter than the 2D matching period. Therefore, the tracking unit 3123 may perform tracking processing multiple times from the start to the end of one 2D matching cycle. That is, the tracking unit 3123 may perform the tracking process multiple times from when the 2D matching unit 3121 starts the 2D matching process until it completes the 2D matching process.
  • the 2D matching period is considered to be equivalent to the time from when the object OBJ is imaged by the imaging device 21 until the position and orientation information POI1 is generated based on the image data IMG_2D. good.
  • the tracking period is determined by the two image data IMG_2D#t1 and IMG_2D#t2 generated at the first time t1 and the second time t2 after the imaging device 21 captures an image of the object OBJ at the second time t2. It may be considered that this is equivalent to the time until the change amount information VI is generated based on the three-dimensional position data WSD generated using the image data IMG_3D generated at time t2. For example, in the example shown in FIG.
  • the tracking period is an example of a first time t1 and a second time t2 after the object OBJ is imaged by the imaging device 21 at a time ta, which is an example of a second time t2.
  • Change amount information VI is generated based on two image data IMG_2D generated at time ta-1 and time ta and three-dimensional position data WSD generated using image data IMG_3D#ta generated at time ta. It may be assumed that the time required for
  • the tracking period is based on two image data IMG_2D#t1 and IMG_2D#t2 generated at the first time t1 and the second time t2 after the object OBJ is imaged at the first time t1 by the imaging device 21 and the second time. It may be considered that this is equivalent to the time until the change amount information VI is generated based on the three-dimensional position data WSD generated using the image data IMG_3D generated at t2.
  • the tracking period is from when the object OBJ is imaged by the imaging device 21 at time ta-1, which is an example of the first time t1, to the first time t1 and the second time t2, which is an example.
  • the amount of change information VI is based on the two image data IMG_2D generated at time ta-1 and time ta, and the three-dimensional position data WSD generated using the image data IMG_3D#ta generated at time ta. It may be considered that it is equivalent to the time until it is generated. Even in this case, the tracking period may be shorter than the 2D matching period.
  • the tracking unit 3123 performs the tracking process using image data IMG_2D that is different from the image data IMG_2D used for the 2D matching process. It's okay.
  • the 2D matching unit 3121 performs 2D matching processing using image data IMG_2D generated at time ta, and the 2D matching processing using image data IMG_2D generated at time ta ends. After that, 2D matching processing is performed using the image data IMG_2D generated at time tb.
  • the tracking unit 3123 uses two pieces of image data IMG_2D generated at two times different from times ta and tb, and image data IMG_3D generated at a time different from times ta and tb. Tracking processing may be performed using the three-dimensional position data WSD.
  • the tracking unit 3123 stores two image data IMG_2D and By performing tracking processing using the three-dimensional position data WSD generated using the image data IMG_3D generated at time ta+2 (or any time in the period between time ta and time tb), the time The amount of change in the position and orientation of the object OBJ between ta+1 and ta+2 may be calculated.
  • the tracking unit 3123 may perform the tracking process using the image data IMG_2D used for the 2D matching process. For example, in the example shown in FIG. 18, the tracking unit 3123 uses two image data IMG_2D generated at times ta and ta+1, and three-dimensional position data WSD generated using image data IMG_3D generated at time ta+1. The amount of change in the position and orientation of the object OBJ between times ta and ta+1 may be calculated by performing tracking processing using the following.
  • the tracking period is shorter than the 3D matching period in which the 3D matching section 3122 described above performs 3D matching processing. That is, the 3D matching period is longer than the tracking period. Therefore, the tracking unit 3123 may perform tracking processing multiple times from the start to the end of one 3D matching cycle. That is, the tracking unit 3123 may perform the tracking process multiple times from when the 3D matching unit 3122 starts the 3D matching process until it completes the 3D matching process.
  • the position and orientation information POI2 is generated based on the three-dimensional position data WSD generated using the image data IMG_3D after the object OBJ is imaged by the imaging device 22. It may be considered that the time is equivalent to
  • the tracking unit 3123 uses three-dimensional position data generated using image data IMG_3D different from image data IMG_3D used for the 3D matching process. Tracking processing may be performed using WSD.
  • the 3D matching unit 3122 performs 3D matching processing using the three-dimensional position data WSD generated from the image data IMG_3D generated at time ta, and After the 3D matching process using the three-dimensional position data WSD generated from IMG_3D is completed, the 3D matching process is performed using the three-dimensional position data WSD generated from the image data IMG_3D generated at time tb.
  • the tracking unit 3123 uses three-dimensional position data WSD generated from image data IMG_3D generated at a time different from times ta and tb, and two dimensional position data WSD generated at two times different from times ta and tb. Tracking processing may be performed using the image data IMG_2D. For example, in the example shown in FIG. 18, the tracking unit 3123 combines three-dimensional position data WSD generated from image data IMG_3D generated at time ta+2 (or any time in the period between time ta and time tb).
  • the position of object OBJ between time ta+1 and ta+2 is determined. and the amount of change in posture may be calculated.
  • the tracking unit 3123 may perform the tracking process using the three-dimensional position data WSD generated using the image data IMG_3D used for the 3D matching process.
  • the tracking unit 3123 uses three-dimensional position data WSD generated from image data IMG_3D generated at time ta, three-dimensional position data WSD generated from image data IMG_3D generated at time ta, and three-dimensional position data WSD generated at time ta and time ta-1 before time ta.
  • the amount of change in the position and orientation of the object OBJ between times ta-1 and ta may be calculated by performing tracking processing using the image data IMG_2D#ta and IMG_2D#ta-1.
  • the tracking period does not need to be shorter than the 2D matching period.
  • the tracking period may be the same as the 2D matching period.
  • the tracking period may be longer than the 2D matching period.
  • the tracking period need not be shorter than the 3D matching period.
  • the tracking period may be the same as the 3D matching period.
  • the tracking period may be longer than the 3D matching period.
  • the tracking unit 3123 does not need to calculate the amount of change in the position and orientation of the object OBJ within the 2D imaging coordinate system between the first time t1 and the second time t2. For example, the tracking unit 3123 performs the above-described matching process on each of the two image data IMG_2D#t1 and IMG_2D#t2, thereby determining the object OBJ in the 2D imaging coordinate system at the first time t1 and the second time t2. The position and orientation may also be calculated. Note that since the position and orientation of the object OBJ are calculated at different times (for example, times t1 and t2), the process performed by the tracking unit 3123 here can also be called a tracking process.
  • the tracking unit 3123 performs matching processing on each of the two image data IMG_2D#t1 and IMG_2D#t2 using a smaller number of feature locations than the feature locations of the object OBJ used for the matching processing by the 2D matching unit 3121 described above. You may do so. In this case, the tracking unit 3123 can shorten the calculation time required for the matching process, and therefore can perform the tracking process in a shorter period than the matching process by the 2D matching unit 3121.
  • the coordinate conversion unit 3125 calculates the position of object OBJ in the global coordinate system based on the results of the matching process and the results of the tracking process. That is, the coordinate conversion unit 3125 converts the position of the object OBJ in the global coordinate system into position Tx (GL), position Ty (GL), position Tz (GL), orientation Rx (GL), orientation Ry (GL), and orientation Rz. Calculate (GL).
  • the coordinate conversion unit 3125 generates position/orientation information POI0 indicating position Tx (GL), position Ty (GL), position Tz (GL), orientation Rx (GL), orientation Ry (GL), and orientation Rz (GL). .
  • the coordinate transformation unit 3125 corrects the result of the matching process based on the result of the tracking process. Specifically, as shown in FIG. 10, the coordinate conversion unit 3125 converts the position Tx (3D), position Ty (3D), position Tz (3D), and posture Rx from the 3D matching unit 3122 as a result of the matching process. (3D), position/orientation information POI2 indicating orientation Ry (3D) and orientation Rz (3D) is acquired.
  • the coordinate conversion unit 3125 receives the amount of change ⁇ Tx (2D), the amount of change ⁇ Ty (2D), the amount of change ⁇ Tz (2D), the amount of change ⁇ Rx (2D), and the amount of change ⁇ Ry from the tracking unit 3123 as a result of the tracking process.
  • (2D) and change amount information VI indicating the change amount ⁇ Rz (2D), change amount ⁇ Tx (3D), change amount ⁇ Ty (3D), change amount ⁇ Tz (3D), change amount ⁇ Rx (3D), change amount ⁇ Ry (3D).
  • the coordinate conversion unit 3125 first matches the coordinate system of the position and orientation information POI2 with the coordinate system of the change amount information VI.
  • the coordinate conversion unit 3125 converts 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).
  • the coordinate conversion unit 3125 uses the coordinate system information described above (for example, the transformation matrix M (3D to 2D) for converting a position in the 3D imaging coordinate system to a position in the 2D imaging coordinate system) to perform 3D imaging.
  • the coordinate system and amount of change of the position and orientation information POI2 can be changed.
  • the coordinate system of the information VI may be made to match.
  • the coordinate conversion unit 3125 converts the 2D imaging coordinates using the coordinate system information described above (for example, the transformation matrix M (2D to 3D) for converting a position in the 2D imaging coordinate system to a position in the 3D imaging coordinate system).
  • the position and orientation information POI2 is The coordinate system and the coordinate system of the change amount information VI may be made to match.
  • the imaging devices 21 and 22 are configured such that the origin of the 2D imaging coordinate system is the origin of the 3D imaging coordinate system. They may be arranged as close to the origin as possible.
  • the imaging devices 21 and 22 may be arranged so 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 so 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 so 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 conversion unit 3125 may align both the coordinate system of the position/orientation information POI2 and the coordinate system of the change amount information VI with the global coordinate system.
  • the coordinate conversion unit 3125 converts the position and orientation of the object OBJ in the 3D imaging coordinate system using a transformation matrix M (3DtoGL) for converting the position in the 3D imaging coordinate system to the position in the global coordinate system.
  • the position and orientation information POI2 shown may be converted into position and orientation information POI2 that represents the position and orientation of the object OBJ in the global coordinate system.
  • the coordinate conversion unit 3125 uses a transformation matrix M (2DtoGL) for converting a position in the 2D imaging coordinate system to a position in the global coordinate system, and changes the position and orientation of the object OBJ in the 2D imaging coordinate system.
  • the change amount information VI indicating the amount may be converted into change amount information VI indicating the amount of change in the position and orientation of the object OBJ in the global coordinate system.
  • the transformation matrix M (2DtoGL) includes, for example, the product of transformation matrices that reflect changes in the position coordinates of the imaging device 21 due to the rotation of the link 121 around the axis defined by each joint 122 of the robot arm 12. You can stay there.
  • the transformation matrix M (3DtoGL) includes, for example, a product of transformation matrices that reflects changes in the position coordinates of the imaging device 22 due to the rotation of the link 121 around the axis defined by each joint 122 of the robot arm 12. It's okay to stay.
  • This transformation matrix may be a so-called rotation matrix, a rotation matrix including a translation component, or a matrix based on Euler angles. Note that an existing transformation method may be used for the coordinate transformation of the robot arm using the transformation matrix, so a detailed explanation thereof will be omitted.
  • the coordinate conversion unit 3125 converts 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), both the coordinate system of the position/orientation information POI2 and the coordinate system of the change amount information VI are 3D imaging coordinate systems.
  • the coordinate system of the position/orientation information POI2 and the coordinate system of the change amount information VI already match.
  • the coordinate conversion unit 3125 does not need to separately perform processing for matching the coordinate system of the position and orientation information POI2 with the coordinate system of the change amount information VI.
  • the coordinate conversion unit 3125 converts 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 coordinate transformation unit 3125 uses the transformation matrix M (3DtoGL) to convert the position and orientation information POI2 indicating the position and orientation of the object OBJ in the 3D imaging coordinate system to the position and orientation information POI2 indicating the position and orientation of the object OBJ in the global coordinate system. It may be converted into position and orientation information POI2.
  • the coordinate transformation unit 3125 uses the transformation matrix M (3D to GL) to transform the change amount information VI indicating the amount of change in the position and orientation of the object OBJ in the 3D imaging coordinate system into the position and orientation of the object OBJ in the global coordinate system. It may be converted into change amount information VI indicating the amount of change.
  • the coordinate conversion unit 3125 converts the amount of change ⁇ Tx(GL), the amount of change ⁇ Ty(GL), the amount of change ⁇ Tz(GL), the amount of change ⁇ Rx(GL), the amount of change ⁇ Ry(GL), and the amount of change ⁇ Rz( GL), the coordinate system of the position and orientation information POI2 is the 3D imaging coordinate system, while the coordinate system of the change amount information VI is the global coordinate system.
  • the coordinate transformation unit 3125 uses the transformation matrix M (3DtoGL) to convert the position and orientation information POI2 indicating the position and orientation of the object OBJ in the 3D imaging coordinate system to the position and orientation information POI2 indicating the position and orientation of the object OBJ in the global coordinate system.
  • the coordinate system of the position and orientation information POI2 may be made to match the coordinate system of the amount of change information VI.
  • the coordinate conversion unit 3125 uses a transformation matrix M (GLto3D) for converting a position in the global coordinate system to a position in the 3D imaging coordinate system, and calculates the amount of change in the position and orientation of the object OBJ in the global coordinate system.
  • the coordinate system of position and orientation information POI2 and the coordinate system of amount of change information VI may be matched.
  • the coordinate conversion unit 3125 After matching the coordinate system of the position and orientation information POI2 with the coordinate system of the amount of change information VI, the coordinate conversion unit 3125 converts the position and orientation that is the result of the matching process based on the amount of change information VI that is the result of the tracking process. Correct information POI2.
  • the coordinate conversion unit 3125 converts the position Tx (3D) based on the change amount ⁇ Tx (3D). By performing the correction, the position Tx' (3D) of the object OBJ in the X-axis direction (3D) of the 3D imaging coordinate system may be calculated.
  • the coordinate conversion unit 3125 calculates the position Ty' (3D) of the object OBJ in the Y-axis direction (3D) of the 3D imaging coordinate system by correcting the position Ty (3D) based on the amount of change ⁇ Ty (3D). You can.
  • the coordinate conversion unit 3125 calculates the position Tz' (3D) of the object OBJ 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). You can.
  • the coordinate conversion unit 3125 calculates the posture Rx' (3D) of the object OBJ around the X axis (3D) of the 3D imaging coordinate system by correcting the posture Rx (3D) based on the amount of change ⁇ Rx (3D). You can.
  • the coordinate conversion unit 3125 calculates the posture Ry' (3D) of the object OBJ around the Y axis (3D) of the 3D imaging coordinate system by correcting the posture Ry (3D) based on the amount of change ⁇ Ry (3D). You can.
  • the coordinate conversion unit 3125 calculates the posture Rz' (3D) of the object OBJ around the Z axis (3D) of the 3D imaging coordinate system by correcting the posture Rz (3D) based on the amount of change ⁇ Rz (3D). You can.
  • the corrected position and orientation information POI2 includes position Tx' (3D), position Ty' (3D), position Tz' (3D), attitude Rx' (3D), attitude Ry' (3D), and attitude Rz'. (3D) is the position/orientation information POI2'.
  • the coordinate conversion unit 3125 converts the position Tx (2D) based on the change amount ⁇ Tx (2D). By correcting, the position Tx' (2D) of the object OBJ 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 object OBJ 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). You can.
  • the coordinate conversion unit 3125 calculates the position Tz' (2D) of the object OBJ in the Z-axis direction (2D) of the 2D imaging coordinate system by correcting the position Tz (2D) based on the amount of change ⁇ Tz (2D). You can.
  • the coordinate conversion unit 3125 calculates the posture Rx' (2D) of the object OBJ around the X axis (2D) of the 2D imaging coordinate system by correcting the posture Rx (2D) based on the amount of change ⁇ Rx (2D). You can.
  • the coordinate conversion unit 3125 calculates the posture Ry' (2D) of the object OBJ around the Y axis (2D) of the 2D imaging coordinate system by correcting the posture Ry (2D) based on the amount of change ⁇ Ry (2D). You can.
  • the coordinate conversion unit 3125 calculates the posture Rz' (2D) of the object OBJ around the Z axis (2D) of the 2D imaging coordinate system by correcting the posture Rz (2D) based on the amount of change ⁇ Rz (2D). You can.
  • the corrected position and orientation information POI2 includes position Tx' (2D), position Ty' (2D), position Tz' (2D), attitude Rx' (2D), attitude Ry' (2D), and attitude Rz'. (2D) is the position/orientation information POI2'.
  • the coordinate conversion unit 3125 corrects the position Tx (GL) based on the change amount ⁇ Tx (GL). By doing so, the position Tx' (GL) of the object OBJ in the X-axis direction (GL) of the global coordinate system may be calculated.
  • the coordinate conversion unit 3125 calculates the position Ty' (GL) of the object OBJ in the Y-axis direction (GL) of the global coordinate system by correcting the position Ty (GL) based on the amount of change ⁇ Ty (GL). Good too.
  • the coordinate conversion unit 3125 calculates the position Tz' (GL) of the object OBJ in the Z-axis direction (GL) of the global coordinate system by correcting the position Tz (GL) based on the amount of change ⁇ Tz (GL). Good too.
  • the coordinate conversion unit 3125 calculates the posture Rx' (GL) of the object OBJ around the X-axis (GL) of the global coordinate system by correcting the posture Rx (GL) based on the amount of change ⁇ Rx (GL). Good too.
  • the coordinate conversion unit 3125 calculates the posture Ry' (GL) of the object OBJ around the Y axis (GL) of the global coordinate system by correcting the posture Ry (GL) based on the amount of change ⁇ Ry (GL). Good too.
  • the coordinate conversion unit 3125 calculates the posture Rz' (GL) of the object OBJ around the Z-axis (GL) of the global coordinate system by correcting the posture Rz (GL) based on the amount of change ⁇ Rz (GL). Good too.
  • the corrected position and orientation information POI2 includes position Tx' (GL), position Ty' (GL), position Tz' (GL), attitude Rx' (GL), attitude Ry' (GL), and attitude Rz'.
  • the position/orientation information POI2' indicates (GL).
  • the process of correcting the position and orientation information POI2 based on the amount of change information VI may include the process of adding the amount of change information VI to the position and orientation information POI2.
  • the coordinate conversion unit 3125 may calculate the position Tx' (3D) by adding the amount of change ⁇ Tx (3D) to the position Tx (3D).
  • the coordinate conversion unit 3125 may calculate the position Ty' (3D) by adding the amount of change ⁇ Ty (3D) to the position Ty (3D).
  • the coordinate conversion unit 3125 may calculate the position Tz' (3D) by adding the amount of change ⁇ Tz (3D) to the position Tz (3D).
  • the coordinate conversion unit 3125 may calculate the posture Rx' (3D) by adding the amount of change ⁇ Rx (3D) to the posture Rx (3D).
  • the coordinate conversion unit 3125 may calculate the posture Ry' (3D) by adding the amount of change ⁇ Ry (3D) to the posture Ry (3D).
  • the coordinate conversion unit 3125 may calculate the orientation Rz' (3D) by adding the amount of change ⁇ Rz (3D) to the orientation Rz (3D).
  • the tracking period which is the period in which the amount of change ⁇ Tx (3D) is calculated, is shorter than the 3D matching period, which is the period in which the position Tx (3D) is calculated.
  • the tracking unit 3123 calculates the amount of change ⁇ Tx (3D) multiple times from when the position Tx (3D) is newly calculated until the next time the position Tx (3D) is calculated.
  • the coordinate conversion unit 3125 converts the data based on the newly calculated position Tx (3D) and the newly calculated amount of change ⁇ Tx (3D) , the position Tx' (3D) may be calculated.
  • the coordinate conversion unit 3125 starts matching processing for calculating the position Tx (3D) for the position Tx (3D) every time the amount of change ⁇ Tx (3D) is newly calculated.
  • the position Tx' (3D) may be calculated by adding the sum of the amount of change ⁇ Tx (3D) calculated from the time to the current time.
  • the coordinate conversion unit 3125 converts the position Tx'(3D) at that time (that is, the position to which the calculated amount of change ⁇ Tx(3D) has been added)
  • a new position Tx' (3D) may be calculated by adding the newly calculated amount of change ⁇ Tx (3D) to Tx (3D)). Therefore, each time the amount of change ⁇ Tx(3D) is calculated, the total sum of the amount of change ⁇ Tx(3D) added to the position Tx(3D) increases.
  • the update frequency of the position Tx' (3D) becomes higher compared to the comparative example in which the position Tx (3D) is used as is as the position Tx' (3D).
  • the update frequency of the position Tx' (3D) depends on the 3D matching cycle, which is the cycle for calculating the position Tx (3D). do.
  • the update frequency of the position Tx' (3D) is based on the amount of change ⁇ Tx (3D) It depends on the tracking period, which is the period for calculating .
  • the update frequency of the position Tx' (3D) becomes higher. Since the position of the object OBJ in the global coordinate system is calculated based on the position Tx' (3D) as described later, the coordinate conversion unit 3125 converts the object OBJ in the global coordinate system at the same period as the tracking period. The position of OBJ can be calculated. Therefore, the position and orientation calculation unit 312 can calculate the position of the object OBJ in the global coordinate system in a shorter period. In other words, the position and orientation calculation unit 312 can calculate the position of the object OBJ in the global coordinate system more frequently (in other words, at high speed).
  • the amount of change ⁇ Tx (3D) calculated by the tracking process may include an error corresponding to the amount of deviation from the actual position of the object OBJ.
  • the error included in the sum of the amount of change ⁇ Tx (3D) which continues to increase each time the amount of change ⁇ Tx (3D) is calculated, may also become larger.
  • the discrepancy between the position Tx' (3D) of the object OBJ calculated by the control device 3 and the actual position of the object OBJ may increase.
  • 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 changes the amount of change ⁇ Tx (3D) to be added to the position Tx (3D) in order to calculate the position Tx' (3D). You may also reset the range. Specifically, when the position Tx (3D) at one time is newly calculated, the coordinate conversion unit 3125 converts the position Tx (3D) calculated from the one time to the current time. The position Tx' (3D) may be calculated by adding the sum of the amount of change ⁇ Tx (3D). When the position Tx (3D) at one time is newly calculated, the coordinate conversion unit 3125 performs matching for calculating the position Tx (3D) at the one time with respect to the position Tx (3D).
  • the position Tx' (3D) may be calculated by adding the sum of the amount of change ⁇ Tx (3D) calculated from the time when the process was started to the current time. As a result, the position/orientation calculation unit 312 can accurately calculate the position Tx' (3D).
  • FIG. 19 An example of the flow of calculating the position Tx' (3D) is shown in FIG. 19.
  • the imaging devices 21 and 22 capture an image of object OBJ at time t#0_0 to generate image data IMG_2D#0_0 and IMG_3D#0_0, and at time t#0_0, the 2D matching unit 3121 performs 2D matching processing.
  • An example of starting the is shown below.
  • the 2D matching unit 3121 completes the generation of position and orientation information POI1#0_0 indicating the position and orientation of the object OBJ at time t#0_0 at time t#1_0 when the 2D matching cycle has passed from time t#0_0. .
  • the three-dimensional position data generating unit 311 generates three-dimensional position data WSD#0_0 from the image data IMG_3D#0_0. Perform processing. For example, at the same time as the 2D matching unit 3121 starts the 2D matching process using the image data IMG_2D#0_0, the 3D position data generation unit 311 starts the process of generating the 3D position data WSD#0_0 from the image data IMG_3D#0_0. You may start.
  • the three-dimensional position data generating unit 311 starts the process of generating the three-dimensional position data WSD#0_0 from the image data IMG_3D#0_0. You may start. As a result, three-dimensional position data WSD#0_0 indicating the three-dimensional position of object OBJ at time t#0_0 is generated. Note that the three-dimensional position data generation unit 311 completes the generation of the three-dimensional position data WSD#0_0 when the 2D matching unit 3121 completes the 2D matching process using the image data IMG_2D#0_0. Processing may be performed to generate three-dimensional position data WSD#0_0 from data IMG_3D#0_0.
  • the 3D matching unit 3122 starts 3D matching processing at time t#1_0 based on the three-dimensional position data WSD#0_0 and the position and orientation information POI1#0_0. That is, the 3D matching unit 3122 performs a position and orientation determination process to determine the initial position and initial orientation of the three-dimensional model WM3 based on the position and orientation information POI1#0_0 generated at time t#1_0. 3122 performs matching processing using the three-dimensional position data WSD#0_0 and the three-dimensional model WM3 placed at the determined initial position and in the determined initial posture.
  • the 3D matching unit 3122 performs the position and orientation determination process at time t#1_0 based on the position and orientation information POI1#0_0. Good too. Thereafter, after the initial position and initial orientation of the three-dimensional model WM3 are determined by the position and orientation determination process, the 3D matching unit 3122 uses the three-dimensional position data WSD#0_0 and the three-dimensional model placed in the initial position and the initial orientation. WM3 may be used to start the 3D matching process. Therefore, if the 3D matching process does not include the position and orientation determination process, the 3D matching unit 3122 starts the 3D matching process after considering the time required to complete the position and orientation determination process. Good too.
  • the 3D matching unit 3122 generates position and orientation information POI2#0_0 indicating the position and orientation of the object OBJ at time t#0_0 at time t#2_0 when the 3D matching cycle has passed from time t#1_0 (see FIG. In the example shown in , the calculation of the position Tx (3D) #0_0 in the X-axis direction (3D) is completed.
  • the position and orientation of the object OBJ at time t#2_0 when the 3D matching unit 3122 completes generation of the position and orientation information POI2#0_0 are the time t#0_0 indicated by the position and orientation information POI2#0_0 (that is, the position and orientation information This may be different from the position and orientation of the object OBJ at the time when the matching process for generating POI2#0_0 was started.
  • the amount of change in the position and orientation of the object from time t#0_0 to time t#2_0 is calculated by tracking processing.
  • the coordinate conversion unit 3125 converts the position and orientation information POI2#0_0 indicating the position and orientation of the object at time t#0_0 from time t#0_0 to time t#2_0 corresponding to the current time. Add the total sum of the calculated amounts of change. For example, the coordinate conversion unit 3125 adds the total amount of change calculated from time t#0_0 to time t#2_0, which corresponds to the current time, to position Tx(3D)#0_0. , the position Tx' (3D) of the object OBJ at time t#2_0 is calculated. In the example shown in FIG.
  • position Tx(3D)#0_0+amount of change ⁇ Tx(3D)#0_0+amount of change ⁇ Tx(3D)#0_1+...+amount of change ⁇ Tx(3D)#0_N+amount of change ⁇ Tx(3D) ) #1_0+amount of change ⁇ Tx(3D) #1_1+...+amount of change ⁇ Tx(3D) #1_N is used as the position Tx'(3D).
  • the coordinate conversion unit 3125 further adds the newly calculated amount of change ⁇ Tx(3D) #2_0 to the current position Tx'(3D).
  • the coordinate conversion unit 3125 further adds the newly calculated amount of change ⁇ Tx(3D) #2_1 to the current position Tx'(3D).
  • position Tx (3D) #0_0 + amount of change ⁇ Tx (3D) #0_0 + amount of change ⁇ Tx (3D) #0_1+...+ amount of change ⁇ Tx (3D) #0_N + amount of change ⁇ Tx (3D) #1_0+change amount ⁇ Tx(3D) #1_1+...+change amount ⁇ Tx(3D) #1_N+change amount ⁇ Tx(3D) #2_0+change amount ⁇ Tx(3D) #2_1 is used as the position Tx'(3D).
  • the 2D matching unit 3121 completes generation of position and orientation information POI1#0_0 indicating the position and orientation of object OBJ at time t#0_0, and then at time t#1_0, the imaging device 21 A new 2D matching process using image data IMG_2D#1_0 generated by capturing an image of object OBJ is started. In this case, the 2D matching unit 3121 completes the generation of position and orientation information POI1#1_0 indicating the position and orientation of the object OBJ at time t#1_0 at time t#2_0 when the 2D matching cycle has elapsed from time t#1_0. .
  • the three-dimensional position data generating unit 311 generates three-dimensional position data WSD#1_0 from the image data IMG_3D#1_0. Perform processing. For example, at the same time that the 2D matching unit 3121 starts the 2D matching process using the image data IMG_2D#1_0, the three-dimensional position data generating unit 311 starts the process of generating the three-dimensional position data WSD#1_0 from the image data IMG_3D#1_0. You may start.
  • the three-dimensional position data generating unit 311 starts the process of generating the three-dimensional position data WSD#1_0 from the image data IMG_3D#1_0. You may start. As a result, three-dimensional position data WSD#1_0 indicating the three-dimensional position of object OBJ at time t#1_0 is generated. Note that the three-dimensional position data generation unit 311 completes the generation of the three-dimensional position data WSD#1_0 when the 2D matching unit 3121 completes the 2D matching process using the image data IMG_2D#1_0. Processing may be performed to generate three-dimensional position data WSD#1_0 from data IMG_3D#1_0.
  • the 3D matching unit 3122 starts 3D matching processing at time t#2_0 based on the three-dimensional position data WSD#1_0 and the position and orientation information POI1#1_0.
  • the 3D matching unit 3122 generates position and orientation information POI2#1_0 indicating the position and orientation of the object OBJ at time t#1_0 at time t#3_0 when the 3D matching cycle has passed from time t#2_0 (see FIG.
  • the calculation of the position Tx (3D) #1_0 in the X-axis direction (3D) is completed. Since the position and orientation information POI2 is newly generated in this way (in the example shown in FIG.
  • the coordinate conversion unit 3125 calculates the position Tx' (3D). Therefore, the range of the change amount ⁇ Tx (3D) to be added to the position Tx (3D) is newly set. Specifically, since the position Tx(3D) #1_0 at time t#1_0 is newly calculated, the coordinate conversion unit 3125 changes the amount of change ⁇ Tx(3D) calculated from time t#1_0 to the current time. The range of is newly set as the range of the amount of change ⁇ Tx(3D) to be added to the position Tx(3D) #1_0.
  • position Tx(3D)#1_0+amount of change ⁇ Tx(3D)#1_0+amount of change ⁇ Tx(3D)#1_1+...+amount of change ⁇ Tx(3D)#1_N+amount of change ⁇ Tx(3D) ) #2_0+amount of change ⁇ Tx(3D) #2_1+...+amount of change ⁇ Tx(3D) #2_N is used as the position Tx'(3D).
  • the coordinate conversion unit 3125 calculates the position Ty' (3D), the position Tz' (3D), and the orientation Rx, as in the case of calculating the position Tx' (3D). '(3D), attitude Ry' (3D), and attitude Rz' (3D). In other words, the coordinate conversion unit 3125 converts the coordinates calculated from the time when the matching process for calculating the position Ty (3D) at one time to the current time to calculate the position Ty (3D) at one time.
  • the position Ty' (3D) may be calculated by adding the sum of the changes ⁇ Ty (3D).
  • the coordinate conversion unit 3125 adds the sum of the amount of change ⁇ Ty (3D) calculated from one time to the current time to the position Ty (3D) at one time, thereby converting the position Ty' (3D). may be calculated.
  • the coordinate conversion unit 3125 converts the position Tz (3D) at one time to the position Tz (3D) calculated from the time when the matching process for calculating the position Tz (3D) at one time is started to the current time.
  • the position Tz' (3D) may be calculated by adding the sum of the changes ⁇ Tz (3D).
  • the coordinate conversion unit 3125 adds the sum of the amount of change ⁇ Tz (3D) calculated from one time to the current time to the position Tz (3D) at one time, thereby converting the position Tz' (3D).
  • the coordinate conversion unit 3125 converts the coordinates calculated from the time when the matching process for calculating the position Rx (3D) at one time to the current time to calculate the position Rx (3D) at one time.
  • the position Rx' (3D) may be calculated by adding the sum of the amounts of change ⁇ Rx (3D).
  • the coordinate conversion unit 3125 adds the sum of the amount of change ⁇ Rx (3D) calculated from one time to the current time to the position Rx (3D) at one time, thereby converting the position Rx' (3D). may be calculated.
  • the coordinate conversion unit 3125 converts the coordinates calculated from the time when the matching process for calculating the position Ry (3D) at one time to the current time to calculate the position Ry (3D) at one time.
  • the position Ry' (3D) may be calculated by adding the sum of the amounts of change ⁇ Ry (3D).
  • the coordinate conversion unit 3125 adds the sum of the amount of change ⁇ Ry (3D) calculated from one time to the current time to the position Ry (3D) at one time, thereby converting the position Ry' (3D). may be calculated.
  • the coordinate conversion unit 3125 converts the coordinates calculated from the time when the matching process for calculating the position Rz (3D) at one time to the current time to calculate the position Rz (3D) at one time.
  • the position Rz' (3D) may be calculated by adding the sum of the changes ⁇ Rz (3D).
  • the coordinate conversion unit 3125 adds the sum of the amount of change ⁇ Rz (3D) calculated from one time to the current time to the position Rz (3D) at one time, thereby converting the position Rz' (3D). may be calculated.
  • the coordinate conversion unit 3125 converts the coordinates into position Tx' (3D), position Ty' (3D), position Tz' (3D), attitude Rx' (3D), attitude Ry' (3D), and attitude Rz' (3D). Based on this, the position Tx (GL), position Ty (GL), position Tz (GL), orientation Rx (GL), orientation Ry (GL), and orientation Rz (GL) of object OBJ in the global coordinate system are calculated. In other words, the coordinate conversion unit 3125 converts the 6DOF position of the object OBJ in the 3D imaging coordinate system (or, in some cases, the 6DOF position of the object OBJ in the 2D imaging coordinate system) in the global coordinate system. Calculate the 6DOF position of object OBJ. The coordinate conversion unit 3125 generates position/orientation information POI0 indicating position Tx (GL), position Ty (GL), position Tz (GL), orientation Rx (GL), orientation Ry (GL), and orientation Rz (GL). .
  • the coordinate conversion unit 3125 uses a transformation matrix M (3DtoGL) for converting a position within the 3D imaging coordinate system (or 3D imaging coordinate system) to a position within the global coordinate system.
  • M 3DtoGL
  • the 6DOF position of the object OBJ in (or the 6DOF position of the object OBJ in the 2D imaging coordinate system) may be converted to the 6DOF position of the object OBJ in the global coordinate system.
  • the position and orientation information POI2' may be used as the position and orientation information POI0.
  • the coordinate transformation unit 3125 does not necessarily need to perform the coordinate transformation based on the transformation matrix M (3DtoGL) described above.
  • the control device 3 corrects the result of the matching process based on the result of the tracking process, thereby at least changing the position and orientation of the object OBJ in the global coordinate system.
  • One side is being calculated. Therefore, as will be explained in detail below, compared to the case where at least one of the position and orientation of the object OBJ in the global coordinate system is calculated based on the matching processing results without using the tracking processing results, the control The device 3 can calculate at least one of the position and orientation of the object OBJ in the global coordinate system in a shorter period (that is, more frequently).
  • the position and orientation calculation unit 312 can calculate at least one of the position and orientation of the object OBJ in the global coordinate system at higher speed.
  • the control device 3 can generate (that is, update) the robot control signal more frequently and output it to the robot 1. It can also be said that the control device 3 can generate (update) robot control signals at higher speed and output them to the robot 1.
  • control device 3 may generate a robot control signal every time at least one of the position and orientation of the object OBJ is calculated.
  • the control device 3 can generate the robot control signal at the same cycle as the cycle at which at least one of the position and orientation of the object OBJ is calculated (for example, the tracking cycle described above).
  • the control device 3 can output the robot control signal to the robot 1 at the same cycle as the cycle at which at least one of the position and orientation of the object OBJ is calculated (for example, the tracking cycle described above).
  • the control device 3 calculates the position and orientation of the object OBJ.
  • the robot control signal is generated and output at the same cycle as the 2D matching cycle or the 3D matching cycle (typically, a cycle shorter than the tracking cycle), at least one of which is the calculated cycle. Therefore, in this embodiment, compared to this case, the control device 3 can generate (that is, update) the robot control signal more frequently (at a higher speed) and output it to the robot 1. .
  • the control device 3 may generate and output the robot control signal at a period different from the period at which the position of the object OBJ is calculated (for example, at a period different from the tracking period described above).
  • Such an effect is particularly beneficial when at least one of the robot 1 and the object OBJ is moving (in particular, each of the imaging devices 21 and 22 and the object OBJ are displaced relative to each other). .
  • This is because the lower the frequency of calculating the position of the object OBJ in a situation where at least one of the robot 1 and the object OBJ is moving, the more the position of the object OBJ calculated by the control device 3 and the actual position of the object OBJ become different. This is because the period during which the degree of deviation is large becomes long.
  • the period during which the degree of deviation is large becomes long.
  • the control device 3 since the control device 3 calculates the position of the object OBJ in the global coordinate system more frequently (at higher speed), the position of the object OBJ calculated by the control device 3 and the actual position of the object OBJ are The degree of deviation from this becomes relatively small.
  • the control device 3 calculates the attitude of the object OBJ in the global coordinate system more frequently (at a higher speed), the attitude of the object OBJ calculated by the control device 3 is different from the actual attitude of the object OBJ.
  • the degree of deviation becomes relatively small. Therefore, by calculating at least one of the position and orientation of the object OBJ with high frequency, the control device 3 can substantially calculate at least one of the position and orientation of the object OBJ with high accuracy.
  • the control device 3 appropriately sends robot control signals for controlling the robot 1 so as to perform desired processing on the object OBJ, whose position and/or orientation are calculated with high precision and high frequency. It can be generated (that is, updated) and output to the robot 1. As a result, the possibility that the movement of the robot 1 will be different from the intended movement is reduced.
  • the control device 3 adjusts the calculation period of at least one of the position and orientation of the object OBJ.
  • the movement of the robot 1 that follows the moving workpiece W can be controlled (that is, a robot control signal can be generated and output). Therefore, even if the movement of the robot 1 deviates from the desired movement for following the moving workpiece W, the movement of the robot 1 will increase in accordance with the calculation cycle of at least one of the position and orientation of the workpiece W. Fixed to frequency (fast).
  • the movement of the robot 1 is modified frequently (at high speed) in accordance with the irregular movement of the workpiece W.
  • the movement of the robot 1 is frequently (highly) corrected in accordance with the high-speed movement of the workpiece W. Therefore, the robot 1 can follow the moving workpiece W while reducing unnecessary movements. As a result, the robot 1 can hold the moving workpiece W while reducing unnecessary movements.
  • the robot 1 is not limited to the examples shown in FIGS. 5A to 5D, and can move relative to the object OBJ while reducing unnecessary movements.
  • the robot 1 moves accurately and at high speed with respect to the object OBJ (for example, follows the object OBJ accurately and at high speed) without losing sight of the object OBJ, and the end effector 13 moves toward the object OBJ with the end effector 13. Desired processing can be performed.
  • the imaging devices 21 and 22 are The object OBJ may be imaged while at least one of the objects OBJ is moving. That is, the imaging devices 21 and 22 may image the object OBJ at a timing (in other words, at a time) when the imaging devices 21 and 22 and the object OBJ are moving relative to each other.
  • the imaging device 21 may generate the image data IMG_2D used in the above-described 2D matching process by capturing an image of the object OBJ at a time when the imaging device 21 and the object OBJ are moving relative to each other.
  • the imaging device 22 may generate the image data IMG_3D used in the above-described 3D matching process by capturing an image of the object OBJ at a time when the imaging device 22 and the object OBJ are moving relative to each other.
  • the imaging device 21 images the object OBJ at a first time t1 and a second time t2, which are times when the imaging device 21 and the object OBJ are moving relative to each other, thereby creating an image used in the tracking process described above.
  • Data IMG_2D may also be generated.
  • the imaging device 21 may generate the image data IMG_3D used in the tracking process described above by imaging the object OBJ at the third time t3, which is the time when the imaging device 21 and the object OBJ are moving relative to each other. good.
  • the control device 3 determines at least the initial position and initial orientation of the three-dimensional model WM3 used for performing the 3D matching process, based on the result of the 2D matching process (that is, the position and orientation information POI1). One can be decided. As a result, the control device 3 can determine the initial position and initial orientation of the three-dimensional model WM3 such that the degree of deviation from the actual position and orientation of the object OBJ is less than or equal to the allowable amount.
  • the position and orientation information POI1 obtained by the 2D matching process there is a lower possibility that information regarding at least one of the position and orientation of the object OBJ is missing compared to the position and orientation information POI2 obtained by the 3D matching process.
  • the 2D matching process detects the object OBJ using the image itself indicated by the image data IMG_2D, and therefore there is a low possibility that information regarding at least one of the position and orientation of the object OBJ will be missing. Therefore, the possibility that object OBJ will be successfully detected by the 2D matching process increases. In other words, the 2D matching process increases the possibility that an object OBJ that matches the two-dimensional model WM2 will be detected. In other words, it is less likely that an object different from the object OBJ corresponding to the two-dimensional model WM2 will be detected by the 2D matching process.
  • the 3D matching process is performed using three-dimensional position data WSD in which part of the information of the object OBJ may be missing (for example, point cloud data in which the point cloud corresponding to part of the object OBJ may be missing). ) is used to detect the object OBJ. Therefore, the lack of data in the three-dimensional position data WSD (for example, missing point group) has a large effect on the success of detecting the object OBJ by the 3D matching process. Therefore, the possibility that object OBJ will be successfully detected by 3D matching processing is lower than the possibility that object OBJ will be successfully detected by 2D matching processing.
  • the possibility that an object OBJ that matches the three-dimensional model WM3 will be detected by the 3D matching process is lower than the possibility that the object OBJ that matches the two-dimensional model WM2 will be detected by the 2D matching process.
  • the possibility that an object different from the object OBJ corresponding to the three-dimensional model WM3 will be detected by the 3D matching process is lower than the possibility that an object different from the object OBJ corresponding to the two-dimensional model WM2 will be detected by the 2D matching process. higher than sex.
  • the initial position of the three-dimensional model WM3 and the initial At least one of the postures can be determined.
  • the control device 3 detects a three-dimensional image in which the degree of deviation from the actual position and orientation of the object OBJ that should be detected by the 2D matching process (and should also be naturally detected by the 3D matching process) is less than the allowable amount.
  • the initial position and initial attitude of model WM3 can be determined reliably.
  • the control device 3 determines at least one of the position and orientation of the object OBJ corresponding to the three-dimensional model WM3 with higher precision than when at least one of the initial position and initial orientation of the three-dimensional model WM3 is not determined. It is possible to generate position and orientation information POI2 shown in FIG.
  • the control device 3 determines at least the initial position and initial orientation of the three-dimensional model WM3 used for performing the 3D matching process, based on the result of the 2D matching process (that is, the position and orientation information POI1).
  • the position and orientation information POI1 obtained by the 2D matching process indicates the position of the object OBJ in the X-axis direction (2D) and the Y-axis direction (2D) with high accuracy due to the characteristics of the 2D matching process using two-dimensional images.
  • the position and orientation information POI1 indicates the orientation of the object OBJ around the Z-axis (2D) with high accuracy due to the characteristics of 2D matching processing using two-dimensional images.
  • the position and orientation information POI1 is not as accurate as the position of the object OBJ in the X-axis direction (2D) and the Y-axis direction (2D), and the posture of the object OBJ around the Z-axis (2D), but it is accurate in the Y-axis direction.
  • the position of the object OBJ in (2D) and the attitude of the object OBJ around the X axis (2D) and the Y axis (2D) are also shown with a certain degree of accuracy.
  • the control device 3 performs 2D matching processing using the image data IMG_2D and 3D matching processing using the three-dimensional position data WSD in order to calculate at least one of the position and orientation of the object OBJ with higher accuracy. Combine with matching processing. Specifically, the control device 3 determines at least one of the initial position and initial orientation of the three-dimensional model WM3 based on the position and orientation information POI1. Therefore, in the 3D imaging coordinate system in which the 3D matching process is performed, the initial position of the three-dimensional model WM3 is unlikely to be significantly different from the actual position of the object OBJ.
  • the initial position of the three-dimensional model WM3 is likely to be close to the actual position of the object OBJ in each of the X-axis direction (3D) and the Y-axis direction (3D). Furthermore, in the Z-axis direction (3D), the initial position of the three-dimensional model WM3 is unlikely to be significantly different from the actual position of the object OBJ. Similarly, in the 3D imaging coordinate system, the initial orientation of the three-dimensional model WM3 is unlikely to be significantly different from the actual orientation of the object OBJ. Note that the initial posture of the three-dimensional model WM3 is likely to be close to the actual posture of the object OBJ, especially around the Z-axis (3D).
  • the initial posture of the three-dimensional model WM3 is unlikely to be significantly different from the actual posture of the object OBJ around the X-axis (3D) and the Y-axis (3D).
  • the 3D matching unit 3122 performs matching processing.
  • the 3D matching unit 3122 can accurately detect the object OBJ through the 3D matching process, compared to the case where the initial position and initial orientation of the three-dimensional model WM3 are not determined based on the position and orientation information POI1. This is because the three-dimensional model WM3 has already been placed near the object OBJ indicated by the three-dimensional position data WSD.
  • the 3D matching unit 3122 uses the three-dimensional position data WSD that indicates the position of the object OBJ in the Z-axis direction (3D) with high accuracy to determine the characteristic points of the three-dimensional model WM3 in the Z-axis direction (3D). It is possible to accurately approach the characteristic location of the object OBJ indicated by the three-dimensional position data WSD. Therefore, compared to the case where the three-dimensional position data WSD is not used, the 3D matching unit 3122 can generate position and orientation information POI2 that indicates at least one of the position and orientation of the object OBJ with higher accuracy. In particular, the 3D matching unit 3122 can generate position and orientation information POI2 that indicates the position Tz (3D), orientation Rx (3D), and orientation Ry (3D) with higher accuracy.
  • the position and orientation In order to improve the accuracy of information POI2, the 2D imaging time when the imaging device 21 images the object OBJ for the matching process and the 3D imaging time when the imaging device 22 images the object OBJ for the matching process are the same. It may be set to the time. Specifically, if the 2D imaging time and the 3D imaging time are different times, the 3D matching unit 3122 uses position and orientation information POI1 indicating at least one of the position and orientation of the object OBJ at the 2D imaging time.
  • At least one of the initial position and initial orientation of the three-dimensional model WM3 for calculating the position of the object OBJ at a 3D imaging time different from the 2D imaging time is determined.
  • the position of the object OBJ at the 2D imaging time is likely to be different from the position of the object OBJ at the 3D imaging time. Therefore, if the 2D imaging time and the 3D imaging time are different times, the initial position of the 3D model WM3 determined based on the position of the object OBJ at the 2D imaging time is the same as that of the object OBJ at the 3D imaging time. There is a high possibility that the location will be significantly different from the actual location.
  • the initial attitude of the three-dimensional model WM3 determined based on the attitude of the object OBJ at the 2D imaging time is likely to be significantly different from the actual attitude of the object OBJ at the 3D imaging time.
  • the accuracy of the position and orientation information POI2 generated using the three-dimensional model WM3 decreases compared to the case where the initial position and initial orientation of the three-dimensional model WM3 are the same as or close to the actual position and orientation of the object OBJ. there's a possibility that.
  • the position and orientation of the object OBJ at the 2D imaging time are the same as the position and orientation of the object OBJ at the 3D imaging time.
  • control device 3 can prevent the accuracy of the position and orientation information POI2 from decreasing by controlling the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are the same time.
  • the state where "the 2D imaging time and the 3D imaging time are the same time” means “the 2D imaging time and the 3D imaging time are not exactly the same time, but the time between the 2D imaging time and the 3D imaging time”
  • the 2D imaging time and the 3D imaging time can be considered to be substantially the same time because the deviation is smaller than the allowable upper limit value.
  • the allowable upper limit value of the time difference between the 2D imaging time and the 3D imaging time may be set to an appropriate value that can realize a state in which the accuracy of the position and orientation information POI2 is the desired accuracy.
  • the allowable upper limit value of the temporal deviation between the 2D imaging time and the 3D imaging time is the permissible amount of decrease in the accuracy of the position and orientation information POI2 due to the temporal deviation between the 2D imaging time and the 3D imaging time. It may be set to an appropriate value that can achieve a state within. For example, when a time difference between the 2D imaging time and the 3D imaging time causes an error in the calculation result of at least one of the position and orientation of the object OBJ (described later) (in other words, when the accuracy of the position and orientation information POI2 decreases) There is.
  • the allowable upper limit value of the time difference between the 2D imaging time and the 3D imaging time may be set to an appropriate value based on the accuracy of the position and orientation information POI2.
  • the 2D imaging time and the 3D imaging time may be different times. Even if it is, the position of the object OBJ at the 2D imaging time is the same as the position of the object OBJ at the 3D imaging time. Therefore, it is unlikely that the initial position and initial orientation of the three-dimensional model WM3 will be significantly different from the actual position and orientation of the object OBJ. Therefore, the control device 3 does not have to control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are the same time.
  • control device 3 may control the imaging devices 21 and 22 so that the 2D imaging time and the 3D imaging time are different times. Even in this case, the accuracy of the position and orientation information POI2 is hardly reduced due to the time difference between the 2D imaging time and the 3D imaging time.
  • the control device 3 can perform tracking processing using the three-dimensional position data WSD in addition to the two image data IMG_2D#t1 and IMG_2D#t2.
  • the control device 3 performs the tracking process based on the position information PI3 indicating the position of the characteristic part of the object OBJ in the Z-axis direction (2D) or the Z-axis direction (3D) calculated from the three-dimensional position data WSD.
  • the accuracy of the position of the object OBJ in the Z-axis direction (2D) calculated from the image data IMG_2D representing a two-dimensional image is not necessarily high.
  • the three-dimensional position data WSD generated from the image data IMG_3D indicates the position of the object OBJ in the Z-axis direction (3D) with high accuracy. Therefore, when the control device 3 performs the tracking process using the position information PI3 as described in the present embodiment, the amount of change in at least one of the position and orientation of the object OBJ can be calculated with higher accuracy. .
  • the tracking unit 3123 uses change amount information VI indicating the change amount ⁇ Tz (3D), the change amount ⁇ Rx (3D), and the change amount ⁇ Ry (3D) with higher accuracy, or the change amount ⁇ Tz (2D), the change amount ⁇ Rx (2D) and change amount information VI indicating the change amount ⁇ Ry(2D) with higher accuracy can be generated.
  • the control device 3 can calculate at least one of the position and orientation of the object OBJ with high accuracy.
  • the control device 3 recognizes that the process of calculating the amount of change information VI indicating the amount of change in at least one of the position and orientation of the object OBJ is substantially equivalent to the process of solving the PnP problem. We are using. Therefore, the control device 3 can generate change amount information VI indicating the amount of change in at least one of the position and orientation of the object OBJ by solving the PnP problem using a mathematical calculation method. For this reason, the control device 3 generates the amount of change information VI that indicates the amount of change in at least one of the position and orientation of the object OBJ with high accuracy compared to the case where the amount of change information VI is generated without using the PnP problem. can be generated.
  • a second time t2 at which the imaging device 21 images the object OBJ for tracking processing and a third time t3 at which the imaging device 22 images the object OBJ for the tracking processing are determined.
  • the tracking unit 3123 transfers the position information PI3 indicating the position of the object OBJ at the third time t3 to the third time t3.
  • the position information PI5 indicating the position of the object OBJ at the second time t2, which is different from the second time t2.
  • the position of the object OBJ at the second time t2 is likely to be different from the position of the object OBJ at the third time t3. Therefore, when the second time t2 and the third time t3 are different times, the accuracy of the position information PI5 to which the position information PI3 is reflected is higher than the accuracy of the position information PI5 to which the position information PI3 is not reflected. may also become worse.
  • the position information PI5 reflecting the position information PI3 may indicate a position different from the original position of the object.
  • the accuracy of the change amount information VI may also deteriorate.
  • the control device 3 can prevent the accuracy of the variation information VI from decreasing by controlling the imaging devices 21 and 22 so that the second time t2 and the third time t3 are the same time.
  • the state where "the second time t2 and the third time t3 are the same time” means “the second time t2 and the third time t3 are not completely the same time, but the second time t2 and the third time t3 are the same time”. It has already been shown that the second time t2 and the third time t3 can be considered to be substantially the same time because the time difference with the third time t3 is smaller than the allowable upper limit value. As mentioned above. In this case, the allowable upper limit value of the time difference between the second time t2 and the third time t3 may be set to an appropriate value that can realize a state in which the accuracy of the amount of change information VI becomes a desired accuracy. .
  • the allowable upper limit of the time difference between the second time t2 and the third time t3 is the decrease in accuracy of the change amount information VI due to the time difference between the second time t2 and the third time t3. It may be set to an appropriate value that allows the amount to fall within an allowable range.
  • the allowable upper limit value may be an allowable upper limit value based on a control error of the robot arm 12. For example, an error may occur in the change amount information VI due to a time difference between the second time t2 and the third time t3. In this case, a control error of the robot arm 12 may occur due to an error occurring in the change amount information VI.
  • a control error of the robot arm 12 becomes a movement error of the end effector 13, and the end effector 13 may not be able to appropriately perform a predetermined process on the object OBJ.
  • the allowable upper limit value can also be said to be the allowable upper limit value of the movement error of the end effector 13 by the robot arm 12.
  • the second time t2 and the third time t3 are substantially different from each other. It may be assumed that they are at the same time.
  • the synchronization error in the imaging processing of the imaging devices 21 and 22 may be a synchronization control error in the imaging processing of the imaging devices 21 and 22 by the control device 3.
  • the second time t2 and the third time t3 are Even if the times are different, the position of the object OBJ at the second time t2 is the same as the position of the object OBJ at the third time t3. Therefore, the accuracy of the position information PI5 to which the position information PI3 is reflected does not become worse than the accuracy of the position information PI5 to which the position information PI3 is not reflected. Therefore, the control device 3 does not have to control the imaging devices 21 and 22 so that the second time t2 and the third time t3 are the same time.
  • control device 3 may control the imaging devices 21 and 22 so that the second time t2 and the third time t3 are different times. Even in this case, the accuracy of the variation information VI is hardly reduced due to the time difference between the second time t2 and the third time t3.
  • the control device 3 takes into consideration that the amount of change ⁇ Tx (3D) calculated by the tracking process includes an error, and when the position Tx (3D) is newly calculated, , the range of the amount of change ⁇ Tx (3D) to be added to the position Tx (3D) in order to calculate the position Tx' (3D) is reset. As a result, the control device 3 is able to calculate the position Tx' (3D) with higher accuracy compared to the case where the range of the amount of change ⁇ Tx (3D) added to the position Tx (3D) is not reset. Can be done.
  • the control device 3 controls the position Ty' (3D), the position Tz' (3D), the attitude Rx' (3D), the attitude Ry' (3D), the attitude Rz' (3D), and the position Tx' (2D), position Ty' (2D), position Tz' (2D), attitude Rx' (2D), attitude Ry' (2D), and attitude Rz' (2D) can be calculated with higher precision.
  • the control device 3 can calculate at least one of the position and orientation of the object OBJ with even higher accuracy.
  • the control device 3 acquires the image data IMG_2D from the imaging device 21.
  • image data IMG_3D can be acquired from the imaging device 22. Therefore, an imaging device 21 for generating image data IMG_2D and an imaging device 22 for generating image data IMG_3D are not prepared separately (for example, a single imaging device for generating image data IMG_2D and IMG_3D is not prepared separately).
  • the image data IMG_2D and IMG_3D are acquired more frequently than in the case where the image data IMG_2D and IMG_3D are prepared.
  • the control device 3 appropriately generates (that is, updates) a control signal for controlling the robot 1 to perform desired processing on the object OBJ whose position is frequently calculated. It can also be output to the robot 1.
  • FIG. 20 is a block diagram showing the configuration of the control device 3a in the first modification.
  • control device 3a in the first modification differs from the control device 3 described above in that the arithmetic device 31 includes an object determining section 314a as a logical processing block. .
  • Other features of the control device 3a may be the same as other features of the control device 3.
  • the object determination unit 314a causes the end effector 13 to perform predetermined processing on the object OBJ reflected in the image indicated by the image data IMG_2D, based on the image data IMG_2D generated by the imaging device 21 imaging the object OBJ.
  • the object is determined as the object OBJ_target.
  • the position/orientation calculation unit 312 performs 2D matching processing (particularly object detection processing) to find the template image indicated by the two-dimensional model data IMG_2M within the image indicated by the image data IMG_2D. Detect the object OBJ indicated by .
  • the target determining unit 314a determines whether or not to determine the object OBJ detected by the 2D matching process as the target object OBJ_target based on the image data IMG_2D.
  • the position and orientation calculation unit 312 determines the position of the object OBJ. and position/orientation information POI0 indicating the orientation.
  • the position and orientation calculation unit 312 It is not necessary to generate the position and orientation information POI0 indicating the position and orientation of the object OBJ. This is because the end effector 13 does not perform any predetermined processing on the object OBJ, so there is little need to calculate the position and orientation of the object OBJ.
  • the target determination unit 314a may determine the object OBJ that was not determined as the target object ONJ_target at one time point as the target object OBJ_target at another time point different from the one time point. For example, when the robot 1 performs the release process to place the plurality of workpieces W one by one on the mounting device T as described above, the target determination unit 314a sequentially sets the plurality of workpieces W to the target object OBJ_target. It may be determined (in this case, selected) as For example, the target determination unit 314a may determine one workpiece W as the target object OBJ_target at one point in time, while not determining another workpiece W different from the one workpiece W as the target object OBJ_target. Thereafter, after one workpiece W is placed on the mounting device T, the target determination unit 314a may determine another workpiece W as the target object OBJ_target.
  • FIG. 21 is a flowchart showing the flow of robot control processing in the first modification. Note that the same processes as those performed in the robot control process shown in FIG. 4 are given the same reference numerals, and detailed explanation thereof will be omitted.
  • the control device 3 uses the communication device 33 to obtain image data IMG_3D from the imaging device 22 (step S1). However, in the first modification, the control device 3 does not need to acquire the image data IMG_3D from the imaging device 22 at the stage of step S1.
  • the position and orientation calculation unit 312 performs the above-mentioned 2D matching process based on the image data IMG_2D acquired in step S1 (step S31a).
  • the 2D matching unit 3121 detects the object OBJ indicated by the template image indicated by the two-dimensional model data IMG_2M within the image indicated by the image data IMG_2D.
  • the 2D matching unit 3121 moves from one template image in the projection direction so that the characteristic points of the object OBJ reflected in the template image are brought closer to the characteristic points of the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the object OBJ is detected by changing to another template image with a different imaging direction, and by translating, enlarging, reducing, and/or rotating the object OBJ reflected in the template image.
  • the 2D matching unit 3121 calculates the position and orientation of the detected object OBJ. That is, the 2D matching unit 3121 generates position and orientation information POI1 indicating the position and orientation of the detected object OBJ.
  • the 2D matching process in the first modification may be the same as the 2D matching process described above.
  • the 2D matching unit 3121 performs a process of bringing the characteristic points of the object OBJ reflected in the template image closer to the characteristic points of the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the process may be performed sequentially for a plurality of objects OBJ reflected in the image indicated by the image data IMG_2D.
  • the 2D matching unit 3121 may detect multiple objects OBJ.
  • At least two of the plurality of objects OBJ detected using the same template image may have the same three-dimensional shape.
  • the state in which "the three-dimensional shapes of the two objects OBJ are the same” may include the state in which "the three-dimensional shapes of the two objects OBJ are literally completely the same.”
  • the "two objects OBJ have the same three-dimensional shape” state means "the two objects OBJ are manufactured to have the same three-dimensional shape, but due to manufacturing errors, the three-dimensional shape of the two objects OBJ is the same.” may include "different" states.
  • the "three-dimensional shapes of the two objects OBJ are the same” state means "the three-dimensional shapes of the two objects OBJ are different, but the image indicated by the image data IMG_2D generated by the imaging device 21 imaging the two objects OBJ
  • the above may include a state in which the shapes of the two objects OBJ can be considered to be the same.
  • "Two objects OBJ have the same three-dimensional shape” state means "Two objects OBJ are manufactured to have the same three-dimensional shape, but one of the two objects OBJ is different from the other of the two objects OBJ or It may also include a state in which the two objects OBJ have different three-dimensional shapes due to one of the two objects OBJ deforming due to contact with the object.
  • the state that "the three-dimensional shapes of the two objects OBJ are the same” means that "the parts of the two objects OBJ that are included in the imaging range (field of view) of the imaging device 21 have the same three-dimensional shape, It may also include a state in which the other parts of the two objects OBJ and which are not included in the imaging range (field of view) of the imaging device 21 have different three-dimensional shapes. Therefore, the three-dimensional shapes of at least two of the plurality of objects OBJ detected using the same template image may actually be different.
  • the 3D matching unit 3122 matches multiple objects OBJ using the same 3D model WM3. May be detected. That is, the 3D matching unit 3122 may detect a plurality of objects OBJ having the same three-dimensional shape indicated by the three-dimensional model WM3.
  • the state that "the three-dimensional shapes of two objects OBJ detected using the same three-dimensional model WM3 are the same” is the state that "the three-dimensional shapes of two objects OBJ detected using the same template image are the same” as described above. It may include "same" states and similar states.
  • the three-dimensional shapes of at least two of the plurality of objects OBJ detected using the same three-dimensional model WM3 may actually be different. This is because even if one object OBJ and another object OBJ different from the one object are detected using the same three-dimensional model WM3, since the one object OBJ and the other object OBJ are different objects. This is because the three-dimensional shape of one object OBJ and the three-dimensional shape of another object OBJ may actually be different.
  • the 2D matching unit 3121 may perform 2D matching processing using a plurality of template images each showing a plurality of mutually different two-dimensional shapes.
  • the 2D matching unit 3121 performs a 2D matching process using a first template image showing a first two-dimensional model, so that the object OBJ shown by the first template image (for example, a first three-dimensional shape OBJ) may be detected.
  • the 2D matching unit 3121 performs a 2D matching process using a second template image showing a second two-dimensional model different from the first two-dimensional model, so that the object OBJ shown by the second template image is (For example, an object OBJ having a second three-dimensional shape different from the first three-dimensional shape) may be detected.
  • the target determination unit 314a may determine (in this case, select) any one of the plurality of objects OBJ having different three-dimensional shapes as the target object OBJ_target by a process described later.
  • At least two of the plurality of objects OBJ detected using different template images may have different three-dimensional shapes.
  • at least two of the plurality of objects OBJ detected using different template images may have the same three-dimensional shape.
  • at least two of the plurality of objects OBJ detected using different template images may have the same three-dimensional shape.
  • the state "two objects OBJ detected using different template images have the same three-dimensional shape" is the above-mentioned state "two objects OBJ detected using the same template image have the same three-dimensional shape” may include states similar to the state.
  • the 3D matching unit 3122 matches multiple objects OBJ using different 3D models WM3. May be detected.
  • at least two of the plurality of objects OBJ detected using different three-dimensional models WM3 may have different three-dimensional shapes.
  • at least two of the plurality of objects OBJ detected using different three-dimensional models WM3 may have the same three-dimensional shape.
  • at least two of the plurality of objects OBJ detected using different three-dimensional models WM3 may have the same three-dimensional shape. good.
  • the state that "the three-dimensional shapes of two objects OBJ detected using different three-dimensional models WM3 are the same” refers to the state that "the three-dimensional shapes of two objects OBJ detected using the same template image are the same” as described above. It may include “same” states and similar states.
  • the 2D matching unit 3121 does not need to calculate the position and orientation of the detected object OBJ. That is, at the stage of step S31a, the 2D matching unit 3121 does not need to generate the position and orientation information POI1 indicating the position and orientation of the detected object OBJ. This is because, at the stage of step S31a, the object OBJ detected by the 2D matching process is not necessarily the target object OBJ_target. In this case, the 2D matching unit 3121 may calculate the position and orientation of the object OBJ detected in step S31a after the object OBJ is determined to be the target object OBJ_target. The 2D matching unit 3121 may generate position and orientation information POI1 indicating the position and orientation of the object OBJ detected in step S31a after the object OBJ is determined to be the target object OBJ_target.
  • the target determination unit 314a determines whether or not the object OBJ detected in the 2D matching process of step S31a is determined as the target object OBJ_target (steps S32a to S33a).
  • the target determining unit 314a may determine whether to determine the object OBJ as the target object OBJ_target by determining whether the object OBJ detected by the 2D matching process satisfies a predetermined matching condition. (Step S32a).
  • the matching conditions may include conditions regarding the results of the 2D matching process performed in step S31a.
  • the target determination unit 314a may be considered to be determining whether or not to determine the object OBJ detected in the 2D matching process as the target object OBJ_target based on the result of the 2D matching process.
  • the predetermined matching conditions may include conditions regarding matching similarity. Specifically, in the 2D matching process, the position/orientation calculation unit 312 moves the characteristic points of the object OBJ reflected in the template image closer to the characteristic points of the object OBJ reflected in the image indicated by the image data IMG_2D.
  • the matching similarity which is the similarity between the template image and the similar image portion in which the object OBJ of the template image is matched among the images indicated by the image data IMG_2D, is calculated as described above. be. In this case, the higher the matching similarity, the higher the possibility that the object OBJ reflected in the similar image portion is the same as the object OBJ indicated by the template image.
  • the higher the matching similarity the more the object OBJ detected by the 2D matching process is the same as the object OBJ that should be detected (that is, expected to be detected) by the 2D matching process. More likely.
  • the higher the matching similarity the higher the possibility that the object OBJ detected by the 2D matching process is the same as the object OBJ on which the end effector 13 should perform predetermined processing.
  • the object determining unit 314a determines whether the object OBJ detected by the 2D matching process satisfies the predetermined matching condition by determining whether the matching similarity exceeds a predetermined matching determination threshold. You may judge. If the matching similarity exceeds the matching determination threshold, the object determining unit 314a may determine that the object OBJ detected by the 2D matching process satisfies a predetermined matching condition (step S32a: Yes). On the other hand, if the matching similarity is less than the matching determination threshold, the object determining unit 314a may determine that the object OBJ detected by the 2D matching process does not satisfy the predetermined matching condition (step S32a: No).
  • the matching determination threshold is determined when the object OBJ detected by the 2D matching process is the same as the object OBJ for which the end effector 13 should perform a predetermined process, and the object OBJ detected by the 2D matching process is 13 may be set to an appropriate value that can appropriately distinguish between the object OBJ to which the predetermined process is to be performed and a different state from the matching similarity.
  • the target determining unit 314a determines whether the object OBJ detected by the 2D matching process satisfies a predetermined edge condition, thereby determining the object OBJ as the target object OBJ_target. It may be determined whether or not to decide (step S33a).
  • the edge conditions may include conditions regarding the result of the edge of the object OBJ detected based on the result of the 2D matching process.
  • the predetermined edge conditions may include conditions regarding edge similarity.
  • the edge similarity indicates the degree of similarity between an image edge, which is an edge of the image indicated by the image data IMG_2D acquired in step S1, and an object edge, which is an edge of the object OBJ detected by the 2D matching process.
  • the edge similarity may be an index value indicating the ratio of an overlapping edge portion that overlaps (that is, overlaps) an object edge among image edges to the object edge.
  • the edge similarity may be an index value indicating the ratio of the length of the overlapping edge portion to the length of the object edge. For this reason, edge similarity may be referred to as edge multiplicity.
  • the target determination unit 314a may calculate edge similarity. Specifically, the target determining unit 314a may detect an edge of the image (that is, an image edge) indicated by the image data IMG_2D acquired in step S1. For example, the target determining unit 314a may perform preprocessing (for example, gamma correction processing) on the image data IMG_2D as necessary, and then detect image edges using an edge detection filter such as a differential filter. good. Further, the object determining unit 314a may detect an edge of the object OBJ (that is, an object edge) detected by the 2D matching process.
  • preprocessing for example, gamma correction processing
  • the object determining unit 314a may detect the wire frame of the object OBJ (that is, the wire frame of the two-dimensional model) indicated by the template image matched to the image indicated by the image data IMG_2D as an object edge. . Thereafter, the target determination unit 314a may calculate edge similarity based on the detection results of image edges and object edges.
  • the higher the edge similarity the less the portion of the object OBJ reflected in the similar image portion that is hidden by the shielding object. This is because, when a part of the object OBJ is hidden by the shielding object, the part of the object edge hidden by the shielding object is no longer detected as an image edge. On the other hand, even if part of the object OBJ is hidden by the shield, a portion of the object edge that is hidden by the shield is detected as an object edge. This is because, as described above, the object determining unit 314a detects the wire frame of the object OBJ indicated by the template image (that is, the wire frame used in image processing that is not affected by an obstruction) as an object edge. Because there is.
  • an example of the shielding object is another object OBJ detected by the 2D matching process.
  • An example of an occluding object is any object that has not been detected by the 2D matching process. Therefore, the higher the edge similarity, the lower the possibility that the end effector 13 will interfere with an obstruction when the end effector 13 performs a predetermined process on the object OBJ. In other words, the higher the edge similarity, the higher the possibility that the end effector 13 will be able to perform a predetermined process on the object OBJ without being interfered with by an obstruction.
  • FIG. 22 shows two objects OBJ (specifically, objects OBJ#A and OBJ#B that differ in at least one of their positions and orientations) detected by the 2D matching process.
  • FIG. 22 shows an example in which object OBJ#A is stacked on object OBJ#B.
  • object OBJ#A is hidden by object OBJ#A.
  • object OBJ#B is hidden by object OBJ#A, so it is no longer detected as an image edge.
  • the number of overlapping edges that overlap the edge of object OBJ#B among the image edges is reduced.
  • the edge of object OBJ#A is detected as an image edge because it is not hidden by object OBJ#B.
  • the number of overlapping edges that overlap the edge of object OBJ#A among the image edges does not decrease. Therefore, the edge similarity of object OBJ#A that is not hidden by object OBJ#B is higher than the edge similarity of object OBJ#B that is hidden by object OBJ#A.
  • the end effector 13 that performs a predetermined process on the object OBJ#B may interfere with the object OBJ#A that partially hides the object OBJ#B.
  • the end effector 13 when the end effector 13 performs a holding process to hold the object OBJ#B, there is a possibility that the end effector 13 comes into contact with the object OBJ#A stacked on the object OBJ#B.
  • the end effector 13 that performs predetermined processing on the object OBJ#A is unlikely to interfere with the object OBJ#B below the object OBJ#A. Therefore, in this case, the object OBJ#A with higher edge similarity should be determined as the object OBJ on which the end effector 13 should perform predetermined processing than the object OBJ#B with lower edge similarity.
  • the object determining unit 314a determines whether the object OBJ detected by the 2D matching process satisfies the predetermined edge condition by determining whether the edge similarity exceeds a predetermined edge determination threshold. may be determined. If the edge similarity exceeds the edge determination threshold, the object determining unit 314a may determine that the object OBJ detected by the 2D matching process satisfies a predetermined edge condition (step S33a: Yes). On the other hand, if the edge similarity is less than the edge determination threshold, the object determining unit 314a may determine that the object OBJ detected by the 2D matching process does not satisfy the predetermined edge condition (step S33a: No).
  • the edge determination threshold is determined based on the state in which the object OBJ detected by the 2D matching process is an object OBJ on which the end effector 13 can perform predetermined processing without interference from other objects OBJ, and the 2D matching process.
  • a state in which an object OBJ detected by processing is an object OBJ for which it is difficult for an end effector 13 to perform predetermined processing without interference from other objects OBJ. may be set to an appropriate value that allows for.
  • the target determination unit 314a determines whether or not the object OBJ is determined as the target object OBJ_target by determining whether the object OBJ satisfies both the matching condition and the edge condition. An example of determination is shown. In this case, if it is determined that the object OBJ satisfies both the matching condition and the edge condition (step S32a: Yes and step S33a: Yes), the target determining unit 314a determines the object OBJ as the target object OBJ_target. (Step S34a).
  • the object determining unit 314a it is not necessary to determine the object OBJ as the object OBJ_target.
  • the target determining unit 314a uses either the matching condition or the edge condition in order to determine whether or not to determine the object OBJ as the target object OBJ_target, while using the other of the matching condition and the edge condition. It doesn't have to be used.
  • the target determination unit 314a may use the matching condition but not the edge condition in order to determine whether to determine the object OBJ as the target object OBJ_target. In this case, if it is determined that the object OBJ satisfies the matching condition (step S32a: Yes), the target determining unit 314a may determine the object OBJ as the target object OBJ_target (step S34a). On the other hand, if it is determined that the object OBJ does not satisfy the matching condition (step S32a: No), the target determining unit 314a does not need to determine the object OBJ as the target object OBJ_target.
  • the target determination unit 314a may use the edge condition but not the matching condition in order to determine whether to determine the object OBJ as the target object OBJ_target. In this case, if it is determined that the object OBJ satisfies the edge condition (step S33a: Yes), the target determination unit 314a may determine the object OBJ as the target object OBJ_target (step S34a). On the other hand, if it is determined that the object OBJ does not satisfy the edge condition (step S33a: No), the target determination unit 314a does not need to determine the object OBJ as the target object OBJ_target.
  • the target determining unit 314a determines (in this case, selects) any one of the multiple objects OBJ as the target object OBJ_target. good. For example, the object determining unit 314a selects the object OBJ with the highest matching similarity among the plurality of objects OBJ that satisfy the matching condition and the edge condition (the matching similarity exceeds the matching judgment threshold and the edge similarity exceeds the edge judgment threshold). One object OBJ may be determined (in this case, selected) as the target object OBJ_target.
  • the object determining unit 314a selects the object OBJ with the highest edge similarity from among the plurality of objects OBJ that satisfy the matching condition and the edge condition (the matching similarity exceeds the matching judgment threshold and the edge similarity exceeds the edge judgment threshold).
  • One object OBJ may be determined (in this case, selected) as the target object OBJ_target.
  • the target determining unit 314a selects one object OBJ with the highest matching similarity from among the plurality of objects OBJ detected by the 2D matching process, without determining whether the object OBJ satisfies the matching condition and the edge condition.
  • the object OBJ may be determined (in this case, selected) as the object OBJ_target.
  • the target determining unit 314a selects one object OBJ with the highest edge similarity from among the plurality of objects OBJ detected by the 2D matching process, without determining whether the object OBJ satisfies the matching condition and the edge condition. may be determined (in this case, selected) as the object OBJ_target.
  • the target determination unit 314a determines any one of the plurality of objects OBJ as the target object OBJ_target (in this case, the selected ) may be done.
  • the target determination unit 314a determines one object OBJ selected from among the plurality of objects OBJ detected by the 2D matching process based on the matching similarity and edge similarity as the target object OBJ_target (in this case, , selection).
  • the target object OBJ_target one object OBJ selected based on the matching similarity and edge similarity from the first object OBJ#1 and the second object OBJ#2 detected by the 2D matching process.
  • the matching similarity of the first object OBJ#1 is expressed as a variable "MS#1"
  • the matching similarity of the second object OBJ#2 is expressed as a variable "MS#2”.
  • the edge similarity of the first object OBJ#1 is expressed as a variable "ES#1”
  • the edge similarity of the second object OBJ#2 is expressed as a variable "ES#2”.
  • the target determining unit 314a selects the matching similarity MS#1, the matching similarity MS#2, the edge similarity ES#1, and the edge similarity from the first object OBJ#1 and the second object OBJ#2. Based on the degree ES#2, one selected object OBJ is determined (in this case, selected) as the target object OBJ_target.
  • the target is determined.
  • the unit 314a determines (in this case, selects) the one object OBJ as the target object OBJ_target. Specifically, the edge similarity ES#1 exceeds the edge determination threshold, the edge similarity ES#1 is higher than the edge similarity ES#2, the matching similarity MS#1 exceeds the matching determination threshold, and When the matching similarity MS#1 is higher than the matching similarity MS#2, the target determining unit 314a determines (in this case, selects) the first object OBJ#1 as the target object OBJ_target.
  • the target determining unit 314a determines (in this case, selects) the second object OBJ#2 as the target object OBJ_target.
  • the object determining unit 314a calculates the matching ratio and the edge ratio.
  • the matching ratio indicates a value obtained by dividing the smaller of the matching similarities MS#1 and MS#2 by the larger of the matching similarities MS#1 and MS#2. In other words, the matching ratio indicates the ratio of the smaller of the matching similarities MS#1 and MS#2 to the larger of the matching similarities MS#1 and MS#2.
  • the edge ratio indicates a value obtained by dividing the smaller of edge similarities ES#1 and ES#2 by the larger of edge similarities ES#1 and ES#2. That is, the edge ratio indicates the ratio of the smaller of the edge similarities ES#1 and ES#2 to the larger of the edge similarities ES#1 and ES#2.
  • the target determining unit 314a determines one object OBJ selected from the first object OBJ#1 and the second object OBJ#2 based on the matching ratio and the edge ratio as the target object OBJ_target ( In this case, select). Specifically, when the matching ratio is smaller than the edge ratio, the difference between the matching similarities MS#1 and MS#2 is larger than the difference between the edge similarities ES#1 and ES#2.
  • the target determining unit 314a selects one of the first object OBJ#1 and second object OBJ#2, which has a higher matching similarity than the other object OBJ, as the target object OBJ_target. Decide (in this case, choose).
  • the target determining unit 314a selects one of the first object OBJ#1 and second object OBJ#2, which has a higher degree of edge similarity than the other object OBJ, as the target object OBJ_target. Decide (in this case, choose).
  • the edge similarity ES#1 is higher than the edge determination threshold
  • the edge similarity ES#1 is higher than the edge similarity ES#2
  • the matching similarity MS#1 is higher than the matching determination threshold
  • the matching similarity is lower than the matching similarity degree MS#2
  • the matching ratio and edge ratio are calculated using the formula #2/edge similarity ES#1.
  • the target determining unit 314a determines the second object OBJ#2 having a matching similarity MS#2 higher than the matching similarity MS#1 as the target object OBJ_target. (in this case, select).
  • the target determination unit 314a sets the first object OBJ#1 having the edge similarity ES#1 higher than the edge similarity RS#2 as the target object OBJ_target. Decide (in this case, choose).
  • the edge similarity ES#2 exceeds the edge determination threshold
  • the edge similarity ES#2 is higher than the edge similarity ES#1
  • the matching similarity MS#2 exceeds the matching determination threshold
  • the matching ratio and edge ratio are calculated using the formula: degree ES#1/edge similarity ES#2.
  • the target determining unit 314a determines the first object OBJ#1 having a matching similarity MS#1 higher than the matching similarity MS#2 as the target object OBJ_target. (in this case, select).
  • the target determining unit 314a sets the second object OBJ#2 having the edge similarity ES#2 higher than the edge similarity RS#1 as the target object OBJ_target. Decide (in this case, choose).
  • the matching similarity and edge similarity of the object OBJ determined as the target object OBJ_target exceed the matching determination threshold and the edge determination threshold, respectively. That is, when determining (in this case, selecting) one object OBJ selected based on the matching similarity and edge similarity as the target object OBJ_target, the target determining unit 314a determines that the matching similarity and edge similarity are The object OBJ that exceeds the matching determination threshold and the edge determination threshold, respectively, is determined as the target object OBJ_target. Specifically, the case where edge similarity ES#1 exceeds the edge judgment threshold, matching similarity MS#1 exceeds the matching judgment threshold, and edge similarity ES#2 exceeds the edge judgment threshold.
  • the target determining unit 314a determines (in this case, selects) the first object OBJ#1 as the target object OBJ_target.
  • the target determining unit 314a determines (in this case, selects) the second object OBJ#2 as the target object OBJ_target.
  • the target determining unit 314a determines both the first object OBJ#1 and the second object OBJ#2 as the target object OBJ_target. (In this case, select) No.
  • step S34a if the object OBJ detected by the 2D matching process is determined as the target object OBJ_target, the position and orientation calculation unit 312 calculates the position and orientation of the object OBJ determined as the target object OBJ_target. Specifically, the three-dimensional position data generation unit 311 generates three-dimensional position data WSD based on the image data IMG_3D acquired in step S1 (step S2). However, the three-dimensional position data generation unit 311 generates the three-dimensional position data WSD based on the image data IMG_3D acquired in step S1 before the object OBJ detected in the 2D matching process has been determined as the target object OBJ_target. may be generated in advance.
  • the three-dimensional position data generation unit 311 generates the three-dimensional position data WSD based on the image data IMG_3D acquired in step S1 during the period in which the processes from step S31a to step S33a are performed. You can leave it there.
  • the position and orientation calculation unit 312 calculates at least one of the position and orientation of the object OBJ based on the image data IMG_2D acquired in step S1 and the three-dimensional position data WSD generated in step S2 (step S3 ). As a result, the position and orientation calculation unit 312 generates position and orientation information POI0 indicating at least one of the position and orientation of the object OBJ (step S3).
  • step S3 of FIG. 21 the position and orientation calculation unit 312 does not need to perform the 2D matching process again.
  • the position and orientation calculation unit 312 determines the initial position and initial orientation of the three-dimensional model WM3 used to perform the tracking process based on the result of the 2D matching process in step S31a (that is, the position and orientation information POI1). You may.
  • the position and orientation calculation unit 312 may perform the 2D matching process again.
  • the imaging device 21 is moved for matching processing.
  • the 2D imaging time at which the object OBJ is imaged and the 3D imaging time at which the imaging device 22 images the object OBJ for matching processing may be set to different times.
  • the imaging device 22 may image the object OBJ determined as the target object OBJ_target after the object OBJ is determined as the target object OBJ_target. That is, the imaging device 22 may image the object OBJ after the imaging device 21 images the object OBJ in order to determine whether the object OBJ is determined as the target object OBJ_target.
  • the position and orientation calculation unit 312 uses the result of the 2D matching process (that is, position and orientation information POI1) performed to determine whether or not the object OBJ is determined as the target object OBJ_target, and the At least one of the position and orientation of the object OBJ may be calculated based on the three-dimensional position data WSD generated from the image data IMG_3D generated by the imaging device 22 imaging the object OBJ after imaging the object OBJ. .
  • the target determination unit 314a may determine the object OBJ that has not been determined as the target object OBJ_target at one point in time as the target object OBJ_target at another point in time different from the one point in time. be. For example, when the robot 1 performs a release process to place multiple workpieces W one by one on the mounting device T, the target determination unit 314a sequentially determines the multiple workpieces W as the target object OBJ_target (this (selection) may be made as described above. In this case, even after the object OBJ detected in the 2D matching process is determined as the target object OBJ_target, the target determining unit 314a performs the steps S1 to S4 in FIG.
  • the target determining unit 314a determines the object OBJ as the target object OBJ_target until it is determined that the robot control process is finished. You may repeat the process of determining whether or not.
  • the image capturing range (field of view) of the imaging device 21 is , object OBJ may not exist.
  • the imaging device 21 may not be imaging the object OBJ from an appropriate position.
  • the imaging device 21 may not be imaging the object OBJ in an appropriate posture. In other words, the imaging device 21 may not be imaging the object OBJ from an appropriate direction.
  • the control device 3 may control the robot 1 to move the imaging device 21 with respect to the object OBJ (step S36a). Specifically, the control device 3 may generate a robot control signal for controlling the robot 1 (in particular, the robot arm 12) to move the imaging device 21 with respect to the object OBJ. Thereafter, the control device 3 may output the generated robot control signal to the robot 1. As a result, the robot 1 (particularly the robot arm 12) may move the imaging device 21 with respect to the object OBJ.
  • the imaging device 21 moves relative to the object OBJ, there is a possibility that the object OBJ will newly exist in the imaging range (field of view) of the imaging device 21, where the object OBJ did not exist before the imaging device 21 moved. It's coming.
  • the imaging device 21 moves relative to the object OBJ, the imaging device 21, which was not imaging the object OBJ from an appropriate position before the imaging device 21 moved, can now image the object OBJ from an appropriate position. Gender comes out.
  • the imaging device 21 moves relative to the object OBJ, the imaging device 21, which was not imaging the object OBJ in an appropriate attitude before the imaging device 21 moved, can now image the object OBJ in an appropriate attitude. Gender comes out.
  • the imaging device 21 moves relative to the object OBJ
  • the imaging device 21 which had not imaged the object OBJ from an appropriate direction before the imaging device 21 moved, can now image the object OBJ from an appropriate direction. There is a possibility that it can be done. Therefore, compared to the case where the imaging devices 21 and 22 are not moved relative to the object OBJ, the control device 3 is more likely to be able to determine the object OBJ detected by the 2D matching process as the object OBJ_target. .
  • step S1 to step S33a in FIG. 21 may be performed again.
  • the control device 3 performs an operation of moving the imaging device 21 until the object OBJ detected by the 2D matching process is determined as the target object OBJ_target, and the control device 3 performs an operation of moving the imaging device 21 until the object OBJ detected by the 2D matching process is determined as the target object OBJ_target.
  • the operation of determining whether or not it is possible may be repeated alternately.
  • the control device 3 generates a robot control signal for controlling the robot 1 (in particular, the robot arm 12) so that the imaging device 21 rotates around a desired rotation axis, as shown in FIG. 23(a). It's okay.
  • the control device 3 may rotate the imaging device 21 around at least one of a rotation axis along the X-axis (2D), a rotation axis along the Y-axis (2D), and a rotation axis along the Z-axis (2D). may be rotated.
  • the control device 3 rotates the imaging device 21 around at least one of a rotation axis along the X-axis (3D), a rotation axis along the Y-axis (3D), and a rotation axis along the Z-axis (3D).
  • the control device 3 rotates the imaging device 21 around at least one of a rotation axis along the X-axis (GL), a rotation axis along the Y-axis (GL), and a rotation axis along the Z-axis (GL). You may move it.
  • the control device 3 may rotate the imaging device 21 around a rotation axis that intersects the optical axis AX21 of the imaging device 21.
  • the control device 3 since the Z-axis (2D) is an axis along the optical axis AX21, the control device 3 may rotate the imaging device 21 around the rotation axis that intersects the Z-axis (2D).
  • the control device 3 may rotate the imaging device 21 around the X-axis (2D) intersecting the Z-axis (2D).
  • the control device 3 may rotate the imaging device 21 around the Y-axis (2D) intersecting the Z-axis (2D).
  • FIG. 23(a) the direction in which the imaging device 21 images the object OBJ changes. For this reason, the possibility that the imaging device 21, which did not image the object OBJ from an appropriate direction before the imaging device 21 moved, will be able to image the object OBJ from an appropriate direction tends to increase.
  • the control device 3 performs a first rotational movement operation of rotating the imaging device 21 in a positive rotational direction around the X-axis (2D) and a negative rotational movement around the X-axis (2D).
  • a second rotational movement operation that rotationally moves the imaging device 21 in the rotational direction
  • a third rotational movement operation that rotationally moves the imaging device 21 in the positive rotational direction around the Y-axis (2D)
  • a third rotational movement operation that rotationally moves the imaging device 21 in the positive rotational direction around the Y-axis (2D
  • At least one of the fourth rotational movement operation of rotationally moving the imaging device 21 in the negative rotational direction may be performed.
  • the control device 3 may sequentially perform at least two of the first to fourth rotational movement operations until the object OBJ detected in the 2D matching process is determined as the target object OBJ_target. For example, the control device 3 may perform the first rotational movement operation, and then determine whether the object OBJ detected in the 2D matching process is determined as the object OBJ_target. As a result, if it is still determined that the object OBJ detected in the 2D matching process is not determined as the target object OBJ_target, the control device 3 performs a second rotational movement operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target.
  • the control device 3 performs the third rotational movement operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target. As a result, if it is still determined that the object OBJ detected in the 2D matching process is not determined as the target object OBJ_target, the control device 3 performs a fourth rotational movement operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target.
  • control device 3 controls the robot 1 (in particular, the robot arm 12) so that the imaging device 21 translates along a desired translation axis, as shown in FIG. 23(b).
  • Robot control signals may also be generated.
  • the control device 3 may translate the imaging device 21 along at least one of the X axis (2D), the Y axis (2D), and the Z axis (2D).
  • the control device 3 may translate the imaging device 21 along at least one of the X axis (3D), the Y axis (3D), and the Z axis (3D).
  • the control device 3 may translate the imaging device 21 along at least one of the X-axis (GL), the Y-axis (GL), and the Z-axis (GL).
  • the control device 3 may translate the imaging device 21 along a translational axis that intersects the optical axis AX21 of the imaging device 21.
  • the control device 3 since the Z-axis (2D) is an axis along the optical axis AX21, the control device 3 may translate the imaging device 21 along the translational axis that intersects the Z-axis (2D).
  • the control device 3 may translate the imaging device 21 along the X-axis (2D) that intersects the Z-axis (2D).
  • the control device 3 may translate the imaging device 21 along the Y axis (2D) that intersects the Z axis (2D).
  • the position at which the imaging device 21 images the object OBJ changes. For this reason, the possibility that the imaging device 21, which did not image the object OBJ from an appropriate position before the imaging device 21 moved, will be able to image the object OBJ from an appropriate position is likely to increase.
  • the control device 3 performs a first translation operation to translate the imaging device 21 in a positive translation direction along the X-axis (2D) and a first translation operation to translate the imaging device 21 in a positive translation direction along the X-axis (2D)
  • a second translational movement operation that translates the imaging device 21 in a negative translational direction; a third translational movement action that translates the imaging device 21 in a positive translational direction along the Y-axis (2D);
  • the control device 3 may sequentially perform at least two of the first translation operation to the fourth translation operation until the object OBJ detected in the 2D matching process is determined as the target object OBJ_target.
  • control device 3 may perform the first translation operation, and then determine whether the object OBJ detected in the 2D matching process is determined as the object OBJ_target. As a result, if it is still determined that the object OBJ detected in the 2D matching process is not determined as the target object OBJ_target, the control device 3 performs the second translation operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target.
  • the control device 3 performs a third translation operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target. As a result, if it is still determined that the object OBJ detected in the 2D matching process is not determined as the target object OBJ_target, the control device 3 performs a fourth translation operation, and then the object OBJ detected in the 2D matching process is It may be determined whether the object OBJ is determined as the object OBJ_target.
  • the control device 3 may alternately perform an operation of rotating the imaging device 21 and an operation of translating the imaging device 21. For example, the control device 3 may sequentially perform the above-described first to fourth rotational movement operations until the object OBJ detected in the 2D matching process is determined as the target object OBJ_target. Thereafter, even after the first to fourth rotational movement operations described above are performed, if it is still determined that the object OBJ detected in the 2D matching process is not determined as the object OBJ_target, the control device 3 may perform any one of the first translation operation to the fourth translation operation so that the imaging device 21 moves from one position to another position.
  • control device 3 uses the imaging device 21 located at another position to perform the first to fourth rotational movement operations until the object OBJ detected in the 2D matching process is determined as the object OBJ_target. may be performed in order. Thereafter, the control device 3 may repeat the same operation.
  • the control device 3 performs an operation of rotating the imaging device 21 and an operation of translating the imaging device 21. You may give priority to This is because the imaging device 21 is more likely to be able to properly image the object OBJ if the direction in which the imaging device 21 images the object OBJ changes than if the position in which the imaging device 21 images the object OBJ changes. This is because it becomes expensive.
  • control device 3 of the first modification can appropriately determine whether to determine the object OBJ detected by the 2D matching process as the object OBJ_target. Therefore, even if a plurality of objects OBJ are detected by the 2D matching process, the control device 3 can appropriately determine one of the plurality of objects OBJ as the target object OBJ_target.
  • the control device 3 can determine the object OBJ that satisfies the matching condition as the target object OBJ_target. In this case, the control device 3 can appropriately determine the object OBJ that is expected to be detected by the 2D matching process as the target object OBJ_target. That is, the control device 3 does not erroneously determine the object OBJ, which should not be detected by the 2D matching process, as the target object OBJ_target. Therefore, the end effector 13 can appropriately perform predetermined processing on the object OBJ to be detected by 2D matching processing.
  • the control device 3 can determine the object OBJ that satisfies the edge condition as the target object OBJ_target. In this case, the control device 3 can preferentially determine the object OBJ that is not hidden by the shielding object as the target object OBJ_target, rather than the object OBJ that is partially hidden by the shielding object.
  • the object OBJ that is partially hidden by the shield is assumed to be the object OBJ on which the shield overlaps. Therefore, if the end effector 13 attempts to perform a predetermined process (for example, the above-mentioned holding process) on such an object OBJ, there is a possibility that the shielding object will interfere with the process of the end effector 13.
  • an object OBJ that is not hidden by a shield is an object OBJ on which a shield does not overlap. Therefore, even if the end effector 13 attempts to perform a predetermined process (for example, the above-described holding process) on such object OBJ, there is a low possibility that the process of the end effector 13 will be hindered. Therefore, the control device 3 can determine, as the target object OBJ_target, an object OBJ with which the end effector 13 is likely to be able to appropriately perform a predetermined action. That is, the control device 3 does not determine, as the target object OBJ_target, an object OBJ for which there is a high possibility that the end effector 13 cannot appropriately perform a predetermined operation. Therefore, the end effector 13 can appropriately perform predetermined processing on the object OBJ.
  • a predetermined process for example, the above-described holding process
  • the effect that can be achieved by determining the object OBJ that satisfies such edge conditions as the target object OBJ_target is that the end effector 13 is able to perform a predetermined position on a plurality of workpieces W stacked randomly on the mounting device T. This is particularly effective when performing processing (for example, holding processing). This is because, when a plurality of works W are stacked randomly on the mounting device T, there is a high possibility that a part of one work W is blocked by another work W.
  • the control device 3 moves the imaging device 21 (for example, rotationally and/or translationally) and then It can be determined again whether or not the object OBJ detected by the 2D matching process is determined as the object OBJ_target. Therefore, the control device 3 can appropriately find the object OBJ determined as the target object OBJ_target.
  • the control device 3 when the object OBJ detected by the 2D matching process is determined as the target object OBJ_target, the control device 3 normally controls the robot arm 12 so that the end effector 13 approaches the object OBJ. Generate robot control signals. However, before the object OBJ detected by the 2D matching process is determined as the target object OBJ_target, the control device 3 controls the robot arm so that the end effector 13 approaches the object OBJ detected by the 2D matching process. 12 may be generated. For example, when a plurality of objects OBJ are detected by the 2D matching process, the control device 3 causes the end effector 13 to approach the object OBJ that has been detected by the 2D matching process and has the highest matching similarity. A robot control signal for controlling the robot arm 12 may also be generated.
  • the control device 3 when a plurality of objects OBJ are detected by the 2D matching process, the control device 3 causes the end effector 13 to approach the object OBJ detected by the 2D matching process and having the highest edge similarity.
  • a robot control signal for controlling the robot arm 12 may also be generated.
  • the control device 3 controls the robot arm 12 so that the end effector 13 approaches the object OBJ detected by the 2D matching process.
  • a robot control signal for controlling the robot may be generated. In this case, the control device 3 performs the robot control process shown in FIG.
  • the 21 determines the object OBJ as the target object OBJ_target during a period in which the end effector 13 approaches the object OBJ detected by the 2D matching process. (a process of determining whether or not) may be performed. As a result, after the object OBJ temporarily detected by the 2D matching process is determined as the target object OBJ_target, the time required for the end effector 13 to reach the object OBJ becomes shorter.
  • the control device 3 performs matching.
  • a robot control signal may be generated to control the robot arm 12 so that the end effector 13 approaches another object OBJ with a higher degree of similarity or edge similarity.
  • the end effector 13 is controlled to move toward the object OBJ#1 whose matching similarity is "MR1" before the object OBJ#1 is determined as the target object OBJ_target.
  • the robot arm 12 is shown in FIG. Assume that under the situation shown in FIG. 24(a), as shown in FIG.
  • an object OBJ#2 whose matching similarity is "MR2" which is higher than "MR1" is newly detected.
  • the control device 3 controls the robot arm 12 so that the end effector 13 approaches the object OBJ#2 instead of the object OBJ#1, as shown in FIG. 24(b).
  • a control signal may also be generated.
  • the control device 3 controls the robot 1 (e.g., robot arm 12) may generate a robot control signal for controlling.
  • control device 3 controls the robot 1 to move the imaging device 21 relative to the object OBJ when the object OBJ detected in the 2D matching process is not determined as the target object OBJ_target. is being controlled (step S36a in FIG. 21).
  • control device 3 may control the robot 1 to move the imaging device 21 with respect to the object OBJ even when the object OBJ detected in the 2D matching process is determined as the target object OBJ_target. .
  • control device 3 may move the imaging device 21 relative to the object OBJ so that as many edges of the object OBJ as possible are reflected in the image indicated by the image data IMG_2D.
  • the control device 3 moves the imaging device 21 relative to the object OBJ so that the number of edges of the object OBJ reflected in the image indicated by the image data IMG_2D increases compared to before moving the imaging device 21.
  • the control device 3 may move the imaging device 21 relative to the object OBJ so that the sum of the lengths of the edges of the object OBJ reflected in the image indicated by the image data IMG_2D is as large as possible.
  • the control device 3 moves the imaging device 21 relative to the object OBJ so that the sum of the lengths of the edges of the object OBJ reflected in the image indicated by the image data IMG_2D becomes larger than before moving the imaging device 21. You may move it.
  • the control device 3 may calculate the position and orientation information POI0 by performing the processes of steps S1, S2, and S3 in FIG. 21 again. Note that in this case, since the object OBJ determined as the target object OBJ_target has not changed, the control device 3 does not need to perform the processes from step 31a to step S34a in FIG. 21. In this case, compared to the case where the imaging device 21 is not moved with respect to the object OBJ, the variation in the orientation of the object OBJ indicated by the position and orientation information POI0 becomes smaller.
  • FIG. 25 shows an imaging device 21 that images the object OBJ from a first position P1, and an imaging device 21 that images the object OBJ from a second position P2 different from the first position P1. ing.
  • the edge of the object OBJ reflected in the image indicated by the image data IMG_2D generated by the imaging device 21 that images the object OBJ from the first position P1 images the object OBJ from the second position P2.
  • the number of edges is smaller than the number of edges of the object OBJ reflected in the image shown by the image data IMG_2D generated by the imaging device 21.
  • the control device 3 may move the imaging device 21 from the first position P1 to the second position P2.
  • the number of edges of the object OBJ appearing in the image increases (for example, the total length of the edges increases). Therefore, the amount of information that can be used by 2D matching processing increases. Therefore, variations in the position and orientation information POI1 generated by the 2D matching process are reduced. As a result, variations in the position and orientation information POI0 generated based on the position and orientation information POI1 are also reduced (reproducibility is increased).
  • the imaging device 22 also moves as the imaging device 21 moves, the amount of information included in the image data IMG_3D generated by the imaging device 21 and that can be used by the 3D matching process also increases. As a result, the amount of information included in the three-dimensional position data WSD generated from the image data IMG_3D and that can be used by the 3D matching process (for example, the number of point clouds included in the point cloud data) also increases. Therefore, variations in the position and orientation information POI2 generated by the 3D matching process are reduced. As a result, variations in the position and orientation information POI0 generated based on the position and orientation information POI2 are also reduced (reproducibility is increased).
  • FIG. 26 is a block diagram showing the configuration of the control device 3b in the first modification.
  • control device 3b in the second modification is different from the above-described control device 3 or 3a in that the arithmetic device 31 includes a pre-processing section 315b as a logical processing block. different.
  • the pre-processing unit 315b performs pre-processing before matching processing and tracking processing are performed.
  • Other features of the control device 3b may be the same as other features of the control device 3 or 3a.
  • the pre-processing unit 315b may perform pre-processing on the three-dimensional position data WSD generated by the three-dimensional position data generating unit 311.
  • the 3D matching unit 3122 may perform 3D matching processing using the pre-processed three-dimensional position data WSD.
  • the tracking unit 3123 may perform tracking processing using the pre-processed three-dimensional position data WSD.
  • the pre-processing performed on the three-dimensional position data WSD may include data deletion processing for deleting a part of the data portion of the three-dimensional position data WSD.
  • the three-dimensional position data WSD includes not only the data portion indicating the three-dimensional position of each of multiple points of the object OBJ whose position and orientation are to be calculated, but also the three-dimensional position data of other objects different from the object OBJ. It may contain a data portion indicating the original position.
  • the data deletion process may include a process of deleting, from the three-dimensional position data WSD, a data portion indicating the three-dimensional position of another object different from the object OBJ.
  • the imaging device 22 generates image data IMG_3D by capturing an image of the workpiece W placed on the mounting device T. Therefore, the three-dimensional position data WSD generated from the image data IMG_3D may include not only a data part indicating the three-dimensional position of each of the plurality of points on the workpiece W, but also a data part indicating the shape of the mounting device T. There is sex. In this case, as shown in FIG. 27, the preprocessing unit 315b may delete the data portion indicating the three-dimensional position of the mounting device T from the three-dimensional position data WSD.
  • the mounting surface of the mounting device T on which the workpiece W is mounted may be a flat surface.
  • the pre-processing unit 315b may perform plane removal processing, which is an example of data deletion processing, on the three-dimensional position data WSD.
  • plane removal processing is at least one of the plane removal process using RANSAC (Random Sample Consensus) and the plane removal process using the least squares method.
  • Such data deletion processing reduces the data size of the three-dimensional position data WSD.
  • the amount of calculation required for the 3D matching process using the three-dimensional position data WSD and the amount of calculation required for the tracking process using the three-dimensional position 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 tracking cycle, which is the time required for the tracking unit 3123 to complete the tracking process, can be shortened.
  • the position/orientation calculation unit 312 replaces the data portion indicating the three-dimensional position of an object different from the object OBJ whose position and orientation are to be calculated with the data portion indicating the three-dimensional position of the object OBJ.
  • the possibility of misrecognition as a data part is reduced. This is because the data portion indicating the three-dimensional position of an object different from the object OBJ, which may become noise in the tracking processing and matching processing described above, is deleted. Therefore, the position and orientation calculation unit 312 can appropriately recognize the data portion indicating the three-dimensional position of the object OBJ.
  • the position/orientation calculation unit 312 can appropriately recognize the point cloud regarding the object OBJ.
  • the position and orientation calculation unit 312 can appropriately recognize depth information regarding the object OBJ. As a result, the position and orientation calculation unit 312 can calculate the position and orientation of the object OBJ with higher accuracy than when data deletion processing is not performed.
  • the preprocessing unit 315b based on a user's instruction specifying a data portion of the three-dimensional position data WSD that indicates the three-dimensional position of another object different from the object OBJ, extracts the following from the three-dimensional position data WSD: A data portion indicating the shape of an object different from object OBJ may be deleted.
  • the control device 3 uses an output device 35 including a display device to display a part of the data portion of the three-dimensional position data WSD indicating the three-dimensional position of another object different from the object OBJ.
  • a GUI Graphic User Interface
  • the control device 3 uses the output device 35 including a display device to display a plurality of points indicated by point cloud data that is an example of the three-dimensional position data WSD, and displays a plurality of points that are different from the object OBJ among the plurality of points.
  • a GUI that can be operated by the user may be displayed to specify a point indicating the three-dimensional position of another object.
  • the control device 3 uses the output device 35 including a display device to display a depth image indicated by depth image data that is an example of the three-dimensional position data WSD, and displays other objects different from the object OBJ in the depth image.
  • a GUI that can be operated by the user may be displayed to specify pixels that represent the shape of the object.
  • the pre-processing unit 315b may perform pre-processing on at least one of the image data IMG_2D and IMG_3D.
  • the 2D matching unit 3121 may perform 2D matching processing using the image data IMG_2D that has been subjected to pre-processing.
  • the tracking unit 3123 may perform tracking processing using two pieces of image data IMG_2D, each of which has been pre-processed.
  • the three-dimensional position data generation unit 311 may generate the three-dimensional position data WSD using the pre-processed image data IMG_3D.
  • the 3D matching unit 3122 may perform 3D matching processing using the three-dimensional position data WSD generated from the pre-processed image data IMG_3D.
  • the tracking unit 3123 may perform tracking processing using the three-dimensional position data WSD generated from the pre-processed image data IMG_3D.
  • the pre-processing performed on at least one of the image data IMG_2D and IMG_3D may include gamma correction processing.
  • Gamma correction processing emphasizes the edges of object OBJ reflected in the image represented by image data IMG_2D (or image data IMG_3D) by adjusting the contrast of the image represented by image data IMG_2D (or image data IMG_3D). It may also include correction processing.
  • the imaging unit 2 may include a photometric device 24b capable of measuring the brightness (that is, luminance) of the object OBJ. . At least one of the imaging devices 21 and 22 may automatically adjust the exposure based on the measurement result of the photometry device 24b. Alternatively, at least one of the imaging devices 21 and 22 may calculate the luminance value (for example, of a plurality of pixels) of the actually generated image data IMG_2D (or image data IMG_3D) in addition to or instead of the measurement result of the photometric device 24b.
  • the luminance value for example, of a plurality of pixels
  • the exposure may be automatically adjusted based on the average brightness value.
  • at least one of the imaging devices 21 and 22 may automatically adjust the exposure so that the brightness value of the image data IMG_2D (or image data IMG_3D) falls within a desired range.
  • the contrast of the image data IMG_2D (or image data IMG_3D) can be adjusted more appropriately by gamma correction processing so as to emphasize the edge of the workpiece W reflected in the image data IMG_2D (or image data IMG_3D). becomes.
  • the pre-processing performed on at least one of the image data IMG_2D and IMG_3D may include high dynamic range synthesis processing.
  • high dynamic range processing involves compositing multiple image data IMG_2D (or multiple image data IMG_3D) generated by capturing images of the workpiece W under multiple imaging environments with different exposures.
  • the process may include processing for generating image data IMG_2D (or image data IMG_3D) having a wide dynamic range with less blown-out highlights and blown-up shadows.
  • the pre-processing performed on at least one of the image data IMG_2D and IMG_3D may include noise removal processing. As shown in FIG. 30, the noise removal process generates image data IMG_2D (or image data IMG_3D) with less noise by removing noise included in image data IMG_2D (or image data IMG_3D). It may be a process.
  • the pre-processing unit 315b may perform known filter processing on at least one of the image data IMG_2D and IMG_3D as the noise removal processing. For example, the pre-processing unit 315b may perform filter processing on at least one of the image data IMG_2D and IMG_3D using at least one of an averaging filter, a median filter, and an expansion filter.
  • the pre-processing unit 315b may perform known filter processing on at least one of the image data IMG_2D and IMG_3D.
  • the pre-processing unit 315b may perform filter processing using at least one of a smoothing filter and an edge enhancement filter on at least one of the image data IMG_2D and IMG_3D.
  • FIG. 31 is a block diagram showing the configuration of the robot system SYS in the third modification.
  • the third modification of the robot system SYS will be referred to as a "robot system SYSc" to distinguish it from the robot system SYS described above.
  • the robot system SYSc in the third modification is different from the robot systems SYS, SYSa, or SYSb described above in that it includes an imaging unit 2c instead of the imaging unit 2. It's okay.
  • Other characteristics of the robot system SYSc may be the same as other characteristics of the robot system SYS, SYSa or SYSb.
  • the imaging unit 2c in the third modification differs from the imaging unit 2 described above in that it includes an illumination device 24c, a filter 25c, and a filter 26c. Other features of the imaging unit 2c may be the same as other features of the imaging unit 2.
  • the illumination device 24c is a device that can irradiate illumination light onto the object OBJ.
  • the illumination device 24c is a device that can illuminate the object OBJ with illumination light by irradiating the object OBJ with illumination light.
  • the illumination device 24c may illuminate the object OBJ with illumination light that includes a light component in a second wavelength band (for example, a wavelength band of red light).
  • the projection light that the projection device 23 irradiates onto the object OBJ may include a light component in a first wavelength band (for example, a wavelength band of blue light) that is different from the second wavelength band.
  • the projection device 23 may irradiate the object OBJ with projection light that includes a light component in a first wavelength band (for example, a wavelength band of blue light) that is different from the second wavelength band.
  • the projection device 23 is a device that projects a desired projection pattern onto the object OBJ by irradiating the object OBJ with projection light.
  • the projection device 23 may be considered to be illuminating the object OBJ with projection light.
  • the projection device 23 may be considered to be an illumination device that illuminates the object OBJ with projection light. Note that, as described above, when the projection device 23 is considered to be an illumination device, the projection light does not need to be light that can project a desired projection pattern onto the target object.
  • the filter 25c can attenuate the optical component in the first wavelength band.
  • the imaging device 21 images the object OBJ by having the imaging element receive light from the object OBJ via the filter 25c.
  • the filter 25c attenuates the projection light. Therefore, return light (for example, at least one of reflected light and scattered light of the projection light) from the object OBJ to which the projection light has been irradiated (that is, onto which the projection pattern has been projected) is attenuated by the filter 25c.
  • the imaging device 21 is affected by the influence of the projection light emitted from the projection device 23.
  • the object OBJ illuminated with the illumination light emitted from the illumination device 24c can be appropriately imaged without being affected by the illumination light.
  • the filter 26c is capable of attenuating optical components in the second wavelength band.
  • the imaging device 22 images the object OBJ (in other words, the projection pattern projected onto the object OBJ) by having the imaging element receive light from the object OBJ via the filter 26c.
  • the filter 26c attenuates the illumination light. Therefore, return light (for example, at least one of reflected light and scattered light of the illumination light) from the object OBJ irradiated with the illumination light from the illumination device 24c is attenuated by the filter 26c.
  • the image pickup device 22 is unable to use the illumination light emitted from the illumination device 24c.
  • the object OBJ illuminated by the projection light emitted from the projection device 23 (in other words, the projection pattern projected onto the object OBJ) can be appropriately imaged without being affected.
  • the imaging device 21 can image the object OBJ without being affected by the imaging of the object OBJ (the projection pattern projected onto the object OBJ) by the imaging device 22.
  • the imaging device 22 can image the object OBJ (the projection pattern projected onto the object OBJ) without being affected by the imaging of the object OBJ by the imaging device 21. Therefore, the imaging devices 21 and 22 can simultaneously image the object OBJ. In other words, even if the time at which the imaging device 21 images the object OBJ and the time at which the imaging device 22 images the object OBJ (the projection pattern projected onto the object OBJ) are the same, each of the imaging devices 21 and 22 , it is possible to appropriately image the object OBJ.
  • At least one of the robot systems SYS, SYSa, SYSb, and SYSc may adopt other modifications described below.
  • the end effector 13 (for example, a hand gripper or a vacuum clipper) that performs at least one of the holding process and the release process is attached to the robot arm 12. ing.
  • the end effector 13 is not limited to a device that performs at least one of holding processing and release processing, but may be a device that performs other processing on object OBJ.
  • a processing device for processing the object OBJ which is an example of the end effector 13, may be attached to the robot arm 12.
  • the processing device performs at least one of an additional process that adds a new model to the object OBJ, a removal process that removes a part of the object OBJ, a welding process that joins two objects OBJ, and a cutting process that cuts the object OBJ. You may do one.
  • the processing device may process the object OBJ using a tool. In this case, a processing device including tools may be attached to the robot arm 12.
  • the processing device may process the object OBJ by irradiating the object OBJ with an energy beam (for example, light, electromagnetic waves, and charged particle beam).
  • an energy beam for example, light, electromagnetic waves, and charged particle beam
  • a processing device including an irradiation device that irradiates the object OBJ 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 soldering processing to solder parts to the object OBJ.
  • the processing device may solder the component to the object OBJ using a soldering iron.
  • a processing device including a soldering iron may be attached to the robot arm 12.
  • the processing device may solder the component to the object OBJ by irradiating the solder with an energy beam (eg, light, electromagnetic waves, and charged particle beam).
  • an energy beam eg, light, electromagnetic waves, and charged particle beam
  • a processing device including an irradiation device that irradiates the object OBJ with an energy beam may be attached to the robot arm 12.
  • a measuring device for measuring the object OBJ which is an example of the end effector 13, may be attached to the robot arm 12.
  • the measuring device may be capable of measuring the characteristics of the object OBJ. Examples of the characteristics of the object OBJ include at least one of the shape of the object OBJ, the size of the object OBJ, and the temperature of the object OBJ.
  • the measuring device may measure the object OBJ using a touch probe. In this case, a measurement device including a touch probe may be attached to the robot arm 12.
  • the measuring device may measure the object OBJ by irradiating the object OBJ with an energy beam (for example, light, electromagnetic waves, or charged particle beam).
  • an energy beam for example, light, electromagnetic waves, or charged particle beam
  • a measuring device including an irradiation device that irradiates the object OBJ with an energy beam may be attached to the robot arm 12.
  • 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 the rotation of a tool included in the processing device.
  • the control device 3 may generate a control signal for controlling on/off of an energy beam by an irradiation device included in at least one of the processing device and the measurement device.
  • a discharge device which is an example of the end effector 13, may be attached to the robot arm 12.
  • the discharge device may discharge at least one of an adhesive, a sealant, a paint, and a solder.
  • the discharge device may discharge at least one of an adhesive, a sealant, a paint, and a solder toward the object OBJ.
  • the control device 3 may generate a control signal for controlling at least one of turning on/off the ejection from the ejection device and the amount of ejection.
  • discharging at least one of an adhesive, a sealant, a paint, and a solder onto the object OBJ can also be said to process the object OBJ, so the discharging device may also be referred to as a processing device.
  • the imaging unit 2 includes the imaging device 22 and the projection device 23 in order to generate the image data IMG_3D. However, the imaging unit 2 does not need to include the projection device 23 in order to generate the image data IMG_3D. This is because, as described above, since the imaging device 22 is a stereo camera, a three-dimensional image indicating the three-dimensional position of each of the plurality of points on the object OBJ is obtained from two image data IMG_3D generated by the two image sensors of the stereo camera. This is because the position data WSD can be generated.
  • the three-dimensional position data generation unit 311 calculates the parallax by associating each part (for example, each pixel) of the images indicated by each of the two image data included in the image data IMG_3D using a well-known process.
  • the three-dimensional position data WSD may be generated using a well-known method based on the principle of triangulation using the calculated parallax.
  • the imaging device 22 does not need to be a stereo camera.
  • the imaging device 22 may be a monocular camera that images the object OBJ using a single imaging element.
  • the object OBJ on which the projection pattern is projected is reflected in the image indicated by the image data IMG_3D.
  • the shape of the projection pattern reflected in the image indicated by the image data IMG_3D reflects the three-dimensional shape of the object OBJ onto which the projection pattern is projected. Therefore, even if the imaging device 22 is not a stereo camera, the three-dimensional position data generation unit 311 generates three-dimensional position data using well-known processing based on the projection pattern reflected in the image indicated by the image data IMG_3D. WSD can be generated.
  • the imaging unit 2 may include one of the imaging devices 21 and 22 (that is, a single imaging device) and a projection device 23.
  • image data generated by a single imaging device capturing an image of the object OBJ during a period when the projection device 23 is not projecting the desired projection pattern onto the object OBJ may be used as the image data IMG_2D.
  • image data generated by a single imaging device capturing an image of the object OBJ during a period when the projection device 23 is projecting a desired projection pattern onto the object OBJ may be used as the image data IMG_3D. .
  • the position and orientation calculation unit 312 calculates a position indicating the position and orientation of the object OBJ based on the image data IMG_2D and the three-dimensional position data WSD generated from the image data IMG_3D in step S3 of FIG. Posture information POI0 is generated. Specifically, by performing 2D matching processing, the 2D matching unit 3121 determines the position of the object OBJ in the 2D imaging coordinate system as position Tx (2D), position Ty (2D), position Tz (2D), and orientation Rx. (2D), posture Ry (2D), and posture Rz (2D).
  • the 3D matching unit 3122 determines the position of the object OBJ in the 3D imaging coordinate system as position Tx (3D), position Ty (3D), position Tz (3D), orientation Rx (3D), and orientation. At least one of Ry (3D) and posture Rz (3D) may be calculated.
  • the tracking unit 3123 performs tracking processing to determine 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.
  • the control device 3 uses the above-mentioned coordinate system information (for example, a transformation matrix) to determine the position in either the 2D imaging coordinate system or the 3D imaging coordinate system. It is not necessarily necessary to perform a process of converting the position to a position within the other coordinate system, either the imaging coordinate system or the 3D imaging coordinate system.
  • the imaging unit 2 includes an imaging device 22 that is a stereo camera, it does not need to include the imaging device 21.
  • image data generated by imaging the object OBJ by one of the two monocular cameras included in the imaging device 22 may be used as the image data IMG_2D.
  • image data representing two images generated by both of the two monocular cameras included in the imaging device 22 capturing the object OBJ may be used as the image data IMG_3D.
  • the position and orientation calculation unit 312 calculates a position indicating the position and orientation of the object OBJ based on the image data IMG_2D and the three-dimensional position data WSD generated from the image data IMG_3D in step S3 of FIG. Posture information POI0 is generated.
  • the 2D matching unit 3121 determines the position of the object OBJ in the 2D imaging coordinate system as position Tx (2D), position Ty (2D), position Tz (2D), and orientation Rx. (2D), posture Ry (2D), and posture Rz (2D).
  • the 3D matching unit 3122 determines the position of the object OBJ in the 3D imaging coordinate system as position Tx (3D), position Ty (3D), position Tz (3D), orientation Rx (3D), and orientation. At least one of Ry (3D) and posture Rz (3D) may be calculated.
  • the tracking unit 3123 performs tracking processing to determine 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), or 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 control device 3 uses the above-mentioned coordinate system information (for example, a transformation matrix) to determine the position within either the 2D imaging coordinate system or the 3D imaging coordinate system. It is not necessarily necessary to perform a process of converting the position to a position within the other coordinate system, either the 2D imaging coordinate system or the 3D imaging coordinate system.
  • both the imaging devices 21 and 22 are provided on the robot 1 (particularly on the robot arm 12). However, at least one of the imaging devices 21 and 22 may be provided in a different part from the robot 1 (in particular, the robot arm 12). For example, at least one of the imaging devices 21 and 22 may be placed on the ceiling of a building where the robot system SYS is placed.
  • the imaging unit 2 is provided in the robot 1 that includes the robot arm 12.
  • the imaging unit 2 may be provided in a robot that is not equipped with the robot arm 12.
  • the imaging unit 2 may be provided in the robot 1 including a support device capable of suspending the imaging unit 2 from above the object OBJ.
  • the imaging unit 2 may be provided on a support device.
  • the support device may include a plurality of leg members extending upward from the support surface S, and a beam member that connects the plurality of leg members via the upper ends of the plurality of leg members or the vicinity thereof.
  • the robot 1 may be able to move the support device.
  • control device 3 (in particular, the three-dimensional position data generation unit 311) generates the three-dimensional position data WSD from the image data IMG_3D.
  • a device different from the control device 3 may generate the three-dimensional position data WSD from the image data IMG_3D.
  • the imaging unit 2 that generates the image data IMG_3D may generate the three-dimensional position data WSD from the image data IMG_3D.
  • the control device 3 may acquire the three-dimensional position 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 process and tracking process using the three-dimensional position data WSD acquired from a device different from the control device 3. For example, when the imaging unit 2 generates the three-dimensional position data WSD from the image data IMG_3D, the control device 3 acquires the three-dimensional position data WSD from the imaging unit 2, and performs at least one of the above-mentioned 3D matching processing and tracking processing. You may do one.
  • the control device 3 performs both matching processing and tracking processing. However, the control device 3 does not have to perform the tracking process.
  • the control device 3 may generate the result of the 3D matching process performed by the 3D matching unit 3122 (that is, the position and orientation information POI2) as the position and orientation information POI0.
  • the control device 3 may generate the result of the 2D matching process performed by the 2D matching unit 3121 (that is, the position and orientation information POI1) as the position and orientation information POI0.
  • the control device 3 may generate a robot control signal based on the position and orientation information POI1 or POI2. In this case, the control device 3 may generate and output the robot control signal at the same cycle as the 2D matching cycle or 3D matching cycle, which is the cycle at which the position and orientation of the object OBJ are calculated.
  • the control device 3 when the end effector 13 holds the workpiece W, the control device 3 further generates position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W held by the end effector 13. As mentioned above, this may be allowed.
  • the positional relationship between the end effector 13 and the workpiece W does not change.
  • the positional relationship between the imaging devices 21 and 22 and the work W does not change.
  • the degree of deviation between the position of the workpiece W calculated by the control device 3 and the actual position of the workpiece W is similar to the case where the tracking process described above is performed. It never gets bigger.
  • the control device 3 may generate the position and orientation information POI0 indicating at least one of the position and orientation of the workpiece W held by the end effector 13, without performing the tracking process.
  • the tracking process described above is Even if it is not performed, the degree of deviation between the position of the object OBJ calculated by the control device 3 and the actual position of the object OBJ does not become large, as in the case where the above-described tracking process is performed.
  • the above-described tracking process is not performed.
  • the control device 3 may generate the position and orientation information POI0 indicating at least one of the position and orientation of the object OBJ, without performing the tracking process.
  • the control device 3 can control the position and orientation of the object OBJ to indicate at least one of the position and orientation of the object OBJ without performing tracking processing.
  • Information POI0 may be generated.
  • control device 3 may generate the result of the 3D matching process performed by the 3D matching unit 3122 (that is, the position and orientation information POI2) as the position and orientation information POI0.
  • the position and orientation calculation unit 312 uses the 3D matching unit 3122 After the position and orientation information POI0 is once generated using the result of the 3D matching process (that is, the position and orientation information POI2) performed by Good too. Even in this case, the positional relationship between the imaging devices 21 and 22 and the work W does not change, so the position of the object OBJ does not differ greatly from the position indicated by the generated position and orientation information POI0.
  • the control device 3 may generate the robot control signal based on the initially generated position and orientation information POI0.
  • control device 3 generates a robot control signal for controlling at least one of the robot arm 12 and the end effector 13 to hold the object OBJ based on the initially generated position and orientation information POI0 of the object OBJ. It's okay.
  • control device 3 controls at least the robot arm 12 and the end effector 13 to release (for example, place or fit) another object onto the object OBJ based on the initially generated position and orientation information POI0 of the object OBJ.
  • a robot control signal may be generated to control one of the two.
  • the position and orientation calculation unit 312 calculates the results of the 3D matching process performed by the 3D matching unit 3122 (i.e., After once generating the position and orientation information POI0 using the position and orientation information POI2), it is not necessary to periodically perform the 2D matching process and the 3D matching process (furthermore, the tracking process).
  • control device 3 While the control device 3 performs 2D matching processing, it does not need to perform 3D matching processing and tracking processing. In this case, the control device 3 may generate the result of the 2D matching process performed by the 2D matching unit 3121 (that is, the position and orientation information POI1) as the position and orientation information POI0.
  • the control device 3 may generate the result of the 2D matching process performed by the 2D matching unit 3121 (that is, the position and orientation information POI1) as the position and orientation information POI0.
  • the control device 3 While the control device 3 performs the 3D matching process, it is not necessary to perform the 2D matching process and the tracking process.
  • the 3D matching unit 3122 does not need to determine the initial position and initial orientation of the three-dimensional model WM3 based on the result of the 2D matching process (that is, the position and orientation information POI1). That is, the 3D matching unit 3122 may perform matching processing using the three-dimensional position data WSD as the 3D matching processing without determining the initial position and initial orientation of the three-dimensional model WM3.
  • the control device 3 may generate the result of the 3D matching process performed by the 3D matching unit 3122 (that is, the position and orientation information POI2) as the position and orientation information POI0.
  • the initial position of the three-dimensional model WM3 may be set in advance at the origin of the coordinate system of the three-dimensional model WM3 (the coordinate system of the three-dimensional model data WMD), and the initial posture of the three-dimensional model WM3 is , may be set to a predetermined posture in the coordinate system of the three-dimensional model WM3.
  • the initial position of the three-dimensional model WM3 may be set in advance to the origin of the 3D imaging coordinate system or the 2D imaging coordinate system
  • the initial posture of the three-dimensional model WM3 may be set in advance to the origin of the 3D imaging coordinate system or the 2D imaging coordinate system. may be set to a predetermined posture.
  • the control device 3 As a tracking process, the control device 3 generates two image data IMG_2D#t1 and IMG_2D#t2 that are generated by the imaging device 21 capturing images of the object OBJ at the first time t1 and the second time t2, respectively.
  • a tracking process is performed using the three-dimensional position data WSD generated from the image data IMG_3D generated by the imaging device 22 capturing an image of the object OBJ at the third time t3.
  • control device 3 controls the three-dimensional position data WSD generated from the image data IMG_3D generated by the imaging device 22 capturing an image of the object OBJ at the first time t1 (for example, at least 3D position information of one feature point) and 3D position data WSD (for example, 3D position data
  • the amount of change in at least one of the position and orientation of the object OBJ between the first time t1 and the second time t2 by performing tracking processing using the three-dimensional position information of at least one feature point indicated by the WSD. may be calculated as the change amount information VI.
  • the control device 3 uses the three-dimensional position information of each of the plurality of feature points indicated by the three-dimensional position data WSD generated from the image data IMG_3D at the first time t1 and the second time t2. between the first time t1 and the second time t2 based on the displacement with the three-dimensional position information of each of the plurality of feature points indicated by the three-dimensional position data WSD generated from the image data IMG_3D of the imaging device 22.
  • the amount of change in at least one of the position and orientation of object OBJ may be calculated as change amount information VI. Even in this case, the control device 3 may correct the results of the above-described matching process based on the results of the tracking process.
  • the control device 3 may correct the result of the 3D matching process (that is, the position and orientation information POI2) based on the change amount information VI that is the result of the tracking process.
  • the control device 3 may correct the result of the 2D matching process (that is, the position and orientation information POI1) based on the change amount information VI that is the result of the tracking process.
  • the control device 3 may include a robot control device 14.
  • the control device 3 may function as a robot control device 14.
  • a logical functional block that can function as the robot control device 14 may be implemented within the arithmetic device 31 of the control device 3.
  • the control device 3 may control the operation of the robot 1 based on the robot control signal generated by the control device 3. In this case, the robot 1 does not need to include the robot control device 14.
  • the three-dimensional position data generation unit 311 of the control device 3 generates three-dimensional data from one image data IMG_3D (for example, if the imaging device 22 is a stereo camera, one image data IMG_3D including two image data). Position data WSD is generated. However, the three-dimensional position data generation unit 311 may generate three-dimensional position data WSD from a plurality of image data IMG_3D. For example, the three-dimensional position data generation unit 311 may generate the three-dimensional position data WSD from a plurality of image data IMG_3D captured from different directions of the object OBJ.
  • the signal generation unit 313 changes the object OBJ to a different position with the position of the object OBJ as a starting point.
  • the imaging unit 2 that is, the robot arm 12
  • the signal generation unit 313 generates a robot control signal for operating the robot arm 12 so that the object OBJ can be imaged from different directions using the position of the object OBJ as a starting point, and outputs it to the robot control device 14. It's okay.
  • the imaging device 22 may generate a plurality of image data IMG_3D obtained by imaging the object OBJ from different directions by performing imaging multiple times as the imaging unit 2 moves from the position of the object OBJ as a starting point.
  • the three-dimensional position data generation unit 311 may generate three-dimensional position data WSD for each of the plurality of image data IMG_3D through the above-described processing.
  • the three-dimensional position data generation unit 311 may combine the plurality of generated three-dimensional position data WSD using existing processing.
  • the three-dimensional position data generation unit 311 synthesizes the plurality of point cloud data by performing ICP (Iterative Closest Point) processing. It's okay.
  • the three-dimensional position data generation unit 311 performs a process of aligning the positions of feature points on the depth image indicated by the respective depth image data.
  • a plurality of depth image data may be combined by performing the following steps.
  • the position and orientation calculation unit 312 uses the three-dimensional position data WSD generated by the synthesis process by the three-dimensional position data generation unit 311 to calculate the position and orientation of the object OBJ by performing at least one of the matching process and the tracking process described above.
  • the posture may also be calculated.
  • the signal generation unit 313 generates a robot control signal based on the position and orientation of the object OBJ calculated by the position and orientation calculation unit 312, and outputs it to the robot control device 14 for processing on the object OBJ by the end effector 13. It's okay.
  • a control device that generates a control signal for controlling a robot provided with an imaging unit, the control device comprising: The control device includes: a calculation unit that generates the control signal; an output section that outputs the control signal generated by the calculation section; The arithmetic unit is generating first information indicating at least one of the position and orientation of the object using first image data generated by the imaging unit imaging the object; determined based on the first information and three-dimensional position data that is generated from second image data that is generated when the imaging unit images the object and indicates three-dimensional positions of each of the plurality of points on the object.
  • the first information indicates at least one of the position and orientation of the object within a first coordinate system
  • the position and orientation of the three-dimensional model indicated by the determined three-dimensional model data are within a second coordinate system different from the first coordinate system
  • the control device according to supplementary note 1, wherein the second information indicates at least one of the position and orientation of the object within the second coordinate system.
  • the arithmetic unit is converting the first information within the first coordinate system to at least one of a position and an orientation within the second coordinate system;
  • the control device according to supplementary note 2 wherein the position and orientation of the three-dimensional model are determined based on at least one of the position and orientation in the transformed second coordinate system.
  • the control device according to supplementary note 3 wherein the calculation unit sets the position and orientation in the transformed second coordinate system as the position and orientation of the three-dimensional model.
  • the arithmetic unit is setting at least one of the position and orientation of the three-dimensional model indicated by the three-dimensional model data within the first coordinate system based on the first information; the second coordinate system by converting at least one of the position and orientation of the three-dimensional model within the set first coordinate system to at least one of the position and orientation within the second coordinate system; The control device according to supplementary note 2, wherein at least one of the position and orientation of the three-dimensional model is determined within the three-dimensional model.
  • the calculation unit sets at least one of the position and orientation of the object within the first coordinate system indicated by the first information as at least one of the position and orientation of the three-dimensional model within the first coordinate system. The control device described in Appendix 5.
  • Additional Note 1 The time at which the imaging section images the object in order to generate the first image data and the time at which the imaging section images the object in order to generate the second image data are the same time. 7. The control device according to any one of 6 to 6. [Additional note 8] The control device according to any one of Supplementary Notes 1 to 6, wherein the output unit outputs the control signal generated by the calculation unit based on the second information in a first cycle. [Additional note 9] The calculation unit is configured to generate two first image data generated by the imaging unit imaging the object at first and second times that are different from each other, and the imaging unit imaging the object at a third time.
  • the second time is a time later than the first time, The control device according to appendix 9 or 10, wherein the second time and the third time are the same.
  • the arithmetic unit is Using the three-dimensional position data generated from the second image data generated by the imaging at the third time by the imaging unit, the first axis along the optical axis of the optical system of the imaging unit, the first axis A characteristic point of the object in a direction parallel to the first axis within a first coordinate system defined by a second axis perpendicular to the first axis and a third axis perpendicular to the first and second axes.
  • the control device is generating third information indicating the position, The control device according to any one of Supplementary Notes 9 to 11, wherein the amount of change is calculated using the two pieces of first image data and the third information.
  • the arithmetic unit is generating fourth information indicating the position of the characteristic location at the first time using the first image data generated by the imaging unit imaging the object at the first time; fifth information indicating the position of the characteristic location at the second time using the first image data generated by the imaging unit imaging the object at the second time and the third information; generate, The control device according to appendix 12, wherein the amount of change is calculated using the fourth information and the fifth information.
  • each of the first time, the second time, and the third time is a time when the imaging unit and the object are moving relative to each other.
  • the output unit outputs the control signal generated by the calculation unit based on the second information and the amount of change in a second cycle.
  • the time from when the object is imaged by the imaging unit to when the second information is generated based on the first and second image data is such that the object is
  • the control device according to any one of appendices 9 to 15, which is longer than the time from when the image is captured at the earlier of the times until the amount of change is calculated based on the two first image data.
  • the arithmetic unit is generating the second information in a third cycle;
  • the control device according to any one of Supplementary Notes 9 to 16, wherein the amount of change is calculated in a fourth period that is shorter than the third period.
  • the arithmetic unit calculates that the amount of change is new in the fourth period after the second information is newly generated as one period of the third period until the second information is generated next time.
  • the output unit outputs the control signal generated by the calculation unit based on the second information and the amount of change in a second cycle, The control device according to appendix 17 or 18, wherein the second period is the same as the fourth period.
  • the robot is provided with a processing device, The control device according to any one of Supplementary Notes 1 to 19, wherein the calculation unit determines the object as a target object to be processed by the processing device based on the first image data.
  • the robot is provided with a processing device, The control device according to any one of Supplementary Notes 1 to 20, wherein the calculation unit determines, based on the first image data, whether or not the object is determined as a target object to be processed by the processing device. .
  • the arithmetic unit is generating the first information by an object detection process that detects the object in a first image indicated by the first image data;
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the first image data, detecting an edge of the object from the object detected in the matching process; detecting edges in the first image using the first image data; The control device according to attachment 22, wherein the control device determines whether or not to determine the object as the target object based on a first similarity between the edge of the object and the edge in the first image.
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the first image data, Based on a second degree of similarity between the two-dimensional model of the object and the first image indicated by the first image data, which is calculated in the matching process, determine whether the object is to be determined as the target object.
  • the control device according to appendix 22 or 23, which determines.
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the first image data, Based on a second degree of similarity between the two-dimensional model of the object and the first image indicated by the first image data, which is calculated in the matching process, determine whether the object is to be determined as the target object. judge, determining that the object is determined to be the target object when the first and second similarities exceed a predetermined first threshold; The control device according to attachment 23, wherein the control device determines that the object is not determined as the target object when at least one of the first and second similarities is less than a predetermined first threshold.
  • the arithmetic unit is generating the first information by an object detection process that detects the object in a first image indicated by the first image data; Before determining the object as the target object, a first signal for controlling the robot so that the processing device moves so that the processing device approaches the object detected by the object detection processing is sent to the robot. Generate a control signal based on the first information, of the object in the first image shown by the first image data generated by the imaging unit imaging the object during at least part of the period during which the robot is controlled based on the first signal; The control device according to any one of Supplementary Notes 19 to 25, wherein it is determined whether or not the object is determined as the target object based on the result of the object detection process.
  • the arithmetic unit is generating the first information by an object detection process that detects the first object in a first image indicated by the first image data; A first step for controlling the robot so that the processing device moves so that the processing device approaches the first object detected by the object detection process before determining the first object as the target object. generating a signal as the control signal based on the first information; In a first image shown by the first image data generated by the imaging unit capturing images of the first and second objects during at least a part of the period during which the robot is controlled based on the first signal.
  • the control device Based on the results of the object detection processing for each of the first and second objects in , it is determined whether the first object or the second object is determined as the target object.
  • the control device according to item 1.
  • the arithmetic unit is During at least part of the period during which the robot is controlled based on the first signal, the second object is determined to be the target object by the determination as to whether the first object or the second object is determined as the target object. If the second object is determined as a target object, in order to process the second object with the processing device, a second signal for controlling the robot to change at least one of the position and orientation of the processing device is sent to the control device.
  • the control device according to appendix 27, which generates the signal as a signal.
  • a control device that generates a control signal for controlling a robot provided with an imaging unit, the control device comprising: The control device includes: a calculation unit that generates the control signal; an output section that outputs the control signal generated by the calculation section; The arithmetic unit is Two first image data generated by the imaging unit imaging the object at mutually different first and second times, and two first image data generated by the imaging unit imaging the object at a third time. the amount of change in at least one of the position and orientation of the object between the first and second times based on three-dimensional position data generated from second image data and indicating three-dimensional positions of each of the plurality of points on the object; Calculate, A control device that generates the control signal based on the amount of change.
  • the second time is a time later than the first time
  • the arithmetic unit is Using the three-dimensional position data, a first axis along the optical axis of the optical system of the imaging unit, a second axis perpendicular to the first axis, and a third axis perpendicular to the first and second axes are determined. generating information indicating the position of a feature of the object in a direction parallel to the first axis within a first coordinate system defined by the axis; The control device according to attachment 29 or 30, wherein the amount of change is calculated using the two pieces of first image data and the information.
  • the arithmetic unit is generating second information indicating the position of the characteristic location at the first time using the first image data generated by the imaging unit imaging the object at the first time; third information indicating the position of the characteristic location at the second time using the first image data generated by the imaging unit imaging the object at the second time and the first information; generate, The control device according to attachment 31, wherein the amount of change is calculated using the second information and the third information.
  • control device according to any one of appendices 29 to 33, wherein the output unit outputs the control signal generated by the calculation unit based on the amount of change at a predetermined period.
  • the calculation unit generates the first information by a matching process using the first image data and two-dimensional model data representing a two-dimensional model of the object.
  • Control device [Appendix 36] The control device according to any one of Supplementary Notes 1 to 28 and 35, wherein the calculation unit determines the position and orientation of the three-dimensional model of the object indicated by the three-dimensional model data, based on the first information. .
  • the timing at which the imaging unit images the object to generate image data is the timing when the imaging unit and the object are moving relative to each other.
  • control device [Additional note 40]
  • the second time is a time later than the first time,
  • the control device controls the timing of imaging by the first and second imaging devices so that the second time and the third time are the same. Control device as described.
  • the three-dimensional position data generated from the second image data generated by imaging at the third time indicates the three-dimensional position of each of the plurality of points of the object within the second coordinate system
  • the arithmetic unit is converting the three-dimensional position within the second coordinate system to a three-dimensional position within the first coordinate system
  • the three-dimensional position data generated from the second image data generated by imaging at the third time indicates the three-dimensional position of each of the plurality of points of the object within the first coordinate system
  • the control device according to appendix 12 or 13, wherein the calculation unit generates the third information indicating the position of the characteristic location in a direction parallel to the first axis from the three-dimensional position within the first coordinate system.
  • the three-dimensional position data indicates the three-dimensional position of each of the plurality of points of the object within a second coordinate system
  • the arithmetic unit is converting the three-dimensional position within the second coordinate system to a three-dimensional position within the first coordinate system
  • the three-dimensional position data indicates the three-dimensional position of each of the plurality of points of the object within the first coordinate system
  • the arithmetic unit is determining that the object is determined to be the target object when the first similarity exceeds a predetermined first threshold;
  • the control device according to attachment 23 wherein the control device determines that the object is not determined as the target object when the first similarity is less than a predetermined first threshold.
  • the arithmetic unit is determining that the object is determined to be the target object when the second similarity exceeds a predetermined second threshold; The control device according to attachment 24, wherein the control device determines that the object is not determined as the target object when the second similarity is less than a predetermined second threshold.
  • the arithmetic unit is When it is determined that the object is not determined as the target object, a signal for controlling the robot to move the imaging unit with respect to the object is generated as the control signal. Supplementary notes 20 to 28 and 45 47. The control device according to any one of 46 to 46.
  • the arithmetic unit is generating, as the control signal, a signal for controlling the robot to rotate the imaging device around a desired rotation axis;
  • the control device according to attachment 47 wherein after the robot is controlled based on the signal, the determination is made based on the first image data generated by the imaging unit capturing an image of the object.
  • the arithmetic unit is If it is determined that the object is not selected as the target object as a result of making the determination after the robot is controlled to rotate the imaging unit based on the signal, the image capturing unit is rotated along the desired translation axis. 49.
  • the control device according to attachment 48 wherein a signal for controlling the robot to translate the imaging unit is generated as the control signal.
  • the robot is provided with a holding device capable of holding the object,
  • the control signal is a signal for controlling the holding operation of the holding device, Based on the control signal generated by the calculation unit, the robot is controlled so that the holding device approaches the object, and the holding device is controlled so that the object is held by the holding device,
  • the arithmetic unit is After the object is held by the holding device, the position and orientation of the object held by the holding device are determined using the first image data generated by the imaging unit capturing an image of the object. generating sixth information indicating at least one side; Based on the sixth information, the robot is configured to move the object held by the holding device to a desired position and/or change the posture of the object held by the holding device to a desired posture. 50.
  • a control device that generates a control signal for controlling a robot that is provided with a processing device that processes an object and an imaging unit, The control device includes: a calculation unit that generates the control signal; an output section that outputs the control signal generated by the calculation section; The arithmetic unit is Determining whether or not the object is to be determined as a target object for which the processing is performed by the processing device, based on image data generated by the imaging unit imaging the object; A control device that generates the control signal for performing the processing on the object.
  • the arithmetic unit is The control device according to attachment 51, wherein it is determined whether or not the object is determined as the target object based on a result of an object detection process that detects the object in an image indicated by the image data.
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the image data, detecting an edge of the object from the object detected in the matching process; detecting edges in the image using the image data; The control device according to attachment 52, wherein the control device determines whether or not to determine the object as the target object based on a first similarity between the edge of the object and the edge in the image.
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the image data, Supplementary note 52: determining whether or not the object is determined as the target object based on a second degree of similarity between the two-dimensional model of the object and the image indicated by the image data, which is calculated in the matching process. or the control device according to 53.
  • the arithmetic unit is As the object detection process, a matching process is performed using two-dimensional model data representing a two-dimensional model of the object and the first image data, determining whether to determine the object as the target object based on a second similarity between the two-dimensional model of the object and the image indicated by the image data, which is calculated in the matching process; determining that the object is determined to be the target object when the first and second similarities exceed a predetermined first threshold; The control device according to attachment 53, wherein the control device determines that the object is not determined as the target object when at least one of the first and second similarities is less than a predetermined first threshold.
  • the arithmetic unit is generating first information indicating at least one of a position and an orientation of the object by an object detection process that detects the object in an image indicated by the image data; Before determining the object as the target object, a first signal for controlling the robot so that the processing device moves so that the processing device approaches the object detected by the object detection processing is sent to the robot.
  • the arithmetic unit is generating first information indicating at least one of a position and an orientation of the first object by an object detection process that detects the first object in an image indicated by the image data; A first step for controlling the robot so that the processing device moves so that the processing device approaches the first object detected by the object detection process before determining the first object as the target object. generating a signal as the control signal based on the first information; The first object in the image shown by the image data generated by the imaging unit taking images of the first and second objects during at least a part of the period during which the robot is controlled based on the first signal.
  • the arithmetic unit is During at least part of the period during which the robot is controlled based on the first signal, the second object is determined to be If the second object is determined as a target object, in order to process the second object with the processing device, a second signal for controlling the robot to change at least one of the position and orientation of the processing device is sent to the control device.
  • the control device according to appendix 57, which generates the signal as a signal.
  • the arithmetic unit is If it is determined that the object is not determined as the target object, a signal for controlling the robot to move the imaging unit with respect to the object is generated as the control signal.
  • the control device according to item 1.
  • the arithmetic unit is generating, as the control signal, a signal for controlling the robot to rotate the imaging device around a desired rotation axis; 59.
  • the control device according to attachment 59 wherein after the robot is controlled based on the signal, the determination is made based on the image data generated by the image capturing unit capturing an image of the object.
  • the arithmetic unit is If it is determined that the object is not selected as the target object as a result of making the determination after the robot is controlled to rotate the imaging unit based on the signal, the image capturing unit is rotated along the desired translation axis.
  • the control device according to attachment 60 wherein a signal for controlling the robot to translate the imaging unit is generated as the control signal.
  • the processing device includes a holding device capable of holding the object,
  • the control signal is a signal for controlling the holding operation of the holding device, Based on the control signal generated by the calculation unit, the robot is controlled so that the holding device approaches the object, and the holding device is controlled so that the object is held by the holding device,
  • the arithmetic unit is After the object is held by the holding device, the imaging unit uses the image data generated by imaging the object to indicate the position and orientation of the object held by the holding device. 1 generate information, Based on the first information, the robot is configured to move the object held by the holding device to a desired position and/or change the posture of the object held by the holding device to a desired posture.
  • the control device according to any one of appendices 51 to 61, which generates the control signal for controlling.
  • the processing device performs processing on at least one of a first object and a second object having at least one of a position and an orientation different from the first object, as the object. Control device as described.
  • the arithmetic unit is The object detection process is a matching process using first two-dimensional model data indicating a two-dimensional model of the first object, second two-dimensional model data indicating a two-dimensional model of the second object, and the image data.
  • the second object is It is determined that it is selected as an object,
  • the first similarity is higher than a predetermined first threshold
  • the first similarity is higher than the second similarity
  • the third similarity is higher than a predetermined second threshold
  • the third similarity is higher than the second similarity.
  • the first object is It is determined that it is selected as an object,
  • the second similarity is higher than a predetermined first threshold, the second similarity is higher than the first similarity, the fourth similarity is higher than a predetermined second threshold, and the fourth similarity is higher than the first similarity.
  • the first object is It is determined that it is selected as an object,
  • the second similarity is higher than a predetermined first threshold, the second similarity is higher than the first similarity, the fourth similarity is higher than a predetermined second threshold, and the fourth similarity is higher than the first similarity.
  • the second object is It is determined that it is selected as an object, the first similarity exceeds a predetermined second threshold, the third similarity exceeds a predetermined first threshold, and the second similarity is below a predetermined second threshold, and/ or determining that the first object is selected as the target object when the fourth similarity is less than a predetermined first threshold; the second similarity exceeds a predetermined second threshold, the fourth similarity exceeds a predetermined first threshold, and the first similarity is less than a predetermined second threshold; and/or determining that the second object is selected as the target object when the third similarity is less than a predetermined first threshold; the first similarity is less than a predetermined second threshold, and/or the third similarity is less than a predetermined first threshold, and the second similarity is less than a predetermined second threshold; and/or when the fourth
  • the second object has the same three-dimensional shape as the first object, The control device according to attachment 64, wherein the first two-dimensional model data and the second two-dimensional model data are two-dimensional model data indicating a two-dimensional model of the three-dimensional shape.
  • a control device that generates a control signal for controlling a robot that is provided with a processing device that processes at least one of a first object and a second object that is different from the first object, and an imaging unit.
  • the control device includes: a calculation unit that generates the control signal; an output section that outputs the control signal generated by the calculation section;
  • the arithmetic unit is Whether or not the first or second object is determined as a target object to be subjected to the processing by the processing device, based on image data generated by the imaging unit capturing images of the first and second objects. Determine, A control device that generates the control signal for performing the processing on the object.
  • the arithmetic unit is The control device according to attachment 66, wherein the control device determines whether or not the object is determined as the target object based on the result of object detection processing that detects the first and second objects in the image indicated by the image data. .
  • the arithmetic unit is The object detection process is a matching process using first two-dimensional model data indicating a two-dimensional model of the first object, second two-dimensional model data indicating a two-dimensional model of the second object, and the image data. and detecting an edge of the first object and an edge of the second object from the first and second objects detected in the matching process; detecting edges in the image using the image data; the first similarity between the edge of the first object and the edge in the image; and the second similarity between the edge of the second object and the edge in the image.
  • the control device according to attachment 67 determines whether or not to determine the second object as the target object.
  • the arithmetic unit is The object detection process is a matching process using first two-dimensional model data indicating a two-dimensional model of the first object, second two-dimensional model data indicating a two-dimensional model of the second object, and the image data. and a third degree of similarity between the two-dimensional model of the first object and the image indicated by the image data, which is calculated in the matching process; and a third similarity between the two-dimensional model of the second object and the image indicated by the image data.
  • the control device according to attachment 67 or 68, wherein the control device determines whether to determine the first or second object as the target object based on a fourth similarity with the object.
  • the arithmetic unit is The object detection process is a matching process using first two-dimensional model data indicating a two-dimensional model of the first object, second two-dimensional model data indicating a two-dimensional model of the second object, and the image data.
  • the arithmetic unit is generating first information indicating at least one of a position and an orientation of the first object by an object detection process that detects the first object in an image indicated by the image data; A first step for controlling the robot so that the processing device moves so that the processing device approaches the first object detected by the object detection process before determining the first object as the target object.
  • the arithmetic unit is generating first information indicating at least one of a position and an orientation of the first object by an object detection process that detects the first object in an image indicated by the image data; A first step for controlling the robot so that the processing device moves so that the processing device approaches the first object detected by the object detection process before determining the first object as the target object. generating a signal as the control signal based on the first information; In the first image shown by the image data generated by the imaging unit capturing images of the first and second objects during at least a part of the period during which the robot is controlled based on the first signal.
  • the control device described in . [Additional note 73]
  • the arithmetic unit is During at least part of the period during which the robot is controlled based on the first signal, the second object is determined to be If the second object is determined as a target object, in order to process the second object with the processing device, a second signal for controlling the robot to change at least one of the position and orientation of the processing device is sent to the control device.
  • the control device according to attachment 72 which generates the signal as a signal.
  • the arithmetic unit is When it is determined that the first and second objects are not determined as the target objects, the controller sends a signal for controlling the robot to move the imaging unit with respect to the first and second objects.
  • the control device according to any one of appendices 66 to 73, wherein the control device generates a signal.
  • the arithmetic unit is generating, as the control signal, a signal for controlling the robot to rotate the imaging device around a desired rotation axis;
  • the control device according to attachment 74 wherein after the robot is controlled based on the signal, the image capturing section performs the determination based on the image data generated by capturing images of the first and second objects.
  • the arithmetic unit is When it is determined that the first and second objects are not selected as the target objects as a result of performing the determination after the robot is controlled to rotate the imaging unit based on the signal, the desired The control device according to attachment 75, wherein the control device generates, as the control signal, a signal for controlling the robot to translate the imaging unit along a translation axis.
  • the processing device includes a holding device capable of holding the first or second object, The control signal is a signal for controlling the holding operation of the holding device, Based on the control signal generated by the calculation unit, the robot is controlled so that the holding device approaches the first or second object, and the holding device holds the first or second object.
  • the holding device is controlled so that The arithmetic unit is After the first or second object is held by the holding device, the holding device uses the image data generated by the imaging unit to image the first or second object. generating first information indicating the position and orientation of the first or second object; Based on the first information, moving the first or second object held by the holding device to a desired position and/or changing the posture of the first or second object held by the holding device 77.
  • the control device according to any one of appendices 66 to 76, wherein the control device generates the control signal for controlling the robot to change to a desired posture.
  • the arithmetic unit is The object detection process is a matching process using first two-dimensional model data indicating a two-dimensional model of the first object, second two-dimensional model data indicating a two-dimensional model of the second object, and the image data. and detecting an edge of the first object and an edge of the second object from the first and second objects detected in the matching process; detecting edges in the image using the image data; a third degree of similarity between the two-dimensional model of the first object and the image indicated by the image data, which is calculated in the matching process; and a third similarity between the two-dimensional model of the second object and the image indicated by the image data.
  • a fourth degree of similarity between the edge of the first object and the edge in the image a fourth degree of similarity between the edge of the first object and the edge in the image; and a second degree of similarity between the edge of the second object and the edge in the image.
  • the first similarity is higher than a predetermined first threshold, the first similarity is higher than the second similarity, the third similarity is higher than a predetermined second threshold, and the
  • the second object is It is determined that it is selected as an object,
  • the first similarity is higher than a predetermined first threshold
  • the first similarity is higher than the second similarity
  • the third similarity is higher than a predetermined second threshold
  • the third similarity is higher than the second similarity.
  • the first object is It is determined that it is selected as an object,
  • the second similarity is higher than a predetermined first threshold, the second similarity is higher than the first similarity, the fourth similarity is higher than a predetermined second threshold, and the fourth similarity is higher than the first similarity.
  • the first object is It is determined that it is selected as an object,
  • the second similarity is higher than a predetermined first threshold, the second similarity is higher than the first similarity, the fourth similarity is higher than a predetermined second threshold, and the fourth similarity is higher than the first similarity.
  • the second object is It is determined that it is selected as an object, the first similarity exceeds a predetermined second threshold, the third similarity exceeds a predetermined first threshold, and the second similarity is below a predetermined second threshold, and/ or determining that the first object is selected as the target object when the fourth similarity is less than a predetermined first threshold; the second similarity exceeds a predetermined second threshold, the fourth similarity exceeds a predetermined first threshold, and the first similarity is less than a predetermined second threshold; and/or determining that the second object is selected as the target object when the third similarity is less than a predetermined first threshold; the first similarity is less than a predetermined second threshold, and/or the third similarity is less than a predetermined first threshold, and the second similarity is less than a predetermined second threshold; and/or when the fourth
  • the control device described in the appendix has the same three-dimensional shape as the first object, The control device according to attachment 78, wherein the first two-dimensional model data and the second two-dimensional model data are two-dimensional model data indicating a two-dimensional model of the three-dimensional shape.
  • the imaging unit includes a first imaging device that outputs the first image data, and a second imaging device that outputs the second image data.
  • the first imaging device is a monocular camera
  • the control device according to attachment 80, wherein the second imaging device is a stereo camera having two monocular cameras different from the monocular camera.
  • the imaging unit includes a first imaging device that outputs the first image data and a second imaging device that outputs the second image data, a first filter that attenuates a light component in a first wavelength band of the light from the object; further comprising: a second filter that attenuates a light component in a second wavelength band different from the first wavelength band of the light from the object;
  • the first imaging device images the object by receiving light from the object via the first filter,
  • an illumination device that illuminates the object with illumination light that includes a light component in the second wavelength band; further comprising a light projection device that projects pattern light including a light component in the first wavelength band onto the object,
  • the control system according to attachment 84 wherein the second imaging device images the object onto which pattern light is projected from the light projection device.
  • a control method for generating a control signal for controlling a robot provided with an imaging unit, the method comprising: Generating first information indicating at least one of a position and an orientation of the object using first image data generated by the imaging unit capturing an image of the object; determined based on the first information and three-dimensional position data that is generated from second image data that is generated when the imaging unit images the object and indicates the three-dimensional positions of each of the plurality of points on the object. generating second information indicating at least one of the position and orientation of the object using three-dimensional model data of the object at the position and orientation; and generating the control signal based on the second information.
  • a control method for generating a control signal for controlling a robot provided with an imaging unit, the method comprising: Two first image data generated by the imaging unit imaging the object at first and second times that are different from each other, and two first image data generated by the imaging unit imaging the object at a third time. the amount of change in at least one of the position and orientation of the object between the first and second times based on three-dimensional position data generated from second image data and indicating three-dimensional positions of each of the plurality of points on the object; and A control method comprising: generating the control signal based on the amount of change.
  • a control method for generating a control signal for controlling a robot equipped with a processing device that processes an object and an imaging unit comprising: Determining whether or not the object is to be determined as a target object to be subjected to the processing by the processing device, based on image data generated by the imaging unit imaging the object; and generating the control signal for performing the process on the target object.
  • SYS Robot system 1 Robot 12 Robot arm 13 End effector 14 Robot control device 2 Imaging unit 21, 22 Imaging device 23 Projection device 24c Illumination device 25c, 26c Filter 3 Control device 31
  • Arithmetic device 311 Three-dimensional position data generation unit 312 Position and orientation calculation Section 3121 2D matching section 3122 3D matching section 3123 Tracking section 3125 Coordinate transformation section 313 Signal generation section 314a Object determination section 315b
  • Pre-processing section 33 Communication device OBJ Object W Work T Mounting device IMG_2D, IMG_3D Image data IMG_2M Two-dimensional model data WSD 3D position data WMD 3D model data WM 3D model

Landscapes

  • Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Length Measuring Devices By Optical Means (AREA)
  • Manipulator (AREA)

Abstract

制御装置は、物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置である。制御装置は、第1撮像装置が物体を撮像することで生成される第1画像データを用いて、物体の位置及び姿勢を示す第1情報を生成し、第2撮像装置が物体を撮像することで生成される第2画像データから生成され且つ物体の複数点それぞれの三次元位置を示す三次元位置データと、第1情報に基づいて決定される位置及び姿勢での物体の三次元モデルデータとを用いて、物体の位置及び姿勢を示す第2情報を生成し、第2情報に基づいて制御信号を生成する。

Description

制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
 本発明は、例えば、ロボットアームを制御するための制御信号を生成可能な制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの技術分野に関する。
 ロボットが行う処理の対象となっている物体の位置及び姿勢の少なくとも一方を算出し、算出した位置及び姿勢の少なくとも一方に基づいてロボットを制御する制御装置の一例が、特許文献1に記載されている。このような制御装置では、物体の位置及び姿勢の少なくとも一方を精度よく算出することが求められる。
米国特許出願公開第2013/0230235号明細書
 第1の態様によれば、物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、前記制御装置は、前記制御信号を生成する演算部と、前記演算部で生成された前記制御信号を出力する出力部とを備え、前記演算部は、前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記物体の位置及び姿勢を示す第1情報を生成し、前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢を示す第2情報を生成し、前記第2情報に基づいて前記制御信号を生成する制御装置が提供される。
 第2の態様によれば、物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、前記制御装置は、前記制御信号を生成する演算部と、前記演算部で生成された前記制御信号を出力する出力部とを備え、前記演算部は、互いに異なる第1及び第2時刻に前記第1撮像装置が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の変化量を算出し、前記変化量に基づいて前記制御信号を生成する制御装置が提供される。
 第3の態様によれば、第1物体と前記第1物体とは位置及び姿勢の少なくとも一方が異なる第2物体との少なくとも一方に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、前記制御装置は、前記制御信号を生成する演算部と、前記演算部で生成された前記制御信号を出力する出力部とを備え、前記演算部は、前記第1撮像装置が前記第1及び第2物体を撮像することで生成される前記第1画像データに基づいて、前記第1又は第2物体を、前記処理装置で前記処理を行う対象物として選択するか否かを判定し、前記判定の結果、前記第1又は第2物体が前記対象物として選択された場合、前記第2撮像装置が前記第1及び第2物体を撮像することで生成される前記第2画像データから生成され且つ前記対象物の複数点それぞれの三次元位置を示す三次元位置データと、前記第1画像データを用いて生成される前記対象物の位置及び姿勢を示す第1情報に基づいて決定される位置及び姿勢での前記対象物の三次元モデルデータとを用いて、前記対象物の位置及び姿勢を示す第2情報を生成し、前記第2情報に基づいて前記制御信号を生成する制御装置が提供される。
 第4の態様によれば、第1の態様から第3の態様のうちのいずれ一つによって提供される制御装置と、前記第1撮像装置と、前記第2撮像装置とを備える制御システムが提供される。
 第5の態様によれば、第1の態様から第3の態様のうちのいずれ一つによって提供される制御装置と、前記第1撮像装置と、前記第2撮像装置と、前記ロボットアームとを備えるロボットシステムが提供される。
 第6の態様によれば、物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記物体の位置及び姿勢を示す第1情報を生成することと、前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢を示す第2情報を生成することと、前記第2情報に基づいて前記制御信号を生成することとを含み、前記処理装置で前記物体を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される制御方法が提供される。
 第7の態様によれば、物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、互いに異なる第1及び第2時刻に前記第1撮像装置が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の変化量を算出することと、前記変化量に基づいて前記制御信号を生成することとを含み、前記処理装置で前記物体を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される制御方法が提供される。
 第8の態様によれば、第1物体と前記第1物体とは位置及び姿勢の少なくとも一方が異なる第2物体との少なくとも一方に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、前記第1撮像装置が前記第1及び第2物体を撮像することで生成される前記第1画像データに基づいて、前記第1又は第2物体を、前記処理装置で前記処理を行う対象物として選択するか否かを判定することと、前記判定の結果、前記第1又は第2物体が前記対象物として選択された場合、前記第2撮像装置が前記第1及び第2物体を撮像することで生成される前記第2画像データから生成され且つ前記対象物の複数点それぞれの三次元位置を示す三次元位置データと、前記第1画像データを用いて生成される前記対象物の位置及び姿勢を示す第1情報に基づいて決定される位置及び姿勢での前記対象物の三次元モデルデータとを用いて、前記対象物の位置及び姿勢を示す第2情報を生成することと、前記第2情報に基づいて前記制御信号を生成することとを含み、前記処理装置で前記物体を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される制御方法が提供される。
 第9の態様によれば、コンピュータに、第6の態様から第8の態様のいずれか一つによって提供される制御方法を実行させるコンピュータプログラムが提供される。
 本発明の作用及び他の利得は次に説明する実施するための形態から明らかにされる。
図1は、本実施形態のロボットシステムの構成を示すブロック図である。 図2は、本実施形態のロボットの外観を示す側面図である。 図3は、本実施形態の制御装置の構成を示すブロック図である。 図4は、ロボット制御処理の流れを示すフローチャートである。 図5(a)から図5(d)のそれぞれは、支持面上を移動している載置装置に載置されているワークを保持するための保持処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図6(a)から図6(d)のそれぞれは、支持面上を移動している載置装置上にワークを配置するためのリリース処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図7(a)から図7(b)のそれぞれは、支持面上で静止している載置装置に載置されているワークを保持するための保持処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図であり、図7(c)から図7(e)のそれぞれは、支持面上で静止している載置装置上にワークを配置するためのリリース処理が行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図8(a)から図8(e)のそれぞれは、載置装置に載置されている複数のワークを一つずつ順に保持するための保持処理と、複数のワークを一つずつ順に載置装置に配置するためのリリース処理とが行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図9(a)から図9(e)のそれぞれは、載置装置に載置されている複数のワークを一つずつ順に保持するための保持処理と、複数のワークを一つずつ順に載置装置に配置するためのリリース処理とが行われている期間中のある時点におけるロボットとワークとの位置関係を示す側面図である。 図7は、マッチング処理及びトラッキング処理を行うことで物体の位置及び姿勢を算出するための論理的な処理ブロックを示すブロック図である。 図11は、2Dマッチング処理を模式的に示す。 図12は、撮像装置が画像データを生成するタイミングと2Dマッチング部が2Dマッチング処理を行うタイミングとの関係を示すタイミングチャートである。 図13は、3Dマッチング処理を模式的に示す。 図14は、三次元モデルの初期位置及び初期姿勢を示す。 図15は、撮像装置が画像データを生成するタイミングと3Dマッチング部が3Dマッチング処理を行うタイミングとの関係を示すタイミングチャートである。 図16は、三次元位置データの一部である3Dマッチング対象データを模式的に示す。 図17は、トラッキング処理を模式的に示す。 図18は、撮像装置が画像データを生成するタイミングとトラッキング部がトラッキング処理を行うタイミングとの関係を示すタイミングチャートである。 図19は、2Dマッチング部が2Dマッチング処理を行うタイミング、3Dマッチング部が3Dマッチング処理を行うタイミングと、トラッキング部がトラッキング処理を行うタイミングとの関係を示すタイミングチャートである。 図20は、第1変形例における制御装置の構成を示すブロック図である。 図21は、第1変形例におけるロボット制御処理の流れを示すフローチャートである。 図22は、2Dマッチング処理によって検出された二つの物体を示す平面図である。 図23(a)は、回転移動している撮像装置を示し、図23(b)は、並進移動している撮像装置を示す。 図24(a)は、第1の物体に向かってエンドエフェクタを移動させるロボットアームを示し、図24(b)は、第2の物体に向かってエンドエフェクタを移動させるロボットアームを示す。 図25は、第1の位置から物体を撮像する撮像装置と、第1の位置とは異なる第2の位置から物体を撮像する撮像装置とを示す斜視図である。 図26は、第2変形例における制御装置の構成を示すブロック図である。 図27は、平面除去処理を模式的に示す。 図28は、撮像ユニットの構成を示すブロック図である。 図29は、ハイダイナミックレンジ合成処理を模式的に示す。 図30は、ノイズ除去処理を模式的に示す。 図31は、第3変形例におけるロボットシステムの構成を示すブロック図である。
 以下、図面を参照しながら、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態について説明する。以下では、ロボットシステムSYSを用いて、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態について説明する。
 (1)ロボットシステムSYSの構成
 はじめに、ロボットシステムSYSの構成について説明する。
 (1-1)ロボットシステムSYSの全体構成
 はじめに、図1を参照しながら、ロボットシステムSYSの全体構成について説明する。図1は、ロボットシステムSYSの全体構成を示すブロック図である。
 図1に示すように、ロボットシステムSYSは、ロボット1と、撮像ユニット2と、制御装置3と、エンドエフェクタ13を備えている。
 ロボット1は、物体OBJに対して所定の処理を行うことが可能な装置である。ロボット1の一例が図2に示されている。図2は、ロボット1の外観を示す側面図である。図2に示すように、ロボット1は、例えば、基台11と、ロボットアーム12と、ロボット制御装置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と称してもよい。
 ロボットアーム12には、エンドエフェクタ13が取り付けられる。つまり、ロボット1には、エンドエフェクタ13が取り付けられる。図2に示す例では、エンドエフェクタ13は、ロボットアーム12の先端に取り付けられている。エンドエフェクタ13は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、エンドエフェクタ13を移動させる。つまり、ロボット1は、エンドエフェクタ13を移動させる。
 エンドエフェクタ13は、物体OBJに対して所定の処理(言い換えれば、所定の動作)を行う装置である。エンドエフェクタ13は、物体OBJに対して所定の処理を行うことから処理装置と称されてもよい。
 例えば、エンドエフェクタ13は、所定の処理の一例として、物体OBJを保持するための保持処理(いいかえれば、保持動作)を行ってもよい。この場合、エンドエフェクタ13は、エンドエフェクタ13が保持するべき物体OBJに対して保持処理を行っているとみなしてもよい。保持処理を行うことが可能なエンドエフェクタ13は、保持装置と称されてもよい。
 例えば、エンドエフェクタ13は、所定の処理の一例として、保持している物体OBJをリリースする(つまり、離す)リリース処理(いいかえれば、リリース動作)を行ってもよい。この場合、エンドエフェクタ13は、エンドエフェクタ13が保持している物体OBJに対してリリース処理を行っているとみなしてもよい。エンドエフェクタ13が保持装置と称される場合、保持装置は、保持装置が保持している物体OBJに対してリリース処理を行ってもよい。リリース処理を行うことが可能なエンドエフェクタ13は、リリース装置と称されてもよい。
 リリース処理は、エンドエフェクタ13が保持している第1の物体OBJが第2の物体OBJ上に載置されるように第1の物体OBJをリリースする(つまり、離す)リリース処理を含んでいてもよい。この場合、エンドエフェクタ13は、エンドエフェクタ13が保持している第1の物体OBJに対してリリース処理を行っているとみなしてもよい。つまり、エンドエフェクタ13は、エンドエフェクタ13がリリースするべき第1の物体OBJに対してリリース処理を行っているとみなしてもよい。更に、エンドエフェクタ13は、エンドエフェクタ13がリリースする第1の物体OBJが載置される第2の物体OBJに対してリリース処理を行っているとみなしてもよい。
 保持処理及びリリース処理を行うことが可能なエンドエフェクタ13の一例として、ハンドグリッパーがあげられる。ハンドグリッパーは、複数本(例えば、2本、3本又は4本)の指部材又は爪部材を用いて物体OBJを物理的に挟み込むことで、物体OBJを保持することが可能なエンドエフェクタ13である。保持処理を行うことが可能なエンドエフェクタ13の他の一例として、物体OBJを真空吸着することで物体OBJを保持することが可能なバキュームグリッパーの少なくとも一つがあげられる。図2は、エンドエフェクタ13がハンドグリッパーである例を示している。
 ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ13を用いて、物体OBJを所望位置に配置するための配置処理(言い換えれば、配置動作)を行ってもよい。例えば、ロボット1は、エンドエフェクタ13を用いて第1の物体OBJを保持し、その後、エンドエフェクタ13が保持している第1の物体OBJを、第1物体OBJとは異なる第2の物体OBJの所望位置に配置するための配置処理を行ってもよい。
 ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ13を用いて、第1の物体OBJを、第1の物体OBJとは異なる第2の物体OBJにはめ込むためのはめ込み処理(言い換えれば、はめ込み動作)を行ってもよい。例えば、ロボット1は、エンドエフェクタ13を用いて第1の物体OBJを保持し、その後、エンドエフェクタ13が保持している第1の物体OBJを、第1物体OBJとは異なる第2の物体OBJにはめ込むためのはめ込み処理を行ってもよい。
 エンドエフェクタ13が所定の処理を行う物体OBJは、図2に示すように、ワークWを含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために用いられる部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために加工される部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために搬送される部品又は部材を含んでいてもよい。
 エンドエフェクタ13が所定の処理を行う物体OBJは、図2に示すように、ワークWが載置される載置装置Tを含んでいてもよい。載置装置Tの一例として、パレットがあげられる。載置装置Tは、支持面S上に配置されていてもよい。載置装置Tは、支持面Sに固定されていてもよい。或いは、載置装置Tは、支持面Sに対して移動可能であってもよい。一例として、載置装置Tは、支持面S上を自走可能であってもよい。尚、図2は、載置装置Tが支持面S上を自走可能である例を示している。この場合、載置装置Tは、自動搬送車(AGV:Automatic Guided Vehicle)と称されてもよい。載置装置Tが支持面Sに対して移動可能である場合、載置装置Tの移動に伴って、載置装置Tに載置されたワークWもまた支持面Sに対して移動する。このため、移動可能な載置装置Tは、ワークWを移動させる移動装置として機能可能であってもよい。尚、ベルトコンベアが、載置装置Tとして用いられてもよい。
 但し、物体OBJは、載置装置Tを含んでいなくてもよい。尚、載置装置Tが支持面S上を自走可能である場合、支持面S上を自走可能な自走装置とパレットとが別体であってもよい。この場合、パレットは、自走装置に設置されていてもよい。自走装置とパレットとの双方を含む装置が、載置装置Tと称されてもよい。或いは、物体OBJは、自走装置及びパレットの少なくとも一方を含んでいなくてもよい。自走装置は、自動搬送車と称されてもよい。
 尚、載置装置Tは、支持面S上を飛行可能であってもよい。この場合、載置装置Tは、無人航空機と称されてもよい。支持面S上を飛行可能な飛行装置とパレットとが別体であってもよい。パレットは、飛行装置に設定されていてもよい。飛行装置とパレットとを含む装置が、載置装置Tと称されてもよい。飛行装置は、無人航空機と称されてもよい。尚、ワークWは、載置装置Tに載置されていなくてもよい。例えば、ワークWは、支持面S上に載置されていてもよい。
 物体OBJがワークW及び載置装置Tを含む場合には、上述した保持処理は、静止している又は移動している載置装置Tに載置されたワークWを保持する処理を含んでいてもよい。上述した保持処理は、支持面Sに載置されたワークWを保持する処理を含んでいてもよい。上述したリリース処理は、エンドエフェクタ13が保持しているワークWを静止している又は移動している載置装置T上の所望位置に配置するために、エンドエフェクタ13が保持しているワークWをリリースする処理を含んでいてもよい。上述したリリース処理は、エンドエフェクタ13が保持しているワークWを支持面S上の所望位置に配置するために、エンドエフェクタ13が保持しているワークWをリリースする処理を含んでいてもよい。上述したリリース処理は、エンドエフェクタ13が保持している第1のワークWを静止している又は移動している載置装置T上に載置されている第2のワークWにはめ込むために、エンドエフェクタ13が保持している第1のワークWをリリースする処理を含んでいてもよい。上述したリリース処理は、エンドエフェクタ13が保持している第1のワークWを支持面S上に載置されている第2のワークWにはめ込むために、エンドエフェクタ13が保持している第1のワークWをリリースする処理を含んでいてもよい。
 ロボット制御装置14は、ロボット1の動作を制御する。
 具体的には、ロボット制御装置14は、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置14は、所望のリンク121が所望のジョイント122が規定する軸周りに回転するように、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置14は、ロボットアーム12に取り付けられたエンドエフェクタ13が所望位置に位置するように、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置14は、ロボットアーム12に取り付けられたエンドエフェクタ13が所望位置に移動するように、ロボットアーム12の動作を制御してもよい。
 ロボット制御装置14は、ロボット1の動作を制御することに加えて、ロボット1に取り付けられているエンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングで物体OBJを保持するように、エンドエフェクタ13の動作を制御してもよい。つまり、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングで保持処理を行うように、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングで保持している物体OBJをリリースするように、エンドエフェクタ13の動作を制御してもよい。つまり、ロボット制御装置14は、エンドエフェクタ13が所望のタイミングでリリース処理を行うように、エンドエフェクタ13の動作を制御してもよい。エンドエフェクタ13がハンドグリッパーである場合には、ロボット制御装置14は、ハンドグリッパーが開閉するタイミングを制御してもよい。エンドエフェクタ13がバキュームグリッパーである場合には、ロボット制御装置14は、バキュームグリッパーのバキューム装置をオン・オフするタイミングを制御してもよい。
 尚、図2は、ロボット1が、ロボットアーム12(つまり、垂直多関節型ロボット)である例を示している。しかしながら、ロボット1は、垂直多関節型ロボットとは異なるロボットであってもよい。例えば、ロボット1は、スカラロボット(つまり、水平多関節型ロボット)であってもよい。例えば、ロボット1は、パラレルリンクロボットであってもよい。例えば、ロボット1は、ロボットアーム12を二つ備える双腕型ロボットであってもよい。例えば、ロボット1は、直交座標型ロボットであってもよい。例えば、ロボット1は、円筒座標型ロボットであってもよい。ロボット1は、可動装置と称されてもよい。可動装置は、ロボット1に加えて、自動搬送車及び無人航空機の少なくとも一方を含んでいてもよい。例えば、自動搬送車及び無人航空機の少なくとも一方にロボット1が設置されていてもよい。
 再び図1において、撮像ユニット2は、物体OBJを撮像する。物体OBJを撮像するために、撮像ユニット2は、撮像装置21と、撮像装置22と、投影装置23とを備えている。尚、撮像ユニット2は、撮像部と称されてもよい。
 撮像装置21は、物体OBJを撮像可能なカメラである。撮像装置21は、物体OBJを撮像することで、画像データIMG_2Dを生成する。撮像装置21が生成した画像データIMG_2Dは、撮像装置21から制御装置3に出力される。本実施形態では、撮像装置21は、単眼カメラである。具体的には、撮像装置21は、単眼カメラ(言い換えれば、撮像素子)を用いて物体OBJを撮像可能である。尚、撮像装置21は、単眼カメラに限られない。撮像装置21は、2つの単眼カメラを用いて物体OBJを撮像可能なステレオカメラであってもよいし、3つ以上の単眼カメラを含んでいてもよい。尚、撮像装置21は、ライトフィールドカメラ、プレノプティックカメラ、及びマルチスペクトルカメラの少なくとも一つであってもよい。
 撮像装置22は、撮像装置21と同様に、物体OBJを撮像可能なカメラである。本実施形態では、撮像装置22は、ステレオカメラである。具体的には、撮像装置22は、二つの単眼カメラ(言い換えれば、二つの撮像素子)を用いて物体OBJを撮像可能なステレオカメラである。撮像装置22は、物体OBJを撮像することで、画像データIMG_3Dを生成する。具体的には、撮像装置22がステレオカメラであるがゆえに、撮像装置22は、二つの単眼カメラがそれぞれ生成する二つの画像データを含む画像データIMG_3Dを生成する。撮像装置22が生成した画像データIMG_3Dは、撮像装置22から制御装置3に出力される。尚、撮像装置22は、ステレオカメラに限られない。撮像装置22は、単眼カメラであってもよいし、3つ以上の単眼カメラを含んでいてもよい。尚、撮像装置22は、ライトフィールドカメラ、プレノプティックカメラ、及びマルチスペクトルカメラの少なくとも一つであってもよい。
 投影装置23は、物体OBJに投影光を照射可能な装置である。特に、投影装置23は、物体OBJに投影光を照射することで、物体OBJに所望の投影パターンを投影可能な装置である。所望の投影パターンは、例えば、ランダムパターンを含んでいてもよい。ランダムパターンは、単位照射領域毎に異なるパターンを有する投影パターンであってもよい。ランダムパターンは、ランダムドットパターンを含んでいてもよい。所望の投影パターンは、例えば、一次元又は二次元の格子パターンを含んでいてもよい。所望の投影パターンは、その他の投影パターンを含んでいてもよい。撮像装置22は、投影装置23からの投影パターンが投影されている物体OBJを撮像する。この場合、画像データIMG_3Dが示す画像には、投影パターンが投影されている物体OBJが写り込んでいる。一方で、撮像装置21は、投影パターンが投影されている物体OBJを撮像しなくてもよい。撮像装置21は、投影パターンが投影されていない物体OBJを撮像してもよい。この場合、画像データIMG_2Dが示す画像には、投影パターンが投影されている物体OBJが写り込んでいなくてもよい。画像データIMG_2Dが示す画像には、投影パターンが投影されていない物体OBJが写り込んでいてもよい。尚、所望の投影パターンを物体OBJに投影するための投影光は、パターン光と称されてもよいし、構造光と称されてもよい。この場合、投影光は、パターン光を含んでいてもよいし、構造光を含んでいてもよい。
 尚、投影装置23は、物体OBJに投影光を照射することで、物体OBJを投影光で照明しているとみなしてもよい。この場合、投影装置23は、物体OBJを照明する照明装置として機能可能であってもよい。投影装置23が照明装置として機能する場合には、投影光は、照明光と称されてもよい。投影装置23が照明装置として機能する場合には、投影光は、物体OBJに所望の投影パターンを投影可能な光でなくてもよい。
 撮像ユニット2は、エンドエフェクタ13と同様に、ロボットアーム12に設けられている。つまり、撮像装置21及び22並びに投影装置23は、ロボットアーム12に取り付けられる。例えば、図2に示すように、撮像装置21及び22並びに投影装置23は、エンドエフェクタ13と同様に、ロボットアーム12の先端に取り付けられていてもよい。この場合、撮像装置21及び22並びに投影装置23は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、撮像装置21及び22並びに投影装置23を移動させる。
 但し、撮像ユニット2は、ロボットアーム12に設けられていなくてもよい。撮像ユニット2は、物体OBJに投影光を照射可能であって且つ物体OBJを撮像可能な任意の位置に設けられていてもよい。尚、撮像装置21、撮像装置22、及び投影装置23の少なくとも一つが、ロボットアーム12に設けられ、撮像装置21、撮像装置22、及び投影装置23の他の少なくとも一つが、ロボットアーム12とは異なる場所に設けられていてもよい。撮像装置21及び撮像装置22の少なくとも一方が、ロボットアーム12とは異なる場所に設けられる場合、撮像装置21及び撮像装置22の少なくとも一方は、物体OBJを撮像可能なように配置された柱などの構造物に設置されていてもよい。また、投影装置23が、ロボットアーム12とは異なる場所に設けられる場合、投影装置23は、物体OBJに投影光を照射可能なように配置された柱などの構造物に設置されていてもよい。
 撮像装置21及び22は、互いに同期しながら物体OBJを撮像してもよい。例えば、撮像装置21及び22は、同時に物体OBJを撮像してもよい。つまり、撮像装置21及び22は、撮像装置21が物体OBJを撮像する2D撮像時刻と、撮像装置22が物体OBJを撮像する3D撮像時刻とが同じ時刻になるように、物体OBJを撮像してもよい。撮像装置21及び22は、画像データIMG_2Dを生成するために撮像装置21が物体OBJを撮像する2D撮像時刻と、画像データIMG_3Dを生成するために撮像装置22が物体OBJを撮像する3D撮像時刻とが同じ時刻になるように、物体OBJを撮像してもよい。
 撮像装置21及び22は、制御装置3の制御下で、物体OBJを撮像してもよい。この場合、撮像装置21及び22のそれぞれが物体OBJを撮像する時刻(言い換えれば、タイミング)は、制御装置3によって制御されてもよい。例えば、制御装置3は、撮像装置21及び22が互いに同期しながら物体OBJを撮像するように、撮像装置21及び22を制御してもよい。例えば、制御装置3は、撮像装置21及び22が同時に物体OBJを撮像するように、撮像装置21及び22を制御してもよい。つまり、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、撮像装置21及び22を制御してもよい。
 ここで、「2D撮像時刻と3D撮像時刻とが同じ時刻になる」状態は、「2D撮像時刻と3D撮像時刻とが、文字通り完全に同じ時刻になる」という状態を含んでいてもよい。「2D撮像時刻と3D撮像時刻とが同じ時刻になる」状態は、「2D撮像時刻と3D撮像時刻とが完全に同じ時刻になっていないものの、2D撮像時刻と3D撮像時刻との時間的なずれが許容上限値よりも小さいがゆえに2D撮像時刻と3D撮像時刻とが実質的に同じ時刻であるとみなせる」状態を含んでいてもよい。ここで、許容上限値は、ロボットアーム12の制御誤差に基づく許容上限値であってもよい。例えば、2D撮像時刻と3D撮像時刻との時間的なずれによって、後述する物体OBJの位置及び姿勢の少なくとも一方の算出結果に誤差が生じる場合(つまり、算出される物体OBJの位置及び姿勢の少なくとも一方の精度が低下する場合)がある。この場合、物体OBJの位置及び姿勢の少なくとも一方の算出結果に生じる誤差によって、ロボットアーム12の制御誤差が生じる場合がある。ロボットアーム12の制御誤差は、エンドエフェクタ13の移動誤差となり、エンドエフェクタ13が物体OBJに対して所定の処理を適切に行うことができなくなる場合がある。尚、許容上限値が、ロボットアーム12によるエンドエフェクタ13の移動誤差の許容上限値と等価であるとみなしてもよい。また、例えば、撮像装置21及び22の撮像処理の同期誤差による、2D撮像時刻と3D撮像時刻との時間的なずれがあったとしても、2D撮像時刻と3D撮像時刻とが実質的に同じ時刻であるとみなしてもよい。尚、撮像装置21及び22の撮像処理の同期誤差は、制御装置3による撮像装置21及び22の撮像処理の同期制御誤差であってもよい。
 但し、撮像装置21及び22は、同時に物体OBJを撮像しなくてもよい。つまり、撮像装置21及び22は、撮像装置21が物体OBJを撮像する2D撮像時刻と撮像装置22が物体OBJを撮像する3D撮像時刻とが異なる時刻になるように、物体OBJを撮像してもよい。尚、「2D撮像時刻と3D撮像時刻とが異なる時刻になる」状態は、「2D撮像時刻と3D撮像時刻との時間的なずれが許容上限値よりも大きいがゆえに2D撮像時刻と3D撮像時刻とが実質的に同じ時刻であるとみなせない」状態を含んでいてもよい。
 本実施形態では、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、物体OBJを撮像してもよい。つまり、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している期間中に撮像装置21及び22が物体OBJを撮像する場合には、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、撮像装置21及び22を制御してもよい。その理由については、ロボットシステムSYSの効果を説明する際に改めて説明する。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している状態は、撮像装置21及び22のそれぞれと物体OBJとの相対的な位置関係が変化している状態を意味していてもよい。撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している状態は、撮像装置21及び22のそれぞれと物体OBJとが相対移動している状態を意味していてもよい。
 一方で、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、物体OBJを撮像しなくてもよい。つまり、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、撮像装置21及び22を制御しなくてもよい。例えば、撮像装置21及び22は、2D撮像時刻と3D撮像時刻とが異なる時刻になるように、物体OBJを撮像してもよい。つまり、制御装置3は、2D撮像時刻と3D撮像時刻とが異なる時刻になるように、撮像装置21及び22を制御してもよい。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない状態は、撮像装置21及び22のそれぞれと物体OBJとの相対的な位置関係が変化していない状態を含んでいてもよい。撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない状態は、撮像装置21及び22のそれぞれと物体OBJとが相対移動していない状態を含んでいてもよい。撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない状態は、撮像装置21及び22のそれぞれと物体OBJとが静止している状態を含んでいてもよい。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、物体OBJを撮像してもよい。つまり、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻になるように、撮像装置21及び22を制御してもよい。
 制御装置3は、ロボット制御処理を行う。ロボット制御処理は、ロボット1を制御するためのロボット制御信号を生成する処理を含む。具体的には、制御装置3は、撮像ユニット2から出力される画像データIMG_2D及びIMG_3Dに基づいて、ロボット制御信号を生成する。本実施形態では、制御装置3は、画像データIMG_2D及びIMG_3Dに基づいて、ロボットシステムSYSのグローバル座標系内での物体OBJの位置及び姿勢の少なくとも一方を算出し、算出した物体OBJの位置及び姿勢の少なくとも一方に基づいて、ロボット制御信号を生成する。グローバル座標系は、ロボットシステムSYSの基準となる座標系である。例えば、グローバル座標系は、ロボット1の基準となる座標系であってもよい。尚、グローバル座標系が、ロボット1の基準となる座標系の場合、グローバル座標系は、ロボット座標系と称されてもよい。
 制御装置3は、ロボット制御処理を行うことに加えて、エンドエフェクタ処理を行ってもよい。エンドエフェクタ制御処理は、エンドエフェクタ13を制御するためのエンドエフェクタ制御信号を生成する処理を含んでいてもよい。具体的には、制御装置3は、算出した物体OBJの位置及び姿勢の少なくとも一方に基づいて、エンドエフェクタ制御信号を生成してもよい。エンドエフェクタ処理は、ロボット制御処理に含まれてもよいし、含まれていなくてもよい。つまり、制御装置3が生成したエンドエフェクタ制御信号は、ロボット制御信号に含まれていてもよいし、ロボット制御信号に含まれていなくてもよい。
 以下の説明では、説明の便宜上、エンドエフェクタ制御処理がロボット制御処理に含まれる(つまり、エンドエフェクタ制御信号がロボット制御信号に含まれる)例について説明する。このため、以下の説明では、ロボット制御処理は、ロボット制御信号及びエンドエフェクタ制御信号の少なくとも一方を生成する処理を意味していてもよい。また、以下の説明では、ロボット制御信号は、ロボット1を制御するための信号及びエンドエフェクタ13を制御するための信号の少なくとも一方を意味していてもよい。
 尚、ロボット制御信号は、単に制御信号と称されてもよい。
 尚、制御装置3は、画像データIMG_2D及びIMG_3Dに基づいて、ロボットシステムSYSのグローバル座標系とは異なる座標系内(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は共通座標系内)での物体OBJの位置及び姿勢の少なくとも一方を算出し、算出した物体OBJの位置及び姿勢の少なくとも一方に基づいて、ロボット制御信号を生成してもよい。
 このように、制御装置3及び撮像ユニット2は、ロボット1を制御するために用いられる。このため、制御装置3及び撮像ユニット2を含むシステムは、ロボット制御システム又は制御システムと称されてもよい。
 制御装置3が生成したロボット制御信号は、ロボット1のロボット制御装置14に出力される。ロボット制御装置14は、制御装置3が生成したロボット制御信号に基づいて、ロボット1の動作を制御する。このため、ロボット制御信号は、ロボット1の動作を制御するための信号を含んでいてもよい。
 ロボット制御信号は、ロボットアーム12を制御するための信号を含んでいてもよい。つまり、ロボット制御信号によって、ロボットアーム12が制御されてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ジョイント122に内蔵されたアクチュエータの駆動を制御することで、ロボットアーム12の動作を制御してもよい。
 上述したように、ロボットアーム12は、エンドエフェクタ13を移動させる。この場合、ロボット制御信号は、エンドエフェクタ13が所望位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。ロボット制御信号は、エンドエフェクタ13が所望位置に移動するようにロボットアーム12を制御するための信号を含んでいてもよい。ロボット制御信号は、エンドエフェクタ13と物体OBJとの位置関係が所望の位置関係となるようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13が所望位置に位置するように、ロボットアーム12を制御してもよい。ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13が所望位置に移動するように、ロボットアーム12を制御してもよい。ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13と物体OBJとの位置関係が所望の位置関係となるように、ロボットアーム12を制御してもよい。
 一例として、エンドエフェクタ13が物体OBJを保持するための保持処理を行う場合には、ロボット制御信号は、エンドエフェクタ13が、エンドエフェクタ13が物体OBJを保持可能な保持位置に向かって移動する(つまり、近づく)ようにロボットアーム12を制御するための信号を含んでいてもよい。つまり、ロボット制御信号は、エンドエフェクタ13が保持位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13が保持位置に向かって移動する(つまり、近づく)ように、ロボットアーム12を制御してもよい。つまり、ロボット制御信号は、エンドエフェクタ13が保持位置に位置するように、ロボットアーム12を制御してもよい。
 他の一例として、エンドエフェクタ13が保持している物体OBJをリリースするための保持処理を行う場合には、ロボット制御信号は、エンドエフェクタ13が、エンドエフェクタ13が保持している物体OBJをリリースするべきリリース位置に向かって移動する(つまり、近づく)ようにロボットアーム12を制御するための信号を含んでいてもよい。つまり、ロボット制御信号は、エンドエフェクタ13がリリース位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13がリリース位置に向かって移動する(つまり、近づく)ように、ロボットアーム12を制御してもよい。つまり、ロボット制御信号は、エンドエフェクタ13がリリース位置に位置するように、ロボットアーム12を制御してもよい。
 上述したように、ロボット制御信号は、ロボットアーム12を制御するための信号に加えて又は代えて、エンドエフェクタ13を制御するための信号(つまり、エンドエフェクタ制御信号)を含んでいてもよい。つまり、ロボット制御信号によって、エンドエフェクタ13が制御されてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13を構成するハンドグリッパーを動かすアクチュエータの駆動を制御することで、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13を構成するバキュームグリッパーのバキューム装置の駆動を制御することで、エンドエフェクタ13の動作を制御してもよい。
 一例として、エンドエフェクタ13が物体OBJを保持するための保持処理を行う場合には、ロボット制御信号は、上述した保持位置に位置するエンドエフェクタ13が物体OBJを保持するようにエンドエフェクタ13を制御するための信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、保持位置に位置するエンドエフェクタ13が物体OBJを保持するように、エンドエフェクタ13を制御してもよい。
 他の一例として、エンドエフェクタ13が保持している物体OBJをリリースするためのリリース処理を行う場合には、ロボット制御信号は、上述したリリース位置に位置するエンドエフェクタ13が保持している物体OBJをリリースするようにエンドエフェクタ13を制御するための信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、リリース位置に位置するエンドエフェクタ13が保持している物体OBJをリリースするように、エンドエフェクタ13を制御してもよい。
 ロボット制御信号は、ロボット制御装置14がロボット1の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置14がロボット1の動作を制御するために用いるロボット駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号をそのまま用いて、ロボット1の動作を制御してもよい。例えば、制御装置3は、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号をロボット制御信号として生成し、ロボット制御装置14は、制御装置3が生成したロボット制御信号をそのまま用いて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。ロボット制御信号は、ロボット制御装置14がエンドエフェクタ13の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置14がエンドエフェクタ13の動作を制御するために用いるエンドエフェクタ駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、例えば、制御装置3は、エンドエフェクタ13を構成するハンドグリッパーを動かすアクチュエータの駆動信号(エンドエフェクタ駆動信号)をロボット制御信号として生成し、ロボット制御装置14は、制御装置3が生成したロボット制御信号をそのまま用いて、エンドエフェクタ13のアクチュエータを制御してもよい。例えば、制御装置3は、エンドエフェクタ13を構成するバキュームグリッパーのバキューム装置を駆動するための駆動信号(エンドエフェクタ駆動信号)をロボット制御信号として生成し、ロボット制御装置14は、制御装置3が生成したロボット制御信号をそのまま用いて、エンドエフェクタ13のバキューム装置を制御してもよい。
 尚、上述のように、ロボット制御信号が、ロボット制御装置14がロボット1の動作を制御するためにそのまま利用可能な信号、及びロボット制御装置14がエンドエフェクタ13の動作を制御するためにそのまま利用可能な信号を含む場合、ロボット1は、ロボット制御装置14を備えていなくてもよい。
 或いは、ロボット制御信号は、ロボット1の動作を制御するためのロボット駆動信号をロボット制御装置14が生成するために利用可能な信号を含んでいてもよい。この場合、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット1の動作を制御するためのロボット駆動信号を生成し、生成したロボット駆動信号に基づいて、ロボット1の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。
 ロボット制御信号は、エンドエフェクタ13の動作を制御するためのエンドエフェクタ駆動信号をロボット制御装置14が生成するために利用可能な信号を含んでいてもよい。この場合、ロボット制御装置14は、エンドエフェクタ制御信号に基づいて、エンドエフェクタ13の動作を制御するためのエンドエフェクタ駆動信号を生成し、生成したエンドエフェクタ駆動信号に基づいて、エンドエフェクタ13の動作を制御してもよい。例えば、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13のアクチュエータ又はバキューム装置の駆動信号を生成し、生成した信号に基づいて、エンドエフェクタ13のアクチュエータ又はバキューム装置を制御してもよい。
 尚、ロボット制御装置14がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系での物体OBJの位置を表す信号であってもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号によってグローバル座標系での位置が表された物体OBJにエンドエフェクタ13が近づくように(つまり、ロボット1(エンドエフェクタ13)と物体OBJとの位置関係が所望位置関係となるように)、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した駆動信号に基づいて、ロボットアーム12の動作を制御してもよい。また、ロボット制御装置14がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのロボット1と物体OBJとの所望位置関係を表す信号であってもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット1(エンドエフェクタ13)と物体OBJとの位置関係が、ロボット制御信号で表された所望位置関係になるように、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した駆動信号に基づいて、ロボットアーム12の動作を制御してもよい。また、ロボット制御装置14がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのエンドエフェクタ13の所望位置を表す信号を含んでいてもよい。この場合、例えば、ロボット制御装置14は、ロボット制御信号に基づいて、エンドエフェクタ13が、ロボット制御信号で表された所望位置に位置するように(つまり、ロボット1(エンドエフェクタ13)と物体OBJとの位置関係が所望位置関係となるように)、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した駆動信号に基づいて、ロボットアーム12の動作を制御してもよい。一例として、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された位置に位置する物体OBJをエンドエフェクタ13が保持することが可能な保持位置にエンドエフェクタ13が移動するように、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した駆動信号に基づいて、ロボットアーム12の動作を制御してもよい。他の一例として、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット制御信号で表された位置に位置する物体OBJを保持したエンドエフェクタ13が、物体OBJが載置されていた位置から離れるように、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号を生成し、生成した駆動信号に基づいて、ロボットアーム12の動作を制御してもよい。また、ロボット制御装置14がロボット駆動信号を生成するために利用可能な信号は、例えば、グローバル座標系でのロボットアーム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に、ロボット制御信号を送信(つまり、出力)してもよい。尚、ロボット制御信号をロボット1に出力する通信装置33は、出力部と称されてもよい。
 入力装置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撮像レートで物体OBJを撮像する。例えば、撮像装置21は、一秒間に数十回から数百回(一例として、500回)物体OBJを撮像する2D撮像レートで、物体OBJを撮像してもよい。その結果、撮像装置21は、所定の2D撮像レートに応じた周期で画像データIMG_2Dを生成する。例えば、撮像装置21は、一秒間に数十個から数百個(一例として、500個)の画像データIMG_2Dを生成してもよい。制御装置3は、撮像装置21が画像データIMG_2Dを生成する都度、画像データIMG_2Dを取得する。つまり、制御装置3は、一秒間に数十個から数百個(一例として、500個)の画像データIMG_2Dを取得してもよい。
 撮像装置21は、ロボット1が所定の処理を行う物体OBJに加えて、物体OBJとは異なる他の物体を撮像してもよい。例えば、物体OBJと他の物体との双方が撮像装置21の撮像範囲(視野)に含まれている場合には、撮像装置21は、物体OBJと他の物体との双方を撮像してもよい。その結果、撮像装置21は、物体OBJと他の物体との双方が写り込んでいる画像を示す画像データIMG_2Dを生成してもよい。
 制御装置3は更に、通信装置33を用いて、撮像装置22から画像データIMG_3Dを取得する(ステップS1)。具体的には、撮像装置22は、所定の3D撮像レートで物体OBJを撮像する。3D撮像レートは、2D撮像レートと同じである。但し、3D撮像レートは、2D撮像レートと異なっていてもよい。例えば、撮像装置22は、一秒間に数十回から数百回(一例として、500回)物体OBJを撮像する3D撮像レートで、物体OBJを撮像してもよい。その結果、撮像装置22は、所定の3D撮像レートに応じた周期で画像データIMG_3Dを生成する。例えば、撮像装置22は、一秒間に数十個から数百個(一例として、500個)の画像データIMG_3Dを生成してもよい。制御装置3は、撮像装置22が画像データIMG_3Dを生成する都度、画像データIMG_3Dを取得する。つまり、制御装置3は、一秒間に数十個から数百個(一例として、500個)の画像データIMG_3Dを取得してもよい。
 撮像装置22は、ロボット1が所定の処理を行う物体OBJに加えて、物体OBJとは異なる他の物体を撮像してもよい。例えば、物体OBJと他の物体との双方が撮像装置22の撮像範囲(視野)に含まれている場合には、撮像装置22は、物体OBJと他の物体との双方を撮像してもよい。その結果、撮像装置22は、物体OBJと他の物体との双方が写り込んでいる画像を示す画像データIMG_3Dを生成してもよい。
 制御装置3が画像データIMG_3Dを取得する都度、三次元位置データ生成部311は、取得した画像データIMG_3Dに基づいて、三次元位置データWSDを生成する(ステップS2)。更に、三次元位置データ生成部311は、生成した三次元位置データWSDを位置姿勢算出部312に出力する。
 三次元位置データWSDは、画像データIMG_3Dに写り込んでいる物体OBJの三次元位置を示すデータである。例えば、三次元位置データWSDは、物体OBJの表面の少なくとも一部の三次元位置を示すデータであってもよい。特に、三次元位置データWSDは、物体OBJの複数点それぞれの三次元位置を示すデータである。例えば、三次元位置データWSDは、物体OBJの表面上の複数点のそれぞれの三次元位置を示すデータであってもよい。例えば、三次元位置データWSDは、物体OBJの表面の複数部位にそれぞれ相当する複数点のそれぞれの三次元位置を示すデータであってもよい。
 具体的には、上述したように、画像データIMG_3Dが示す画像には、投影パターンが投影されている物体OBJが写り込んでいる。この場合、画像データIMG_3Dが示す画像に写り込んでいる投影パターンには、投影パターンが投影されている物体OBJの表面の少なくとも一部の三次元形状が反映されている。画像データIMG_3Dが示す画像に写り込んでいる投影パターンの形状には、投影パターンが投影されている物体OBJの表面の少なくとも一部の三次元形状が反映されている。このため、三次元位置データ生成部311は、画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、物体OBJの表面の少なくとも一部の三次元形状を算出することができる。物体OBJの表面の少なくとも一部の三次元形状は、実質的には、物体OBJの複数点それぞれの三次元位置を示している。なぜならば、物体OBJの複数点のそれぞれが、物体OBJの表面に包含されるからである。このため、物体OBJの表面の少なくとも一部の三次元形状を算出する処理は、実質的には、物体OBJの複数点それぞれの三次元位置を算出する処理と、実質的に等価であるとみなしてもよい。このため、三次元位置データ生成部311は、画像データIMG_3Dに基づいて、三次元位置データWSDを生成することができる。
 尚、物体OBJの複数点のそれぞれが物体OBJの表面に包含されることを考慮すれば、物体OBJの複数点それぞれの三次元位置を示す三次元位置データWSDは、実質的には、物体OBJの少なくとも一部の三次元形状(特に、物体OBJの表面の少なくとも一部の三次元形状)を示す三次元形状データと等価であるとみなしてもよい。
 三次元位置データWSDを生成するために、三次元位置データ生成部311は、画像データIMG_3Dに含まれる二つの画像データのそれぞれが示す画像同士の各部(例えば各画素)について対応付けを行うことで視差を算出してもよい。具体的には、この対応付けにおいて、三次元位置データ生成部311は、二つの画像データのそれぞれが示す画像に写り込んでいる投影パターンの各部(つまり、それぞれの画像に写り込んでいる投影パターン同士の各部)について対応付けを行うことで視差を算出してもよい。三次元位置データ生成部311は、算出した視差を用いた三角測量の原理に基づく周知の方法で、物体OBJの複数点のそれぞれの三次元位置を算出してもよい。その結果、物体OBJの複数点のそれぞれの三次元位置を示す三次元位置データWSDが生成される。この場合、投影パターンが写り込んでいない画像同士の各部の対応付けを行うよりも、投影パターンが写り込んだ画像同士の各部(つまり、写り込んだ投影パターン同士の各部)の対応付けを行う方が、視差の算出精度がより高くなる。従って、生成される三次元位置データWSDの精度(つまり、物体OBJの複数点のそれぞれの三次元位置の算出精度)がより高くなる。
 三次元位置データWSDは、物体OBJの複数点のそれぞれの三次元位置を示すことができる限りは、どのようなデータであってもよい。つまり、三次元位置データWSDは、物体OBJの複数点それぞれの三次元位置を直接的又は間接的に示す任意のデータであってもよい。例えば、三次元位置データWSDは、物体OBJの複数点それぞれの三次元位置を示す座標情報を含んでいてもよい。例えば、三次元位置データWSDは、物体OBJの少なくとも一部の三次元形状を示す情報を含んでいてもよい。
 上述したように制御装置3が複数の画像データIMG_3Dを順に取得するがゆえに、三次元位置データ生成部311もまた、複数の画像データIMG_3Dから複数の三次元位置データWSDをそれぞれ順に生成する。この場合、一の時刻の画像データIMG_3Dから生成された三次元位置データWSDは、物体OBJの複数の第1点のそれぞれの三次元位置を示していてもよい。一の時刻とは異なる他の時刻の画像データIMG_3Dから生成された三次元位置データWSDは、物体OBJの複数の第2点のそれぞれの三次元位置を示していてもよい。物体OBJの複数の第1点は、物体OBJの複数の第2点と同一であってもよい。或いは、物体OBJの複数の第1点の少なくとも一つは、物体OBJの複数の第2点の少なくとも一つと異なっていてもよい。
 三次元位置データWSDの一例として、深度画像データがあげられる。深度画像データは、深度画像データが示す深度画像の各画素に、輝度情報に加えて深度情報が関連付けられた画像データである。深度情報は、各画素に写り込んでいる物体OBJの各部分と撮像装置22との間の距離(つまり、奥行き)を示す情報である。尚、深度画像データは、各画素の輝度情報が、物体OBJの各部分の深度(つまり、物体OBJの各部分と撮像装置22との間の距離)を示す画像データであってもよい。三次元位置データ生成部311は、画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、画像データIMG_3Dが示す画像に写り込んでいる物体OBJの各部分と撮像装置22との間の距離を算出し、画像データIMG_3Dが示す画像の各画素に算出した距離を深度情報として関連付けることで、深度画像を生成してもよい。
 三次元位置データWSDの他の一例として、点群データがあげられる。点群データは、画像データIMG_3Dが示す画像に写り込んでいる物体OBJの各部分に対応する点の三次元空間内での集合を示すデータである。三次元位置データ生成部311は、深度画像データと撮像装置22のカメラパラメータとに基づいて、点群データを生成してもよい。
 上述したように、三次元位置データWSDは、画像データIMG_3Dに基づいて生成されるがゆえに、後述する3D撮像座標系における物体OBJの三次元位置を示すデータであってもよい。
 上述したように、ロボット1が所定の処理を行う物体OBJに加えて物体OBJとは異なる他の物体が撮像装置22の撮像範囲(視野)に含まれている場合には、画像データIMG_3Dは、物体OBJと他の物体との双方が写り込んでいる画像を示す。この場合、三次元位置データWSDは、画像データIMG_3Dに写り込んでいる物体OBJの三次元位置に加えて、画像データIMG_3Dに写り込んでいる他の物体の三次元位置を示すデータであってもよい。この場合であっても、三次元位置データWSDに、物体OBJの三次元位置を示すデータが含まれている限りは、三次元位置データWSDは、物体OBJの複数点それぞれの三次元位置を示すデータであるとみなしてもよい。なぜならば、他の物体の三次元位置を示すデータが三次元位置データWSDに含まれている場合であっても、物体OBJの三次元位置を示すデータが三次元位置データWSDに含まれていることに変わりはないからである。
 その後、位置姿勢算出部312は、ステップS1において取得された画像データIMG_2DとステップS2において生成された三次元位置データWSDとに基づいて、物体OBJの位置及び姿勢の少なくとも一方を算出する(ステップS3)。その結果、位置姿勢算出部312は、物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成する(ステップS3)。
 ステップS3では、位置姿勢算出部312は、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出する。つまり、位置姿勢算出部312は、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成する。グローバル座標系は、ロボットシステム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は、グローバル座標系における物体OBJの位置として、X軸(GL)と平行なX軸方向(GL)における物体OBJの位置Tx(GL)、Y軸(GL)と平行なY軸方向(GL)における物体OBJの位置Ty(GL)及びZ軸(GL)と平行なZ軸方向(GL)における物体OBJの位置Tz(GL)のうちの少なくとも一つを算出してもよい。位置姿勢算出部312は、グローバル座標系における物体OBJの姿勢として、X軸(GL)周りの物体OBJの回転量Rx(GL)、Y軸(GL)周りの物体OBJの回転量Ry(GL)及びZ軸(GL)周りの物体OBJの回転量Rz(GL)のうちの少なくとも一つを算出してもよい。なぜならば、X軸(GL)周りの物体OBJの回転量Rx(GL)、Y軸(GL)周りの物体OBJの回転量Ry(GL)及びZ軸(GL)周りの物体OBJの回転量Rz(GL)は、それぞれ、X軸(GL)周りの物体OBJの姿勢を表すパラメータ、Y軸(GL)周りの物体OBJの姿勢を表すパラメータ及びZ軸(GL)周りの物体OBJの姿勢を表すパラメータと等価であるからである。このため、以下の説明では、X軸(GL)周りの物体OBJの回転量Rx(GL)、Y軸(GL)周りの物体OBJの回転量Ry(GL)及びZ軸(GL)周りの物体OBJの回転量Rz(GL)を、それぞれ、X軸(GL)周りの物体OBJの姿勢Rx(GL)、Y軸(GL)周りの物体OBJの姿勢Ry(GL)及びZ軸(GL)周りの物体OBJの姿勢Rz(GL)と称する。
 尚、X軸(GL)周りの物体OBJの姿勢Rx(GL)、Y軸(GL)周りの物体OBJの姿勢Ry(GL)及びZ軸(GL)周りの物体OBJの姿勢Rz(GL)は、それぞれ、X軸(GL)周りの回転方向における物体OBJの位置、Y軸(GL)周りの回転方向における物体OBJの位置及びZ軸(GL)周りの回転方向における物体OBJの位置を示しているとみなしてもよい。つまり、X軸(GL)周りの物体OBJの姿勢Rx(GL)、Y軸(GL)周りの物体OBJの姿勢Ry(GL)及びZ軸(GL)周りの物体OBJの姿勢Rz(GL)は、いずれも、物体OBJの位置を表すパラメータであるとみなしてもよい。
 このように、図4のステップS3では、位置姿勢算出部312は、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方として、位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿勢Rx(GL)、姿勢Ry(GL)及び姿勢Rz(GL)の少なくとも一つを算出してもよい。尚、図4のステップS3のグローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出する処理(つまり、位置姿勢情報POI0を生成する処理)については、後に図10等を参照しながら詳述するため、ここでの説明は省略する。
 その後、信号生成部313は、ステップS3において生成された位置姿勢情報POI0を用いて、ロボット制御信号を生成する(ステップS4)。例えば、信号生成部313は、ロボット1(エンドエフェクタ13)が物体OBJに対して所定の処理を行うことができるように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1(エンドエフェクタ13)と物体OBJとの位置関係が所望位置関係となるように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1(エンドエフェクタ13)と物体OBJとの位置関係が所望位置関係となるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1と物体OBJとの位置関係が所望位置関係となった時点でエンドエフェクタ13が物体OBJに対して所定の処理を行うように、ロボット制御信号を生成してもよい。例えば、信号生成部313は、ロボット1と物体OBJとの位置関係が所望位置関係となった時点で物体OBJに対して所定の処理を行うようにエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。尚、既に上述したように、エンドエフェクタ13の動作を制御するためのロボット制御信号は、エンドエフェクタ制御信号と称されてもよい。
 尚、信号生成部313は、ステップS3において生成された位置姿勢情報POI0を用いて、フィードバック制御の基でロボット制御信号を生成してもよい。尚、信号生成部313は、位置姿勢情報POI0を用いて、P(Proportional)制御の基でロボット制御信号を生成してもよい。尚、信号生成部313は、位置姿勢情報POI0を用いて、PI(Proportional-Integral)制御の基でロボット制御信号を生成してもよい。尚、信号生成部313は、位置姿勢情報POI0を用いて、PID(Proportional-Integral-Differential)制御の基でロボット制御信号を生成してもよい。
 一例として、図5(a)から図5(d)のそれぞれは、支持面S上を移動しているAGV(Automatic Guided Vehicle)などの載置装置T#1(つまり、物体OBJの一例)に載置されているワークW(つまり、物体OBJの他の一例)を保持するための保持処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、制御装置3は、保持処理の対象となるワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成し、生成した位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。例えば、図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を保持したまま移動する載置装置T#1から離れるようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。
 載置装置T#1に載置されていたワークWをロボット1がエンドエフェクタ13を用いて保持した場合には、ロボット1は、保持したワークWが載置装置T#1とは異なる載置装置T#2上に載置されるように、保持したワークWをリリースするリリース処理を行ってもよい。つまり、ロボット1は、保持処理及びリリース処理を続けて行うことで、ワークWを載置装置T#2上に配置するための配置処理(或いは、はめ込み処理)を行ってもよい。この場合、制御装置3は、リリース処理の対象となる載置装置T#2の位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成し、生成した位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。例えば、図6(a)から図6(d)のそれぞれは、支持面S上を移動している載置装置T#2上にワークWを配置するためのリリース処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図6(a)に示すように、信号生成部313は、ワークWを保持しているエンドエフェクタ13が、ワークWを保持したまま、移動する載置装置T#2の直上の空間に移動するようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図6(b)に示すように、信号生成部313は、移動する載置装置T#2の直上に位置し且つワークWを保持しているエンドエフェクタ13が、載置装置T#2の直上に位置し続け且つワークWを保持したまま、ワークWを載置装置T#2に配置することができるようになるまで載置装置T#2に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図6(c)に示すように、信号生成部313は、ワークWを載置装置T#2に配置することができる位置に位置するエンドエフェクタ13が、移動する載置装置T#2に追従しながら載置装置T#2にワークWを載置する(つまり、保持していたワークWをリリースする)ようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。図6(d)に示すように、信号生成部313は、ワークWを載置装置T#2に配置し終えたエンドエフェクタ13が、載置装置T#2から離れるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。
 リリース処理が行われる(特に、配置処理又ははめ込み処理を行うためにリリース処理が行われる)場合には、制御装置3は、リリース処理の第1の対象となる載置装置T#2の位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0に加えて、リリース処理の第2の対象となるワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を更に生成してもよい。つまり、制御装置3は、エンドエフェクタ13がワークWを保持する前に、エンドエフェクタ13によって未だ保持されていないワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成することに加えて、エンドエフェクタ13がワークWを保持した後に、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成してもよい。
 リリース処理が行われる場合には、リリース処理によってエンドエフェクタ13が保持していたワークWをリリースする前に、制御装置3は、載置装置T#2に関する位置姿勢情報POI0に加えて、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。つまり、制御装置3は、エンドエフェクタ13がワークWを保持している期間の少なくとも一部において、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。例えば、信号生成部313は、エンドエフェクタ13によって保持されているワークWを所望位置(例えば、ワークWをリリースするべき位置)に移動させるようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。この場合、ワークWに関する位置姿勢情報POI0が用いられない場合と比較して、ロボット1は、エンドエフェクタ13によって保持されているワークWを所望位置に適切に移動させることができる。なぜならば、エンドエフェクタ13によって保持されているワークWの位置が、制御装置3にとって既知の情報になるからである。また、例えば、信号生成部313は、エンドエフェクタ13によって保持されているワークWの姿勢を所望姿勢に変更するようにエンドエフェクタ13を制御するためのロボット制御信号を生成してもよい。この場合、ワークWに関する位置姿勢情報POI0が用いられない場合と比較して、ロボット1は、エンドエフェクタ13を用いて、所望の姿勢のワークWを載置装置Tに配置する又ははめ込むことができる。なぜならば、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方が、制御装置3にとって既知の情報になるからである。仮に、ワークWの姿勢が所望の姿勢ではない場合には、ワークWが載置装置Tに衝突してしまう可能性がある。しかるに、本実施形態では、ワークWの姿勢が所望の姿勢となるようにロボット1が制御可能となるがゆえに、ワークWが載置装置Tに衝突してしまう可能性はない又は低い。尚、リリース処理が行われる場合に限らず、エンドエフェクタ13がワークWを保持している任意の場面において、制御装置3は、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。
 図5(a)から図5(d)に示す載置装置T#1及び図6(a)から図6(d)に示す載置装置T#2の少なくとも一方は、必ずしも支持面S上を移動していなくてもよい。例えば、図7(a)から図7(b)のそれぞれは、支持面S上で静止している載置装置T#1に載置されているワークWを保持するための保持処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図7(a)に示すように、信号生成部313は、エンドエフェクタ13が、静止しているワークWを保持することができるようになるまでワークWに近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図7(b)に示すように、信号生成部313は、静止しているワークWを保持することができる位置に位置するエンドエフェクタ13が、ワークWを保持するようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。更に、図7(c)から図7(e)のそれぞれは、支持面S上で静止している載置装置T#2上にワークWを配置するためのリリース処理が行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図7(c)に示すように、信号生成部313は、ワークWを保持しているエンドエフェクタ13が、ワークWを保持したまま、静止している載置装置T#2にワークWを配置することができるようになるまで載置装置T#2に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。図7(d)に示すように、信号生成部313は、ワークWを載置装置T#2に配置することができる位置に位置するエンドエフェクタ13が、静止している載置装置T#2にワークWを載置する(つまり、保持していたワークWをリリースする)ようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。図7(e)に示すように、信号生成部313は、ワークWを載置装置T#2に配置し終えたエンドエフェクタ13が、載置装置T#2から離れるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。
 載置装置T#1上には、複数のワークWが載置されていてもよい。例えば、載置装置T#1上には、複数のワークWが載置装置T#1上で一定の基準で並ぶように、複数のワークWが載置されていてもよい。例えば、載置装置T#1上には、複数のワークWが載置装置T#1上でランダムに積み重ねられるように、複数のワークWが載置されていてもよい。この場合、ロボット1は、載置装置T#1上に載置されている複数のワークWのうちの所望の一つのワークWを選択的に保持するための保持処理を行ってもよい。特に、ロボット1は、載置装置T#1上に載置されている複数のワークWを一つずつ順に保持するための保持処理を行ってもよい。
 更に、ロボット1は、載置装置T#2上に複数のワークWを配置するためのリリース処理を行ってもよい。つまり、ロボット1は、保持処理とリリース処理とを行うことで、載置装置T#1上に載置されている複数のワークWを一つずつ順に載置装置T#2(或いは、さらにその他の載置装置)に配置するための配置処理を行ってもよい。この場合、ロボット1は、複数のワークWが載置装置T#2上で一定の基準で並ぶように、複数のワークWを一つずつ順に載置装置T#2に配置するリリース処理を行ってもよい。ロボット1は、複数のワークWが載置装置T#2上でランダムに積み重ねられるように、複数のワークWを一つずつ順に載置装置T#2に配置するリリース処理を行ってもよい。
 一例として、図8(a)から図8(e)及び図9(a)から図9(e)のそれぞれは、載置装置T#1に載置されている二つのワークW#1及びW#2を一つずつ順に保持するための保持処理と、二つのワークW#1及びW#2を一つずつ順に載置装置T#2に配置するためのリリース処理とが行われている期間中のある時点におけるロボット1とワークWとの位置関係を示す側面図である。この場合、図8(a)に示すように、信号生成部313は、エンドエフェクタ13が、ワークW#1及びW#2のいずれか一方(図8(a)に示す例では、ワークW#2)を保持することができるようになるまでワークW#2に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。その後、図8(b)に示すように、信号生成部313は、ワークW#2を保持することができる位置に位置するエンドエフェクタ13が、ワークW#2を保持するようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。その後、図8(c)に示すように、信号生成部313は、ワークW#2を保持しているエンドエフェクタ13が、ワークW#2を保持したまま、載置装置T#2にワークW#2を配置することができるようになるまで載置装置T#2に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。その後、図8(d)に示すように、信号生成部313は、ワークW#2を載置装置T#2に配置することができる位置に位置するエンドエフェクタ13が、載置装置T#2にワークW#2を載置する(つまり、保持していたワークW#2をリリースする)ようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。その後、図8(e)に示すように、信号生成部313は、ワークW#2を載置装置T#2に配置し終えたエンドエフェクタ13が、載置装置T#2から離れるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。その後、図9(a)に示すように、信号生成部313は、エンドエフェクタ13が、ワークW#1及びW#2の残りの一方(図9(a)に示す例では、ワークW#1)を保持することができるようになるまでワークW#1に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。その後、図9(b)に示すように、信号生成部313は、ワークW#1を保持することができる位置に位置するエンドエフェクタ13が、ワークW#1を保持するようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。その後、図9(c)に示すように、信号生成部313は、ワークW#1を保持しているエンドエフェクタ13が、ワークW#1を保持したまま、載置装置T#2にワークW#1を配置することができるようになるまで載置装置T#2に近づくようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。その後、図9(d)に示すように、信号生成部313は、ワークW#1を載置装置T#2に配置することができる位置に位置するエンドエフェクタ13が、載置装置T#2にワークW#1を載置する(つまり、保持していたワークW#1をリリースする)ようにロボットアーム12及びエンドエフェクタ13の動作を制御するためのロボット制御信号を生成してもよい。その後、図9(e)に示すように、信号生成部313は、ワークW#1を載置装置T#2に配置し終えたエンドエフェクタ13が、載置装置T#2から離れるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。
 ロボット1は、支持面S上で移動する載置装置T#1上に載置されている複数のワークWを一つずつ順に保持するための保持処理を行ってもよい。或いは、ロボット1は、支持面S上で静止している載置装置T#1上に載置されている複数のワークWを一つずつ順に保持するための保持処理を行ってもよい。ロボット1は、複数のワークWを一つずつ順に、支持面S上で移動する載置装置T#2に配置するリリース処理を行ってもよい。ロボット1は、複数のワークWを一つずつ順に、支持面S上で静止している載置装置T#2に配置するリリース処理を行ってもよい。
 再び図4において、信号生成部313は、通信装置33を用いて、ステップS4において生成されたロボット制御信号をロボット1(特に、ロボット制御装置14)に出力する。その結果、ロボット制御装置14は、ロボット制御信号に基づいて、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ13の動作の少なくとも一方を制御する。
 以降、制御装置3は、ロボット制御処理を終了すると判定されるまで、ステップS1からステップS4までの一連の処理を繰り返す(ステップS5)。つまり、制御装置3は、ロボット制御信号に基づいてロボットアーム12及びエンドエフェクタ13の少なくとも一方の動作が制御されている期間中も、撮像装置21及び22から画像データIMG_2D及びIMG_3Dをそれぞれ取得し続ける。
 この場合、上述したようにロボット制御信号に基づいてロボットアーム12及びエンドエフェクタ13の少なくとも一方の動作が制御されているがゆえに、撮像装置21及び22のそれぞれは、物体OBJと撮像装置21及び22との相対移動中に、物体OBJを撮像してもよい。例えば、撮像装置21及び22のそれぞれは、物体OBJが静止している一方で撮像装置21及び22が移動している間に、物体OBJを撮像してもよい。例えば、撮像装置21及び22のそれぞれは、物体OBJが移動している一方で撮像装置21及び22が静止している間に、物体OBJを撮像してもよい。例えば、撮像装置21及び22のそれぞれは、物体OBJが移動し且つ撮像装置21及び22が移動している間に、物体OBJを撮像してもよい。つまり、制御装置3は、物体OBJと撮像装置21及び22との相対移動中に(つまり、撮像装置21及び22並びに物体OBJの少なくとも一つが移動している間に)、図4に示すロボット制御処理を行い続けてもよい。その結果、制御装置3は、ロボット制御信号に基づいてロボット1の動作が制御されている期間中も、新たに取得した画像データIMG_2D及びIMG_3Dに基づいて物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を新たに生成する(つまり、更新する)ことができる。
 但し、撮像装置21及び22のそれぞれは、物体OBJが静止し且つ撮像装置21及び22が静止している間に、物体OBJを撮像してもよい。制御装置3は、撮像装置21及び22並びに物体OBJが静止している間に、図4に示すロボット制御処理を行ってもよい。
 尚、位置姿勢算出部312は、ステップS3でグローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出しなくてもよい。つまり、位置姿勢算出部312は、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成しなくてもよい。例えば、位置姿勢算出部312は、ステップS3でグローバル座標系とは異なる座標系内(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は、共通座標系内)での物体OBJの位置及び姿勢の少なくとも一方を算出してもよい。つまり、位置姿勢算出部312は、グローバル座標系とは異なる座標系内(例えば、後述の2D撮像座標系内、3D撮像座標系内、又は、共通座標系内)における物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成してもよい。この場合、信号生成部313は、ステップS4で、ステップS3において算出されたグローバル座標系とは異なる座標系における物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を用いて、ロボット制御信号を生成してもよい。
 (2-2)物体OBJの位置及び姿勢の少なくとも一方を算出するための処理(つまり、位置姿勢情報POI0を生成するための処理)の詳細
 続いて、図4のステップS3において物体OBJの位置及び姿勢の少なくとも一方を算出するための処理(つまり、位置姿勢情報POI0を生成するための処理)の詳細について説明する。尚、以下の説明では、一例として、物体OBJの位置及び姿勢の双方を算出する(つまり、物体OBJの位置及び姿勢の双方を示す位置姿勢情報POI0を生成する)ための処理の詳細について説明する。但し、位置姿勢算出部312は、物体OBJの位置及び姿勢の双方を算出するための処理と同様の動作を行うことで、物体OBJの位置及び姿勢の少なくとも一方を算出してもよい。
 本実施形態では、位置姿勢算出部312は、画像データIMG_2D及び三次元位置データWSDを用いたマッチング処理と、画像データIMG_2D及び三次元位置データWSDを用いたトラッキング処理とを行うことで、物体OBJの位置及び姿勢を算出する。以降、図10を参照しながら、マッチング処理及びトラッキング処理を行うことで物体OBJの位置及び姿勢を算出する処理について説明する。図10は、マッチング処理及びトラッキング処理を行うことで物体OBJの位置及び姿勢を算出するための論理的な処理ブロックを示すブロック図である。
 図10に示すように、位置姿勢算出部312は、2Dマッチング部3121と、3Dマッチング部3122と、トラッキング部3123と、座標変換部3125とを含んでいる。2Dマッチング部3121は、マッチング処理の一例である2Dマッチング処理を行う。3Dマッチング部3122は、マッチング処理の一例である3Dマッチング処理を行う。トラッキング部3123は、トラッキング処理を行う。座標変換部3125は、マッチング処理及びトラッキング処理の結果に基づいて、グローバル座標系における物体OBJの位置及び姿勢を算出する位置姿勢算出処理を行う。このため、以下では、2Dマッチング処理、3Dマッチング処理、トラッキング処理及び位置算出処理について順に説明する。
 (2-2-1)2Dマッチング部3121が行う2Dマッチング処理
 2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系における物体OBJの位置及び姿勢を算出する。つまり、2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI1を生成する。2D撮像座標系は、撮像装置21の座標系である。例えば、2D撮像座標系は、撮像装置21を基準とする座標系である。尚、2D撮像座標系が撮像装置21の座標系であるがゆえに、位置姿勢情報POI1は、撮像装置21に対する物体OBJの位置及び姿勢を示しているとみなしてもよい。位置姿勢情報POI1は、撮像装置21から見た物体OBJの位置及び姿勢を示しているとみなしてもよい。
 2D撮像座標系は、互いに直交するX軸(2D)、Y軸(2D)及びZ軸(2D)で規定される座標系である。X軸(2D)、Y軸(2D)及びZ軸(2D)のうちの少なくとも一つは、撮像装置21が備える光学系(特に、対物レンズ等の終端光学素子)の光軸AX21(図2参照)に沿った軸であってもよい。尚、光軸AX21は、撮像装置21の光軸であるとみなしてもよい。以下の説明では、Z軸(2D)が、撮像装置21が備える光学系の光軸に沿った軸である例について説明する。
 2Dマッチング部3121は、2Dマッチング処理として、画像データIMG_2Dを用いたマッチング処理を行う。画像データIMG_2Dを用いたマッチング処理は、画像データIMG_2Dと二次元モデルデータIMG_2Mとを用いたマッチング処理である。
 二次元モデルデータIMG_2Mは、物体OBJの二次元モデルWM2を示すデータである。二次元モデルデータIMG_2Mは、物体OBJの基準となる二次元形状を有する二次元モデルWM2を示すデータである。本実施形態では、二次元モデルデータIMG_2Mは、物体OBJの基準となる二次元画像を示す画像データである。より具体的には、二次元モデルデータIMG_2Mは、物体OBJの二次元モデルWM2を含む二次元画像を示す画像データである。二次元モデルデータIMG_2Mは、物体OBJの基準となる二次元形状を有する二次元モデルWM2を含む二次元画像を示す画像データである。
 二次元モデルデータIMG_2Mは、例えば、物体OBJの三次元モデルWM3を、複数の異なる方向から、複数の異なるそれぞれの方向に直交する仮想平面に仮想的に投影することでそれぞれ生成される複数の物体OBJの二次元モデルWM2を示す二次元画像データであってもよい。物体OBJの三次元モデルWM3は、物体OBJの基準となる三次元形状を有する三次元モデルである。物体OBJの三次元モデルWM3の一例として、物体OBJのCAD(Computer Aided Design)モデルがあげられる。物体OBJの三次元モデルWM3の他の一例として、実際の物体OBJを事前に計測することによって得られた物体OBJの三次元形状と同じ形状を有する三次元モデルがあげられる。三次元モデルWM3は、投影装置23からの投影パターンが投影されている物体OBJを撮像装置22で撮像することによって生成された画像データIMG_3Dに基づいて、三次元位置データ生成部311が事前に生成してもよい。或いは、三次元モデルWM3は、ロボットシステムSYSとは異なる周知の三次元形状計測装置を用いて事前に生成されてもよい。尚、事前に形状計測される実際の物体OBJは、基準又は良品の物体OBJであってもよい。
 二次元モデルデータIMG_2Mは、実際の物体OBJを事前に撮像することで生成される二次元画像を示す画像データであってもよい。この場合、二次元モデルデータIMG_2Mは、実際の物体OBJを複数の異なる撮影方向から撮像することでそれぞれ生成される複数の二次元画像を示す画像データであってもよい。この場合、撮像装置21が物体OBJを撮像することで生成される画像データIMG_2Dが、二次元モデルデータIMG_2Mとして用いられてもよい。或いは、ロボットシステムSYSとは異なる任意の撮像装置が物体OBJを撮像することで生成される画像データが、二次元モデルデータIMG_2Mとして用いられてもよい。二次元モデルデータIMG_2Mとしての画像データIMG_2Dが示す二次元画像に写り込んでいる物体OBJは、物体OBJの二次元モデルWM2と称されてもよい。尚、事前に撮像する実際の物体OBJは、基準又は良品の物体OBJであってもよい。
 2Dマッチング部3121は、図11に示すように、画像データIMG_2Dが示す画像に対して、二次元モデルデータIMG_2Mが示す二次元画像をテンプレート画像として用いるマッチング処理を行ってもよい。具体的には、2Dマッチング部3121は、マッチング処理として、画像データIMG_2Dが示す画像内で、テンプレート画像が示す物体OBJを検出する物体検出処理を行ってもよい。言い換えれば、2Dマッチング部3121は、マッチング処理として、画像データIMG_2Dが示す画像内でテンプレート画像と類似する類似画像部分を検出することで、画像データIMG_2Dが示す画像内で物体OBJを検出する物体検出処理を行ってもよい。尚、2Dマッチング処理(この場合、物体検出処理)そのものは、既存のマッチング処理と同一であってもよい。例えば、2Dマッチング部3121は、SIFT(Scale-Invariant Feature Transform)やSURF(Speed-Upped Robust Feature)などの周知の方法を用いて、2Dマッチング処理を行ってもよい。
 2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の全体における特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)が、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの全体における特徴箇所に近づく(典型的には、一致する)ように、一のテンプレート画像から投影方向又は撮像方向が異なる他のテンプレート画像への変更、及びテンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の平行移動、拡大、縮小及び/又は回転の少なくとも一方を行ってもよい。つまり、2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2全体における特徴箇所が、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの全体における特徴箇所に近づく(典型的には、一致する)ように、二次元モデルデータIMG_2Mの座標系(例えば、CADモデルの座標系)と、物体OBJを撮像(画像データIMG_2Dを生成)した撮像装置21の2D撮像座標系との位置関係を変更してもよい。その結果、2Dマッチング部3121は、二次元モデルデータIMG_2Mの座標系と2D撮像座標系との位置関係を特定することができる。その後、2Dマッチング部3121は、二次元モデルデータIMG_2Mの座標系と2D撮像座標系との位置関係に基づいて、二次元モデルデータIMG_2Mの座標系における物体OBJの位置及び姿勢から、2D撮像座標系における物体OBJの位置及び姿勢を算出してもよい。
 2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の全体における特徴箇所が、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの全体における特徴箇所に近づける際に、テンプレート画像(つまり、物体OBJの二次元モデルWM2)と画像データIMG_2Dが示す画像(特に、テンプレート画像の物体OBJが合わせ込まれている画像部分)との類似度であるマッチング類似度を算出してもよい。2Dマッチング部3121は、マッチング類似度が最大となるように、一のテンプレート画像から投影方向又は撮像方向が異なる他のテンプレート画像への変更、及びテンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の平行移動、拡大、縮小及び/又は回転の少なくとも一方を行ってもよい。その結果、マッチング類似度が最大となる状況下で画像データIMG_2Dが示す画像のうちのテンプレート画像の物体OBJの二次元モデルWM2が合わせ込まれている画像部分が、画像データIMG_2Dが示す画像内でテンプレート画像と類似する類似画像部分として検出される。つまり、類似画像部分が示す物体OBJが検出される。尚、マッチング類似度は、テンプレート画像と画像データIMG_2Dが示す画像との相関を示す相関度と等価であるとみなしてもよい。尚、相関度は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2と画像データIMG_2Dが示す画像に写り込んでいる物体OBJとの相関を示す指標ともいえる。尚、マッチング類似度は、マッチングスコアと称されてもよい。
 尚、2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の一部における特徴箇所が、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの一部における特徴箇所に近づく(典型的には、一致する)ように、二次元モデルデータIMG_2Mの座標系(例えば、CADモデルの座標系)と、物体OBJを撮像した撮像装置21の2D撮像座標系との位置関係を変更してもよい。この場合であっても、2Dマッチング部3121は、マッチング類似度を算出してもよい。
 二次元モデルWM2の一部における特徴箇所を画像データIMG_2Dが示す画像に写り込んでいる物体OBJの一部における特徴箇所に近づけるように2Dマッチング処理を行う場面の一例として、物体OBJが撮像装置21に近づくと物体OBJの一部が撮像装置21の撮像範囲(視野)から外れるほどに物体OBJが大きいという場面があげられる。具体的には、物体OBJが大きい場合には、物体OBJと撮像装置21との間の距離が短くなればなるほど(つまり、物体OBJが撮像装置21に近づくほど)、物体OBJの全体に対する、撮像装置21の撮像範囲(視野)内に位置する物体OBJの一部が占める割合が減る。つまり、物体OBJの全体に対する、画像データIMG_2Dが示す画像に実際に写り込んでいる物体OBJの一部が占める割合が減る。このような状況下で二次元モデルWM2の全体を用いて2Dマッチング処理が行われると、2Dマッチング処理が失敗する可能性が高くなる。尚、ここで言う「2Dマッチング処理が失敗する」状態は、画像データIMG_2Dが示す画像に物体OBJが写り込んでいるにも関わらず、画像データIMG_2Dが示す画像内でテンプレート画像が示す物体OBJを検出することができない状態を意味していてもよい。具体的には、画像データIMG_2Dが示す画像に実際に写り込んでいる物体OBJの一部が占める割合が減るほど、2Dマッチング処理が失敗する可能性が高くなる。なぜならば、画像データIMG_2Dが示す画像に物体OBJの一部しか写り込んでいないにも関わらず、物体OBJの二次元モデルWM2の全体を用いて2Dマッチング処理が行われるからである。従って、この場合には、2Dマッチング部3121は、撮像装置21の撮像範囲(視野)に含まれている物体OBJの一部に対応する二次元モデルWM2の一部を用いて、2Dマッチング処理が行ってもよい。その結果、物体が大きい場合であっても、2Dマッチング部3121は、画像データIMG_2Dが示す画像内でテンプレート画像が示す物体OBJを検出することができる。
 二次元モデルWM2の一部を用いて2Dマッチング処理が行われる場合には、投影方向又は撮像方向が異なる各テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の一部が、2Dマッチング処理に用いられる二次元モデルWM2の一部として事前に指定(言い換えれば、選択)されていてもよい。例えば、物体OBJが撮像装置21に近づくと物体OBJの一部が撮像装置21の撮像範囲(視野)から外れるほどに物体OBJが大きい場合には、撮像装置21の撮像範囲(視野)に含まれると想定される物体OBJの一部に対応する二次元モデルWM2の一部が、2Dマッチング処理に用いられる二次元モデルWM2の一部として事前に指定されていてもよい。
 或いは、2Dマッチング処理に用いられる二次元モデルWM2の一部は、2Dマッチング処理が行われている間に指定(言い換えれば、選択)されてもよい。つまり、2Dマッチング処理に用いられる二次元モデルWM2の一の範囲は、2Dマッチング処理が行われている間に変更されてもよい。例えば、物体OBJと撮像装置21との間の距離が短くなればなるほど、物体OBJの全体に対する撮像装置21の撮像範囲(視野)内に位置する物体OBJの一部が占める割合が減ることを考慮すれば、物体OBJと撮像装置21との間の距離に応じて、2Dマッチング処理に用いられる二次元モデルWM2の一部の範囲が変更されてもよい。例えば、物体OBJと撮像装置21との間の距離が短くなるほど2Dマッチング処理に用いられる二次元モデルWM2の一部の範囲が小さくなる(言い換えれば、狭くなる)ように、2Dマッチング処理に用いられる二次元モデルWM2の一部が指定されてもよい。
 2Dマッチング処理に用いられる二次元モデルWM2の一部として、二次元モデルWM2の単一部分が指定されてもよい。或いは、2Dマッチング処理に用いられる二次元モデルWM2の一部として、二次元モデルWM2の複数部分が指定されてもよい。例えば、それぞれが二次元モデルWM2の特徴箇所として利用可能な二次元モデルWM2の複数部分が、2Dマッチング処理に用いられる二次元モデルWM2の一部として指定されてもよい。この場合、二次元モデルWM2の単一部分が2Dマッチング処理に用いられる二次元モデルWM2の一部として指定される場合と比較して、2Dマッチング処理の精度の向上が期待できる。つまり、画像データIMG_2Dが示す画像内でテンプレート画像が示す物体OBJが検出できる可能性が高くなる。
 2Dマッチング処理に用いられる二次元モデルWM2の一部の指定は、ロボットシステムSYSのユーザによって行われてもよい。例えば、ユーザは、不図示のディスプレイに表示された二次元モデルWM2の一部を指定してもよい。例えば、ユーザは、撮像装置21の撮像範囲(視野)に含まれると想定される物体OBJの一部を推定し、推定した物体OBJの一部に対応する二次元モデルWM2の一部を指定してもよい。或いは、2Dマッチング処理に用いられる二次元モデルWM2の一部の指定は、制御装置3によって自動的に行われてもよい。例えば、制御装置3は、撮像装置21の撮像範囲(視野)に含まれると想定される物体OBJの一部を推定し、推定した物体OBJの一部に対応する二次元モデルWM2の一部を指定してもよい。この場合、制御装置3は、例えば、物体OBJと撮像装置21との相対移動の方向(或いは、ロボット1が物体OBJに近づく方向)、物体OBJと撮像装置21との間の距離(或いは、ロボット1と物体OBJとの間の距離)及び撮像装置21の撮像範囲(視野)のうちの少なくとも一つに関する情報に基づいて、撮像装置21の撮像範囲(視野)に含まれると想定される物体OBJの一部を推定してもよい。
 画像データIMG_2Dが示す画像によっては、当該画像内に、テンプレート画像が示す物体OBJが複数写り込んでいる可能性がある。この場合、2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの二次元モデルWM2の特徴箇所を、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの特徴箇所に近づける処理を、画像データIMG_2Dが示す画像に写り込んでいる複数の物体OBJを対象に順に行ってもよい。その後、2Dマッチング部3121は、画像データIMG_2Dが示す画像に写り込んでいる複数の物体OBJのうちのマッチング類似度が最大となる一の物体OBJを、以降の処理の対象として選択してもよい。或いは、2Dマッチング部3121は、画像データIMG_2Dが示す画像に写り込んでいる複数の物体OBJのうちのマッチング類似度がマッチング判定閾値を上回る一の物体OBJを、以降の処理の対象として選択してもよい。
 尚、マッチング判定閾値は、後述する第1変形例でも説明するように、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が所定の処理を行うべき物体OBJと同一である状態と、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が所定の処理を行うべき物体OBJと異なる状態とを、マッチング類似度から適切に区別することが可能な適切な値に設定されていてもよい。つまり、マッチング判定閾値は、2Dマッチング処理によって検出された物体OBJが、テンプレート画像に写り込んでいる物体OBJと同一である状態と、2Dマッチング処理によって検出された物体OBJが、テンプレート画像に写り込んでいる物体OBJと異なる状態とを、マッチング類似度から適切に区別することが可能な適切な値に設定されていてもよい。
 尚、物体OBJの位置及び姿勢を算出する方法は、上述の画像データIMG_2Dを用いたマッチング処理に限られない。2Dマッチング部3121は、画像データIMG_2Dを用いて物体OBJの位置及び姿勢を算出する他の周知の方法を用いて、物体OBJの位置及び姿勢を算出してもよい。物体OBJの位置及び姿勢を算出する方法は、二次元モデルデータIMG_2Mを用いずに画像データIMG_2Dに基づいて物体OBJの位置及び姿勢を算出する周知の方法であってもよいし、二次元モデルデータIMG_2Mとは異なるデータと画像データIMG_2Dとを用いて物体OBJの位置及び姿勢を算出する周知の方法であってもよい。例えば、物体OBJの位置及び姿勢を算出する方法は、機械学習又は深層学習によって、画像データIMG_2Dに基づいて物体OBJの位置及び姿勢を算出する方法であってもよい。この場合、機械学習又は深層学習によって、画像データIMG_2Dを入力すると物体OBJの位置及び姿勢を出力するための予測モデルを予め構築し、この予測モデルに画像データIMG_2Dを入力することによって物体OBJの位置及び姿勢を算出してもよい。この予測モデルは、2Dマッチング部3121に記憶されていてもよい。尚、2Dマッチング部3121は、記憶装置32に記憶されたこの予測モデルを読み出してもよい。
 2Dマッチング部3121は、2D撮像座標系における物体OBJの位置として、X軸(2D)と平行なX軸方向(2D)における物体OBJの位置Tx(2D)、Y軸(2D)と平行なY軸方向(2D)における物体OBJの位置Ty(2D)及びZ軸(2D)と平行なZ軸方向(2D)における物体OBJの位置Tz(2D)のうちの少なくとも一つを算出してもよい。2Dマッチング部3121は、2D撮像座標系における物体OBJの姿勢として、X軸(2D)周りの物体OBJの回転量Rx(2D)、Y軸(2D)周りの物体OBJの回転量Ry(2D)及びZ軸(2D)周りの物体OBJの回転量Rz(2D)のうちの少なくとも一つを算出してもよい。
 尚、上述した回転量Rx、Ry及びRzと同様に、以下の説明では、用語の統一を図るために、X軸(2D)周りの物体OBJの回転量Rx(2D)、Y軸(2D)周りの物体OBJの回転量Ry(2D)及びZ軸(2D)周りの物体OBJの回転量Rz(2D)を、それぞれ、X軸(2D)周りの物体OBJの姿勢Rx(2D)、Y軸(2D)周りの物体OBJの姿勢Ry(2D)及びZ軸(2D)周りの物体OBJの姿勢Rz(2D)と称する。
 また、X軸(2D)周りの物体OBJの姿勢Rx(2D)、Y軸(2D)周りの物体OBJの姿勢Ry(2D)及びZ軸(2D)周りの物体OBJの姿勢Rz(2D)は、それぞれ、X軸(2D)周りの回転方向における物体OBJの位置、Y軸(2D)周りの回転方向における物体OBJの位置及びZ軸(2D)周りの回転方向における物体OBJの位置を示しているとみなしてもよい。つまり、X軸(2D)周りの物体OBJの姿勢Rx(2D)、Y軸(2D)周りの物体OBJの姿勢Ry(2D)及びZ軸(2D)周りの物体OBJの姿勢Rz(2D)は、いずれも、物体OBJの位置を表すパラメータであるとみなしてもよい。
 2Dマッチング部3121は、位置姿勢情報POI1を生成する都度、生成した位置姿勢情報POI1を3Dマッチング部3122に出力する。一例として、2Dマッチング部3121は、6DOF(Degree Of Freedom)の位置及び姿勢の全て(つまり、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rz(2D))を算出し、算出した6DOFの位置及び姿勢を示す位置姿勢情報POI1を、3Dマッチング部3122に出力してもよい。他の一例として、2Dマッチング部3121は、6DOFの位置及び姿勢を算出し、算出した6DOFの位置及び姿勢のうちの一部(つまり、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rz(2D)の一部)を示す位置姿勢情報POI1を、3Dマッチング部3122に出力してもよい。他の一例として、2Dマッチング部3121は、6DOFの位置及び姿勢の一部を算出し、算出した6DOFの位置及び姿勢の一部を示す位置姿勢情報POI1を、3Dマッチング部3122に出力してもよい。
 尚、以下の説明では、説明の便宜上、図10に示すように、2Dマッチング部3121が、物体OBJの位置及び姿勢として、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rx(2D)を算出する例について説明する。つまり、以下の説明では、説明の便宜上、図10に示すように、2Dマッチング部3121が、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rx(2D)を示す位置姿勢情報POI1を生成し且つ3Dマッチング部3122に出力する例について説明する。
 2Dマッチング部3121は、所定の2Dマッチング周期で、物体OBJの位置及び姿勢を算出してもよい。つまり、2Dマッチング部3121は、2Dマッチング周期に相当する時間が経過する都度、物体OBJの位置及び姿勢を算出してもよい。逆に言えば、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでに、2Dマッチング周期に相当する時間が必要であるとみなしてもよい。この場合、2Dマッチング部3121は、所定の2Dマッチング周期で、物体OBJの位置及び姿勢を示す位置姿勢情報POI1を3Dマッチング部3122に出力してもよい。
 図12に示すように、2Dマッチング周期は、撮像装置21が物体OBJを撮像する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マッチング処理を新たに開始してもよい。尚、2Dマッチング部3121は、開始済みの2Dマッチング処理を完了しない場合であっても、撮像装置21が新たな画像データIMG_2Dを生成した場合には、撮像装置21が新たに生成した画像データIMG_2Dを用いた2Dマッチング処理を新たに開始してもよい。尚、図12に示す画像データIMG_2Dを生成するタイミングは、画像データIMG_2Dを生成するために撮像装置21が物体OBJを撮像するタイミングであるとみなしてもよい。
 但し、2Dマッチング周期は、2D撮像周期よりも長くなくてもよい。例えば、2Dマッチング周期は、2D撮像周期よりも短くてもよい。例えば、2Dマッチング周期は、2D撮像周期と同じであってもよい。
 (2-2-2)3Dマッチング部3122が行う3Dマッチング処理
 3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系における物体OBJの位置及び姿勢を算出する。つまり、3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2を生成する。3D撮像座標系は、撮像装置22の座標系である。例えば、3D撮像座標系は、撮像装置22を基準とする座標系である。尚、3D撮像座標系が撮像装置22を基準とする座標系であるがゆえに、位置姿勢情報POI2は、撮像装置22に対する物体OBJの位置及び姿勢を示しているとみなしてもよい。位置姿勢情報POI2は、撮像装置22から見た物体OBJの位置及び姿勢を示しているとみなしてもよい。
 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マッチング処理の少なくとも一部として、三次元位置データWSDを用いたマッチング処理を行う。つまり、3Dマッチング部3122は、三次元位置データWSDを用いたマッチング処理を含む3Dマッチング処理を行う。三次元位置データWSDを用いたマッチング処理は、三次元位置データWSDと三次元モデルデータWMDとを用いたマッチング処理である。
 三次元モデルデータWMDは、物体OBJの三次元モデルWM3を示すデータである。つまり、三次元モデルデータWMDは、物体OBJの基準となる三次元形状を有する三次元モデルWM3を示すデータである。三次元モデルWM3は、物体OBJの三次元モデルWM3の一例である物体OBJのCADモデルであってもよい。三次元モデルWM3は、実際の物体OBJの三次元形状を事前に計測することによって得られた物体OBJの三次元形状と同様の形状を有する三次元モデルであってもよい。この場合、三次元モデルデータWMDは、投影装置23からの投影パターンが投影されている物体OBJを撮像装置22で撮像することによって生成された画像データIMG_3Dに基づいて、三次元位置データ生成部311が事前に生成してもよい。或いは、三次元モデルデータWMDは、ロボットシステムSYSとは異なる周知の三次元形状計測装置を用いた形状計測によって事前に生成されてもよい。この場合、三次元モデルデータWMDは、物体OBJの三次元モデルWM3を示す深度画像データであってもよい。三次元モデルデータWMDは、物体OBJの三次元モデルWM3を示す点群データであってもよい。尚、三次元モデルデータWMDの生成のために事前に撮像又計測する実際の物体OBJは、基準又は良品の物体OBJであってもよい。
 3Dマッチング部3122は、図13に示すように、三次元位置データWSDに対して、三次元モデルデータWMDが示す三次元モデルWM3をテンプレートモデルとして用いるマッチング処理を行ってもよい。尚、三次元位置データWSDを用いたマッチング処理そのものは、既存のマッチング処理と同一であってもよい。例えば、3Dマッチング部3122は、RANSAC(Random Sample Consensus)、SIFT(Scale-Invariant Feature Transform)、ICP(Iterative Closest Point)、及びDSO(Direct Sparse Odometry)の少なくとも一つを含む周知の方法を用いて、三次元位置データWSDを用いたマッチング処理を行ってもよい。このため、三次元位置データWSDを用いたマッチング処理の詳細な説明は省略するが、以下にその概要を説明する。
 例えば、3Dマッチング部3122は、三次元モデルデータWMDが示す三次元モデルWM3の全体における特徴箇所が、三次元位置データWSDが三次元位置を示す物体OBJの全体における特徴箇所に近づく(典型的には、一致する)ように、3D撮像座標系内において、三次元モデルデータWMDが示す三次元モデルWM3を平行移動、拡大、縮小及び/又は回転させてもよい。つまり、3Dマッチング部3122は、三次元位置データWSDが三次元位置を示す物体OBJの全体における特徴箇所が、三次元モデルデータWMDが示す三次元モデルWM3の全体における特徴箇所に近づく(典型的には、一致する)ように、三次元モデルデータWMDの座標系(例えば、CADモデルの座標系)と、3D撮像座標系との位置関係を変更してもよい。その結果、3Dマッチング部3122は、三次元モデルデータWMDの座標系と3D撮像座標系との位置関係を特定することができる。その後、3Dマッチング部3122は、三次元モデルデータWMDの座標系と3D撮像座標系との位置関係に基づいて、三次元モデルデータWMDの座標系における三次元モデルWM3の位置及び姿勢から、3D撮像座標系における物体OBJの位置及び姿勢を算出してもよい。尚、三次元モデルデータWMDの座標系は、三次元モデルデータWMDが示す三次元モデルWM3の座標系と称されてもよい。
 尚、3Dマッチング部3122は、三次元モデルデータWMDが示す三次元モデルWM3の一部における特徴箇所が、三次元位置データWSDが三次元位置を示す物体OBJの一部における特徴箇所に近づく(典型的には、一致する)ように、三次元モデルデータWMDの座標系(例えば、CADモデルの座標系)と、物体OBJを撮像した撮像装置22の3D撮像座標系との位置関係を変更してもよい。
 三次元モデルWM3の一部における特徴箇所を三次元位置データWSDが三次元位置を示す物体OBJの一部における特徴箇所に近づけるように3Dマッチング処理を行う場面の一例として、物体OBJが撮像装置22に近づくと物体OBJの一部が撮像装置22の撮像範囲(視野)から外れるほどに物体OBJが大きい場面があげられる。具体的には、物体OBJが大きい場合には、物体OBJと撮像装置22との間の距離が短くなればなるほど(つまり、物体OBJが撮像装置22に近づくほど)、物体OBJの全体に対する、撮像装置22の撮像範囲(視野)内に位置する物体OBJの一部が占める割合が減る。つまり、物体OBJの全体に対する、画像データIMG_3Dが示す画像に実際に写り込んでいる物体OBJの一部が占める割合が減る。したがって、物体OBJ全体に対する、画像データIMG_3Dから生成される三次元位置データWSDが三次元位置を示す物体OBJの一部が占める割合が減る。このような状況下で三次元モデルWM3の全体を用いて3Dマッチング処理が行われると、3Dマッチング処理が失敗する可能性が高くなる。尚、ここで言う「3Dマッチング処理が失敗する」状態は、三次元位置データWSDに物体OBJの三次元位置データが含まれているにも関わらず、三次元位置データWSDから三次元モデルWM3が示す物体OBJを検出することができない状態を意味していてもよい。具体的には、画像データIMG_3Dが示す画像に実際に写り込んでいる物体OBJの一部が占める割合が減るほど(つまり、画像データIMG_3Dから生成される三次元位置データWSDが三次元位置を示す物体OBJの一部が占める割合が減るほど)、3Dマッチング処理が失敗する可能性が高くなる。なぜならば、画像データIMG_3Dが示す画像に物体OBJの一部しか写り込んでいないにも関わらず、物体OBJの三次元モデルWM3の全体を用いて3Dマッチング処理が行われるからである。従って、この場合には、3Dマッチング部3122は、撮像装置22の撮像範囲(視野)に含まれている物体OBJの一部(三次元位置データWSDが三次元位置を示す物体OBJの一部)に対応する三次元モデルWM3の一部を用いて、3Dマッチング処理が行ってもよい。その結果、物体が大きい場合であっても、3Dマッチング部3122は、三次元位置データWSDから三次元モデルWM3が示す物体OBJを検出することができる。
 三次元モデルWM3の一部を用いて3Dマッチング処理が行われる場合には、物体OBJの三次元モデルWM3の一部が、3Dマッチング処理に用いられる三次元モデルWM3の一部として事前に指定(言い換えれば、選択)されていてもよい。例えば、物体OBJが撮像装置22に近づくと物体OBJの一部が撮像装置22の撮像範囲(視野)から外れるほどに物体OBJが大きい場合には、撮像装置22の撮像範囲(視野)に含まれると想定される物体OBJの一部に対応する三次元モデルWM3の一部が、3Dマッチング処理に用いられる三次元モデルWM3の一部として事前に指定されていてもよい。
 或いは、3Dマッチング処理に用いられる三次元モデルWM3の一部は、3Dマッチング処理が行われている間に指定(言い換えれば、選択)されてもよい。つまり、3Dマッチング処理に用いられる三次元モデルWM3の一の範囲は、3Dマッチング処理が行われている間に変更されてもよい。例えば、物体OBJと撮像装置22との間の距離が短くなればなるほど、物体OBJの全体に対する撮像装置22の撮像範囲(視野)内に位置する物体OBJの一部が占める割合が減ることを考慮すれば、物体OBJと撮像装置22との間の距離に応じて、3Dマッチング処理に用いられる三次元モデルWM3の一部の範囲が変更されてもよい。例えば、物体OBJと撮像装置22との間の距離が短くなるほど3Dマッチング処理に用いられる三次元モデルWM3の一部の範囲が小さくなる(言い換えれば、狭くなる)ように、3Dマッチング処理に用いられる三次元モデルWM3の一部が指定されてもよい。
 3Dマッチング処理に用いられる三次元モデルWM3の一部として、三次元モデルWM3の単一部分が指定されてもよい。或いは、3Dマッチング処理に用いられる三次元モデルWM3の一部として、三次元モデルWM3の複数部分が指定されてもよい。例えば、それぞれが三次元モデルWM3の特徴箇所として利用可能な三次元モデルWM3の複数部分が、3Dマッチング処理に用いられる三次元モデルWM3の一部として指定されてもよい。この場合、三次元モデルWM3の単一部分が3Dマッチング処理に用いられる三次元モデルWM3の一部として指定される場合と比較して、3Dマッチング処理の精度の向上が期待できる。つまり、画像データIMG_3Dから生成される三次元位置データWSDが三次元位置を示す物体OBJが検出できる可能性が高くなる。
 3Dマッチング処理に用いられる三次元モデルWM3の一部の指定は、ロボットシステムSYSのユーザによって行われてもよい。例えば、ユーザは、不図示のディスプレイに表示された三次元モデルWM3の一部を指定してもよい。例えば、ユーザは、撮像装置22の撮像範囲(視野)に含まれると想定される物体OBJの一部を推定し、推定した物体OBJの一部に対応する三次元モデルWM3の一部を指定してもよい。或いは、3Dマッチング処理に用いられる三次元モデルWM3の一部の指定は、制御装置3によって自動的に行われてもよい。例えば、制御装置3は、撮像装置22の撮像範囲(視野)に含まれると想定される物体OBJの一部(画像データIMG_3Dから生成されると想定される三次元位置データWSDが三次元位置を示す物体OBJの一部)を推定し、推定した物体OBJの一部に対応する三次元モデルWM3の一部を指定してもよい。この場合、制御装置3は、例えば、物体OBJと撮像装置22との相対移動の方向(或いは、ロボット1が物体OBJに近づく方向)、物体OBJと撮像装置22との間の距離(或いは、ロボット1と物体OBJとの間の距離)及び撮像装置22の撮像範囲(視野)のうちの少なくとも一つに関する情報に基づいて、撮像装置22の撮像範囲(視野)に含まれると想定される物体OBJの一部を推定してもよい。
 本実施形態では特に、三次元モデルデータWMDが示す三次元モデルWM3の特徴箇所を三次元位置データWSDが示す物体OBJの特徴箇所に近づける処理(つまり、三次元位置データWSDを用いたマッチング処理)を開始する前に、3Dマッチング部3122は、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定する。つまり、3Dマッチング部3122は、三次元位置データWSDを用いたマッチング処理を開始する前に、3Dマッチング処理の少なくとも一部として、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定する位置姿勢決定処理を行う。このため、本実施形態では、3Dマッチング部3122が行う3Dマッチング処理は、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定する位置姿勢決定処理と、三次元位置データWSDを用いたマッチング処理とを含んでいてもよい。
 但し、3Dマッチング処理は、三次元位置データWSDを用いたマッチング処理を含む一方で、位置姿勢決定処理を含んでいなくてもよい。この場合、3Dマッチング部3122は、3Dマッチング処理とは別の処理として、位置姿勢決定処理を行ってもよい。或いは、3Dマッチング部3122とは異なる処理ブロック又は装置が、位置姿勢決定処理を行ってもよい。
 本実施形態では特に、上述したように、3Dマッチング処理は、3D撮像座標系内において、三次元モデルデータWMDが示す三次元モデルWM3の特徴箇所を三次元位置データWSDが示す物体OBJの特徴箇所に近づける処理(つまり、三次元位置データWSDを用いたマッチング処理)を含む。このため、3Dマッチング部3122は、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢を決定してもよい。その後、3Dマッチング部3122は、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置する。その後、3Dマッチング部3122は、初期位置に初期姿勢で配置された三次元モデルWM3の特徴箇所を、三次元位置データWSDが示す物体OBJの特徴箇所に近づける処理を開始する。つまり、3Dマッチング部3122は、初期位置及び初期姿勢での三次元モデルWM3と三次元位置データWSDとを用いたマッチング処理を開始する。
 上述したように、3Dマッチング処理は、三次元モデルデータWMDが示す三次元モデルWM3の特徴箇所が、三次元位置データWSDが三次元位置を示す物体OBJの特徴箇所に近づくように、三次元モデルデータWMDの座標系(例えば、CADモデルの座標系)と、3D撮像座標系との位置関係を変更する処理を含むとも言える。この場合、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢を決定する動作は、実質的には、三次元モデルデータWMDの座標系と3D撮像座標系との位置関係の初期状態を決定する動作と等価であるとみなしてもよい。この場合、3Dマッチング部3122は、三次元モデルデータWMDの座標系と3D撮像座標系との位置関係が決定した初期状態となるように、三次元モデルデータWMDの座標系と3D撮像座標系とを位置合わせしてもよい。その後、3Dマッチング部3122は、三次元モデルWM3の特徴箇所を三次元位置データWSDが示す物体OBJの特徴箇所に近づける処理を開始してもよい。
 尚、本実施形態では、上述したように、図4のステップS3において位置姿勢算出部312が物体OBJの位置及び姿勢の双方を算出する例について説明されているため、3Dマッチング部3122は、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢の双方を決定している。しかしながら、図4のステップS3において物体OBJの位置及び姿勢のいずれか一方を算出する場合には、3Dマッチング部3122は、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢のいずれか一方を決定してもよい。或いは、図4のステップS3において物体OBJの位置及び姿勢のいずれか一方を算出する場合においても、3Dマッチング部3122は、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢の双方を決定してもよい。
 三次元モデルWM3の初期位置及び初期姿勢を決定するために、3Dマッチング部3122は、2Dマッチング部3121から3Dマッチング部3122に出力される位置姿勢情報POI1を用いてもよい。つまり、3Dマッチング部3122は、位置姿勢情報POI1に基づいて、三次元モデルWM3の初期位置及び初期姿勢を決定してもよい。
 具体的には、まず、図14に示すように、3Dマッチング部3122は、2D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1を、3D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1_convに変換する。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のX軸(3D)と平行なX軸方向(3D)における物体OBJの位置Tx(2Dto3D)を示していてもよい。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のY軸(3D)と平行なY軸方向(3D)における物体OBJの位置Ty(2Dto3D)を示していてもよい。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のZ軸(3D)と平行なZ軸方向(3D)における物体OBJの位置Tz(2Dto3D)を示していてもよい。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のX軸(3D)周りの物体OBJの回転量Rx(2Dto3D)を示していてもよい。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のY軸(3D)周りの物体OBJの回転量Ry(2Dto3D)を示していてもよい。位置姿勢情報POI1_convは、変換によって算出された、3D撮像座標系のZ軸(3D)周りの物体OBJの回転量Rz(2Dto3D)を示していてもよい。
 尚、以下の説明では、用語の統一を図るために、X軸(3D)周りの物体OBJの回転量Rx(2Dto3D)、Y軸(3D)周りの物体OBJの回転量Ry(2Dto3D)及びZ軸(3D)周りの物体OBJの回転量Rz(2Dto3D)を、それぞれ、X軸(3D)周りの回転方向における物体OBJの姿勢Rx(2Dto3D)、Y軸(3D)周りの回転方向における物体OBJの姿勢Ry(2Dto3D)及びZ軸(3D)周りの回転方向における物体OBJの姿勢Rz(2Dto3D)と称する。
 また、X軸(2Dto3D)周りの物体OBJの姿勢Rx(2Dto3D)、Y軸(2Dto3D)周りの物体OBJの姿勢Ry(2Dto3D)及びZ軸(2Dto3D)周りの物体OBJの姿勢Rz(2Dto3D)は、それぞれ、X軸(2Dto3D)周りの回転方向における物体OBJの位置、Y軸(2Dto3D)周りの回転方向における物体OBJの位置及びZ軸(2Dto3D)周りの回転方向における物体OBJの位置を示しているとみなしてもよい。つまり、X軸(2Dto3D)周りの物体OBJの姿勢Rx(2Dto3D)、Y軸(2Dto3D)周りの物体OBJの姿勢Ry(2Dto3D)及びZ軸(2Dto3D)周りの物体OBJの姿勢Rz(2Dto3D)は、いずれも、物体OBJの位置を表すパラメータであるとみなしてもよい。
 位置姿勢情報POI1を位置姿勢情報POI1_convに変換するために、3Dマッチング部3122は、2D撮像座標系と3D撮像座標系との位置関係を示す座標系情報を用いてもよい。座標系情報は、例えば、記憶装置32に予め記憶されていてもよい。座標系情報は、2D撮像座標系及び3D撮像座標系のいずれか一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれか他方の座標系内の位置に変換するための変換行列(典型的には、剛体変換行列)を含んでいてもよい。変換行列は、撮像装置21と撮像装置22との位置関係を示す外部パラメータから、数学的手法によって算出可能である。一例として、変換行列は、撮像装置21と撮像装置22との位置関係を示す外部パラメータに基づいてPnP(Perspective n Point)問題を解く数学的手法によって算出可能である。この場合、制御装置3は、座標系情報(特に、変換行列)に基づいて、2D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1を、3D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1_convに変換することができる。
 その後、図14に示すように、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置を、三次元モデルWM3の初期位置に設定してもよい。また、3Dマッチング部3122は、位置姿勢情報POI1_convが示す姿勢を、三次元モデルWM3の初期姿勢に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置Tx(2Dto3D)を、X軸方向(3D)における三次元モデルWM3の初期位置に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置Ty(2Dto3D)を、Y軸方向(3D)における三次元モデルWM3の初期位置に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置Tz(2Dto3D)を、Z軸方向(3D)における三次元モデルWM3の初期位置に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す姿勢Rx(2Dto3D)を、X軸(3D)周りの三次元モデルWM3の初期姿勢に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す姿勢Ry(2Dto3D)を、Y軸(3D)周りの三次元モデルWM3の初期姿勢に設定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す姿勢Rz(2Dto3D)を、Z軸(3D)周りの三次元モデルWM3の初期姿勢に設定してもよい。
 その後、図14に示すように、3Dマッチング部3122は、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置する。例えば、3Dマッチング部3122は、3D撮像座標系内において、X軸方向(3D)における三次元モデルWM3の位置が位置Tx(2Dto3D)となるように、三次元モデルWM3を配置してもよい。例えば、3Dマッチング部3122は、3D撮像座標系内において、Y軸方向(3D)における三次元モデルWM3の位置が位置Ty(2Dto3D)となるように、三次元モデルWM3を配置してもよい。例えば、3Dマッチング部3122は、3D撮像座標系内において、Z軸方向(3D)における三次元モデルWM3の位置が位置Tz(2Dto3D)となるように、三次元モデルWM3を配置してもよい。例えば、3Dマッチング部3122は、3D撮像座標系内において、X軸(3D)周りの三次元モデルWM3の姿勢が姿勢Rx(2Dto3D)となるように、三次元モデルWM3を配置してもよい。例えば、3Dマッチング部3122は、3D撮像座標系内において、Y軸(3D)周りの三次元モデルWM3の姿勢が姿勢Ry(2Dto3D)となるように、三次元モデルWM3を配置してもよい。例えば、3Dマッチング部3122は、3D撮像座標系内において、Z軸(3D)周りの三次元モデルWM3の姿勢が姿勢Rz(2Dto3D)となるように、三次元モデルWM3を配置してもよい。
 3Dマッチング部3122は、以下に説明する手順で、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置してもよい。具体的には、3Dマッチング部3122は、まず、三次元モデルWM3の座標系内(三次元モデルデータWSDの座標系内)に、三次元モデルWM3を配置(設定)してもよい。この場合、3Dマッチング部3122は、三次元モデルWM3の座標系内の原点に三次元モデルWM3の重心が位置するように、三次元モデルWM3の座標系内に三次元モデルWM3を配置してもよい。その後、3Dマッチング部3122は、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行う。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系の原点と3D撮像座標系の原点とが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のX軸と3D撮像座標系のX軸(3D)とが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のY軸と3D撮像座標系のY軸(3D)とが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のZ軸と3D撮像座標系のZ軸(3D)とが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系における座標のスケーリングと3D撮像座標系における座標のスケーリングとが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。その後、3Dマッチング部3122は、三次元モデルWM3が配置された三次元モデルWM3の座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置してもよい。ここで、三次元モデルWM3の座標系と3D撮像座標系との位置合わせが既に完了しているため、三次元モデルWM3の座標系内において三次元モデルWM3を配置することは、3D撮像座標系内において三次元モデルWM3を配置することと等価である。その結果、3Dマッチング部3122は、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置することができる。
 3Dマッチング部3122は、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行うことに加えて又は代えて、3D撮像座標系及び三次元モデルWM3の座標系のいずれか一方の座標系内の位置を、3D撮像座標系及び三次元モデルWM3の座標系のいずれか他方の座標系内の位置に変換するための変換行列(典型的には、剛体変換行列)を用いて、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置してもよい。具体的には、3Dマッチング部3122は、三次元モデルWM3の座標系に三次元モデルWM3を配置した後に、変換行列に基づいて、三次元モデルWM3の座標系に配置されている三次元モデルWM3の位置及び姿勢(つまり、三次元モデルWM3の座標系内での位置及び姿勢)を、3D撮像座標系内の三次元モデルWM3の位置及び姿勢に変換してもよい。その後、3Dマッチング部3122は、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置してもよい。
 或いは、3Dマッチング部3122は、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢を決定することに加えて又は代えて、2D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢を決定してもよい。この場合、3Dマッチング部3122は、位置姿勢情報POI1を位置姿勢情報POI1_convに変換することなく、位置姿勢情報POI1が示す位置及び姿勢を、それぞれ、2D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢に設定してもよい。その後、3Dマッチング部3122は、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行うことに加えて又は代えて、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。具体的には、3Dマッチング部3122は、三次元モデルWM3の座標系内に三次元モデルWM3を配置した後に、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系の原点と2D撮像座標系の原点とが一致するように、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のX軸と2D撮像座標系のX軸(2D)とが一致するように、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のY軸と2D撮像座標系のY軸(2D)とが一致するように、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系のZ軸と2D撮像座標系のZ軸(2D)とが一致するように、三次元モデルWM3の座標系と3D撮像座標系との位置合わせを行ってもよい。例えば、3Dマッチング部3122は、三次元モデルWM3の座標系における座標のスケーリングと2D撮像座標系における座標のスケーリングとが一致するように、三次元モデルWM3の座標系と2D撮像座標系との位置合わせを行ってもよい。その後、3Dマッチング部3122は、三次元モデルWM3が配置された三次元モデルWM3の座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置してもよい。ここで、三次元モデルWM3の座標系と2D撮像座標系との位置合わせが既に完了しているため、三次元モデルWM3の座標系内において三次元モデルWM3を配置することは、2D撮像座標系内において三次元モデルWM3を配置することと等価である。その結果、3Dマッチング部3122は、2D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置することができる。その後、3Dマッチング部3122は、2D撮像座標系及び3D撮像座標系のいずれか一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれか他方の座標系内の位置に変換するための変換行列(典型的には、剛体変換行列)を用いて、2D撮像座標系内の三次元モデルWM3の位置及び姿勢を、それぞれ、3D撮像座標系内の三次元モデルWM3の位置及び姿勢に変換してもよい。変換によって得られた3D撮像座標系内の三次元モデルWM3の位置及び姿勢は、それぞれ、3D撮像座標系内での三次元モデルWM3の初期位置及び初期姿勢に想到する。その結果、3Dマッチング部3122は、3D撮像座標系内において、三次元モデルWM3を、決定した初期位置に、決定した初期姿勢で配置することができる。
 その後、3Dマッチング部3122は、三次元モデルWM3の特徴箇所を三次元位置データWSDが示す物体OBJの特徴箇所に近づける処理を開始する。その結果、3Dマッチング部3122は、物体OBJの位置及び姿勢を算出することができる。つまり、3Dマッチング部3122は、位置姿勢情報POI2を生成することができる。
 尚、物体OBJの位置及び姿勢を算出する方法は、上述の三次元位置データWSDを用いたマッチング処理に限られない。3Dマッチング部3122は、三次元位置データWSDを用いて物体OBJの位置及び姿勢を算出する他の周知の方法を用いて、物体OBJの位置及び姿勢を算出してもよい。物体OBJの位置及び姿勢を算出する方法は、三次元モデルデータWMDを用いずに三次元位置データWSDに基づいて物体OBJの位置及びを算出する周知の方法であってもよいし、三次元モデルデータWMDとは異なるデータと三次元位置データWSDとを用いて物体OBJの位置及びを算出する周知の方法であってもよい。例えば、物体OBJの位置及びを算出する方法は、機械学習又は深層学習によって、三次元位置データWSDに基づいて物体OBJの位置及び姿勢を算出する方法であってもよい。この場合、機械学習又は深層学習によって、三次元位置データWSDを入力すると物体OBJの位置及び姿勢を出力するための予測モデルを予め構築し、この予測モデルに三次元位置データWSDを入力することによって物体OBJの位置及び姿勢を算出してもよい。この予測モデルは、3Dマッチング部3122に記憶されていてもよい。尚、3Dマッチング部3122は、記憶装置32に記憶されたこの予測モデルを読み出してもよい。
 3Dマッチング部3122は、三次元位置データWSDとして、上述した点群データを用いて、3Dマッチング処理を行う。その結果、三次元位置データWSDとして深度画像データが用いられる場合と比較して、物体OBJの位置及び姿勢の算出精度が高くなる。この場合、3Dマッチング部3122は、三次元モデルデータWMDとして、物体OBJの基準となる三次元形状を示す点群データ(例えば、CADモデルを示す点群データ)を用いる。但し、3Dマッチング部3122は、三次元位置データWSDとして、上述した深度画像データを用いて、3Dマッチング処理を行ってもよい。この場合、3Dマッチング部3122は、三次元モデルデータWMDとして、物体OBJの基準となる三次元形状を示す深度画像データ(例えば、CADモデルを示す深度画像データ)を用いてもよい。
 3Dマッチング部3122は、3D撮像座標系における物体OBJの位置として、X軸(3D)と平行なX軸方向(3D)における物体OBJの位置Tx(3D)、Y軸(3D)と平行なY軸方向(3D)における物体OBJの位置Ty(3D)及びZ軸(3D)と平行なZ軸方向(3D)における物体OBJの位置Tz(3D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3D撮像座標系における物体OBJの姿勢として、X軸(3D)周りの物体OBJの回転量Rx(3D)、Y軸(3D)周りの物体OBJの回転量Ry(3D)及びZ軸(3D)周りの物体OBJの回転量Rz(3D)のうちの少なくとも一つを算出してもよい。
 尚、上述した回転量Rx、Ry及びRzと同様に、以下の説明では、用語の統一を図るために、X軸(3D)周りの物体OBJの回転量Rx(3D)、Y軸(3D)周りの物体OBJの回転量Ry(3D)及びZ軸(3D)周りの物体OBJの回転量Rz(3D)を、それぞれ、X軸(3D)周りの物体OBJの姿勢Rx(3D)、Y軸(3D)周りの物体OBJの姿勢Ry(3D)及びZ軸(3D)周りの物体OBJの姿勢Rz(3D)と称する。
 また、X軸(3D)周りの物体OBJの姿勢Rx(3D)、Y軸(3D)周りの物体OBJの姿勢Ry(3D)及びZ軸(3D)周りの物体OBJの姿勢Rz(3D)は、それぞれ、X軸(3D)周りの回転方向における物体OBJの位置、Y軸(3D)周りの回転方向における物体OBJの位置及びZ軸(3D)周りの回転方向における物体OBJの位置を示しているとみなしてもよい。つまり、X軸(3D)周りの物体OBJの姿勢Rx(3D)、Y軸(3D)周りの物体OBJの姿勢Ry(3D)及びZ軸(3D)周りの物体OBJの姿勢Rz(3D)は、いずれも、物体OBJの位置を表すパラメータであるとみなしてもよい。
 3Dマッチング部3122は、位置姿勢情報POI2を生成する都度、生成した位置姿勢情報POI2を、座標変換部3125に出力する。一例として、3Dマッチング部3122は、6DOFの位置及び姿勢の全て(つまり、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、姿勢Rx(3D)、姿勢Ry(3D)及び姿勢Rz(3D))を算出し、算出した6DOFの位置及び姿勢を示す位置姿勢情報POI1を、座標変換部3125に出力する。他の一例として、3Dマッチング部3122は、6DOFの位置及び姿勢を算出し、算出した6DOFの位置及び姿勢のうちの一部を示す位置姿勢情報POI2を、座標変換部3125に出力してもよい。他の一例として、3Dマッチング部3122は、6DOFの位置及び姿勢の一部を算出し、算出した6DOFの位置及び姿勢の一部を示す位置姿勢情報POI2を、座標変換部3125に出力してもよい。
 3Dマッチング部3122は、所定の3Dマッチング周期で、物体OBJの位置及び姿勢を算出してもよい。つまり、3Dマッチング部3122は、3Dマッチング周期に相当する時間が経過する都度、物体OBJの位置及び姿勢を算出してもよい。逆に言えば、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでに、3Dマッチング周期に相当する時間が必要であるとみなしてもよい。この場合、3Dマッチング部3122は、所定の3Dマッチング周期で、物体OBJの位置及び姿勢を示す位置姿勢情報POI2を座標変換部3125に出力してもよい。
 図15に示すように、3Dマッチング周期は、撮像装置22が物体OBJを撮像する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マッチング処理を新たに開始してもよい。尚、3Dマッチング部3122は、開始済みの3Dマッチング処理を完了していない場合であっても、撮像装置22が新たな画像データIMG_3Dを生成した場合には、撮像装置22が新たに生成した画像データIMG_3Dを用いた3Dマッチング処理を新たに開始してもよい。尚、図15に示す画像データIMG_3Dを生成するタイミングは、画像データIMG_3Dを生成するために撮像装置22が物体OBJを撮像するタイミングであるとみなしてもよい。但し、3Dマッチング周期は、3D撮像周期よりも長くなくてもよい。例えば、3Dマッチング周期は、3D撮像周期よりも短くてもよい。例えば、3Dマッチング周期は、3D撮像周期と同じであってもよい。
 更に、本実施形態では、上述したように、3Dマッチング部3122は、2Dマッチング部3121が行う2Dマッチング処理の結果(つまり、位置姿勢情報POI1)を用いて、3Dマッチング処理を行う。このため、ある時刻taに撮像装置21及び22が物体OBJを撮像することでそれぞれ画像データIMG_2D及びIMG_3Dを生成した場合において、制御装置3は、時刻taに生成された画像データIMG_2Dを用いた2Dマッチング処理と、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDを用いた3Dマッチング処理とは、別々のタイミングで行ってもよい。具体的には、2Dマッチング部3121は、時刻taに生成された画像データIMG_2Dを用いて2Dマッチング処理を開始する。一方で、3Dマッチング部3122は、時刻taに生成された画像データIMG_2Dを用いた2Dマッチング処理が完了するまでは、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDを用いた3Dマッチング処理を開始しなくてもよい。なぜならば、上述したように、3Dマッチング部3122は、2Dマッチング処理の結果を用いて三次元モデルWM3の初期位置及び初期姿勢を決定するからである。3Dマッチング部3122は、時刻taに生成された画像データIMG_2Dを用いた2Dマッチング処理が時刻tbに完了した後に、当該2Dマッチング処理の結果(つまり、時刻taにおける2D撮像座標系での物体OBJの位置及び姿勢を示す位置姿勢情報POI1)と、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDとを用いて、3Dマッチング処理を開始してもよい。その結果、3Dマッチング部3122は、時刻taにおける3D撮像座標系での物体OBJの位置及び姿勢を示す位置姿勢情報POI2を生成してもよい。
 このように、本実施形態では、2Dマッチング部3121がある時刻(例えば、時刻ta)における2D撮像座標系での物体OBJの位置及び姿勢を示す位置姿勢情報POI1を生成した後に、3Dマッチング部3122は、同じ時刻(例えば、時刻ta)における3D撮像座標系での物体OBJの位置及び姿勢を示す位置姿勢情報POI2を生成する。このため、本実施形態では、3Dマッチング部3122は、時刻taにおける3D撮像座標系での物体OBJの位置及び姿勢を示す位置姿勢情報POI2を、時刻taに撮像装置21及び22が物体OBJを撮像してから2Dマッチング周期と3Dマッチング周期との和に相当する期間が経過した時点で生成してもよい。
 但し、一の時刻に生成された画像データIMG_2Dを用いて2Dマッチング部3121が2Dマッチング処理を行うと共に、一の時刻とは異なる他の時刻に生成された画像データIMG_3Dから生成された三次元位置データWSDを用いて3Dマッチング部3122が3Dマッチング処理を行ってもよい。例えば、2Dマッチング部3121が、時刻taに生成された画像データIMG_2Dを用いて2Dマッチング処理を行う場合において、3Dマッチング部3122は、2Dマッチング処理が行われている期間中に生成された画像データIMG_3Dから生成された三次元位置データWSDを用いて、3Dマッチング処理を行ってもよい。例えば、2Dマッチング部3121が、時刻taに生成された画像データIMG_2Dを用いて2Dマッチング処理を行う場合において、3Dマッチング部3122は、2Dマッチング処理が終了するまでの残り時間が所定時間を下回った時刻に生成された画像データIMG_3Dから生成された三次元位置データWSDを用いて、3Dマッチング処理を行ってもよい。
 3Dマッチング周期は、2Dマッチング周期と同じであってもよい。具体的には、3Dマッチング周期の長さは、2Dマッチング周期の長さと同じであってもよい。つまり、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでの時間は、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでの時間と同じであってもよい。但し、3Dマッチング周期は、2Dマッチング周期と同じでなくてもよい。例えば、3Dマッチング周期の長さは、2Dマッチング周期の長さよりも長くてもよい。例えば、3Dマッチング周期の長さは、2Dマッチング周期の長さよりも短くてもよい。
 ここで、通常、3Dマッチング処理に用いられる三次元位置データWSD及び三次元モデルデータWMDのデータサイズは、2Dマッチング処理に用いられる画像データIMG_2D及び二次元モデルデータIMG_2Mのデータサイズよりも多い。このため、3Dマッチング部3122が3Dマッチング処理を完了するために必要な時間である3Dマッチング周期は、2Dマッチング部3121が2Dマッチング処理を完了するために必要な時間である2Dマッチング周期よりも長くなる可能性がある。更に、本実施形態では、3Dマッチング処理は、三次元位置データWSDを用いたマッチング処理に加えて、三次元モデルWM3の初期位置及び初期姿勢を決定する位置姿勢決定処理を含んでいるため、3Dマッチング周期は、2Dマッチング周期よりも長くなる可能性がある。そこで、3Dマッチング部3122は、3Dマッチング周期が2Dマッチング周期と同じになるように又は3Dマッチング周期が2Dマッチング周期よりも短くなるように、3Dマッチング周期を短縮するための処理を行ってもよい。
 一例として、3Dマッチング部3122は、2Dマッチング処理の結果(例えば、上述した位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rz(2D)を示す位置姿勢情報POI1)に基づいて、三次元位置データWSDのうちの一部のデータ部分を、3Dマッチング処理を行う3Dマッチング対象データとして選択してもよい。具体的には、3Dマッチング部3122は、図16に示すように、位置姿勢情報POI1に基づいて、3D撮像座標系内において物体OBJが存在すると推定される領域を推定してもよい。一例として、3Dマッチング部3122は、2D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1を、3D撮像座標系内における物体OBJの位置及び姿勢を示す位置姿勢情報POI1_convに変換してもよい。その後、3Dマッチング部3122は、位置姿勢情報POI1_convに基づいて、3D撮像座標系内において物体OBJが存在すると推定される領域を推定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置を含む所定サイズの大きさの領域を、3D撮像座標系内において物体OBJが存在すると推定される領域として推定してもよい。例えば、3Dマッチング部3122は、位置姿勢情報POI1_convが示す位置を含む所定形状の領域を、3D撮像座標系内において物体OBJが存在すると推定される領域として推定してもよい。その後、3Dマッチング部3122は、三次元位置データWSDのうちの物体OBJが存在すると推定される領域に対応する一部のデータ部分を、3Dマッチング対象データとして選択してもよい。その後、3Dマッチング部3122は、三次元位置データWSDの一部である3Dマッチング対象データに対して3Dマッチング処理を行ってもよい。
 ここで、三次元位置データWSDは、物体OBJに関するデータ部分のみならず、物体OBJとは異なる他の物体に関するデータ部分を含んでいる可能性がある。なぜならば、三次元位置データWSDを生成するために用いられる画像データIMG_3Dを生成する撮像装置22の撮像範囲(視野)内には、物体OBJのみならず、物体OBJとは異なる他の物体が含まれている可能性があるからである。例えば、支持面Sに載置されたワークWを撮像装置22が撮像することで生成される画像データIMG_3Dから三次元位置データWSDが生成される場合には、三次元位置データWSDは、ワークWに関するデータ部分のみならず、支持面Sに関するデータ部分を含んでいる可能性がある。この場合、上述した3Dマッチング対象データを選択する処理は、ワークWに関するデータ部分を選択する処理と等価である。
 この場合、3Dマッチング対象データは、典型的には、三次元位置データWSDから、物体OBJとは異なる他の物体に関するデータ部分を除去することで得られるデータと等価であるとみなしてもよい。言い換えれば、3Dマッチング対象データは、典型的には、三次元位置データWSDから、物体OBJに関するデータ部分を選択的に抽出することで得られるデータと等価であるとみなしてもよい。その結果、3Dマッチング対象データ(つまり、三次元位置データWSDの一部)に対して行われる3Dマッチング処理を完了するために必要な時間は、三次元位置データWSDの全体に対して行われる3Dマッチング処理を完了するために必要な時間よりも短くなる。なぜならば、3Dマッチング処理を完了するために必要な時間は、3Dマッチング処理が行われるデータのサイズに依存するからである。その結果、三次元位置データWSDの全体に対して3Dマッチング処理が行われる場合と比較して、3Dマッチング周期が短くなる。
 尚、三次元位置データWSDの一部である3Dマッチング対象データを選択する動作は、三次元位置データWSDのうちの3Dマッチング対象データ以外のデータ部分を選択しない(或いは、削除する)動作と等価であるとみなしてもよい。このため、3Dマッチング部3122は、2Dマッチング処理の結果に基づいて、三次元位置データWSDのうちの物体OBJが存在しないと推定される領域に対応する一部のデータ部分(例えば、上述したように物体OBJとは異なる物体に関するデータ部分)を削除することで、三次元位置データWSDのうち一部である3Dマッチング対象データを生成してもよい。
 他の一例として、3Dマッチング部3122は、三次元位置データWSDのうちの一部のデータ部分を指定するユーザの指示に基づいて、3Dマッチング対象データを選択してもよい。具体的には、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDのうちの一部のデータ部分を3Dマッチング対象データとして指定するためにユーザが操作可能なGUI(Graphical User Interface)を表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDの一例である点群データが示す複数の点を表示し、複数の点のうちの物体OBJに対応する点を指定するためにユーザが操作可能なGUIを表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDの一例である深度画像データが示す深度画像を表示し、深度画像のうちの物体OBJに対応する画素を指定するためにユーザが操作可能なGUIを表示してもよい。この場合においても、3Dマッチング部3122は、三次元位置データWSDのうちのユーザが指定した一部のデータ部分である3Dマッチング対象データに対して3Dマッチング処理を行ってもよい。その結果、三次元位置データWSDの全体に対して3Dマッチング処理が行われる場合と比較して、3Dマッチング周期が短くなる。
 (2-2-3)トラッキング部3123が行うトラッキング処理
 トラッキング部3123は、トラッキング処理として、第1時刻t1及び第1時刻t1よりも後の第2時刻t2に撮像装置21が物体OBJを撮像することでそれぞれ生成される二つの画像データIMG_2D#t1及びIMG_2D#t2を用いたトラッキング処理を行う。二つの画像データIMG_2D#t1及びIMG_2D#t2を用いたトラッキング処理は、図17に示すように、画像データIMG_2D#t1に写り込んでいる物体OBJの少なくとも一つの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)と同じ少なくとも一つの特徴箇所を、画像データIMG_2D#t2内で追跡するトラッキング処理である。尚、トラッキング処理そのものは、既存のトラッキング処理と同一であってもよい。このため、トラッキング処理の詳細な説明は省略するが、以下にその概要を説明する。
 トラッキング部3123は、トラッキング処理を行うことで、第1時刻t1及び第2時刻t2の間における少なくとも一つの特徴箇所の位置の変化量を算出する。具体的には、トラッキング部3123は、第1時刻t1の画像データIMG_2D#t1に基づいて、第1時刻t1における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI4を生成する。例えば、トラッキング部3123は、2D撮像座標系におけるX軸方向(2D)及びY軸方向(2D)の少なくとも一つにおける特徴箇所の位置を示す位置情報PI4を生成してもよい。更に、トラッキング部3123は、第2時刻t2の画像データIMG_2D#t2に基づいて、第2時刻t2における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI5を生成する。例えば、トラッキング部3123は、2D撮像座標系におけるX軸方向(2D)及びY軸方向(2D)の少なくとも一つにおける特徴箇所の位置を示す位置情報PI5を生成してもよい。尚、以下の説明では、説明の便宜上、位置情報PI4及びPI5のそれぞれが、X軸方向(2D)及びY軸方向(2D)のそれぞれにおける特徴箇所の位置を示す例について説明する。その後、トラッキング部3123は、位置情報PI4及びPI5に基づいて、第1時刻t1及び第2時刻t2の間における物体OBJの位置及び姿勢の少なくとも一方の変化量を算出する。その結果、トラッキング部3123は、第1時刻t1及び第2時刻t2の間における物体OBJの位置及び姿勢の少なくとも一方の変化量を示す変化量情報VIを生成する。
 尚、上述したように、本実施形態では、位置姿勢算出部312が物体OBJの位置及び姿勢の双方を算出する例について説明されている。この場合、トラッキング部3123は、物体OBJの位置及び姿勢の双方の変化量を示す変化量情報VIを生成してもよい。以下の説明では、説明の便宜上、トラッキング部3123が物体OBJの位置及び姿勢の双方の変化量を示す変化量情報VIを生成する例について説明する。
 トラッキング部3123は、2D撮像座標系における物体OBJの位置の変化量を算出してもよい。トラッキング部3123は、2D撮像座標系における物体OBJの位置の変化量として、X軸方向(2D)における物体OBJの位置Tx(2D)の変化量ΔTx(2D)、Y軸方向(2D)における物体OBJの位置Ty(2D)の変化量ΔTy(2D)及びZ軸方向(2D)における物体OBJの位置Tz(2D)の変化量ΔTz(2D)のうちの少なくとも一つを算出してもよい。トラッキング部3123は、2D撮像座標系における物体OBJの姿勢の変化量として、X軸(2D)周りの物体OBJの姿勢Rx(2D)の変化量ΔRx(2D)、Y軸(2D)周りの物体OBJの姿勢Ry(2D)の変化量ΔRy(2D)及びZ軸(2D)周りの物体OBJの姿勢Rz(2D)の変化量ΔRz(2D)のうちの少なくとも一つを算出してもよい。
 或いは、トラッキング部3123は、3D撮像座標系における物体OBJの位置の変化量を算出してもよい。トラッキング部3123は、3D撮像座標系における物体OBJの位置の変化量として、X軸方向(3D)における物体OBJの位置Tx(3D)の変化量ΔTx(3D)、Y軸方向(3D)における物体OBJの位置Ty(3D)の変化量ΔTy(3D)及びZ軸方向(3D)における物体OBJの位置Tz(3D)の変化量ΔTz(3D)のうちの少なくとも一つを算出してもよい。トラッキング部3123は、3D撮像座標系における物体OBJの姿勢の変化量として、X軸(3D)周りの物体OBJの姿勢Rx(3D)の変化量ΔRx(3D)、Y軸(3D)周りの物体OBJの姿勢Ry(3D)の変化量ΔRy(3D)及びZ軸(3D)周りの物体OBJの姿勢Rz(3D)の変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。
 トラッキング部3123は、グローバル座標系における物体OBJの位置の変化量を算出してもよい。トラッキング部3123は、グローバル撮像座標系における物体OBJの位置の変化量として、X軸方向(GL)における物体OBJの位置Tx(GL)の変化量ΔTx(GL)、Y軸方向(GL)における物体OBJの位置Ty(GL)の変化量ΔTy(GL)及びZ軸方向(GL)における物体OBJの位置Tz(GL)の変化量ΔTz(GL)のうちの少なくとも一つを算出してもよい。トラッキング部3123は、グローバル撮像座標系における物体OBJの姿勢の変化量として、X軸(GL)周りの物体OBJの姿勢Rx(GL)の変化量ΔRx(GL)、Y軸(GL)周りの物体OBJの姿勢Ry(GL)の変化量ΔRy(GL)及びZ軸(GL)周りの物体OBJの姿勢Rz(GL)の変化量ΔRz(GL)のうちの少なくとも一つを算出してもよい。
 尚、第1時刻t1から第2時刻t2までの期間中に物体OBJが移動した場合に、2D撮像座標系での物体OBJの位置及び姿勢の少なくとも一方が変化する可能性がある。更に、第1時刻t1から第2時刻t2までの期間中に物体OBJを撮像する撮像装置21が移動した場合においても、2D撮像座標系での物体OBJの位置及び姿勢の少なくとも一方が変化する可能性がある。このため、トラッキング部3123が算出する物体OBJの位置の変化量は、物体OBJと撮像装置21との相対的な位置の変化量と等価であるとみなしてもよい。同様に、トラッキング部3123が算出する物体OBJの姿勢の変化量は、物体OBJと撮像装置21との相対的な姿勢の変化量と等価であるとみなしてもよい。
 本実施形態では特に、トラッキング部3123は、二つの画像データIMG_2D#t1及びIMG_2D#t2に加えて、三次元位置データWSDにも基づいて、変化量情報VIを生成する。具体的には、トラッキング部3123は、第1時刻t1及び第2時刻t2に撮像装置22が物体OBJを撮像することでそれぞれ生成される二つの画像データIMG_2D#t1及びIMG_2D#t2に加えて、第3時刻t3に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSDにも基づいて、変化量情報VIを生成する。
 本実施形態は特に、トラッキング処理のために撮像装置22が物体OBJを撮像する第3時刻t3は、トラッキング処理のために撮像装置21が物体OBJを撮像する第2時刻t2と同じ時刻である。つまり、トラッキング部3123は、二つの画像データIMG_2D#t1及びIMG_2D#t2に加えて、第2時刻t2と同じ第3時刻t3に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSDにも基づいて、変化量情報VIを生成する。
 尚、「第2時刻t2と第3時刻t3とが同じ時刻になる」状態は、「第2時刻t2と第3時刻t3とが、文字通り完全に同じ時刻になる」という状態を含んでいてもよい。「第2時刻t2と第3時刻t3とが同じ時刻になる」状態は、「第2時刻t2と第3時刻t3とが完全に同じ時刻になっていないものの、第2時刻t2と第3時刻t3との時間的なずれが許容上限値よりも小さいがゆえに第2時刻t2と第3時刻t3とが実質的に同じ時刻であるとみなせる」状態を含んでいてもよい。ここで、許容上限値は、ロボットアーム12の制御誤差に基づく許容上限値であってもよい。例えば、第2時刻t2と第3時刻t3との時間的なずれによって、後述する物体OBJの位置及び姿勢の少なくとも一方の算出結果に誤差が生じる場合(つまり、算出される物体OBJの位置及び姿勢の少なくとも一方の精度が低下する場合)がある。この場合、物体OBJの位置及び姿勢の少なくとも一方の算出結果に生じる誤差によって、ロボットアーム12の制御誤差が生じる場合がある。ロボットアーム12の制御誤差は、エンドエフェクタ13の移動誤差となり、エンドエフェクタ13が物体OBJに対して所定の処理を適切に行うことができなくなる場合がある。尚、許容上限値が、ロボットアーム12によるエンドエフェクタ13の移動誤差の許容上限値ともいえる。また、例えば、撮像装置21及び22の撮像処理の同期誤差による、第2時刻t2と第3時刻t3との時間的なずれがあったとしても、第2時刻t2と第3時刻t3とが実質的に同じ時刻であるとみなしてもよい。尚、撮像装置21及び22の撮像処理の同期誤差は、制御装置3による撮像装置21及び22の撮像処理の同期制御誤差であってもよい。
 但し、第2時刻t2と第3時刻t3とが異なる時刻であってもよい。「第2時刻t2と第3時刻t3とが異なる時刻になる」状態は、「第2時刻t2と第3時刻t3との時間的なずれが許容上限値よりも大きいがゆえに第2時刻t2と第3時刻t3とが実質的に同じ時刻であるとみなせない」状態を含んでいてもよい。
 本実施形態では、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、第2時刻t2と第3時刻t3とが同じ時刻になるように、物体OBJを撮像してもよい。つまり、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している期間中に撮像装置21及び22が物体OBJを撮像する場合には、制御装置3は、第2時刻t2と第3時刻t3とが同じ時刻になるように、撮像装置21及び22を制御してもよい。その理由については、ロボットシステムSYSの効果を説明する際に改めて説明する。
 一方で、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、第2時刻t2と第3時刻t3とが同じ時刻になるように、物体OBJを撮像しなくてもよい。つまり、制御装置3は、第2時刻t2と第3時刻t3とが同じ時刻になるように、撮像装置21及び22を制御しなくてもよい。例えば、撮像装置21及び22は、第2時刻t2と第3時刻t3とが異なる時刻になるように、物体OBJを撮像してもよい。つまり、制御装置3は、第2時刻t2と第3時刻t3とが異なる時刻になるように、撮像装置21及び22を制御してもよい。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない期間中に撮像装置21及び22が物体OBJを撮像する場合には、撮像装置21及び22は、第2時刻t2と第3時刻t3とが同じ時刻になるように、物体OBJを撮像してもよい。つまり、制御装置3は、第2時刻t2と第3時刻t3とが同じ時刻になるように、撮像装置21及び22を制御してもよい。
 三次元位置データWSDに基づいて変化量情報VIを生成するために、トラッキング部3123は、まず、三次元位置データWSDに基づいて、物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI3を生成する。三次元位置データWSDが第3時刻t3に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成されるがゆえに、トラッキング部3123は、三次元位置データWSDに基づいて、第3時刻t3における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI3を生成する。
 本実施形態では、トラッキング部3123は、3D撮像座標系のZ軸方向(3D)における物体OBJの少なくとも一つの特徴箇所の位置を算出してもよい。この場合、トラッキング部3123は、三次元位置データWSDが示す3D撮像座標系での物体OBJの複数点それぞれの三次元位置に基づいて、3D撮像座標系のZ軸方向(3D)における物体OBJの少なくとも一つの特徴箇所の位置を算出してもよい。その結果、トラッキング部3123は、Z軸方向(3D)における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI3を生成してもよい。
 或いは、トラッキング部3123は、2D撮像座標系のZ軸方向(2D)における物体OBJの少なくとも一つの特徴箇所の位置を算出してもよい。この場合、トラッキング部3123は、上述した座標系情報(例えば、2D撮像座標系及び3D撮像座標系のいずれか一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれか他方の座標系内の位置に変換するための変換行列)を用いて、三次元位置データWSDが示す3D撮像座標系での物体OBJの複数点それぞれの三次元位置を、2D撮像座標系での物体OBJの複数点それぞれの三次元位置に変換してもよい。その後、トラッキング部3123は、2D撮像座標系での物体OBJの複数点それぞれの三次元位置に基づいて、Z軸方向(2D)における物体OBJの少なくとも一つの特徴箇所の位置を算出してもよい。その結果、トラッキング部3123は、Z軸方向(2D)における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI3を生成してもよい。
 その後、トラッキング部3123は、二つの画像データIMG_2D#t1及びIMG_2D#t2からそれぞれ生成される位置情報PI4及びPI5と、三次元位置データWSDから生成される位置情報PI3とに基づいて、変化量情報VIを生成する。具体的には、トラッキング部3123は、第2時刻t2における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI5に対して、第2時刻t2と同じ(但し、場合によっては異なる)第3時刻t3における物体OBJの少なくとも一つの特徴箇所の位置を示す位置情報PI3を反映させる。具体的には、位置情報PI5は、上述したようにX軸方向(2D)及びY軸方向(2D)のそれぞれにおける特徴箇所の位置を示しており、位置情報PI3は、上述したようにZ軸方向(2D)又はZ軸方向(3D)における特徴箇所の位置を示している。この場合、トラッキング部3123は、Z軸方向(2D)における特徴箇所の位置を示していない位置情報PI5に対して、位置情報PI3が示すZ軸方向(2D)又はZ軸方向(3D)における特徴箇所の位置を付加してもよい。つまり、トラッキング部3123は、位置情報PI5が、画像データIMG_2Dから算出されたX軸方向(2D)及びY軸方向(2D)のそれぞれにおける特徴箇所の位置に加えて、三次元位置データWSDから算出されたZ軸方向(2D)又はZ軸方向(3D)における特徴箇所の位置を示す情報となるように、位置情報PI5に位置情報PI3を反映させる。
 位置情報PI3がZ軸方向(2D)における特徴箇所の位置を示している場合には、位置情報PI5及び位置情報PI3の双方が、2D撮像座標系における位置を示している。つまり、位置情報PI5が示す位置の座標系と、位置情報PI3が示す位置の座標系とが同じである。この場合、トラッキング部3123は、2D撮像座標系における特徴箇所の位置を示している位置情報PI5に対して、2D撮像座標系における特徴箇所の位置を示している位置情報PI3をそのまま付加してもよい。
 一方で、位置情報PI3がZ軸方向(3D)における特徴箇所の位置を示している場合には、位置情報PI3が、3D撮像座標系における位置を示している一方で、位置情報PI5が、2D撮像座標系における位置を示している。つまり、位置情報PI5が示す位置の座標系と、位置情報PI3が示す位置の座標系とが異なる。この場合、トラッキング部3123は、位置情報PI5が示す位置の座標系と位置情報PI3が示す位置の座標系とが同じになるように位置情報PI3及びPI5の一方を変換した後に、位置情報PI5に対して位置情報PI3を付加してもよい。例えば、トラッキング部3123は、上述した座標系情報(例えば、2D撮像座標系及び3D撮像座標系のいずれか一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれか他方の座標系内の位置に変換するための変換行列)を用いて、位置情報PI5が示す2D撮像座標系内での特徴箇所の位置を、3D撮像座標系内での特徴箇所の位置に変換してもよい。トラッキング部3123は、3D撮像座標系における特徴箇所の位置を示している位置情報PI5に対して、3D撮像座標系における特徴箇所の位置を示すように変換された位置情報PI3を付加してもよい。
 その後、トラッキング部3123は、位置情報PI4と、位置情報PI3が反映された位置情報PI5とに基づいて、変化量情報VIを生成する。つまり、トラッキング部3123は、位置情報POI4と、位置情報PI3が反映された位置情報PI5とに基づいて、第1時刻t1及び第2時刻t2の間における物体OBJの位置及び姿勢の少なくとも一方の変化量を算出する。
 具体的には、上述したように、位置情報PI4は、X軸方向及びY軸方向のそれぞれにおける特徴箇所の位置を示している。一方で、位置情報PI5は、X軸方向、Y軸方向及びZ軸方向のそれぞれにおける特徴箇所の位置を示している。この場合、物体OBJの位置及び姿勢の変化量を示す変化量情報VIを算出する処理は、PnP(Perspective n Point)問題を解く処理と実質的には等価であるとみなすことができる。具体的には、一般的なPnP問題は、三次元空間に存在する物体OBJのn個の特徴箇所の位置(三次元位置)と二次元画像上での物体OBJのn個の特徴箇所の位置(二次元位置)との間の関係から、物体OBJを撮像する撮像装置21又は22の位置及び姿勢(具体的には、並進行列及び回転行列)を推定する問題である。推定された並進行列及び回転行列は、三次元空間に存在する物体OBJの位置及び姿勢を二次元画像上での物体OBJの位置及び姿勢に変換する、又は、逆に、二次元画像上での物体OBJの位置及び姿勢を三次元空間に存在する物体OBJの位置及び姿勢に変換するために利用可能である。そこで、本実施形態では、トラッキング部3123は、PnP問題として、第1時刻t1における物体OBJのn個の特徴箇所の位置(二次元位置)を示す位置情報PI4と第2時刻t2における物体OBJのn個の特徴箇所の位置(三次元位置)を示す位置情報PI5との関係から、第1時刻t1における物体OBJの位置及び姿勢を第2時刻t2における物体OBJの位置及び姿勢に変換するために必要な並進行列及び回転行列を推定する問題を設定してもよい。この場合、トラッキング部3123は、PnP問題を解くことで、並進行列及び回転行列を推定してもよい。その後、トラッキング部3123は、推定された並進行列に基づいて、第1時刻t1及び第2時刻t2の間における物体OBJの位置の変化量を算出してもよい。トラッキング部3123は、推定された回転行列に基づいて、第1時刻t1及び第2時刻t2の間における物体OBJの姿勢の変化量を算出してもよい。
 尚、物体OBJの位置及び姿勢の変化量を算出する方法は、二つの画像データIMG_2D#t1及びIMG_2D#t2(更には、必要に応じて三次元位置データWSD)を用いたトラッキング処理に限られない。トラッキング部3123は、二つの画像データIMG_2D#t1及びIMG_2D#t2(更には、必要に応じて三次元位置データWSD)を用いて物体OBJの位置及び姿勢の変化量を算出する他の周知の方法を用いて、物体OBJの位置及び姿勢の変化量を算出してもよい。例えば、物体OBJの位置及び姿勢の変化量を算出する方法は、機械学習又は深層学習によって、二つの画像データIMG_2D#t1及びIMG_2D#t2(更には、必要に応じて三次元位置データWSD)に基づいて物体OBJの位置及び姿勢の変化量を算出する方法であってもよい。この場合、機械学習又は深層学習によって、二つの画像データIMG_2D#t1及びIMG_2D#t2(更には、必要に応じて三次元位置データWSD)を入力すると物体OBJの位置及び姿勢の変化量を出力するための予測モデルを予め構築し、この予測モデルに二つの画像データIMG_2D#t1及びIMG_2D#t2(更には、必要に応じて三次元位置データWSD)を入力することによって物体OBJの位置及び姿勢の変化量を算出してもよい。トラッキング部3123は、この予測モデルを含んでいてもよい。
 トラッキング部3123は、変化量情報VIを算出する都度、生成した変化量情報VIを、座標変換部3125に出力する。一例として、トラッキング部3123は、6DOFの位置及び姿勢の変化量の全て(つまり、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)、又は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D))を算出し、算出した6DOFの位置及び姿勢の変化量を示す変化量情報VIを、座標変換部3125に出力してもよい。他の一例として、トラッキング部3123は、6DOFの位置及び姿勢の変化量の一部を算出し、算出した6DOFの位置及び姿勢の変化量の一部を示す変化量情報VIを、座標変換部3125に出力してもよい。
 トラッキング部3123は、所定のトラッキング周期で、物体OBJの位置及び姿勢の変化量を算出してもよい。つまり、トラッキング部3123は、トラッキング周期に相当する時間が経過する都度、物体OBJの位置及び姿勢の変化量を算出してもよい。逆に言えば、トラッキング部3123がトラッキング処理を開始してから完了するまでに、トラッキング周期に相当する時間が必要であるとみなしてもよい。この場合、トラッキング部3123は、所定のトラッキング周期で、物体OBJの位置及び姿勢の変化量を示す変化量情報VIを座標変換部3125に出力してもよい。
 図18に示すように、トラッキング周期は、撮像装置21が物体OBJを撮像する2D撮像レートに対応する2D撮像周期と同じであってもよい。例えば、トラッキング周期は、トラッキング部3123が一秒間に数十回から数百回(一例として、500回)トラッキング処理を行うことが可能な周期であってもよい。この場合、例えば、図18に示すように、トラッキング部3123は、時刻taに画像データIMG_2D#taが生成されると同時に又は後に、時刻ta及び時刻taより前の時刻ta-1に生成された画像データIMG_2D#ta及びIMG_2D#ta-1と、時刻taに生成された画像データIMG_3D#taを用いて生成された三次元位置データWSDとを用いたトラッキング処理を行ってもよい。その結果、時刻ta-1及びtaの間における物体OBJの位置及び姿勢の変化量が算出される。同様に、例えば、図18に示すように、トラッキング部3123は、時刻ta+1に画像データIMG_2D#ta+1が生成されると同時に又は後に、時刻ta+1及び時刻ta+1よりも前の時刻taに生成された画像データIMG_2D#ta+1及びIMG_2D#taと、時刻ta+1に生成された画像データIMG_3D#ta+1を用いて生成された三次元位置データWSDを用いたトラッキング処理を行ってもよい。その結果、時刻ta及びta+1の間における物体OBJの位置及び姿勢の変化量が算出される。尚、図18に示す画像データIMG_2Dを生成するタイミングは、画像データIMG_2Dを生成するために撮像装置21が物体OBJを撮像するタイミングであるとみなしてもよい。
 更に、図18に示すように、トラッキング周期は、撮像装置22が物体OBJを撮像する3D撮像レートに対応する3D撮像周期と同じであってもよい。この場合、例えば、図18に示すように、トラッキング部3123は、時刻taに画像データIMG_3D#taが生成されると同時に又は後に、時刻taに生成された画像データIMG_3D#taを用いて生成された三次元位置データWSDと、時刻ta及び時刻taより前の時刻ta-1に生成された画像データIMG_2D#ta及びIMG_2D#ta-1とを用いたトラッキング処理を行ってもよい。その結果、時刻ta-1及びtaの間における物体OBJの位置及び姿勢の変化量が算出される。同様に、例えば、図18に示すように、トラッキング部3123は、時刻ta+1に画像データIMG_3D#ta+1が生成されると同時に又は後に、時刻ta+1に生成された画像データIMG_3D#ta+1を用いて生成された三次元位置データWSDと、時刻ta+1及び時刻ta+1より前の時刻taに生成された画像データIMG_2D#ta+1及びIMG_2D#taとを用いたトラッキング処理を行ってもよい。その結果、時刻ta及びta+1の間における物体OBJの位置及び姿勢の変化量が算出される。尚、図18に示す画像データIMG_3Dを生成するタイミングは、画像データIMG_3Dを生成するために撮像装置22が物体OBJを撮像するタイミングであるとみなしてもよい。
 但し、トラッキング周期は、2D撮像周期と同じでなくてもよい。例えば、トラッキング周期は、2D撮像周期よりも短くてもよい。例えば、トラッキング周期は、2D撮像周期よりも長くてもよい。同様に、トラッキング周期は、3D撮像周期と同じでなくてもよい。例えば、トラッキング周期は、3D撮像周期よりも短くてもよい。例えば、トラッキング周期は、3D撮像周期よりも長くてもよい。
 更に、図18に示すように、トラッキング周期は、上述した2Dマッチング部3121が2Dマッチング処理を行う2Dマッチング周期よりも短い。つまり、2Dマッチング周期は、トラッキング周期よりも長い。具体的には、トラッキング処理では、演算装置31は画像データIMG_2D及び三次元位置データWSDのうちの物体OBJの特徴箇所に関連するデータ部分に着目した演算を行えばよい一方で、マッチング処理では、演算装置31は画像データIMG_2D及び三次元位置データWSDの全体から物体OBJを探索する演算を行う必要がある。その結果、通常は、トラッキング処理を行うために必要な演算量は、マッチング処理を行うために必要な演算量よりも少なくなる。このため、通常は、トラッキング周期は、2Dマッチング周期よりも短くなる。このため、トラッキング部3123は、一の2Dマッチング周期が開始してから終了するまでの間に、トラッキング処理を複数回行ってもよい。つまり、トラッキング部3123は、2Dマッチング部3121が2Dマッチング処理を開始してから完了するまでの間に、トラッキング処理を複数回行ってもよい。
 尚、図18に示すように、2Dマッチング周期は、撮像装置21により物体OBJが撮像されてから画像データIMG_2Dに基づいて位置姿勢情報POI1が生成されるまでの時間と等価であるとみなしてもよい。同様に、トラッキング周期は、撮像装置21により第2時刻t2に物体OBJが撮像されてから第1時刻t1及び第2時刻t2に生成された二つの画像データIMG_2D#t1及びIMG_2D#t2と第2時刻t2に生成された画像データIMG_3Dを用いて生成された三次元位置データWSDとに基づいて変化量情報VIが生成されるまでの時間と等価であるとみなしてもよい。例えば、図18に示す例で言えば、トラッキング周期は、撮像装置21により第2時刻t2の一例である時刻taに物体OBJが撮像されてから第1時刻t1及び第2時刻t2の一例である時刻ta-1及び時刻taに生成された二つの画像データIMG_2Dと時刻taに生成された画像データIMG_3D#taを用いて生成された三次元位置データWSDとに基づいて変化量情報VIが生成されるまでの時間と等価であるとみなしてもよい。
 尚、トラッキング周期は、撮像装置21により第1時刻t1に物体OBJが撮像されてから第1時刻t1及び第2時刻t2に生成された二つの画像データIMG_2D#t1及びIMG_2D#t2と第2時刻t2に生成された画像データIMG_3Dを用いて生成された三次元位置データWSDとに基づいて変化量情報VIが生成されるまでの時間と等価であるとみなしてもよい。例えば、図18に示す例で言えば、トラッキング周期は、撮像装置21により第1時刻t1の一例である時刻ta-1に物体OBJが撮像されてから第1時刻t1及び第2時刻t2の一例である時刻ta-1及び時刻taに生成された二つの画像データIMG_2Dと時刻taに生成された画像データIMG_3D#taを用いて生成された三次元位置データWSDとに基づいて変化量情報VIが生成されるまでの時間と等価であるとみなしてもよい。この場合であっても、トラッキング周期は、2Dマッチング周期よりも短くてもよい。
 また、トラッキング周期が2Dマッチング周期よりも短い場合、図18に示すように、トラッキング部3123は、2Dマッチング処理のために用いられる画像データIMG_2Dとは異なる画像データIMG_2Dを用いて、トラッキング処理を行ってもよい。例えば、図18に示すように、2Dマッチング部3121は、時刻taに生成された画像データIMG_2Dを用いて2Dマッチング処理を行い、時刻taに生成された画像データIMG_2Dを用いた2Dマッチング処理が終了した後に、時刻tbに生成された画像データIMG_2Dを用いて2Dマッチング処理を行う。この場合、トラッキング部3123は、時刻ta及びtbとは異なる二つの時刻に生成された二つの画像データIMG_2Dと、時刻ta及びtbとは異なる時刻に生成された画像データIMG_3Dを用いて生成された三次元位置データWSDとを用いて、トラッキング処理を行ってもよい。例えば、図18に示す例では、トラッキング部3123は、二つの時刻ta+1及びta+2(或いは、時刻taから時刻tbの間の期間における任意の二つの時刻)にそれぞれ生成された二つの画像データIMG_2Dと、時刻ta+2(或いは、時刻taから時刻tbの間の期間における任意の時刻)に生成された画像データIMG_3Dを用いて生成された三次元位置データWSDとを用いたトラッキング処理を行うことで、時刻ta+1及びta+2の間における物体OBJの位置及び姿勢の変化量を算出してもよい。
 但し、トラッキング部3123は、2Dマッチング処理のために用いられる画像データIMG_2Dを用いて、トラッキング処理を行ってもよい。例えば、図18に示す例では、トラッキング部3123は、時刻ta及びta+1にそれぞれ生成された二つの画像データIMG_2Dと、時刻ta+1に生成された画像データIMG_3Dを用いて生成された三次元位置データWSDとを用いたトラッキング処理を行うことで、時刻ta及びta+1の間における物体OBJの位置及び姿勢の変化量を算出してもよい。
 更に、図18に示すように、トラッキング周期は、上述した3Dマッチング部3122が3Dマッチング処理を行う3Dマッチング周期よりも短い。つまり、3Dマッチング周期は、トラッキング周期よりも長い。このため、トラッキング部3123は、一の3Dマッチング周期が開始してから終了するまでの間に、トラッキング処理を複数回行ってもよい。つまり、トラッキング部3123は、3Dマッチング部3122が3Dマッチング処理を開始してから完了するまでの間に、トラッキング処理を複数回行ってもよい。
 尚、図18に示すように、3Dマッチング周期は、撮像装置22により物体OBJが撮像されてから画像データIMG_3Dを用いて生成される三次元位置データWSDに基づいて位置姿勢情報POI2が生成されるまでの時間と等価であるとみなしてもよい。
 トラッキング周期が3Dマッチング周期よりも短い場合、図18に示すように、トラッキング部3123は、3Dマッチング処理のために用いられる画像データIMG_3Dとは異なる画像データIMG_3Dを用いて生成された三次元位置データWSDを用いて、トラッキング処理を行ってもよい。例えば、図18に示すように、3Dマッチング部3122は、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDを用いて3Dマッチング処理を行い、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDを用いた3Dマッチング処理が終了した後に、時刻tbに生成された画像データIMG_3Dから生成された三次元位置データWSDを用いて3Dマッチング処理を行う。この場合、トラッキング部3123は、時刻ta及びtbとは異なる時刻に生成された画像データIMG_3Dから生成された三次元位置データWSDと、時刻ta及びtbとは異なる二つの時刻に生成された二つの画像データIMG_2Dとを用いて、トラッキング処理を行ってもよい。例えば、図18に示す例では、トラッキング部3123は、時刻ta+2(或いは、時刻taから時刻tbの間の期間における任意の時刻)に生成された画像データIMG_3Dから生成された三次元位置データWSDと、時刻ta+2及び時刻ta+2よりも前の時刻ta+1にそれぞれ生成された二つの画像データIMG_2D#ta+2及びIMG_2D#ta+1とを用いたトラッキング処理を行うことで、時刻ta+1及びta+2の間における物体OBJの位置及び姿勢の変化量を算出してもよい。
 但し、トラッキング部3123は、3Dマッチング処理のために用いられる画像データIMG_3Dを用いて生成された三次元位置データWSDを用いて、トラッキング処理を行ってもよい。例えば、図18に示す例では、トラッキング部3123は、時刻taに生成された画像データIMG_3Dから生成された三次元位置データWSDと、時刻ta及び時刻taより前の時刻ta-1に生成された画像データIMG_2D#ta及びIMG_2D#ta-1とを用いたトラッキング処理を行うことで、時刻ta-1及びtaの間における物体OBJの位置及び姿勢の変化量を算出してもよい。
 但し、トラッキング周期は、2Dマッチング周期よりも短くなくてもよい。例えば、トラッキング周期は、2Dマッチング周期と同じであってもよい。例えば、トラッキング周期は、2Dマッチング周期よりも長くてもよい。同様に、トラッキング周期は、3Dマッチング周期よりも短くなくてもよい。例えば、トラッキング周期は、3Dマッチング周期と同じであってもよい。例えば、トラッキング周期は、3Dマッチング周期よりも長くてもよい。
 尚、トラッキング部3123は、第1時刻t1及び第2時刻t2の間における2D撮像座標系内での物体OBJの位置及び姿勢の変化量を算出しなくてもよい。例えば、トラッキング部3123は、二つの画像データIMG_2D#t1及びIMG_2D#t2それぞれについて上述のマッチング処理を行うことによって、第1時刻t1及び第2時刻t2それぞれにおける2D撮像座標系内での物体OBJの位置及び姿勢を算出してもよい。尚、異なる時刻毎(例えば、時刻t1及びt2)の物体OBJの位置及び姿勢を算出していることから、ここでトラッキング部3123が行っている処理は、トラッキング処理ともいえる。ここで、トラッキング部3123は、上述の2Dマッチング部3121によるマッチング処理に用いる物体OBJの特徴箇所よりも少ない数の特徴箇所を用いて、二つの画像データIMG_2D#t1及びIMG_2D#t2それぞれについてマッチング処理を行ってもよい。この場合、トラッキング部3123は、マッチング処理に要する演算時間を短縮できるため、2Dマッチング部3121によるマッチング処理よりも短い周期でトラッキング処理を行うことができる。
 (2-2-4)座標変換部3125が行う位置算出処理
 座標変換部3125は、マッチング処理の結果及びトラッキング処理の結果に基づいて、グローバル座標系における物体OBJの位置を算出する。つまり、座標変換部3125は、グローバル座標系における物体OBJの位置として、位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿勢Rx(GL)、姿勢Ry(GL)及び姿勢Rz(GL)を算出する。座標変換部3125は、位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿勢Rx(GL)、姿勢Ry(GL)及び姿勢Rz(GL)を示す位置姿勢情報POI0を生成する。
 グローバル座標系における物体OBJの位置を算出するために、座標変換部3125は、トラッキング処理の結果に基づいてマッチング処理の結果を補正する。具体的には、図10に示すように、座標変換部3125は、マッチング処理の結果として、3Dマッチング部3122から、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、姿勢Rx(3D)、姿勢Ry(3D)及び姿勢Rz(3D)を示す位置姿勢情報POI2を取得する。更に、座標変換部3125は、トラッキング処理の結果として、トラッキング部3123から、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)を示す変化量情報VI、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を示す変化量情報VI、又は、変化量ΔTx(GL)、変化量ΔTy(GL)、変化量ΔTz(GL)、変化量ΔRx(GL)、変化量ΔRy(GL)及び変化量ΔRz(GL)を示す変化量情報VIを取得する。
 この場合、座標変換部3125は、まず、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させる。
 例えば、座標変換部3125が、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)を示す変化量情報VIを取得した場合には、位置姿勢情報POI2の座標系が3D撮像座標系である一方で、変化量情報VIの座標系が2D撮像座標系である。この場合、座標変換部3125は、上述した座標系情報(例えば、3D撮像座標系内の位置を2D撮像座標系内の位置に変換するための変換行列M(3Dto2D))を用いて、3D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2を、2D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2に変換することで、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させてもよい。或いは、座標変換部3125は、上述した座標系情報(例えば、2D撮像座標系内の位置を3D撮像座標系内の位置に変換するための変換行列M(2Dto3D))を用いて、2D撮像座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIを、3D撮像座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIに変換することで、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させてもよい。
 尚、上述した座標系情報(例えば、変換行列M(3Dto2D)又は変換行列M(2Dto3D))が用いられる場合には、撮像装置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は、位置姿勢情報POI2の座標系と変化量情報VIの座標系との双方を、グローバル座標系に揃えてもよい。この場合、座標変換部3125は、3D撮像座標系内の位置をグローバル座標系内の位置に変換するための変換行列M(3DtoGL)を用いて、3D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2を、グローバル座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2に変換してもよい。更に、座標変換部3125は、2D撮像座標系内の位置をグローバル座標系内の位置に変換するための変換行列M(2DtoGL)を用いて、2D撮像座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIを、グローバル座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIに変換してもよい。
 尚、変換行列M(2DtoGL)は、例えば、ロボットアーム12の各ジョイント122が規定する軸周りのリンク121の回転に起因した撮像装置21の位置座標の変化を反映する変換行列の積を含んでいてもよい。同様に、変換行列M(3DtoGL)は、例えば、ロボットアーム12の各ジョイント122が規定する軸周りのリンク121の回転に起因した撮像装置22の位置座標の変化を反映する変換行列の積を含んでいてもよい。この変換行列は、いわゆる回転行列であってもよいし、回転行列に並進成分を含む行列であってもよいし、オイラー角に基づく行列であってもよい。尚、変換行列を用いたロボットアームの座標変換そのものについては既存の変換方法を用いてもよいため、その詳細な説明は省略する。
 一方で、例えば、座標変換部3125が、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を示す変化量情報VIを取得した場合には、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に3D撮像座標系である。つまり、位置姿勢情報POI2の座標系と変化量情報VIの座標系とが既に一致している。この場合、座標変換部3125は、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させるための処理を別途行わなくてもよい。
 或いは、座標変換部3125が、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)を示す変化量情報VIを取得した場合においても、座標変換部3125は、位置姿勢情報POI2の座標系と変化量情報VIの座標系との双方を、グローバル座標系に揃えてもよい。この場合、座標変換部3125は、変換行列M(3DtoGL)を用いて、3D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2を、グローバル座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2に変換してもよい。更に、座標変換部3125は、変換行列M(3DtoGL)を用いて、3D撮像座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIを、グローバル座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIに変換してもよい。
 他方で、例えば、座標変換部3125が、変化量ΔTx(GL)、変化量ΔTy(GL)、変化量ΔTz(GL)、変化量ΔRx(GL)、変化量ΔRy(GL)及び変化量ΔRz(GL)を示す変化量情報VIを取得した場合には、位置姿勢情報POI2の座標系が3D撮像座標系である一方で、変化量情報VIの座標系がグローバル座標系である。この場合、座標変換部3125は、変換行列M(3DtoGL)を用いて、3D撮像座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2を、グローバル座標系における物体OBJの位置及び姿勢を示す位置姿勢情報POI2に変換することで、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させてもよい。但し、座標変換部3125は、グローバル座標系内の位置を3D撮像座標系内の位置に変換するための変換行列M(GLto3D)を用いて、グローバル座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIを、3D撮像座標系における物体OBJの位置及び姿勢の変化量を示す変化量情報VIに変換することで、位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させてもよい。
 位置姿勢情報POI2の座標系と変化量情報VIの座標系とを一致させた後、座標変換部3125は、トラッキング処理の結果である変化量情報VIに基づいて、マッチング処理の結果である位置姿勢情報POI2を補正する。
 例えば、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に3D撮像座標系である場合には、座標変換部3125は、変化量ΔTx(3D)に基づいて位置Tx(3D)を補正することで、3D撮像座標系のX軸方向(3D)における物体OBJの位置Tx’(3D)を算出してもよい。座標変換部3125は、変化量ΔTy(3D)に基づいて位置Ty(3D)を補正することで、3D撮像座標系のY軸方向(3D)における物体OBJの位置Ty’(3D)を算出してもよい。座標変換部3125は、変化量ΔTz(3D)に基づいて位置Tz(3D)を補正することで、3D撮像座標系のZ軸方向(3D)における物体OBJの位置Tz’(3D)を算出してもよい。座標変換部3125は、変化量ΔRx(3D)に基づいて姿勢Rx(3D)を補正することで、3D撮像座標系のX軸(3D)周りの物体OBJの姿勢Rx’(3D)を算出してもよい。座標変換部3125は、変化量ΔRy(3D)に基づいて姿勢Ry(3D)を補正することで、3D撮像座標系のY軸(3D)周りの物体OBJの姿勢Ry’(3D)を算出してもよい。座標変換部3125は、変化量ΔRz(3D)に基づいて姿勢Rz(3D)を補正することで、3D撮像座標系のZ軸(3D)周りの物体OBJの姿勢Rz’(3D)を算出してもよい。この場合、補正された位置姿勢情報POI2は、位置Tx’(3D)、位置Ty’(3D)、位置Tz’(3D)、姿勢Rx’(3D)、姿勢Ry’(3D)及び姿勢Rz’(3D)を示す位置姿勢情報POI2’となる。
 例えば、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に2D撮像座標系である場合には、座標変換部3125は、変化量ΔTx(2D)に基づいて位置Tx(2D)を補正することで、2D撮像座標系のX軸方向(2D)における物体OBJの位置Tx’(2D)を算出してもよい。座標変換部3125は、変化量ΔTy(2D)に基づいて位置Ty(2D)を補正することで、2D撮像座標系のY軸方向(2D)における物体OBJの位置Ty’(2D)を算出してもよい。座標変換部3125は、変化量ΔTz(2D)に基づいて位置Tz(2D)を補正することで、2D撮像座標系のZ軸方向(2D)における物体OBJの位置Tz’(2D)を算出してもよい。座標変換部3125は、変化量ΔRx(2D)に基づいて姿勢Rx(2D)を補正することで、2D撮像座標系のX軸(2D)周りの物体OBJの姿勢Rx’(2D)を算出してもよい。座標変換部3125は、変化量ΔRy(2D)に基づいて姿勢Ry(2D)を補正することで、2D撮像座標系のY軸(2D)周りの物体OBJの姿勢Ry’(2D)を算出してもよい。座標変換部3125は、変化量ΔRz(2D)に基づいて姿勢Rz(2D)を補正することで、2D撮像座標系のZ軸(2D)周りの物体OBJの姿勢Rz’(2D)を算出してもよい。この場合、補正された位置姿勢情報POI2は、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(2D)、姿勢Rx’(2D)、姿勢Ry’(2D)及び姿勢Rz’(2D)を示す位置姿勢情報POI2’となる。
 例えば、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共にグローバル座標系である場合には、座標変換部3125は、変化量ΔTx(GL)に基づいて位置Tx(GL)を補正することで、グローバル座標系のX軸方向(GL)における物体OBJの位置Tx’(GL)を算出してもよい。座標変換部3125は、変化量ΔTy(GL)に基づいて位置Ty(GL)を補正することで、グローバル座標系のY軸方向(GL)における物体OBJの位置Ty’(GL)を算出してもよい。座標変換部3125は、変化量ΔTz(GL)に基づいて位置Tz(GL)を補正することで、グローバル座標系のZ軸方向(GL)における物体OBJの位置Tz’(GL)を算出してもよい。座標変換部3125は、変化量ΔRx(GL)に基づいて姿勢Rx(GL)を補正することで、グローバル座標系のX軸(GL)周りの物体OBJの姿勢Rx’(GL)を算出してもよい。座標変換部3125は、変化量ΔRy(GL)に基づいて姿勢Ry(GL)を補正することで、グローバル座標系のY軸(GL)周りの物体OBJの姿勢Ry’(GL)を算出してもよい。座標変換部3125は、変化量ΔRz(GL)に基づいて姿勢Rz(GL)を補正することで、グローバル座標系のZ軸(GL)周りの物体OBJの姿勢Rz’(GL)を算出してもよい。この場合、補正された位置姿勢情報POI2は、位置Tx’(GL)、位置Ty’(GL)、位置Tz’(GL)、姿勢Rx’(GL)、姿勢Ry’(GL)及び姿勢Rz’(GL)を示す位置姿勢情報POI2’となる。
 尚、以下の説明では、重複する説明を省略するために、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に3D撮像座標系である場合に座標変換部3125が行う処理について説明する。但し、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に2D撮像座標系である場合であっても、座標変換部3125は、以下に説明する動作と同様の動作を行うことができる。具体的には、以下に説明する座標変換部3125の動作に関する説明は、「3D」という文言を「2D」という文言に置き換えることで、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共に2D撮像座標系である場合における座標変換部3125の動作に関する説明として流用可能である。或いは、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共にグローバル座標系である場合であっても、座標変換部3125は、以下に説明する動作と同様の動作を行うことができる。具体的には、以下に説明する座標変換部3125の動作に関する説明は、「3D」及び「3D撮像座標系」という文言を「GL」及び「グローバル座標系」という文言に置き換えることで、位置姿勢情報POI2の座標系及び変化量情報VIの座標系が共にグローバル座標系である場合における座標変換部3125の動作に関する説明として流用可能である。
 変化量情報VIに基づいて位置姿勢情報POI2を補正する処理は、変化量情報VIを位置姿勢情報POI2に加算する処理を含んでいてもよい。例えば、座標変換部3125は、変化量ΔTx(3D)を位置Tx(3D)に加算することで、位置Tx’(3D)を算出してもよい。座標変換部3125は、変化量ΔTy(3D)を位置Ty(3D)に加算することで、位置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)を姿勢Rz(3D)に加算することで、姿勢Rz’(3D)を算出してもよい。
 上述したように、変化量ΔTx(3D)が算出される周期であるトラッキング周期は、位置Tx(3D)が算出される周期である3Dマッチング周期よりも短い。この場合、トラッキング部3123は、位置Tx(3D)が新たに算出されてから位置Tx(3D)が次に算出されるまでの間に、変化量ΔTx(3D)を複数回算出する。この場合、座標変換部3125は、変化量ΔTx(3D)が新たに算出されるたびに、新たに算出された位置Tx(3D)と新たに算出された変化量ΔTx(3D)とに基づいて、位置Tx’(3D)を算出してもよい。具体的には、座標変換部3125は、変化量ΔTx(3D)が新たに算出されるたびに、位置Tx(3D)に対して、位置Tx(3D)を算出するためのマッチング処理が開始されてから現在時刻までに算出された変化量ΔTx(3D)の総和を加算することで、位置Tx’(3D)を算出してもよい。或いは、座標変換部3125は、変化量ΔTx(3D)が新たに算出されるたびに、その時点での位置Tx’(3D)(つまり、算出済みの変化量ΔTx(3D)が加算済みの位置Tx(3D))に対して、新たに算出された変化量ΔTx(3D)を加算することで、新たな位置Tx’(3D)を算出してもよい。従って、変化量ΔTx(3D)が算出される都度、位置Tx(3D)に加算される変化量ΔTx(3D)の総和が増えていく。
 この場合、位置Tx(3D)がそのまま位置Tx’(3D)として用いられる比較例と比較して、位置Tx’(3D)の更新頻度が高くなる。具体的には、位置Tx(3D)がそのまま位置Tx’(3D)として用いられる場合、位置Tx’(3D)の更新頻度は、位置Tx(3D)を算出する周期である3Dマッチング周期に依存する。一方で、変化量ΔTx(3D)に基づいて位置Tx(3D)を補正することで位置Tx’(3D)を算出する場合、位置Tx’(3D)の更新頻度は、変化量ΔTx(3D)を算出する周期であるトラッキング周期に依存する。その結果、トラッキング周期が3Dマッチング周期よりも短いがゆえに、位置Tx’(3D)の更新頻度が高くなる。後述するように位置Tx’(3D)に基づいてグローバル座標系内での物体OBJの位置が算出されるがゆえに、座標変換部3125は、トラッキング周期と同じ周期で、グローバル座標系内での物体OBJの位置を算出することができる。このため、位置姿勢算出部312は、より短い周期で、グローバル座標系内での物体OBJの位置を算出することができる。つまり、位置姿勢算出部312は、より高頻度に(言い換えれば、高速に)、グローバル座標系内での物体OBJの位置を算出することができる。
 但し、トラッキング処理によって算出される変化量ΔTx(3D)には、物体OBJの実際の位置に対するずれ量に相当する誤差が含まれている可能性がある。その結果、変化量ΔTx(3D)が算出されるたびに増加し続ける変化量ΔTx(3D)の総和に含まれる誤差もまた大きくなっていく可能性がある。その結果、変化量ΔTx(3D)が加算される都度、制御装置3が算出した物体OBJの位置Tx’(3D)と物体OBJの実際の位置との乖離が大きくなっていく可能性がある。一方で、マッチング処理によって算出される位置の精度は、トラッキング処理によって算出される位置の精度よりも高い。そこで、座標変換部3125は、位置Tx(3D)が新たに算出された場合には、位置Tx’(3D)を算出するために位置Tx(3D)に加算される変化量ΔTx(3D)の範囲を新たに設定し直してもよい。具体的には、座標変換部3125は、一の時刻の位置Tx(3D)が新たに算出された場合には、位置Tx(3D)に対して、当該一の時刻から現在時刻までに算出された変化量ΔTx(3D)の総和を加算することで、位置Tx’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Tx(3D)が新たに算出された場合には、位置Tx(3D)に対して、当該一の時刻の位置Tx(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔTx(3D)の総和を加算することで、位置Tx’(3D)を算出してもよい。その結果、位置姿勢算出部312は、位置Tx’(3D)を精度よく算出することができる。
 位置Tx’(3D)を算出する流れの一例が、図19に示されている。図19は、時刻t#0_0において撮像装置21及び22が物体OBJを撮像することで、画像データIMG_2D#0_0及びIMG_3D#0_0を生成すると共に、時刻t#0_0において2Dマッチング部3121が2Dマッチング処理を開始した例を示している。この場合、2Dマッチング部3121は、時刻t#0_0から2Dマッチング周期が経過した時刻t#1_0において、時刻t#0_0における物体OBJの位置及び姿勢を示す位置姿勢情報POI1#0_0の生成を完了する。
 更に、2Dマッチング部3121が画像データIMG_2D#0_0を用いた2Dマッチング処理を行っている間に、三次元位置データ生成部311は、画像データIMG_3D#0_0から三次元位置データWSD#0_0を生成する処理を行う。例えば、2Dマッチング部3121が画像データIMG_2D#0_0を用いた2Dマッチング処理を開始すると同時に、三次元位置データ生成部311は、画像データIMG_3D#0_0から三次元位置データWSD#0_0を生成する処理を開始してもよい。例えば、2Dマッチング部3121が画像データIMG_2D#0_0を用いた2Dマッチング処理を開始した後に、三次元位置データ生成部311は、画像データIMG_3D#0_0から三次元位置データWSD#0_0を生成する処理を開始してもよい。その結果、時刻t#0_0における物体OBJの三次元位置を示す三次元位置データWSD#0_0が生成される。尚、三次元位置データ生成部311は、2Dマッチング部3121が画像データIMG_2D#0_0を用いた2Dマッチング処理を完了した時点で三次元位置データWSD#0_0の生成が完了しているように、画像データIMG_3D#0_0から三次元位置データWSD#0_0を生成する処理を行ってもよい。
 その後、3Dマッチング部3122は、時刻t#1_0において、三次元位置データWSD#0_0と、位置姿勢情報POI1#0_0とに基づいて、3Dマッチング処理を開始する。つまり、3Dマッチング部3122は、時刻t#1_0に生成された位置姿勢情報POI1#0_0に基づいて、三次元モデルWM3の初期位置及び初期姿勢を決定する位置姿勢決定処理を行うその後、3Dマッチング部3122は、三次元位置データWSD#0_0と、決定した初期位置に決定した初期姿勢で配置された三次元モデルWM3とを用いて、マッチング処理を行う。
 尚、上述したように3Dマッチング処理が位置姿勢決定処理を含んでいない場合には、3Dマッチング部3122は、時刻t#1_0において、位置姿勢情報POI1#0_0に基づいて位置姿勢決定処理を行ってもよい。その後、位置姿勢決定処理によって三次元モデルWM3の初期位置及び初期姿勢が決定された後に、3Dマッチング部3122は、三次元位置データWSD#0_0と、初期位置に初期姿勢で配置された三次元モデルWM3とを用いて、3Dマッチング処理を開始してもよい。このため、3Dマッチング処理が位置姿勢決定処理を含んでいない場合には、3Dマッチング部3122は、位置姿勢決定処理を完了するために必要な時間を考慮した上で、3Dマッチング処理を開始してもよい。
 その結果、3Dマッチング部3122は、時刻t#1_0から3Dマッチング周期が経過した時刻t#2_0において、時刻t#0_0における物体OBJの位置及び姿勢を示す位置姿勢情報POI2#0_0の生成(図19に示す例では、X軸方向(3D)における位置Tx(3D)#0_0の算出)を完了する。ここで、3Dマッチング部3122が位置姿勢情報POI2#0_0の生成を完了した時刻t#2_0における物体OBJの位置及び姿勢は、位置姿勢情報POI2#0_0が示す時刻t#0_0(つまり、位置姿勢情報POI2#0_0を生成するためのマッチング処理が開始された時刻)における物体OBJの位置及び姿勢とは異なる可能性がある。しかしながら、時刻t#0_0から時刻t#2_0までの間の物体の位置及び姿勢の変化量は、トラッキング処理によって算出されている。このため、座標変換部3125は、時刻t#0_0の物体の位置及び姿勢を示す位置姿勢情報POI2#0_0に対して、時刻t#0_0から現在の時刻に相当する時刻t#2_0までの間に算出された変化量の総和を加算する。例えば、座標変換部3125は、位置Tx(3D)#0_0に対して、時刻t#0_0から現在の時刻に相当する時刻t#2_0までの間に算出された変化量の総和を加算することで、時刻t#2_0における物体OBJの位置Tx’(3D)を算出する。図19に示す例では、時刻t#0_0から時刻t#2_0までの間において、トラッキング処理によって、時刻t#0_0と時刻t#0_1との間での変化量ΔTx(3D)#0_0と、時刻t#0_1と時刻t#0_2との間での変化量ΔTx(3D)#0_1と、・・・、時刻t#0_Nと時刻t#1_0との間での変化量ΔTx(3D)#0_Nと、時刻t#1_0と時刻t#1_1との間での変化量ΔTx(3D)#1_0と、時刻t#1_1と時刻t#1_2との間での変化量ΔTx(3D)#1_1と、・・・、時刻t#1_Nと時刻t#2_0との間での変化量ΔTx(3D)#1_Nとが算出されている。このため、時刻t#2_0以降は、位置Tx(3D)#0_0+変化量ΔTx(3D)#0_0+変化量ΔTx(3D)#0_1+・・・+変化量ΔTx(3D)#0_N+変化量ΔTx(3D)#1_0+変化量ΔTx(3D)#1_1+・・・+変化量ΔTx(3D)#1_Nが、位置Tx’(3D)として用いられる。
 その後、時刻t#2_1において、トラッキング処理により、時刻t#2_0と時刻t#2_1との間での変化量ΔTx(3D)#2_0が新たに算出される。この場合、座標変換部3125は、現在の位置Tx’(3D)に対して、新たに算出された変化量ΔTx(3D)#2_0を更に加算する。つまり、時刻t#2_1以降は、位置Tx(3D)#0_0+変化量ΔTx(3D)#0_0+変化量ΔTx(3D)#0_1+・・・+変化量ΔTx(3D)#0_N+変化量ΔTx(3D)#1_0+変化量ΔTx(3D)#1_1+・・・+変化量ΔTx(3D)#1_N+変化量ΔTx(3D)#2_0が、位置Tx’(3D)として用いられる。
 その後、時刻t#2_2において、トラッキング処理により、時刻t#2_1と時刻t#2_2との間での変化量ΔTx(3D)#2_1が新たに算出される。この場合、座標変換部3125は、現在の位置Tx’(3D)に対して、新たに算出された変化量ΔTx(3D)#2_1を更に加算する。つまり、時刻t#2_1以降は、位置Tx(3D)#0_0+変化量ΔTx(3D)#0_0+変化量ΔTx(3D)#0_1+・・・+変化量ΔTx(3D)#0_N+変化量ΔTx(3D)#1_0+変化量ΔTx(3D)#1_1+・・・+変化量ΔTx(3D)#1_N+変化量ΔTx(3D)#2_0+変化量ΔTx(3D)#2_1が、位置Tx’(3D)として用いられる。
 一方で、2Dマッチング部3121は、時刻t#1_0において、時刻t#0_0における物体OBJの位置及び姿勢を示す位置姿勢情報POI1#0_0の生成を完了した後、時刻t#1_0において撮像装置21が物体OBJを撮像することで生成する画像データIMG_2D#1_0を用いた2Dマッチング処理を新たに開始する。この場合、2Dマッチング部3121は、時刻t#1_0から2Dマッチング周期が経過した時刻t#2_0において、時刻t#1_0における物体OBJの位置及び姿勢を示す位置姿勢情報POI1#1_0の生成を完了する。
 更に、2Dマッチング部3121が画像データIMG_2D#1_0を用いた2Dマッチング処理を行っている間に、三次元位置データ生成部311は、画像データIMG_3D#1_0から三次元位置データWSD#1_0を生成する処理を行う。例えば、2Dマッチング部3121が画像データIMG_2D#1_0を用いた2Dマッチング処理を開始すると同時に、三次元位置データ生成部311は、画像データIMG_3D#1_0から三次元位置データWSD#1_0を生成する処理を開始してもよい。例えば、2Dマッチング部3121が画像データIMG_2D#1_0を用いた2Dマッチング処理を開始した後に、三次元位置データ生成部311は、画像データIMG_3D#1_0から三次元位置データWSD#1_0を生成する処理を開始してもよい。その結果、時刻t#1_0における物体OBJの三次元位置を示す三次元位置データWSD#1_0が生成される。尚、三次元位置データ生成部311は、2Dマッチング部3121が画像データIMG_2D#1_0を用いた2Dマッチング処理を完了した時点で三次元位置データWSD#1_0の生成が完了しているように、画像データIMG_3D#1_0から三次元位置データWSD#1_0を生成する処理を行ってもよい。
 その後、3Dマッチング部3122は、時刻t#2_0において、三次元位置データWSD#1_0と、位置姿勢情報POI1#1_0とに基づいて、3Dマッチング処理を開始する。その結果、3Dマッチング部3122は、時刻t#2_0から3Dマッチング周期が経過した時刻t#3_0において、時刻t#1_0における物体OBJの位置及び姿勢を示す位置姿勢情報POI2#1_0の生成(図19に示す例では、X軸方向(3D)における位置Tx(3D)#1_0の算出)を完了する。このように位置姿勢情報POI2が新たに生成された(図19に示す例では、位置Tx(3D)が新たに算出された)ため、座標変換部3125は、位置Tx’(3D)を算出するために位置Tx(3D)に加算される変化量ΔTx(3D)の範囲を新たに設定し直す。具体的には、時刻t#1_0の位置Tx(3D)#1_0が新たに算出されたがゆえに、座標変換部3125は、時刻t#1_0から現在時刻までに算出された変化量ΔTx(3D)の範囲を、位置Tx(3D)#1_0に加算される変化量ΔTx(3D)の範囲として新たに設定する。このため、時刻t#3_0以降は、位置Tx(3D)#1_0+変化量ΔTx(3D)#1_0+変化量ΔTx(3D)#1_1+・・・+変化量ΔTx(3D)#1_N+変化量ΔTx(3D)#2_0+変化量ΔTx(3D)#2_1+・・・+変化量ΔTx(3D)#2_Nが、位置Tx’(3D)として用いられる。
 以降、同様の動作が繰り返される。
 尚、重複する説明を省略するために図示しないものの、座標変換部3125は、位置Tx’(3D)を算出する場合と同様に、位置Ty’(3D)、位置Tz’(3D)、姿勢Rx’(3D)、姿勢Ry’(3D)及び姿勢Rz’(3D)を算出する。つまり、座標変換部3125は、一の時刻の位置Ty(3D)に対して、一の時刻の位置Ty(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔTy(3D)の総和を加算することで、位置Ty’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Ty(3D)に対して、一の時刻から現在時刻までに算出された変化量ΔTy(3D)の総和を加算することで、位置Ty’(3D)を算出してもよい。また、座標変換部3125は、一の時刻の位置Tz(3D)に対して、一の時刻の位置Tz(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔTz(3D)の総和を加算することで、位置Tz’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Tz(3D)に対して、一の時刻から現在時刻までに算出された変化量ΔTz(3D)の総和を加算することで、位置Tz’(3D)を算出してもよい。また、座標変換部3125は、一の時刻の位置Rx(3D)に対して、一の時刻の位置Rx(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔRx(3D)の総和を加算することで、位置Rx’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Rx(3D)に対して、一の時刻から現在時刻までに算出された変化量ΔRx(3D)の総和を加算することで、位置Rx’(3D)を算出してもよい。また、座標変換部3125は、一の時刻の位置Ry(3D)に対して、一の時刻の位置Ry(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔRy(3D)の総和を加算することで、位置Ry’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Ry(3D)に対して、一の時刻から現在時刻までに算出された変化量ΔRy(3D)の総和を加算することで、位置Ry’(3D)を算出してもよい。また、座標変換部3125は、一の時刻の位置Rz(3D)に対して、一の時刻の位置Rz(3D)を算出するためのマッチング処理が開始された時刻から現在時刻までに算出された変化量ΔRz(3D)の総和を加算することで、位置Rz’(3D)を算出してもよい。座標変換部3125は、一の時刻の位置Rz(3D)に対して、一の時刻から現在時刻までに算出された変化量ΔRz(3D)の総和を加算することで、位置Rz’(3D)を算出してもよい。
 その後、座標変換部3125は、位置Tx’(3D)、位置Ty’(3D)、位置Tz’(3D)、姿勢Rx’(3D)、姿勢Ry’(3D)及び姿勢Rz’(3D)に基づいて、グローバル座標系における物体OBJの位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿勢Rx(GL)、姿勢Ry(GL)及び姿勢Rz(GL)を算出する。つまり、座標変換部3125は、3D撮像座標系内での物体OBJの6DOFの位置(或いは、場合によっては、2D撮像座標系内での物体OBJの6DOFの位置)に基づいて、グローバル座標系における物体OBJの6DOFの位置を算出する。座標変換部3125は、位置Tx(GL)、位置Ty(GL)、位置Tz(GL)、姿勢Rx(GL)、姿勢Ry(GL)及び姿勢Rz(GL)を示す位置姿勢情報POI0を生成する。
 例えば、座標変換部3125は、3D撮像座標系(或いは、3D撮像座標系)内の位置をグローバル座標系内の位置に変換するための変換行列M(3DtoGL)を用いて、3D撮像座標系内での物体OBJの6DOFの位置(或いは、2D撮像座標系内での物体OBJの6DOFの位置)を、グローバル座標系内での物体OBJの6DOFの位置に変換してもよい。
 但し、変化量情報VIに基づいて位置姿勢情報POI2が補正された結果、位置Tx’(GL)、位置Ty’(GL)、位置Tz’(GL)、姿勢Rx’(GL)、姿勢Ry’(GL)及び姿勢Rz’(GL)を示す位置姿勢情報POI2’が生成されている場合には、位置姿勢情報POI2’が、位置姿勢情報POI0として用いられてもよい。この場合、座標変換部3125は、上述した変換行列M(3DtoGL)に基づく座標変換を必ずしも行わなくてもよい。
 (3)ロボットシステムSYSの技術的効果
 以上説明したように、制御装置3は、トラッキング処理の結果に基づいてマッチング処理の結果を補正することで、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出している。このため、以下に詳細に説明するように、トラッキング処理の結果を用いることなくマッチング処理結果に基づいてグローバル座標系における物体OBJの位置及び姿勢の少なくとも一方が算出される場合と比較して、制御装置3は、より短い周期で(つまり、より高い頻度で)、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出することができる。つまり、位置姿勢算出部312は、より高速に、グローバル座標系における物体OBJの位置及び姿勢の少なくとも一方を算出することができる。その結果、制御装置3は、より高い頻度でロボット制御信号を生成(つまり、更新)し、且つ、ロボット1に出力することができる。尚、制御装置3は、より高速にロボット制御信号を生成(更新)し、且つ、ロボット1に出力することができるともいえる。
 例えば、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方が算出される都度、ロボット制御信号を生成してもよい。この場合、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方が算出される周期(例えば、上述したトラッキング周期)と同じ周期で、ロボット制御信号を生成することができる。その結果、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方が算出される周期(例えば、上述したトラッキング周期)と同じ周期で、ロボット制御信号をロボット1に出力することができる。仮に、トラッキング処理の結果を用いることなくマッチング処理の結果に基づいてグローバル座標系における物体OBJの位置及び姿勢の少なくとも一方が算出される場合には、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方が算出される周期である2Dマッチング周期又は3Dマッチング周期と同じ周期(典型的には、トラッキング周期よりも短い周期)で、ロボット制御信号を生成し且つ出力することになる。従って、本実施形態では、この場合と比較して、制御装置3は、より高い頻度で(より高速に)ロボット制御信号を生成(つまり、更新)し、且つ、ロボット1に出力することができる。尚、制御装置3は、物体OBJの位置が算出される周期とは異なる周期(例えば、上述したトラッキング周期とは異なる周期)で、ロボット制御信号を生成し且つ出力してもよい。
 このような効果は、特に、ロボット1と物体OBJとの少なくとも一方が移動している(特に、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している)場合に有益である。なぜならば、ロボット1と物体OBJとの少なくとも一方が移動している状況下で物体OBJの位置を算出する頻度が低くなるほど、制御装置3が算出した物体OBJの位置と物体OBJの実際の位置との乖離度が大きい期間が長くなってしまうからである。同様に、ロボット1と物体OBJとの少なくとも一方が移動している状況下で物体OBJの姿勢を算出する頻度が低くなるほど、制御装置3が算出した物体OBJの姿勢と物体OBJの実際の姿勢との乖離度が大きい期間が長くなってしまう。本実施形態では、制御装置3は、より高い頻度で(より高速に)グローバル座標系における物体OBJの位置を算出するがゆえに、制御装置3が算出した物体OBJの位置と物体OBJの実際の位置との乖離度が相対的に小さくなる。同様に、制御装置3は、より高い頻度で(より高速に)グローバル座標系における物体OBJの姿勢を算出するがゆえに、制御装置3が算出した物体OBJの姿勢と物体OBJの実際の姿勢との乖離度が相対的に小さくなる。従って、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方を高い頻度で算出することで、実質的に、物体OBJの位置及び姿勢の少なくとも一方を高精度に算出することができる。その結果、制御装置3は、位置及び姿勢の少なくとも一方が高精度に且つ高頻度に算出される物体OBJに対して所望の処理を行うようにロボット1を制御するためのロボット制御信号を適切に生成(つまり、更新)し、且つ、ロボット1に出力することができる。その結果、ロボット1の動きが意図した動きとは異なった動きとなってしまう可能性が低くなる。
 例えば、図5(a)から図5(d)に示すように移動するワークWをロボット1が保持する場合には、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方の算出周期に合わせて、移動するワークWに追従するロボット1の動きを制御(つまり、ロボット制御信号を生成及び出力)することができる。このため、ロボット1の動きが、移動するワークWを追従するための所望の動きからずれていたとしても、ロボット1の動きは、ワークWの位置及び姿勢の少なくとも一方の算出周期に合わせて高頻度(高速)に修正される。一例として、移動するワークWの動きが不規則であったとしても、不規則なワークWの動きに合わせて、ロボット1の動きは、高頻度(高速)に修正される。他の一例として、ワークWが高速に移動する場合であったとしても、高速なワークWの動きに合わせて、ロボット1の動きは、高頻度(高速)に修正される。このため、ロボット1は、無駄な動きを少なくしつつ、移動するワークWに追従することができる。その結果、ロボット1は、無駄な動きを少なくしつつ、移動するワークWを保持することができる。図5(a)から図5(d)に示す例に限らず、ロボット1は、無駄な動きを少なくしつつ、物体OBJに対して動くことができる。更に、物体OBJの位置及び姿勢の少なくとも一方が高頻度に算出されるがゆえに、物体OBJが撮像ユニット2の撮像範囲(視野)から外れてしまう可能性が低くなる。このため、ロボット1は、物体OBJを見失なうことなく、物体OBJに対して正確且つ高速に動き(例えば、物体OBJを正確且つ高速に追従し)、エンドエフェクタ13で物体OBJに対して所望の処理を行うことができる。
 このように、ロボットシステムSYSが享受可能な効果が、ロボット1と物体OBJとの少なくとも一方が移動している場合に特に有益であることを考慮すれば、撮像装置21及び22は、ロボット1と物体OBJとの少なくとも一方が移動している期間中に物体OBJを撮像してもよい。つまり、撮像装置21及び22は、撮像装置21及び22と物体OBJとが相対移動中のタイミング(言い換えれば、時刻)で、物体OBJを撮像してもよい。例えば、撮像装置21は、撮像装置21と物体OBJとが相対移動中のタイミングで物体OBJを撮像することで、上述した2Dマッチング処理で用いられる画像データIMG_2Dを生成してもよい。例えば、撮像装置22は、撮像装置22と物体OBJとが相対移動中のタイミングで物体OBJを撮像することで、上述した3Dマッチング処理で用いられる画像データIMG_3Dを生成してもよい。例えば、撮像装置21は、撮像装置21と物体OBJとが相対移動中の時刻である第1時刻t1及び第2時刻t2のそれぞれにおいて物体OBJを撮像することで、上述したトラッキング処理で用いられる画像データIMG_2Dを生成してもよい。例えば、撮像装置21は、撮像装置21と物体OBJとが相対移動中の時刻である第3時刻t3において物体OBJを撮像することで、上述したトラッキング処理で用いられる画像データIMG_3Dを生成してもよい。
 また、本実施形態では、制御装置3は、2Dマッチング処理の結果(つまり、位置姿勢情報POI1)に基づいて、3Dマッチング処理を行うために用いられる三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定することができる。その結果、制御装置3は、物体OBJの実際の位置及び姿勢との乖離度が許容量以下となる三次元モデルWM3の初期位置及び初期姿勢を決定することができる。以下、その理由である。まず、2Dマッチング処理によって得られる位置姿勢情報POI1では、3Dマッチング処理によって得られる位置姿勢情報POI2と比較して、物体OBJの位置及び姿勢の少なくとも一方に関する情報が欠落する可能性は低くなる。というのも、2Dマッチング処理は、画像データIMG_2Dが示す画像そのものを用いて物体OBJを検出するがゆえに、物体OBJの位置及び姿勢の少なくとも一方に関する情報が欠落する可能性がそもそも低いからである。従って、2Dマッチング処理によって物体OBJの検出が成功する可能性は、高くなる。つまり、2Dマッチング処理によって、二次元モデルWM2と一致する物体OBJが検出される可能性は高くなる。言い換えれば、二次元モデルWM2に対応する物体OBJとは異なる物体が、2Dマッチング処理によって検出される可能性は低くなる。一方で、3Dマッチング処理は、物体OBJの一部の情報が欠落する可能性がある三次元位置データWSD(例えば、物体OBJの一部に相当する点群が欠落する可能性がある点群データ)を用いて物体OBJを検出する。このため、3Dマッチング処理による物体OBJの検出の成功に対して、三次元位置データWSDのデータ不足(例えば、点群の欠落)が大きく影響する。従って、3Dマッチング処理によって物体OBJの検出が成功する可能性は、2Dマッチング処理によって物体OBJの検出が成功する可能性よりも低くなる。つまり、3Dマッチング処理によって三次元モデルWM3と一致する物体OBJが検出される可能性は、2Dマッチング処理によって二次元モデルWM2と一致する物体OBJが検出される可能性よりも低くなる。言い換えれば、三次元モデルWM3に対応する物体OBJとは異なる物体が3Dマッチング処理によって検出される可能性は、二次元モデルWM2に対応する物体OBJとは異なる物体が2Dマッチング処理によって検出される可能性よりも高くなる。
 本実施形態では、この点を踏まえて、二次元モデルWM2に対応する物体OBJとは異なる物体が検出される可能性が低い2Dマッチング処理の結果に基づいて、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定することができる。その結果、制御装置3は、2Dマッチング処理によって検出するべき(更には、当然ながら3Dマッチング処理によっても検出するべき)物体OBJの実際の位置及び姿勢との乖離度が許容量以下となる三次元モデルWM3の初期位置及び初期姿勢を確実に決定することができる。その結果、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方が決定されない場合と比較して、三次元モデルWM3に対応する物体OBJとは異なる物体が3Dマッチング処理によって検出される又は、三次元モデルWM3に対応する物体OBJが検出できない(検出エラーが発生する)可能性は低くなる。というのも、三次元モデルWM3の初期位置及び初期姿勢と物体OBJの実際の位置及び姿勢との乖離度が大きくなるほど、三次元モデルWM3に対応する物体OBJとは異なる物体が3Dマッチング処理によって検出される又は、三次元モデルWM3に対応する物体OBJが検出できない可能性が高くなるからである。従って、制御装置3は、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方が決定されない場合と比較して、三次元モデルWM3に対応する物体OBJの位置及び姿勢の少なくとも一方をより高精度に示す位置姿勢情報POI2を生成することができる。
 また、本実施形態では、制御装置3は、2Dマッチング処理の結果(つまり、位置姿勢情報POI1)に基づいて、3Dマッチング処理を行うために用いられる三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定することができる。ここで、2Dマッチング処理によって得られる位置姿勢情報POI1は、二次元画像を用いる2Dマッチング処理の特性上、X軸方向(2D)及びY軸方向(2D)における物体OBJの位置を高い精度で示している。更には、位置姿勢情報POI1は、二次元画像を用いる2Dマッチング処理の特性上、Z軸(2D)周りの物体OBJの姿勢を高い精度で示している。一方で、位置姿勢情報POI1は、X軸方向(2D)及びY軸方向(2D)における物体OBJの位置、及びZ軸(2D)周りの物体OBJの姿勢ほど精度は高くないが、Y軸方向(2D)における物体OBJの位置、及びX軸(2D)周り及びY軸(2D)周りの物体OBJの姿勢もある程度の精度で示している。そこで、本実施形態では、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方をより高い精度で算出するために、画像データIMG_2Dを用いた2Dマッチング処理と三次元位置データWSDを用いた3Dマッチング処理とを組み合わせる。具体的には、制御装置3は、位置姿勢情報POI1に基づいて、三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定する。このため、3Dマッチング処理が行われる3D撮像座標系において、三次元モデルWM3の初期位置は、物体OBJの実際の位置と大きく異なるものとなる可能性は低い。尚、特に、X軸方向(3D)及びY軸方向(3D)のそれぞれにおいて、三次元モデルWM3の初期位置は、物体OBJの実際の位置と近くなる可能性が高い。また、Z軸方向(3D)において、三次元モデルWM3の初期位置は、物体OBJの実際の位置と大きく異なるものとなる可能性は低い。同様に、3D撮像座標系において、三次元モデルWM3の初期姿勢は、物体OBJの実際の姿勢と大きく異なるものとなる可能性は低い。尚、特に、Z軸(3D)周りにおいて、三次元モデルWM3の初期姿勢は、物体OBJの実際の姿勢と近くなる可能性が高い。また、X軸(3D)周り及びY軸(3D)周りのそれぞれにおいて、三次元モデルWM3の初期姿勢は、物体OBJの実際の姿勢と大きく異なるものとなる可能性は低い。この状態において、3Dマッチング部3122は、マッチング処理を行う。その結果、位置姿勢情報POI1に基づいて三次元モデルWM3の初期位置及び初期姿勢が決定されない場合と比較して、3Dマッチング部3122は、3Dマッチング処理によって物体OBJを正確に検出することができる。なぜならば、三次元モデルWM3が、三次元位置データWSDが示す物体OBJの近傍に既に配置されているからである。更に、3Dマッチング部3122は、Z軸方向(3D)における物体OBJの位置を高い精度で示す三次元位置データWSDを用いて、Z軸方向(3D)において、三次元モデルWM3の特徴箇所を、三次元位置データWSDが示す物体OBJの特徴箇所に精度よく近づけることができる。このため、三次元位置データWSDが用いられない場合と比較して、3Dマッチング部3122は、物体OBJの位置及び姿勢の少なくとも一方をより高精度に示す位置姿勢情報POI2を生成することができる。特に、3Dマッチング部3122は、位置Tz(3D)、姿勢Rx(3D)及び姿勢Ry(3D)をより高精度に示す位置姿勢情報POI2を生成することができる。
 ここで、上述したようにロボット1と物体OBJとの少なくとも一方が移動している(つまり、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している)場合には、位置姿勢情報POI2の精度を向上させるために、マッチング処理のために撮像装置21が物体OBJを撮像する2D撮像時刻と、マッチング処理のために撮像装置22が物体OBJを撮像する3D撮像時刻とは、同じ時刻に設定されていてもよい。具体的には、仮に2D撮像時刻と3D撮像時刻とが異なる時刻である場合には、3Dマッチング部3122は、2D撮像時刻の物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI1に基づいて、2D撮像時刻とは異なる3D撮像時刻の物体OBJの位置を算出するための三次元モデルWM3の初期位置及び初期姿勢の少なくとも一方を決定することになる。しかしながら、ロボット1と物体OBJとの少なくとも一方が移動している場合には、2D撮像時刻における物体OBJの位置は、3D撮像時刻における物体OBJの位置とは異なる可能性が高い。このため、2D撮像時刻と3D撮像時刻とが異なる時刻である場合には、2D撮像時刻における物体OBJの位置に基づいて決定された三次元モデルWM3の初期位置は、3D撮像時刻における物体OBJの実際の位置と大きく異なるものとなる可能性が高くなる。同様に、2D撮像時刻における物体OBJの姿勢に基づいて決定された三次元モデルWM3の初期姿勢は、3D撮像時刻における物体OBJの実際の姿勢と大きく異なるものとなる可能性が高くなる。その結果、三次元モデルWM3の初期位置及び初期姿勢が物体OBJの実際の位置及び姿勢と同じ若しくは近い場合と比較して、三次元モデルWM3を用いて生成される位置姿勢情報POI2の精度が低下する可能性がある。しかるに、2D撮像時刻と3D撮像時刻とが同じ時刻である場合には、2D撮像時刻における物体OBJの位置及び姿勢は、3D撮像時刻における物体OBJの位置及び姿勢と同じになる。このため、三次元モデルWM3の初期位置及び初期姿勢が、物体OBJの実際の位置及び姿勢と大きく異なるものとなる可能性は低い。従って、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻となるように撮像装置21及び22を制御することで、位置姿勢情報POI2の精度の低下を防止することができる。
 尚、「2D撮像時刻と3D撮像時刻とが同じ時刻になる」状態は、「2D撮像時刻と3D撮像時刻とが完全に同じ時刻になっていないものの、2D撮像時刻と3D撮像時刻との時間的なずれが許容上限値よりも小さいがゆえに2D撮像時刻と3D撮像時刻とが実質的に同じ時刻であるとみなせる」状態を含んでいてもよいことは、既に上述したとおりである。この場合、2D撮像時刻と3D撮像時刻との時間的なずれの許容上限値は、位置姿勢情報POI2の精度が所望精度となる状態を実現可能な適切な値に設定されていてもよい。言い換えれば、2D撮像時刻と3D撮像時刻との時間的なずれの許容上限値は、2D撮像時刻と3D撮像時刻との時間的なずれに起因した位置姿勢情報POI2の精度の低下量が許容範囲に収まる状態を実現可能な適切な値に設定されていてもよい。例えば、2D撮像時刻と3D撮像時刻との時間的なずれによって、後述する物体OBJの位置及び姿勢の少なくとも一方の算出結果に誤差が生じる場合(つまり、位置姿勢情報POI2の精度が低下する場合)がある。この場合、位置姿勢情報POI2の精度の低下量が許容範囲を超えると、ロボットアーム12の制御誤差が生じる場合がある。ロボットアーム12の制御誤差は、エンドエフェクタ13の移動誤差となり、エンドエフェクタ13が物体OBJに対して所定の処理を適切に行うことができなくなる場合がある。このため、2D撮像時刻と3D撮像時刻との時間的なずれの許容上限値は、位置姿勢情報POI2の精度に基づく適切な値に設定されていてもよい。
 但し、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない(例えば、ロボット1と物体OBJが移動していない)場合には、2D撮像時刻と3D撮像時刻とが異なる時刻であったとしても、2D撮像時刻における物体OBJの位置が3D撮像時刻における物体OBJの位置と同じになる。従って、三次元モデルWM3の初期位置及び初期姿勢が、物体OBJの実際の位置及び姿勢と大きく異なるものとなる可能性は低い。従って、制御装置3は、2D撮像時刻と3D撮像時刻とが同じ時刻となるように撮像装置21及び22を制御しなくてもよい。例えば、制御装置3は、2D撮像時刻と3D撮像時刻とが異なる時刻となるように撮像装置21及び22を制御してもよい。この場合であっても、2D撮像時刻と3D撮像時刻との時間的なずれに起因して、位置姿勢情報POI2の精度が低下することはほとんどない。
 また、本実施形態では、制御装置3は、二つの画像データIMG_2D#t1及びIMG_2D#t2に加えて、三次元位置データWSDを用いてトラッキング処理を行うことができる。特に、制御装置3は、三次元位置データWSDから算出されるZ軸方向(2D)又はZ軸方向(3D)における物体OBJの特徴箇所の位置を示す位置情報PI3に基づいて、トラッキング処理を行うことができる。ここで、二次元画像を示す画像データIMG_2Dから算出されるZ軸方向(2D)における物体OBJの位置の精度は、必ずしも高いとは限らない。一方、画像データIMG_3Dから生成される三次元位置データWSDは、Z軸方向(3D)における物体OBJの位置を高い精度で示している。このため、本実施形態で説明したように制御装置3が位置情報PI3を用いてトラッキング処理を行うことで、物体OBJの位置及び姿勢の少なくとも一方の変化量をより高い精度で算出することができる。特に、トラッキング部3123は、変化量ΔTz(3D)、変化量ΔRx(3D)及び変化量ΔRy(3D)をより高精度に示す変化量情報VI、又は、変化量ΔTz(2D)、変化量ΔRx(2D)及び変化量ΔRy(2D)をより高精度に示す変化量情報VI、を生成することができる。その結果、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方を高精度に算出することができる。
 また、本実施形態では、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方の変化量を示す変化量情報VIを算出する処理がPnP問題を解く処理と実質的には等価であることを利用している。このため、制御装置3は、数学的演算手法を用いてPnP問題を解くことで、物体OBJの位置及び姿勢の少なくとも一方の変化量を示す変化量情報VIを生成することができる。このため、制御装置3は、PnP問題を利用することなく変化量情報VIを生成する場合と比較して、物体OBJの位置及び姿勢の少なくとも一方の変化量を高精度に示す変化量情報VIを生成することができる。
 ここで、上述したようにロボット1と物体OBJとの少なくとも一方が移動している(つまり、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している)場合には、変化量情報VIの精度を向上させるために、トラッキング処理のために撮像装置21が物体OBJを撮像する第2時刻t2と、トラッキング処理のために撮像装置22が物体OBJを撮像する第3時刻t3とは、同じ時刻に設定されていてもよい。具体的には、仮に第2時刻t2と第3時刻t3とが異なる時刻である場合には、トラッキング部3123は、第3時刻t3の物体OBJの位置を示す位置情報PI3を、第3時刻t3とは異なる第2時刻t2の物体OBJの位置を示す位置情報PI5に反映することになる。しかしながら、ロボット1と物体OBJとの少なくとも一方が移動している場合には、第2時刻t2における物体OBJの位置は、第3時刻t3における物体OBJの位置とは異なる可能性が高い。このため、第2時刻t2と第3時刻t3とが異なる時刻である場合には、位置情報PI3が反映された位置情報PI5の精度は、位置情報PI3が反映されていない位置情報PI5の精度よりも悪化してしまう可能性がある。なぜならば、位置情報PI3が反映された位置情報PI5は、本来の物体の位置とは異なる位置を示している可能性があるからである。その結果、変化量情報VIの精度もまた悪化してしまう可能性がある。しかるに、第2時刻t2と第3時刻t3とが同じ時刻である場合には、第2時刻t2における物体OBJの位置は、第3時刻t3における物体OBJの位置と同じになる。このため、位置情報PI3が反映された位置情報PI5の精度が、位置情報PI3が反映されていない位置情報PI5の精度よりも悪化することはない。従って、制御装置3は、第2時刻t2と第3時刻t3とが同じ時刻となるように撮像装置21及び22を制御することで、変化量情報VIの精度の低下を防止することができる。
 尚、「第2時刻t2と第3時刻t3とが同じ時刻になる」状態は、「第2時刻t2と第3時刻t3とが完全に同じ時刻になっていないものの、第2時刻t2と第3時刻t3との時間的なずれが許容上限値よりも小さいがゆえに第2時刻t2と第3時刻t3とが実質的に同じ時刻であるとみなせる」状態を含んでいてもよいことは、既に上述したとおりである。この場合、第2時刻t2と第3時刻t3との時間的なずれの許容上限値は、変化量情報VIの精度が所望精度となる状態を実現可能な適切な値に設定されていてもよい。言い換えれば、第2時刻t2と第3時刻t3との時間的なずれの許容上限値は、第2時刻t2と第3時刻t3との時間的なずれに起因した変化量情報VIの精度の低下量が許容範囲に収まる状態を実現可能な適切な値に設定されていてもよい。ここで、許容上限値は、ロボットアーム12の制御誤差に基づく許容上限値であってもよい。例えば、第2時刻t2と第3時刻t3との時間的なずれによって、変化量情報VIに誤差が生じる場合がある。この場合、変化量情報VIに生じる誤差によって、ロボットアーム12の制御誤差が生じる場合がある。ロボットアーム12の制御誤差は、エンドエフェクタ13の移動誤差となり、エンドエフェクタ13が物体OBJに対して所定の処理を適切に行うことができなくなる場合がある。尚、許容上限値が、ロボットアーム12によるエンドエフェクタ13の移動誤差の許容上限値ともいえる。また、例えば、撮像装置21及び22の撮像処理の同期誤差による、第2時刻t2と第3時刻t3との時間的なずれがあったとしても、第2時刻t2と第3時刻t3とが実質的に同じ時刻であるとみなしてもよい。尚、撮像装置21及び22の撮像処理の同期誤差は、制御装置3による撮像装置21及び22の撮像処理の同期制御誤差であってもよい。
 但し、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない(例えば、ロボット1と物体OBJが移動していない)場合には、第2時刻t2と第3時刻t3とが異なる時刻であったとしても、第2時刻t2における物体OBJの位置が第3時刻t3における物体OBJの位置と同じになる。従って、位置情報PI3が反映された位置情報PI5の精度が、位置情報PI3が反映されていない位置情報PI5の精度よりも悪化することはない。従って、制御装置3は、第2時刻t2と第3時刻t3とが同じ時刻となるように撮像装置21及び22を制御しなくてもよい。例えば、制御装置3は、第2時刻t2と第3時刻t3とが異なる時刻となるように撮像装置21及び22を制御してもよい。この場合であっても、第2時刻t2と第3時刻t3との時間的なずれに起因して、変化量情報VIの精度が低下することはほとんどない。
 また、上述したように、制御装置3は、トラッキング処理によって算出される変化量ΔTx(3D)に誤差が含まれていることを考慮し、位置Tx(3D)が新たに算出された場合には、位置Tx’(3D)を算出するために位置Tx(3D)に加算される変化量ΔTx(3D)の範囲を設定し直す。その結果、位置Tx(3D)に加算される変化量ΔTx(3D)の範囲が設定し直されない場合と比較して、制御装置3は、位置Tx’(3D)をより高精度に算出することができる。同様の理由から、制御装置3は、位置Ty’(3D)、位置Tz’(3D)、姿勢Rx’(3D)、姿勢Ry’(3D)及び姿勢Rz’(3D)、並びに、位置Tx’(2D)、位置Ty’(2D)、位置Tz’(2D)、姿勢Rx’(2D)、姿勢Ry’(2D)及び姿勢Rz’(2D)をより高精度に算出することができる。その結果、制御装置3は、物体OBJの位置及び姿勢の少なくとも一方をより一層高精度に算出することができる。
 また、画像データ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の取得頻度が高くなる。その結果、物体OBJの位置の算出頻度もまた高くなる。従って、上述したように、制御装置3は、位置が高頻度に算出される物体OBJに対して所望の処理を行うようにロボット1を制御するための制御信号を適切に生成(つまり、更新)し、且つ、ロボット1に出力することができる。
 (4)変形例
 続いて、ロボットシステムSYSの変形例について説明する。
 (4-1)第1変形例
 初めに、ロボットシステムSYSの第1変形例について説明する。尚、以下の説明では、ロボットシステムSYSの第1変形例を、“ロボットシステムSYSa”と称することで、上述したロボットシステムSYSと区別する。第1変形例におけるロボットシステムSYSaは、上述したロボットシステムSYSと比較して、制御装置3に代えて、制御装置3aを備えているという点で異なっていてもよい。ロボットシステムSYSaのその他の特徴は、ロボットシステムSYSのその他の特徴と同一であってもよい。このため、以下では、図20を参照しながら、第1変形例における制御装置3aについて説明する。図20は、第1変形例における制御装置3aの構成を示すブロック図である。
 図20に示すように、第1変形例における制御装置3aは、上述した制御装置3と比較して、演算装置31が、対象決定部314aを論理的な処理ブロックとして備えているという点で異なる。制御装置3aのその他の特徴は、制御装置3のその他の特徴と同一であってもよい。
 対象決定部314aは、撮像装置21が物体OBJを撮像することで生成する画像データIMG_2Dに基づいて、画像データIMG_2Dが示す画像に写り込んでいる物体OBJを、エンドエフェクタ13が所定の処理を行う対象物OBJ_targetとして決定する。具体的には、上述したように、位置姿勢算出部312は、2Dマッチング処理(特に、物体検出処理)を行うことで、画像データIMG_2Dが示す画像内で、二次元モデルデータIMG_2Mが示すテンプレート画像が示す物体OBJを検出する。この場合、対象決定部314aは、画像データIMG_2Dに基づいて、2Dマッチング処理によって検出された物体OBJを、対象物OBJ_targetとして決定するか否かを判定する。
 対象決定部314aが、2Dマッチング処理によって検出された物体OBJを対象物OBJ_targetとして決定した場合(つまり、物体OBJが対象物OBJ_targetである場合)には、位置姿勢算出部312は、物体OBJの位置及び姿勢を示す位置姿勢情報POI0を生成する。一方で、対象決定部314aが、2Dマッチング処理によって検出された物体OBJを対象物OBJ_targetとして決定しなかった場合(つまり、物体OBJが対象物OBJ_targetでない場合)には、位置姿勢算出部312は、物体OBJの位置及び姿勢を示す位置姿勢情報POI0を生成しなくてもよい。なぜならば、エンドエフェクタ13は、物体OBJに対して所定の処理を行うことがないがゆえに、物体OBJの位置及び姿勢を算出する必要性が低いからである。
 尚、対象決定部314aは、一の時点で対象物ONJ_targetとして決定されなかった物体OBJを、一の時点とは異なる他の時点で対象物OBJ_targetとして決定してもよい。例えば、上述したようにロボット1が複数のワークWを一つずつ順に載置装置Tに配置するためのリリース処理を行う場合には、対象決定部314aは、複数のワークWを順に対象物OBJ_targetとして決定(この場合、選択)してもよい。例えば、対象決定部314aは、一の時点で、一のワークWを対象物OBJ_targetとして決定する一方で、一のワークWとは異なる他のワークWを対象物OBJ_targetとして決定しなくてもよい。その後、一のワークWが載置装置Tに載置された後に、対象決定部314aは、他のワークWを対象物OBJ_targetとして決定してもよい。
 以下、このような対象決定部314aを用いた第1変形例におけるロボット制御処理の流れについて、図21を参照しながら説明する。図21は、第1変形例におけるロボット制御処理の流れを示すフローチャートである。尚、図4に示すロボット制御処理で行われる処理と同一の処理については、同一の参照符号を付することで、その詳細な説明を省略する。
 図21に示すように、第1変形例においても、上述した図4に示すロボット制御処理と同様に、制御装置3は、通信装置33を用いて、撮像装置21から画像データIMG_2Dを取得する(ステップS1)。更に、制御装置3は、通信装置33を用いて、撮像装置22から画像データIMG_3Dを取得する(ステップS1)。但し、第1変形例では、ステップS1の段階では、制御装置3は、撮像装置22から画像データIMG_3Dを取得しなくてもよい。
 その後、第1変形例では、まず、位置姿勢算出部312(特に、2Dマッチング部3121)が、ステップS1において取得された画像データIMG_2Dに基づいて、上述した2Dマッチング処理を行う(ステップS31a)。その結果、2Dマッチング部3121は、画像データIMG_2Dが示す画像内で、二次元モデルデータIMG_2Mが示すテンプレート画像が示す物体OBJを検出する。つまり、2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの特徴箇所を、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの特徴箇所に近づけるように、一のテンプレート画像から投影方向又は撮像方向が異なる他のテンプレート画像への変更、及びテンプレート画像に写り込んでいる物体OBJを平行移動、拡大、縮小及び/又は回転を行うことで、物体OBJを検出する。その結果、2Dマッチング部3121は、検出された物体OBJの位置及び姿勢を算出する。つまり、2Dマッチング部3121は、検出された物体OBJの位置及び姿勢を示す位置姿勢情報POI1を生成する。尚、特段の説明がない場合は、第1変形例における2Dマッチング処理は、上述した2Dマッチング処理と同一であってもよい。
 画像データIMG_2Dが示す画像によっては、当該画像内に、テンプレート画像が示す物体OBJが複数写り込んでいる可能性があることは、上述したとおりである。この場合、第1変形例では、2Dマッチング部3121は、テンプレート画像に写り込んでいる物体OBJの特徴箇所を、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの特徴箇所に近づける処理を、画像データIMG_2Dが示す画像に写り込んでいる複数の物体OBJを対象に順に行ってもよい。その結果、ステップS31aにおいて、2Dマッチング部3121は、複数の物体OBJを検出してもよい。つまり、2Dマッチング部3121は、テンプレート画像が示す同じ二次元形状を有する複数の物体OBJを検出してもよい。この場合、対象決定部314aは、後述する処理によって、複数の物体OBJのうちのいずれか一つを対象物OBJ_targetとして決定(この場合、選択)してもよい。
 同じテンプレート画像を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、同一であってもよい。「二つの物体OBJの三次元形状が同じ」状態は、「二つの物体OBJの三次元形状が文字通り完全に同じ」状態を含んでいてもよい。「二つの物体OBJの三次元形状が同じ」状態は、「二つの物体OBJが同じ三次元形状を有するように製造されたものの、製造誤差等に起因して二つの物体OBJの三次元形状が異なる」状態を含んでいてもよい。「二つの物体OBJの三次元形状が同じ」状態は、「二つの物体OBJの三次元形状が異なるものの、撮像装置21が二つの物体OBJを撮像することで生成される画像データIMG_2Dが示す画像上で、二つの物体OBJの形状が同一とみなせる」状態を含んでいてもよい。「二つの物体OBJの三次元形状が同じ」状態は、「二つの物体OBJが同じ三次元形状を有するように製造されたものの、二つの物体OBJの一方が二つの物体OBJの他方又は他の物体に接触することで二つの物体OBJの一方が変形したことに起因して、二つの物体OBJの三次元形状が異なる」状態を含んでいてもよい。「二つの物体OBJの三次元形状が同じ」状態は、「二つの物体OBJの一部であって且つ撮像装置21の撮像範囲(視野)に含まれる部分が同じ三次元形状を有する一方で、二つの物体OBJの他の一部であって且つ撮像装置21の撮像範囲(視野)に含まれない部分が異なる三次元形状を有する」状態を含んでいてもよい。このため、同じテンプレート画像を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状が実際には異なっていてもよい。なぜならば、同じテンプレート画像を用いて一の物体OBJと一の物体とは異なる他の物体OBJとが検出されたとしても、一の物体OBJと他の物体OBJとが異なる物体である以上、この段落で説明した理由により、一の物体OBJの三次元形状と他の物体OBJの三次元形状とが実際には異なる可能性があるからである。
 尚、テンプレート画像を用いる2Dマッチング処理に限らず、三次元モデルWM3(三次元モデルデータWMD)用いる3Dマッチング処理においても、3Dマッチング部3122は、同じ三次元モデルWM3を用いて複数の物体OBJを検出してもよい。つまり、3Dマッチング部3122は、三次元モデルWM3が示す同じ三次元形状を有する複数の物体OBJを検出してもよい。ここで、「同じ三次元モデルWM3を用いて検出される二つの物体OBJの三次元形状が同じ」状態は、上述した「同じテンプレート画像を用いて検出される二つの物体OBJの三次元形状が同じ」状態と同様の状態を含んでいてもよい。このため、同じ三次元モデルWM3を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状が実際には異なっていてもよい。なぜならば、同じ三次元モデルWM3を用いて一の物体OBJと一の物体とは異なる他の物体OBJとが検出されたとしても、一の物体OBJと他の物体OBJとが異なる物体である以上、一の物体OBJの三次元形状と他の物体OBJの三次元形状とが実際には異なる可能性があるからである。
 ステップS31aにおいて、2Dマッチング部3121は、互いに異なる複数の二次元形状をそれぞれ示す複数のテンプレート画像を用いて、2Dマッチング処理を行ってもよい。例えば、2Dマッチング部3121は、第1の二次元モデルを示す第1のテンプレート画像を用いて2Dマッチング処理を行うことで、第1のテンプレート画像が示す物体OBJ(例えば、第1の三次元形状を有する物体OBJ)を検出してもよい。例えば、2Dマッチング部3121は、第1の二次元モデルとは異なる第2の二次元モデルを示す第2のテンプレート画像を用いて2Dマッチング処理を行うことで、第2のテンプレート画像が示す物体OBJ(例えば、第1の三次元形状とは異なる第2の三次元形状を有する物体OBJ)を検出してもよい。この場合、対象決定部314aは、後述する処理によって、三次元形状が異なる複数の物体OBJのうちのいずれか一つを対象物OBJ_targetとして決定(この場合、選択)してもよい。
 異なるテンプレート画像を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、異なっていてもよい。或いは、異なるテンプレート画像を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、同一であってもよい。一例として、形状がわずかに異なる二次元モデルWM2をそれぞれ示す異なるテンプレート画像が用いられる場合には、異なるテンプレート画像を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、同一であってもよい。ここで、「異なるテンプレート画像を用いて検出される二つの物体OBJの三次元形状が同じ」状態は、上述した「同じテンプレート画像を用いて検出される二つの物体OBJの三次元形状が同じ」状態と同様の状態を含んでいてもよい。
 また、テンプレート画像を用いる2Dマッチング処理に限らず、三次元モデルWM3(三次元モデルデータWMD)用いる3Dマッチング処理においても、3Dマッチング部3122は、異なる三次元モデルWM3を用いて複数の物体OBJを検出してもよい。尚、異なる三次元モデルWM3を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、異なっていてもよい。或いは、異なる三次元モデルWM3を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、同一であってもよい。一例として、形状がわずかに異なる三次元モデルWM3が用いられる場合には、異なる三次元モデルWM3を用いて検出される複数の物体OBJのうちの少なくとも二つの三次元形状は、同一であってもよい。ここで、「異なる三次元モデルWM3を用いて検出される二つの物体OBJの三次元形状が同じ」状態は、上述した「同じテンプレート画像を用いて検出される二つの物体OBJの三次元形状が同じ」状態と同様の状態を含んでいてもよい。
 尚、ステップS31aの段階では、2Dマッチング部3121は、検出された物体OBJの位置及び姿勢を算出しなくてもよい。つまり、ステップS31aの段階では、2Dマッチング部3121は、検出された物体OBJの位置及び姿勢を示す位置姿勢情報POI1を生成しなくてもよい。なぜならば、ステップS31aの段階では、2Dマッチング処理によって検出された物体OBJが対象物OBJ_targetであるとは限らないからである。この場合、2Dマッチング部3121は、物体OBJが対象物OBJ_targetであると決定された後に、ステップS31aで検出された物体OBJの位置及び姿勢を算出してもよい。2Dマッチング部3121は、物体OBJが対象物OBJ_targetであると決定された後に、ステップS31aで検出された物体OBJの位置及び姿勢を示す位置姿勢情報POI1を生成してもよい。
 その後、対象決定部314aは、ステップS31aの2Dマッチング処理で検出された物体OBJを、対象物OBJ_targetとして決定するか否かを判定する(ステップS32aからステップS33a)。
 対象決定部314aは、2Dマッチング処理で検出された物体OBJが所定のマッチング条件を満たしているか否かを判定することで、物体OBJを対象物OBJ_targetとして決定するか否かを判定してもよい(ステップS32a)。マッチング条件は、ステップS31aにおいて行われた2Dマッチング処理の結果に関する条件を含んでいてもよい。この場合、対象決定部314aは、2Dマッチング処理の結果に基づいて、2Dマッチング処理で検出された物体OBJを、対象物OBJ_targetとして決定するか否かを判定しているとみなしてもよい。
 所定のマッチング条件は、マッチング類似度に関する条件を含んでいてもよい。具体的には、2Dマッチング処理では、位置姿勢算出部312は、テンプレート画像に写り込んでいる物体OBJの特徴箇所を、画像データIMG_2Dが示す画像に写り込んでいる物体OBJの特徴箇所に近づける際に、画像データIMG_2Dが示す画像のうちのテンプレート画像の物体OBJが合わせ込まれている類似画像部分とテンプレート画像との類似度であるマッチング類似度を算出していることは、既に上述したとおりである。この場合、マッチング類似度が高ければ高いほど、類似画像部分に写り込んでいる物体OBJは、テンプレート画像が示す物体OBJと同一である可能性が高くなる。このため、マッチング類似度が高ければ高いほど、2Dマッチング処理によって検出された物体OBJは、2Dマッチング処理によって検出されるべき(つまり、検出されることが期待されている)物体OBJと同一である可能性が高くなる。その結果、マッチング類似度が高ければ高いほど、2Dマッチング処理によって検出された物体OBJは、エンドエフェクタ13が所定の処理を行うべき物体OBJと同一である可能性が高くなる。
 このため、対象決定部314aは、マッチング類似度が所定のマッチング判定閾値を上回るか否かを判定することで、2Dマッチング処理で検出された物体OBJが所定のマッチング条件を満たしているか否かを判定してもよい。マッチング類似度がマッチング判定閾値を上回る場合には、対象決定部314aは、2Dマッチング処理で検出された物体OBJが所定のマッチング条件を満たしていると判定してもよい(ステップS32a:Yes)。他方で、マッチング類似度がマッチング判定閾値を下回る場合には、対象決定部314aは、2Dマッチング処理で検出された物体OBJが所定のマッチング条件を満たしていないと判定してもよい(ステップS32a:No)。
 尚、マッチング判定閾値は、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が所定の処理を行うべき物体OBJと同一である状態と、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が所定の処理を行うべき物体OBJと異なる状態とを、マッチング類似度から適切に区別することが可能な適切な値に設定されていてもよい。
 対象決定部314aは、上述したマッチング条件に加えて又は代えて、2Dマッチング処理で検出された物体OBJが所定のエッジ条件を満たしているか否かを判定することで、物体OBJを対象物OBJ_targetとして決定するか否かを判定してもよい(ステップS33a)。エッジ条件は、2Dマッチング処理の結果に基づいて検出された物体OBJのエッジの結果に関する条件を含んでいてもよい。
 所定のエッジ条件は、エッジ類似度に関する条件を含んでいてもよい。エッジ類似度は、ステップS1において取得された画像データIMG_2Dが示す画像のエッジである画像エッジと、2Dマッチング処理によって検出された物体OBJのエッジである物体エッジとの類似度を示す。例えば、エッジ類似度は、画像エッジのうちの物体エッジに重なる(つまり、重複する)重複エッジ部分の、物体エッジに対する割合を示す指標値であってもよい。例えば、エッジ類似度は、重複エッジ部分の長さの物体エッジの長さに対する割合を示す指標値であってもよい。このため、エッジ類似度は、エッジ重複度と称されてもよい。
 この場合、対象決定部314aは、エッジ類似度を算出してもよい。具体的には、対象決定部314aは、ステップS1において取得された画像データIMG_2Dが示す画像のエッジ(つまり、画像エッジ)を検出してもよい。例えば、対象決定部314aは、画像データIMG_2Dに対して必要に応じて前処理(例えば、ガンマ補正処理)を施した後に、微分フィルタ等のエッジ検出フィルタを用いて、画像エッジを検出してもよい。更に、対象決定部314aは、2Dマッチング処理によって検出された物体OBJのエッジ(つまり、物体エッジ)を検出してもよい。例えば、対象決定部314aは、画像データIMG_2Dが示す画像に対して合わせ込まれたテンプレート画像が示す物体OBJのワイヤフレーム(つまり、二次元モデルのワイヤフレーム)を、物体エッジとして検出してもよい。その後、対象決定部314aは、画像エッジ及び物体エッジの検出結果に基づいて、エッジ類似度を算出してもよい。
 エッジ類似度が高ければ高いほど、類似画像部分に写り込んでいる物体OBJのうちの遮蔽物によって隠されている部分が少なくなる。なぜならば、物体OBJの一部が遮蔽物によって隠されると、物体エッジのうちの遮蔽物によって隠された一部のエッジ部分は、画像エッジとして検出されなくなる。一方で、物体OBJの一部が遮蔽物によって隠されていたとしても、物体エッジのうちの遮蔽物によって隠された一部のエッジ部分は、物体エッジとして検出される。なぜならば、上述したように、対象決定部314aは、テンプレート画像が示す物体OBJのワイヤフレーム(つまり、遮蔽物の影響を受けていない、画像処理で用いられるワイヤフレーム)を物体エッジとして検出しているからである。このため、画像エッジのうちの物体エッジに重なる重複エッジ部分が少なくなり(例えば、短くなり)、その結果、エッジ類似度が低くなるからである。尚、遮蔽物の一例として、2Dマッチング処理によって検出された他の物体OBJがあげられる。遮蔽物の一例として、2Dマッチング処理によって検出されていない任意の物体があげられる。このため、エッジ類似度が高ければ高いほど、エンドエフェクタ13が物体OBJに対して所定の処理を行う際に、エンドエフェクタ13が遮蔽物に干渉する可能性が低くなる。つまり、エッジ類似度が高ければ高いほど、エンドエフェクタ13は、遮蔽物の干渉を受けることなく物体OBJに対して所定の処理を行うことができる可能性が高くなる。
 例えば、図22は、2Dマッチング処理によって検出された二つの物体OBJ(具体的には、位置及び姿勢の少なくとも一方が異なる物体OBJ#A及びOBJ#B)を示している。特に、図22は、物体OBJ#Bの上に物体OBJ#Aが積み重ねられている例を示している。この場合、物体OBJ#Bの一部は、物体OBJ#Aによって隠されている。その結果、物体OBJ#Bのエッジの一部は、物体OBJ#Aによって隠されているがゆえに、画像エッジとして検出されなくなる。その結果、画像エッジのうちの物体OBJ#Bのエッジに重なる重複エッジ部分が少なくなる。一方で、物体OBJ#Aのエッジは、物体OBJ#Bによって隠されていないがゆえに、画像エッジとして検出される。その結果、画像エッジのうちの物体OBJ#Aのエッジに重なる重複エッジ部分が少なくなることはない。このため、物体OBJ#Bによって隠されていない物体OBJ#Aのエッジ類似度は、物体OBJ#Aによって隠されている物体OBJ#Bのエッジ類似度よりも高くなる。この場合、物体OBJ#Bに対して所定の処理を行うエンドエフェクタ13は、物体OBJ#Bの一部を隠している物体OBJ#Aに干渉する可能性がある。例えば、エンドエフェクタ13が物体OBJ#Bを保持する保持処理を行う場合において、エンドエフェクタ13が物体OBJ#Bの上に積み重ねられている物体OBJ#Aに接触してしまう可能性がある。一方で、物体OBJ#Aに対して所定の処理を行うエンドエフェクタ13は、物体OBJ#Aの下にある物体OBJ#Bに干渉する可能性は低い。このため、この場合には、エッジ類似度が低い物体OBJ#Bよりも、エッジ類似度が高い物体OBJ#Aが、エンドエフェクタ13が所定の処理を行うべき物体OBJとして決定されるべきである。
 このため、対象決定部314aは、エッジ類似度が、所定のエッジ判定閾値を上回るか否かを判定することで、2Dマッチング処理で検出された物体OBJが所定のエッジ条件を満たしているか否かを判定してもよい。エッジ類似度がエッジ判定閾値を上回る場合には、対象決定部314aは、2Dマッチング処理で検出された物体OBJが所定のエッジ条件を満たしていると判定してもよい(ステップS33a:Yes)。他方で、エッジ類似度がエッジ判定閾値を下回る場合には、対象決定部314aは、2Dマッチング処理で検出された物体OBJが所定のエッジ条件を満たしていないと判定してもよい(ステップS33a:No)。
 尚、エッジ判定閾値は、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が他の物体OBJの干渉を受けることなく所定の処理を行うことが可能な物体OBJである状態と、2Dマッチング処理によって検出された物体OBJが、エンドエフェクタ13が他の物体OBJの干渉を受けることなく所定の処理を行うことが容易ではない物体OBJである状態とを、エッジ類似度から適切に区別することが可能な適切な値に設定されていてもよい。
 再び図21において、図21は、対象決定部314aが、物体OBJがマッチング条件及びエッジ条件の双方を満たしているか否かを判定することで、物体OBJを対象物OBJ_targetとして決定するか否かを判定する例を示している。この場合、物体OBJがマッチング条件及びエッジ条件の双方を満たしていると判定された場合に(ステップS32a:Yes且つステップS33a:Yes)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定してもよい(ステップS34a)。他方で、物体OBJがマッチング条件を満たしていない及び/又は物体OBJがエッジ条件を満たしていないと判定された場合に(ステップS32a:No、及び/又は、ステップS33a:No)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定しなくてもよい。
 尚、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定するか否かを判定するために、マッチング条件及びエッジ条件のいずれか一方を用いる一方で、マッチング条件及びエッジ条件のいずれか他方を用いなくてもよい。
 一例として、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定するか否かを判定するために、マッチング条件を用いる一方で、エッジ条件を用いなくてもよい。この場合、物体OBJがマッチング条件を満たしていると判定された場合に(ステップS32a:Yes)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定してもよい(ステップS34a)。他方で、物体OBJがマッチング条件を満たしていないと判定された場合に(ステップS32a:No)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定しなくてもよい。
 他の一例として、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定するか否かを判定するために、エッジ条件を用いる一方で、マッチング条件を用いなくてもよい。この場合、物体OBJがエッジ条件を満たしていると判定された場合に(ステップS33a:Yes)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定してもよい(ステップS34a)。他方で、物体OBJがエッジ条件を満たしていないと判定された場合に(ステップS33a:No)、対象決定部314aは、物体OBJを対象物OBJ_targetとして決定しなくてもよい。
 マッチング条件及びエッジ条件を満たす物体OBJが複数存在する場合には、対象決定部314aは、複数の物体OBJのうちのいずれか一つを、対象物OBJ_targetとして決定(この場合、選択)してもよい。例えば、対象決定部314aは、マッチング条件及びエッジ条件を満たす(マッチング類似度がマッチング判定閾値を上回り且つエッジ類似度がエッジ判定閾値を上回る)複数の物体OBJの中から、マッチング類似度が最も高い一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)してもよい。例えば、対象決定部314aは、マッチング条件及びエッジ条件を満たす(マッチング類似度がマッチング判定閾値を上回り且つエッジ類似度がエッジ判定閾値を上回る)複数の物体OBJの中から、エッジ類似度が最も高い一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)してもよい。
 或いは、対象決定部314aは、物体OBJがマッチング条件及びエッジ条件を満たすか否かを判定することなく、2Dマッチング処理によって検出された複数の物体OBJの中から、マッチング類似度が最も高い一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)してもよい。対象決定部314aは、物体OBJがマッチング条件及びエッジ条件を満たすか否かを判定することなく、2Dマッチング処理によって検出された複数の物体OBJの中から、エッジ類似度が最も高い一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)してもよい。つまり、対象決定部314aは、物体OBJがマッチング条件及びエッジ条件を満たすか否かを判定することなく、複数の物体OBJのうちのいずれか一つを、対象物OBJ_targetとして決定(この場合、選択)してもよい。
 或いは、対象決定部314aは、2Dマッチング処理によって検出された複数の物体OBJの中から、マッチング類似度及びエッジ類似度に基づいて選択される一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)してもよい。以下、2Dマッチング処理によって検出された第1の物体OBJ#1及び第2の物体OBJ#2の中から、マッチング類似度及びエッジ類似度に基づいて選択される一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する動作の一例について説明する。
 尚、以下の説明では、第1の物体OBJ#1のマッチング類似度を、「MS#1」という変数で表し、第2の物体OBJ#2のマッチング類似度を、「MS#2」という変数で表し、第1の物体OBJ#1のエッジ類似度を、「ES#1」という変数で表し、第2の物体OBJ#2のエッジ類似度を、「ES#2」という変数で表す。この場合、対象決定部314aは、第1物体OBJ#1及び第2の物体OBJ#2の中から、マッチング類似度MS#1、マッチング類似度MS#2、エッジ類似度ES#1及びエッジ類似度ES#2に基づいて、選択される一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する。
 まず、第1物体OBJ#1及び第2の物体OBJ#2の中に、他方の物体OBJよりもマッチング類似度及びエッジ類似度が共に高くなる一の物体OBJが存在する場合には、対象決定部314aは、当該一の物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する。具体的には、エッジ類似度ES#1がエッジ判定閾値を上回り、エッジ類似度ES#1がエッジ類似度ES#2よりも高く、マッチング類似度MS#1がマッチング判定閾値を上回り、且つ、マッチング類似度MS#1がマッチング類似度MS#2よりも高い場合には、対象決定部314aは、第1の物体OBJ#1を対象物OBJ_targetとして決定(この場合、選択)する。一方で、エッジ類似度ES#2がエッジ判定閾値を上回り、エッジ類似度ES#2がエッジ類似度ES#1よりも高く、マッチング類似度MS#2がマッチング判定閾値を上回り、且つ、マッチング類似度MS#2がマッチング類似度MS#1よりも高い場合には、対象決定部314aは、第2の物体OBJ#2を対象物OBJ_targetとして決定(この場合、選択)する。
 一方で、第1物体OBJ#1及び第2の物体OBJ#2の中に、他方の物体OBJよりもマッチング類似度及びエッジ類似度のいずれか一方が高くなる一方でマッチング類似度及びエッジ類似度のいずれか他方が低くなる一の物体OBJが存在する場合には、対象決定部314aは、マッチングレシオ及びエッジレシオを算出する。マッチングレシオは、マッチング類似度MS#1及びMS#2のうちの小さい方をマッチング類似度MS#1及びMS#2のうちの大きい方で除算することで得られる値を示す。つまり、マッチングレシオは、マッチング類似度MS#1及びMS#2のうちの小さい方のマッチング類似度MS#1及びMS#2のうちの大きい方に対する比率を示す。エッジレシオは、エッジ類似度ES#1及びES#2のうちの小さい方をエッジ類似度ES#1及びES#2のうちの大きい方で除算することで得られる値を示す。つまり、エッジレシオは、エッジ類似度ES#1及びES#2のうちの小さい方のエッジ類似度ES#1及びES#2のうちの大きい方に対する比率を示す。その後、対象決定部314aは、第1の物体OBJ#1及び第2の物体OBJ#2の中から、マッチングレシオ及びエッジレシオに基づいて選択される一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する。具体的には、マッチングレシオがエッジレシオよりも小さい場合には、エッジ類似度ES#1及びES#2の差分よりもマッチング類似度MS#1及びMS#2の差分の方が大きい。この場合には、対象決定部314aは、第1物体OBJ#1及び第2の物体OBJ#2のうちの他方の物体OBJよりもマッチング類似度が高くなる一の物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する。他方で、エッジレシオがマッチングレシオよりも小さい場合には、マッチング類似度MS#1及びMS#2の差分よりもエッジ類似度ES#1及びES#2の差分の方が大きい。この場合には、対象決定部314aは、第1物体OBJ#1及び第2の物体OBJ#2のうちの他方の物体OBJよりもエッジ類似度が高くなる一の物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する。
 一例として、エッジ類似度ES#1がエッジ判定閾値を上回り、エッジ類似度ES#1がエッジ類似度ES#2よりも高く、マッチング類似度MS#1がマッチング判定閾値を上回り、且つ、マッチング類似度MS#1がマッチング類似度MS#2よりも低い場合には、対象決定部314aは、マッチングレシオ=マッチング類似度MS#1/マッチング類似度MS#2という数式及びエッジレシオ=エッジ類似度ES#2/エッジ類似度ES#1という数式を用いて、マッチングレシオ及びエッジレシオを算出する。その後、マッチングレシオがエッジレシオよりも小さい場合には、対象決定部314aは、マッチング類似度MS#1よりも高いマッチング類似度MS#2を有する第2物体OBJ#2を、対象物OBJ_targetとして決定(この場合、選択)する。一方で、エッジレシオがマッチングレシオよりも小さい場合には、対象決定部314aは、エッジ類似度RS#2よりも高いエッジ類似度ES#1を有する第1物体OBJ#1を、対象物OBJ_targetとして決定(この場合、選択)する。
 他の一例として、エッジ類似度ES#2がエッジ判定閾値を上回り、エッジ類似度ES#2がエッジ類似度ES#1よりも高く、マッチング類似度MS#2がマッチング判定閾値を上回り、且つ、マッチング類似度MS#2がマッチング類似度MS#1よりも低い場合には、対象決定部314aは、マッチングレシオ=マッチング類似度MS#2/マッチング類似度MS#1という数式及びエッジレシオ=エッジ類似度ES#1/エッジ類似度ES#2という数式を用いて、マッチングレシオ及びエッジレシオを算出する。その後、マッチングレシオがエッジレシオよりも小さい場合には、対象決定部314aは、マッチング類似度MS#2よりも高いマッチング類似度MS#1を有する第1物体OBJ#1を、対象物OBJ_targetとして決定(この場合、選択)する。一方で、エッジレシオがマッチングレシオよりも小さい場合には、対象決定部314aは、エッジ類似度RS#1よりも高いエッジ類似度ES#2を有する第2物体OBJ#2を、対象物OBJ_targetとして決定(この場合、選択)する。
 尚、上述の説明から分かるように、対象物OBJ_targetとして決定される物体OBJのマッチング類似度及びエッジ類似度は、それぞれ、マッチング判定閾値及びエッジ判定閾値を超える。つまり、マッチング類似度及びエッジ類似度に基づいて選択される一つの物体OBJを、対象物OBJ_targetとして決定(この場合、選択)する場合において、対象決定部314aは、マッチング類似度及びエッジ類似度がそれぞれマッチング判定閾値及びエッジ判定閾値を超える物体OBJを、対象物OBJ_targetとして決定する。具体的には、エッジ類似度ES#1がエッジ判定閾値を上回り、且つ、マッチング類似度MS#1がマッチング判定閾値を上回る場合であって、且つ、エッジ類似度ES#2がエッジ判定閾値を下回る、及び/又は、マッチング類似度MS#2がマッチング判定閾値を下回る場合には、対象決定部314aは、第1の物体OBJ#1を対象物OBJ_targetとして決定(この場合、選択)する。一方で、エッジ類似度ES#2がエッジ判定閾値を上回り、且つ、マッチング類似度MS#2がマッチング判定閾値を上回る場合であって、且つ、エッジ類似度ES#1がエッジ判定閾値を下回る、及び/又は、マッチング類似度MS#1がマッチング判定閾値を下回る場合には、対象決定部314aは、第2の物体OBJ#2を対象物OBJ_targetとして決定(この場合、選択)する。他方で、エッジ類似度ES#1がエッジ判定閾値を下回る、及び/又は、マッチング類似度MS#1がマッチング判定閾値を下回る場合であって、且つ、エッジ類似度ES#2がエッジ判定閾値を下回る、及び/又は、マッチング類似度MS#2がマッチング判定閾値を下回る場合には、対象決定部314aは、第1の物体OBJ#1及び第2物体OBJ#2の双方を対象物OBJ_targetとして決定(この場合、選択)しない。
 ステップS34aにおいて、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定された場合には、位置姿勢算出部312は、対象物OBJ_targetとして決定された物体OBJの位置及び姿勢を算出する。具体的には、三次元位置データ生成部311は、ステップS1において取得された画像データIMG_3Dに基づいて、三次元位置データWSDを生成する(ステップS2)。但し、三次元位置データ生成部311は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されていない段階で、ステップS1において取得された画像データIMG_3Dに基づいて、三次元位置データWSDを生成しておいてもよい。つまり、三次元位置データ生成部311は、ステップS31aからステップS33aまでの処理が行われている期間中に、ステップS1において取得された画像データIMG_3Dに基づいて、三次元位置データWSDを生成しておいてもよい。
 その後、位置姿勢算出部312は、ステップS1において取得された画像データIMG_2DとステップS2において生成された三次元位置データWSDとに基づいて、物体OBJの位置及び姿勢の少なくとも一方を算出する(ステップS3)。その結果、位置姿勢算出部312は、物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成する(ステップS3)。
 但し、第1変形例では、ステップS31aにおいて、位置姿勢算出部312が2Dマッチング処理を既に行っている。このため、図21のステップS3において、位置姿勢算出部312は、2Dマッチング処理を改めて行わなくてもよい。この場合、位置姿勢算出部312は、ステップS31aにおける2Dマッチング処理の結果(つまり、位置姿勢情報POI1)に基づいて、トラッキング処理を行うために用いられる三次元モデルWM3の初期位置及び初期姿勢を決定してもよい。但し、図21のステップS3において、位置姿勢算出部312は、2Dマッチング処理を改めて行ってもよい。
 ここで、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない場合(例えば、ロボットアーム12と物体OBJが移動していない)には、マッチング処理のために撮像装置21が物体OBJを撮像する2D撮像時刻と、マッチング処理のために撮像装置22が物体OBJを撮像する3D撮像時刻とが、異なる時刻に設定されていてもよいことは、既に説明したとおりである。この場合、撮像装置22は、物体OBJが対象物OBJ_targetとして決定された後に、対象物OBJ_targetとして決定された物体OBJを撮像してもよい。つまり、撮像装置22は、物体OBJが対象物OBJ_targetとして決定されるか否かを判定するために撮像装置21が物体OBJを撮像した後に、物体OBJを撮像してもよい。その後、位置姿勢算出部312は、物体OBJが対象物OBJ_targetとして決定されるか否かを判定するために行った2Dマッチング処理の結果(つまり、位置姿勢情報POI1)と、撮像装置21が物体OBJを撮像した後に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSDとに基づいて、物体OBJの位置及び姿勢の少なくとも一方を算出してもよい。
 尚、対象決定部314aが、一の時点で対象物OBJ_targetとして決定されなかった物体OBJを、一の時点とは異なる他の時点で対象物OBJ_targetとして決定してもよいことは、上述したとおりである。例えば、ロボット1が複数のワークWを一つずつ順に載置装置Tに配置するためのリリース処理を行う場合には、対象決定部314aは、複数のワークWを順に対象物OBJ_targetとして決定(この場合、選択)してもよいことは、上述したとおりである。この場合、対象決定部314aは、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定された後においても、ロボット制御処理を終了すると判定されるまでは、図21のステップS1からステップS4までの一連の処理を繰り返してもよい。特に、対象決定部314aは、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定された後においても、ロボット制御処理を終了すると判定されるまでは、物体OBJを対象物OBJ_targetとして決定するか否かを判定する処理を繰り返してもよい。
 他方で、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されなかった場合には(ステップS32a:No、及び/又は、ステップS33a:No)、撮像装置21の撮像範囲(視野)に、物体OBJが存在しない可能性がある。或いは、撮像装置21が、適切な位置から物体OBJを撮像していない可能性がある。或いは、撮像装置21が、適切な姿勢で物体OBJを撮像していない可能性がある。つまり、撮像装置21が、適切な方向から物体OBJを撮像していない可能性がある。
 そこで、この場合には、制御装置3は、撮像装置21を物体OBJに対して移動させるように、ロボット1を制御してもよい(ステップS36a)。具体的には、制御装置3は、撮像装置21を物体OBJに対して移動させるようにロボット1(特に、ロボットアーム12)を制御するためのロボット制御信号を生成してもよい。その後、制御装置3は、生成したロボット制御信号をロボット1に出力してもよい。その結果、ロボット1(特に、ロボットアーム12)は、撮像装置21を物体OBJに対して移動させてもよい。
 撮像装置21が物体OBJに対して移動すると、撮像装置21が移動する前は物体OBJが存在していなかった撮像装置21の撮像範囲(視野)に、物体OBJが新たに存在する可能性が出てくる。撮像装置21が物体OBJに対して移動すると、撮像装置21が移動する前は適切な位置から物体OBJを撮像していなかった撮像装置21が、適切な位置から物体OBJを撮像することができる可能性が出てくる。撮像装置21が物体OBJに対して移動すると、撮像装置21が移動する前は適切な姿勢で物体OBJを撮像していなかった撮像装置21が、適切な姿勢で物体OBJを撮像することができる可能性が出てくる。つまり、撮像装置21が物体OBJに対して移動すると、撮像装置21が移動する前は適切な方向から物体OBJを撮像していなかった撮像装置21が、適切な方向から物体OBJを撮像することができる可能性が出てくる。従って、撮像装置21及び22を物体OBJに対して移動させない場合と比較して、制御装置3は、2Dマッチング処理によって検出された物体OBJを対象物OBJ_targetとして決定することができる可能性が高くなる。
 撮像装置21が移動した後には、図21のステップS1からステップS33aまでの処理が再度行われてもよい。つまり、制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるまで、撮像装置21を移動させる動作と、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定する動作とを交互に繰り返してもよい。
 制御装置3は、図23(a)に示すように、所望の回転軸周りに撮像装置21が回転移動するようにロボット1(特に、ロボットアーム12)を制御するためのロボット制御信号を生成してもよい。例えば、制御装置3は、X軸(2D)に沿った回転軸、Y軸(2D)に沿った回転軸及びZ軸(2D)に沿った回転軸のうちの少なくとも一つの周りに撮像装置21を回転移動させてもよい。尚、制御装置3は、X軸(3D)に沿った回転軸、Y軸(3D)に沿った回転軸及びZ軸(3D)に沿った回転軸のうちの少なくとも一つの周りに撮像装置21を回転移動させてもよい。制御装置3は、X軸(GL)に沿った回転軸、Y軸(GL)に沿った回転軸及びZ軸(GL)に沿った回転軸のうちの少なくとも一つの周りに撮像装置21を回転移動させてもよい。
 この場合、特に、制御装置3は、撮像装置21の光軸AX21に交差する回転軸周りに撮像装置21を回転移動させてもよい。上述したようにZ軸(2D)が光軸AX21に沿った軸であるため、制御装置3は、Z軸(2D)に交差する回転軸周りに撮像装置21を回転移動させてもよい。例えば、制御装置3は、Z軸(2D)に交差するX軸(2D)周りに撮像装置21を回転移動させてもよい。例えば、制御装置3は、Z軸(2D)に交差するY軸(2D)周りに撮像装置21を回転移動させてもよい。この場合、図23(a)に示すように、撮像装置21が物体OBJを撮像する方向が変わる。このため、撮像装置21が移動する前は適切な方向から物体OBJを撮像していなかった撮像装置21が、適切な方向から物体OBJを撮像することができる可能性が高くなりやすい。
 制御装置3は、図23(a)に示すように、X軸(2D)周りの正の回転方向に撮像装置21を回転移動させる第1回転移動動作と、X軸(2D)周りの負の回転方向に撮像装置21を回転移動させる第2回転移動動作と、Y軸(2D)周りの正の回転方向に撮像装置21を回転移動させる第3回転移動動作と、Y軸(2D)周りの負の回転方向に撮像装置21を回転移動させる第4回転移動動作とのうちの少なくとも一つを行ってもよい。制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるまで、第1回転移動動作から第4回転移動動作のうちの少なくとも二つを順に行ってもよい。例えば、制御装置3は、第1回転移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第2回転移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第3回転移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第4回転移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。
 他の一例として、制御装置3は、図23(b)に示すように、所望の並進軸に沿って撮像装置21が並進移動するようにロボット1(特に、ロボットアーム12)を制御するためのロボット制御信号を生成してもよい。例えば、制御装置3は、X軸(2D)、Y軸(2D)及びZ軸(2D)の少なくとも一つに沿って撮像装置21を並進移動させてもよい。尚、制御装置3は、X軸(3D)、Y軸(3D)及びZ軸(3D)の少なくとも一つに沿って撮像装置21を並進移動させてもよい。制御装置3は、X軸(GL)、Y軸(GL)及びZ軸(GL)の少なくとも一つに沿って撮像装置21を並進移動させてもよい。
 この場合、制御装置3は、撮像装置21の光軸AX21に交差する並進軸に沿って撮像装置21を並進移動させてもよい。上述したようにZ軸(2D)が光軸AX21に沿った軸であるため、制御装置3は、Z軸(2D)に交差する並進軸に沿って撮像装置21を並進移動させてもよい。例えば、制御装置3は、Z軸(2D)に交差するX軸(2D)に沿って撮像装置21を並進移動させてもよい。例えば、制御装置3は、Z軸(2D)に交差するY軸(2D)に沿って撮像装置21を並進移動させてもよい。この場合、図23(b)に示すように、撮像装置21が物体OBJを撮像する位置が変わる。このため、撮像装置21が移動する前は適切な位置から物体OBJを撮像していなかった撮像装置21が、適切な位置から物体OBJを撮像することができる可能性が高くなりやすい。
 制御装置3は、図23(b)に示すように、X軸(2D)に沿った正の並進方向に撮像装置21を並進移動させる第1並進移動動作と、X軸(2D)に沿った負の並進方向に撮像装置21を並進移動させる第2並進移動動作と、Y軸(2D)に沿った正の並進方向に撮像装置21を並進移動させる第3並進移動動作と、Y軸(2D)に沿った負の並進方向に撮像装置21を並進移動させる第4並進移動動作とのうちの少なくとも一つを行ってもよい。制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるまで、第1並進移動動作から第4並進移動動作のうちの少なくとも二つを順に行ってもよい。例えば、制御装置3は、第1並進移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第2並進移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第3並進移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。その結果、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、第4並進移動動作を行い、その後、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるか否かを判定してもよい。
 制御装置3は、撮像装置21を回転移動させる動作と、撮像装置21を並進移動させる動作とを交互に行ってもよい。例えば、制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるまで、上述した第1回転移動動作から第4回転移動動作を順に行ってもよい。その後、上述した第1回転移動動作から第4回転移動動作が行われた後においても、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと依然として判定される場合には、制御装置3は、撮像装置21が一の位置から他の位置へ移動させるように第1並進移動動作から第4並進動作のいずれか一つを行ってもよい。その後、制御装置3は、他の位置に位置する撮像装置21を用いて、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されるまで、第1回転移動動作から第4回転移動動作を順に行ってもよい。以降、制御装置3は、同様の動作を繰り返してもよい。
 この場合、制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されないと判定された場合には、撮像装置21を回転移動させる動作を、撮像装置21を並進移動させる動作よりも優先的に行ってもよい。なぜならば、撮像装置21が物体OBJを撮像する位置が変わるよりも、撮像装置21が物体OBJを撮像する方向が変わる方が、撮像装置21が物体OBJを適切に撮像することができる可能性が高くなるからである。
 以上説明したように、第1変形例の制御装置3は、2Dマッチング処理によって検出された物体OBJを対象物OBJ_targetとして決定するか否かを適切に判定することができる。このため、2Dマッチング処理によって複数の物体OBJが検出されたとしても、制御装置3は、複数の物体OBJのうちの一つを対象物OBJ_targetとして適切に決定することができる。
 例えば、制御装置3は、マッチング条件を満たす物体OBJを、対象物OBJ_targetとして決定することができる。この場合、制御装置3は、2Dマッチング処理によって検出することが期待されている物体OBJを、対象物OBJ_targetとして適切に決定することができる。つまり、制御装置3は、2Dマッチング処理によって検出するべきではない物体OBJを、誤って対象物OBJ_targetとして決定することはない。従って、エンドエフェクタ13は、2Dマッチング処理によって検出するべき物体OBJに対して、所定の処理を適切に行うことができる。
 例えば、制御装置3は、エッジ条件を満たす物体OBJを、対象物OBJ_targetとして決定することができる。この場合、制御装置3は、遮蔽物によって部分的に隠されている物体OBJよりも、遮蔽物によって隠されていない物体OBJを優先的に、対象物OBJ_targetとして決定することができる。ここで、遮蔽物によって部分的に隠されている物体OBJは、遮蔽物がその上に重なっている物体OBJであると想定される。このため、仮にエンドエフェクタ13がこのような物体OBJに対して所定の処理(例えば、上述した保持処理)を行おうとすると、遮蔽物がエンドエフェクタ13の処理にとって妨げとなる可能性がある。一方で、遮蔽物によって隠されていない物体OBJは、遮蔽物がその上に重なっていない物体OBJである。このため、仮にエンドエフェクタ13がこのような物体OBJに対して所定の処理(例えば、上述した保持処理)を行おうとした場合において、エンドエフェクタ13の処理が妨げられる可能性は低い。従って、制御装置3は、エンドエフェクタ13が所定の所定を適切に行うことができる可能性が高い物体OBJを、対象物OBJ_targetとして決定することができる。つまり、制御装置3は、エンドエフェクタ13が所定の所定を適切に行うことができない可能性が高い物体OBJを、対象物OBJ_targetとして決定することはない。従って、エンドエフェクタ13は、物体OBJに対して、所定の処理を適切に行うことができる。
 このようなエッジ条件を満たす物体OBJを対象物OBJ_targetとして決定することで実現可能な効果は、特に、載置装置T上においてランダムに積み重なっている複数のワークWに対してエンドエフェクタ13が所定の処理(例えば、保持処理)を行う場合に特に有効である。なぜならば、載置装置T上において複数のワークWがランダムに積み重なっている場合には、一のワークWの一部が他のワークWによって遮蔽されている可能性が高いからである。
 更に、第1変形例では、対象物OBJ_targetとして決定される物体OBJが見つからない場合には、制御装置3は、撮像装置21を移動(例えば、回転移動及び/又は並進移動)させた上で、2Dマッチング処理によって検出された物体OBJを対象物OBJ_targetとして決定するか否かを改めて判定することができる。このため、制御装置3は、対象物OBJ_targetとして決定される物体OBJを適切に見つけることができる。
 尚、2Dマッチング処理によって検出された物体OBJが対象物OBJ_targetとして決定された場合には、通常、制御装置3は、エンドエフェクタ13が物体OBJに近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成する。しかしながら、制御装置3は、2Dマッチング処理によって検出された物体OBJが対象物OBJ_targetとして決定される前に、2Dマッチング処理によって検出された物体OBJに向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。例えば、2Dマッチング処理によって複数の物体OBJが検出されている場合には、制御装置3は、2Dマッチング処理によって検出され且つマッチング類似度が最も高い物体OBJに向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。例えば、2Dマッチング処理によって複数の物体OBJが検出されている場合には、制御装置3は、2Dマッチング処理によって検出され且つエッジ類似度が最も高い物体OBJに向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。例えば、2Dマッチング処理によって単一の物体OBJが検出されている場合には、制御装置3は、2Dマッチング処理によって検出された物体OBJに向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。この場合、制御装置3は、2Dマッチング処理によって検出された物体OBJに向かってエンドエフェクタ13が近づいていく期間中に、図21に示すロボット制御処理(特に、物体OBJを対象物OBJ_targetとして決定するか否かを判定する処理)を行ってもよい。その結果、仮に2Dマッチング処理によって検出された物体OBJが対象物OBJ_targetとして決定された後において、エンドエフェクタ13が物体OBJに到達するまでに必要な時間が短くなる。
 2Dマッチング処理によって検出された物体OBJに向かってエンドエフェクタ13が近づいていく過程で、マッチング類似度又はエッジ類似度がより高い他の物体OBJが検出された場合には、制御装置3は、マッチング類似度又はエッジ類似度がより高い他の物体OBJに向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。例えば、図24(a)は、物体OBJ#1が対象物OBJ_targetとして決定される前に、マッチング類似度が「MR1」である物体OBJ#1に向かってエンドエフェクタ13を移動させるように制御されているロボットアーム12を示している。図24(a)に示す状況下で、図24(b)に示すように、マッチング類似度が「MR1」よりも高い「MR2」である物体OBJ#2が新たに検出されたとする。この場合、制御装置3は、図24(b)に示すように、物体OBJ#1に代えて物体OBJ#2に向かってエンドエフェクタ13が近づいていくようにロボットアーム12を制御するためのロボット制御信号を生成してもよい。例えば、制御装置3は、エンドエフェクタ13を用いて物体OBJ#2に対して所定の処理を行うために、エンドエフェクタ13の位置及び姿勢の少なくとも一方を変更させるようにロボット1(例えば、ロボットアーム12)を制御するためのロボット制御信号を生成してもよい。
 尚、上述した説明では、制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定されなかった場合に、撮像装置21を物体OBJに対して移動させるように、ロボット1を制御している(図21のステップS36a)。しかしながら、制御装置3は、2Dマッチング処理で検出された物体OBJが対象物OBJ_targetとして決定された場合においても、撮像装置21を物体OBJに対して移動させるように、ロボット1を制御してもよい。
 例えば、制御装置3は、画像データIMG_2Dが示す画像に物体OBJのエッジができるだけ多く写り込むように、撮像装置21を物体OBJに対して移動させてもよい。制御装置3は、撮像装置21を移動させる前と比較して、画像データIMG_2Dが示す画像に写り込んでいる物体OBJのエッジが多くなるように、撮像装置21を物体OBJに対して移動させてもよい。具体的には、制御装置3は、画像データIMG_2Dが示す画像に写り込む物体OBJのエッジの長さの総和ができるだけ大きくなるように、撮像装置21を物体OBJに対して移動させてもよい。制御装置3は、撮像装置21を移動させる前と比較して、画像データIMG_2Dが示す画像に写り込む物体OBJのエッジの長さの総和が大きくなるように、撮像装置21を物体OBJに対して移動させてもよい。その後、制御装置3は、図21のステップS1、S2及びS3の処理を再度行うことで、位置姿勢情報POI0を算出してもよい。尚、この場合には、対象物OBJ_targetとして決定された物体OBJが変わっていないため、制御装置3は、図21のステップ31aからステップS34aまでの処理を行わなくてもよい。この場合、撮像装置21を物体OBJに対して移動させない場合と比較して、位置姿勢情報POI0が示す物体OBJの姿勢のばらつきが小さくなる。
 具体的には、図25は、第1の位置P1から物体OBJを撮像する撮像装置21と、第1の位置P1とは異なる第2の位置P2から物体OBJを撮像する撮像装置21とを示している。図25に示すように、第1の位置P1から物体OBJを撮像する撮像装置21が生成する画像データIMG_2Dが示す画像に写り込む物体OBJのエッジは、第2の位置P2から物体OBJを撮像する撮像装置21が生成する画像データIMG_2Dが示す画像に写り込む物体OBJのエッジよりも少なくなる。ここで、画像に写り込む物体OBJのエッジが少なくなる(例えば、エッジの長さの総和が小さくなる)ほど、2Dマッチング処理によって利用できる情報量が減るため、2Dマッチング処理によって生成される位置姿勢情報POI1のばらつきが大きくなる(再現性が低くなる)。その結果、位置姿勢情報POI1に基づいて生成される位置姿勢情報POI0のばらつきもまた大きくなる。この場合、制御装置3は、撮像装置21を第1の位置P1から第2の位置P2に移動させてもよい。その結果、画像に写り込む物体OBJのエッジが多くなる(例えば、エッジの長さの総和が大きくなる)。このため、2Dマッチング処理によって利用できる情報量が増える。このため、2Dマッチング処理によって生成される位置姿勢情報POI1のばらつきが小さくなる。その結果、位置姿勢情報POI1に基づいて生成される位置姿勢情報POI0のばらつきもまた小さくなる(再現性が高くなる)。
 更に、撮像装置21の移動に伴って撮像装置22もまた移動するがゆえに、撮像装置21が生成する画像データIMG_3Dに含まれる、3Dマッチング処理によって利用できる情報量も増える。その結果、画像データIMG_3Dから生成される三次元位置データWSDに含まれる、3Dマッチング処理によって利用できる情報量(例えば、点群データに含まれる点群の数)も増える。このため、3Dマッチング処理によって生成される位置姿勢情報POI2のばらつきが小さくなる。その結果、位置姿勢情報POI2に基づいて生成される位置姿勢情報POI0のばらつきもまた小さくなる(再現性が高くなる)。
 (4-2)第2変形例
 続いて、ロボットシステムSYSの第2変形例について説明する。尚、以下の説明では、ロボットシステムSYSの第2変形例を、“ロボットシステムSYSb”と称する。第2変形例におけるロボットシステムSYSbは、上述したロボットシステムSYS又はSYSaと比較して、制御装置3又は3aに代えて、制御装置3bを備えているという点で異なっていてもよい。ロボットシステムSYSbのその他の特徴は、ロボットシステムSYS又はSYSaのその他の特徴と同一であってもよい。このため、以下では、図26を参照しながら、第2変形例における制御装置3bについて説明する。図26は、第1変形例における制御装置3bの構成を示すブロック図である。
 図26に示すように、第2変形例における制御装置3bは、上述した制御装置3又は3aと比較して、演算装置31が事前処理部315bを論理的な処理ブロックとして備えているという点で異なる。事前処理部315bは、マッチング処理及びトラッキング処理が行われる前に、事前処理を行う。制御装置3bのその他の特徴は、制御装置3又は3aのその他の特徴と同一であってもよい。
 事前処理部315bは、三次元位置データ生成部311が生成した三次元位置データWSDに対して事前処理を行ってもよい。この場合、3Dマッチング部3122は、事前処理が行われた三次元位置データWSDを用いて、3Dマッチング処理を行ってもよい。トラッキング部3123は、事前処理が行われた三次元位置データWSDを用いて、トラッキング処理を行ってもよい。
 三次元位置データWSDに対して行われる事前処理は、三次元位置データWSDのうちの一部のデータ部分を削除するデータ削除処理を含んでいてもよい。具体的には、三次元位置データWSDは、位置及び姿勢の算出対象となっている物体OBJの複数点それぞれの三次元位置を示すデータ部分のみならず、物体OBJとは異なる他の物体の三次元位置を示すデータ部分を含んでいる可能性がある。この場合、データ削除処理は、三次元位置データWSDから、物体OBJとは異なる他の物体の三次元位置を示すデータ部分を削除する処理を含んでいてもよい。
 以下、説明の便宜上、位置及び姿勢を算出するべき物体OBJとしてのワークWが、位置及び姿勢を算出しなくてもよい載置装置Tに載置されている場合に行われるデータ削除処理について説明する。この場合には、撮像装置22は、載置装置Tに載置されたワークWを撮像することで、画像データIMG_3Dを生成する。このため、画像データIMG_3Dから生成される三次元位置データWSDは、ワークWの複数点それぞれの三次元位置を示すデータ部分のみならず、載置装置Tの形状を示すデータ部分を含んでいる可能性がある。この場合、図27に示すように、事前処理部315bは、三次元位置データWSDから、載置装置Tの三次元位置を示すデータ部分を削除してもよい。
 ワークWが載置される載置装置Tの載置面は、平面であってもよい。この場合、事前処理部315bは、三次元位置データWSDに対して、データ削除処理の一例である平面除去処理を行ってもよい。平面除去処理の一例として、RANSAC(Random Sample Consensus)を用いた平面除去処理及び最小二乗法を用いた平面除去処理のうちの少なくとも一つがあげられる。
 このようなデータ削除処理により、三次元位置データWSDのデータサイズが小さくなる。その結果、三次元位置データWSDを用いた3Dマッチング処理に必要な演算量及び三次元位置データWSDを用いたトラッキング処理に必要な演算量が減少する。このため、3Dマッチング部3122が3Dマッチング処理を完了するために必要な時間である3Dマッチング周期及びトラッキング部3123がトラッキング処理を完了するために必要な時間であるトラッキング周期が短縮可能となる。
 また、このようなデータ削除処理により、位置姿勢算出部312は、位置及び姿勢を算出するべき物体OBJとは異なる他の物体の三次元位置を示すデータ部分を、物体OBJの三次元位置を示すデータ部分として誤認識する可能性が低くなる。なぜならば、上述したトラッキング処理及びマッチング処理にとってノイズとなり得る、物体OBJとは異なる他の物体の三次元位置を示すデータ部分が削除されるからである。このため、位置姿勢算出部312は、物体OBJの三次元位置を示すデータ部分を適切に認識することができる。例えば、三次元位置データWSDが点群データである場合には、位置姿勢算出部312は、物体OBJに関する点群を適切に認識することができる。例えば、三次元位置データWSDが深度画像データである場合には、位置姿勢算出部312は、物体OBJに関する深度情報を適切に認識することができる。その結果、データ削除処理が行われない場合と比較して、位置姿勢算出部312は、物体OBJの位置及び姿勢を精度よく算出することができる。
 尚、事前処理部315bは、三次元位置データWSDのうちの、物体OBJとは異なる他の物体の三次元位置を示すデータ部分を指定するユーザの指示に基づいて、三次元位置データWSDから、物体OBJとは異なる他の物体の形状を示すデータ部分を削除してもよい。具体的には、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDのうちの一部のデータ部分を、物体OBJとは異なる他の物体の三次元位置を示すデータ部分として指定するためにユーザが操作可能なGUI(Graphical User Interface)を表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDの一例である点群データが示す複数の点を表示し、複数の点のうちの物体OBJとは異なる他の物体の三次元位置を示す点を指定するためにユーザが操作可能なGUIを表示してもよい。例えば、制御装置3は、表示装置を含む出力装置35を用いて、三次元位置データWSDの一例である深度画像データが示す深度画像を表示し、深度画像のうちの物体OBJとは異なる他の物体の形状を示す画素を指定するためにユーザが操作可能なGUIを表示してもよい。
 事前処理部315bは、画像データIMG_2D及びIMG_3Dの少なくとも一方に対して事前処理を行ってもよい。この場合、2Dマッチング部3121は、事前処理が行われた画像データIMG_2Dを用いて、2Dマッチング処理を行ってもよい。トラッキング部3123は、それぞれに事前処理が行われた二つの画像データIMG_2Dを用いて、トラッキング処理を行ってもよい。三次元位置データ生成部311は、事前処理が行われた画像データIMG_3Dを用いて、三次元位置データWSDを生成してもよい。3Dマッチング部3122は、事前処理が行われた画像データIMG_3Dから生成された三次元位置データWSDを用いて、3Dマッチング処理を行ってもよい。トラッキング部3123は、事前処理が行われた画像データIMG_3Dからそれぞれ生成された三次元位置データWSDを用いて、トラッキング処理を行ってもよい。
 画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ガンマ補正処理を含んでいてもよい。ガンマ補正処理は、画像データIMG_2D(或いは、画像データIMG_3D)が示す画像のコントラストを調整することで、画像データIMG_2D(或いは、画像データIMG_3D)が示す画像に写り込んでいる物体OBJのエッジを強調する補正処理を含んでいてもよい。
 尚、ガンマ補正処理が行われる場合には、撮像装置21及び22の少なくとも一方は、露出を自動調整可能であってもよい。具体的には、ガンマ補正処理が行われる場合には、図28に示すように、撮像ユニット2は、物体OBJの明るさ(つまり、輝度)を測定可能な測光装置24bを備えていてもよい。撮像装置21及び22の少なくとも一方は、測光装置24bの測定結果に基づいて、露出を自動的に調節してもよい。或いは、撮像装置21及び22の少なくとも一方は、測光装置24bの測定結果に加えて又は代えて、実際に生成された画像データIMG_2D(或いは、画像データIMG_3D)の輝度値(例えば、複数の画素の輝度値の平均値)に基づいて、露出を自動的に調節してもよい。一例として、撮像装置21及び22の少なくとも一方は、画像データIMG_2D(或いは、画像データIMG_3D)の輝度値が所望範囲に収まるように、露出を自動的に調節してもよい。この場合、画像データIMG_2D(或いは、画像データIMG_3D)に写り込んでいるワークWのエッジを強調するように、ガンマ補正処理によって画像データIMG_2D(或いは、画像データIMG_3D)のコントラストがより適切に調整可能となる。
 画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ハイダイナミックレンジ合成処理を含んでいてもよい。ハイダイナミックレンジ処理は、図29に示すように、露出が異なる複数の撮像環境下でワークWを撮像することで生成される複数の画像データIMG_2D(或いは、複数の画像データIMG_3D)を合成することで、白飛びや黒つぶれの少ない広いダイナミックレンジを有する画像データIMG_2D(或いは、画像データIMG_3D)を生成する処理を含んでいてもよい。
 画像データIMG_2D及びIMG_3Dの少なくとも一方に対して行われる事前処理は、ノイズ除去処理を含んでいてもよい。ノイズ除去処理は、図30に示すように、画像データIMG_2D(或いは、画像データIMG_3D)に含まれているノイズを除去することで、ノイズが少ない画像データIMG_2D(或いは、画像データIMG_3D)を生成する処理であってもよい。事前処理部315bは、ノイズ除去処理として、画像データIMG_2D及びIMG_3Dの少なくとも一方に既知のフィルタ処理を実行してもよい。例えば、事前処理部315bは、画像データIMG_2D及びIMG_3Dの少なくとも一方に平均化フィルタ、メディアンフィルタ、及び膨張フィルタの少なくとも一つを用いたフィルタ処理を実行してもよい。
 尚、事前処理部315bは、ノイズ除去処理以外にも、画像データIMG_2D及びIMG_3Dの少なくとも一方に既知のフィルタ処理を実行してもよい。例えば、事前処理部315bは、画像データIMG_2D及びIMG_3Dの少なくとも一方に対して、平滑化フィルタ、及びエッジエンハンスフィルタの少なくとも一方を用いたフィルタ処理を実行してもよい。
 (4-3)第3変形例
 続いて、図31を参照しながら、ロボットシステムSYSの第3変形例について説明する。図31は、第3変形例におけるロボットシステムSYSの構成を示すブロック図である。尚、以下の説明では、ロボットシステムSYSの第3変形例を、“ロボットシステムSYSc”と称することで、上述したロボットシステムSYSと区別する。
 図31に示すように、第3変形例におけるロボットシステムSYScは、上述したロボットシステムSYS、SYSa又はSYSbと比較して、撮像ユニット2に代えて、撮像ユニット2cを備えているという点で異なっていてもよい。ロボットシステムSYScのその他の特徴は、ロボットシステムSYS、SYSa又はSYSbのその他の特徴と同一であってもよい。
 第3変形例における撮像ユニット2cは、上述した撮像ユニット2と比較して、照明装置24cと、フィルタ25cと、フィルタ26cとを備えているという点で異なっている。撮像ユニット2cのその他の特徴は、撮像ユニット2のその他の特徴と同一であってもよい。
 照明装置24cは、物体OBJに照明光を照射可能な装置である。特に、照明装置24cは、物体OBJに照明光を照射することで、物体OBJを照明光で照明可能な装置である。照明装置24cは、第2の波長帯域(例えば、赤色光の波長帯域)の光成分を含む照明光で物体OBJを照明してもよい。一方で、投影装置23が物体OBJに照射する投影光は、第2の波長帯域とは異なる第1の波長帯域(例えば、青色光の波長帯域)の光成分を含んでいてもよい。つまり、投影装置23は、第2の波長帯域とは異なる第1の波長帯域(例えば、青色光の波長帯域)の光成分を含む投影光を物体OBJに照射してもよい。尚、投影装置23は、物体OBJに投影光を照射することで、物体OBJに所望の投影パターンを投影する装置である。この場合、投影装置23は、物体OBJを投影光で照明しているとみなしてもよい。つまり、投影装置23は、物体OBJを投影光で照明する照明装置であるとみなしてもよい。尚、上述したように、投影装置23が照明装置であるとみなされる場合には、投影光は、対象物体に所望の投影パターンを投影可能な光でなくてもよい。
 フィルタ25cは、第1の波長帯域の光成分を減衰可能である。撮像装置21は、フィルタ25cを介して物体OBJからの光を撮像素子で受光することで、物体OBJを撮像する。ここで、上述したように、投影装置23からの投影光が第1の波長帯域の光成分を含むがゆえに、フィルタ25cは、投影光を減衰する。このため、投影光が照射された(つまり、投影パターンが投影された)物体OBJからの戻り光(例えば、投影光の反射光及び散乱光の少なくとも一つ)は、フィルタ25cによって減衰される。その結果、撮像装置22に物体OBJを撮像させるために投影装置23が投影光を物体OBJに照射している場合であっても、撮像装置21は、投影装置23から射出される投影光の影響を受けることなく、照明装置24cから射出される照明光で照明された物体OBJを適切に撮像することができる。
 フィルタ26cは、第2の波長帯域の光成分を減衰可能である。撮像装置22は、フィルタ26cを介して物体OBJからの光を撮像素子で受光することで、物体OBJ(言い換えると、物体OBJに投影された投影パターン)を撮像する。ここで、上述したように、照明光が第2の波長帯域の光成分を含むがゆえに、フィルタ26cは、照明光を減衰する。このため、照明装置24cからの照明光が照射された物体OBJからの戻り光(例えば、照明光の反射光及び散乱光の少なくとも一つ)は、フィルタ26cによって減衰される。その結果、撮像装置21に物体OBJを撮像させるために、照明装置24cが照明光を物体OBJに照射している場合であっても、撮像装置22は、照明装置24cから射出される照明光の影響を受けることなく、投影装置23から射出される投影光で照明された物体OBJ(言い換えると、物体OBJに投影された投影パターン)を適切に撮像することができる。
 このように、第3変形例では、撮像装置21は、撮像装置22による物体OBJ(物体OBJに投影された投影パターン)の撮像に影響を受けることなく、物体OBJを撮像することができる。同様に、撮像装置22は、撮像装置21による物体OBJの撮像に影響を受けることなく、物体OBJ(物体OBJに投影された投影パターン)を撮像することができる。このため、撮像装置21及び22は、同時に物体OBJを撮像することができる。つまり、撮像装置21が物体OBJを撮像する時刻と撮像装置22が物体OBJ(物体OBJに投影された投影パターン)を撮像する時刻とが同一であったとしても、撮像装置21及び22のそれぞれは、物体OBJを適切に撮像することができる。
 (4-4)その他の変形例
 ロボットシステムSYS、SYSa、SYSb及びSYScの少なくとも一つは、以下に説明するその他の変形例を採用してもよい。
 (4-4-1)ロボット1の変形例
 上述した説明では、ロボットアーム12には、保持処理及びリリース処理の少なくとも一つを行うエンドエフェクタ13(例えば、ハンドグリッパー又はバキュームクリッパ―)が取り付けられている。しかしながら、エンドエフェクタ13は、保持処理及びリリース処理の少なくとも一つを行う装置に限られず、物体OBJに対して他の処理を行う装置であってもよい。
 一例として、ロボットアーム12には、エンドエフェクタ13の一例としての、物体OBJを加工するための加工装置が取り付けられていてもよい。加工装置は、物体OBJに新たな造形物を付加する付加加工、物体OBJの一部を除去する除去加工、二つの物体OBJを接合する溶接加工及び物体OBJを切断する切断加工のうちの少なくとも一つを行ってもよい。加工装置は、工具を用いて物体OBJを加工してもよい。この場合、工具を含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)を物体OBJに照射することで物体OBJを加工してもよい。この場合、エネルギービームを物体OBJに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
 エンドエフェクタ13の一例としての加工装置は、物体OBJに部品をはんだ付けするはんだ付け加工を行ってもよい。加工装置は、はんだごてを用いて物体OBJに部品をはんだ付けしてもよい。この場合、はんだごてを含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)をはんだに照射することで物体OBJに部品をはんだ付けしてもよい。この場合、エネルギービームを物体OBJに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
 他の一例として、ロボットアーム12には、エンドエフェクタ13の一例としての、物体OBJを計測するための計測装置が取り付けられていてもよい。計測装置は、物体OBJの特性を計測可能であってもよい。物体OBJの特性の一例として、物体OBJの形状、物体OBJのサイズ及び物体OBJの温度の少なくとも一つがあげられる。計測装置は、タッチプローブを用いて物体OBJを計測してもよい。この場合、タッチプローブを含む計測装置が、ロボットアーム12に取り付けられてもよい。或いは、計測装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)を物体OBJに照射することで物体OBJを計測してもよい。この場合、エネルギービームを物体OBJに照射する照射装置を含む計測装置が、ロボットアーム12に取り付けられていてもよい。
 ロボットアーム12にエンドエフェクタ13の一例としての加工装置及び計測装置の少なくとも一方が取り付けられている場合には、制御装置3は、加工装置及び計測装置の少なくとも一方の動作を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置が備える工具の回転を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置及び計測装置の少なくとも一方が備える照射装置によるエネルギービームのオン・オフを制御するための制御信号を生成してもよい。
 他の一例として、ロボットアーム12には、エンドエフェクタ13の一例としての、吐出装置が取り付けられていてもよい。例えば、吐出装置は、接着剤、シール材、塗料及びはんだの少なくとも一つを吐出してもよい。吐出装置は、物体OBJに向けて接着剤、シール材、塗料及びはんだの少なくとも一つを吐出してもよい。例えば、制御装置3は、吐出装置からの吐出のオン・オフ、及び吐出量の少なくとも一方を制御するための制御信号を生成してもよい。尚、接着剤、シール材、塗料及びはんだの少なくとも一つを物体OBJに吐出することは、物体OBJを加工するとも言えるため、吐出装置は、加工装置とも称されてもよい。
 (4-4-2)撮像ユニット2の変形例
 上述した説明では、画像データIMG_3Dを生成するために、撮像ユニット2は、撮像装置22と投影装置23とを備えている。しかしながら、撮像ユニット2は、画像データIMG_3Dを生成するために、投影装置23を備えていなくてもよい。なぜならば、上述したように撮像装置22がステレオカメラであるがゆえに、ステレオカメラの二つの撮像素子がそれぞれ生成する二つの画像データIMG_3Dから、物体OBJの複数点それぞれの三次元位置を示す三次元位置データWSDが生成可能であるからである。この場合、三次元位置データ生成部311は、画像データIMG_3Dに含まれる二つの画像データのそれぞれが示す画像同士の各部(例えば各画素)について周知の処理で対応付けを行うことで視差を算出し、算出した視差を用いた三角測量の原理に基づく周知の方法で三次元位置データWSDを生成してもよい。
 撮像装置22は、ステレオカメラでなくてもよい。例えば、撮像装置22は、単一の撮像素子を用いて物体OBJを撮像する単眼カメラであってもよい。この場合であっても、画像データIMG_3Dが示す画像には、投影パターンが投影されている物体OBJが写り込んでいる。この場合、画像データIMG_3Dが示す画像に写り込んでいる投影パターンの形状には、投影パターンが投影されている物体OBJの三次元形状が反映されている。このため、撮像装置22がステレオカメラでない場合であっても、三次元位置データ生成部311は、画像データIMG_3Dが示す画像に写り込んでいる投影パターンに基づいて、周知の処理で三次元位置データWSDを生成することができる。
 撮像ユニット2は、撮像装置21及び22のいずれか一方(つまり、単一の撮像装置)と、投影装置23とを備えていてもよい。この場合、投影装置23が所望の投影パターンを物体OBJに投影していない期間中に単一の撮像装置が物体OBJを撮像することで生成する画像データが、画像データIMG_2Dとして用いられてもよい。一方で、投影装置23が所望の投影パターンを物体OBJに投影している期間中に単一の撮像装置が物体OBJを撮像することで生成する画像データが、画像データIMG_3Dとして用いられてもよい。この場合においても、位置姿勢算出部312は、図4のステップS3において、画像データIMG_2Dと、画像データIMG_3Dから生成される三次元位置データWSDとに基づいて、物体OBJの位置及び姿勢を示す位置姿勢情報POI0を生成する。具体的には、2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系における物体OBJの位置として、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rz(2D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系における物体OBJの位置として、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、姿勢Rx(3D)、姿勢Ry(3D)及び姿勢Rz(3D)のうちの少なくとも一つを算出してもよい。トラッキング部3123は、トラッキング処理を行うことで、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうちの少なくとも一つ、又は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。但し、撮像ユニット2が撮像装置21及び22のいずれか一方(つまり、単一の撮像装置)を備える場合には、2D撮像座標系と3D撮像座標系とは同一の座標系となる。このため、この場合には、制御装置3は、上述した座標系情報(例えば、変換行列)を用いて、2D撮像座標系及び3D撮像座標系のいずれか一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれか他方の座標系内の位置に変換する処理を必ずしも行わなくてよい。
 撮像ユニット2は、ステレオカメラである撮像装置22を備える一方で、撮像装置21を備えていなくてもよい。この場合、撮像装置22が備える二つの単眼カメラのいずれか一方が物体OBJを撮像することで生成する画像データが、画像データIMG_2Dとして用いられてもよい。一方で、撮像装置22が備える二つの単眼カメラの双方が物体OBJを撮像することでそれぞれ生成する二つの画像を示す画像データが、画像データIMG_3Dとして用いられてもよい。この場合においても、位置姿勢算出部312は、図4のステップS3において、画像データIMG_2Dと、画像データIMG_3Dから生成される三次元位置データWSDとに基づいて、物体OBJの位置及び姿勢を示す位置姿勢情報POI0を生成する。具体的には、2Dマッチング部3121は、2Dマッチング処理を行うことで、2D撮像座標系における物体OBJの位置として、位置Tx(2D)、位置Ty(2D)、位置Tz(2D)、姿勢Rx(2D)、姿勢Ry(2D)及び姿勢Rz(2D)のうちの少なくとも一つを算出してもよい。3Dマッチング部3122は、3Dマッチング処理を行うことで、3D撮像座標系における物体OBJの位置として、位置Tx(3D)、位置Ty(3D)、位置Tz(3D)、姿勢Rx(3D)、姿勢Ry(3D)及び姿勢Rz(3D)のうちの少なくとも一つを算出してもよい。トラッキング部3123は、トラッキング処理を行うことで、変化量ΔTx(2D)、変化量ΔTy(2D)、変化量ΔTz(2D)、変化量ΔRx(2D)、変化量ΔRy(2D)及び変化量ΔRz(2D)のうちの少なくとも一つ、又は、変化量ΔTx(3D)、変化量ΔTy(3D)、変化量ΔTz(3D)、変化量ΔRx(3D)、変化量ΔRy(3D)及び変化量ΔRz(3D)のうちの少なくとも一つを算出してもよい。但し、撮像ユニット2が撮像装置21及び22のいずれか一方(つまり、単一の撮像装置)を備える場合には、2D撮像座標系と3D撮像座標系とは同一の座標系となる。このため、この場合には、制御装置3は、上述した座標系情報(例えば、変換行列)を用いて、2D撮像座標系及び3D撮像座標系のいずれかの一方の座標系内の位置を、2D撮像座標系及び3D撮像座標系のいずれかの他方の座標系内の位置に変換する処理を必ずしも行わなくてよい。
 上述した説明では、撮像装置21及び22の双方がロボット1(特に、ロボットアーム12)に設けられている。しかしながら、撮像装置21及び22の少なくとも一方は、ロボット1(特に、ロボットアーム12)とは異なる部分に設けられていてもよい。例えば、撮像装置21及び22の少なくとも一方は、ロボットシステムSYSが配置される建物の天井に配置されていてもよい。
 上述した説明では、撮像ユニット2が、ロボットアーム12を備えるロボット1に設けられている。しかしながら、撮像ユニット2は、ロボットアーム12を備えていないロボットに設けられていてもよい。例えば、撮像ユニット2は、物体OBJの上方から撮像ユニット2を吊り下げることが可能な支持装置を備えるロボット1に設けられていてもよい。この場合、撮像ユニット2は、支持装置に設けられていてもよい。支持装置は、支持面Sから上方に延びる複数の脚部材と、複数の脚部材の上端又はその近傍部を介して複数の脚部材を連結する梁部材とを備えていてもよい。例えば、ロボット1は、支持装置を移動させることが可能であってもよい。
 (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マッチング処理及びトラッキング処理の少なくとも一つを行ってもよい。例えば、撮像ユニット2が、画像データIMG_3Dから三次元位置データWSDを生成する場合、制御装置3は、撮像ユニット2から三次元位置データWSDを取得し、上述した3Dマッチング処理及びトラッキング処理の少なくとも一つを行ってもよい。
 上述した説明では、制御装置3は、マッチング処理及びトラッキング処理の双方を行っている。しかしながら、制御装置3は、トラッキング処理を行わなくてもよい。この場合、制御装置3は、3Dマッチング部3122が行った3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を、位置姿勢情報POI0として生成してもよい。制御装置3は、2Dマッチング部3121が行った2Dマッチング処理の結果(つまり、位置姿勢情報POI1)を、位置姿勢情報POI0として生成してもよい。制御装置3は、位置姿勢情報POI1又はPOI2に基づいて、ロボット制御信号を生成してもよい。この場合、制御装置3は、物体OBJの位置及び姿勢が算出される周期である2Dマッチング周期又は3Dマッチング周期と同じ周期で、ロボット制御信号を生成し且つ出力してもよい。
 一例として、エンドエフェクタ13がワークWを保持している場合には、制御装置3は、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を更に生成してもよいことは、上述したとおりである。ここで、エンドエフェクタ13がワークWを保持している場合には、エンドエフェクタ13とワークWとの位置関係が変わることはない。その結果、撮像装置21及び22とワークWとの位置関係が変わることはない。この場合、仮に上述したトラッキング処理が行われなかったとしても、上述したトラッキング処理が行われる場合と同様に、制御装置3が算出したワークWの位置とワークWの実際の位置との乖離度が大きくなることはない。同様に、仮に上述したトラッキング処理が行われなかったとしても、上述したトラッキング処理が行われる場合と同様に、制御装置3が算出したワークWの姿勢とワークWの実際の姿勢との乖離度が大きくなることはない。このため、この場合には、制御装置3は、トラッキング処理を行うことなく、エンドエフェクタ13によって保持されているワークWの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成してもよい。
 この一例から分かるように、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない(例えば、ロボット1と物体OBJが移動していない)場合には、仮に上述したトラッキング処理が行われなかったとしても、上述したトラッキング処理が行われる場合と同様に、制御装置3が算出した物体OBJの位置と物体OBJの実際の位置との乖離度が大きくなることはない。同様に、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない(例えば、ロボット1と物体OBJが移動していない)場合には、仮に上述したトラッキング処理が行われなかったとしても、上述したトラッキング処理が行われる場合と同様に、制御装置3が算出した物体OBJの姿勢と物体OBJの実際の姿勢との乖離度が大きくなることはない。このため、この場合には、制御装置3は、トラッキング処理を行うことなく、物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成してもよい。もちろん、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない場合においても、制御装置3は、トラッキング処理を行うことなく、物体OBJの位置及び姿勢の少なくとも一方を示す位置姿勢情報POI0を生成してもよい。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している場合であったとしても、制御装置3は、トラッキング処理を行わなくてもよい。この場合、制御装置3は、3Dマッチング部3122が行った3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を、位置姿勢情報POI0として生成してもよい。
 或いは、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位していない(例えば、ロボット1と物体OBJが移動していない)場合には、位置姿勢算出部312は、3Dマッチング部3122が行った3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を用いて位置姿勢情報POI0を一度生成した後に、2Dマッチング処理及び3Dマッチング処理(更には、トラッキング処理)を周期的に行わなくてもよい。この場合であっても、撮像装置21及び22とワークWとの位置関係が変わることはないがゆえに、物体OBJの位置は、生成済みの位置姿勢情報POI0が示す位置と大きく変わるとはない。従って、2Dマッチング処理及び3Dマッチング処理が周期的に行われなかったとしても、制御装置3が算出した物体OBJの位置と物体OBJの実際の位置との乖離度が大きくなることはない。同様に、物体OBJの姿勢は、生成済みの位置姿勢情報POI0が示す姿勢と大きく変わるとはない。従って、2Dマッチング処理及び3Dマッチング処理が周期的に行われなかったとしても、制御装置3が算出した物体OBJの姿勢と物体OBJの実際の姿勢との乖離度が大きくなることはない。このため、この場合には、制御装置3は、最初に生成した位置姿勢情報POI0に基づいて、ロボット制御信号を生成してもよい。例えば、制御装置3は、最初に生成した物体OBJの位置姿勢情報POI0に基づいて、物体OBJを保持するようにロボットアーム12及びエンドエフェクタ13の少なくとも一方を制御するためのロボット制御信号を生成してもよい。例えば、制御装置3は、最初に生成した物体OBJの位置姿勢情報POI0に基づいて、物体OBJに他の物体をリリースする(例えば、配置する又ははめ込む)ようにロボットアーム12及びエンドエフェクタ13の少なくとも一方を制御するためのロボット制御信号を生成してもよい。尚、撮像装置21及び22のそれぞれと物体OBJとが相対的に変位している場合であったとしても、位置姿勢算出部312は、3Dマッチング部3122が行った3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を用いて位置姿勢情報POI0を一度生成した後に、2Dマッチング処理及び3Dマッチング処理(更には、トラッキング処理)を周期的に行わなくてもよい。
 制御装置3は、2Dマッチング処理を行う一方で、3Dマッチング処理及びトラッキング処理を行わなくてもよい。この場合、制御装置3は、2Dマッチング部3121が行った2Dマッチング処理の結果(つまり、位置姿勢情報POI1)を、位置姿勢情報POI0として生成してもよい。
 制御装置3は、3Dマッチング処理を行う一方で、2Dマッチング処理及びトラッキング処理を行わなくてもよい。この場合、3Dマッチング部3122は、2Dマッチング処理の結果(つまり、位置姿勢情報POI1)に基づいて、三次元モデルWM3の初期位置及び初期姿勢を決定しなくてもよい。つまり、3Dマッチング部3122は、三次元モデルWM3の初期位置及び初期姿勢を決定することなく、三次元位置データWSDを用いたマッチング処理を、3Dマッチング処理として行ってもよい。この場合、制御装置3は、3Dマッチング部3122が行った3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を、位置姿勢情報POI0として生成してもよい。尚、この場合、三次元モデルWM3の初期位置は、三次元モデルWM3の座標系(三次元モデルデータWMDの座標系)の原点に予め設定されていてもよく、三次元モデルWM3の初期姿勢は、三次元モデルWM3の座標系での所定の姿勢に設定されていてもよい。尚、三次元モデルWM3の初期位置は、3D撮像座標系又は2D撮像座標系の原点に予め設定されていてもよく、三次元モデルWM3の初期姿勢は、3D撮像座標系又は2D撮像座標系での所定の姿勢に設定されていてもよい。 上述した説明では、制御装置3は、トラッキング処理として、第1時刻t1及び第2時刻t2に撮像装置21が物体OBJを撮像することでそれぞれ生成される二つの画像データIMG_2D#t1及びIMG_2D#t2と、第3時刻t3に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSDとを用いたトラッキング処理を行っている。しかしながら、制御装置3は、第1時刻t1に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSD(例えば、三次元位置データWSDが示す、少なくとも一つの特徴箇所の三次元位置情報)と、第2時刻t2に撮像装置22が物体OBJを撮像することで生成される画像データIMG_3Dから生成される三次元位置データWSD(例えば、三次元位置データWSDが示す、少なくとも一つの特徴箇所の三次元位置情報)とを用いたトラッキング処理を行うことによって第1時刻t1と第2時刻t2との間における物体OBJの位置及び姿勢の少なくとも一方の変化量を変化量情報VIとして算出してもよい。尚、この場合、制御装置3は、トラッキング処理として、第1時刻t1の画像データIMG_3Dから生成される三次元位置データWSDが示す、複数の特徴箇所それぞれの三次元位置情報と、第2時刻t2に撮像装置22の画像データIMG_3Dから生成される三次元位置データWSDが示す、複数の特徴箇所それぞれの三次元位置情報との変位に基づいて、第1時刻t1と第2時刻t2との間における物体OBJの位置及び姿勢の少なくとも一方の変化量を変化量情報VIとして算出してもよい。この場合においても、制御装置3は、トラッキング処理の結果に基づいて上述のマッチング処理の結果を補正してもよい。例えば、制御装置3は、トラッキング処理の結果である変化量情報VIに基づいて、3Dマッチング処理の結果(つまり、位置姿勢情報POI2)を補正してもよい。例えば、制御装置3は、トラッキング処理の結果である変化量情報VIに基づいて、2Dマッチング処理の結果(つまり、位置姿勢情報POI1)を補正してもよい。 制御装置3は、ロボット制御装置14を備えていてもよい。制御装置3は、ロボット制御装置14として機能してもよい。制御装置3の演算装置31内に、ロボット制御装置14として機能可能な論理的な機能ブロックが実現されてもよい。制御装置3は、制御装置3が生成したロボット制御信号に基づいて、ロボット1の動作を制御してもよい。この場合、ロボット1は、ロボット制御装置14を備えていなくてもよい。
 上述した説明では、制御装置3の三次元位置データ生成部311が、一つの画像データIMG_3D(例えば、撮像装置22がステレオカメラの場合は二つの画像データを含む一つの画像データIMG_3D)から三次元位置データWSDを生成している。しかしながら、三次元位置データ生成部311は、複数の画像データIMG_3Dから三次元位置データWSDを生成してもよい。例えば、三次元位置データ生成部311は、物体OBJを異なる方向から撮像した複数の画像データIMG_3Dから三次元位置データWSDを生成してもよい。物体OBJを異なる方向から撮像した複数の画像データIMG_3Dを用いることによって、オクルージョンなどにより三次元位置データWSDの一部が欠落することを軽減できる。信号生成部313は、位置姿勢算出部312による上述のマッチング処理及びトラッキング処理の少なくとも一方の処理で算出された物体OBJの位置に基づいて、その物体OBJの位置を起点にして、物体OBJを異なる方向から撮像可能なように撮像ユニット2(つまり、ロボットアーム12)を移動させてもよい。つまり、信号生成部313は、物体OBJの位置を起点にして、物体OBJを異なる方向から撮像可能なようにロボットアーム12を動作させるためのロボット制御信号を生成し、ロボット制御装置14に出力してもよい。撮像装置22は、物体OBJの位置を起点とした撮像ユニット2の移動に伴って複数回、撮像を行うことによって、物体OBJを異なる方向から撮像した複数の画像データIMG_3Dを生成してもよい。三次元位置データ生成部311は、複数の画像データIMG_3Dそれぞれについて上述の処理で三次元位置データWSDを生成してもよい。三次元位置データ生成部311は、生成した複数の三次元位置データWSDを既存の処理によって合成してもよい。例えば、生成された複数の三次元位置データWSDが複数の点群データの場合、三次元位置データ生成部311は、ICP(Iterative Closest Point)による処理を行うことによって複数の点群データを合成してもよい。例えば、生成された複数の三次元位置データWSDが複数の深度画像データの場合、三次元位置データ生成部311は、それぞれの深度画像データが示す深度画像上の特徴箇所同士の位置を合わせる処理を行うことによって複数の深度画像データを合成してもよい。位置姿勢算出部312は、三次元位置データ生成部311による合成処理で生成された三次元位置データWSDを用いて、上述のマッチング処理及びトラッキング処理の少なくとも一方を実行することによって物体OBJの位置及び姿勢を算出してもよい。信号生成部313は、エンドエフェクタ13による物体OBJへの処理のために、位置姿勢算出部312で算出された物体OBJの位置及びに基づいてロボット制御信号を生成し、ロボット制御装置14に出力してもよい。
 (5)付記
 以上説明した実施形態に関して、更に以下の付記を開示する。
[付記1]
 撮像部が設けられたロボットを制御するための制御信号を生成する制御装置であって、
 前記制御装置は、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と
 を備え、
 前記演算部は、
 前記撮像部が物体を撮像することで生成される第1画像データを用いて、前記物体の位置及び姿勢の少なくとも一方を示す第1情報を生成し、
 前記撮像部が前記物体を撮像することで生成される第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢の少なくとも一方を示す第2情報を生成し、
 前記第2情報に基づいて前記制御信号を生成する
 制御装置。
[付記2]
 前記第1情報は、第1座標系内での前記物体の位置及び姿勢の少なくとも一方を示し、
 決定された前記三次元モデルデータが示す三次元モデルの前記位置及び姿勢は、前記第1座標系とは異なる第2座標系内での位置及び姿勢あり、
 前記第2情報は、前記第2座標系内での前記物体の位置及び姿勢の少なくとも一方を示す
 付記1に記載の制御装置。
[付記3]
 前記演算部は、
 前記第1座標系内での前記第1情報を、前記第2座標系内での位置及び姿勢の少なくとも一方に変換し、
 変換された前記第2座標系内での前記位置及び姿勢の少なくとも一方に基づいて、前記三次元モデルの前記位置及び姿勢を決定する
 付記2に記載の制御装置。
[付記4]
 前記演算部は、変換された前記第2座標系内での前記位置及び姿勢を、前記三次元モデルの前記位置及び姿勢として設定する
 付記3に記載の制御装置。
[付記5]
 前記演算部は、
 前記第1情報に基づいて、前記第1座標系内での、前記三次元モデルデータが示す三次元モデルの位置及び姿勢の少なくとも一方を設定し、
 設定された前記第1座標系内での前記三次元モデルの前記位置及び姿勢の少なくとも一方を、前記第2座標系内での位置及び姿勢の少なくとも一方に変換することによって、前記第2座標系内での前記三次元モデルの前記位置及び姿勢の少なくとも一方を決定する
 付記2に記載の制御装置。
[付記6]
 前記演算部は、前記第1情報が示す第1座標系内での前記物体の位置及び姿勢の少なくとも一方を、前記第1座標系内での三次元モデルの前記位置及び姿勢の少なくとも一方として設定する
 付記5に記載の制御装置。
[付記7]
 前記第1画像データを生成するために前記撮像部が前記物体を撮像する時刻と、前記第2画像データを生成するために前記撮像部が前記物体を撮像する時刻とが同じ時刻である
 付記1から6のいずれか一項に記載の制御装置。
[付記8]
 前記出力部は、前記演算部で前記第2情報に基づいて生成された前記制御信号を第1周期で出力する
 付記1から6のいずれか一項に記載の制御装置。
[付記9]
 前記演算部は、互いに異なる第1及び第2時刻に前記撮像部が前記物体を撮像することでそれぞれ生成される二つの前記第1画像データと、第3時刻に前記撮像部が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の少なくとも一方の変化量を算出し、
 前記制御信号は、前記第2情報と前記変化量とに基づいて生成される
 付記1から8のいずれか一項記載の制御装置。
[付記10]
 前記第1時刻と前記第2時刻は、前記第1情報の生成に用いる前記第1画像データの生成のために前記撮像部が前記物体を撮像する時刻とは異なり、
 前記第3時刻は、前記第2情報の生成に用いる前記三次元位置データの生成に用いる前記第2画像データの生成のために前記第2撮像装置が前記物体を撮像する時刻とは異なる
 付記9に記載の制御装置。
[付記11]
 前記第2時刻は、前記第1時刻よりも後の時刻であり、
 前記第2時刻と前記第3時刻とは、同じである
 付記9又は10に記載の制御装置。
[付記12]
 前記演算部は、
 前記撮像部による前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データを用いて、前記撮像部の光学系の光軸に沿った第1軸、前記第1軸に直交する第2軸、並びに、前記第1及び第2軸に直交する第3軸で規定された第1座標系内での前記第1軸と平行な方向における前記物体の特徴箇所の位置を示す第3情報を生成し、
 前記二つの前記第1画像データと前記第3情報とを用いて前記変化量を算出する
 付記9から11のいずれか一項に記載の制御装置。
[付記13]
 前記演算部は、
 前記第1時刻に前記撮像部が前記物体を撮像することで生成される前記第1画像データを用いて、前記第1時刻における前記特徴箇所の位置を示す第4情報を生成し、
 前記第2時刻に前記撮像部が前記物体を撮像することで生成される前記第1画像データと、前記第3情報とを用いて、前記第2時刻における前記特徴箇所の位置を示す第5情報を生成し、
 前記第4情報と前記第5情報とを用いて前記変化量を算出する
 付記12に記載の制御装置。
[付記14]
 前記第1時刻、前記第2時刻及び前記第3時刻のそれぞれは、前記撮像部と前記物体とが相対移動中の時刻である
 付記9から13のいずれか一項に記載の制御装置。
[付記15]
 前記出力部は、前記演算部で前記第2情報と前記変化量とに基づいて生成された前記制御信号を第2周期で出力する
 付記9から14のいずれか一項に記載の制御装置。
[付記16]
 前記撮像部により前記物体が撮像されてから前記第1及び第2画像データに基づいて前記第2情報が生成されるまでの時間は、前記撮像部により前記物体が前記互いに異なる第1及び第2時刻のうちの早い方の時刻に撮像されてから前記二つの第1画像データに基づいて前記変化量が算出されるまでの時間よりも長い
 付記9から15のいずれか一項に記載の制御装置。
[付記17]
 前記演算部は、
 第3周期で前記第2情報を生成し、
 前記第3周期よりも短い第4周期で前記変化量を算出する
 付記9から16のいずれか一項に記載の制御装置。
[付記18]
 前記演算部は、前記第3周期の1周期としての前記第2情報が新たに生成されてから前記第2情報が次に生成されるまでの間に、前記第4周期で前記変化量が新たに算出されるたびに、前記新たに算出された変化量と前記新たに生成された第2情報とに基づいて前記制御信号を生成する
 付記17に記載の制御装置。
[付記19]
 前記出力部は、前記演算部で前記第2情報と前記変化量とに基づいて生成された前記制御信号を第2周期で出力し、
 前記第2周期は、前記第4周期と同じである
 付記17又は18に記載の制御装置。
[付記20]
 前記ロボットには、処理装置が設けられ、
 前記演算部は、前記第1画像データに基づいて、前記物体を、前記処理装置で処理を行う対象物として決定する
 付記1から19のいずれか一項に記載の制御装置。
[付記21]
 前記ロボットには、処理装置が設けられ、
 前記演算部は、前記第1画像データに基づいて、前記物体を、前記処理装置で処理を行う対象物として決定するか否かを判定する
 付記1から20のいずれか一項に記載の制御装置。
[付記22]
 前記演算部は、
 前記第1画像データが示す第1画像内での前記物体を検出する物体検出処理によって前記第1情報を生成し、
 前記物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記21に記載の制御装置。
[付記23]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
 前記マッチング処理で検出される前記物体から、前記物体のエッジを検出し、
 前記第1画像データを用いて前記第1画像内のエッジを検出し、
 前記物体の前記エッジと前記第1画像内の前記エッジとの第1類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記22に記載の制御装置。
[付記24]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記22又は23に記載の制御装置。
[付記25]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定し、
 前記第1及び第2類似度が所定の第1閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
 前記第1及び第2類似度の少なくとも一方が所定の第1閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
 付記23に記載の制御装置。
[付記26]
 前記演算部は、
 前記第1画像データが示す第1画像内での前記物体を検出する物体検出処理によって前記第1情報を生成し、
 前記物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記物体を撮像することで生成される前記第1画像データが示す第1画像内での前記物体の前記物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記19から25のいずれか一項に記載の制御装置。
[付記27]
 前記物体を第1物体とするとき、前記第1物体とは異なる物体を第2物体とし、
 前記演算部は、
 前記第1画像データが示す第1画像内での前記第1物体を検出する物体検出処理によって前記第1情報を生成し、
 前記第1物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記第1物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記第1及び第2物体を撮像することで生成される前記第1画像データが示す第1画像内での前記第1及び第2物体それぞれの前記物体検出処理の結果に基づいて、前記第1物体又は前記第2物体を前記対象物として決定するか否かを判定する
 付記19から25のいずれか一項に記載の制御装置。
[付記28]
 前記演算部は、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において、記第1物体又は前記第2物体を前記対象物として決定するか否かの前記判定によって前記第2物体を前記対象物として決定した場合、前記処理装置で前記第2物体を処理するために、前記処理装置の位置及び姿勢の少なくとも一方を変更させるように前記ロボットを制御するための第2信号を、前記制御信号として生成する
 付記27に記載の制御装置。
[付記29]
 撮像部が設けられたロボットを制御するための制御信号を生成する制御装置であって、
 前記制御装置は、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と
 を備え、
 前記演算部は、
 互いに異なる第1及び第2時刻に前記撮像部が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記撮像部が前記物体を撮像することで生成される第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の少なくとも一方の変化量を算出し、
 前記変化量に基づいて前記制御信号を生成する
 制御装置。
[付記30]
 前記第2時刻は、前記第1時刻よりも後の時刻であり、
 前記第2時刻と前記第3時刻とは、同じである
 付記29に記載の制御装置。
[付記31]
 前記演算部は、
 前記三次元位置データを用いて、前記撮像部の光学系の光軸に沿った第1軸、前記第1軸に直交する第2軸、並びに、前記第1及び第2軸に直交する第3軸で規定された第1座標系内での前記第1軸と平行な方向における前記物体の特徴箇所の位置を示す情報を生成し、
 前記二つの前記第1画像データと前記情報とを用いて前記変化量を算出する
 付記29又は30に記載の制御装置。
[付記32]
 前記情報を第1情報としたとき、
 前記演算部は、
 前記第1時刻に前記撮像部が前記物体を撮像することで生成される前記第1画像データを用いて、前記第1時刻における前記特徴箇所の位置を示す第2情報を生成し、
 前記第2時刻に前記撮像部が前記物体を撮像することで生成される前記第1画像データと、前記第1情報とを用いて、前記第2時刻における前記特徴箇所の位置を示す第3情報を生成し、
 前記第2情報と前記第3情報とを用いて前記変化量を算出する
 付記31に記載の制御装置。
[付記33]
 前記第1時刻、前記第2時刻及び第3時刻のそれぞれは、前記撮像部と前記物体とが相対移動中の時刻である
 付記29から32のいずれか一項に記載の制御装置。
[付記34]
 前記出力部は、前記演算部で前記変化量に基づいて生成された前記制御信号を所定周期で出力する
 付記29から33のいずれか一項に記載の制御装置。
[付記35]
 前記演算部は、前記第1画像データと、前記物体の二次元モデルを示す二次元モデルデータとを用いたマッチング処理によって前記第1情報を生成する
 付記1から28のいずれか一項に記載の制御装置。
[付記36]
 前記演算部は、前記第1情報に基づいて、前記三次元モデルデータが示す前記物体の三次元モデルの前記位置及び姿勢を決定する
 付記1から28及び35のいずれか一項に記載の制御装置。
[付記37]
 前記演算部は、前記三次元位置データと前記三次元モデルデータとを用いたマッチング処理によって前記第2情報を生成する
 付記1から28及び35から36のいずれか一項に記載の制御装置。
[付記38]
 前記制御装置は、前記撮像部が前記物体を撮像する時刻と前記撮像部が前記物体を撮像する時刻とが同じ時刻になるように、前記撮像部による撮像のタイミングを制御する
 付記1から28及び35から36のいずれか一項に記載の制御装置。
[付記39]
 前記第1情報の生成に用いる前記第1画像データの生成のために前記撮像部が前記物体を撮像するタイミングと、前記第2情報の生成に用いる前記三次元位置データの生成に用いる前記第2画像データの生成のために前記撮像部が前記物体を撮像するタイミングとは、前記撮像部と前記物体とが相対移動中のタイミングである
 付記1から28及び35から38のいずれか一項に記載の制御装置。
[付記40]
 前記第2時刻は、前記第1時刻よりも後の時刻であり、
 前記制御装置は、前記第2時刻と前記第3時刻が同じになるように、前記第1及び第2撮像装置による撮像のタイミングを制御する
 付記9から19及び29から34のいずれか一項に記載の制御装置。
[付記41]
 前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データは、第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
 前記演算部は、
 前記第2座標系内での前記三次元位置を、前記第1座標系内での三次元位置に変換し、
 変換された前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記第3情報を生成する
 付記12又は13に記載の制御装置。
[付記42]
 前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データは、前記第1座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
 前記演算部は、前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記第3情報を生成する
 付記12又は13に記載の制御装置。
[付記43]
 前記三次元位置データは、第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
 前記演算部は、
 前記第2座標系内での前記三次元位置を、前記第1座標系内での三次元位置に変換し、
 変換された前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記情報を生成する
 付記31又は32に記載の制御装置。
[付記44]
 前記三次元位置データは、前記第1座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
 前記演算部は、前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記情報を生成する
 付記31又は32に記載の制御装置。
[付記45]
 前記演算部は、
 前記第1類似度が所定の第1閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
 前記第1類似度が所定の第1閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
 付記23に記載の制御装置。
[付記46]
 前記演算部は、
 前記第2類似度が所定の第2閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
 前記第2類似度が所定の第2閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
 付記24に記載の制御装置。
[付記47]
 前記演算部は、
 前記物体を前記対象物として決定しないと判定した場合に、前記物体に対して前記撮像部を移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記20から28及び45から46のいずれか一項に記載の制御装置。
[付記48]
 前記演算部は、
 所望の回転軸周りに前記撮像装置を回転移動させるように前記ロボットを制御するための信号を、前記制御信号として生成し、
 前記信号に基づいて前記ロボットが制御された後に、前記撮像部が前記物体を撮像することで生成される前記第1画像データに基づいて前記判定を行う
 付記47に記載の制御装置。
[付記49]
 前記演算部は、
 前記信号に基づいて前記撮像部を回転移動させるように前記ロボットが制御された後に前記判定を行った結果、前記物体を前記対象物として選択しないと判定した場合に、所望の並進軸に沿って前記撮像部を並進移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記48に記載の制御装置。
[付記50]
 前記ロボットには、前記物体を保持可能な保持装置が設けられ、
 前記制御信号は、前記保持装置の保持動作を制御するための信号であり、
 前記演算部で生成された前記制御信号に基づいて、前記保持装置が前記物体に近づくように前記ロボットが制御され、前記保持装置により前記物体が保持されるように前記保持装置が制御され、
 前記演算部は、
 前記保持装置によって前記物体が保持された後に、前記撮像部が前記物体を撮像することで生成される前記第1画像データを用いて、前記保持装置が保持している前記物体の位置及び姿勢の少なくとも一方を示す第6情報を生成し、
 前記第6情報に基づいて、前記保持装置が保持している前記物体を所望位置に移動させる及び/又は前記保持装置が保持している前記物体の姿勢を所望姿勢に変更するように前記ロボットを制御するための前記制御信号を生成する
 付記1から49のいずれか一項に記載の制御装置。
[付記51]
 物体に対して処理を行う処理装置と撮像部とが設けられたロボットを制御するための制御信号を生成する制御装置であって、
 前記制御装置は、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と
 を備え、
 前記演算部は、
 前記撮像部が前記物体を撮像することで生成される画像データに基づいて、前記物体を、前記処理装置で前記処理を行う対象物として決定するか否かを判定し、
 前記対象物に前記処理を行うための前記制御信号を生成する
 制御装置。
[付記52]
 前記演算部は、
 前記画像データが示す画像内での前記物体を検出する物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記51に記載の制御装置。
[付記53]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で検出される前記物体から前記物体のエッジを検出し、
 前記画像データを用いて前記画像内のエッジを検出し、
 前記物体の前記エッジと前記画像内の前記エッジとの第1類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記52に記載の制御装置。
[付記54]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記物体の前記二次元モデルと前記画像データが示す前記画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記52又は53に記載の制御装置。
[付記55]
 前記演算部は、
 前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記物体の前記二次元モデルと前記画像データが示す前記画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定し、
 前記第1及び第2類似度が所定の第1閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
 前記第1及び第2類似度の少なくとも一方が所定の第1閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
 付記53に記載の制御装置。
[付記56]
 前記演算部は、
 前記画像データが示す画像内での前記物体を検出する物体検出処理によって、前記物体の位置及び姿勢の少なくとも一方を示す第1情報を生成し、
 前記物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記物体を撮像することで生成される前記画像データが示す画像内での前記物体の前記物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記52から55のいずれか一項に記載の制御装置。
[付記57]
 前記物体を第1物体とするとき、前記第1物体とは異なる物体を第2物体とし、
 前記演算部は、
 前記画像データが示す画像内での前記第1物体を検出する物体検出処理によって、前記第1物体の位置及び姿勢の少なくとも一方を示す第1情報を生成し、
 前記第1物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記第1物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記第1及び第2物体を撮像することで生成される前記画像データが示す画像内での前記第1及び第2物体それぞれの前記物体検出処理の結果に基づいて、前記第1物体又は前記第2物体を前記対象物として決定するか否かを判定する
 付記52から55のいずれか一項に記載の制御装置。
[付記58]
 前記演算部は、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において、前記第1物体又は前記第2物体を前記対象物として決定するか否かの前記判定によって前記第2物体を前記対象物として決定した場合、前記処理装置で前記第2物体を処理するために、前記処理装置の位置及び姿勢の少なくとも一方を変更させるように前記ロボットを制御するための第2信号を、前記制御信号として生成する
 付記57に記載の制御装置。
[付記59]
 前記演算部は、
 前記物体を前記対象物として決定しないと判定した場合に、前記物体に対して前記撮像部を移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記51から58のいずれか一項に記載の制御装置。
[付記60]
 前記演算部は、
 所望の回転軸周りに前記撮像装置を回転移動させるように前記ロボットを制御するための信号を、前記制御信号として生成し、
 前記信号に基づいて前記ロボットが制御された後に、前記撮像部が前記物体を撮像することで生成される前記画像データに基づいて前記判定を行う
 付記59に記載の制御装置。
[付記61]
 前記演算部は、
 前記信号に基づいて前記撮像部を回転移動させるように前記ロボットが制御された後に前記判定を行った結果、前記物体を前記対象物として選択しないと判定した場合に、所望の並進軸に沿って前記撮像部を並進移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記60に記載の制御装置。
[付記62]
 前記処理装置は、前記物体を保持可能な保持装置を含み、
 前記制御信号は、前記保持装置の保持動作を制御するための信号であり、
 前記演算部で生成された前記制御信号に基づいて、前記保持装置が前記物体に近づくように前記ロボットが制御され、前記保持装置により前記物体が保持されるように前記保持装置が制御され、
 前記演算部は、
 前記保持装置によって前記物体が保持された後に、前記撮像部が前記物体を撮像することで生成される前記画像データを用いて、前記保持装置が保持している前記物体の位置及び姿勢を示す第1情報を生成し、
 前記第1情報に基づいて、前記保持装置が保持している前記物体を所望位置に移動させる及び/又は前記保持装置が保持している前記物体の姿勢を所望姿勢に変更するように前記ロボットを制御するための前記制御信号を生成する
 付記51から61のいずれか一項に記載の制御装置。
[付記63]
 前記処理装置は、前記物体として、第1物体と前記第1物体とは位置及び姿勢の少なくとも一方が異なる第2物体との少なくとも一方に対して処理を行う
 付記51から62のいずれか一項に記載の制御装置。
[付記64]
 前記演算部は、
 前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で検出される前記第1及び第2物体から前記第1物体のエッジ及び前記第2物体のエッジを検出し、
 前記画像データを用いて前記画像内のエッジを検出し、
 前記マッチング処理で算出される、前記第1物体の前記二次元モデルと前記画像データが示す前記画像との第3類似度と、前記第2物体の前記二次元モデルと前記画像データが示す前記画像との第4類似度と、前記第1物体の前記エッジと前記画像内の前記エッジとの第1類似度と、前記第2物体の前記エッジと前記画像内の前記エッジとの第2類似度とに基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、且つ、前記第3類似度が前記第4類似度よりも高い場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、且つ、前記第4類似度が前記第3類似度よりも高い場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第3類似度/前記第4類似度が、前記第2類似度/前記第1類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第2類似度/前記第1類似度が、前記第3類似度/前記第4類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第4類似度/前記第3類似度が、前記第1類似度/前記第2類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第1類似度/前記第2類似度が、前記第4類似度/前記第3類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第2閾値を上回り、且つ、前記第3類似度が所定の第1閾値を上回る場合であって、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第2閾値を上回り、且つ、前記第4類似度が所定の第1閾値を上回る場合であって、且つ、前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合であって、且つ、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1及び第2物体を前記対象物として選択しないと判定する
 付記63に記載の制御装置。
[付記65]
 前記第2物体は、前記第1物体と同じ三次元形状であり、
 前記第1二次元モデルデータと前記第2二次元モデルデータは、前記三次元形状の二次元モデルを示す二次元モデルデータである
 付記64に記載の制御装置。
[付記66]
 第1物体と前記第1物体とは異なる第2物体との少なくとも一方に対して処理を行う処理装置と撮像部とが設けられたロボットを制御するための制御信号を生成する制御装置であって、
 前記制御装置は、
 前記制御信号を生成する演算部と、
 前記演算部で生成された前記制御信号を出力する出力部と
 を備え、
 前記演算部は、
 前記撮像部が前記第1及び第2物体を撮像することで生成される画像データに基づいて、前記第1又は第2物体を、前記処理装置で前記処理を行う対象物として決定するか否かを判定し、
 前記対象物に前記処理を行うための前記制御信号を生成する
 制御装置。
[付記67]
 前記演算部は、
 前記画像データが示す画像内での前記第1及び第2物体を検出する物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
 付記66に記載の制御装置。
[付記68]
 前記演算部は、
 前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で検出される前記第1及び第2物体から前記第1物体のエッジ及び前記第2物体のエッジを検出し、
 前記画像データを用いて前記画像内のエッジを検出し、
 前記第1物体の前記エッジと前記画像内の前記エッジとの第1類似度と、前記第2物体の前記エッジと前記画像内の前記エッジとの第2類似度とに基づいて、前記第1又は第2物体を前記対象物として決定するか否かを判定する
 付記67に記載の制御装置。
[付記69]
 前記演算部は、
 前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記第1物体の前記二次元モデルと前記画像データが示す前記画像との第3類似度と、前記第2物体の前記二次元モデルと前記画像データが示す前記画像との第4類似度とに基づいて、前記第1又は第2物体を前記対象物として決定するか否かを判定する
 付記67又は68に記載の制御装置。
[付記70]
 前記演算部は、
 前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で算出される、前記物体の前記二次元モデルと前記画像データが示す前記画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定し、
 前記第1及び第3類似度が所定の第1閾値を上回る場合に、前記第1物体を前記対象物として決定すると判定し、
 前記第2及び第4類似度が所定の第1閾値を上回る場合に、前記第2物体を前記対象物として決定すると判定し、
 前記第1及び第3類似度の少なくとも一方が所定の第1閾値を下回る場合に、前記第1物体を前記対象物として決定しないと判定する
 前記第2及び第4類似度の少なくとも一方が所定の第1閾値を下回る場合に、前記第2物体を前記対象物として決定しないと判定する
 付記68に記載の制御装置。
[付記71]
 前記演算部は、
 前記画像データが示す画像内での前記第1物体を検出する物体検出処理によって、前記第1物体の位置及び姿勢の少なくとも一方を示す第1情報を生成し、
 前記第1物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記第1物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記第1物体を撮像することで生成される前記画像データが示す画像内での前記第1物体の前記物体検出処理の結果に基づいて、前記第1物体を前記対象物として決定するか否かを判定する
 付記67から70のいずれか一項に記載の制御装置。
[付記72]
 前記演算部は、
 前記画像データが示す画像内での前記第1物体を検出する物体検出処理によって、前記第1物体の位置及び姿勢の少なくとも一方を示す第1情報を生成し、
 前記第1物体を前記対象物として決定する前に、前記処理装置を移動させて前記処理装置が前記物体検出処理によって検出された前記第1物体に近づくように前記ロボットを制御するための第1信号を、前記制御信号として前記第1情報に基づいて生成し、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において前記撮像部が前記第1及び第2物体を撮像することで生成される前記画像データが示す第1画像内での前記第1及び第2物体それぞれの前記物体検出処理の結果に基づいて、前記第1物体又は前記第2物体を前記対象物として決定するか否かを判定する
 付記67から71のいずれか一項に記載の制御装置。
[付記73]
 前記演算部は、
 前記第1信号に基づいて前記ロボットが制御されている期間の少なくとも一部において、前記第1物体又は前記第2物体を前記対象物として決定するか否かの前記判定によって前記第2物体を前記対象物として決定した場合、前記処理装置で前記第2物体を処理するために、前記処理装置の位置及び姿勢の少なくとも一方を変更させるように前記ロボットを制御するための第2信号を、前記制御信号として生成する
 付記72に記載の制御装置。
[付記74]
 前記演算部は、
 前記第1及び第2物体を前記対象物として決定しないと判定した場合に、前記第1及び第2物体に対して前記撮像部を移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記66から73のいずれか一項に記載の制御装置。
[付記75]
 前記演算部は、
 所望の回転軸周りに前記撮像装置を回転移動させるように前記ロボットを制御するための信号を、前記制御信号として生成し、
 前記信号に基づいて前記ロボットが制御された後に、前記撮像部が前記第1及び第2物体を撮像することで生成される前記画像データに基づいて前記判定を行う
 付記74に記載の制御装置。
[付記76]
 前記演算部は、
 前記信号に基づいて前記撮像部を回転移動させるように前記ロボットが制御された後に前記判定を行った結果、前記第1及び第2物体を前記対象物として選択しないと判定した場合に、所望の並進軸に沿って前記撮像部を並進移動させるように前記ロボットを制御するための信号を、前記制御信号として生成する
 付記75に記載の制御装置。
[付記77]
 前記処理装置は、前記第1又は第2物体を保持可能な保持装置を含み、
 前記制御信号は、前記保持装置の保持動作を制御するための信号であり、
 前記演算部で生成された前記制御信号に基づいて、前記保持装置が前記第1又は第2物体に近づくように前記ロボットが制御され、前記保持装置により前記第1又は第2物体が保持されるように前記保持装置が制御され、
 前記演算部は、
 前記保持装置によって前記第1又は第2物体が保持された後に、前記撮像部が前記第1又は第2物体を撮像することで生成される前記画像データを用いて、前記保持装置が保持している前記第1又は第2物体の位置及び姿勢を示す第1情報を生成し、
 前記第1情報に基づいて、前記保持装置が保持している前記第1又は第2物体を所望位置に移動させる及び/又は前記保持装置が保持している前記第1又は第2物体の姿勢を所望姿勢に変更するように前記ロボットを制御するための前記制御信号を生成する
 付記66から76のいずれか一項に記載の制御装置。
[付記78]
 前記演算部は、
 前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記画像データとを用いたマッチング処理を行い、
 前記マッチング処理で検出される前記第1及び第2物体から前記第1物体のエッジ及び前記第2物体のエッジを検出し、
 前記画像データを用いて前記画像内のエッジを検出し、
 前記マッチング処理で算出される、前記第1物体の前記二次元モデルと前記画像データが示す前記画像との第3類似度と、前記第2物体の前記二次元モデルと前記画像データが示す前記画像との第4類似度と、前記第1物体の前記エッジと前記画像内の前記エッジとの第1類似度と、前記第2物体の前記エッジと前記画像内の前記エッジとの第2類似度とに基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、且つ、前記第3類似度が前記第4類似度よりも高い場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、且つ、前記第4類似度が前記第3類似度よりも高い場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第3類似度/前記第4類似度が、前記第2類似度/前記第1類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第2類似度/前記第1類似度が、前記第3類似度/前記第4類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第4類似度/前記第3類似度が、前記第1類似度/前記第2類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第1類似度/前記第2類似度が、前記第4類似度/前記第3類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第2閾値を上回り、且つ、前記第3類似度が所定の第1閾値を上回る場合であって、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1物体を前記対象物として選択すると判定し、
 前記第2類似度が所定の第2閾値を上回り、且つ、前記第4類似度が所定の第1閾値を上回る場合であって、且つ、前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合に、前記第2物体を前記対象物として選択すると判定し、
 前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合であって、且つ、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1及び第2物体を前記対象物として選択しないと判定する
 付記66から77のいずれか一項に従属する付記に記載の制御装置。
[付記79]
 前記第2物体は、前記第1物体と同じ三次元形状であり、
 前記第1二次元モデルデータと前記第2二次元モデルデータは、前記三次元形状の二次元モデルを示す二次元モデルデータである
 付記78に記載の制御装置。
[付記80]
 前記撮像部は、前記第1画像データを出力する第1撮像装置と、前記第2画像データを出力する第2撮像装置とを含む
 付記1から50のいずれか一項に記載の制御装置。
[付記81]
 前記第1撮像装置は、単眼カメラであり、
 前記第2撮像装置は、前記単眼カメラとは異なる2つの単眼カメラを有するステレオカメラである
 付記80に記載の制御装置。
[付記82]
 付記1から50及び80から81のいずれか一項に記載の制御装置と、
 前記撮像部と、
 を備える制御システム。
[付記83]
 付記51から79のいずれか一項に記載の制御装置と、
 前記撮像部と、
 を備える制御システム。
[付記84]
 前記撮像部は、前記第1画像データを出力する第1撮像装置と、前記第2画像データを出力する第2撮像装置とを含み、
 前記物体からの光のうちの第1波長帯域の光成分を減衰する第1フィルタと、
 前記物体からの光のうちの前記第1波長帯域とは異なる第2波長帯域の光成分を減衰する第2フィルタと
 を更に備え、
 前記第1撮像装置は、前記第1フィルタを介して前記物体からの光を受光することで、前記物体を撮像し、
 前記第2撮像装置は、前記第2フィルタを介して前記物体からの光を受光することで、前記物体を撮像する
 付記82に記載の制御システム。
[付記85]
 前記第2波長帯域の光成分を含む照明光で前記物体を照明する照明装置と、
 前記第1波長帯域の光成分を含むパターン光を前記物体に投影する光投影装置と
を更に備え、
 前記第2撮像装置は、前記光投影装置からパターン光が投影された前記物体を撮像する
 付記84に記載の制御システム。
[付記86]
 付記1から81のいずれか一項に記載の制御装置と、
 前記撮像部と、
 前記ロボットと
 を備えるロボットシステム。
[付記87]
 前記物体に対して処理を行う処理装置を更に備える
 付記86に記載のロボットシステム。
[付記88]
 撮像部が設けられたロボットを制御するための制御信号を生成する制御方法であって、
 前記撮像部が物体を撮像することで生成される第1画像データを用いて、前記物体の位置及び姿勢の少なくとも一方を示す第1情報を生成することと、
 前記撮像部が前記物体を撮像することで生成される第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢の少なくとも一方を示す第2情報を生成することと、
 前記第2情報に基づいて前記制御信号を生成することと
 を含む制御方法。
[付記89]
 撮像部が設けられたロボットを制御するための制御信号を生成する制御方法であって、
 互いに異なる第1及び第2時刻に前記撮像部が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記撮像部が前記物体を撮像することで生成される第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の少なくとも一方の変化量を算出することと、
 前記変化量に基づいて前記制御信号を生成することと
 を含む制御方法。
[付記90]
 物体に対して処理を行う処理装置と撮像部とが設けられたロボットを制御するための制御信号を生成する制御方法であって、
 前記撮像部が前記物体を撮像することで生成される画像データに基づいて、前記物体を、前記処理装置で前記処理を行う対象物として決定するか否かを判定することと、
 前記対象物に前記処理を行うための前記制御信号を生成することと
 を含む制御方法。
[付記91]
 付記88から90のいずれか一項に記載の制御方法を実行させるコンピュータプログラム。
[付記92]
 付記91に記載のコンピュータプログラムが記録された記録媒体。
 上述の各実施形態の構成要件の少なくとも一部は、上述の各実施形態の構成要件の少なくとも他の一部と適宜組み合わせることができる。上述の各実施形態の構成要件のうちの一部が用いられなくてもよい。また、法令で許容される限りにおいて、上述の各実施形態で引用した全ての公開公報及び米国特許の開示を援用して本文の記載の一部とする。
 本発明は、上述した実施例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムもまた本発明の技術的範囲に含まれるものである。
 SYS ロボットシステム
 1 ロボット
 12 ロボットアーム
 13 エンドエフェクタ
 14 ロボット制御装置
 2 撮像ユニット
 21、22 撮像装置
 23 投影装置
 24c 照明装置
 25c、26c フィルタ
 3 制御装置
 31 演算装置
 311 三次元位置データ生成部
 312 位置姿勢算出部
 3121 2Dマッチング部
 3122 3Dマッチング部
 3123 トラッキング部
 3125 座標変換部
 313 信号生成部
 314a 対象決定部
 315b 事前処理部
 33 通信装置
 OBJ 物体
 W ワーク
 T 載置装置
 IMG_2D、IMG_3D 画像データ
 IMG_2M 二次元モデルデータ
 WSD 三次元位置データ
 WMD 三次元モデルデータ
 WM 三次元モデル

Claims (65)

  1.  物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、
     前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、
     前記制御装置は、
     前記制御信号を生成する演算部と、
     前記演算部で生成された前記制御信号を出力する出力部と
     を備え、
     前記演算部は、
     前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記物体の位置及び姿勢を示す第1情報を生成し、
     前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢を示す第2情報を生成し、
     前記第2情報に基づいて前記制御信号を生成する
     制御装置。
  2.  前記第1情報は、第1座標系内での前記物体の位置及び姿勢を示し、
     決定された前記三次元モデルデータが示す三次元モデルの前記位置及び姿勢は、前記第1座標系とは異なる第2座標系内での位置及び姿勢であり、
     前記第2情報は、前記第2座標系内での前記物体の位置及び姿勢を示す
     請求項1に記載の制御装置。
  3.  前記演算部は、
     前記第1座標系内での前記第1情報を、前記第2座標系内での位置及び姿勢に変換し、
     変換された前記第2座標系内での前記位置及び姿勢に基づいて、前記三次元モデルの前記位置及び姿勢を決定する
     請求項2に記載の制御装置。
  4.  前記演算部は、変換された前記第2座標系内での前記位置及び姿勢を、前記三次元モデルの前記位置及び姿勢として設定する
     請求項3に記載の制御装置。
  5.  前記演算部は、
     前記第1情報に基づいて、前記第1座標系内での、前記三次元モデルデータが示す三次元モデルの位置及び姿勢を設定し、
     設定された前記第1座標系内での前記三次元モデルの前記位置及び姿勢を、前記第2座標系内での位置及び姿勢に変換することによって、前記第2座標系内での前記三次元モデルの前記位置及び姿勢を決定する
     請求項2に記載の制御装置。
  6.  前記演算部は、前記第1情報が示す第1座標系内での前記物体の位置及び姿勢を、前記第1座標系内での三次元モデルの前記位置及び姿勢として設定する
     請求項5に記載の制御装置。
  7.  前記第1画像データを生成するために前記第1撮像装置が前記物体を撮像する時刻と、前記第2画像データを生成するために前記第2撮像装置が前記物体を撮像する時刻とが同じ時刻である
     請求項1から6のいずれか一項に記載の制御装置。
  8.  前記出力部は、前記演算部で前記第2情報に基づいて生成された前記制御信号を第1周期で出力する
     請求項1から7のいずれか一項に記載の制御装置。
  9.  前記演算部は、互いに異なる第1及び第2時刻に前記第1撮像装置が前記物体を撮像することでそれぞれ生成される二つの前記第1画像データと、第3時刻に前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の変化量を算出し、
     前記制御信号は、前記第2情報と前記変化量とに基づいて生成される
     請求項1から8のいずれか一項に記載の制御装置。
  10.  前記第1時刻と前記第2時刻は、前記第1情報の生成に用いる前記第1画像データの生成のために前記第1撮像装置が前記物体を撮像する時刻とは異なり、
     前記第3時刻は、前記第2情報の生成に用いる前記三次元位置データの生成に用いる前記第2画像データの生成のために前記第2撮像装置が前記物体を撮像する時刻とは異なる
     請求項9に記載の制御装置。
  11.  前記第2時刻は、前記第1時刻よりも後の時刻であり、
     前記第2時刻と前記第3時刻とは、同じである
     請求項9又は10に記載の制御装置。
  12.  前記演算部は、
     前記第2撮像装置による前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データを用いて、前記第1撮像装置の光学系の光軸に沿った第1軸、前記第1軸に直交する第2軸、並びに、前記第1及び第2軸に直交する第3軸で規定された第1座標系内での前記第1軸と平行な方向における前記物体の特徴箇所の位置、又は、前記第2撮像装置の光学系の光軸に沿った第4軸、前記第4軸に直交する第5軸、並びに、前記第4及び第5軸に直交する第6軸で規定される第2座標系内での前記第4軸と平行な方向における前記物体の特徴箇所の位置を示す第3情報を生成し、
     前記二つの前記第1画像データと前記第3情報とを用いて前記変化量を算出する
     請求項9から11のいずれか一項に記載の制御装置。
  13.  前記演算部は、
     前記第1時刻に前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記第1時刻における前記特徴箇所の位置を示す第4情報を生成し、
     前記第2時刻に前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データと、前記第3情報とを用いて、前記第2時刻における前記特徴箇所の位置を示す第5情報を生成し、
     前記第4情報と前記第5情報とを用いて前記変化量を算出する
     請求項12に記載の制御装置。
  14.  前記第1時刻、前記第2時刻及び前記第3時刻のそれぞれは、前記第1及び第2撮像装置と前記物体とが相対移動中の時刻である
     請求項9から13のいずれか一項に記載の制御装置。
  15.  前記出力部は、前記演算部で前記第2情報と前記変化量とに基づいて生成された前記制御信号を第2周期で出力する
     請求項9から14のいずれか一項に記載の制御装置。
  16.  前記第1及び第2撮像装置により前記物体が撮像されてから前記第1及び第2画像データに基づいて前記第2情報が生成されるまでの時間は、前記第1撮像装置により前記物体が前記互いに異なる第1及び第2時刻のうちの早い方の時刻に撮像されてから前記二つの第1画像データに基づいて前記変化量が算出されるまでの時間よりも長い
     請求項9から15のいずれか一項に記載の制御装置。
  17.  前記演算部は、
     第3周期で前記第2情報を生成し、
     前記第3周期よりも短い第4周期で前記変化量を算出する
     請求項9から16のいずれか一項に記載の制御装置。
  18.  前記演算部は、前記第3周期の1周期としての前記第2情報が新たに生成されてから前記第2情報が次に生成されるまでの間に、前記第4周期で前記変化量が新たに算出されるたびに、前記新たに算出された変化量と前記新たに生成された第2情報とに基づいて前記制御信号を生成する
     請求項17に記載の制御装置。
  19.  前記出力部は、前記演算部で前記第2情報と前記変化量とに基づいて生成された前記制御信号を第2周期で出力し、
     前記第2周期は、前記第4周期と同じである
     請求項17又は18に記載の制御装置。
  20.  前記演算部は、前記第1画像データに基づいて、前記物体を、前記処理装置で前記処理を行う対象物として決定する
     請求項1から19のいずれか一項に記載の制御装置。
  21.  前記演算部は、前記第1画像データに基づいて、前記物体を、前記処理装置で前記処理を行う対象物として決定するか否かを判定する
     請求項1から20のいずれか一項に記載の制御装置。
  22.  前記演算部は、
     前記第1画像データが示す第1画像内での前記物体を検出する物体検出処理によって前記第1情報を生成し、
     前記物体検出処理の結果に基づいて、前記物体を前記対象物として決定するか否かを判定する
     請求項21に記載の制御装置。
  23.  前記演算部は、
     前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で検出される前記物体から、前記物体のエッジを検出し、
     前記第1画像データを用いて前記第1画像内のエッジを検出し、
     前記物体の前記エッジと前記第1画像内の前記エッジとの第1類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
     請求項22に記載の制御装置。
  24.  前記演算部は、
     前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で算出される、前記物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定する
     請求項22又は23に記載の制御装置。
  25.  前記演算部は、
     前記物体検出処理として、前記物体の二次元モデルを示す二次元モデルデータと前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で算出される、前記物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第2類似度に基づいて、前記物体を前記対象物として決定するか否かを判定し、
     前記第1及び第2類似度が所定の第1閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
     前記第1及び第2類似度の少なくとも一方が所定の第1閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
     請求項23に記載の制御装置。
  26.  物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、
     前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、
     前記制御装置は、
     前記制御信号を生成する演算部と、
     前記演算部で生成された前記制御信号を出力する出力部と
     を備え、
     前記演算部は、
     互いに異なる第1及び第2時刻に前記第1撮像装置が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の変化量を算出し、
     前記変化量に基づいて前記制御信号を生成する
     制御装置。
  27.  前記第2時刻は、前記第1時刻よりも後の時刻であり、
     前記第2時刻と前記第3時刻とは、同じである
     請求項26に記載の制御装置。
  28.  前記演算部は、
     前記三次元位置データを用いて、前記第1撮像装置の光学系の光軸に沿った第1軸、前記第1軸に直交する第2軸、並びに、前記第1及び第2軸に直交する第3軸で規定された第1座標系内での前記第1軸と平行な方向における前記物体の特徴箇所の位置、又は前記第2撮像装置の光学系の光軸に沿った第4軸、前記第4軸に直交する第5軸、並びに、前記第4及び第5軸に直交する第6軸で規定される第2座標系内での前記第4軸と平行な方向における前記物体の特徴箇所の位置を示す情報を生成し、
     前記二つの前記第1画像データと前記情報とを用いて前記変化量を算出する
     請求項26又は27に記載の制御装置。
  29.  前記情報を第1情報としたとき、
     前記演算部は、
     前記第1時刻に前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記第1時刻における前記特徴箇所の位置を示す第2情報を生成し、
     前記第2時刻に前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データと、前記第1情報とを用いて、前記第2時刻における前記特徴箇所の位置を示す第3情報を生成し、
     前記第2情報と前記第3情報とを用いて前記変化量を算出する
     請求項28に記載の制御装置。
  30.  前記第1時刻、前記第2時刻及び第3時刻のそれぞれは、前記第1及び第2撮像装置と前記物体とが相対移動中の時刻である
     請求項26から29のいずれか一項に記載の制御装置。
  31.  前記出力部は、前記演算部で前記変化量に基づいて生成された前記制御信号を所定周期で出力する
     請求項26から30のいずれか一項に記載の制御装置。
  32.  前記演算部は、前記第1画像データと、前記物体の二次元モデルを示す二次元モデルデータとを用いたマッチング処理によって前記第1情報を生成する
     請求項1から25のいずれか一項に記載の制御装置。
  33.  前記演算部は、前記第1情報に基づいて、前記三次元モデルデータが示す前記物体の三次元モデルの前記位置及び姿勢を決定する
     請求項1から25及び32のいずれか一項に記載の制御装置。
  34.  前記演算部は、前記三次元位置データと前記三次元モデルデータとを用いたマッチング処理によって前記第2情報を生成する
     請求項1から25及び32から33のいずれか一項に記載の制御装置。
  35.  前記制御装置は、前記第1撮像装置が前記物体を撮像する時刻と前記第2撮像装置が前記物体を撮像する時刻とが同じ時刻になるように、前記第1及び第2撮像装置による撮像のタイミングを制御する
     請求項1から25及び32から34のいずれか一項に記載の制御装置。
  36.  前記第1情報の生成に用いる前記第1画像データの生成のために前記第1撮像装置が前記物体を撮像するタイミングと、前記第2情報の生成に用いる前記三次元位置データの生成に用いる前記第2画像データの生成のために前記第2撮像装置が前記物体を撮像するタイミングとは、前記第1及び第2撮像装置と前記物体とが相対移動中のタイミングである
     請求項1から25及び32から35のいずれか一項に記載の制御装置。
  37.  前記第2時刻は、前記第1時刻よりも後の時刻であり、
     前記制御装置は、前記第2時刻と前記第3時刻が同じになるように、前記第1及び第2撮像装置による撮像のタイミングを制御する
     請求項9から19及び26から31のいずれか一項に記載の制御装置。
  38.  前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データは、前記第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
     前記演算部は、
     前記第2座標系内での前記三次元位置を、前記第1座標系内での三次元位置に変換し、
     変換された前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記第3情報を生成する
     請求項12又は13に記載の制御装置。
  39.  前記第3時刻の撮像で生成される前記第2画像データから生成される前記三次元位置データは、前記第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
     前記演算部は、前記第2座標系内での前記三次元位置から前記第4軸と平行な方向における前記特徴箇所の位置を示す前記第3情報を生成する
     請求項12又は13に記載の制御装置。
  40.  前記三次元位置データは、前記第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
     前記演算部は、
     前記第2座標系内での前記三次元位置を、前記第1座標系内での三次元位置に変換し、
     変換された前記第1座標系内での前記三次元位置から前記第1軸と平行な方向における前記特徴箇所の位置を示す前記情報を生成する
     請求項28又は29に記載の制御装置。
  41.  前記三次元位置データは、前記第2座標系内での前記物体の複数点それぞれの前記三次元位置を示し、
     前記演算部は、前記第2座標系内での前記三次元位置から前記第4軸と平行な方向における前記特徴箇所の位置を示す前記情報を生成する
     請求項28又は29に記載の制御装置。
  42.  前記演算部は、
     前記第1類似度が所定の第1閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
     前記第1類似度が所定の第1閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
     請求項23に記載の制御装置。
  43.  前記演算部は、
     前記第2類似度が所定の第2閾値を上回る場合に、前記物体を前記対象物として決定すると判定し、
     前記第2類似度が所定の第2閾値を下回る場合に、前記物体を前記対象物として決定しないと判定する
     請求項24に記載の制御装置。
  44.  前記演算部は、
     前記物体を前記対象物として決定しないと判定した場合に、前記物体に対して前記第1撮像装置を移動させるように前記ロボットアームを制御するための信号を、前記制御信号として生成する
     請求項20から25及び42から43のいずれか一項に記載の制御装置。
  45.  前記演算部は、
     所望の回転軸周りに前記第1撮像装置を回転移動させるように前記ロボットアームを制御するための信号を、前記制御信号として生成し、
     前記信号に基づいて前記ロボットアームが制御された後に、前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データに基づいて前記判定を行う
     請求項44に記載の制御装置。
  46.  前記演算部は、
     前記信号に基づいて前記第1撮像装置を回転移動させるように前記ロボットアームが制御された後に前記判定を行った結果、前記物体を前記対象物として選択しないと判定した場合に、所望の並進軸に沿って前記第1撮像装置を並進移動させるように前記ロボットアームを制御するための信号を、前記制御信号として生成する
     請求項45に記載の制御装置。
  47.  前記処理装置は、前記物体を保持可能な保持装置を含み、
     前記制御信号は、前記保持装置の保持動作を制御するための信号であり、
     前記演算部で生成された前記制御信号に基づいて、前記保持装置が前記物体に近づくように前記ロボットアームが制御され、前記保持装置により前記物体が保持されるように前記保持装置が制御され、
     前記演算部は、
     前記保持装置によって前記物体が保持された後に、前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記保持装置が保持している前記物体の位置及び姿勢を示す第6情報を生成し、
     前記第6情報に基づいて、前記保持装置が保持している前記物体を所望位置に移動させる及び/又は前記保持装置が保持している前記物体の姿勢を所望姿勢に変更するように前記ロボットアームを制御するための前記制御信号を生成する
     請求項1から46のいずれか一項に記載の制御装置。
  48.  第1物体と前記第1物体とは位置及び姿勢の少なくとも一方が異なる第2物体との少なくとも一方に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御装置であって、
     前記制御信号によって、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御され、
     前記制御装置は、
     前記制御信号を生成する演算部と、
     前記演算部で生成された前記制御信号を出力する出力部と
     を備え、
     前記演算部は、
     前記第1撮像装置が前記第1及び第2物体を撮像することで生成される前記第1画像データに基づいて、前記第1又は第2物体を、前記処理装置で前記処理を行う対象物として選択するか否かを判定し、
     前記判定の結果、前記第1又は第2物体が前記対象物として選択された場合、前記第2撮像装置が前記第1及び第2物体を撮像することで生成される前記第2画像データから生成され且つ前記対象物の複数点それぞれの三次元位置を示す三次元位置データと、前記第1画像データを用いて生成される前記対象物の位置及び姿勢を示す第1情報に基づいて決定される位置及び姿勢での前記対象物の三次元モデルデータとを用いて、前記対象物の位置及び姿勢を示す第2情報を生成し、
     前記第2情報に基づいて前記制御信号を生成する
     制御装置。
  49.  前記演算部は、
     前記第1画像データが示す第1画像内での前記第1及び第2物体を検出する物体検出処理によって前記第1情報を生成し、
     前記物体検出処理の結果に基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定する
     請求項48に記載の制御装置。
  50.  前記演算部は、
     前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で検出される前記第1及び第2物体から前記第1物体のエッジ及び前記第2物体のエッジを検出し、
     前記第1画像データを用いて前記第1画像内のエッジを検出し、
     前記第1物体の前記エッジと前記第1画像内の前記エッジとの第1類似度と、前記第2物体の前記エッジと前記第1画像内の前記エッジとの第2類似度とに基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定する
     請求項49に記載の制御装置。
  51.  前記演算部は、
     前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で算出される、前記第1物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第3類似度と、前記第2物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第4類似度とに基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定する
     請求項49又は50に記載の制御装置。
  52.  前記演算部は、
     前記物体検出処理として、前記第1物体の二次元モデルを示す第1二次元モデルデータ及び前記第2物体の二次元モデルを示す第2二次元モデルデータと、前記第1画像データとを用いたマッチング処理を行い、
     前記マッチング処理で算出される、前記第1物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第3類似度と、前記第2物体の前記二次元モデルと前記第1画像データが示す前記第1画像との第4類似度と、前記第1類似度と、前記第2類似度とに基づいて、前記第1又は第2物体を前記対象物として選択するか否かを判定し、
     前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、且つ、前記第3類似度が前記第4類似度よりも高い場合に、前記第1物体を前記対象物として選択すると判定し、
     前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、且つ、前記第4類似度が前記第3類似度よりも高い場合に、前記第2物体を前記対象物として選択すると判定し、
     前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第3類似度/前記第4類似度が、前記第2類似度/前記第1類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
     前記第1類似度が所定の第1閾値を上回り、前記第1類似度が前記第2類似度よりも高く、前記第3類似度が所定の第2閾値を上回り、前記第3類似度が前記第4類似度よりも低い場合であって、且つ、前記第2類似度/前記第1類似度が、前記第3類似度/前記第4類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
     前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第4類似度/前記第3類似度が、前記第1類似度/前記第2類似度より小さい場合に、前記第1物体を前記対象物として選択すると判定し、
     前記第2類似度が所定の第1閾値を上回り、前記第2類似度が前記第1類似度よりも高く、前記第4類似度が所定の第2閾値を上回り、前記第4類似度が前記第3類似度よりも低い場合であって、且つ、前記第1類似度/前記第2類似度が、前記第4類似度/前記第3類似度より小さい場合に、前記第2物体を前記対象物として選択すると判定し、
     前記第1類似度が所定の第2閾値を上回り、且つ、前記第3類似度が所定の第1閾値を上回る場合であって、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1物体を前記対象物として選択すると判定し、
     前記第2類似度が所定の第2閾値を上回り、且つ、前記第4類似度が所定の第1閾値を上回る場合であって、且つ、前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合に、前記第2物体を前記対象物として選択すると判定し、
     前記第1類似度が所定の第2閾値を下回る、及び/又は、前記第3類似度が所定の第1閾値を下回る場合であって、且つ、前記第2類似度が所定の第2閾値を下回る、及び/又は、前記第4類似度が所定の第1閾値を下回る場合に、前記第1及び第2物体を前記対象物として選択しないと判定する
     請求項50に記載の制御装置。
  53.  前記第2物体は、前記第1物体と同じ三次元形状であり、
     前記第1二次元モデルデータと前記第2二次元モデルデータは、前記三次元形状の二次元モデルを示す二次元モデルデータである
     請求項51又は52に記載の制御装置。
  54.  前記第1画像データを生成するために前記第1撮像装置が前記第1及び第2物体を撮像する時刻と、前記第2画像データを生成するために前記第2撮像装置が前記第1及び第2物体を撮像する時刻とが同じ時刻である
     請求項48から53のいずれか一項に記載の制御装置。
  55.  前記第1撮像装置は、単眼カメラであり、
     前記第2撮像装置は、前記単眼カメラとは異なる2つの単眼カメラを有するステレオカメラである、
     請求項1から54のいずれか一項に記載の制御装置。
  56.  請求項1から55のいずれか一項に記載の制御装置と、
     前記第1撮像装置と、
     前記第2撮像装置と
     を備える制御システム。
  57.  前記物体からの光のうちの第1波長帯域の光成分を減衰する第1フィルタと、
     前記物体からの光のうちの前記第1波長帯域とは異なる第2波長帯域の光成分を減衰する第2フィルタと
     を更に備え、
     前記第1撮像装置は、前記第1フィルタを介して前記物体からの光を受光することで、前記物体を撮像し、
     前記第2撮像装置は、前記第2フィルタを介して前記物体からの光を受光することで、前記物体を撮像する
     請求項56に記載の制御システム。
  58.  前記第2波長帯域の光成分を含む照明光で前記物体を照明する照明装置と、
     前記第1波長帯域の光成分を含むパターン光を前記物体に投影する光投影装置と
    を更に備え、
     前記第2撮像装置は、前記光投影装置からパターン光が投影された前記物体を撮像することで前記第2画像データを生成する
     請求項57に記載の制御システム。
  59.  請求項1から55のいずれか一項に記載の制御装置と、
     前記第1撮像装置と、
     前記第2撮像装置と、
     前記ロボットアームと
     を備えるロボットシステム。
  60.  前記物体に対して前記処理を行う前記処理装置を更に備える
     請求項59に記載のロボットシステム。
  61.  物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、
     前記第1撮像装置が前記物体を撮像することで生成される前記第1画像データを用いて、前記物体の位置及び姿勢を示す第1情報を生成することと、
     前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データと、前記第1情報に基づいて決定される位置及び姿勢での前記物体の三次元モデルデータとを用いて、前記物体の位置及び姿勢を示す第2情報を生成することと、
     前記第2情報に基づいて前記制御信号を生成することと
     を含み、
     前記処理装置で前記物体を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される
     制御方法。
  62.  物体に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、
     互いに異なる第1及び第2時刻に前記第1撮像装置が前記物体を撮像することでそれぞれ生成される二つの第1画像データと、第3時刻に前記第2撮像装置が前記物体を撮像することで生成される前記第2画像データから生成され且つ前記物体の複数点それぞれの三次元位置を示す三次元位置データとに基づいて、前記第1及び第2時刻間における前記物体の位置及び姿勢の変化量を算出することと、
     前記変化量に基づいて前記制御信号を生成することと
     を含み、
     前記処理装置で前記物体を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される
     制御方法。
  63.  第1物体と前記第1物体とは位置及び姿勢の少なくとも一方が異なる第2物体との少なくとも一方に対して処理を行う処理装置と、第1画像データを出力する第1撮像装置と、第2画像データを出力する第2撮像装置とが設けられたロボットアームを制御するための制御信号を生成する制御方法であって、
     前記第1撮像装置が前記第1及び第2物体を撮像することで生成される前記第1画像データに基づいて、前記第1又は第2物体を、前記処理装置で前記処理を行う対象物として選択するか否かを判定することと、
     前記判定の結果、前記第1又は第2物体が前記対象物として選択された場合、前記第2撮像装置が前記第1及び第2物体を撮像することで生成される前記第2画像データから生成され且つ前記対象物の複数点それぞれの三次元位置を示す三次元位置データと、前記第1画像データを用いて生成される前記対象物の位置及び姿勢を示す第1情報に基づいて決定される位置及び姿勢での前記対象物の三次元モデルデータとを用いて、前記対象物の位置及び姿勢を示す第2情報を生成することと、
     前記第2情報に基づいて前記制御信号を生成することと
     を含み、
     前記処理装置で前記対象物を処理するために、生成された前記制御信号に基づいて、前記処理装置と、前記第1及び第2撮像装置とを移動させるように前記ロボットアームが制御される
    制御方法。
  64.  前記第1撮像装置は、単眼カメラであり、
     前記第2撮像装置は、前記単眼カメラとは異なる2つの単眼カメラを有するステレオカメラである、
     請求項61から63のいずれか一項に記載の制御方法。
  65.  請求項61から64のいずれか一項に記載の制御方法を実行させるコンピュータプログラム。
PCT/JP2022/019364 2022-04-28 2022-04-28 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム WO2023209974A1 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/019364 WO2023209974A1 (ja) 2022-04-28 2022-04-28 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2022/019364 WO2023209974A1 (ja) 2022-04-28 2022-04-28 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Publications (1)

Publication Number Publication Date
WO2023209974A1 true WO2023209974A1 (ja) 2023-11-02

Family

ID=88518160

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2022/019364 WO2023209974A1 (ja) 2022-04-28 2022-04-28 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム

Country Status (1)

Country Link
WO (1) WO2023209974A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088278B2 (ja) * 2008-09-17 2012-12-05 株式会社安川電機 物体検出方法と物体検出装置およびロボットシステム
WO2020022041A1 (ja) * 2018-07-23 2020-01-30 オムロン株式会社 制御システム、制御方法およびプログラム
JP6784991B2 (ja) * 2016-06-07 2020-11-18 国立大学法人 岡山大学 ワーク検知システム及び衣服検知システム
JP2021115651A (ja) * 2020-01-23 2021-08-10 三菱重工業株式会社 マニピュレータ、自動化方法及びプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5088278B2 (ja) * 2008-09-17 2012-12-05 株式会社安川電機 物体検出方法と物体検出装置およびロボットシステム
JP6784991B2 (ja) * 2016-06-07 2020-11-18 国立大学法人 岡山大学 ワーク検知システム及び衣服検知システム
WO2020022041A1 (ja) * 2018-07-23 2020-01-30 オムロン株式会社 制御システム、制御方法およびプログラム
JP2021115651A (ja) * 2020-01-23 2021-08-10 三菱重工業株式会社 マニピュレータ、自動化方法及びプログラム

Similar Documents

Publication Publication Date Title
US10805546B2 (en) Image processing system, image processing device, and image processing program
JP5949242B2 (ja) ロボットシステム、ロボット、ロボット制御装置、ロボット制御方法、およびロボット制御プログラム
JP5567908B2 (ja) 3次元計測装置、その計測方法及びプログラム
JP5602392B2 (ja) 情報処理装置、情報処理方法およびプログラム
JP5665333B2 (ja) 情報処理装置および情報処理装置の制御方法
CN109773776B (zh) 把持方法、把持系统以及存储介质
US11667036B2 (en) Workpiece picking device and workpiece picking method
JP2020047049A (ja) 画像処理装置及び画像処理方法
US20230179732A1 (en) Image capturing apparatus, image processing apparatus, image processing method, image capturing apparatus calibration method, robot apparatus, method for manufacturing article using robot apparatus, and recording medium
JP2014188617A (ja) ロボット制御システム、ロボット、ロボット制御方法及びプログラム
JP7331527B2 (ja) ロボットの動作を決定する装置、方法およびプログラム
JP2020179441A (ja) 制御システム、情報処理装置および制御方法
CN110587592A (zh) 机器人控制装置、机器人控制方法及计算机可读记录介质
JP2018194542A (ja) 画像処理システム、画像処理装置および画像処理プログラム
CN109773777B (zh) 把持方法、把持系统以及存储介质
WO2023209974A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
JP7180783B2 (ja) コンピュータビジョンシステムのキャリブレーション方法及びこれに用いる基準立体物
US20230330764A1 (en) Autonomous assembly robots
WO2023127021A1 (ja) 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム
US11590652B2 (en) Measuring device
US11478936B2 (en) Image processing apparatus that processes image picked up by image pickup apparatus attached to robot, control method therefor, and storage medium storing control program therefor
JP6841297B2 (ja) ビジュアルサーボシステム
CN115958589A (zh) 用于机器人的手眼标定的方法和装置
JP2012078105A (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: 22940248

Country of ref document: EP

Kind code of ref document: A1