Not Applicable
Not Applicable
Robots are commonly used for automated MIG (Metal 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. In many cases, weld parameters are coordinated between the robot and the welding power supply to provide advanced weld characteristics and capabilities. In typical robotic welding applications, a fixture or jig is created to provide repeatable positioning and orienting the part, as well as to hold the part secure as the weld is performed. The weld path or operating path is defined as a collection of a finite number of successive positions and orientations (or poses) of the welding torch relative to the weld seam. The operating path will provide the desired motion to perform the weld. The complexity of programming presents an obstacle in using robotic automation in welding or other tasks for small to medium enterprises that lack resources for training or expertise in traditional robot programming strategies. This invention seeks to reduce the complexity of programming associated with robots for tasks such as welding.
Programming the operating path adds time to the overall manufacturing process. When the operating path is used in manufacturing large numbers of similar parts, i.e., parts that can be welded using a common operating path, the time required to program the operating path represents a small portion of the overall manufacturing cost. When manufacturing a small number of repetitive parts, the time to program the operating path can be significant. It is therefore desirable to reduce the time required to programming time. Methods used to reduce the programming time include programming successive robot positions by the lead through teaching on an actual part (U.S. Pat. No. 4,408,286), offline programming on a computer simulation of the manufacturing setup or automated robot motion programming (U.S. 60/656,435). The Teach pendant programming method is generally disclosed in U.S. Pat. No. 4,589,810. This is referred to as on-line programming method in which the programmer makes use of an interface that may include switches or a joystick to move the end effector though an operating path with respect to the actual part being manufactured. The program is constructed by recording successive positions into memory in a computer that is associated with the robot system. The recorded information consists of information that generally includes the robot position and orientation, robot speed, linear or curvilinear motion type and arc information. This information serves as a series of instructions recorded in a sequential fashion and forms a program or code that is stored into memory in a computer that is associated with the robot system. The welding robot performs a pre-programmed welding task by operating according to the instructions that are stored in the program.
Pan et al. summarize methods to improve programming methods for industrial robots (Pan, 2012). Some advances to operator-assisted online programming are described here. Improved methods for walk-through teaching include Sugita (2003) using teaching support devices that could measure the position and direction of a dummy tool and generate robot programs in robot coordinates. Choi (2001) showed a force/moment direction sensor named COSMO where operator holds the sensor and moves the robot by pushing, pulling, and twisting the sensor in the direction of the desired motion. Schraft [2006] proposed an intuitive teaching method to use a walk-through method where the user guides the robot with a handle with force torque sensor and commands the robot using a speech dialog system. The acquired trajectory can be adapted by using a 3-D graphical user interfaces.
This patent makes use of the Lead through teaching method as is generally disclosed in U.S. Pat. No. 4,408,286. The lead through teaching method involves teaching successive positions of the operating path by grasping or guiding the tool head directly to follow a path. The robot is moved to a specific position and orientation at specific points along the path, these specific positions and orientations are recorded in a program that resides in memory in a computer associated with the robot system. The program defines the operating path that passes through the specific points, and travels along an interpolated path between the specific points. The interpolated path could be linear, quadratic or some other interpolating function as defined by the programmer. The programmer is responsible to ensure that the robot is accurately guided to the specific points and avoids collision with objects in the workspace. The programmer also defines any additional functions that the robot will perform. These include turning the arc on or off, other arc information, the type of move (linear or curvilinear), and the speed of the tool. In the most common case, these values are numerically entered using a teach pendant. They can be also entered with buttons located on a handle associated with the robot end effector. Examples of lead-through handles that are commonly found in commercial products for robotics welding applications include grasping the robot weld torch (Yasakawa Robotiq Kinteq), or grasping a combination of the robot weld torch and robot end effector (Arc Specialties SNAPWELD). Other examples of lead through handles have been disclosed in patents including; U.S. Pat. Nos. 5,495,410, 4,408,286, 4,367,532 and 6,385,508B1.
The program memory is accessed by the robot to execute its task during the manufacturing operation. If the operator wants to modify the program, the traditional method is to access the program through some type of display device that connects to the robot system. See for example the display control unit (no. 203) that is discussed in patent JP2010190301A. The operator uses the display device to access the program, identify the location in the program to modify, make changes to the program, and finally update the program in the memory in a computer that is associated with the robot system.
The process of creating and, if needed, editing a program for robot motion requires a degree of skill and training. The program is displayed on a display device as text. The syntax and semantics of the program can be unique to the particular robot manufacturer, or in some cases can be more generalized, for example in the format of g-code. However, any of these formats require the operator to be familiar with the syntax and format of the particular program. This requires specialized training and skills not commonly associated with the skillset of welding. Further, to edit a program, the operator must be able to correlate lines of text in the program with spatial locations and functions around the workpiece. This can be difficult in some cases and requires specialized training and skills not commonly associated with the skillset of welding.
The most closely related patents are U.S. Pat. No. 6,452,134B2 in which the inventors describe a method for correcting the teaching point for a welding robot having a touch sensor using the touch sensor to detect a point on the workpieces and developing a transformation matrix based on the difference between the preset teaching points and the newly detected point. This transformation matrix then represents a correction that can be applied to one or multiple preset teaching points. Similar correction approach is shown in JP2010190301A.
This patent defines a method for simplified programming of robot motion and simplified editing of a program for robot motion that does not require the operator to have knowledge or understanding of the particular format and syntax associated with the program used to store the path. Further, it does not require the operator to find a line in the program associated with a specific robot move on the workpiece based on the text and syntax of the program.
The method consists of two primary parts.
In the first part, the operator creates a program to define a robot task without direct knowledge or understanding of the text and syntax associated with a program. This part makes use of the Lead through teaching method as is generally disclosed in U.S. Pat. No. 4,408,286. The operator will move the robot end effector to a specific position and orientation relative to the workpiece by using a lead-through handle. The lead-through handle will allow the robot to be moved directly by the operator physically grasping and moving the end-effector. The lead through handle or a corresponding input device will then have a series of input units (such as buttons, switches or similar input devices) that can define the specific robot actions that correspond to the point in the program. For example, these may consist of the robot speed, the control of the arc function or other function associated with the tool (i.e., turn the arc on or off), the type of motion between this and the next position such as linear or curvilinear motion. In this case, the input units are clearly labeled and the operator can select the input unit according to the task component that the robot is to perform. The operator could also teach the robot information such as speed of weld by moving the robot at the desired speed. The operator does not interact with the text or syntax that forms the program that will record the information formed by the input devices and the robot position and orientation at the time these input devices are defined.
In the second part of this invention, the operator is able to edit a specific point in the program while leaving all other points in the program unchanged, without direct knowledge or understanding of the text and syntax associated with a program. The operator will first define the particular part of the program that is to be modified. All the program commands have an associated location on the workpiece at which the robot will create a specific position and orientation of the tool. The operator has knowledge of the location on the workpiece that needs to be edited or corrected. The operator will move the robot end effector to an area within the vicinity of this location on the workpiece. The operator will then select an input unit to edit the program and the robot will move to the nearest point in the robot program. This is done as follows. The program is constructed in a manner that every line has an associated position and orientation of the robot end effector. The proposed approach then performs a search, comparing the distance between the current position of end effector and the position associated with each line of the program. The approach then selects the program line that returns the minimum distance between the position of the end effector and the position associated with that particular line. Once the approach finds the associated line in the program with the minimum distance, it moves the robot to this position in the program (the one that returned the minimum distance). The operator is then able to visually affirm that this is the correct point relative to the workpiece. If not, the operator is able to repeat the process, moving the robot with the lead-through handle to a position that is near the desired corrective point on the workpiece, and pushing the input unit to perform a search with the program. Once the robot is at the correct position in the program, the operator can edit or refine this part of the program. The operator can first delete this position and its corresponding task information. The operator can then add a new position and new corresponding task information described in the process above. These steps are done using the input units on the robot end effector or other convenient location. In this manner, the program can be edited without or understanding of the particular format and syntax associated with the program.
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.
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 is termed walk-through. In order to teach or record a step in the program, the operator will grasp the lead-through handle, press the robot drag mode input unit (10a), and now the operator is able move and guide the robot end effector to a desired position relative to the workpiece. Once the end effector is in the desired position and orientation, the operator can select the desired action at this position by pressing a corresponding input unit. For example, the operator can teach a point (10b) which makes the robot pass through the point, The operator can teach the robot to turn on an arc (10c) which causes the arc to come on at this point. Additional capability can be specified to correspond to the robot position using the interface box. The robot speed for this position can be set using input unit (12a). Straight line or curvilinear motion through this position can be set using input unit (12b). In order to help the operator determine which capability is set, display LEDs are associated with each input unit. These provide a visual signal corresponding to each input unit when selected.
Once the program is created, the operator is able to start the execution of the robot program by selecting the input unit (12c) located on the interface box. Additional input units on the interface box can stop the program (12d), step through the program (12e) or provide an emergency stop (120.
The method in which the robot system determines the closest program position, ppi, is described as follows.
The program is constructed of a sequence or series of successive program positions. This is shown in
The method then calculates the Euclidean distance between the position of the robot end-effector and every point in the program, shown as di−2, di−1, di, di+1 on
di=|q−ppi|=√{square root over ((q1−ppii)2+(q2−ppi2)2+ . . . +(qn−ppin)2)}
Where di is the distance, q is the current robot position, ppi is the position at the program point i and qj corresponds to component j of vector q. The error can be based purely on position of the tool tip (x,y,z defined in a selected coordinate frame) or based on an error in the complete pose. If comparing pose, a few options are available and can be implemented. One would be to define the pose as a combination of x,y,z position and selected Euler angle set or quaternions. The units selected for the position and angles are up to the designer. Alternatively, the pose error could be defined as a combination of difference in position and difference in orientation defined as s(Qrobot)*QrobotTQpps where Qrobot, Qpp are the rotation operators describing the orientation of the robot and program point respectively and s(Q) is the skew symmetric vector of Q.
It should be noted that an alternative to Euclidean distance as defined above could be used to select the desired program position.
The result of this search is shown in
Alternatively, the operator can then add a new position and new corresponding task information described in the process above. Once the operator has manually moved to a location in the workspace to modify the program, and the algorithm finds the desired program position, the operator is able to add a new position. They do this by moving the robot to a new position and recording this position. This new position is added to the program immediately following the program position.
In this manner, the program can be edited by adding, deleting or both adding and deleting program positions in the program without or understanding of the particular format and syntax associated with the program.
The robot can be guided manually or by using an input device that will guide the robot motion based on inputs to the robot motors or actuators. When adding new program positions to the program, it may be desirable to fine-tune the position or motion of the end-effector. This can be done by moving the end-effector manually, but in some cases this may be difficult to achieve fine resolution in the motion when moving the robot manually. A six degree of freedom joystick located on or near the end-effector (item (9),
An additional aid to an operator to make program editing more intuitive is described. When creating or editing a program, the operator may need to move the end effector to a precise orientation relative to the workpiece. This precise orientation may take time to achieve using manual guiding, the end-effector joystick or other means. In many cases, this precise orientation will need to be repeated at multiple program positions in the program. A means to store and recall the current orientation of the end-effector is created. This means consists of the following. A desired precise orientation is given to the robot end-effector by the operator using manual guiding, end-effector joystick guiding or in another way. An input unit associated with storing the orientation is selected by the operator (for example 10d,
The program positions consist of the position and orientation of the end effector as well as other information that defines the robot motion at that program position. This other information could include robot speed or speed of the end-effector, control functions of the end-effector, for example torch arc on or off, delays or a period of stopped motion by the robot, or other functions.
Number | Date | Country | |
---|---|---|---|
62979938 | Feb 2020 | US |