WO2021230135A1 - プログラム生成装置およびプログラム生成方法 - Google Patents

プログラム生成装置およびプログラム生成方法 Download PDF

Info

Publication number
WO2021230135A1
WO2021230135A1 PCT/JP2021/017390 JP2021017390W WO2021230135A1 WO 2021230135 A1 WO2021230135 A1 WO 2021230135A1 JP 2021017390 W JP2021017390 W JP 2021017390W WO 2021230135 A1 WO2021230135 A1 WO 2021230135A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
program
route
tip
unit
Prior art date
Application number
PCT/JP2021/017390
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 JP2022521861A priority Critical patent/JPWO2021230135A1/ja
Priority to DE112021002690.9T priority patent/DE112021002690T5/de
Priority to CN202180033515.XA priority patent/CN115515761A/zh
Priority to US17/998,146 priority patent/US20230211500A1/en
Publication of WO2021230135A1 publication Critical patent/WO2021230135A1/ja

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/085Force or torque sensors
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • B25J11/006Deburring or trimming
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/005Manipulators for mechanical processing tasks
    • B25J11/0065Polishing or grinding
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/02Sensing devices
    • B25J19/021Optical sensing devices
    • B25J19/023Optical sensing devices including video camera 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/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1694Programme controls characterised by use of sensors other than normal servo-feedback from position, speed or acceleration sensors, perception control, multi-sensor controlled systems, sensor fusion
    • 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/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/404Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control arrangements for compensation, e.g. for backlash, overshoot, tool offset, tool wear, temperature, machine construction errors, load, inertia
    • 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/36Nc in input of data, input key till input tape
    • G05B2219/36349Compensation part program with form of tool, in memory
    • 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/39176Compensation deflection arm
    • 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/39529Force, torque sensor in wrist, end effector
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40571Camera, vision combined with force sensor
    • 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/45Nc applications
    • G05B2219/45151Deburring

Definitions

  • the present invention relates to a program generation device and a program generation method.
  • Patent Document 1 a method of detecting an actual deburring ridgeline by a visual sensor in a processing deburring process by a robot and creating a route program according to the ridgeline is known (Patent Document 1). Further, also in the polishing step, a method is known in which a trajectory followed by an end effector is detected by a visual sensor and a path program corresponding to the trajectory is created.
  • the robot stops the alarm when it reaches or passes near its singular point, each axis limit, set prohibited area, etc.
  • the operation trajectory is usually taught / set so as not to pass near a singular point, a limit, or a set prohibited area.
  • a force for the robot to press the tool against the work is generated in a predetermined work processing, for example, a deburring process. Therefore, with the robot arm bent, the robot tip (end effector / machining tool) is in a position where it bites into the work.
  • the program generation device in the present disclosure includes an acquisition unit that acquires path data indicating a path that the tip of the robot follows against an object, a detection unit that detects a pressing force that presses the tip of the robot against the object, and the above-mentioned. Based on the pressing force detected by the detection unit and a predetermined constant, the calculation unit that calculates the amount of positional deviation that the path to be followed shifts due to the bending of the tip of the robot, and the route data acquired by the acquisition unit. A generation unit that automatically generates a route program that controls the movement path of the tip of the robot based on the position deviation amount calculated by the calculation unit is provided.
  • FIG. 3 is a schematic plan view showing a ridgeline route based on a route program generated by the program generation unit shown in FIG. 1. It is a block diagram explaining the structure of the program generation apparatus which shows this embodiment. It is a schematic diagram explaining the deburring process by the robot which shows this embodiment. It is a schematic diagram explaining the deburring process by the robot which shows this embodiment. It is a schematic diagram explaining the deburring process by the robot which shows this embodiment. It is a schematic diagram explaining the deburring process by the robot which shows this embodiment. It is a schematic diagram explaining the deburring process by the robot which shows this embodiment.
  • FIG. 1 is a block diagram illustrating a configuration of a robot device showing the present embodiment.
  • the program generation device and the program method for generating the route program applied to the robot device 1 will be described in detail.
  • This example shows the case where the predetermined tool is, for example, a deburring tool.
  • the robot device shown in this embodiment includes a robot device 1, a control device 2 of the robot device 1, a robot wrist (end effector) 3, a force sensor 4, and a deburring tool 5.
  • the deburring tool 5 processes the work 7 shown in FIG. 6 and the like, which will be described later.
  • the work 7 has a positioning error, and the shape and size also vary.
  • the control device 2 includes a force control unit 21, a storage unit 22, a calculation unit 23, an acquisition unit 24, a program generation unit 25, and a program execution unit 26.
  • the control device 2 includes an input unit 11 and a display unit 12 via an interface (not shown).
  • the robot device 1 includes a drive unit 1A, and processing of the deburring tool 5 is executed based on an instruction from the force control unit 21.
  • the input unit 11 inputs the amount of deflection of the robot wrist (end effector) 3 measured by the operator.
  • the storage unit 22 can updately store the deburring processing program, the polishing processing program, and the parameters (shape, size, material) for each work required for each processing program generated by the program generation unit 25.
  • the acquisition unit 24 communicates with a predetermined CAD system (not shown) to acquire the route data of the end effector 3 that moves when the object (work W) is processed, and stores it in the storage unit 22.
  • the calculation unit 23 calculates the amount of deflection with respect to the pressing force detected by the force sensor 4 using a spring constant stored as described later, and stores it in the storage unit 22.
  • the program generation unit 25 generates a route program in which the processing route data stored in the storage unit 22 is corrected based on the calculated deflection amount.
  • the program execution unit 26 controls the force control unit 21 and the drive unit 1A by executing the corrected route program, and controls the movement path of the tip portion of the robot device 1 to which a predetermined tool is attached. ..
  • the calculation unit 23 calculates the amount of deflection based on the spring constant k stored in the storage unit 22 and the pressing amount detected by the force sensor 4, as will be described later.
  • the program generation unit 25 generates a route program considering the amount of deflection based on the route data (CAD data) stored in the storage unit 22 and the calculated amount of deflection.
  • the CAD data acquired by the acquisition unit 24 can be created by processing graphic data or image data for processing the work W and tracing the path pressed by the tool using, for example, a trace command, or a raster vector. It can be obtained by automatically creating it in the conversion process.
  • the path data that the end effector as the tip of the robot device 1 follows the ridgeline of the object (work W) or the linear path that moves linearly on the plane of the object is used as CAD data.
  • the program generation unit 25 as a generation unit automatically generates a route program that controls the trajectory in which the end effector 3 of the robot device 1 moves based on the route data that the end effector 3 of the robot device 1 stored in the storage unit 22 follows. Then, it is stored in the storage unit 22.
  • the force sensor 4 detects a pressing force that presses the work W against a predetermined tool attached to the end effector of the robot device 1 described later, and outputs the pressing force to the force control unit 21 and the calculation unit 23.
  • the data of the force sensor 4 is an analog amount
  • the amount of deflection is output as digital data via an A / D converter (not shown).
  • the calculation unit 23 calculates the amount of positional deviation in which the path followed by the arm of the robot device 1 bends, and calculates the calculation result. It is stored in the storage unit 22. The details of the calculation of the amount of misalignment will be described later.
  • the program generation unit 25 reads out the amount of deflection for each work stored in the storage unit 22, generates a route program in which the processing route data based on the deburring processing process stored in the storage unit 22 in advance is corrected, and generates the storage unit 22.
  • the program generation unit 25 reads out the amount of deflection for each work stored in the storage unit 22, generates a route program in which the processing route data based on the deburring processing process stored in the storage unit 22 in advance is corrected, and generates the storage unit 22.
  • the force control unit 21 outputs drive control information for performing deburring processing in three dimensions to the drive unit 1A of the robot device 1 according to the corrected route program stored in the storage unit 22.
  • the drive unit 1A of the robot device 1 moves the robot arm in three dimensions based on the drive control information output from the force control unit 21 and the processing control information of the visual sensor 8, the force sensor 4, and the like, for example, a predetermined tool. Drive the deburring tool 5.
  • the calculation unit 23 actually measures the amount of deflection with respect to the pressing force in the XYZ direction at a typical position / posture of the robot device 1 (for example, all 0 from J1 to J6).
  • the pressing force is obtained from the output of the force sensor 4.
  • the value of the spring constant k corresponding to the predetermined tool is calculated from the pressing force F detected by the force sensor 4 and the measured deflection amount L. If it is assumed that the relationship is not proportional, the function F is obtained.
  • the program generation unit 25 uses the spring constant k or the function F at all positions and postures.
  • the calculation unit 23 stores the calculated spring constant k corresponding to the predetermined tool in the storage unit 22 as information for identifying the robot device 1 and a spring constant table based on each tool.
  • FIG. 2 is a diagram showing the position coordinates of the sampling points for measuring the amount of deflection by the calculation unit 23 shown in FIG. Black circles in the figure indicate sampling points for measuring the amount of deflection.
  • the calculation unit 23 sets many points within the operating range of the robot device 1, for example, grid points at equal intervals in the XYZ axis direction.
  • the operator actually measures the amount of deflection with respect to the pressing force in the XYZ directions at the position and posture of the robot device 1 at each sampling point.
  • the calculation unit 23 calculates the spring constant kxyz or the function fxyz corresponding to the predetermined tool at the sampling point by calculation in the same manner as in the first deflection amount calculation example, and stores it in the storage unit 22.
  • the amount of deflection may be calculated by simulation without actually measuring it as in the above calculation example. Since the amount of deflection usually differs depending on the robot model, it is performed for each robot model to be used. Specifically, we create a physical model that takes into account the characteristics of the robot's link length, mass of each part, inertia, and reducer of each axis, and calculate the amount of deflection against the pressing force applied to the robot tip and end effector by simulation. do. Here, it is assumed that the spring constant is actually measured.
  • FIG. 3 is a flowchart illustrating a control procedure of the program generator showing the present embodiment.
  • ST1 to ST5 indicate each step, and each step is realized by a CPU (not shown) loading a control program stored in a ROM or the like onto a RAM and executing the step.
  • This example corresponds to the program generation process in the machining in which the tool is pressed against the work.
  • route data corresponding to a predetermined tool for example, route data following a ridgeline route or route data following a linear route
  • the program generation unit 25 creates a route program according to the route data and temporarily It is held in the storage unit 22 (ST1).
  • the route data is created in advance by a CAD system (not shown), acquired by the acquisition unit 24, and stored in the storage unit 22.
  • the route data is data in which the amount of bending of the tip portion is not taken into consideration.
  • the calculation unit 23 refers to the spring constant table for the predetermined tool stored in the storage unit 22 based on the identification information of the robot device 1, the size of the work W, the material, and the like, and reads out the predetermined tool.
  • the spring constant k corresponding to the above and the pressing force of the predetermined tool detected by the force sensor 4
  • the amount of deflection generated when the predetermined tool is pressed against the work W is calculated by calculation processing (ST2).
  • the program generation unit 25 creates a new route program based on the calculated deflection amount, in which the route data of the route program for a predetermined tool previously stored in the storage unit 22 is corrected (ST3).
  • the program generation unit 25 analyzes the newly created route program to determine whether or not there is a singular point of the robot device 1, a limit value of each drive axis, or a place approaching another prohibited area (). ST4).
  • the program generation unit 25 determines that there is a singular point of the robot device 1, a limit value of each drive shaft, or a place approaching another prohibited area, the process proceeds to ST5.
  • the program generation unit 25 creates a route program (ST5) to evacuate from the location specified in step ST4 as an end point, and ends the process.
  • the final route program created is stored in the storage unit 22.
  • step ST4 if it is determined in step ST4 that the program generation unit 25 does not have a singular point of the robot device 1, a limit value of each drive axis, or any other place near the prohibited area, the process ends.
  • FIG. 4 is a schematic plan view showing a ridgeline route based on the route program generated by the program generation unit 25 shown in FIG.
  • the outer side is the point on the orbit that does not consider the deflection
  • the inner side is the point on the orbit that considers the deflection.
  • the broken line indicates the trajectory connecting the tip positions in consideration of the deflection of the deburring tool 5.
  • the amount of deflection generated when the deburring tool 5 attached to the robot device 1 comes into contact with the work W is taken into consideration, so that deburring of the work W can be performed accurately without misalignment.
  • FIG. 5 is a block diagram illustrating a configuration of a program generator showing the present embodiment.
  • the same components as those in FIG. 1 are designated by the same reference numerals, and the description thereof will be omitted.
  • the visual sensor 8 is provided so as to be movable in three dimensions on the upper side of the work W, and images the ridge line path followed by the end effector as the tip of the robot device 1 with the deburring ridge line of the object (work W). Detect with.
  • the calculation unit 23 calculates the amount of deflection based on the force pressed against the work detected by the force sensor 4 and the stored spring constant for the deburring tool 5.
  • the program generation unit 25 creates a route program based on the route data obtained by actually imaging a predetermined process, for example, a deburring process by the visual sensor 8, and stores it in the storage unit 22. After that, the program generation unit 25 creates a new route program based on the route program stored in the storage unit 22 and the amount of deflection.
  • the program generation unit 25 analyzes the deburring ridgeline data detected by the visual sensor 8 and sets the singularity, the limit value of each axis, or the like when automatically creating a route program based on the ridgeline data. When approaching the prohibited area, create a route program that uses that location as the end point and then saves by the specified route.
  • the program generation unit 25 creates a route program that passes through the orbit once retracted and returns to the orbit detected by the visual sensor 8 again after being separated from the singular point, each axis limit, or the prohibited area by a predetermined distance. Further, since the robot device 1 generates a pressing force during deburring, the arm of the robot device 1 is bent.
  • FIG. 6 to 8 are schematic views illustrating a deburring process by a robot showing the present embodiment
  • FIG. 6 shows a state in which the deburring tool approaches the start point of the deburring trajectory
  • FIG. 7 shows an automatic state.
  • the generated orbit shows a state of passing near the singular point
  • FIG. 8 shows an orbit (broken line) retracted away from the singular point.
  • the machining process and the program generation process are collectively controlled by the control device 2 connected via a predetermined interface.
  • the deburring device includes a robot device 1, a control device 2 of the robot device 1, a robot wrist (end effector) 3, a force sensor 4, a deburring tool 5, a work 7, and a visual sensor 8.
  • the work 7 has a positioning error, and the shape and size also vary.
  • the deburring portion 6 corresponds to a portion (ridge line) processed by the deburring tool 5 using the work 7.
  • the robot device 1 is composed of an articulated robot having a plurality of arms.
  • a force sensor 4 is provided on the robot wrist 3 located at the tip of the arm of the robot device 1, and a deburring tool 5 is attached to the force sensor 4.
  • the robot device 1 can take various positions and postures by rotating an electric motor (servo motor) provided in each joint according to a control signal output from the control device 2.
  • the robot device 1 is not limited to the one shown in the figure, and can be applied to any robot having a known form.
  • the deburring tool 5 is a tool generally used for removing burrs on the work W and is not limited to a specific form, and includes, for example, a cutter, a grinder, and the like.
  • the deburring tool 5 is fixed to the robot wrist 3 of the robot device 1 and moves together with the robot wrist 3 as the robot device 1 operates.
  • the control device 2 includes an input unit 11 and a display unit 12 connected via an interface (not shown).
  • the robot device 1 includes a drive unit 1A, and when a processing start instruction is received from the input unit 11, the processing of the deburring tool 5 is executed based on the instruction from the force control unit 21.
  • the storage unit 22 can update the path program for deburring processing generated by the program generation unit 25, the path program for polishing processing, and the parameters (shape, size, material) for each work required for each processing program. I remember in.
  • the program generation unit 25 analyzes the deburring ridgeline data (route data) imaged and detected by the visual sensor 8, and automatically creates a route program in which the robot wrist (end effector) 3 follows the ridgeline data. .. At this time, when the end effector 3 approaches a singular point, a limit value of each axis, or a prohibited area set in other areas, the program generation unit 25 sets the coordinate value as the end point and then saves the end effector 3 by a designated route. Create a route program to make it work.
  • the program generation unit 25 when the path corrected by the calculated position deviation amount of the path followed by the end effector approaches the singular point of the robot device 1, the limit value of each drive axis, or the prohibited area to be set.
  • a route program is created in which the end effector 3 is retracted by a route specified from the end point with the coordinate value as the end point.
  • the program generation unit 25 returns to the trajectory detected by the visual sensor 8. Create a return route program.
  • the robot device 1 Since the robot device 1 generates a pressing force during deburring, the arm of the robot device 1 is bent. Therefore, in the present embodiment, it is desirable to determine the singularity and the limit at the position where the deflection is corrected.
  • FIG. 9 is a flowchart illustrating a control procedure of the program generator showing the present embodiment.
  • ST11 to ST15 indicate each step, and each step is realized by a CPU (not shown) loading a control program stored in a ROM or the like onto a RAM and executing the step.
  • This example corresponds to the program generation process in the deburring process.
  • the visual sensor 8 captures an image on the work W, detects a path following the ridgeline of the work W, and outputs the image to the program generation unit 25.
  • the program generation unit 25 analyzes the route data of the work W output from the visual sensor 8 to create a route program, and temporarily stores the route program in the storage unit 22 (ST11).
  • the calculation unit 23 refers to the spring constant table for the deburring tool 5 stored in the storage unit 22 based on the identification information of the robot device 1, the size of the work W, the material, and the like, and reads out the deburring. Using the spring constant k corresponding to the tool 5 and the pressing force of the deburring tool 5 detected by the force sensor 4, the amount of deflection generated when the deburring tool 5 is pressed against the work W is calculated by calculation processing. (ST12).
  • the program generation unit 25 creates a new deburring tool route program in which the route data of the deburring tool route program previously stored in the storage unit 22 is corrected based on the calculated deflection amount (ST13). ..
  • the program generation unit 25 analyzes the created new deburring route program to see if there is a singular point of the robot device 1, a limit value of each drive axis, or a place approaching another prohibited area. Is determined (ST14).
  • the process proceeds to ST15. Then, the program generation unit 25 creates a route program (ST15) to evacuate from the location specified in step ST4 as an end point, and ends the process.
  • the final route program created is stored in the storage unit 22.
  • step ST14 if it is determined in step ST14 that the program generation unit 25 does not have a singular point of the robot device 1, a limit value of each drive axis, or any other place near the prohibited area, the process ends.
  • FIG. 10 is a schematic diagram illustrating a deburring process by the robot device 1 showing the present embodiment.
  • This example shows a process of deburring the circumferential portion of the work W according to the circumferential trajectory with the robot device 1 attached to the deburring tool 5.
  • the virtual orbit 10 is an orbit inside the work W, and is an orbit that virtually shows the amount of deflection due to the pressing force.
  • the program generation unit 25 generates a route program that is a deburring route corrected for the deflection shown in the virtual orbit 10 (indicated by a broken line).
  • the deburring path program can accurately proceed with the deburring process based on the ridgeline path in consideration of the amount of deflection of the arm of the robot device 1.
  • the program generation unit 25 is an end effector when the polishing tool captured and detected by the visual sensor 8 detects the shape and surface of the work to be polished and automatically creates a path program for polishing.
  • a route program is created in which the coordinate value is set as the end point and then the end effector 3 is retracted by the specified route. That is, in the program generation unit 25, the path corrected by the calculated position deviation amount of the path followed by the end effector 3 is set as a singular point through which the end effector 3 of the robot device 1 passes, a limit value of each drive axis, or a setting.
  • the coordinate value when approaching the prohibited area is set as the end point, and a route program for retracting the polishing tool along the specified route from the end point is created.
  • the end effector 3 passes through a trajectory once retracted from the work W, and after the end effector 3 is separated from a singular point, each axis limit, or a prohibited area by a predetermined distance, the visual sensor 8 again performs the program generation unit 25. Create a route program to return to the detected orbit.
  • the robot device 1 Since the robot device 1 generates a pressing force during polishing, the arm of the robot device 1 is bent. Therefore, in the present embodiment, it is desirable to determine the singularity and the limit at the position where the deflection is corrected.
  • FIG. 11 is a flowchart illustrating a control procedure of the program generator showing the present embodiment.
  • ST21 to ST25 indicate each step, and each step is realized by a CPU (not shown) loading a control program stored in a ROM or the like onto a RAM and executing the step.
  • This example corresponds to the program generation process in the polishing process.
  • the visual sensor 8 takes an image on the work W and outputs the route data that follows a linear route along the shape and surface of the work W to the program generation unit 25.
  • the program generation unit 25 analyzes the detected route data output from the visual sensor 8 to create a route program, and temporarily stores the route program in the storage unit 22 (ST21).
  • the calculation unit 23 refers to the spring constant table for the polishing tool stored in the storage unit 22 based on the identification information of the robot device 1, the size of the work W, the material, etc., and corresponds to the read-out polishing tool. Using the spring constant k and the pressing force of the polishing tool detected by the force sensor 4, the amount of deflection generated when the polishing tool is pressed against the work W is calculated by calculation processing (ST22).
  • the program generation unit 25 creates a new polishing route program in which the route data of the polishing route program previously stored in the storage unit 22 is corrected based on the calculated deflection amount (ST23).
  • the program generation unit 25 analyzes the newly created path program for polishing to determine whether there is a singular point of the robot device 1, a limit value of each drive shaft, or a place approaching another prohibited area. Judgment (ST24).
  • the process proceeds to ST25. Then, the program generation unit 25 creates a route program (ST25) to evacuate from the location specified in step ST4 as an end point, and ends the process.
  • the final route program created is stored in the storage unit 22.
  • step ST24 if it is determined in step ST24 that the program generation unit 25 does not have a singular point of the robot device 1, a limit value of each drive axis, or any other place near the prohibited area, the process ends.
  • FIG. 12 is a schematic view illustrating a polishing process by the robot device 1 showing the present embodiment.
  • the upper surface of the work W is continuously moved according to the polishing path 11A by combining the movement in a linear path in the left-right direction and the movement in a linear path in the vertical direction.
  • the process of polishing is shown.
  • the virtual path 12A is an orbit inside the work W, and is a path that virtually shows the deflection due to the pressing force.
  • the program generation unit 25 generates a path program that becomes the polishing path 11A corrected for the deflection shown in the virtual path 12A.
  • the polishing path program can accurately advance the polishing process based on the processing track considering the amount of deflection of the robot device 1.
  • the control device 2 generates the route program has been described, but it is managed by an OS installed in a data processing device connected to the control device 2 via a predetermined interface, that is, a so-called personal computer. It may be a configuration realized by a program to be implemented.
  • the deburring process or the polishing process has been described as an example of creating a path program, but it can be applied to other processes as long as it is a process of pressing some tool against the work.

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

ロボットの先端部がワークに当接する際に、たわみ量が見込まれた経路プログラムを自動生成できるプログラム生成装置を提供すること。プログラム生成装置は、対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得部と、前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出部と、前記検出部が検出した押付力と、所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算部と、前記取得部が取得する前記経路データと前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成部と、を備える。

Description

プログラム生成装置およびプログラム生成方法
 本発明は、プログラム生成装置およびプログラム生成方法に関する。
 従来、プログラム生成装置において、ロボットによる加工バリ取り工程で、バリ取りの実際の稜線を視覚センサによって検出し、その稜線に応じた経路プログラムを作成する方法が知られている(特許文献1)。
 また、研磨工程でも、エンドエフェクタが辿る軌道を視覚センサによって検出し、その軌道に応じた経路プログラムを作成する方法が知られている。
 上記の加工バリ取り工程や研磨工程において、ロボットは、その特異点や各軸リミット、設定した禁止領域などに達するかその近傍を通る場合にはアラーム停止する。これを避けるため、通常は特異点やリミット、設定した禁止領域の近くを通らないように動作軌道を教示/設定する。
 また、実際の稜線や軌道に応じて経路プログラムを自動作成する場合、ある個体のワークでは問題なくても別のワークではその固定位置の違い、ワークそのものの大きさや形状の違いにより、特異点やリミットのアラームになることがある。
特開2015-009324号公報
 上述した経路プログラムを利用するシステムにおいて、所定のワーク加工、例えばバリ取り工程では、ロボットがワークに対してツールを押付けるための力が発生する。そのため、ロボットのアームがたわんだ状態で、ロボット先端(エンドエフェクタ/加工ツール)はワークに少し食い込んだ位置にいることになる。
 しかし、上記ロボットの先端部の移動経路を制御する経路プログラムには、このようなたわみ量が見込まれていないため、バリ取りロボットがワークにツールを押し付けている際の実際の位置にずれが生じてしまう。特異点や各軸リミット、設定した禁止領域などに達しているかの判定が正しくできず、ワーク自体や、エンドエフェクタ(ロボットの手先)/加工ツールが破損したりしてしまう恐れが指摘されていた。
 このような経路プログラムには、ロボットの先端がワークに当接する際に、ロボットの先端部がたわむたわみ量が見込まれていることが望ましい。
 本開示におけるプログラム生成装置は、対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得部と、前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出部と、前記検出部が検出した押付力と、所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算部と、前記取得部が取得する前記経路データと前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成部と、を備える。
 一態様によれば、ロボットの先端部がワークに当接する際に、たわむたわみ量が見込まれた経路プログラムを自動生成できる。
本実施形態を示すロボット装置の構成を説明するブロック図である。 図1に示した計算部によるたわみ量を測定するサンプリング点の位置座標を示す図である。 本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。 図1に示したプログラム生成部が生成した経路プログラムに基づく稜線経路を示す概略平面図である。 本実施形態を示すプログラム生成装置の構成を説明するブロック図である。 本実施形態を示すロボットによるバリ取り工程を説明する概略図である。 本実施形態を示すロボットによるバリ取り工程を説明する概略図である。 本実施形態を示すロボットによるバリ取り工程を説明する概略図である。 本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。 本実施形態を示すロボットによるバリ取り工程を説明する概略図である。 本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。 本実施形態を示すロボットによる研磨工程を説明する概略図である。
 以下、本開示の実施形態を説明する。
〔第1実施形態〕
 図1は、本実施形態を示すロボット装置の構成を説明するブロック図である。以下、ロボット装置1に適用する経路プログラムを生成するプログラム生成装置並びにプログラム方法を詳述する。本例は、所定のツールが、例えばバリ取りツールの場合を示す。
 本実施形態に示すロボット装置は、ロボット装置1、ロボット装置1の制御装置2、ロボット手首(エンドエフェクタ)3、力センサ4、バリ取りツール5を備える。バリ取りツール5は、後述する図6等に示すワーク7を加工する。ワーク7は、位置決め誤差があり、形状や大きさにもバラつきがある。
 また、制御装置2は、力制御部21、記憶部22、計算部23、取得部24、プログラム生成部25、プログラム実行部26から構成されている。
 なお、制御装置2は、図示しないインタフェースを介して、入力部11、表示部12を備える。ロボット装置1は、駆動部1Aを備え、力制御部21からの指示に基づいて、バリ取りツール5の加工処理が実行される。入力部11は、作業者が測定したロボット手首(エンドエフェクタ)3のたわみ量を入力する。
 記憶部22は、プログラム生成部25が生成したバリ取り加工プログラム、研磨加工プログラム、各加工プログラムに必要なワーク毎のパラメータ(形状、大きさ、材質)を更新可能に記憶している。
 取得部24は、図示しない所定のCADシステムと通信して、対象物(ワークW)を加工する際に移動するエンドエフェクタ3の経路データを取得して、記憶部22に記憶させておく。計算部23は、力センサ4が検出する押付力に対するたわみ量を後述するように記憶されるばね定数を用いて算出して、記憶部22に記憶させておく。プログラム生成部25は、記憶部22に記憶した加工経路データを算出したたわみ量に基づいて補正した経路プログラムを生成する。プログラム実行部26は、補正された経路プログラムを実行することにより、力制御部21と、駆動部1Aを制御して、所定のツールが取り付けられたロボット装置1の先端部の移動経路を制御する。
 図1に示すロボット装置の例では、計算部23は、後述するように記憶部22に記憶されたばね定数kと、力センサ4が検出する押付け量とに基づいてたわみ量を算出しておく。次に、プログラム生成部25は、記憶部22に記憶された経路データ(CADデータ)と算出したたわみ量とに基づいてたわみ量を考慮した経路プログラムを生成する。
 なお、取得部24が取得するCADデータは、ワークWを加工する図形データや画像データを処理して、例えばトレースコマンド等を用いてツールが押し付ける経路をトレースすることで作成したり、ラスタ・ベクタ変換処理で自動的に作成したりすることで得られる。本実施形態では、対象物(ワークW)の稜線をロボット装置1の先端部としてのエンドエフェクタが辿る経路データ、または対象物の平面上を直線的に移動する直線経路をCADデータとする。
 これにより、エンドエフェクタ3に取り付ける所定のツールがバリ取りツールであっても、研磨ツールであっても、いずれのたわみ量にも適応した経路プログラムを生成することができる。
 生成部としてのプログラム生成部25は、記憶部22に記憶されたロボット装置1のエンドエフェクタ3が辿る経路データに基づいてロボット装置1のエンドエフェクタ3が移動する軌道を制御する経路プログラムを自動生成して、記憶部22に記憶させる。
 検出部として力センサ4は、ワークWを後述するロボット装置1のエンドエフェクタに取り付けられた所定のツールを押し付ける押付力を検出し、力制御部21と計算部23に出力する。なお、力センサ4のデータがアナログ量である場合には、図示しないA/D変換器を介して、デジタルデータとしてたわみ量を出力する。
 計算部23は、力センサ4が検出する押付力と所定の定数(ばね定数)に基づいて、ロボット装置1のアームがたわむことによって辿る経路がずれる位置ズレ量を計算して、その計算結果を記憶部22に記憶させておく。なお、位置ズレ量の計算の詳細は後述する。
 プログラム生成部25は、記憶部22に記憶させたワーク毎のたわみ量を読み出して、あらかじめ記憶部22に記憶されたバリ取り加工工程に基づく加工経路データを補正した経路プログラムを生成し記憶部22に記憶させておく。
 力制御部21は、記憶部22に記憶された補正済の経路プログラムに従い、ロボット装置1の駆動部1Aに対して3次元でバリ取り加工を行うための駆動制御情報を出力する。ロボット装置1の駆動部1Aは、力制御部21から出力される駆動制御情報と、視覚センサ8、力センサ4などの加工制御情報とに基づいてロボットアームの3次元移動、所定のツール、例えばバリ取りツール5の駆動を行う。
〔第1のばね定数算出例〕
 以下、図1に示した計算部23によるばね定数算出処理を詳述する。
 計算部23は、ロボット装置1の代表的な位置・姿勢(例えばJ1~J6まで全て0)において、XYZ方向について押し付け力に対するたわみ量を実測する。ここで、押し付け力は、力センサ4の出力から得るものとする。計算部23は、押し付け力Fとたわみ量Lとが比例関係であると想定した場合、L=F/k(ばね定数)に従いばね定数kを算出(k=F/L)する。
 本例では、力センサ4により検知される押し付け力Fと測定されるたわみ量Lとから所定のツールに対応するばね定数kの値が算出される。なお、比例関係でないと想定した場合、関数Fを求める。プログラム生成部25は、ばね定数kまたは関数Fを全ての位置・姿勢で使用する。
 また、計算部23は、算出した所定のツールに対応するばね定数kを、ロボット装置1を識別する情報、ツール毎に基づくばね定数テーブルとして記憶部22に記憶させておく。
〔第2のばね定数算出例〕
 図2は、図1に示した計算部23によるたわみ量を測定するサンプリング点の位置座標を示す図である。図中の黒丸は、たわみ量を測定するサンプリング点を示す。
 図2に示す例では、計算部23がロボット装置1の動作範囲内の多くの点、例えばXYZ軸方向に等間隔に格子点を設定しておく。作業者は、各サンプリング点におけるロボット装置1の位置・姿勢において、XYZ方向について押し付け力に対するたわみ量を実測しておく。計算部23は、そのサンプリング点における所定のツールに対応するばね定数kxyzまたは関数fxyzを第1のたわみ量計算例と同様に計算により算出し、記憶部22に記憶しておく。
 なお、上述した計算例のようにたわみ量を実測することなく、シミュレーションにより算出してもよい。たわみ量は通常ロボットの機種ごとに異なるので、使用するロボットの機種ごとに行う。具体的には、ロボットのリンク長や各部品の質量・イナーシャや各軸の減速機などの特性を考慮した物理モデルを作成し、ロボット先端やエンドエフェクタにかかる押付力に対するたわみ量をシミュレーションによって算出する。ここで、ばね定数は、実測しているものとする。
 図3は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST1~ST5は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、ツールをワークに押し付ける加工におけるプログラム生成処理に対応する。
 まず、所定のツールに対応する経路データ、例えば稜線経路を辿る経路データまたは、直線経路を辿る経路データを記憶部22から読み出すと、プログラム生成部25は、経路データに従う経路プログラムを作成し、一時的に記憶部22に保持させておく(ST1)。ここで、経路データは、図示しないCADシステムであらかじめ作成され、取得部24が取得して記憶部22に記憶されているものとする。また、当該経路データは、先端部がたわむ量が考慮されていないデータである。
 次に、計算部23は、記憶部22に記憶させた所定のツール用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出した所定のツールに対応するばね定数kと、力センサ4が検出する所定のツールの押付け力とを用いて、ワークWに所定のツールを押し付けた際に発生するたわみ量を計算処理により算出する(ST2)。
 プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させている所定のツール用の経路プログラムの経路データを補正した新たな経路プログラムを作成する(ST3)。
 次に、プログラム生成部25は、新たに作成した経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST4)。ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST5へ進める。
 そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST5)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
 一方、ステップST4で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
 図4は、図1に示したプログラム生成部25が生成した経路プログラムに基づく稜線経路を示す概略平面図である。図中の黒丸の点のうち外側はたわみを考慮しない軌道上の点、内側はたわみを考慮した軌道上の点である。破線は、バリ取りツール5のたわみを考慮した先端位置を結んだ軌道を示す。
 これにより、ロボット装置1に取り付けたバリ取りツール5がワークWに当接した際に生じるたわみ量が考慮されるため、位置ずれなく、かつ精度よくワークWのバリ取りが可能となる。
 〔第1実施形態の効果〕
 本実施形態によれば、ロボットに取り付けた所定のツールをワークに対して実際に押し付ける際に発生するロボットのアームがたわむことによるたわみ量に従って補正した経路プログラムを自動生成することができる。
〔第2実施形態〕
 上記実施形態では、取得部24がCADシステムから取得して記憶されたワークに押し付ける所定のツールに対する経路データを、ロボット装置1のアームのたわみ量に従って補正した経路プログラムを生成する場合について説明した。以下、視覚センサ8を利用して得られるツールの経路データと、計算して求めるロボット装置1のアームのたわみ量とに基づいて経路プログラムを生成する実施形態について詳述する。以下、バリ取りツール5がバリ取り工程で移動する辿る経路を、ワークW上を稜線的に移動する経路とする例を説明する。
〔バリ取り工程を例とする経路プログラム生成処理〕
 図5は、本実施形態を示すプログラム生成装置の構成を説明するブロック図である。なお、図1と同一のものには同一の符号を付して、その説明を省略する。視覚センサ8は、ワークWの上部側において3次元上で移動可能に設けられ、対象物(ワークW)のバリ取り稜線をロボット装置1の先端部としてのエンドエフェクタが辿る稜線経路を撮像することで検出する。
 本実施形態では、計算部23は、力センサ4が検出するワークに押し付ける力と記憶したバリ取りツール5用のばね定数に基づいてたわみ量を計算により求めておく。プログラム生成部25は、視覚センサ8が実際に所定の工程、例えばバリ取り工程を撮像して得られる経路データに基づく経路プログラムを作成して記憶部22に記憶させておく。その後、プログラム生成部25は、記憶部22に記憶させた経路プログラムと、たわみ量とに基づいて新たな経路プログラムを作成する。
 なお、プログラム生成部25は、視覚センサ8が検出するバリ取りの稜線データを解析して、その稜線データに基づく経路プログラムを自動作成するときに、特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その場所を終了点とし、その後指定した経路で退避する経路プログラムを作成する。
 同様に、プログラム生成部25は、一旦退避する軌道を通り、特異点または各軸リミット、禁止領域から所定の距離だけ離れたら再び視覚センサ8によって検出された軌道に戻る経路プログラムを作成する。
 また、バリ取り中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。
 このため、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。以下、その位置・姿勢におけるロボットのたわみ量を事前に取得するか、上述した関数の計算によって求める。以下、本実施形態を適用するロボット装置1によるバリ取り工程を図面に基づいて説明する。
 図6~図8は、本実施形態を示すロボットによるバリ取り工程を説明する概略図であり、図6は、バリ取り軌道の始点にバリ取りツールが接近した状態を示し、図7は、自動生成された軌道が特異点の近くを通る状態を示し、図8は、特異点から離れるように退避する軌道(破線)を示す。
 本例のロボット装置1は、所定のインタフェースを介して接続される制御装置2により総括的に加工工程とプログラム生成処理が制御される。
 バリ取り装置は、ロボット装置1、ロボット装置1の制御装置2、ロボット手首(エンドエフェクタ)3、力センサ4、バリ取りツール5、ワーク7、視覚センサ8を備える。なお、ワーク7は、位置決め誤差があり、形状や大きさにもバラつきがある。なお、バリ取り部6は、バリ取りツール5がワーク7を用いて加工する部位(稜線)に対応する。
 ロボット装置1は、複数のアームを備える多関節ロボットで構成されている。ロボット装置1のアームの先端に位置するロボット手首3には、力センサ4が備えられ、力センサ4にはバリ取りツール5が取り付けられている。ロボット装置1は、制御装置2から出力される制御信号に従って、各関節に設けられた電気モータ(サーボモータ)を回転させることによって、種々の位置及び姿勢をとることができる。ロボット装置1は、図示されるものに限定されず、公知の形態を有する任意のロボットにも適用できる。
 バリ取りツール5は、ワークWのバリを除去するのに一般的に使用される工具であって特定の形態のものに限定されず、例えばカッター、グラインダ等がある。バリ取りツール5は、ロボット装置1のロボット手首3に固定されていて、ロボット装置1が動作するのに従ってロボット手首3と一緒に移動する。
 なお、制御装置2は、図示しないインタフェースを介して接続される入力部11、表示部12を備える。ロボット装置1は、駆動部1Aを備え、入力部11から加工開始指示を受け付けると、力制御部21からの指示に基づいて、バリ取りツール5の加工処理が実行される。
 記憶部22は、プログラム生成部25が生成したバリ取り加工のための経路プログラム、研磨加工のための経路プログラム、各加工プログラムに必要なワーク毎のパラメータ(形状、大きさ、材質)を更新可能に記憶している。
 なお、プログラム生成部25は、視覚センサ8が撮像して検出するバリ取りの稜線データ(経路データ)を解析して、ロボット手首(エンドエフェクタ)3がその稜線データを辿る経路プログラムを自動作成する。この際、プログラム生成部25は、エンドエフェクタ3が特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その座標値を終了点とし、その後指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。
 つまり、プログラム生成部25は、エンドエフェクタが辿る経路を計算された位置ズレ量によって補正した経路がロボット装置1の特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。
 同様に、プログラム生成部25は、エンドエフェクタ3がワークWから一旦退避する軌道を通り、特異点または各軸リミット、禁止領域から所定の距離だけ離れたら、再び視覚センサ8によって検出された軌道に戻る経路プログラムを作成する。
 なお、バリ取り中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。このため、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。
 図9は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST11~ST15は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、バリ取り加工におけるプログラム生成処理に対応する。
 まず、視覚センサ8がワークW上を撮像して、ワークWの稜線を辿る経路を検知して、プログラム生成部25に出力する。プログラム生成部25は、視覚センサ8から出力されるワークWの経路データを解析して経路プログラムを作成し、一時的に記憶部22に保持させておく(ST11)。
 次に、計算部23は、記憶部22に記憶させたバリ取りツール5用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出したバリ取りツール5に対応するばね定数kと、力センサ4が検出するバリ取りツール5の押付け力とを用いて、ワークWにバリ取りツール5を押し付けた際に発生するたわみ量を計算処理により算出する(ST12)。
 プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させているバリ取りツール用経路プログラムの経路データを補正した新たなバリ取りツール用経路プログラムを作成する(ST13)。
 次に、プログラム生成部25は、作成した新たなバリ取り用の経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST14)。
 ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST15へ進める。そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST15)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
 一方、ステップST14で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
 図10は、本実施形態を示すロボット装置1によるバリ取り工程を説明する概略図である。
 本例は、ロボット装置1がバリ取りツール5を取り付けた状態で、ワークWの円周部を円周軌道に従いバリ取りする工程を示している。仮想的軌道10は、ワークWの内側にある軌道であって、押し付け力によるたわみ分を仮想的に示した軌道である。プログラム生成部25は、仮想的軌道10(破線で示す)に示すたわみ分補正したバリ取り経路となる経路プログラムを生成する。
〔第2実施形態の効果〕
 本実施形態によれば、バリ取り用経路プログラムがロボット装置1のアームのたわみ量を考慮した稜線経路に基づくバリ取り加工を精度よく進めることができる。
