Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Contents lists available at ScienceDirect
Robotics and Computer-Integrated Manufacturing journal homepage: www.elsevier.com/locate/rcim
Full Length Article
IRoSim: Industrial Robotics Simulation Design Planning and Optimization platform based on CAD and knowledgeware technologies Khelifa Baizid a, Saša Ćuković b,n, Jamshed Iqbal c, Ali Yousnadj d, Ryad Chellali e, Amal Meddahi f, Goran Devedžić b, Ionut Ghionea g a
Mines-Telecom Institute, Mines Douai, France University of Kragujevac, Kragujevac, Serbia c National University of Computer and Emerging Sciences, Pakistan d Advanced Technology Development Center, Algeria e Nanjing Robotics Institute, China f University of Cassino and Southern Lazio, Italy g University Politehnica of Bucharest, Bucharest, Romania b
art ic l e i nf o
a b s t r a c t
Article history: Received 13 September 2015 Received in revised form 9 June 2016 Accepted 22 June 2016
This paper presents Industrial Robotics Simulation Design Planning and Optimization platform named IRoSim, which is based on SolidWorks Application Programming Interface (API) to offer an intuitive and convertible environment for designing and simulating robotized tasks. The core idea is to integrate features of mechanical CAD and robotics CAD into the same platform to facilitate the development process through the designed Graphical User Interface (GUI) which permits user friendly interaction. The platform includes various 3D models that are essential for developing any robotized task and offers possibility to integrate new models in simulation. Robotic manipulator library is one such example which contains several types of serial arms with different combinations of revolute and prismatic joints. The platform provides most important steps such as defining the task, CAD learning of the end-effector's trajectory, checking the manipulator's reachability to perform a task, simulating the motion and finally validating the manipulator's trajectory to avoid possible collisions. To demonstrate the efficiency of the proposed approach, two frequent and important tasks (spot welding and painting) using a 6-Degree Of Freedom (DOF) industrial robotic manipulator have been considered. The output of the proposed strategy provides collision-free trajectory of the manipulator's motion which can be directly mapped to a real site. Moreover, the approach permits addressing the problems related with the real implementation of robotized tasks. & 2016 Elsevier Ltd. All rights reserved.
Keywords: Industrial manipulators Robotics simulation CAD Serial robots
1. Introduction The need of robotic manipulators in industrial sector has raised requirements related to the development of robotized tasks. These requirements take place throughout the development phases of the task. Recent advancements in industrial automation have stipulated the need to simulate and control industrial robotized tasks in a more systematic and efficient way [1]. Moreover, developing and programming robotized task in the conventional manner such as using teaching pendant is a cumbersome and time consuming task in general, requiring highly expert operators [2]. This may be a critical constraint for many small and some medium-sized manufacturing companies in setting-up robotic manipulators in their facilities [3]. Even, to date, many industrial manipulators are n
Corresponding author.
http://dx.doi.org/10.1016/j.rcim.2016.06.003 0736-5845/& 2016 Elsevier Ltd. All rights reserved.
still designed based on the conventional teaching process. Thus, novel, advanced and more intuitive techniques to develop and program the robotized tasks are required [4–7]. This has motivated engineers to develop tools that help users to carry out robotic tasks, which may require automatic path planning and determination of collision-free path [8]. Additionally, the simulation tools offer potential benefits in terms of reduction in time consumption and ease in the whole process of development of robotized task [6]. The last two decades witnessed Off-Line Programming (OLP) for Computer Aided Design (CAD) learning trajectory through teach pendant [9,10,4]. A possible combination of CAD and knowledgeware methodologies to program manipulators may lead to advances in versatility and autonomy of the modern industrial plants. Thus, industrial product design and robot manipulators programming can be integrated seamlessly [11]. The addition of CAD tools in manufacturing robotic processes [8] has set new trends in the modern industry. Currently robotic systems employ
122
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
intensive use of CAD and embedded knowledge to design the robot mechanism and to simulate the manipulators' movements [11]. However, many of these systems do not rely on standard CAD packages like SolidWorks and CATIA and provide additional packages and modules (mostly not free of cost) for robotic task development. This presents additional difficulties for users to model and to export their 3D models to these standard softwares for simulating a given task. For instance, iteration involving traversal to previous steps is often needed to resolve issues related to the design and development of robotized tasks. Thus integration of a standard CAD robotic system with a CAD software offers several benefits in terms of simplicity in usage and permits users to intuitively interact with a manipulator and its environment. In this perspective, many CAD-guided robot trajectory applications were discussed in [12–14]. For instance, authors in [12] developed a process of manipulator's trajectory generation on a surface based on the 3D CAD model. Our objective in the present approach is to provide an easier process to define a robotized task integrated into a 3D CAD system. The last two decades witnessed Off-Line Programming (OLP) for Computer Aided Design (CAD) learning trajectory through teach pendant [9,10,4]. A possible combination of CAD and knowledgeware methodologies to program manipulators may lead to advances in versatility and autonomy of the modern industrial plants. Thus, industrial product design and robot manipulators programming can be integrated seamlessly [11]. The addition of CAD tools in manufacturing robotic processes [8] has set new trends in the modern industry. Currently robotic systems employ intensive use of CAD and embedded knowledge to design the robot mechanism and to simulate the manipulators' movements [11]. However, many of these systems do not rely on standard CAD packages like SolidWorks and CATIA and provide additional packages and modules (mostly not free of cost) for robotic task development. This presents additional difficulties for users to model and to export their 3D models to these standard softwares for simulating a given task. For instance, iteration involving traversal to previous steps is often needed to resolve issues related to the design and development of robotized tasks. Thus integration of a standard CAD robotic system with a CAD software offers several benefits in term of simplicity in usage and permits users to intuitively interact with a manipulator and its environment. In this perspective, many CAD-guided robot trajectory applications were discussed in [12–14]. For instance, authors in [12] developed a process of manipulator's trajectory generation on a surface based on the 3D CAD model. Our objective in the present approach is to provide an easier process to define a robotized task integrated into a 3D CAD system. In this paper, we present a novel platform named Industrial Robotics Simulation design, planning and optimization (IRoSim) that has been realized to assist users working on industrial
robotized tasks. As shown in Fig. 1, the system offers users to simulate several steps to fulfill the desired objectives. IRoSim is integrate-able with SolidWorks and can easily be upgraded to future versions. Unlike programming packages [3,2], IRoSim provides several features such as 3D design of the robotic manipulator, definition of the task to be accomplished, accessibility verification, optimization of the task time execution [15], graphical simulation, detection of the eventual collisions and generation of a collisionfree trajectory to be directly mapped to the real cell. The objective of this work is to simplify and consolidate all the required stages to develop a robotized industrial task from scratch into the single CAD system. Based on IRoSim, users with a basic knowledge of robotics are able to generate the motion of an industrial manipulator. In order to show the effectiveness of the proposed platform, we implemented two different robotized tasks which are spot welding and painting using a 6-Degree Of Freedom (DOF) robotic manipulator. This paper is organized as follow: Section 2 presents a generic view of the proposed package while Section 3 addresses with the challenge of accessibility verification. Section 4 gives details of algorithms for placement and orientation zones that are used in the optimization procedure. Section 5 deals with the optimization of the task while Section 6 presents two frequent industrial robotized tasks. Finally Section 7 comments on conclusions.
2. CAD based approach CAD model databases such as SolidWorks API [16,17] have been widely investigated to define and simulate a manipulator's trajectory in various industrial applications [2,12]. SolidWorks API last offers the feature to calculate the task parameters based on a virtual 3D model of the real robotic cell. Moreover, modifications and redefinition of these parameters are easily possible with a user-friendly integration with SolidWorks. We used a Product Lifecycle Management (PLM) software SolidWorks to develop series of steps that allow user for define simulate and validate a given industrial task. Fig. 1 presents the main blocks of the proposed platform that allows engineers to design, plan and optimize the industrial tasks in the same environment, without the need to export all models from the design environment to the simulation environment. Important steps rebelled in Fig. 1 listed below: 1. Task definition based on knowledge of the real cell. 2. CAD learning based on the virtual 3D model. 3. Accessibility verification of the task and calculations of placement and orientation zones. 4. Time optimization of the task. 5. Graphical simulation and validation of the task.
Fig. 1. IRoSim offline-CAD programming schema.
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
123
Fig. 2. Illustrative schema of the data acquisition process.
2.1. CAD robotics package 2.1.1. Data acquisition The key underlying concept behind robotics offline programming is data acquisition. In our approach, this is based on a virtual representation of physical model of the robotized cell. A 3D virtual model is developed, followed by application of an algorithm for CAD learning to extract useful information from the virtual environments as illustrated in Fig. 2. This gives definition of the task and delimits some constraints between the robotic manipulator and the task. 2.1.2. 3D modeling of robot and environment 3D modeling: 3D modeling of the robotic cell [18] can be based on a volume and/or surface like CAD components. This can include the robots' libraries, end-effectors, 3D model of the task and objects of the remaining environment. For instance, a robot's WorkSpace (WS) modeled by volume has more geometrical information than the one modeled by surface. However, auxiliary 3D objects may be modeled by surface for specific needs. 3D objects that construct the cell are very similar with the real ones. It is worth to note that a realistic representation of these objects in the present work offers more accuracy compared with primitives modeling given in [18]. Fig. 3(a) shows a snapshot of robotized cell modeled in SolidWorks. Three main represented objects include the robot manipulator, the corresponding WS and the 3D model of the task. 3D modeling of the manipulator must allow possible kinematic joints representation of the corresponding links subject to certain numerical constraints. In SolidWorks, the 3D models are generated as Part or Assembly files, however these can also be easily imported from other format such as ParaSolid, EGS, and CATIA.
Task definition: Robotic task can be represented as a 2D/3D set of points to be visited by the manipulator's end-effector [19]. We distinguished two kinds of trajectories; Point-to-Points (P2P) and Continuous. P2P trajectory may include spot welding and drilling tasks while arc-welding, laser cutting, painting, polishing [16] etc. are examples of later trajectory. Fig. 3(a) and (b) illustrates two tasks corresponding to the mentioned kinds of trajectories. Robotics library: The proposed platform includes a set of robot manipulators including Staubli and KUKA KR6–2. 3D models of these manipulators have been integrated and assembled into SolidWorks. It is worth to mention that the proposed platform is open for new manipulator models. Moreover, the developed robotics library contains several other 3D models that are needed to run given simulation scenarios. These include five spot welding tools, two conveyors, three tables, two drilling tools, a drying machine, two grippers and a painting basin. For the sake of brevity, some of these models are illustrated in Fig. 4.
2.2. CAD learning 2.2.1. Knowledgeware and Visual Basic Application (VBA) Knowledgeware technologies include set of programs or components that contain knowledge embedded into the CAD model. These technologies are key of the contemporary PLM systems [20]. Automation of activities can be done in many PLM systems, such as CATIA, SolidWorks, and AutoCAD by using a tool like Microsoft Visual Basic (VB) common controls [21,22]. In that sense, knowledge embedded in VB macros can be used to manipulate the models (assembly and kinematics).
Fig. 3. Tasks defined in SolidWorks, (a) a car's chassis as P2P trajectory and (b) two tubes welded together as continuous trajectory.
124
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Fig. 4. 3D models of some objects in IRoSim robotics library showing a robot manipulator, five spot-welding tools, two conveyors, three tables, two drilling tools, a drying machine, two grippers, and a painting basin.
2.2.2. Learning process It is worth to note that the proposed platform works as plug-in with SolidWorks based on VBA. The objective is to extract substantial transformations of the trajectory s(x, y, z, α, β, γ) from the graphical area, based on the task definition (Fig. 5) as given by N+1
s(x, y , z, α, β, γ ) =
∑ Pi i=1
(1)
where
⎡ xx ⎢ xy Pi = Ti = ⎢⎢ x ⎢ z ⎣0
yx z x px ⎤ ⎥ yy z y py ⎥ yz z z pz ⎥ ⎥ 0 0 1⎦
(2)
where Ti is the homogeneous matrix representing the end-effector coordinates w.r.t. the robot base frame. The first 3 × 3 matrix elements in Eq. (2) indicate orientation while the last column vector gives the position. The proposed learning process is facilitated by the developed GUI. Initially, we need first a 3D CAD model of the task (as
highlighted in Fig. 6) and a realistic 3D model of the end-effector, whose details are specified in the main GUI of the application. The user can move the 3D model of the end-effector in the graphical area by translating and rotating around X, Y and Z axes using the developed GUI or SolidWorks GUI. First we need to obtain the critical information used for learning from the graphical area. Pseudo-code given in Fig. 6 demonstrates sequence of steps involved in this process considering a P2P trajectory. Initially, we get the coordinate of the points (e.g., N) where the robot will drill, spot, grasp etc. From this information, we can extract the orientation at each point as the normal of the surface containing the point (i.e., a geometrical coincidence constraint between the surface and the point). So, we have 4DOF (3 for position and 1 for orientation) which will help in the next stage of learning. The second step involves adjustment of the end-effector 3D model in the virtual environment. The designed GUI of the platform offers features to displace and rotate the end-effector around all possible axes. In case of a task involving a P2P trajectory e.g. grasping, this process is executed for two locations; the pregrasping and the grasping itself. At each location, we get the transformation matrix given in (2), which is used later for trajectory planning. Fig. 7 illustrates this step with some snapshots of the code.
3. Task accessibility The robot should be able to reach all task points defined by a user to accomplish the task accurately and precisely. In our approach, the task's accessibility verification is based on generation of the 3D model of WS, representation of the task points and finally interference checking. 3.1. Workspace generation Fig. 5. Position and orientation of the end-effector.
Two main objects in our simulation strategy include the WS
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
125
Fig. 6. A schema of reading data from a sketch in 3D graphical area with pseudo-code.
and the task points. The 3D shape of the WS of a robotic manipulator is a function of its mechanism including DH parameters, link lengths, and joints' Range Of Motion (ROM). Since several manipulators have first three joints meant for positioning an object while last three joints are usually for orientation [23], we considered only the first three joints to generate the 3D model of the WS. Generally, the second and the third joint are used to generate a sketch in the vertical plane with the first joint used for creating the volume function e.g., extrusion and revolution. This must be well defined in SolidWorks API to generate an accurate 3D model. Algorithm given in Fig. 8 depicts the main sequence involved in this step. It is worth to note that we need a volumetric 3D model to accomplish the verification. For the sake of brevity, the sub-algorithm and codes are not illustrated. Based on the algorithm given in Fig. 8, Fig. 9 shows a set of different mechanisms for a manipulator and their corresponding sketches in 2D as well as 3D WS models. As can be seen that the WS of serial robotic manipulators contain many objects such as surfaces, bodies, and curves vertexes. Taking for example the first case, where the manipulator has all revolute joints, the corresponding WS exhibits a complex spherical shape as shown in Fig. 9. The WS generation for serial manipulators has been discussed in detail in [24,25]. 3.2. Accessibility verification algorithm
accessible joint domain of the manipulator as given in Eq. (3).
Q=
{ q ∈ EAn,
∀ i ≤ n, qimin ≤ qi ≤ qimax
(3)
where qi is the coordinate of ith joint, EA is the configuration space domain and n is the total number of joints of the manipulator. The proposed tasks accessibility verification method is fully graphical. Through the SolidWorks's API, it uses geometrical features of the task points and 3D WS model of the manipulator to check the interference. The interference is checked between parallelogram-shaped temporary bodies created around the task points and the WS body of the manipulator to see if the point is reachable by the robot. Fig. 10 shows an example of three parallelogram-shaped objects represented around three points; one is inside the WS and the others are outside. If the task points are not reachable, the graphical accessibility verification process offers possibility to redefine the task or to redefine the robot's DH parameters (e.g., change the robot model) if necessary to accomplish the task. Steps required to check the accessibility of the task include:
Acquiring task points data from CAD model represented in the graphical area.
Creating virtual 3D objects around the task points. Navigating the 3D model of WS through displacements to reach the task points.
The accessibility of the task is proportional to the accessible positions and orientations having relationship with the Q
}
Detecting interference among the object points and 3D model of WS.
126
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Fig. 7. Code snapshots of IRoSim GUI that allow definition of critical trajectory points.
Fig. 8. Algorithm to generate 3D model of workspaces.
4. Placement and orientation zones 4.1. Proposed approach The proposed simulation platform offers the possibility to optimize the time to execute the task, in order to decrease the product cost. Therefore, the key point to achieve this objective is to find the shortest distance traveled by the manipulator in the coordinate space to accomplish the task. It is reported in [15] that the placement and the orientation of the robotic manipulator are of utmost importance in time optimization. This is the time that the manipulator's end-effector takes to visit all the points encountered
in the path and returns back to the initial configuration. The placement and orientation zones (Fig. 11(a)) of the manipulator could define the possible positions (Dx, Dy and Dz) and orientations (θ , ψ , ϕ) i.e. the manipulator can be displaced on three axis coordinate system and can also rotate around these axes. A general concept of orientation zone is presented in Fig. 11(b). This zone offers two main benefits:
The possibility to choose the suitable placement and orientation of the manipulator relative to the task by ensuring the task reachability. This can be optimized by coupling it with other factors such as the order of visiting of the task points and the
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
127
Fig. 9. Workspace 3D models of some common industrial manipulators.
Fig. 10. Accessibility verification, (a) an example and (b) a snapshot of a part of the code.
Inverse Kinematic Model (IKM) configurations of the manipulator at each task point [15]. In the pre-execution stage, motion of the manipulator should be free from any collision with the environmental obstacles. This condition may reduce the dimensions of placement and orientation zones.
Fig. 11 (b) shows flowchart of the generalized algorithm to determine the placement and orientation zones. The algorithm is based on the task points, 3D models and the body of WS and its external surfaces. The process above is based on the translation of miniature 3D objects. These objects are created around the corners of the
128
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Fig. 11. Placement and orientation zone, (a) a schema and (b) a flow-chart of the algorithm.
parallelogram enveloping the task points, outward following its diagonals we dispance these objects with interference verification. This leads to generation of a new parallelogram. While displacing these corners, the algorithm checks the interference of the external points defining the new parallelogram with the external surfaces of the WS in order to describe the orientation zone.
respectively. However, simultaneous scan of the three angles intervals i.e. whole orientation zone guides us to find a new optimal value of 56.98 s at the orientation of 97, 85, 28 nodes.
4.2. Placement and orientation impact for a spot-welding task
The motivation to have an industrial framework providing all the necessary stages needed by a robotic task lead us to include time optimization algorithm in IRoSim platform. In robotized manufacturing plants, the time required to accomplish a given task (cycle time) depends on the distance traversed by the manipulator's joints, which is related to the sequence of the taskpoints visited by the end-effector. Also, the manipulator executes a specific task in the operational space and performs the motion in the coordinate space, which makes the traveled distance a function of manipulator's IKM. In that sense, the optimization problem is concerned with finding the minimum distance between each two consecutive trajectory-points. Moreover, any solution of a IKM joint is strongly affected by the placement and the orientation of a manipulator. Therefore, in order to have a complete optimization method which outperforms the strategies presented in [26,27], we proposed an algorithm that incorporates an objective function, which includes order of achievement of the task-points, IKM at each task-point, relative placement and orientation between the manipulator and the task-points (Fig. 13). The cycle time has been computed based on joints' displacement between each successive pair of points and the average velocity of the corresponding joint. Consider n − DOF manipulator shown in Fig. 13 which has to visit N points with six dimensional task space. The manipulator has to return to its initial configuration after task accomplishment. The functional relationship between joint space and operational space can be formulated as in Eq. (4).
The pivotal impact of the placement and orientation zones of the manipulator on the task optimization process is demonstrated by considering a common manufacturing spot welding task. The task time has been evaluated according to several relative placements and orientations of the robot and the task points. In this evaluation, we have divided the placement zone of each axis and the orientation angles each into 100 times (hereafter we call them node) (Fig. 12). Taking the initial orientation of the manipulator as θ = ψ = ϕ = 0, the coordinate axes X, Y, Z are then scanned. First we change the manipulator's placement along these coordinate axes and compute the corresponding cycle time. In this test, the task-points order and IKM configurations are known. Evaluating time cycle on all positions, Fig. 12(b) shows scans of placement zones on XY, XZ and YZ planes. A common observation on these three graphs is that the variation of task cycle time for each position of the manipulator is a stochastic function (see Fig. 12(b) last row). In terms of nodes, there is an optimum positions that results in the best task time e.g. the area on XY plane located, from 45 to 58 and from 90 to 100 on X and Y axes, respectively. Similar results have been observed in YZ plane (from 80 to 95 and from 59 to 100 on Y and Z axes respectively). By carefully observing these complex plots, the best value of cycle time on XY plane is found as 61.09 s at node positions of 52, 91, 01 on X, Y and Z axes respectively while the values of the task time in XZ and YZ planes are found to be 61.25 s at 52, 39, 01 and 59.32 s at 04, 04, 73 positions. We scanned the orientation zone w.r.t. three angles (θ, ψ and ϕ) by fixing each orientation and varying the others as shown in Fig. 12(c). Observing these plots, which are formed by combinations of two angles, the best task time has been found as 57.48 s corresponding to the orientation of 80, 38, 69 nodes on θ, ψ and ϕ
5. Time optimization
()
( ) (4) n where q( t ) ∈ R is the vector of joint coordinates, n is the number P t = f q( t )
()
of DOFs of a manipulator, P t ∈ R N is the path to be followed in operational space and f denotes the manipulator IKM. It is worth
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
129
Fig. 12. Evaluation of the task's time according to the placement and orientation zone, (a) placement and orientation zone generation, (b) scan on the three axes, and (c) scan of the orientation zone around the three axes.
mentioning that IKM solution at a given task-point i exists if P ( i) ∈ Γ , where Γ is a manipulator's WS [28]. The manipulator can reach each task-point with m different configurations from several possible placement locations and orientation angles. Thus, the objective is to find the specific sequence of visiting all task-points with the smallest cycle time. The task time made by the robot from the point i using the kth IKM configuration to the point iþ1 using
lth IKM configuration is defined by Eq. (5).
tiΘ
⎛ l k ⎜ q j(i) − q j(i − 1) = max⎜ ⎜ qj̇ ⎝
⎞ ⎟ ⎟⎟ , ⎠Θ
j = 1, 2, …, n (5)
where k = 1, 2, … , m denotes the possible IKM configurations at task-point l = 1, 2, … , m denotes the possible IKM i − 1,
Fig. 13. Schema of n − DOFs manipulator that visits N points.
130
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
configurations at task-point i, qlj(i) and qkj(i − 1) are displacements of
joint j at task-points i and i − 1 respectively, Θ denotes the relative placement and orientation of a manipulator w.r.t task-points and is used to determine the transformation from the frame of taskpoints to the fixed frame i.e. manipulator's base, qj̇ is the average velocity of jth joint. The total cycle time required for a given task is given by Eq. (6). N+1 Θ tcycle =
∑ tiΘ
(6)
i=1
where N + 1 represents the number of displacements traversed between each two successive configurations and the return to the initial configuration i.e., the initial configuration is independent of the task-points. Consequently, the overall function of the optimized task's time can be formulated as Θ = min tmin
N+1
⎛
⎞
i=1
⎝
⎠
∑ tiΘ⎜⎜ j, i, k, l, q, N , Θ( x, y, z, θ, ψ , ϕ)⎟⎟
(7)
The computation of minimum cycle time tmin given by (7) demands careful examination of all the possible solutions, since it is a function of various variables. Consequently, this may significantly increase the complexity because the number of associated solutions is very huge, as multiple parameters construct our objective function. The number of IKM configurations for a manipulator with 6 DOF is 24 [29]. This can be decreased to 16 for manipulators having the last three joints axes intersected [23,30]. Therefore, the possible IKM configurations at each task-point can be defined as 2d where d = 1, 2, 3, 4 . The number of IKM configurations can be augmented to (2d )N at all the task points. Additionally, the possible number of order of task-points is defined by N!, which can be reduced to half considering symmetry of the problem e.g., the sequence of visiting the points 1–2–3–4 is same as visiting 4–3–2–1. However, the number of placements and orientations of the manipulator w.r.t task-points is related to the number of grids (divisions) that was used to sample these zones. The total possible placement number is
ξ1 = x node × ynode × z node
(8)
where xnode, ynode and znode are the possible placements on X, Y and Z axes respectively. Similarly, the total number of possible orientations is
ξ2 = θnode × ψnode × ϕnode
(9)
inspired by the mechanism of natural selection [32]. In our proposed approach, each chromosome is composed of four interlinked parts; visiting order of points, manipulator's IKM configurations at each point and its relative placements and orientations. The near optimal solutions are selected based on the objective function computed in (7). The visiting order of task-points is encoded by integer alphabets to avoid serious conflicts in the mutation operation. Moreover, we developed a specific algorithm to correct bits that lead to same genes in the crossover operation. For the manipulator's IKM configurations and its relative placements and orientations, a binary encoding has been chosen as exemplified in Fig. 14 (for a complete review see [15]). Through the proposed IRoSim platform, the population can be chosen from 6 to 10 000. The optimization process relies on the objective function given in (7), which is based on the cycle time that each solution (chromosome) can produce; where solutions with minimum time (high fitness value) are selected to be reproduced. The selection constraint is based on rank where an elitist fraction of 10% is preserved unchanged without mutation or crossover from the current generation to the next one so as to guarantee that the best solutions will not be lost. The chromosomes corresponding to the remaining population are reproduced by applying a crossover and mutation probability defined at the beginning of GUI. The proposed strategy proposes a uniform crossover, since it performs well compared to the two-point crossover because the later generates non-homogeneous chromosomes.
6. Case studies The proposed platform offers simulation of several types of tasks involving both P2P and continuous trajectories. All the requirements related with the controller, velocities and movement generation have been widely investigated in the literature [23,33]. Based on IRoSim, we present two different simulation case studies involving an industrial car; Spot-welding and painting car's doors. Fig. 15(a) shows a simplified flow-chart of the proposed algorithm to move a robotic joint from one configuration to another in 3D graphical area. Fig. 15(b) presents the pseudo-code of the corresponding algorithm. It adds the joints (components) that are considered to be moved, gets the current joints axes, creates an axis object, transforms and finally moves the joints. While moving objects, IRoSim's GUI provides the possibility to check collision on the flay, where users get notified and they are able to change the trajectory to avoid collision. The conveyor's motion is not shown for the sake of brevity.
5.1. Genetic based optimization approach 6.1. Spot welding Genetic Algorithm's (GA), proposed by John Holland [31], is a global search approach used to find an optimal solution. It is
For this case study, the designed graphical simulation
Fig. 14. Chromosome of n − DOFs manipulator visiting N points.
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
131
Fig. 15. Simulation schema of 6-DOFs manipulator, (a) flow-chart of the proposed algorithm and (b) pseudo-code of the corresponding algorithm.
environment in IRoSim platform incorporates all the steps mentioned above such as definition of the task points based on the 3D model of the car's body to be welded. Then the accessibility of the task is checked to make sure that the task points are reachable. In case these are not accessible, the task definition or manipulator needs to be changed. The case study is detailed below: 6.1.1. Definition, accessibility and CAD trajectory learning Thanks to IRoSim's GUI that provides possibility of translations and rotations around the End-Effector Frame (EEF) coordinate axes. Fig. 16 (a) shows typical snapshots of rotating the end-effector while performing the CAD learning process. The GUI permits automated angle calculations and set of the EEF from Conf0 to Conf1. The user can translate and rotate the EEF to reach a suitable configuration for grasping (welding, Confg) and pre-grasping
(Confp). E.g. a typical user clicks on the button “Angles” in the GUI to calculate Euler angles required from Conf0 to Conf1 and then “define path” in CAD guide trajectory page (Fig. 16 (b)). This will set the EEF to be aligned (rotation and translation from Conf0 to Conf1) with the task point that we want to spot. User then rotates the EEF around the axis perpendicular to the Mother surface of the point (Fig. 16(d)) to reach a suitable and collision-free configuration (Confg). Finally, before confirming the configuration, the user translates the EEF from Confg to Confp manually (using “Translate and Rotate” option) or automatically (by letting the algorithm to translate back the EEF with collision avoidance into consideration). When there is no collision, the algorithm stops and saves the corresponding configurations (Confg and Confp). These steps are repeated for all the task points. The user can manually or automatically check if the saved configurations are reachable, by a
Fig. 16. Snapshots of CAD learning trajectory of spot-welding task at a given point.
132
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Fig. 17. Snapshots of simulation of spot welding task developed by IRoSim platform.
Fig. 18. Snapshots of CAD learning trajectory of painting task at a given point.
particular robotic manipulator or not.
6.1.2. Simulation The optimum values of placement and orientation zones are found to be 290.46 mm, 290.50 mm, 302.12 mm, 119.89°, 223.94°
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
133
Fig. 19. Snapshots of simulation of painting task developed by IRoSim platform. (For interpretation of the references to color in the text, the reader is referred to the web version of this paper.)
and 246.59° respectively on X, Y, Z, θ, ψ and ϕ. Fig. 17 illustrates a sequence of snapshots taken while performing the spot welding of an industrial car body. For brevity, we limited the simulation to four points ( a – d ). A video of a similar task can be found in the link: “https://www.youtube.com/watch?v¼ soM4ONQ8n8o”. 6.2. Painting 6.2.1. Definition, accessibility and CAD trajectory learning In a similar fashion to that of spot welding, the painting task has been developed through several stages. Fig. 18 illustrates definition of the task points where each point is constrained on the proper surface of the car's door. Fig. 19(b) shows snapshot of CAD trajectory learning. It is worth to note that Euler angles between the initial EEF configuration (Conf0) and the first configuration (Conf1) are given in [23]. This is set automatically while opening the CAD learning Trajectory page (Fig. 18 (b)). Moreover, to reach the grasping configuration (Confg), the user must turn the EEF using the GUI (Fig. 19(d)). When this is done, the user translates backward following the Z-axis to reach the pre-grasping configuration (Confp). The two matrices of Confg and Confp can then be saved (Fig. 19(e)) and finally checked for task accessibility (Fig. 19 (f)) by moving the WS manually around the task and checking if all the points are reachable or automatically by running the corresponding algorithm.
6.2.2. Simulation The values of placement and orientation zones are found to be very small and can be neglected. This implies that during the optimization process, the placement and orientation parameters are not considered. Moreover, the order of visiting points is fixed because of the highly constrained task, where we have only one sequence (e.g., doors are given in orders). For instance, the manipulator grasps the support from the first conveyor and puts it on the second one, then starts transporting the first door (Fig. 19(a)), paints it in the basin (Fig. 19(b)) and then places it on the second support (green color model) (Fig. 19(c)). This operation will be repeated for all other doors and finally the manipulator transports the last support after drying the painted doors in the drying machine. Grasping, painting and putting the last door on the second conveyor are respectively shown in Fig. 19(a)–(c). It is important to confirm that the detected obstacles during the simulation have been resolved by adding intermediate points in the trajectory of the robotic manipulator. A video of this task is given in the link: “ https://www.youtube.com/watch?v ¼im5qGO7Ky5Y”.
7. Conclusion In this paper, we presented our software IRoSim (Industrial Robotics Simulation Design Planning and Optimization) platform which is based on several steps that are, in total, connected and vital to define, optimize, simulate and validate industrial tasks.
134
K. Baizid et al. / Robotics and Computer-Integrated Manufacturing 42 (2016) 121–134
Through many known steps, a user is able to define and simulate a given task and then map it to the real site. This allows cost-effective solution to the problems related with time optimization and collision avoidance. The definition step can be performed in a Part or Assembly docs. Therefore, the designed GUI of the proposed platform offers many utilities that can cope with several industrial tasks including but not limited to drilling, painting, spot welding, pick and place and other object manipulation tasks. Moreover, the proposed platform is fully integrated with SolidWorks GUI which further enhances its efficacy. We showed two main industrial tasks to prove the claimed capabilities of the proposed platform. Spot welding task was performed on a car's body that was developed entirely in SolidWorks. Simulation results showed the effectiveness of the CAD learning algorithm in simplifying the accessibility verification and trajectory generation. The user does not need to take measurements on the real site. Moreover the task was fully optimized to find the optimal solution based on the minimum cycle time. In the optimization process, we considered the four main parts that can affect the task's time; visiting order, IKM configuration, relative placement and orientation of the robot manipulator w.r.t. the task points. The developed GUI offers modularity to tune all these parameters. The second task was painting a car's doors. The task definition was straightforward i.e. just add more 3D models of the door, arrange them in the right place on the conveyor and then proceed toward CAD learning and accessibility steps. For this task, since all the task points have inter-constraints that do not allow changing the order, we did not consider three parameters of the optimization problem (order of visit, placement, and orientation) because of the problem specificity since all the task points have inter-constraints that do not allow changing the order. As for the placement and the orientation zones, due to the large size of the task, the values corresponding to these zones were null. In near future, we are looking forward to add more software blocks to enhance the functionality of the platform by handling multi-robot systems.
[9]
[10]
[11]
[12]
[13]
[14]
[15]
[16]
[17]
[18] [19] [20] [21]
[22] [23] [24]
[25]
References [26] [1] Torgny Brogardh, Robot control overview: an industrial perspective, Model. Identif. Control 30 (3) (2009) 167–180. [2] P. Neto, N. Mendes, Direct off-line robot programming via a common CAD package, Robot. Auton. Syst. 61 (2013) 896–910. [3] H. Chen, W. Sheng, N. Xi, M. Song, Y. Chen, CAD-based automated robot trajectory planning for spray painting of free-form surfaces, Ind. Robot: Int. J. 29 (5) (2002) 426–433. [4] Z. Pan, J. Polden, N. Larkin, S.V. Duin, J. Norrish, Recent progress on programming methods for industrial robots, Robot. Comput.-Integr. Manuf. 28 (2) (2012) 87–94. [5] L. Qi, D. Zhang, J. Zhang, J. Li, A lead-through robot programming approach using a 6-DOF wire-based motion tracking device, in: IEEE International Conference on Robotics and Biomimetic, 2009, pp. 1773–1777. [6] B. Hein, M. Hensel, H. Wörn, Intuitive and model-based on-line programming of industrial robots: a modular on-line programming environment, in: IEEE International Conference on Robotics and Automation, 2008, pp. 3952–3957. [7] B. Hein, H. Wörn, Intuitive and model-based on-line programming of industrial robots: new input devices, in: IEEE International Conference on Intelligent Robots and Systems, 2009, pp. 3064-3069. [8] H. Mikuláš, S. Ján, V. Marek, Robotic cell with robot Kuka for spot welding, in:
[27]
[28] [29]
[30]
[31]
[32] [33]
6th IEEE International Symposium on Applied Machine Intelligence and Informatics, 2008, pp. 115–116. S. Mitsi, K.D. Bouzakis, G. Mansour, D. Sagris, G. Maliaris, Off-line programming of an industrial robot for manufacturing, Int. J. Adv. Manuf. Technol. 26 (3) (2004) 262–267. X.F. Zha, H. Du, Generation and simulation of robot trajectories in a virtual CAD-based off-line programming environment, Int. J. Adv. Manuf. Technol. 17 (8) (2001) 610–624. A. Meddahi, K. Baizid, A. Yousnadj, J. Iqbal, API based graphical simulation of robotized sites, in: 14th IASTED Robotics and Applications Conference, Cambridge, USA, 2009, pp. 458–492. H. Chen, W. Sheng, N. Xi, M. Song, Y. Chen, CAD-based automated robot trajectory planning for spray painting of free-form surfaces, Ind. Robot.: Int. J. 29 (5) (2002) 426–433. M.F.A. Jabal, M.S.M. Rahim, N.Z.S. Othman, Z. Jupri , A comparative study on extraction and recognition method of CAD data from CAD drawings, in: International Conference on Information Management and Engineering, Kuala Lumpur, Malaysia, 2009, pp. 709–713. W. Sheng, N. Xi, M. Song, Y. Chen, J. S. Rankin, Automated CAD-guided automobile part dimensional inspection, in: International Conference on Robot and Automation, San Francisco, USA, 2000, pp. 1157–1162. K. Baizid, A. Yousnadj, A. Meddahi, R. Chellali, J. Iqbal, Time scheduling and optimization of industrial robotized tasks based on genetic algorithms, Robot. Comput.-Integr. Manuf. J. 34 (2015) 140–150. P. Neto, N. Mendes, R. Araújo, J.N. Pires, A.P. Moreira, High-level robot programming based on CAD: dealing with unpredictable environments, Ind. Robot.: Int. J. 39 (3) (2012) 294–303. Y. Mizugaki, M. Sakamoto, K. Kamijo, Fractal path application in a metal mold polishing robot system, in: International Conference on Advanced Robotics, Pisa, Italy, 1991, pp. 431–436. Zeghloul, B. Blanchard, M. Ayrault, SMAR: a robot modeling and simulation system, Camb. J. 15 (1) (1997) 63–73. P.Th. Zacharia, N.A. Aspragathos, Optimal robot task scheduling based on genetic algorithm's, Robot. Comput.-Integr. Manuf. J. 21 (1) (2005) 67–79. D. Goran, CAD/CAM Tehnologije, Mašinski fakultet Kragujevac, CIRPIS Centar Kragujevac, ISBN: 978-86-86663-40-5, 2009. J. Hansen, Kochbuch CATIA v5 Automatisieren—Vom Powercopy bis zur C#Programmierung, ISBN: 978-3-446-41621-5, Munich, Germany: HANSER Verlag, 2009. Microsoft Visual Basic 6.0 Common Controls.〈http://www.microsoft.com/enus/download/confirmation.aspx?id ¼ 10019〉 (accessed: 07.05.2016). W. Khalil, E. Dombre, Modlisation Identification et Commande des Robots, Hermes Science Publications, Paris, 1999. K. Baizid, Ali Yousnadj, T. Bentaleb, Simulation graphique d'un processus d'accessibilité de sites robotisé sous un environnement 3D, (SISNE) séminaire international de systèmes numériques embarqués, EMP Algeria, 2008. S. Manzoor, R.U. Islam, A. Khalid, A. Samad, J. Iqbal, An open-source multi-DOF articulated robotic educational platform for autonomous object manipulation, Robot. Comput.-Integr. Manuf. J. 30 (2014) 351–362. M. Dissanayake, J. Gal, Workstation planning for redundant manipulators, Int. J. Prod. Res. 32 (5) (1994) 1105–1118. K. Baizid, R. Chellali, A. Yousnadj, A. Meddahi, B. Toufik, Genetic algorithms based method for time optimization in robotized site, in: IEEE/RSJ International Conference on Intelligent Robots and System (IROS), Taiwan, 2010, pp. 1359-1364. L. Kin Huat, Industrial Robotics: Programming, Simulation and Applications, Pro Literatur Verlag, Germany/ARS, Austria, ISBN 3-86611-286-6, 2006. L. Tsai, A. Morgan, Solving the kinematics of the most general six-and fivedegree-of-freedom manipulators by continuation methods, in: ASME Mechanics Conference, Boston, 7–10 October, 1984. H.Y. Lee, C. Woernle, M. Hiller, A complete solution for the inverse kinematic problem of the general 6R robot manipulator, ASME Trans. J. Mech. Des. 113 (1991) 481–486. J.H. Holland, Adaptation in Natural and Artificial Systems: An Introductory Analysis with Applications to Biology, Control and Artificial Intelligence, MIT Press, Cambridge, MA, USA, 1992. Z. Michalewitz, Genetic Algorithms, Data Structures Evolution Programs, 3rd ed., Springer, Berlin, 1996. B. Siciliano, L. Sciavicco, L. Villani, G. Oriolo, Robotics: Modelling, Planning and Control, Springer-Verlag, London, 2008.