Programming and Controlling PUMA Robot Arms

When I was a Ph.D. student at the Purdue University, I spent some time on upgrading the Purdue University’s RCCL system. To find out the pros and cons of other robot programming and control systems, I played with some of them  such as  RCCL,  Kali,  MultiRCCL, and Chimera.

Prof. V. Hayward of the McGill University was invited  to discuss the upgrade of  the RCCL system.  He kindly provided us the source code and schematics of his Kali system. Eventually  I  came up with a hybrid of the RCCL and the Kali systems.  

V. Haward was  a visiting scholar working with R. P. Paul when he “wrote” the RCCL system in C.  I can say the RCCL is  based on the Purdue University’s PAL system written in Pascal and R. P. Paul’s textbook. V. Hayward viewed a robot as a peripheral of a computer system and showed some C libraries for that device can do the programming and control of robots.  Since the RCCL was introduced,  the research area of robot languages had disappered.   

Unimation was  the only company which gave away electrical schematics and mechanical drawing with their robots. They even passed the company-confidential document on interfacing an external computer with their PUMA controller.  Thus,  the PUMA robots has been a popular research platform in robotics. Due to the limitations of the Unimation controller, people tried to build their own robot controllers for PUMA robots.

On the request of my former major professor, C. S. G. Lee, I gave a presentation to his students in 1989.  The following slides were prepared for that presentation. And then more slides were added in 1999 and 2005, respectively.  All the robotics textbooks  mention the history of robots or robotics, but the history of robot controllers is found  nowhere.  In some sense, my slides show you the history of  robot controllers.        


Design and implementation of industrial robot controllers

Gyoung H. Kim, Ph.D. (E-mail:

저자는 국내외의 산업용 로봇, 수중 로봇, 의료 로봇, 반도체 로봇의 controller 및 software 개발에 참여한 바 있으며, 국내 산업용 로봇 개발의 초창기부터 현재에 이르기까지 다소 긴 기간 (30년)에 걸쳐 산업용 로봇에 대해 생각해 볼 기회가 많았던 engineer라 할 수 있다. 저자가 산업용 로봇 분야에 참여하면서 가졌던 기술적 의문점에 대한 해답이나 생각해 온 개발 방향에 대해, 시간이 날 때마다 memo 해 본 것들을 보고서의 형식으로 편집하여 보았다. 본 보고서를 통해 기존의 주요 연구 및 개발 결과와 저자의 관점에서 본 제어기의 개발 방향 및 방법을 소개함으로써, 실제 산업용 로봇 제어기의 개발 시 당면하는 많은 기술적 문제에 그 해답을 제시하고자 한다.

For over 30 years, I have been actively involved in the development of robot controllers for medical robots, underwater robot, and various industrial robots including  XYZ rectangular (Cartesian) robots, SCARA robots, LCD transfer robots, wafer transfer robots,and  sealing robots.

Believe it or not, I still design the hardware and write the software of industrial robot controllers as an engineer.  While working with other engineers,  I watched them “invent” their own robot controllers from scratch. I know why they should develop robot controllers in that way. I was in the same situation 30 years ago; I could not find any information on  “real” robot controllers, not the robot controllers that existed only on research papers.

To develop industrial robot controllers, I had to solve so many practical problems everyday. Recently I started to write down those problems and solutions in form of a technical report. My  report is not a textbook on robotics.  It is filled with all kind of  know-hows and  must-knows, which are needed for  designing  and implementing industrial robot controllers.

Hardware and software platforms for an industrial robot controller

Hardware and Software Platforms for Industrial Robot Controllers

Aug. 2008

Gyoung Hwan Kim. Ph.D.


  • State-of-art robot controllers ?
  • Design concept ?
  • Internals of robot controllers?
  • Next robot controller ?

Robot Programming

  • AL: Stanford Univ., 1981
  • VAL: Unimation, 1980
  • PAL: Purdue Univ., 1981
  • “Robot Manipulators”, R. P. Paul, 1981
  • RCCL: Purdue Univ., 1983
  • Multi-RCCL: JPL, McGill Univ., 1990
    Dead research areaNote that Samsung’s robot language is based on VAL.

Robot Control

  • Kinematics-based control: independent joint control
  • Dynamics-based control: ~1990
  • Direct drive arms
  • Flexible robot control
    Matured research area

State-of-art Robot Controller ?

Robot Controller Developed

Robot Controller developed for SCARA and transfer robots

Design Concept ?

Internals of Robot Controllers ?

Robot Controller Structure

Servo Controller Structures

  • Type 1. Drive interface board + 1-axis drives
  • Type 2. Servo board + “IPM + DC-link”s
  • Type 3. Servo board + IPMs + DC-link
    Note that 1-axis drive = servo processor + IPM + DC-link circuit.


Type 1. Servo Controller

  • High-power applications.
  • Conventional control scheme.
  • Commercial 1-axis drives.

Type 1 Drive Interface Board
(developed and tested)

  • TI TMS320F2812 DSP for linear interpolation.
  • FPGA for binary rate multiplication and encoder pulse counters.
  • 6 channel incremental encoder inputs (electrically isolated).
  • 6 channel pulse outs for 1-axis drives (electrically isolated).


Type 2. Servo Controller

  • High-power applications.
  • Flexible control schemes.

Type 3. Servo Controller

  • Low-power applications.
  • Flexible control schemes.

Type 3 Servo Board

  • The most powerful , flexible and advanced servo controller used in commercial industrial robot controllers.
  • Software –only implementation of position, velocity, and current control.
  • 1KHz current loop and 0.5 kHz position and control loop.
  • DSP load is less than 30%.

Type 3 IPM
(Intelligent Power Module)

Type 3 DC-Link Circuit

Robot Controller Structure

Main Processor Board

  • Hardware: X86 motherboard + PCI boards
  • Software: Real-time Linux (RTAI)

CPU Board
(off-the-shelf product)

  • Compact size and low power consumption: Mini-ITX board with an 1GHz VIA CPU.
  • 3 PCI board using a riser card.

Riser Card for 3 PCI Slots

 PCI Boards

  • High speed 4-port serial board: two RS232 ports and two RS422 ports.
  • CC-link PCI board: TI TMS320C2812 DSP with a dual-port memory.
  • RTAI RTDM drive driver for the serial board and Linux device driver for the CC-link board are also developed.

Four-port Serial PCI Board

CC-Link PCI Board

Profibus PCI Board

Parallel I/O board

  • Intelligent parallel I/O board – TI TMS320F2812 DSP.
  • Electrically isolated 24 inputs and 24 outputs.

Main-to-Servo Interface

  • Main processor to servo controller interface:
    – electrically isolated.
    – high-speed (2.5M bps) serial interface – RS422.

Tested Configurations

  • One SCARA robot + one X-Y robot.
  • Three X-Y robots.
  • One transfer robot with one driving axis.

SCARA + X-Y robots

LCD Transfer Robot with a Driving Axis

Next Robot Controllers ?

  • For larger robots, a drive interface board is developed.
  • If needed, RCCL can be used.


  • A flexible robot controller is developed and tested with SCARA robots and transfer robots.

What is the difference between robot control and “general” control ?

If a control algorithm uses some features which are specific to robots, that algorithm belongs to robot control algorithms. If someone comes up with his/her own control algorithm and uses the dynamic models of robots for testing the algorithm, it can be classified to “general” control algorithm.

Here is a very simple rule:  If some people publishs their papers in control journals, they are control people and their papers deals with general control algorithms. If you find some papers in robotics journals, they are robot-specific control algorithms.  

With real robots, general control algorithms cannot beat robot-specific control algorithms.

산업용 로봇 제어의 뒷이야기

산업용 로봇의 초창기에 제어 분야의 많은 사람들이 산업용 로봇에 관심을 보였다.  그 당시에는 많은 제어 이론 중 하나를 골라 다른 사람 보다 먼저 로봇에 적용하기만 해도 논문이 학술지에 실릴 수 있었기 때문에, 로봇 학술지가 제어 이론의 “슈퍼마켓” 분위기 였다고 말할 수 있다.   

plant의 보다 정확한 model를 구할 수 있으면, 제어기의 성능 향상을 가져 올 거라는 믿음을 가지고 많은 사람들이 robot의 dynamic model를 구하려는 연구에 뛰어 들었다. 이러한 연구를 가장 먼저 시작한 사람 중 하나가  J. Y. S. Luh 교수이다.

J. Y. S. Luh는 Purdue University 교수로 재직 당시 Richard Paul을 Purdue University로 데려 왔다. Purdue University로 이끌었다고 영어로 표현하던 데, 당시 robotics가 독립된 학문 분야가 아니었기 때문에 Richard Paul이 Stanford University에서 박사 학위를 받고 학교로 가기가 쉽지 않았을 것이라 추측된다. 참고로  manipulator에 computer를 연결한 최초의 (실질적으로) 사람이 Richard Paul이고, robotics 분야에서 최초로 박사 학위를 받은 사람이라고 생각한다. 물론 robotics 분야를 어떻게 정의하는 지에 따라 최초의 기준은 달라질 수 있다.   

robot의 forward/inverse dynamic model를 구하면서 당면했던 문제는 계산 시간이였다. CPU의 computing power가 충분하지 않았기 때문에,  곱셈 수가 작은 inverse dynamics equations의 계산 algorithms을 구하려 하였다. C. S. G. Lee (개인적으로 내 박사학위 지도교수이기도 하다)는 이러한 계산의 lower bound를 구하여 IEEE follow가 되었다.

forward/inverse dynamics 계산식을 구한 후에 이를 realtime으로 계산하여 실제 control에 적용해 보고자 하였다. transputer도 시도되었으며, multiple CPU baords를 가진 VMEbus 또는 Multibus systems으로 robot controller를 구성해 보는 것이 당시 hot research topic이였다. 또한 dynamic model의 symbol derivation과 실제 실험을 통해  robot의 dynamic parameters를 구하려는 연구 역시 진행되었다.

많은 사람들이 노력한 결과,  dynamics-based realtime control algorithms을 (industrial) robot controller에 구현할 수 있게 되었다. 그 실험 결과는 불행하게도 kinematic-based control (independent joint control) 방식에 비해 우월한 성능 향상을 보이지 않았다. 높은 기어 감속비와 비교적 낮은 joint velocity와 acceleration를 가진 산업용 로봇의 경우,  robot dynamics의 영향을  그다지 크지 받지 않게 된다.

연구는 계속 진행되어야 하기 때문에,  이제 dyamics-based control algorithms을 적용할 수 있는 robot arm을 제작해 보고자 시도하였다. 이런 이유로 등장한 것이 direct drive arm이다. 감속 기어를 제거하면 원하는 joint torque를 발생시키기 위해 대용량의 motor가 필요하고 이에 따라 joint의 weight 역시 증가하게 된다. 따라서 중력의 영향을 받지 않는 first axis를 제외한 다른 axis에  direct drive 방식을 적용할 수 없었다. 

이 때 중력의 영향을 받지 않으며, rigid body를 요구하지 않는 robot 응용이 등장하였다. NASA는 space shuttle에 canadaarm이라 불리우는 robot arm을 장착하여 활용하려 하였으며,  산하 연구기관인 JPL에 많은 연구비를 지원하였다. 이에 따라 flexible manipulator라는 연구 topic이 생겼으며,  (flexible) robot arm의 vibration 문제가 관찰되어 이에 대한 연구 역시 활발하게 이루어졌다.

NASA가 robot 관련 연구비 지원을 중단하고, 미국의 제조업 회사들이 공장을 해외로 이전함에 따라 산업용 로봇에 대한 연구가 미국에서  점차 사라지게 되었다.    

과거 robot control 분야에서 다양한 연구가 진행되었으며 그 결과 상당한 양의  연구 결과가 이미 축적되어 있다고 할 수 있다. 그러나, 대부분의 로봇 제어 관련 연구는  인터넷 등장 이전에 이루어졌으며  학술 논문, 학위 논문, 련구 보고서, 특허 등의 형태로 존재한다.  따라서  인터넷 검색을 통해 충분한 정보를 얻기  어려울 수도 있다.