WO2018173318A1 - ロボットプログラムの生成装置及び生成方法 - Google Patents

ロボットプログラムの生成装置及び生成方法 Download PDF

Info

Publication number
WO2018173318A1
WO2018173318A1 PCT/JP2017/031706 JP2017031706W WO2018173318A1 WO 2018173318 A1 WO2018173318 A1 WO 2018173318A1 JP 2017031706 W JP2017031706 W JP 2017031706W WO 2018173318 A1 WO2018173318 A1 WO 2018173318A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
hand
posture
component
gripping
Prior art date
Application number
PCT/JP2017/031706
Other languages
English (en)
French (fr)
Inventor
達也 永谷
奥田 晴久
Original Assignee
三菱電機株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to DE112017007311.1T priority Critical patent/DE112017007311B4/de
Priority to CN201780088646.1A priority patent/CN110461550B/zh
Priority to US16/483,040 priority patent/US11003177B2/en
Priority to JP2018514923A priority patent/JP6418359B1/ja
Priority to TW107103806A priority patent/TWI649171B/zh
Publication of WO2018173318A1 publication Critical patent/WO2018173318A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • G05B19/423Teaching successive positions by walk-through, i.e. the tool head or end effector being grasped and guided directly, with or without servo-assistance, to follow a path
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1612Programme controls characterised by the hand, wrist, grip control
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/42Recording and playback systems, i.e. in which the programme is recorded from a cycle of operations, e.g. the cycle of operations being manually controlled, after which this record is played back on the same machine
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39476Orient hand relative to object
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39484Locate, reach and grasp, visual guided grasping
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39536Planning of hand motion, grasping
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39542Plan grasp points, grip matrix and initial grasp force
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Definitions

  • the present invention relates to an apparatus and method for generating a program for an industrial robot, and more particularly to generating a program for aligning parts supplied in bulk using a robot.
  • Patent Document 1 As a conventional method for generating a program for an industrial robot, there is known a method of measuring a moving path of a part demonstrated by an operator three-dimensionally and outputting a robot program for moving the part along the moving path. At the time of program output, the feasibility of the route is also determined in consideration of the physicality of the robot. If the movement is impossible with a single robot, a change of hand with multiple arms is also output as a program candidate (Patent Document 1).
  • a program generation method for searching for a movement path of a part in a two-dimensional plane The work area is expressed in two dimensions as seen from above, and is divided into areas of appropriate size. The initial position and final position of the part are selected from the divided areas. The reachability of the robot arm is determined in each area, and continuous areas reachable by the robot arm from the initial position to the final position are extracted and set as a movement path. If the movement path cannot be found with one robot arm, the parts are transferred between the plurality of robot arms (Patent Document 2).
  • a robot teaching operation is required for each movement path.
  • the target position for movement needs to be set as a teaching point by performing actual matching of teaching.
  • this teaching operation requires an accuracy of 1 millimeter or less.
  • the posture of the robot hand is included, it is necessary to match with 6 degrees of freedom. If the setting and the confirmation are combined, it is a troublesome work that takes time. Even in the work using the vision sensor, the basic gripping method is generally set by teaching.
  • the present invention has been made to solve the above-described problems. For parts supplied in a plurality of postures, a robot program in which teaching points are shared in a movement path for each posture is generated. To do.
  • An apparatus for generating a robot program includes a stable posture calculation unit that calculates a stable posture in which a component is stable on a plane from the three-dimensional shape data of the component, and a component from the three-dimensional data and the three-dimensional shape data of the hand.
  • System configuration data including information on the connection destination of the hand, a stable posture, from a combination group of a gripping method calculating unit that calculates a gripping method to grip with, a gripping method by the robot, a gripping method by other than the robot, and a stable posture, And a combination allowance calculation unit that calculates a combination in which the hand does not interfere based on a gripping method, a changeover route calculation unit that calculates a component change path using the combination calculated by the combination allowance calculation unit, and a component loading posture Based on the posture data that specifies the alignment posture, the route with the smallest number of teaching points is calculated as a route group from the transfer route.
  • a path group calculator that is obtained by a program generating section for generating, based robot programs path group.
  • the robot program generation method includes a stable posture calculation step of calculating a plurality of stable postures in which a part is stable on a plane from the three-dimensional shape data of the part, and the three-dimensional data and three-dimensional shape data of the hand.
  • System configuration data including information on the connection destination of the hand from a combination group of a gripping method calculation step for calculating a gripping method for gripping a part with a hand, a gripping method by the robot, a gripping method by a means other than the robot, and a stable posture; Based on a stable posture and a gripping method, a combination propriety calculation step for calculating a combination that does not interfere with the hand, a changeover route calculation step for calculating a component relocation route using the combination calculated in the combination propriety calculation step, and a component The number of teaching points from the transfer path is minimized based on the posture data that specifies the input posture and the alignment posture.
  • FIG. 1 is a configuration diagram of an example of a robot system according to the first embodiment of the present invention.
  • FIG. 2 is a functional configuration diagram of the program generation apparatus according to Embodiment 1 of the present invention.
  • FIG. 3 is a diagram for explaining the hardware configuration of the present invention.
  • FIG. 4 is a diagram illustrating an example of the combination permission / inhibition result output by the combination permission / inhibition calculation unit according to Embodiment 1 of the present invention. It is a figure which shows an example of the combination explaining the frequency
  • FIG. 6 is an example of a flowchart of the robot program output by the program generation unit according to the first embodiment of the present invention.
  • FIG. 6 is an example of a flowchart of the robot program output by the program generation unit according to the first embodiment of the present invention.
  • FIG. 7 is a functional configuration diagram of the program generation device according to the second embodiment of the present invention.
  • FIG. 8 is a functional configuration diagram of the program generation device according to the third embodiment of the present invention.
  • FIG. 9 is a diagram illustrating an example of a component at a work position that is a plane.
  • FIG. 10 is a functional configuration diagram of the program generation device according to the fourth embodiment of the present invention.
  • FIG. 11 is a functional configuration diagram of the program generation device according to the fifth embodiment of the present invention.
  • FIG. 1 is a schematic diagram of an example of a robot system that aligns loosely stacked parts 170, which is a typical application of the present invention.
  • the robot 100 is a widespread vertical articulated robot 100.
  • the parts supply stand 110 is a stand to which parts 170 stacked in bulk are supplied.
  • the component supply method includes a method of exchanging in units of pallets packed with the components 170, and a method of combining them.
  • the temporary placement stand 120 From the parts supply stand 110, using the recognition result of the three-dimensional vision sensor 150, only one part 170 is taken out to the temporary placement stand 120.
  • a take-out method a part in which a finger of a robot hand (sometimes simply referred to as “hand”) can be inserted is derived, the finger is inserted into the insertable area, and the finger 170 is closed to hold the part 170.
  • the method of taking it out is known.
  • the means is not limited.
  • the position / orientation is a technical term in the field of robots that means position and orientation, and sets a rigid body in a three-dimensional space.
  • the position is a point that is set as a representative point such as the center of gravity, and is represented by a coordinate value.
  • the posture can be determined by, for example, a rotation transformation matrix.
  • the posture of the part 170 is stabilized in any posture of a finite number of posture patterns except for a special part shape.
  • the special part shape refers to a part 170 having a shape whose posture can be continuously changed without changing the grounding surface, for example, a part having a stable shape with a spherical or cylindrical side surface grounded. 170.
  • the posture of the part shape placed on the plane by the temporary placement table 120 is limited to a finite number, and the height of the part 170 is constant for each posture of the part shape, so the two-dimensional vision sensor 160 can recognize the position and posture. It becomes possible.
  • the robot 100 is moved to the predetermined final posture of the component 170 on the alignment table 140. If it is not possible to move directly to the alignment table 140 in the final posture due to the gripping method, the robot 100 uses the holding jig 130 that can grip the component 170 and then moves the component 170 to the final posture. It moves to the alignment stand 140 so that it may become. It should be noted that not only the holding jig 130 but also the parts 170 may be re-placed on the temporary table 120 and changed.
  • FIG. 2 is a functional configuration diagram of the program generation device according to the first embodiment.
  • the hand three-dimensional data 200 includes three-dimensional data related to the shape of a hand that grips the component 170 such as a robot hand and a holding jig 130 used in the target system.
  • the hand three-dimensional data 200 may include additional information related to the hand such as designation of a gripping part of the hand, movement direction of the finger, and direction of the hand.
  • the part shape three-dimensional data 210 includes three-dimensional data related to the shape of the part 170 handled by the target system.
  • additional information related to the component 170 such as a grippable area of the component 170 may be included.
  • FIG. 3 is a diagram for explaining the hardware configuration.
  • the hand three-dimensional data 200 and the part shape three-dimensional data 210 are databases and are stored in a storage device 301 such as a hard disk.
  • the input is a gripping method by teaching by an operator.
  • the gripping method calculation unit 220 calculates a gripping method of the component 170 for each hand from the hand three-dimensional data 200 and the component shape three-dimensional data 210, and outputs the gripping method.
  • Various methods have been proposed as a method of calculating the gripping method of the component 170, such as a method of confirming whether the center of gravity exists in the region surrounded by the contact point between the hand and the component 170.
  • the gripping method calculation unit 220 may calculate the gripping method according to an input from the operator. As a method for the operator to input, there are a method of providing a three-dimensional display of the component 170 and the hand and a means for moving the hand within the three-dimensional display.
  • the gripping method calculation unit 220 outputs the gripping method of the component 170 with each hand from the input of the hand three-dimensional data 200 and the component shape three-dimensional data 210. As described above, the gripping method calculation unit 220 calculates one or more gripping methods for gripping the component 170 with the hand from the three-dimensional data and the three-dimensional shape data of the hand of the robot 100.
  • the gripping method is not only a narrow concept such as a method of gripping the component 170 but also a broad concept including gripping the component 170 and taking a proper gripping posture of the hand. Therefore, the gripping method includes the concept of gripping posture as a technical term throughout the entire sentence.
  • the stable posture calculation unit 230 calculates all stable postures when the component 170 is placed on a plane from the component shape three-dimensional data 210, and outputs the calculated stable posture data.
  • the stable posture calculation unit 230 calculates a plurality of stable postures.
  • As a calculation method of the stable posture for example, when a convex polyhedron having a minimum volume surrounding the component 170 is derived and the center of gravity is projected onto a plane including each surface, the projected posture is within the surface of the convex polyhedron. There is a way to do it.
  • the stable posture is a posture in which the component 170 can maintain static stability.
  • the method is not limited as long as all component stable posture data that can be taken by the component 170 is output from the component shape three-dimensional data 210.
  • the stable posture calculation unit 230 calculates a stable posture in which the component 170 is stable on a plane from the three-dimensional shape data of the component 170.
  • the system configuration data 240 includes at least information on the equipment to which the hand is connected, and may further include information on a destination that can be accessed by each equipment, and restrictions on the environment of the workplace.
  • the hand attached to the robot 100 can access all equipment such as the component supply table 110, the temporary storage table 120, the transfer jig 130, and the alignment table 140.
  • the hand attached to the holding jig 130 cannot access other equipment and needs to be accessed from the hand attached to the robot 100.
  • the system configuration data 240 is a database and is stored in the storage device 301.
  • the combination availability calculation unit 250 will be described. The method of gripping the component 170 by the hand from the gripping method calculating unit 220, all the component stable posture data that the component 170 can take from the stable posture calculating unit 230, and the information of the equipment to which the hand is connected from the system configuration data 240, The result is input to the combination availability calculation unit 250.
  • the combination availability calculation unit 250 calculates whether or not holding can be realized in the combination of the gripping methods of the robot 100 and the holding jig 130, and whether or not the combination can be realized in the combination of the gripping method and the stable posture of the robot 100. Output.
  • the component 170 can be placed in the stable posture using the gripping method.
  • the combination availability calculation unit 250 is based on the system configuration data 240 including the information of the connection destination of the hand, the stable posture, and the gripping method from the group of combinations of either the stable posture and the gripping method and the gripping method.
  • the combination possibility calculation unit 250 calculates a combination in which the hand does not interfere from the combination of one of the stable posture and the gripping method and the gripping method.
  • FIG. 4 is a diagram illustrating an example of the combination availability result output by the combination availability calculator 250. It shows whether or not the part 170 can be transferred from the state described in the row to the state described in the column, that is, whether the part 170 can be moved directly.
  • Grasping methods 1, 2, and 3 are gripping methods of the hand connected to the robot 100, and gripping methods 4 and 5 are gripping methods of the hand connected to the holding jig 130.
  • the stable postures 1, 2, and 3 are stable postures on the plane of the component 170, and are common to the temporary placement table 120 and the alignment table 40.
  • the robot 100 is composed of one robot 100 having one arm.
  • the sixth to eighth lines represent the case where the robot 100 grips the component 170 from the temporary placement table 120, and the sixth to eighth columns represent the case where the robot 100 places the component 170 on the alignment table 140. For example, if there are two robots 100, the two robots 100 are distinguished and a gripping method corresponding to the added robot 100 is added.
  • a combination that can directly change the component 170 is “ ⁇ ”, and a combination that cannot interfere with and directly change the component 170 is “X”. . Further, in the combination of the gripping method of the robot 100 and the stable posture of the temporary placing table 120 or the alignment table 140, the combination that can grip the component 170 directly is “ ⁇ ”, and the component 170 is directly gripped by interfering with the plane. Combinations that cannot be marked are “x”.
  • the parts 170 may be directly changed between the plurality of robots 100. More specifically, if the gripping method A of one robot 100 and the gripping method B of the other robot can directly change the parts 170 without interference, “ ⁇ ” is given. Similarly, even in the case of a single robot 100, when there are a plurality of arms, a gripping method is defined for each arm.
  • the gripping method of the holding jig 130 cannot change directly. Furthermore, it cannot move directly from the state in which the component 170 is gripped by the holding jig 130 to the stable posture of the alignment table 140. Similarly, the component 170 placed on the temporary placement table 120 does not move directly to the holding jig 130 or the alignment table 140. From the above, all of 4 rows and 4 columns to 8 rows and 8 columns are “ ⁇ ”. In this way, even if it is considered as a combination, the part 170 cannot be directly changed, that is, the case where the part 170 cannot be directly moved without being changed is displayed as “x”, and when the combination is meaningless, “ -"
  • the movement is, for example, opening and closing of the hand nails and movement of the hand to the gripping position.
  • the direction of movement to the gripping position is simply the direction from the base of the hand to the tip, but the operator may set other than that.
  • the change-over route calculation unit 260 calculates all routes having the minimum number of movements in the route in which one of the combinations is in the initial state and the other is in the final state, from the combination availability result output by the combination availability calculation unit 250. And output as a switch route group.
  • FIG. 5 is a diagram illustrating an example of a combination for explaining the number of movements according to the first embodiment. More specifically, it is a diagram summarizing the minimum number of movements of the component 170 calculated by the transfer path calculation unit 260 in a combination of a gripping method and a stable posture.
  • the item of i row and j column expresses the minimum number of times of movement from the state of i to the state of j.
  • the sixth to eighth lines represent the movement of the temporary placement table 120 from the stable posture, and the sixth to eighth columns represent the movement of the alignment table 140 to the stable posture.
  • the number of movements is two. Since 6 rows and 6 columns are from the stable posture 1 of the temporary table 120 to the gripping method 1 and from the gripping method 1 to the stable posture 1 of the alignment table 140, the number of movements is two. 6 rows and 8 columns are from the stable posture 1 of the temporary table 120 to the gripping method 1, from the gripping method 1 to the gripping method 4, from the gripping method 4 to the gripping method 2, and from the gripping method 2 to the stable posture 3 of the alignment table 140. Therefore, the number of movements is 4 times. As described above, the number of movements is counted as the number of combinations (routes) of “ ⁇ ” in FIG. 4 that is the minimum.
  • the change route calculation unit 260 calculates all routes having the minimum number of movements in all combinations of the initial state and the final state, and outputs them as a change route group.
  • the route with the smallest number of movements is extracted, but a route with a short movement time may be extracted.
  • the movement time can be approximated by the number of movements.
  • the movement time becomes longer compared to a simple movement. In such a case, it is difficult to approximate the movement time only by the number of movements. Therefore, a route that realizes the minimum travel time and a route with a small difference from the travel time may be extracted.
  • the difference in movement time may be an absolute value such as how many seconds, or a percentage such as what percentage.
  • the transfer route calculation unit 260 calculates all routes in which the number of movements of the component 170 is the minimum in the route from the initial state to the final state of each combination.
  • the group of routes in which the number of movements of the component 170 is minimum does not necessarily include a route in which the movement time of the component 170 is minimized.
  • the transfer route calculation unit 260 may calculate not only the number of movements but the movement time, and may calculate all routes that can move within the predetermined movement time from the shortest movement time.
  • the predetermined travel time is an absolute value such as how many seconds with respect to the shortest travel time, or a percentage of what percentage of the shortest travel time.
  • information on the movement time is held instead of FIG. 5 or in combination with the information on the number of movements in FIG. In this way, the transfer route calculation unit 260 calculates the transfer route of the component 170 using the combination calculated by the combination availability calculation unit 250.
  • attitude data 270 both the input attitude data which is the attitude of the component 170 handled on the temporary placement table 120 and the alignment attitude data which is the attitude to be finally aligned on the alignment table 140 are set.
  • the attitude data 270 is a database of the input attitude data and the alignment attitude data of the component 170 and is stored in the storage device 301.
  • the route group calculation unit 280 selects an appropriate combination of routes from the replacement route group from the designated input posture to the final alignment state. Calculate and output as a route group.
  • suitable means, for example, a combination of routes that minimizes the number of teaching points. In other words, among the combinations in which “ ⁇ ” is filled in FIG.
  • the route group calculation unit 280 calculates, as the route group, the route having the minimum number of teaching points from the transfer route based on the input and alignment posture data that specifies the input posture and alignment posture of the component 170. become.
  • the program generation unit 290 generates and outputs a robot program that realizes the route group output by the route group calculation unit 280. Note that one route group that is an appropriate combination of routes output by the route group calculation unit 280 is not necessarily calculated.
  • the route group calculation unit 280 may output a plurality of route groups. In this case, the program generation unit 290 generates and outputs a robot program according to each route group. When a plurality of robot programs are generated, for example, what robot program is to be applied by the teaching worker may be appropriately selected.
  • the robot program expresses the movement of the robot 100 and the flow of signal processing.
  • the target position of the movement is generally handled as a position variable.
  • This position variable is input by the actual work according to the teaching work. For this reason, for example, 0 is input as the initial value for all the position variables, and the robot 100 cannot actually be operated.
  • the position variable used in the program is shared if it is the same target position even if it is a different movement route.
  • the target position for holding the stable posture 3 of the temporary placing table 120 by the holding method 2 of the robot 100 is shared as a common teaching point.
  • the same target position may be used, and they are shared as a common teaching point.
  • FIG. 6 is an example of a flowchart of a robot program output by the program generation unit 290.
  • Initialization S501 is a process executed only once when the robot program is started. Processing such as initialization of variables and parameters, movement to an initial position, and the like are performed.
  • the 3D vision sensor recognition process S502 is a process for recognizing the loosely stacked parts 170 of the parts supply stand 110 by the 3D vision sensor 150 and calculating a target position and orientation for the robot 100 to grip the parts 170.
  • taking out from the bulk stacking S503 is a process of taking out the parts 170 from the parts 170 in the bulk stacking state and putting them on the temporary placement table 120 based on the result of the three-dimensional vision sensor recognition S502. In order to simplify the explanation, it is assumed here that only one component 170 is taken out.
  • the 2D vision sensor recognition process S504 is a process in which the 2D vision sensor 160 recognizes the position and orientation of the component 170 installed on the temporary table 120.
  • the movement path selection S505 is a process of determining which stable posture the part 170 is based on the recognition result of the position and orientation of the part 170, and selecting a movement path from the temporary placement table 120 to the alignment table 140. .
  • This is a process of selecting a movement route starting from a stable posture recognized by the two-dimensional vision sensor 160 out of the route group output by the route group calculation unit 280.
  • the parts alignment S506 is a series of processes for moving the parts 170 on the temporary placement table 120 to the alignment table 140 along the selected movement path. After aligning the component 170 in the component alignment S506, the process returns to the three-dimensional vision sensor recognition process S502.
  • the process returns to the two-dimensional vision sensor recognition process S504 after the part alignment S506, and if the part 170 does not exist on the temporary placement table 120 as a result of the recognition, the three-dimensional vision is obtained. There is also a flow of returning to the sensor recognition process S502.
  • the present invention focuses on generating a movement program for the part 170 after the position and orientation of the part 170 are determined, and any program configuration around the movement program may be used.
  • the operator teaches the position variables used in the program output by the program generation unit 290, and uses the teaching points that the robot 100 can move to complete the operable robot program.
  • the robot system to be applied is limited, and the processing of each function in the invention is also limited.
  • the present invention is not limited to this.
  • a robot system using a plurality of robots 100 may be used.
  • the average alignment time per part 170 is extended. For example, in FIG. 5, in order to align the stable posture 1 of the temporary placing table 120 with the stable posture 3 on the aligning table 140, since the holding jig 130 is used, four movements are involved. If this process is pipelined by two robots 100, the entire system can be aligned in the same time as one robot 100 is aligned by two movements. Thus, if a plurality of robots 100 are used, the throughput of the system can be improved.
  • the accessible destinations (hand connection destinations) of each robot 100 set in the system configuration data 240 are different.
  • the robot 100 has access to all the tables (part supply table 110, temporary table 120, alignment table 140) and the transfer jig 130.
  • the connection destination of the hand of each robot 100 is different.
  • other robot 100 is added as an access destination in addition to the component supply table 110, the temporary storage table 120, the alignment table 140, and the transfer jig 130. Become.
  • As the system configuration data 240 information on the connection destination of these hands is required.
  • the combination availability calculation unit 250 considers the access destination of each hand and determines that combination is not possible for combinations that are not accessible.
  • the processing of the transfer route calculation unit 260 and the route group calculation unit 280 does not change.
  • the program generation unit 290 outputs a program for a plurality of robots 100, but the output is the same as the process for one robot 100.
  • the robot 100 system to be applied has been described on the assumption that the three-dimensional vision sensor 150 and the two-dimensional vision sensor 160 are fixed on the component supply stand 110 and the temporary placement stand 120, respectively.
  • the present invention is not limited to this, and the processing of the two-dimensional vision sensor 160 may be performed by the three-dimensional vision sensor 150 instead of using another hardware.
  • each camera (3D vision sensor 150, 2D vision sensor 160, etc.) may be mounted on a drive unit mounted in the sky instead of being fixed on the table, or can be mounted on the robot 100 and moved. It is good.
  • the present invention is applicable regardless of the installation configuration of these cameras.
  • the combination availability calculation unit 250 limited the combinations for determining availability based on the connection destination information of the hands included in the system configuration data 240. For example, in FIG. 4, the possibility of combination between the gripping method of the hand attached to the robot 100 and the gripping method of the hand attached to the holding jig 130 is not calculated.
  • the access destinations differ depending on the robots 100 to which they are connected, and the combination of inaccessibility (whether they can be changed) is naturally different from the case of FIG. Therefore, it may be possible to ignore the restriction of where it is connected and determine whether or not it is possible to use a combination of all gripping methods and stable postures.
  • the same hand is used by a plurality of devices in the system, there are cases where the number of combinations calculated for each hand is less than the calculation of whether or not the combination is possible for each hand with different connection destinations. .
  • the system configuration information is used for the first time by the transfer route calculation unit 260. This is because the transfer route calculation unit 260 needs the information of the hand connection destination because the accessible destination of the hand varies depending on the connection destination.
  • the stable posture calculation unit 230 may remove a very unstable stable posture from the stable posture. Even when a small external force is applied, a stable posture transitioning to another stable posture is excluded. For example, it is a stable posture in which an elongated part such as a pen is erected. In addition to the removal by the stable posture calculation unit 230, it may be excluded by the posture data 270.
  • a program including a movement path from the state in which the robot 100 grips the component 170 is output.
  • it is used in a system that grips the component 170 by a probabilistic method and recognizes the gripped state as an image.
  • a program may be generated using a combination of all initial states and final states as a movement path, or a combination of initial states and final states to be handled may be set in the attitude data 270.
  • the route group output by the route group calculation unit 280 may be presented to the worker, and the worker may select and correct the movement route.
  • output results and candidates may be presented to the worker, and the worker may select or modify.
  • the robot program generation device of the present invention has a gripping method calculation unit 220 that outputs a gripping method of the component 170 from the three-dimensional shape data of the hand and the component 170, and a stable posture on the plane of the component 170 from the three-dimensional shape data. 2 is calculated from the stable posture calculation unit 230 that outputs the stable posture of the component 170, the system configuration data 240 including at least the connection destination information of the hand, the gripping method of the component 170, and the stable posture of the component 170.
  • the interference of the hand in at least one of the combinations between the gripping methods and the combination between the gripping methods and one of the stable postures of the component 170 judges the interference of the hand in at least one of the combinations between the gripping methods and the combination between the gripping methods and one of the stable postures of the component 170, and output whether or not the combination is possible From the combination availability calculation unit 250 and the combination availability, at least one of the gripping method and the stable posture of the component 170 is selected. Based on the change path calculation unit 260 that calculates and outputs all the transfer paths and the posture data 270 that specifies the input attitude and the final alignment attitude of the component 170, the number of teaching points is minimized from the transfer path.
  • a route group calculation unit 280 that outputs a combination of routes as a route group, and a program generation unit 290 that outputs a robot program from the route group.
  • the robot program generation device of the present invention includes a stable posture calculation unit that calculates a stable posture in which a component is stable on a plane from the three-dimensional shape data of the component, and a component from the three-dimensional data and the three-dimensional shape data of the hand.
  • System configuration data including information on the connection destination of the hand from a group of combinations of a gripping method calculation unit for calculating a gripping method for gripping a hand by a hand, a gripping method by the robot, a gripping method by a means other than the robot, and a stable posture, Based on the posture and the gripping method, a combination availability calculation unit that calculates a combination in which the hands do not interfere, a change path calculation unit that calculates a component change path using the combination calculated by the combination availability calculation unit, Based on the posture data that specifies the throwing posture and the alignment posture, the route with the smallest number of teaching points from the transfer route is taken as a route group.
  • a route group calculation unit to be output and a program generation unit for generating a robot program based on the route group are provided, a robot program with a small number of teaching points is generated by sharing teaching points in a plurality of movement paths. be able to. Thereby, the adjustment man-hour of the teaching work by the operator can be reduced.
  • the combination possibility calculation unit calculates one or more combinations in which the hand does not interfere from a combination group of either one of the stable posture and the gripping method and the gripping method.
  • Embodiment 2 In the first embodiment, after the robot program is generated, the operator teaches teaching points. However, teaching point data may be generated by the program. Here, it demonstrates centering on difference with Embodiment 1. FIG. About the place where description is insufficient, it is the structure similar to Embodiment 1. FIG.
  • FIG. 7 is a functional configuration diagram of the program generation device according to the second embodiment of the present invention.
  • the same reference numerals denote the same or corresponding parts, and this is common to the entire text of the specification and all the drawings.
  • the form of the constituent elements appearing in the whole specification is merely an example, and is not limited to these descriptions.
  • the system configuration data 240 in addition to the information of the first embodiment, position information of the temporary placement table 120, the alignment table 140, and the holding jig 130 is set.
  • the system configuration data 240 includes, in addition to information on the connection destination of the hand, data on the work position where the hand works. These pieces of position information are set based on the robot 100 coordinate system and relative positions from the base position of the robot 100.
  • the teaching point output unit 600 calculates the teaching point used in the program output from the program generation unit 290 based on the coordinate system of the robot 100. First, the position at which the teaching point of the output program is the work is extracted from the route information.
  • the work position of the robot 100 is the temporary placement table 120, the alignment table 140, and the holding jig 130.
  • the position / orientation data of the robot 100 when the gripping method set by the path information is realized is calculated and output as a teaching point.
  • the teaching point output unit 600 is calculated by the processor 300, and the teaching point output unit 600 outputs a teaching point.
  • any of the position and orientation of the robot 100 that realizes the position of the hand may be output as a teaching point, or presented so that the operator can select from a plurality of teaching point candidates. May be.
  • the installation position and orientation of the component 170 are determined based on the position of the holding jig 130 and the gripping method of the holding jig 130.
  • the installation position of each robot 100 is included in the system configuration data 240, and the teaching point data is calculated at a relative position from the robot 100.
  • the position and orientation of at least one of the robots 100 during delivery is set by the system configuration data 240.
  • the teaching point data is output by the teaching point output unit 600, but may be output at a stage before the program generation unit 290.
  • the operator can output teaching point data by setting a work position and a gripping method. For this reason, if the gripping method is set by the gripping method calculation unit 220, the teaching point data can be output at an arbitrary request timing from the operator.
  • movement position data is set by the system configuration data 240, the position of the hand realizing the gripping method is calculated assuming that the part 170 is at the work position, and teaching point data is output.
  • teaching point data is output.
  • Providing the route teaching point output unit 600 has an effect of saving teaching work.
  • the robot program generation device of the present invention includes a stable posture calculation unit that calculates a stable posture in which a component is stable on a plane from the three-dimensional shape data of the component, and a component from the three-dimensional data and the three-dimensional shape data of the hand.
  • System configuration data including information on the connection destination of the hand from a group of combinations of a gripping method calculation unit for calculating a gripping method for gripping a hand by a hand, a gripping method by the robot, a gripping method by a means other than the robot, and a stable posture, Based on the posture and the gripping method, a combination availability calculation unit that calculates a combination in which the hands do not interfere, a change path calculation unit that calculates a component change path using the combination calculated by the combination availability calculation unit, Based on the posture data that specifies the throwing posture and the alignment posture, the route with the smallest number of teaching points from the transfer route is taken as a route group.
  • the combination possibility calculation unit calculates one or more combinations in which the hand does not interfere from a group of combinations of one of the stable posture and the gripping method and the gripping method.
  • Embodiment 3 Although the teaching point data is generated in the second embodiment, it may be determined whether or not the robot 100 can take the position and orientation at the teaching point, and the teaching point may be output. This is because the robot 100 may not be able to take the teaching position and posture (cannot be realized).
  • differences from the first and second embodiments, particularly, differences from the second embodiment will be mainly described. About the place where description is insufficient, it is the structure similar to Embodiment 1 and 2.
  • the robot 100 may not be able to take the teaching position and posture.
  • the joint angle of the robot 100 may be an angle that cannot be realized.
  • the movable area is usually limited depending on the joint of the robot 100.
  • this movable region is different for each robot 100, and is a constraint condition unique to the robot 100 that is scheduled to be used.
  • FIG. 8 is a functional configuration diagram of the program generation device according to the third embodiment of the present invention.
  • the teaching point determination unit 700 determines whether the robot 100 can realize the teaching position and orientation at the position to be the teaching point.
  • the teaching point determination unit 700 may be performed after the process of the combination possibility determination unit 250 in FIG.
  • the information related to the robot 100 includes system configuration data 240 including information on a connection destination of the hand and data on a work position where the hand works, a stable posture, and a gripping method.
  • the system configuration data 240 may include a unique constraint condition of the robot 100 that is scheduled to be used and, if necessary, a constraint due to the external environment.
  • the determination result of the teaching point determination unit 700 is output by the teaching point output unit 601.
  • a determination result of the teaching point determination unit 700 for example, when it is impossible (not possible), an error is output to the operator by the teaching point output unit 601, and when it can be realized (possible), a teaching point is output. Will do.
  • the teaching point determination unit 700 and the teaching point output unit 601 are calculated by the processor 300.
  • the system configuration data 240 includes information on the connection destination of the hand and data on the work position where the hand works, and the robot 100 teaches at a position that is a teaching point when the part 170 is at the work position. Since the teaching point determination unit 700 that determines whether or not the position and orientation can be obtained is provided, the feasibility of the system configuration can be verified in advance.
  • FIG. 9 is a diagram illustrating an example of the component 170 at a work position (for example, the temporary placement table 120) that is a plane.
  • FIG. 9 shows an example of a state in which the component 170 on the temporary placement table 120 is viewed from above. From FIGS. 9A to 9I, the component 170 is perpendicular to the plane on the temporary placement table 120 which is a plane. It is rotated every 45 degrees on the right side with a normal axis (normal line). By making one turn, the component 170 is in the same position in FIGS. 9A and 9I. 9A and 9I have the same installation angle rotated in a plane.
  • the teaching point determination unit 700 determines whether or not the robot 100 can realize the teaching position / posture at the position corresponding to the teaching point while rotating the part 170 at the work position specified by the system configuration data 240. Specifically, when the component 170 is put on the temporary table 120, the component 170 is rotated on an axis (normal line) perpendicular to the plane on the plane as shown in FIG. This is because in order to determine whether the robot 100 can always realize the position and orientation for gripping the component 170, it is necessary to determine by rotating the component 170 in a plane. It is determined whether or not the gripping method can be realized with the entire range of installation angles rotated in the plane.
  • the teaching point determination unit can take the teaching position and posture of the robot 100 over the entire range in which the part 170 is rotated by an axis (normal line) perpendicular to the plane. In this case, it will be judged as possible. If the determination is possible, the robot 100 can assume the teaching position and orientation in the entire range. Therefore, in the example of FIG. 9, the robot 100 naturally has any installation angle from (a) to (i). Can take the taught position and orientation. In this way, by determining whether or not the position and orientation of the robot 100 to be used can be realized, it is possible to obtain an effect of verifying the feasibility of the system configuration in advance.
  • the robot program generation device of the present invention includes a stable posture calculation unit that calculates a stable posture in which a component is stable on a plane from the three-dimensional shape data of the component, and a component from the three-dimensional data and the three-dimensional shape data of the hand.
  • System configuration data including information on the connection destination of the hand from a group of combinations of a gripping method calculation unit for calculating a gripping method for gripping a hand by a hand, a gripping method by the robot, a gripping method by a means other than the robot, and a stable posture, Based on the posture and the gripping method, a combination availability calculation unit that calculates a combination in which the hands do not interfere, a change path calculation unit that calculates a component change path using the combination calculated by the combination availability calculation unit, Based on the posture data that specifies the throwing posture and the alignment posture, the route with the smallest number of teaching points from the transfer route is taken as a route group.
  • the combination possibility calculation unit calculates one or more combinations in which the hand does not interfere from a group of combinations of one of the stable posture and the gripping method and the gripping method.
  • the teaching point determination unit determines that the robot can take the teaching position and orientation over the entire range when the part is rotated by an axis perpendicular to the plane. To do.
  • the robot program that shares teaching points in a plurality of movement paths and has a small number of teaching points.
  • the executability of the system configuration can be determined.
  • Embodiment 4 when there is a part 170 at a work position that is a plane, the teaching point determination unit 700 takes the teaching position and posture of the robot 100 over the entire range in which the part 170 is rotated by an axis perpendicular to the plane. Judgment was made when it was possible.
  • the robot 100 can take the teaching position and orientation within the range of a predetermined installation angle instead of the entire range in which the component 170 is rotated by an axis perpendicular to the plane, the robot 100 As a case where the teaching position / posture can be taken, a program combining a gripping method capable of realizing gripping may be generated.
  • FIG. 10 is a functional configuration diagram of the program generation device according to the fourth embodiment of the present invention.
  • the teaching point determination unit 701 is not the entire range in which the component 170 is rotated by an axis perpendicular to the plane, but is within the range of a predetermined installation angle, and the robot 100 is positioned at the teaching point. Is determined to be acceptable within a predetermined installation angle range. Regarding other points, there is no difference between the teaching point determination unit 701 and the teaching point determination unit 700.
  • the robot 100 calculates the rotation range of the component 170 that can realize the gripping method.
  • the teaching point determination unit 701 rotates the part 170 about an axis (normal line) perpendicular to the plane, and the robot 100 teaches and teaches at the position that becomes the teaching point.
  • the range of the installation angle that can be taken is calculated and determined to be acceptable.
  • the robot 100 rotates the component 170 about an axis perpendicular to the plane and changes the teaching position and orientation. If it can be taken, the teaching point determination unit 701 determines that it is possible within the range of the corresponding installation angle.
  • the range of the installation angle may correspond to a plurality of ranges within 360 degrees. Further, in the example of FIG. 9, the unit is 45 degrees, but this is only an example, and when determining the range of the installation angle, a finer unit or a larger unit can be set.
  • the grip route calculation unit 800 calculates a route for gripping the component 170 within the range of the installation angle permitted by the teaching point determination unit 701 with the hand. For each stable posture of the component 170, the installation angle at which the robot 100 can realize the position and orientation can be specified over the entire range of installation angles rotated in the plane, so that a combination of gripping methods can be calculated.
  • the gripping path calculation unit 800 calculates a path for gripping the part 170 having an installation angle that can be determined by the determination result of the teaching point determination unit 701 with the hand for the part 170 at the work position (for example, the temporary placement table 120) to be a plane. Then, the grip route is calculated. This makes it possible to generate a program for selecting a moving path using a gripping method that can be gripped as long as the component 170 has an installation angle within a predetermined range.
  • the teaching point output unit 602 functions in the same manner as the teaching point output units 600 and 601, and calculates and outputs the teaching point based on the coordinate system of the robot 100. Further, the teaching point output unit 602 may be anywhere after the process of the teaching point determination unit 701. The teaching point determination unit 701, the grip path calculation unit 800, and the teaching point output unit 602 are calculated by the processor 300.
  • the teaching point determination unit calculates a possible installation angle by rotating the part about an axis perpendicular to the plane, and the teaching point determination unit enables the installation. Since a grip path calculation unit that calculates a path for gripping an angled part with a hand is provided, even when a single gripping method cannot be used when the part 170 rotates at a plane work position, a plurality of gripping methods can be used. A corresponding program can be output in combination.
  • the robot program generation device of the present invention includes a stable posture calculation unit that calculates a stable posture in which a part is stable on a plane from the three-dimensional shape data of the part, and the 3 of the hand. From the group of combinations of a gripping method calculation unit that calculates a gripping method for gripping a part with a hand from the three-dimensional data and three-dimensional shape data, and a gripping method by the robot, a gripping method by other than the robot, and a stable posture, Based on the system configuration data including the above information, stable posture, and gripping method, a combination availability calculation unit that calculates a combination in which the hands do not interfere with each other, and a part change-over path is calculated using the combination calculated by the combination availability calculation unit.
  • a path group calculation unit for calculating a route number of points is minimum as path group, and a program generating unit that generates based on the robot program path group.
  • the combination possibility calculation unit calculates one or more combinations in which the hand does not interfere from a group of combinations of one of the stable posture and the gripping method and the gripping method.
  • the teaching point determination unit calculates an installation angle at which the robot can take the teaching position and orientation by rotating the part about an axis perpendicular to the plane
  • a grip path calculation unit that calculates a path for gripping the part with the hand is provided, so the part rotates at a flat work position.
  • Embodiment 5 requests maintenance work with respect to any one of the first to fourth embodiments after limiting the moving speed of the hand in accordance with the operation state of the robot. Something that generates a program is added.
  • the allowable failure refers to a failure that does not interfere with the work of aligning the other components 170, such as dropping the component 170 while moving.
  • FIG. 11 is a functional configuration diagram of the program generation device according to the fifth embodiment of the present invention.
  • a maintenance work program generation unit 900 and operation status data 910 are added to the first embodiment which is a basic embodiment.
  • the driving status data 910 is a database related to the driving status of the robot, and is stored in the storage device 301. Further, the calculation in the maintenance work program generation unit 900 is performed by the processor 300, and the maintenance work program generation unit 900 outputs a program.
  • the maintenance work program generation unit 900 generates and outputs a program for requesting maintenance work to the robot program output by the program generation unit 290.
  • the output of the maintenance work program generation unit 900 may be added to the program generated by the program generation unit 290 to output the program.
  • a program to be added when the operation history satisfies a certain condition, the moving speed of the robot 100 is limited to a safe speed and a maintenance work is requested.
  • the constant condition of the operation history is, for example, that a specified number of work failures have occurred since the previous maintenance work.
  • the work failure can be detected by, for example, recognizing the temporary table 120 by the two-dimensional vision sensor 160, monitoring the gripping component 170 by the force sensor of the robot 100, and confirming the alignment component 170 of the alignment table 140.
  • the safe speed is, for example, a moving speed during teaching work such that the hand synthesis speed is 250 mm / sec or less, and is a speed at which an operator can easily avoid a collision with the robot 100.
  • the maintenance work request is a request to the maintenance worker to remove the dropped component 170.
  • information such as the type of the component 170 when an operation failure is detected and an assumed drop location may be added.
  • the travel speed restriction may be released and the operation may be continued.
  • the robot program generation device includes a stable posture calculation unit that calculates a stable posture in which a part is stabilized on a plane from the three-dimensional shape data of the part, and grips the part with the hand from the three-dimensional data of the hand and the three-dimensional shape data.
  • System configuration data including information on the connection destination of the hand, stable posture, and gripping from a group of combinations of a gripping method calculating unit that calculates a gripping method to be performed, a gripping method by the robot, a gripping method by other than the robot, and a stable posture Based on the method, a combination propriety calculation unit that calculates a combination that does not interfere with the hand, a transfer route calculation unit that calculates a component change route using the combination calculated by the combination propriety calculation unit, and a component loading posture and alignment A route that calculates, as a route group, a route that minimizes the number of teaching points from the transfer route based on posture data that specifies the posture.
  • the combination possibility calculation unit calculates one or more combinations in which the hand does not interfere from a group of combinations of one of the stable posture and the gripping method and the gripping method.
  • 100 robot 110 parts supply table, 120 temporary storage table, 130 transfer jig, 140 alignment table, 150 3D vision sensor, 160 2D vision sensor, 170 parts, 200 hand 3D data, 210 part shape 3D data, 220 gripping method calculation unit, 230 stable posture calculation unit, 240 system configuration data, 250 combination availability calculation unit, 260 change path calculation unit, 270 posture data, 280 route group calculation unit, 290 program generation unit, 300 processor, 301 storage device , 600, 601, 602 teaching point output unit, 700, 701 teaching point determination unit, 800 grip path calculation unit, 900 maintenance work program generation unit, 910 operation status data.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Manipulator (AREA)
  • Numerical Control (AREA)

Abstract

ロボット(100)を用いてバラ積み供給された部品(170)を複数の移動経路で整列するプログラムについて、教示点を共有化したプログラムを生成する。部品(170)の3次元形状データから部品(170)が平面上で安定する安定姿勢を算出し、ハンドで把持する把持方法を算出し、ハンドの接続先の情報を含むシステム構成データ(240)、把持方法と安定姿勢との組合せ群からハンドが干渉しない組合せを算出する組合せ可否算出部(250)と、算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部(260)と、部品(170)の投入姿勢及び整列姿勢を指定する姿勢データ(270)に基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部(280)と、ロボット(100)のプログラムを経路群に基づいて生成するプログラム生成部(290)とを備える。

Description

ロボットプログラムの生成装置及び生成方法
 この発明は、産業用ロボットのプログラムを生成する装置及びその方法に関するものであり、特に、ロボットを用いてバラ積み供給された部品を整列するプログラムを生成するものである。
 従来の産業用ロボットのプログラム生成方法としては、作業者がデモンストレーションした部品の移動経路を3次元計測し、その移動経路で部品を移動させるロボットプログラムを出力する方法が知られている。プログラム出力時には、ロボットの身体性を考慮し、経路の実現可否も判定する。また、単体のロボットで移動が不可能な場合には、複腕による持ち替えも、プログラムの候補として出力する(特許文献1)。
 部品の移動経路を2次元平面内で探索するプログラム生成方法も知られている。作業エリアを上空から見た2次元で表現し、適当なサイズのエリアに分割する。部品の初期位置と最終位置とを分割されたエリアから選択する。各エリアでロボットアームの到達可否を判定し、初期位置から最終位置までの連続した、ロボットアームが到達可能なエリアを抽出して移動経路とする。一つのロボットアームで移動経路が見つからない場合には、複数のロボットアーム間で部品の持ち替えを行う(特許文献2)。
特開2015-054378 特開2015-058492
 このようなプログラムの生成方法においては、移動経路毎にロボットの教示作業が必要になる。産業用ロボットでは、移動の目標位置は、教示という現物合わせを行い、教示点として設定する必要がある。ロボットハンドと部品の形状によっては、この教示作業は1ミリメータ以下の精度が必要な作業である。また、ロボットハンドの姿勢を含めると6自由度で合わせる必要があり、設定と確認とを合わせると時間のかかる煩わしい作業である。ビジョンセンサを利用した作業においても、一般的には、基本となる把持方法は教示で設定している。
 これに対して、複数の移動経路を設定する場合においても、教示点を共通化して、教示作業の負荷を低減したいという課題がある。特に、近年のロボットシステムにおいては、バラ積み供給された部品への対応も求められており、部品の姿勢及び把持方法が複数あることから、移動経路が増加している。
 この発明は、上記のような問題点を解決するためになされたものであり、複数の姿勢で供給される部品について、それらの姿勢毎の移動経路において、教示点を共通化したロボットプログラムを生成するものである。
 この発明に係るロボットプログラムの生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部とを備えたものである。
 また、この発明に係るロボットプログラムの生成方法は、部品の3次元形状データから部品が平面上で安定する安定姿勢を複数算出する安定姿勢算出工程と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出工程と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出工程と、組合せ可否算出工程で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出工程と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出工程と、ロボットのプログラムを経路群に基づいて生成するプログラム生成工程とを備えたものである。
 本発明によれば、複数の移動経路において教示点を共有した、教示点数の少ないロボットプログラムを生成することができる。
図1は本発明の実施の形態1によるロボットシステムの一例の構成図である。 図2は本発明の実施の形態1によるプログラム生成装置の機能構成図である。 図3は本発明のハードウェア構成を説明するための図である。 図4は本発明の実施の形態1による組合せ可否算出部が出力する組合せ可否結果の例を示す図である。 本発明の実施の形態1による移動回数を説明する組合せの一例を示す図である。 図6は本発明の実施の形態1によるプログラム生成部が出力するロボットプログラムのフローチャートの例である。 図7は本発明の実施の形態2によるプログラム生成装置の機能構成図である。 図8は本発明の実施の形態3によるプログラム生成装置の機能構成図である。 図9は平面となる作業位置にある部品の例を示す図である。 図10は本発明の実施の形態4によるプログラム生成装置の機能構成図である。 図11は本発明の実施の形態5によるプログラム生成装置の機能構成図である。
実施の形態1.
 図1は本発明の代表的な適用先である、バラ積み部品170を整列させるロボットシステムの一例の模式図である。ロボット100は、垂直多関節型ロボット100で広く普及しているものである。部品供給台110は、バラ積みされた部品170が供給される台である。部品供給方法としては、部品供給台110に固定されたパレットに部品170が順次供給される方法の他に、部品170が詰め込まれたパレット単位で交換する方法、及びそれらを組合せた方法がある。
 部品供給台110からは3次元ビジョンセンサ150の認識結果を利用して、部品170を一つだけ仮置き台120に取り出す。取り出し方法としては、ロボットハンド(単に「ハンド」と称することもある。)の指が挿入可能な領域を導出して、挿入可能な領域に指を挿入して指を閉じることで部品170を把持して取り出す方法が知られている。他にも、部品170の全体又は一部の特徴部の位置姿勢から、把持位置を計算する方法もある。ここでは、部品供給台110上の部品170同士が接触しているバラ積みの状態から、部品170同士が接触していない状態で、部品170を仮置き台120に置ければ、その手段は問わない。ここで、位置姿勢とは、位置及び姿勢を意味するロボット分野の技術用語であり、剛体を3次元空間上に設定するものである。例えば、位置とは重心など代表点となる1点を設定し、座標値で表現されるものである。姿勢とは、例えば回転変換行列で決めることができるものである。
 仮置き台120上の平面に部品170を置くと、特殊な部品形状を除き、部品170の姿勢は有限個の姿勢パターンの何れかの姿勢で安定する。ここで、特殊な部品形状とは、接地面を変えることなく連続的に姿勢を変更できる形状を有する部品170をいい、例えば、球面又は筒状の側面を接地した状態で安定する形状を有する部品170である。仮置き台120で平面上に置かれた部品形状の姿勢は有限個に限定され、また部品形状の姿勢毎に部品170の高さも一定になるので、2次元ビジョンセンサ160で位置姿勢の認識が可能になる。
 その後は、2次元ビジョンセンサ160で高精度に部品170の位置姿勢を認識し、整列台140上の予め決められた部品170の最終姿勢に、ロボット100が移動させる。把持方法の関係から最終姿勢で整列台140に直接移動させることができない場合には、部品170を把持可能な持ち替え治具130を利用して、ロボット100が部品170を持ち替えてから、最終姿勢となるように整列台140に移動させる。なお、持ち替え治具130だけでなく、仮置き台120に部品170を置き直して持ち替えてもよい。
 図2は実施の形態1によるプログラム生成装置の機能構成図である。ハンド3次元データ200には、対象のシステムで使用するロボットハンドと持ち替え治具130といった、部品170を把持するハンドの形状に関する3次元データが含まれる。ここで、ハンド3次元データ200には、ハンドの把持部の指定、指の移動方向、ハンドの向き等といった、ハンドに関する付加情報が含まれてもよい。
 部品形状3次元データ210には、対象のシステムで扱う部品170の形状に関する3次元データが含まれる。こちらにも、部品170の把持可能領域等の部品170に関する付加情報が含まれてもよい。図3はハードウェア構成を説明するための図である。ハンド3次元データ200及び部品形状3次元データ210は、データベースであり、ハードディスクなどの記憶装置301に記憶されている。例えば、入力は作業者による教示による把持方法である。
 把持方法算出部220は、ハンド3次元データ200と部品形状3次元データ210とから、各ハンドでの部品170の把持方法を算出して、その把持方法を出力する。部品170の把持方法を算出する方法としては、ハンドと部品170との接触点で囲まれる領域に重心位置が存在するかを確認する方法等、様々な方法が提案されている。また、把持方法算出部220は、作業者からの入力に従って把持方法を算出してもよい。作業者に入力させる方法としては、部品170とハンドとの3次元表示と、その3次元表示内でのハンドの移動手段を提供する方法等がある。何れの方法にせよ、把持方法算出部220は、ハンド3次元データ200と部品形状3次元データ210との入力から、各ハンドでの部品170の把持方法を出力する。このように、把持方法算出部220は、ロボット100のハンドの3次元データ及び3次元形状データから部品170をハンドで把持する把持方法を一つ以上、算出する。なお、把持方法とは、部品170を把持する方法といった狭義の概念だけでは無く、部品170を把持してハンドが適切な把持姿勢をとることを含めて広義の概念である。よって、全文を通じて把持方法には、技術用語としての把持姿勢の概念も含んでいる。
 安定姿勢算出部230は、部品形状3次元データ210から、部品170を平面に置いた時の安定姿勢を全て算出して、部品安定姿勢データとして出力する。安定姿勢算出部230は、複数の安定姿勢を算出することになる。安定姿勢の算出方法としては、例えば、部品170を囲む最小体積の凸多面体を導出し、各面を含む平面に重心を射影した時に、射影した点が凸多面体の表面内にあれば安定姿勢とする方法がある。ここで、安定姿勢とは、部品170が静的な安定性を保つことができる姿勢のことである。部品形状3次元データ210から、部品170が取り得る全ての部品安定姿勢データが出力されれば、その方法は問わない。このように、安定姿勢算出部230は、部品170の3次元形状データから部品170が平面上で安定する安定姿勢を算出する。
 システム構成データ240は、少なくともハンドが接続される設備の情報が含まれ、加えて、各設備がアクセスできる先方の情報、さらには作業場の環境による制約等が含まれていてもよい。例えば、ロボット100に取付けられたハンドは、部品供給台110、仮置き台120、持ち替え治具130、整列台140といった全ての設備にアクセスが可能である。一方、持ち替え治具130に取付けられたハンドは他の設備にアクセスすることはできず、ロボット100に取付けたハンドからアクセスされる必要がある。システム構成データ240は、データベースであり、記憶装置301に記憶されている。
 組合せ可否算出部250について説明する。把持方法算出部220からハンドによる部品170の把持方法と、安定姿勢算出部230から部品170が取り得る全ての部品安定姿勢データと、システム構成データ240からハンドが接続される設備の情報とが、組合せ可否算出部250に入力される。組合せ可否算出部250は、ロボット100と持ち替え治具130との把持方法の組合せにおける持ち替え実現可否と、ロボット100の把持方法と安定姿勢との組合せにおける把持実現可否を算出して、組合せ可否結果として出力する。
 持ち替え実現可否の算出では、ロボット100に接続されたハンドの把持方法と、持ち替え治具130に接続されたハンドの把持方法との組合せにおいて、2つのハンドが干渉しなければ、持ち替え可能と判断する。逆に、ハンドが干渉する場合には、持ち替え不可と判断する。また、把持実現可否の算出では、ロボット100に接続されたハンドの把持方法と、安定姿勢との組合せにおいて、部品170が接地している平面にハンドが干渉しなければ、把持可能と判断する。逆に、干渉する場合には把持不可と判断する。把持可能と判定された安定姿勢と把持方法との組合せでは、その把持方法を用いて、その安定姿勢で部品170を置くことも可能である。このように、組合せ可否算出部250は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群から、ハンドの接続先の情報を含むシステム構成データ240、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを一つ以上、算出することになる。換言すれば、組合せ可否算出部250は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せからハンドが干渉しない組合せを算出する
 図4は組合せ可否算出部250が出力する組合せ可否結果の例を示す図である。行に記載の状態から、列に記載の状態へ部品170の持ち替え、すなわち、部品170の移動が直接できるか否かを示している。把持方法1、2、3はロボット100に接続されたハンドの把持方法、把持方法4、5は持ち替え治具130に接続されたハンドの把持方法である。安定姿勢1、2、3は部品170の平面上での安定姿勢であり、仮置き台120と整列台40とで共通している。
 ここでは、アームを一つ持つロボット100が1台で構成されているロボットを前提にしている。6行目から8行目は仮置き台120からロボット100が部品170を把持する場合を表し、6列目から8列目は整列台140にロボット100が部品170を置く場合を表している。なお、例えば、ロボット100が2台であれば、2台のロボット100を区別して、追加されたロボット100に対応した把持方法が追加されることになる。
 ロボット100の把持方法と持ち替え治具130の把持方法との間で、部品170を直接持ち替え可能な組合せは「○」とし、干渉して部品170を直接持ち替えることができない組合せは「×」としている。また、ロボット100の把持方法と仮置き台120又は整列台140の安定姿勢との組合せにおいて、部品170を直接把持可能な組合せは「○」とし、平面に干渉して部品170を直接把持することができない組合せは「×」としている。
 例えば、ロボット100が複数ある場合には、複数のロボット100間で部品170を直接持ち替えることもある。より具体的には、一方のロボット100の把持方法Aと他方のロボットの把持方法Bとで、干渉せずに部品170を直接持ち替えることができれば、「○」となる。同様に、一台のロボット100であっても、アームが複数ある場合には、アーム毎に把持方法を規定することになる。
 また、持ち替え治具130は複数あってもよいが、持ち替え治具130の把持方法が直接変化することはあり得ない。さらに、持ち替え治具130で部品170が把持された状態から直接、整列台140の安定姿勢に移動することはあり得ない。同様に、仮置き台120に置かれた部品170が持ち替え治具130又は整列台140に直接移動することもない。以上のことから、4行4列から8行8列までは全て「-」となっている。このように、組合せてとしては考えられても、部品170を直接持ち替えることができない、すなわち、部品170が持ち替えずに直接移動できない場合を「×」として表示し、組合せとして意味がない場合は「-」としている。
 また、把持した時のハンド間の干渉に限らずに、把持するまでの移動時の干渉を考慮してもよい。移動とは、例えば、ハンドの爪の開閉、把持位置までのハンドの移動である。把持位置までの移動方向は、単純にはハンドの基部から先端方向であるが、それ以外にも作業者が設定してもよい。
 持ち替え経路算出部260では、組合せ可否算出部250が出力する組合せ可否結果から、各組合せの一方を初期状態に、もう一方を最終状態とする経路において、移動回数が最小となる経路を全て算出して、持ち替え経路群として出力する。
 図5は実施の形態1による移動回数を説明する組合せの一例を示す図である。より具体的には、把持方法及び安定姿勢の組合せにおける、持ち替え経路算出部260で算出される部品170の最小の移動回数を纏めた図である。i行j列の項目は、iの状態からjの状態までの最低移動回数を表現している。6行目から8行目は、仮置き台120の安定姿勢からの移動を表し、6列目から8列目は整列台140の安定姿勢への移動を表している。
 ここで、図5の移動回数の数え方について説明する。図4と図5とを比較すると、図4で組合せが「○」となっている箇所は、部品170を持ち替えることなく直接、移動することができるので、図5では全て移動回数は1回になっている。また、把持方法1から把持方法1へのように同じ把持方法の場合、部品170は移動しないことになるので、移動回数は0回になっている。一方、仮置き台120の安定姿勢1から整列台140の安定姿勢1へとなる組合せ(図4では「-」の箇所)では、例えば、仮置き台120の安定姿勢1から把持方法1へ、把持方法1から整列台140の安定姿勢1へと、図4で組合せが「○」となっている箇所を2回介することで、部品170を移動させることができるので、移動回数は2回となる。さらに、図4で「×」となっている箇所でも、「○」となっている組合せ(経路)を複数回介することで、部品170を移動させることができる。
 例えば、1行2列目は、把持方法1から把持方法4へ、把持方法4から把持方法2へと至るので、移動回数としては2回となる。6行6列は、仮置き台120の安定姿勢1から把持方法1へ、把持方法1から整列台140の安定姿勢1へと至るので、移動回数としては2回となる。6行8列は、仮置き台120の安定姿勢1から把持方法1へ、把持方法1から把持方法4へ、把持方法4から把持方法2へ、把持方法2から整列台140の安定姿勢3に至るので、移動回数としては4回となる。以上のように、移動回数の数え方は、最小となる図4の「○」の組合せ(経路)の回数となる。
 最小の移動回数を実現する経路は複数ある。例えば、6行8列は、上記の他に、仮置き台120の安定姿勢1から把持方法3、把持方法5、把持方法2と順番に経由して、整列台140の安定姿勢3に至るので、経路が異なるが、移動回数としては同じ4回となる。持ち替え経路算出部260では、全ての初期状態と最終状態との組合せにおいて、最小の移動回数となる全ての経路を算出して、持ち替え経路群として出力する。
 ここで、移動回数が最小となる経路を抽出しているが、移動時間が短くなる経路を抽出してもよい。各移動が単純で、ロボット100の移動時間がどの移動時間でも殆ど同じ場合には、移動回数で移動時間を近似することができる。ところが、複雑な移動が含まれる場合、単純な移動の場合と比較して移動時間がより大きくなる。このような場合には、移動回数だけでは移動時間を近似することは困難である。そこで、最小の移動時間を実現する経路と、その移動時間からの差が小さい経路を抽出してもよい。移動時間の差は、何秒といった絶対値でも良いし、何%といった割合でもよい。
 持ち替え経路算出部260は、各組合せの初期状態から最終状態までの経路において、部品170の移動回数が最小となる経路を全て算出するものである。前段落でも説明したように、部品170の移動回数が最小となる経路の群が、必ずしも部品170の移動時間が最小となる経路を含んでいるとは限らない。このため、持ち替え経路算出部260は、移動回数ではなく、移動時間を算出して、最短の移動時間から所定の移動時間内に移動できる経路を全て算出するものでもよい。ここで、所定の移動時間とは、最短の移動時間に対して何秒といった絶対値であったり、最短の移動時間の何%といった割合であったりする。また、この場合、図5の代わりに、又は図5の移動回数の情報と組み合わせて、移動時間の情報を持つことになる。このように、持ち替え経路算出部260は、組合せ可否算出部250で算出された組合せを用いて部品170の持ち替え経路を算出することになる。
 姿勢データ270は、仮置き台120上で取扱う部品170の姿勢である投入姿勢データと、最終的に整列台140上で整列させる姿勢である整列姿勢データの両方が設定されている。姿勢データ270は、部品170の投入姿勢データ及び整列姿勢データのデータベースであり、記憶装置301に記憶されている。
 経路群算出部280は、姿勢データ270のデータ及び持ち替え経路算出部260が算出する経路を基に、指定された投入姿勢から最終的な整列状態へ至る持ち替え経路群から、適切な経路の組合せを経路群として算出して出力する。ここで適切であるとは、例えば、教示点の数が最小となる経路の組合せのことをいう。別の言葉で表現すると、図4で「○」が埋められている組合せの内、使用される組合せが最小となる経路の組合せである。このように、経路群算出部280は、部品170の投入姿勢及び整列姿勢を指定する投入及び整列姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出することになる。
 プログラム生成部290では、経路群算出部280が出力する経路群を実現するロボットプログラムを生成して出力する。なお、経路群算出部280が出力する適切な経路の組合せである経路群は、1つが算出されるとは限らない。経路群算出部280が複数の経路群を出力することもあり、この場合、プログラム生成部290では、それぞれの経路群にあわせたロボットプログラムを生成して出力することになる。複数のロボットプログラムが生成される場合には、例えば、教示作業者がどのロボットプログラムを適用するか、適宜選択すればよい。
 把持方法算出部220、安定姿勢算出部230、組合せ可否算出部250、持ち替え経路算出部260、経路群算出部280、及びプログラム生成部290での演算は、図3のプロセッサ300で演算されるものであり、プログラム生成部290はプログラムを出力することになる。
 ロボットプログラムは、ロボット100の移動及び信号処理の流れを表現するものであり、例えば、移動の目標位置は位置変数として扱われるのが一般的である。この位置変数は教示作業によって現物合わせで入力される。このため、位置変数は、例えば、初期値として全て0が入力されており、実際にロボット100を運転させることはできないものである。
 本発明では、プログラムで利用されている位置変数は、異なる移動経路であっても、同じ目標位置であれば共有される。図4及び図5を用いた例では、仮置き台120の安定姿勢3から整列台140の安定姿勢1に移動させる移動経路と、仮置き台120の安定姿勢3から整列台140の安定姿勢3に移動させる移動経路とでは、どちらの移動経路にも含まれるものとして、仮置き台120の安定姿勢3をロボット100の把持方法2で把持する目標位置は、共通の教示点として共有する。また、ロボット100の把持方法1から持ち替え治具130の把持方法4に部品170を渡す時のロボット100の目標位置と、持ち替え治具130の把持方法4からロボット100の把持方法1に部品170を渡す時のロボット100の目標位置とでは、作業は異なっているも同じ目標位置でよく、共通の教示点として共有する。
 図6はプログラム生成部290が出力するロボットプログラムのフローチャートの例である。初期化S501は、ロボットプログラムの起動時に一度だけ実行される処理である。変数及びパラメータの初期化、初期位置への移動等の処理が行われる。次に、3次元ビジョンセンサ認識処理S502は、3次元ビジョンセンサ150で部品供給台110のバラ積み部品170を認識し、ロボット100が部品170を把持するための目標位置姿勢を計算する処理である。また、バラ積みからの取出しS503は、3次元ビジョンセンサ認識S502の結果を基に、バラ積み状態の部品170から、部品170を取り出して仮置き台120に投入する処理である。説明を簡単にするため、ここでは部品170が一つだけ取り出されるとする。
 2次元ビジョンセンサ認識処理S504は、仮置き台120に設置された部品170の位置姿勢を2次元ビジョンセンサ160で認識する処理である。次に、移動経路選択S505は、部品170の位置姿勢の認識結果から、部品170がどの安定姿勢であるかを判定し、仮置き台120から整列台140までの移動経路を選択する処理である。経路群算出部280が出力した経路群の内、2次元ビジョンセンサ160で認識した安定姿勢から始まる移動経路を選択する処理である。さらに、部品整列S506は、選択された移動経路で、仮置き台120上の部品170を整列台140に移動させる一連の処理である。部品整列S506で部品170を整列させた後は、3次元ビジョンセンサ認識処理S502に戻る。
 このフローチャートでは、説明を簡単にするため、バラ積み状態から部品170を一つだけ仮置き台120に取り出せることを前提にしている。ところが、バラ積みからの取出しS503の工程で、一度に複数の部品170を取り出すことは、よくあることである。このようなことがあるため、処理の流れとしては、エラーリカバリ―を含めて様々なバリエーションがある。
 例えば、複数の部品170を取り出すことを前提に、部品整列S506の後は2次元ビジョンセンサ認識処理S504に戻り、認識した結果、仮置き台120に部品170が存在しない場合には、3次元ビジョンセンサ認識処理S502に戻るといったフローもある。本発明は、部品170の位置姿勢が確定された後に、部品170の移動プログラムを生成させることに主眼があり、移動プログラム周辺のプログラム構成は、どのようなものであってもよい。
 最後に作業者は、プログラム生成部290が出力したプログラムで利用されている位置変数を教示し、ロボット100が移動可能な教示点とすることで、運転可能なロボットプログラムが完成する。
 以上の説明は、説明を簡単にするために、適用するロボットシステムを限定し、発明内の各機能の処理も限定したが、これに限定されるものではない。例えば、複数のロボット100を利用したロボットシステムとしてもよい。
 持ち替え治具130等を利用して、一台のロボット100で複数の工程をこなすと、部品170あたりの平均整列時間が伸びることになる。例えば、図5では、仮置き台120の安定姿勢1を整列台140上の安定姿勢3で整列させるためには、持ち替え治具130を利用しているため、4回の移動を伴っている。仮に、この工程を2台のロボット100でパイプライン処理すれば、システム全体としては、1台のロボット100が2回の移動で整列するのと同じ時間で整列させ続けることができる。このように、複数のロボット100を用いれば、システムのスループットを向上することができる。
 このように複数のロボット100を利用する場合には、システム構成データ240で設定された、各ロボット100のアクセス可能先(ハンドの接続先)が異なることになる。ロボット100が1台の構成では、そのロボット100は全ての台(部品供給台110、仮置き台120、整列台140)及び持ち替え治具130にアクセスできたが、複数のロボット100で分業するようなシステムを組む場合には、各ロボット100のハンドの接続先が異なることになる。また、他のロボット100との持ち替えも発生するため、アクセス先としては部品供給台110、仮置き台120、整列台140、持ち替え治具130に加えて、他のロボット100も追加されることになる。システム構成データ240としては、これらのハンドの接続先の情報が必要となる。
 組合せ可否算出部250では、各ハンドのアクセス先を考慮して、アクセスが不可能な組合せにおいては、組合せ不可と判断する。持ち替え経路算出部260と経路群算出部280との処理は変わらない。また、プログラム生成部290は、複数のロボット100のプログラムを出力することになるが、1台のロボット100の処理と同様の出力となる。
 図1では、適用するロボット100システムとして、3次元ビジョンセンサ150と2次元ビジョンセンサ160とを、それぞれ部品供給台110と仮置き台120の上に固定しているものとして説明した。これに拘ることはなく、別のハードウェアを利用するのではなく、2次元ビジョンセンサ160の処理を3次元ビジョンセンサ150で実施してもよい。また、それぞれのカメラ(3次元ビジョンセンサ150、2次元ビジョンセンサ160など)を台の上に固定するのではなく、上空に取付けた駆動部に取付けてもよいし、ロボット100に取付けて移動可能としてもよい。これらカメラの設置構成を問わず、本発明は適用可能である。
 組合せ可否算出部250では、システム構成データ240に含まれるハンドの接続先情報を基に、可否を判断する組合せを限定していた。例えば、図4では、ロボット100に取付けられたハンドの把持方法間と、持ち替え治具130に取付けられたハンドの把持方法間での組合せにおける可否は算出していなかった。
 ロボット100が複数の場合には接続先のロボット100によってアクセス可能先は異なっており、アクセス不可(持ち替え実現の可否)の組合せも、当然、図4の場合とは異なことになる。そこで、どこに接続されているかの制約を無視して、全ての把持方法及び安定姿勢による組合せで可否の判断を実施してもよい。もっとも、同じハンドをシステム内の複数の機器で利用する場合には、接続先が異なるハンド毎に組合せ可否を算出するのではなく、ハンド毎に算出した方が算出する組合せが少なくなることがある。
 この場合、システム構成情報は持ち替え経路算出部260で初めて利用されることになる。持ち替え経路算出部260では、接続先によってハンドのアクセス可能先が変わるので、ハンド接続先の情報が必要となるからである。
 これまでは、部品170が実現し得る全ての安定姿勢に対して、仮置き台120から最終の整列姿勢への移動経路を含むプログラムの生成方法を説明してきた。プログラムで生成する移動経路について、自由度があってもよい。
 先ず、安定姿勢算出部230が導出した全ての安定姿勢を取扱う必要がない場合がある。部品170によっては、非常に不安定で、現実的には仮置き台120上で現れない安定姿勢が存在する場合がある。例えば、ペンを立たせることはできるが、その姿勢は非常に不安定であり、仮置き台120に乱暴に投入した場合には、その発生確率は無視できる程に小さい。そのような姿勢に対するプログラムの作成・調整は無駄な作業になる。
