KR100772522B1 - 모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치 - Google Patents

모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치 Download PDF

Info

Publication number
KR100772522B1
KR100772522B1 KR1020060072646A KR20060072646A KR100772522B1 KR 100772522 B1 KR100772522 B1 KR 100772522B1 KR 1020060072646 A KR1020060072646 A KR 1020060072646A KR 20060072646 A KR20060072646 A KR 20060072646A KR 100772522 B1 KR100772522 B1 KR 100772522B1
Authority
KR
South Korea
Prior art keywords
task
execution
robot
xml
service
Prior art date
Application number
KR1020060072646A
Other languages
English (en)
Other versions
KR20070061239A (ko
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 JP2006332283A priority Critical patent/JP2007157166A/ja
Publication of KR20070061239A publication Critical patent/KR20070061239A/ko
Application granted granted Critical
Publication of KR100772522B1 publication Critical patent/KR100772522B1/ko

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/12Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
    • H04L67/125Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks involving control of end-device applications over a network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0266Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using meta-data, objects or commands for formatting management information, e.g. using eXtensible markup language [XML]

Abstract

본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법 및 그 장치는 서비스 명령을 수신하는 단계; 상기 서비스 명령을 해석하여 적어도 하나 이상의 객체를 생성하는 단계; 상기 객체를 초기화하고 태스크 실행조건의 충족 여부를 확인하여 실행조건이 충족되면 태스크의 우선순위에 따른 실행을 결정하는 단계: 및 상기 실행에 로봇이 제공하는 데이터가 필요하면 상기 로봇으로 정보 제공을 요청한 후 수신하여 상기 실행이 결정된 태스크를 실행하는 단계;를 포함하는 것을 특징으로 하며, 저가격의 저수준의 프로세서를 가진 홈 로봇에 대해 XML을 기반으로 태스크를 작성함으로써 로봇 서비스를 손쉽게 개발할 수 있고 저가격의 홈 로봇도 고수준의 로봇에서와 같은 서비스를 구현할 수 있다.
모바일 홈 로봇, 서비스, 태스크, 네트워크 기반 원격 로봇 제어, XML

Description

모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법 및 그 장치{Method for providing XML-based service by server which controls mobile home service robot and apparatus thereof}
도 1은 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버가 로봇 및 태스크 작성기와 연동되는 것을 보여주는 개념도이다.
도 2는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반서비스 제공 장치의 구성을 보여주는 블록도이다.
도 3은 도 2의 실행부의 상세 구성을 보여주는 블록도이다.
도 4는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버가 로봇 및 태스크 작성기와 연동되는 것을 보다 상세하게 보여주는 블록도이다.
도 5는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법의 과정을 보여주는 흐름도이다.
본 발명은 모바일 홈 서비스 로봇을 제어하는 방법에 관한 것으로서, 보다 상세하게는 두 바퀴와 LCD 모니터, 마이크, 스피커, 장애물 감지 센서 등과 저수준 의 메인 제어 프로세서를 구비한 저가형 모바일 홈 서비스 로봇을 위한 제어 소프트웨어 아키텍처 분야에 관한 것이다. 더욱 구체적으로 살펴보면, 본 발명은 저가격의 홈 서비스 로봇이 사용자의 명령 또는 특정 상황에 따라 수행할 서비스를 XML (eXtensible Markup Language)을 기반으로 작성하여 이를 원격 로봇 제어 프로그램에 탑재한 후 실행하는 하는 방법에 관한 것으로서, C 혹은 C++ 또는 자바와 같은 프로그래밍 언어가 아닌 고 수준의 텍스트를 기반으로 로봇용 서비스를 개발하고 이를 저가격의 로봇에서도 실행할 수 있도록 하는 방법에 관한 것이다.
현재 사용되고 있는 일반적인 로봇 태스크 작성 방법들은 다음과 같이 세 가지 형태의 방법들을 취하고 있다.
첫 번째는 하드웨어를 추상화한 인터페이스를 이용하여 C++ 또는 자바와 같은 객체지향 언어나 C 언어를 이용하여 로봇 태스크 프로그램을 직접 작성하는 방법이다. 이 방법은 로봇의 하드웨어 특성과 제어 프로그램에 능숙한 개발자가 아니면 태스크를 작성하기 어렵다는 문제점이 있다. 또한 한번 작성된 로봇 태스크의 속성을 실행시간에 변경하기 어려운 문제점이 있다.
두 번째는 첫 번째의 방법을 사용하면서 로봇 태스크에서 사용하는 하드웨어 의존적인 데이터를 XML로 작성하여 유연성을 추가하는 방법이다. 이 방법은 상기 첫 번째 방법에 비해 로봇 태스크가 사용하는 하드웨어의 특성 정보를 XML 형태로 작성하기 때문에 실행시간 또는 임의로 변경하기가 수월하다는 장점이 있다. 그러나 이 방법 역시 첫 번째 방법에서 지적된 문제점처럼 프로그램 언어를 이용하여 개발하기 때문에 로봇 분야의 전문지식이 있어야 태스크를 개발할 수 있다는 문제 점이 있다.
세 번째는 미리 작성된 로봇 태스크 프로그램들을 조합하여 실행할 순서들만을 XML로 표현하는 방법이다. 이 방법은 단순히 XML을 사용하여 미리 작성된 태스크 프로그램의 실행 순서를 지정하는 방법으로 코드화된 태스크의 성격을 실행시간에 지정하거나 개발자가 개발할 때 다양한 형태로 작성하기가 어려운 문제점이 있다.
본 발명이 이루고자 하는 기술적 과제는 상기의 문제점을 해결하기 위하여 안출된 것으로서, 저가격 저수준의 프로세서를 사용하는 홈 로봇에 서비스를 위한 태스크를 개발함에 있어서, XML과 같은 고수준의 텍스트 기반 언어만을 이용하여 로봇용 서비스를 개발하게 함으로써 로봇의 제어 프로그램을 전혀 모르는 서비스 컨텐츠 개발자들도 손쉽게 로봇용 서비스를 개발할 수 있는 방법 및 장치를 제공하는데 있다.
상기의 기술적 과제를 이루기 위하여 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법은 서비스 명령을 수신하는 단계; 상기 서비스 명령을 해석하여 적어도 하나 이상의 객체를 생성하는 단계; 상기 객체를 초기화하고 태스크 실행조건의 충족 여부를 확인하여 실행조건이 충족되면 태스크의 우선순위에 따른 실행을 결정하는 단계: 및 상기 실행에 로봇이 제공하는 데이터가 필요하면 상기 로봇으로 정보 제공을 요청한 후 수신하여 상기 실행이 결 정된 태스크를 실행하는 단계;를 포함하는 것을 특징으로 한다.
상기의 기술적 과제를 이루기 위하여 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 장치는 서비스 명령을 수신한 후 해석하여 적어도 하나 이상의 객체를 생성하는 객체생성부; 상기 객체들을 수신하여 생명 주기 관리 및 실행조건을 검사하는 객체관리부; 상기 실행조건 충족시 상기 객체를 수행할 태스크의 수행 여부 및 실행 순서를 결정하는 중재부; 및 상기 중재부의 결정을 입력받아 태스크를 실행하는 실행부;를 포함하는 것을 특징으로 한다.
이하, 첨부된 도면을 참조하면서 본 발명의 바람직한 일 실시예를 상세히 설명하기로 한다. 도 1은 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버가 로봇 및 태스크 작성기와 연동되는 것을 보여주는 개념도이다. 도 2는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반서비스 제공 장치의 구성을 보여주는 블록도이고, 도 3은 도 2의 실행부의 상세 구성을 보여주는 블록도이다. 도 4는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버가 로봇 및 태스크 작성기와 연동되는 것을 보다 상세하게 보여주는 블록도이다. 마지막으로 도 5는 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법의 과정을 보여주는 흐름도이다.
먼저 본 발명의 개요 및 배경을 설명하도록 한다. 본 발명은 로봇 분야에 관한 것이다. 특히, 본 발명은 두 바퀴와 LCD 모니터, 마이크, 스피커, 장애물 감지 센서 등과 저수준의 메인 제어 프로세서를 구비한 저가형 모바일 홈 로봇의 제어 소프트웨어 아키텍처 분야에 속한다. 구체적으로, 본 발명은 저가격 저수준의 프로 세서를 사용하는 모바일 홈 서비스 로봇이 사용자의 명령이나 특정 상황에 따라 수행할 서비스(Service)를 XML (eXtensible Markup Language)을 이용하여 작성하고, 원격 태스크 실행서버와 로봇에 탑재된 실시간 제어 모듈을 이용하여 새스크를 실행하는 방법에 관한 것이다. 이하 사용되는 용어에 대한 정의를 하면 다음과 같다. 먼저 행위란 로봇의 기본행동 (위치 이동, TTS, 인터넷 정보 검색, 센싱 등)을 말하며, 태스크란 로봇이 수행할 단위 임무 (사용자에게 다가가기, 신문 읽기, 메일읽기, 배터리 충전 등), 행위들의 집합으로 이루어지는 것을 말한다. 그리고 서비스란 로봇이 수행할 서비스 (아빠에게 다가가서 신문을 읽어주기 등) 즉 태스크들의 묶음을 말한다.
본 발명에서는 개발자가 작성하는 서비스는 태스크들로 구성되어 있으며 태스크 제어서버는 서비스 XML로부터 각 태스크를 분리하여 실행을 담당하는 서버이다.
도 1은 본 발명에 따른 모바일 홈 서비스 로봇의 XML기반의 서비스를 실행하는 전체 흐름을 설명하기 위한 도면으로서, 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버가 로봇 및 태스크 작성기와 연동되는 것을 보여주고 있다.
도 1에 도시된 바와 같이, 각 구성요소들은 모두 서로 다른 프로세서에 존재하고 네트워크를 통해 서로 연결되어 있다. 특히, 로봇 프로그램을 구동하는 태스크 실행 모듈과 실시간 로봇 제어 모듈의 경우 기존 로봇의 경우에는 모두 한 로봇에 존재하거나 동일한 서버에 존재하는 형식을 취한다. 그러나 본 발명에서는 로봇 태스크 실행모듈과 실시간 로봇제어 모듈을 분리하여 서버와 클라이언트 개념으로 존재하도록 하였다.
도 1을 참조하면, 서비스 개발자는 클라이언트 PC에 존재하는 로봇 서비스 XML 작성기(110)를 통해 서비스를 작성하고, TCP를 통해 원격로봇 태스크 실행서버(120)로 전송한다. 전송된 서비스 XML은 원격로봇 태스크 제어 서버(120)에 의해서 해석되어 각 태스크의 실행을 대기한다. 태스크 실행 조건이 충족되면 원격 태스크 실행서버(120)에 의해 태스크가 실행되고 모터 제어와 센서 데이터 취득이 필요한 경우에는 로봇(130)에 탑재된 실시간 로봇 제어기(131)를 통해 로봇 물리계층(모터/센서)(133)의 기능을 이용한다. 이때 로봇(130)에 탑재된 실시간 로봇제어기(131)는 속도 및 위치 기반의 모터제어 모듈(미도시)과 로봇 물리 계층(133)으로부터 데이터를 주기적으로 얻어오는 기능을 수행한다. 또한 원격로봇 태스크 제어 서버(120)에는 위치이동, 경로계획, 사용자인식 등의 로봇의 기본적인 행위들이 기본적으로 내장되어 있고, 객체화된 태스크들이 수행된다.
원격로봇 태스크 제어 서버(120)에서 XML로 작성된 태스크를 객체화하고 실행하는 원격로봇 태스크 실행서버의 구성을 일실시예는 도 2와 같다. 도 2를 참조하면, 객체생성부(210)는 외부로부터 서비스 명령을 수신한 후 해석하여 적어도 하나 이상의 객체를 생성한다. 특히 서비스 명령을 구성하는 태스크의 종류별로 상기 객체를 생성한다. 객체관리부(220)는 객체생성부(210)가 생성한 상기 객체들을 수신하여 생명 주기 관리 및 실행조건을 검사하게 된다. 중재부(230)는 상기 객체관리부의 검사 결과 상기 실행조건이 충족되면 상기 객체를 수행할 태스크의 수행 여부 및 실행 순서를 결정한다. 좀더 자세하게는 상기 객체의 소멸과 초기화를 포함 하는 생명주기 및 태스크의 실행조건을 검사하여 상기 실행조건이 충족되면 우선순위를 기초로 실행조건이 충족된 태스크의 실행을 중재하여 실행할 태스크를 다음에 설명할 테스크 큐(310)에 저장하여 순차적인 실행을 중재하게 된다. 실행부(230)는 중재부의 그 결정을 입력받아 태스크를 실행하게 된다.
도 3을 참조하면서 실행부(240)의 보다 상세한 구성을 살펴본다. 먼저 태스크 큐(310)는 상기 태스크를 순차적으로 저장하고 출력한다. 쓰레드 관리부(340)는 상기 태스크 큐(310)에 저장된 태스크의 단일 혹은 다중 쓰레드 속성에 따라 상기 태스크의 실행 방법을 결정한다. 객체실행부(320)는 쓰레드 관리부(340)에 의하여 결정된 상기 실행 방법에 따라 태스크를 실행하게 된다. 그리고 태스크 실행 상태 관리부는 상기 태스크의 실행결과를 피드백 받아 불완전한 경우 상기 중재부(230)로 재실행을 요청하는 기능을 수행한다.
원격 로봇 태스크 제어 서버(120)에서 XML로 작성된 태스크를 객체화하고 실행하는 보다 구체적인 일 실시예를 도 4 및 도 5를 참조하면서 설명한다. 도 4에서 보는 바와 같이 태스크 XML 작성기(110)에서 작성된 서비스(태스크의 집합) XML은 TCP를 통해 원격로봇 태스크 제어 서버(120)로 전송된다. 태스크 XML 해석부(401)는 수신한 서비스 XML을 해석한 후 객체생성부(402)에 태스크들의 정보를 전달하고 객체생성부(402)는 이 태스크들의 유형에 따라 자동으로 객체를 생성한다. 이 때 태스크들의 다음과 같은 유형으로 구분하여 객체를 생성한다.
- 시간형 태스크 : 정해진 시간에 한 번만 실행되거나 일정 주기를 가지고 실행되는 태스크이다. 예를 들어 모닝콜과 알람과 같은 것이다.
- 명령형 태스크 : 사용자의 명령에 따라 수행되는 태스크이다. 예를 들면 "로봇 이리와"라는 명령에 대해 로봇이 사용자에게 다가가는 태스크이다.
- 이벤트형 태스크 : 개발자 정의한 이벤트가 발생하였을 때 수행되는 태스크이다.
예를 들면 외부 센서인 창문 열림 감지 센서로부터 창문이 열린 이벤트가 발생할 때 수행되는 태스크는 이벤트형 태스크로 정의된다(이상 S510단계).
이제, 객체 생성부(402)로부터 생성된 각 객체들은 유형별 객체 관리부(403,404,405)에 전달되어 초기화되고 실행 조건이 충족되기를 기다리게 된다. 객체관리부는 도 4에 도시된 바와 같이, 그리고 위에서 설명된 종류별 태스크를 관리하기 위하여 시간형 객체 관리부(403), 명령형 객체 관리부(404), 그리고 이벤트형 객체 관리부(405)로 구분하여 구성된다(이상 S520단계).
객체 관리부(403, 404, 405)는 객체의 소멸과 초기화를 포함하는 생명주기 관리와 태스크의 실행 조건검사를 포함하는 기능을 수행한다. 각 태스크의 실행 조건이 충족되면 객체 관리부(403, 404, 405)는 태스크 실행 중재부(406)에 해당 태스크의 실행 중재를 요청한다(S540단계). 태스크 실행 중재부(406)는 동시 또는 순차적으로 여러 태스크를 수행할 때 어떤 태스크를 먼저 수행할 것인지 또는 수행 중인 태스크를 정지하거나 중지할 것인지를 결정한다.
예를 들어, 홈 로봇이 집안에서 심부름을 수행하고 있을 경우에 가스 누출이 감지되면 태스크 실행 중재부(406)에 의해 현재 수행 중이던 심부름 태스크를 잠시 중단하고 가스 누출 대응 태스크를 먼저 수행한 후 이전 심부름을 수행하는 것과 같은 것이다.
다시 도 4를 참조하면, 태스크 실행 중재부(406)는 수행할 태스크들을 태스크 큐(407)에 저장하여 태스크가 순차적으로 수행되도록 한다. 태스크 큐(407)에 저장된 객체들은 모두 자신이 쓰레드 형태로 실행될 것인지 아닌지의 정보를 가지고 있다. 쓰레드 관리부(408)는 태스크 큐(407)의 태스크 객체들을 다중 쓰레드 또는 단일 쓰레드로 실행시키며 단일 쓰레드인 경우 순차적으로 태스크 큐(407)에 담긴 태스크들을 실행하게 된다.
예를 들어 음악을 재생하는 태스크와 사용자에게 다가가서 사진을 찍는 태스크가 태스크 큐(407)에 들어왔다고 가정할 때, 음악을 재생하는 태스크는 어떠한 태스크와도 동시에 수행될 수 있는 태스크이므로 멀티 쓰레드의 속성을 가지게 되고, 두 번째의 경우에는 모터를 움직여서 이동하는 것과 관련되고 다른 태스크가 동시에 모터를 움직이면 안되므로 반드시 단일 쓰레드로 실행되어야 한다. 또한 모터의 움직임과 관련이 있으므로 태스크들은 모두 순차적으로 수행되어야 한다. 이러한 것들을 태스크 실행 중재부(406)가 정리하게 된다(이상 S540단계).
태스크들의 실행에 있어서 실시간 로봇제어기(131)를 호출할 필요가 있는 경우를 판단하여(S550단계), 필요한 경우에는 로봇 행위 실행부(411)를 통해서 로봇에 탑재된 실시간 로봇제어기(131)에 제어 명령을 전달하여 필요한 정보를 획득한다(S560단계). 로봇 행위 실행부(411)에는 로봇 위치이동과 사용자 인식 등과 같은 로봇의 기본적인 행위들이 미리 내장되어 있다. 태스크의 수행이 완료되면 태스크 실행상태 관리부(409)는 태스크가 정상 수행되었는지의 여부를 판단하고 실행이 실 패하였을 경우에는 태스크 실행 중재부(406)에 태스크의 재실행을 요청한다(S570단계).
다음은 본 발명의 태스크들을 정의하는 XML의 DTD(Document Type Definition)에 관한 일실시예로서, XML의 태그 구조와 각 태그들의 설명이다.
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT services (context-info*, service+)>
<!-- service는 서비스를 구성하고 있는 태스크들을 기술한다. 하나의 서비스는 한 개 이상의 태스크들로 구성된다.
Used in: services
--><!ELEMENT service (service-name, task*)>
<!-- 서비스의 이름을 지정한다. 
Used in: service
--><!ELEMENT service-name (#PCDATA)>
<!-- 서비스를 구성하는 태스크들의 속성을 지정한다. 각 태스크 속성은 name, property 와 수행할 로봇행위의 정보들로 구성된다. 각 태스크는 한 개 이상의 행위를 가질 수 있다.
Used in: service
--><!ELEMENT task (name, properties, behaviors*)>
<!-- 태스크의 이름을 지정한다. 
Used in: task
--><!ELEMENT name (#PCDATA)>
<!-- 태스크의 속성을 지정한다. 태스크의 속성은 실행방식, 호출명령어, 우선순위, 실행형태, 수행완료 후 실행할 다음 태스크들로 구성된다. 속성 정보의 자세한 내용은 각 태그 설명에서 한다. 태스크의 실행 방식은 태스크를 실행하는 방식을 의미하며, 실행 형태는 프로그램 내부에서 단일 쓰레드 또는 멀티 쓰레드로 구동 시킬 것인가를 의미한다. properties를 구성하는 각 요소들은 이벤트, 명령, 시간의 실행 방식에 따라 지정해야 할 속성들이 달라진다. timertype, expiration, duration, interval 은 exectype 이 Timer Task 일 경우에서 만 사용되는 값이다.
Used in: task
--><!ELEMENT properties (exectype, command?, priority?, type, next-invoke?, post-condition?, pre-condition?, timertype?, firetime?, duration?, interval?)>
<!-- 태스크의 실행조건의 방식을 지정한다. 태스크의 실행 방식은 이벤트, 명령, 시간의 세가지 형태로 구분된다.
Used in: properties
--><!ELEMENT exectype (#PCDATA)>
<!-- 태스크 실행중재 모듈에서 사용할 실행형태를 지정한다. 태스크의 실행형태는 Parallel, Single, Planned 의 3가지 종류 중 하나이다.
1) Parallel Task : 동시 수행이 가능한 태스크들 (Moveto 와 Gototo와 같이 실시간 로봇제어가 필요 없는 태스크)
예) Music Play Task, E-mail Send Task, Home Appliance Control Task etc
2) Single Task : 시스템에 오직 하나 만 구동될 수 있는 태스크
예) Follow Person Task etc
3) Planned Task : Path Planning 의 대상이 될 수 있는 태스크 (단일 쓰레드로 순차적으로 수행)
        예) MoveTo Task, GoTo Task etc
