The present application claims priority of Japanese Application Number 2018-129338, filed Jul. 6, 2018, the disclosure of which is hereby incorporated by reference herein in its entirety.
The present invention relates to a robot program generation apparatus, and particularly relates to a robot program generation apparatus for a robot system that includes at least a robot and a peripheral device.
Offline programming requires the layout creation, the program creation, and the simulation of the robot system. To perform these things needs a lot of knowledge of programming, simulation apparatuses, and robotics. Therefore, a large amount of time is required to perform the final simulation. Various techniques to reduce the man-hour for simulation have been disclosed thus far.
JP 2005-148789 A discloses a robot teaching program editing apparatus. The following things are defined in advance by the program editing apparatus: a template of a work cell where a robot, a workpiece, a peripheral device, and the like are temporarily arranged; a template of robot task instruction; and a robot operation command associated with an object to be arranged. When a task instruction is input by voice in accordance with the sentence patterns of the template of the robot task instruction, a robot operation command associated with the object to be arranged is displayed, and a robot operation is displayed on the screen.
JP 2008-015683 A discloses a robot programming apparatus. The robot programming apparatus stores three-dimensional shape data of a hand whose shape feature conforms to a new workpiece to the highest degree. Hence, an optimal operation program to carry the new work can be prepared easily and reliably with a small number of man-hours.
The type and the layout of the elements to be arranged in the work cell (arranged elements, for short) vary depending, for instance, on the request of the user who wants to introduce the robot system, and on the environment where the robot system is to be introduced. In addition, the layout needs to be prepared taking into consideration, how to prevent the arranged elements in a stationary state from interfering with each other and how to prevent the robot in an operating state from interfering any other arranged elements. In other words, the layout is affected by various factors, such as: installation positions and sizes of the arranged elements; task details and motion ranges of the robot corresponding to the arrangement pattern; and the position and posture of the robot in relation to the workpiece. Since the layout and the robot program thus affect each other, the simulation requires a lot of man-hours.
Hence, there is a need for a technique to instantly generate a robot program for typical arrangement patterns by simple operations on the screen.
An aspect of the present disclosure provides a robot program generation apparatus for a robot system including at least a robot and a peripheral device, the robot program generation apparatus including: means for selecting a typical arrangement pattern of the robot system; means for individually selecting elements to be arranged in the selected arrangement pattern; means for automatically generating a layout where the arranged elements in a stationary state do not interfere with each other; means for automatically generating a robot program in accordance with task details corresponding to the selected arrangement pattern and with the automatically generated layout; means for executing the automatically generated robot program in a virtual environment, and automatically modifying installation positions of the arranged elements in the automatically generated layout based on whether or not the robot in an operating state interfere with any other arranged elements and on whether or not the robot can reach a workpiece; and means for correcting the robot program based on the automatically modified installation positions.
Embodiments of the present disclosure will be described in detail below with reference to the accompanying drawings. In the drawings, identical or similar elements are given identical or similar reference signs. Additionally, the embodiments described below are not intended to limit the technical scope of the invention or the meaning of terms set forth in the claims.
The non-volatile memory 14 holds a plurality of types of pre-stored arrangement pattern data 21, a plurality of types of pre-stored peripheral device data 22, a plurality of types of pre-stored robot data 23, a plurality of types of pre-stored hand data 24, a plurality of types of pre-stored workpiece data 25, a plurality of types of pre-stored detailed task data 26, and the like. The arrangement pattern data 21 includes installation position data indicating where to install various arranged elements (a robot, a peripheral device, a table, a workpiece, and the like) arranged in a typical arrangement pattern. The installation position of each arranged element is defined as the position of the center of arranged element on the installation surface on which the arranged element is installed. The peripheral device data 22 includes three-dimensional shape data of various machine tools (for example, shape data of an injection molding machine, an electric discharge machine, a laser processing machine, and the like). The robot data 23 includes three-dimensional shape data of various industrial robots, and the hand data 24 includes three-dimensional shape data of various hands (e.g., shape data such as a suction hand, an electric hand, and the like). The workpiece data 25 includes three-dimensional shape data (e.g., a cube, a cylinder, a sphere, and the like) of various workpieces. The detailed task data 26 includes various workflows defined in advance according to the arrangement patterns, and various robot operation commands corresponding to their respective workflows. An exemplar workflow includes a task making a robot A respond to a door open signal by moving a workpiece D from a workpiece pick-up location where a peripheral device B exists to a workpiece drop-off location where a table C exists.
(Step S10) Select an arrangement pattern of the robot system from a plurality of typical arrangement patterns (see
(Step S11) Select arranged elements to be arranged in the selected arrangement pattern from a plurality of types of peripheral devices, a plurality of types of robots, a plurality of types of hands, and a plurality of types of workpieces (see
(Step S12) Arrange the selected arranged elements in the virtual space.
(Step S13) Determine whether or not there is interference between the arranged elements in a stationary state. Various known techniques can be used for the interference determination.
(Step S14) In a case where there is interference between some arranged elements in an operating state (YES at Step S13), the installation positions of the arranged elements in the automatically generated layout are automatically modified. Specifically, the installation position of any of the interfering arranged elements (the robot, the peripheral device, the workpiece, the table, and the like) is moved to a new position where the moved arranged element does not interfere with any of the other arranged elements.
(Step S15) In a case where there is no interference with any arranged elements in the stationary state (NEC at Step S13), a robot program is automatically generated in accordance with the task details that depend on the selected arrangement pattern and the automatically generated layout. Specifically, for example, the generated robot program is one that makes the robot A move the workpiece D from the workpiece pick-up location where the table C exists to the workpiece drop-off location where the peripheral device B exists in response to the door open signal.
(Step S16) Execute the automatically generated robot program in a virtual space.
(Step S17) Determine whether or not there is interference between the robot in the operating state and any other arranged elements, or also determine whether or not the robot fails to reach the workpiece. In a case where the robot in the operating state does not interfere with any other arranged elements and in addition where the robot does not fail to reach (i.e., reaches) the workpiece (NO at Step S17), automatic generation of the layout and the robot program ends.
(Step S18) In a case where the robot in the operating state interferes with another arranged element or where the robot fails to reach the workpiece (YES at Step S17), the installation positions of the arranged elements in the automatically generated layout are automatically modified. The process then returns to Step S15 to correct (regenerate) the robot program based on the automatically modified installation positions.
(Step S20) Move the robot 52 to the workpiece pick-up location.
(Step S21) Move the face plate 56 of the robot. 52 about the axis Z that passes on the preset TCP. Determine a position of the face plate 56 relative to the workpiece 54, as the workpiece pick-up posture, where the robot 52 in the operating state does not interfere with any other arranged elements, and where the shortest distance is achieved between the center position of the face plate 56 and the origin 0 set on the fixed base 57 of the robot 52 (see
(Step S22) Move the robot 52 to the workpiece dispensing position.
(Step S23) Move the face plate 56 of the robot 52 about the axis Z that passes on the preset TCP. Determine a position of the face plate 56 relative to the workpiece 54, as the workpiece drop-off posture, where the robot 52 in the operating state does not interfere with any other arranged elements, and where the shortest distance is achieved between the center position of the face plate 56 and the origin 0 set on the fixed base 57 of the robot 52.
By determining that the posture where the shortest distance is achieved between the center position of the face plate 56 and the origin 0 set on the fixed base 57 of the robot 52, an unnatural posture of the robot can be avoided, the cycle time can be optimized, and the robot program in which the interfering state is taken into account can be generated.
(Step S30) Substitute 1 into the variable i (the variable i is an integer).
(Step S31) Move the robot 52 to the workpiece pick-up location 60 in the virtual space.
(Step S32) Move the face plate 56 of the robot 52 about the axis that passes on the preset TCP. Determine a position of the face plate 56 relative to the workpiece 54, as the workpiece pick-up posture, where the robot 52 in the operating state does not interfere with any other arranged elements, and where the i-th shortest distance is achieved between the center position of the face plate 56 and the origin 0 set on the fixed base 57 of the robot
(Step S33) Keep the robot 52 in the set workpiece pick-up posture and move the robot 52 in the workpiece pick-up posture to the workpiece drop-off location 61 in the virtual space.
(Step S34) Add 1 to the variable i.
(Step S35) Determine whether or not there is interference between the robot 52 in the operating state and any other arranged elements, or determine whether or not the workpiece pick-up posture fails to suit the predetermined workpiece drop off posture. An allowable range may be predefined for determining the suitability. In a case where the robot interferes with any other arranged elements or where the workpiece pick-up posture fails to suit the predetermined workpiece drop-off posture (YES at Step S35), return the process to Step S31 to set another workpiece pick-up posture at the workpiece pick-up location 60. Then, repeat the similar processing (Step S31 to Step S35).
(Step S36) In a case where the robot does not interfere with any other arranged elements and in addition, where the workpiece pick-up posture does not fail to suit (i.e., suits) to a predetermined workpiece drop-off posture (YES at Step S35), determine the set workpiece pick-up posture as the workpiece pick-up posture.
By determining whether or not the set workpiece pick-up posture suits to the predetermined workpiece drop-off posture, the workpiece can be picked up in a reasonable posture without interference even in a case where the workpiece drop-off posture is predetermined.
The software for executing the processing described in the aforementioned flowchart may be recorded in and provided as a computer readable non-transitory recording medium, such as CD-ROM.
Although some embodiments have been described in this specification, the present invention is not intended to be limited to the above-described embodiments, and it is to be understood that many changes can be made without departing from the scope of the appended claims.
Number | Date | Country | Kind |
---|---|---|---|
JP2018-129338 | Jul 2018 | JP | national |
Number | Name | Date | Kind |
---|---|---|---|
6470301 | Barral | Oct 2002 | B1 |
9724826 | Prats | Aug 2017 | B1 |
20090069939 | Nagatsuka | Mar 2009 | A1 |
20100241248 | Zhang | Sep 2010 | A1 |
20160096269 | Atohira | Apr 2016 | A1 |
20160199981 | Atohira | Jul 2016 | A1 |
20180036882 | Kimura | Feb 2018 | A1 |
20180085927 | Kapoor | Mar 2018 | A1 |
Number | Date | Country |
---|---|---|
60025683 | Jul 2006 | DE |
1798616 | Jun 2007 | EP |
1842631 | Nov 2008 | EP |
1749621 | Jan 2014 | EP |
2001105359 | Apr 2001 | JP |
2005-148789 | Jun 2005 | JP |
200738366 | Feb 2007 | JP |
2007160486 | Jun 2007 | JP |
2008-15683 | Jan 2008 | JP |
2010089218 | Apr 2010 | JP |
201674063 | May 2016 | JP |
2017213644 | Dec 2017 | JP |
2017213644 | Dec 2017 | JP |
2007113112 | Oct 2007 | WO |
WO-2007113112 | Oct 2007 | WO |
WO-2016186060 | Nov 2016 | WO |
WO-2019233484 | Dec 2019 | WO |
Number | Date | Country | |
---|---|---|---|
20200009724 A1 | Jan 2020 | US |