Program generation device, control device, and program
By accepting the parameters of contact action on the workpiece coordinate system, a robot program for moving the workpiece is generated, which solves the problem that the workpiece cannot be removed through the general removal action in the prior art, and realizes safe movement and efficient removal of the workpiece.
Patent Information
- Application Number
- CN202280098836.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2022-08-19
- Publication Date
- 2025-03-18
AI Technical Summary
The prior art is difficult to effectively generate a robot program for moving workpieces in a container, especially when the workpiece is located in the corner of the container or near the wall of the container and cannot be taken out through the general removal action, which can easily cause the robot to collide with the wall of the container and cause damage.
A program generation device is designed to accept the position, posture, movement amount and posture change amount of the start of the contact action on the workpiece coordinate system, and generate a robot program based on these inputs, so that the robot can perform the contact action and move the workpiece to a position that can be removed by the general withdrawal action.
Through this technology, it is possible to effectively avoid collision between robots and containers, ensure safe movement of workpieces, improve workpiece removal efficiency, and reduce dependence on professional knowledge, making program generation more intuitive and easy.
Smart Images

Figure CN119654219A_ABST
Abstract
Description
Technical Field
[0001] Embodiments of the present invention relate to a program generation device, a control device, and a program. Background Art
[0002] A technology for taking out a plurality of workpieces that are so-called scattered and stacked and arranged in an irregular manner at intervals and in an irregular direction in a container such as a container by a robot is known (e.g., Patent Document 1). For example, in the operation of taking out the scattered and stacked workpieces, the robot is controlled in such a way that the robot or the hand equipped by the robot does not collide with the container. Specifically, information such as the shape and size of the robot, the hand, and the container is pre-registered, and when the taking-out action is to be performed on a plurality of taking-out positions corresponding to the plurality of workpieces contained in the container, it is determined by calculation whether the robot and the hand interfere with the container. Then, the workpiece determined to be interfering is excluded from the object of the taking-out action, and the workpiece that is actually the object of the taking-out action is determined from the workpieces determined not to interfere, and the taking-out action is performed.
[0003] However, in the process of taking out the workpiece from the container, there is a case where the workpiece is arranged at a position that cannot be taken out by a general taking-out operation, such as a corner of the container or near a wall. For example, in order to cope with such a case, a robot program for moving the workpiece in the container by a manipulator is generated, so that the workpiece arranged at a position that cannot be taken out by a general taking-out operation is moved to a position where it can be taken out by a general taking-out operation.
[0004] Prior art literature Patent Literature Patent Document 1: Japanese Patent Application Publication No. 2014-205209 Summary of the invention Problem that the invention aims to solve However, if the robot program is generated incorrectly, the robot may collide with the wall of the container, causing damage to the robot, the container, and the workpiece. In addition, the generation of such a robot program often requires professional knowledge of the robot's movements, scattered stacking and taking out movements, etc. Therefore, a proposal of a technology that can easily generate a robot program for moving workpieces in a container is desired.
[0005] Means used to solve problems The program generation device of the present embodiment generates a robot program for causing a robot to perform a contact action with workpieces loosely stacked in a container. The program generation device comprises: a receiving unit that receives a starting position, a starting posture, a movement amount and a posture change amount of the contact action on a workpiece coordinate system; and a generating unit that generates 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
[0006] Figure 1 It is a diagram showing a robot system including the control device according to the first embodiment.
[0007] Figure 2 yes Figure 1 The hardware structure diagram of the control device.
[0008] Figure 3 It is shown by Figure 1 A flowchart showing an example of the sequence of the workpiece removal operation performed by the control device.
[0009] Figure 4 yes Figure 1 Functional block diagram of the control device.
[0010] Figure 5 It is shown by Figure 4 FIG. 1 is a diagram showing an example of an acceptance screen created by an acceptance screen creation unit.
[0011] Figure 6 It is shown Figure 4 FIG. 4 is a diagram showing an example of a management table stored in a storage unit of .
[0012] Figure 7 This is a diagram that marks the starting position and movement amount of the breaking action on the workpiece coordinate system.
[0013] Figure 8 It is used to illustrate Figure 4 A supplementary diagram of the selection process of the scatter action parameter set of the scatter action program generation unit.
[0014] Fig. 9 This is a functional block diagram of a control device according to the second embodiment.
[0015] Fig.10 It is shown by Fig. 9 FIG. 1 is a diagram showing an example of an acceptance screen created by an acceptance screen creation unit.
[0016] Fig.11 It is shown Fig. 9 FIG. 4 is a diagram showing an example of a management table stored in a storage unit of .
[0017] Fig.12 It is used to illustrate Fig. 9 Supplementary figure showing the correction processing of the correction section.
[0018] Fig.13 This is a functional block diagram of a control device according to a third embodiment.
[0019] Fig.14 It is shown by Fig.13FIG. 1 is a diagram showing an example of an acceptance screen created by an acceptance screen creation unit.
[0020] Fig.15 It is shown Fig.13 FIG. 4 is a diagram showing an example of a management table stored in a storage unit of . DETAILED DESCRIPTION
[0021] Hereinafter, a control device according to an embodiment of the present invention will be described with reference to the drawings. In the following description, components having substantially the same function and configuration are denoted by the same reference numerals, and repeated description will be given only when necessary.
[0022] The control device of the embodiment of the present invention has a function of generating a contact action program and a function of controlling a robot according to the generated contact action program, wherein the contact action program is used to execute a contact action of causing a robot or a manipulator equipped with the robot to physically contact a workpiece that is arranged in a position that cannot be taken out by a general taking-out action of the robot. If the workpiece can be moved to a position where a general taking-out action can be performed by the robot through the contact action, the workpiece can be taken out by a general taking-out action of the robot. In the first and second embodiments, a breaking up action in which a manipulator hooks a workpiece and breaks it up is described as an example as a contact action. In the third embodiment, a grabbing action in which a manipulator grabs a workpiece, moves the workpiece, and releases it in a container is described as an example as a contact action.
[0023] (First embodiment) The control device of the first embodiment is a computer device having the functions of controlling the robot according to a taking-out action program, generating a breaking-up action program, and controlling the robot according to the generated breaking-up action program. The taking-out action program is used to take out a plurality of so-called scattered workpieces arranged in an irregular manner at intervals and in an orientation in a container such as a container, and the breaking-up action program is used to break up the plurality of scattered workpieces.
[0024] The scattering action based on the scattering action program is performed on a workpiece that cannot be taken out by a general taking-out action based on the taking-out action program. The scattering action is an action that makes the robot contact the workpiece so that at least one of the position and orientation of the workpiece can be changed. The workpiece moved to a position and orientation that can be taken out by a general taking-out action by the scattering action can be taken out by a general taking-out action.
[0025] like Figure 1As shown, a robot system 1 having a control device 2 of a first embodiment comprises: a robot 100 having a plurality of joints, wherein the plurality of joints are equipped with a manipulator 120 as a tool for taking out workpieces W scattered in a container 300; a camera 200, which is arranged at a position overlooking the opening of the container 300 accommodating the workpieces W, and photographing the container 300; and a control device 2, which controls the robot 100 and the camera 200.
[0026] like Figure 2 As shown, the control device 2 is configured as hardware such as an operating device 6, a display device 7, a communication device 8, and a storage device 9 connected to a processor 5 such as a CPU. The operating device 6 is provided by a keyboard, a mouse, a knob, etc. The operating device 6 can be provided by a touch screen that also serves as the display device 7, or by a dedicated suspension controller of the control device 2. The display device 7 is provided by an LCD (liquid crystal display) 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 (Hard Disk Drive), an SSD (Solid State Drive), etc. The storage device 9 stores a take-out action program and a generation program. In addition, the storage device 9 stores various information required for determining whether the robot 100 and the robot 120 interfere with the container 300 when performing the take-out action of the workpiece, such as the shape and size of the robot 100, the manipulator 120, and the container 300.
[0027] The extraction operation program is a program for causing the robot 100 to perform an operation of extracting workpieces loosely stacked in the container 300. The extraction operation program sequentially describes the teaching position and posture of the robot 100, the operation command of the manipulator 120, the shooting command issued to the camera 200, and the like.
[0028] The generation program is a program for generating a dispersing action program. The dispersing action program is a program for causing the robot 100 to perform a dispersing action on the target workpiece. The dispersing action program records the starting position, starting posture, movement amount, posture change amount, and movement speed of the dispersing action. If each action program is executed, the control device 2 decodes each action program and generates a position command value for a motor (not shown) that drives the robot 100 through inverse kinematics, and sends the generated position command value to the motor driver (not shown). As a result, the robot 100 is able to perform the action specified by the action program. Typically, the action program is taken out and the dispersing action program is recorded in a robot coordinate system that can be decoded by the control device 2. Of course, it can also be represented by other coordinate systems such as the workpiece coordinate system. In this case, the control device 2 maintains a conversion table for converting other coordinate systems into the robot coordinate system.
[0029] Figure 3 2 is a flowchart showing the control procedure of the control device 2 controlling the robot 100 and the camera 200 as specified in the removal operation program. Figure 3 As shown, if the removal action program is executed, the control device 2 controls the camera 200 according to the removal action program (S11). As a result, the container 300 is photographed by the camera 200, and the image of the container photographed is input to the control device 2. The control device 2 performs image processing for determining the removal position and direction of the workpiece on the container image (S12). When there is no workpiece to be removed (S13; No), the removal action of the robot 100 to remove the workpiece ends.
[0030] On the other hand, when there is a workpiece to be taken out (S13; Yes), it is determined whether the workpiece to be taken out can be taken out by a general taking-out action based on the taking-out action program (S14). In the processing of step S14, for example, based on the size and shape of the robot 100, the manipulator 120, and the container 300 and the taking-out position and orientation of the workpiece, it is determined whether the robot 100 and the manipulator 120 interfere with the container 300 when performing a general taking-out action on the workpiece. When the robot 100 and the manipulator 120 do not interfere with the container 300, that is, the workpiece to be taken out can be taken out by a general taking-out action (S14; Yes), the control device 2 controls the robot 100 to perform a general taking-out action (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 perform processing for taking out the next workpiece.
[0031] When the workpiece to be taken out cannot be taken out by the general taking-out action (S14; No), the control device regards the workpiece that cannot be taken out as the workpiece to be taken out by the scattering action, generates a scattering action program (S16), and controls the robot 100 according to the generated scattering action program (S17). Thus, the scattering action is performed on the workpiece that cannot be taken out by the general taking-out action, and the workpiece is moved in the container by the robot 100. Then, the process returns to step S11, and the process for taking out the workpiece to be taken out is performed again.
[0032] In this way, the generation process of the scattering action program and the robot control process based on the scattering action program are repeatedly executed until the workpiece can be taken out by the general taking-out action. Of course, it can also be configured so that an upper limit of the number of repetitions is pre-set, and an alarm is issued when the target workpiece cannot be taken out by the general taking-out action even if the number of repetitions of the scattering action on the target workpiece reaches the upper limit.
[0033] By executing the generation program stored in the storage device 9 by the processor 5, the control device 2 functions as a program generation device for generating a scattering action program. Figure 4 As shown, the control device 2 functions as an input unit 21 , a display unit 22 , a data receiving unit 23 , a storage unit 24 , a reception screen creation unit 25 , a registration unit 26 , and a breaking up operation program generation unit 27 .
[0034] The input unit 21 has Figure 2 The operation device 6 shown in the figure inputs the user operation of the operation device 6 into the control device 2. Specifically, the input unit 21 inputs the parameter set of the dispersing action inputted via the receiving screen into the control device 2. The parameter set of the dispersing action is a data set required for generating the dispersing action program, including information related to the starting position of the dispersing action, information related to the starting posture of the dispersing action, information related to the movement amount of the dispersing action, and information related to the rotation amount (posture change amount) of the dispersing action. Of course, it may also include information related to the moving speed of the manipulator 120, the interpolation form, the moving form, etc.
[0035] The display unit 22 has Figure 2 The display device 7 shown in the figure displays the receiving screen created by the receiving screen creating unit 25. The data receiving unit 23 has Figure 2 The communication device 8 shown receives the data of the container image from the camera 200 .
[0036] The storage unit 24 and Figure 2 The storage device 9 shown corresponds to the storage device 9. The storage unit 24 stores a management table for managing the scattering action parameter set input via the input unit 21. The details of the management table stored in the storage unit 24 will be described later.
[0037] The receiving screen creation unit 25 creates a receiving screen for receiving the disintegrating action parameter set. Details of the receiving screen created by the receiving screen creation unit 25 will be described later.
[0038] The registration unit 26 registers the scattering action parameter set input through the reception screen in the management table according to the user operation.
[0039] The dispersing action program generation unit 27 generates a dispersing action program based on the dispersing action parameter set. Specifically, the dispersing action program generation unit 27 converts the starting position, starting posture, movement amount, and rotation amount included in the dispersing action parameter set from the workpiece coordinate system to the robot coordinate system. In the conversion process from the workpiece coordinate system to the robot coordinate system, the data of the container image is used. Because the position of the camera 200 is fixed, the correspondence between the position on the container coordinate system on the container image captured by the camera 200 and the position on the robot coordinate system is known. For example, the corner of the container 300 on the container image is defined as the origin of the container coordinate system, the axis along the long axis of the container 300 is defined as the X-axis, the axis along the short axis is defined as the Y-axis, and the axis along the height direction of the container 300 orthogonal to the X-axis and the Y-axis is defined as the Z-axis.
[0040] Therefore, based on the container image, the position and orientation of the workpiece on the container coordinate system are determined, thereby the position and orientation of the workpiece coordinate system in the robot coordinate system can be derived. As long as 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 represented by the workpiece coordinate system can be converted into the robot coordinate system. In addition, the position and orientation of the workpiece in the container image can be determined by existing image processing such as threshold processing and pattern matching processing.
[0041] The disintegration action program generation unit 27 generates a disintegration action program that records the starting position, starting posture, movement amount, rotation amount, and movement speed, etc., expressed by the robot coordinate system. In addition, it is preferred that the disintegration action program generation unit 27 selects a disintegration action parameter set corresponding to the target workpiece of the disintegration action from a plurality of disintegration action parameter sets, and generates the disintegration action program based on the selected disintegration action parameter set. Details of the selection process of the disintegration action parameter set performed by the disintegration action program generation unit 27 will be described later.
[0042] Below, refer to Figure 5 , explaining the acceptance screen created by the acceptance screen creation unit 25. Figure 5 An example of an acceptance screen is shown. Figure 4 As shown, the receiving screen includes a plurality of input fields for receiving a set of parameters for a scattering action, and a registration button for registering the set of parameters for the action received via the receiving screen. The plurality of input fields for receiving a set of parameters for a scattering action include three input fields for receiving a starting position (X), (Y), (Z) of a scattering action, three input fields for receiving a starting posture (W), (P), (R) of a scattering action, three input fields for receiving a movement amount (ΔX), (ΔY), (ΔZ) of a scattering action, and three input fields for receiving a rotation amount (ΔW), (ΔP), (ΔR) of a scattering action.
[0043] The starting position (X), (Y), (Z) specifies the position of the manipulator 120 when the disbanding action starts (the position of the fingertip reference point of the robot 100). The starting posture (W), (P), (R) specifies the posture of the manipulator 120 when the disbanding action starts (the direction of the fingertip reference point of the robot 100). The movement amount (ΔX), (ΔY), (ΔZ) specifies the movement direction and movement amount of the manipulator 120 during the disbanding action. The rotation amount (ΔW), (ΔP), (ΔR) specifies the posture change of the manipulator 120 during the disbanding action.
[0044] The end position of the shattering action is defined by the start position (X), (Y), (Z) and the movement amount (ΔX), (ΔY), (ΔZ). Therefore, the movement amount (ΔX), (ΔY), (ΔZ) and the rotation amount (ΔW), (ΔP), (ΔR) can be replaced by the end position (X), (Y), (Z) and the end posture (W), (P), (R) of the shattering action, respectively.
[0045] The user inputs the scattering action parameter set on the receiving screen and clicks the registration button, thereby registering the input scattering action parameter set to the management table. The registered scattering action parameter set is managed by the management table stored in the storage unit 24. Figure 6 As shown, the date and time information registered by at least one scattered action parameter set is managed together through the management table.
[0046] Enter the starting position (X), (Y), (Z), starting posture (W), (P), (R), movement amount (ΔX), (ΔY), (ΔZ), and rotation amount (ΔW), (ΔP), (ΔR) in the workpiece coordinate system. That is, the starting position (X), (Y), (Z) corresponds to the position on each of the three orthogonal axes of the workpiece coordinate system. The starting posture (W), (P), (R) corresponds to the rotation angle around each of the three orthogonal axes of the workpiece coordinate system. The movement amount (ΔX), (ΔY), (ΔZ) corresponds to the movement amount along each of the three orthogonal axes of the workpiece coordinate system. The rotation amount (ΔW), (ΔP), (ΔR) corresponds to the rotation change amount around each of the three orthogonal axes of the workpiece coordinate system. The workpiece coordinate system is a coordinate system defined by the object workpiece of the scattering action. For example Figure 7 As shown, for example, when a cylinder having a protrusion on the outer peripheral surface is used as a workpiece, the three orthogonal axes of the workpiece coordinate system are defined as follows. That is, the center position of the cylinder is defined as the origin of the workpiece coordinate system, the axis parallel to the center line of the cylinder 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.
[0047] Furthermore, if the starting position, starting posture, movement amount, and rotation amount can be input outside the workpiece coordinate system, they can be input based on other coordinate systems such as cylindrical coordinate system, polar coordinate system, etc. depending on the workpiece.
[0048] For example, Figure 7 The starting position Ps1 and the moving amount ΔD of the scattering action are respectively represented by Figure 6 The starting position (-100mm, 80mm, 0mm) and movement amount (200mm, 160mm, 0mm) of the parameter set 1 of the scatter action managed by the management table are as follows. Figure 7As shown, the direction of the moving trajectory of the breaking up action performed by the robot 120 based on the breaking up action parameter set 1 is from the side of the outer peripheral surface of the workpiece without protrusions, through the origin of the workpiece, and inclined toward the side of the outer peripheral surface of the workpiece with protrusions relative to the center line of the workpiece.
[0049] Below, refer to Figure 8 , the selection process of the scattering action parameter set by the scattering action program generation unit 27 is described. The scattering action program generation unit 27 selects a scattering action parameter set that satisfies the selection condition from a plurality of scattering action parameter sets. For example, the following conditions are provided as the selection condition.
[0050] Selection condition 1: The start position and the end position are set inside the container 300 .
[0051] Selection condition 2: No other artifacts are configured at the start location.
[0052] Selection condition 3: No other workpiece is configured at the end location.
[0053] Selection condition 4: No other workpieces are placed on the moving track.
[0054] Selection condition 5: The start position is arranged closer to the center of the container 300 than the end position.
[0055] Selection condition 6: The distances between the start position and the end position and the inner wall surface of the container 300 are greater than a threshold value.
[0056] The scattering action program generation unit 27 selects a scattering action parameter set that satisfies at least selection condition 1 and selection condition 2 from a plurality of scattering action parameter sets. Figure 8 As shown, for example, when the target workpiece of the scattering action is workpiece W1, a scattering action parameter set including a start position Ps4 and an end position Pe4 in which the start position and the end position are set inside the container 300 and no other workpiece is arranged at the start position is selected from a plurality of scattering action parameter sets. When the target workpiece of the scattering action is workpiece W2, a scattering action parameter set including a start position Ps2 and an end position Pe2 is selected from a plurality of scattering action parameter sets.
[0057] Among them, the selection conditions for selecting a scattered action parameter from multiple scattered action parameter sets are selection condition 1 and selection condition 2, and the selection conditions can also be changed according to user instructions. For example, the selection condition can be to add other selection conditions to selection condition 1 and selection condition 2. In addition, the scattered action parameter set can be associated with a priority. Thus, in the case where there are multiple scattered action parameter sets that meet the selection condition, a scattered action parameter set with the highest priority among the multiple scattered action parameter sets that meet the selection condition can be automatically selected as a scattered action parameter set for generating a scattered action program. Of course, it is also possible not to automatically select according to the priority, but in the case where there are multiple scattered action parameter sets that meet the selection condition, the priority associated with the multiple scattered action parameter sets that meet the selection condition is displayed. The priority can be used as a reference to determine a scattered action parameter set selected by the user.
[0058] The function of generating the dispersing action program of the control device 2 of the first embodiment is not a function of generating a complex action program that realizes the dispersing action of the robot 100 on the workpieces arranged in various positions and orientations in the container through one action program. The function of generating the dispersing action program of the control device 2 of the first embodiment is a function of generating a dispersing action program for causing the robot 100 to perform a simple contact action on the workpiece. Therefore, the user can generate the dispersing action program only by inputting the dispersing action parameter set (starting position, starting posture, movement amount, rotation amount) on the receiving screen provided by the control device 2.
[0059] The user can input the scattering action parameter set accepted on the acceptance screen in the workpiece coordinate system, so there is no need to consider the position and orientation of the workpiece in the container, and the scattering action parameter set can be set in advance by only considering the moving track of the robot 120 relative to the workpiece. This also helps to make it easier to generate the scattering action program.
[0060] The user knows in advance the position and orientation of the workpiece on the workpiece coordinate system. Therefore, the operation of inputting the starting position, starting posture, movement amount, and rotation amount to at least form the moving track of the robot 120 in contact with the workpiece can be said to be a very simple operation compared to the case of generating a large number of action programs that include case distinctions. Because only the moving track of the robot 120 is considered, professional knowledge related to the movement of the robot 100 or the removal of scattered workpieces is not necessary. Therefore, the control device 2 of the first embodiment can easily generate a scattering action program for causing the robot 100 to perform a scattering action, which is an action of changing the position and orientation of the workpiece by scattering the workpiece (contacting the workpiece) in the container.
[0061] In addition, a plurality of dispersing action parameter sets with different movement trajectories relative to the workpieces are registered through the receiving screen, thereby enabling one dispersing action parameter set that can realize the dispersing action on the target workpieces of the dispersing action to be selected from the plurality of dispersing action parameter sets. Thus, it is possible to prevent the dispersing action from being executed, such as the start position or the end position of the dispersing action being set outside the container 300 or other workpieces being arranged at the start position of the dispersing action.
[0062] (Second embodiment) The control device of the second embodiment is a device having a function of correcting the movement amount of the scattering action parameter set set by the scattering action program generation unit 27 in addition to the scattering action program generation function of the control device 2 of the first embodiment.
[0063] The hardware configuration of the control device 3 of the second embodiment is the same as the hardware configuration of the control device 2 of the first embodiment, and therefore the description thereof is omitted (see Figure 2 ).
[0064] like Fig. 9 As shown, the control device 3 of the second embodiment is Figure 4 In the functional block diagram of the control device 2 of the first embodiment shown, a correction unit 28 is added.
[0065] The input unit 21 inputs the dispersing action information set inputted via the receiving screen into the control device. The dispersing action information set includes a dispersing action parameter set, information related to the on / off of the function of limiting the robot 100 from approaching the inner wall surface of the container 300 (hereinafter referred to as the approach limiting function), and information related to the limit distance (hereinafter referred to as the approach limit distance) at which the robot 100 can approach the inner wall surface of the container 300 when the approach limiting function is turned on.
[0066] The storage unit 24 stores a management table for managing the scattering operation information set input via the input unit 21 .
[0067] The receiving screen creation unit 25 creates a receiving screen for receiving the scattered action information set. Fig.10 As shown, the acceptance screen created in the second embodiment is configured by adding a check box for accepting the on / off of the proximity limit function and an input field for accepting the proximity limit distance when the proximity limit function is selected to the acceptance screen of the first embodiment.
[0068] The registration unit 26 registers the scattering action information set input via the receiving screen into the management table. Fig.11As shown, the management table of the second embodiment is a table in which two management items, the approach limit function flag and the approach limit distance, are added to the management table of the first embodiment. The approach limit function flag "0" indicates that the approach limit function is turned off, and the approach limit flag "1" indicates that the approach limit function is turned on. The approach limit distance "20" indicates that the position 20 mm away from the inner wall surface of the container 300 is the limit distance that the manipulator 120 can approach.
[0069] The scattering action program generation unit 27 generates a scattering action program based on the scattering action information set.
[0070] The correction unit 28 corrects the set of the breaking up operation information set by the breaking up operation program generation unit 27. The correction process by the correction unit 28 is executed when the approach restriction function is turned on.
[0071] When the correction unit 28 determines that the position (end position) after the robot 100 moves due to the breaking up operation is close to the inner wall surface of the container 300 within the approach limit distance, the movement amount along each of the three orthogonal axes is corrected so that the end position is located at a position farther from the inner wall surface of the container 300 than the approach limit distance. Fig.12 As shown, the end position Pe5 derived from the start position Ps5 and the movement amount ΔD5 of the scattering action on the workpiece W3 approaches the inner wall surface of the container 300 at a close limit distance Ds. The correction unit 28 corrects the movement amount ΔD5 in such a way that the end position Pe5 is set at a position farther from the inner wall surface of the container 300 than the close limit distance Ds. Specifically, the correction unit 28 converts the end position Pe5 from the workpiece coordinate system to the container coordinate system based on the container image. Then, based on the end position Pe5 represented by the container coordinate system and the position of the inner wall surface of the container 300 represented by the container coordinate system, the end position Pe5 is corrected to the end position Pe5´. Then, based on the start position Ps5 and the corrected end position Pe5´, the movement amount ΔD5 is corrected to the movement amount ΔD5´.
[0072] When the correction unit 28 determines that both the start position and the end position of the breaking up operation are close to the inner wall surface of the container 300 within the limit distance Ds, the movement amount is corrected so that the moving direction component toward the inner wall surface of the container 300 becomes 0. Fig.12 As shown in FIG. 1 , both the start position Ps6 and the end position Pe6 of the scattering operation performed on the workpiece W4 are close to the inner wall surface of the container 300 at a distance within the limit distance Ds. The correction 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 represented by the container coordinate system and the position of the side wall of the container 300, the moving direction component along the X axis or the moving direction component along the Y axis of the moving amount ΔD6 is made zero, and the moving amount ΔD6' is corrected.
[0073] Since the control device 3 of the second embodiment has the same functions as the control device 2 of the first embodiment, the same effects as the control device 2 of the first embodiment are achieved. In addition, the control device 3 of the second embodiment can generate a breaking up operation program that automatically corrects the end position set to a position close to the inner wall surface of the container 300 to a position away from the inner wall surface of the container 300. Since the manipulator 120 can be restricted from approaching the side wall of the container 300, the possibility of the manipulator 120 of the robot 100 colliding with the side wall of the container 300 during the breaking up operation can be reduced compared to the case where the manipulator 120 is not restricted from approaching the side wall of the container 300.
[0074] The control device 3 of the second embodiment corrects the movement amount so that the moving direction component toward the side wall of the container 300 becomes 0, in other words, so that the moving direction becomes the direction along the side wall of the container 300, when both the starting position and the ending position are set to positions close to the side wall of the container. Even when the starting position is close to the inner wall surface of the container 300, it is possible to avoid the situation where the robot 100 approaches the inner wall surface of the container 300 too much, and thus the possibility of the robot 100 colliding with the side wall of the container 300 during the breaking up operation can be reduced compared to the case where the robot 100 approaches the inner wall surface of the container 300 from the starting position whose distance from the inner wall surface of the container 300 is less than the approach limit distance.
[0075] In the first and second embodiments, the workpiece that cannot be taken out by the general taking-out action is subjected to the scattering action, and the position and orientation of the workpiece in the container are changed, so that the workpiece can be taken out by the general taking-out action. However, as long as the workpiece passing through the object can be taken out by the general taking-out action by moving, the action performed on the workpiece that cannot be taken out by the general taking-out action is not limited to the scattering action.
[0076] (Third Embodiment) The control device 4 of the third embodiment is a computer device having the following functions, namely, a function of controlling the robot 100 according to a taking-out action program for taking out a plurality of workpieces that are scattered and stacked from a container 300; a function of generating a grasping action program related to a grasping action, wherein the grasping action is an action of grasping the end portion of the workpieces that are scattered and stacked in a container, moving them in the container, and releasing them into the container; and a function of controlling the robot 100 according to the generated grasping action program. The grasping action based on the grasping action program is performed on a workpiece that cannot be taken out by a general taking-out action based on the taking-out action program as an object. The grasping action is a series of actions of grasping a position that deviates from the general grasping position of the object workpiece, moving them in the container, and releasing them into the container, so that at least one of the position and orientation of the workpiece in the container can be changed. The workpiece that is moved to a position and orientation that can be taken out by a general taking-out action by the grasping action is taken out by a general taking-out action.
[0077] The hardware configuration of the control device 4 of the third embodiment is the same as the hardware configuration of the control device 2 of the first embodiment, and therefore the description thereof is omitted (see Figure 2 ).
[0078] like Fig.13 As shown, in the control device 4 of the third embodiment, Fig. 9 The breaking up operation program generation unit 27 in the functional block diagram of the control device 3 of the second embodiment shown is replaced with a grabbing operation program generation unit 29 .
[0079] The input unit 21 inputs the grabbing action information set inputted via the receiving screen into the control device. The grabbing action information set includes a grabbing action parameter set, information related to turning on and off the approach limit function, information related to the approach limit distance when the approach limit function is turned on, and information related to whether to execute movement to the center position of the container 300.
[0080] The storage unit 24 stores a management table for managing a grabbing motion information set input via the input unit 21 .
[0081] The receiving screen creation unit 25 creates a receiving screen for receiving the grabbing action information set. Fig.14As shown, the receiving screen created in the third embodiment is configured such that a check box for accepting a selection of whether to execute movement to the center position of the container 300 is added to the receiving screen created in the second embodiment. In addition, the mark of "dispersing action" is replaced with "grasping action". The user selects the check box for accepting a selection of whether to execute movement to the center position of the container 300 instead of inputting the movement amount (X), (Y), (Z), thereby enabling the robot 120 to move to the center position of the container 300 after grasping the workpiece, and release the grasped workpiece at the center position of the container 300.
[0082] In order to prevent the workpiece from being placed near the wall of the container 300 again, it is preferable that the release position is as close to the center of the container 300 as possible. However, since the movement amounts (ΔX), (ΔY), and (ΔZ) are input in the workpiece coordinate system, there are cases where the workpiece cannot be moved to the center of the container 300 depending on the orientation of the target workpiece. Therefore, by selecting the check box for accepting a selection of whether to execute movement to the center of the container 300, the gripped workpiece can be reliably released at the center of the container 300.
[0083] The registration unit 26 registers the grabbing action information set input via the receiving screen into the management table. Fig.15 As shown, the management table of the third embodiment manages the date and time information registered in the gripping action information set together. The movement flag "0" indicates that the robot 120 is not moved to the center position of the container 300 after the robot 120 grips the workpiece, and the movement flag "1" indicates that the robot 120 is moved to the center position of the container 300 after the robot 120 grips the workpiece. When the check box for accepting the selection of whether to execute the movement to the center position of the container 300 is checked and a numerical value is input in the movement amount (ΔX), (ΔY), (ΔZ), the movement amount of the robot 120 after gripping the workpiece is the value of the movement amount required to move to the center position of the container 300 plus the input movement amount (ΔX), (ΔY), (ΔZ).
[0084] The grabbing action program generation unit 29 generates a grabbing action program based on the grabbing action information set. The grabbing action program records movement instructions for moving to the grabbing position, grabbing action instructions, movement instructions for moving to the release position, release action instructions, and movement speed, etc. The movement instruction for moving to the grabbing position can be generated based on the grabbing position and the grabbing posture. The movement instruction for moving to the release position can be generated by the movement amount and the rotation amount. In addition, when the check box for accepting the selection of whether to execute the movement to the center position of the container 300 is selected, the movement amount from the grabbing position to the center position of the container 300 can be determined based on the position of the workpiece determined by the container image and the center position of the container 300, thereby generating a movement instruction for moving to the release position. In addition, the grabbing action instruction and the release action instruction are pre-defined action instructions.
[0085] The correction unit 28 corrects the gripping operation information set set by the gripping operation program generation unit 29. The processing of the correction unit 28 of the control device 4 of the third embodiment is the same as that of the second embodiment, and therefore the description thereof is omitted.
[0086] The control device 4 of the third embodiment differs from the control device 3 of the second embodiment only in the method of moving the workpiece that cannot be taken out by the general taking-out action within the container, and as a result of their actions, the situation that the workpiece can be moved to a position where it can be taken out by the general taking-out action is the same. Therefore, according to the control device 4 of the third embodiment, the same effect as the control device 3 of the second embodiment is achieved.
[0087] In addition, for example, when the workpiece of the contact object stands at a position close to the side wall of the container 300 and is surrounded by other workpieces, it is more likely that the workpiece can be pulled out by the grasping action without stopping the contact of the robot 100 than by the scattering action. On the other hand, when the workpiece of the contact object is arranged at a position that cannot be grasped, the scattering action has to be selected. In this way, the contact action to be executed can be automatically selected between the scattering action and the grasping action according to the conditions of the workpiece of the contact object, such as the position and direction of the workpiece of the contact object and the position and direction of the surrounding workpieces.
[0088] In addition, the grabbing action is actually the action of grabbing, moving, and releasing the workpiece, so if the release action is slowed down, the load applied to the workpiece by the grabbing action is small, and the load value may be kept constant regardless of the position and orientation of the workpiece. On the other hand, the scattering action is actually the action of making the robot 120 contact the workpiece and move the workpiece inside the container 300. Therefore, in the case of moving a pile of workpieces or moving a workpiece standing on the side wall of the container 300, the workpiece may be subjected to a large load due to falling into the container 300. Therefore, from the perspective of reducing the load applied to the workpiece, there is a situation where the control device 4 of the third embodiment that adopts the grabbing action as the action of contacting the workpiece is given priority over the control devices 2 and 3 of the first and second embodiments that adopt the scattering action. In this way, it is also possible to automatically set the contact action of one of the scattering action and the grabbing action according to the type of workpiece, and execute it first.
[0089] And, if there is a complicated shape, there is no workpiece in the position that can be held outside the take-out position, then the scattering action has to be selected. Like this, also can automatically select the contact action to be performed in the scattering action and the grasping action according to the shape of the workpiece.
[0090] If the position and orientation of the workpiece inside the container 300 can be determined, the data used for the determination process is not limited to the container image captured by the camera 200. For example, a sensor capable of acquiring three-dimensional point cloud data of the object, a sensor capable of acquiring three-dimensional point cloud data and a two-dimensional camera image, or two cameras can be used instead of the camera 200.
[0091] It is also possible to construct a combination of the first and second embodiments for generating a dispersing action program and the third embodiment for generating a grabbing action program. In this case, it is sufficient to set a drop-down menu in the receiving screen for setting the target action to a dispersing action or a grabbing action. It is possible to generate both a dispersing action program and a grabbing action program, and to cause the robot 100 to perform the action of either one according to a prescribed rule. For example, the dispersing action and the grabbing action are performed alternately. That is, at first, the robot 100 performs a dispersing action on a workpiece that cannot be taken out by a general taking-out action. If the target workpiece cannot be taken out by a general taking-out action even in this case, the robot 100 is then caused to perform a grabbing action. By combining a plurality of actions in which the workpiece moves in different ways, the possibility of moving the workpiece to a position and orientation where it can be taken out by a general taking-out action is increased compared to the case of repeating a single action, and the occurrence of a situation where the workpiece cannot be taken out can be suppressed.
[0092] In addition, the contact action of one of the breaking up action and the grabbing action can be automatically selected and executed based on the height of the action starting point relative to the object workpiece in the container or the height of the object workpiece in the container, just as the action is performed when the starting position of the breaking up action and the grabbing action on the object workpiece in the container is at a high height in the container.
[0093] In the present embodiment, the generation program installed in the control devices 2 , 3 , and 4 may be distributed by being recorded in various types of recording media such as removable media, or may be distributed by being downloaded to a user's computer via a network.
[0094] The embodiments of the present disclosure are described in detail, but the present disclosure is not limited to the above-mentioned embodiments. These embodiments can be variously added, replaced, changed, partially deleted, etc. without exceeding the scope of the main idea of the invention, or without exceeding the scope of the idea and main idea of the present invention derived from the contents recorded in the claims and their equivalents. For example, in the above-mentioned embodiments, the order of each action or the order of each process is shown as an example, but it is not limited to this. In addition, the same is true when numerical values or formulas are used in the description of the above-mentioned embodiments.
[0095] Description of Reference Numerals 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…Receiving screen creation unit, 26…Registration unit, 27…Breakup action program generation unit, 100…Robot, 120…Manipulator, 200…Camera, 300…Container.
Claims
1. A program generating device for generating a robot program for causing a robot to perform a contact action with workpieces scattered and stacked in a container, wherein: have: A receiving unit receives, on a workpiece coordinate system, a starting position for starting the contact action, a starting posture, a moving amount of the contact action, and a posture change amount; as well as The generating unit generates the robot program for the target workpiece in the container based on the received starting position, the starting posture, the movement amount, and the posture change amount.
2. The program generation device according to claim 1, wherein: The receiving unit accepts the position on each of the three orthogonal axes of the workpiece coordinate system as the starting position, accepts the rotation angle around each of the three orthogonal axes as the starting posture, accepts the movement amount along each of the three orthogonal axes as the movement amount, and accepts the rotation amount around each of the three orthogonal axes as the posture change amount.
3. The program generation device according to claim 1 or 2, wherein: The receiving unit receives a plurality of contact action parameter sets, the contact action parameter sets including the starting position, the starting posture, the movement amount, and the posture change amount. The generation unit selects one contact motion parameter set from the plurality of contact motion parameter sets based on the position and orientation of the target workpiece in the container, and generates the robot program based on the selected one contact motion parameter set.
4. The program generation device according to any one of claims 1 to 3, wherein: The program generation device further includes a third receiving unit configured to receive a proximity limit distance of the robot relative to the inner wall surface of the container. When the generation unit determines that the moved position of the robot approaches the inner wall surface within the approach limit distance, the generation unit corrects the movement amount so that the moved position of the robot is located farther from the inner wall surface than the approach limit distance.
5. The program generation device according to claim 1, wherein: The contact action is a scattering action of contacting the workpieces scattered in the container and scattering them. The receiving unit receives a scattering start position when scattering the workpieces as the start position.
6. The program generation device according to claim 1, wherein: The contact action is a grasping action of grasping the workpieces scattered in the container, moving them in the container, and releasing them in the container. The receiving unit receives a gripping position when the workpiece is gripped as the start position.
7. The program generation device according to claim 6, wherein: The program generation device further includes another receiving unit for receiving movement to the center position of the container. The generating unit corrects the accepted movement amount based on the acceptance result of the movement to the center position of the container.
8. A control device for controlling a robot to perform a contact action with workpieces scattered and stacked in a container, wherein: have: A receiving unit receives, on a workpiece coordinate system, a starting position for starting the contact action, a starting posture, a moving amount of the contact action, and a posture change amount; a generating unit that generates a robot program for causing the robot to perform the contact action with the target workpiece in the container based on the received starting position, the starting posture, the movement amount, and the posture change amount; and The units of the robot are controlled according to the generated robot program.
9. A program for causing a computer to: a unit for receiving, on a workpiece coordinate system, a starting position of a contact action for starting contact with workpieces loosely stacked in a container, a starting posture, a movement amount of the contact action, and a posture change amount; and The device generates a robot program for causing a robot to perform a contact operation with a target workpiece in the container based on the received starting position, starting posture, movement amount, and posture change amount.
Citation Information
Patent Citations
Robot system and control method of the same
JP2014205209A