KR20180090623A - 스킬 기반 로봇 프로그래밍 장치 및 방법 - Google Patents

스킬 기반 로봇 프로그래밍 장치 및 방법 Download PDF

Info

Publication number
KR20180090623A
KR20180090623A KR1020170015715A KR20170015715A KR20180090623A KR 20180090623 A KR20180090623 A KR 20180090623A KR 1020170015715 A KR1020170015715 A KR 1020170015715A KR 20170015715 A KR20170015715 A KR 20170015715A KR 20180090623 A KR20180090623 A KR 20180090623A
Authority
KR
South Korea
Prior art keywords
work cell
skill
user
item
robot
Prior art date
Application number
KR1020170015715A
Other languages
English (en)
Other versions
KR102012073B1 (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 KR1020170015715A priority Critical patent/KR102012073B1/ko
Priority to PCT/KR2018/001095 priority patent/WO2018143607A1/ko
Priority to US16/483,220 priority patent/US20200230817A1/en
Priority to EP18747436.6A priority patent/EP3579100A4/en
Publication of KR20180090623A publication Critical patent/KR20180090623A/ko
Application granted granted Critical
Publication of KR102012073B1 publication Critical patent/KR102012073B1/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/1656Programme controls characterised by programming, planning systems for manipulators
    • B25J9/1669Programme controls characterised by programming, planning systems for manipulators characterised by special application, e.g. multi-arm co-operation, assembly, grasping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/0081Programme-controlled manipulators with master teach-in means
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • 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/1658Programme controls characterised by programming, planning systems for manipulators characterised by programming language
    • 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/1661Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39244Generic motion control operations, primitive skills each for special task
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/39Robotics, robotics to robotics hand
    • G05B2219/39547Program, plan gripping force, range and speed

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • Numerical Control (AREA)
  • Manipulator (AREA)

Abstract

사용자가 로봇이 수행하여야 할 작업을 손쉽게 프로그래밍할 수 있도록 사용자 입력 정보를 기반으로 필요한 스킬 및 태스크 템플릿을 제공하는 스킬 기반 로봇 프로그래밍 장치 및 방법에 관한 것으로, 로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템 및 상기 워크셀 아이템을 구동하는 명령어의 집합인 마스터 스킬(skill)을 저장하는 마스터 DB, 상기 마스터 DB에 저장된 워크셀 아이템 중 사용할 워크셀 아이템을 선택하고, 선택된 워크셀 아이템의 파라미터를 입력하는 워크셀 매니저, 상기 선택된 워크셀 아이템과 관련이 있는 마스터 스킬을 상기 마스터 DB로부터 조회하고, 상기 조회된 마스터 스킬에 상기 선택된 워크셀 아이템의 파라미터 중에서 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성하는 워크셀 엔진, 상기 선택된 워크셀 아이템 및 상기 유저 스킬을 저장하는 유저 DB, 및 상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 태스크 빌더를 포함하는 스킬 기반 로봇 프로그래밍 장치가 개시된다.
본 발명에 의하면 사용자에 의한 로봇 프로그래밍 작업을 쉽고 빠르게 완료할 수 있도록 하여 주는 효과가 있다.

Description

스킬 기반 로봇 프로그래밍 장치 및 방법{Method and Apparatus for Programming Robot based on Skill}
본 발명은 로봇이 특정 작업을 수행하도록 하는 프로그램을 생성하기 위한 스킬 기반 로봇 프로그래밍 장치 및 방법에 관한 것으로, 보다 상세하게는 사용자가 로봇이 수행하여야 할 작업을 손쉽게 프로그래밍할 수 있도록 사용자 입력 정보를 기반으로 필요한 스킬 및 태스크 템플릿을 제공하는 스킬 기반 로봇 프로그래밍 장치 및 방법에 관한 것이다.
산업 현장에서 로봇에 의한 제품의 조립 및 제작이 점차 증가하여 가는 추세에 있고, 이로 인해 로봇을 제어하는 시스템에서도 점차 그 기능이 다양화 및 고도화되어 가고 있는 실정이다.
이러한 로봇 제어 환경에서 로봇이 사용자가 원하는 작업을 수행하도록 하기 위하여 로봇을 프로그래밍하는 다양한 기술들이 제시되어 왔으며, 로봇이 이해할 수 있는 기계어나 c 또는 c++과 같은 low-level 언어를 사용하여 프로그램을 코딩하는 종래의 방식은 일반 사용자 입장에서는 로봇 프로그래밍을 거의 불가능하게 만들었다.
본 발명은 일반 사용자가 로봇이 수행하여야 할 작업을 손쉽게 프로그래밍할 수 있도록 사용자 입력 정보를 기반으로 필요한 스킬 및 태스크 템플릿을 제공하는 스킬 기반 로봇 프로그래밍 장치 및 방법을 제공한다.
전술한 과제를 해결하기 위한 본 발명의 일 실시예에 따른 로봇을 프로그래밍하기 위한 스킬 기반 로봇 프로그래밍 장치는 로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템 및 상기 워크셀 아이템을 구동하는 명령어의 집합인 마스터 스킬(skill)을 저장하는 마스터 DB, 상기 마스터 DB에 저장된 워크셀 아이템 중 사용할 워크셀 아이템을 선택하고, 선택된 워크셀 아이템의 파라미터를 입력하는 워크셀 매니저, 상기 선택된 워크셀 아이템과 관련이 있는 마스터 스킬을 상기 마스터 DB로부터 조회하고, 상기 조회된 마스터 스킬에 상기 선택된 워크셀 아이템의 파라미터 중에서 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성하는 워크셀 엔진, 상기 선택된 워크셀 아이템 및 상기 유저 스킬을 저장하는 유저 DB, 및 상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 태스크 빌더를 포함할 수 있다.
이에 더하여 스킬 기반 로봇 프로그래밍 장치는 로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템을 등록하고 상기 마스터 DB에 저장하는 워크셀 레지스터 및 상기 마스터 DB에 저장된 워크셀 아이템을 이용하여 마스터 스킬(skill)을 생성하거나 편집하고, 상기 마스터 DB에 저장하는 스킬 레지스터를 더 포함할 수 있다. 여기서, 상기 워크셀 아이템의 관련 파라미터는 워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 각 지점들의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 어느 하나를 포함하며, 상기 파라미터의 항목은 워크셀 레지스터에 의해 설정되고, 상기 파라미터의 값에 대한 입력은 워크셀 레지스터, 워크셀 매니저 및 태스크 빌더 중 적어도 어느 하나에 의해 수행될 수 있다.
그리고 상기 워크셀 매니저는 사용자가 사용할 워크셀 아이템을 선택할 수 있도록 하기 위하여, 상기 마스터 DB에 저장된 워크셀 아이템을 조회하고, 사용자가 사용할 워크셀 아이템을 선택하는 경우, 상기 선택된 워크셀 아이템의 파라미터를 입력할 수 있도록 하는 화면을 제공할 수 있고, 상기 워크셀 엔진은 상기 마스터 DB에 저장된 마스터 스킬 중에서 상기 선택된 워크셀 아이템과 관련된 마스터 스킬을 조회하고, 상기 선택된 워크셀 아이템의 파라미터 중에서 적어도 일부의 파라미터를 상기 조회된 마스터 스킬에 제공하여 유저 스킬을 생성하는 스킬 엔진 및 상기 유저 DB에 저장된 워크셀 아이템과 유저 스킬을 기반으로 유저 스킬의 집합체인 태스크 템플릿을 생성하고 추천하는 템플릿 엔진을 포함할 수 있고, 상기 태스크 빌더는 상기 워크셀 엔진에 의해 생성되고 추천된 유저 스킬 및 태스크 템플릿을 제공받으며, 사용자는 상기 제공된 태스크 템플릿 중의 하나를 선택하여 그대로 사용하거나, 또는 상기 제공된 태스크 템플릿을 이용하지 않고 상기 제공된 유저 스킬을 조합하거나, 또는 상기 제공된 태스크 템플 중의 하나를 선택하고, 선택한 태스크 템플릿에 유저 스킬을 추가, 또는 선택한 태스크 템플릿에 포함되어 있는 유저 스킬을 삭제, 교환, 변경하여 태스크를 생성할 수 있다. 또한 상기 태스크 빌더는 하나 이상의 유저 스킬을 작업순서대로 조합하고, 상기 하나 이상의 유저 스킬을 수행할 때 요구되는 작동 주체인 로봇의 위치 정보 및 자세 정보를 직접 교시 또는 간접 교시로 교시 받아 태스크를 생성할 수 있다.
그리고 상기 워크셀 엔진은 워크셀 아이템의 파라미터를 활용하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 제공하는 패스 엔진을 더 포함하고, 상기 패스 엔진은 상기 선택된 워크셀 아이템의 파라미터를 불러 들이며, 상기 파라미터는 상기 선택된 워크셀 아이템의 기준점 정보와 상기 기준점을 기준으로 하는 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점에서의 위치 정보 및 자세 정보를 포함하고, 직접교시 또는 간접교시를 통해 작동 주체인 로봇과 상기 선택된 워크셀 아이템의 기준점 간의 위치를 측정함으로써, 상기 로봇과 상기 선택된 워크셀 아이템의 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점 간의 상대적인 위치 정보와 자세 정보를 계산하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성할 수 있다.
전술한 과제를 해결하기 위한 본 발명의 또 다른 일 실시예에 따른 로봇을 프로그래밍하기 위한 스킬 기반 로봇 프로그래밍 장치를 이용한 스킬 기반 로봇 프로그래밍 방법은 로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템 중 사용할 워크셀 아이템을 설정하는 단계, 상기 설정된 워크셀 아이템을 바탕으로 유저 스킬을 생성하는 단계, 및 상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 단계를 포함할 수 있다.
좀 더 상세히 살펴보면, 상기 사용할 워크셀 아이템을 설정하는 단계는 마스터 DB에 저장된 워크셀 아이템을 검색하고, 검색된 워크셀 아이템 중 사용할 워크셀 아이템을 선택하는 단계, 상기 선택된 워크셀 아이템의 파라미터를 입력하는 단계, 및 상기 선택된 워크셀 아이템 및 입력된 파라미터를 유저 DB에 저장하는 단계를 포함할 수 있고, 부가적으로 상기 선택된 워크셀 아이템의 작동을 시험하는 단계를 더 포함할 수 있다. 이에 더하여 상기 유저 DB에 저장된 워크셀 아이템 및 유저 스킬을 바탕으로 사용자의 로봇 프로그래밍 시에 추천할 수 있는 태스크 템플릿을 생성하는 단계를 더 포함할 수 있다.
그리고, 상기 사용할 워크셀 아이템 설정을 바탕으로 유저 스킬을 생성하는 단계는 설정된 상기 워크셀 아이템과 관련된 마스터 스킬을 마스터 DB에서 조회하는 단계 및 설정된 상기 워크셀 아이템의 파라미터 중 적어도 하나를 상기 워크셀 아이템과 관련된 마스터 스킬에 적용하여 유저 스킬을 생성하는 단계를 포함하는데, 여기서 상기 선택된 워크셀 아이템의 파라미터는 워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 및 각 지점에서의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 하나를 포함할 수 있다.
또한, 상기 선택된 워크셀 아이템의 파라미터는 기준점과 상기 기준점을 기준으로 하는 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나를 포함하고, 상기 선택된 워크셀 아이템의 파라미터를 입력하는 단계는 직접 교시 또는 간접 교시를 통해 작동 주체인 로봇과 상기 선택된 워크셀 아이템의 기준점 간의 위치를 측정하여 상기 기준점의 위치 정보를 설정하는 단계 및 패스 엔진에 의하여 설정된 상기 기준점의 위치 정보를 바탕으로 상기 로봇과 상기 선택된 워크셀 아이템의 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나의 점 간의 상대적인 위치 정보와 자세 정보를 계산하여 상기 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나의 점과 상기 로봇과의 상대적인 위치 정보와 자세 정보를 설정하는 단계를 포함하고, 상기 선택된 워크셀 아이템을 바탕으로 유저 스킬을 생성하는 단계는 설정된 상기 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나의 점과 상기 로봇과의 상대적인 위치 정보와 자세 정보를 바탕으로 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성하는 단계를 포함할 수 있다.
그리고 상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 단계는 상기 제공된 태스크 템플릿 중의 하나를 선택하여 그대로 사용하거나, 또는 상기 제공된 태스크 템플릿을 이용하지 않고 상기 제공된 유저 스킬을 조합하거나, 또는 상기 제공된 태스크 템플릿 중의 하나를 선택하고, 선택한 태스크 템플릿에 유저 스킬을 추가, 또는 선택한 태스크 템플릿에 포함되어 있는 유저 스킬을 삭제, 교환, 변경하여 태스크를 생성하는 단계를 포함할 수 있고, 여기서 상기 태스크는 복수 개의 유저 스킬을 작업 순서대로 배치하여 구성된 것일 수 있다.
그리고 상술한 로봇 프로그래밍 방법은 컴퓨터 판독 가능 기록매체에 컴퓨터 프로그램 형태로 저장되고 컴퓨터에서 실행될 수 있다.
본 발명에 따른 로봇 프로그래밍 장치 및 방법에 따르면,
첫째, 객체화한 로봇 및 로봇과 협업하는 주변 장치들로 구성된 워크셀 아이템 및 관련 파라미터들을 바탕으로 프로그래밍의 최소 단위인 스킬을 구성할 수 있고,
둘째, 사용자가 마스터 DB에서 작업 내용 실현에 필요한 워크셀 아이템을 선택하면, 선택된 워크셀 아이템을 바탕으로 사용할 수 있는 스킬과 태스크 템플릿을 추천하여 사용자가 쉽게 로봇을 프로그래밍할 수 있게 도울 수 있고,
셋째, 사용자가 low level 언어 전문가가 아니더라도 스킬의 배치와 간단한 교시만으로도 사용자가 로봇을 프로그래밍할 수 있게 할 수 있고,
넷째, 기존에 프로그래밍되어 있던 로봇 작업을 바탕으로 약간의 변경만으로 새로운 로봇 작업을 생성할 수 있도록 하는 효과가 있다.
도 1은 본 발명의 일 실시예에 따른 로봇 프로그래밍 장치의 주요 구성을 간략하게 도시한 블록도이다.
도 2는 스킬 레지스터(200)에 의해 생성된 마스터 스킬의 일 예를 도시한 도면이다.
도 3은 본 발명의 일 실시 예에 따른 워크셀 매니저(300)가 실제 사용될 워크셀 아이템과 관련 파라미터들을 유저 DB(700)의 워크셀 DB에 저장하기 위한 순서도를 도시한 도면이다.
도 4a 내지 도 4h는 본 발명의 일 실시 예에 따른 사용자가 워크셀 아이템을 선택하고, 선택한 워크셀 아이템 관련 파라미터 항목들을 입력하도록 디스플레이(800)에 화면을 표시하는 워크셀 매니저(300)를 도시한 도면이다.
도 5는 본 발명의 일 실시 예에 따른 스킬 엔진의 동작을 간략하게 도시한 순서도이다.
도 6은 스킬 엔진이 자동으로 유저 스킬을 생성하는 일 실시 예를 도시한 도면이다.
도 7은 본 발명의 일 실시 예에 따른 CNC(430)에서의 패스 엔진의 기능을 도시한 도면이다.
도 8은 본 발명의 일 실시 예에 따른 태스크 빌더(500)가 태스크를 생성하는 과정을 도시한 도면이다.
도 9는 태스크 빌더(Task Builder; 500)에서 템플릿 엔진에 의하여 추천된 태스크 템플릿의 예시를 도시한 도면이다.
도 10은 본 발명의 일 실시 예에 따른 스킬 기반 로봇 프로그래밍 방법을 보여주는 흐름도이다.
도 11은 본 발명의 일 실시 예에 따른 스킬 기반 로봇 프로그래밍 장치가 사용할 워크셀 아이템을 설정하기 위한 흐름도를 도시한 도면이다.
본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 동일 또는 유사한 구성요소에 대해서는 동일한 참조 부호를 붙이도록 한다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미한다.
어느 부분이 다른 부분의 "위에" 있다고 언급하는 경우, 이는 바로 다른 부분의 위에 있을 수 있거나 그 사이에 다른 부분이 수반될 수 있다. 대조적으로 어느 부분이 다른 부분의 "바로 위에" 있다고 언급하는 경우, 그 사이에 다른 부분이 수반되지 않는다.
제1, 제2 및 제3 등의 용어들은 다양한 부분, 성분, 영역, 층 및/또는 섹션들을 설명하기 위해 사용되나 이들에 한정되지 않는다. 이들 용어들은 어느 부분, 성분, 영역, 층 또는 섹션을 다른 부분, 성분, 영역, 층 또는 섹션과 구별하기 위해서만 사용된다. 따라서, 이하에서 서술하는 제1 부분, 성분, 영역, 층 또는 섹션은 본 발명의 범위를 벗어나지 않는 범위 내에서 제2 부분, 성분, 영역, 층 또는 섹션으로 언급될 수 있다.
여기서 사용되는 전문 용어는 단지 특정 실시예를 언급하기 위한 것이며, 본 발명을 한정하는 것을 의도하지 않는다. 여기서 사용되는 단수 형태들은 문구들이 이와 명백히 반대의 의미를 나타내지 않는 한 복수 형태들도 포함한다. 명세서에서 사용되는 "포함하는"의 의미는 특정 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분을 구체화하며, 다른 특성, 영역, 정수, 단계, 동작, 요소 및/또는 성분의 존재나 부가를 제외시키는 것은 아니다.
"아래", "위" 등의 상대적인 공간을 나타내는 용어는 도면에서 도시된 한 부분의 다른 부분에 대한 관계를 보다 쉽게 설명하기 위해 사용될 수 있다. 이러한 용어들은 도면에서 의도한 의미와 함께 사용 중인 장치의 다른 의미나 동작을 포함하도록 의도된다. 예를 들면, 도면 중의 장치를 뒤집으면, 다른 부분들의 "아래"에 있는 것으로 설명된 어느 부분들은 다른 부분들의 "위"에 있는 것으로 설명된다. 따라서 "아래"라는 예시적인 용어는 위와 아래 방향을 전부 포함한다. 장치는 90˚ 회전 또는 다른 각도로 회전할 수 있고, 상대적인 공간을 나타내는 용어도 이에 따라서 해석된다.
다르게 정의하지는 않았지만, 여기에 사용되는 기술용어 및 과학용어를 포함하는 모든 용어들은 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 일반적으로 이해하는 의미와 동일한 의미를 가진다. 보통 사용되는 사전에 정의된 용어들은 관련 기술문헌과 현재 개시된 내용에 부합하는 의미를 가지는 것으로 추가 해석되고, 정의되지 않는 한 이상적이거나 매우 공식적인 의미로 해석되지 않는다.
하기에서 언급되는 수평방향은 땅과 평행한 방향 수직방향은 상기 수평방향에 수직인 방향을 의미한다. 그리고 하단은 설치되었을 때 밑으로 가는 부분으로 상단은 설치되었을 때 위로 가는 부분을 의미한다.
이하, 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시 예에 한정되지 않는다.
본 발명에 대하여 상세히 설명하기 전에 먼저 핵심 용어들에 대하여 정의한다.
워크셀(work cell)은 일반적으로 공정의 흐름을 개선하고, 효율성을 높이며, 낭비를 없애기 위해 조직된 논리적이고 전략적인 자원 배치를 지칭할 수 있으며 본 발명은 워크셀에 배치되어 있는 로봇의 동작을 프로그래밍하기 위한 장치 및 방법을 제시하는 것이다.
워크셀에는 다양한 자원들이 배치될 수 있는데 본 발명에서는 이러한 자원을 워크셀 아이템(work cell item)으로 칭할 수 있다. 로봇 자체도 하나의 워크셀 아이템이 될 수 있을 뿐만 아니라 로봇과 협업하는 주변 장치들 각각도 하나의 워크셀 아이템이 될 수 있다. 후술하겠지만 워크셀 아이템은 파라미터들을 내재하고 있을 수 있으며, 워크셀 아이템은 내재된 관련 파라미터와 함께 마스터 DB 및/또는 유저 DB의 워크셀 DB에 저장될 수 있다.
그리고 워크셀 아이템이 될 수 있는 주변 장치는 로봇의 동작에 영향을 미치는 방법에 따라 하기 5가지 종류로 구분될 수 있다.
첫번째 종류는 엔드이펙터(End Effector)로 로봇의 말단에 붙어 후술한 부품(Part)의 위치나 상태를 변화시킬 수 있는 워크셀 아이템이며, 중심점인 TCP(Tool Center Point)를 기준으로 로봇의 자세나 위치가 변화될 수 있다. 그리퍼(Gripper), 글루잉 툴(Gluing Tool), 스크류 드라이버(Screw Driver)와 같은 주변 장치가 여기에 속할 수 있다.
두번째 종류는 피더(Feeder)로 엔드이펙터가 대상 작업물을 집거나 완료된 대상 작업물을 위치시킬 수 있는 워크셀 아이템이며, 기준점, 대상 작업물을 집을 위치를 나타내는 피킹(picking)점, 작업이 완료된 작업물을 놓을 위치를 나타내는 플레이싱(placing)점, 피더 접근점 등이 파라미터로 마스터 DB 및/또는 유저 DB의 워크셀 DB에 함께 저장될 수 있다. 팔레트(pallet)나 컨베이어(conveyor)가 피더에 속할 수 있다.
세번째 종류는 디바이스(device)로 로봇이 엔드이펙터를 통해 후술할 부품과 상호작용하는 워크셀 아이템이며, 기준점, 동작점, 접근점 등이 파라미터로 마스터 DB 및/또는 유저 DB의 워크셀 DB에 함께 저장될 수 있다. CNC, 공작기계, 기계 툴(machine tool), 프레스(press), 공기분사기(air blowing) 등이 디바이스에 속할 수 있다.
네번째 종류는 부품(part)으로, 로봇의 작업 대상물이 되는 것, 즉, 엔드이펙터가 집어서 옮기거나 할 수 있는 대상물로서 부피나 높이 등이 파라미터로 마스터 DB 및/또는 유저 DB의 워크셀 DB에 함께 저장될 수 있다. 피더나 디바이스와도 상호작용하며 관련된 파라미터에 의해 엔드이펙터의 동작이 영향을 받을 수 있다.
다섯번째 종류는 센서(sensor)로, 로봇의 동작을 모니터링할 수 있고, 그 모니터링 결과가 로봇의 동작에 영향을 미칠 수 있는 워크셀 아이템들이다. 근접(proximity) 센서, 비젼(vision) 센서 등이 속할 수 있다.
상술한 워크셀 아이템들은 유사한 것들 끼리 모아서 하나의 카테고리로 규정할 수 있다. 일 실시 예로서 상술한 다섯 종류의 워크셀 아이템은 각각이 하나의 카테고리로 규정할 수 있다. 이에 더하여 디바이스의 경우에는 기계(machine), 주변기(peripheral), 장비(equipment) 등의 좀 더 세분화된 카테고리로 규정할 수도 있다.
다음 표 1은 워크셀 아이템 및 관련 파라미터의 일 예를 보여주는 것이다.
대분류 중분류 제조사 모델명 명령어 출력
공압그리퍼 3 Jaw Schunk PZN 80 Grasp
Release
Fail
Grasp Ind.
Release Ind.
2 Jaw SMC MHZ2-32D Grasp
Release
Fail
Grasp Ind.
Release Ind.
전기그리퍼 2 Jaw SMC LEHZ32K2-22-R51P1 Grasp#1
Grasp#2
Grasp#3
Release
Grasp#1 Ind.
Grasp#2 Ind.
Grasp#3 Ind.
Release Ind.
스크류 드라이버 전기식 제어기 Atals Copco Power Focus Torque OK
Torque NOT
Tool On
Gluing Tool 공압식 밸브 이노하이텍 IHV-2000 Tool On
Tool Off
스킬(skill)은 마스터 DB 및/또는 유저 DB의 워크셀 DB에 저장되어 있는 워크셀 아이템을 구동하는 명령어의 집합으로 사용자가 로봇 동작 프로그래밍 시에 사용할 수 있는 최소 단위이다. 좀 더 상세히 설명하면 워크셀 아이템은 내재된 관련 파라미터와 함께 마스터 DB 및/또는 유저 DB의 워크셀 DB에 함께 저장될 수 있고, 스킬은 특정 작업을 수행하기 위하여 워크셀 아이템의 명령어의 조합에 워크셀 아이템의 진행 경로와 관련된 파라미터를 적용하여 만든 것일 수 있다. 일 예로 그리퍼의 그리핑 기능, CNC 문열기(door open)/문닫기(door close), 피킹(picking), 플레이싱(placing) 등이 각각 하나의 스킬로서 정의될 수 있다.
태스크(task)는 로봇이 수행하여야 할 작업을 나타내고, 태스크는 복수 개의 스킬을 작업 순서대로 배치하여 구성할 수 있다. 즉, 태스크는 복수 개의 스킬을 작업 순서대로 나열한 집합체일 수 있다. 일 실시 예로서 로봇이 CNC를 돕는 보조작업을 수행하는 경우 각각이 하나의 스킬인 '팔레트 집기,' '문열기,' '작업물 놓기,' '문닫기,' 작업물 집기,' 및 '팔레트에 놓기'를 로봇이 하는 작업의 순서대로 나열함으로써 하나의 태스크를 구성할 수 있다.
도 1은 본 발명의 일 실시예에 따른 로봇 프로그래밍 장치의 주요 구성을 간략하게 도시한 블록도이다.
도 1을 참조하면, 본 발명의 일 실시 예에 따른 로봇 프로그래밍 장치는 워크셀 레지스터(100), 스킬 레지스터(200), 워크셀 매니저(300), 워크셀 엔진(400), 태스크 빌더(500), 마스터 DB(600), 및 유저 DB(700)를 포함할 수 있다.
여기서, 마스터 DB(600)와 유저 DB(700)는 워크셀 DB와 스킬 DB로 구성될 수 있고 워크셀 DB에는 상술한 워크셀 아이템과 워크셀 아이템에 내재하는 관련 파라미터들이 저장될 수 있고, 스킬 DB에는 상술한 스킬이 저장될 수 있다. 또한, 마스터 DB(600)와 유저 DB(700)는 별도의 구성으로 표시하였지만 하나의 하드웨어에서 하나의 DB를 나누어서 구성할 수도 있다. 마찬가지로, 워크셀 DB와 스킬 DB는 하나의 DB로 구성할 수도 있다.
이에 더하여 사용자와 로봇 프로그래밍 장치 간의 인터페이스를 제공하는 디스플레이(800)와 입력장치(900)를 추가로 구비할 수 있다. 디스플레이(800)는 컴퓨터와 연결된 LCD 모니터, 티칭 팬던트(teaching pendant) 화면, 스마트폰과 같은 이동 기기의 화면이 될 수 있고, 입력장치(900)는 키보드, 마우스, 터치 스크린 등이 될 수 있다. 또한, 터치 스크린 화면처럼 디스플레이(800)와 입력장치(900)가 하나의 장치에 같이 있을 수 있다.
워크셀 레지스터(100)는 전문가에 의해 워크셀 아이템과 관련 파라미터를 등록하도록 할 수 있는 장치이다. 좀 더 상세하게는, 워크셀 레지스터(100)는 워크셀 아이템과 워크셀 아이템에 내재된 파라미터 항목을 등록할 수 있다. 물론, 파라미터 항목 중 적어도 일부의 내용도 기재함으로써 파라미터를 설정할 수도 있다. 워크셀 아이템과 관련된 파라미터 항목은 복수 개일 수 있는데, 워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 각 지점들의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 어느 하나가 파라미터의 항목으로 포함될 수 있다. 워크셀 레지스터(100)는 워크셀 아이템 및 관련 파라미터 항목을 등록할 수 있고, 이에 더하여 파라미터 항목의 일부 또는 전부에 대하여 각 항목의 값을 추가로 등록할 수 있다. 워크셀 레지스터(100)를 통해 등록된 워크셀 아이템과 관련 파라미터는 마스터 DB(600)의 워크셀 DB에 저장될 수 있다. 워크셀 레지스터(100)를 통한 워크셀 아이템 등록은 워크셀 아이템 제조사 또는 전문가에 의해 수행될 수 있다. 즉, 본 발명에서 제시하는 로봇 프로그래밍 장치의 사용자보다는 등록할 워크셀 아이템(주변 장치 또는 로봇)에 관하여 상당한 지식을 가지고 있는 전문가에 의하여 워크셀 아이템과 관련 파라미터의 등록이 수행될 수 있다. 워크셀 아이템과 관련 파라미터 항목, 및 추가적으로 각 파라미터 항목의 값을 같이 등록하여야 하므로 워크셀 아이템과 관련된 전문 지식이 필요하기 때문이다.
로봇 자체도 워크셀 아이템으로 워크셀 레지스터(100)를 통해 등록될 수 있다. 또한 로봇 구조 및 특성이 다른 경우에는, 서로 다른 로봇을 별도로 등록하여 마스터 DB(600)의 워크셀 DB에 따로 저장할 수 있다. 즉, 회사에서 출고하는 제품명이 다른 로봇들을 각각 별개로 워크셀 레지스터(100)를 통해 등록하여 마스터 DB(600)의 워크셀 DB에 서로 다른 워크셀 아이템으로 저장할 수 있다.
또한, 워크셀 레지스터(100)에 의한 워크셀 아이템의 등록은 제조사로부터 획득한 제품 관련 매뉴얼을 바탕으로 이루어질 수 있다. 즉, 각 워크셀 아이템의 서지 정보, 사양정보, 작업 가능 조건, 명령어, 회피점, 목표점, 최적경로, 연결방식, 및/또는 출력정보 등의 파라미터 항목 및/또는 각 파라미터 항목의 값을 매뉴얼에서 추출하여 마스터 DB(600)의 워크셀 DB에 저장할 수 있다.
스킬 레지스터(200)는 마스터 DB(600)의 워크셀 DB에 저장된 워크셀 아이템을 구동하기 위한 명령어의 조합인 스킬을 생성하고 편집하여 등록하는 장치이다. 이때에 생성되는 스킬을 후에 설명할 유저 스킬과 구별하여 마스터 스킬로 칭할 수 있다.
도 2는 스킬 레지스터(200)에 의해 생성된 마스터 스킬의 일 예를 도시한 도면이다.
도 2를 참조하면 Pick이라는 스킬은 MoveJ(210), 'Gripper:Release(220)', MoveL(230), 'Gripper:Grasp(240)', MoveL(250)의 명령순서에 따라서 피킹을 수행하는 스킬일 수 있다. MoveJ(210) 및 MoveL(230, 250)은 로봇의 이동 명령일 수 있으며, 'Gripper:Release(220)'와 'Gripper:Grasp(240)'는 로봇의 엔드이펙터인 그리퍼를 벌리거나 닫게 하는 명령일 수 있다. 즉, 작업 대상물을 피킹하기 위하여 작업 대상물이 있는 위치로 가서 그리퍼를 벌렸다가 닫음으로써 작업 대상물을 피킹하게 되는 것이다. 이처럼 워크셀 아이템에 대한 기계어 명령어를 이용하여 로봇 프로그래밍을 하는 경우에는 사용자가 상당한 어려움을 느낄 수 있지만 이를 통합하여 사용자가 인지하기 쉬운 이름을 부여한 스킬을 사용함으로써 사용자는 로봇을 직접 제어할 수 있는 기계어에 대한 지식 없이도 쉽게 프로그래밍 할 수 있다.
스킬 레지스터(200)에 의하여 생성되고 편집된 마스터 스킬은 마스터 DB(600)의 스킬 DB에 저장될 수 있다.
이러한 스킬 레지스터(200)를 이용하여 다양한 마스터 스킬을 생성하고 편집하는 것은 로봇 제조사에서 로봇 프로그래밍 전문가에 의해 미리 수행될 수 있다. 즉, 로봇 프로그래밍 전문가는 마스터 DB(600)의 워크셀 DB에 저장되어 있는 다양한 워크셀 아이템들을 구동할 수 있는 다양한 마스터 스킬들을 생성하고 편집하여 마스터 DB(600)의 스킬 DB에 저장할 수 있다.
상술한 바처럼 본 발명에서 제시하는 로봇 프로그래밍 장치의 워크셀 레지스터(100)와 스킬 레지스터(200)는 로봇 프로그래밍 장치의 사용자보다는 제조사에서 다양한 로봇과 다양한 주변 장치를 워크셀 아이템으로 등록하고, 등록된 워크셀 아이템의 명령어를 바탕으로 마스터 스킬을 등록하는데 일반적으로 사용될 수 있다. 워크셀 레지스터(100)와 스킬 레지스터(200)에 의해 등록된 워크셀 아이템과 마스터 스킬은 마스터 DB(600)에 저장될 수 있다. 그리고 사용자는 마스터 DB(600)에 기 저장되어 있는 워크셀 아이템과 마스터 스킬들을 이용하여 쉽게 로봇을 프로그래밍할 수 있다. 그러므로 워크셀 레지스터(100)와 스킬 레지스터(200)는 로봇 프로그래밍 장치의 사용자 입장에서는 로봇 프로그래밍 시에는 필요하지 않은 부가적인 모듈일 수 있다.
상술한 바처럼 마스터 DB(600)에는 다양한 종류의 워크셀 아이템과 마스터 스킬이 저장되어 있을 수 있다. 마스터 DB(600)에 저장되어 있는 워크셀 아이템과 마스터 스킬은 제조사가 서로 다른 워크셀 아이템을 다양하게 사용하는 복수의 사용자들을 고려하여 등록하고 저장한 것이기에 특정 사용자가 실제 사용하지 않는 워크셀 아이템과 스킬을 부가적으로 포함할 수도 있다.
워크셀 매니저(300)는 사용자가 실제 사용하는 워크셀에서의 로봇의 동작을 프로그래밍하기 위한 워크셀 아이템의 파라미터 값을 설정할 수 있다. 워크셀 매니저(300)는 마스터 DB(600)에 저장된 워크셀 아이템 중 사용자가 사용할 워크셀 아이템을 선택할 수 있도록 하기 위하여 마스터 DB(600)에 저장된 워크셀 아이템을 조회하여 디스플레이(800) 화면에 표시하고, 사용자가 사용할 워크셀 아이템을 선택하는 경우, 선택된 워크셀 아이템의 파라미터 항목에 대한 값을 입력할 수 있도록 하는 화면을 제공하여 선택된 워크셀 아이템의 파라미터를 설정할 수 있다.
이때 워크셀 매니저(300)는 사용자의 작업 내용을 수행하기에 적합한 워크셀 아이템을 사용자에게 추천하여 사용자가 선택할 수 있도록 하거나, 또는 마스터 DB(600)에 저장되어 있는 모든 워크셀 아이템을 사용자에게 알려주고 사용자가 그 중에서 선택하도록 할 수 있다.
워크셀 매니저(300)는 선택한 워크셀 아이템 관련 파라미터 값들을 입력받고 유저 DB(700)의 워크셀 DB에 저장될 수 있다. 즉, 워크셀 매니저(300)는 마스터 DB(600)로부터 워크셀 아이템 관련 데이터를 읽어 올 수 있을 뿐 마스터 DB(600)의 데이터를 변경할 수는 없다. 워크셀 매니저(300)에 의해 설정된 워크셀 아이템은 마스터 DB(600)가 아닌 유저 DB(700)에 저장될 수 있다.
도 3은 본 발명의 일 실시 예에 따른 워크셀 매니저(300)가 실제 사용될 워크셀 아이템과 관련 파라미터들을 유저 DB(700)의 워크셀 DB에 저장하기 위한 순서도를 도시한 도면이다.
도 3을 참조하면, 워크셀 매니저(300)는 마스터 DB(600)에 저장되어 있는 워크셀 아이템을 검색하고, 필요한 워크셀 아이템을 선택(S310)할 수 있다. 즉, 워크셀 매니저(300)는 마스터 DB(600)에 저장되어 있는 워크셀 아이템들을 디스플레이(800) 화면에 보여줄 수 있다. 이때, 도구(Tool), 주변기(Peripheral), 기계(Machine) 등과 같이 카테고리 별로 구분하여 보여줄 수 있다.
사용자는 워크셀 매니저(300)가 디스플레이(800)의 화면에 표시한 워크셀 아이템들 중에서 프로그래밍하고자 하는 로봇 작업 내용을 위해 필요한 워크셀 아이템을 선택할 수 있다. 그리고 로봇 작업 환경에 맞게 선택된 워크셀 아이템 관련 파라미터를 설정(S320)할 수 있다. 즉, 워크셀 레지스터(100)는 워크셀 아이템과 관련 파라미터 항목을 등록하여 함께 마스터 DB(600)에 저장할 수 있고, 워크셀 매니저(300)에서는 워크셀 아이템 관련 파라미터 항목의 값을 입력하여 설정할 수 있다. 이때 선택된 워크셀 아이템 관련해 모든 파라미터 항목에 대하여 값을 설정할 수도 있고 또는 일부 파라미터 항목에 대하여는 워크셀 레지스터(100)를 통해 입력되어 설정된 값을 그대로 사용하고 다른 일부 파라미터 항목에 대하여만 값을 설정할 수 있다.
이렇게 하나의 워크셀 아이템을 선택하고, 선택된 워크셀 아이템의 관련 파라미터를 설정하고 난 뒤에는 워크셀 아이템의 작동 시험(S330)을 할 수 있다. 즉, 설정된 파라미터가 작업 환경에 맞게 설정되었는지 확인할 수 있고, 설정된 입/출력 포트에 맞추어서 명령이 실행되는 지를 확인할 수 있다. 시험에 의하여 원하는 대로 올바르게 작동하지 않으면 앞의 단계로 돌아가 설정을 수정할 수 있으며, 원하는 대로 올바르게 작동하면 설정된 워크셀 아이템을 유저 DB(700)에 저장(S340)할 수 있다. 상술한 워크셀 매니저(300)에서 워크셀 아이템을 선택하고 관련 파라미터를 설정하는 작업은 반복적으로 수행될 수 있다.
이하 도 4a 내지 도 4h를 이용하여 워크셀 매니저(300)에서 사용자가 워크셀 아이템을 선택하고 관련 파라미터 항목을 설정하는 일 예에 대하여 좀 더 자세히 설명한다.
도 4a 내지 도 4h는 본 발명의 일 실시 예에 따른 사용자가 워크셀 아이템을 선택하고, 선택한 워크셀 아이템 관련 파라미터 항목들을 입력하도록 디스플레이(800)에 화면을 표시하는 워크셀 매니저(300)를 도시한 도면이다.
일 실시 예로서 로봇이 CNC 보조 작업을 수행할 수 있도록 프로그래밍하고자 하는 상황을 고려할 수 있다. 즉, 로봇은 CNC가 작업 대상물을 가지고 작업하는 것을 보조하기 위하여 작업 대상물을 집어(피킹)하여 CNC에 공급할 수 있고, 작업이 완료된 작업 대상물을 CNC로부터 꺼내어 팔레트에 놓을(플레이싱할) 수 있다. 사용자는 이러한 로봇 작업을 위하여 그리퍼를 워크셀 아이템으로 선택할 수 있다.
도 4a를 참조하면, 워크셀 매니저(300)은 워크셀 마스터 DB(600)의 워크셀 DB에 저장되어 있는 모든 워크셀 아이템에 대응되는 아이콘을 디스플레이(800) 화면에 표시할 수 있다. 이 경우, 워크셀 매니저(300)는 마스터 DB(600)에 저장되어 있는 모든 워크셀 아이템과 대응되는 아이콘을 카테고리별로 분류하여 디스플레이(800) 화면에 표시할 수 있다. 카테고리는 워크셀 아이템의 관련 파리미터 항목으로 설정될 수 있으며 워크셀 레지스터(100)를 통해 워크셀 아이템 등록시에 입력되어 마스터 DB(600)의 워크셀 DB에 워크셀 아이템과 함께 저장되어 있을 수 있다. 도 4a의 일 실시 예에서는 로봇의 엔드이펙터용 도구로 그리퍼(Gripper), 스크류 드라이버(Screw Driver), 글루잉 도구(Gluing Tool), 디버링 도구(Deburring Tool), 폴리싱 도구(Polishing tool) 등이 저장되어 있고, 주변기로 공기 분사기 (Air Blower), 컷팅머신(cutting maching), 컨베이어(Conveyor) 등이 저장되어 있음을 보여주고 있다. 도 4a의 화면에서 사용자는 워크셀 아이템을 선택하기 위하여 먼저 새로운 워크셀 아이템을 추가하겠다는 것을 나타내기 위하여 + 아이콘(310)을 누르고, 다음으로 그리퍼 아이콘(320)를 눌러 선택할 수 있다.
워크셀 아이템을 선택한 후에 워크셀 매니저(300)는 사용자가 선택한 워크셀 아이템에 대한 정보를 입력하여 설정(S320)할 수 있도록 선택된 워크셀 아이템과 함께 마스터 DB(600)의 워크셀 DB에 저장한 관련 파라미터 항목들을 디스플레이(800) 화면에 표시할 수 있다.
일반적으로 워크셀 아이템별로 설정할 수 있는 파라미터 항목이 다를 수 있고, 파라미터 항목들은 복수 개의 그룹으로 나눌 수 있다. 일 예로서 로봇의 TCP에 부착되는 워크셀 아이템의 경우에는, 파라미터 항목을 일반사항(General) 그룹, 입출력(I/O) 그룹, 및 TCP 그룹 등으로 나누어 설정할 수 있고, 그룹별로 별도의 화면을 사용하여 파라미터 값을 입력하여 설정할 수 있다.
도 4b 내지 도 4d는 그리퍼의 파라미터 항목을 입력하여 설정하기 위하여 디스플레이(800) 화면에 표시되는 내용을 도시한 도면이다.
도 4b 내지 도 4d를 참조하면, 워크셀 매니저(300)는 그리퍼 관련 파라미터 설정임을 나타내기 위하여 그리퍼 아이콘(330)을 디스플레이(800) 화면의 한쪽 구석에 표시할 수 있다. 그리고 그리퍼 관련 파라미터 항목은 일반사항(General) 그룹, 입출력(I/O) 그룹, 및 TCP 그룹의 3개의 그룹으로 나눌 수 있다. 각 그룹에 포함되는 파라미터 항목의 값을 설정하기 위하여 워크셀 매니저(300)는 디스플레이(800) 화면의 상단(340)에 그룹명(General(341), I/O(342), TCP(343))을 표시하고 하단(350)에 각 그룹에 포함되는 파라미터 항목을 표시할 수 있다. 사용자는 화면의 상단(340)에 있는 그룹명을 누름으로써 각 그룹에 포함되는 파라미터 항목을 하단(350)에 표시하도록 할 수 있다.
도 4b를 참조하면, 일 실시 예로서 일반사항(General) 그룹에 포함되는 파라미터 항목은 디바이스 모델(Device Model; 351), 장비 이름(Tool Name; 352), 접속형태(Connection Type; 353), 장비무게(Tool Weight; 354), 및/또는 장비 무게중심(Center of Gravity; 355)일 수 있다. 워크셀 매니저(300)는 디바이스 모델의 경우에는 마스터 DB(600)에 저장되어 있는 그리퍼로 등록된 워크셀 아이템들을 팝업 형태로 표시하여 사용자가 등록된 그리퍼 모델 중에서 하나를 쉽게 선택할 수 있도록 할 수 있다. 장비 이름(352)은 사용자가 인식하기 쉬운 이름을 자유롭게 설정할 수 있다. 동일한 디바이스 모델을 가지는 그리퍼를 복수 개 사용하는 경우 각 그리퍼에 대하여 별도의 구별할 수 있는 장비 이름을 설정하는 것은 상당히 유용할 수 있다. 접속형태(353)는 제어신호의 접속을 어떤 방식을 사용하여 수행할 것인지를 나타낸다. 장비 무게(354) 및 장비 무게중심(355)은 사용자가 입력할 수도 있지만 자동 측정에 의하여 획득할 수 도 있다.
일반사항(General; 341) 그룹에서의 설정이 완료되면 OK버튼(357)을 눌러 설정을 저장할 수 있는데, 워크셀 매니저(300)는 OK버튼(357)이 눌러지면 설정을 저장하고 입출력(I/O) 그룹에 포함되는 파라미터 항목들을 디스플레이(800) 화면에 표시할 수 있다.
도 4c를 참조하면, 입출력(I/O) 그룹에 포함되는 파라미터 항목은 그리퍼가 입력 받을 수 있는 각 명령어에 대응되는 연결 포트일 수 있다. 좀 더 상세히 설명하면, 그리퍼는 Grasp와 Release의 2개의 명령어를 입력받을 수 있고, 입출력(I/O) 그룹에 포함되는 파라미터 항목으로 각 명령어에 대응되는 연결 포트를 설정할 수 있다. 일 예로서 Grasp는 1번 포트로 Release는 2번 포트로 설정할 수 있다. 이렇게 설정한 뒤 추후 그리퍼에 작업 대상물을 집도록 명령(grasp)하기 위하여는 1번 포트에 인식 가능한 신호 (일 예로 'enable' 신호)를 주면 될 수 있다. PLC(Programmable Logic Controller)를 이용하여 로봇을 제어하는 경우에는 PLC에 프로그램된 내용에 맞추어서 연결 포트를 설정하여 줌으로서 PLC를 재 프로그래밍하는 것을 방지할 수 있어, 상당히 유용한 기능이라 할 수 있다. 입출력(I/O) 그룹에 포함되는 파라미터 항목 설정에 있어서는 추가적으로 각 명령어에 대한 대기시간(Wait Time)을 설정할 수 있는데, 대기시간은 명령어가 입력되면 그리퍼가 그 명령어에 해당하는 명령을 실행하기 위하여 걸리는 시간을 나타낼 수 있다. 즉, 대기시간 동안은 명령어에 의한 작업을 수행하고 있어 다른 명령어를 수신할 수 없음을 나타낼 수 있다. 또 다르게는 그리퍼가 명령을 실행하는 데 필요한 시간을 나타내는 것일 수 있다.
입출력(I/O) 그룹에 포함되는 파라미터 항목에 대한 설정 정보를 입력 완료 후 OK 버튼(367)을 누르면 워크셀 매니저(300)는 설정을 저장하고 TCP 그룹을 디스플레이에 표시할 수 있다.
도 4d를 참조하면, TCP 그룹에 포함되는 파라미터 항목은 그리퍼의 중심점(Tool Center Point; TCP)을 나타내는 좌표 및 각도일 수 있다. 설정 방법은 입력장치(900)를 통해 사용자가 직접 입력할 수도 있지만, 워크셀 매니저(300)가 자동으로 계산하여 입력할 수도 있으며, 또는 직접 교시를 통해 좌표점을 입력할 수도 있다. 설정 완료 후에 OK 버튼을 누르면 워크셀 매니저(300)는 설정된 파라미터 항목을 저장하고 워크셀 매니저(300)의 워크셀 아이템 선택 화면(도 4e)을 디스플레이(800)에 표시할 수 있다. 이 경우에 워크셀 매니저(300)는 미리 선택되고 관련 파라미터 항목에 대한 설정이 완료된 워크셀 아이템(380)을 디스플레이(800) 화면의 일측에 표시하여 사용자에게 기 선택된 워크셀 아이템 정보를 제공할 수 있다.
이에 다른 워크셀 아이템, 일 실시 예로서 CNC를 추가하고자 하는 경우에는 다시 + 아이콘(390)을 누르고, 다음으로 CNC에 대응하는 아이콘(395)을 눌러 CNC를 선택할 수 있다.
도 4f 내지 도 4h는 CNC의 파라미터 항목을 입력하여 설정하기 위하여 디스플레이(800) 화면에 표시되는 내용을 도시한 도면이다.
도 4f 내지 도 4h를 참조하면, 워크셀 매니저(300)는 CNC 관련 파라미터 설정임을 나타내기 위하여 CNC 아이콘(335)을 디스플레이(800) 화면의 한쪽 구석에 표시할 수 있다. 그리고 CNC 관련 파라미터 항목은 일반사항(General) 그룹 및 입출력(I/O) 그룹의 2개 그룹으로 나눌 수 있다. 각 그룹에 포함되는 파라미터 항목의 값을 설정하기 위하여 워크셀 매니저(300)는 디스플레이(800) 화면의 상단(340)에 그룹명(General, I/O)을 표시하고 하단(350)에 각 그룹에 포함되는 파라미터 항목을 표시할 수 있다. 사용자는 화면의 상단(340)에 있는 그룹명을 누름으로서 각 그룹에 포함되는 파라미터 항목을 하단(350)에 표시하도록 할 수 있다.
도 4f를 참조하면, CNC의 경우 일반사항(General) 그룹에 포함되는 파라미터 항목은 디바이스 모델(Device Model; 351), 장비 이름(Tool Name; 352), 및/또는 접속형태(Connection Type; 353)일 수 있다. 워크셀 매니저(300)는 디바이스 모델의 경우에는 마스터 DB(600)에 저장되어 있는 CNC로 등록된 워크셀 아이템을 팝업 형태로 표시하여 사용자가 등록된 CNC 모델 중에서 하나를 쉽게 선택할 수 있도록 할 수 있다. 장비 이름(352)은 사용자가 인식하기 쉬운 이름을 자유롭게 설정할 수 있다. 동일한 디바이스 모델을 가지는 CNC를 복수 개 사용하는 경우 각 CNC에 대하여 별도의 구별할 수 있는 장비 이름을 설정하는 것은 상당히 유용할 수 있다. 접속형태(353)는 제어신호의 접속을 어떤 방식을 사용하여 수행할 것인지를 나타낸다. 일반사항 그룹에서의 설정이 완료되면 OK버튼(357)을 눌러 설정을 저장할 수 있는데, 워크셀 매니저(300)는 OK버튼이 눌러지면 설정을 저장하고 입출력(I/O) 그룹에 포함되는 파라미터 항목들을 디스플레이(800) 화면에 표시할 수 있다.
도 4g 및 도 4h를 참조하면, 입출력(I/O) 그룹에 포함되는 파라미터 항목은 CNC가 입력 받을 수 있는 각 명령어에 대응되는 연결 포트일 수 있다. 좀 더 상세히 설명하면, CNC는 Chunk Open, Chunk Close, Door Open, 및 Door Close의 4개의 명령어를 입력 받을 수 있고, 입출력(I/O) 그룹에 포함되는 파라미터 항목으로 각 명령어에 대응되는 연결 포트를 설정할 수 있다. 도 4g 및 도 4h의 일 예에서는 Chunk Open의 연결포트로 1번을, Chunk Close의 연결포트로 2번을, Door Open의 연결포트로 3번은, Door Close의 연결포트로 4번을 설정할 수 있다. 이렇게 설정한 뒤 추후 CNC의 Chunk Open을 위하여는 1번 포트에 인식 가능한 신호 (일 예로'enable'신호)를 줌으로써 Chunk Open 명령을 내릴 수 있다. 입출력(I/O) 그룹에 포함되는 파라미터 항목 설정에 있어서는 추가적으로 각 명령어에 대한 대기시간(Wait Time)을 설정할 수 있는데, 대기시간은 명령어가 입력되면 CNC가 그 명령어에 해당하는 명령을 실행하기 위하여 걸리는 시간을 나타낼 수 있다. 즉, 대기시간 동안은 명령어에 의한 작업을 수행하고 있어 다른 명령어를 수신할 수 없음을 나타낼 수 있다.
입출력(I/O) 그룹에 포함되는 파라미터 항목에 대한 설정 정보를 입력 완료 후 OK 버튼을 누르면 워크셀 매니저(300)는 설정을 저장하고 다시 선택화면을 디스플레이(800)에 표시할 수 있다.
상술한 것처럼 워크셀 매니저(300)에 의해 사용할 워크셀 아이템이 선택되고, 선택된 워크셀 아이템에 대한 파라미터 설정이 완료되면 워크셀 엔진(400)은 선택된 워크셀 아이템과 관련이 있는 마스터 스킬을 마스터 DB(600)로부터 조회하고, 조회된 마스터 스킬에 선택된 워크셀 아이템의 파라미터 중에서 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성할 수 있다.
이에 더하여 워크셀 엔진(400)은 유저 DB에 저장된 워크셀 아이템과 유저 스킬을 기반으로 유저 스킬의 시계열적 집합체인 태스크 템플릿을 생성하고 추천할 수 있고, 유저 DB에 저장된 워크셀 아이템 관련 파라미터를 활용하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 제공할 수 있다.
즉, 워크셀 엔진(400)은 스킬 엔진, 템플릿 엔진, 및/또는 패스 엔진을 포함할 수 있으며, 스킬 엔진은 선택된 워크셀 아이템과 관련이 있는 마스터 스킬을 마스터 DB(600)로부터 조회하고, 조회된 마스터 스킬에 선택된 워크셀 아이템의 파라미터 중에서 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성하고, 템플릿 엔진은 유저 DB에 저장된 워크셀 아이템과 유저 스킬을 기반으로 유저 스킬의 시계열적 집합체인 태스크 템플릿을 생성 및 추천하고, 패스 엔진은 유저 DB에 저장된 워크셀 아이템 관련 파라미터를 활용하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 제공한다. 이때의 진행 경로 및 자세는 작동 주체인 로봇의 진행 경로 및 자세를 의미할 수 있다.
도 5는 본 발명의 일 실시 예에 따른 스킬 엔진의 동작을 간략하게 도시한 순서도이다.
도 5에 제시된 순서도에 의한 유저 스킬의 생성과 저장은 유저 DB(700)의 워크셀 DB에 저장된 각 워크셀 아이템 또는 워크셀 아이템의 조합에 대하여 각각 수행될 수 있다.
도 5를 참조하면, 스킬 엔진은 워크셀 매니저(300)에 의하여 유저 DB(700)의 워크셀 DB에 저장된 워크셀 아이템 또는 워크셀 아이템의 조합을 선택(S510)할 수 있다. 그리고 선택한 워크셀 아이템 또는 워크셀 아이템의 조합과 관련된 마스터 스킬을 마스터 DB(600)의 스킬 DB에서 자동으로 조회(S520)할 수 있다.
그리고 유저 DB(700)의 워크셀 DB에 저장되어 있는 선택한 워크셀 아이템 또는 워크셀 아이템의 조합의 파라미터들 중 적어도 하나의 파라미터를 조회된 스킬에 적용(S530)하고, 이를 유저 DB(700)의 스킬 DB에 저장할 수 있다. 본 발명에 따른 마스터 DB(600)에 저장되어 있는 마스터 스킬은 단순히 명령어의 집합일 수 있다. 즉, 도 2에 도시되어 있는 것처럼 이동, 열기, 이동, 잡기, 이동과 같은 단순한 명령어의 집합일 수 있다. 하지만, 설정된 파라미터가 적용된 유저 스킬은 로봇 작업에 적용할 수 있는 구체적인 명령의 집합이 될 수 있다. 즉, 일 예로 X 좌표에서 Y 좌표로 이동, '제 1 그리퍼' 열기, Y 좌표에서 Z 좌표로 이동, '제 1 그리퍼'로 A 작업물 집기, Z 좌표에서 W 좌표로 이동처럼 작업 환경의 좌표와 워크셀 매니저(300)에서 설정된 워크셀 아이템의 장비 이름 등과 같은 설정된 파라미터를 조회된 스킬에 적용하여 구체적인 명령의 집합으로 스킬을 구성할 수 있다.
도 6은 스킬 엔진이 자동으로 유저 스킬을 생성하는 일 실시 예를 도시한 도면이다.
도 6을 참조하면, 마스터 DB(600)의 워크셀 DB에는 워크셀 아이템인 그리퍼(Gripper)(610)가 저장되어 있고, 마스터 DB(600)의 스킬 DB에는 'Pick(710)'이라는 마스터 스킬이 저장되어 있을 수 있다. 여기서, 그리퍼(610)는 관련 파라미터로 명령어(611)인 'Grasp'와 'Release'가 있을 수 있다. 그리고 'Pick(710)' 마스터 스킬은 '이동, 그리퍼 열기, 이동, 그리퍼 집기, 이동(711)'으로 구성될 수 있다. 사용자가 워크셀 매니저(300)를 이용하여 워크셀 아이템으로 그리퍼(610)를 선택하고 그리퍼 관련 파라미터를 설정하면 유저 DB(700)의 워크셀 DB에 선택된 워크셀 아이템이 설정된 파라미터를 가지고 저장될 수 있다. 도 6의 예에서 유저 DB(700)에 저장된 워크셀 아이템(620)의 이름은 'My Gripper'로 설정되고, 명령어에 대한 입/출력 포트 또한 설정되어 있다. 선택된 워크셀 아이템이 설정된 파라미터를 가지고 유저 DB(700)에 저장되면 스킬 엔진(410)은 선택된 워크셀 아이템과 관련된 마스터 스킬(도 6의 일 실시 예에서는 Pick)을 마스터 DB(600)의 스킬 DB에서 자동으로 조회하고, 선택된 워크셀 아이템(도 7의 일 실시 예에서는 My Gripper)의 설정 파라미터와 조회한 마스터 스킬을 결합시켜 유저 스킬(도 7의 일 실시 예에서는 Pick My Gripper; 810)로 유저 DB(700)의 스킬 DB에 자동으로 저장한다. 이때 각 명령어에 필요한 좌표 정보가 설정되어 있다면 각 명령어에 필요한 좌표 정보를 같이 포함하여 저장할 수 있다. 만약 설정되어 있지 않다면, 후술할 태스크 빌더(500)에서의 교시를 통해 진행 경로 및 자세 정보를 적용하여 유저 스킬의 좌표 정보로 설정할 수 있다.
스킬 엔진은 전술한 것처럼 유저 스킬을 생성하여 유저 DB(700)의 스킬 DB에 저장할 수 있다. 이에 더하여 스킬 엔진은 생성된 유저 스킬 각각에 대하여 우선순위를 부여할 수 있고, 또한, 유저 스킬 추천 규칙을 설정할 수 있다. 즉, 후술할 태스크 빌더(500)에서 사용자의 태스크 생성 작업 시 스킬 추천을 요청하는 경우에 설정된 스킬 추천 규칙이나 우선순위에 따라 사용자에게 스킬을 추천할 수 있다.
템플릿 엔진은 유저 DB(700)에 저장된 워크셀 아이템과 유저 스킬을 기반으로 유저 스킬의 시계열적 집합체인 태스크 템플릿을 생성할 수 있다. 이를 위하여 템플릿 엔진은 유저 DB(700)에 저장된 워크셀 아이템 또는 워크셀 아이템의 조합과 관련되어 마스터 DB(600)에 저장되어 있는 일반적인 태스크 템플릿을 조회하고, 일반적인 태스크 템플릿에 있는 마스터 스킬을 유저 DB(700)에 저장되어 있는 유저 스킬로 대체시킨 태스크 템플릿을 생성할 수 있다.
일 실시 예로서 입력측 컨베이어 벨트로부터 출력측 컨베이어 벨트로 공작물을 옮기는 것과 관련된 일반적인 태스크 템플릿이 마스터 DB(600)에 저장되어 있을 수 있다. 이 태스크 템플릿은 컨베이어 벨트와 관련된 'Incoming feeder'와 'Outgoing feeder'의 2개의 스킬을 사용하고, 'Incoming feeder'를 태스크의 시작 위치에, 'Outgoing feeder'를 태스크의 종료 위치에 배치된 것일 수 있다. 템플릿 엔진은 상술한 태스크 템플릿을 마스터 DB(600)에서 조회하고, 워크셀 아이템의 파라미터로 저장되어 있는 컨베이어 벨트의 위치를 적용한 유저 스킬을 이용하는 새로운 태스크 템플릿을 만들어 유저 DB(700)에 저장할 수 있다.
또한, 템플릿 엔진은 후술할 태스크 빌더(500)에 의하여 과거에 생성한 태스크를 바탕으로 태스크 템플릿을 생성할 수 있다. 이렇게 생성된 태스크 템플릿은 유저 DB(700)에 저장될 수 있다.
템플릿 엔진에 의해서 생성된 태스크 템플릿은 후술할 태스크 빌더(500)에서 사용자의 손쉬운 프로그래밍을 위하여 제공될 수 있다.
패스 엔진은 유저 DB(700)에 저장된 워크셀 아이템의 파라미터를 활용하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 제공할 수 있다. 이를 위하여 패스 엔진은 워크셀 매니저(300)에서 설정되고 유저 DB(700)에 저장된 워크셀 아이템의 파라미터를 유저 DB(700)로부터 읽어 들일 수 있다. 이때 읽어 들이는 파라미터는 선택된 워크셀 아이템의 기준점과 이 기준점을 기준으로 하여 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점의 상대적 위치정보 및 자세정보를 포함할 수 있다. 그리고 직접교시 또는 간접교시를 통해 작동 주체인 로봇과 선택된 워크셀 아이템의 기준점 간의 위치를 측정하고, 이를 바탕으로 로봇과 선택된 워크셀 아이템의 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점의 상대적인 위치 정보와 자세 정보를 계산하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성할 수 있다. 이때의 진행 경로 및 자세는 작동 주체인 로봇의 진행 경로 및 자세를 의미할 수 있다.
도 7은 본 발명의 일 실시 예에 따른 CNC(430)에서의 패스 엔진의 기능을 도시한 도면이다.
도 7을 참조하면 CNC(430)는 공작물을 가공하는 장치로서, 문이 달렸고 문 안의 공간에 있는 척(chuck)이 공작물을 잡은 상태에서 공작물을 가공하는 장치이다. CNC(430)와 협업하는 로봇은 팔레트에 놓여 있는 공작물을 집어서 문을 통과하여 척이 공작물을 잡을 수 있게 공작물을 공급하는 기능을 수행한다. 이때 로봇이 문을 통과하여 척의 중앙 위치에 공작물이 위치할 수 있도록 로봇의 TCP가 진행하여야 하는 이동 경로(436)를 설정해 주어야 한다. 즉, 직접교시 또는 간접교시를 이용하여 로봇의 TCP의 이동 경로에 있는 전환점(434), 경유점(433), 접근점(432), 및 동작점(431) 등을 로봇에게 교시하여 주어야 한다. 여기서 전환점(434)은 워크셀 아이템 간 이동을 위한 경유점으로, 로봇이 워크셀 아이템으로 진입하기 위해서는 상기 워크셀 아이템의 전환점(434)을 거쳐서 진입을 할 수 있다. 경유점(433)은 워크셀 아이템의 접근점(432)으로 가기 위하여 경유하여야 하는 점으로 필수적인 것은 아니고 부가적인 점이라 할 수 있고 복수 개의 경유점이 존재할 수 있다. 동작점(431)은 스킬 내에서 로봇에 부착된 툴이 동작을 수행하는 점을 의미한다. 도 7의 예에서는 로봇에 부착된 그리퍼가 공작물을 집어서 이동한 후 'release' 동작을 수행하는 점이 되고, CNC 입장에서는 공작물을 잡는 척의 중심점이 될 수 있다. 접근점(432)은 동작점(431)으로 접근하기 위하여 최종적으로 거쳐갈 수 있는 점일 수 있다.
상술한 교시를 쉽게 하기 위하여 CNC가 워크셀 아이템으로 등록시에 상술한 전환점(434), 경유점(433), 접근점(432), 및 동작점(431)을 파라미터 항목으로 설정할 수 있다. 이에 더하여 기준점(435)을 파라미터 항목으로 설정할 수 있다. 그리고 각 점의 파라미터 값으로 기준점(435)에 대한 상대 좌표와 각 점에서의 로봇의 자세를 설정할 수 있다. 즉, 기준점(435)에 대한 상대 좌표로 전환점(434), 경유점(433), 접근점(432), 및 동작점(431)에 대한 좌표를 설정할 수 있고, 자세를 설정하기 위하여 TCP의 방향을 나타내는 (x, y, z) 세 축에 대한 각도를 설정할 수 있다. 이때 기준점(435)의 좌표를 3차원 좌표상의 원점인 (0, 0, 0)으로 하면 전환점(434), 경유점(433), 접근점(432), 및 동작점(431)에 대한 상대 좌표 설정이 쉬울 수 있다. 그리고 이러한 상대 좌표의 설정은 워크셀 레지스터(100)에서 CNC를 워크셀 아이템으로 등록시에 함께 설정하여 마스터 DB(600)에 저장될 수 있다.
그리고 워크셀 메니저(300)에서 도 7의 CNC를 사용할 워크셀 아이템으로 선택하고, 선택된 워크셀 아이템의 파라미터인 기준점을 로봇의 TCP 위치에 따른 좌표로 설정하거나 또는 작업 영역 전체의 기준점에 대한 상대 좌표로 설정하면 패스엔진은 자동으로 전환점(434), 경유점(433), 접근점(432), 및 동작점(431)의 좌표를 로봇의 TCP 위치에 따른 좌표 또는 작업 영역 전체의 기준점에 따른 좌표로 새로 계산하여 유저 DB(700)에 선택된 워크셀 아이템의 관련 파라미터로 저장할 수 있다. 이와 같이 저장된 각 점의 좌표 및 자세는 스킬 엔진에 의하여 생성되는 유저 스킬의 이동 관련 명령어의 진행 경로 및 자세를 결정하는데 적용될 수 있다. 이처럼 로봇의 이동 경로에 대한 정보를 미리 설정해 놓음으로써 실제 교시에 필요한 교시점 수를 줄일 수 있다. 즉, 상술한 것처럼 기준점에 대한 교시를 실행하면 전환점(434), 경유점(433), 접근점(432), 및 동작점(431)에 대한 좌표가 자동으로 계산되어 각 점에 대하여 추가로 교시할 필요가 없어진다. 이에 따라 사용자의 프로그래밍시의 부하를 획기적으로 줄일 수 있으며, 프로그래밍에 필요한 시간 또한 대폭 줄일 수 있게 된다.
전술한 스킬 엔진, 템플릿 엔진, 패스 엔진은 사용자가 로봇의 작업을 프로그래밍하기 위한 태스크 빌더(500)에서의 작업 시 다양한 태스크 템플릿과 유저 스킬을 제공하고, 필요한 교시점의 수를 줄일 수 있도록 하여 줌으로써 사용자의 로봇 프로그래밍시 필요로 하는 노력과 시간을 상당히 줄일 수 있을 것이다.
태스크 빌더(500)는 상술한 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성할 수 있다. 즉 태스크 빌더(500)는 사용자와의 인터페이스를 통하여 하나 이상의 유저 스킬을 시계열적으로 배열하고, 배열되 유저 스킬을 수행할 때 요구되는 작동 주체인 로봇의 위치 정보와 자세 정보를 직접 교시 또는 간접 교시를 통해 교시받아 사용자가 원하는 태스크를 생성할 수 있다.
도 8은 본 발명의 일 실시 예에 따른 태스크 빌더(500)가 태스크를 생성하는 과정을 도시한 도면이다.
도 8을 참조하면, 태스크 빌더(500)는 디스플레이(800) 화면을 2개로 분할하여 1개의 화면(이하 태스크 화면; 510)에는 생성할 태스크를 표시하기 위하여 사용하고, 다른 1개의 화면(이하 스킬 화면; 520)은 유저 DB(700)에 저장되어 있는 유저 스킬을 표시하기 위하여 사용될 수 있다. 사용자는 스킬 화면으로부터 스킬을 가져와서 태스크 화면에 시계열적으로 배치하여 연결함으로써 태스크를 생성할 수 있다. 일 예로서 '팔레트 집기, 그리퍼,' '문열기 CNC,' '작업물 놓기 CNC,' '문닫기 CNC,' '작업물 집기 CNC,'및 '팔레트 놓기, 그리퍼'와 같은 유저 스킬을 스킬 화면에서 가져와서 진행되는 순서대로 태스크 화면에 배치함으로써 태스크를 완성할 수 있다. 이때 유저 스킬이 동작하는데 필요한 좌표정보나 자세 정보는 상술한 것처럼 워크셀 엔진에 의하여 미리 설정되어 있을 수 있거나 또는 현 단계에서 직접 교시나 간접 교시를 이용하여 사용자에 의해 설정될 수 있다.
즉, 사용자는 태스크 빌더(500)가 제시한 유저 스킬을 선택하여 조합함으로써 사용자가 로봇에게 지시하고자 하는 태스크를 생성할 수 있다. 태스크 빌더(500)는 사용자가 생성한 작업을 컴파일하여 로봇이 이해할 수 있는 기계어 프로그램을 생성할 수 있다. 이렇게 생성된 기계어 프로그램은 로봇의 제어장치에 다운로딩되어 로봇이 이 프로그램에 따라 운용되게 할 수 있다.
또 다른 방법으로 태스크 빌더(500)는 워크셀 엔진에 의해 생성되고 추천된 유저 스킬 및 태스크 탬플릿을 제공받을 수 있으며, 제공받은 태스크 템플릿 중 사용자가 선택한 하나의 태스크 템플릿을 사용하거나, 또는 제공받은 태스크 템플릿 중 사용자가 선택한 하나의 태스크 템플릿을 바탕으로 유저 스킬을 추가, 삭제, 또는 교환하여 태스크를 생성할 수 있다.
도 8의 일 실시 예에서, 스킬 화면에 유저 DB(700)에 저장되어 있는 유저 스킬을 표시할 수 있는데 이때 스킬 화면에 표시되는 유저 스킬은 워크셀 엔진에 의해 추천된 유저 스킬일 수 있다.
도 9는 태스크 빌더(Task Builder; 500)에서 템플릿 엔진에 의하여 추천된 태스크 템플릿의 예시를 도시한 도면이다.
도 9를 참조하면, 템플릿 엔진은 사용자가 워크셀 매니저(300)를 통해 설정한 워크셀 아이템과 관련된 태스크 템플릿을 생성하여 유저 DB(700)에 저장할 수 있다. 그리고 사용자의 태스크 빌더(500)를 통한 태스크 프로그래밍 시 저장된 태스크 템플릿을 추천할 수 있다. 도 9의 예시처럼 복수 개의 태스크 템플릿(421, 422)을 추천할 수 있고, 사용자가 추천된 태스크 템플릿 중의 하나를 선택하면 그 템플릿을 바탕으로 사용자가 원하는 태스크를 구성할 수 있다. 일 실시 예로서 도 8의 태스크 템플릿(421)을 선택할 수 있고, 그러면 태스크 화면에 태스크 템플릿(421)이 표시될 수 있다.
이후 태스크 화면에서 보여지는 태스크 템플릿을 바탕으로 원하는 태스크를 구성하기 위한 수정이 진행될 수 있다.
일 예로서 Pick 스킬의 작업 대상물의 위치가 바뀐 경우에는 워크셀 매니저(300)를 이용하여 워크셀 아이템의 파라미터를 변경할 수 있다. 또 다른 방법으로 태스크 템플릿 내에 있는 Pick 스킬의 파라미터를 태스크 빌더에서 직접 변경할 수도 있다.
도 10은 본 발명의 일 실시 예에 따른 스킬 기반 로봇 프로그래밍 방법을 보여주는 흐름도이다.
사용자가 로봇 프로그래밍을 하기 위해서는 우선적으로 워크셀 아이템과 관련 마스터 스킬이 마스터 DB(600)에 저장되어 있어야 한다. 이를 위하여 사용자가 로봇 프로그래밍 장치를 구매하기 전, 판매자에 의해 가능한한 많은 워크셀 아이템 및 관련 마스터 스킬이 워크셀 레지스터(100) 및 스킬 레지스터(200)를 이용하여 등록되고 마스터 DB(600)에 저장될 수 있다. 사용자는 마스터 DB(600)에 워크셀 아이템 및 마스터 스킬이 기본적으로 저장되어 있는 상태에서 로봇 프로그래밍을 수행할 수 있다.
먼저, 사용자는 워크셀 매니저(300)를 통해 사용할 워크셀 아이템을 선택(S810)할 수 있고 또한, 사용할 워크셀 아이템 관련 파라미터 값을 설정할 수 있다.
상기 선택된 워크셀 아이템 및 설정된 파라미터를 바탕으로 워크셀 엔진(400)은 유저 스킬을 생성(S820)할 수 있고, 이에 더하여 부가적으로 선택된 워크셀 아이템 및/또는 생성된 유저 스킬을 바탕으로 태스크 템플릿을 생성(S830)하여 유저 DB(700)에 저장할 수 있다. 이때 추가적으로 각 워크셀 아이템 관련하여 작동주체인 로봇이 이동할 경로에 대한 정보 또한 생성하여 파라미터로 저장할 수 있다.
사용자는 태스크 빌더(500)와 인터페이스하면서 워크셀 엔진(400)에 의하여 생성된 유저 스킬 및/또는 태스크 템플릿을 바탕으로 로봇이 작업할 태스크를 생성(S840)할 수 있다. 여기서 태스크는 복수 개의 유저 스킬을 작업 순서대로 배치하여 구성한 것일 수 있다.
태스크 생성이 완료되면 시뮬레이션을 통하여 태스크의 작동을 검증하고, 검증되면 로봇에서 실행할 수 있다.
이하 상술한 각 단계를 좀 더 상세히 살펴본다.
도 11은 본 발명의 일 실시 예에 따른 스킬 기반 로봇 프로그래밍 장치가 사용할 워크셀 아이템을 설정하기 위한 흐름도를 도시한 도면이다.
도 11을 참조하면, 스킬 기반 로봇 프로그래밍 장치는 사용할 워크셀 아이템을 선택(S810)하기 위하여 상술한 바처럼 마스터 DB(600)에 저장된 워크셀 아이템을 검색하고, 검색된 워크셀 아이템 중 사용할 워크셀 아이템을 선택(S811)할 수 있다. 그리고 선택된 워크셀 아이템의 관련 파라미터를 설정(S812)하고, 부가적으로 설정을 검증하기 위하여 선택되고 설정된 워크셀 아이템의 작동을 시험(S813)할 수 있으며, 시험이 실패한 경우에는 파라미터 설정을 수정할 수 있다. 그리고 선택되고 관련 파라미터가 설정된 워크셀 아이템을 유저 DB에 저장(S814)할 수 있다. 이때 워크셀 관련 파라미터는 워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 및 각 지점들의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 하나를 포함할 수 있다.
여기서 워크셀 엔진(400)의 패스 엔진은 추가적으로 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성할 수 있다. 즉, 워크셀 아이템은 기준점과 전환점, 접근점, 경로점, 동작점 중 적어도 하나의 점을 파라미터로 포함하고, 상기 각 점은 기준점을 기준으로 하는 상대적 위치 정보를 파라미터 값으로 가지고 있을 수 있다. 그리고 직접교시 또는 간접교시를 통해 작동 주체인 로봇의 기준점과 선택된 워크셀 아이템의 기준점 간의 위치를 측정하고, 이를 바탕으로 로봇의 기준점과 선택된 워크셀 아이템의 전환점, 접근점, 경로점 및 동작점 중 적어도 하나의 점의 상대적인 위치 정보와 자세 정보를 계산하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성할 수 있다. 여기서 로봇의 기준점은 로봇의 기단에 있는 고정된 점일 수도 있고, 로봇의 TCP 점일 수도 있다.
상술한 내용을 도 7의 예시를 이용하여 설명한다.
도 7의 CNC는 마스터 DB(600)에 워크셀 아이템으로 저장되어 있을 수 있다. 이때 워크셀 아이템은 기준점, 전환점, 접근점, 경로점, 동작점을 파라미터로 가지고 있고, 각 파라미터는 워크셀 레지스터(100)에 의해 등록 시에 CNC의 스펙에 맞추어서 미리 값이 입력되어 있을 수 있다. 즉, 기준점은 (0,0,0), 전환점은 (100, -50, -10), 경유점은 (120, -50, 0), 접근점은 (120, -50, 20), 동작점은 (100, -50, 20)의 좌표 값이 미리 입력되어 있을 수 있다. 여기서, 전환점, 접근점, 경로점, 및 동작점은 기준점을 기준으로 하는 상대 좌표일 수 있다. 그리고 각 점에서의 로봇이 취할 자세 또한 미리 저장되어 있을 수 있다.
그리고 워크셀 매니저(300)에서 CNC가 사용할 워크셀 아이템으로 선택되고 간접 교시 또는 직접 교시로 상기 선택된 워크셀 아이템의 기준점에 대한 좌표가 설정될 수 있다. 일 예로서 기준점의 좌표가 (10, 20, 30)으로 설정될 수 있다. 이 기준점의 좌표는 로봇의 기단에 있는 고정점을 기준으로 한 좌표일 수도 있고, 로봇의 TCP 점을 기준으로 한 좌표일 수도 있다. 상술한 것처럼 기준점의 좌표가 설정되면 패스 엔진은 상기 기준점의 좌표를 바탕으로 전환점, 접근점, 경로점, 동작점의 파라미터 값을 변경시킬 수 있다. 즉, 패스 엔진에 의하여 전환점은 (110, -30, 20), 경유점은 (130, -30, 30), 접근점은 (130, -30, 50), 동작점은 (110, -30, 50)으로 변경되어 유저 DB(700)에 저장될 수 있다.
도 8을 참조하면, 관련 유저 스킬로는 작업물을 척에 물리기 위한 '작업물 놓기'가 있을 수 있고 이는 팔레트에서 집은 작업물을 척이 잡을 수 있도록 위치시키는 스킬이다. 이 유저 스킬은 복수 개의 이동 명령어에 의해 구성될 수 있으며 이때 각 이동 명령어가 이동할 좌표는 상기 선택한 워크셀 아이템에 설정된 파라미터를 이용하여 상기 기준점에 대한 단 한번의 교시만으로 자동으로 생성될 수 있다.
유저 스킬 생성을 위하여 스킬 기반 로봇 프로그래밍 장치의 워크셀 엔진(400)은 워크셀 매니저(300)가 워크셀 아이템을 선택하면, 선택된 워크셀 아이템과 관련된 마스터 스킬을 마스터 DB(600)에서 조회하고, 선택된 워크셀 아이템의 파라미터 중 적어도 하나의 파라미터를 선택된 워크셀 아이템과 관련된 마스터 스킬에 적용하여 유저 스킬을 생성할 수 있다. 이때, 워크셀 매니저(300)에 의하여 선택된 워크셀 아이템의 파라미터를 설정하게 되면, 워크셀 엔진(400)은 선택된 워크셀 아이템과 관련된 마스터 스킬에 사용자가 설정한 워크셀 아이템의 파라미터 중 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성할 수 있다.
유저 스킬에 이동 관련 명령어가 포함되는 경우, 상술한 바와 같이 선택된 워크셀 아이템의 파라미터로 설정되어 있는 전환점, 접근점, 경로점, 및 동작점을 바탕으로 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성할 수 있다. 이렇게 생성된 유저 스킬은 유저 DB(700)의 스킬 DB에 저장될 수 있다.
워크셀 매니저(300)를 이용하여 사용할 워크셀 아이템을 선택하고, 관련 파라미터를 설정하고, 워크셀 엔진(400)이 자동으로 관련 유저 스킬 및/또는 태스크 템플릿을 생성한 이후 사용자는 태스크 빌더(500)를 이용하여 유저 스킬을 기반으로 태스크를 생성(S840)할 수 있다. 태스크 생성 단계에서 태스크 빌더(500)는 유저 DB(700)에 저장되어 있는 유저 스킬을 그래픽(일 예로 아이콘, 또는 디렉토리 형태)으로 디스플레이(800)에 표시하여 사용자가 필요한 유저 스킬을 선정하여 조합하는 단순한 작업에 의하여 로봇이 수행하여야 하는 태스크를 생성하도록 할 수 있다. 다만 각 유저 스킬에서의 로봇의 이동을 교시하기 위하여 각 유저 스킬 사이의 전환점, 경로점, 접근점, 동작점과 같은 이동 경로 정보를 알려줄 필요가 있다. 이는 티칭 펜던트를 이용한 간접교시 방법, 또는 로봇을 직접 이동시켜 좌표를 알려주는 직접교시 방법 등을 포함하는 다양한 방법으로 알려줄 수 있다.
본 발명에서 제시하는 로봇 프로그래밍 장치는 전술한 바처럼 패스 엔진을 이용하여 이동 경로 정보를 미리 유저 스킬에 적용해 놓을 수 있기 때문에 태스크 생성 시에 별도의 교시작업이 필요하지 않거나 최소한의 교시만 하여도 가능할 수 있다. 즉, 일 예로서 워크셀 매니저(300)에서 미리 설정한 설정한 워크셀 아이템의 기준점 좌표, 즉 로봇과 상기 기준점 좌표 간의 상대적인 좌표에 변동이 없으면 그대로 사용하여 교시작업이 전혀 필요 없을 수 있고, 만약 기준점의 좌표에 변동이 생긴다면 기준점만을 다시 교시하고 나머지 점들은 패스 엔진에 의하여 자동으로 다시 계산되어 유저 스킬에 적용됨으로 교시점의 수를 최소화할 수 있다.
이때 로봇 프로그래밍 장치는 사용자의 태스크 생성을 보다 쉽게 하도록 하기 위하여 전술한 템플릿 엔진을 통해 생성한 태스크 템플릿을 사용자에게 부가적으로 제시할 수 있다. 그러면 사용자는 제공된 템플릿중의 하나를 선택하여 그대로 사용하거나, 또는 제공된 태스크 템플릿 중의 하나를 선택하고, 선택된 태스크 템플릿에 유저 스킬을 더 추가하거나, 선택된 태스크 템플릿에 포함되어 있는 유저 스킬을 삭제, 교환, 또는 수정하여 새로운 태스크를 생성할 수 있다.
본 발명에 따른 로봇 프로그래밍 장치 및 방법은 사용자의 작업을 단순화하도록 할 수 있는 다양한 방법을 사용자에게 제시함으로써 숙련자가 아닌 일반적인 사용자라도 로봇을 프로그래밍하는데 있어 충분히 쉽게 빠르게 하도록 할 수 있다.
이에 더하여 본 발명에 따른 로봇 프로그래밍 장치는 워크셀 아이템 및 관련 파라미터의 등록 작업과 등록된 워크셀 아이템을 바탕으로 스킬을 생성하는 작업을 전문가에 의해서 미리 수행하고, 워크셀 아이템과 마스터 스킬을 마스터 DB에 저장한 후, 사용자에게 로봇을 판매함으로써 실제 사용자가 로봇 작업 내용과 작업 환경을 입력하면 마스터 DB에 저장되어 있는 워크셀 아이템과 마스터 스킬을 자동으로 사용자용 버전으로 변경하여 유저 DB에 저장하는 분리 정책을 사용함으로써 사용자 입장에서 로봇 프로그래밍 시에 많은 노력과 시간을 요하는 부분을 생략할 수 있는 효과가 있다.
하나 이상의 예시적인 실시예에서, 설명한 기능들은 하드웨어, 소프트웨어, 펌웨어, 또는 이들의 임의의 조합으로 구현될 수 있다. 소프트웨어로 구현된다면, 이 기능들은 컴퓨터 판독 가능 매체상에 하나 이상의 명령 또는 코드로서 저장 또는 전송될 수 있다. 컴퓨터 판독 가능 매체는 한 장소에서 다른 장소로 컴퓨터 프로그램의 전달을 용이하게 하는 임의의 매체를 포함하는 통신 매체 및 컴퓨터 저장 매체를 모두 포함한다. 저장 매체는 컴퓨터에 의해 액세스 가능한 임의의 이용 가능한 매체일 수 있다. 한정이 아닌 예시로, 이러한 컴퓨터 판독 가능 매체는 RAM, ROM, EEPROM, CD-ROM이나 다른 광 디스크 저장소, 자기 디스크 저장소 또는 다른 자기 저장 디바이스, 또는 명령이나 데이터 구조의 형태로 원하는 프로그램코드를 전달 또는 저장하는데 사용될 수 있으며 컴퓨터에 의해 액세스 가능한 임의의 다른 매체를 포함할 수 있다. 또한, 임의의 접속이 컴퓨터 판독 가능 매체로 적절히 지칭된다. 예를 들어, 소프트웨어가 동축 케이블, 광섬유 케이블, 꼬임 쌍선, 디지털 가입자 회선(DSL), 또는 적외선, 라디오 및 초고주파와 같은 무선 기술을 이용하여 웹사이트, 서버 또는 다른 원격 소스로부터 전송된다면, 동축 케이블, 광섬유 케이블, 꼬임 쌍선, DSL, 또는 적외선, 라디오 및 초고주파와 같은 무선 기술들이 매체의 정의에 포함된다. 여기서 사용된 것과 같은 디스크(disk 및 disc)는 콤팩트 디스크(CD), 레이저 디스크, 광 디스크, 디지털 다목적 디스크(DVD), 플로피디스크 및 블루레이 디스크를 포함하며, 디스크(disk)들은 보통 데이터를 자기적으로 재생하는 반면, 디스크(disc)들은 데이터를 레이저에 의해 광학적으로 재생한다. 상기의 조합들 또한 컴퓨터 판독 가능 매체의 범위 내에 포함되어야 한다.
실시예들이 프로그램 코드나 코드 세그먼트들로 구현될 때, 코드 세그먼트는 프로시저, 함수, 서브프로그램, 프로그램, 루틴, 서브루틴, 모듈, 소프트웨어 패키지, 클래스, 또는 명령들, 데이터 구조들, 또는 프로그램 명령문들의 임의의 조합을 나타낼 수 있는 것으로 인식해야 한다. 코드 세그먼트는 정보, 데이터, 인수(argument), 파라미터 또는 메모리 콘텐츠를 전달 및/또는 수신함으로써 다른 코드 세그먼트 또는 하드웨어 회로에 연결될 수 있다. 정보, 인수, 파라미터, 데이터 등은 메모리 공유, 메시지 전달, 토큰 전달, 네트워크 송신 등을 포함하는 임의의 적당한 수단을 이용하여 전달, 발송 또는 전송될 수 있다. 추가로, 어떤 측면들에서 방법 또는 알고리즘의 단계들 및/또는 동작들은 컴퓨터 프로그램 물건으로 통합될 수 있는 기계 판독 가능 매체 및/또는 컴퓨터 판독 가능 매체상에 코드들 및/또는 명령들 중 하나 또는 이들의 임의의 조합이나 세트로서 상주할 수 있다.
소프트웨어에서 구현에서, 여기서 설명한 기술들은 여기서 설명한 기능들을 수행하는 모듈들(예를 들어, 프로시저, 함수 등)로 구현될 수 있다. 소프트웨어 코드들은 메모리 유닛들에 저장될 수 있으며 프로세서들에 의해 실행될 수 있다. 메모리 유닛은 프로세서 내에 구현될 수도 있고 프로세서 외부에 구현될 수 있으며, 이 경우 메모리 유닛은 공지된 바와 같이 다양한 수단에 의해 프로세서에 통신 가능하게 연결될 수 있다.
하드웨어 구현에서, 처리 유닛들은 하나 이상의 주문형 집적 회로(ASIC), 디지털 신호 프로세서(DSP), 디지털 신호 처리 디바이스(DSPD), 프로그래밍 가능 로직 디바이스(PLD), 현장 프로그래밍 가능 게이트 어레이(FPGA), 프로세서, 제어기, 마이크로 컨트롤러, 마이크로프로세서, 여기서 설명한 기능들을 수행하도록 설계된 다른 전자 유닛들, 또는 이들의 조합 내에 구현될 수 있다.
상술한 것은 하나 이상의 실시예의 실례를 포함한다. 물론, 상술한 실시예들을 설명할 목적으로 컴포넌트들 또는 방법들의 가능한 모든 조합을 기술할 수 있는 것이 아니라, 당업자들은 다양한 실시예의 많은 추가 조합 및 치환이 가능함을 인식할 수 있다. 따라서 설명한 실시예들은 첨부된 청구범위의 진의 및 범위 내에 있는 모든 대안, 변형 및 개조를 포함하는 것이다. 더욱이, 상세한 설명 또는 청구범위에서 "포함한다"라는 용어가 사용되는 범위에 대해, 이러한 용어는 "구성되는"이라는 용어가 청구범위에서 과도적인 단어로 사용될 때 해석되는 것과 같이 "구성되는"과 비슷한 식으로 포함되는 것이다.
여기서 사용된 바와 같이, "추론하다" 또는 "추론"이라는 용어는 일반적으로 이벤트 및/또는 데이터에 의해 포착되는 한 세트의 관측으로부터 시스템, 환경 및/또는 사용자의 상태에 관해 판단하거나 추론하는 프로세스를 말한다. 추론은 특정 상황이나 동작을 식별하는데 이용될 수 있고, 또는 예를 들어 상태들에 대한 확률 분포를 생성할 수 있다. 추론은 확률적일 수 있는데, 즉 데이터 및 이벤트들의 고찰에 기초한 해당 상태들에 대한 확률 분포의 계산일 수 있다. 추론은 또한 한 세트의 이벤트들 및/또는 데이터로부터 상위 레벨 이벤트들을 구성하는데 이용되는 기술들을 말할 수도 있다. 이러한 추론은 한 세트의 관측된 이벤트들 및/또는 저장된 이벤트 데이터로부터의 새로운 이벤트들 또는 동작들, 이벤트들이 시간상 밀접하게 상관되는지 여부, 그리고 이벤트들과 데이터가 하나 또는 여러 이벤트 및 데이터 소스들로부터 나오는지를 추정하게 한다.
더욱이, 본 출원에서 사용된 바와 같이, "컴포넌트", "모듈", "시스템" 등의 용어는 이에 한정되는 것은 아니지만, 하드웨어, 펌웨어, 하드웨어와 소프트웨어의 조합, 소프트웨어 또는 실행중인 소프트웨어와 같은 컴퓨터 관련 엔티티를 포함하는 것이다. 예를 들어, 컴포넌트는 이에 한정되는 것은 아니지만, 프로세서상에서 실행하는 프로세스, 프로세서, 객체, 실행 가능한 실행 스레드, 프로그램 및/또는 컴퓨터일 수도 있다. 예시로, 연산 디바이스 상에서 구동하는 애플리케이션과 연산 디바이스 모두 컴포넌트일 수 있다. 하나 이상의 컴포넌트가 프로세스 및/또는 실행 스레드 내에 상주할 수 있으며, 컴포넌트가 하나의 컴퓨터에 집중될 수도 있고 그리고/또는 2개 이상의 컴퓨터 사이에 분산될 수도 있다. 또한, 이들 컴포넌트는 각종 데이터 구조를 저장한 각종 컴퓨터 판독 가능 매체로부터 실행될 수 있다. 컴포넌트들은 하나 이상의 데이터 패킷(예를 들어, 로컬 시스템, 분산 시스템의 다른 컴포넌트와 그리고/또는 신호에 의해 다른 시스템들과 인터넷과 같은 네트워크를 거쳐 상호 작용하는 어떤 컴포넌트로부터의 데이터)을 갖는 신호에 따르는 등 로컬 및/또는 원격 프로세스에 의해 통신할 수 있다.
100 : 워크셀 레지스터
200 : 스킬 레지스터
300 : 워크셀 매니저
400 : 워크셀 엔진
500 : 태스크 빌더
600 : 마스터 DB
700 : 유저 DB
800 : 디스플레이
900 : 입력장치

Claims (19)

  1. 로봇을 프로그래밍하기 위한 스킬 기반 로봇 프로그래밍 장치에 있어서,
    로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템 및 상기 워크셀 아이템을 구동하는 명령어의 집합인 마스터 스킬(skill)을 저장하는 마스터 DB;
    상기 마스터 DB에 저장된 워크셀 아이템 중 사용할 워크셀 아이템을 선택하고, 선택된 워크셀 아이템의 파라미터를 입력하는 워크셀 매니저;
    상기 선택된 워크셀 아이템과 관련이 있는 마스터 스킬을 상기 마스터 DB로부터 조회하고, 상기 조회된 마스터 스킬에 대해 상기 선택된 워크셀 아이템의 파라미터 중에서 적어도 하나의 파라미터를 적용하여 유저 스킬을 생성하는 워크셀 엔진;
    상기 선택된 워크셀 아이템 및 상기 유저 스킬을 저장하는 유저 DB; 및
    상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 태스크 빌더;를 포함하는
    스킬 기반 로봇 프로그래밍 장치.
  2. 제1항에 있어서,
    로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템을 등록하고 상기 마스터 DB에 저장하는 워크셀 레지스터; 및
    상기 마스터 DB에 저장된 워크셀 아이템을 이용하여 마스터 스킬(skill)을 생성하거나 편집하고, 상기 마스터 DB에 저장하는 스킬 레지스터; 를 더 포함하는,
    스킬 기반 로봇 프로그래밍 장치.
  3. 제1항 또는 제2항에 있어서, 상기 워크셀 아이템의 파라미터는,
    워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 각 지점들의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 어느 하나를 포함하며,
    상기 파라미터의 항목은 워크셀 아이템을 등록하는 워크셀 레지스터에 의해 설정되고, 상기 파라미터의 입력은 워크셀 레지스터, 워크셀 매니저 및 태스크 빌더 중 적어도 어느 하나에 의해 수행되는,
    스킬 기반 로봇 프로그래밍 장치.
  4. 제1항 또는 제2항에 있어서, 상기 워크셀 매니저는,
    사용자가 사용할 워크셀 아이템을 선택할 수 있도록 하기 위하여, 상기 마스터 DB에 저장된 워크셀 아이템을 조회하고,
    사용자가 사용할 워크셀 아이템을 선택하는 경우, 상기 선택된 워크셀 아이템의 파라미터를 입력할 수 있도록 하는 화면을 제공하는,
    스킬 기반 로봇 프로그래밍 장치.
  5. 제1항 또는 제2항에 있어서, 상기 워크셀 엔진은,
    상기 마스터 DB에 저장된 마스터 스킬 중에서 상기 선택된 워크셀 아이템과 관련된 마스터 스킬을 조회하고, 상기 선택된 워크셀 아이템의 파라미터 중 적어도 일부의 파라미터를 상기 조회된 마스터 스킬에 제공하여 유저 스킬을 생성하는 스킬 엔진; 및
    상기 유저 DB에 저장된 워크셀 아이템과 유저 스킬을 기반으로 유저 스킬의 집합체인 태스크 템플릿을 생성하고 추천하는 템플릿 엔진;을 포함하는,
    스킬 기반 로봇 프로그래밍 장치.
  6. 제5항에 있어서, 상기 태스크 빌더는,
    상기 워크셀 엔진에 의해 생성되고 추천된 유저 스킬 및 태스크 템플릿을 제공받으며,
    사용자는 상기 제공된 태스크 템플릿 중의 하나를 선택하여 그대로 사용하거나, 또는 상기 제공된 태스크 템플릿을 이용하지 않고 상기 제공된 유저 스킬을 조합하거나, 또는 상기 제공된 태스크 템플 중의 하나를 선택하고, 선택한 태스크 템플릿에 유저 스킬을 추가, 또는 선택한 태스크 템플릿에 포함되어 있는 유저 스킬을 삭제, 교환, 변경하여 태스크를 생성하는,
    스킬 기반 로봇 프로그래밍 장치.
  7. 제5항에 있어서, 상기 태스크 빌더는,
    하나 이상의 유저 스킬을 작업 순서에 따라 조합하고, 상기 하나 이상의 유저 스킬을 수행할 때 요구되는 작동 주체인 로봇의 위치 정보 및 자세 정보를 직접 교시 또는 간접 교시로 교시 받아 태스크를 생성하는,
    스킬 기반 로봇 프로그래밍 장치.
  8. 제5항에 있어서, 상기 워크셀 엔진은,
    워크셀 아이템의 파라미터를 활용하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 제공하는 패스 엔진을 더 포함하는,
    스킬 기반 로봇 프로그래밍 장치.
  9. 제8항에 있어서, 상기 패스 엔진은,
    상기 선택된 워크셀 아이템의 파라미터를 불러 들이며, 상기 파라미터는 상기 선택된 워크셀 아이템의 기준점 정보와, 상기 기준점을 기준으로 하는 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점에서의 위치 정보 및 자세 정보를 포함하고,
    직접교시 또는 간접교시를 통해 작동 주체인 로봇과 상기 선택된 워크셀 아이템의 기준점 간의 위치를 측정함으로써, 상기 로봇과 상기 선택된 워크셀 아이템의 전환점, 접근점, 경로점 및 동작점 중 적어도 어느 하나의 점 간의 상대적인 위치 정보와 자세 정보를 계산하여 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성하는,
    스킬 기반 로봇 프로그래밍 장치.
  10. 로봇을 프로그래밍하기 위한 스킬 기반 로봇 프로그래밍 장치를 이용한 스킬 기반 로봇 프로그래밍 방법에 있어서,
    로봇 또는 주변장치를 포함하며 관련 파라미터를 갖는 워크셀 아이템 중 사용할 워크셀 아이템을 설정하는 단계;
    상기 설정된 워크셀 아이템을 바탕으로 유저 스킬을 생성하는 단계; 및
    상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 단계;를 포함하는
    스킬 기반 로봇 프로그래밍 방법.
  11. 제10항에 있어서,
    상기 사용할 워크셀 아이템을 설정하는 단계는,
    마스터 DB에 저장된 워크셀 아이템을 검색하고, 검색된 워크셀 아이템 중 사용할 워크셀 아이템을 선택하는 단계;
    상기 선택된 워크셀 아이템의 파라미터를 입력하는 단계; 및
    상기 선택된 워크셀 아이템 및 설정된 파라미터를 유저 DB에 저장하는 단계;를 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  12. 제11항에 있어서,
    상기 유저 DB에 저장된 워크셀 아이템 및 유저 스킬을 바탕으로 사용자의 로봇 프로그래밍 시에 추천할 수 있는 태스크 템플릿을 생성하는 단계;를 더 포함하는
    스킬 기반 로봇 프로그래밍 방법.
  13. 제11항에 있어서,
    상기 사용할 워크셀 아이템을 설정하는 단계는,
    상기 선택된 워크셀 아이템의 파라미터를 입력하는 단계 이후에
    상기 선택된 워크셀 아이템의 작동을 시험하는 단계;를 더 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  14. 제10항 또는 제11항에 있어서,
    상기 사용할 워크셀 아이템 설정을 바탕으로 유저 스킬을 생성하는 단계는,
    선택된 상기 워크셀 아이템과 관련된 마스터 스킬을 마스터 DB에서 조회하는 단계; 및
    선택된 상기 워크셀 아이템의 파라미터 중 적어도 하나를 상기 워크셀 아이템과 관련된 마스터 스킬에 적용하여 유저 스킬을 생성하는 단계; 를 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  15. 제11항에 있어서, 상기 선택된 워크셀 아이템 관련 파라미터는,
    워크셀 아이템의 카테고리, 워크셀 아이템의 종류, 워크셀 아이템의 모델, 워크셀 아이템의 명칭, 무게, 무게중심, TCP, 부피, 기준점, 전환점, 접근점, 경로점, 동작점, 및 각 지점들의 자세 정보, 속도, 가속도, 접속형태, 연결 포트 및 대기시간 중 적어도 하나를 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  16. 제11항에 있어서,
    상기 선택된 워크셀 아이템의 파라미터는 기준점과 상기 기준점을 기준으로 하는 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나를 포함하고,
    상기 선택된 워크셀 아이템의 파라미터를 입력하는 단계는,
    직접 교시 또는 간접 교시를 통해 작동 주체인 로봇과 상기 선택된 워크셀 아이템의 기준점 간의 위치를 측정하여 상기 기준점의 위치 정보를 설정하는 단계; 및
    패스 엔진에 의하여 설정된 상기 기준점의 위치 정보를 바탕으로 상기 로봇과 상기 선택된 워크셀 아이템의 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나의 점 간의 상대적인 위치 정보와 자세 정보를 계산하여 상기 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하ㅏ나의 점과 상기 로봇과의 상대적인 위치 정보와 자세 정보를 설정하는 단계;를 포함하고,
    상기 선택된 워크셀 아이템을 바탕으로 유저 스킬을 생성하는 단계는,
    설정된 상기 전환점, 접근점, 경로점, 및 동작점 중 적어도 어느 하나의 점과 상기 로봇과의 상대적인 위치 정보와 자세 정보를 바탕으로 유저 스킬에 포함되는 이동 관련 명령어의 진행 경로 및 자세를 자동으로 생성하는 단계를 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  17. 제12항에 있어서,
    상기 유저 스킬을 바탕으로 로봇이 작업해야 할 태스크를 생성하는 단계는,
    상기 태스크 템플릿 중의 하나를 선택하여 그대로 사용하거나, 또는 상기 태스크 템플릿을 이용하지 않고 상기 유저 스킬을 조합하거나, 또는 상기 태스크 템플릿 중의 하나를 선택하고, 선택한 태스크 템플릿에 유저 스킬을 추가, 또는 선택한 태스크 템플릿에 포함되어 있는 유저 스킬을 삭제, 교환, 변경하여 태스크를 생성하는 단계를 포함하는,
    스킬 기반 로봇 프로그래밍 방법.
  18. 제17항에 있어서, 상기 태스크는,
    복수 개의 유저 스킬을 작업 순서대로 배치하여 구성된 것인,
    스킬 기반 로봇 프로그래밍 방법.
  19. 제10항 또는 제11항의 방법을 실행시키기 위하여 컴퓨터 판독 가능 기록매체에 저장된 컴퓨터 프로그램.
KR1020170015715A 2017-02-03 2017-02-03 스킬 기반 로봇 프로그래밍 장치 및 방법 KR102012073B1 (ko)

Priority Applications (4)

Application Number Priority Date Filing Date Title
KR1020170015715A KR102012073B1 (ko) 2017-02-03 2017-02-03 스킬 기반 로봇 프로그래밍 장치 및 방법
PCT/KR2018/001095 WO2018143607A1 (ko) 2017-02-03 2018-01-25 스킬 기반 로봇 프로그래밍 장치 및 방법
US16/483,220 US20200230817A1 (en) 2017-02-03 2018-01-25 Skill-based robot programming apparatus and method
EP18747436.6A EP3579100A4 (en) 2017-02-03 2018-01-25 APPARATUS AND METHOD FOR SKILL-BASED ROBOT PROGRAMMING

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020170015715A KR102012073B1 (ko) 2017-02-03 2017-02-03 스킬 기반 로봇 프로그래밍 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20180090623A true KR20180090623A (ko) 2018-08-13
KR102012073B1 KR102012073B1 (ko) 2019-08-19

Family

ID=63040830

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020170015715A KR102012073B1 (ko) 2017-02-03 2017-02-03 스킬 기반 로봇 프로그래밍 장치 및 방법

Country Status (4)

Country Link
US (1) US20200230817A1 (ko)
EP (1) EP3579100A4 (ko)
KR (1) KR102012073B1 (ko)
WO (1) WO2018143607A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102298423B1 (ko) * 2020-11-03 2021-09-06 주식회사 아이오테드 코딩 확인이 가능한 코딩 시뮬레이션 장치

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102018214417B3 (de) * 2018-08-27 2019-07-25 Volkswagen Aktiengesellschaft Verfahren zur Programmierung eines Roboters sowie Recheneinrichtung und Computerprogramm
US11244106B2 (en) * 2019-07-03 2022-02-08 Microsoft Technology Licensing, Llc Task templates and social task discovery
US20220281105A1 (en) * 2019-08-22 2022-09-08 Nec Corporation Robot control system, robot control method, and recording medium
EP4185441A1 (en) * 2020-07-22 2023-05-31 Flexxbotics Mesh network of reconfigurable robots
US11787054B2 (en) * 2020-12-22 2023-10-17 Intrinsic Innovation Llc Robot planning
CN113199472B (zh) * 2021-04-14 2022-07-26 达闼机器人股份有限公司 机器人控制方法、装置、存储介质、电子设备和机器人
CN117795442A (zh) * 2021-08-31 2024-03-29 西门子股份公司 生产系统的自动化控制系统、方法及存储介质
WO2023162164A1 (ja) * 2022-02-25 2023-08-31 三菱電機株式会社 教示支援装置、作業システム、教示支援方法および教示支援プログラム
CN116312147B (zh) * 2023-05-11 2023-07-21 深圳市亚博智能科技有限公司 基于教学机器人的编程教学方法及系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10291178A (ja) * 1997-04-18 1998-11-04 Nippon Telegr & Teleph Corp <Ntt> 作業経路追従式ロボットマニピュレータの教示データ修正方法
JP2005066797A (ja) * 2003-08-27 2005-03-17 Fanuc Ltd ロボットプログラム位置修正装置
KR20110070508A (ko) * 2009-12-18 2011-06-24 한국생산기술연구원 그래픽 기반 로봇 프로그래밍 시스템
WO2016103307A1 (ja) * 2014-12-26 2016-06-30 川崎重工業株式会社 ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4835730A (en) * 1987-02-27 1989-05-30 Adept Technology, Inc. Database driven robot programming system and method
JP2001222306A (ja) * 2000-02-07 2001-08-17 Toshiba Mach Co Ltd ロボット制御装置及び教示点データ作成装置
DE602007013470D1 (de) * 2007-03-30 2011-05-05 Abb Technology Ab Verfahren und vorrichtung zur programmierung eines industrieroboters
US9465384B1 (en) * 2013-06-24 2016-10-11 Redwood Robotics, Inc. Methods and systems for tiered programming of robotic device
US9555545B2 (en) * 2014-05-21 2017-01-31 Bot & Dolly, Llc Systems and methods for time-based parallel robotic operation
US9855658B2 (en) * 2015-03-19 2018-01-02 Rahul Babu Drone assisted adaptive robot control

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10291178A (ja) * 1997-04-18 1998-11-04 Nippon Telegr & Teleph Corp <Ntt> 作業経路追従式ロボットマニピュレータの教示データ修正方法
JP2005066797A (ja) * 2003-08-27 2005-03-17 Fanuc Ltd ロボットプログラム位置修正装置
KR20110070508A (ko) * 2009-12-18 2011-06-24 한국생산기술연구원 그래픽 기반 로봇 프로그래밍 시스템
WO2016103307A1 (ja) * 2014-12-26 2016-06-30 川崎重工業株式会社 ロボットの動作プログラム生成方法及びロボットの動作プログラム生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102298423B1 (ko) * 2020-11-03 2021-09-06 주식회사 아이오테드 코딩 확인이 가능한 코딩 시뮬레이션 장치
WO2022097820A1 (ko) * 2020-11-03 2022-05-12 주식회사 아이오테드 코딩 확인이 가능한 코딩 시뮬레이션 장치

Also Published As

Publication number Publication date
KR102012073B1 (ko) 2019-08-19
EP3579100A1 (en) 2019-12-11
EP3579100A4 (en) 2020-12-30
US20200230817A1 (en) 2020-07-23
WO2018143607A1 (ko) 2018-08-09

Similar Documents

Publication Publication Date Title
KR102012073B1 (ko) 스킬 기반 로봇 프로그래밍 장치 및 방법
Alatartsev et al. Robotic task sequencing problem: A survey
EP1842631B1 (en) Apparatus and method for automatic path generation for an industrial robot
CN106457565B (zh) 用于对机器人进行编程的方法和系统
JP7096288B2 (ja) ロボットを制御する方法
JP6914329B2 (ja) 手作業場ユニット、リモートデータ処理装置、手作業場動作システム、手作業場動作方法、及び、手作業場提供方法
CN108235696B (zh) 机器人控制方法和设备
US20200122327A1 (en) Method and system for programming a cobot for a plurality of industrial cells
WO2004085120A1 (ja) ロボットシミュレーション装置、および、シミュレーションプログラム
Stumm et al. On-site robotic construction assistance for assembly using a-priori knowledge and human-robot collaboration
Togias et al. Virtual reality environment for industrial robot control and path design
JP7184595B2 (ja) 工作機械システム
Xiao et al. A STEP-compliant industrial robot data model for robot off-line programming systems
Tian et al. Adroid: Augmenting hands-on making with a collaborative robot
Yang et al. HA R 2 bot: a human-centered augmented reality robot programming method with the awareness of cognitive load
Hoyos et al. Skill-based easy programming interface for industrial applications
Ashley A mosaic for machine tools
Mousavi Mohammadi et al. A real-time impedance-based singularity and joint-limits avoidance approach for manual guidance of industrial robots
CN105988418A (zh) 机器人
Vosniakos et al. Structured design of flexibly automated manufacturing cells through semantic models and petri nets in a virtual reality environment
Kapoor et al. Integrated teleoperation and automation for nuclear facility cleanup
Syrjänen Task level robot programming: Background, methods and current state
Bulej et al. Simulation of manipulation task using iRVision aided robot control in Fanuc RoboGuide software
Wang et al. Multi-agent cooperative swarm learning for dynamic layout optimisation of reconfigurable robotic assembly cells based on digital twin
Zafra Navarro et al. UR robot scripting and offline programming in a virtual reality environment

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant