Page 1


Pedro Neto, 1Nuno Mendes, 1Ricardo Araújo, 1 J. Norberto Pires, 2A. Paulo Moreira 1 Department of Mechanical Engineering (CEMUC), University of Coimbra, Coimbra, Portugal 2 Institute for Systems and Computer Engineering of Porto (INESC-Porto), Porto, Portugal


INTUITIVE ROBOT PROGRAMMING BASED ON CAD: DEALING WITH UNSTRUCTURED ENVIRONMENTS 1.ª PARTE ABSTRACT: Purpose – The global market demands for cheaper, diversified and better quality products are forcing manufacturing companies to change their production facilities. Increasingly, traditional manufacturing is being replaced by flexible manufacturing systems where industrial robots are seen as a fundamental element. Nevertheless, robot programming is still a time consuming task that requires technical expertise. The purpose of this paper is to present a human-robot interface that allows non-expert users to teach a robot in a manner similar to that used by humans to teach each other. Another important issue addressed here has to do with how robots deal with uncertainty and the role of sensory feedback as a way to make robots more autonomous and thus face uncertainty. Design/methodology/approach – The main aim of this paper (intuitive robot programming) is achieved by using 3D CAD drawings to generate robot programs off-line. Robot paths are extracted from a simplified 3D CAD model of the robotic cell that contains the desired robot paths. This CAD-based robot programming approach works well if the robot working environment is well defined, in other words, if the CAD model reproduces correctly the real scenario and the robot calibration process is accurately done. Otherwise, we can say that we are in the presence of uncertainty, an unstructured environment. Sensory feedback allows to minimize the effects of uncertainty, providing information to adjust the robot paths during robot operation. Findings – It was found that it is possible to generate a robot program from a common CAD drawing and run it without any major concerns about calibration or CAD model accuracy because sensory feedback allows the robot to adjust to the working environment. Research limitations/implications – A limitation of the proposed system has to do with the fact that it was designed to be used for particular applications, in this case for seam tracking and for applications that require the robot follows a geometric profile while maintaining a contact force (polishing, sanding, etc.). Many times, sensor integration is still done in the high-level hierarchy of control and thus reducing the real-time response capacity of the entire robotic system. Practical implications – Since today most of the manufacturing companies have CAD packages in their facilities, CAD-based robot programming may be a good option to program robots without the need for skilled robot programmers. Two different real-world experiments are presented. Originality/value – It is proposed a CAD-based robot programming system where robot programs are generated from a CAD drawing produced on a commonly available CAD package (Autodesk Inventor). This is a low-cost and low setup time system where no robot programming skills are required to operate it. Moreover, sensory feedback helps to eliminate problems caused by the transition from the virtual world (CAD environment) to the real world.



Keywords: CAD, Industrial Robotics, Intuitive Programming, Sensory Feedback, Unstructured Environments.

1. INTRODUCTION 1.1. Motivation Often, people refer to the factory of the future as a factory floor equipped with “intelligent” and flexible machines capable of making decisions and work without significant human intervention. These factories were not created by decree or with the purpose of recreating science fiction. On the contrary, these factories have arisen due to market demands for cheaper, diversified and better quality products. In the last few years, there has been a tendency in the way factories have evolved. Increasingly, companies are changing and reinventing their production systems. Traditional manufacturing systems (often based on fixed automation and manual work) are being replaced by flexible systems, enabling companies to continue to be competitive in global market. This competitiveness is reflected in the companies’ capacity to respond quickly to market demands, producing more and better quality products at competitive prices. Another important factor has to do with the market demands for products in small batch sizes, forcing factories to constantly adapt their production layout (flexible automation is needed). Owing to its flexibility, programmability and efficiency, industrial robots are seen as a fundamental element of modern flexible manufacturing systems. Nevertheless, there are still some problems that hinder the utilization of robots in industry, especially in small and medium-sized enterprises (SMEs) (Pires et al., 2005). SMEs have difficulty finding skilled workers capable of operating with robots. Therefore, new and more intuitive ways for people to interact with robots are required to make robot programming easier and accessible. Moreover, with this system, robots can be programmed much more quickly and thus avoid downtimes in production. A robot can be considered as an unskilled worker who is strong and able to perform precise manufacturing. If people learn how to communicate easily with this special “worker” they can have a new capable “colleague”. The goal is that the instructor can be able to teach a robot in a manner similar to that used by humans to teach each other, for example using CAD drawings, gestures or through verbal explanation (Neto et al., 2010a). Lastly, it is important to mention that the socio-economically importance of SMEs in developed countries is enormous as they represent the majority of jobs created (Lukács, 2005).

1.2. Objectives Robot programming through the typical teaching method (using the teach pendant) is a tedious and time-consuming task that requires technical ex-


3.3.1. Position interpolation


Consider r(k)=[rx(k) ry(k) rz(k)]T a generic end-effector position generated at the discrete time k and defined in [Pj Pj+2], (Figure 6). Pj, Pj+1 and Pj+2 are known end-effector poses, extracted from the CAD drawing (see section 4.1.2). For the profile in Figure 6 (possible area of risk) we will separate interpolation in two sections, S1 and S2; S1ࣅ[Pj Pj+1] and S2ࣅ[Pj+1 Pj+2] . The calculations are presented for section S1 but for other sections the procedure is the same. So, r(k) is calculated using both the known data points from CAD (Pj, Pj+1) and the profiling velocity v(k):


It is assumed that the magnitude of v(k), |v(k)|, is a constant. Considering r(k)ࣅ[Pj Pj+1], a direction vector W can be defined as:


From (10) and (11), each directional velocity profile is obtained by:



3.4. Robot program generation Several code generation techniques have been developed, for example, today’s commercial CAD/CAM systems are able to generate cutter location data for NC machining. Nevertheless, these systems tend to have drawbacks such as their ability to generalize from different situations. Using the information extracted from the CAD environment, the system presented here is able to generate robot programs for specific robotic applications. The code generation process is divided into two distinct phases: Definition and parameterization of robot positions/orientations, reference frames, tools, etc. The end-effector positions and orientations extracted from CAD are used to define the robot path target poses (18). When confronted with risk areas (see section 3.3) the interpolation algorithms automatically generate the appropriate end-effector poses for these areas. From (5) we have the end-effector positions BP; from (1) the transformation matrix (BCT) containing the rotation matrix, which in turn is used to calculate end-effector orientation in the form of quaternions or Euler angles; from (15) the interpolated positions r(k); and finally from (16) the interpolated orientations (quaternions) Qk.

(18) From (12), using a sampling width Δt, the interpolated position r(k) is given by:



Body of the program. A robot program contains predominantly robot movement instructions (linear, joint, circular or spline robot movement). These movement instructions are selected according to the type of lines used in the CAD drawing to define the robot paths. For example, if a segment of a path is drawn as a straight line, the generated code will contain a robot instruction that makes the robot moves linearly in that path segment (Figure 7).


Note that n represents the number of interpolated points.

3.3.2. Orientation interpolation It was used a quaternion interpolation algorithm (spherical linear interpolation – Slerp) to interpolate smoothly a sequence of end-effector orientations. For the profile in Figure 6 we will interpolate end-effector orientations between Pj and Pj+1. Given two known unit quaternions, Q0 (from Pj) and Qn (from Pj+2), with parameter k moving from 1 to n-1, the interpolated endeffector orientation Qk can be obtained as follows: Figure 7 robot movement instructions.




[continua na próxima edição]

Intuitive robot programming based on cad: dealing with unstructured environments  

Autor: Pedro Neto, Nuno Mendes, Ricardo Araújo, J. Norberto Pires, A. Paulo Moreira; Revista: robótica nº84

Intuitive robot programming based on cad: dealing with unstructured environments  

Autor: Pedro Neto, Nuno Mendes, Ricardo Araújo, J. Norberto Pires, A. Paulo Moreira; Revista: robótica nº84