Used in: properties
--><!ELEMENT type (#PCDATA)>
<!-- 태스크의 실행방식이 command로 지정되었을 경우, 태스크를 호출할 명령어를 지정한다. event로 지정되어 있을 경우에는 이 명령어를 명령형 태스크 관리자에 전달하여 실행할 수 있도록 한다.
Used in: properties
--><!ELEMENT command (#PCDATA)>
<!--개발자가 지정하는 태스크의 우선순위이다. priority가 없고 Planned Task로 설정되어있는 태스크들은 태스크 실행중재 모듈에서 이동거리를 기준으로 동적으로 우선순위를 할당한다.
Used in: properties
--><!ELEMENT priority (#PCDATA)>
<!-- 현재 수행하는 태스크의 수행이 완료된 후 호출할 태스크를 지정한다.
Used in: properties
--><!ELEMENT next-invoke (#PCDATA)>
<!-- 태스크의 수행 결과에 대한 성공 여부 조건을 기술한다. 태스크의 성공적인 완료의 여부는 Logical Sensor에 의해 검사된다. Logical Sensor의 종류와 값은 사용자에 의해서 지정된다. Post-Condition이 만족하지 못할 경우 next-invoke에 의해 설정된 다음 태스크는 수행되지 못한다. Logical Sensor는 로봇 실행상태 관리 모듈에 존재하는 가상의 센서이다.
Used in: properties
--><!ELEMENT post-condition (logicalsensor, value)>
<!-- Logical Sensor의 종류를 지정한다.
Used in: post-condition
--><!ELEMENT logicalsensor (#PCDATA)>
<!-- Logical Sensor의 값을 지정한다.
Used in: post-condition
--><!ELEMENT value (#PCDATA)>
<!-- 태스크가 수행되기 전에 실행 가능 여부를 검사하기 위한 조건을 기술한다. 태스크의 실행 결정은 post-condition과 마찬가지로 Logical Sensor에 의해 검사된다. Logical Sensor의 종류와 값은 사용자에 의해서 지정된다. pre-condition이 만족하지 못할 경우 태스크는 수행되지 못한다.
Used in: properties
--><!ELEMENT pre-condition (logicalsensor, value)>
<!-- 태스크의 실행방식이 timer일 경우 설정되는 값이며, OneshotTimer와 PeriodicTimer 중 하나의 값을 갖는다. 
1) OneshotTimer 는 정해진 시간에 한번만 수행하는 Task (절대시간)
2) PeriodicTimer 는 일정시간간격으로 계속 수행되는 Task (상대시간)
Used in: properties
--><!ELEMENT timertype (#PCDATA)>
<!-- 태스크의 실행방식이 Timer일 경우 설정되는 값이며, Timer Task가 OneshotTimer일 경우에 등록된 후부터 끝나는 시점까지 Timer가 fire될 때까지의 시간을 의미한다.
Used in: properties
--><!ELEMENT firetime (#PCDATA)>
<!-- 태스크의 실행방식이 Timer일 경우 설정되는 값이며, PeriodicTimer로 설정된 경우 Timer가 처음Fire될 때까지의 시간을 의미한다.
Used in: properties
--><!ELEMENT duration (#PCDATA)>
<!-- 태스크의 실행 방식이 Timer일 경우에 설정되는 값이며, PeriodicTimer로 설정된 경우 Timer Task가 Fire되는 주기를 의미한다.
Used in: properties
--><!ELEMENT interval (#PCDATA)>
<!-- 태스크를 구성하는 행위들의 정보를 기술한다.
Used in: task
--><!ELEMENT behaviors (behavior*)>
<!-- 태스크를 구성하는 단위 행위의 정보를 기술한다.
Used in: behaviors
--><!ELEMENT behavior (sequence, type, owner?, defined-class-name?, normal-content?, abnormal_content?, post-condition?, goal?)>
<!-- 태스크를 구성하는 단위 행위들의 실행순서를 기술한다.
Used in: behavior
--><!ELEMENT sequence (#PCDATA)>
<!-- 행위를 객체의 이름을 지정한다.
Used in: behavior
--><!ELEMENT defined-class-name (#PCDATA)>
본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법은 또한 컴퓨터로 읽을 수 있는 기록매체에 컴퓨터가 읽을 수 있는 코드로서 구현하는 것이 가능하다. 컴퓨터가 읽을 수 있는 기록매체는 컴퓨터 시스템에 의하여 읽혀질 수 있는 데이터가 저장되는 모든 종류의 기록장치를 포함한다. 컴퓨터가 읽을 수 있는 기록매체의 예로는 ROM, RAM, CD-ROM, 자기 테이프, 플라피디스크, 광데이터 저장장치 등이 있으며, 또한 캐리어 웨이브(예를 들어 인터넷을 통한 전송)의 형태로 구현되는 것도 포함한다. 또한 컴퓨터가 읽을 수 있는 기록매체는 네트워크로 연결된 컴퓨터 시스템에 분산되어, 분산방식으로 컴퓨터가 읽을 수 있는 코드가 저장되고 실행될 수 있다.
이상 도면과 명세서에서 최적 실시예들이 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해 정해져야 할 것이다.
이상에서 설명한 바와 같이, 본 발명에 의한 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법 및 그 장치는 저가격의 저수준의 프로세서를 가진 홈 로봇에 대해 XML을 기반으로 태스크를 작성함으로써 로봇 서비스를 손쉽게 개발할 수 있고 저가격의 홈 로봇도 고수준의 로봇에서와 같은 서비스를 구현하는 효과가 있다.
또한 본 발명은 저가격 저수준의 로봇에 대해 실시간성을 요구하는 로봇 제어 모듈 예를 들어 속도 또는 위치 기반 로봇 제어 모듈과 센서 데이터 수집 및 감지 모듈은 로봇에 탑재하고 고 수준의 로봇 태스크 실행 모듈만을 서버에 둠으로써 네트워크의 지연과 무관하게 로봇을 제어할 수 있다.
또한 본 발명은 저가격 저수준의 홈 서비스 로봇의 경우에 XML을 해석하거나 실행할 수 있는 계산 능력이 떨어지므로 이를 해결하기 위한 수단으로서, XML 기반 의 서비스를 해석하고, 서비스를 구성하는 각 태스크를 실행하는 서버를 원격에 두고 로봇에 탑재된 실시간 로봇제어 모듈을 네트워크를 통하여 제어하는 방법 및 장치를 제공한다.
또한 본 발명은 저가격 저수준의 프로세서를 탑재하고 있는 모바일 홈 로봇의 경우에 서비스 개발자가 하드웨어와 로봇 제어에 관한 전문 지식이 없더라도 XML을 이용하여 로봇용 서비스를 손쉽게 작성할 수 있도록 함으로써 기존에 로봇제어 프로그램을 작성할 때보다 개발 생산성을 높일 수 있다.
또한 본 발명은 저가격의 프로세서를 탑재한 모바일 홈 로봇의 경우에는 계산 능력이 떨어지므로 개발자가 작성한 XML을 해석하거나 실행할 만한 능력이 없으므로, 네트워크로 연결된 원격로봇 태스크 실행서버를 두고 로봇에는 실시간 로봇제어 모듈만을 두는 방법을 제안함으로써 고수준의 프로세서를 사용하는 로봇과 동일한 수준의 서비스를 수행할 수 있다.
그리고 서비스 개발자로 하여금 XML과 같은 고수준의 텍스트 기반 언어를 이용하여 개발하게 하고, 프로그램 언어가 가지는 특성을 XML에 표현할 수 있도록 지원하여, 로봇에서 지원하고자 하는 태스크들(서비스를 구성하는 요소)의 속성을 미리 정의하고 이를 XML로 작성한 다음 로봇에 탑재된 제어 프로그램에서 코드를 가진 객체로 자동 생성하여 실행하고 관리하며, 태스크 XML에는 미리 작성된 로봇의 기본 행동들의 실행 방법을 지정하고 실행 시간에 객체화된 태스크가 이를 제어할 수 있게 된다.

Claims (12)

  1. (a) 서비스 명령을 수신하는 단계;
    (b) 상기 서비스 명령을 해석하여 적어도 하나 이상의 객체를 생성하는 단계;
    (c) 상기 객체를 초기화하고 태스크 실행조건의 충족 여부를 확인하여 실행조건이 충족되면 태스크의 우선순위에 따른 실행을 결정하는 단계: 및
    (d) 상기 실행에 로봇이 제공하는 데이터가 필요하면 상기 로봇으로 정보 제공을 요청한 후 수신하여 상기 실행이 결정된 태스크를 실행하는 단계;를 포함하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  2. 제1항에 있어서, 상기 (a)단계는
    XML로 작성된 상기 서비스 명령을 TCP를 통하여 수신하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  3. 제1항에 있어서, 상기 (b)단계는
    (b1) 상기 서비스 명령을 구성하는 태스크의 종류별로 객체를 생성하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  4. 제3항에 있어서, 상기 (b1)단계는
    정해진 주기 혹은 시간에 실행되는 태스크, 로봇 사용자의 명령에 따라 실행되는 태스크, 사전에 설정된 이벤트가 발생하였을 때 실행되는 태스크로 종류를 구분하여 객체를 생성하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  5. 제1항에 있어서, 상기 (c)단계는
    (c1) 상기 객체의 소멸과 초기화를 포함하는 생명주기 및 태스크의 실행조건을 검사하는 단계;
    (c2) 상기 실행조건이 충족되면 우선순위를 기초로 실행조건이 충족된 태스크의 실행을 중재하는 단계; 및
    (c3) 실행할 태스크를 큐에 저장하여 순차적인 실행을 도모하는 단계;를 포함하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  6. 제5항에 있어서, 상기 (c3)단계는
    상기 태스크를 다중 쓰레드 혹은 단일 쓰레드로 실행하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  7. 제1항에 있어서, 상기 (d)단계는
    상기 태스크의 정상 수행 여부를 판단하여 실패하였으면 재실행하고, 성공하였으면 다른 태스크의 수행을 대기하는 단계;를 더 포함하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법.
  8. 서비스 명령을 수신한 후 해석하여 적어도 하나 이상의 객체를 생성하는 객체생성부;
    상기 객체들을 수신하여 생명 주기 관리 및 실행조건을 검사하는 객체관리부;
    상기 실행조건 충족시 상기 객체를 수행할 태스크의 수행 여부 및 실행 순서를 결정하는 중재부; 및
    상기 중재부의 결정을 입력받아 태스크를 실행하는 실행부;를 포함하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 장치.
  9. 제8항에 있어서, 상기 실행부는
    상기 태스크를 순차적으로 저장하고 출력하는 태스크 큐;
    상기 태스크 큐에 저장된 태스크의 단일 혹은 다중 쓰레드 속성에 따라 상기 태스크의 실행 방법을 결정하는 쓰레드 관리부;
    상기 결정된 실행 방법에 따라 태스크를 실행하는 객체실행부; 및
    상기 태스크의 실행결과를 피드백 받아 불완전한 경우 상기 중재부로 재실행을 요청하는 태스크 실행 상태 관리부;를 포함하는 것읕 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 장치.
  10. 제8항에 있어서, 상기 객체생성부는
    서비스 명령을 구성하는 태스크의 종류별로 상기 객체를 생성하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 장치.
  11. 제8항에 있어서, 상기 중재부는
    상기 객체의 소멸과 초기화를 포함하는 생명주기 및 태스크의 실행조건을 검사하여 상기 실행조건이 충족되면 우선순위를 기초로 실행조건이 충족된 태스크의 실행을 중재하여 실행할 태스크를 큐에 저장하여 순차적인 실행을 중재하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 장치.
  12. (a) 서비스 명령을 수신하는 단계;
    (b) 상기 서비스 명령을 해석하여 적어도 하나 이상의 객체를 생성하는 단계;
    (c) 상기 객체를 초기화하고 태스크 실행조건의 충족 여부를 확인하여 실행 조건이 충족되면 태스크의 우선순위에 따른 실행을 결정하는 단계: 및
    (d) 상기 실행에 로봇이 제공하는 데이터가 필요하면 상기 로봇으로 정보 제공을 요청한 후 수신하여 상기 실행이 결정된 태스크를 실행하는 단계;를 포함하는 것을 특징으로 하는 모바일 홈 서비스 로봇을 제어하는 서버의 XML 기반의 서비스 제공 방법을 컴퓨터에서 실행시킬 수 있는 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
KR1020060072646A 2005-12-08 2006-08-01 모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치 KR100772522B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006332283A JP2007157166A (ja) 2005-12-08 2006-12-08 モバイルホームサービスロボットを制御するサーバのxml基盤のサービス提供方法及びその装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020050119461 2005-12-08
KR20050119461 2005-12-08

Publications (2)

Publication Number Publication Date
KR20070061239A KR20070061239A (ko) 2007-06-13
KR100772522B1 true KR100772522B1 (ko) 2007-11-01

Family

ID=38357175

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060072646A KR100772522B1 (ko) 2005-12-08 2006-08-01 모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR100772522B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101248802B1 (ko) * 2008-10-31 2013-03-29 한국전자통신연구원 지능형 로봇 시스템에서의 로봇 소프트웨어 컴포넌트 관리 장치 및 방법
JP5202603B2 (ja) 2009-12-18 2013-06-05 韓國電子通信研究院 知能型サービスロボット環境におけるロボットサービスロード方法およびそのためのサービスロード装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100190131B1 (ko) 1996-10-19 1999-06-01 윤종용 로봇제어방법 및 장치
KR20050108518A (ko) * 2004-05-12 2005-11-17 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 소프트웨어구조
KR20060093552A (ko) * 2005-02-22 2006-08-25 주식회사 대우일렉트로닉스 로봇과 홈 게이트웨이 간의 홈 네트워크 시스템 제어 방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100190131B1 (ko) 1996-10-19 1999-06-01 윤종용 로봇제어방법 및 장치
KR20050108518A (ko) * 2004-05-12 2005-11-17 한국생산기술연구원 개방형 분산처리구조의 로봇 제어 소프트웨어구조
KR20060093552A (ko) * 2005-02-22 2006-08-25 주식회사 대우일렉트로닉스 로봇과 홈 게이트웨이 간의 홈 네트워크 시스템 제어 방법

Also Published As

Publication number Publication date
KR20070061239A (ko) 2007-06-13

Similar Documents

Publication Publication Date Title
US10223621B1 (en) Artificially intelligent systems, devices, and methods for learning and/or using visual surrounding for autonomous object operation
Garrido Object-oriented discrete-event simulation with java: A practical introduction
US11055583B1 (en) Machine learning for computing enabled systems and/or devices
US11494607B1 (en) Artificially intelligent systems, devices, and methods for learning and/or using an avatar&#39;s circumstances for autonomous avatar operation
US10402731B1 (en) Machine learning for computer generated objects and/or applications
US8677377B2 (en) Method and apparatus for building an intelligent automated assistant
Simmons et al. A task description language for robot control
US20070150102A1 (en) Method of supporting robot application programming and programming tool for the same
US10452974B1 (en) Artificially intelligent systems, devices, and methods for learning and/or using a device&#39;s circumstances for autonomous device operation
Gajos et al. End user empowerment in human centered pervasive computing
Feng et al. Verifying system behaviors in EAST-ADL2 with the SPIN model checker
Harel et al. Wise computing: toward endowing system development with proactive wisdom
Phillips Metaglue: A programming language for multi-agent systems
Dissaux et al. The SMART project: Multi-agent scheduling simulation of real-time architectures
JP2007157166A (ja) モバイルホームサービスロボットを制御するサーバのxml基盤のサービス提供方法及びその装置
KR100772522B1 (ko) 모바일 홈 서비스 로봇을 제어하는 서버의 xml 기반의서비스 제공 방법 및 그 장치
Hong et al. Semo: Service-oriented and model-based software framework for cooperating robots
Muldoon et al. Towards pervasive intelligence: Reflections on the evolution of the agent factory framework
Gui et al. Towards meta-adaptation support with reusable and composable adaptation components
WO2023071643A1 (zh) 用于处理任务的方法、装置、电子设备和介质
Rosa et al. Lightweight formalisation of adaptive middleware
Estivill-Castro et al. Simple, not simplistic the middleware of behaviour models
Valigi Lessons learned building a self driving car on ros
Schulz-Rosengarten et al. Polyglot modal models through Lingua Franca
Foughali A two-step hybrid approach for verifying real-time robotic systems

Legal Events

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

Payment date: 20101001

Year of fee payment: 4

LAPS Lapse due to unpaid annual fee