KR20120025961A - 로봇 시스템 및 그의 제어 방법 - Google Patents

로봇 시스템 및 그의 제어 방법 Download PDF

Info

Publication number
KR20120025961A
KR20120025961A KR1020110033658A KR20110033658A KR20120025961A KR 20120025961 A KR20120025961 A KR 20120025961A KR 1020110033658 A KR1020110033658 A KR 1020110033658A KR 20110033658 A KR20110033658 A KR 20110033658A KR 20120025961 A KR20120025961 A KR 20120025961A
Authority
KR
South Korea
Prior art keywords
robot
command
collaboration
role
information
Prior art date
Application number
KR1020110033658A
Other languages
English (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 US13/216,354 priority Critical patent/US20120059514A1/en
Publication of KR20120025961A publication Critical patent/KR20120025961A/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions

Abstract

본 발명에 따른 로봇 서버는, 로봇의 협업 역할, 및 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 저장하는 저장부 및 하나 이상의 로봇에 부여할 협업 역할에 대한 정보 및 협업 역할에 따라 부여할 심플 명령어 혹은 컴포지트 명령어에 대한 정보를 상기 적어도 하나의 로봇에 송신하는 통신부를 포함한다.

Description

로봇 시스템 및 그의 제어 방법{Robot system and method for controlling thereof}
본 발명은 동종 및/또는 이기종의 다수의 로봇의 협업을 위한 협업 정책 모델에 대한 정의와, 이를 이용하는 로봇 시스템 및 그의 제어 방법에 관한 것이다.
로봇은 의료용, 항공용, 산업용, 청소용 등과 같은 다양한 분야에서 임의의 명령을 통해 특정 기능을 수행하도록 움직이는 장치이다.
상기와 같은 로봇은 최근 들어 유비쿼터스 환경 내의 이동성을 갖는 다기능장치로 인식되고 있다. 또한, 소파나 냉장고와 같은 기존의 환경 내 장치들은 로봇의 기능이 가미되어, 로보틱 소파, 로보틱 냉장고와 같은 로보틱 장치로 진화되고 있다. 이와 같은 유비쿼터스 환경 내에서는, 이기종 로봇들 간의 연동 문제, 즉 이기종의 다수 로봇이 이질적인 플랫폼, 이질적인 기능, 이질적인 시스템 또는, 서로 상이한 통신 프로토콜을 가지는 경우, 이기종 로봇들 간의 연동에 문제가 발생한다.
또한, 이기종의 다수의 로봇 간의 협업을 위해, 이기종의 다수의 로봇에 각각 구비되는 다양한 구동부와 감지장치의 사양을 파악해야 한다.
본 발명에서는 이러한 문제점을 해결하기 위해서 이기종의 다수의 로봇 간의 상호 연동을 위해 역할(role) 기반 명령어 전이 다이어그램(command transition diagram)으로 표현되는 협업 정책 모델을 제공하는 로봇 시스템 및 그의 제어 방법을 제공하는데 그 목적이 있다.
또한, 본 발명에서는 이러한 문제점을 해결하기 위해서 이기종의 다수의 로봇 간의 상호 연동을 위한 표준 인터페이스를 제공하는 로봇 시스템 및 그의 제어 방법을 제공하는데 그 목적이 있다.
또한, 본 발명에서는 이러한 문제점을 해결하기 위해서 이기종의 다수의 로봇에 각각 구비되는 다양한 구동부와 감지장치의 사양을 파악하는 로봇 시스템 및 그의 제어 방법을 제공하는데 그 목적이 있다.
또한, 본 발명에서는 이러한 문제점을 해결하기 위해서 분산된 이기종의 다수의 로봇 간의 협업을 위한 응용을 위해, 조정 및 스케줄링 알고리즘을 제공하는 로봇 시스템 및 그의 제어 방법을 제공하는데 그 목적이 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 일 양태로서, 하나 이상의 로봇의 협업을 제어하는 로봇 서버에 있어서, 상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 저장하는 저장부와, 상기 하나 이상의 로봇에 부여할 협업 역할에 대한 정보 및 상기 협업 역할에 따라 부여할 심플 명령어 혹은 컴포지트 명령어에 대한 정보를 상기 적어도 하나의 로봇에 송신하는 통신부를 포함하는 로봇 서버가 제공된다.
상기 컴포지트 명령어는, 둘 이상의 명령어에 순서를 부여하는 제1 명령어와, 둘 이상의 명령어를 동시에 수행하는 제2 명령어와, 포워그라운드 명령어와 백그라운드 명령어를 동시에 수행하되, 포워그라운드 명령어가 먼저 수행 종료되면 백그라운드 명령어를 자동으로 강제 취소시키는 제3 명령어와, 지정된 타임아웃 시간 동안만 명령어를 수행하는 제4 명령어와, 지정된 지연 시간 후에 명령어를 수행하는 제5 명령어 중 적어도 하나의 명령어를 포함할 수 있다.
상기 협업 정책 모델은, 명령어 수행의 협업 역할이 전환되는 전이를 발생시키는 전이 규칙을 더 포함할 수 있다.
상기 로봇 서버는, 상기 저장부에 저장된 협업 정책 모델을 파싱하는 정책 파서부를 더 포함할 수 있다.
상기 로봇 서버는, 상기 정책 파서부로부터 파싱된 협업 정책 모델을 근거로 협업 응용을 생성하는 정책 팩토리를 더 포함할 수 있다.
상기 로봇 서버는, 상기 로봇으로부터 각각 전송되는 식별자 정보 및 표준 장치 목록 정보를 등록하는 로봇 레지스트리부를 더 포함할 수 있다.
상기 로봇 서버는, 상기 협업 정책에 모델링된 하나 이상의 협업 역할들과 각 협업 역할을 수행하기 위해 필요한 하나 이상의 명령어 종류들을 등록하는 역할 레지스트리부를 더 포함할 수 있다.
상기 로봇 서버는, 상기 로봇 레지스트리부에 등록된 복수의 로봇의 식별자 정보 및 표준 장치 목록 정보와, 역할 레지스트리부에 등록된 하나 이상의 협업 역할을 근거로 각 협업 역할을 수행할 로봇의 표준 장치를 조회하고, 상기 조회 결과를 근거로 각 협업 역할들을 수행할 대상 로봇들의 리스트를 생성하는 중개부를 더 포함할 수 있다.
상기 로봇 서버는, 상기 중개부로부터 생성한 각 협업 역할들을 수행할 대상 로봇들의 리스트를 근거로 상기 복수의 로봇 중 협업에 참여할 로봇을 선정하고, 상기 선정한 로봇을 제어하기 위한 명령어 객체를 생성하는 명령어 매니저를 더 포함할 수 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 다른 양태로서, 로봇 서버의 협업 제어에 따라 제어되는 로봇에 있어서, 상기 로봇 서버에 저장된 상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 기초로 생성된, 협업에 대한 해당 역할 정보 및 상기 협업에 대한 역할과 관련된 해당 명령어에 대한 정보를 수신하는 통신부와, 상기 해당 역할 및 상기 해당 명령어에 대응되는 행동을 수행하는 수행부를 포함하는 로봇이 제공된다.
상기 수행부는, 상기 해당 역할에 따른 상기 해당 명령어가 음성에 대한 것일 경우에는 스피커인 것이 바람직하다.
상기 수행부는, 상기 해당 역할에 따른 상기 해당 명령어가 움직임에 대한 것일 경우에는 구동부인 것이 바람직하다.
상기 수행부는, 상기 해당 역할에 따른 상기 해당 명령어가 화상 표시에 대한 것일 경우에는 디스플레이인 것이 바람직하다.
상기 로봇은, 상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 상기 로봇 서버에 송신하도록 제어하는 로봇 매니저를 더 포함할 수 있다.
상기의 기술적 과제를 해결하기 위한 본 발명의 또 다른 양태로서, 하나 이상의 로봇을 제어하는 제어방법에 있어서, 소정 협업에 활용될 수 있는 상기 하나 이상의 로봇으로부터 상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 수신하는 단계와, 상기 소정의 협업에서 사용되는 로봇의 해당 역할 및 상기 해당 역할에 따른 명령어를 협업 정책 모델로부터 추출하는 단계와, 상기 로봇의 식별자 정보, 상기 로봇의 표준 장치 목록 정보, 상기 로봇의 해당 역할 및 상기 해당 역할에 따른 명령어를 기초로, 상기 하나 이상의 로봇 중 해당 로봇을 선택하는 단계와, 상기 선택된 해당 로봇에 상기 로봇의 역할에 대한 정보 및 상기 역할에 따른 명령어에 대한 정보를 송신하는 단계를 포함하는 제어방법이 제공된다.
상기의 기술적 과제를 해결하기 위한 본 발명의 또 다른 양태로서, 로봇 서버의 협업 제어에 따라 제어되는 로봇의 제어방법에 있어서, 상기 로봇 서버에 저장된 상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 기초로 생성된, 협업에 대한 해당 역할 정보 및 상기 협업에 대한 역할과 관련된 해당 명령어에 대한 정보를 수신하는 단계와, 상기 해당 역할 및 상기 해당 명령어에 대응되는 행동을 수행하는 단계를 포함하는 제어방법이 제공된다.
상기 제어방법은, 상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 상기 로봇 서버에 송신하는 단계;를 포함할 수 있다.
본 발명은 다음과 같은 효과가 있다.
첫째, 이기종의 다수의 로봇 간의 상호 연동을 위해 역할(role) 기반 명령어 전이 다이어그램(command transition diagram)으로 표현되는 협업 정책 모델을 제공함으로써 이기종의 다수의 로봇 간에 협업 기능을 수행할 수 있다.
둘째, 이기종의 다수의 로봇 간의 상호 연동을 위한 표준 인터페이스(또는, 통신 프로토콜)를 제공함으로써 이기종의 다수의 로봇 간에 제어 기능 및/또는 데이터 전송 기능을 수행할 수 있다.
셋째, 이기종의 다수의 로봇에 각각 구비되는 다양한 구동부와 감지장치의 사양을 파악하고, 조정 및 스케줄링 알고리즘을 제공함으로써, 다수의 로봇의 각각의 기능을 활용하여 협업을 위한 응용을 쉽게 작성하고, 작성된 협업 정책을 기반으로 네트워크로 분산된 로봇들을 협업의 참여자로 동적으로 선정하여 원격에서 조정하여 협업 응용을 수행할 수 있다.
도 1은 본 발명의 실시예에 따른 로봇 시스템의 구성도이다.
도 2는 본 발명의 실시예에 따른 표준 인터페이스를 나타낸 도면이다.
도 3은 본 발명의 실시예에 따른 명령어의 구조를 나타낸 도면이다.
도 4는 본 발명의 실시예에 따른 컴포지트 명령어의 예를 나타낸 도면이다.
도 5는 본 발명의 실시예에 따른 협업 정책 모델을 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따라 로봇 시스템을 제어하는 방법을 설명하는 플로우 차트를 도시한 도면이다.
이하의 실시예들은 본 발명의 구성 요소들과 특징들을 소정 형태로 결합한 것들이다. 각 구성 요소 또는 특징은 별도의 명시적 언급이 없는 한 선택적인 것으로 고려될 수 있다. 각 구성 요소 또는 특징은 다른 구성 요소나 특징과 결합되지 않은 형태로 실시될 수 있다. 또한, 일부 구성 요소들 및/또는 특징들을 결합하여 본 발명의 실시예를 구성할 수도 있다. 본 발명의 실시예들에서 설명되는 동작들의 순서는 변경될 수 있다. 어느 실시예의 일부 구성이나 특징은 다른 실시예에 포함될 수 있고, 또는 다른 실시예의 대응하는 구성 또는 특징과 교체될 수 있다.
본 발명의 실시예들은 다양한 수단을 통해 구현될 수 있다. 예를 들어, 본 발명의 실시예들은 하드웨어, 펌웨어(firmware), 소프트웨어 또는 그것들의 결합 등에 의해 구현될 수 있다.
하드웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 하나 또는 그 이상의 ASICs(application specific integrated circuits), DSPs(digital signal processors), DSPDs(digital signal processing devices), PLDs(programmable logic devices), FPGAs(field programmable gate arrays), 프로세서, 컨트롤러, 마이크로 컨트롤러, 마이크로 프로세서 등에 의해 구현될 수 있다.
펌웨어나 소프트웨어에 의한 구현의 경우, 본 발명의 실시예들에 따른 방법은 이상에서 설명된 기능 또는 동작들을 수행하는 모듈, 절차 또는 함수 등의 형태로 구현될 수 있다. 소프트웨어 코드는 메모리 유닛에 저장되어 프로세서에 의해 구동될 수 있다. 상기 메모리 유닛은 상기 프로세서 내부 또는 외부에 위치하여, 이미 공지된 다양한 수단에 의해 상기 프로세서와 데이터를 주고 받을 수 있다.
명세서 전체에서, 어떤 부분이 다른 부분과 연결되어 있다고 할 때, 이는 직접적으로 연결되어 있는 경우뿐만 아니라, 그 중간에 다른 소자를 사이에 두고 전기적으로 연결되어 있는 경우도 포함한다. 또한, 어떤 부분이 어떤 구성 요소를 포함한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성 요소를 제외하는 것이 아니라 다른 구성 요소를 더 포함할 수 있다는 것을 의미한다.
또한, 본 명세서에서 기재한 모듈(module)이란 용어는 특정한 기능이나 동작을 처리하는 하나의 단위를 의미하며, 이는 하드웨어나 소프트웨어 또는 하드웨어 및 소프트웨어의 결합으로 구현할 수 있다.
이하의 설명에서 사용되는 특정(特定) 용어들은 본 발명의 이해를 돕기 위해서 제공된 것이며, 이러한 특정 용어의 사용은 본 발명의 기술적 사상을 벗어나지 않는 범위에서 다른 형태로 변경될 수 있다.
본 발명은 이기종의 다수의 로봇 간의 상호 연동을 위해 역할(role) 기반 명령어 전이 다이어그램(command transition diagram)으로 표현되는 협업 정책 모델을 제공하고, 이를 이용하는 로봇 시스템 및 그의 제어 방법에 관한 것이다. 본 발명에서는 이기종의 다수의 로봇 간의 상호 연동을 위해 역할 기반 명령어 전이 다이어그램으로 표현되는 협업 정책 모델을 제공하여 이기종의 다수의 로봇 간에 협업 기능을 수행할 수 있게 하고, 이기종의 다수의 로봇 간의 상호 연동을 위한 표준 인터페이스를 제공하여 이기종의 다수의 로봇 간에 제어 기능 및/또는 데이터 전송 기능을 수행할 수 있게 하고, 이기종의 다수의 로봇에 각각 구비되는 다양한 구동부 등의 역할 수행장치의 사양을 파악하고, 조정 및 스케줄링 알고리즘을 제공하여 다수의 로봇의 각각의 기능을 활용하여 협업을 위한 응용을 쉽게 작성하고, 작성된 협업 정책을 기반으로 네트워크로 분산된 로봇들을 협업의 참여자로 동적으로 선정하여 원격에서 조정하여 협업 응용을 수행한다.
이하, 첨부된 도면들을 참조하여, 본 발명에 따른 실시예들에 대하여 상세하게 설명하기로 한다.
도 1은 본 발명의 실시예에 따른 로봇 시스템(10)의 구성도이다.
본 발명의 일 실시예에 따른 로봇 시스템(10)은 로봇 서버(100) 및, 복수의 로봇(200)을 포함한다.
본 발명의 실시예에 따른 로봇 서버(100)는 상기 도 1에 도시한 바와 같이, 로봇 레지스트리부(robot registry unit)(110), 저장부(policy repository)(120), 정책 파서부(policy parser)(130), 정책 팩토리(policy factory)(140), 정책 엔진(policy engine)(150), 역할 레지스트리부(role registry unit)(160), 중개부(매치 메이커부 : match maker)(170), 명령어 매니저(command manager)(180) 및 통신부(190)를 포함한다.
본 발명의 실시예에 따른 로봇 레지스트리부(110)는 통신부(190)를 통해 유/무선 네트워크 상의 복수의 로봇(200)과 각각 통신 연결되면, 각 로봇(200)으로부터 전송되는 해당 로봇(200)의 식별자 정보 및 해당 로봇(200)의 표준 장치 목록 정보를 수신하고, 수신한 해당 로봇(200)의 식별자 정보 및 표준 장치 목록 정보를 등록한다. 여기서 표준 장치는 로봇에 구비된 장치들로서, 입력부, 영상입력부, 감지부, 구동부, 통신부, 디스플레이, 스피커 등이 될 수 있다. 여기서 표준 장치는 로봇 서버의 명령에 따라 구동될 수 있는 장치를 의미한다.
본 발명의 실시예에 따른 저장부(policy repository)(120)는 이기종/동종의 임의의 로봇들 간의 표준화된 플랫폼을 제공하기 위해, 범용의 RPC(원격 객체 함수 호출) 모델에 기반한 표준 인터페이스를 저장한다. 즉, 저장부(120)는 로봇 서버(100)에 의해 정의된 임의의 이기종 또는 동종의 로봇들의 플랫폼들이 갖는 구동부등의 역할 수행장치들, 감지장치에 대해서, 공통의 표준 인터페이스를 저장한다.
한편 본 발명에 따른 표준 인터페이스는 로봇 제어 표준 인터페이스, 센서 관련 표준 인터페이스, 음성 관련 표준 인터페이스, 소리 관련 표준 인터페이스, 카메라 관련 표준 인터페이스, 얼굴 인식 관련 표준 인터페이스 등을 포함한다.
이하에서 기술된 인터페이스는 Java 언어를 기반으로 한 인터페이스 기술 방법이 적용된다. 다만 본 발명의 권리범위는 이에 한정되지 않는다. 예를 들면, 이하에서 기재된 인터페이스인 'service.speech.TextToSpeech' 클래스는 C++ 언어의 경우에는 'service::speech::TextToSpeech'이름의 클래스로 정의될 수 있다. 그 외의 언어의 경우에는 'service_speech_TextToSpeech' 이름으로 기재될 수 있다.
본 발명에 따른 로봇 제어 표준 인터페이스는 로봇 제어 관련 상수, 로봇 제어 관련 구조체, 로봇 제어 관련 인터페이스, 로봇 제어 관련 이벤트, 로봇 제어 관련 Capability를 포함한다.
로봇 제어 관련 상수로는 다음의 상수가 규정된다. 첫째, 'service.robot.Direction'가 규정되며, 이는 로봇의 이동이나 회전 요청시 방향을 나타내는 상수이다. 둘째, 'service.robot.HeadDirection'가 규정되며, 이는 로봇의 머리 회전 방향을 나타내는 상수이다. 셋째, 'service.robot.SwingArmDirection'가 규정되며, 이는 로봇의 팔 회전 방향을 나타내는 상수이다.
로봇 제어 관련 구조체로는 다음의 구조체가 규정된다. 첫째, 'service.robot.BodyPosture'가 규정되며, 이는 로봇의 자세 정보를 정의한다. 자세 정보는 로봇의 주행 지도 상에서 (x, y) 좌표 값과 로봇의 몸통이 향하는 지도 상의 정면 각으로 정의된다. 둘째, 'service.robot.HeadPosture'가 규정되며, 이는 로봇 머리(또는 카메라)의 자세 정보를 정의한다. 자세 정보는 머리의 팬 각도와 틸트 각도로 정의된다.
로봇 제어 관련 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 'service.robot.MoveWheel'가 규정되며, 이는 로봇의 지도를 사용하지 않는 기본적인 바퀴 움직임을 정의한 인터페이스이다. 둘째, 'service.robot.MoveHead'가 규정되며, 이는 로봇 머리의 자세 제어를 정의한 인터페이스이다. 로봇의 머리는 팬(pan) 각도와 틸트(tilt) 각도를 통해 제어된다. 이 두 값은 service.robot.HeadPosture 구조체를 통해 정의된다. 셋째, 'service.robot.Navigation'가 규정되며, 이는 로봇을 주행 지도 상의 주어진 2차원 좌표(x, y)로 이동하고 로봇의 몸통이 지도 상에 정의된 절대 각의 방향으로 향하게 한다. 넷째, 'service.robot.SwingArm'가 규정되며, 이는 로봇의 팔을 주어진 방향(direction)으로 주어진 각도(theta)만큼 회전시킨다.
로봇 제어 관련 Capability로는 다음의 Capability가 규정된다. 첫째, 'service.robot.RadiusTurnControl'가 규정되며, 이는 회전 반경을 가지고 로봇의 회전을 제어하는 Capability 인터페이스를 정의한다. 본 Capability는 service.robot.MoveWheel 객체로부터 얻을 수 있다. 둘째, 'service.robot.AbsoluteHeadControl'가 규정되며, 이는 절대 각도로 로봇의 머리를 회전시키는 Capability 인터페이스를 정의한다. 로봇의 머리는 팬(pan) 각도와 틸트(tilt) 각도로 제어된다. 팬은 로봇의 머리가 좌우로 회전하는 각도를 나타내며, 정면을 0으로 하여 양수 값이면 좌측을 의미하고, 음수 값이면 우측을 의미한다. 틸트는 로봇의 머리를 상하로 회전하는 각도를 나타내며, 정면을 0으로 하여 양수 값이면 위쪽을 의미하고 음수 값이면 아래쪽을 의미한다. 이 두 값은 통합적으로 service.robot.HeadPosture 구조체를 통해 정의된다. 셋째, 'service.robot.RelativeHeadControl'가 규정되며, 상대 각도로 로봇의 머리를 회전시키는 Capability 인터페이스를 정의한다. 로봇의 머리는 팬(pan) 각도와 틸트(tilt) 각도로 제어된다. 팬은 로봇의 머리가 좌우로 회전하는 각도를 나타내며, 로봇의 현재 머리 방향을 0으로 하여 양수 값이면 좌측을 의미하고, 음수 값이면 우측을 의미한다. 틸트는 로봇의 머리가 상하로 회전하는 각도를 나타내며, 로봇의 현재 머리 방향을 0으로 하여 양수 값이면 위쪽을 의미하고 음수 값이면 아래쪽을 의미한다. 이 두 값은 통합적으로 service.robot.HeadPosture 구조체를 통해 정의된다. 넷째, 'service.robot.HeadPostureReader'가 규정되며, 이는 로봇 머리의 현재 회전 각도 값을 얻기 위한 Capability 인터페이스를 정의한다. 로봇의 머리 회전 각도는 팬(pan) 각도와 틸트(tilt) 각도를 통해 제어되고, service.robot.HeadPosture 구조체를 통해 정의된다.
본 발명에 따른 센서 관련 표준 인터페이스는 센서 관련 서비스 인터페이스, 센서 관련 이벤트를 포함한다.
센서 관련 서비스 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 'service.sensor.MotionSensor'가 규정되며, 일정 범위 내의 움직임을 감지하는 센서 인터페이스를 정의한다. service.sensor.MotionSensor 는 작동을 시작하면 주기적으로 움직임 감지를 시도하며, 만일 움직임이 감지되면 service.sensor.MotionDetected 이벤트를 발생시킨다. 둘째, 'service.sensor.TouchSensor'가 규정되며, 터치 센서의 인터페이스를 정의한다. 터치 센서가 가동된 후 터치가 감지되면 service.sensor.TouchEvent 이벤트를 발생시킨다.
센서 관련 이벤트로는 다음의 이벤트가 규정된다. 첫째, 'service.sensor.MotionDetected'가 규정되며, 이는 service.sensor.MotionSensor를 통해 감지되는 움직임을 알리는 이벤트를 정의한다. 둘째, 'service.sensor.TouchEvent'가 규정되며, 이는 접촉 센서에 의해 접촉이 발생한 경우, 이를 알리는 이벤트의 인터페이스를 정의한다.
본 발명에 따른 음성 관련 표준 인터페이스는 음성 관련 인터페이스, 음성 관련 이벤트, 음성 관련 Capability를 포함한다.
음성 관련 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 'service.speech.TextToSpeech'가 규정되며, 이는 문장을 음성 합성하여 스피커를 통해 발성하는 인터페이스를 정의한다. 둘째, 'service.speech.SpeechSensor'가 규정되며, 이는 음성 인식 세션을 관리하는 서비스의 인터페이스를 정의한다. 셋째, 'service.speech.SpeechSession'가 규정되며, 이는 음성 인식 서비스 service.speech. SpeechSensor를 통해 할당된 세션 객체를 정의한다.
음성 관련 이벤트로는 다음의 이벤트가 규정된다. 첫째, 'service.speech.SpeechReceived'가 규정되며, 이는 음성 인식 결과로 발생되는 이벤트를 정의한다.
음성 관련 Capability로는 다음의 Capability가 규정된다. 첫째, 'service.speech.SpeechVoiceControl'가 규정되며, 이는 문장을 여러 목소리로 합성하여 스피커를 통해 발성하는 인터페이스를 정의한다.
본 발명에 따른 소리 관련 표준 인터페이스는 소리 관련 서비스 인터페이스, 소리 관련 Capability를 포함한다.
소리 관련 서비스 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 'service.sound.SoundControl'가 규정되며, 이는 사운드 제어 인터페이스를 정의하며 사운드 장치의 볼륨을 제어하는 service.sound.VolumeControl, 사운드 장치의 음소거를 제어하는 service.sound.MuteControl와 같은 Capability들을 제공할 수 있다. 둘째, 'service.sound.PcmPlayer'가 규정되며, PCM(Pulse Code Modulation)을 재생하는 인터페이스를 정의한다.
소리 관련 Capability로는 다음의 Capability가 규정된다. 첫째, 'service.sound.VolumeControl'가 규정되며, 이는 볼륨 제어와 관련된 Capability 인터페이스를 정의한다. 둘째, 'service.sound.MuteControl'가 규정되며, 이는 음소거와 관련된 서비스 인터페이스를 정의한다.
본 발명에 따른 카메라 관련 표준 인터페이스는 카메라 제어 관련 상수, 카메라 제어 관련 구조체, 카메라 관련 서비스 인터페이스를 포함한다.
카메라 제어 관련 상수로는 다음의 상수가 규정된다. 첫째, 'service.vision.ImageEncoding'가 규정되며, 이는 이미지의 인코딩 방식을 정의한다.
카메라 제어 관련 구조체로는 다음의 구조체가 규정된다. 첫째, 'service.vision.Resolution'가 규정되며, 이는 이미지 해상도를 정의한 구조체이다. 둘째, 'service.vision.ImageFormat'가 규정되며, 이는 이미지 형식을 정의한 구조체이다. 셋째, 'service.vision.Image'가 규정되며, 이는 영상 작업에 사용되는 이미지의 인터페이스를 정의한다.
카메라 관련 서비스 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 'service.camera.Camera'가 규정되며, 이는 이미지를 캡쳐할 수 있도록 카메라를 개방하는 인터페이스이다.
본 발명에 따른 얼굴 인식 관련 표준 인터페이스는 얼굴 인식 관련 상수, 얼굴 검출/인식 관련 서비스 인터페이스를 포함한다.
얼굴 인식 관련 상수로는 다음의 상수가 규정된다. 첫째, 'service.geo.Point'가 규정되며, 검출된 영상 내 눈 위치 정보를 정의한다. 둘째, 'service.geo.Rectangle'가 규정되며, 검출된 영상 내 얼굴 위치 정보를 정의한다. 셋째, 'service.vision.FaceId'가 규정되며, 검출된 얼굴의 식별자 정보를 정의한다. 넷째, 'service.vision.FaceInfo'가 규정되며, 검출된 얼굴의 식별자 정보를 정의한다.
얼굴 검출/인식 관련 서비스 인터페이스로는 다음의 인터페이스가 규정된다. 첫째, 얼굴 검출 서비스의 인터페이스인 'service.vision.face.FaceDetector'가 주어진 이미지에서 검출된 모든 얼굴들의 위치를 반환하는 함수를 제공한다. 또한, 'service.vision.face.FaceDetector'가 정상적인 얼굴 검출 알고리즘 결과로 얼굴이 검출되지 않은 경우는 길이 0의 Rectangle 배열을 반환하는 함수를 제공한다. 둘째, 얼굴 인식 서비스의 인터페이스인 'service.vision.face.FaceRecognizer'는 얼굴 인식 대상 얼굴을 추가하는 함수를 제공한다.
이러한 표준 인터페이스는 도 2에 도시한 바와 같이, 각각의 표준 API에 대해서 명령어 패턴(command pattern)을 적용하여 사용자의 요청을 캡슐화(encapsulation)한다. 이와 같이, 사용자의 요청을 캡슐화하여, 사용자가 임의의 로봇을 제어하기 위해 세부적인 API가 아닌 명령어에 속성값들을 부여하여, 원격에서 용이하게 이기종의 로봇 장치들을 제어할 수 있다.
또한, 범용의 RPC 모델에 기반한 표준 인터페이스는, 상호 연결되는 로봇 서버와 복수의 로봇 또는, 복수의 로봇 간에 서버/클라이언트 모델을 사용하며, 서비스를 요청하는 프로그램이 클라이언트가 되고 서비스를 제공하는 프로그램이 서버가 될 수 있다. 또한, 다른 정상적인 또는 자체적인 프로시저의 호출과 마찬가지로, RPC도 요청하는 프로그램이 원격 절차의 처리 결과가 반환될 때까지 일시 정지되어야 하는 동기 운영이다. 그러나, 가벼운 프로세스의 사용이나, 같은 주소공간을 공유하는 스레드 등은 여러 개의 RPC들을 동시에 수행될 수 있도록 허용한다.
그리고 저장부(120)는 통신 연결된 임의의 로봇(200)에 포함된 감지장치들로부터 전송되는 센서 정보를 수신하기 위해 표준 이벤트 타입을 저장한다. 여기서, 저장부(120)에 저장되는 명령어(command)는 서비스를 추상화시킨 모델로서 하나 이상의 서비스로 구성된다. 또한, 이러한 서비스의 동작은 비동기적으로 실행된다. 공통적으로 모든 서비스는 종료되었을 경우에 이벤트를 발송한다. 발송된 이벤트에는 서비스의 종료 상태를 포함하여 몇가지 추가적인 정보를 포함한다. 따라서, 서비스의 상태를 알기 위해서는 콜백(callback) 함수를 서비스에 추가함으로써 서비스의 상태에 대한 정보를 획득할 수 있다. 또한, 일부 서비스는 정보를 전달하기 위해서 별도의 이벤트를 발송하기도 한다.
이러한 명령어로는 다음과 같은 것을 예로 들 수 있다. 즉, 명령어는 'goto_landmark', 'goto_position', 'nop', 'onetime_face', 'onetime_speech', 'onetime_touch', 'play_media', 'play_pcm', 'speak', 'turn_head', 'turn_body', 'swing_arm', 'swing_arm_absolutely' 등을 포함할 수 있다.
여기서, 'goto_landmark' 명령어는 정해진 랜드마크로 이동하는 명령어를 나타내며 이동할 랜드마크 정보와 도착한 후의 자세 교정 정보 등을 포함하고, 'goto_position' 명령어는 정해진 위치로 이동하는 명령어를 나타내며 이동할 위치 정보와 도착한 후의 자세 교정 정보 등을 포함하고, 'nop' 명령어는 아무런 동작을 하지 않는 명령어를 나타내고, 'onetime_face' 명령어는 얼굴 인식 센서를 한번만 사용하는 명령어를 나타내며 인식할 사용자 정보와 얼굴 인식 허용 최저 점수 등을 포함하고, 'onetime_speech' 명령어는 음성 인식 센서를 한번만 사용하는 명령어를 나타내며 인식어 리스트와 음성 인식 허용 최저 점수 등을 포함하고, 'onetime_touch' 명령어는 접속 감지 센서를 한번만 사용하는 명령어를 나타내며 접촉 대상 목록 등을 포함하고, 'play_media' 명령어는 미디어를 재생하는 명령어를 나타내며 재생한 미디어 정보 등을 포함하고, 'play_pcm' 명령어는 PCM 파일을 재생하는 명령어를 나타내며 재생한 PCM 파일 정보 등을 포함하고, 'speak' 명령어는 음성 서비스 명령어를 나타내며 발성할 내용 등을 포함하고, 'turn_head' 명령어는 머리를 움직이는 명령어를 나타내며 수평 이동각과 수직 이동각 등을 포함하고, 'turn_body' 명령어는 몸통을 움직이는 명령어를 나타내며 몸통을 회전시킬 각도와 몸통을 회전할 방향 등을 포함하고, 'swing_arm' 명령어는 현재 위치를 기준으로 상대적으로 팔을 움직이는 명령어를 나타내며 움직일 팔 정보와 움직일 발향 정보 등을 포함하고, 'swing_arm_absolutely' 명령어는 절대 각도로 팔을 움직이는 명령어를 나타내며 이동할 위치 정보와 도착한 후의 자세 교정 정보 등을 포함한다.
그리고 저장부(120)는 명령어들에 대한 연산자(operator)를 저장한다. 이러한 연산자를 사용함으로써 각 연산자가 갖는 성질을 이용해서 명령어를 실행시킬 수 있다. 또한, 연산자는 내부에 명령어와 더불어 연산자까지 포함함으로써 네스티드(nested)된 구조의 실행도 가능하다.
이러한 연산자로는 다음과 같은 것을 예로 들 수 있다. 즉, 연산자는 'background', 'concurrent', 'delayed', 'periodic', 'sequential', 'timed' 등을 포함할 수 있다.
여기서, 'background' 연산자는 전위/후위 실행 구조를 갖는 연산자를 나타내며, 전위/후위에는 1개씩의 명령어나 명령어를 포함하고 있는 연산자가 올 수 있으며, 우선 순위는 전위에서 실행되는 대상이 높으며, 전위에서 실행되는 대상이 종료하면 후위에서 실행되는 대상에 대한 종료 여부에 상관없이 연산자를 종료한다. 또한, 'concurrent' 연산자는 여러 개의 명령어나 명령어를 포함하고 있는 연산자를 동시에 실행시킬 수 있는 연산자를 나타내며, 포함하고 있는 모든 명령어나 연산자가 종료되거나 예외 상황 또는 에러가 발생한 경우 연산자를 종료한다. 또한, 'delayed' 연산자는 일정 시간이 지난 후에 포함하고 있는 명령어나 연산자를 실행시키는 연산자를 나타내며, 단 1개의 명령어나 명령어를 포함한 연산자를 포함할 수 있다. 또한, 'periodic' 연산자는 일정 시간이 지난 후에 실행 주기 간격으로 정해진 횟수만큼 실행되는 연산자를 나타내며, 단 1개의 명령어나 명령어를 포함한 연산자를 포함할 수 있다. 또한, 'sequential' 연산자는 여러 개의 명령어나 명령어를 포함한 연산자를 순차적으로 실행시키는 연산자를 나타낸다. 한, 'timed' 연산자(또는, 'timeout' 연산자)는 정해진 시간 동안만 실행하는 연산자를 나타내며, 단 1개의 명령어나 명령어를 포함한 연산자를 포함할 수 있다.
또한, 상기 저장부(120)에 저장되는 명령어는 도 3에 도시한 바와 같이, 컴포지트 패턴(composite pattern)을 따른다. 즉, 명령어(340)는 트리(tree) 구조를 가지며, 말단 노드(leaf node)인 심플 명령어(simple command)(320)와 컴포지트 명령어(composite command)(330)가 복합 구조를 갖는다. 그리고 모든 심플 명령어(320)는 하나의 역할(role)(310)에 각각 포함된다. 여기서, 역할(310)은 임의의 협업을 위해 참여한 장치의 역할을 의미하며, 역할 수행을 위해 필요한 명령어들의 집합으로 표현되고, 협업 정책을 모델링하는 사용자에 의해 모델링된다. 즉, 역할은 명령어들의 논리적인 조합으로 다른 역할들과 구별되는 고유한 ID 값을 가지며, 여러 개의 명령어 참조값을 가질 수 있다. 또한, 역할에서의 명령어는 명령어 참조 값을 나타낸다. 여기서, 심플 명령어는 협업 역할을 수행하기 위해 하나의 명령어로 이루어지며, 컴포지트 명령어는 협업 역할을 수행하기 위해 둘 이상의 명령어로 이루어진다.
또한, 컴포지트 명령어의 타입(type)과 의미(semantic)는 다음과 같다. 즉, 순서 명령어(420)는 마지막 명령어의 수행이 종료될 때까지 포함하는 명령어들을 순서대로 수행하고, 동시 명령어(430)는 모든 명령어들의 수행이 종료될 때까지 포함하는 명령어들을 동시에 수행하고, 통합 백그라운드 명령어(440)는 포워그라운드(foreground) 명령어와 백그라운드 명령어가 동시에 수행을 시작하여 포워그라운드 명령어가 종료될 때까지 수행되며, 만일 포워그라운드 명령어가 먼저 종료되면 백그라운드 명령어의 수행을 강제로 취소하고, 타임아웃(450) 명령어는 지정된 타임아웃 시간 동안 명령어를 수행하며, 타임아웃이 발생하면 수행하던 명령어의 수행을 강제로 취소하고, 지연(460) 명령어는 지정된 지연 시간 후에 명령어를 수행한다. 또한, 도 4에 나타낸 것처럼, 컴포지트 명령어는 다른 컴포지트 명령어에 의해 다양하게 조합할 수 있다.
도 4는 역할 1(R1)(411)과 역할 2(R2)(412)의 두 개의 역할이 모델링될 때, 조합될 수 있는 컴포지트 명령어들의 예를 나타낸다. 여기서, 컴포지트 명령어는 순서(sequential) 명령어(420), 동시(concurrent) 명령어(430), 통합 백그라운드(background) 명령어(440), 타임아웃(timeout) 명령어(450) 및, 지연(delay) 명령어(460) 중 적어도 하나 이상을 포함한다.
본 실시예에서는 역할 1(R1)(411)은 n개의 심플 명령어(C1, C2,..., Cn)를 포함하고, 역할 2(R2)(412)는 m개의 심플 명령어(C1, C2,..., Cm)을 포함한다.
본 도면에서는 순서 명령어(420)의 실시예를 도시하고 있으며, 본 실시예에서는, 역할 1(R1)(411)의 C1 명령어가 수행되고, 그 다음에 지연 명령어가 수행된다. 그 다음에 타임아웃 명령어가 순차적으로 수행된다.
한편, 본 도면에서는 동시 명령어(430)의 실시예를 도시하고 있으며, 본 실시예에서는, 역할 1(R1)(411)의 C1 명령어가 수행됨과 동시에 순서 명령어가 수행된다.
그리고 본 도면에서는 통합 백그라운드 명령어(440)의 실시예를 도시하고 있으며, 본 실시예에서는, 포워그라운드 명령어인 동시 명령어와, 백그라운드 명령어인 역할 2(R2)(412)의 C2 명령어가 동시에 수행되되, 동시 명령어가 종료되는 경우에는 역할 2(R2)(412)의 C2 명령어도 수행이 취소된다.
그리고 본 도면에서는 타임아웃 명령어(450)의 실시예를 도시하고 있으며, 본 실시예에서는, 통합 백그라운드 명령어가 소정의 시간(본 실시예에서는 300ms) 동안 수행되고, 소정의 시간이 경과된 후에는 통합 백그라운드 명령어는 강제로 수행 취소된다.
그리고 본 도면에서는 지연 명령어(460)의 실시예를 도시하고 있으며, 본 실시예에서는, 타임아웃 명령어가 소정의 시간(본 실시예에서는 300ms)이 지난 후에 수행된다.
그리고 저장부(120)는 템플릿 모델(template model)을 저장한다. 여기서, 저장부(120)에 저장되는 템플릿은 개발자가 정책을 설계하는 과정에서 보다 반복적으로 사용하거나 특정 패턴으로 실행하고자 하는 명령어 또는 명령어들의 조합을 저장해두는 공간이다.
이러한 템플릿으로는 다음과 같은 것을 예로 들 수 있다. 즉, 템플릿은 '명령어(command)', 'background', 'concurrent', 'delayed', 'periodic', 'sequential', 'timed' 등을 포함할 수 있다.
여기서, '명령어'는 속해 있는 역할과 역할 내에서의 ID를 포함하는 명령어를 나타내고, 'background'는 템플릿 내에서의 백그라운드를 나타내고, 'concurrent'는 템플릿 내에서의 concurrent를 나타내고, 'delayed'는 템플릿 내에서의 delayed를 나타내고, 'periodic'은 템플릿 내에서의 periodic을 나타내고, 'sequential'은 템플릿 내에서의 sequential을 나타내고, 'timed'는 템플릿 내에서의 timed를 나타낸다.
그리고 저장부(120)는 모델(model)을 저장한다. 여기서 저장부(120)에 저장되는 모델 내에서의 명령어와 연산자는 2가지 형태로 구분된다.
첫번째는 실행 단위로서의 기능을 갖는 commandable과 연산자 내부에서 위치하게 되는 executable이다. 명령어 모델 객체가 commandable인 경우는 executable 정보까지 포함하고, 연산자 모델이 commandable인 경우는 commandable 정보만 포함하고 executable에 해당하는 경우는 추가적인 정보를 갖지는 않는다. 즉, commandable은 실행 단위를 나타내는 정보를 나타내며 연산자 모델과 명령어 모델 모두에 적용된다. 또한, executable은 연산자 내부에 위치해서 실행되는 정보를 나타내며 명령어 모델에만 적용된다. 또한, 분기는 명령어 모델이나 연산자 모델 사이에서 발생한다. 여기서, 분기가 발생하는 경우는 분기가 기술되어 있는 명령어나 연산자에서 이벤트와 조건이 만족되는 경우이다. 분기가 발생하는 경우에 특성들에 필요한 데이터를 저장할 수 있다.
이러한 분기로는 다음과 같은 것을 예로 들 수 있다. 즉, 분기는 'rule', 'assign', 'transition' 등을 포함할 수 있다.
여기서, 'rule'은 이벤트와 조건 정보를 포함하고 있는 모델을 나타내며, 이벤트와 조건이 모두 만족하는 경우 assing에 해당하는 동작을 한다. 또한, 'assign'은 분기되는 시점에서 데이터를 공유하기 위한 모델을 나타내며, assing의 var가 특성(property)의 참조 변수, value가 참조값이 된다. 또한, 'transition'은 qnsrl 정보를 포함하고 있는 모델을 나타내며, 분기가 이루어지는 곳과 목적지에 대한 정보를 가진다. XSD 모델에서와 같이 하나의 분기는 여러 가지의 규칙을 포함할 수 있으며, rule 내부에서의 assing 객체들과 별도로 assing 객체들을 갖는다. 또한, 이러한 모델은, PMT에서 설계되는 정책 모델일 수 있다.
그리고 저장부(120)는 엔진 모델(engine model)을 저장한다. 여기서, 저장부(120)에 저장되는 엔진 모델은 PMT에서 설계된 정책 모델이 컴파일 과정을 거쳐서 임의의 클라이언트 정보를 이용해서 실제로 실행되는 응용 모델을 의미한다.
또한, 응용 모델은 statechart 구조를 따르며 중요 데이터 모델로는 'StateChart', 'State', 'Command', 'Rule' 등을 포함할 수 있다.
여기서, 'StateChart'는 엔진 모델을 실제로 실행시키는 응용 모델을 나타낸다. 또한, 'State'는 StateChart 내에서의 실행 단위 모델을 나타내며, state는 'Entry', 'Rules(Handle Event)', 'Exit' 로 구성되며, 정책 모델에서 기술된 명령어 모델 객체는 컴파일 과정을 거친 후 Entry 내에 위치하게 된다. 또한, 'Command'는 State 내에서의 실행 모델을 나타내며, 컴파일 과정을 거치면서 추가된 Role 정보를 바탕으로 실행된다. 또한, Role 정보는 컴파일 과정을 거치면서 명령어 모델 객체로 추가된다. 또한, 명령어 매니저는 특정 State로 진입하게 되면, State의 Entry에 존재하는 명령어 정보를 전달받아 Dynamic Device Match Maker로부터 특정 클라이언트(또는 특정 단말) 정보를 획득한 후, 특정 클라이언트로부터 서비스를 획득해서 실행 가능한 객체를 State로 반환한다. 또한, 'Rule'은 State간 전이에 관한 정보를 가지고 있는 모델을 나타내며, State는 여러 개의 Rule 객체를 소유할 수 있으며, 각 Rule 객체는 별도의 전이 목적지, Assing 객체 및 이벤트와 그에 상응하는 조건 정보들을 소유한다. 또한, State가 실행되는 도중 이벤트가 전달되면, 각 Rule 객체에 기술되어 있는 이벤트와 조건을 비교한 후, Rule 객체에 기술되어 있는 목적지로 전이를 한다.
그리고 저장부(120)는 역할, 명령어, 전이(transition) 및, 전이 규칙(transition rule)으로 구성되는 협업 정책 모델을 저장한다. 여기서, 협업 정책 모델은 도 5에 도시한 바와 같이, 명령어 전이 다이어그램(command transition diagram)으로 표현할 수 있다. 또한, 명령어 간의 전이는 전이 규칙을 만족할 때 이루어지며, 전이 규칙은 이벤트와 조건(condition)을 포함한다. 여기서 전이 규칙은 명령어 수행의 협업 역할이 전환되는 전이를 발생시키는 규칙을 의미한다.
또한, 모든 명령어에 대한 수행이 종료되면 미리 설정된 명령어 종료 이벤트(예를 들어, "CommandFinished Event")가 발생하며, 도 2에서처럼 감지장치를 캡슐화한 명령어의 경우에는, 종료되기 전이라도 감지장치로부터 전달받은 이벤트를 발생시킨다.
본 발명의 실시예에 따른 도 5에서 모델링하는 협업 정책은 다음과 같다. 여기서, 협업 정책은 시나리오, 역할, 명령어 및, 전이 규칙 등을 포함한다. 즉, 시나리오는 선생 로봇(teacher robot)과 학생 로봇(student robot)이 서로 간단한 대화를 반복하는 경우이며, 먼저 선생 로봇이 '하이'라고 말하고 학생 로봇이 이를 음성 인식하게 되면, 학생 로봇이 '안녕하세요' 라고 말하고 선생 로봇이 이를 음성 인식하게 되면, 다시 선생 로봇이 '하이' 라고 말하는 경우이다. 또한, 역할은 선생(511)과 학생(512)을 포함하며, 각각 말하기(speak)와 듣기(listen)를 포함한다. 또한, 명령어는 '선생.말하기(teacher.speak)'와 '학생.듣기(student.listen)'를 동시에 컴포지트하여 선생 로봇이 말할 때 학생 로봇이 이를 음성 인식하는 '명령어1'(521)과, '학생.말하기(student.speak)'와 '선생.듣기(teacher.listen)'를 동시에 컴포지트하여 학생 로봇이 말할 때 선생 로봇이 이를 음성 인식하는 '명령어2'(522)를 포함한다. 또한, 전이 규칙은 '학생.듣기'로부터 미리 설정된 'SpeechReceived' 이벤트가 전달되고 인식된 음성 인식 결과가 '하이'이면, 명령어1(521)에서 명령어2(522)로 전이하는 전이 규칙1(531)과, '선생.듣기'로부터 미리 설정된 'SpeechReceived' 이벤트가 전달되고 인식된 음성 인식 결과가 '안녕하세요'이면, 명령어2(522)에서 명령어1(521)로 전이하는 전이 규칙2(532)를 포함한다.
그리고 저장부(120)는 로봇 서버(100)가 동작하는데 필요한 프로그램과 데이터 등을 저장한다. 또한, 저장부(120)는 플래시 메모리 타입(Flash Memory Type), 하드 디스크 타입(Hard Disk Type), 멀티미디어 카드 마이크로 타입(Multimedia Card Micro Type), 카드 타입의 메모리(예를 들면, SD 또는 XD 메모리 등), 자기 메모리, 자기 디스크, 광디스크, 램(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) 중 적어도 하나의 저장매체를 포함할 수 있다.
본 발명의 실시예에 따른 정책 파서부(130)는 저장부(120)에 미리 저장된 임의의 협업 정책을 읽어오고, 읽어온 협업 정책을 파싱(parsing)한다.
본 발명의 실시예에 따른 정책 팩토리(140)는 정책 파서부(130)로부터 파싱한 협업 정책을 근거로 정책 엔진(150)이 수행할 수 있는 협업 응용을 생성한다.
본 발명의 실시예에 따른 정책 엔진(150)은 정책 팩토리(140)에 의해 생성된 협업 응용을 근거로 협업 기능을 수행한다.
본 발명의 실시예에 따른 역할 레지스트리부(160)는 정책 파서부(130)에 의해 협업 정책을 파싱하는 과정에서, 협업 정책에 모델링된 하나 이상의 역할들과 각 역할을 수행하기 위해 필요한 하나 이상의 명령어 종류들을 등록한다.
본 발명의 실시예에 따른 중개부(170)는 생성된 협업 응용에 포함된 각 역할들에 대해 실제 복수의 로봇(200) 중 어느 하나(또는, 하나 이상의 로봇)를 바인딩시킨다. 즉, 중개부(170)는 역할을 수행하기 위해 명령어들이 필요한 명령어 소비자(command consumer)에 해당하는 각 역할들과, 명령어들을 제공하는 명령어 제공자(command provider)에 해당하는 복수의 로봇(200)에 대해서, 복수의 역할들과 복수의 로봇(200)들 간의 매칭 메이킹(match making)을 수행한다. 또한, 중개부(170)는 로봇 레지스트리부(110)에 등록된 로봇의 식별자와 표준 장치 목록 및, 역할 레지스트리부(160)에 등록된 하나 이상의 역할을 조회(매칭)하고, 조회 결과를 근거로 각 역할들을 수행할 수 있는 대상 로봇들의 리스트를 생성하여 출력한다.
본 발명의 실시예에 따른 명령어 매니저(180)는 중개부(170)로부터 출력된 협업 응용에 포함된 하나 이상의 역할에 대해 각 역할을 수행할 수 있는 대상 로봇들의 리스트를 근거로 각 역할을 상기 복수의 로봇(200)들에 각각 바인딩하여, 협업에 참여할 로봇을 선정한다.
그리고 명령어 매니저(180)는 명령어 팩토리(181) 및, 명령어 컨테이너(182)를 포함한다.
그리고 명령어 매니저(180)는 협업에 참여할 로봇이 모두 선정되면, 협업 모델에서 'role.command' 로 표현되었던 명령어들을 'robot.command' 로 대체한다. 즉, 해당 명령어를 어떤 로봇이 제공하는 표준 장치를 통해 수행할 것인지를 결정하고, 각 명령어 전이 다이어그램으로 표현되는 각 명령어들에 대해서 명령어 팩토리(181)를 통해 임의의 역할에 대응하는 대상 로봇의 표준 장치와 바인딩된 명령어 객체를 생성하고, 생성한 명령어 객체를 수행한다.
본 발명의 실시예에 따른 명령어 팩토리(181)는 협업에 참여할 로봇을 선정하며, 각 명령어 객체를 생성하고, 생성한 명령어 객체를 수행한다.
본 발명의 실시예에 따른 명령어 컨테이너(182)는 명령어 팩토리(181)에 의해 선정되고 생성된 각종 정보를 저장한다.
본 발명의 실시예에 따른 통신부(190)는 협업 응용에 따른 역할 및 명령어에 대한 각 정보를 각 로봇에 송신하는 역할을 수행한다. 또한 통신부(190)는 각각의 로봇으로부터 각 로봇의 식별자에 대한 정보, 각 로봇에 구비된 표준 장치 목록에 대한 정보를 수신하는 역할을 수행한다.
본 발명의 실시예에 따른 복수의 로봇(200)은 동종 및/또는 이기종의 통신 프로토콜을 기초로, 본 명세서에 기재된 범용의 RPC 모델에 기반한 표준 인터페이스를 이용하여 동종 및/또는 이기종의 서버 및/또는 로봇과 임의의 정보/데이터를 송수신할 수 있다.
그리고 로봇(200)은 해당 로봇에 구비된 표준 장치들을 관리하고 제어하는 로봇 매니저를 포함한다.
그리고 복수의 로봇(200)은 다양한 기능을 수행하는 다양한 장치를 각각 구비한다. 즉, 로봇(200)은 입력부(210), 영상 입력부(220), 감지부(230), 저장부(240), 구동부(250), 통신부(260), 전원부(270), 디스플레이(280), 스피커(290), 및 로봇 매니저(300)를 포함한다.
한편 이하에서는 구동부(250), 디스플레이(280), 영상 입력부(220), 감지부(230), 스피커(290) 등을 수행장치(수행부)라고 기술한다. 여기서 수행장치(수행부)는 로봇 서버의 명령어에 따라 명령을 수행하는 장치를 의미한다. 만약 명령어가 음성에 대한 것이라면, 수행장치는 스피커(290)가 될 것이다. 명령어가 화상 표시에 대한 것이라면, 수행장치는 디스플레이(280)가 될 것이다. 명령어가 로봇의 움직임에 대한 것이라면, 수행장치는 구동부(250)가 될 것이다. 명령어가 영상 촬영에 대한 것이라면, 수행장치는 영상 입력부(220)가 될 것이다. 명령어가 로봇의 위치 감지 등에 대한 것이라면, 수행장치는 감지(230)가 될 것이다.
본 발명의 실시예에 따른 입력부(210)는 사용자에 의해 입력된 정보에 대응하는 신호를 수신하며, 키패드(Key Pad), 돔 스위치(Dome Switch), 조그셔틀, 마우스(mouse), 스타일러스 펜(Stylus Pen), 터치스크린(touch screen), 터치 패드(정압/정전), 터치 펜(Touch Pen) 등의 다양한 장치가 사용될 수 있다.
그리고 입력부(210)는 오디오 신호를 수신하기 위한 적어도 하나 이상의 마이크(미도시)를 포함할 수 있다. 또한, 입력부(210)는 마이크를 통해 임의의 음향 신호(또는, 음향 정보) 및/또는 사용자의 음성 신호(또는, 사용자의 음성 정보)를 수신한다.
그리고 마이크는, 통화 모드, 녹음 모드, 음성 인식 모드, 영상 회의 모드, 영상 통화 모드 등에서 마이크로폰(Microphone)에 의해 외부의 음향 신호(사용자의 음성(음성 신호 또는 음성 정보) 등 포함)를 수신하여 전기적인 음성 데이터로 처리한다. 또한, 상기 처리된 음성 데이터(일 예로, 음향 신호, 음성 신호, TV의 오디오 신호 등에 대응하는 전기적인 음성 데이터 포함)는 스피커(290)를 통해 출력하거나 또는, 통신부(260)를 통하여 외부 단말기로 송신 가능한 형태로 변환되어 출력될 수 있다.
본 발명의 실시예에 따른 영상 입력부(220)는 로봇 매니저(300)의 제어에 의해 영상 정보를 촬상한다. 또한, 영상 입력부(220)는 로봇(200)의 소정 위치(상면, 측면 등)에 구비되는 카메라 등의 이미지 센서를 포함한다. 그리고 카메라는 이미지 센서(카메라 모듈 또는, 카메라)에 의해 얻어지는 정지영상(gif 형태, jpeg 형태 등 포함) 또는 동영상(wma 형태, avi 형태, asf 형태 등 포함) 등의 화상 프레임을 처리한다. 즉, 코덱(codec)에 따라 이미지 센서에 의해 얻어지는 해당 화상 데이터들을 각 규격에 맞도록 인코딩(encoding)한다. 처리된 화상 프레임은 로봇 매니저(300)의 제어에 의해 디스플레이(280)에 표시될 수 있다. 일 예로, 카메라는 객체(또는, 피사체)를 촬영하고, 그 촬영된 영상(피사체 영상)에 대응하는 비디오 신호를 출력한다. 또한, 카메라에서 처리된 화상 프레임은 저장부(240)에 저장되거나 통신부(260)를 통해 통신 연결된 임의의 외부 단말기에 전송될 수 있다.
본 발명의 실시예에 따른 감지부(230)는 로봇(200)의 소정 위치(예를 들어, 측면 등)에 구비되며, 주행 또는 비주행 중 로봇(200)의 소정 거리 이내에 존재하는 물체(또는, 장애물)를 감지(또는, 검출)한다.
그리고 감지부(230)는 RF 센서(Radio Frequency Sensor), 적외선 센서(Infrared Sensor), 초음파 센서(Supersonic Sensor) 등의 신호를 송/수신하여 수신된 신호를 통해 장애물의 위치 및 장애물과의 거리를 검출하는 센서 또는, 장애물과의 충돌에 의해 장애물을 감지하는 충돌 센서 등을 포함한다.
본 발명의 실시예에 따른 저장부(240)는 로봇(200)이 동작하는데 필요한 프로그램과 데이터 등을 저장한다. 또한, 저장부(240)는 플래시 메모리 타입, 하드 디스크 타입, 멀티미디어 카드 마이크로 타입, 카드 타입의 메모리, 자기 메모리, 자기 디스크, 광디스크, 램, SRAM, 롬, EEPROM, PROM 중 적어도 하나의 저장매체를 포함할 수 있다.
그리고 저장부(240)는 각 로봇(200)에 구비되는 각각의 장치들의 목록, 즉 표준 장치 목록을 저장한다. 또한 각 로봇(200)을 식별할 수 있는 정보인 식별자 정보를 저장한다.
한편 본 실시예에 따른 저장부(240)는 본 발명에 따른 협업 정책 모델를 저장할 수 있다. 이러한 경우 복수의 로봇(200)은 저장된 협업 정책 모델을 이용하여 협업 동작을 수행할 수 있다.
본 발명의 실시예에 따른 구동부(액츄에이터)(250)는 적어도 하나 이상의 바퀴를 포함하고, 모터 등의 구동부에 의해 상기 적어도 하나 이상의 바퀴를 구동시킨다.
그리고 구동부(250)는 로봇 매니저(300)의 제어에 의해 이동, 정지, 방향 전환 등의 주행 동작을 수행한다.
그리고 구동부(250)는 엔코더(encorder) 등의 센서들이 연결될 수 있다.
본 발명의 실시예에 따른 통신부(260)는 로봇 서버(100) 또는 임의의 로봇(200)과 유/무선 통신 방식에 의해 상호 연결을 수행한다. 여기서, 무선 네트워크는 무선 인터넷 접속을 위한 모듈 또는 근거리 통신(Short Range Communication)을 위한 모듈을 포함할 수 있다. 여기서, 무선 인터넷 기술로는 무선랜(Wireless LAN : WLAN), 와이브로(Wireless Broadband : Wibro), 와이 파이(Wi-Fi), 와이맥스(World Interoperability for Microwave Access : Wimax), HSDPA(High Speed Downlink Packet Access) 등이 포함될 수 있고, 또한, 근거리 통신 기술로는 블루투스(Bluetooth), 지그비(ZigBee), UWB(Ultra Wideband), RFID(Radio Frequency Identification), 적외선 통신(Infrared Data Association : IrDA) 등이 포함될 수 있다. 또한, 유선 통신 기술은, USB(Universal Serial Bus) 통신 등을 포함할 수 있다.
그리고 통신부(260)는 로봇 매니저(300)의 제어에 의해 임의의 로봇 서버(100) 또는 임의의 로봇(200)과 통신 연결하면, 저장부(240)에 미리 저장된 해당 로봇에 구비된 표준 장치들의 목록 및 로봇의 식별자에 대한 정보를 임의의 로봇 서버(100)에 제공한다. 또한 통신부(260)는 로봇 서버로부터 협업 응용에 따른 로봇의 역할에 대한 정보 및 해당 역할에 대해 로봇이 수행해야 하는 명령어에 대한 정보를 수신한다.
본 발명의 실시예에 따른 전원부(270)는 외부 전원 공급 장치로부터 공급되는 전원을 저장(또는, 충전)한다. 또한, 전원부(270)는 로봇(200)에 구비된 각 구성 요소에 전원을 공급한다. 또한, 전원부(270)는 건전지, 충전지, 정류기 등을 포함할 수 있다.
그리고 전원부(270)는 단일 장치로 구성된 배터리를 포함하거나 또는 복수의 배터리가 하나의 팩(배터리 팩)을 형성한다. 그리고 전원부(270)는 복수의 배터리가 구비된 경우, 복수의 배터리들이 서로 직렬로 연결되며, 복수의 배터리 사이에는 하나 이상의 안전 스위치가 포함될 수 있다.
그리고 전원부(270)는 외부 전원 공급 장치와 유/무선 충전 방식에 의해 전원을 공급받을 수 있다. 즉, 전원부(270)는 외부 전원 공급 장치와 전원 콘센트와 같은 구성 요소에 의해 직접 연결되거나 또는, 전원부(270)와 외부 전원 공급 장치가 각각 송/수신부를 구비하고, 송/수신부 간에 자기 동조 방식(Magnetic Resonance Coupling Method), 전자기 유도 방식(Electromagnetic Induction Mehtod), 전파 방식(Radiowave Method) 중 어느 하나를 이용하여 전원부(270)가 충전될 수도 있다. 즉, 전원부(270)와 외부 전원 공급 장치는 무선으로 충전할 수 있도록 구성할 수도 있으며, 무선 충전 시, 그에 따른 수신부와 송신부의 구성은 이 분야의 통상의 기술을 가진자에 의해 용이하게 설계되어 그 기능이 수행될 수 있다.
본 발명의 실시예에 따른 디스플레이(280)는 로봇(200)의 소정 위치(측면, 상면 등)에 설치되고, 로봇 매니저(300)에 의해 생성된 각종 정보(영상 입력부(220)에 의해 촬영된 영상 포함)를 표시한다.
그리고 디스플레이(280)는 액정 디스플레이(Liquid Crystal Display : LCD), 박막 트랜지스터 액정 디스플레이(Thin Film Transistor-Liquid Crystal Display : TFT LCD), 유기 발광 다이오드(Organic Light-Emitting Diode : OLED), 플렉시블 디스플레이(Flexible Display), 전계 방출 디스플레이(Feld Emission Display : FED), 3차원 디스플레이(3D Display) 중에서 적어도 하나를 포함할 수 있다.
그리고 디스플레이(280)는 로봇(200)의 구현 형태에 따라 디스플레이(280)가 2개 이상 존재할 수 있다. 예를 들면, 로봇(200)에 복수의 디스플레이들이 하나의 면(동일면)에 이격되거나 일체로 배치될 수 있고, 또한 서로 다른 면에 각각 배치될 수도 있다.
그리고 디스플레이(280)는 터치 동작을 감지하는 센서가 구비되는 경우, 출력 장치 이외에도 입력 장치로도 사용될 수 있다. 즉, 터치 필름, 터치 시트, 터치 패드 등의 터치 센서가 디스플레이(280)에 구비되는 경우, 디스플레이(280)는 터치 스크린으로 동작할 수 있다.
본 발명의 실시예에 따른 스피커(290)는 로봇 매니저(300)에 의해 생성된 각종 정보에 포함된 음성 정보를 출력한다.
그리고 스피커(290)는 로봇 매니저(300)의 제어에 의해 임의의 음성 인식 결과를 출력한다.
본 발명의 실시예에 따른 로봇 매니저(제어부)(300)는 임의의 로봇 서버(100)와 통신 연결되면, 저장부(240)에 미리 저장된 로봇(200)에 구비된 장치들의 목록, 즉 표준 장치 목록을 통신부(260)를 통해 로봇 서버(100)에 전송하도록 제어한다.
그리고 로봇 매니저(300)는 임의의 로봇 서버(100)에 의해 생성된 명령어 객체를 통신부(260)를 통해 수신하고, 수신한 명령어 객체를 근거로 임의의 역할(role)을 수행한다. 즉 로봇 매니저(300)는 명령어 객체를 기초로 하여 수행장치가 구동되도록 제어한다.
즉, 로봇 매니저(300)(예를 들어, 선생 로봇에 해당)는 도 5를 참조할 경우, 임의의 로봇(예를 들어, 학생 로봇에 해당)과의 협업 정책을 수행하고자 하는 경우, 로봇 서버(100)로부터 수신한 명령어 객체를 근거로 '하이'라는 음성 메시지를 스피커(290)를 통해 출력한다. 그리고 로봇 매니저(300)는 이후 로봇 서버(100)로부터 수신한 추가 명령어 객체를 근거로 음성 인식 상태로 전환하고, 임의의 로봇에서 출력된 메시지(예를 들어, '안녕하세요')를 수신하고, 저장부(240)에 미리 저장된 음성 인식 알고리즘을 이용하여 수신한 메시지에 대한 음성 인식 기능을 수행한다. 그리고 로봇 매니저(300)는 음성 인식 결과(상기 '안녕하세요')가 미리 설정된 메시지(일 예로, '안녕하세요')와 동일하면, 다시 저장부(240)에 미리 저장된 메시지(예를 들어, '하이')를 스피커(290)를 통해 출력한다. 이때, 로봇 매니저(300)는 로봇 서버(100)로부터 전송되는 명령어 객체를 근거로 '선생.말하기(teacher.speak)'와 '학생.듣기(student.listen)'를 동시에 컴포지트하여 선생 로봇이 말할 때 학생 로봇이 이를 음성 인식하는 '명령어1'(521)과, '학생.말하기(student.speak)'와 '선생.듣기(teacher.listen)'를 동시에 컴포지트하여 학생 로봇이 말할 때 선생 로봇이 이를 음성 인식하는 '명령어2'(522)를 포함한다.
그리고 실시예에 따라서는, 로봇 서버(100)의 기능은 복수의 로봇(200) 중 임의의 로봇(200)이 해당 로봇 서버(100)의 기능을 수행하도록 구성할 수도 있다. 즉, 복수의 로봇(200)이 애드혹(ad-hoc) 네트워크, 센서 네트워크(sensor network) 등의 네트워크 시스템을 구성하는 경우, 상기 네트워크 시스템을 구성하는 복수의 로봇(200) 중 임의의 로봇이 로봇 서버(100)에 포함된 각 구성 요소에 해당하는 기능들을 수행하도록 구성할 수도 있다.
도 6은 본 발명의 일 실시예에 따라 로봇 시스템을 제어하는 방법을 설명하는 플로우 차트를 도시한 도면이다.
이하에서는 도 1 내지 도 6을 이용하여 본 도면을 설명하도록 한다.
먼저, 로봇 레지스트리부(110)는 임의의 유/무선 네트워크를 통해 복수의 로봇(200)과 통신 연결하면, 각각의 로봇(200)으로부터 전송되는 해당 로봇의 식별자 정보 및 표준 장치 목록 정보를 수신하고, 수신한 해당 로봇의 식별자 정보 및 표준 장치 목록 정보를 등록/저장한다(S110).
그리고 정책 파서부(130)는 저장부(120)에 미리 저장한 임의의 협업 정책을 파싱하고, 정책 팩토리(140)는 파싱한 협업 정책을 근거로 정책 엔진(150)이 수행할 수 있는 협업 응용을 생성한다.
또한, 정책 파서부(130)가 협업 정책을 파싱할 때, 역할 레지스트리부(160)는 협업 정책에 모델링된 하나 이상의 역할들과 각 역할을 수행하기 위해 필요한 하나 이상의 명령어 종류들을 등록한다(S120).
그리고 중개부(170)는 로봇 레지스트리부(110)에 등록된 복수의 로봇의 식별자 정보 및 표준 장치 목록 정보와, 역할 레지스트리부(160)에 등록된 하나 이상의 역할을 근거로, 각 역할을 수행할 로봇의 표준 장치를 조회(매칭)하고, 조회 결과를 근거로 각 역할들을 수행할 대상 로봇들의 리스트를 생성한다(S130).
그리고 명령어 매니저(180)는 중개부(170)로부터 생성한 각 역할들을 수행할 대상 로봇들의 리스트를 근거로 각 역할을 상기 복수의 로봇(200) 중 어느 하나에 각각 바인딩하여, 상기 복수의 로봇(200) 중에서 협업에 참여할 로봇을 선정한다(S140).
그리고 명령어 매니저(180)는 선정한 임의의 협업에 참여할 로봇에 대한 정보를 근거로 임의의 협업을 수행하기 위한 명령어 객체를 생성하고, 생성한 명령어 객체를 해당 로봇에 전송한다. 이러한 명령어 객체를 수신한 해당 로봇은 수신한 명령어 객체를 근거로 해당 로봇에 구비된 특정 표준 장치를 이용하여 임의의 기능을 수행한다(S150).
본 발명은 본 발명의 정신 및 필수적 특징을 벗어나지 않는 범위에서 다른 특정한 형태로 구체화될 수 있다. 따라서, 상기의 상세한 설명은 모든 면에서 제한적으로 해석되어서는 아니되고 예시적인 것으로 고려되어야 한다. 본 발명의 범위는 첨부된 청구항의 합리적 해석에 의해 결정되어야 하고, 본 발명의 등가적 범위 내에서의 모든 변경은 본 발명의 범위에 포함된다. 또한, 특허청구범위에서 명시적인 인용 관계가 있지 않은 청구항들을 결합하여 실시예를 구성하거나 출원 후의 보정에 의해 새로운 청구항으로 포함시킬 수 있다.
본 발명에 따른 로봇 시스템 및 그의 제어 방법은, 예를 들어, 동종 및/또는 이기종의 다수의 로봇이 상호 연결되어 협업 기능을 수행하는 분야에는 어디든 적용가능하다.
10 : 로봇 시스템 100 : 로봇 서버
110 : 로봇 레지스트리부 120 : 저장부
130 : 정책 파서부 140 : 정책 팩토리
150 : 정책 엔진 160 : 역할 레지스트리부
170 : 중개부(매치 메이커부) 180 : 명령어 매니저
200 : 로봇

Claims (19)

  1. 하나 이상의 로봇의 협업을 제어하는 로봇 서버에 있어서,
    상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 저장하는 저장부; 및
    상기 하나 이상의 로봇에 부여할 협업 역할에 대한 정보 및 상기 협업 역할에 따라 부여할 심플 명령어 혹은 컴포지트 명령어에 대한 정보를 상기 적어도 하나의 로봇에 송신하는 통신부;를 포함하는 것을 특징으로 하는 로봇 서버.
  2. 제1항에 있어서,
    상기 컴포지트 명령어는,
    둘 이상의 명령어에 순서를 부여하는 제1 명령어;
    둘 이상의 명령어를 동시에 수행하는 제2 명령어;
    포워그라운드 명령어와 백그라운드 명령어를 동시에 수행하되, 포워그라운드 명령어가 먼저 수행 종료되면 백그라운드 명령어를 자동으로 강제 취소시키는 제3 명령어;
    지정된 타임아웃 시간 동안만 명령어를 수행하는 제4 명령어; 또는
    지정된 지연 시간 후에 명령어를 수행하는 제5 명령어; 중 적어도 하나의 명령어를 포함하는 것을 특징으로 하는 로봇 서버.
  3. 제1항에 있어서,
    상기 협업 정책 모델은,
    명령어 수행의 협업 역할이 전환되는 전이를 발생시키는 전이 규칙;을 더 포함하는 것을 특징으로 하는 로봇 서버.
  4. 제1항에 있어서,
    상기 저장부에 저장된 협업 정책 모델을 파싱하는 정책 파서부;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  5. 제4항에 있어서,
    상기 정책 파서부로부터 파싱된 협업 정책 모델을 근거로 협업 응용을 생성하는 정책 팩토리;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  6. 제1항에 있어서,
    상기 로봇으로부터 각각 전송되는 식별자 정보 및 표준 장치 목록 정보를 등록하는 로봇 레지스트리부;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  7. 제6항에 있어서,
    상기 협업 정책에 모델링된 하나 이상의 협업 역할들과 각 협업 역할을 수행하기 위해 필요한 하나 이상의 명령어 종류들을 등록하는 역할 레지스트리부;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  8. 제7항에 있어서,
    상기 로봇 레지스트리부에 등록된 복수의 로봇의 식별자 정보 및 표준 장치 목록 정보와, 역할 레지스트리부에 등록된 하나 이상의 협업 역할을 근거로 각 협업 역할을 수행할 로봇의 표준 장치를 조회하고, 상기 조회 결과를 근거로 각 협업 역할들을 수행할 대상 로봇들의 리스트를 생성하는 중개부;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  9. 제8항에 있어서,
    상기 중개부로부터 생성한 각 협업 역할들을 수행할 대상 로봇들의 리스트를 근거로 상기 복수의 로봇 중 협업에 참여할 로봇을 선정하고, 상기 선정한 로봇을 제어하기 위한 명령어 객체를 생성하는 명령어 매니저;를 더 포함하는 것을 특징으로 하는 로봇 서버.
  10. 로봇 서버의 협업 제어에 따라 제어되는 로봇에 있어서,
    상기 로봇 서버에 저장된 상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 기초로 생성된, 협업에 대한 해당 역할 정보 및 상기 협업에 대한 역할과 관련된 해당 명령어에 대한 정보를 수신하는 통신부; 및
    상기 해당 역할 및 상기 해당 명령어에 대응되는 행동을 수행하는 수행부;를 포함하는 것을 특징으로 하는 로봇.
  11. 제10항에 있어서,
    상기 수행부는,
    상기 해당 역할에 따른 상기 해당 명령어가 음성에 대한 것일 경우에는 스피커인 것을 특징으로 하는 로봇.
  12. 제10항에 있어서,
    상기 수행부는,
    상기 해당 역할에 따른 상기 해당 명령어가 움직임에 대한 것일 경우에는 구동부인 것을 특징으로 하는 로봇.
  13. 제10항에 있어서,
    상기 수행부는,
    상기 해당 역할에 따른 상기 해당 명령어가 화상 표시에 대한 것일 경우에는 디스플레이인 것을 특징으로 하는 로봇.
  14. 제10항에 있어서,
    상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 상기 로봇 서버에 송신하도록 제어하는 로봇 매니저;를 더 포함하는 것을 특징으로 하는 로봇.
  15. 하나 이상의 로봇을 제어하는 제어방법에 있어서,
    소정 협업에 활용될 수 있는 상기 하나 이상의 로봇으로부터 상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 수신하는 단계;
    상기 소정의 협업에서 사용되는 로봇의 해당 역할 및 상기 해당 역할에 따른 명령어를 협업 정책 모델로부터 추출하는 단계;
    상기 로봇의 식별자 정보, 상기 로봇의 표준 장치 목록 정보, 상기 로봇의 해당 역할 및 상기 해당 역할에 따른 명령어를 기초로, 상기 하나 이상의 로봇 중 해당 로봇을 선택하는 단계; 및
    상기 선택된 해당 로봇에 상기 로봇의 역할에 대한 정보 및 상기 역할에 따른 명령어에 대한 정보를 송신하는 단계;를 포함하는 것을 특징으로 하는 제어방법.
  16. 제15항에 있어서,
    상기 협업 정책 모델은, 상기 적어도 하나의 로봇의 역할, 및 상기 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계를 포함하는 것을 특징으로 하는 제어방법
  17. 제15항에 있어서,
    상기 컴포지트 명령어는,
    둘 이상의 명령어에 순서를 부여하는 제1 명령어;
    둘 이상의 명령어를 동시에 수행하는 제2 명령어;
    포워그라운드 명령어와 백그라운드 명령어를 동시에 수행하되, 포워그라운드 명령어가 먼저 수행 종료되면 백그라운드 명령어를 자동으로 강제 취소시키는 제3 명령어;
    지정된 타임아웃 시간 동안만 명령어를 수행하는 제4 명령어; 또는
    지정된 지연 시간 후에 명령어를 수행하는 제5 명령어; 중 적어도 하나의 명령어를 포함하는 것을 특징으로 하는 제어방법.
  18. 로봇 서버의 협업 제어에 따라 제어되는 로봇의 제어방법에 있어서,
    상기 로봇 서버에 저장된 상기 로봇의 협업 역할, 및 상기 협업 역할을 수행하기 위해 하나의 명령어로 이루어진 심플 명령어와 적어도 하나 이상의 심플 명령어를 포함하는 컴포지트 명령어로 이루어진 명령어 체계가 포함되는 협업 정책 모델을 기초로 생성된, 협업에 대한 해당 역할 정보 및 상기 협업에 대한 역할과 관련된 해당 명령어에 대한 정보를 수신하는 단계; 및
    상기 해당 역할 및 상기 해당 명령어에 대응되는 행동을 수행하는 단계;를 포함하는 것을 특징으로 하는 제어방법.
  19. 제18항에 있어서,
    상기 로봇의 식별자 정보 및 상기 로봇의 표준 장치 목록 정보를 상기 로봇 서버에 송신하는 단계;를 포함하는 것을 특징으로 하는 제어방법.
KR1020110033658A 2010-09-02 2011-04-12 로봇 시스템 및 그의 제어 방법 KR20120025961A (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US13/216,354 US20120059514A1 (en) 2010-09-02 2011-08-24 Robot system and method for controlling the same

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020100086216 2010-09-02
KR20100086216 2010-09-02

Publications (1)

Publication Number Publication Date
KR20120025961A true KR20120025961A (ko) 2012-03-16

Family

ID=46132090

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020110033658A KR20120025961A (ko) 2010-09-02 2011-04-12 로봇 시스템 및 그의 제어 방법

Country Status (1)

Country Link
KR (1) KR20120025961A (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170117982A (ko) * 2014-03-04 2017-10-24 사르코스 엘씨 협력적 로봇 제어

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20170117982A (ko) * 2014-03-04 2017-10-24 사르코스 엘씨 협력적 로봇 제어

Similar Documents

Publication Publication Date Title
US10507577B2 (en) Methods and systems for generating instructions for a robotic system to carry out a task
US20120059514A1 (en) Robot system and method for controlling the same
CN106182027B (zh) 一种开放式服务机器人系统
US20160055677A1 (en) Methods and Systems for Augmented Reality to Display Virtual Representations of Robotic Device Actions
US20210347386A1 (en) Information processing apparatus, information processing method, computer program, and package receipt support system
CN103101054A (zh) 手机对机器人的编程和控制系统
US20190389075A1 (en) Robot system and robot dialogue method
US11695581B2 (en) Video conference calendar integration
CN109048932A (zh) 一种智能服务机器人系统
KR20190095193A (ko) 인공 지능 시스템의 동작을 관리하는 인공 지능 장치 및 그 방법
US10902683B2 (en) Representation of user position, movement, and gaze in mixed reality space
US20170026617A1 (en) Method and apparatus for real-time video interaction by transmitting and displaying user interface correpsonding to user input
KR20120025961A (ko) 로봇 시스템 및 그의 제어 방법
EP4209849A1 (en) Telepresence robots having cognitive navigation capabilit
KR20210019818A (ko) 양방향 교감 맞춤형 학습 컨텐츠 제공 시스템 및 방법
Ma et al. Networked robot systems for indoor service enhanced via ROS middleware
CN106354254A (zh) 智能路由器的沉浸式交互方法及装置
Rizano et al. Experimental evaluation of the real-time performance of publish-subscribe middlewares
CN109901577A (zh) 一种用于机器人的控制系统
RU2638003C1 (ru) Способ распределения задач между сервисными роботами и средствами киберфизического интеллектуального пространства при многомодальном обслуживании пользователей
Barbagallo et al. Human-robot interaction through kinect and graphics tablet sensing devices
Hou et al. Mobile Manipulation Tutorial
US11558482B2 (en) Information processing apparatus, information processing system, and information processing method
Pozzi et al. Pointing gestures for human-robot interaction in service robotics: a feasibility study
Vecchio et al. Use of interface agents for automatic pass-by-noise measurements

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal