KR102144891B1 - Humanoid robot developmnet framework system - Google Patents
Humanoid robot developmnet framework system Download PDFInfo
- Publication number
- KR102144891B1 KR102144891B1 KR1020180125870A KR20180125870A KR102144891B1 KR 102144891 B1 KR102144891 B1 KR 102144891B1 KR 1020180125870 A KR1020180125870 A KR 1020180125870A KR 20180125870 A KR20180125870 A KR 20180125870A KR 102144891 B1 KR102144891 B1 KR 102144891B1
- Authority
- KR
- South Korea
- Prior art keywords
- robot
- display device
- control module
- tablet
- application
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/16—Sound input; Sound output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B25—HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
- B25J—MANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
- B25J11/00—Manipulators not otherwise provided for
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Robotics (AREA)
- Mechanical Engineering (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템은, 로봇 운영체제(Operating System, OS)와 연결 가능하고, 상기 로봇 운영체제에 의해 제공되는 기능을 로봇에서 구현되도록 상기 기능을 재정의하며, 상기 재정의된 기능을 이용하여 상기 로봇을 제어하는 로봇 제어 모듈, 상기 로봇과 연결된 디스플레이 장치를 통한 사용자 인터페이스를 제어하는 디스플레이 장치 제어 모듈 및 상기 로봇 또는 상기 디스플레이 장치가 감지한 이벤트에 따라 실행되는 어플리케이션을 제어하는 통합 제어 모듈을 포함한다.The robot development framework system according to an embodiment of the present invention can be connected to a robot operating system (OS), redefine the function so that the function provided by the robot operating system is implemented in the robot, and the redefined A robot control module that controls the robot using a function, a display device control module that controls a user interface through a display device connected to the robot, and an integration that controls an application executed according to an event detected by the robot or the display device. Includes a control module.
Description
본 발명은 휴머노이드 로봇 개발 프레임워크 시스템에 관한 것으로, 보다 자세하게는 휴머노이드 로봇의 비즈니스 로직 및 로봇이 포함하는 태블릿을 통한 사용자 인터랙션을 제어하고, 휴머노이드 어플리케이션 개발에 필요한 프레임워크를 제공할 수 있는 개발 프레임워크 시스템에 관한 것이다.The present invention relates to a humanoid robot development framework system, and in more detail, a development framework capable of controlling the business logic of a humanoid robot and user interaction through a tablet included in the robot, and providing a framework required for humanoid application development. It's about the system.
최근 4차 산업혁명과 함께 노동을 보조하거나 혹은 커뮤니케이션이 가능한 휴머노이드 로봇에 대한 관심이 대두되고 있으며, 여러 가지 형태의 휴머노이드 로봇이 출시되고 있다. 아울러, 인간과의 원활한 의사 소통을 위해 태블릿(tablet)을 장착한 휴머노이드 로봇이 개발되어 왔으며, 태블릿을 통해 로봇의 조작, 이동 등의 물리적인 기능 외에도 정보 획득, 인간과의 대화 등 지능적인 기능까지 수행할 수 있다. Along with the 4th Industrial Revolution, interest in humanoid robots that can assist labor or communicate with each other is emerging, and various types of humanoid robots are being released. In addition, humanoid robots equipped with a tablet have been developed for smooth communication with humans.In addition to physical functions such as manipulation and movement of the robot through the tablet, intelligent functions such as information acquisition and dialogue with humans have also been developed. Can be done.
이러한 로봇의 기술 개발을 위해, 개발자들은 어플리케이션을 자유롭게 개발할 수 있도록 로봇 운영체제(Operating System, OS)를 오픈 소스로 공개하고 있다.For the technology development of such a robot, developers are releasing a robot operating system (OS) as open source so that they can freely develop applications.
그러나, 태블릿을 포함하는 휴머노이드 로봇의 경우, 태블릿 내 화면을 구성을 위한 개발방법론이 정의 되어 있지 않을 뿐만 아니라, 태블릿을 통한 사용자 인터랙션과 로봇 모션의 개발이 개별적으로 이루어져, 휴머노이드 로봇과 사용자 간의 자연스러운 인터랙션을 구성하기 쉽지 않다는 문제점이 있다.However, in the case of a humanoid robot including a tablet, a development methodology for configuring the screen in the tablet is not defined, and user interaction through the tablet and the development of the robot motion are made separately, so that natural interaction between the humanoid robot and the user. There is a problem that it is not easy to configure.
또한, 휴머노이드 로봇에 대한 통합된 개발 방식이 없기 때문에, 개발자마다 각기 다른 형태로 프로그래밍되어 타인이 작성한 소스를 살펴볼 때에도 프로그래밍 소스를 파악하기 어려우며, 프로그래밍 소스를 파악하더라도 태블릿을 통한 비즈니스 로직(어플리케이션)과 로봇의 제어부가 혼재되어 있어, 이를 통한 개발이 쉽지 않다는 문제점이 있다. In addition, since there is no integrated development method for humanoid robots, it is difficult to grasp the programming source even when it is programmed in different forms for each developer, and even when looking at the source created by others. There is a problem that development through this is not easy because the control unit of the robot is mixed.
뿐만 아니라, 일부 휴머노이드 로봇의 경우, 하드웨어가 재가동되는 시점에서 적재되어 있던 로그도 함께 사라져, 어떠한 에러로 인해 재가동되었는지, 동일한 현상이 반복되더라도 원인에 대해 확인이 어려운 문제점이 있다.In addition, in the case of some humanoid robots, the log that was loaded at the time when the hardware is restarted disappears together, and there is a problem in which it is difficult to determine the cause of the restart due to any error and even if the same phenomenon is repeated.
따라서, 로봇과의 직접적인 인터랙션과 로봇이 가지는 태블릿을 통한 인터랙션 모두를 포괄할 수 있는 소프트웨어 프레임워크의 개발이 요구되며, 본 발명은 이에 관한 것이다.Accordingly, it is required to develop a software framework that can encompass both direct interaction with the robot and interaction through a tablet of the robot, and the present invention relates to this.
본 발명이 해결하고자 하는 기술적 과제는 로봇과 로봇이 포함하는 디스플레이 장치와의 자연스러운 인터랙션을 위해 로봇과 디스플레이 장치를 포괄하여 개발하고 제어할 수 있는 프레임워크를 제공하는 것을 목적으로 한다.An object of the present invention is to provide a framework for developing and controlling a robot and a display device for natural interaction between a robot and a display device included in the robot.
본 발명이 해결하고자 하는 또 다른 기술적 과제는 로봇의 운영체제와 응용 어플리케이션을 개발할 수 있는 독립적인 프레임워크를 제공하는 것을 목적으로 한다.Another technical problem to be solved by the present invention is to provide an independent framework for developing an operating system and application application of a robot.
본 발명의 기술적 과제들은 이상에서 언급한 기술적 과제들로 제한되지 않으며, 언급되지 않은 또 다른 기술적 과제들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해될 수 있을 것이다.The technical problems of the present invention are not limited to the technical problems mentioned above, and other technical problems that are not mentioned will be clearly understood by those skilled in the art from the following description.
본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템은, 로봇 운영체제(Operating System, OS)와 연결 가능하고, 상기 로봇 운영체제에 의해 제공되는 기능을 로봇에서 구현되도록 상기 기능을 재정의하며, 상기 재정의된 기능을 이용하여 상기 로봇을 제어하는 로봇 제어 모듈, 상기 로봇과 연결된 디스플레이 장치를 통한 사용자 인터페이스를 제어하는 디스플레이 장치 제어 모듈 및 상기 로봇 또는 상기 디스플레이 장치가 감지한 이벤트에 따라 실행되는 어플리케이션을 제어하는 통합 제어 모듈을 포함한다.The robot development framework system according to an embodiment of the present invention can be connected to a robot operating system (OS), redefine the function so that the function provided by the robot operating system is implemented in the robot, and the redefined A robot control module that controls the robot using a function, a display device control module that controls a user interface through a display device connected to the robot, and an integration that controls an application executed according to an event detected by the robot or the display device. Includes a control module.
일 실시예에 따르면, 상기 통합 제어 모듈은, 상기 로봇 또는 상기 디스플레이 장치에서 실행 가능한 어플리케이션을 개발할 수 있는 어플리케이션 개발 환경을 제공할 수 있다.According to an embodiment, the integrated control module may provide an application development environment capable of developing an application executable in the robot or the display device.
일 실시예에 따르면, 상기 로봇 제어 모듈은, 상기 로봇 또는 상기 디스플레이 장치와의 세션 연결을 관리하는 세션 연결부를 더 포함할 수 있다.According to an embodiment, the robot control module may further include a session connection unit that manages a session connection with the robot or the display device.
일 실시예에 따르면, 상기 디스플레이 장치 제어 모듈은, 상기 디스플레이 장치에 표시되는 적어도 두 개 이상의 선택 영역을 그루핑(grouping)하고, 그루핑 결과에 따라 상기 선택 영역의 활성 상태를 제어하는 버튼 제어부를 더 포함할 수 있다.According to an embodiment, the display device control module further includes a button controller configured to group at least two or more selection regions displayed on the display device and control an active state of the selection region according to a grouping result. can do.
일 실시예에 따르면, 상기 디스플레이 장치 제어 모듈은, 상기 디스플레이 장치를 통한 사용자 입력 신호을 감지하고, 상기 사용자 입력 신호와 대응되는 이벤트에 따라 상기 디스플레이 장치의 동작을 제어하는 동작 제어부를 더 포함할 수 있다. According to an embodiment, the display device control module may further include an operation controller configured to detect a user input signal through the display device and control an operation of the display device according to an event corresponding to the user input signal. .
일 실시예에 따르면, 상기 디스플레이 장치 제어 모듈은, 상기 디스플레이 장치로부터 출력되는 사운드를 제어하는 사운드 제어부를 더 포함할 수 있다.According to an embodiment, the display device control module may further include a sound control unit that controls sound output from the display device.
일 실시예에 따르면, 상기 통합 제어 모듈은, 개발 중인 적어도 하나 이상의 어플리케이션을 분류하고 관리하는 어플리케이션 제어부를 더 포함할 수 있다.According to an embodiment, the integrated control module may further include an application control unit for classifying and managing at least one application under development.
일 실시예에 따르면, 상기 어플리케이션 제어부는, 상기 개발 중인 어플리케이션에 따라 상기 디스플레이 장치에 표시되는 화면의 전환할 수 있다.According to an embodiment, the application controller may switch a screen displayed on the display device according to the application under development.
일 실시예에 따르면, 상기 세션 연결부의 세션 연결 여부에 따라, 로컬 모드 또는 운영 모드 중 하나의 모드를 실행하는 개발 환경 관리부를 더 포함할 수 있다.According to an embodiment, depending on whether the session connection unit is connected to a session, it may further include a development environment management unit that executes one of a local mode or an operation mode.
일 실시예에 따르면, 상기 통합 제어 모듈은, 개발된 어플리케이션의 해상도를 상기 디스플레이 장치의 해상도로 변환하는 해상도 변환부를 더 포함할 수 있다.According to an embodiment, the integrated control module may further include a resolution converter configured to convert the resolution of the developed application into the resolution of the display device.
일 실시예에 따르면, 상기 통합 제어 모듈은, 상기 디스플레이 장치에 표시되는 이미지를 미리 로딩하고, 상기 이미지의 사이즈에 따라 상기 이미지를 페이드인(fade-in) 또는 페이드아웃(fade-out) 방식으로 상기 디스플레이 장치에 표시하는 이미지 로딩부를 더 포함할 수 있다.According to an embodiment, the integrated control module preloads an image displayed on the display device, and the image is fade-in or fade-out according to the size of the image. An image loading unit to be displayed on the display device may be further included.
일 실시예에 따르면, 상기 통합 제어 모듈은, 상기 로봇 또는 상기 디스플레이 장치와의 세션 연결에 따라 발생하는 로그를 주기적으로 기록하는 로그 기록부를 더 포함할 수 있다.According to an embodiment, the integrated control module may further include a log recording unit that periodically records a log generated according to a session connection with the robot or the display device.
본 발명의 또 다른 실시예에 따른 로봇 제어 방법은, 로봇 또는 디스플레이 장치에 설치된 어플리케이션의 실행에 따라 상기 어플리케이션 내에 포함된 이미지를 로딩하는 단계, 상기 로딩된 이미지를 이용하여 제1화면을 상기 디스플레이 장치에 표시하는 단계 및 상기 어플리케이션과 연계된 비즈니스 로직(Business logic)을 기초로 상기 로봇 또는 상기 디스플레이 장치가 동작하는 단계를 포함한다.A method of controlling a robot according to another embodiment of the present invention includes loading an image included in the application according to the execution of an application installed on the robot or a display device, and displaying a first screen using the loaded image. And operating the robot or the display device based on business logic associated with the application.
일 실시예에 따르면, 상기 이미지를 로딩하는 단계는, 상기 이미지를 로딩하는 단계는, 상기 어플리케이션의 실행에 따라 상기 로봇과 세션을 연결하는 단계 및 상기 어플리케이션의 로그를 주기적으로 저장하는 단계를 더 포함할 수 있다.According to an embodiment, the loading of the image further comprises: connecting the robot and the session according to the execution of the application, and periodically storing the log of the application. can do.
일 실시예에 따르면, 상기 세션을 연결하는 단계 이후에, 상기 로봇 또는 상기 디스플레이 장치와 사용자 간의 인터랙션이 종료되면, 상기 디스플레이 장치로 제2 화면을 표시하는 단계를 더 포함할 수 있다.According to an embodiment, after the step of connecting the session, when the interaction between the robot or the display device and the user is ended, displaying a second screen on the display device may be further included.
본 발명의 또 다른 실시예에 따르면, 로봇 제어 방법을 컴퓨터에서 실행시키기 위하여 매체에 저장된 컴퓨터 프로그램을 포함한다.According to another embodiment of the present invention, a computer program stored in a medium is included to execute a method of controlling a robot in a computer.
본 발명에 의하면, 로컬 개발 환경과 운영 환경을 구분 관리하여 로컬 서버에서 라이브러리를 이용하여 소프트웨어 개발 및 디버깅을 할 수 있다는 효과가 있다.According to the present invention, there is an effect that software development and debugging can be performed using a library in a local server by separately managing a local development environment and an operating environment.
또한, 로봇 및 로봇이 포함하는 디스플레이 장치에 설치 가능한 응용 어플리케이션을 개발하는 과정에서 공통되는 기능을 제공하여 중복되는 요소를 제거할 수 있으며, 공통되는 기능을 모듈화하여 추후 다른 어플리케이션을 개발하는 과정에서 재사용할 수 있다는 효과가 있다.In addition, by providing a common function in the process of developing application applications that can be installed on the robot and the display device included in the robot, redundant elements can be eliminated, and common functions are modularized and reused in the process of developing other applications in the future. There is an effect that you can do it.
또한, 분리되어 있는 로봇 운영체제와 디스플레이 장치의 운영체제를 통합하여, 디스플레이 장치 내 화면 구성과 로봇의 모션을 자연스럽게 연결할 수 있다는 효과가 있다. In addition, by integrating the separate robot operating system and the operating system of the display device, there is an effect that the screen composition in the display device and the motion of the robot can be naturally connected.
본 발명의 효과들은 이상에서 언급한 효과들로 제한되지 않으며, 언급되지 않은 또 다른 효과들은 아래의 기재로부터 통상의 기술자에게 명확하게 이해 될 수 있을 것이다.The effects of the present invention are not limited to the effects mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the following description.
도 1은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 포함하는 전체 구성을 간략하게 나타낸 도면이다.
도 2는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 포함하는 전체 구성을 기능을 기준으로 나타낸 도면이다.
도 3은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 구성 요소들을 기준으로 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템의 구성을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 디스플레이 장치 모듈의 기능을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 통합 제어 모듈의 기능을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 이용하여 로봇을 제어하는 방법의 흐름을 나타낸 순서도이다.
도 8 및 도 9는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 이용한 로봇 및 디스플레이 장치의 비즈니스 로직을 나타낸 순서도이다.1 is a view schematically showing the overall configuration including a robot development framework system according to an embodiment of the present invention.
2 is a view showing an overall configuration including a robot development framework system according to an embodiment of the present invention based on functions.
3 is a diagram illustrating a robot development framework system according to an embodiment of the present invention based on components.
4 is a diagram showing the configuration of a robot development framework system according to an embodiment of the present invention.
5 is a diagram for explaining a function of a display device module according to an embodiment of the present invention.
6 is a view for explaining the function of the integrated control module according to an embodiment of the present invention.
7 is a flow chart showing a flow of a method of controlling a robot using a robot development framework system according to an embodiment of the present invention.
8 and 9 are flowcharts illustrating business logic of a robot and a display device using a robot development framework system according to an embodiment of the present invention.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시 예를 상세히 설명한다. 본 발명의 이점 및 특징, 그리고 그것들을 달성하는 방법은 첨부되는 도면과 함께 상세하게 후술되어 있는 실시 예들을 참조하면 명확해질 것이다. 그러나 본 발명은 이하에서 게시되는 실시예에 한정되는 것이 아니라 서로 다른 다양한 형태로 구현될 수 있으며, 단지 본 실시 예들은 본 발명의 게시가 완전하도록 하고, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 발명의 범주를 완전하게 알려주기 위해 제공되는 것이며, 본 발명은 청구항의 범주에 의해 정의될 뿐이다. 명세서 전체에 걸쳐 동일 참조 부호는 동일 구성 요소를 지칭한다.Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings. Advantages and features of the present invention, and a method of achieving them will be apparent with reference to the embodiments described below in detail together with the accompanying drawings. However, the present invention is not limited to the embodiments to be posted below, but may be implemented in various different forms, and only these embodiments make the posting of the present invention complete, and common knowledge in the technical field to which the present invention pertains. It is provided to fully inform the scope of the invention to those who have it, and the invention is only defined by the scope of the claims. The same reference numerals refer to the same elements throughout the specification.
다른 정의가 없다면, 본 명세서에서 사용되는 모든 용어(기술 및 과학적 용어를 포함)는 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자에게 공통적으로 이해될 수 있는 의미로 사용될 수 있을 것이다. 또 일반적으로 사용되는 사전에 정의되어 있는 용어들은 명백하게 특별히 정의되어 있지 않는 한 이상적으로 또는 과도하게 해석되지 않는다. 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다.Unless otherwise defined, all terms (including technical and scientific terms) used in the present specification may be used with meanings that can be commonly understood by those of ordinary skill in the art to which the present invention belongs. In addition, terms defined in commonly used dictionaries are not interpreted ideally or excessively unless explicitly specifically defined. The terms used in this specification are for describing exemplary embodiments and are not intended to limit the present invention. In this specification, the singular form also includes the plural form unless otherwise specified in the phrase.
본 명세서에서 사용되는 "포함한다 (comprises)" 및/또는 "포함하는 (comprising)"은 언급된 구성 요소, 단계, 동작 및/또는 소자는 하나 이상의 다른 구성 요소, 단계, 동작 및/또는 소자의 존재 또는 추가를 배제하지 않는다.As used herein, "comprises" and/or "comprising" refers to the recited component, step, operation, and/or element, of one or more other elements, steps, operations, and/or elements. It does not exclude presence or addition.
도 1은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 포함하는 전체 구성을 간략하게 나타낸 도면이다.1 is a diagram schematically showing the overall configuration including a robot
도 1을 참조하면, 본 발명의 로봇 개발 프레임워크 시스템(100, 개발 프레임워크)이 운영되는 전체 시스템은, 개발 프레임워크 시스템(100), 태블릿(200) 및 로봇(300)으로 구성됨을 확인할 수 있다.Referring to FIG. 1, it can be seen that the entire system in which the robot development framework system 100 (development framework) of the present invention is operated is composed of a
일반적으로, 태블릿(200)을 포함하는 로봇(300)의 어플리케이션 개발은 태블릿(200)과 로봇(300)을 별도의 구성으로 인식하고 각기 다르게 개발되어 왔다. 그에 따라, 태블릿(200)을 통한 사용자 인터랙션 수신 시, 로봇(300)의 움직임이 자연스럽게 연결되지 않으며, 이러한 동작 과정들에 대한 정의도 개발자마다 서로 달라 개발 과정에서 혼선을 주게 된다. In general, application development of the
그에 따라, 개발 프레임워크(100)는 태블릿(200) 및 로봇(300)를 통합하여 개발할 수 있는 개발 환경을 개발자에게 제공하며, 개발자는 개발 프레임워크(100)를 이용하여 로봇(300)의 동작과 태블릿(200)을 통한 사용자 인터랙션이 자연스럽게 연결 및 제어되도록 어플리케이션을 개발할 수 있다.Accordingly, the
태블릿(200)은 사용자의 터치 입력을 인식할 수 있는 디스플레이 장치로서, 터치 패널을 포함할 수 있다. 또한, 태블릿(200)는 사용자의 터치뿐만 아니라 스타일러스(stylus)와 같은 전자 펜에 의한 입력을 인식할 수도 있는 등, 태블릿(200) 내 영상을 표시하는 영역에서 발생하는 다양한 입력을 인식할 수 있는 센싱 수단들을 포함할 수 있다. 한편, 태블릿(200)외에도 로봇(300)에 장착될 수 있는 다양한 디스플레이 장치들이 대체될 수 있다. The
로봇(300)은 바람직하게는 사람과 유사한 모습과 기능을 사람과 유사한 모습과 기능을 가진 기계 장치를 의미하며, 사람과 같이 물체를 인식하고, 사람과 같이 두 팔과 두 다리, 머리를 포함하여 움직일 수 있는 지능형 기계 장치일 수 있다.The
또한, 로봇(300)은 로봇(300)의 전면에 물리적으로 연결되어 있는 태블릿(200)을 구비하여, 태블릿(200)을 통해 사용자와 로봇(300) 간의 소통을 할 수 있다.In addition, the
도 2는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템을 포함하는 전체 구성을 기능을 기준으로 나타낸 도면이다.2 is a view showing an overall configuration including a robot development framework system according to an embodiment of the present invention based on functions.
도 2를 참조하면, 먼저, 어플리케이션(1, Application)은 사용자가 사용하는 프로그램으로써, 태블릿(200)를 포함하는 로봇(300)을 통해 수행할 수 있는 다양한 종류의 프로그램일 수 있다.Referring to FIG. 2, first, the
예를 들어, 사용자는 태블릿(200)를 터치하거나 로봇(300)과 대화하여, 게임, 음악 등의 엔터테인먼트(Entertainment), 단어 학습 등의 교육(Education), 지도 안내 가이드(Guide) 및 예약 확인 등의 리셉션(Reception)과 같은 다양한 종류의 어플리케이션(1, Application)을 이용할 수 있다. For example, the user touches the
다음으로, 개발 프레임워크(100)는 개발자가 어플리케이션(1)을 개발할 수 있는 개발 환경을 제공하는 모듈로서, 태블릿(200) 및 로봇(300)에서 수행 가능한 다양한 기능들을 통합 제어할 수 있다. Next, the
예를 들어, 개발자는 개발 프레임워크(100)를 통해 태블릿(200)에 출력되는 사용자 인터페이스(User Interface, UI)의 구성, 버튼 선택 및 화면 전환 등을 정의할 수 있으며, 사용자 입력에 따른 로봇(300)의 이벤트(움직임, 대화)를 정의할 수 있다.For example, the developer can define the configuration of a user interface (UI) output to the
다음으로, 로봇 APIs(2, Application Programming Interface)는 로봇(300)을 사용할 수 있도록 만들어진 인터페이스로, 기능으로서, 개발자는 로봇 APIs(2)를 통해 로봇(300) 또는 로봇(300)이 포함하는 태블릿(200)가 수행할 수 있는 다양한 기능들에 대한 API를 제공받아 이를 재정의하거나 제어할 수 있다.Next, the robot APIs (2, Application Programming Interface) is an interface made to use the
예를 들어, 로봇 APIs(2)는 로봇(300)의 모션(Motion)을 제어하기 위한 인터페이스, 태블릿(Tablet)과 같은 태블릿(200)를 제어하기 위한 인터페이스, 로봇(300) 터치(Touch) 또는 카메라를 통한 로봇(300)의 비전(Vision)을 인식하고 그에 따른 이벤트를 제어하기 위한 인터페이스 등을 포함할 수 있다.For example, the robot APIs (2) is an interface for controlling the motion of the
마지막으로, 로봇 하드웨어(3)는 로봇(300)의 물리적인 동작을 구동하는 장치로, 개발 프레임워크(100) 내의 정의에 따라 사용자가 어플리케이션(1)을 이용하게 되면, 로봇(300)이 그에 대응되는 동작을 수행할 수 있다.Finally, the
예를 들어, 로봇 하드웨어(3)를 구성하는 요소는 로봇(300)의 동작에 따른 알림을 사용자에게 표시할 수 있는 LED 조명, 로봇(300)의 이동을 구현할 수 있는 액츄에이터(Actuator), 사용자의 얼굴 또는 전방의 장애물을 인식할 수 있는 카메라(Camera), 사용자와 대화하거나 정보를 제공할 수 있는 스피커(Speaker) 등을 포함할 수 있다. For example, elements constituting the
이와 같이, 로봇(300) 및 로봇(300)이 포함하는 태블릿(200)에서 수행 가능한 어플리케이션을 개발하기 위한 환경이, 개발 프레임워크(100)를 통해 제작된 어플리케이션(1) 및 로봇 APIs(2)으로 분리되어 있고, 개발 프레임워크(100) 내에서 태블릿(200)와 로봇(300)의 기능을 정의할 수 있기 때문에, 개발자는 보다 편리하게 어플리케이션을 개발할 수 있다.In this way, the environment for developing an application that can be executed on the
도 3은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 구성 요소들을 기준으로 나타낸 도면으로, 도 3을 참조하면, 개발 프레임워크(100)는 로봇 제어 모듈(10), 디스플레이 장치 제어 모듈(20) 및 통합 제어 모듈(30)을 포함함을 확인할 수 있으며, 본 발명의 목적을 달성하기 위한 부가적인 구성을 더 포함할 수 있다.3 is a diagram showing a robot
도 3을 참조하면, 로봇 제어 모듈(10)은 로봇 운영체제(OS)로부터 로봇(300)의 움직임, 대화, 데이터 저장 등에 대한 기능을 수행할 수 있는 API를 제공받고 이를 개발 프레임워크(100)의 개발 환경에 맞게 재정의할 수 있으며, 이를 위해 로봇 운영체제(OS)와 세션을 연결할 수 있다. Referring to FIG. 3, the
이와 같이, 로봇 제어 모듈(10)은 재정의된 기능을 통해 로봇(200)이 수행할 수 있는 다양한 기능과 서비스를 정의할 수 있다. 예를 들어, 로봇 제어 모듈(10)은 로봇(300)과 통신하기 위한 통신 기능(connect), 로봇(300) 주변의 사운드를 인식하는 기능(audio)을 재정의하거나 로봇(300)의 메모리에 저장된 정보를 불러올 수 있으며(memory), 사용자에게 제공하는 정보 또는 사용자 질문에 따른 대답을 출력할 수 있는 스피커의 출력이나 TTS(Text-to-Speech) 기능을 제어할 수 있다.In this way, the
디스플레이 장치 제어 모듈(20)은 로봇(300)에 장착된 태블릿(200) 내에서 수행되는 다양한 기능들을 정의하고, 태블릿(200)를 통한 사용자 인터페이스를 제어할 수 있다. 보다 구체적으로, 디스플레이 장치 제어 모듈(20)은 태블릿(200)에 출력되는 사용자 선택 영역(UI 선택 버튼)을 제어할 수 있다. 예를 들어, 디스플레이 장치 제어 모듈(20)은 사용자 입력에 대응되는 적어도 하나 이상의 기능을 제어하거나(function, event), 태블릿(200)에 출력되는 사용자 선택 영역을 그룹화하고(group), 그룹화된 선택 영역의 활성화 상태를 제어할 수 있으며(status, reset), 사용자의 태블릿(200) 터치에 따른 사운드가 출력되도록 제어할 수 있다(sound). The display
통합 제어 모듈(30)은 태블릿(200) 또는 로봇(300)이 감지한 이벤트에 따라 실행되는 어플리케이션을 제어하고, 태블릿(200) 또는 로봇(300)에서 실행 가능한 어플리케이션을 개발할 수 있는, 어플리케이션 개발 환경을 제공할 수 있다. 예를 들어, 통합 제어 모듈(30)은 개발자가 개발 중인 여러 가지의 어플리케이션을 구분할 수 있으며(앱컨트롤러), 사용자 입력에 따라 태블릿(200)에 출력되는 화면을 전환시킬 수 있으며(화면전환), 출력 가능한 이미지를 미리 로딩하여 화면 전환을 보조할 수 있다(프리로딩). 또한, 각각의 어플리케이션을 개발하는 개발 환경을 구분시키고(개발환경구분), 개발 중인 어플리케이션의 해상도를 태블릿(200)의 해상도에 맞게 조절하고(동적 UI), 개발 중인 어플리케이션에 대한 로그, 로그 레벨(log, warn, error)를 비휘발성 메모리에 주기적으로 기록하여(logging) 개발자의 개발 편의를 도모할 수 있다.The
지금까지 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 포함하는 전체 구성에 대하여 설명하였으며, 이하에서는 태블릿(200)와 로봇(300)에서 수행 가능한 어플리케이션을 효율적으로 개발하기 위해 개발 프레임워크(100) 내에서 정의하고 제어할 수 있는 구성 요소들에 대하여 설명하도록 한다.So far, the entire configuration including the robot
도 4는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)의 구성을 나타낸 도면이다.4 is a diagram showing the configuration of a robot
도 4를 참조하면, 로봇 제어 모듈(10)은 세션 연결부(11), 오디오 입출력부(12), 메모리부(13) 및 TTS부(14)를 포함할 수 있으며, 기타 로봇(300)의 동작을 정의하거나 제어하기 위한 부가적인 구성을 더 포함할 수 있다.4, the
세션 연결부(11)는 로봇(300) 또는 태블릿(200)와의 세션 연결을 관리할 수 있다. 예를 들어, 소정 시간 동안 사용자의 입력 신호를 수신하지 않았던 태블릿(200)가 사용자의 클릭을 감지하는 경우, 태블릿(200) 또는 로봇(300)과의 세션 연결을 수행하여, 개발을 위한 API를 제공받거나, 사용자 입력 신호에 따른 제어 정보를 제공받을 수 있다.The session connector 11 may manage a session connection with the
오디오 입출력부(12)는 세션 연결부(11)를 통해 세션이 연결된 로봇(300), 보다 구체적으로는 로봇 운영체제(OS)로부터 로봇(300)의 오디오 기능을 활용할 수 있는 API를 제공받아 이를 재정의할 수 있다.The audio input/
또한, 메모리부(13)도 로봇 운영체제(OS)로부터 로봇(300) 내 저장된 다양한 정보(예. 식별 번호, 구성 요소, 이동 시간, 이동 거리, 배터리 등)을 활용할 수 있는 API를 제공 받아 이를 재정의할 수 있으며, 이는 로봇(300)이 이전에 이동한 공간을 이동하거나 물품을 탐색하는 등 다양한 이벤트를 수행하는 과정에서 활용될 수 있다.In addition, the
TTS부(14)는 로봇(300)이 기 저장된 텍스트를 오디오로 출력하도록 제어할 수 있다. 예를 들어, TTS부(14)는 사용자의 질문에 대한 답변이나 로봇(300)의 현재 동작, 상태에 대한 텍스트 정보를 음성으로 출력하도록 제어할 수 있다. The
다음으로, 디스플레이 장치 제어 모듈(20)은 버튼 제어부(21), 동작 제어부(22) 및 사운드 제어부(23)를 포함할 수 있으며, 기타 태블릿(200) 내 설치된 어플리케이션의 동작 과정을 정의하거나 제어하기 위한 부가적인 구성을 더 포함할 수 있다.Next, the display
버튼 제어부(21)는 태블릿(200)에 표시되는 적어도 두 개 이상의 선택 영역을 그루핑(grouping)하고, 그루핑 결과에 따라 태블릿(200) 내 화면 선택 영역의 활성 상태를 제어할 수 있다. 보다 구체적으로, 버튼 제어부(21)는 태블릿(200)의 화면에 표시된 각각의 선택 버튼들을 특성 별로 그룹화할 수 있으며, 그에 따라 각각의 선택 버튼들을 활성화/비활성화 처리할 수 있다. The
예를 들어, 사용자와 태블릿(200) 간의 인터랙션 과정에서 "길 안내를 시작하겠습니까"에 대한 사용자 응답을 수신하기 위해 태블릿(200)에 "예(Yes), 아니요(No)"와 같은 선택 버튼이 출력될 수 있으며, 버튼 제어부(21)는 "예(Yes), 아니요(No)" 2개의 선택 버튼이 동시에 클릭될 수 없도록 정의할 수 있다. 이와 반대로, 사용자가 여러 가지 조건을 만족하는 물건 또는 음식점에 대한 정보를 얻고자 하는 경우, 태블릿(200)에 복수 개의 선택 버튼이 출력될 수 있으며, 버튼 제어부(21)는 복수 개의 선택 버튼 중에서 두 개 이상의 선택 버튼을 클릭할 수 있도록 정의할 수도 있다.For example, in the process of interaction between the user and the
한편, 버튼 제어부(21)는 현재 태블릿(200)에 출력된 선택 버튼들이 사용 가능한지 확인할 수 있도록 제어하는 버튼 상태 확인부(21a)와 선택 버튼들의 활성화/비활성화 상태를 초기화할 수 있도록 제어하는 버튼 리셋부(21b)를 더 포함할 수 있다. 예를 들어, 버튼 상태 확인부(21a)는 사용자에 의해 선택 버튼이 클릭되었는지 확인하고, 클릭된 선택 버튼을 활성화하도록 정의할 수 있으며, 버튼 리셋부(21b)는 태블릿(200)에 사용자의 입력 신호가 소정 시간 동안 감지되지 않는 경우, 전체 선택 버튼을 활성화하도록 정의할 수 있다.On the other hand, the
동작 제어부(22)는 태블릿(200)를 통한 사용자 입력 신호를 감지하고, 사용자 입력 신호와 대응되는 이벤트에 따라, 디스플레이 장치의 동작을 제어할 수 있으며, 로봇(300) 또는 태블릿(200)가 수행하는 기능에 따라 다기능 제어부(22a)와 이벤트 제어부(22b)를 포함할 수 있다. 보다 구체적으로, 다기능 제어부(22a)는 로봇(300)과 태블릿(200)가 동시에 동작하도록 제어할 수 있으며, 이벤트 제어부(22b)는 로봇(300) 또는 태블릿(200) 중 하나의 장치가 동작하도록 제어할 수 있다. The
도 5는 본 발명의 일 실시예에 따른 디스플레이 장치 제어 모듈(20)의 기능을 설명하기 위한 도면으로, 도 5를 참조하면, 사용자가 태블릿(200)를 통해 선택 버튼을 클릭하고, 예를 들어 선택 버튼이 사용자에게 음성 및 텍스트로 정보를 제공하는 기능일 때, 다기능 제어부(22a)는 태블릿(200)에서는 화면을 전환하여 텍스트 정보를 출력하고, 로봇(300)에서는 음성으로 정보를 제공하도록 정의할 수 있다. 이와 반대로, 선택 버튼이 사용자의 다음 선택을 필요로 하는 단계로 넘어가는 것을 의미하는 경우, 이벤트 제어부(22b)는 태블릿(200)가 화면을 전환할 수 있도록 제어할 수 있다.5 is a view for explaining the function of the display
다시 도 4를 참조하면, 사운드 제어부(23)는 태블릿(200)로부터 출력되는 사운드를 제어할 수 있다. 예를 들어, 사운드 제어부(23)는 사용자가 선택 버튼을 클릭함에 따라 사용자에게 클릭되었음을 알릴 수 있는 사운드 효과가 출력되도록 정의할 수 있으며, 선택 버튼의 이미지에 따라 다양한 사운드 효과(예. 물방울 버튼 선택 - 물방울 떨어지는 소리)가 출력될 수 있도록 정의할 수 있다. Referring back to FIG. 4, the
마지막으로, 통합 제어 모듈(30)은 어플리케이션 제어부(31), 개발 환경 관리부(32), 해상도 변환부(33), 이미지 로딩부(34) 및 로그 기록부(35)를 포함할 수 있으며, 기타 어플리케이션을 개발하기 위한 부가적인 구성을 더 포함할 수 있다.Finally, the
아울러, 도 6은 본 발명의 일 실시예에 따른 통합 제어 모듈(30)의 기능을 설명하기 위한 도면으로, 도 4 및 도 6을 참조하면, 개발 프레임워크(100)는 태블릿(200) 또는 로봇(300)이 감지한 이벤트를 확인하고(예. 태블릿(200) 클릭, 로봇(300) 인터랙션), 이벤트에 따른 태블릿(200) 또는 로봇(300)의 기능을 통합 제어할 수 있다. In addition, FIG. 6 is a view for explaining the function of the
보다 구체적으로, 개발 프레임워크(200)를 통해 개발자가 적어도 하나 이상의 어플리케이션을 개발할 수 있는 바, 어플리케이션 제어부(31)는 각각의 어플리케이션을 분류하고 관리할 수 있다. 또한, 어플리케이션은 적어도 하나 이상의 화면으로 구성될 수 있기 때문에, 어플리케이션 제어부(31)는 태블릿(200)에 표시되는 화면이 개발 환경에 따라 전환될 수 있도록 정의할 수 있다(도 6의 "화면 전환" 참조). More specifically, a developer can develop at least one or more applications through the
개발 환경 관리부(32)는 세션 연결부(11)를 통한 태블릿(200) 또는 로봇(300)과의 세션 연결에 따라 개발자의 개발 환경 모드를 구분할 수 있다. 보다 구체적으로, 개발 환경 관리부(32)는 세션 연결을 하지 않은 로컬 개발 환경 모드와 세션 연결한 운영 환경 모드를 포함할 수 있다. The development
로컬 개발 환경 모드는 개발 프레임워크(100)가 로봇 운영체제(OS)와 접속하지 않고 온전히 개발 프레임워크(100) 내 라이브러리만으로 어플리케이션의 개발을 수행하는 모드이며, 운영 환경 모드는 로봇 운영체제(OS)와 접속하여 어플리케이션이 구동하는 과정에서 발생하는 에러 로그를 인식할 수 있는 디버깅용 로그를 태블릿(200)에 출력할 수 있는 모드이다. 이와 같이, 개발 환경 관리부(32)가 각각의 환경을 구분함에 따라, 개발자는 어플리케이션 개발을 용이하게 할 수 있다.The local development environment mode is a mode in which the
또한, 개발 환경 관리부(32)는 로그 및 로그 레벨들을 태블릿(200)의 화면에 출력할 수 있는 시간을 설정하여 개발 프레임워크(100)를 통한 운영이 올바르게 되고 있는 지 확인할 수 있다. In addition, the development
해상도 변환부(33)는 개발된 어플리케이션의 해상도를 태블릿(200)의 해상도로 변환할 수 있다(도 6의 "동적 UI" 참조). 보다 구체적으로, 로봇 운영체제(OS)의 버전(Version)에 따라 이와 연결된 태블릿(200)의 해상도가 다르기 때문에, 해상도 변환부(33)를 통해 개발된 어플리케이션의 해상도를 현재 세션 연결된 로봇 운영체제(OS)의 버전에 맞게 변환할 수 있다. 예를 들어, 로봇 운영체제(OS)의 버전이 1.7일 때, 태블릿(200)의 해상도가 1280*900, 로봇 운영체제(OS)의 버전이 1.8일 때, 태블릿(200)의 해상도가 800*600이고, 개발자가 1.7 버전에 맞는 1280*900 화면 사이즈의 어플리케이션을 개발하고 있다면, 해상도 변환부(33)가 1280*900 화면 사이즈를 800*600으로 변환하여, 태블릿(200)에서 해당 어플리케이션이 호환될 수 있도록 제어할 수 있다.The resolution conversion unit 33 may convert the resolution of the developed application to the resolution of the tablet 200 (see “Dynamic UI” in FIG. 6 ). More specifically, since the resolution of the
이미지 로딩부(34)는 태블릿(200)에 표시될 예정인 다양한 사이즈의 이미지를 미리 로딩하고, 이미지의 사이즈에 따라 태블릿(200)에 출력되는 방식을 정의할 수 있다(도 6의 "프리로딩" 참조). 여기서 이미지는 개발된 어플리케이션에서 사용자가 태블릿(200)를 통해 육안으로 볼 수 있는 UI들을 의미할 수 있다.The image loading unit 34 may preload images of various sizes to be displayed on the
보다 구체적으로, 이미지의 사이즈가 큰 경우, 다음 화면으로 전환되기 위한 소정의 시간이 소요되기 때문에, 이미지 로딩부(34)는 이미지를 미리 로딩하여 이미지 사이즈가 큰 화면으로 전환될 때, 이를 페이드인(fade-in) 또는 페이드아웃(fade-out) 방식으로 태블릿(200)에 표시할 수 있으며, 그에 따라 태블릿(200)가 사용자 터치에 따른 화면 전환을 즉각 수행할 수 있도록 정의할 수 있다.More specifically, when the size of the image is large, it takes a predetermined time to switch to the next screen, so the image loading unit 34 preloads the image and fades in when the image is converted to a screen with a larger image size. It can be displayed on the
로그 기록부(35)는 태블릿(200) 또는 로봇(300)과의 세션 연결에 따라 발생하는 로그를 주기적으로 기록할 수 있다(도 6의 "로깅" 참조). 개발 프레임워크(100)와 로봇(300)이 연결되고 어플리케이션이 구동되는 과정에서 로그 레벨 별로 로그가 기록되지만, 로봇(300)의 전원이 꺼지는 경우 기록되었던 모든 로그가 함께 사라지게 된다. 특히, 로봇(300)이 어떠한 에러에 의하여 종료되는 경우, 발생했던 에러를 확인하기 어렵기 때문에, 로그 기록부(35)가 주기적으로 로그를 비휘발성 기록매체에 기록하도록 정의하여 로봇(300)을 재 시작하였을 때 로그를 확인할 수 있도록 제어할 수 있다.The log recording unit 35 may periodically record a log generated according to a session connection with the
지금까지 본 발명의 일 실시예에 따른 개발 프레임워크(100)를 기능 별로 구분한 구성 요소들에 대하여 설명하였다. 본 발명에 따르면, 어플리케이션을 개발하는 과정에서 태블릿(200)와 로봇(300)에서 수행할 수 있는 기능을 모듈화하여 추후 다른 어플리케이션을 개발하는 과정에서 본 발명의 개발 프레임워크(100)를 재사용할 수 있다는 효과가 있다 So far, the
이하에서는 개발 프레임워크(100)를 통해 정의한 태블릿(200) 및 이를 포함하는 로봇(300)의 제어 방법에 대하여 설명하도록 한다.Hereinafter, a control method of the
도 7은 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 이용하여 로봇(300)을 제어하는 방법의 흐름을 나타낸 순서도이다.7 is a flowchart showing a flow of a method of controlling the
도 7을 참조하면, 사용자가 태블릿(200)를 통해 선택 버튼을 터치(예. 클릭, 슬라이드)하게 되면, 사용자 입력 신호가 개발 프레임워크(100)의 디스플레이 장치 제어 모듈(20)로 전달된다(S101). Referring to FIG. 7, when a user touches (eg, clicks, slides) a selection button through the
디스플레이 장치 제어 모듈(20)은 사용자의 입력 신호를 확인하고(S102), 사용자 입력 신호와 대응되는 이벤트를 식별한다. 예를 들어, 디스플레이 장치 제어 모듈(20)은 해당 입력 신호가 디스플레이 장치(20)의 화면을 전환하는 것인지, 로봇(300)의 움직임, 발화를 필요로 하는 것인지 식별할 수 있다.The display
디스플레이 장치 제어 모듈(20)에 의한 이벤트 식별이 완료되면, 로봇 운영체제(0S)와 세션을 연결한다(S103). 이는 사용자의 입력 신호가 로봇(300)의 움직임을 필요로 하는 경우나, 태블릿(200)를 통한 로봇(300)의 구동이 처음으로 개시되었을 때 수행될 수 있다. When the event identification by the display
개발 프레임워크(100)에 의해 개발된 어플리케이션은 로봇 운영체제(0S)로 사용자 입력 신호를 의미하는 이벤트를 송신하고(S104), 로봇 운영체제(0S)으로부터 해당 이벤트에 대응되는 로봇(300) 또는 태블릿(200)의 제어 정보를 수신한다(S105). 예를 들어, 로봇 운영체제(OS)는 사용자가 태블릿(200) 내 어떠한 버튼을 왼쪽으로 슬라이드 하는 이벤트(사용자 입력 신호)를 감지하면, 태블릿(200) 내 화면이 이전 화면으로 돌아간다는 제어 정보를 가질 수 있다. 즉, 사용자 입력 신호를 의미하는 이벤트를 송신함으로써, 로봇(300) 또는 태블릿(200)가 기본적으로 어떠한 방식으로 동작 또는 제어 되었는지 확인할 수 있다.The application developed by the
사용자 입력 신호에 따른 기본적인 동작 또는 제어 방식이 확인되면, 확인된 방식에서 개발자들이 개발한 비즈니스 로직(logic)이 추가되고(S106), 그에 따라 로봇(300)이 실행되거나 태블릿(200)의 화면이 전환된다(S107). 예를 들어, 사용자가 태블릿(200) 내 어떠한 버튼을 왼쪽으로 슬라이드 한 경우, 태블릿(200)가 이전 화면으로 전환될 뿐만 아니라, 로봇(300)이 왼쪽 팔을 들어올리는 것과 같은 움직임을 구현할 수 있다. 즉, 로봇(300)이 이동하는 비즈니스 로직이 추가될 수 있으며, 이외에도 로봇(300)이 텍스트를 음성으로 출력하거나, 태블릿(200)의 화면 구성이 추가되는 등 다양한 비즈니스 로직이 추가될 수 있다. When the basic operation or control method according to the user input signal is confirmed, the business logic developed by the developers in the confirmed method is added (S106), and the
한편, 앞서 설명한 흐름도는 개발 프레임워크(100)를 통해 개발된 어플리케이션에 따라 로봇(300) 또는 태블릿(200)가 동작되는 과정이며, 이하에서는 이러한 어플리케이션을 개발하기 위해 정의된 개발 프레임워크(100)의 환경에 대하여 설명하도록 한다.Meanwhile, the flowchart described above is a process in which the
도 8 및 도 9는 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 이용한 로봇(300) 및 태블릿(200)의 비즈니스 로직을 나타낸 순서도이다.8 and 9 are flowcharts illustrating business logic of the
먼저 도 8을 참조하면, 사용자가 태블릿(200)를 통해 터치를 하거나, 로봇(300)에게 대화를 시도하는 등의 어플리케이션 시작 신호를 제공하면, 해당 어플리케이션이 처음 실행되는 것인지 확인한다.First, referring to FIG. 8, when a user touches through the
그에 따라, 해당 어플리케이션이 처음 실행되는 경우 어플리케이션에 포함된 적어도 하나 이상의 이미지를 미리 로딩하고, 로봇 운영체제(OS)와 세션을 연결한다. Accordingly, when the corresponding application is executed for the first time, at least one image included in the application is preloaded, and the robot operating system (OS) and the session are connected.
이 후, 어플리케이션 시작에 따라 태블릿(200)의 화면 전환이 수행되며, 개발자가 개발한 어플리케이션 비즈니스 로직에 따라 태블릿(200)와 로봇(300)이 동작한다. 예를 들어, 태블릿(200)에 사용자가 클릭할 수 있는 첫 번째 제1 화면이 표시될 수 있으며, 이와 동시에 로봇(300)이 특정 지점으로 이동하거나, 로봇(300)의 LED 조명이 반짝일 수 있으며, 텍스트를 음성으로 발화할 수 있다.Thereafter, screen switching of the
한편, 이러한 동작의 종료도 비즈니스 로직에 정의되어 있을 수 있다. 예를 들어, 화면 표시는, 사용자의 버튼 클릭을 감지하거나, 소정시간 동안 사용자의 버튼 클릭을 감지하지 못한 경우에 비즈니스 로직의 종료로 판단할 수 있으며, 로봇(300)의 모션은, 정의된 모션이 완료되는 경우 비즈니스 로직의 종료로 판단할 수 있으며, 음성발화는, 기 저장된 텍스트를 모두 발화하거나, 사용자의 음성이 일정 시간 동안 감지되지 않은 경우 비즈니스 로직의 종료로 판단할 수 있다.Meanwhile, the termination of such an operation may also be defined in the business logic. For example, the screen display can be determined as the end of business logic when a user's button click is detected, or when a user's button click is not detected for a predetermined period of time, and the motion of the
비즈니스 로직에 따른 태블릿(200) 또는 로봇(300)의 동작이 종료되면, 사용자와의 다음 인터랙션을 위한 이벤트를 발생시킬 수 있다. 예를 들어, 로봇(300)이 이동하여 사용자를 특정 위치로의 안내를 수행한 후, 사용자에게 추가로 질문 사항이 있는 지에 대한 선택 버튼을 태블릿(200)에 띄우는 이벤트(다음 제2 화면 표시) 등, 어플리케이션 동작에 맞는 다양한 이벤트가 진행될 수 있다.When the operation of the
다음으로, 도 9를 참조하면, 디스플레이 장치 제어 모듈(20)를 통해 수행되었던 선택 영역 처리 과정이 다음과 같이 정의될 수 있다. Next, referring to FIG. 9, a process of processing a selection area performed by the display
사용자의 버튼 선택과 관련하여, 사용자가 태블릿(200)의 선택 영역 터치하면, 선택 영역에 대응되는 사운드 효과가 발생한다. 이와 동시에, 선택 영역에 대응되는 기능이 태블릿(200)의 화면 전환을 의미하여, 화면이 전환된 경우, 각각의 선택 영역의 활성화/비활성화 여부에 따라 선택된 버튼이 태블릿(200)에 표시된다. 또한, 선택 영역에 대응되는 기능이 처리된 이 후, 리셋 버튼을 통해, 이전에 터치되었던 선택 영역들이 다시 활성화 상태로 변경된다.Regarding the user's button selection, when the user touches the selection area of the
또한, 사용자가 태블릿(200)의 선택 영역 중 하나의 선택 영역을 터치하면, 나머지 터치 영역들, 버튼들이 선택되지 않도록 제어된다.In addition, when the user touches one of the selection areas of the
또한, 어플리케이션의 로그 처리와 관련하여, 어플리케이션이 처음 시작된 경우, 로깅 스크립트(logging script)이 실행되어 어플리케이션 진행에 따른 로그 레벨이 지속적으로 기록될 수 있으며, 어플리케이션이 재시작된 경우에도 스크립트 실행 여부를 확인하고, 주기적으로 로그 파일을 별도로 저장할 수 있다.In addition, regarding the log processing of the application, when the application is first started, a logging script is executed so that the log level according to the application progress can be continuously recorded, and even when the application is restarted, the script execution is checked. And, you can save a separate log file periodically.
지금까지 본 발명의 일 실시예에 따른 로봇 개발 프레임워크 시스템(100)을 이용한 로봇(300) 및 태블릿(200)의 비즈니스 로직에 대하여 설명하였다. 본 발명에 따르면, 어플리케이션과 로봇 운영체제(OS)과 분리되며, 독립적으로 응용 어플리케이션을 개발할 수 있는 개발 프레임워크(100)를 모듈화하여, 추후에 다른 어플리케이션을 개발하는 과정에서도 본 발명의 개발 프레임워크(100)이 용이하게 활용될 수 있다.So far, the business logic of the
한편, 본 발명은 또한 컴퓨터로 읽을 수 있는 기록 매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록 매체는 마그네틱 저장 매체, 광학적 판독 매체 등 모든 저장매체를 포함한다. 또한, 본 발명에서 사용되는 메시지의 데이터 포맷을 기록 매체에 기록하는 것이 가능하다.Meanwhile, the present invention can also be implemented as a computer-readable code on a computer-readable recording medium. Computer-readable recording media include all storage media such as magnetic storage media and optical reading media. It is also possible to record the data format of the message used in the present invention on a recording medium.
이상 첨부된 도면을 참조하여 본 발명의 실시 예들을 설명하였지만, 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 그 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시 예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다.Although the embodiments of the present invention have been described with reference to the accompanying drawings, those of ordinary skill in the art to which the present invention pertains can be implemented in other specific forms without changing the technical spirit or essential features. You can understand. Therefore, it should be understood that the embodiments described above are illustrative and non-limiting in all respects.
100: 로봇 개발 프레임워크 시스템
10: 로봇 제어 모듈
11: 세션 연결부 12: 오디오 입출력부
13: 메모리부 14: TTS 부
20: 디스플레이 장치 제어 모듈
21: 버튼 제어부
21a: 버튼 상태 확인부 21b: 버튼 리셋부
22: 동작 제어부
22a: 다기능 제어부 22b: 이벤트 제어부
23: 사운드 제어부
30: 통합 제어 모듈
31: 어플리케이션 제어부 32: 개발 환경 관리부
33: 해상도 변환부 34: 이미지 로딩부
35: 로그 기록부
200: 디스플레이 장치
300: 로봇100: Robot Development Framework System
10: robot control module
11: Session connection 12: Audio input/output
13: memory unit 14: TTS unit
20: display device control module
21: button control
21a: button
22: motion control unit
22a:
23: sound control unit
30: integrated control module
31: application control unit 32: development environment management unit
33: resolution conversion unit 34: image loading unit
35: log register
200: display device
300: robot
Claims (16)
상기 로봇과 연결된 디스플레이 장치를 통한 사용자 인터페이스를 제어하는 디스플레이 장치 제어 모듈; 및
상기 로봇 또는 상기 디스플레이 장치가 감지한 이벤트에 따라 실행되는 어플리케이션을 제어하는 통합 제어 모듈;
을 포함하는 로봇 개발 프레임워크 시스템.A robot control module connectable to a robot operating system (OS), redefining the function so that a function provided by the robot operating system is implemented in the robot, and controlling the robot using the redefined function;
A display device control module for controlling a user interface through a display device connected to the robot; And
An integrated control module for controlling an application executed according to an event detected by the robot or the display device;
Robot development framework system comprising a.
상기 통합 제어 모듈은,
상기 로봇 또는 상기 디스플레이 장치에서 실행 가능한 어플리케이션을 개발할 수 있는 어플리케이션 개발 환경을 제공하는, 로봇 개발 프레임워크 시스템.The method of claim 1,
The integrated control module,
A robot development framework system that provides an application development environment capable of developing an application executable on the robot or the display device.
상기 로봇 제어 모듈은,
상기 로봇 또는 상기 디스플레이 장치와의 세션 연결을 관리하는 세션 연결부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 1,
The robot control module,
A session connection unit for managing a session connection with the robot or the display device;
Robot development framework system comprising a.
상기 디스플레이 장치 제어 모듈은,
상기 디스플레이 장치에 표시되는 적어도 두 개 이상의 선택 영역을 그루핑(grouping)하고, 그루핑 결과에 따라 상기 선택 영역의 활성 상태를 제어하는 버튼 제어부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 1,
The display device control module,
A button controller configured to group at least two or more selection regions displayed on the display device and control an active state of the selection region according to a grouping result;
Robot development framework system comprising a.
상기 디스플레이 장치 제어 모듈은,
상기 디스플레이 장치를 통한 사용자 입력 신호을 감지하고, 상기 사용자 입력 신호와 대응되는 이벤트에 따라 상기 디스플레이 장치의 동작을 제어하는 동작 제어부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 1,
The display device control module,
An operation controller configured to detect a user input signal through the display device and control an operation of the display device according to an event corresponding to the user input signal;
Robot development framework system comprising a.
상기 디스플레이 장치 제어 모듈은,
상기 디스플레이 장치로부터 출력되는 사운드를 제어하는 사운드 제어부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 1,
The display device control module,
A sound control unit controlling sound output from the display device;
Robot development framework system comprising a.
상기 통합 제어 모듈은,
개발 중인 적어도 하나 이상의 어플리케이션을 분류하고 관리하는 어플리케이션 제어부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 1,
The integrated control module,
An application control unit for classifying and managing at least one application under development;
Robot development framework system comprising a.
상기 어플리케이션 제어부는,
상기 개발 중인 어플리케이션에 따라 상기 디스플레이 장치에 표시되는 화면을 전환하는, 로봇 개발 프레임워크 시스템.The method of claim 7,
The application control unit,
A robot development framework system for switching a screen displayed on the display device according to the application under development.
상기 통합 제어 모듈은,
상기 세션 연결부의 세션 연결 여부에 따라, 로컬 모드 또는 운영 모드 중 하나의 모드를 실행하는 개발 환경 관리부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 3,
The integrated control module,
A development environment management unit executing one of a local mode or an operation mode according to whether the session connection unit is connected to a session;
Robot development framework system comprising a.
상기 통합 제어 모듈은,
개발된 어플리케이션의 해상도를 상기 디스플레이 장치의 해상도로 변환하는 해상도 변환부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 2,
The integrated control module,
A resolution conversion unit converting the resolution of the developed application into the resolution of the display device;
Robot development framework system comprising a.
상기 통합 제어 모듈은,
상기 디스플레이 장치에 표시되는 이미지를 미리 로딩하고, 상기 이미지의 사이즈에 따라 상기 이미지를 페이드인(fade-in) 또는 페이드아웃(fade-out) 방식으로 상기 디스플레이 장치에 표시하는 이미지 로딩부;
를 포함하는 로봇 개발 프레임워크 시스템.The method of claim 2,
The integrated control module,
An image loading unit that preloads an image displayed on the display device and displays the image on the display device in a fade-in or fade-out manner according to the size of the image;
Robot development framework system comprising a.
상기 통합 제어 모듈은,
상기 로봇 또는 상기 디스플레이 장치와의 세션 연결에 따라 발생하는 로그를 주기적으로 기록하는 로그 기록부;
를 포함하는 로봇 개발 프레임워크 시스템.
The method of claim 2,
The integrated control module,
A log recording unit that periodically records a log generated according to a session connection with the robot or the display device;
Robot development framework system comprising a.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180125870A KR102144891B1 (en) | 2018-10-22 | 2018-10-22 | Humanoid robot developmnet framework system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020180125870A KR102144891B1 (en) | 2018-10-22 | 2018-10-22 | Humanoid robot developmnet framework system |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20200045168A KR20200045168A (en) | 2020-05-04 |
KR102144891B1 true KR102144891B1 (en) | 2020-08-14 |
Family
ID=70732819
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020180125870A KR102144891B1 (en) | 2018-10-22 | 2018-10-22 | Humanoid robot developmnet framework system |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102144891B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013168188A (en) * | 2013-06-04 | 2013-08-29 | Denso Wave Inc | Robot control log acquiring system |
KR101758698B1 (en) * | 2010-09-14 | 2017-07-18 | 대우조선해양 주식회사 | Robot system with robot controller combined with teach pedant |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100094009A (en) * | 2009-02-18 | 2010-08-26 | (주)시뮬레이션연구소 | Integrated robot software platform with framework module |
KR20110065183A (en) * | 2009-12-09 | 2011-06-15 | 삼성중공업 주식회사 | Method and apparatus for controlling robot system |
KR101197245B1 (en) | 2010-09-03 | 2012-11-05 | 한국과학기술연구원 | Framework system for controlling robot motion and control method using the same |
KR101344727B1 (en) * | 2012-03-02 | 2014-01-16 | 주식회사 유진로봇 | Apparatus and method for controlling intelligent robot |
KR102332752B1 (en) * | 2014-11-24 | 2021-11-30 | 삼성전자주식회사 | Map service providing apparatus and method |
-
2018
- 2018-10-22 KR KR1020180125870A patent/KR102144891B1/en active IP Right Grant
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101758698B1 (en) * | 2010-09-14 | 2017-07-18 | 대우조선해양 주식회사 | Robot system with robot controller combined with teach pedant |
JP2013168188A (en) * | 2013-06-04 | 2013-08-29 | Denso Wave Inc | Robot control log acquiring system |
Also Published As
Publication number | Publication date |
---|---|
KR20200045168A (en) | 2020-05-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
AU2018202162B2 (en) | Methods and systems of handling a dialog with a robot | |
US8942849B2 (en) | Humanoid robot equipped with a natural dialogue interface, method for controlling the robot and corresponding program | |
KR102298947B1 (en) | Voice data processing method and electronic device supporting the same | |
KR101548524B1 (en) | Rendering teaching animations on a user-interface display | |
CN100530085C (en) | Method and apparatus for implementing a virtual push-to-talk function | |
US11548147B2 (en) | Method and device for robot interactions | |
JP2019161638A (en) | Method for switching control modes of smart tv, equipment and computer program | |
JP6319772B2 (en) | Method and system for generating contextual behavior of a mobile robot performed in real time | |
CN110090444A (en) | Behavior record creation method, device, storage medium and electronic equipment in game | |
Rietz et al. | WoZ4U: an open-source wizard-of-oz interface for easy, efficient and robust HRI experiments | |
KR102469712B1 (en) | Electronic device and Method for generating Natural Language thereof | |
KR20210040856A (en) | Interactive method of smart rearview mirror, apparatus, electronic device and storage medium | |
KR102144891B1 (en) | Humanoid robot developmnet framework system | |
KR102380717B1 (en) | Electronic apparatus for processing user utterance and controlling method thereof | |
US10853029B2 (en) | Computerized system including rules for a rendering system accessible to non-literate users via a touch screen | |
Gris et al. | Virtual agent interaction framework (VAIF): a tool for rapid development of social agents | |
Green et al. | Task-oriented Dialogue for CERO: a User-centered Approach | |
Besari et al. | Preliminary design of interactive visual mobile programming on educational robot ADROIT V1 | |
US20230234221A1 (en) | Robot and method for controlling thereof | |
JP2023147653A (en) | System, interface apparatus, program, and the like | |
KR20230066710A (en) | method of providing interface for AI-based story generation system | |
US20220253208A1 (en) | An interactive touch screen panel and methods for collaborating on an interactive touch screen panel | |
Hacker et al. | Interacting with Robots-Tooling and Framework for Advanced Speech User Interfaces | |
KR20240027292A (en) | Operating method for electronic apparatus for outputting information and electronic apparatus supporting thereof | |
US20210065677A1 (en) | System and method for interactive virtual assistant generation for assemblages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |