WO2023002624A1 - 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置 - Google Patents

機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置 Download PDF

Info

Publication number
WO2023002624A1
WO2023002624A1 PCT/JP2021/027386 JP2021027386W WO2023002624A1 WO 2023002624 A1 WO2023002624 A1 WO 2023002624A1 JP 2021027386 W JP2021027386 W JP 2021027386W WO 2023002624 A1 WO2023002624 A1 WO 2023002624A1
Authority
WO
WIPO (PCT)
Prior art keywords
robot
mechanism data
unit
program
data
Prior art date
Application number
PCT/JP2021/027386
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 CN202180100497.2A priority Critical patent/CN117615882A/zh
Priority to DE112021007650.7T priority patent/DE112021007650T5/de
Priority to JP2023536309A priority patent/JPWO2023002624A1/ja
Priority to PCT/JP2021/027386 priority patent/WO2023002624A1/ja
Priority to TW111123434A priority patent/TW202304670A/zh
Publication of WO2023002624A1 publication Critical patent/WO2023002624A1/ja

Links

Images

Classifications

    • 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
    • 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/40387Modify without repeating teaching operation
    • 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/45104Lasrobot, welding robot

Definitions

  • the present invention relates to a robot control device that controls a robot based on mechanism data and a motion program correction device.
  • a robotic device comprises a robot and a work tool attached to the robot. By driving the robot, various operations can be performed while changing the position and posture of the work tool.
  • the position and orientation of the robot preferably closely match the desired position and orientation specified in the motion program. However, the position and orientation of the robot may slightly deviate from the desired position and orientation due to manufacturing errors in the components when the robot is manufactured, the effects of gravity when the robot is driven, and the like.
  • the robot's control device can control the drive motors for driving each component based on the mechanism data including the mechanism error parameters. By accurately setting the parameters included in the mechanism data corresponding to the robot, the actual position and orientation of the robot can be brought closer to the desired position and orientation.
  • the optimal parameters of the mechanism data change according to the state in which the robot operates.
  • the optimum parameters change according to, for example, the work performed by the robot device, the area in which the robot operates, the load applied when the robot is driven, and the like.
  • it is difficult to improve the accuracy of the position and posture of the robot that is, there is a problem that it is difficult to improve the accuracy of the work performed by the robot device.
  • a first aspect of the present disclosure is a control device for a robot having joints.
  • the control device includes a motion control unit that controls the motion of the robot based on mechanism data including parameters for calculating the relationship between the angles of the joints of the robot and the tip position of the robot.
  • the control device includes an acquisition unit that acquires a plurality of predetermined mechanism data, and a selection unit that selects one mechanism data from the plurality of mechanism data.
  • the control device includes a switching operation setting section that sets the operation of the robot when changing the mechanism data.
  • a second aspect of the present disclosure is a motion program correction device for a robot having joints.
  • the correction device includes a storage unit that stores mechanism data including parameters for calculating the relationship between the angles of the joints of the robot and the tip position of the robot.
  • the correction device includes an acquisition unit that acquires a plurality of previously created mechanism data from the storage unit.
  • the correction device includes a display section including an area for displaying a plurality of mechanism data and an area for displaying an operation program, and an input section for an operator to operate an image displayed on the display section.
  • the correction device includes a selection unit that selects one mechanism data from a plurality of mechanism data according to the operator's operation of the input unit, and a program correction unit that corrects the operation program based on the mechanism data selected by the selection unit. and a part.
  • a robot control device and an operation program correction device that can drive a robot with high accuracy according to various states of the robot.
  • FIG. 1 is a perspective view of a first robot device and a work according to Embodiment 1;
  • FIG. 1 is a block diagram of a first robotic device;
  • FIG. 1 is a perspective view of a robot of a first robotic device;
  • FIG. 4 is a block diagram illustrating first control of the first robot device;
  • FIG. FIG. 4 is a block diagram illustrating control for calculating angles of joints in the first control of the first robot apparatus;
  • FIG. 11 is a block diagram illustrating second control of the first robot device;
  • FIG. 11 is a block diagram illustrating third control of the first robot device;
  • FIG. 11 is a perspective view of the robot explaining a specific area for implementing the third control;
  • FIG. 11 is a graph illustrating fourth control of the first robot device;
  • FIG. 11 is an explanatory diagram of fifth control of the first robot apparatus;
  • FIG. 11 is a block diagram of a second robot device equipped with a correction device according to Embodiment 2; It is an image displayed on the display unit when performing the first control of the correction device. It is a block diagram explaining the 2nd control of a correction apparatus.
  • FIG. 11 is a block diagram of a simulation device in Embodiment 3;
  • FIG. 1 is a perspective view of a first robot device according to this embodiment.
  • FIG. 2 is a block diagram of the first robot device in this embodiment.
  • first robot apparatus 3 includes welding gun 5 as a work tool and robot 1 that changes the position and posture of welding gun 5 .
  • the robot device 3 includes a controller 2 that controls the robot 1 and welding gun 5 .
  • the first robot device 3 performs spot welding on the workpiece 98 .
  • the workpiece 98 of this embodiment is a car body.
  • the robot device 3 performs spot welding at predetermined welding points. Plate-shaped members facing each other are welded.
  • a robot can have one or more joints to change the orientation of its constituent members.
  • the robot 1 of this embodiment is an articulated robot including a plurality of joints.
  • Robot 1 includes an upper arm 11 and a lower arm 12 .
  • the lower arm 12 is supported by a swivel base 13 .
  • a swivel base 13 is supported by a base 14 .
  • Robot 1 includes a wrist 15 connected to the end of upper arm 11 .
  • Wrist 15 includes a flange 16 to which welding gun 5 is secured. Components such as the upper arm 11 and the lower arm 12 are connected via joints.
  • the robot 1 of this embodiment includes a drive motor 21 that drives components of the robot 1 .
  • the drive motor 21 of the present embodiment is arranged for each of the revolving base 13, the upper arm 11, the lower arm 12, the wrist 15, and the flange 16 as constituent members.
  • Welding gun 5 includes a tool drive 22 that drives welding gun 5 .
  • the tool drive device 22 of this embodiment includes a motor that drives the movable electrode with respect to the fixed electrode of the welding gun 5. As shown in FIG.
  • the robot 1 of this embodiment is a vertically articulated robot, but is not limited to this form. It is possible to employ a robot that changes its position and posture with any joint mechanism.
  • the working tool of the present embodiment is the welding gun 5 for performing spot welding, it is not limited to this form. A worker can select a work tool according to the work to be performed by the robot device. For example, a hand or the like for gripping a work can be adopted as the work tool.
  • the control device 2 includes an arithmetic processing device 24 (computer) including a CPU (Central Processing Unit) as a processor.
  • the arithmetic processing unit 24 has a RAM (Random Access Memory), a ROM (Read Only Memory), etc., which are connected to the CPU via a bus.
  • the robot device 3 automatically drives the robot 1 and the welding gun 5 based on an operation program 41 created in advance.
  • the arithmetic processing unit 24 of the control device 2 includes a storage unit 42 that stores information regarding control of the robot device 3 .
  • the storage unit 42 can be configured by a non-temporary storage medium capable of storing information.
  • the storage unit 42 can be configured with a storage medium such as a volatile memory, a nonvolatile memory, a magnetic storage medium, or an optical storage medium.
  • An operation program 41 for the robot device 3 to perform spot welding is stored in the storage unit 42 .
  • the storage unit of the present embodiment is built in the arithmetic processing unit 24 arranged in the main body of the control device 2, it is not limited to this form.
  • a storage device such as a server functioning as a storage unit may be connected to the arithmetic processing unit via an electric communication line.
  • the arithmetic processing unit 24 includes an operation control unit 43 that sends an operation command.
  • the motion control section 43 of this embodiment controls the motion of the robot 1 based on the motion program 41 and the mechanism data 80 .
  • the motion control section 43 sends a motion command for driving the robot 1 to the robot driving section 44 .
  • Robot drive 44 includes an electrical circuit that drives drive motor 21 .
  • the robot drive unit 44 supplies electricity to the drive motor 21 based on the operation command.
  • the motion control section 43 sends a motion command for driving the tool drive device 22 to the work tool drive section 45 .
  • the work tool drive 45 includes an electrical circuit that energizes the electrode and an electrical circuit that drives the motor of the movable electrode.
  • the work tool driving section 45 supplies electricity to the tool driving device 22 based on the operation command.
  • the motion control unit 43 corresponds to a processor that drives according to the motion program 41 of the robot device 3 .
  • the processor functions as an operation control unit 43 by reading the operation program 41 and performing control defined in the operation program 41 .
  • the arithmetic processing unit 24 includes a mechanism data changing unit 51 that changes mechanism data related to the robot.
  • Mechanism data change unit 51 includes an acquisition unit 52 that acquires a plurality of predetermined mechanism data 80 from storage unit 42 .
  • the mechanism data change unit 51 includes a selection unit 53 that selects one mechanism data from a plurality of mechanism data, and a switching operation setting unit 54 that sets the robot operation when changing the mechanism data.
  • the arithmetic processing unit 24 includes a display control unit 46 that controls an image displayed on the display unit 49b.
  • the mechanism data changing unit 51 and the display control unit 46 correspond to processors driven according to a predetermined program. Also, the acquisition unit 52, the selection unit 53, and the switching operation setting unit 54 included in the mechanism data change unit 51 correspond to a processor driven according to a predetermined program. Each unit functions by the processor reading the program and executing the control determined by the program.
  • the robot 1 includes a state detector for detecting the position and orientation of the robot 1.
  • the state detector in this embodiment includes a rotational position detector 23 attached to the drive motor 21 of each joint shaft.
  • the rotational position detector 23 is composed of an encoder, for example. The position and orientation of the robot 1 are detected from the output of the rotational position detector 23 .
  • the control device 2 includes a teaching operation panel 49 as an operation panel for the operator to operate the robot device 3.
  • the teaching operation panel 49 includes an input section 49a for inputting information regarding the robot 1 and the welding gun 5.
  • the input unit 49a is composed of operating members such as a keyboard, buttons, and dials.
  • the teaching operation panel 49 includes a display section 49b that displays information regarding control of the robot device 3.
  • FIG. The display unit 49b is composed of a display panel such as a liquid crystal display panel.
  • this display panel functions as an input section and a display section.
  • a world coordinate system 71 that does not move when the position and orientation of the robot 1 changes is set in the robot device 3 of the present embodiment.
  • the world coordinate system is also called the reference coordinate system.
  • the origin of the world coordinate system 71 is arranged at the base 14 of the robot 1 .
  • the world coordinate system 71 has a fixed origin position and a fixed direction of the coordinate axes. Even if the position and orientation of the robot 1 change, the position and orientation of the world coordinate system 71 do not change.
  • a tool coordinate system 72 having an origin set at an arbitrary position on the work tool is set in the robot device 3 .
  • the tool coordinate system 72 changes position and attitude along with the welding gun 5 .
  • the origin of the tool coordinate system 72 is set at the tool tip point 72a (the tip point of the fixed electrode).
  • the position of the robot 1 corresponds to the position of the tip point of the tool (the position of the origin of the tool coordinate system 72).
  • the posture of the robot 1 corresponds to the posture of the tool coordinate system 72 with respect to the world coordinate system 71 .
  • FIG. 3 shows a perspective view of the robot and welding gun of this embodiment.
  • FIG. 3 shows the joint axes J1 to JN of the respective joints. Since the robot 1 of this embodiment has six axes, joint axes J1 to J6 are shown. Angles DJ1 to DJN of the joints are defined on the respective joint axes J1 to JN. For example, the angle of the joint corresponds to the angle between the constituent members of the joint. Also, the angles of the joints correspond to the rotational positions of the drive motors 21 arranged corresponding to the respective joints.
  • the position and orientation of robot 1 may deviate from the desired position and orientation due to manufacturing errors in the components of robot 1, assembly errors when assembling the robot, the effects of gravity, and the like.
  • mechanism data 80 for adjusting the position and orientation of the robot 1 are set separately from the operation program 41 .
  • the mechanism data 80 includes parameters for calculating the relationship between the angles of the joints of the robot 1 and the tip position of the robot.
  • the mechanism data 80 is created in advance and stored in the storage unit 42 .
  • the mechanism data 80 includes mechanism error parameters.
  • Mechanism error parameters include DH parameters.
  • the DH parameter is a parameter in the DH method (Denavit Hartenberg) method.
  • a coordinate system is set for each joint axis, and the position and orientation of the robot can be expressed based on the relationship between the coordinate systems of adjacent joint axes.
  • the DH method uses parameters ai, .alpha.i, di and .theta.i.
  • the parameter ⁇ i is the angle between the links
  • the parameter di is the distance between the links (link length)
  • the parameter ai is the distance between the joint axes
  • the parameter ⁇ i is the torsion between the joint axes. indicate the angle.
  • the mechanism error parameters include an error in the position of the origin of the world coordinate system 71, an error in the DH parameter, an amount of deflection of the constituent members due to torque around the joint axis, an error in the gear ratio of the speed reducer, and the like.
  • Parameters other than the mechanism error parameter included in the mechanism parameter include the output value of the rotational position detector 23 when the robot is positioned at a predetermined reference position.
  • the parameters include the encoder pulse output value when the robot 1 is positioned at the zero position.
  • the mechanism data also includes a matrix or a relational expression that indicates the relative positional relationship between adjacent joints in the robot.
  • the mechanism data includes a transformation matrix T that defines the positional relationship between adjacent joints determined by the DH parameters.
  • the mechanism data includes a relational expression obtained by developing this transformation matrix T.
  • coordinate system 75 indicates the coordinate system at the kth joint.
  • a coordinate system 76 indicates a coordinate system at the (k+1)th joint next to the kth joint.
  • the conversion matrix T k for calculating the (k+1)th coordinate system from the kth coordinate system and the conversion matrix T UT for calculating the tool coordinate system from the flange coordinate system the tool A transformation matrix T1P for calculating the tip point position P P can be expressed by the following equation (1).
  • T1P T1T2 ...TnTUT ... ( 1 )
  • the mechanism data is a transformation matrix or a relational expression defined by a parameter (ai+ ⁇ ai) containing an error ⁇ ai for the design value parameter ai and a parameter ( ⁇ i+ ⁇ i) containing an error ⁇ i for the design value parameter ⁇ i. I don't mind.
  • Mechanism data includes at least one parameter among mechanism error parameters and parameters other than mechanism errors. That is, the mechanism data includes at least one or more parameters for driving the robot 1 based on variables that determine the position and orientation of the robot 1 specified by the motion program.
  • control device 2 of the present embodiment in the control device 2 of the present embodiment, a plurality of mechanism data are stored in the storage unit 42. FIG. Then, control for switching mechanism data is performed according to the state in which the robot device 3 is driven, the configuration of the robot device 3, the operation program, and the like.
  • FIG. 4 shows a block diagram for explaining the first control of the first robot device of the present embodiment.
  • control is performed to switch the mechanism data according to the operating program used.
  • first mechanism data 81 , second mechanism data 82 , third mechanism data 83 , and fourth mechanism data 84 are stored as mechanism data 80 in storage unit 42 .
  • Each mechanism data 81, 82, 83, 84 is created in advance by an operator.
  • the first mechanism data 81 includes all parameters necessary for driving the robot 1.
  • all parameter errors included in the mechanism data are zero.
  • ideal values are adopted when the robot 1 is designed. That is, all parameters included in the first mechanism data 81 are design values.
  • the second mechanism data 82 parameters are set that are applied to all areas in which the robot 1 can operate.
  • the second mechanism data 82 contains all the parameters required to drive the robot 1 .
  • the parameters of the second mechanism data 82 are set so that the accuracy of the position and orientation of the robot 1 is improved on average over the entire area in which the robot 1 operates.
  • the first mechanism data 81 and the second mechanism data 82 may be created, for example, when the robot 1 is manufactured in a factory.
  • the worker can create a plurality of operation programs according to the work performed by the robot device 3.
  • the first operating program and the second operating program are stored in the storage unit 42 .
  • the third mechanism data 83 is set so as to control the position and attitude of the robot 1 with high precision when the robot device 3 is driven by the first motion program.
  • the fourth mechanism data 84 is set so as to control the position and orientation of the robot 1 with high precision when the robot device 3 is driven by the second motion program.
  • the third mechanism data 83 and the fourth mechanism data 84 can be generated in advance by the operator according to the work content of the motion program, the motion speed of the robot, the work area, and the like.
  • Each mechanism data of the third mechanism data 83 and the fourth mechanism data 84 of this embodiment includes all parameters for driving the robot 1 .
  • the third mechanism data 83 and the fourth mechanism data 84 may contain some parameters for driving the robot 1 .
  • the parameter values of the first mechanism data 81 or the parameter values of the second mechanism data 82 are adopted. can be done.
  • the acquisition unit 52 of the mechanism data change unit 51 acquires multiple pieces of mechanism data 81 , 82 , 83 and 84 from the storage unit 42 .
  • the selection unit 53 selects one mechanism data from a plurality of mechanism data.
  • the selection unit 53 has an operation program determination unit 53a that determines the operation program to be used.
  • the case of using the first operating program will be described as an example.
  • the operating program determination unit 53a specifies the operating program to be used in the current work.
  • the selection unit 53 selects mechanism data based on the operating program to be used. For example, the operation program determination unit 53a automatically determines that the first operation program is to be used in the current work based on the information written in the operation program.
  • the selection unit 53 selects third mechanism data 83 generated for the first operation program from a plurality of pieces of mechanism data.
  • the operation program determination unit 53a may determine the operation program to be used in the current work as the first operation program based on the operator's operation of the input unit 49a.
  • the switching operation setting unit 54 sets the operation of the robot 1 when changing the mechanism data.
  • FIG. 5 shows a block diagram for explaining the control when switching mechanism data.
  • the switching operation setting unit 54 switches from the currently used first mechanism data 81 to the third mechanism data 83 .
  • the motion program 41 includes position data made up of variables that define the position and orientation of the robot at the teaching points.
  • the angle of each joint is set as a variable in the position data of the present embodiment.
  • the position data designates teaching angles DJ1 to DJN of the joints up to the N axis.
  • the angles of the joints correspond to the rotational positions of the drive motors 21 arranged on the respective joint shafts.
  • the variables of the position data are not limited to the angles of the joints.
  • the position and orientation of the tool coordinate system 72 may be designated by the coordinate values of the world coordinate system 71 as variables of the position data.
  • the switching operation setting unit 54 calculates the position and orientation of the robot (the position and orientation of the tool coordinate system 72) by forward transformation of kinematics (forward kinematics) using the teaching angles DJ1 to DJN of the joints. For example, the orthogonal position of the tool tip point 72a in the world coordinate system 71 is calculated.
  • the switching operation setting unit 54 applies the first mechanism data 81 as the mechanism data before switching to calculate the position and posture of the robot.
  • the position and orientation of the robot calculated here are the position and orientation desired by the operator.
  • the switching operation setting unit 54 calculates angles DJ1' to DJN' of the joints by performing inverse kinematics conversion (inverse kinematics) based on the position and posture of the robot. At this time, the switching operation setting unit 54 applies the post-switching third mechanism data 83 selected by the selecting unit 53 .
  • the switching operation setting unit 54 creates an operation command for the robot 1 so that the angles of the joints change from the teaching angles DJ1 to DJN to the angles DJ1' to DJN'.
  • the motion control section 43 changes the position and posture of the robot 1 based on the command from the switching motion setting section 54 .
  • the switching operation setting unit 54 changes the position and orientation of the robot 1 based on the current mechanism data to the position and orientation of the robot 1 calculated based on the mechanism data selected by the selection unit 53 .
  • the motion control unit 43 controls the motion of the robot 1 using the first motion program and the third mechanism data 83 selected by the selection unit 53, as in the control described above. do.
  • the work to be done by the robot is defined in the operation program of the robot.
  • the positions and postures that the robot can take, the work range of the robot, the work tools attached to the robot, and the like are determined.
  • the mechanism data changing unit 51 can change the mechanism data to drive the robot with high precision in accordance with the operation program used in the current work.
  • the motion program can contain directives specifying mechanism data.
  • the selection unit 53 can select mechanism data specified in the operation program. For example, a command statement using the third mechanism data can be written at the beginning of the first operating program.
  • the selection unit 53 can select the third mechanism data from a plurality of mechanism data based on the command sentence.
  • the mechanism data may be switched while the operation program is being executed.
  • a command statement designating predetermined mechanism data can be written for a specific robot motion command statement among a plurality of robot motion command statements included in the motion program.
  • change to the mechanism data specified in the command statement When executing a command statement for a specific operation, change to the mechanism data specified in the command statement. Then, after the control based on the specific command statement is completed, the original mechanism data can be used to drive the robot.
  • FIG. 6 shows a block diagram for explaining the second control of the first robot device in this embodiment.
  • the second control mechanism data 80 includes, in addition to the first mechanism data 81 and the second mechanism data 82, fifth mechanism data 85 for using the first work tool and the second work tool. and sixth mechanism data 86 for use.
  • the fifth mechanism data 85 has parameters set so that the position and orientation of the robot can be controlled with high accuracy when using the first work tool.
  • the sixth mechanism data 86 has parameters set so that the position and orientation of the robot can be controlled with high accuracy when using the second work tool.
  • the acquisition unit 52 acquires the first mechanism data 81 , the second mechanism data 82 , the fifth mechanism data 85 and the sixth mechanism data 86 from the storage unit 42 .
  • the selection unit 53 has a work tool determination unit 53b.
  • the work tool determination unit 53b can determine the work tool to be used based on the information of the operation program. Alternatively, the work tool determination unit 53b may determine the work tool to be used according to the operator's operation of the input unit 49a. Alternatively, if the work tool has a function of communicating with the work tool determination unit 53b, the work tool to be used may be automatically determined by communication with the work tool.
  • the work tool determination unit 53b determines to use the first work tool.
  • the selection unit 53 selects fifth mechanism data 85 corresponding to the first work tool from a plurality of mechanism data.
  • the switching operation setting unit 54 sets the operation of the robot 1 when changing from the currently selected mechanism data to the fifth mechanism data.
  • the motion control section 43 changes the position and posture of the robot based on the motion command from the switching motion setting section 54 . In subsequent control, the motion control section 43 controls the robot based on the fifth mechanism data 85 and the motion program 41 .
  • the weight of the work tool and the position of the center of gravity of the work tool may change.
  • the range of the robot's position and posture, or the operating speed of the robot, etc. may change according to the work tool.
  • the position and attitude of the robot can be controlled with high accuracy by switching to mechanism data according to the work tool.
  • FIG. 7 shows a block diagram for explaining the third control of the first robot device in this embodiment.
  • the mechanism data are switched according to the work area of the robot 1 .
  • the third control mechanism data 80 includes sixth mechanism data 86 for the first specific area and and seventh mechanism data 87 for a different second specific region. Each mechanism data 86, 87 is generated so that the robot 1 can be driven with high accuracy when the position of the robot 1 is arranged inside each specific area.
  • FIG. 8 shows a perspective view of the robot explaining the specific area of the robot.
  • a part of the area in which the robot 1 drives is predetermined as a specific area.
  • a spherical first specific region 101 is defined in the region in which the tool tip point 72a of the robot device 3 moves.
  • the range of positions of the tool tip point 72 a is defined by the coordinate values of the world coordinate system 71 .
  • the specific region may be determined by the range of angles of the joints on each joint axis.
  • Such a specific area can be designated, for example, by a command statement inside the operating program.
  • the mechanism data may contain a condition for designating the specific area.
  • the robot 1 is driven using the second mechanism data 82 covering the entire motion area of the robot 1 before switching the mechanism data.
  • Acquisition unit 52 acquires a plurality of mechanism data 81 , 82 , 86 , 87 .
  • the selection unit 53 in the third control has a current position determination unit 53c that determines the current position of the robot 1.
  • FIG. The current position determination unit 53c calculates the current position of the robot 1 based on the output of the rotational position detector 23 and the second mechanism data 82.
  • the current position determination unit 53c determines whether the robot 1 is positioned inside the first specific area 101 or not. If the position of the robot 1 is not located inside the first specific area 101, the current second mechanism data 82 is maintained. When the position of the robot 1 is arranged inside the first specific area 101 , the selection unit 53 selects the sixth mechanism data 86 corresponding to the first specific area 101 . The switching operation setting unit 54 sets the operation of the robot 1 when switching from the second mechanism data 82 to the sixth mechanism data 86 . Then, the motion control section 43 changes the position and posture of the robot 1 based on the command from the switching motion setting section 54 . After that, the motion control section 43 drives the robot based on the sixth mechanism data 86 .
  • the current position determination unit 53c can determine the position of the robot 1 at predetermined time intervals. Then, when the position of the robot 1 is out of the specific area 101 , the selection unit 53 selects the original second mechanism data 82 .
  • the switching operation setting unit 54 sets an operation for switching from the sixth mechanism data 86 to the second mechanism data 82 . Furthermore, the selection unit 53 selects the seventh mechanism data 87 when the position of the robot 1 is arranged inside the second specific area.
  • the switching operation setting unit 54 can set an operation for switching from the current mechanism data to the seventh mechanism data 87 .
  • the third control when it is desired to improve the control accuracy of the robot 1 in a specific area, it is possible to adopt mechanism data corresponding to the specific area. For example, inside the specific area 101, the positions and postures of the robots are close to each other. Mechanism data corresponding to the position and orientation of such a robot can be created in advance. In the third control, it is possible to improve the accuracy of controlling the position and orientation of the robot when the position of the robot is placed inside the specific area.
  • the switching operation setting unit 54 changes the position and posture of the robot 1 based on the mechanism data before change and the mechanism data after change.
  • the robot 1 or the work tool may come into strong contact with devices or objects arranged around the robot 1 .
  • equipment or objects arranged around the robot 1 may be damaged.
  • a sudden load may be applied to the robot or a sudden load may be applied to the work tool. This can have adverse effects on the robot or work tool.
  • the position and posture of robot 1 are controlled so as to avoid sudden movements of robot 1 when switching mechanism data.
  • FIG. 9 shows a graph of robot positions for explaining the fourth control of the first robot device of the present embodiment.
  • FIG. 9 shows the position of the robot that moves when the mechanism data is switched. That is, it shows the change in position from the position of the robot based on the mechanism data before change to the target position of the robot based on the mechanism data after change.
  • the switching operation setting unit 54 gradually reaches the position and orientation of the robot 1 based on the mechanism data selected by the selection unit 53 in a predetermined time length t1.
  • the fourth control it is possible to prevent the robot or work tool from making strong contact with other devices or objects, or from applying an excessive load to the robot or work tool.
  • the length of time t1 during which the robot moves from its current position to the target position based on the new mechanism data can be predetermined.
  • the amount of change in speed over time and the amount of change in acceleration over time when driving the robot may be determined in advance.
  • the switching operation setting unit 54 can set the operation of the robot so that the speed of a predetermined portion of the robot 1 does not deviate from a predetermined determination range.
  • the absolute value of velocity can be controlled to be less than the judgment value.
  • the motion of the robot can be set so that the moving speed of the tool tip point, the moving speed of the flange center point, or the moving speed of the wrist center point is within a predetermined speed range.
  • control may be performed by providing a judgment value for the velocity resolved for each coordinate axis of a predetermined coordinate system for each point.
  • the motion of the robot 1 may be controlled so that when the tip point of the tool moves, the speed does not exceed the determination value for each coordinate axis of the world coordinate system.
  • the switching operation setting unit 54 may control the rotation speed of the drive motor 21 arranged on each joint axis so as not to deviate from a predetermined determination range.
  • Acceleration can also be controlled in the same way as the speed limit.
  • the switching operation setting unit 54 can set the operation of the robot so that the acceleration of a predetermined portion of the robot does not deviate from a predetermined determination range.
  • the absolute value of acceleration can be controlled to be less than the judgment value.
  • the motion of the robot can be set so that the acceleration at a predetermined point such as the tip of the tool is within a predetermined acceleration range.
  • Other controls are similar to the speed limit control.
  • FIG. 10 shows an explanatory diagram of the fifth control of the first robot device of the present embodiment.
  • the switching operation setting unit 54 changes the position and attitude of the robot according to the mechanism data before change and the mechanism data after change when the mechanism data is switched.
  • changing the mechanism data may change the trajectory of the previously taught position and orientation of the robot. For this reason, the operator may need to perform teaching work again to correct the position and posture of the robot at the teaching point.
  • the switching operation setting unit 54 keeps the robot in a stopped state. That is, the switching operation setting unit 54 controls to maintain the position and posture of the robot. Then, assuming that the position and orientation of the robot 1 calculated using the mechanism data after switching are correct, the current position and orientation are corrected.
  • FIG. 10 shows control when switching from the third mechanism data 83 for the first operation program to the fourth mechanism data 84 for the second operation program.
  • the position and orientation of the robot 1 calculated based on each mechanism data are indicated by coordinate values of the world coordinate system 71 .
  • the X-axis coordinate value is changed from 1000 to 1001, for example.
  • the switching operation setting unit 54 corrects the current X-axis coordinate value to 1001 without driving the robot 1 .
  • Alignment is also performed for the Y, Z, W, P, and R axes without driving the robot 1, assuming that the coordinate values calculated based on the fourth mechanism data are correct.
  • the coordinate values displayed on the display section 49b of the teaching operation panel 49 the coordinate values when using the fourth mechanism data are displayed.
  • FIG. 2 A correction device according to the second embodiment will be described with reference to FIGS. 11 to 13.
  • FIG. The modification device in this embodiment modifies the motion program based on the mechanism data corresponding to the motion program of the robot device.
  • FIG. 11 shows a block diagram of the second robot device of this embodiment.
  • a second robotic device 7 comprises a robot 1 , a welding gun 5 and a controller 6 .
  • Control device 6 includes arithmetic processing device 25 and teaching operation panel 49 .
  • the robot controller 6 functions as a correction device.
  • the arithmetic processing unit 25 is configured by a computer having a CPU as a processor.
  • the arithmetic processing unit 25 includes a program processing unit 56 that performs control for modifying the operating program 41 .
  • the arithmetic processing unit 25 has a configuration in which a program processing unit 56 is added to the arithmetic processing unit 24 of the control device 2 of the first robot device 3 .
  • the program processing unit 56 has an acquiring unit 52 and a selecting unit 53 similar to the mechanism data changing unit 51 of the first robot device 3 in the first embodiment.
  • the program processing section 56 includes a program correction section 58 that corrects the operation program based on the mechanism data selected by the selection section 53 .
  • the program processing unit 56, acquisition unit 52, selection unit 53, and program correction unit 58 correspond to processors driven based on predetermined programs. Each unit functions by the processor performing processing based on a predetermined program.
  • Fig. 12 shows an example of an image displayed on the display section of the teaching operation panel.
  • control is performed to add a command sentence of mechanism data to be applied to the operation program to the operation program.
  • the image displayed by the display unit 49b is controlled by the display control unit 46.
  • FIG. The display area 89 of the display unit 49b has a display area 89a for displaying a plurality of mechanism data and a display area 89b for displaying a plurality of operating programs. Note that one operation program may be displayed in the display area 89b.
  • the display area 89a displays a plurality of mechanical data images 81a, 82a, 83a, and 84a.
  • a plurality of operating program images 91a, 92a, 93a, and 94a are displayed in the display area 89b.
  • the operator can operate the image displayed on the display unit 49b by operating the input unit 49a.
  • the operator sets the second motion program to use the first mechanism data.
  • the operator selects the image 92a of the second operation program after selecting the image 81a of the first mechanism data.
  • a predetermined button for setting the mechanism data is pressed.
  • the selection unit 53 selects the first mechanism data for the second motion program.
  • the selection unit 53 selects one piece of mechanism data from a plurality of pieces of mechanism data according to the operator's operation of the input unit 49a.
  • the program correction unit 58 corrects the operation program based on the first mechanism data selected by the selection unit 53.
  • the program correction unit 58 adds a command sentence to apply the first mechanism data selected by the selection unit 53 to the second operation program.
  • the program correction unit 58 can add to the operation program a command statement that applies the mechanism data selected by the selection unit 53 to the entire operation program.
  • the first part of the second motion program can contain a command statement for controlling the robot using the first mechanism data.
  • the first mechanism data can be automatically adopted.
  • the display control unit 46 can display the contents of one operation program in the display area 89b that displays the operation program. That is, it is possible to display all instruction statements included in the operating program.
  • the selection unit 53 can select a specific command sentence to which one mechanism data is applied.
  • the program correction unit 58 can add a command sentence to which the mechanism data selected by the selection unit 53 is applied to a specific command sentence to the operation program.
  • the operation program can be corrected by the operator's operation so that the desired mechanism data is applied to the entire operation program or part of the operation program.
  • the mechanism data changing unit 51 can read the modified operation program and set or change the mechanism data while controlling the robot 1 .
  • FIG. 13 shows a block diagram for explaining the second control of the correction device.
  • the motion program includes position data made up of variables that define the position and posture of the robot at the teaching points.
  • control is performed to rewrite the variables of the position data of the operation program to values corresponding to the mechanism data. That is, the program correction unit 58 calculates variables that determine the position and orientation of the robot when using the mechanism data selected by the selection unit 53, and sets them in the position data.
  • the position data is composed of teaching angles DJ1 to DJN at each joint.
  • the teaching angle DJ1 indicates the teaching angle at the joint portion of the joint axis J1.
  • the program correction unit 58 applies the first mechanism data, which is the design value mechanism data.
  • the program correction unit 58 calculates the position and orientation of the robot based on forward kinematics. At this time, the first mechanism data in which the error of all parameters is 0 is used. That is, the program correction unit 58 calculates the ideal position and orientation of the robot using the mechanism data at the time of design.
  • the program correction unit 58 calculates the angles DJ1' to DJN' of the joints as variables of the position data after correction by inverse kinematics based on the position and posture of the robot. At this time, the program correction unit 58 applies the fourth mechanism data. Then, the program modification unit 58 performs control to rewrite the teaching angles DJ1 to DJN of the joints in the position data of the motion program to angles DJ1' to DJN' of the joints.
  • control can be performed using the motion program containing the corrected position data and the mechanism data corresponding to the motion program.
  • the position and orientation of the robot can be brought closer to the desired position and orientation.
  • the program correction unit can correct position data including variables that define the position and orientation of the robot based on the mechanism data.
  • the correction device of this embodiment can generate an operation program for driving a robot with high accuracy.
  • FIG. 14 shows a block diagram of the simulation device of this embodiment.
  • the simulation device 4 of the present embodiment is an offline simulation device formed to simulate the motion of the first robot device 3 of the first embodiment.
  • the simulation device 4 arranges the three-dimensional model of the robot 1, the three-dimensional model of the welding gun 5, and the three-dimensional model of the workpiece 98 in the same virtual space, and simulates the motion of the robot device 3.
  • the simulation device 4 is composed of an arithmetic processing device (computer) including a CPU as a processor.
  • the simulation device 4 includes a storage unit 63 that stores arbitrary information regarding simulation of the robot device 3 .
  • the storage unit 63 can be configured by a non-temporary storage medium capable of storing information.
  • the storage unit 63 can be configured with a storage medium such as a volatile memory, a nonvolatile memory, a magnetic storage medium, or an optical storage medium.
  • Three-dimensional shape data 69 of the robot 1, the welding gun 5, and the workpiece 98 are input to the simulation device 4.
  • the three-dimensional shape data 69 for example, data output from a CAD (Computer Aided Design) device can be used.
  • the three-dimensional shape data 69 are stored in the storage section 63 .
  • An operation program 41 of the robot device 3 that performs the simulation is input to the simulation device 4 and stored in the storage unit 63 .
  • predetermined mechanism data 80 is stored in the storage unit 63 .
  • the simulation device 4 includes an input unit 61 for inputting information regarding simulation of the robot device 3 .
  • the input unit 61 is composed of operating members such as a keyboard, mouse, and dial.
  • the simulation device 4 includes a display section 62 that displays information regarding simulation of the robot device 3 .
  • the display unit 62 displays an image of the model of the robot device 3, an image of the model of the workpiece 98, and the like.
  • the display unit 62 is configured by a display panel such as a liquid crystal display panel. Note that when the simulation apparatus includes a touch panel type display panel, the display panel functions as an input unit and a display unit.
  • the simulation device 4 includes an arithmetic processing unit 64 that performs arithmetic processing for simulating the robot device 3 .
  • the arithmetic processing unit 64 includes a model generation unit 65 that generates a model of the robot device and a model of the work based on three-dimensional shape data 69 including three-dimensional shape data of the robot device 3 and three-dimensional shape data of the work 98. .
  • the arithmetic processing unit 64 includes a simulation execution unit 66 that simulates the motion of the robot device 3 .
  • the simulation execution unit 66 has a function of moving the model of the robot device on the screen according to the operation of the input unit 61 by the operator. Alternatively, the simulation execution unit 66 simulates the motion of the robot device 3 based on the motion program 41 created in advance.
  • the arithmetic processing unit 64, model generation unit 65, and simulation execution unit 66 correspond to processors driven according to a simulation program.
  • the processors function as respective units by executing control defined in the program.
  • the simulation device 4 includes a display control section 67 that controls an image displayed on the display section 62, a mechanism data changing section 51, and a program processing section 56.
  • the display control unit 67 of this embodiment displays the simulation result on the display unit 62 .
  • the display control unit 67 and mechanism data change unit 51 are the same as the display control unit and mechanism data change unit of the first robot device 3 in the first embodiment.
  • the program processing unit 56 is the same as the program processing unit of the second robot device 7 in the second embodiment.
  • the simulation device 4 can also include the mechanism data changing unit 51 and the program correcting unit 58 .
  • the simulation device 4 can simulate a robot device whose mechanism data has been changed by the mechanism data changer 51 .
  • the program processing unit 56 can modify the operating program based on the mechanism data.
  • the trajectory of the robot's position and posture may change.
  • the operator can confirm the motion of the robot using the simulation device. If the trajectory of the robot's position and orientation is inappropriate, the variables that determine the robot's position and orientation at the teaching points can be adjusted while performing a simulation with the simulation device 4 .

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