そのため、非常に不安定な安定姿勢については、安定姿勢算出部230で安定姿勢から除去してもよい。小さな外力を与えた場合であっても、別の安定姿勢に遷移する安定姿勢を除外するものである。例えば、ペンのような細長い形状の部品を立てたような安定姿勢である。また、安定姿勢算出部230で除去する以外に、姿勢データ270で除外してもよい。
 また、移動経路の初期状態として安定姿勢以外を設定してもよい。これによって、ロボット100が部品170を把持した状態からの移動経路が含まれたプログラムが出力される。例えば、確率的な手法で部品170を把持し、その把持状態を画像認識するようなシステムで利用される。
 さらに、移動経路の最終状態として、一つの安定姿勢だけでなく、複数の安定姿勢、又は複数の把持状態を設定してもよい。この時、全ての初期状態と最終状態との組合せを移動経路としてプログラムを生成してもよいし、姿勢データ270で、取扱う初期状態と最終状態との組合せを設定してもよい。
 本実施の形態で記載したロボットシステムの形態及び各機能の処理は一例であり、これに限定されるものではない。また、作業者が入力する外部からのデータ入力で、一部の機能を補うこともできる。
 また、経路群算出部280が出力した経路群を作業者に提示して、作業者が移動経路を選択・修正するようにしてもよい。他の機能に関しても出力結果及び候補を作業者に提示し、作業者が選択又は修正してもよい。
 以上、本発明のロボットプログラム生成装置は、ハンドと部品170の3次元形状データから部品170の把持方法を出力する把持方法算出部220と、3次元形状データから部品170の平面上で安定する姿勢を算出して、部品170の安定姿勢として出力する安定姿勢算出部230と、少なくともハンドの接続先情報が含まれるシステム構成データ240と、部品170の把持方法及び部品170の安定姿勢から、2つの把持方法間の組合せ及び把持方法の内の一つと部品170の安定姿勢の内の一つとの間の組合せの、少なくともどちらか一方の組合せにおける、ハンドの干渉について判定して、組合せ可否を出力する組合せ可否算出部250と、組合せ可否から、部品170の把持方法及び安定姿勢の、少なくともどちらか一方の組合せにおける、全ての持ち替え経路を算出して出力する持ち替え経路算出部260と、部品170の投入姿勢及び最終の整列姿勢を指定する姿勢データ270を基に、持ち替え経路から、教示点の数が最小となる経路の組合せを経路群として出力する経路群算出部280と、経路群からロボットのプログラムを出力するプログラム生成部290とを備えている。
 換言すれば、本発明のロボットプログラム生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部とを備えたので、複数の移動経路において教示点を共有することで、教示点数の少ないロボットプログラムを生成することができる。これによって、作業者による教示作業の調整工数を減らすことができる。このように、組合せ可否算出部は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群からハンドが干渉しない組合せを一つ以上、算出している。
実施の形態2.
 実施の形態1では、ロボットプログラムを生成した後に、作業者が教示点を教示していたが、プログラムで教示点のデータを生成してもよい。ここでは、実施の形態1との相違点を中心に説明する。説明が不足する箇所については、実施の形態1と同様の構成である。
 図7は本発明の実施の形態2によるプログラム生成装置の機能構成図である。説明を簡単にするため、先ずは、ロボット100が1台の場合で説明する。なお、図において、同一の符号を付したものは、同一またはこれに相当するものであり、このことは明細書の全文、図面の全図において共通することである。さらに、明細書全文に表れている構成要素の形態は、あくまで例示であってこれらの記載に限定されるものではない。
 システム構成データ240に実施の形態1の情報に加えて、仮置き台120、整列台140、持ち替え治具130の位置情報を設定する。システム構成データ240は、ハンドの接続先の情報の他に、ハンドが作業をする作業位置のデータを含むことになる。これらの位置情報はロボット100座標系の基、ロボット100のベース位置からの相対位置で設定される。
 教示点出力部600は、プログラム生成部290が出力したプログラムで使用されている教示点をロボット100の座標系の基で計算する。まず、出力されたプログラムの教示点が、どの位置の作業であるかを経路情報から抽出する。ロボット100の作業位置とは、仮置き台120、整列台140、持ち替え治具130のことである。この作業位置の位置情報に部品170が設置された場合に、経路情報で設定されている把持方法を実現した時のロボット100の位置姿勢データを算出し、教示点として出力する。なお、教示点出力部600はプロセッサ300で演算されるものであり、教示点出力部600は教示点を出力することになる。
 ここで、ハンドの位置姿勢を実現する際に、ロボット100の位置姿勢が複数あり、ロボット100の位置姿勢データが一意に定まらないこともある。このような場合には、そのハンドの位置を実現するロボット100の位置姿勢の何れかを教示点として出力するようにしてもよいし、複数の教示点の候補から作業者が選択できるように提示してもよい。
 作業位置が、平面ではなく持ち替え治具130の場合には、持ち替え治具130の位置と、持ち替え治具130の把持方法を基に、部品170の設置位置姿勢が決まる。
 次に、複数のロボット100を利用する場合には、システム構成データ240に各ロボット100の設置位置を含め、そのロボット100からの相対位置で教示点データを計算する。また、ロボット100間で受け渡しを行う場合には、少なくともどちらか一方のロボット100の受渡し作業時の位置姿勢をシステム構成データ240で設定する。
 図7では、プログラム生成部290でプログラムを生成した後に、教示点出力部600で教示点データを出力したが、プログラム生成部290より前の段階で出力してもよい。作業者が作業位置と把持方法とを設定することで、教示点データを出力することは可能である。このため、把持方法算出部220で把持方法が設定された後であれば、作業者からの任意の要求タイミングで教示点データは出力可能だからである。
 以上、本実施の形態によれば、システム構成データ240で作業位置のデータを設定し、作業位置に部品170があるとして把持方法を実現するハンドの位置を計算し、教示点データを出力する移動経路教示点出力部600を備えたことで、教示作業を省力できる効果がある。
 換言すれば、本発明のロボットプログラム生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部とを備えたので、複数の移動経路において教示点を共有した、教示点数の少ないロボットプログラムを生成することができる。また、教示点が出力されるので、作業者の調整工数を減らすことができる。なお、組合せ可否算出部は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群からハンドが干渉しない組合せを一つ以上、算出している。
