KR20230031085A - 로봇 및 그 제어 방법 - Google Patents

로봇 및 그 제어 방법 Download PDF

Info

Publication number
KR20230031085A
KR20230031085A KR1020210113506A KR20210113506A KR20230031085A KR 20230031085 A KR20230031085 A KR 20230031085A KR 1020210113506 A KR1020210113506 A KR 1020210113506A KR 20210113506 A KR20210113506 A KR 20210113506A KR 20230031085 A KR20230031085 A KR 20230031085A
Authority
KR
South Korea
Prior art keywords
robot
context data
task
information
identified
Prior art date
Application number
KR1020210113506A
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 KR1020210113506A priority Critical patent/KR20230031085A/ko
Priority to PCT/KR2022/008739 priority patent/WO2023027310A1/ko
Priority to US17/974,941 priority patent/US20230066945A1/en
Publication of KR20230031085A publication Critical patent/KR20230031085A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • B25J11/008Manipulators for service tasks
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J11/00Manipulators not otherwise provided for
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J5/00Manipulators mounted on wheels or on carriages
    • B25J5/007Manipulators mounted on wheels or on carriages mounted on wheels
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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
    • 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
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05DSYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
    • G05D1/00Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
    • G05D1/02Control of position or course in two dimensions
    • G05D1/021Control of position or course in two dimensions specially adapted to land vehicles
    • G05D1/0287Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0633Workflow analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/103Workflow collaboration or project management

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • General Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Educational Administration (AREA)
  • Game Theory and Decision Science (AREA)
  • Data Mining & Analysis (AREA)
  • Aviation & Aerospace Engineering (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Automation & Control Theory (AREA)
  • Manipulator (AREA)

Abstract

로봇이 개시된다. 로봇은 센서, 구동부, 통신 인터페이스 및 프로세서를 포함한다. 프로세서는 센서를 통해 제1 컨텍스트(context) 데이터를 획득하고, 적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 통신 인터페이스를 통해 수신하고, 로봇 및 타 로봇의 협업 시나리오에 기초하여 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하고, 협업과 관련된 기 설정된 태스크 할당 알고리즘에 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 로봇에 대응되는 태스크 정보를 획득하고, 획득된 태스크 정보에 기초하여 구동부를 제어할 수 있다.

Description

로봇 및 그 제어 방법{ROBOT AND CONTROLLING METHOD THEREOF}
본 발명은 사용자에게 서비스를 제공하는 로봇 및 그 제어 방법에 관한 것이다.
최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 실내 공간에 복수의 로봇이 배치되어 서비스를 제공하는 경우, 복수의 로봇은 관리 서버의 통제 하에 고유의 태스크를 할당 받아 할당된 태스크에 대응되는 서비스를 제공할 수 있다.
그러나, 종래의 로봇은 관리 서버에 문제가 발생하는 경우 서비스를 위한 태스크를 할당 받지 못하여 원활한 서비스 제공을 할 수 없는 문제점이 있었다. 이에 따라 관리 서버 없이도 복수의 로봇이 협업하여 사용자에게 서비스를 제공하는 방법에 대한 지속적인 요구가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 로봇이 획득한 컨텍스트 데이터 및 타 로봇으로부터 수신한 컨텍스트 데이터에 기초하여 획득된 태스크 정보에 대응되는 서비스를 제공하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 센서, 구동부, 통신 인터페이스 및 상기 센서를 통해 제1 컨텍스트(context) 데이터를 획득하고, 적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 상기 통신 인터페이스를 통해 수신하고, 상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하고, 상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하고, 상기 획득된 태스크 정보에 기초하여 상기 구동부를 제어하는 프로세서를 포함할 수 있다.
여기서, 상기 프로세서는, 상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고, 상기 컨스턴트 데이터는, 상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 프로세서는, 상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고, 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득할 수 있다
여기서, 상기 프로세서는, 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별할 수 있다.
또한, 상기 복수의 요소는, 상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함할 수 있다.
한편, 상기 기 설정된 태스크 할당 알고리즘은, 상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘일 수 있다.
또한, 상기 프로세서는, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고, 상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어할 수 있다.
또한, 상기 프로세서는, 상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득할 수 있다.
또한, 상기 프로세서는, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고, 상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하고, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하도록 상기 통신 인터페이스를 제어할 수 있다.
또한, 상기 프로세서는, 관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 기 설정된 협업 시나리오에 기초하여 태스크 할당 기능을 수행할 수 있다.
한편, 본 발명의 일 실시 예에 따른 로봇의 제어 방법은, 센서를 통해 제1 컨텍스트(context) 데이터를 획득하는 단계, 적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 수신하는 단계, 상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하는 단계, 상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계 및 상기 획득된 태스크 정보에 기초하여 상기 로봇을 구동하는 단계를 포함할 수 있다.
여기서, 상기 태스크 정보를 획득하는 단계는, 상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고, 상기 컨스턴트 데이터는, 상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함할 수 있다.
또한, 상기 컨텍스트 데이터를 식별하는 단계는, 상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고, 상기 태스크 정보를 획득하는 단계는, 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득할 수 있다.
여기서, 상기 컨텍스트 데이터를 식별하는 단계는, 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별할 수 있다.
또한, 상기 복수의 요소는, 상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함할 수 있다.
한편, 상기 기 설정된 태스크 할당 알고리즘은, 상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘일 수 있다.
또한, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계 및 상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계를 더 포함할 수 있다.
또한, 상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계를 더 포함할 수 있다.
또한, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계, 상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하는 단계 및 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하는 단계를 더 포함할 수 있다.
또한, 상기 컨텍스트 데이터를 식별하는 단계는, 관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 적어도 하나의 컨텍스트 데이터를 식별할 수 있다.
본 개시의 다양한 실시 예에 따르면, 복수의 로봇이 관리 서버의 개입 없이도 복수의 로봇의 협업에 필요한 태스크를 할당 받아 서비스를 제공할 수 있으므로 사용자의 편의가 향상될 수 있다.
도 1는 본 개시의 일 실시 예에 따른 로봇의 서비스 제공 과정을 설명하기 위한 도면이다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 3a 내지 도 3c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 4a 내지 도 4c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 5a 내지 도 5c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 6은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 7은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
이하에서는 첨부 도면을 참조하여 본 개시를 상세히 설명한다.
본 개시의 실시 예에서 사용되는 용어는 본 개시에서의 기능을 고려하면서 가능한 현재 널리 사용되는 일반적인 용어들을 선택하였으나, 이는 당 분야에 종사하는 기술자의 의도 또는 판례, 새로운 기술의 출현 등에 따라 달라질 수 있다. 또한, 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 개시의 설명 부분에서 상세히 그 의미를 기재할 것이다. 따라서 본 개시에서 사용되는 용어는 단순한 용어의 명칭이 아닌, 그 용어가 가지는 의미와 본 개시의 전반에 걸친 내용을 토대로 정의되어야 한다.
본 개시에서, "가진다," "가질 수 있다," "포함한다," 또는 "포함할 수 있다" 등의 표현은 해당 특징(예: 수치, 기능, 동작, 또는 부품 등의 구성요소)의 존재를 가리키며, 추가적인 특징의 존재를 배제하지 않는다.
A 또는/및 B 중 적어도 하나라는 표현은 "A" 또는 "B" 또는 "A 및 B" 중 어느 하나를 나타내는 것으로 이해되어야 한다.
본 개시에서 사용된 "제1," "제2," "첫째," 또는 "둘째,"등의 표현들은 다양한 구성요소들을, 순서 및/또는 중요도에 상관없이 수식할 수 있고, 한 구성요소를 다른 구성요소와 구분하기 위해 사용될 뿐 해당 구성요소들을 한정하지 않는다.
어떤 구성요소(예: 제1 구성요소)가 다른 구성요소(예: 제2 구성요소)에 "(기능적으로 또는 통신적으로) 연결되어((operatively or communicatively) coupled with/to)" 있다거나 "접속되어(connected to)" 있다고 언급된 때에는, 어떤 구성요소가 다른 구성요소에 직접적으로 연결되거나, 다른 구성요소(예: 제3 구성요소)를 통하여 연결될 수 있다고 이해되어야 할 것이다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함한다. 본 출원에서, "포함하다" 또는 "구성되다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것이지, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 개시에서 "모듈" 혹은 "부"는 적어도 하나의 기능이나 동작을 수행하며, 하드웨어 또는 소프트웨어로 구현되거나 하드웨어와 소프트웨어의 결합으로 구현될 수 있다. 또한, 복수의 "모듈" 혹은 복수의 "부"는 특정한 하드웨어로 구현될 필요가 있는 "모듈" 혹은 "부"를 제외하고는 적어도 하나의 모듈로 일체화되어 적어도 하나의 프로세서(미도시)로 구현될 수 있다.
본 개시에서 '사용자' 는 로봇에게 서비스를 제공받는 사람을 의미할 수 있으나, 이에 한정되는 것은 아니다.
도 1는 본 개시의 일 실시 예에 따른 로봇의 서비스 제공 과정을 설명하기 위한 도면이다.
본 개시의 일 실시 예에 따른 로봇(100)은 특정 공간에 배치되며, 공간을 방문한 사용자에게 다양한 서비스를 제공할 수 있다. 구체적으로, 로봇(100)은 사용자에게 경로 안내, 서빙 또는 청소 중 적어도 하나에 대응되는 서비스를 제공할 수 있으나 이에 한정되는 것은 아니다.
또한, 특정 공간에는 로봇(100)을 비롯하여 적어도 하나의 타 로봇(200, 300)이 배치되며, 로봇(100) 및 적어도 하나의 타 로봇(200, 300)은 상호 협업을 통하여 사용자에게 서비스를 제공할 수 있다. 여기서, 협업을 통한 서비스 제공이란 로봇(100) 및 적어도 하나의 타 로봇(200, 300)이 각기 상이한 태스크 정보에 대응되는 서비스를 사용자에게 제공하는 동작을 의미할 수 있다.
적어도 하나의 타 로봇(200, 300)은 로봇(100)과 동일한 스펙을 갖는 로봇일 수도 있으나, 로봇(100)과 상이한 스펙을 갖는 로봇일 수도 있다. 적어도 하나의 타 로봇(200, 300)은 로봇(100)이 획득한 태스크 정보와 상이한 태스크 정보에 대응되는 서비스를 사용자에게 제공하는 로봇일 수 있다.
도 1에서는 적어도 하나의 타 로봇(200, 300)은 제1 타 로봇(200) 및 제2 타 로봇(300)으로 각각 도시하였다. 도 1에서 도시한 바에 따르면 특정 공간에 총 3대의 로봇(100, 200, 300)이 배치될 수 있으나 이에 한정되는 것은 아니며, 보다 많은 수의 로봇이 협업하여 사용자에게 서비스를 제공할 수 도 있다.
일 예에 따르면, 복수의 로봇(100, 200, 300)은 관리 서버에 의해 제어될 수 있다. 구체적으로, 관리 서버는 복수의 로봇(100, 200, 300)이 획득한 데이터를 수신하고, 수신한 데이터에 기초하여 복수의 로봇(100, 200, 300)에 대응되는 태스크 정보를 획득할 수 있다. 또한, 관리 서버는 획득된 태스크 정보를 복수의 로봇(100, 200, 300)으로 전송함으로써 로봇(100, 200, 300)의 서비스 제공을 제어할 수 있다.
그러나, 복수의 로봇(100, 200, 300)을 관리하는 서버에 에러가 발생한 경우 복수의 로봇(100, 200, 300)은 서버의 개입이 없이도 각 로봇이 수집한 데이터에 기초하여 각 로봇에 대응되는 태스크 정보를 획득하고, 획득한 태스크 정보에 기초하여 서비스를 제공할 수 있다.
도 2는 본 개시의 일 실시 예에 따른 로봇의 구성을 설명하기 위한 도면이다.
도 2에 따르면, 본 개시의 일 실시 예에 따른 로봇(100)은 센서(110), 구동부(120), 통신 인터페이스(130) 및 프로세서(140)를 포함할 수 있다.
센서(110)는 물리량을 계측하거나 로봇(100)의 작동 상태를 감지하여, 계측 또는 감지된 정보를 전기 신호로 변환할 수 있다. 센서(110)는 카메라를 포함할 수 있으며, 카메라는 오브젝트에 의해 반사되어 수신되는 가시광 기타 광학 신호를 이미지 센서로 포커싱하는 렌즈 및 가시광 기타 광학 신호를 감지할 수 있는 이미지 센서를 포함할 수 있다. 여기서, 이미지 센서는 복수의 픽셀로 구분되는 2D의 픽셀 어레이를 포함할 수 있다.
또한, 센서(110)는 마이크를 포함할 수 있다. 마이크는 사용자의 음성과 주위 노이즈 신호를 수신함으로써 입력 사운드를 수집하는 구성이다. 구체적으로 마이크는 음파를 입력 받아 이와 동일한 파형의 전류를 생성하는 장치를 통칭하는 구성이다. 프로세서(140)는 마이크에 의해 생성된 파형의 전류에 기초하여 입력 사운드에 포함된 사운드 신호를 디지털 신호로 변환할 수 있다.
프로세서(140)는 카메라 또는 마이크를 포함하는 센서(110)를 통해 이미지 데이터 또는 음향 데이터를 포함하는 컨텍스트 데이터를 획득할 수 있다.
또한, 센서(110)는 거리 센서, 제스처 센서, 자이로 센서, 기압 센서, 마그네틱 센서, 가속도 센서, 그립 센서, 근접 센서, 컬러(color) 센서(예: RGB(red, green, blue) 센서), 생체 센서, 온/습도 센서, 조도 센서, 또는 UV(ultra violet) 센서 중의 적어도 하나를 포함할 수도 있으며, 일 예에 따른 센서(110)는 적어도 하나 이상의 센서를 포함하는 센서 모듈의 형태로도 구현될 수 있다.
구동부(120)는 로봇(100)을 주행시킬 수 있는 장치이다. 구동부(120)는 프로세서(140)의 제어에 따라 주행 방향 및 주행 속도를 조절할 수 있으며, 일 예에 따른 구동부(120)는 로봇(100)이 주행하기 위한 동력을 발생시키는 동력발생장치(예: 사용 연료(또는 에너지원)에 따라 가솔린 엔진(engine), 디젤 엔진, LPG(liquefied petroleum gas) 엔진, 전기 모터 등), 주행 방향을 조절하기 위한 조향 장치(예: 기계식 스티어링(manual steering), 유압식 스티어링(hydraulics steering), 전자식 스티어링(electronic control power steering; EPS) 등), 동력에 따라 로봇(100)을 주행시키는 주행 장치(예: 바퀴, 프로펠러 등) 등을 포함할 수 있다. 여기서, 구동부(120)는 로봇(100)의 주행 타입(예: 휠 타입, 보행 타입, 비행 타입 등)에 따라 변형 실시될 수 있다.
통신 인터페이스(130)는 다양한 타입의 데이터를 입력 및 출력할 수 있다. 예를 들어 통신 인터페이스(130)는 AP 기반의 Wi-Fi(와이파이, Wireless LAN 네트워크), 블루투스(Bluetooth), 지그비(Zigbee), 유/무선 LAN(Local Area Network), WAN(Wide Area Network), 이더넷(Ethernet), IEEE 1394, HDMI(High-Definition Multimedia Interface), USB(Universal Serial Bus), MHL(Mobile High-Definition Link), AES/EBU(Audio Engineering Society/ European Broadcasting Union), 옵티컬(Optical), 코액셜(Coaxial) 등과 같은 통신 방식을 통해 외부 장치(예를 들어, 소스 장치), 외부 저장 매체(예를 들어, USB 메모리), 외부 서버(예를 들어 웹 하드)와 다양한 타입의 데이터를 송수신할 수 있다.
프로세서(140)는 통신 인터페이스(130)를 통해 외부 서버 또는 타 로봇과 데이터를 송수신할 수 있다. 특히, 프로세서(140)는 통신 인터페이스(130)를 통해 타 로봇으로 컨텍스트 데이터를 전송하거나 타 로봇으로부터 컨텍스트 데이터를 수신할 수 있다.
프로세서(140)는 로봇(100)의 동작을 전반적으로 제어한다. 구체적으로, 프로세서(140)는 로봇(100)의 각 구성과 연결되어 로봇(100)의 동작을 전반적으로 제어할 수 있다. 예를 들어, 프로세서(140)는 센서(110), 구동부(120) 및 통신 인터페이스(130)와 연결되어 로봇(100)의 동작을 제어할 수 있다.
일 실시 예에 따라 프로세서(140)는 디지털 시그널 프로세서(digital signal processor(DSP), 마이크로 프로세서(microprocessor), 중앙처리장치(central processing unit(CPU)), MCU(Micro Controller Unit), MPU(micro processing unit), NPU(Neural Processing Unit), 컨트롤러(controller), 어플리케이션 프로세서(application processor(AP)) 등 다양한 이름으로 명명될 수 있으나, 본 명세서에서는 프로세서(140)로 기재한다.
프로세서(140)는 SoC(System on Chip), LSI(large scale integration)로 구현될 수도 있고, FPGA(Field Programmable gate array) 형태로 구현될 수도 있다. 또한, 프로세서(140)는 SRAM 등의 휘발성 메모리를 포함할 수 있다.
본 개시의 일 실시 예에 따른 프로세서(140)는 센서(110)를 통해 제1 컨텍스트(context) 데이터를 획득할 수 있다. 또한, 프로세서(140)는 적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 통신 인터페이스(130)를 통해 수신하고, 로봇(100) 및 타 로봇의 협업 시나리오에 기초하여 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다.
또한, 프로세서(140)는 식별된 통합 컨텍스트 데이터 및 로봇(100)의 컨스턴트 데이터에 기초하여 로봇(100)에 대응되는 태스크 정보를 획득할 수 있다. 여기서, 컨스턴트 데이터는 로봇(100)의 식별 정보, 로봇(100)의 스펙 정보, 로봇(100)의 기능 정보, 로봇(100)이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함할 수 있다.
또한, 프로세서(140)는 로봇(100) 및 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 중 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다. 또한, 프로세서(140)는 복수의 요소 각각에 대응되는 통합 컨텍스트 데이터를 기 설정된 태스크 할당 알고리즘에 입력하여 로봇(100)에 대응되는 태스크 정보를 획득할 수 있다.
여기서, 프로세서(140)는 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별할 수 있다.
또한, 복수의 요소는 외부 오브젝트의 타입 정보, 외부 오브젝트의 위치 정보, 로봇(100)의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함할 수 있다.
또한, 기 설정된 태스크 할당 알고리즘은 로봇(100) 및 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 로봇(100) 및 타 로봇의 태스크 별 코스트 식별 중 적어도 하나를 포함하는 알고리즘일 수 있다.
또한, 프로세서(140)는 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하도록 통신 인터페이스(130)를 제어하고, 통합 컨텍스트 데이터가 식별되면 식별된 통합 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하도록 통신 인터페이스(130)를 제어할 수 있다.
또한, 프로세서(140)는 적어도 하나의 타 로봇으로부터 협업 시나리오에 기초하여 식별된 통합 컨텍스트 데이터가 수신되면 수신된 통합 컨텍스트 데이터 및 로봇(100)이 식별한 통합 컨텍스트 데이터 중 우선 순위가 높은 통합 컨텍스트 데이터를 기 설정된 태스크 할당 알고리즘에 입력하여 로봇(100)에 대응되는 태스크 정보를 획득할 수 있다.
또한, 프로세서(140)는 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하도록 통신 인터페이스(130)를 제어하고, 적어도 하나의 타 로봇으로부터 협업 시나리오에 기초하여 식별된 통합 컨텍스트 데이터가 수신되면 제1 컨텍스트 데이터가 수신된 통합 컨텍스트 데이터에 반영되었는지 여부를 식별할 수 있다. 프로세서(140)는 제1 컨텍스트 데이터가 수신된 통합 컨텍스트 데이터에 미 반영된 것으로 식별되면 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 재전송하도록 통신 인터페이스(130)를 제어할 수 있다.
또한, 프로세서(140)는 관리 서버에서 에러 발생을 나타내는 신호가 수신되면 기 설정된 협업 시나리오에 기초하여 태스크 할당 기능을 수행할 수 있다.
한편, 제1 타 로봇(200) 및 제2 타 로봇(300) 역시 로봇(100)에 포함된 구성을 포함할 수 있으며, 제1 타 로봇(200) 및 제2 타 로봇(300)에 포함된 각 구성의 기능 또는 동작은 로봇(100)에 포함된 구성의 기능 또는 동작과 동일 또는 유사할 수 있으나, 이에 한정되는 것은 아니다.
다시 도 1을 참조하면, 프로세서(140)는 센서(110)를 통해 컨텍스트(context) 데이터(A)를 획득할 수 있다(S10). 여기서, 컨텍스트 데이터(A)는 로봇(100)의 위치 정보, 외부 오브젝트에 관련된 정보 또는 긴급 상황 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
구체적으로, 컨텍스트 데이터(A)는 로봇(100)이 센서(110)를 통해 센싱 가능한 범위 내의 특정 위치에서 발생한 이벤트에 관한 데이터를 포함할 수 있다. 예를 들어, 로봇(100)이 '서빙'에 대응되는 서비스를 제공하는 경우 컨텍스트 데이터(A)는 로봇(100) 인근에서 발생한 '주문' 이벤트에 대응되는 데이터를 포함할 수 있다. 또한, 로봇(100)이 '청소'에 대응되는 서비스를 제공하는 경우 컨텍스트 데이터(A)는 로봇(100) 인근에서 발생한 '오염원 발생' 이벤트에 대응되는 데이터를 포함할 수 있다.
프로세서(140)는 통신 인터페이스(130)를 통해 관리 서버로부터 에러 발생을 나타내는 신호를 수신할 수 있다(S20). 또한, 프로세서(140)는 관리 서버로부터 에러 발생을 나타내는 신호를 수신함에 기초하여 센서(110)를 통해 획득한 컨텍스트 데이터(A)를 제1 타 로봇(200) 및 제2 타 로봇(300)로 전송하도록 통신 인터페이스(130)를 제어할 수 있다(S30).
또한, 프로세서(140)는 적어도 하나의 타 로봇(200, 300)에 의해 획득된 컨텍스트 데이터를 통신 인터페이스(130)를 통해 수신할 수 있다. 도 1에 따르면, 프로세서(140)는 제1 타 로봇(200)으로부터 획득된 컨텍스트 데이터(B)를 통신 인터페이스(130)를 통해 수신할 수 있다. 이에 따라 로봇(100)은 로봇(100) 및 제1 타 로봇(200)이 센서(110)를 통해 센싱 가능한 범위 내의 적어도 하나의 위치에서 발생한 이벤트에 대한 데이터를 획득할 수 있다.
프로세서(140)는 로봇(100) 및 적어도 하나의 타 로봇의 협업 시나리오에 기초하여 로봇(100)이 획득한 컨텍스트 데이터(A) 및 제1 타 로봇(200)으로부터 수신한 컨텍스트 데이터(B) 중 적어도 하나의 컨텍스트 데이터를 식별할 수 있다. 구체적으로, 프로세서(140)는 복수의 로봇(100, 200, 300)의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 컨텍스트 데이터(A) 및 컨텍스트 데이터(B) 중 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다(S40).
협업 시나리오는 특정 공간에서 발생한 적어도 하나의 이벤트와 관련하여 복수의 로봇(100, 200, 300)이 사용자에게 서비스를 제공하는 과정에서, 복수의 로봇(100, 200, 300)이 수행하는 태스크 별 코스트의 합을 최소화하기 위한 시나리오를 의미할 수 있으나, 이에 한정되는 것은 아니다.
여기서, 협업 시나리오와 관련된 복수의 요소에는 복수의 로봇(100, 200, 300)의 위치 정보, 외부 오브젝트에 관련한 정보 또는 긴급 상황 정보 중 적어도 하나의 정보에 관한 요소가 포함될 수 있으나 이에 한정되는 것은 아니다. 예를 들어, 프로세서(140)는 컨텍스트 데이터(A) 및 컨텍스트 데이터(B) 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 협업 시나리오와 관련된 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있으나 이에 한정되는 것은 아니다.
일 예에 따른 프로세서(140)는 협업 시나리오와 관련된 복수의 요소 중 일 요소와 관련하여 적어도 하나의 컨텍스트 데이터의 유사도에 기초하여 협업 시나리오와 관련한 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다. 예를 들어, 적어도 하나의 컨텍스트 데이터에 '외부 오브젝트 식별'에 대응되는 이벤트에 관한 데이터가 포함된 경우 프로세서(140)는 '외부 오브젝트의 타입'이라는 협업 시나리오와 관련된 일 요소와 관련하여 적어도 하나의 컨텍스트 데이터 중 다른 컨텍스트 데이터와 유사도가 높은 적어도 하나의 컨텍스트 데이터를 포함하는 통합 컨텍스트 데이터를 식별할 수 있다.
보다 구체적으로, 프로세서(140)가 총 3개의 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 식별하는 경우 2개의 컨텍스트 데이터에는 '외부 오브젝트의 타입: 사람'에 대응되는 데이터가 포함되고 나머지 1개의 컨텍스트 데이터에는 '외부 오브젝트의 타입: 장애물'에 대응되는 데이터가 포함된 경우, 프로세서(140)는 외부 오브젝트의 타입이 '사람'인 것에 기초하여 통합 컨텍스트 데이터를 식별할 수 있다.
그러나, 긴급 상황이 발생했을 가능성이 있는 경우에 로봇(100)은 긴급 상황에 대응되는 서비스를 우선적으로 제공할 필요가 있기 때문에, 프로세서(140)는 다른 컨텍스트 데이터와 유사도가 낮은 '외부 오브젝트 타입: 장애물'에 대응되는 컨텍스트 데이터에 긴급 상황 정보가 포함된 경우에는 해당 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 식별할 수도 있다. 따라서 프로세서(140)는 장애물에 의해 긴급 상황이 유발된 것에 기초하여 통합 컨텍스트 데이터를 식별할 수 있다.
또한, 프로세서(140)는 컨텍스트 데이터 각각의 유사도 여부에 기초하여 통합 컨텍스트 데이터를 식별할 수 없는 경우에는 가장 최근에 획득된 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 식별할 수 있다. 예를 들어, 프로세서(140)가 총 2개의 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 식별하는 경우 먼저 획득된 컨텍스트 데이터에는 '외부 오브젝트의 위치: 복도'에 대응되는 데이터가 포함되고 나중에 획득된 컨텍스트 데이터에는 '외부 오브젝트의 위치: 출입문'에 대응되는 데이터가 포함되는 경우, 프로세서(140)는 사용자가 출입문 근처에 위치하는 것에 기초하여 통합 컨텍스트 데이터를 식별할 수 있다.
프로세서(140)는 식별된 통합 컨텍스트 데이터를 제1 타 로봇(200) 및 제2 타 로봇(300)로 전송하도록 통신 인터페이스(130)를 제어할 수 있다(S50). 또한, 프로세서(140)는 태스크 할당 알고리즘에 컨스턴트 데이터 및 통합 컨텍스트 데이터를 입력하여 로봇(100)에 대응되는 태스크 정보를 획득할 수 있다(S70).
여기서, 컨스턴트 데이터는 로봇(100)의 식별 정보, 로봇(100)의 스펙 정보, 로봇(100)의 기능 정보, 로봇(100)이 위치하는 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니며, 공간 내에서 발생하는 이벤트와 관계 없이 변화하지 않는 데이터라면 얼마든지 컨스턴트 데이터에 포함될 수 있다. 컨스턴트 데이터는 복수의 로봇(100, 200, 300)에 포함된 메모리에 저장될 수 있으며, 필요에 따라서는 복수의 로봇(100, 200, 300) 간에 컨스턴트 데이터를 송수신함으로써 통합된 컨스턴트 데이터를 활용할 수도 있다.
일 예에 따른 태스크 할당 알고리즘은 로봇(100) 및 적어도 하나의 타 로봇(200, 300)의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 복수의 로봇(100, 200, 300)의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘일 수 있다. 태스크 할당 알고리즘은 복수의 로봇(100, 200, 300)에 포함된 메모리에 저장될 수 있으며, 필요에 따라서는 복수의 로봇(100, 200, 300)이 외부 서버와 통신하여 기 저장된 태스크 할당 알고리즘을 새로운 태스크 할당 알고리즘으로 업데이트할 수도 있다.
일 예에 따른 프로세서(140)는 태스크 할당 알고리즘을 통해 로봇(100)의 현재 태스크가 무엇인지 식별하고, 외부 오브젝트와 관련된 상황을 확인할 수 있다. 또한, 프로세서(140)는 복수의 로봇(100, 200, 300)의 협업 시나리오와 관련하여 복수의 로봇(100, 200, 300)이 수행하는 태스크 별 코스트의 합을 최소화하기 위해 로봇(100)이 수행하기 적합한 태스크에 대응되는 태스크 정보를 획득할 수 있다.
구체적으로, 프로세서(140)는 로봇(100)이 '서빙' 태스크, 제1 타 로봇(200)은 '식기 정리' 태스크를 수행하며, 로봇(100) 인근에서 '빈 접시 발견' 이벤트가 발생한 것에 대응되는 통합 컨텍스트 데이터 및 컨스턴트 데이터를 태스크 할당 알고리즘에 입력할 수 있다. 빈 접시는 제1 타 로봇(200) 보다 로봇(100)에서 가까이 위치하지만, 서빙 태스크를 수행하는 로봇(100)이 빈 접시를 수거하는 것보다는 식기 정리 태스크를 수행하는 제1 타 로봇(200)이 빈 접시를 수거하는 것이 복수의 로봇(100, 200, 300)의 협업 시나리오에 보다 적합할 수 있으므로, 프로세서(140)는 태스크 할당 알고리즘을 통해 빈 접시를 수거하는 태스크에 관한 정보를 제1타 로봇(200)에 대한 태스크 정보로 획득할 수 있다.
또한, 프로세서(140)는 획득한 태스크 정보에 기초하여 사용자에게 서비스를 제공할 수 있다(S80). 구체적으로, 프로세서(140)는 태스크 정보에 기초하여 로봇(100)이 사용자에게 제공할 서비스에 대응되는 동작을 수행하도록 구동부(120)를 제어할 수 있다.
상술한 로봇(100)의 통합 컨텍스트 데이터 식별 및 태스크 정보 획득 동작은 반복하여 이루어질 수 있다. 일 예에 따르면 프로세서(140)는 태스크 정보 획득 이후 기 설정된 시간이 지나면 다시 통합 컨텍스트 데이터를 식별하고, 그에 기초하여 새로운 태스크 정보를 획득하여 새로운 태스크 정보에 기초한 서비스를 제공할 수 있다. 다만, 이는 일 예에 불과하며 프로세서(140)는 로봇(100)이 새롭게 획득한 컨텍스트 데이터(A)에 중요 이벤트와 관련된 정보가 포함된 것에 기초하여 통합 컨텍스트 데이터 식별 및 태스크 정보 획득 동작을 수행할 수도 있다.
한편, 본 개시의 일 실시 예에 따른 제1 타 로봇(200) 역시 로봇(100)과 마찬가지로 컨텍스트 데이터(B)를 획득할 수 있다(S11). 관리 서버에 문제가 생긴 경우 제1 타 로봇(200)은 관리 서버로부터 에러 발생을 나타내는 신호를 수신할 수 있다(S21).
또한, 제1 타 로봇(200)은 로봇(100)으로부터 컨텍스트 데이터(A)를 수신하고, 그와 별개로 스스로 획득한 컨텍스트 데이터(B)를 로봇(100) 및 제2 타 로봇(300)로 전송할 수 있다(S31).
제1 타 로봇(200)은 복수의 로봇(100, 200, 300)의 협업 시나리오에 기초하여 제1 타 로봇(200)이 획득한 컨텍스트 데이터(B) 및 로봇(100)으로부터 수신한 컨텍스트 데이터(A) 중 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다.
그러나, 제1 타 로봇(200)이 통합 컨텍스트 데이터를 식별하기 전에 제1 타 로봇(200)이 아닌 다른 로봇(100)으로부터 통합 컨텍스트 데이터를 수신하는 경우 제1 타 로봇(200)은 수신된 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터가 반영되었는지 여부를 식별할 수 있다(S51).
구체적으로, 제1 타 로봇(200)은 복수의 로봇(100, 200, 300)의 협업 시나리오와 관련된 복수의 요소와 관련하여 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터(B)에 포함된 복수의 요소에 대응되는 데이터가 전혀 포함되어 있지 않은 경우 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터가 반영되지 않은 것으로 식별할 수 있다(S51: N). 반대로, 제1 타 로봇(200)은 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터(B)에 포함된 복수의 요소에 대응되는 데이터가 일부라도 포함되어 있는 경우 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터가 반영된 것으로 식별할 수 있다(S51: Y).
통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터가 반영되지 않은 것으로 식별되는 경우, 제1 타 로봇(200)은 스스로 획득한 컨텍스트 데이터(B)를 제1 타 로봇에게 통합 컨텍스트 데이터를 전송한 로봇(100)으로 재전송할 수 있다(S61). 이에 따라 로봇(100)이 이후 다시 통합 컨텍스트 데이터를 식별하는 과정에서 제1 타 로봇(200)으로부터 재전송된 컨텍스트 데이터(B)가 고려될 수 있게 된다.
제1 타 로봇(200)은 스스로 획득한 컨텍스트 데이터(B)를 로봇(100)으로 재전송한 경우(S61) 또는 통합 컨텍스트 데이터에 제1 타 로봇(200)이 획득한 컨텍스트 데이터가 반영된 것으로 식별한 경우(S51: Y)에 태스크 할당 알고리즘에 로봇(100)으로부터 수신한 통합 컨텍스트 데이터 및 컨스턴트 데이터를 입력하여 태스크 정보를 획득할 수 있다(S71).
또한, 제1 타 로봇(200)은 획득된 태스크 정보에 기초하여 사용자에게 서비스를 제공할 수 있다(S81).
한편, 본 개시의 일 실시 예에 따른 제2 타 로봇(300)은 로봇(100) 및 제1 타 로봇(200)과는 달리 컨텍스트 데이터를 획득하지 않는 로봇일 수 있다. 구체적으로, 제2 타 로봇(300)은 기존에 사용자에게 서비스를 제공하는 상태가 아닌 대기 상태인 로봇으로 센서(110)를 통해 컨텍스트 데이터를 획득하지 않을 수 있다.
제2 타 로봇(300)은 관리 서버로부터 에러 발생을 나타내는 신호를 수신할 수 있다(S22). 이어서 제2 타 로봇(300)는 로봇(100) 및 제1 타 로봇(200)으로부터 복수의 컨텍스트 데이터(A, B)를 수신할 수 있다.
또한, 제2 타 로봇(300)은 수신된 복수의 x컨텍스트 데이터에 기초하여 협업 시나리오와 관련된 통합 컨텍스트 데이터를 식별할 수 있다(S42). 구체적으로, 제2 타 로봇(300)은 로봇(100)으로부터 수신한 컨텍스트 데이터(A) 및 제1 타 로봇(200)으로부터 수신한 컨텍스트 데이터(B) 중 복수의 로봇(100, 200, 300)의 협업 시나리오와 관련된 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 통합 컨텍스트 데이터로 식별할 수 있다.
또한, 제2 타 로봇(300)은 로봇(100)으로부터 수신된 통합 컨텍스트 데이터 및 제2 타 로봇(300)이 식별한 통합 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 식별할 수 있다(S52). 로봇(100) 및 제2 타 로봇(300)이 통합 컨텍스트 데이터 식별에 사용하는 컨텍스트 데이터(A, B) 및 통합 컨텍스트 데이터의 식별 방식이 동일하기 때문에 로봇(100)으로부터 수신된 통합 컨텍스트 데이터와 제2 타 로봇(300)이 식별한 통합 컨텍스트 데이터는 완전히 동일한 데이터를 포함할 수 있다.
다만, 제2 타 로봇(300)은 태스크 할당 알고리즘에 입력할 하나의 통합 컨텍스트 데이터를 식별하기 위하여 로봇(100)으로부터 수신된 통합 컨텍스트 데이터와 제2 타 로봇(300)이 식별한 통합 컨텍스트 데이터 간의 우선 순위에 기초하여 하나의 통합 컨텍스트 데이터를 식별할 수 있다.
일 예에 따른 제2 타 로봇(300)은 로봇(100)으로부터 통합 컨텍스트 데이터를 수신한 시점이 제2 타 로봇(300) 스스로 통합 컨텍스트 데이터를 식별한 시점보다 앞서는 경우, 로봇(100)으로부터 수신한 통합 컨텍스트가 높은 우선 순위를 갖는 것으로 식별할 수 있다. 반대로, 제2 타 로봇(300)은 제2 타 로봇(300) 스스로 통합 컨텍스트 데이터를 식별한 시점이 로봇(100)으로부터 통합 컨텍스트 데이터를 수신한 시점보다 앞서는 경우, 제2 타 로봇(300)이 식별한 통합 컨텍스트 데이터가 높은 우선 순위를 갖는 것으로 식별할 수 있다.
또한, 제2 타 로봇(300)은 태스크 할당 알고리즘에 컨스턴트 데이터 및 우선 순위가 높은 것으로 식별된 컨텍스트 데이터를 입력하여 태스크 정보를 획득할 수 있다(S72).
또한, 제2 타 로봇(300)은 획득된 태스크 정보에 기초하여 사용자에게 서비스를 제공할 수 있다(S82).
상술한 바와 같이, 복수의 로봇(100, 200, 300)은 동일한 통합 컨텍스트 데이터 및 동일한 태스크 할당 알고리즘을 활용하여 각 로봇에 대응되는 태스크 정보를 획득하여 서비스를 제공하므로, 복수의 로봇(100, 200, 300)의 협업 시나리오에서 서로 겹치는 태스크 없이 각 로봇이 수행하기 적합한 태스크가 각 로봇에게 할당될 수 있으므로 사용자의 편의가 제고될 수 있다.
도 3a 내지 도 3c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 3a에 따르면, 식당(300)에 배치된 복수의 로봇(310, 320, 330)은 협업 시나리오에 기초하여 서비스를 제공할 수 있다. 예를 들어, 로봇 1(310)은 서빙(311), 로봇 2(320)는 퇴식(321), 로봇 3(330)은 패트롤(331)에 대응되는 태스크를 수행할 수 있다.
복수의 로봇(310, 320, 330)은 각각의 식별 데이터를 포함하는 컨스턴트 데이터 및 각 로봇의 위치 정보 및 외부 오브젝트에 관련된 데이터를 포함하는 컨텍스트 데이터를 저장할 수 있다. 여기서, 각 로봇이 저장하고 있는 컨텍스트 데이터는 지속적으로 업데이트되는 데이터를 포함할 수 있다.
복수의 로봇(310, 320, 330)들은 각자 저장하고 있는 컨스턴트 데이터 및 컨텍스트 데이터를 서로 공유할 수 있다. 이에 따라 복수의 로봇(310, 320, 330) 모두는 각 로봇의 위치정보 및 외부 오브젝트에 관련된 정보를 공유할 수 있다.
도 3b에 따르면, 식당(300)에서 서비스를 제공하는 로봇 1(310)은 빈 접시(340)를 식별할 수 있다. 이 경우, 로봇 1(310)은 사용자가 위치하지 않은 테이블에 놓인 접시(340)를 빈 접시로 식별하고, 해당 접시(340)를 퇴식 태스크의 객체로 식별하는 내용의 컨텍스트 데이터(341)를 획득할 수 있다.
여기서, 로봇 2(320)는 로봇 1(310)로부터 수신한 컨텍스트 데이터(341) 및 스스로 획득한 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 획득할 수 있다.
도 3c에 따르면, 로봇 2(320)는 통합 컨텍스트 데이터를 태스크 할당 알고리즘에 입력하여 로봇 2(320)에 대응되는 태스크 정보를 획득할 수 있다. 구체적으로, 로봇 2(320)는 복수의 로봇(310, 320, 330) 각각의 현재 태스크 식별, 외부 오브젝트(340)의 상황 식별 및 복수의 로봇(310, 320, 330)의 태스크 별 코스트 식별에 기초하여 로봇 2(320) 스스로 접시(340)를 대상으로 퇴식 태스크를 수행하는 내용의 태스크 정보를 획득하고, 획득된 태스크 정보에 기초하여 퇴식 태스크를 수행할 수 있다. 로봇 1(310)이 로봇 2(320)보다 접시(340)에 가까이 위치하고 있더라도, 현재 퇴식 태스크를 수행중인 로봇 2(320)가 접시(340)를 대상으로 퇴식 태스크를 계속해서 수행하는 것이 복수의 로봇(310, 320, 330)의 태스크 별 코스트의 합을 최소화시킬 수 있기 때문이다.
도 4a 내지 도 4c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 4a에 따르면, 호텔(400)에 배치된 복수의 로봇(410, 420, 430)은 협업 시나리오에 기초하여 서비스를 제공할 수 있다. 예를 들어, 로봇 1(410)은 세탁물 운반(411), 로봇 2(420)는 가이드(421), 로봇 3(430)은 세탁물 운반(431)에 대응되는 태스크를 수행할 수 있다.
복수의 로봇(410, 420, 430)은 호텔(400)에 위치한 구조물(440, 450) 및 제1 사용자(10)에 대한 컨텍스트 데이터를 획득할 수 있다. 예를 들어, 복수의 로봇(410, 420, 430)의 로봇은 로봇 2(420)로부터 서비스를 제공받는 제1 사용자에 대한 정보(11) 및 301호와 302호의 객실 문(440, 450)이 현재 폐쇄 상태에 있다는 정보(441, 451)를 획득 내지 공유할 수 있다.
도 4b에 따르면, 로봇 2(420)는 302호의 객실 문(450)이 개방 상태로 변경되었다는 정보(452) 및 제2 사용자(20)에 관한 정보(21)를 포함하는 컨텍스트 데이터를 획득하고 획득한 컨텍스트 데이터를 로봇 1(410) 및 로봇 3(430)으로 전송할 수 있다. 다른 실시 예에 따르면, 로봇 2(420)는 로봇 1(410) 및 로봇 3(430)으로부터 수신한 컨텍스트 데이터 및 스스로 획득한 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 획득하고, 획득된 통합 컨텍스트 데이터를 로봇 1(410) 및 로봇 3(430)으로 전송할 수도 있다.
도 4c에 따르면, 복수의 로봇(410, 420, 430)은 타 로봇으로부터 수신한 컨텍스트 데이터 및 스스로 획득한 컨텍스트 데이터에 기초하여 통합 컨텍스트 데이터를 획득하고, 획득한 통합 컨텍스트 데이터를 태스크 할당 알고리즘에 입력하여 각 로봇에 대응되는 태스크 정보를 획득할 수 있다.
로봇 2(420)가 제2 사용자(20)의 퇴실로 인해 청소 태스크의 대상이 된 302호 객실(450)과 가장 가까이 위치한 로봇이지만, 로봇 2(420)가 현재 제1 사용자(10)에 대한 가이드 태스크를 수행하고 있다는 점에 기초하여, 로봇 1(410)이 302호 객실(450)을 대상으로 하는 청소 태스크에 대응되는 로봇으로 식별될 수 있다.
따라서, 로봇 1(410)은 통합 컨텍스트 데이터를 태스크 할당 알고리즘에 입력한 결과 302호 객실(450)을 대상으로 하는 청소 태스크에 대응되는 태스크 정보(412)를 획득하고, 획득된 태스크 정보에 기초하여 청소 태스크를 수행할 수 있다. 또한, 로봇 2(420)는 기존의 가이드 태스크를 지속할 수 있다.
또한, 로봇 3(430)은 통합 컨텍스트 데이터를 태스크 할당 알고리즘에 입력하여 로봇 1(410)이 운반하던 세탁물을 인수하여 세탁물을 한꺼번에 운반하는 내용의 태스크 정보를 획득하고, 획득된 태스크 정보에 기초하여 기존의 세탁물 운반 태스크를 지속할 수 있다.
도 5a 내지 도 5c는 본 개시의 일 실시 예에 따른 복수의 로봇들 간의 협업에 대해 설명하기 위한 도면이다.
도 5a에 따르면, 복도(500)에 배치된 복수의 로봇(510, 520)은 협업 시나리오에 기초하여 서비스를 제공할 수 있다. 예를 들어, 통상의 업무를 수행(511)하는 로봇 1(510)은 통상의 업무에 대응되는 태스크 정보에 기초하여 획득된 이동 경로(501)를 따라 이동할 수 있다. 한편, 로봇 2(520)는 대기 상태(521)에 있을 수 있다.
도 5b에 따르면, 통상의 업무를 수행하는 로봇 1(510)은 복도(500)의 일 측에서 발생한 긴급 상황(530)에 대응되는 컨텍스트 데이터(531)를 획득할 수 있다. 로봇 1(510)은 획득한 컨텍스트 데이터(531)를 로봇 2(520)로 전송할 수 있다. 로봇 1(510)로부터 수신한 컨텍스트 데이터에는 긴급 상황 정보(531)가 포함되어 있으므로, 로봇 2(520)는 로봇 1(510)로부터 수신한 컨텍스트 데이터에 기초하여 긴급 상황(530)에 대한 정보를 포함하는 통합 컨텍스트 데이터를 획득할 수 있다.
도 5c에 따르면, 로봇 2(520)는 긴급 상황(530)에 대한 정보를 포함하는 통합 컨텍스트 데이터 및 각 로봇(510, 520)의 컨스턴트 데이터를 태스크 할당 알고리즘에 입력하여 로봇 2(520)에 대응되는 태스크 정보를 획득할 수 있다. 예를 들어, 로봇2(520)의 스펙 또는 기능이 로봇 1(510)의 스펙 또는 기능보다 긴급 상황(530)에 대처하기 적합할 경우, 로봇 2(520)는 긴급 상황(530)이 발생한 지점에 가까운 로봇 1(510)에 우선하여 긴급 상황(530)을 처리하는 태스크를 할당 받아 이에 대응되는 긴급 업무(522)를 수행할 수 있다.
보다 구체적으로, 로봇 2(520)에 대응되는 태스크 정보에는 로봇 2(520)가 긴급 상황(530)이 발생한 지점까지 이동하게 될 경로(502)에 관한 정보가 포함될 수 있으며, 로봇 2(520)는 태스크 별 우선 순위 정보를 포함하는 컨스턴트 데이터 및 통합 컨텍스트 데이터를 태스크 할당 알고리즘에 입력하여 로봇 2(520)의 위치로부터 긴급 상황(530)이 발생한 지점까지 이동하는 최단 경로(502)에 관한 정보를 포함하는 태스크 정보를 획득할 수 있다.
또한, 로봇 1(510)는 스스로 획득하거나 로봇 2(520)로부터 수신한 통합 컨텍스트 데이터 및 컨스턴트 데이터를 태스크 할당 알고리즘에 입력하여 획득된 태스크 정보에 기초하여 기존의 통상 업무 태스크(511)를 지속할 수 있다. 다만, 로봇 1(510)이 수행할 통상 업무(511)는 로봇 2(520)가 수행할 긴급 업무(522)보다 우선 순위가 낮은 태스크이므로, 로봇 1(510)의 이동 경로는 기존의 경로(501)에서 변경 경로(503)로 수정될 수 있다.
이를 통해 복도(500)에 배치된 복수의 로봇(510, 520)은 긴급 상황(530)을 처리하기 적합한 로봇(520)이 신속하게 이동할 수 있는 협업 시나리오에 기초하여 사용자에게 최적의 서비스를 제공할 수 있게 된다.
도 6은 본 개시의 일 실시 예에 따른 로봇의 기능적 구성을 구체적으로 설명하기 위한 도면이다.
도 6에 따르면 로봇(100)는 센서(110), 구동부(120), 통신 인터페이스(130), 프로세서(140), 디스플레이(150), 메모리(160) 및 사용자 인터페이스(170)를 포함할 수 있다. 도 6에 도시된 구성 중 도 2에 도시된 구성과 중복되는 구성에 대해서는 자세한 설명을 생략하도록 한다.
디스플레이(150)는 LCD(Liquid Crystal Display), OLED(Organic Light Emitting Diodes) 디스플레이, QLED(Quantum dot light-emitting diodes) 디스플레이, PDP(Plasma Display Panel) 등과 같은 다양한 형태의 디스플레이로 구현될 수 있다. 디스플레이(150) 내에는 TFT, LTPS(low temperature poly silicon) TFT, OTFT(organic TFT) 등과 같은 형태로 구현될 수 있는 구동 회로, 백라이트 유닛 등도 함께 포함될 수 있다. 한편, 디스플레이(150)는 플렉서블 디스플레이(flexible display), 3차원 디스플레이(3D display) 등으로 구현될 수 있다.
일 예에 따른 디스플레이(150)는 로봇(100)이 제공하는 서비스와 관련된 정보 또는 해당 정보를 포함하는 UI(User Interface)를 표시할 수 있다.
메모리(160)는 본 개시의 다양한 실시 예를 위해 필요한 데이터를 저장할 수 있다. 메모리(160)는 데이터 저장 용도에 따라 로봇(100)에 임베디드된 메모리 형태로 구현되거나, 로봇(100)에 탈부착이 가능한 메모리 형태로 구현될 수도 있다. 예를 들어, 로봇(100)의 구동을 위한 데이터의 경우 로봇(100)에 임베디드된 메모리에 저장되고, 로봇(100)의 확장 기능을 위한 데이터의 경우 로봇(100)에 탈부착이 가능한 메모리에 저장될 수 있다. 한편, 로봇(100)에 임베디드된 메모리의 경우 휘발성 메모리(예: DRAM(dynamic RAM), SRAM(static RAM), 또는 SDRAM(synchronous dynamic RAM) 등), 비휘발성 메모리(non-volatile Memory)(예: OTPROM(one time programmable ROM), PROM(programmable ROM), EPROM(erasable and programmable ROM), EEPROM(electrically erasable and programmable ROM), mask ROM, flash ROM, 플래시 메모리(예: NAND flash 또는 NOR flash 등), 하드 드라이브, 또는 솔리드 스테이트 드라이브(solid state drive(SSD)) 중 적어도 하나로 구현될 수 있다. 또한, 로봇(100)에 탈부착이 가능한 메모리의 경우 메모리 카드(예를 들어, CF(compact flash), SD(secure digital), Micro-SD(micro secure digital), Mini-SD(mini secure digital), xD(extreme digital), MMC(multi-media card) 등), USB 포트에 연결가능한 외부 메모리(예를 들어, USB 메모리) 등과 같은 형태로 구현될 수 있다.
일 예에 따른 메모리(160)는 복수의 로봇 중 적어도 하나의 로봇에 대응되는 컨스턴트 데이터 및 로봇(100)이 획득한 컨텍스트 데이터 또는 타 로봇으로부터 수신한 컨텍스트 데이터 중 적어도 하나를 저장할 수 있다. 또한, 메모리(160)는 기 설정된 태스크 할당 알고리즘 및 컨스턴트 데이터와 컨텍스트 데이터를 태스크 할당 알고리즘에 입력하여 획득되는 태스크 정보를 저장할 수도 있다.
사용자 인터페이스(170)는 로봇(100)이 사용자와 인터렉션(Interaction)을 수행하는 데 관여하는 구성이다. 예를 들어 사용자 인터페이스(170)는 터치 센서, 모션 센서, 버튼, 조그(Jog) 다이얼, 스위치, 마이크 또는 스피커 중 적어도 하나를 포함할 수 있으나 이에 한정되는 것은 아니다.
도 7은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
본 개시의 일 실시 예에 따른 제어 방법은 센서를 통해 제1 컨텍스트(context) 데이터를 획득한다(S710).
이어서, 적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 수신한다(S720).
이어서, 로봇 및 타 로봇의 협업 시나리오에 기초하여 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별한다(S730).
이어서, 협업과 관련된 기 설정된 태스크 할당 알고리즘에 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 로봇에 대응되는 태스크 정보를 획득한다(S740).
마지막으로, 획득된 태스크 정보에 기초하여 로봇을 구동한다(S750).
여기서, 태스크 정보를 획득하는 단계(S740)에서는 식별된 적어도 하나의 컨텍스트 데이터 및 로봇의 컨스턴트(constant) 데이터에 기초하여 로봇에 대응되는 태스크 정보를 획득하고, 컨스턴트 데이터는 로봇의 식별 정보, 로봇의 스펙 정보, 로봇의 기능 정보, 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함할 수 있다.
또한, 컨텍스트 데이터를 식별하는 단계(S730)에서는 로봇 및 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 중 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고, 태스크 정보를 획득하는 단계(S740)에서는 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 기 설정된 태스크 할당 알고리즘에 입력하여 로봇에 대응되는 태스크 정보를 획득할 수 있다.
여기서, 컨텍스트 데이터를 식별하는 단계(S730)에서는 제1 컨텍스트 데이터 및 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별할 수 있다.
또한, 복수의 요소는 외부 오브젝트의 타입 정보, 외부 오브젝트의 위치 정보, 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함할 수 있다.
또한, 기 설정된 태스크 할당 알고리즘은 로봇 및 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 로봇 및 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘일 수 있다.
또한, 제어 방법은 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하는 단계 및 적어도 하나의 컨텍스트 데이터가 식별되면 식별된 적어도 하나의 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하는 단계를 더 포함할 수 있다.
또한, 제어 방법은 적어도 하나의 타 로봇으로부터 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면 수신된 컨텍스트 데이터 및 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 기 설정된 태스크 할당 알고리즘에 입력하여 로봇에 대응되는 태스크 정보를 획득하는 단계를 더 포함할 수 있다.
또한, 제어 방법은 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 전송하는 단계, 적어도 하나의 타 로봇으로부터 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면 제1 컨텍스트 데이터가 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하는 단계 및 제1 컨텍스트 데이터가 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면 제1 컨텍스트 데이터를 적어도 하나의 타 로봇으로 재전송하는 단계를 더 포함할 수 있다.
또한, 컨텍스트 데이터를 식별하는 단계(S730)에서는 관리 서버에서 에러 발생을 나타내는 신호가 수신되면 적어도 하나의 컨텍스트 데이터를 식별할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 설치 가능한 어플리케이션 형태로 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들에 따른 방법들은 기존 로봇에 대한 소프트웨어 업그레이드, 또는 하드웨어 업그레이드 만으로도 구현될 수 있다.
또한, 상술한 본 개시의 다양한 실시 예들은 로봇에 구비된 임베디드 서버 또는 적어도 하나의 외부 서버를 통해 수행되는 것도 가능하다.
한편, 이상에서 설명된 다양한 실시 예들은 소프트웨어(software), 하드웨어(hardware) 또는 이들의 조합을 이용하여 컴퓨터(computer) 또는 이와 유사한 장치로 읽을 수 있는 기록 매체 내에서 구현될 수 있다. 일부 경우에 있어 본 명세서에서 설명되는 실시 예들이 프로세서(140) 자체로 구현될 수 있다. 소프트웨어적인 구현에 의하면, 본 명세서에서 설명되는 절차 및 기능과 같은 실시 예들은 별도의 소프트웨어 모듈들로 구현될 수 있다. 소프트웨어 모듈들 각각은 본 명세서에서 설명되는 하나 이상의 기능 및 동작을 수행할 수 있다.
한편, 상술한 본 개시의 다양한 실시 예들에 따른 로봇(100)의 프로세싱 동작을 수행하기 위한 컴퓨터 명령어(computer instructions)는 비일시적 컴퓨터 판독 가능 매체(non-transitory computer-readable medium) 에 저장될 수 있다. 이러한 비일시적 컴퓨터 판독 가능 매체에 저장된 컴퓨터 명령어는 특정 기기의 프로세서에 의해 실행되었을 때 상술한 다양한 실시 예에 따른 로봇(100)에서의 처리 동작을 특정 기기가 수행하도록 한다.
비일시적 컴퓨터 판독 가능 매체란 레지스터, 캐쉬, 메모리 등과 같이 짧은 순간 동안 데이터를 저장하는 매체가 아니라 반영구적으로 데이터를 저장하며, 기기에 의해 판독(reading)이 가능한 매체를 의미한다. 비일시적 컴퓨터 판독 가능 매체의 구체적인 예로는, CD, DVD, 하드 디스크, 블루레이 디스크, USB, 메모리카드, ROM 등이 있을 수 있다.
이상에서는 본 개시의 바람직한 실시 예에 대하여 도시하고 설명하였지만, 본 개시는 상술한 특정의 실시 예에 한정되지 아니하며, 청구범위에서 청구하는 본 개시의 요지를 벗어남이 없이 당해 개시에 속하는 기술분야에서 통상의 지식을 가진자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 개시의 기술적 사상이나 전망으로부터 개별적으로 이해 되어져서는 안될 것이다.
100: 로봇 110: 센서
120: 구동부 130: 통신 인터페이스
140: 프로세서

Claims (20)

  1. 로봇에 있어서,
    센서;
    구동부;
    통신 인터페이스; 및
    상기 센서를 통해 제1 컨텍스트(context) 데이터를 획득하고,
    적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 상기 통신 인터페이스를 통해 수신하고,
    상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하고,
    상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
    상기 획득된 태스크 정보에 기초하여 상기 구동부를 제어하는 프로세서;를 포함하는 로봇.
  2. 제1항에 있어서,
    상기 프로세서는,
    상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
    상기 컨스턴트 데이터는,
    상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함하는, 로봇.
  3. 제1항에 있어서,
    상기 프로세서는,
    상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고,
    상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 로봇.
  4. 제3항에 있어서,
    상기 프로세서는,
    상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별하는, 로봇.
  5. 제3항에 있어서,
    상기 복수의 요소는,
    상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함하는, 로봇.
  6. 제1항에 있어서,
    상기 기 설정된 태스크 할당 알고리즘은,
    상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘인, 로봇.
  7. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고,
    상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하는, 로봇.
  8. 제1항에 있어서,
    상기 프로세서는,
    상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 로봇.
  9. 제1항에 있어서,
    상기 프로세서는,
    상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고,
    상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하고,
    상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하도록 상기 통신 인터페이스를 제어하는, 로봇.
  10. 제1항에 있어서,
    상기 프로세서는,
    관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 기 설정된 협업 시나리오에 기초하여 태스크 할당 기능을 수행하는, 로봇.
  11. 로봇의 제어 방법에 있어서,
    센서를 통해 제1 컨텍스트(context) 데이터를 획득하는 단계;
    적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 수신하는 단계;
    상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하는 단계;
    상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계; 및
    상기 획득된 태스크 정보에 기초하여 상기 로봇을 구동하는 단계;를 포함하는 제어 방법.
  12. 제11항에 있어서,
    상기 태스크 정보를 획득하는 단계는,
    상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
    상기 컨스턴트 데이터는,
    상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함하는, 제어 방법.
  13. 제11항에 있어서,
    상기 컨텍스트 데이터를 식별하는 단계는,
    상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고,
    상기 태스크 정보를 획득하는 단계는,
    상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 제어 방법.
  14. 제13항에 있어서,
    상기 컨텍스트 데이터를 식별하는 단계는,
    상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별하는, 제어 방법.
  15. 제13항에 있어서,
    상기 복수의 요소는,
    상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함하는, 제어 방법.
  16. 제11항에 있어서,
    상기 기 설정된 태스크 할당 알고리즘은,
    상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘인, 제어 방법.
  17. 제11항에 있어서,
    상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계; 및
    상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계;를 더 포함하는, 제어 방법.
  18. 제11항에 있어서,
    상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계;를 더 포함하는, 제어 방법.
  19. 제11항에 있어서,
    상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계;
    상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하는 단계; 및
    상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하는 단계;를 더 포함하는, 제어 방법.
  20. 제11항에 있어서,
    상기 컨텍스트 데이터를 식별하는 단계는,
    관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 적어도 하나의 컨텍스트 데이터를 식별하는, 제어 방법.
KR1020210113506A 2021-08-26 2021-08-26 로봇 및 그 제어 방법 KR20230031085A (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
KR1020210113506A KR20230031085A (ko) 2021-08-26 2021-08-26 로봇 및 그 제어 방법
PCT/KR2022/008739 WO2023027310A1 (ko) 2021-08-26 2022-06-21 로봇 및 그 제어 방법
US17/974,941 US20230066945A1 (en) 2021-08-26 2022-10-27 Robot and controlling method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020210113506A KR20230031085A (ko) 2021-08-26 2021-08-26 로봇 및 그 제어 방법

Publications (1)

Publication Number Publication Date
KR20230031085A true KR20230031085A (ko) 2023-03-07

Family

ID=85321835

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020210113506A KR20230031085A (ko) 2021-08-26 2021-08-26 로봇 및 그 제어 방법

Country Status (2)

Country Link
KR (1) KR20230031085A (ko)
WO (1) WO2023027310A1 (ko)

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4713846B2 (ja) * 2004-04-30 2011-06-29 独立行政法人科学技術振興機構 ロボット遠隔制御システム
US9008839B1 (en) * 2012-02-07 2015-04-14 Google Inc. Systems and methods for allocating tasks to a plurality of robotic devices
KR102117984B1 (ko) * 2013-11-27 2020-06-02 한국전자통신연구원 군집 로봇의 협력 청소 방법 및 제어 장치
KR101668078B1 (ko) * 2015-04-23 2016-10-19 국방과학연구소 자율적 로봇 협업 시스템과 그 방법
KR102658913B1 (ko) * 2018-11-02 2024-04-18 주식회사 케이티 로봇 협업 제어 방법 및 시스템

Also Published As

Publication number Publication date
WO2023027310A1 (ko) 2023-03-02

Similar Documents

Publication Publication Date Title
US20220407599A1 (en) Systems and methods for providing geolocation services in a mobile-based crowdsourcing platform
KR102171082B1 (ko) 지문 처리 방법 및 그 전자 장치
KR102161100B1 (ko) 위치 관련 정보 제공 방법 및 이를 지원하는 전자 장치
US9965096B2 (en) Method and apparatus for processing input using touch screen
KR102186547B1 (ko) 선택 가능한 통신 서비스를 지원하는 무선 통신 방법 및 장치
CN105452811A (zh) 用于显示地图的用户终端设备及其方法
US20160162241A1 (en) Method and electronic device for controlling display thereof
US20160077621A1 (en) Electronic device and control method thereof
KR102219365B1 (ko) 외부 환경정보를 제공하는 전자장치 및 방법
US20160018954A1 (en) Data processing method and electronic device thereof
US10977941B2 (en) Passenger transit vehicle geolocation
KR20210093671A (ko) 전자 장치 및 그 제어 방법
KR102236203B1 (ko) 서비스를 제공하는 방법 및 그 전자 장치
US20230066945A1 (en) Robot and controlling method thereof
US20160110372A1 (en) Method and apparatus for providing location-based social search service
US20150317299A1 (en) Method of controlling a text input and electronic device thereof
KR20230031085A (ko) 로봇 및 그 제어 방법
US9990076B2 (en) Touch screen apparatus
CN113132051B (zh) 减少电磁跟踪系统之间的干扰
US11754700B2 (en) Electronic device for detecting external object using plurality of array antennas arranged in plurality of directions and method thereof
KR101799413B1 (ko) 스크롤 입력 기반 인터랙티브 노선정보 제공 시스템 및 방법, 그리고 이를 위한 사용자 장치 및 컴퓨터 프로그램이 기록된 기록매체
CN115079685A (zh) 控制移动机器人装置的方法
KR101886797B1 (ko) 숙박 시설 무인 응대 서비스 방법 및 시스템
US20240053764A1 (en) Robot and controlling method thereof
US11108586B2 (en) Infotainment apparatus of vehicle, and control method for the same

Legal Events

Date Code Title Description
A201 Request for examination