KR102432361B1 - Interaction robot, robot operating system, and control method for the same - Google Patents

Interaction robot, robot operating system, and control method for the same Download PDF

Info

Publication number
KR102432361B1
KR102432361B1 KR1020220034795A KR20220034795A KR102432361B1 KR 102432361 B1 KR102432361 B1 KR 102432361B1 KR 1020220034795 A KR1020220034795 A KR 1020220034795A KR 20220034795 A KR20220034795 A KR 20220034795A KR 102432361 B1 KR102432361 B1 KR 102432361B1
Authority
KR
South Korea
Prior art keywords
data
remote server
processor
interaction robot
module
Prior art date
Application number
KR1020220034795A
Other languages
Korean (ko)
Other versions
KR102432361B9 (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 KR1020220034795A priority Critical patent/KR102432361B1/en
Application granted granted Critical
Publication of KR102432361B1 publication Critical patent/KR102432361B1/en
Publication of KR102432361B9 publication Critical patent/KR102432361B9/en

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/006Controls for manipulators by means of a wireless system for controlling one or several manipulators
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/003Controls for manipulators by means of an audio-responsive input
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • B25J13/08Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1602Programme controls characterised by the control system, structure, architecture
    • B25J9/161Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • B25J9/1679Programme controls characterised by the tasks executed
    • B25J9/1682Dual arm manipulator; Coordination of several manipulators
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]

Landscapes

  • Engineering & Computer Science (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Automation & Control Theory (AREA)
  • Evolutionary Computation (AREA)
  • Fuzzy Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Manipulator (AREA)

Abstract

Disclosed are an interaction robot, a robot operation system and a control method thereof. In accordance with the present invention, the interaction robot, which can cooperate with a remote server, includes: a communication part able to access the remote server through a communication network, and acquiring network information of the communication network; a storage part including a storage storing at least one of a plurality of functional modules, and a task allocation module; an input/output interface acquiring input data; and a processor acquiring a task allocation table to map at least one of the remote server and the interaction robot with each of the functional modules as an execution subject for a corresponding functional module. The processor, when the task allocation module is executed, based on the input data, selects a functional module required for the processing of the input data from among the plurality of functional modules, and, when both the remote server and the interaction robot are mapped as an execution subject for the selected functional module in the task allocation table, based on at least one of a data amount of the input data and the network information, the processor allocates an execution task of the selected functional module to at least one of the remote server and the interaction robot. Therefore, the present invention is capable of efficiently utilizing an information storage space of the interaction robot.

Description

인터랙션 로봇, 로봇 운영 시스템, 및 그 제어 방법{INTERACTION ROBOT, ROBOT OPERATING SYSTEM, AND CONTROL METHOD FOR THE SAME}INTERACTION ROBOT, ROBOT OPERATING SYSTEM, AND CONTROL METHOD FOR THE SAME

본 발명은 인터랙션 로봇, 로봇 운영 시스템, 및 그 제어 방법에 관한 것으로서, 보다 상세하게는, 인터랙션 서비스에 관련된 처리 작업을 유무선 네트워크를 통해 접속 가능한 원격 서버와 인터랙션 로봇 간에 동적으로 분담하는 기술에 관한 것이다.The present invention relates to an interaction robot, a robot operating system, and a control method thereof, and more particularly, to a technology for dynamically dividing a processing task related to an interaction service between a remote server connectable through a wired/wireless network and an interaction robot .

최근 1인 가구와 노인층이 증가함과 아울러 비대면 서비스가 중요시되면서, 사용자 관점에서의 고도화된 인터랙션 서비스에 대한 니즈(needs)를 로봇을 통해 충족시킬 수 있는 인터랙션 로봇에 대한 수요 또한 증대되고 있다.Recently, as single-person households and the elderly increase and non-face-to-face services become more important, the demand for interactive robots that can satisfy the needs of advanced interaction services from the user's point of view is also increasing.

인터랙션 로봇은 종래 전통적인 휴머노이드형 로봇뿐만 아니라 스피커 형태나 주행체 형태 등으로 그 외관과 용도가 점차 다양화·고도화되고 있다.The interaction robot is not only a conventional humanoid robot, but also a speaker type or a moving body type, and its appearance and use are gradually being diversified and advanced.

이러한 시대적 흐름에 발맞추기 위해서는 인터랙션 로봇에 고성능의 정보 처리 수단과 대용량의 정보 저장 수단을 내장하는 방안을 1차적으로 상정해볼 수 있으나, 이 경우 인터랙션 로봇의 판매·대여 비용이 높아지며, 결과적으로 인터랙션 로봇이 수요자들에게 적절히 보급되는 데에 큰 걸림돌로 적용한다.
(선행기술문헌) 대한민국 공개특허공보 제10-2016-0057647호(공개일자: 2016년 05월 24일)
In order to keep pace with this trend of the times, it is possible to first assume a method of embedding high-performance information processing means and large-capacity information storage means in the interaction robot. It is applied as a major obstacle to being properly distributed to these consumers.
(Prior art document) Republic of Korea Patent Publication No. 10-2016-0057647 (published date: May 24, 2016)

삭제delete

본 발명은 전술된 문제를 해결하기 위해 안출된 것으로서, 인터랙션 로봇에서 인터랙션 서비스를 제공하는 데에 요구되는 여러 작업을 유무선 네트워크를 통해 상호 접속된 원격 서버와 인터랙션 로봇 간에 동적으로 분담하는 인터랙션 로봇, 로봇 운영 시스템, 및 그 제어 방법을 제공하는 것을 목적으로 한다.The present invention has been devised to solve the above-described problem, and the interaction robot dynamically divides various tasks required to provide an interaction service in an interaction robot between a remote server and an interaction robot interconnected through a wired/wireless network. An object of the present invention is to provide an operating system and a method for controlling the same.

본 발명의 다른 목적 및 장점들은 하기의 설명에 의해서 이해될 수 있으며, 본 발명의 실시예에 의해 보다 분명하게 알게 될 것이다. 또한, 본 발명의 목적 및 장점들은 특허청구범위에 나타난 수단 및 그 조합에 의해 실현될 수 있음을 쉽게 알 수 있을 것이다.Other objects and advantages of the present invention may be understood by the following description, and will become more clearly understood by the examples of the present invention. In addition, it will be readily apparent that the objects and advantages of the present invention can be realized by means and combinations thereof indicated in the claims.

본 발명의 일 측면에 따른 원격 서버와의 협업이 가능한 인터랙션 로봇은, 통신 네트워크를 통해 상기 원격 서버에 접속 가능하고, 상기 통신 네트워크의 네트워크 정보를 획득하는 통신부; 복수의 기능 모듈 중 적어도 하나, 및 작업 할당 모듈을 저장하는 스토리지를 포함하는 저장부; 입력 데이터를 획득하는 입출력 인터페이스; 및 각 기능 모듈에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블을 획득하는 프로세서를 포함한다. 상기 프로세서는, 상기 작업 할당 모듈을 실행 시, 상기 입력 데이터를 기초로, 상기 복수의 기능 모듈 중에서 상기 입력 데이터의 처리에 필요한 기능 모듈을 선택하고, 상기 작업 할당 테이블에서 상기 선택된 기능 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 입력 데이터의 데이터량 및 상기 네트워크 정보 중 적어도 하나를 기초로, 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나에게 상기 선택된 기능 모듈의 실행 작업을 할당한다.An interaction robot capable of collaborating with a remote server according to an aspect of the present invention includes: a communication unit capable of accessing the remote server through a communication network, and acquiring network information of the communication network; a storage unit including at least one of the plurality of function modules and a storage for storing the task assignment module; an input/output interface for acquiring input data; and a processor for obtaining a task assignment table for mapping at least one of the remote server and the interaction robot to each function module as an execution subject of the function module. The processor, when executing the task allocation module, selects a function module necessary for processing the input data from among the plurality of function modules based on the input data, and executes the selected function module from the task allocation table When both the remote server and the interaction robot are mapped, the execution task of the selected function module to at least one of the remote server and the interaction robot based on at least one of the data amount of the input data and the network information allocate

상기 프로세서는, 상기 프로세서의 하드웨어 성능 및 상기 복수의 기능 모듈의 모듈 정보를 포함하는 맵핑 요청을 상기 통신부를 통해 상기 원격 서버에게 전송할 수 있다. 상기 작업 할당 테이블은, 상기 맵핑 요청에 대한 응답으로서 상기 원격 서버로부터 전송된 것일 수 있다.The processor may transmit a mapping request including hardware performance of the processor and module information of the plurality of function modules to the remote server through the communication unit. The work assignment table may be transmitted from the remote server in response to the mapping request.

상기 프로세서는, 상기 입력 데이터가 사운드 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 사운드 인식 모듈을 선택할 수 있다. 상기 사운드 인식 모듈의 실행 작업이 상기 원격 서버에게 할당 시, 상기 사운드 데이터가 압축된 사운드 파일을 상기 통신부를 통해 상기 원격 서버에게 전송할 수 있다.When the input data is sound data, the processor may select a sound recognition module that is one of the plurality of function modules. When the execution task of the sound recognition module is assigned to the remote server, a sound file in which the sound data is compressed may be transmitted to the remote server through the communication unit.

상기 저장부는 상기 스토리지보다 고속인 메모리를 더 포함할 수 있다. 상기 프로세서는, 상기 입력 데이터가 텍스트 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 음성 합성 모듈을 선택할 수 있다. 상기 프로세서는, 상기 음성 합성 모듈의 실행 작업이 상기 인터랙션 로봇에게 할당 시, 상기 음성 합성 모듈을 실행하여, 상기 텍스트 데이터의 해시값을 상기 메모리와 상기 스토리지에서 순차 탐색하고, 상기 해시값이 상기 스토리지와 상기 메모리에서 탐색되지 않는 경우, 상기 텍스트 데이터에 대응하는 음성 데이터를 상기 해시값에 맵핑하여 상기 스토리지와 상기 메모리에 캐싱할 수 있다.The storage unit may further include a memory that is faster than the storage. When the input data is text data, the processor may select a speech synthesis module that is one of the plurality of function modules. When the execution task of the speech synthesis module is assigned to the interaction robot, the processor executes the speech synthesis module to sequentially search for a hash value of the text data in the memory and the storage, and the hash value is stored in the storage. and when it is not searched in the memory, voice data corresponding to the text data may be mapped to the hash value and cached in the storage and the memory.

상기 프로세서는, 소정의 리프레시 조건을 이용하여, 상기 메모리의 데이터 섹션별로 저장된 캐시 데이터를 리프레시할 수 있다.The processor may refresh cache data stored for each data section of the memory by using a predetermined refresh condition.

상기 프로세서는, 상기 입력 데이터가 비전 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 객체 인식 모듈을 선택할 수 있다. 상기 프로세서는, 상기 작업 할당 테이블에서 상기 객체 인식 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 비전 데이터의 데이터량 및 상기 네트워크 정보를 기초로, 상기 비전 데이터를 제1 서브 비전 데이터 및 제2 서브 비전 데이터로 분할하고, 상기 제1 서브 비전 데이터에 대한 상기 비전 처리 모듈의 실행 작업을 상기 원격 서버에게 할당하고, 상기 제2 서브 비전 데이터에 대한 상기 비전 처리 모듈의 실행 작업을 상기 인터랙션 로봇에게 할당할 수 있다.When the input data is vision data, the processor may select an object recognition module that is one of the plurality of function modules. The processor is configured to generate the vision data based on the data amount of the vision data and the network information when both the remote server and the interaction robot are mapped as the execution subjects of the object recognition module in the task assignment table. division into first sub-vision data and second sub-vision data, allocating an execution task of the vision processing module for the first sub-vision data to the remote server; An execution task may be assigned to the interaction robot.

상기 프로세서는, 상기 비전 데이터의 데이터량, 및 상기 네트워크 정보에 포함된 상기 원격 서버와 상기 인터랙션 로봇 간의 통신 속도를 기초로, 상기 제1 서브 비전 데이터의 데이터량과 상기 제2 서브 비전 데이터의 데이터량을 결정할 수 있다.The processor is configured to: based on the data amount of the vision data and the communication speed between the remote server and the interaction robot included in the network information, the data amount of the first sub-vision data and the data of the second sub-vision data quantity can be determined.

상기 프로세서는, 빅 코어, 및 상기 빅 코어보다 저성능인 리틀 코어 중 어느 하나를 포함하는 싱글 코어 프로세서 또는 상기 빅 코어 및 상기 리틀 코어를 둘 다 포함하는 멀티 코어 프로세서이다. 상기 프로세서는, 상기 작업 할당 테이블에서 상기 인터랙션 로봇만이 상기 선택된 기능 모듈의 실행 주체로서 매핑되어 있는 경우, 상기 작업 할당 테이블에서 상기 인터랙션 로봇만이 상기 선택된 기능 모듈의 실행 주체로서 매핑되어 있는 경우, 상기 빅 코어 및 상기 리틀 코어 중 적어도 하나는 상기 선택된 기능 모듈을 실행하여 상기 입력 데이터를 처리할 수 있다.The processor is a single-core processor including any one of a big core and a little core having lower performance than the big core, or a multi-core processor including both the big core and the little core. The processor is configured to: When only the interaction robot is mapped as an execution subject of the selected function module in the task assignment table, when only the interaction robot is mapped as an execution entity of the selected function module in the task assignment table, At least one of the big core and the little core may process the input data by executing the selected function module.

본 발명의 다른 측면에 따른 로봇 운영 시스템은, 상기 인터랙션 로봇 및 상기 원격 서버를 포함한다.The robot operating system according to another aspect of the present invention includes the interaction robot and the remote server.

본 발명의 또 다른 측면에 따른 인터랙션 로봇의 제어 방법은, 상기 복수의 기능 모듈 각각에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블을 획득하는 단계; 상기 입력 데이터를 획득하는 단계; 상기 입력 데이터를 기초로, 상기 복수의 기능 모듈 중에서 상기 입력 데이터의 처리에 필요한 기능 모듈을 선택하는 단계; 및 상기 작업 할당 테이블에서 상기 선택된 기능 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 입력 데이터의 데이터량 및 상기 네트워크 정보 중 적어도 하나를 기초로, 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나에게 상기 선택된 기능 모듈의 실행 작업을 할당하는 단계를 포함한다.According to another aspect of the present invention, there is provided a method for controlling an interaction robot, comprising: obtaining a task assignment table for mapping at least one of the remote server and the interaction robot to each of the plurality of function modules as an execution subject of the function module; obtaining the input data; selecting a function module necessary for processing the input data from among the plurality of function modules based on the input data; and when both the remote server and the interaction robot are mapped as execution subjects of the selected function module in the task assignment table, based on at least one of the data amount of the input data and the network information, the remote server and the and assigning an execution task of the selected function module to at least one of the interaction robots.

본 발명의 또 다른 측면에 따른 컴퓨터 프로그램은, 인터랙션 로봇의 제어 방법을 실행시킨다.A computer program according to another aspect of the present invention executes a control method of an interaction robot.

본 발명의 실시예들 중 적어도 하나에 의하면, 유무선 네트워크를 통해 상호 접속된 원격 서버와 인터랙션 로봇에게 인터랙션 서비스를 제공하는 데에 요구되는 여러 기능 모듈들 각각의 실행 작업을 동적으로 배분할 수 있다. 이에 따르면, 인터랙션 서비스에 관련된 기능 모듈들 중 일부만이 인터랙션 로봇에 설치되더라도 인터랙션 로봇에 미설치된 나머지 기능 모듈들의 실행은 원격 서버에서 담당하므로, 인터랙션 로봇의 정보 저장 공간을 효율적으로 활용할 수 있다.According to at least one of the embodiments of the present invention, it is possible to dynamically allocate the execution task of each of several functional modules required to provide an interaction service to a remote server and an interaction robot interconnected through a wired/wireless network. According to this, even if only some of the function modules related to the interaction service are installed in the interaction robot, the remote server is responsible for the execution of the remaining function modules not installed in the interaction robot, so that the information storage space of the interaction robot can be efficiently utilized.

또한, 본 발명의 실시예들 중 적어도 하나에 의하면, 입력 데이터를 처리하기 위한 특정 기능 모듈의 실행 작업을 원격 서버와 인터랙션 로봇에 배분함에 있어서, 원격 서버 및 인터랙션 로봇 각각에 할당되는 작업량(work load)을 인터랙션 로봇의 하드웨어 성능(사양), 입력 데이터의 데이터량, 통신 네트워크의 네트워크 성능 등에 맞춰 적응적으로 조절할 수 있다. 이에 따르면, 인터랙션 로봇의 하드웨어 성능의 부족분이 원격 서버의 뛰어난 하드웨어 성능에 의해 보충될 수 있다.In addition, according to at least one of the embodiments of the present invention, in allocating the execution task of a specific function module for processing input data to the remote server and the interaction robot, the work load allocated to each of the remote server and the interaction robot ) can be adaptively adjusted according to the hardware performance (specification) of the interaction robot, the data amount of input data, and the network performance of the communication network. According to this, the lack of hardware performance of the interaction robot can be compensated by the excellent hardware performance of the remote server.

또한, 본 발명의 실시예들 중 적어도 하나에 의하면, 통신 네트워크의 상태에 맞춰 원격 서버 및 인터랙션 로봇 간의 데이터 업로드/다운로드 방식을 가변할 수 있다.In addition, according to at least one of the embodiments of the present invention, it is possible to vary the data upload/download method between the remote server and the interaction robot according to the state of the communication network.

본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 청구범위의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to the above-mentioned effects, and other effects not mentioned will be clearly understood by those skilled in the art from the description of the claims.

본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술되는 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되어서는 아니 된다.
도 1은 본 발명의 일 실시예에 따른 로봇 운영 시스템의 구성을 예시적으로 나타낸 도면이다.
도 2는 도 1의 인터랙션 로봇의 상세 구성을 예시적으로 나타낸 도면이다.
도 3은 도 1의 인터랙션 로봇에서 기능 모듈별 실행 주체를 선택하는 데에 이용되는 예시적인 작업 할당 테이블을 설명하는 데에 참조되는 도면이다.
도 4은 본 발명의 일 실시예에 따른 인터랙션 로봇의 제어 방법을 예시적으로 설명하기 위한 순서도이다.
도 5는 본 발명의 제2 실시예에 따른 인터랙션 로봇의 제어 방법을 예시적으로 설명하기 위한 순서도이다.
도 6는 본 발명의 제3 실시예에 따른 인터랙션 로봇의 제어 방법을 예시적으로 설명하기 위한 순서도이다.
도 7는 본 발명의 제4 실시예에 따른 인터랙션 로봇의 제어 방법을 예시적으로 설명하기 위한 순서도이다.
The following drawings attached to this specification illustrate preferred embodiments of the present invention, and serve to further understand the technical spirit of the present invention together with the detailed description of the present invention to be described later, so that the present invention is described in such drawings should not be construed as being limited only to
1 is a diagram exemplarily showing the configuration of a robot operating system according to an embodiment of the present invention.
FIG. 2 is a diagram illustrating a detailed configuration of the interaction robot of FIG. 1 by way of example.
FIG. 3 is a diagram referenced to explain an exemplary task assignment table used to select an execution subject for each function module in the interaction robot of FIG. 1 .
4 is a flowchart for exemplarily explaining a method of controlling an interaction robot according to an embodiment of the present invention.
5 is a flowchart for exemplarily explaining a control method of an interaction robot according to a second embodiment of the present invention.
6 is a flowchart for exemplarily explaining a control method of an interaction robot according to a third embodiment of the present invention.
7 is a flowchart for exemplarily explaining a control method of an interaction robot according to a fourth embodiment of the present invention.

본 발명의 목적과 기술적 구성 및 그에 따른 작용 효과에 관한 자세한 사항은 본 발명의 명세서에 첨부된 도면에 의거한 이하의 상세한 설명에 의해 보다 명확하게 이해될 것이다. 첨부된 도면을 참조하여 본 발명에 따른 실시예를 상세하게 설명한다.The purpose and technical configuration of the present invention, and details regarding the operational effects thereof will be more clearly understood by the following detailed description based on the accompanying drawings in the specification of the present invention. An embodiment according to the present invention will be described in detail with reference to the accompanying drawings.

본 명세서에서 개시되는 실시예들은 본 발명의 범위를 한정하는 것으로 해석되거나 이용되지 않아야 할 것이다. 이 분야의 통상의 기술자에게 본 명세서의 실시예를 포함한 설명은 다양한 응용을 갖는다는 것이 당연하다. 따라서, 본 발명의 상세한 설명에 기재된 임의의 실시예들은 본 발명을 보다 잘 설명하기 위한 예시적인 것이며 본 발명의 범위가 실시예들로 한정되는 것을 의도하지 않는다.The embodiments disclosed herein should not be construed or used as limiting the scope of the present invention. It is natural for those skilled in the art that the description including the embodiments of the present specification will have various applications. Accordingly, any embodiments described in the detailed description of the present invention are illustrative for better describing the present invention and are not intended to limit the scope of the present invention to the embodiments.

도면에 표시되고 아래에 설명되는 기능 블록들은 가능한 구현의 예들일 뿐이다. 다른 구현들에서는 상세한 설명의 사상 및 범위를 벗어나지 않는 범위에서 다른 기능 블록들이 사용될 수 있다. 또한, 본 발명의 하나 이상의 기능 블록이 개별 블록들로 표시되지만, 본 발명의 기능 블록들 중 하나 이상은 동일 기능을 실행하는 다양한 하드웨어 및 소프트웨어 구성들의 조합일 수 있다.The functional blocks shown in the drawings and described below are merely examples of possible implementations. Other functional blocks may be used in other implementations without departing from the spirit and scope of the detailed description. Further, although one or more functional blocks of the present invention are represented as separate blocks, one or more of the functional blocks of the present invention may be combinations of various hardware and software configurations that perform the same function.

제1, 제2 등과 같이 서수를 포함하는 용어들은, 다양한 구성요소들 중 어느 하나를 나머지와 구별하는 목적으로 사용되는 것이고, 그러한 용어들에 의해 구성요소들을 한정하기 위해 사용되는 것은 아니다.Terms including an ordinal number such as 1st, 2nd, etc. are used for the purpose of distinguishing any one of various components from the others, and are not used to limit the components by such terms.

또한, 어떤 구성요소들을 포함한다는 표현은 "개방형"의 표현으로서 해당 구성요소들이 존재하는 것을 단순히 지칭할 뿐이며, 추가적인 구성요소들을 배제하는 것으로 이해되어서는 안 된다.In addition, the expression that includes certain components is an expression of "open type" and merely refers to the existence of the corresponding components, and should not be construed as excluding additional components.

나아가 어떤 구성요소가 다른 구성요소에 "연결되어" 있다거나 "접속되어" 있다고 언급될 때에는, 그 다른 구성요소에 직접적으로 연결 또는 접속되어 있을 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 한다.Furthermore, when it is said that a component is "connected" or "connected" to another component, it may be directly connected or connected to the other component, but it should be understood that other components may exist in between. do.

도 1은 본 발명의 일 실시예에 따른 로봇 운영 시스템(10)의 구성을 예시적으로 나타낸 도면이고, 도 2는 도 1의 인터랙션 로봇(100)의 상세 구성을 예시적으로 나타낸 도면이다.1 is a diagram exemplarily showing the configuration of a robot operating system 10 according to an embodiment of the present invention, and FIG. 2 is a diagram exemplarily showing a detailed configuration of the interaction robot 100 of FIG. 1 .

도 1 및 도 2를 참조하면, 로봇 운영 시스템(10)은 적어도 하나의 인터랙션 로봇(100) 및 원격 서버(200)를 포함하며, 각 인터랙션 로봇(100)은 원격 서버(200)와의 협업을 통해 인터랙션 로봇(100)의 사용자에게 다양한 인터랙션 서비스를 제공한다.1 and 2 , the robot operating system 10 includes at least one interaction robot 100 and a remote server 200 , and each interaction robot 100 is a remote server 200 through collaboration with Various interaction services are provided to users of the interaction robot 100 .

인터랙션 로봇(100)은, 통신부(110), 저장부(120), 입출력 인터페이스(130) 및 프로세서(170)를 포함한다. 인터랙션 로봇(100)은, 입력부(140), 출력부(150) 및 배터리(160)를 더 포함할 수 있다.The interaction robot 100 includes a communication unit 110 , a storage unit 120 , an input/output interface 130 , and a processor 170 . The interaction robot 100 may further include an input unit 140 , an output unit 150 , and a battery 160 .

통신부(110)는, 유무선 통신 네트워크를 통해 인터랙션 로봇(100)으로부터 원격지에 위치하는 원격 서버(200)에 접속하여, 인터랙션 서비스에 관련된 데이터를 원격 서버(200)와의 사이에서 송수신하도록 구성된다. 유선 통신은 예컨대 캔(CAN: controller area network) 통신일 수 있고, 무선 통신은 예컨대 지그비나 블루투스 통신일 수 있다. 물론, 인터랙션 로봇(100) 및 원격 서버(200) 간의 유무선 통신을 지원하는 것이라면, 통신 프토토콜의 종류는 특별히 한정되는 것은 아니다. 통신부(110)는, 원격 서버(200)와의 통신 중, 통신 네트워크의 네트워크 상태(예, 통신 속도, 수신신호강도, 네트워크 대역폭)를 계측(획득)하고, 계측된 통신 상태에 대한 정보를 입출력 인터페이스(130)를 통해 프로세서(170)에 제공할 수 있다.The communication unit 110 is configured to connect to a remote server 200 located at a remote location from the interaction robot 100 through a wired/wireless communication network, and transmit/receive data related to an interaction service to/from the remote server 200 . Wired communication may be, for example, CAN (controller area network) communication, and wireless communication may be, for example, ZigBee or Bluetooth communication. Of course, as long as wired/wireless communication between the interaction robot 100 and the remote server 200 is supported, the type of communication protocol is not particularly limited. The communication unit 110 measures (obtains) the network state (eg, communication speed, received signal strength, network bandwidth) of the communication network during communication with the remote server 200, and transmits information about the measured communication state to the input/output interface It may be provided to the processor 170 through 130 .

