WO2025115102A1 - 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム - Google Patents
制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム Download PDFInfo
- Publication number
- WO2025115102A1 WO2025115102A1 PCT/JP2023/042576 JP2023042576W WO2025115102A1 WO 2025115102 A1 WO2025115102 A1 WO 2025115102A1 JP 2023042576 W JP2023042576 W JP 2023042576W WO 2025115102 A1 WO2025115102 A1 WO 2025115102A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- target object
- holding device
- container
- holding
- robot
- Prior art date
- Legal status (The legal status 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 status listed.)
- Pending
Links
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
Definitions
- the present invention relates to the technical fields of control devices, control systems, robot systems, control methods, and computer programs capable of generating control signals for controlling robots, for example.
- Patent Document 1 An example of a control device that controls a robot to hold an object is described in Patent Document 1. Such a control device is required to control the robot so that it appropriately holds the object.
- a holding device capable of holding a target object and an imaging system for imaging the target object
- a control device is provided that generates a control signal for controlling a robot that moves the holding device and the imaging system and at least one of the holding devices
- the control device being provided with a calculation device that generates the control signal and a communication device that outputs the control signal generated by the calculation device
- the calculation device is configured to, based on an imaging result obtained by imaging a group of target objects including at least a portion of the plurality of target objects contained in a container using the imaging system, determine whether or not a first target object, which is a target object among the group of target objects, is held by the holding device when a second target object among the plurality of target objects contained in the container is held by the holding device together with the first target object, at least A control device is provided that generates, as the control signal, a first control signal for controlling at least one of the robot and the holding device so that at least the second target object falls into the container, and generates,
- a control system includes the control device provided by the first aspect and the imaging system.
- a robot system includes the control device provided in the first aspect, the imaging system, and the robot.
- a control method in which a holding device capable of holding a target object and an imaging system for imaging the target object are provided, and a robot which moves the holding device and the imaging system, and a control signal is generated for controlling at least one of the holding devices, and the control method is configured to control the robot and the imaging system based on an imaging result obtained by imaging a group of target objects including at least a portion of the plurality of target objects contained in a container using the imaging system, and when a first target object which is the target object of the group of target objects is held by the holding device, and a second target object of the plurality of target objects contained in the container is held by the holding device together with the first target object, at least the second target object falls into the container.
- a control method includes generating, as the control signal, a first control signal for controlling at least one of the holding devices, and generating, as the control signal, a second control signal for controlling at least one of the robot and the holding device so that, when a third target object among the multiple target objects contained in the container is held by the holding device after the at least second target object has fallen into the container based on the first control signal and a fourth target object among the multiple target objects contained in the container is held by the holding device together with the third target object, at least the fourth target object falls into the container from a position lower than a position at which the at least second target object starts to fall into the container.
- a computer program is provided that causes a computer to execute the control method provided by the fourth aspect.
- a control device that is provided with a holding device capable of holding a target object and an imaging system that images the target object, and that generates a control signal for controlling at least one of the holding device and the robot that moves the holding device and the imaging system, and the holding device, and the control device includes a calculation device that generates the control signal, and a communication device that outputs the control signal generated by the calculation device, and the calculation device generates a first control signal as the control signal for controlling at least one of the robot and the holding device based on a holding state of the group of held target objects held by the holding device, which is detected based on a second imaging result in which the imaging system images a group of held target objects, which are the multiple target objects held by the holding device, after the holding operation of the target objects held in the container is performed by the holding device, based on a first imaging result in which the imaging system images at least a portion of the multiple target objects contained in the container.
- a control system includes the control device provided in the sixth aspect and the imaging system.
- a robot system includes the control device provided in the sixth aspect, the imaging system, and the robot.
- a control method for generating a control signal for controlling at least one of a holding device capable of holding a target object and an imaging system for imaging the target object, and a robot for moving the holding device and the imaging system including generating a first control signal as the control signal for controlling at least one of the robot and the holding device based on a holding state of the group of held target objects held by the holding device detected based on a second imaging result in which the imaging system images a group of held target objects, which are the multiple target objects held by the holding device, after the holding operation of the target objects held by the holding device is performed on the target objects held in the container, based on a first imaging result in which the imaging system images at least a portion of the multiple target objects held in the container.
- a computer program is provided that causes a computer to execute the control method provided by the ninth aspect.
- a control device that generates a control signal for controlling a robot that moves the holding device and the imaging system, and at least one of the holding devices, the control device including a calculation device that generates the control signal, and a communication device that outputs the control signal generated by the calculation device, the calculation device performing a holding operation on the target objects contained in the container based on a first imaging result in which the imaging system images at least some of the target objects contained in the container, and then determining the number of target objects held by the holding device based on a second imaging result in which the target objects held by the holding device are imaged, and generating the control signal for controlling at least one of the robot and the holding device so that the control mode of at least one of the robot and the holding device differs depending on the determined number.
- a control system includes the control device provided by the eleventh aspect and the imaging system.
- a robot system includes the control device provided in the eleventh aspect, the imaging system, and the robot.
- a control method in which a holding device capable of holding a target object and an imaging system for imaging the target object are provided, and a robot that moves the holding device and the imaging system, and at least one of the holding device is generated, the control method including: performing a holding operation on the target objects contained in the container by the holding device based on a first imaging result in which at least some of the target objects contained in the container are imaged by the imaging system; determining the number of the target objects held by the holding device based on a second imaging result in which the target objects held by the holding device are imaged; and generating the control signal for controlling at least one of the robot and the holding device so that the control mode of at least one of the robot and the holding device differs according to the determined number.
- a computer program is provided that causes a computer to execute the control method provided by the fourteenth aspect.
- FIG. 1 is a block diagram showing the configuration of a robot system according to the present embodiment.
- FIG. 2 is a side view showing the appearance of the robot of this embodiment.
- FIG. 3 is a block diagram showing the configuration of the control device of this embodiment.
- FIG. 3 is a block diagram showing the configuration of the robot control device of this embodiment.
- FIG. 5 is a flowchart showing the flow of the robot control process.
- Each of Figures 6(a) to 6(d) is a cross-sectional view showing an end effector holding a process object as well as a non-process object.
- FIG. 7(a) to 7(c) is a cross-sectional view showing the positional relationship between a plurality of target objects contained in a container and an end effector holding the group of objects to be held.
- FIG. 8 is a cross-sectional view showing a processing object and a non-processing object falling from the end effector.
- FIG. 9 is a cross-sectional view showing a non-handled object falling from the end effector.
- FIG. 10 is a cross-sectional view showing a non-handled object falling from the end effector.
- FIG. 11 is a cross-sectional view showing an end effector that rotates and moves.
- FIG. 12 is a cross-sectional view showing an end effector that rotates and moves.
- FIG. 13 is a cross-sectional view showing a processing object and a non-processing object falling from the end effector.
- FIG. 14 is a cross-sectional view showing the heights of a group of target objects contained in a container.
- Each of Figures 15(a) to 15(c) is a cross-sectional view showing a drop height.
- Each of Figs. 16(a) and 16(b) is a cross-sectional view showing an end effector holding a non-processing object.
- FIG. 17 is a cross-sectional view showing a non-handled object falling from the end effector.
- FIG. 18 is a cross-sectional view showing an imaging system for imaging an object.
- FIG. 19 is a cross-sectional view showing a weight sensor that measures the weight of a target object.
- FIG. 20 is a cross-sectional view showing a container in which an object detection sensor for detecting a target object is disposed.
- FIG. 21 is a cross-sectional view showing a container with a marker disposed thereon.
- FIG. 22 is a flowchart showing the flow of the robot control process in the second modified example.
- FIG. 23 is a cross-sectional view showing an example of a state in which a desired portion of a non-processing object faces a desired direction.
- FIG. 24 is a cross-sectional view conceptually showing an imaging device moving before imaging a non-processing object.
- FIG. 25 is a block diagram showing the configuration of a robot system including a measurement system.
- 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 system 2, a control device 3, and an end effector 4.
- the imaging system 2 may also be referred to as an imaging unit.
- the robot 1 is a device capable of performing a predetermined process on a target object OBJ.
- An example of the robot 1 is shown in FIG. 2.
- 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 13.
- the base 11 is a component that forms 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 relative to the support surface S. Note that 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 multiple links 121 are connected via joints 122.
- An actuator is built into the joint 122.
- the link 121 may be rotatable around an axis defined by the joint 122 by the 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.
- the device including the device in which multiple links 121 are connected via joints 122 and the base 11 may be referred to as the robot arm 12.
- the end effector 4 is attached to the robot arm 12. That is, the end effector 4 is attached to the robot 1. In the example shown in FIG. 2, the end effector 4 is attached to the tip of the robot arm 12.
- the end effector 4 can be moved by the movement of the robot arm 12. That is, the robot arm 12 moves the end effector 4. That is, the robot 1 moves the end effector 4.
- the end effector 4 is a device that performs a predetermined process (in other words, a predetermined operation) on the target object OBJ.
- the end effector 4 that performs a predetermined process on the target object OBJ may also be called a processing device.
- the end effector 4 may perform a holding process to hold the target object OBJ as an example of the predetermined process.
- the end effector 4 may be considered to be performing a holding process on the target object OBJ that the end effector 4 is to hold.
- An end effector 4 capable of performing a holding process may be referred to as a holding device.
- holding the target object OBJ may be considered to be equivalent to picking up the target object OBJ.
- the holding process of holding the target object OBJ may be considered to be equivalent to a pick-up process of picking up the target object OBJ.
- holding the target object OBJ may include gripping the target object OBJ.
- holding the target object OBJ may include gripping the target object OBJ using a hand gripper, which is an example of the end effector 4.
- Holding the target object OBJ may include adsorbing the target object OBJ.
- holding the target object OBJ may include adsorbing (vacuum adsorption) the target object OBJ using a vacuum gripper, which is an example of the end effector 4.
- holding the target object OBJ may include adsorbing the target object OBJ using a magnetic gripper (e.g., a magnetically adsorbed gripper), which is an example of the end effector 4.
- a magnetic gripper e.g., a magnetically adsorbed gripper
- the end effector 4 may perform a release process (in other words, a release operation) to release (i.e., let go of) the target object OBJ that it is holding.
- the end effector 4 may be considered to be performing a release process on the target object OBJ that it is holding.
- An end effector 4 capable of performing a release process may be referred to as a release device.
- a hand gripper is an end effector 4 capable of holding (e.g., grasping) a target object OBJ by physically pinching the target object OBJ using multiple (e.g., two, three, or four) finger members or claw members.
- a vacuum gripper e.g., a vacuum suction type gripper.
- a vacuum gripper is an end effector 4 capable of holding (e.g., adsorbing) a target object OBJ by vacuum adsorbing the target object OBJ.
- an end effector 4 capable of holding and releasing is a magnetic gripper (e.g., a magnetic adsorption type gripper).
- Figure 2 shows an example in which the end effector 4 is a hand gripper.
- the end effector 4 capable of holding and releasing the target object OBJ is not limited to the above examples, and may be any other existing end effector capable of holding and releasing the target object OBJ.
- the robot 1 may use the end effector 4 capable of holding and releasing to perform a placement process (in other words, a placement operation) for placing the target object OBJ at a desired position, as an example of a predetermined process.
- the robot 1 may hold a first target object OBJ using the end effector 4, and then perform a placement process for placing the first target object OBJ held by the end effector 4 at a desired position of a second target object OBJ different from the first target object OBJ.
- the end effector 4 may be considered to be performing a release process on the second target object OBJ on which the end effector 4 should place the first target object OBJ.
- the end effector 4 may be considered to be performing a release process on the first target object OBJ that the end effector 4 should release.
- the robot 1 may use the end effector 4 capable of holding and releasing to perform a fitting process (in other words, a fitting operation) for fitting a first target object OBJ into a second target object OBJ different from the first target object OBJ, as a specific example of a placement process (in other words, a placement operation).
- the fitting process may include, for example, a process for fitting (i.e., inserting) the first target object OBJ (e.g., a convex portion of the first target object OBJ) into a concave portion (e.g., a hole) formed in the second target object OBJ.
- the fitting process may include, for example, a process for fitting the first target object OBJ (e.g., a concave portion of the first target object OBJ) into a convex portion (e.g., a rod) formed in the second target object OBJ.
- a process for fitting the first target object OBJ e.g., a concave portion of the first target object OBJ
- a convex portion e.g., a rod
- the robot 1 may use the end effector 4 capable of performing the holding process and the release process to perform a pasting process (in other words, a pasting operation) for pasting the first target object OBJ to a second target object OBJ different from the first target object OBJ, as a specific example of a placement process (in other words, a placement operation).
- the robot 1 may use the end effector 4 capable of performing the holding process and the release process to perform a bonding process (in other words, a bonding operation) for bonding the first target object OBJ to a second target object OBJ different from the first target object OBJ, as a specific example of a placement process (in other words, a placement operation).
- the robot 1 may use the end effector 4 capable of performing the holding process and the release process to perform a welding process (in other words, a welding operation) for welding the first target object OBJ to a second target object OBJ different from the first target object OBJ, as a specific example of a placement process (in other words, a placement operation).
- the robot 1 may use the end effector 4 capable of holding and releasing processes to perform a screw tightening process (in other words, a screw tightening operation) for tightening a first target object OBJ capable of functioning as a screw into a screw hole formed in a second target object OBJ different from the first target object OBJ, as a specific example of a placement process (in other words, a placement operation).
- the first target object OBJ may be a screw member capable of functioning as a screw such as a bolt or a nut.
- At least one of the pasting process, adhesive process, welding process, and screw tightening process may be referred to as a processing process.
- the robot 1 may use the end effector 4 capable of holding and releasing the target object OBJ to perform a process for discarding the target object OBJ (in other words, a discarding operation) as a specific example of a placement process (in other words, a placement operation).
- a process for discarding the target object OBJ in other words, a discarding operation
- a placement process in other words, a placement operation
- the end effector 4 may perform a predetermined process on each of the multiple target objects OBJ. That is, the end effector 4 may perform a predetermined process on the multiple target objects OBJ in sequence.
- the robot 1 may move the end effector 4 to a first position where the end effector 4 can perform a predetermined process on the first target object OBJ, and after the end effector 4 has moved to the first position, the end effector 4 may perform a predetermined process on the first target object OBJ.
- the robot 1 may move the end effector 4 to a second position where the end effector 4 can perform a predetermined process on a second target object OBJ different from the first target object OBJ, and after the end effector 4 has moved to the second position, the end effector 4 may perform a predetermined process on the second target object OBJ.
- the end effector 4 may perform a predetermined process on each of the multiple parts of a single target object OBJ. That is, the end effector 4 may perform a predetermined process on the multiple parts of a single target object OBJ in sequence.
- the robot 1 may move the end effector 4 to a third position where the end effector 4 can perform a predetermined process on a first part of the target object OBJ, and after the end effector 4 has moved to the third position, the end effector 4 may perform a predetermined process on the first part of the target object OBJ.
- the robot 1 may move the end effector 4 to a fourth position where the end effector 4 can perform a predetermined process on a second part of the target object OBJ, and after the end effector 4 has moved to the fourth position, the end effector 4 may perform a predetermined process on the second part of the target object OBJ.
- the target object OBJ on which the end effector 4 performs a predetermined process may include a workpiece W, as shown in FIG. 2.
- the workpiece W may include, for example, parts or members used to manufacture a desired product.
- the workpiece W may include, for example, parts or members to be processed to manufacture a desired product.
- the workpiece W may include, for example, parts or members to be transported to manufacture a desired product.
- the workpiece W may include, for example, parts or members that are moving due to transportation to manufacture a desired product.
- the workpiece W may include, for example, parts or members that are moving to manufacture a desired product.
- the target object OBJ on which the end effector 4 performs a predetermined process may include a placement device T on which a workpiece W is placed, as shown in FIG. 2.
- An example of the placement device T is a container (storage box) CB.
- the container CB may have a bottom wall BS and a side wall SS protruding upward from the bottom wall BS, and may be a placement device T in which the workpiece W is placed on the bottom wall BS in a storage space SP surrounded by the bottom wall BS and the side wall SS.
- the container CB may have a bottom wall BS and a side wall SS protruding upward from the bottom wall BS, and may be a placement device T capable of storing the workpiece W in the storage space SP surrounded by the bottom wall BS and the side wall SS.
- the container CB may not have a side wall SS.
- a container CB that does not have a side wall SS may be called a pallet.
- the placement device T is not limited to a container CB or a pallet, and may be an existing object on which the workpiece W can be placed.
- the placement device T may be referred to as a placement member.
- the placement device T may be disposed on the support surface S.
- the placement device T may be fixed to the support surface S.
- the placement device T may be movable relative to the support surface S.
- the placement device T is supported by a conveying device that can move (in other words, convey) the placement device T.
- the conveying device may be, for example, a belt conveyor.
- the conveying device may be at least one of an automatic guided vehicle, an autonomously traveling guided robot, and an unmanned aerial vehicle.
- FIG. 2 shows an example in which the placement device T is self-propelled on the support surface S.
- at least one of the automatic guided vehicle, the autonomously traveling guided robot, and the unmanned aerial vehicle may also be referred to as a movable device.
- the robot control device 13 controls the operation of the robot 1.
- the robot controller 13 may control the operation of the robot arm 12.
- the robot controller 13 may control the operation of the robot arm 12 so that a desired link 121 rotates around an axis defined by a desired joint 122.
- the robot controller 13 may control the operation of the robot arm 12 so that an end effector 4 attached to the robot arm 12 is positioned at a desired position.
- the robot controller 13 may control the operation of the robot arm 12 so that an end effector 4 attached to the robot arm 12 moves to a desired position.
- the robot control device 13 may also control the operation of the end effector 4 attached to the robot 1 (processing by the end effector 4). For example, the robot control device 13 may control the operation of the end effector 4 so that the end effector 4 holds the target object OBJ at a desired timing. In other words, the robot control device 13 may control the operation of the end effector 4 so that the end effector 4 performs holding processing at a desired timing. For example, the robot control device 13 may control the operation of the end effector 4 so that the end effector 4 releases the target object OBJ held by the end effector 4 at a desired timing.
- the robot control device 13 may control the operation of the end effector 4 so that the end effector 4 performs release processing at a desired timing.
- the robot control device 13 may control the timing of opening and closing the hand gripper.
- the robot control device 13 may control the timing (or the vacuum suction force) of turning on and off the vacuum device of the vacuum gripper.
- the robot control device 13 may control the timing (or the magnetic force) of turning on and off the magnetic suction device of the magnetic gripper.
- FIG. 2 shows an example in which the robot 1 is a robot arm 12 (i.e., a vertical articulated robot).
- the robot 1 may be a robot different from the vertical articulated robot.
- the robot 1 may be a SCARA robot (i.e., a horizontal articulated robot).
- the robot 1 may be a parallel link robot.
- the robot 1 may be a dual-arm robot having two robot arms 12.
- the robot 1 may be a Cartesian coordinate robot.
- the robot 1 may be a cylindrical coordinate robot.
- the robot 1 may be referred to as a movable device.
- the movable device may include at least one of an automatic guided vehicle, an autonomous transport robot, and an unmanned aerial vehicle in addition to the robot 1.
- the robot 1 may be installed in at least one of an automatic guided vehicle, an autonomous transport robot, and an unmanned aerial vehicle.
- the robot control device 13 may control the operation of the movable device on which the robot 1 is installed in addition to controlling the operation of the robot 1.
- the imaging system 2 captures an image of a target object OBJ.
- the imaging system 2 includes an imaging device 21 and an illumination device 23.
- the imaging device 21 is a camera capable of capturing an image of the target object OBJ.
- the imaging device 21 may capture an image of the target object OBJ under the control of the control device 3.
- the imaging device 21 generates image data IMG by capturing an image of the target object OBJ.
- the imaging device 21 generates image data IMG that is the result of capturing an image of the target object OBJ.
- the image data IMG generated by the imaging device 21 is output from the imaging device 21 to the control device 3.
- the control device 3 acquires the image data IMG acquired by capturing an image of the target object OBJ by the imaging device 21.
- the imaging system 2 may include an imaging device 21 including a monocular camera. In this case, the imaging device 21 may generate image data IMG including one image data generated by the monocular camera. Alternatively, the imaging system 2 may include an imaging device 21 including a stereo camera including two monocular cameras. In this case, the imaging device 21 may generate image data IMG including two image data generated by each of the two monocular cameras. Alternatively, the imaging system 2 may include an imaging device 21 including a first monocular camera and a stereo camera including two second monocular cameras different from the first monocular camera. In this case, the imaging device 21 may generate image data IMG including one image data generated by the first monocular camera and image data IMG including two image data generated by each of the two second monocular cameras.
- the imaging system 2 may include an imaging device 21 that includes a camera other than a monocular camera and a stereo camera.
- the imaging system 2 may include an imaging device 21 that includes three or more monocular cameras.
- the imaging system 2 may include an imaging device 21 that includes at least one of a light field camera, a plenoptic camera, and a multispectral camera.
- the imaging device 21 may capture an image of the entire target object OBJ. Alternatively, the imaging device 21 may capture an image of a portion of the target object OBJ. In other words, the imaging device 21 may capture an image of a portion of the target object OBJ while not capturing an image of another portion of the target object OBJ.
- the imaging device 21 may capture an image of a single target object OBJ. That is, a single target object OBJ may appear in the image represented by the image data IMG.
- the imaging device 21 may capture an image of multiple target objects OBJ. That is, a multiple target objects OBJ may appear in the image represented by the image data IMG.
- the control device 3 may determine (in other words, select) one of the multiple target objects OBJ captured by the imaging device 21 as the target object OBJ for which the end effector 4 will actually perform a predetermined process.
- the target object OBJ for which the end effector 4 will actually perform a predetermined process may be referred to as a processing execution object.
- the robot 1 may perform bulk picking to pick up workpieces W one by one from the multiple workpieces W that are randomly arranged.
- the multiple workpieces W that are randomly arranged may be rephrased as multiple workpieces W that are irregularly arranged, multiple workpieces W that are casually arranged, or multiple workpieces W that are randomly arranged.
- the multiple target objects OBJ captured by the imaging device 21 may be arranged in a regular pattern.
- the target object OBJ is a workpiece W corresponding to a part used to manufacture a desired product
- the multiple workpieces W i.e., multiple parts
- the end effector 4 may perform the above-mentioned holding process of holding at least one of the multiple workpieces W that are regularly arranged.
- the robot 1 may pick up the workpieces W one by one from the multiple workpieces W that are regularly arranged.
- the multiple workpieces W that are regularly arranged may be rephrased as multiple workpieces W that are orderly arranged, or multiple workpieces W that are arranged according to a certain arrangement rule.
- the multiple target objects OBJ may be arranged (e.g., fitted) in an object other than the target object OBJ.
- the placement process for placing the target object OBJ held by the end effector 4 may include a placement process for placing the target object OBJ randomly (in other words, haphazardly), as with the holding process, or a placement process for placing the target object OBJ regularly (in other words, orderly).
- the robot 1 may use the end effector 4 to hold one of multiple workpieces W that are regularly or randomly placed in the first container CB, and then place the one workpiece W held by the end effector 4 regularly or randomly in the second container CB.
- the lighting device 23 is a device capable of irradiating illumination light onto the target object OBJ (for example, at least one target object OBJ when multiple target objects OBJ exist).
- the lighting device 23 may irradiate the target object OBJ with illumination light under the control of the control device 3.
- the lighting device 23 is a device capable of irradiating the target object OBJ with illumination light, thereby illuminating the target object OBJ with illumination light.
- the imaging device 21 may image the target object OBJ illuminated with illumination light.
- the lighting device 23 does not have to irradiate the target object OBJ with illumination light.
- the imaging system 2 (robot system SYS) does not have to be equipped with the lighting device 23.
- the illumination device 23 may be a device capable of projecting a desired projection pattern onto the target object OBJ by irradiating the target object OBJ with illumination light.
- the desired projection pattern may include, for example, a random pattern.
- 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, for example, a line pattern.
- the desired projection pattern may include, for example, a stripe pattern.
- the desired projection pattern may include other projection patterns.
- the illumination device 23 may project a desired projection pattern onto the target object OBJ by irradiating the target object OBJ with illumination light.
- the illumination device 23 may irradiate the target object OBJ with illumination light having a uniform intensity distribution (for example, a uniform intensity distribution).
- the desired projection pattern can also be said to be light having a desired intensity distribution.
- the imaging system 2 is attached to the robot arm 12, similar to the end effector 4. That is, the imaging device 21 and the lighting device 23 are attached to the robot arm 12.
- the imaging device 21 and the lighting device 23 may be attached to the tip of the robot arm 12, similar to the end effector 4.
- the imaging device 21 and the lighting device 23 can be moved by the movement of the robot arm 12. That is, the robot arm 12 moves the imaging device 21 and the lighting device 23.
- the imaging system 2 does not have to be attached to the robot arm 12.
- the imaging system 2 may be disposed at any position where it can capture an image of the target object OBJ.
- the imaging system 2 may be disposed at any position where it can irradiate the target object OBJ with illumination light.
- the imaging system 2 may be attached to a structure such as a pillar.
- either the imaging device 21 or the illumination device 23 may be attached to the robot arm 12, and the other either the imaging device 21 or the illumination device 23 may be attached to a location different from the robot arm 12 (for example, a structure such as a pillar).
- the imaging device 21 may capture an image of the target object OBJ (e.g., at least one target object OBJ when multiple target objects OBJ are present) during a period in which the imaging device 21 and the target object OBJ are displaced relative to each other.
- the state in which the imaging device 21 and the target object OBJ are displaced relative to each other may mean a state in which the relative positional relationship between the imaging device 21 and the target object OBJ is changing.
- the state in which the imaging device 21 and the target object OBJ are displaced relative to each other may mean a state in which the imaging device 21 and the target object OBJ are moving relative to each other.
- the state in which the imaging device 21 and the target object OBJ are displaced relative to each other may include a state in which the target object OBJ is moving relative to the imaging device 21.
- the state in which the imaging device 21 and the target object OBJ are displaced relative to each other may include a state in which the imaging device 21 is moving relative to the target object OBJ.
- the imaging device 21 does not need to be stationary to capture an image of the target object OBJ, so the robot system SYS can efficiently perform a predetermined process on the target object OBJ using the end effector 4.
- the imaging device 21 may capture the target object OBJ during a period in which there is no relative displacement between the imaging device 21 and the target object OBJ.
- the state in which there is no relative displacement between the imaging device 21 and the target object OBJ may mean a state in which the relative positional relationship between the imaging device 21 and the target object OBJ has not changed.
- the state in which there is no relative displacement between the imaging device 21 and the target object OBJ may mean a state in which there is no relative movement between the imaging device 21 and the target object OBJ.
- the state in which there is no relative displacement between the imaging device 21 and the target object OBJ may mean a state in which the imaging device 21 and the target object OBJ are stationary.
- the state in which there is no relative displacement between the imaging device 21 and the target object OBJ may mean a state in which the imaging device 21 and the target object OBJ are moving in the same direction at the same moving speed.
- the control device 3 performs robot control processing.
- the robot control processing includes processing for generating a robot control signal for controlling the robot 1.
- the control device 3 generates a robot control signal based on image data IMG output from the imaging system 2.
- the control device 3 calculates at least one of the position and orientation of the target object OBJ in the global coordinate system of the robot system SYS based on the image data IMG, and generates a robot control signal based on at least one of the calculated position and orientation of the target object OBJ.
- the global coordinate system is a coordinate system that is the reference for the robot system SYS.
- the global coordinate system may be a coordinate system that is the reference for the robot 1.
- the global coordinate system can also be said to be a coordinate system used to control the robot 1.
- the world coordinate system that is determined based on the support surface S on which the robot 1 is placed may be used as the global coordinate system.
- the world coordinate system that is fixed with respect to the support surface S on which the robot 1 is placed may be used as the global coordinate system.
- the X-axis, Y-axis, and Z-axis may respectively mean the X-axis, Y-axis, and Z-axis in the global coordinate system.
- the control device 3 may calculate at least one of the position and orientation of the target object OBJ in a coordinate system different from the global coordinate system based on the image data IMG.
- the coordinate system different from the global coordinate system may include at least one of the robot coordinate system and the imaging coordinate system.
- the robot coordinate system may be a coordinate system determined based on the robot 1. That is, the robot coordinate system may be a coordinate system fixed with respect to the robot 1 (for example, fixed with respect to the base 11 of the robot 1).
- the imaging coordinate system may be a coordinate system determined based on the imaging device 21. That is, the imaging coordinate system may be a coordinate system fixed with respect to the imaging device 21.
- an imaging coordinate system is a coordinate system determined based on the optical axis AX21 (see Figure 2) of the optical system (particularly the final optical element such as an objective lens) provided in the imaging device 21.
- One example of an imaging coordinate system is one in which one of the three coordinate axes constituting the imaging coordinate system is an axis along the optical axis AX21 (see FIG. 2) of the optical system (particularly the final optical element such as the objective lens) of the imaging device 21.
- the control device 3 may perform end effector control processing in addition to performing robot control processing.
- the end effector control processing may include processing for generating an end effector control signal for controlling the end effector 4.
- the control device 3 may generate the end effector control signal based on at least one of the calculated position and orientation of the target object OBJ.
- the end effector control process may or may not be included in the robot control process.
- the end effector control signal generated by the control device 3 may or may not be included in the robot control signal.
- the robot control process may mean a process 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 4.
- the robot control signal may simply be referred to as a control signal.
- the control device 3 may perform movable device control processing in addition to performing robot control processing.
- the movable device control processing may include processing for generating a movable device control signal for controlling the movable device.
- the control device 3 may generate the movable device control signal based on at least one of the calculated position and orientation of the target object OBJ.
- the movable device control process may or may not be included in the robot control process.
- the movable device control signal generated by the control device 3 may or may not be included in the robot control signal.
- the robot control process may mean a process for generating at least one of the robot control signal, the end effector control signal, and the movable device control signal.
- the robot control signal may mean at least one of the signal for controlling the robot 1, the signal for controlling the end effector 4, and the signal for controlling the movable device.
- control device 3 and the imaging system 2 are used to control the robot 1.
- a system including the control device 3 and the imaging system 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 13 of the robot 1.
- the robot control device 13 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 device 13 may control the robot arm 12 based on the robot control signal. For example, the robot control device 13 may control the operation of the robot arm 12 by controlling the operation of an actuator built into the joint 122 based on the robot control signal.
- the robot arm 12 moves the end effector 4.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 is located at a desired position.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 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 4 and the target object OBJ is a desired positional relationship.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the end effector 4 is located at a desired position.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the end effector 4 moves to a desired position.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the positional relationship between the end effector 4 and the target object OBJ is a desired positional relationship.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 moves toward (i.e., approaches) a holding target position where the end effector 4 can hold the target object OBJ.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 is located at the holding target position.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the end effector 4 moves toward (i.e., approaches) the holding target position.
- the robot control signal may control the robot arm 12 so that the end effector 4 is located at the holding target position.
- the robot control signal may include a signal for controlling the robot arm 12 so that the posture of the end effector 4 becomes a holding target posture that enables the end effector 4 to hold the target object OBJ.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the posture of the end effector 4 becomes the holding target posture.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 moves toward (i.e., approaches) a release target position where the target object OBJ held by the end effector 4 should be released.
- the robot control signal may include a signal for controlling the robot arm 12 so that the end effector 4 is located at the release target position.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the end effector 4 moves toward (i.e., approaches) the release target position.
- the robot control signal may control the robot arm 12 so that the end effector 4 is located at the release target position.
- the robot control signal may include a signal for controlling the robot arm 12 so that the posture of the end effector 4 becomes a release target posture that enables the end effector 4 to release the target object OBJ.
- the robot control device 13 may control the robot arm 12 based on the robot control signal so that the posture of the end effector 4 becomes the release target posture.
- the robot control device 13 may control the end effector 4 based on the robot control signal.
- the robot control device 13 may control the operation of the end effector 4 by controlling the operation of an actuator that moves a hand gripper that constitutes the end effector 4 based on the robot control signal.
- the robot control device 13 may control the operation of the end effector 4 by controlling the operation of a vacuum device of a vacuum gripper that constitutes the end effector 4 based on the robot control signal.
- the robot control device 13 may control the operation of the end effector 4 by controlling the operation of a magnetic attraction device of a magnetic gripper that constitutes the end effector 4 based on the robot control signal.
- the robot control signal may include a signal for controlling the end effector 4 so that the end effector 4 located at the holding target position and/or in the holding target posture described above holds the target object OBJ.
- the robot control device 13 may control the end effector 4 based on the robot control signal so that the end effector 4 located at the holding target position and/or in the holding target posture holds the target object OBJ.
- the robot control device 13 may control the movable device based on the robot control signal.
- the robot control device 13 may control the power source (e.g., a motor or an engine) of the movable device based on the robot control signal so that the robot 1 moves to a target position indicated directly or indirectly by the robot control signal.
- the robot control signal may include a signal for controlling the end effector 4 to release the target object OBJ held by the end effector 4 located at the above-mentioned release target position and/or in the above-mentioned release target posture.
- the robot control device 13 may control the end effector 4 based on the robot control signal to release the target object OBJ held by the end effector 4 located at the release target position and/or in the release target posture.
- the robot control signal may include a signal that can be used as is by the robot control device 13 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 13 to control the operation of the robot 1.
- the robot control device 13 may use the robot control signal as is to control the operation of the robot 1.
- the control device 3 may generate a drive signal for an actuator built into the joint 122 of the robot arm 12 as a robot control signal, and the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the actuator built into the joint 122 of the robot arm 12.
- the robot control signal may include a signal that can be used as is by the robot control device 13 to control the operation of the end effector 4.
- the robot control signal may include a signal that can be used as is by the robot control device 13 as an end effector drive signal used to control the operation of the end effector 4.
- the robot control device 13 may use the robot control signal as is to control the operation of the end effector 4.
- the control device 3 may generate a drive signal (end effector drive signal) for an actuator that moves a hand gripper that constitutes the end effector 4 as a robot control signal, and the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the actuator of the end effector 4.
- control device 3 may generate a drive signal (end effector drive signal) for driving a vacuum device of a vacuum gripper that constitutes the end effector 4 as a robot control signal, and the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the vacuum device of the end effector 4.
- control device 3 may generate a drive signal (end effector drive signal) for driving the magnetic adsorption device of the magnet gripper that constitutes the end effector 4 as a robot control signal
- the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the magnetic adsorption device of the end effector 4.
- the robot control signal may include a signal that can be used as is by the robot control device 13 to control the operation of the movable device on which the robot 1 is installed (e.g., at least one of an automatic guided vehicle, an autonomous transport robot, and an unmanned aerial vehicle).
- the robot control signal may include a signal that can be used as is as a movable device drive signal used by the robot control device 13 to control the operation of the movable device.
- the robot control device 13 may use the robot control signal as is to control the operation of the movable device.
- control device 3 may generate a power source drive signal (movable device drive signal) for driving the power source of the movable device (e.g., a motor or engine) as the robot control signal, and the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the power source of the movable device 1.
- a power source drive signal movable device drive signal
- the robot control device 13 may use the robot control signal generated by the control device 3 as is to control the power source of the movable device 1.
- the robot control signal includes a signal that the robot control device 13 can use to control at least one of the operations of the robot 1, the end effector 4, and the movable device
- the robot 1 does not need to be equipped with the robot control device 13.
- the control device 3 may control an actuator built into the joint 122 of the robot arm 12 using the robot control signal.
- the control device 3 may control an actuator that moves a hand gripper that constitutes the end effector 4 using the robot control signal (end effector drive signal).
- the control device 3 may control a vacuum device of a vacuum gripper that constitutes the end effector 4 using the robot control signal (end effector drive signal).
- control device 3 may control a magnetic adsorption device of a magnetic gripper that constitutes the end effector 4 using the robot control signal (end effector drive signal).
- control device 3 may control a movable device on which the robot 1 is installed using the robot control signal (movable device drive signal).
- the robot control signal may include a signal that can be used by the robot control device 13 to generate a robot drive signal for controlling the operation of the robot 1.
- the robot control device 13 may generate a robot drive signal for controlling the operation of the robot 1 based on the robot control signal, and control the operation of the robot 1 based on the generated robot drive signal.
- the robot control device 13 may generate a robot drive signal for driving an actuator built into the joint 122 of the robot arm 12 based on the robot control signal, and control the actuator built into the joint 122 of the robot arm 12 based on the generated robot drive signal.
- the robot control signal may include a signal that the robot control device 13 can use to generate an end effector drive signal for controlling the operation of the end effector 4.
- the robot control device 13 may generate an end effector drive signal for controlling the operation of the end effector 4 based on the robot control signal, and control the operation of the end effector 4 based on the generated end effector drive signal.
- the robot control device 13 may generate an end effector drive signal for driving an actuator of the hand gripper based on the robot control signal, and control the actuator of the hand gripper based on the generated end effector drive signal.
- the robot control device 13 may generate an end effector drive signal for driving a magnetic adsorption device of the magnetic gripper based on the robot control signal, and control the magnetic adsorption device based on the generated end effector drive signal.
- the robot control signal may include a signal that the robot controller 13 can use to generate a movable device drive signal for controlling the operation of the movable device on which the robot 1 is installed.
- the robot controller 13 may generate a movable device drive signal for controlling the operation of the movable device based on the robot control signal, and control the operation of the movable device based on the generated movable device drive signal.
- the robot controller 13 may generate a power source drive signal (movable device drive signal) for driving a power source (e.g., a motor or engine) of the movable device based on the robot control signal, and control the power source of the movable device based on the generated movable device drive signal.
- a power source drive signal movable device drive signal
- Signals available to the robot controller 13 for generating the robot drive signal may include signals representing at least one of the position and orientation of the target object OBJ in the global coordinate system.
- Signals available to the robot controller 13 for generating the robot drive signal may include signals representing a desired positional relationship between the robot 1 and the target object OBJ in the global coordinate system.
- the signals available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired position of the end effector 4 in the global coordinate system.
- An example of a desired position is a processing position where the end effector 4 should process the target object OBJ.
- the desired position may include a holding target position where the end effector 4 should hold the target object OBJ.
- the desired position may include a release target position where the end effector 4 should release the target object OBJ.
- the signals available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired position of the tip of the robot arm 12 (e.g., a tool center point) in the global coordinate system.
- the signals available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired position of the imaging system 2 in the global coordinate system.
- the signal available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired posture of the end effector 4 in the global coordinate system.
- a desired posture is a posture (processing posture) that the end effector 4 should take when it processes the target object OBJ.
- the desired posture may include a posture (holding target posture) that the end effector 4 should take when it holds the target object OBJ.
- the desired posture may include a posture (release target posture) that the end effector 4 should take when it releases the target object OBJ.
- the signal available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired posture of the tip of the robot arm 12 (e.g., tool center point) in the global coordinate system.
- the signal available to the robot controller 13 for generating the robot drive signal may include a signal representing a desired posture of the imaging system 2 in the global coordinate system.
- the signal that the robot control device 13 can use to generate the robot drive signal may be a signal that represents the amount and direction of movement from the current position of the end effector 4 to the desired position of the end effector 4.
- Fig. 3 is a block diagram showing the configuration of the control device 3.
- the control device 3 includes a calculation device 31, a storage device 32, and a communication device 33.
- the control device 3 may further include an input device 34 and an output device 35.
- the control device 3 does not have to include at least one of the input device 34 and the output device 35.
- the calculation 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 device 31 is hardware that includes at least a circuit (e.g., at least one of an electronic circuit and an electric circuit). For this reason, the arithmetic device 31 may be referred to as a circuit group (Circuitry).
- the arithmetic device 31 includes at least one processor (i.e., one processor or multiple processors) as hardware.
- the processor may include, for example, a processor conforming to a von Neumann type computer architecture.
- the processor conforming to the von Neumann type computer architecture may include at least one of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit).
- the processor may include, for example, a processor conforming to a non-von Neumann type computer architecture.
- the processor conforming to the non-von Neumann type computer architecture may include at least one of an FPGA (Field Programmable Gate Array) and an ASIC (Application Specific Circuit).
- the processor may be realized by a group of circuits (for example, at least one of an electronic circuit and an electric circuit).
- the arithmetic device 31 reads the computer program 321 including at least one of computer program code and computer program instructions.
- the arithmetic device 31 may read the computer program 321 stored in the storage device 32.
- the arithmetic device 31 may read the computer program 321 stored in a computer-readable and non-transient storage medium using a storage medium reading device (not shown) provided in the control device 3.
- the computer program 321 read from the storage medium may be stored in the storage device 32.
- the arithmetic device 31 may acquire (i.e., download or read) the computer program 321 from a device (not shown) located outside the control device 3 via the communication device 33 (or another communication device).
- the downloaded computer program 321 may be stored in the storage device 32.
- the arithmetic device 31 executes the loaded computer program 321.
- a logical functional block for executing the processing to be performed by the control device 3 (for example, the robot control processing described above) is realized within the arithmetic device 31.
- the arithmetic device 31, together with the storage device 32 etc. in which the computer program 321 is recorded (in other words, together with the storage device 32 and the computer program 321 recorded in the storage device 32 etc.), can function as a controller or computer for realizing a logical functional block for executing the processing to be performed by the control device 3.
- the memory (recording medium) and computer program 321 provided in the storage device 32 etc., together with at least one processor provided in the arithmetic device 31, are configured so that the control device 3 performs the processing to be performed by the control device 3 (for example, the robot control processing described above).
- a computation model that can be constructed by machine learning may be implemented in the computation device 31 by the computation device executing the computer program 321.
- An example of a computation model that can be constructed by machine learning is, for example, a computation model including a neural network (so-called artificial intelligence (AI)).
- learning of the computation model may include learning of parameters of the neural network (for example, at least one of the weight and bias).
- the computation device 31 may execute a robot control process using the computation model.
- the operation of executing the robot control process may include the operation of executing the robot control process using the computation model.
- a computation model that has already been constructed by offline machine learning using teacher data may be implemented in the computation device 31.
- the computation model implemented in the computation device 31 may be updated by online machine learning on the computation device 31.
- the computing device 31 may execute the robot control process using a computation model implemented in a device external to the computing device 31 (i.e., a device provided outside the control device 3) in addition to or instead of the computation model implemented in the computing device 31.
- the recording medium for recording the computer program 321 executed by the arithmetic device 31 may be at least one of the following: CD-ROM, CD-R, CD-RW, flexible disk, MO, DVD-ROM, DVD-RAM, DVD-R, DVD+R, DVD-RW, DVD+RW, optical disks such as Blu-ray (registered trademark), magnetic media such as magnetic tape, magneto-optical disk, semiconductor memory such as USB memory, and any other medium capable of storing a program.
- the recording medium may include a device capable of recording the computer program 321 (for example, a general-purpose device or a dedicated device in which the computer program 321 is implemented in a state in which it can be executed in at least one of the forms of software and firmware, etc.).
- each process or function included in the computer program 321 may be realized by a logical processing block realized in the computing device 31 by the computing device 31 (i.e., the processor) executing the computer program 321, or may be realized by hardware such as a predetermined gate array (FPGA (Field Programmable Gate Array), ASIC (Application Specific Integrated Circuit)) included in the computing device 31, or may be realized in a form that combines logical processing blocks and partial hardware modules that realize some elements of the hardware.
- FPGA Field Programmable Gate Array
- ASIC Application Specific Integrated Circuit
- FIG. 3 shows an example of logical functional blocks realized within the computing device 31 to execute robot control processing.
- a position and orientation calculation unit 311, a signal generation unit 312, and an erroneous holding detection unit 313 are realized within the computing device 31. Note that the processing performed by each of the position and orientation calculation unit 311, the signal generation unit 312, and the erroneous holding detection unit 313 will be described in detail later with reference to FIG. 5 etc., and therefore will not be described here.
- the storage device 32 includes at least one memory capable of storing desired data.
- the storage device 32 includes at least one memory containing desired data.
- the memory may be realized by a group of circuits (e.g., at least one of electronic circuits and electric circuits).
- the storage device 32 may store a computer program 321 executed by the arithmetic device 31.
- the storage device 32 (memory) may be used as the above-mentioned recording medium for recording the computer program 321 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 the computer program 321.
- 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, an optical magnetic disk device, an SSD (Solid State Drive), and a disk array device.
- the storage device 32 may include non-transitory recording media.
- the communication device 33 is capable of communicating with both the robot 1 and the imaging system 2 via a communication network (not shown). Alternatively, the communication device 33 may be capable of communicating with other devices different from the robot 1 and the imaging system 2 in addition to or instead of at least one of the robot 1 and the imaging system 2 via a communication network (not shown). In this embodiment, the communication device 33 may receive (i.e., acquire) image data IMG from the imaging system 2. Furthermore, the communication device 33 may transmit (i.e., output) a robot control signal to the robot 1. The communication device 33 that outputs the robot control signal to the robot 1 may be referred to as an output unit.
- the input device 34 is a device that accepts information input to the control device 3 from outside the control device 3.
- the input device 34 may include an operation device (e.g., 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 that can read information recorded as data on a recording medium that can be attached externally 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 accepts 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 information as an image. That is, the output device 35 may include a display device (a so-called display) capable of displaying images.
- the output device 35 may output information as sound. That is, the output device 35 may include an audio device (a so-called speaker) capable of outputting sound.
- the output device 35 may output information on paper. That is, the output device 35 may include a printing device (a so-called printer) capable of printing desired information on paper.
- the output device 35 may output information as data to a recording medium that can be attached externally 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 a device external to the control device 3.
- the robot control device 13 provided in the robot 1 described above may also have the same configuration as the control device 3. That is, as shown in FIG. 4, which is a block diagram showing the configuration of the robot control device 13, the robot control device 13 includes a calculation device 131, a storage device 132, and a communication device 133. The robot control device 13 may further include an input device 134 and an output device 135. However, the robot control device 13 does not have to include at least one of the input device 134 and the output device 135.
- the calculation device 131, the storage device 132, the communication device 133, the input device 134, and the output device 135 may be connected via a data bus 136.
- the arithmetic device 131 includes at least one processor (i.e., one processor or multiple processors) as hardware.
- the processor may include, for example, a processor conforming to a von Neumann type computer architecture.
- the processor conforming to a von Neumann type computer architecture may include at least one of a CPU (Central Processing Unit) and a GPU (Graphics Processing Unit).
- the processor may include, for example, a processor conforming to a non-von Neumann type computer architecture.
- the processor conforming to a non-von Neumann type computer architecture may include at least one of an FPGA (Field Programmable Gate Array) and an ASIC (Application Specific Circuit).
- the arithmetic device 131 reads the computer program 1321 including at least one of computer program code and computer program instructions.
- the arithmetic device 131 may read the computer program 1321 stored in the storage device 132.
- the arithmetic device 131 may read the computer program 1321 stored in a computer-readable and non-transient storage medium using a storage medium reading device (not shown) provided in the robot control device 13.
- the computer program 1321 read from the storage medium may be stored in the storage device 132.
- the arithmetic device 131 may acquire (i.e., download or read) the computer program 1321 from a device (not shown) arranged outside the robot control device 13 via the communication device 133 (or another communication device).
- the downloaded computer program 1321 may be stored in the storage device 132.
- the arithmetic device 131 executes the loaded computer program 1321.
- a logical functional block for executing the processing to be performed by the robot control device 13 (e.g., processing to control at least one of the robot 1 and the end effector 4) is realized within the arithmetic device 131.
- the arithmetic device 131, together with the storage device 132 etc. in which the computer program 1321 is recorded (in other words, together with the storage device 132 and the computer program 1321 recorded in the storage device 132 etc.), can function as a controller or computer for realizing a logical functional block for executing the processing to be performed by the robot control device 13.
- the memory (recording medium) and computer program 1321 included in the storage device 132 etc., together with at least one processor included in the arithmetic device 131, are configured so that the robot control device 13 performs the processing to be performed by the robot control device 13.
- a computation model that can be constructed by machine learning may be implemented in the computation device 131 by the computation device executing the computer program 1321.
- An example of a computation model that can be constructed by machine learning is, for example, a computation model including a neural network (so-called artificial intelligence (AI)).
- learning of the computation model may include learning of parameters of the neural network (for example, at least one of weights and biases).
- the computation device 131 may use the computation model to control at least one of the robot 1 and the end effector 4.
- the operation of controlling at least one of the robot 1 and the end effector 4 may include the operation of controlling at least one of the robot 1 and the end effector 4 using the computation model.
- a computation model that has been constructed by offline machine learning using teacher data may be implemented in the computation device 131.
- the computation model implemented in the computation device 131 may be updated on the computation device 131 by online machine learning.
- the computing device 131 may execute the robot control process using a computation model implemented in a device external to the computing device 131 (i.e., a device provided outside the robot control device 13) in addition to or instead of the computation model implemented in the computing device 131.
- the recording medium for recording the computer program 1321 executed by the arithmetic device 131 may be at least one of the following: CD-ROM, CD-R, CD-RW, flexible disk, MO, DVD-ROM, DVD-RAM, DVD-R, DVD+R, DVD-RW, DVD+RW, optical disks such as Blu-ray (registered trademark), magnetic media such as magnetic tape, magneto-optical disk, semiconductor memory such as USB memory, and any other medium capable of storing a program.
- the recording medium may include a device capable of recording the computer program 1321 (for example, a general-purpose device or a dedicated device in which the computer program 1321 is implemented in a state in which it can be executed in at least one of the forms of software and firmware, etc.).
- each process or function included in the computer program 1321 may be realized by a logical processing block realized in the arithmetic device 131 by the arithmetic device 131 (i.e., the processor) executing the computer program 1321, or 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 device 131, or may be realized in a form that combines logical processing blocks and partial hardware modules that realize some elements of the hardware.
- FPGA Field Programmable Gate Array
- ASIC Application Specific Integrated Circuit
- the storage device 132 includes at least one memory capable of storing desired data.
- the storage device 132 includes at least one memory containing desired data.
- the storage device 132 may store the computer program 1321 executed by the arithmetic device 131.
- the storage device 132 (memory) may be used as the above-mentioned recording medium for recording the computer program 1321 executed by the arithmetic device 131.
- the storage device 132 may temporarily store data that is temporarily used by the arithmetic device 131 when the arithmetic device 131 is executing the computer program 1321.
- the storage device 132 may store data that the robot control device 13 stores for a long period of time.
- the storage device 132 may include at least one of a RAM (Random Access Memory), a ROM (Read Only Memory), a hard disk device, an optical magnetic disk device, an SSD (Solid State Drive), and a disk array device. In other words, the storage device 132 may include non-transitory recording media.
- the communication device 133 is capable of communicating with at least one of the imaging system 2 and the control device 3 via a communication network (not shown).
- the communication device 133 may be capable of communicating with other devices different from the imaging system 2 and the control device 3 in addition to or instead of at least one of the imaging system 2 and the control device 3 via a communication network (not shown).
- the communication device 133 may receive (i.e., acquire) a robot control signal from the control device 3.
- the input device 134 is a device that accepts information input to the robot control device 13 from outside the robot control device 13.
- the input device 134 may include an operation device (e.g., at least one of a keyboard, a mouse, and a touch panel) that can be operated by a user of the robot control device 13.
- the input device 134 may include a recording medium reading device that can read information recorded as data on a recording medium that can be attached externally to the robot control device 13.
- information can be input as data to the robot control device 13 from a device external to the robot control device 13 via the communication device 133.
- the communication device 133 may function as an input device that accepts information input to the robot control device 13 from outside the robot control device 13.
- the output device 135 is a device that outputs information to the outside of the robot control device 13.
- the output device 135 may output information as an image. That is, the output device 135 may include a display device (a so-called display) capable of displaying images.
- the output device 135 may output information as sound. That is, the output device 135 may include an audio device (a so-called speaker) capable of outputting sound.
- the output device 135 may output information on paper. That is, the output device 135 may include a printing device (a so-called printer) capable of printing desired information on paper.
- the output device 135 may output information as data to a recording medium that can be attached externally to the robot control device 13.
- information can be output as data from the robot control device 13 to a device external to the robot control device 13 via the communication device 133.
- the communication device 133 may function as an output device that outputs information to a device external to the robot control device 13.
- Fig. 5 is a flowchart showing the flow of the robot control processing.
- the position and orientation calculation unit 311 included in the control device 3 acquires image data IMG from the imaging device 21 using the communication device 33 (step S11). Specifically, the imaging device 21 captures an image of the target object OBJ at a predetermined imaging rate. For example, the imaging device 21 may capture an image of the target object OBJ at an imaging rate of capturing an image of the target object OBJ several tens to several hundreds (for example, 500 times) per second.
- the imaging device 21 when the target object OBJ is contained in a container CB, capturing an image of the target object OBJ may be considered equivalent to capturing an image of the inside of the container CB (i.e., the above-mentioned storage space SP).
- the image data IMG which is the imaging result of the target object OBJ, may be considered equivalent to the image data IMG, which is the imaging result of the inside of the container CB (i.e., the above-mentioned storage space SP).
- the imaging device 21 generates image data IMG at a period corresponding to the predetermined imaging rate.
- the imaging device 21 may generate tens to hundreds (for example, 500) of image data IMG per second.
- the position and orientation calculation unit 311 acquires image data IMG every time the imaging device 21 generates image data IMG. In other words, the position and orientation calculation unit 311 may acquire tens to hundreds (for example, 500) of image data IMG per second.
- the imaging device 21 does not have to periodically capture images of the target object OBJ at a desired imaging rate.
- the imaging device 21 may capture an image of the target object OBJ when it receives a control signal from the control device 3 for controlling the imaging device 21 to capture an image of the target object OBJ.
- the imaging device 21 may capture an image of another object different from the target object OBJ, in addition to the target object OBJ on which the robot 1 performs a predetermined process. Since the other object is not a target for the robot 1 to perform a predetermined process, the other object different from the target object OBJ is referred to as a non-target object in the following description.
- An example of a non-target object is at least a part of the end effector 4.
- An example of a non-target object is at least a part of the robot arm 12.
- An example of a non-target object is at least a part of a peripheral object that is an object located in the periphery of the robot 1.
- a peripheral object is a mounting device T (in other words, a mounting member, for example, a container CB).
- the imaging device 21 may capture an image of both the target object OBJ and the non-target object.
- the imaging device 21 may generate image data IMG showing an image in which both the target object OBJ and the non-target object are captured.
- the imaging device 21 may image the target object OBJ but not image the non-target object.
- the imaging device 21 may generate image data IMG showing an image in which the target object OBJ is captured but the non-target object is not captured. In either case, the imaging device 21 generates image data IMG showing an image in which at least the target object OBJ is captured.
- the imaging device 21 generates image data IMG that includes image data of at least the target object OBJ.
- the imaging device 21 may image at least some of the multiple target objects OBJ contained in the container CB.
- the imaging device 21 may image a group of target objects including at least some of the multiple target objects OBJ contained in the container CB.
- the group of target objects imaged by the imaging device 21 may include multiple target objects OBJ included in the imaging field of view of the imaging device 21 out of the multiple target objects OBJ contained in the container CB (or, in some cases, one target object OBJ included in the imaging field of view of the imaging device 21).
- the imaging device 21 may capture images of multiple target objects OBJ for which the end effector 4 performs a predetermined process in sequence.
- the end effector 4 may perform a predetermined process on a first target object OBJ among the multiple target objects OBJ in a first period, and perform a predetermined process on a second target object OBJ different from the first target object OBJ among the multiple target objects OBJ in a second period following the first period.
- a target object OBJ other than the first target object OBJ for which the end effector 4 performs a predetermined process may be considered to be a target object OBJ (or a non-target object) that is not a process execution object for which the robot 1 performs a predetermined process in the first period.
- target objects OBJ other than the second target object OBJ for which the end effector 4 performs a predetermined process may be considered to be target objects OBJ that are not processing execution objects for which the robot 1 performs a predetermined process during the second period (or non-target objects).
- the position and orientation calculation unit 311 calculates at least one of the position and orientation of the target object OBJ based on the image data IMG acquired in step S121 (step S12). As a result, the position and orientation calculation unit 311 generates position and orientation data POI that indicates at least one of the position and orientation of the target object OBJ (step S12).
- the position and orientation calculation unit 311 calculates at least one of the position and orientation of the target object OBJ in the global coordinate system in step S12.
- the position and orientation calculation unit 311 generates position and orientation data POI that indicates at least one of the position and orientation of the target object OBJ in the global coordinate system.
- the position and orientation calculation unit 311 may calculate, as the position of the target object OBJ in the global coordinate system, at least one of the position Tx of the target object OBJ in an X-axis direction parallel to the X-axis of the global coordinate system, the position Ty of the target object OBJ in a Y-axis direction parallel to the Y-axis of the global coordinate system, and the position Tz of the target object OBJ in a Z-axis direction parallel to the Z-axis of the global coordinate system.
- the position and orientation calculation unit 311 may calculate, as the orientation of the target object OBJ in the global coordinate system, at least one of the amount of rotation Rx of the target object OBJ about the X-axis of the global coordinate system, the amount of rotation Ry of the target object OBJ about the Y-axis of the global coordinate system, and the amount of rotation Rz of the target object OBJ about the Z-axis of the global coordinate system.
- the amount of rotation Rx of the target object OBJ around the X-axis, the amount of rotation Ry of the target object OBJ around the Y-axis, and the amount of rotation Rz of the target object OBJ around the Z-axis are equivalent to the parameters representing the orientation of the target object OBJ around the X-axis, the parameters representing the orientation of the target object OBJ around the Y-axis, and the parameters representing the orientation of the target object OBJ around the Z-axis, respectively.
- the amount of rotation Rx of the target object OBJ around the X-axis, the amount of rotation Ry of the target object OBJ around the Y-axis, and the amount of rotation Rz of the target object OBJ around the Z-axis will be referred to as the orientation Rx of the target object OBJ around the X-axis, the orientation Ry of the target object OBJ around the Y-axis, and the orientation Rz of the target object OBJ around the Z-axis, respectively.
- orientation Rx of the target object OBJ around the X-axis, the orientation Ry of the target object OBJ around the Y-axis, and the orientation Rz of the target object OBJ around the Z-axis may be considered to indicate the position of the target object OBJ in the rotation direction around the X-axis, the position of the target object OBJ in the rotation direction around the Y-axis, and the position of the target object OBJ in the rotation direction around the Z-axis, respectively.
- the orientation Rx of the target object OBJ around the X-axis, the orientation Ry of the target object OBJ around the Y-axis, and the orientation Rz of the target object OBJ around the Z-axis may all be considered to be parameters that indicate the position of the target object OBJ.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing a matching process using the image data IMG acquired in step S11. Specifically, the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing a matching process using the image data IMG and a template model that indicates the shape of at least a part of the target object OBJ.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing a 2D matching process, which is an example of a matching process.
- the position and orientation calculation unit 311 may use image data IMG generated by the imaging device 21 including a monocular camera (i.e., image data IMG including one image generated by the monocular camera, which may be referred to as 2D image data IMG_2D as necessary hereinafter) to perform the 2D matching process.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing a 2D matching process using the 2D image data IMG_2D (i.e., an image indicated by the 2D image data IMG_2D) and a template model indicating a two-dimensional shape of at least a part of the target object OBJ.
- the position and orientation calculation unit 311 may perform an object detection process to detect the target object OBJ indicated by the template model (in other words, an image portion corresponding to the template model) in the image indicated by the 2D image data IMG_2D as the 2D matching process.
- the 2D matching process (in this case, the object detection process) itself may be the same as an existing 2D matching process.
- the position and orientation calculation unit 311 may perform the 2D matching process using a well-known method such as SIFT (Scale-Invariant Feature Transform) or SURF (Speed-Upped Robust Feature).
- the position and orientation calculation unit 311 may translate, enlarge, reduce, and/or rotate the template model in an imaging coordinate system based on the imaging device 21 so that a characteristic portion of the two-dimensional template model (e.g., at least one of a feature point and an edge) approaches (e.g., coincides with) a characteristic portion of the target object OBJ captured in the image indicated by the 2D image data IMG_2D.
- a characteristic portion of the two-dimensional template model e.g., at least one of a feature point and an edge
- the position and orientation calculation unit 311 can identify the positional relationship between the coordinate system of the template model and the imaging coordinate system.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ in the imaging coordinate system from at least one of the position and orientation of the target object OBJ in the coordinate system of the template model based on the positional relationship between the coordinate system of the template model and the imaging coordinate system. Thereafter, the position and orientation calculation unit 311 may convert at least one of the position and orientation of the target object OBJ in the imaging coordinate system to at least one of the position and orientation of the target object OBJ in the global coordinate system based on a transformation matrix for converting the three-dimensional coordinates in the imaging coordinate system to three-dimensional coordinates in either of the other global coordinate systems.
- the template model is not limited to a model showing at least a part of the two-dimensional shape of the target object OBJ, but may be a model showing at least a part of the edges of the target object OBJ.
- the template model may be generated in advance from a CAD model of the target object, or may be generated from image data obtained by capturing an image of the reference target object OBJ with the imaging device 21 or another imaging device.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ based on the 2D image data IMG_2D using an existing method other than the 2D matching process. For example, the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ based on the 2D image data IMG_2D using an inference model generated by machine learning.
- the inference model may be generated by machine learning so as to output at least one of the position and orientation of the target object OBJ that appears in the image indicated by the image data IMG when the 2D image data IMG_2D is input.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing 3D matching processing, which is an example of matching processing, instead of 2D matching processing.
- the position and orientation calculation unit 311 may use image data IMG generated by the imaging device 21 including a stereo camera (i.e., image data IMG including two images generated by the stereo camera, which may be referred to as 3D image data IMG_3D hereinafter as necessary) to perform the 3D matching processing.
- the position and orientation calculation unit 311 may generate three-dimensional position data indicating the three-dimensional position of at least a part of the target object OBJ reflected in the image indicated by the 3D image data IMG_3D, based on the 3D image data IMG_3D (i.e., the two images indicated by the 3D image data IMG_3D). In this case, the position and orientation calculation unit 311 may calculate the parallax based on the 3D image data IMG_3D (i.e., the two images indicated by the 3D image data IMG_3D) and generate three-dimensional position data by a well-known method based on the principle of triangulation using the calculated parallax.
- the three-dimensional position data may be data indicating the three-dimensional position of each of a plurality of points of the target object OBJ.
- the three-dimensional position data may be data indicating the three-dimensional position of each of a plurality of points on the surface of the target object OBJ.
- the three-dimensional position data may be data indicating the three-dimensional position of each of a plurality of points corresponding to a plurality of parts on the surface of the target object OBJ.
- point cloud data indicating a point cloud is used as the three-dimensional position data will be described.
- three-dimensional position data different from the point cloud data indicating a point cloud for example, depth image data indicating a depth image
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing a 3D matching process using the three-dimensional position data (e.g., point cloud data) and a template model indicating the three-dimensional shape of at least a part of the target object OBJ.
- the position and orientation calculation unit 311 may perform, as the 3D matching process, an object detection process for detecting the target object OBJ indicated by the three-dimensional template model (in other words, a set of points corresponding to the template model) within the point cloud indicated by the three-dimensional position data.
- the 3D matching process in this case, the object detection process itself may be the same as an existing 3D matching process.
- the position and orientation calculation unit 311 may perform 3D matching processing using a well-known method including at least one of RANSAC (Random Sample Consensus), SIFT (Scale-Invariant Feature Transform), ICP (Iterative Closest Point), and DSO (Direct Sparse Odometry).
- RANSAC Random Sample Consensus
- SIFT Scale-Invariant Feature Transform
- ICP Iterative Closest Point
- DSO Direct Sparse Odometry
- the template model showing the three-dimensional shape of at least a portion of the target object OBJ may be generated in advance from a CAD model of the target object OBJ, or may be generated from image data obtained by capturing an image of the reference target object OBJ using the imaging device 21 or another imaging device.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ based on the image data IMG (i.e., the two images indicated by the image data IMG) using an existing method other than the 3D matching process. For example, the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ based on the 3D image data IMG_3D using an inference model generated by machine learning.
- the inference model may be generated by machine learning so as to output at least one of the position and orientation of the target object OBJ that appears in the image indicated by the image data IMG when the 3D image data IMG_3D is input.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ by performing 3D matching processing, which is an example of matching processing, in addition to or instead of the 2D matching processing. This is because the position and orientation calculation unit 311 can calculate a parallax that can be used to generate three-dimensional position data based on the projection pattern (specifically, the projection pattern deformed according to the shape of the target object OBJ) captured in the image indicated by the 2D image data IMG_2D.
- the position and orientation calculation unit 311 may translate, enlarge, reduce, and/or rotate the template model in the imaging coordinate system so that a characteristic part of the three-dimensional template model (e.g., at least one of a characteristic point and an edge) approaches (e.g., coincides with) a characteristic part of the target object OBJ (e.g., a point group corresponding to the target object OBJ indicated by the three-dimensional position data) whose three-dimensional position is indicated.
- the position and orientation calculation unit 311 can specify the positional relationship between the coordinate system of the template model and the imaging coordinate system.
- the position and orientation calculation unit 311 may calculate at least one of the position and orientation of the target object OBJ in the global coordinate system by performing processing similar to that when 2D matching processing is performed.
- the position and orientation calculation unit 311 may calculate a matching similarity, which is the similarity between the template model and a target object OBJ reflected in an image indicated by the image data IMG (or a target object OBJ whose three-dimensional position data generated from the image data IMG indicates a three-dimensional position).
- a target object OBJ whose calculated matching similarity exceeds a predetermined matching judgment threshold used in the matching process is detected by the matching process, the position and orientation calculation unit 311 may select the target object OBJ as a processing execution object on which the end effector 4 should actually perform a predetermined processing.
- the position and orientation calculation unit 311 may not select the target object OBJ as a processing execution object on which the end effector 4 should actually perform a predetermined processing.
- the matching judgment threshold is a threshold used to detect the target object OBJ from the image indicated by the image data IMG by the matching process.
- the matching judgment threshold is a threshold used to distinguish, from the matching similarity of the object detected from the image indicated by the image data IMG, a state in which the object detected from the image indicated by the image data IMG is highly likely to be the target object OBJ and a state in which the object detected from the image indicated by the image data IMG is unlikely to be the target object OBJ.
- the matching judgment threshold can also be said to be a threshold used to distinguish, from the matching similarity, a state in which the accuracy of at least one of the position and orientation of the target object OBJ calculated by the matching process using the image data IMG is high and a state in which the accuracy of at least one of the position and orientation of the target object OBJ calculated by the matching process using the image data IMG is low.
- the imaging device 21 may capture multiple target objects OBJ.
- multiple target objects OBJ may appear in the image represented by the image data IMG generated by the imaging device 21.
- the position and orientation calculation unit 311 may select one of the multiple target objects OBJ reflected in the image represented by the image data IMG as a processing execution object for which the end effector 4 should actually perform a predetermined process.
- the position and orientation calculation unit 311 may select one of the multiple target objects OBJ reflected in the image represented by the image data IMG as a processing execution object for which the end effector 4 should actually perform a predetermined process based on the matching similarity.
- the position and orientation calculation unit 311 may select one of the multiple target objects OBJ reflected in the image represented by the image data IMG as a processing execution object for which the end effector 4 should actually perform a predetermined process.
- the position and orientation calculation unit 311 may select, as the object to be processed, one target object OBJ having a matching similarity that exceeds the matching judgment threshold and is the Nth largest (N is a constant indicating an integer equal to or greater than 2) among the multiple target objects OBJ.
- the position and orientation calculation unit 311 may select, as the object to be processed, one target object OBJ having a matching similarity that exceeds a predetermined matching judgment threshold among the multiple target objects OBJ.
- the position and orientation calculation unit 311 may select, as the object to be processed, one target object OBJ having a matching similarity that exceeds the matching judgment threshold and is closest to the end effector 4 among the multiple target objects OBJ.
- the position and orientation calculation unit 311 may select, as the processing execution object, one target object OBJ among the multiple target objects OBJ that corresponds to a matching similarity that exceeds the matching judgment threshold and has the largest Z coordinate along the Z axis (is located at the highest position).
- the position and orientation calculation unit 312 may select, as the processing execution object, one target object OBJ among the multiple target objects OBJ that corresponds to a matching similarity that exceeds the matching judgment threshold and on which the end effector 4 can perform a predetermined process.
- the position and orientation calculation unit 311 may select at least two of the multiple target objects OBJ as the process execution objects. In other words, the position and orientation calculation unit 311 may select at least two process execution objects on which the end effector 4 should simultaneously perform a predetermined process. Note that, for convenience of explanation, the following explanation will be given of an example in which the position and orientation calculation unit 311 selects one target object OBJ of the multiple target objects OBJ as the process execution object.
- the signal generating unit 312 generates a robot control signal using the position and orientation data POI generated in step S12 (i.e., the result of the matching process, which is at least one of the calculation results of the position and orientation of the processing execution object).
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 can perform a predetermined process on the target object OBJ (particularly, the processing execution object).
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 approaches the target object OBJ (particularly, the processing execution object) in order for the end effector 4 to perform a predetermined process on the target object OBJ (particularly, the processing execution object).
- the signal generating unit 312 may generate a robot control signal so that the positional relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a desired holding target positional relationship.
- the signal generating unit 312 may generate a robot control signal for controlling the operation of the robot arm 12 so that the positional relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a target positional relationship to be held.
- the signal generating unit 312 may generate a robot control signal for controlling the operation of the robot arm 12 so that the posture relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a desired target posture relationship to be held.
- the signal generating unit 312 may generate a robot control signal for controlling the operation of the robot arm 12 so that the posture relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a target posture relationship to be held.
- each of the holding target positional relationship and the holding target posture relationship may be set (registered) in advance.
- the signal generating unit 312 may calculate at least one of the above-mentioned holding target positions and holding target postures of the end effector 4 so that the positional relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes the holding target positional relationship and/or the posture relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes the holding target posture relationship based on the holding target positional relationship and the holding target posture relationship set in advance and the position and posture data POI generated in step S12.
- At least one of the holding target positions and holding target postures of the end effector 4 may mean at least one of the target positions and target postures of the reference point (e.g., the tool center point) of the end effector 4.
- the signal generating unit 312 may generate a robot control signal so that the position of the end effector 4 approaches the holding target position and/or the posture of the end effector 4 approaches the holding target posture.
- the end effector 4 approaches the target object OBJ (particularly the object being processed).
- the imaging system 2 captures the target object OBJ (particularly, the processing execution object) again, and the position and orientation calculation unit 311 acquires the image data IMG generated again by the imaging system 2 capturing the image of the target object OBJ (particularly, the processing execution object) again (step S11 in FIG. 5), and the position and orientation calculation unit 311 may generate the position and orientation data POI again based on the image data IMG acquired again (step S12 in FIG. 5). That is, the position and orientation calculation unit 311 may update at least one of the position and orientation of the target object OBJ (particularly, the processing execution object).
- the position and orientation calculation unit 311 may update the position and orientation data POI.
- the signal generation unit 312 may generate the robot control signal again based on the updated position and orientation data POI. That is, the signal generation unit 312 may update the robot control signal based on the updated position and orientation data POI.
- the control device 3 may repeat the processing from step S11 to step S13 in FIG. 5.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 performs a predetermined process on the target object OBJ (particularly, the processing execution object) when the positional relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a desired positional relationship.
- the signal generating unit 312 may generate a robot control signal for controlling the operation of the end effector 4 so that a predetermined process is performed on the target object OBJ (particularly, the processing execution object) when the positional relationship between the end effector 4 and the target object OBJ (particularly, the processing execution object) becomes a desired positional relationship.
- the signal generating unit 312 outputs the robot control signal generated in step S13 to the robot 1 (particularly, the robot control device 13) using the communication device 33.
- the robot control device 13 controls at least one of the operation of the robot 1 (e.g., the operation of the robot arm 12) and the operation of the end effector 4 based on the robot control signal.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the operation of the robot 1 (e.g., the operation of the robot arm 12) and the operation of the end effector 4 so that the end effector 4 holds the process execution object.
- the robot 1 may move the robot arm 12 based on a robot control signal so that the end effector 4 moves toward (i.e., approaches) a holding target position where the end effector 4 can hold the processing execution object. After that, after the end effector 4 reaches the holding target position, the end effector 4 may hold the processing execution object based on the robot control signal.
- the robot 1 may move the robot arm 12 based on a robot control signal so that the end effector 4 moves (i.e., moves) until the posture of the end effector 4 becomes a holding target posture that allows the end effector 4 to hold the processing execution object. After that, after the posture of the end effector 4 becomes the holding target posture, the end effector 4 may hold the processing execution object based on the robot control signal.
- the robot system SYS may be considered to be performing a holding operation to hold the target object OBJ.
- the robot system SYS may perform a holding process to hold the target object OBJ using the end effector 4 as at least a part of the holding operation.
- the holding operation may mainly include a holding process performed by the end effector 4.
- the robot system SYS may perform a moving process to move the end effector 4 so that the end effector 4 approaches the target object OBJ (particularly, the object to be processed) as at least a part of the holding operation.
- the robot system SYS may perform a moving process to move the end effector 4 so that the end effector 4 approaches the holding target position as at least a part of the holding operation.
- the robot system SYS may perform a moving process to move the end effector 4 so that the posture of the end effector 4 becomes the holding target posture as at least a part of the holding operation.
- the holding operation may include, in addition to the holding process described above, a movement process that is primarily performed by the robot 1.
- the end effector 4 may perform a release process to release the processing object held by the end effector 4, as an example of a predetermined process.
- the end effector 4 may perform a placement process (in other words, a placement operation) for placing the target object OBJ, as an example of a predetermined process.
- the robot 1 may move the robot arm 12 so that the end effector 4 holding the processing object moves toward (i.e., approaches) a release target position where the end effector 4 can release the processing object.
- the release target position may be set outside the container CB.
- the robot 1 may be considered to be moving the robot arm 12 so that the processing object held by the end effector 4 is transported out of the container CB. Thereafter, after the end effector 4 reaches the release target position, the end effector 4 may release the processing object held by the end effector 4.
- the control device 3 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves toward the release target position.
- the robot control device 13 may move the robot arm 12 based on the robot control signal so that the end effector 4 moves toward the release target position.
- the robot control device 13 may move the robot arm 12 based on another robot control method such as teaching so that the end effector 4 moves toward the release target position.
- control device 3 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 located at the release target position releases the processing object.
- the end effector 4 may release the processing object held by the end effector 4 based on the robot control signal.
- the end effector 4 may release the processing object held by the end effector 4 based on another robot control method such as teaching.
- the end effector 4 may hold at least one target object OBJ that is contained in the container CB and not selected as the processing execution object, along with the one target object OBJ that is contained in the container CB and selected as the processing execution object.
- a process execution object to be held by the end effector 4 during a certain period i.e., a target object OBJ selected as a process execution object
- a target object OBJ held by the end effector 4 together with the process execution object OBJ_tgt during the same period is referred to as a "non-process execution object OBJ_ntgt.”
- a target object OBJ that becomes the process execution object OBJ_tgt to be held by the end effector 4 during a certain period may be a target object OBJ that is not a process execution object OBJ_tgt, or may be a target object OB
- a target object OBJ that becomes a non-processing object OBJ_ntgt held by the end effector 4 together with a processing object OBJ_tgt during a certain period may be a target object OBJ that is not a non-processing object OBJ_ntgt, or may be a target object OBJ that becomes a processing object OBJ_tgt during another period different from the certain period.
- the end effector 4 may mistakenly hold a non-processing execution object OBJ_ntgt along with a processing execution object OBJ_tgt.
- the end effector 4 may unintentionally hold a non-processing execution object OBJ_ntgt along with a processing execution object OBJ_tgt.
- the end effector 4 may hold an extra (in other words, extra) non-processing execution object OBJ_ntgt along with a processing execution object OBJ_tgt.
- the end effector 4 may unintentionally hold a non-processing execution object OBJ_ntgt along with a processing execution object OBJ_tgt.
- the state in which the end effector 4 holds a non-processing object OBJ_ntgt together with a processing object OBJ_tgt may include a state in which the end effector 4 directly holds a non-processing object OBJ_ntgt.
- the state in which "the end effector 4 directly holds one target object OBJ” may include a state in which the end effector 4 holds one target object OBJ without going through any other object different from the end effector 4 and the one target object OBJ.
- the state in which the end effector 4 directly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 holds the non-processing execution object OBJ_ntgt without going through any other object different from the non-processing execution object OBJ_ntgt (e.g., the processing execution object OBJ_tgt).
- the state where "the end effector 4 directly holds one target object OBJ” may include a state where the end effector 4 holds one target object OBJ due to the holding force of the end effector 4 for holding the target object OBJ acting directly on the one target object OBJ.
- the state where the end effector 4 directly holds the non-processed execution object OBJ_ntgt may include a state where the end effector 4 holds the non-processed execution object OBJ_ntgt due to the holding force of the end effector 4 for holding the target object OBJ acting directly on the non-processed execution object OBJ_ntgt.
- the holding force of the end effector 4 may include a frictional force acting between the end effector 4 (e.g., the finger member or claw member of the hand gripper) and the target object OBJ in contact with the end effector 4.
- the end effector 4 is a vacuum gripper
- the holding force of the end effector 4 may include a suction force (in other words, a degree of vacuum) generated by a vacuum device of the end effector 4.
- the holding force of the end effector 4 may include a magnetic force (or an electromagnetic force) generated by a magnetic adsorption device of the end effector 4.
- FIG. 6(a) An example of a state in which the end effector 4 directly holds the non-processing execution object OBJ_ntgt is shown in FIG. 6(a).
- the state in which the end effector 4 is a magnet gripper as shown in FIG. 6(a) will be described.
- the state in which the end effector 4 directly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt and also directly holds the non-processing execution object OBJ_ntgt.
- the state in which the end effector 4 directly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt by the direct action of the holding force of the end effector 4 and also directly holds the non-processing execution object OBJ_ntgt by the direct action of the holding force of the end effector 4.
- FIG. 6(a) shows an example in which the end effector 4 directly holds one non-processing execution object OBJ_ntgt
- the state in which the end effector 4 directly holds a non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds multiple non-processing execution objects OBJ_ntgt.
- the state in which the end effector 4 holds a non-processing object OBJ_ntgt together with a processing object OBJ_tgt may include a state in which the end effector 4 indirectly holds a non-processing object OBJ_ntgt.
- the state in which "the end effector 4 indirectly holds one target object OBJ” may include a state in which the end effector 4 holds one target object OBJ via another object different from the end effector 4 and the one target object OBJ.
- the state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 holds the non-processing execution object OBJ_ntgt via another object different from the non-processing execution object OBJ_ntgt (e.g., the processing execution object OBJ_tgt).
- the state in which "the end effector 4 indirectly holds one target object OBJ” may include a state in which the end effector 4 holds one target object OBJ with a force different from the holding force of the end effector 4 for holding the target object OBJ.
- the state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 holds the non-processing execution object OBJ_ntgt with a force different from the holding force of the end effector 4 for holding the target object OBJ.
- FIG. 6(b) An example of a state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt is shown in FIG. 6(b).
- the state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt, and the non-processing execution object OBJ_ntgt is held by the processing execution object OBJ_tgt held by the end effector 4.
- the state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, and holds the non-processing execution object OBJ_ntgt by a force different from the holding force of the end effector 4.
- the state in which the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, and the non-processing execution object OBJ_ntgt is held by a frictional force acting between the processing execution object OBJ_tgt held by the end effector 4 and the non-processing execution object OBJ_ntgt.
- FIG. 6(b) shows an example in which the end effector 4 indirectly holds one non-processing execution object OBJ_ntgt
- the state in which the end effector 4 indirectly holds a non-processing execution object OBJ_ntgt may include a state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt.
- Figure 6(c) shows a state in which the end effector 4 indirectly holds two non-processing execution objects OBJ_ntgt#1 and OBJ_ntgt#2.
- the state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt may include a state in which the end effector 4 directly holds a processing execution object OBJ_tgt, and non-processing execution objects OBJ_ntgt#1 and OBJ_ntgt#2 are held by the processing execution object OBJ_tgt held by the end effector 4.
- the state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, and also holds the non-processing execution objects OBJ_ntgt#1 and OBJ_tgt#2 by a force different from the holding force of the end effector 4.
- a state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, the non-processing execution object OBJ_ntgt#1 is held by a frictional force acting between the processing execution object OBJ_tgt held by the end effector 4 and the non-processing execution object OBJ_ntgt#1, and the non-processing execution object OBJ_ntgt#2 is held by a frictional force acting between the processing execution object OBJ_tgt held by the end effector 4 and the non-processing execution object OBJ_ntgt#2.
- Figure 6(d) shows a state in which the end effector 4 indirectly holds two non-processing execution objects OBJ_ntgt#1 and OBJ_ntgt#2.
- the state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, and also holds the non-processing execution objects OBJ_ntgt#1 and OBJ_tgt#2 by a force different from the holding force of the end effector 4.
- a state in which the end effector 4 indirectly holds multiple non-processing execution objects OBJ_ntgt may include a state in which the end effector 4 directly holds the processing execution object OBJ_tgt using the holding force of the end effector 4, the non-processing execution object OBJ_ntgt#1 is held by a frictional force acting between the processing execution object OBJ_tgt held by the end effector 4 and the non-processing execution object OBJ_ntgt#1, and the non-processing execution object OBJ_ntgt#2 is held by a frictional force acting between the non-processing execution object OBJ_ntgt#1 and the non-processing execution object OBJ_ntgt#2.
- the state in which the end effector 4 holds a non-processing execution object OBJ_ntgt together with a processing execution object OBJ_tgt may include a state in which the end effector 4 directly holds at least one non-processing execution object OBJ_ntgt and also indirectly holds at least another non-processing execution object OBJ_ntgt.
- FIGS. 6(a) to 6(d) show an example in which the end effector 4 holds one processing execution object OBJ_tgt.
- the end effector 4 may hold multiple processing execution objects OBJ_tgt.
- the state in which the end effector 4 holds a processing execution object OBJ_tgt as well as a non-processing execution object OBJ_ntgt may include a state in which the end effector 4 directly holds multiple processing execution objects OBJ_tgt and also directly or indirectly holds at least one non-processing execution object OBJ_ntgt.
- the control device 3 may control at least one of the robot 1 and the end effector 4 to return at least the non-processing execution object OBJ_ntgt to the container CB.
- the control device 3 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to return at least the non-processing execution object OBJ_ntgt to the container CB.
- the control device 3 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to perform a process to return at least the non-processing execution object OBJ_ntgt to the container CB.
- control device 3 may control at least one of the robot 1 and the end effector 4 so that at least the non-processed execution object OBJ_ntgt falls into the container CB (as a result, at least the non-processed execution object OBJ_ntgt returns to the container CB).
- the control device 3 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to perform a process of dropping at least the non-processed execution object OBJ_ntgt into the container CB as a process of returning at least the non-processed execution object OBJ_ntgt to the container CB.
- the non-processed execution object OBJ_ntgt that is dropped into the container CB may be referred to as a dropped object.
- control device 3 may control at least one of the robot 1 and the end effector 4 so that at least the non-processed execution object OBJ_ntgt is placed in the container CB without dropping at least the non-processed execution object OBJ_ntgt (as a result, at least the non-processed execution object OBJ_ntgt returns to the container CB).
- control device 3 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to perform a process of placing at least the non-processed execution object OBJ_ntgt in the container CB without dropping at least the non-processed execution object OBJ_ntgt, as a process of returning at least the non-processed execution object OBJ_ntgt to the container CB.
- the control device 3 can return at least the non-processing execution object OBJ_ntgt to the container CB more quickly.
- At least the process of returning the non-processing object OBJ_ntgt to the container CB and the release process of releasing the processing object OBJ_tgt may be considered to be common in that they are processes of moving the target object OBJ held by the end effector 4 away from the end effector 4.
- the process of returning the non-processing object OBJ_ntgt to the container CB may be considered to be different from the release process, which is a process of moving the target object OBJ held by the end effector 4 away from the end effector 4 in order to release the target object OBJ held by the end effector 4 at the release target position described above, in that it is a process of moving the target object OBJ held by the end effector 4 away from the end effector 4 in order to release the target object OBJ held by the end effector 4 at a position different from the release target position described above.
- At least the process of returning the non-processed execution object OBJ_ntgt to the container CB may be considered to be different from a release process, which is a process of releasing the target object OBJ held by the end effector 4 from the end effector 4 in order to place the target object OBJ held by the end effector 4 at a position different from the container CB, in that the process is a process of releasing the target object OBJ held by the end effector 4 from the end effector 4 in order to place the target object OBJ held by the end effector 4 in the container CB.
- At least the process of returning the non-processing object OBJ_ntgt to the container CB may be considered different from the release process, which is a process of releasing the target object OBJ held by the end effector 4 from the end effector 4 in order to release the processing object OBJ_tgt that the end effector 4 should have held at a desired release target position, in that the process of returning the non-processing object OBJ_ntgt to the container CB is a process of releasing the target object OBJ held by the end effector 4 from the end effector 4 in order to return the non-processing object OBJ_ntgt that the end effector 4 did not originally need to hold to the container CB.
- At least the process of returning the non-processing object OBJ_ntgt to the container CB may be considered different from the release process, which is a process of partially returning the process of the placement process (i.e., a series of processes including the holding process and the release process) that the robot 1 has advanced.
- the control device 3 determines whether the end effector 4 holds the non-processing object OBJ_ntgt in addition to the processing object OBJ_tgt (steps S21 to S22).
- the control device 3 determines whether the end effector 4 holds the non-processing object OBJ_ntgt in addition to the processing object OBJ_tgt (steps S21 to S22). In this case, the control device 3 may determine whether the end effector 4 is holding a non-processing object OBJ_ntgt at the timing when the end effector 4 holds the processing object OBJ_tgt.
- control device 3 may determine whether the end effector 4 is holding a non-processing object OBJ_ntgt at the same time when the end effector 4 holds the processing object OBJ_tgt. Alternatively, the control device 3 may determine whether the end effector 4 is holding a non-processing object OBJ_ntgt after a predetermined time has elapsed since the end effector 4 held the processing object OBJ_tgt.
- control device 3 When it is determined that the end effector 4 is holding a non-processing object OBJ_ntgt in addition to the processing object OBJ_tgt, the control device 3 generates a robot control signal for controlling at least one of the robot 1 and the end effector 4 to return at least the non-processing object OBJ_ntgt to the container CB (steps S23 to S24).
- the control device 3 may determine that the end effector 4 is not holding any target object OBJ as a result of the determination of whether the end effector 4 is holding a non-processing execution object OBJ_ntgt in addition to the processing execution object OBJ_tgt.
- the control device 3 may determine that the end effector 4 is not holding any target object OBJ as a result of the determination of whether the end effector 4 is holding a non-processing execution object OBJ_ntgt in addition to the processing execution object OBJ_tgt. In this case, the control device 3 may generate a robot control signal so that the end effector 4 holds the process execution object OBJ_tgt that the end effector 4 should have held but did not hold.
- control device 3 may generate a robot control signal so that the end effector 4 holds the same process execution object OBJ_tgt (the same target object OBJ) without changing the process execution object OBJ_tgt to another target object OBJ.
- control device 3 may select a target object OBJ different from the process execution object OBJ_tgt that the end effector 4 should have held but did not hold, as a new process execution object OBJ_tgt.
- control device 3 may select a target object OBJ different from the already selected process execution object OBJ_tgt and whose matching similarity satisfies the above-mentioned condition regarding the selection of the process execution object OBJ_tgt, as a new process execution object OBJ_tgt.
- the control device 3 may generate a robot control signal to move the imaging system 2.
- control device 3 may generate a robot control signal to move the imaging system 2 so that at least one of the position and the posture of the imaging system 2 is changed. Thereafter, the control device 3 may acquire image data IMG generated by the moved imaging system 2 capturing an image of the target object OBJ, and may select a target object OBJ whose matching similarity satisfies the above-mentioned condition regarding the selection of the process execution object OBJ_tgt as a new process execution object OBJ_tgt based on the image data IMG. Thereafter, the control device 3 may generate a robot control signal to cause the end effector 4 to hold the newly selected process execution object OBJ_tgt.
- control device 3 may not generate a robot control signal to move the imaging system 2.
- the control device 3 may acquire image data IMG generated by capturing an image of the target object OBJ at the same position and orientation as the previous time, and select, based on the image data IMG, a target object OBJ whose matching similarity satisfies the above-mentioned conditions regarding the selection of the processing execution object OBJ_tgt as a new processing execution object OBJ_tgt.
- the imaging device 21 images at least one target object OBJ held by the end effector 4 (step S21).
- the imaging device 21 may image an area in which the target object OBJ held by the end effector 4 exists when it is assumed that the end effector 4 holds the target object OBJ (for example, at least one of the processing object OBJ_tgt and the non-processing object OBJ_ntgt).
- the imaging device 21 may image an area in which the imaging range (imaging angle of view) of the imaging device 21 includes an area in which the target object OBJ held by the end effector 4 exists when it is assumed that the end effector 4 holds the target object OBJ.
- the imaging device 21 does not need to image the target object OBJ in step S21.
- the imaging device 21 that images the target object OBJ held by the end effector 4 may be considered to function as a measuring device that measures the target object OBJ held by the end effector 4.
- the erroneous holding detection unit 313 of the control device 3 uses the communication device 33 to acquire image data IMG generated by the imaging device 21 capturing an image of at least one target object OBJ held by the end effector 4 (step S21).
- the erroneous holding detection unit 313 determines whether or not the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the image data IMG acquired in step S21 (step S22).
- the erroneous holding detection unit 313 may calculate the number of target objects OBJ actually held by the end effector 4 by controlling the position and orientation calculation unit 311 to perform matching processing (particularly, object detection processing) based on the image data IMG acquired in step S21.
- the erroneous holding detection unit 313 may calculate the number of target objects OBJ actually held by the end effector 4 by controlling the position and orientation calculation unit 311 to perform matching processing (particularly, object detection processing) based on the image data IMG acquired in step S21.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to perform a matching process (particularly, an object detection process) based on the image data IMG acquired in step S21, thereby calculating at least one of the position and orientation of the target object OBJ actually held by the end effector 4.
- a matching process particularly, an object detection process
- the erroneous holding detection unit 313 may calculate the number of target objects OBJ actually held by the end effector 4 based on the calculation result of at least one of the position and orientation of the target object OBJ actually held by the end effector 4.
- the matching process performed in step S22 may be the same as the matching process performed in step S12.
- the erroneous holding detection unit 313 determines whether the number of target objects OBJ actually held by the end effector 4 is the same as a predetermined number of held objects, which is the number of target objects OBJ that the end effector 4 should actually hold (i.e., the number of processing execution objects OBJ_tgt that the end effector 4 should actually hold). For example, as described above, when one of the multiple target objects OBJ contained in the container CB is selected as the processing execution object OBJ_tgt, the erroneous holding detection unit 313 determines whether the number of target objects OBJ actually held by the end effector 4 is 1, which is the predetermined number of held objects.
- the erroneous holding detection unit 313 determines whether the number of target objects OBJ actually held by the end effector 4 is the same as a predetermined number of held objects, which is the number of target objects OBJ selected as the processing execution objects OBJ_tgt (i.e., an integer equal to or greater than 2).
- the erroneous holding detection unit 313 may determine that the end effector 4 is not holding a non-processing object OBJ_ntgt.
- the erroneous holding detection unit 313 may determine that the end effector 4 is holding a non-processing object OBJ_ntgt.
- the matching process may erroneously detect the target object OBJ that remains in the container CB and is therefore not being held by the end effector 4 as the target object OBJ held by the end effector 4.
- the matching process e.g., the object detection process
- the matching process is less likely to erroneously detect the target object OBJ that remains in the container CB and is therefore not being held by the end effector 4 as the target object OBJ held by the end effector 4.
- the matching process performed in step S22 is less likely to erroneously detect a target object OBJ that remains in the container CB and is therefore not being held by the end effector 4 as a target object OBJ being held by the end effector 4. This is because the matching similarity of at least one target object OBJ remaining in the container CB decreases.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the imaging device 21 moves away from the container CB (particularly, moves away from the at least one target object OBJ contained in the container CB) from the first camera position, which is the position of the imaging device 21 at the time when the end effector 4 holds the processing execution object OBJ_tgt, before the imaging device 21 captures an image of the at least one target object OBJ held by the end effector 4 in step S21.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the imaging device 21 located at the first camera position moves away from the container CB (particularly, moves away from the at least one target object OBJ contained in the container CB) before the imaging device 21 captures an image of the at least one target object OBJ held by the end effector 4 in step S21.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the imaging device 21 moves to a second camera position that is higher than the first camera position.
- the height here may mean the height from the container CB (i.e., the distance to the container CB).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the imaging device 21 moves to a second camera position that is farther from the container CB (particularly, farther from at least one target object OBJ contained in the container CB) than the first camera position. Thereafter, based on the robot control signal, the robot 1 may move the robot arm 12 so that the imaging device 21 moves away from the at least one target object OBJ contained in the container CB from the first camera position, which is the position of the imaging device 21 at the time when the end effector 4 holds the processing execution object OBJ_tgt, before the imaging device 21 captures an image of at least one target object OBJ held by the end effector 4 in step S21.
- the robot 1 may move the robot arm 12 so that the imaging device 21 located at the first camera position moves away from the at least one target object OBJ contained in the container CB before the imaging device 21 captures an image of the at least one target object OBJ held by the end effector 4 in step S21 based on the robot control signal.
- the robot 1 may move the robot arm 12 so that the imaging device 21 moves to a second camera position higher than the first camera position. After the imaging device 21 moves, the imaging device 21 may capture an image of the at least one target object OBJ held by the end effector 4.
- the imaging device 21 captures an image of the at least one target object OBJ remaining in the container CB in addition to the at least one target object OBJ held by the end effector 4, the size of the at least one target object OBJ remaining in the container CB will be smaller than the size of the at least one target object OBJ held by the end effector 4 in the image represented by the image data IMG generated by the imaging device 21.
- the imaging device 21 captures an image of at least one target object OBJ remaining in the container CB in addition to at least one target object OBJ held by the end effector 4, there is a high possibility that the at least one target object OBJ remaining in the container CB will be blurred in the image represented by the image data IMG generated by the imaging device 21.
- the erroneous holding detection unit 313 will erroneously detect a target object OBJ that is not being held by the end effector 4 because it remains in the container CB as a target object OBJ being held by the end effector 4. This improves the accuracy of determining whether or not the end effector 4 is holding a non-processing execution object OBJ_ntgt.
- the end effector 4 moving together with the imaging device 21 also moves from the first tool position corresponding to the first camera position to the second tool position corresponding to the second camera position. That is, the end effector 4 moves from the first tool position, which is the position of the end effector 4 at the time when the end effector 4 holds the processing execution object OBJ_tgt, so as to move away from the container CB (particularly, away from at least one target object OBJ contained in the container CB). In other words, the end effector 4 located at the first tool position moves away from the container CB (particularly, away from at least one target object OBJ contained in the container CB).
- the end effector 4 moves to the second tool position which is higher than the first tool position.
- the end effector 4 moves to a second tool position that is farther from the container CB (particularly, farther from at least one target object OBJ contained in the container CB) than the first tool position.
- At least one target object OBJ held by the end effector 4 also moves from a first object position corresponding to the first tool position to a second object position corresponding to the second tool position. That is, at least one target object OBJ held by the end effector 4 moves from a first object position, which is the position of at least one target object OBJ held by the end effector 4 at the time when the end effector 4 holds the processing execution object OBJ_tgt, so as to move away from the container CB (particularly, away from at least one target object OBJ contained in the container CB).
- At least one target object OBJ located at the first object position moves away from the container CB (particularly, away from at least one target object OBJ contained in the container CB).
- at least one target object OBJ held by the end effector 4 moves to a second object position higher than the first object position.
- at least one target object OBJ held by the end effector 4 moves to a second object position that is farther from the container CB (particularly, farther from at least one target object OBJ contained in the container CB) than the first object position.
- the imaging device 21 captures an image of the at least one target object OBJ held by the end effector 4
- the imaging device 21 does not have to move away from the first camera position, which is the position of the imaging device 21 at the time the end effector 4 holds the processing execution object OBJ_tgt.
- the imaging device 21 located at the first camera position may capture an image of the at least one target object OBJ held by the end effector 4 from the first camera position.
- the control device 3 can return at least the non-processed execution object OBJ_ntgt to the container CB faster than if the at least the non-processed execution object OBJ_ntgt were dropped into the container CB by placing (i.e., returning) the at least non-processed execution object OBJ_ntgt in the container CB without dropping the at least non-processed execution object OBJ_ntgt into the container CB.
- the end effector 4 also does not move away from the container CB, and therefore the end effector 4 holding the non-processing execution object OBJ_ntgt simply releases (disengages) the non-processing execution object OBJ_ntgt from its position (specifically, the first tool position holding the non-processing execution object OBJ_ntgt).
- the control device 3 may control the height of the imaging device 21 (e.g., the height from the container CB and the distance from the container CB) in accordance with the height of the group of target objects contained in the container CB.
- control device 3 may control the height of the imaging device 21 so that the height of the imaging device 21 decreases as the height of the group of target objects contained in the container CB decreases.
- the imaging device 21 can appropriately focus on the group of target objects contained in the container CB even if the height of the group of target objects contained in the container CB decreases. Therefore, the imaging device 21 can appropriately capture an image of the group of target objects contained in the container CB even if the height of the group of target objects contained in the container CB decreases.
- the height at which the imaging device 21 images at least one target object OBJ held by the end effector 4 during one period may be lower than the height at which the imaging device 21 images at least one target object OBJ held by the end effector 4 during another period prior to the one period.
- the height at which the imaging device 21 images at least one target object OBJ held by the end effector 4 during one period in which the height of the target objects contained in the container CB is a first height may be lower than the height at which the imaging device 21 images at least one target object OBJ held by the end effector 4 during another period in which the height of the target objects contained in the container CB is a second height higher than the first height.
- step S22 (2-2-2) Processing for Dropping at Least the Non-Processing Object into the Container
- step S22 the control device 3 may not perform processing for dropping at least the non-processing object OBJ_ntgt into the container CB.
- the end effector 4 may perform a release processing for releasing the processing object OBJ_tgt held by the end effector 4 (step S33).
- the processing object OBJ_tgt held by the end effector 4 may be carried out of the container CB, and the processing object OBJ_tgt held by the end effector 4 may be released outside the container CB.
- step S22 if it is determined in step S22 that the end effector 4 is holding a non-processing execution object OBJ_ntgt (step S22: No), it is assumed that the end effector 4 is holding a holding target object group OBG_h including both the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt.
- the imaging device 21 is imaging the holding target object group OBG_h held by the end effector 4 in the above-mentioned step S21.
- the control device 3 performs a process of dropping at least the non-processing execution object OBJ_ntgt held by the end effector 4 into the container CB (steps S23 to S24).
- the control device 3 may be considered to have changed at least one control mode of the robot 1 and the end effector 4 depending on the determination result of whether or not the end effector 4 holds a non-processing execution object OBJ_ntgt.
- control device 3 may be considered to have changed at least one control mode of the robot 1 and the end effector 4 depending on the number of target objects OBJ actually held by the end effector 4.
- the erroneous holding detection unit 313 may identify the holding state of the target object OBJ (e.g., the group of held objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt) held by the end effector 4 based on the image data IMG acquired in step S21 (step S23).
- the target object OBJ e.g., the group of held objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt
- the holding state may include at least one of the positions and orientations of the holding target object group OBG_h held by the end effector 4. Specifically, because the end effector 4 holds the processing execution object OBJ_tgt, the holding state may include at least one of the positions and orientations of the processing execution object OBJ_tgt held by the end effector 4. In other words, at least one of the positions and orientations of the holding target object group OBG_h may include at least one of the positions and orientations of the processing execution object OBJ_tgt held by the end effector 4.
- the holding state may include at least one of the positions and orientations of the non-processing execution object OBJ_ntgt held by the end effector 4 in addition to or instead of at least one of the positions and orientations of the processing execution object OBJ_tgt held by the end effector 4.
- at least one of the positions and orientations of the group of objects to be held OBG_h may include at least one of the positions and orientations of the non-processing execution object OBJ_ntgt held by the end effector 4.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to perform a matching process using the image data IMG acquired in step S21.
- the matching process itself performed in step S23 may be the same as the matching process performed in step S12. For this reason, a detailed description of the matching process performed in step S23 will be omitted.
- a matching process may be performed in step S22 to determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to calculate at least one of the position and orientation of at least one target object OBJ held by the end effector 4.
- the erroneous holding detection unit 313 may not need to recalculate at least one of the position and orientation of the held target object group OBG_h.
- the erroneous holding detection unit 313 may reuse at least one of the position and orientation of at least one target object OBJ held by the end effector 4 calculated in step S22 as the holding state.
- the holding state may include the holding manner of the non-processed execution object OBJ_ntgt by the end effector 4.
- the holding state may include a state in which the end effector 4 directly holds the non-processed execution object OBJ_ntgt and a state in which the end effector 4 indirectly holds the non-processed execution object OBJ_ntgt.
- the holding state may include the result of determining whether the holding manner of the non-processed execution object OBJ_ntgt by the end effector 4 is a first holding manner in which the end effector 4 directly holds the non-processed execution object OBJ_ntgt, or a second holding manner in which the end effector 4 indirectly holds the non-processed execution object OBJ_ntgt.
- the erroneous holding detection unit 313 may calculate the positional relationship between the multiple target objects OBJ included in the holding target object group OBG_h based on at least one of the calculation results of the position and orientation of the holding target object group OBG_h. After that, the erroneous holding detection unit 313 may identify the holding manner of the non-processing execution object OBJ_ntgt by the end effector 4 based on the positional relationship between the multiple target objects OBJ included in the holding target object group OBG_h.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to calculate at least one of the position and orientation of the end effector 4 in addition to at least one of the position and orientation of the holding target object group OBG_h.
- the erroneous holding detection unit 313 may calculate at least one of the position and orientation of the end effector 4 by performing a matching process using the image data IMG acquired in step S21 and a template model showing at least a part of the shape (two-dimensional shape and/or three-dimensional shape) of the end effector 4.
- the matching process using the template model showing the shape of the end effector 4 may be the same as the matching process using the template model showing the shape of the target object OBJ described above.
- the template model is not limited to a model showing at least a part of the shape of the end effector 4, but may be a model showing at least a part of the edge of the end effector 4.
- the template model may be generated in advance from a CAD model of the end effector 4, or may be generated from image data obtained by capturing an image of the reference end effector 4 by the imaging device 21 or another imaging device.
- At least one of the calculated positions and orientations of the end effector 4 may be at least one of the positions and orientations of the tip portion of the end effector 4 (particularly the portion that holds the target object OBJ), or at least one of the positions and orientations of the reference point of the end effector 4 (e.g., the tool center point).
- the erroneous holding detection unit 313 may acquire information on at least one of the positions and orientations of the end effector 4 from the robot 1 (from the robot control device 13).
- the erroneous holding detection unit 313 may acquire a measurement result of a position and orientation measurement device (e.g., an encoder) provided in the robot 1 for detecting at least one of the positions and orientations of the end effector 4 as information on at least one of the positions and orientations of the end effector 4.
- the information on at least one of the position and orientation of the end effector 4 may mean information on at least one of the position and orientation of a reference point (e.g., a tool center point) of the end effector 4.
- the erroneous holding detection unit 313 may calculate a positional relationship between the holding target object group OBG_h and the end effector 4 based on at least one calculation result of the position and orientation of the holding target object group OBG_h and at least one calculation result of the position and orientation of the end effector 4. Then, the erroneous holding detection unit 313 may specify a holding mode of the non-processing execution object OBJ_ntgt by the end effector 4 based on the positional relationship between the holding target object group OBG_h and the end effector 4. For example, when there is no target object OBJ located at a position away from the end effector 4 (see FIG.
- the erroneous holding detection unit 313 may determine that the end effector 4 directly holds the non-processing execution object OBJ_ntgt. For example, when a target object OBJ located at a position away from the end effector 4 exists (see FIG. 6(b) to FIG. 6(d)), there is a high possibility that a target object OBJ indirectly held by the end effector 4 exists. Therefore, in this case, the erroneous holding detection unit 313 may determine that the end effector 4 indirectly holds the non-processing execution object OBJ_ntgt.
- the erroneous holding detection unit 313 may determine that the end effector 4 directly holds the non-processing execution object OBJ_ntgt.
- the holding state may include the "number of target objects OBJ actually held by the end effector 4" used to determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt in step S22 described above.
- the "number of target objects OBJ actually held by the end effector 4" calculated in step S22 may be used as at least a part of the holding state.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop the non-processing execution object OBJ_ntgt existing at the calculated position and/or in the calculated orientation into the container CB based on at least one calculation result of the position and orientation of the non-processing execution object OBJ_ntgt included in the holding target object group OBG_h.
- the signal generating unit 312 may generate a robot control signal for moving the robot arm 12 so that the non-processing execution object OBJ_ntgt existing at the calculated position and/or in the calculated orientation falls toward the container CB.
- the signal generating unit 312 may generate a robot control signal for moving the robot arm 12 so as to move the non-processing execution object OBJ_ntgt existing at the calculated position and/or in the calculated orientation to place the non-processing execution object OBJ_ntgt existing at the calculated position and/or in the calculated orientation in a predetermined position of the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 based on at least one calculation result of the position and orientation of the processing execution object OBJ_tgt included in the holding target object group OBG_h, so as to drop into the container CB the non-processing execution object OBJ_ntgt held by the end effector 4 together with the processing execution object OBJ_tgt present at the calculated position and/or in the calculated orientation.
- the signal generating unit 312 may generate a robot control signal for moving the robot arm 12 so that the non-processing execution object OBJ_ntgt held by the processing execution object OBJ_tgt present at the calculated position and/or in the calculated orientation drops toward the container CB.
- the signal generating unit 312 may generate a robot control signal for moving the robot arm 12 to move the non-processing execution object OBJ_ntgt held by the processing execution object OBJ_tgt that is present at the calculated position and/or in the calculated attitude, in order to place the non-processing execution object OBJ_ntgt at a predetermined position in the container CB.
- the signal generating unit 312 may change at least one control mode of the robot 1 and the end effector 4 for dropping the non-processed execution object OBJ_ntgt into the container CB in accordance with the holding mode of the non-processed execution object OBJ_ntgt by the end effector 4.
- the signal generating unit 312 may generate a robot control signal such that at least one control mode of the robot 1 and the end effector 4 for dropping the non-processed execution object OBJ_ntgt into the container CB when the end effector 4 directly holds the non-processed execution object OBJ_ntgt is different from at least one control mode of the robot 1 and the end effector 4 for dropping the non-processed execution object OBJ_ntgt into the container CB when the end effector 4 indirectly holds the non-processed execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal so that at least one control mode of the robot 1 and the end effector 4 for dropping the non-processing execution object OBJ_ntgt directly held by the end effector 4 into the container CB is different from at least one control mode of the robot 1 and the end effector 4 for dropping the non-processing execution object OBJ_ntgt indirectly held by the end effector 4 into the container CB.
- the signal generating unit 312 may calculate the number of non-processing execution objects OBJ_ntgt to be dropped into the container CB based on the number of target objects OBJ actually held by the end effector 4. For example, the signal generating unit 312 may calculate the number of non-processing execution objects OBJ_ntgt to be dropped into the container CB by subtracting the number of processing execution objects OBJ_tgt that the end effector 4 should originally hold from the number of target objects OBJ actually held by the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop the same number of non-processing execution objects OBJ_ntgt as the calculated number into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop both the non-processing object OBJ_ntgt held by the end effector 4 and the processing object OBJ_tgt held by the end effector 4 into the container CB, as shown in Fig. 8.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop a holding target object group OBG_h held by the end effector 4 into the container CB, as shown in Fig. 8.
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the group of objects to be held OBG_h by weakening the holding force with which the end effector 4 holds the group of objects to be held OBG_h (as a result, the group of objects to be held OBG_h falls).
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the group of objects to be held OBG_h by weakening the force with which the hand gripper (e.g., finger members or claw members of the hand gripper) pinches the group of objects to be held OBG_h (as a result, weakening the holding force acting between the hand gripper and the group of objects to be held OBG_h for holding the group of objects to be held OBG_h).
- the hand gripper e.g., finger members or claw members of the hand gripper
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the group of objects to be held OBG_h by weakening the suction force generated by the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the group of objects to be held OBG_h by weakening the magnetic force (or electromagnetic force) generated by the end effector 4.
- Weakening the holding force of the end effector 4 may include the end effector 4 generating a holding force while weakening the holding force.
- weakening the holding force of the end effector 4 may include the end effector 4 applying to the group of objects to be held OBG_h a holding force weaker than the holding force acting on the group of objects to be held OBG_h at the time when the end effector 4 held the group of objects to be held OBG_h.
- weakening the holding force of the end effector 4 may include switching the state of the end effector 4 from a state in which the end effector 4 applies a holding force of a first strength to the group of objects to be held OBG_h to a state in which the end effector 4 applies a holding force of a second strength weaker than the first strength to the group of objects to be held OBG_h.
- Weakening the holding force of the end effector 4 may include reducing the holding force of the end effector 4 to zero.
- weakening the holding force of the end effector 4 may include switching the state of the end effector 4 from a state in which the end effector 4 applies a holding force to the group of objects to be held OBG_h to a state in which the end effector 4 does not apply a holding force to the group of objects to be held OBG_h.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the group of objects to be held OBG_h falls from the end effector 4 by moving the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the group of objects to be held OBG_h falls from the end effector 4 by translating the end effector 4 along a predetermined translation axis (e.g., at least one of the X-axis, the Y-axis, and the Z-axis).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the group of objects to be held OBG_h falls from the end effector 4 by translating the end effector 4 along a predetermined rotation axis (e.g., at least one of the rotation axis along the X-axis, the Y-axis, and the Z-axis).
- a predetermined rotation axis e.g., at least one of the rotation axis along the X-axis, the Y-axis, and the Z-axis.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 vibrates to cause the group of objects to be held OBG_h to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 swings to cause the group of objects to be held OBG_h to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the group of objects to be held OBG_h to fall from the end effector 4 due to friction between the group of objects to be held OBG_h and another object by moving the end effector 4 so that the group of objects to be held OBG_h comes into contact with another object (e.g., the container CB and the target object OBJ contained in the container CB).
- another object e.g., the container CB and the target object OBJ contained in the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the holding force of the end effector 4 for holding the holding target object group OBG_h is weakened and the end effector 4 is moved (for example, translated and/or rotated as described above) to cause the holding target object group OBG_h to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the holding target object group OBG_h is dropped from the end effector 4 by moving the end effector 4 without weakening the holding force of the end effector 4 for holding the holding target object group OBG_h.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the holding target object group OBG_h is dropped from the end effector 4 by moving the end effector 4 while maintaining the holding force of the end effector 4 for holding the holding target object group OBG_h.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the other of the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt held by the end effector 4 is dropped into the container CB while the end effector 4 holds either the processing execution object OBJ_tgt or the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the other of the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt held by the end effector 4 is dropped into the container CB while the end effector 4 holds either the processing execution object OBJ_tgt or the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 drops the non-processing object OBJ_ntgt held by the end effector 4 into the container CB while the end effector 4 holds the processing object OBJ_tgt.
- the end effector 4 may perform a release process for releasing the processing object OBJ_tgt held by the end effector 4 (step S33).
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 drops the processing object OBJ_tgt held by the end effector 4 into the container CB while the end effector 4 holds the non-processing object OBJ_ntgt.
- the end effector 4 may perform a release process to release the non-processing object OBJ_ntgt held by the end effector 4 (step S33).
- the non-processing object OBJ_ntgt still held by the end effector 4 may be released as a new processing object OBJ_tgt.
- the signal generating unit 312 generates a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 drops the non-processing object OBJ_ntgt held by the end effector 4 into the container CB while the end effector 4 holds the processing object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the non-processing execution object OBJ_ntgt by weakening the holding force with which the end effector 4 holds the non-processing execution object OBJ_ntgt (as a result, the non-processing execution object OBJ_ntgt falls). Note that since weakening the holding force of the end effector 4 has already been explained, a detailed explanation will be omitted.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processed execution object OBJ_ntgt falls from the end effector 4 by moving the end effector 4 (e.g., by translating and/or rotating as described above).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processed execution object OBJ_ntgt falls from the end effector 4 by vibrating the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processed execution object OBJ_ntgt falls from the end effector 4 by shaking the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to move the end effector 4 so that the non-processed execution object OBJ_ntgt comes into contact with another object (e.g., a container CB and a target object OBJ contained in the container CB), thereby causing the non-processed execution object OBJ_ntgt to fall from the end effector 4 due to friction between the non-processed execution object OBJ_ntgt and the other object.
- another object e.g., a container CB and a target object OBJ contained in the container CB
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to weaken the holding force with which the end effector 4 holds the non-processing execution object OBJ_ntgt and to move the end effector 4 (e.g., by translating and/or rotating as described above) so that the group of objects to be held OBG_h falls from the end effector 4.
- the holding force e.g., magnetic force
- the holding force e.g., magnetic force
- the holding force e.g., magnetic force
- At least one of the relative positional relationship and orientation relationship between the end effector 4 and the non-processing execution object OBJ_ntgt that the end effector 4 should not have originally held is significantly different from at least one of the ideal positional relationship and orientation relationship for the end effector 4 to properly hold the target object OBJ
- at least one of the relative positional relationship and orientation relationship between the end effector 4 and the processing execution object OBJ_tgt that the end effector 4 should have originally held may be the same as at least one of the ideal positional relationship and orientation relationship for the end effector 4 to properly hold the target object OBJ.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves to cause the non-processed execution object OBJ_ntgt to fall from the end effector 4 without weakening the holding force with which the end effector 4 holds the non-processed execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves to cause the non-processed execution object OBJ_ntgt to fall from the end effector 4 while maintaining the holding force with which the end effector 4 holds the non-processed execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop all of the multiple non-processed execution objects OBJ_ntgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop some of the multiple non-processed execution objects OBJ_ntgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds a portion of the non-processing execution objects OBJ_ntgt while dropping another portion of the non-processing execution objects OBJ_ntgt held by the end effector 4 into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop all of the multiple processing execution objects OBJ_tgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop some of the multiple processing execution objects OBJ_tgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop other parts of the multiple processing execution objects OBJ_tgt held by the end effector 4 into the container CB while the end effector 4 holds some of the multiple processing execution objects OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop the non-processing object OBJ_ntgt held by the end effector 4 into the container CB while the end effector 4 holds the processing object OBJ_tgt, as shown in Fig. 10.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop the non-processing object OBJ_ntgt held indirectly by the end effector 4 into the container CB while the end effector 4 holds the processing object OBJ_tgt, as shown in Fig. 10.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop only the non-processing execution object OBJ_ntgt indirectly held by the end effector 4 into the container CB without dropping the processing execution object OBJ_tgt held by the end effector 4 into the container CB, as shown in Fig. 10.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop only the non-processing execution object OBJ_ntgt held by the end effector 4 into the container CB, as shown in Fig. 10.
- the non-processing execution object OBJ_ntgt may be considered to be held by the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt is dropped from the processing execution object OBJ_tgt into the container CB while the end effector 4 holds the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt is dropped from the processing execution object OBJ_tgt into the container CB while the end effector 4 holds the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the non-processing object OBJ_ntgt falls by weakening the holding force of the end effector 4 while the end effector 4 is holding the processing execution object OBJ_tgt. Note that since weakening the holding force of the end effector 4 has already been explained, a detailed explanation will be omitted.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4, while holding the processing execution object OBJ_tgt, moves (for example, moves translationally and/or rotates as described above) the end effector 4, causing the non-processing execution object OBJ_ntgt to fall from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 vibrates to cause the non-processing execution object OBJ_ntgt to fall from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 swings to cause the non-processing execution object OBJ_ntgt to fall from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to move the end effector 4 so that the non-processing execution object OBJ_ntgt comes into contact with another object (e.g., a container CB and a target object OBJ contained in the container CB), thereby causing the non-processing execution object OBJ_ntgt to fall from the processing execution object OBJ_tgt due to friction between the non-processing execution object OBJ_ntgt and the other object.
- another object e.g., a container CB and a target object OBJ contained in the container CB
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to weaken the holding force of the end effector 4 and move the end effector 4 (e.g., move it in a translational manner and/or move it in a rotational manner as described above) so that the non-processing object OBJ_ntgt falls from the processing object OBJ_tgt.
- the end effector 4 is a magnetic gripper
- the holding force e.g., magnetic force
- the holding force e.g., magnetic force
- the holding force e.g., magnetic force
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt falls from the processing execution object OBJ_tgt by moving the end effector 4 without weakening the holding force of the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt falls from the processing execution object OBJ_tgt by moving the end effector 4 while maintaining the holding force of the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing object OBJ_ntgt falls from the processing object OBJ_tgt by rotating and moving the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing object OBJ_ntgt falls from the processing object OBJ_tgt by changing the posture of the end effector 4.
- the contact surface CTP where the non-processing object OBJ_ntgt and the processing object OBJ_tgt come into contact is more likely to be inclined with respect to the horizontal plane.
- the angle i.e., the inclination angle
- the contact surface CTP where the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt come into contact with each other with respect to the horizontal plane is more likely to be large.
- the signal generating unit 312 may determine the rotation direction of the end effector 4 based on the positional relationship between the end MFP of the processing execution object OBJ_tgt held by the end effector 4 and the reference point TCP of the end effector 4.
- the end MFP of the processing execution object OBJ_tgt may be the end of the processing execution object OBJ_tgt that is located at the farthest position from the reference point TCP of the end effector 4.
- the reference point TCP of the end effector 4 may be a reference point that defines the position of the end effector 4.
- An example of the reference point TCP is the tool center point of the end effector 4.
- Another example of the reference point TCP is a point set on the end effector 4 by the user.
- the tool center point of the end effector 4 may be set by the user.
- the signal generating unit 312 may determine the rotation direction RD from the end MFP of the object to be processed OBJ_tgt toward the reference point TCP of the end effector 4 as the rotation direction of the reference point TCP of the end effector 4. In other words, the signal generating unit 312 may determine the rotation direction RD from the end MFP of the object to be processed OBJ_tgt toward the reference point TCP of the end effector 4 as the rotation direction of the end effector 4.
- the contact surface CTP where the non-processing object OBJ_ntgt and the object to be processed OBJ_tgt come into contact is more likely to be inclined with respect to the horizontal plane.
- the angle at which the contact surface CTP where the non-processing object OBJ_ntgt and the object to be processed OBJ_tgt come into contact with the horizontal plane i.e., the inclination angle
- the inclination angle is more likely to be large.
- the frictional force acting between the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt is likely to be weaker.
- the force acting in the opposite direction to the frictional force acting between the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt is likely to be stronger.
- the non-processing execution object OBJ_ntgt is likely to fall off the processing execution object OBJ_tgt.
- causing the end effector 4 to rotate may include changing the height of the end effector 4 with the rotation of the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that a non-processing object OBJ_ntgt that has moved in a direction different from the rotation direction of the end effector 4 (i.e., the direction in which the posture of the end effector 4 is changed) falls from the processing object OBJ_tgt, as shown in Figure 12.
- the rotation direction of the end effector 4 is a rotation direction RD that is from the end MFP of the processing object OBJ_tgt toward the reference point TCP of the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing object OBJ_ntgt that has moved in a direction different from the rotation direction of the end effector 4 falls from the processing object OBJ_tgt.
- the signal generating unit 312 may rotate the end effector 4 in a rotation direction different from the rotation direction RD from the end MFP of the processing object OBJ_tgt toward the reference point TCP of the end effector 4, thereby generating a robot control signal for controlling the robot 1 so that the non-processing object OBJ_ntgt that has moved in a direction different from the rotation direction falls from the processing object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt that moves in the direction opposite to the rotation direction of the end effector 4 falls from the processing execution object OBJ_tgt.
- the rotation direction of the end effector 4 is toward the -Y side and/or +Z side.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt that moves toward the +Y side and/or -Z side falls from the processing execution object OBJ_tgt.
- the signal generating unit 312 does not have to generate a robot control signal for controlling the robot 1 so that a non-processing execution object OBJ_ntgt that has moved in a direction different from the rotation direction of the end effector 4 falls from the processing execution object OBJ_tgt. Even in this case, the rotational movement of the end effector 4 may result in a non-processing execution object OBJ_ntgt that has moved in a direction different from the rotation direction of the end effector 4 falling from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt that moves in a direction different from the direction in which the end effector 4 exists falls from the processing execution object OBJ_tgt, as shown in FIG. 12.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt that moves in a direction opposite to the direction in which the end effector 4 exists falls from the processing execution object OBJ_tgt, as shown in FIG. 12.
- FIG. 12 In the example shown in FIG.
- the end effector 4 exists on the -Y side and/or +Z side with respect to the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt that moves in the +Y side and/or -Z side falls from the processing execution object OBJ_tgt.
- the signal generating unit 312 does not have to generate a robot control signal for controlling the robot 1 so that a non-processing execution object OBJ_ntgt that has moved in a direction different from the direction in which the end effector 4 exists falls from the processing execution object OBJ_tgt.
- the end effector 4 may rotate and move, so that a non-processing execution object OBJ_ntgt that has moved in a direction different from the direction in which the end effector 4 exists falls from the processing execution object OBJ_tgt.
- a robot control signal may be generated to control at least one of the robot 1 and the end effector 4 so as to drop both the non-processing execution object OBJ_ntgt indirectly held by the end effector 4 and the processing execution object OBJ_tgt directly held by the end effector 4 into the container CB, as shown in FIG. 13.
- the signal generating unit 312 may generate a robot control signal to control at least one of the robot 1 and the end effector 4 so as to drop the group of objects to be held OBG_h held by the end effector 4 into the container CB, as shown in FIG. 13.
- the signal generating unit 312 may generate a robot control signal for controlling the end effector 4 so that the end effector 4 releases the processing object OBJ_tgt by weakening the holding force with which the end effector 4 holds the processing object OBJ_tgt.
- the processing object OBJ_tgt falls from the end effector 4, and the non-processing object OBJ_ntgt held by the processing object OBJ_tgt also falls. Note that since weakening the holding force of the end effector 4 has already been explained, a detailed explanation will be omitted.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the process execution object OBJ_tgt falls from the end effector 4 by moving the end effector 4 (e.g., moving it in a translational manner and/or moving it in a rotational manner).
- the process execution object OBJ_tgt falls from the end effector 4
- the non-processing execution object OBJ_ntgt held by the process execution object OBJ_tgt also falls.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 vibrates to cause the process execution object OBJ_tgt to fall from the end effector 4 (as a result, the non-processing execution object OBJ_ntgt also falls).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 swings to cause the process execution object OBJ_tgt to fall from the end effector 4 (as a result, the non-process execution object OBJ_ntgt also falls).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the process execution object OBJ_tgt falls from the end effector 4 due to friction between the process execution object OBJ_tgt and the other object (as a result, the non-process execution object OBJ_ntgt also falls) by moving the end effector 4 so that the process execution object OBJ_tgt comes into contact with another object (e.g., the container CB and the target object OBJ contained in the container CB).
- another object e.g., the container CB and the target object OBJ contained in the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 weakens the holding force for holding the processing execution object OBJ_tgt and moves the end effector 4 (for example, by translating and/or rotating as described above) so that the processing execution object OBJ_tgt falls from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves the processing execution object OBJ_tgt without weakening the holding force for holding the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves the processing execution object OBJ_tgt while maintaining the holding force for holding the processing execution object OBJ_tgt, so that the end effector 4 moves the processing execution object OBJ_tgt so that the processing execution object OBJ_tgt falls from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 is moved (e.g., translated and/or rotated) to cause the non-processing execution object OBJ_ntgt to fall from the end effector 4, and then the processing execution object OBJ_tgt to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 is vibrated to cause the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt to fall from the end effector 4 in this order.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 is shaken to cause the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt to fall from the end effector 4 in this order.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the non-processing execution object OBJ_ntgt falls from the end effector 4 due to friction between the non-processing execution object OBJ_ntgt and the other object by moving the end effector 4 so that the non-processing execution object OBJ_ntgt comes into contact with another object (e.g., a container CB and a target object OBJ contained in the container CB), and then the process execution object OBJ_tgt falls from the end effector 4 due to friction between the process execution object OBJ_tgt and the other object by moving the end effector 4 so that the process execution object OBJ_tgt comes into contact with the other object (e.g., a container CB and a target object OBJ contained in the container CB).
- another object e.g., a container CB and a target object OBJ contained in the container CB
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to weaken the holding force with which the end effector 4 holds the non-processing execution object OBJ_ntgt and to move the end effector 4 (for example, by translating and/or rotating as described above) so that the non-processing execution object OBJ_ntgt falls from the end effector 4, and then the processing execution object OBJ_tgt falls from the end effector 4.
- the holding force (magnetic force) acting on the non-processing execution object OBJ_ntgt to hold the non-processing execution object OBJ_ntgt that the end effector 4 should not have held may be weaker than the holding force (magnetic force) acting on the processing execution object OBJ_tgt to hold the processing execution object OBJ_tgt that the end effector 4 should not have held.
- At least one of the relative positional relationship and orientation relationship between the end effector 4 and the non-processing execution object OBJ_ntgt that the end effector 4 should not have originally held is significantly different from at least one of the ideal positional relationship and orientation relationship for the end effector 4 to properly hold the target object OBJ
- at least one of the relative positional relationship and orientation relationship between the end effector 4 and the processing execution object OBJ_tgt that the end effector 4 should have originally held may be the same as at least one of the ideal positional relationship and orientation relationship for the end effector 4 to properly hold the target object OBJ.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 is moved without weakening the holding force with which the end effector 4 holds the non-processing execution object OBJ_ntgt, causing the non-processing execution object OBJ_ntgt to fall from the end effector 4, and then the processing execution object OBJ_tgt to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 is moved while maintaining the holding force with which the end effector 4 holds the non-processing execution object OBJ_ntgt, causing the non-processing execution object OBJ_ntgt to fall from the end effector 4, and then the processing execution object OBJ_tgt to fall from the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop all of the multiple non-processing execution objects OBJ_ntgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop some of the multiple non-processing execution objects OBJ_ntgt into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds a portion of the non-processing execution objects OBJ_ntgt while dropping another portion of the non-processing execution objects OBJ_ntgt held by the end effector 4 into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop multiple non-processed execution objects OBJ_ntgt into the container CB together.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop multiple non-processed execution objects OBJ_ntgt into the container CB together in a manner similar to the method of generating a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop a single non-processed execution object OBJ_ntgt into the container CB described above.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop the multiple non-processed execution objects OBJ_ntgt one by one in sequence into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop one non-processed execution object OBJ_ntgt of the multiple non-processed execution objects OBJ_ntgt individually into the container CB in a manner similar to the method for generating a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop the single non-processed execution object OBJ_ntgt into the container CB described above.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 to individually drop another non-processed execution object OBJ_ntgt, which is different from one non-processed execution object OBJ_ntgt among the multiple non-processed execution objects OBJ_ntgt, into the container CB in a manner similar to the method for generating a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop the single non-processed execution object OBJ_ntgt described above into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt#2 falls from the non-processing execution object OBJ_ntgt#1, and then the non-processing execution object OBJ_ntgt#1 falls from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a first robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt#2 falls from the non-processing execution object OBJ_ntgt#1, and a second robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt#1 falls from the processing execution object OBJ_tgt.
- the signal generating unit 312 may generate a first robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt#2 falls individually from the non-processing execution object OBJ_ntgt#1 to the container CB in a manner similar to the method of generating a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the single non-processing execution object OBJ_ntgt falls into the container CB described above.
- the signal generating unit 312 may generate a second robot control signal, separately from the first robot control signal, for controlling at least one of the robot 1 and the end effector 4 to individually drop the non-processing execution object OBJ_ntgt#1 from the processing execution object OBJ_tgt into the container CB in a manner similar to the method for generating a robot control signal for controlling at least one of the robot 1 and the end effector 4 to drop the single non-processing execution object OBJ_ntgt into the container CB described above.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop the non-processing execution object OBJ_ntgt into the container CB while holding all of the multiple processing execution objects OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop another part of the multiple processing execution objects OBJ_tgt held by the end effector 4 into the container CB while the end effector 4 holds a part of the multiple processing execution objects OBJ_tgt.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so as to drop all of the multiple processing execution objects OBJ_tgt held by the end effector 4 into the container CB.
- the signal generating unit 312 then outputs the robot control signal generated in step S24 to the robot 1 (particularly , the robot control device 13) using the communication device 33.
- the robot control device 13 controls at least one of the operation of the robot 1 (e.g., the operation of the robot arm 12) and the operation of the end effector 4 based on the robot control signal.
- the robot control device 13 controls at least one of the operation of the robot 1 (e.g., the operation of the robot arm 12) and the operation of the end effector 4 based on the robot control signal so that at least the non-processing execution object OBJ_ntgt falls into the container CB.
- the imaging device 21 located at the first camera position may move to a second camera position higher than the first camera position, as described above with reference to FIGS. 7(a) to 7(b).
- the end effector 4 located at the first tool position may move to a second tool position higher than the first tool position, as described above with reference to FIGS. 7(a) to 7(b).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 approaches the container CB from the second tool position (particularly, approaches at least one target object OBJ contained in the container CB).
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 located at the second tool position approaches the container CB (particularly, approaches at least one target object OBJ contained in the container CB) before control of the operation of the robot 1 is started based on the robot control signal generated in step S24 so that at least the non-processing execution object OBJ_ntgt falls into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves to a third tool position that is lower than the second tool position.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the end effector 4 moves to a third tool position that is closer to the container CB (particularly, closer to at least one target object OBJ contained in the container CB) than the second tool position. Thereafter, control of the operation of the robot 1 may be started based on the robot control signal generated in step S24 so that at least the non-processing execution object OBJ_ntgt falls into the container CB. In this case, the drop position from which at least the non-processing execution object OBJ_ntgt starts to drop into the container CB becomes lower.
- the non-processing execution object OBJ_ntgt drops into the container CB from a drop position lower than the drop position (not shown) corresponding to the second tool position (i.e., a drop position corresponding to the third tool position which is lower than the second tool position).
- the impact of the non-processing execution object OBJ_ntgt dropping into the container CB becomes smaller. This reduces the possibility of damage to the dropped non-processing execution object OBJ_ntgt or other target objects OBJ onto which the non-processing execution object OBJ_ntgt has dropped.
- the group of objects to be held OBG_h held by the end effector 4 also moves from the second object position corresponding to the second tool position to the third object position corresponding to the third tool position (i.e., the third object position is lower than the second object position and therefore closer to the container CB than the second object position).
- the non-processing execution object OBJ_ntgt may be considered to fall into the container CB from the third object position lower than the second object position.
- the imaging system 2 moving together with the end effector 4 also moves from the second camera position corresponding to the second tool position to the third camera position corresponding to the third tool position (i.e., the third camera position is lower than the second camera position and therefore closer to the container CB than the second camera position).
- the non-processing execution object OBJ_ntgt may be considered to fall into the container CB from a third camera position that is lower than the second camera position.
- the erroneous holding detection unit 313 determines whether or not at least the non-processed execution object OBJ_ntgt has fallen into the container CB (step S31). For example, during the period in which the operation of the robot 1 is controlled based on the robot control signal generated in step S24, the erroneous holding detection unit 313 may determine whether or not at least the non-processed execution object OBJ_ntgt has fallen into the container CB.
- the erroneous holding detection unit 313 may determine whether or not at least the non-processed execution object OBJ_ntgt has fallen into the container CB.
- the imaging device 21 may image an area in which the target object OBJ held by the end effector 4 exists when it is assumed that the end effector 4 is holding the target object OBJ.
- the imaging device 21 may image an area in which the target object OBJ held by the end effector 4 exists when it is assumed that the end effector 4 is holding the target object OBJ by imaging at least a part of the end effector 4 (particularly, the part of the end effector 4 that holds the target object OBJ).
- the imaging device 21 may image the end effector 4 from which the processing object OBJ_tgt has fallen. In other words, the imaging device 21 may image an end effector 4 that is not holding the processing object OBJ_tgt.
- the imaging device 21 may image the processing execution object OBJ_tgt held by the end effector 4. If the non-processing execution object OBJ_ntgt has fallen from the end effector 4, the imaging device 21 may image the end effector 4 from which the non-processing execution object OBJ_ntgt has fallen.
- the imaging device 21 may image the end effector 4 that does not hold the non-processing execution object OBJ_ntgt.
- the imaging device 21 may image the non-processing execution object OBJ_ntgt held by the end effector 4. Thereafter, the erroneous holding detection unit 313 of the control device 3 may use the communication device 33 to acquire the image data IMG generated by the imaging device 21 imaging the end effector 4.
- the erroneous holding detection unit 313 determines whether or not at least the non-processing execution object OBJ_ntgt has fallen into the container CB based on the image data IMG.
- the erroneous holding detection unit 313 may calculate the number of target objects OBJ actually held by the end effector 4 by controlling the position and orientation calculation unit 311 to perform a matching process (e.g., object detection process) based on the image data IMG.
- the erroneous holding detection unit 313 may calculate at least one of the position and orientation of the target object OBJ actually held by the end effector 4 by controlling the position and orientation calculation unit 311 to perform a matching process based on the image data IMG.
- the erroneous holding detection unit 313 may calculate the number of target objects OBJ actually held by the end effector 4 based on at least one of the calculation results of the position and the orientation of the target objects OBJ actually held by the end effector 4.
- the matching process itself performed in step S31 may be the same as the matching process performed in steps S12 and S22. After that, the erroneous holding detection unit 313 may determine whether at least the non-processing execution object OBJ_ntgt has fallen into the container CB based on the number of target objects OBJ actually held by the end effector 4.
- the erroneous holding detection unit 313 may determine whether the number of target objects OBJ actually held by the end effector 4 is the same as a predetermined number of held objects, which is the number of target objects OBJ that the end effector 4 should actually hold (i.e., the number of processing objects OBJ_tgt that the end effector 4 should actually hold).
- step S31 whether the number of target objects OBJ actually held by the end effector 4 is the same as the predetermined number of held objects may be the same as the process of determining in step S22 whether the number of target objects OBJ actually held by the end effector 4 is the same as the predetermined number of held objects.
- the process of determining in step S31 whether the number of target objects OBJ actually held by the end effector 4 is the same as the predetermined number of held objects may be the same as the process of determining in step S22 whether the number of target objects OBJ actually held by the end effector 4 is the same as the predetermined number of held objects.
- the non-processing object OBJ_ntgt held by the end effector 4 has fallen, and the end effector 4 is still holding the processing object OBJ_tgt.
- the erroneous holding detection unit 313 may determine that the non-processing object OBJ_ntgt has fallen into the container CB.
- the erroneous holding detection unit 313 may determine that at least one non-processing execution object OBJ_ntgt has not fallen into the container CB (specifically, there remains a non-processing execution object OBJ_ntgt that has not fallen into the container CB).
- the erroneous holding detection unit 313 may determine whether or not the number of target objects OBJ actually held by the end effector 4 is zero. In this case, if the number of target objects OBJ actually held by the end effector 4 is zero, it is highly likely that both the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt held by the end effector 4 have fallen.
- the erroneous holding detection unit 313 may determine that the process execution object OBJ_tgt and the non-process execution object OBJ_ntgt have fallen into the container CB.
- the erroneous holding detection unit 313 may determine that at least one of the process execution object OBJ_tgt and the non-process execution object OBJ_ntgt has not fallen into the container CB (specifically, at least one of the process execution object OBJ_tgt and the non-process execution object OBJ_ntgt that has not fallen into the container CB remains).
- the erroneous holding detection unit 313 may calculate at least one of the position and orientation of the target object OBJ actually held by the end effector 4 by controlling the position and orientation calculation unit 311 to perform matching processing based on the image data IMG. Furthermore, the erroneous holding detection unit 313 may calculate at least one of the position and orientation of the end effector 4 by controlling the position and orientation calculation unit 311 to perform matching processing based on the image data IMG.
- the matching processing itself for calculating at least one of the position and orientation of the end effector 4 in step S31 may be the same as the matching processing for identifying the holding mode of the non-processed execution object OBJ_ntgt by the end effector 4 in the above-mentioned step S23.
- the erroneous holding detection unit 313 may determine whether or not at least the non-processing execution object OBJ_ntgt has dropped into the container CB based on at least one of the calculation results of the position and orientation of the target object OBJ actually held by the end effector 4 and at least one of the calculation results of the position and orientation of the end effector 4.
- the erroneous holding detection unit 313 may determine that at least the non-processing execution object OBJ_ntgt has dropped into the container CB.
- the erroneous holding detection unit 313 may determine that at least the non-processing execution object OBJ_ntgt has not fallen into the container CB.
- step S31 If it is determined in step S31 that at least the non-processing execution object OBJ_ntgt has not fallen into the container CB (step S31: No), the erroneous holding detection unit 313 may control the output device 35 to output an alert to notify the user (operator) of the robot system SYS that at least the non-processing execution object OBJ_ntgt could not be dropped into the container CB (step S32).
- the control device 3 may temporarily suspend the robot control process shown in FIG. 5.
- the user may manually return the non-processing execution object OBJ_ntgt that did not fall from the end effector 4 to the container CB.
- the temporarily suspended robot control process may be resumed.
- the end effector 4 may perform a release process to release the processing execution object OBJ_tgt held by the end effector 4 (step S33).
- the erroneous holding detection unit 313 does not need to output an alert to notify the user (operator) of the robot system SYS that at least the non-processing execution object OBJ_ntgt could not be dropped into the container CB.
- step S31 if it is determined in step S31 that at least the non-processing object OBJ_ntgt has fallen into the container CB (step S31: Yes), the erroneous holding detection unit 313 does not need to control the output device 35 to output an alert.
- the end effector 4 may perform a release process to release the processing object OBJ_tgt held by the end effector 4 (step S33). For example, as described above, the processing object OBJ_tgt held by the end effector 4 may be transported out of the container CB, and the processing object OBJ_tgt held by the end effector 4 may be released outside the container CB.
- the end effector 4 when at least one of the robot 1 and the end effector 4 is controlled so that both the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt fall into the container CB, the end effector 4 does not hold any target object OBJ. In this case, the end effector 4 does not perform the release process, and the control device 3 may perform the series of processes from step S11 to step S33 again (however, the process of step S32 and the process of step S33 are performed exclusively). In other words, the imaging device 21 may newly capture some of the multiple target objects OBJ contained in the container CB, and the control device 3 may newly acquire image data IMG from the imaging device 21.
- the signal generation unit 312 may generate a robot control signal for controlling the robot 1 so that the imaging device 21 captures some of the multiple target objects OBJ contained in the container CB.
- the robot 1 may move the robot arm 12 so that the imaging device 21 captures an image of some of the target objects OBJ contained in the container CB based on a robot control signal generated by the signal generation unit 312.
- the robot 1 may move the robot arm 12 so that the imaging device 21 captures an image of some of the target objects OBJ contained in the container CB based on another robot control method such as teaching.
- the control device 3 may perform again the series of processes from step S12 to step S33 (however, the process of step S32 and the process of step S33 are performed exclusively) using the image data IMG newly acquired in step S11.
- the imaging device 21 may not need to re-image some of the multiple target objects OBJ contained in the container CB.
- the position and orientation calculation unit 311 may select one target object OBJ that has not yet been selected as the processing execution object OBJ_tgt from among the multiple target objects OBJ whose matching similarity exceeds the matching judgment threshold as a new processing execution object OBJ_tgt. Thereafter, the signal generation unit 312 may generate a robot control signal so that a predetermined process can be performed on the newly selected processing execution object OBJ_tgt (step S13). Thereafter, the control device 3 may perform the series of processes from step S21 to step S33 again (however, the processes of step S32 and step S33 are performed exclusively).
- step S32 After that, after an alert is output (step S32) or after the processing execution object OBJ_tgt is released (step S33), the control device 3 repeats a series of processes from step S11 to step S33 (however, the processes of step S32 and step S33 are performed exclusively) until there are no more target objects OBJ in the container CB for which the end effector 4 should perform a predetermined process (step S41). However, if multiple target objects OBJ whose matching similarity exceeds the matching judgment threshold have been detected based on the already acquired image data IMG in the above-mentioned step S12, the control device 3 does not need to re-acquire the image data IMG in step S11.
- the imaging device 21 does not need to re-image some of the multiple target objects OBJ contained in the container CB in step S11.
- the position and orientation calculation unit 311 may select one target object OBJ that has not yet been selected as the processing execution object OBJ_tgt from among the multiple target objects OBJ whose matching similarity exceeds the matching judgment threshold as a new processing execution object OBJ_tgt.
- the signal generation unit 312 may generate a robot control signal so that a predetermined process can be performed on the newly selected processing execution object OBJ_tgt (step S13).
- the control device 3 may perform the series of processes from step S21 to step S33 again (however, the process of step S32 and the process of step S33 are performed exclusively).
- the control device 3 can control at least one of the robot 1 and the end effector 4 so that at least the non-processing object OBJ_ntgt falls (i.e., returns) into the container CB. Therefore, the control device 3 can switch the state of the end effector 4 from an abnormal state in which the end effector 4 holds the non-processing object OBJ_ntgt together with the processing object OBJ_tgt to a normal state in which the end effector 4 holds the processing object OBJ_tgt without holding the non-processing object OBJ_ntgt. Therefore, the control device 3 can control the robot 1 so that the end effector 4 appropriately holds the processing object OBJ_tgt.
- the end effector 4 is holding a non-processing object OBJ_ntgt
- a release process is performed to release the processing object OBJ_tgt held by the end effector 4 to a desired position outside the container CB
- the non-processing object OBJ_ntgt held by the end effector 4 together with the processing object OBJ_tgt may become an obstacle to the release process.
- the processing object OBJ_tgt when the processing object OBJ_tgt is released to a desired position outside the container CB, the processing object OBJ_tgt may interfere with the non-processing object OBJ_ntgt, and the processing object OBJ_tgt may be released to a position different from the desired position.
- the non-processing object OBJ_ntgt may collide with an object (e.g., placement device T) from which the processing object OBJ_tgt is to be released, damaging the object (e.g., placement device T) from which the processing object OBJ_tgt is to be released.
- an object e.g., placement device T
- the non-processing object OBJ_ntgt falls (i.e., returns) into the container CB, such a technical problem does not occur. Therefore, the end effector 4 can appropriately place the processing object OBJ_tgt that it holds at a desired position outside the container CB.
- the robot control process shown in FIG. 5 is temporarily interrupted, and then the user must manually return the non-processing execution object OBJ_ntgt that did not fall from the end effector 4 to the container CB, and then resume the temporarily interrupted robot control process.
- This may result in a deterioration in the throughput of the robot control process. In other words, the takt time of the robot control process may become longer.
- the deterioration in throughput i.e., the increase in takt time
- control device 3 can control at least one of the robot 1 and the end effector 4 so that at least the non-processing execution object OBJ_ntgt falls (i.e., returns) into the container CB based on at least one calculation result of the position and posture of the target object OBJ (e.g., the group of held target objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt) held by the end effector 4 as an example of a holding state.
- the target object OBJ e.g., the group of held target objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt
- control device 3 can generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 in a control manner that takes into account at least one calculation result of the position and posture of the non-processing execution object OBJ_ntgt, whose position and/or posture is known, so as to drop the non-processing execution object OBJ_ntgt into the container CB.
- the control device 3 can generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 in a control mode that takes into consideration at least one calculation result of the position and orientation of the processing execution object OBJ_tgt so that the non-processing execution object OBJ_ntgt falls appropriately (for example, reliably) into the container CB from the processing execution object OBJ_tgt whose position and/or orientation is known.
- the position and orientation of the target object OBJ (for example, the group of held objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt) held by the end effector 4 is not known, it is not possible to control at least one of the robot 1 and the end effector 4 in a control mode that takes into consideration at least one calculation result of the position and orientation of the target object OBJ held by the end effector 4, and therefore the control mode for dropping at least the non-processing execution object OBJ_ntgt may become a control mode that is left to chance in a sense.
- the control device 3 can adopt, as at least one control mode of the robot 1 and the end effector 4, a control mode that increases the likelihood that at least the non-processing execution object OBJ_ntgt will fall appropriately (e.g., reliably) into the container CB based on at least one calculation result of the position and orientation of the target object OBJ (e.g., the group of held objects OBG_h, the non-processing execution object OBJ_ntgt, or the processing execution object OBJ_tgt) held by the end effector 4. Therefore, the control device 3 can drop at least the non-processing execution object OBJ_ntgt appropriately into the container CB.
- a control mode that increases the likelihood that at least the non-processing execution object OBJ_ntgt will fall appropriately (e.g., reliably) into the container CB based on at least one calculation result of the position and orientation of the target object OBJ (e.g., the group of held objects OBG_h, the non-
- the erroneous holding detection unit 313 may control the drop height Hd indicating the height (i.e., the position in the Z-axis direction) at which at least the non-processing execution object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean a height from a predetermined height reference plane (i.e., a distance in the Z-axis direction).
- a predetermined height reference plane i.e., a distance in the Z-axis direction.
- the drop height Hd may mean the Z-axis coordinate value in the global coordinate system.
- the drop height Hd may mean the height from the coordinate origin of the global coordinate system.
- the drop height Hd may mean the Z-axis coordinate value in a coordinate system (e.g., a robot coordinate system) other than the global coordinate system.
- the drop height Hd may mean the height from the coordinate origin of a coordinate system (e.g., a robot coordinate system) other than the global coordinate system.
- the falling height Hd may mean the height of either the non-processing object OBJ_ntgt or the processing object OBJ_tgt at the time when at least the non-processing object OBJ_ntgt starts to fall into the container CB (in other words, the time when at least the non-processing object OBJ_ntgt falls into the container CB, the same below).
- the time when at least the non-processing object OBJ_ntgt starts to fall into the container CB may mean “the time when the non-processing object OBJ_ntgt starts to fall into the container CB.”
- the point in time when at least the non-processing execution object OBJ_ntgt starts to fall into the container CB may mean "the point in time when only the non-processing execution object OBJ_ntgt starts to fall into the container CB" or "the point in time when both the non-processing
- the fall height Hd may be the height of the non-processed object OBJ_ntgt and the processed object OBJ_tgt at least when the non-processed object OBJ_ntgt starts to fall into the container CB. More specifically, the fall height Hd may be a height determined based on the height of the non-processed object OBJ_ntgt and the processed object OBJ_tgt at least when the non-processed object OBJ_ntgt starts to fall into the container CB.
- the fall height Hd may mean the average value (i.e., the intermediate height) of the height of the non-processed object OBJ_ntgt at least when the non-processed object OBJ_ntgt starts to fall into the container CB and the height of the processed object OBJ_tgt at least when the non-processed object OBJ_ntgt starts to fall into the container CB.
- the drop height Hd may mean the higher of the height of the non-processing object OBJ_ntgt when the non-processing object OBJ_ntgt starts to drop into the container CB and the height of the processing object OBJ_tgt when the non-processing object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean the lower of the height of the non-processing object OBJ_ntgt when the non-processing object OBJ_ntgt starts to drop into the container CB and the height of the processing object OBJ_tgt when the non-processing object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean any height between at least the height of the non-processed object OBJ_ntgt when the non-processed object OBJ_ntgt starts to drop into the container CB and at least the height of the processed object OBJ_tgt when the non-processed object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean the height of the non-processing object OBJ_ntgt and the object other than the processing object OBJ_tgt when the non-processing object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean the height of the imaging system 2 (particularly, the imaging device 21) when the non-processing object OBJ_ntgt starts to drop into the container CB.
- the drop height Hd may mean the height of the end effector 4 when the non-processing object OBJ_ntgt starts to drop into the container CB.
- the height of the end effector 4 may mean the height of the reference point TCP of the end effector 4 (for example, the above-mentioned tool center point or a point set on the end effector 4 by the user), or may mean the height of any part of the end effector 4.
- the drop height Hd may mean the height of the robot arm 12 at least when the non-processing execution object OBJ_ntgt starts to drop into the container CB.
- the height of the robot arm 12 may be the height of the flange of the robot arm 12 (the part where the end effector 4 is attached to the robot arm 12).
- the erroneous holding detection unit 313 may use an object height Ho, which is the height of the multiple target objects OBJ contained in the container CB, as shown in Fig. 14. That is, the erroneous holding detection unit 313 may control the drop height Hd by setting (in other words, determining) the drop height Hd based on the object height Ho.
- object height Ho may mean the height from a predetermined height reference plane (i.e., the distance in the Z-axis direction), similar to the drop height Hd described above.
- object height Ho may mean the Z-axis coordinate value in the global coordinate system.
- object height Ho may mean the height from the coordinate origin of the global coordinate system.
- object height Ho may mean the Z-axis coordinate value in a coordinate system (e.g., a robot coordinate system) different from the global coordinate system.
- object height Ho may mean the height from the coordinate origin of a coordinate system (e.g., a robot coordinate system) different from the global coordinate system.
- the object height Ho may mean the height of the target object group OBG_cb that includes all of the multiple target objects OBJ contained in the container CB.
- the object height Ho may mean the height of the target object group OBG_cb that includes some of the multiple target objects OBJ contained in the container CB.
- the object height Ho may mean the height of the target object group OBG_cb that includes at least some of the multiple target objects OBJ contained in the container CB.
- the height of the highest part in the target object group OBG_cb may be used as the object height Ho.
- the height of one target object OBJ located at the highest position among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the height of the highest part of one target object OBJ located at the highest position among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the height of any part of one target object OBJ located at the highest position among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the height of the highest part of a portion of the target object group OBG_cb may be used as the object height Ho.
- the height of at least one target object OBJ selected according to a desired selection criterion from among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the height of the highest part of at least one target object OBJ selected according to a desired selection criterion from among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the height of an arbitrary part of at least one target object OBJ selected according to a desired selection criterion from among the multiple target objects OBJ included in the target object group OBG_cb may be used as the object height Ho.
- the average height of the target object group OBG_cb may be used as the object height Ho.
- the average height of the target object group OBG_cb may mean the average value of the heights of multiple parts of the target object group OBG_cb.
- the average height of the target object group OBG_cb may mean the average value of the heights of multiple target objects OBJ included in the target object group OBG_cb.
- the average height of the target object group OBG_cb may mean the average value of the heights of some target objects OBJ (i.e., some target objects OBJ located in the top layer) among the multiple target objects OBJ included in the target object group OBG_cb that have no other target objects OBJ stacked on top of them.
- the average height of the target object group OBG_cb may mean the average value of the heights of some target objects OBJ (i.e., some target objects OBJ located in the top layer) of the multiple target objects OBJ included in the target object group OBG_cb, at least a portion of the upper part of which is exposed upward.
- the average height of a portion of the target object group OBG_cb may be used as the object height Ho.
- the average height of a portion of the target object group OBG_cb may mean the average value of the height of at least one target object OBJ selected according to a desired selection criterion from among the multiple target objects OBJ included in the target object group OBG_cb.
- the erroneous holding detection unit 313 may set the drop height Hd based on the object height Ho such that the drop height Hd used when the object height Ho is a first height is lower than the drop height Hd used when the object height Ho is a second height higher than the first height. In other words, the erroneous holding detection unit 313 may determine the drop height Hd based on the object height Ho such that the drop height Hd used when the object height Ho is a first height is higher than the drop height Hd used when the object height Ho is a third height lower than the first height.
- the erroneous holding detection unit 313 may set the drop height Hd based on the object height Ho such that the drop height Hd becomes lower as the object height Ho becomes lower.
- the erroneous holding detection unit 313 may set the drop height Hd based on the object height Ho such that the drop height Hd becomes higher as the object height Ho becomes higher.
- FIG. 15(a) An example of the drop height Hd set based on the object height Ho is shown in Figures 15(a) and 15(b).
- Figure 15(a) shows an example in which the end effector 4 holds a non-processing object OBJ_ntgt#1 together with a processing object OBJ_tgt#1.
- Figure 15(a) shows an example in which a target object group _cb#1 is contained in the container CB at the time when the end effector 4 holds a non-processing object OBJ_ntgt#1 together with a processing object OBJ_tgt#1.
- the object height Ho of the target object group OBG_cb#1 is the first object height Ho#1.
- the erroneous holding detection unit 313 may set the drop height Hd to the first drop height Hd#1 based on the first object height Ho#1, which is the object height Ho of the target object group OBG_cb#1. For example, the erroneous holding detection unit 313 may set the drop height Hd to a first drop height Hd#1, which is a height calculated by adding a predetermined first margin height to the first object height Ho#1.
- the first margin height may be set in advance, or may be set when setting the drop height Hd.
- the first margin height may be set manually by the user, or may be set automatically by the control device 3.
- the erroneous holding detection unit 313 may generate a robot control signal based on the first drop height Hd#1.
- the signal generating unit 312 may generate a robot control signal so that the non-processed execution object OBJ_ntgt#1 is located at the first drop height Hd#1 at least when the non-processed execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the non-processed execution object OBJ_ntgt#1 is located at the Z position indicated by the first drop height Hd#1 at least when the non-processed execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the non-processed execution object OBJ_ntgt#1 and the first drop height Hd#1 becomes small (e.g., becomes zero).
- the position (particularly, Z position) of the non-processing execution object OBJ_ntgt#1 calculated to specify the holding state in step S23 of Fig. 5 may be used as the current height of the non-processing execution object OBJ_ntgt#1.
- the signal generating unit 312 may calculate (estimate) the current height of the non-processing execution object OBJ_ntgt#1 based on at least one of the position and posture of the end effector 4 calculated to specify the holding state in step S23 of Fig. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and posture of the reference point (e.g., tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the non-processing execution object OBJ_ntgt#1 based on the obtained information.
- the robot 1 moves the end effector 4 so that the non-processing execution object OBJ_ntgt#1 moves to the first drop height Hd#1. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the non-processing execution object OBJ_ntgt#1 moves to the first drop height Hd#1. Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#1 falls. As a result, at least the non-processing execution object OBJ_ntgt#1 falls from the first drop height Hd#1 (in other words, from the Z position indicated by the first drop height Hd#1).
- the signal generating unit 312 may generate a robot control signal so that the processing execution object OBJ_tgt#1 is located at the first drop height Hd#1 at least when the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the processing execution object OBJ_tgt#1 is located at the Z position indicated by the first drop height Hd#1 at least when the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the processing execution object OBJ_tgt#1 and the first drop height Hd#1 becomes small (e.g., becomes zero).
- the position (particularly, Z position) of the processing execution object OBJ_tgt#1 calculated to specify the holding state in step S23 of Fig. 5 may be used as the current height of the processing execution object OBJ_tgt#1.
- the signal generating unit 312 may calculate (estimate) the current height of the processing execution object OBJ_tgt#1 based on at least one of the position and the orientation of the end effector 4 calculated to specify the holding state in step S23 of Fig. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the processing execution object OBJ_tgt#1 based on the obtained information.
- the robot 1 moves the end effector 4 so that the processing execution object OBJ_tgt#1 moves to the first drop height Hd#1. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the process execution object OBJ_tgt#1 moves to the first drop height Hd#1.
- At least one of the robot 1 and the end effector 4 is controlled so that at least the non-process execution object OBJ_ntgt#1 falls.
- at least the non-process execution object OBJ_ntgt#1 falls when the process execution object OBJ_tgt#1 is located at the first drop height Hd#1 (in other words, the Z position indicated by the first drop height Hd#1).
- the state in which "the non-process execution object OBJ_ntgt#1 falls when the process execution object OBJ_tgt#1 is located at the first drop height Hd#1" may be considered equivalent to the state in which "the non-process execution object OBJ_ntgt#1 falls from the first drop height Hd#1.”
- the signal generating unit 312 may generate a robot control signal so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 coincides with the first drop height Hd#1 at least at the time when the non-processing execution object OBJ_ntgt#1 starts to fall into the container CB.
- the robot 1 moves the end effector 4 so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 coincides with the first drop height Hd#1. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 coincides with the first drop height Hd#1.
- the signal generating unit 312 may calculate the current heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 by using the position (particularly, Z position) of the non-processing execution object OBJ_ntgt#1 and the position (particularly, Z position) of the processing execution object OBJ_tgt#1 calculated to specify the holding state in step S23 of Fig. 5 as the current height of the non-processing execution object OBJ_ntgt#1 and the current height of the processing execution object OBJ_tgt#1, respectively.
- the signal generating unit 312 may calculate (estimate) the current heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 based on at least one of the position and the orientation of the end effector 4 calculated to specify the holding state in step S23 of Fig. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 based on the obtained information.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 and the first drop height Hd#1 becomes small (e.g., becomes zero). Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#1 falls.
- At least the non-processing execution object OBJ_ntgt#1 falls under a condition in which the height determined based on the heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 matches the first drop height Hd#1.
- the state in which "the non-processing execution object OBJ_ntgt#1 falls under a condition in which the height determined based on the heights of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 matches the first drop height Hd#1" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#1 falls from the first drop height Hd#1.”
- the signal generating unit 312 may generate a robot control signal so that the imaging system 2 is located at the first drop height Hd#1 at the time when at least the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the imaging system 2 is located at the Z position indicated by the first drop height Hd#1 at the time when at least the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may calculate the current height of the imaging system 2.
- the signal generating unit 312 may calculate (estimate) the current height of the imaging system 2 from at least one position (particularly, the Z position) of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may calculate (estimate) the current height of the imaging system 2 based on at least one of the position and the orientation of the end effector 4 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may acquire information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the imaging system 2 based on the acquired information. Thereafter, the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the imaging system 2 and the first drop height Hd#1 becomes small (e.g., becomes zero). As a result, the robot 1 moves the end effector 4 so that the imaging system 2 moves to the first drop height Hd#1.
- the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the imaging system 2 moves to the first drop height Hd#1. Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#1 falls. As a result, at least the non-processing execution object OBJ_ntgt#1 falls when the imaging system 2 is located at the first drop height Hd#1 (in other words, the Z position indicated by the first drop height Hd#1).
- the state in which "the non-processing execution object OBJ_ntgt#1 falls when the imaging system 2 is located at the first drop height Hd#1" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#1 falls from the first drop height Hd#1.”
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 is located at the first drop height Hd#1 at least when the non-processed execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 is located at the Z position indicated by the first drop height Hd#1 at least when the non-processed execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the end effector 4 and the first drop height Hd#1 becomes small (e.g., becomes zero).
- the position (particularly, the Z position) of the end effector 4 calculated to specify the holding state in step S23 of FIG. 5 may be used.
- the signal generating unit 312 may calculate (estimate) the current height of the end effector 4 based on at least one of the positions and orientations of at least one of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 calculated to specify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the end effector 4 based on the obtained information.
- the robot 1 moves the end effector 4 so that the end effector 4 moves to the first drop height Hd#1. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the end effector 4 moves to the first drop height Hd#1.
- at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#1 falls.
- the non-processing execution object OBJ_ntgt#1 falls when the end effector 4 is located at the first drop height Hd#1 (in other words, the Z position indicated by the first drop height Hd#1).
- the state in which "the non-processing execution object OBJ_ntgt#1 falls when the end effector 4 is located at the first drop height Hd#1" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#1 falls from the first drop height Hd#1.”
- the signal generating unit 312 may generate a robot control signal so that the robot arm 12 is located at the first drop height Hd#1 at the time when at least the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the robot arm 12 is located at the Z position indicated by the first drop height Hd#1 at the time when at least the non-processing execution object OBJ_ntgt#1 starts to drop into the container CB.
- the signal generating unit 312 may calculate the current height of the robot arm 12.
- the signal generating unit 312 may calculate (estimate) the current height of the robot arm 12 from at least one position (particularly the Z position) of the non-processing execution object OBJ_ntgt#1 and the processing execution object OBJ_tgt#1 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may calculate (estimate) the current height of the robot arm 12 based on at least one of the position and the posture of the end effector 4 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the posture of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the robot arm 12 based on the obtained information. Thereafter, the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the robot arm 12 and the first drop height Hd#1 becomes small (e.g., becomes zero). As a result, the robot 1 moves the end effector 4 so that the robot arm 12 moves to the first drop height Hd#1.
- the state in which "the non-processing execution object OBJ_ntgt#1 falls when the robot arm 12 is located at the first drop height Hd#1" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#1 falls from the first drop height Hd#1.”
- the end effector 4 After at least the non-processing object OBJ_ntgt#1 has fallen into the container CB, the end effector 4 newly holds the processing object OBJ_tgt#2, as shown in FIG. 15(b). In this case, as shown in FIG. 15(b), an example will be described in which the end effector 4 holds the non-processing object OBJ_ntgt#2 together with the processing object OBJ_tgt#2. Furthermore, FIG.
- 15(b) shows an example in which, at the point in time when the end effector 4 is holding the non-processing object OBJ_ntgt#2 together with the processing object OBJ_tgt#2, the target object group _cb#2 is contained in the container CB, and the object height Ho of the target object group OBG_cb#2 is the first object height Ho#2.
- Figure 15 (b) may be regarded as showing an example in which, after at least the non-processing execution object OBJ_ntgt#1 has fallen into the container CB, the end effector 4 holds another processing execution object OBJ_tgt newly selected from the multiple target objects OBJ contained in the container CB and holds the held other processing execution object OBJ_tgt outside the container CB without ever performing a placement process.
- FIG. 15 (b) may be regarded as showing an example in which, after at least the non-processing execution object OBJ_ntgt#1 has fallen into the container CB, the end effector 4 holds another processing execution object OBJ_tgt newly selected from the multiple target objects OBJ contained in the container CB and holds the held other processing execution object OBJ_tgt outside the container CB without ever performing a placement process.
- 15(b) may be considered to show an example in which, after at least the non-processing object OBJ_ntgt#1 falls into the container CB, the end effector 4 holds another processing object OBJ_tgt newly selected from the multiple target objects OBJ contained in the container CB, and then performs at least one placement process to release the held other processing object OBJ_tgt out of the container CB, and then holds the non-processing object OBJ_ntgt#2 together with the processing object OBJ_tgt#2.
- the target object group OBG_cb#2 may be different from the target object group OBG_cb#1. For example, after at least the non-processing execution object OBJ_ntgt#1 has fallen into the container CB, and after a placement process has been performed at least once to hold another processing execution object OBJ_tgt newly selected from the multiple target objects OBJ contained in the container CB and release the held other processing execution object OBJ_tgt out of the container CB, if the end effector 4 holds the non-processing execution object OBJ_ntgt#2 together with the processing execution object OBJ_tgt#2, at least one target object OBJ included in the target object group OBG_cb#1 has been carried out of the container CB.
- At least one target object OBJ included in the target object group OBG_cb#1 does not have to be included in the target object group OBG_cb#2.
- the end effector 4 holds the non-processing object OBJ_ntgt#2 together with the processing object OBJ_tgt#2 without any placement processing having been performed after at least the non-processing object OBJ_ntgt#1 has fallen into the container CB
- at least one of the processing object OBJ_tgt#2 and the non-processing object OBJ_ntgt#2 is a target object OBJ that was included in the target object group OBG_cb#1. Therefore, even in this case, at least one of the target objects OBJ that was included in the target object group OBG_cb#1 does not have to be included in the target object group OBG_cb#2.
- the number of target objects OBJ included in the target object group OBG_cb#2 is likely to be less than the number of target objects OBJ included in the target object group OBG_cb#1.
- the second object height Ho#2 which is the object height Ho#2 of the target object group OBG_cb#2
- the second object height Ho#1 which is the object height Ho#2 of the target object group OBG_cb#2.
- the erroneous holding detection unit 313 may set the drop height Hd to a second drop height H#2 lower than the first drop height Hd#1 based on the second object height Ho#2, which is the object height Ho of the target object group OBG_cb#2. For example, the erroneous holding detection unit 313 may set the drop height Hd to a second drop height Hd#2, which is a height calculated by adding a predetermined second margin height to the second object height Ho#2.
- the second margin height may be set in advance or may be set when the drop height Hd is set.
- the second margin height may be set manually by the user or automatically by the control device 3.
- the second margin height used to set the second drop height Hd#2 may be the same as or different from the above-mentioned first margin height used to set the first drop height Hd#1.
- a common margin height that can be used as each of the first and second margin heights may be set.
- the common margin height may be set in advance or may be set when the drop height Hd is set.
- the common margin height may be set manually by the user or automatically by the control device 3.
- the erroneous holding detection unit 313 may then generate a robot control signal based on the second drop height Hd#2.
- the signal generating unit 312 may generate a robot control signal so that the non-processed execution object OBJ_ntgt#2 is located at the second drop height Hd#2 at least when the non-processed execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the non-processed execution object OBJ_ntgt#2 is located at the Z position indicated by the second drop height Hd#2 at least when the non-processed execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the non-processed execution object OBJ_ntgt#2 and the second drop height Hd#2 becomes small (e.g., becomes zero).
- the position (particularly, the Z position) of the non-processing execution object OBJ_ntgt#2 calculated to specify the holding state in step S23 of Fig. 5 may be used.
- the signal generating unit 312 may calculate (estimate) the current height of the non-processing execution object OBJ_ntgt#2 based on at least one of the position and the orientation of the end effector 4 calculated to specify the holding state in step S23 of Fig. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the non-processing execution object OBJ_ntgt#2 based on the obtained information.
- the robot 1 moves the end effector 4 so that the non-processing execution object OBJ_ntgt#2 moves to the second drop height Hd#2. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the non-processing execution object OBJ_ntgt#2 moves to the second drop height Hd#2. Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#2 falls. As a result, at least the non-processing execution object OBJ_ntgt#2 falls from the second drop height Hd#2 (in other words, from the Z position indicated by the second drop height Hd#2).
- the signal generating unit 312 may generate a robot control signal so that the processing execution object OBJ_tgt#2 is located at the second drop height Hd#2 at least when the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the processing execution object OBJ_tgt#2 is located at the Z position indicated by the second drop height Hd#2 at least when the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the processing execution object OBJ_tgt#2 and the second drop height Hd#2 becomes small (e.g., becomes zero).
- the position (particularly, Z position) of the processing execution object OBJ_tgt#2 calculated to specify the holding state in step S23 of FIG. 5 may be used as the current height of the processing execution object OBJ_tgt#2.
- the signal generating unit 312 may calculate (estimate) the current height of the processing execution object OBJ_tgt#2 based on at least one of the position and the orientation of the end effector 4 calculated to specify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the processing execution object OBJ_tgt#2 based on the obtained information.
- the robot 1 moves the end effector 4 so that the processing execution object OBJ_tgt#2 moves to the second drop height Hd#2. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the process execution object OBJ_tgt#2 moves to the second drop height Hd#2.
- At least one of the robot 1 and the end effector 4 is controlled so that at least the non-process execution object OBJ_ntgt#2 falls.
- at least the non-process execution object OBJ_ntgt#2 falls when the process execution object OBJ_tgt#2 is located at the second drop height Hd#2 (in other words, the Z position indicated by the second drop height Hd#2).
- the state in which "the non-process execution object OBJ_ntgt#2 falls when the process execution object OBJ_tgt#2 is located at the second drop height Hd#2" may be considered equivalent to the state in which "the non-process execution object OBJ_ntgt#2 falls from the second drop height Hd#2.”
- the signal generating unit 312 may generate a robot control signal so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 coincides with the second drop height Hd#2 at least at the time when the non-processing execution object OBJ_ntgt#2 starts to fall into the container CB.
- the robot 1 moves the end effector 4 so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 coincides with the second drop height Hd#2. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the height determined based on the heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 coincides with the second drop height Hd#2.
- the signal generating unit 312 may calculate the current heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 by using the position (particularly, Z position) of the non-processing execution object OBJ_ntgt#2 and the position (particularly, Z position) of the processing execution object OBJ_tgt#2 calculated to specify the holding state in step S23 of Fig. 5 as the current height of the non-processing execution object OBJ_ntgt#2 and the current height of the processing execution object OBJ_tgt#2, respectively.
- the signal generating unit 312 may calculate (estimate) the current heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 based on at least one of the position and the orientation of the end effector 4 calculated to specify the holding state in step S23 of Fig. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 based on the obtained information.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 and the second drop height Hd#2 becomes small (e.g., becomes zero). Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#2 falls.
- At least the non-processing execution object OBJ_ntgt#2 falls under a condition in which the height determined based on the heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 coincides with the second drop height Hd#2.
- the state in which "the non-processing execution object OBJ_ntgt#2 falls under a condition in which the height determined based on the heights of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 coincides with the second drop height Hd#2" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#2 falls from the second drop height Hd#2.”
- the signal generating unit 312 may generate a robot control signal so that the imaging system 2 is located at the second drop height Hd#2 at the time when at least the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the imaging system 2 is located at the Z position indicated by the second drop height Hd#2 at the time when at least the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may calculate the current height of the imaging system 2.
- the signal generating unit 312 may calculate (estimate) the current height of the imaging system 2 from at least one position (particularly, the Z position) of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may calculate (estimate) the current height of the imaging system 2 based on at least one of the position and the orientation of the end effector 4 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may acquire information on at least one of the current position and the orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the imaging system 2 based on the acquired information. Thereafter, the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the imaging system 2 and the second drop height Hd#2 becomes small (e.g., becomes zero). As a result, the robot 1 moves the end effector 4 so that the imaging system 2 moves to the second drop height Hd#2.
- the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the imaging system 2 moves to the second drop height Hd#2. Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#2 falls. As a result, at least the non-processing execution object OBJ_ntgt#2 falls when the imaging system 2 is located at the second drop height Hd#2 (in other words, the Z position indicated by the second drop height Hd#2).
- the state in which "the non-processing execution object OBJ_ntgt#2 falls when the imaging system 2 is located at the second drop height Hd#2" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#2 falls from the second drop height Hd#2.”
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 is located at the second drop height Hd#2 at least when the non-processed execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 is located at the Z position indicated by the second drop height Hd#2 at least when the non-processed execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the end effector 4 and the second drop height Hd#2 becomes small (e.g., becomes zero).
- the position (particularly, the Z position) of the end effector 4 calculated to specify the holding state in step S23 of FIG. 5 may be used.
- the signal generating unit 312 may calculate (estimate) the current height of the end effector 4 based on at least one of the positions and orientations of at least one of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 calculated to specify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and orientation of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the end effector 4 based on the obtained information.
- the robot 1 moves the end effector 4 so that the end effector 4 moves to the second drop height Hd#2. That is, the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the end effector 4 moves to the second drop height Hd#2.
- at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#2 falls.
- the non-processing execution object OBJ_ntgt#2 falls when the end effector 4 is located at the second drop height Hd#2 (in other words, the Z position indicated by the second drop height Hd#2).
- the state in which "the non-processing execution object OBJ_ntgt#2 falls when the end effector 4 is located at the second drop height Hd#2" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#2 falls from the second drop height Hd#2.”
- the signal generating unit 312 may generate a robot control signal so that the robot arm 12 is located at the second drop height Hd#2 at the time when at least the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may generate a robot control signal so that the robot arm 12 is located at the Z position indicated by the second drop height Hd#2 at the time when at least the non-processing execution object OBJ_ntgt#2 starts to drop into the container CB.
- the signal generating unit 312 may calculate the current height of the robot arm 12.
- the signal generating unit 312 may calculate (estimate) the current height of the robot arm 12 from at least one position (particularly the Z position) of the non-processing execution object OBJ_ntgt#2 and the processing execution object OBJ_tgt#2 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may calculate (estimate) the current height of the robot arm 12 based on at least one of the position and the posture of the end effector 4 calculated to identify the holding state in step S23 of FIG. 5.
- the signal generating unit 312 may obtain information on at least one of the current position and the posture of the reference point (e.g., the tool center point) of the end effector 4 from the robot control device 13, and calculate (estimate) the current height of the robot arm 12 based on the obtained information. Thereafter, the signal generating unit 312 may generate a robot control signal for controlling the robot 1 so that the difference between the current height of the robot arm 12 and the second drop height Hd#2 becomes small (e.g., becomes zero). As a result, the robot 1 moves the end effector 4 so that the robot arm 12 moves to the second drop height Hd#2.
- the robot 1 changes (in other words, controls or adjusts) the height of the end effector 4 so that the robot arm 12 moves to the second drop height Hd#2. Then, at least one of the robot 1 and the end effector 4 is controlled so that at least the non-processing execution object OBJ_ntgt#2 falls. As a result, at least the non-processing execution object OBJ_ntgt#2 falls when the robot arm 12 is located at the second drop height Hd#2 (in other words, the Z position indicated by the second drop height Hd#2).
- the state in which "the non-processing execution object OBJ_ntgt#2 falls when the robot arm 12 is located at the second drop height Hd#2" may be considered equivalent to the state in which "the non-processing execution object OBJ_ntgt#2 falls from the second drop height Hd#2.”
- the control device 3 may drop at least the non-processed execution object OBJ_ntgt#2 from a second drop height Hd#2 that is lower than the first drop height Hd#1 from which the non-processed execution object OBJ_ntgt#1 was dropped.
- the control device 3 may drop at least the non-processed execution object OBJ_ntgt#2 from a position lower than the position from which the non-processed execution object OBJ_ntgt#1 was dropped.
- the height of the non-processed execution object OBJ_ntgt#2 from the target object group OBG_cb#2 or from the container CB at the time when at least the non-processed execution object OBJ_ntgt#2 starts to drop into the container CB is lower.
- the possibility that at least one of the non-processing execution object OBJ_ntgt#2, the group of target objects OBG_cb#2, and the container CB will be damaged due to the impact of the fall of at least the non-processing execution object OBJ_ntgt#2 is reduced.
- control device 3 may drop the non-processing execution object OBJ_ntgt#2 from the second drop height Hd#2, which is the same height as the first drop height Hd#1 from which the non-processing execution object OBJ_ntgt#1 fell.
- the control device 3 sets the drop height Hd based on the object height Ho, and after moving the non-processing execution object OBJ_ntgt, etc. to the set drop height Hd, starts the drop of at least the non-processing execution object OBJ_ntgt.
- the control device 3 may start the drop of at least the non-processing execution object OBJ_ntgt without setting the drop height Hd.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 holding the non-processing execution object OBJ_ntgt approaches the container CB (particularly, the target object group OBG_cb contained in the container CB).
- the end effector 4 holding the non-processing execution object OBJ_ntgt approaches the container CB (particularly, the target object group OBG_cb contained in the container CB).
- the erroneous holding detecting unit 313 may determine whether the distance ⁇ H (particularly, the distance in the Z-axis direction) between the object height Ho and the non-processing execution object OBJ_ntgt is equal to or less than a predetermined distance threshold value based on the calculation result of the object height Ho.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 holding the non-processing object OBJ_ntgt approaches the container CB (particularly, the target object group OBG_cb contained in the container CB). As a result, the end effector 4 may approach the container CB (particularly, the target object group OBG_cb contained in the container CB).
- the control device 3 may start the fall of at least the non-processing execution object OBJ_ntgt. As a result, even in this case, the impact of the fall of at least the non-processing execution object OBJ_ntgt is reduced.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 holding the non-processing execution object OBJ_ntgt approaches the container CB (particularly, the target object group OBG_cb contained in the container CB).
- the erroneous holding detection unit 313 may define a drop trigger area DA that spreads from the non-processing execution object OBJ_ntgt held by the end effector 4.
- the drop trigger area DA may be an area whose distance from the non-processing execution object OBJ_ntgt is equal to or less than a predetermined upper limit distance PD.
- the erroneous holding detection unit 313 may determine whether the target object group OBG_cb has entered the drop trigger area DA.
- the target object group OBG_cb has not entered the drop trigger area DA, it is assumed that the height of the non-processing execution object OBJ_ntgt from the target object group OBG_cb has not been sufficiently lowered.
- the signal generating unit 312 may generate a robot control signal so that the end effector 4 holding the non-processing execution object OBJ_ntgt approaches the container CB (particularly, the target object group OBG_cb contained in the container CB) further. As a result, the end effector 4 may approach the container CB (particularly, the target object group OBG_cb contained in the container CB).
- the target object group OBG_cb has entered the drop trigger area DA, it is assumed that the height of the non-processing execution object OBJ_ntgt from the target object group OBG_cb has been sufficiently lowered.
- control device 3 may start the drop of at least the non-processing execution object OBJ_ntgt.
- the impact of the fall of at least the non-processing execution object OBJ_ntgt is reduced.
- the possibility of at least one of the non-processing execution object OBJ_ntgt, the group of target objects OBG_cb, and the container CB being damaged due to the fall of at least the non-processing execution object OBJ_ntgt is reduced.
- the erroneous holding detection unit 313 may calculate the object height Ho using image data IMG generated by the imaging system 2 imaging the target object group OBG_cb.
- the imaging system 2 may image the entire target object group OBG_cb.
- the imaging system 2 may image all of the multiple target objects OBJ included in the target object group OBG_cb.
- the imaging system 2 may image a part of the target object group OBG_cb while not imaging the other part of the target object group OBG_cb.
- the imaging system 2 may image a part of the multiple target objects OBJ included in the target object group OBG_cb while not imaging the other part of the multiple target objects OBJ included in the target object group OBG_cb.
- the imaging system 2 may image some of the multiple target objects OBJ included in the target object group OBG_cb that are located on the surface of the target object OBG_cb, while not imaging some of the other target objects OBJ included in the target object group OBG_cb that are located on the surface of the target object OBG_cb.
- the erroneous holding detection unit 313 may calculate the object height Ho by analyzing the image indicated by the image data IMG.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to perform a matching process using the image data IMG to calculate at least one of the position and orientation of the target object OBJ included in the target object group OBG_cb, and calculate the object height Ho based on the calculation result of at least one of the position and orientation of the target object OBJ.
- the erroneous holding detection unit 313 may place a three-dimensional model of the target object OBJ in a virtual simulation space that imitates the three-dimensional space in which the target object group OBG_cb is placed, based on the calculation result of at least one of the position and orientation of the target object OBJ by the matching process, and calculate the height of the three-dimensional model as the object height Ho.
- the erroneous holding detection unit 313 may perform segmentation using the image data IMG to calculate the height of the target object OBJ reflected in the image indicated by the image data IMG as the object height Ho.
- the erroneous holding detection unit 313 may calculate the object height Ho using three-dimensional position data (e.g., the point cloud data described above) generated from the image data IMG.
- the erroneous holding detection unit 313 may calculate the height of the point cloud indicated by the three-dimensional position data (in particular, the height of the point cloud corresponding to the target object group OBG_cb) as the object height Ho.
- the erroneous holding detection unit 313 may calculate the object height Ho by the following method. For example, the erroneous holding detection unit 313 may calculate the height of at least a part of the multiple points included in the point group indicated by the three-dimensional position data as the object height Ho. For example, the erroneous holding detection unit 313 may calculate the height of the point located at the highest position among the multiple points included in the point group indicated by the three-dimensional position data as the object height Ho. In this case, the erroneous holding detection unit 313 can calculate the height of the highest part in the target object group OBG_cb as the object height Ho.
- the erroneous holding detection unit 313 may calculate the height of the point located at the Nth highest position (N is a constant indicating an integer of 2 or more) among the multiple points included in the point group indicated by the three-dimensional position data as the object height Ho.
- N is a constant indicating an integer of 2 or more
- the erroneous holding detection unit 313 is highly likely to be able to calculate the height of one target object OBJ located at the highest position among the multiple target objects OBJ included in the target object group OBG_cb as the object height Ho.
- the erroneous holding detection unit 313 may calculate the average value of the heights of at least a portion of the multiple points included in the point cloud indicated by the three-dimensional position data as the object height Ho.
- the erroneous holding detection unit 313 may calculate the average height of at least a portion of the target object group OBG_cb as the object height Ho. As an example, the erroneous holding detection unit 313 may calculate the average value of all the heights of the multiple points included in the point cloud indicated by the three-dimensional position data as the object height Ho. As another example, the erroneous holding detection unit 313 may calculate the average value of the heights of a portion of the multiple points included in the point cloud indicated by the three-dimensional position data included in a predetermined point cloud space as the object height Ho.
- the predetermined point cloud space is a space including a point located at the highest (or Nth highest) position among the multiple points included in the point cloud indicated by the three-dimensional position data.
- the specified point cloud space may be a three-dimensional space including the space between a virtual surface (e.g., a horizontal surface) including a point (highest point) located at the highest (or Nth highest) position among multiple points included in the point cloud indicated by the three-dimensional position data, and a virtual surface (e.g., a horizontal surface) located at a position a specified height lower along the Z-axis direction from the point (highest point).
- the erroneous holding detection unit 313 may calculate the object height Ho using image data IMG generated by the imaging device 21 imaging the target object group OBG_cb after the end effector 4 holds the processing execution object OBJ_tgt in accordance with the robot control signal generated in step S13 of Fig. 5.
- the imaging device 21 may image the target object group OBG_cb after the end effector 4 holds the processing execution object OBJ_tgt in accordance with the robot control signal generated in step S13 of Fig. 5.
- the erroneous holding detection unit 313 may calculate the object height Ho using image data IMG generated by the imaging device 21 imaging the target object group OBG_cb after it is determined in step S22 of Fig. 5 that the end effector 4 holds the non-processing execution object OBJ_ntgt.
- the imaging device 21 may capture an image of the target object group OBG_cb after it is determined in step S22 of FIG. 5 that the end effector 4 is holding the non-processing execution object OBJ_ntgt.
- the erroneous holding detection unit 313 may calculate the object height Ho using the image data IMG acquired in step S11 of Fig. 5. In other words, the erroneous holding detection unit 313 may calculate the object height Ho by reusing the image data IMG used to generate the position and orientation data POI in step S12 of Fig. 5. However, at the time when the image data IMG is acquired in step S11 of Fig. 5, the end effector 4 does not yet hold the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt.
- the image shown by the image data IMG acquired in step S11 of Fig. 5 also includes the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt that are already held by the end effector 4.
- the object height Ho calculated based on the image data IMG acquired in step S11 of FIG. 5 may contain an error with respect to the actual height of the target object group OBG_cb.
- the object height Ho calculated based on the image data IMG acquired in step S11 of FIG. 5 may be regarded as the height of the target object group OBG_cb.
- the erroneous holding detection unit 313 may reuse the position and orientation data POI already generated in step S12 of FIG. 5 as the object height Ho.
- the erroneous holding detection unit 313 may reuse the Z position indicated by the position and orientation data POI already generated in step S12 of FIG. 5 (for example, the Z positions of multiple target objects OBJ included in the target object group OBG_cb or the positions (heights) calculated from the Z positions) as the object height Ho.
- the erroneous holding detection unit 313 does not need to recalculate the object height Ho to set the drop height Hd.
- the erroneous holding detection unit 313 calculates the object height Ho using the imaging system 2.
- the imaging system 2 may be considered to function as a measuring device capable of directly or indirectly measuring the object height Ho.
- the object height Ho is the height of the target object group OBG_cb including at least one target object OBJ included in the imaging range of the imaging system 2 (i.e., the measurement range of the imaging system 2 capable of functioning as a measurement device) among the multiple target objects OBJ contained in the container CB.
- the drop height Hd set based on the object height Ho is also set based on the object height Ho, which is the height of the target object group OBG_cb including at least one target object OBJ included in the imaging range of the imaging system 2 (i.e., the measurement range of the imaging system 2 capable of functioning as a measurement device) among the multiple target objects OBJ contained in the container CB.
- the non-processing execution object OBJ_ntgt that falls from the set drop height Hd may fall to a drop position included in the imaging range of the imaging system 2 (i.e., the measurement range of the imaging system 2 capable of functioning as a measurement device).
- the control device 3 may generate a robot control signal so that at least the non-processing execution object OBJ_ntgt drops into the container CB by changing the attitude of the end effector 4. Furthermore, as described above, when the attitude of the end effector 4 changes, the height of the end effector 4 may change with the change in the attitude of the end effector 4. As a result, with the change in the attitude of the end effector 4, the height of the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt held by the end effector 4 may also change.
- the height of the imaging system 2 moving together with the end effector 4 may also change. Furthermore, with the change in the attitude of the end effector 4, the height of the robot arm 12 moving together with the end effector 4 may also change.
- the signal generating unit 312 may generate a robot control signal for changing the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 so that the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 coincides with the set drop height Hd in accordance with the change in posture of the end effector 4.
- the signal generating unit 312 may generate a robot control signal for changing the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 in accordance with the amount of change in posture of the end effector 4 in order to drop at least the non-processing execution object OBJ_ntgt.
- the control device 3 can drop at least the non-processing execution object OBJ_ntgt from the set drop height Hd.
- the signal generating unit 312 may generate a robot control signal that changes the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 by a height corresponding to the amount of change in the posture of the end effector 4 in order to drop at least the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal that changes the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 by a height proportional to the amount of change in the posture of the end effector 4 in order to drop at least the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal so that the posture of the end effector 4 changes to drop at least the non-processing execution object OBJ_ntgt, and then the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 changes.
- the signal generating unit 312 may generate a robot control signal so that, while changing the posture of the end effector 4 to drop at least the non-processing execution object OBJ_ntgt, the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 changes.
- the signal generating unit 312 may generate a robot control signal so that the height of at least one of the processing execution object OBJ_tgt, the non-processing execution object OBJ_ntgt, the end effector 4, the imaging system 2, and the robot arm 12 changes in synchronization with the change in posture of the end effector 4 to drop at least the non-processing execution object OBJ_ntgt.
- the control signal generating unit 312 for the drop position of the non-processing execution object OBJ_ntgt may control at least the drop position where the non-processing execution object OBJ_ntgt drops in the container CB in addition to or instead of controlling at least the drop height Hd at which the non-processing execution object OBJ_ntgt starts to drop into the container CB. That is, the signal generating unit 312 may control the drop position (e.g., the position in the horizontal plane) which is the position of the non-processing execution object OBJ_ntgt located in the container CB by dropping in addition to or instead of controlling the drop height Hd.
- the drop position e.g., the position in the horizontal plane
- the signal generating unit 312 may control the robot control signal so that at least the non-processing execution object OBJ_ntgt falls at a desired position in the container CB. Note that, when a placement device T different from the container CB is used, the signal generating unit 312 may control the robot control signal so that at least the non-processing execution object OBJ_ntgt falls at a desired position on the placement device T.
- the signal generating unit 312 may control the robot control signal so that at least the non-processed execution object OBJ_ntgt falls to a position in the container CB where the target object OBJ is not present.
- the signal generating unit 312 may control the robot control signal so that at least the non-processed execution object OBJ_ntgt falls to a position in the container CB where the target object group OBG_cb is not present.
- the possibility of damage to the fallen non-processed execution object OBJ_ntgt and the target object OBJ (target object group OBG_cb) contained in the container CB due to the impact of the fall of at least the non-processed execution object OBJ_ntgt is reduced, compared to a case where at least the non-processed execution object OBJ_ntgt falls to a position in the container CB where the target object OBJ (target object group OBG_cb) is present.
- the signal generating unit 312 may control the robot control signal so that at least the non-processed execution object OBJ_ntgt falls at a position within the container CB that has fewer undulations.
- a position with fewer undulations is a position where there are fewer target objects OBJ with vertices, ends, or corners that could cause undulations facing upward.
- the signal generating unit 312 may control the robot control signal so that at least the non-processed execution object OBJ_ntgt falls into a flat position within the container CB.
- a flat position is a position where the target object OBJ has a vertex, end, or corner that could become an undulation facing upward.
- the position and orientation calculation unit 311 may calculate the position of the target object OBJ (target object group OBG_cb) contained in the container CB using image data IMG generated by the imaging system 2 capturing an image of the target object OBJ (target object group OBG_cb) contained in the container CB.
- the signal generation unit 312 may identify a position in the container CB where no target object OBJ (target object group OBG_cb) is present based on the calculation result of the position of the target object OBJ (target object group OBG_cb) contained in the container CB, and generate a robot control signal so that at least the non-processing execution object OBJ_ntgt is dropped at the identified position.
- the position and orientation calculation unit 311 may calculate the orientation of the target object OBJ (target object group OBG_cb) contained in the container CB using image data IMG generated by the imaging system 2 capturing an image of the target object OBJ (target object group OBG_cb) contained in the container CB.
- the signal generation unit 312 may identify a position with few undulations in the container CB (for example, as described above, a position with few target objects OBJ with vertices, ends, or corners that can become undulations facing upwards) based on the calculation result of the orientation of the target object OBJ (target object group OBG_cb) contained in the container CB, and generate a robot control signal so that at least the non-processing execution object OBJ_ntgt is dropped in the identified position.
- the position and orientation calculation unit 311 may calculate the orientation of the target object OBJ (target object group OBG_cb) contained in the container CB using image data IMG generated by the imaging system 2 capturing an image of the target object OBJ (target object group OBG_cb) contained in the container CB.
- the signal generation unit 312 may identify a position without undulations in the container CB (for example, as described above, a position where there is no target object OBJ with a vertex, end, or corner facing upward that could become an undulation) based on the calculation result of the orientation of the target object OBJ (target object group OBG_cb) contained in the container CB, and generate a robot control signal so that at least the non-processing execution object OBJ_ntgt is dropped in the identified position.
- a position without undulations in the container CB for example, as described above, a position where there is no target object OBJ with a vertex, end, or corner facing upward that could become an undulation
- the signal generation unit 312 may reuse the position of the target object OBJ calculated in step S12 of FIG. 5 as the position of the target object OBJ (target object group OBG_cb) contained in the container CB.
- the position and orientation calculation unit 311 may calculate the position of the target object OBJ (target object group OBG_cb) contained in the container CB separately from step S12 in FIG. 5.
- the position and orientation calculation unit 311 may calculate the position of the target object OBJ (target object group OBG_cb) contained in the container CB using image data IMG generated by the imaging device 21 capturing an image of the target object group OBG_cb after the end effector 4 holds the processing execution object OBJ_tgt in accordance with the robot control signal generated in step S13 in FIG. 5.
- the signal generation unit 312 may specify a position in the container CB where the target object OBJ (target object group OBG_cb) does not exist based on the new calculation result of the position of the target object OBJ (target object group OBG_cb) contained in the container CB.
- the signal generation unit 312 may control the robot control signal so that the process execution object OBJ_tgt falls into the desired position in the container CB.
- the signal generation unit 312 may control the robot control signal so that the process execution object OBJ_tgt falls into a position in the container CB where no target object OBJ (target object group OBG_cb) is present.
- the signal generating unit 312 may control the robot control signal so that at least one of the non-processing execution object OBJ_ntgt and the processing execution object OBJ_tgt falls at a position in the container CB where the target object OBJ (target object group OBG_cb) is present.
- the control device 3 calculates the object height Ho using the image data IMG generated by the imaging system 2 in order to set (control) the drop height Hd.
- the control device 3 may calculate the object height Ho using a height calculation method different from the height calculation method using the image data IMG generated by the imaging system 2. Below, specific examples of height calculation methods different from the height calculation method using the image data IMG generated by the imaging system 2 will be described.
- the control device 3 may calculate the object height Ho using an imaging system 91a different from the imaging system 2. For example, when the robot system SYS includes the imaging system 91a, the control device 3 may calculate the object height Ho using the imaging system 91a included in the robot system SYS. For example, when the robot system SYS does not include the imaging system 91a, the control device 3 may calculate the object height Ho using an imaging system 91a external to the robot system SYS.
- the imaging system 91a may be disposed in a position and orientation such that a larger number of target objects OBJ are included in the imaging field of view of the imaging system 91a.
- the imaging system 91a may be attached to the robot 1.
- the imaging system 91a may be attached to the robot arm 12.
- the imaging system 91a may be attached to a part other than the robot 1 (particularly the robot arm 12).
- the imaging system 91a may be attached to the ceiling of a building in which the robot system SYS is located.
- the imaging system 91a may be attached to a robot other than the robot 1.
- the imaging system 91a may be attached to a structure such as a pillar.
- the imaging system 91a is capable of capturing an image of the target object group OBG_cb contained in the container CB.
- the imaging system 91a is capable of capturing an image of the target object group OBG_cb contained in the container CB, thereby generating image data showing an image in which the target object group OBG_cb is captured.
- the control device 3 may calculate the object height Ho using the image data generated by the imaging system 91a.
- the method of calculating the object height Ho using the image data generated by the imaging system 91a may be the same as the method of calculating the object height Ho using the image data IMG generated by the imaging system 2.
- the control device 3 may calculate the object height Ho by analyzing an image indicated by the image data generated by the imaging system 91a.
- the control device 3 may calculate the object height Ho by performing a matching process using the image data generated by the imaging system 91a.
- the control device 3 may generate three-dimensional position data (e.g., point cloud data) from the image data generated by the imaging system 91a, and calculate the object height Ho using the generated three-dimensional position data.
- the control device 3 calculates the object height Ho using the imaging system 91a.
- the imaging system 91a may be considered to function as a measurement device that can directly or indirectly measure the object height Ho.
- the control device 3 may calculate the object height Ho using the weight sensor 92a.
- the weight sensor 92a can measure the weight of the target object group OBG_cb contained in the container CB.
- the weight sensor 92a may be built into the container CB.
- the container CB may be placed on the weight sensor 92a, and the target object group OBG_cb may be contained in the container CB placed on the weight sensor 92a.
- the measurement result of the weight sensor 92a i.e., the measurement result of the weight of the target object group OBG_cb
- the control device 3 may calculate the object height Ho based on the measurement results of the weight sensor 92a (i.e., the measurement results of the weight of the target object group OBG_cb). Specifically, it is assumed that the greater the number of target objects OBJ contained in the target object group OBG_cb contained in the container CB, the heavier the weight of the target object group OBG_cb will be and the higher the object height Ho will be. In other words, it is assumed that the fewer the number of target objects OBJ contained in the target object group OBG_cb contained in the container CB, the lighter the weight of the target object group OBG_cb will be and the lower the object height Ho will be.
- the control device 3 may calculate (in this case, estimate) the object height Ho based on the measurement results of the weight sensor 92a (i.e., the measurement results of the weight of the target object group OBG_cb). For example, the control device 3 may calculate (in this case, estimate) the object height Ho using a table showing the relationship between the object height Ho and the weight of the target object group OBG_cb and the measurement results of the weight sensor 92a.
- the control device 3 calculates the object height Ho using the weight sensor 92a that can measure weight, which is a parameter different from height.
- the weight sensor 92a may be considered to function as a measuring device that can indirectly measure the object height Ho.
- the control device 3 may calculate the object height Ho using the object detection sensor 93a. For example, if the robot system SYS is equipped with the object detection sensor 93a, the control device 3 may calculate the object height Ho using the object detection sensor 93a equipped in the robot system SYS. For example, if the robot system SYS is not equipped with the object detection sensor 93a, the control device 3 may calculate the object height Ho using an object detection sensor 93a external to the robot system SYS.
- the object detection sensor 93a is capable of detecting the target object OBJ.
- the object detection sensor 93a may be an optical sensor such as a photoelectric sensor that emits detection light toward the target object OBJ and detects the target object OBJ by detecting the reflected light of the detection light from the target object OBJ.
- the object detection sensor 93a may be an optical sensor different from a photoelectric sensor.
- the object detection sensor 93a may be an existing sensor different from an optical sensor.
- the object detection sensor 93a may be disposed at a desired position so that the object height Ho can be calculated based on the detection result of the target object OBJ by the object detection sensor 93a.
- a plurality of object detection sensors 93a may be disposed at different heights.
- three object detection sensors 93a (specifically, object detection sensor 93a#1, object detection sensor 93a#2, and object detection sensor 93a#3) which are photoelectric sensors are disposed at different first heights TH1, second height TH2, and third height TH3 on the side wall SS of the container CB.
- Each of the first height TH1, second height TH2, and third height TH3 may mean a height from the above-mentioned height reference plane (for example, the bottom surface of the bottom wall BS of the container CB) or may mean a Z coordinate value of a global coordinate system or the like.
- the first height TH1 is greater than the second height TH2, and the second height TH2 is greater than the third height TH3.
- each object detection sensor 93a irradiates detection light along the horizontal direction.
- each object detection sensor 93a may detect a target object OBJ located at the height at which each object detection sensor 93a is disposed.
- object detection sensor 93a#1 may detect a target object OBJ located at a first height TH1.
- object detection sensor 93a#2 may detect a target object OBJ located at a second height TH2.
- object detection sensor 93a#3 may detect a target object OBJ located at a third height TH3.
- the detection results of the multiple object detection sensors 93a are output to the control device 3.
- the control device 3 may calculate the object height Ho based on the detection results of the multiple object detection sensors 93a. For example, when one object detection sensor 93a located at a certain height detects the target object OBJ (i.e., the detection light is irradiated on the target object OBJ and the reflected light from the target object OBJ returns to the first object detection sensor 93a), the object height Ho is assumed to be greater than the first height.
- the control device 3 can calculate (in this case, estimate) the object height Ho (particularly, the rough object height Ho) based on the detection results of the multiple object detection sensors 93a. For example, when all of the object detection sensors 93a#1 to 93#3 detect the target object OBJ, the control device 3 may calculate the height equal to or greater than the first height TH1 as the object height Ho.
- the control device 3 may calculate the height equal to or greater than the second height TH2 and equal to or less than the first height TH1 as the object height Ho. For example, when the object detection sensors 93a#1 to 93#2 do not detect the target object OBJ, while the object detection sensor 93a#3 detects the target object OBJ, the control device 3 may calculate the height equal to or greater than the third height TH3 and equal to or less than the second height TH2 as the object height Ho. For example, when all of the object detection sensors 93a#1 to 93#3 do not detect the target object OBJ, the control device 3 may calculate the height equal to or less than the third height TH3 as the object height Ho.
- Calculating the object height Ho based on the detection results of a plurality of object detection sensors 93a may be considered equivalent to calculating the object height Ho based on the number of object detection sensors 93a that have not detected the target object OBJ. For example, when the number of object detection sensors 93a that have not detected the target object OBJ is zero (i.e., all of the object detection sensors 93a#1 to 93a#3 have detected the target object OBJ), the control device 3 may calculate the object height Ho to be equal to or greater than the first height TH1.
- the control device 3 may calculate the object height Ho to be equal to or greater than the second height TH2 and equal to or less than the first height TH1.
- the control device 3 may calculate the height equal to or greater than the third height TH3 and equal to or less than the second height TH2 as the object height Ho. For example, if there are zero object detection sensors 93a that have not detected the target object OBJ (i.e., none of the object detection sensors 93a#1 to 93a#3 have detected the target object OBJ), the control device 3 may calculate the height equal to or less than the third height TH3 as the object height Ho.
- the control device 3 calculates the object height Ho using the object detection sensor 93a.
- the object detection sensor 93a may be considered to function as a measurement device that can directly measure the object height Ho.
- the control device 3 may calculate the object height Ho using a marker 94a.
- the marker 94a may be disposed on the container CB in which the target object OBJ is accommodated.
- the marker 94a may be disposed on the surface (typically, the inner surface) of the container CB facing the accommodation space SP in which the target object OBJ is accommodated.
- the marker 94a may be disposed on the side wall SS of the container CB facing the accommodation space SP.
- the marker 94a may be removable from the container CB.
- the marker 94a may be fixed to the container CB.
- the marker 94a may be formed on the container CB.
- the marker 94a may be printed on the container CB.
- the marker 94a may be engraved on the container CB with a laser beam or the like.
- Marker 94a is a marker that can be imaged by imaging system 2 (or imaging system 91a used in the first height calculation method, the same applies below in the explanation of the fourth height calculation method). However, since marker 94a is placed at a position facing the storage space SP of target object OBJ, if marker 94a is hidden by target object OBJ, imaging system 2 cannot image marker 94a.
- the marker 94a may be disposed at a desired position so that the object height Ho can be calculated based on the imaging result of the marker 94a by the imaging system 2 (i.e., image data IMG generated by the imaging system 2 that images the marker 94a).
- multiple markers 94a may be disposed at different heights.
- three markers 94a (specifically, marker 94a#1, marker 94a#2, and marker 94a#3) are disposed at different first heights TH1, second height TH2, and third height TH3 on the side wall SS of the container CB, respectively.
- first height TH1, second height TH2, and third height TH3 may each refer to a height from the above-mentioned height reference plane (e.g., the bottom surface of the bottom wall BS of the container CB), or may refer to a Z coordinate value of a global coordinate system, etc. Additionally, the first height TH1 is greater than the second height TH2, and the second height TH2 is greater than the third height TH3.
- the control device 3 may calculate the object height Ho based on the imaging result of the marker 94a by the imaging system 2. For example, if a marker 94a located at a certain height is not reflected in the image generated by the imaging system 2 (i.e., the marker 94a cannot be detected based on the image data as the imaging result by the imaging system 2), it is assumed that the marker 94a is hidden by the target object OBJ. In this case, it is assumed that the target object OBJ is located at the certain height where the marker 94a is located or at a position higher than the certain height. As a result, it is assumed that the object height Ho is higher than the certain height.
- the control device 3 can calculate (in this case, estimate) the object height Ho (particularly, the rough height object Ho) based on the imaging result of the marker 94a by the imaging system 2.
- the control device 3 may calculate a height equal to or greater than the first height TH1 as the object height Ho. For example, when the marker 94a#1 is captured in the image generated by the imaging system 2, while the markers 94a#2 to 94#3 are not captured in the image generated by the imaging system 2, the control device 3 may calculate a height equal to or greater than the second height TH2 and equal to or less than the first height TH1 as the object height Ho.
- the control device 3 may calculate a height equal to or greater than the third height TH3 and equal to or less than the second height TH2 as the object height Ho. For example, if all of markers 94a#1 to 94#3 are captured in the image generated by the imaging system 2, the control device 3 may calculate a height equal to or less than the third height TH3 as the object height Ho.
- the control device 3 may calculate the object height Ho by reusing the image data IMG acquired in step S11 of FIG. 5 as the imaging result of the marker 94a by the imaging system 2. In this case, the imaging system 2 does not need to newly image the marker 94a to calculate the object height Ho. However, the imaging system 2 may newly image the marker 94a to calculate the object height Ho. The control device 3 may calculate the object height Ho using the image data IMG generated by the imaging system 2 newly imaging the marker 94a to calculate the object height Ho, without reusing the image data IMG acquired in step S11 of FIG. 5 as the imaging result of the marker 94a by the imaging system 2.
- Calculating the object height Ho based on the imaging result of the marker 94a by the imaging system 2 may be considered equivalent to calculating the object height Ho based on the number of markers 94a detected based on the imaging result of the marker 94a by the imaging system 2. For example, if the number of detected markers 94a is zero (i.e., none of the markers 94a#1 to 94#3 are captured in the image generated by the imaging system 2), the control device 3 may calculate the object height Ho to be equal to or greater than the first height TH1.
- the control device 3 may calculate the object height Ho to be equal to or greater than the second height TH2 and equal to or less than the first height TH1.
- the control device 3 may calculate a height equal to or greater than the third height TH3 and equal to or less than the second height TH2 as the object height Ho. For example, if the number of detected markers 94a is three (i.e., all of markers 94a#1 to 94#3 are captured in the image generated by the imaging system 2), the control device 3 may calculate a height equal to or less than the third height TH3 as the object height Ho.
- the shapes of the multiple markers 94a may be different from each other.
- the control device 3 may calculate the object height Ho based on the shape of the marker 94a reflected in the image generated by the imaging system 2. For example, in the example shown in FIG. 21, an example will be described in which the marker 94a#1 has a first shape, the marker 94a#2 has a second shape different from the first shape, and the marker 94a#3 has a third shape different from the first and second shapes.
- the control device 3 may calculate the height equal to or greater than the second height TH2 and equal to or less than the first height TH1 as the object height Ho.
- the control device 3 may calculate a height equal to or greater than the third height TH3 and equal to or less than the second height TH2 as the object height Ho. For example, if the shapes of the marker 94a reflected in the image generated by the imaging system 2 are only the first to third shapes (i.e., all of markers 94a#1 to 94#3 are reflected in the image generated by the imaging system 2), the control device 3 may calculate a height equal to or less than the third height TH3 as the object height Ho.
- the control device 3 calculates the object height Ho using the marker 94a and the imaging system 2.
- the imaging system 2 functions as a measuring device capable of directly measuring the object height Ho
- the marker 94a can be considered to function as a measuring member capable of directly measuring the object height Ho.
- the control device 3 may calculate the object height Ho using information regarding the number of target objects OBJ (processing execution objects OBJ_tgt in this case) released by the end effector 4 outside the container CB. Note that, since the end effector 4 releases the target objects OBJ under the control of the control device 3, the information regarding the number of target objects OBJ released by the end effector 4 is already known to the control device 3.
- the more the number of target objects OBJ released by the end effector 4 i.e., the number of target objects OBJ taken out from the container CB
- the fewer the number of target objects OBJ remaining in the container CB and the lower the object height Ho.
- the more the number of target objects OBJ released by the end effector 4 the more the number of target objects OBJ remaining in the container CB, and the higher the object height Ho.
- the relationship between the number of target objects OBJ released by the end effector 4 and the object height Ho is established in such a way that the fewer the number of target objects OBJ released by the end effector 4, the higher the object height Ho.
- the control device 3 may calculate (in this case, estimate) the object height Ho based on information regarding the number of target objects OBJ released by the end effector 4. For example, the control device 3 may calculate (in this case, estimate) the object height Ho using a table indicating the relationship between the object height Ho and the number of target objects OBJ released by the end effector 4, and information regarding the number of target objects OBJ released by the end effector 4.
- the control device 3 controls the drop height Hd indicating the height (i.e., the position in the Z-axis direction) at which at least the non-processing execution object OBJ_ntgt starts to drop into the container CB based on the object height Ho, which is the height of the target object group OBG_cb contained in the container CB.
- the object height Ho of the target object group OBG_cb contained in the container CB can be said to be a parameter indicating the amount of the target object group OBG_cb contained in the container CB (i.e., the amount of the target object OBJ contained in the target object group OBG_cb).
- the control device 3 may control the drop height Hd based on the quantity of the target object group OBG_cb in addition to or instead of the object height Ho of the target object group OBG_cb.
- the quantity of the target object group OBG_cb contained in the container CB may mean the total quantity of the multiple target objects OBJ contained in the container CB (i.e., the quantity of the target object group OBG_cb including all of the multiple target objects OBJ contained in the container CB).
- the amount of the target object group OBG_cb contained in the container CB may mean a portion of the multiple target objects OBJ contained in the container CB (i.e., the amount of the target object group OBG_cb including a portion of the multiple target objects OBJ contained in the container CB).
- the target object group OBG_cb for which the amount is calculated may be a target object group OBG_cb including at least one target object OBJ imaged by the imaging system 2 to control the drop height Hd.
- the target object group OBG_cb for which the amount is calculated may be a target object group OBG_cb including at least one target object OBJ included in the imaging field of view of the imaging system 2 that images the target object OBJ to control the drop height Hd.
- the quantity of the target object group OBG_cb may be the total quantity of the target object group OBG_cb.
- the quantity of the target object group OBG_cb may be the total quantity of the multiple target objects OBJ included in the target object group OBG_cb.
- the quantity of a portion of the target object group OBG_cb may be used.
- the quantity of the target object group OBG_cb may be the quantity of at least one target object OBJ selected according to a desired selection criterion from the multiple target objects OBJ included in the target object group OBG_cb.
- An example of a parameter indicating the quantity of the target object group OBG_cb is the number of target objects OBJ included in the target object group OBG_cb.
- An example of a parameter indicating the quantity of the target object group OBG_cb is the weight of the target object group OBG_cb (i.e., the weight of the target objects OBJ included in the target object group OBG_cb).
- An example of a parameter indicating the quantity of the target object group OBG_cb is the volume of the target object group OBG_cb (i.e., the volume of the target objects OBJ included in the target object group OBG_cb).
- the control device 3 may control the drop height Hd based on the number of target objects OBJ included in the target object group OBG_cb. In this case, the control device 3 may control the drop height Hd so that the drop height Hd becomes lower as the number of target objects OBJ included in the target object group OBG_cb decreases. The control device 3 may control the drop height Hd so that the drop height Hd becomes higher as the number of target objects OBJ included in the target object group OBG_cb increases.
- the control device 3 may control the drop height Hd based on the number of target objects OBJ included in the target object group OBG_cb using a table showing the relationship between the number of target objects OBJ included in the target object group OBG_cb and the drop height Hd. In this case, it is possible to enjoy the same effect as that which can be enjoyed when the drop height Hd is controlled based on the object height Ho of the target object group OBG_cb described above.
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb, and control the drop height Hd based on the calculated number.
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb using image data IMG generated by the imaging system 2 (or image data generated by the imaging system 91a used in the above-mentioned first height calculation method, the same applies below). For example, the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb by analyzing an image indicated by the image data IMG. For example, the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb using three-dimensional position data (e.g., point cloud data) generated from the image data IMG. In this case, the imaging system 2 (or the imaging system 91a) may be considered to function as a measurement device capable of indirectly measuring the number (amount) of target objects OBJ included in the target object group OBG_cb.
- image data IMG generated by the imaging system 2
- image data generated by the imaging system 91a used in the above-mentioned first height calculation method, the
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb based on the measurement results of the weight sensor 92a used in the second height calculation method described above (i.e., the measurement results of the weight of the target object group OBG_cb). Specifically, it is assumed that the weight of the target object group OBG_cb increases as the number of target objects OBJ included in the target object group OBG_cb increases. In other words, it is assumed that the weight of the target object group OBG_cb decreases as the number of target objects OBJ included in the target object group OBG_cb decreases.
- the control device 3 may calculate (in this case, estimate) the number of target objects OBJ included in the target object group OBG_cb based on the measurement result of the weight sensor 92a (i.e., the measurement result of the weight of the target object group OBG_cb). For example, the control device 3 may calculate (in this case, estimate) the number of target objects OBJ included in the target object group OBG_cb using a table showing the relationship between the number of target objects OBJ included in the target object group OBG_cb and the weight of the target object group OBG_cb, and the measurement result of the weight sensor 92a. In this case, the weight sensor 92a may be considered to function as a measuring device that can indirectly measure the number (amount) of target objects OBJ included in the target object group OBG_cb.
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb based on information regarding the number of target objects OBJ released by the end effector 4 used in the fifth height calculation method described above. For example, the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb (i.e., the number of target objects OBJ remaining in the container CB) by subtracting the number of target objects OBJ released by the end effector 4 from the number of target objects OBJ contained in the container CB before starting the robot control process.
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb based on the detection result of the object detection sensor 93a used in the third height calculation method described above.
- the control device 3 may calculate the number of target objects OBJ included in the target object group OBG_cb based on the imaging result of the marker 94a used in the fourth height calculation method described above.
- the weight control device 3 of the target object group OBG_cb may control the drop height Hd based on the weight of the target object group OBG_cb. In this case, the control device 3 may control the drop height Hd so that the drop height Hd becomes lower as the weight of the target object group OBG_cb becomes lighter. The control device 3 may control the drop height Hd so that the drop height Hd becomes higher as the weight of the target object group OBG_cb becomes heavier. The control device 3 may control the drop height Hd based on the weight of the target object group OBG_cb using a table showing the relationship between the weight of the target object group OBG_cb and the drop height Hd.
- the control device 3 may calculate the weight of the target object group OBG_cb and control the drop height Hd based on the calculated weight.
- the control device 3 may calculate the weight of the target object group OBG_cb using image data IMG generated by the imaging system 2 (or image data generated by the imaging system 91a used in the first height calculation method described above, the same applies below). For example, the control device 3 may calculate the weight of the target object group OBG_cb by analyzing an image indicated by the image data IMG generated by the imaging system 2. For example, the control device 3 may calculate the weight of the target object group OBG_cb using three-dimensional position data (e.g., point cloud data) generated from the image data IMG. In this case, the imaging system 2 (or the imaging system 91a) may be considered to function as a measuring device capable of indirectly measuring the weight (amount) of the target object group OBG_cb.
- image data IMG generated by the imaging system 2 or image data generated by the imaging system 91a used in the first height calculation method described above, the same applies below.
- the control device 3 may calculate the weight of the target object group OBG_cb by analyzing an image indicated by the
- the control device 3 may calculate the weight of the target object group OBG_cb based on the measurement results of the weight sensor 92a used in the second height calculation method described above (i.e., the measurement results of the weight of the target object group OBG_cb).
- the weight sensor 92a may be considered to function as a measurement device that can directly measure the weight (amount) of the target object group OBG_cb.
- the control device 3 may calculate the weight of the target object group OBG_cb based on information on the number of target objects OBJ released by the end effector 4 used in the fifth height calculation method described above. Specifically, it is assumed that the weight of the target object group OBG_cb remaining in the container CB becomes heavier as the number of target objects OBJ released by the end effector 4 (i.e., the number of target objects OBJ carried out of the container CB) becomes smaller. In other words, it is assumed that the weight of the target object group OBG_cb remaining in the container CB becomes lighter as the number of target objects OBJ released by the end effector 4 (i.e., the number of target objects OBJ carried out of the container CB) becomes larger.
- the control device 3 may calculate (in this case, estimate) the weight of the target object group OBG_cb based on information regarding the number of target objects OBJ released by the end effector 4. For example, the control device 3 may calculate (in this case, estimate) the weight of the target object group OBG_cb using a table showing the relationship between the number of target objects OBJ released by the end effector 4 and the weight of the target object group OBG_cb, and information regarding the number of target objects OBJ released by the end effector 4.
- the control device 3 may calculate the weight of the target object group OBG_cb based on the detection result of the object detection sensor 93a used in the third height calculation method described above.
- the control device 3 may calculate the weight of the target object group OBG_cb based on the imaging result of the marker 94a used in the fourth height calculation method described above. This is because it is assumed that there is a relationship between the weight of the target object group OBG_cb and the object height Ho of the target object group OBG_cb such that the weight of the target object group OBG_cb becomes heavier as the object height Ho of the target object group OBG_cb becomes higher (in other words, the weight of the target object group OBG_cb becomes lighter as the object height Ho of the target object group OBG_cb becomes lower).
- the volume control device 3 of the target object group OBG_cb may control the drop height Hd based on the volume of the target object group OBG_cb. In this case, the control device 3 may control the drop height Hd so that the drop height Hd becomes lower as the volume of the target object group OBG_cb becomes smaller. The control device 3 may control the drop height Hd so that the drop height Hd becomes higher as the volume of the target object group OBG_cb becomes larger. The control device 3 may control the drop height Hd based on the volume of the target object group OBG_cb using a table showing the relationship between the volume of the target object group OBG_cb and the drop height Hd.
- the control device 3 may calculate the volume of the target object group OBG_cb and control the drop height Hd based on the calculated volume.
- the control device 3 may calculate the volume of the target object group OBG_cb using image data IMG generated by the imaging system 2 (or image data generated by the imaging system 91a used in the first height calculation method described above, the same applies below). For example, the control device 3 may calculate the volume of the target object group OBG_cb by analyzing an image indicated by the image data IMG generated by the imaging system 2. For example, the control device 3 may calculate the volume of the target object group OBG_cb using three-dimensional position data (e.g., point cloud data) generated from the image data IMG. In this case, the imaging system 2 (or the imaging system 91) may be considered to function as a measuring device capable of indirectly measuring the volume (quantity) of the target object group OBG_cb.
- image data IMG generated by the imaging system 2 or image data generated by the imaging system 91a used in the first height calculation method described above, the same applies below.
- the control device 3 may calculate the volume of the target object group OBG_cb by analyzing an image indicated by the image
- the control device 3 may calculate the volume of the target object group OBG_cb based on the measurement results of the weight sensor 92a used in the second height calculation method described above (i.e., the measurement results of the weight of the target object group OBG_cb). Specifically, it is assumed that the larger the volume of the target object group OBG_cb, the heavier the weight of the target object group OBG_cb. In other words, it is assumed that the smaller the volume of the target object group OBG_cb, the lighter the weight of the target object group OBG_cb.
- the control device 3 may calculate the volume of the target object group OBG_cb based on information on the number of target objects OBJ released by the end effector 4 used in the fifth height calculation method described above. Specifically, it is assumed that the volume of the target object group OBG_cb remaining in the container CB increases as the number of target objects OBJ released by the end effector 4 (i.e., the number of target objects OBJ carried out of the container CB) decreases. In other words, it is assumed that the volume of the target object group OBG_cb remaining in the container CB decreases as the number of target objects OBJ released by the end effector 4 (i.e., the number of target objects OBJ carried out of the container CB) increases.
- the control device 3 may calculate (in this case, estimate) the volume of the target object group OBG_cb based on information regarding the number of target objects OBJ released by the end effector 4. For example, the control device 3 may calculate (in this case, estimate) the volume of the target object group OBG_cb using a table indicating the relationship between the number of target objects OBJ released by the end effector 4 and the volume of the target object group OBG_cb, and information regarding the number of target objects OBJ released by the end effector 4.
- the control device 3 may calculate the volume of the target object group OBG_cb based on the detection result of the object detection sensor 93a used in the third height calculation method described above.
- the control device 3 may calculate the volume of the target object group OBG_cb based on the image capture result of the marker 94a used in the fourth height calculation method described above.
- the signal generating unit 312 may generate a second robot control signal for controlling at least one of the robot 1 and the end effector 4 in a control mode different from the control mode based on the first robot control signal so as to drop at least the non-processed execution object OBJ_ntgt into the container CB.
- control device 3 when the control device 3 fails to drop at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 based on the first robot control signal, the control device 3 may perform again the process of dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 based on a new second robot control signal.
- control device 3 when the control device 3 fails to drop at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in the first control mode, the control device 3 may perform again the process of dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in a second control mode different from the first control mode.
- the control device 3 may change the control mode of at least one of the robot 1 and the end effector 4 for dropping at least the non-processed execution object OBJ_ntgt into the container CB, and then perform the process of dropping at least the non-processed execution object OBJ_ntgt into the container CB again.
- FIG. 22 is a flowchart showing the flow of the robot control process in the second modified example. Note that the same step numbers are used for processes that have already been explained, and detailed explanations thereof will be omitted.
- the control device 3 also controls the robot 1 and at least one of the end effector 4 to hold the processing execution object OBJ_tgt (steps S11 to S13). Furthermore, in the second modified example, if it is determined that the end effector 4 is holding both the processing execution object OBJ_tgt and the non-processing execution object OBJ_ntgt (step S22: Yes), the control device 3 also controls the robot 1 and at least one of the end effector 4 to drop at least the non-processing execution object OBJ_ntgt into the container CB (steps S23 to S24).
- the control device 3 changes the control mode of at least one of the robot 1 and the end effector 4 for dropping at least the non-processed execution object OBJ_ntgt into the container CB (step S25b).
- the signal generating unit 312 generates a robot control signal for dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in a control mode different from the control mode of at least one of the robot 1 and the end effector 4 used so far for dropping at least the non-processed execution object OBJ_ntgt into the container CB (step S25b).
- the control mode of the robot 1 may include a movement mode of the end effector 4 controlled by the robot 1.
- the signal generating unit 312 may generate a robot control signal for controlling the robot 1 to drop at least the non-processed execution object OBJ_ntgt into the container CB by moving the end effector 4 in a second movement mode different from the first movement mode.
- the movement mode of the end effector 4 under the control of the robot 1 may include the type of movement of the end effector 4.
- the type of movement of the end effector 4 may indicate whether the end effector 4 moves translationally or rotationally.
- the movement mode of the end effector 4 under the control of the robot 1 may include the movement direction of the end effector 4.
- the movement mode of the end effector 4 under the control of the robot 1 may include the movement amount of the end effector 4.
- the movement mode of the end effector 4 under the control of the robot 1 may include the speed (movement speed) of the end effector 4.
- the movement mode of the end effector 4 under the control of the robot 1 may include the acceleration (movement acceleration) of the end effector 4.
- the control mode of the end effector 4 may include the holding force of the end effector 4.
- the signal generating unit 312 may generate a robot control signal that controls the end effector 4 to weaken the holding force of the end effector 4 so as to cause at least the non-processing execution object OBJ_ntgt to fall into the container CB.
- the signal generating unit 312 may change the control mode of the end effector 4 in addition to or instead of changing the control mode of the robot 1.
- the signal generating unit 312 may change (e.g., weaken) the holding force of the end effector 4 in addition to or instead of changing the control mode of the robot 1 (i.e., the movement mode of the end effector 4 by the control of the robot 1). In this case, it is expected that at least the non-processing execution object OBJ_ntgt will be more likely to fall into the container CB.
- the signal generating unit 312 may control the robot 1 to move (e.g., rotate) the end effector 4 in addition to or instead of changing the control mode (e.g., holding force) of the end effector 4. In this case, it is expected that there is a high possibility that at least the non-processed execution object OBJ_ntgt will fall into the container CB.
- the control device 3 may determine at least one control mode of the robot 1 and the end effector 4 for dropping at least the non-processing execution object OBJ_ntgt into the container CB by performing a simulation that mimics the behavior of the end effector 4 holding the processing execution object OBJ_tgt as well as the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may place a holding target object model, which is a three-dimensional model of a holding target object group OBG_h including a processing execution object OBJ_tgt and a non-processing execution object OBJ_ntgt, and an end effector model, which is a three-dimensional model of an end effector 4, in a virtual simulation space that imitates a three-dimensional space in which an end effector 4 is placed that holds the holding target object group OBG_h including a processing execution object OBJ_tgt and a non-processing execution object OBJ_ntgt.
- a holding target object model which is a three-dimensional model of a holding target object group OBG_h including a processing execution object OBJ_tgt and a non-processing execution object OBJ_ntgt
- an end effector model which is a three-dimensional model of an end effector 4
- the signal generating unit 312 may place a container model, which is a three-dimensional model of a container CB, in the virtual simulation space. Furthermore, the signal generating unit 312 may place a contained object model, which is a three-dimensional model of a target object group OBG_cb including at least one target object OBJ contained in the container CB, in the virtual simulation space.
- the signal generating unit 312 may place the holding target object model, the end effector model, the container model, and the contained object model in the simulation space so that the relative positional relationship between the holding target object model, the end effector model, the container model, and the contained object model in the simulation space is the same as the relative positional relationship between the holding target object group OBG_h, the end effector 4, the container CB, and the target object group OBG_cb in the real space.
- the signal generating unit 312 may refer to the holding state identified in step S23. This is because the holding state identified in step S23 indicates at least one of the position and orientation of the group of objects to be held OBG_h in real space. In this case, the signal generating unit 312 may place the object model to be held in the simulation space at the position indicated by the holding state identified in step S23. The signal generating unit 312 may place the object model to be held in the simulation space in the orientation indicated by the holding state identified in step S23.
- the signal generating unit 312 may control the position and orientation calculating unit 311 to calculate at least one of the position and orientation of the end effector 4.
- the erroneous holding detecting unit 313 may calculate at least one of the position and orientation of the end effector 4 by performing a matching process using the image data IMG acquired in step S21 of FIG. 5 or FIG. 22 and a template model indicating the shape of the end effector 4.
- the matching process using the template model indicating the shape of the end effector 4 may be the same as the matching process using the template model indicating the shape of the target object OBJ described above.
- the signal generating unit 312 may place the end effector model in the simulation space at the same position as the calculated position of the end effector 4.
- the signal generating unit 312 may place the end effector model in the simulation space in the same orientation as the calculated orientation of the end effector 4.
- the signal generating unit 312 may acquire information on a position previously designated as the position of the container CB and/or information on an orientation previously designated as the orientation of the container CB. However, the signal generating unit 312 may calculate at least one of the position and the orientation of the container CB by performing a matching process using the image data IMG acquired in step S11 of FIG. 5 or FIG. 22 and a template model indicating the shape of the container CB.
- the matching process using the template model indicating the shape of the container CB may be the same as the matching process using the template model indicating the shape of the target object OBJ described above.
- the signal generating unit 312 may place the container model in the simulation space at the same position as the position of the container CB.
- the signal generating unit 312 may place the container model in the simulation space in the same orientation as the orientation of the container CB.
- the signal generating unit 312 may control the position and orientation calculating unit 311 to calculate at least one of the position and orientation of the target object group OBG_cb contained in the container CB.
- the erroneous holding detecting unit 313 may calculate at least one of the position and orientation of the target object group OBG_cb contained in the container CB by performing a matching process using the image data IMG acquired in step S11 of FIG. 5 or FIG. 22 and a template model indicating the shape of the target object OBJ.
- the erroneous holding detecting unit 313 may calculate at least one of the position and orientation of the target object group OBG_cb contained in the container CB by performing a matching process using the image data IMG generated by the imaging device 21 capturing an image of the target object group OBG_cb contained in the container CB after the end effector 4 holds the processing execution object OBJ_tgt, and a template model indicating the shape of the target object OBJ. Thereafter, the signal generating unit 312 may place the contained object model in the simulation space at the same position as the calculated position of the target object group OBG_cb. The signal generating unit 312 may place the contained object model in the simulation space in the same orientation as the calculated orientation of the target object group OBG_cb.
- the signal generating unit 312 may estimate the behavior of the held object model (particularly the held object model indicating the three-dimensional shape of the non-processed execution object OBJ_ntgt) by moving the end effector model in the simulation space.
- the signal generating unit 312 may adopt the movement mode of the end effector model that satisfies the condition that at least the held object model of the non-processed execution object OBJ_ntgt falls into the container model in the simulation space as the control mode of the robot 1 for dropping at least the non-processed execution object OBJ_ntgt into the container CB (i.e., the movement mode of the end effector 4 controlled by the robot 1).
- the signal generating unit 312 may adopt at least one of the multiple movement modes of the end effector model as the control mode of the robot 1 for dropping at least the non-processed execution object OBJ_ntgt into the container CB (i.e., the movement mode of the end effector 4 under the control of the robot 1).
- the signal generating unit 312 may estimate the behavior of the held object model (particularly, the held object model indicating the three-dimensional shape of the non-processed execution object OBJ_ntgt) by changing the frictional force between the end effector model and the held object model (particularly, the held object model indicating the three-dimensional shape of the non-processed execution object OBJ_ntgt) in the simulation space.
- the signal generating unit 312 may adopt, as the control mode of the end effector 4 for dropping at least the non-processed execution object OBJ_ntgt into the container CB, the holding force of the end effector 4 for realizing a frictional force that satisfies the condition that at least the held object model of the non-processed execution object OBJ_ntgt falls into the container model in the simulation space.
- the signal generating unit 312 may adopt the holding force of the end effector 4 for realizing at least one of the multiple frictional forces as the control mode of the end effector 4 for dropping at least the non-processing execution object OBJ_ntgt into the container CB.
- the erroneous holding detection unit 313 may control the output device 35 to output an alert to notify the user (operator) of the robot system SYS that at least the non-processed execution object OBJ_ntgt cannot be dropped into the container CB (step S32).
- the signal generating unit 312 may determine at least one control mode of the robot 1 and the end effector 4 for dropping at least the non-processing execution object OBJ_ntgt into the container CB by performing a simulation that mimics the behavior of the end effector 4 holding the non-processing execution object OBJ_ntgt together with the processing execution object OBJ_tgt.
- the signal generating unit 312 may change the control mode of at least one of the robot 1 and the end effector 4 for dropping at least the non-processed execution object OBJ_ntgt into the container CB multiple times. For example, if the process of dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in a first control mode fails, the signal generating unit 312 may generate a robot control signal for dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in a second control mode different from the first control mode (first change of control mode).
- the signal generating unit 312 may generate a robot control signal for dropping at least the non-processed execution object OBJ_ntgt into the container CB by controlling at least one of the robot 1 and the end effector 4 in a third control mode different from the first and second control modes (third change of control mode). Thereafter, the signal generating unit 312 may repeat the change of the control mode of at least one of the robot 1 and the end effector 4 until at least the non-processed execution object OBJ_ntgt drops into the container CB.
- the erroneous holding detection unit 313 may control the output device 35 to output an alert to notify the user (operator) of the robot system SYS that at least the non-processing execution object OBJ_ntgt could not be dropped into the container CB (step S32).
- the erroneous holding detection unit 313 does not need to control the output device 35 to output an alert.
- the end effector 4 may perform a release process to release the processing object OBJ_tgt held by the end effector 4 (step S33).
- the signal generating unit 312 may generate a robot control signal for dropping the non-processing execution object OBJ_ntgt into the container CB so that the posture of the non-processing execution object OBJ_ntgt located in the container CB becomes a desired posture by dropping in step S24 in Fig. 5 or Fig. 22.
- the signal generating unit 312 may generate a robot control signal for dropping the non-processing execution object OBJ_ntgt into the container CB so that the posture of the non-processing execution object OBJ_ntgt located in the container CB becomes a desired posture when it is assumed that the non-processing execution object OBJ_ntgt is dropped into the container CB by controlling at least one of the robot 1 and the end effector 4 based on the robot control signal generated in step S24 in Fig. 5 or Fig. 22.
- the desired orientation may include an orientation that satisfies the condition that position and orientation data POI indicating at least one of the position and orientation of the non-processing execution object OBJ_ntgt located in the container CB can be appropriately generated.
- the desired orientation may include an orientation that satisfies the condition that the non-processing execution object OBJ_ntgt located in the container CB is appropriately detected as the target object OBJ by the matching process performed after the non-processing execution object OBJ_ntgt actually falls into the container CB.
- the desired orientation may include an orientation that satisfies the condition that the possibility that the non-processing execution object OBJ_ntgt is selected as the processing execution object OBJ_tgt by the matching process performed under a situation in which the orientation of the non-processing execution object OBJ_ntgt located in the container CB by falling becomes the desired orientation is higher than the possibility that the non-processing execution object OBJ_ntgt is selected as the processing execution object OBJ_tgt by the matching process performed under a situation in which the orientation of the non-processing execution object OBJ_ntgt located in the container CB by falling does not become the desired orientation.
- the desired posture may include a posture that satisfies the condition that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process performed after the non-processed execution object OBJ_ntgt actually falls into the container CB exceeds the above-mentioned matching judgment threshold.
- the desired posture may include a posture that satisfies the condition that the possibility that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process performed under a situation in which the posture of the non-processed execution object OBJ_ntgt positioned in the container CB as a result of falling becomes the desired posture, exceeds the matching judgment threshold, is higher than the possibility that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process performed under a situation in which the posture of the non-processed execution object OBJ_ntgt positioned in the container CB as a result of falling does not become the desired posture, exceeds the matching judgment threshold.
- the desired posture may include a posture that satisfies the condition that the matching score of the non-processed execution object OBJ_ntgt calculated by a matching process performed under a circumstance in which the posture of the non-processed execution object OBJ_ntgt positioned in the container CB by falling becomes the desired posture, is higher than the matching score of the non-processed execution object OBJ_ntgt calculated by a matching process performed under a circumstance in which the posture of the non-processed execution object OBJ_ntgt positioned in the container CB by falling does not become the desired posture.
- the position and orientation data POI of the non-processing execution object OBJ_ntgt located in the container CB is likely to be appropriately generated compared to when the posture of the non-processing execution object OBJ_ntgt located in the container CB does not become the desired posture by falling.
- the control device 3 is likely to be able to select the non-processing execution object OBJ_ntgt that fell into the container CB as the new processing execution object OBJ_tgt to be held by the end effector 4 next.
- the possibility that the control device 3 will be unable to select a new processing execution object OBJ_tgt (for example, no target object OBJ will be detected by the matching process) is reduced.
- more opportunities are ensured for the end effector 4 to hold the target object OBJ. This reduces the need to redo the matching process due to no target object OBJ being detected by the matching process, thereby improving the throughput of the robot system SYS (reducing the takt time).
- the state in which "the posture of the non-processed execution object OBJ_ntgt located in the container CB becomes the desired posture" may include a state in which "the desired part of the non-processed execution object OBJ_ntgt located in the container CB faces the desired direction.”
- the desired part of the non-processed execution object OBJ_ntgt may include a part of the non-processed execution object OBJ_ntgt that has been set in advance.
- the desired part of the non-processed execution object OBJ_ntgt may include a part of the non-processed execution object OBJ_ntgt that has been specified by the user.
- the desired portion of the non-processed execution object OBJ_ntgt may include a portion of the non-processed execution object OBJ_ntgt (i.e., a portion of the target object OBJ) that can be used to generate position and orientation data POI of the non-processed execution object OBJ_ntgt located in the container CB.
- a template model that indicates the shape of a portion of the target object OBJ is used.
- the desired portion of the non-processed execution object OBJ_ntgt may include a portion that corresponds to the template model.
- the desired direction in which the desired portion of the non-processed execution object OBJ_ntgt should face may include a direction that satisfies the condition that the possibility of generating position and orientation data POI of the non-processed execution object OBJ_ntgt located within the container CB when the desired portion of the non-processed execution object OBJ_ntgt faces the desired direction is higher than the possibility of generating position and orientation data POI of the non-processed execution object OBJ_ntgt located within the container CB when the desired portion of the non-processed execution object OBJ_ntgt does not face the desired direction.
- the desired direction may include a direction that satisfies the condition that the possibility that a non-processed execution object OBJ_ntgt located in the container CB will be detected as a target object OBJ when the desired portion of the non-processed execution object OBJ_ntgt faces the desired direction is higher than the possibility that a non-processed execution object OBJ_ntgt located in the container CB will be detected as a target object OBJ when the desired portion of the non-processed execution object OBJ_ntgt does not face the desired direction.
- the desired direction may include a direction that satisfies the condition that the possibility that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process when the desired part of the non-processed execution object OBJ_ntgt faces the desired direction exceeds the matching judgment threshold is higher than the possibility that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process when the desired part of the non-processed execution object OBJ_ntgt does not face the desired direction exceeds the matching judgment threshold.
- the desired direction may include a direction that satisfies the condition that the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process when the desired part of the non-processed execution object OBJ_ntgt faces the desired direction is higher than the matching score of the non-processed execution object OBJ_ntgt calculated by the matching process when the desired part of the non-processed execution object OBJ_ntgt does not face the desired direction.
- the desired direction may include a direction in which the imaging system 2 (particularly, the imaging device 21) can be positioned to capture an image of the non-processing execution object OBJ_ntgt that has fallen and is positioned inside the container CB.
- the state in which the desired portion of the non-processing execution object OBJ_ntgt faces the desired direction may include a state in which the desired portion of the non-processing execution object OBJ_ntgt faces a direction in which the imaging system 2 (particularly, the imaging device 21) that captures the image of the non-processing execution object OBJ_ntgt can be positioned.
- the desired direction may include a direction in which the desired portion of the non-processing execution object OBJ_ntgt, which has fallen and is positioned inside the container CB, faces directly toward the imaging system 2 (particularly, the imaging device 21) that images the non-processing execution object OBJ_ntgt, which has fallen and is positioned inside the container CB.
- the state in which the desired portion of the non-processing execution object OBJ_ntgt faces the desired direction may include a state in which the desired portion of the non-processing execution object OBJ_ntgt faces directly toward the imaging system 2 (particularly, the imaging device 21) that images the non-processing execution object OBJ_ntgt.
- the desired direction may include a direction in which the desired portion of the non-processing execution object OBJ_ntgt that has fallen and is positioned inside the container CB is included in the imaging area (in other words, the imaging field of view) of the imaging system 2 (particularly, the imaging device 21) that images the non-processing execution object OBJ_ntgt that has fallen and is positioned inside the container CB.
- the state in which the desired portion of the non-processing execution object OBJ_ntgt faces the desired direction may include a state in which the desired portion of the non-processing execution object OBJ_ntgt is included in the imaging area of the imaging system 2 that images the non-processing execution object OBJ_ntgt.
- the desired direction may include the direction of an opening AP formed in the container CB as an entrance through which the end effector 4 enters to hold the target object OBJ contained in the container CB, as viewed from the non-processing execution object OBJ_ntgt that has fallen and is positioned inside the container CB.
- the state in which the desired portion of the non-processing execution object OBJ_ntgt faces the desired direction may include the state in which the desired portion of the non-processing execution object OBJ_ntgt faces the direction of the opening AP of the container CB.
- the desired direction may include an upward direction as seen from the non-processing execution object OBJ_ntgt that has fallen and is now positioned inside the container CB.
- the state in which the desired part of the non-processing execution object OBJ_ntgt faces the desired direction may include a state in which the desired part of the non-processing execution object OBJ_ntgt faces an upward direction.
- the desired posture may include a posture that satisfies the condition that the end effector 4 can properly hold the non-processing execution object OBJ_ntgt located in the container CB, in addition to or instead of the condition that the position and posture data POI indicating at least one of the position and posture of the non-processing execution object OBJ_ntgt located in the container CB can be properly generated.
- the state in which "the posture of the non-processing execution object OBJ_ntgt located in the container CB becomes the desired posture" may include the state in which "the desired part of the non-processing execution object OBJ_ntgt located in the container CB faces the desired direction.”
- the desired posture satisfies the condition that the end effector 4 can properly hold the non-processing execution object OBJ_ntgt located in the container CB
- the desired part of the non-processing execution object OBJ_ntgt may include the part of the non-processing execution object OBJ_ntgt held by the end effector 4.
- the desired portion of the non-processing execution object OBJ_ntgt may include at least a part of the non-processing execution object OBJ_ntgt that should be held by the end effector 4.
- a portion of the non-processing execution object OBJ_ntgt held by the end effector 4 i.e., a portion of the target object OBJ
- Such a portion of the non-processing execution object OBJ_ntgt held by the end effector 4 i.e., a portion of the target object OBJ
- the imaging system 2 is more likely to be able to appropriately image the portion of the non-processing execution object OBJ_ntgt held by the end effector 4.
- the end effector 4 is more likely to be able to properly hold the non-processing object OBJ_ntgt that has been newly selected as the processing object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for dropping the non-processed execution object OBJ_ntgt into the container CB so that the posture of the non-processed execution object OBJ_ntgt positioned in the container CB by dropping becomes a desired posture based on at least one of the positions and postures of the held target object group OBG_h including the target object OBJ held by the end effector 4 and at least one of the positions and postures of the target object group OBG_cb including the target object OBJ contained in the container CB.
- the signal generating unit 312 may generate a robot control signal for dropping the non-processed execution object OBJ_ntgt into the container CB so that the posture of the non-processed execution object OBJ_ntgt positioned in the container CB by dropping becomes a desired posture by estimating at least one of the positions and postures of the non-processed execution object OBJ_ntgt positioned in the container CB by dropping, using the simulation described in the second modified example.
- the signal generating unit 312 may adopt the movement mode of the end effector model that satisfies the condition that the posture of the object to be held (particularly the object to be held that shows the three-dimensional shape of the non-processing execution object OBJ_ntgt) that has fallen into the container model becomes the desired posture by moving the end effector model in the simulation space, as the control mode of the robot 1 (i.e., the movement mode of the end effector 4 controlled by the robot 1) for making the posture of the non-processing execution object OBJ_ntgt that has fallen and is positioned in the container CB become the desired posture.
- the control mode of the robot 1 i.e., the movement mode of the end effector 4 controlled by the robot 1 for making the posture of the non-processing execution object OBJ_ntgt that has fallen and is positioned in the container CB become the desired posture.
- the imaging device 21 images the non-processing execution object OBJ_ntgt that has fallen and is now positioned inside the container CB, and the position and orientation calculation unit 311 may select the non-processing execution object OBJ_ntgt that has fallen and is now positioned inside the container CB as a new processing execution object OBJ_tgt based on the image data IMG generated by the imaging device 21 imaging the non-processing execution object OBJ_ntgt.
- the signal generating unit 312 may generate a robot control signal for changing at least one of the position and the posture of the imaging device 21 by moving the imaging device 21 so that the imaging device 21 can properly image the non-processing execution object OBJ_ntgt that has fallen and is located in the container CB before the imaging device 21 images the non-processing execution object OBJ_ntgt that has fallen and is located in the container CB.
- At least one of the position and the posture of the imaging device 21 is changed so that the imaging device 21 can properly image the non-processing execution object OBJ_ntgt that has fallen and is located in the container CB before the imaging device 21 images the non-processing execution object OBJ_ntgt that has fallen and is located in the container CB. Thereafter, the imaging device 21 may image the non-processing execution object OBJ_ntgt that has fallen and is located in the container CB.
- the state in the fourth modified example where "the imaging device 21 can properly image the non-processing execution object OBJ_ntgt positioned in the container CB by falling” may include the state already described in the third modified example where "the desired part of the non-processing execution object OBJ_ntgt positioned in the container CB by falling faces the desired direction".
- the state in the fourth modified example where "the imaging device 21 can properly image the non-processing execution object OBJ_ntgt positioned in the container CB by falling” may include the state where "the desired part of the non-processing execution object OBJ_ntgt positioned in the container CB by falling faces the direction in which the imaging system 2 (particularly the imaging device 21) that images the non-processing execution object OBJ_ntgt can be positioned" (i.e., the first example described in the third modified example), ...
- the state where "the desired part of the non-processing execution object OBJ_ntgt positioned in the container CB by falling faces the direction in which the imaging system 2 (particularly the imaging device 21) that images the non-processing execution object OBJ_ntgt can be positioned" (i.e., the first example described in the third modified example).
- the signal generation unit 312 may first estimate at least one of the position and orientation of the non-processing execution object OBJ_ntgt that has fallen and is now positioned inside the container CB.
- the signal generating unit 312 may estimate at least one of the position and orientation of the non-processing execution object OBJ_ntgt that has fallen and is positioned in the container CB based on the holding state identified in step S23 of FIG. 5 or FIG. 22 (i.e., the holding state of the group of objects to be held OBG_h held by the end effector 4). Since the holding state is identified based on the image data IMG acquired in step S21 of FIG. 5 or FIG. 22, the signal generating unit 312 may be considered to have estimated at least one of the position and orientation of the non-processing execution object OBJ_ntgt that has fallen and is positioned in the container CB based on the image data IMG acquired in step S21 of FIG. 5 or FIG. 22.
- the desired position may be used as an estimate of the position of the non-processing execution object OBJ_ntgt that has fallen to a position in the container CB.
- the signal generating unit 312 does not need to estimate the position of the non-processing execution object OBJ_ntgt that has fallen to a position in the container CB.
- the desired posture may be used as an estimate of the posture of the non-processing execution object OBJ_ntgt that has fallen into the container CB.
- the signal generating unit 312 does not need to estimate the posture of the non-processing execution object OBJ_ntgt that has fallen into the container CB.
- the signal generating unit 312 may estimate at least one of the position and orientation of the non-processed execution object OBJ_ntgt that has fallen and is positioned inside the container CB, by using the simulation described in the second modified example. Specifically, the signal generating unit 312 may estimate at least one of the position and orientation of the non-processed execution object OBJ_ntgt that has fallen and is positioned inside the container CB, by estimating, by using the simulation described in the second modified example, the behavior of the non-processed execution object OBJ_ntgt when at least one of the robot 1 and the end effector 4 is controlled based on the robot control signal for dropping the non-processed execution object OBJ_ntgt generated in step S24 of FIG. 5 or FIG. 22.
- the signal generating unit 312 may generate a robot control signal for changing at least one of the position and the orientation of the imaging device 21 by moving the imaging device 21 based on at least one of the estimation results of the position and the orientation of the non-processing execution object OBJ_ntgt that has fallen and is positioned in the container CB.
- the signal generating unit 312 may generate a robot control signal for changing at least one of the position and the orientation of the imaging device 21 by moving the imaging device 21 so that a desired part of the non-processing execution object OBJ_ntgt that exists at the estimated position in the container CB faces a desired direction.
- the signal generating unit 312 may generate a robot control signal for changing at least one of the position and the orientation of the imaging device 21 by moving the imaging device 21 so that a desired part of the non-processing execution object OBJ_ntgt that exists in the container CB with the estimated orientation faces a desired direction.
- the imaging device 21 is more likely to be able to properly image the non-processing execution object OBJ_ntgt that has fallen and is positioned inside the container CB (i.e., a non-processing execution object OBJ_ntgt whose desired part is facing the desired direction).
- the desired portion of the non-processing object OBJ_ntgt includes a portion of the non-processing object OBJ_ntgt that can be used to generate position and orientation data POI of the non-processing object OBJ_ntgt located in the container CB (e.g., a portion corresponding to a template model)
- the position and orientation data POI of the non-processing object OBJ_ntgt located in the container CB is more likely to be generated appropriately.
- control device 3 is more likely to be able to select the non-processing object OBJ_ntgt that has fallen into the container CB as a new processing object OBJ_tgt to be held by the end effector 4 next.
- the control device 3 is less likely to be unable to select a new processing object OBJ_tgt (i.e., no target object OBJ is detected by the matching process).
- more opportunities are secured for the end effector 4 to hold the target object OBJ. This reduces the need to redo the matching process due to no target object OBJ being detected by the matching process, thereby improving the throughput of the robot system SYS.
- the end effector 4 is more likely to be able to properly hold the non-processing execution object OBJ_ntgt selected as the new processing execution object OBJ_tgt.
- the signal generating unit 312 may not generate a robot control signal for moving the imaging device 21 to change at least one of the positions and postures of the imaging device 21 based on at least one of the estimated results of the position and posture of the non-processing execution object OBJ_ntgt that has fallen into the container CB.
- the control device 3 may not change at least one of the positions and postures of the imaging device 21 before the imaging device 21 images the non-processing execution object OBJ_ntgt based on at least one of the estimated results of the position and posture of the non-processing execution object OBJ_ntgt that has fallen into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds the non-processing execution object OBJ_ntgt that has fallen into the container CB based on at least one of the estimated results of the position and posture of the non-processing execution object OBJ_ntgt that has fallen into the container CB.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds the non-processing execution object OBJ_ntgt that exists in the container CB at an estimated position.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds the non-processing execution object OBJ_ntgt that exists in the container CB in an estimated posture.
- the desired position may be used as an estimate of the position of the non-processed execution object OBJ_ntgt that is positioned in the container CB as a result of the drop.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds the non-processed execution object OBJ_ntgt that is positioned in the container CB as a result of the drop, based on the information about the desired position used to control the robot 1 so that the non-processed execution object OBJ_ntgt falls into the container CB at a desired position.
- the desired posture may be used as an estimate of the posture of the non-processing execution object OBJ_ntgt positioned in the container CB by falling.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the end effector 4 holds the non-processing execution object OBJ_ntgt positioned in the container CB by falling, based on information about the desired posture used to control the robot 1 so that the posture of the non-processing execution object OBJ_ntgt positioned in the container CB by falling becomes a desired posture.
- the control device 3 determines whether or not the end effector 4 is holding a non-processing execution object OBJ_ntgt based on image data IMG generated by the imaging device 21 capturing an image of the group of objects to be held OBG_h held by the end effector 4 in step S22 of Fig. 5 or Fig. 22.
- the control device 3 may determine whether or not the end effector 4 is holding a non-processing execution object OBJ_ntgt using a method different from the method using the image data IMG generated by the imaging system 2 in step S22 of Fig. 5 or Fig. 22.
- the control device 3 (particularly the erroneous holding detection unit 313) identifies the holding state of the group of objects to be held OBG_h held by the end effector 4 in step S23 of FIG. 5 or FIG. 22 based on image data IMG generated by the imaging device 21 capturing an image of the group of objects to be held OBG_h held by the end effector 4.
- the control device 3 may identify the holding state of the group of objects to be held OBG_h held by the end effector 4 in step S23 of FIG. 5 or FIG. 22 using a method other than the method using the image data IMG generated by the imaging system 2.
- the control device 3 may determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on image data generated by an imaging system 91a (see FIG. 18) different from the imaging system 2 capturing an image of the group of objects to be held OBG_h held by the end effector 4.
- the process of determining whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the image data generated by the imaging system 91a may be the same as the process of determining whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the image data IMG generated by the imaging system 2. For this reason, a detailed description of the process of determining whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the image data generated by the imaging system 91a will be omitted.
- the control device 3 may move the end effector 4 relative to the imaging system 91a so that at least a part of the end effector 4 (particularly, the part of the end effector 4 for holding the target object OBJ) is included in the imaging range (imaging angle of view) of the imaging system 91a before the imaging system 91a images the group of objects to be held OBG_h held by the end effector 4.
- the imaging system 91a can properly image the group of objects to be held OBG_h held by the end effector 4.
- the control device 3 does not need to move the end effector 4 relative to the imaging system 91a.
- the control device 3 does not need to move the end effector 4 so that the imaging range (imaging angle of view) of the imaging system 2 includes at least a portion of the end effector 4 (particularly, the portion of the end effector 4 for holding the target object OBJ). This improves throughput (reduces takt time).
- the control device 3 may identify the holding state of the group of objects to be held OBG_h held by the end effector 4 based on image data generated by an imaging system 91a (see FIG. 18) different from the imaging system 2 capturing an image of the group of objects to be held OBG_h held by the end effector 4.
- the process of identifying the holding state of the group of objects to be held OBG_h held by the end effector 4 based on the image data generated by the imaging system 91a may be the same as the process of identifying the holding state of the group of objects to be held OBG_h held by the end effector 4 based on the image data IMG generated by the imaging system 2. For this reason, a detailed description of the process of identifying the holding state of the group of objects to be held OBG_h held by the end effector 4 based on the image data generated by the imaging system 91a will be omitted.
- the imaging system 91a when the imaging system 91a images the group of objects to be held OBG_h held by the end effector 4, the imaging system 91a may be considered to function as a measuring device capable of measuring the group of objects to be held OBG_h held by the end effector 4.
- the imaging system 91a may be considered to function as a measuring device that can be used to determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt.
- the imaging system 91a may be considered to function as a measuring device that can be used to identify the holding state of the group of objects to be held OBG_h held by the end effector 4.
- control device 3 may acquire information on at least one of the position and orientation of the reference point TCP (e.g., the tool center point) of the end effector 4 from the robot control device 13 provided in the robot 1, and, based on the acquired information, identify (estimate) the holding state of the group of objects to be held OBG_h (in particular, the holding state of the processing execution object OBJ_tgt that would be directly held by the end effector 4).
- TCP e.g., the tool center point
- the relative positional relationship between the end effector 4 and the target object OBJ when the end effector 4 holds the target object OBJ may be registered in advance as a holding target positional relationship as described above.
- the end effector 4 holds the processing execution object OBJ_tgt at a timing when the relative positional relationship between the end effector 4 and the processing execution object OBJ_tgt matches the holding target positional relationship registered in advance. Therefore, it is highly likely that the relative positional relationship between the end effector 4 and the processing execution object OBJ_tgt held by the end effector 4 matches the holding target positional relationship registered in advance.
- control device 3 may estimate the holding state (e.g., at least one of the position and the orientation) of the processing execution object OBJ_tgt held by the end effector 4 based on information on at least one of the position and the orientation of the reference point TCP of the end effector 4 and information on the holding target positional relationship registered in advance.
- the holding state e.g., at least one of the position and the orientation
- the relative posture relationship between the end effector 4 and the target object OBJ when the end effector 4 holds the target object OBJ may be registered in advance as a holding target posture relationship as described above.
- the end effector 4 holds the processing execution object OBJ_tgt at the timing when the relative posture relationship between the end effector 4 and the processing execution object OBJ_tgt matches the holding target posture relationship registered in advance. Therefore, it is highly likely that the relative posture relationship between the end effector 4 and the processing execution object OBJ_tgt held by the end effector 4 matches the holding target posture relationship registered in advance.
- control device 3 may specify the holding state (e.g., at least one of the position and posture) of the processing execution object OBJ_tgt held by the end effector 4 based on information on at least one of the position and posture of the reference point TCP of the end effector 4 and information on the holding target posture relationship registered in advance.
- the holding state e.g., at least one of the position and posture
- the control device 3 may determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the detection result of a weight sensor (in other words, a load sensor) equipped in the robot 1.
- a weight sensor capable of detecting a change in the weight of the target object OBJ held by the end effector 4 may be used as the weight sensor.
- Such a weight sensor may be disposed at the joint 122 of the robot arm 12, or may be disposed between the flange surface of the robot arm 12 (specifically, the flange surface to which the end effector 4 is attached) and the end effector 4, or may be disposed at the end effector 4.
- the weight detection value which is the detection result of the weight sensor when the end effector 4 is holding the non-processing execution object OBJ_ntgt, should be heavier than the weight detection value, which is the detection result of the weight sensor when the end effector 4 is not holding the non-processing execution object OBJ_ntgt. Therefore, the control device 3 can accurately determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt based on the detection result of the weight sensor.
- the control device 3 may also determine the holding state of the processing execution object OBJ_tgt held by the end effector 4 based on the detection result of a weight sensor (in other words, a load sensor) provided on the robot 1.
- a weight sensor in other words, a load sensor
- the weight sensor provided in the robot 1 may be considered to function as a measuring device capable of measuring the group of objects to be held OBG_h held by the end effector 4.
- the weight sensor provided in the robot 1 may be considered to function as a measuring device that can be used to determine whether or not the end effector 4 is holding a non-processing execution object OBJ_ntgt.
- the weight sensor provided in the robot 1 may be considered to function as a measuring device that can be used to identify the holding state of the group of objects to be held OBG_h held by the end effector 4.
- control device 3 may determine whether the end effector 4 is holding a non-processing object OBJ_ntgt based on the detection result of a weight sensor 92a (see FIG. 19) capable of measuring the weight of the target object group OBG_cb contained in the container CB.
- the weight detection value which is the detection result of the weight sensor 92a when the end effector 4 is holding a non-processing object OBJ_ntgt together with a processing object OBJ_tgt from the container CB, should be lighter than the weight detection value, which is the detection result of the weight sensor 92a when the end effector 4 is holding a processing object OBJ_tgt from the container CB but is not holding a non-processing object OBJ_ntgt. Therefore, the control device 3 can accurately determine whether the end effector 4 is holding a non-processing object OBJ_ntgt based on the detection result of the weight sensor 92a.
- the control device 3 may determine the holding state of the processing execution object OBJ_tgt held by the end effector 4 based on the detection result of the weight sensor 92a capable of measuring the weight of the target object group OBG_cb contained in the container CB.
- the weight sensor 92a may be considered to function as a measuring device capable of measuring the group of objects to be held OBG_h held by the end effector 4.
- the weight sensor 92a may be considered to function as a measuring device that can be used to determine whether the end effector 4 is holding a non-processing execution object OBJ_ntgt.
- the weight sensor 92a may be considered to function as a measuring device that can be used to identify the holding state of the group of objects to be held OBG_h held by the end effector 4.
- the erroneous holding detection unit 313 may specify the holding state of the holding target object group OBG held by the end effector 4 based on the image data IMG acquired in step S21 in step S23.
- the holding state may include the type of object held by the end effector 4.
- at least one object of a different type from the target object OBJ (hereinafter, may be referred to as a different object as necessary) may be accidentally or intentionally contained in the container CB (mounting device T).
- the end effector 4 may hold the different object.
- the smaller the difference in shape between the different object and the target object OBJ e.g., the processing execution object OBJ_tgt
- the desired release process cannot be performed when a different object held by the end effector 4 is released.
- the different object may collide with an object (e.g., the placement device T) from which the processing execution object OBJ_tgt is to be released, and the object (e.g., the placement device T) from which the processing execution object OBJ_tgt is to be released may be damaged.
- the erroneous holding detection unit 313 may specify (discriminate) whether the object held by the end effector 4 is a target object OBJ (e.g., a process execution object OBJ_tgt) or a different object as the holding state of the target object OBJ held by the end effector 4 based on the image data IMG acquired in step S21, thereby specifying the type of the object held by the end effector 4.
- the type of the object held by the end effector 4 may be referred to as the holding state of the object held by the end effector 4.
- the type of the object held by the end effector 4 may also be referred to as the holding manner of the object (e.g., at least one of the process execution object OBJ_tgt and a different object) by the end effector 4.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to perform the above-mentioned matching process based on the image data IMG acquired in step S21, thereby identifying (determining) whether the object held by the end effector 4 is the processing execution object OBJ_tgt or a different object.
- the erroneous holding detection unit 313 may control the position and orientation calculation unit 311 to perform a matching process using the image data IMG acquired in step S21, a template model showing at least a part of the shape of the target object OBJ (processing execution object OBJ_tgt) and a template model showing at least a part of the shape of the different object, thereby identifying (determining) whether the object held by the end effector 4 is the processing execution object OBJ_tgt or a different object.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 based on the type of the object held by the end effector 4 identified (discriminated) in step S23 (step S24).
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 in a control mode different from the control mode for controlling at least one of the robot 1 and the end effector 4 to perform a release process of the processing execution object OBJ_tgt held by the end effector 4.
- the signal generating unit 312 may generate a robot control signal for controlling at least one of the robot 1 and the end effector 4 so that the different object held by the end effector 4 is placed (e.g., dropped) in a placement device T different from the container CB (e.g., a container different from the container CB).
- a placement device T e.g., a container different from the container CB.
- the heterogeneous objects can be selected and the desired processing (e.g., desired release processing) can be performed on the target objects OBJ.
- the erroneous holding detection unit 313 may control the output device 35 to output an alert to notify the user that the object held by the end effector 4 is a heterogeneous object.
- control device 3 controls at least one of the robot 1 and the end effector 4 so that the non-processing execution object OBJ_ntgt falls into the container CB.
- control device 3 may control another robot different from the robot 1.
- the control device 3 may control another robot that is capable of holding the target object OBJ and has another end effector different from the end effector 4 so that the non-processing execution object OBJ_ntgt falls into the container CB.
- control device 3 may control the other robot so that the other end effector of the other robot holds the non-processing execution object OBJ_ntgt held by the end effector 4, and then the other end effector of the other robot returns (e.g., releases) the held non-processing execution object OBJ_ntgt to the container CB.
- the end effector 4 e.g., a hand gripper or a vacuum gripper
- a placement process e.g., at least one of a holding process and a release process
- the end effector 4 is not limited to a device that performs a placement process (e.g., at least one of a holding process and a release process), and may be a device that performs other processes on the target object OBJ.
- the robot arm 12 may be equipped with a processing device for processing the target object OBJ, which is an example of the end effector 4.
- the processing device may perform at least one of an additive process for adding a new object to the target object OBJ, a removal process for removing a part of the target object OBJ, a welding process for joining two target objects OBJ, and a cutting process for cutting the target object OBJ.
- the processing device may process the target object OBJ using a tool such as a cutting tool. In this case, the processing device including the tool may be attached to the robot arm 12.
- the processing device may process the target object OBJ by irradiating an energy beam (e.g., light, electromagnetic waves, and charged particle beams) to the target object OBJ.
- an energy beam e.g., light, electromagnetic waves, and charged particle beams
- the processing device including an irradiation device for irradiating the target object OBJ with an energy beam may be attached to the robot arm 12.
- the processing device may perform soldering processing to solder a component to the target object OBJ.
- the processing device may use a soldering iron to solder the component to the target object OBJ.
- the processing device including the soldering iron may be attached to the robot arm 12.
- the processing device may solder the component to the target object OBJ by irradiating the solder with an energy beam (e.g., light, electromagnetic waves, and charged particle beams).
- the processing device including an irradiation device that irradiates the target object OBJ with an energy beam may be attached to the robot arm 12.
- the robot arm 12 may be equipped with a measuring device for measuring the target object OBJ, which is an example of the end effector 4.
- the measuring device may be capable of measuring the characteristics of the target object OBJ. Examples of the characteristics of the target object OBJ include at least one of the shape of the target object OBJ, the size of the target object OBJ, the distance from the measuring device to the target object OBJ, the reflectance of the target object OBJ, the transmittance of the target object OBJ, and the temperature of the target object OBJ.
- the measuring device may be an existing contact measuring device.
- the measuring device may measure the target object OBJ using a touch probe. In this case, a measuring device including a touch probe may be attached to the robot arm 12.
- the measuring device may be an existing non-contact measuring device.
- the measuring device may measure the target object OBJ by irradiating an energy beam (e.g., light, electromagnetic waves, and charged particle beams) to the target object OBJ.
- an energy beam e.g., light, electromagnetic waves, and charged particle beams
- a measuring device including an irradiation device that irradiates the target object OBJ with an energy beam may be attached to the robot arm 12.
- the measurement device may be an imaging device equipped with one or more monocular cameras.
- the measurement device may be a stereo camera equipped with two monocular cameras.
- the control device 3 may generate a control signal for controlling the operation of at least one of the processing device and the measuring device.
- the control device 3 may generate a control signal for controlling the rotation of a tool provided in the processing device.
- the control device 3 may generate a control signal for controlling the on/off of an energy beam provided by an irradiation device provided in at least one of the processing device and the measuring device.
- the robot arm 12 may be equipped with a discharge device as an example of the end effector 4.
- the discharge device may discharge at least one of adhesive, sealant, paint, and solder.
- the discharge device may discharge at least one of adhesive, sealant, paint, and solder toward the target object OBJ.
- the control device 3 may generate a control signal for controlling at least one of turning on and off the discharge from the discharge device and the discharge amount. Note that, because discharging at least one of adhesive, sealant, paint, and solder onto the target object OBJ can be said to process the target object OBJ, the discharge device may also be called a processing device.
- the imaging system 2 includes the lighting device 23.
- the lighting device 23 may be integrated with the imaging device 21, or may be a device separate from the imaging device 21.
- the robot 1 may include the lighting device 23, rather than the imaging system 2.
- the lighting device 23 may be attached to the robot 1 independently of the imaging system 2.
- the imaging system 2 includes a single imaging device 21.
- the imaging system 2 may include multiple imaging devices 21.
- the imaging system 2 may include a first imaging device 21 that is a monocular camera and a second imaging device 21 that is a stereo camera.
- the control device 3 may calculate at least one of the position and orientation of the target object OBJ by performing at least one of a 2D matching process using the image data IMG generated by the first imaging device 21 and a 3D matching process using three-dimensional position data generated based on the image data IMG generated by the second imaging device 21.
- the control device 3 may calculate at least one of the position and orientation of the target object OBJ by performing at least one of a 2D matching process using the image data IMG generated by the imaging device 21 and a 3D matching process using three-dimensional position data generated based on the image data IMG generated by the imaging device 21. Specifically, the control device 3 may calculate at least one of the position and orientation of the target object OBJ by performing a 2D matching process using image data IMG generated by one monocular camera included in the imaging device 21.
- control device 3 may calculate at least one of the position and orientation of the target object OBJ by generating three-dimensional position data based on image data IMG generated by two monocular cameras included in the imaging device 21 and performing a 3D matching process using the three-dimensional position data.
- the imaging system 2 is provided on the robot 1 equipped with the robot arm 12.
- the imaging system 2 may be provided on a robot that does not have the robot arm 12.
- the imaging system 2 may be provided on the robot 1 equipped with a support device capable of suspending the imaging system 2 from above the target object OBJ.
- the imaging system 2 may be provided on the support device.
- the support device may include a plurality of leg members extending upward from the support surface S, and a beam member connecting the plurality of leg members via the upper ends of the plurality of leg members or their vicinity.
- the robot 1 may be capable of moving the support device.
- the robot system SYS may include a measurement system 5 capable of measuring at least one of the distance to the target object OBJ and the three-dimensional shape in addition to or instead of the imaging system 2 capable of imaging the target object OBJ.
- the control device 3 (particularly, the position and orientation calculation unit 311) may generate three-dimensional position data usable for 3D matching processing based on at least one measurement result of the distance to the target object OBJ and the three-dimensional shape. Thereafter, the control device 3 (particularly, the position and orientation calculation unit 311) may perform 3D matching processing using the three-dimensional position data, in the same way as when the three-dimensional position data is generated from the image data IMG generated by the imaging system 2.
- the measurement system 5 may be an existing system capable of optically measuring at least one of the distance to the target object OBJ and the three-dimensional shape.
- the measurement system 5 may be an existing system capable of non-contactly measuring at least one of the distance to the target object OBJ and the three-dimensional shape.
- the measurement system 5 may be capable of optically measuring at least one of the distance to the target object OBJ and the three-dimensional shape by irradiating the target object OBJ with electromagnetic waves for measurement and detecting the electromagnetic waves returning from the target object OBJ irradiated with the electromagnetic waves toward the measurement system 5.
- the measurement electromagnetic waves may be light (in this case, the light irradiated to the target object OBJ may be referred to as measurement light) or may be radio waves (in this case, the radio waves irradiated to the target object OBJ may be referred to as measurement waves).
- Examples of such a measurement system 5 include at least one of a TOF (Time Of Flight) interferometer, an FMCW (Frequency Modulated Continuous Wave) interferometer, an optical comb interferometer that uses light (optical frequency comb) containing frequency components arranged at equal intervals on the frequency axis as measurement light, a triangulation measuring instrument, and a millimeter wave radar that uses millimeter waves as measurement waves.
- At least one of the TOF measuring instrument and the FMCW measuring instrument may be called LiDAR (Light Detection And Ranging).
- the control device 3 may generate three-dimensional position data equivalent to point cloud data based on the measurement result of the target object OBJ by the measurement sensor. Thereafter, the control device 3 (particularly the position and orientation calculation unit 311) may perform 3D matching processing using the three-dimensional position data, in the same manner as when the three-dimensional position data is generated from the image data IMG generated by the imaging system 2.
- the measurement system 5 may be referred to as a measurement device or a measurement sensor.
- the imaging system 2 also captures an image of the target object OBJ by detecting the return light from the target object OBJ using the imaging elements provided in each of the imaging devices 21. In other words, it can be said that both the imaging system 2 and the measurement system 5 detect the return light from the target object OBJ. For this reason, the imaging system 2 and the measurement system 5 may be collectively referred to as a light detection system.
- a control device is provided with a holding device capable of holding an object, and the control device generates a control signal for controlling at least one of a robot that moves the holding device and the holding device, A computing device for generating the control signal; a communication device that outputs the control signal generated by the arithmetic device,
- the computing device includes: generating, as the control signal, a first control signal for controlling at least one of the robot and the holding device so that, when a first target object of the plurality of target objects placed on the placement member is held by the holding device and a second target object of the plurality of target objects placed on the placement member is held by the holding device together with the first target object, at least the second target object falls onto the placement member;
- a control device that generates, as the control signal, a second control signal for controlling at least one of the robot and the holding device so that at least the fourth target object falls onto the placement member from a position lower than the position at
- Appendix A2 The control device described in Appendix A1, wherein the second control signal includes at least one of a signal for controlling at least one of the robot and the holding device so that the at least fourth target object positioned at the lower position falls from the holding device onto the placement member, and a signal for controlling at least one of the robot and the holding device so that the at least fourth target object positioned at the lower position falls from the holding device onto the placement member.
- Appendix A3 The control device described in Appendix A1 or A2, wherein the height of at least a portion of the multiple target objects placed on the mounting member when the at least fourth target object starts to fall based on the second control signal is lower than the height of at least a portion of the multiple target objects placed on the mounting member when the at least second target object starts to fall based on the first control signal.
- Appendix A4 A control device described in any one of Appendices A1 to A3, wherein the number of target objects placed on the mounting member when the at least fourth target object starts to fall is less than the number of target objects placed on the mounting member when the at least second target object starts to fall.
- Appendix A5 the computing device determines a first drop height at which the at least second target object starts to drop onto the mounting member based on an imaging result obtained by imaging at least some of the plurality of target objects placed on the mounting member using an imaging system;
- Appendix A6 The control device described in Appendix A5, wherein the first drop height is the height of the second target object when the at least second target object starts to drop, the height of the first target object when the at least second target object starts to drop, the height of the first and second target objects when the at least second target object starts to drop, the height of the imaging system when the at least second target object starts to drop, or the height of the holding device when the at least second target object starts to drop.
- the holding device is controlled to hold the first target object based on an imaging result obtained by imaging a target object group including at least some of the plurality of target objects placed on the mounting member by the imaging system;
- the holding device is controlled to hold the first target object based on an imaging result obtained by imaging a first target object group including at least some of the plurality of target objects placed on the mounting member by an imaging system;
- Appendix A9 The control device according to Appendix A8, wherein a height of the second target object group is lower than a height of the first target object group.
- the computing device determines a second drop height at which the at least fourth target object starts to drop onto the mounting member based on an imaging result obtained by imaging at least some of the plurality of target objects placed on the mounting member using the imaging system;
- Appendix A11 The control device described in Appendix A10, wherein the second drop height is a height of the fourth target object when the at least fourth target object starts to drop, a height of the third target object when the at least fourth target object starts to drop, a height of the third and fourth target objects when the at least fourth target object starts to drop, a height of the imaging system when the at least fourth target object starts to drop, or a height of the holding device when the at least fourth target object starts to drop.
- Appendix A12 The control device according to Appendix A10 or A11, wherein the imaging results used to determine the second drop height are imaging results obtained by imaging the second target object group by the imaging system.
- the state in which the second target object is held by the holding device together with the first target object includes a state in which the second target object is indirectly or directly held by the holding device;
- the control device according to any one of appendices A1 to A12, wherein a state in which the fourth target object is held by the holding device together with the third target object includes a state in which the fourth target object is indirectly or directly held by the holding device.
- the state in which the second target object is indirectly held by the holding device is a state in which the second target object is held by the first target object held by the holding device
- the state in which the second target object is directly held by the holding device is a state in which the first target object and the second target object are directly held by the holding device
- the state in which the fourth target object is indirectly held by the holding device is a state in which the fourth target object is held by the third target object held by the holding device
- the control device according to Appendix A13 wherein a state in which the fourth target object is directly held by the holding device is a state in which the third target object and the fourth target object are each directly held by the holding device.
- Appendix A25 The control device according to Appendix A24, wherein the end of the third object is a portion of the end of the third object that is farthest from the reference point of the holding device.
- Appendix A26 The control device described in any one of Appendices A21 to A25, wherein the third control signal includes a signal for controlling the holding device to reduce the holding force of the holding device while holding the third target object, thereby causing the fourth target object to fall from the third target object to the placement member.
- the first control signal includes a first signal for controlling at least one of the robot and the holding device so that the at least second target object falls onto the placement member;
- Appendix A31 The control device according to Appendix A29 or A30, wherein the control mode includes at least one of a control mode of the robot and a control mode of the holding device.
- Appendix A32 The control device of any one of Appendix A1 to A31, wherein the computing device generates the first control signal after the first target object is held by the holding device.
- Appendix A33 The control device according to Appendix A32, wherein the calculation device generates the first control signal based on a measurement result of a measurement device.
- Appendix A34 The control device described in Appendix A33, wherein the calculation device generates the first control signal for controlling at least one of the robot and the holding device so that the posture of the at least second target object positioned on the placement member becomes a desired posture by falling, based on the measurement result.
- Appendix A35 The control device according to Appendix A34, wherein the desired posture includes a posture in which a desired portion of at least the second target object, which has been dropped and positioned on the placement member, faces a desired direction.
- Appendix A36 The control device of any one of Appendix A1 to A35, wherein the calculation device generates the second control signal after the third target object is held by the holding device.
- Appendix A37 The control device according to Appendix A36, wherein the calculation device generates the second control signal based on a measurement result of a measurement device.
- Appendix A38 The control device described in Appendix A37, wherein the calculation device generates the second control signal for controlling at least one of the robot and the holding device so that the posture of the at least fourth target object positioned on the placement member becomes a desired posture by falling, based on the measurement result.
- the desired posture includes a posture in which a desired portion of at least the fourth target object, which has been dropped and positioned on the placement member, faces a desired direction.
- Appendix A40 The control device described in any one of Appendix A33 to A39, wherein the calculation device generates the first control signal for controlling at least one of the robot and the holding device so that the at least second target object falls to a desired position within the placement member based on the measurement result.
- Appendix A41 The control device described in any one of Appendix A33 to A40, wherein the calculation device generates the second control signal for controlling at least one of the robot and the holding device so that the at least fourth target object falls to a desired position within the placement member based on the measurement result.
- Appendix A42 The control device according to any one of claims A40 to A41, wherein the desired position includes a position in the mounting member where the target object is not present.
- Appendix A43 The control device described in any one of Appendices A33 to A42, wherein the calculation device determines, based on the measurement result, whether to drop only the second target object, of the first target object and the second target object held by the holding device, onto the mounting member, or whether to drop the first target object and the second target object onto the mounting member, and generates the first control signal based on a result of the determination.
- Appendix A44 The control device described in any one of Appendices A33 to A43, wherein the calculation device determines, based on the measurement result, whether to drop only the fourth target object, of the third target object and the fourth target object held by the holding device, onto the mounting member, or whether to drop the third target object and the fourth target object onto the mounting member, and generates the first control signal based on the result of the determination.
- the measurement device includes the imaging system;
- the measurement device includes the imaging system; The control device described in any one of Appendix A33 to A45, wherein the calculation device holds the third target object in the holding device based on an imaging result of imaging the group of target objects by the imaging system, and then generates the second control signal based on the imaging result of the imaging system.
- the control device according to any one of Appendix A45 and A46, wherein the imaging system is provided on the robot.
- the arithmetic device generates the control signal based on an imaging result obtained by imaging at least some of the plurality of target objects placed on the placement member using an imaging system.
- Appendix A49 The control device described in Appendix A48, wherein the imaging system is provided on the robot.
- Appendix A50 The control device of any one of Appendix A1 to A49, wherein the placement member includes a container capable of accommodating a plurality of the target objects.
- Appendix A51 A control device according to any one of appendices A1 to A50; and a control system comprising the imaging system.
- Appendix A52 A control device according to any one of appendices A1 to A50; The imaging system; A robot system comprising the robot.
- a control method for generating a control signal for controlling at least one of a robot that is provided with a holding device capable of holding an object and the holding device comprising: generating, as the control signal, a first control signal for controlling at least one of the robot and the holding device so that, when a first target object of the plurality of target objects placed on the placement member is held by the holding device and a second target object of the plurality of target objects placed on the placement member is held by the holding device together with the first target object, at least the second target object falls onto the placement member; and generating, as the control signal, a second control signal for controlling at least one of the robot and the holding device so that at least the fourth target object falls onto the placement member from a position lower than a position at which the at least second target object starts to fall onto the placement member when a third target object among the multiple target objects placed on the placement member is held by the holding device together with the third target object after the at least second target object falls onto the placement member based on the first control signal
- a control device is provided with a holding device capable of holding an object, and the control device generates a control signal for controlling at least one of a robot that moves the holding device and the holding device, A computing device for generating the control signal; a communication device that outputs the control signal generated by the arithmetic device, The calculation device generates a first control signal as the control signal for controlling at least one of the robot and the holding device based on the holding state of the group of target objects held by the holding device, which is detected based on measurement results obtained by measuring the group of target objects to be held by the holding device, which is the multiple target objects held by the holding device, using a measurement device, after the holding operation is performed by the holding device on the multiple target objects placed on a mounting member.
- the computing device includes: generating, as a part of the first control signal, a signal for controlling the robot so that the holding device moves away from a position at which the holding device held the group of holding target objects toward the plurality of target objects placed on the placement member after the holding device has performed the holding operation on the target objects placed on the placement member;
- the control device described in Appendix B1 in which the holding state is detected based on the measurement results obtained by measuring the group of target objects held by the holding device that have moved away from the multiple target objects placed on the mounting member based on the signal that is a portion of the first control signal, using the measuring device.
- Appendix B3 The control device described in Appendix B2, wherein the signal that is a part of the first control signal includes a signal for controlling the robot to move the holding device to a position higher than the position when the group of objects to be held is held by the holding device.
- Appendix B4 the arithmetic device generates the first control signal for controlling at least one of the robot and the holding device based on the holding state so that at least one of the group of holding target objects is placed on the placement member;
- Appendix B5 The control device described in Appendix B4, wherein the first control signal includes a signal for controlling at least one of the robot and the holding device so that at least one of the group of objects to be held is placed on the placement member from a position lower than a position at which the measuring device measures the group of objects to be held to obtain the measurement result.
- Appendix B6 The control device described in Appendix B4 or B5, wherein placing at least one of the target objects of the group of objects to be held on the placement member includes dropping at least one of the target objects of the group of objects to be held onto the placement member.
- the holding operation includes an operation for holding one of the plurality of target objects placed on the placement member with the holding device, The control device described in any one of Appendices B1 to B6, wherein the target objects other than the one target object among the group of target objects to be held by the holding device are extra target objects held by the holding device when the one target object is held by the holding operation.
- the holding state includes a state in which at least one of the group of holding target objects held by the holding device is indirectly held by the holding device, and a state in which two or more of the group of holding target objects held by the holding device are directly held by the holding device.
- Appendix B11 When the detected holding state is a state in which the one target object held by the holding device holds the other target object, The control device described in Appendix B10, wherein the first control signal includes a signal for controlling at least one of the robot and the holding device so that the other target object is placed on the placement member while holding the one target object.
- Appendix B12 The control device described in Appendix B11, wherein when the other target object is placed on the placement member based on the first control signal, the one target object held by the holding device is transported out of the placement member and released from the holding device outside the placement member.
- Appendix B13 The control device according to Appendix B11 or B12, wherein placing the other target object on the placement member includes dropping the other target object onto the placement member.
- Appendix B14 When the detected holding state is a state in which each of two or more of the target objects among the group of holding target objects held by the holding device is directly held by the holding device, The control device described in any one of Appendices B10 to B13, wherein the first control signal includes a signal for controlling at least one of the robot and the holding device so that the group of objects to be held held by the holding device is placed on the placement member.
- Appendix B15 The control device described in Appendix B14, wherein after the group of objects to be held in the holding device is placed on the mounting member based on the first control signal, one of the plurality of target objects placed on the mounting member is held by the holding device, or at least a portion of the plurality of target objects placed on the mounting member is measured by the measuring device.
- Appendix B16 The control device described in Appendix B14 or B15, wherein the group of objects to be held held by the holding device is placed on the placement member includes the group of objects to be held held by the holding device being dropped onto the placement member.
- the one target object includes a first target object
- the other target object includes a second target object
- the two or more target objects include a first target object and a second target object
- placing the first and second target objects on the placement member includes dropping the first and second target objects onto the placement member.
- the measurement device is a first measurement device, The control device according to any one of Appendix B17 to B20, wherein the calculation device determines the first placement height based on a measurement result of at least some of the plurality of target objects placed on the placement member by a second measurement device.
- Appendix B22 The control device described in Appendix B21, wherein at least the position at which the second target object is placed on the mounting member at the determined first placement height is included in a measurement range measured by the second measurement device and including at least a portion of the multiple target objects placed on the mounting member.
- Appendix B23 The control device described in Appendix B21 or B22, wherein the calculation device determines the first placement height based on at least one of a height and a quantity of at least a portion of the multiple target objects placed on the placement member, the height and quantity being calculated based on measurement results by the second measurement device of at least a portion of the multiple target objects placed on the placement member.
- the second measurement device is the first measurement device
- the calculation device determines the first placement height based on a measurement result obtained by measuring at least some of the plurality of target objects placed on the placement member by the first measurement device.
- the second measurement device is the first measurement device, The control device described in Appendix B23 or B24, wherein the calculation device determines the first placement height based on a measurement result obtained by measuring at least a portion of the multiple target objects placed on the placement member by the first measuring device after the holding operation is performed by the holding device.
- the measurement device is a first measurement device, The control device according to any one of Appendix B1 to B25, wherein the calculation device generates the first control signal based on a measurement result of at least some of the plurality of target objects placed on the placement member by a second measurement device.
- Appendix B27 The control device described in Appendix B26, wherein the calculation device generates the first control signal based on at least one of a height and a quantity of at least a portion of the multiple target objects placed on the placement member, the height and quantity being calculated based on the measurement results by the second measurement device.
- Appendix B28 The control device according to any one of Appendix B23 and B27, wherein the second measuring device is capable of measuring at least one of the height and the amount directly or indirectly.
- the second measurement device includes at least one of a first imaging system used as the first measurement device and a second imaging system different from the first imaging system;
- the control device according to any one of Appendix B23, B27, and B28, wherein the calculation device calculates at least one of the height or the amount based on an imaging result by at least one of the first and second imaging systems.
- Appendix B30 The control device described in Appendix B29, wherein the first imaging system is provided on the robot.
- the imaging results include results of imaging at least some of the plurality of target objects placed on the placement member by at least one of the first and second imaging systems.
- Appendix B32 The control device according to any one of Appendix B29 to B31, wherein the imaging results include imaging results of at least one marker arranged on a surface of the mounting member at a position facing a space in which at least some of the multiple target objects are located.
- the second measuring device includes a weight sensor capable of measuring weights of at least some of the plurality of target objects placed on the placement member.
- the second measurement device includes at least one sensor capable of detecting at least one of the plurality of target objects placed on the placement member.
- Appendix B35 The control device according to claim B34, wherein the at least one sensor is disposed on the mounting member.
- Appendix B36 The control device according to any one of Appendices B17 to B25, wherein the calculation device determines the first placement height based on the number of target objects removed from the placement member and released from the holding device outside the placement member.
- Appendix B37 The control device described in any one of Appendices B1 to B36, wherein the first control signal includes a signal generated by the calculation device based on the holding state of the group of objects to be held in the holding device, for controlling at least one of the robot and the holding device so that a target object to be placed, which is at least one of the target objects among the group of objects to be held, is placed on the placement member.
- the holding state includes at least one of a position and an orientation of at least the placement target object among the group of holding target objects.
- Appendix B39 The control device described in Appendix B37 or B38, wherein the first control signal includes a signal generated by the calculation device based on the holding state, for controlling at least one of the robot and the holding device so that the posture of the object to be placed on the placement member becomes a desired posture.
- Appendix B40 The control device according to Appendix B39, wherein the desired posture includes a posture in which a desired portion of the object to be placed on the placement member faces a desired direction.
- the measurement device is a first measurement device, The control device described in any one of Appendices B37 to B40, wherein the calculation device generates the first control signal for controlling at least one of the robot and the holding device so that the object to be placed is placed on the placement member based on the measurement results by the second measuring device and the holding state of the group of objects to be held in the holding device.
- the second measurement device includes an imaging system used as the first measurement device, The control device according to Appendix B41, wherein the measurement results include imaging results of at least some of the plurality of target objects placed on the placement member by the imaging system.
- the measurement device is a first measurement device
- the first control signal includes a first signal for controlling at least one of the robot and the holding device so that a placement target object, which is at least one of the target objects among the group of holding targets, is placed on the placement member;
- the second measurement device includes an imaging system used as the first measurement device, The control device according to Appendix B43, wherein the measurement result is an imaging result obtained by the imaging system.
- Appendix B45 The control device according to any one of Appendix B42 and B44, wherein the imaging system is provided on the robot.
- the first signal is a signal for controlling at least one of the robot and the holding device so that the placement target object is placed on the placement member,
- the control device includes dropping the object to be placed on the placement member.
- the computing device includes: generating the first control signal for controlling at least one of the robot and the holding device based on the holding state so that at least one of the group of objects to be held is placed on the placement member; estimating at least one of a position and an orientation of the target object placed on the mounting member based on the measurement result and the first control signal; The control device according to any one of Appendixes B1 to B47, wherein a holding action is performed on the target object by the holding device based on at least one of the estimated position and orientation of the target object.
- the other target objects are two target objects
- the control device described in Appendix B49, wherein placing the two target objects on the placement member includes dropping the two target objects onto the placement member.
- [Appendix B52] Placing the first target object on the placement member includes dropping the first target object onto the placement member, The control device according to Appendix B51, wherein placing the second target object on the placement member includes dropping the second target object onto the placement member.
- the group of objects to be held is three of the objects to be held, When two or three of the target objects in the group of held objects are directly held by the holding device, The control device described in any one of Appendices B14 to B16 and B19 to B20, wherein the control signal includes a signal for controlling the robot and the holding device so that the two target objects or the three target objects directly held by the holding device are placed on the placement member while holding the one target object.
- Appendix B54 The control device described in Appendix B53, wherein placing the two target objects or the three target objects on the placement member includes dropping the two target objects or the three target objects onto the placement member.
- Appendix B55 The control device described in any one of Appendices B1 to B56, wherein the calculation device generates, as the control signal, a second control signal for controlling at least one of the robot and the holding device so as to perform the holding operation, based on an imaging result obtained by imaging at least a portion of the multiple target objects placed on the placement member using an imaging system.
- Appendix B56 The control device described in Appendix B55, wherein the imaging system is provided on the robot.
- a control device is provided with a holding device capable of holding a target object and an imaging system that images the target object, and the control device generates a control signal for controlling at least one of a robot that moves the holding device and the imaging system, At least one processor; at least one memory containing computer program code; a communication device that outputs the control signal generated by the at least one processor; the at least one processor together with the at least one memory and the computer program code are configured such that the controller controls at least one of the robot and the holding device; The at least one processor generates as the control signal a first control signal for controlling at least one of the robot and the holding device based on a holding state of the group of target objects held by the holding device detected based on a second imaging result in which the imaging system images a group of target objects to be held, which are the multiple target objects held by the holding device, after the holding device has performed a holding operation on the target objects contained in the container, based on a first imaging result in which the imaging system images at least a portion of the multiple
Landscapes
- Engineering & Computer Science (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- Human Computer Interaction (AREA)
- Manipulator (AREA)
Abstract
制御装置は、容器に収容された第1対象物体をロボットに設けられた保持装置で保持した時に第2対象物体が第1対象物体と共に保持装置で保持された場合、第2対象物体が容器に落下するようにロボット及び保持装置の少なくとも一方を制御するための第1制御信号を生成し、第1制御信号に基づき第2対象物体が容器に落下した後、第3対象物体を保持装置で保持した時に第4対象物体が第3対象物体と共に保持装置で保持された場合、第2対象物体が容器に落下を開始する位置よりも低い位置から、第4対象物体が容器に落下するようにロボット及び保持装置の少なくとも一方を制御するための第2制御信号を生成する。
Description
本発明は、例えば、ロボットを制御するための制御信号を生成可能な制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの技術分野に関する。
物体を保持するようにロボットを制御する制御装置の一例が、特許文献1に記載されている。このような制御装置では、物体を適切に保持するようにロボットを制御することが求められる。
第1の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、前記制御信号を生成する演算装置と、前記演算装置で生成された前記制御信号を出力する通信装置とを備え、前記演算装置は、容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する制御装置が提供される。
第2の態様によれば、第1の態様によって提供される制御装置と、前記撮像システムとを備える制御システムが提供される。
第3の態様によれば、第1の態様によって提供される制御装置と、前記撮像システムと、前記ロボットとを備えるロボットシステムが提供される。
第4の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することと、前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成することとを含む制御方法が提供される。
第5の態様によれば、第4の態様によって提供される制御方法をコンピュータに実行させるコンピュータプログラムが提供される。
第6の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、前記制御信号を生成する演算装置と、前記演算装置で生成された前記制御信号を出力する通信装置とを備え、前記演算装置は、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する制御装置が提供される。
第7の態様によれば、第6の態様によって提供される制御装置と、前記撮像システムとを備える制御システムが提供される。
第8の態様によれば、第6の態様によって提供される制御装置と、前記撮像システムと、前記ロボットとを備えるロボットシステムが提供される。
第9の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することを含む制御方法が提供される。
第10の態様によれば、第9の態様によって提供される制御方法をコンピュータに実行させるコンピュータプログラムが提供される。
第11の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、前記制御信号を生成する演算装置と、前記演算装置で生成された前記制御信号を出力する通信装置とを備え、前記演算装置は、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する制御装置が提供される。
第12の態様によれば、第11の態様によって提供される制御装置と、前記撮像システムとを備える制御システムが提供される。
第13の態様によれば、第11の態様によって提供される制御装置と、前記撮像システムと、前記ロボットとを備えるロボットシステムが提供される。
第14の態様によれば、対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置で保持された前記対象物体の個数を判定することと、判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成することとを含む制御方法が提供される。
第15の態様によれば、第14の態様によって提供される制御方法をコンピュータに実行させるコンピュータプログラムが提供される。
本発明の作用及び他の利得は次に説明する実施するための形態から明らかにされる。
続いて、図面を参照しながら、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態について説明する。以下では、ロボットシステムSYSを用いて、制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムの実施形態について説明する。
(1)ロボットシステムSYSの構成
はじめに、ロボットシステムSYSの構成について説明する。
はじめに、ロボットシステムSYSの構成について説明する。
(1-1)ロボットシステムSYSの全体構成
はじめに、図1を参照しながら、ロボットシステムSYSの全体構成について説明する。図1は、ロボットシステムSYSの全体構成を示すブロック図である。
はじめに、図1を参照しながら、ロボットシステムSYSの全体構成について説明する。図1は、ロボットシステムSYSの全体構成を示すブロック図である。
図1に示すように、ロボットシステムSYSは、ロボット1と、撮像システム2と、制御装置3と、エンドエフェクタ4を備えている。尚、撮像システム2は、撮像ユニットと称されてもよい。
ロボット1は、対象物体OBJに対して所定の処理を行うことが可能な装置である。ロボット1の一例が図2に示されている。図2は、ロボット1の外観を示す側面図である。図2に示すように、ロボット1は、例えば、基台11と、ロボットアーム12と、ロボット制御装置13とを備えている。
基台11は、ロボット1の基礎となる部材である。基台11は、床面等の支持面Sに配置される。基台11は、支持面Sに固定されていてもよい。或いは、基台11は、支持面Sに対して移動可能であってもよい。尚、図2は、基台11が支持面Sに固定されている例を示している。
ロボットアーム12は、基台11に取り付けられている。ロボットアーム12は、複数のリンク121がジョイント122を介して連結された装置である。ジョイント122には、アクチュエータが内蔵されている。リンク121は、ジョイント122に内蔵されたアクチュエータによって、ジョイント122が規定する軸周りに回転可能であってもよい。尚、少なくとも一つのリンク121は、リンク121が延びる方向に沿って伸縮可能であってもよい。尚、複数のリンク121がジョイント122を介して連結された装置と基台11とを含む装置を、ロボットアーム12と称してもよい。
ロボットアーム12には、エンドエフェクタ4が取り付けられる。つまり、ロボット1には、エンドエフェクタ4が取り付けられる。図2に示す例では、エンドエフェクタ4は、ロボットアーム12の先端に取り付けられている。エンドエフェクタ4は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、エンドエフェクタ4を移動させる。つまり、ロボット1は、エンドエフェクタ4を移動させる。
エンドエフェクタ4は、対象物体OBJに対して所定の処理(言い換えれば、所定の動作)を行う装置である。対象物体OBJに対して所定の処理を行うエンドエフェクタ4は、処理装置と称されてもよい。
例えば、エンドエフェクタ4は、所定の処理の一例として、対象物体OBJを保持するための保持処理を行ってもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持するべき対象物体OBJに対して保持処理を行っているとみなしてもよい。保持処理を行うことが可能なエンドエフェクタ4は、保持装置と称されてもよい。尚、対象物体OBJを保持することは、対象物体OBJをピックアップすることと等価であるとみなしてもよい。対象物体OBJを保持する保持処理は、対象物体OBJをピックアップするピックアップ処理と等価であるとみなしてもよい。
例えば、対象物体OBJを保持することは、対象物体OBJを把持することを含んでいてもよい。例えば、対象物体OBJを保持することは、エンドエフェクタ4の一例であるハンドグリッパーを用いて、対象物体OBJを把持することを含んでいてもよい。対象物体OBJを保持することは、対象物体OBJを吸着することを含んでいてもよい。例えば、対象物体OBJを保持することは、エンドエフェクタ4の一例であるバキュームグリッパーを用いて、対象物体OBJを吸着(真空吸着)することを含んでいてもよい。例えば、対象物体OBJを保持することは、エンドエフェクタ4の一例であるマグネットグリッパー(例えば、磁気吸着式のグリッパー)を用いて、対象物体OBJを吸着することを含んでいてもよい。
例えば、エンドエフェクタ4は、所定の処理の一例として、保持している対象物体OBJをリリースする(つまり、離す)リリース処理(いいかえれば、リリース動作)を行ってもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持している対象物体OBJに対してリリース処理を行っているとみなしてもよい。リリース処理を行うことが可能なエンドエフェクタ4は、リリース装置と称されてもよい。
保持処理及びリリース処理を行うことが可能なエンドエフェクタ4の一例として、ハンドグリッパーがあげられる。ハンドグリッパーは、複数本(例えば、2本、3本又は4本)の指部材又は爪部材を用いて対象物体OBJを物理的に挟み込むことで、対象物体OBJを保持(例えば、把持)することが可能なエンドエフェクタ4である。保持処理及びリリース処理を行うことが可能なエンドエフェクタ4の他の一例として、バキュームグリッパー(例えば、真空吸着式のグリッパー)があげられる。バキュームグリッパーは、対象物体OBJを真空吸着することで対象物体OBJを保持(例えば、吸着)することが可能なエンドエフェクタ4である。保持処理及びリリース処理を行うことが可能なエンドエフェクタ4の他の一例として、マグネットグリッパー(例えば、磁気吸着式のグリッパー)があげられる。図2は、エンドエフェクタ4がハンドグリッパーである例を示している。但し、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4は、上記の例示に限られず、対象物体OBJを保持及びリリース可能な他の既存のエンドエフェクタであってもよい。
ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、対象物体OBJを所望位置に配置するための配置処理(言い換えれば、配置動作)を、所定の処理の一例として行ってもよい。例えば、ロボット1は、エンドエフェクタ4を用いて第1対象物体OBJを保持し、その後、エンドエフェクタ4が保持している第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJの所望位置に配置するための配置処理を行ってもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が第1対象物体OBJを配置するべき第2対象物体OBJに対してリリース処理を行っているとみなしてもよい。同様に、エンドエフェクタ4は、エンドエフェクタ4がリリースするべき第1対象物体OBJに対してリリース処理を行っているとみなしてもよい。
ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJにはめ込むためのはめ込み処理(言い換えれば、はめ込み動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。はめ込み処理は、例えば、第1対象物体OBJ(例えば、第1対象物体OBJの凸部)を、第2対象物体OBJに形成された凹部(例えば、穴)にはめ込む(つまり、挿入する)ための処理を含んでいてもよい。はめ込み処理は、例えば、第1対象物体OBJ(例えば、第1対象物体OBJの凹部)を、第2対象物体OBJに形成された凸部(例えば、棒)にはめ込むための処理を含んでいてもよい。
ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJに貼り付けるための貼り付け処理(言い換えれば、貼り付け動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJに接着するための接着処理(言い換えれば、接着動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJに溶接するための溶接処理(言い換えれば、溶接動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、ねじとして機能可能な第1対象物体OBJを、第1対象物体OBJとは異なる第2対象物体OBJに形成されたねじ穴にねじ締めするためのねじ締め処理(言い換えれば、ねじ締め動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。この場合、第1対象物体OBJは、ボルトやナットなどのねじとして機能可能なねじ部材であってもよい。尚、貼り付け処理、接着処理、溶接処理及びねじ締め処理の少なくとも一つは、加工処理と称されてもよい。
ロボット1は、保持処理及びリリース処理を行うことが可能なエンドエフェクタ4を用いて、対象物体OBJを、廃棄するための処理(言い換えれば、廃棄動作)を、配置処理(言い換えれば、配置動作)の一具体例として行ってもよい。
例えば、エンドエフェクタ4は、複数の対象物体OBJのそれぞれに対して所定の処理を行ってもよい。つまり、エンドエフェクタ4は、複数の対象物体OBJに対して所定の処理を順に行ってもよい。この場合、ロボット1は、エンドエフェクタ4が第1対象物体OBJに対して所定の処理を行うことが可能な第1位置にエンドエフェクタ4を移動させ、エンドエフェクタ4が第1位置に移動した後に、エンドエフェクタ4は、第1対象物体OBJに対して所定の処理を行ってもよい。その後、ロボット1は、エンドエフェクタ4が第1対象物体OBJとは異なる第2対象物体OBJに対して所定の処理を行うことが可能な第2位置にエンドエフェクタ4を移動させ、エンドエフェクタ4が第2位置に移動した後に、エンドエフェクタ4は、第2対象物体OBJに対して所定の処理を行ってもよい。
例えば、エンドエフェクタ4は、単一の対象物体OBJの複数部分のそれぞれに対して所定の処理を行ってもよい。つまり、エンドエフェクタ4は、単一の対象物体OBJの複数部分に対して所定の処理を順に行ってもよい。この場合、ロボット1は、エンドエフェクタ4が対象物体OBJの第1部分に対して所定の処理を行うことが可能な第3位置にエンドエフェクタ4を移動させ、エンドエフェクタ4が第3位置に移動した後に、エンドエフェクタ4は、対象物体OBJの第1部分に対して所定の処理を行ってもよい。その後、ロボット1は、エンドエフェクタ4が対象物体OBJの第2部分に対して所定の処理を行うことが可能な第4位置にエンドエフェクタ4を移動させ、エンドエフェクタ4が第4位置に移動した後に、エンドエフェクタ4は、対象物体OBJの第2部分に対して所定の処理を行ってもよい。
エンドエフェクタ4が所定の処理を行う対象物体OBJは、図2に示すように、ワークWを含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために用いられる部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために加工される部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために搬送される部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するための搬送により移動している部品又は部材を含んでいてもよい。ワークWは、例えば、所望の製造物を製造するために移動している部品又は部材を含んでいてもよい。
エンドエフェクタ4が所定の処理を行う対象物体OBJは、図2に示すように、ワークWが載置される載置装置Tを含んでいてもよい。載置装置Tの一例として、容器(収容箱)CBがあげられる。容器CBは、底壁BSと、底壁BSから上方に向かって突き出る側壁SSとを備え、底壁BSと側壁SSとによって囲まれた収容空間SPにおいて、ワークWが底壁BS上に載置される載置装置Tであってもよい。容器CBは、底壁BSと、底壁BSから上方に向かって突き出る側壁SSとを備え、底壁BSと側壁SSとによって囲まれた収容空間SPにワークWを収容可能な載置装置Tであってもよい。但し、容器CBは、側壁SSを備えていなくてもよい。側壁SSを備えていない容器CBは、パレットと称されてもよい。また、載置装置Tは、容器CBやパレットに限られず、ワークWが載置可能な既存の物体であってもよい。尚、載置装置Tは、載置部材と称されてもよい。載置装置Tは、支持面S上に配置されていてもよい。載置装置Tは、支持面Sに固定されていてもよい。或いは、載置装置Tの少なくとも一部は、支持面Sに対して移動可能であってもよい。載置装置Tの少なくとも一部が支持面Sに対して移動可能な第1の例として、載置装置Tが、載置装置Tを移動可能な(言い換えれば、搬送可能な)搬送装置によって支持される例があげられる。この場合、搬送装置は、例えば、ベルトコンベアであってもよい。載置装置Tの少なくとも一部が支持面Sに対して移動可能な第2の例として、載置装置Tそのものが、支持面Sに対して移動可能である例があげられる。この場合、搬送装置は、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一方でもよい。尚、図2は、載置装置Tが、支持面S上を自走可能である例を示している。尚、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つは、可動装置とも称されてもよい。
ロボット制御装置13は、ロボット1の動作を制御する。
具体的には、ロボット制御装置13は、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置13は、所望のリンク121が所望のジョイント122が規定する軸周りに回転するように、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置13は、ロボットアーム12に取り付けられたエンドエフェクタ4が所望位置に位置するように、ロボットアーム12の動作を制御してもよい。例えば、ロボット制御装置13は、ロボットアーム12に取り付けられたエンドエフェクタ4が所望位置に移動するように、ロボットアーム12の動作を制御してもよい。
ロボット制御装置13は、ロボット1の動作を制御することに加えて、ロボット1に取り付けられているエンドエフェクタ4の動作(エンドエフェクタ4による処理)を制御してもよい。例えば、ロボット制御装置13は、エンドエフェクタ4が所望のタイミングで対象物体OBJを保持するように、エンドエフェクタ4の動作を制御してもよい。つまり、ロボット制御装置13は、エンドエフェクタ4が所望のタイミングで保持処理を行うように、エンドエフェクタ4の動作を制御してもよい。例えば、ロボット制御装置13は、エンドエフェクタ4が所望のタイミングで保持している対象物体OBJをリリースするように、エンドエフェクタ4の動作を制御してもよい。つまり、ロボット制御装置13は、エンドエフェクタ4が所望のタイミングでリリース処理を行うように、エンドエフェクタ4の動作を制御してもよい。エンドエフェクタ4が対象物体OBJを保持するために、又はリリースするために、ロボット制御装置13は、エンドエフェクタ4がハンドグリッパーである場合には、ハンドグリッパーが開閉するタイミングを制御してもよい。エンドエフェクタ4がバキュームグリッパーである場合には、ロボット制御装置13は、バキュームグリッパーのバキューム装置をオン・オフするタイミング(又は真空吸着力)を制御してもよい。エンドエフェクタ4がマグネットグリッパーである場合には、ロボット制御装置13は、マグネットグリッパーの磁気吸着装置をオン・オフするタイミング(又は磁力)を制御してもよい。
尚、図2は、ロボット1が、ロボットアーム12(つまり、垂直多関節型ロボット)である例を示している。しかしながら、ロボット1は、垂直多関節型ロボットとは異なるロボットであってもよい。例えば、ロボット1は、スカラロボット(つまり、水平多関節型ロボット)であってもよい。例えば、ロボット1は、パラレルリンクロボットであってもよい。例えば、ロボット1は、ロボットアーム12を二つ備える双腕型ロボットであってもよい。例えば、ロボット1は、直交座標型ロボットであってもよい。例えば、ロボット1は、円筒座標型ロボットであってもよい。ロボット1は、可動装置と称されてもよい。可動装置は、ロボット1に加えて、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つを含んでいてもよい。例えば、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つにロボット1が設置されていてもよい。ロボット1が、可動装置(例えば、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つ)に設置されている場合、ロボット制御装置13は、ロボット1の動作を制御することに加えて、ロボット1が設置されている可動装置の動作を制御してもよい。
再び図1において、撮像システム2は、対象物体OBJを撮像する。対象物体OBJを撮像するために、撮像システム2は、撮像装置21と、照明装置23とを備えている。
撮像装置21は、対象物体OBJを撮像可能なカメラである。例えば、撮像装置21は、制御装置3の制御下で、対象物体OBJを撮像してもよい。撮像装置21は、対象物体OBJを撮像することで、画像データIMGを生成する。つまり、撮像装置21は、対象物体OBJの撮像結果である画像データIMGを生成する。撮像装置21が生成した画像データIMGは、撮像装置21から制御装置3に出力される。その結果、制御装置3は、撮像装置21による対象物体OBJの撮像により取得される画像データIMGを取得する。
撮像システム2は、単眼カメラを含む撮像装置21を備えていてもよい。この場合、撮像装置21は、単眼カメラが生成する一つの画像データを含む画像データIMGを生成してもよい。或いは、撮像システム2は、二つの単眼カメラを含むステレオカメラを含む撮像装置21を備えていてもよい。この場合、撮像装置21は、二つの単眼カメラがそれぞれ生成する二つの画像データを含む画像データIMGを生成してもよい。或いは、撮像システム2は、第1の単眼カメラと、第1の単眼カメラとは異なる二つの第2単眼カメラを含むステレオカメラとを含む撮像装置21を備えていてもよい。この場合、撮像装置21は、第1の単眼カメラが生成する一つの画像データを含む画像データIMGと、二つの第2単眼カメラがそれぞれ生成する二つの画像データを含む画像データIMGとを生成してもよい。
尚、撮像システム2は、単眼カメラ及びステレオカメラとは異なるカメラを含む撮像装置21を備えていてもよい。例えば、撮像システム2は、三つ以上の単眼カメラを含む撮像装置21を備えていてもよい。例えば、撮像システム2は、ライトフィールドカメラ、プレノプティックカメラ、及びマルチスペクトルカメラの少なくとも一つを含む撮像装置21を備えていてもよい。
撮像装置21は、対象物体OBJの全体を撮像してもよい。或いは、撮像装置21は、対象物体OBJの一部を撮像してもよい。つまり、撮像装置21は、対象物体OBJの一部を撮像する一方で、対象物体OBJの他の一部を撮像しなくてもよい。
撮像装置21は、単一の対象物体OBJを撮像してもよい。つまり、画像データIMGが示す画像には、単一の対象物体OBJが写り込んでいてもよい。或いは、撮像装置21は、複数の対象物体OBJを撮像してもよい。つまり、画像データIMGが示す画像には、複数の対象物体OBJが写り込んでいてもよい。この場合、後に詳述するように、制御装置3は、撮像装置21が撮像した複数の対象物体OBJのうちの一の対象物体OBJを、エンドエフェクタ4が実際に所定の処理を行う対象物体OBJとして決定(言い換えれば、選択)してもよい。尚、撮像装置21が撮像した複数の対象物体OBJのうちのエンドエフェクタ4が実際に所定の処理を行う一の対象物体OBJは、処理実行物体と称されてもよい。
撮像装置21が複数の対象物体OBJを撮像する場合には、撮像装置21が撮像する複数の対象物体OBJは、複数の対象物体OBJのうちの少なくとも二つが少なくとも部分的に重なるように、配置されていてもよい。一例として、対象物体OBJが、所望の製造物を製造するために用いられる部品に相当するワークWである場合には、複数のワークW(つまり、複数の部品)は、複数のワークWのうちの少なくとも二つが少なくとも部分的に重なるように、配置されていてもよい。この場合、エンドエフェクタ4は、乱雑に配置された複数のワークWのうちの少なくとも一つのワークWを保持する処理を、上述した保持処理として行ってもよい。つまり、ロボット1は、乱雑に配置された複数のワークWからワークWを一つずつピッキングするばら積みピッキングを行ってもよい。尚、乱雑に配置された複数のワークWは、不規則に配置された複数のワークWと言い換えられるし、無造作に配置された複数のワークWとも言い換えられるし、ランダムに配置された複数のワークWとも言い換えられる。
或いは、撮像装置21が撮像する複数の対象物体OBJは、規則的に配置されていてもよい。一例として、対象物体OBJが、所望の製造物を製造するために用いられる部品に相当するワークWである場合には、複数のワークW(つまり、複数の部品)がマトリクス状に配置されていてもよい。この場合、エンドエフェクタ4は、規則的に配置された複数のワークWのうちの少なくとも一つのワークWを保持する処理を、上述した保持処理として行ってもよい。つまり、ロボット1は、規則的に配置された複数のワークWからワークWを一つずつピッキングしてもよい。尚、規則的に配置された複数のワークWは、整然と配置された複数のワークWと言い換えられるし、一定の配置ルールに従って配置された複数のワークWとも言い換えられる。尚、撮像装置21が撮像する複数の対象物体OBJが、規則的に配置されている他の一例として、対象物体OBJとは異なる他の物体に複数の対象物体OBJが配置処理(例えば、はめ込み処理)されていてもよい。
尚、エンドエフェクタ4が保持した対象物体OBJを配置する配置処理についても、保持処理と同様に、対象物体OBJを乱雑に(言い換えれば、無造作に)配置する配置処理を含んでいてもよいし、対象物体OBJを規則的に(言い換えれば、整然と)配置する配置処理を含んでいてもよい。例えば、ロボット1は、エンドエフェクタ4を用いて、第1の容器CBに規則的に又は乱雑に配置された複数のワークWのうちの一のワークWを保持し、その後、エンドエフェクタ4が保持している一のワークWを、第2の容器CB内に規則的に又は乱雑に配置してもよい。
照明装置23は、対象物体OBJ(例えば、複数の対象物体OBJが存在する場合は少なくとも一つの対象物体OBJ)に照明光を照射可能な装置である。例えば、照明装置23は、制御装置3の制御下で、対象物体OBJに照明光を照射してもよい。特に、照明装置23は、対象物体OBJに照明光を照射することで、対象物体OBJを照明光で照明可能な装置である。この場合、撮像装置21は、照明光で照明されている対象物体OBJを撮像してもよい。但し、照明装置23は、対象物体OBJに照明光を照射しなくてもよい。この場合、撮像システム2(ロボットシステムSYS)は、照明装置23を備えていなくてもよい。
撮像装置21がステレオカメラを含む場合には、照明装置23は、対象物体OBJに照明光を照射することで、対象物体OBJに所望の投影パターンを投影可能な装置であってもよい。所望の投影パターンは、例えば、ランダムパターンを含んでいてもよい。ランダムパターンは、ランダムドットパターンを含んでいてもよい。所望の投影パターンは、例えば、一次元又は二次元の格子パターンを含んでいてもよい。所望の投影パターンは、例えば、ライン状のパターンを含んでいてもよい。所望の投影パターンは、例えば、ストライプ状のパターンを含んでいてもよい。所望の投影パターンは、その他の投影パターンを含んでいてもよい。但し、撮像装置21がステレオカメラを含まない(つまり、撮像装置21が単眼カメラを含む)場合であっても、照明装置23は、対象物体OBJに照明光を照射することで、対象物体OBJに所望の投影パターンを投影してもよい。尚、この場合、照明装置23は、一様な強度分布(例えば、均一な強度分布)の照明光を対象物体OBJに照射しても良い。尚、所望の投影パターンは、所望の強度分布の光とも言える。
撮像システム2は、エンドエフェクタ4と同様に、ロボットアーム12に取り付けられている。つまり、撮像装置21及び照明装置23は、ロボットアーム12に取り付けられる。例えば、図2に示すように、撮像装置21及び照明装置23は、エンドエフェクタ4と同様に、ロボットアーム12の先端に取り付けられていてもよい。この場合、撮像装置21及び照明装置23は、ロボットアーム12の動きによって移動可能である。つまり、ロボットアーム12は、撮像装置21及び照明装置23を移動させる。
但し、撮像システム2は、ロボットアーム12に取り付けられていなくてもよい。例えば、撮像システム2は、対象物体OBJを撮像可能な任意の位置に配置されていてもよい。また、例えば、撮像システム2は、対象物体OBJに照明光を照射可能な任意の位置に配置されていてもよい。例えば、撮像システム2は、柱等の構造物に取り付けられていてもよい。尚、撮像装置21及び照明装置23のいずれか一方が、ロボットアーム12に取り付けられ、撮像装置21及び照明装置23のいずれか他方が、ロボットアーム12とは異なる場所(例えば、柱などの構造物)に取り付けられていてもよい。
撮像装置21は、撮像装置21と対象物体OBJとが相対的に変位している期間中に、対象物体OBJ(例えば、複数の対象物体OBJが存在する場合は少なくとも一つの対象物体OBJ)を撮像してもよい。尚、撮像装置21と対象物体OBJとが相対的に変位している状態は、撮像装置21と対象物体OBJとの相対的な位置関係が変化している状態を意味していてもよい。撮像装置21と対象物体OBJとが相対的に変位している状態は、撮像装置21と対象物体OBJとが相対移動している状態を意味していてもよい。例えば、撮像装置21と対象物体OBJとが相対的に変位している状態は、撮像装置21に対して対象物体OBJが移動している状態を含んでいてもよい。例えば、撮像装置21と対象物体OBJとが相対的に変位している状態は、対象物体OBJに対して撮像装置21が移動している状態を含んでいていてもよい。この場合、対象物体OBJを撮像するために撮像装置21が静止する必要がなくなるため、ロボットシステムSYSは、エンドエフェクタ4を用いて対象物体OBJに対して所定の処理を効率的に行うことができる。
或いは、撮像装置21は、撮像装置21と対象物体OBJとが相対的に変位していない期間中に、対象物体OBJを撮像してもよい。尚、撮像装置21と対象物体OBJとが相対的に変位していない状態は、撮像装置21と対象物体OBJとの相対的な位置関係が変化していない状態を意味していてもよい。撮像装置21と対象物体OBJとが相対的に変位していない状態は、撮像装置21と対象物体OBJとが相対移動していない状態を意味していてもよい。撮像装置21と対象物体OBJとが相対的に変位していない状態は、撮像装置21と対象物体OBJとが静止している状態を意味していてもよい。撮像装置21と対象物体OBJとが相対的に変位していない状態は、撮像装置21と対象物体OBJとが同じ移動速度で同じ移動方向に向かって移動している状態を意味していてもよい。
制御装置3は、ロボット制御処理を行う。ロボット制御処理は、ロボット1を制御するためのロボット制御信号を生成する処理を含む。具体的には、制御装置3は、撮像システム2から出力される画像データIMGに基づいて、ロボット制御信号を生成する。本実施形態では、制御装置3は、画像データIMGに基づいて、ロボットシステムSYSのグローバル座標系内での対象物体OBJの位置及び姿勢の少なくとも一方を算出し、算出した対象物体OBJの位置及び姿勢の少なくとも一方に基づいて、ロボット制御信号を生成する。
グローバル座標系は、ロボットシステムSYSの基準となる座標系である。例えば、グローバル座標系は、ロボット1の基準となる座標系であってもよい。尚、グローバル座標系は、ロボット1を制御するために用いられる座標系であるともいえる。グローバル座標系としては、例えば、ロボット1が配置される支持面Sを基準に定まるワールド座標系が用いられてもよい。つまり、グローバル座標系として、ロボット1が配置される支持面Sに対して固定されたワールド座標系が用いられてもよい。尚、以下の説明では、特段の説明がない場合には、X軸、Y軸及びZ軸は、それぞれ、グローバル座標系におけるX軸、Y軸及びZ軸を意味していてもよい。
但し、制御装置3は、画像データIMGに基づいて、グローバル座標系とは異なる座標系内での対象物体OBJの位置及び姿勢の少なくとも一方を算出してもよい。グローバル座標系とは異なる座標系は、ロボット座標系及び撮像座標系の少なくとも一つを含んでいてもよい。ロボット座標系は、ロボット1を基準に定まる座標系であってもよい。つまり、ロボット座標系は、ロボット1に対して固定された(例えば、ロボット1の基台11に対して固定された)座標系であってもよい。撮像座標系は、撮像装置21を基準に定まる座標系であってもよい。つまり、撮像座標系は、撮像装置21に対して固定された座標系であってもよい。撮像座標系の一例として、撮像装置21が備える光学系(特に、対物レンズ等の終端光学素子)の光軸AX21(図2参照)に基づいて定まる座標系があげられる。撮像座標系の一例として、撮像座標系を構成する三つの座標軸のうちのいずれか一つが、撮像装置21が備える光学系(特に、対物レンズ等の終端光学素子)の光軸AX21(図2参照)に沿った軸となる座標系があげられる。
制御装置3は、ロボット制御処理を行うことに加えて、エンドエフェクタ制御処理を行ってもよい。エンドエフェクタ制御処理は、エンドエフェクタ4を制御するためのエンドエフェクタ制御信号を生成する処理を含んでいてもよい。具体的には、制御装置3は、算出した対象物体OBJの位置及び姿勢の少なくとも一方に基づいて、エンドエフェクタ制御信号を生成してもよい。
尚、エンドエフェクタ制御処理は、ロボット制御処理に含まれてもよいし、含まれていなくてもよい。つまり、制御装置3が生成したエンドエフェクタ制御信号は、ロボット制御信号に含まれていてもよいし、ロボット制御信号に含まれていなくてもよい。以下の説明では、説明の便宜上、エンドエフェクタ制御処理がロボット制御処理に含まれる(つまり、エンドエフェクタ制御信号がロボット制御信号に含まれる)例について説明する。このため、以下の説明では、ロボット制御処理は、ロボット制御信号及びエンドエフェクタ制御信号の少なくとも一方を生成する処理を意味していてもよい。また、以下の説明では、ロボット制御信号は、ロボット1を制御するための信号及びエンドエフェクタ4を制御するための信号の少なくとも一方を意味していてもよい。尚、ロボット制御信号は、単に制御信号と称されてもよい。
上述したようにロボット1が可動装置(例えば、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つ)に設置されている場合には、制御装置3は、ロボット制御処理を行うことに加えて、可動装置制御処理を行ってもよい。可動装置制御処理は、可動装置を制御するための可動装置制御信号を生成する処理を含んでいてもよい。具体的には、制御装置3は、算出した対象物体OBJの位置及び姿勢の少なくとも一方に基づいて、可動装置制御信号を生成してもよい。
尚、可動装置制御処理は、ロボット制御処理に含まれてもよいし、含まれていなくてもよい。つまり、制御装置3が生成した可動装置制御信号は、ロボット制御信号に含まれていてもよいし、ロボット制御信号に含まれていなくてもよい。以下の説明では、説明の便宜上、可動装置制御処理がロボット制御処理に含まれる(つまり、可動装置制御信号がロボット制御信号に含まれる)例について説明する。このため、以下の説明では、ロボット制御処理は、ロボット制御信号、エンドエフェクタ制御信号及び可動装置制御信号の少なくとも一つを生成する処理を意味していてもよい。また、以下の説明では、ロボット制御信号は、ロボット1を制御するための信号、エンドエフェクタ4を制御するための信号及び可動装置を制御するための信号の少なくとも一つを意味していてもよい。
このように、制御装置3及び撮像システム2は、ロボット1を制御するために用いられる。このため、制御装置3及び撮像システム2を含むシステムは、ロボット制御システム又は制御システムと称されてもよい。
制御装置3が生成したロボット制御信号は、ロボット1のロボット制御装置13に出力される。ロボット制御装置13は、制御装置3が生成したロボット制御信号に基づいて、ロボット1の動作を制御する。このため、ロボット制御信号は、ロボット1の動作を制御するための信号を含んでいてもよい。
上述したようにロボット制御信号がロボットアーム12を制御するための信号を含んでいる場合には、ロボット制御装置13は、ロボット制御信号に基づいて、ロボットアーム12を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、ジョイント122に内蔵されたアクチュエータの動作を制御することで、ロボットアーム12の動作を制御してもよい。
例えば、上述したように、ロボットアーム12は、エンドエフェクタ4を移動させる。この場合、ロボット制御信号は、エンドエフェクタ4が所望位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。ロボット制御信号は、エンドエフェクタ4が所望位置に移動するようにロボットアーム12を制御するための信号を含んでいてもよい。ロボット制御信号は、エンドエフェクタ4と対象物体OBJとの位置関係が所望の位置関係となるようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4が所望位置に位置するように、ロボットアーム12を制御してもよい。ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4が所望位置に移動するように、ロボットアーム12を制御してもよい。ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4と対象物体OBJとの位置関係が所望の位置関係となるように、ロボットアーム12を制御してもよい。
一例として、エンドエフェクタ4が対象物体OBJを保持するための保持処理を行う場合には、ロボット制御信号は、エンドエフェクタ4が、エンドエフェクタ4が対象物体OBJを保持可能な保持目標位置に向かって移動する(つまり、近づく)ようにロボットアーム12を制御するための信号を含んでいてもよい。つまり、ロボット制御信号は、エンドエフェクタ4が保持目標位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4が保持目標位置に向かって移動する(つまり、近づく)ように、ロボットアーム12を制御してもよい。つまり、ロボット制御信号は、エンドエフェクタ4が保持目標位置に位置するように、ロボットアーム12を制御してもよい。
一例として、エンドエフェクタ4が対象物体OBJを保持するための保持処理を行う場合には、ロボット制御信号は、エンドエフェクタ4の姿勢が、エンドエフェクタ4が対象物体OBJを保持可能な保持目標姿勢となるようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4の姿勢が保持目標姿勢となるように、ロボットアーム12を制御してもよい。
他の一例として、エンドエフェクタ4が保持している対象物体OBJをリリースするためのリリース処理を行う場合には、ロボット制御信号は、エンドエフェクタ4が、エンドエフェクタ4が保持している対象物体OBJをリリースするべきリリース目標位置に向かって移動する(つまり、近づく)ようにロボットアーム12を制御するための信号を含んでいてもよい。つまり、ロボット制御信号は、エンドエフェクタ4がリリース目標位置に位置するようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4がリリース目標位置に向かって移動する(つまり、近づく)ように、ロボットアーム12を制御してもよい。つまり、ロボット制御信号は、エンドエフェクタ4がリリース目標位置に位置するように、ロボットアーム12を制御してもよい。
他の一例として、エンドエフェクタ4が保持している対象物体OBJをリリースするためのリリース処理を行う場合には、ロボット制御信号は、エンドエフェクタ4の姿勢が、エンドエフェクタ4が対象物体OBJをリリース可能なリリース目標姿勢となるようにロボットアーム12を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4の姿勢がリリース目標姿勢となるように、ロボットアーム12を制御してもよい。
上述したようにロボット制御信号がエンドエフェクタ4を制御するための信号を含んでいる場合には、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4を構成するハンドグリッパーを動かすアクチュエータの動作を制御することで、エンドエフェクタ4の動作を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4を構成するバキュームグリッパーのバキューム装置の動作を制御することで、エンドエフェクタ4の動作を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4を構成するマグネットグリッパーの磁気吸着装置の動作を制御することで、エンドエフェクタ4の動作を制御してもよい。
一例として、エンドエフェクタ4が対象物体OBJを保持するための保持処理を行う場合には、ロボット制御信号は、上述した保持目標位置に位置する及び/又は上述した保持目標姿勢で位置するエンドエフェクタ4が対象物体OBJを保持するようにエンドエフェクタ4を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、保持目標位置に位置する及び/又は保持目標姿勢で位置するエンドエフェクタ4が対象物体OBJを保持するように、エンドエフェクタ4を制御してもよい。
上述したようにロボット制御信号が、ロボット1が設置されている可動装置(例えば、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つ)を制御するための信号を含んでいる場合には、ロボット制御装置13は、ロボット制御信号に基づいて、可動装置を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、ロボット1が、ロボット制御信号が直接的に又は間接的に示す目標位置に移動するように、可動装置の動力源(例えば、モータ又はエンジン)を制御してもよい。
他の一例として、エンドエフェクタ4が保持している対象物体OBJをリリースするためのリリース処理を行う場合には、ロボット制御信号は、上述したリリース目標位置に位置する及び/又は上述したリリース目標姿勢で位置するエンドエフェクタ4が保持している対象物体OBJをリリースするようにエンドエフェクタ4を制御するための信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、リリース目標位置に位置する及び/又はリリース目標姿勢で位置するエンドエフェクタ4が保持している対象物体OBJをリリースするように、エンドエフェクタ4を制御してもよい。
ロボット制御信号は、ロボット制御装置13がロボット1の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置13がロボット1の動作を制御するために用いるロボット駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号をそのまま用いて、ロボット1の動作を制御してもよい。例えば、制御装置3は、ロボットアーム12のジョイント122に内蔵されたアクチュエータの駆動信号をロボット制御信号として生成し、ロボット制御装置13は、制御装置3が生成したロボット制御信号をそのまま用いて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。
ロボット制御信号は、ロボット制御装置13がエンドエフェクタ4の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置13がエンドエフェクタ4の動作を制御するために用いるエンドエフェクタ駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号をそのまま用いて、エンドエフェクタ4の動作を制御してもよい。例えば、制御装置3は、エンドエフェクタ4を構成するハンドグリッパーを動かすアクチュエータの駆動信号(エンドエフェクタ駆動信号)をロボット制御信号として生成し、ロボット制御装置13は、制御装置3が生成したロボット制御信号をそのまま用いて、エンドエフェクタ4のアクチュエータを制御してもよい。例えば、制御装置3は、エンドエフェクタ4を構成するバキュームグリッパーのバキューム装置を駆動するための駆動信号(エンドエフェクタ駆動信号)をロボット制御信号として生成し、ロボット制御装置13は、制御装置3が生成したロボット制御信号をそのまま用いて、エンドエフェクタ4のバキューム装置を制御してもよい。例えば、制御装置3は、エンドエフェクタ4を構成するマグネットグリッパーの磁気吸着装置を駆動するための駆動信号(エンドエフェクタ駆動信号)をロボット制御信号として生成し、ロボット制御装置13は、制御装置3が生成したロボット制御信号をそのまま用いて、エンドエフェクタ4の磁気吸着装置を制御してもよい。
ロボット制御信号は、ロボット制御装置13が、ロボット1が設置された可動装置(例えば、自動搬送車、自立走行搬送ロボット、及び無人航空機の少なくとも一つ)の動作を制御するためにそのまま利用可能な信号を含んでいてもよい。ロボット制御信号は、ロボット制御装置13が可動装置の動作を制御するために用いる可動装置駆動信号としてそのまま利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号をそのまま用いて、可動装置の動作を制御してもよい。例えば、制御装置3は、可動装置の動力源(例えば、モータ又はエンジン)を駆動するための動力源駆動信号(可動装置駆動信号)をロボット制御信号として生成し、ロボット制御装置13は、制御装置3が生成したロボット制御信号をそのまま用いて、可動装置1の動力源を制御してもよい。
尚、上述のように、ロボット制御信号が、ロボット制御装置13がロボット1、エンドエフェクタ4及び可動装置の少なくとも一つの動作を制御するためにそのまま利用可能な信号を含む場合、ロボット1は、ロボット制御装置13を備えていなくてもよい。この場合、制御装置3は、ロボット制御信号によって、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。また、例えば、制御装置3は、ロボット制御信号(エンドエフェクタ駆動信号)によって、エンドエフェクタ4を構成するハンドグリッパーを動かすアクチュエータを制御してもよい。例えば、制御装置3は、ロボット制御信号(エンドエフェクタ駆動信号)によって、エンドエフェクタ4を構成するバキュームグリッパーのバキューム装置を制御してもよい。例えば、制御装置3は、ロボット制御信号(エンドエフェクタ駆動信号)によって、エンドエフェクタ4を構成するマグネットグリッパーの磁気吸着装置を制御してもよい。例えば、制御装置3は、ロボット制御信号(可動装置駆動信号)によって、ロボット1が設置された可動装置を制御してもよい。
或いは、ロボット制御信号は、ロボット1の動作を制御するためのロボット駆動信号をロボット制御装置13が生成するために利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、ロボット1の動作を制御するためのロボット駆動信号を生成し、生成したロボット駆動信号に基づいて、ロボット1の動作を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを駆動するためのロボット駆動信号を生成し、生成したロボット駆動信号に基づいて、ロボットアーム12のジョイント122に内蔵されたアクチュエータを制御してもよい。
ロボット制御信号は、エンドエフェクタ4の動作を制御するためのエンドエフェクタ駆動信号をロボット制御装置13が生成するために利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4の動作を制御するためのエンドエフェクタ駆動信号を生成し、生成したエンドエフェクタ駆動信号に基づいて、エンドエフェクタ4の動作を制御してもよい。例えば、エンドエフェクタ4がハンドグリッパーの場合、ロボット制御装置13は、ロボット制御信号に基づいて、ハンドグリッパーのアクチュエータを駆動するためのエンドエフェクタ駆動信号を生成し、生成したエンドエフェクタ駆動信号に基づいて、ハンドグリッパーのアクチュエータを制御してもよい。例えば、エンドエフェクタ4がマグネットグリッパーの場合、ロボット制御装置13は、ロボット制御信号に基づいて、マグネットグリッパーの磁気吸着装置を駆動するためのエンドエフェクタ駆動信号を生成し、生成したエンドエフェクタ駆動信号に基づいて磁気吸着装置を制御してもよい。
ロボット制御信号は、ロボット1が設置された可動装置の動作を制御するための可動装置駆動信号をロボット制御装置13が生成するために利用可能な信号を含んでいてもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、可動装置の動作を制御するための可動装置駆動信号を生成し、生成した可動装置駆動信号に基づいて、可動装置の動作を制御してもよい。例えば、ロボット制御装置13は、ロボット制御信号に基づいて、可動装置の動力源(例えば、モータ又はエンジン)を駆動するための動力源駆動信号(可動装置駆動信号)を生成し、生成した可動装置駆動信号に基づいて、可動装置の動力源を制御してもよい。
ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系での対象物体OBJの位置及び姿勢の少なくとも一方を表す信号を含んでいてもよい。ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのロボット1と対象物体OBJとの間の所望の位置関係を表す信号を含んでいてもよい。
ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのエンドエフェクタ4の所望位置を表す信号を含んでいてもよい。所望位置の一例として、対象物体OBJをエンドエフェクタ4が処理するべき処理位置があげられる。例えば、所望位置は、対象物体OBJをエンドエフェクタ4が保持するべき保持目標位置を含んでいてもよい。例えば、所望位置は、対象物体OBJをエンドエフェクタ4がリリースするべきリリース目標位置を含んでいてもよい。ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのロボットアーム12の先端部(例えば、ツールセンターポイント)の所望位置を表す信号を含んでいてもよい。ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系での撮像システム2の所望位置を表す信号を含んでいてもよい。
ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのエンドエフェクタ4の所望姿勢を表す信号を含んでいてもよい。所望姿勢の一例として、対象物体OBJをエンドエフェクタ4が処理するときにエンドエフェクタ4がとるべき姿勢(処理姿勢)があげられる。例えば、所望姿勢は、対象物体OBJをエンドエフェクタ4が保持するときにエンドエフェクタ4がとるべき姿勢(保持目標姿勢)を含んでいてもよい。例えば、所望姿勢は、対象物体OBJをエンドエフェクタ4がリリースするときにエンドエフェクタ4がとるべき姿勢(リリース目標姿勢)を含んでいてもよい。ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系でのロボットアーム12の先端部(例えば、ツールセンターポイント)の所望姿勢を表す信号を含んでいてもよい。ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、グローバル座標系での撮像システム2の所望姿勢を表す信号を含んでいてもよい。
ロボット制御装置13がロボット駆動信号を生成するために利用可能な信号は、エンドエフェクタ4の現在位置からエンドエフェクタ4の所望位置への移動量と移動方向を表す信号であってもよい。
(1-2)制御装置3の構成
続いて、図3を参照しながら、制御装置3の構成について説明する。図3は、制御装置3の構成を示すブロック図である。
続いて、図3を参照しながら、制御装置3の構成について説明する。図3は、制御装置3の構成を示すブロック図である。
図3に示すように、制御装置3は、演算装置31と、記憶装置32と、通信装置33とを備えている。更に、制御装置3は、入力装置34と、出力装置35とを備えていてもよい。但し、制御装置3は、入力装置34及び出力装置35のうちの少なくとも一つを備えていなくてもよい。演算装置31と、記憶装置32と、通信装置33と、入力装置34と、出力装置35とは、データバス36を介して接続されていてもよい。
演算装置31は、少なくとも回路(例えば、電子回路及び電気回路の少なくとも一つ)を含むハードウェアである。このため、演算装置31は、回路群(Circuitry)と称されてもよい。
演算装置31は、少なくとも一つのプロセッサ(つまり、一つのプロセッサ又は複数のプロセッサ)をハードウェアとして含む。プロセッサは、例えば、ノイマン型のコンピュータアーキテクチャに準拠したプロセッサを含んでいてもよい。ノイマン型のコンピュータアーキテクチャに準拠したプロセッサは、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の少なくとも一つを含んでいてもよい。プロセッサは、例えば、非ノイマン型のコンピュータアーキテクチャに準拠したプロセッサを含んでいてもよい。非ノイマン型のコンピュータアーキテクチャに準拠したプロセッサは、FPGA(Field Programmable Gate Array)及びASIC(Application Specific Circuit)のうちの少なくとも一つを含んでいてもよい。プロセッサは、回路群(例えば、電子回路及び電気回路の少なくとも一つ)によって実現されていてもよい。
演算装置31は、コンピュータプログラムコード及びコンピュータプログラム指令の少なくとも一つを含むコンピュータプログラム321を読み込む。例えば、演算装置31は、記憶装置32が記憶しているコンピュータプログラム321を読み込んでもよい。例えば、演算装置31は、コンピュータで読み取り可能であって且つ一時的でない記録媒体が記憶しているコンピュータプログラム321を、制御装置3が備える図示しない記録媒体読み取り装置を用いて読み込んでもよい。記録媒体から読み取られたコンピュータプログラム321は、記憶装置32に記憶されてもよい。演算装置31は、通信装置33(或いは、その他の通信装置)を介して、制御装置3の外部に配置される不図示の装置からコンピュータプログラム321を取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。ダウンロードされたコンピュータプログラム321は、記憶装置32に記憶されてもよい。
演算装置31は、読み込んだコンピュータプログラム321を実行する。その結果、演算装置31内には、制御装置3が行うべき処理(例えば、上述したロボット制御処理)を実行するための論理的な機能ブロックが実現される。言い換えれば、演算装置31は、コンピュータプログラム321が記録された記憶装置32等と共に(言い換えれば、記憶装置32と記憶装置32等に記録されたコンピュータプログラム321と共に)、制御装置3が行うべき処理を実行するための論理的な機能ブロックを実現するためのコントローラ又はコンピュータとして機能可能である。つまり、演算装置31が備える少なくとも一つのプロセッサと共に、記憶装置32等が備えるメモリ(記録媒体)とコンピュータプログラム321とは、制御装置3が行うべき処理(例えば、上述したロボット制御処理)を制御装置3が行うように構成されている。
演算装置31内には、演算装置がコンピュータプログラム321を実行することで、機械学習によって構築可能な演算モデルが実装されてもよい。機械学習によって構築可能な演算モデルの一例として、例えば、ニューラルネットワークを含む演算モデル(いわゆる、人工知能(AI:Artificial Intelligence))があげられる。この場合、演算モデルの学習は、ニューラルネットワークのパラメータ(例えば、重み及びバイアスの少なくとも一つ)の学習を含んでいてもよい。演算装置31は、演算モデルを用いて、ロボット制御処理を実行してもよい。つまり、ロボット制御処理を実行する動作は、演算モデルを用いてロボット制御処理を実行する動作を含んでいてもよい。尚、演算装置31には、教師データを用いたオフラインでの機械学習により構築済みの演算モデルが実装されてもよい。また、演算装置31に実装された演算モデルは、演算装置31上においてオンラインでの機械学習によって更新されてもよい。或いは、演算装置31は、演算装置31に実装されている演算モデルに加えて又は代えて、演算装置31の外部の装置(つまり、制御装置3の外部に設けられる装置)に実装された演算モデルを用いて、ロボット制御処理を実行してもよい。
尚、演算装置31が実行するコンピュータプログラム321を記録する記録媒体としては、CD-ROM、CD-R、CD-RWやフレキシブルディスク、MO、DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW及びBlu-ray(登録商標)等の光ディスク、磁気テープ等の磁気媒体、光磁気ディスク、USBメモリ等の半導体メモリ、及び、その他プログラムを格納可能な任意の媒体の少なくとも一つが用いられてもよい。記録媒体には、コンピュータプログラム321を記録可能な機器(例えば、コンピュータプログラム321がソフトウェア及びファームウェア等の少なくとも一方の形態で実行可能な状態に実装された汎用機器又は専用機器)が含まれていてもよい。更に、コンピュータプログラム321に含まれる各処理や機能は、演算装置31(つまり、プロセッサ)がコンピュータプログラム321を実行することで演算装置31内に実現される論理的な処理ブロックによって実現されてもよいし、演算装置31が備える所定のゲートアレイ(FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit))等のハードウェアによって実現されてもよいし、論理的な処理ブロックとハードウェアの一部の要素を実現する部分的ハードウェアモジュールとが混在する形式で実現してもよい。
図3には、ロボット制御処理を実行するために演算装置31内に実現される論理的な機能ブロックの一例が示されている。図3に示すように、演算装置31内には、位置姿勢算出部311と、信号生成部312と、誤保持検出部313とが実現される。尚、位置姿勢算出部311、信号生成部312及び誤保持検出部313のそれぞれが行う処理については、後に図5等を参照しながら詳述するため、ここでの説明を省略する。
記憶装置32は、所望のデータを記憶可能な少なくとも一つのメモリを含む。言い換えれば、記憶装置32は、所望のデータを含む少なくとも一つのメモリを含む。メモリは、回路群(例えば、電子回路及び電気回路の少なくとも一つ)によって実現されていてもよい。例えば、記憶装置32は、演算装置31が実行するコンピュータプログラム321を記憶していてもよい。この場合、記憶装置32(メモリ)は、演算装置31が実行するコンピュータプログラム321を記録する上述した記録媒体として用いられてもよい。記憶装置32は、演算装置31がコンピュータプログラム321を実行している場合に演算装置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を受信(つまり、取得)してもよい。更に、通信装置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の外部に対して情報を出力する出力装置として機能してもよい。
尚、上述したロボット1が備えるロボット制御装置13もまた、制御装置3と同様の構成を有していてもよ。つまり、ロボット制御装置13は、ロボット制御装置13の構成を示すブロック図である図4に示すように、ロボット制御装置13は、演算装置131と、記憶装置132と、通信装置133とを備えている。更に、ロボット制御装置13は、入力装置134と、出力装置135とを備えていてもよい。但し、ロボット制御装置13は、入力装置134及び出力装置135のうちの少なくとも一つを備えていなくてもよい。演算装置131と、記憶装置132と、通信装置133と、入力装置134と、出力装置135とは、データバス136を介して接続されていてもよい。
演算装置131は、少なくとも一つのプロセッサ(つまり、一つのプロセッサ又は複数のプロセッサ)をハードウェアとして含む。プロセッサは、例えば、ノイマン型のコンピュータアーキテクチャに準拠したプロセッサを含んでいてもよい。ノイマン型のコンピュータアーキテクチャに準拠したプロセッサは、CPU(Central Processing Unit)及びGPU(Graphics Processing Unit)の少なくとも一つを含んでいてもよい。プロセッサは、例えば、非ノイマン型のコンピュータアーキテクチャに準拠したプロセッサを含んでいてもよい。非ノイマン型のコンピュータアーキテクチャに準拠したプロセッサは、FPGA(Field Programmable Gate Array)及びASIC(Application Specific Circuit)のうちの少なくとも一つを含んでいてもよい。
演算装置131は、コンピュータプログラムコード及びコンピュータプログラム指令の少なくとも一つを含むコンピュータプログラム1321を読み込む。例えば、演算装置131は、記憶装置132が記憶しているコンピュータプログラム1321を読み込んでもよい。例えば、演算装置131は、コンピュータで読み取り可能であって且つ一時的でない記録媒体が記憶しているコンピュータプログラム1321を、ロボット制御装置13が備える図示しない記録媒体読み取り装置を用いて読み込んでもよい。記録媒体から読み取られたコンピュータプログラム1321は、記憶装置132に記憶されてもよい。演算装置131は、通信装置133(或いは、その他の通信装置)を介して、ロボット制御装置13の外部に配置される不図示の装置からコンピュータプログラム1321を取得してもよい(つまり、ダウンロードしてもよい又は読み込んでもよい)。ダウンロードされたコンピュータプログラム1321は、記憶装置132に記憶されてもよい。
演算装置131は、読み込んだコンピュータプログラム1321を実行する。その結果、演算装置131内には、ロボット制御装置13が行うべき処理(例えば、ロボット1及びエンドエフェクタ4の少なくとも一つを制御する処理)を実行するための論理的な機能ブロックが実現される。言い換えれば、演算装置131は、コンピュータプログラム1321が記録された記憶装置132等と共に(言い換えれば、記憶装置132と記憶装置132等に記録されたコンピュータプログラム1321と共に)、ロボット制御装置13が行うべき処理を実行するための論理的な機能ブロックを実現するためのコントローラ又はコンピュータとして機能可能である。つまり、演算装置131が備える少なくとも一つのプロセッサと共に、記憶装置132等が備えるメモリ(記録媒体)とコンピュータプログラム1321とは、ロボット制御装置13が行うべき処理をロボット制御装置13が行うように構成されている。
演算装置131内には、演算装置がコンピュータプログラム1321を実行することで、機械学習によって構築可能な演算モデルが実装されてもよい。機械学習によって構築可能な演算モデルの一例として、例えば、ニューラルネットワークを含む演算モデル(いわゆる、人工知能(AI:Artificial Intelligence))があげられる。この場合、演算モデルの学習は、ニューラルネットワークのパラメータ(例えば、重み及びバイアスの少なくとも一つ)の学習を含んでいてもよい。演算装置131は、演算モデルを用いて、ロボット1及びエンドエフェクタ4の少なくとも一つを制御してもよい。つまり、ロボット1及びエンドエフェクタ4の少なくとも一つを制御する動作は、演算モデルを用いてロボット1及びエンドエフェクタ4の少なくとも一つを制御する動作を含んでいてもよい。尚、演算装置131には、教師データを用いたオフラインでの機械学習により構築済みの演算モデルが実装されてもよい。また、演算装置131に実装された演算モデルは、演算装置131上においてオンラインでの機械学習によって更新されてもよい。或いは、演算装置131は、演算装置131に実装されている演算モデルに加えて又は代えて、演算装置131の外部の装置(つまり、ロボット制御装置13の外部に設けられる装置)に実装された演算モデルを用いて、ロボット制御処理を実行してもよい。
尚、演算装置131が実行するコンピュータプログラム1321を記録する記録媒体としては、CD-ROM、CD-R、CD-RWやフレキシブルディスク、MO、DVD-ROM、DVD-RAM、DVD-R、DVD+R、DVD-RW、DVD+RW及びBlu-ray(登録商標)等の光ディスク、磁気テープ等の磁気媒体、光磁気ディスク、USBメモリ等の半導体メモリ、及び、その他プログラムを格納可能な任意の媒体の少なくとも一つが用いられてもよい。記録媒体には、コンピュータプログラム1321を記録可能な機器(例えば、コンピュータプログラム1321がソフトウェア及びファームウェア等の少なくとも一方の形態で実行可能な状態に実装された汎用機器又は専用機器)が含まれていてもよい。更に、コンピュータプログラム1321に含まれる各処理や機能は、演算装置131(つまり、プロセッサ)がコンピュータプログラム1321を実行することで演算装置131内に実現される論理的な処理ブロックによって実現されてもよいし、演算装置131が備える所定のゲートアレイ(FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit))等のハードウェアによって実現されてもよいし、論理的な処理ブロックとハードウェアの一部の要素を実現する部分的ハードウェアモジュールとが混在する形式で実現してもよい。
記憶装置132は、所望のデータを記憶可能な少なくとも一つのメモリを含む。言い換えれば、記憶装置132は、所望のデータを含む少なくとも一つのメモリを含む。例えば、記憶装置132は、演算装置131が実行するコンピュータプログラム1321を記憶していてもよい。この場合、記憶装置132(メモリ)は、演算装置131が実行するコンピュータプログラム1321を記録する上述した記録媒体として用いられてもよい。記憶装置132は、演算装置131がコンピュータプログラム1321を実行している場合に演算装置131が一時的に使用するデータを一時的に記憶してもよい。記憶装置132は、ロボット制御装置13が長期的に保存するデータを記憶してもよい。尚、記憶装置132は、RAM(Random Access Memory)、ROM(Read Only Memory)、ハードディスク装置、光磁気ディスク装置、SSD(Solid State Drive)及びディスクアレイ装置のうちの少なくとも一つを含んでいてもよい。つまり、記憶装置132は、一時的でない記録媒体を含んでいてもよい。
通信装置133は、不図示の通信ネットワークを介して、撮像システム2及び制御装置3の少なくとも一つと通信可能である。或いは、通信装置133は、不図示の通信ネットワークを介して、撮像システム2及び制御装置3の少なくとも一つに加えて又は代えて、撮像システム2及び制御装置3とは異なる他の装置と通信可能であってもよい。本実施形態では、通信装置133は、制御装置3から、ロボット制御信号を受信(つまり、取得)してもよい。
入力装置134は、ロボット制御装置13の外部からのロボット制御装置13に対する情報の入力を受け付ける装置である。例えば、入力装置134は、ロボット制御装置13のユーザが操作可能な操作装置(例えば、キーボード、マウス及びタッチパネルのうちの少なくとも一つ)を含んでいてもよい。例えば、入力装置134は、ロボット制御装置13に対して外付け可能な記録媒体にデータとして記録されている情報を読み取り可能な記録媒体読取装置を含んでいてもよい。
尚、ロボット制御装置13には、通信装置133を介して、ロボット制御装置13の外部の装置から情報がデータとして入力可能である。この場合、通信装置133は、ロボット制御装置13の外部からのロボット制御装置13に対する情報の入力を受け付ける入力装置として機能してもよい。
出力装置135は、ロボット制御装置13の外部に対して情報を出力する装置である。例えば、出力装置135は、情報を画像として出力してもよい。つまり、出力装置135は、画像を表示可能な表示装置(いわゆる、ディスプレイ)を含んでいてもよい。例えば、出力装置135は、情報を音声として出力してもよい。つまり、出力装置135は、音声を出力可能な音声装置(いわゆる、スピーカ)を含んでいてもよい。例えば、出力装置135は、紙面に情報を出力してもよい。つまり、出力装置135は、紙面に所望の情報を印刷可能な印刷装置(いわゆる、プリンタ)を含んでいてもよい。例えば、出力装置135は、ロボット制御装置13に外付け可能な記録媒体に、情報をデータとして出力してもよい。
尚、ロボット制御装置13からは、通信装置133を介してロボット制御装置13の外部の装置に対して情報がデータとして出力可能である。この場合、通信装置133は、ロボット制御装置13の外部に対して情報を出力する出力装置として機能してもよい。
(2)ロボット制御処理
続いて、図5を参照しながら、制御装置3が行うロボット制御処理について説明する。図5は、ロボット制御処理の流れを示すフローチャートである。
続いて、図5を参照しながら、制御装置3が行うロボット制御処理について説明する。図5は、ロボット制御処理の流れを示すフローチャートである。
(2-1)対象物体OBJに所定の処理を行うためのロボット制御信号の生成
図5に示すように、制御装置3が備える位置姿勢算出部311は、通信装置33を用いて、撮像装置21から画像データIMGを取得する(ステップS11)。具体的には、撮像装置21は、所定の撮像レートで対象物体OBJを撮像する。例えば、撮像装置21は、一秒間に数十回から数百回(一例として、500回)対象物体OBJを撮像する撮像レートで、対象物体OBJを撮像してもよい。尚、対象物体OBJが容器CBに収容されている場合には、対象物体OBJを撮像することは、容器CBの内部(つまり、上述した収容空間SP)を撮像することと等価であるとみなしてもよい。対象物体OBJの撮像結果である画像データIMGは、容器CBの内部(つまり、上述した収容空間SP)の撮像結果である画像データIMGと等価であるとみなしてもよい。その結果、撮像装置21は、所定の撮像レートに応じた周期で画像データIMGを生成する。例えば、撮像装置21は、一秒間に数十個から数百個(一例として、500個)の画像データIMGを生成してもよい。位置姿勢算出部311は、撮像装置21が画像データIMGを生成する都度、画像データIMGを取得する。つまり、位置姿勢算出部311は、一秒間に数十個から数百個(一例として、500個)の画像データIMGを取得してもよい。
図5に示すように、制御装置3が備える位置姿勢算出部311は、通信装置33を用いて、撮像装置21から画像データIMGを取得する(ステップS11)。具体的には、撮像装置21は、所定の撮像レートで対象物体OBJを撮像する。例えば、撮像装置21は、一秒間に数十回から数百回(一例として、500回)対象物体OBJを撮像する撮像レートで、対象物体OBJを撮像してもよい。尚、対象物体OBJが容器CBに収容されている場合には、対象物体OBJを撮像することは、容器CBの内部(つまり、上述した収容空間SP)を撮像することと等価であるとみなしてもよい。対象物体OBJの撮像結果である画像データIMGは、容器CBの内部(つまり、上述した収容空間SP)の撮像結果である画像データIMGと等価であるとみなしてもよい。その結果、撮像装置21は、所定の撮像レートに応じた周期で画像データIMGを生成する。例えば、撮像装置21は、一秒間に数十個から数百個(一例として、500個)の画像データIMGを生成してもよい。位置姿勢算出部311は、撮像装置21が画像データIMGを生成する都度、画像データIMGを取得する。つまり、位置姿勢算出部311は、一秒間に数十個から数百個(一例として、500個)の画像データIMGを取得してもよい。
但し、撮像装置21は、所望の撮像レートで対象物体OBJを周期的に撮像しなくてもよい。例えば、撮像装置21は、対象物体OBJを撮像するように撮像装置21を制御するための制御信号を制御装置3から受信した場合に、対象物体OBJを撮像してもよい。
撮像装置21は、ロボット1が所定の処理を行う対象物体OBJに加えて、対象物体OBJとは異なる他の物体を撮像してもよい。尚、他の物体は、ロボット1が所定の処理を行う対象ではないため、以下の説明では、対象物体OBJとは異なる他の物体を、非対象物体と称する。非対象物体の一例として、エンドエフェクタ4の少なくとも一部があげられる。非対象物体の一例として、ロボットアーム12の少なくとも一部があげられる。非対象物体の一例として、ロボット1の周辺に位置する物体である周辺物体の少なくとも一部があげられる。周辺物体の一例として、載置装置T(言い換えれば、載置部材であり、例えば、容器CB)があげられる。例えば、対象物体OBJと非対象物体との双方が撮像装置21の撮像範囲(視野)に含まれている場合には、撮像装置21は、対象物体OBJと非対象物体との双方を撮像してもよい。その結果、撮像装置21は、対象物体OBJと非対象物体との双方が写り込んでいる画像を示す画像データIMGを生成してもよい。但し、撮像装置21は、対象物体OBJを撮像する一方で、非対象物体を撮像しなくてもよい。つまり、撮像装置21は、対象物体OBJが写り込んでいる一方で非対象物体が写り込んでいない画像を示す画像データIMGを生成してもよい。いずれにおいても、撮像装置21は、少なくとも対象物体OBJが写り込んでいる画像を示す画像データIMGを生成する。つまり、撮像装置21は、少なくとも対象物体OBJの画像データを含む画像データIMGを生成する。
上述したように容器CBに複数の対象物体OBJが収容されている場合には、撮像装置21は、容器CBに収容されている複数の対象物体OBJのうちの少なくとも一部を撮像してもよい。言い換えれば、撮像装置21は、容器CBに収容されている複数の対象物体OBJのうちの少なくとも一部を含む対象物体群を撮像してもよい。撮像装置21が撮像する対象物体群は、容器CBに収容されている複数の対象物体OBJのうちの、撮像装置21の撮像視野に含まれる複数の対象物体OBJ(或いは、場合によっては、撮像装置21の撮像視野に含まれる一つの対象物体OBJ)を含んでいてもよい。
上述したように、撮像装置21は、エンドエフェクタ4が所定の処理を順に行う複数の対象物体OBJを撮像することがある。この場合、エンドエフェクタ4は、第1の期間において、複数の対象物体OBJのうちの第1対象物体OBJに対して所定の処理を行い、第1の期間に続く第2の期間において、複数の対象物体OBJのうちの第1対象物体OBJとは異なる第2対象物体OBJに対して所定の処理を行ってもよい。この場合、第1の期間においては、複数の対象物体OBJのうち、エンドエフェクタ4が所定の処理を行う第1対象物体OBJ以外の他の対象物体OBJ(例えば、第2対象物体OBJ)は、第1の期間においてロボット1が所定の処理を行う処理実行物体ではない対象物体OBJ(或いは、非対象物体)であるとみなされてもよい。同様に、第2の期間においては、複数の対象物体OBJのうち、エンドエフェクタ4が所定の処理を行う第2対象物体OBJ以外の他の対象物体OBJ(例えば、第1対象物体OBJ)は、第2の期間においてロボット1が所定の処理を行う処理実行物体ではない対象物体OBJ(或いは、非対象物体)であるとみなされてもよい。
ステップS11において位置姿勢算出部311が画像データIMGを取得するたびに、位置姿勢算出部311は、ステップS121において取得した画像データIMGに基づいて、対象物体OBJの位置及び姿勢の少なくとも一つを算出する(ステップS12)。その結果、位置姿勢算出部311は、対象物体OBJの位置及び姿勢の少なくとも一つを示す位置姿勢データPOIを生成する(ステップS12)。
以下の説明では、上述したように、ステップS12において位置姿勢算出部311がグローバル座標系における対象物体OBJの位置及び姿勢の少なくとも一つを算出する例について説明する。つまり、以下の説明では、位置姿勢算出部311が、グローバル座標系における対象物体OBJの位置及び姿勢の少なくとも一つを示す位置姿勢データPOIを生成する例について説明する。
位置姿勢算出部311は、グローバル座標系における対象物体OBJの位置として、グローバル座標系のX軸と平行なX軸方向における対象物体OBJの位置Tx、グローバル座標系のY軸と平行なY軸方向における対象物体OBJの位置Ty、及び、グローバル座標系のZ軸と平行なZ軸方向における対象物体OBJの位置Tzのうちの少なくとも一つを算出してもよい。位置姿勢算出部311は、グローバル座標系における対象物体OBJの姿勢として、グローバル座標系のX軸周りの対象物体OBJの回転量Rx、グローバル座標系のY軸周りの対象物体OBJの回転量Ry及びグローバル座標系のZ軸周りの対象物体OBJの回転量Rzのうちの少なくとも一つを算出してもよい。なぜならば、X軸周りの対象物体OBJの回転量Rx、Y軸周りの対象物体OBJの回転量Ry及びZ軸周りの対象物体OBJの回転量Rzは、それぞれ、X軸周りの対象物体OBJの姿勢を表すパラメータ、Y軸周りの対象物体OBJの姿勢を表すパラメータ及びZ軸周りの対象物体OBJの姿勢を表すパラメータと等価であるからである。このため、以下の説明では、X軸周りの対象物体OBJの回転量Rx、Y軸周りの対象物体OBJの回転量Ry及びZ軸周りの対象物体OBJの回転量Rzを、それぞれ、X軸周りの対象物体OBJの姿勢Rx、Y軸周りの対象物体OBJの姿勢Ry及びZ軸周りの対象物体OBJの姿勢Rzと称する。
尚、X軸周りの対象物体OBJの姿勢Rx、Y軸周りの対象物体OBJの姿勢Ry及びZ軸周りの対象物体OBJの姿勢Rzは、それぞれ、X軸周りの回転方向における対象物体OBJの位置、Y軸周りの回転方向における対象物体OBJの位置及びZ軸周りの回転方向における対象物体OBJの位置を示しているとみなしてもよい。つまり、X軸周りの対象物体OBJの姿勢Rx、Y軸周りの対象物体OBJの姿勢Ry及びZ軸周りの対象物体OBJの姿勢Rzは、いずれも、対象物体OBJの位置を表すパラメータであるとみなしてもよい。
図5のステップS12において、位置姿勢算出部311は、ステップS11において取得した画像データIMGを用いたマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。具体的には、位置姿勢算出部311は、画像データIMGと、対象物体OBJの少なくとも一部の形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。
例えば、位置姿勢算出部311は、マッチング処理の一例である2Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。具体的には、位置姿勢算出部311は、2Dマッチング処理を行うために、単眼カメラを含む撮像装置21が生成した画像データIMG(つまり、単眼カメラが生成した一つの画像を含む画像データIMGであり、以降、必要に応じて2D画像データIMG_2Dと称されてもよい)を用いてもよい。この場合、位置姿勢算出部311は、2D画像データIMG_2D(つまり、2D画像データIMG_2Dが示す画像)と、対象物体OBJの少なくとも一部の二次元形状を示すテンプレートモデルとを用いた2Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。この場合、位置姿勢算出部311は、2Dマッチング処理として、2D画像データIMG_2Dが示す画像内で、テンプレートモデルが示す対象物体OBJ(言い換えれば、テンプレートモデルに対応する画像部分)を検出する物体検出処理を行ってもよい。尚、2Dマッチング処理(この場合、物体検出処理)そのものは、既存の2Dマッチング処理と同一であってもよい。例えば、位置姿勢算出部311は、SIFT(Scale-Invariant Feature Transform)やSURF(Speed-Upped Robust Feature)などの周知の方法を用いて、2Dマッチング処理を行ってもよい。
この場合、位置姿勢算出部311は、二次元のテンプレートモデルの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)が、2D画像データIMG_2Dが示す画像に写り込んでいる対象物体OBJの特徴箇所に近づく(例えば、一致する)ように、撮像装置21を基準とする撮像座標系内において、テンプレートモデルを平行移動、拡大、縮小及び/又は回転させてもよい。その結果、位置姿勢算出部311は、テンプレートモデルの座標系と撮像座標系との位置関係を特定することができる。その後、位置姿勢算出部311は、テンプレートモデルの座標系と撮像座標系との位置関係に基づいて、テンプレートモデルの座標系における対象物体OBJの位置及び姿勢の少なくとも一つから、撮像座標系における対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。その後、位置姿勢算出部311は、撮像座標系における三次元座標をグローバル座標系のいずれか他方における三次元座標に変換するための変換行列に基づいて、撮像座標系における対象物体OBJの位置及び姿勢の少なくとも一つを、グローバル座標系における対象物体OBJの位置及び姿勢の少なくとも一つに変換してもよい。
尚、テンプレートモデルは、対象物体OBJの少なくとも一部の二次元形状を示すモデルに限らず、対象物体OBJの少なくとも一部のエッジを示すモデルであってもよい。また、テンプレートモデルは、予め、対象物体のCADモデルから生成されてもよいし、基準となる対象物体OBJを撮像装置21又は他の撮像装置で撮像することによって得られた画像データから生成されてもよい。
尚、位置姿勢算出部311は、2D画像データIMG_2Dに基づいて、2Dマッチング処理以外の既存の方法を用いて対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。例えば、位置姿勢算出部311は、機械学習によって生成された推論モデルを用いて、2D画像データIMG_2Dに基づいて、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。推論モデルは、2D画像データIMG_2Dが入力された場合に、画像データIMGが示す画像に写り込んでいる対象物体OBJの位置及び姿勢の少なくとも一つを出力するように、機械学習によって生成されてもよい。
例えば、撮像装置21がステレオカメラを含む場合には、位置姿勢算出部311は、2Dマッチング処理に代えて、マッチング処理の一例である3Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。具体的には、位置姿勢算出部311は、3Dマッチング処理を行うために、ステレオカメラを含む撮像装置21が生成した画像データIMG(つまり、ステレオカメラが生成した二つの画像を含む画像データIMGであり、以降、必要に応じて3D画像データIMG_3Dと称されてもよい)を用いてもよい。この場合、位置姿勢算出部311は、3D画像データIMG_3D(つまり、3D画像データIMG_3Dが示す二つの画像)に基づいて、3D画像データIMG_3Dが示す画像に写り込んでいる対象物体OBJの少なくとも一部の三次元位置を示す三次元位置データを生成してもよい。この場合、位置姿勢算出部311は、3D画像データIMG_3D(つまり、3D画像データIMG_3Dが示す二つの画像)に基づいて、視差を算出し、算出した視差を用いた三角測量の原理に基づく周知の方法で三次元位置データを生成してもよい。三次元位置データは、対象物体OBJの複数点それぞれの三次元位置を示すデータであってもよい。三次元位置データは、対象物体OBJの表面上の複数点のそれぞれの三次元位置を示すデータであってもよい。三次元位置データは、対象物体OBJの表面の複数部位にそれぞれ相当する複数点のそれぞれの三次元位置を示すデータであってもよい。以下の説明では、三次元位置データとして、点群を示す点群データが用いられる例について説明する。但し、点群を示す点群データとは異なる三次元位置データ(例えば、深度画像を示す深度画像データ)が用いられてもよい。その後、位置姿勢算出部311は、三次元位置データ(例えば、点群データ)と、対象物体OBJの少なくとも一部の三次元形状を示すテンプレートモデルとを用いた3Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。この場合、位置姿勢算出部311は、3Dマッチング処理として、三次元位置データが示す点群内で、三次元のテンプレートモデルが示す対象物体OBJ(言い換えれば、テンプレートモデルに対応する点の集合)を検出する物体検出処理を行ってもよい。尚、3Dマッチング処理(この場合、物体検出処理)そのものは、既存の3Dマッチング処理と同一であってもよい。例えば、位置姿勢算出部311は、RANSAC(Random Sample Consensus)、SIFT(Scale-Invariant Feature Transform)、ICP(Iterative Closest Point)、及びDSO(Direct Sparse Odometry)の少なくとも一つを含む周知の方法を用いて、3Dマッチング処理を行ってもよい。
尚、対象物体OBJの少なくとも一部の三次元形状を示すテンプレートモデルは、予め、対象物体OBJのCADモデルから生成されてもよいし、基準となる対象物体OBJを撮像装置21又は他の撮像装置で撮像することによって得られた画像データから生成されてもよい。
尚、位置姿勢算出部311は、画像データIMG(つまり、画像データIMGが示す二つの画像)に基づいて、3Dマッチング処理以外の既存の方法を用いて対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。例えば、位置姿勢算出部311は、機械学習によって生成された推論モデルを用いて、3D画像データIMG_3Dに基づいて、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。推論モデルは、3D画像データIMG_3Dが入力された場合に、画像データIMGが示す画像に写り込んでいる対象物体OBJの位置及び姿勢の少なくとも一つを出力するように、機械学習によって生成されてもよい。
尚、撮像装置21が単眼カメラを含む撮像装置21である(言い換えれば、ステレオカメラを含まない撮像装置21である)場合であっても、照明装置23が投影パターンを投影した対象物体OBJを撮像装置21が撮像する場合には、位置姿勢算出部311は、2Dマッチング処理に加えて又は代えて、マッチング処理の一例である3Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。なぜならば、位置姿勢算出部311は、2D画像データIMG_2Dが示す画像に写り込んだ投影パターン(具体的には、対象物体OBJの形状に応じて変形した投影パターン)に基づいて、三次元位置データを生成するために利用可能な視差を算出可能であるからである。
3Dマッチング処理が行われる場合には、位置姿勢算出部311は、三次元のテンプレートモデルの特徴箇所(例えば、特徴点及びエッジの少なくとも一つ)が、三次元位置データが三次元位置を示す対象物体OBJ(例えば、三次元位置データが示す対象物体OBJに対応する点群)の特徴箇所に近づく(例えば、一致する)ように、撮像座標系内において、テンプレートモデルを平行移動、拡大、縮小及び/又は回転させてもよい。その結果、位置姿勢算出部311は、テンプレートモデルの座標系と撮像座標系との位置関係を特定することができる。以降は、3Dマッチング処理が行われる場合においても、2Dマッチング処理が行われる場合と同様の処理を行うことで、位置姿勢算出部311は、グローバル座標系における対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。
位置姿勢算出部311は、2Dマッチング処理と3Dマッチング処理との双方を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。例えば、位置姿勢算出部311は、2Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一部を算出し、3Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも他の一部を算出してもよい。例えば、位置姿勢算出部311は、2Dマッチング処理による対象物体OBJの位置及び姿勢の少なくとも一つの算出結果と、3Dマッチング処理による対象物体OBJの位置及び姿勢の少なくとも一つの算出結果とをマージすることで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。
位置姿勢算出部311は、マッチング処理を行う際に、テンプレートモデルと画像データIMGが示す画像に写り込んでいる対象物体OBJ(或いは、画像データIMGから生成される三次元位置データが三次元位置を示す対象物体OBJ)との類似度であるマッチング類似度を算出してもよい。位置姿勢算出部311は、算出されたマッチング類似度がマッチング処理に用いられる所定のマッチング判定閾値を上回る対象物体OBJがマッチング処理によって検出された場合に、当該対象物体OBJを、エンドエフェクタ4が実際に所定の処理を行うべき処理実行物体として選択してもよい。一方で、位置姿勢算出部311は、算出されたマッチング類似度がマッチング判定閾値を下回る対象物体OBJがマッチング処理によって検出された場合に、当該対象物体OBJを、エンドエフェクタ4が実際に所定の処理を行うべき処理実行物体として選択しなくてもよい。
尚、マッチング判定閾値は、マッチング処理によって画像データIMGが示す画像から対象物体OBJを検出するために用いられる閾値である。具体的には、マッチング判定閾値は、画像データIMGが示す画像から検出された物体が対象物体OBJである可能性が高い状態と、画像データIMGが示す画像から検出された物体が対象物体OBJである可能性が低い状態とを、画像データIMGが示す画像から検出された物体のマッチング類似度から区別するために用いられる閾値である。マッチング判定閾値は、画像データIMGを用いたマッチング処理によって算出された対象物体OBJの位置及び姿勢の少なくとも一つの精度が高い状態と、画像データIMGを用いたマッチング処理によって算出された対象物体OBJの位置及び姿勢の少なくとも一つの精度が低い状態とを、マッチング類似度から区別するために用いられる閾値とも言える。
上述したように、撮像装置21が複数の対象物体OBJを撮像する可能性がある。この場合、撮像装置21が生成する画像データIMGが示す画像に、複数の対象物体OBJが写り込んでいる可能性がある。この場合、位置姿勢算出部311は、画像データIMGが示す画像に写り込んでいる複数の対象物体OBJのうちの一の対象物体OBJを、エンドエフェクタ4が実際に所定の処理を行うべき処理実行物体として選択してもよい。例えば、位置姿勢算出部311は、マッチング類似度に基づいて、画像データIMGが示す画像に写り込んでいる複数の対象物体OBJのうちの一の対象物体OBJを、エンドエフェクタ4が実際に所定の処理を行うべき処理実行物体として選択してもよい。一例として、位置姿勢算出部311は、複数の対象物体OBJのうちのマッチング類似度がマッチング閾値を上回り且つ最大となる一の対象物体OBJを、処理実行物体として選択してもよい。他の一例として、位置姿勢算出部311は、複数の対象物体OBJのうちの、マッチング判定閾値を上回るマッチング類似度で且つマッチング類似度がN(尚、Nは、2以上の整数を示す定数である)番目に大きい一の対象物体OBJを、処理実行物体として選択してもよい。他の一例として、位置姿勢算出部311は、複数の対象物体OBJのうちの、所定のマッチング判定閾値を上回るマッチング類似度に対応する一の対象物体OBJを、処理実行物体として選択してもよい。他の一例として、位置姿勢算出部311は、複数の対象物体OBJのうちの、マッチング判定閾値を上回るマッチング類似度に対応し且つエンドエフェクタ4に最も近い一の対象物体OBJを、処理実行物体として選択してもよい。他の一例として、例えば、容器CB(載置装置T)に複数の対象物体OBJが収容されている場合(例えば、複数の物体がばら積みされている場合)には、位置姿勢算出部311は、複数の対象物体OBJのうちの、マッチング判定閾値を上回るマッチング類似度に対応し且つ最もZ軸に沿ったZ座標が大きい(最も高い位置に位置する)一の対象物体OBJを、処理実行物体として選択してもよい。他の一例として、位置姿勢算出部312は、複数の対象物体OBJのうちの、マッチング判定閾値を上回るマッチング類似度に対応し且つエンドエフェクタ4が所定の処理を行うことが可能な一の対象物体OBJを、処理実行物体として選択してもよい。
但し、エンドエフェクタ4が二つ以上の対象物体OBJに対して同時に所定の処理を行うことが可能である場合には、位置姿勢算出部311は、複数の対象物体OBJのうちの少なくとも二つのそれぞれを、処理実行物体として選択してもよい。つまり、位置姿勢算出部311は、エンドエフェクタ4が所定の処理を同時に行うべき少なくとも二つの処理実行物体を選択してもよい。尚、以下の説明では、説明の便宜上、位置姿勢算出部311が、複数の対象物体OBJのうちの一の対象物体OBJを処理実行物体として選択する例について説明する。
その後、信号生成部312は、ステップS12において生成された位置姿勢データPOI(つまり、処理実行物体の位置及び姿勢の少なくとも一つの算出結果であり、マッチング処理の結果)を用いて、ロボット制御信号を生成する(ステップS13)。例えば、信号生成部312は、エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に対して所定の処理を行うことができるように、ロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に対して所定の処理を行うために、エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に近づくように、ロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との位置関係が、所望の保持目標位置関係となるように、ロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との位置関係が保持目標位置関係となるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との姿勢関係が、所望の保持目標姿勢関係となるように、ロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との姿勢関係が保持目標姿勢関係となるようにロボットアーム12の動作を制御するためのロボット制御信号を生成してもよい。
この場合、保持目標位置関係及び保持目標姿勢関係のそれぞれは、事前に設定(登録)されていてもよい。信号生成部312は、事前に設定された保持目標位置関係及び保持目標姿勢関係と、ステップS12において生成された位置姿勢データPOIとに基づいて、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との位置関係が保持目標位置関係となる及び/又はエンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との姿勢関係が保持目標姿勢関係となるようにように、上述したエンドエフェクタ4の保持目標位置及び保持目標姿勢の少なくとも一つを算出してもよい。エンドエフェクタ4の保持目標位置及び保持目標姿勢の少なくとも一つは、エンドエフェクタ4の基準点(例えば、ツールセンターポイント)の目標位置及び目標姿勢の少なくとも一つを意味していてもよい。その後、信号生成部312は、エンドエフェクタ4の位置が保持目標位置に近づくように及び/又はエンドエフェクタ4の姿勢が保持目標姿勢に近づくように、ロボット制御信号を生成してもよい。その結果、エンドエフェクタ4は、対象物体OBJ(特に、処理実行物体)に近づいていく。
エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に近づいている期間中に、撮像システム2は、対象物体OBJ(特に、処理実行物体)を再度撮像し、位置姿勢算出部311は、撮像システム2が対象物体OBJ(特に、処理実行物体)を再度撮像することで再度生成した画像データIMGを再度取得し(図5のステップS11)、位置姿勢算出部311は、再度取得した画像データIMGに基づいて、位置姿勢データPOIを再度生成してもよい(図5のステップS12)。つまり、位置姿勢算出部311は、対象物体OBJ(特に、処理実行物体)の位置及び姿勢の少なくとも一つを更新してもよい。言い換えれば、位置姿勢算出部311は、位置姿勢データPOIを更新してもよい。その後、信号生成部312は、更新された位置姿勢データPOIに基づいて、ロボット制御信号を再度生成してもよい。つまり、信号生成部312は、更新された位置姿勢データPOIに基づいて、ロボット制御信号を更新してもよい。つまり、エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に近づいている期間中に、制御装置3は、図5のステップS11からステップS13までの処理を繰り返してもよい。
その後、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との位置関係が所望位置関係となった時点でエンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に対して所定の処理を行うように、ロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4と対象物体OBJ(特に、処理実行物体)との位置関係が所望位置関係となった時点で対象物体OBJ(特に、処理実行物体)に対して所定の処理を行うようにエンドエフェクタ4の動作を制御するためのロボット制御信号を生成してもよい。
その後、信号生成部312は、通信装置33を用いて、ステップS13において生成されたロボット制御信号をロボット1(特に、ロボット制御装置13)に出力する。その結果、ロボット制御装置13は、ロボット制御信号に基づいて、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御する。
本実施形態では、エンドエフェクタ4が、所定の処理の一例として、容器CBに収容された複数の対象物体OBJのうちの処理実行物体として選択された一の対象物体OBJを保持する保持処理を行う例について説明する。この場合、信号生成部312は、エンドエフェクタ4が処理実行物体を保持するようにロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御するためのロボット制御信号を生成してもよい。
保持処理を行う場合には、ロボット1は、ロボット制御信号に基づいて、エンドエフェクタ4が処理実行物体を保持可能な保持目標位置に向かってエンドエフェクタ4が移動する(つまり、近づく)ようにロボットアーム12を動かしてもよい。その後、エンドエフェクタ4が保持目標位置に到達した後に、エンドエフェクタ4は、ロボット制御信号に基づいて、処理実行物体を保持してもよい。
保持処理を行う場合には、ロボット1は、ロボット制御信号に基づいて、エンドエフェクタ4の姿勢が、エンドエフェクタ4が処理実行物体を保持可能な保持目標姿勢となるまでエンドエフェクタ4が動く(つまり、移動する)ようにロボットアーム12を動かしてもよい。その後、エンドエフェクタ4の姿勢が保持目標姿勢となった後に、エンドエフェクタ4は、ロボット制御信号に基づいて、処理実行物体を保持してもよい。
エンドエフェクタ4が対象物体OBJを保持する保持処理を行う場合には、ロボットシステムSYSは、対象物体OBJを保持する保持動作を行っているとみなしてもよい。例えば、ロボットシステムSYSは、エンドエフェクタ4を用いて対象物体OBJを保持する保持処理を、保持動作の少なくとも一部として行ってもよい。つまり、保持動作は、主としてエンドエフェクタ4が行う保持処理を含んでいてもよい。例えば、ロボットシステムSYSは、エンドエフェクタ4が対象物体OBJ(特に、処理実行物体)に近づくようにエンドエフェクタ4を移動させる移動処理を、保持動作の少なくとも一部として行ってもよい。例えば、ロボットシステムSYSは、エンドエフェクタ4が保持目標位置に近づくようにエンドエフェクタ4を移動させる移動処理を、保持動作の少なくとも一部として行ってもよい。例えば、ロボットシステムSYSは、エンドエフェクタ4の姿勢が保持目標姿勢となるようにエンドエフェクタ4を移動させる移動処理を、保持動作の少なくとも一部として行ってもよい。つまり、保持動作は、上述した保持処理に加えて、主としてロボット1が行う移動処理を含んでいてもよい。
エンドエフェクタ4が処理実行物体を保持した後には、エンドエフェクタ4は、所定の処理の一例として、エンドエフェクタ4が保持した処理実行物体をリリースするリリース処理を行ってもよい。つまり、エンドエフェクタ4は、保持処理及びリリース処理を行うことで、対象物体OBJを配置するための配置処理(言い換えれば、配置動作)を、所定の処理の一例として行ってもよい。
リリース処理を行う場合には、ロボット1は、処理実行物体を保持したエンドエフェクタ4が、エンドエフェクタ4が処理実行物体をリリース可能なリリース目標位置に向かって移動する(つまり、近づく)ようにロボットアーム12を動かしてもよい。リリース目標位置は、容器CBの外に設定されていてもよい。この場合、ロボット1は、エンドエフェクタ4が保持した処理実行物体が容器CBから搬出されるようにロボットアーム12を動かしているとみなしてもよい。その後、エンドエフェクタ4がリリース目標位置に到達した後に、エンドエフェクタ4は、エンドエフェクタ4が保持している処理実行物体をリリースしてもよい。
尚、制御装置3は、エンドエフェクタ4がリリース目標位置に向かって移動するようにロボット1を制御するためのロボット制御信号を生成してもよい。この場合、ロボット制御装置13は、ロボット制御信号に基づいて、エンドエフェクタ4がリリース目標位置に向かって移動するようにロボットアーム12を動かしてもよい。或いは、ロボット制御装置13は、ティーチング等の他のロボット制御方法に基づいて、エンドエフェクタ4がリリース目標位置に向かって移動するようにロボットアーム12を動かしてもよい。
同様に、制御装置3は、リリース目標位置に位置するエンドエフェクタ4が処理実行物体をリリースするようにエンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。この場合、エンドエフェクタ4は、ロボット制御信号に基づいて、エンドエフェクタ4が保持している処理実行物体をリリースしてもよい。或いは、エンドエフェクタ4は、ティーチング等の他のロボット制御方法に基づいて、エンドエフェクタ4が保持している処理実行物体をリリースしてもよい。
(2-2)エンドエフェクタ4が処理実行物体とは異なる対象物体OBJを保持した場合の処理
ここで、上述したように容器CBに収容されている複数の対象物体OBJ(特に、ステップS11において撮像装置21が撮像した複数の対象物体OBJ)のうちの一つの対象物体OBJが処理実行物体として選択された場合には、エンドエフェクタ4は、本来、処理実行物体として選択された一つの対象物体OBJを保持するべきである。しかしながら、場合によっては、エンドエフェクタ4は、処理実行物体として選択された対象物体OBJと共に、処理実行物体として選択されていない少なくとも一つの対象物体OBJを保持する可能性がある。つまり、エンドエフェクタ4は、容器CBに収容されており且つ処理実行物体として選択された一つの対象物体OBJと共に、容器CBに収容されており且つ処理実行物体として選択されていない少なくとも一つの対象物体OBJを保持する可能性がある。尚、以下の説明では、説明の便宜上、一の期間中にエンドエフェクタ4が保持するべき処理実行物体(つまり、処理実行物体として選択された対象物体OBJ)を、“処理実行物体OBJ_tgt”と表記し、同じ一の期間中にエンドエフェクタ4が処理実行物体OBJ_tgtと共に保持した対象物体OBJを、“非処理実行物体OBJ_ntgt”と称する。尚、一の期間中にエンドエフェクタ4が保持するべき処理実行物体OBJ_tgtとなる対象物体OBJは、一の期間とは異なる他の期間において、処理実行物体OBJ_tgtではない対象物体OBJであってもよいし、非処理実行物体OBJ_ntgtとなる対象物体OBJであってもよい。同様に、一の期間中にエンドエフェクタ4が処理実行物体OBJ_tgtと共に保持した非処理実行物体OBJ_ntgtとなる対象物体OBJは、一の期間とは異なる他の期間において、非処理実行物体OBJ_ntgtではない対象物体OBJであってもよいし、処理実行物体OBJ_tgtとなる対象物体OBJであってもよい。
ここで、上述したように容器CBに収容されている複数の対象物体OBJ(特に、ステップS11において撮像装置21が撮像した複数の対象物体OBJ)のうちの一つの対象物体OBJが処理実行物体として選択された場合には、エンドエフェクタ4は、本来、処理実行物体として選択された一つの対象物体OBJを保持するべきである。しかしながら、場合によっては、エンドエフェクタ4は、処理実行物体として選択された対象物体OBJと共に、処理実行物体として選択されていない少なくとも一つの対象物体OBJを保持する可能性がある。つまり、エンドエフェクタ4は、容器CBに収容されており且つ処理実行物体として選択された一つの対象物体OBJと共に、容器CBに収容されており且つ処理実行物体として選択されていない少なくとも一つの対象物体OBJを保持する可能性がある。尚、以下の説明では、説明の便宜上、一の期間中にエンドエフェクタ4が保持するべき処理実行物体(つまり、処理実行物体として選択された対象物体OBJ)を、“処理実行物体OBJ_tgt”と表記し、同じ一の期間中にエンドエフェクタ4が処理実行物体OBJ_tgtと共に保持した対象物体OBJを、“非処理実行物体OBJ_ntgt”と称する。尚、一の期間中にエンドエフェクタ4が保持するべき処理実行物体OBJ_tgtとなる対象物体OBJは、一の期間とは異なる他の期間において、処理実行物体OBJ_tgtではない対象物体OBJであってもよいし、非処理実行物体OBJ_ntgtとなる対象物体OBJであってもよい。同様に、一の期間中にエンドエフェクタ4が処理実行物体OBJ_tgtと共に保持した非処理実行物体OBJ_ntgtとなる対象物体OBJは、一の期間とは異なる他の期間において、非処理実行物体OBJ_ntgtではない対象物体OBJであってもよいし、処理実行物体OBJ_tgtとなる対象物体OBJであってもよい。
例えば、エンドエフェクタ4は、処理実行物体OBJ_tgtと共に、非処理実行物体OBJ_ntgtを誤って保持してしまう可能性がある。例えば、エンドエフェクタ4は、処理実行物体OBJ_tgtと共に、非処理実行物体OBJ_ntgtを意図せず保持してしまう可能性がある。例えば、エンドエフェクタ4は、処理実行物体OBJ_tgtと共に、非処理実行物体OBJ_ntgtを余計に(言い換えれば、余分に)保持してしまう可能性がある。例えば、エンドエフェクタ4は、処理実行物体OBJ_tgtと共に、非処理実行物体OBJ_ntgtを意に反して保持してしまう可能性がある。
エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している状態は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態を含んでいてもよい。
「エンドエフェクタ4が一の対象物体OBJを直接的に保持する」状態は、エンドエフェクタ4が、エンドエフェクタ4及び一の対象物体OBJとは異なる他の物体を介することなく、一の対象物体OBJを保持する状態を含んでいてもよい。この場合、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態は、エンドエフェクタ4が、非処理実行物体OBJ_ntgtとは異なる他の物体(例えば、処理実行物体OBJ_tgt)を介することなく、非処理実行物体OBJ_ntgtを保持する状態を含んでいてもよい。
「エンドエフェクタ4が一の対象物体OBJを直接的に保持する」状態は、対象物体OBJを保持するためのエンドエフェクタ4の保持力が一の対象物体OBJに直接的に作用することに起因して、エンドエフェクタ4が一の対象物体OBJを保持する状態を含んでいてもよい。この場合、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態は、対象物体OBJを保持するためのエンドエフェクタ4の保持力が非処理実行物体OBJ_ntgtに直接的に作用することに起因して、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持する状態を含んでいてもよい。
尚、エンドエフェクタ4がハンドグリッパーである場合には、エンドエフェクタ4の保持力は、エンドエフェクタ4(例えば、ハンドグリッパーの指部材又は爪部材)とエンドエフェクタ4に接触する対象物体OBJとの間に作用する摩擦力を含んでいてもよい。エンドエフェクタ4がバキュームグリッパーである場合には、エンドエフェクタ4の保持力は、エンドエフェクタ4のバキューム装置が発生させている吸引力(言い換えると、真空度)を含んでいてもよい。エンドエフェクタ4がマグネットグリッパーである場合には、エンドエフェクタ4の保持力は、エンドエフェクタ4の磁気吸着装置が発生させている磁力(又は電磁力)を含んでいてもよい。
エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態の一例が、図6(a)に示されている。尚、以降の説明では、図6(a)に示すように、エンドエフェクタ4がマグネットグリッパーである例について説明する。図6(a)に示すように、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態は、エンドエフェクタ4が、処理実行物体OBJ_tgtを直接的に保持すると共に、非処理実行物体OBJ_ntgtを直接的に保持する状態を含んでいてもよい。エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力の直接的な作用によって処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4の保持力の直接的な作用によって非処理実行物体OBJ_ntgtを直接的に保持する状態を含んでいてもよい。
尚、図6(a)は、エンドエフェクタ4が一つの非処理実行物体OBJ_ntgtを直接的に保持している例を示しているが、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態は、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを直接的に保持している状態を含んでいてもよい。
エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している状態は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態を含んでいてもよい。
「エンドエフェクタ4が一の対象物体OBJを間接的に保持する」状態は、エンドエフェクタ4が、エンドエフェクタ4及び一の対象物体OBJとは異なる他の物体を介して、一の対象物体OBJを保持する状態を含んでいてもよい。この場合、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、非処理実行物体OBJ_ntgtとは異なる他の物体(例えば、処理実行物体OBJ_tgt)を介して、非処理実行物体OBJ_ntgtを保持する状態を含んでいてもよい。
「エンドエフェクタ4が一の対象物体OBJを間接的に保持する」状態は、対象物体OBJを保持するためのエンドエフェクタ4の保持力とは異なる力によって、エンドエフェクタ4が一の対象物体OBJを保持する状態を含んでいてもよい。この場合、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、対象物体OBJを保持するためのエンドエフェクタ4の保持力とは異なる力によって、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持する状態を含んでいてもよい。
エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態の一例が、図6(b)に示されている。図6(b)に示すように、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtによって非処理実行物体OBJ_ntgtが保持された状態を含んでいてもよい。エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4の保持力とは異なる力によって、非処理実行物体OBJ_ntgtを保持する状態を含んでいてもよい。例えば、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtと非処理実行物体OBJ_ntgtとの間に作用する摩擦力によって非処理実行物体OBJ_ntgtが保持される状態を含んでいてもよい。
尚、図6(b)は、エンドエフェクタ4が一つの非処理実行物体OBJ_ntgtを間接的に保持している例を示しているが、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態を含んでいてもよい。
エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態の一例が、図6(c)に示されている。図6(c)は、エンドエフェクタ4が二つの非処理実行物体OBJ_ntgt#1及びOBJ_ntgt#2を間接的に保持している状態を示している。図6(c)に示すように、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtによって非処理実行物体OBJ_ntgt#1及びOBJ_ntgt#2が保持された状態を含んでいてもよい。エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4の保持力とは異なる力によって非処理実行物体OBJ_ntgt#1及びOBJ_tgt#2を保持する状態を含んでいてもよい。例えば、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtと非処理実行物体OBJ_ntgt#1との間に作用する摩擦力によって非処理実行物体OBJ_ntgt#1が保持され、且つ、エンドエフェクタ4が保持している処理実行物体OBJ_tgtと非処理実行物体OBJ_ntgt#2との間に作用する摩擦力によって非処理実行物体OBJ_ntgt#2が保持される状態を含んでいてもよい。
エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態の一例が、図6(d)に示されている。図6(d)は、エンドエフェクタ4が二つの非処理実行物体OBJ_ntgt#1及びOBJ_ntgt#2を間接的に保持している状態を示している。図6(d)に示すように、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtによって非処理実行物体OBJ_ntgt#1が保持され、処理実行物体OBJ_tgtによって保持されている非処理実行物体OBJ_ntgt#1によって非処理実行物体OBJ_ntgt#2が保持された状態を含んでいてもよい。エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4の保持力とは異なる力によって非処理実行物体OBJ_ntgt#1及びOBJ_tgt#2を保持する状態を含んでいてもよい。例えば、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持している状態は、エンドエフェクタ4が、エンドエフェクタ4の保持力を用いて処理実行物体OBJ_tgtを直接的に保持すると共に、エンドエフェクタ4が保持している処理実行物体OBJ_tgtと非処理実行物体OBJ_ntgt#1との間に作用する摩擦力によって非処理実行物体OBJ_ntgt#1が保持され、且つ、非処理実行物体OBJ_ntgt#1と非処理実行物体OBJ_ntgt#2との間に作用する摩擦力によって非処理実行物体OBJ_ntgt#2が保持される状態を含んでいてもよい。
尚、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している状態は、エンドエフェクタ4が少なくとも一つの非処理実行物体OBJ_ntgtを直接的に保持し、且つ、エンドエフェクタ4が少なくとも他の一つの非処理実行物体OBJ_ntgtを間接的に保持している状態を含んでいてもよい。
また、図6(a)から図6(d)は、エンドエフェクタ4が一つの処理実行物体OBJ_tgtを保持している例を示している。しかしながら、上述したように複数の処理実行物体OBJ_tgtが選択された場合(エンドエフェクタ4が複数の処理実行物体OBJ_tgtを保持可能な場合)には、エンドエフェクタ4は、複数の処理実行物体OBJ_tgtを保持してもよい。この場合、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している状態は、エンドエフェクタ4が複数の処理実行物体OBJ_tgtを直接的に保持し、且つ、エンドエフェクタ4が少なくとも一つの非処理実行物体OBJ_ntgtを直接的に又は間接的に保持している状態を含んでいてもよい。
このようにエンドエフェクタ4が処理実行物体OBJ_tgtを保持したときに非処理実行物体OBJ_ntgtがエンドエフェクタ4によって保持された場合には、エンドエフェクタ4が処理実行物体OBJ_tgtをリリースするリリース処理を行う前に、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御してもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。言い換えれば、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理を行うようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
例えば、制御装置3は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する(その結果、少なくとも非処理実行物体OBJ_ntgtが容器CBに戻る)ように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御してもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理として、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行うようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、容器CBに落下させられる非処理実行物体OBJ_ntgtは、落下対象物体と称してもよい。
また、例えば、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを落下させることなく少なくとも非処理実行物体OBJ_ntgtが容器CBに配置される(その結果、少なくとも非処理実行物体OBJ_ntgtが容器CBに戻る)ように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御してもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理として、少なくとも非処理実行物体OBJ_ntgtを落下させることなく少なくとも非処理実行物体OBJ_ntgtが容器CBに配置する処理を行うようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、非処理実行物体OBJ_ntgtが容器CBに落下する場合と比較して、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃に起因して、落下した非処理実行物体OBJ_ntgt、非処理実行物体OBJ_ntgtが落下した容器CB、及び、非処理実行物体OBJ_ntgtが落下した容器CBに収容されている対象物体OBJの少なくとも一つが破損する可能性が低くなる。更には、非処理実行物体OBJ_ntgtが容器CBに落下する場合と比較して、制御装置3は、少なくとも非処理実行物体OBJ_ntgtをより迅速に容器CBに戻すことができる。
尚、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理と、処理実行物体OBJ_tgtをリリースするリリース処理とは、エンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるという点で共通しているとみなしてもよい。しかしながら、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理は、エンドエフェクタ4が保持した対象物体OBJを、上述したリリース目標位置とは異なる位置でリリースするためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるという点で、エンドエフェクタ4が保持した対象物体OBJを、上述したリリース目標位置でリリースするためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるリリース処理とは異なるとみなしてもよい。少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理は、エンドエフェクタ4が保持した対象物体OBJを容器CBに配置するためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるという点で、エンドエフェクタ4が保持した対象物体OBJを容器CBとは異なる位置に配置するためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるリリース処理とは異なるとみなしてもよい。少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理は、エンドエフェクタ4が本来保持しなくてもよかった非処理実行物体OBJ_ntgtを容器CBに戻すためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるという点で、エンドエフェクタ4が本来保持するべきである処理実行物体OBJ_tgtを所望のリリース目標位置でリリースするためにエンドエフェクタ4が保持した対象物体OBJをエンドエフェクタ4から離す処理であるリリース処理とは異なるとみなしてもよい。少なくとも非処理実行物体OBJ_ntgtを容器CBに戻す処理は、ロボット1が進めた配置処理(つまり、保持処理及びリリース処理を含む一連の処理)の工程を部分的に戻すための処理であるという点で、ロボットが進めた配置処理の工程を先に進めるためのリリース処理とは異なるとみなしてもよい。
以下の説明では、説明の便宜上、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すために少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる例について説明する。但し、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すために少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることなく配置する場合においても、以下に説明する動作が行われてもよい。
再び図5において、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるために、ステップS13において生成されたロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御された後に、制御装置3は、エンドエフェクタ4が処理実行物体OBJ_tgtに加えて非処理実行物体OBJ_ntgtを保持しているか否かを判定する(ステップS21からステップS22)。つまり、エンドエフェクタ4が間接的又は直接的に少なくとも非処理実行物体OBJ_ntgtを保持している場合、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるために、ステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に、制御装置3は、エンドエフェクタ4が処理実行物体OBJ_tgtに加えて非処理実行物体OBJ_ntgtを保持しているか否かを判定する(ステップS21からステップS22)。この場合、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したタイミングで、制御装置3は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。言い換えれば、エンドエフェクタ4が処理実行物体OBJ_tgtを保持すると同時に、制御装置3は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。或いは、エンドエフェクタ4が処理実行物体OBJ_tgtを保持してから所定時間が経過した後に、制御装置3は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。その後、エンドエフェクタ4が処理実行物体OBJ_tgtに加えて非処理実行物体OBJ_ntgtを保持していると判定された場合には、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する(ステップS23からステップS24)。
尚、ステップS13において生成されたロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御された後にエンドエフェクタ4が対象物体OBJを一つも保持していない場合には、エンドエフェクタ4が処理実行物体OBJ_tgtに加えて非処理実行物体OBJ_ntgtを保持しているか否かの判定の結果として、制御装置3は、エンドエフェクタ4が対象物体OBJを一つも保持していないと判定してもよい。つまり、エンドエフェクタ4が、エンドエフェクタ4が本来保持するべきでなかった非処理実行物体OBJ_ntgtのみならず、エンドエフェクタ4が本来保持するべきであった処理実行物体OBJ_tgtも保持していない場合には、エンドエフェクタ4が処理実行物体OBJ_tgtに加えて非処理実行物体OBJ_ntgtを保持しているか否かの判定の結果として、制御装置3は、エンドエフェクタ4が対象物体OBJを一つも保持していないと判定してもよい。この場合、制御装置3は、エンドエフェクタ4が本来保持するべきであったのに保持しなかった処理実行物体OBJ_tgtをエンドエフェクタ4が保持するように、ロボット制御信号を生成してもよい。つまり、制御装置3は、処理実行物体OBJ_tgtを他の対象物体OBJに変更することなく、同じ処理実行物体OBJ_tgt(同じ対象物体OBJ)をエンドエフェクタ4が保持するように、ロボット制御信号を生成してもよい。或いは、制御装置3は、エンドエフェクタ4が本来保持するべきであったのに保持しなかった処理実行物体OBJ_tgtとは異なる対象物体OBJを、新たな処理実行物体OBJ_tgtとして選択してもよい。つまり、制御装置3は、選択済みの処理実行物体OBJ_tgtとは異なり且つマッチング類似度が処理実行物体OBJ_tgtの選択に関する上述した条件を満たす対象物体OBJを、新たな処理実行物体OBJ_tgtとして選択してもよい。或いは、選択済みの処理実行物体OBJ_tgtとは異なり且つマッチング類似度が処理実行物体OBJ_tgtの選択に関する上述した条件を満たす対象物体OBJが存在しなければ、制御装置3は、撮像システム2を移動させるようにロボット制御信号を生成してもよい。例えば、制御装置3は、撮像システム2の位置及び姿勢の少なくとも一つが変わるように撮像システム2を移動させるためのロボット制御信号を生成してもよい。その後、制御装置3は、移動した撮像システム2が対象物体OBJを撮像することで生成した画像データIMGを取得し、画像データIMGに基づいて、マッチング類似度が処理実行物体OBJ_tgtの選択に関する上述した条件を満たす対象物体OBJを、新たな処理実行物体OBJ_tgtとして選択してもよい。その後、制御装置3は、新たに選択した処理実行物体OBJ_tgtをエンドエフェクタ4が保持するように、ロボット制御信号を生成してもよい。尚、この場合、制御装置3は、撮像システム2を移動させるためのロボット制御信号を生成しなくてもよい。制御装置3は、前回と同じ位置及び姿勢で対象物体OBJを撮像することで生成した画像データIMGを取得し、画像データIMGに基づいて、マッチング類似度が処理実行物体OBJ_tgtの選択に関する上述した条件を満たす対象物体OBJを、新たな処理実行物体OBJ_tgtとして選択してもよい。
(2-2-1)エンドエフェクタ4が非処理実行物体を保持しているか否かの判定
具体的には、まず、ステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に、撮像装置21は、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像する(ステップS21)。例えば、撮像装置21は、エンドエフェクタ4が対象物体OBJ(例えば、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの少なくとも一つ)を保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を撮像してもよい。言い換えると、撮像装置21の撮像範囲(撮像画角)が、エンドエフェクタ4が対象物体OBJを保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を含むように位置した状態で、撮像装置21は、その領域を撮像してもよい。但し、ステップS21の処理が行われる段階では、エンドエフェクタ4が対象物体OBJを実際に保持しているか否かは判明していない状況にあるが、ステップS21の処理が行われる段階で仮にエンドエフェクタ4が対象物体OBJを一つも保持していない場合には、ステップS21において、撮像装置21は、対象物体OBJを撮像しなくてもよい。尚、エンドエフェクタ4が保持している対象物体OBJを撮像する撮像装置21は、エンドエフェクタ4が保持している対象物体OBJを計測する計測装置として機能しているとみなしてもよい。
具体的には、まず、ステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に、撮像装置21は、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像する(ステップS21)。例えば、撮像装置21は、エンドエフェクタ4が対象物体OBJ(例えば、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの少なくとも一つ)を保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を撮像してもよい。言い換えると、撮像装置21の撮像範囲(撮像画角)が、エンドエフェクタ4が対象物体OBJを保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を含むように位置した状態で、撮像装置21は、その領域を撮像してもよい。但し、ステップS21の処理が行われる段階では、エンドエフェクタ4が対象物体OBJを実際に保持しているか否かは判明していない状況にあるが、ステップS21の処理が行われる段階で仮にエンドエフェクタ4が対象物体OBJを一つも保持していない場合には、ステップS21において、撮像装置21は、対象物体OBJを撮像しなくてもよい。尚、エンドエフェクタ4が保持している対象物体OBJを撮像する撮像装置21は、エンドエフェクタ4が保持している対象物体OBJを計測する計測装置として機能しているとみなしてもよい。
その後、制御装置3の誤保持検出部313は、通信装置33を用いて、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像することで生成した画像データIMGを取得する(ステップS21)。その後、誤保持検出部313は、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定する(ステップS22)。
具体的には、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGに基づくマッチング処理(特に、物体検出処理)を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの数を算出してもよい。つまり、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGに基づくマッチング処理(特に、物体検出処理)を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの数を算出してもよい。
或いは、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGに基づくマッチング処理(特に、物体検出処理)を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つが判明すると、必然的に、エンドエフェクタ4が実際に保持している対象物体OBJの数もまた判明する。このため、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つの算出結果に基づいて、エンドエフェクタ4が実際に保持している対象物体OBJの数を算出してもよい。
尚、ステップS22において行われるマッチング処理そのものは、ステップS12において行われるマッチング処理と同一であってもよい。
その後、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数が、エンドエフェクタ4が本来保持するべき対象物体OBJの数(つまり、エンドエフェクタ4が本来保持するべき処理実行物体OBJ_tgt)の数である所定の保持物体数と同一であるか否かを判定する。例えば、上述したように容器CBに収容されている複数の対象物体OBJのうちのいずれか一つの対象物体OBJが処理実行物体OBJ_tgtとして選択された場合には、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数が、所定の保持物体数である1であるか否かを判定する。例えば、上述したように容器CBに収容されている複数の対象物体OBJのうちの少なくとも二つの対象物体OBJが処理実行物体OBJ_tgtとして選択された場合には、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数が、処理実行物体OBJ_tgtとして選択された対象物体OBJの数(つまり、2以上の整数)である所定の保持物体数と同一であるか否かを判定する。
エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一である場合には、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している可能性は低い。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数よりも多い場合には、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している可能性が高い。そこで、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一である場合には、誤保持検出部313は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していないと判定してもよい。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数よりも多い場合には、誤保持検出部313は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していると判定してもよい。
ここで、ステップS21において撮像装置21が生成した画像データIMGが示す画像に、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJに加えて、容器CBに残っている少なくとも一つの対象物体OBJが写り込んでいる場合には、ステップS22において行われるマッチング処理(特に、物体検出処理)によって、容器CBに残っているがゆえにエンドエフェクタ4が保持していない対象物体OBJが、エンドエフェクタ4が保持している対象物体OBJであると誤って検出されてしまう可能性がある。但し、この場合であっても、撮像装置21が生成した画像データIMGが示す画像において、容器CBに残っている少なくとも一つの対象物体OBJのサイズが、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJのサイズよりも小さければ、ステップS22において行われるマッチング処理(例えば、物体検出処理)によって、容器CBに残っているがゆえにエンドエフェクタ4が保持していない対象物体OBJが、エンドエフェクタ4が保持している対象物体OBJであると誤って検出される可能性は低くなる。また、撮像装置21が生成した画像データIMGが示す画像において、容器CBに残っている少なくとも一つの対象物体OBJがボケている場合には、ステップS22において行われるマッチング処理によって、容器CBに残っているがゆえにエンドエフェクタ4が保持していない対象物体OBJが、エンドエフェクタ4が保持している対象物体OBJであると誤って検出される可能性は低くなる。なぜならば、容器CBに残っている少なくとも一つの対象物体OBJのマッチング類似度が低下するからである。
そこで、信号生成部312は、ステップS21においてエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に、撮像装置21が、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した時点での撮像装置21の位置である第1カメラ位置から、容器CBに対して離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJに対して離れる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。言い換えれば、信号生成部312は、ステップS21においてエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に、第1カメラ位置に位置する撮像装置21が、容器CBから離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJから離れる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。一例として、図7(a)及び図7(b)に示すように、信号生成部312は、第1カメラ位置よりも高い第2カメラ位置に撮像装置21が移動するようにロボット1を制御するためのロボット制御信号を生成してもよい。尚、ここでいう高さは、容器CBからの高さ(つまり、容器CBまでの距離)を意味していてもよい。つまり、信号生成部312は、第1カメラ位置よりも容器CBから遠い(特に、容器CBに収容されている少なくとも一つの対象物体OBJから遠い)第2カメラ位置に撮像装置21が移動するようにロボット1を制御するためのロボット制御信号を生成してもよい。その後、ロボット1は、ロボット制御信号に基づいて、ステップS21においてエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に、撮像装置21が、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した時点での撮像装置21の位置である第1カメラ位置から、容器CBに収容されている少なくとも一つの対象物体OBJに対して離れるように、ロボットアーム12を移動させてもよい。言い換えれば、ロボット1は、ロボット制御信号に基づいて、ステップS21においてエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に、第1カメラ位置に位置する撮像装置21が、容器CBに収容されている少なくとも一つの対象物体OBJから離れるように、ロボットアーム12を移動させてもよい。一例として、ロボット1は、第1カメラ位置よりも高い第2カメラ位置に撮像装置21が移動するように、ロボットアーム12を移動させてもよい。撮像装置21が移動した後、撮像装置21は、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像してもよい。その結果、仮に撮像装置21が、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJに加えて容器CBに残っている少なくとも一つの対象物体OBJを撮像したとしても、撮像装置21が生成した画像データIMGが示す画像において、容器CBに残っている少なくとも一つの対象物体OBJのサイズが、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJのサイズよりも小さくなる。また、仮に撮像装置21が、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJに加えて容器CBに残っている少なくとも一つの対象物体OBJを撮像したとしても、撮像装置21が生成した画像データIMGが示す画像において、容器CBに残っている少なくとも一つの対象物体OBJがボケる可能性が高い。その結果、誤保持検出部313が、容器CBに残っているがゆえにエンドエフェクタ4が保持していない対象物体OBJを、エンドエフェクタ4が保持している対象物体OBJであると誤って検出してしまう可能性は低くなる。このため、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定する精度が向上する。
尚、撮像装置21が第1カメラ位置から第2カメラ位置に移動すると、撮像装置21と共に移動するエンドエフェクタ4もまた、第1カメラ位置に対応する第1ツール位置から、第2カメラ位置に対応する第2ツール位置に移動する。つまり、エンドエフェクタ4は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した時点でのエンドエフェクタ4の位置である第1ツール位置から、容器CBに対して離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJに対して離れる)ように移動する。言い換えれば、第1ツール位置に位置するエンドエフェクタ4は、容器CBから離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJから離れる)ように移動する。一例として、図7(a)及び図7(b)に示すように、エンドエフェクタ4は、第1ツール位置よりも高い第2ツール位置に移動する。つまり、エンドエフェクタ4は、第1ツール位置よりも容器CBから遠い(特に、容器CBに収容されている少なくとも一つの対象物体OBJから遠い)第2ツール位置に移動する。
また、エンドエフェクタ4が第1ツール位置から第2ツール位置に移動すると、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJもまた、第1ツール位置に対応する第1物体位置から、第2ツール位置に対応する第2物体位置に移動する。つまり、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJは、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した時点でのエンドエフェクタ4が保持している少なくとも一つの対象物体OBJの位置である第1物体位置から、容器CBに対して離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJに対して離れる)ように移動する。言い換えれば、第1物体位置に位置する少なくとも一つの対象物体OBJは、容器CBから離れる(特に、容器CBに収容されている少なくとも一つの対象物体OBJから離れる)ように移動する。一例として、図7(a)及び図7(b)に示すように、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJは、第1物体位置よりも高い第2物体位置に移動する。つまり、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJは、第1物体位置よりも容器CBから遠い(特に、容器CBに収容されている少なくとも一つの対象物体OBJから遠い)第2物体位置に移動する。
但し、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に、撮像装置21は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した時点での撮像装置21の位置である第1カメラ位置から、容器CBに収容されている少なくとも一つの対象物体OBJから離れなくてもよい。つまり、第1カメラ位置に位置する撮像装置21は、第1カメラ位置から、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像してもよい。
このようにエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する前に撮像装置21が容器CBに収容されている少なくとも一つの対象物体OBJから離れなくてもよい(つまり、容器CBから離れなくてもよい)場合には、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることなく少なくとも非処理実行物体OBJ_ntgtを容器CBに配置する(つまり、戻す)ことで、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる場合よりも速く少なくとも非処理実行物体OBJ_ntgtを容器CBに戻すことができる。なぜならば、撮像装置21が容器CBから離れない場合には、エンドエフェクタ4もまた容器CBから離れないがゆえに、非処理実行物体OBJ_ntgtを保持したエンドエフェクタ4は、その位置(具体的には、非処理実行物体OBJ_ntgtを保持した第1ツール位置)においてそのまま非処理実行物体OBJ_ntgtをリリースすればいい(離せばいい)からである。
尚、上述した保持処理及びリリース処理が繰り返し行われると、容器CBに収容されている対象物体群に含まれる対象物体OBJの数が少なくなっていく。その結果、容器CBに収容されている対象物体群の高さが低くなっていく可能性がある。この場合、図5のステップS11において撮像装置21が容器CBに収容されている対象物体群を撮像する前に、制御装置3は、容器CBに収容されている対象物体群の高さに合わせて、撮像装置21の高さ(例えば、容器CBからの高さであり、容器CBからの距離)を制御してもよい。例えば、制御装置3は、容器CBに収容されている対象物体群の高さが低くなるほど、撮像装置21の高さが低くなるように、撮像装置21の高さを制御してもよい。その結果、撮像装置21は、容器CBに収容されている対象物体群の高さが低くなったとしても、容器CBに収容されている対象物体群にピントを適切に合わせることができる。このため、撮像装置21は、容器CBに収容されている対象物体群の高さが低くなったとしても、容器CBに収容されている対象物体群を適切に撮像することができる。尚、この場合、一の期間中にエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する高さは、一の期間よりも前の他の期間中にエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する高さよりも低くてもよい。つまり、容器CBに収容されている対象物体群の高さが第1の高さとなる一の期間中にエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する高さは、容器CBに収容されている対象物体群の高さが第1の高さよりも高い第2の高さとなる他の期間中にエンドエフェクタ4が保持している少なくとも一つの対象物体OBJを撮像装置21が撮像する高さよりも低くてもよい。
(2-2-2)少なくとも非処理実行物体を容器に落下させる処理
再び図5において、ステップS22における判定の結果、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していないと判定された場合には(ステップS22:No)、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行わなくてもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。例えば、上述したように、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBから搬出され、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBの外でリリースされてもよい。
再び図5において、ステップS22における判定の結果、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していないと判定された場合には(ステップS22:No)、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行わなくてもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。例えば、上述したように、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBから搬出され、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBの外でリリースされてもよい。
他方で、ステップS22における判定の結果、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していると判定された場合には(ステップS22:No)、エンドエフェクタ4は、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの双方を含む保持対象物体群OBG_hを保持していると想定される。尚、この場合には、上述したステップS21において、撮像装置21は、エンドエフェクタ4が保持している保持対象物体群OBG_hを撮像しているとみなしてもよい。この場合、制御装置3は、少なくともエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行う(ステップS23からステップS24)。
このように、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持している場合に少なくともエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させる処理が行われる一方で、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していない場合に少なくともエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させる処理が行われなくてもよいがゆえに、制御装置3は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かの判定結果に応じて、ロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変えているとみなしてもよい。エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かの判定するためにエンドエフェクタ4が実際に保持している対象物体OBJの数が用いられるがゆえに、制御装置3は、エンドエフェクタ4が実際に保持している対象物体OBJの数に応じてロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変えているとみなしてもよい。
(2-2-2-1)保持状態を特定する処理
エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行うために、誤保持検出部313は、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている対象物体OBJ(例えば、保持対象物体群OBG_h、非処理実行物体OBJ_ntgt、又は処理実行物体OBJ_tgt)の保持状態を特定してもよい(ステップS23)。
エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させる処理を行うために、誤保持検出部313は、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている対象物体OBJ(例えば、保持対象物体群OBG_h、非処理実行物体OBJ_ntgt、又は処理実行物体OBJ_tgt)の保持状態を特定してもよい(ステップS23)。
保持状態は、エンドエフェクタ4が保持している保持対象物体群OBG_hの位置及び姿勢の少なくとも一つを含んでいてもよい。具体的には、エンドエフェクタ4が処理実行物体OBJ_tgtを保持しているがゆえに、保持状態は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの位置及び姿勢の少なくとも一つを含んでいてもよい。つまり、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つは、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの位置及び姿勢の少なくとも一つを含んでいてもよい。また、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているがゆえに、保持状態は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの位置及び姿勢の少なくとも一つに加えて又は代えて、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを含んでいてもよい。つまり、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つは、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを含んでいてもよい。
保持対象物体群OBG_hの位置及び姿勢の少なくとも一つを算出するために、誤保持検出部313は、位置姿勢算出部311を制御して、ステップS21において取得された画像データIMGを用いたマッチング処理を行ってもよい。尚、ステップS23において行われるマッチング処理そのものは、ステップS12において行われるマッチング処理と同一であってもよい。このため、ステップS23において行われるマッチング処理の詳細な説明は省略する。
尚、ステップS22においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定するためにマッチング処理が行われてもよいことは、上述したとおりである。この場合、ステップS22において、誤保持検出部313は、位置姿勢算出部311を制御して、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよいことは、上述したとおりである。この場合、ステップS23において、誤保持検出部313は、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つを改めて算出しなくてもよい。ステップS23において、誤保持検出部313は、ステップS22において算出された、エンドエフェクタ4が保持している少なくとも一つの対象物体OBJの位置及び姿勢の少なくとも一つを、保持状態として流用してもよい。
保持状態は、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を含んでいてもよい。具体的には、保持状態は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している状態と、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している状態とを含んでいてもよい。つまり、保持状態は、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様が、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している第1の保持態様と、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している第2の保持態様とのいずれであるかの判別結果を含んでいてもよい。
エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を特定するために、誤保持検出部313は、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つの算出結果に基づいて、保持対象物体群OBG_hに含まれる複数の対象物体OBJの間の位置関係を算出してもよい。その後、誤保持検出部313は、保持対象物体群OBG_hに含まれる複数の対象物体OBJの間の位置関係に基づいて、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を特定してもよい。
エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を特定するために、誤保持検出部313は、位置姿勢算出部311を制御して、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つに加えて、エンドエフェクタ4の位置及び姿勢の少なくとも一つを算出してもよい。この場合、誤保持検出部313は、ステップS21において取得された画像データIMGと、エンドエフェクタ4の少なくとも一部の形状(二次元形状及び/又は三次元形状)を示すテンプレートモデルとを用いたマッチング処理を行うことで、エンドエフェクタ4の位置及び姿勢の少なくとも一つを算出してもよい。尚、エンドエフェクタ4の形状を示すテンプレートモデルを用いたマッチング処理そのものは、上述した対象物体OBJの形状を示すテンプレートモデルを用いたマッチング処理と同一であってもよい。尚、テンプレートモデルは、エンドエフェクタ4の少なくとも一部の形状を示すモデルに限らず、エンドエフェクタ4の少なくとも一部のエッジを示すモデルであってもよい。また、テンプレートモデルは、予め、エンドエフェクタ4のCADモデルから生成されてもよいし、基準となるエンドエフェクタ4を撮像装置21又は他の撮像装置で撮像することによって得られた画像データから生成されてもよい。算出されるエンドエフェクタ4の位置及び姿勢の少なくとも一つは、エンドエフェクタ4の先端部分(特に対象物体OBJを保持する部分)の位置及び姿勢の少なくとも一つであってもよいし、エンドエフェクタ4の基準点(例えば、ツールセンターポイント)の位置及び姿勢の少なくとも一つであってもよい。或いは、誤保持検出部313は、ロボット1から(ロボット制御装置13から)、エンドエフェクタ4の位置及び姿勢の少なくとも一つに関する情報を取得してもよい。例えば、誤保持検出部313は、エンドエフェクタ4の位置及び姿勢の少なくとも一つを検出するためにロボット1が備えている位置姿勢計測装置(例えば、エンコーダ)の計測結果を、エンドエフェクタ4の位置及び姿勢の少なくとも一つに関する情報として取得してもよい。エンドエフェクタ4の位置及び姿勢の少なくとも一つに関する情報は、エンドエフェクタ4の基準点(例えば、ツールセンターポイント)の位置及び姿勢の少なくとも一つに関する情報を意味していてもよい。その後、誤保持検出部313は、保持対象物体群OBG_hの位置及び姿勢の少なくとも一つの算出結果と、エンドエフェクタ4の位置及び姿勢の少なくとも一つの算出結果とに基づいて、保持対象物体群OBG_hとエンドエフェクタ4との間の位置関係を算出してもよい。その後、誤保持検出部313は、保持対象物体群OBG_hとエンドエフェクタ4との間の位置関係に基づいて、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を特定してもよい。例えば、エンドエフェクタ4から離れた位置に位置する対象物体OBJが存在していない場合(図6(a)参照)には、エンドエフェクタ4が間接的に保持する対象物体OBJが存在する可能性は低い。このため、この場合には、誤保持検出部313は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持していると判定してもよい。例えば、エンドエフェクタ4から離れた位置に位置する対象物体OBJが存在している場合には(図6(b)から図6(d)参照)、エンドエフェクタ4が間接的に保持する対象物体OBJが存在する可能性が高い。このため、この場合には、誤保持検出部313は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持していると判定してもよい。例えば、エンドエフェクタ4に接触する対象物体OBJが存在している場合には(図6(a)参照)、エンドエフェクタ4が直接的に保持する対象物体OBJが存在する可能性が高い。このため、この場合には、誤保持検出部313は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持していると判定してもよい。
保持状態は、上述したステップS22においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定するために用いられた、「エンドエフェクタ4が実際に保持している対象物体OBJの数」を含んでいてもよい。この場合、ステップS22において算出された「エンドエフェクタ4が実際に保持している対象物体OBJの数」が、保持状態の少なくとも一部として流用されてもよい。
(2-2-2-2)少なくとも非処理実行物体を容器に落下させるためのロボット制御信号の生成
その後、信号生成部312は、ステップS23において特定された保持状態に基づいて、少なくともエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する(ステップS24)。
その後、信号生成部312は、ステップS23において特定された保持状態に基づいて、少なくともエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する(ステップS24)。
例えば、保持状態が保持対象物体群OBG_hの位置及び姿勢の少なくとも一つの算出結果を含んでいる場合には、信号生成部312は、保持対象物体群OBG_hに含まれる非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの算出結果に基づいて、算出された位置に存在する及び/又は算出された姿勢で存在する非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、算出された位置に存在する及び/又は算出された姿勢で存在する非処理実行物体OBJ_ntgtが容器CBに向かって落下するようにロボットアーム12を動かすためのロボット制御信号を生成してもよい。例えば、信号生成部312は、算出された位置に存在する及び/又は算出された姿勢で存在する非処理実行物体OBJ_ntgtを容器CBの所定位置に配置するために非処理実行物体OBJ_ntgtを移動させるようにロボットアーム12を動かすためのロボット制御信号を生成してもよい。
例えば、保持状態が保持対象物体群OBG_hの位置及び姿勢の少なくとも一つの算出結果を含んでいる場合には、信号生成部312は、保持対象物体群OBG_hに含まれる処理実行物体OBJ_tgtの位置及び姿勢の少なくとも一つの算出結果に基づいて、算出された位置に存在する及び/又は算出された姿勢で存在する処理実行物体OBJ_tgtと共にエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、算出された位置に存在する及び/又は算出された姿勢で存在する処理実行物体OBJ_tgtが保持している非処理実行物体OBJ_ntgtが容器CBに向かって落下するようにロボットアーム12を動かすためのロボット制御信号を生成してもよい。例えば、信号生成部312は、算出された位置に存在する及び/又は算出された姿勢で存在する処理実行物体OBJ_tgtが保持している非処理実行物体OBJ_ntgtを容器CBの所定位置に配置するために非処理実行物体OBJ_ntgtを移動させるようにロボットアーム12を動かすためのロボット制御信号を生成してもよい。
例えば、保持状態が、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を含んでいる場合には、信号生成部312は、エンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様に応じて、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変えてもよい。つまり、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合に非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様と、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合に非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様とが異なるものとなるように、ロボット制御信号を生成してもよい。言い換えれば、信号生成部312は、エンドエフェクタ4が直接的に保持している非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様と、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様とが異なるものとなるように、ロボット制御信号を生成してもよい。
例えば、保持状態が、エンドエフェクタ4が実際に保持している対象物体OBJの数を含んでいる場合には、信号生成部312は、信号生成部312は、エンドエフェクタ4が実際に保持している対象物体OBJの数に基づいて、容器CBに落下させるべき非処理実行物体OBJ_ntgtの数を算出してもよい。例えば、信号生成部312は、エンドエフェクタ4が実際に保持している対象物体OBJの数から、エンドエフェクタ4が本来保持するべき処理実行物体OBJ_tgtを差し引くことで得られる数を、容器CBに落下させるべき非処理実行物体OBJ_ntgtの数を算出してもよい。その後、信号生成部312は、算出した数と同じ数の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。。
(2-2-2-3)エンドエフェクタ4が直接的に保持している非処理実行物体を容器に落下させるためのロボット制御信号の生成
エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合には、図8に示すように、信号生成部312は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtと、エンドエフェクタ4が保持している処理実行物体OBJ_tgtとの双方を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合には、図8に示すように、信号生成部312は、エンドエフェクタ4が保持している保持対象物体群OBG_hを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合には、図8に示すように、信号生成部312は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtと、エンドエフェクタ4が保持している処理実行物体OBJ_tgtとの双方を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合には、図8に示すように、信号生成部312は、エンドエフェクタ4が保持している保持対象物体群OBG_hを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
信号生成部312は、エンドエフェクタ4が保持対象物体群OBG_hを保持するための保持力を弱めることでエンドエフェクタ4が保持対象物体群OBG_hを離す(その結果、保持対象物体群OBG_hが落下する)ように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がハンドグリッパーである場合には、信号生成部312は、ハンドグリッパー(例えば、ハンドグリッパーの指部材又は爪部材)が保持対象物体群OBG_hを挟み込む力を弱める(その結果、ハンドグリッパーと保持対象物体群OBG_hとの間に作用する、保持対象物体群OBG_hを保持するための保持力を弱める)ことでエンドエフェクタ4が保持対象物体群OBG_hを離すように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がバキュームグリッパーである場合には、信号生成部312は、エンドエフェクタ4が発生させている吸引力を弱めることでエンドエフェクタ4が保持対象物体群OBG_hを離すように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がマグネットグリッパーである場合には、信号生成部312は、エンドエフェクタ4が発生させている磁力(又は電磁力)を弱めることでエンドエフェクタ4が保持対象物体群OBG_hを離すように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。
エンドエフェクタ4の保持力を弱めることは、エンドエフェクタ4が保持力を発生させつつもその保持力を弱めることを含んでいてもよい。つまり、エンドエフェクタ4の保持力を弱めることは、エンドエフェクタ4が保持対象物体群OBG_hを保持した時点で保持対象物体群OBG_hに対して作用していた保持力よりも弱い保持力をエンドエフェクタ4から保持対象物体群OBG_hに対して加えることを含んでいてもよい。言い換えれば、エンドエフェクタ4の保持力を弱めることは、エンドエフェクタ4の状態を、エンドエフェクタ4が第1の強さの保持力を保持対象物体群OBG_hに対して加える状態から、エンドエフェクタ4が第1の強さよりも弱い第2の強さの保持力を保持対象物体群OBG_hに対して加える状態へと切り替えることを含んでいてもよい。
エンドエフェクタ4の保持力を弱めることは、エンドエフェクタ4の保持力をゼロにすることを含んでいてもよい。つまり、エンドエフェクタ4の保持力を弱めることは、エンドエフェクタ4の状態を、エンドエフェクタ4が保持力を保持対象物体群OBG_hに対して加える状態から、エンドエフェクタ4が保持力を保持対象物体群OBG_hに対して加えない状態へと切り替えることを含んでいてもよい。
信号生成部312は、エンドエフェクタ4を移動させることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4を所定の並進軸(例えば、X軸、Y軸及びZ軸の少なくとも一つ)に沿って並進移動させることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4を所定の回転軸(例えば、X軸に沿った回転軸、Y軸に沿った回転軸及びZ軸に沿った回転軸の少なくとも一つ)周りに回転移動させることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
第1の例として、信号生成部312は、エンドエフェクタ4が振動することで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第2の例として、信号生成部312は、エンドエフェクタ4が揺れることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第3の例として、信号生成部312は、保持対象物体群OBG_hが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、保持対象物体群OBG_hと他の物体との摩擦力に起因して保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、信号生成部312は、エンドエフェクタ4が保持対象物体群OBG_hを保持するための保持力を弱めると共に、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、エンドエフェクタ4が保持対象物体群OBG_hを保持するための保持力を弱めることなく、エンドエフェクタ4を移動させることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4が保持対象物体群OBG_hを保持するための保持力を維持したまま、エンドエフェクタ4を移動させることで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
但し、エンドエフェクタ4が非処理実行物体OBJ_ntgtを直接的に保持している場合において、図9に示すように、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtのいずれか一方を保持したまま、エンドエフェクタ4が保持している処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtのいずれか他方を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtのいずれか一方を保持した状態で、エンドエフェクタ4が保持している処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtのいずれか他方を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。一例として、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、非処理実行物体OBJ_ntgtが容器CBに落下した後に、エンドエフェクタ4は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。他の一例として、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持した状態で、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、処理実行物体OBJ_tgtが容器CBに落下した後に、エンドエフェクタ4は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtをリリースするリリース処理を行ってもよい(ステップS33)。つまり、処理実行物体OBJ_tgtが容器CBに落下した後にエンドエフェクタ4が依然として保持している非処理実行物体OBJ_ntgtが、新たな処理実行物体OBJ_tgtとしてリリースされてもよい。
尚、以下の説明では、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する例について説明する。
信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を弱めることでエンドエフェクタ4が非処理実行物体OBJ_ntgtを離す(その結果、非処理実行物体OBJ_ntgtが落下する)ように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。尚、エンドエフェクタ4の保持力を弱めることについては、既に説明済みであるため、その詳細な説明は省略する。
信号生成部312は、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第1の例として、信号生成部312は、エンドエフェクタ4が振動することで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第2の例として、信号生成部312は、エンドエフェクタ4が揺れることで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第3の例として、信号生成部312は、非処理実行物体OBJ_ntgtが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、非処理実行物体OBJ_ntgtと他の物体との摩擦力に起因して非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を弱めると共に、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで保持対象物体群OBG_hがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がマグネットグリッパーである場合には、エンドエフェクタ4が本来保持するべきでなかった非処理実行物体OBJ_ntgtを保持するために非処理実行物体OBJ_ntgtに作用する保持力(例えば、磁力)は、エンドエフェクタ4が本来保持するべきであった処理実行物体OBJ_tgtを保持するために処理実行物体OBJ_tgtに作用する保持力(例えば、磁力)よりも弱い可能性がある。なぜならば、エンドエフェクタ4とエンドエフェクタ4が本来保持するべきでなかった非処理実行物体OBJ_ntgtとの間の相対的な位置関係及び姿勢関係の少なくとも一つは、エンドエフェクタ4が対象物体OBJを適切に保持するための理想的な位置関係及び姿勢関係の少なくとも一つと大きく異なる一方で、エンドエフェクタ4とエンドエフェクタ4が本来保持するべきであった処理実行物体OBJ_tgtとの間の相対的な位置関係及び姿勢関係の少なくとも一つは、エンドエフェクタ4が対象物体OBJを適切に保持するための理想的な位置関係及び姿勢関係の少なくとも一つと同じになる可能性があるからである。このため、エンドエフェクタ4の保持力が弱まると、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなる。
或いは、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を弱めることなく、エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を維持したまま、エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、図8から図9は、エンドエフェクタ4が単一の非処理実行物体OBJ_ntgtを直接的に保持している例を示している。しかしながら、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを直接的に保持する可能性があることは、上述したとおりである。この場合、信号生成部312は、複数の非処理実行物体OBJ_ntgtの全てを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、複数の非処理実行物体OBJ_ntgtの一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtの一部を保持したまま、エンドエフェクタ4が保持している複数の非処理実行物体OBJ_ntgtの他の一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
また、図8から図9は、エンドエフェクタ4が単一の処理実行物体OBJ_tgtを直接的に保持している例を示している。しかしながら、エンドエフェクタ4が複数の処理実行物体OBJ_tgtを直接的に保持する可能性があることは、上述したとおりである。この場合、信号生成部312は、複数の処理実行物体OBJ_tgtの全てを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、複数の処理実行物体OBJ_tgtの一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4が複数の処理実行物体OBJ_tgtの一部を保持したまま、エンドエフェクタ4が保持している複数の処理実行物体OBJ_tgtの他の一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
(2-2-2-4)エンドエフェクタ4が間接的に保持している非処理実行物体を容器に落下させるためのロボット制御信号の生成
エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。言い換えれば、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを容器CBに落下させることなく、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtのみを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。更に言い換えれば、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtのみを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。言い換えれば、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを容器CBに落下させることなく、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtのみを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。更に言い換えれば、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図10に示すように、信号生成部312は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtのみを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、非処理実行物体OBJ_ntgtは、処理実行物体OBJ_tgtによって保持されているとみなしてもよいことは、上述したとおりである。この場合、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、非処理実行物体OBJ_ntgtを処理実行物体OBJ_tgtから容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、非処理実行物体OBJ_ntgtを処理実行物体OBJ_tgtから容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、エンドエフェクタ4の保持力を弱めることで非処理実行物体OBJ_ntgtが落下するように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。尚、エンドエフェクタ4の保持力を弱めることについては、既に説明済みであるため、その詳細な説明は省略する。
信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した状態で、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第1の例として、信号生成部312は、エンドエフェクタ4が振動することで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第2の例として、信号生成部312は、エンドエフェクタ4が揺れることで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第3の例として、信号生成部312は、非処理実行物体OBJ_ntgtが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、非処理実行物体OBJ_ntgtと他の物体との摩擦力に起因して非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、信号生成部312は、エンドエフェクタ4の保持力を弱めると共に、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がマグネットグリッパーである場合には、エンドエフェクタ4が非処理実行物体OBJ_tgtを間接的に保持するための保持力(例えば、磁力)は、エンドエフェクタ4が処理実行物体OBJ_tgtを直接的に保持するための保持力(例えば、磁力)よりも弱い可能性が高い。なぜならば、エンドエフェクタ4と処理実行物体OBJ_tgtとが直接的に接触している一方で、エンドエフェクタ4と非処理実行物体OBJ_ntgtとが直接的に接触していないからである。このため、エンドエフェクタ4の保持力が弱まると、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなる。
或いは、信号生成部312は、エンドエフェクタ4の保持力を弱めることなく、エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4の保持力を維持したまま、エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtを容器CBに落下させる場合には、図11に示すように、信号生成部312は、エンドエフェクタ4を回転移動させることで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4の姿勢を変化させることで非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。この場合、エンドエフェクタ4の姿勢が変化しない場合と比較して、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとが接触する接触面CTPが、水平面に対して傾斜する可能性が高くなる。特に、エンドエフェクタ4の姿勢が変化しない場合と比較して、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとが接触する接触面CTPが水平面に対して交差する角度(つまり、傾斜角度)が大きくなる可能性が高くなる。この場合、エンドエフェクタ4の姿勢が変化しない場合と比較して、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力が弱くなる可能性が高くなる。或いは、エンドエフェクタ4の姿勢が変化しない場合と比較して、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力が弱くなることに加えて又は代えて、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力とは逆向きの力(具体的には、重力のうち、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力とは逆向きに作用する力成分)が大きくなる可能性が高くなる。その結果、非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下する可能性が高くなる。
エンドエフェクタ4を回転移動させる場合には、図12に示すように、信号生成部312は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの端部MFPと、エンドエフェクタ4の基準点TCPとの位置関係に基づいて、エンドエフェクタ4の回転方向を決定してもよい。処理実行物体OBJ_tgtの端部MFPは、処理実行物体OBJ_tgtの端部のうち、エンドエフェクタ4の基準点TCPから最も離れた位置に位置する端部であってもよい。エンドエフェクタ4の基準点TCPは、エンドエフェクタ4の位置を定義する基準点であってもよい。基準点TCPの一例として、エンドエフェクタ4のツールセンターポイントがあげられる。基準点TCPの他の一例として、ユーザがエンドエフェクタ4に設定した点があげられる。尚、エンドエフェクタ4のツールセンターポイントがユーザによって設定されてもよい。
具体的には、信号生成部312は、処理実行物体OBJ_tgtの端部MFPからエンドエフェクタ4の基準点TCPに向かう回転方向RDを、エンドエフェクタ4の基準点TCPの回転方向として決定してもよい。つまり、信号生成部312は、処理実行物体OBJ_tgtの端部MFPからエンドエフェクタ4の基準点TCPに向かう回転方向RDを、エンドエフェクタ4の回転方向として決定してもよい。この場合、回転方向RDとは異なる回転方向がエンドエフェクタ4の回転方向として決定される場合と比較して、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとが接触する接触面CTPが、水平面に対して傾斜する可能性が高くなる。特に、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとが接触する接触面CTPが水平面に対して交差する角度(つまり、傾斜角度)が大きくなる可能性が高くなる。この場合、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力が弱くなる可能性が高くなる。或いは、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力が弱くなることに加えて又は代えて、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力とは逆向きの力(具体的には、重力のうち、非処理実行物体OBJ_ntgtと処理実行物体OBJ_tgtとの間に作用する摩擦力とは逆向きに作用する力成分)が大きくなる可能性が高くなる。その結果、非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下する可能性が高くなる。
尚、図12に示すように、エンドエフェクタ4が回転移動する(つまり、エンドエフェクタ4の姿勢が変化する)場合には、エンドエフェクタ4の回転移動に伴ってエンドエフェクタ4の高さが変わる。このため、エンドエフェクタ4が回転移動させることは、エンドエフェクタ4の回転移動に伴ってエンドエフェクタ4の高さを変化させることを含んでいてもよい。
エンドエフェクタ4を回転移動させる場合には、信号生成部312は、図12に示すように、エンドエフェクタ4の回転方向(つまり、エンドエフェクタ4の姿勢を変化させる方向)とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。尚、図12に示す例では、エンドエフェクタ4の回転方向は、処理実行物体OBJ_tgtの端部MFPからエンドエフェクタ4の基準点TCPに向かう回転方向RDである。しかしながら、エンドエフェクタ4の回転方向が、処理実行物体OBJ_tgtの端部MFPからエンドエフェクタ4の基準点TCPに向かう回転方向RDとは異なる回転方向である場合においても、信号生成部312は、エンドエフェクタ4の回転方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312が、処理実行物体OBJ_tgtの端部MFPからエンドエフェクタ4の基準点TCPに向かう回転方向RDとは異なる回転方向にエンドエフェクタ4を回転させることによって、その回転方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
例えば、信号生成部312は、図12に示すように、エンドエフェクタ4の回転方向とは逆の方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。図12に示す例では、エンドエフェクタ4の回転方向は、-Y側及び/又は+Z側に向かう回転方向である。この場合、信号生成部312は、+Y側及び/又は-Z側に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
但し、信号生成部312は、エンドエフェクタ4の回転方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成しなくてもよい。この場合であっても、エンドエフェクタ4が回転移動することで、結果として、エンドエフェクタ4の回転方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが、処理実行物体OBJ_tgtから落下してもよい。
エンドエフェクタ4を回転移動させる場合には、信号生成部312は、図12に示すように、エンドエフェクタ4が存在する方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、図12に示すように、エンドエフェクタ4が存在する方向とは逆の方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。図12に示す例では、エンドエフェクタ4は、非処理実行物体OBJ_ntgtに対して-Y側及び/又は+Z側に存在する。この場合、信号生成部312は、+Y側及び/又は-Z側に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
但し、信号生成部312は、エンドエフェクタ4が存在する方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtから落下するように、ロボット1を制御するためのロボット制御信号を生成しなくてもよい。この場合であっても、エンドエフェクタ4が回転移動することで、結果として、エンドエフェクタ4が存在する方向とは異なる方向に向かって移動した非処理実行物体OBJ_ntgtが、処理実行物体OBJ_tgtから落下してもよい。
但し、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合において、図13に示すように、エンドエフェクタ4が間接的に保持している非処理実行物体OBJ_ntgtと、エンドエフェクタ4が直接的に保持している処理実行物体OBJ_tgtとの双方を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、エンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持している場合には、図13に示すように、信号生成部312は、エンドエフェクタ4が保持している保持対象物体群OBG_hを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持するための保持力を弱めることでエンドエフェクタ4が処理実行物体OBJ_tgtを離すように、エンドエフェクタ4を制御するためのロボット制御信号を生成してもよい。その結果、エンドエフェクタ4から処理実行物体OBJ_tgtが落下し、且つ、処理実行物体OBJ_tgtによって保持されている非処理実行物体OBJ_ntgtもまた落下する。尚、エンドエフェクタ4の保持力を弱めることについては、既に説明済みであるため、その詳細な説明は省略する。
信号生成部312は、エンドエフェクタ4を移動させる(例えば、並進移動させる及び/又は回転移動させる)ことで処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。その結果、エンドエフェクタ4からの処理実行物体OBJ_tgtの落下に伴い、処理実行物体OBJ_tgtによって保持されている非処理実行物体OBJ_ntgtもまた落下する。第1の例として、信号生成部312は、エンドエフェクタ4が振動することで処理実行物体OBJ_tgtがエンドエフェクタ4から落下する(その結果、非処理実行物体OBJ_ntgtもまた落下する)をように、ロボット1を制御するためのロボット制御信号を生成してもよい。第2の例として、信号生成部312は、エンドエフェクタ4が揺れることで処理実行物体OBJ_tgtがエンドエフェクタ4から落下する(その結果、非処理実行物体OBJ_ntgtもまた落下する)ように、ロボット1を制御するためのロボット制御信号を生成してもよい。第3の例として、信号生成部312は、処理実行物体OBJ_tgtが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、処理実行物体OBJ_tgtと他の物体との摩擦力に起因して処理実行物体OBJ_tgtがエンドエフェクタ4から落下する(その結果、非処理実行物体OBJ_ntgtもまた落下する)ように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持するための保持力を弱めると共に、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持するための保持力を弱めることなく、エンドエフェクタ4を移動させることで処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持するための保持力を維持したまま、エンドエフェクタ4を移動させることで処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
信号生成部312は、エンドエフェクタ4を移動させる(例えば、並進移動させる及び/又は回転移動させる)ことで、非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第1の例として、信号生成部312は、エンドエフェクタ4が振動することで非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtがこの順にエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第2の例として、信号生成部312は、エンドエフェクタ4が揺れることで非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtがこの順にエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。第3の例として、信号生成部312は、非処理実行物体OBJ_ntgtが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、非処理実行物体OBJ_ntgtと他の物体との摩擦力に起因して非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtが他の物体(例えば、容器CB及び容器CBに収容されている対象物体OBJ)に接触するようにエンドエフェクタ4を移動させることで、処理実行物体OBJ_tgtと他の物体との摩擦力に起因して処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を弱めると共に、エンドエフェクタ4を移動させる(例えば、上述したように、並進移動させる及び/又は回転移動させる)ことで、非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、エンドエフェクタ4がマグネットグリッパーである場合には、エンドエフェクタ4が本来保持するべきでなかった非処理実行物体OBJ_ntgtを保持するために非処理実行物体OBJ_ntgtに作用する保持力(磁力)は、エンドエフェクタ4が本来保持するべきであった処理実行物体OBJ_tgtを保持するために処理実行物体OBJ_tgtに作用する保持力(磁力)よりも弱い可能性がある。なぜならば、エンドエフェクタ4とエンドエフェクタ4が本来保持するべきでなかった非処理実行物体OBJ_ntgtとの間の相対的な位置関係及び姿勢関係の少なくとも一つは、エンドエフェクタ4が対象物体OBJを適切に保持するための理想的な位置関係及び姿勢関係の少なくとも一つと大きく異なる一方で、エンドエフェクタ4とエンドエフェクタ4が本来保持するべきであった処理実行物体OBJ_tgtとの間の相対的な位置関係及び姿勢関係の少なくとも一つは、エンドエフェクタ4が対象物体OBJを適切に保持するための理想的な位置関係及び姿勢関係の少なくとも一つと同じになる可能性があるからである。このため、エンドエフェクタ4の保持力が弱まると、エンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなる。その結果、まずは、非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtがエンドエフェクタ4から落下する可能性が高くなる。
或いは、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を弱めることなく、エンドエフェクタ4を移動させることで非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持するための保持力を維持したまま、エンドエフェクタ4を移動させることで、非処理実行物体OBJ_ntgtがエンドエフェクタ4から落下し、その後、処理実行物体OBJ_tgtがエンドエフェクタ4から落下するように、ロボット1を制御するためのロボット制御信号を生成してもよい。
尚、図10から図12は、エンドエフェクタ4が単一の非処理実行物体OBJ_ntgtを間接的に保持している例を示している。しかしながら、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtを間接的に保持する可能性があることは、上述したとおりである。この場合、信号生成部312は、複数の非処理実行物体OBJ_ntgtの全てを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、複数の非処理実行物体OBJ_ntgtの一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、エンドエフェクタ4が複数の非処理実行物体OBJ_ntgtの一部を保持したまま、エンドエフェクタ4が保持している複数の非処理実行物体OBJ_ntgtの他の一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
複数の非処理実行物体OBJ_ntgtを容器CBに落下させる場合には、信号生成部312は、複数の非処理実行物体OBJ_ntgtをまとめて容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。具体的には、信号生成部312は、上述した単一の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する方法と同様の方法で、複数の非処理実行物体OBJ_ntgtをまとめて容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
或いは、信号生成部312は、複数の非処理実行物体OBJ_ntgtを一つずつ順に容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。具体的には、信号生成部312は、上述した単一の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する方法と同様の方法で、複数の非処理実行物体OBJ_ntgtのうちの一の非処理実行物体OBJ_ntgtを個別に容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。更に、信号生成部312は、上述した単一の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する方法と同様の方法で、複数の非処理実行物体OBJ_ntgtのうちの一の非処理実行物体OBJ_ntgtとは異なる他の非処理実行物体OBJ_ntgtを個別に容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。一例として、上述した図6(d)に示すように、エンドエフェクタ4が、処理実行物体OBJ_tgtを直接的に保持し、処理実行物体OBJ_tgtによって非処理実行物体OBJ_ntgt#1が保持され、非処理実行物体OBJ_ntgt#1によって非処理実行物体OBJ_ntgt#2が保持されている場合には、信号生成部312は、非処理実行物体OBJ_ntgt#1から非処理実行物体OBJ_ntgt#2が落下し、その後、処理実行物体OBJ_tgtから非処理実行物体OBJ_ntgt#1が落下するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、非処理実行物体OBJ_ntgt#1から非処理実行物体OBJ_ntgt#2が落下するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第1のロボット制御信号と、処理実行物体OBJ_tgtから非処理実行物体OBJ_ntgt#1が落下するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第2のロボット制御信号とを生成してもよい。具体的には、信号生成部312は、上述した単一の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する方法と同様の方法で、非処理実行物体OBJ_ntgt#1から非処理実行物体OBJ_ntgt#2を容器CBに個別落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第1のロボット制御信号を生成してもよい。更に、信号生成部312は、上述した単一の非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成する方法と同様の方法で、処理実行物体OBJ_tgtから非処理実行物体OBJ_ntgt#1を容器CBに個別に落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第2のロボット制御信号を、第1のロボット制御信号とは別に生成してもよい。
また、図10から図12は、エンドエフェクタ4が単一の処理実行物体OBJ_tgtを間接的に保持している例を示している。しかしながら、エンドエフェクタ4が複数の処理実行物体OBJ_tgtを直接的に保持する可能性があることは、上述したとおりである。この場合、信号生成部312は、複数の処理実行物体OBJ_tgtの全てを保持したまま、非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、エンドエフェクタ4が複数の処理実行物体OBJ_tgtの一部を保持したまま、エンドエフェクタ4が保持している複数の処理実行物体OBJ_tgtの他の一部を容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。或いは、信号生成部312は、エンドエフェクタ4が保持している複数の処理実行物体OBJ_tgtの全てを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
(2-2-3)非処理実行物体を容器に落下させるためのロボット制御信号に基づく制御
再び図5において、その後、信号生成部312は、通信装置33を用いて、ステップS24において生成されたロボット制御信号をロボット1(特に、ロボット制御装置13)に出力する。その結果、ロボット制御装置13は、ロボット制御信号に基づいて、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御する。つまり、ロボット制御装置13は、ロボット制御信号に基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御する。
再び図5において、その後、信号生成部312は、通信装置33を用いて、ステップS24において生成されたロボット制御信号をロボット1(特に、ロボット制御装置13)に出力する。その結果、ロボット制御装置13は、ロボット制御信号に基づいて、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御する。つまり、ロボット制御装置13は、ロボット制御信号に基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1の動作(例えば、ロボットアーム12の動作)及びエンドエフェクタ4の動作の少なくとも一方を制御する。
ここで、ステップS13においてエンドエフェクタ4が保持対象物体群OBG_hを保持してからステップS21において撮像装置21が保持対象物体群OBG_hを撮像する前に、第1カメラ位置に位置する撮像装置21が、第1カメラ位置よりも高い第2カメラ位置に移動してもよいことは、上述した図7(a)から図7(b)を参照しながら説明したとおりである。その結果、第1ツール位置に位置するエンドエフェクタ4が、第1ツール位置よりも高い第2ツール位置に移動してもよいことは、上述した図7(a)から図7(b)を参照しながら説明したとおりである。この場合、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が開始される前に、信号生成部312は、エンドエフェクタ4が、第2ツール位置から、容器CBに近づく(特に、容器CBに収容されている少なくとも一つの対象物体OBJに近づく)ようにロボット1を制御するためのロボット制御信号を生成してもよい。言い換えれば、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が開始される前に、第2ツール位置に位置するエンドエフェクタ4が、容器CBに近づく(特に、容器CBに収容されている少なくとも一つの対象物体OBJに近づく)ようにロボット1を制御するためのロボット制御信号を生成してもよい。一例として、図7(c)に示すように、信号生成部312は、第2ツール位置よりも低い第3ツール位置にエンドエフェクタ4が移動するようにロボット1を制御するためのロボット制御信号を生成してもよい。つまり、信号生成部312は、第2ツール位置よりも容器CBに近い(特に、容器CBに収容されている少なくとも一つの対象物体OBJに近い)第3ツール位置にエンドエフェクタ4が移動するようにロボット1を制御するためのロボット制御信号を生成してもよい。その後、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が開始されてもよい。この場合、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する落下位置が低くなる。例えば、少なくとも非処理実行物体OBJ_ntgtは、第2ツール位置に対応する落下位置(不図示)よりも低い落下位置(つまり、第2ツール位置よりも低い第3ツール位置に対応する落下位置)から容器CBに落下する。その結果、容器CBに落下する非処理実行物体OBJ_ntgtによる衝撃が小さくなる。このため、落下した非処理実行物体OBJ_ntgtや、非処理実行物体OBJ_ntgtがその上に落下してきた他の対象物体OBJが破損する可能性が低くなる。
尚、エンドエフェクタ4が第2ツール位置から第3ツール位置に移動すると、図7(c)に示すように、エンドエフェクタ4が保持している保持対象物体群OBG_hもまた、第2ツール位置に対応する第2物体位置から、第3ツール位置に対応する第3物体位置(つまり、第2物体位置よりも低いがゆえに、第2物体位置よりも容器CBに近い第3物体位置)に位置する。この場合、少なくとも非処理実行物体OBJ_ntgtは、第2物体位置よりも低い第3物体位置から容器CBに落下するとみなしてもよい。同様に、エンドエフェクタ4が第2ツール位置から第3ツール位置に移動すると、エンドエフェクタ4と共に移動する撮像システム2もまた、第2ツール位置に対応する第2カメラ位置から、第3ツール位置に対応する第3カメラ位置(つまり、第2カメラ位置よりも低いがゆえに、第2カメラ位置よりも容器CBに近い第3カメラ位置)に位置する。この場合、少なくとも非処理実行物体OBJ_ntgtは、第2カメラ位置よりも低い第3カメラ位置から容器CBに落下するとみなしてもよい。
再び図5において、その後、ステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が開始された後に、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定する(ステップS31)。例えば、ステップS24において生成されたロボット制御信号に基づいてロボット1の動作が制御されている期間中に、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定してもよい。例えば、ステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が完了した後に、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定してもよい。
少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定するために、ステップS24において生成されたロボット制御信号に基づいてロボット1の動作の制御が開始された後に、撮像装置21は、エンドエフェクタ4が対象物体OBJを保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を撮像してもよい。例えば、撮像装置21は、エンドエフェクタ4の少なくとも一部(特に、エンドエフェクタ4のうち対象物体OBJを保持する部位)を撮像することで、撮像装置21は、エンドエフェクタ4が対象物体OBJを保持していると仮定した場合のエンドエフェクタ4が保持している対象物体OBJが存在する領域を撮像してもよい。この場合、エンドエフェクタ4から処理実行物体OBJ_tgtが落下した場合には、撮像装置21は、処理実行物体OBJ_tgtが落下したエンドエフェクタ4を撮像してもよい。つまり、撮像装置21は、処理実行物体OBJ_tgtを保持していないエンドエフェクタ4を撮像してもよい。一方で、エンドエフェクタ4から処理実行物体OBJ_tgtが落下していない場合には、撮像装置21は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを撮像してもよい。エンドエフェクタ4から非処理実行物体OBJ_ntgtが落下した場合には、撮像装置21は、非処理実行物体OBJ_ntgtが落下したエンドエフェクタ4を撮像してもよい。つまり、撮像装置21は、非処理実行物体OBJ_ntgtを保持していないエンドエフェクタ4を撮像してもよい。一方で、エンドエフェクタ4から非処理実行物体OBJ_ntgtが落下していない場合には、撮像装置21は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを撮像してもよい。その後、制御装置3の誤保持検出部313は、通信装置33を用いて、撮像装置21がエンドエフェクタ4を撮像することで生成した画像データIMGを取得してもよい。
その後、誤保持検出部313は、画像データIMGに基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定する。
画像データIMGに基づいて少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定する動作の第1の例として、誤保持検出部313は、位置姿勢算出部311を制御して画像データIMGに基づくマッチング処理(例えば、物体検出処理)を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの数を算出してもよい。或いは、誤保持検出部313は、位置姿勢算出部311を制御して画像データIMGに基づくマッチング処理を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。この場合、上述したように、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つが判明すると、必然的に、エンドエフェクタ4が実際に保持している対象物体OBJの数もまた判明する。このため、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つの算出結果に基づいて、エンドエフェクタ4が実際に保持している対象物体OBJの数を算出してもよい。尚、ステップS31において行われるマッチング処理そのものは、ステップS12及びステップS22において行われるマッチング処理と同一であってもよい。その後、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数に基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定してもよい。
例えば、上述したようにエンドエフェクタ4が処理実行物体OBJ_tgtを保持したまま非処理実行物体OBJ_ntgtが容器CBに落下するようにロボット1及びエンドエフェクタ4の少なくとも一つが制御された場合には、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数が、エンドエフェクタ4が本来保持するべき対象物体OBJの数(つまり、エンドエフェクタ4が本来保持するべき処理実行物体OBJ_tgtの数)である所定の保持物体数と同一であるか否かを判定してもよい。尚、ステップS31においてエンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一であるか否かを判定する処理は、ステップS22においてエンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一であるか否かを判定する処理と同一であってもよい。この場合、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一である場合には、エンドエフェクタ4が保持していた非処理実行物体OBJ_ntgtが落下し、エンドエフェクタ4は、処理実行物体OBJ_tgt保持している可能性が高い。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数よりも多い場合には、エンドエフェクタ4が依然として少なくとも一つの非処理実行物体OBJ_ntgtを保持している可能性が高い。そこで、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数と同一である場合には、誤保持検出部313は、非処理実行物体OBJ_ntgtが容器CBに落下したと判定してもよい。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数が所定の保持物体数よりも多い場合には、誤保持検出部313は、少なくとも一つの非処理実行物体OBJ_ntgtが容器CBに落下していない(具体的には、容器CBに落下していない非処理実行物体OBJ_ntgtが残っている)と判定してもよい。
例えば、上述したように処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの双方が容器CBに落下するようにロボット1及びエンドエフェクタ4の少なくとも一つが制御された場合には、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの数が、ゼロであるか否かをしてもよい。この場合、エンドエフェクタ4が実際に保持している対象物体OBJの数がゼロである場合には、エンドエフェクタ4が保持していた処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの双方が落下した可能性が高い。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数がゼロよりも多い場合には、エンドエフェクタ4が依然として処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの少なくとも一つを保持している可能性が高い。そこで、エンドエフェクタ4が実際に保持している対象物体OBJの数がゼロである場合には、誤保持検出部313は、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtが容器CBに落下したと判定してもよい。一方で、エンドエフェクタ4が実際に保持している対象物体OBJの数がゼロよりも多い場合には、誤保持検出部313は、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの少なくとも一つが容器CBに落下していない(具体的には、容器CBに落下していない処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの少なくとも一方が残っている)と判定してもよい。
画像データIMGに基づいて少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定する動作の第2の例として、誤保持検出部313は、位置姿勢算出部311を制御して画像データIMGに基づくマッチング処理を行うことで、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。更に、誤保持検出部313は、位置姿勢算出部311を制御して画像データIMGに基づくマッチング処理を行うことで、エンドエフェクタ4の位置及び姿勢の少なくとも一つを算出してもよい。尚、ステップS31においてエンドエフェクタ4の位置及び姿勢の少なくとも一つを算出するためのマッチング処理そのものは、上述したステップS23においてエンドエフェクタ4による非処理実行物体OBJ_ntgtの保持態様を特定するためのマッチング処理と同一であってもよい。その後、誤保持検出部313は、エンドエフェクタ4が実際に保持している対象物体OBJの位置及び姿勢の少なくとも一つの算出結果と、エンドエフェクタ4の位置及び姿勢の少なくとも一つの算出結果とに基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下した否かを判定してもよい。例えば、ステップS23においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持していると判定された状況下で、ステップS31におけるマッチング処理の結果が、エンドエフェクタ4から離れた位置に位置する対象物体OBJが存在していないことを示している場合(図6(a)参照)には、エンドエフェクタ4が間接的に保持する非処理実行物体OBJ_ntgtが存在する可能性は低い。このため、この場合には、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下したと判定してもよい。例えば、ステップS23においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを間接的に保持していると判定された状況下で、ステップS31におけるマッチング処理の結果が、エンドエフェクタ4から離れた位置に位置する対象物体OBJが存在している場合には(図6(b)から図6(d)参照)、エンドエフェクタ4が間接的に保持する非処理実行物体OBJ_ntgtが存在する可能性が高い。このため、この場合には、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定してもよい。
ステップS31における判定の結果、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には(ステップS31:No)、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることができなかった旨をロボットシステムSYSのユーザ(オペレータ)に通知するためのアラートを出力するように、出力装置35を制御してもよい(ステップS32)。
アラートが出力された後に、制御装置3は、図5に示すロボット制御処理を一時的に中断してもよい。この場合、ユーザは、エンドエフェクタ4から落下しなかった非処理実行物体OBJ_ntgtを手動で容器CBに戻してもよい。その後、一時的に中断されたロボット制御処理が再開されてもよい。例えば、エンドエフェクタ4は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。
但し、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合であっても、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることができなかった旨をロボットシステムSYSのユーザ(オペレータ)に通知するためのアラートを出力しなくてもよい。
他方で、ステップS31における判定の結果、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下したと判定された場合には(ステップS31:Yes)、誤保持検出部313は、アラートを出力するように出力装置35を制御しなくてもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。例えば、上述したように、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBから搬出され、エンドエフェクタ4が保持した処理実行物体OBJ_tgtが容器CBの外でリリースされてもよい。
但し、上述したように処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの双方が容器CBに落下するようにロボット1及びエンドエフェクタ4の少なくとも一つが制御された場合には、エンドエフェクタ4は、一つも対象物体OBJを保持していない。この場合、エンドエフェクタ4がリリース処理を行うことなく、制御装置3は、ステップS11からステップS33までの一連の処理(但し、ステップS32の処理とステップS33との処理は、排他的に行われる)を再度行ってもよい。つまり、撮像装置21は、容器CBに収容されている複数の対象物体OBJのうちの一部を新たに撮像し、制御装置3は、撮像装置21から画像データIMGを新たに取得してもよい。この場合、信号生成部312は、撮像装置21が容器CBに収容されている複数の対象物体OBJのうちの一部を撮像するようにロボット1を制御するためのロボット制御信号を生成してもよい。ロボット1は、信号生成部312が生成したロボット制御信号に基づいて、撮像装置21が容器CBに収容されている複数の対象物体OBJのうちの一部を撮像するようにロボットアーム12を動かしてもよい。或いは、ロボット1は、ティーチング等の他のロボット制御方法に基づいて、撮像装置21が容器CBに収容されている複数の対象物体OBJのうちの一部を撮像するようにロボットアーム12を動かしてもよい。その後、制御装置3は、ステップS11において新たに取得された画像データIMGを用いて、ステップS12からステップS33までの一連の処理(但し、ステップS32の処理とステップS33との処理は、排他的に行われる)を再度行ってもよい。
但し、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの双方が容器CBに落下するようにロボット1及びエンドエフェクタ4の少なくとも一つが制御された場合において、撮像装置21は、容器CBに収容されている複数の対象物体OBJのうちの一部を再度撮像しなくてもよい。例えば、上述したステップS12において、既に取得済みの画像データIMGに基づいてマッチング類似度がマッチング判定閾値を上回る対象物体OBJが複数検出済みである場合には、位置姿勢算出部311は、マッチング類似度がマッチング判定閾値を上回る複数の対象物体OBJのうちの、処理実行物体OBJ_tgtとしてまだ選択されてない一の対象物体OBJを新たな処理実行物体OBJ_tgtとして選択してもよい。その後、信号生成部312は、新たに選択された処理実行物体OBJ_tgtに対して所定の処理を行うことができるように、ロボット制御信号を生成してもよい(ステップS13)。その後、制御装置3は、ステップS21からステップS33までの一連の処理(但し、ステップS32の処理とステップS33との処理は、排他的に行われる)を再度行ってもよい。
以降、アラートが出力された後(ステップS32)又は処理実行物体OBJ_tgtがリリースされた後(ステップS33)、制御装置3は、エンドエフェクタ4が所定の処理を行うべき対象物体OBJが容器CBからなくなるまで、ステップS11からステップS33までの一連の処理(但し、ステップS32の処理とステップS33との処理は、排他的に行われる)を繰り返す(ステップS41)。但し、上述したステップS12において、既に取得済みの画像データIMGに基づいてマッチング類似度がマッチング判定閾値を上回る対象物体OBJが複数検出済みである場合には、制御装置3は、ステップS11において、画像データIMGを再度取得しなくてもよい。撮像装置21は、ステップS11において、容器CBに収容されている複数の対象物体OBJのうちの一部を再度撮像しなくてもよい。この場合、位置姿勢算出部311は、マッチング類似度がマッチング判定閾値を上回る複数の対象物体OBJのうちの、処理実行物体OBJ_tgtとしてまだ選択されてない一の対象物体OBJを新たな処理実行物体OBJ_tgtとして選択してもよい。その後、信号生成部312は、新たに選択された処理実行物体OBJ_tgtに対して所定の処理を行うことができるように、ロボット制御信号を生成してもよい(ステップS13)。その後、制御装置3は、ステップS21からステップS33までの一連の処理(但し、ステップS32の処理とステップS33との処理は、排他的に行われる)を再度行ってもよい。
(3)技術的効果
以上説明したように、本実施形態では、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持した場合には、制御装置3は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する(つまり、戻る)ように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御することができる。このため、制御装置3は、エンドエフェクタ4の状態を、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持してしまっている非正常状態から、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持することなく処理実行物体OBJ_tgtを保持している正常状態に切り替えることができる。このため、制御装置3は、エンドエフェクタ4が処理実行物体OBJ_tgtを適切に保持するように、ロボット1を制御することができる。
以上説明したように、本実施形態では、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持した場合には、制御装置3は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する(つまり、戻る)ように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御することができる。このため、制御装置3は、エンドエフェクタ4の状態を、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持してしまっている非正常状態から、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持することなく処理実行物体OBJ_tgtを保持している正常状態に切り替えることができる。このため、制御装置3は、エンドエフェクタ4が処理実行物体OBJ_tgtを適切に保持するように、ロボット1を制御することができる。
加えて、仮にエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持している場合には、エンドエフェクタ4が保持した処理実行物体OBJ_tgtを容器CBの外の所望位置にリリースするリリース処理を行う際に、エンドエフェクタ4が処理実行物体OBJ_tgtと共に保持した非処理実行物体OBJ_ntgtがリリース処理にとっての障害となる可能性がある。一例として、処理実行物体OBJ_tgtが容器CBの外の所望位置にリリースされる際に、処理実行物体OBJ_tgtが非処理実行物体OBJ_ntgtに干渉して、処理実行物体OBJ_tgtが所望の位置とは異なる位置にリリースされる可能性がある。他の一例として、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)に非処理実行物体OBJ_ntgtが衝突し、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)が傷つく可能性がある。しかるに、本実施形態では、非処理実行物体OBJ_ntgtが容器CBに落下する(つまり、戻る)がゆえに、このような技術的問題が生ずることはない。このため、エンドエフェクタ4は、保持した処理実行物体OBJ_tgtを、容器CBの外の所望位置に適切に配置することができる。
加えて、仮にエンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを落下させるための動作が行われない場合には、図5に示すロボット制御処理が一時的に中断され、その後、ユーザが、エンドエフェクタ4から落下しなかった非処理実行物体OBJ_ntgtを手動で容器CBに戻し、その後、一時的に中断されたロボット制御処理を再開する必要がある。このため、ロボット制御処理のスループットが悪化する可能性がある。言い換えれば、ロボット制御処理のタクトタイムが長くなる可能性がある。しかるに、本実施形態では、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを落下させるための動作が行われるがゆえに、スループットの悪化(つまり、タクトタイムの増加)が最小限に抑制される。
加えて、制御装置3は、保持状態の一例としてエンドエフェクタ4で保持された対象物体OBJ(例えば、保持対象物体群OBG_h、非処理実行物体OBJ_ntgt、又は処理実行物体OBJ_tgt)の位置及び姿勢の少なくとも一つの算出結果に基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する(つまり、戻る)ように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御することができる。例えば、制御装置3は、位置が既知である及び/又は姿勢が既知である非処理実行物体OBJ_ntgtを容器CBに落下させるように、非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの算出結果を考慮した制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成することができる。制御装置3は、位置が既知である及び/又は姿勢が既知である処理実行物体OBJ_tgtから非処理実行物体OBJ_ntgtが容器CBに適切に(例えば、確実に)落下するように、処理実行物体OBJ_tgtの位置及び姿勢の少なくとも一つの算出結果を考慮した制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成することができる。仮に、エンドエフェクタ4で保持された対象物体OBJ(例えば、保持対象物体群OBG_h、非処理実行物体OBJ_ntgt、又は処理実行物体OBJ_tgt)の位置及び姿勢が既知でない場合には、エンドエフェクタ4で保持された対象物体OBJの位置及び姿勢の少なくとも一つの算出結果を考慮した制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することができないがゆえに、少なくとも非処理実行物体OBJ_ntgtを落下させるための制御態様が、ある意味の運任せの制御態様になる可能性がある。しかるに、本実施形態では、制御装置3は、エンドエフェクタ4で保持された対象物体OBJ(例えば、保持対象物体群OBG_h、非処理実行物体OBJ_ntgt、又は処理実行物体OBJ_tgt)の位置及び姿勢の少なくとも一つの算出結果に基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに適切に(例えば、確実に)落下する可能性を高める制御態様を、ロボット1及びエンドエフェクタ4の少なくとも一つの制御態様として採用することができる。このため、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを適切に容器CBに落下させることができる。
(4)変形例
続いて、ロボットシステムSYSの変形例について説明する。尚、以下に説明する各変形例は、他の変形例と組み合わせ可能である。または、以下の説明では、既に説明済みの構成要素については、その詳細な説明は省略する。更に、以下の説明では、既に説明済みの処理については、その詳細な説明は省略する。つまり、以下の説明では、既に説明済みの構成要素とは異なる構成要素及び既に説明済みの処理とは異なる処理について、特に説明する。このため、特段の説明がない場合には、以下に説明する変形例においても、ロボットシステムSYSは、既に説明済みの構成要素を備えていてもよいし、ロボットシステムSYSは、既に説明済みの処理を行ってもよい。
続いて、ロボットシステムSYSの変形例について説明する。尚、以下に説明する各変形例は、他の変形例と組み合わせ可能である。または、以下の説明では、既に説明済みの構成要素については、その詳細な説明は省略する。更に、以下の説明では、既に説明済みの処理については、その詳細な説明は省略する。つまり、以下の説明では、既に説明済みの構成要素とは異なる構成要素及び既に説明済みの処理とは異なる処理について、特に説明する。このため、特段の説明がない場合には、以下に説明する変形例においても、ロボットシステムSYSは、既に説明済みの構成要素を備えていてもよいし、ロボットシステムSYSは、既に説明済みの処理を行ってもよい。
(4-1)第1変形例
(4-1-1)落下高さHdの制御
第1変形例では、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを落下させるようにロボット制御信号を生成する際に、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための高さ(つまり、Z軸方向の位置)を示す落下高さHdを制御してもよい。
(4-1-1)落下高さHdの制御
第1変形例では、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを落下させるようにロボット制御信号を生成する際に、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための高さ(つまり、Z軸方向の位置)を示す落下高さHdを制御してもよい。
(4-1-1-1)落下高さHdの定義
落下高さHdは、所定の高さ基準面からの高さ(つまり、Z軸方向における距離)を意味していてもよい。第1変形例では、高さ基準面として、容器CBの底壁BSの底面(上面)が用いられる例について説明する。
落下高さHdは、所定の高さ基準面からの高さ(つまり、Z軸方向における距離)を意味していてもよい。第1変形例では、高さ基準面として、容器CBの底壁BSの底面(上面)が用いられる例について説明する。
但し、高さ基準面として、容器CBの底壁BSの底面とは異なる基準面が用いられてもよい。例えば、高さ基準面として、対象物体OBJが載置されている載置装置Tの載置面が用いられてもよい。或いは、落下高さHdは、グローバル座標系におけるZ軸の座標値を意味していてもよい。つまり、落下高さHdは、グローバル座標系の座標原点からの高さを意味していてもよい。尚、落下高さHdは、グローバル座標系とは異なる座標系(例えば、ロボット座標系)におけるZ軸の座標値を意味していてもよい。つまり、落下高さHdは、グローバル座標系とは異なる座標系(例えば、ロボット座標系)の座標原点からの高さを意味していてもよい。
第1の例として、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時点(言い換えれば、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する時点、以下同じ)での非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtのいずれか一方の高さを意味していてもよい。尚、上述したように非処理実行物体OBJ_ntgtが容器CBに落下する一方で処理実行物体OBJ_tgtが容器CBに落下しない(つまり、処理実行物体OBJ_tgtがエンドエフェクタ4に保持され続ける)場合には、「少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時点」は、「非処理実行物体OBJ_ntgtが容器CBに落下を開始する時点」を意味していてもよい。上述したように非処理実行物体OBJ_ntgtに加えて処理実行物体OBJ_tgtが容器CBに落下する場合には、「少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時点」は、「非処理実行物体OBJ_ntgtのみが容器CBに落下を開始する時点」を意味していてもよいし、「非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの双方が容器CBに落下を開始する時点」を意味していてもよい。
第2の例として、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの高さであってもよい。より具体的には、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの高さに基づいて定まる高さであってもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgtの高さ及び少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の処理実行物体OBJ_tgtの高さの平均値(つまり、中間高さ)を意味していてもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgtの高さ及び少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の処理実行物体OBJ_tgtの高さのうちのいずれか高い方の高さを意味していてもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgtの高さ及び少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の処理実行物体OBJ_tgtの高さのうちのいずれか低い方の高さを意味していてもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgtの高さ及び少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の処理実行物体OBJ_tgtの高さの間の任意の高さを意味していてもよい。
第3の例として、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgt以外の物体の高さを意味していてもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時の撮像システム2(特に、撮像装置21)の高さを意味していてもよい。例えば、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時のエンドエフェクタ4の高さを意味していてもよい。エンドエフェクタ4の高さは、エンドエフェクタ4の基準点TCP(例えば、上述したツールセンターポイント又はユーザがエンドエフェクタ4に設定した点)の高さを意味していてもよいし、エンドエフェクタ4の任意の部位の高さを意味していてもよい。
第4の例として、落下高さHdは、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始する時のロボットアーム12の高さを意味していてもよい。この場合、ロボットアーム12の高さは、ロボットアーム12のフランジ(エンドエフェクタ4がロットアーム12に取り付けられる部位)の高さであってもよい。
(4-1-1-2)容器CBに収容されている対象物体群の高さに基づく落下高さHdの制御
誤保持検出部313は、落下高さHdを制御するために、図14に示すように、容器CBに収容されている複数の対象物体OBJの高さである物体高さHoを用いてもよい。つまり、誤保持検出部313は、物体高さHoに基づいて落下高さHdを設定し(言い換えれば、決定し)することで、落下高さHdを制御してもよい。
誤保持検出部313は、落下高さHdを制御するために、図14に示すように、容器CBに収容されている複数の対象物体OBJの高さである物体高さHoを用いてもよい。つまり、誤保持検出部313は、物体高さHoに基づいて落下高さHdを設定し(言い換えれば、決定し)することで、落下高さHdを制御してもよい。
尚、物体高さHoは、上述した落下高さHdと同様に、所定の高さ基準面からの高さ(つまり、Z軸方向における距離)を意味していてもよい。或いは、物体高さHoは、グローバル座標系におけるZ軸の座標値を意味していてもよい。つまり、物体高さHoは、グローバル座標系の座標原点からの高さを意味していてもよい。尚、物体高さHoは、グローバル座標系とは異なる座標系(例えば、ロボット座標系)におけるZ軸の座標値を意味していてもよい。つまり、物体高さHoは、グローバル座標系とは異なる座標系(例えば、ロボット座標系)の座標原点からの高さを意味していてもよい。
物体高さHoは、容器CBに収容されている複数の対象物体OBJの全てを含む対象物体群OBG_cbの高さを意味していてもよい。或いは、物体高さHoは、容器CBに収容されている複数の対象物体OBJのうちの一部を含む対象物体群OBG_cbの高さを意味していてもよい。つまり、物体高さHoは、容器CBに収容されている複数の対象物体OBJの少なくとも一部を含む対象物体群OBG_cbの高さを意味していてもよい。
物体高さHoとして、対象物体群OBG_cbの中で最も高い部位の高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの最も高い位置に位置する一の対象物体OBJの高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの最も高い位置に位置する一の対象物体OBJの最も高い部位の高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの最も高い位置に位置する一の対象物体OBJの任意の部位の高さが用いられてもよい。
物体高さHoとして、対象物体群OBG_cbのうちの一部分の中で最も高い部位の高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの所望の選択基準で選択される少なくとも一つの対象物体OBJの高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの所望の選択基準で選択される少なくとも一つの対象物体OBJの最も高い部位の高さが用いられてもよい。例えば、物体高さHoとして、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの所望の選択基準で選択される少なくとも一つの対象物体OBJの任意の部位の高さが用いられてもよい。
物体高さHoとして、対象物体群OBG_cbの平均高さが用いられてもよい。対象物体群OBG_cbの平均高さは、対象物体群OBG_cbの複数の部位の高さの平均値を意味していてもよい。対象物体群OBG_cbの平均高さは、対象物体群OBG_cbに含まれる複数の対象物体OBJの高さの平均値を意味していてもよい。複数の対象物体OBJが積み重なっている(つまり、ばら積みされている)場合には、対象物体群OBG_cbの平均高さは、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちその上部に他の対象物体OBJが積み重なっていない一部の対象物体OBJ(つまり、最上層に位置する一部の対象物体OBJ)の高さの平均値を意味していてもよい。複数の対象物体OBJが積み重なっている(つまり、ばら積みされている)場合には、対象物体群OBG_cbの平均高さは、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちその上部の少なくとも一部が上方に露出している一部の対象物体OBJ(つまり、最上層に位置する一部の対象物体OBJ)の高さの平均値を意味していてもよい。
物体高さHoとして、対象物体群OBG_cbのうちの一部分の平均高さが用いられてもよい。対象物体群OBG_cbのうちの一部分の平均高さは、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの所望の選択基準で選択される少なくとも一つの対象物体OBJの高さの平均値を意味していてもよい。
誤保持検出部313は、物体高さHoが第1の高さである場合に用いられる落下高さHdが、物体高さHoが第1の高さよりも高い第2の高さである場合に用いられる落下高さHdよりも低くなるように、物体高さHoに基づいて落下高さHdを設定してもよい。言い換えれば、誤保持検出部313は、物体高さHoが第1の高さである場合に用いられる落下高さHdが、物体高さHoが第1の高さよりも低い第3の高さである場合に用いられる落下高さHdよりも高くなるように、物体高さHoに基づいて落下高さHdを決定してもよい。
特に、誤保持検出部313は、物体高さHoが低くなるほど落下高さHdが低くなるように、物体高さHoに基づいて落下高さHdを設定してもよい。言い換えれば、誤保持検出部313は、物体高さHoが高くなるほど落下高さHdが高くなるように、物体高さHoに基づいて落下高さHdを設定してもよい。
物体高さHoに基づいて設定される落下高さHdの一例が、図15(a)から図15(b)に示されている。図15(a)は、エンドエフェクタ4が、処理実行物体OBJ_tgt#1と共に非処理実行物体OBJ_ntgt#1を保持している例を示している。更に、図15(a)は、エンドエフェクタ4が処理実行物体OBJ_tgt#1と共に非処理実行物体OBJ_ntgt#1を保持している時点で、容器CBに対象物体群_cb#1が収容されており、且つ、対象物体群OBG_cb#1の物体高さHoが第1の物体高さHo#1である例を示している。この場合、誤保持検出部313は、対象物体群OBG_cb#1の物体高さHoである第1の物体高さHo#1に基づいて、落下高さHdを第1の落下高さHd#1に設定してもよい。例えば、誤保持検出部313は、落下高さHdを、第1の物体高さHo#1に対して所定の第1マージン高さを加算することで算出される高さである第1の落下高さHd#1に設定してもよい。
尚、第1マージン高さは、予め設定されていてもよいし、落下高さHdを設定する際に設定されてもよい。第1マージン高さは、ユーザによって手動で設定されていてもよいし、制御装置3によって自動的に設定されてもよい。
その後、誤保持検出部313は、第1の落下高さHd#1に基づいて、ロボット制御信号を生成してもよい。
例えば、落下高さHdが非処理実行物体OBJ_ntgtの高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#1が第1の落下高さHd#1に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#1が、第1の落下高さHd#1が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、非処理実行物体OBJ_ntgt#1の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。非処理実行物体OBJ_ntgt#1の現在の高さとして、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#1の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、非処理実行物体OBJ_ntgt#1の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、非処理実行物体OBJ_ntgt#1の現在の高さを算出(推定)してもよい。その結果、ロボット1は、非処理実行物体OBJ_ntgt#1が第1の落下高さHd#1に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、非処理実行物体OBJ_ntgt#1が第1の落下高さHd#1に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、少なくとも非処理実行物体OBJ_ntgt#1は、第1の落下高さHd#1から(言い換えれば、第1の落下高さHd#1が示すZ位置から)落下する。
例えば、落下高さHdが処理実行物体OBJ_tgtの高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、処理実行物体OBJ_tgt#1が第1の落下高さHd#1に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、処理実行物体OBJ_tgt#1が、第1の落下高さHd#1が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、処理実行物体OBJ_tgt#1の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。処理実行物体OBJ_tgt#1の現在の高さとして、図5のステップS23において保持状態を特定するために算出された処理実行物体OBJ_tgt#1の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、処理実行物体OBJ_tgt#1の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、処理実行物体OBJ_tgt#1の現在の高さを算出(推定)してもよい。その結果、ロボット1は、処理実行物体OBJ_tgt#1が第1の落下高さHd#1に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、処理実行物体OBJ_tgt#1が第1の落下高さHd#1に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、処理実行物体OBJ_tgt#1が第1の落下高さHd#1(言い換えれば、第1の落下高さHd#1が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#1が落下する。尚、「処理実行物体OBJ_tgt#1が第1の落下高さHd#1に位置している状況下で非処理実行物体OBJ_ntgt#1が落下する」状態を、「第1の落下高さHd#1から非処理実行物体OBJ_ntgt#1が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdが非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの高さに基づいて定まる高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の高さに基づいて定まる高さが第1の落下高さHd#1と一致するように、ロボット制御信号を生成してもよい。その結果、ロボット1は、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の高さに基づいて定まる高さが第1の落下高さHd#1と一致するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の高さに基づいて定まる高さが第1の落下高さHd#1と一致するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。この場合、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#1の位置(特に、Z位置)及び処理実行物体OBJ_tgt#1の位置(特に、Z位置)を、それぞれ、非処理実行物体OBJ_ntgt#1の現在の高さ及び処理実行物体OBJ_tgt#1の現在の高さとして流用することで、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の現在の高さを算出してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の現在の高さを算出(推定)してもよい。その後、信号生成部312は、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の高さに基づいて定まる高さが第1の落下高さHd#1と一致している状況下で、少なくとも非処理実行物体OBJ_ntgt#1が落下する。尚、「非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の高さに基づいて定まる高さが第1の落下高さHd#1と一致している状況下で非処理実行物体OBJ_ntgt#1が落下する」状態を、「第1の落下高さHd#1から非処理実行物体OBJ_ntgt#1が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdが撮像システム2(特に、撮像装置21)の高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、撮像システム2が第1の落下高さHd#1に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、撮像システム2が、第1の落下高さHd#1が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、撮像システム2の現在の高さを算出してもよい。例えば、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の少なくとも一つの位置(特に、Z位置)から、撮像システム2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、撮像システム2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、撮像システム2の現在の高さを算出(推定)してもよい。その後、信号生成部312は、撮像システム2の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その結果、ロボット1は、撮像システム2が第1の落下高さHd#1に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、撮像システム2が第1の落下高さHd#1に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、撮像システム2が第1の落下高さHd#1(言い換えれば、第1の落下高さHd#1が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#1が落下する。尚、「撮像システム2が第1の落下高さHd#1に位置している状況下で非処理実行物体OBJ_ntgt#1が落下する」状態を、「第1の落下高さHd#1から非処理実行物体OBJ_ntgt#1が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdがエンドエフェクタ4の高さ(例えば、エンドエフェクタ4の基準点TCPの高さ)を意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、エンドエフェクタ4が第1の落下高さHd#1に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、エンドエフェクタ4が、第1の落下高さHd#1が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、エンドエフェクタ4の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。エンドエフェクタ4の現在の高さとして、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の少なくとも一つの位置及び姿勢の少なくとも一つに基づいて、エンドエフェクタ4の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、エンドエフェクタ4の現在の高さを算出(推定)してもよい。その結果、ロボット1は、エンドエフェクタ4が第1の落下高さHd#1に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、エンドエフェクタ4が第1の落下高さHd#1に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、エンドエフェクタ4が第1の落下高さHd#1(言い換えれば、第1の落下高さHd#1が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#1が落下する。尚、「エンドエフェクタ4が第1の落下高さHd#1に位置している状況下で非処理実行物体OBJ_ntgt#1が落下する」状態を、「第1の落下高さHd#1から非処理実行物体OBJ_ntgt#1が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdがロボットアーム12の高さ(例えば、ロボットアーム12のフランジの高さ)を意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、ロボットアーム12が第1の落下高さHd#1に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下を開始する時点で、ロボットアーム12が、第1の落下高さHd#1が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、ロボットアーム12の現在の高さを算出してもよい。例えば、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の少なくとも一つの位置(特に、Z位置)から、ロボットアーム12の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、ロボットアーム12の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、ロボットアーム12の現在の高さを算出(推定)してもよい。その後、信号生成部312は、ロボットアーム12の現在の高さと第1の落下高さHd#1との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その結果、ロボット1は、ロボットアーム12が第1の落下高さHd#1に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、ロボットアーム12が第1の落下高さHd#1に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#1が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、ロボットアーム12が第1の落下高さHd#1(言い換えれば、第1の落下高さHd#1が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#1が落下する。尚、「ロボットアーム12が第1の落下高さHd#1に位置している状況下で非処理実行物体OBJ_ntgt#1が落下する」状態を、「第1の落下高さHd#1から非処理実行物体OBJ_ntgt#1が落下する」状態と等価であるとみなしてもよい。
少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下した後、図15(b)に示すように、エンドエフェクタ4は、処理実行物体OBJ_tgt#2を新たに保持する。この場合、図15(b)に示すように、エンドエフェクタ4が、処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持する例について説明する。更に、図15(b)は、エンドエフェクタ4が処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持している時点で、容器CBに対象物体群_cb#2が収容されており、且つ、対象物体群OBG_cb#2の物体高さHoが第1の物体高さHo#2である例を示している。
尚、図15(b)は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下した後に、エンドエフェクタ4が、容器CBに収容された複数の対象物体OBJから新たに選択された他の処理実行物体OBJ_tgtを保持し且つ保持した他の処理実行物体OBJ_tgtを容器CBの外にリリースする配置処理を一度も行うことなく、処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持する例を示しているとみなしてもよい。或いは、図15(b)は、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下した後に、エンドエフェクタ4は、容器CBに収容された複数の対象物体OBJから新たに選択された他の処理実行物体OBJ_tgtを保持し且つ保持した他の処理実行物体OBJ_tgtを容器CBの外にリリースする配置処理を少なくとも一回行った後に、処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持する例を示しているとみなしてもよい。
対象物体群OBG_cb#2は、対象物体群OBG_cb#1とは異なっていてもよい。例えば、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下した後であって、且つ、容器CBに収容された複数の対象物体OBJから新たに選択された他の処理実行物体OBJ_tgtを保持し且つ保持した他の処理実行物体OBJ_tgtを容器CBの外にリリースする配置処理を少なくとも一回行った後に、エンドエフェクタ4が処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持している場合には、対象物体群OBG_cb#1に含まれていた少なくとも一つの対象物体OBJが容器CBの外に搬出されている。この場合、対象物体群OBG_cb#1に含まれていた少なくとも一つの対象物体OBJは、対象物体群OBG_cb#2に含まれていなくてもよい。例えば、少なくとも非処理実行物体OBJ_ntgt#1が容器CBに落下した後に配置処理が一度も行われることなくエンドエフェクタ4が処理実行物体OBJ_tgt#2と共に非処理実行物体OBJ_ntgt#2を保持している場合においても、処理実行物体OBJ_tgt#2及び非処理実行物体OBJ_ntgt#2の少なくとも一つは、対象物体群OBG_cb#1に含まれていた対象物体OBJである。このため、この場合においても、対象物体群OBG_cb#1に含まれていた少なくとも一つの対象物体OBJは、対象物体群OBG_cb#2に含まれていなくてもよい。
このように、対象物体群OBG_cb#2に含まれる対象物体OBJの数は、対象物体群OBG_cb#1に含まれる対象物体OBJの数よりも少なくなる可能性が高い。その結果、図15(b)に示すように、対象物体群OBG_cb#2の物体高さHo#2である第2の物体高さHo#2は、対象物体群OBG_cb#2の物体高さHo#2である第2の物体高さHo#1よりも低い可能性が高い。この場合、図15(b)に示すように、誤保持検出部313は、対象物体群OBG_cb#2の物体高さHoである第2の物体高さHo#2に基づいて、落下高さHdを第1の落下高さHd#1よりも低い第2の落下高さH#2に設定してもよい。例えば、誤保持検出部313は、落下高さHdを、第2の物体高さHo#2に対して所定の第2マージン高さを加算することで算出される高さである第2の落下高さHd#2に設定してもよい。
尚、第2マージン高さは、予め設定されていてもよいし、落下高さHdを設定する際に設定されてもよい。第2マージン高さは、ユーザによって手動で設定されていてもよいし、制御装置3によって自動的に設定されてもよい。第2の落下高さHd#2を設定するために用いられる第2マージン高さは、第1の落下高さHd#1を設定するために用いられる上述の第1マージン高さと同一であってもよいし、異なっていてもよい。第2マージン高さと第1マージン高さとが同一である場合には、第1及び第2マージン高さのそれぞれとして利用可能な共通のマージン高さが設定されていてもよい。共通のマージン高さは、予め設定されていてもよいし、落下高さHdを設定する際に設定されてもよい。共通のマージン高さは、ユーザによって手動で設定されていてもよいし、制御装置3によって自動的に設定されてもよい。 その後、誤保持検出部313は、第2の落下高さHd#2に基づいて、ロボット制御信号を生成してもよい。
例えば、落下高さHdが非処理実行物体OBJ_ntgtの高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#2が第2の落下高さHd#2に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#2が、第2の落下高さHd#2が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、非処理実行物体OBJ_ntgt#2の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。非処理実行物体OBJ_ntgt#2の現在の高さとして、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#2の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、非処理実行物体OBJ_ntgt#2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、非処理実行物体OBJ_ntgt#2の現在の高さを算出(推定)してもよい。その結果、ロボット1は、非処理実行物体OBJ_ntgt#2が第2の落下高さHd#2に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、非処理実行物体OBJ_ntgt#2が第2の落下高さHd#2に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、少なくとも非処理実行物体OBJ_ntgt#2は、第2の落下高さHd#2から(言い換えれば、第2の落下高さHd#2が示すZ位置から)落下する。
例えば、落下高さHdが処理実行物体OBJ_tgtの高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、処理実行物体OBJ_tgt#2が第2の落下高さHd#2に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、処理実行物体OBJ_tgt#2が、第2の落下高さHd#2が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、処理実行物体OBJ_tgt#2の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。処理実行物体OBJ_tgt#2の現在の高さとして、図5のステップS23において保持状態を特定するために算出された処理実行物体OBJ_tgt#2の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、処理実行物体OBJ_tgt#2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、処理実行物体OBJ_tgt#2の現在の高さを算出(推定)してもよい。その結果、ロボット1は、処理実行物体OBJ_tgt#2が第2の落下高さHd#2に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、処理実行物体OBJ_tgt#2が第2の落下高さHd#2に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、処理実行物体OBJ_tgt#2が第2の落下高さHd#2(言い換えれば、第2の落下高さHd#2が示すZ位置)に位置している状況下で少なくとも、非処理実行物体OBJ_ntgt#2が落下する。尚、「処理実行物体OBJ_tgt#2が第2の落下高さHd#2に位置している状況下で非処理実行物体OBJ_ntgt#2が落下する」状態を、「第2の落下高さHd#2から非処理実行物体OBJ_ntgt#2が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdが非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの高さに基づいて定まる高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の高さに基づいて定まる高さが第2の落下高さHd#2と一致するように、ロボット制御信号を生成してもよい。その結果、ロボット1は、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の高さに基づいて定まる高さが第2の落下高さHd#2と一致するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の高さに基づいて定まる高さが第2の落下高さHd#2と一致するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。この場合、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#2の位置(特に、Z位置)及び処理実行物体OBJ_tgt#2の位置(特に、Z位置)を、それぞれ、非処理実行物体OBJ_ntgt#2の現在の高さ及び処理実行物体OBJ_tgt#2の現在の高さとして流用することで、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の現在の高さを算出してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の現在の高さを算出(推定)してもよい。その後、信号生成部312は、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の高さに基づいて定まる高さが第2の落下高さHd#2と一致している状況下で、少なくとも非処理実行物体OBJ_ntgt#2が落下する。尚、「非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の高さに基づいて定まる高さが第2の落下高さHd#2と一致している状況下で非処理実行物体OBJ_ntgt#2が落下する」状態を、「第2の落下高さHd#2から非処理実行物体OBJ_ntgt#2が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdが撮像システム2(特に、撮像装置21)の高さを意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、撮像システム2が第2の落下高さHd#2に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、撮像システム2が、第2の落下高さHd#2が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、撮像システム2の現在の高さを算出してもよい。例えば、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の少なくとも一つの位置(特に、Z位置)から、撮像システム2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、撮像システム2の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、撮像システム2の現在の高さを算出(推定)してもよい。その後、信号生成部312は、撮像システム2の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その結果、ロボット1は、撮像システム2が第2の落下高さHd#2に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、撮像システム2が第2の落下高さHd#2に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、撮像システム2が第2の落下高さHd#2(言い換えれば、第2の落下高さHd#2が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#2が落下する。尚、「撮像システム2が第2の落下高さHd#2に位置している状況下で非処理実行物体OBJ_ntgt#2が落下する」状態を、「第2の落下高さHd#2から非処理実行物体OBJ_ntgt#2が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdがエンドエフェクタ4の高さ(例えば、エンドエフェクタ4の基準点TCPの高さ)を意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、エンドエフェクタ4が第2の落下高さHd#2に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、エンドエフェクタ4が、第2の落下高さHd#2が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、エンドエフェクタ4の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。エンドエフェクタ4の現在の高さとして、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置(特に、Z位置)が流用されてもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の少なくとも一つの位置及び姿勢の少なくとも一つに基づいて、エンドエフェクタ4の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、エンドエフェクタ4の現在の高さを算出(推定)してもよい。その結果、ロボット1は、エンドエフェクタ4が第2の落下高さHd#2に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、エンドエフェクタ4が第2の落下高さHd#2に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、エンドエフェクタ4が第2の落下高さHd#2(言い換えれば、第2の落下高さHd#2が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#2が落下する。尚、「エンドエフェクタ4が第2の落下高さHd#2に位置している状況下で非処理実行物体OBJ_ntgt#2が落下する」状態を、「第2の落下高さHd#2から非処理実行物体OBJ_ntgt#2が落下する」状態と等価であるとみなしてもよい。
例えば、落下高さHdがロボットアーム12の高さ(例えば、ロボットアーム12のフランジの高さ)を意味している場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、ロボットアーム12が第2の落下高さHd#2に位置するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点で、ロボットアーム12が、第2の落下高さHd#2が示すZ位置に位置するように、ロボット制御信号を生成してもよい。この場合、信号生成部312は、ロボットアーム12の現在の高さを算出してもよい。例えば、信号生成部312は、図5のステップS23において保持状態を特定するために算出された非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2の少なくとも一つの位置(特に、Z位置)から、ロボットアーム12の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、図5のステップS23において保持状態を特定するために算出されたエンドエフェクタ4の位置及び姿勢の少なくとも一つに基づいて、ロボットアーム12の現在の高さを算出(推定)してもよい。或いは、信号生成部312は、ロボット制御装置13からエンドエフェクタ4の基準点(例えば、ツールセンターポイント)の現在の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、ロボットアーム12の現在の高さを算出(推定)してもよい。その後、信号生成部312は、ロボットアーム12の現在の高さと第2の落下高さHd#2との差分が小さくなる(例えば、ゼロになる)ようにロボット1を制御するためのロボット制御信号を生成してもよい。その結果、ロボット1は、ロボットアーム12が第2の落下高さHd#2に移動するように、エンドエフェクタ4を移動させる。つまり、ロボット1は、ロボットアーム12が第2の落下高さHd#2に移動するように、エンドエフェクタ4の高さを変更(言い換えれば、制御又は調整)する。その後、少なくとも非処理実行物体OBJ_ntgt#2が落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つが制御される。その結果、ロボットアーム12が第2の落下高さHd#2(言い換えれば、第2の落下高さHd#2が示すZ位置)に位置している状況下で、少なくとも非処理実行物体OBJ_ntgt#2が落下する。尚、「ロボットアーム12が第2の落下高さHd#2に位置している状況下で非処理実行物体OBJ_ntgt#2が落下する」状態を、「第2の落下高さHd#2から非処理実行物体OBJ_ntgt#2が落下する」状態と等価であるとみなしてもよい。
このように、第1変形例では、制御装置3は、少なくとも非処理実行物体OBJ_ntgt#2を、非処理実行物体OBJ_ntgt#1が落下した第1の落下高さHd#1よりも低い第2の落下高さHd#2から落下させてもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgt#2を、非処理実行物体OBJ_ntgt#1が落下した位置よりも低い位置から落下させてもよい。その結果、少なくとも非処理実行物体OBJ_ntgt#2が第1の落下高さHd#1から落下する場合(図15(c)参照)と比較して、少なくとも非処理実行物体OBJ_ntgt#2が容器CBに落下を開始する時点での対象物体群OBG_cb#2からの又は容器CBからの非処理実行物体OBJ_ntgt#2の高さが低くなる。このため、少なくとも非処理実行物体OBJ_ntgt#2の落下の衝撃が小さくなる。その結果、少なくとも非処理実行物体OBJ_ntgt#2の落下の衝撃に起因して、非処理実行物体OBJ_ntgt#2、対象物体群OBG_cb#2及び容器CBの少なくとも一つが破損する可能性が低くなる。
但し、図15(a)に示す状況下で少なくとも非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1の双方が容器CBに落下した場合には、落下した非処理実行物体OBJ_ntgt#1及び処理実行物体OBJ_tgt#1が非処理実行物体OBJ_ntgt#2及び処理実行物体OBJ_tgt#2として再度エンドエフェクタ4によって保持される可能性がある。この場合には、対象物体群OBG_cb#2は、対象物体群OBG_cb#1と同一であってもよい。更に、第2の落下高さHd#2は、第1の落下高さHd#1はと同じであってもよい。つまり、制御装置3は、非処理実行物体OBJ_ntgt#2を、非処理実行物体OBJ_ntgt#1が落下した第1の落下高さHd#1と同じ高さである第2の落下高さHd#2から落下させてもよい。
尚、上述した説明では、制御装置3は、物体高さHoに基づいて落下高さHdを設定し、非処理実行物体OBJ_ntgt等を設定した落下高さHdに移動させた後に、少なくとも非処理実行物体OBJ_ntgtの落下を開始している。しかしながら、制御装置3は、落下高さHdを設定することなく、少なくとも非処理実行物体OBJ_ntgtの落下を開始してもよい。
第1の例として、図16(a)に示すように、信号生成部312は、非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4が、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に近づいていくように、ロボット制御信号を生成してもよい。その結果、非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4が、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に近づいていく。このようにエンドエフェクタ4が容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に近づく期間中に、誤保持検出部313は、物体高さHoの算出結果に基づいて、物体高さHoと非処理実行物体OBJ_ntgtとの間の距離(特に、Z軸方向の距離)ΔHが、所定の距離閾値以下であるか否かを判定してもよい。物体高さHoと非処理実行物体OBJ_ntgtとの間の距離(特に、Z軸方向の距離)ΔHが所定の距離閾値以下でない場合には、対象物体群OBG_cbからの非処理実行物体OBJ_ntgtの高さが十分に低くなっていないと想定される。この場合、信号生成部312は、非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4が、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に更に近づいていくように、ロボット制御信号を生成してもよい。その結果、エンドエフェクタ4は、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に更に近づいてもよい。他方で、物体高さHoと非処理実行物体OBJ_ntgtとの間の距離(特に、Z軸方向の距離)ΔHが所定の距離閾値以下である場合には、対象物体群OBG_cbからの非処理実行物体OBJ_ntgtの高さが十分に低くなったと想定される。この場合、制御装置3は、少なくとも非処理実行物体OBJ_ntgtの落下を開始してもよい。その結果、この場合においても、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃が小さくなる。その結果、少なくとも非処理実行物体OBJ_ntgtの落下に起因して、非処理実行物体OBJ_ntgt、対象物体群OBG_cb及び容器CBの少なくとも一つが破損する可能性が低くなる。
第2の例として、図16(b)に示すように、信号生成部312は、非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4が、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に近づいていくように、ロボット制御信号を生成してもよい。更に、誤保持検出部313は、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを中心に広がる落下トリガ領域DAを定義してもよい。落下トリガ領域DAは、図16(b)に示すように、非処理実行物体OBJ_ntgtからの距離が所定の上限距離PD以下に収まる領域であってもよい。その後、このようにエンドエフェクタ4が容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に近づく期間中に、誤保持検出部313は、落下トリガ領域DAに対象物体群OBG_cbが進入したか否かを判定してもよい。落下トリガ領域DAに対象物体群OBG_cbが進入していない場合には、対象物体群OBG_cbからの非処理実行物体OBJ_ntgtの高さが十分に低くなっていないと想定される。この場合、信号生成部312は、非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4が、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に更に近づいていくように、ロボット制御信号を生成してもよい。その結果、エンドエフェクタ4は、容器CB(特に、容器CBに収容されている対象物体群OBG_cb)に更に近づいてもよい。他方で、落下トリガ領域DAに対象物体群OBG_cbが進入した場合には、対象物体群OBG_cbからの非処理実行物体OBJ_ntgtの高さが十分に低くなったと想定される。この場合、制御装置3は、少なくとも非処理実行物体OBJ_ntgtの落下を開始してもよい。その結果、この場合においても、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃が小さくなる。その結果、少なくとも非処理実行物体OBJ_ntgtの落下に起因して、非処理実行物体OBJ_ntgt、対象物体群OBG_cb及び容器CBの少なくとも一つが破損する可能性が低くなる。
(4-1-1-3)物体高さHoの算出方法
誤保持検出部313は、撮像システム2が対象物体群OBG_cbを撮像することで生成した画像データIMGを用いて、物体高さHoを算出してもよい。尚、撮像システム2は、対象物体群OBG_cbの全体を撮像してもよい。例えば、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJの全てを撮像してもよい。或いは、撮像システム2は、対象物体群OBG_cbの一部を撮像する一方で、対象物体群OBG_cbの他の一部を撮像しなくてもよい。例えば、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJの一部を撮像する一方で、対象物体群OBG_cbに含まれる複数の対象物体OBJの他の一部を撮像しなくてもよい。例えば、上述したように容器CB内において複数の対象物体OBJが積み重なっている(つまり、ばら積みされている)場合には、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの、対象物体OBG_cbの表面に位置する一部の対象物体OBJを撮像する一方で、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの、対象物体OBG_cbの表面に位置する他の一部の対象物体OBJを撮像しなくてもよい。
誤保持検出部313は、撮像システム2が対象物体群OBG_cbを撮像することで生成した画像データIMGを用いて、物体高さHoを算出してもよい。尚、撮像システム2は、対象物体群OBG_cbの全体を撮像してもよい。例えば、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJの全てを撮像してもよい。或いは、撮像システム2は、対象物体群OBG_cbの一部を撮像する一方で、対象物体群OBG_cbの他の一部を撮像しなくてもよい。例えば、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJの一部を撮像する一方で、対象物体群OBG_cbに含まれる複数の対象物体OBJの他の一部を撮像しなくてもよい。例えば、上述したように容器CB内において複数の対象物体OBJが積み重なっている(つまり、ばら積みされている)場合には、撮像システム2は、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの、対象物体OBG_cbの表面に位置する一部の対象物体OBJを撮像する一方で、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの、対象物体OBG_cbの表面に位置する他の一部の対象物体OBJを撮像しなくてもよい。
例えば、誤保持検出部313は、画像データIMGが示す画像を解析することで、物体高さHoを算出してもよい。或いは、誤保持検出部313は、位置姿勢算出部311を制御して画像データIMGを用いたマッチング処理を行うことで対象物体群OBG_cbに含まれる対象物体OBJの位置及び姿勢の少なくとも一つを算出し、対象物体OBJの位置及び姿勢の少なくとも一つの算出結果に基づいて、物体高さHoを算出してもよい。或いは、誤保持検出部313は、マッチング処理による対象物体OBJの位置及び姿勢の少なくとも一つの算出結果に基づいて、対象物体OBJの三次元モデルを、対象物体群OBG_cbが配置されている三次元空間を模した仮想的なシミュレーション空間に配置し、当該三次元モデルの高さを、物体高さHoとして算出してもよい。或いは、誤保持検出部313は、画像データIMGを用いたセグメンテーションを行うことで、画像データIMGが示す画像に写り込んでいる対象物体OBJの高さを、物体高さHoとして算出してもよい。
或いは、誤保持検出部313は、画像データIMGが示す画像を解析することに加えて又は代えて、画像データIMGから生成される三次元位置データ(例えば、上述した点群データ)を用いて、物体高さHoを算出してもよい。一例として、誤保持検出部313は、三次元位置データが示す点群の高さ(特に、対象物体群OBG_cbに対応する点群の高さ)を、物体高さHoとして算出してもよい。
三次元位置データが示す点群の高さを、物体高さHoとして算出する場合、誤保持検出部313は、以下の方法で、物体高さHoを算出してもよい。例えば、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点のうちの少なくとも一部の高さを、物体高さHoとして算出してもよい。例えば、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点のうちの最も高い位置に位置する点の高さを、物体高さHoとして算出してもよい。この場合、誤保持検出部313は、対象物体群OBG_cbの中で最も高い部位の高さを、物体高さHoとして算出することができる。或いは、例えば、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点のうちのN(尚、Nは2以上の整数を示す定数)番目に高い位置に位置する点の高さを、物体高さHoとして算出してもよい。この場合、誤保持検出部313は、対象物体群OBG_cbに含まれる複数の対象物体OBJのうちの最も高い位置に位置する一の対象物体OBJの高さを、物体高さHoとして算出することができる可能性が高い。或いは、例えば、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点のうちの少なくとも一部の高さの平均値を、物体高さHoとして算出してもよい。この場合、誤保持検出部313は、対象物体群OBG_cbの少なくとも一部の平均高さを、物体高さHoとして算出することができる。一例として、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点の全ての高さの平均値を、物体高さHoとして算出してもよい。他の一例として、誤保持検出部313は、三次元位置データが示す点群に含まれる複数の点のうちの所定の点群空間に含まれる一部の点群の高さの平均値を、物体高さHoとして算出してもよい。所定の点群空間の一例として、三次元位置データが示す点群に含まれる複数の点のうちの最も高い(或いは、N番目の高い)位置に位置する点を含む空間があげられる。例えば、所定の点群空間は、三次元位置データが示す点群に含まれる複数の点のうちの最も高い(或いは、N番目の高い)位置に位置する点(最高点)を含む仮想的な面(例えば、水平面)と、当該点(最高点)からZ軸方向に沿って所定高さだけ低い位置に位置する仮想的な面(例えば、水平面)との間の空間を含む三次元空間であってもよい。
誤保持検出部313は、図5のステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に撮像装置21が対象物体群OBG_cbを撮像することで生成した画像データIMGを用いて、物体高さHoを算出してもよい。この場合、撮像装置21は、図5のステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に、対象物体群OBG_cbを撮像してもよい。一例として、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持している場合に物体高さHoを算出する必要があるため、誤保持検出部313は、図5のステップS22においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していると判定された後に撮像装置21が対象物体群OBG_cbを撮像することで生成した画像データIMGを用いて、物体高さHoを算出してもよい。この場合、撮像装置21は、図5のステップS22においてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していると判定された後に、対象物体群OBG_cbを撮像してもよい。
或いは、誤保持検出部313は、図5のステップS11において取得した画像データIMGを用いて、物体高さHoを算出してもよい。つまり、誤保持検出部313は、図5のステップS12における位置姿勢データPOIの生成のために用いた画像データIMGを流用して、物体高さHoを算出してもよい。但し、図5のステップS11において画像データIMGが取得された時点では、エンドエフェクタ4が処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtを未だ保持していない。このため、図5のステップS11において取得した画像データIMGが示す画像には、エンドエフェクタ4が処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtを保持した後に容器CBに収容されていた対象物体群OBG_cbに加えて、エンドエフェクタ4が既に保持している処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtも写り込んでいる。このため、図5のステップS11において取得した画像データIMGに基づいて算出される物体高さHoは、対象物体群OBG_cbの実際の高さに対して誤差を有している可能性がある。しかしながら、この誤差は、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtを含むたった二つの対象物体OBJに起因した誤差であるがゆえに、その大きさは小さいと想定される。つまり、誤差の影響は小さいと想定される。このため、図5のステップS11において取得した画像データIMGに基づいて算出される物体高さHoを、対象物体群OBG_cbの高さとみなしてもよい。
或いは、誤保持検出部313は、図5のステップS12において生成済みの位置姿勢データPOIを、物体高さHoとして流用してもよい。例えば、誤保持検出部313は、図5のステップS12において生成済みの位置姿勢データPOIが示すZ位置(例えば、対象物体群OBG_cbに含まれる複数の対象物体OBJのZ位置又は当該Z位置から算出される位置(高さ))を、物体高さHoとして流用してもよい。この場合、誤保持検出部313は、落下高さHdを設定するために改めて物体高さHoを算出しなくてもよい。
このように、第1変形例では、誤保持検出部313は、撮像システム2を用いて、物体高さHoを算出している。この場合、撮像システム2は、物体高さHoを直接的に又は間接的に計測可能な計測装置として機能しているとみなしてもよい。
尚、物体高さHoが画像データIMGに基づいて算出されるがゆえに、物体高さHoは、容器CBに収容されている複数の対象物体OBJのうちの、撮像システム2の撮像範囲(つまり、計測装置として機能可能な撮像システム2の計測範囲)に含まれる少なくとも一つの対象物体OBJを含む対象物体群OBG_cbの高さであると言える。この場合、物体高さHoに基づいて設定される落下高さHdもまた、容器CBに収容されている複数の対象物体OBJのうちの、撮像システム2の撮像範囲(つまり、計測装置として機能可能な撮像システム2の計測範囲)に含まれる少なくとも一つの対象物体OBJを含む対象物体群OBG_cbの高さである物体高さHoに基づいて設定されると言える。この場合、設定された落下高さHdから落下する非処理実行物体OBJ_ntgtは、撮像システム2の撮像範囲(つまり、計測装置として機能可能な撮像システム2の計測範囲)に含まれる落下位置に落下してもよい。
(4-1-3)少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢変更に応じた落下高さHdの変更
エンドエフェクタ4の姿勢を変化させることで少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するように、制御装置3がロボット制御信号を生成してもよいことは、上述したとおりである。更に、エンドエフェクタ4の姿勢が変化する場合には、エンドエフェクタ4の姿勢の変化に伴ってエンドエフェクタ4の高さが変わる可能性があることは、上述したとおりである。その結果、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4が保持している処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの高さもまた変わる可能性がある。更には、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4と共に移動する撮像システム2の高さもまた変わる可能性がある。更には、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4と共に移動するロボットアーム12の高さもまた変わる可能性がある。
(4-1-3)少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢変更に応じた落下高さHdの変更
エンドエフェクタ4の姿勢を変化させることで少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するように、制御装置3がロボット制御信号を生成してもよいことは、上述したとおりである。更に、エンドエフェクタ4の姿勢が変化する場合には、エンドエフェクタ4の姿勢の変化に伴ってエンドエフェクタ4の高さが変わる可能性があることは、上述したとおりである。その結果、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4が保持している処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtの高さもまた変わる可能性がある。更には、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4と共に移動する撮像システム2の高さもまた変わる可能性がある。更には、エンドエフェクタ4の姿勢の変化に伴って、エンドエフェクタ4と共に移動するロボットアーム12の高さもまた変わる可能性がある。
この場合、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つが、設定した落下高さHdに移動した場合であっても、その後に少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の姿勢が変化することに起因して、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つが、設定した落下高さHdとは異なる高さに移動してしまう可能性がある。その結果、少なくとも非処理実行物体OBJ_ntgtが、設定した落下高さHdとは異なる高さから落下する可能性がある。
そこで、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の姿勢が変化した場合には、エンドエフェクタ4の姿勢の変化に伴って処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さが、設定した落下高さHdと一致するように、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化量に応じて、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。その結果、少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の少なくとも一つの姿勢が変化する場合であっても、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを、設定した落下高さHdから落下させることができる
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化量に応じた高さだけ処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。一例として、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化量に比例する高さだけ処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化量に応じた高さだけ処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。一例として、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化量に比例する高さだけ処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さを変更するロボット制御信号を生成してもよい。
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の姿勢が変化し、その後、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さが変化するように、ロボット制御信号を生成してもよい。信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の姿勢が一定量変化するたびに、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さが変化するように、ロボット制御信号を生成してもよい。
或いは、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためにエンドエフェクタ4の姿勢を変化させつつ、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さが変化するように、ロボット制御信号を生成してもよい。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを落下させるためのエンドエフェクタ4の姿勢の変化に同期して、処理実行物体OBJ_tgt、非処理実行物体OBJ_ntgt、エンドエフェクタ4、撮像システム2及びロボットアーム12の少なくとも一つの高さが変化するように、ロボット制御信号を生成してもよい。
(4-1-4)非処理実行物体OBJ_ntgtの落下位置の制御
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための落下高さHdを制御することに加えて又は代えて、少なくとも非処理実行物体OBJ_ntgtが容器CB内において落下する落下位置を制御してもよい。つまり、信号生成部312は、落下高さHdを制御することに加えて又は代えて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置である落下位置(例えば、水平面内での位置)を制御してもよい。
(4-1-4)非処理実行物体OBJ_ntgtの落下位置の制御
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための落下高さHdを制御することに加えて又は代えて、少なくとも非処理実行物体OBJ_ntgtが容器CB内において落下する落下位置を制御してもよい。つまり、信号生成部312は、落下高さHdを制御することに加えて又は代えて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置である落下位置(例えば、水平面内での位置)を制御してもよい。
具体的には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CB内の所望位置に落下するように、ロボット制御信号を制御してもよい。尚、容器CBとは異なる載置装置Tが用いられる場合には、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが載置装置T上の所望位置に落下するように、ロボット制御信号を制御してもよい。
例えば、落下する非処理実行物体OBJ_ntgtを示す断面図である図17に示すように、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが、容器CB内において対象物体OBJが存在しない位置に落下するように、ロボット制御信号を制御してもよい。信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが、容器CB内において対象物体群OBG_cbが存在しない位置に落下するように、ロボット制御信号を制御してもよい。その結果、容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在する位置に少なくとも非処理実行物体OBJ_ntgtが落下する場合と比較して、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃に起因して、落下した非処理実行物体OBJ_ntgt及び容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)が破損する可能性が低くなる。
例えば、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが、容器CB内において起伏が少ない位置に落下するように、ロボット制御信号を制御してもよい。起伏が少ない位置の一例として、起伏となり得る頂点、端部又は角が上を向いている対象物体OBJが少ない位置があげられる。その結果、容器CB内において起伏が大きい位置に少なくとも非処理実行物体OBJ_ntgtが落下する場合と比較して、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃に起因して、落下した非処理実行物体OBJ_ntgt及び容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)が破損する可能性が低くなる。
例えば、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが、容器CB内において起伏がない位置に落下するように、ロボット制御信号を制御してもよい。起伏がない位置の一例として、起伏となり得る頂点、端部又は角が上を向いている対象物体OBJが存在する位置があげられる。その結果、容器CB内において起伏がある位置に少なくとも非処理実行物体OBJ_ntgtが落下する場合と比較して、少なくとも非処理実行物体OBJ_ntgtの落下の衝撃に起因して、落下した非処理実行物体OBJ_ntgt及び容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)が破損する可能性が低くなる。
容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在しない位置に少なくとも非処理実行物体OBJ_ntgtを落下させる場合には、位置姿勢算出部311は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)を撮像システム2が撮像することで生成した画像データIMGを用いて、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置を算出してもよい。その後、信号生成部312は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置の算出結果に基づいて、容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在しない位置を特定し、特定した位置に少なくとも非処理実行物体OBJ_ntgtが落下するように、ロボット制御信号を生成してもよい。
容器CB内において起伏が少ない位置に少なくとも非処理実行物体OBJ_ntgtを落下させる場合には、位置姿勢算出部311は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)を撮像システム2が撮像することで生成した画像データIMGを用いて、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の姿勢を算出してもよい。その後、信号生成部312は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の姿勢の算出結果に基づいて、容器CB内において起伏が少ない位置(例えば、上述したように、起伏となり得る頂点、端部又は角が上を向いている対象物体OBJが少ない位置)を特定し、特定した位置に少なくとも非処理実行物体OBJ_ntgtが落下するように、ロボット制御信号を生成してもよい。
容器CB内において起伏がない位置に少なくとも非処理実行物体OBJ_ntgtを落下させる場合には、位置姿勢算出部311は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)を撮像システム2が撮像することで生成した画像データIMGを用いて、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の姿勢を算出してもよい。その後、信号生成部312は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の姿勢の算出結果に基づいて、容器CB内において起伏がない位置(例えば、上述したように、起伏となり得る頂点、端部又は角が上を向いている対象物体OBJが存在しない位置)を特定し、特定した位置に少なくとも非処理実行物体OBJ_ntgtが落下するように、ロボット制御信号を生成してもよい。
但し、容器CBに収容されている対象物体OBJの位置は、図5のステップS12において位置姿勢算出部311が既に算出済みである場合には、信号生成部312は、図5のステップS12において算出された対象物体OBJの位置を、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置として流用してもよい。
或いは、位置姿勢算出部311は、図5のステップS12とは別に、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置を算出してもよい。この場合、位置姿勢算出部311は、図5のステップS13において生成されたロボット制御信号に従ってエンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に撮像装置21が対象物体群OBG_cbを撮像することで生成した画像データIMGを用いて、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置を算出してもよい。その後、信号生成部312は、容器CBに収容されている対象物体OBJ(対象物体群OBG_cb)の位置の新たな算出結果に基づいて、容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在しない位置を特定してもよい。
尚、非処理実行物体OBJ_ntgtと共に処理実行物体OBJ_tgtが容器CBに落下する場合には、信号生成部312は、処理実行物体OBJ_tgtが容器CB内の所望位置に落下するように、ロボット制御信号を制御してもよい。例えば、信号生成部312は、処理実行物体OBJ_tgtが、容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在しない位置に落下するように、ロボット制御信号を制御してもよい。
但し、信号生成部312は、非処理実行物体OBJ_ntgt及び処理実行物体OBJ_tgtの少なくとも一つが、容器CB内において対象物体OBJ(対象物体群OBG_cb)が存在する位置に落下するように、ロボット制御信号を制御してもよい。
(4-1-5)物体高さHoの算出方法の他の例
上述した説明では、制御装置3(特に、誤保持検出部313)は、落下高さHdを設定する(制御する)ために、撮像システム2が生成した画像データIMGを用いて、物体高さHoを算出している。しかしながら、制御装置3は、撮像システム2が生成した画像データIMGを用いる高さ算出方法とは異なる高さ算出方法を用いて、物体高さHoを算出してもよい。以下、撮像システム2が生成した画像データIMGを用いる高さ算出方法とは異なる高さ算出方法の具体例について説明する。
(4-1-5)物体高さHoの算出方法の他の例
上述した説明では、制御装置3(特に、誤保持検出部313)は、落下高さHdを設定する(制御する)ために、撮像システム2が生成した画像データIMGを用いて、物体高さHoを算出している。しかしながら、制御装置3は、撮像システム2が生成した画像データIMGを用いる高さ算出方法とは異なる高さ算出方法を用いて、物体高さHoを算出してもよい。以下、撮像システム2が生成した画像データIMGを用いる高さ算出方法とは異なる高さ算出方法の具体例について説明する。
(4-1-5-1)撮像システム2とは異なる撮像システム91aを用いる第1の高さ算出方法
制御装置3は、撮像システム2とは異なる撮像システム91aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが撮像システム91aを備えている場合には、制御装置3は、ロボットシステムSYSが備えている撮像システム91aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが撮像システム91aを備えていない場合には、制御装置3は、ロボットシステムSYSの外部の撮像システム91aを用いて、物体高さHoを算出してもよい。撮像システム91aは、撮像システム91aの撮像視野により多くの対象物体OBJが含まれる位置及び姿勢で配置されていてもよい。
制御装置3は、撮像システム2とは異なる撮像システム91aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが撮像システム91aを備えている場合には、制御装置3は、ロボットシステムSYSが備えている撮像システム91aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが撮像システム91aを備えていない場合には、制御装置3は、ロボットシステムSYSの外部の撮像システム91aを用いて、物体高さHoを算出してもよい。撮像システム91aは、撮像システム91aの撮像視野により多くの対象物体OBJが含まれる位置及び姿勢で配置されていてもよい。
撮像システム91aは、ロボット1に取り付けられていてもよい。撮像システム91aは、ロボットアーム12に取り付けられていてもよい。撮像システム91aは、ロボット1(特に、ロボットアーム12)とは異なる部分に取り付けられていてもよい。例えば、撮像システム91aは、ロボットシステムSYSが配置される建物の天井に取り付けられていてもよい。例えば、撮像システム91aは、ロボット1とは異なるロボットに取り付けられていてもよい。例えば、撮像システム91aは、柱などの構造物に取り付けられていてもよい。
撮像システム91aを示す断面図である図18に示すように、撮像システム91aは、容器CBに収容されている対象物体群OBG_cbを撮像可能である。撮像システム91aは、容器CBに収容されている対象物体群OBG_cbを撮像することで、対象物体群OBG_cbが写り込んだ画像を示す画像データを生成可能である。制御装置3は、撮像システム91aが生成した画像データを用いて、物体高さHoを算出してもよい。
尚、撮像システム91aが生成した画像データを用いて物体高さHoを算出する方法は、撮像システム2が生成した画像データIMGを用いて物体高さHoを算出する方法と同一であってもよい。例えば、制御装置3は、撮像システム91aが生成した画像データが示す画像を解析することで、物体高さHoを算出してもよい。制御装置3は、撮像システム91aが生成した画像データを用いたマッチング処理を行うことで、物体高さHoを算出してもよい。制御装置3は、撮像システム91aが生成した画像データから三次元位置データ(例えば、点群データ)を生成し、生成した三次元位置データを用いて、物体高さHoを算出してもよい。
このように、第1の高さ算出方法では、制御装置3は、撮像システム91aを用いて、物体高さHoを算出している。この場合、撮像システム91aは、物体高さHoを直接的に又は間接的に計測可能な計測装置として機能しているとみなしてもよい。
(4-1-5-2)重量センサ92aを用いる第2の高さ算出方法
制御装置3は、重量センサ92aを用いて、物体高さHoを算出してもよい。例えば、重量センサ92aを示す断面図である図19に示すように、重量センサ92aは、容器CBに収容されている対象物体群OBG_cbの重量を計測可能である。この場合、重量センサ92aは、容器CBに内蔵されていてもよい。或いは、重量センサ92aに容器CBが載置されており、重量センサ92aに載置された容器CBに、対象物体群OBG_cbが収容されていてもよい。重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)は、制御装置3に出力される。
制御装置3は、重量センサ92aを用いて、物体高さHoを算出してもよい。例えば、重量センサ92aを示す断面図である図19に示すように、重量センサ92aは、容器CBに収容されている対象物体群OBG_cbの重量を計測可能である。この場合、重量センサ92aは、容器CBに内蔵されていてもよい。或いは、重量センサ92aに容器CBが載置されており、重量センサ92aに載置された容器CBに、対象物体群OBG_cbが収容されていてもよい。重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)は、制御装置3に出力される。
制御装置3は、重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、物体高さHoを算出してもよい。具体的には、容器CBに収容されている対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、対象物体群OBG_cbの重量が重くなり、且つ、物体高さHoが高くなると想定される。言い換えれば、容器CBに収容されている対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、対象物体群OBG_cbの重量が軽くなり、且つ、物体高さHoが低くなると想定される。つまり、対象物体群OBG_cbの重量と物体高さHoとの間には、対象物体群OBG_cbの重量が重くなるほど物体高さHoが高くなるという関係が成立すると想定される。言い換えれば、つまり、対象物体群OBG_cbの重量と物体高さHoとの間には、対象物体群OBG_cbの重量が軽くなるほど物体高さHoが低くなるという関係が成立すると想定される。この関係を利用して、制御装置3は、重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、物体高さHoを算出(この場合、推定)してもよい。例えば、制御装置3は、物体高さHoと対象物体群OBG_cbの重量との関係を示すテーブルと、重量センサ92aの計測結果とを用いて、物体高さHoを算出(この場合、推定)してもよい。
このように、第2の高さ算出方法では、制御装置3は、高さとは異なるパラメータである重量を計測可能な重量センサ92aを用いて、物体高さHoを算出している。この場合、重量センサ92aは、物体高さHoを間接的に計測可能な計測装置として機能しているとみなしてもよい。
(4-1-5-3)物体検出センサ93aを用いる第3の高さ算出方法
制御装置3は、物体検出センサ93aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが物体検出センサ93aを備えている場合には、制御装置3は、ロボットシステムSYSが備えている物体検出センサ93aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが物体検出センサ93aを備えていない場合には、制御装置3は、ロボットシステムSYSの外部の物体検出センサ93aを用いて、物体高さHoを算出してもよい。
制御装置3は、物体検出センサ93aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが物体検出センサ93aを備えている場合には、制御装置3は、ロボットシステムSYSが備えている物体検出センサ93aを用いて、物体高さHoを算出してもよい。例えば、ロボットシステムSYSが物体検出センサ93aを備えていない場合には、制御装置3は、ロボットシステムSYSの外部の物体検出センサ93aを用いて、物体高さHoを算出してもよい。
物体検出センサ93aは、対象物体OBJを検出可能である。例えば、物体検出センサ93aは、対象物体OBJに向けて検出光を射出し、対象物体OBJからの検出光の反射光を検出することで対象物体OBJを検出可能な光電センサ等の光センサであってもよい。但し、物体検出センサ93aは、光電センサとは異なる光センサであってもよい。また、物体検出センサ93aが対象物体OBJを検出可能であれば、物体検出センサ93aは、光センサとは異なる既存のセンサであってもよい。
物体検出センサ93aは、物体検出センサ93aによる対象物体OBJの検出結果に基づいて物体高さHoが算出可能となるように、所望の位置に配置されていてもよい。例えば、図20に示すように、複数の物体検出センサ93aが、互いに異なる高さに配置されていてもよい。図20に示す例では、光電センサである三つの物体検出センサ93a(具体的には、物体検出センサ93a#1、物体検出センサ93a#2及び物体検出センサ93a#3)が、容器CBの側壁SS上において互いに異なる第1の高さTH1、第2の高さTH2及び第3の高さTH3にそれぞれ配置されている。尚、第1の高さTH1、第2の高さTH2及び第3の高さTH3のそれぞれは、上述した高さ基準面(例えば、容器CBの底壁BSの底面)からの高さを意味していてもよいし、グローバル座標系等のZ座標値を意味していてもよい。また、第1の高さTH1は、第2の高さTH2を上回り、第2の高さTH2は、第3の高さTH3を上回る。更に、図20に示す例では、各物体検出センサ93aは、水平方向に沿って検出光を照射している。この場合、各物体検出センサ93aは、各物体検出センサ93aが配置された高さに位置する対象物体OBJを検出してもよい。例えば、物体検出センサ93a#1は、第1の高さTH1に位置する対象物体OBJを検出してもよい。例えば、物体検出センサ93a#2は、第2の高さTH2に位置する対象物体OBJを検出してもよい。例えば、物体検出センサ93a#3は、第3の高さTH3に位置する対象物体OBJを検出してもよい。
複数の物体検出センサ93aの検出結果は、制御装置3に出力される。制御装置3は、複数の物体検出センサ93aの検出結果に基づいて、物体高さHoを算出してもよい。例えば、一の高さに位置する一の物体検出センサ93aが対象物体OBJを検出している(つまり、検出光が対象物体OBJに照射され、対象物体OBJからの反射光が一の物体検出センサ93aに戻る)場合には、物体高さHoは、一の高さを上回っていると想定される。一方で、一の高さに位置する一の物体検出センサ93aが対象物体OBJを検出していない(つまり、検出光が対象物体OBJに照射されず、対象物体OBJからの反射光が一の物体検出センサ93aに戻らない)場合には、物体高さHoは、一の高さを下回っていると想定される。このため、制御装置3は、複数の物体検出センサ93aの検出結果に基づいて、物体高さHo(特に、大まかな物体高さHo)を算出する(この場合、推定する)ことができる。例えば、物体検出センサ93a#1から93#3の全てが対象物体OBJを検出している場合には、制御装置3は、第1の高さTH1以上の高さを、物体高さHoとして算出してもよい。例えば、物体検出センサ93a#1が対象物体OBJを検出していない一方で物体検出センサ93a#2から93#3が対象物体OBJを検出している場合には、制御装置3は、第2の高さTH2以上且つ第1の高さTH1以下の高さを、物体高さHoとして算出してもよい。例えば、物体検出センサ93a#1から93#2が対象物体OBJを検出していない一方で物体検出センサ93a#3が対象物体OBJを検出している場合には、制御装置3は、第3の高さTH3以上且つ第2の高さTH2以下の高さを、物体高さHoとして算出してもよい。例えば、物体検出センサ93a#1から93#3の全てが対象物体OBJを検出していない場合には、制御装置3は、第3の高さTH3以下の高さを、物体高さHoとして算出してもよい。
複数の物体検出センサ93aの検出結果に基づいて物体高さHoを算出することは、対象物体OBJを検出していない物体検出センサ93aの数に基づいて、物体高さHoを算出することと等価であるとみなしてもよい。例えば、対象物体OBJを検出していない物体検出センサ93aの数がゼロである(つまり、物体検出センサ93a#1から93a#3の全てが対象物体OBJを検出している)場合には、制御装置3は、第1の高さTH1以上の高さを、物体高さHoとして算出してもよい。例えば、対象物体OBJを検出していない物体検出センサ93aの数が一つである(つまり、物体検出センサ93a#1が対象物体OBJを検出していない一方で物体検出センサ93a#2から93a#3が対象物体OBJを検出している)場合には、制御装置3は、第2の高さTH2以上且つ第1の高さTH1以下の高さを、物体高さHoとして算出してもよい。例えば、対象物体OBJを検出していない物体検出センサ93aの数が二つである(つまり、物体検出センサ93a#1から93a#2が対象物体OBJを検出していない一方で物体検出センサ93a#3が対象物体OBJを検出している)場合には、制御装置3は、第3の高さTH3以上且つ第2の高さTH2以下の高さを、物体高さHoとして算出してもよい。例えば、対象物体OBJを検出していない物体検出センサ93aの数がゼロである(つまり、物体検出センサ93a#1から93a#3の全てが対象物体OBJを検出していない)場合には、制御装置3は、第3の高さTH3以下の高さを、物体高さHoとして算出してもよい。
このように、第3の高さ算出方法では、制御装置3は、物体検出センサ93aを用いて、物体高さHoを算出している。この場合、物体検出センサ93aは、物体高さHoを直接的に計測可能な計測装置として機能しているとみなしてもよい。
(4-1-5-4)マーカ94aを用いる第4の高さ算出方法
制御装置3は、マーカ94aを用いて、物体高さHoを算出してもよい。具体的には、マーカ94aを示す図21に示すように、マーカ94aは、対象物体OBJが収容される容器CBに配置されていてもよい。特に、マーカ94aは、対象物体OBJが収容される収容空間SPに面する容器CBの表面(典型的には、内面)に配置されていてもよい。一例として、マーカ94aは、収容空間SPに面する容器CBの側壁SSに配置されていてもよい。
制御装置3は、マーカ94aを用いて、物体高さHoを算出してもよい。具体的には、マーカ94aを示す図21に示すように、マーカ94aは、対象物体OBJが収容される容器CBに配置されていてもよい。特に、マーカ94aは、対象物体OBJが収容される収容空間SPに面する容器CBの表面(典型的には、内面)に配置されていてもよい。一例として、マーカ94aは、収容空間SPに面する容器CBの側壁SSに配置されていてもよい。
マーカ94aは、容器CBから取り外し可能であってもよい。マーカ94aは、容器CBに固定されていてもよい。マーカ94aは、容器CBに形成されていてもよい。例えば、マーカ94aは、容器CBに印刷されていてもよい。例えば、マーカ94aは、レーザ光等によって容器CBに刻印されていてもよい。
マーカ94aは、撮像システム2(或いは、第1の高さ算出方法で用いた撮像システム91a、以下、第4の高さ算出方法の説明において同じ)によって撮像可能なマーカである。但し、対象物体OBJの収容空間SPに面する位置にマーカ94aが配置されるため、マーカ94aが対象物体OBJによって隠されている場合には、撮像システム2は、マーカ94aを撮像できない。
マーカ94aは、撮像システム2によるマーカ94aの撮像結果(つまり、マーカ94aを撮像する撮像システム2が生成した画像データIMG)に基づいて物体高さHoが算出可能となるように、所望の位置に配置されていてもよい。例えば、図21に示すように、複数のマーカ94aが、互いに異なる高さに配置されていてもよい。図21に示す例では、三つのマーカ94a(具体的には、マーカ94a#1、マーカ94a#2及びマーカ94a#3)が、容器CBの側壁SS上において互いに異なる第1の高さTH1、第2の高さTH2及び第3の高さTH3にそれぞれ配置されている。尚、第1の高さTH1、第2の高さTH2及び第3の高さTH3のそれぞれは、上述した高さ基準面(例えば、容器CBの底壁BSの底面)からの高さを意味していてもよいし、グローバル座標系等のZ座標値を意味していてもよい。また、第1の高さTH1は、第2の高さTH2を上回り、第2の高さTH2は、第3の高さTH3を上回る。
この場合、制御装置3は、撮像システム2によるマーカ94aの撮像結果に基づいて、物体高さHoを算出してもよい。例えば、一の高さに位置する一のマーカ94aが、撮像システム2が生成した画像に写り込んでいない場合(つまり、撮像システム2による撮像結果としての画像データに基づいてマーカ94aを検出できない場合)には、当該一のマーカ94aが対象物体OBJによって隠されていると想定される。この場合、対象物体OBJが一のマーカ94aが配置される一の高さ又は当該一の高さよりも高い位置に位置していると想定される。その結果、物体高さHoは、一の高さを上回っていると想定される。一方で、例えば、一の高さに位置する一のマーカ94aが、撮像システム2が生成した画像に写り込んでいる場合(つまり、撮像システム2による撮像結果としての画像データに基づいてマーカ94aを検出できた場合)には、当該一のマーカ94aが対象物体OBJによって隠されていないと想定される。この場合、対象物体OBJが一のマーカ94aが配置される一の高さ又は当該一の高さよりも高い位置には位置していないと想定される。その結果、物体高さHoは、一の高さを下回っていると想定される。このため、制御装置3は、撮像システム2によるマーカ94aの撮像結果に基づいて、物体高さHo(特に、大まかな高さ物体Ho)を算出する(この場合、推定)することができる。例えば、マーカ94a#1から94#3の全てが、撮像システム2が生成した画像に写り込んでいない場合には、制御装置3は、第1の高さTH1以上の高さを、物体高さHoとして算出してもよい。例えば、マーカ94a#1が、撮像システム2が生成した画像に写り込んでいる一方で、マーカ94a#2から94#3が、撮像システム2が生成した画像に写り込んでいない場合には、制御装置3は、第2の高さTH2以上且つ第1の高さTH1以下の高さを、物体高さHoとして算出してもよい。例えば、マーカ94a#1から94#2が、撮像システム2が生成した画像に写り込んでいる一方で、マーカ94a#3が、撮像システム2が生成した画像に写り込んでいない場合には、制御装置3は、第3の高さTH3以上且つ第2の高さTH2以下の高さを、物体高さHoとして算出してもよい。例えば、マーカ94a#1から94#3の全てが、撮像システム2が生成した画像に写り込んでいる場合には、制御装置3は、第3の高さTH3以下の高さを、物体高さHoとして算出してもよい。
制御装置3は、撮像システム2によるマーカ94aの撮像結果として、図5のステップS11において取得した画像データIMGを流用することで、物体高さHoを算出してもよい。この場合、撮像システム2は、物体高さHoを算出するために、マーカ94aを新たに撮像しなくてもよい。但し、撮像システム2は、物体高さHoを算出するために、マーカ94aを新たに撮像してもよい。制御装置3は、撮像システム2によるマーカ94aの撮像結果として、図5のステップS11において取得した画像データIMGを流用することなく、物体高さHoを算出するために撮像システム2がマーカ94aを新たに撮像することで生成した画像データIMGを用いて、物体高さHoを算出してもよい。
撮像システム2によるマーカ94aの撮像結果に基づいて物体高さHoを算出することは、撮像システム2によるマーカ94aの撮像結果に基づいて検出されたマーカ94aの数に基づいて、物体高さHoを算出することと等価であるとみなしてもよい。例えば、検出されたマーカ94aの数がゼロである(つまり、マーカ94a#1から94#3の全てが、撮像システム2が生成した画像に写り込んでいない)場合には、制御装置3は、第1の高さTH1以上の高さを、物体高さHoとして算出してもよい。例えば、検出されたマーカ94aの数が一つである(つまり、マーカ94a#1が、撮像システム2が生成した画像に写り込んでいる一方で、マーカ94a#2から94#3が、撮像システム2が生成した画像に写り込んでいない)場合には、制御装置3は、第2の高さTH2以上且つ第1の高さTH1以下の高さを、物体高さHoとして算出してもよい。例えば、検出されたマーカ94aの数が二つである(つまり、マーカ94a#1から94#2が、撮像システム2が生成した画像に写り込んでいる一方で、マーカ94a#3が、撮像システム2が生成した画像に写り込んでいない)場合には、制御装置3は、第3の高さTH3以上且つ第2の高さTH2以下の高さを、物体高さHoとして算出してもよい。例えば、検出されたマーカ94aの数が三つである(つまり、マーカ94a#1から94#3の全てが、撮像システム2が生成した画像に写り込んでいる)場合には、制御装置3は、第3の高さTH3以下の高さを、物体高さHoとして算出してもよい。
複数のマーカ94aの形状は、互いに異なっていてもよい。この場合、制御装置3は、撮像システム2が生成した画像に写り込んでいるマーカ94aの形状に基づいて、物体高さHoを算出してもよい。例えば、図21に示す例において、マーカ94a#1が、第1の形状を有し、マーカ94a#2が、第1の形状とは異なる第2の形状を有し、マーカ94a#3が、第1から第2の形状とは異なる第3の形状を有している例について説明する。この場合、撮像システム2が生成した画像に写り込んでいるマーカ94aの形状が第1の形状のみである(つまり、マーカ94a#1のみが、撮像システム2が生成した画像に写り込んでいる)場合には、制御装置3は、第2の高さTH2以上且つ第1の高さTH1以下の高さを、物体高さHoとして算出してもよい。例えば、撮像システム2が生成した画像に写り込んでいるマーカ94aの形状が第1及び第2の形状のみである(つまり、マーカ94a#1から94#2のみが、撮像システム2が生成した画像に写り込んでいる)場合には、制御装置3は、第3の高さTH3以上且つ第2の高さTH2以下の高さを、物体高さHoとして算出してもよい。例えば、撮像システム2が生成した画像に写り込んでいるマーカ94aの形状が第1から第3の形状である(つまり、マーカ94a#1から94#3の全てが、撮像システム2が生成した画像に写り込んでいる)場合には、制御装置3は、第3の高さTH3以下の高さを、物体高さHoとして算出してもよい。
このように、第4の高さ算出方法では、制御装置3は、マーカ94aと撮像システム2とを用いて、物体高さHoを算出している。この場合、撮像システム2は、物体高さHoを直接的に計測可能な計測装置として機能し、且つ、マーカ94aは、物体高さHoを直接的に計測可能な計測部材として機能しているとみなしてもよい。
(4-1-5-5)エンドエフェクタ4がリリースした対象物体OBJ(処理実行物体OBJ_tgt)の数を用いる第5の高さ算出方法
制御装置3は、エンドエフェクタ4が容器CBの外においてリリースした対象物体OBJ(この場合、処理実行物体OBJ_tgt)の数に関する情報を用いて、物体高さHoを算出してもよい。尚、制御装置3の制御下でエンドエフェクタ4が対象物体OBJをリリースがゆえに、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報は、制御装置3にとって既知の情報である。
制御装置3は、エンドエフェクタ4が容器CBの外においてリリースした対象物体OBJ(この場合、処理実行物体OBJ_tgt)の数に関する情報を用いて、物体高さHoを算出してもよい。尚、制御装置3の制御下でエンドエフェクタ4が対象物体OBJをリリースがゆえに、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報は、制御装置3にとって既知の情報である。
具体的には、エンドエフェクタ4がリリースした対象物体OBJの数(つまり、容器CBから取り出された対象物体OBJの数)が多くなるほど、容器CBに残っている対象物体OBJの数が少なくなり、物体高さHoが低くなると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数が少なくなるほど、容器CBに残っている対象物体OBJの数が多くなり、物体高さHoが高くなると想定される。つまり、エンドエフェクタ4がリリースした対象物体OBJの数と物体高さHoとの間には、エンドエフェクタ4がリリースした対象物体OBJの数が少ないほど物体高さHoが高くなるという関係が成立すると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数と物体高さHoとの間には、エンドエフェクタ4がリリースした対象物体OBJの数が多くなるほど物体高さHoが低くなるという関係が成立すると想定される。この関係を利用して、制御装置3は、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、物体高さHoを算出(この場合、推定)してもよい。例えば、制御装置3は、物体高さHoとエンドエフェクタ4がリリースした対象物体OBJの数との関係を示すテーブルと、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報とを用いて、物体高さHoを算出(この場合、推定)してもよい。
(4-1-6)物体高さHoとは異なるパラメータを用いた落下高さHdの制御
上述した説明では、制御装置3は、容器CBに収容されている対象物体群OBG_cbの高さである物体高さHoに基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための高さ(つまり、Z軸方向の位置)を示す落下高さHdを制御している。ここで、容器CBに収容されている対象物体群OBG_cbの物体高さHoは、容器CBに収容されている対象物体群OBG_cbの分量(つまり、対象物体群OBG_cbに含まれる対象物体OBJの分量)を示すパラメータであると言える。なぜならば、対象物体群OBG_cbの物体高さHoが高くなるほど、対象物体群OBG_cbの分量が多いと言えるからである。言い換えれば、対象物体群OBG_cbの物体高さHoが低くなるほど、対象物体群OBG_cbの分量が少ないと言えるからである。
(4-1-6)物体高さHoとは異なるパラメータを用いた落下高さHdの制御
上述した説明では、制御装置3は、容器CBに収容されている対象物体群OBG_cbの高さである物体高さHoに基づいて、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下を開始するための高さ(つまり、Z軸方向の位置)を示す落下高さHdを制御している。ここで、容器CBに収容されている対象物体群OBG_cbの物体高さHoは、容器CBに収容されている対象物体群OBG_cbの分量(つまり、対象物体群OBG_cbに含まれる対象物体OBJの分量)を示すパラメータであると言える。なぜならば、対象物体群OBG_cbの物体高さHoが高くなるほど、対象物体群OBG_cbの分量が多いと言えるからである。言い換えれば、対象物体群OBG_cbの物体高さHoが低くなるほど、対象物体群OBG_cbの分量が少ないと言えるからである。
このように対象物体群OBG_cbの物体高さHoが対象物体群OBG_cbの分量と等価であるとみなせることを考慮すると、物体高さHoとは異なる任意のパラメータが対象物体群OBG_cbの分量を示す場合には、制御装置3は、対象物体群OBG_cbの物体高さHoに加えて又は代えて、対象物体群OBG_cbの分量に基づいて、落下高さHdを制御してもよい。この場合、容器CBに収容されている対象物体群OBG_cbの分量は、容器CBに収容されている複数の対象物体OBJの全ての分量(つまり、容器CBに収容されている複数の対象物体OBJの全てを含む対象物体群OBG_cbの分量)を意味していてもよい。或いは、容器CBに収容されている対象物体群OBG_cbの分量は、容器CBに収容されている複数の対象物体OBJのうちの一部の分量(つまり、容器CBに収容されている複数の対象物体OBJの一部を含む対象物体群OBG_cbの分量)を意味していてもよい。例えば、分量の算出対象となる対象物体群OBG_cbは、落下高さHdを制御するために撮像システム2が撮像した少なくとも一つの対象物体OBJを含む対象物体群OBG_cbであってもよい。例えば、分量の算出対象となる対象物体群OBG_cbは、落下高さHdを制御するために対象物体OBJを撮像する撮像システム2の撮像視野に含まれる少なくとも一つの対象物体OBJを含む対象物体群OBG_cbであってもよい。
対象物体群OBG_cbの分量として、対象物体群OBG_cbの全体の分量が用いられてもよい。例えば、対象物体群OBG_cbの分量として、対象物体群OBG_cbに含まれる複数の対象物体OBJの全体の分量が用いられてもよい。或いは、対象物体群OBG_cbの分量として、対象物体群OBG_cbの一部分の分量が用いられてもよい。例えば、対象物体群OBG_cbの分量として、対象物体群OBG_cbに含まれる複数の対象物体OBJのうち所望の選択基準で選択される少なくとも一つの対象物体OBJの分量が用いられてもよい。
対象物体群OBG_cbの分量を示すパラメータの一例として、対象物体群OBG_cbに含まれる対象物体OBJの数があげられる。対象物体群OBG_cbの分量を示すパラメータの一例として、対象物体群OBG_cbの重量(つまり、対象物体群OBG_cbに含まれる対象物体OBJの重量)があげられる。対象物体群OBG_cbの分量を示すパラメータの一例として、対象物体群OBG_cbの体積(つまり、対象物体群OBG_cbに含まれる対象物体OBJの体積)があげられる。
以下、対象物体群OBG_cbの分量を示すパラメータの一例について、具体的に説明する。
(4-1-6-1)対象物体群OBG_cbに含まれる対象物体OBJの数
制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数に基づいて、落下高さHdを制御してもよい。この場合、制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbに含まれる対象物体OBJの数に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数に基づいて、落下高さHdを制御してもよい。この場合、制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbに含まれる対象物体OBJの数に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数を算出し、算出した数に基づいて、落下高さHdを制御してもよい。
第1の例として、制御装置3は、撮像システム2が生成した画像データIMG(或いは、上述した第1の高さ算出方法で用いられる撮像システム91aが生成した画像データ、以下、以下同じ)を用いて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。例えば、制御装置3は、画像データIMGが示す画像を解析することで、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。例えば、制御装置3は、画像データIMGから生成される三次元位置データ(例えば、点群データ)を用いて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。この場合、撮像システム2(或いは、撮像システム91a)は、対象物体群OBG_cbに含まれる対象物体OBJの数(分量)を間接的に計測可能な計測装置として機能しているとみなしてもよい。
第2の例として、制御装置3は、上述した第2の高さ算出方法で用いられる重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。具体的には、対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるほど、対象物体群OBG_cbの重量が重くなると想定される。言い換えれば、対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるほど、対象物体群OBG_cbの重量が軽くなると想定される。つまり、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの重量との間には、対象物体群OBG_cbの重量が重くなるほど対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるという関係が成立すると想定される。言い換えれば、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの重量との間には、対象物体群OBG_cbの重量が軽くなるほど対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるという関係が成立すると想定される。この関係を利用して、制御装置3は、重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出(この場合、推定)してもよい。例えば、制御装置3は、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの重量との関係を示すテーブルと、重量センサ92aの計測結果とを用いて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出(この場合、推定)してもよい。この場合、重量センサ92aは、対象物体群OBG_cbに含まれる対象物体OBJの数(分量)を間接的に計測可能な計測装置として機能しているとみなしてもよい。
第3の例として、制御装置3は、上述した第5の高さ算出方法で用いられるエンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。例えば、制御装置3は、ロボット制御処理を開始する前に容器CBに収容されていた対象物体OBJの数から、エンドエフェクタ4がリリースした対象物体OBJの数を差し引くことで得られる数を、対象物体群OBG_cbに含まれる対象物体OBJの数(つまり、容器CBに残っている対象物体OBJの数)として算出してもよい。
尚、制御装置3は、上述した第3の高さ算出方法で用いられる物体検出センサ93aの検出結果に基づいて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。制御装置3は、上述した第4の高さ算出方法で用いられるマーカ94aの撮像結果に基づいて、対象物体群OBG_cbに含まれる対象物体OBJの数を算出してもよい。なぜならば、対象物体群OBG_cbに含まれる対象物体OBJの数と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの物体高さHoが高くなるほど対象物体群OBG_cbに含まれる対象物体OBJの数が多くなるという関係(つまり、対象物体群OBG_cbの物体高さHoが低くなるほど対象物体群OBG_cbに含まれる対象物体OBJの数が少なくなるという関係)が成立すると想定されるからである。
(4-1-6-2)対象物体群OBG_cbの重量
制御装置3は、対象物体群OBG_cbの重量に基づいて、落下高さHdを制御してもよい。この場合、制御装置3は、対象物体群OBG_cbの重量が軽くなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの重量が重くなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの重量と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbの重量に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbの重量と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの重量が重くなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbの重量が軽くなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbの重量に基づいて、落下高さHdを制御してもよい。この場合、制御装置3は、対象物体群OBG_cbの重量が軽くなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの重量が重くなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの重量と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbの重量に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbの重量と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの重量が重くなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbの重量が軽くなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbの重量を算出し、算出した重量に基づいて、落下高さHdを制御してもよい。
第1の例として、制御装置3は、撮像システム2が生成した画像データIMG(或いは、上述した第1の高さ算出方法で用いられる撮像システム91aが生成した画像データ、以下、以下同じ)を用いて、対象物体群OBG_cbの重量を算出してもよい。例えば、制御装置3は、撮像システム2が生成した画像データIMGが示す画像を解析することで、対象物体群OBG_cbの重量を算出してもよい。例えば、制御装置3は、画像データIMGから生成される三次元位置データ(例えば、点群データ)を用いて、対象物体群OBG_cbの重量を算出してもよい。この場合、撮像システム2(或いは、撮像システム91a)は、対象物体群OBG_cbの重量(分量)を間接的に計測可能な計測装置として機能しているとみなしてもよい。
第2の例として、制御装置3は、上述した第2の高さ算出方法で用いられる重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、対象物体群OBG_cbの重量を算出してもよい。この場合、重量センサ92aは、対象物体群OBG_cbの重量(分量)を直接的に計測可能な計測装置として機能しているとみなしてもよい。
第3の例として、制御装置3は、上述した第5の高さ算出方法で用いられるエンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、対象物体群OBG_cbの重量を算出してもよい。具体的には、エンドエフェクタ4がリリースした対象物体OBJの数(つまり、容器CBの外に搬出された対象物体OBJの数)が少なくなるほど、容器CBに残っている対象物体群OBG_cbの重量が重くなると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数(つまり、容器CBの外に搬出された対象物体OBJの数)が多くなるほど、容器CBに残っている対象物体群OBG_cbの重量が軽くなると想定される。つまり、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの重量との間には、エンドエフェクタ4がリリースした対象物体OBJの数が少なくなるほど対象物体群OBG_cbの重量が重くなるという関係が成立すると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの重量との間には、エンドエフェクタ4がリリースした対象物体OBJの数が多くなるほど対象物体群OBG_cbの重量が軽くなるという関係が成立すると想定される。この関係を利用して、制御装置3は、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、対象物体群OBG_cbの重量を算出(この場合、推定)してもよい。例えば、制御装置3は、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの重量との関係を示すテーブルと、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報とを用いて、対象物体群OBG_cbの重量を算出(この場合、推定)してもよい。
尚、制御装置3は、上述した第3の高さ算出方法で用いられる物体検出センサ93aの検出結果に基づいて、対象物体群OBG_cbの重量を算出してもよい。制御装置3は、上述した第4の高さ算出方法で用いられるマーカ94aの撮像結果に基づいて、対象物体群OBG_cbの重量を算出してもよい。なぜならば、対象物体群OBG_cbの重量と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの物体高さHoが高くなるほど対象物体群OBG_cbの重量が重くなるという関係(つまり、対象物体群OBG_cbの物体高さHoが低くなるほど対象物体群OBG_cbの重量が軽くなるという関係)が成立すると想定されるからである。
(4-1-6-3)対象物体群OBG_cbの体積
制御装置3は、対象物体群OBG_cbの体積に基づいて、落下高さHdを制御してもよい。この場合、この場合、制御装置3は、対象物体群OBG_cbの体積が小さくなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの体積が大きくなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの体積と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbの体積に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbの体積と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの体積が大きくなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbの体積が小さくなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbの体積に基づいて、落下高さHdを制御してもよい。この場合、この場合、制御装置3は、対象物体群OBG_cbの体積が小さくなるほど、落下高さHdが低くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの体積が大きくなるほど、落下高さHdが高くなるように、落下高さHdを制御してもよい。制御装置3は、対象物体群OBG_cbの体積と落下高さHdとの関係を示すテーブルを用いて、対象物体群OBG_cbの体積に基づいて、落下高さHdを制御してもよい。この場合、上述した対象物体群OBG_cbの物体高さHoに基づいて落下高さHdが制御される場合に享受可能な効果と同様の効果が享受可能である。なぜならば、対象物体群OBG_cbの体積と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの体積が大きくなるほど、対象物体群OBG_cbの物体高さHoが高くなる(つまり、対象物体群OBG_cbの体積が小さくなるほど、対象物体群OBG_cbの物体高さHoが低くなる)という関係が成立すると想定されるからである。
制御装置3は、対象物体群OBG_cbの体積を算出し、算出した体積に基づいて、落下高さHdを制御してもよい。
第1の例として、制御装置3は、撮像システム2が生成した画像データIMG(或いは、上述した第1の高さ算出方法で用いられる撮像システム91aが生成した画像データ、以下、以下同じ)を用いて、対象物体群OBG_cbの体積を算出してもよい。例えば、制御装置3は、撮像システム2が生成した画像データIMGが示す画像を解析することで、対象物体群OBG_cbの体積を算出してもよい。例えば、制御装置3は、画像データIMGから生成される三次元位置データ(例えば、点群データ)を用いて、対象物体群OBG_cbの体積を算出してもよい。この場合、撮像システム2(或いは、撮像システム91)は、対象物体群OBG_cbの体積(分量)を間接的に計測可能な計測装置として機能しているとみなしてもよい。
第2の例として、制御装置3は、上述した第2の高さ算出方法で用いられる重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、対象物体群OBG_cbの体積を算出してもよい。具体的には、対象物体群OBG_cbの体積が大きくなるほど、対象物体群OBG_cbの重量が重くなると想定される。言い換えれば、対象物体群OBG_cbの体積が小さくなるほど、対象物体群OBG_cbの重量が軽くなると想定される。つまり、対象物体群OBG_cbの体積と対象物体群OBG_cbの重量との間には、対象物体群OBG_cbの重量が重くなるほど対象物体群OBG_cbの体積が大きくなるという関係が成立すると想定される。言い換えれば、対象物体群OBG_cbの体積と対象物体群OBG_cbの重量との間には、対象物体群OBG_cbの重量が軽くなるほど対象物体群OBG_cbの体積が小さくなるという関係が成立すると想定される。この関係を利用して、制御装置3は、重量センサ92aの計測結果(つまり、対象物体群OBG_cbの重量の計測結果)に基づいて、対象物体群OBG_cbの体積を算出(この場合、推定)してもよい。例えば、制御装置3は、対象物体群OBG_cbの体積と対象物体群OBG_cbの重量との関係を示すテーブルと、重量センサ92の計測結果とを用いて、対象物体群OBG_cbの体積を算出(この場合、推定)してもよい。この場合、重量センサ92aは、対象物体群OBG_cbの体積(分量)を間接的に計測可能な計測装置として機能しているとみなしてもよい。
第3の例として、制御装置3は、上述した第5の高さ算出方法で用いられるエンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、対象物体群OBG_cbの体積を算出してもよい。具体的には、エンドエフェクタ4がリリースした対象物体OBJの数(つまり、容器CBの外に搬出された対象物体OBJの数)が少なくなるほど、容器CBに残っている対象物体群OBG_cbの体積が大きくなると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数(つまり、容器CBの外に搬出された対象物体OBJの数)が多くなるほど、容器CBに残っている対象物体群OBG_cbの体積が小さくなると想定される。つまり、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの体積との間には、エンドエフェクタ4がリリースした対象物体OBJの数が少なくなるほど対象物体群OBG_cbの体積が大きくなるという関係が成立すると想定される。言い換えれば、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの体積との間には、エンドエフェクタ4がリリースした対象物体OBJの数が多くなるほど対象物体群OBG_cbの体積が小さくなるという関係が成立すると想定される。この関係を利用して、制御装置3は、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報に基づいて、対象物体群OBG_cbの体積を算出(この場合、推定)してもよい。例えば、制御装置3は、エンドエフェクタ4がリリースした対象物体OBJの数と対象物体群OBG_cbの体積との関係を示すテーブルと、エンドエフェクタ4がリリースした対象物体OBJの数に関する情報とを用いて、対象物体群OBG_cbの体積を算出(この場合、推定)してもよい。
尚、制御装置3は、上述した第3の高さ算出方法で用いられる物体検出センサ93aの検出結果に基づいて、対象物体群OBG_cbの体積を算出してもよい。制御装置3は、上述した第4の高さ算出方法で用いられるマーカ94aの撮像結果に基づいて、対象物体群OBG_cbの体積を算出してもよい。なぜならば、対象物体群OBG_cbの体積と対象物体群OBG_cbの物体高さHoとの間には、対象物体群OBG_cbの物体高さHoが高くなるほど対象物体群OBG_cbの体積が大きくなるという関係(つまり、対象物体群OBG_cbの物体高さHoが低くなるほど対象物体群OBG_cbの体積が小さくなるという関係)が成立すると想定されるからである。
(4-2)第2変形例
第2変形例では、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるための第1のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御された後に少なくとも非処理実行物体OBJ_ntgtが落下しなかったと判定された場合には(図5のステップS31:No)、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるように、第1のロボット制御信号に基づく制御態様とは異なる制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第2のロボット制御信号を生成してもよい。つまり、制御装置3は、第1のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、新たな第2のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。言い換えれば、制御装置3は、第1の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、第1の制御態様とは異なる第2の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変更した上で、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。
第2変形例では、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるための第1のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御された後に少なくとも非処理実行物体OBJ_ntgtが落下しなかったと判定された場合には(図5のステップS31:No)、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるように、第1のロボット制御信号に基づく制御態様とは異なる制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するための第2のロボット制御信号を生成してもよい。つまり、制御装置3は、第1のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、新たな第2のロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。言い換えれば、制御装置3は、第1の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、第1の制御態様とは異なる第2の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。つまり、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変更した上で、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理を再度行ってもよい。
このように、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変更した上で少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が再度行われる場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が再度行われない場合にと比較して、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなる。
以下、図22を参照しながら、第2変形例におけるロボット制御処理について説明する。図22は、第2変形例におけるロボット制御処理の流れを示すフローチャートである。尚、既に説明済みの処理については、同一のステップ番号を付することで、その詳細な説明を省略する。
図22に示すように、第2変形例においても、制御装置3は、処理実行物体OBJ_tgtを保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御する(ステップS11からステップS13)。更に、第2変形例においても、エンドエフェクタ4が処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持していると判定された場合には(ステップS22:Yes)、制御装置3は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1及びエンドエフェクタ4の少なくとも一つを制御する(ステップS23からステップS24)。
その後、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には(ステップS31:No)、制御装置3(特に、信号生成部312)は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を変更する(ステップS25b)。つまり、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためにこれまでに用いたロボット1及びエンドエフェクタ4の少なくとも一つの制御態様とは異なる制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成する(ステップS25b)。
ロボット1の制御態様は、ロボット1の制御によるエンドエフェクタ4の移動態様を含んでいてもよい。この場合、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためにエンドエフェクタ4を第1の移動態様で移動させた後に少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、エンドエフェクタ4を第1の移動態様とは異なる第2の移動態様で移動させることで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるようにロボット1を制御するロボット制御信号を生成してもよい。
ロボット1の制御によるエンドエフェクタ4の移動態様は、エンドエフェクタ4の移動の種類を含んでいてもよい。エンドエフェクタ4の移動の種類は、エンドエフェクタ4が並進移動するか又は回転移動するかを示していてもよい。ロボット1の制御によるエンドエフェクタ4の移動態様は、エンドエフェクタ4の移動方向を含んでいてもよい。ロボット1の制御によるエンドエフェクタ4の移動態様は、エンドエフェクタ4の移動量を含んでいてもよい。ロボット1の制御によるエンドエフェクタ4の移動態様は、エンドエフェクタ4の速度(移動速度)を含んでいてもよい。ロボット1の制御によるエンドエフェクタ4の移動態様は、エンドエフェクタ4の加速度(移動加速度)を含んでいてもよい。
エンドエフェクタ4の制御態様は、エンドエフェクタ4の保持力を含んでいてもよい。この場合、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、エンドエフェクタ4の保持力を弱めることで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるようにエンドエフェクタ4を制御するロボット制御信号を生成してもよい。
少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにロボット1が制御された(つまり、ロボット1の制御によるエンドエフェクタ4の移動が制御された)後に少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、信号生成部312は、ロボット1の制御態様を変更することに加えて又は代えて、エンドエフェクタ4の制御態様を変更してもよい。例えば、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにエンドエフェクタ4が回転移動した(つまり、エンドエフェクタ4の姿勢が変化した)後に少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、信号生成部312は、ロボット1の制御態様(つまり、ロボット1の制御によるエンドエフェクタ4の移動態様)を変更することに加えて又は代えて、エンドエフェクタ4の保持力を変更してもよい(例えば、弱めてもよい)。この場合、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなることが期待される。
同様に、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにエンドエフェクタ4が制御された後に少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、信号生成部312は、エンドエフェクタ4の制御態様を変更することに加えて又は代えて、ロボット1の制御態様(つまり、ロボット1の制御によるエンドエフェクタ4の移動態様)を変更してもよい。例えば、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するようにエンドエフェクタ4の保持力が弱められた後に少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には、信号生成部312は、エンドエフェクタ4の制御態様(例えば、保持力)を変更することに加えて又は代えて、ロボット1を制御してエンドエフェクタ4を移動(例えば、回転移動)させてもよい。この場合、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなることが期待される。
制御装置3(特に、信号生成部312)は、処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4の挙動を模擬するシミュレーションを行うことで、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を決定してもよい。
例えば、信号生成部312は、処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを含む保持対象物体群OBG_hの三次元モデルである保持対象物体モデルと、エンドエフェクタ4の三次元モデルであるエンドエフェクタモデルとを、処理実行物体OBJ_tgt及び非処理実行物体OBJ_ntgtを含む保持対象物体群OBG_hを保持しているエンドエフェクタ4が配置された三次元空間を模した仮想的なシミュレーション空間に配置してもよい。更に、信号生成部312は、容器CBの三次元モデルである容器モデルを、仮想的なシミュレーション空間に配置してもよい。更に、信号生成部312は、容器CBに収容された少なくとも一つの対象物体OBJを含む対象物体群OBG_cbの三次元モデルである収容物体モデルを、仮想的なシミュレーション空間に配置してもよい。
この場合、信号生成部312は、シミュレーション空間における保持対象物体モデルとエンドエフェクタモデルと容器モデルと収容物体モデルとの間の相対的な位置関係が、現実空間における保持対象物体群OBG_hとエンドエフェクタ4と容器CBと対象物体群OBG_cbとの間の相対的な位置関係と同一となるように、シミュレーション空間に保持対象物体モデルとエンドエフェクタモデルと容器モデルと収容物体モデルとを配置してもよい。
シミュレーション空間内に保持対象物体モデルを配置するために、信号生成部312は、ステップS23において特定された保持状態を参照してもよい。なぜならば、ステップS23において特定された保持状態は、現実空間における保持対象物体群OBG_hの位置及び姿勢の少なくとも一つを示しているからである。この場合、信号生成部312は、シミュレーション空間内において、ステップS23において特定された保持状態が示す位置に、保持対象物体モデルを配置してもよい。信号生成部312は、シミュレーション空間内において、ステップS23において特定された保持状態が示す姿勢で、保持対象物体モデルを配置してもよい。
シミュレーション空間内にエンドエフェクタモデルを配置するために、信号生成部312は、位置姿勢算出部311を制御して、エンドエフェクタ4の位置及び姿勢の少なくとも一つを算出してもよい。この場合、誤保持検出部313は、図5又は図22のステップS21において取得された画像データIMGと、エンドエフェクタ4の形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、エンドエフェクタ4の位置及び姿勢の少なくとも一つを算出してもよい。尚、エンドエフェクタ4の形状を示すテンプレートモデルを用いたマッチング処理そのものは、上述した対象物体OBJの形状を示すテンプレートモデルを用いたマッチング処理と同一であってもよい。その後、信号生成部312は、シミュレーション空間内において、算出したエンドエフェクタ4の位置と同じ位置に、エンドエフェクタモデルを配置してもよい。信号生成部312は、シミュレーション空間内において、算出したエンドエフェクタ4の姿勢と同じ姿勢で、エンドエフェクタモデルを配置してもよい。
シミュレーション空間内に容器モデルを配置するために、信号生成部312は、容器CBの位置として予め指定された位置に関する情報及び/又は容器CBの姿勢として予め指定された姿勢に関する情報を取得してもよい。但し、信号生成部312は、図5又は図22のステップS11において取得された画像データIMGと、容器CBの形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、容器CBの位置及び姿勢の少なくとも一つを算出してもよい。尚、容器CBの形状を示すテンプレートモデルを用いたマッチング処理そのものは、上述した対象物体OBJの形状を示すテンプレートモデルを用いたマッチング処理と同一であってもよい。その後、信号生成部312は、シミュレーション空間内において、容器CBの位置と同じ位置に、容器モデルを配置してもよい。信号生成部312は、シミュレーション空間内において、容器CBの姿勢と同じ姿勢で、容器モデルを配置してもよい。
シミュレーション空間内に収容物体モデルを配置するために、信号生成部312は、位置姿勢算出部311を制御して、容器CBに収容された対象物体群OBG_cbの位置及び姿勢の少なくとも一つを算出してもよい。この場合、誤保持検出部313は、図5又は図22のステップS11において取得された画像データIMGと、対象物体OBJの形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、容器CBに収容された対象物体群OBG_cbの位置及び姿勢の少なくとも一つを算出してもよい。或いは、誤保持検出部313は、エンドエフェクタ4が処理実行物体OBJ_tgtを保持した後に撮像装置21が容器CBに収容された対象物体群OBG_cbを撮像することで生成された画像データIMGと、対象物体OBJの形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、容器CBに収容された対象物体群OBG_cbの位置及び姿勢の少なくとも一つを算出してもよい。その後、信号生成部312は、シミュレーション空間内において、算出した対象物体群OBG_cbの位置と同じ位置に、収容物体モデルを配置してもよい。信号生成部312は、シミュレーション空間内において、算出した対象物体群OBG_cbの姿勢と同じ姿勢で、収容物体モデルを配置してもよい。
その後、信号生成部312は、シミュレーション空間においてエンドエフェクタモデルを移動させることで、保持対象物体モデル(特に、非処理実行物体OBJ_ntgtの三次元形状を示す保持対象物体モデル)の挙動を推定してもよい。この場合、信号生成部312は、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たすエンドエフェクタモデルの移動態様を、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1の制御態様(つまり、ロボット1の制御によるエンドエフェクタ4の移動態様)として採用してもよい。シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たすエンドエフェクタモデルの移動態様が複数存在する場合には、信号生成部312は、エンドエフェクタモデルの複数の移動態様のうちの少なくとも一つを、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1の制御態様(つまり、ロボット1の制御によるエンドエフェクタ4の移動態様)として採用してもよい。
信号生成部312は、シミュレーション空間においてエンドエフェクタモデルを移動させることに加えて又は代えて、シミュレーション空間においてエンドエフェクタモデルと保持対象物体モデル(特に、非処理実行物体OBJ_ntgtの三次元形状を示す保持対象物体モデル)との間の摩擦力を変更することで、保持対象物体モデル(特に、非処理実行物体OBJ_ntgtの三次元形状を示す保持対象物体モデル)の挙動を推定してもよい。この場合、信号生成部312は、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たす摩擦力を実現するためのエンドエフェクタ4の保持力を、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのエンドエフェクタ4の制御態様として採用してもよい。シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たす摩擦力が複数存在する場合には、信号生成部312は、複数の摩擦力のうちの少なくとも一つを実現するためのエンドエフェクタ4の保持力を、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのエンドエフェクタ4の制御態様として採用してもよい。
尚、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するように、エンドエフェクタモデルを移動させることができず、且つ、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するように、非処理実行物体OBJ_ntgtの保持対象物体モデルとエンドエフェクタモデルとの間の摩擦力を変更することができなかった場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様が、シミュレーションによって発見できなかったと想定される。つまり、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たすエンドエフェクタモデルの移動態様が発見できず、且つ、シミュレーション空間において少なくとも非処理実行物体OBJ_ntgtの保持対象物体モデルが容器モデルに落下するという条件を満たす保持対象物体モデルとエンドエフェクタモデルとの間の摩擦力が発見できなかった場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様が、シミュレーションによって発見できなかったと想定される。この場合、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることができない旨をロボットシステムSYSのユーザ(オペレータ)に通知するためのアラートを出力するように、出力装置35を制御してもよい(ステップS32)。
また、ステップS25bのみならず、ステップS24において少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成する場合においても、信号生成部312は、処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持しているエンドエフェクタ4の挙動を模擬するシミュレーションを行うことで、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を決定してもよい。
このように、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様がシミュレーションによって算出される場合には、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様がシミュレーションによって算出されない場合と比較して、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下する可能性が高くなる。
信号生成部312は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を、複数回変更してもよい。例えば、第1の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、信号生成部312は、第1の制御態様とは異なる第2の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい(1回目の制御態様の変更)。その後、第2の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させる処理が失敗した場合には、信号生成部312は、第1及び第2の制御態様とは異なる第3の制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御することで少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい(3回目の制御態様の変更)。その後、信号生成部312は、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下するまで、ロボット1及びエンドエフェクタ4の少なくとも一つの制御態様の変更を繰り返してもよい。
ロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を一回又は複数回変更した場合であっても少なくとも非処理実行物体OBJ_ntgtが容器CBに落下していないと判定された場合には(ステップS31b:No)、誤保持検出部313は、少なくとも非処理実行物体OBJ_ntgtを容器CBに落下させることができなかった旨をロボットシステムSYSのユーザ(オペレータ)に通知するためのアラートを出力するように、出力装置35を制御してもよい(ステップS32)。
他方、ロボット1及びエンドエフェクタ4の少なくとも一つの制御態様を一回又は複数回変更した結果、少なくとも非処理実行物体OBJ_ntgtが容器CBに落下したと判定された場合には(ステップS31b:Yes)、誤保持検出部313は、アラートを出力するように出力装置35を制御しなくてもよい。この場合、エンドエフェクタ4は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtをリリースするリリース処理を行ってもよい(ステップS33)。
(4-3)第3変形例
第3変形例では、信号生成部312は、図5の又は図22のステップS24において、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。信号生成部312は、図5の又は図22のステップS24において、図5の又は図22のステップS24において生成されたロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御されることで容器CBに非処理実行物体OBJ_ntgtが落下したと仮定した場合に容器CB内に位置する非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。
第3変形例では、信号生成部312は、図5の又は図22のステップS24において、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。信号生成部312は、図5の又は図22のステップS24において、図5の又は図22のステップS24において生成されたロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御されることで容器CBに非処理実行物体OBJ_ntgtが落下したと仮定した場合に容器CB内に位置する非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。
所望姿勢は、容器CB内に位置する非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを示す位置姿勢データPOIを適切に生成することができるという条件を満たす姿勢を含んでいてもよい。
上述したように位置姿勢データPOIがマッチング処理によって生成される場合には、所望姿勢は、非処理実行物体OBJ_ntgtが容器CBに実際に落下した後に行われるマッチング処理によって、容器CB内に位置する非処理実行物体OBJ_ntgtが対象物体OBJとして適切に検出されるという条件を満たす姿勢を含んでいてもよい。一例として、所望姿勢は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっている状況下で行われたマッチング処理によって非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtとして選択される可能性が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっていない状況下で行われたマッチング処理によって非処理実行物体OBJ_ntgtが処理実行物体OBJ_tgtとして選択される可能性よりも高くなるという条件を満たす姿勢を含んでいてもよい。
上述したようにマッチング処理によってマッチングスコアが算出される場合には、所望姿勢は、非処理実行物体OBJ_ntgtが容器CBに実際に落下した後に行われるマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアが、上述したマッチング判定閾値を上回るという条件を満たす姿勢を含んでいてもよい。一例として、所望姿勢は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっている状況下で行われたマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアがマッチング判定閾値を上回る可能性が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっていない状況下で行われたマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアがマッチング判定閾値を上回る可能性よりも高くなるという条件を満たす姿勢を含んでいてもよい。他の一例として、所望姿勢は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっている状況下で行われたマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアが、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となっていない状況下で行われたマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアよりも高くなるという条件を満たす姿勢を含んでいてもよい。
このように容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIを適切に生成することができるという条件を満たす姿勢が所望姿勢として用いられる場合には、非処理実行物体OBJ_ntgtが容器CBに実際に落下した後に行われるマッチング処理によって、容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIが適切に生成される可能性が高くなる。つまり、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となる場合には、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢とならない場合と比較して、容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIが適切に生成される可能性が高くなる。この場合、制御装置3が、容器CBに落下した非処理実行物体OBJ_ntgtを、次にエンドエフェクタ4が保持するべき新たな処理実行物体OBJ_tgtとして選択できる可能性が高くなる。その結果、制御装置3が新たな処理実行物体OBJ_tgtを選択することができなくなる(例えば、マッチング処理によって対象物体OBJが一つも検出されない)可能性が低くなる。つまり、エンドエフェクタ4が対象物体OBJを保持することができる機会がより多く確保される。このため、マッチング処理によって対象物体OBJが一つも検出されないことに起因してマッチング処理をやり直す必要が少なくなるため、ロボットシステムSYSのスループットの向上(タクトタイムの低減)を図ることができる。
「容器CB内に位置する非処理実行物体OBJ_ntgtの姿勢が所望姿勢となる」状態は、「容器CB内に位置する非処理実行物体OBJ_ntgtの所望部位が所望方向を向く」状態を含んでいてもよい。非処理実行物体OBJ_ntgtの所望部位は、予め設定された非処理実行物体OBJ_ntgtの部位を含んでいてもよい。例えば、非処理実行物体OBJ_ntgtの所望部位は、ユーザが指定した非処理実行物体OBJ_ntgtの部位を含んでいてもよい。
非処理実行物体OBJ_ntgtの所望部位は、容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIを生成するために利用可能な非処理実行物体OBJ_ntgtの部位(つまり、対象物体OBJの部位)を含んでいてもよい。例えば、上述したように位置姿勢データPOIを生成するために行われるマッチング処理では、対象物体OBJの一部の形状を示すテンプレートモデルが用いられる。この場合、非処理実行物体OBJ_ntgtの所望部位は、テンプレートモデルに対応する部位を含んでいてもよい。
非処理実行物体OBJ_ntgtの所望部位が向くべき所望方向は、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いている場合に容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIが生成される可能性が、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いていない場合に容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIが生成される可能性よりも高くなるという条件を満たす方向を含んでいてもよい。上述したように位置姿勢データPOIがマッチング処理によって生成される場合には、所望方向は、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いている場合に容器CB内に位置する非処理実行物体OBJ_ntgtが対象物体OBJとして検出される可能性が、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いていない場合に容器CB内に位置する非処理実行物体OBJ_ntgtが対象物体OBJとして検出される可能性よりも高くなるという条件を満たす方向を含んでいてもよい。例えば、所望方向は、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いている場合にマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアがマッチング判定閾値を上回る可能性が、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いていない場合にマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアがマッチング判定閾値を上回る可能性よりも高くなるという条件を満たす方向を含んでいてもよい。例えば、所望方向は、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いている場合にマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアが、非処理実行物体OBJ_ntgtの所望部位が所望方向を向いていない場合にマッチング処理によって算出される非処理実行物体OBJ_ntgtのマッチングスコアよりも高くなるという条件を満たす方向を含んでいてもよい。
第1の例として、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態の一例を示す断面図である図23に示すように、所望方向は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像するために撮像システム2(特に、撮像装置21)が位置することが可能な方向を含んでいてもよい。この場合、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態は、非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)が位置することが可能な方向を向く状態を含んでいてもよい。
第2の例として、図23に示すように、所望方向は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)に対して、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が正対する方向を含んでいてもよい。この場合、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態は、非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)に正対する状態を含んでいてもよい。
第3の例として、図23に示すように、所望方向は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)の撮像領域(言い換えれば、撮像視野)に、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が含まれる方向を含んでいてもよい。この場合、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態は、非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2の撮像領域に含まれる状態を含んでいてもよい。
第4の例として、図23に示すように、所望方向は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtから見て、容器CBに収容された対象物体OBJを保持するためにエンドエフェクタ4が進入する進入口として容器CBに形成された開口APの方向を含んでいてもよい。この場合、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態は、非処理実行物体OBJ_ntgtの所望部位が、容器CBの開口APの方向を向いている状態を含んでいてもよい。
第5の例として、撮像システム2(特に、撮像装置21)が容器CBの上方から容器CBに収容された対象物体OBJを撮像する場合には、図23に示すように、所望方向は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtから見て上向きの方向を含んでいてもよい。この場合、非処理実行物体OBJ_ntgtの所望部位が所望方向を向く状態は、非処理実行物体OBJ_ntgtの所望部位が上向きの方向を向いている状態を含んでいてもよい。
尚、所望姿勢は、容器CB内に位置する非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを示す位置姿勢データPOIを適切に生成することができるという条件に加えて又は代えて、容器CB内に位置する非処理実行物体OBJ_ntgtをエンドエフェクタ4が適切に保持することができるという条件を満たす姿勢を含んでいてもよい。この場合も、「容器CB内に位置する非処理実行物体OBJ_ntgtの姿勢が所望姿勢となる」状態は、「容器CB内に位置する非処理実行物体OBJ_ntgtの所望部位が所望方向を向く」状態を含んでいてもよい。但し、所望姿勢が、容器CB内に位置する非処理実行物体OBJ_ntgtをエンドエフェクタ4が適切に保持することができるという条件を満たす場合には、非処理実行物体OBJ_ntgtの所望部位は、エンドエフェクタ4が保持する非処理実行物体OBJ_ntgtの部位を含んでいてもよい。つまり、非処理実行物体OBJ_ntgtの所望部位は、非処理実行物体OBJ_ntgtのうちの、エンドエフェクタ4が保持するべき少なくとも一部の部位を含んでいてもよい。このようなエンドエフェクタ4が保持する非処理実行物体OBJ_ntgtの部位(つまり、対象物体OBJの部位)は、予め設定されていてもよい。このようなエンドエフェクタ4が保持する非処理実行物体OBJ_ntgtの部位(つまり、対象物体OBJの部位)は、ユーザによって指定されていてもよい。その結果、撮像システム2が、このようなエンドエフェクタ4が保持する非処理実行物体OBJ_ntgtの部位を適切に撮像することができる可能性が高くなる。その結果、容器CBに落下した非処理実行物体OBJ_ntgtが新たな処理実行物体OBJ_tgtとして選択された状況下で、エンドエフェクタ4が、処理実行物体OBJ_ntgtとして新たに選択された非処理実行物体OBJ_ntgtを適切に保持することができる可能性が高くなる。
信号生成部312は、エンドエフェクタ4が保持している対象物体OBJを含む保持対象物体群OBG_hの位置及び姿勢の少なくとも一つと、容器CBに収容されている対象物体OBJを含む対象物体群OBG_cbの位置及び姿勢の少なくとも一つとに基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。一例として、信号生成部312は、第2変形例で説明したシミュレーションによって、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定することで、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように、非処理実行物体OBJ_ntgtを容器CBに落下させるためのロボット制御信号を生成してもよい。例えば、信号生成部312は、シミュレーション空間においてエンドエフェクタモデルを移動させることで、容器モデルに落下した保持対象物体モデル(特に、非処理実行物体OBJ_ntgtの三次元形状を示す保持対象物体モデル)の姿勢が所望姿勢となるという条件を満たすエンドエフェクタモデルの移動態様を、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢とするためのロボット1の制御態様(つまり、ロボット1の制御によるエンドエフェクタ4の移動態様)として採用してもよい。
(4-4)第4変形例
非処理実行物体OBJ_ntgtが容器CBに落下した後には、エンドエフェクタ4は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを容器CBの外においてリリースし、その後、容器CBに収容されている対象物体OBJをエンドエフェクタ4が新たに保持するために、撮像装置21が容器CBに収容されている対象物体OBJを撮像してもよいことは、上述したとおりである。更に、非処理実行物体OBJ_ntgtが容器CBに落下した場合には、撮像装置21は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像し、位置姿勢算出部311は、撮像装置21が非処理実行物体OBJ_ntgtを撮像することで生成した画像データIMGに基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを、新たな処理実行物体OBJ_tgtとして選択する可能性があることもまた、上述したとおりである。
非処理実行物体OBJ_ntgtが容器CBに落下した後には、エンドエフェクタ4は、エンドエフェクタ4が保持している処理実行物体OBJ_tgtを容器CBの外においてリリースし、その後、容器CBに収容されている対象物体OBJをエンドエフェクタ4が新たに保持するために、撮像装置21が容器CBに収容されている対象物体OBJを撮像してもよいことは、上述したとおりである。更に、非処理実行物体OBJ_ntgtが容器CBに落下した場合には、撮像装置21は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像し、位置姿勢算出部311は、撮像装置21が非処理実行物体OBJ_ntgtを撮像することで生成した画像データIMGに基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを、新たな処理実行物体OBJ_tgtとして選択する可能性があることもまた、上述したとおりである。
この場合、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が撮像する前に、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が適切に撮像することができるように、撮像装置21を移動させることで撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成してもよい。その結果、図24に示すように、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が撮像する前に、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が適切に撮像することができるように、撮像装置21の位置及び姿勢の少なくとも一つが変更される。その後、撮像装置21は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像してもよい。
尚、第4変形例における「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が適切に撮像することができる」状態は、「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が所望方向を向く」という第3変形例で説明済みの状態を含んでいてもよい。特に、第4変形例における「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtを撮像装置21が適切に撮像することができる」状態は、「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)が位置することが可能な方向を向く」状態(つまり、第3変形例で説明した第1の例)、「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)に正対する」状態(つまり、第3変形例で説明した第2の例)、及び、「落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtを撮像する撮像システム2(特に、撮像装置21)の撮像領域に含まれる」状態(つまり、第3変形例で説明した第3の例)のうちの少なくとも一つを含んでいてもよい。
この場合、撮像装置21を移動させることで撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成するために、信号生成部312は、まず、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定してもよい。
一例として、信号生成部312は、図5又は図22のステップS23において特定された保持状態(つまり、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態)に基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定してもよい。尚、保持状態が図5又は図22のステップS21において取得された画像データIMGに基づいて特定されるがゆえに、信号生成部312は、図5又は図22のステップS21において取得された画像データIMGに基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定しているとみなしてもよい。
尚、第1変形例で説明したように、容器CB内の所望位置に非処理実行物体OBJ_ntgtが落下するように非処理実行物体OBJ_ntgtが容器CBに落下した場合には、所望位置が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置の推定値として流用されてもよい。この場合、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置を推定しなくてもよい。
同様に、第3変形例で説明したように、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように非処理実行物体OBJ_ntgtが容器CBに落下した場合には、所望姿勢が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢の推定値として流用されてもよい。この場合、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢を推定しなくてもよい。
この場合、信号生成部312は、第2変形例で説明したシミュレーションによって、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定してもよい。具体的には、信号生成部312は、図5又は図22のステップS24において生成された非処理実行物体OBJ_ntgtを落下させるためのロボット制御信号に基づいてロボット1及びエンドエフェクタ4の少なくとも一つが制御された場合の非処理実行物体OBJ_ntgtの挙動を、第2変形例で説明したシミュレーションによって推定することで、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つを推定してもよい。
その後、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの推定結果に基づいて、撮像装置21を移動させることで撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、容器CB内において推定された位置に存在する非処理実行物体OBJ_ntgtの所望部位が所望方向を向くように、撮像装置21を移動させることで撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、容器CB内において推定された姿勢で存在する非処理実行物体OBJ_ntgtの所望部位が所望方向を向くように、撮像装置21を移動させることで撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成してもよい。
その結果、撮像装置21が非処理実行物体OBJ_ntgtを撮像する前に撮像装置21の位置及び姿勢が変更されない場合と比較して、撮像装置21が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgt(つまり、所望部位が所望方向を向いている非処理実行物体OBJ_ntgt)を適切に撮像することができる可能性が高くなる。
その結果、上述したように、非処理実行物体OBJ_ntgtの所望部位が、容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIを生成するために利用可能な非処理実行物体OBJ_ntgtの部位(例えば、テンプレートモデルに対応する部位)を含んでいる場合には、容器CB内に位置する非処理実行物体OBJ_ntgtの位置姿勢データPOIが適切に生成される可能性が高くなる。この場合、制御装置3が、容器CBに落下した非処理実行物体OBJ_ntgtを、次にエンドエフェクタ4が保持するべき新たな処理実行物体OBJ_tgtとして選択できる可能性が高くなる。その結果、制御装置3が新たな処理実行物体OBJ_tgtを選択することができなくなる(つまり、マッチング処理によって対象物体OBJが一つも検出されない)可能性が低くなる。つまり、エンドエフェクタ4が対象物体OBJを保持することができる機会がより多く確保される。このため、マッチング処理によって対象物体OBJが一つも検出されないことに起因してマッチング処理をやり直す必要が少なくなるため、ロボットシステムSYSのスループットの向上を図ることができる。
また、上述したように、非処理実行物体OBJ_ntgtの所望部位が、非処理実行物体OBJ_ntgtのうちの、エンドエフェクタ4が保持するべき少なくとも一部の部位を含んでいる場合には、エンドエフェクタ4は、容器CBに落下した非処理実行物体OBJ_ntgtが新たな処理実行物体OBJ_tgtとして選択された状況下で、エンドエフェクタ4は、新たな処理実行物体OBJ_tgtとして選択された非処理実行物体OBJ_ntgtを適切に保持することができる可能性が高くなる。
尚、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの推定結果に基づいて、撮像装置21を移動させて撮像装置21の位置及び姿勢の少なくとも一つを変更するためのロボット制御信号を生成しなくてもよい。つまり、制御装置3は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの推定結果に基づいて、撮像装置21が非処理実行物体OBJ_ntgtを撮像する前に、撮像装置21の位置及び姿勢の少なくとも一つを変更しなくてもよい。この場合、信号生成部312は、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置及び姿勢の少なくとも一つの推定結果に基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtをエンドエフェクタ4が保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、容器CB内において推定された位置に存在する非処理実行物体OBJ_ntgtをエンドエフェクタ4が保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。例えば、信号生成部312は、容器CB内において推定された姿勢で存在する非処理実行物体OBJ_ntgtをエンドエフェクタ4が保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
尚、第1変形例で説明したように、容器CB内の所望位置に非処理実行物体OBJ_ntgtが落下するように非処理実行物体OBJ_ntgtが容器CBに落下した場合には、所望位置が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの位置の推定値として流用されてもよい。この場合、信号生成部312は、容器CB内の所望位置に非処理実行物体OBJ_ntgtが落下するようにロボット1を制御するために用いられた所望位置に関する情報に基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtをエンドエフェクタ4が保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
同様に、第3変形例で説明したように、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるように非処理実行物体OBJ_ntgtが容器CBに落下した場合には、所望姿勢が、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtの姿勢の推定値として流用されてもよい。この場合、信号生成部312は、落下することで容器CB内に位置する非処理実行物体OBJ_ntgtの姿勢が所望姿勢となるようにロボット1を制御するために用いられた所望姿勢に関する情報に基づいて、落下することによって容器CB内に位置した非処理実行物体OBJ_ntgtをエンドエフェクタ4が保持するようにロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。
(4-5)第5変形例
上述した説明では、制御装置3(特に、誤保持検出部313)は、図5又は図22のステップS22において、エンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像装置21が撮像することで生成される画像データIMGに基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定している。第5変形例では、制御装置3は、図5又は図22のステップS22において、撮像システム2が生成した画像データIMGを用いる方法とは異なる方法を用いて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。
上述した説明では、制御装置3(特に、誤保持検出部313)は、図5又は図22のステップS22において、エンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像装置21が撮像することで生成される画像データIMGに基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定している。第5変形例では、制御装置3は、図5又は図22のステップS22において、撮像システム2が生成した画像データIMGを用いる方法とは異なる方法を用いて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。
更に、上述した説明では、制御装置3(特に、誤保持検出部313)は、図5又は図22のステップS23において、エンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像装置21が撮像することで生成される画像データIMGに基づいて、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定している。第5変形例では、制御装置3は、図5又は図22のステップS23において、撮像システム2が生成した画像データIMGを用いる方法とは異なる方法を用いて、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定してもよい。
第1の例として、制御装置3は、撮像システム2とは異なる撮像システム91a(図18参照)がエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像することで生成される画像データに基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。尚、撮像システム91aが生成した画像データに基づいてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定する処理は、撮像システム2が生成した画像データIMGに基づいてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定する処理と同一であってもよい。このため、撮像システム91aが生成した画像データに基づいてエンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定する処理の詳細な説明は省略する。
撮像システム91aがエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像する場合には、撮像システム91aがエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像する前に、制御装置3は、撮像システム91aの撮像範囲(撮像画角)にエンドエフェクタ4の少なくとも一部(特に、エンドエフェクタ4のうちの対象物体OBJを保持するための部位)が含まれるように、撮像システム91aに対してエンドエフェクタ4を移動させてもよい。その結果、撮像システム91aは、エンドエフェクタ4に保持されている保持対象物体群OBG_hを適切に撮像することができる。但し、撮像システム91aの撮像範囲(撮像画角)に既にエンドエフェクタ4の少なくとも一部(特に、エンドエフェクタ4のうちの対象物体OBJを保持するための部位)が含まれる場合には、制御装置3は、撮像システム91aに対してエンドエフェクタ4を移動させなくてもよい。
尚、上述したようにロボットアーム12に設けられた撮像システム2がエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像する場合には、撮像システム2の撮像範囲(撮像画角)にエンドエフェクタ4の少なくとも一部(特に、エンドエフェクタ4のうちの対象物体OBJを保持するための部位)が含まれるように撮像システム2とエンドエフェクタ4とが位置合わせされていれば、その後は、制御装置3は、撮像システム2の撮像範囲(撮像画角)にエンドエフェクタ4の少なくとも一部(特に、エンドエフェクタ4のうちの対象物体OBJを保持するための部位)が含まれるように、エンドエフェクタ4を移動させなくてもよくなる。このため、スループットが向上(タクトタイムが低減)する。
第2の例として、制御装置3は、撮像システム2とは異なる撮像システム91a(図18参照)がエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像することで生成される画像データに基づいて、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定してもよい。尚、撮像システム91aが生成した画像データに基づいてエンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定する処理は、撮像システム2が生成した画像データIMGに基づいてエンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定する処理と同一であってもよい。このため、撮像システム91aが生成した画像データに基づいてエンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定する処理の詳細な説明は省略する。
尚、撮像システム91aがエンドエフェクタ4に保持されている保持対象物体群OBG_hを撮像する場合には、撮像システム91aは、エンドエフェクタ4に保持されている保持対象物体群OBG_hを計測可能な計測装置として機能しているとみなしてもよい。例えば、撮像システム91aは、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定するために利用可能な計測装置として機能しているとみなしてもよい。例えば、撮像システム91aは、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定するために利用可能な計測装置として機能しているとみなしてもよい。
第3の例として、制御装置3は、ロボット1が備えるロボット制御装置13から、エンドエフェクタ4の基準点TCP(例えば、ツールセンターポイント)の位置及び姿勢の少なくとも一つに関する情報を取得し、取得した情報に基づいて、保持対象物体群OBG_hの保持状態(特に、エンドエフェクタ4が直接的に保持しているはずであろう処理実行物体OBJ_tgtの保持状態)を特定(推定)してもよい。
例えば、エンドエフェクタ4が対象物体OBJを保持する場合のエンドエフェクタ4と対象物体OBJとの間の相対的な位置関係は、上述したように、保持目標位置関係として予め登録されていてもよい。この場合、エンドエフェクタ4と処理実行物体OBJ_tgtとの間の相対的な位置関係が予め登録された保持目標位置関係と一致するタイミングで、エンドエフェクタ4は、処理実行物体OBJ_tgtを保持する。このため、エンドエフェクタ4とエンドエフェクタ4が保持している処理実行物体OBJ_tgtとの間の相対的な位置関係は、予め登録された保持目標位置関係と一致している可能性が高い。このため、制御装置3は、エンドエフェクタ4の基準点TCPの位置及び姿勢の少なくとも一つに関する情報と、予め登録された保持目標位置関係に関する情報とに基づいて、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの保持状態(例えば、位置及び姿勢の少なくとも一つ)を推定してもよい。
例えば、エンドエフェクタ4が対象物体OBJを保持する場合のエンドエフェクタ4と対象物体OBJとの間の相対的な姿勢関係は、上述したように、保持目標姿勢関係として予め登録されていてもよい。この場合、エンドエフェクタ4と処理実行物体OBJ_tgtとの間の相対的な姿勢関係が予め登録された保持目標姿勢関係と一致するタイミングで、エンドエフェクタ4は、処理実行物体OBJ_tgtを保持する。このため、エンドエフェクタ4とエンドエフェクタ4が保持している処理実行物体OBJ_tgtとの間の相対的な姿勢関係は、予め登録された保持目標姿勢関係と一致している可能性が高い。このため、制御装置3は、エンドエフェクタ4の基準点TCPの位置及び姿勢の少なくとも一つに関する情報と、予め登録された保持目標姿勢関係に関する情報とに基づいて、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの保持状態(例えば、位置及び姿勢の少なくとも一つ)を特定してもよい。
第4の例として、制御装置3は、ロボット1が備えている重量センサ(言い換えれば、荷重センサ)による検出結果に基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。一例として、重量センサとして、エンドエフェクタ4が保持している対象物体OBJの重量の変化を検出可能な重量センサが用いられてもよい。このような重量センサは、ロボットアーム12のジョイント122に配置されていてもよいし、ロボットアーム12のフランジ面(具体的には、エンドエフェクタ4が取り付けられるフランジ面)とエンドエフェクタ4との間に配置されていてもよいし、エンドエフェクタ4に配置されていてもよい。エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持している場合における重量センサの検出結果である重量の検出値は、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持していない場合における重量センサの検出結果である重量の検出値よりも重くなるはずである。このため、制御装置3は、重量センサの検出結果に基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを精度よく判定することができる。
尚、制御装置3は、ロボット1が備えている重量センサ(言い換えれば、荷重センサ)による検出結果に基づいて、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの保持状態を特定してもよい。
尚、ロボット1が備えている重量センサは、エンドエフェクタ4に保持されている保持対象物体群OBG_hを計測可能な計測装置として機能しているとみなしてもよい。例えば、ロボット1が備えている重量センサは、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定するために利用可能な計測装置として機能しているとみなしてもよい。例えば、ロボット1が備えている重量センサは、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定するために利用可能な計測装置として機能しているとみなしてもよい。
第5の例として、制御装置3は、容器CBに収容されている対象物体群OBG_cbの重量を計測可能な重量センサ92a(図19参照)による検出結果に基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定してもよい。一例として、エンドエフェクタ4が容器CBから処理実行物体OBJ_tgtと共に非処理実行物体OBJ_ntgtを保持している場合における重量センサ92aの検出結果である重量の検出値は、エンドエフェクタ4が容器CBから処理実行物体OBJ_tgtを保持したものの非処理実行物体OBJ_ntgtを保持しなかった場合における重量センサ92aの検出結果である重量の検出値よりも軽くなるはずである。このため、制御装置3は、重量センサ92aの検出結果に基づいて、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを精度よく判定することができる。
尚、制御装置3は、容器CBに収容されている対象物体群OBG_cbの重量を計測可能な重量センサ92aによる検出結果に基づいて、エンドエフェクタ4が保持している処理実行物体OBJ_tgtの保持状態を特定してもよい。
尚、重量センサ92aは、エンドエフェクタ4に保持されている保持対象物体群OBG_hを計測可能な計測装置として機能しているとみなしてもよい。例えば、重量センサ92aは、エンドエフェクタ4が非処理実行物体OBJ_ntgtを保持しているか否かを判定するために利用可能な計測装置として機能しているとみなしてもよい。例えば、重量センサ92aは、エンドエフェクタ4に保持されている保持対象物体群OBG_hの保持状態を特定するために利用可能な計測装置として機能しているとみなしてもよい。
(4-6)第6変形例
誤保持検出部313は、ステップS23として、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている保持対象物体群OBGの保持状態を特定してもよいことは、上述したとおりである。ここで、保持状態は、エンドエフェクタ4により保持された物体の種類を含んでいてもよい。容器CB(載置装置T)には、複数の対象物体OBJに加えて、対象物体OBJとは種類の異なる少なくとも一つの物体(以降、必要に応じて異種物体と称されてもよい)が偶発的又は意図的に収容されていることがある。この場合、上述のステップS13において、エンドエフェクタ4が対象物体OBJを保持するための保持動作を行った場合、エンドエフェクタ4で異種物体を保持してしまうことがある。特に、異種物体と対象物体OBJ(例えば、処理実行物体OBJ_tgt)との形状差が小さくなるほど、意図せず、エンドエフェクタ4で異種物体を保持する可能性が高くなる。エンドエフェクタ4で保持された異種物体をリリース処理した場合、所望のリリース処理ができない可能性が高い。例えば、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)に異種物体が衝突し、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)が傷つく可能性がある。
この場合、誤保持検出部313は、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている対象物体OBJの保持状態として、エンドエフェクタ4に保持されている物体が対象物体OBJ(例えば、処理実行物体OBJ_tgt)か異種物体かを特定(判別)することによって、エンドエフェクタ4に保持されている物体の種類を特定してもよい。尚、エンドエフェクタ4により保持された物体の種類は、エンドエフェクタ4に保持されている物体の保持状態と称されてもよい。また、エンドエフェクタ4により保持された物体の種類は、エンドエフェクタ4による物体(例えば、処理実行物体OBJ_tgt及び異種物体の少なくとも一方)の保持態様と称されてもよい。
例えば、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGに基づく、上述のマッチング処理を行うことで、エンドエフェクタ4に保持されている物体が処理実行物体OBJ_tgtか異種物体かを特定(判別)してもよい。一例として、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGと、対象物体OBJ(処理実行物体OBJ_tgt)の少なくとも一部の形状を示すテンプレートモデル及び異種物体の少なくとも一部の形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、エンドエフェクタ4に保持されている物体が処理実行物体OBJ_tgtか異種物体かを特定(判別)してもよい。
その後、信号生成部312は、ステップS23において特定(判別)された、エンドエフェクタ4により保持された物体の種類に基づいて、ロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい(ステップS24)。エンドエフェクタ4により保持された物体が異種物体と特定された場合、信号生成部312は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtのリリース処理を行うためにロボット1及びエンドエフェクタ4の少なくとも一つを制御する制御態様とは異なる制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、一例として、信号生成部312は、エンドエフェクタ4が保持している異種物体が容器CBとは異なる載置装置T(例えば、容器CBとは異なる容器)に配置されるように(例えば、落下するように)ロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。尚、ステップS23において、エンドエフェクタ4により保持された物体が対象物体OBJ(例えば、処理実行物体OBJ)と特定された場合の処理については上述のとおりであるため、その説明を省略する。
誤保持検出部313は、ステップS23として、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている保持対象物体群OBGの保持状態を特定してもよいことは、上述したとおりである。ここで、保持状態は、エンドエフェクタ4により保持された物体の種類を含んでいてもよい。容器CB(載置装置T)には、複数の対象物体OBJに加えて、対象物体OBJとは種類の異なる少なくとも一つの物体(以降、必要に応じて異種物体と称されてもよい)が偶発的又は意図的に収容されていることがある。この場合、上述のステップS13において、エンドエフェクタ4が対象物体OBJを保持するための保持動作を行った場合、エンドエフェクタ4で異種物体を保持してしまうことがある。特に、異種物体と対象物体OBJ(例えば、処理実行物体OBJ_tgt)との形状差が小さくなるほど、意図せず、エンドエフェクタ4で異種物体を保持する可能性が高くなる。エンドエフェクタ4で保持された異種物体をリリース処理した場合、所望のリリース処理ができない可能性が高い。例えば、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)に異種物体が衝突し、処理実行物体OBJ_tgtがリリースされるべき物体(例えば、載置装置T)が傷つく可能性がある。
この場合、誤保持検出部313は、ステップS21において取得された画像データIMGに基づいて、エンドエフェクタ4に保持されている対象物体OBJの保持状態として、エンドエフェクタ4に保持されている物体が対象物体OBJ(例えば、処理実行物体OBJ_tgt)か異種物体かを特定(判別)することによって、エンドエフェクタ4に保持されている物体の種類を特定してもよい。尚、エンドエフェクタ4により保持された物体の種類は、エンドエフェクタ4に保持されている物体の保持状態と称されてもよい。また、エンドエフェクタ4により保持された物体の種類は、エンドエフェクタ4による物体(例えば、処理実行物体OBJ_tgt及び異種物体の少なくとも一方)の保持態様と称されてもよい。
例えば、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGに基づく、上述のマッチング処理を行うことで、エンドエフェクタ4に保持されている物体が処理実行物体OBJ_tgtか異種物体かを特定(判別)してもよい。一例として、誤保持検出部313は、位置姿勢算出部311を制御してステップS21において取得された画像データIMGと、対象物体OBJ(処理実行物体OBJ_tgt)の少なくとも一部の形状を示すテンプレートモデル及び異種物体の少なくとも一部の形状を示すテンプレートモデルとを用いたマッチング処理を行うことで、エンドエフェクタ4に保持されている物体が処理実行物体OBJ_tgtか異種物体かを特定(判別)してもよい。
その後、信号生成部312は、ステップS23において特定(判別)された、エンドエフェクタ4により保持された物体の種類に基づいて、ロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい(ステップS24)。エンドエフェクタ4により保持された物体が異種物体と特定された場合、信号生成部312は、エンドエフェクタ4が保持した処理実行物体OBJ_tgtのリリース処理を行うためにロボット1及びエンドエフェクタ4の少なくとも一つを制御する制御態様とは異なる制御態様でロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。この場合、一例として、信号生成部312は、エンドエフェクタ4が保持している異種物体が容器CBとは異なる載置装置T(例えば、容器CBとは異なる容器)に配置されるように(例えば、落下するように)ロボット1及びエンドエフェクタ4の少なくとも一つを制御するためのロボット制御信号を生成してもよい。尚、ステップS23において、エンドエフェクタ4により保持された物体が対象物体OBJ(例えば、処理実行物体OBJ)と特定された場合の処理については上述のとおりであるため、その説明を省略する。
以上の処理により、載置装置T(例えば、容器CB)に複数の対象物体OBJと共に異種物体が収容されていたとしても、異種物体を選別して、対象物体OBJに対する所望の処理(例えば、所望のリリース処理)を実行することができる。
尚、ステップS23において、エンドエフェクタ4により保持された物体が異種物体と特定された場合、信号生成部312が、上述のロボット制御信号を生成することに加えて又は代えて、誤保持検出部313が、エンドエフェクタ4により保持された物体が異種物体であることをユーザに通知するためのアラートを出力するように出力装置35を制御してもよい。
尚、ステップS23において、エンドエフェクタ4により保持された物体が異種物体と特定された場合、信号生成部312が、上述のロボット制御信号を生成することに加えて又は代えて、誤保持検出部313が、エンドエフェクタ4により保持された物体が異種物体であることをユーザに通知するためのアラートを出力するように出力装置35を制御してもよい。
(4-7)その他の変形例
(4-7-1)ロボット制御処理の変形例
上述した説明では、制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御している。制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御することに加えて又は代えて、ロボット1とは異なる他のロボットを制御してもよい。例えば、制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、対象物体OBJを保持可能であって且つエンドエフェクタ4とは異なる他のエンドエフェクタを備える他のロボットを制御してもよい。この場合、制御装置3は、他のロボットが備える他のエンドエフェクタが、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを保持し、その後、他のロボットが備える他のエンドエフェクタが、保持した非処理実行物体OBJ_ntgtを容器CBに戻す(例えば、リリースする)ように、他のロボットを制御してもよい。
(4-7-1)ロボット制御処理の変形例
上述した説明では、制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御している。制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、ロボット1及びエンドエフェクタ4の少なくとも一つを制御することに加えて又は代えて、ロボット1とは異なる他のロボットを制御してもよい。例えば、制御装置3は、非処理実行物体OBJ_ntgtが容器CBに落下するように、対象物体OBJを保持可能であって且つエンドエフェクタ4とは異なる他のエンドエフェクタを備える他のロボットを制御してもよい。この場合、制御装置3は、他のロボットが備える他のエンドエフェクタが、エンドエフェクタ4が保持している非処理実行物体OBJ_ntgtを保持し、その後、他のロボットが備える他のエンドエフェクタが、保持した非処理実行物体OBJ_ntgtを容器CBに戻す(例えば、リリースする)ように、他のロボットを制御してもよい。
(4-7-2)ロボット1の変形例
上述した説明では、ロボットアーム12には、配置処理(例えば、保持処理及びリリース処理の少なくとも一つ)を行うエンドエフェクタ4(例えば、ハンドグリッパー又はバキュームグリッパー)が取り付けられている。しかしながら、エンドエフェクタ4は、配置処理(例えば、保持処理及びリリース処理の少なくとも一つ)を行う装置に限られず、対象物体OBJに対して他の処理を行う装置であってもよい。
上述した説明では、ロボットアーム12には、配置処理(例えば、保持処理及びリリース処理の少なくとも一つ)を行うエンドエフェクタ4(例えば、ハンドグリッパー又はバキュームグリッパー)が取り付けられている。しかしながら、エンドエフェクタ4は、配置処理(例えば、保持処理及びリリース処理の少なくとも一つ)を行う装置に限られず、対象物体OBJに対して他の処理を行う装置であってもよい。
一例として、ロボットアーム12には、エンドエフェクタ4の一例としての、対象物体OBJを加工するための加工装置が取り付けられていてもよい。加工装置は、対象物体OBJに新たな造形物を付加する付加加工、対象物体OBJの一部を除去する除去加工、二つの対象物体OBJを接合する溶接加工及び対象物体OBJを切断する切断加工のうちの少なくとも一つを行ってもよい。加工装置は、切削工具などの工具を用いて対象物体OBJを加工してもよい。この場合、工具を含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)を対象物体OBJに照射することで対象物体OBJを加工してもよい。この場合、エネルギービームを対象物体OBJに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
エンドエフェクタ4の一例としての加工装置は、対象物体OBJに部品をはんだ付けするはんだ付け加工を行ってもよい。加工装置は、はんだごてを用いて対象物体OBJに部品をはんだ付けしてもよい。この場合、はんだごてを含む加工装置が、ロボットアーム12に取り付けられていてもよい。或いは、加工装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)をはんだに照射することで対象物体OBJに部品をはんだ付けしてもよい。この場合、エネルギービームを対象物体OBJに照射する照射装置を含む加工装置が、ロボットアーム12に取り付けられていてもよい。
他の一例として、ロボットアーム12には、エンドエフェクタ4の一例としての、対象物体OBJを計測するための計測装置が取り付けられていてもよい。計測装置は、対象物体OBJの特性を計測可能であってもよい。対象物体OBJの特性の一例として、対象物体OBJの形状、対象物体OBJのサイズ、計測装置から対象物体OBJまでの距離、対象物体OBJの反射率、対象物体OBJの透過率及び対象物体OBJの温度の少なくとも一つがあげられる。計測装置は、既存の接触式の計測装置であってもよい。例えば、計測装置は、タッチプローブを用いて対象物体OBJを計測してもよい。この場合、タッチプローブを含む計測装置が、ロボットアーム12に取り付けられてもよい。或いは、計測装置は、既存の非接触式の計測装置であってもよい。例えば、計測装置は、エネルギービーム(例えば、光、電磁波及び荷電粒子ビーム)を対象物体OBJに照射することで対象物体OBJを計測してもよい。この場合、エネルギービームを対象物体OBJに照射する照射装置を含む計測装置が、ロボットアーム12に取り付けられていてもよい。尚、計測装置は、1又は複数の単眼カメラを備える撮像装置であってもよい。一例として、計測装置は、2つの単眼カメラを備えるステレオカメラであってもよい。
ロボットアーム12にエンドエフェクタ4の一例としての加工装置及び計測装置の少なくとも一方が取り付けられている場合には、制御装置3は、加工装置及び計測装置の少なくとも一方の動作を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置が備える工具の回転を制御するための制御信号を生成してもよい。例えば、制御装置3は、加工装置及び計測装置の少なくとも一方が備える照射装置によるエネルギービームのオン・オフを制御するための制御信号を生成してもよい。
他の一例として、ロボットアーム12には、エンドエフェクタ4の一例としての、吐出装置が取り付けられていてもよい。例えば、吐出装置は、接着剤、シール材、塗料及びはんだの少なくとも一つを吐出してもよい。吐出装置は、対象物体OBJに向けて接着剤、シール材、塗料及びはんだの少なくとも一つを吐出してもよい。例えば、制御装置3は、吐出装置からの吐出のオン・オフ、及び吐出量の少なくとも一方を制御するための制御信号を生成してもよい。尚、接着剤、シール材、塗料及びはんだの少なくとも一つを対象物体OBJに吐出することは、対象物体OBJを加工するとも言えるため、吐出装置は、加工装置とも称されてもよい。
(4-7-3)撮像システム2の変形例
上述した説明では、撮像システム2は、照明装置23を備えている。この場合、照明装置23は、撮像装置21と一体化されていてもよいし、撮像装置21とは別の装置であってもよい。照明装置23が撮像装置21とは別の装置である場合には、撮像システム2ではなく、ロボット1が照明装置23を備えていてもよい。つまり、撮像システム2とは独立して、照明装置23がロボット1に取り付けられていてもよい。
上述した説明では、撮像システム2は、照明装置23を備えている。この場合、照明装置23は、撮像装置21と一体化されていてもよいし、撮像装置21とは別の装置であってもよい。照明装置23が撮像装置21とは別の装置である場合には、撮像システム2ではなく、ロボット1が照明装置23を備えていてもよい。つまり、撮像システム2とは独立して、照明装置23がロボット1に取り付けられていてもよい。
上述した説明では、撮像システム2は、単一の撮像装置21を備えている。しかしながら、撮像システム2は、複数の撮像装置21を備えていてもよい。例えば、撮像システム2は、単眼カメラである第1撮像装置21と、ステレオカメラである第2撮像装置21とを備えていてもよい。この場合、制御装置3は、第1撮像装置21が生成した画像データIMGを用いた2Dマッチング処理と、第2撮像装置21が生成した画像データIMGに基づいて生成される三次元位置データを用いた3Dマッチング処理との少なくとも一つを行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。
或いは、ステレオカメラである単一の撮像装置21を撮像システム2が備えている場合であっても、制御装置3は、撮像装置21が生成した画像データIMGを用いた2Dマッチング処理と、撮像装置21が生成した画像データIMGに基づいて生成される三次元位置データを用いた3Dマッチング処理との少なくとも一つを行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。具体的には、制御装置3は、撮像装置21が備える一つの単眼カメラが生成した画像データIMGを用いた2Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。更に、制御装置3は、撮像装置21が備える二つの単眼カメラが生成した画像データIMGに基づいて三次元位置データを生成し、三次元位置データを用いた3Dマッチング処理を行うことで、対象物体OBJの位置及び姿勢の少なくとも一つを算出してもよい。
上述した説明では、撮像システム2が、ロボットアーム12を備えるロボット1に設けられている。しかしながら、撮像システム2は、ロボットアーム12を備えていないロボットに設けられていてもよい。例えば、撮像システム2は、対象物体OBJの上方から撮像システム2を吊り下げることが可能な支持装置を備えるロボット1に設けられていてもよい。この場合、撮像システム2は、支持装置に設けられていてもよい。支持装置は、支持面Sから上方に延びる複数の脚部材と、複数の脚部材の上端又はその近傍部を介して複数の脚部材を連結する梁部材とを備えていてもよい。例えば、ロボット1は、支持装置を移動させることが可能であってもよい。
(4-7-4)撮像システム2の代替手段
図25に示すように、ロボットシステムSYSは、対象物体OBJを撮像可能な撮像システム2に加えて又は代えて、対象物体OBJまでの距離及び三次元形状の少なくとも一つを計測可能な計測システム5を備えていてもよい。この場合、制御装置3(特に、位置姿勢算出部311)は、対象物体OBJまでの距離及び三次元形状の少なくとも一つの計測結果に基づいて、3Dマッチング処理に利用可能な三次元位置データを生成してもよい。その後は、撮像システム2が生成した画像データIMGから三次元位置データが生成される場合と同様に、制御装置3(特に、位置姿勢算出部311)は、三次元位置データを用いた3Dマッチング処理を行ってもよい。
図25に示すように、ロボットシステムSYSは、対象物体OBJを撮像可能な撮像システム2に加えて又は代えて、対象物体OBJまでの距離及び三次元形状の少なくとも一つを計測可能な計測システム5を備えていてもよい。この場合、制御装置3(特に、位置姿勢算出部311)は、対象物体OBJまでの距離及び三次元形状の少なくとも一つの計測結果に基づいて、3Dマッチング処理に利用可能な三次元位置データを生成してもよい。その後は、撮像システム2が生成した画像データIMGから三次元位置データが生成される場合と同様に、制御装置3(特に、位置姿勢算出部311)は、三次元位置データを用いた3Dマッチング処理を行ってもよい。
計測システム5は、光学的に対象物体OBJまでの距離及び三次元形状の少なくとも一つを計測可能な既存のシステムであってもよい。例えば、計測システム5は、非接触で対象物体OBJまでの距離及び三次元形状の少なくとも一つを計測可能な既存のシステムであってもよい。例えば、計測システム5は、対象物体OBJに計測用の電磁波を照射し、且つ、電磁波が照射された対象物体OBJから計測システム5に向かって戻ってくる電磁波を検出することで、光学的に対象物体OBJまでの距離及び三次元形状の少なくとも一つを計測可能であってもよい。計測用の電磁波は、光(この場合は、対象物体OBJに照射される光は計測光と称されてもよい)であってもよいし、電波(この場合、対象物体OBJに照射される電波は計測波と称されてもよい)であってもよい。このような計測システム5の一例として、TOF(Time Of Flight)方式の干渉計、FMCW(Frequency Modulated Continuous Wave)方式の干渉計、周波数軸上で等間隔に並んだ周波数成分を含む光(光周波数コム)を計測光として用いる光コム方式の干渉計、三角測量方式の計測器、及びミリ波を計測波として用いるミリ波レーダの少なくとも一つがあげられる。尚、TOF方式の計測器及びFMCW方式の計測器の少なくとも一方は、LiDAR(Light Detection And Ranging)と称されてもよい。計測システム5がこのような計測センサである場合には、制御装置3(特に、位置姿勢算出部311)は、計測センサによる対象物体OBJの計測結果に基づいて、点群データに相当する三次元位置データを生成してもよい。その後は、撮像システム2が生成した画像データIMGから三次元位置データが生成される場合と同様に、制御装置3(特に、位置姿勢算出部311)は、三次元位置データを用いた3Dマッチング処理を行ってもよい。尚、計測システム5は、計測装置と称されてもよいし、計測センサと称されてもよい。
尚、撮像システム2もまた、撮像装置21のそれぞれが備える撮像素子を用いて対象物体OBJからの戻り光を検出することで、対象物体OBJを撮像している。つまり、撮像システム2及び計測システム5のいずれもが、対象物体OBJからの戻り光を検出していると言える。このため、撮像システム2及び計測システム5を、光検出システムと総称してもよい。
(5)付記
以上説明した実施形態に関して、更に以下の付記を開示する。
[付記A1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置部材に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記A2]
前記第2制御信号は、前記低い位置に位置した前記少なくとも第4対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号、及び前記低い位置に位置した前記保持装置から前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号の少なくとも一方の信号を含む
付記A1に記載の制御装置。
[付記A3]
前記第2制御信号に基づき前記少なくとも第4対象物体が落下を開始する時の、前記載置部材に載置されている複数の前記対象物体の少なくとも一部の高さは、前記第1制御信号に基づき前記少なくとも第2対象物体が落下を開始する時の、前記載置部材に載置されている複数の前記対象物体の少なくとも一部の高さよりも低い
付記A1又はA2に記載の制御装置。
[付記A4]
前記少なくとも第4対象物体が落下を開始する時の、前記載置部材に載置されている前記対象物体の数は、前記少なくとも第2対象物体が落下を開始する時の、前記載置部材に載置されている前記対象物体の数よりも少ない
付記A1からA3のいずれか一項に記載の制御装置。
[付記A5]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムで撮像した撮像結果に基づいて、前記少なくとも第2対象物体が前記載置部材に落下を開始するための第1落下高さを決定し、
前記第1制御信号は、決定された前記第1落下高さから、前記少なくとも第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A1からA4のいずれか一項に記載の制御装置。
[付記A6]
前記第1落下高さは、前記少なくとも第2対象物体が落下を開始する時の前記第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1及び第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第2対象物体が落下を開始する時の前記保持装置の高さである
付記A5に記載の制御装置。
[付記A7]
前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて、前記第1対象物体を保持するように前記保持装置が制御され、
前記第1落下高さを決定するために用いられる前記撮像結果は、前記対象物体群を前記撮像システムにより撮像した前記撮像結果である
付記A5又はA6に記載の制御装置。
[付記A8]
前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む第1対象物体群を撮像システムにより撮像した撮像結果に基づいて、前記第1対象物体を保持するように前記保持装置が制御され、
前記第2制御信号は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む第2対象物体群を撮像システムにより撮像した撮像結果に基づいて前記第2対象物体群のうちの前記第3対象物体を前記保持装置で保持した時に前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記低い位置から、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A1からA7のいずれか一項に記載の制御装置。
[付記A9]
前記第2対象物体群の高さは、前記第1対象物体群の高さよりも低い
付記A8に記載の制御装置。
[付記A10]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した撮像結果に基づいて、前記少なくとも第4対象物体が前記載置部材に落下を開始するための第2落下高さを決定し、
前記第2制御信号は、決定された前記第2落下高さから、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A8又はA9に記載の制御装置。
[付記A11]
前記第2落下高さは、前記少なくとも第4対象物体が落下を開始する時の前記第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3及び第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第4対象物体が落下を開始する時の前記保持装置の高さである
付記A10に記載の制御装置。
[付記A12]
前記第2落下高さを決定するために用いられる前記撮像結果は、前記第2対象物体群を前記撮像システムにより撮像した前記撮像結果である
付記A10又はA11に記載の制御装置。
[付記A13]
前記第2対象物体が前記第1対象物体と共に前記保持装置で保持された状態は、前記第2対象物体が前記保持装置で間接的又は直接的に保持された状態を含み、
前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された状態は、前記第4対象物体が前記保持装置で間接的又は直接的に保持された状態を含む
付記A1からA12のいずれか一項に記載の制御装置。
[付記A14]
前記第2対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記第2対象物体が前記保持装置で直接的に保持された状態は、前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態であり、
前記第4対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第3対象物体によって前記第4対象物体が保持された状態であり、
前記第4対象物体が前記保持装置で直接的に保持された状態は、前記第3対象物体及び前記第4対象物体のそれぞれが前記保持装置によって直接保持された状態である
付記A13に記載の制御装置。
[付記A15]
前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態の場合、
前記演算装置は、前記第1対象物体が前記保持装置で保持された状態で前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14に記載の制御装置。
[付記A16]
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記ロボットを制御するための信号を含む
付記A15に記載の制御装置。
[付記A17]
前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
付記A16に記載の制御装置。
[付記A18]
前記第1制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第1対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
付記A17に記載の制御装置。
[付記A19]
前記第1対象物体の端部は、前記第1対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
付記A18に記載の制御装置。
[付記A20]
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置の保持力を低下させることによって前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記保持装置を制御するための信号を含む
付記A15からA19のいずれか一項に記載の制御装置。
[付記A21]
前記保持装置に保持された前記第3対象物体によって前記第4対象物体が保持された状態の場合、
前記演算装置は、前記第3対象物体が前記保持装置で保持された状態で前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第3制御信号として生成する
付記A14からA20のいずれか一項に記載の制御装置。
[付記A22]
前記第3制御信号は、前記第3対象物体を保持した状態で前記保持装置を移動させることによって前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記ロボットを制御するための信号を含む
付記A21に記載の制御装置。
[付記A23]
前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
付記A22に記載の制御装置。
[付記A24]
前記第3制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第3対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
付記A23に記載の制御装置。
[付記A25]
前記第3対象物体の端部は、前記第3対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
付記A24に記載の制御装置。
[付記A26]
前記第3制御信号は、前記第3対象物体を保持した状態で前記保持装置の保持力を低下させることによって前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記保持装置を制御するための信号を含む
付記A21からA25のいずれか一項に記載の制御装置。
[付記A27]
前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記演算装置は、前記第1対象物体及び前記第2対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14からA26のいずれか一項に記載の制御装置。
[付記A28]
前記第3対象物体及び前記第4対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記演算装置は、前記第3対象物体及び前記第4対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14からA27のいずれか一項に記載の制御装置。
[付記A29]
前記第1制御信号は、前記少なくとも第2対象物体が前記載置部材に落下ように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み、
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方を制御しても前記少なくとも第2対象物体が前記載置部材に落下していない場合に、前記少なくとも第2対象物体が前記載置部材に落下するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
付記A1からA28のいずれか一項に記載の制御装置。
[付記A30]
前記第1制御信号は、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第3信号を含み、
前記演算装置は、前記第3信号に基づき前記ロボット及び前記保持装置の少なくとも一方を制御しても前記少なくとも第4対象物体が前記載置部材に落下していない場合に、前記少なくとも第4対象物体が前記載置部材に落下するように、前記第3信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第4信号を前記第1制御信号の一部の信号として生成する
付記A1からA29のいずれか一項に記載の制御装置。
[付記A31]
前記制御態様は、前記ロボットの制御態様及び前記保持装置の制御態様の少なくとも一方を含む
付記A29又はA30に記載の制御装置。
[付記A32]
前記演算装置は、前記第1対象物体を前記保持装置で保持した後に、前記第1制御信号を生成する
付記A1からA31のいずれか一項に記載の制御装置。
[付記A33]
前記演算装置は、計測装置の計測結果に基づいて、前記第1制御信号を生成する
付記A32に記載の制御装置。
[付記A34]
前記演算装置は、前記計測結果に基づいて、落下することによって前記載置部材に位置した前記少なくとも第2対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記A33に記載の制御装置。
[付記A35]
前記所望姿勢は、落下することによって前記載置部材に位置した前記少なくとも第2対象物体の所望部位が所望方向を向く姿勢を含む
付記A34に記載の制御装置。
[付記A36]
前記演算装置は、前記第3対象物体を前記保持装置で保持した後に、前記第2制御信号を生成する
付記A1からA35のいずれか一項に記載の制御装置。
[付記A37]
前記演算装置は、計測装置の計測結果に基づいて、前記第2制御信号を生成する
付記A36に記載の制御装置。
[付記A38]
前記演算装置は、前記計測結果に基づいて、落下することによって前記載置部材に位置した前記少なくとも第4対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第2制御信号を生成する
付記A37に記載の制御装置。
[付記A39]
前記所望姿勢は、落下することによって前記載置部材に位置した前記少なくとも第4対象物体の所望部位が所望方向を向く姿勢を含む
付記A38に記載の制御装置。
[付記A40]
前記演算装置は、前記計測結果に基づいて、前記少なくとも第2対象物体が前記載置部材内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記A33からA39のいずれか一項に記載の制御装置。
[付記A41]
前記演算装置は、前記計測結果に基づいて、前記少なくとも第4対象物体が前記載置部材内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第2制御信号を生成する
付記A33からA40のいずれか一項に記載の制御装置。
[付記A42]
前記所望位置は、前記載置部材内において前記対象物体が存在しない位置を含む
付記A40又はA41に記載の制御装置。
[付記A43]
前記演算装置は、前記計測結果に基づいて、前記保持装置で保持されている前記第1対象物体及び前記第2対象物体のうち、前記第2対象物体のみを前記載置部材へ落下させるか、又は前記第1対象物体及び前記第2対象物体を前記載置部材へ落下させるかを判定し、前記判定の結果に基づいて前記第1制御信号を生成する
付記A33からA42のいずれか一項に記載の制御装置。
[付記A44]
前記演算装置は、前記計測結果に基づいて、前記保持装置で保持されている前記第3対象物体及び前記第4対象物体のうち、前記第4対象物体のみを前記載置部材へ落下させるか、又は前記第3対象物体及び前記第4対象物体を前記載置部材へ落下させるかを判定し、前記判定の結果に基づいて前記第1制御信号を生成する
付記A33からA43のいずれか一項に記載の制御装置。
[付記A45]
前記計測装置は、前記撮像システムを含み、
前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第1対象物体を前記保持装置で保持した後に、前記撮像システムの撮像結果に基づいて前記第1制御信号を生成する
付記A33からA44のいずれか一項に記載の制御装置。
[付記A46]
前記計測装置は、前記撮像システムを含み、
前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第3対象物体を前記保持装置で保持した後に、前記撮像システムの撮像結果に基づいて前記第2制御信号を生成する
付記A33からA45のいずれか一項に記載の制御装置。
[付記A47]
前記撮像システムは、前記ロボットに設けられている
付記A45又はA46に記載の制御装置。
[付記A48]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記制御信号を生成する
付記A1からA47のいずれか一項に記載の制御装置。
[付記A49]
前記撮像システムは、前記ロボットに設けられている
付記A48に記載の制御装置。
[付記A50]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記A1からA49のいずれか一項に記載の制御装置。
[付記A51]
付記A1からA50のいずれか一項に記載の制御装置と、
前記撮像システムと
を備える制御システム。
[付記A52]
付記A1からA50のいずれか一項に記載の制御装置と、
前記撮像システムと、
前記ロボットと
を備えるロボットシステム。
[付記A53]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することと、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置装置に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成することと
を含む制御方法。
[付記A54]
付記A53に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記B1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記B2]
前記演算装置は、
前記載置部材に載置された前記対象物体に対して前記保持装置による前記保持動作が行われた後に、前記保持装置が、前記保持対象物体群を前記保持装置で保持した時の位置から、前記載置部材に載置された複数の前記対象物体に対して離れるように前記ロボットを制御するための信号を前記第1制御信号の一部の信号として生成し、
前記第1制御信号の一部の前記信号に基づき前記載置部材に載置された複数の前記対象物体に対して離れるように移動した前記保持装置で保持されている前記保持対象物体群を前記計測装置で計測した前記計測結果に基づいて前記保持状態が検出される
付記B1に記載の制御装置。
[付記B3]
前記第1制御信号の一部の前記信号は、前記保持対象物体群を前記保持装置で保持した時の位置よりも高い位置に前記保持装置が移動するように前記ロボットを制御するための信号を含む
付記B2に記載の制御装置。
[付記B4]
前記演算装置は、前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記保持対象物体群のうちの少なくとも一つの前記対象物体の前記載置部材への配置を開始する位置は、前記計測結果を得るために前記計測装置で前記保持対象物体群を計測する位置よりも前記載置部材に近い
付記B1からB3のいずれか一項に記載の制御装置。
[付記B5]
前記第1制御信号は、前記計測結果を得るために前記計測装置で前記保持対象物体群を計測する位置よりも低い位置から、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B4に記載の制御装置。
[付記B6]
前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されることは、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に落下することを含む
付記B4又はB5に記載の制御装置。
[付記B7]
前記保持動作は、前記載置部材に載置された複数の前記対象物体のうちの一つの前記対象物体を前記保持装置で保持するための動作を含み、
前記保持装置で保持された前記保持対象物体群のうちの前記一つの対象物体以外の前記対象物体は、前記保持動作によって前記一つの対象物体を保持する時に、前記保持装置で保持された余分な対象物体である
付記B1からB6のいずれか一項に記載の制御装置。
[付記B8]
前記保持状態は、前記保持装置に保持されている前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とを含む
付記B1からB7のいずれか一項に記載の制御装置。
[付記B9]
前記演算装置は、前記計測結果に基づいて、前記間接的に保持された状態と前記直接的に保持された状態とを判別し、その判別結果に基づいて前記第1制御信号を生成する
付記B8に記載の制御装置。
[付記B10]
前記間接的に保持された状態は、前記保持装置に保持された前記保持対象物体群のうちの一の前記対象物体によって他の前記対象物体が保持された状態を含み、
前記直接的に保持された状態は、前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態を含む
付記B8又はB9に記載の制御装置。
[付記B11]
検出された前記保持状態が、前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態の場合、
前記第1制御信号は、前記一の対象物体を保持した状態で、前記他の対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B10に記載の制御装置。
[付記B12]
前記第1制御信号に基づき前記他の対象物体が前記載置部材に配置された場合、前記保持装置で保持された前記一の対象物体が前記載置部材から搬出され、前記載置部材の外で前記保持装置からリリースされる
付記B11に記載の制御装置。
[付記B13]
前記他の対象物体が前記載置部材に配置されることは、前記他の前記対象物体が前記載置部材に落下することを含む
付記B11又はB12に記載の制御装置。
[付記B14]
検出された前記保持状態が、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B10からB13のいずれか一項に記載の制御装置。
[付記B15]
前記第1制御信号に基づき前記保持装置に保持されている前記保持対象物体群が前記載置部材へ配置された後に、前記載置部材に載置された複数の前記対象物体のうちの前記対象物体が前記保持装置で保持される、又は前記計測装置で前記載置部材に載置された複数の前記対象物体のうちの少なくとも一部が計測される
付記B14に記載の制御装置。
[付記B16]
前記保持装置に保持されている前記保持対象物体群が前記載置部材に配置されることは、前記保持装置に保持されている前記保持対象物体群が前記載置部材に落下することを含む
付記B14又はB15に記載の制御装置。
[付記B17]
前記一の対象物体は、第1対象物体を含み、
前記他の対象物体は、第2対象物体を含み、
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって、第1配置高さで、前記第2対象物体が前記第1対象物体から前記載置部材に配置されるように前記ロボットを制御するための信号を含む
付記B11からB13のいずれか一項に記載の制御装置。
[付記B18]
前記第2対象物体が前記載置部材に配置されることは、前記第2対象物体が前記載置部材に落下することを含む
付記B17に記載の制御装置。
[付記B19]
前記二つ以上の対象物体は、第1対象物体及び第2対象物体を含み、
前記第1制御信号は、第1配置高さで、前記保持装置に保持されている前記第1及び第2の対象物体が前記保持装置から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B14からB16のいずれか一項に記載の制御装置。
[付記B20]
前記第1及び第2対象物体が前記載置部材に配置されることは、前記第1及び第2対象物体が前記載置部材に落下することを含む
付記B19に記載の制御装置。
[付記B21]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による、前記載置部材に載置された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1配置高さを決定する
付記B17からB20のいずれか一項に記載の制御装置。
[付記B22]
決定された前記第1配置高さで、少なくとも前記第2対象物体が前記載置部材に配置される位置は、前記第2計測装置で計測された、前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む計測範囲に含まれる
付記B21に記載の制御装置。
[付記B23]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の前記第2計測装置による計測結果に基づいて算出される、前記載置部材に載置された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1配置高さを決定する
付記B21又はB22に記載の制御装置。
[付記B24]
前記第2計測装置は、前記第1計測装置であり、
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記第1計測装置により計測した計測結果に基づいて前記第1配置高さを決定する
付記B23に記載の制御装置。
[付記B25]
前記第2計測装置は、前記第1計測装置であり、
前記演算装置は、前記保持装置による前記保持動作が行われた後に、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記第1計測装置により計測した計測結果に基づいて前記第1配置高さを決定する
付記B23又はB24に記載の制御装置。
[付記B26]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による、前記載置部材に載置された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1制御信号を生成する
付記B1からB25のいずれか一項に記載の制御装置。
[付記B27]
前記演算装置は、前記第2計測装置による前記計測結果に基づいて算出される、前記載置部材に載置された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1制御信号を生成する
付記B26に記載の制御装置。
[付記B28]
前記第2計測装置は、前記高さ及び前記分量の少なくとも一方を直接的又は間接的に計測可能である
付記B23又はB27に記載の制御装置。
[付記B29]
前記第2計測装置は、前記第1計測装置として用いられる第1撮像システム、及び前記第1撮像システムとは異なる第2撮像システムの少なくとも一方を含み、
前記演算装置は、前記第1及び第2撮像システムの少なくとも一方による撮像結果に基づいて、前記高さ又は前記分量の少なくとも一方を算出する
付記B23、B27、又はB28に記載の制御装置。
[付記B30]
前記第1撮像システムは、前記ロボットに設けられている
付記B29に記載の制御装置。
[付記B31]
前記撮像結果は、前記第1及び第2撮像システムの少なくとも一方により、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像した結果を含む
付記B29又はB30に記載の制御装置。
[付記B32]
前記撮像結果は、前記載置部材の表面のうち複数の前記対象物体の少なくとも一部が位置する空間に面する位置に配置された少なくとも一つのマーカの撮像結果を含む
付記B29からB31のいずれか一項に記載の制御装置。
[付記B33]
前記第2計測装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の重量を計測可能な重量センサを含む
付記B21からB32のいずれか一項に記載の制御装置。
[付記B34]
前記第2計測装置は、前記載置部材に載置された複数の前記対象物体のうちの少なくとも一つの前記対象物体を検出可能な少なくとも一つのセンサを含む
付記B21からB33のいずれか一項に記載の制御装置。
[付記B35]
前記少なくとも一つのセンサは、前記載置部材に配置されている
付記B34に記載の制御装置。
[付記B36]
前記演算装置は、前記載置部材から搬出され、前記載置部材の外で前記保持装置からリリースされた前記対象物体の数に基づいて前記第1配置高さを決定する
付記B17からB25のいずれか一項に記載の制御装置。
[付記B37]
前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群の前記保持状態に基づき前記演算装置で生成された、前記保持対象物体群のうちの少なくとも一つの前記対象物体である配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B1からB36のいずれか一項に記載の制御装置。
[付記B38]
前記保持状態は、前記保持対象物体群のうちの少なくとも前記配置対象物体の位置及び姿勢の少なくとも一方を含む
付記B37に記載の制御装置。
[付記B39]
前記第1制御信号は、前記保持状態に基づき前記演算装置で生成された、前記載置部材に配置された前記配置対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B37又はB38に記載の制御装置。
[付記B40]
前記所望姿勢は、前記載置部材に位置された前記配置対象物体の所望部位が所望方向を向く姿勢を含む
付記B39に記載の制御装置。
[付記B41]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による計測結果と前記保持装置に保持されている前記保持対象物体群の前記保持状態とに基づいて、前記配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記B37からB40のいずれか一項に記載の制御装置。
[付記B42]
前記第2計測装置は、前記第1計測装置として用いられる撮像システムを含み、
前記計測結果は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の前記撮像システムによる撮像結果を含む
付記B41に記載の制御装置。
[付記B43]
前記計測装置は、第1計測装置であり、
前記第1制御信号は、前記保持対象物体群のうちの少なくとも一つの前記対象物体である配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み、
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方が制御されている最中又は制御された後に、第2計測装置による計測結果に基づいて、前記保持装置に前記配置対象物体が保持されているか否かを判別する
付記B1からB42のいずれか一項に記載の制御装置。
[付記B44]
前記第2計測装置は、前記第1計測装置として用いられる撮像システムを含み、
前記計測結果は、前記撮像システムによる撮像結果である
付記B43に記載の制御装置。
[付記B45]
前記撮像システムは、前記ロボットに設けられる
付記B42又はB44に記載の制御装置。
[付記B46]
前記第1信号は、前記配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号であり、
前記演算装置が、前記保持装置に前記配置対象物体の少なくとも一つが保持されていると判別した場合、前記演算装置は、前記配置対象物体の少なくとも一つが配置するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
付記B43からB45のいずれか一項に記載の制御装置。
[付記B47]
前記配置対象象物体が前記載置部材に配置されることは、前記配置対象物体が前記載置部材に落下することを含む
付記B37からB46のいずれか一項に記載の制御装置。
[付記B48]
前記演算装置は、
前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記計測結果に基づいて、前記第1制御信号に基づき前記載置部材に配置した前記対象物体の位置及び姿勢の少なくとも一方を推定し、
推定された前記対象物体の位置及び姿勢の少なくとも一方に基づいて、前記対象物体に対して前記保持装置による保持動作が行われる
付記B1からB47のいずれか一項に記載の制御装置。
[付記B49]
前記他の対象物体は二つの対象物体であり、
前記演算装置は、前記制御信号は、前記一の対象物体が前記保持装置で保持された状態で、前記二つの対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置を制御するための信号を含む
付記B10からB13及びB17からB18のいずれか一項に記載の制御装置。
[付記B50]
前記二つの対象物体が前記載置部材に配置されることは、前記二つの対象物体が前記載置部材に落下することを含む
付記B49に記載の制御装置。
[付記B51]
前記他の対象物体は第1対象物体及び第2対象物体であり、
前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持され、前記一の対象物体によって保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記制御信号は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持された状態で、前記第2対象物体が前記第1対象物体から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号と、前記一の対象物体が前記保持装置に保持された状態で、前記第1対象物体が前記一の対象物体から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号とを含む
付記B49又はB50に記載の制御装置。
[付記B52]
前記第1対象物体が前記載置部材に配置されることは、前記第1対象物体が前記載置部材に落下することを含み、
前記第2対象物体が前記載置部材に配置されることは、前記第2対象物体が前記載置部材に落下することを含む
付記B51に記載の制御装置。
[付記B53]
前記保持対象物体群は、三つの前記対象物体であり、
前記保持対象物体群のうちの二つの前記対象物体又は三つの前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記制御信号は、前記一の対象物体を保持した状態で前記保持装置に直接保持された前記二つの対象物体又は前記三つの対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置を制御するための信号を含む
付記B14からB16及びB19からB20のいずれか一項に記載の制御装置。
[付記B54]
前記二つの対象物体又は前記三つの対象物体が前記載置部材に配置されることは、前記二つの対象物体又は前記三つの対象物体が前記載置部材に落下することを含む
付記B53に記載の制御装置。
[付記B55]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記保持動作が行われるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
付記B1からB56のいずれか一項に記載の制御装置。
[付記B56]
前記撮像システムは、前記ロボットに設けられている
付記B55に記載の制御装置。
[付記B57]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記B1からB56のいずれか一項に記載の制御装置。
[付記B58]
付記B1からB57のいずれか一項に記載の制御装置と、
前記計測装置と
を備える制御システム。
[付記B59]
付記B1からB57のいずれか一項に記載の制御装置と、
前記計測装置と、
前記ロボットと
を備えるロボットシステム。
[付記B60]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することを含む
制御方法。
[付記B61]
付記B49に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記C1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
[付記C2]
前記演算装置は、前記個数が1つと判定された場合と複数と判定された場合とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1に記載の制御装置。
[付記C3]
前記演算装置は、前記個数が複数と判定された場合、前記保持装置に保持された前記複数の前記対象物体のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1又はC2に記載の制御装置。
[付記C4]
前記演算装置は、前記個数が1つと判定された場合、前記保持装置で保持された1つの前記対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1からC3のいずれか一項に記載の制御装置。
[付記C5]
前記ロボットの制御態様は、前記ロボットの制御による前記保持装置の移動方向、移動量、移動速度及び移動加速度の少なくとも一つを含み、
前記保持装置の制御態様は、前記保持装置の保持力を含む
付記C1からC4のいずれか一項に記載の制御装置。
[付記C6]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記保持動作が行われるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1からC5のいずれか一項に記載の制御装置。
[付記C7]
前記撮像システムは、前記ロボットに設けられている
付記C6に記載の制御装置。
[付記C8]
前記計測装置は、前記撮像システムを含む
付記C6又はC7に記載の制御装置。
[付記C9]
前記撮像システムは、第1撮像システムであり、
前記計測装置は、前記第1撮像システムとは異なる第2撮像システムを含む
付記C6からC8のいずれか一項に記載の制御装置。
[付記C10]
前記計測装置は、撮像システムを含む
付記C1からC5のいずれか一項に記載の制御装置。
[付記C11]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記C1からC10のいずれか一項に記載の制御装置。
[付記C12]
付記C1からC11のいずれか一項に記載の制御装置と、
前記計測装置と
を備える制御システム。
[付記C13]
付記C1からC11のいずれか一項に記載の制御装置と、
前記計測装置と、
前記ロボットと
を備えるロボットシステム。
[付記C14]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定することと、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成することと
を含む制御方法。
[付記C15]
付記C14に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記D1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置部材に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記D2]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記D3]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
[付記D4]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置で、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記D5]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記D6]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置に保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
以上説明した実施形態に関して、更に以下の付記を開示する。
[付記A1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置部材に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記A2]
前記第2制御信号は、前記低い位置に位置した前記少なくとも第4対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号、及び前記低い位置に位置した前記保持装置から前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号の少なくとも一方の信号を含む
付記A1に記載の制御装置。
[付記A3]
前記第2制御信号に基づき前記少なくとも第4対象物体が落下を開始する時の、前記載置部材に載置されている複数の前記対象物体の少なくとも一部の高さは、前記第1制御信号に基づき前記少なくとも第2対象物体が落下を開始する時の、前記載置部材に載置されている複数の前記対象物体の少なくとも一部の高さよりも低い
付記A1又はA2に記載の制御装置。
[付記A4]
前記少なくとも第4対象物体が落下を開始する時の、前記載置部材に載置されている前記対象物体の数は、前記少なくとも第2対象物体が落下を開始する時の、前記載置部材に載置されている前記対象物体の数よりも少ない
付記A1からA3のいずれか一項に記載の制御装置。
[付記A5]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムで撮像した撮像結果に基づいて、前記少なくとも第2対象物体が前記載置部材に落下を開始するための第1落下高さを決定し、
前記第1制御信号は、決定された前記第1落下高さから、前記少なくとも第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A1からA4のいずれか一項に記載の制御装置。
[付記A6]
前記第1落下高さは、前記少なくとも第2対象物体が落下を開始する時の前記第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1及び第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第2対象物体が落下を開始する時の前記保持装置の高さである
付記A5に記載の制御装置。
[付記A7]
前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて、前記第1対象物体を保持するように前記保持装置が制御され、
前記第1落下高さを決定するために用いられる前記撮像結果は、前記対象物体群を前記撮像システムにより撮像した前記撮像結果である
付記A5又はA6に記載の制御装置。
[付記A8]
前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む第1対象物体群を撮像システムにより撮像した撮像結果に基づいて、前記第1対象物体を保持するように前記保持装置が制御され、
前記第2制御信号は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む第2対象物体群を撮像システムにより撮像した撮像結果に基づいて前記第2対象物体群のうちの前記第3対象物体を前記保持装置で保持した時に前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記低い位置から、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A1からA7のいずれか一項に記載の制御装置。
[付記A9]
前記第2対象物体群の高さは、前記第1対象物体群の高さよりも低い
付記A8に記載の制御装置。
[付記A10]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した撮像結果に基づいて、前記少なくとも第4対象物体が前記載置部材に落下を開始するための第2落下高さを決定し、
前記第2制御信号は、決定された前記第2落下高さから、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記A8又はA9に記載の制御装置。
[付記A11]
前記第2落下高さは、前記少なくとも第4対象物体が落下を開始する時の前記第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3及び第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第4対象物体が落下を開始する時の前記保持装置の高さである
付記A10に記載の制御装置。
[付記A12]
前記第2落下高さを決定するために用いられる前記撮像結果は、前記第2対象物体群を前記撮像システムにより撮像した前記撮像結果である
付記A10又はA11に記載の制御装置。
[付記A13]
前記第2対象物体が前記第1対象物体と共に前記保持装置で保持された状態は、前記第2対象物体が前記保持装置で間接的又は直接的に保持された状態を含み、
前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された状態は、前記第4対象物体が前記保持装置で間接的又は直接的に保持された状態を含む
付記A1からA12のいずれか一項に記載の制御装置。
[付記A14]
前記第2対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記第2対象物体が前記保持装置で直接的に保持された状態は、前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態であり、
前記第4対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第3対象物体によって前記第4対象物体が保持された状態であり、
前記第4対象物体が前記保持装置で直接的に保持された状態は、前記第3対象物体及び前記第4対象物体のそれぞれが前記保持装置によって直接保持された状態である
付記A13に記載の制御装置。
[付記A15]
前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態の場合、
前記演算装置は、前記第1対象物体が前記保持装置で保持された状態で前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14に記載の制御装置。
[付記A16]
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記ロボットを制御するための信号を含む
付記A15に記載の制御装置。
[付記A17]
前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
付記A16に記載の制御装置。
[付記A18]
前記第1制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第1対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
付記A17に記載の制御装置。
[付記A19]
前記第1対象物体の端部は、前記第1対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
付記A18に記載の制御装置。
[付記A20]
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置の保持力を低下させることによって前記第2対象物体が前記第1対象物体から前記載置部材に落下するように前記保持装置を制御するための信号を含む
付記A15からA19のいずれか一項に記載の制御装置。
[付記A21]
前記保持装置に保持された前記第3対象物体によって前記第4対象物体が保持された状態の場合、
前記演算装置は、前記第3対象物体が前記保持装置で保持された状態で前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第3制御信号として生成する
付記A14からA20のいずれか一項に記載の制御装置。
[付記A22]
前記第3制御信号は、前記第3対象物体を保持した状態で前記保持装置を移動させることによって前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記ロボットを制御するための信号を含む
付記A21に記載の制御装置。
[付記A23]
前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
付記A22に記載の制御装置。
[付記A24]
前記第3制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第3対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
付記A23に記載の制御装置。
[付記A25]
前記第3対象物体の端部は、前記第3対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
付記A24に記載の制御装置。
[付記A26]
前記第3制御信号は、前記第3対象物体を保持した状態で前記保持装置の保持力を低下させることによって前記第4対象物体が前記第3対象物体から前記載置部材に落下するように前記保持装置を制御するための信号を含む
付記A21からA25のいずれか一項に記載の制御装置。
[付記A27]
前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記演算装置は、前記第1対象物体及び前記第2対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14からA26のいずれか一項に記載の制御装置。
[付記A28]
前記第3対象物体及び前記第4対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記演算装置は、前記第3対象物体及び前記第4対象物体が前記保持装置から前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
付記A14からA27のいずれか一項に記載の制御装置。
[付記A29]
前記第1制御信号は、前記少なくとも第2対象物体が前記載置部材に落下ように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み、
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方を制御しても前記少なくとも第2対象物体が前記載置部材に落下していない場合に、前記少なくとも第2対象物体が前記載置部材に落下するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
付記A1からA28のいずれか一項に記載の制御装置。
[付記A30]
前記第1制御信号は、前記少なくとも第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第3信号を含み、
前記演算装置は、前記第3信号に基づき前記ロボット及び前記保持装置の少なくとも一方を制御しても前記少なくとも第4対象物体が前記載置部材に落下していない場合に、前記少なくとも第4対象物体が前記載置部材に落下するように、前記第3信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第4信号を前記第1制御信号の一部の信号として生成する
付記A1からA29のいずれか一項に記載の制御装置。
[付記A31]
前記制御態様は、前記ロボットの制御態様及び前記保持装置の制御態様の少なくとも一方を含む
付記A29又はA30に記載の制御装置。
[付記A32]
前記演算装置は、前記第1対象物体を前記保持装置で保持した後に、前記第1制御信号を生成する
付記A1からA31のいずれか一項に記載の制御装置。
[付記A33]
前記演算装置は、計測装置の計測結果に基づいて、前記第1制御信号を生成する
付記A32に記載の制御装置。
[付記A34]
前記演算装置は、前記計測結果に基づいて、落下することによって前記載置部材に位置した前記少なくとも第2対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記A33に記載の制御装置。
[付記A35]
前記所望姿勢は、落下することによって前記載置部材に位置した前記少なくとも第2対象物体の所望部位が所望方向を向く姿勢を含む
付記A34に記載の制御装置。
[付記A36]
前記演算装置は、前記第3対象物体を前記保持装置で保持した後に、前記第2制御信号を生成する
付記A1からA35のいずれか一項に記載の制御装置。
[付記A37]
前記演算装置は、計測装置の計測結果に基づいて、前記第2制御信号を生成する
付記A36に記載の制御装置。
[付記A38]
前記演算装置は、前記計測結果に基づいて、落下することによって前記載置部材に位置した前記少なくとも第4対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第2制御信号を生成する
付記A37に記載の制御装置。
[付記A39]
前記所望姿勢は、落下することによって前記載置部材に位置した前記少なくとも第4対象物体の所望部位が所望方向を向く姿勢を含む
付記A38に記載の制御装置。
[付記A40]
前記演算装置は、前記計測結果に基づいて、前記少なくとも第2対象物体が前記載置部材内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記A33からA39のいずれか一項に記載の制御装置。
[付記A41]
前記演算装置は、前記計測結果に基づいて、前記少なくとも第4対象物体が前記載置部材内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第2制御信号を生成する
付記A33からA40のいずれか一項に記載の制御装置。
[付記A42]
前記所望位置は、前記載置部材内において前記対象物体が存在しない位置を含む
付記A40又はA41に記載の制御装置。
[付記A43]
前記演算装置は、前記計測結果に基づいて、前記保持装置で保持されている前記第1対象物体及び前記第2対象物体のうち、前記第2対象物体のみを前記載置部材へ落下させるか、又は前記第1対象物体及び前記第2対象物体を前記載置部材へ落下させるかを判定し、前記判定の結果に基づいて前記第1制御信号を生成する
付記A33からA42のいずれか一項に記載の制御装置。
[付記A44]
前記演算装置は、前記計測結果に基づいて、前記保持装置で保持されている前記第3対象物体及び前記第4対象物体のうち、前記第4対象物体のみを前記載置部材へ落下させるか、又は前記第3対象物体及び前記第4対象物体を前記載置部材へ落下させるかを判定し、前記判定の結果に基づいて前記第1制御信号を生成する
付記A33からA43のいずれか一項に記載の制御装置。
[付記A45]
前記計測装置は、前記撮像システムを含み、
前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第1対象物体を前記保持装置で保持した後に、前記撮像システムの撮像結果に基づいて前記第1制御信号を生成する
付記A33からA44のいずれか一項に記載の制御装置。
[付記A46]
前記計測装置は、前記撮像システムを含み、
前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第3対象物体を前記保持装置で保持した後に、前記撮像システムの撮像結果に基づいて前記第2制御信号を生成する
付記A33からA45のいずれか一項に記載の制御装置。
[付記A47]
前記撮像システムは、前記ロボットに設けられている
付記A45又はA46に記載の制御装置。
[付記A48]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記制御信号を生成する
付記A1からA47のいずれか一項に記載の制御装置。
[付記A49]
前記撮像システムは、前記ロボットに設けられている
付記A48に記載の制御装置。
[付記A50]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記A1からA49のいずれか一項に記載の制御装置。
[付記A51]
付記A1からA50のいずれか一項に記載の制御装置と、
前記撮像システムと
を備える制御システム。
[付記A52]
付記A1からA50のいずれか一項に記載の制御装置と、
前記撮像システムと、
前記ロボットと
を備えるロボットシステム。
[付記A53]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することと、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置装置に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成することと
を含む制御方法。
[付記A54]
付記A53に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記B1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記B2]
前記演算装置は、
前記載置部材に載置された前記対象物体に対して前記保持装置による前記保持動作が行われた後に、前記保持装置が、前記保持対象物体群を前記保持装置で保持した時の位置から、前記載置部材に載置された複数の前記対象物体に対して離れるように前記ロボットを制御するための信号を前記第1制御信号の一部の信号として生成し、
前記第1制御信号の一部の前記信号に基づき前記載置部材に載置された複数の前記対象物体に対して離れるように移動した前記保持装置で保持されている前記保持対象物体群を前記計測装置で計測した前記計測結果に基づいて前記保持状態が検出される
付記B1に記載の制御装置。
[付記B3]
前記第1制御信号の一部の前記信号は、前記保持対象物体群を前記保持装置で保持した時の位置よりも高い位置に前記保持装置が移動するように前記ロボットを制御するための信号を含む
付記B2に記載の制御装置。
[付記B4]
前記演算装置は、前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記保持対象物体群のうちの少なくとも一つの前記対象物体の前記載置部材への配置を開始する位置は、前記計測結果を得るために前記計測装置で前記保持対象物体群を計測する位置よりも前記載置部材に近い
付記B1からB3のいずれか一項に記載の制御装置。
[付記B5]
前記第1制御信号は、前記計測結果を得るために前記計測装置で前記保持対象物体群を計測する位置よりも低い位置から、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B4に記載の制御装置。
[付記B6]
前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されることは、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に落下することを含む
付記B4又はB5に記載の制御装置。
[付記B7]
前記保持動作は、前記載置部材に載置された複数の前記対象物体のうちの一つの前記対象物体を前記保持装置で保持するための動作を含み、
前記保持装置で保持された前記保持対象物体群のうちの前記一つの対象物体以外の前記対象物体は、前記保持動作によって前記一つの対象物体を保持する時に、前記保持装置で保持された余分な対象物体である
付記B1からB6のいずれか一項に記載の制御装置。
[付記B8]
前記保持状態は、前記保持装置に保持されている前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とを含む
付記B1からB7のいずれか一項に記載の制御装置。
[付記B9]
前記演算装置は、前記計測結果に基づいて、前記間接的に保持された状態と前記直接的に保持された状態とを判別し、その判別結果に基づいて前記第1制御信号を生成する
付記B8に記載の制御装置。
[付記B10]
前記間接的に保持された状態は、前記保持装置に保持された前記保持対象物体群のうちの一の前記対象物体によって他の前記対象物体が保持された状態を含み、
前記直接的に保持された状態は、前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態を含む
付記B8又はB9に記載の制御装置。
[付記B11]
検出された前記保持状態が、前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態の場合、
前記第1制御信号は、前記一の対象物体を保持した状態で、前記他の対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B10に記載の制御装置。
[付記B12]
前記第1制御信号に基づき前記他の対象物体が前記載置部材に配置された場合、前記保持装置で保持された前記一の対象物体が前記載置部材から搬出され、前記載置部材の外で前記保持装置からリリースされる
付記B11に記載の制御装置。
[付記B13]
前記他の対象物体が前記載置部材に配置されることは、前記他の前記対象物体が前記載置部材に落下することを含む
付記B11又はB12に記載の制御装置。
[付記B14]
検出された前記保持状態が、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B10からB13のいずれか一項に記載の制御装置。
[付記B15]
前記第1制御信号に基づき前記保持装置に保持されている前記保持対象物体群が前記載置部材へ配置された後に、前記載置部材に載置された複数の前記対象物体のうちの前記対象物体が前記保持装置で保持される、又は前記計測装置で前記載置部材に載置された複数の前記対象物体のうちの少なくとも一部が計測される
付記B14に記載の制御装置。
[付記B16]
前記保持装置に保持されている前記保持対象物体群が前記載置部材に配置されることは、前記保持装置に保持されている前記保持対象物体群が前記載置部材に落下することを含む
付記B14又はB15に記載の制御装置。
[付記B17]
前記一の対象物体は、第1対象物体を含み、
前記他の対象物体は、第2対象物体を含み、
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって、第1配置高さで、前記第2対象物体が前記第1対象物体から前記載置部材に配置されるように前記ロボットを制御するための信号を含む
付記B11からB13のいずれか一項に記載の制御装置。
[付記B18]
前記第2対象物体が前記載置部材に配置されることは、前記第2対象物体が前記載置部材に落下することを含む
付記B17に記載の制御装置。
[付記B19]
前記二つ以上の対象物体は、第1対象物体及び第2対象物体を含み、
前記第1制御信号は、第1配置高さで、前記保持装置に保持されている前記第1及び第2の対象物体が前記保持装置から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B14からB16のいずれか一項に記載の制御装置。
[付記B20]
前記第1及び第2対象物体が前記載置部材に配置されることは、前記第1及び第2対象物体が前記載置部材に落下することを含む
付記B19に記載の制御装置。
[付記B21]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による、前記載置部材に載置された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1配置高さを決定する
付記B17からB20のいずれか一項に記載の制御装置。
[付記B22]
決定された前記第1配置高さで、少なくとも前記第2対象物体が前記載置部材に配置される位置は、前記第2計測装置で計測された、前記載置部材に載置された複数の前記対象物体の少なくとも一部を含む計測範囲に含まれる
付記B21に記載の制御装置。
[付記B23]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の前記第2計測装置による計測結果に基づいて算出される、前記載置部材に載置された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1配置高さを決定する
付記B21又はB22に記載の制御装置。
[付記B24]
前記第2計測装置は、前記第1計測装置であり、
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記第1計測装置により計測した計測結果に基づいて前記第1配置高さを決定する
付記B23に記載の制御装置。
[付記B25]
前記第2計測装置は、前記第1計測装置であり、
前記演算装置は、前記保持装置による前記保持動作が行われた後に、前記載置部材に載置された複数の前記対象物体の少なくとも一部を前記第1計測装置により計測した計測結果に基づいて前記第1配置高さを決定する
付記B23又はB24に記載の制御装置。
[付記B26]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による、前記載置部材に載置された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1制御信号を生成する
付記B1からB25のいずれか一項に記載の制御装置。
[付記B27]
前記演算装置は、前記第2計測装置による前記計測結果に基づいて算出される、前記載置部材に載置された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1制御信号を生成する
付記B26に記載の制御装置。
[付記B28]
前記第2計測装置は、前記高さ及び前記分量の少なくとも一方を直接的又は間接的に計測可能である
付記B23又はB27に記載の制御装置。
[付記B29]
前記第2計測装置は、前記第1計測装置として用いられる第1撮像システム、及び前記第1撮像システムとは異なる第2撮像システムの少なくとも一方を含み、
前記演算装置は、前記第1及び第2撮像システムの少なくとも一方による撮像結果に基づいて、前記高さ又は前記分量の少なくとも一方を算出する
付記B23、B27、又はB28に記載の制御装置。
[付記B30]
前記第1撮像システムは、前記ロボットに設けられている
付記B29に記載の制御装置。
[付記B31]
前記撮像結果は、前記第1及び第2撮像システムの少なくとも一方により、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像した結果を含む
付記B29又はB30に記載の制御装置。
[付記B32]
前記撮像結果は、前記載置部材の表面のうち複数の前記対象物体の少なくとも一部が位置する空間に面する位置に配置された少なくとも一つのマーカの撮像結果を含む
付記B29からB31のいずれか一項に記載の制御装置。
[付記B33]
前記第2計測装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の重量を計測可能な重量センサを含む
付記B21からB32のいずれか一項に記載の制御装置。
[付記B34]
前記第2計測装置は、前記載置部材に載置された複数の前記対象物体のうちの少なくとも一つの前記対象物体を検出可能な少なくとも一つのセンサを含む
付記B21からB33のいずれか一項に記載の制御装置。
[付記B35]
前記少なくとも一つのセンサは、前記載置部材に配置されている
付記B34に記載の制御装置。
[付記B36]
前記演算装置は、前記載置部材から搬出され、前記載置部材の外で前記保持装置からリリースされた前記対象物体の数に基づいて前記第1配置高さを決定する
付記B17からB25のいずれか一項に記載の制御装置。
[付記B37]
前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群の前記保持状態に基づき前記演算装置で生成された、前記保持対象物体群のうちの少なくとも一つの前記対象物体である配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B1からB36のいずれか一項に記載の制御装置。
[付記B38]
前記保持状態は、前記保持対象物体群のうちの少なくとも前記配置対象物体の位置及び姿勢の少なくとも一方を含む
付記B37に記載の制御装置。
[付記B39]
前記第1制御信号は、前記保持状態に基づき前記演算装置で生成された、前記載置部材に配置された前記配置対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
付記B37又はB38に記載の制御装置。
[付記B40]
前記所望姿勢は、前記載置部材に位置された前記配置対象物体の所望部位が所望方向を向く姿勢を含む
付記B39に記載の制御装置。
[付記B41]
前記計測装置は、第1計測装置であり、
前記演算装置は、第2計測装置による計測結果と前記保持装置に保持されている前記保持対象物体群の前記保持状態とに基づいて、前記配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
付記B37からB40のいずれか一項に記載の制御装置。
[付記B42]
前記第2計測装置は、前記第1計測装置として用いられる撮像システムを含み、
前記計測結果は、前記載置部材に載置された複数の前記対象物体の少なくとも一部の前記撮像システムによる撮像結果を含む
付記B41に記載の制御装置。
[付記B43]
前記計測装置は、第1計測装置であり、
前記第1制御信号は、前記保持対象物体群のうちの少なくとも一つの前記対象物体である配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み、
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方が制御されている最中又は制御された後に、第2計測装置による計測結果に基づいて、前記保持装置に前記配置対象物体が保持されているか否かを判別する
付記B1からB42のいずれか一項に記載の制御装置。
[付記B44]
前記第2計測装置は、前記第1計測装置として用いられる撮像システムを含み、
前記計測結果は、前記撮像システムによる撮像結果である
付記B43に記載の制御装置。
[付記B45]
前記撮像システムは、前記ロボットに設けられる
付記B42又はB44に記載の制御装置。
[付記B46]
前記第1信号は、前記配置対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号であり、
前記演算装置が、前記保持装置に前記配置対象物体の少なくとも一つが保持されていると判別した場合、前記演算装置は、前記配置対象物体の少なくとも一つが配置するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
付記B43からB45のいずれか一項に記載の制御装置。
[付記B47]
前記配置対象象物体が前記載置部材に配置されることは、前記配置対象物体が前記載置部材に落下することを含む
付記B37からB46のいずれか一項に記載の制御装置。
[付記B48]
前記演算装置は、
前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記計測結果に基づいて、前記第1制御信号に基づき前記載置部材に配置した前記対象物体の位置及び姿勢の少なくとも一方を推定し、
推定された前記対象物体の位置及び姿勢の少なくとも一方に基づいて、前記対象物体に対して前記保持装置による保持動作が行われる
付記B1からB47のいずれか一項に記載の制御装置。
[付記B49]
前記他の対象物体は二つの対象物体であり、
前記演算装置は、前記制御信号は、前記一の対象物体が前記保持装置で保持された状態で、前記二つの対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置を制御するための信号を含む
付記B10からB13及びB17からB18のいずれか一項に記載の制御装置。
[付記B50]
前記二つの対象物体が前記載置部材に配置されることは、前記二つの対象物体が前記載置部材に落下することを含む
付記B49に記載の制御装置。
[付記B51]
前記他の対象物体は第1対象物体及び第2対象物体であり、
前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持され、前記一の対象物体によって保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記制御信号は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持された状態で、前記第2対象物体が前記第1対象物体から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号と、前記一の対象物体が前記保持装置に保持された状態で、前記第1対象物体が前記一の対象物体から前記載置部材に配置されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号とを含む
付記B49又はB50に記載の制御装置。
[付記B52]
前記第1対象物体が前記載置部材に配置されることは、前記第1対象物体が前記載置部材に落下することを含み、
前記第2対象物体が前記載置部材に配置されることは、前記第2対象物体が前記載置部材に落下することを含む
付記B51に記載の制御装置。
[付記B53]
前記保持対象物体群は、三つの前記対象物体であり、
前記保持対象物体群のうちの二つの前記対象物体又は三つの前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記制御信号は、前記一の対象物体を保持した状態で前記保持装置に直接保持された前記二つの対象物体又は前記三つの対象物体が前記載置部材に配置されるように前記ロボット及び前記保持装置を制御するための信号を含む
付記B14からB16及びB19からB20のいずれか一項に記載の制御装置。
[付記B54]
前記二つの対象物体又は前記三つの対象物体が前記載置部材に配置されることは、前記二つの対象物体又は前記三つの対象物体が前記載置部材に落下することを含む
付記B53に記載の制御装置。
[付記B55]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記保持動作が行われるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
付記B1からB56のいずれか一項に記載の制御装置。
[付記B56]
前記撮像システムは、前記ロボットに設けられている
付記B55に記載の制御装置。
[付記B57]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記B1からB56のいずれか一項に記載の制御装置。
[付記B58]
付記B1からB57のいずれか一項に記載の制御装置と、
前記計測装置と
を備える制御システム。
[付記B59]
付記B1からB57のいずれか一項に記載の制御装置と、
前記計測装置と、
前記ロボットと
を備えるロボットシステム。
[付記B60]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することを含む
制御方法。
[付記B61]
付記B49に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記C1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
[付記C2]
前記演算装置は、前記個数が1つと判定された場合と複数と判定された場合とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1に記載の制御装置。
[付記C3]
前記演算装置は、前記個数が複数と判定された場合、前記保持装置に保持された前記複数の前記対象物体のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1又はC2に記載の制御装置。
[付記C4]
前記演算装置は、前記個数が1つと判定された場合、前記保持装置で保持された1つの前記対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1からC3のいずれか一項に記載の制御装置。
[付記C5]
前記ロボットの制御態様は、前記ロボットの制御による前記保持装置の移動方向、移動量、移動速度及び移動加速度の少なくとも一つを含み、
前記保持装置の制御態様は、前記保持装置の保持力を含む
付記C1からC4のいずれか一項に記載の制御装置。
[付記C6]
前記演算装置は、前記載置部材に載置された複数の前記対象物体の少なくとも一部を撮像システムにより撮像した撮像結果に基づいて、前記保持動作が行われるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
付記C1からC5のいずれか一項に記載の制御装置。
[付記C7]
前記撮像システムは、前記ロボットに設けられている
付記C6に記載の制御装置。
[付記C8]
前記計測装置は、前記撮像システムを含む
付記C6又はC7に記載の制御装置。
[付記C9]
前記撮像システムは、第1撮像システムであり、
前記計測装置は、前記第1撮像システムとは異なる第2撮像システムを含む
付記C6からC8のいずれか一項に記載の制御装置。
[付記C10]
前記計測装置は、撮像システムを含む
付記C1からC5のいずれか一項に記載の制御装置。
[付記C11]
前記載置部材は、複数の前記対象物体を収容可能な容器を含む
付記C1からC10のいずれか一項に記載の制御装置。
[付記C12]
付記C1からC11のいずれか一項に記載の制御装置と、
前記計測装置と
を備える制御システム。
[付記C13]
付記C1からC11のいずれか一項に記載の制御装置と、
前記計測装置と、
前記ロボットと
を備えるロボットシステム。
[付記C14]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定することと、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成することと
を含む制御方法。
[付記C15]
付記C14に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
[付記D1]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
載置部材に載置された複数の前記対象物体のうちの第1対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記載置部材に落下した後、前記載置部材に載置された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記載置部材に載置された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記載置部材に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記載置部材に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記D2]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、載置部材に載置された複数の前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を計測装置により計測した計測結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記D3]
対象物体を保持可能な保持装置が設けられ、且つ前記保持装置を移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
前記載置部材に載置された複数の前記対象物体のうちの前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を計測装置で計測した計測結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
[付記D4]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置で、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。
[付記D5]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。
[付記D6]
対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
少なくとも一つのプロセッサと、
コンピュータプログラムコードを含む少なくとも一つのメモリと、
前記少なくとも一つのプロセッサで生成された前記制御信号を出力する通信装置と
を備え、
前記少なくとも一つのプロセッサと共に、前記少なくとも一つのメモリと前記コンピュータプログラムコードは、前記制御装置が前記ロボット及び前記保持装置の少なくとも一方を制御するよう構成され、
前記少なくとも一つのプロセッサは、
容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置に保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。
上述の各実施形態の構成要件の少なくとも一部は、上述の各実施形態の構成要件の少なくとも他の一部と適宜組み合わせることができる。上述の各実施形態の構成要件のうちの一部が用いられなくてもよい。また、法令で許容される限りにおいて、上述の各実施形態で引用した全ての公開公報及び米国特許の開示を援用して本文の記載の一部とする。
本発明は、上述した実施例に限られるものではなく、特許請求の範囲及び明細書全体から読み取れる発明の要旨或いは思想に反しない範囲で適宜変更可能であり、そのような変更を伴う制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラムもまた本発明の技術的範囲に含まれるものである。
SYS ロボットシステム
1 ロボット
12 ロボットアーム
13 ロボット制御装置
2 撮像システム
21 撮像装置
3 制御装置
31 演算装置
311 位置姿勢算出部
312 信号生成部
313 誤保持検出部
33 通信装置
4 エンドエフェクタ
OBJ 対象物体
W ワーク
T 載置装置
IMG 画像データ
1 ロボット
12 ロボットアーム
13 ロボット制御装置
2 撮像システム
21 撮像装置
3 制御装置
31 演算装置
311 位置姿勢算出部
312 信号生成部
313 誤保持検出部
33 通信装置
4 エンドエフェクタ
OBJ 対象物体
W ワーク
T 載置装置
IMG 画像データ
Claims (154)
- 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成し、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成する
制御装置。 - 前記第2制御信号は、前記低い位置に位置した前記少なくとも第4対象物体が前記保持装置から前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号、及び前記低い位置に位置した前記保持装置から前記少なくとも第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号の少なくとも一方の信号を含む
請求項1に記載の制御装置。 - 前記第2制御信号に基づき前記少なくとも第4対象物体が落下を開始する時の、前記容器に収容されている複数の前記対象物体の少なくとも一部の高さは、前記第1制御信号に基づき前記少なくとも第2対象物体が落下を開始する時の、前記容器に収容されている複数の前記対象物体の少なくとも一部の高さよりも低い
請求項1又は2に記載の制御装置。 - 前記少なくとも第4対象物体が落下を開始する時の、前記容器に収容されている前記対象物体の数は、前記少なくとも第2対象物体が落下を開始する時の、前記容器に収容されている前記対象物体の数よりも少ない
請求項1から3のいずれか一項に記載の制御装置。 - 前記演算装置は、前記容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した撮像結果に基づいて、前記少なくとも第2対象物体が前記容器に落下を開始するための第1落下高さを決定し、
前記第1制御信号は、決定された前記第1落下高さから、前記少なくとも第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項1から4のいずれか一項に記載の制御装置。 - 前記第1落下高さは、前記少なくとも第2対象物体が落下を開始する時の前記第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記第1及び第2対象物体の高さ、前記少なくとも第2対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第2対象物体が落下を開始する時の前記保持装置の高さである
請求項5に記載の制御装置。 - 前記第1落下高さを決定するために用いられる前記撮像結果は、前記対象物体群を前記撮像システムにより撮像した前記撮像結果である
請求項5又は6に記載の制御装置。 - 前記対象物体群を第1対象物体群とするとき、
前記第2制御信号は、前記容器に収容された複数の前記対象物体の少なくとも一部を含む第2対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第2対象物体群のうちの前記第3対象物体を前記保持装置で保持した時に前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記低い位置から、前記少なくとも第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項1から7のいずれか一項に記載の制御装置。 - 前記第2対象物体群の高さは、前記第1対象物体群の高さよりも低い
請求項8に記載の制御装置。 - 前記演算装置は、前記容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した撮像結果に基づいて、前記少なくとも第4対象物体が前記容器に落下を開始するための第2落下高さを決定し、
前記第2制御信号は、決定された前記第2落下高さから、前記少なくとも第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項8又は9に記載の制御装置。 - 前記第2落下高さは、前記少なくとも第4対象物体が落下を開始する時の前記第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記第3及び第4対象物体の高さ、前記少なくとも第4対象物体が落下を開始する時の前記撮像システムの高さ、又は前記少なくとも第4対象物体が落下を開始する時の前記保持装置の高さである
請求項10に記載の制御装置。 - 前記第2落下高さを決定するために用いられる前記撮像結果は、前記第2対象物体群を前記撮像システムにより撮像した前記撮像結果である
請求項10又は11に記載の制御装置。 - 前記第2対象物体が前記第1対象物体と共に前記保持装置で保持された状態は、前記第2対象物体が前記保持装置で間接的又は直接的に保持された状態を含み、
前記第4対象物体が前記第3対象物体と共に前記保持装置で保持された状態は、前記第4対象物体が前記保持装置で間接的又は直接的に保持された状態を含む
請求項1から12のいずれか一項に記載の制御装置。 - 前記第2対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記第2対象物体が前記保持装置で直接的に保持された状態は、前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態であり、
前記第4対象物体が前記保持装置で間接的に保持された状態は、前記保持装置に保持された前記第3対象物体によって前記第4対象物体が保持された状態であり、
前記第4対象物体が前記保持装置で直接的に保持された状態は、前記第3対象物体及び前記第4対象物体のそれぞれが前記保持装置によって直接保持された状態である
請求項13に記載の制御装置。 - 前記保持装置に保持された前記第1対象物体によって前記第2対象物体が保持された状態の場合、
前記演算装置は、前記第1対象物体が前記保持装置で保持された状態で前記第2対象物体が前記第1対象物体から落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
請求項14に記載の制御装置。 - 前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項15に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
請求項16に記載の制御装置。 - 前記第1制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第1対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
請求項17に記載の制御装置。 - 前記第1対象物体の端部は、前記第1対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
請求項18に記載の制御装置。 - 前記第1制御信号によって前記第2対象物体が前記第1対象物体から落下することは、前記第1制御信号に基づき前記保持装置の姿勢を変化させる方向とは異なる方向に向かって移動した前記第2対象物体が前記第1対象物体から落下することを含む
請求項17から19のいずれか一項に記載の制御装置。 - 前記第1制御信号によって前記第2対象物体が前記第1対象物体から落下することは、前記第1制御信号に基づき前記保持装置の姿勢を変化させることによって、前記保持装置が存在する方向とは異なる方向に向かって移動した前記第2対象物体が前記第1対象物体から落下することを含む
請求項17から20のいずれか一項に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の高さを変化させることを含む
請求項16から21のいずれか一項に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含み、
前記第1制御信号は、前記保持装置の姿勢の変化量に応じて前記保持装置の高さを変化させることによって、前記少なくとも第4対象物体が前記容器に落下を開始する位置よりも高い位置で、前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項22に記載の制御装置。 - 前記第1制御信号は、前記保持装置の姿勢を変化させつつ前記保持装置の高さを変化させることによって、前記少なくとも第4対象物体が前記容器に落下を開始する位置よりも高い位置で、前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項22又は23に記載の制御装置。 - 前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置の保持力を低下させることによって前記第2対象物体が前記第1対象物体から落下するように前記保持装置を制御するための信号を含む
請求項15から24のいずれか一項に記載の制御装置。 - 前記第1制御信号に基づき前記保持装置で前記第1対象物体を保持した状態で前記第2対象物体が前記第1対象物体から前記容器に落下した後、前記保持装置で保持された前記第1対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされる
請求項15から24のいずれか一項に記載の制御装置。 - 前記第1対象物体及び前記第2対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記演算装置は、前記第1対象物体及び前記第2対象物体が前記保持装置から落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を前記第1制御信号として生成する
請求項14から26のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記第1対象物体及び前記第2対象物体が前記保持装置から落下するように前記保持装置を制御するための信号を含む
請求項27に記載の制御装置。 - 前記第1制御信号は、前記保持装置を移動させることによって前記第1対象物体及び前記第2対象物体が前記保持装置から落下するように前記ロボットを制御するための信号を含む
請求項27又は28に記載の制御装置。 - 前記第1制御信号は、前記保持装置の高さを変化させることによって、前記少なくとも第4対象物体が前記容器に落下を開始する位置よりも高い位置で、前記第1対象物体及び前記第2対象物体が前記保持装置から落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項27から29のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記少なくとも第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み、
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方を制御しても前記少なくとも第2対象物体が落下していない場合に、前記少なくとも第2対象物体が落下するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
請求項1から30のいずれか一項に記載の制御装置。 - 前記制御態様は、前記ロボットの制御態様及び前記保持装置の制御態様の少なくとも一方を含む
請求項31に記載の制御装置。 - 前記ロボットの制御態様は、前記ロボットの制御による前記保持装置の移動方向、移動量、移動速度及び移動加速度の少なくとも一つを含む
請求項32に記載の制御装置。 - 前記保持装置の制御態様は、前記保持装置の保持力を含む
請求項32又は33に記載の制御装置。 - 前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第1対象物体を前記保持装置で保持した後に、前記第1制御信号を生成する
請求項1から34のいずれか一項に記載の制御装置。 - 前記演算装置は、計測装置の計測結果に基づいて、前記第1制御信号を生成する
請求項35に記載の制御装置。 - 前記演算装置は、前記計測結果に基づいて、落下することによって前記容器内に位置した前記少なくとも第2対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
請求項36に記載の制御装置。 - 前記所望姿勢は、落下することによって前記容器内に位置した前記少なくとも第2対象物体の所望部位が所望方向を向く姿勢を含む
請求項37に記載の制御装置。 - 前記所望部位は、予め設定された、前記保持装置で保持する前記対象物体の少なくとも一部である保持対象部位を含む
請求項38に記載の制御装置。 - 前記第1対象物体は、前記対象物体の少なくとも一部の形状を示すモデルと前記対象物体群を前記撮像システムにより撮像した前記撮像結果とを用いたマッチング処理の結果に基づいて、前記容器に収容された複数の前記対象物体のうちから前記保持装置で保持され、
前記所望部位は、前記少なくとも第2対象物体における、前記モデルに対応する部位を含む
請求項38又は39に記載の制御装置。 - 前記所望部位は、前記第2対象物体における、ユーザが指定した部位を含む
請求項38から40のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記少なくとも第2対象物体を撮像するために前記撮像システムが位置することが可能な方向を含む
請求項38から41のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記少なくとも第2対象物体を撮像する前記撮像システムに対して、落下することによって前記容器内に位置した前記少なくとも第2対象物体の前記所望部位が正対する方向を含む
請求項38から42のいずれか一項に記載の制御装置。 - 前記容器には、前記容器に収容された前記対象物体を保持するために、前記ロボットの制御によって前記保持装置が前記容器内に進入する開口が形成され、
前記所望方向は、落下することによって前記容器内に位置する前記少なくとも第2対象物体から見て前記開口の方向を含む
請求項38から43のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記少なくとも第2対象物体から見て上向きの方向を含む
請求項38から44のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記少なくとも第2対象物体から見て、前記容器の少なくとも一部が存在する方向とは異なる方向を含む
請求項38から45のいずれか一項に記載の制御装置。 - 前記演算装置は、前記計測結果に基づいて、前記少なくとも第2対象物体が前記容器内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
請求項36から46のいずれか一項に記載の制御装置。 - 前記所望位置は、前記容器内において前記対象物体が存在しない位置を含む
請求項47に記載の制御装置。 - 前記演算装置は、前記計測結果に基づいて、前記保持装置で保持されている前記第1対象物体及び前記第2対象物体のうち、前記第2対象物体のみを前記容器へ落下させるか、又は前記第1対象物体及び前記第2対象物体を前記容器へ落下させるかを判定し、前記判定の結果に基づいて前記第1制御信号を生成する
請求項36から48のいずれか一項に記載の制御装置。 - 前記演算装置は、前記第2対象物体のみを前記容器へ落下させると判定した場合、前記第1対象物体を保持した状態で、前記第2対象物体のみが前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む前記第1制御信号を生成する
請求項49に記載の制御装置。 - 前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって、前記第2対象物体のみが前記容器に落下するように前記ロボットを制御するための信号を含む
請求項50に記載の制御装置。 - 前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器への落下を開始した後に、前記保持装置に保持された前記第1対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされる
請求項50又は51に記載の制御装置。 - 前記演算装置は、前記第1対象物体及び前記第2対象物体を前記容器へ落下させると判定した場合、前記保持装置に保持された前記第1対象物体及び前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む前記第1制御信号を生成する
請求項49から52のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記保持装置の高さを変化させるように前記ロボットを制御した後に、前記第1対象物体及び前記第2対象物体が前記容器に落下するように前記保持装置を制御するための信号を含む
請求項53に記載の制御装置。 - 前記第1制御信号に基づき前記第1対象物体及び前記第2対象物体が前記容器へ落下した後に、前記容器に収容された複数の前記対象物体のうちの前記対象物体が前記保持装置で保持される、又は前記撮像システムで前記容器に収容された複数の前記対象物体のうちの少なくとも一部が撮像される
請求項53又は54に記載の制御装置。 - 前記計測装置は、前記撮像システムを含み、
前記演算装置は、前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第1対象物体を前記保持装置で保持した後に、前記撮像システムの撮像結果に基づいて前記第1制御信号を生成する
請求項36から55のいずれか一項に記載の制御装置。 - 前記第1制御信号の生成に用いられる前記撮像結果は、前記保持装置で保持されている前記第1対象物体及び前記第2対象物体の少なくとも一方を前記撮像システムで撮像した結果を含む
請求項56に記載の制御装置。 - 前記演算装置は、
前記対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記第1対象物体を前記保持装置で保持した後に、前記保持装置が、前記第1対象物体を前記保持装置で保持した時の位置から、前記容器に収容された複数の前記対象物体に対して離れるように前記ロボットを制御するための信号を前記第1制御信号の一部の信号として生成し、
前記第1制御信号の一部の前記信号に基づき前記容器に収容された複数の前記対象物体に対して離れるように移動した前記保持装置で保持されている前記第1対象物体及び前記第2対象物体の少なくとも一方が前記撮像システムで撮像される
請求項57に記載の制御装置。 - 前記第1制御信号の一部の前記信号は、前記第1対象物体を前記保持装置で保持した時の位置よりも高い位置に前記保持装置が移動するように前記ロボットを制御するための信号である
請求項58に記載の制御装置。 - 前記第1制御信号は、前記保持装置が、前記第1対象物体及び前記第2対象物体の少なくとも一方を前記撮像システムで撮像した時の位置から、前記容器に対して近づくように前記ロボットを制御するための信号を含む
請求項58又は59に記載の制御装置。 - 前記第1制御信号は、前記保持装置が、前記第1対象物体及び前記第2対象物体の少なくとも一方を前記撮像システムで撮像した時の位置から、前記容器に対して近づいた後に、前記少なくとも第2対象物体が落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項58から60のいずれか一項に記載の制御装置。 - 前記第1制御信号の生成に用いられる前記撮像結果は、前記容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した結果を含む
請求項56から61のいずれか一項に記載の制御装置。 - 前記第1制御信号の生成に用いられる前記撮像結果は、前記対象物体群を前記撮像システムにより撮像した前記撮像結果である
請求項62に記載の制御装置。 - 請求項1から63のいずれか一項に記載の制御装置と、
前記撮像システムと
を備える制御システム。 - 請求項1から63のいずれか一項に記載の制御装置と、
前記撮像システムと、
前記ロボットと
を備えるロボットシステム。 - 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
容器に収容された複数の前記対象物体の少なくとも一部を含む対象物体群を前記撮像システムにより撮像した撮像結果に基づいて前記対象物体群のうちの前記対象物体である第1対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第2対象物体が前記第1対象物体と共に前記保持装置で保持された場合、少なくとも前記第2対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することと、
前記第1制御信号に基づき前記少なくとも第2対象物体が前記容器に落下した後、前記容器に収容された複数の前記対象物体のうちの第3対象物体を前記保持装置で保持した時に前記容器に収容された複数の前記対象物体のうちの第4対象物体が前記第3対象物体と共に前記保持装置で保持された場合、前記少なくとも第2対象物体が前記容器に落下を開始する位置よりも低い位置から、少なくとも前記第4対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第2制御信号を前記制御信号として生成することと
を含む制御方法。 - 請求項66に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
- 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成する
制御装置。 - 前記演算装置は、
前記第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による前記保持動作が行われた後に、前記保持装置が、前記保持対象物体群を前記保持装置で保持した時の位置から、前記容器に収容された複数の前記対象物体に対して離れるように前記ロボットを制御するための信号を前記第1制御信号の一部の信号として生成し、
前記第1制御信号の一部の前記信号に基づき前記容器に収容された複数の前記対象物体に対して離れるように移動した前記保持装置で保持されている前記保持対象物体群を前記撮像システムで撮像した前記第2撮像結果に基づいて前記保持状態が検出される
請求項68に記載の制御装置。 - 前記第1制御信号の一部の前記信号は、前記保持対象物体群を前記保持装置で保持した時の位置よりも高い位置に前記保持装置が移動するように前記ロボットを制御するための信号を含む
請求項69に記載の制御装置。 - 前記演算装置は、前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記容器に落下を開始する位置は、前記第2撮像結果を得るために前記撮像システムで前記保持対象物体群を撮像する位置よりも前記容器に近い
請求項68から70のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記第2撮像結果を得るために前記撮像システムで前記保持対象物体群を撮像する位置よりも低い位置から、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項71に記載の制御装置。 - 前記保持動作は、前記容器に収容された複数の前記対象物体のうちの一つの前記対象物体を前記保持装置で保持するための動作を含み、
前記保持装置で保持された前記保持対象物体群のうちの前記一つの対象物体以外の前記対象物体は、前記保持動作によって前記一つの対象物体を保持する時に、前記保持装置で保持された余分な対象物体である
請求項68から72のいずれか一項に記載の制御装置。 - 前記保持動作は、前記第1撮像結果として前記撮像システムにより撮像された、前記容器に収容された複数の前記対象物体のうちの一部に含まれる一つの前記対象物体を前記保持装置で保持するための動作を含み、
前記保持装置で保持された前記保持対象物体群のうちの前記一つの対象物体以外の前記対象物体は、前記保持動作によって前記一つの対象物体を保持する時に、前記保持装置で保持された余分な対象物体である
請求項68から73のいずれか一項に記載の制御装置。 - 前記保持状態は、前記保持装置に保持されている前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とを含む
請求項68から74のいずれか一項に記載の制御装置。 - 前記演算装置は、前記第2撮像結果に基づいて、前記間接的に保持された状態と前記直接的に保持された状態とを判別し、その判別結果に基づいて前記第1制御信号を生成する
請求項75に記載の制御装置。 - 前記間接的に保持された状態は、前記保持装置に保持された前記保持対象物体群のうちの一の前記対象物体によって他の前記対象物体が保持された状態を含み、
前記直接的に保持された状態は、前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態を含む
請求項75又は76に記載の制御装置。 - 検出された前記保持状態が、前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態の場合、
前記第1制御信号は、前記一の対象物体を保持した状態で、前記他の対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項77に記載の制御装置。 - 前記第1制御信号は、前記一の対象物体を保持した状態で前記保持装置を移動させることによって、前記他の対象物体が前記容器に落下するように前記ロボットを制御するための信号を含む
請求項78に記載の制御装置。 - 前記第1制御信号に基づき前記他の対象物体が前記容器に落下した場合、前記保持装置で保持された前記一の対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされる
請求項78又は79に記載の制御装置。 - 前記演算装置は、前記保持装置で保持された前記一の対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第3制御信号を前記制御信号として生成する
請求項78から80のいずれか一項に記載の制御装置。 - 前記他の対象物体は1つの前記対象物体であり、
前記一の対象物体を第1対象物体とし、前記他の対象物体を第2対象物体とするとき、
前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって、前記第2対象物体が前記第1対象物体から前記容器に落下するように前記ロボットを制御するための信号を含む
請求項78から81のいずれか一項に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含む
請求項82に記載の制御装置。 - 前記第1制御信号によって前記保持装置の姿勢を変化させることは、前記保持装置で保持された前記第1対象物体の端部から前記保持装置の基準点に向かう方向に前記保持装置の前記基準点を回転移動させることを含む
請求項83に記載の制御装置。 - 前記第1対象物体の端部は、前記第1対象物体の端部のうちの前記保持装置の前記基準点から最も離れた部分である
請求項84に記載の制御装置。 - 前記第1制御信号によって前記第2対象物体が前記第1対象物体から落下することは、前記第1制御信号に基づいて、前記保持装置の姿勢を変化させる方向とは異なる方向に向かって移動した前記第2対象物体が前記第1対象物体から落下することを含む
請求項83から85のいずれか一項に記載の制御装置。 - 前記第1制御信号によって前記第2対象物体が前記第1対象物体から落下することは、前記第1制御信号に基づいて、前記保持装置の姿勢を変化させることによって、前記保持装置が存在する方向とは異なる方向に向かって移動した前記第2対象物体が前記第1対象物体から落下することを含む
請求項83から86のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記第1対象物体を保持した状態で前記保持装置を移動させることによって、第1落下高さで、前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項82から87のいずれか一項に記載の制御装置。 - 前記第1落下高さは、前記第1対象物体から落下する時の前記第2対象物体の高さ、前記第2対象物体が前記第1対象物体から落下する時の前記第1対象物体の高さ、又は前記第2対象物体が前記第1対象物体から落下する時の前記保持装置の高さである
請求項88に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の高さを変化させることを含む
請求項88又は89に記載の制御装置。 - 前記保持装置を移動させることは、前記保持装置の姿勢を変化させることを含み、
前記第1制御信号は、前記保持装置の姿勢の変化量に応じて前記保持装置の高さを変化させることによって、前記第1落下高さで、前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項90に記載の制御装置。 - 前記第1制御信号は、前記保持装置の姿勢を変化させつつ前記保持装置の高さを変化させることによって、前記第1落下高さで、前記第2対象物体が前記第1対象物体から落下するように前記ロボットを制御するための信号を含む
請求項90又は91に記載の制御装置。 - 検出された前記保持状態が、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項77から92のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群が前記容器に落下するように前記保持装置を制御するための信号を含む
請求項93に記載の制御装置。 - 前記第1制御信号に基づき前記保持装置に保持されている前記保持対象物体群が前記容器へ落下した後に、前記容器に収容された複数の前記対象物体のうちの前記対象物体が前記保持装置で保持される、又は前記撮像システムで前記容器に収容された複数の前記対象物体のうちの少なくとも一部が撮像される
請求項93又は94に記載の制御装置。 - 前記演算装置は、前記第1制御信号に基づき前記保持装置に保持されている前記保持対象物体群が前記容器へ落下した後に、前記容器に収容された複数の前記対象物体のうちの前記対象物体が前記保持装置で保持される、又は前記撮像システムで前記容器に収容された複数の前記対象物体のうちの少なくとも一部が撮像されるように前記ロボット及び前記保持装置の少なくとも一方を制御するための第3制御信号を前記制御信号として生成する
請求項93から95のいずれか一項に記載の制御装置。 - 前記保持装置に保持されている前記保持対象物体群は第1対象物体及び第2対象物体であり、
前記第1制御信号は、前記保持装置に保持されている前記第1対象物体及び前記第2対象物体が前記保持装置から前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項93から96のいずれか一項に記載の制御装置。 - 前記第1制御信号は、第1落下高さで、前記保持装置に保持されている前記第1対象物体及び前記第2対象物体が前記保持装置から前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項97に記載の制御装置。 - 前記第1制御信号は、前記保持装置の高さを変化させることによって前記第1落下高さに前記保持装置、前記第1対象物体、及び前記第2対象物体の少なくとも一つが位置するように前記ロボットを制御するための信号と、前記第1落下高さで、前記第1対象物体及び前記第2対象物体が前記保持装置から落下するように前記保持装置を制御するための信号とを含む
請求項98に記載の制御装置。 - 前記第1落下高さは、前記第1対象物体及び前記第2対象物体が落下する時の前記第1対象物体及び前記第2対象物体の少なくとも一方の高さ、又は前記第1対象物体及び前記第2対象物体が落下する時の前記保持装置の高さである
請求項98又は99に記載の制御装置。 - 前記演算装置は、計測装置による、前記容器に収容された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1落下高さを決定する
請求項88から92及び98から100のいずれか一項に記載の制御装置。 - 決定された前記第1落下高さで、少なくとも前記第2対象物体が前記容器に落下する位置は、前記計測装置で計測された、前記容器に収容された複数の前記対象物体の少なくとも一部を含む計測範囲に含まれる
請求項101に記載の制御装置。 - 前記演算装置は、前記容器に収容された複数の前記対象物体の少なくとも一部の前記計測装置による計測結果に基づいて算出される、前記容器に収容された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1落下高さを決定する
請求項101又は102に記載の制御装置。 - 前記計測装置は、前記撮像システムであり、
前記演算装置は、前記第1撮像結果に基づいて前記第1落下高さを決定する
請求項101から103のいずれか一項に記載の制御装置。 - 前記計測装置は、前記撮像システムであり、
前記演算装置は、前記保持装置による前記保持動作が行われた後に、前記容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムで撮像した第3撮像結果に基づいて前記第1落下高さを決定する
請求項101から104のいずれか一項に記載の制御装置。 - 前記演算装置は、計測装置による、前記容器に収容された複数の前記対象物体の少なくとも一部の計測結果に基づいて前記第1制御信号を生成する
請求項68から105のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記保持対象物体のうちの少なくとも一つである第1対象物体を保持した状態で前記保持装置を移動させることによって、第1落下高さから、前記保持対象物体のうちの少なくとも一つの前記対象物体である落下対象物体が落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含み、
前記演算装置は、前記計測結果に基づいて第1落下高さを決定する
請求項106に記載の制御装置。 - 前記演算装置は、前記計測装置による前記計測結果に基づいて、前記保持装置に保持されている前記保持対象物体群の少なくとも一つの前記対象物体である落下対象物体が、前記容器内の所望位置に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
請求項106又は107に記載の制御装置。 - 前記所望位置は、前記容器内において前記対象物体が存在しない位置を含む
請求項108に記載の制御装置。 - 前記演算装置は、前記計測装置による前記計測結果に基づいて算出される、前記容器に収容された複数の前記対象物体の少なくとも一部の高さ及び分量の少なくとも一方に基づいて前記第1制御信号を生成する
請求項106から109のいずれか一項に記載の制御装置。 - 前記計測装置は、前記高さ及び前記分量の少なくとも一方を直接的又は間接的に計測可能である
請求項109又は110に記載の制御装置。 - 前記撮像システムは、第1撮像システムであり、
前記計測装置は、前記第1撮像システム、及び前記第1撮像システムとは異なる第2撮像システムの少なくとも一方を含み、
前記演算装置は、前記第1及び第2撮像システムの少なくとも一方による第3撮像結果に基づいて、前記高さ又は前記分量の少なくとも一方を算出する
請求項103、110、又は111に記載の制御装置。 - 前記第3撮像結果は、前記第1及び第2撮像システムの少なくとも一方により、前記容器に収容された複数の前記対象物体の少なくとも一部を撮像した結果を含む
請求項112に記載の制御装置。 - 前記第3撮像結果は、前記容器の表面のうち複数の前記対象物体の少なくとも一部が位置する空間に面する位置に配置された少なくとも一つのマーカの撮像結果を含む
請求項112又は113に記載の制御装置。 - 前記計測装置は、前記容器に収容された複数の前記対象物体の少なくとも一部の重量を計測可能な重量センサを含む
請求項101から114のいずれか一項に記載の制御装置。 - 前記計測装置は、前記容器に収容された複数の前記対象物体のうちの少なくとも一つの前記対象物体を検出可能な少なくとも一つのセンサを含む
請求項101から115のいずれか一項に記載の制御装置。 - 前記少なくとも一つのセンサは、前記容器に配置されている
請求項116に記載の制御装置。 - 前記演算装置は、前記容器から搬出され、前記容器の外で前記保持装置からリリースされた前記対象物体の数に基づいて前記第1落下高さを決定する
請求項88から92、98から105及び107のいずれか一項に記載の制御装置。 - 前記演算装置は、前記容器から搬出され、前記容器の外で前記保持装置からリリースされた前記対象物体の数に基づいて前記第1制御信号を生成する
請求項68から118のいずれか一項に記載の制御装置。 - 前記第1制御信号は、前記保持装置に保持されている前記保持対象物体群の前記保持状態に基づき前記演算装置で生成された、前記保持対象物体群のうちの少なくとも一つの前記対象物体である落下対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項68から119のいずれか一項に記載の制御装置。 - 前記保持状態は、前記保持対象物体群のうちの少なくとも前記落下対象物体の位置及び姿勢の少なくとも一方を含む
請求項120に記載の制御装置。 - 前記第1制御信号は、前記保持状態に基づき前記演算装置で生成された、落下することによって前記容器内に位置した前記落下対象物体の姿勢が所望姿勢となるように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号を含む
請求項120又は121に記載の制御装置。 - 前記所望姿勢は、落下することによって前記容器内に位置した前記落下対象物体の所望部位が所望方向を向く姿勢を含む
請求項122に記載の制御装置。 - 前記所望部位は、予め設定された、前記保持装置で保持する前記対象物体の少なくとも一部である保持対象部位を含む
請求項123に記載の制御装置。 - 前記保持動作は、前記対象物体の少なくとも一部の形状を示すモデルと前記第1撮像結果とを用いたマッチング処理の結果に基づいて行われ、
前記所望部位は、前記落下対象物体における、前記モデルに対応する部位を含む
請求項123又は124に記載の制御装置。 - 前記所望部位は、前記落下対象物体における、ユーザが指定した部位を含む
請求項123から125のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記落下対象物体を撮像するために前記撮像システムが位置することが可能な方向を含む
請求項123から126のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記落下対象物体を撮像する前記撮像システムに対して、落下することによって前記容器内に位置した前記落下対象物体の前記所望部位が正対する方向を含む
請求項123から127のいずれか一項に記載の制御装置。 - 前記容器には、前記容器に収容された前記対象物体を保持するために、前記ロボットの制御によって前記保持装置が前記容器内に進入する開口が形成され、
前記所望方向は、落下することによって前記容器内に位置する前記落下対象物体から見て前記開口の方向を含む
請求項123から128のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記落下対象物体から見て上向きの方向を含む
請求項123から129のいずれか一項に記載の制御装置。 - 前記所望方向は、落下することによって前記容器内に位置した前記落下対象物体から見て、前記容器の少なくとも一部が存在する方向とは異なる方向を含む
請求項123から130のいずれか一項に記載の制御装置。 - 前記演算装置は、計測装置による計測結果と前記保持装置に保持されている前記保持対象物体群の前記保持状態とに基づいて、前記落下対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成する
請求項123から131のいずれか一項に記載の制御装置。 - 前記計測装置は、前記撮像システムを含み、
前記計測結果は、前記容器に収容された複数の前記対象物体の少なくとも一部の前記撮像システムによる撮像結果を含む
請求項132に記載の制御装置。 - 前記第1制御信号は、前記保持対象物体群のうちの少なくとも一つの前記対象物体である落下対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための第1信号を含み
前記演算装置は、前記第1信号に基づき前記ロボット及び前記保持装置の少なくとも一方が制御されている最中又は制御された後に、計測装置による計測結果に基づいて、前記保持装置に前記落下対象物体が保持されているか否かを判別する
請求項68から133のいずれか一項に記載の制御装置。 - 前記計測装置は、前記撮像システムであり、
前記計測結果は、前記撮像システムによる撮像結果である
請求項134に記載の制御装置。 - 前記第1信号は、前記落下対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号であり、
前記演算装置が、前記保持装置に前記落下対象物体の少なくとも一つが保持されていると判別した場合、前記演算装置は、前記落下対象物体の少なくとも一つが落下するように、前記第1信号に基づく制御態様とは異なる制御態様で前記ロボット及び前記保持装置の少なくとも一方を制御するための第2信号を前記第1制御信号の一部の信号として生成する
請求項134又は135に記載の制御装置。 - 前記制御態様は、前記ロボットの制御態様及び前記保持装置の制御態様の少なくとも一方を含み、
前記ロボットの制御態様は、前記ロボットの制御による前記保持装置の移動方向、移動量、移動速度及び移動加速度の少なくとも一つを含み、
前記保持装置の制御態様は、前記保持装置の保持力を含む
請求項136に記載の制御装置。 - 前記演算装置は、
前記保持状態に基づいて、前記保持対象物体群のうちの少なくとも一つの前記対象物体が前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記第1制御信号を生成し、
前記第2撮像結果に基づいて、前記第1制御信号に基づき前記容器に落下した前記対象物体の位置及び姿勢の少なくとも一方を推定し、
推定された前記対象物体の位置及び姿勢の少なくとも一方に基づいて、前記対象物体に対して前記保持装置による保持動作が行われる
請求項1から137のいずれか一項に記載の制御装置。 - 前記他の対象物体は二つの対象物体であり、
前記演算装置は、前記制御信号は、前記一の対象物体が前記保持装置で保持された状態で、前記二つの対象物体が前記容器に落下するように前記ロボット及び前記保持装置を制御するための信号を含む
請求項77から92のいずれか一項に記載の制御装置。 - 前記他の対象物体は第1対象物体及び第2対象物体であり、
前記保持装置に保持された前記一の対象物体によって前記他の対象物体が保持された状態は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持され、前記一の対象物体によって保持された前記第1対象物体によって前記第2対象物体が保持された状態であり、
前記制御信号は、前記保持装置に保持された前記一の対象物体によって前記第1対象物体が保持された状態で、前記第2対象物体が前記第1対象物体から前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号と、前記一の対象物体が前記保持装置に保持された状態で、前記第1対象物体が前記一の対象物体から前記容器に落下するように前記ロボット及び前記保持装置の少なくとも一方を制御するための信号とを含む
請求項139に記載の制御装置。 - 前記保持対象物体群は、三つの前記対象物体であり、
前記保持対象物体群のうちの二つの前記対象物体又は三つの前記対象物体のそれぞれが前記保持装置によって直接保持された状態の場合、
前記制御信号は、前記一の対象物体を保持した状態で前記保持装置に直接保持された前記二つの対象物体又は前記三つの対象物体が前記容器に落下するように前記ロボット及び前記保持装置を制御するための信号を含む
請求項77及び93から120のいずれか一項に記載の制御装置。 - 請求項68から141のいずれか一項に記載の制御装置と、
前記撮像システムと
を備える制御システム。 - 請求項1から141のいずれか一項に記載の制御装置と、
前記撮像システムと、
前記ロボットと
を備えるロボットシステム。 - 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて、前記容器に収容された前記対象物体に対して前記保持装置による保持動作が行われた後に、前記保持装置に保持されている複数の前記対象物体である保持対象物体群を前記撮像システムにより撮像した第2撮像結果に基づいて検出された前記保持装置に保持されている前記保持対象物体群の保持状態に基づいて前記ロボット及び前記保持装置の少なくとも一方を制御するための第1制御信号を前記制御信号として生成することを含む
制御方法。 - 請求項144に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
- 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御装置であって、
前記制御信号を生成する演算装置と、
前記演算装置で生成された前記制御信号を出力する通信装置と
を備え、
前記演算装置は、
容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置で保持された前記対象物体の個数を判定し、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
制御装置。 - 前記演算装置は、前記個数が1つと判定された場合と複数と判定された場合とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
請求項146に記載の制御装置。 - 前記演算装置は、前記個数が複数と判定された場合、前記保持装置に保持された前記複数の前記対象物体のうちの少なくとも一つの前記対象物体が前記保持装置で間接的に保持された状態と、前記保持装置に保持されている前記保持対象物体群のうちの二つ以上の前記対象物体が前記保持装置で直接的に保持された状態とで前記制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
請求項146又は147に記載の制御装置。 - 前記演算装置は、前記個数が1つと判定された場合、前記保持装置で保持された1つの前記対象物体が前記容器から搬出され、前記容器の外で前記保持装置からリリースされるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成する
請求項146から148のいずれか一項に記載の制御装置。 - 前記ロボットの制御態様は、前記ロボットの制御による前記保持装置の移動方向、移動量、移動速度及び移動加速度の少なくとも一つを含み、
前記保持装置の制御態様は、前記保持装置の保持力を含む
請求項146から149のいずれか一項に記載の制御装置。 - 請求項146から150のいずれか一項に記載の制御装置と、
前記撮像システムと
を備える制御システム。 - 請求項146から150のいずれか一項に記載の制御装置と、
前記撮像システムと、
前記ロボットと
を備えるロボットシステム。 - 対象物体を保持可能な保持装置と前記対象物体を撮像する撮像システムとが設けられ、且つ前記保持装置と前記撮像システムとを移動させるロボット、及び前記保持装置の少なくとも一方を制御するための制御信号を生成する制御方法であって、
容器に収容された複数の前記対象物体の少なくとも一部を前記撮像システムにより撮像した第1撮像結果に基づいて前記容器に収容された前記対象物体に対して前記保持装置による保持動作を行った後に、前記保持装置に保持されている前記対象物体を撮像した第2撮像結果に基づいて前記保持装置で保持された前記対象物体の個数を判定することと、
判定された前記個数に応じて前記ロボット及び前記保持装置の少なくとも一方の制御態様が異なるように前記ロボット及び前記保持装置の少なくとも一方を制御するための前記制御信号を生成することと
を含む制御方法。 - 請求項153に記載の制御方法をコンピュータに実行させるコンピュータプログラム。
Priority Applications (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202380104339.3A CN122341467A (zh) | 2023-11-28 | 2023-11-28 | 控制装置、控制系统、机器人系统、控制方法及计算机程序 |
| PCT/JP2023/042576 WO2025115102A1 (ja) | 2023-11-28 | 2023-11-28 | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/JP2023/042576 WO2025115102A1 (ja) | 2023-11-28 | 2023-11-28 | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| WO2025115102A1 true WO2025115102A1 (ja) | 2025-06-05 |
Family
ID=95897224
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| PCT/JP2023/042576 Pending WO2025115102A1 (ja) | 2023-11-28 | 2023-11-28 | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム |
Country Status (2)
| Country | Link |
|---|---|
| CN (1) | CN122341467A (ja) |
| WO (1) | WO2025115102A1 (ja) |
Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05185388A (ja) * | 1992-01-14 | 1993-07-27 | Nippondenso Co Ltd | 部品供給装置 |
| JPH09147121A (ja) * | 1995-11-24 | 1997-06-06 | Toyoda Mach Works Ltd | ロボットの物体認識方法及びその装置 |
| JP2002210685A (ja) * | 2001-01-17 | 2002-07-30 | Murata Mach Ltd | ワークピッキング装置 |
| JP2014205209A (ja) * | 2013-04-11 | 2014-10-30 | 三菱電機株式会社 | ロボットシステム、及びロボットシステムの制御方法 |
| JP2014240110A (ja) * | 2013-06-12 | 2014-12-25 | 三菱電機株式会社 | ビンピッキング性能評価装置及び方法 |
| JP2017154231A (ja) * | 2016-03-03 | 2017-09-07 | ファナック株式会社 | バラ積みワークのピッキングシステムおよびピッキング方法 |
| JP2020157436A (ja) * | 2019-03-27 | 2020-10-01 | Ntn株式会社 | ワーク取り出し作業装置 |
| JP2020189387A (ja) * | 2019-05-23 | 2020-11-26 | 三菱電機株式会社 | 部品取り出し装置 |
| JP2022076656A (ja) * | 2020-11-10 | 2022-05-20 | セイコーエプソン株式会社 | ロボットプログラム、ワーク拾い上げ方法、制御装置およびロボットシステム |
| US20220315358A1 (en) * | 2021-03-19 | 2022-10-06 | Dexterity, Inc. | Robotic singulation system sensor |
| JP2023023313A (ja) * | 2021-08-05 | 2023-02-16 | ヤマハ発動機株式会社 | 把持システム |
-
2023
- 2023-11-28 CN CN202380104339.3A patent/CN122341467A/zh active Pending
- 2023-11-28 WO PCT/JP2023/042576 patent/WO2025115102A1/ja active Pending
Patent Citations (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPH05185388A (ja) * | 1992-01-14 | 1993-07-27 | Nippondenso Co Ltd | 部品供給装置 |
| JPH09147121A (ja) * | 1995-11-24 | 1997-06-06 | Toyoda Mach Works Ltd | ロボットの物体認識方法及びその装置 |
| JP2002210685A (ja) * | 2001-01-17 | 2002-07-30 | Murata Mach Ltd | ワークピッキング装置 |
| JP2014205209A (ja) * | 2013-04-11 | 2014-10-30 | 三菱電機株式会社 | ロボットシステム、及びロボットシステムの制御方法 |
| JP2014240110A (ja) * | 2013-06-12 | 2014-12-25 | 三菱電機株式会社 | ビンピッキング性能評価装置及び方法 |
| JP2017154231A (ja) * | 2016-03-03 | 2017-09-07 | ファナック株式会社 | バラ積みワークのピッキングシステムおよびピッキング方法 |
| JP2020157436A (ja) * | 2019-03-27 | 2020-10-01 | Ntn株式会社 | ワーク取り出し作業装置 |
| JP2020189387A (ja) * | 2019-05-23 | 2020-11-26 | 三菱電機株式会社 | 部品取り出し装置 |
| JP2022076656A (ja) * | 2020-11-10 | 2022-05-20 | セイコーエプソン株式会社 | ロボットプログラム、ワーク拾い上げ方法、制御装置およびロボットシステム |
| US20220315358A1 (en) * | 2021-03-19 | 2022-10-06 | Dexterity, Inc. | Robotic singulation system sensor |
| JP2023023313A (ja) * | 2021-08-05 | 2023-02-16 | ヤマハ発動機株式会社 | 把持システム |
Also Published As
| Publication number | Publication date |
|---|---|
| CN122341467A (zh) | 2026-07-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US20240017417A1 (en) | Method and computing system for performing motion planning based on image information generated by a camera | |
| US12421054B2 (en) | Robotic multi-surface gripper assemblies and methods for operating the same | |
| JP6966757B1 (ja) | オブジェクトを把持及び保持するためのロボット式マルチグリッパアセンブリ及び方法 | |
| US11383380B2 (en) | Object pickup strategies for a robotic device | |
| US9630316B2 (en) | Real-time determination of object metrics for trajectory planning | |
| JP6374993B2 (ja) | 複数の吸着カップの制御 | |
| JP7175487B1 (ja) | 画像ベースのサイジングメカニズムを備えたロボットシステム及びロボットシステムを操作するための方法 | |
| CN118613354A (zh) | 用于机器人操纵器的抓取规划的系统和方法 | |
| KR20250114098A (ko) | 로봇형 매니퓰레이터를 제어하기 위한 방법 및 제어 시스템 | |
| WO2025069297A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| WO2025141878A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| JP7021620B2 (ja) | マニピュレータおよび移動ロボット | |
| WO2025069296A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| WO2025069298A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| WO2025187059A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| CN113219900B (zh) | 基于相机生成的图像信息执行运动规划的方法和计算系统 | |
| WO2026004129A1 (ja) | 制御装置、制御システム、ロボットシステム、制御方法及びコンピュータプログラム | |
| WO2026069666A1 (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: 23960123 Country of ref document: EP Kind code of ref document: A1 |
|
| ENP | Entry into the national phase |
Ref document number: 2025560418 Country of ref document: JP Kind code of ref document: A |
|
| WWE | Wipo information: entry into national phase |
Ref document number: 2025560418 Country of ref document: JP |
|
| NENP | Non-entry into the national phase |
Ref country code: DE |