Robot Programming

You might think that programming a robot is straightforward. After all, there is only one way to do it isn’t there? This may come as a surprise, but there are three very popular methods of robotics programming. And they are about far more than just typing code lines.

Fact is that modern programming has come some way on since the early days. But the result is still the same — the instructions still wind up as a series of 1s and 0s. Goes without saying that there is more than one way to get those into a robot, and some of these some techniques don’t even require any formal programming knowledge.

Top Three Methods

These days, robot programming is more about intuitive methods than low-level coding. And much of this is down to a desire to make it much easier for programmers. Those that operate robots are not necessarily the same people as those that make robots. And in turn, robot makers are very often not the best at programming robots to do specific tasks. For example, if you have a robot that is going to paint, it is far better to have a painter program it than a programmer who cannot paint.

The following are three methods used for programming robots. Each comes with its own advantages and disadvantages.

Teaching Pendant

This is, hands down, the most popular teaching method. More than 90% of robots are programmed in this way, according to the British Automation and Robot Association. More often than not, although it has changed over time, the robot teaching pendant usually consists of something that looks much like a large calculator. In the early days, they were big gray boxes containing magnetic tape storage. But today they are more like touchscreen tablets. The operator will move the pendant from point to point to program the robot, using buttons on the pendant to move it. Each position is saved individually. And once the entire program is learned, the robot will be able to play the points back at full speed.


  • Traditional industrial robots already have a teaching pendant, allowing technicians to work much easier.
  • They allow for very precise positioning because numerical coordinates can be used to program the robot. Either robot coordinates, world coordinates, or some other coordinate system is used.
  • They are good for simpler movements like straight lines or large flat surface movements.


  • Because of robot downtime, they can be disruptive to the entire system. The robot has to be placed into “teach” mode, and any operations being done by the robot stopped until programming is over.
  • Operators must be trained to use the system for learning and programming.
  • Can be difficult to get the hang of for those not familiar with programming.

Offline/Simulation Programming

Offline or simulation programming tends to be used most in robotics research as a way of making sure that the algorithms designed for advanced control are working properly before they are used in real robots. However, the industry also uses them to improve on efficiency and keep downtime to a minimum. It is a useful method for SMEs (small to medium enterprises) because it is likely that robots will be reconfigured several times in these areas — far more than those in mass production domains. Offline programming means that production is not interfered with too much, and the robot can be programmed using virtual mockups, both of the task and the robot. Provided the software is easy to use, this is one of the quickest ways to test ideas before passing them to the robot.


  • Less downtime because the programs are developed offline, meaning the robot only needs to be stopped when the program is to be downloaded and tested.
  • Intuitive method, particularly if it is possible to move the robot in a 3D CAD environment using drag-and-drop techniques.
  • Multiple approaches to one problem can be tested, not efficient when using online methods.


  • It is highly unlikely that virtual models will ever be to represent the real world 100% accurately.
  • Programs will most likely still need to change even once applied to the robot.
  • It could take more time. Although there is less chance of downtime, somebody does need to spend more time on simulation development and on testing.
  • Can be a waste of time when simulator issues need to be solved before production challenges.

Teaching by Demonstration

This provides an intuitive method, an addition to the teaching pendant. It involves moving the robot using a joystick that is attached above the end effector on the robot wrist or by using manipulation of a force sensor. In the same way as it is with the teaching pendant, each position is stored individually within the controller. This programming method has been incorporated into many collaborative robots as it is very easy for operators to start using their robots almost immediately.


  • It is faster than the teach pendant, eliminating the need for multiple buttons to be pressed. This means the operator can easily move their robot to the position they want them.
  • It is more intuitive than the other methods because programming is done in much the same way that a human operator would carry out a task. This makes it much easier for operators to learn, and very little programming knowledge is required.
  • A good method for the complex tasks that need multiple code lines to achieve an identical effect.


  • As with the teaching pendant, the actual robot is required for the programming. It will not reduce the risk of downtime in the same way that offline programming does.
  • It isn’t as straightforward to move robots to precise coordinates as it is with the other methods, especially where a joystick system is used because there isn’t any way of inputting numerical values.
  • Not great for algorithmic tasks as moving the robot manually would be inaccurate and arduous.

Which One Do You Choose?

As with anything related to robotics, the method that works best will depend on the task, the robot you are training and your requirements. Only you can determine which method works best, and the advantages/disadvantages listed here should help you to determine which one you should use.