ロボットの制御装置は、機構データに基づいてロボットの動作を制御する動作制御部を備える。機構データは、ロボットの関節部における角度とロボットの先端位置との関係を算出するためのパラメータを含む。制御装置は、予め定められた複数の機構データを取得する取得部と、複数の機構データから1つの機構データを選定する選定部とを備える。制御装置は、機構データを変更する時のロボットの動作を設定する切替え動作設定部を備える。

Description

機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置
 本発明は、機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置に関する。
 ロボット装置は、ロボットおよびロボットに取り付けられた作業ツールを備える。ロボットが駆動することにより、作業ツールの位置および姿勢を変更しながら様々な作業を行うことができる。ロボットの位置および姿勢は、動作プログラムにて指定される所望の位置および姿勢と厳密に一致することが好ましい。しかしながら、ロボットを製造する時の構成部材の製造誤差、およびロボットを駆動する時の重力の影響などにより、ロボットの位置および姿勢は、所望の位置および姿勢から僅かにずれる場合がある。
 ロボットの実際の位置が所望の位置からずれる原因としては、関節軸同士の間のアームの長さの誤差等が考えられる。従来の技術においては、このような項目を機構誤差パラメータとして設定し、機構誤差パラメータごとに値を設定する方法が知られている。例えば、オフラインシミュレーション装置などにおいて、複数のロボット装置を備えるセルを形成することができる。そして、ロボット装置において、機構誤差パラメータの設定を行う方法が知られている(例えば、特許第6823024号公報および特許第5531996号公報)。
