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 PDFInfo
- 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
Links
Images
Classifications
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/006—Controls for manipulators by means of a wireless system for controlling one or several manipulators
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/003—Controls for manipulators by means of an audio-responsive input
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J13/00—Controls for manipulators
- B25J13/08—Controls for manipulators by means of sensing devices, e.g. viewing or touching devices
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1602—Programme controls characterised by the control system, structure, architecture
- B25J9/161—Hardware, e.g. neural networks, fuzzy logic, interfaces, processor
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J9/00—Programme-controlled manipulators
- B25J9/16—Programme controls
- B25J9/1679—Programme controls characterised by the tasks executed
- B25J9/1682—Dual arm manipulator; Coordination of several manipulators
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total 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
Description
본 발명은 인터랙션 로봇, 로봇 운영 시스템, 및 그 제어 방법에 관한 것으로서, 보다 상세하게는, 인터랙션 서비스에 관련된 처리 작업을 유무선 네트워크를 통해 접속 가능한 원격 서버와 인터랙션 로봇 간에 동적으로 분담하는 기술에 관한 것이다.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
도 1 및 도 2를 참조하면, 로봇 운영 시스템(10)은 적어도 하나의 인터랙션 로봇(100) 및 원격 서버(200)를 포함하며, 각 인터랙션 로봇(100)은 원격 서버(200)와의 협업을 통해 인터랙션 로봇(100)의 사용자에게 다양한 인터랙션 서비스를 제공한다.1 and 2 , the robot operating system 10 includes at least one
인터랙션 로봇(100)은, 통신부(110), 저장부(120), 입출력 인터페이스(130) 및 프로세서(170)를 포함한다. 인터랙션 로봇(100)은, 입력부(140), 출력부(150) 및 배터리(160)를 더 포함할 수 있다.The
통신부(110)는, 유무선 통신 네트워크를 통해 인터랙션 로봇(100)으로부터 원격지에 위치하는 원격 서버(200)에 접속하여, 인터랙션 서비스에 관련된 데이터를 원격 서버(200)와의 사이에서 송수신하도록 구성된다. 유선 통신은 예컨대 캔(CAN: controller area network) 통신일 수 있고, 무선 통신은 예컨대 지그비나 블루투스 통신일 수 있다. 물론, 인터랙션 로봇(100) 및 원격 서버(200) 간의 유무선 통신을 지원하는 것이라면, 통신 프토토콜의 종류는 특별히 한정되는 것은 아니다. 통신부(110)는, 원격 서버(200)와의 통신 중, 통신 네트워크의 네트워크 상태(예, 통신 속도, 수신신호강도, 네트워크 대역폭)를 계측(획득)하고, 계측된 통신 상태에 대한 정보를 입출력 인터페이스(130)를 통해 프로세서(170)에 제공할 수 있다.The
저장부(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
저장부(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
입출력 인터페이스(130)는, 입력부(140)에 결합되어, 입력부(140)로부터 입력 데이터를 획득하고, 획득된 입력 데이터는 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나에게 제공한다. 또한, 입출력 인터페이스(130)는, 출력부(150)에 결합되어, 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나로부터 획득된 출력 데이터를 출력부(150)에게 제공한다. 또한, 입출력 인터페이스(130)는, 배터리(160)로부터 인터랙션 로봇(100)의 타 구성들로의 전력 전달 경로를 제공할 수 있다.The input/
입력부(140)는, 사용자나 주변 환경에 의해 발생되거나 인터랙션 로봇(100) 자체적인 상태에 따라 발생되는 입력 신호를 모니터링하고, 모니터링된 입력 신호를 입출력 인터페이스(130)에서 인식 가능한 입력 데이터로 변환하도록 구성된다. 입력 신호는, 소리, 영상, 터치, 텍스트, 로봇 움직임 등 하드웨어적으로 인식 가능한 유형이라면 특별히 제한되지 않는다.The
입력부(140)는, 마이크, 카메라, 적외선 센서, 초음파 센서, 레이저 센서, 레이더, 라이다, 공기질 센서, 터치 센서, 물리 버튼, 위치 센서, 모션 센서, 및 배터리 게이지 중 적어도 하나를 포함할 수 있다. 마이크는, 소리 신호를 처리하여 소리 데이터를 생성하고, 소리 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 카메라, 적외선 센서, 초음파 센서, 레이저 센서, 레이더 및 라이다 각각은 영상 신호를 처리하여 비전 데이터를 생성하고, 비전 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 터치 센서는, 인터랙션 로봇(100)에 대한 사용자의 터치 액션을 처리하여 터치 데이터를 생성하고, 터치 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 물리 버튼은, 물리 버튼에 대한 사용자의 조작에 따른 명령 데이터를 생성하고, 명령 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 위치 센서는, 위치 신호를 처리하여 위치 데이터를 생성하고, 위치 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 모션 센서는, 인터랙션 로봇(100)의 자세에 따른 모션 신호를 처리하여 모션 데이터를 생성하고, 모션 데이터를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다. 배터리 게이지는, 인터랙션 로봇(100)에 내장된 배터리(160)의 상태를 계측하고, 계측된 배터리 상태를 입력 데이터로서 입출력 인터페이스(130)에 제공할 수 있다.The
출력부(150)는, 입출력 인터페이스(130)를 통해 통신부(110), 저장부(120) 및 프로세서(170) 중 적어도 하나로부터 제공된 출력 데이터를 기초로, 소정의 동작을 수행하도록 제공한다. 출력 데이터는, 입력 데이터가 복수의 기능 모듈 중 적어도 하나에 의해 처리된 결과일 수 있다. 일 예로, 사용자에 의해 발하된 음성 신호는 입력부(140)의 마이크를 통해 음성 타입의 입력 데이터로 변환되고, 사운드 인식 모듈은 입력 데이터로부터 사용자의 상태나 인터랙션 로봇(100)에 대한 이동 명령을 추출하여 출력 데이터를 생성한 다음, 출력 데이터를 주행 기구에 전달할 수 있다. 그러면, 주행 기구는, 출력 데이터에 보유된 이동 명령에 따라 인터랙션 로봇(100)이 사용자에 근접하게 위치하도록 구동될 수 있다.The
출력부(150)는, 스피커, 광원, 디스플레이 및 주행 기구 중 적어도 하나를 포함한다. 스피커는, 출력 데이터가 사운드 데이터인 경우, 사운드 데이터를 소리 신호로 변환하여 출력한다. 광원은, 출력 데이터가 광 제어 데이터인 경우, 광 제어 데이터에 의해 명령된 광량, 색상 및/또는 점멸 주기 갖는 광 신호를 출력한다. 디스플레이는, 출력 데이터가 텍스트 데이터 또는 영상 데이터인 경우, 시각적 신호로 변환하여 패널 상에 출력한다. 주행 기구는, 출력 데이터가 인터랙션 로봇(100)에 대한 자세 제어 데이터인 경우, 자세 제어 데이터에 맞춰 인터랙션 로봇(100)의 위치, 속도, 방향 등을 제어한다.The
프로세서(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
프로세서(170)는, 입출력 인터페이스(130)를 통해 입력 데이터가 획득되는 경우, 복수의 기능 모듈 중에서 입력 데이터에 연관된 적어도 하나의 기능 모듈을 실행 대상으로서 선택한다. When input data is obtained through the input/
도 3을 참조하면, 스토리지(121)에는 작업 할당 테이블(도 3 참조)이 저장되어 있을 수 있다. 작업 할당 테이블은, 인터랙션 로봇(100) 및 원격 서버(200) 중 적어도 하나를 복수의 기능 모듈 각각의 실행 주체로서 지정(맵핑)하는 테이블이다.Referring to FIG. 3 , a work allocation table (see FIG. 3 ) may be stored in the
작업 할당 테이블은 제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
일 예로, 어떤 입력 데이터에 연관된 것으로 제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
제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
프로세서(170)는, 작업 할당 테이블을 통해 선택된 실행 주체에게, 실행 대상으로 선택된 기능 모듈에 대한 기능 실행 작업을 할당(부여)한다. 기능 실행 작업은, 입력 데이터 및 기능 모듈의 식별 코드를 포함할 수 있다.The
프로세서(170)에 의해 어떤 기능 실행 작업이 인터랙션 로봇(100)에 할당된다는 것은, 프로세서(170)가 직접 해당 기능 모듈을 실행함을 의미한다. 프로세서(170)에 의해 어떤 기능 실행 작업이 원격 서버(200)에 할당된다는 것은, 프로세서(170)가 기능 실행 작업을 원격 서버(200)에게 전달하도록 통신부(110)를 제어함을 의미한다.The fact that a certain function execution task is assigned to the
프로세서(170)는, 스토리지(121)에 설치된 적어도 하나의 기능 모듈이 손상되는 경우, 손상된 기능 모듈의 메타 데이터를 이용하여 원격 서버(200)로부터 해당 기능 모듈의 전부 또는 손상된 부분에 대한 데이터를 다운로드함으로써, 기술 모듈의 손상을 복구할 수 있다.When at least one function module installed in the
원격 서버(200)는, 통신부(210), 저장부(220) 및 프로세서(230)를 포함한다.The remote server 200 includes a
통신부(210)는, 유무선 통신 네트워크를 통해 인터랙션 로봇(100)과의 사이에서 인터랙션 서비스에 관련된 데이터를 송수신하도록 구성된다. 통신부(210)는, 통신부(110)와는 별개로 통신 네트워크의 네트워크 상태를 계측하고, 계측된 네트워크 정보를 인터랙션 로봇(100)에게 전달할 수 있다.The
저장부(220)는, 인터랙션 로봇(100)의 스토리지(121)보다 대용량의 스토리지(221)를 포함하고, 스토리지(221)에는 복수의 기능 모듈이 전부 저장되어 있다. 저장부(220)는, 인터랙션 로봇(100)의 메모리(122)보다 고속의 메모리(222)를 더 포함할 수 있다. 원격 서버(200)의 스토리지(221) 및 메모리(222)의 하드웨어적 구성에 대한 설명은 인터랙션 로봇(100)의 스토리지(121) 및 메모리(122)와 공통되는 바 반복 설명은 생략하기로 한다.The
프로세서(230)는, 인터랙션 로봇(100)의 프로세서(170)에 비하여 고성능 프로세서이다. 프로세서(230)의 하드웨어적 구성에 대한 설명은 인터랙션 로봇(100)의 프로세서(170)와 공통되므로 반복 설명은 생략하기로 한다. 프로세서(230)는, 인터랙션 로봇(100)에 의해 할당된 실행 작업에 따라, 스토리지(221)에 저장된 적어도 하나의 기능 모듈을 실행하고, 실행 결과를 통신부(210)를 통해 인터랙션 로봇(100)에 통지할 수 있다.The
작업 할당 테이블은 프로세서(170) 또는 원격 서버(200)에 의해 작성될 수 있다.The work assignment table may be created by the
일 예로, 프로세서(170)는, 프로세서(170)의 하드웨어 성능(예, MIPS: million instructions per second)을 나타내는 제1 성능값과 각 기능 모듈의 실행에 요구되는 최소 하드웨어 성능을 나타내는 제2 성능값을 비교하여, 제1 성능값에 대한 제2 성능값의 비율이 제1 기준값 미만인 각 기능 모듈의 실행 주체는 인터랙션 로봇(100)으로, 제1 성능값에 대한 제2 성능값의 비율이 제1 기준값보다 큰 제2 기준값 이상인 각 기능 모듈의 실행 주체는 원격 서버(200)로, 나머지 기능 모듈의 실행 주체는 인터랙션 로봇(100) 및 원격 서버(200) 둘 다로 설정할 수 있다.For example, the
다른 예로, 프로세서(170)는, 하드웨어 성능을 나타내는 제1 성능값을 통신부(110)를 통해 원격 서버(200)로 전달하고, 원격 서버(200)는 전술된 방식으로 각 기능 모듈의 실행 주체를 설정한 결과로서 작업 할당 테이블을 작성한 다음, 작업 할당 테이블을 인터랙션 로봇(100)에 전달할 수 있다.As another example, the
물론, 복수의 기능 모듈 중 인터랙션 로봇(100)의 스토리지(121)에 설치되지 않은 적어도 하나의 기능 모듈의 실행 주체는 무조건 원격 서버(200)로 지정된다.Of course, the execution subject of at least one function module that is not installed in the
도 4은 본 발명의 일 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 4의 방법은, 작업 할당 모듈을 이용한 작업 할당 프로세스에 관한 것으로서, 프로세서(170)에 의해 작업 할당 모듈이 실행되는 중에 주기적 또는 비주기적으로 반복 실시될 수 있다. 참고로, 프로세서(170)는, 인터랙션 로봇(100)이 전원이 켜진 시점부터 전원이 꺼지는 시점까지의 기간에 걸쳐 작업 할당 모듈을 실행할 수 있다.4 is a flowchart for exemplarily explaining a control method of the
도 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
단계 S420에서, 프로세서(170)는, 입출력 인터페이스(130)를 통해 입력 데이터를 획득한다. 입력 데이터는 입력부(140)로부터 제공되는 것이거나, 복수의 기능 모듈 중 적어도 하나의 실행 결과를 나타내는 출력 데이터일 수 있다. 즉, 어느 한 기능 모듈의 출력 데이터는 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.In step S420 , the
단계 S430에서, 프로세서(170)는, 복수의 기능 모듈 중에서 단계 S420에서 획득된 입력 데이터의 처리에 필요한 기능 모듈을 선택한다. 상세하게는, 입력 데이터의 데이터 유형(예, 사운드, 텍스트, 비전, 터치 등)에 따라, 각각의 데이터 유형에 연관된 적어도 하나의 기능 모듈이 선택될 수 있다. 일 예로, 입력 데이터가 마이크에서 취득된 사운드 데이터인 경우, 복수의 기능 모듈 중에서 사운드 데이터를 처리 가능한 사운드 인식 모듈이 선택된다. 사운드 인식 모듈은, 실행 시, STT(Speech to Text) 알고리즘을 사운드 데이터에 적용하여 사운드 데이터에 대응하는 텍스트 데이터를 생성하는 모듈이다.In step S430 , the
다른 예로, 입력 데이터가 사운드 인식 모듈에서 출력된 텍스트 데이터인 경우, 복수의 기능 모듈 중에서 텍스트 데이터를 처리 가능한 음성 생성 모듈이 선택된다. 음성 생성 모듈은, 음성 합성 프로그램 및 대화 생성 프로그램을 포함할 수 있다. 음성 합성 프로그램의 실행 시, 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
단계 S450에서, 프로세서(170)는, 원격 서버(200) 및 인터랙션 로봇(100)이 둘 다 단계 S430에서 선택된 기능 모듈에 맵핑되어 있는지 여부를 판정한다. 예를 들어, S430에서 제j 기능 모듈이 선택된 경우, 단계 S450의 값은 "예"이다. 단계 S450의 값이 "아니오"인 것은, 단계 S430에서 선택된 기능 모듈에 단일 실행 주체(즉, 원격 서버(200) 및 인터랙션 로봇(100) 중 어느 하나만)가 맵핑되어 있음을 의미한다.In step S450, the
단계 S460에서, 프로세서(170)는, 단일 실행 주체에게 단계 S430에서 선택된 기능 모듈의 실행 작업을 할당한다. 일 예로, 프로세서(170)는, 인터랙션 로봇(100)만이 실행 주체로 맵핑되어 있는 경우, 자신이 직접 단계 S430에서 선택된 기능 모듈을 실행한다. 다른 예로, 프로세서(170)는, 원격 서버(200)만이 실행 주체로 맵핑되어 있는 경우, 통신부(110)를 통해 원격 서버(200)에게, 단계 S430에서 선택된 기능 모듈의 실행 작업이 원격 서버(200)에 할당되었음을 통지한다.In step S460, the
단계 S470에서, 프로세서(170)는, 입력 데이터의 데이터량 및 네트워크 정보 중 적어도 하나를 기초로, 단계 S430에서 선택된 기능 모듈의 실행 작업을 인터랙션 로봇(100)에게만 할당 가능한지 여부를 판정한다. 구체적으로, 입력 데이터의 데이터량이 클수록 그리고 네트워크 정보의 통신 속도가 빠를수록 인터랙션 로봇(100)과 원격 서버(200) 간의 협업성이 높아진다고 할 것이므로, 입력 데이터의 데이터량 및 네트워크 정보의 통신 속도의 가중합이 소정의 기준값 미만인 경우에는 단계 S430에서 선택된 기능 모듈의 실행 작업을 인터랙션 로봇(100)에게만 할당 가능한 것으로 판정하고, 그 외에는 인터랙션 로봇(100)에게만 할당 불가한 것으로 판정할 수 있다.In step S470 , the
단계 S480에서, 프로세서(170)는, 단계 S430에서 선택된 기능 모듈의 실행 작업을 원격 서버(200) 및 인터랙션 로봇(100)에 분배할 수 있다. 일 예로, 프로세서(170)는, 입력 데이터로서의 비전 데이터의 데이터량, 및 원격 서버(200)와 인터랙션 로봇(100) 간의 통신 속도의 가중합이 기준값 이상인 경우, 비전 데이터를 제1 서브 비전 데이터 및 제2 서브 비전 데이터로 분할한 다음, 제1 서브 비전 데이터의 처리를 위한 객체 인식 모듈의 실행 작업을 원격 서버(200)에게 할당하고, 제2 서브 비전 데이터의 처리를 위한 객체 인식 모듈의 실행 작업은 인터랙션 로봇(100)에게 할당할 수 있다. 이때, 제1 서브 비전 데이터의 데이터량과 제2 서브 비전 데이터의 데이터량의 총합은 비전 데이터의 데이터량과 동일하며, 제1 서브 비전 데이터와 제2 서브 비전 데이터 각각의 데이터량은 상기 가중합과 기준값 간의 차이나 비율 등에 따라 결정될 수 있다.In step S480 , the
한편, 도 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
도 5는 본 발명의 제2 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 5의 방법은, 도 4에서 선택된 기능 모듈이 사운드 인식 모듈인 경우, 원격 서버(200)와 인터랙션 로봇(100)의 협업을 통해 사운드 데이터를 처리하는 과정을 예시한다.5 is a flowchart for exemplarily explaining a control method of the
도 1 내지 도 5를 참조하면, 단계 S510에서, 프로세서(170)는, 사운드 데이터를 제1 서브 사운드 데이터와 제2 서브 사운드 데이터로 분할한다.1 to 5 , in step S510 , the
단계 S520에서, 프로세서(170)는, 사운드 인식 모듈을 실행하여, 제1 서브 사운드 데이터에 대응하는 제1 서브 텍스트 데이터를 생성한다.In step S520, the
단계 S530에서, 프로세서(170)는, 제2 서브 사운드 데이터에 대한 사운드 인식 모듈의 실행 작업을 원격 서버(200)에게 할당한다. 이때, 프로세서(170)는, 사운드 데이터가 압축된 사운드 파일을 원격 서버(200)에게 전달할 수 있다. 원격 서버(200)는, 사운드 파일을 압축 해제하여 제2 서브 사운드 데이터를 복원한 다음 단계 S530에서 할당된 실행 작업에 따라, 원격 서버(200)에 저장된 사운드 인식 모듈을 실행하여, 제2 서브 사운드 데이터에 대응하는 제2 서브 텍스트 데이터를 생성한다.In step S530 , the
단계 S540에서, 프로세서(170)는, 제2 서브 사운드 데이터에 대응하는 제2 서브 텍스트 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다.In step S540 , the
단계 S550에서, 프로세서(170)는, 단계 S530에서 생성된 제1 서브 텍스트 데이터와 단계 S540에서 수집된 제2 서브 텍스트 데이터를 취합(결합, 합성)하여, 사운드 데이터에 대응하는 텍스트 데이터를 생성한다.In step S550, the
단계 S550에서 생성된 텍스트 데이터는, 출력부(150)의 디스플레이부 등을 통해 시각적 피드백으로서 사용자에게 제공되거나, 음성 생성 모듈 등 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.The text data generated in step S550 may be provided to the user as visual feedback through the display unit of the
한편, 사운드 데이터의 경우에는 그 미소한 변화만으로도 언어적 요소들(볼륨, 어조, 감정 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
도 6는 본 발명의 제3 실시예에 따른 인터랙션 로봇(100)의 제어 방법을 예시적으로 설명하기 위한 순서도이다. 도 6의 방법은, 도 4에서 선택된 기능 모듈이 음성 생성 모듈인 경우, 원격 서버(200)와 인터랙션 로봇(100)의 협업을 통해 입력 데이터를 처리하는 과정을 예시한다. 6 is a flowchart for exemplarily explaining a control method of the
도 1 내지 도 4 및 도 6를 참조하면, 단계 S610에서, 프로세서(170)는, 텍스트 데이터를 제1 서브 텍스트 데이터와 제2 서브 텍스트 데이터로 분할한다.1 to 4 and 6 , in step S610 , the
단계 S620에서, 프로세서(170)는, 음성 생성 모듈을 실행하여, 제1 서브 텍스트 데이터에 대응하는 제1 서브 음성 데이터를 획득한다. In step S620, the
상세하게는, 음성 생성 모듈이 동일 입력에 대해 동일 출력을 생성하는 고정형 모듈인 경우, 프로세서(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
대안적으로, 음성 생성 모듈이 인공지능 기반의 학습 모델이 임베디드되어 동일 입력에 대해 비동일 출력을 생성하는 능동형 모듈인 경우, 프로세서(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
단계 S630에서, 프로세서(170)는, 제2 서브 텍스트 데이터에 대한 음성 생성 모듈의 실행 작업을 원격 서버(200)에게 할당한다. 즉, 제2 서브 텍스트 데이터는 통신부(110)를 통해 원격 서버(200)에 업로드되고, 원격 서버(200)는 음성 생성 모듈을 실행하여 업로드된 제2 서브 텍스트 데이터를 처리한다. 이때, 프로세서(170)는, 텍스트 데이터가 압축된 텍스트 파일을 원격 서버(200)에게 전달할 수 있다. 원격 서버(200)는, 텍스트 파일을 압축 해제하여 제2 서브 텍스트 데이터를 복원한 다음 단계 S630에서 할당된 실행 작업에 따라, 원격 서버(200)에 저장된 음성 생성 모듈을 실행하여, 제2 서브 텍스트 데이터에 대응하는 제2 서브 음성 데이터를 생성한다.In step S630 , the
단계 S640에서, 프로세서(170)는, 제2 서브 텍스트 데이터에 대응하는 제2 서브 음성 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다. 제2 서브 음성 데이터는 원본(raw) 형태나 압축 파일의 형태로 원격 서버(200)로부터 다운로드될 수 있다. 이때, 프로세서(170)는, 복수(예, 2~4개)의 파이프라인을 병렬적으로 이용하여 통신부(110)를 통해 원격 서버(200)로부터 제2 서브 음성 데이터를 다운로드함으로써, 제1 서브 음성 데이터의 생성 진행 상황에 맞춰 제2 서브 음성 데이터의 수집 속도를 증감시킬 수 있으며, 이에 따라 제1 서브 음성 데이터의 생성 완료와 제2 서브 음성 데이터의 다운로드 완료 간의 시간차를 최소화할 수 있다.In step S640 , the
단계 S650에서, 프로세서(170)는, 단계 S630에서 생성된 제1 서브 음성 데이터와 단계 S640에서 수집된 제2 서브 음성 데이터를 취합하여, 텍스트 데이터에 대응하는 음성 데이터를 생성한다. In step S650, the
단계 S650에서 생성된 텍스트 데이터는, 출력부(150)의 스피커 등을 통해 청각적 피드백으로서 사용자에게 제공되거나, 다른 기능 모듈의 입력 데이터로서 제공될 수 있다.The text data generated in step S650 may be provided to the user as auditory feedback through a speaker of the
한편, 프로세서(170)는, 소정의 리프레시 조건을 이용하여, 메모리(122)의 데이터 섹션별로 저장된 캐시 데이터를 리프레시할 수 있다. 케시 데이터는, 전술된 캐싱을 통해 메모리(122)의 특정 데이터 섹션에 저장되는 데이터를 지칭한다. 소정의 리프레시 조건은, 데이터 섹션별 캐시 데이터의 캐싱 항목들(예, 호출 횟수, 마지막 호출 시각 등) 및 메모리(122)의 잔여 용량(예, 빈 데이터 섹션의 개수나 저장 공간)에 기초할 수 있다. 또한, 프로세서(170)는, 음성 생성 모듈을 구성하는 명령어, 코드 및 데이터 중 적어도 일부가 변경(업데이트)되는 경우, 음성 생성 모듈의 작업 결과물으로서 메모리(122)에 저장된 캐시 데이터를 제거함으로써, 음성 생성 모듈의 변경에 대해 동적으로 대응할 수 있다.Meanwhile, the
도 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
도 1 내지 도 4 및 도 7를 참조하면, 단계 S710에서, 프로세서(170)는, 비전 데이터를 제1 서브 비전 데이터와 제2 서브 비전 데이터로 분할한다.1 to 4 and 7 , in step S710 , the
단계 S720에서, 프로세서(170)는, 객체 인식 모듈을 실행하여, 제1 서브 비전 데이터에 대응하는 제1 객체 인식 데이터를 생성한다. 즉, 제1 서브 비전 데이터는 객체 인식 모듈에 의해 분석됨으로써, 제1 서브 비전 데이터에 포함된 인물, 사물, 마커, 제스쳐, 상황 등을 기술하는 객체 정보를 기술하는 제1 객체 인식 데이터가 생성된다. 도 6를 참조하여 전술된 바와는 달리, 주변의 시각적 환경이 미소하게 변경되더라도 비전 데이터에 기술되는 객체적 요소들(등)이 상당히 달라질 수 있으므로, 프로세서(170)는 후술될 음성 생성 모듈에서와는 달리, 제1 서브 비전 데이터의 처리를 통해 얻어지는 제1 객체 인식 데이터에 대한 캐싱은 미수행할 수 있다.In step S720 , the
단계 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
단계 S740에서, 프로세서(170)는, 제2 서브 비전 데이터에 대응하는 제2 객체 인식 데이터를 통신부(110)를 통해 원격 서버(200)로부터 수집한다. 제2 객체 인식 데이터는 원본(raw) 형태나 압축 파일의 형태로 수집될 수 있다. 이때, 프로세서(170)는, 복수(예, 2~4개)의 파이프라인을 병렬적으로 이용하여 통신부(110)를 통해 원격 서버(200)로부터 제2 객체 인식 데이터를 다운로드함으로써, 제1 객체 인식 데이터의 생성 진행 상황에 맞춰 제2 객체 인식 데이터의 수집 속도를 증감시킬 수 있으며, 이에 따라 제1 객체 인식 데이터의 생성 완료와 제2 객체 인식 데이터의 다운로드 완료 간의 시간차를 최소화할 수 있다.In operation S740 , the
단계 S750에서, 프로세서(170)는, 단계 S730에서 생성된 제1 객체 인식 데이터와 단계 S740에서 수집된 제2 객체 인식 데이터를 취합하여, 비전 데이터에 대응하는 음성 데이터를 생성한다. In operation S750, the
단계 S750에서 생성된 비전 데이터는, 출력부(150)의 스피커 등을 통해 청각적 피드백으로서 사용자에게 제공되거나, 다른 기능 모듈(예, 객체 인식 모듈)의 입력 데이터로서 제공될 수 있다.The vision data generated in step S750 may be provided to the user as auditory feedback through a speaker of the
한편, 원격 서버(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
본 발명은 상술한 특정의 실시예 및 응용예에 한정되지 아니하며, 청구범위에서 청구하는 본 발명의 요지를 벗어남이 없이 당해 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 다양한 변형실시가 가능한 것은 물론이고, 이러한 변형실시들은 본 발명의 기술적 사상이나 전망으로부터 구별되어 이해되어서는 안 될 것이다.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.
상기 프로세서는,
상기 입력 데이터가 사운드 데이터인 경우, 상기 복수의 기능 모듈 중 하나인 사운드 인식 모듈을 선택하고,
상기 사운드 인식 모듈의 실행 작업이 상기 원격 서버에게 할당 시, 상기 사운드 데이터가 압축된 사운드 파일을 상기 통신부를 통해 상기 원격 서버에게 전송하는, 인터랙션 로봇.
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.
상기 프로세서는,
소정의 리프레시 조건을 이용하여, 상기 메모리의 데이터 섹션별로 저장된 캐시 데이터를 리프레시하는, 인터랙션 로봇.
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.
상기 프로세서는,
상기 비전 데이터의 데이터량, 및 상기 네트워크 정보에 포함된 상기 원격 서버와 상기 인터랙션 로봇 간의 통신 속도를 기초로, 상기 제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.
상기 프로세서는,
빅 코어, 및 상기 빅 코어보다 저성능인 리틀 코어 중 어느 하나를 포함하는 싱글 코어 프로세서 또는 상기 빅 코어 및 상기 리틀 코어를 둘 다 포함하는 멀티 코어 프로세서이고,
상기 작업 할당 테이블에서 상기 인터랙션 로봇만이 상기 선택된 기능 모듈의 실행 주체로서 매핑되어 있는 경우, 상기 빅 코어 및 상기 리틀 코어 중 적어도 하나는 상기 선택된 기능 모듈을 실행하여 상기 입력 데이터를 처리하는, 인터랙션 로봇.
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 .
상기 원격 서버;
를 포함하는, 로봇 운영 시스템.
The interaction robot according to any one of claims 1 and 3 to 8; and
the remote server;
comprising, a robot operating system.
상기 프로세서의 하드웨어 성능 및 상기 복수의 기능 모듈의 모듈 정보를 포함하는 맵핑 요청을 상기 통신부를 통해 상기 원격 서버에게 전송하는 단계;
상기 복수의 기능 모듈 각각에 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나를 당해 기능 모듈의 실행 주체로서 맵핑하는 작업 할당 테이블 - 상기 작업 할당 테이블은 상기 맵핑 요청에 대한 응답으로서 상기 원격 서버로부터 전송된 것임 - 을 획득하는 단계;
상기 입력 데이터를 획득하는 단계;
상기 입력 데이터를 기초로, 상기 복수의 기능 모듈 중에서 상기 입력 데이터의 처리에 필요한 기능 모듈을 선택하는 단계; 및
상기 작업 할당 테이블에서 상기 선택된 기능 모듈의 실행 주체로서 상기 원격 서버 및 상기 인터랙션 로봇 둘 다 매핑되어 있는 경우, 상기 입력 데이터의 데이터량 및 상기 네트워크 정보 중 적어도 하나를 기초로, 상기 원격 서버 및 상기 인터랙션 로봇 중 적어도 하나에게 상기 선택된 기능 모듈의 실행 작업을 할당하는 단계;
를 포함하는 것을 특징으로 하는, 인터랙션 로봇의 제어 방법.
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.
A computer program stored in a medium to execute the control method of the interaction robot according to claim 10.
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)
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)
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 |
-
2022
- 2022-03-21 KR KR1020220034795A patent/KR102432361B1/en active IP Right Grant
Patent Citations (6)
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)
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] |