KR20230031085A - 로봇 및 그 제어 방법 - Google Patents
로봇 및 그 제어 방법 Download PDFInfo
- 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
Links
- 238000000034 method Methods 0.000 title claims description 32
- 238000004891 communication Methods 0.000 claims abstract description 32
- 230000006870 function Effects 0.000 description 17
- 238000007726 management method Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 12
- 238000004140 cleaning Methods 0.000 description 8
- 230000010354 integration Effects 0.000 description 6
- 230000014509 gene expression Effects 0.000 description 5
- 238000012545 processing Methods 0.000 description 5
- 230000008569 process Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000008030 elimination Effects 0.000 description 2
- 238000003379 elimination reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000010485 coping Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000003208 petroleum Substances 0.000 description 1
- 229910021420 polycrystalline silicon Inorganic materials 0.000 description 1
- 229920005591 polysilicon Polymers 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000008685 targeting Effects 0.000 description 1
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
- B25J11/008—Manipulators for service tasks
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J5/00—Manipulators mounted on wheels or on carriages
- B25J5/007—Manipulators mounted on wheels or on carriages mounted on wheels
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1661—Programme controls characterised by programming, planning systems for manipulators characterised by task planning, object-oriented languages
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1656—Programme controls characterised by programming, planning systems for manipulators
- B25J9/1664—Programme controls characterised by programming, planning systems for manipulators characterised by motion, path, trajectory planning
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05D—SYSTEMS FOR CONTROLLING OR REGULATING NON-ELECTRIC VARIABLES
- G05D1/00—Control of position, course, altitude or attitude of land, water, air or space vehicles, e.g. using automatic pilots
- G05D1/02—Control of position or course in two dimensions
- G05D1/021—Control of position or course in two dimensions specially adapted to land vehicles
- G05D1/0287—Control of position or course in two dimensions specially adapted to land vehicles involving a plurality of land vehicles, e.g. fleet or convoy travelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06316—Sequencing of tasks or work
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0633—Workflow analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Administration; Management
- G06Q10/10—Office automation; Time management
- G06Q10/103—Workflow 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
본 발명은 사용자에게 서비스를 제공하는 로봇 및 그 제어 방법에 관한 것이다.
최근 실내 공간에 배치되어 사용자에게 서비스를 제공하는 로봇에 대한 기술 개발이 활발해지고 있다. 실내 공간에 복수의 로봇이 배치되어 서비스를 제공하는 경우, 복수의 로봇은 관리 서버의 통제 하에 고유의 태스크를 할당 받아 할당된 태스크에 대응되는 서비스를 제공할 수 있다.
그러나, 종래의 로봇은 관리 서버에 문제가 발생하는 경우 서비스를 위한 태스크를 할당 받지 못하여 원활한 서비스 제공을 할 수 없는 문제점이 있었다. 이에 따라 관리 서버 없이도 복수의 로봇이 협업하여 사용자에게 서비스를 제공하는 방법에 대한 지속적인 요구가 있었다.
본 개시는 상술한 필요성에 따른 것으로, 로봇이 획득한 컨텍스트 데이터 및 타 로봇으로부터 수신한 컨텍스트 데이터에 기초하여 획득된 태스크 정보에 대응되는 서비스를 제공하는 로봇 및 그 제어 방법을 제공함에 있다.
이상과 같은 목적을 달성하기 위한 본 발명의 일 실시 예에 따른 로봇은, 센서, 구동부, 통신 인터페이스 및 상기 센서를 통해 제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은 본 개시의 일 실시 예에 따른 제어 방법을 설명하기 위한 흐름도이다.
도 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: 프로세서
120: 구동부 130: 통신 인터페이스
140: 프로세서
Claims (20)
- 로봇에 있어서,
센서;
구동부;
통신 인터페이스; 및
상기 센서를 통해 제1 컨텍스트(context) 데이터를 획득하고,
적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 상기 통신 인터페이스를 통해 수신하고,
상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하고,
상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
상기 획득된 태스크 정보에 기초하여 상기 구동부를 제어하는 프로세서;를 포함하는 로봇. - 제1항에 있어서,
상기 프로세서는,
상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
상기 컨스턴트 데이터는,
상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함하는, 로봇. - 제1항에 있어서,
상기 프로세서는,
상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고,
상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 로봇. - 제3항에 있어서,
상기 프로세서는,
상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별하는, 로봇. - 제3항에 있어서,
상기 복수의 요소는,
상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함하는, 로봇. - 제1항에 있어서,
상기 기 설정된 태스크 할당 알고리즘은,
상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘인, 로봇. - 제1항에 있어서,
상기 프로세서는,
상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하는, 로봇. - 제1항에 있어서,
상기 프로세서는,
상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 로봇. - 제1항에 있어서,
상기 프로세서는,
상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하도록 상기 통신 인터페이스를 제어하고,
상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하고,
상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하도록 상기 통신 인터페이스를 제어하는, 로봇. - 제1항에 있어서,
상기 프로세서는,
관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 기 설정된 협업 시나리오에 기초하여 태스크 할당 기능을 수행하는, 로봇. - 로봇의 제어 방법에 있어서,
센서를 통해 제1 컨텍스트(context) 데이터를 획득하는 단계;
적어도 하나의 타 로봇에 의해 획득된 제2 컨텍스트 데이터를 수신하는 단계;
상기 로봇 및 상기 타 로봇의 협업 시나리오에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 적어도 하나의 컨텍스트 데이터를 식별하는 단계;
상기 협업과 관련된 기 설정된 태스크 할당 알고리즘에 상기 식별된 적어도 하나의 컨텍스트 데이터를 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계; 및
상기 획득된 태스크 정보에 기초하여 상기 로봇을 구동하는 단계;를 포함하는 제어 방법. - 제11항에 있어서,
상기 태스크 정보를 획득하는 단계는,
상기 식별된 적어도 하나의 컨텍스트 데이터 및 상기 로봇의 컨스턴트(constant) 데이터에 기초하여 상기 로봇에 대응되는 태스크 정보를 획득하고,
상기 컨스턴트 데이터는,
상기 로봇의 식별 정보, 상기 로봇의 스펙 정보, 상기 로봇의 기능 정보, 상기 로봇이 위치한 공간에 대응되는 맵 정보 및 태스크 별 우선 순위 정보 중 적어도 하나를 포함하는, 제어 방법. - 제11항에 있어서,
상기 컨텍스트 데이터를 식별하는 단계는,
상기 로봇 및 상기 타 로봇의 협업 시나리오와 관련된 복수의 요소 별 타입에 기초하여 상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 중 상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 식별하고,
상기 태스크 정보를 획득하는 단계는,
상기 복수의 요소 각각에 대응되는 적어도 하나의 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는, 제어 방법. - 제13항에 있어서,
상기 컨텍스트 데이터를 식별하는 단계는,
상기 제1 컨텍스트 데이터 및 상기 제2 컨텍스트 데이터 각각의 획득 시점, 유사도 여부 또는 긴급 상황 정보 포함 여부 중 적어도 하나에 기초하여 상기 복수의 요소 각각의 타입에 대응되는 컨텍스트 데이터를 식별하는, 제어 방법. - 제13항에 있어서,
상기 복수의 요소는,
상기 외부 오브젝트의 타입 정보, 상기 외부 오브젝트의 위치 정보, 상기 로봇의 위치 정보 또는 긴급 상황 정보 중 적어도 하나를 포함하는, 제어 방법. - 제11항에 있어서,
상기 기 설정된 태스크 할당 알고리즘은,
상기 로봇 및 상기 타 로봇의 현재 태스크 식별, 외부 오브젝트의 상황 식별, 상기 로봇 및 상기 타 로봇의 태스크 별 코스트(cost) 식별 중 적어도 하나를 포함하는 알고리즘인, 제어 방법. - 제11항에 있어서,
상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계; 및
상기 적어도 하나의 컨텍스트 데이터가 식별되면, 상기 식별된 적어도 하나의 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계;를 더 포함하는, 제어 방법. - 제11항에 있어서,
상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 수신된 컨텍스트 데이터 및 상기 식별된 적어도 하나의 컨텍스트 데이터 중 우선 순위가 높은 컨텍스트 데이터를 상기 기 설정된 태스크 할당 알고리즘에 입력하여 상기 로봇에 대응되는 태스크 정보를 획득하는 단계;를 더 포함하는, 제어 방법. - 제11항에 있어서,
상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 전송하는 단계;
상기 적어도 하나의 타 로봇으로부터 상기 협업 시나리오에 기초하여 식별된 컨텍스트 데이터가 수신되면, 상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 반영되었는지 여부를 식별하는 단계; 및
상기 제1 컨텍스트 데이터가 상기 수신된 컨텍스트 데이터에 미 반영된 것으로 식별되면, 상기 제1 컨텍스트 데이터를 상기 적어도 하나의 타 로봇으로 재전송하는 단계;를 더 포함하는, 제어 방법. - 제11항에 있어서,
상기 컨텍스트 데이터를 식별하는 단계는,
관리 서버에서 에러 발생을 나타내는 신호가 수신되면, 상기 적어도 하나의 컨텍스트 데이터를 식별하는, 제어 방법.
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)
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 | 주식회사 케이티 | 로봇 협업 제어 방법 및 시스템 |
-
2021
- 2021-08-26 KR KR1020210113506A patent/KR20230031085A/ko active Search and Examination
-
2022
- 2022-06-21 WO PCT/KR2022/008739 patent/WO2023027310A1/ko active Application Filing
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 |