特許第6823024号公報 特許第5531996号公報
 ロボットの制御装置は、機構誤差パラメータを含む機構データに基づいて、それぞれの構成部材を駆動するための駆動モータを制御することができる。機構データに含まれるパラメータをロボットに対応して正確に設定することにより、ロボットの実際の位置および姿勢を所望の位置および姿勢に近づけることができる。
 ところが、機構データの最適なパラメータは、ロボットが動作する状態に応じて変化する。最適なパラメータは、例えば、ロボット装置が行う作業内容、ロボットが動作する領域、およびロボットが駆動する時に加わる負荷などに応じて変化する。ロボットが動作する状態は数多く存在する。ところが、機構データを固定してロボット装置を駆動する場合には、ロボットの位置および姿勢の精度の向上が難しいという問題が有った。すなわち、ロボット装置が行う作業の精度の向上が難しいという問題が有った。
 本開示の第1の態様は、関節部を有するロボットの制御装置である。制御装置は、ロボットの関節部における角度とロボットの先端位置との関係を算出するためのパラメータを含む機構データに基づいて、ロボットの動作を制御する動作制御部を備える。制御装置は、予め定められた複数の機構データを取得する取得部と、複数の機構データから1つの機構データを選定する選定部とを備える。制御装置は、機構データを変更する時のロボットの動作を設定する切替え動作設定部を備える。
 本開示の第2の態様は、関節部を有するロボットの動作プログラムの修正装置である。修正装置は、ロボットの関節部における角度とロボットの先端位置との関係を算出するためのパラメータを含む機構データを記憶する記憶部を備える。修正装置は、記憶部から予め作成された複数の機構データを取得する取得部を備える。修正装置は、複数の機構データを表示する領域および動作プログラムを表示する領域を含む表示部と、作業者が表示部に表示される画像を操作する入力部とを備える。修正装置は、作業者の入力部の操作に応じて、複数の機構データから1つの機構データを選定する選定部と、選定部にて選定された機構データに基づいて動作プログラムを修正するプログラム修正部とを備える。
 本開示の一態様によれば、ロボットの様々な状態に応じて、高い精度にてロボットを駆動できるロボットの制御装置および動作プログラムの修正装置を提供することができる。
