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

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

“scheduling은 sex와 같다”

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

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

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

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

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

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

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

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

옛날 이야기 하나.  

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

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

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

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

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

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

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

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

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

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

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

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

 

다른 이야기.

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

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

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

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

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

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

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

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

 

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

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

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

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

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

산업용 로봇에 도입된 OS, RTOS와 그 뒷이야기

초창기의 robot controllers는 OS라는 개념을 사용하지  않았다. 

최초의  commercial industrial robots을 판매하였던 Unimation의 robot controller를 살펴 보자.  그 hardware는, 당시 개발된 microprocessors 중 high computing power를 가진 DEC의 LSI-11 CPU board, DEC의 serial interface board와  parallel I/O board, 자체 개발한 joint servo boards로 구성되어 있었다. Unimation controller의 software는 DEC의 BASIC interepreter와 유사한 syntax를 가진  VAL language와 monitor라 불리우는 commnad interepreter로 구성되어 있었다. monitor와 VAL language는 밀접하게 integrate 되어 있어서 VAL program instruction을 monitor의 command로 실행시킬 수 있었다.   

Unimation  controller 이 후  개발된 industrial robot controllers의 softwares는 대부분 Unimation controller의 software와 유사한 구조를 가지고 있었다.  robot에 따른 전용 software를 개발하여 이를  robot language라 호칭함에 따라  많은 수의 robot langauges가 개발되어 발표되었다. 따라서 robotics 초창기에 사용되었던 robot language는 robot software 또는 robot programming system을 의미한다.   

Unimation 출신 개발자들이 주축이 되어 설립한 Adept는 Unimation controller의 monitor가 가진  기능을 확장하고 task scheduer를 추가하여 이를 robot operating system이라 부르고 있다. 실제 Adept의 software manuals를 보면, robot operating system과 robot language를 구분하여 설명하고 있다.  

1984년 Vincent Hayward는 “realtime” UNIX system를 이용하여 robot controller를 구축하는 방법을 발표하였다. robot을 UNIX system의 device로 보고, 이를 위한 device driver와 응용 software를 C language로 구현하였다.   이 후 robot programming 분야의 연구 방향은  robot language 개발로부터 robot system에  적합한 OS와 C library의 개발로 변화하였으며, robot language라는 연구 topic이 점차 사라지게 되었다.

Vincent Hayward가 Purdue University 에서 구현한 realtime UNIX system을 재현하려면 VAX-11/780 mini computer,   kernel이 수정된 PDP-11의 BSD UNIX OS, custom FIFO boards가 필요하였다. 참고로, Purdue University에서 Richard Paul과 Vincent Hayward에 의해 개발된 robot system은  RCCL이라 명명되었다.

NASA의 space shuttle에 Shuttle Remote Manipulator System (SRMS) (Canada의 DSMA atcon이라는 회사에서  robot arm이 제작되었기 때문에 흔히 canadaarm이라 부른다)의 탑재가 계획되면서 이를 위한 robot controller의 개발이 JPL (NASA 산하의 연구소)과 Canada의 McGill University에서 이루어졌다. McGill univerity는 Multibus 기반의 i386 system과 intel의 iRMX RTOS (realtime OS)에 Purdue University의 RCCL system을 porting 하였다. 이 후 McGill University는  Vincent Hayward를 hire 하였으며, Vincent Hayward는 NASA JPL로부터  연구비를 받아  Kali과 MultiRCCL을 개발하였다.  

Vincent Hayward는 Kali와 MultiRCCL의 OS로서 vxWorks를 선택하였다. BSD Unix를 robot controller의 OS로 사용하려면 kernel 수정이 필요하였다. vxWorks는 그 자체가 RTOS (realtime OS)이기 때문에 kernel 수정 작업을 생략할 수 있으며, vxWorks의 API는 UNIX의 API와 유사하기 때문에  Unix OS에서 개발된 software의 source code를  별다른 수정없이 vxworks에서 build 하여 사용할 수 있다는 장점이 있었다.   

미국 내의 연구 기관과 학교는  미국의 국가 지원  연구비로 수행된 연구 결과를 무료로 제공받아 이를 사용할 수 있는 제도를 가지고 있다  (국방부의 연구비 지원 사업은 제외이다).  미국 내의 여러 연구 기관과 대학교가 MultiRCCL의 source code와 기술 자료를 받아 McGill University와 JPL의 MultiRCCL systems과 유사한 MultiRCCL systems을 구축할 수 있게 됨에 따라 vxWorks와 MultiRCCL은 상당 기간 robotics 연구의 reference software platform으로 사용되었다. 

Unix workstations의 computing power가 향상되고 OS가 BSD UNIX에서 System V Release 4 (SVR4) UNIX로 전환됨에 따라 vxWorks 대신 SVR4 UNIX의 realtime  기능을 이용하여 MultiRCCL을 구동할 수 있게 되었다. 1992년 Sun Microsystems가 SVR4 기반의 OS인 Solaris 2.0을 발표하였으며, 1993년  Silicon Graphics 역시 SVR4 기반의 IRIX  5.0를 발표하였다.  이 후 vxWorks + Motorola 680X0 기반의 platform은 점차 사라지게 되었다. 

초기의 vxworks는 VMEbus의 Motorola 680×0 CPU boards를 main hardware platform으로 지원하였다. 보다 빠른 CPU가 요구되고 PC의 성능이 향상됨에 따라 1998년 Clemson University는 QNX + PC의 조합을 도입하여 QRobot이라는 robot system을 개발하였다. 

CPU의 성능이 지속적으로 향상됨에 따라  joint servo control task을 제외한 tasks의 실행에 non-realtime OS를 사용하는 것이 가능해졌다. 또한  Microsoft의 MS-DOS나  Windows에 realtime module을 추가하거나  Linux에  realtime patch를 적용하여 robot controller를 위한 RTOS로 사용하는 접근 방법도 존재한다. 산업용 로봇 제어기의 software 구조는 이미 확립되어 있으며, 각 기능에 따른 computing power 의 요구량 역시 이미 계산되어 있다.  robot controller의 경우, RTOS 자체의 성능 비교는 의미가 없다고 말할 수 있다.  

사용자가 그다지 많지 않고 제공되는 예제가 충분하지  않은 RTOS를 선택하면,  자신의 program에 RTOS의  function을  추가할 때마다  test program을 작성해서 그 function의 동작을 일일히 확인해 보는 덫에 빠지게 된다. Unix/Linux system programming과  OS, kernel에 대한 이해가 부족하면, RTOS의 manual에서 사용하는 용어와 개념을 이해할 수 없으며 자신이 작성한 software를 충분히 test 할 수 없는 경우가 발생한다.

“software realiablity”는 대부분의 산업용 로봇 개발자들이 생각 조차 하지  않는 단어이며, 언급하지 않으려는 단어이기도 하다. 자신이 이해할 수 없는 commercial 또는 open-source  RTOS를 밑에 깔아 놓고  그 위에 자신이 나름대로 개발한 software을 실행시킨다면, 문제가 발생하였을 때 그 원인을 쉽게 찾아 낼 수 있을까 ?

industrial robots의 오동작 조건은 찾기가 어렵고 재현이 되지 않는 경우가 대부분이다.  industrial robots이 작업 중 정지하면, 생산 라인 전체가 정지되는 경우도 있기 때문에 검증되지 않은 robots은 구매하지 않으려는 경향이 있다. 산업 현장에서는, robots의 accuracy나 repeatibility 보다 reliability가 더 중요할 수도 있다. 

인터넷과 책에서 찾을 수 없는 것들

internet이 처음 등장했을 때 anonymous ftp sites, mailing lists, news groups에 중독된 학생과 교수들이 많았다. 자신에게 도움이 되는 새로운 기술 자료, software, posts 등이 밤새 올라와 있지는 않은 지, 매일 ftp sites와 news groups을 scanning 하곤 하였다.  AI의 father라고 불리는 MIT의 Minsky 교수도  alt.ai.philosopy라는 news group에 수시로 등장해서  학생들과 토론을 했던 것으로 기억한다.

internet 초기에는 network의 speed와 bandwidth의 제한 때문에  ftp를 이용하여 많은 양의 data을 download 할 수 없었다. 따라서 ftp sites의 내용을 CD-ROM이나 tape로 dump 하여 이를 판매하는 회사가 다수 존재하였다.    

mosaic이라는 web browser가 발표 되면서  관심있는 sites의 URL을 bookmark 형태로 수집하고 서로 교환하는 일이 빈번해졌다. 자신의 bookmarks를 web page에 공개하는 사람들도 생겨났으며, 당시 많은 사람들이 방문했던 sites 중 하나가  yahoo 설립자 (당시 대학원생)의 home page 였다. 많은 newtwork traffic으로 인해 학교 account를 더 이상 사용할 수 없어 학교 외부 site로 home page를 옮겼으며, 그 때  yahoo라는 회사가 설립되었던 것으로 기억한다. 

자신의 문제에 대한 해답을  internet에서 찾을 수 있다고 가정하면, 교육 시스템이 존재할 이유가 없다. 또한 책으로부터 자신의 문제에 대한 해답을 찾을 수 있다고 가정하면, 책에 모든 문제에 대한 해답이 이미 존재하기 때문에 더 이상 새로운 문제는 존재할 수 없다는 모순에 도달한다.  

internet과 출판물은  information을 얻을 수 있는 중요 sources이다. 그러나 용량 제한으로 인해 fogetting 또는 memory loss의 현상이 발생한다. 즉, 어느 정도 시간이 경과하면 web pages가 사라지고 출판물이 절판되어, 과거의 결과물을 찾지 못 하거나 과거의 연구 결과를 이해하지 못 하게  된다.  

internet에는 많은 “지식의 조각”과 “버려진 정보”가 올라와 있으며,  기술 서적에는 특정 분야에 대한  지식의 소개 또는 해설이 담겨져 있다. 그러나, 돈이 될 정도로 다듬어진 지식이나 결과물은 internet과 books에 존재하지 않는다는 것이 일반적인 사실이다. 

자신의 문제에 대한 기존의 지식을 찾아 불필요한 정보를 filter out 하고 조각된 지식을 연결해서 하나의 완전한 형태로 이해하고 자신의 문제에 가장 적합한 모범 답안을 찾는 것은 결국 개개인의 knowledge에 달려 있다고 생각한다. 이와 같은 meta knowledge (knowledge를 이용하는 방법에 대한 knowldege)를 습득하도록 도와주는 것이  university와 같은 교육 기관의 역할이라고 나는 주장한다.   

우리는 “대학이 학생들에게 직장에서 바로 활용할 수 있는 것들을 가르치지 않는 것이 문제다”라고  방송에서 말하는 사람들을  본 적이 있다. 내가 묻고 싶다. “대학이 직업 훈련소인가 ? ”  회사에서 바로 필요한 것들을 대학에서 가르치려 하는 것이 바로 한국 대학 교육의 문제라고 생각해 본 적은 있는지 ? “창의성 말살 정책”, “주입식 교육”이란 단어가 생각나는 이유는 뭘까 ?

학교 졸업 후 바로 사용할 수 있는 것들을 가르치는 학교는 그래도 “착한” 학교라고 생각한다. 나는 고등학교 입학 시험, 대학 예비고사와 본고사를 위해  많은 시간, 노력, 비용을 영어 공부에 투자했으며 중학교 부터 대학교까지 영어 수업을 “충실히” 받았다. 그러나,   미국에 유학가서 생활해 보니 그건 모두  입학 시험 문제를 만들고 풀기 위해 “한국에서 창조한 영어”와 그 교육 방법이라는 것을 깨닫는 데 그리 오랜 시간이 필요하지 않았다. 

엄청난 양의 검색 결과를 쏟아 내는 internet search engines은 information overloading과 misleading의 위험을 가지고 있다. 서로 다른 주장과 결과로 인해 의욕을 상실하거나 진행 방향을 찾을 수  없게 되는 상황이 자주 발생한다. 지극히 단순하거나 부정확한 설명으로 인해 지식 습득에 독이 되는 경우도 많다. 주변에 전문가가 존재하지 않는다면,  차선책으로  “good” internet sites나 books를  찾아 이를  문제 해결의 출발점으로 설정하는 방법을 생각해 볼 수 있다.   

국가 지원 연구비는 불량 과자인가 ?

논문 발표 편수로 연구 성과를 평가하는 경우, 논문 발표만을 위해 연구 가치가 없는 연구를 진행할 수 있다.  세계적으로 유일한 특정 연구 분야를 선택하면, 국내 또는 해외 학술지에 연구 결과를 발표하는 것이 지극히 용이하다.  이걸 근거 자료로 해서 국가 지원 연구비를 지속적으로 수령할 수도 있다.  

특정 분야에 종사하는 연구 인력이 많지 않은 경우, 친구 또는 동료끼리 서로의 연구 결과를 평가하는 경우가 빈번하게 발생한다. 이러한 경우 과연 객관적인 평가가 가능할까 ? 비영리단체 (국가연구소, 대학교 등)가 주도하는 연구의 경우,  기술 개발을 완료하였으니 산업체에 기술 이전하면 된다고 주장하면서 연구를 종료한다. 산업체 주도 연구의 경우, 개발 완료된 기술이 회사의 매출에 기여한다고  주장한다.

실제 상품에는 많은 수의 다양한 기술이 복합적으로 사용되기 때문에 몇 가지의 새로 개발된 기술이 크게 도움이 되지 않을 수 있다. 개발 결과로 보고되는 매출 증가 수치로서  상품 전체의 매출을 사용하는 경우도 많다.  

국가 자원 연구비에 길들여 진  회사 , 연구소, 학교는  제안서와 보고서 작성에 많은 시간과 노력을  소비할 수 밖에 없다.  많은 사람이 국가 지원 연구 시스템에 종속되어 있으며 , “복잡한” 이해 관계가 존재하기 때문에  이러한 생태계가 쉽게 “혁신” 되리라고는 생각하지 않는다.  

성공한 미국 벤처 기업이 국가 지원 연구비 때문에 그렇게 성공할 수 있었는 지 물어 보고 싶다. 내가 만난 미국 아저씨들은 기업의 연구, 개발 사업에 국가가 연구비를 대 준다는 걸 이해하지 못 하더라. 

불량 과자는 당장 입에 달지만  계속 먹게 되면  몸에 해롭다.   연구비 심사와  평가를 위한  “맞춤형”  연구에서 `과연 `한 방”이 되는 게  나올까 ? 한 번 빨대 대고 빨아 보면,  중독되어 계속 빨게 되지는 않을 까? 

흠.  보다 길게 이야기 하면 사방에서 돌이 날아 올 듯.