KR102004228B1 - 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러 - Google Patents

6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러 Download PDF

Info

Publication number
KR102004228B1
KR102004228B1 KR1020180012165A KR20180012165A KR102004228B1 KR 102004228 B1 KR102004228 B1 KR 102004228B1 KR 1020180012165 A KR1020180012165 A KR 1020180012165A KR 20180012165 A KR20180012165 A KR 20180012165A KR 102004228 B1 KR102004228 B1 KR 102004228B1
Authority
KR
South Korea
Prior art keywords
axis manipulator
manipulator
controller
robot
screen
Prior art date
Application number
KR1020180012165A
Other languages
English (en)
Inventor
이정완
백진호
김경래
Original Assignee
강원대학교산학협력단
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 강원대학교산학협력단 filed Critical 강원대학교산학협력단
Priority to KR1020180012165A priority Critical patent/KR102004228B1/ko
Application granted granted Critical
Publication of KR102004228B1 publication Critical patent/KR102004228B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/06Control stands, e.g. consoles, switchboards
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • B25J13/081Touching devices, e.g. pressure-sensitive
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1615Programme controls characterised by special kind of manipulator, e.g. planar, scara, gantry, cantilever, space, closed chain, passive/active joints and tendon driven manipulators

Abstract

본 발명의 일 실시예로써 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러가 제공된다. 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 고속-고정밀 컨트롤러에는 컨트롤러의 동작 조건을 설정하기 위한 동작조건 설정부, 6축 매니퓰레이터와 연결되어 설정된 동작조건에 따라 6축 매니퓰레이터의 동작을 제어하기 위한 제어부, 타 디바이스와의 데이터 송수신을 위한 통신부, 동작조건 설정부, 제어부 및 통신부가 포함되어 구성된 구동회로부 및 6축 매니퓰레이터의 제어를 위한 GUI를 디스플레이하는 디스플레이부가 포함될 수 있다.

Description

6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러{THE UNIVERSAL HIGH SPEED/PRECISION CONTROLLER FOR SIX AXIS MANIPULATOR}
본 발명은 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러에 관한 것이다.
매니퓰레이터란, 사람의 팔과 비슷한 기능을 갖는 기계를 포괄적으로 지칭하는 것으로, 작업의 대상물을 이동시키는 것으로 각종 로봇에 공통되는 기본이 되는 개념을 말한다. 이러한 매니퓰레이터는 인간이 직접 지속적으로 조작하는 방식, 같은 동작을 자동적으로 반복하는 고정형, 컴퓨터 명령에 따라 여러가지 복잡한 동작을 수행하는 수치 제어형 등 여러가지 형태로 구현되어 산업적으로 활용될 수 있다.
근래 들어, 대량의 자동화된 생산 시설의 확대에 따라 이러한 매니퓰레이터의 활용 사례가 급격하게 증가하고 있으며, 이와 관련된 기술 개발이 증가하고 있는 추세이다. 예를 들어, 수직다관절 매니퓰레이터의 기구적 특이점에서 유연한 관절운동을 가능케 하도록 하기 위한 제어 방법 등에 대한 기술이 종래부터 많이 개발되오고 있지만(예컨대, 대한민국 공개특허공보 제10-2004-0034167호 (공개일자: 2004.4.28) 참조), 제어 속도, 정확도 측면에서 사용자의 기대 조건을 충족하기에는 여전히 미흡한 실정이다. 따라서, 매니퓰레이터에 대한 고속의 고정밀 제어를 가능케 하는 컨트롤러 등의 기술개발이 시급한 실정이다.
1. 대한민국 공개특허공보 제10-2004-0034167호 (공개일자: 2004.4.28)
본 발명은 전술한 기존 기술의 문제점을 해결하기 위하여 안출된 것으로, 6축 매니퓰레이터의 범용 및 고정밀로 제어하기 위한 범용의 컨트롤러를 제공하고자 한다.
본 발명의 일 실시예로써, 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러가 제공될 수 있다.
본 발명의 일 실시예에 따른 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러에는 컨트롤러의 동작 조건을 설정하기 위한 동작조건 설정부, 6축 매니퓰레이터와 연결되어 설정된 동작조건에 따라 6축 매니퓰레이터의 동작을 제어하기 위한 제어부, 타 디바이스와의 데이터 송수신을 위한 통신부, 동작조건 설정부, 제어부 및 통신부가 포함되어 구성된 구동회로부 및 6축 매니퓰레이터의 제어를 위한 GUI를 디스플레이하는 디스플레이부가 포함될 수 있다.
동작조건 설정부에서는 6축 매니퓰레이터에 대한 기초정보가 수집되고, 수집된 기초정보를 kinematics solution을 통해 가공함으로써 동작 조건이 설정되며, 설정된 동작 조건에 따라 제어부에서 6축 매니퓰레이터의 범용 고속 및 고정밀 제어가 가능할 수 있다.
또한, 동작조건 설정부에서는, 6축 매니퓰레이터의 잔류 진동이 최소화됨과 동시에 향상된 동작 정밀도를 갖도록 하기 위한 동작 조건이 설정될 수 있다.
또한, 동작조건 설정부에서는, 6축 매니퓰레이터의 제어방식의 선택, 그리퍼(gripper) 작동시간 설정, 6축 매니퓰레이터와 관련하여 수집된 데이터 처리 방식의 선택 및 입력 펄스 설정을 수행할 수 있다.
본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러를 이용하면, 6축 매니퓰레이터의 종류 등에 구애되지 않고 범용으로 고속으로 정밀하게 제어할 수 있다.
또한, 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러를 이용하면, 그립퍼(gripper)를 이용하는 대상물의 집기, 이동과 같은 단순한 작업뿐만 아니라 다양하고 복잡한 제조공정에서도 효과적으로 활용할 수 있다.
매니퓰레이터의 동작 방식 등에 구애받지 않고, 매니퓰레이터에 대한 범용 컨트롤이 가능할 수 있다.
또한, 본 발명의 일 실시예에 따른 컨트롤러는 사물인터넷(Internet of Things: IoT) 기술과의 접목을 통하여 소단위 또는 대단위의 스마트 팩토리 구현이 가능하다.
본 발명의 일 실시예에 따르면, 기존의 산업용 PLC 기반의 고전적 제어기의 형태에서 Windows IoT 기반의 사용자 친화적인 제어기의 제공이 가능하다.
도 1은 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 open-collector 방식의 배선도를 나타낸다.
도 3은 open-collector 형식 배선도에서 CON2 와 각 driver 커넥터간의 연결방법을 나타낸다.
도 4는 엔코더 신호를 추출하기 위한 결선도를 나타낸다.
도 5는 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러의 GUI가 나타난 화면의 일 예이다.
도 6은 본 발명의 일 실시예에 따라 6축 매니퓰레이터(로봇)의 Kinematics Solution이 계산된 화면의 예를 나타낸다.
도 7은 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러의 시작화면을 나타낸다.
도 8은 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러의 GUI가 나타난 화면의 다른 일 예이다.
도 9는 본 발명의 일 실시예에 따른 6축 매니퓰레이터(로봇)의 조작 모드 선택 화면의 일부 확대도를 나타낸다.
도 10은 New 버튼의 초기화면의 일 예를 나타낸다.
도 11은 New 선택 화면 Joint 모드의 예시적인 화면을 나타낸다.
도 12는 New 선택 화면 Linear 모드의 예시적인 화면을 나타낸다.
도 13은 New 선택 화면의 동작점 설정의 일 예 화면을 나타낸다.
도 14는 티칭 포인트 정보 저장 화면의 일 예를 나타낸다.
도 15는 Edit 버튼 초기 화면의 일 예를 나타낸다.
도 16은 task 파일 수정 화면의 일 예를 나타낸다.
도 17은 Start 버튼 초기 화면의 일 예를 나타낸다.
도 18은 task 선택 화면의 일 예를 나타낸다.
도 19는 Play 버튼 누른 후 실제 로봇이 동작 되는 화면의 일 예를 나타낸다.
도 20은 Setting 화면의 일 예를 나타낸다.
도 21은 Configure 화면의 일 예를 나타낸다.
도 22는 Calibrate 화면의 일 예를 나타낸다.
도 23은 ROBO 003 측면도이다.
도 24는 Feedforward control의 개념도를 나타낸다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서에서 사용되는 용어에 대해 간략히 설명하고, 본 발명에 대해 구체적으로 설명하기로 한다.
본 발명에서 사용되는 용어는 본 발명에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 발명의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 발명에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 발명의 전반에 걸친 내용을 토대로 정의되어야 한다.
명세서 전체에서 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있음을 의미한다. 또한, 명세서에 기재된 "...부", "모듈" 등의 용어는 적어도 하나의 기능이나 동작을 처리하는 단위를 의미하며, 이는 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 명세서 전체에서 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, "그 중간에 다른 소자를 사이에 두고" 연결되어 있는 경우도 포함한다.
이하 첨부된 도면을 참고하여 본 발명을 상세히 설명하기로 한다.
기존의 로봇 컨트롤러는 로봇을 티칭(예컨대, 행정 간 로봇의 경로 학습기능)하는 과정에 있어서의 그 방법과 사용자의 편의성이 많이 떨어진다. 또한, 기존 기술의 GUI(Graphic User Interface)의 경우, 티칭 간 실행 단계가 많고 복잡하여 사용자의 혼란을 야기한다. 또한, 종래의 컨트롤러에서는 공정의 그리퍼(gripper) 파지 안정성을 위한 제어기 설계가 누락되어 있으며, 로봇의 고속제어 시 잔류 진동 및 외란 추정에 대한 알고리즘이 확보되어 있지 않다.
도 1은 본 발명의 일 실시예에 따른 6축 매니퓰레이터의 컨트롤러의 블록도이고, 도 2는 본 발명의 일 실시예에 따른 open-collector 방식의 배선도를 나타낸다.
본 발명의 일 실시예에 따른 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러(1000)에는 컨트롤러(1000)의 동작 조건을 설정하기 위한 동작조건 설정부(1100), 6축 매니퓰레이터와 연결되어 설정된 동작조건에 따라 6축 매니퓰레이터의 동작을 제어하기 위한 제어부(1200), 타 디바이스와의 데이터 송수신을 위한 통신부(1300), 동작조건 설정부(1100), 제어부(1200) 및 통신부(1300)가 포함되어 구성된 구동회로부(미도시) 및 6축 매니퓰레이터의 제어를 위한 GUI를 디스플레이하는 디스플레이부(1400)가 포함될 수 있다.
동작조건 설정부(1100)에서는 6축 매니퓰레이터에 대한 기초정보가 수집되고, 수집된 기초정보를 kinematics solution을 통해 가공함으로써 동작 조건이 설정되며, 설정된 동작 조건에 따라 제어부(1200)에서 6축 매니퓰레이터의 범용 고속 및 고정밀 제어가 가능할 수 있다. 본 발명의 일 실시예에 따르면 로봇의 범용 고속-고정밀 제어를 위해 IST(InputShapingTechnicque)를 사용하여 잔류진동을 최소화하고 외란추정 강인 제어 기법으로 향상된 로봇의 움직임 정밀도를 달성할 수 있다.
본 발명의 일 실시예에 따른 기초정보에는 로봇의 종류, 로봇의 현재 위치, 제원 등이 포함될 수 있다. 수집된 기초정보가 가공됨에 따라, 로봇의 동작 조건이 결정될 수 있다. 예를 들어, 로봇의 형태 등에 띠리 로봇의 제어를 위한 알고리즘 등이 상이하게 설정될 수 있다. 다시 말해서, 로봇 형태 등 수집되 제원에 기초하여 kinematics solution을 통하혀 제어 알고리즘 등이 설정될 수 있다. 이러한 과정을 통하여 설정된 제어 알고리즘에 따라 로봇의 범용 고속 및 고정밀의 제어가 가능할 수 있다.
또한, 동작조건 설정부(1100)에서는, 6축 매니퓰레이터의 잔류 진동이 최소화됨과 동시에 향상된 동작 정밀도를 갖도록 하기 위한 동작 조건이 설정될 수 있다.
또한, 동작조건 설정부(1100)에서는, 6축 매니퓰레이터의 제어방식의 선택, 그리퍼(gripper) 작동시간 설정, 6축 매니퓰레이터와 관련하여 수집된 데이터 처리 방식의 선택 및 입력 펄스 설정을 수행할 수 있다. 이와 관련해서는 보다 자세한 설명은 도 5 내지 도 22를 참조하여 후술한다.
본 발명의 일 실시예에 따르면 제어부(1200)는 Raspberry pi 3를 사용하여 6축 매니퓰레이터(예컨대, 로봇 등)를 조작하기 위하여 구동회로부인 board 상에 적어도 하나의 타 구성 부(예컨대, 1100, 1300 등)와 연결될 수 있다.
본 발명의 일 실시예에 따라 제작된 구동회로부인 PCB 와 리본 케이블을 사용하여 6축 매니퓰레이터의 각각의 모터 드라이버(Motor driver)와 컨트롤러가 연결될 수 있고, 결선 방법은 도 3과 같이 연결될 수 있다.
각각의 조인트의 정보를 알기 위해 엔코더 신호가 필요하고, 이러한 신호를 motor driver에서 추출해 내기 위한 결선도는 도 4와 같이 구성될 수 있다. 또한, 공통 모드 노이즈 제거를 위해 트위스트 페어 방식으로 신호선이 구성될 수 있다. 보다 구체적으로 설명하면, 베이스에 지지된 축을 1번으로 명명하고, 각각의 AMP의 엔코더 신호선 결선 방법은 OUT_A 와 /OUT_A는 트위스트페어로 엮고, OUT_B 와 /OUT_B는 트위스트페어로 엮을 수 있다. 또한, 각각의 AMP의 485 신호선 결선 방법은 485 와 /485 는 트위스트페어로 엮고, 각각의 AMP의 엔코더 신호선끼리 한 묶음이며 485 신호선끼리 한 묶음으로 구성할 수 있다.
본 발명의 일 실시예에 따르면, 컨트롤러를 구동시키기 위한 소프트웨어는 사용자 친화적으로 구성될 수 있다. 예를 들어, 도 5 내지 도 22에 나타낸 화면에서와 같이 사용자가 직관적으로 구동방식을 파악할 수 있도록 하기 위한 GUI로 디스플레이될 화면이 구성될 수 있다. 또한, 이러한 화면은 robot의 kinematics solution을 기반으로 제작될 수 있다.
예를 들면, Visual studio에서 UWP(Universal Windows Platform)을 활용하여 controller GUI를 구성할 수 있는데, 도 5는 본 발명의 일 실시예에 따라 구성된 GUI의 모습이며, 제어 이론에 대한 선택, 그리퍼(gripper) 작동 시간, 선형화 이론 등에 대한 옵션이 화면 상에서 GUI로 표현되어 있을 수 있다. 또한, 범용성을 위한 옵션도 추가되어 있을 수 있다. 구성된 화면의 좌측엔 메뉴들(예컨대, new, edit, start, setting 등)이 보이며 미리 결정된 기능을 동작하도록 각각의 동작 역할이 할당되어 있다. 또한, 화면 우측을 보면 베이스를 기준으로 로봇의 각각의 조인트에 차례대로 숫자가 붙는다. < , > 버튼을 사용하여 모터의 정, 역회전 구현이 가능하다. 또한, 상단의 토글버튼을 사용하여 구동하고자 하는 조인트를 손쉽게 선택할 수 있다. 이러한 화면을 나타내기 위한 소프트웨어를 구성하는 소스(코드)는 언제든 수정이 가능하며, 컨트롤러와 사용자 디바이스(예컨대, PC 등)가 상호 연결이 가능한 인터넷 망에 접속만 되어 있다면 언제든 수정이 가능하다. 도 6은 로봇의 kinematics solution을 계산해 놓은 화면의 일 예이다. 다시 말해서, 동작조건 설정부(1100)에서는 기초 정보를 수집할 수 있고, 이러한 수집된 기초 정보를 통해 제어 이론을 로봇에 선택적으로 적용 시킬 수 있다.
컨트롤러 화면은 HDMI 포트가 있는 디스플레이 기기라면 어느 기종이든 상관 없이 디스플레이부(1400)로써 사용 할 수 있고, Raspberry pi 3에 USB 포트가 있어서 키보드 및 마우스를 연결해 사용할 수도 있다. 컨트롤러에 대한 소스코드는 예를 들면 C#으로 구성될 수 있고, Visualstudio 2015버전 이상에서는 무리없이 동작될 수 있도록 사용될 수 있다.
도 2의 배선도에서 보면 알 수 있지만, 외부 시스템(예컨대, 사용자 디바이스 등)과 컨트롤러 간의 연결을 위해 trigger 입력을 받을 수 있도록 GPIO 26번 핀을 별도로 마련하여 배치를 해두었다. 해당 핀에 근접센서나 다른 시스템의 디지털 신호선을 연결할 수 있다. Raspberry pi는 CMOS 레벨을 사용하기 때문에 High 3.3V 신호가 인가되도록 회로를 구성한다. 그 후, 신호입력단에 인가되는 디지털 신호에 따라 로봇의 동작을 제어 할 수 있다. 또한, trigger input 신호 및 output 신호도 소스 상에서 구현을 한다면 해당 핀에서 신호의 in/out을 제어 할 수 있다. trigger 신호 외에도 gripper 또는 end-effector 조작을 위한 핀도 GPIO 19번에 구성되어 있다. GPIO 19번에 연결된 TR로 공압 v/v를 조작하여 그립퍼를 조작할 수 있다.
도 7을 참조하면, 도 7은 컨트롤러(1000)의 시작화면으로, Register 버튼을 누른 후 컨트롤러(1000)를 시작 할 수 있다.
도 8을 참조하면, 도 8은 도 7의 Register 버튼을 누른 후 화면이며, 우측 상단에는 Joint/Linear 모드를 선택 할 수 있는 토글 버튼이 있고, 그 아래의 토글 버튼은 Joint 모드일 경우, 각 로봇의 관절의 각도를 조절하기 위해 1,2,3 / 4,5,6을 선택하는 버튼이며, Linear 모드일 경우, 로봇 end effector의
Figure 112018011114708-pat00001
위치 및
Figure 112018011114708-pat00002
회전에 대해서 조절 할 수 있다. 이에 대한 예시적인 화면은 도 9에 나타나 있다. 또한, 도 9를 참조하면, Speed를 나타내는 창이 있는데, 로봇을 펄스 방식으로 구동시키기 때문에 그러한 펄스 입력에 대한 선택을 할 수 있으며, 펄스 입력을 100~1000[Hz] 범위에서 선택 할 수 있다. 또한 〈 또는 〉버튼을 통해 로봇에 대하여 정방향, 역방향 동작을 지시할 수 있다. 이 또한 토글 방식의 버튼으로 구현될 수도 있다.
도 8의 좌측에 보면 New 버튼을 누를 경우, 도 10의 화면이 생성될 수 있다. 파일 이름을 입력할 수 있고, 이 파일은 로봇의 동작에 대한 정보를 담고 있는 파일일 수 있다. 사용자가 특정 이름을 작성한 후 Open을 누르면, 파일을 생성할 수 있으며, 이에 대한 정보는 도 11을 참조하면 확인할 수 있다. Cancel 버튼을 누르면 초기화면인 도 8로 되돌아 갈 수 있다.
도 11을 참조하면, 현재 로봇에 대한 Joint 및 end effector의 정보에 대해 나타내는 창이 있다. 화면 우측 상단의 Joint/Linear 버튼을 통해 바꿀 수 있으며 도 12에서 보다 자세하게 확인할 수 있다.
도 13을 참조하면, 001 이라는 항목이 생성된 걸 볼 수 있다. 이 항목은 로봇이 어떠한 동작을 할 때, 동작에 대해 구분점을 나타낸다. 화면 좌측의 버튼을 사용하여 실제 로봇을 움직이고, Speed 버튼을 사용하여 로봇을 티칭 시 티칭 속도를 조절할 수 있다. 여기서 +(Add) 버튼으로 구분점을 추가 할 수 있고, -(Remove)버튼으로 구분점을 삭제할 수 있다. 이 구분점은 1000개 이상 추가할 수 있다. 또한, 화면 중간에 보면 Trigger ON, GripperON, ViaON 상태를 선택할 수 있는 창이 있는데, trigger의 기능은 Trigger 핀의 신호 여부에 따라 다음 동작 진행 여부를 결정하며, gripper의 기능은 로봇 end effector의 동작 여부를 결정한다. via 기능은 해당 지점을 경유지점 또는 구분점으로 선택할 수 있다. 동작에 대해 티칭이 끝났다면, 반드시 Save버튼을 눌러서 저장을 해야 하고 Complete 버튼을 누르면 도 14의 화면이 나타난다. 도 14는 각각의 포인트에 대한 정보가 저장되어 있는 화면이며, 이 값들은 사용자가 직접 입력하여 수정할 수 있다. 이러한 수정에 대한 설명은 도 15와 관련하여 Edit버튼 설명할 때 보다 자세하게 다루어지도록 한다.
도 8의 좌측 버튼중 Edit 버튼을 누르면 나오는 화면은 도 15이다. 도 15의 가운데에 보면 test1.task, test2.task 파일이 보이는데 이는 New버튼에서 생성한 파일 이름이다. 그 중 test1.task파일을 선택하고 Select를 누르면 편집 화면으로 넘어가고 Delete버튼을 누르면 해당 파일이 삭제된다. Select버튼을 누르면 도 16의 화면으로 넘어가고 현재는 모든 값이 0이긴 하지만, 실제로는 각 조인트의 각도가 저장되어 있을 수 있다. 만약, 이 조인트의 각도를 바꾸고 싶다면, 숫자를 입력하는 부분에 원하는 각도를 입력 후 바꾸고 싶은 칸을 클릭한다. 그 후 Save 버튼을 누르면 해당 값이 바뀌게 된다. 이는 trigger나 grip에도 동일하게 적용 가능하다. 수정이 끝났다면 Exit버튼을 눌러 종료시킬 수 있다.
도 8의 좌측 버튼 중 이제 Start 버튼에 대해 보다 자세하게 설명하고자 한다. 도 17은 시작 화면으로, 로봇의 움직임에 대해 티칭한 정보를 가지고 실제로 로봇을 움직일 때 쓰는 버튼이 Start 버튼이다. 도 18을 참조하면, 수행하고 싶은 task를 선택한 후 Select버튼을 누르면, 도 18의 화면이 나타나며, 사용자는 선택 task에 대한 정보를 확인할 수 있다. 이러한 상태에서 이제 Start 버튼을 누르면 도 19 화면이 나타날 수 있다.
도 19를 참조하면 화면 중간에 Progress 바(bar)가 있는데, 전체 task 중 얼마나 진행된지 보여주기 위한 상태 표시 바이다. task 진행 시 세팅된 초기위치에서 로봇은 움직임을 시작을 할 수 있다. 이러한 초기 위치 세팅은 Calibrate 버튼과 함께 보다 자세하게 후술하도록 한다. 또한, task 진행 시 움직임 속도 또한 중요한데, 화면 우측의 Speed 버튼을 사용해서 100~10,000 까지 범위값에서 설정할 수 있으며, 1000까지는 100단위, 1000이상은 1000단위로 설정 가능할 수 있다. 또한, 화면 중간의 Emergence Stop은 비상 정지 버튼이다. 해당 버튼을 누르면 로봇의 움직임이 즉시 정지하게 된다. 비상 상황이 종료가 된 후, 다시 Start버튼을 누르면 로봇에게 할당된 task를 진행할 수 있다.
도 8의 Setting 버튼을 누르면, 도 20의 화면을 볼 수 있다. Setting File목록에는 사용하고자 하는 로봇의 물리적 Parameter가 적혀있는 파일을 넣으면 그에 맞는 Kinematics solution이 구해질 수 있다. 이러한 solution을 기준으로 로봇 제어 알고리즘을 구현할 수 있다. Robot Model은 3dof Planar, 6dof KUKA, 6dof abb, 6dof SENES Robot이 미리 저장되어 있을 수 있고, 실제 사용 로봇에 따라 프로그램 소스를 수정 후 사용할 수도 있다. 각각의 로봇의 조인트 회전 방향에 따라 분류될 수도 있다. Control Speed, Interpolation은 로봇 조인트에 위치 지령을 내렸을 때, 이 지령을 따라가는데 있어서 나중 위치와 현재 위치간의 경로를 설정하는 역할을 한다. 3,5,7 order로 설정이 가능하며, order가 높아질수록 움직임이 부드러워진다. 하지만 도달 속도는 감소할 수 있다. Controller 부분은 실제 제어 기법을 말한다. PD, PID, TDC, Intelligent 제어기를 사용할 수 있다. 또한, Feedforward 제어기에 대한 설정도 가능하며, Furier, IST, ZPET 방법을 이용할 수도 있다. 또한, Gripper ON/OFF Time은 gripper 동작 시 시간 지연을 의미하는데, 사용자에 의하여 설정(setting)이 마쳐지면 Save 버튼을 눌러서 설정된 동작 조건을 저장할 수 있다. 저장 시 파일 이름을 지정해줘야 하고 Open버튼으로 저장된 세팅 파일을 불러 올 수도 있다.
Configure버튼을 눌러보면 도 21의 화면이 나온다. 이 화면에서는 임의의 로봇에 대해서 D.H Parameter를 입력할 수 있다. 입력된 D.H Parameter는 로봇의 Kinematics solution을 구하는데 필수적이다. 여기서의 Robot Type은 도 20에서의 Robot Model과 같으며, 6dof 로봇의 조인트 회전 방향에 따라 나뉠 수 있다. 도 21에서 각각의 칸의 숫자를 누르고 링크 parameter를 입력한 후, 저장을 누르면 파일 이름을 설정하는 창이 뜨고 파일을 저장할 수 있다. 어떠한 로봇의 D.H parameter를 불러오고자 한다면 Open버튼을 눌러서 희망하는 로봇의 파라미터를 불러오면 된다.
Calibrate 버튼을 누르면 도 22의 화면이 나온다. Calibrate 메뉴는 로봇의 초기화를 위해 만들어진 것으로, 컨트롤러는 전원을 온(on)하였을 때 실제 로봇의 절대 위치를 모르기 때문에 항상 전원을 켜면 초기화를 해주어야 한다. 도 22의 화면의 오른쪽의 버튼을 통해 로봇의 초기 위치를 잡아준 후, 화면 가운데의 Initialize 버튼을 눌러주면 로봇의 해당 자세를 초기값으로 인식하게 되고, 이로부터 들어오는 엔코더 신호에 따라 현재 관절의 각도를 계산할 수 있게 된다.
도 22를 참조하면, 메뉴 하단의 User Code 버튼은 도 7의 화면에서 아이디 등의 식별코드를 등록한 후 사용하게 된다. 이 때 사용자마다 사용하고자 하는 로봇의 종류나 기본적인 setting이 다르기 때문에 각자 본인 아이디로 미리 설정한 동작 조건에 따라 로봇을 구동시키고자 할 때 유용하게 사용될 수 있는 버튼이다.
manipulator의 제어를 위해선 기구학적 solution이 필요하다. 이 기구학적 solution은 로봇 조인트의 base 회전 축을 1번 조인트라고 정하고, 끝단으로 가면서 번호를 붙일 때, 회전축 배열순서에 따라 다양한 조합이 존재한다. 6dof manipunator의 경우, 산술적으로 계산을 해보면
Figure 112018011114708-pat00003
가지 조합이 나오게 된다. 하지만 실제로 산업현장에서 사용하는 형태는 몇 가지로 압축이 된다. 그 배열 중 Senes Technology社의 ROBO003을 기준으로 solution을 구하여 보았다. manipulator의 base를 기준으로 end effector의 위치가 중요한 정보가 될 것이다. 각 링크의 길이와 조인트의 각도를 안다면, 3차원 공간내에서 base의 좌표를 (0,0,0)으로 잡았을 때 수식적으로 end effector의 위치 및 회전 상태를 구할 수 있고 이 과정은 Forward kinematics solution을 구하는 과정이다. 이 과정은 Denavit-Hartenbug Notation을 이용하여 정의되고, 각 조인트에 직교 좌표계를 설정하고, Base인 {0}계부터 시작하여 계{6}까지 순차적으로 계산될 수 있다. 계{i}와 계{i-1}에 기준하여 정의하는 변환 식은 다음과 같다.
[식 1]
Figure 112018011114708-pat00004
식 1을 통해 도 23을 참고하여 각 조인트의 기구 변환을 계산할 수 있다.
Figure 112018011114708-pat00005
Figure 112018011114708-pat00006
이제
Figure 112018011114708-pat00007
를 개개의 링크 행렬의 곱으로 구한다.
Figure 112018011114708-pat00008
여기서,
Figure 112018011114708-pat00009
이며, 6자유도 매니퓰레이터의 정기구학은 다음과 같이 정리된다.
Figure 112018011114708-pat00010
Inverse kinematics solution은 Forward kinematics solution 과는 반대로 end effector의 위치를 알 때 각 조인트의 회전 각도를 구하는 방법으로, 여기서 회전각도에 대한 값을 계산을 통해 알 수 있다면, end effector가 직선으로 움직이게 할 수 있다. 그렇기 ?문에 Forward/Inverse kinematics solution은 manipulator를 제어하는데 있어서 필수적이며, 후술할 경로 계획에서도 중요하게 쓰인다. Inverse kinematics solution을 구하는 방법은 전술할 방법과 마찬가지로 ROBO 003 모델을 기준으로 구하는 것을 예로써 제시한다. 식 (4) ~ (9)의 과정을 통해 아래와 같이 구할 수 있다.
Figure 112018011114708-pat00011
Figure 112018011114708-pat00012
동작 구분점에 대해서 각 구분점 사이에 end effector의 경로를 생성하는 것을 경로 계획이라고 한다. end effector는 두 개의 점 사이를 결국 선으로 지나게 될 것이고, 이 선의 개수는 무한할 수 있다. 이러한 무한한 선 중에 manipulator의 목적에 따라 두 점 사이를 직선으로 통과할 수도 있고, 중간 물체를 피하기 위해 곡선으로 통과할 수도 있다. 또한, end effector말고 모터의 입장에서도 생각해 볼 수도 있다. 현재 위치와 나중 위치 간의 차이는 모터가 움직여야 하는 거리이고, 모터에는 링크가 걸려 있기 때문에 Moment of inertia가 존재한다. 이러한 inertia가 클수록 모터에는 무리가 되며, 심지어 물리적 파손을 일으킬 수도 있기 때문에 이에 대한 대책이 필요하다. interpolation이 일 방법일 수 있는데, 어떠한 하나의 동작에 대하여 모터를 동작시킬 때 현재 시작 점과 끝점이 존재한다. 이 점 사이를 직선으로 연결할 수도 있지만, 이렇게 연결이 될 경우 모터 입장에서는 급 가속 또는 감속이 발생하게 된다. 이에 대한 부담을 줄이기 위해 n차 다항식을 사용하여 가속 또는 감속 시간을 늘리고 모터에 발생되는 토크의 최대치를 낮추는게 목표이다. 이는 식(10)을 보면 알 수 있다. 식(10)의 1 order는 interpolation이 적용 안 된 경우이다.
Figure 112018011114708-pat00013
이러한 식에 각각 계수를 대입하면, 식 (11)이 된다. 모터에 명령을 내리기 위해선 (시간)에 따라 계산된 값을 명령을 내리면 된다.
Figure 112018011114708-pat00014
Manpulator의 제어는 상,하 계층을 나누어서 볼 수 있다. 전체적인 동작을 제어하는 상위 계층 제어와 각 관절을 제어하는 하위 계층 제어로 나눌 수 있다. 상,하위 제어중 Motor control은 하위 제어에 속한다. 하위제어를 위한 Controller 선택은 전술한 Setting 부분에 보면 Controller 선택 부분이 있는데 PD, PID, TDC, Inteligent controller 중 적어도 하나를 선택할 수 있다. 이중에 PD,PID controller의 경우 고전 제어에 속하며 목표 값과 현재값 간의 차이를 error라고 칭한다. PD controller의 경우 error에 대한 상수 곱과, 미분값을 사용하며 각각 식에 곱해진
Figure 112018011114708-pat00015
는 gain이라고 부른다. 기본적인 식은 (12)와 같이 나타낼 수 있다.
Figure 112018011114708-pat00016
이와 같은 개념으로 PID controller는 error의 적분값까지 사용하며 식 (13)과 같이 나타낼 수 있다.
Figure 112018011114708-pat00017
실제 모터에 내려진 위치 명령을 기준으로 동작을 수행할 수 있다.
manipulator 제어 중 상위 제어에 속하는 Feedforward Control의 기본 개념은 주어진 시스템의 제어 공학적 특성을 잘 알고 있다면, 제어 성능을 증가시킬 수 있다. 이상적으로는 주어진 입력에 대해 즉각 반응하며, 시간 지연이 없어야 하지만 어떠한 입력을 제대로 추종하지 못하고, 시간 지연 및 주어진 입력에 대한 오차가 발생하게 된다. 이 때 주어진 시스템의 제어공학적 특성을 제대로 알고 있다면, 주어진 입력에 대해 발생할 현상을 알 수 있고, 이를 역으로 이용해서 원하는 목표에 도달하기 위해 입력을 조절하는 방법을 Feedforward control이라고 한다.
Feedforward control의 기본적인 개념도는 도 24와 같이 나타낼 수 있다. 주어진 경로에 대해서
Figure 112018011114708-pat00018
의 시간함수로 나타낼 수 있고, Dynamic Model을 통하여 계산이 가능하다.
Dynamic Model은 식 (14)처럼 표현할 수 있다.
Figure 112018011114708-pat00019
또한, Feedforward Control의 기본 제어 법칙은 식 (15)으로 나타낼 수 있다.
Figure 112018011114708-pat00020
(15)의 각 항은 (16), (17)로 표현될 수 있다.
Figure 112018011114708-pat00021
결국 feedforward control의 제어법칙은 아래의 식 (18)과 같이 나타낼 수 있다.
Figure 112018011114708-pat00022
이를 통해 전술한 interpolation과 티칭된 구분점을 가지고 경로를 생성할 수 있다. 생성된 경로에 대한 정보를
Figure 112018011114708-pat00023
의 시간함수로 나타내어 6개 모터에 각각 입력을 주고, 그에 대해서 경로를 오차없이 잘 추종 할 수 있도록 하기위한 제어 방법 중 하나가 Feedforward control 일 수 있다. 또한 전술한 GUI 구성 중 Feedforward control에도 Furier, IST, ZPET 방법 등이 있는데, 이 또한 manipulator의 동역학적 특성을 제대로 알고 있을 때 사용가능한 방법이다.
본 발명의 일 실시예에 따른 컨트롤러의 동작 방법과 관련하여서는 전술한 장치(예컨대, 컨트롤러)에 대한 내용이 적용될 수 있다. 따라서, 방법과 관련하여, 전술한 장치에 대한 내용과 동일한 내용에 대하여는 설명을 생략하였다.
한편, 이러한 동작 방법은 컴퓨터에서 실행될 수 있는 프로그램으로 작성 가능하고, 컴퓨터 판독 가능 매체를 이용하여 상기 프로그램을 동작시키는 범용 디지털 컴퓨터에서 구현될 수 있다. 또한, 상술한 방법에서 사용된 데이터의 구조는 컴퓨터 판독 가능 매체에 여러 수단을 통하여 기록될 수 있다. 본 발명의 다양한 방법들을 수행하기 위한 실행 가능한 컴퓨터 프로그램이나 코드를 기록하는 기록 매체는, 반송파(carrier waves)나 신호들과 같이 일시적인 대상들은 포함하는 것으로 이해되지는 않아야 한다. 상기 컴퓨터 판독 가능 매체는 마그네틱 저장매체(예를 들면, 롬, 플로피 디스크, 하드 디스크 등), 광학적 판독 매체(예를 들면, 시디롬, DVD 등)와 같은 저장 매체를 포함할 수 있다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1000: 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러
1100: 동작조건 설정부
1200: 제어부
1300: 통신부
1400: 디스플레이부

Claims (4)

  1. 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러에 있어서,
    상기 컨트롤러의 동작 조건을 설정하기 위한 동작조건 설정부;
    상기 6축 매니퓰레이터와 연결되어 상기 설정된 동작조건에 따라 상기 6축 매니퓰레이터의 동작을 제어하기 위한 제어부;
    타 디바이스와의 데이터 송수신을 위한 통신부;
    상기 동작조건 설정부, 제어부 및 통신부가 포함되어 구성된 구동회로부; 및
    상기 6축 매니퓰레이터의 제어를 위한 GUI를 디스플레이하는 디스플레이부가 포함되고,
    상기 동작조건 설정부에서는 상기 6축 매니퓰레이터에 대한 기초정보가 수집되고, 수집된 기초정보를 kinematics solution을 통해 가공함으로써 상기 6축 매니퓰레이터의 잔류 진동이 최소화됨과 동시에 향상된 동작 정밀도를 갖도록 하기 위한 상기 동작 조건이 설정되며,
    설정된 상기 동작 조건에 따라 상기 제어부에서 상기 6축 매니퓰레이터의 고속 및 고정밀 제어가 가능하며,
    상기 기초정보에는 매니퓰레이터의 종류, 형태, 위치 및 제원 중 적어도 어느 하나가 포함되고,
    상기 GUI에서는 각 매니퓰레이터의 관절의 각도를 조절하기 위한 조인트(joint) 모드 및 엔드-이펙터(end-effector)의 위치 및 회전 정도를 조절하기 위한 리니어(linear) 모드 중 어느 하나의 모드가 선택될 수 있으며,
    상기 GUI에서는 매니퓰레이터의 적어도 하나 이상의 동작에 대한 구분점마다 트리거(trigger), 그리퍼(gripper) 및 경유(via) 기능이 적용가능하며, 상기 트리거 기능은 트리거 핀의 신호 여부에 따라 다음 동작의 진행여부가 결정되며, 상기 그리퍼 기능은 상기 엔드-이펙터의 동작 여부가 결정되고, 상기 경유 기능은 해당 구분점이 경유지점으로 선택되며,
    상기 kinematics solution에서는 상기 매니퓰레이터 내 링크의 길이와 조인트의 각도에 기초하여 상기 엔드-이펙터의 위치 및 회전상태가 구해지는 것을 특징으로 하는 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러.
  2. 삭제
  3. 삭제
  4. 삭제
KR1020180012165A 2018-01-31 2018-01-31 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러 KR102004228B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180012165A KR102004228B1 (ko) 2018-01-31 2018-01-31 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180012165A KR102004228B1 (ko) 2018-01-31 2018-01-31 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러

Publications (1)

Publication Number Publication Date
KR102004228B1 true KR102004228B1 (ko) 2019-07-26

Family

ID=67469718

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180012165A KR102004228B1 (ko) 2018-01-31 2018-01-31 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러

Country Status (1)

Country Link
KR (1) KR102004228B1 (ko)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040034167A (ko) 2002-10-21 2004-04-28 창원대학교 공작기계기술연구센터 6축 수직다관절 매니퓰레이터의 직선이동 제어방법
KR100520779B1 (ko) * 2003-01-09 2005-10-12 삼성중공업 주식회사 Fpga를 이용한 다 축 위치 제어장치
KR20130092307A (ko) * 2012-02-10 2013-08-20 삼성중공업 주식회사 모션제어 칩
KR101411503B1 (ko) * 2013-01-04 2014-06-24 삼성중공업 주식회사 로봇 제어 장치 및 그 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20040034167A (ko) 2002-10-21 2004-04-28 창원대학교 공작기계기술연구센터 6축 수직다관절 매니퓰레이터의 직선이동 제어방법
KR100520779B1 (ko) * 2003-01-09 2005-10-12 삼성중공업 주식회사 Fpga를 이용한 다 축 위치 제어장치
KR20130092307A (ko) * 2012-02-10 2013-08-20 삼성중공업 주식회사 모션제어 칩
KR101411503B1 (ko) * 2013-01-04 2014-06-24 삼성중공업 주식회사 로봇 제어 장치 및 그 방법

Similar Documents

Publication Publication Date Title
TWI673148B (zh) 遠端操作機器人系統及其運轉方法
CN107717981B (zh) 机械手臂的控制装置及其教导系统与方法
CN104440864B (zh) 一种主从式遥操作工业机器人系统及其控制方法
US9393687B2 (en) Method for programming an industrial robot and industrial robot
JP5545534B2 (ja) ロボットの教示再生装置、教示再生方法、及び教示データ作成方法
KR20180069031A (ko) 로봇의 다이렉트 교시방법
CN108422420B (zh) 具有学习控制功能的机器人系统以及学习控制方法
KR20180059888A (ko) 로봇교시방법 및 로봇 암 제어장치
US20150273689A1 (en) Robot control device, robot, robotic system, teaching method, and program
JP7066357B2 (ja) ロボットシステム及びその運転方法
JP2012096338A (ja) ロボット制御装置
CN110709211B (zh) 机器人系统和机器人系统的控制方法
JP2018167334A (ja) 教示装置および教示方法
CN111093911B (zh) 机器人系统及其运行方法
EP3315269A2 (en) Force control coordinate axis setting device, robot, and force control coordinate axis setting method
CN105511400A (zh) 一种冲压机器人控制系统
CN115338855A (zh) 双臂机器人组装系统
CN115703227A (zh) 机器人的控制方法、机器人以及计算机可读存储介质
KR102004228B1 (ko) 6축 매니퓰레이터의 범용 고속-고정밀 컨트롤러
JP2015231659A (ja) ロボット装置
JP2577003B2 (ja) ロボットの制御方法
JP2021094641A (ja) ロボット制御装置、把持システムおよびロボットハンドの制御方法
JP7185749B2 (ja) ロボットシステム及びロボットシステムの制御方法
Lei et al. Vision-based position/impedance control for robotic assembly task
Matour et al. Intuitive Robot Path Planning through Augmented Reality

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant