There are many Robot Programming Methods - What are the Differences?
Robots are commonly used in process automation. In the past, the main purpose was to carry out specific repetitive actions over and over again in order to support the workers from recurrent, physically stressful or hazardous activities. Nowadays, the scope of robot operations and applications is virtually limitless with a range from simple pick&place operations to complex and adaptive operations, e.g in car-body production, complex welding or airframe assembly.
Whatever application, someone has to "show" the robot what to do before it can safely redo the job. There are several methods available to program a robot, all of them with pro's and con's. So it depends on several aspects to select the most appropriate method: the application, the amount of re-programming, the complexity of the application, the available data supply and others. Let’s take a look at the various methods – from teaching collaborative robots down to CAD-based and parametric offline-programming of industrial robots.
Programming in Teach Mode
Most recently, collaborative robots showed up everywhere. It’s not only that they can be operated with no safety fences, they also come along with a quite revolutionary method: very often the programming is done in teach mode. In this mode, the robot is moved to each position by hand. This position is stored, and then it is moved to the next position, and so forth. In order to trigger specific commands, such as gripper functions, the operator can select the function on a teach panel, and it will be stored and thus executed on the respective position.
Thanks to this very intuitive method, even operators with no programming skills can easily teach robots. The use cases are also reflecting the typical scope of collaborative robots: showing parts to workers, supporting assembly operations, performing pick&place tasks.
Programming with Scripting Language
A scripting language is a high-level, easy to edit programming language that is used to describe robot movements and operations. It is interpreted in real-time, or "translated on the fly", instead of being compiled in advance. Depending on the controller, scripting languages have a certain “vocabulary” to describe the robot motion targets, and controller commands. More advanced languages are supporting data objects and program flows, representing the list of instructions that is used to program the robot. Technically, with scripting you can define more complex robot programs, but using them for programming is quite abstract.
Programming with Teach Pendant
I guess the teach pendant is the most used tool to program a robot. Most likely every controller cabinet has a teach pendant attached. As a prerequisite for this programming method, the robot cell must be operational, available and accessible. While teaching, the cell is out of production. Teaching is personalized, thus depending of the programmers day‘s form, and the probot positions are as precise as the eyeball of the operator. Certain process parameter cannot be controlled and have to be edited manually. With this method, you need to teach every single point individually, due to that it is very cumbersome and time-consuming and thus only reasonable if you do not change the programs very often, and if the robot program is relatively simple with just a few positions.
Programming with Offline Teaching Software
Many robot vendors are offering offline software to teach the robot on a PC. This software is mainly vendor-specific, strictly limited to one robot brand only. No problem, if customers are not running different robot brands, otherwise they have to use a different software for each of them. The obvious advantage: the robot and the software are closely linked, the simulation is very often based on the robot control logic, and the vocabularies for controller commands are very comprehensive, in most cases.
In addition to vendor tools there are also factory simulation software, and PLM software on the market that also offer functions to teach a robot offline. Those tools might provide some more flexibility and user support, and – compared to the vendor-specific ones – they can be used for different robot brands.
The advantage of these software tools – no matter if vendor-specific or generic – is that the cell can produce in parallel, while the operator uses a PC to program new parts. This PC has a virtual robot model, the tools and a 3D model of the environment. Similar to manual teaching, every point has to be defined with its coordinates, normal orientation and axis orientation.
Sometimes, some specialized tools offer even some automatic functions, e.g to automatically detect geometrical elements on 3D CAD data, or to create a set of points along a line for welding operations. This simplifies the life of the programmer, but still the challenge arises when the robot program needs to be modified for whatever reason, because a modification also has still to be done point by point in many cases.
Programming with OLP and Simulation Software
A real offline-programming and simulation software (OLP) blends the advantages of vendor-specific teaching tools with the generic approach of CAD-based or PLM-based teaching and simulation software and combines them with technology integration.
Thanks to this technology integration and the capability to simulate and optimize the entire program offline, it is possible to achieve optimized robot programs which are containing all motion commands and controller parameters for immediate execution on the robot cell with no further touch up.
Due to the fact that programming takes place in a realistic robot setup in 3D, critical zones and complex operations, which are difficult to observe in reality when using a teach pendant, can be programmed and verified easily with full collision control. The path planning algorithms also enable the user to modify and optimize the robot positions along the entire contour, or a segment of the contour, depending on the requirements: for a local springback compensation or wrinkle avoidance in roller hemming, for a global 3D offset on painting or NDT operations, for a smooth tool interpolation to locally avoid collisions, for a simultaneous and synchronized use of rails or positioner axis, and many more. If needed, these parametric robot paths can be combined with teach-in positions, e.g to quickly define linking motions between operation areas.
A technology integration makes sure that the robot paths, the tool orientations and controller parameters are already pre-set for the target operation: multi-run paths with different tool angles in case of roller hemming, automatic stack analysis with drilling depth control in case of aerospace drilling and riveting, geometry macro support in case of laser cutting, etc. The result: highly flexible in terms of robot brands and types. High path quality thanks to CAD-based, and technology-specific algorithms. The output is an optimized robot program including all signals, events and controller parameters.
Summary
There are many methods available to program a robot. I have just listed 5 of them, there are a lot more variants possible, for sure. Let me finish with a very simplified summary: the more complex the robot application is, the higher is the demand regarding OLP software. Simple pick&place operations can be easily and quickly defined with teaching methods. Complex applications, however, require a high-level software to use them efficiently.
Good article, but what about robots not needing any programming? Autonomous industrial robots are comming!
Learning from Demonstration can help to induce skills in robot
Or just use drag&bot and program robots via drag&drop. Contact me are visit our website : https://www.dragandbot.com
Hi Jens, very nice overview of programming methods for industrial robots. Would you comment on the trends in terms of industrial robot OLP & simulation and its place in the overall digital manufacturing portfolio?