본문 바로가기

최신기술

산업용 양팔로봇 제어 S/W 프레임 개발

최근 산업용 로봇의 한계를 극복하고 사람이 하는 복잡한 작업을 위해 양팔로봇이 개발되고 있다. 본문은 이러한 양팔로봇의 전용 언어를 만들고 인지기반 동작을 가능하도록 하기 위해서 고수준의 알고리즘을 내장하도록 하는 기술적인 내용이며, 특히 알고리즘을 적용하기 위한 실시간 S/W프레임워크 구축에 대한 설명이 포함되어 있다.

 


1. 서론


기존 산업용 로봇의 경우 대표적으로 용접에 적용되어 큰 생산성 향상을 가져왔고, 이송이나 단순 조작 등에도 적용되어 왔다. 이러한 산업용 로봇은 특수 목적에 맞게끔 전용 모델로 개발되거나, 범용성을 가진 경우에는 6축 시리얼 로봇 및 ADEPT로봇 형태 등과 같이 사람 팔과 유사한 모습으로 개발되어 왔다.
산업용 로봇은 기본적으로 고속·고정밀·고파워의 특징을 기반으로 단순·반복 작업에 주로 적용되었다. 최근 이런 산업용 로봇의 한계를 극복하고 사람이 하는 복잡한 작업 및 사람과 유사한 일을 하기 위해서 양팔로봇이 개발되고 있다. 개발된 양팔로봇들은 셀 기반 조립라인에 주로 적용되었으며, 이 중 Yaskawa Motoman, Rethinkrobotics의 Baxter의 경우 이미 상용화되어 판매되고 있고, ABB의 Frida는 상용화가 임박한 것으로 알려져 있다.


이런 기 개발된 양팔로봇들은 하드웨어적으로는 양팔로봇의 기본 기능에 적합하지만, 소프트웨어적으로는 한 팔 로봇의 확장에 지나지 않는 단점이 있다. 한 팔 로봇에서는 동일 궤적의 단순반복이 주였기 때문에 궤적 교시만 하면 됐고, 연산량도 많지 않았다. 제어 소프트웨어는 임베디드형 하드웨어에 내장되어 판매되었고, 언어적으로는 전용 언어를 사용했다. 이런 구조는 기본적으로 산업용 로봇의 기본 역할인 단순 반복 작업을 정의하는 데는 충분하지만, 양팔로봇과 같이 양팔을 사용하는 복잡하고 외부 상황에 따라서 판단하고 동작하는 것을 정의하기에는 부족하다.


본문에서는 이러한 단점을 보완하기 위해서, 개발 양팔로봇으로의 적용을 목적으로 양팔로봇 전용 언어를 만들고, 인지기반 동작을 가능하도록 하기 위해서 고수준의 알고리즘을 내장하도록 했다. 특히 고수준의 알고리즘을 적용하기 위한 실시간 S/W프레임워크 구축에 대해서도 설명한다.

 

2. 배경


기존 산업용 로봇은 다양한 자동화 공정에 적용되어 생산성 향상에 기여해 왔다. 하지만, 기술적 한계로 인하여 그 적용처를 조립, 포장 등으로 확대하는데 한계가 존재했다. IT기술의 발달에 따라 조립, 포장 등의 공정 요구사항이 많아지고 있음에도 현재는 사람에게 의존하고 있는 상황이다.


이런 한계를 극복하기 위해서 하드웨어적으로 사람과 유사한 양팔로봇을 조립·포장 등의 공정에 적용하고자 하는 다양한 연구가 있고, 한국기계연구원에서도 휴대폰 포장, LCD TV조립 등의 다양한 목적에 활용가능한 양팔로봇 AMIRO를 개발하고 있다.


Fig. 1은 휴대폰 포장을 위한 셀라인에 개발 양팔로봇을 적용한 것을 가정한 상상도이며, Fig. 2는 현재 개발 중인 AMIRO를 보여주고 있다. 개발 로봇은 오른팔·왼팔 각각 7축의 시리얼 관절 구조를 가지며, 구동부의 경우에는 중공형 구조를 적용하여 유지보수가 쉽도록 구성했다. 크기 또한 성인 남성과 유사한 크기로 제작하여 사람과 같이 일하는데 거부감이 없도록 했다.

 

