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.        

programming-and-controlling-puma-arms

산업용 로봇 전문가, 예술가, 그리고 방송인

미국에서 학교다닐 때, scheduling 과목 교수한테 들은 재미있는 이야기.  

“scheduling은 sex와 같다”

이게 무슨 말인가 하면, 모든 사람이 약간의 경험은 있고 자기가 전문가라고 주장하지만, 대상이 다르기 때문에 객관적으로 실력을 비교하기가 어렵기 때문이란다.

산업용 로봇 분야은 이런 분야와는 달리 실력을 평가할 수 있는 간단한 방법이 있다. 

현재 많이 판매되는 산업용 로봇을 개발했으면,  “산업용 로봇 전문가”. 

“나도 옛날에 해 봤는 데” 하면서 자신이 전문가라 주장하면 , “고장난 전직 엔지니어”. 

연구, 개발만 하거나 이런저런 논문을 열심히 쓰고 있으면,  마음 속에  “자신만의 로봇”을 만들고 있는 “예술가”.

로봇 들고 예능 프로에 나오는 사람은 출연료 받는  “방송인”.       

“웃자고 하는 이야기에 죽자고 달려들면”, 이 건 재미없는 이야기가  되겠지요.  

우리도 산업용 로봇 개발합니다

옛날 이야기 하나.  

10년 쯤 전에 어떤 회사 사장님이 그 회사에서 수입 판매하던 일본 로봇 제어기를 가리키면서 말하기를, “김박사, 우리 저런 거 만들수 있나?”

“그런 말을 20년 전에도 들었는데요.”

“누가 그런 말을 했는 데 ?”

“20년 전에도 고 교수님이 PUMA 560 robot을 가리키면서, “이 봐 자네들. 내 평생 소원이야. 저런 거 하나 만들어 줘” 하셨는데요.”

(그 후 PUMA 560 robot을 역설계해서 scara robot을  개발했고, 국내  대기업 A가 이를 상품화하였다).     

“기능 구현은 문제가 아닌 데,  만들어도 사람들이 사겠습니까 ?”

(당시 그 회사의 brand power를 고려하면, …)

“한 반값이면 사지 않을까?”

“판매 물량이 적어서  그렇게 싸게 만들기 어려울텐데요.”

그 사장님이 잠시 생각하더니, 다시 물었다. 

“그럼 어떻게 해야 되는 데 ?”

(몇 년 후, 그 회사는 더 이상 일본 회사의 로봇 제어기를 구매하지 않게 되었다). 

 

다른 이야기.

몇 년 전 국내  대기업 B에서 그룹 차원의 로봇 개발을 담당한다는 분을 만났는 데, 하는 말이 “우리도 kinematics, dynamics 이런 건 다 아는 데, 제어 소프트웨어는 어떻게 해야 하는 지 모르겠어요.” 

(음, 참신한 용어.  연구원 중에 로봇해 본 사람이 없나 ?)

“그 부서 연구원 중에  몇 명이나 로봇 개발에 참여하고 있나요 ?”

“직접 로봇 개발에 참여하는 사람은 20명 쯤 되지요”

“그 중 산업용 로봇 개발해 본 사람은 몇 명인데요 ?”

“직접 로봇 개발해 본 사람은 없지만, 로봇에 들어가는 기술은 다 해 본 사람들이지요”

(어!!!  만들어 본 사람도 없는 데  필요한 기술을 다 안다고.)

아직까지 조용한 걸 보니 다른 걸 개발하시나 ?   

 

기존 산업용 로봇에 대한 이해가 부족한 상태에서,  이것 저것 사다가 붙이고, 외주 업체 하청 주고,  프로그램 좀 짜서 로봇이 30분 정도 “움직이면”,  개발 성공했다고 언론사 기자 부르고, 참여 연구원들 표창받고, 다음 정부 과제 또 따고, 회사 주가도 좀 오르고.

과연 그렇게 개발 과시용으로 만든 걸 실제 판매할 수 있을까 ? 지난 30년 동안 국내 로봇 회사와 연구소가 개발 성공했다고 전시회에서 보여 준 다양한 로봇들은 과연 어디로 갔을까  ?  

Ethercat digital IO test with Beckhoff modules

beckhoff-digital-io-1

  • Hardware setup:
    – EK1100 ethercat coupler.
    – Four EL2008 modules for 32-bit digital output.
    – Four EL1018 modules for 32-bit digital input.
    – Two DC 24V SMPS
  • Software setup:
    (1) Debian Jessie and Xenomai dual kernel.
    (2) Ubuntu 14.04 and RT-preempt kernel.
    (3) Debian Wheezy and RTAI dual kernel.
  • Test result: cycle-time 190 us in DC mode.

Design and implementation of industrial robot controllers

Gyoung H. Kim, Ph.D. (E-mail: gyounghkim@open-robotics.com)

저자는 국내외의 산업용 로봇, 수중 로봇, 의료 로봇, 반도체 로봇의 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.