A central part of many (industrial) robot solutions is the robot arm. These robot arms, together with their controllers and associated software, are sold as stand-alone products by various manufacturers. However, what do these different robot arms offer and what are the trends in the developments of these robot arms?
Robot arm manufacturers
The history of industrial robot arms is quite interesting. The first electronically programmable robot arm was invented in the 1960’s by Unimate. Since that first step, many companies have started to develop their own robot arms. If you would like to know more about the history of industrial robot arms, several papers are available.
In the present day, as you probably expected, half of the top-10 robotic arm manufacturers are Japanese: Yaskawa, Fanuc, Kawasaki, Epson and Nachi. The other top-10 manufacturers originate from Europe and the US: ABB and Stäubli from Switzerland, Kuka from Germany, Comau from Italy and Omron from the US. The robotic arms developed and sold by these manufacturers are essentially the same: a robotic arm with multiple actuators, typically 4 or 6, including a controller and software to program the arm.
Most of these manufacturers offer a wide variety of arms with different payloads, reach, top speeds, etc. Some manufacturers market their products for specific markets, like welding and clean-room environments. However, for a typical robot application, one can choose any robot manufacturer and they will have a robot arm that can adequately automate that task. If you were to google ‘palletizing robot’ combined with the name of any of the top-10 industrial robot manufacturers, you will find examples for almost all of them.
So how do you decide which robot manufacturer to choose for your application? Often, a robotic integrator or customer chooses a certain manufacturer’s brand and sticks to it, as supporting and developing for multiple brands can be a challenge for both service departments and development teams. For a developer however, the main difference between the robot manufacturers comes down to the software.
Programming a robot arm
Programming a robot arm is an interesting topic from the perspective of a software developer. Typically, a manufacturer has already developed a programming language that a developer can use to program the robot. The program is often written offline and then uploaded and deployed to the robot controller. In addition, sometimes it is also possible to program directly on the robot controller via a teach pendant.
The programming languages themselves are often derivatives of existing languages, like C and Pascal. As there are no standards amongst the manufacturers, programming a robot from a different manufacturer usually requires having to learn a new programming language.
What is even more frustrating; these proprietary languages are relatively slow to develop and lack many of the features now common in modern programming languages. It is often impossible to use features like object-oriented programming or data structure more complex than a list.
For a robotic integrator who just needs to be able to tell the robot where to go with some simple logic, this may not be an issue. But when building a product where the software plays a more important role, the limitations of programming in the proprietary software of a robotic arm quickly become clear.
Alternative programming approaches
One clear example of the limitations of programming in the proprietary software is vision. With one notable exception, Fanuc, it is impossible to develop or run vision algorithms directly on a robot controller. The most widely used solution is to use an outside system (e.g. a smartcam or a separate computer) for the vision processing and setup a communication between the robot controller and this external system. The program on the robot is still in charge, but simply requests data from the outside. Manufacturers of vision products often offer sample programs in different robot languages.
Some initiatives have gone a step further and try to make the programming independent of the robot manufacturer. The benefits of this approach are clear:
- Programmers do not have to learn different programming languages for each robot arm
- The same software can be used to control robot arms from different brands
- A programmer has access to more powerful software features.
This approach typically includes defining a standardized communication protocol between an external computer and a robot arm, and installing a driver written in the robot specific language on the robot controller that communicates with that protocol. The most notable here is the ROS Industrial project which has drivers for various robot brands, in varying levels of stability. In addition, there are several other companies that offer a robot-independent way of programming, including RoboDK or the Dutch Roxy.
The vast majorities of robots are still programmed in their native language, but the benefits of developing ‘robot independent’ software become more and more apparent. It seems likely that in the future the robot controller will no longer be the center of the application, but from software perspective just another component. Let the robot focus on motion execution rather than trying to be an all-encompassing central command node.
Want to know how we approach robot programming at Smart Robotics? Check the blog about robot motion and communication.