実施の形態3.
 実施の形態2では教示点のデータを生成していたが、教示点でロボット100が位置姿勢をとれるかの可否を判定して、教示点を出力してもよい。ロボット100が教示位置姿勢をとれない(実現できない)ことがあるからである。ここでは、実施の形態1及び2との相違点、特に実施の形態2との相違点を中心に説明する。説明が不足する箇所については、実施の形態1及び2と同様の構成である。
 実施の形態1及び2を実施しようとしても、ロボット100が教示位置姿勢をとることができないことがある。分かりやすい例として、台の上にある部品170が遠すぎてロボット100のハンドが届かない場合がある。その他にも、ロボット100の関節角度が実現できない角度となる場合がある。ロボット100が6自由度を有していても、全ての関節で360度の可動領域を有するわけではない。また、ロボット100の一部がロボット100本体内に入り込むような間接角度の組合せも存在する。そのため、ロボット100の関節によっては、可動領域が制限されるのが通常である。また、ロボット100毎にこの可動領域も異なり、使用を予定しているロボット100固有の制約条件になる。さらに、ここに床面及び壁といった外部環境による動作可能領域の制約が加わることもある。このように、教示点でロボット100が教示位置姿勢をとれない(実現できない)ことがある。
 図8は本発明の実施の形態3によるプログラム生成装置の機能構成図である。使用するロボット100に関連する情報を基に、教示点となる位置でロボット100が教示位置姿勢を実現できるかを教示点判定部700で判定している。なお、教示点判定部700は、図8の組合せ可否算出部250の工程以降で行ってもよい。
 もっとも、教示点判定部700の工程が組合せ可否算出部250の工程の前にあれば、教示点判定部700の判定結果を組合せ可否算出部250の工程でも反映させることができるので、より作業者による教示作業の省力化を図ることができる。また、教示点出力部601も教示点判定部700の工程以降であれば、どこであってもよい。ロボット100に関連する情報には、ハンドの接続先の情報及びハンドが作業をする作業位置のデータを含むシステム構成データ240と、安定姿勢と、把持方法が含まれる。
 使用するロボット100の情報、少なくともハンドの接続先の情報、及びハンドが作業をする作業位置のデータをシステム構成データ240に設定し、教示点判定部700で教示点を実現できるかの可否を判定する。この他にも、システム構成データ240には、使用を予定しているロボット100が有する固有の制約条件、必要に応じて外部環境による制約が含まれることもある。
 教示点判定部700の判定結果を教示点出力部601で出力することになる。教示点判定部700の判定結果として、例えば、実現できない(否の)場合には、教示点出力部601で作業者にエラーを出力し、実現できる(可の)場合には、教示点を出力することになる。なお、教示点判定部700及び教示点出力部601はプロセッサ300で演算されるものである。
 以上のように、システム構成データ240は、ハンドの接続先の情報及びハンドが作業をする作業位置のデータを含み、作業位置に部品170があるときに教示点となる位置で、ロボット100が教示位置姿勢とれるかの可否を判定する教示点判定部700を備えたので、システム構成の実現性を事前に検証できるようになる。
 ここで、教示点判定部700の判定方法の例について詳述する。図9は平面となる作業位置(例えば、仮置き台120)にある部品170の例を示す図である。図9は仮置き台120上にある部品170を上方からみた状態の例であり、図9の(a)から(i)まで、部品170を平面となる仮置き台120上で、平面に垂直な軸(法線)で右側に45度毎に回転させたものである。一周することで部品170は、図9の(a)と(i)とで同じ位置となる。図9の(a)と(i)とは、平面内で回転させた設置角度が同じになっている。
 教示点判定部700は、システム構成データ240で指定した作業位置で部品170を回転させながら、教示点となる位置でロボット100による教示位置姿勢の実現可否を判断する。具体的には、仮置き台120に部品170を投入した場合には、図9のように、部品170を平面上で平面に垂直な軸(法線)で回転させる。部品170を把持する位置姿勢をロボット100が常に実現できるかを判定するためには、部品170を平面内で回転させて判定する必要があるからである。平面内で回転させた全範囲の設置角度で把持方法を実現できるかで可否を判定する。
 教示点判定部は、平面となる作業位置に部品170がある場合には、部品170を平面に垂直な軸(法線)で回転させた全範囲でロボット100が教示位置姿勢をとることができる場合に可と判定することになる。判定が可であれば、全範囲でロボット100が教示位置姿勢をとることができるので、図9の例では、(a)から(i)までのどの設置角度であっても、当然、ロボット100は教示位置姿勢をとることができる。このようにして、使用するロボット100の位置姿勢の実現可否を判定することで、システム構成の実現性を事前に検証できる効果が得られる。
 このように、本発明のロボットプログラム生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部とを備えている。なお、組合せ可否算出部は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群からハンドが干渉しない組合せを一つ以上、算出している。
 特に、教示点判定部は、平面となる作業位置に部品がある場合には、部品を平面に垂直な軸で回転させた全範囲でロボットが教示位置姿勢をとることができる場合に可と判定する。これらによって、複数の移動経路において教示点を共有した、教示点数の少ないロボットプログラムを生成することができる。また、使用するロボットの位置姿勢の実現可否を判定することで、システム構成の実行性を判断できる。
実施の形態4.
 実施の形態3では、教示点判定部700は、平面となる作業位置に部品170がある場合には、部品170を平面に垂直な軸で回転させた全範囲でロボット100が教示位置姿勢をとることができる場合に可と判定した。実施の形態4では、部品170を平面に垂直な軸で回転させた全範囲ではなく、所定の設置角度の範囲内であれば、ロボット100が教示位置姿勢をとることができる場合は、ロボット100が教示位置姿勢をとることができる場合として、把持が実現できる把持方法を組合せたプログラムを生成してもよい。
 図10は本発明の実施の形態4によるプログラム生成装置の機能構成図である。教示点判定部701は教示点判定部700と異なり、部品170を平面に垂直な軸で回転させた全範囲ではなく、所定の設置角度の範囲内であれば、教示点となる位置でロボット100が教示位置姿勢とれる場合に、所定の設置角度の範囲内については可と判定することになる。その他の点については、教示点判定部701と教示点判定部700とで異なる点は無い。
 把持方法と安定姿勢の組合せ毎に、例えば、仮置き台120上で部品170を回転させたとき、ロボット100が把持方法を実現できる部品170の回転範囲を算出する。教示点判定部701は、平面となる作業位置に部品170がある場合には、部品170を平面に垂直な軸(法線)で回転させて、教示点となる位置でロボット100が教示位置姿勢をとれる設置角度の範囲を算出して可と判定することになる。
 例えば、図9の例では、(b)から(d)までと、(f)から(h)までとであれば、部品170を平面に垂直な軸で回転させてロボット100が教示位置姿勢をとることができならば、該当の設置角度の範囲で教示点判定部701は可と判定することになる。このように、設置角度の範囲は360度の中でも、複数の範囲で可に該当することもある。また、図9の例では45度単位であったが、これは例示に過ぎず、設置角度の範囲を決定する際には、より細かな単位、あるいはより大きな単位でも設定することができる。
 把持経路算出部800は、教示点判定部701で可となる設置角度の範囲にある部品170をハンドで把持する経路を算出する。部品170の安定姿勢毎に、平面内で回転させた全範囲の設置角度において、ロボット100が位置姿勢を実現できる設置角度が特定できているので、把持方法の組合せを算出することができる。
 把持経路算出部800は、平面となる作業位置(例えば、仮置き台120)の部品170について、教示点判定部701の判定結果で可となる設置角度の部品170をハンドで把持する経路を算出して、把持経路を算出する。これによって、一律に否とせずに、所定の範囲内にある設置角度の部品170であれば、把持可能な把持方法を用いた移動経路を選択するプログラムを生成することができる。
 教示点出力部602は、教示点出力部600,601と同様の働きをするもので、教示点をロボット100の座標系の基で計算し出力する。また、教示点出力部602は、教示点判定部701の工程以降のどこにあってもよい。なお、教示点判定部701、把持経路算出部800及び教示点出力部602はプロセッサ300で演算されるものである。
 以上、教示点判定部は、平面となる作業位置に部品がある場合には、部品を平面に垂直な軸で回転させて可となる設置角度を算出し、教示点判定部で可となる設置角度の部品をハンドで把持する経路を算出する把持経路算出部を備えるので、平面となる作業位置で部品170が回転した際に、一つの把持方法だけでは対応できない場合でも、複数の把持方法を組合せて対応するプログラムを出力することができる。
 このように、本発明のロボットプログラム生成装置は、本発明のロボットプログラム生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部とを備えている。なお、組合せ可否算出部は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群からハンドが干渉しない組合せを一つ以上、算出している。
 特に、教示点判定部は、平面となる作業位置に部品がある場合には、部品を平面に垂直な軸で回転させてロボットが教示位置姿勢をとることができる設置角度を算出し、教示点判定部で教示位置姿勢をとることができる設置角度に部品がある場合には、ハンドで部品を把持する経路として算出する把持経路算出部を備えているので、平面となる作業位置で部品が回転した時に、一つの把持方法だけでは対応できない場合にも、複数の把持方法を組合せて対応するプログラムを出力することができる。
実施の形態5.
 実施の形態5は、実施の形態1から実施の形態4のいずれか一つの実施の形態に対して、ロボットの運転状況に応じて、ハンドの移動速度を制限した上で、保守作業を要求するプログラムを生成するものが追加されたものである。
 バラ積み部品170の整列システムでは、部品170の取りこぼしなどの作業失敗なしに運転し続けることは困難であり、適切なタイミングで保守作業を実施する必要がある。バラ積み部品170の取り扱いでは、部品170の位置姿勢の不確定性が高く、また、不良部品170が混入している可能性も高い。このため、一般的な化設備のように、100%に近い作業成功率を実現するのは困難である。
 このため、作業を失敗する度に作業者による復旧作業を行う運用は効率が悪く、ある一定量の失敗は許容して運転を続行するシステムが要求される。ここで、許容する失敗とは、部品170を移動中に落とすなど、他の部品170を整列させる作業には支障をきたさない失敗を指す。
 もっとも、あまりにも多くの部品170を落として、堆積した場合には問題が発生する。また、部品170管理の観点から、落とした部品170の種類と数を把握することが重要である。さらに、システム内のどの工程で部品170を落としたが分かれば、保守作業者による部品170の回収も容易となる。
 図11は本発明の実施の形態5によるプログラム生成装置の機能構成図である。ここでは、基本形の実施の形態である実施の形態1に対して、保守作業プログラム生成部900と運転状況データ910とが追加されている。運転状況データ910は、ロボットの運転状況に関するデータベースであり、記憶装置301に記憶されている。また、保守作業プログラム生成部900での演算は、プロセッサ300で演算されるものであり、保守作業プログラム生成部900はプログラムを出力することになる。
 保守作業プログラム生成部900は、プログラム生成部290が出力したロボットプログラムに、保守作業を要求するプログラムを生成して出力するものでる。保守作業プログラム生成部900の出力は、プログラム生成部290が生成するプログラムに追加してプログラムを出力してもよい。追加するプログラムとしては、運転履歴が一定の条件を満たしたら、ロボット100の移動速度を安全速度に制限し、保守作業を要求するものである。
 ここで、運転履歴の一定条件とは、例えば、前回の保守作業から、指定した回数の作業失敗が発生するなどである。作業失敗は、例えば、2次元ビジョンセンサ160による仮置き台120の認識、又はロボット100の力覚センサによる把持部品170の監視、整列台140の整列部品170の確認等で検知できる。また、安全速度とは、例えば、手先合成速度が250mm/sec以下といった教示作業時の移動速度であり、作業者がロボット100との衝突を回避することが容易な速度である。
 これによって、ロボット100の移動速度を制限することで、ロボット100を運転停止することなく保守作業を安全に行うことができる。また、保守作業の要求とは、落下させた部品170除去の保守作業者への要求である。このとき、作業失敗を検知したときの部品170の種別と、想定される落下場所等の情報を付加してもよい。保守作業が完了した後は、移動速度の制限を解除して、運転を継続すればよい。
 本発明のロボットプログラム生成装置は、部品の3次元形状データから部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、ハンドの3次元データ及び3次元形状データから部品をハンドで把持する把持方法を算出する把持方法算出部と、当該ロボットによる把持方法と当該ロボット以外による把持方法及び安定姿勢との組合せ群から、ハンドの接続先の情報を含むシステム構成データ、安定姿勢、及び把持方法に基づいて、ハンドが干渉しない組合せを算出する組合せ可否算出部と、組合せ可否算出部で算出された組合せを用いて部品の持ち替え経路を算出する持ち替え経路算出部と、部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、ロボットのプログラムを経路群に基づいて生成するプログラム生成部と、ロボットの運転状況データに基づきロボットの移動速度を制限し、ロボットの保守作業を要求する保守作業プログラムを生成する保守作業プログラム生成部とを備えたので、保守作業者が運転状況から保守必要性を確認し、ロボットシステムを停止して保守する場合と比較して、ロボットシステムの運転効率を高めることができる。なお、組合せ可否算出部は、安定姿勢及び把持方法のいずれか一方と把持方法との組合せ群からハンドが干渉しない組合せを一つ以上、算出している。
100 ロボット、110 部品供給台、120 仮置き台、130 持ち替え治具、140 整列台、150 3次元ビジョンセンサ、160 2次元ビジョンセンサ、170 部品、200 ハンド3次元データ、210 部品形状3次元データ、220 把持方法算出部、230 安定姿勢算出部、240 システム構成データ、250 組合せ可否算出部、260 持ち替え経路算出部、270 姿勢データ、280 経路群算出部、290 プログラム生成部、300 プロセッサ、301 記憶装置、600、601、602 教示点出力部、700、701 教示点判定部、800 把持経路算出部、900 保守作業プログラム生成部、910 運転状況データ。

Claims (7)

  1. 部品の3次元形状データから前記部品が平面上で安定する安定姿勢を算出する安定姿勢算出部と、
    ハンドの3次元データ及び前記3次元形状データから前記部品を前記ハンドで把持する把持方法を算出する把持方法算出部と、
    当該ロボットによる前記把持方法と前記当該ロボット以外による前記把持方法及び前記安定姿勢との組合せ群から、前記ハンドの接続先の情報を含むシステム構成データ、前記安定姿勢、及び前記把持方法に基づいて、前記ハンドが干渉しない前記組合せを算出する組合せ可否算出部と、
    前記組合せ可否算出部で算出された前記組合せを用いて前記部品の持ち替え経路を算出する持ち替え経路算出部と、
    前記部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、前記持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出部と、
    前記ロボットのプログラムを前記経路群に基づいて生成するプログラム生成部とを備えたことを特徴とするロボットプログラムの生成装置。
  2. 請求項1に記載のロボットプログラムの生成装置であって、
    前記システム構成データは、前記ハンドが作業をする作業位置のデータを含み、
    前記作業位置に前記部品があるときの前記ハンドの位置を算出して前記教示点の位置を出力する教示点出力部を備えたことを特徴とするロボットプログラムの生成装置。
  3. 請求項1に記載のロボットプログラムの生成装置であって、
    前記システム構成データは、前記ハンドが作業をする作業位置のデータを含み、
    前記作業位置に前記部品があるときに前記教示点となる位置で前記ロボットが教示位置姿勢をとれるかの可否を判定する教示点判定部を備えたことを特徴とするロボットプログラムの生成装置。
  4. 請求項3に記載のロボットプログラムの生成装置であって、
    前記教示点判定部は、平面となる前記作業位置に前記部品がある場合には、前記部品を前記平面に垂直な軸で回転させた全範囲で前記ロボットが前記教示位置姿勢をとることができる場合に可と判定することを特徴とするロボットプログラムの生成装置。
  5. 請求項3に記載のロボットプログラムの生成装置であって、
    前記教示点判定部は、平面となる前記作業位置に前記部品がある場合には、前記部品を前記平面に垂直な軸で回転させて前記ロボットが前記教示位置姿勢をとることができる設置角度を算出し、
    前記教示点判定部で前記教示位置姿勢をとることができる前記設置角度に前記部品がある場合には、前記ハンドで前記部品を把持する経路として算出する把持経路算出部を備えたことを特徴とするロボットプログラムの生成装置。
  6. 請求項1から5のいずれか1項に記載のロボットプログラムの生成装置であって、
    前記ロボットの運転状況データに基づき前記ロボットの移動速度を制限し、前記ロボットの保守作業を要求する保守作業プログラムを生成する保守作業プログラム生成部を備えたことを特徴とするロボットプログラムの生成装置。
  7. 部品の3次元形状データから前記部品が平面上で安定する安定姿勢を複数算出する安定姿勢算出工程と、
    ハンドの3次元データ及び前記3次元形状データから前記部品を前記ハンドで把持する把持方法を算出する把持方法算出工程と、
    当該ロボットによる前記把持方法と前記当該ロボット以外による前記把持方法及び前記安定姿勢との組合せ群から、前記ハンドの接続先の情報を含むシステム構成データ、前記安定姿勢、及び前記把持方法に基づいて、前記ハンドが干渉しない前記組合せを算出する組合せ可否算出工程と、
    前記組合せ可否算出工程で算出された前記組合せを用いて前記部品の持ち替え経路を算出する持ち替え経路算出工程と、
    前記部品の投入姿勢及び整列姿勢を指定する姿勢データに基づいて、前記持ち替え経路から教示点の数が最小となる経路を経路群として算出する経路群算出工程と、
    ロボットのプログラムを前記経路群に基づいて生成するプログラム生成工程とを備えたことを特徴とするロボットプログラムの生成方法。
PCT/JP2017/031706 2017-03-24 2017-09-04 ロボットプログラムの生成装置及び生成方法 WO2018173318A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
DE112017007311.1T DE112017007311B4 (de) 2017-03-24 2017-09-04 Vorrichtung und Verfahren zum Erzeugen eines Roboterprogramms
CN201780088646.1A CN110461550B (zh) 2017-03-24 2017-09-04 机器人程序的生成装置及生成方法
US16/483,040 US11003177B2 (en) 2017-03-24 2017-09-04 Apparatus and method for generating robot program
JP2018514923A JP6418359B1 (ja) 2017-03-24 2017-09-04 ロボットプログラムの生成装置及び生成方法
TW107103806A TWI649171B (zh) 2017-03-24 2018-02-02 機器人程式之產生裝置及產生方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2017059621 2017-03-24
JP2017-059621 2017-03-24

Publications (1)

Publication Number Publication Date
WO2018173318A1 true WO2018173318A1 (ja) 2018-09-27

Family

ID=63585203

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/031706 WO2018173318A1 (ja) 2017-03-24 2017-09-04 ロボットプログラムの生成装置及び生成方法

Country Status (6)

Country Link
US (1) US11003177B2 (ja)
JP (1) JP6418359B1 (ja)
CN (1) CN110461550B (ja)
DE (1) DE112017007311B4 (ja)
TW (1) TWI649171B (ja)
WO (1) WO2018173318A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102019122790B4 (de) * 2018-08-24 2021-03-25 Nvidia Corp. Robotersteuerungssystem
US11833681B2 (en) * 2018-08-24 2023-12-05 Nvidia Corporation Robotic control system
TWI775525B (zh) * 2021-07-09 2022-08-21 群邁通訊股份有限公司 零部件識別方法及系統
DE102021209646B4 (de) 2021-09-02 2024-05-02 Robert Bosch Gesellschaft mit beschränkter Haftung Robotervorrichtung, Verfahren zum computerimplementierten Trainieren eines Roboter-Steuerungsmodells und Verfahren zum Steuern einer Robotervorrichtung

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10138185A (ja) * 1996-11-08 1998-05-26 Ricoh Co Ltd ロボットの制御方法
JP2009056513A (ja) * 2007-08-29 2009-03-19 Toshiba Corp 把持位置姿勢決定システムおよび把持位置姿勢決定方法
WO2013002099A1 (ja) * 2011-06-29 2013-01-03 三菱電機株式会社 部品供給装置
JP2013043271A (ja) * 2011-08-26 2013-03-04 Canon Inc 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2015044274A (ja) * 2013-08-29 2015-03-12 三菱電機株式会社 部品供給装置および部品供給装置のプログラム生成方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1044074A (ja) * 1996-07-30 1998-02-17 Nippon Telegr & Teleph Corp <Ntt> マルチ作業方法及び装置
JP2000010618A (ja) 1998-06-25 2000-01-14 Nippon Telegr & Teleph Corp <Ntt> ロボット教示装置およびロボット教示装置用アプリケーション製造装置とそのプログラムを記録した記録媒体
JP4238256B2 (ja) * 2006-06-06 2009-03-18 ファナック株式会社 ロボットシミュレーション装置
JP4235214B2 (ja) * 2006-07-04 2009-03-11 ファナック株式会社 ロボットプログラムを作成するための装置、プログラム、記録媒体及び方法
DE102007060653A1 (de) * 2007-12-15 2009-06-18 Abb Ag Positionsermittlung eines Objektes
JP4942672B2 (ja) * 2008-01-25 2012-05-30 三菱電機株式会社 ロボット軌道制御装置及びロボット軌道制御方法
JP4835616B2 (ja) * 2008-03-10 2011-12-14 トヨタ自動車株式会社 動作教示システム及び動作教示方法
JP2010142910A (ja) * 2008-12-19 2010-07-01 Yaskawa Electric Corp ロボットシステム
JP4938115B2 (ja) * 2010-07-27 2012-05-23 ファナック株式会社 ワーク取出し装置およびワーク取出し方法
DE112011103794B4 (de) * 2010-11-17 2019-01-24 Mitsubishi Electric Corporation Aufnehmervorrichtung für Werkstücke
JP5803155B2 (ja) * 2011-03-04 2015-11-04 セイコーエプソン株式会社 ロボット位置検出装置及びロボットシステム
US9014857B2 (en) * 2012-01-13 2015-04-21 Toyota Motor Engineering & Manufacturing North America, Inc. Methods and computer-program products for generating grasp patterns for use by a robot
JP5620445B2 (ja) 2012-09-13 2014-11-05 ファナック株式会社 選択条件に基づいてロボットの保持位置姿勢を決定する物品取出装置
JP5642759B2 (ja) 2012-10-31 2014-12-17 ファナック株式会社 物品取出装置及び物品取出方法
US9102055B1 (en) * 2013-03-15 2015-08-11 Industrial Perception, Inc. Detection and reconstruction of an environment to facilitate robotic interaction with the environment
JP2015054378A (ja) 2013-09-13 2015-03-23 セイコーエプソン株式会社 情報処理装置、ロボット、シナリオ情報生成方法及びプログラム
JP2015058492A (ja) 2013-09-18 2015-03-30 セイコーエプソン株式会社 制御装置、ロボットシステム、ロボット、ロボット動作情報生成方法及びプログラム
JP6429450B2 (ja) 2013-10-31 2018-11-28 キヤノン株式会社 情報処理装置、情報処理方法
JP5788460B2 (ja) * 2013-11-05 2015-09-30 ファナック株式会社 バラ積みされた物品をロボットで取出す装置及び方法
JP2015100874A (ja) * 2013-11-25 2015-06-04 セイコーエプソン株式会社 ロボットシステム
JP2015147256A (ja) * 2014-02-04 2015-08-20 セイコーエプソン株式会社 ロボット、ロボットシステム、制御装置、及び制御方法
JP6364856B2 (ja) * 2014-03-25 2018-08-01 セイコーエプソン株式会社 ロボット
US9561587B2 (en) * 2014-12-16 2017-02-07 Amazon Technologies, Inc. Robotic grasping of items in inventory system
JP6335806B2 (ja) * 2015-01-22 2018-05-30 三菱電機株式会社 ワーク供給装置およびワーク把持姿勢計算方法
WO2016132521A1 (ja) * 2015-02-20 2016-08-25 株式会社日立製作所 教示データ生成装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10138185A (ja) * 1996-11-08 1998-05-26 Ricoh Co Ltd ロボットの制御方法
JP2009056513A (ja) * 2007-08-29 2009-03-19 Toshiba Corp 把持位置姿勢決定システムおよび把持位置姿勢決定方法
WO2013002099A1 (ja) * 2011-06-29 2013-01-03 三菱電機株式会社 部品供給装置
JP2013043271A (ja) * 2011-08-26 2013-03-04 Canon Inc 情報処理装置、情報処理装置の制御方法、およびプログラム
JP2015044274A (ja) * 2013-08-29 2015-03-12 三菱電機株式会社 部品供給装置および部品供給装置のプログラム生成方法

Also Published As

Publication number Publication date
TW201834802A (zh) 2018-10-01
DE112017007311T5 (de) 2019-12-05
JPWO2018173318A1 (ja) 2019-03-28
JP6418359B1 (ja) 2018-11-07
TWI649171B (zh) 2019-02-01
CN110461550A (zh) 2019-11-15
DE112017007311B4 (de) 2021-09-16
US20200233407A1 (en) 2020-07-23
CN110461550B (zh) 2022-11-15
US11003177B2 (en) 2021-05-11

Similar Documents

Publication Publication Date Title
JP6418359B1 (ja) ロボットプログラムの生成装置及び生成方法
JP6807949B2 (ja) 干渉回避装置
JP6860863B2 (ja) 経路出力方法
Yu et al. Base position optimization for mobile painting robot manipulators with multiple constraints
JP5872894B2 (ja) ロボット動作教示支援装置及び方法
CN113492403A (zh) 用于料箱拾取的自适应抓持规划
JP2017226029A (ja) ロボット装置の制御方法、およびロボット装置
EP2883116B1 (en) Ultra-flexible production manufacturing
Kaldestad et al. Collision avoidance with potential fields based on parallel processing of 3D-point cloud data on the GPU
CN102216037A (zh) 用于优化工业机器人的编程移动路径的方法和装置
JP2009056513A (ja) 把持位置姿勢決定システムおよび把持位置姿勢決定方法
US20160184994A1 (en) Calibration of Robot Work Paths
US11518024B2 (en) Extensible underconstrained robotic motion planning
JP7061013B2 (ja) 経路補正方法及び多軸加工機の制御装置
US20140365007A1 (en) Visual Datum Reference Tool
JP2018128986A (ja) 経路補正方法及び多軸加工機の制御装置
JP2000084877A (ja) 走行軸付ロボットのオフラインティーチング方法
CN112236272B (zh) 把持姿态评价装置和把持姿态评价程序
WO2014042668A2 (en) Automatic and manual robot work finder calibration systems and methods
EP4241241A1 (en) Optimizing calibration with constraints between different coordinate frames
CN115026843B (zh) 一种基于交叉激光传感器的自动tcp标定及纠偏方法
Maťuga Control and positioning of robotic arm on CNC cutting machines and their applications in industry
WO2024105779A1 (ja) 制御装置およびコンピュータ
US20230182298A1 (en) Placement planning
Huang et al. Research on Trajectory Planning Algorithms of Cartesian Space for Robots

Legal Events

Date Code Title Description
ENP Entry into the national phase

Ref document number: 2018514923

Country of ref document: JP

Kind code of ref document: A

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17902362

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 17902362

Country of ref document: EP

Kind code of ref document: A1