KR100889898B1 - 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체 - Google Patents

로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체 Download PDF

Info

Publication number
KR100889898B1
KR100889898B1 KR1020060075065A KR20060075065A KR100889898B1 KR 100889898 B1 KR100889898 B1 KR 100889898B1 KR 1020060075065 A KR1020060075065 A KR 1020060075065A KR 20060075065 A KR20060075065 A KR 20060075065A KR 100889898 B1 KR100889898 B1 KR 100889898B1
Authority
KR
South Korea
Prior art keywords
goal
plan
execution
target
conditional
Prior art date
Application number
KR1020060075065A
Other languages
English (en)
Other versions
KR20070018719A (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 KR1020060075065A priority Critical patent/KR100889898B1/ko
Publication of KR20070018719A publication Critical patent/KR20070018719A/ko
Application granted granted Critical
Publication of KR100889898B1 publication Critical patent/KR100889898B1/ko

Links

Images

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J9/00Programme-controlled manipulators
    • B25J9/16Programme controls
    • 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/16Sound input; Sound output
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • 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/22Microcontrol or microprogram arrangements
    • G06F9/26Address formation of the next micro-instruction ; Microprogram storage or retrieval arrangements
    • G06F9/262Arrangements for next microinstruction selection
    • G06F9/268Microinstruction selection not based on processing results, e.g. interrupt, patch, first cycle store, diagnostic programs
    • GPHYSICS
    • G10MUSICAL INSTRUMENTS; ACOUSTICS
    • G10LSPEECH ANALYSIS TECHNIQUES OR SPEECH SYNTHESIS; SPEECH RECOGNITION; SPEECH OR VOICE PROCESSING TECHNIQUES; SPEECH OR AUDIO CODING OR DECODING
    • G10L15/00Speech recognition

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Health & Medical Sciences (AREA)
  • Multimedia (AREA)
  • Robotics (AREA)
  • Mechanical Engineering (AREA)
  • Acoustics & Sound (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Manipulator (AREA)

Abstract

행동 제어 장치는, 모바일 로봇의 외부 조건을 취득하도록 구성된 외부 조건 취득 유닛과; 상기 외부 조건에 기초하여, 상기 모바일 로봇의 다수의 기능들에 대한 계획(plan)을 실행함으로써 성취될 목표(goal)를 생성하도록 구성된 목표 생성 유닛과; 상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표(general goal)인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션(interruption)에 의해 성취될 조건부 목표(conditional goal)인지를 나타내는 목표 부류(goal class)를 생성하도록 구성된 목표 부류 생성 유닛과; 실행 순서의 목표 시퀀스를 성취하기 위한 계획을 생성하도록 구성된 계획 생성 유닛과; 상기 목표 부류에 기초하여 상기 계획의 실행 순서를 결정하도록 구성된 실행 순서 결정 유닛을 포함한다.
모바일 로봇, 자율 로봇, 목표, 계획, 액션, 일반 목표, 조건부 목표

Description

로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체{APPARATUS, METHOD AND COMPUTER READABLE MEDIUM FOR CONTROLLING BEHAVIOR OF ROBOT}
도 1a 모바일 로봇의 정면도이고, 도 1b는 모바일 로봇의 측면도이다.
도 2는 로봇 시스템의 시스템 블록도이다.
도 3은 본 발명의 제1 실시예에 따른 모바일 로봇의 전체 구조를 보여주는 블록도이다.
도 4는 목표(goal)와 계획(plan) 및 액션(action)과의 관계를 설명하는 도면이다.
도 5는 외계(external world) 모니터링 유닛의 기능적 구조를 보여주는 블록도이다.
도 6은 외부 이벤트 생성 유닛에 의한 외부 이벤트의 생성 시에 이용되는 외부 이벤트 테이블을 보여주는 도면이다.
도 7은 행동 계획 유닛의 기능적 구조를 보여주는 블록도이다.
도 8은 목표 생성 테이블의 데이터 구조를 보여주는 도면이다.
도 9는 목표 부류(goal class) 생성 테이블의 데이터 구조의 예를 보여주는 도면이다.
도 10은 실행 계획 큐(executing plan cue)의 데이터 구조의 예를 보여주는 도면이다.
도 11은 조건부 계획 버퍼의 데이터 구조의 예를 보여주는 도면이다.
도 12는 모바일 로봇에 의한 액션 계획 프로세스를 보여주는 흐름도이다.
도 13은 도 12에서 설명된 목표 생성 프로세스(스텝 S106)에서의 상세한 프로세스를 보여주는 흐름도이다.
도 14는 도 12에서 설명된 일반 계획 실행 순서 결정 프로세스(스텝 S120)에서의 상세한 프로세스를 보여주는 흐름도이다.
도 15a, 15b 및 15c는 새로이 생성된 일반 계획이 현재 실행 중인 계획보다 더 높은 우선 순위를 갖는 경우의 일반 계획 실행 순서 결정 프로세스를 보다 상세히 설명하기 위한 도면들이다.
도 16a 및 16b는 일반 계획이 새로이 생성되는 경우의 프로세스를 설명하기 위한 도면들이다.
도 17a 및 17b는 현재 실행 중인 계획이 인터럽트되고 새로이 생성된 일반 계획이 실행되는 경우의 프로세스를 설명하기 위한 도면들이다.
도 18은 도 12에서 설명된 조건부 계획 저장 프로세스(스텝 S140)에서의 상세한 프로세스를 보여주는 흐름도이다.
도 19a 및 19b는 조건부 계획 버퍼에 저장된 조건부 계획의 실행 조건이 만족되는 경우의 프로세스를 설명하기 위한 도면들이다.
도 20a 및 20b는 실행 계획 큐에 이미 저장된 계획에 앞서 조건부 계획 버퍼 에 저장된 조건부 계획을 실행하는 경우의 프로세스를 설명하기 위한 도면들이다.
도 21은 제1 실시예에 따른 모바일 로봇의 하드웨어 구조를 보여주는 도면이다.
도 22는 제1 변형예를 설명하기 위한 도면이다.
도 23a 및 23b는 제2 변형예를 설명하기 위한 도면들이다.
<도면의 주요 부분에 대한 부호의 설명>
20 : 로봇 제어 시스템
21 : 머리
22 : 몸통부
23A, 23B : 팔
24 : 이동 유닛
31 : 스피커
32A, 32B : 마이크
33A, 33B : 카메라
40 : 행동 제어 장치
41 : 음성 처리 서브시스템
42 : 화상 처리 서브시스템
43 : 팔 서브시스템
44 : 몸통부 회전 서브시스템
45 : 목 회전 서브시스템
46 : 이동 서브시스템
100 : 외계 모니터링 유닛
200 : 행동 계획 유닛
300 : 계획 실행 유닛
400 : 지식 DB
100 : 외계 모니터링 유닛
102 : 화상 취득 유닛
110 : 음성 취득 유닛
120 : 네트워크 디바이스 조건 정보 취득 유닛
112 : 음성 인식 유닛
130 : 외부 이벤트 생성 유닛
201 : 외부 이벤트 취득 유닛
202 : 목표 생성 유닛
204 : 목표 부류 결정 유닛
206 : 우선 순위 결정 유닛
210 : 목표 DB
220 : 계획 생성 유닛
222 : 계획 DB 제어 유닛
230 : 계획 DB
232 : 실행 계획 큐
234 : 조건부 계획 버퍼
236 : 인터럽팅 계획 버퍼
[문헌1] 일본공개특허출원 2004-216528호
본 발명은 모바일 로봇에 관한 계획의 실행을 제어하기 위한 장치, 방법, 및 컴퓨터 판독 가능 매체에 관한 것이다.
자율 로봇(autonomous robot)의 경우, 미리 예정된 액션 계획(prescheduled action plan)에 따라서 프로세스를 실행할 때, 예를 들어, 사람으로부터의 다른 프로세스의 지시가 있으면, 자율 로봇은 실행 중인 프로세스를 중지한 다음 지시된 프로세스를 실행할 필요가 있다.
더욱이, 자율 로봇은 끊임없이 외부 이벤트(예컨대 음성 지시, 화상 처리 같은 것을 포함하는 센서 입력, 및 네트워크 가정용 전기 기구로부터의 이벤트 등)을 관찰하여, 그 이벤트에 대응하는 적절한 계획을 세우고, 그것을 정확히 실행할 필요가 있다.
지금까지는, 이들 이벤트를 다룰 수 있는 자율 로봇들이 있다. 이벤트들의 프로세스들은 실행을 위한 우선 순위를 가지며, 그 실행 순서는 프로세스들의 우선 순위를 이용하여 자동으로 결정된다. (예를 들어, 일본공개특허출원 2004-216528호 참조).
자율 로봇이 사람들과 공존하기 위해서는, 자율 로봇은 또한 실세계에서 일어나는 각종 이벤트들(예컨대 사람으로부터 로봇에게 주어지는 새로운 지시 및 센서에 의한 장애물의 검출을 나타내는 이벤트 등)의 해당 시점에서의 조건들에 대응할 수 있어야 한다.
본 발명은 상기 문제들을 해결하기 위해 이루어졌다. 이 발명의 목적은 조건에 적합한 계획을 생성하고 적절한 타이밍으로 그 계획을 실행하도록 액션 계획을 운영할 수 있는 행동 제어 장치를 제공하는 것이다.
<발명의 개시>
본 발명의 일 양태에 따른 행동 제어 장치는, 모바일 로봇의 외부 조건을 취득하도록 구성된 외부 조건 취득 유닛과; 상기 외부 조건에 기초하여, 상기 모바일 로봇의 다수의 기능들에 대한 계획을 실행함으로써 성취될 목표를 생성하도록 구성된 목표 생성 유닛과; 상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표(general goal)인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션(interruption)에 의해 성취될 조건부 목표(conditional goal)인지를 나타내는 목표 부류(goal class)를 생성하도록 구성된 목표 부류 생성 유닛과; 실행 순서의 목표 시퀀스를 성취하기 위한 계획을 생성하도록 구성된 계획 생성 유닛과; 상기 목표 부류에 기초하여 상기 계획의 실행 순서를 결정하도록 구성된 실행 순서 결정 유닛을 포함한다.
본 발명의 다른 양태에 따른 행동 제어 방법은, 모바일 로봇의 외부 조건을 취득하는 단계와; 상기 외부 조건에 기초하여, 상기 모바일 로봇의 다수의 기능들에 대한 계획을 실행함으로써 성취될 목표를 생성하는 단계와; 상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션에 의해 성취될 조건부 목표인지를 나타내는 목표 부류를 생성하는 단계와; 상기 실행 순서의 목표 시퀀스를 성취하기 위한 계획을 생성하는 단계와; 상기 목표 부류에 기초하여 상기 계획의 실행 순서를 결정하는 단계를 포함한다.
본 발명의 또 다른 양태에 따른 컴퓨터 판독 가능 매체는 컴퓨터에게 본 발명에 따른 행동 제어 방법을 수행시킨다.
<발명의 상세한 설명>
이하에서는 본 발명에 따른 행동 제어 장치, 행동 제어 방법, 및 행동 제어 프로그램에 대하여 도면들을 참조하여 설명한다. 실시예들은 이 발명의 범위를 제한하지 않는다.
도 1a 및 1b는 제1 실시예에 따른 내장 행동 제어 장치(built-in behavior control apparatus)(40)(도 1a 및 1b에는 도시되지 않음)를 갖는 모바일 로봇(1)의 외관 구조를 보여주는 도면들이다. 도 1a는 모바일 로봇(1)의 정면도이다. 도 1b는 모바일 로봇(1)의 측면도이다.
모바일 로봇(1)은 머리(head)(21), 몸통부(body)(22),팔(arms)(23A 및 23B), 및 이동 유닛(moving unit)(24)으로 구성되어, 사람과 유사한 형상으로 되어 있다. 머리(21)는 음성(speech)을 출력하는 스피커(31)를 갖는 입(mouth)(25)과, 음성을 입력하는 마이크(32A, 32B)를 각각 갖는 귀(ears)(26A 및 26B)와, 외부 화상을 입력하는 카메라(33A, 33B)를 각각 갖는 2개의 눈(eyes)(27A, 27B)을 포함한다. 팔(23A, 23B)은 인간의 팔과 손의 움직임을 흉내내도록 연결부(links), 이음부(joints), 및 손(hands)을 갖는다.
이동 유닛(24)은 모바일 로봇(1)이 바닥면 위에서 전후로 움직이거나 좌우로 방향을 변경할 수 있게 하는 4개의 바퀴(28A, 28B, 28C, 28D)를 갖고 있어, 인간의 다리에 필적한다.
몸통부(22)는 모바일 로봇(1)의 중심 부분이다. 몸통부(22)는 머리(21), 팔(23A 및 23B), 및 이동 유닛(24)에 각각 롤링 기구(rolling mechanisms)를 통하여 연결되고, 몸통부(22)의 내부에는, 모바일 로봇(1)의 동작(motions) 및 정보 처리와 같은 일반적인 제어를 수행하기 위한 내장 로봇 제어 시스템(20)을 갖는다.
도 2는 로봇 시스템(20)의 시스템 블록도이다. 로봇 시스템(20)은 모바일 로봇(1) 자체의 동작 및 프로세스를 결정하기 위한 행동 제어 장치(40) 및 행동 제어 장치(40)에서의 동작 및 처리를 결정하기 위한 정보(이하, 제어 입력 정보)를 입력하고 행동 제어 장치(40)에서의 결정된 동작 및 프로세스의 명령 정보(이하, 제어 출력 정보)를 수신하여 실행하기 위한 각종 서브시스템(41 내지 46)을 포함한다.
음성 처리 서브시스템(41)은 A/D 변환 및 D/A 변환과 같은 일반 음성 처리, 음성 인식, 및 음성 합성을 수행하고, 마이크(32A 및 32B)를 통하여 행동 제어 장치(40)에 입력된 외계 음성 중에서 행동 제어 장치(40)에 필요한 제어 입력 정보를 공급하고 행동 제어 장치(40) 또는 음성 처리 서브시스템(41)의 내부에서 생성된 단어들을 처리하여 스피커(31)를 통하여 음성을 출력한다. 또한, 음성 처리 서브시스템(41)은, 예를 들어, 입력된 음성 인식이 만족스럽지 않은 경우, 행동 제어 장치(40)를 거치지 않고(음성 처리 서브시스템(41) 내의 처리가 폐쇄됨) 음성 합성을 통하여 다시 들음으로써 그 음성을 자동으로 출력하도록 처리하는 스텝을 가질 수 있다.
화상 처리 서브시스템(42)은 카메라(33A 및 33B)로부터 입력된 화상의 화상 인식을 수행하고 행동 제어 장치(40)에 필요한 화상 인식된 정보 내의 제어 입력 정보를 행동 제어 장치(40)에 공급한다. 또한, 화상 처리 서브시스템(42)은 카메라(33A 및 33B)를 이용한 삼각측량 방법에 따라서 화상 타깃의 거리 측정을 처리하는 스텝을 갖는다. 또한, 화상 처리 서브시스템(42)은, 타깃 화상의 방향을 계속적으로 따라가면서 타깃 화상을 계속적으로 캡처하는 잘 알려진 트래킹 기능(tracking function)을 갖는다.
팔(arm) 서브시스템(43)은 행동 제어 장치(40)로부터 제어 정보를 수신하여 팔 유닛(23A, 23B)의 각각의 이음부의 물리적 구동량을 결정하여 팔 유닛(23A, 23B)을 움직인다. 몸통부 회전 서브시스템(44)은 행동 제어 장치(40)로부터 제어 정보를 수신하여 이동 유닛(24)에 대한 몸통부(22)의 물리적 회전량을 결정하여 몸통부(22)를 회전시킨다. 목(neck) 회전 서브시스템(26)은 행동 제어 장치(40)로부 터 제어 정보를 수신하여 몸통부(22)에 대한 머리(21)의 물리적 회전 구동량을 결정하여 목의 머리(21)를 회전시킨다. 이동 서브시스템(46)은 행동 제어 장치(40)로부터 제어 정보를 수신하여 각각의 바퀴(28A 내지 28D)의 회전량을 결정하여 각각의 바퀴(28A 내지 28D)를 회전시킨다. 바퀴 속도는 소정의 시간 동안의 회전량을 조정함으로써 조정될 수 있다.
행동 제어 장치(40)는 로봇 디바이스 자체의 동작 및 프로세스를 결정하고 외부 조건 및 내부 조건(예컨대 로봇 디바이스의 자세 및 배터리의 잔여량 등)을 제어 입력 정보로서 수신하여, 예를 들어, 하나 이상의 동작 및 프로세스를 결정하고 그 동작 및 프로세스를 미리 결정된 규칙에 따라서 수행할 수 있는 하나 이상의 서브시스템에 제어 정보를 출력한다. 또한, 모바일 로봇(1)은 클록 시스템, 온도 센서, 및 습도 센서 등을 가질 수 있다. 행동 제어 장치(40)는 또한 이들 센서를 제어할 수 있다.
게다가, 다른 서브시스템을 거치지 않고 행동 제어 장치(40)에서 계산과 같은 정적인 프로세스가 처리될 수도 있다.
여기서, 실시예에 따른 모바일 로봇(1)은 위에서 기술한 서브시스템들(41 내지 46)을 갖지만, 이 발명은 그것에 제한되지 않고, 예를 들어, 무선 기능 및 디스플레이 기능을 필요로 하는 모바일 로봇(1)을 제공할 경우, 모바일 로봇(1)은 무선 전송 프로세스를 수행하는 무선 서브시스템 및 디스플레이 제어를 수행하는, 부가적인 디스플레이 디바이스를 갖는, 디스플레이 서브시스템을 가질 수 있다.
도 3은 이 발명의 실시예에 따른 모바일 로봇(1)의 전체 구조를 보여주는 블 록도이다. 모바일 로봇(1)은 외계 모니터링 유닛(100), 행동 계획 유닛(200), 행동 계획 실행 유닛(300), 및 지식 데이터베이스(DB)(400)를 갖는다.
외계 모니터링 유닛(100)은 외계를 모니터링하고 모니터링 결과로부터 외부 이벤트를 생성한다. 여기서, 외부 이벤트는 예컨대 음성 서브시스템을 이용하여 인식된 구두 명령 및 네트워크 디바이스로부터의 신호 등일 수 있다. 외계 모니터링 유닛(100)은 외부 이벤트를 모니터링한다. 예를 들어, 마이크(32A, 32B)가 음성을 검출하는 경우, 그것은 검출된 음성의 음성 인식의 결과를 이용하여 외부 이벤트로서 이벤트를 생성한다. 또한, 예를 들어, 카메라(33A 및 33B)의 화상 픽업(image pickup) 후의 화상 인식의 결과로부터 장애물이 검출되면, 장애물이 검출된 것을 나타내는 검출 결과가 외부 이벤트로서 생성될 수 있다. 이처럼, 외계 모니터링 유닛(100)은 예컨대 모바일 로봇(1)에 설치된 센서들에 의한 검출 결과 및 모바일 로봇(1)에 의해 외부에서 취득된 정보를 외계 모니터링의 결과로 취급하여 그에 기초하여 외부 이벤트를 생성한다.
행동 계획 유닛(200)은 외계 모니터링 유닛(100)으로부터 외부 이벤트를 취득한다. 그 후, 외계 이벤트에 기초하여 목표가 생성된다. 여기서, 목표(goal)는 실행되어 완료되어야 할 태스크 또는 만족되어야 할 조건을 의미한다. 목표의 또 다른 예는 성취되어야 할 타깃 조건일 수 있다.
그 후 행동 계획 유닛(200)은 목표를 성취하기 위한 계획을 생성한다. 여기서, 계획(plan)은 실행하여 목표를 성취하기 위한 일련의 프로세스이다. 계획은 복수의 액션을 가질 수 있다. 여기서, 액션은 계획을 실행하기 위한 최소 단 위(minimum unit)이다.
계획 실행 유닛(300)은 액션마다 행동 계획 유닛(200)에서 생성된 계획을 실행한다. 액션에 관한 상세에 대해서는 나중에 설명한다. 지식 DB(400)는 각종 타입의 정보를 보유한다. 외계 모니터링 유닛(100), 행동 계획 유닛(200), 및 계획 실행 유닛(300)은 지식 DB(400)를 참조하여 처리한다.
도 4는 행동 제어 장치(40)의 목표와 계획 및 액션들과의 관계를 설명하는 도면이다. 도 4에 도시된 바와 같이, 목표에 기초하여 계획이 생성되고 계획에 기초하여 액션들이 생성된다.
도 5는 외계 모니터링 유닛(100)의 기능적 구조를 보여주는 블록도이다. 외계 모니터링 유닛(100)은 화상 취득 유닛(102), 음성 취득 유닛(110), 음성 인식 유닛(112), 네트워크 디바이스 조건 정보 취득 유닛(120), 및 외부 이벤트 생성 유닛(130)을 포함한다.
화상 취득 유닛(102)은 나중에 설명되는 화상 센서로부터의 검출 결과를 취득한다. 음성 취득 유닛(110)은 나중에 설명되는 마이크에 의해 취득된 음성을 취득한다. 음성 인식 유닛(112)은 음성 취득 유닛(110)에 의해 취득된 음성을 인식한다. 네트워크 조건 정보 취득 유닛(120)은 네트워크에 접속된 다른 디바이스들의 조건을 나타내는 네트워크 디바이스 조건 정보를 네트워크를 통하여 수신한다.
모바일 로봇(1)은 네트워크에 접속된다. UPnP(Universal Plug and Play)에 의해 네트워크에 접속된 다른 네트워크 디바이스들로부터 원하는 정보가 취득될 수 있다. 네트워크 디바이스 조건 정보는 UPnP에 의해 취득될 네트워크 디바이스들의 이벤트 정보이다.
외부 이벤트 생성 유닛(130)은 화상 취득 유닛(102)에 의해 취득된 화상 검출 결과, 음성 인식 유닛(112)에 의해 취득된 음성 인식 결과, 및 네트워크 디바이스 조건 정보 취득 유닛(120)에 의해 취득된 네트워크 디바이스 조건 정보에 기초하여 외부 이벤트를 생성한다.
도 6은 외부 이벤트 생성 유닛(130)에 의한 외부 이벤트의 생성 시에 이용되는 외부 이벤트 테이블을 보여주는 도면이다. 외부 이벤트 테이블은 지식 DB(400) 내에 보유된다. 외부 이벤트 테이블에서는, 외부 모니터링 결과와 외부 이벤트 생성 유닛(130)에 의해 취득된 외부 이벤트가 서로 연결된다.
예를 들어, 얼굴 화상이 검출될 경우, 얼굴 화상의 검출을 나타내는 정보가 외부 이벤트로서 생성된다. 또한, 음성 인식을 수행하기 위한 음성이 검출될 경우, 음성 처리 서브시스템에 의해 취득된 음성 정보가 외부 이벤트로서 생성된다.
또한, 네트워크 디바이스로부터 네트워크 디바이스 조건 정보가 취득될 경우, 취득된 네트워크 디바이스 조건 정보 및 네트워크 디바이스를 식별하는 네트워크 디바이스 ID를 포함하는 정보가 외부 이벤트로서 생성된다.
외부 이벤트는 어느 한쪽의 정보로부터 직접 생성되지 않는다. 대응하는 외부 이벤트는 외부 이벤트 테이블에 저장된 외계 모니터링 결과가 취득될 경우 생성된다.
이 실시예에 따른 외부 이벤트 테이블에서는, 하나의 외부 조건으로부터 하나의 외부 이벤트가 생성되지만, 이 발명은 그것에 제한되지 않고 하나의 외부 조 건으로부터 복수의 외부 이벤트가 생성될 수 있다. 또한, 복수의 외부 조건이 모니터링되어 하나의 이벤트가 생성될 수도 있다.
또한, 또 다른 예로서, 지식 DB(400)는 모니터링 결과로부터 외부 이벤트를 생성하기 위해 외부 이벤트 테이블 대신 알고리즘을 보유한다. 이때, 외부 이벤트 생성 유닛(130)은 지식 DB(400)에 보유된 알고리즘을 이용하여 외부 이벤트를 생성할 수 있다.
도 7은 행동 계획 유닛(200)의 기능적 구조를 보여주는 블록도이다. 행동 계획 유닛(200)은 외부 이벤트 취득 유닛(201), 목표 생성 유닛(202), 목표 부류 결정 유닛(204), 우선 순위 결정 유닛(206), 목표 데이터베이스(DB)(210), 계획 생성 유닛(220), 계획 DB 제어 유닛(222), 및 계획 DB(230)을 갖는다.
외부 이벤트 취득 유닛(201)은 외계 모니터링 유닛(110)으로부터 외부 이벤트를 취득한다. 목표 생성 유닛(202)은 지식 DB(400)에 의해 보유된 정보를 참조하면서 외부 이벤트 취득 유닛(201)에 취득된 외부 이벤트에 기초하여 목표를 생성한다.
예를 들어, 외부 이벤트 취득 유닛(201)이 "신문을 나에게 가져와라(bring me a newspaper)"고 하는 음성 인식 결과를 외부 이벤트로서 취득할 경우, 목표 생성 유닛(202)은 "신문을 가져와라(bring a newspaper)"에 대한 목표를 생성한다. 이처럼, 목표 생성 유닛(202)은 음성 인식에 의해 미리 설정된 키워드들이 취득될 경우 키워드들에 기초하여 목표를 생성한다.
음성 인식 결과로부터 취득된 키워드들, 즉, 목표 생성 정보로부터 목표를 생성하기 위한 규칙이 지식 DB(400)에 보유된다. 구체적으로, 지식 DB(400)는 키워드들을 목표 부류에 대응시키는 목표 생성 테이블을 보유한다. 목표 생성 유닛(202)은, 지식 DB(400) 내에 보유된 목표 생성 테이블에서, 키워드들에 대응하는 목표를 외부 이벤트에 대응하는 목표로서 추출한다.
도 8은 목표 생성 테이블의 데이터 구조를 보여주는 도면이다. 이 목표 생성 테이블에서, "신문을 나에게 가져와라"라는 음성 인식 결과의 외부 이벤트는 "신문을 가져와라"라는 목표에 대응한다. 따라서, 목표 생성 유닛(202)은 목표 생성 테이블을 참조하여 "신문을 나에게 가져와라"라는 음성 인식 결과의 외부 이벤트로부터 "신문을 가져와라"라는 목표를 생성한다.
또한, 외부 이벤트가 화상 처리 결과에 기초하는 경우, 목표는 화상 처리 결과에 대응하여 생성된다. 예를 들어, 얼굴 화상 검출의 정보가 외부 이벤트로서 취득될 경우, 도 8에 도시된 목표 생성 테이블을 참조하여 "인사하라(greet)"라는 목표가 생성된다.
냉장고로부터의 네트워크 이벤트가 발생하고, 냉장고의 문이 2분 이상 열려 있는 경우, 도 8에 도시된 목표 생성 테이블을 참조하여 "문을 닫기 위해 경고하라(warn for closing the door)"라는 목표가 생성된다.
특정 음식물의 신선도 보증 기간(freshness date)이 다가오고 있음을 나타내는 네트워크 디바이스 조건 정보가 외부 이벤트로서 취득될 경우, "신선도 보증 기간이 다가오고 있음을 알리기 위해 경고하라(warn to tell that freshness date is approaching)"라는 목표가 생성된다. 에어컨(air conditioner), 조명(light) 등과 같은 다른 네트워크 가전 기구와 관련해서도, 네트워크 디바이스 조건 정보의 외부 이벤트에 기초하여 목표가 생성된다.
또 다른 예로서, 목표 생성 유닛(202)은 복수의 외부 이벤트에 기초하여 하나의 목표를 생성할 수도 있다. 목표 생성 유닛(202)은 하나의 외부 이벤트에 기초하여 복수의 목표를 생성할 수도 있다.
여기서, 또 다른 예로서, 지식 DB(400)는 목표 생성 테이블 대신에 키워드들로부터 목표를 생성하기 위한 알고리즘을 보유할 수 있다. 이런 상황에서, 목표 생성 유닛(202)은 알고리즘에 기초하여 키워드들로부터 목표를 결정한다.
지식 DB(400)는 목표 정보 생성 정보 보유 유닛으로 불릴 수 있다. 또한, 이 실시예에 따라 키워드들로부터 목표를 생성하기 위한 알고리즘은, 바꿔 말하면, 목표 생성 정보이다.
목표 부류 결정 유닛(204)은 외부 이벤트 취득 유닛(201)에 의해 취득된 이벤트에 기초하여 목표 생성 유닛(202)에 의해 생성된 목표의 목표 부류를 결정한다. 여기서, 목표 부류는 일반 목표 부류 또는 조건부 목표 부류일 수 있다.
일반 목표는 외부 이벤트 취득 유닛(201)에 의해 취득되는 순서대로 실행될 프로세스에 의해 그 목표가 성취되는 목표 부류이다. 일반 목표의 예들은 "할머니를 찾아라(find grandma)"와 "신문을 나에게 가져와라(bring me a newspaper)" 등이다.
조건부 목표 부류는 외부 이벤트 취득 유닛(201)에 의해 취득된 순서에 관계없이 미리 설정된 실행 조건이 만족되는 경우에만 실행될 프로세스에 의해 그 목표가 성취되는 목표 부류이다. 목표 부류 결정 유닛(204)은 또한 조건부 목표에 대하여 실행 조건을 결정한다.
모바일 로봇에 의해 실행될 프로세스는 긴급 정도(degrees of urgency)가 상이한 프로세스일 수 있다. 예를 들어, 프로세스는 즉각적인 주의를 필요로 하지는 않지만 일반 프로세스 동안에 실행 가능하다면 실행되는 것이 바람직한 프로세스일 수 있다. 또 다른 예로서, 프로세스는, 3시에 프로세스를 실행하는 것과 같은 특정 조건이 만족되면, 그 프로세스를 실행함으로써 임의의 다른 실행 중인 프로세스들이 중지되고 인터럽트되어야 하는 프로세스일 수 있다. 이들 프로세스들은 조건부 목표들로서 취급될 수 있다.
조건부 목표는 "사람을 만나면 인사하라(greet when meeting a person)"와 "빛나는 물체가 발견되면, 그것을 주워라(if any shining object is found, pick it up)"와 같은 일반 이벤트가 발생할 경우 실행 가능한 목표일 수 있다. 또한, 조건부 목표는 "3시에 스낵을 주어라(give snacks at 3 o'clock)"와 "1시간마다 나에게 시간을 알려라(tell me time every 1 hour)"와 같은 시간 이벤트 또는 주기적인 이벤트가 발생할 경우 실행 가능한 목표일 수 있다. 조건부 목표는 소정의 이벤트가 발생하는 조건으로 실행 가능한 목표이다.
목표 부류 결정 유닛(204)은 음성 인식 결과와 함께 외부 이벤트로서 "일반 목표"를 나타내는 키워드가 검출될 경우 외부 이벤트에 대하여 "일반 목표"로서 목표의 목표 부류를 결정한다. "...인 경우에(in the case where...)"와 같은 키워드들이 음성 인식 결과에 포함될 경우, 목표 부류는 "조건부 목표"로 결정된다. 이처럼, 목표 부류 결정 유닛(204)이 미리 설정된 키워드들 중 일부를 취득할 경우, 그 키워드들에 기초하여 목표 부류가 결정된다.
또한, 음성 인식 결과로부터 취득된 키워드들로부터 목표 부류를 특정하기 위한 규칙들이 지식 DB(400) 내에 보유된다. 구체적으로, 지식 DB(400)는 키워드를 목표 부류에 대응시키는 목표 부류 생성 테이블을 보유한다.
도 9는 목표 부류 생성 테이블의 데이터 구조의 예를 보여주는 도면이다. 이 목표 부류 생성 테이블에서, "일반 목표"의 음성 정보는 목표 부류, 즉, "일반 목표"에 대응한다. 따라서, 목표 부류 결정 유닛(204)은 목표 부류 생성 테이블을 참조하여 "일반 목표"의 음성 정보로부터 "일반 목표"로서 목표 부류를 결정한다.
위에서 기술한 것과 다르게, "...인 경우에"와 같은 키워드는 "조건부 목표"에 대응한다. 따라서, 목표 부류 결정 유닛(204)이 음성 정보로서 목표 부류를 직접 취득하지 않는다 하더라도, 키워드에 기초하여 목표 부류가 결정될 수 있다.
또한, 실행 조건은 "...인 경우에"와 같은 키워드 바로 앞의 음성 정보에 기초하여 특정된다. 구체적으로, 예를 들어, "어디선가 신문이 발견되는 경우에(in the case where a newspaper is found anywhere)"라는 음성 인식 결과가 외부 이벤트로서 취득될 경우, 목표 부류는 "조건부 목표"로서 특정되고 실행 조건은 "로봇이 신문을 발견하면(if the robot find a newspaper)"으로 설정된다.
이처럼, "어디선가 신문이 발견되는 경우에, 그 신문을 나에게 가져와라"라는 음성 인식 결과가 외부 이벤트로서 취득될 경우, 목표 부류는 "조건부 목표"로 결정되고 실행 조건은 "로봇이 신문을 발견하면"으로 결정된다.
또한, 또 다른 예로서, 지식 DB(400)는 키워드들로부터 목표 부류를 특정하기 위한 알고리즘을 보유할 수 있다. 그때, 목표 부류 결정 유닛(204)은 알고리즘에 기초하여 키워드들로부터 목표 부류를 특정한다.
여기서, 지식 DB(400)는 목표 부류 생성 정보 보유 유닛으로 불릴 수 있다. 또한, 실시예에 따라서 키워드들로부터 목표 부류를 특정하기 위한 알고리즘은, 바꿔 말하면, 목표 부류 생성 정보이다.
우선 순위 결정 유닛(206)은 외부 이벤트 취득 유닛(201)에 의해 취득된 이벤트에 기초하여 목표 생성 유닛(202)에 의해 생성된 목표의 우선 순위를 결정한다. 여기서, 우선 순위는 계획의 생성 순서에 관계없이 목표에 대하여 생성된 계획의 실행 순서에서의 선호의 지표(index of preference)이다. 우선 순위가 높게 설정될수록, 그 계획은 실행 순서에서 보다 이르게(earlier) 배치된다.
우선 순위 결정 유닛(206)은, 예를 들어 음성 인식 결과로서, "높은 우선 순위(high priority)"라는 키워드가 검출될 경우, 우선 순위를 "높은" 것으로 결정한다. 또한, "급행(posthaste)" 또는 "지급(rush)"과 같은 키워드들이 음성 인식 결과로서 검출되면, 우선 순위는 "높게" 설정된다. 예를 들어, "즉시 신문을 나에게 가져와라(bring me a newspaper immediately)"라는 음성 인식 결과가 음성 인식 결과의 외부 이벤트로서 취득될 경우, 우선 순위는 "높은" 것으로 설정된다.
이처럼, 미리 설정된 키워드가 음성 인식으로부터 취득될 경우, 우선 순위 결정 유닛(206)은 그 키워드에 기초하여 우선 순위를 결정한다. 또한, 음성 인식 결과로부터 취득된 키워드들로부터 우선 순위를 특정하는 규칙이 지식 DB(400) 내에 보유된다. 구체적으로, 지식 DB(400)는 키워드들을 우선 순위들에 대응시키는 우선 순위 테이블을 보유한다.
또한, 또 다른 예로서, 예를 들어, "신문을 나에게 가져와라"라는 음성 인식 결과가 반복적으로 검출될 경우, 우선 순위는 높다고 간주되어 "높은" 것으로 결정될 수 있다. 또한, 우선 순위에 관한 아무런 정보도 취득되지 않을 경우, 우선 순위는 디폴트 값인 "중간"으로 설정될 수 있다.
또 다른 예로서, 지식 DB(400)는 키워드로부터 우선 순위를 특정하기 위한 알고리즘을 보유할 수 있다. 이처럼, 우선 순위 결정 유닛(206)은 지식 DB(400)의 정보를 참조하여 목표 생성 유닛(202)에 의해 생성된 목표의 우선 순위를 결정한다.
여기서, 지식 DB(400)는 우선 순위 결정 정보 보유 유닛으로 불릴 수 있다. 또한, 이 실시예에 따라서 키워드로부터 우선 순위를 특정하기 위한 알고리즘은, 바꿔 말하면, 우선 순위 결정 정보이다.
따라서, 예를 들어, "즉시 신문을 나에게 가져와라"라는 음성 인식 결과가 외부 이벤트로서 취득될 경우, 목표 생성 유닛(202)은 "신문을 가져와라"라는 목표를 생성한다. 그 후, 목표 부류 결정 유닛(204)은 생성된 목표의 목표 부류를 "일반 목표"로 결정한다. 우선 순위 결정 유닛(206)은 목표의 우선 순위를 "높게" 설정한다.
또한, "어디선가 신문을 보면 그것을 가져와라(bring a newspaper if you see it anywhere)"라는 음성 인식 결과가 외부 이벤트로서 취득되면, 목표 생성 유닛(202)은 "신문을 가져와라"라는 목표를 생성한다. 그 후, 목표 부류 결정 유닛(204)은 생성된 목표의 목표 부류가 "조건부 목표"인 것으로 결정하고 "신문을 보았다(saw the newspaper)"라는 실행 조건을 특정한다. 또한, 우선 순위 결정 유닛(206)은 목표의 우선 순위가 디폴트 값인 "중간"인 것으로 결정한다.
또한, 네트워크 디바이스 조건 정보가 외부 이벤트로서 취득되는 경우의 예로서, 냉장고의 문이 2분 이상 열려 있다는 것을 나타내는 외부 이벤트가 취득된다. 또한, 냉장고의 문이 2분 이상 열려 있다는 것을 나타내는 외부 이벤트는 목표와 함께 목표의 "높은" 우선 순위에 대응한다. 이런 상황에서, 목표 생성 유닛(202)은 "문을 닫기 위해 경고하라"라는 목표를 생성한다. 그 후, 목표 부류 결정 유닛(204)은 그 목표의 목표 부류를 "일반 목표"로 결정한다. 우선 순위 결정 유닛(206)은 그 목표의 우선 순위가 "높은" 것으로 결정한다.
또한, 냉장고 내의 음식물의 "유효일자(use by date)"가 다가오고 있음을 나타내는 외부 이벤트에 대하여, 목표 생성 유닛(202)은 "음식물의 유효일자가 다가오고 있음을 경고하라(warn that the use by date of the foods is approaching)"라는 목표를 생성한다. 그 후, 목표 부류 결정 유닛(204)은 생성된 목표의 목표 부류가 "일반 목표"인 것으로 결정한다. 우선 순위 결정 유닛(206)은 목표의 우선 순위를 "중간"으로 결정한다. 목표 DB(210)는 목표 생성 유닛(202)에 의해 생성된 목표와, 목표 부류 결정 유닛(204)에 의해 결정된 목표 부류와, 우선 순위 결정 유닛(206)에 의해 결정된 우선 순위를 보유한다.
계획 생성 유닛(220)은 목표 DB(210)에 의해 보유된 일반 목표와 목표 DB(210)에 의해 보유된 조건부 목표의 각각으로부터 계획을 생성한다. 일반 목표로부터 생성된 계획은 이하에서 일반 계획으로 불린다. 또한, 조건부 목표로부터 생성된 계획은 이하에서 조건부 계획으로 불린다. 계획 DB 제어 유닛(222)은 계획 생성 유닛(220)에 의해 생성된 일반 계획 및 조건부 계획을 계획 DB(230) 내에 보유하고 그것의 실행 순서를 제어한다. 여기서, 계획 DB 제어 유닛(222)은 실행 순서 결정 유닛으로 불릴 수 있다.
계획 DB(230)는 실행 계획 큐(executing plan cue)(232), 조건부 계획 버퍼(234), 및 인터럽팅 계획 버퍼(interrupting plan buffer)(236)를 갖는다. 실행 계획 큐(232)는 계획 생성 유닛(220)에 의해 생성된 실행 계획과 조건부 계획을 계획 실행 유닛(300)의 실행 순서대로 보유한다. 즉, 실행 계획 큐(232)에 의해 보유된 순서에 따라서, 복수의 계획이 순서대로 실행된다. 조건부 계획 버퍼(234)는 계획 생성 유닛(220)에 의해 생성된 조건부 계획을 보유한다. 인터럽팅 버퍼(236)는 계획의 실행 중에 인터럽트된 계획을 보유한다.
도 10은 실행 계획 큐(232)의 데이터 구조의 예를 보여주는 도면이다. 도 7에 도시된 실행 계획 큐(232)는 계획들, 즉, "신문을 가져와라", "할머니를 찾아라", 및 "아이와 놀아라"를 각각 실행 순서 번호 1, 실행 순서 번호 2, 및 실행 순서 번호 3의 순서대로 저장한다. 따라서, 계획들은 이 순서대로 실행된다.
도 11은 조건부 계획 버퍼(234)의 데이터 구조의 예를 보여주는 도면이다. 조건부 계획 버퍼(234)는 하나의 조건부 계획 또는 2개 이상의 조건부 계획들을 보유할 수 있다.
도 12는 모바일 로봇(1)에 의한 액션 계획 프로세스를 보여주는 흐름도이다. 모바일 로봇(1)의 외계 모니터링 유닛(100)은 끊임없이 음성 지시, 화상과 같은 센서 입력, 네트워크 전기 기구들로부터의 이벤트 입력을 모니터링한다(스텝 S100). 그 후, 미리 설정된 외부 모니터링 결과가 취득되면(스텝 S102에서 '예'), 외계 모니터링 유닛(100)의 외부 이벤트 생성 유닛(130)은 외부 모니터링 결과에 기초하여 외부 이벤트를 생성한다.
구체적으로, 센서 입력에 의해 음성이 검출되는지가 검사된다. 음성이 검출되면, 등록된 음성 정보가 있는지 여부가 검사된다. 그 후, 얼굴 화상과 같은 미리 등록된 화상이 있는지 여부가 검사된다. 그 후, 네트워크와 접속된 네트워크 디바이스 이벤트 정보가 있는지 여부가 검사된다.
등록된 음성 정보, 등록된 화상, 및 등록된 이벤트 정보가 취득될 경우, 외부 이벤트 생성 유닛(130)은 대응하는 외부 이벤트들을 생성한다. 등록된 외부 모니터링 결과가 취득되지 않을 경우(스텝 S102에서 '아니오'), 외계 모니터링 유닛(100)은 끊임없이 외부를 모니터링한다(스텝 S100).
다음으로, 행동 계획 유닛(200)은 외계 모니터링 유닛(100)에 의해 생성된 외부 이벤트에 기초하여 일반 목표 또는 조건부 목표를 생성한다(스텝 S106). 그 후, 생성된 목표를 성취하기 위해 순서대로 계획이 생성된다(스텝 S108).
생성된 계획의 계획 부류가 일반 계획일 경우(스텝 S110에서 '예'), 계획 DB 제어 유닛(222)은 일반 계획의 실행 순서를 결정하고 계획 DB(230)의 실행 계획 큐(232) 내에 저장한다. 이때, 실행 계획 큐(232)에서는, 실행 순서에서의 위치에 대응하는 순서대로 저장된다(스텝 S120). 다음으로, 계획 실행 유닛(300)은 실행 계획 큐(232)의 상단으로부터 저장된 계획들의 순서대로 계획들을 실행한다(스텝 S130).
스텝 S110에서 생성된 계획 부류가 조건부일 경우(스텝 S110에서 '아니오'), 계획 DB 제어 유닛(222)은 이 조건부 계획을 계획 DB(230)의 인터럽팅 계획 버퍼(236)에 저장한다. 그 후, 조건부 계획의 실행 조건이 만족될 경우, 조건부 계획은 실행되기 위해 실행 계획 큐(232)의 소정의 위치에 저장되어야 할 것이다(스텝 S140). 그 후, 실행 계획 큐(232)의 상단에 저장된 계획으로부터 순서대로 계획이 실행된다(스텝 S130). 그 후, 모바일 로봇(1)의 행동 계획 프로세스가 완료된다.
도 13은 도 12에서 설명된 목표 생성 프로세스(스텝 S106)에서의 상세한 프로세스를 보여주는 흐름도이다. 행동 계획 유닛(200)의 외부 이벤트 취득 유닛(201)은 외계 모니터링 유닛(100)으로부터 외부 이벤트를 취득한다(스텝 S200). 다음으로, 목표 생성 유닛(202)은 외부 이벤트에 대응하는 목표를 생성한다(스텝 S202). 또한, 목표 부류 결정 유닛(204)은 생성된 목표의 목표 부류를 결정한다(스텝 S204). 또한, 우선 순위 결정 유닛(206)은 생성된 목표의 목표 부류의 우선 순위를 결정한다(스텝 S206). 그 후, 생성된 목표, 목표 부류, 및 우선 순위는 서로 대응되어 목표 DB(210)에 저장된다(스텝 S208).
도 14는 도 12에서 설명된 일반 계획 실행 순서 결정 프로세스(스텝 S120)에서의 상세한 프로세스를 보여주는 흐름도이다. 먼저, 계획 DB 제어 유닛(222)은 카운터 값 "i"를 1로 설정한다(스텝 S400). 즉, 카운터가 리셋된다. 다음으로, 실행 순서 "i"의 위치에 저장된 실행 계획 큐(232)의 계획이 있다면(스텝 S402), 새로이 생성된 계획의 우선 순위가 실행 순서 "i"에 저장된 계획과 비교된다. "i"는 1로 설정되어 있기 때문에, 구체적으로, 실행 순서 1에 저장된 계획의 우선 순위가 새로이 생성된 일반 계획의 우선 순위와 비교된다.
새로이 생성된 일반 계획의 우선 순위가 실행 순서 "i"에 저장된 계획의 우선 순위보다 높고 카운터 값 "i"가 1이라면(스텝 S404 및 스텝 S406에서 '예'), 실행 순서 1에 저장된 계획의 실행은 인터럽트되고, 인터럽트된 계획은 인터럽팅 버퍼(236)에 저장된다(스텝 S410).
또한, 실행 순서 "n"에 저장된 계획들은 각각 실행 순서 (n+1)에 저장된다(스텝 S412). 또한, 새로이 생성된 일반 계획은 실행 순서 1에 저장된다(스텝 S414). 이처럼, 새로이 생성된 계획이 현재 실행 중인 계획에 앞서 실행되어야 할 계획이면, 실행 중인 계획은 일시적으로 인터럽트되고 새로이 생성된 계획이 실행 계획 큐(232)의 상단, 즉, 실행 순서 1에 저장된다.
한편, 카운터 값 "i"가 1 또는 그 이상이면(스텝 S406에서 '아니오'), 실행 순서 "i" 이후의 각각의 실행 순서 "n"에 저장된 계획들은 각각 실행 순서 (n+1)에 저장된다(스텝 S420). 또한, 새로이 생성된 일반 계획은 실행 순서 "i"에 저장된다(스텝 S422).
또한, 스텝 S404에서, 새로이 생성된 일반 계획의 우선 순위가 실행 순서 "i"에 저장된 계획의 우선 순위보다 낮다면(스텝 S404에서 '아니오'), "i"의 값은 1만큼 증가되고(스텝 S408) 스텝 S402로 복귀한다.
스텝 S402에서, 실행 순서 "i"에 계획이 저장되어 있지 않다면(스텝 S402에서 '아니오'), 새로이 생성된 일반 계획은 실행 계획 큐의 말단에 저장된다(스텝 S430). 여기서, 일반 계획 실행 순서 결정 프로세스(스텝 S120)가 완료된다.
도 15a, 15b 및 15c는 새로이 생성된 일반 계획의 우선 순위가 현재 실행 중인 계획의 우선 순위보다 더 높은 경우의 일반 계획 실행 순서 결정 프로세스를 보다 상세히 설명하는 도면들이다. 도 15a에 도시된 바와 같이, 실행 순서 1에 저장된 계획인 "할머니를 찾아라"의 우선 순위는 중간이고 새로이 생성된 일반 계획인 "현관문이 열리면 가서 봐라(go to see if the entrance door is open)"의 우선 순위는 높다.
실행 순서 1에 저장된 계획은 복수의 액션(액션 1 내지 액션 4)을 포함하고, 여기서 액션 1은 "방 A에서 할머니를 찾아라"를 포함하고, 액션 2는 "방 B에서 할머니를 찾아라"를 포함하고, 액션 3은 "방 C에서 할머니를 찾아라"를 포함하고, 액션 4는 "방 D에서 할머니를 찾아라"를 포함한다.
이들 액션 중에서, 액션 2인 "방 B에서 할머니를 찾아라"를 실행하는 동안에 새로이 생성된 일반 계획이 부가된다고 가정한다. 이 경우, 실행 순서 1의 계획인 "할머니를 찾아라"가 인터럽트된다. 그 후, 도 15b에 도시된 바와 같이, 실행 중인 "방 B에서 할머니를 찾아라"인 액션 2 이후에 실행될 3개의 액션, 즉, 액션 2 내지 4는 인터럽팅 계획 버퍼(236)에 보유된다.
또한, 도 15c에 도시된 바와 같이, 새로이 생성된 일반 계획은 실행 계획 큐(232)의 실행 순서 1에 저장된다. "할머니를 찾아라"라는 계획은 실행 순서 2에 저장된다. 그 후, 실행 순서 2에 저장될 계획, 즉, 일단 인터럽트된 계획을 실행할 때, 인터럽팅 계획 버퍼(236)에 저장된 액션 2 내지 4가 실행된다.
도 16a 및 16b는 일반 계획이 새로이 생성되는 경우의 프로세스를 설명하는 도면들이다. 도 16a는 일반 계획이 새로이 생성되는 경우의 프로세스를 설명하는 도면이다. 도 16a에 도시된 바와 같이, 중간 우선 순위를 갖는 일반 계획이 새로이 생성된다고 가정한다. 또한 실행 계획 큐(232)의 실행 순서 1 내지 3에 계획들이 저장되어 있다고 가정한다.
이때, 새로이 생성된 일반 계획의 우선 순위가 순서대로 실행 순서 1 내지 3에 저장된 계획들의 우선 순위와 비교된다. 새로이 생성된 일반 계획의 우선 순위는 실행 순서 3에 저장된 계획의 우선 순위보다 높고 따라서 실행 계획 3에 앞서 저장되어야 할 것이다. 따라서, 도 16b에 도시된 바와 같이, 새로이 생성된 일반 계획은 실행 순서 3에 저장된다. 그 후, 새로이 생성된 계획을 저장할 때 실행 순서 3에 이미 저장된 계획은 실행 순서 4에 저장될 것이다.
도 17a 및 17b는 실행 중인 계획을 인터럽트하면서 새로이 생성된 일반 계획을 실행하는 경우의 프로세스를 설명하는 도면들이다. 도 17a에 도시된 바와 같이, 중간 우선 순위를 갖는 일반 계획이 생성된다고 가정한다. 또한 도 17a에 도시된 바와 같이, 낮은 우선 순위를 갖는 계획이 실행 계획 큐(232)의 실행 순서 1에 저장되어 있다고 가정한다.
이런 상황에서, 새로이 생성된 일반 계획의 우선 순위는 실행 순서 1에 저장 된 계획의 우선 순위보다 높다. 따라서, 실행 순서 1에 저장된 계획은 인터럽트되고 인터럽트된 계획은 일시적으로 인터럽트된 계획 버퍼(236)에 저장된다. 그 후, 새로이 생성된 일반 계획은 실행 순서 1에 저장된다.
또한, 인터럽트된 계획은 새로이 생성된 일반 계획 다음에 실행하기 위해 실행 순서 2에 저장된다. 이처럼, 도 17b에 도시된 바와 같이, 새로이 생성된 일반 계획은 실행 순서 1에 저장된다.
도 18은 도 12에서 설명된 조건부 계획 저장 프로세스(스텝 S140)에서의 상세한 프로세스를 보여주는 흐름도이다. 조건부 계획 저장 프로세스에서, 계획 DB 제어 유닛(222)은 새로이 생성된 조건부 계획을 조건부 계획 버퍼(234)에 저장한다(스텝 S440).
다음으로, 계획 DB 제어 유닛(222)은 조건부 계획 버퍼(234)에 저장된 조건부 계획의 실행을 위한 조건이 만족되는지 여부를 결정한다. 실행을 위한 조건이 만족될 경우(스텝 S442에서 '예'), 이 조건부 계획은 실행 계획 큐(232)에서 실행을 위한 조건을 만족시키는 실행 순서의 위치에 저장된다(스텝 S444). 따라서, 조건부 계획 저장 프로세스(스텝 S140)가 완료된다.
도 19a 및 19b는 조건부 계획 버퍼(234)에 저장된 조건부 계획의 실행 조건이 만족되는 경우의 프로세스를 설명하는 도면들이다. 도 19a에 도시된 바와 같이, 실행 계획 큐(232)에 3개의 계획이 저장되어 있을 때, 3시라고 가정한다. 그때, 조건부 계획 버퍼(234)에 저장된 조건부 계획 중에서, "스낵을 가져와라"라는 조건부 계획의 실행 조건이 만족된다. 여기서, 계획 DB 제어 유닛(222)은 그 조건 부 계획을 실행 계획 큐(232)에 저장한다.
"스낵을 가져와라"라는 조건부 계획의 우선 순위가 낮기 때문에, 도 19b에 도시된 바와 같이, 그 조건부 계획은 실행 계획 큐(232)에 이미 저장된 낮은 우선 순위를 갖는 "아이들과 놀아라"라는 계획의 다음 위치, 즉, 실행 순서 4에 저장된다.
도 20a 및 20b는 실행 계획 큐(232)에 이미 저장된 계획에 앞서 조건부 계획 버퍼(234)에 저장된 조건부 계획을 실행하는 경우의 프로세스를 설명하는 도면들이다. 도 20a에 도시된 바와 같이, 실행 계획 큐(232) 내에 3개의 계획이 저장되어 있는 경우 사람이 발견되었다고 가정한다. 이런 상황에서, 조건부 계획 버퍼(234)에 저장되어 있는 조건부 계획들 중 "인사하라(greet)"라는 조건부 계획의 실행을 위한 조건이 만족된다. 여기서, 계획 DB 제어 유닛(222)은 이 조건부 계획을 실행 계획 큐(232)에 저장한다.
"인사하라"라는 조건부 계획의 우선 순위는 높고 실행 계획 큐(232)의 실행 순서 1에 저장된 계획의 우선 순위보다 높다. 따라서, 도 20b에 도시된 바와 같이, 그 조건부 계획은 실행 계획 큐(232)의 실행 순서 1에 저장된다. 그 후, 조건부 계획의 저장에 앞서 실행 순서 "n"에 저장된 계획은 각각 실행 순서 (n+1)에 저장된다.
도 21은 제1 실시예에 따른 모바일 로봇(1)의 하드웨어 구조를 보여주는 도면이다. 모바일 로봇(1)은, 그것의 하드웨어 구조로서, 모바일 로봇(1) 내의 행동 계획 프로세스를 실행하는 행동 계획 프로그램 등을 저장하는 ROM(52)과, ROM(52) 내의 프로그램에 따라서 모바일 로봇(1)의 각 유닛을 제어하는 CPU(51)와, 외계 모니터링 유닛(100)의 제어에 필요한 각종 데이터를 기록하는 RAM(53)과, 통신하기 위해 네트워크와 접속된 통신 I/F(57)와, 각 유닛을 접속하는 버스(62)를 포함한다.
모바일 로봇(1) 내의 상기 행동 계획 프로그램은 CD-ROM, 플로피(등록 상표) 디스크(FD), 및 DVD와 같은 컴퓨터 판독 가능한 기록 매체 내에 설치 가능한 포맷 또는 실행 가능한 포맷으로 기록되어 제공될 수 있다.
이때, 행동 계획 프로그램은 모바일 로봇(1) 내의 상기 기록 매체로부터 판독함으로써 메인 메모리 유닛 상에 로딩되고, 상기 소프트웨어 구조에서 설명된 각 유닛이 메인 메모리 유닛 상에 생성된다.
또한, 이 실시예의 행동 계획 프로그램은 인터넷과 같은 네트워크에 접속된 컴퓨터 내에 저장될 수도 있고 네트워크를 통하여 다운로드함으로써 제공될 수도 있다.
이 발명의 실시예들이 위에서 설명되었지만 상기 실시예들에 대한 각종 변형 및 변경이 부가될 수 있다.
도 22는 제1 변형예를 설명하는 도면이다. 모바일 로봇(1)의 행동 계획 유닛(200)에 대한 실시예들의 제1 변형예는 허가/거절(permission/denial) 정보 생성 유닛(도면들에는 도시되지 않음)을 더 포함할 수 있다. 허가/거절 정보 생성 유닛은 조건부 계획에 대하여 실행을 위한 조건에 기초하여 실행 순서를 결정하지 않기 위한 허가/거절 정보를 생성한다.
도 22에 도시된 바와 같이, 실행 순서의 결정을 허가/거절할 것을 나타내는 허가/거절 정보가 우선 순위에 더하여 더 제공된다. 여기서, 허가/거절 정보는, 조건부 계획의 실행 조건을 준수/만족할 경우, 미리 결정된 실행 순서를 결정해야 하는 정보, 즉, 실행이 필요하다는 것을 나타내는 정보를 갖는다. 또한, 조건부 계획의 실행의 조건이 만족된다 하더라도 실행 순서가 결정될 필요가 없는 정보, 즉, 실행될 필요가 없는 정보가 있다.
구체적으로, 위에서 설명한 실시예들과 유사하게, 인터럽션/중지(interruption/stop)가 허가되지 않음을 나타내는 허가/거절 정보를 갖는 조건부 계획은, 실행을 위한 조건을 만족할 경우, 적당한 실행 순서에 저장된다. 그 후, 그것은 실행 순서에 따른 순서대로 실행된다.
한편, 중지를 허가할 것을 나타내는 허가/거절 정보를 갖는 조건부 계획은, 실행 순서 1 이외에 저장된 경우, 실행 계획 큐 내에 있지 못한다. 예를 들어, 중지할 것을 허가하기 위한 허가/거절 정보는, 조건을 만족할 경우, 조건부 계획에 할당되어, 즉시 실행이 바람직하기는 하나 즉시 실행이 가능하지 않을 경우 실행하지 않는 것이 바람직함을 나타낸다.
예를 들어, 도 22에 도시된 바와 같이 "인사하라"라는 조건부 계획의 "사람이 발견되면(if a person is found)"이라는 실행 조건이 만족된다고 가정한다. 여기서, 이 실시예에서, 실행 순서 1에 저장된 "신문을 가져와라"라는 계획의 우선 순위는 높고, 따라서 "인사하라"라는 조건부 계획은 "신문을 가져와라"라는 계획 다음에, 즉 실행 순서 2에 저장된다. 그러나, 신문을 가져온 후에 인사하는 것은 너무 늦고, 따라서 그런 상황에서는 인사하지 않는 것이 적절하다.
그런 상황에서는, 중지 허가에 관한 허가/거절 정보가 "인사하라"라는 조건부 계획에 공급된다. 이처럼, "인사하라"라는 조건부 계획은 "신문을 가져와라"라는 계획 후에 실행 순서를 할당할 경우 실행 계획 큐 내에 배치되지 않는다.
따라서, 조건부 계획에 대하여 실행 계획 큐 내에 도입할 것을 중지하기 위한 허가/거절을 나타내는 허가/거절 정보를 할당함으로써, 조건부 계획은 보다 적절한 타이밍으로 실행될 수 있다.
또한, 허가/거절 정보 생성 유닛은 실행 조건에 포함된 키워드에 기초하여 허가/거절 정보를 생성한다. 예를 들어, "만일 ...시가 지나면(if it passes ...o'clock)" 및 "만일 ...이 되면(if it becomes...)"과 같은 키워드들이 검출될 경우, 중지 거절을 거부할 것을 나타내는 허가/거절 정보가 생성된다. 또한, 그 밖의 상황에서는, 중지 허가를 허용할 것을 나타내는 허가/거절 정보가 생성된다. 구체적으로, 지식 DB(400)는 키워드들을 허가/거절 정보에 대응시키는 허가/거절 정보 생성 테이블을 더 구비하고, 허가/거절 정보 생성 유닛은 허가/거절 정보 생성 테이블을 이용하여 허가/거절 정보를 생성한다.
또한, 또 다른 예로서, 지식 DB(400)는 허가/거절 정보 생성 테이블 대신에 키워드들로부터 허가/거절 정보를 생성하기 위한 알고리즘을 보유할 수 있다. 이 경우, 목표 생성 유닛(202)은 그 알고리즘에 기초하여 키워드들로부터 목표를 결정한다.
여기서, 지식 DB(400)는 허가/거절 정보 생성 정보 보유 유닛으로 불릴 수 있다. 또한, 키워드들로부터 허가/거절 정보를 생성하기 위한 알고리즘은, 바꿔 말하면, 허가/거절 정보 생성 정보이다.
도 23a 및 23b는 제2 변형예를 설명하는 도면들이다. 이 예에서, 실행 계획 큐(232)에 저장된 계획들의 우선 순위는 실행 계획 큐(232)에 저장됨과 동시에 시간이 지남에 따라서 더 높아진다.
예를 들어, 도 23a에 도시된 바와 같이, 낮은 우선 순위를 갖는 "아이들과 놀아라"라는 계획이 실행 계획 큐(232)에 저장되어 있다고 가정한다. 이때, "아이들과 놀아라" 후에 실행 계획 큐(232) 내에 저장된 계획들의 우선 순위가 중간 우선 순위 또는 그보다 높으면, "아이들과 놀아라"라는 계획은 실행될 수 없다.
이러한 문제를 해결하기 위하여, 계획 DB 제어 유닛(222)이 미리 설정된 시간을 지날 때, 값의 우선 순위는 더 높은 값으로 변경된다. 구체적으로, 각 계획에 대하여, 그 계획이 실행 계획 큐(232) 내에 도입되는 때의 시간을 나타내는 시간 정보가 도입된다. 그 후, 시간이 미리 설정된 시간을 지날 경우, 우선 순위는 더 높게 변경된다. 예를 들어, 낮은 우선 순위를 갖는 계획은 중간 우선 순위를 갖도록 변경된다. 중간 우선 순위를 갖는 계획은 높은 우선 순위를 갖도록 변경된다. 또한, 높은 우선 순위를 갖는 계획은 우선 순위에 관하여 변경되지 않는다.
이처럼, 실행 계획 큐(232) 내에 저장된 시간으로부터 시간이 지남에 따라서 우선 순위를 더 높게 변경함으로써, 낮은 우선 순위를 갖는 계획이 적절한 타이밍에서 실행될 수 있다.
예를 들어, 도 23a에 도시된 바와 같이 실행 순서 3에 저장된 낮은 우선 순 위를 갖는 계획은, 시간이 지남에 따라서, 도 23b에 도시된 바와 같이 그 우선 순위가 중간 우선 순위로 변경된다. 또한, 도 23a에 도시된 바와 같이 실행 순서 1에 저장된 중간 우선 순위를 갖는 계획은, 시간이 지남에 따라서, 도 23b에 도시된 바와 같이 그 우선 순위가 높은 우선 순위로 변경된다. 여기서, 계획 DB 제어 유닛(222)은 경과 시간 카운팅 유닛 및 우선 순위 조정 유닛에서 나누어질 수 있다.
또한, 제3 변형예로서, 이 실시예에서는 각 목표로부터 계획들을 생성한 후에, 각 계획의 실행 순서가 결정되지만, 이 대신에, 각 목표의 실행 순서가 먼저 결정될 수 있다. 이 경우, 실행 순서가 결정된 후에, 목표 시퀀스에 대응하는 계획이 실행 순서대로 배열된다.
숙련된 당업자라면 부가적인 이점들 및 변형들을 쉽게 떠올릴 수 있을 것이다. 따라서, 보다 넓은 국면에서의 본 발명은 여기에서 도시되고 기술된 특정 상세 및 대표적인 실시예들에 제한되지 않는다. 따라서, 첨부된 청구항들 및 그 균등물들에 의해 정의된 일반적인 발명 개념의 사상 또는 범주로부터 벗어나지 않고 다양한 변형이 이루어질 수 있다.
본 발명에 따르면, 조건에 적합한 계획을 생성하고 적절한 타이밍으로 그 계획을 실행하도록 액션 계획을 운영할 수 있는 행동 제어 장치를 제공할 수 있다.

Claims (21)

  1. 모바일 로봇의 외부 조건을 취득하도록 구성된 외부 조건 취득 유닛;
    상기 외부 조건에 기초하여, 성취될 목표(goal)를 생성하도록 구성된 목표 생성 유닛;
    상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표(general goal)인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션(interruption)에 의해 성취될 조건부 목표(conditional goal)인지를 나타내는 목표 부류(goal class)를 생성하도록 구성된 목표 부류 생성 유닛;
    상기 목표 생성 유닛에 의해 생성된 각 목표를 성취하기 위한 계획을 제각기 생성하도록 구성된 계획 생성 유닛; 및
    각 목표의 목표 부류에 기초하여, 목표들을 성취하기 위해 상기 계획 생성 유닛에 의해 생성된 복수의 계획의 실행 순서를 결정(determine)하도록 구성된 실행 순서 결정 유닛을 포함하며,
    상기 복수의 계획은 상기 모바일 로봇의 다수의 기능들에 대해 상기 실행 순서에 기초하여 실행되는 행동 제어 장치.
  2. 제1항에 있어서,
    상기 실행 순서 결정 유닛은, 상기 조건부 목표의 조건이 만족되는 경우, 상기 조건을 만족시킨 후의 상기 조건부 목표와 상기 일반 목표에 대한 실행 순서를 재결정하는 행동 제어 장치.
  3. 제1항에 있어서,
    상기 외부 조건으로부터 상기 목표의 생성을 위해 이용될 목표 생성 정보를 보유하도록 구성된 목표 생성 정보 보유 유닛을 더 포함하고,
    상기 목표 생성 유닛은 상기 목표를 생성하기 위해 보유된 상기 목표 생성 정보를 이용하는 행동 제어 장치.
  4. 제1항에 있어서,
    외부 음성(speech)의 음성 인식을 수행하도록 구성된 음성 인식 유닛을 더 포함하고,
    상기 외부 조건 취득 유닛은 상기 음성 인식 유닛에 의한 인식 결과를 상기 외부 조건으로서 취득하고,
    상기 목표 생성 유닛은 상기 외부 조건 취득 유닛에 의해 취득된 상기 인식 결과에 기초하여 상기 목표를 생성하는 행동 제어 장치.
  5. 제1항에 있어서,
    주변 화상(surrounding image)을 검출하도록 구성된 화상 검출 유닛을 더 포함하고,
    상기 외부 조건 취득 유닛은 상기 화상을 상기 외부 조건으로서 취득하고,
    상기 목표 생성 유닛은 상기 외부 조건 취득 유닛에 의해 취득된 상기 화상 에 기초하여 상기 목표를 생성하는 행동 제어 장치.
  6. 제1항에 있어서,
    상기 외부 조건 취득 유닛은, 네트워크를 통하여, 상기 네트워크에 접속된 다른 디바이스의 조건을 나타내는 네트워크 디바이스 조건 정보를 취득하고,
    상기 목표 생성 유닛은 상기 네트워크 디바이스 조건 정보에 기초하여 상기 목표를 생성하는 행동 제어 장치.
  7. 제1항에 있어서,
    상기 목표 부류 생성 유닛은 상기 외부 조건에 기초하여 상기 목표 부류를 생성하는 행동 제어 장치.
  8. 제7항에 있어서,
    상기 외부 조건으로부터 상기 목표 부류의 생성을 위해 이용될 목표 부류 생성 정보를 보유하도록 구성된 목표 부류 생성 정보 보유 유닛을 더 포함하고,
    상기 목표 부류 생성 유닛은 상기 목표 부류를 생성하기 위해 상기 목표 부류 생성 정보를 이용하는 행동 제어 장치.
  9. 제1항에 있어서,
    상기 실행 순서 결정 유닛은, 상기 일반 목표의 생성 순서에 기초하여, 상기 일반 목표를 위해 생성된 상기 계획의 실행 순서를 결정하는 행동 제어 장치.
  10. 제1항에 있어서,
    상기 실행 순서 결정 유닛은, 상기 조건부 목표의 실행 조건에 기초하여, 상기 조건부 목표를 위해 생성된 상기 계획의 실행 순서를 결정하는 행동 제어 장치.
  11. 제10항에 있어서,
    상기 조건부 목표의 실행 조건은 상기 외부 조건에 관한 조건인 행동 제어 장치.
  12. 제10항에 있어서,
    상기 목표 생성 유닛에 의해 생성된 상기 목표가 상기 조건부 목표인 경우 상기 외부 조건에 기초하여 상기 조건부 목표의 실행 조건을 생성하도록 구성된 실행 조건 생성 유닛을 더 포함하고,
    상기 실행 순서 결정 유닛은, 상기 실행 조건에 기초하여, 상기 조건부 목표를 위해 생성된 상기 계획의 실행 순서를 결정하는 행동 제어 장치.
  13. 제1항에 있어서,
    상기 목표 생성 유닛에 의해 생성된 상기 목표를 실행하기 위한 우선 순위(priority)를 결정하도록 구성된 우선 순위 결정 유닛을 더 포함하고,
    상기 실행 순서 결정 유닛은 상기 우선 순위의 순서대로 상기 목표를 성취하도록 상기 실행 순서를 결정하는 행동 제어 장치.
  14. 제13항에 있어서,
    상기 외부 조건에 의해 상기 우선 순위가 결정될 때 이용되는 우선 순위 결정 정보를 보유하도록 구성된 우선 순위 결정 정보 보유 유닛을 더 포함하고,
    상기 우선 순위 결정 유닛은 상기 우선 순위 결정 정보를 이용하여 상기 우선 순위를 결정하는 행동 제어 장치.
  15. 제13항에 있어서,
    상기 실행 순서 결정 유닛은, 상기 조건부 목표의 실행 조건이 만족되고 상기 조건부 목표의 우선 순위가 상기 조건부 목표에 앞서 생성된 상기 일반 목표의 우선 순위보다 높은 경우, 상기 조건부 목표를 위해 생성된 계획이 상기 조건부 목표에 앞서 생성된 상기 일반 목표를 위해 생성된 계획에 앞서 실행되도록 상기 실행 순서를 결정하는 행동 제어 장치.
  16. 제13항에 있어서,
    상기 조건부 목표를 위해 생성된 계획의 실행 순서를 결정하지 않는 것의 허가 또는 거절을 나타내는 허가/거절 정보를 생성하도록 구성된 허가/거절 정보 생성 유닛을 더 포함하고,
    상기 실행 순서 결정 유닛은, 상기 실행 조건에 기초하여, 상기 조건부 목표를 위해 생성된 계획에 대해, 실행 중인 상기 목표를 위해 생성된 계획 이후의 상기 실행 순서를 결정하고, 상기 허가/거절 정보 생성 유닛이 상기 조건부 목표를 위해 생성된 계획에 대한 상기 실행 순서를 결정하지 않는 것의 허가를 나타내는 허가/거절 정보를 생성하는 경우 상기 조건부 목표를 위해 생성된 계획을 실행하지 않는 행동 제어 장치.
  17. 제16항에 있어서,
    상기 허가/거절 정보 생성 유닛은 상기 실행 조건에 기초하여 상기 허가/거절 정보를 생성하는 행동 제어 장치.
  18. 제16항에 있어서,
    상기 실행 조건으로부터 상기 허가/거절 정보가 생성될 때 이용될 허가/거절 정보 생성 정보를 보유하도록 구성된 허가/거절 정보 생성 정보 보유 유닛을 더 포함하고,
    상기 허가/거절 정보 생성 유닛은 상기 허가/거절 정보 생성 정보에 기초하여 상기 허가/거절 정보를 생성하는 행동 제어 장치.
  19. 제13항에 있어서,
    상기 실행 순서 결정 유닛이 상기 계획에 대한 실행 순서를 결정하는 타이밍으로부터 경과된 시간을 카운트하도록 구성된 경과 시간 카운팅 유닛과,
    상기 경과 시간 카운팅 유닛이 미리 설정된 시간까지 카운트할 경우 상기 계획에 대해 결정된 우선 순위를 더 높게 변경하도록 구성된 우선 순위 조정 유닛을 더 포함하고,
    상기 실행 순서 결정 유닛은 상기 변경된 우선 순위에 기초하여 상기 계획의 실행 순서를 업데이트하는 행동 제어 장치.
  20. 모바일 로봇의 외부 조건을 취득하는 단계;
    상기 외부 조건에 기초하여, 성취될 목표를 생성하는 단계;
    상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션에 의해 성취될 조건부 목표인지를 나타내는 목표 부류를 생성하는 단계;
    각 목표를 성취하기 위한 계획을 제각기 생성하는 단계; 및
    각 목표의 목표 부류에 기초하여, 목표들을 성취하기 위한 복수의 계획의 실행 순서를 결정하는 단계를 포함하며,
    상기 복수의 계획은 상기 모바일 로봇의 다수의 기능들에 대해 상기 실행 순서에 기초하여 실행되는 행동 제어 방법.
  21. 모바일 로봇의 다수의 기능들에 대한 계획을 제어하기 위한 프로그램된 명령들을 포함하는 컴퓨터 판독 가능 매체로서,
    상기 명령들은, 컴퓨터에 의해 실행될 때, 상기 컴퓨터로 하여금,
    상기 모바일 로봇의 외부 조건을 취득하는 것;
    상기 외부 조건에 기초하여, 성취될 목표를 생성하는 것;
    상기 목표가 상기 목표의 생성 순서대로 성취될 일반 목표인지 또는 미리 설정된 실행 조건을 만족시키는 것으로서 인터럽션에 의해 성취될 조건부 목표인지를 나타내는 목표 부류를 생성하는 것;
    각 목표를 성취하기 위한 계획을 제각기 생성하는 것; 및
    각 목표의 목표 부류에 기초하여, 목표들을 성취하기 위한 복수의 계획의 실행 순서를 결정하는 것을 수행하도록 하며,
    상기 복수의 계획은 상기 모바일 로봇의 다수의 기능들에 대해 상기 실행 순서에 기초하여 실행되는 컴퓨터 판독 가능 매체.
KR1020060075065A 2005-08-10 2006-08-09 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체 KR100889898B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020060075065A KR100889898B1 (ko) 2005-08-10 2006-08-09 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JPJP-P-2005-00232628 2005-08-10
KR1020060075065A KR100889898B1 (ko) 2005-08-10 2006-08-09 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체

Publications (2)

Publication Number Publication Date
KR20070018719A KR20070018719A (ko) 2007-02-14
KR100889898B1 true KR100889898B1 (ko) 2009-03-20

Family

ID=41347207

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020060075065A KR100889898B1 (ko) 2005-08-10 2006-08-09 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체

Country Status (1)

Country Link
KR (1) KR100889898B1 (ko)

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020067699A (ko) * 2000-10-13 2002-08-23 소니 가부시끼 가이샤 로봇 장치 및 로봇 장치의 행동 제어 방법
KR20020067692A (ko) * 2000-10-05 2002-08-23 소니 가부시끼 가이샤 로봇 장치 및 그 제어 방법
KR20020067921A (ko) * 2000-10-23 2002-08-24 소니 가부시끼 가이샤 각식 로봇 및 각식 로봇의 행동 제어 방법, 및 기억 매체
KR20030052776A (ko) * 2001-12-21 2003-06-27 엘지전자 주식회사 로봇의 행동학습 강화방법
KR20040098498A (ko) * 2002-03-15 2004-11-20 소니 가부시끼 가이샤 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치
JP2005199402A (ja) * 2004-01-16 2005-07-28 Sony Corp 行動制御システム及びロボット装置の行動制御方法
KR20060072597A (ko) * 2004-12-23 2006-06-28 한국전자통신연구원 가변 우선순위 기반의 로봇 행동선택 구조 및 그 방법

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20020067692A (ko) * 2000-10-05 2002-08-23 소니 가부시끼 가이샤 로봇 장치 및 그 제어 방법
KR20020067699A (ko) * 2000-10-13 2002-08-23 소니 가부시끼 가이샤 로봇 장치 및 로봇 장치의 행동 제어 방법
KR20020067921A (ko) * 2000-10-23 2002-08-24 소니 가부시끼 가이샤 각식 로봇 및 각식 로봇의 행동 제어 방법, 및 기억 매체
KR20030052776A (ko) * 2001-12-21 2003-06-27 엘지전자 주식회사 로봇의 행동학습 강화방법
KR20040098498A (ko) * 2002-03-15 2004-11-20 소니 가부시끼 가이샤 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치
JP2005199402A (ja) * 2004-01-16 2005-07-28 Sony Corp 行動制御システム及びロボット装置の行動制御方法
KR20060072597A (ko) * 2004-12-23 2006-06-28 한국전자통신연구원 가변 우선순위 기반의 로봇 행동선택 구조 및 그 방법

Also Published As

Publication number Publication date
KR20070018719A (ko) 2007-02-14

Similar Documents

Publication Publication Date Title
US20070038332A1 (en) Apparatus, method and computer program product for controlling behavior of robot
US20230305530A1 (en) Information processing apparatus, information processing method and program
JP5617562B2 (ja) 移動ロボット
US20190343355A1 (en) Method and apparatus for executing cleaning operation
US11466886B2 (en) Artificial intelligence device and artificial intelligence system for managing indoor air condition
JP2005508761A (ja) ロボット知能のアーキテクチャ
JP2005529421A (ja) 可動ユニット及び可動ユニットを制御する方法
JP7312037B2 (ja) 咳検出装置、咳検出装置の作動方法及びプログラム
CN111527461B (zh) 信息处理装置、信息处理方法和程序
KR20210004487A (ko) 환기 상황을 자동으로 파악할 수 있는 인공 지능 장치 및 그의 동작 방법
WO2021177805A1 (ko) 음원 위치 추적 및 음원 상쇄 장치, 방법, 및 시스템
US20200371525A1 (en) Information processing apparatus, information processing method, and program
EP3831548B1 (en) Artificial intelligence mobile robot
KR20200027072A (ko) 인공지능 이동 로봇의 제어 방법
Kröse et al. Lino, the user-interface robot
KR20200128486A (ko) 사용자의 위치를 결정하는 인공 지능 장치 및 그 방법
EP3893215A1 (en) Information processing device, information processing method, and program
KR100889898B1 (ko) 로봇의 행동을 제어하기 위한 장치, 방법 및 컴퓨터 판독 가능 매체
KR20190134936A (ko) 공기 조화 장치 및 이의 제어 방법
JP2004033624A (ja) ペット型ロボットによる遠隔制御装置
KR102612827B1 (ko) 인공지능 이동 로봇의 제어 방법
JP2005202075A (ja) 対話制御システム及びその方法並びにロボット装置
KR102261198B1 (ko) 스마트 서비스 제공장치 및 그 방법
KR102635535B1 (ko) 인공 지능 장치 및 그의 동작 방법
JP2007125621A (ja) 行動計画装置、行動計画方法および行動計画プログラム

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E90F Notification of reason for final refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee