KR102272294B1 - 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법 - Google Patents

가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법 Download PDF

Info

Publication number
KR102272294B1
KR102272294B1 KR1020190172903A KR20190172903A KR102272294B1 KR 102272294 B1 KR102272294 B1 KR 102272294B1 KR 1020190172903 A KR1020190172903 A KR 1020190172903A KR 20190172903 A KR20190172903 A KR 20190172903A KR 102272294 B1 KR102272294 B1 KR 102272294B1
Authority
KR
South Korea
Prior art keywords
robot
unit
virtual axis
driving
changed
Prior art date
Application number
KR1020190172903A
Other languages
English (en)
Other versions
KR20210080868A (ko
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 KR1020190172903A priority Critical patent/KR102272294B1/ko
Publication of KR20210080868A publication Critical patent/KR20210080868A/ko
Application granted granted Critical
Publication of KR102272294B1 publication Critical patent/KR102272294B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1628Programme controls characterised by the control loop
    • B25J9/1633Programme controls characterised by the control loop compliant, force, torque control, e.g. combined with position control
    • 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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1671Programme controls characterised by programming, planning systems for manipulators characterised by simulation, either to verify existing program or to create and verify new program, CAD/CAM oriented, graphic oriented programming systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Orthopedic Medicine & Surgery (AREA)
  • Numerical Control (AREA)

Abstract

본 발명은 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법에 관한 것으로서, 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어장치는, 로봇의 링크 및 조인트 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어하는 제어부, 및 기구가 구조적으로 변경될 때 변경된 기구에 상응하도록 기준 제어 데이터를 이용해 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 로봇 구동부로 제공하는 구동좌표 가변부를 포함한다.

Description

가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법{Robot Control Apparatus Having Virtual Axis Interface and Driving Method Thereof}
본 발명은 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법에 관한 것으로서, 더 상세하게는 가령 원통 좌표계나 실린더 좌표계와 같이 동일 좌표계를 갖는 산업용 로봇이 기구적으로 변경될 때 프로그램을 플러그인(plug-in) 형태로 간단히 추가하여 기구적 변경에 신속히 대처할 수 있는 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법에 관한 것이다.
일반적인 산업용 로봇은 링크 및 조인트로 정의되는 기구부(혹은 매니퓰레이터)를 모터 구동을 통해 원하는 동작을 이루도록 하는 제어장치를 가지고 있다. 매니퓰레이터의 조인트에 회전운동 혹은 직선 운동이 가능하도록 축을 형성하는 모터 드라이빙 시스템이 구성되고, 제어장치는 이 드라이빙 시스템을 전축이 유기적으로 작동되도록 정역기구학을 통해 매 순간의 모터 이동량을 지령하게 된다. 기존의 제어기는 다양한 구성을 가지는 매니퓰레이터의 제어에 대응하기 위해 각각에 해당하는 정역 기구학을 풀어서(혹은 해석하여) 제어 소프트웨어에 포함 시키고, 매니퓰레이터를 구성하는 조인트 형태에 따라, 축공간을 지원하고 있다.
그런데, 종래 산업용 로봇의 경우 매니퓰레이터의 변경이 있을 때 로봇 자체를 교체하거나 프로그램 전체를 새롭게 세팅하는 등 시스템 구축 비용이 많이 발생할 뿐 아니라 작업에도 많은 번거로움이 있다.
한국공개특허공보 제10-2007-0122271호(2007.12.31) 한국공개특허공보 제10-2018-0027546호(2018.03.14) 한국등록특허공보 제10-1359062호(2014.01.28) 한국등록특허공보 제10-1255948호(2013.04.11)
본 발명의 실시예는, 가령 원통 좌표계나 실린더 좌표계와 같이 동일 좌표계를 갖는 산업용 로봇이 기구적으로 변경될 때 프로그램을 플러그인 형태로 간단히 추가하여 기구적 변경에 신속히 대처할 수 있는 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법을 제공함에 그 목적이 있다.
본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어장치는, 로봇의 링크 및 조인트(joint) 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어하는 제어부, 및 상기 기구가 구조적으로 변경될 때, 상기 변경된 기구에 상응하도록 상기 기준 제어 데이터를 이용해 상기 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 상기 로봇 구동부로 제공하는 구동좌표 가변부를 포함하는 것을 특징으로 한다.
상기 구동좌표 가변부는, 상기 로봇 구동부의 모터를 제어하는 모터 드라이버로 상기 변경된 좌표값을 제공하는 것을 특징으로 할 수 있다.
상기 구동좌표 가변부는, 상기 기준 제어 데이터가 입력될 때, 상기 변경된 좌표값이 출력되는 좌표 맵핑부를 포함하는 것을 특징으로 할 수 있다.
상기 좌표 맵핑부는, 플러그인(plug-in) 프로그램의 형태로 지원되는 것을 특징으로 할 수 있다.
또한, 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어장치의 구동방법은, 제어부가, 로봇의 링크 및 조인트 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어하는 단계, 및 구동좌표 가변부가, 상기 기구가 구조적으로 변경될 때, 상기 변경된 기구에 상응하도록 상기 기준 제어 데이터를 이용해 상기 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 상기 로봇 구동부로 제공하는 단계를 포함하는 것을 특징으로 한다.
상기 로봇 구동부로 제공하는 단계는, 상기 로봇 구동부의 모터를 제어하는 모터 드라이버로 상기 변경된 좌표값을 제공하는 것을 특징으로 할 수 있다.
상기 로봇 구동부로 제공하는 단계는, 상기 기준 제어 데이터가 입력될 때, 좌표 맵핑부에서 출력되는 상기 변경된 좌표값을 제공하는 것을 특징으로 할 수 있다.
상기 좌표 맵핑부는, 플러그인 프로그램의 형태로 지원되는 것을 특징으로 할 수 있다.
본 발명의 실시예에 따르면 로봇 기구를 정의하는 개념적인 축을 가상축으로 정의하고, 가상축과 실축 관계를 정의하는 (구동)축 맵퍼(Axis Mapper) 인터페이스 레이어를 제공하여, 가령 동일한 원통 좌표계를 제공하는 로봇을 동일한 개념의 로봇으로 정의할 수 있게 하여 로봇 제어장치의 사용자 인터페이스와 로봇 프로그램의 일관성을 가질 수 있게 될 것이다.
도 1은 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템을 나타내는 도면,
도 2는 본 발명의 다른 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템을 나타내는 도면, 그리고
도 3은 도 1 및 도 2의 로봇제어장치의 변경된 구조를 예시한 블록다이어그램, 그리고
도 4는 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어장치의 구동 과정을 나타내는 흐름도이다.
본 명세서에 개시되어 있는 본 발명의 개념에 따른 실시 예들에 대해서 특정한 구조적 또는 기능적 설명들은 단지 본 발명의 개념에 따른 실시 예들을 설명하기 위한 목적으로 예시된 것으로서, 본 발명의 개념에 따른 실시 예들은 다양한 형태들로 실시될 수 있으며 본 명세서에 설명된 실시 예들에 한정되지 않는다.
본 발명의 개념에 따른 실시 예들은 다양한 변경들을 가할 수 있고 여러 가지 형태들을 가질 수 있으므로 실시 예들을 도면에 예시하고 본 명세서에 상세하게 설명하고자 한다. 그러나, 이는 본 발명의 개념에 따른 실시 예들을 특정한 개시 형태들에 대해 한정하려는 것이 아니며, 본 발명의 사상 및 기술 범위에 포함되는 모든 변경, 균등물, 또는 대체물을 포함한다.
제1 또는 제2 등의 용어는 다양한 구성 요소들을 설명하는데 사용될 수 있지만, 상기 구성 요소들은 상기 용어들에 의해 한정되어서는 안 된다. 상기 용어들은 하나의 구성 요소를 다른 구성 요소로부터 구별하는 목적으로만, 예컨대 본 발명의 개념에 따른 권리 범위로부터 이탈되지 않은 채, 제1구성요소는 제2구성요소로 명명될 수 있고, 유사하게 제2구성요소는 제1구성요소로도 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어" 있다거나 "직접 접속되어" 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
본 명세서에서 사용한 용어는 단지 특정한 실시 예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도가 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 명세서에서, "포함하다" 또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
다르게 정의되지 않는 한, 기술적이거나 과학적인 용어를 포함해서 여기서 사용되는 모든 용어들은 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 것과 같은 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 의미를 갖는 것으로 해석되어야 하며, 본 명세서에서 명백하게 정의하지 않는 한, 이상적이거나 과도하게 형식적인 의미로 해석되지 않는다.
도면들에 있어서, 층 및 영역들의 두께는 명확성을 기하기 위하여 과장된 것이다. 층이 다른 층 또는 기판 "상"에 있다고 언급되거나, 층이 다른 층 또는 기판과 결합 또는 접착된다고 언급되는 경우에, 그것은 다른 층 또는 기판상에 직접 형성될 수 있거나 또는 그들 사이에 제3의 층이 개재될 수도 있다. 명세서 전체에 걸쳐서 동일한 참조번호로 표시된 부분들은 동일한 구성요소들을 의미한다.
상단, 하단, 상면, 하면, 전면, 후면, 또는 상부, 하부 등의 용어는 구성요소에 있어 상대적인 위치를 구별하기 위해 사용되는 것이다. 예를 들어, 편의상 도면상의 위쪽을 상부, 도면상의 아래쪽을 하부로 명명하는 경우, 실제에 있어서는 본 발명의 권리 범위를 벗어나지 않으면서 상부는 하부로 명명될 수 있고, 하부는 상부로 명명될 수 있다. 또한, 도면의 구성요소는 반드시 축척에 따라 그려진 것은 아니고, 예컨대, 본 발명의 이해를 돕기 위해 도면의 일부 구성요소의 크기는 다른 구성요소에 비해 과장될 수 있다.
이하, 도면을 참조하여 본 발명의 실시예에 대하여 상세히 설명한다.
도 1은 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템을 나타내는 도면이다.
도 1에 도시된 바와 같이, 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템(혹은 로봇제어장치)(이하, 로봇제어시스템)(90)은 산업 현장에 사용되는 다양한 유형의 산업용 로봇(예: 스카라 로봇 등)으로서, 로봇제어장치(100) 및 로봇장치(110)의 일부 또는 전부를 포함한다.
여기서, "일부 또는 전부를 포함한다"는 것은 로봇제어장치(100)와 같은 일부 구성요소가 로봇장치(110)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
로봇제어장치(100)는 로봇장치(110)를 제어하기 위한 다양한 장치를 포함할 수 있다. 본 발명의 실시예에 따른 로봇제어장치(100)는 로봇장치(110)의 기구부 즉 외연을 형성하는 본체부의 일측에 구비되는 PCB 기판이나 FPCB 기판 등을 메인 보드의 형태로 구성되는 것이 얼마든지 가능할 수 있다. 물론, 로봇제어장치(100)는 로봇장치(110)가 클린룸(Clean Room)과 같은 공간에 구비되는 경우에는 클린룸의 외부에 구성되는 원격제어장치의 형태로 구성될 수도 있다. 예를 들어, 데스크탑컴퓨터, 랩탑컴퓨터, 태블릿PC, 스마트폰 또는 스마트TV와 같이 원격에서 내부의 제어 프로그램을 실행시켜 로봇장치(110)를 제어하는 것이 얼마든지 가능하다. 로봇제어장치(100)는 로봇장치(110)의 초기 세팅 동작을 수행하는 경우, 로봇장치(110)는 세팅 프로그램에 따라 반복적인 동작을 수행할 수 있다.
로봇제어장치(100)는 로봇장치(110)를 직접적으로 제어하는 것도 가능할 수 있지만, 로봇장치(110)에 구비되는 서보(혹은 서브) 드라이버를 통해 간접적으로 제어가 이루어질 수도 있다. 예를 들어, 로봇장치(110)에는 모터나 모터 제어기(예: 엔코더) 등이 사용될 수 있고, 이를 제어하고 또 해당 구성요소들에 전압을 제공하기 위해서는 별도의 서보 드라이버가 구비될 수 있기 때문이다.
본 발명의 실시예에 따른 로봇제어장치(100)는 도 1에 도시된 바와 같이, 제어부(101), 구동좌표 가변부(103), 좌표 맵핑부(105) 및 사용자 인터페이스부(107)의 일부 또는 전부를 포함할 수 있으며, 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 크게 다르지 않다.
제어부(101)는 로봇제어장치(100)를 구성하는 구동좌표 가변부(103) 및 사용자 인터페이스부(107)의 전반적인 제어 동작을 담당할 수 있다. 제어부(101)는 사용자 인터페이스부(107)를 통해 수신되는 사용자 명령을 근거로 구동좌표 가변부(103)를 제어할 수 있다. 예를 들어, 제어부(101)는 사용자 인터페이스부(107)를 통해 전원 온/오프 명령이 수신되는 경우, 해당 명령을 로봇장치(110)로 전송하여 로봇의 동작을 정지시키거나 작동시킬 수 있다. 이외에도 제어부(101)는 사용자 인터페이스부(107)를 통해 입력되는 사용자 명령에 따라 다양한 동작을 수행할 수 있다. 예컨대, 제어부(101)는 로봇장치(110)의 기구부 즉 매니퓰레이터의 변경이 있을 때, 이를 인식하여 구동좌표 가변부(103)를 실행시키기 위한 동작을 수행할 수 있다. 가령 구동좌표 가변부(103)의 구동(축) 제어 데이터를 A라는 기구부의 형태에 매칭시켜 구축 또는 세팅한 경우, 좌표 맵핑부(105)와 연동을 수행하지 않을 수 있다. 그러나, A라는 기구부가 B라는 형태로 기구부가 변경된 경우 이를 인식하여 좌표 맵핑부(105)와 연동하기 위한 동작을 설정할 수 있다.
구동좌표 가변부(103)는 로봇장치(110)를 제어하기 위한 제어 프로그램을 실행하여 구동 제어 데이터를 생성 및 출력할 수 있다. 다시 말해, 산업용 로봇인 로봇장치(110)는 로봇암을 포함할 수 있고, 로봇암은 링크(혹은 마디) 및 조인트(혹은 관절)를 포함할 수 있다. 각각의 링크들이 조인트에 의해 연결되어 관절 즉 조인트를 중심으로 회전 운동을 하거나 직선 운동을 하는 등 다자유도를 가질 수 있다. 가령, 6축 다관절 로봇의 경우, 구동좌표 가변부(103)는 각각의 축을 제어하기 위한 제어 데이터를 로봇장치(110)로 전송할 수 있다. 6축의 경우 로봇은 상하좌우, 전후진과 각 축에 대하여 회전이 이루어질 수 있다. 회전은 기준축을 중심으로 하는 각도로 표시될 수 있다.
본 발명의 실시예에 따른 구동좌표 가변부(103)는 가령 동일 좌표계, 예를 들어 실린더 좌표계나 원통 좌표계와 같이 동일 또는 유사 범주에 포함되는 로봇장치(110)와 관련하여 로봇장치(110)의 기구부의 변경이 있을 때, 가령 플러그인 형태로 삽입되는 좌표 맵핑부(105)를 근거로 제어 데이터 또는 구동 좌표를 변경한다. 다시 말해, 기구의 변경전 기설정된 기준 제어 데이터를 이용하여 기구의 변경 후에 상응하도록 제어 데이터를 변경할 수 있다. 구동좌표 가변부(103)는 변경된 데이터를 로봇장치(110)로 전송한다. 예를 들어, 로봇장치(110)의 지정 (구동)축에 대한 좌표값 (x, y, z)에 대하여 좌표 변경이 이루어지는 경우, 해당 좌표값을 기준축 또는 가상축으로 하여 데이터의 변경이 이루어지도록 하는 것이다.
예를 들어, 좌표 맵핑부(105)는 룩업 테이블(LUT) 등의 형태로 데이터를 변경할 수도 있다. 제어부(101)의 제어에 따라 구동좌표 가변부(103)에서 특정 제어 데이터가 좌표 맵핑부(105)로 입력되면, 그에 매칭되는 변경된 좌표값이 출력되어 구동좌표 가변부(103)에 제공되고, 구동좌표 가변부(103)는 변경된 해당 좌표값을 로봇장치(110)로 전송할 수 있다. 예를 들어, 로봇장치(110)의 기구부가 초기 직동기구의 형태로 동작하였지만, 향후 회전기구의 형태로 동작이 변경되었다면 직동기구의 각 구동축을 기준축 혹은 가상축으로 하여 회전축에 대한 제어 데이터를 생성해 서로 매칭시켜 저장한 후 이를 좌표 맵핑부(105)를 통해 이용하도록 할 수 있을 것이다. 즉 변경된 기구의 구동값은 변경전 기구의 구동축을 가상축으로 하는 구동값(혹은 기설정된 기준 제어 데이터) + a가 된다고 볼 수 있다.
본 발명의 실시예에 따른 좌표 맵핑부(105)는 로봇장치(110)의 기구 변경이 있을 때, 플로피 디스켓을 삽입하는 것과 같이 플러그인 형태로 프로그램을 추가로 삽입할 수 있다. 예를 들어, USB와 같은 저장매체를 좌표 맵핑부(105)에 삽입하는 경우, 구동좌표 가변부(103)는 가령 제어부(101)의 제어하에 이를 인식하여 사용자 인터페이스부(107)로부터 업그레이드(upgrade) 명령이 있을 때, 초기 설정된 제어 데이터를 업그레이드하는 등의 동작을 수행할 수 있다. 이의 경우에는 업그레이드된 제어 데이터를 근거로 로봇장치(110)를 제어할 수도 있다. 좌표 맵핑부(105)는 다양한 형태로 구성될 수 있으므로, 본 발명의 실시예에서는 어느 하나의 형태에 특별히 한정하지는 않을 것이다.
사용자 인터페이스부(107)는 외연을 이루는 본체부의 외부에 형성되는 전원버튼 등의 버튼을 포함할 수 있으며, 터치스크린 패널을 포함하여 이를 통해 입력되는 사용자 명령을 수신할 수도 있다. 또한, 스마트폰 등과 통신을 수행하여 입력되는 명령을 수신할 수도 있다. 사용자 인터페이스부(107)는 본 발명의 실시예에 따른 로봇장치(110)를 어떠한 형태로 동작시킬지에 관련되는 다양한 사용자 명령 또는 제어 명령을 제공할 수 있다.
로봇장치(110)는 산업용 로봇의 외연 즉 바디(body)를 구성하고, 그 바디의 내부 또는 일측에는 서보 드라이버 등을 포함할 수 있다. 다시 말해, 로봇은 로봇암을 가지며, 각각의 로봇암은 로봇의 몸체부에 연결되며, 몸체부도 회전이 이루어질 수 있다. 로봇암은 링크 즉 마디와, 2개의 링크를 서로 연결하는 관절 즉 조인트를 포함할 수 있다. 로봇암의 내부에는 로봇암을 원하는 방향으로 구동시키기 위한 구동축이 구비될 수 있으며, 해당 구동축은 모터에 연결되어 모터의 직선 운동이나 회전 운동이 있을 때 구동축이 함께 움직일 수 있다. 물론 구동축은 기어를 통해 구동이 발생할 수도 있다. 통상적으로, 모터와 그 모터에 연결되는 구동축 등은 액추에이터(actuator)라 명명되기도 한다.
로봇장치(110)는 도 1에 도시된 바와 같이, 모터 드라이버(111)와 모터부(113)의 일부 또는 전부를 포함할 수 있다. 물론 모터부(113)에는 구동축이 연결됨으로써 모터 드라이버(111)에서 모터부(113)를 제어함에 따라 구동축이 움직여 로봇이 구동될 수 있다. 예를 들어, 모터 드라이버(111)는 구동좌표 가변부(103)를 통해 로봇의 구동축을 기준으로 제어 데이터가 제공되는 경우 이를 모터의 제어값으로 변경하여 모터부(113)의 모터를 제어할 수 있다. 대표적으로, 모터 드라이버(111)는 모터의 구동속도나 각(속)도, 또는 토크 등의 형태로 제공될 수 있다.
로봇장치(110)는 본 발명의 실시예에 따라 기구적으로 변경이 발생할 때, 그에 따른 동작을 수행하게 된다. 예를 들어, 기구적 변경이 직동기구에서 회전기구로 변경될 때, 이를 반영하기 위하여 직동기구의 각 축을 기준으로 회전기구를 제어하기 위한 제어 데이터를 생성해 이에 의해 제어된다고 볼 수 있다.
도 2는 본 발명의 다른 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템을 나타내는 도면이다.
도 2에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 가상축 인터페이스를 갖는 로봇제어시스템(이하, 로봇제어시스템)(190)은 로봇제어장치(200) 및 로봇장치(210, 210')의 일부 또는 전부를 포함하며, 로봇제어장치(200)는 로봇 제어기(201), 가상축 제어실행부(203) 및 축 맵퍼(205)의 일부 또는 전부를 포함할 수 있다. 여기서 "일부 또는 전부를 포함"한다는 것은 앞서서의 의미와 크게 다르지 않다.
도 1의 로봇제어시스템(90)과 비교해 볼 때, 도 2의 로봇제어시스템(190)은 정역 기구학을 해석하여 제어 프로그램으로 구축한 가상축 제어실행부(또는 가변구동부)(203)에서 Z, A, R 즉 X축, Y축 및 Z축에 대한 제어 데이터가 출력될 때, 각 출력된 제어 데이터가 축 맵퍼(205)에 의해 변경되어 모터 드라이버(211, 211')로 제공되도록 연결될 수 있다는 것이다. 위의 Z, A, R은 하나의 구동축에 대하여 상하좌우 및 전후진을 의미할 수 있다.
도 2에서는 2개의 로봇장치(210, 210')를 도시하고 있지만, 실질적으로 상측은 기구의 변경전 직동기구를 보여주고 있고, 하측은 상측의 직동링크를 하측과 같이 회전기구 또는 회전링크(A2)로 기구를 변경하였을 때를 보여주고 있다. 이와 같이 기구적으로 변경이 있을 때 축 맵퍼(205)를 통해 회전기구(A2)를 제어하기 위한 제어 데이터로 변경(혹은 생성)되어 해당 로봇장치(210')의 모터 드라이버(211')로 제공되어야 한다. 물론 각각의 모터 드라이버(211, 211')에서 하드웨어나 소프트웨어적으로 변경되는 것은 없으며, 단지 축 맵퍼(205)를 통해 프로그램만 간단하게 추가된다고 볼 수 있다. 따라서, 기구 변경전이나 기구 변경후의 모터 드라이버(211, 211')는 실질적으로 동일한 모터 드라이버에 해당된다.
예를 들어, 실리더 좌표계를 지원하는 로봇인 경우, 제어장치는 개념적으로는 동일한 실리더 좌표계형 매니퓰레이터나, 직동링크 혹은 회전링크로 구성하는냐에 따라 각각의 소프트웨어에서 제공하는 조인트 공간은 직동기구를 제공할 경우 Z, A, R과 같이 되고, 회전기구를 제공할 경우, Z, A, A2와 같은 조인트 공간을 제공하도록 구현된다.
정리해 보면, 본 발명의 실시예에 따른 로봇제어장치(200)는 로봇 기구를 정의하는 개념적인 축을 가상축(215)으로 정의하고, 여기서 가상축(215)은 상측의 직동기구의 구동축(213)이 될 수 있으며, 가상축(215)과 실축(A2)의 관계를 정의하는 축 맵퍼 인터페이스 레이어(layer)를 제공하여 가령 동일한 원통 좌표계를 제공하는 로봇을 동일한 개념의 로봇으로 정의할 수 있게 하여 로봇 제어장치(200)의 사용자 인터페이스와 로봇 프로그램의 일관성을 가질 수 있게 되는 것이다. 상측의 로봇장치(210)에서 MoveJ position을 그대로 하측의 로봇장치(210')에서 MoveJ position으로 사용할 수 있게 되는 것이다. 물론 위의 맵퍼 인터페이스 층은 도 2의 축 맵퍼(205)를 의미한다고 볼 수 있다.
이와 같이, 기존의 로봇 프로그램을 그래도 유지하면서, 기구적으로 변경이 있을 때, 프로그램을 플러그인 형태로 추가하는 형태로 로봇제어장치(200)를 운영할 수 있게 됨으로써, 기본 로봇 프로그램을 설정하여 이를 범용으로 사용하고, 제품을 생산하는 제조사나 로봇의 운영사마다 맞춤화되는 로봇 제어 프로그램을 간단히 추가함으로써 산업 현장에서 로봇 운영이 매우 편리하게 이루어질 수 있다.
도 3은 도 1 및 도 2의 로봇제어장치의 변경된 구조를 예시한 블록다이어그램이다.
도 3에 도시된 바와 같이, 본 발명의 다른 실시예에 따른 로봇제어장치(100', 200')는 통신 인터페이스부(300), 제어부(310), 가상축 데이터생성부(혹은 가상축 인터페이스실행부)(320), 프로그램 플러그인부(330) 및 저장부(340)의 일부 또는 전부를 포함한다.
여기서, "일부 또는 전부를 포함한다"는 것은 저장부(340)와 같은 일부 구성요소가 생략되어 로봇제어장치(100', 200')가 구성되거나, 가상축 데이터생성부(320)와 같은 구성요소가 제어부(310)와 같은 다른 구성요소에 통합되어 구성될 수 있는 것 등을 의미하는 것으로서, 발명의 충분한 이해를 돕기 위하여 전부 포함하는 것으로 설명한다.
통신 인터페이스부(300)는 도 1 및 도 2의 로봇장치(100, 210, 210')와 통신을 수행하여 정역 기구학, 다시 말해 기구의 형태에 따른 제어 데이터를 전송할 수 있다. 예를 들어, 산업 현장의 로봇이 특정 직동기구가 링크를 갖는 회전기구로 변경이 이루어진 경우, 변경된 회전기구에 상응하는 제어 데이터가 전송될 수 있다.
제어부(310)는 도 3을 구성하는 통신 인터페이스부(300), 가상축 데이터생성부(320), 프로그램 플러그인부(330) 및 저장부(340)의 전반적인 제어 동작을 담당한다. 예를 들어, 제어부(310)는 가상축 데이터생성부(320)에 직동기구를 실행하기 위한 프로그램을 포함하고 있는 경우, 위에서와 같이 직동기구가 회전기구로 변경되었을 때, 프로그램 플러그인부(330)를 통해 추가 프로그램이 제공되면 이를 가상축 데이터생성부(320)에 업그레이드하는 동작을 수행할 수 있다. 물론 프로그램 플러그인부(330)가 맵핑부 또는 맵퍼로서 동작하도록 설정한 경우에는 가상축 데이터생성부(320)로부터 출력되는 제어 데이터를 프로그램 플러그인부(330)를 통해 변환하여 이를 로봇장치(100, 210, 210')로 전송하도록 통신 인터페이스부(300)를 제어할 수 있다. 시스템 설계자가 어떠한 방식으로 동작하도록 설정하였는지에 제어부(310)의 동작은 다소 상이할 수 있다.
가상축 데이터생성부(320)는 가령 동일 좌표계를 사용하는 산업용 로봇에서 범용으로 사용할 수 있는 제어 프로그램을 포함할 수 있다. 대표적으로 실린더 좌표계의 로봇에 대하여 직동기구를 기준으로 생성한 제어 프로그램이 포함될 수 있다. 가상축 데이터생성부(320)는 제어부(310)의 요청에 따라 내부 프로그램을 실행하여 로봇암 즉 구동축을 제어하기 위한 제어 데이터를 출력할 수 있다.
이의 과정에서 가상축 데이터생성부(320)는 가령 로봇 기구의 변경이 있을 때, 내부 프로그램을 변경하도록 설정되어 있는 경우에는 기구 변경 후 프로그램 플러그인부(330)를 통해 관련 프로그램이 제공되면 이를 근거로 내부 프로그램의 업그레이드 동작을 수행할 수도 있다.
프로그램 플러그인부(330)는 플로피 디스크와 같이 슬롯에 끼워넣는 형태, 이이피롬(EEPROM)이 맵퍼로서 동작할 수 있도록 컴퓨터 등을 연결하여 프로그램을 써넣을 수 있는 형태, USB 등을 포트(port)에 삽입하는 형태 등 다양한 형태로 구성될 수 있다. 또한 맵퍼는 HDD와 같은 롬에 룩업테이블(LUT) 형태로 구성할 수도 있다. 이를 통해 특정 조건의 데이터가 입력될 때, 그에 상응하여 매칭되어 있는 데이터를 출력하도록 하는 것이다. 물론 USB 등을 사용하는 경우 기존의 프로그램을 업그레이드하는 형태가 될 수도 있다. 물론 전자의 경우는 룩업테이블 데이터를 사용하지 않고 바로 연산을 수행해 맵핑 데이터가 제공되도록 하는 것도 얼마든지 가능하지만, 신속한 데이터 처리를 위하여 맵핑 방식이 바람직할 수 있다.
저장부(340)는 제어부(310)의 제어하에 처리되는 다양한 정보나 데이터를 임시 저장한 후 출력할 수 있다. 예를 들어, 제어부(310)는 가상축 데이터생성부(320)에서 출력되는 제어 데이터를 저장부(340)에 임시 저장한 후 다시 불러내어 프로그램 플러그인부(330)로 제공하여 변환된 제어 데이터를 제공받은 후, 이를 다시 저장부(340)에 저장한 후 통신 인터페이스부(300)로 제공하여 로봇장치(210, 210')로 제공되도록 할 수 있을 것이다.
한편, 본 발명의 다른 실시예로서 도 3의 제어부(310)는 CPU 및 메모리를 포함할 수 있으며, 원칩화하여 형성될 수 있다. CPU는 제어회로, 연산부(ALU), 명령어해석부 및 레지스트리 등을 포함하며, 메모리는 램(RAM)을 포함할 수 있다. 제어회로는 제어동작을, 그리고 연산부는 2진비트정보의 연산동작을, 그리고 명령어해석부는 인터프리터나 컴파일러 등을 포함하여 고급언어를 기계어로, 또 기계어를 고급언어로 변환하는 동작을 수행할 수 있으며, 레지스트리는 소프트웨어적인 데이터 저장에 관여할 수 있다. 상기의 구성에 따라, 가령 도 3의 로봇제어장치(100', 200')의 동작 초기에 가상축 데이터생성부(320)에 저장되어 있는 프로그램을 복사하여 메모리 즉 램에 로딩한 후 이를 실행시킴으로써 데이터 연산처리 속도를 빠르게 증가시킬 수 있게 된다.
도 4는 본 발명의 실시예에 따른 가상축 인터페이스를 갖는 로봇제어장치의 구동 과정을 나타내는 흐름도이다.
설명의 편의상 도 4를 도 1과 함께 참조하면, 본 발명의 실시예에 따른 로봇제어장치(100)는, 로봇의 링크 및 조인트 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어한다(S400). 이의 동작은 도 2에서 볼 때, 상측의 로봇장치(210)를 제어하기 위한 동작으로 이해될 수 있다.
로봇제어장치(100)는 가령, 기구가 즉 링크나 조인트가 구조적으로 변경될 때, 변경된 기구에 상응하도록 기준 제어 데이터를 이용해 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 로봇 구동부로 제공할 수 있다(S410). 이의 동작은 도 2에서 볼 때, 하측의 로봇장치(210')를 제어하는 동작에 해당할 수 있다.
본 발명의 실시예에서는 기구적으로 로봇의 변경이 있을 때, 변경전의 링크나 조인트를 가상축으로 하는 새로운 좌표값(혹은 제어 데이터)을 생성해 제공하되, 새로운 좌표값은 기존의 기준 제어 데이터를 이용하도록 하고 플러그인 형태로 프로그램을 간단히 추가할 수 있도록 함으로써 로봇의 개량 혹은 개선이 매우 수월할 수 있다. 이는 곧 산업용 로봇을 현장에서 활용하는 사용자의 경우, 자신의 현장에 맞춤화하여 로봇을 제작할 수 있다는 것을 의미한다고 볼 수도 있을 것이다.
상기한 내용 이외에도 본 발명의 실시예에 따른 로봇제어장치(100)는 다양한 동작을 수행할 수 있으며, 이와 관련한 내용은 앞서 충분히 설명하였으므로 기타 자세한 내용은 앞서의 내용들로 대신하고자 한다.
한편, 본 발명의 실시 예를 구성하는 모든 구성 요소들이 하나로 결합하거나 결합하여 동작하는 것으로 설명되었다고 해서, 본 발명이 반드시 이러한 실시 예에 한정되는 것은 아니다. 즉, 본 발명의 목적 범위 안에서라면, 그 모든 구성 요소들이 하나 이상으로 선택적으로 결합하여 동작할 수도 있다. 또한, 그 모든 구성요소들이 각각 하나의 독립적인 하드웨어로 구현될 수 있지만, 각 구성 요소들의 그 일부 또는 전부가 선택적으로 조합되어 하나 또는 복수 개의 하드웨어에서 조합된 일부 또는 전부의 기능을 수행하는 프로그램 모듈을 갖는 컴퓨터 프로그램으로서 구현될 수도 있다. 그 컴퓨터 프로그램을 구성하는 코드들 및 코드 세그먼트들은 본 발명의 기술 분야의 당업자에 의해 용이하게 추론될 수 있을 것이다. 이러한 컴퓨터 프로그램은 컴퓨터가 읽을 수 있는 비일시적 저장매체(non-transitory computer readable media)에 저장되어 컴퓨터에 의하여 읽혀지고 실행됨으로써, 본 발명의 실시 예를 구현할 수 있다.
여기서 비일시적 판독 가능 기록매체란, 레지스터, 캐시(cache), 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라, 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 구체적으로, 상술한 프로그램들은 CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리 카드, ROM 등과 같은 비일시적 판독가능 기록매체에 저장되어 제공될 수 있다.
이상에서는 본 발명의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 발명은 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 개별적으로 이해되어서는 안 될 것이다.
100, 200: 로봇제어장치 101, 310: 제어부
103: 구동좌표 가변부 105: 좌표 맵핑부
107: 사용자 인터페이스부 110, 210, 210': 로봇장치
111, 211, 211': 모터 드라이버 113: 모터부
201: 로봇 제어기 203: 가상축 제어실행부
205: 축 맵퍼 300: 통신 인터페이스부
320: 가상축 데이터생성부 330: 프로그램 플러그인부
340: 저장부

Claims (8)

  1. 로봇의 링크 및 조인트(joint) 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어하는 제어부; 및
    상기 기구가 구조적으로 변경될 때, 상기 변경된 기구에 상응하도록 상기 기준 제어 데이터를 이용해 상기 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 상기 로봇 구동부로 제공하는 구동좌표 가변부를 포함하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치.
  2. 제1항에 있어서,
    상기 구동좌표 가변부는, 상기 로봇 구동부의 모터를 제어하는 모터 드라이버로 상기 변경된 좌표값을 제공하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치.
  3. 제1항에 있어서,
    상기 구동좌표 가변부는, 상기 기준 제어 데이터가 입력될 때, 상기 변경된 좌표값이 출력되는 좌표 맵핑부를 포함하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치.
  4. 제3항에 있어서,
    상기 좌표 맵핑부는, 플러그인(plug-in) 프로그램의 형태로 지원되는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치.
  5. 제어부가, 로봇의 링크 및 조인트 중 적어도 하나의 기구를 구동시키는 로봇 구동부를 기설정된 기준 제어 데이터에 근거해 제어하는 단계; 및
    구동좌표 가변부가, 상기 기구가 구조적으로 변경될 때, 상기 변경된 기구에 상응하도록 상기 기준 제어 데이터를 이용해 상기 변경전 기구를 가상축으로 하는 변경된 좌표값을 생성해 상기 로봇 구동부로 제공하는 단계;를
    포함하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치의 구동방법.
  6. 제5항에 있어서,
    상기 로봇 구동부로 제공하는 단계는,
    상기 로봇 구동부의 모터를 제어하는 모터 드라이버로 상기 변경된 좌표값을 제공하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치의 구동방법.
  7. 제5항에 있어서,
    상기 로봇 구동부로 제공하는 단계는,
    상기 기준 제어 데이터가 입력될 때, 좌표 맵핑부에서 출력되는 상기 변경된 좌표값을 제공하는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치의 구동방법.
  8. 제7항에 있어서,
    상기 좌표 맵핑부는, 플러그인 프로그램의 형태로 지원되는 것을 특징으로 하는 가상축 인터페이스를 갖는 로봇제어장치의 구동방법.
KR1020190172903A 2019-12-23 2019-12-23 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법 KR102272294B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020190172903A KR102272294B1 (ko) 2019-12-23 2019-12-23 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020190172903A KR102272294B1 (ko) 2019-12-23 2019-12-23 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법

Publications (2)

Publication Number Publication Date
KR20210080868A KR20210080868A (ko) 2021-07-01
KR102272294B1 true KR102272294B1 (ko) 2021-07-02

Family

ID=76860315

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020190172903A KR102272294B1 (ko) 2019-12-23 2019-12-23 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법

Country Status (1)

Country Link
KR (1) KR102272294B1 (ko)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3387589B2 (ja) 1992-12-11 2003-03-17 キヤノン株式会社 ロボットの制御装置
JP6057283B2 (ja) 2012-10-09 2017-01-11 シンフォニアテクノロジー株式会社 多関節ロボット及び半導体ウェハ搬送装置
JP2019042834A (ja) 2017-08-31 2019-03-22 セイコーエプソン株式会社 制御装置およびロボットシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3609435B2 (ja) * 1991-11-25 2005-01-12 株式会社東芝 マニピュレータ装置
KR20070122271A (ko) 2006-06-26 2007-12-31 한국산업기술대학교산학협력단 로봇 자세 제어 시스템 및 로봇 자세 제어 방법
JP4617278B2 (ja) 2006-06-29 2011-01-19 日本電産サンキョー株式会社 産業用ロボット
JP5436460B2 (ja) 2009-02-12 2014-03-05 三菱電機株式会社 産業用ロボットシステム
KR101334007B1 (ko) * 2012-01-12 2013-11-27 의료법인 우리들의료재단 수술용 로봇제어 시스템 및 그 제어방법
CN107848109B (zh) 2015-07-08 2022-03-04 优傲机器人公司 用于利用第三方贡献包扩展工业机器人的最终用户编程的方法
KR20190059366A (ko) * 2017-11-23 2019-05-31 전자부품연구원 로봇의 그리퍼를 제어하기 위한 장치 및 이의 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3387589B2 (ja) 1992-12-11 2003-03-17 キヤノン株式会社 ロボットの制御装置
JP6057283B2 (ja) 2012-10-09 2017-01-11 シンフォニアテクノロジー株式会社 多関節ロボット及び半導体ウェハ搬送装置
JP2019042834A (ja) 2017-08-31 2019-03-22 セイコーエプソン株式会社 制御装置およびロボットシステム

Also Published As

Publication number Publication date
KR20210080868A (ko) 2021-07-01

Similar Documents

Publication Publication Date Title
KR102392114B1 (ko) 유연한 인간-기계 협업을 위한 시스템 및 방법
KR100358038B1 (ko) 로보트 제어장치
US20150273689A1 (en) Robot control device, robot, robotic system, teaching method, and program
KR980008471A (ko) 로봇 장치
JP6925794B2 (ja) コントローラ、作業制御装置、多軸動作制御装置、及び駆動制御装置
JP6696465B2 (ja) コントロールシステム、コントローラ及び制御方法
JP2009028871A (ja) ロボット制御装置
CN112207829A (zh) 机器人的控制方法及装置、可读存储介质
JP5291727B2 (ja) 多軸同期動作機械のプログラム変換モジュール及びプログラム変換方法
KR102476169B1 (ko) 제어 프로그램 생성 장치, 제어 프로그램 생성 방법, 프로그램
US10315305B2 (en) Robot control apparatus which displays operation program including state of additional axis
KR102272294B1 (ko) 가상축 인터페이스를 갖는 로봇제어장치 및 그 장치의 구동방법
Manolescu et al. Design of an assistive low-cost 6 dof robotic arm with gripper
US20230330857A1 (en) Method and System for Programming a Robot
Ily et al. Development of a graphical user interface for a crawler mobile robot servosila engineer
CN114365048B (zh) 数控装置
JP6323685B2 (ja) プログラマブルコントローラ
JP2005219147A (ja) ロボットシステム
COVACIU Control and actuation system of a six degrees of freedom robotic arm
JP7126364B2 (ja) 判定装置、判定方法、及び判定プログラム
JPH03282703A (ja) 汎用ロボット制御装置
WO2022269927A1 (ja) プログラム作成装置
WO2023145362A1 (ja) ロボット制御システムおよびロボット制御システムを構成する方法
US20220171372A1 (en) Information processing device, information processing method, and non-transitory computer readable medium
WO2023053174A1 (ja) ロボットシステム、ロボット装置、ロボットコントローラ、エンドエフェクタおよびエンドエフェクタの制御方法

Legal Events

Date Code Title Description
GRNT Written decision to grant