By linking the findings in the literature survey on the PPR perspective and automatic programming of welding robots based on CAD models, a PPR model for automatic programming of welding robots is hereby proposed. The product design engineers use CAD tools to document information about the product beyond the geometry of the product. The information can be overlaid on CAD models using modern CAD tools, can be used to set up the production processes and ensure that the process can be conducted using the available resources.
3.1 Theoretical foundations
Ahmad et al. offer a decomposition of the PPR model [1] used for automatic assembly applications as follows:
-
The product domain contains all the available information about the product’s characteristics, the product’s family and variations. The product domain is often fully encompassed in the CAD model of the product. The product can be an assembly of multiple components which share various engineering connections or liaisons (fixed, cylindrical, prismatic or rigid).
-
The process domain encapsulates the knowledge and information necessary to set up the operations required to manufacture the product. As described by Ahmad et al.[1], a production operation is realised through several processes which are sustained using resources. Some processes require certain skills and resources to be conducted.
-
The resource domain concerns the set of physical and non-physical entities involved in supporting the production process. The physical resources may be manufacturing tools and various consumables, while non-physical resources can be the tacit or documented knowledge regarding how the production process can be set up.
The product model concept proposed is shown in the diagram displayed in Fig. 1. The Unified Modelling Language (UML) was selected to describe the PPR model proposed. UML provides a general and flexible modelling language using specific graphical elements which are widely understood in the software development community [44]. UML is fit for the development of a theoretical concept that has its foundation in the functionalities of existing CAD software tools. The general nature of the language allows for applicability across the whole domain of CAD software compliant with the ISO 2553:2019 standard. The flexible nature of UML allows the presented model to be adapted further, as the CAD tools will evolve in the future, or even modified to be compatible with custom-made or open-source CAD software which are not compliant with ISO 2553:2019 but have available tools for weldment annotations.
The major suppliers of CAD systems are extending the capabilities of the tools they supply, to encapsulate more product data [1]. The implementation of rule-based design methods enables the digitalisation of the product knowledge [45] and parametric CAD modelling which enables the reusability, the adaptability, and the configurability of a CAD model [46], making the product engineering stage faster and more cost-effective. These capabilities are made use of to build parametric rules and product configurations in the proposed PPR model. The changes in the product domain directly influence the way the manufacturing process is set up and the way the available resources can sustain the manufacturing process [1].
The classification of input parameters for programming of welding robot given by Lauridsen [9] is used to formalize the information contained and processed by the proposed PPR model:
-
Design parameters: the product parameters which are related to the workpiece to be welded. These parameters include the geometry of the workpiece, the thickness of the plates joined through welding and the material specification. These parameters are varied by varying the design of the product, as requested by the customer.
-
Motion parameters, the process parameters which are specific to the manipulator of the welding torch (welding robot). The motion parameters include the position and the orientation of the torch relative to the workpiece or welding seam which influence the length of the exposed wire at the tip of the welding torch (stick-out), the velocity of the torch and the weaving of the torch. Depending on the design parameters, the motion parameters may include certain offsets such as multi-pass offsets which allow an incremental increase of the distance between the torch and the work piece as the weld bead increases in thickness.
-
Arc parameters, the process parameters which are specific to the welding apparatus and are independent of the overall geometrical design of the product but are used to fulfil the quality requirements of the weldment, e.g., weldment throat size. These parameters are the arc current and voltage. Modern welding apparatus allows for automatic control of wire feed rate and shielding gas flow depending on the preset material specification and joining plate thicknesses. Other parameters which are important before the welding process can commence and which directly influences the arc parameters are the shielding gas and the filler wire material.
3.2 Proposed PPR Model for automatic programming of welding-robots
In the proposed PPR model, represented in Fig. 1, the PPR perspective is made apparent by using different colours to represent the classes which constitute the product, process and resource related elements. The classes represented with dark and light orange are related to the product component of the model. The green coloured class diagrams are related to the process component of the model, and the purple coloured class diagram is related to the resource part of the model. The main contribution brought to the ARP field is the process related component of the model.
Product:
The product element of the proposed PPR model has its roots in the generic representation of a product in a CAD system. As observed in Fig. 1, a CAD component class is composed of one or more Surface instances. A Surface class can be composed of one or more Edge instances. An Edge class is constituted of several tessellation points which can be accessed through the GetTessellationPoints() accessor. Depending on the shape of the Edge object, it can have two (straight edge) or more tessellation points (curved edge). The Surface class contains the normal vector associated with a surface, or several normal vectors, if the surface is curved. The coordinates of the tessellation points and the components of the normal vectors are expressed in relation to the origin frame of the CADComponent instance. In the context of this paper, the CADComponent is a metal plate that must be welded, the attributes the CADComponent class has are the shape parameters, the material (metallic alloy) of the component, the thickness of the plate, and the transformation associated with the origin of the product when it composes a CADAssembly.
Multiple CADComponent instances compose the CADAssembly class. As the assembly in the context of this paper is going to be welded, all the components which compose it share the same material. The Origin attribute of the assembly can be custom set up to match the position and the orientation of the product when attached to a fixture for welding, in the physical setup. As observed in Fig. 1, the CADAssembly class can be composed of one or more CADWeldment instances. The CADWeldment class can only be instantiated if it is associated with an Edge object and with two Surface objects. We consider the weldment to be attached to an edge, between a base surface and a joining surface. The base surface is the surface which contains the weldment seam, while a joining surface is bordered by the welding seam, as represented in Fig. 2.
A CAD model can be driven by several ParametricRule objects instantiated by the product design engineers. These rules compose a ProductConfiguration object. This facilitates the accessible configuration of a product model by inserting the design parameters through the interface realized by the ConfigurationWizard. A ParametricRule contains a mathematical expression which drives various elements inside the model. For example, depending on the thickness of the plates, the throat size of the weldment can be automatically adjusted based on a mathematical rule set by the design engineer, based on specifications. Another example can be a ParametricRule object attached to a joining Surface object and a base Surface object that controls the length of the two surfaces in the same direction can directly drive the length of the intersection Edge and therefore the length of the Weldment object attached to that Edge. This simplifies the design process from having to modify two parameters to having to modify only one.
The interface towards the CADAssembly object is realized by the ProductModel class. The ProductModel interface can be implemented by using the API (application programming interface) available with the CAD system. The interface clearly specifies the methods which must be made available through the API, for the CAD system to correctly adhere to the proposed PPR model [44]. Through the interface, accessors are made available for the design parameters of the weldment.
Process
The process component of the product model is the main contribution of this work as part of the proposed PPR model for automatic programming of welding-robots. The process model is constituted of a WeldmentExtractionTool class, which acts as a bridge between the CAD environment and the OLP environment, by using the available interfaces implemented for these systems. The WeldmentExtractionTool directly connects to the ProductModel interface and makes use of the available accessors to extract the design parameters of the weldments. The WeldmentExtractionTool, uses a ProcessParameters data base, which contains the digitalized tacit knowledge of the engineers under the form of a look-up table. For example, depending on the designed throat size of the weldment and the plate thickness on which the weldment is attached, a certain set of process parameters (motion parameters and arc parameters) are used for the welding process. Some of the motion parameters contained in the data base which are dependent on the design parameters are: the welding angle α and the travel angle β, which are represented in Fig. 2, the torch travel velocity, and the stickout, which is the distance between the welding torch and the welding seam. The arc parameters can be the voltage and the current for the weldment. Some process parameters, like the wire feed and the gas flow may either be present in this data base or be controlled by the welding apparatus.
The WeldingProgram class is instantiated by the WeldmentExtractionTool class upon call of the ComputeTorchPositionParameters() method. The WeldingProgram is composed of one or more WeldmentOperation objects which share the same process setup parameters e.g., the materials of the consumables, the welding process type (MIG, TIG etc.), and the origin frame in which the geometry of the weldments is expressed. These parameters remain the constant across the whole welding process. A WeldmentOperation object is discretised in one or more DiscreteWeldmentOperation objects, as described by Sarivan et al. [48]. Each discrete weldment operation which composes a WeldmentOperation object shares the same process parameters e.g., the torch travel speed, the wire stickout and so on (the attributes of the WeldmentOperation class). Every DiscreteWeldmentOperation object is instantiated with its own torch position parameters.
After the WeldingProgram is instantiated, collision free trajectories must be generated for the welding torch in order for the welding process to be successfully supported. This is made possible through the OfflineProgrammingSystem interface. The interface is made available by using the OLP’s API.
Resource
The resource component in the proposed PPR model is represented through the OfflineProgrammingSystem interface which offers access to the capabilities of the offline programming system which has available in it a digital twin of the robot welding cell. These capabilities are the motion solver of the robot, which makes available the possible configurations in which a robotic manipulator can reach a point, and the collision detection functionality. By using these capabilities, it is ensured that the available resources on the manufacturing system can successfully support the welding process. The algorithms used to setup the welding process and the collision free trajectories for the welding program are given in the next section.
3.3 Automatic programming based on product model:
To facilitate the automatic programming of a welding robot based on a PPR model, the following prerequisites are necessary:
-
The creation of a CAD model with weldments annotations as stipulated by ISO 2553:2019 standard by the product design engineers (represented by the ProductModel class in Fig. 1).
-
The creation of a configuration through parametric rules which will be used to easily modify the CAD model without skilled intervention (represented by the ProductModelConfiguration class, in Fig. 1).
-
The digitalization of the process parameters (motion and arc parameters) under the form of look up tables depending on the design parameters of the product which will be organized in the ProcessParameters data base.
With the prerequisites in place, the following steps must be followed to automatically program a welding-robot using the proposed PPR model:
-
The design parameters are input to the ConfigurationWizard interface by the sales managers or the design engineers. A new instance of the CADAssembly class is created by using the ParametricRule objects which compose the configuration created by the product design engineers.
-
The composing elements of the CADAssembly instance are driven by the rules, including the weldment information, constituting as such the Design Parameters which are used to program the welding robot.
-
The geometry of the weldments is extracted from the CADAssembly instance through the ProductModel interface.
-
The geometry of the weldments is discretised and for each discrete state, motion and arc parameters are computed through the WeldmentExtractionTool class.
-
Collision free trajectories for the robot are automatically computed using the functions available in the OLP and accessed through the OfflineProgrammingSystem interface.
-
The program is saved and ready to be validated through simulations and then deployed on the welding-robot.
Algorithms are provided for steps 3–5 of the automatic welding-robot programming process. Each algorithm is associated with the methods available in the WeldmentExtractionTool class. A description of how the weldment geometry can be extracted from the product model is provided in Algorithm 1.
Once the ProductModel instance is created, it is possible to query the list of weldments using the GetWeldments() method. The method is accessed by first creating a handler towards the CAD system. For each weldment, the Edge to which the weldment is attached is extracted, together with the joining and base surfaces. The number of Edge instances attached to a weldment must be the same as the number of joining Surface instances. The tessellation points defining the curve underlaying the Edge instance are extracted. The tessellation points are important for the discretisation of the weldment into prismatic quasi-stationary elements [48] and are part of the weldment definition. If the underlaying curve is curved and not straight, for each tessellation point, the coordinates are saved and the normal vector components of each joining Surface and base Surface is saved. The normal vector components are saved in order to determine the position and the orientation of the torch relative to the weldment seam. In case the underlaying curve of the Edge instance is straight, there is only one set of normal vectors of each Surface (joining and base). It is to be mentioned that there can exist only one base Surface instance, while it is allowed to have multiple joining Surface instances for any single Weldment instance.
To compute the motion parameters for the welding process, namely the torch position and orientation for each discrete weldment point afferent to each extracted tessellation point, the ComputeTorchPositionParameters(ProcessParameters) method is called. The method makes use of the ProcessParameters database to properly set the orientation of the welding torch relative to the weldment bead. The steps used by the method is presented in Algorithm 2. Horn’s Absolute Orientation Method [48, 49] is used in Algorithm 2 when the ComputeAbsoluteOrientation method is called to change the reference frame in which the weldments’ geometry is expressed.
The weldments geometry extracted in step 3 are used as input for the algorithm 2. For each weldment definition, the coordinates of each tessellation point and the afferent normal vectors are extracted from each column of the matrix M. This happens as described in step 4 and each discrete state is associated with a tessellation point. The first three entries of the column represent the position of the tessellation point, the next three entries represent the normal vector’s components of the base surface, the next three components represent the normal vector’s components of the joining surface, and the last entry is the dimension of the weldment’s throat in millimetres. The dimension of the weldment’s throat is used as look-up parameter to extract the associated sickout S (distance between welding torch and weldment seam), welding angle of the torch α (angle between torch and the base surface), and travel angle β (found between the torch and the weld seam) using the lookup table in the Process Parameters data base. The α and β angles are also represented in Fig. 2. By using the coordinates of each tessellation point and its afferent normal vectors, discrete weldment data is generated by using Horn’s Absolute Orientation method [48, 49]. For each torch position determined using Horn’s method, the S, α and β parameters are set and the necessary transformation is computed from the origin frame of the CAD model to the position of the weldment torch afferent to the respective discrete weldment point. The result of Algorithm 2 can be observed in Fig. 3.
With the torch position parameters computed, Algorithm 3 is used to generate collision free trajectories for the welding-robot. This is associated with step 5 in the proposed automatic programming of welding robots’ procedure. Algorithm 3 takes as input all the torch position parameters computed in Step 4. A handler towards the offline programming software is created in order to access the kinematics of the welding-robot and test the reachability of the target point and to access the collision detection functionality of the OLP [22–26]. For each discrete point which composes each weldment, the end effector (the welding torch’s tip) of the virtual welding-robot is commanded to reach the target point. While collisions are detected, the torch is twisted around the axis of the welding wire both ways until a configuration is reached which is free of collisions. Algorithm 3 is offered as alternative in case the collision detection and automatic collision solver algorithms are not available in the OLP of choice, however many of the modern OLPs do have such methods available [27, 28].
3.4 Reflections on the proposed system:
This section has provided a thorough description of the proposed PPR model concept for automatic programming of welding robots which facilitates automatic programming of welding-robots without the intervention of robotics engineers in defining the weldment paths for the welding-robots. The concept was developed based on findings and formalisations from literature, as presented in subsection 2.1 to achieve a PPR integration addressed to welding applications. The PPR model is composed of a collection of data contained in a CAD system compliant with the ISO 2553:2019 standard and process data that can be digitalized in the ProcessParameters database specific to the company where the system is implements. The proposed PPR model summarized in Fig. 1 extends the scope of extant research, which is applied on a specific CAD system, as shown in subsection 2.2 [41, 42]. Algorithms were provided on how the data is processed to achieve a program for welding-robots in an automatic manner. The proposed system is meant to drastically reduce manual input required to program weldment locations in the OLP.