What Are the Different Programming Methods for Robots?
Posted on Mar 24, 2016 7:00 AM
As the expression goes, "there's more than one way to skin a cat". You could equally say "there's more than one way to program a robot". This would be just as true, and less of a worry for the cat. What are the advantages and disadvantages of each programming method? In this post, we look at three of the most popular ways to program industrial and collaborative robots.
When most people think "programming" they think about typing lines of code into a computer. While this is still the most popular way of programming, it is far from the only way. For some early programmers, "writing a program" meant punching a load of holes into long strips of paper and feeding them into the computer. "Reloading the program" meant winding the strips back onto a spool, which meant that an occupational hazard for programmers was getting a lot of paper cuts.Modern robotics programming has come on a long way since then. But, in the end, every instruction in robotics ends up as 1s and 0s inside some low-level electronics. These days, there are many different ways to enter those binary bits into the robot. Some of them don't even require formal knowledge of programming.
Top Three Robot Programming Methods
Robot programming has largely moved away from low level coding to more intuitive methods. This move has partly been fuelled by a desire to make programming easier for operators. Robot operators are not always robot makers, and robot makers are not always the best people to program a particular task. It would, for example, be far better to get a painter to program a painting robot, rather than a programmer who has no experience with painting. Traditional programming methods would be restrictive for such operators.
Each programming method has advantages and disadvantages. Here are three popular methods of robot programming that certainly don't require strips of hole-punched paper.
1. Teaching Pendant
The most popular method of robot programming is probably the teach pendant. According to the British Automation and Robot Association, over 90% of robots are programmed using this method. The robot teaching pendant has changed a lot throughout its lifetime, but often consists of, what looks like, a giant handheld calculator. Early pendants were large, grey boxes with magnetic tape storage. The modern teach pendants are more like a touchscreen tablet, as the technology has developed to suit the ever evolving users. To program the robot, the operator moves it from point-to-point, using the buttons on the pendant to move it around and save each position individually. When the whole program has been learned, the robot can play back the points at full speed.
Advantages of a Teaching Pendant
- Most traditional industrial robots come with a teach pendant, which makes them familiar to technicians.
- They allow precise positioning, as the robot can be programmed using numerical coordinates, in either world coordinates, robot coordinates or another coordinate system.
- Teach pendants are great for simple movements, such as painting in a straight line or over a large flat surface.
Disadvantages of a Teaching Pendant
- Disruptive to the whole system due to robot downtime. The robot must be put into "teach mode" and all operations using the robot halted until it has been programmed.
- Requires training to learn and program.
- Might be difficult for skilled craftspeople who are unfamiliar with programming.
2. Simulation/Offline Programming
Offline programming, or simulation, is most often used in robotics research to ensure that advanced control algorithms are operating correctly before moving them onto a real robot. However, it is also used in industry to reduce downtime and improve efficiency. It can be a particularly useful method for SMEs, as robots are more likely to be reconfigured multiple times than they are in mass production environments. Programming offline means that this does not interfere with production too much. Offline programming allows the robot to be programmed using a virtual mockup of the robot and task. If the simulation software is intuitive to use, this can be a quick way to test an idea before moving it to the robot.
Some modern simulation packages are quite straightforward to use. This video shows the RoboDK software with two robots performing pick and place from a conveyor belt. The simulation can be set up within a matter of minutes, once you are familiar with the software, using a library of common robots and objects.Some simulators also allow you to enter a CAD part and the system will automatically generate the robot trajectories. This can improve the efficiency of programming even further.
Advantages of Offline Programming
- Reduces downtime required for robot programming. Programs are developed offline, so the robot only has to be halted while the new program is being downloaded and tested.
- Can be quite intuitive, especially if the robot can be moved around in a 3D CAD environment with drag and drop techniques.
- Easy to test many different approaches to the same problem, which would be inefficient for online programming methods.
Disadvantages of Offline Programming
- Virtual models will (probably) never be able to represent the real world with 100% accuracy. Programs may still need to be altered after they are applied to the real robot.
- Might take longer overall. Although offline programming reduces the downtime of the robot, it means that someone has to spend extra time developing the simulation, as well as testing it on the robot.
- Can sometimes end up wasting time sorting out simulator issues instead of solving production challenges. This could be related to the quality of the simulator.
3. Teaching by Demonstration
Teaching by demonstration (and more specific methods like Kinetiq teaching) offers an intuitive addition to the classic teach pendant. These methods involve moving the robot around, either by manipulation a force sensor or a joystick attached to the robot wrist just above the end effector. As with the teach pendant, the operator stores each position in the robot computer. Many collaborative robots have incorporated this programming method into their robots, as it is easy for operators to get started immediately using the robot with their applications.
Advantages of Teaching by Demonstration
- Quicker than traditional teach pendants. It removes the need for multiple button pressing, allowing the operator to simply move the robot to the desired position.
- More intuitive than both traditional teach pendants and simulation programs, as the task is programmed in almost the same way a human operator would perform it. This makes it simple for operators to learn. Generally, this method requires no knowledge of programming concepts or being familiar with 3D CAD environments (as simulation does).
- Very good for detailed tasks which would require many lines of code to achieve the same effect, such as welding or painting of intricate shapes.
Disadvantages of Teaching by Demonstration
- As with traditional a teach pendant, this method uses the physical robot for programming. This means that it does not reduce downtime, as much as offline programming.
- Moving the robot to precise coordinates is not as straightforward as with the other methods. This is especially true with some joystick based systems, where there is no way of entering a numerical value. Kinetiq teaching combines these features by allowing for the entering of exact numerical coordinates along with positioning based coordinates.
- Not so good for tasks which are "algorithmic" in nature. For example, if a robot had to paint a flat surface by moving horizontally along the surface, then move down an inch, move horizontally in the opposite direction, etc. Moving the robot by hand would be arduous and inaccurate for such a task.
Which Programming Method Should You Choose?
As with anything in robotics, the best method will depend highly on your task, robot and requirements. Use the advantages and disadvantages listed in this post to decide which method could suit your application. If reducing downtime is the most important factor for you, offline programming could be your best option. If intuitive programming is more important, teaching by demonstration might suit you more. If you have an algorithmic task and want a familiar interface, a teach pendant could be a good choice. For more information of collaborative robots and their intuitive programing interface check out the eBook below.
Which is your preferred method of robot programming? Are there any other methods you use which are not mentioned in this post? What do you think are the advantages and disadvantages of each method? Tell us in the comments below or join the discussion on LinkedIn, Twitter or Facebook.