Program generation device, control device and program
Patent Information
- Application Number
- DE112022007334
- Authority / Receiving Office
- DE · DE
- Patent Type
- Applications
- Current Assignee / Owner
- Filing Date
- 2022-08-19
- Publication Date
- 2025-03-27
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
TECHNICAL FIELD
[0001] Embodiments of the present invention relate to a program generating apparatus, a control apparatus and a program. TECHNICAL BACKGROUND
[0002] A technique for using a robot to take out a plurality of so-called workpieces stacked in bulk and arranged at irregular intervals and in irregular orientations in a container or the like is known (see, for example, Patent Document 1). The robot is controlled, for example, so that the robot or a hand attached to the robot does not collide with the container when taking out the workpieces stacked in bulk. Specifically, information such as the shapes and dimensions of the robot, the hand, and the container are registered in advance, and it is determined by calculation whether or not the robot and the hand will collide with the container when the taking out operation is performed for each of a plurality of taking out positions corresponding to the plurality of workpieces stored in the container.Then, the workpiece for which a fault was detected is excluded from the targets of the removal operation, the workpiece that should actually be the target of the removal operation is determined from the workpieces for which no fault was detected, and the removal operation is carried out.
[0003] However, when removing workpieces from the container, it may happen that a workpiece ends up in a position where it cannot be removed by a normal removal operation, such as in a corner or against a wall of the container. To handle such a case, a robot program is created, for example, to move a workpiece in a container using a robot hand to move a workpiece located in a position where it cannot be removed by a normal removal operation to a position where it can be removed by the normal removal operation. LIST OF CITATIONSPATENT LITERATURE
[0004] Patent Literature 1: Unexamined Japanese Patent Application Publication No. 2014-205209 SUMMARY OF THE INVENTION PROBLEM TO BE SOLVED BY THE INVENTION
[0005] However, if the robot program is incorrectly generated, the robot may collide with the container wall, resulting in damage to the robot, the container, and the workpiece. Furthermore, creating such a robot program often requires specialized knowledge of robot operation, the removal process of bulk stacked workpieces, and the like. Therefore, it is desirable to propose a technique that enables the simple generation of a robot program for moving a workpiece within a container. SOLUTION TO THE PROBLEM
[0006] A program generation device according to the present embodiment generates a program for causing a robot to perform a contact operation for contacting a workpiece stacked in bulk in a container. The program generation device includes a receiving device for receiving, in a workpiece coordinate system, a starting position and a starting posture for starting the contact operation, and a movement amount and a posture change amount of the contact operation, and a generating device for generating a robot program for a target workpiece in the container based on the received starting position, starting posture, movement amount, and posture change amount. BRIEF DESCRIPTION OF THE DRAWINGS Fig. 1 shows a robot system with a control device according to a first embodiment. Fig. 2 is a hardware configuration diagram of the Fig. 1 shown control device. Fig. 3 is a flowchart showing an example of the sequence of a workpiece removal process by the Fig. 1 shows the control device shown. Fig. 4 is a functional block diagram of the Fig. 1 shown control device. Fig. Figure 5 shows an example of a reception screen displayed by a Fig. 4 shown receiving screen generating unit. Fig. 6 shows an example of a management table that can be used in a Fig. 4 shown storage unit. Fig. 7 shows the starting position and the movement amount of a relocation operation in a workpiece coordinate system. Fig. 8 is an additional diagram for explaining a selection process of a relocation process parameter performed by a Fig. 4 shown relocation process program generation unit was generated. Fig. 9 is a functional block diagram of a control device according to a second embodiment. Fig. 10 shows an example of a reception screen used by the Fig. 9 shown receiving screen generating unit. Fig. 11 shows an example of a management table that can be used in a Fig. 9 is stored in the storage unit shown. Fig. 12 is an additional diagram to explain a modification process by a Fig. Modification unit shown in Figure 9. Fig. 13 is a functional block diagram of a control device according to a third embodiment. Fig. 14 shows an example of a reception screen displayed by a Fig. 13 shown receiving screen generating unit. Fig. 15 shows an example of a management table that can be used in a Fig. 13 shown storage unit. DETAILED DESCRIPTION OF THE INVENTION
[0007] Control devices according to embodiments of the present invention will be described below with reference to the drawings. In the following description, constituent elements having substantially the same function and configuration are denoted by the same reference numerals, and descriptions will be repeated only where necessary.
[0008] Control devices according to embodiments of the present invention include a function of generating a contact operation program for executing a contact operation in which a robot or a robot hand attached to the robot is brought into contact with a workpiece located at a position where the workpiece cannot be removed by a normal removal operation by the robot, and a function of controlling the robot according to the generated contact operation program. If the workpiece can be moved to a position where the normal removal operation by the robot is possible with the contact operation, the workpiece can be removed by the normal removal operation by the robot. In the first and second embodiments, a displacement operation in which the workpiece is grasped and displaced by the robot hand is described as an example of the contact operation.In the third embodiment, a gripping operation in which the workpiece is gripped by the robot hand and released into the container is described as an example of the contact operation. (First embodiment)
[0009] A control device according to a first embodiment is a computer device having a function of controlling a robot according to a taking-out operation program for taking out a plurality of so-called workpieces stacked in bulk and arranged at irregular intervals and in irregular orientations in a container or the like, a function of generating a transfer operation program for transferring the plurality of workpieces stacked in bulk, and a function of controlling the robot according to the generated transfer operation program.
[0010] The relocation operation, based on the relocation operation program, is performed for a workpiece that cannot be retrieved using a normal retrieval operation based on the retrieval operation program. The relocation operation is an operation in which the robot is brought into contact with the workpiece so that at least one of the workpiece's position and orientation can be changed. The workpiece, which is moved by the relocation operation to the position and orientation that allow the workpiece to be retrieved using the normal retrieval operation, can be retrieved using the normal retrieval operation.
[0011] According to the presentation in Fig. 1, a robot system 1 with a control device 2 according to the first embodiment includes a robot 100 having a plurality of joints and equipped with a robot hand 120 as a tool for taking out workpieces W stacked in bulk in a container 300, a camera 200 arranged at a position where an opening of the container 300 in which the workpieces W are stored is viewed from above to capture an image of the container 300, and a control device 2 that controls the robot 100 and the camera 200.
[0012] According to the presentation in Fig. 2, the control device 2 is configured by connecting hardware such as an operation device 6, a display device 7, a communication device 8, and a storage device 9 to a processor 5 such as a CPU. The operation device 6 is provided by a keyboard, a mouse, a jog, or the like. The operation device 6 may be provided by a touch panel that also serves as the display device 7, or may be provided by a dedicated counterpart to the control device 2. The display device 7 is provided by an LCD or the like. The communication device 8 controls the transmission and reception of data between the robot 100 and the camera 200. The storage device 9 is provided by an HDD, an SSD, or the like. A sampling program and a generation program are stored in the storage device 9.The storage device 9 also stores various kinds of information necessary to determine whether the robot 100 and the robot hand 120 collide with the container 300 when a workpiece removal operation is performed, such as the shapes, dimensions, and the like of the robot 100, the robot hand 120, and the container 300.
[0013] The picking program is a program that causes the robot 100 to perform picking of workpieces stacked in bulk in the container 300. The picking program describes a teaching position and a teaching posture of the robot 100, an operation command for the robot hand 120, an image capturing command for the camera 200, and the like according to the method.
[0014] The generation program is a program for generating a relocation operation program. The relocation operation program is a program that causes the robot 100 to perform a relocation operation on a target workpiece. The relocation operation program describes a starting position, a starting posture, a movement amount, a posture change amount, a movement speed, and the like for the relocation operation. When each operation program is executed, the controller 2 decodes the operation program to generate a position command value of a motor (not shown) that drives the robot 100 through inverse kinematics, and transmits the generated position command value to a motor driver (not shown). The robot 100 can then execute the operation defined by the operation program.Typically, the removal program and the relocation program are written in a robot coordinate system that can be decoded by the control device 2. Of course, they can also be expressed in another coordinate system, such as a workpiece coordinate system, and in this case, the control device 2 has a conversion table or the like to convert another coordinate system into the robot coordinate system.
[0015] Fig. 3 is a flowchart showing a control process of the robot 100 and the camera 200 by the control device 2, which is defined by the picking process program. As shown in Fig. 3, when executing the removal operation program, the control device 2 controls the camera 200 according to the removal operation program (S11). Accordingly, the image of the container 300 is captured by the camera 200, and the captured container image is input to the control device 2. The control device 2 performs image processing on the container image to determine the removal position and the orientation of the workpiece (S12). If no workpiece is to be removed (S13; NO), the robot 100 ends the workpiece removal process.
[0016] On the other hand, if there is a workpiece to be removed (S13; YES), it is determined whether or not the workpiece to be removed can be removed with a normal removal operation based on the removal operation program (S14). In the process of step S14, it is determined whether or not the robot 100 and the robot hand 120 will interfere with the container 300 when the normal removal operation is performed on the workpiece, for example, based on the dimensions and shapes of the robot 100, the robot hand 120, and the container 300, as well as the removal position and orientation of the workpiece. If the robot 100 and the robot hand 120 do not interfere with the container 300, that is, if the workpiece to be removed can be removed with the normal removal operation (S14; YES), the control device 2 controls the robot 100 to execute the normal removal operation (S15).As a result, the workpiece to be taken out is taken out from the container 300, and the processing returns to step S11 to execute the processing for taking out the next workpiece.
[0017] If the workpiece to be removed cannot be removed by the normal removal operation (S14; NO), the controller generates a relocation operation program with the workpiece that cannot be removed as the workpiece to be relocated (S16), and controls the robot 100 according to the generated relocation operation program (S17). As a result, the relocation operation is performed on the workpiece that could not be removed by the normal removal operation, and the workpiece is moved by the robot 100 in the container. Then, the processing returns to step S11, and the processing for removing the workpiece to be removed is executed again.
[0018] As described above, the processing for generating the relocation operation program and the robot control processing based on the relocation operation program are executed repeatedly until the workpiece can be removed by the normal removal operation. Of course, the upper limit for the number of repetitions can be set in advance, and a warning can be generated when the target workpiece cannot be removed by the normal removal operation, even if the number of repetitions of the relocation operation on the target workpiece reaches the upper limit.
[0019] When the generation program stored in the storage device 9 is executed by the processor 5, the control device 2 functions as a program generation device that generates a relocation operation program. As shown in Fig. 4, the control devices 2 function in particular as an input unit 21, a display unit 22, a data receiving unit 23, a storage unit 24, a reception screen generation unit 25, a registration unit 26 and a relocation operation generation unit 27.
[0020] The input unit 21 has the Fig. 2 and inputs a user operation via the operation device 6 to the control devices 2. Specifically, the input unit 21 inputs a relocation operation parameter set input via the reception screen to the control device 2. The relocation operation parameter set is a set of data required for creating a relocation operation program and includes information about a start position of the relocation operation, information about a start posture of the relocation operation, information about a movement amount of the relocation operation, and information about a rotation amount (posture change amount) of the relocation operation. Of course, information about the movement speed of the robot hand 120, an interpolation format, a movement format, and the like may also be included.
[0021] The display unit 22 has the Fig. 2 and displays the reception screen generated by the reception screen generation unit 25. The data reception unit 23 has the Fig. 2 and receives the container image data from the camera 200.
[0022] The storage unit 24 corresponds to the Fig. 2. The storage unit 24 stores a management table for managing the relocation operation parameter set input via the input unit 21. Details of the management table stored in the storage unit 24 are described below.
[0023] The reception screen generation unit 25 generates a reception screen for receiving the relocation operation parameter set. Details of the reception screen generated by the reception screen generation unit 25 are described below.
[0024] The registration unit 26 registers the relocation operation parameter set inputted via the reception screen in the management table according to a user operation.
[0025] The relocation operation program generation unit 27 generates a relocation operation program based on the relocation operation parameter set. Specifically, the relocation operation program generation unit 27 converts the starting position, starting posture, movement amount, and rotation amount included in the relocation operation parameter set from the workpiece coordinate system to the robot coordinate system. The container image data is used for the conversion process from the workpiece coordinate system to the robot coordinate system. Since the position of the camera 200 is fixed, the correspondence relationship between the position in the container coordinate system in the container image captured by the camera 200 and the position in the robot coordinate system is known.For example, a corner of the container 300 on the container image is defined as the origin of the container coordinate system, an axis along the long axis of the container 300 is defined as the X-axis, an axis along the short axis is defined as the Y-axis, and an axis along the height direction of the container 300 orthogonal to the X-axis and the Y-axis is defined as the Z-axis.
[0026] Therefore, by identifying the position and orientation of the workpiece in the container coordinate system based on the container image, it is possible to derive the position and orientation of the workpiece coordinate system in the robot coordinate system. If the position and orientation of the workpiece coordinate system in the robot coordinate system are known, the starting position, starting posture, movement amount, and rotation amount expressed in the workpiece coordinate system can be converted to those of the robot coordinate system. The position and orientation of the workpiece on the container image can be determined using existing image processing methods such as threshold processing or pattern matching methods.
[0027] The relocation operation program generation unit 27 generates a relocation operation program that describes a starting position, a starting posture, a movement amount, a rotation amount, a movement speed, and the like, expressed in the robot coordinate system. Note that it is preferable for the relocation operation program generation unit 27 to select a relocation operation parameter set corresponding to the target workpiece of the relocation operation from among a plurality of parameter sets for the relocation operation and generate a relocation operation program based on the selected relocation operation parameter set. The details of the selection process of the relocation operation parameter set by the relocation operation program generation unit 27 are described below.
[0028] The reception screen generated by the reception screen generation unit 25 is described below with reference to Fig. 5 described. Fig. Figure 5 shows an example of the reception screen. As shown in Fig. 4, the receiving screen includes a plurality of input fields for receiving a relocation operation parameter set and a register key for registering the operating parameter set received via the receiving screen. The plurality of input fields for receiving a relocation operation parameter set includes three input fields for receiving the start positions (X), (Y), and (Z) of the relocation operation, three input fields for receiving the start positions (W), (P), and (R) of the relocation operation, three input fields for receiving the movement amounts (ΔX), (ΔY), and (ΔZ) of the relocation operation, and three input fields for receiving the rotation amounts (ΔW), (ΔP), and (ΔR) of the relocation operation.
[0029] The starting positions (X), (Y), and (Z) define the position of the robot hand 120 (the position of the reference point of the hand of the robot 100) when the relocation process is started. The starting positions (X), (P), and (R) define the posture of the robot hand 120 (the orientation of the reference point of the hand of the robot 100) when the relocation process is started. The movement amounts (ΔX), (ΔY), and (ΔZ) define the movement direction and movement amount of the robot hand 120 during the relocation process. The rotation amounts (ΔW), (ΔP), and (ΔR) define the position change amount of the robot hand 120 during the relocation process.
[0030] The end position of the relocation process is defined by the starting positions (X), (Y), and (Z) and the movement amounts (ΔX), (ΔY), and (ΔZ). Accordingly, the movement amounts (ΔX), (ΔY), and (ΔZ) and the rotation amounts (ΔW), (ΔP), and (ΔR) can be replaced by the end positions (X), (Y), and (Z) and the end positions (W), (P), and (R) of the relocation process.
[0031] The user can enter a relocation process parameter set on the reception screen and click the register button to register the entered relocation process parameter set in the management table. The registered relocation process parameter set is managed in the management table stored in the storage unit 24. As shown in Fig. 6 At least one relocation operation parameter set is managed in the management table together with registration date and registration time information.
[0032] The starting positions (X), (Y), and (Z), the starting positions (W), (P), and (R), the movement amounts (ΔX), (ΔY), and (ΔZ), and the rotation amounts (ΔW), (ΔP), and (ΔR) are entered into the workpiece coordinate system. That is, the starting positions (X), (Y), and (Z) correspond to the positions on the three orthogonal axes of the workpiece coordinate system. The starting positions (W), (P), and (R) correspond to the angles of rotation around the three orthogonal axes of the workpiece coordinate system. The movement amounts (ΔX), (ΔY), and (ΔZ) correspond to the movement amounts along the three orthogonal axes of the workpiece coordinate system. The rotation amounts (ΔW), (ΔP), and (ΔR) correspond to the rotation change amounts around the three orthogonal axes of the workpiece coordinate system. The workpiece coordinate system is a coordinate system defined by the target workpiece of the relocation operation. As shown in Fig. 7, for example, when the workpiece is a cylindrical body with a protrusion on the outer peripheral surface, the three orthogonal axes of the workpiece coordinate system are defined as follows. That is, the center position of the cylindrical body is defined as the origin of the workpiece coordinate system, the axis parallel to the center line of the cylindrical body is defined as the Y axis, the axis orthogonal to the outer peripheral surface of the workpiece and parallel to the center line of the protrusion is defined as the X axis, and the axis orthogonal to both the X axis and the Y axis is defined as the Z axis.
[0033] If the starting position, starting posture, movement amount, and rotation amount can be input in a coordinate system other than the workpiece coordinate system, they do not need to be input based on the three orthogonal axes of the workpiece coordinate system. They can be input based on another coordinate system, such as a cylindrical coordinate system or a polar coordinate system, depending on the workpiece.
[0034] For example, the displacement operation start position Ps1 and the movement amount ΔD in Fig. 7 respectively the starting position (-100 mm, 80 mm, 0 mm) and the movement amount (200 mm, 160 mm, 0 mm) of a relocation process parameter set 1, which is taken from the management table in Fig. 6. According to the presentation in Fig. 7, the movement trajectory of the displacement operation by the robot hand 120 based on the displacement operation parameter set 1 is inclined with respect to the center line of the workpiece from the side of the outer peripheral surface of the workpiece without the protrusion through the origin of the workpiece to the side of the outer peripheral surface of the workpiece with the protrusion.
[0035] The details of the selection process of a relocation operation parameter set by the relocation operation program generation unit 27 are described below with reference to Fig. 8. The relocation process program generation unit 27 selects a relocation process parameter set that satisfies the selection conditions from a plurality of relocation process parameter sets. The selection conditions are, for example, as follows.
[0036] Selection condition 1: The start position and the end position are defined within the container 300.
[0037] Selection condition 2: No other workpiece is placed at the start position.
[0038] Selection condition 3: No other workpiece is placed at the end position.
[0039] Selection condition 4: No other workpiece is in the movement path.
[0040] Selection condition 5: The start position is closer to the center of the container 300 than the end position.
[0041] Selection condition 6: The distance of the start position and the end position from the inner wall surface of the container 300 is equal to or greater than a threshold value.
[0042] The relocation process program generation unit 27 selects from a plurality of relocation process parameter sets the one relocation process parameter set that satisfies at least the selection condition 1 and the selection condition 2. As shown in Fig. 8, for example, when the target workpiece of the relocation operation is the workpiece W1, a relocation operation parameter set including a start position Ps4 and an end position Pe4 that satisfy the condition that the start position and the end position are set within the container 300 and the condition that no other workpiece is placed at the start position is selected from a plurality of relocation operation parameter sets. When the target workpiece of the relocation operation is the workpiece W2, a relocation operation parameter set including a start position Ps2 and an end position Pe2 is selected from a plurality of relocation operation parameter sets.
[0043] Here, the selection conditions for selecting a relocation operation parameter from a plurality of relocation operation parameter sets are selection condition 1 and selection condition 2, but the selection conditions can be changed according to a user instruction. For example, the selection conditions can be selection condition 1 and selection condition 2 plus one other selection condition. Furthermore, each relocation operation parameter set can be assigned a priority. Therefore, when there are a plurality of relocation operation parameter sets that satisfy the selection conditions, a relocation operation parameter set with the highest priority among the plurality of relocation operation parameter sets that satisfy the selection conditions can be automatically selected as a relocation operation parameter set used to generate a relocation operation program.Of course, if there are multiple relocation operation parameter sets that meet the selection conditions, the priorities associated with the multiple relocation operation parameter sets that meet the selection conditions may be displayed instead of automatically selecting a relocation operation parameter set according to priority. By referring to the priorities, a user-selected relocation operation parameter set can be identified.
[0044] The displacement operation program generation function of the control device 2 according to the first embodiment does not generate a complicated operation program, so a single operation program can realize the displacement operation of the robot 100 on the workpiece that can be placed in various positions and orientations in the container. The displacement operation program generation function of the control device 2 according to the first embodiment is to generate a displacement operation program for causing the robot 100 to perform a simple contact operation on the workpiece. Therefore, the user can generate the displacement operation program by only inputting a set of displacement operation parameters (starting position, starting posture, movement amount, rotation amount) on the reception screen provided by the control device 2.
[0045] Since the user can input the relocation operation parameter set received on the receiving screen in the workpiece coordinate system, the position and orientation of the workpiece in the container do not need to be considered, and the relocation operation parameter set can be set in advance by considering only the movement trajectory of the robot hand 120 with respect to the workpiece. This also contributes to simplifying the generation of the relocation operation program.
[0046] Since the user knows the position and orientation of the workpiece in the workpiece coordinate system in advance, it can be said that inputting the starting position, starting posture, movement amount, and rotation amount so that at least the robot hand 120 has a movement trajectory along which it comes into contact with the workpiece is much easier than creating an operation program that includes many cases. Since only the movement trajectory of the robot hand 120 needs to be considered, expert knowledge of the operation of the robot 100 and the removal of the workpieces stacked in bulk is not necessarily required. Therefore, the control device 2 according to the first embodiment can easily create a displacement operation program to cause the robot 100 to perform a displacement operation for changing the position and orientation of the workpiece by displacing the workpiece in the container (touching the workpiece).
[0047] Furthermore, by registering a plurality of transfer operation parameter sets with different movement trajectories with respect to the workpiece via the receiving screen, a transfer operation parameter set capable of performing a transfer operation on the target workpiece of the transfer operation can be selected from the plurality of transfer operation parameter sets. This can suppress the occurrence of situations in which the transfer operation cannot be performed, such as a situation in which the start or end position of the transfer operation is set outside the container 300, or a situation in which another workpiece is placed at the start position of the transfer operation. (Second embodiment)
[0048] A control device according to a second embodiment is a device having a function of changing the movement amount of the relocation operation parameter set set by the relocation operation program generation unit 27 in addition to the relocation operation program generation function of the control device 2 according to the first embodiment.
[0049] Since the hardware configuration of a control device 3 according to the second embodiment is the same as that of the control device 2 according to the first embodiment, its description will be omitted (see Fig. 2).
[0050] According to the presentation in Fig. 9, the control devices 3 according to the second embodiment have, in addition to the functions shown in the functional block diagram of the control device 2 according to the first embodiment in Fig. 4 functions via a modification unit 28.
[0051] The input unit 21 inputs a relocation operation parameter set input via the reception screen to the control device. The relocation operation information set includes a relocation operation parameter set, information about turning on / off a function for limiting the approach of the robot 100 to the inner wall surface of the container 300 (hereinafter referred to as the approach limit function), and information about a limit distance to which the robot 100 can approach the inner wall surface of the container 300 when the approach limit function is turned on (hereinafter referred to as the approach limit distance).
[0052] The storage unit 24 stores therein a management table for managing the relocation operation information set input via the input unit 21.
[0053] The reception screen generation unit 25 generates a reception screen for receiving the relocation operation information set. As shown in Fig. 10, the reception screen generated in the second embodiment is configured by adding a check box for receiving (on / off) the approach limit function and an input field for receiving the approach limit distance to the acceptance screen of the first embodiment when the approach limit function is selected to be turned on.
[0054] The registration unit 26 registers the relocation process information set entered via the reception screen in the management table. As shown in Fig. 11, the management table of the second embodiment is a table obtained by adding two management items, an approach limit function flag and an approach limit distance, to the management table of the first embodiment. The approach limit function flag "0" means that the approach limit function is turned off, and the approach limit function flag "1" means that the approach limit function is turned on. The approach limit distance "20" means that a position of 20 mm from the inner wall surface of the container 300 is the limit distance to which the robot hand 120 can approach.
[0055] The relocation operation program generation unit 27 generates a relocation operation program based on the relocation operation information set.
[0056] The modification unit 28 modifies the relocation operation information set by the relocation operation program generation unit 27. The modification process by the modification unit 28 is executed when the approach limit function is turned on.
[0057] If it is determined that the position (end position) after the movement of the robot 100 by the displacement operation is approaching the approach limit distance from the inner wall surface of the container 300, the modification unit 28 modifies the movement amount along each of the three orthogonal axes so that the end position is farther from the inner wall surface of the container 300 than the approach limit distance. As shown in Fig. 12, it is assumed that the end position Pe5 derived from the start position Ps5 and the movement amount ΔD5 of the displacement operation with respect to the workpiece W3 approaches the approach limit distance Ds from the inner wall surface of the container 300.
[0058] The modification unit 28 modifies the movement amount ΔD5 so that the end position Pe5 is set to a position farther from the inner wall surface of the container 300 than the approach limit distance Ds. Specifically, the modification unit 28 converts the end position Pe5 from the workpiece coordinate system to the container coordinate system based on the container image. Based on the end position Pe5 expressed in the container coordinate system and the position of the inner wall surface of the container 300 expressed in the container coordinate system, the end position Pe5 is changed to the end position Pe5'. Then, the movement amount ΔD5 is changed to the movement amount ΔD5' based on the start position Ps5 and the modified end position Pe5'.
[0059] When it is determined that both the start position and the end position of the displacement operation are approaching within the approach limit distance Ds from the inner wall surface of the container 300, the modification unit 28 modifies the movement amount so that the movement direction component to the inner wall surface of the container 300 becomes 0. As shown in Fig. 12, both the start position Ps6 and the end position Pe6 of the displacement operation with respect to the workpiece W4 approach within the approach limit distance Ds from the inner wall surface of the container 300. The modification unit 28 converts the end position Pe6 from the workpiece coordinate system to the container coordinate system based on the container image. Then, based on the end position Pe6 expressed in the container coordinate system and the position of the side wall of the container 300, the movement direction component along the X-axis or the movement direction component along the Y-axis of the movement amount ΔD6 is set to 0, thereby changing the movement amount ΔD6 to the movement amount ΔD6'.
[0060] The control device 3 according to the second embodiment has the same functions as the control devices 2 according to the first embodiment and therefore has the same effects as the control devices 2 according to the first embodiment. Furthermore, the control device 3 according to the second embodiment can generate a relocation operation program in which the end position set at a position close to the inner wall surface of the container 300 is automatically changed to a position far from the inner wall surface of the container 300. Since the approach of the robot hand 120 to the side wall of the container 300 can be limited, the possibility of the robot hand 120 of the robot 100 colliding with the side wall of the container 300 during the relocation operation can be reduced compared to the case where the approach of the robot hand 120 to the side wall of the container 300 is not limited.
[0061] When both the start position and the end position are set to positions near the side wall of the container, the control device 3 according to the second embodiment modifies the movement amount so that the movement direction component toward the side wall of the container 300 becomes 0, in other words, the movement direction becomes a direction along the side wall of the container 300. Even if the start position is close to the inner wall surface of the container 300, the robot 100 can be prevented from further approaching the inner wall surface of the container 300, so that the possibility of the robot 100 colliding with the side wall of the container 300 during the relocation operation can be reduced compared to the case where the robot 100 further approaches the inner wall surface of the container 300 from the start position, which is smaller than the approach limit distance from the inner wall surface of the container 300.
[0062] In the first and second embodiments, the position and orientation of the workpiece in the container are changed by performing the transfer operation on the workpiece that cannot be removed by the normal removal operation, so that the workpiece can be removed by the normal removal operation. However, as long as the workpiece can be removed by the normal removal operation by moving the target workpiece, the operation to be performed on the workpiece that cannot be removed by the normal removal operation is not limited to the transfer operation. (Third embodiment)
[0063] A control device 4 according to a third embodiment is a computer device having a function of controlling a robot 100 in accordance with a take-out operation program for taking out a plurality of bulk-stacked workpieces from the container 300, a function of generating a gripping operation program related to a gripping operation for gripping an end point of a bulk-stacked workpiece in the container, moving it within the container, and releasing it from the container, and a function of controlling the robot 100 in accordance with the generated gripping operation program. The gripping operation based on the gripping operation program is performed for a workpiece that cannot be picked up with the normal take-out operation based on the take-out operation program.The gripping operation is a series of operations for gripping a target workpiece at a position deviating from a normal gripping position, moving the target workpiece within the container, and releasing the target workpiece from the container so that at least one of the positions and orientations of the target workpiece within the container can be changed. The workpiece, which has been brought into the position and orientation that allow the workpiece to be removed by the gripping operation, is removed by the normal removal operation.
[0064] Since the hardware configuration of the control device 4 according to the third embodiment is the same as that of the control device 2 according to the first embodiment, the description thereof will be skipped (see Fig. 2).
[0065] According to the presentation in Fig. 13, the control apparatus 4 according to the third embodiment is obtained by implementing the relocation operation program generation unit 27 of the functional block diagram of the control apparatus 3 according to the second embodiment in Fig. 9 is replaced by a gripping operation program generation unit 29.
[0066] The input unit 21 inputs a gripping operation information set input via the reception screen to the control devices. The gripping operation information set includes a gripping operation parameter set, information about turning the approach limit function on and off, information about the approach limit distance when the approach limit function is turned on, and information about whether or not to move to the center position of the container 300.
[0067] The storage unit 24 stores therein a management table for managing the gripping operation information set input via the input unit 21.
[0068] The reception screen generation unit 25 generates a reception screen for receiving the gripping operation information set. As shown in Fig. 14, the receiving screen generated in the third embodiment is configured by adding a checkbox for selecting whether or not to execute the movement to the center position of the container 300 to the receiving screen generated in the second embodiment. Furthermore, the term "moving operation" has been replaced with "grasping operation." By checking a checkbox for receiving the selection of whether or not to execute the movement to the center position of the container 300, instead of inputting the amounts of movement (X), (Y), and (Z), the user can move the robot hand 120 to the center position of the container 300 after grasping the workpiece and release the grasped workpiece to the center position of the container 300.
[0069] It is desirable that the release position be as central as possible within the container 300 to prevent the workpiece from being reattached to the wall of the container 300. However, since the movement amounts (ΔX), (ΔY), and (ΔZ) are input in the workpiece coordinate system, the target workpiece may not be moved to the center position of the container 300 depending on the orientation of the target workpiece. Therefore, by checking the checkbox to select whether or not to move to the center position of the container 300, the gripped workpiece can be released at the center position of the container 300 without error.
[0070] The registration unit 26 registers the gripping operation information set entered via the reception screen in the management table. As shown in Fig.15, the management table of the third embodiment manages the gripping operation information set along with the registration date and time information. The movement flag "0" means that the robot hand 120 is not moved to the center position of the container 300 after the workpiece is gripped by the robot hand 120, and the movement flag "1" means that the robot hand 120 is moved to the center position of the container 300 after the workpiece is gripped by the robot hand 120. When the check box for selecting whether or not to execute the movement to the center position of the container 300 is selected and numerical values for the movement amounts (ΔX), (ΔY), and (ΔZ) are input, the movement amounts of the robot hand 120 after gripping the workpiece are the sums of the movement amounts required to move the container 300 to the center position and the input movement amounts (ΔX), (ΔY), and (ΔZ).
[0071] The gripping operation program generation unit 29 generates a gripping operation program based on the gripping operation information set. The gripping operation program describes a movement command to the gripping position, a gripping operation command, a movement command to the release position, a release operation command, a movement speed, and the like. The movement command to the gripping position can be generated based on the gripping position and the gripping posture. The movement command to the release position can be generated based on the movement amount and the rotation amount.When the checkbox for receiving the selection of whether or not to execute the movement to the center position of the container 300 is selected, the movement amount from the gripping position to the center position of the container 300 can be determined based on the position of the workpiece and the center position of the container 300 identified by the container image, thereby generating the movement command to the release position. Note that the gripping operation command and the release operation command are predefined operation commands.
[0072] The modification unit 28 modifies the gripping information set set by the gripping program generation unit. The processing of the modification unit 28 of the control device 4 according to the third embodiment is the same as that of the second embodiment, and descriptions thereof are omitted.
[0073] The control device 4 according to the third embodiment differs from the control device 3 according to the second embodiment only in the manner of moving the workpiece in the container that could not be removed by the normal removal operation. The result of this operation is the same: the workpiece can be moved to a position where it can be removed by the normal removal operation. Thus, the control device 4 according to the third embodiment has the same effects as the control device 3 according to the second embodiment.
[0074] For example, if the workpiece to be contacted is close to the side wall of the container 300 and surrounded by other workpieces, the robot 100 is more likely to be able to move the workpiece without contact by pulling it out with the gripping operation than by the transfer operation. However, if the workpiece to be contacted is located in a position where it cannot be grasped, the transfer operation must be selected. In this way, the contact operation to be performed can be automatically selected between the transfer operation and the gripping operation depending on the state of the workpiece to be contacted, such as the position and orientation of the workpiece to be contacted and the positions and orientations of the surrounding workpieces.
[0075] Since the gripping operation consists of actually gripping, moving, and releasing the workpiece, the load exerted on the workpiece by the gripping operation is small, and the load value can be kept constant regardless of the position and orientation of the workpiece when the release operation is slowed down. On the other hand, the transfer operation consists of actually bringing the robot hand 120 into contact with the workpiece and moving the workpiece inside the container 300. Therefore, when moving the workpieces stacked or leaning against the side wall of the container 300, there is a possibility that a large load will be exerted on the container 300 due to the dropping of the workpieces.Therefore, the control device 4 according to the third embodiment, which uses the gripping operation as the operation for contacting the workpiece, can be superior to the control devices 2 and 3 according to the first and second embodiments, which use the displacement operation, from the viewpoint of reducing the load applied to the workpiece. In this way, either the displacement operation or the squeezing operation can be automatically adjusted and preferably performed in accordance with the type of workpiece.
[0076] If the workpiece has a complex shape and there is no other position other than the removal position where the workpiece can be gripped, the transfer operation must be selected. This allows the contact operation to be performed to be automatically selected between the transfer operation and the gripping operation depending on the workpiece shape.
[0077] As long as the position and orientation of the workpiece inside the container 300 can be identified, the data used for the identification process is not limited to the container image captured by the camera 200. Instead of the camera 200, for example, a sensor capable of capturing three-dimensional point group data of an object, and a sensor and two cameras capable of capturing three-dimensional point group data and a two-dimensional camera image may also be used.
[0078] The first and second embodiments, in which the relocation operation program is created, and the third embodiment, in which the gripping operation program is created, can be combined. In this case, a pull-down menu for setting the target operation to the relocation operation or the gripping operation can be provided on the reception screen. It is possible to create both the relocation operation program and the gripping operation program and cause the robot 100 to execute one of the two operations according to a predetermined rule. For example, the relocation operation and the gripping operation are executed alternately.That is, for a workpiece that cannot be removed with the normal removal operation, the robot 100 is first caused to perform the transfer operation, and if the target workpiece still cannot be removed with the normal removal operation, the robot 100 is then caused to perform the gripping operation. By combining multiple operations that differ in the way the workpiece is moved, the possibility of moving the workpiece to a position and orientation that allows the workpiece to be removed with the normal removal operation is improved compared to the case where a single operation is repeated, and the occurrence of a situation where the workpiece cannot be removed can be suppressed.
[0079] In addition, a contact operation of the transfer operation and the gripping operation can be automatically selected and executed based on the height of the start point of the operation to the target workpiece in the container or the height of the target workpiece in the container, for example, the operation is executed when the height of the start position of the transfer operation or the gripping operation to the target workpiece in the container is high.
[0080] In the present embodiment, the generated program installed in the control device 2, 3, 4 can be distributed by recording on various types of recording media such as removable media or by downloading to a user's computer via a network.
[0081] Although embodiments of the present invention have been described in detail, the present invention is not limited to the individual embodiments described above. These embodiments may be subjected to various additions, replacements, modifications, partial deletions, etc., without departing from the gist of the invention or the idea and spirit of the present invention as set forth in the claims and their equivalents. For example, in the embodiments described above, the order of operations and the order of processes are exemplified, and the present invention is not limited thereto. The same applies to the case where numerical values or formulas are used in the description of the embodiments described above. EXPLANATION OF REFERENCE SYMBOLS
[0082] 1: Robot system, 2, 3, 4: Control device, 5: Processor, 6: Operation device, 7: Display device, 8: Communication device, 9: Storage device, 21: Input unit, 22: Display unit, 23: Data receiving unit, 24: Storage unit, 25: Reception screen generation unit, 26: Registration unit, 27: Relocation operation program generation unit, 100: Robot, 120: Robot hand, 200: Camera, 300: Container. QUOTES CONTAINED IN THE DESCRIPTION
[0000] This list of documents submitted by the applicant was generated automatically and is included solely for the convenience of the reader. This list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions. Cited patent literature
[0000] JP 2014-205209
[0004]
Claims
[1] A program generating apparatus for generating a robot program for causing a robot to perform a contact operation for contacting a workpiece stacked in bulk in a container, comprising: Receiving means for receiving a start position and a start posture for starting the contact operation and a movement amount and a position change amount of the contact operation in a workpiece coordinate system; and Generation means for generating the robot program for a target workpiece in the container based on the received start position, start posture, movement amount, and posture change amount. [2] The program generating apparatus according to claim 1, wherein the receiving means receives positions on three orthogonal axes of the workpiece coordinate system as the start position, receives rotation angles about the three orthogonal axes as the start position, receives movement amounts along the three orthogonal axes as the movement amount, and receives rotation amounts about the three orthogonal axes as the position change amount. [3] A program generating apparatus according to claim 1 or 2, wherein the receiving device receives a plurality of contact operation parameter sets each comprising the start position, the start posture, the movement amount and the position change amount, and the generating means selects one contact operation parameter set from the plurality of contact operation parameter sets based on a position and orientation of the target workpiece in the container, and generates the robot program based on the selected one contact operation parameter set. [4] A program generating device according to any one of claims 1 to 3, further comprising third receiving means for receiving an approach limit distance of the robot with respect to an inner wall surface of the container, wherein when it is determined that a post-movement position of the robot approaches within the approach limit distance from the inner wall surface, the generating means modifies the movement amount so that the post-movement position of the robot becomes farther from the inner wall surface than the approach limit distance. [5] A program generating apparatus according to claim 1, wherein the contact operation is a displacement operation to contact and displace the workpiece stacked in bulk in the container, and the receiving device receives a displacement start position for displacing the workpiece as the start position. [6] A program generating apparatus according to claim 1, wherein the contacting operation is a gripping operation to grasp the workpiece stacked in bulk in the container, to move the workpiece in the container and to release the workpiece in the container, and the receiving device receives a start position for gripping the workpiece as the start position. [7] A program generating apparatus according to claim 6, further comprising another receiving means for receiving a movement to a center position of the container, wherein the generating means modifies the received movement amount based on a result of receiving the movement to the center position of the container. [8] A control device for controlling a robot to cause the robot to perform a contact operation for contacting a workpiece stacked in bulk in a container, comprising: Receiving means for receiving a start position and a start posture for starting the contact operation and a movement amount and a position change amount of the contact operation in a workpiece coordinate system; Generation means for generating a robot program to cause the robot to perform the contact operation for a target workpiece in the container based on the received start position, start posture, movement amount, and posture change amount; and Device for controlling the robot according to the generated robot program. [9] Program for causing a computer to realize: Device for receiving a start position and a start posture for starting a contact operation for contacting a workpiece stacked in bulk in a container and a movement amount and a position change amount of the contact operation in a workpiece coordinate system; and A device for generating a robot program for causing a robot to perform the contact operation for a target workpiece in the container based on the received start position, start posture, movement amount, and posture change amount.
Citation Information
Patent Citations
Robot system and control method of the same
JP2014205209A
2014-205209