〔第3実施形態〕
 上記実施形態では、バリ取り工程におけるたわみ補正に基づくプログラム生成処理について説明したが、ロボット装置1が研磨工程する場合も、ロボット装置1の工具とワークWが当接する場合、同様のたわみ現象が発生する。研磨ツールが研磨工程で移動する経路を、ワークWの面上を直線的に移動する直線経路の例を説明する。
 そこで、第2実施形態におけるバリ取りに代えて、研磨工程における特定の位置・姿勢におけるロボット装置1の押し付け量を計測することで、たわみ量で補正した研磨工程における経路プログラムを生成するように構成してもよい。
 本実施形態において、プログラム生成部25は、視覚センサ8が撮像して検出する研磨用のツールが研磨対象ワークの形状や表面を検出して研磨用の経路プログラムを自動作成するときに、エンドエフェクタ3が特異点・各軸のリミット値またはその他に設定した禁止領域に近づいたら、その座標値を終了点とし、その後指定した経路でエンドエフェクタ3を退避させる経路プログラムを作成する。つまり、プログラム生成部25は、エンドエフェクタ3が辿る経路を計算された位置ズレ量によって補正した経路がロボット装置1のエンドエフェクタ3が通過する特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路で研磨用のツールを退避させる経路プログラムを作成する。
 同様に、プログラム生成部25は、エンドエフェクタ3がワークWから一旦退避する軌道を通り、エンドエフェクタ3が特異点または各軸リミット、禁止領域から所定の距離だけ離れた後、再び視覚センサ8によって検知された軌道に戻す経路プログラムを作成する。
 なお、研磨中はロボット装置1により押付力を発生させるため、ロボット装置1のアームはたわんでいる。そこで、本実施形態では、特異点やリミットの判定もたわみ分を補正された位置で行うのが望ましい。
〔研磨工程を例とする経路プログラム生成処理〕
 図11は、本実施形態を示すプログラム生成装置の制御手順を説明するフローチャートである。なお、ST21~ST25は各ステップを示し、各ステップは、図示しないCPUがROM等に記憶された制御プログラムをRAM上にロードして実行することで実現される。本例は、研磨加工におけるプログラム生成処理に対応する。
 まず、視覚センサ8がワークW上を撮像して、ワークWの形状や表面に沿って直線的経路を辿る経路データをプログラム生成部25に出力する。プログラム生成部25は、視覚センサ8から出力された検出した経路データを解析して経路プログラムを作成し、一時的に記憶部22に保持させておく(ST21)。
 次に、計算部23は、記憶部22に記憶させた研磨ツール用のばね定数テーブルを、ロボット装置1の識別情報、ワークWのサイズ、材質等に基づいて参照し、読み出した研磨ツールに対応するばね定数kと、力センサ4が検出する研磨ツールの押付け力とを用いて、ワークWに研磨ツールを押し付けた際に発生するたわみ量を計算処理により算出する(ST22)。
 プログラム生成部25は、算出したたわみ量に基づいて、先に記憶部22に記憶させている研磨用経路プログラムの経路データを補正した新たな研磨用経路プログラムを作成する(ST23)。
 次に、プログラム生成部25は、新たに作成した研磨用の経路プログラムを解析して、ロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があるかどうかを判断する(ST24)。
 ここで、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所があると判断した場合、処理をST25へ進める。そして、プログラム生成部25は、ステップST4で特定されたその場所を終了点とし、そこから指定した経路で退避する経路プログラムを作成し(ST25)、処理を終了する。なお、作成した最終的な経路プログラムは、記憶部22に記憶させておくものとする。
 一方、ステップST24で、プログラム生成部25がロボット装置1の特異点、各駆動軸のリミット値、またはその他の禁止領域に近づく箇所がないと判断した場合、処理を終了する。
 図12は、本実施形態を示すロボット装置1による研磨工程を説明する概略図である。
 本例は、ロボット装置1が研磨ツールを取り付けた状態で、ワークWの上面を左右方向に直線的経路で移動と、上下方向に直線的経路で移動とを組み合わせて研磨経路11Aに従い連続的に研磨する工程を示している。仮想的経路12Aは、ワークWの内部にある軌道であって、押し付け力によるたわみ分を仮想的に示した経路である。プログラム生成部25は、仮想的経路12Aに示すたわみ分補正した研磨経路11Aとなる経路プログラムを生成する。
〔第3実施形態の効果〕
 本実施形態によれば、研磨用経路プログラムがロボット装置1のたわみ量を考慮した加工軌道にもとづいて研磨加工を精度よく進めることができる。
 なお、上記各実施形態では、経路プログラムを制御装置2が生成する場合について説明したが、制御装置2と所定のインタフェースを介して接続されるデータ処理装置、いわゆるパーソナルコンピュータにインストールされるOSで管理されるプログラムによって実現される構成としてもよい。
 また、上記実施形態では、バリ取り工程、または研磨工程を例として経路プログラムを作成する例として説明したが、何らかのツールをワークに押し付ける工程であればその他の工程にも適用できる。
 さらに、上記実施形態では、押し付け量を実測した後、計算式によりたわみ量を計算する例を示したが、本実施形態に示す経路データ、たわみ量等を記憶してたわみ状態をシミュレートするシミュレータ(PC)上で経路プログラムを作成して検証する構成としてもよい。
 また、本開示は上記実施形態に限定されるものではなく、本開示の目的を達成できる範囲での変更(プログラム、記憶媒体)、改良は本開示に含まれる。
 1 ロボット
 2 制御装置(制御部)
 3 ロボット手首(エンドエフェクタ)
 4 力センサ(検出部)
 5 バリ取りツール
 7 ワーク(対象物)
 8 視覚センサ(検知部)
 21 力制御部
 22 記憶部
 23 計算部
 24 通信部(取得部)
 25 プログラム生成部(生成部)

Claims (8)

  1.  プログラム生成装置であって、
     対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得部と、
     前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出部と、
     前記検出部が検出した押付力と、所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算部と、
     前記取得部が取得する前記経路データと、前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成部と、
    を備えるプログラム生成装置。
  2.  測定される前記ロボットの先端が前記対象物を押し付ける際に発生するたわみ量と、前記検出部が検出する押付力とから求まる所定の定数を記憶する記憶部
    を備える請求項1に記載のプログラム生成装置。
  3.  前記対象物に対して前記ロボットの先端が前記辿る経路を検知して前記経路データを出力する検知部を備え、
     前記生成部は、前記検知部が出力する前記経路データと、前記計算部が計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する、
    請求項1または2に記載のプログラム生成装置。
  4.  前記生成部は、前記ロボットの先端が前記辿る経路を前記位置ズレ量によって補正した経路が前記ロボットの特異点、各駆動軸のリミット値、または設定される禁止領域に近づいた際の座標値を終了点とし、該終了点から指定した経路に従い前記ロボットの先端を退避させる経路プログラムを生成する、
    請求項1乃至3のいずれか1項に記載のプログラム生成装置。
  5.  前記生成部は、前記ロボットの先端が終了点から所定の距離だけ退避させた後、前記ロボットの先端を検知部が検知した前記辿る経路に戻す経路プログラムを生成する、
    請求項1乃至4のいずれか1項に記載のプログラム生成装置。
  6.  前記ロボットの先端に取り付ける所定のツールは、バリ取りツールである、
    請求項1乃至5のいずれか1項に記載のプログラム生成装置。
  7.  前記ロボットの先端に取り付ける所定のツールは、研磨ツールである、
    請求項1乃至5のいずれか1項に記載のプログラム生成装置。
  8.  プログラム生成方法であって、
     対象物に対してロボットの先端が辿る経路を示す経路データを取得する取得ステップと、
     前記ロボットの先端を前記対象物に押し付ける押付力を検出する検出ステップと、
     測定される前記ロボットの先端が前記対象物を押し付ける際に発生するたわみ量と、前記検出ステップが検出する押付力とから求まる所定の定数を記憶する記憶ステップと、
     前記検出ステップが検出した押付力と、前記所定の定数とに基づいて、前記ロボットの先端がたわむことによって前記辿る経路がずれる位置ズレ量を計算する計算ステップと、
     前記取得ステップが取得する前記経路データと、前記計算ステップが計算した前記位置ズレ量とに基づいて、前記ロボットの先端の移動経路を制御する経路プログラムを自動生成する生成ステップと、
    を備えるプログラム生成方法。
PCT/JP2021/017390 2020-05-11 2021-05-06 プログラム生成装置およびプログラム生成方法 WO2021230135A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2022521861A JPWO2021230135A1 (ja) 2020-05-11 2021-05-06
DE112021002690.9T DE112021002690T5 (de) 2020-05-11 2021-05-06 Programmerzeugungsvorrichtung und Programmerzeugungsverfahren
CN202180033515.XA CN115515761A (zh) 2020-05-11 2021-05-06 程序生成装置以及程序生成方法
US17/998,146 US20230211500A1 (en) 2020-05-11 2021-05-06 Program generation device and program generation method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2020-082952 2020-05-11
JP2020082952 2020-05-11

Publications (1)

Publication Number Publication Date
WO2021230135A1 true WO2021230135A1 (ja) 2021-11-18

Family

ID=78525736

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/017390 WO2021230135A1 (ja) 2020-05-11 2021-05-06 プログラム生成装置およびプログラム生成方法

Country Status (5)

Country Link
US (1) US20230211500A1 (ja)
JP (1) JPWO2021230135A1 (ja)
CN (1) CN115515761A (ja)
DE (1) DE112021002690T5 (ja)
WO (1) WO2021230135A1 (ja)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6186194A (ja) * 1984-10-04 1986-05-01 株式会社日立製作所 ロボツトの衝突回避制御方法
JPH05329787A (ja) * 1992-05-26 1993-12-14 Hitachi Constr Mach Co Ltd 力制御ロボットにおける作業対象物の位置検出装置
JPH0839465A (ja) * 1994-07-28 1996-02-13 Nachi Fujikoshi Corp 産業用ロボットの撓み補正方法
JP2003191186A (ja) * 2001-12-25 2003-07-08 Nissan Motor Co Ltd ロボット教示データの補正方法
JP2004299010A (ja) * 2003-03-31 2004-10-28 Fanuc Ltd ロボットのたわみ補正装置及びたわみ補正方法
JP2012139789A (ja) * 2011-01-04 2012-07-26 Fanuc Ltd 粗倣い制御を行うロボットの制御装置
JP2012196753A (ja) * 2011-03-08 2012-10-18 Kobe Steel Ltd 多関節型ロボットの制御装置,制御方法及び制御プログラム
JP2015009324A (ja) * 2013-06-28 2015-01-19 ファナック株式会社 視覚センサ及び力センサを備えたバリ取り装置
JP2017140684A (ja) * 2016-02-12 2017-08-17 ファナック株式会社 ロボットプログラムの教示を行うロボットプログラミング装置
JP2018094638A (ja) * 2016-12-08 2018-06-21 ファナック株式会社 バリ取り装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6186194A (ja) * 1984-10-04 1986-05-01 株式会社日立製作所 ロボツトの衝突回避制御方法
JPH05329787A (ja) * 1992-05-26 1993-12-14 Hitachi Constr Mach Co Ltd 力制御ロボットにおける作業対象物の位置検出装置
JPH0839465A (ja) * 1994-07-28 1996-02-13 Nachi Fujikoshi Corp 産業用ロボットの撓み補正方法
JP2003191186A (ja) * 2001-12-25 2003-07-08 Nissan Motor Co Ltd ロボット教示データの補正方法
JP2004299010A (ja) * 2003-03-31 2004-10-28 Fanuc Ltd ロボットのたわみ補正装置及びたわみ補正方法
JP2012139789A (ja) * 2011-01-04 2012-07-26 Fanuc Ltd 粗倣い制御を行うロボットの制御装置
JP2012196753A (ja) * 2011-03-08 2012-10-18 Kobe Steel Ltd 多関節型ロボットの制御装置,制御方法及び制御プログラム
JP2015009324A (ja) * 2013-06-28 2015-01-19 ファナック株式会社 視覚センサ及び力センサを備えたバリ取り装置
JP2017140684A (ja) * 2016-02-12 2017-08-17 ファナック株式会社 ロボットプログラムの教示を行うロボットプログラミング装置
JP2018094638A (ja) * 2016-12-08 2018-06-21 ファナック株式会社 バリ取り装置

Also Published As

Publication number Publication date
JPWO2021230135A1 (ja) 2021-11-18
DE112021002690T5 (de) 2023-02-23
US20230211500A1 (en) 2023-07-06
CN115515761A (zh) 2022-12-23

Similar Documents

Publication Publication Date Title
US9731419B2 (en) System and method for programming robots
JP6126183B2 (ja) ターゲットマークを撮像するカメラを備えたロボットシステム
US9884425B2 (en) Robot, robot control device, and robotic system
JP6869159B2 (ja) ロボットシステム
CN114029961B (zh) 一种机械臂高精度传动的机器人控制方法及***
JP2019195885A (ja) 制御装置およびロボットシステム
JP2012020348A (ja) ロボットによるバリ除去方法
WO2021230135A1 (ja) プログラム生成装置およびプログラム生成方法
JP7307263B2 (ja) バリ取り装置、及び制御システム
JP5324260B2 (ja) 機上測定システム
JP4170530B2 (ja) ロボットの作業教示方法及び装置
CN111702787A (zh) 人机协作控制***及控制方法
JP7309592B2 (ja) ロボット曲面倣い制御方法
JP3380028B2 (ja) 力制御ロボットによるパイプ表面の倣い制御方法
EP3224004B1 (en) Robotic system comprising a telemetric device with a laser measuring device and a passive video camera
JPH05303425A (ja) 直接教示方式ロボット
JP7112528B2 (ja) 作業座標作成装置
JPH09267282A (ja) 多関節ロボットの作業対象物位置検出装置
JPH0839467A (ja) ロボット教示装置およびロボット教示方法
JP3078884B2 (ja) 倣い制御装置
WO2024135220A1 (ja) ロボット制御システム
WO2024111062A1 (ja) 制御装置、及びコンピュータ読み取り可能な記録媒体
JP7433509B2 (ja) 制御装置、ロボットシステム、学習装置、軌跡モデル、制御方法、およびプログラム
JPH0329540B2 (ja)
JP2023154797A (ja) 切削装置

Legal Events

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

Ref document number: 21804759

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022521861

Country of ref document: JP

Kind code of ref document: A

122 Ep: pct application non-entry in european phase

Ref document number: 21804759

Country of ref document: EP

Kind code of ref document: A1