実施の形態1における第1のロボット装置およびワークの斜視図である。 第1のロボット装置のブロック図である。 第1のロボット装置のロボットの斜視図である。 第1のロボット装置の第1の制御を説明するブロック図である。 第1のロボット装置の第1の制御において、関節部の角度を算出する制御を説明するブロック図である。 第1のロボット装置の第2の制御を説明するブロック図である。 第1のロボット装置の第3の制御を説明するブロック図である。 第3の制御を実施するための特定領域を説明するロボットの斜視図である。 第1のロボット装置の第4の制御を説明するグラフである。 第1のロボット装置の第5の制御の説明図である。 実施の形態2における修正装置を備える第2のロボット装置のブロック図である。 修正装置の第1の制御を行う時に表示部に表示される画像である。 修正装置の第2の制御を説明するブロック図である。 実施の形態3におけるシミュレーション装置のブロック図である。
 (実施の形態1)
 図1から図10を参照して、実施の形態1におけるロボットの制御装置について説明する。図1は、本実施の形態における第1のロボット装置の斜視図である。図2は、本実施の形態における第1のロボット装置のブロック図である。図1および図2を参照して、第1のロボット装置3は、作業ツールとしての溶接ガン5と、溶接ガン5の位置および姿勢を変更するロボット1とを備える。ロボット装置3は、ロボット1および溶接ガン5を制御する制御装置2を備える。
 第1のロボット装置3は、ワーク98に対してスポット溶接を実施する。本実施の形態のワーク98は、自動車の車体である。ロボット装置3は、予め定められた溶接点においてスポット溶接を実施する。互いに対向する板状部材が溶接される。
 ロボットは、構成部材の向きを変更するために1個以上の関節部を有することができる。本実施の形態のロボット1は、複数の関節部を含む多関節ロボットである。ロボット1は、上部アーム11と下部アーム12とを含む。下部アーム12は、旋回ベース13に支持されている。旋回ベース13は、ベース14に支持されている。ロボット1は、上部アーム11の端部に連結されているリスト15を含む。リスト15は、溶接ガン5を固定するフランジ16を含む。上部アーム11および下部アーム12等の構成部材は、関節部を介して連結されている。
 本実施の形態のロボット1は、ロボット1の構成部材を駆動する駆動モータ21を含む。本実施の形態の駆動モータ21は、構成部材としての旋回ベース13、上部アーム11、下部アーム12、リスト15、およびフランジ16ごとに配置されている。溶接ガン5は、溶接ガン5を駆動するツール駆動装置22を含む。本実施の形態のツール駆動装置22は、溶接ガン5の固定電極に対して可動電極を駆動するモータを含む。
 本実施の形態のロボット1は、垂直多関節ロボットであるが、この形態に限られない。任意の関節部の機構にて位置および姿勢を変更するロボットを採用することができる。また、本実施の形態の作業ツールは、スポット溶接を行う溶接ガン5であるが、この形態に限られない。作業者は、ロボット装置が行う作業に応じた作業ツールを選定することができる。例えば、作業ツールとしてワークを把持するハンドなどを採用することができる。
 制御装置2は、プロセッサとしてのCPU(Central Processing Unit)を含む演算処理装置24(コンピュータ)を備える。演算処理装置24は、CPUにバスを介して互いに接続されたRAM(Random Access Memory)およびROM(Read Only Memory)等を有する。ロボット装置3は、予め作成された動作プログラム41に基づいて、ロボット1および溶接ガン5を自動的に駆動する。
 制御装置2の演算処理装置24は、ロボット装置3の制御に関する情報を記憶する記憶部42を含む。記憶部42は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。例えば、記憶部42は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、または光記憶媒体等の記憶媒体にて構成することができる。ロボット装置3がスポット溶接を行うための動作プログラム41は、記憶部42に記憶される。
 なお、本実施の形態の記憶部は、制御装置2の本体部に配置されている演算処理装置24に内蔵されているが、この形態に限られない。記憶部として機能するサーバ等の記憶装置が電気通信回線を介して演算処理装置に接続されていても構わない。
 演算処理装置24は、動作指令を送出する動作制御部43を含む。本実施の形態の動作制御部43は、動作プログラム41および機構データ80に基づいてロボット1の動作を制御する。動作制御部43は、ロボット1を駆動するための動作指令をロボット駆動部44に送出する。ロボット駆動部44は、駆動モータ21を駆動する電気回路を含む。ロボット駆動部44は、動作指令に基づいて駆動モータ21に電気を供給する。また、動作制御部43は、ツール駆動装置22を駆動する動作指令を作業ツール駆動部45に送出する。作業ツール駆動部45は、電極に電気を流す電気回路および可動電極のモータを駆動する電気回路を含む。作業ツール駆動部45は、動作指令に基づいてツール駆動装置22に電気を供給する。
 動作制御部43は、ロボット装置3の動作プログラム41に従って駆動するプロセッサに相当する。プロセッサが動作プログラム41を読み込んで、動作プログラム41に定められた制御を実施することにより、動作制御部43として機能する。
 演算処理装置24は、ロボットに関する機構データを変更する機構データ変更部51を含む。機構データ変更部51は、記憶部42から予め定められた複数の機構データ80を取得する取得部52を含む。機構データ変更部51は、複数の機構データから1つの機構データを選定する選定部53と、機構データを変更する時のロボットの動作を設定する切替え動作設定部54とを含む。演算処理装置24は、表示部49bに表示する画像を制御する表示制御部46を含む。
 機構データ変更部51および表示制御部46は、予め定められたプログラムに従って駆動するプロセッサに相当する。また、機構データ変更部51に含まれる取得部52、選定部53、および切替え動作設定部54は、予め定められたプログラムに従って駆動するプロセッサに相当する。プロセッサがプログラムを読み込んで、プログラムに定められた制御を実施することにより、それぞれのユニットとして機能する。
 ロボット1は、ロボット1の位置および姿勢を検出するための状態検出器を含む。本実施の形態における状態検出器は、各関節軸の駆動モータ21に取り付けられた回転位置検出器23を含む。回転位置検出器23は、例えばエンコーダにより構成されている。回転位置検出器23の出力により、ロボット1の位置および姿勢が検出される。
 制御装置2は、作業者がロボット装置3を操作する操作盤としての教示操作盤49を含む。教示操作盤49は、ロボット1および溶接ガン5に関する情報を入力する入力部49aを含む。入力部49aは、キーボード、ボタン、およびダイヤルなどの操作部材により構成されている。教示操作盤49は、ロボット装置3の制御に関する情報を表示する表示部49bを含む。表示部49bは、液晶表示パネル等の表示パネルにて構成されている。なお、教示操作盤がタッチパネル方式の表示パネルを備える場合に、この表示パネルは入力部および表示部として機能する。
 本実施の形態のロボット装置3には、ロボット1の位置および姿勢が変化した時に不動のワールド座標系71が設定されている。ワールド座標系は基準座標系とも称される。図1に示す例では、ロボット1のベース14に、ワールド座標系71の原点が配置されている。ワールド座標系71は、原点の位置が固定され、座標軸の向きが固定されている。ロボット1の位置および姿勢が変化してもワールド座標系71の位置および姿勢は変化しない。
 ロボット装置3には、作業ツールの任意の位置に設定された原点を有するツール座標系72が設定されている。ツール座標系72は、溶接ガン5と共に位置および姿勢が変化する。本実施の形態では、ツール座標系72の原点は、ツール先端点72a(固定電極の先端点)に設定されている。本実施の形態では、ロボット1の位置は、ツール先端点の位置(ツール座標系72の原点の位置)に対応する。また、ロボット1の姿勢は、ワールド座標系71に対するツール座標系72の姿勢に対応する。
 図3に、本実施の形態のロボットおよび溶接ガンの斜視図を示す。図3には、それぞれの関節部における関節軸J1~JNが示されている。本実施の形態のロボット1は6軸を有するために、関節軸J1~J6が示されている。それぞれの関節軸J1~JNにおいて、関節部の角度DJ1~DJNが定められる。例えば、関節部の角度は、関節部における構成部材同士の角度が相当する。また、関節部の角度は、それぞれの関節部に対応して配置された駆動モータ21の回転位置に対応する。
 図2および図3を参照して、ロボット1の位置および姿勢は、ロボット1の構成部材の製造誤差、ロボットを組み立てるときの組み立て誤差、および重力の影響などにより、所望の位置および姿勢からずれる場合がある。本実施の形態では、動作プログラム41とは別に、ロボット1の位置および姿勢を調整するための機構データ80が設定されている。
 機構データ80は、ロボット1の関節部の角度とロボットの先端位置との関係を算出するためのパラメータを含む。機構データ80は、予め作成されて記憶部42に記憶されている。
 機構データ80には、機構誤差パラメータが含まれる。機構誤差パラメータには、DHパラメータが含まれる。DHパラメータは、DH法(Denavit Hartenberg)法におけるパラメータである。DH法では、それぞれの関節軸に座標系を設定し、互いに隣り合う関節軸の座標系同士の間の関係に基づいてロボットの位置および姿勢を表現することができる。DH法では、パラメータai,αi,di,θiが使用される。パラメータθiはリンク同士の間の角度であり、パラメータdiはリンク同士の間の距離(リンク長)であり、パラメータaiは関節軸同士の間の距離であり、パラメータαiは関節軸同士のねじれの角度を示す。
 また、機構誤差パラメータには、ワールド座標系71の原点の位置の誤差、DHパラメータの誤差、関節軸周りのトルクによる構成部材の撓み量、および減速機のギヤ比の誤差等が含まれる。
 機構パラメータに含まれる機構誤差パラメータ以外のパラメータとしては、ロボットの位置が予め定められた基準位置に配置されている時の回転位置検出器23の出力値を含む。例えば、パラメータは、ロボット1がゼロ位置に配置されている時のエンコーダのパルスの出力値を含む。
 また、機構データは、ロボットにおいて互いに隣接する関節部同士の間の相対的な位置関係を示す行列または関係式を含む。機構データには、上記のDHパラメータによって定められた隣り合う関節部同士の位置関係を定めた変換行列Tが含まれる。また、機構データには、この変換行列Tを展開した関係式が含まれる。
 図3を参照して、座標系75は、k番目の関節部における座標系を示す。座標系76は、k番目の関節部の隣の(k+1)番目の関節部における座標系を示す。k番目の座標系から(k+1)番目の座標系を算出するための変換行列Tk、およびフランジ座標系からツール座標系を算出するための変換行列TUTとすると、1番目の座標系からツール先端点の位置PPを算出するための変換行列T1Pは、次の式(1)で表すことができる。
        T1P=T12 ... TnUT  …(1)
 式(1)の変換行列を展開すると、1番目の座標系からツール先端点の位置PPを算出するための関係式を得ることができる。この変換行列または関係式は、設計値に対する誤差を含んでいても構わない。例えば、機構データは、設計値のパラメータaiに対して誤差Δaiを含むパラメータ(ai+Δai)および設計値のパラメータαiに対して誤差Δαiを含むパラメータ(αi+Δαi)等によって定められる変換行列または関係式であっても構わない。
 機構データには、機構誤差パラメータおよび機構誤差以外のパラメータのうち、少なくとも1つのパラメータが含まれる。すなわち、機構データは、動作プログラムにて指定されるロボット1の位置および姿勢を定める変数に基づいて、ロボット1を駆動するためのパラメータを少なくとも1つ以上含む。
 図2および図3を参照して、本実施の形態の制御装置2は、複数の機構データが記憶部42に記憶されている。そして、ロボット装置3が駆動する状態、ロボット装置3の構成、および動作プログラム等に応じて、機構データを切り替える制御を行う。
 図4に、本実施の形態の第1のロボット装置の第1の制御を説明するブロック図を示す。図2および図4を参照して、第1の制御では、使用される動作プログラムに応じて機構データを切替える制御を行う。第1の制御では、機構データ80として、第1の機構データ81、第2の機構データ82、第3の機構データ83、および第4の機構データ84が記憶部42に記憶されている。それぞれの機構データ81,82,83,84は、作業者により予め作成されている。
 第1の機構データ81には、ロボット1を駆動するために必要な全てのパラメータが含まれている。第1の機構データ81では、機構データに含まれる全てのパラメータの誤差が0である。それぞれのパラメータは、ロボット1を設計したときの理想的な値が採用されている。すなわち、第1の機構データ81に含まれる全てのパラメータは設計値である。
 第2の機構データ82には、ロボット1の動作が可能な全ての領域に対して適用されるパラメータが設定されている。第2の機構データ82には、ロボット1を駆動するために必要な全てのパラメータが含まれている。第2の機構データ82のパラメータは、ロボット1が動作する領域の全体において、平均的にロボット1の位置および姿勢の精度が向上するように設定されている。第1の機構データ81および第2の機構データ82は、例えば、工場にてロボット1を製造した時に作成されても構わない。
 作業者は、ロボット装置3が行う作業に応じて、複数の動作プログラムを作成することができる。図4に示す例では、第1の動作プログラムおよび第2の動作プログラムが記憶部42に記憶されている。第3の機構データ83は、第1の動作プログラムにてロボット装置3を駆動する時に、高い精度にてロボット1の位置および姿勢を制御するように設定されている。第4の機構データ84は、第2の動作プログラムにてロボット装置3を駆動する時に、高い精度にてロボット1の位置および姿勢を制御するように設定されている。第3の機構データ83および第4の機構データ84は、動作プログラムの作業内容、ロボットの動作速度、および作業領域等に応じて、作業者が予め生成することができる。
 本実施の形態の第3の機構データ83および第4の機構データ84のそれぞれの機構データは、ロボット1を駆動するための全てのパラメータを含んでいる。または、第3の機構データ83および第4の機構データ84は、ロボット1を駆動するための一部のパラメータが含まれていても構わない。この場合に、第3の機構データ83または第4の機構データ84に含まれないパラメータについては、第1の機構データ81のパラメータの値または第2の機構データ82のパラメータの値を採用することができる。
 第1のロボット装置3の第1の制御において、機構データ変更部51の取得部52は、複数の機構データ81,82,83,84を記憶部42から取得する。選定部53は、複数の機構データから1つの機構データを選定する。第1の制御では、選定部53は、使用される動作プログラムを判定する動作プログラム判定部53aを有する。ここでは、第1の動作プログラムを使用する場合を例に取りあげて説明する。
 動作プログラム判定部53aは、今回の作業において使用する動作プログラムを特定する。選定部53は、使用される動作プログラムに基づいて機構データを選定する。例えば、動作プログラム判定部53aは、動作プログラムに記載されている情報に基づいて、今回の作業において第1の動作プログラムを使用することを自動的に判定する。選定部53は、複数の機構データから第1の動作プログラムのために生成された第3の機構データ83を選定する。
 または、動作プログラム判定部53aは、作業者の入力部49aの操作に基づいて、今回の作業において使用する動作プログラムを、第1の動作プログラムと判定しても構わない。選定部53により選定された機構データが現在の機構データと異なる場合に、切替え動作設定部54は、機構データを変更する時のロボット1の動作を設定する。
 図5に、機構データを切替えるときの制御を説明するブロック図を示す。ここでの例では、切替え動作設定部54は、現在に使用されている第1の機構データ81から第3の機構データ83に切り替える。動作プログラム41は、教示点におけるロボットの位置および姿勢を定める変数により構成される位置データを含む。本実施の形態の位置データには、それぞれの関節部の角度が変数として設定されている。位置データには、N軸までの関節部の教示角度DJ1~DJNが指定されている。関節部の角度は、それぞれの関節軸に配置される駆動モータ21の回転位置に対応する。なお、位置データの変数としては、関節部の角度に限られない。例えば、位置データの変数としては、ツール座標系72の位置および姿勢がワールド座標系71の座標値にて指定されていても構わない。
 切替え動作設定部54は、関節部の教示角度DJ1~DJNを用いて、運動学の順変換(順運動学)により、ロボットの位置および姿勢(ツール座標系72の位置および姿勢)を算出する。例えば、ワールド座標系71におけるツール先端点72aの直交位置を算出する。切替え動作設定部54は、切替え前の機構データとして第1の機構データ81を適用してロボットの位置および姿勢を算出する。ここで算出されるロボットの位置および姿勢は、作業者が所望する位置および姿勢になる。
 次に、切替え動作設定部54は、ロボットの位置および姿勢に基づいて、運動学の逆変換(逆運動学)を行うことにより、関節部の角度DJ1’~DJN’を算出する。この時に、切替え動作設定部54は、選定部53によって選定された切替え後の第3の機構データ83を適用する。
 切替え動作設定部54は、関節部の角度が教示角度DJ1~DJNから角度DJ1’~DJN’になるようにロボット1の動作指令を作成する。動作制御部43は、切替え動作設定部54からの指令に基づいて、ロボット1の位置および姿勢を変更する。
 このように、切替え動作設定部54は、現在の機構データに基づくロボット1の位置および姿勢から選定部53によって選定された機構データに基づいて算出されるロボット1の位置および姿勢になるようにロボット1の動作を設定する。この後の制御においても、前述の制御と同様に、動作制御部43は、第1の動作プログラムと、選定部53にて選定された第3の機構データ83を用いてロボット1の動作を制御する。
 ロボット装置の動作プログラムには、ロボット装置が行う作業が定められている。ロボット装置の作業に応じて、ロボットが取り得る位置および姿勢、ロボットの作業範囲、およびロボットに取り付けられる作業ツール等が定まる。動作プログラムに応じて作成された機構データを使用することにより、動作プログラムに基づいて行う作業のロボットの位置および姿勢を高い精度で制御することができる。機構データ変更部51は、今回の作業にて使用する動作プログラムに対応して高い精度でロボットを駆動できる機構データに変更することができる。
 上記の実施の形態においては、使用する動作プログラムおよび機構データを判定する制御を例に取り上げて説明したが、この形態に限られない。動作プログラムに機構データを指定する指令文を含めることができる。選定部53は、動作プログラムに指定されている機構データを選定することができる。例えば、第1の動作プログラムの最初の部分に、第3の機構データを使用する指令文を記載することができる。選定部53は、指令文に基づいて複数の機構データから第3の機構データを選定することができる。
 または、動作プログラムを実施している期間中に、機構データを切り替えても構わない。動作プログラムに含まれる複数のロボットの動作の指令文のうち、特定のロボットの動作の指令文に対して、所定の機構データを指定する指令文を記載することができる。特定の動作の指令文を実行する場合に、指令文にて指定された機構データに変更する。そして、特定の指令文による制御が終了した後には、元の機構データを用いてロボットを駆動することができる。
 図6に、本実施の形態における第1のロボット装置の第2の制御を説明するブロック図を示す。第2の制御では、ロボット1に取り付ける作業ツールに応じて、機構データを切り替える。第2の制御の機構データ80は、第1の機構データ81および第2の機構データ82に加えて、第1の作業ツールを使用するための第5の機構データ85と第2の作業ツールを使用するための第6の機構データ86とを含む。第5の機構データ85は、第1の作業ツールを使用する時に、高い精度でロボットの位置および姿勢を制御できるようにパラメータが設定されている。第6の機構データ86は、第2の作業ツールを使用する時に、高い精度でロボットの位置および姿勢を制御できるようにパラメータが設定されている。
 取得部52は、記憶部42から第1の機構データ81、第2の機構データ82、第5の機構データ85、および第6の機構データ86を取得する。選定部53は、作業ツール判定部53bを有する。作業ツール判定部53bは、動作プログラムの情報に基づいて使用する作業ツールを判定することができる。または、作業ツール判定部53bは、作業者の入力部49aの操作に応じて使用する作業ツールを判定しても構わない。または、作業ツールが作業ツール判定部53bと通信する機能を有する場合には、作業ツールとの通信により使用する作業ツールを自動的に判定しても構わない。
 ここでは、第1の作業ツールおよび第2の作業ツールのうち、第1の作業ツールを使用する例を説明する。作業ツール判定部53bは、第1の作業ツールを使用することを判定する。選定部53は、複数の機構データから第1の作業ツールに対応した第5の機構データ85を選定する。
 切替え動作設定部54は、現在に選定されている機構データから第5の機構データに変更するときのロボット1の動作を設定する。動作制御部43は、切替え動作設定部54からの動作指令に基づいてロボットの位置および姿勢を変更する。この後の制御においては、動作制御部43は、第5の機構データ85および動作プログラム41に基づいて、ロボットを制御する。
 作業ツールを取替えると、作業ツールの重さおよび作業ツールの重心位置等が変化する場合が有る。または、作業ツールに応じたロボットの位置および姿勢の範囲またはロボットの動作速度等が変化する場合が有る。第2の制御では、作業ツールに応じた機構データに切り替えることにより、高い精度でロボットの位置および姿勢を制御することができる。
 図7に、本実施の形態における第1のロボット装置の第3の制御を説明するブロック図を示す。第3の制御においては、ロボット1の作業領域に応じて機構データを切替える。第3の制御の機構データ80は、第1の機構データ81および第2の機構データ82に加えて、第1の特定領域のための第6の機構データ86と、第1の特定領域とは異なる第2の特定領域のための第7の機構データ87とを含む。それぞれの機構データ86,87は、ロボット1の位置がそれぞれの特定領域の内部に配置されている時に、高い精度でロボット1を駆動できるように生成されている。
 図8に、ロボットの特定領域を説明するロボットの斜視図を示す。ロボット1が駆動する領域のうち一部の領域が特定領域に予め定められている。ここでの例では、ロボット装置3のツール先端点72aが移動する領域のうち、球状の第1の特定領域101が定められている。例えば、第1の特定領域101は、ツール先端点72aの位置の範囲がワールド座標系71の座標値にて定められている。または、特定領域は、それぞれの関節軸における関節部の角度の範囲によって定められても構わない。このような特定領域は、例えば、動作プログラムの内部に指令文にて指定することができる。または、機構データの内部に特定領域を指定するための条件が含まれていても構わない。
 図7および図8を参照して、ここでの例では、機構データの切替え前には、ロボット1の全ての動作領域を対象とした第2の機構データ82を用いてロボット1が駆動されている。取得部52は、複数の機構データ81,82,86,87を取得する。第3の制御における選定部53は、現在のロボット1の位置を判定する現在位置判定部53cを有する。現在位置判定部53cは、回転位置検出器23の出力および第2の機構データ82に基づいて、現在のロボット1の位置を算出する。
 現在位置判定部53cは、ロボット1の位置が第1の特定領域101の内部に配置されているか否かを判定する。ロボット1の位置が第1の特定領域101の内部に配置されていない場合には、現在の第2の機構データ82が維持される。ロボット1の位置が第1の特定領域101の内部に配置されている場合に、選定部53は、第1の特定領域101に対応する第6の機構データ86を選定する。切替え動作設定部54は、第2の機構データ82から第6の機構データ86に切り替える時のロボット1の動作を設定する。そして、動作制御部43は、切替え動作設定部54からの指令に基づいて、ロボット1の位置および姿勢を変更する。その後に、動作制御部43は、第6の機構データ86に基づいてロボットを駆動する。
 現在位置判定部53cは、予め定められた時間間隔ごとに、ロボット1の位置を判定することができる。そして、ロボット1の位置が特定領域101から出た場合に、選定部53は、元の第2の機構データ82を選定する。切替え動作設定部54は、第6の機構データ86から第2の機構データ82に切替える動作を設定する。更に、選定部53は、第2の特定領域の内部にロボット1の位置が配置されている場合に、第7の機構データ87を選定する。切替え動作設定部54は、現在の機構データから第7の機構データ87に切替える動作を設定することができる。
 第3の制御では、特定領域においてロボット1の制御の精度を向上したい場合に、特定領域に応じた機構データを採用することができる。例えば、特定領域101の内部では、ロボットの位置および姿勢が近い状態になる。このようなロボットの位置および姿勢に対応した機構データを予め作成することができる。第3の制御では、ロボットの位置が特定領域の内部に配置された時に、ロボットの位置および姿勢を制御する精度を向上させることができる。
 ところで、機構データ変更部51にて機構データを変更すると、ロボット1の位置および姿勢が変化する。切替え動作設定部54は、変更前の機構データと変更後の機構データとに基づいて、ロボット1の位置および姿勢を変更する。ここで、ロボット1の位置および姿勢を急激に変化させると、ロボット1の周りに配置されている装置または物などに、ロボット1または作業ツールが強く接触する場合がある。この結果、ロボット1の周りに配置されている装置または物が損傷する場合が有る。または、ロボットの重量および作業ツールの重量により、ロボットに急激な負荷が加わったり、作業ツールに急激な負荷が加わったりする場合が有る。この結果、ロボットまたは作業ツールに悪影響を及ぼす場合がある。本実施の形態の第4の制御では、機構データを切替える時に、ロボット1の急激な動作を避けるように、ロボット1の位置および姿勢を制御する。
 図9に、本実施の形態の第1のロボット装置の第4の制御を説明するロボットの位置のグラフを示す。図9では、機構データを切り替えた時に移動するロボットの位置を示している。すなわち、変更前の機構データに基づくロボットの位置から変更後の機構データに基づくロボットの目標位置までの位置の変化を示している。
 第4の制御では、切替え動作設定部54は、予め定められた時間長さt1にて、選定部53にて選定された機構データに基づくロボット1の位置および姿勢に徐々に到達するように、ロボット1の動作を設定する。図9に示す例においては、ロボット1の駆動の開始時の近傍(開始時の直後)およびロボット1の駆動の終了時の近傍(終了時の直前)において、ロボット1の駆動の速度の変化が小さくなるように設定されている。そして、所定の時間t1をかけてロボットの位置および姿勢を緩やかに変更している。
 第4の制御を実施することにより、ロボットまたは作業ツールが他の装置または物に強く接触したり、ロボットまたは作業ツールに過剰な負荷が加わったりすることを抑制できる。ロボットの位置が現在の位置から新たな機構データに基づく目標位置まで移動するときの時間長さt1は、予め定めておくことができる。または、ロボットを駆動するときの速度の時間経過に伴う変化量および加速度の時間経過に伴う変化量を予め定めておいても構わない。
 ここで、切替え動作設定部54は、ロボット1を駆動する場合に、ロボット1の予め定められた部分の速度が予め定められた判定範囲を逸脱しないように、ロボットの動作を設定することができる。例えば、速度の絶対値が判定値未満になるように制御することができる。具体的には、ツール先端点の移動速度、フランジ中心点の移動速度、またはリスト中心点の移動速度が、予め定められた速度範囲内になるように、ロボットの動作を設定することができる。
 また、それぞれの点に対して所定の座標系の座標軸ごとに分解した速度について判定値を設けて制御を行っても構わない。例えば、ツール先端点が移動する時に、ワールド座標系の座標軸ごとに速度の判定値を超えないように、ロボット1の動作を制御しても構わない。または、切替え動作設定部54は、各関節軸に配置された駆動モータ21の回転速度が、予め定められた判定範囲を逸脱しないように制御しても構わない。
 加速度についても速度の制限と同様の制御を実施することができる。切替え動作設定部54は、ロボットを駆動する場合に、ロボットの予め定められた部分の加速度が、予め定められた判定範囲を逸脱しないようにロボットの動作を設定することができる。例えば、加速度の絶対値が判定値未満になるように制御することができる。具体的には、ツール先端点等の所定の点の加速度が予め定められた加速度範囲内になるように、ロボットの動作を設定することができる。その他の制御は、速度を制限する制御と同様である。
 このような速度を制限する制御または加速度を制限する制御を行うことにより、ロボットまたは作業ツールに過剰な負荷が加わることを抑制することができる。また、ロボットまたは作業ツールが周辺の装置または物に接触した時に、ロボット、作業ツール、または周辺の装置または物が損傷することを抑制できる。
 図10に、本実施の形態の第1のロボット装置の第5の制御の説明図を示す。前述の制御においては、切替え動作設定部54は、機構データを切替える時に、変更前の機構データと変更後の機構データに応じてロボットの位置および姿勢を変更する。ところが、機構データを変更することにより、既に教示されたロボットの位置および姿勢の軌跡が変わってしまう場合が有る。このために、作業者は、再度の教示作業を行って教示点におけるロボットの位置および姿勢を修正する作業を行う場合が有る。
 第5の制御においては、機構データを変更する時に、切替え動作設定部54は、ロボットが停止した状態を維持する。すなわち、切替え動作設定部54は、ロボットの位置および姿勢を維持するように制御する。そして、切替え後の機構データを用いて算出されるロボット1の位置および姿勢が正しいとして、現在の位置および姿勢を修正する。
 図10に示す例では、第1の動作プログラムのための第3の機構データ83から第2の動作プログラムのための第4の機構データ84に切替えたときの制御を示している。それぞれの機構データに基づいて算出されるロボット1の位置および姿勢が、ワールド座標系71の座標値にて示されている。
 機構データを切替えることにより、例えば、X軸の座標値は1000から1001に変更される。しかしながら、切替え動作設定部54は、ロボット1を駆動せずに、現在のX軸の座標値を1001に修正する。Y軸、Z軸、W軸、P軸、およびR軸についても、ロボット1を駆動せずに、第4の機構データに基づいて算出された座標値が正しいとして位置合わせを行う。教示操作盤49の表示部49bに表示される座標値としては、第4の機構データを使用した時の座標値を表示する。
 第5の制御を行うことにより、機構データを変更したときにロボットの位置および姿勢が変化して、周りの装置または物に接触したり、ロボットまたは作業ツールに過剰な負荷が加わったりすることを回避することができる。
 (実施の形態2)
 図11から図13を参照して、実施の形態2における修正装置について説明する。本実施の形態における修正装置は、ロボット装置の動作プログラムに対応する機構データに基づいて、動作プログラムを修正する。
 図11に、本実施の形態の第2のロボット装置のブロック図を示す。第2のロボット装置7は、ロボット1、溶接ガン5、および制御装置6を備える。制御装置6は、演算処理装置25と教示操作盤49とを含む。ここでの例では、ロボットの制御装置6が修正装置として機能する。演算処理装置25は、プロセッサとしてのCPUを有するコンピュータにて構成されている。演算処理装置25は、動作プログラム41を修正するための制御を行うプログラム処理部56を含む。演算処理装置25は、第1のロボット装置3の制御装置2の演算処理装置24に対してプログラム処理部56が追加されている構成を有する。
 プログラム処理部56は、実施の形態1における第1のロボット装置3の機構データ変更部51と同様の取得部52および選定部53を有する。プログラム処理部56は、選定部53にて選定された機構データに基づいて動作プログラムを修正するプログラム修正部58を備える。プログラム処理部56、取得部52、選定部53、およびプログラム修正部58は、予め定められたプログラムに基づいて駆動するプロセッサに相当する。プロセッサが予め定められたプログラムに基づいて処理を行うことにより、それぞれのユニットとして機能する。
 図12に、教示操作盤の表示部に表示される画像の例を示す。本実施の形態の修正装置の第1の制御では、動作プログラムに対して適用する機構データの指令文を、動作プログラムに追加する制御を実施する。表示部49bが表示する画像は表示制御部46により制御されている。表示部49bの表示領域89は、複数の機構データを表示する表示領域89aおよび複数の動作プログラムを表示する表示領域89bを有する。なお、表示領域89bには、1つの動作プログラムが表示されていても構わない。ここでの例では、表示領域89aには、複数の機構データの画像81a,82a,83a,84aが表示されている。表示領域89bには、複数の動作プログラムの画像91a,92a,93a,94aが表示されている。
 作業者は、入力部49aを操作することにより、表示部49bに表示される画像を操作することができる。ここでの例では、作業者は、第2の動作プログラムに対して第1の機構データを使用するように設定する。例えば、作業者は、第1の機構データの画像81aを選定した後に、第2の動作プログラムの画像92aを選定する。そして、機構データを設定するための所定のボタンを押す。この操作を行うことにより、矢印111に示すように、選定部53は、第2の動作プログラムに対して第1の機構データを選定する。選定部53は、作業者の入力部49aの操作に応じて、複数の機構データから1つの機構データを選定する。
 プログラム修正部58は、選定部53にて選定された第1の機構データに基づいて動作プログラムを修正する。プログラム修正部58は、選定部53にて選定された第1の機構データを適用する指令文を第2の動作プログラムに追加する。プログラム修正部58は、1つの動作プログラムの全体に対して、選定部53にて選定された機構データを適用する指令文を動作プログラムに追加することができる。例えば、第2の動作プログラムの最初の部分に、第1の機構データを使用してロボットを制御する指令文を記載することができる。第2の動作プログラムを実行する時には、自動的に第1の機構データを採用することができる。
 または、表示制御部46は、動作プログラムを表示する表示領域89bに、1つの動作プログラムの内容を表示することができる。すなわち、動作プログラムに含まれる全ての指令文を表示することができる。そして、作業者の入力部49aの操作により、選定部53は、1つの機構データを適用する特定の指令文を選定することができる。プログラム修正部58は、特定の指令文に対して、選定部53にて選定された機構データを適用する指令文を動作プログラムに追加することができる。
 このように、修正装置の第1の制御では、作業者の操作により、動作プログラムの全体または動作プログラムの一部に所望の機構データを適用するように、動作プログラムを修正することができる。ロボット1を駆動する時に、機構データ変更部51は、修正された動作プログラムを読み込んで、機構データを設定したり変更したりしながら、ロボット1を制御することができる。
 次に、本実施の形態の修正装置の第2の制御について説明する。図13に、修正装置の第2の制御を説明するブロック図を示す。動作プログラムは、教示点におけるロボットの位置および姿勢を定めた変数により構成される位置データを含む。第2の制御においては、動作プログラムの位置データの変数を機構データに対応した値に書き換える制御を実施する。すなわち、プログラム修正部58は、選定部53にて選定された機構データを使用した時のロボットの位置および姿勢を定める変数を算出して位置データに設定する。
 ここでの例では、動作プログラムに第4の機構データを適用する例を説明する。位置データは、それぞれの関節部における教示角度DJ1~DJNにて構成されている。例えば、教示角度DJ1は、関節軸J1の関節部における教示角度を示している。プログラム修正部58は、設計値の機構データである第1の機構データを適用する。プログラム修正部58は、順運動学に基づいてロボットの位置および姿勢を算出する。この時に、全てのパラメータの誤差が0である第1の機構データを使用する。すなわち、プログラム修正部58は、設計時の機構データを用いて、理想的なロボットの位置および姿勢を算出する。
 次に、プログラム修正部58は、ロボットの位置および姿勢に基づいて、逆運動学により、修正後の位置データの変数としての関節部の角度DJ1’~DJN’を算出する。この時に、プログラム修正部58は、第4の機構データを適用する。そして、プログラム修正部58は、動作プログラムの位置データの関節部の教示角度DJ1~DJNを、関節部の角度DJ1’~DJN’に書き換える制御を実施する。
 実際にロボットを駆動して作業を行う時には、修正後の位置データを含む動作プログラムと、動作プログラムに対応する機構データとを用いて制御を実施すことができる。上記の例では、関節部の角度DJ1’~DJN’および第4の機構データを用いてロボット1を制御することにより、ロボットの位置および姿勢を所望の位置および姿勢に近づけることができる。この場合に、図5に示す順変換および逆変換の制御を行う必要は無く、修正後の位置データに基づいてロボットを制御することができる。
 このように、プログラム修正部は、機構データに基づいてロボットの位置および姿勢を定めた変数を含む位置データを修正することができる。本実施の形態の修正装置は、高い精度でロボットを駆動する動作プログラムを生成することができる。
 その他の修正装置を含む第2のロボット装置の構成、作用、および効果については、実施の形態1の第1のロボット装置と同様であるので、ここでは説明を繰り返さない。
 (実施の形態3)
 図14を参照して、実施の形態3におけるシミュレーション装置について説明する。図14に、本実施の形態のシミュレーション装置のブロック図を示す。本実施の形態のシミュレーション装置4は、実施の形態1の第1のロボット装置3の動作を模擬するように形成されたオフラインシミュレーション装置である。
 シミュレーション装置4は、ロボット1の3次元モデル、溶接ガン5の3次元モデル、およびワーク98の3次元モデルを同一の仮想空間に配置して、ロボット装置3の動作のシミュレーションを実施する。
 シミュレーション装置4は、プロセッサとしてのCPUを含む演算処理装置(コンピュータ)にて構成されている。シミュレーション装置4は、ロボット装置3のシミュレーションに関する任意の情報を記憶する記憶部63を備える。記憶部63は、情報の記憶が可能で非一時的な記憶媒体にて構成されることができる。例えば、記憶部63は、揮発性メモリ、不揮発性メモリ、磁気記憶媒体、または光記憶媒体等の記憶媒体にて構成することができる。
 シミュレーション装置4には、ロボット1、溶接ガン5、およびワーク98の3次元形状データ69が入力される。3次元形状データ69としては、例えばCAD(Computer Aided Design)装置から出力されるデータを用いることができる。3次元形状データ69は、記憶部63に記憶される。シミュレーションを実施するロボット装置3の動作プログラム41は、シミュレーション装置4に入力されて記憶部63に記憶される。また、予め定められた機構データ80は、記憶部63に記憶される。
 シミュレーション装置4は、ロボット装置3のシミュレーションに関する情報を入力する入力部61を含む。入力部61は、キーボード、マウス、およびダイヤルなどの操作部材により構成されている。シミュレーション装置4は、ロボット装置3のシミュレーションに関する情報を表示する表示部62を含む。表示部62は、ロボット装置3のモデルの画像およびワーク98のモデルの画像等を表示する。表示部62は、液晶表示パネル等の表示パネルにて構成されている。なお、シミュレーション装置がタッチパネル方式の表示パネルを備える場合に、表示パネルは入力部および表示部として機能する。
 シミュレーション装置4は、ロボット装置3のシミュレーションのために演算処理を行う演算処理部64を含む。演算処理部64は、ロボット装置3の3次元形状データおよびワーク98の3次元形状データを含む3次元形状データ69に基づいて、ロボット装置のモデルおよびワークのモデルを生成するモデル生成部65を含む。演算処理部64は、ロボット装置3の動作のシミュレーションを実施するシミュレーション実行部66を含む。
 シミュレーション実行部66は、作業者による入力部61の操作に応じて、ロボット装置のモデルを画面上で動かす機能を有する。または、シミュレーション実行部66は、予め作成された動作プログラム41に基づいてロボット装置3の動作のシミュレーションを実施する。
 演算処理部64、モデル生成部65、およびシミュレーション実行部66は、シミュレーションのプログラムに従って駆動するプロセッサに相当する。プロセッサがプログラムに定められた制御を実施することにより、それぞれのユニットとして機能する。
 シミュレーション装置4は、表示部62に表示する画像を制御する表示制御部67と、機構データ変更部51と、プログラム処理部56とを含む。本実施の形態の表示制御部67は、シミュレーションの結果を表示部62に表示する。表示制御部67および機構データ変更部51は、実施の形態1における第1のロボット装置3の表示制御部および機構データ変更部と同様である。また、プログラム処理部56は、実施の形態2における第2のロボット装置7のプログラム処理部と同様である。
 シミュレーション装置4においても、機構データ変更部51およびプログラム修正部58を備えることができる。シミュレーション装置4では、機構データ変更部51にて機構データを変更したロボット装置のシミュレーションを実施することができる。または、プログラム処理部56にて、機構データに基づいて動作プログラムを修正することができる。
 機構データ変更部にて機構データを変更したり、プロブラム処理部にて動作プロブラムを修正したりする場合に、ロボットの位置および姿勢の軌跡が変化する場合が有る。作業者は、シミュレーション装置によりロボットの動作を確認することができる。そして、ロボットの位置および姿勢の軌跡が不適切な場合には、シミュレーション装置4にてシミュレーションを行いながら、教示点におけるロボットの位置および姿勢を定める変数を調整することができる。
 その他のシミュレーション装置の構成、作用および効果については、実施の形態1におけるロボット装置および実施の形態2におけるロボット装置と同様であるので、ここでは説明を繰り返さない。
 上記の実施の形態は、適宜組み合わせることができる。上述のそれぞれの図において、同一または相等する部分には同一の符号を付している。なお、上記の実施の形態は例示であり発明を限定するものではない。また、実施の形態においては、請求の範囲に示される実施の形態の変更が含まれている。
 1 ロボット
 2,6 制御装置
 3,7 ロボット装置
 4 シミュレーション装置
 21 駆動モータ
 23 回転位置検出器
 24,25 演算処理装置
 41 動作プログラム
 42 記憶部
 43 動作制御部
 49 教示操作盤
 49a 入力部
 49b 表示部
 51 機構データ変更部
 52 取得部
 53 選定部
 54 切替え動作設定部
 56 プログラム処理部
 58 プログラム修正部
 61 入力部
 62 表示部
 63 記憶部
 64 演算処理部
 80,81,82,83,84,85,86,87 機構データ
 101 特定領域

Claims (15)

  1.  関節部を有するロボットの制御装置であって、
     ロボットの関節部における角度とロボットの先端位置との関係を算出するためのパラメータを含む機構データに基づいて、ロボットの動作を制御する動作制御部と、
     予め定められた複数の機構データを取得する取得部と、
     複数の機構データから1つの機構データを選定する選定部と、
     機構データを変更する時のロボットの動作を設定する切替え動作設定部と、を備える、制御装置。
  2.  前記切替え動作設定部は、現在の機構データに基づくロボットの位置および姿勢から前記選定部にて選定された機構データに基づくロボットの位置および姿勢になるように、ロボットの動作を設定する、請求項1に記載の制御装置。
  3.  前記切替え動作設定部は、予め定められた時間長さにて、前記選定部にて選定された機構データに基づくロボットの位置および姿勢に徐々に到達するように、ロボットの動作を設定する、請求項2に記載の制御装置。
  4.  前記切替え動作設定部は、ロボットを駆動する場合に、ロボットの予め定められた部分の速度が予め定められた判定範囲を逸脱しないようにロボットの動作を設定する、請求項2または3に記載の制御装置。
  5.  前記切替え動作設定部は、ロボットを駆動する場合に、ロボットの予め定められた部分の加速度が予め定められた判定範囲を逸脱しないようにロボットの動作を設定する、請求項2から4のいずれか一項に記載の制御装置。
  6.  前記切替え動作設定部は、機構データを変更するときに、ロボットの位置および姿勢を維持する、請求項1に記載の制御装置。
  7.  ロボットは、ロボットの構成部材を駆動するための駆動モータと、駆動モータの回転位置を検出する回転位置検出器とを含み、
     機構データは、ロボットの位置が予め定められた基準位置に配置されている時の回転位置検出器の出力値を含む、請求項1から6のいずれか一項に記載の制御装置。
  8.  機構データは、ロボットにおいて互いに隣接する関節部同士の間の相対的な位置関係を示す行列または関係式を含む、請求項1から6のいずれか一項に記載の制御装置。
  9.  前記行列または前記関係式は、設計値に対する誤差を含む、請求項8に記載の制御装置。
  10.  前記動作制御部は、動作プログラムに基づいてロボットの動作を制御し、
     前記動作プログラムには、機構データを指定する指令文が含まれており、
     前記選定部は、前記動作プログラムにて指定されている機構データを選定する、請求項1に記載の制御装置。
  11.  ロボットが駆動する領域のうち一部の特定領域に対応する機構データが予め定められており、
     前記選定部は、ロボットの位置が特定領域の内部に配置されている場合に、特定領域に対応する機構データを選定する、請求項1に記載の制御装置。
  12.  関節部を有するロボットの動作プログラムの修正装置であって、
     ロボットの関節部における角度とロボットの先端位置との関係を算出するためのパラメータを含む機構データを記憶する記憶部と、
     前記記憶部から予め作成された複数の機構データを取得する取得部と、
     複数の機構データを表示する領域および前記動作プログラムを表示する領域を含む表示部と、
     作業者が前記表示部に表示される画像を操作する入力部と、
     前記作業者の入力部の操作に応じて、複数の機構データから1つの機構データを選定する選定部と、
     前記選定部にて選定された機構データに基づいて前記動作プログラムを修正するプログラム修正部と、を備える、修正装置。
  13.  前記プログラム修正部は、前記選定部にて選定された機構データを適用する指令文を前記動作プログラムに記載する、請求項12に記載の修正装置。
  14.  前記プログラム修正部は、1つの前記動作プログラムの全体に対して、前記選定部にて選定された機構データを適用する指令文を前記動作プログラムに記載する、請求項13に記載の修正装置。
  15.  前記動作プログラムは、教示点におけるロボットの位置および姿勢を定めた変数により構成される位置データを含み、
     前記プログラム修正部は、前記選定部にて選定された機構データを使用した時のロボットの位置および姿勢を定める変数を算出して位置データに設定する、請求項12に記載の修正装置。
PCT/JP2021/027386 2021-07-21 2021-07-21 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置 WO2023002624A1 (ja)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202180100497.2A CN117615882A (zh) 2021-07-21 2021-07-21 根据机构数据来控制机器人的机器人的控制装置以及动作程序的修正装置
DE112021007650.7T DE112021007650T5 (de) 2021-07-21 2021-07-21 Roboter-steuerungsvorrichtung, die den roboter auf der grundlage von vorrichtungsdaten steuert, und korrekturvorrichtung für das betriebsprogramm
JP2023536309A JPWO2023002624A1 (ja) 2021-07-21 2021-07-21
PCT/JP2021/027386 WO2023002624A1 (ja) 2021-07-21 2021-07-21 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置
TW111123434A TW202304670A (zh) 2021-07-21 2022-06-23 基於機構資料控制機器人之機器人的控制裝置及動作程式的修正裝置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2021/027386 WO2023002624A1 (ja) 2021-07-21 2021-07-21 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置

Publications (1)

Publication Number Publication Date
WO2023002624A1 true WO2023002624A1 (ja) 2023-01-26

Family

ID=84979020

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2021/027386 WO2023002624A1 (ja) 2021-07-21 2021-07-21 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置

Country Status (5)

Country Link
JP (1) JPWO2023002624A1 (ja)
CN (1) CN117615882A (ja)
DE (1) DE112021007650T5 (ja)
TW (1) TW202304670A (ja)
WO (1) WO2023002624A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59229609A (ja) * 1983-06-10 1984-12-24 Toshiba Corp 産業用ロボツトの制御装置
JP2015027730A (ja) * 2006-07-17 2015-02-12 レイセオン カンパニー ロボット変位装置
JP2019081208A (ja) * 2017-10-30 2019-05-30 株式会社東芝 情報処理装置及びロボットアーム制御システム
JP2020049568A (ja) * 2018-09-25 2020-04-02 東京エレクトロン株式会社 搬送装置、半導体製造装置及び搬送方法
JP2021091025A (ja) * 2019-12-09 2021-06-17 ファナック株式会社 ロボット装置の動作記号を含む動作プログラムを生成するプログラム生成装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5531996B2 (ja) 2011-03-18 2014-06-25 株式会社デンソーウェーブ 6軸ロボットの軸間オフセット検出方法
JP6823024B2 (ja) 2018-09-11 2021-01-27 ファナック株式会社 ロボットのキャリブレーションシステムおよびキャリブレーション方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS59229609A (ja) * 1983-06-10 1984-12-24 Toshiba Corp 産業用ロボツトの制御装置
JP2015027730A (ja) * 2006-07-17 2015-02-12 レイセオン カンパニー ロボット変位装置
JP2019081208A (ja) * 2017-10-30 2019-05-30 株式会社東芝 情報処理装置及びロボットアーム制御システム
JP2020049568A (ja) * 2018-09-25 2020-04-02 東京エレクトロン株式会社 搬送装置、半導体製造装置及び搬送方法
JP2021091025A (ja) * 2019-12-09 2021-06-17 ファナック株式会社 ロボット装置の動作記号を含む動作プログラムを生成するプログラム生成装置

Also Published As

Publication number Publication date
JPWO2023002624A1 (ja) 2023-01-26
CN117615882A (zh) 2024-02-27
DE112021007650T5 (de) 2024-04-11
TW202304670A (zh) 2023-02-01

Similar Documents

Publication Publication Date Title
US9149931B2 (en) Robot system, robot control device and method for controlling robot
US5880956A (en) Lead-through robot programming system
US9731419B2 (en) System and method for programming robots
JP4917252B2 (ja) アーク溶接用装置
KR20150044812A (ko) 티칭 시스템 및 티칭 방법
EP2769810A2 (en) Robot simulator, robot teaching apparatus and robot teaching method
JP2007523757A (ja) 複数のロボットアームの追従及び鏡映ジョグ
EP1847359A2 (en) Robot simulation apparatus
JP2003117863A (ja) ロボットシミュレーション装置
US10315305B2 (en) Robot control apparatus which displays operation program including state of additional axis
US20200156258A1 (en) Robot system and method for operating same
KR101787865B1 (ko) 다관절 링크 기구의 역운동학 해법, 및 이 역운동학 해법을 이용한 교시 데이터 작성 장치
WO2023002624A1 (ja) 機構データに基づいてロボットを制御するロボットの制御装置および動作プログラムの修正装置
JP5272447B2 (ja) 数値制御機械の動作シミュレータ
KR20200047618A (ko) 수직 다관절 로봇의 학습 데이터 작성 시스템
JP2022190235A (ja) 情報処理装置、情報処理方法、ロボットシステム、物品の製造方法、プログラム及び記録媒体
CN115122320A (zh) 机器人的控制程序的生成方法、存储介质及示教装置
JP7469457B2 (ja) ロボットプログラミング装置及びロボットプログラミング方法
JP7232704B2 (ja) ロボットプログラム評価装置、ロボットプログラム評価方法及びロボットプログラム評価プログラム
WO2023135762A1 (ja) 制御装置、教示装置、及び機械システム
JP2023157089A (ja) ロボットの動作プログラムの作成を支援するシステム、方法、及び、コンピュータープログラム
Hu Research on Kinematic Trajectory Simulation System of KUKA Arc Welding Robot System
JP2001312305A (ja) ロボットのツール制御方法
JP2005230952A (ja) 制御方法および制御装置
JPH03288211A (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: 21950974

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2023536309

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 112021007650

Country of ref document: DE

WWE Wipo information: entry into national phase

Ref document number: 202180100497.2

Country of ref document: CN