KR20230143003A - 클라우드를 이용한 로봇의 업데이트 장치 및 방법 - Google Patents

클라우드를 이용한 로봇의 업데이트 장치 및 방법 Download PDF

Info

Publication number
KR20230143003A
KR20230143003A KR1020220041750A KR20220041750A KR20230143003A KR 20230143003 A KR20230143003 A KR 20230143003A KR 1020220041750 A KR1020220041750 A KR 1020220041750A KR 20220041750 A KR20220041750 A KR 20220041750A KR 20230143003 A KR20230143003 A KR 20230143003A
Authority
KR
South Korea
Prior art keywords
update
robot
unit
robots
information
Prior art date
Application number
KR1020220041750A
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 KR1020220041750A priority Critical patent/KR20230143003A/ko
Priority to EP23160319.2A priority patent/EP4257302A1/en
Priority to US18/189,731 priority patent/US20230325174A1/en
Publication of KR20230143003A publication Critical patent/KR20230143003A/ko

Links

Images

Classifications

    • 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/418Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
    • G05B19/41835Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by programme execution
    • 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/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/1656Programme controls characterised by programming, planning systems for 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/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/06Selective distribution of broadcast services, e.g. multimedia broadcast multicast service [MBMS]; Services to user groups; One-way selective calling services
    • H04W4/08User group management
    • 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/34Director, elements to supervisory
    • G05B2219/34376Management nc programs, files

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mechanical Engineering (AREA)
  • Robotics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Automation & Control Theory (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Manufacturing & Machinery (AREA)
  • Quality & Reliability (AREA)
  • Manipulator (AREA)

Abstract

업데이트 장치가 제공된다. 상기 업데이트 장치는 동일 네트워크를 사용하는 복수의 로봇을 그룹화하는 그룹화부; 그룹화된 복수의 로봇을 대상으로 상기 네트워크를 통하여 업데이트를 수행하는 업데이트부;를 포함할 수 있다.

Description

클라우드를 이용한 로봇의 업데이트 장치 및 방법{Apparatus and method for updating robots using the cloud}
본 발명은 복수의 로봇에 티칭을 공유하거나 복수의 로봇에 기능 또는 공정을 업데이트하는 장치 및 방법에 관한 것이다.
로봇, AMR(Autonomous Mobile Robot, 자율 주행 로봇) 등의 하드웨어는 다양한 분야에서 널리 사용되고 있다.
하지만, 많은 하드웨어가 제조사에게 제공하는 제한된 기능, 조작법, 교시법(티칭법)에 의해 구동되고 있다. 따라서, 각종 하드웨어는 제한된 작업 환경에만 적용되고 있으며, 숙련자에 의해서만 관리되고 있다.
이로 인해, 각종 하드웨어의 보급화가 지연되고 있다.
한국등록특허공보 제0819237호에는 로봇을 종료시키지 않고서도 로봇 플랫폼을 업데이트할 수 있는 기술이 개시되고 있다.
한국등록특허공보 제0819237호
본 발명은 클라우드를 이용하여 복수의 로봇을 대상으로 하는 각종 업데이트를 한번에 수행할 수 있는 업데이트 장치 및 방법을 제공하기 위한 것이다.
본 발명의 업데이트 장치는 동일 네트워크를 사용하는 복수의 로봇을 그룹화하는 그룹화부; 그룹화된 복수의 로봇을 대상으로 상기 네트워크를 통하여 업데이트를 수행하는 업데이트부;를 포함할 수 있다.
상기 그룹화부 및 상기 업데이트부는 복수의 로봇 중에서 특정 로봇에 마련될 수 있다.
상기 업데이트는 기능 모듈, 공정 정보, 티칭 정보 중 적어도 하나를 상기 로봇에 제공할 수 있다.
상기 그룹화부 및 상기 업데이트부가 특정 로봇의 관리기에 마련될 때, 상기 복수의 로봇 중에서 상기 특정 로봇만을 상기 네트워크 상에 등록하는 등록부가 상기 관리기에 마련될 수 있다.
상기 네트워크에 등록된 상기 복수의 로봇 정보를 취합하는 취합부, 취합된 상기 복수의 로봇 정보 중에서 그룹화가 수행될 로봇 정보를 선택하는 선택부가 마련될 수 있다. 상기 그룹화부는 상기 선택부에 의해 선택된 로봇 정보를 하나로 묶어 특정 그룹으로 설정할 수 있다. 상기 업데이트부는 상기 특정 그룹에 포함된 로봇 정보에 대응되는 로봇에 업데이트를 실시할 수 있다.
상기 취합부, 상기 선택부는 상기 복수의 로봇 중에서 특정 로봇의 관리기에 마련될 수 있다. 상기 관리기에는 상기 취합부에 의해 취합된 상기 복수의 로봇 정보가 표시되는 표시부가 마련될 수 있다. 상기 선택부는 상기 표시부를 통해 표시된 복수의 로봇 정보 중 적어도 일부를 선택할 수 있다.
상기 업데이트부는 그룹화된 복수의 로봇 중 특정 로봇에 대하여 업데이트가 수행되면, 그룹화된 복수의 로봇 중 다른 로봇에 대하여 상기 업데이트를 실행할지 여부를 사용자에게 문의하는 문의 메뉴를 표시할 수 있다.
복수의 로봇이 제1 그룹으로 그룹화될 때, 상기 업데이트부는 상기 제1 그룹 중에서 제1 로봇에 대하여 업데이트가 수행되면, 상기 제1 로봇을 대상으로 하는 업데이트의 실시 사실을 나타내는 안내 정보를 상기 제1 그룹 내의 제2 로봇에 전달할 수 있다.
상기 업데이트부는 상기 제2 로봇이 상기 안내 정보를 수신한 사실이 확인되면, 상기 제2 로봇에 대한 업데이트 실시 여부를 문의하는 문의 메뉴를 표시할 수 있다.
상기 업데이트부는 상기 제1 그룹에 포함된 각 로봇으로부터 상기 안내 정보를 수신한 사실을 나타내는 확인 정보가 입수될 때마다 각 로봇의 식별 정보와 함께 상기 식별 정보에 대응되는 로봇에 대한 업데이트 여부를 문의하는 상기 문의 메뉴를 표시할 수 있다.
상기 업데이트부는 특정 로봇에 대한 업데이트가 실패하면, 상기 특정 로봇을 대상으로 설정 횟수만큼 업데이트를 반복적으로 시도할 수 있다.
상기 업데이트부는 반복적인 업데이트 시도에도 불구하고 상기 특정 로봇에 대한 업데이트가 실패하면, 상기 특정 로봇을 업데이트가 실패한 실패 로봇으로 분류할 수 있다. 상기 업데이트부는 상기 실패 로봇의 소프트웨어 버전을 이전 버전으로 원복시킬 수 있다. 그리고, 상기 업데이트부는 상기 실패 로봇을 표시할 수 있다.
복수의 로봇이 제1 그룹으로 그룹화될 때, 상기 업데이트부는 상기 제1 그룹에 포함된 복수의 로봇 중에서 업데이트가 성공적으로 수행된 성공 로봇을 성공 그룹으로 묶어서 표시할 수 있다.
상기 업데이트부는 상기 제1 그룹에 포함된 복수의 로봇 중에서 상기 실패 로봇을 실패 그룹으로 묶어서 상기 성공 그룹과 구분되게 표시할 수 있다.
본 발명의 업데이트 방법은 네트워크 상에 로봇 정보를 등록하는 등록 단계; 상기 네트워크에 등록된 로봇 정보를 취합하는 취합 단계; 취합된 복수의 로봇 정보 중에서 적어도 일부를 선택하는 선택 단계; 선택된 로봇을 하나의 그룹으로 그룹화하는 그룹화 단계; 상기 그룹에 포함된 특정 로봇에 대한 업데이트가 수행되면, 상기 네트워크를 이용하여 상기 그룹에 포함된 나머지 로봇에 대한 업데이트를 시도하는 업데이트 단계;를 포함할 수 있다.
본 발명에 따르면, 특정 장소에서 유사한 동작을 수행하는 복수의 로봇에 대한 티칭(교시)이 동시에 진행될 수 있다.
본 발명에 따르면, 동일 네트워크 내에 등록된 복수의 로봇 중 어느 하나의 특정 로봇을 대상으로 티칭이 수행되면, 나머지 티칭 로봇에 티칭 진행 정보 또는 티칭 결과가 전송될 수 있다. 이를 통해, 어느 하나의 로봇을 대상으로 티칭이 수행되면, 복수의 로봇에 대한 티칭이 완료된 것과 유사한 상태가 될 수 있다. 결과적으로 본 발명의 업데이트 장치에 따르면, 복수의 로봇에 대한 티칭이 매우 간소화될 수 있다.
또한, 본 발명의 업데이트 장치는 티칭 관련 정보뿐만 아니라 각종 기능 정보, 공정 정보를 업데이트할 수 있다. 기능 정보, 공정 정보의 업데이트는 제조사 측에 의해 수행되는 업데이트와 달리 고객, 사용자에 의해 제작되고 설정될 수 있다. 고객에 의해 설정된 기능 정보 등은 제조사의 업데이트용 통신 회선을 이용할 수 없다. 따라서, 고객은 복수의 로봇을 각각 찾아다니면서 업데이트 정보가 저장된 기록 매체를 꽂아가며 개별 업데이트를 실시하는 불편을 감수해야 한다. 하지만, 본 발명에 따르면, 고객은 복수의 로봇 중 특정 로봇의 자리에서 복수 로봇에 대한 업데이트를 완료할 수 있다.
잘못 지정된 로봇에 대한 업데이트로 인한 문제를 방지하기 위해, 본 발명의 업데이트 장치는 네트워크를 통해 업데이트 정보를 제공받을 타겟 로봇에 대한 확인 절차가 추가로 수행될 수 있다.
타겟 로봇으로부터 업데이트의 시행을 인지하는 정보가 입수되면, 해당 타겟 로봇에 대한 업데이트를 실시할지 여부를 묻는 문의 메뉴가 제공될 수 있다. 고객은 문의 메뉴를 통해 타겟 로봇에 대한 업데이트 실시 필요성을 재고할 수 있으며, 해당 타겟 로봇이 업데이트 정보를 수신할 수 있는 통신 상태를 유지하고 있는지 여부를 인지할 수 있다.
도 1은 본 발명의 관리 장치를 나타낸 개략도이다.
도 2는 본 발명의 업데이트 장치를 나타낸 개략도이다.
도 3은 업데이트 장치의 동작을 나타낸 개략도이다.
도 4는 본 발명의 업데이트 방법을 나타낸 흐름도이다.
도 5는 고객의 입장에서 살펴본 업데이트 방법을 나타낸 흐름도이다.
도 6은 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다.
아래에서는 첨부한 도면을 참고로 하여 본 발명의 실시예에 대하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
본 명세서에서, 동일한 구성요소에 대해서 중복된 설명은 생략한다.
또한 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '연결되어' 있다거나 '접속되어' 있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결되어 있거나 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에 본 명세서에서, 어떤 구성요소가 다른 구성요소에 '직접 연결되어' 있다거나 '직접 접속되어' 있다고 언급된 때에는, 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다.
또한, 본 명세서에서 사용되는 용어는 단지 특정한 실시예를 설명하기 위해 사용되는 것으로써, 본 발명을 한정하려는 의도로 사용되는 것이 아니다.
또한 본 명세서에서, 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
또한 본 명세서에서, '포함하다' 또는 '가지다' 등의 용어는 명세서에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품, 또는 이들을 조합한 것이 존재함을 지정하려는 것일 뿐, 하나 또는 그 이상의 다른 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 할 것이다.
또한 본 명세서에서, '및/또는' 이라는 용어는 복수의 기재된 항목들의 조합 또는 복수의 기재된 항목들 중의 어느 항목을 포함한다. 본 명세서에서, '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)적 엔드 이펙터가 용접기와 같은 요소로 대체되는 것이 전제될 수 있다.
마켓 서버(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)에 대하여 탑재 및 삭제가 자유로운 기능 모듈은 변동 모듈로 지칭될 수 있다.
일 예로, 로봇을 새롭게 티칭(teaching)하거나 로봇에 새로운 공정 방법을 업데이트하는 기능 모듈 또는 변동 모듈이 제공될 수 있다.
로봇을 업데이트하는 기능 모듈이 탑재된 관리기(120) 또는 제어기(110)는 업데이트부(650) 또는 업데이트 장치(600)로 지칭될 수 있다.
도 2는 본 발명의 업데이트 장치(600)를 나타낸 개략도이다. 도 3은 업데이트 장치(600)의 동작을 나타낸 개략도이다.
제조사로부터 로봇을 구매한 고객은 자신이 원하는 위치, 예를 들어 공장, 실험실 등의 현장에 로봇을 배치할 수 있다.
일단 현장에 배치된 로봇은 현장에 적합한 상태로 세팅될 수 있다. 세팅이 완료된 로봇은 고객이 원하는 기능을 정상적으로 수행하는 상태가 될 수 있다. 이 상태에서는 제조사 측에서 제공하는 각종 기능 개선, 버그 수정과 같은 업데이트가 불필요할 수 있다. 오히려 새로운 업데이트로 인해 기존 정상 수행되던 작업에 오류가 발생될 수도 있다. 따라서, 로봇에 대한 동시 다발적인 업데이트는 현실적으로 불합리할 수 있다. 또한, 각종 해킹 등으로부터 로봇을 보호하기 위해 로봇은 외부와 단절된 인트라넷과 같은 내부 네트워크를 사용할 수 있다. 이 경우, 외부망을 이용할 수밖에 없는 제조사 단위의 업데이트가 이루어지기 어렵다.
하지만, 내부적으로 복수의 로봇에 대한 업데이트가 한꺼번에 이루어지는 것이 유리한 경우가 발생될 수 있다. 예를 들어, 공장 내에 배치된 복수의 로봇의 제1 작업을 제2 작업으로 변경할 필요가 있을 수 있다. 위와 같은 이유로 인해 동시 다발적인 업데이트가 어려운 상태일 수 있다. 따라서, 복수의 로봇에 대한 업데이트가 필요한 경우, 고객은 업데이트 정보가 담긴 저장 매체를 들고 일일이 로봇을 찾아다니며 업데이트를 수행해야만 한다. 이러한 불편을 해소하기 위해 도 2에 도시된 업데이트 장치(600)는 등록부(610), 취합부(620), 선택부(630), 그룹화부(640), 업데이트부(650)를 포함할 수 있다.
등록부(610), 취합부(620), 선택부(630), 그룹화부(640), 업데이트부(650)는 로봇에 설치될 수 있다. 구체적으로, 등록부(610), 취합부(620), 선택부(630), 그룹화부(640), 업데이트부(650)는 로봇의 관리기(120)에 탑재되는 클라우드 모듈(70)에 포함될 수 있다.
그룹화부(640)는 동일 네트워크 또는 동일 클라우드(40)를 사용하는 복수의 로봇을 하나의 그룹으로 그룹화할 수 있다.
업데이트부(650)는 그룹화된 복수의 로봇을 대상으로 해당 네트워크를 통하여 업데이트를 수행할 수 있다. 업데이트부(650)에 의해 수행되는 업데이트는 기능 모듈, 공정 정보, 티칭 정보 중 적어도 하나를 로봇에 제공하고 설치하는 것을 의미할 수 있다.
본 발명의 업데이트 장치(600)는 별도의 서버에 형성되는 것이 아니라 로봇의 관리기(120)에 형성되는 점을 다시 한번 환기한다. 따라서, 그룹화부(640) 및 업데이트부(650)는 복수의 로봇 중에서 특정 로봇에 마련될 수 있다.
그룹화부(640) 및 업데이트부(650)가 특정 로봇의 관리기(120)에 마련될 때, 등록부(610)는 복수의 로봇 중에서 특정 로봇만을 네트워크 상에 등록할 수 있다. 등록부(610) 역시 관리기(120)에 마련될 수 있다. 업데이트 장치(600) 중에서 취합부(620), 선택부(630), 그룹화부(640), 업데이트부(650)는 특정 로봇의 관리기(120)에만 마련되어도 충분한 반면, 등록부(610)는 업데이트 대상이 되는 모든 로봇의 관리기(120)에 마련되는 것이 좋다. 물론, 취합부(620), 선택부(630), 그룹화부(640), 업데이트부(650) 역시 복수의 로봇에 마련되어도 무방하다. 이 경우, 고객은 아무 로봇에서나 업데이트를 수행할 있을 것이다.
등록부(610)가 자체 로봇뿐만 아니라 네트워크에 연결된 다른 로봇에 접근할 수 있는 권한을 갖는 경우, 고객은 특정 로봇에 마련된 등록부(610)만을 이용해서 복수의 로봇을 등록할 수 있다. 이 경우, 등록부(610)는 특정 로봇에만 마련되어도 충분할 수 있다.
취합부(620)는 네트워크에 등록된 복수의 로봇 정보를 취합할 수 있다. 취합된 결과는 관리기(120)에 마련된 디스플레이 등의 표시부를 통해 표시될 수 있다.
선택부(630)는 복수의 로봇 정보 중에서 그룹화가 수행될 로봇 정보를 선택할 수 있다.
그룹화부(640)는 선택부(630)에 의해 선택된 로봇 정보를 하나로 묶어 특정 그룹으로 설정할 수 있다.
업데이트부(650)는 특정 그룹에 포함된 로봇 정보에 대응되는 로봇에 업데이트를 실시할 수 있다.
앞에서 설명된 바와 같이, 취합부(620), 선택부(630)는 복수의 로봇 중에서 특정 로봇의 관리기(120)에 마련될 수 있다. 관리기(120)에는 취합부(620)에 의해 취합된 복수의 로봇 정보가 표시되는 표시부가 마련될 수 있다.
이때, 선택부(630)는 표시부를 통해 표시된 복수의 로봇 정보 중 적어도 일부를 선택할 수 있다. 일 예로, 선택부(630)는 고객이 터치 스크린에 대하여 손가락으로 동그라미를 그리면 동그라미 내에 존재하는 로봇을 선택할 수 있다. 이렇게 선택된 로봇은 그룹화부(640)에 의해 하나의 그룹으로 설정될 수 있다. 하나의 그룹으로 묶인 복수의 로봇은 업데이트부(650)에 의해 동일 버전, 동일 공정을 갖도록 업데이트될 수 있다.
업데이트부(650)는 그룹화된 복수의 로봇 중 특정 로봇에 대하여 업데이트가 수행되면, 문의 메뉴를 표시할 수 있다.
문의 메뉴는 그룹화된 복수의 로봇 중 다른 로봇에 대하여 업데이트를 실행할지 여부를 사용자에게 문의하는 메뉴를 포함할 수 있다. 작업 현장에서 잘못된 업데이트는 심각한 오류를 유발할 수 있다. 따라서, 고객 또는 사용자로 하여금 원격으로 업데이트될 예정의 로봇이 어느 것인지를 다시 한번 확인할 수 있는 안정 장치가 마련될 수 있다. 위에서 사용자에게 문의하는 메뉴가 일종의 안전 장치로 기능할 수 있다.
고객에서 표시하는 메뉴를 통해 업데이트 정보를 받을 수 있는 통신 상태 등의 점검이 같이 이루어질 수 있다.
일 예로, 복수의 로봇이 제1 그룹으로 그룹화될 수 있다.
이때, 업데이트부(650)는 제1 그룹 중에서 제1 로봇에 대하여 업데이트가 수행되면, 제1 로봇을 대상으로 하는 업데이트의 실시 사실을 나타내는 안내 정보를 제1 그룹 내의 제2 로봇에 전달할 수 있다.
업데이트부(650)는 제2 로봇이 안내 정보를 수신한 사실이 확인되면, 제2 로봇에 대한 업데이트 실시 여부를 문의하는 문의 메뉴를 표시할 수 있다. 본 실시예에 따르면, 문의 메뉴가 표시되었다는 것은 제2 로봇이 안내 정보를 수신했다는 것을 의미할 수 있다. 이는 곧, 제2 로봇이 제1 로봇, 네트워크를 순서대로 거쳐 업데이트 정보 등을 전달받을 수 있는 통신 상태를 유지하고 있다는 것을 나타낼 수 있다.
잘못 선정된 로봇에 대한 업데이트를 방지하는 방안이 추가될 수 있다.
업데이트부(650)는 제1 그룹에 포함된 각 로봇으로부터 안내 정보를 수신한 사실을 나타내는 확인 정보가 입수될 때마다 문의 메뉴를 표시할 수 있다. 이때의 문의 메뉴는 각 로봇의 식별 정보를 포함할 수 있다. 또한, 문의 메뉴는 식별 정보에 대응되는 로봇에 대한 업데이트 여부를 문의하는 메뉴를 포함할 수 있다. 문의 메뉴에 따르면, 고객은 로봇의 식별 정보를 확인할 있다. 고객은 식별 정보를 확인하고 업데이트가 필요하다고 판단되면, 문의 메뉴에 포함된 업데이트 개시를 선택할 수 있다.
로봇의 관리기(120)가 네트워크에 연결된 경우, 업데이트 정보는 관리기(120)의 제2 통신 모듈을 통해 수신될 수 있다. 관리기(120)는 제2 통신 모듈과 통신하는 로봇의 제어기(110)로 업데이트 정보를 전달할 수 있다. 관리기(120)의 매니저 모듈은 업데이트 정보 중에 관리기(120)에 탑재된 소프트웨어와 관련된 내용이 포함되면, 해당 내용을 추출해서 관리기(120)에 탑재된 화면 모듈 f2, 실행 환경(runtime), 확장 API, 동적 라이브러리 등을 업데이트할 수 있다.
로봇의 제어기(110)는 제1 통신 모듈(11)을 통해 업데이트 정보를 수신할 수 있다. 제어기(110)에 마련된 매니저 모듈은 업데이트 정보를 분석해서 제어기(110)에 탑재된 제어 모듈 f1, 프레임워크 모듈 f2, 실행 환경(runtime), 확장 API, 동적 라이브러리 등을 업데이트할 수 있다.
이상의 업데이트 장치(600)의 동작을 고객의 관점에서 살펴보면 도3과 같을 수 있다.
고객은 관리기(120)에 탑재된 클라우드 모듈(70)을 통해 클라우드(40)(네트워크)에 접속하고 로봇 정보(모델명, 운영 정보, 공정 정보 등)를 클라우드(40) 상에 등록할 수 있다(1).
클라우드 모듈(70)은 동일 네트워크 상의 다른 로봇에서 등록한 로봇 정보를 취합할 수 있다(2).
동일 네트워크 상의 로봇들은 클라우드(40) 상에 등록되고, 클라우드 모듈(70), 화면 모듈을 거쳐 표시부에 표시될 수 있다(3). 이때, 표시부에는 각 로봇의 정보와 공정 정보가 표시될 수 있다(4).
동일 네트워크 안에 있는 로봇은 클라우드 모듈(70)을 통해 표시되고, 고객은 입력부를 이용하여 해당 로봇을 특정 그룹으로 묶일 수 있다. 이렇게 그룹화된 로봇은 동일 버전, 동일 공정을 선택해서 동시에 업데이트될 수 있는 상태일 수 있다(5).
동일 그룹 내에서 선택된 하나의 로봇에 대하여 업데이트가 수행되면, 해당 그룹 내 다른 로봇도 업데이트를 인지하고 표시부를 통해 업데이트의 진행 여부를 문의할 수 있다. 사용자가 동의하면 그룹 내 다른 로봇에 대한 업데이트가 네트워크를 이용해 진행될 수 있다(6).
한편, 통신 지연 등 다양한 문제로 인해 특정 로봇을 대상으로 한 업데이트가 실패할 수 있다. 업데이트 장치에는 업데이트 실패에 대한 대처 방안이 마련될 수 있다.
일 예로, 업데이트부(650)는 특정 로봇에 대한 업데이트가 실패하면, 특정 로봇을 대상으로 설정 횟수만큼 업데이트를 반복적으로 시도할 수 있다. 설정 횟수는 고객(사용자)에 의해 설정될 수 있다. 설정 횟수의 반복은 초기 업데이트가 시도된 이후헤 해당 업데이트 시도가 실패한 경우 적용될 수 있다. 따라서, 설정 횟수가 5회인 경우, 특정 로봇을 대상으로 한 총 업데이트 시도 횟수는 최소 시도 1회에 설정 횟수 5회를 더해 총 6회일 수 있다.
업데이트부(650)는 반복적인 업데이트의 시도에도 불구하고 특정 로봇에 대한 업데이트가 실패하면, 특정 로봇을 업데이트가 실패한 실패 로봇으로 분류할 수 있다.
실패 로봇이 적어도 업데이트 이전의 상태로 동작 가능하도록, 업데이트부 (650)는 실패 로봇의 소프트웨어 버전을 업데이트 이전 버전으로 원복시킬 수 있다. 한편, 실패 로봇에 대한 업데이트 실패 사실을 사용자에게 인지시기키 위해, 업데이트부(650)는 표시부를 통해 실패 로봇을 표시할 수 있다. 표시부를 통해 실패 로봇을 인지한 사용자는 실패 로봇에 대한 업데이트를 재시도할지, 해당 그룹에서 실패 로봇을 배제시킬지 결정할 수 있다.
산발적으로 발생되는 실패 로봇은 업데이트가 성공적으로 수행된 성공 로봇과 구분해서 표시되는 것이 좋다.
일 예로, 복수의 로봇이 제1 그룹으로 그룹화될 때, 업데이트부(650)는 제1 그룹에 포함된 복수의 로봇 중에서 업데이트가 성공적으로 수행된 성공 로봇을 성공 그룹으로 묶어서 표시할 수 있다.
업데이트부(650)는 제1 그룹에 포함된 복수의 로봇 중에서 실패 로봇을 실패 그룹으로 묶어서 표시할 수 있다. 이때, 업데이트부(650)는 성공 그룹과 구분되게 실패 그룹을 표시할 수 있다. 이에 따르면, 사용자는 일단 성공 그룹과 실패 그룹을 쉽게 구분할 수 있다. 그리고, 업데이트가 성공한 로봇과 실패한 로봇을 쉽게 구분할 수 있다. 사용자는 구분 결과에 따라 실패 로봇에 대한 적절한 조치를 취할 수 있다.
도 4는 본 발명의 업데이트 방법을 나타낸 흐름도이다.
도 4의 업데이트 방법은 도 2에 도시된 업데이트 장치(600)에 의해 수행될 수 있다.
업데이트 방법은 등록 단계(S 510), 취합 단계(S 520), 선택 단계(S 530), 그룹화 단계(S 540), 업데이트 단계(S 550)를 포함할 수 있다.
등록 단계(S 510)는 네트워크 상에 로봇 정보를 등록할 수 있다. 등록 단계(S 510)는 등록부(610)에 의해 수행될 수 있다.
취합 단계(S 520)는 네트워크에 등록된 로봇 정보를 취합할 수 있다. 취합 단계(S 520)는 취합부(620)에 의해 수행될 수 있다.
선택 단계(S 530)는 취합된 복수의 로봇 정보 중에서 적어도 일부를 선택할 수 있다. 선택 단계(S 530)는 선택부(630)에 의해 수행될 수 있다.
그룹화 단계(S 540)는 선택된 로봇을 하나의 그룹으로 그룹화할 수 있다. 그룹화 단계(S 540)는 그룹화부(640)에 의해 수행될 수 있다.
업데이트 단계(S 550)는 그룹에 포함된 특정 로봇에 대한 업데이트가 수행되면, 네트워크를 이용하여 그룹에 포함된 나머지 로봇에 대한 업데이트를 시도할 수 있다. 업데이트 단계(S 550)는 업데이트부(650)에 의해 수행될 수 있다.
도 5는 고객의 입장에서 살펴본 업데이트 방법을 나타낸 흐름도이다.
고객의 특정 로봇의 관리기(120)를 통해 클라우드 모듈(70)에 접속할 수 있다(S 541). 일 예로, 고객은 관리기(120)의 입력부를 통해 아이디와 패스워드를 입력해서 클라우드 모듈(70)을 사용할 수 있다. 또는, 고객은 관리기(120)와 통신하는 별도의 단말기를 통해 아이디와 패스워드를 입력하고 해당 관리기(120)에 탑재된 클라우드 모듈(70)을 이용할 수 있다.
클라우드 모듈(70)은 네트워크를 통해 접속된 로봇을 표시할 수 있다(S 542).
고객은 클라우드 모듈(70)이 제공하는 선택 메뉴를 통해 그룹 지을 로봇들을 선택할 수 있다(S 551).
고객은 교시(티칭) 전송을 선택하거나 기능 업데이트를 선택할 수 있다(S 552), 이 경우, 현재 로봇 또는 현재 관리기(120)를 대상으로 시행된 티칭 또는 기능 업데이트가 그룹 지어진 다른 로봇으로 전송될 수 있다(S 561).
도 6은 본 발명의 실시예에 따른, 컴퓨팅 장치를 나타내는 도면이다. 도 6의 컴퓨팅 장치(TN100)는 본 명세서에서 기술된 장치(예, 업데이트 장치(600) 등) 일 수 있다.
도 6의 실시예에서, 컴퓨팅 장치(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...변환 모듈 40...클라우드
70...클라우드 모듈 90...하드웨어
100...관리 장치 110...제어기
120...관리기 190...마켓 서버
600...업데이트 장치 610...등록부
620...취합부 630...선택부
640...그룹화부 650...업데이트부

Claims (12)

  1. 네트워크를 사용하는 복수의 로봇을 그룹화하는 그룹화부;
    그룹화된 복수의 로봇을 대상으로 상기 네트워크를 통하여 업데이트를 수행하는 업데이트부;
    를 포함하는 업데이트 장치.
  2. 제1항에 있어서,
    상기 그룹화부 및 상기 업데이트부는 복수의 로봇 중에서 특정 로봇에 마련되는 업데이트 장치.
  3. 제1항에 있어서,
    상기 업데이트는 기능 모듈, 공정 정보, 티칭 정보 중 적어도 하나를 상기 로봇에 제공하는 업데이트 장치.
  4. 제1항에 있어서,
    상기 그룹화부 및 상기 업데이트부가 특정 로봇의 관리기에 마련될 때,
    상기 복수의 로봇 중에서 상기 특정 로봇만을 상기 네트워크 상에 등록하는 등록부가 상기 관리기에 마련된 업데이트 장치.
  5. 제1항에 있어서,
    상기 네트워크에 등록된 상기 복수의 로봇 정보를 취합하는 취합부, 취합된 상기 복수의 로봇 정보 중에서 그룹화가 수행될 로봇 정보를 선택하는 선택부가 마련되고,
    상기 그룹화부는 상기 선택부에 의해 선택된 로봇 정보를 하나로 묶어 특정 그룹으로 설정하며,
    상기 업데이트부는 상기 특정 그룹에 포함된 로봇 정보에 대응되는 로봇에 업데이트를 실시하는 업데이트 장치.
  6. 제5항에 있어서,
    상기 취합부, 상기 선택부는 상기 복수의 로봇 중에서 특정 로봇의 관리기에 마련되고,
    상기 관리기에는 상기 취합부에 의해 취합된 상기 복수의 로봇 정보가 표시되는 표시부가 마련되며,
    상기 선택부는 상기 표시부를 통해 표시된 복수의 로봇 정보 중 적어도 일부를 선택하는 업데이트 장치.
  7. 제1항에 있어서,
    상기 업데이트부는 그룹화된 복수의 로봇 중 특정 로봇에 대하여 업데이트가 수행되면, 그룹화된 복수의 로봇 중 다른 로봇에 대하여 상기 업데이트를 실행할지 여부를 사용자에게 문의하는 문의 메뉴를 표시하는 업데이트 장치.
  8. 제1항에 있어서,
    복수의 로봇이 제1 그룹으로 그룹화될 때,
    상기 업데이트부는 상기 제1 그룹 중에서 제1 로봇에 대하여 업데이트가 수행되면, 상기 제1 로봇을 대상으로 하는 업데이트의 실시 사실을 나타내는 안내 정보를 상기 제1 그룹 내의 제2 로봇에 전달하고,
    상기 업데이트부는 상기 제2 로봇이 상기 안내 정보를 수신한 사실이 확인되면, 상기 제2 로봇에 대한 업데이트 실시 여부를 문의하는 문의 메뉴를 표시하는 업데이트 장치.
  9. 제8항에 있어서,
    상기 업데이트부는 상기 제1 그룹에 포함된 각 로봇으로부터 상기 안내 정보를 수신한 사실을 나타내는 확인 정보가 입수될 때마다 각 로봇의 식별 정보와 함께 상기 식별 정보에 대응되는 로봇에 대한 업데이트 여부를 문의하는 상기 문의 메뉴를 표시하는 업데이트 장치.
  10. 제1항에 있어서,
    상기 업데이트부는 특정 로봇에 대한 업데이트가 실패하면, 상기 특정 로봇을 대상으로 설정 횟수만큼 업데이트를 반복적으로 시도하고,
    상기 업데이트부는 반복적인 업데이트의 시도에도 불구하고 상기 특정 로봇에 대한 업데이트가 실패하면, 상기 특정 로봇을 업데이트가 실패한 실패 로봇으로 분류하며,
    상기 업데이트부는 상기 실패 로봇의 소프트웨어 버전을 이전 버전으로 원복시키고,
    상기 업데이트부는 상기 실패 로봇을 표시하는 업데이트 장치.
  11. 제10항에 있어서,
    복수의 로봇이 제1 그룹으로 그룹화될 때,
    상기 업데이트부는 상기 제1 그룹에 포함된 복수의 로봇 중에서 업데이트가 성공적으로 수행된 성공 로봇을 성공 그룹으로 묶어서 표시하고,
    상기 업데이트부는 상기 제1 그룹에 포함된 복수의 로봇 중에서 상기 실패 로봇을 실패 그룹으로 묶어서 상기 성공 그룹과 구분되게 표시하는 업데이트 장치.
  12. 업데이트 장치에 의해 수행되는 업데이트 방법에 있어서,
    네트워크 상에 로봇 정보를 등록하는 등록 단계;
    상기 네트워크에 등록된 로봇 정보를 취합하는 취합 단계;
    취합된 복수의 로봇 정보 중에서 적어도 일부를 선택하는 선택 단계;
    선택된 로봇을 하나의 그룹으로 그룹화하는 그룹화 단계;
    상기 그룹에 포함된 특정 로봇에 대한 업데이트가 수행되면, 상기 네트워크를 이용하여 상기 그룹에 포함된 나머지 로봇에 대한 업데이트를 시도하는 업데이트 단계;
    를 포함하는 업데이트 방법.
KR1020220041750A 2022-04-04 2022-04-04 클라우드를 이용한 로봇의 업데이트 장치 및 방법 KR20230143003A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020220041750A KR20230143003A (ko) 2022-04-04 2022-04-04 클라우드를 이용한 로봇의 업데이트 장치 및 방법
EP23160319.2A EP4257302A1 (en) 2022-04-04 2023-03-07 Apparatus and method for updating a group of robots
US18/189,731 US20230325174A1 (en) 2022-04-04 2023-03-24 Apparatus and method for updating robot using cloud

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220041750A KR20230143003A (ko) 2022-04-04 2022-04-04 클라우드를 이용한 로봇의 업데이트 장치 및 방법

Publications (1)

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

Family

ID=85510911

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220041750A KR20230143003A (ko) 2022-04-04 2022-04-04 클라우드를 이용한 로봇의 업데이트 장치 및 방법

Country Status (3)

Country Link
US (1) US20230325174A1 (ko)
EP (1) EP4257302A1 (ko)
KR (1) KR20230143003A (ko)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819237B1 (ko) 2006-09-06 2008-04-02 삼성전자주식회사 소프트웨어 로봇 플랫폼을 업데이트하기 위한 시스템 및업데이트 방법

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008139972A (ja) * 2006-11-30 2008-06-19 Nachi Fujikoshi Corp ロボット制御装置
JP5051298B2 (ja) * 2009-02-09 2012-10-17 パナソニック株式会社 ロボットシステムおよびロボットシステムのソフトウェア更新方法
JP5375297B2 (ja) * 2009-04-16 2013-12-25 株式会社安川電機 ロボットシステム
US11455234B2 (en) * 2018-11-21 2022-09-27 Amazon Technologies, Inc. Robotics application development architecture
CN111813430A (zh) * 2020-07-08 2020-10-23 杭州安森智能信息技术有限公司 机器人集群智能化更新与部署的方法及系统
CN113504922B (zh) * 2021-06-07 2024-01-12 深圳市优必选科技股份有限公司 机器人软件升级方法、装置、桥服务器及升级服务器
CN113885911A (zh) * 2021-09-26 2022-01-04 北京来也网络科技有限公司 基于rpa及ai的机器人版本更新方法及其装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100819237B1 (ko) 2006-09-06 2008-04-02 삼성전자주식회사 소프트웨어 로봇 플랫폼을 업데이트하기 위한 시스템 및업데이트 방법

Also Published As

Publication number Publication date
EP4257302A1 (en) 2023-10-11
US20230325174A1 (en) 2023-10-12

Similar Documents

Publication Publication Date Title
CN100403712C (zh) 控制系统设定装置和控制系统设定方法及设定程序
KR102645817B1 (ko) 로봇의 비헤이비어 관리 방법 및 장치
US20150045955A1 (en) Robot control apparatus and method for controlling robot
US20210073108A1 (en) Virtualized device-based test system and method thereof
JP6737298B2 (ja) コントローラ、制御方法、および制御プログラム
JP5740634B2 (ja) 自動操作システム及び操作自動化方法
CN112873204B (zh) 机器人标定方法、装置、设备及计算机可读存储介质
JP6720994B2 (ja) 制御システム、コントローラ、および制御方法
KR20230143003A (ko) 클라우드를 이용한 로봇의 업데이트 장치 및 방법
JP2019152949A (ja) 表示装置、画面生成方法、および画面生成プログラム
US9415512B2 (en) System and method for enhancing a visualization of coordinate points within a robots working envelope
EP4257303A1 (en) Apparatus and method for providing development environment for functional modules of robot
KR20230142999A (ko) 기능 모듈의 추가 및 삭제가 가능하고 타사 제품과의 연동을 지원하는 관리 장치 및 방법
JP4962721B2 (ja) ツール装置及びメッセージ送信プログラムの作成方法
KR102669947B1 (ko) 휴대 단말기를 이용한 로봇 사용자 인증 장치 및 방법
KR20230143000A (ko) 혼합 현실을 이용하여 로봇의 이동 경로를 생성하는 티칭 장치 및 티칭 방법
KR20230143004A (ko) 운동 센서가 마련된 단말기를 이용한 로봇 티칭 장치 및 방법
Gao et al. U-Pendant: A universal teach pendant for serial robots based on ROS
KR20230143001A (ko) 휴대 단말기를 이용한 로봇 사용자 인증 장치 및 방법
US20240100687A1 (en) Systems, methods, and computer program products for automating tasks
US11844000B2 (en) Information processing system, information processing method, mobile device, and computer-readable recording medium
WO2023145361A1 (ja) ロボット制御システムおよびロボット制御システムを構成する方法
CN113459111B (zh) 一种多机器人与外部轴控制方法及系统、装置及存储介质
JP2003236784A (ja) ロボット教示方法およびロボット教示装置
US11607811B2 (en) Information providing device, information providing method and program

Legal Events

Date Code Title Description
E902 Notification of reason for refusal