저장부(120)는, 스토리지(121)를 포함한다. 스토리지(121)는, 하드웨어적으로 예컨대 플래시 메모리 타입(flash memory type), 하드디스크 타입(hard disk type), SSD 타입(Solid State Disk type), SDD 타입(Silicon Disk Drive type) 중 적어도 하나 또는 둘 이상의 조합일 수 있다. 스토리지(121)에는 작업 할당 모듈이 저장(기록, 설치)되어 있다. 작업 할당 모듈은 프로세서(170)에 의해 실행 가능한 소프트웨어(애플리케이션)으로서, 입출력 인터페이스(130)를 통해 수신되는 입력 데이터의 데이터 유형 등에 따라, 복수의 기능 모듈 중에서 입력 데이터의 처리를 위해 필요한 적어도 하나의 기능 모듈을 선택하고, 선택된 각각의 기능 모듈의 실행 작업을 원격 서버(200) 및 인터랙션 로봇(100) 중 하나 또는 둘 다에 할당한다. 스토리지(121)에는 복수의 기능 모듈 중 적어도 하나가 저장될 수 있다. 복수의 기능 모듈 각각은 당해 기능 모듈에 연관된 입력 데이터를 처리하여 인터랙션 서비스에 연관된 출력 데이터를 생성하는 데에 이용되는 소프트웨어(애플리케이션)이다. The storage unit 120 includes a storage 121 . The storage 121 is hardware-wise, for example, at least one or two of a flash memory type, a hard disk type, a solid state disk type, and an SDD type (Silicon Disk Drive type). It may be a combination of the above. The storage 121 stores (recorded, installed) the task assignment module. The task assignment module is software (application) executable by the processor 170 , and according to the data type of input data received through the input/output interface 130 , at least one required for processing the input data among the plurality of function modules. A function module is selected, and an execution task of each selected function module is assigned to one or both of the remote server 200 and the interaction robot 100 . At least one of a plurality of function modules may be stored in the storage 121 . Each of the plurality of function modules is software (application) used to process input data related to the function module to generate output data related to the interaction service.

저장부(120)는, 스토리지(121)보다 고속의 메모리(122)를 더 포함할 수 있다. 메모리(122)는, 하드웨어적으로 예컨대 램(random access memory; RAM), SRAM(static random access memory), 롬(read-only memory; ROM), EEPROM(electrically erasable programmable read-only memory), PROM(programmable read-only memory), L1 캐시, L2 캐시 중 적어도 하나 또는 둘 이상의 조합일 수 있다. 메모리(122)는, 스토리지(121)와 프로세서(170) 사이 또는 프로세서(170) 내부에 배치되어, 프로세서(170)의 빠른 데이터 엑세스를 지원한다. 일 예로, 스토리지(121)는 보조기억장치로서, 메모리(122)는 주기억장치로서 각각 제공될 수 있다.The storage unit 120 may further include a high-speed memory 122 than the storage 121 . The memory 122 may include, in hardware, for example, random access memory (RAM), static random access memory (SRAM), read-only memory (ROM), electrically erasable programmable read-only memory (EEPROM), and PROM (PROM). It may be at least one or a combination of two or more of programmable read-only memory), an L1 cache, and an L2 cache. The memory 122 is disposed between the storage 121 and the processor 170 or inside the processor 170 to support fast data access of the processor 170 . For example, the storage 121 may be provided as an auxiliary memory device, and the memory 122 may be provided as a main memory device, respectively.

입출력 인터페이스(130)는, 입력부(140)에 결합되어, 입력부(140)로부터 입력 데이터를 획득하고, 획득된 입력 데이터는 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나에게 제공한다. 또한, 입출력 인터페이스(130)는, 출력부(150)에 결합되어, 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나로부터 획득된 출력 데이터를 출력부(150)에게 제공한다. 또한, 입출력 인터페이스(130)는, 배터리(160)로부터 인터랙션 로봇(100)의 타 구성들로의 전력 전달 경로를 제공할 수 있다.The input/output interface 130 is coupled to the input unit 140 to obtain input data from the input unit 140 , and the obtained input data is transmitted to at least one of the communication unit 110 , the storage unit 120 , and the processor 170 . to provide. In addition, the input/output interface 130 is coupled to the output unit 150 , and provides output data obtained from at least one of the communication unit 110 , the storage unit 120 , and the processor 170 to the output unit 150 . . In addition, the input/output interface 130 may provide a power transmission path from the battery 160 to other components of the interaction robot 100 .

입력부(140)는, 사용자나 주변 환경에 의해 발생되거나 인터랙션 로봇(100) 자체적인 상태에 따라 발생되는 입력 신호를 모니터링하고, 모니터링된 입력 신호를 입출력 인터페이스(130)에서 인식 가능한 입력 데이터로 변환하도록 구성된다. 입력 신호는, 소리, 영상, 터치, 텍스트, 로봇 움직임 등 하드웨어적으로 인식 가능한 유형이라면 특별히 제한되지 않는다.The input unit 140 monitors an input signal generated by the user or the surrounding environment or generated according to the state of the interaction robot 100 itself, and converts the monitored input signal into input data recognizable by the input/output interface 130 . is composed The input signal is not particularly limited as long as it is a hardware-recognizable type such as sound, image, touch, text, and robot movement.

입력부(140)는, 마이크, 카메라, 적외선 센서, 초음파 센서, 레이저 센서, 레이더, 라이다, 공기질 센서, 터치 센서, 물리 버튼, 위치 센서, 모션 센서, 및 배터리 게이지 중 적어도 하나를 포함할 수 있다. 마이크는, 소리 신호를 처리하여 소리 데이터를 생성하고, 소리 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 카메라, 적외선 센서, 초음파 센서, 레이저 센서, 레이더 및 라이다 각각은 영상 신호를 처리하여 비전 데이터를 생성하고, 비전 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 터치 센서는, 인터랙션 로봇(100)에 대한 사용자의 터치 액션을 처리하여 터치 데이터를 생성하고, 터치 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 물리 버튼은, 물리 버튼에 대한 사용자의 조작에 따른 명령 데이터를 생성하고, 명령 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 위치 센서는, 위치 신호를 처리하여 위치 데이터를 생성하고, 위치 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 모션 센서는, 인터랙션 로봇(100)의 자세에 따른 모션 신호를 처리하여 모션 데이터를 생성하고, 모션 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 배터리 게이지는, 인터랙션 로봇(100)에 내장된 배터리(160)의 상태를 계측하고, 계측된 배터리 상태를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다.The input unit 140 may include at least one of a microphone, a camera, an infrared sensor, an ultrasonic sensor, a laser sensor, a radar, a lidar, an air quality sensor, a touch sensor, a physical button, a position sensor, a motion sensor, and a battery gauge. . The microphone may process a sound signal to generate sound data, and provide the sound data to the input/output interface 130 as input data. Each of the camera, infrared sensor, ultrasonic sensor, laser sensor, radar, and lidar may process an image signal to generate vision data, and may provide the vision data to the input/output interface 130 as input data. The touch sensor may generate touch data by processing a user's touch action on the interaction robot 100 , and provide the touch data to the input/output interface 130 as input data. The physical button may generate command data according to a user's manipulation of the physical button and provide the command data as input data to the input/output interface 130 . The position sensor may process the position signal to generate position data, and provide the position data to the input/output interface 130 as input data. The motion sensor may generate motion data by processing a motion signal according to the posture of the interaction robot 100 , and may provide the motion data to the input/output interface 130 as input data. The battery gauge may measure the state of the battery 160 built in the interaction robot 100 and provide the measured battery state to the input/output interface 130 as input data.

출력부(150)는, 입출력 인터페이스(130)를 통해 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나로부터 제공된 출력 데이터를 기초로, 소정의 동작을 수행하도록 제공한다. 출력 데이터는, 입력 데이터가 복수의 기능 모듈 중 적어도 하나에 의해 처리된 결과일 수 있다. 일 예로, 사용자에 의해 발하된 음성 신호는 입력부(140)의 마이크를 통해 음성 타입의 입력 데이터로 변환되고, 사운드 인식 모듈은 입력 데이터로부터 사용자의 상태나 인터랙션 로봇(100)에 대한 이동 명령을 추출하여 출력 데이터를 생성한 다음, 출력 데이터를 주행 기구에 전달할 수 있다. 그러면, 주행 기구는, 출력 데이터에 보유된 이동 명령에 따라 인터랙션 로봇(100)이 사용자에 근접하게 위치하도록 구동될 수 있다.The output unit 150 provides to perform a predetermined operation based on output data provided from at least one of the communication unit 110 , the storage unit 120 , and the processor 170 through the input/output interface 130 . The output data may be a result of processing the input data by at least one of the plurality of function modules. As an example, the voice signal issued by the user is converted into voice type input data through the microphone of the input unit 140 , and the sound recognition module extracts the user's state or a movement command for the interaction robot 100 from the input data to generate output data, and then transmit the output data to the driving mechanism. Then, the traveling mechanism may be driven so that the interaction robot 100 is positioned close to the user according to the movement command held in the output data.

출력부(150)는, 스피커, 광원, 디스플레이 및 주행 기구 중 적어도 하나를 포함한다. 스피커는, 출력 데이터가 사운드 데이터인 경우, 사운드 데이터를 소리 신호로 변환하여 출력한다. 광원은, 출력 데이터가 광 제어 데이터인 경우, 광 제어 데이터에 의해 명령된 광량, 색상 및/또는 점멸 주기 갖는 광 신호를 출력한다. 디스플레이는, 출력 데이터가 텍스트 데이터 또는 영상 데이터인 경우, 시각적 신호로 변환하여 패널 상에 출력한다. 주행 기구는, 출력 데이터가 인터랙션 로봇(100)에 대한 자세 제어 데이터인 경우, 자세 제어 데이터에 맞춰 인터랙션 로봇(100)의 위치, 속도, 방향 등을 제어한다.The output unit 150 includes at least one of a speaker, a light source, a display, and a driving mechanism. When the output data is sound data, the speaker converts the sound data into a sound signal and outputs it. When the output data is light control data, the light source outputs an optical signal having a light quantity, color, and/or blinking period commanded by the light control data. When the output data is text data or image data, the display converts it into a visual signal and outputs it on the panel. When the output data is posture control data for the interaction robot 100 , the traveling mechanism controls the position, speed, direction, etc. of the interaction robot 100 according to the posture control data.

프로세서(170)는, 적어도 하나의 코어를 포함하고, 각각의 코어는 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 마이크로 프로세서(170)(microprocessors), 기타 기능 수행을 위한 전기적 유닛 중 적어도 하나를 포함하도록 구현될 수 있다. 프로세서(170)는 코어별로 2 이상의 스레드(thread)를 포함할 수 있다. 프로세서(170)가 빅 코어(171) 및 리틀 코어(172) 중 하나만을 포함하는 싱글 코어 프로세서인 경우, 후술된 프로세서(170)의 동작은, 싱글 코어 단독으로 수행되는 것이다. 프로세서(170)가 빅 코어(171) 및 리틀 코어(172)를 포함하는 멀티 코어 프로세서인 경우, 후술된 프로세서(170)의 동작은, 빅 코어(171) 및 리틀 코어(172) 중 어느 하나 또는 둘의 협업에 의해 수행되는 것이다. The processor 170 includes at least one core, and each core is ASICs (application specific integrated circuits), DSPs (digital signal processors), DSPDs (digital signal processing devices), PLDs (programmable logic devices), FPGAs ( Field programmable gate arrays), the microprocessor 170 (microprocessors), and may be implemented to include at least one of an electrical unit for performing other functions. The processor 170 may include two or more threads for each core. When the processor 170 is a single-core processor including only one of the big core 171 and the little core 172 , the operation of the processor 170 to be described below is performed by the single core alone. When the processor 170 is a multi-core processor including a big core 171 and a little core 172 , the operation of the processor 170 described below may be any one of the big core 171 and the little core 172 or This is done by the collaboration of the two.

프로세서(170)는, 입출력 인터페이스(130)를 통해 입력 데이터가 획득되는 경우, 복수의 기능 모듈 중에서 입력 데이터에 연관된 적어도 하나의 기능 모듈을 실행 대상으로서 선택한다. When input data is obtained through the input/output interface 130 , the processor 170 selects at least one function module related to the input data from among a plurality of function modules as an execution target.

도 3을 참조하면, 스토리지(121)에는 작업 할당 테이블(도 3 참조)이 저장되어 있을 수 있다. 작업 할당 테이블은, 인터랙션 로봇(100) 및 원격 서버(200) 중 적어도 하나를 복수의 기능 모듈 각각의 실행 주체로서 지정(맵핑)하는 테이블이다.Referring to FIG. 3 , a work allocation table (see FIG. 3 ) may be stored in the storage 121 . The task assignment table is a table for designating (mapping) at least one of the interaction robot 100 and the remote server 200 as an execution subject of each of the plurality of function modules.

작업 할당 테이블은 제1 내지 제n 기능 모듈(#1~#n, n은 2 이상의 자연수)에 대한 실행 주체를 지정(정의)하고 있다. n, i 및 j는 각각 i < i < n을 만족하는 자연수라고 할 때, 제1 내지 제i 기능 모듈의 실행 주체로는 인터랙션 로봇(100)만이 지정되어 있고, 제i+1 내지 제j 기능 모듈의 실행 주체로는 인터랙션 로봇(100) 및 원격 서버(200) 둘 다 지정되어 있으며, 제j+1 내지 제n 기능 모듈의 실행 주체로는 원격 서버(200)만이 지정되어 있다. 참고로, 제j+1 내지 제n 기능 모듈은 원격 서버(200)에서만 실행되도록 지정되어 있으므로, 스토리지(121)에는 제j+1 내지 제n 기능 모듈이 설치되어 있을 필요가 없으며, 만약 설치되어 있더라도 프로세서(170)에 의해 제거될 수 있다.The task allocation table designates (defines) execution subjects for the first to nth function modules (#1 to #n, where n is a natural number equal to or greater than 2). When n, i, and j are natural numbers satisfying i < i < n, respectively, only the interaction robot 100 is designated as an execution subject of the first to i-th function modules, and the i+1 to j-th functions Both the interaction robot 100 and the remote server 200 are designated as execution subjects of the module, and only the remote server 200 is designated as execution subjects of the j+1th to nth function modules. For reference, since the j+1th to nth function modules are designated to be executed only on the remote server 200 , there is no need for the j+1th to nth function modules to be installed in the storage 121 , and if installed Even if there is, it may be removed by the processor 170 .

일 예로, 어떤 입력 데이터에 연관된 것으로 제i 기능 모듈이 선택되는 경우, 프로세서(170)는 작업 할당 테이블을 참조하여 제i 기능 모듈의 실행 주체로서 인터랙션 로봇(100)만을 선택한다. 다른 예로, 어떤 입력 데이터에 연관된 것으로 제j 기능 모듈이 선택되는 경우, 프로세서(170)는 작업 할당 테이블을 참조하여 제j 기능 모듈의 실행 주체로서 인터랙션 로봇(100) 및 원격 서버(200) 중 적어도 하나 또는 둘 다를 선택한다. 또 다른 예로, 어떤 입력 데이터에 연관된 것으로 제n 기능 모듈이 선택되는 경우, 프로세서(170)는 작업 할당 테이블을 참조하여 제n 기능 모듈의 실행 주체로서 원격 서버(200)만을 선택한다.For example, when the ith function module is selected as being related to some input data, the processor 170 selects only the interaction robot 100 as an execution subject of the ith function module with reference to the task assignment table. As another example, when the j-th function module is selected as being related to some input data, the processor 170 refers to the task assignment table to perform at least one of the interaction robot 100 and the remote server 200 as the execution subject of the j-th function module. Choose one or both. As another example, when the n-th function module is selected as related to some input data, the processor 170 selects only the remote server 200 as an execution subject of the n-th function module by referring to the task allocation table.

제1 내지 제i 기능 모듈은, 스토리지(121)에 설치되어 프로세서(170)에 의해 실행 가능하며, 제i+1 내지 제j 기능 모듈보다 낮은 하드웨어 사양이 요구되는 모듈일 수 있다. 제i+1 내지 제k 기능 모듈은, 스토리지(121)에 설치되어 프로세서(170)에 의해 실행 가능하며, 제j+1 내지 제n 기능 모듈보다 낮은 하드웨어 사양이 요구되는 모듈일 수 있다. 제j+1 내지 제n 기능 모듈은, 프로세서(170)의 하드웨어 사양보다 높은 하드웨어 사양이 요구되는 모듈일 수 있다.The first to i-th function modules may be installed in the storage 121 and executed by the processor 170 , and may be modules requiring lower hardware specifications than the i+1 to j-th function modules. The i+1th to kth function modules may be installed in the storage 121 and executable by the processor 170 , and may be modules requiring lower hardware specifications than the j+1th to nth function modules. The j+1th to nth function modules may be modules requiring a hardware specification higher than that of the processor 170 .

프로세서(170)는, 작업 할당 테이블을 통해 선택된 실행 주체에게, 실행 대상으로 선택된 기능 모듈에 대한 기능 실행 작업을 할당(부여)한다. 기능 실행 작업은, 입력 데이터 및 기능 모듈의 식별 코드를 포함할 수 있다.The processor 170 allocates (grants) a function execution task for a function module selected as an execution target to an execution subject selected through the task allocation table. The function execution task may include input data and an identification code of the function module.

프로세서(170)에 의해 어떤 기능 실행 작업이 인터랙션 로봇(100)에 할당된다는 것은, 프로세서(170)가 직접 해당 기능 모듈을 실행함을 의미한다. 프로세서(170)에 의해 어떤 기능 실행 작업이 원격 서버(200)에 할당된다는 것은, 프로세서(170)가 기능 실행 작업을 원격 서버(200)에게 전달하도록 통신부(110)를 제어함을 의미한다.The fact that a certain function execution task is assigned to the interaction robot 100 by the processor 170 means that the processor 170 directly executes the corresponding function module. That a certain function execution task is assigned to the remote server 200 by the processor 170 means that the processor 170 controls the communication unit 110 to deliver the function execution task to the remote server 200 .

프로세서(170)는, 스토리지(121)에 설치된 적어도 하나의 기능 모듈이 손상되는 경우, 손상된 기능 모듈의 메타 데이터를 이용하여 원격 서버(200)로부터 해당 기능 모듈의 전부 또는 손상된 부분에 대한 데이터를 다운로드함으로써, 기술 모듈의 손상을 복구할 수 있다.When at least one function module installed in the storage 121 is damaged, the processor 170 downloads data on all or damaged parts of the corresponding function module from the remote server 200 using metadata of the damaged function module. By doing so, damage to the technology module can be repaired.

원격 서버(200)는, 통신부(210), 저장부(220) 및 프로세서(230)를 포함한다.The remote server 200 includes a communication unit 210 , a storage unit 220 , and a processor 230 .

통신부(210)는, 유무선 통신 네트워크를 통해 인터랙션 로봇(100)과의 사이에서 인터랙션 서비스에 관련된 데이터를 송수신하도록 구성된다. 통신부(210)는, 통신부(110)와는 별개로 통신 네트워크의 네트워크 상태를 계측하고, 계측된 네트워크 정보를 인터랙션 로봇(100)에게 전달할 수 있다.The communication unit 210 is configured to transmit/receive data related to an interaction service with the interaction robot 100 through a wired/wireless communication network. The communication unit 210 may measure the network state of the communication network separately from the communication unit 110 , and transmit the measured network information to the interaction robot 100 .

저장부(220)는, 인터랙션 로봇(100)의 스토리지(121)보다 대용량의 스토리지(221)를 포함하고, 스토리지(221)에는 복수의 기능 모듈이 전부 저장되어 있다. 저장부(220)는, 인터랙션 로봇(100)의 메모리(122)보다 고속의 메모리(222)를 더 포함할 수 있다. 원격 서버(200)의 스토리지(221) 및 메모리(222)의 하드웨어적 구성에 대한 설명은 인터랙션 로봇(100)의 스토리지(121) 및 메모리(122)와 공통되는 바 반복 설명은 생략하기로 한다.The storage unit 220 includes a storage 221 having a larger capacity than the storage 121 of the interaction robot 100 , and all of the plurality of function modules are stored in the storage 221 . The storage unit 220 may further include a high-speed memory 222 than the memory 122 of the interaction robot 100 . The description of the hardware configuration of the storage 221 and the memory 222 of the remote server 200 is common to the storage 121 and the memory 122 of the interaction robot 100, and repeated description will be omitted.

프로세서(230)는, 인터랙션 로봇(100)의 프로세서(170)에 비하여 고성능 프로세서이다. 프로세서(230)의 하드웨어적 구성에 대한 설명은 인터랙션 로봇(100)의 프로세서(170)와 공통되므로 반복 설명은 생략하기로 한다. 프로세서(230)는, 인터랙션 로봇(100)에 의해 할당된 실행 작업에 따라, 스토리지(221)에 저장된 적어도 하나의 기능 모듈을 실행하고, 실행 결과를 통신부(210)를 통해 인터랙션 로봇(100)에 통지할 수 있다.The processor 230 is a high-performance processor compared to the processor 170 of the interaction robot 100 . Since the description of the hardware configuration of the processor 230 is common to the processor 170 of the interaction robot 100, a repeated description will be omitted. The processor 230 executes at least one function module stored in the storage 221 according to the execution task assigned by the interaction robot 100 , and transmits the execution result to the interaction robot 100 through the communication unit 210 . can notify.

작업 할당 테이블은 프로세서(170) 또는 원격 서버(200)에 의해 작성될 수 있다.The work assignment table may be created by the processor 170 or the remote server 200 .

일 예로, 프로세서(170)는, 프로세서(170)의 하드웨어 성능(예, MIPS: million instructions per second)을 나타내는 제1 성능값과 각 기능 모듈의 실행에 요구되는 최소 하드웨어 성능을 나타내는 제2 성능값을 비교하여, 제1 성능값에 대한 제2 성능값의 비율이 제1 기준값 미만인 각 기능 모듈의 실행 주체는 인터랙션 로봇(100)으로, 제1 성능값에 대한 제2 성능값의 비율이 제1 기준값보다 큰 제2 기준값 이상인 각 기능 모듈의 실행 주체는 원격 서버(200)로, 나머지 기능 모듈의 실행 주체는 인터랙션 로봇(100) 및 원격 서버(200) 둘 다로 설정할 수 있다.For example, the processor 170 includes a first performance value indicating hardware performance (eg, million instructions per second (MIPS)) of the processor 170 and a second performance value indicating minimum hardware performance required for execution of each function module. By comparing , the execution subject of each function module whose ratio of the second performance value to the first performance value is less than the first reference value is the interaction robot 100, and the ratio of the second performance value to the first performance value is the first The execution subject of each function module greater than or equal to the second reference value greater than the reference value may be set as the remote server 200 , and the execution subject of the remaining function modules may be set as both the interaction robot 100 and the remote server 200 .

다른 예로, 프로세서(170)는, 하드웨어 성능을 나타내는 제1 성능값을 통신부(110)를 통해 원격 서버(200)로 전달하고, 원격 서버(200)는 전술된 방식으로 각 기능 모듈의 실행 주체를 설정한 결과로서 작업 할당 테이블을 작성한 다음, 작업 할당 테이블을 인터랙션 로봇(100)에 전달할 수 있다.As another example, the processor 170 transmits the first performance value indicating the hardware performance to the remote server 200 through the communication unit 110 , and the remote server 200 selects the execution subject of each function module in the above-described manner. After creating a work assignment table as a set result, the work assignment table may be transmitted to the interaction robot 100 .

물론, 복수의 기능 모듈 중 인터랙션 로봇(100)의 스토리지(121)에 설치되지 않은 적어도 하나의 기능 모듈의 실행 주체는 무조건 원격 서버(200)로 지정된다.Of course, the execution subject of at least one function module that is not installed in the storage 121 of the interaction robot 100 among the plurality of function modules is unconditionally designated as the remote server 200 .

도 4은 본 발명의 일 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 4의 방법은, 작업 할당 모듈을 이용한 작업 할당 프로세스에 관한 것으로서, 프로세서(170)에 의해 작업 할당 모듈이 실행되는 중에 주기적 또는 비주기적으로 반복 실시될 수 있다. 참고로, 프로세서(170)는, 인터랙션 로봇(100)이 전원이 켜진 시점부터 전원이 꺼지는 시점까지의 기간에 걸쳐 작업 할당 모듈을 실행할 수 있다.4 is a flowchart for exemplarily explaining a control method of the interaction robot 100 according to an embodiment of the present invention. The method of FIG. 4 relates to a task allocation process using the task allocation module, and may be repeatedly performed periodically or aperiodically while the task allocation module is executed by the processor 170 . For reference, the processor 170 may execute the task assignment module over a period from the time the interaction robot 100 is powered on to the time when the power is turned off.

도 1 내지 도 4을 참조하면, 단계 S410에서, 프로세서(170)는, 작업 할당 테이블을 획득한다. 일 예로, 작업 할당 테이블은, (i)프로세서 성능 정보 및 (ii)복수의 기능 모듈의 모듈 정보를 기초로, 프로세서(170)가 직접 작성할 수 있다. 다른 예로, 프로세서(170)는, (i)프로세서 성능 정보 및 (ii)복수의 기능 모듈의 모듈 정보를 포함하는 맵핑 요청을 통신부(110)를 통해 원격 서버(200)에 전송하고, 맵핑 요청에 대한 응답으로서 원격 서버(200)에 의해 작성된 작업 할당 테이블이 통신부(110)를 통해 수신되면, 수신된 작업 할당 테이블을 스토리지(121)에 저장할 수 있다. 여기서, 모듈 정보는, 각 기능 모듈의 식별자, 인터랙션 로봇(100)에 설치 여부, 실행에 요구되는 최소 하드웨어 사양(성능) 등을 포함할 수 있다. 일 예로, 특정 식별자에 연관된 기능 모듈이 인터랙션 로봇(100)의 스토리지(121)에 미저장되어 있는 경우, 해당 기능 모듈의 실행 주체로는 원격 서버(200)만이 맵핑된다. 다른 예로, 특정 식별자에 연관된 기능 모듈이 인터랙션 로봇(100)의 스토리지(121)에 저장되어 있으며, 프로세서 성능 정보가 해당 기능 모듈의 실행에 요구되는 최소 하드웨어 사양을 만족하는 경우, 해당 기능 모듈의 실행 주체로는 원격 서버(200) 및 인터랙션 로봇(100) 둘 다 맵핑될 수 있다. 또 다른 예로, 특정 기능 모듈의 실행에 요구되는 최소 하드웨어 사양이 프로세서 성능 정보에 따른 프로세서(170) 사양 대비 일정 비율 미만인 경우, 해당 기능 모듈의 실행 주체로는 인터랙션 로봇(100)만이 맵핑될 수 있다.1 to 4 , in step S410 , the processor 170 obtains a work assignment table. As an example, the task allocation table may be directly created by the processor 170 based on (i) processor performance information and (ii) module information of a plurality of function modules. As another example, the processor 170 transmits a mapping request including (i) processor performance information and (ii) module information of a plurality of function modules to the remote server 200 through the communication unit 110, and responds to the mapping request. In response, when the job assignment table created by the remote server 200 is received through the communication unit 110 , the received job assignment table may be stored in the storage 121 . Here, the module information may include an identifier of each function module, whether to be installed in the interaction robot 100, a minimum hardware specification (performance) required for execution, and the like. For example, when a function module associated with a specific identifier is not stored in the storage 121 of the interaction robot 100 , only the remote server 200 is mapped as an execution subject of the corresponding function module. As another example, when a function module associated with a specific identifier is stored in the storage 121 of the interaction robot 100 and the processor performance information satisfies the minimum hardware specification required for the execution of the function module, the function module is executed Both the remote server 200 and the interaction robot 100 may be mapped as the subject. As another example, when the minimum hardware specification required for the execution of a specific function module is less than a certain ratio of the specification of the processor 170 according to the processor performance information, only the interaction robot 100 may be mapped to the execution subject of the corresponding function module. .

단계 S420에서, 프로세서(170)는, 입출력 인터페이스(130)를 통해 입력 데이터를 획득한다. 입력 데이터는 입력부(140)로부터 제공되는 것이거나, 복수의 기능 모듈 중 적어도 하나의 실행 결과를 나타내는 출력 데이터일 수 있다. 즉, 어느 한 기능 모듈의 출력 데이터는 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.In step S420 , the processor 170 obtains input data through the input/output interface 130 . The input data may be provided from the input unit 140 or output data indicating an execution result of at least one of the plurality of function modules. That is, output data of one function module may be provided as input data of another function module.

단계 S430에서, 프로세서(170)는, 복수의 기능 모듈 중에서 단계 S420에서 획득된 입력 데이터의 처리에 필요한 기능 모듈을 선택한다. 상세하게는, 입력 데이터의 데이터 유형(예, 사운드, 텍스트, 비전, 터치 등)에 따라, 각각의 데이터 유형에 연관된 적어도 하나의 기능 모듈이 선택될 수 있다. 일 예로, 입력 데이터가 마이크에서 취득된 사운드 데이터인 경우, 복수의 기능 모듈 중에서 사운드 데이터를 처리 가능한 사운드 인식 모듈이 선택된다. 사운드 인식 모듈은, 실행 시, STT(Speech to Text) 알고리즘을 사운드 데이터에 적용하여 사운드 데이터에 대응하는 텍스트 데이터를 생성하는 모듈이다.In step S430 , the processor 170 selects a function module necessary for processing the input data obtained in step S420 from among a plurality of function modules. In detail, according to a data type (eg, sound, text, vision, touch, etc.) of input data, at least one function module associated with each data type may be selected. For example, when the input data is sound data acquired from a microphone, a sound recognition module capable of processing sound data from among a plurality of function modules is selected. The sound recognition module is a module for generating text data corresponding to the sound data by applying a Speech to Text (STT) algorithm to the sound data when executed.

다른 예로, 입력 데이터가 사운드 인식 모듈에서 출력된 텍스트 데이터인 경우, 복수의 기능 모듈 중에서 텍스트 데이터를 처리 가능한 음성 생성 모듈이 선택된다. 음성 생성 모듈은, 음성 합성 프로그램 및 대화 생성 프로그램을 포함할 수 있다. 음성 합성 프로그램의 실행 시, TTS(Text to Speech) 알고리즘을 텍스트 데이터에 적용하여 텍스트 데이터에 대응하는 언어적 요소들(볼륨, 어조, 감정 SSML 등)을 갖는 음성 데이터를 생성하는 모듈이다. 음성 생성 모듈은, 자연어 처리(NLP: Natural Language Processing) 로직이 임베디드되어 있을 수 있다. 자연어 처리는 텍스트 데이터의 형태소, 개체명(named entity), 워드 벡터(word vector), 감정(sentiment) 등을 분석하여 텍스트 데이터에 대응하는 음성 데이터에 청각적 특징값을 부여한다.As another example, when the input data is text data output from the sound recognition module, a voice generating module capable of processing text data from among a plurality of function modules is selected. The voice generating module may include a voice synthesis program and a dialogue generating program. When a speech synthesis program is executed, a TTS (Text to Speech) algorithm is applied to text data to generate speech data having linguistic elements (volume, tone, emotion SSML, etc.) corresponding to the text data. The speech generation module may have natural language processing (NLP) logic embedded therein. Natural language processing provides an auditory feature value to voice data corresponding to text data by analyzing morphemes, named entities, word vectors, sentiments, and the like of text data.

단계 S440에서, 프로세서(170)는, 단계 S430에서 선택된 기능 모듈에 맵핑된 실행 주체를 작업 할당 테이블에서 조회한다.In step S440 , the processor 170 inquires from the task allocation table the execution subject mapped to the function module selected in step S430 .

단계 S450에서, 프로세서(170)는, 원격 서버(200) 및 인터랙션 로봇(100)이 둘 다 단계 S430에서 선택된 기능 모듈에 맵핑되어 있는지 여부를 판정한다. 예를 들어, S430에서 제j 기능 모듈이 선택된 경우, 단계 S450의 값은 "예"이다. 단계 S450의 값이 "아니오"인 것은, 단계 S430에서 선택된 기능 모듈에 단일 실행 주체(즉, 원격 서버(200) 및 인터랙션 로봇(100) 중 어느 하나만)가 맵핑되어 있음을 의미한다.In step S450, the processor 170 determines whether the remote server 200 and the interaction robot 100 are both mapped to the function module selected in step S430. For example, when the j-th function module is selected in S430, the value of step S450 is “Yes”. A value of “No” in step S450 means that a single execution entity (ie, only one of the remote server 200 and the interaction robot 100) is mapped to the function module selected in step S430.

단계 S460에서, 프로세서(170)는, 단일 실행 주체에게 단계 S430에서 선택된 기능 모듈의 실행 작업을 할당한다. 일 예로, 프로세서(170)는, 인터랙션 로봇(100)만이 실행 주체로 맵핑되어 있는 경우, 자신이 직접 단계 S430에서 선택된 기능 모듈을 실행한다. 다른 예로, 프로세서(170)는, 원격 서버(200)만이 실행 주체로 맵핑되어 있는 경우, 통신부(110)를 통해 원격 서버(200)에게, 단계 S430에서 선택된 기능 모듈의 실행 작업이 원격 서버(200)에 할당되었음을 통지한다.In step S460, the processor 170 allocates the execution task of the function module selected in step S430 to a single execution entity. For example, when only the interaction robot 100 is mapped as an execution subject, the processor 170 directly executes the function module selected in step S430 . As another example, if only the remote server 200 is mapped to the execution subject, the processor 170 sends the remote server 200 via the communication unit 110 to the execution task of the function module selected in step S430 to the remote server 200 . ) has been assigned.

단계 S470에서, 프로세서(170)는, 입력 데이터의 데이터량 및 네트워크 정보 중 적어도 하나를 기초로, 단계 S430에서 선택된 기능 모듈의 실행 작업을 인터랙션 로봇(100)에게만 할당 가능한지 여부를 판정한다. 구체적으로, 입력 데이터의 데이터량이 클수록 그리고 네트워크 정보의 통신 속도가 빠를수록 인터랙션 로봇(100)과 원격 서버(200) 간의 협업성이 높아진다고 할 것이므로, 입력 데이터의 데이터량 및 네트워크 정보의 통신 속도의 가중합이 소정의 기준값 미만인 경우에는 단계 S430에서 선택된 기능 모듈의 실행 작업을 인터랙션 로봇(100)에게만 할당 가능한 것으로 판정하고, 그 외에는 인터랙션 로봇(100)에게만 할당 불가한 것으로 판정할 수 있다.In step S470 , the processor 170 determines whether the execution task of the function module selected in step S430 can be assigned only to the interaction robot 100 based on at least one of a data amount of input data and network information. Specifically, as it is said that the greater the data amount of input data and the faster the communication speed of network information, the higher the collaboration between the interaction robot 100 and the remote server 200, the weighting of the data amount of input data and the communication speed of network information When the sum is less than a predetermined reference value, it is determined that the execution task of the function module selected in step S430 can be assigned only to the interaction robot 100 , and otherwise it can be determined that it cannot be assigned only to the interaction robot 100 .

단계 S480에서, 프로세서(170)는, 단계 S430에서 선택된 기능 모듈의 실행 작업을 원격 서버(200) 및 인터랙션 로봇(100)에 분배할 수 있다. 일 예로, 프로세서(170)는, 입력 데이터로서의 비전 데이터의 데이터량, 및 원격 서버(200)와 인터랙션 로봇(100) 간의 통신 속도의 가중합이 기준값 이상인 경우, 비전 데이터를 제1 서브 비전 데이터 및 제2 서브 비전 데이터로 분할한 다음, 제1 서브 비전 데이터의 처리를 위한 객체 인식 모듈의 실행 작업을 원격 서버(200)에게 할당하고, 제2 서브 비전 데이터의 처리를 위한 객체 인식 모듈의 실행 작업은 인터랙션 로봇(100)에게 할당할 수 있다. 이때, 제1 서브 비전 데이터의 데이터량과 제2 서브 비전 데이터의 데이터량의 총합은 비전 데이터의 데이터량과 동일하며, 제1 서브 비전 데이터와 제2 서브 비전 데이터 각각의 데이터량은 상기 가중합과 기준값 간의 차이나 비율 등에 따라 결정될 수 있다.In step S480 , the processor 170 may distribute the execution task of the function module selected in step S430 to the remote server 200 and the interaction robot 100 . For example, when the weighted sum of the data amount of vision data as input data and the communication speed between the remote server 200 and the interaction robot 100 is equal to or greater than a reference value, the processor 170 may convert the vision data to the first sub vision data and After dividing into the second sub-vision data, the execution task of the object recognition module for processing the first sub-vision data is assigned to the remote server 200, and the execution task of the object recognition module for processing the second sub-vision data can be assigned to the interaction robot 100 . At this time, the sum of the data amount of the first sub vision data and the data amount of the second sub vision data is equal to the data amount of the vision data, and the data amount of each of the first sub vision data and the second sub vision data is the weighted sum It may be determined according to a difference or a ratio between and a reference value.

한편, 도 4의 단계 S460에서 인터랙션 로봇(100)에게만 실행 작업이 할당된 경우, 빅 코어(171) 및 리틀 코어(172) 중 하나 또는 둘 모두에 의해 선택된 기능 모듈이 실행되어 입력 데이터가 처리될 수 있다. 리틀 코어(172)는, 빅 코어(171)에 비해 저전력·저성능의 코어이다. 빅 코어(171) 및 리틀 코어(172) 중 적어도 하나는 선택된 기능 모듈을 실행하여 입력 데이터를 처리함으로써, 입력부(140), 출력부(150), 배터리(160) 및/또는 기타 확장 장치(USB 등)을 제어할 수 있다.On the other hand, when the execution task is assigned only to the interaction robot 100 in step S460 of FIG. 4 , the function module selected by one or both of the big core 171 and the little core 172 is executed to process the input data. can The little core 172 is a low-power and low-performance core compared to the big core 171 . At least one of the big core 171 and the little core 172 executes the selected function module to process input data, so that the input unit 140, the output unit 150, the battery 160 and/or other expansion devices (USB etc) can be controlled.

도 5는 본 발명의 제2 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 5의 방법은, 도 4에서 선택된 기능 모듈이 사운드 인식 모듈인 경우, 원격 서버(200)와 인터랙션 로봇(100)의 협업을 통해 사운드 데이터를 처리하는 과정을 예시한다.5 is a flowchart for exemplarily explaining a control method of the interaction robot 100 according to the second embodiment of the present invention. The method of FIG. 5 exemplifies a process of processing sound data through collaboration between the remote server 200 and the interaction robot 100 when the function module selected in FIG. 4 is a sound recognition module.

도 1 내지 도 5를 참조하면, 단계 S510에서, 프로세서(170)는, 사운드 데이터를 제1 서브 사운드 데이터와 제2 서브 사운드 데이터로 분할한다.1 to 5 , in step S510 , the processor 170 divides the sound data into first sub sound data and second sub sound data.

단계 S520에서, 프로세서(170)는, 사운드 인식 모듈을 실행하여, 제1 서브 사운드 데이터에 대응하는 제1 서브 텍스트 데이터를 생성한다.In step S520, the processor 170 generates the first sub text data corresponding to the first sub sound data by executing the sound recognition module.

단계 S530에서, 프로세서(170)는, 제2 서브 사운드 데이터에 대한 사운드 인식 모듈의 실행 작업을 원격 서버(200)에게 할당한다. 이때, 프로세서(170)는, 사운드 데이터가 압축된 사운드 파일을 원격 서버(200)에게 전달할 수 있다. 원격 서버(200)는, 사운드 파일을 압축 해제하여 제2 서브 사운드 데이터를 복원한 다음 단계 S530에서 할당된 실행 작업에 따라, 원격 서버(200)에 저장된 사운드 인식 모듈을 실행하여, 제2 서브 사운드 데이터에 대응하는 제2 서브 텍스트 데이터를 생성한다.In step S530 , the processor 170 assigns the execution task of the sound recognition module for the second sub sound data to the remote server 200 . In this case, the processor 170 may transmit a sound file in which the sound data is compressed to the remote server 200 . The remote server 200 decompresses the sound file to restore the second sub sound data, and then, according to the execution task assigned in step S530, executes the sound recognition module stored in the remote server 200, the second sub sound The second sub text data corresponding to the data is generated.

단계 S540에서, 프로세서(170)는, 제2 서브 사운드 데이터에 대응하는 제2 서브 텍스트 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다.In step S540 , the processor 170 collects second sub text data corresponding to the second sub sound data from the remote server 200 through the communication unit 110 .

단계 S550에서, 프로세서(170)는, 단계 S530에서 생성된 제1 서브 텍스트 데이터와 단계 S540에서 수집된 제2 서브 텍스트 데이터를 취합(결합, 합성)하여, 사운드 데이터에 대응하는 텍스트 데이터를 생성한다.In step S550, the processor 170 collects (combines, synthesizes) the first sub-text data generated in step S530 and the second sub-text data collected in step S540 to generate text data corresponding to the sound data. .

단계 S550에서 생성된 텍스트 데이터는, 출력부(150)의 디스플레이부 등을 통해 시각적 피드백으로서 사용자에게 제공되거나, 음성 생성 모듈 등 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.The text data generated in step S550 may be provided to the user as visual feedback through the display unit of the output unit 150 or the like, or may be provided as input data of another function module such as a voice generating module.

한편, 사운드 데이터의 경우에는 그 미소한 변화만으로도 언어적 요소들(볼륨, 어조, 감정 SSML 등)이 상당히 달라질 수 있으므로, 프로세서(170)는 후술될 음성 생성 모듈에서와는 달리, 사운드 데이터의 처리를 통해 얻어지는 텍스트 데이터를 스토리지(121) 및 메모리(122)에 캐싱하지 않을 수 있다.On the other hand, in the case of sound data, linguistic elements (volume, tone, emotional SSML, etc.) can vary considerably even with a slight change, so the processor 170 performs sound data processing through processing of sound data, unlike in a voice generating module to be described later. The obtained text data may not be cached in the storage 121 and the memory 122 .

도 6는 본 발명의 제3 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 6의 방법은, 도 4에서 선택된 기능 모듈이 음성 생성 모듈인 경우, 원격 서버(200)와 인터랙션 로봇(100)의 협업을 통해 입력 데이터를 처리하는 과정을 예시한다. 6 is a flowchart for exemplarily explaining a control method of the interaction robot 100 according to the third embodiment of the present invention. The method of FIG. 6 exemplifies a process of processing input data through collaboration between the remote server 200 and the interaction robot 100 when the function module selected in FIG. 4 is a voice generating module.

도 1 내지 도 4 및 도 6를 참조하면, 단계 S610에서, 프로세서(170)는, 텍스트 데이터를 제1 서브 텍스트 데이터와 제2 서브 텍스트 데이터로 분할한다.1 to 4 and 6 , in step S610 , the processor 170 divides text data into first sub text data and second sub text data.

단계 S620에서, 프로세서(170)는, 음성 생성 모듈을 실행하여, 제1 서브 텍스트 데이터에 대응하는 제1 서브 음성 데이터를 획득한다. In step S620, the processor 170 executes the speech generation module to obtain first sub-voice data corresponding to the first sub-text data.

상세하게는, 음성 생성 모듈이 동일 입력에 대해 동일 출력을 생성하는 고정형 모듈인 경우, 프로세서(170)는 텍스트 데이터의 해시값을 메모리(122)와 상기 스토리지(121)에서 순차 탐색할 수 있다. 만약, 해시값이 스토리지(121)와 메모리(122)에서 탐색되지 않는 경우, 텍스트 데이터에 대응하는 음성 데이터를 생성한 다음 생성된 음성 데이터를 해시값에 맵핑하여 스토리지(121)와 메모리(122)에 캐싱할 수 있다. 이는, 텍스트 데이터의 경우에는 그에 대응하는 음성 데이터가 단일하기 때문이며, 동일 텍스트 데이터에 대응하는 음성 데이터를 반복하여 불필요하게 생성하는 대신 캐싱을 통해 신속히 획득함으로써, 인터랙션 로봇(100)의 하드웨어 및 소프트웨어 자원을 효율적으로 활용함에서 나아가 텍스트 데이터로부터 음성 데이터를 취득하기 까지의 시간적 지연(latency)를 줄일 수 있다. 해시값이 스토리지(121)와 메모리(122)에서 탐색된 경우, 탐색된 해시값에 기 맵핑되어 있는 음성 데이터를 스토리지(121) 또는 메모리(122)에서 획득할 수 있다. In detail, when the voice generating module is a fixed module that generates the same output for the same input, the processor 170 may sequentially search for a hash value of text data in the memory 122 and the storage 121 . If the hash value is not searched for in the storage 121 and the memory 122, voice data corresponding to the text data is generated, and then the generated voice data is mapped to the hash value to the storage 121 and the memory 122. can be cached in This is because, in the case of text data, the corresponding voice data is single, and by quickly acquiring the voice data corresponding to the same text data through caching instead of repeatedly generating it unnecessary, the hardware and software resources of the interaction robot 100 In addition to efficiently utilizing When the hash value is found in the storage 121 and the memory 122 , voice data previously mapped to the found hash value may be acquired from the storage 121 or the memory 122 .

대안적으로, 음성 생성 모듈이 인공지능 기반의 학습 모델이 임베디드되어 동일 입력에 대해 비동일 출력을 생성하는 능동형 모듈인 경우, 프로세서(170)는 전술된 캐싱 동작을 생략할 수 있다.Alternatively, when the voice generation module is an active module in which an artificial intelligence-based learning model is embedded and generates non-identical outputs for the same input, the processor 170 may omit the above-described caching operation.

단계 S630에서, 프로세서(170)는, 제2 서브 텍스트 데이터에 대한 음성 생성 모듈의 실행 작업을 원격 서버(200)에게 할당한다. 즉, 제2 서브 텍스트 데이터는 통신부(110)를 통해 원격 서버(200)에 업로드되고, 원격 서버(200)는 음성 생성 모듈을 실행하여 업로드된 제2 서브 텍스트 데이터를 처리한다. 이때, 프로세서(170)는, 텍스트 데이터가 압축된 텍스트 파일을 원격 서버(200)에게 전달할 수 있다. 원격 서버(200)는, 텍스트 파일을 압축 해제하여 제2 서브 텍스트 데이터를 복원한 다음 단계 S630에서 할당된 실행 작업에 따라, 원격 서버(200)에 저장된 음성 생성 모듈을 실행하여, 제2 서브 텍스트 데이터에 대응하는 제2 서브 음성 데이터를 생성한다.In step S630 , the processor 170 allocates the execution task of the voice generating module for the second sub text data to the remote server 200 . That is, the second sub text data is uploaded to the remote server 200 through the communication unit 110 , and the remote server 200 executes the voice generating module to process the uploaded second sub text data. In this case, the processor 170 may transmit the text file in which the text data is compressed to the remote server 200 . The remote server 200 decompresses the text file to restore the second sub text data, and then, according to the execution task assigned in step S630, executes the voice generating module stored in the remote server 200 to restore the second sub text data. The second sub-voice data corresponding to the data is generated.

단계 S640에서, 프로세서(170)는, 제2 서브 텍스트 데이터에 대응하는 제2 서브 음성 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다. 제2 서브 음성 데이터는 원본(raw) 형태나 압축 파일의 형태로 원격 서버(200)로부터 다운로드될 수 있다. 이때, 프로세서(170)는, 복수(예, 2~4개)의 파이프라인을 병렬적으로 이용하여 통신부(110)를 통해 원격 서버(200)로부터 제2 서브 음성 데이터를 다운로드함으로써, 제1 서브 음성 데이터의 생성 진행 상황에 맞춰 제2 서브 음성 데이터의 수집 속도를 증감시킬 수 있으며, 이에 따라 제1 서브 음성 데이터의 생성 완료와 제2 서브 음성 데이터의 다운로드 완료 간의 시간차를 최소화할 수 있다.In step S640 , the processor 170 collects second sub-voice data corresponding to the second sub-text data from the remote server 200 through the communication unit 110 . The second sub voice data may be downloaded from the remote server 200 in the form of a raw or compressed file. At this time, the processor 170 downloads the second sub voice data from the remote server 200 through the communication unit 110 using a plurality of (eg, 2 to 4) pipelines in parallel, thereby performing the first sub The collection speed of the second sub-voice data may be increased or decreased according to the progress of generating the voice data, thereby minimizing the time difference between the completion of the generation of the first sub-voice data and the completion of the download of the second sub-voice data.

단계 S650에서, 프로세서(170)는, 단계 S630에서 생성된 제1 서브 음성 데이터와 단계 S640에서 수집된 제2 서브 음성 데이터를 취합하여, 텍스트 데이터에 대응하는 음성 데이터를 생성한다. In step S650, the processor 170 combines the first sub-voice data generated in step S630 and the second sub-voice data collected in step S640 to generate voice data corresponding to the text data.

단계 S650에서 생성된 텍스트 데이터는, 출력부(150)의 스피커 등을 통해 청각적 피드백으로서 사용자에게 제공되거나, 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.The text data generated in step S650 may be provided to the user as auditory feedback through a speaker of the output unit 150 , or may be provided as input data of another function module.

한편, 프로세서(170)는, 소정의 리프레시 조건을 이용하여, 메모리(122)의 데이터 섹션별로 저장된 캐시 데이터를 리프레시할 수 있다. 케시 데이터는, 전술된 캐싱을 통해 메모리(122)의 특정 데이터 섹션에 저장되는 데이터를 지칭한다. 소정의 리프레시 조건은, 데이터 섹션별 캐시 데이터의 캐싱 항목들(예, 호출 횟수, 마지막 호출 시각 등) 및 메모리(122)의 잔여 용량(예, 빈 데이터 섹션의 개수나 저장 공간)에 기초할 수 있다. 또한, 프로세서(170)는, 음성 생성 모듈을 구성하는 명령어, 코드 및 데이터 중 적어도 일부가 변경(업데이트)되는 경우, 음성 생성 모듈의 작업 결과물으로서 메모리(122)에 저장된 캐시 데이터를 제거함으로써, 음성 생성 모듈의 변경에 대해 동적으로 대응할 수 있다.Meanwhile, the processor 170 may refresh cache data stored for each data section of the memory 122 using a predetermined refresh condition. Cache data refers to data stored in a specific data section of memory 122 through the caching described above. The predetermined refresh condition may be based on caching items of cache data for each data section (eg, the number of calls, last call time, etc.) and the remaining capacity of the memory 122 (eg, the number of empty data sections or storage space). have. In addition, the processor 170, when at least some of the commands, codes, and data constituting the voice generating module is changed (updated), by removing the cache data stored in the memory 122 as a work result of the voice generating module, the voice It can respond dynamically to changes in the creation module.

도 6를 설명함에 있어서 텍스트 데이터를 입력 데이터로서 상정하였으나 이는 설명의 편의를 위한 것을 뿐 입력 데이터가 텍스트 데이터로 한정되는 것은 아니다. 예를 들어, 객체 인식 데이터 또한 입력 데이터일 수 있으며, 이 경우 객체 인식 데이터가 나타내는 객체 정보에 대응하는 사운드 데이터가 생성될 수 있다.In the description of FIG. 6 , text data is assumed as input data, but this is only for convenience of description and the input data is not limited to text data. For example, object recognition data may also be input data, and in this case, sound data corresponding to object information indicated by the object recognition data may be generated.

도 7는 본 발명의 제4 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 7의 방법은, 도 4에서 선택된 기능 모듈이 객체 인식 모듈인 경우, 원격 서버(200)와 인터랙션 로봇(100)의 협업을 통해 비전 데이터를 처리하는 과정을 예시한다. 7 is a flowchart for exemplarily explaining a control method of the interaction robot 100 according to the fourth embodiment of the present invention. The method of FIG. 7 exemplifies a process of processing vision data through collaboration between the remote server 200 and the interaction robot 100 when the function module selected in FIG. 4 is an object recognition module.

도 1 내지 도 4 및 도 7를 참조하면, 단계 S710에서, 프로세서(170)는, 비전 데이터를 제1 서브 비전 데이터와 제2 서브 비전 데이터로 분할한다.1 to 4 and 7 , in step S710 , the processor 170 divides the vision data into first sub-vision data and second sub-vision data.

단계 S720에서, 프로세서(170)는, 객체 인식 모듈을 실행하여, 제1 서브 비전 데이터에 대응하는 제1 객체 인식 데이터를 생성한다. 즉, 제1 서브 비전 데이터는 객체 인식 모듈에 의해 분석됨으로써, 제1 서브 비전 데이터에 포함된 인물, 사물, 마커, 제스쳐, 상황 등을 기술하는 객체 정보를 기술하는 제1 객체 인식 데이터가 생성된다. 도 6를 참조하여 전술된 바와는 달리, 주변의 시각적 환경이 미소하게 변경되더라도 비전 데이터에 기술되는 객체적 요소들(등)이 상당히 달라질 수 있으므로, 프로세서(170)는 후술될 음성 생성 모듈에서와는 달리, 제1 서브 비전 데이터의 처리를 통해 얻어지는 제1 객체 인식 데이터에 대한 캐싱은 미수행할 수 있다.In step S720 , the processor 170 generates first object recognition data corresponding to the first sub-vision data by executing the object recognition module. That is, the first sub-vision data is analyzed by the object recognition module, so that first object recognition data describing object information describing a person, object, marker, gesture, situation, etc. included in the first sub-vision data is generated. . Unlike described above with reference to FIG. 6 , even if the surrounding visual environment is slightly changed, object elements (etc.) described in the vision data may vary considerably, so that the processor 170 differs from the speech generation module to be described later. , caching of the first object recognition data obtained through the processing of the first sub-vision data may not be performed.

단계 S730에서, 프로세서(170)는, 제2 서브 비전 데이터에 대한 객체 인식 모듈의 실행 작업을 원격 서버(200)에게 할당한다. 즉, 제2 서브 비전 데이터는 통신부(110)를 통해 원격 서버(200)에 업로드되고, 원격 서버(200)는 객체 인식 모듈을 실행하여 업로드된 제2 서브 비전 데이터를 처리한다. 프로세서(170)는, 프로세서 성능 정보, 제2 서브 비전 데이터의 데이터량 및 네트워크 정보 중 적어도 하나를 기초로 원격 서버(200)에 대한 제2 서브 비전 데이터의 업로드 형태(예, 스트리밍, 무손실 압축(ZIP, RAR, 7z 등), 손실 압축(JPEG, WebP, HEIE, BPG 등))을 결정하고, 결정된 압축 형태로 제2 서브 비전 데이터를 가공한 다음 원격 서버(200)에 업로드할 수 있다. 일 예로, 프로세서(170)는, 제2 서브 비전 데이터가 ZIP 포맷으로 무손실 압축된 비전 파일을 원격 서버(200)에게 전달할 수 있다. 전술된 압축과 관련된 내용은, 비전 데이터뿐만 아니라 다른 타입의 입력 데이터에도 공통 적용될 수 있다. 원격 서버(200)는, 비전 파일을 압축 해제하여 제2 서브 비전 데이터를 복원한 다음 단계 S730에서 할당된 실행 작업에 따라, 원격 서버(200)에 저장된 객체 인식 모듈을 실행하여, 제2 서브 비전 데이터에 대응하는 제2 객체 인식 데이터를 생성한다. 즉, 제2 서브 비전 데이터는 원격 서버(200)에 설치된 객체 인식 모듈에 의해 분석됨으로써, 제2 서브 비전 데이터에 포함된 인물, 사물, 마커, 제스쳐, 상황 등을 기술하는 객체 정보를 기술하는 제2 객체 인식 데이터가 생성된다.In step S730 , the processor 170 allocates the execution task of the object recognition module for the second sub-vision data to the remote server 200 . That is, the second sub-vision data is uploaded to the remote server 200 through the communication unit 110 , and the remote server 200 processes the uploaded second sub-vision data by executing the object recognition module. The processor 170 is configured to upload the second sub-vision data to the remote server 200 based on at least one of the processor performance information, the data amount of the second sub-vision data, and the network information (eg, streaming, lossless compression ( ZIP, RAR, 7z, etc.) and lossy compression (JPEG, WebP, HEIE, BPG, etc.) are determined, the second sub vision data is processed into the determined compression form, and then uploaded to the remote server 200 . For example, the processor 170 may transmit a vision file in which the second sub vision data is losslessly compressed in a ZIP format to the remote server 200 . The contents related to the above-described compression may be commonly applied not only to vision data but also to other types of input data. The remote server 200 restores the second sub-vision data by decompressing the vision file, and then executes the object recognition module stored in the remote server 200 according to the execution task assigned in step S730 to perform the second sub-vision Generate second object recognition data corresponding to the data. That is, the second sub-vision data is analyzed by the object recognition module installed in the remote server 200, so that the second sub-vision data describes the object information describing the person, object, marker, gesture, situation, etc. included in the second sub-vision data. 2 Object recognition data is generated.

단계 S740에서, 프로세서(170)는, 제2 서브 비전 데이터에 대응하는 제2 객체 인식 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다. 제2 객체 인식 데이터는 원본(raw) 형태나 압축 파일의 형태로 수집될 수 있다. 이때, 프로세서(170)는, 복수(예, 2~4개)의 파이프라인을 병렬적으로 이용하여 통신부(110)를 통해 원격 서버(200)로부터 제2 객체 인식 데이터를 다운로드함으로써, 제1 객체 인식 데이터의 생성 진행 상황에 맞춰 제2 객체 인식 데이터의 수집 속도를 증감시킬 수 있으며, 이에 따라 제1 객체 인식 데이터의 생성 완료와 제2 객체 인식 데이터의 다운로드 완료 간의 시간차를 최소화할 수 있다.In operation S740 , the processor 170 collects second object recognition data corresponding to the second sub-vision data from the remote server 200 through the communication unit 110 . The second object recognition data may be collected in the form of a raw or compressed file. At this time, the processor 170 downloads the second object recognition data from the remote server 200 through the communication unit 110 using a plurality of (eg, 2 to 4) pipelines in parallel, thereby the first object The collection speed of the second object recognition data may be increased or decreased according to the generation progress of the recognition data, and accordingly, the time difference between the completion of the generation of the first object recognition data and the completion of the download of the second object recognition data may be minimized.

단계 S750에서, 프로세서(170)는, 단계 S730에서 생성된 제1 객체 인식 데이터와 단계 S740에서 수집된 제2 객체 인식 데이터를 취합하여, 비전 데이터에 대응하는 음성 데이터를 생성한다. In operation S750, the processor 170 combines the first object recognition data generated in operation S730 and the second object recognition data collected in operation S740 to generate voice data corresponding to the vision data.

단계 S750에서 생성된 비전 데이터는, 출력부(150)의 스피커 등을 통해 청각적 피드백으로서 사용자에게 제공되거나, 다른 기능 모듈(예, 객체 인식 모듈)의 입력 데이터로서 제공될 수 있다.The vision data generated in step S750 may be provided to the user as auditory feedback through a speaker of the output unit 150 or the like, or may be provided as input data of another function module (eg, an object recognition module).

한편, 원격 서버(200)는, 인터랙션 로봇(100)에 의한 입력/연산/출력 과정을 통해 취득되는 데이터를 누적하여 인터랙션 서비스의 고도화에 활용되는 빅데이터를 생성할 수 있다. 인터랙션 로봇(100)은 프로세서(170)에 입출력되는 데이터를 시계열적으로 누적하고, 누적된 데이터량이 소정량에 도달할 때마다 원격 서버(200)에 전달할 수 있다. 프로세서(170)가 빅 코어(171) 및 리틀 코어(172)를 포함하는 경우, 리틀 코어(172)는 그에 입출력되는 데이터를 축적하여 일정 사이즈 단위로 빅 코어(171)에 전달하고, 빅 코어(171)는 그에 입출력되는 데이터를 축적하여 축적된 데이터를 일정 사이즈 단위로 압축하여 빅 코어(171)에 전달할 수 있다.On the other hand, the remote server 200 may generate big data used for upgrading the interaction service by accumulating data acquired through the input/operation/output process by the interaction robot 100 . The interaction robot 100 may time-series accumulation of data input/output to and from the processor 170 , and may transmit it to the remote server 200 whenever the accumulated data amount reaches a predetermined amount. When the processor 170 includes the big core 171 and the little core 172, the little core 172 accumulates input/output data therein and transmits it to the big core 171 in a unit of a predetermined size, and the big core ( 171 may accumulate data input/output thereto, compress the accumulated data in units of a predetermined size, and transmit it to the big core 171 .

본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.The present invention is not limited to the specific embodiments and applications described above, and various modifications can be made by those of ordinary skill in the art to which the invention pertains without departing from the gist of the invention as claimed in the claims. Needless to say, these modifications should not be understood as being distinct from the spirit or vision of the present invention.

특히, 본 명세서에 첨부된 도면에 도시된 블록도와 순서도에 포함된 본 발명의 기술적 특징을 실행하는 구성들은 상기 구성들 사이의 논리적인 경계를 의미한다. 그러나 소프트웨어나 하드웨어의 실시 예에 따르면, 도시된 구성들과 그 기능들은 독립형 소프트웨어 모듈, 모놀리식 소프트웨어 구조, 코드, 서비스 및 이들을 조합한 형태로 실행되며, 저장된 프로그램 코드, 명령어 등을 실행할 수 있는 프로세서를 구비한 컴퓨터에서 실행 가능한 매체에 저장되어 그 기능들이 구현될 수 있으므로 이러한 모든 실시예 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다.In particular, the components implementing the technical features of the present invention included in the block diagrams and flowcharts shown in the accompanying drawings herein mean logical boundaries between the components. However, according to an embodiment of software or hardware, the illustrated components and their functions are executed in the form of stand-alone software modules, monolithic software structures, codes, services, and combinations thereof, and can execute stored program codes, instructions, etc. Since the functions may be implemented by being stored in an executable medium in a computer having a processor, all such embodiments should also be regarded as falling within the scope of the present invention.

따라서, 첨부된 도면과 그에 대한 기술은 본 발명의 기술적 특징을 설명하기는 하나, 이러한 기술적 특징을 구현하기 위한 소프트웨어의 특정 배열이 분명하게 언급되지 않는 한, 단순히 추론되어서는 안 된다. 즉, 이상에서 기술한 다양한 실시예들이 존재할 수 있으며, 그러한 실시 예들이 본 발명과 동일한 기술적 특징을 보유하면서 일부 변형될 수 있으므로, 이 역시 본 발명의 권리범위 내에 속하는 것으로 보아야 할 것이다. Accordingly, although the accompanying drawings and descriptions thereof describe the technical features of the present invention, they should not be simply inferred unless a specific arrangement of software for implementing these technical features is clearly mentioned. That is, the various embodiments described above may exist, and since such embodiments may be partially modified while retaining the same technical characteristics as those of the present invention, this should also be regarded as falling within the scope of the present invention.

또한, 순서도의 경우 특정한 순서로 도면에서 동작들을 묘사하고 있지만, 이는 가장 바람직한 결과를 얻기 위하여 도시된 것으로서, 도시된 특정한 순서나 순차적인 순서대로 그러한 동작들을 반드시 실행되어야 한다거나 모든 도시된 동작들이 반드시 실행되어야 하는 것으로 이해되어서는 안 된다. 특정한 경우, 멀티 태스킹과 병렬 프로세싱이 유리할 수 있다. 아울러, 이상에서 기술한 실시형태의 다양한 시스템 컴포넌트의 분리는 그러한 분리를 모든 실시형태에서 요구하는 것으로 이해되어서는 안되며, 설명한 프로그램 컴포넌트와 시스템들은 일반적으로 단일의 소프트웨어 제품으로 함께 통합되거나 다중 소프트웨어 제품에 패키징될 수 있다는 점을 이해하여야 한다. In addition, in the case of a flowchart, the operations are depicted in the drawings in a specific order, but this is illustrated in order to obtain the most desirable result. should not be construed as being In certain cases, multitasking and parallel processing can be advantageous. In addition, the separation of various system components of the embodiments described above should not be construed as requiring such separation in all embodiments, and the described program components and systems are generally integrated together into a single software product or in multiple software products. It should be understood that it may be packaged.

100: 인터랙션 로봇
110: 통신부 120: 정보 저장부
130: 입출력 인터페이스 140: 입력부
150: 출력부 160: 배터리
170: 프로세서
200: 원격 서버
210: 통신부 220: 저장부
230: 프로세서
100: interaction robot
110: communication unit 120: information storage unit
130: input/output interface 140: input unit
150: output unit 160: battery
170: processor
200: remote server
210: communication unit 220: storage unit
230: processor

Claims (11)

원격 서버와의 협업이 가능한 인터랙션 로봇에 있어서,
통신 네트워크를 통해 상기 원격 서버에 접속 가능하고, 상기 통신 네트워크의 네트워크 정보를 획득하는 통신부;
복수의 기능 모듈 중 적어도 하나, 및 작업 할당 모듈을 저장하는 스토리지를 포함하는 저장부;
입력 데이터를 획득하는 입출력 인터페이스; 및
프로세서의 하드웨어 성능 및 상기 복수의 기능 모듈의 모듈 정보를 포함하는 맵핑 요청을 상기 통신부를 통해 상기 원격 서버에게 전송하고, 각 기능 모듈에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블 - 상기 작업 할당 테이블은 상기 맵핑 요청에 대한 응답으로서 상기 원격 서버로부터 전송된 것임 - 을 획득하는 상기 프로세서;를 포함하고,
상기 프로세서는, 상기 작업 할당 모듈을 실행 시,
상기 입력 데이터를 기초로, 상기 복수의 기능 모듈 중에서 상기 입력 데이터의 처리에 필요한 기능 모듈을 선택하고,
상기 작업 할당 테이블에서 상기 선택된 기능 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 입력 데이터의 데이터량 및 상기 네트워크 정보 중 적어도 하나를 기초로, 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나에게 상기 선택된 기능 모듈의 실행 작업을 할당하는 것을 특징으로 하는, 인터랙션 로봇.
In an interaction robot that can collaborate with a remote server,
a communication unit connectable to the remote server through a communication network and acquiring network information of the communication network;
a storage unit including at least one of the plurality of function modules and a storage for storing the task assignment module;
an input/output interface for acquiring input data; and
A mapping request including hardware performance of a processor and module information of the plurality of function modules is transmitted to the remote server through the communication unit, and at least one of the remote server and the interaction robot is sent to each function module to execute the function module the processor to obtain a work assignment table mapping as a subject, the work assignment table being sent from the remote server as a response to the mapping request;
The processor, when executing the task assignment module,
selecting a function module necessary for processing the input data from among the plurality of function modules based on the input data;
When both the remote server and the interaction robot are mapped as execution subjects of the selected function module in the task allocation table, the remote server and the interaction are based on at least one of the data amount of the input data and the network information. The interaction robot, characterized in that allocating the execution task of the selected function module to at least one of the robots.
삭제delete 제1항에 있어서,
상기 프로세서는,
상기 입력 데이터가 사운드 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 사운드 인식 모듈을 선택하고,
상기 사운드 인식 모듈의 실행 작업이 상기 원격 서버에게 할당 시, 상기 사운드 데이터가 압축된 사운드 파일을 상기 통신부를 통해 상기 원격 서버에게 전송하는, 인터랙션 로봇.
According to claim 1,
The processor is
When the input data is sound data, selecting a sound recognition module that is one of the plurality of function modules,
When the execution task of the sound recognition module is assigned to the remote server, the interaction robot transmits a sound file in which the sound data is compressed to the remote server through the communication unit.
원격 서버와의 협업이 가능한 인터랙션 로봇에 있어서,
통신 네트워크를 통해 상기 원격 서버에 접속 가능하고, 상기 통신 네트워크의 네트워크 정보를 획득하는 통신부;
복수의 기능 모듈 중 적어도 하나, 및 작업 할당 모듈을 저장하는 스토리지를 포함하는 저장부;
입력 데이터를 획득하는 입출력 인터페이스; 및
각 기능 모듈에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블을 획득하는 프로세서;를 포함하고,
상기 저장부는 상기 스토리지보다 고속인 메모리를 더 포함하고,
상기 프로세서는,
상기 입력 데이터가 텍스트 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 음성 합성 모듈을 선택하고,
상기 음성 합성 모듈의 실행 작업이 상기 인터랙션 로봇에게 할당 시, 상기 음성 합성 모듈을 실행하여, 상기 텍스트 데이터의 해시값을 상기 메모리와 상기 스토리지에서 순차 탐색하고, 상기 해시값이 상기 스토리지와 상기 메모리에서 탐색되지 않는 경우, 상기 텍스트 데이터에 대응하는 음성 데이터를 상기 해시값에 맵핑하여 상기 스토리지와 상기 메모리에 캐싱하는, 인터랙션 로봇.
In an interaction robot that can collaborate with a remote server,
a communication unit that is connectable to the remote server through a communication network and obtains network information of the communication network;
a storage unit including at least one of the plurality of function modules and a storage for storing the task assignment module;
an input/output interface for acquiring input data; and
A processor for obtaining a task assignment table for mapping at least one of the remote server and the interaction robot to each function module as an execution subject of the function module;
The storage unit further comprises a high-speed memory than the storage,
The processor is
when the input data is text data, selecting a speech synthesis module that is one of the plurality of function modules;
When the execution task of the speech synthesis module is assigned to the interaction robot, the speech synthesis module is executed to sequentially search the hash value of the text data in the memory and the storage, and the hash value is stored in the storage and the memory. When not searched, the interaction robot that maps the voice data corresponding to the text data to the hash value and caches it in the storage and the memory.
제4항에 있어서,
상기 프로세서는,
소정의 리프레시 조건을 이용하여, 상기 메모리의 데이터 섹션별로 저장된 캐시 데이터를 리프레시하는, 인터랙션 로봇.
5. The method of claim 4,
The processor is
An interaction robot that refreshes cache data stored for each data section of the memory by using a predetermined refresh condition.
원격 서버와의 협업이 가능한 인터랙션 로봇에 있어서,
통신 네트워크를 통해 상기 원격 서버에 접속 가능하고, 상기 통신 네트워크의 네트워크 정보를 획득하는 통신부;
복수의 기능 모듈 중 적어도 하나, 및 작업 할당 모듈을 저장하는 스토리지를 포함하는 저장부;
입력 데이터를 획득하는 입출력 인터페이스; 및
각 기능 모듈에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블을 획득하는 프로세서;를 포함하고,
상기 프로세서는,
상기 입력 데이터가 비전 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 객체 인식 모듈을 선택하고,
상기 작업 할당 테이블에서 상기 객체 인식 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우,
상기 비전 데이터의 데이터량 및 상기 네트워크 정보를 기초로, 상기 비전 데이터를 제1 서브 비전 데이터 및 제2 서브 비전 데이터로 분할하고,
상기 제1 서브 비전 데이터에 대한 상기 객체 인식 모듈의 실행 작업을 상기 원격 서버에게 할당하고,
상기 제2 서브 비전 데이터에 대한 상기 객체 인식 모듈의 실행 작업을 상기 인터랙션 로봇에게 할당하는, 인터랙션 로봇.
In an interaction robot that can collaborate with a remote server,
a communication unit connectable to the remote server through a communication network and acquiring network information of the communication network;
a storage unit including at least one of the plurality of function modules and a storage for storing the task assignment module;
an input/output interface for acquiring input data; and
A processor for obtaining a task assignment table for mapping at least one of the remote server and the interaction robot to each function module as an execution subject of the function module;
The processor is
When the input data is vision data, selecting an object recognition module that is one of the plurality of function modules,
When both the remote server and the interaction robot are mapped as an execution subject of the object recognition module in the task assignment table,
dividing the vision data into first sub-vision data and second sub-vision data based on the data amount of the vision data and the network information;
allocating an execution task of the object recognition module for the first sub-vision data to the remote server;
Allocating an execution task of the object recognition module for the second sub-vision data to the interaction robot.
제6항에 있어서,
상기 프로세서는,
상기 비전 데이터의 데이터량, 및 상기 네트워크 정보에 포함된 상기 원격 서버와 상기 인터랙션 로봇 간의 통신 속도를 기초로, 상기 제1 서브 비전 데이터의 데이터량과 상기 제2 서브 비전 데이터의 데이터량을 결정하는, 인터랙션 로봇.
7. The method of claim 6,
The processor is
determining the data amount of the first sub-vision data and the data amount of the second sub-vision data based on the data amount of the vision data and the communication speed between the remote server and the interaction robot included in the network information , interactive robots.
제1항에 있어서,
상기 프로세서는,
빅 코어, 및 상기 빅 코어보다 저성능인 리틀 코어 중 어느 하나를 포함하는 싱글 코어 프로세서 또는 상기 빅 코어 및 상기 리틀 코어를 둘 다 포함하는 멀티 코어 프로세서이고,
상기 작업 할당 테이블에서 상기 인터랙션 로봇만이 상기 선택된 기능 모듈의 실행 주체로서 매핑되어 있는 경우, 상기 빅 코어 및 상기 리틀 코어 중 적어도 하나는 상기 선택된 기능 모듈을 실행하여 상기 입력 데이터를 처리하는, 인터랙션 로봇.
According to claim 1,
The processor is
A single-core processor including any one of a big core and a little core with lower performance than the big core, or a multi-core processor including both the big core and the little core,
When only the interaction robot is mapped as an execution subject of the selected function module in the task assignment table, at least one of the big core and the little core executes the selected function module to process the input data, the interaction robot .
제1항 및 제3항 내지 제8항 중 어느 한 항에 따른 인터랙션 로봇; 및
상기 원격 서버;
를 포함하는, 로봇 운영 시스템.
The interaction robot according to any one of claims 1 and 3 to 8; and
the remote server;
comprising, a robot operating system.
제1항 및 제3항 내지 제8항 중 어느 한 항에 따른 인터랙션 로봇의 제어 방법에 있어서,
상기 프로세서의 하드웨어 성능 및 상기 복수의 기능 모듈의 모듈 정보를 포함하는 맵핑 요청을 상기 통신부를 통해 상기 원격 서버에게 전송하는 단계;
상기 복수의 기능 모듈 각각에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블 - 상기 작업 할당 테이블은 상기 맵핑 요청에 대한 응답으로서 상기 원격 서버로부터 전송된 것임 - 을 획득하는 단계;
상기 입력 데이터를 획득하는 단계;
상기 입력 데이터를 기초로, 상기 복수의 기능 모듈 중에서 상기 입력 데이터의 처리에 필요한 기능 모듈을 선택하는 단계; 및
상기 작업 할당 테이블에서 상기 선택된 기능 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 입력 데이터의 데이터량 및 상기 네트워크 정보 중 적어도 하나를 기초로, 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나에게 상기 선택된 기능 모듈의 실행 작업을 할당하는 단계;
를 포함하는 것을 특징으로 하는, 인터랙션 로봇의 제어 방법.
In the control method of the interaction robot according to any one of claims 1 and 3 to 8,
transmitting a mapping request including hardware capabilities of the processor and module information of the plurality of function modules to the remote server through the communication unit;
A work assignment table for mapping at least one of the remote server and the interaction robot to each of the plurality of function modules as an execution subject of the function module - The work assignment table is transmitted from the remote server as a response to the mapping request - to obtain;
obtaining the input data;
selecting a function module necessary for processing the input data from among the plurality of function modules based on the input data; and
When both the remote server and the interaction robot are mapped as execution subjects of the selected function module in the task allocation table, the remote server and the interaction are based on at least one of the data amount of the input data and the network information. allocating an execution task of the selected function module to at least one of the robots;
It characterized in that it comprises, the control method of the interaction robot.
제10항에 따른 인터랙션 로봇의 제어 방법을 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램.

A computer program stored in a medium to execute the control method of the interaction robot according to claim 10.

KR1020220034795A 2022-03-21 2022-03-21 Interaction robot, robot operating system, and control method for the same KR102432361B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020220034795A KR102432361B1 (en) 2022-03-21 2022-03-21 Interaction robot, robot operating system, and control method for the same

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020220034795A KR102432361B1 (en) 2022-03-21 2022-03-21 Interaction robot, robot operating system, and control method for the same

Publications (2)

Publication Number Publication Date
KR102432361B1 true KR102432361B1 (en) 2022-08-17
KR102432361B9 KR102432361B9 (en) 2022-12-05

Family

ID=83110712

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020220034795A KR102432361B1 (en) 2022-03-21 2022-03-21 Interaction robot, robot operating system, and control method for the same

Country Status (1)

Country Link
KR (1) KR102432361B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024106728A1 (en) * 2022-11-17 2024-05-23 네이버랩스 주식회사 Robot-friendly building, and method and system for controlling robot traveling in building

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772962B1 (en) * 2006-03-09 2007-11-02 주식회사 유진로봇 Image processing based robot interface system
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search
KR20190003121A (en) * 2017-06-30 2019-01-09 엘지전자 주식회사 Moving robot
KR20190119225A (en) * 2018-04-03 2019-10-22 엘지전자 주식회사 Robot system comprising a plurality of robots embeded each artificial intelligence
JP2019206041A (en) * 2018-05-28 2019-12-05 キヤノン株式会社 Robot control device, system, information processing method and program
KR20200084449A (en) * 2018-12-26 2020-07-13 삼성전자주식회사 Cleaning robot and Method of performing task thereof

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100772962B1 (en) * 2006-03-09 2007-11-02 주식회사 유진로봇 Image processing based robot interface system
US20140122059A1 (en) * 2012-10-31 2014-05-01 Tivo Inc. Method and system for voice based media search
KR20190003121A (en) * 2017-06-30 2019-01-09 엘지전자 주식회사 Moving robot
KR20190119225A (en) * 2018-04-03 2019-10-22 엘지전자 주식회사 Robot system comprising a plurality of robots embeded each artificial intelligence
JP2019206041A (en) * 2018-05-28 2019-12-05 キヤノン株式会社 Robot control device, system, information processing method and program
KR20200084449A (en) * 2018-12-26 2020-07-13 삼성전자주식회사 Cleaning robot and Method of performing task thereof

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024106728A1 (en) * 2022-11-17 2024-05-23 네이버랩스 주식회사 Robot-friendly building, and method and system for controlling robot traveling in building

Also Published As

Publication number Publication date
KR102432361B9 (en) 2022-12-05

Similar Documents

Publication Publication Date Title
EP3891731B1 (en) Directing a vehicle client device to use on-device functionality
KR102445382B1 (en) Voice processing method and system supporting the same
US11789522B2 (en) Generating and/or adapting automated assistant content according to a distance between user(s) and an automated assistant interface
US11521038B2 (en) Electronic apparatus and control method thereof
KR102432361B1 (en) Interaction robot, robot operating system, and control method for the same
US11664028B2 (en) Performing subtask(s) for a predicted action in response to a separate user interaction with an automated assistant prior to performance of the predicted action
US8756209B2 (en) Computing resource allocation based on query response analysis in a networked computing environment
KR102490916B1 (en) Electronic apparatus, method for controlling thereof, and non-transitory computer readable recording medium
JP7170739B2 (en) Reduced client device latency in rendering remotely generated Automation Assistant content
KR20190008663A (en) Voice data processing method and system supporting the same
US10915928B2 (en) Product solution responsive to problem identification
WO2021260970A1 (en) Network control method and data processing system
CN111460832B (en) Method, device, system, equipment and computer storage medium for object coding
CN116235246A (en) Speech response system-personalized linguistic AI engine based on personalized vocabulary and user profile
KR20180108321A (en) Electronic device for performing an operation for an user input after parital landing
JP2023551089A (en) Access authentication in AI systems
CN116075888A (en) System and method for reducing latency in cloud services
KR20210015234A (en) Electronic apparatus, and method of controlling to execute function according to voice command thereof
KR20210064594A (en) Electronic apparatus and control method thereof
CN114127734A (en) Location-based mode of biasing the provision of content when an automated assistant is responding to condensed natural language input
KR20210078122A (en) Information processing method and apparatus therefor
KR20210047047A (en) System and method for managing of material warehouse by using speech recognition, and computer readable storage medium storing the same
JP7465075B2 (en) Calculation device, recording medium, voice input device
WO2020226667A1 (en) Performing subtask(s) for a predicted action in response to a separate user interaction with an automated assistant prior to performance of the predicted action
US20240203417A1 (en) Intelligent caption edge computing

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
G170 Re-publication after modification of scope of protection [patent]