1.jpg

2.jpg

 

3. S/W프레임워크


3.1 제한사항
개발 양팔로봇을 운용하기 위한 소프트웨어는 기존 산업용 양팔로봇보다 많은 연산을 요구하는 알고리즘들이 사용된다. 목적으로 하는 IT제품 조립을 위해서는 실시간으로 대상물체의 위치를 인식하고, 양팔 동시 동작시 양팔간의 충돌을 고려한 경로를 생성해야 하며, 양팔 14축 동기 제어를 수행해야 한다. 더불어 개발 양팔로봇은 물건을 집을 때 떨어뜨리는 경우, 포장시 포장이 덜 된 경우 등의 공정상 오류를 모니터링하여 복구하는 기능까지 탑재된다. 이런 복잡한 알고리즘들은 정주기성을 지키며 수행되어야 하고, 기본적인 14축 동기 토크제어기는 정주기성과 최소 1㎑ 이상의 제어주기를 가져야 한다. 개발 양팔로봇은 물체와의 접촉상황을 고려한 알고리즘이 다수 탑재되기 때문에 기본적으로 각 축은 토크제어를 사용한다. 개발하는 알고리즘은 요구기능이 많기 때문에 연산량이 많고 물리적 용량이 크다. 기능적으로 양팔 14축의 동기 제어뿐만 아니라 14축에 대한 기구학, 양팔간의 충돌 모니터링, 대상물에 대한 영상처리, 오류상황 감지 등 무수한 지능형 기능들이 탑재되기 때문에, FPGA나 MCU 등의 하드웨어에 탑재하는 것은 불가능하다.


본 연구에서는 필연적으로 PC기반 제어기를 적용했다. 일반적으로 연구자, 개발자는 공통적으로 표준언어인 c/c++와 Microsoft Windows 환경에 익숙하다. 이 중 Microsoft Windows OS의 경우에는 선점형 OS가 아니기 때문에 실시간성이 전혀 없다. 본 연구에서는 PC기반 제어기에서 실시간성을 확보하기 위해서 RTX기반 실시간 프레임을 구축했다.

 

3.2 구현
실시간 코드 구현에 있어서 어려운 점은 실시간 코드이기 때문에 가지는 제한사항들이다. 예를 들어 실시간 코드에서는 메모리 Allocation이나 Release를 할 수 없다. 하지만, 일반적인 알고리즘 구현에서는 무수한 메모리 Allocation과 Release를 반복하며, 개발자가 변경할 수 없는 PC상의 시스템 Library의 경우도 실시간성을 담보할 수 없는 것이 많다. 그래서 RTX나 Intime 등 상용 툴의 경우 시스템 Library를 실시간성을 가진 것으로 새로 구성해 제공한다. 본 연구에서는 (주)심랩의 Realtime Roboticslab 솔루션을 활용했다. Realtime Roboticslab은 Fig. 3과 같이 내부에 RTX kernel을 포함하고 있다. Microsoft Windows상에서 구동되는 RTX의 실시간 Timer를 인터럽트로 사용하여 윈도우 단에서 저 수준의 타이머를 구동하는 방식이다. RTX단에서 출력되는 타이머의 경우에는 1㎑ 세팅 시 1% 이내의 Jitter를 보장하지만, Realtime Roboticslab에서 구성한 Windows OS상의 Timer는 10% 정도의 Jitter를 보여준다.


개발한 양팔로봇은 14축 제어 동기화를 위해서 EtherCAT 프로토콜을 사용한다. EtherCAT은 TCP스택의 실시간 버전으로, 별도의 카드를 필요로 하지 않고, 일반 Ethernet 카드를 이용하여 구성할 수 있다. EtherCAT은 실시간 프로토콜이기 때문에, 실시간 OS상에서 구성되어야 하며, 본 개발에서도 EtherCAT Driver는 RTX상에서 구성된다.
EtherCAT으로 데이터를 주고받기 위해서 RTX와 Windows 사이에는 Shared Memory 구조를 구성하여 데이터교환을 수행했다.
좀 더 자세한 구성은 Fig. 4와 같다. 상위에서 사용자가 양팔로봇 명령어를 입력하면, 중간층의 API단에서 해석을 하고, 하위 단의 궤적 생성 및 움직임을 만들어 낸다. 오른쪽에는 로봇의 상태를 모니터링하는 영상처리 알고리즘이 위치해서 중간층의 API에서 영상정보를 요청하면 전송해 준다.
API들은 양팔로봇의 공정에 특화된 포장·조립 등의 특화 API가 있으며, 교시관련 특화 API들로 구성된다. 최하부의 EtherCAT Master부분은 실제 RTX 단에서 구동하며, 그 상위 단은 Semi-RT Timer 영역에서 구동한다.

 

3.jpg


3.3 양팔로봇 언어
앞서 설명했듯이 양팔로봇은 기존 단일 팔과 달리 복잡한 작업을 수행하는 것이 보통이며, 그에 적합한 양팔로봇 언어가 필요하다. 특히 양팔간의 동기화된 동작을 위해서는 사용자가 오른팔·왼팔을 각각 교시하는 것보다 내장된 명령어를 통해서 양팔의 상대적인 운동을 정의하는 것이 편하다.
개발 양팔로봇은 다수 양팔의 상대운동을 정의하고 있어 교시시 매우 편리하다. Table. 1은 그 중 몇 가지 예를 보여주고 있다. 기본적으로 오른팔·왼팔 각각의 조인트를 입력하면 동시에 움직이도록 하는 동기화 조인트 명령어(DA_CAP_JMOV), Task Space에서 양팔간의 상대거리를 유지하며 움직이도록 하는 명령어(DA_CP_LMOV) 등을 구현했다.

 

표1.jpg


한편 영상정보를 이용한 명령어들도 구현했다. 대상물의 ID와 목적지와 시간을 주면, 주어진 시간 동안 대상물을 집어서 목적위치로 옮겨주는 Pick_place_r, Pick_place_l 같은 명령어도 구현이 되었다. Table. 2를 참고하면 된다. 이런 명령어들은 개발된 S/W프로임워크 구조에서 가능한 것들이다. 복잡한 알고리즘을 요구하는 명령어들이기 때문에, 기존의 PC가 아닌 임베디드 하드웨어에서 구현하는데 한계가 있다.

 

표2.jpg


4. 실험


개발된 양팔로봇 AMIRO에 소프트웨어 플랫폼을 적용하여 간단한 실험을 수행했다. 실험은 4가지 휴대폰 부품인 배터리 충전기, 배터리, 어뎁터, 이어폰을 순서에 따라서 핸드폰 박스에 집어넣은 것이다. 이 동작을 명령하기 위해서 개발된 S/W플랫폼에서는 Table. 2에 주어진 명령어 3종만을 사용했다.
실제 로봇이 4개의 물건을 삽입하는 과정은 Fig. 6에서 볼 수 있다. 순차적 명령어에 의해서 배터리 충전기를 영상정보를 이용하여 위치를 찾고, Goal로 정해진 휴대폰 박스에 집어넣는다. 이어서 순차적으로 배터리를 영상정보로 위치를 찾고 역시 Goal로 지정된 휴대폰 박스에 집어넣는다. 이렇게 해서 1~4까지의 과정을 거쳐 4개의 부품을 집어넣었다. 단순해 보이지만, 기존 단일 팔의 명령어 체계에서는 티칭펜던트를 이용하여 각각의 팔의 궤적을 일일이 교시하고 양팔간의 동기화를 통하여 양팔동작을 이루어내는 복잡한 동작이다.

 

4.jpg

 

5.jpg

 

5. 결론


개발된 양팔로봇을 위한 소프트웨어 플랫폼은 제어 실시간성을 유지하면서도 제어 알고리즘의 고수준화를 가능하게 하는 특징을 가지고 있다.
이런 개발된 소프트웨어 플랫폼의 특징을 이용하여 고수준의 지능형 양팔로봇 언어를 개발하고 이를 이용하여 복잡한 명령어 체계를 단순화시킬 수 있었다.

 

* 본 연구에는 한국전자통신연구원, 한국생산기술연구원, (주)로보스타, 대구경북과학기술원 등이 도움을 주셨습니다.

 

[필자]
한국기계연구원 최태용, 도현민, 박동일, 박찬훈, 경진호 연구원

※ 출처 : EngNews (산업포탈 여기에) - 산업용 양팔로봇 제어 S/W 프레임 개발