Can anyone explain me in detail, what a industrial robotic arm controller does? What are its components? Does the industry use the opensource controllers like Arduino? I saw most of industrial controllers look very big whereas the hobby robot arms are having small controllers mostly made from arduino? Also, if I were to reconstruct it, what are the topics that I need to learn?
1 Answer
Industrial robots (e.g. Kuka, ABB, Fanuc) use a control cabinet which has the following main components:
Drive amplifiers (controllers): The drive amplifiers are responsible for the closed loop control of the motors in the structure of the robot (and the external axes, if present). The number of drive amplifiers usually matches the number of motors. Their main function is to receive the position (and/or velocity) commands from the robot controller and to control the motors to execute the commands. In most cases some kind of communication protocol (mostly Ethernet based) is used to transmit these commands. In some cases the drive amps have additional safety functions (e.g. Safe Torque Off and Safe Brake Control) to enable a limited human robot interaction. When compared to "hobby" robots, the drive amplifiers offer much more functionality for smooth motions (e.g. jerk limiting, filtering) and motor protection (e.g. current limiting, voltage limiting) furthermore, in many cases these have thousands (!) of parameters to fine tune their performance.
Robot controller: the main function of the robot controller is to interpret the robot application program and convert the commands in the source code to motion or other commands given to the IOs or to the drive amplifiers. The robot controller has an internal model of the kinematic (and dynamic) structure of the robot and has advanced trajectory planning and synchronization capabilities. It can synchronize the motions commanded by each individual drive amplifier in a precise manner. A robot controller also has thousands (!) of parameters to make sure the robot can be set up according to the requirements of its task.
HMI: Industrial robots usually have some sort of pendant or HMI useful for programming the robot. During operation the application program will be displayed here. Also different setting are available on the HMI (e.g. teach in of a new task).
Application program: Hobby robots usually have a "firmware" running on the arduino which determines their behavior. Robot controllers are more like a PC. They have an operating system and only execute something if somebody writes a program that is called. That program is the application program and is written in a robot manufacturer specific language (e.g. KRL for KUKA, Rapid for ABB, Java language can be used to program the Kuka iiwa, their light weight robot arm).
Tech support: one feature that hobby robots do not have is tech support. Industrial robot manufacturers offer courses, hotline telephone support in case there are difficulties in using/programming their robot. Furthermore, industrial robots come with necessary certificates (CE, UL, etc.) for industrial use.
If you would like to build a robot controller which is at least comparable to today's industrial robot controllers, starting from scratch, you would need:
- select industrial motors and drive amplifiers (e.g. from Rexroth, Siemens, etc.)
- select an industrial PC and a real-time operating system (or extension, e.g. WindRiver, QNX, RTLinux) and a non-real time OS (.g. Windows or Linux)
- design and build a control cabinet
- develop your control architecture (which module communicates with what, how are they interfaced, what needs to run in real-time what not)
- develop/implement a trajectory planning module
- develop/implement an IO handling module
- develop/implement an interpreter for the application programming language you have selected (or define a new language and an interprtere for it), complete with variable stacks (global and local), (soft and hard) interrupts, subroutines, timers and counters, coordinate system transformations, motion commands, flow control commands, basic types, math library, etc.
- "glue" together the interpreter with the motion module and the IO module
- develop/implement (or buy) a communication stack to communicate with the drive amplifier
- develop/implement an HMI that can be used for parameterizing the drives, the motion module, the IO module, and can be used for writing and executing application programs with the defined language
- document everything (!)
- test test test and test even more
- get the whole thing certified by a certification body
- market and sell it
- offer tech support, warranty, etc.
-
$\begingroup$ @50k4 Sorry couldn't upvote, dont have that reputation. Thanks for the detailed answer though. Could you please recommend some resources like books,blogs etc (add it to the answer if possible)? I think it will be a while before i comprehend the entire answer as there are lot of fine details. $\endgroup$ Commented Apr 20, 2017 at 20:47
-
$\begingroup$ Just want to point out that the last robots from KUKA are running Sunrise framework which allows to program the robot application in JAVA, this is true in particular for the KUKA LBR-iiwa their industrial work assistant robot $\endgroup$ Commented Oct 3, 2017 at 13:08
-
1$\begingroup$ Actually, the only Kuka Robot arm running sunrise OS is the iiwa. No other robot arms are programable in Java. $\endgroup$– 50k4Commented Oct 3, 2017 at 13:10
-
1$\begingroup$ This is a truly great answer. I am building a robotic arm from scratch that should be a smaller equivalent to industrial arms - but it will still weigh upwards of 50 pounds and have at minimum 100 separate wires (probably more like 250 wires), just to give a sense of scale. I have some methods to greatly simplify the software integration aspects, but it will still be a year-long project. I have concluded that the value of robots from the big companies like Fanuc, Kuka, ABB, and the like is the excellent packaging and system integration. A robot is pure chaos if you let all the pieces loose. $\endgroup$ Commented Oct 4, 2017 at 19:51
-
$\begingroup$ @ 50k4: Great, answer, upvote. I have a question, though.What should I do, if I wanted to use an already existing robot arm like the KUKA Lbr iiwa and create my controller for it? What kind of information should I have on the arm, and how could it be done in step? How many people would it take to do that and in what time? Thanks $\endgroup$– El ZoCommented Jan 25, 2018 at 11:08