KR20230143002A - 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법 - Google Patents

로봇의 기능 모듈의 개발 환경 제공 장치 및 방법 Download PDF

Info

Publication number
KR20230143002A
KR20230143002A KR1020220041749A KR20220041749A KR20230143002A KR 20230143002 A KR20230143002 A KR 20230143002A KR 1020220041749 A KR1020220041749 A KR 1020220041749A KR 20220041749 A KR20220041749 A KR 20220041749A KR 20230143002 A KR20230143002 A KR 20230143002A
Authority
KR
South Korea
Prior art keywords
robot
virtual
unit
teaching
module
Prior art date
Application number
KR1020220041749A
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 KR1020220041749A priority Critical patent/KR20230143002A/ko
Priority to EP23160327.5A priority patent/EP4257303A1/en
Priority to US18/189,678 priority patent/US20230311325A1/en
Publication of KR20230143002A publication Critical patent/KR20230143002A/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/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
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J19/00Accessories fitted to manipulators, e.g. for monitoring, for viewing; Safety devices combined with or specially adapted for use in connection with manipulators
    • B25J19/0095Means or methods for testing 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/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/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/1605Simulation of manipulator lay-out, design, modelling of manipulator
    • 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/1664Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B17/00Systems involving the use of models or simulators of said systems
    • G05B17/02Systems involving the use of models or simulators of said systems electric
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/4155Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by programme execution, i.e. part programme or machine function execution, e.g. selection of a programme
    • 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/39438Direct programming at the console

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Manufacturing & Machinery (AREA)
  • Manipulator (AREA)

Abstract

제공 장치가 개시된다. 상기 제공 장치는 가상 세계를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 상기 가상 세계 내에 생성하는 생성부; 상기 실제 로봇을 타겟으로 개발된 제1 기능 모듈을 상기 가상 로봇에 제공하거나, 상기 가상 로봇을 타겟으로 개발된 제2 기능 모듈을 상기 실제 로봇에 제공하는 제공부를 포함할 수 있다.

Description

로봇의 기능 모듈의 개발 환경 제공 장치 및 방법{Apparatus and method for providing a development environment for functional modules of a robot}
본 발명은 로봇과 관련된 기능 모듈을 개발할 수 있는 환경을 제공하는 장치 및 방법에 관한 것이다.
로봇, AMR(Autonomous Mobile Robot, 자율 주행 로봇) 등의 하드웨어는 다양한 분야에서 널리 사용되고 있다.
하지만, 많은 하드웨어가 제조사에게 제공하는 제한된 기능, 조작법, 교시법(티칭법)에 의해 구동되고 있다. 따라서, 각종 하드웨어는 제한된 작업 환경에만 적용되고 있으며, 숙련자에 의해서만 개발되거나 관리되고 있다.
이로 인해, 각종 하드웨어의 보급화가 지연되고 있다.
한국공개특허공보 제2015-0074375호에는 식별된 기종별 로봇에 대해 통일된 사용자 인터페이스를 제공하는 로봇 플랫폼 환경을 제공받아 로봇의 기종별 조작법이나 명령을 모르더라도 통일된 사용자 인터페이스를 통해 공통된 사용자 명령으로 로봇을 제어하는 기술이 개시되고 있다.
한국공개특허공보 제2015-0074375호
본 발명은 메타버스에서 로봇의 기능 모듈과 공정을 개발할 수 있으며, 로봇의 주변 기기가 포함된 로봇 생태계의 환경을 제공하는 제공 장치 및 방법을 마련하기 위한 것이다.
본 발명의 제공 장치는 가상 세계를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 상기 가상 세계 내에 생성하는 생성부; 상기 실제 로봇을 타겟으로 개발된 제1 기능 모듈을 상기 가상 로봇에 제공하거나, 상기 가상 로봇을 타겟으로 개발된 제2 기능 모듈을 상기 실제 로봇에 제공하는 제공부;를 포함할 수 있다.
상기 생성부는 상기 가상 세계에 입점한 가상 업체를 생성할 수 있다. 이때, 상기 가상 업체에서 제공하는 가상의 주변 기기를 모의하거나, 기능 모듈이 탑재된 상기 가상 로봇의 동작을 모의하는 시뮬레이션부가 마련될 수 있다.
상기 가상 세계 내에서, 기능 모듈이 탑재된 상기 실제 로봇의 동작을 모의하는 시뮬레이션부가 마련될 수 있다. 상기 시뮬레이션부는 상기 가상 로봇에 매칭되는 상기 실제 로봇의 제어기의 제어를 통해 상기 가상 로봇을 동작시킬 수 있다.
고객이 특정 실제 로봇을 구입하면, 상기 생성부는 상기 특정 실제 로봇에 매칭되는 특정 가상 로봇을 상기 가상 세계에 생성할 수 있다.
고객의 요청에 의해, 특정 가상 로봇의 공정을 모의하는 시뮬레이션부가 마련될 수 있다. 상기 시뮬레이션부는 상기 공정의 모의 시 상기 특정 실제 로봇의 제어기와 통신할 수 있다. 상기 시뮬레이션부는 상기 제어기로부터 수신된 제어 정보에 따라 상기 가상 로봇의 공정을 모의할 수 있다.
상기 공정은 마켓 서버로부터 제공되거나 상기 가상 세계에 입점한 가상 업체로부터 제공된 기능 모듈에 의해 수행될 수 있다.
상기 특정 실제 로봇을 대상으로 상기 시뮬레이션부에서 모의된 공정이 탑재 요청되면, 상기 제공부는 상기 시뮬레이션부의 모의에 사용된 상기 기능 모듈을 그대로 상기 특정 실제 로봇에 제공할 수 있다.
상기 생성부는 가상 세계에 입점한 가상 업체를 생성할 수 있다. 상기 제공부는 상기 가상 세계에서 구매한 주변 기기 또는 기능 모듈의 주문 정보를 실제의 업체에 제공할 수 있다.
상기 가상 로봇에 탑재된 티칭 모듈을 이용하여 상기 가상 로봇을 티칭하는 티칭부가 마련될 수 있다.
상기 티칭부는 티칭 결과를 상기 실제 로봇의 제어기로 전송할 수 있다.
상기 티칭부의 티칭 결과는 상기 제어기를 통하여 상기 가상 로봇에 대응되는 상기 실제 로봇에 그대로 적용될 수 있다.
상기 티칭부는 상기 가상 로봇의 티칭 과정에서 상기 제어기의 도움을 받아 상기 가상 로봇을 움직일 수 있다.
상기 생성부는 NFT(Non-Fungible Token) 라이브러리를 이용하여 상기 기능 모듈의 복제를 방지할 수 있다.
본 발명의 제공 장치는 가상 세계 내에 생성된 가상 로봇을 대상으로 하는 가상 제어 정보를 입수하는 제1 통신부; 상기 가상 제어 정보에 따라 움직이는데 필요한 실제 로봇의 로봇 암의 회전 각도, 회전 방향 중 적어도 하나가 포함된 해석 정보를 산출하는 해석부;를 포함하고, 상기 제1 통신부는 상기 가상 로봇에 상기 해석 정보를 제공할 수 있다.
본 발명의 제공 장치는 가상 세계를 생성하는 제공 서버와 통신하는 제2 통신부; 상기 제2 통신부를 통해 상기 제공 서버에 접속하는 메타부;를 포함할 수 있다.
실제 로봇에 매칭되는 가상 로봇이 상기 가상 세계 내에 생성될 때, 상기 메타부는 가상 세계 내에서 상기 가상 로봇의 가상 주변 기기를 구입할 수 있는 메뉴를 제공하거나, 상기 가상 로봇의 공정을 설정하는 메뉴를 제공할 수 있다.
상기 메타부는 상기 가상 주변 기기의 구입 내역을 실제의 주변 기기 업체에 제공하거나, 상기 가상 로봇의 공정을 상기 실제 로봇에 제공할 수 있다.
본 발명의 제공 방법은 가상 세계를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 상기 가상 세계 내에 생성하는 생성 단계; 상기 가상 로봇에 탑재된 티칭 모듈을 이용하여 상기 가상 로봇을 티칭하는 티칭 단계; 티칭된 상기 가상 로봇의 동작을 모의하거나 기능 모듈에 기초한 상기 가상 로봇의 동작을 모의하는 시뮬레이션 단계; 상기 티칭의 결과 또는 상기 모의된 결과를 상기 실제 로봇에 제공하는 제공 단계;를 포함할 수 있다.
본 발명의 제공 장치는 로봇을 테스트해볼 수 있는 가상 세계를 제공할 수 있다. 고객은 가상 세계에 존재하는 가상 업체를 통하여 가상 로봇 및 가상의 주변 기기를 구입하고 이용할 수 있다.
고객은 가상 업체를 통해 로봇 관련 지원을 받을 수 있으며, 가상 IDE(Integrated Development Environment)를 이용하여 교시(티칭)와 기능 모듈을 생성할 수 있다. 고객은 교시 또는 기능 모듈에 따라 가상 로봇을 운영하고 운영 결과를 실제 로봇에 재교시할 수 있다.
가상 세계에서 이루어지는 가상 로봇의 교시, 기능 모듈에 기반한 동작은 실제 로봇의 제어기를 통해 수행될 수 있다. 이 경우, 가상 로봇의 동작은 실제 로봇의 동작과 그대로 일치할 수 있다. 실제 로봇의 제어기의 도움을 받아서 완성된 교시와 기능 모듈은 현실 세계의 실제 로봇에 그대로 적용될 수 있다.
도 1은 본 발명의 관리 장치를 나타낸 개략도이다.
도 2는 본 발명의 제공 장치를 나타낸 개략도이다.
도 3은 본 발명의 제공 장치를 이용하는 고객의 입장에서 바라본 제공 장치의 동작을 나타낸 개략도이다.
도 4는 실제 로봇의 제어기를 나타낸 블록도이다.
도 5는 실제 로봇의 관리기를 나타낸 블록도이다.
도 6은 본 발명의 제공 방법을 나타낸 흐름도이다.
도 7은 고객의 입장에서 살펴본 제공 방법을 나타낸 흐름도이다.
도 8은 비교 실시예의 로봇 동작법을 나타낸 흐름도이다.
도 9는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서에서, 동일한 구성요소에 대해서 중복된 설명은 생략한다.
또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로써, 본 발명을 한정하려는 의도로 사용되는 것이 아니다.
또한 본 명세서에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.
또한 본 명세서에서, '및/또는' 이라는 용어는 복수의 기재된 항목들의 조합 또는 복수의 기재된 항목들 중의 어느 항목을 포함한다. 본 명세서에서, 'A 또는 B'는, 'A', 'B', 또는 'A와 B 모두'를 포함할 수 있다.
또한 본 명세서에서, 본 발명의 요지를 흐리게 할 수 있는 공지 기능 및 구성에 대한 상세한 설명은 생략될 것이다.
도 1은 본 발명의 관리 장치(100)를 나타낸 개략도이다.
도 1에 도시된 관리 장치(100)는 제어기(110), 관리기(120), 마켓 서버(190)를 포함할 수 있다.
제어기(110)는 하드웨어(90)를 제어할 수 있다. 하드웨어(90)는 제어기(110)로부터 제공된 제어 정보, 제어 신호에 의해 제어되는 로봇, AMR(Autonomous Mobile Robot) 등을 포함할 수 있다.
제어기(110)는 제어 프로그램 등의 소프트웨어와 해당 소프트웨어가 실행되는 처리 장치가 결합된 것일 수 있다. 일 예로, 로봇의 제어 정보를 생성하는 제어 프로그램이 실행 가능하게 탑재된 처리 장치가 제어기(110)에 해당될 수 있다.
마켓 서버(190)에는 하드웨어(90)에 특정 기능을 부여하는 기능 모듈 f(제어 모듈 f1, 프레임워크 모듈 f2 등을 포함)가 등록될 수 있다. 기능 모듈 f는 하드웨어(90)의 동작 방식 및 동작 순서 중 적어도 하나를 결정할 수 있다. 본 명세서에 기재된 '모듈'은 특정 기능을 수행하는 프로그램 자체를 의미하거나, 해당 프로그램이 탑재되고 해당 프로그램의 실행 또는 연산을 통해 특정 기능을 수행하는 프로세서, 연산기, 반도체칩 등을 의미할 수 있다. 기능 모듈 f는 소프트웨어에 의해 제어되는 로봇, AMR 등의 하드웨어(유니트, 전자 기기)에 특정 기능을 부여하는 모듈을 포함하거나 사용자에게 편의 기능을 제공하는 모듈을 포함할 수 있다.
동일한 하드웨어(90)라 하더라도 하드웨어(90)를 제어하는 제어기(110)에 따라 하드웨어(90)는 다양한 기능을 가질 수 있다.
일 예로, 제어기(110)를 통해 물건을 집어 들거나 운반하는 제어 정보가 제공되면, 하드웨어(90)에 해당되는 로봇은 물건을 운반하는 기능을 가질 수 있다. 제어기(110)를 통해 용접에 필요한 정보가 제공되면, 로봇은 물건을 용접하는 기능을 가질 수 있다. 물론, 기능에 따라 하드웨어(90)적으로도 로봇에 설치된 그리퍼(gripper), 매니퓰레이터(manipulator) 등의 하드웨어(90)적 엔드 이펙터(end effector)가 용접기와 같은 요소로 대체되는 것이 전제될 수 있다.
마켓 서버(190)에는 로봇이 물건의 운반 기능을 갖도록 로봇을 제어하는 기능 모듈이 등록될 수 있다. 또한, 마켓 서버(190)에는 로봇이 물건을 용접하는 기능을 갖도록 로봇을 제어하는 기능 모듈이 등록될 수 있다.
이때, 기능 모듈 f는 로봇 등의 하드웨어(90)가 특정 기능(예를 들어, 운반, 용접 등)을 수행하도록 로봇을 제어하는 프로그램, 소프트웨어 등을 포함할 수 있다. 다른 관점에서 살펴보면, 기능 모듈 f는 하드웨어(90)가 특정 기능을 수행하는데 필요한 제어 정보를 생성할 수 있다.
로봇에 특정 기능을 부여하기 위해서는 로봇으로 하여금 해당 기능을 수행하도록 하는 기능 모듈을 마켓 서버(190)로부터 다운로드하고, 다운로드한 기능 모듈을 제어기(110)에 설치할 필요가 있다. 이를 위해 관리기(120)가 사용될 수 있다. 다운로드한 기능 모듈을 구성하는 화면 모듈은 관리기에 설치될 수 있다. 다운로드한 기능 모듈을 구성하는 프레임워크 모듈과 제어 모듈은 제어기에 설치될 수 있다. 제어 모듈을 통해 하드웨어가 제어될 수 있다.
관리기(120)는 제어기(110)에 기능 모듈을 설치하거나 제어기(110)에 설치된 기능 모듈을 삭제할 수 있다. 관리기(120)는 퍼스널 컴퓨터, 데스크탑 컴퓨터, 스마트폰, 태블릿 PC(Tablet PC), 하드웨어(90) 전용의 컨트롤러 등을 포함할 수 있다.
관리기(120)가 기능 모듈을 설치 또는 삭제하는 등의 기능 모듈 관리가 일견 용이한 것으로 보이지만, 현실적으로 쉽게 달성하기 어렵다는 것을 환기한다.
일반적으로, 하드웨어(90)의 제조사에서는 하드웨어(90)의 제어를 위한 기본 프로그램을 고객(사용자)에게 제공할 수 있다. 그러나, 해당 기본 프로그램은 기능 모듈의 분리가 어려운 구조를 취하고 있다. 다시 말해, 기본 프로그램에는 기능 모듈 f와 같은 기능을 수행하도록 하는 프로그램 코드가 포함된 것이 분명하다. 하지만 기본 프로그램으로부터 기능 모듈을 삭제하거나 기본 프로그램에 새로운 기능 모듈을 추가하는 것은 매우 어렵다. 왜냐하면, 제조사에서 일반적으로 제공하는 기본 프로그램은 분리 가능한 기능 모듈 자체가 없는 구조, 예를 들어 특정 기능이 기본 프로그램 전체에 융합된 구조를 취하고 있기 때문이다.
따라서, 기존 하드웨어(90)의 고객은 새로운 기능이 필요한 경우, 새로운 기능을 갖는 하드웨어(90)를 새로 구입해야 하는 상황에 처할 수 있다. 또는, 고객은 하드웨어(90)의 제조사에 대하여 새로운 기능의 추가 또는 업데이트를 요청할 수 있다.
제조사 측에서 고객의 요청을 적극적으로 수용한다고 하더라도 새로운 기능의 업데이트에 많은 시간이 소요되는 문제가 있다. 왜냐하면, 새로운 기능의 추가를 위해 기능 관련 코드와 함께 로봇 OS, 런타임(runtime) 등이 포함된 기본 프로그램을 전반적으로 수정하거나 업데이트할 필요가 있기 때문이다. 로봇 OS, 런타임, 기능 관련 코드가 통합된 기본 프로그램이 하드웨어(90) 제어에 사용되는 경우 외부의 다른 업체에서도 해당 하드웨어(90)의 기능 확장을 할 수 있는 방법이 없다. 다른 관점에서 살펴보면, 용접 기능이 없는 로봇에 해당 기능을 추가하는 작업은 로봇의 제조사에 의해서만 수행될 수 있는 것이 현실이다.
또한, 기능 업데이트 과정에서 기본 프로그램이 전반적으로 수정되면, 새롭게 발생하는 각종 버그로 인해 소프트웨어의 에러 통제가 어려울 수 있다.
결국, 하드웨어(90)에 기존 기능과 다른 특정 기능을 새롭게 추가하는 것은 현실적으로 어렵다. 또한, 새로운 기능의 추가가 전제되는 기존 기능의 삭제 역시 현실적으로 어렵다.
각종 하드웨어(90)에 새로운 기능을 추가하기 위해 일단 기본 프로그램으로부터 기능 관련 부분, 코드를 분리시킬 필요가 있다. 해당 목적을 달성하기 위해, 본 발명의 관리 장치(100)는 새로운 구조의 기능 모듈 f를 제안한다.
일 예로, 본 발명에 기재된 기능 모듈 f는 제어 모듈 f1, 프레임워크 모듈 f2, 화면 모듈 f3 중 적어도 하나를 포함할 수 있다. 바람직하게, 기능 모듈 f는 제어 모듈 f1, 프레임워크 모듈 f2, 화면 모듈 f3를 모두 포함하는 것이 좋다. 제어 모듈 f1, 프레임워크 모듈 f2, 화면 모듈 f3는 프로그램 또는 소프트웨어의 형태를 가질 수 있다.
특정 작업을 수행하는 하드웨어(90)의 기능을 구현하기 위해, 제어 모듈 f1은 해당 작업을 수행하도록 하드웨어(90)를 제어할 수 있다. 결과적으로, 제어 모듈 f1은 하드웨어(90)의 제어 정보를 생성하거나 하드웨어(90)를 타겟으로 제어 정보를 출력할 수 있다.
화면 모듈 f3는 하드웨어(90)의 제어 동작을 표시부에 시각적으로 표시할 수 있다. 고객은 표시부를 통해 하드웨어(90)의 동작, 하드웨어(90)의 상태를 인지할 수 있다. 또는, 화면 모듈 f3는 고객의 제어값을 입력받고 제어 모듈에 전달할 수 있다.
프레임워크 모듈 f2는 제어 모듈 f1과 화면 모듈 f3를 연결시킬 수 있다.
프레임워크 모듈 f2는 제어 모듈 f1과 화면 모듈 f3의 기능들에 해당하는 부분의 설계와 구현을 재사용 가능하도록 협업화된 형태로 제공하는 소프트웨어 환경을 포함할 수 있다. 다시 말해, 제어 모듈과 화면 모듈은 동일한 프레임워크 모듈을 이용하여 각자의 기능을 수행할 수 있다.
제어 모듈 f1과 화면 모듈 f3는 프레임워크 모듈 f2를 통해 서로 연동될 수 있다.
일 예로, 고객이 표시부에 표시된 가상의 3차원 공간 상에서 로봇을 움직이면, 해당 움직임에 맞춰 실제의 로봇이 움직이는 것이 유리할 수 있다. 이때, 표시부 상에서 움직인 로봇의 움직임이 실제의 로봇을 움직이는데 필요한 각종 제어값(관절의 각도 변화, 각속도 변화 등)으로 변환되어야 한다. 이때의 변환은 프레임워크 모듈에서 수행되거나, 제어 모듈에서 수행될 수 있다. 해당 변환이 제어 모듈에서 수행되는 경우, 프레임워크 모듈은 화면 모듈로부터 전달된 정보의 형식을 제어 모듈에서 요구하는 형식으로 변환하는 기능을 수행할 수 있다.
이와 반대의 동작 역시 정상적으로 수행되는 것이 좋다. 설정 작업을 수행 중인 로봇의 동작이 표시부에 표시되는 가상의 3차원 공간에 실시간으로 표시되는 것이 좋을 수 있다. 이를 위해, 실제 로봇의 움직임이 가상의 3차원 공간상의 좌표값 등으로 변환될 필요가 있으며, 이때의 변환이 프레임워크 모듈 또는 제어 모듈에 의해 수행될 수 있다. 해당 변환이 제어 모듈에서 수행되는 경우, 프레임워크 모듈은 제어 모듈로부터 전달된 정보의 형식을 화면 모듈에서 요구하는 형식으로 변환하는 기능을 수행할 수 있다.
현실적으로 프레임워크 모듈은 화면 모듈과 제어 모듈에서 공통적으로 사용하는 지원 프로그램, 컴파일러, 인터프리터(interpreter) 라이브러리, 코드 라이브러리, 도구 세트 등과 같이 솔루션 개발을 가능하게 하는 여러 가지 서로 다른 컴포넌트들을 포함할 수 있다. 공통의 컴포넌트를 사용하는 화면 모듈과 제어 모듈은 서로 호환 가능한 정보를 주고받을 수 있다. 따라서, 프레임워크 모듈은 화면 모듈과 제어 모듈 간의 이종 정보를 변환하는 것으로 취급될 수 있다.
이상의 제어 모듈 f1, 프레임워크 모듈 f2, 화면 모듈 f3을 모두 포함하는 기능 모듈 f는 실행 환경에 해당되는 런타임(runtime), OS(Operating System) 등의 기본 요소를 제외하고, 로봇에 특정 기능을 부여하는 모든 요소를 가진 셈이 된다. 특정 기능의 부여는 특정 기능을 달성하는 제어 정보를 하드웨어(90)에 제공하는 것을 의미하거나, 해당 제어 정보를 출력하는 기능 모듈 f를 로봇, AMR, 매니퓰레이터 등의 하드웨어의 관리기 또는 제어기에 설치, 탑재하는 것을 의미할 수 있다.
본 발명에 따르면, 기능 모듈이 제어기(110), 관리기(120)의 OS 등의 기본 요소로부터 분리 가능한 상태가 될 수 있다. 따라서, 하드웨어(90)의 제조사로부터 하드웨어(90)의 특성 정보가 제공된다면, 하드웨어(90)의 제조사뿐만 아니라 다양한 업체에서도 기능 모듈의 제작이 가능하다.
다양한 업체에서 제작된 기능 모듈 f는 마켓 서버(190)에 등록될 수 있다.
고객은 관리기(120)의 표시부 및 입력부를 이용하여 마켓 서버(190)에 접속하고, 마켓 서버(190)에서 필요한 기능을 제공하는 기능 모듈을 다운로드할 수 있다.
표시부는 각종 정보가 시각적으로 표시되는 각종 디스플레이를 포함할 수 있다. 입력부는 고객의 정보를 입력받는 키보드, 마우스, 터치스크린 등을 포함할 수 있다.
관리기(120)는 기능 모듈의 분석을 통해 화면 모듈, 프레임워크 모듈, 제어 모듈을 추출할 수 있다.
관리기(120)는 추출된 화면 모듈 f3를 일단 관리기(120)에 자체 설치할 수 있다. 이를 통해 관리기(120)는 새롭게 다운로드한 기능 모듈의 모니터링 환경을 제공할 수 있다.
한편, 관리기(120)는 추출된 프레임워크 모듈 f2와 제어 모듈 f1을 제어기(110)에 전달할 수 있다. 만약, 제어기(110)에 이미 설치된 상태의 이전 프레임워크 모듈과 이전 제어 모듈이 새로운 프레임워크 모듈 f2, 새로운 제어 모듈 f1과 충돌한다면, 관리기(120)는 이전 프레임워크 모듈과 이전 제어 모듈을 제어기(110)에서 삭제하거나, 해당 삭제 작업을 제어기(110)에 요청할 수 있다. 일반적으로, 새롭게 부가되는 기능은 하드웨어(90)적 요소와 일대일 대응되는 경우가 많으므로, 기존 기능과 충돌할 가능성이 높다. 따라서, 새로운 기능 모듈의 설치 시 기존 기능 모듈은 삭제 처리되는 것이 바람직하다. 하드웨어와 연관되지 않은 기능이 있을 수 있으므로, 새롭게 부가되는 기능이라 하더라도 하드웨어에 꼭 일대일로 대응되지 않을 수 있음을 다시 한번 환기한다.
관리기(120) 또는 제어기(110)는 관리기(120)에 의해 제어기(110)로 전달된 프레임워크 모듈 f2와 제어 모듈 f1을 제어기(110)에 설치할 수 있다.
이상의 과정을 통해, 새로운 기능을 갖는 하드웨어(90)의 작업 환경, 새로운 기능의 관점에서 해당 하드웨어(90)를 모니터링하는 작업 환경이 완비될 수 있다.
한편, 관리기(120)와 제어기(110)는 일체로 형성될 수 있다. 이 경우, 표시부 및 입력부 역시 하드웨어(90)의 제어기(110)에 일체로 형성될 수 있다.
본 발명의 관리 장치(100)에 따르면, 새롭게 부여된 기능에 이상이 발생할 경우, 기능 모듈에 포함된 에러의 수정만으로 해당 문제가 해소될 수 있다. 또한, 각 업체에서는 하드웨어(90) 제어와 관련된 OS, 런타임 등이 포함된 모든 종류의 소프트웨어를 개발할 필요가 없이 기능 모듈만 개발하면 충분하다. 따라서, 각 업체는 기능 모듈의 개발에만 모든 역량을 투입할 수 있으며, 이로 인해 기능 모듈의 품질, 오류 발생률이 개선될 수 있다.
한편, 기능 모듈이 제어기(110)의 OS, 런타임, API 등의 기본 요소로부터 분리 가능한 상태로 제작되면, 새로운 기능의 추가 및 삭제가 가능하며 다양한 업체가 기능 모듈의 제작에 참여할 수 있다.
하지만, 기본 요소로부터 분리되는 기능 모듈에서 표현하는 정보의 종류, 표현 방식이 기본 요소에서 취급하는 정보의 종류, 표현 방식과 달라질 수 있다. 이와 같은 문제를 해소하기 위해, 제어기(110)에는 해석 모듈(13)과 변환 모듈(15)이 추가로 탑재될 수 있다.
예를 들어, 해석 모듈(13)은 제어 모듈로부터 다관절 로봇의 엔드 이펙터를 y축 방향으로 10cm 움직이라는 제어 정보를 입수할 수 있다.
해석 모듈(13)은 엔드 이펙터가 y축 방향으로 10cm만큼 움직이는데 필요한 로봇 암의 회전 각도, 회전 방향 등을 산출할 수 있다. 해석 모듈(13)에서 산출된 회전 각도, 움직임은 해석 모듈(13)에 의해 '해석된 제어 정보'로 지칭될 수 있다. 해석된 제어 정보는 변환 모듈(15)로 제공될 수 있다.
변환 모듈(15)은 해석된 제어 정보를 각 제조사의 로봇(하드웨어(90))이 입력받을 수 있는 데이터 형식으로 변환하고, 해당 로봇에 제공할 수 있다. 해당 로봇은 변환 모듈(15)(15)로부터 입력받은 데이터에 따라 로봇 암을 회전시키고, 해당 회전으로 인해 로봇 암의 단부에 설치된 엔드 이펙터는 y축 방향으로 10cm만큼 움직일 수 있다.
이상의 해석 모듈(13) 및 변환 모듈(15)에 따르면, 기능 모듈의 제조 업체는 엔드 이펙터를 y축 방향으로 10cm만큼 움직이기 위해 로봇 암을 어느 방향으로 어느 각도만큼 회전시켜야 하는지를 알 필요가 없다. 다만, 각 업체는 종국적인 제어 정보, 예를 들어, 엔드 이펙터를 y축 방향으로 10cm만큼 움직이라는 정보를 생성하는 제어 모듈, 이와 관련된 프레임워크 모듈, 화면 모듈을 제작하면 충분하다.
관리 장치(100)에 따르면, 다양한 기능의 기능 모듈이 마련될 수 있다. 관리기(120), 제어기(110)에 대하여 탑재 및 삭제가 자유로운 기능 모듈은 변동 모듈로 지칭될 수 있다.
일 예로, 메타버스 등의 가상 세계(80)에 접속하고 가상 세계(80)에서 제공하는 각종의 서비스를 이용할 수 있는 기능 모듈 또는 변동 모듈이 제공될 수 있다.
가상 세계(80)에 접속하고 가상 세계(80)에서 제공하는 각종의 서비스를 이용할 수 있는 기능 모듈에 해당하는 메타 모듈 g2가 관리기(120) 또는 제어기(110)에 탑재될 수 있다.
메타 모듈은 가상 세계(80)를 제공하는 제공 장치(400), 예를 들어 제공 서버에 접속하고 제공 서버에서 제공하는 로봇 관련 기능을 이용하는데 사용될 수 있다.
제어기(110)에는 제공 서버, 관리기(120), 마켓 서버(190) 중 적어도 하나와 통신하는 제1 통신 모듈(11)이 마련될 수 있다.
관리기(120)에는 제공 서버, 제어기(110), 마켓 서버(190) 중 적어도 하나와 통신하는 제2 통신 모듈(21)이 마련될 수 있다.
제공 장치(400)는 가상 세계(80)를 제공할 수 있다. 고객은 메타 모듈이 탑재된 관리기(120)를 통해 가상 세계(80)에 접속하거나, 퍼스널 컴퓨터, 스마트폰 등의 단말기(40)를 통하여 가상 세계(80)에 접속할 수 있다.
도 2는 본 발명의 제공 장치(400)를 나타낸 개략도이다.
도 2에 도시된 제공 장치(400)는 생성부(410), 제공부(470), 시뮬레이션부(450), 티칭부(430)를 포함할 수 있다.
생성부(410)는 가상 세계(80), 예를 들어 메타버스(Metaverse)를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 가상 세계(80) 내에 생성할 수 있다.
가상 세계(80) 내에 생성된 가상 로봇의 움직임은 실제 세계에 전혀 반영되지 않는다. 따라서, 가상 로봇에 어떠한 오류가 발생되더라도 실제 로봇은 영향을 받지 않을 수 있다. 따라서, 고객은 가상 세계(80)에서 자유롭게 가상 로봇을 이용하여 로봇의 동작, 공정, 기능 모듈의 성능, 기능 등을 테스트해볼 수 있다. 또한, 고객은 현실 세계에서 구입하기 어려웠던 로봇 주변 기기를 가상 세계(80)에서 자유롭게 사용해볼 수 있다.
본 발명의 제공 장치(400)는 가상 세계(80)에서 가상 로봇을 이용하여 테스트한 결과를 그대로 실제 로봇에 적용할 수 있는 환경을 제안할 수 있다. 또한, 실제 로봇과 최대한 동일하게 동작하는 가상 로봇을 가상 세계(80)에 구현하는 환경을 제안할 수 있다.
제공부(470)는 공정 또는 기능 모듈을 가상 로봇과 실제 로봇 간에 상호 교차로 적용할 수 있다.
일 예로, 제공부(470)는 실제 로봇을 타겟으로 개발된 제1 기능 모듈을 가상 로봇에 제공할 수 있다. 또는, 제공부(470)는 가상 로봇을 타겟으로 개발된 제2 기능 모듈을 실제 로봇에 제공할 수 있다.
제1 기능 모듈은 실제 로봇을 타겟으로 하는 실제 IDE(89)(Integrated Development Environment)를 통해 개발될 수 있다.
제2 기능 모듈은 가상 로봇을 타겟으로 하는 가상 IDE(81)(Integrated Development Environment)를 통해 개발될 수 있다.
생성부(410)는 가상 세계(80)에 입점한 가상 업체를 생성할 수 있다. 가상 업체는 마켓 서버(190)에 기능 모듈을 등록한 업체를 포함할 수 있다. 또는, 가상 업체는 로봇의 주변 기기를 제작, 판매하는 업체 중에서 가상 세계(80)에 등록한 업체를 포함할 수 있다.
시뮬레이션부(450)는 가상 업체에서 제공하는 가상의 주변 기기를 모의하거나, 기능 모듈이 탑재된 가상 로봇의 동작을 모의할 수 있다.
가상 세계(80)에 배치된 가상 로봇의 동작은 실제 로봇과 미연동될 수 있다. 다시 말해, 가상 로봇의 동작은 실제 로봇에 대하여 독립적일 수 있다. 예를 들어, 가상 로봇이 a 동작을 취하더라도, 실제 로봇은 정지된 상태를 유지하거나 b 동작을 취할 수 있다. 다만, 가상 로봇의 a 동작은 실제 로봇이 취하는 a 동작과 동일하거나 최대한 유사한 것이 좋다. 이렇게 해야, 가상 로봇을 대상으로 수행된 테스트가 실제 로봇을 대상으로 수행된 테스트와 같아질 수 있기 때문이다.
시뮬레이션부(450)에 의해 가상 세계(80)에 배치된 가상 로봇의 동작, 가상 주변 기기의 동작이 실제 로봇, 실제 주변 기기의 동작을 추종할 수 있다. 이를 위해, 시뮬레이션부(450)는 가상 세계(80) 내에서, 기능 모듈이 탑재된 실제 로봇의 동작을 모의할 수 있다. 실제 로봇의 동작을 모의하기 위해 시뮬레이션부(450)는 가상 로봇에 매칭되는 실제 로봇의 제어기(110)의 제어를 통해 가상 로봇을 동작시킬 수 있다.
가상 로봇은 실제 로봇의 제원을 그대로 이용해서 그래픽적으로 생성될 수 있다. 실제 로봇의 제원을 이용해서 생성된 가상 로봇은 실제 로봇의 로봇 암, 관절 등을 그래픽적으로 포함할 수 있다. 남은 문제는 로봇 암을 얼마만큼 펼칠 것인지, 관절을 얼마만큼 어느 방향으로 회전시킬지 등의 동작 정보를 결정하는 것일 수 있다. 이때, 시뮬레이션부(450)는 동작 정보를 자체 연산하는 대신 실제 로봇의 제어기(110)로부터 동작 정보를 받아와 그대로 사용할 수 있다.
이에 따르면, 가상 로봇의 동작이 실제 로봇과 동일해질 수 있는 장점이 있다. 이는 곧 가상 로봇을 대상으로 한 테스트가 실제 로봇에도 그대로 적용될 수 있다는 것을 의미할 수 있다.
또한, 동작 정보의 생성에 소요되는 시뮬레이션부(450)의 부하가 경감될 수 있다. 시뮬레이션부(450)는 제공 장치(400)에 마련될 수 있는데, 제공 장치(400)에 접속된 복수의 고객을 대상으로 동작 정보를 생성하는데 많은 부하가 걸릴 수 있다. 하지만 본 실시예에 따르면, 시뮬레이션부(450)의 연산 부하가 실제 로봇의 제어기(110)로 분산되는 효과가 있다.
특정 고객의 가상 로봇에 대하여 다른 고객의 실제 로봇의 제어기(110)가 이용되면 다양한 문제가 발생될 수 있다. 다양한 문제 발생을 억제하기 위해 고객이 특정 실제 로봇을 구입하면, 생성부(410)는 특정 실제 로봇에 매칭되는 특정 가상 로봇을 가상 세계(80)에 생성할 수 있다. 이는 곧 가상 세계(80)에 존재하는 가상 로봇에 대응되는 실제 로봇이 현실 세계에 가상 로봇의 숫자만큼 존재하는 것을 의미할 수 있다.
이때, 시뮬레이션부(450)는 고객의 요청에 의해, 특정 가상 로봇의 공정을 모의할 수 있다.
시뮬레이션부(450)는 공정의 모의 시 해당 고객이 구입한 특정 실제 로봇의 제어기(110)와 통신할 수 있다. 시뮬레이션부(450)는 제어기(110)로부터 수신된 제어 정보에 따라 가상 로봇의 공정을 모의할 수 있다. 물론, 이를 위해 시뮬레이션부(450)는 제어기(110)로 공정 관련 정보를 미리 제공할 수 있다.
해당 공정은 마켓 서버(190)로부터 제공되거나 가상 세계(80)에 입점한 가상 업체로부터 제공된 기능 모듈에 의해 수행될 수 있다.
특정 실제 로봇을 대상으로 시뮬레이션부(450)에서 모의된 공정이 탑재 요청되면, 제공부(470)는 시뮬레이션부(450)의 모의(시뮬레이션)에 사용된 기능 모듈을 그대로 특정 실제 로봇에 제공할 수 있다. 이때, 모의에 사용된 기능 모듈은 앞서 설명된 제1 기능 모듈 또는 제2 기능 모듈 중 적어도 하나를 포함할 수 있다.
생성부(410)는 가상 세계(80)에 입점하기를 원하는 실제 업체의 등록 요청에 따라, 가상 세계(80)에 입점한 가상 업체를 생성할 수 있다. 해당 가상 업체의 리스트, 판매 물품의 목록은 가상 세계(80)에 접속한 고객에게 제공될 수 있다.
고객은 가상 업체를 방문하여 필요한 주변 기기, 기능 모듈을 구입하여 사용해볼 수 있다. 고객은 그 중에서 필요한 몇몇 물품을 실제로 구매하길 희망할 수 있다.
사용자가 가상 세계(80)에서 구입한 가상 주변 기기에 대응되는 실제 주변 기기를 다시 검색하고 주문을 요청하는 등의 절차를 다시 수행하는 불편을 줄이기 위해, 제공부(470)는 가상 세계(80)에서 구매한 주변 기기 또는 기능 모듈의 주문 정보를 실제의 업체에 제공할 수 있다.
티칭부(430)는 가상 로봇에 탑재된 티칭 모듈을 이용하여 가상 로봇을 티칭(teaching, 교시)할 수 있다. 티칭은 로봇의 전통적인 학습법 중 하나이다. 일 예로, 고객이 로봇 암을 손으로 붙잡아 이리저리 움직이면서 이동 경로를 설정할 수 있다. 로봇 또는 제어기(110)는 사용자의 손에 의해 로봇 암이 끌려 다닌 경로를 자동 이동 경로로 학습 설정할 수 있다. 추후 자동 동작시 로봇은 해당 자동 이동 경로를 따라 움직일 수 있다. 실제 로봇을 이용한 티칭 방법은 높은 정확도를 갖는 반면, 다양한 방법을 시도해보기 어려운 문제가 있다.
티칭부(430)에 따르면, 가상 세계(80)에 배치된 가상 로봇을 이용하여 다양한 티칭 작업이 수행될 수 있다.
티칭부(430)는 티칭 결과를 실제 로봇의 제어기(110)로 전송할 수 있다. 제어기(110)로 전송된 티칭 결과는 실제 로봇의 이동 경로로 설정될 수 있다. 다시 말해, 티칭부(430)의 티칭 결과는 제어기(110)를 통하여 가상 로봇에 대응되는 실제 로봇에 그대로 적용될 수 있다.
티칭부(430)는 가상 로봇의 티칭 과정에서 제어기(110)의 도움을 받아 가상 로봇을 움직일 수 있다. 제어기(110)의 도움, 예를 들어 시뮬레이션부(450)와 유사하게 제어기(110)로부터 입수된 동작 정보를 이용하면 가상 로봇의 이동 경로가 실제 로봇과 동일해질 수 있다. 실제 로봇과 동일하게 움직이는 가상 로봇을 이용한 티칭 결과는 실제 로봇에 그대로 적용하더라도 별다른 무리가 없을 것이 자명하다.
한편, 생성부(410)는 NFT(Non-Fungible Token) 라이브러리를 이용하여 기능 모듈의 복제를 방지할 수 있다.
도 3은 본 발명의 제공 장치(400)를 이용하는 고객의 입장에서 바라본 제공 장치(400)의 동작을 나타낸 개략도이다.
고객은 메타 모듈이 탑재된 관리기(120) 또는 별도의 단말기(40)를 통해서 메타버스에 해당하는 가상 세계(80)에 접속할 수 있다(1).
실제 로봇을 구입하면, 같은 기종의 가상 로봇이 가상 세계(80)에 등록될 수 있다(2).
고객은 관리기(120)의 메타 모듈을 통해 가상 세계(80)에서 가상 주변 기기를 구입 및 설정하거나 로봇 공정을 설정할 수 있다. 고객은 메타버스에 입점해 있는 가상 업체에 대하여 주변 기기의 구입 또는 티칭을 요청할 수 있다. 가상 업체에 대한 요청은 실제 업체에 연동될 수 있다(3).
3차원 물리 엔진 기반의 가상 세계(80)에서 티칭된 내용은 실제의 현실 세계의 제어기(110)의 제어 라이브러리를 통해 제어, 연산되고, 실제 로봇에 대하여 사용될 수 있다(4). 가상 세계(80)에서 가상 주변 기기를 구입하면, 실제 세계에서도 동일한 종류의 실제 주변 기기가 구입되는 환경을 제공받을 수 있다(5)
고객은 NFT 라이브러리를 다운받고 이를 이용하여 NFT를 생성하고, 공정, 기능 모듈을 제작해서 제공 서버에 업로드할 수 있다. 고객은 NFT를 이용하여 공정 및 기능의 저작권을 보호받고, 수익 구조를 가져갈 수 있다. 메타버스에서 개발되거나 실제 IDE(89)를 통해 개발된 기능 모듈, 공정 모듈은 NFT가 생성되고 마켓 서버(190)에 등록될 수 있다(6).
도 4는 실제 로봇의 제어기를 나타낸 블록도이다.
도 4의 제어기(110)는 제1 통신부(111), 해석부(113)를 포함할 수 있다.
제1 통신부(111)는 가상 세계 내에 생성된 가상 로봇을 대상으로 하는 가상 제어 정보를 입수할 수 있다.
가상 제어 정보는 앞서 설명된 시뮬레이션부(450) 또는 티칭부(430)에 의해 생성될 수 있다.
제1 통신부(111)는 관리기를 거쳐 제공 서버와 통신하거나, 직접 제공 서버와 통신할 수 있다. 이를 위해, 제1 통신부(111)는 통신 기능을 갖는 제1 통신 모듈(11)을 포함할 수 있다.
해석부(113)는 가상 제어 정보에 따라 움직이는데 필요한 실제 로봇의 로봇 암의 회전 각도, 회전 방향 중 적어도 하나가 포함된 해석 정보를 산출할 수 있다. 이때, 해석 정보는 앞에서 설명된 '해석된 제어 정보'에 해당될 수 있다. 해석 정보를 출력하기 위해, 해석부(113)는 해석 기능을 갖는 해석 모듈(13)을 포함할 수 있다.
해석부(113)로부터 출력된 해석 정보는 실제 로봇을 대상으로도 유효한 제어 정보를 포함할 수 있다.
해석부(113)로부터 해석 정보가 출력되면, 제1 통신부는 가상 로봇에 해석 정보를 제공할 수 있다. 구체적으로, 제1 통신부는 제공 서버에 마련된 시뮬레이션부(450) 또는 티칭부(430)에 해석 정보를 전송할 수 있다. 해당 해석 정보는 시뮬레이션부(450) 또는 티칭부(430)를 통해 가상 로봇에 전달되거나 가상 로봇을 움직이는데(티칭 포함) 사용될 수 있다.
도 4에 도시된 제어기(110)는 제공 서버 또는 가상 로봇을 타겟으로 해석 정보를 제공하는 의미에서 '제공 장치'로 지칭될 수 있다.
도 5는 실제 로봇의 관리기를 나타낸 블록도이다.
도 5의 관리기(120)는 제2 통신부(121), 메타부(123)를 포함할 수 있다.
제2 통신부(121)는 가상 세계를 생성하는 제공 서버와 통신할 수 있다. 이를 위해 제2 통신부(121)는 제2 통신 모듈(21)을 포함할 수 있다.
메타부(123)는 제2 통신부(121)를 통해 제공 서버에 접속할 수 있다. 메타부(123)는 제공 서버에 접속하거나, 가상 세계에 입점한 가상 업체와 거래하거나, 가상 로봇을 타겟으로 하는 가상 제어 정보를 취급하는 메타 모듈 g2를 포함할 수 있다.
메타 모듈 g2를 이용하여 메타부(123)는 가상 세계 내에서 가상 로봇의 가상 로봇의 가상 주변 기기를 구입할 수 있는 메뉴를 제공할 수 있다. 또는, 메타부(123)는 가상 로봇의 공정을 설정하는 메뉴를 제공할 수 있다. 가상 주변 기기의 구입 메뉴 또는 공정 설정 메뉴는 관리기에 마련된 디스플레이 등의 표시부를 통해 표시될 수 있다.
메타부(123)는 구입 메뉴에 대한 사용자(고객)의 조작 정보가 입수되면, 가상 주변 기기의 구입 내역을 생성해서 실제의 주변 기기 업체에 제공할 수 있다. 이에 따르면, 실제의 주변 기기가 실제의 주변 기기 업체로부터 배송될 수 있다.
또는, 메타부(123)는 공정 설정 메뉴에 대한 사용자(고객)의 조작 정보에 기초한 가상 로봇의 공정을 실제 로봇에 제공할 수 있다.
메타부(123)는 실제 로봇을 타겟으로 개발된 제1 기능 모듈을 가상 로봇에 제공할 수 있다. 또는, 메타부(123)는 가상 로봇을 타겟으로 개발된 제2 기능 모듈을 실제 로봇에 제공할 수 있다. 이 경우, 메타부(123)는 제공 서버의 제공부(470)에 대하여 제1 기능 모듈 또는 제2 기능 모듈을 주고받을 수 있다.
도 5에 도시된 관리기(120)는 각종 메뉴를 사용자에게 제공하거나, 가상 주변 기기의 구입 내역을 실제 업체에 제공하거나, 가상 로봇의 공정을 실제 로봇에 제공하는 의미에서 '제공 장치'로 지칭되어도 무방하다.도 6은 본 발명의 제공 방법을 나타낸 흐름도이다.
도 6의 제공 방법은 도 2에 도시된 제공 장치(400)에 의해 수행될 수 있다.
제공 방법은 생성 단계(S 510), 티칭 단계(S 520), 시뮬레이션 단계(S 530), 제공 단계(S 540)를 포함할 수 있다.
생성 단계(S 510)는 가상 세계(80)를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 가상 세계(80) 내에 생성할 수 있다. 생성 단계(S 510)는 생성부(410)에 의해 수행될 수 있다.
티칭 단계(S 520)는 가상 로봇에 탑재된 티칭 모듈을 이용하여 가상 로봇을 티칭(teaching)할 수 있다. 티칭 단계(S 520)는 티칭부(430)에 의해 수행될 수 있다.
시뮬레이션 단계(S 530)는 티칭된 가상 로봇의 동작을 모의하거나 기능 모듈에 기초한 가상 로봇의 동작을 모의(시뮬레이션)할 수 있다. 시뮬레이션 단계(S 530)는 시뮬레이션부(450)에 의해 수행될 수 있다.
제공 단계(S 540)는 티칭의 결과 또는 모의된 결과를 실제 로봇에 제공할 수 있다. 제공 단계(S 540)는 제공부(470)에 의해 수행될 수 있다.
도 7은 고객의 입장에서 살펴본 제공 방법을 나타낸 흐름도이다.
고객은 3차원 물리 엔진 기반의 가상 세계(80)에 접속할 수 있다(S 511). 가상 세계(80)는 생성부(410)에 의해 형성된 상태이므로, 고객은 메타 모듈 g2가 탑재된 관리기(120) 또는 단말기(40)를 이용하여 가상 서버에 접속하고, 식별 정보의 인증(예를 들어, 아이디, 패스워드 입력 완료)을 통해 가상 서버에서 제공하는 가상 세계(80)에 입장할 수 있다.
고객은 가상 세계(80)에서 로봇의 각종 공정을 설계하거나, 가상 업체를 통해 필요한 기능 모듈, 공정 모듈을 구입해서 로봇에 곧바로 적용할 수 있다(S 512).
필요에 따라, 고객은 가상 업체를 통해 공정 모듈, 교시(티칭)의 지원을 요청할 수 있다. 또한, 고객은 가상 IDE(81)로 티칭과 기능 모듈을 생성하고 가상 로봇을 대상으로 운영할 수 있다(S 531).
고객은 가상 세계(80)의 가상 로봇을 타겟으로 생성된 기능 모듈, 공정 모듈, 티칭 결과 등의 가상 모듈을 다운로드하여 실제 로봇에 탑재할 수 있다(S 541).
고객은 가상 모듈이 탑재된 실제 로봇을 동작시킬 수 있다(S 550).
도 8은 비교 실시예의 로봇 동작법을 나타낸 흐름도이다.
비교 실시예는 가상 공간의 가상 로봇을 이용하지 않고 실제 로봇을 대상으로 동작에 필요한 절차를 직접 수행하는 방법을 포함할 수 있다.
고객은 먼저 로봇을 이용하여 수행할 공정을 설계해야 한다(S 51).
고객은 공정 설계에 따라 로봇과 주변 기기를 실제 업체에 주문해야 한다(S 52).
고객은 로봇과 주변 기기의 매뉴얼을 습득하고 실제 로봇을 대상으로 티칭을 수행해야 한다(S 53).
고객은 티칭의 반복과 오차에 따라 위 과정을 재설계하고 다시 수행해야 한다 (S 54).
이상에서 살펴본 바와 같이, 비교 실시예에 따르면 자원의 낭비와 시간적 낭비가 극심한 것을 알 수 있다. 반면, 가상 로봇을 이용하는 본 발명에 따르면, 가상 세계(80)에서 티칭과 주변 기기에 대한 테스트가 완료되므로, 로봇 동작에 필요한 자원의 낭비가 방지되고, 실제 로봇의 작업 투입 시간이 대폭 감소될 수 있다.
도 9는 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다. 도 9의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예, 제공 장치(400) 등) 일 수 있다.
도 9의 실시예에서, 컴퓨팅 장치(TN100)는 적어도 하나의 프로세서(TN110), 송수신 장치(TN120), 및 메모리(TN130)를 포함할 수 있다. 또한, 컴퓨팅 장치(TN100)는 저장 장치(TN140), 입력 인터페이스 장치(TN150), 출력 인터페이스 장치(TN160) 등을 더 포함할 수 있다. 컴퓨팅 장치(TN100)에 포함된 구성 요소들은 버스(bus)(TN170)에 의해 연결되어 서로 통신을 수행할 수 있다.
프로세서(TN110)는 메모리(TN130) 및 저장 장치(TN140) 중에서 적어도 하나에 저장된 프로그램 명령(program command)을 실행할 수 있다. 프로세서(TN110)는 중앙 처리 장치(CPU: central processing unit), 그래픽 처리 장치(GPU: graphics processing unit), 또는 본 발명의 실시예에 따른 방법들이 수행되는 전용의 프로세서를 의미할 수 있다. 프로세서(TN110)는 본 발명의 실시예와 관련하여 기술된 절차, 기능, 및 방법 등을 구현하도록 구성될 수 있다. 프로세서(TN110)는 컴퓨팅 장치(TN100)의 각 구성 요소를 제어할 수 있다.
메모리(TN130) 및 저장 장치(TN140) 각각은 프로세서(TN110)의 동작과 관련된 다양한 정보를 저장할 수 있다. 메모리(TN130) 및 저장 장치(TN140) 각각은 휘발성 저장 매체 및 비휘발성 저장 매체 중에서 적어도 하나로 구성될 수 있다. 예를 들어, 메모리(TN130)는 읽기 전용 메모리(ROM: read only memory) 및 랜덤 액세스 메모리(RAM: random access memory) 중에서 적어도 하나로 구성될 수 있다.
송수신 장치(TN120)는 유선 신호 또는 무선 신호를 송신 또는 수신할 수 있다. 송수신 장치(TN120)는 네트워크에 연결되어 통신을 수행할 수 있다.
한편, 본 발명의 실시예는 지금까지 설명한 장치 및/또는 방법을 통해서만 구현되는 것은 아니며, 본 발명의 실시예의 구성에 대응하는 기능을 실현하는 프로그램 또는 그 프로그램이 기록된 기록 매체를 통해 구현될 수도 있으며, 이러한 구현은 상술한 실시예의 기재로부터 본 발명이 속하는 기술 분야의 통상의 기술자라면 쉽게 구현할 수 있는 것이다.
이상에서 본 발명의 실시예에 대하여 상세하게 설명하였지만 본 발명의 권리범위는 이에 한정되는 것은 아니고 다음의 청구범위에서 정의하고 있는 본 발명의 기본 개념을 이용한 통상의 기술자의 여러 변형 및 개량 형태 또한 본 발명의 권리범위에 속하는 것이다.
11...제1 통신 모듈 13...해석 모듈
15...변환 모듈 21...제2 통신 모듈
40...단말기 80...가상 세계
81...가상 IDE 89...실제 IDE
90...하드웨어 100...관리 장치
110...제어기 111...제1 통신부
113...해석부 120...관리기
121...제2 통신부 123...메타부
190...마켓 서버 400...제공 장치
410...생성부 430...티칭부
450...시뮬레이션부 470...제공부

Claims (12)

  1. 가상 세계를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 상기 가상 세계 내에 생성하는 생성부;
    상기 실제 로봇을 타겟으로 개발된 제1 기능 모듈을 상기 가상 로봇에 제공하거나, 상기 가상 로봇을 타겟으로 개발된 제2 기능 모듈을 상기 실제 로봇에 제공하는 제공부;
    를 포함하는 제공 장치.
  2. 제1항에 있어서,
    상기 생성부는 상기 가상 세계에 입점한 가상 업체를 생성하고,
    상기 가상 업체에서 제공하는 가상의 주변 기기를 모의하거나, 기능 모듈이 탑재된 상기 가상 로봇의 동작을 모의하는 시뮬레이션부가 마련된 제공 장치.
  3. 제1항에 있어서,
    상기 가상 세계 내에서, 기능 모듈이 탑재된 상기 실제 로봇의 동작을 모의하는 시뮬레이션부가 마련되고,
    상기 시뮬레이션부는 상기 가상 로봇에 매칭되는 상기 실제 로봇의 제어기의 제어를 통해 상기 가상 로봇을 동작시키는 제공 장치.
  4. 제1항에 있어서,
    고객이 특정 실제 로봇을 구입하면, 상기 생성부는 상기 특정 실제 로봇에 매칭되는 특정 가상 로봇을 상기 가상 세계에 생성하고,
    상기 고객의 요청에 의해, 상기 특정 가상 로봇의 공정을 모의하는 시뮬레이션부가 마련되며,
    상기 시뮬레이션부는 상기 공정의 모의 시 상기 특정 실제 로봇의 제어기와 통신하고,
    상기 시뮬레이션부는 상기 제어기로부터 수신된 제어 정보에 따라 상기 가상 로봇의 공정을 모의하는 제공 장치.
  5. 제4항에 있어서,
    상기 공정은 마켓 서버로부터 제공되거나 상기 가상 세계에 입점한 가상 업체로부터 제공된 기능 모듈에 의해 수행되고,
    상기 특정 실제 로봇을 대상으로 상기 시뮬레이션부에서 모의된 공정이 탑재 요청되면, 상기 제공부는 상기 시뮬레이션부의 모의에 사용된 상기 기능 모듈을 그대로 상기 특정 실제 로봇에 제공하는 제공 장치.
  6. 제1항에 있어서,
    상기 생성부는 가상 세계에 입점한 가상 업체를 생성하고,
    상기 제공부는 상기 가상 세계에서 구매한 주변 기기 또는 기능 모듈의 주문 정보를 실제의 업체에 제공하는 제공 장치.
  7. 제1항에 있어서,
    상기 가상 로봇에 탑재된 티칭 모듈을 이용하여 상기 가상 로봇을 티칭하는 티칭부가 마련되고,
    상기 티칭부는 티칭 결과를 상기 실제 로봇의 제어기로 전송하며,
    상기 티칭부의 티칭 결과는 상기 제어기를 통하여 상기 가상 로봇에 대응되는 상기 실제 로봇에 그대로 적용되는 제공 장치.
  8. 제7항에 있어서,
    상기 티칭부는 상기 가상 로봇의 티칭 과정에서 상기 제어기의 도움을 받아 상기 가상 로봇을 움직이는 제공 장치.
  9. 제1항에 있어서,
    상기 생성부는 NFT(Non-Fungible Token) 라이브러리를 이용하여 상기 기능 모듈의 복제를 방지하는 제공 장치.
  10. 가상 세계 내에 생성된 가상 로봇을 대상으로 하는 가상 제어 정보를 입수하는 제1 통신부;
    상기 가상 제어 정보에 따라 움직이는데 필요한 실제 로봇의 로봇 암의 회전 각도, 회전 방향 중 적어도 하나가 포함된 해석 정보를 산출하는 해석부;를 포함하고,
    상기 제1 통신부는 상기 가상 로봇에 상기 해석 정보를 제공하는 제공 장치.
  11. 가상 세계를 생성하는 제공 서버와 통신하는 제2 통신부;
    상기 제2 통신부를 통해 상기 제공 서버에 접속하는 메타부;를 포함하고,
    실제 로봇에 매칭되는 가상 로봇이 상기 가상 세계 내에 생성될 때,
    상기 메타부는 가상 세계 내에서 상기 가상 로봇의 가상 주변 기기를 구입할 수 있는 메뉴를 제공하거나, 상기 가상 로봇의 공정을 설정하는 메뉴를 제공하며,
    상기 메타부는 상기 가상 주변 기기의 구입 내역을 실제의 주변 기기 업체에 제공하거나, 상기 가상 로봇의 공정을 상기 실제 로봇에 제공하는 제공 장치.
  12. 제공 장치에 의해 수행되는 제공 방법에 있어서,
    가상 세계를 생성하고, 실제 로봇에 매칭되는 가상 로봇을 상기 가상 세계 내에 생성하는 생성 단계;
    상기 가상 로봇에 탑재된 티칭 모듈을 이용하여 상기 가상 로봇을 티칭하는 티칭 단계;
    티칭된 상기 가상 로봇의 동작을 모의하거나 기능 모듈에 기초한 상기 가상 로봇의 동작을 모의하는 시뮬레이션 단계;
    상기 티칭의 결과 또는 상기 모의된 결과를 상기 실제 로봇에 제공하는 제공 단계;
    를 포함하는 제공 방법.
KR1020220041749A 2022-04-04 2022-04-04 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법 KR20230143002A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220041749A KR20230143002A (ko) 2022-04-04 2022-04-04 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법
EP23160327.5A EP4257303A1 (en) 2022-04-04 2023-03-07 Apparatus and method for providing development environment for functional modules of robot
US18/189,678 US20230311325A1 (en) 2022-04-04 2023-03-24 Apparatus and method for providing development environment for functional modules of robot

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220041749A KR20230143002A (ko) 2022-04-04 2022-04-04 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법

Publications (1)

Publication Number Publication Date
KR20230143002A true KR20230143002A (ko) 2023-10-11

Family

ID=85511117

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220041749A KR20230143002A (ko) 2022-04-04 2022-04-04 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법

Country Status (3)

Country Link
US (1) US20230311325A1 (ko)
EP (1) EP4257303A1 (ko)
KR (1) KR20230143002A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150074375A (ko) 2013-12-24 2015-07-02 주식회사 케이티 로봇 플랫폼 환경에서 다양한 기종의 로봇을 제어하는 스마트 기기 및 로봇 제어 방법

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9671777B1 (en) * 2016-06-21 2017-06-06 TruPhysics GmbH Training robots to execute actions in physics-based virtual environment
AT520775B1 (de) * 2017-12-14 2020-04-15 Wittmann Kunststoffgeraete Verfahren zur Validierung von programmierten Ablaufsequenzen oder
JP6895128B2 (ja) * 2018-11-09 2021-06-30 オムロン株式会社 ロボット制御装置、シミュレーション方法、及びシミュレーションプログラム
WO2020130219A1 (ko) * 2018-12-21 2020-06-25 엘지전자 주식회사 로봇의 제어 방법
JP7326911B2 (ja) * 2019-06-20 2023-08-16 オムロン株式会社 制御システムおよび制御方法
CN110238831B (zh) * 2019-07-23 2020-09-18 青岛理工大学 基于rgb-d图像及示教器的机器人示教系统及方法
JP7396872B2 (ja) * 2019-11-22 2023-12-12 ファナック株式会社 拡張現実を用いたシミュレーション装置及びロボットシステム
EP3960396A1 (en) * 2020-08-31 2022-03-02 Siemens Aktiengesellschaft Enhancement of human-machine interface (hmi) for controlling a robot

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150074375A (ko) 2013-12-24 2015-07-02 주식회사 케이티 로봇 플랫폼 환경에서 다양한 기종의 로봇을 제어하는 스마트 기기 및 로봇 제어 방법

Also Published As

Publication number Publication date
US20230311325A1 (en) 2023-10-05
EP4257303A1 (en) 2023-10-11

Similar Documents

Publication Publication Date Title
Joseph et al. Mastering ROS for Robotics Programming: Design, build, and simulate complex robots using the Robot Operating System
US11638994B2 (en) Robotic digital twin control with industrial context simulation
US12061845B2 (en) Creation of a digital twin from a mechanical model
US20220156433A1 (en) Industrial network communication emulation
JP2018501532A (ja) 密結合ロジックおよび物理的シミュレーションを用いた3dグラフィックエディタにおけるオートメーションのプログラミング
US20230153486A1 (en) Method and device for simulation
CN114265329B (zh) 工业网络仿真
EP3037904B1 (en) Sizing and selection closer to the executing environment
CN114329801A (zh) 统一多个模拟模型
WO2015079503A1 (ja) システム構築支援装置
Blankemeyer et al. Intuitive assembly support system using augmented reality
KR20230143002A (ko) 로봇의 기능 모듈의 개발 환경 제공 장치 및 방법
KR102702647B1 (ko) 클라우드를 이용한 로봇의 업데이트 장치 및 방법
KR20230143000A (ko) 혼합 현실을 이용하여 로봇의 이동 경로를 생성하는 티칭 장치 및 티칭 방법
KR20230142999A (ko) 기능 모듈의 추가 및 삭제가 가능하고 타사 제품과의 연동을 지원하는 관리 장치 및 방법
WO2023145361A1 (ja) ロボット制御システムおよびロボット制御システムを構成する方法
WO2023171722A1 (ja) プログラム生成装置、及びプログラム生成方法
Piyavichayanon et al. Validation of robot model with mobile augmented reality
Subramanian The ROS Framework
Choi et al. Design and implementation of open source based on IoT and robot manipulator arm training equipment
KR20230143004A (ko) 운동 센서가 마련된 단말기를 이용한 로봇 티칭 장치 및 방법
JP2023111376A (ja) ロボット制御システムおよび制御装置
Havlíček Integrace rozšířené reality do postupu virtuálního uvádění do provozu
Igelmo Using a general robot programming system to control an industrial robot
WO2023067374A1 (en) A method and a system for detecting possible collisions of objects in an industrial manufacturing environment

Legal Events

Date Code Title Description
E902 Notification of reason for refusal