2015년 5월 21일 목요일

네이버까페 오로카 운영자 표윤석씨 강의를 듣다 (ROS 관련)




2011년도에 이런 글을 kldp에 쓴 적이 있는데...

Dymaxion.Kim: 로봇용 소프트웨어 플랫폼 최신 동향 관련

그전부터 주시하던 ROS 및 로봇 미들웨어 동향 관련한 글이다.


이후 국내에서도 결국 ROS가 힘을 쓰기 시작하려고 하는 경향이 생겼다.

이런 흐름을 주도한 것은 유진로봇 쪽이 가장 활발했는데,

듣기로는 그 회사의 개발자 중에서 ROS 전담 개발자가 있다고 한다.

현명한 전략이었다.


내가 재직하는 회사에서는 오픈소스 개념을 이야기하면 비현실적이라고 핀잔 듣는 분위기였으나 오히려 오픈소스화 함으로써 마케팅 효과가 크게 일어난 경우의 좋은 증거가 된다.

내가 보는 세상과 나를 업무적으로 통제하는 사람의 세상이 너무 다르니, 이런 저런 방해를 받아 아무것도 못하고 3년을 그냥 허송해 버린 듯 해서 심히 괴롭다.  한 사람 겨우 극복하면 어디서 듣도보도 못한 사람이 또 나타나 차례대로 방해하는 식이니 원.

아무튼 ...


네이버까페 오로카( http://cafe.naver.com/openrt ) 운영을 열심히 하는 표윤석씨가 우리 회사에 와서 ROS 소개 강의를 2시간 동안 해 줬는데 인상깊게 잘 들었다.

(이 까페에 내가 언제 가입했나 보니 2014년이구낭..  활동은 안하고 그냥 눈팅만 좀 하려고 한건데, 상당히 정성들인 양질의 컨텐츠가 많아서 그냥 눈팅만 하기가 미안할 지경이다.)

열정이 있고 젊음이 느껴져서 더 좋았던 것 같다.

표윤석씨는 예전에 광운대 학생 시절에도 동아리 활동으로 대회 나가기도 하는 등 꽤 잘 검색되던 사람이라서 그 존재는 오래전부터 인지하고 있었는데, 잘 성장해서 지금은 일본에서 로봇 소프트웨어 쪽으로 전공해서 박사과정 밟고 있는 모양이다.



ROS에 관한 기본 개념이나 학계/업계 동향 같은 이야기는 전부 다 아는 것들이라 별로 인상적이지는 않았지만, 최근의 ROS 완성 정도를 확인할 수 있었던 기회였던 것 같다.

개인적인 의견으로, ROS는 아직 아카데믹한 성격이 더 강한 상태이기 때문에 실제 서비스용 로봇의 주력 프레임웍으로 쓰기에는 신뢰성에서 문제가 있다고 본다.

또 요구 시스템 사양이 높기 때문에 (우분투 서버 위에 이것저것 막 올려야 되고, 기본적으로 리얼타임이 아니라서 리얼타임 흉내라도 내려면 일단 수행속도가 나와야 되니..)  로봇에 이걸 사용하려면 로봇 자체가 꽤 중량급이 된다.

즉 좋은 도구나 라이브러리가 많이 있고, 여러 제품들이 지원되니까, 이를 돌려주는 소프트웨어 코딩 생산성이 비약적으로 높아지는 장점이 있는 대신, 시스템이 너무 무겁다는 단점이 있다.

경량화하기 위해 소스나 패키지를 건드리기 시작하면 꽤 골치아플 것이다.


대신 내가 추구하는 방향은 엄청나게 저렴한 시스템이어야 하기 때문에, 사실 ROS는 안 맞는다고 봐도 될 것 이다.  다만 클라우드화된 메인 로봇 통제 서버의 미들웨어로 ROS를 사용하면 적절하겠다 싶다.즉 로봇 클라이언트 단에 ROS를 넣을 게 아니고, 서버 단에다가 심어넣고 돌려야 적절하지 않나 하는 것이다.


로봇 클라이언트 단에 심어넣을 것은 ROS가 아니고 Node.js라고 본다...

(내 의견과 동일한 의견을 가진 개발자가 존재할지 궁금하다.)


이와 관련한 꽤 자세한 제안을 작년에 회사에다 했지만, 역시나 기술동향에 깜깜한 사람들이 그 의미를 충분히 이해하지 못하였고, 감정싸움에 사내 정치놀음에 매몰된 잘못된 사람들과 회사가 방향을 잃어가면서 내가 더이상 어떻게 기여할 방법을 찾지 못했다.

소프트웨어 쪽에다가 설계자가 뭐라 할 입장도 못되고 해서...
그냥 손 놓고 보고 있는 중이다.

아무튼 그쪽은 내가 뭐라 해서 일이 될 분위기는 아니니 일단 신경 끄고 내 쪽만 신경쓰자.
일단은.  망하면 망하게 한 사람이 책임 지겠지.



오늘 표윤석씨의 설명을 통해 몇가지 알아낸 사항은 다음과 같다.


(1) ROS에 심어넣어진 FK,IK 쪽은 유럽의 Orocos인데, 실제 이것을 활용한 결과를 보니 IK 동작중 Singular Point 근방에서 매우 심하게 발산한다.  표윤석씨 말로는 파라미터 설정 잘 하면 잡을 수 있을 거라고는 하는데, 발산 양태를 보면 영락없이 Jacobian Transpose 방법을 쓴 것 같은데 정말 그렇다면 발산 진동을 직접 잡을 방법은 없을 것이다.  결론적으로 IK 쪽이 상당히 허접하게 들어가 있다는 것이 확인되었다.

우리 회사에서 기존에 개발된 IK 알고리즘은 상당히 안정적인데 개발자가 다 퇴사해버린 상태라 사실상 기술 망실 상태나 마찬가지.  코딩으로 구현해서 ROS에 심어넣어 주면 꽤 쓸만한 기여가 될 수 있을 것이다.
내가 핵심 Theory를 이해하고 있기는 하지만, 코딩을 직접 할 수는 없고....
관심있는 개발자가 있다면 Notation을 줘서 패키지화 할 수 있을 것 같은데....
주변에 쓸만한 개발자가 잘 눈에 안띈다는게 함정이다.


(2) ROS에는 아직 Dynamics가 제대로 들어가 있지 못한 듯 하다.   물론 Orocos를 품었으니 Command 상태로는 사용할 수 있겠지만, 다른 GUI나 도구들과 제대로 연계된 상태가 아닌 듯 하다.  또한 IK가 허접하니 역동역학도 믿을만 할지 모르겠다.

ROS를 산업표준으로 만들기 위한 메이저 산업용 로봇 매니퓰레이터 제조사들이 이미 컨소시움을 구성해서 개발을 지원중이라고 하는데...
그 회사들이 자사의 핵심 기술을 오픈소스에다가 그대로 풀어넣을리 없고 그냥 개발자들 돈이나 좀 쥐어줘서 오픈소스 생태계 형성해 주는 수준 같다.

결론적으로 아직 ROS상의 오픈소스 수준은 메이저 업체들이 보유한 기술과 격차가 크다.



우리나라 OPROS, 일본의 OpenRTM은 둘 다 안습이니 그냥 넘어가자..
어디서나 그렇지만 이쪽 분야도 결국 정치하는 놈들이 문제다.



댓글 없음:

댓글 쓰기