KR100869587B1 - Robot Middleware Framework System - Google Patents

Robot Middleware Framework System Download PDF

Info

Publication number
KR100869587B1
KR100869587B1 KR1020070011248A KR20070011248A KR100869587B1 KR 100869587 B1 KR100869587 B1 KR 100869587B1 KR 1020070011248 A KR1020070011248 A KR 1020070011248A KR 20070011248 A KR20070011248 A KR 20070011248A KR 100869587 B1 KR100869587 B1 KR 100869587B1
Authority
KR
South Korea
Prior art keywords
application
robot
service
task
applications
Prior art date
Application number
KR1020070011248A
Other languages
Korean (ko)
Other versions
KR20080072446A (en
Inventor
신경철
박성주
최영일
Original Assignee
주식회사 유진로봇
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 유진로봇 filed Critical 주식회사 유진로봇
Priority to KR1020070011248A priority Critical patent/KR100869587B1/en
Publication of KR20080072446A publication Critical patent/KR20080072446A/en
Application granted granted Critical
Publication of KR100869587B1 publication Critical patent/KR100869587B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1479Generic software techniques for error detection or fault masking
    • G06F11/1482Generic software techniques for error detection or fault masking by means of middleware or OS functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/02Digital computers in general; Data processing equipment in general manually operated with input through keyboard and computation using a built-in program, e.g. pocket calculators
    • G06F15/0225User interface arrangements, e.g. keyboard, display; Interfaces to other computer systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0655Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
    • G06F3/0661Format or protocol conversion arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 응용 어플리케이션과 각종 서비스 엔진들과의 인터랙션을 위한 핵심적인 모듈인 미들웨어 프레임워크에 관한 것으로서 더욱 상세하게는 로봇 서비스 엔진들을 관리하며 다양한 응용 어플리케이션으로부터 로봇 서비스의 요청을 받고 이에 따라 태스크를 부여하며 로봇 서비스 엔진들로부터의 각종 메시지를 응용 어플리케이션에 전달하는 복잡하고 다양한 프로세스를 실천할 수 있는 로봇 미들웨어 프레임워크 시스템에 관한 것이다. The present invention relates to a middleware framework, which is a core module for interaction between application applications and various service engines. More particularly, the present invention manages robot service engines and receives robot service requests from various application applications and assigns tasks accordingly. The present invention relates to a robot middleware framework system capable of practicing complex and diverse processes for delivering various messages from robot service engines to an application.

이를 위해 본 발명은 로봇의 동작을 수행하기 위하여 프로그램 형태로 이루어지는 다수의 어플리케이션 및 하드웨어 기반의 서비스 엔진 각각에 연결되어 서비스 엔진으로부터 다수 형태의 메시지를 받고 태스크를 부여하며 어플리케이션으로부터 태스크 요청 패킷을 받고 이를 어플리케이션에 전달하는 로봇 미들웨어 프레임워크 시스템에 있어서, 상기 로봇 미들웨어 프레임워크 시스템은, 상기 어플리케이션 및 서비스 엔진 각각에 연결되기 위해 정의되는 로봇인터페이스 프로토콜과; 상기 정의된 로봇인터페이스 프로토콜에 의해 어플리케이션 및 서비스 엔진 각각에 연결되어 상호 연동을 실현하기 위한 통신 채널인 후크 포인트와; 상기 다수의 어플리케이션이 원활하게 바인딩 프로시져를 유지하기 위해서 바인딩을 관리하는 프로세스 매니저와; 상기 어플리케이션으로부터 서비스 요청 명령을 받고 명령을 분석하여 각각의 서비스 엔진으로 명령을 전달하고 이에 대한 응답메시지를 수집하여 요청한 어플리케이션으로 전송하는 태스크 매니저를 포함하여 이루어진다.To this end, the present invention is connected to each of a plurality of applications and hardware-based service engine in the form of a program to perform the operation of the robot receives a plurality of types of messages from the service engine and assigns a task and receives a task request packet from the application A robot middleware framework system for delivering to an application, said robot middleware framework system comprising: a robot interface protocol defined for coupling to each of said application and service engine; A hook point which is connected to each of an application and a service engine by the defined robot interface protocol and is a communication channel for realizing interworking; A process manager that manages bindings so that the plurality of applications can smoothly maintain binding procedures; And a task manager that receives the service request command from the application, analyzes the command, delivers the command to each service engine, collects a response message, and transmits the response message to the requested application.

어플리케이션, 로봇, 바인딩, 태스크 매니저, 서비스 엔진, Applications, robots, bindings, task managers, service engines,

Description

로봇 미들웨어 프레임워크 시스템{Robot Middleware Framework System} Robot Middleware Framework System

도 1은 본 발명에 따른 로봇 미들웨어 프레임워크 시스템의 개략구성도.1 is a schematic configuration diagram of a robot middleware framework system according to the present invention.

도 2는 본 발명에 따른 태스크 매니저의 구성도.2 is a block diagram of a task manager according to the present invention;

<도면의 주요 부분에 대한 부호의 설명><Explanation of symbols for the main parts of the drawings>

10 : 로봇인터페이스 프로토콜 20 : 후크 포인트10: robot interface protocol 20: hook point

30 : 프로세스 매니저 40 : 태스크 매니저30: process manager 40: task manager

100 : 로봇 미들웨어 프레임워크 시스템100: robot middleware framework system

200 : 어플리케이션200: application

300 : 서비스 엔진300: service engine

본 발명은 응용 어플리케이션과 각종 서비스 엔진들과의 인터랙션을 위한 핵심적인 모듈인 미들웨어 프레임워크에 관한 것으로서 더욱 상세하게는 로봇 서비스 엔진들을 관리하며 다양한 응용 어플리케이션으로부터 로봇 서비스의 요청을 받고 이에 따라 태스크를 부여하며 로봇 서비스 엔진들로부터의 각종 메시지를 응용 어플리케이션에 전달하는 복잡하고 다양한 프로세스를 실천할 수 있는 로봇 미들웨어 프레임워크 시스템에 관한 것이다. The present invention relates to a middleware framework, which is a core module for interaction between application applications and various service engines. More particularly, the present invention manages robot service engines and receives robot service requests from various application applications and assigns tasks accordingly. The present invention relates to a robot middleware framework system capable of practicing complex and diverse processes for delivering various messages from robot service engines to an application.

최근의 각식 이동 로봇은 높은 정보 처리 능력을 구비하고 있고, 지능형 로봇 그 자체를 일종의 계산기 시스템으로서 인식할 수 있다.Recently, mobile robots have high information processing capability and can recognize the intelligent robot itself as a kind of calculator system.

예를 들면, 로봇은 감정 모델이나 행동 모델, 학습 모델 등과 같이, 동작에 관한 각종 규칙을 모델화하여 보유하고 있고, 이들 모델에 따라서 사용자 액션 등의 외적 요인에 응답한 행동 계획을 입안(立案)하여, 각 관절 액튜에이터의 구동이나 음성 출력 등을 통해 행동 계획을 체현하고, 사용자에 대한 피드백으로 할 수 있다. 이러한 행동 계획의 입안이나 이것을 체현하기 위한 로봇의 동작 제어는, 계산기 시스템 상에서의 프로그램 코드(예를 들면 어플리케이션 등)의 실행이라는 형태로 실장된다.For example, the robot models and holds various rules regarding motion, such as an emotion model, a behavior model, a learning model, etc., and devises an action plan in response to external factors such as user actions according to these models. In addition, the action plan can be embodied by driving each joint actuator or outputting a voice, and used as feedback to the user. The planning of such an action plan and the motion control of the robot for embodying this are implemented in the form of execution of program code (for example, an application) on a calculator system.

일반적인 계산기 시스템과 로봇과의 주된 차이점으로서, 전자(前者)는 시스템을 구성하는 하드웨어 컴포넌트의 종류나 조합(즉 하드웨어 구성)이 각 시스템 간에서 차가 비교적 적은 데 반하여, 후자(後者)는 하드웨어 구성이 시스템 간에서 대폭 변경된다는 점을 예를 들 수 있을 것이다. 예를 들면, 가령 이동 로봇이라고 해도, 동체에 대하여 장착되는 가동부로서, 머리와 다리부와 꼬리로 구성되는 로봇이나, 머리부와 차륜만으로 구성되는 로봇 등, 천차만별이다.The main difference between a general computer system and a robot is that the former has a relatively small difference in the type or combination of hardware components (that is, a hardware configuration) between the systems, whereas the latter has a hardware configuration. For example, there is a significant change between systems. For example, even if it is a mobile robot, as a movable part mounted with respect to a fuselage | body, it is a stellar change, such as a robot which consists of a head, a leg part, and a tail, and a robot consisting only of a head part and a wheel.

이에 따라 이러한 하드웨어와 이를 구동하기 위해 다양한 태스크를 수행할 수 있는 어플리케이션 간의 통신이 무엇보다 중요하다.As such, communication between such hardware and the applications that can perform the various tasks to drive it is of paramount importance.

하지만, 로봇의 기능이 다양화됨에 따라 이를 구현하기 위한 다양한 하드웨어 기반의 서비스 엔진 및 다양한 태스크의 요청 및 처리를 생성하는 어플리케이션 간의 통신을 통합적으로 관리할 수 있는 수단이 요구된다.However, as the functions of robots are diversified, there is a need for a means for collectively managing communication between various hardware-based service engines for implementing them and an application for generating requests and processes for various tasks.

본 발명은 목적은 로봇 서비스 엔진들을 관리하며 다양한 응용 어플리케이션으로부터 로봇 서비스의 요청을 받고 이에 따라 태스크를 부여하며 로봇 서비스 엔진들로부터의 각종 메시지를 응용 어플리케이션에 전달하는 복잡하고 다양한 프로세스를 실천할 수 있는 로봇 미들웨어 프레임워크 시스템을 제공함에 있다.An object of the present invention is to manage robot service engines, to receive robot service requests from various application applications, to assign tasks accordingly, and to implement a complex and diverse process of delivering various messages from robot service engines to application applications. In providing a middleware framework system.

본 발명은 상기의 목적을 달성하기 위해 아래와 같은 특징을 갖는다.The present invention has the following features to achieve the above object.

본 발명은 로봇의 동작을 수행하기 위하여 프로그램 형태로 이루어지는 다수의 어플리케이션 및 하드웨어 기반의 서비스 엔진 각각에 연결되어 서비스 엔진으로부터 다수 형태의 메시지를 받고 태스크를 부여하며 어플리케이션으로부터 태스크 요청 패킷을 받고 이를 어플리케이션에 전달하는 로봇 미들웨어 프레임워크 시스템에 있어서, 상기 로봇 미들웨어 프레임워크 시스템은, 상기 어플리케이션 및 서비스 엔진 각각에 연결되기 위해 정의되는 로봇인터페이스 프로토콜과; 상기 정의된 로봇인터페이스 프로토콜에 의해 어플리케이션 및 서비스 엔진 각각에 연결되어 상호 연동을 실현하기 위한 통신 채널인 후크 포인트와; 상기 다수의 어플리케이션이 원활하게 바인딩 프로시져를 유지하기 위해서 바인딩을 관리하는 프로세스 매니저와; 상기 어플리케이션으로부터 서비스 요청 명령을 받고 명령을 분석하여 각각의 서비스 엔진으로 명령을 전달하고 이에 대한 응답메시지를 수집하여 요청한 어플리케이션으로 전송하는 태스크 매니저를 포함하여 이루어진다.The present invention is connected to each of a plurality of applications and hardware-based service engine in the form of a program in order to perform the operation of the robot receives a plurality of types of messages from the service engine and assigns a task, receives a task request packet from the application to the application A robotic middleware framework system for delivering, said robotic middleware framework system comprising: a robot interface protocol defined for connection to each of said application and service engine; A hook point which is connected to each of an application and a service engine by the defined robot interface protocol and is a communication channel for realizing interworking; A process manager that manages bindings so that the plurality of applications can smoothly maintain binding procedures; And a task manager that receives the service request command from the application, analyzes the command, delivers the command to each service engine, collects a response message, and transmits the response message to the requested application.

여기서, 상기 후크 포인트는 블랙박스 형태로 이루어지며, 상기 태스크 매니저는 어플리케이션으로부터 요청을 받아 이를 저장하는 태스크 저장소와, 태스크 저장소에 저장된 태스크를 순차적으로 분석하여 실행하는 태스크 인터프리터를 포함하여 이루어진다.Here, the hook point is formed in the form of a black box, and the task manager includes a task repository for receiving a request from an application and storing the request, and a task interpreter for sequentially analyzing and executing the tasks stored in the task repository.

이하에서는 본 발명에 따른 로봇 미들웨어 프레임워크 시스템에 관하여 첨부되는 도면과 함께 상세하게 설명하도록 한다.Hereinafter, the robot middleware framework system according to the present invention will be described in detail with the accompanying drawings.

도 1은 본 발명에 따른 로봇 미들웨어 프레임워크 시스템의 개략구성도이고, 도 2는 본 발명에 따른 태스크 매니저의 구성도이다.1 is a schematic configuration diagram of a robot middleware framework system according to the present invention, Figure 2 is a configuration diagram of a task manager according to the present invention.

도면을 참조하면, 본 발명에 따른 로봇 미들웨어 프레임워크 시스템(100)은 크게 어플리케이션(200) 및 서비스 엔진(300) 각각에 연결되기 위해 정의되는 로봇인터페이스 프로토콜(10)과, 상기 정의된 로봇인터페이스 프로토콜(10)에 의해 어플리케이션(200) 및 서비스 엔진(300) 각각에 연결되어 상호 연동을 실현하기 위한 통신 채널인 후크 포인트(20)와, 상기 다수의 어플리케이션(200)이 원활하게 바인딩 프로시져를 유지하기 위해서 바인딩을 관리하는 프로세스 매니저(30)와, 상기 어플리케이션(200)으로부터 서비스 요청 명령을 받고 명령을 분석하여 각각의 서비스 엔진(300)으로 명령을 전달하고 이에 대한 응답메시지를 수집하여 요청한 어플리케이션(200)으로 전송하는 태스크 매니저(40)로 구성된다.Referring to the drawings, the robot middleware framework system 100 according to the present invention is largely defined to be connected to each of the application 200 and the service engine 300, the robot interface protocol 10 and the robot interface protocol defined above. The hook point 20, which is a communication channel connected to each of the application 200 and the service engine 300 to realize mutual interaction by the 10, and the plurality of applications 200 smoothly maintain the binding procedure. In order to manage the binding and the process manager 30, and receives a service request command from the application 200, and analyzes the command and delivers the command to each service engine 300, and collects a response message to the requesting application 200 It consists of a task manager 40 to transmit to.

여기서 상기 어플리케이션(200)은 로봇의 기능 구현을 위한 다양한 형태의 응용프로그램을 총칭하는 것으로서, 일반적으로 로봇에는 다양하고 복잡한 다수개의 어플리케이션(200)이 구비된다. In this case, the application 200 refers to various types of application programs for implementing a function of a robot. In general, a plurality of various and complex applications 200 are provided in a robot.

본 발명인 로봇 미들웨어 프레임워크 시스템(100)은 이러한 어플리케이션(200)과 서비스 엔진(300) 간의 상호 연동에 의한 정확하고 신속한 결과 수행을 가능하도록 하기 위해 마련되는 것이다.The robot middleware framework system 100 of the present invention is provided to enable accurate and rapid results by the interworking between the application 200 and the service engine 300.

아울러 상기 서비스 엔진(300)은 하드웨어 기반의 로봇의 입,출력에 관한 장치로서 로봇 미들웨어 프레임워크 시스템(100)으로 어플리케이션(200)에 상호 연동된다.In addition, the service engine 300 is a device related to input and output of a hardware-based robot, and interoperates with the application 200 as the robot middleware framework system 100.

상기 로봇인터페이스 프로토콜(10)은 응용 어플리케이션(200)이 로봇기능 서비스를 사용하여 로봇에 통합적인 어플리케이션(200)의 개발을 실현시키기 위한 응용 어플리케이션(200)과 로봇 미들웨어 프레임워크 시스템(100)간의 통신규약으로 로봇 인터페이스 프로토콜(10)에 의해 모든 태스크 요청과 응답, 이벤트 전달이 이루어진다. The robot interface protocol 10 is a communication between the application application 200 and the robot middleware framework system 100 for the application application 200 to realize the development of an application 200 integrated into the robot using a robot function service. As a protocol, all task requests, responses, and events are delivered by the robot interface protocol 10.

한편 로봇 미들웨어 프레임워크 시스템(100)은 어플리케이션(200)의 확장모듈인 후크 포인트(20)를 제공하는데, 응용 어플리케이션은 메타파일을 이용한 선언적 바인딩을 통하여 메인프레임워크에 확장이 되며 서비스 엔진은 인터페이스 코어의 베이스 클래스를 상속하여 미리 정의된 후크 포인트(20)를 통하여 연결된다.Meanwhile, the robot middleware framework system 100 provides a hook point 20 which is an extension module of the application 200. The application application is extended to the main framework through declarative binding using a metafile, and the service engine is an interface core. Inherit the base class of and connected through a predefined hook point (20).

본 발명에 따른 후크 포인트(20)는 블랙박스 형태로 구성됨이 바람직하며, 이러한 블랙박스 형태의 후크 포인트(20)는 프레임워크에서 정의한 핫 스팟 인터페이스를 구현해야 하며, 이 구현한 객체를 인터페이스와 컴포지션을 통해 확장한다.The hook point 20 according to the present invention is preferably configured in the form of a black box, and the hook point 20 in the form of a black box should implement a hot spot interface defined by the framework, and implements the object with the interface and the composition. Expand through.

객체의 상속 없이 컴포지션과 딜리게이션(위임)으로 확장되기 때문에 프레임워크 내부 구조의 의존성이 상대적으로 낮게 된다. 따라서 프레임워크에 대한 이해 가 다소 적게 요구되며 쉽게 확장할 수 있게 되는 것이다.The dependency on the framework's internal structure is relatively low because it extends to composition and delegation without inheriting objects. This requires a little less understanding of the framework and can be easily extended.

한편 상기 프로세스 매니저(30)는 다수의 어플리케이션(200)이 원활하게 바인딩 프로시져를 유지하기 위해서 바인딩을 관리한다.On the other hand, the process manager 30 manages the binding in order for the plurality of applications 200 to smoothly maintain the binding procedure.

응용 어플리케이션(200)은 후크 포인트(20)에 대해서 인터페이스를 통해 바인딩에 되는데, 바인딩을 위해서는 TCP 소켓의 초기화 과정을 거치고 연결을 요청한 후 이벤트를 통해 바인딩이 완료된다. The application 200 is bound to the hook point 20 through an interface. For binding, the binding is completed through an event after requesting a connection through an initialization process of a TCP socket.

연결이 유지되는 동안 많은 태스크 요청과 응답 및 이벤트 등의 메시지를 주고 받는데, 후술될 태스크 매니저(40)는 이의 연결 상태를 감시하여 바인딩이 비정상적으로 종료되면 와치독을 가동한다.While the connection is maintained, a number of task requests, messages, and events are transmitted and received. The task manager 40, which will be described later, monitors its connection state and starts a watchdog when the binding is abnormally terminated.

이러한 다수의 응용 어플리케이션(200)이 상기와 같은 복잡한 바인딩 프로시져를 유지하기 위해서 체계적으로 바인딩 프로시져를 담당하는 프로세스 매니저(30)가 마련되는 것이다.In order to maintain such a complex binding procedure, such a plurality of application applications 200 are provided with a process manager 30 that is in charge of the binding procedure.

한편 상기 태스크 매니저(40)는 다양한 어플리케이션(200)으로부터 많은 태스크 요청을 받게 되는데, 태스크 매니저(40)는 이와 같은 태스크 요청에 대해서 태스크의 논리 흐름에 따라 제약조건 등을 판별하여 실행을 결정한다. Meanwhile, the task manager 40 receives many task requests from various applications 200. The task manager 40 determines the execution by determining constraints and the like according to the logic flow of the task with respect to the task request.

또한 상기 태스크 매니저(40)는 태스크 큐로부터 활성화된 태스크를 분석하여 로봇 서비스 엔진(300) 등에 전달함으로써 시스템의 안정성을 유지한다. In addition, the task manager 40 maintains the stability of the system by analyzing the tasks activated from the task queue and transferring them to the robot service engine 300.

이러한 태스크 매니저(40)는 어플리케이션(200)으로부터 요청을 받아 이를 저장하는 태스크 저장소(41)와, 태스크 저장소(41)에 저장된 태스크를 순차적으로 분석하여 실행하는 태스크 인터프리터(42)를 포함하여 이루어지는데, 상기 태스크 저장소(41)는 태스크 저장소에 마련되는 태스크 큐에 다양한 태스크 요청이 저장되고, 태스크 큐로부터 순차적으로 활성화된 태스크를 태스크 인터프리터(42)를 통해 분석하여 실행하게 된다.The task manager 40 includes a task repository 41 for receiving a request from the application 200 and storing the request, and a task interpreter 42 for sequentially analyzing and executing the tasks stored in the task repository 41. The task store 41 stores various task requests in a task queue provided in the task store, and analyzes and executes tasks sequentially activated from the task queue through the task interpreter 42.

여기서, 태스크가 요청되어 실행 중일 때 서로 충돌성의 태스크가 요청되어 실행될 수 있는데, 이러한 태스크의 충돌문제를 방지하기 위하여 태스크 매니저(40)는 로봇 사용 시나리오에 따른 우선 정책에 따라서 실행 중인 태스크를 중지하거나 또는 새로이 요청된 태스크를 버리도록 구성됨이 바람직하다.In this case, when tasks are requested and executed, the tasks of conflictingness may be requested and executed. In order to prevent a collision problem of these tasks, the task manager 40 may stop running tasks according to a priority policy according to the robot usage scenario. Or configured to discard the newly requested task.

본 발명에 따른 로봇 미들웨어 프레임워크 시스템(100)은 구조화된 소프트웨어 아키텍처 기반 위에 구현되며 로봇의 서비스 엔진(300)과 서비스 어플리케이션(100)을 관장하며 상호작용을 정립한 소프트웨어의 기반 조직구조이다.The robot middleware framework system 100 according to the present invention is implemented on the basis of a structured software architecture and manages the robot's service engine 300 and the service application 100, and is a software-based organizational structure established for interaction.

로봇 미들웨어 프레임워크 시스템(100)은 로봇의 응용 어플리케이션(200) 및 다양한 서비스 엔진(300)들과 규정된 로봇인터페이스 프로토콜(10)에 따라서 긴밀한 상호작용을 한다. The robot middleware framework system 100 interacts closely with the robot application application 200 and various service engines 300 in accordance with the defined robot interface protocol 10.

본 발명에 따른 태스크 매니저(40)는 이들의 상호작용이 이루어질 수 있도록 태스크를 관리한다. The task manager 40 according to the present invention manages tasks so that their interaction can be made.

또한 로봇 미들웨어 프레임워크 시스템(100)은 로봇의 응용 어플리케이션(200) 및 서비스 엔진(300)의 바인딩을 위한 후크 포인트(20)를 제공하는데, 응용 어플리케이션(200)은 메타파일을 이용한 선언적 바인딩을 통하여 미들웨어 프레임워크에 확장이 되며 서비스 엔진(300)은 인터페이스 코어의 베이스 클래스를 상 속하여 미리 정의된 후크 포인트(20)를 통하여 연결된다.In addition, the robot middleware framework system 100 provides a hook point 20 for binding the robot's application application 200 and the service engine 300. The application application 200 uses declarative binding using a metafile. It is extended to the middleware framework and the service engine 300 is connected through the predefined hook point 20 inheriting the base class of the interface core.

아울러 로봇 미들웨어 프레임워크 시스템(100)는 로봇 서비스 엔진(300)을 통한 서비스의 제공 외에도 영상과 음성장치 서비스를 위한 미디어 인터페이스와 운영체제의 DBMS(Data Base Management System)를 이용한 데이터베이스 서비스를 위한 DB 인터페이스를 포함하여 구성될 수 있다.In addition to providing the service through the robot service engine 300, the robot middleware framework system 100 uses a media interface for video and audio device service and a DB interface for database service using a DBMS (Data Base Management System) of the operating system. It can be configured to include.

또한 서비스 엔진(300)들과 응용 어플리케이션(200)의 동작상태를 감시하고 복구를 위한 와치독 기능을 가지고 있다.In addition, it has a watchdog function for monitoring and restoring the operation state of the service engines 300 and the application application 200.

이와 같이 본 발명은 도면에 도시된 일실시예를 참고로 설명되었으나, 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. As described above, the present invention has been described with reference to one embodiment shown in the drawings, but this is merely an example, and those skilled in the art may realize various modifications and other equivalent embodiments therefrom. I will understand.

따라서, 본 발명의 진정한 기술적 보호범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.Therefore, the true technical protection scope of the present invention will be defined by the technical spirit of the appended claims.

상기에서 기술된 바와 같이 본 발명은 응용 어플리케이션과 각종 서비스 엔진들과의 인터랙션을 위한 핵심적인 모듈로서 로봇 서비스 엔진들을 관리하며 다양한 응용 어플리케이션으로부터 로봇 서비스의 요청을 받고 이에 따라 태스크를 부여하며 로봇 서비스 엔진들로부터의 각종 메시지를 응용 어플리케이션에 전달하는 복잡하고 다양한 프로세스를 실천할 수 있는 효과가 있다.As described above, the present invention manages robot service engines as a core module for interaction between application applications and various service engines, receives robot service requests from various application applications, and assigns tasks accordingly. There is an effect that can implement a complex and diverse process of delivering various messages from the application to the application.

Claims (3)

로봇의 동작을 수행하기 위하여 프로그램 형태로 이루어지는 다수의 어플리케이션 및 하드웨어 기반의 서비스 엔진 각각에 연결되어 서비스 엔진으로부터 다수 형태의 메시지를 받고 태스크를 부여하며 상기 어플리케이션으로부터 태스크 요청 패킷을 받고 태스크의 논리 흐름에 따라 분석하여 서비스 엔진의 실행을 결정하며 이를 상기 어플리케이션에 전달하는 로봇 미들웨어 프레임워크 시스템에 있어서,It is connected to each of a plurality of applications and hardware-based service engines in the form of a program to perform the operation of the robot, receives a plurality of types of messages from the service engine, assigns a task, receives a task request packet from the application, In the robot middleware framework system for analyzing and determining the execution of the service engine and delivering it to the application, 상기 로봇 미들웨어 프레임워크 시스템은, The robot middleware framework system, 상기 어플리케이션 및 서비스 엔진 각각에 연결되기 위해 정의되는 로봇인터페이스 프로토콜과;A robot interface protocol defined for coupling to each of said application and service engine; 상기 정의된 로봇인터페이스 프로토콜에 의해 어플리케이션 및 서비스 엔진 각각에 연결되어 상호 연동을 실현하기 위한 통신 채널인 후크 포인트와;A hook point which is connected to each of an application and a service engine by the defined robot interface protocol and is a communication channel for realizing interworking; 상기 다수의 어플리케이션이 원활하게 바인딩 프로시져를 유지하기 위해서 바인딩을 관리하는 프로세스 매니저와;A process manager that manages bindings so that the plurality of applications can smoothly maintain binding procedures; 상기 어플리케이션으로부터 서비스 요청 명령을 받고 명령을 분석하여 각각의 서비스 엔진으로 명령을 전달하고 이에 대한 응답메시지를 수집하여 요청한 어플리케이션으로 전송하는 태스크 매니저를 포함하여 이루어지는 것을 특징으로 하는 로봇 미들웨어 프레임워크 시스템.And a task manager for receiving a service request command from the application, analyzing the command, delivering the command to each service engine, collecting a response message, and transmitting the received response message to the requested application. 제 1항에 있어서,The method of claim 1, 상기 후크 포인트는 블랙박스 형태로 이루어지는 것을 특징으로 하는 로봇 미들웨어 프레임워크 시스템.The hook point is a robot middleware framework system, characterized in that the black box form. 제 1항에 있어서,The method of claim 1, 상기 태스크 매니저는 어플리케이션으로부터 요청을 받아 이를 저장하는 태스크 저장소와, 태스크 저장소에 저장된 태스크를 순차적으로 분석하여 실행하는 태스크 인터프리터를 포함하여 이루어지는 것을 특징으로 하는 로봇 미들웨어 프레임워크 시스템.The task manager includes a task repository for receiving a request from an application and storing the request, and a task interpreter for sequentially analyzing and executing the tasks stored in the task repository.
KR1020070011248A 2007-02-02 2007-02-02 Robot Middleware Framework System KR100869587B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020070011248A KR100869587B1 (en) 2007-02-02 2007-02-02 Robot Middleware Framework System

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020070011248A KR100869587B1 (en) 2007-02-02 2007-02-02 Robot Middleware Framework System

Publications (2)

Publication Number Publication Date
KR20080072446A KR20080072446A (en) 2008-08-06
KR100869587B1 true KR100869587B1 (en) 2008-11-21

Family

ID=39882772

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020070011248A KR100869587B1 (en) 2007-02-02 2007-02-02 Robot Middleware Framework System

Country Status (1)

Country Link
KR (1) KR100869587B1 (en)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101242662B1 (en) * 2009-12-03 2013-03-12 한국전자통신연구원 Remote plugin apparatus, robot plugin execution engine apparatus and robot plugin execution system thereof
KR101977274B1 (en) * 2017-12-29 2019-08-28 한국생산기술연구원 Framework setting method for autonomous robot and digital control device

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816753B2 (en) 2000-10-11 2004-11-09 Sony Corporation Robot control system and robot control method

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6816753B2 (en) 2000-10-11 2004-11-09 Sony Corporation Robot control system and robot control method

Also Published As

Publication number Publication date
KR20080072446A (en) 2008-08-06

Similar Documents

Publication Publication Date Title
KR101021836B1 (en) System for cooperation of multiple mobile robot using dynamic behavior binding and method thereof
CN101976062B (en) Open type control method based on lightweight service-oriented architectures (LSOA) framework
US20150365351A1 (en) System and method for dynamic provisioning of applications
US20090113407A1 (en) Managing software lifecycle
CN110597634B (en) Data processing method and device and computer readable storage medium
WO2005109299A1 (en) Robot control software framework in open distributed process architecture
Belsare et al. Micro-ros
CN110716793B (en) Method, device, equipment and storage medium for executing distributed transaction
WO2018192178A1 (en) Point-to-point motion control method and system for robot
CN106945044B (en) Robot pause motion control method and system
CN108897591A (en) Combined Trials platform middleware plug-in unit and its method of test resource information interaction
Jørgensen et al. Customization of object request brokers by application specific policies
CN106945045B (en) communication method and system for robot control based on ROS and OROCOS
KR100869587B1 (en) Robot Middleware Framework System
Frantz et al. An efficient orchestration engine for the cloud
US5603032A (en) Method for administration of applications by standard protocols
CN101471955A (en) Method for writing equipment data in dual-controller network storage circumstance
US20110246553A1 (en) Validation of internal data in batch applications
CN100426241C (en) Message level soft interrupt processing method in service system structure
US20150188849A1 (en) Virtual switch enabling communication between external objects and simulation objects
CN112737815B (en) Method and system for dynamically configuring event queue of network simulator
CN115167985A (en) Virtualized computing power providing method and system
Vijeth et al. Review on Robot Operating System
CN112711527A (en) Debugging method and device of real-time process, target machine and storage medium
Murray et al. Hybrid state machines with timed synchronization for multi-robot system specification

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20121114

Year of fee payment: 5

FPAY Annual fee payment

Payment date: 20131101

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20141105

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20151102

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20161101

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20171101

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee