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

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

Info

Publication number
WO2024247136A1
WO2024247136A1 PCT/JP2023/020185 JP2023020185W WO2024247136A1 WO 2024247136 A1 WO2024247136 A1 WO 2024247136A1 JP 2023020185 W JP2023020185 W JP 2023020185W WO 2024247136 A1 WO2024247136 A1 WO 2024247136A1
Authority
WO
WIPO (PCT)
Prior art keywords
target
work
candidates
control device
evaluation value
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.)
Ceased
Application number
PCT/JP2023/020185
Other languages
English (en)
French (fr)
Inventor
龍平 藤田
響 入江
孝一 正岡
裕規 高山
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Kawasaki Heavy Industries Ltd
Kawasaki Motors Ltd
Original Assignee
Kawasaki Heavy Industries Ltd
Kawasaki Jukogyo KK
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Kawasaki Heavy Industries Ltd, Kawasaki Jukogyo KK filed Critical Kawasaki Heavy Industries Ltd
Priority to JP2025523767A priority Critical patent/JPWO2024247136A1/ja
Priority to PCT/JP2023/020185 priority patent/WO2024247136A1/ja
Publication of WO2024247136A1 publication Critical patent/WO2024247136A1/ja
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Images

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

Definitions

  • the technology disclosed herein relates to a control device, a robot system, and a method for controlling a robot.
  • Control devices that control robots that place workpieces are known in the past. For example, the control device described in Patent Document 1 calculates the placement position of the workpiece. The control device scans the free space in the storage container to search for a placement position where the workpiece will not interfere with other existing workpieces.
  • the control device of the present disclosure includes a searcher that searches for multiple position candidates that are candidates for the target placement position of the target work in the storage space, an evaluator that calculates an evaluation value for each of the multiple position candidates, and a determiner that determines the target placement position from among the multiple position candidates based on the evaluation value, and the evaluator calculates the evaluation value based on the vacant space in the storage space after the target work is placed in each of the position candidates.
  • the robot system disclosed herein comprises a robot having a robot arm and a hand attached to the robot arm, and the control device.
  • the robot control method disclosed herein is a method for controlling a robot having a robot arm and a hand attached to the robot arm, and includes searching for a plurality of position candidates that are candidates for a target position for placing a target workpiece in an accommodation space, calculating an evaluation value for each of the plurality of position candidates, and determining the target position for placing from among the plurality of position candidates based on the evaluation value, and calculating the evaluation value calculates the evaluation value based on the vacant space in the accommodation space after the target workpiece has been placed in each of the position candidates.
  • the control device can achieve appropriate placement of multiple workpieces.
  • the robot system described above can achieve appropriate placement of multiple workpieces.
  • the robot control method described above makes it possible to realize appropriate placement of multiple workpieces.
  • FIG. 1 is a schematic diagram showing the configuration of a robot system.
  • FIG. 2 is a diagram showing a schematic hardware configuration of the robot control device and the main control device.
  • FIG. 3 is a block diagram showing the configuration of a control system of the processor.
  • FIG. 4 is a view of the inside of the first container as seen from above.
  • FIG. 5 is an explanatory diagram showing the hand when picking up the target workpiece.
  • FIG. 6 is an exemplary perspective view showing the inside of the second container.
  • FIG. 7 is a schematic plan view of the inside of the second container for explaining the search for position candidates.
  • FIG. 8 is a schematic plan view of the inside of the second container for explaining the narrowing down of position candidates.
  • FIG. 1 is a schematic diagram showing the configuration of a robot system.
  • FIG. 2 is a diagram showing a schematic hardware configuration of the robot control device and the main control device.
  • FIG. 3 is a block diagram showing the configuration of a control system of the processor.
  • FIG. 4 is
  • FIG. 9 is an exemplary perspective view of the inside of the second container showing the empty space after the target workpiece has been placed.
  • FIG. 10 is a diagram showing a plurality of types of virtual workpieces.
  • FIG. 11 is a schematic plan view of the inside of the second container for explaining the calculation of the evaluation value.
  • FIG. 12 is a flow chart of the pick and place process.
  • FIG. 13 is a flow chart of the pickup position planning subroutine.
  • FIG. 14 is a schematic diagram showing the relative position and orientation of the hand when viewed in the direction of the reference axis.
  • FIG. 10 is a diagram showing a plurality of types of virtual workpieces.
  • FIG. 11 is a schematic plan view of the inside of the second container for explaining the calculation of the evaluation value.
  • FIG. 12 is a flow chart of the pick and place process.
  • FIG. 13 is a flow chart of the pickup position planning subroutine.
  • FIG. 14 is a schematic diagram showing the relative position and orientation of the hand when viewed in
  • FIG. 15 is a schematic diagram showing a region where the angle between the side serving as the reference side and the offset direction of the suction unit is equal to or greater than a threshold value ⁇ , and a region where the angle is less than the threshold value ⁇ .
  • FIG. 16 is a flow chart of the place location planning subroutine.
  • Figure 1 is a schematic diagram showing the configuration of a robot system 100.
  • the robot system 100 includes a robot 1 and a main control device 3 that controls the robot 1.
  • the main control device 3 controls the robot 1 to cause the robot 1 to execute a process.
  • the process performed by the robot 1 is a pick-and-place process.
  • the robot 1 picks up a target workpiece from a first container 91 in which multiple workpieces are piled up randomly, and transfers it into a second container 92.
  • the robot 1 arranges the target workpieces in a regular pattern in the second container 92.
  • the robot system 100 arranges the multiple workpieces in the first container 91 into the second container 92 by repeating the pick-and-place process.
  • the target workpiece has, for example, a roughly rectangular parallelepiped shape.
  • the robot system 100 may include a camera 51 that captures an image of the workpiece.
  • the camera 51 may include a first camera 51A that captures an image inside the first container 91 and a second camera 51B that captures an image inside the second container 92.
  • the first camera 51A is fixedly disposed above the first container 91.
  • the first camera 51A captures an image inside the first container 91 from above.
  • the first camera 51A captures an image including a plurality of workpieces inside the first container 91.
  • the second camera 51B is fixedly disposed above the second container 92.
  • the second camera 51B captures an image inside the second container 92 from above.
  • the second camera 51B captures an image including a plurality of workpieces inside the second container 92.
  • the first camera 51A and the second camera 51B are not distinguished from each other, they will be simply referred to as cameras 51.
  • the image is a two-dimensional image or a three-dimensional image.
  • the three-dimensional image can be point cloud data, an RGB-D image, an RGB image, a depth image, or a voxel, etc.
  • the camera 51 can be a three-dimensional camera, i.e., an RGB-D camera that outputs an RGB-D image, a stereo camera that acquires an RGB image, or a three-dimensional vision sensor that acquires point cloud data, etc.
  • the robot 1 has a robot arm 12 and a hand 14 attached to the robot arm 12.
  • the robot 1 is an industrial robot.
  • the hand 14 is a so-called end effector.
  • a base coordinate system of three orthogonal axes is defined in a space in which the robot 1 is disposed.
  • the robot arm 12 is configured to operate in a three-dimensional manner. Specifically, the robot arm 12 is configured to perform operations including translation with at least three degrees of freedom.
  • the robot arm 12 is a vertical multi-joint robot arm.
  • the robot arm 12 is supported by the base 10.
  • the robot arm 12 has multiple links, multiple joints that connect the multiple links, and a servo motor that rotates the multiple joints.
  • the robot arm 12 has a first link 12a connected to the base 10, a second link 12b connected to the first link 12a, a third link 12c connected to the second link 12b, a fourth link 12d connected to the third link 12c, and a fifth link 12e connected to the fourth link 12d.
  • the base 10 and the first link 12a are connected to each other via a first joint 13a that can rotate around an axis extending in the vertical direction.
  • the first link 12a and the second link 12b are connected to each other via a second joint 13b that can rotate around an axis extending in the horizontal direction.
  • the second link 12b and the third link 12c are connected to each other via a third joint 13c that can rotate around an axis extending in the horizontal direction.
  • the third link 12c and the fourth link 12d are connected to each other via a fourth joint 13d that can rotate around the axis of the fourth link 12d (i.e., the direction in which the fourth link 12d extends).
  • the fourth link 12d and the fifth link 12e are connected to each other via a fifth joint 13e that can rotate around an axis perpendicular to the axis of the fourth link 12d.
  • the robot arm 12 has servo motors 16 (see Figure 2) that rotate each joint.
  • Each servo motor 16 has an encoder 16a (see Figure 2).
  • the robot arm 12 thus configured is configured to perform translational movements in the directions of each of the three orthogonal axes, and rotational movements around each of the three orthogonal axes.
  • the hand 14 includes a suction device 15 that is positioned at a position offset in the radial direction around a predetermined reference axis T of the robot arm 12.
  • the suction device 15 is positioned eccentrically with respect to the reference axis T.
  • the hand 14 has a base 14a that is attached to the robot arm 12.
  • the base 14a extends in the radial direction around the reference axis T.
  • the suction device 15 is attached to the end of the base 14a that is farther from the reference axis T via a plate, block, or the like.
  • the suction device 15 is configured to be able to change its position relative to the robot arm 12.
  • the hand 14 is attached to the robot arm 12 so as to be rotatable around the reference axis T.
  • the hand 14 is connected to the tip of the robot arm 12, i.e., the fifth link 12e.
  • the fifth link 12e and the hand 14 are connected to each other via the sixth joint 13f so as to be rotatable around the reference axis T.
  • the suction device 15 changes its relative position with respect to the robot arm 12 by rotating the hand 14 around the reference axis T.
  • the hand 14 sucks the workpiece with a suction device 15.
  • the suction device 15 has a suction pad.
  • An air hose that is connected to a negative pressure generator is connected to the suction device 15.
  • the air hose is provided with a solenoid valve that serves as an actuator 15a (see Figure 2). By controlling the solenoid valve, the suction device 15 can switch between suction and release.
  • the suction device 15 sucks the surface of the target workpiece W.
  • the air hose is provided with a pressure sensor 15b (see Figure 2).
  • the pressure sensor 15b detects the magnitude of the negative pressure in the air hose.
  • FIG. 2 is a diagram showing the general hardware configuration of the robot controller 2 and the main controller 3.
  • the main controller 3 transmits and receives signals and information to and from the robot controller 2.
  • the main controller 3 controls the robot 1 via the robot controller 2.
  • the main controller 3 outputs commands to the robot controller 2.
  • the robot controller 2 controls the servo motor 16 of the robot arm 12 in response to commands from the main controller 3.
  • Images from the first camera 51A and the second camera 51B are input to the main control device 3.
  • the main control device 3 detects the target workpiece W based on the images.
  • the main control device 3 generates a target path for the robot 1 based on the detected target workpiece W, and outputs a command corresponding to the generated target path to the robot control device 2.
  • An actuator 15a and a pressure sensor 15b are connected to the main control device 3.
  • the main control device 3 controls suction by the hand 14 via the actuator 15a and the pressure sensor 15b.
  • the main control device 3 is an example of a control device.
  • the robot control device 2 has a processor 21, a memory 22, and a memory 23.
  • the processor 21 controls the entire robot control device 2.
  • the processor 21 performs various types of arithmetic processing.
  • the processor 21 is formed of a processor such as a CPU (Central Processing Unit).
  • the processor 21 may also be formed of an MCU (Micro Controller Unit), an MPU (Micro Processor Unit), an FPGA (Field Programmable Gate Array), a PLC (Programmable Logic Controller), a system LSI, etc.
  • the memory 22 stores the programs executed by the processor 21 and various data.
  • the memory 22 is formed of a non-volatile memory, a hard disc drive (HDD), a solid state drive (SSD), etc.
  • the memory 23 temporarily stores data, etc.
  • the memory 23 is formed of a volatile memory.
  • the processor 21 drives the servo motor 16 based on a command from the main control device 3. At this time, the robot control device 2 feedback controls the current supplied to the servo motor 16 based on the detection result of the encoder 16a.
  • the main control device 3 has a processor 31, a memory 32, and a memory 33.
  • the processor 31 controls the entire main control device 3.
  • the processor 31 performs various types of arithmetic processing.
  • the processor 31 is formed of a processor such as a CPU (Central Processing Unit).
  • the processor 31 may also be formed of an MCU (Micro Controller Unit), an MPU (Micro Processor Unit), an FPGA (Field Programmable Gate Array), a PLC (Programmable Logic Controller), a system LSI, etc.
  • the memory 32 stores the programs and various data executed by the processor 31.
  • the memory 32 is formed of a non-volatile memory, a HDD (Hard Disc Drive), an SSD (Solid State Drive), etc.
  • the memory 32 stores an object detection program that detects objects, a position and orientation determination program that determines the position and orientation of the hand 14, and a path generation program that generates a target path for the robot 1.
  • the various programs cause the main control device 3 to realize various functions.
  • Memory 33 temporarily stores data, etc.
  • memory 33 is formed of a volatile memory.
  • Memory 33 stores images from camera 51.
  • the processor 31 causes the robot 1 to execute a picking operation in which the hand 14 moves to the target workpiece W and causes the suction device 15 to pick up the target workpiece W, and a placing operation in which the hand 14 that has picked up the target workpiece W moves to a target placement position and causes the suction device 15 to release the suction from the target workpiece W.
  • the processor 31 causes the robot 1 to execute a placing operation after the picking operation.
  • the processor 31 determines the relative position and orientation of the hand 14, which is the position and orientation of the hand 14 with respect to the target workpiece W at the time of picking. Prior to the placing operation, the processor 31 determines the target placement position of the target workpiece W at the time of placing.
  • FIG. 3 is a block diagram showing the configuration of the control system of the processor 31.
  • the processor 31 realizes various functions by reading out a program from the storage device 32 to the memory 33 and expanding it.
  • the processor 31 functions as a searcher 47 that searches for multiple position candidates that are candidates for the target position of the target work in the storage space, an evaluator 48 that calculates the evaluation value of each of the multiple position candidates, and a determiner 49 that determines the target position of the target work based on the evaluation value from among the multiple position candidates.
  • the processor 31 also functions as a height detector 46 that detects height information of the storage space.
  • the processor 31 can also function as a work detector 41 that detects the target work W to be picked, a position and orientation determiner 42 that determines the relative position and orientation of the hand 14, a path generator 43 that generates the target path of the robot arm 12 and the hand 14, an operation controller 44 that causes the robot arm 12 and the hand 14 to execute the picking operation and the placing operation, and an image capture controller 45 that causes the camera 51 to acquire an image.
  • the photography controller 45 controls the first camera 51A and the second camera 51B to capture images from each of the first camera 51A and the second camera 51B.
  • the first camera 51A captures an image of the inside of the first container 91.
  • the second camera 51B captures an image of the inside of the second container 92.
  • the photography controller 45 stores the images from the cameras 51 in the memory 33.
  • the work detector 41 detects the target work W from within the image by image recognition.
  • the image may include multiple workpieces.
  • the work detector 41 performs plane detection, for example, by RANSAC (Random Sample Consensus) to detect the surface of the target work W (hereinafter referred to as the "target surface S").
  • RANSAC Random Sample Consensus
  • the work detector 41 detects the target work W by detecting a plane of a predetermined shape included in the image.
  • FIG. 4 is a view of the inside of the first container 91 from above.
  • the work detector 41 can detect multiple target surfaces S, i.e., multiple target workpieces W.
  • the work detector 41 determines at least the center position of the target surface S, the normal direction of the target surface S, the vertical and horizontal orientations of the target surface S, and the size of the target surface S (e.g., the vertical and horizontal sizes).
  • the size of the target surface S may be stored in advance in the memory 32.
  • the position and orientation determiner 42 determines the relative position and orientation of the hand 14 during picking, using the target surface S detected as the target workpiece W as the suction surface.
  • FIG. 5 is an explanatory diagram showing the hand 14 when suctioning the target workpiece W.
  • the position and orientation of the hand 14 is determined so that the suction device 15 is located at the suction position on the target surface S.
  • the suction position is, for example, the center of the target surface S. Since the suction device 15 is eccentric with respect to the reference axis T, even if the position of the suction device 15 is determined, the reference axis T can be positioned at any position within 360 degrees around the suction device 15.
  • the relative position and orientation of the hand 14 is determined by the position of the suction device 15 relative to the target workpiece W, the position of the reference axis T, and the orientation of the reference axis T. In other words, when the relative position and orientation of the hand 14 is determined, the position and orientation of the reference axis T relative to the target workpiece W and the offset direction of the suction device 15 relative to the reference axis T are determined.
  • the "offset direction of the suction device 15 relative to the reference axis T" is the direction in which a straight line connecting the reference axis T and the suction device 15 extends from the reference axis T when viewed in the direction of the reference axis T, and in this example, is the direction in which the base 14a extends from the reference axis T.
  • the offset direction of the suction device 15 relative to the reference axis T is the eccentric direction of the suction device 15 relative to the reference axis T.
  • the offset direction of the suction device 15 relative to the reference axis T will be simply referred to as the "offset direction of the suction device 15."
  • the position and orientation determiner 42 determines the relative position and orientation of the hand 14 so that when viewed in the direction of the reference axis T, the reference side of the target workpiece W (hereinafter referred to as the "reference side") does not overlap with the hand 14, and the offset direction of the suction device 15 relative to the reference axis T is non-parallel to the reference side.
  • the "side of the target workpiece W" is the part of the target workpiece W that faces to the side. Specifically, it is the part of the target workpiece W that faces in a direction that intersects with the normal direction when the target workpiece W is viewed in the direction of the reference axis T. In other words, the side of the target workpiece W is the side of the target workpiece W that intersects with the suction surface that is suctioned by the suction device 15.
  • the target workpiece W since the target workpiece W has a roughly rectangular parallelepiped shape, the part of the target workpiece W that faces in a direction that is roughly perpendicular to the normal direction of the target surface S, that is, the four side surfaces other than the target surface S and the surface opposite it, are the side of the target workpiece W.
  • the path generator 43 generates a target path for the robot arm 12 and the hand 14.
  • the target path is an ordered set of target positions and target postures of the robot arm 12 and the hand 14. That is, the target path is a change over time of the target position and target posture of the robot arm 12 and the hand 14.
  • the target path may be an ordered set of target rotation angles of each joint of the robot arm 12 (including the sixth joint 13f) that realizes the change over time of the target position and target posture of the robot arm 12 and the hand 14.
  • the target path uniquely defines the position and posture of the robot arm 12 and the hand 14.
  • the target path also defines the target rotation position of the suction device 15 around the reference axis T.
  • the path generator 43 generates a target path for the robot arm 12 and the hand 14 to move the hand 14 to the determined relative position and posture of the hand 14.
  • the path generator 43 generates a target path for the robot arm 12 and the hand 14 to move the target workpiece W to the determined place target position.
  • the path generator 43 executes path planning using the Probabilistic Roadmap Method (PRM) or the Rapidly-Exploring Random Tree (RRT), etc. In these methods, the path generator 43 also executes an interference check, i.e., checks whether the robot arm 12 and the hand 14 interfere with other objects.
  • PRM Probabilistic Roadmap Method
  • RRT Rapidly-Exploring Random Tree
  • an interference check i.e., checks whether the robot arm 12 and the hand 14 interfere with other objects.
  • an interference check for example, an interference check using point cloud data or CAD data is performed.
  • the motion controller 44 outputs commands according to the target path to the robot control device 2. Specifically, the motion controller 44 outputs commands according to the target rotation angles of each joint of the robot arm 12 to the robot control device 2. As described above, the robot control device 2 drives the servo motors 16 based on the commands, causing the robot arm 12 and hand 14 to move along the target path.
  • the operation controller 44 switches between suction by the suction device 15 and release of the suction by controlling the actuator 15a of the hand 14.
  • the operation controller 44 controls the actuator 15a to generate negative pressure in the suction device 15, thereby causing the suction device 15 to suction the workpiece.
  • the operation controller 44 controls the actuator 15a to release the negative pressure in the suction device 15, thereby causing the suction device 15 to release the suction of the workpiece.
  • the operation controller 44 determines whether suction of the target workpiece W by the suction device 15 has been completed based on the detection result of the pressure sensor 15b.
  • the operation controller 44 determines whether suction has been completed when the negative pressure detected by the pressure sensor 15b is equal to or greater than a predetermined threshold value.
  • the height detector 46 detects height information of the storage space in which the target workpiece W is to be stored.
  • the storage space is inside the second container 92.
  • the height information is information about the height of each position in the storage space, specifically, the height information of each position inside the second container 92. In areas inside the second container 92 where the bottom surface is exposed, the height information is the height of each position on the bottom surface. In areas inside the second container 92 where the workpiece is present, the height information is the height of each position on the top surface of the workpiece.
  • the height detector 46 detects the height information of the storage space based on an image inside the second container 92.
  • the height detector 46 obtains the height information of the storage space, for example, by performing preprocessing such as discretization or smoothing from the point cloud data of the three-dimensional image.
  • the height detector 46 outputs the height information of the storage space as a height map.
  • the searcher 47 searches for multiple position candidates that are candidates for the target placement position of the target work W in the storage space.
  • the work detector 41 and the position and orientation determiner 42 identify the target work W, and the dimensions of the target work W are also obtained.
  • the searcher 47 searches for positions in the storage space where the target work W can be placed, as candidate placement target positions.
  • the searcher 47 detects a space in the storage space where the target work W can be placed (hereinafter referred to as a "placeable space”).
  • the searcher 47 detects a plane P in the storage space where the target work W can be placed (hereinafter referred to as a "placeable surface”) based on the height map, and the space above the placeable surface P is the placeable space.
  • Figure 6 is an exemplary perspective view showing the inside of the second container 92.
  • the surface with dots is the placeable surface P.
  • the placeable surface P is a plane exposed upward and is an area of uniform height in the height map.
  • the placeable surface P is an exposed part of the bottom surface of the second container 92.
  • top surface of the existing work W0 is also exposed, it can become the placeable surface P. Note that if multiple existing works W0 are lined up, the top surfaces of the existing works W0 are exposed upward, and the heights of the top surfaces of the existing works W0 are uniform, the top surfaces of the existing works W0 become a single placeable surface P. In the example of Figure 6, the top surfaces of the two existing workpieces W0 are each treated as separate placeable surfaces P.
  • the searcher 47 determines whether the target work W can be placed at each position while changing the position of the target work W on the possible placement surface P.
  • FIG. 7 is a schematic plan view of the inside of the second container 92 to explain the search for possible positions. A position determined to be possible for placement becomes a possible position. Whether or not the target work W can be placed is determined based on whether or not the target work W can be placed without interfering with other objects.
  • the searcher 47 sets the size of the target work W for search (see dashed line) to the actual size of the target work W (see dashed line) plus a predetermined margin. Specifically, the searcher 47 enlarges the bottom surface of the target work W by the amount of the predetermined margin.
  • the searcher 47 searches for position candidates not only on the bottom surface of the second container 92, but also on the top surface of the existing workpiece W0 as a possible placement surface P.
  • the searcher 47 narrows down the multiple position candidates from the viewpoint of work storage efficiency. For example, the searcher 47 selects a position candidate corresponding to a corner space in the storage space from the multiple position candidates.
  • FIG. 8 is a schematic plan view of the inside of the second container 92 to explain the narrowing down of the position candidates. Inside the second container 92, a corner may be formed by the side wall of the second container 92 and the side surface of the existing work W0. When storing the work in the second container 92, it is preferable from the viewpoint of work storage efficiency to pack the work into a space including the corner. Therefore, as shown in FIG. 8, the searcher 47 selects a position candidate corresponding to a corner space from the multiple position candidates. Note that if the multiple position candidates do not include a position candidate corresponding to a corner space, the searcher 47 does not narrow down the position candidates.
  • FIG. 9 is an exemplary perspective view of the second container 92 showing the free space after the target work W is placed.
  • the dotted surface is the placeable surface P.
  • the free space is the same space as the placeable space. That is, the free space is a space in which a work can be placed after the target work W is placed.
  • a free space is formed above the placeable surface P.
  • the placeable surface P is a plane exposed upward.
  • the evaluation value is a parameter that indicates the efficiency of accommodating virtual work in free space.
  • Accommodating efficiency is the efficiency of accommodating virtual work in free space, and indicates how efficiently virtual work can be accommodated in free space. For example, the greater the number of virtual works that can be accommodated and the greater the variety of positions at which the virtual work can be accommodated, the higher the accommodation efficiency.
  • the evaluation value is a parameter related to the number of candidate positions at which virtual work can be placed in free space.
  • the evaluation value may be a parameter related to the number of virtual works that can be accommodated in free space.
  • the evaluator 48 calculates the number of candidate positions where the virtual workpiece Wi can be placed on the placement surface P after the target workpiece W has been placed in the target candidate position.
  • FIG. 10 is a diagram showing multiple types of virtual workpieces.
  • FIG. 11 is a schematic plan view of the inside of the second container 92 to explain the calculation of the evaluation value.
  • the virtual work Wi may include multiple types of virtual work Wi with different sizes. When differentiating the types of virtual work Wi, they are distinguished by the number following the symbol "Wi". Specifically, the multiple types of virtual work Wi include a first virtual work Wi1, a second virtual work Wi2, a third virtual work Wi3, a fourth virtual work Wi4, and a fifth virtual work Wi5. The multiple types of virtual work Wi each have a different two-dimensional size. In this example, the multiple types of virtual work Wi each have a substantially square two-dimensional shape with a different area. The first virtual work Wi1 has the smallest two-dimensional square shape. The second virtual work Wi2 has a two-dimensional shape larger than the first virtual work Wi1. The third virtual work Wi3 has a two-dimensional shape larger than the second virtual work Wi2. The fourth virtual work Wi4 has a two-dimensional shape larger than the third virtual work Wi3. The fifth virtual workpiece Wi5 has a larger two-dimensional shape than the fourth virtual workpiece Wi4.
  • a different score is assigned to each of the multiple types of virtual work Wi.
  • a score corresponding to the size is assigned to each of the multiple types of virtual work Wi. If a large virtual work Wi can be accommodated, it can naturally accommodate a smaller virtual work Wi. Therefore, the larger the area of the two-dimensional shape of the multiple types of virtual work Wi, the higher the score assigned. More specifically, the first virtual work Wi1 is assigned a score of 3 points. The second virtual work Wi2 is assigned a score of 6 points. The third virtual work Wi3 is assigned a score of 9 points. The fourth virtual work Wi4 is assigned a score of 12 points. The fifth virtual work Wi5 is assigned a score of 15 points.
  • the evaluator 48 determines how many candidate positions there are for placing the virtual work Wi in the empty space after placing the target work W.
  • the evaluator 48 moves the position of the virtual work Wi two-dimensionally by a predetermined amount within the empty space and determines whether the virtual work Wi can be placed without interfering with other objects.
  • the evaluator 48 moves the virtual work Wi on the placeable surface P after the target work W is placed in one target position candidate, and determines whether the virtual work Wi can be placed at each position without interfering with other objects. If the virtual work Wi can be placed, the evaluator 48 counts that position as a candidate position. The evaluator 48 moves the virtual work Wi over the entire range of the placeable surface P and counts the number of candidates.
  • the evaluator 48 also moves the virtual work Wi to the placeable surface P of the target work W and the existing work W0 and counts the number of candidates.
  • the evaluator 48 determines whether the virtual workpiece Wi can be placed on the top surfaces of both works as a uniform placeable surface P.
  • the evaluator 48 multiplies the number of candidates by the score assigned to the virtual work Wi to obtain the total score of the virtual work Wi.
  • the evaluator 48 calculates the total score of the virtual work Wi for all types of virtual work Wi.
  • the evaluator 48 calculates the evaluation value by adding up the total scores of all types of virtual work Wi.
  • the evaluator 48 After calculating an evaluation value for one position candidate, the evaluator 48 calculates an evaluation value for when the target work W is placed at another position candidate. Finally, the evaluator 48 calculates evaluation values for all position candidates.
  • the evaluation value calculated in this way becomes larger the more large virtual work Wi can be accommodated in the free space. Being able to accommodate more large virtual work Wi means that in the future, more work can be placed with greater freedom. In other words, the evaluation value indicates the efficiency with which virtual work Wi can be accommodated in the free space after the target work W has been placed.
  • the determiner 49 determines the position candidate with the highest evaluation value from among the multiple position candidates as the placement target position.
  • the path generator 43 generates a target path for the robot arm 12 and hand 14 to transport the target workpiece W to the determined placement target position.
  • FIG. 12 is a flowchart of the pick-and-place process.
  • step S101 the photography controller 45 acquires an image of the inside of the first container 91. More specifically, the photography controller 45 causes the first camera 51A to acquire an image of the inside of the first container 91.
  • step S102 the work detector 41 detects the target work W, specifically the target surface S, from within the image of the first container 91.
  • the work detector 41 detects multiple target surfaces S.
  • step S103 the position and orientation determiner 42 executes a pickup position plan.
  • the pickup position plan the target workpiece W to be picked up by the hand 14 is determined, and the relative position and orientation of the hand 14 with respect to the target workpiece W is also determined.
  • a target path for the robot arm 12 and the hand 14 to realize the relative position and orientation of the hand 14 is also generated.
  • the motion controller 44 causes the robot arm 12 and hand 14 to execute a picking operation. That is, the motion controller 44 controls the robot arm 12 and hand 14 so that the target workpiece W determined in the suction position plan is picked up at the determined relative position and orientation of the hand 14. Specifically, the motion controller 44 moves the robot arm 12 and hand 14 along the target path, and moves the suction device 15 to the target workpiece W. The motion controller 44 causes the suction device 15 to pick up the target workpiece W.
  • step S105 the photography controller 45 captures an image of the inside of the second container 92.
  • the photography controller 45 causes the second camera 51B to capture an image of the inside of the second container 92.
  • step S106 a place position plan is executed.
  • a target place position for the target work W is determined.
  • a target path for the robot arm 12 and hand 14 to realize the target place position for the target work W is also generated.
  • the motion controller 44 causes the robot arm 12 and hand 14 to execute a placement operation. That is, the motion controller 44 controls the robot arm 12 and hand 14 so that the target work W is placed at the target placement position determined in the placement position plan. Specifically, the motion controller 44 moves the robot arm 12 and hand 14 along the target path to move the target work W to the target placement position. When the target work W reaches the target placement position, the motion controller 44 releases the suction by the suction device 15. In this way, the placement of the target work W at the target placement position is completed. This completes the pick-and-place process.
  • the main control device 3 When the main control device 3 completes the pick-and-place process for one target workpiece W, it repeats the process from step S101 to pick-and-place another target workpiece W. By repeating this control, the main control device 3 sequentially transfers the target workpieces W in the first container 91 into the second container 92.
  • step S201 the position and orientation determiner 42 creates candidates for the relative position and orientation of the hand 14.
  • the position and orientation determiner 42 may create multiple candidates for the relative position and orientation of the hand 14.
  • the position and orientation determiner 42 may create multiple candidates for the relative position and orientation of the hand 14 with respect to one target surface S.
  • the position and orientation determiner 42 may create candidates for the relative position and orientation of the hand 14 with respect to each target surface S.
  • FIG. 14 is a schematic diagram showing the relative position and orientation of the hand 14 when viewed in the direction of the reference axis T.
  • the dashed line indicates the offset direction OD of the suction device 15.
  • the suction device 15 is located at the suction position of the target surface S, and the reference axis T is approximately perpendicular to the target surface S.
  • the position of the reference axis T can take any position within 360 degrees around the suction device 15.
  • the position and orientation determiner 42 can create multiple candidates for the relative position and orientation of the hand 14 in which the reference axis T is located at different positions in the circumferential direction around the suction position of the target surface S.
  • the suction position is approximately the center of the target surface S.
  • the position and orientation determiner 42 can create multiple candidates for the relative position and orientation of the hand 14 in which the target surfaces S are different.
  • step S202 the position and orientation determiner 42 assigns priorities to the 14 candidates for the relative position and orientation of the hand. For example, the position and orientation determiner 42 assigns priorities from two perspectives.
  • a high priority is given to candidates for the target workpiece W whose reference side does not overlap with the hand 14 when viewed in the direction of the reference axis T, and whose offset direction of the suction device 15 relative to the reference axis T is non-parallel to the reference side.
  • the hand 14 picks up the target workpiece W in a state in which the reference axis T and the reference side are relatively far apart when viewed in the direction of the reference axis T.
  • the position and orientation determiner 42 sets two reference sides on the target workpiece W.
  • the position and orientation determiner 42 sets any two of the sides R1, R2, R3, and R4 of the target workpiece W, specifically, the two sides that are connected to form a corner of the target workpiece W, as the reference sides.
  • the position and orientation determiner 42 then assigns a high priority to candidates in which the hand 14 does not overlap either of the two reference sides, and the offset direction of the suction device 15 relative to the reference axis T is non-parallel for both sides.
  • the position and orientation determiner 42 may change the reference sides to other two sides, and assign a high priority to candidates that satisfy the above-mentioned conditions for the two changed sides.
  • the position and orientation determiner 42 regards the sides of the target surface S as the sides of the target workpiece W.
  • the position and orientation determiner 42 assigns a relatively high priority to candidates that satisfy the above-mentioned conditions for each of the two sides that form the four corners of the target surface S, i.e., for a total of four sets of sides.
  • the position and orientation determiner 42 then assigns a relatively low priority to the remaining candidates.
  • the position and orientation determiner 42 regards the reference side and the offset direction as non-parallel when the angle between the side as the reference side and the offset direction of the suction device 15 is equal to or greater than a threshold value ⁇ .
  • FIG. 15 is a schematic diagram showing an area A where the angle between the side as the reference side and the offset direction of the suction device 15 is equal to or greater than a threshold value ⁇ , and an area B where the angle is less than the threshold value ⁇ .
  • a relatively high priority is assigned to candidates whose offset direction of the suction device 15 is included in area A.
  • a relatively low priority is assigned to candidates whose offset direction of the suction device 15 is included in area B.
  • two reference sides of the target workpiece W may be determined in advance.
  • the position and orientation determiner 42 assigns a high priority to a candidate that satisfies the above-mentioned conditions for a set of reference sides, and assigns a low priority to other candidates.
  • the position and orientation determiner 42 assigns a high priority to candidates that have a small amount of movement from the current state of the robot arm 12, i.e., the current position. For example, a high priority can be assigned to candidates that have a small total amount of movement of all the joints of the robot arm 12.
  • step S203 the position and orientation determiner 42 determines whether or not there is a candidate for the relative position and orientation of the hand 14. If there is no suitable target surface S, it is possible that no candidate for the relative position and orientation of the hand 14 is created in the above-mentioned step S201. In such a case, the pick-and-place process ends in step S206.
  • step S204 the position and posture determiner 42 extracts the candidate with the highest priority. Then, the path generator 43 generates a target path for the robot arm 12 from the current position and posture of the hand 14 to the extracted relative position and posture of the hand 14. At this time, the path generator 43 checks for interference with the target path and generates a target path without interference. If interference is present, the path generator 43 does not generate a target path.
  • step S205 the position and orientation determiner 42 determines whether or not a target path has been generated. If a target path has not been generated, the position and orientation determiner 42 excludes the extracted candidate for the relative position and orientation of the hand 14 from the candidates, and returns to step S203. The position and orientation determiner 42 again extracts the candidate with the highest priority, and the path generator 43 again generates a target path and performs an interference check.
  • the position and orientation determiner 42 extracts candidates in descending order of priority from among the candidates for the relative position and orientation of the hand 14.
  • the position and orientation determiner 42 determines the relative position and orientation of the hand 14 and ends the pickup position planning.
  • step S301 the height detector 46 creates a height map of the storage space, i.e., the interior of the second container 92.
  • step S302 the searcher 47 searches for multiple position candidates for the placement target position.
  • the searcher 47 creates multiple position candidates for the placement target position of the target work W within the second container 92.
  • Step S302 corresponds to searching for multiple position candidates that are candidates for the placement target position of the target work in the accommodation space.
  • step S303 the searcher 47 determines whether or not there are any position candidates. If there is no space in the second container 92, it is possible that no position candidates are found in step S302. In such a case, the pick-and-place process ends in step S309.
  • step S304 the searcher 47 narrows down the location candidates. For example, the searcher 47 selects a location candidate that corresponds to a corner space in the storage space from among multiple location candidates. Note that if there is no location candidate to be narrowed down, the searcher 47 does not narrow down the location candidates.
  • step S305 the evaluator 48 calculates an evaluation value for the location candidate. If multiple location candidates are selected in step S304, the evaluator 48 calculates an evaluation value for each of the multiple location candidates. Step S305 corresponds to calculating an evaluation value for each of the multiple location candidates.
  • step S306 the path generator 43 generates a target path for the position candidate with the highest evaluation value. That is, the path generator 43 generates a target path for the robot arm 12 and hand 14 from the current position and posture of the robot arm 12 and hand 14 to the position and posture corresponding to the position candidate with the highest evaluation value. At this time, the path generator 43 performs an interference check of the target path to confirm the presence or absence of interference. If interference is present, the path generator 43 excludes the position candidate where interference occurred, and generates a target path for the position candidate with the next highest evaluation value. In this way, the path generator 43 generates target paths from the position candidates in descending order of evaluation value.
  • step S307 the determiner 49 determines the place target position to be the position candidate for which an interference-free target route has been generated. This completes the place position planning. Step S307 corresponds to determining the place target position from among the multiple position candidates based on the evaluation value.
  • the searcher 47 changes the margin added to the actual size of the target work W when searching for position candidates in step S308, and returns to searching for position candidates in step S302.
  • the derived position candidates may change from the previous search. Specifically, the searcher 47 expands the margin. As a result, when searching for position candidates again, the searcher 47 searches for position candidates using a target work W that is larger than the previous time.
  • the target work W When the target work W is placed at the place target position determined based on such position candidates, the target work W has a larger margin between it and surrounding objects. Therefore, by using such position candidates in step S306, the possibility of generating a target path without interference is increased. Once the place target position and target path have been generated, the place position planning is completed.
  • step S302 If an appropriate target route is still not generated, the margin is further enlarged and the process is repeated from step S302.
  • the target placement position is determined based on the future workpiece storage efficiency after the target workpiece W has been placed in the storage space. If the target placement position is determined taking into consideration only the current target workpiece W, there is a risk that the storage efficiency for the target workpiece W from the next time onwards will decrease.
  • the main control device 3 calculates an evaluation value based on the available space after the target workpiece W has been placed, and determines the position candidate with the highest evaluation as the target placement position. This makes it possible to realize appropriate placement of multiple workpieces, including not only the current target workpiece W, but also the target workpieces W from the next time onwards.
  • Evaluation of the free space can be performed from various perspectives. For example, it may be evaluated how many works can be accommodated in the free space. Or, it may be evaluated how freely the work can be arranged in the free space.
  • the evaluation value is related to the efficiency with which the virtual work Wi can be accommodated in the free space. This makes it possible to determine the target placement position so that the efficiency with which the virtual work Wi can be accommodated in the free space after the target work W is placed is high. In other words, it is possible to improve the efficiency with which multiple works can be accommodated from this time onwards.
  • the virtual work Wi includes multiple types of virtual work with different sizes, and evaluation values are calculated for the multiple types of virtual work Wi. Therefore, even if work of various sizes is placed in the future, the storage efficiency of these multiple work can be improved.
  • the evaluator 48 also treats the top surface of the current target workpiece W as free space. In other words, when the target workpiece W and the existing workpiece W0 are placed side by side, the top surface of the target workpiece W and the top surface of the existing workpiece W0 are exposed upward, and the heights of the top surfaces of the target workpiece W and the existing workpiece W0 are the same, an evaluation value is obtained for those top surfaces as a single placeable surface P. In other words, placing the target workpiece W next to the existing workpiece W0 of the same height tends to expand the free space and increase the evaluation value. In this way, the evaluator 48 can consider not only the planar storage efficiency of the virtual workpiece Wi in the free space, but also the three-dimensional storage efficiency.
  • the evaluator 48 also calculates a parameter related to the number of candidate positions at which the virtual work Wi can be placed in the free space as the evaluation value.
  • the evaluator 48 can also calculate a parameter related to the capacity of the virtual work Wi that can be placed in the free space as the evaluation value. However, the evaluator 48 can reduce the amount of calculations by using a parameter related to the number of candidate positions at which the virtual work Wi can be placed in the free space.
  • the evaluator 48 calculates an evaluation value with priority for the position candidate that corresponds to the corner of the storage space from among multiple position candidates. Placing the work from the corner tends to increase storage efficiency. Therefore, by calculating an evaluation value with priority for the position candidate that corresponds to the corner and determining the placement target position, the amount of calculation can be reduced.
  • the relative position and posture of the hand 14 that picks up the target workpiece W is determined so that the reference side of the target workpiece W and the hand 14 do not overlap when viewed in the direction of the reference axis T, and the offset direction of the suction device 15 is non-parallel to the reference side.
  • the reference sides are two sides of the target workpiece W that are connected to form an angle.
  • the distance between the reference axis T and each of the two reference sides is greater than the distance between the suction device 15 and each of the two reference sides. Therefore, when viewed in the direction of the reference axis T, the tip of the robot arm 12 and the two reference sides are less likely to overlap. As a result, it becomes easier to place the target workpiece W by aligning the corner of the target workpiece W with the corner of the storage space.
  • position candidates are searched for based on the size of the target work W, which is the actual size of the target work W enlarged by a predetermined margin. Therefore, the finally determined placement target position has a margin within which the target work W can be displaced.
  • the robot arm 12 and hand 14 move the target work W to the placement target position, and then move the target work W laterally to bring the target work W into contact with another object that forms a corner of the storage space. This allows the corner of the target work W to be appropriately aligned with the corner of the storage space.
  • the robot system 100 incorporating the main control device 3 is not limited to one that transfers the target work W from the first container 91 to the second container 92.
  • the robot 1 may perform debunking.
  • the storage location of the target work W is not limited to the second container 92.
  • the storage location of the target work W may be a conveyor, a shelf, a pallet, or the like.
  • the robot arm 12 is not limited to a vertical multi-joint type robot arm.
  • the robot arm 12 may be a horizontal multi-joint type, a parallel link type, a Cartesian coordinate type, or a polar coordinate type robot arm, etc.
  • the suction device 15 does not have to rotate around the reference axis T relative to the robot arm 12. Even if the suction device 15 cannot rotate around the reference axis T, it only needs to be positioned at a position offset in the radial direction around the reference axis T of the robot arm 12, that is, positioned eccentrically with respect to the reference axis T.
  • the suction device 15 may attract the workpiece by magnetic force or the like instead of negative pressure.
  • the camera 51 does not have to include a first camera 51A and a second camera 51B.
  • a single camera 51 may capture an image of the inside of the first container 91 and an image of the inside of the second container 92.
  • the camera 51 does not have to be fixedly disposed, but may be attached to the robot arm 12 and moved by the robot arm 12.
  • the robot system 100 may not be equipped with a camera 51. In that case, an image may be input to the main control device 3 from outside. The method of acquiring the image is not important. The image input from outside may be stored in the memory 33 or in the storage device 32.
  • the target work to be picked may not be piled up randomly, but may be aligned.
  • the target work is not limited to a rectangular parallelepiped work.
  • the target work may have a shape of a roughly triangular prism.
  • the target work may be a bag filled with powder or granular material such as fertilizer, lime, gravel, etc.
  • the processing by the work detector 41, the position and orientation determiner 42, the operation controller 44, and the imaging controller 45 is merely an example.
  • the work detector 41 can detect the target surface S from the image using various methods.
  • the position and orientation determiner 42 can determine the relative position and orientation of the hand 14 using various methods.
  • the reference side of the target workpiece is not limited to a flat surface. If the target workpiece is a bag-shaped workpiece, the part facing to the side of the suction surface that the suction device 15 comes into contact with can be the reference side.
  • the position and orientation determiner 42 may also approximate the target workpiece to a rectangular parallelepiped, with one face of the approximate rectangular parallelepiped as the suction surface, and the face that is a side face of the suction surface as the reference side.
  • the position and orientation determiner 42 may approximate the target workpiece by an OBB (Oriented Bounding Box).
  • the position and orientation determiner 42 may execute the pickup position plan after the place position plan.
  • the position and orientation determiner 42 can determine the relative position and orientation of the hand 14 at the time of picking based on the previously determined place target position. For example, when the place target position is a position corresponding to a corner of the storage space, the two sides of the target work W that come into contact with the two side surfaces that form the corner are determined in advance. The position and orientation determiner 42 determines the relative position and orientation of the hand 14 using the two sides as the reference sides.
  • the position and posture determiner 42 does not need to create as candidates the relative position and posture of the hand 14 in which the reference side of the target work W and the hand 14 overlap when viewed in the direction of the reference axis T, or the relative position and posture of the hand 14 in which the offset direction of the suction device 15 is parallel to the reference side when viewed in the direction of the reference axis T.
  • the position and posture determiner 42 may create as candidates only the relative position and posture of the hand 14 in which the reference side of the target work W and the hand 14 do not overlap when viewed in the direction of the reference axis T, and the offset direction of the suction device 15 relative to the reference axis T is non-parallel to the reference side.
  • the determination of the relative position and posture of the hand 14 by the position and posture determiner 42 is merely one preferred example, and the reference side of the target workpiece W and the hand 14 may overlap when viewed in the direction of the reference axis T, or the offset direction of the suction device 15 may be parallel to the reference side when viewed in the direction of the reference axis T.
  • the processing of the searcher 47, the evaluator 48, or the determiner 49 is merely an example.
  • the searcher 47 may narrow down the multiple position candidates in stages. As described above, if the place target position cannot be determined by narrowing down the position candidates to those corresponding to corners, the remaining position candidates may be narrowed down to those that contact the side surfaces within the storage space. Alternatively, the searcher 47 may narrow down the multiple position candidates to both the position candidates that correspond to corners and the position candidates that contact the side surfaces at the same time. The searcher 47 does not have to narrow down the multiple position candidates.
  • the searcher 47 When searching for position candidates, the searcher 47 adds a predetermined margin to the actual size of the target work W, but is not limited to this. The searcher 47 may also search for position candidates using the actual size of the target work W.
  • the evaluator 48 may calculate a parameter related to the number of virtual works Wi that can be placed in the free space as the evaluation value. In other words, the evaluator 48 may adjust the arrangement of the virtual works Wi in the free space to determine the maximum number of virtual works Wi that can be accommodated in the free space for each of the multiple types of virtual works Wi. The evaluator 48 may multiply each virtual work Wi by a score corresponding to the maximum number of each virtual work Wi to calculate a total score for each virtual work Wi, and use the sum of these as the evaluation value.
  • the virtual work Wi may not include multiple types of virtual work Wi.
  • the evaluator 48 may calculate the evaluation value using a single type of virtual work Wi.
  • the number of types is not limited to 5.
  • the number of types may be 2, 3, 4, or 6 or more.
  • the two-dimensional shape of the virtual workpiece Wi is not limited to a square.
  • the two-dimensional shape of the virtual workpiece Wi may be the known workpiece shape.
  • the above-mentioned scores assigned to each of the multiple types of virtual work Wi are merely one example.
  • the evaluation value may be set arbitrarily. The evaluation value may be set so that the higher the evaluation, the smaller the value.
  • a higher score may be assigned to a virtual work Wi that is assumed to have a higher actual frequency.
  • the control device does not have to be a single device like the main control device 3.
  • the control device may include multiple separate devices.
  • the work detector 41, the position and orientation determiner 42, and the motion controller 44 may each be realized by separate devices.
  • the flowchart is merely an example. Steps in the flowchart may be changed, replaced, added, omitted, etc. as appropriate. The order of steps in the flowchart may also be changed, and serial processing may be performed in parallel. For example, photographing the interior of the second container 92 in step S105 of FIG. 12 and planning the placement position in step S106 may be performed any time before the placement operation. Specifically, photographing the interior of the second container 92 and planning the placement position may be performed prior to or in parallel with the pickup position planning, etc.
  • a processor includes transistors and other circuits and is considered a circuit or processing circuit.
  • a processor may be a programmable processor that executes a program stored in a memory.
  • a circuit, unit, or means is hardware that is programmed to realize or executes the described functions.
  • the hardware may be any hardware disclosed in this specification or any hardware known to be programmed to realize or execute the described functions.
  • the hardware is a processor that is considered to be a type of circuitry
  • the circuit, means, or unit is a combination of hardware and software used to configure the hardware and/or processor.
  • the main control device 3 (control device) includes a searcher 47 that searches for multiple position candidates that are candidates for the target placement position of the target work W in the storage space, an evaluator 48 that calculates an evaluation value for each of the multiple position candidates, and a determiner 49 that determines the target placement position from among the multiple position candidates based on the evaluation value, and the evaluator 48 calculates the evaluation value based on the vacant space in the storage space after the target work W is placed at each of the position candidates.
  • the placement target position is determined based on the space available after the target work W has been placed. This allows the placement target position to be determined taking into consideration the placement of subsequent work after the target work W has been placed. As a result, it is possible to realize appropriate placement of multiple workpieces, including not only the current target work W, but also subsequent workpieces.
  • the evaluation value is a parameter indicating the efficiency with which the virtual work Wi can be accommodated in the free space.
  • the placement target position is determined based on the accommodation efficiency of the virtual work Wi in the vacant space after the target work W has been placed. This allows the placement target position to be determined taking into consideration how efficiently the virtual work Wi can be placed in the vacant space after the target work W has been placed. As a result, it is possible to improve the accommodation efficiency of multiple works to be placed in the future.
  • the evaluation value is a parameter related to the number of virtual works Wi that can be placed in the free space or the number of candidate positions where the virtual works Wi can be placed in the free space.
  • the placement target position is determined based on the capacity of the virtual work Wi in the vacant space after the target work W has been placed.
  • the capacity of the virtual work Wi directly indicates the capacity of the virtual work Wi.
  • the number of candidate positions at which the virtual work Wi can be placed is related to the capacity of the virtual work Wi. This allows the placement target position to be determined taking into account how many virtual works Wi can be placed in the vacant space after the target work W has been placed. As a result, the capacity efficiency of multiple works to be placed in the future can be improved.
  • the virtual work Wi includes multiple types of virtual work with different sizes, different scores are assigned to the multiple types of virtual work, and the evaluator 48 calculates the evaluation value according to the number of storage spaces or the number of candidates and the score.
  • the efficiency of accommodating virtual work Wi in free space is evaluated taking into account differences in the size of the virtual work.
  • differences in the size of the virtual work can be taken into account.
  • the efficiency of accommodating multiple works can be improved by taking into account variations in the size of works to be placed in the future.
  • the evaluator 48 calculates the evaluation value by regarding the space above the exposed part of the bottom surface of the storage space and the space above the exposed part of the top surface of the existing work W0 in the storage space as the free space.
  • the evaluator 48 evaluates not only the bottom surface of the storage space, but also the space above the top surface of the existing work W0 as space in which to place the virtual work Wi. As a result, it is possible to take into account not only the planar storage efficiency of the virtual work Wi in the free space, but also the three-dimensional storage efficiency.
  • the evaluator 48 calculates the evaluation value by treating the top surface of the target work W and the top surface of the existing work W0 as a single surface.
  • the top surface of the target work W and the top surface of the existing work W0 which are aligned at the same height, are treated as a single surface, which contributes to improving the storage efficiency of the virtual work Wi.
  • Placing the target work W so that its height is aligned with the existing work W0 tends to result in a higher evaluation value.
  • the placement target position is determined taking into consideration how much of the virtual work Wi can be placed on the top surface of the target work W after it has been placed.
  • the searcher 47 searches for the position candidate corresponding to a corner included in the storage space.
  • This configuration can reduce the amount of calculation of the evaluation value. More specifically, when storing the target work W in a storage space, it is preferable from the standpoint of work storage efficiency to place the target work W tightly in a space that includes a corner. Ultimately, the storage efficiency of the virtual work Wi in an empty space is often high when the target work W is placed in a space that includes a corner. By narrowing down the position candidates for the placement target position in advance to those that correspond to corners included in the storage space, it is possible to omit the calculation of the evaluation value for the less likely position candidates. As a result, the amount of calculation of the evaluation value can be reduced.
  • the robot system 100 includes a robot 1 having a robot arm 12 and a hand 14 attached to the robot arm 12, and a main control device 3 described in any one of [1] to [7].
  • the placement target position is determined based on the space available after the target work W has been placed. This allows the placement target position to be determined taking into consideration the placement of subsequent work after the target work W has been placed. As a result, it is possible to realize appropriate placement of multiple workpieces, including not only the current target work W, but also subsequent workpieces.
  • the placement target position is determined based on the space available after the target work W has been placed. This allows the placement target position to be determined taking into consideration the placement of subsequent work after the target work W has been placed. As a result, it is possible to realize appropriate placement of multiple workpieces, including not only the current target work W, but also subsequent workpieces.
  • Robot system 100 Robot system 1 Robot 12 Robot arm 14 Hand 3 Main control device (control device) 47 Searcher 48 Evaluator 49 Decision device W Target work

Landscapes

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

Abstract

主制御装置3は、収容スペースにおける対象ワークWのプレース目標位置の候補である複数の位置候補を探索する探索器47と、複数の位置候補のそれぞれの評価値を算出する評価器48と、複数の位置候補の中から評価値に基づいてプレース目標位置を決定する決定器49とを備えている。評価器48は、それぞれの位置候補に対象ワークWがプレースされた後の収容スペース内の空きスペースに基づいて評価値を算出する。

Description

制御装置、ロボットシステム及びロボットの制御方法
 ここに開示された技術は、制御装置、ロボットシステム及びロボットの制御方法に関する。
 従来より、ワークをプレースするロボットを制御する制御装置が知られている。例えば、特許文献1に記載された制御装置は、ワークのプレース位置を演算する。制御装置は、収納容器の空きスペース内を走査して、ワークが既存の他のワークと干渉しないプレース位置を探索する。
特開2019-181620号公報
 現在のワークを他の物体と干渉しない位置にプレースできたとしても、後続するワークを適切にプレースできない虞がある。その結果、多くのワークを適切にプレースできない虞がある。
 ここに開示された技術は、かかる点に鑑みてなされたものであり、その目的とするところは、複数のワークの適切なプレースを実現することにある。
 本開示の制御装置は、収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索する探索器と、複数の前記位置候補のそれぞれの評価値を算出する評価器と、複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定する決定器とを備え、前記評価器は、それぞれの前記位置候補に前記対象ワークがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出する。
 本開示のロボットシステムは、ロボットアームと前記ロボットアームに取り付けられたハンドとを有するロボットと、前記制御装置とを備える。
 本開示のロボットの制御方法は、ロボットアームと前記ロボットアームに取り付けられたハンドとを有するロボットの制御方法であって、収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索することと、複数の前記位置候補のそれぞれの評価値を算出することと、複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定することとを含み、前記評価値を算出することは、それぞれの前記位置候補に前記対象ワークがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出する。
 前記制御装置によれば、複数のワークの適切なプレースを実現することができる。
 前記ロボットシステムによれば、複数のワークの適切なプレースを実現することができる。
 前記ロボットの制御方法によれば、複数のワークの適切なプレースを実現することができる。
図1は、ロボットシステムの構成を示す模式図である。 図2は、ロボット制御装置及び主制御装置の概略的なハードウェア構成を示す図である。 図3は、処理器の制御系統の構成を示すブロック図である。 図4は、第1コンテナ内を上方から視た図である。 図5は、対象ワークを吸着するときのハンドを示す説明図である。 図6は、第2コンテナ内を示す例示的な斜視図である。 図7は、位置候補の探索を説明するための第2コンテナ内の模式的な平面図である。 図8は、位置候補の絞り込みを説明するための第2コンテナ内の模式的な平面図である。 図9は、対象ワークがプレースされた後の空きスペースを示す第2コンテナ内の例示的な斜視図である。 図10は、複数種類の仮想ワークを示す図である。 図11は、評価値の算出を説明するための第2コンテナ内の模式的な平面図である。 図12は、ピックアンドプレース処理のフローチャートである。 図13は、吸着位置計画のサブルーチンのフローチャートである。 図14は、基準軸の方向に見た場合のハンドの相対位置姿勢を示す模式図である。 図15は、基準側部としての辺と吸着器のオフセット方向とのなす角が閾値α以上となる領域と、なす角が閾値α未満となる領域とを示す模式図である。 図16は、プレース位置計画のサブルーチンのフローチャートである。
 以下、例示的な実施形態を図面に基づいて詳細に説明する。図1は、ロボットシステム100の構成を示す模式図である。
 ロボットシステム100は、ロボット1と、ロボット1を制御する主制御装置3とを備えている。主制御装置3は、ロボット1を制御してロボット1に処理を実行させる。この例では、ロボット1による処理は、ピックアンドプレース処理である。例えば、ロボット1は、複数のワークがバラ積みされた第1コンテナ91内の対象ワークをピッキングして第2コンテナ92内に移送する。ロボット1は、対象ワークを第2コンテナ92内に規則的に配列する。ロボットシステム100は、ピックアンドプレース処理を繰り返すことによって、第1コンテナ91内の複数のワークを第2コンテナ92内に配列する。対象ワークは、例えば、略直方体の形状を有する。
 ロボットシステム100は、ワークの画像を取得するカメラ51を備えていてもよい。カメラ51は、第1コンテナ91内の画像を取得する第1カメラ51Aと、第2コンテナ92内の画像を取得する第2カメラ51Bとを含んでいてもよい。第1カメラ51Aは、第1コンテナ91の上方に固定的に配置されている。第1カメラ51Aは、第1コンテナ91内の画像を上方から撮影する。第1カメラ51Aは、第1コンテナ91内の複数のワークを含む画像を取得する。第2カメラ51Bは、第2コンテナ92の上方に固定的に配置されている。第2カメラ51Bは、第2コンテナ92内の画像を上方から撮影する。第2カメラ51Bは、第2コンテナ92内の複数のワークを含む画像を取得する。以下、第1カメラ51Aと第2カメラ51Bとを区別しない場合には、単にカメラ51と称する。
 ここで、画像は、二次元画像又は三次元画像である。三次元画像は、点群データ、RGB-D画像、RGB画像、デプス画像又はボクセル等であり得る。つまり、カメラ51は、三次元カメラ、即ち、RGB-D画像を出力するRGB-Dカメラ、RGB画像を取得するステレオカメラ、又は、点群データを取得する三次元ビジョンセンサ等であり得る。
 -ロボット-
 ロボット1は、ロボットアーム12及びロボットアーム12に取り付けられたハンド14を有する。ロボット1は、この例では、産業用ロボットである。ハンド14は、いわゆるエンドエフェクタである。ロボット1が配置される空間には、直交3軸のベース座標系が規定されている。
 ロボットアーム12は、三次元状に動作するように構成されている。具体的には、ロボットアーム12は、少なくとも3自由度の並進を含む動作を行うように構成されている。この例では、ロボットアーム12は、垂直多関節型のロボットアームである。ロボットアーム12は、ベース10に支持されている。ロボットアーム12は、複数のリンクと、複数のリンクを接続する複数の関節と、複数の関節を回転駆動するサーボモータとを有している。
 詳しくは、ロボットアーム12は、ベース10に連結された第1リンク12aと、第1リンク12aに連結された第2リンク12bと、第2リンク12bに連結された第3リンク12cと、第3リンク12cに連結された第4リンク12dと、第4リンク12dに連結された第5リンク12eとを有している。
 詳しくは、ベース10と第1リンク12aとは、鉛直方向に延びる軸回りに回転可能な第1関節13aを介して互いに連結されている。第1リンク12aと第2リンク12bとは、水平方向に延びる軸回りに回転可能な第2関節13bを介して互いに連結されている。第2リンク12bと第3リンク12cとは、水平方向に延びる軸回りに回転可能な第3関節13cを介して互いに連結されている。第3リンク12cと第4リンク12dとは、第4リンク12dの軸心(即ち、第4リンク12dが延びる方向)回りに回転可能な第4関節13dを介して互いに連結されている。第4リンク12dと第5リンク12eとは、第4リンク12dの軸心と直交する軸回りに回転可能な第5関節13eを介して互いに連結されている。
 ロボットアーム12は、各関節を回転駆動するサーボモータ16(図2参照)を有している。各サーボモータ16は、エンコーダ16a(図2参照)を有している。
 このように構成されたロボットアーム12は、直交三軸のそれぞれの方向への並進動作、及び、直交三軸のそれぞれの軸回りの回転動作を行うように構成されている。
 ハンド14は、ロボットアーム12の所定の基準軸Tを中心とする半径方向へオフセットした位置に配置された吸着器15を含む。吸着器15は、基準軸Tに対して偏心した位置に配置されている。例えば、ハンド14は、ロボットアーム12に取り付けられるベース14aを有している。ベース14aは、基準軸Tを中心とする半径方向へ延びている。ベース14aのうち基準軸Tから遠い方の端部にプレート又はブロック等を介して吸着器15が取り付けられている。
 さらに、吸着器15は、ロボットアーム12に対する位置を変更可能に構成されている。例えば、ハンド14は、基準軸T回りに回転可能にロボットアーム12に取り付けられる。具体的には、ハンド14は、ロボットアーム12の先端部、即ち、第5リンク12eに連結されている。第5リンク12eとハンド14とは、基準軸T回りに回転可能に第6関節13fを介して互いに連結されている。吸着器15は、基準軸T回りのハンド14の回転によってロボットアーム12に対する相対位置を変更する。
 ハンド14は、吸着器15によってワークを吸着する。吸着器15は、吸着パッドを有している。吸着器15には、負圧発生装置に接続されたエアホースが接続されている。エアホースには、アクチュエータ15a(図2参照)としての電磁弁が設けられている。電磁弁が制御されることによって、吸着器15による吸着及びその解除が切り替えられる。吸着器15は、対象ワークWの面を吸着する。エアホースには、圧力センサ15b(図2参照)が設けられている。圧力センサ15bは、エアホース内の負圧の大きさを検出する。
 図2は、ロボット制御装置2及び主制御装置3の概略的なハードウェア構成を示す図である。主制御装置3は、ロボット制御装置2と信号及び情報等の送受信を行う。主制御装置3は、ロボット制御装置2を介してロボット1を制御する。主制御装置3は、指令をロボット制御装置2に出力する。ロボット制御装置2は、主制御装置3からの指令に応じて、ロボットアーム12のサーボモータ16を制御する。
 主制御装置3には、第1カメラ51A及び第2カメラ51Bからの画像が入力される。主制御装置3は、画像に基づいて対象ワークWを検出する。それに加えて、主制御装置3は、検出された対象ワークWに基づいてロボット1の目標経路を生成し、生成された目標経路に対応する指令をロボット制御装置2に出力する。主制御装置3には、アクチュエータ15a及び圧力センサ15bが接続されている。主制御装置3は、アクチュエータ15a及び圧力センサ15bを介してハンド14による吸着を制御する。主制御装置3は、制御装置の一例である。
 ロボット制御装置2は、処理器21と記憶器22とメモリ23とを有している。
 処理器21は、ロボット制御装置2の全体を制御する。処理器21は、各種の演算処理を行う。例えば、処理器21は、CPU(Central Processing Unit)等のプロセッサで形成されている。処理器21は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)、システムLSI等で形成されていてもよい。
 記憶器22は、処理器21で実行されるプログラム及び各種データを格納している。記憶器22は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。メモリ23は、データ等を一時的に格納する。例えば、メモリ23は、揮発性メモリで形成される。
 処理器21は、主制御装置3からの指令に基づいてサーボモータ16を駆動する。このとき、ロボット制御装置2は、エンコーダ16aの検出結果に基づいてサーボモータ16への供給電流をフィードバック制御する。
 主制御装置3は、処理器31と記憶器32とメモリ33とを有している。
 処理器31は、主制御装置3の全体を制御する。処理器31は、各種の演算処理を行う。例えば、処理器31は、CPU(Central Processing Unit)等のプロセッサで形成されている。処理器31は、MCU(Micro Controller Unit)、MPU(Micro Processor Unit)、FPGA(Field Programmable Gate Array)、PLC(Programmable Logic Controller)、システムLSI等で形成されていてもよい。
 記憶器32は、処理器31で実行されるプログラム及び各種データを格納している。記憶器32は、不揮発性メモリ、HDD(Hard Disc Drive)又はSSD(Solid State Drive)等で形成される。
 例えば、記憶器32は、物体を検出する物体検出プログラム、ハンド14の位置姿勢を決定する位置姿勢決定プログラム及びロボット1の目標経路を生成する経路生成プログラム等を格納している。各種プログラムは、主制御装置3に各種機能を実現させる。
 メモリ33は、データ等を一時的に格納する。例えば、メモリ33は、揮発性メモリで形成される。メモリ33は、カメラ51からの画像を記憶する。
 処理器31は、ロボット1に、ハンド14を対象ワークWまで移動させて吸着器15に対象ワークWを吸着させるピッキング動作及び対象ワークWを吸着したハンド14をプレース目標位置まで移動させて吸着器15に対象ワークWの吸着を解除させるプレース動作を実行させる。処理器31は、ピッキング動作の後にプレース動作をロボット1に実行させる。
 処理器31は、ピッキング動作に先立ち、ピッキング時の対象ワークWに対するハンド14の位置及び姿勢である、ハンド14の相対位置姿勢を決定する。処理器31は、プレース動作に先立ち、プレース時の対象ワークWのプレース目標位置を決定する。
 図3は、処理器31の制御系統の構成を示すブロック図である。処理器31は、記憶器32からプログラムをメモリ33に読み出して展開することによって、各種機能を実現する。詳しくは、処理器31は、収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索する探索器47と、複数の位置候補のそれぞれの評価値を算出する評価器48と、複数の位置候補の中から評価値に基づいてプレース目標位置を決定する決定器49として機能する。処理器31は、収容スペースの高さ情報を検出する高さ検出器46としても機能する。さらに、処理器31は、ピッキングの対象ワークWを検出するワーク検出器41と、ハンド14の相対位置姿勢を決定する位置姿勢決定器42と、ロボットアーム12及びハンド14の目標経路を生成する経路生成器43と、ピッキング動作及びプレース動作をロボットアーム12及びハンド14に実行させる動作制御器44と、カメラ51に画像を取得させる撮影制御器45としても機能し得る。
 撮影制御器45は、第1カメラ51A及び第2カメラ51Bを制御して、第1カメラ51A及び第2カメラ51Bのそれぞれに画像を取得させる。第1カメラ51Aは、第1コンテナ91内の画像を取得する。第2カメラ51Bは、第2コンテナ92内の画像を取得する。撮影制御器45は、カメラ51からの画像をメモリ33に記憶させる。
 ワーク検出器41は、画像の中から対象ワークWを画像認識によって検出する。画像には、複数のワークが含まれ得る。ワーク検出器41は、例えば、RANSAC(Random Sample Consensus)によって平面検出を行って、対象ワークWの面(以下、「対象面S」という)を検出する。つまり、ワーク検出器41は、画像に含まれる所定の形状の平面を検出することによって対象ワークWを検出する。図4は、第1コンテナ91内を上方から視た図である。ワーク検出器41は、複数の対象面S、即ち、複数の対象ワークWを検出し得る。ワーク検出器41は、対象面Sを検出する際に、少なくとも対象面Sの中心位置、対象面Sの法線方向、対象面Sの縦横の向き及び対象面Sのサイズ(例えば、縦横サイズ)を求める。尚、対象面Sのサイズは、予め記憶器32に保存されていてもよい。
 位置姿勢決定器42は、対象ワークWとして検出された対象面Sを吸着面とし、ピッキング時のハンド14の相対位置姿勢を決定する。図5は、対象ワークWを吸着するときのハンド14を示す説明図である。詳しくは、対象面Sにおける吸着位置に吸着器15が位置するようにハンド14の位置姿勢が決定される。吸着位置は、例えば、対象面Sの中央である。吸着器15は基準軸Tに対して偏心しているので、吸着器15の位置が決まっても、基準軸Tは、吸着器15を中心として360度の任意の位置に配置され得る。よって、ハンド14の相対位置姿勢は、対象ワークWに対する吸着器15の位置、基準軸Tの位置、基準軸Tの姿勢によって規定される。すなわち、ハンド14の相対位置姿勢が決定されると、対象ワークWに対する基準軸Tの位置及び姿勢と、基準軸Tに対する吸着器15のオフセット方向が決定される。「基準軸Tに対する吸着器15のオフセット方向」は、基準軸Tの方向へ見た場合に、基準軸Tと吸着器15とを結ぶ直線が基準軸Tから延びる方向であり、この例ではベース14aが基準軸Tから延びる方向である。言い換えると、基準軸Tに対する吸着器15のオフセット方向は、基準軸Tに対する吸着器15の偏心方向である。以下、基準軸Tに対する吸着器15のオフセット方向を単に「吸着器15のオフセット方向」と称する。
 この例では、位置姿勢決定器42は、基準軸Tの方向に見た場合に、対象ワークWのうち基準となる側部(以下、「基準側部」という)とハンド14とが重ならず且つ、基準軸Tに対する吸着器15のオフセット方向が基準側部と非平行となるようにハンド14の相対位置姿勢を決定する。
 「対象ワークWの側部」は、対象ワークWのうち側方を向く部分である。具体的には、対象ワークWを基準軸Tの方向へ見た場合に、対象ワークWのうち法線方向と交差する方向を向く部分である。すなわち、対象ワークWの側部は、対象ワークWのうち、吸着器15によって吸着する吸着面と交差する側面である。この例では、対象ワークWは略直方体の形状を有するので、対象ワークWのうち対象面Sの法線方向と略直交する方向を向く部分、つまり、対象面S及びその反対側の面以外の4つの側面が、対象ワークWの側部である。
 経路生成器43は、ロボットアーム12及びハンド14の目標経路を生成する。目標経路は、ロボットアーム12及びハンド14の目標位置及び目標姿勢の順序集合である。すなわち、目標経路は、ロボットアーム12及びハンド14の目標位置及び目標姿勢の経時的な変化である。目標経路は、ロボットアーム12及びハンド14の目標位置及び目標姿勢の経時的な変化を実現する、ロボットアーム12の各関節(第6関節13fを含む)の目標回転角度の順序集合であってもよい。目標経路は、ロボットアーム12及びハンド14の位置及び姿勢を一義的に規定する。目標経路は、基準軸T回りの吸着器15の目標回転位置も規定する。例えば、経路生成器43は、決定されたハンド14の相対位置姿勢にハンド14を移動させるためのロボットアーム12及びハンド14の目標経路を生成する。経路生成器43は、決定されたプレース目標位置に対象ワークWを移動させるためのロボットアーム12及びハンド14の目標経路を生成する。
 例えば、経路生成器43は、PRM(Probabilistic Roadmap Method)又はRRT(Rapidly-Exploring Random Tree)等によって経路計画を実行する。経路生成器43は、これらの手法において干渉チェック、即ち、ロボットアーム12及びハンド14が他の物体と干渉しないかの確認も実行する。干渉チェックとしては、例えば、点群データ又はCADデータを用いた干渉チェック等が行われる。
 動作制御器44は、目標経路に応じた指令をロボット制御装置2に出力する。具体的には、動作制御器44は、ロボットアーム12の各関節の目標回転角度に応じた指令をロボット制御装置2に出力する。ロボット制御装置2が前述の如く、指令に基づいてサーボモータ16を駆動することによって、ロボットアーム12及びハンド14が目標経路に従って移動する。
 動作制御器44は、ハンド14のアクチュエータ15aを制御することによって吸着器15による吸着及びその解除を切り替える。動作制御器44は、アクチュエータ15aを制御して吸着器15に負圧を発生させることによって、吸着器15にワークを吸着させる。動作制御器44は、アクチュエータ15aを制御して吸着器15の負圧を解放することによって、吸着器15によるワークの吸着を解除させる。動作制御器44は、圧力センサ15bの検出結果に基づいて、吸着器15による対象ワークWの吸着の完了を判定する。動作制御器44は、圧力センサ15bによって検出される負圧が所定の閾値以上になる場合に吸着の完了を判定する。
 高さ検出器46は、対象ワークWの収容先となる収容スペースの高さ情報を検出する。この例では、収容スペースは、第2コンテナ92の内部である。高さ情報は、収容スペースの各位置の高さに関する情報であり、具体的には、第2コンテナ92内の各位置の高さ情報である。第2コンテナ92内のうち底面が露出しているエリアでは、底面の各位置の高さが高さ情報となる。第2コンテナ92内のうちワークが存在するエリアでは、ワークの上面の各位置の高さが高さ情報となる。高さ検出器46は、第2コンテナ92内の画像に基づいて、収容スペースの高さ情報を検出する。高さ検出器46は、例えば、三次元画像の点群データから、離散化又は平滑化などの前処理を行った上で、収容スペースの高さ情報を求める。高さ検出器46は、収容スペースの高さ情報を高さマップとして出力する。
 探索器47は、収容スペースにおける対象ワークWのプレース目標位置の候補である複数の位置候補を探索する。ワーク検出器41及び位置姿勢決定器42が対象ワークWを特定することによって、対象ワークWの寸法も取得される。探索器47は、収容スペースにおいて対象ワークWをプレースできる位置をプレース目標位置の位置候補として探索する。
 例えば、探索器47は、収容スペースのうち対象ワークWをプレース可能なスペース(以下、「プレース可能スペース」という)を検出する。探索器47は、収容スペースにおいて対象ワークWをプレースできる平面(以下、「プレース可能面」という)Pを高さマップに基づいて検出し、プレース可能面Pの上方のスペースをプレース可能スペースとする。図6は、第2コンテナ92内を示す例示的な斜視図である。図6において、ドットを付された面がプレース可能面Pである。プレース可能面Pは、上方に露出する平面であり、高さマップにおいて高さが一様な領域である。プレース可能面Pは、第2コンテナ92の底面のうち露出する部分である。既存ワークW0の上面も露出している場合にはプレース可能面Pとなり得る。尚、複数の既存ワークW0が並び、それらの既存ワークW0の上面が上方へ露出し、且つ、それらの既存ワークW0の上面の高さが揃っている場合には、それらの既存ワークW0の上面が単一のプレース可能面Pとなる。図6の例では、2つの既存ワークW0の上面は、それぞれ別のプレース可能面Pとして扱われる。
 探索器47は、プレース可能面Pにおいて対象ワークWの位置を変更しならが、各位置において対象ワークWをプレースできるか否かを判定する。図7は、位置候補の探索を説明するための第2コンテナ92内の模式的な平面図である。プレース可能と判定された位置は、位置候補となる。プレースできるか否かは、対象ワークWが他の物体に干渉することなくプレースできるか否かによって判定される。このとき、探索器47は、対象ワークWの実際の大きさ(一点鎖線参照)に所定のマージンを加えた大きさを探索用の対象ワークWの大きさ(破線参照)とする。具体的には、探索器47は、対象ワークWの底面を所定のマージンの分だけ拡大する。
 このように、探索器47は、第2コンテナ92の底面だけでなく、既存ワークW0の上面もプレース可能面Pとして、位置候補を探索する。
 さらに、探索器47は、複数の位置候補をワークの収容効率の観点で絞り込む。例えば、探索器47は、複数の位置候補の中から、収容スペースにおける角のスペースに対応する位置候補を選抜する。図8は、位置候補の絞り込みを説明するための第2コンテナ92内の模式的な平面図である。第2コンテナ92内には、第2コンテナ92の側壁及び既存ワークW0の側面によって角が形成され得る。第2コンテナ92内にワークを収容する際には、角を含むスペースにワークを詰めて配置することがワークの収容効率の観点で好ましい。そのため、探索器47は、図8に示すように、複数の位置候補の中から角のスペースに対応する位置候補を選抜する。尚、複数の位置候補の中に角のスペースに対応する位置候補が含まれない場合には、探索器47は、位置候補の絞り込みを行わない。
 評価器48は、それぞれの位置候補に対象ワークWがプレースされた後の収容スペース内の空きスペースに基づいて評価値を算出する。図9は、対象ワークWがプレースされた後の空きスペースを示す第2コンテナ92内の例示的な斜視図である。図9において、ドットを付された面がプレース可能面Pである。空きスペースは、プレース可能スペースと同様のスペースである。すなわち、空きスペースは、対象ワークWがプレースされた後においてワークをプレース可能なスペースである。探索時と同様に、プレース可能面Pの上方に空きスペースが形成される。プレース可能面Pは、上方に露出する平面である。位置候補にプレースされた対象ワークWが既存ワークW0と並び、両ワークの上面が上方へ露出し、且つ、両ワークの上面の高さが揃っている場合には、両ワークの上面は単一のプレース可能面Pとみなされる。
 評価値は、空きスペースへの仮想ワークの収容効率を示すパラメータである。収容効率は、仮想ワークを空きスペースに収容する効率であり、空きスペースにいかに効率よく仮想ワークを収容できるかを表す。例えば、収容できる仮想ワークの個数が多いほど、及び、仮想ワークを収容できる位置のバリエーションが多いほど、収容効率は高くなる。例えば、評価値は、空きスペースに仮想ワークをプレースできる位置の候補数に関連するパラメータである。あるいは、評価値は、空きスペースにプレースできる仮想ワークの収容数に関するパラメータであってもよい。
 具体的には、評価器48は、対象となる位置候補に対象ワークWがプレースされた後のプレース可能面Pにおいて仮想ワークWiをプレースできる位置の候補数を算出する。図10は、複数種類の仮想ワークを示す図である。図11は、評価値の算出を説明するための第2コンテナ92内の模式的な平面図である。
 仮想ワークWiは、大きさが異なる複数種類の仮想ワークWiを含んでいてもよい。仮想ワークWiの種類を区別する場合には、符号の「Wi」の後の数字によって区別する。具体的には、複数種類の仮想ワークWiは、第1仮想ワークWi1、第2仮想ワークWi2、第3仮想ワークWi3、第4仮想ワークWi4及び第5仮想ワークWi5を含む。複数種類の仮想ワークWiは、それぞれ異なる二次元的な大きさを有する。この例では、複数種類の仮想ワークWiは、それぞれ面積の異なる略正方形の二次元形状を有する。第1仮想ワークWi1は、最も小さな正方形の二次元形状を有する。第2仮想ワークWi2は、第1仮想ワークWi1よりも大きな二次元形状を有する。第3仮想ワークWi3は、第2仮想ワークWi2よりも大きな二次元形状を有する。第4仮想ワークWi4は、第3仮想ワークWi3よりも大きな二次元形状を有する。第5仮想ワークWi5は、第4仮想ワークWi4よりも大きな二次元形状を有する。
 複数種類の仮想ワークWiのそれぞれには、異なるスコアが割り当てられている。この例では、複数種類の仮想ワークWiのそれぞれに、大きさに対応するスコアが割り当てられている。大きい形状の仮想ワークWiを収容できる場合、当然ながらより小さい形状の仮想ワークWiを収容できる。そのため、複数種類の仮想ワークWiは、二次元形状の面積が大きいほど高いスコアが割り当てられている。より具体的には、第1仮想ワークWi1には、3点のスコアが割り当てられている。第2仮想ワークWi2には、6点のスコアが割り当てられている。第3仮想ワークWi3には、9点のスコアが割り当てられている。第4仮想ワークWi4には、12点のスコアが割り当てられている。第5仮想ワークWi5には、15点のスコアが割り当てられている。
 評価器48は、対象ワークWをプレース後の空きスペースにおいて仮想ワークWiをプレースする位置候補がいくつあるか求める。評価器48は、空きスペース内で仮想ワークWiの位置を所定量ずつ二次元的に移動させ、仮想ワークWiを他の物体に干渉することなくプレースできるか否かを判定する。詳しくは、評価器48は、図11に示すように、対象となる一の位置候補に対象ワークWがプレースされた後のプレース可能面P上で、仮想ワークWiを移動させながら、各位置において仮想ワークWiを他の物体に干渉することなくプレースできるか否かを判定する。仮想ワークWiがプレース可能な場合には、評価器48は、その位置を位置候補として計数する。評価器48は、プレース可能面Pの全範囲で仮想ワークWiを移動させ、候補数を計数する。評価器48は、対象ワークW及び既存ワークW0のプレース可能面Pにも仮想ワークWiを移動させて、候補数を計数する。対象ワークWが既存ワークW0と並び、対象ワークWの上面と既存ワークW0の上面が上方に露出し、且つ、両ワークの上面の高さが揃っている場合には、評価器48は、両ワークの上面を一様なプレース可能面Pとして仮想ワークWiをプレースできるか否かを判定する。
 候補数が多いほど、より多くの仮想ワークのWiを収容できる可能性が高い。つまり、候補数は、仮想ワークWiの収容量に関連している。評価器48は、仮想ワークWiに割り当てられたスコアを候補数に乗じて、仮想ワークWiの合計スコアを求める。
 評価器48は、全種類の仮想ワークWiに関して、仮想ワークWiの合計スコアを求める。評価器48は、全種類の仮想ワークWiの合計スコアを合算した値を評価値とする。
 評価器48は、一の位置候補に関して評価値を算出した後、対象ワークWが別の位置候補にプレースされた場合の評価値を求める。最終的に、評価器48は、全ての位置候補に関して評価値を求める。
 このように求められた評価値は、空きスペースにより大きな仮想ワークWiをより多く収容できるほど大きくなる。より大きな仮想ワークWiをより多く収容できるということは、将来的により多くのワークをより高い自由度でプレースできることを意味する。つまり、評価値は、対象ワークWがプレースされた後の空きスペースへの仮想ワークWiの収容効率を示している。
 決定器49は、複数の位置候補の中から最も評価値が高い位置候補をプレース目標位置として決定する。経路生成器43は、決定されたプレース目標位置へ対象ワークWを移送するためのロボットアーム12及びハンド14の目標経路を生成する。
 続いて、このように構成されたロボットシステム100の動作について説明する。ロボットシステム100におけるピックアンドプレース処理について図12のフローチャートを参照して説明する。図12は、ピックアンドプレース処理のフローチャートである。
 まず、ステップS101において、撮影制御器45は、第1コンテナ91内の画像を取得する。詳しくは、撮影制御器45は、第1カメラ51Aに第1コンテナ91内の画像を取得させる。
 次に、ステップS102において、ワーク検出器41は、第1コンテナ91内の画像の中から対象ワークW、具体的には対象面Sを検出する。例えば、ワーク検出器41は、複数の対象面Sを検出する。
 続いて、ステップS103において、位置姿勢決定器42は、吸着位置計画を実行する。吸着位置計画では、ハンド14によって吸着する対象ワークWが決定されると共に、対象ワークWに対するハンド14の相対位置姿勢が決定される。このとき、ハンド14の相対位置姿勢を実現するための、ロボットアーム12及びハンド14の目標経路も生成される。
 ハンド14の相対位置姿勢が決定されると、ステップS104において、動作制御器44は、ロボットアーム12及びハンド14にピッキング動作を実行させる。つまり、動作制御器44は、吸着位置計画で決定された対象ワークWを決定されたハンド14の相対位置姿勢で吸着するように、ロボットアーム12及びハンド14を制御する。具体的には、動作制御器44は、ロボットアーム12及びハンド14を目標経路に従って移動させ、吸着器15を対象ワークWまで移動させる。動作制御器44は、吸着器15に対象ワークWを吸着させる。
 ピッキング動作中又はピッキング動作完了後に、ステップS105において、撮影制御器45は、第2コンテナ92内の画像を取得する。詳しくは、撮影制御器45は、第2カメラ51Bに第2コンテナ92内の画像を取得させる。
 次に、ステップS106において、プレース位置計画が実行される。プレース位置計画では、対象ワークWのプレース目標位置が決定される。このとき、対象ワークWのプレース目標位置を実現するための、ロボットアーム12及びハンド14の目標経路も生成される。
 プレース目標位置が決定されると、ステップS107において、動作制御器44は、ロボットアーム12及びハンド14にプレース動作を実行させる。つまり、動作制御器44は、プレース位置計画で決定されたプレース目標位置に対象ワークWが配置されるように、ロボットアーム12及びハンド14を制御する。具体的には、動作制御器44は、ロボットアーム12及びハンド14を目標経路に従って移動させ、対象ワークWをプレース目標位置まで移動させる。対象ワークWがプレース目標位置に到達すると、動作制御器44は、吸着器15による吸着を解除させる。こうして、プレース目標位置への対象ワークWのプレースが完了する。これにより、ピックアンドプレース処理が完了する。
 主制御装置3は、一の対象ワークWについてピックアンドプレース処理が完了すると、別の対象ワークWのピックアンドプレース処理のために、ステップS101からの処理を繰り返す。主制御装置3は、このような制御を繰り返すことによって、第1コンテナ91内の対象ワークWを順次、第2コンテナ92内へ移送する。
 =吸着位置計画=
 次に、吸着位置計画について詳しく説明する。図13は、吸着位置計画のサブルーチンのフローチャートである。
 ステップS201において、位置姿勢決定器42は、ハンド14の相対位置姿勢の候補を作成する。このとき、位置姿勢決定器42は、ハンド14の相対位置姿勢の複数の候補を作成し得る。詳しくは、位置姿勢決定器42は、一の対象面Sに関し、ハンド14の相対位置姿勢の候補を複数作成し得る。さらに、複数の対象面Sがある場合には、位置姿勢決定器42は、それぞれの対象面Sに対して、ハンド14の相対位置姿勢の候補を作成し得る。
 図14は、基準軸Tの方向に見た場合のハンド14の相対位置姿勢を示す模式図である。図14において、一点鎖線は、吸着器15のオフセット方向ODを示している。ピッキング時には、吸着器15が対象面Sの吸着位置に位置し、且つ、基準軸Tが対象面Sに対して略直交する。基準軸Tの位置は、吸着器15を中心として360度の任意の位置を採り得る。つまり、位置姿勢決定器42は、対象面Sの吸着位置を中心とする周方向の異なる位置に基準軸Tが配置された、ハンド14の相対位置姿勢の複数の候補を作成し得る。この例では、吸着位置は、対象面Sの略中心である。さらに、位置姿勢決定器42は、対象面Sが異なる、ハンド14の相対位置姿勢の複数の候補を作成し得る。
 次に、ステップS202において、位置姿勢決定器42は、ハンドの14の相対位置姿勢の候補に優先度を付与する。例えば、位置姿勢決定器42は、2つの観点で優先度を付与する。
 第1の観点では、基準軸Tの方向に見た場合に、対象ワークWのうち基準側部とハンド14とが重ならず且つ、基準軸Tに対する吸着器15のオフセット方向が基準側部と非平行となる候補に、高い優先度が付与される。この条件が満たされる場合、基準軸Tの方向に見た場合に基準軸Tと基準側部とが比較的離れた状態でハンド14が対象ワークWを吸着する。
 この例では、位置姿勢決定器42は、対象ワークWに2つの基準側部を設定する。例えば、位置姿勢決定器42は、対象ワークWの側部R1,R2,R3,R4のうちいずれか2つの側部、具体的には、対象ワークWの角を形成するように繋がる2つの側部を基準側部とする。そして、位置姿勢決定器42は、基準側部である2つの側部の両方ともハンド14が重ならず且つ、基準軸Tに対する吸着器15のオフセット方向が2つの側部の両方とも非平行となる候補に、高い優先度を付与する。さらに、位置姿勢決定器42は、基準側部を別の2つの側部に変更し、変更後の2つの側部に関して前述の条件を満たす候補に、高い優先度を付与してもよい。
 具体的には、位置姿勢決定器42は、対象面Sの辺を対象ワークWの側部とみなす。位置姿勢決定器42は、対象面Sの4つの角を形成する各2つの辺、即ち、合計4組の辺に関して前述の条件を満たす候補に相対的に高い優先度を付与する。そして、位置姿勢決定器42は、残った候補に相対的に低い優先度を付与する。例えば、位置姿勢決定器42は、基準側部としての辺と吸着器15のオフセット方向とのなす角が閾値α以上の場合に、基準側部とオフセット方向とが非平行とみなす。図15は、基準側部としての辺と吸着器15のオフセット方向とのなす角が閾値α以上となる領域Aと、なす角が閾値α未満となる領域Bとを示す模式図である。その結果、図15に示すように、吸着器15のオフセット方向が領域Aに含まれる候補には、相対的に高い優先度が付与される。一方、吸着器15のオフセット方向が領域Bに含まれる候補には、相対的に低い優先度が付与される。
 あるいは、対象ワークWにおける2つの基準側部が予め決められていてもよい。その場合、位置姿勢決定器42は、一組の基準側部に関し前述の条件を満たす候補に高い優先度を付与し、それ以外の候補に低い優先度を付与する。
 第2の観点では、位置姿勢決定器42は、ロボットアーム12の現状、即ち、現在位置からの移動量が少ない候補に、高い優先度が付与される。例えば、ロボットアーム12の全ての関節の変化量の合計が小さい順に高い優先度が付与され得る。
 次に、ステップS203において、位置姿勢決定器42は、ハンド14の相対位置姿勢の候補があるか否かを判定する。適切な対象面Sが存在しない場合などには、前述のステップS201においてハンド14の相対位置姿勢の候補が1つも作成されないこともあり得る。そのような場合には、ステップS206において、ピックアンドプレース処理が終了する。
 ハンドの14の相対位置姿勢の候補が存在する場合には、ステップS204において、位置姿勢決定器42は、優先度の最も高い候補を抽出する。そして、経路生成器43は、現在のハンド14の位置姿勢から抽出されたハンド14の相対位置姿勢までのロボットアーム12の目標経路を生成する。このとき、経路生成器43は、目標経路の干渉チェックを行い、干渉の無い目標経路を生成する。干渉がある場合には、経路生成器43は、目標経路を生成しない。
 ステップS205において、位置姿勢決定器42は、目標経路が生成されたか否かを判定する。目標経路が生成されなかった場合には、位置姿勢決定器42は、抽出されたハンド14の相対位置姿勢の候補を候補から除外し、ステップS203に戻る。位置姿勢決定器42は、優先度の最も高い候補を再び抽出し、経路生成器43は、目標経路の生成及び干渉チェックを再び実行する。
 こうして、位置姿勢決定器42は、ハンド14の相対位置姿勢の候補の中から優先度の高い順に候補を抽出する。抽出された候補に関し、干渉の無い目標経路が生成されると、位置姿勢決定器42は、ハンド14の相対位置姿勢を決定し、吸着位置計画を終了する。
 =プレース位置計画=
 次に、プレース位置計画について詳しく説明する。図16は、プレース位置計画のサブルーチンのフローチャートである。
 ステップS301において、高さ検出器46は、収容スペース、即ち、第2コンテナ92の内部の高さマップを作成する。
 次に、ステップS302において、探索器47は、プレース目標位置の複数の位置候補を探索する。詳しくは、探索器47は、第2コンテナ92内において、対象ワークWのプレース目標位置の位置候補を複数作成する。ステップS302は、収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索することに相当する。
 続いて、ステップS303において、探索器47は、位置候補があるか否かを判定する。第2コンテナ92内にスペースが無い場合などには、ステップS302において位置候補が1つも見つけられないこともあり得る。そのような場合には、ステップS309において、ピックアンドプレース処理が終了する。
 位置候補が存在する場合には、ステップS304において、探索器47は、位置候補を絞り込む。例えば、探索器47は、複数の位置候補の中から、収容スペースにおける角のスペースに対応する位置候補を選抜する。尚、絞り込みの対象となる位置候補が存在しない場合には、探索器47は、位置候補の絞り込みを行わない。
 その後、ステップS305において、評価器48は、位置候補の評価値を算出する。ステップS304で複数の位置候補が選抜された場合には、評価器48は、複数の位置候補のそれぞれの評価値を算出する。ステップS305は、複数の前記位置候補のそれぞれの評価値を算出することに相当する。
 ステップS306において、経路生成器43は、最も評価値の高い位置候補に関して目標経路を生成する。つまり、経路生成器43は、ロボットアーム12及びハンド14の現在の位置姿勢から最も評価値の高い位置候補に対応する位置姿勢までのロボットアーム12及びハンド14の目標経路を生成する。このとき、経路生成器43は、目標経路の干渉チェックを行い、干渉の有無を確認する。干渉がある場合には、経路生成器43は、干渉があった位置候補を除外し、次に評価値の高い位置候補に関して目標経路を生成する。こうして、経路生成器43は、位置候補の中から評価値の高い順に目標経路を生成する。
 ステップS307において、決定器49は、プレース目標位置を、干渉の無い目標経路が生成された位置候補に決定する。これにより、プレース位置計画が終了する。ステップS307は、複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定することに相当する。
 一方、干渉のない目標経路が生成されない場合、即ち、プレース目標位置が決定されない場合には、探索器47は、ステップS308において、位置候補の探索時に対象ワークWの実際の大きさに加えられるマージンを変更し、ステップS302の位置候補の探索に戻る。
 位置候補の探索時に用いる対象ワークWの大きさを変更することによって、導出される位置候補が前回の探索時から変化し得る。具体的には、探索器47は、マージンを拡大する。これにより、探索器47は、位置候補の再度の探索時には、前回よりも大きな対象ワークWを用いて位置候補を探索する。
 このような位置候補に基づいて求められるプレース目標位置に対象ワークWがプレースされると、対象ワークWは周囲の物体との間により大きなマージンを有する。そのため、ステップS306において、このような位置候補を用いることによって、干渉の無い目標経路が生成される可能性が高まる。プレース目標位置及び目標経路が生成されると、プレース位置計画が終了する。
 それでもなお適切な目標経路が生成されない場合には、マージンがさらに拡大され、ステップS302の処理から繰り返される。
 このようなピックアンドプレース処理では、対象ワークWが収容スペースにプレースされた後の将来的なワークの収容効率に基づいてプレース目標位置が決定される。今回の対象ワークWのことだけを考慮してプレース目標位置が決定されると、次回以降の対象ワークWの収容効率が低下する虞がある。主制御装置3は、対象ワークWのプレース後の空きスペースに基づいて評価値を求め、評価が高い位置候補をプレース目標位置に決定する。これにより、今回の対象ワークWだけでなく、次回以降の対象ワークWを含む複数のワークの適切なプレースを実現することができる。
 空きスペースの評価は、様々な観点で行うことができる。例えば、空きスペースにどれだけ多くのワークを収容できるかが評価されてもよい。あるいは、空きスペースにワークをどれだけ自由に配置できるかが評価されてもよい。この例では、評価値は、空きスペースへの仮想ワークWiの収容効率に関連する。これにより、対象ワークWのプレース後の空きスペースへの仮想ワークWiの収容効率が高くなるように、プレース目標位置を決定することができる。つまり、今回以降の複数のワークの収容効率を向上させることができる。
 さらに、仮想ワークWiは大きさの異なる複数種類の仮想ワークを含み、複数種類の仮想ワークWiに関して評価値が算出される。そのため、将来的に様々な大きさのワークがプレースされる場合でも、それらの複数のワークの収容効率を向上させることができる。
 評価器48は、今回の対象ワークWの上面も空きスペースとして扱う。つまり、対象ワークWと既存ワークW0とが並んで配置され、対象ワークWの上面と既存ワークW0の上面とが上方へ露出し、且つ、対象ワークWの上面と既存ワークW0の上面との高さが揃っている場合には、それらの上面も単一のプレース可能面Pとして評価値が求められる。つまり、対象ワークWを高さの同じ既存ワークW0に並べてプレースする方が、空きスペースが拡大し、評価値が高くなる傾向にある。このように、評価器48は、空きスペースの仮想ワークWiの平面的な収容効率だけでなく、三次元的な収容効率も考慮することができる。
 また、評価器48は、空きスペースに仮想ワークWiをプレースできる位置の候補数に関連するパラメータを評価値として算出している。評価器48は、空きスペースにプレースできる仮想ワークWiの収容数に関連するパラメータを評価値として算出することもできる。しかし、評価器48は、空きスペースに仮想ワークWiをプレースできる位置の候補数に関連するパラメータを用いることによって、演算量を低減できる。
 この例では、評価器48は、複数の位置候補の中から収容スペースの角に対応する位置候補について優先的に評価値を算出する。ワークを角から詰めてプレースする方が収容効率が高くなる傾向にある。そのため、角に対応する位置候補について優先的に評価値を算出して、プレース目標位置を決定することによって、演算量を低減することができる。
 それに加えて、対象ワークWを吸着するハンド14の相対位置姿勢が、基準軸Tの方向に見た場合に対象ワークWの基準側部とハンド14とが重ならず且つ、吸着器15のオフセット方向が基準側部と非平行となるように決定される。基準側部は、対象ワークWのうち角を形成するように繋がる2つの側部である。これにより、基準軸Tの方向に見た場合に、吸着器15と2つの基準側部のそれぞれとの距離よりも、基準軸Tと2つの基準側部のそれぞれとの距離の方が離れる。そのため、基準軸Tの方向に見た場合に、ロボットアーム12の先端部と2つの基準側部とが重なりにくくなる。その結果、対象ワークWの角を収容スペースの角に合わせて対象ワークWをプレースし易くなる。
 さらに、位置候補は、対象ワークWの実際の大きさを所定のマージンだけ拡大された、対象ワークWの大きさに基づいて探索される。そのため、最終的に決定されたプレース目標位置は、対象ワークWが変位可能なマージンを有する。プレース動作では、ロボットアーム12及びハンド14は、対象ワークWをプレース目標位置まで移動させた後、対象ワークWを横移動させて、収容スペースの角を形成する他の物体に対象ワークWを接触させる。これにより、対象ワークWの角を収容スペースの角に適切に合わせることができる。
 《その他の実施形態》
 以上のように、本出願において開示する技術の例示として、前記実施形態を説明した。しかしながら、本開示における技術は、これに限定されず、適宜、変更、置き換え、付加、省略などを行った実施の形態にも適用可能である。また、前記実施形態で説明した各構成要素を組み合わせて、新たな実施の形態とすることも可能である。また、添付図面および詳細な説明に記載された構成要素の中には、課題解決のために必須な構成要素だけでなく、前記技術を例示するために、課題解決のためには必須でない構成要素も含まれ得る。そのため、それらの必須ではない構成要素が添付図面や詳細な説明に記載されていることをもって、直ちに、それらの必須ではない構成要素が必須であるとの認定をするべきではない。
 例えば、主制御装置3が組み込まれたロボットシステム100は、対象ワークWを第1コンテナ91から第2コンテナ92へ移送するものに限定されない。例えば、ロボット1は、デバンニングを実行するものであってもよい。対象ワークWの収容先は、第2コンテナ92に限定されない。例えば、対象ワークWの収容先は、コンベア、棚又はパレット等であってもよい。
 ロボットアーム12は、垂直多関節型のロボットアームに限定されない。ロボットアーム12は、水平多関節型、パラレルリンク型、直角座標型、又は極座標型のロボットアーム等であってもよい。
 吸着器15は、ロボットアーム12に対して基準軸T回りに回転しなくてもよい。吸着器15は、基準軸T回りに回転不能であっても、ロボットアーム12の基準軸Tを中心とする半径方向にオフセットした位置に配置、即ち、基準軸Tに対して偏心した位置に配置されていればよい。吸着器15は、負圧ではなく、磁力等によってワークを吸着してもよい。
 カメラ51は、第1カメラ51A及び第2カメラ51Bを含んでいなくてもよい。1つのカメラ51が第1コンテナ91内の画像と第2コンテナ92内の画像とを取得してもよい。カメラ51は、固定的に配置されたものではなく、ロボットアーム12に取り付けられ、ロボットアーム12によって移動させられてもよい。
 ロボットシステム100は、カメラ51を備えていなくてもよい。その場合、外部から主制御装置3に画像が入力されてもよい。画像の取得方法は問わない。外部から入力された画像は、メモリ33に記憶されてもよいし、記憶器32に記憶されてもよい。
 尚、ピッキングされる対象ワークは、バラ積みされてなく、整列されていてもよい。対象ワークは、直方体のワークに限定されない。例えば、対象ワークは、略三角柱の形状を有していてもよい。対象ワークは、肥料、石灰、砂利等の粉体又は粒体が詰められた袋であってもよい。
 ワーク検出器41、位置姿勢決定器42、動作制御器44及び撮影制御器45の処理は、一例に過ぎない。例えば、ワーク検出器41は、様々な手法によって画像から対象面Sを検出し得る。位置姿勢決定器42は、様々な手法によってハンド14の相対位置姿勢を決定し得る。
 対象ワークの基準側部は、平面に限定されない。対象ワークが袋状のワークの場合、吸着器15が接触する吸着面に対して側方を向く部分が、基準側部になり得る。
 また、位置姿勢決定器42は、対象ワークを直方体に近似して、近似直方体のうちの一の面を吸着面として、吸着面に対して側面となる面を基準側部としてもよい。例えば、位置姿勢決定器42は、対象ワークを、OBB(Oriented Bounding Box)によって近似してもよい。
 位置姿勢決定器42は、プレース位置計画の後に吸着位置計画を実行してもよい。この場合、位置姿勢決定器42は、先に決定されるプレース目標位置に基づいて、ピッキング時のハンド14の相対位置姿勢を決定することができる。例えば、収容スペースの角に対応する位置がプレース目標位置の場合、角を形成する2つの側面に接触する、対象ワークWの2つの側部が予め決められる。位置姿勢決定器42は、その2つの側部を基準側部としてハンド14の相対位置姿勢を決定する。
 位置姿勢決定器42は、ハンド14の相対位置姿勢の候補を作成する際に、基準軸Tの方向に見た場合に対象ワークWの基準側部とハンド14とが重なるハンド14の相対位置姿勢、又は、基準軸Tの方向に見た場合に吸着器15のオフセット方向が基準側部と平行となるハンド14の相対位置姿勢を候補として作成しなくてもよい。つまり、位置姿勢決定器42は、基準軸Tの方向に見た場合に対象ワークWのうち基準側部とハンド14とが重ならず且つ、基準軸Tに対する吸着器15のオフセット方向が基準側部と非平行となるハンド14の相対位置姿勢のみを候補として作成してもよい。
 さらに、位置姿勢決定器42によるハンド14の相対位置姿勢の決定は、好ましい一例に過ぎず、基準軸Tの方向に見た場合に対象ワークWの基準側部とハンド14とが重なる、又は、基準軸Tの方向に見た場合に吸着器15のオフセット方向が基準側部と平行となってもよい。
 探索器47、評価器48又は決定器49の処理は、一例に過ぎない。例えば、探索器47は、複数の位置候補の絞り込みを行う場合、複数の位置候補を段階的に絞り込んでもよい。前述の如く、角に対応する位置候補に絞り込んでプレース目標位置が決定できなかった場合、残りの位置候補を、収容スペース内の側面に接触する位置候補に絞り込んでもよい。あるいは、探索器47は、複数の位置候補を角に対応する位置候補及び側面に接触する位置候補の両方で1度に絞り込んでもよい。探索器47は、複数の位置候補の絞り込みを行わなくてもよい。
 探索器47は、位置候補を探索するときに、対象ワークWの実際の大きさに所定のマージンを加えているが、これに限定されない。探索器47は、対象ワークWの実際の大きさを用いて、位置候補を探索してもよい。
 評価器48は、空きスペースにプレースできる仮想ワークWiの収容数に関するパラメータを評価値として算出してもよい。つまり、評価器48は、空きスペース内での仮想ワークWiの配置を調節して、空きスペースに収容できる仮想ワークWiの最大個数を複数種類の仮想ワークWiのそれぞれについて求めてもよい。評価器48は、各仮想ワークWiの最大個数に対応するスコアを乗じて各仮想ワークWiの合計スコアを算出し、それらの合計を評価値としてもよい。
 仮想ワークWiは、複数種類の仮想ワークWiを含んでいなくてもよい。つまり、評価器48は、単一種類の仮想ワークWiを用いて評価値を算出してもよい。
 仮想ワークWiが複数種類の仮想ワークWiを含む場合、種類の数は、5に限定されない。種類の数は、2、3、4でもよく、6以上であってもよい。
 仮想ワークWiの二次元形状は、正方形に限定されない。例えば、将来のワークの形状が既知の場合には、仮想ワークWiの二次元形状は既知のワーク形状であってもよい。
 複数種類の仮想ワークWiのそれぞれに割り当てられた、前述のスコアは、一例に過ぎない。評価値は、任意に設定され得る。評価が高いほど値が小さくなるように、評価値が設定されてもよい。複数種類の仮想ワークWiのそれぞれに異なるスコアが割り当てられる場合、例えば、実際の頻度が高いと想定される仮想ワークWiほど高いスコアが割り当てられてもよい。
 制御装置は、主制御装置3のような単一の装置でなくてもよい。制御装置は、分離された複数の装置を含んでいてもよい。例えば、ワーク検出器41と位置姿勢決定器42と動作制御器44とは、別々の装置によってそれぞれ実現されてもよい。
 フローチャートは、一例に過ぎない。フローチャートにおけるステップを適宜、変更、置き換え、付加、省略等を行ってもよい。また、フローチャートにおけるステップの順番を変更したり、直列的な処理を並列的に処理したりしてもよい。例えば、図12のステップS105の第2コンテナ92内の撮影及びステップS106のプレース位置計画は、プレース動作の前であればいつ実行されてもよい。具体的には、第2コンテナ92内の撮影及びプレース位置計画は、吸着位置計画等に先立って又は並行して実行されてもよい。
 本明細書中に記載されている構成要素により実現される機能は、当該記載された機能を実現するようにプログラムされた、汎用プロセッサ、特定用途プロセッサ、集積回路、ASICs(Application Specific Integrated Circuits)、CPU(a Central Processing Unit)、従来型の回路、及び/又はそれらの組合せを含む、回路(circuitry)又は演算回路(processing circuitry)において実装されてもよい。プロセッサは、トランジスタ及びその他の回路を含み、回路又は演算回路とみなされる。プロセッサは、メモリに格納されたプログラムを実行する、プログラマブルプロセッサ(programmed processor)であってもよい。
 本明細書において、回路(circuitry)、ユニット、手段は、記載された機能を実現するようにプログラムされたハードウェア、又は実行するハードウェアである。当該ハードウェアは、本明細書に開示されているあらゆるハードウェア、又は、当該記載された機能を実現するようにプログラムされた、又は、実行するものとして知られているあらゆるハードウェアであってもよい。
 当該ハードウェアが回路(circuitry)のタイプであるとみなされるプロセッサである場合、当該回路、手段、又はユニットは、ハードウェアと、当該ハードウェア及び又はプロセッサを構成する為に用いられるソフトウェアの組合せである。
 本開示の技術をまとめると以下のようになる。
 [1] 主制御装置3(制御装置)は、収容スペースにおける対象ワークWのプレース目標位置の候補である複数の位置候補を探索する探索器47と、複数の前記位置候補のそれぞれの評価値を算出する評価器48と、複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定する決定器49とを備え、前記評価器48は、それぞれの前記位置候補に前記対象ワークWがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出する。
 この構成によれば、プレース目標位置は、対象ワークWがプレースされた後の空きスペースに基づいて決定される。これにより、対象ワークWがプレースされた後に後続するワークをさらにプレースすることも考慮して、プレース目標位置が決定され得る。その結果、今回の対象ワークWだけでなく、次回以降のワークを含む複数のワークの適切なプレースを実現することができる。
 [2] [1]に記載の主制御装置3において、前記評価値は、前記空きスペースへの仮想ワークWiの収容効率を示すパラメータである。
 この構成によれば、プレース目標位置は、対象ワークWがプレースされた後の空きスペースへの仮想ワークWiの収容効率に基づいて決定される。これにより、対象ワークWがプレースされた後の空きスペースへ仮想ワークWiをいかに効率よくプレースできるかを考慮してプレース目標位置が決定され得る。その結果、今後プレースされる複数のワークの収容効率を向上させることができる。
 [3] [1]又は[2]に記載の主制御装置3において、前記評価値は、前記空きスペースにプレースできる仮想ワークWiの収容数又は前記空きスペースに仮想ワークWiをプレースできる位置の候補数に関連するパラメータである。
 この構成によれば、プレース目標位置は、対象ワークWがプレースされた後の空きスペースへの仮想ワークWiの収容量に基づいて決定される。つまり、仮想ワークWiの収容数は、仮想ワークWiの収容量を直接的に示す。仮想ワークWiをプレースできる位置の候補数は、仮想ワークWiの収容量に関連している。これにより、対象ワークWがプレースされた後の空きスペースへいかに多くの仮想ワークWiをプレースできるかを考慮してプレース目標位置が決定され得る。その結果、今後プレースされる複数のワークの収容効率を向上させることができる。
 [4] [1]乃至[3]の何れか1つに記載の主制御装置3において、前記仮想ワークWiは、大きさの異なる複数種類の仮想ワークを含み、前記複数種類の仮想ワークには、異なるスコアが割り当てられ、前記評価器48は、前記収容数又は前記候補数と前記スコアに応じて前記評価値を算出する。
 この構成によれば、仮想ワークの大きさの違いを考慮して、空きスペースへの仮想ワークWiの収容効率が評価される。言い換えると、空きスペースへの仮想ワークWiの収容効率を評価する際に、仮想ワークの大きさの違いを考慮することができる。その結果、将来的にプレースされるワークの大きさのバリエーションも考慮して、複数のワークの収容効率を向上させることができる。
 [5] [1]乃至[4]の何れか1つに記載の主制御装置3において、前記評価器48は、前記収容スペースの底面のうち露出する部分の上のスペース及び前記収容スペースにおける既存のワークW0の上面のうち露出する部分の上のスペースを前記空きスペースとして前記評価値を算出する。
 この構成によれば、評価器48は、収容スペースの底面だけでなく、既存ワークW0の上面の上方のスペースも仮想ワークWiをプレースするスペースとして評価する。その結果、空きスペースにおける仮想ワークWiの平面的な収容効率だけでなく、三次元的な収容効率も考慮することができる。
 [6] [1]乃至[5]の何れか1つに記載の主制御装置3において、前記評価器48は、前記対象ワークWと前記既存のワークW0とが並び、前記対象ワークWの上面及び前記既存のワークW0の上面とが露出し、且つ、前記対象ワークWの上面と前記既存のワークW0の上面との高さが揃っている場合に、前記対象ワークWの上面及び前記既存のワークW0の上面を単一の面として前記評価値を算出する。
 この構成によれば、高さが揃った状態で並ぶ、対象ワークWの上面及び既存ワークW0の上面は、単一の面として扱われるため、仮想ワークWiの収容効率の向上に寄与する。既存ワークW0と高さが揃うように対象ワークWをプレースした方が評価値が高くなる傾向にある。つまり、プレースされた後の対象ワークWの上面に仮想ワークWiがどれくらいプレースできるかも考慮された上で、プレース目標位置が決定される。その結果、空きスペースにおける仮想ワークWiの平面的な収容効率だけでなく、三次元的な収容効率もより詳細に考慮される。
 [7] [1]乃至[6]の何れか1つに記載の主制御装置3において、前記探索器47は、前記収容スペースに含まれる角に対応する前記位置候補を探索する。
 この構成によれば、評価値の演算量を低減できる。詳しくは、収容スペースに対象ワークWを収容する際には、角を含むスペースに対象ワークWを詰めて配置することがワークの収容効率の観点で好ましい。結局、空きスペースへの仮想ワークWiの収容効率が高くなるのは、角を含むスペースに対象ワークWがプレースされた場合であることが多い。プレース目標位置の位置候補を、収容スペースに含まれる角に対応する位置候補を予め絞っておくことによって、可能性の低い位置候補に関する評価値の演算を省略できる。結果として、評価値の演算量を低減できる。
 [8] ロボットシステム100は、ロボットアーム12と前記ロボットアーム12に取り付けられたハンド14とを有するロボット1と、[1]乃至[7]の何れか1つに記載の主制御装置3とを備える。
 この構成によれば、プレース目標位置は、対象ワークWがプレースされた後の空きスペースに基づいて決定される。これにより、対象ワークWがプレースされた後に後続するワークをさらにプレースすることも考慮して、プレース目標位置が決定され得る。その結果、今回の対象ワークWだけでなく、次回以降のワークを含む複数のワークの適切なプレースを実現することができる。
 [9] ロボットアーム12と前記ロボットアーム12に取り付けられたハンド14とを有するロボット1の制御方法であって、収容スペースにおける対象ワークWのプレース目標位置の候補である複数の位置候補を探索することと、複数の前記位置候補のそれぞれの評価値を算出することと、複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定することとを含み、前記評価値を算出することは、それぞれの前記位置候補に前記対象ワークWがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出する。
 この構成によれば、プレース目標位置は、対象ワークWがプレースされた後の空きスペースに基づいて決定される。これにより、対象ワークWがプレースされた後に後続するワークをさらにプレースすることも考慮して、プレース目標位置が決定され得る。その結果、今回の対象ワークWだけでなく、次回以降のワークを含む複数のワークの適切なプレースを実現することができる。
100 ロボットシステム
1   ロボット
12  ロボットアーム
14  ハンド
3   主制御装置(制御装置)
47  探索器
48  評価器
49  決定器
W   対象ワーク

Claims (9)

  1.  収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索する探索器と、
     複数の前記位置候補のそれぞれの評価値を算出する評価器と、
     複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定する決定器とを備え、
     前記評価器は、それぞれの前記位置候補に前記対象ワークがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出する制御装置。
  2.  請求項1に記載の制御装置において、
     前記評価値は、前記空きスペースへの仮想ワークの収容効率を示すパラメータである制御装置。
  3.  請求項1に記載の制御装置において、
     前記評価値は、前記空きスペースにプレースできる仮想ワークの収容数又は前記空きスペースに仮想ワークをプレースできる位置の候補数に関連するパラメータである制御装置。
  4.  請求項3に記載の制御装置において、
     前記仮想ワークは、大きさの異なる複数種類の仮想ワークを含み、
     前記複数種類の仮想ワークのそれぞれには、異なるスコアが割り当てられ、
     前記評価器は、前記収容数又は前記候補数と前記スコアに応じて前記評価値を算出する制御装置。
  5.  請求項1に記載の制御装置において、
     前記評価器は、前記収容スペースの底面のうち露出する部分の上のスペース及び前記収容スペースにおける既存のワークの上面のうち露出する部分の上のスペースを前記空きスペースとして前記評価値を算出する制御装置。
  6.  請求項5に記載の制御装置において、
     前記評価器は、前記対象ワークと前記既存のワークとが並び、前記対象ワークの上面及び前記既存のワークの上面とが露出し、且つ、前記対象ワークの上面と前記既存のワークの上面との高さが揃っている場合に、前記対象ワークの上面及び前記既存のワークの上面を単一の面として前記評価値を算出する制御装置。
  7.  請求項1に記載の制御装置において、
     前記探索器は、前記収容スペースに含まれる角に対応する前記位置候補を探索する制御装置。
  8.  ロボットアームと前記ロボットアームに取り付けられたハンドとを有するロボットと、
     請求項1乃至7の何れか1つに記載の制御装置とを備えるロボットシステム。
  9.  ロボットアームと前記ロボットアームに取り付けられたハンドとを有するロボットの制御方法であって、
     収容スペースにおける対象ワークのプレース目標位置の候補である複数の位置候補を探索することと、
     複数の前記位置候補のそれぞれの評価値を算出することと、
     複数の前記位置候補の中から前記評価値に基づいて前記プレース目標位置を決定することとを含み、
     前記評価値を算出することは、それぞれの前記位置候補に前記対象ワークがプレースされた後の前記収容スペース内の空きスペースに基づいて前記評価値を算出するロボットの制御方法。
PCT/JP2023/020185 2023-05-30 2023-05-30 制御装置、ロボットシステム及びロボットの制御方法 Ceased WO2024247136A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2025523767A JPWO2024247136A1 (ja) 2023-05-30 2023-05-30
PCT/JP2023/020185 WO2024247136A1 (ja) 2023-05-30 2023-05-30 制御装置、ロボットシステム及びロボットの制御方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2023/020185 WO2024247136A1 (ja) 2023-05-30 2023-05-30 制御装置、ロボットシステム及びロボットの制御方法

Publications (1)

Publication Number Publication Date
WO2024247136A1 true WO2024247136A1 (ja) 2024-12-05

Family

ID=93657091

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2023/020185 Ceased WO2024247136A1 (ja) 2023-05-30 2023-05-30 制御装置、ロボットシステム及びロボットの制御方法

Country Status (2)

Country Link
JP (1) JPWO2024247136A1 (ja)
WO (1) WO2024247136A1 (ja)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020196611A (ja) * 2019-05-31 2020-12-10 株式会社Mujin リアルタイム載置シミュレーションを使用してパッケージをパレタイズするためのロボットシステム
CN113183156A (zh) * 2021-05-17 2021-07-30 广东工业大学 一种基于数字孪生技术的智能码垛方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020196611A (ja) * 2019-05-31 2020-12-10 株式会社Mujin リアルタイム載置シミュレーションを使用してパッケージをパレタイズするためのロボットシステム
CN113183156A (zh) * 2021-05-17 2021-07-30 广东工业大学 一种基于数字孪生技术的智能码垛方法

Also Published As

Publication number Publication date
JPWO2024247136A1 (ja) 2024-12-05

Similar Documents

Publication Publication Date Title
CN111504328B (zh) 机器人运动规划方法、路径规划方法、抓取方法及其装置
US11498210B2 (en) Object handling device and computer program product
US11383380B2 (en) Object pickup strategies for a robotic device
JP7015031B2 (ja) カメラによって生成される画像情報に基づいて、物体検出またはロボット相互作用計画作成を行う方法および計算システム
CN113811882A (zh) 检测盒子
JP7191569B2 (ja) 把持装置
JP7454132B2 (ja) ロボットシステムの制御装置、ロボットシステムの制御方法、コンピュータ制御プログラム、及びロボットシステム
JP6950638B2 (ja) マニピュレータ制御装置、マニピュレータ制御方法、及びマニピュレータ制御プログラム
JP7708840B2 (ja) ロボットの構成部材の干渉を検出するロボット装置
EP4094904B1 (en) Robot system control device, robot system control method, computer control program, and robot system
CN110587592A (zh) 机器人控制装置、机器人控制方法及计算机可读记录介质
JP2018008343A (ja) 部品ピックアップ方法及び部品供給装置
CN115485217A (zh) 设定堆叠工件的位置的位置设定装置和具备位置设定装置的机器人装置
JP2012135820A (ja) 自動ピッキング装置及び自動ピッキング方法
JP7842202B2 (ja) ロボットシステム
JP7792267B2 (ja) 対象物をピックアップするロボットの制御装置及び制御方法並びにコンピュータプログラム及びコンピュータ可読媒体
Janabi-Sharifi et al. Automatic grasp planning for visual-servo controlled robotic manipulators
JP2021091056A (ja) 測定装置
WO2024247134A1 (ja) 制御装置、ロボットシステム及びロボットの制御方法
WO2024247135A1 (ja) 制御装置、ロボットシステム及びロボットの制御方法
US20260124767A1 (en) Control apparatus and control method
WO2024143417A1 (ja) 物体検出装置、ロボットシステム及び物体検出方法
WO2024166293A1 (ja) 制御装置、ロボットシステム、ロボットの制御方法
WO2025141860A1 (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: 23939614

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2025523767

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 2025523767

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 23939614

Country of ref document: EP

Kind code of ref document: A1