Method for Teaching Torch Orientation for Robotic Welding
20230226682 · 2023-07-20
Inventors
- James Walter Beard, III (Cookeville, TN, US)
- Stephen Lee Canfield (Cookeville, TN, US)
- Stephen Zuccaro (Cookeville, TN, US)
Cpc classification
B23K37/0229
PERFORMING OPERATIONS; TRANSPORTING
International classification
Abstract
Robots are commonly used for automated MIG (Metal Inert Gas) or TIG (Tungsten Inert Gas) welding in many industries such as automotive manufacturing. A weld procedure is defined and the robot performs motion control of the weld torch along the weld seam, while starting and stopping the arc as desired along the weld seams. The robot controls the motion of the torch along the weld path. The motion is defined by a combination of the position and orientation of the torch which is attached to the robot end-effector. The weld specification will generally prescribe a portion or all of the desired orientation of the torch. This information can be used to reduce the complexity of programming a weld path for a robot.
Claims
1. A method for teaching a weld path for a robot end-effector comprising the steps of, rotationally move the robot end-effector to a desired orientation, save the desired orientation in a memory storage in a robot controller, translationally move the robot end-effector to a one or more positions defining the weld path, and store the weld path in the robot controller as a combination of the one or more positions defining the weld path and the desired orientation.
2. A method for teaching a weld path for a robot end-effector according to claim 1 where the step of save the desired orientation in a memory storage is performed by pressing a button or switch.
3. A method for teaching a weld path for a robot end-effector according to claim 1 where, once the step of save the desired orientation in a memory storage is performed, the robot end-effector can automatically move to the desired orientation without changing the one or more positions by pressing a button or switch.
4. A method for teaching a weld path for a robot end-effector according to claim 1 where the step of rotationally move the robot end-effector to a desired orientation is performed when a robot operator manually moves the robot, either using a control pendant or by applying an external force to the robot end-effector.
5. A method for teaching a weld path for a robot end-effector according to claim 1 where the step of translationally move the robot end-effector to a one or more positions defining the weld path is performed when a robot operator manually moves the robot, either using a control pendant or by applying an external force to the robot end-effector.
6. A method for teaching a weld path for a robot end-effector according to claim 1 where, once the step of save the desired orientation in a memory storage is performed, the robot end-effector orientation remains locked in the desired orientation during the step of translationally move the robot end-effector to the one or more positions defining the weld path.
7. A method for teaching a weld path for a robot end-effector according to claim 1 where the steps, rotationally move the robot end-effector to a desired orientation, and save the desired orientation in a memory storage can be repeated as needed to define a new desired orientation.
8. A method for teaching a weld path for a robot end-effector according to claim 1 where the step of rotationally move the robot end-effector to a desired orientation is performed automatically by calculating the desired orientation from a desired work angle, a desired travel angle, a desired torch roll angle, a desired weld line and a desired weld normal.
9. A method for teaching a weld path for a robot end-effector along a curvilinear path comprising the steps of, rotationally move the robot end-effector to a desired orientation, save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage in a robot controller, translationally move the robot end-effector to a new one or more positions defining the weld path along the curvilinear path, each new one or more positions defining the weld path having a new one or more frames defined by the local tangent, the local normal and the local binormal, and store the weld path in the robot controller as a combination of the one or more positions defining the weld path along the curvilinear path, and the desired orientation with respect to the first frame mapped to the new one or more frames.
10. A method for teaching a weld path for a robot end-effector according to claim 9 where the step save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage is performed by pressing a button or switch.
11. A method for teaching a weld path for a robot end-effector according to claim 9 where, once the step of save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage is performed, the robot can automatically move to the desired orientation with respect to the first frame mapped to the new one or more frames without changing the one or more positions by pressing a button or switch.
12. A method for teaching a weld path for a robot end-effector according to claim 9 where the step of translationally move the robot end-effector to a one or more positions defining the weld path is performed when a robot operator manually moves the robot, either using a control pendant or by applying an external force to the robot end-effector.
13. A method for teaching a weld path for a robot end-effector according to claim 9 where, once the step of save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage is performed, the robot end-effector can automatically move to the desired orientation with respect to the first frame mapped to the new one or more frames without changing the one or more positions by pressing a button or switch.
14. A method for teaching a weld path for a robot end-effector according to claim 9 where the step of rotationally move the robot end-effector to a desired orientation is performed when a robot operator manually moves the robot, either using a control pendant or by applying an external force to the robot end-effector.
15. A method for teaching a weld path for a robot end-effector according to claim 9 where the step of translationally move the robot end-effector to a one or more positions defining the weld path is performed when a robot operator manually moves the robot, either using a control pendant or by applying an external force to the robot end-effector.
16. A method for teaching a weld path for a robot end-effector according to claim 9 where, once the step of save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage is performed, the robot end-effector orientation remains locked in the desired orientation during the step of translationally move the robot end-effector to the one or more positions defining the weld path.
17. A method for teaching a weld path for a robot end-effector according to claim 9 where the steps, rotationally move the robot end-effector to a desired orientation, save the desired orientation with respect to a first frame defined by a local tangent, a local normal and a local binormal in a memory storage can be repeated as needed to define a new desired orientation.
18. A method for setting the posture of a robot end-effector along a weld path with a manual input comprising the steps of, rotationally move the robot end-effector to a desired orientation, save the desired orientation in a memory storage in a robot controller, translationally move the robot end-effector to a one or more positions defining the weld path, and receiving an output from the manual input to cause the robot end-effector to move to the desired orientation without changing the one or more positions of the robot end-effector.
19. A method for teaching a weld path for a robot end-effector according to claim 8 where the desired work angle, the desired travel angle, and the desired torch roll angle is manually entered into the robot controller.
20. A method for teaching a weld path for a robot end-effector according to claim 8 where the desired weld line and the desired weld normal is calculated from taught positions of the robot end-effector.
Description
BRIEF DESCRIPTION OF THE FIGURES
[0012]
[0013]
[0014]
[0015]
[0016]
[0017]
[0018]
DESCRIPTION OF THE INVENTION
[0019]
[0020]
[0021]
[0022]
[0023]
[0024] The lead-through teaching handle could take many forms and has been demonstrated in multiple places in the literature. The lead-through teaching handle could even consist of the tool attached to the robot end-effector. The input units could take different forms including buttons, switches, pressure sensitive devices.
[0025]
[0026] Considering further
[0027] The operator creates a program to make the robot perform a specific task by teaching successive positions by grasping and directly guiding the robot end effector to follow a path or to specific points on a path. This may be termed lead-through teach programming. In order to teach or record a step in the program, the operator will guide the robot end effector to a desired position and orientation relative to the workpiece. The position consists of translational displacements of the robot end effector and can be described with three translational parameters, for example x, y and z displacement. Furthermore, when referring to the position of the end-effector, this more specifically applies to the position of the tool center point, a particular point fixed in a frame attached to the end-effector. In the case of welding, the tool center point generally refers to the end of the welding wire extruded from the torch which is attached to the end-effector. Guiding the orientation consists of rotational motions of the robot end effector and can be described by three angular parameters occurring in an ordered sequence about particular axes, for example a Roll, Pitch, Yaw (RPY) angle rotations about the global x, y, and z axes respectively. For welding, both the position and orientation of the torch must be accurately defined. The translational position of the end-effector can be defined by the operator by moving the robot manually by applying forces to the robot arm or end-effector to guide the torch to a desired position. Alternatively, the robot operator can move the robot end-effector position by using the control pendant. In the same manner, the rotational orientation of the end effector can be defined by the operator by rotationally moving the robot manually by applying forces to the robot arm or end-effector to guide the torch to a desired orientation. Alternatively, the robot operator can rotationally move the robot end-effector orientation by using the control pendant. Together, the robot end-effector position and orientation constitute six independent parameters (for example x, y, z and R, P, Y) to describe the end-effector position and orientation in three-dimensional space. In some cases, the combination of position and orientation is called pose or posture.
[0028] For a specific welding operation, the torch orientation is prescribed by the welding procedure. In particular, a preferred work angle and travel angle are generally recommended or prescribed by the welding procedure. The torch roll angle does not affect the weld but may be arbitrarily prescribed. These three angles fully describe the robot end-effector orientation. The task of teaching a weld path can be reduced by using of these defined torch orientation values. In particular, the robot operator can focus on defining the translational position of the robot end-effector along the weld path, and then use another method to teach the robot end-effector orientation. Once method could be as follows. The robot operator could manually rotationally move the robot end effector to the desired orientation, prescribed by the welding procedure, and then store this desired orientation in a memory storage location in the robot controller. The orientation can be recalled directly by the robot program without changing the robot position. This can save significant time during program. The operator can translationally move the robot end-effector to subsequent positions in the weld path, and automatically recall the desired orientation (without changing the position of the robot end-effector). An example of this is shown in
[0029] Alternatively, the operator can translationally move the robot end-effector to subsequent positions in the weld path and save these positions (x, y, z values) while the orientation is saved from the current desired orientation. This relieves the robot operator of the burden of exactly orienting the robot end-effector at each position. Another alternative is to define the desired orientation, and then cause the robot end-effector to maintain this orientation while the operator can only change the translation position of the robot end-effector while defining new positions in the weld path. This operation would be done by the robot controller which would only allow coordinated motions of the six joints that make up the robot to allow translational motion of the end-effector while holding the orientation of the end-effector fixed.
[0030] When a new portion of a weld path is defined, a new orientation may be defined. So the process of defining a desired orientation and saving this in memory and repeatedly using this new desired orientation to define weld poses or postures can be repeated throughout the entire weld teach operation as needed.
[0031] The desired orientation is stored into memory that is within or can be accessed by the robot controller. A portion of memory can be used or referenced to store these desired orientations. The desired orientation can be saved as a set of angles, R, P, Y defined about a specific set of axes. Alternative but equally satisfactory forms of defining the end-effector orientation can be used. The pose (position and orientation of the robot end-effector) that define the weld path are also saved into memory that is within or can be accessed by the robot controller. A pose that defines a point on the weld path is entered into memory by input from the user. This input could be an external button or selecting a task on the teach pendant. Generally, when storing points along a taught weld path, the pose that is stored is the current pose of the robot and consists of the current translation portion, x,y, z and current rotation portion, R, P, Y. In this invention though, the pose is taken in parts; The translation portion, x, y, z is taken from the current x, y, z position of the robot end-effector, while the rotation portion, R, P, Y is taken from the desired orientation that is saved in a stored memory location. To define a weld pose in this manner, the user will select an input such as an external button or selected a task on the teach pendant that indicates the two steps; one to use the desired orientation from the stored memory and two, to save the current x,y,z position and desired orientation from stored memory as a weld path point. One manner in which this occurs is the user pressing first a “recall” button to recall the desired orientation from stored memory and then pressing the “point” button to save this point as a stored point defining the weld path.
[0032] Alternatively, the robot could be arranged in the following way. When the user presses a “recall” button, the robot could move such that the current position of the robot end-effector stays constant, but the orientation moves to the desired orientation stored in memory. Then, the user could store the current robot pose (position and orientation) as the a stored point defining the weld path.
[0033] The desired orientation can be defined and saved into memory in a number of different ways. The operator can save a current orientation as a stored orientation. The operator can use jog or free-drive mode to move the robot end effector to a desired orientation. The orientation can be automatically calculated by the robot controller based on a desired set of work angle, travel angle and torch roll angle. The work angle and travel angle are defined from the weld specification and suggested values are defined in weld manuals. The torch roll angle can be a user preference or chosen to maximize some performance of the robot. If no angle is chosen, it can be arbitrarily selected. To complete the calculation of the orientation from these three angles, the instantaneous weld seam axis is needed. The instantaneous weld seam axis can be calculated directly from linear or curvilinear segments that make up the weld path. For linear segments, the weld seam axis is parallel to the linear segment. For curvilinear weld segments, the weld seam axis is tangential to the weld segment at each position along the weld segment. The weld seam axis can also be determined from previously-taught weld torch positions. The controller determines robot motion as linear segments or curvilinear segments between taught torch positions. The curvilinear portions are treated as a series of straight-line segments or higher-order curve from which the tangential axis can be calculated. In this case, the operator can train the torch tip weld positions without considering the torch and end effector orientation. The desired torch and end-effector orientation can be calculated by the robot controller from weld seam axis calculated from the linear segments or tangents to the curvilinear segments. The work angle, travel angle and torch roll angle can be defined as part of the weld specifications.
[0034] The orientation can be saved as a set of three angles, θ.sub.W, θ.sub.T, θ.sub.R, defined as a selected Euler angle set where the angles θ.sub.W, θ.sub.T, θ.sub.R represent the work angle, travel angle and torch roll angle respectively. Other methods of storing or saving the orientation information can be defined including as a rotation matrix or a quaternion.
R.sub.torch.sup.fixed=R.sub.z,θ.sub.
[0035] The recalled orientation causes a rotation of the robot end-effector about a frame attached to the end-effector with the origin of the frame located at the tool center point or tip of the welding wire. In this manner the orientation recall causes the end effector orientation to change but does not change the position of the tool center point or the tip of the welding wire.
In the case of linear segments, the torch orientation frame remains constant with respect to a fixed frame when the work angle, travel angle and roll angle are constant. A stored orientation can be used multiple times anywhere along the linear segment. In the case of circular or curvilinear segments, the torch orientation changes with respect to a fixed frame, but remains constant with respect to the Frenet-Serret frame (or Frenet frame) whose origin moves with the torch tip. The Frenet-Serret frame axes are the local tangent, normal and binormal unit vectors to the circle or curve. These are can be found directly from the curve where the tangent vector is tangent to the curve, the normal vector is directed from the frame origin to the center of curvature of the curve, and the binormal vector completes the right-handed frame. Thus a mapping from the Frenet-Serret frame to the fixed frame is computed from the curve and is given in the rotation matrix, R.sub.frenet-serret.sup.fixed and the mapping from the torch to the Frenet-Serret frame is fixed when set as the desired frame by the operator. Since the Frenet-Serret frame can be calculated from the curve, a stored orientation at one point along the circle or curve can be used multiple times anywhere along the curved or circular segment, with the additional operation of mapping the torch orientation defined at the first point on the curve, with the Frenet-Serret frame at the current point along the curve. At the first position along the curve, where the operator sets the current orientation as the desired orientation, the projection of the torch to the Frenet-serret or Frenet frame at that first position is recorded as a rotation matrix, R.sub.torch.sup.frenet-1. Then, for subsequent positions along the curve, the desired orientation is mapped or transformed using the projection of the current Frenet frame to the fixed or world frame; R.sub.frenet-current.sup.fixed. This is done by premultiplying the Rotation matrix projecting the torch to the first Frenet frame (Frenet-1) by the Rotation matrix projecting the current Frenet frame (Frenet-current) to the fixed frame as:
R.sub.torch.sup.fixed=R.sub.frenet-current.sup.fixed*R.sub.torch.sup.frenet-1.
Linear segments could be treated in the same way as curvilinear segments, where the rotation matrix, R.sub.frenet-current.sup.fixed is constant for linear segments. A unique definition of the Frenet frame may not exist solely on weld path information for linear segments. However, a unique Frenet frame could be derived from the first saved desired orientation and then reused at other points along the linear segment. For example, the torch axis (w in