Method for Teaching Torch Orientation for Robotic Welding

20230226682 · 2023-07-20

    Inventors

    Cpc classification

    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] FIG. 1a,b shows work angle, travel angle and torch roll angle for a general straight weld seam.

    [0013] FIG. 2 shows work angle, travel angle and torch roll angle for a general circular weld seam.

    [0014] FIG. 3 shows the robot with lead-through handle, torch and input units.

    [0015] FIG. 4 shows a close-up view of the lead-through handle with input units.

    [0016] FIG. 5a,b,c shows the robot torch in a configuration before orientation recall and after orientation recall.

    [0017] FIG. 6 shows a set of frames projecting a torch frame onto a fixed frame.

    [0018] FIG. 7 shows a Circular weld with Frenet-Serret frames at two points along weld

    DESCRIPTION OF THE INVENTION

    [0019] FIG. 1a shows a torch and weld seam with the work angle, travel angle and torch roll angle defined along a general straight butt weld seam segment. A local or instantaneous axis tangent to the weld seam is defined and labeled (t). The axis lying along the weld wire at the torch tip is labeled (w). The axis orthogonal to both t and w is shown and labeled n. The work angle is a rotation about axis t and is measured from a line lying in the weld reference plane orthogonal to t. The travel angle is a rotation about the axis n. The torch roll angle is a rotation about the axis w.

    [0020] FIG. 1b shows a torch and weld seam with the work angle, travel angle and torch roll angle defined along a general straight fillet weld seam segment. A local or instantaneous axis tangent to the weld seam is defined and labeled (t). The axis lying along the weld wire at the torch tip is labeled (w). The axis orthogonal to both t and w is shown and labeled n.

    [0021] FIG. 2 shows a torch and weld seam with the work angle, travel angle and torch roll angle defined along a curved weld seam segment. A local or instantaneous axis tangent to the weld seam is defined and labeled (t). The axis lying along the weld wire at the torch tip is labeled (w). The axis orthogonal to both t and w is shown and labeled n. The work angle is a rotation about axis t. The travel angle is a rotation about the axis n. The torch roll angle is a rotation about the axis w.

    [0022] FIG. 3 shows the robot manipulator (1), robot end effector (5) attached to the last joint of the robot (6). A welding torch or torch (7) is mounted to the robot end-effector. the lead-through teaching handle (2) with input units (10a, 10b, 10c). A controller (3) and computer (4) is part of the robot system. The lead-through teaching handle is connected to the end of the robot. A robot tool (5) forms the robot tool and is connected to the end of the robot. The welding torch can be removed from the robot while the lead-through teaching handle remains connected to the robot. The lead-through teaching handle (2) and the welding torch (7) are attached to the robot end-effector (5)

    [0023] FIG. 4 shows a close-up of the lead-through teaching handle. In this case, input units are shown as momentary push buttons (10a, 10b, 10c) that control various aspects of robot control and programming and a switch on the lead-through teaching handle (11). Examples include robot free-drive mode, teaching points or arc set information. When the robot free-drive mode input unit is pressed, the operator is able to move the robot freely by applying small forces on the lead-through teaching handle. One manner in which this is done is by having the robot controller execute a torque feedback mode in which it adapts the robot movement to maintain the necessary torques required to support the robot in a stable configuration. These inputs could also be used to store or recall a specific torch orientation. For example, the robot orientation could be adjusted by the operator using robot jog controls or by moving the robot by hand. This orientation can be stored by the operator with an input unit. This stored orientation can be recalled or reset on the robot end effector at any time by the user, for example through another input unit. Through the robot kinematics, the orientation of the end-effector is changed while keeping the position of the torch tip constant.

    [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] FIG. 5a,b,c shows the robot traveling along the length of a straight butt-joint weld seam. FIG. 5a shows the robot end-effector at one position (labeled Pt.sub.1) with the end-effector and torch at a desired orientation. FIG. 5b shows the robot end-effector at a second position (labeled Pt.sub.2) with the end-effector and torch at a different orientation than the first orientation shown in 5a. FIG. 5c shows the robot end-effector at the second position (labeled Pt.sub.2) with the end-effector and torch now with the desired orientation, the same as the orientation at the first position.

    [0026] Considering further FIGS. 5a,b,c, showing the robot traveling along the length of a straight butt-joint weld seam to perform a weld. For this weld, the weld specification defines a specific work angle and travel angle. A specific torch roll angle could also be defined. Alternatively, the operator, based on their experience and expertise, can define the torch orientation visually to achieve a certain weld performance. Over the linear weld, these three angles define a constant orientation of the torch relative to a fixed frame of reference. The operate can move the torch to this defined orientation and store it in memory. This can be done manually, with the torch shown in this orientation as in FIG. 5a. The operator can then move the torch to other positions along the weld seam, for example position P2 as shown in FIG. 5b. The operator can move the torch position only without concern for the torch orientation making the teach process faster. The weld path position can be stored as a combination of the torch position and stored orientation. Further, the operator can recall the stored orientation causing the robot to move the end-effector and torch to the defined orientation as shown in FIG. 5c. This automatic move process gives a simple visual method for the operator to verify the full pose of the robot.

    [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 FIG. 5a-c. FIG. 5a shows the robot end-effector at one position and orientation along the weld path. This orientation is the desired orientation. FIG. 5b shows robot end-effector at a second position and arbitrary orientation along the weld path. FIG. 5c shows the robot end-effector at a third position and the desired orientation along the weld path. This desired orientation is automatically recalled from the saved desired orientation without changing the position of the robot end-effector. Here, the position that does not change is the Tool center point (TCP) and is defined as the tip of the welding wire extruding from the torch.

    [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.

    FIG. 6 shows a set of frames projecting a torch frame onto a fixed frame. Starting with a fixed frame, z axis lying along the axis of the weld seam and x axis lying in a reference plane (RP) and orthogonal to the z axis. The first operation is an SO(3) rotation about the z axis by the work angle, θ.sub.W, measured from the reference plane to the new x axis (x′). The second operation is an SO(3) rotation about the new y axis (y′) by the travel angle, θ.sub.T, measured from the x′ to the x″ axis. The third operation is an SO(3) rotation about the new x axis (x″) by the torch roll angle, θ.sub.R. This gives a mapping from the torch to the fixed frame as,


    R.sub.torch.sup.fixed=R.sub.z,θ.sub.W*R.sub.y,θ.sub.T*R.sub.x,θ.sub.R.

    [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 FIG. 1a) could be the binormal vector and the n axis (FIG. 1a) could be the Frenet frame normal vector.