KR20080074758A - 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법 - Google Patents

소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법 Download PDF

Info

Publication number
KR20080074758A
KR20080074758A KR1020080011422A KR20080011422A KR20080074758A KR 20080074758 A KR20080074758 A KR 20080074758A KR 1020080011422 A KR1020080011422 A KR 1020080011422A KR 20080011422 A KR20080011422 A KR 20080011422A KR 20080074758 A KR20080074758 A KR 20080074758A
Authority
KR
South Korea
Prior art keywords
state
behavior
episode
software robot
cognitive
Prior art date
Application number
KR1020080011422A
Other languages
English (en)
Other versions
KR101028814B1 (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 EP08151112.3A priority Critical patent/EP1956528B1/en
Priority to US12/027,631 priority patent/US8204839B2/en
Priority to CN2008100099045A priority patent/CN101241561B/zh
Publication of KR20080074758A publication Critical patent/KR20080074758A/ko
Application granted granted Critical
Publication of KR101028814B1 publication Critical patent/KR101028814B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • G06F8/24Object-oriented
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • Manipulator (AREA)
  • Toys (AREA)

Abstract

본 발명은 소프트웨어 로봇 장치와 그 장치의 소프트웨어 로봇의 행동 발현 방법에 관한 것으로, 하나 이상의 소프트웨어 로봇을 포함할 수 있는 복수의 객체가 존재하고, 복수의 환경적 요인이 존재하는 가상공간을 제공하는 소프트웨어 로봇 장치에 있어서, 상기 가상 공간의 환경 정보를 감지하고, 상기 복수의 객체 간에 상호 작용에 따라 발생하는 다수의 외적 이벤트를 감지하여, 센서값을 생성하는 센서부와, 상기 소프트웨어 로봇에 대응하여 미리 정의된, 다수의 신체 상태, 다수의 감정 상태, 다수의 인지 상태 중에서, 상기 소프트웨어 로봇과 관련되어 발생하는 외적 이벤트와 내적 이벤트와 관련된 상태의 상태값을 변경하는 상태부와, 상기 소프트웨어 로봇이 임의의 행동 발현시 상태값이 변경되는 감정 상태 또는 인지 상태 중 하나의 상태와, 상기 임의의 행동과 관련된 객체를 포함하며, 상기 임의의 행동의 발현 횟수에 따른 학습 정도를 나타내는 다수의 에피소드를 포함하는 에피소드 메모리와, 현재 인지 상태값과 현재 감정 상태값에 따라 불안정 상태의 인지 상태 또는 감정 상태를 파악하고, 상기 파악된 인지 상태 또는 감정 상태를 정상 상태로 변경할 수 있는 에피소드를 상기 에피소드 메모리가 검출하게 하고, 상기 검출된 에피소드에 저장된 행동과 객체를 최종 행동과 최종 객체로 결정하고, 상기 최종 객체에게 상기 소프트웨어 로봇이 상기 최종 행동을 발현하게 하는 행동부를 포함한다.
Figure P1020080011422
소프트웨어 로봇, 에피소드 메모리, 블랙 보드

Description

소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의 행동 발현 방법{SOFTWARE ROBOT APPARATUS AND METHOD FOR EXPRESSING BEHAVIOR OF SOFTWARE ROBOT}
본 발명은 유전자 로봇(Genetic Robot)에 관한 것으로, 특히 유전자 로봇 중 소프트웨어 로봇 장치와 그 장치가 소프트웨어 로봇의 행동을 구현하는 방법에 관한 것이다.
일반적으로 유전자 로봇이라는 것은, 자신의 고유한 유전자 코드(genetic code)를 가지는 인공 생명체(artificial creature)나 소프트웨어 로봇(software robot : Sobot) 또는 일반적인 로봇(robot) 을 말하는 것이다. 그리고 로봇 유전자 코드라는 것은 다수의 인공 염색체(artificial chromosome)들로 구성된 하나의 로봇 지놈(robot genome)을 의미한다. 여기서 소프트웨어 로봇이라는 것은 네트워크를 통해 이동하면서 때론 독립적인 소프트웨어 에이전트로서 사용자와 상호작용을, 때론 센서 네트워크와 하드웨어 로봇을 연동하는 로봇의 지능부로서 동작할 수 있는 소프트웨어적인 인공 생명체를 말한다. 그리고 로봇이라는 것은 물리적 환경에서 통상적인 센서(sensor), 지능(intelligence), 행동(behavior)의 요소를 지닌 일 반적으로 통용되는 의미의 로봇을 의미한다. 따라서 소프트웨어 로봇이 이러한 로봇의 지능부를 대체할 경우 본 발명이 일반적인 로봇에도 똑같이 유효함은 물론이다. 로봇 지능부를 대체하는 방법은 시간과 공간을 초월한 유비쿼터스 환경에서 네트워크나 다른 저장 매개체를 통해 임의로 이루어지거나, 로봇 제작시 임베디드화되어 가능할 수 있다.
상기 소프트웨어 로봇에 정의된 다수의 인공 염색체들은 로봇 외부의 환경과 상호작용을 하면서 로봇 내부의 동기, 항상성, 감정 상태 등으로 구성된 내부 상태 변화와 그에 따른 발현 행동을 결정짓는 로봇 고유의 개성 또는 인격(robot personality)을 정의하게 된다. 여기서 인공 생명체 및 동기(motivation), 항상성(homeostasis), 감정(emotion), 행동(Behavior) 등의 정의는 하기 표 1에서 보이고 있는 바와 같다.
Figure 112008009256497-PAT00001
그리고 상기 인공 염색체라는 것은, 필수 요소 관련 유전자 정보와 내부 상태 관련 유전자 정보, 그리고 행동 결정 관련 유전자 정보로 구분할 수 있다. 여기서 필수 요소 관련 유전자 정보라는 것은 내부 상태 변화와 외부 행동 발현에 큰 영향을 미치는 필수 파라미터들을 말하는 것이고, 내부 상태 관련 유전자 정보라는 것은 로봇에게 가해지는 외부 입력에 연관되어 로봇의 내부 상태에 영향을 미치는 파라미터들을 말하는 것이다. 그리고 행동 결정 관련 유전자 정보라는 것은, 현재 결정된 내부 상태에 따라, 상기 내부 상태와 관련된 외부 행동을 결정짓는 파라미터들을 말하는 것이다.
여기서 내부 상태라는 것은 동기, 항상성, 감정등의 상태를 말하는 것이다. 즉, 로봇의 내부 상태는 하기 표 2에서 보이고 있는 바와 같이 각각의 내부 상태와, 각 외부 자극에 따른 내부 상태의 파라미터, 즉 내부 상태 관련 유전자 정보에 의해 결정되어 질 수 있다.
Figure 112008009256497-PAT00002
이는 행동 결정 관련 유전자 정보의 경우도 마찬가지이다. 다만 행동 결정 관련 유전자 정보의 경우는 상기 외부 자극 대신, 다양한 발현 가능한 행동들이 포함된다. 즉, 행동 결정 관련 유전자 정보의 경우 각각의 내부 상태에 대해 특정 행동에 대한 파라미터들, 즉 동기, 항상성, 감정과 같은 내부 상태의 파라미터 값들에 의해 각각의 행동이 발현될 수 있도록 하는 파라미터들이 포함된다.
또한 이러한 각각의 내부 상태 변화와 외부 행동 발현에 큰 영향을 미치는 필수 파라미터들로서, 휘발성 여부, 초기값, 평균값, 수렴값 및 시간에 따른 감쇄값과, 특정 시간에 의해 특별히 정해지는 특정값등이 있을 수 있다. 이러한 필수 파라미터들은 별도로 필수 요소 관련 유전자 정보로 구성될 수 있다. 따라서 이러한 필수 요소 관련 유전자 정보는, 각각의 내부 상태, 즉 동기, 항상성, 그리고 감정의 내부 상태들에 따른 휘발성 여부, 초기값, 평균값, 수렴값, 감쇄값 그리고 특정값등을 포함한다. 이처럼 로봇 지놈은, 내부 상태들과, 각 내부 상태에 대응하는 내부 상태 변화 및 외부 행동 발현에 필수적인 요소들의 파라미터들로 이루어지는 필수 요소 관련 유전자 정보, 그리고 다양한 외부 자극들과, 그 외부 자극들에 대응되는 각 내부 상태들의 파라미터들로 이루어지는 내부 상태 관련 유전자 정보, 그리고 다양한 발현 행동들과, 그 발현 행동들에 대응되는 각 내부 상태들의 파라미터들로 이루어지는 행동 결정 관련 유전자 정보들로 이루어진다. 즉, 로봇 지놈은, 하기 표 3에서 보이고 있는 바와 같이 각 내부 상태들과, 그 내부 상태에 각각 대응되는 필수적인 요소들, 외부 자극들, 그리고 발현 행동들에 대한 유전자 정보를 2차원적 매트릭스(Matrix)를 통해 표현할 수 있다.
Figure 112008009256497-PAT00003
따라서 현재 로봇 플랫폼은 현재의 내부 상태, 즉 동기, 항상성, 감정 등의 상태에 따라 특정 발현 행동을 결정하고 이에 따른 행동을 구현한다. 예를 들어 현재 로봇의 내부 상태가 배가 고픈 상태라면, 로봇은 이에 따라 무언가를 달라고 보채는 행동을 결정하고 이에 따라 행동한다. 따라서 로봇은 실제 생명체와 같게 행동하는 것으로 구현될 수 있다. 이러한 특성을 가지는 소프트웨어 로봇은 유비쿼터스 환경 내에서 시간, 공간적 제약없이 사용자에게 서비스를 제공하며, 이에 따라 네트워크 상을 자유롭게 이동하기 위해 소프트웨어 로봇은 전이 가능한 기기의 IP 주소를 가지게 된다.
상기한 바와 같이, 종래의 소프트웨어 로봇은 감정을 형성하고 행동을 위해 내부 상태, 즉, 행동을 결정하게 되는 동기와, 생존을 유지하기 위한 항상성 및 행동 선택과 감정을 표정으로 표현하는 감정을 각각 처리하여 최종적인 행동을 선택한다. 이에 따라, 일반적인 종래의 소프트웨어 로봇 장치의 구성은 외부 환경을 인식하는 인식부, 가상생명체의 감정과 같은 내부 생태를 나타내는 내부 상태부, 외부 정보와 내부 상태를 이용하여 가상생명체의 행동을 결정하는 행동 결정부, 외부 상태에 따라 가상생명체를 적응시키는 학습부, 그리고 실제로 가상생명체의 행동을 구현하는 행동 구현부로 이루어진다.
상기와 같이 구성되는 소프트웨어 로봇 장치는 일반적으로 감정 상태를 수치화하여 감정 모델을 표정을 통해 표현하였으며, 사용자의 입력에 반응하는 행동 결정시 환경에 적응하는 감정 모델만을 주로 반영하였다. 이는 소프트웨어 로봇의 신체적 상태를 고려하지 않고 정신적 상태만을 고려한 구조라고 할 수 있다. 하지만 소프트웨어 로봇이 더 생명체다운 행동을 보이려면 신체적 상태 또한 고려되어야 한다. 또한, 종래의 소프트웨어 로봇 장치는 단순한 입출력 구조였으며, 소프트웨어 로봇이 행동을 결정하고 실행했을 때 이러한 행동이 자신에게 어떠한 영향을 미치는지가 고려되지 않았다. 인간이 주어진 상황에 따른 적절하지 못한 행동을 했을 때 주어지는 안 좋은 결과로 인해 다음번에 행동 선택 시 같은 실수를 반복하지 않는 것처럼 소프트웨어 로봇도 행동에 따른 결과가 내부 상태 값을 갱신하는 데에 반영(feedback)될 필요성이 있다. 그리고 종래의 소프트웨어 로봇 장치는 하나의 소프트웨어 로봇이 다른 주위 물체, 예를 들어, 공, 주인, 인형 등과 상호작용을 하는 구조였을 뿐, 여러 가상 생명체가 서로 상호작용을 하는 경우를 고려한 구조는 아니었다. 하지만 다양한 성격을 갖는 여러 소프트웨어 로봇이 존재 할 때 하나의 소프트웨어 로봇은 다른 소프트웨어 로봇을 또 다른 객체로 인식해야할 필요성이 있다.
또한 종래의 소프트웨어 로봇은 다양한 행동을 발현하기 위해 행동을 단순하게 구분하여 이전 행동과 다음 행동간의 관계가 부자연스러웠었다. 내부 상태가 바 뀔 때마다 전혀 연관관계가 없는 행동들이 연속적으로 나오는 경우가 많았다. 이는 종래의 소프트웨어 로봇 장치가 내부 구성 모듈간 데이터의 전달을 순차적으로 처리하는 구조를 지니고 있기 때문이다. 즉, 하나의 구성 모듈이 입력을 받고 처리하여 다음 구성 모듈로 출력 데이터를 전달하는 형태로 되어있는 구조이기 때문에, 소프트웨어 로봇 장치는 중간의 구성 모듈을 테스트하기 위해서는 이전 구성 모듈을 실행시켜 출력 데이터를 얻어야 하는 과정이 필수적이므로 구성 모듈간의 독립성이 약하다.
본 발명은 실제 생명체와 가깝게 자연스러운 행동을 하고 감정을 표현하며 사용자와 상호작용이 가능한 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의 행동 발현 방법을 제공한다.
본 발명은 소프트웨어 로봇이 신체 상태를 반영하여 행동함으로서, 사용자가 보다 생명체적인 느낌을 받을 수 있는 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의 행동 발현 방법을 제공한다.
본 발명은 소프트웨어 로봇이 행동을 발현 했을 때 이에 대한 결과가 내부 상태로 피드백되도록 하여 지속적으로 사용자와 상호작용을 하면서 진화하는 보다 지능적인 구조의 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의 행동 발현 방법을 제공한다.
본 발명은 여러 가상 생명체가 존재할 경우 가상 생명체끼리의 상호작용을 고려하여 서로 하나의 객체로 인식하는 소프트웨어 로봇 장치와 그 장치에서 소프 트웨어 로봇의 행동 발현 방법을 제공한다.
본 발명은 통합자료 구조를 마련하여 구성 모듈간의 모든 데이터의 입출력을 통합자료 저장부에 저장되도록 하는 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의 행동 발현 방법을 제공한다.
그리고 본 발명은, 하나 이상의 소프트웨어 로봇을 포함할 수 있는 복수의 객체가 존재하고, 복수의 환경적 요인이 존재하는 가상공간을 제공하는 소프트웨어 로봇 장치에 있어서, 상기 가상 공간의 환경 정보를 감지하고, 상기 복수의 객체 간에 상호 작용에 따라 발생하는 다수의 외적 이벤트를 감지하여, 센서값을 생성하는 센서부와, 상기 소프트웨어 로봇에 대응하여 미리 정의된, 다수의 신체 상태, 다수의 감정 상태, 다수의 인지 상태 중에서, 상기 소프트웨어 로봇과 관련되어 발생하는 외적 이벤트와 내적 이벤트와 관련된 상태의 상태값을 변경하는 상태부와, 상기 소프트웨어 로봇이 임의의 행동 발현시 상태값이 변경되는 감정 상태 또는 인지 상태 중 하나의 상태와, 상기 임의의 행동과 관련된 객체를 포함하며, 상기 임의의 행동의 발현 횟수에 따른 학습 정도를 나타내는 다수의 에피소드를 포함하는 에피소드 메모리와, 현재 인지 상태값과 현재 감정 상태값에 따라 불안정 상태의 인지 상태 또는 감정 상태를 파악하고, 상기 파악된 인지 상태 또는 감정 상태를 정상 상태로 변경할 수 있는 에피소드를 상기 에피소드 메모리가 검출하게 하고, 상기 검출된 에피소드에 저장된 행동과 객체를 최종 행동과 최종 객체로 결정하고, 상기 최종 객체에게 상기 소프트웨어 로봇이 상기 최종 행동을 발현하게 하는 행동부를 포함한다.
본 발명에서 제안하는 소프트웨어 로봇은 실제 생명체와 가깝게 자연스러운 행동을 하고 감정을 표현하며 사용자와 상호작용이 가능하며, 신체 상태를 반영하여 행동함으로서, 사용자가 보다 생명체적인 느낌을 받을 수 있다. 그리고 본 발명의 소프트웨어 로봇이 행동을 발현 했을 때 이에 대한 결과가 내부 상태로 피드백되도록 하여 지속적으로 사용자와 상호작용을 하면서 진화하도록 함으로써, 지능적인 구조의 소프트웨어 로봇 장치를 제공할 수 있다.
또한, 본 발명은 여러 가상 생명체가 존재할 경우 가상 생명체끼리의 상호작용을 고려하여 서로 하나의 객체로 인식하는 소프트웨어 로봇 장치를 제공할 수 있다. 그리고 본 발명은 보다 자연스러운 행동 발현을 위하여 크게 유사 행동군으로 행동 집합들을 마련하고, 각 집합별로 여러 가지 유사한 행동들을 정의하여 같은 내부상태를 행동으로 표현하더라도 다양한 유사 행동들로 표현할 수 있는 소프트웨어 로봇 장치를 제공할 수 있다. 또한 본 발명은 통합자료 구조를 마련하여 구성 모듈간의 모든 데이터의 입출력을 통합자료 저장부에 저장되도록 하는 소프트웨어 로봇 장치를 제공할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명에 따른 바람직한 일실시예를 상세히 설명한다. 도면에서 동일한 구성요소들에 대해서는 비록 다른 도면에 표시되더라도 가능한 한 동일한 참조번호 및 부호로 나타내고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어서, 관련된 공지기능 혹은 구성에 대한 구체적인 설명이 본 발명의 요지를 불필요하게 흐릴 수 있다고 판단되는 경우 그 상세한 설명은 생략한다.
소프트웨어 로봇은 그 특성상 가상공간 상에 존재한다. 본 발명에 따라 소프트웨어 로봇이 존재하는 가상공간에는 한 개 이상의 소프트웨어 로봇이 존재할 수 있으며, 소프트웨어 로봇 이외에도 가상공간을 표현할 수 있는 다양한 구성품들, 예를 들어, 소품, 음식, 장난감, 의자와 같은 구성품들이 존재할 수 있다. 이러한 일예를 도16에 도시하였다.
도16은 본 발명의 일 실시예에 따라 가상 공간 상에 소프트웨어 로봇이 존재하는 화면의 예를 보이고 있다. 도16에서 보이고 있는 화면은 가상공간(300)과 사용자 메뉴 화면(310)으로 구분된다.
도16을 참조하여, 가상공간 안에는 다수의 지점(301a,301b,301c)과, 다수의 장난감(305a,305b)과, 다수의 음식(307a,307b,307c)과, 다수의 소프트웨어 로봇(303a,303b,303c) 등이 존재할 수 있다. 이에 따라 본 발명에서는 가상공간 상에 존재하는 소프트웨어 로봇과 모든 구성품들을 지칭하는 용어로서 객체(object)를 사용한다.
본 발명에 따라 소프트웨어 로봇 장치는 가상공간을 구성하여 사용자에게 제공할 수 있고, 상기 가상공간 상에 존재하는 다수의 객체를 내부 로직 또는 사용자 입력에 대응하여 제어할 수 있는 장치이다. 상기 가상공간 상에는 환경적 요인의 변화나 객체들의 이동 또는 객체 간의 상호 작용에 따라, 환경적 요인 정보 및 객체들의 위치 정보를 포함하는 환경 정보와 객체 간의 상호 작용 정보가 발생할 수 있다.
상기 환경적 요인이란 가상공간의 환경적 특징을 나타내는 요인으로, 예를 들어, 온도, 습도, 시간, 일조량, 소리, 공간적 특징 등을 포함할 수 있다. 상기 객체 위치 정보란 상기 가상공간 상에서 각 객체들의 고정된 위치 또는 이동된 현재 위치를 나타내는 정보이다. 상기 객체 간의 상호 작용은 객체 간에 직접적으로 이루어지는 상호 작용에 관한 정보로서, 일반적으로 하나의 소프트웨어 로봇이 다른 객체와 상호 작용을 하는 경우 발생하는 정보가 될 수 있다. 일예로, 소프트웨어 로봇이 음식을 먹는 경우, a라는 소프트웨어 로봇이 b라는 소프트웨어 로봇을 때리는 경우 등이 있을 수 있다.
본 발명에 따라 소프트웨어 로봇 장치는 상기 환경정보를 그대로 상기 가상공간 상에 존재하는 모든 소프트웨어 로봇에 적용시킬 수도 있고, 이벤트로서 관련 소프트웨어 로봇에게만 적용시킬 수도 있다. 소프트웨어 로봇 장치는 상기 환경적 요인과 객체 위치 정보의 경우 일반적으로 특정 함수를 통해 그대로 가상공간 상의 모든 소프트웨어 로봇으로 전달하며, 이는 소프트웨어 로봇 장치의 센서부에 의해 감지되어 소프트웨어 로봇에 적용될 수 있다. 그리고 상기 객체 간의 상호 작용 정보는 이벤트로서 각 소프트웨어 로봇에게 전달될 수 있다. 상기 이벤트는 특정 함수로 표현할 수 있다.
이벤트는 가상공간 상에서 발생한 사건을 관련 소프트웨어 로봇에게 적용 시키기 위한 것으로서, 상기 사건과 관련된 객체의 식별 정보, 즉, 사건을 행하는 주체 객체 식별 정보(who)와, 사건에 영향을 받는 대상 객체 식별 정보(whom)와, 상 기 사건과 관련된 동작 종류 정보(what), 상기 동작으로 인해 발생하는 효과 정보(parameter)를 포함한다. 이때, 상기 효과 정보는 주체 객체에게 유효한 효과를 포함한다. 그리고 상기 이벤트는 서로 다른 객체간에 이루어지는 상호 작용에 관한 것인지, 또는 하나의 객체 안에서 이루어지는 것인지에 따라 외적 이벤트와 내적 이벤트로 구분할 수 있다.
상기 외적 이벤트는 서로 다른 객체간의 상호 작용을 나타내는 이벤트로서, 주체 객체 식별 정보와 대상 객체 식별 정보가 동일하지 않는 경우이다. 예를 들어, "소프트웨어 로봇이 음식을 먹는다."라는 사건의 경우 주체 객체는 "소프트웨어 로봇"이 되고, 대상 객체는 "음식"이 되고, 동작의 종류는 "먹는다"이고, 동작으로 인해 발생하는 효과는 "배부름, 행복" 등이 될 수 있다. 만약 특정 사건과 관련된 객체가 모두 소프트웨어 로봇이라면, 각각의 소프트웨어 로봇에 대응하는 외적 이벤트가 생성될 것이다.
상기 내적 이벤트는 소프트웨어 로봇이 다른 객체와 상호작용 없이 어떤 행동의 결과로 인해 내부적으로 발생하는 영향을 처리하기 위한 것으로, 주체 객체 식별 정보와 대상 객체 식별 정보가 동일한 경우이다. 상기 내적 이벤트의 예로는, "소프트웨어 로봇이 걷는다."라는 사건을 들 수 있으며, 이때 주체 객체와 대상 객체는 "소프트웨어 로봇"이 되고, 동작의 종류는 "걷는다"가 되고, 동작으로 인해 발생하는 효과는 "피곤함"등이 될 수 있다. 소프트웨어 로봇장치는 이러한 이벤트의 발생을 센서부 또는 신체 상태부등을 통해 감지할 수 있으며, 해당 소프트웨어 로봇에 적용시킨다.
본 발명의 일 실시예에 따라 상기 환경 정보는 다음 표4, 표5, 표6과 같은 변수와 함수들을 이용하여 표현할 수 있으며, 관련 소프트웨어 로봇에 적용시킬 수 있다. 표4는 가상공간 상에 존재하는 객체와 관련된 객체 클래스의 멤버 함수를 나타낸 것이고, 표5는 가상공간 상에서 발생할 수 있는 환경 요인과 관련된 환경 요인 클래스 멤버 변수를 나타낸 것이고, 표6은 환경 요인 클래스의 주요 함수와 기능을 나타낸 것이다.
변수명 설명 비고
m_type 객체 형태를 구분하는 값 음식, 장난감, 소프트웨어 로봇
m_id 객체 구별을 위한 고유 번호
m_name 객체의 이름
m_size 객체의 크기
m_pos 객체의 위치
m_dir 객체의 방향
m_calorie 음식에 보유된 에너지 음식 타입
m_taste 음식에 보유된 맛 음식 타입
m_sound 객체의 소리 성질 척도 장난감 타입
변수명 설명
m_EventSet 가상공간에 존재하는 객체 사이에 발생하는 이벤트 집합
m_EnvironmentOutputData 소프트웨어 로봇에게 적용되는 환경 요인 정보
m_objectN 가상공간에 존재하는 객체의 수
m_object[] 객체의 배열
m_creatureN 가상 환경에 존재하는 소프트웨어 로봇의 수
m_creature[] 소프트웨어 로봇의 배열
주요함수 설명
InitEnvironment 가상공간에 존재하는 객체를 초기화 한다.
ShowEnvironment 적절한 사용자 입출력을 구현된다.
UpdateEnvironmentInformation 화면에 출력된 소프트웨어 로봇의 정보가 사용자에 의해 바뀔 경우 이를 해당 소프트웨어 로봇 관련 정보에 업데이트한다.
UpdateSensor 환경 요인 데이터를 각각의 소프트웨어 로봇에 전달한다.
UpdateEvent 외적 이벤트를 각각의 소프트웨어 로봇에 전달한다.
EventReset 외적 이벤트를 초기화한다.
CreatureActivation 소프트웨어 로봇을 실행시킨다.
AddEventFromCreature 새롭게 이벤트를 발생시킨다.
본 발명에 따라 상기한 특징을 가지는 소프트웨어 로봇 장치의 구성은 도1에 도시된 바와 같다. 상기한 바와 같이 하나의 소프트웨어 로봇 장치가 제공하는 가상공간 상에는 다수의 소프트웨어 로봇이 존재할 수 있으며, 각각의 소프트웨어 로봇에 대한 관리 및 제어는 동일하게 이루어질 수 있다. 다만, 본 발명의 이해를 돕기 위해 이하의 설명에서는 상기 가상공간 상에 하나의 소프트웨어 로봇이 존재하는 경우를 일 예로 하여, 상기 하나의 소프트웨어 로봇을 구현하고 관리 제어하기 위한 소프트웨어 로봇 장치의 각 구성 모듈의 역할과 동작 과정을 설명한다.
도1은 본 발명의 일 실시예에 따른 소프트웨어 로봇 장치의 구성을 나타낸 도면이다.
도1을 참조하여, 소프트웨어 로봇은 센서부(80), 블랙보드(90), 상태부(100), 메모리부(110), 행동부(120)를 포함하며, 상태부(100)는 신체 상태부(Physical State)(10), 인지부(Perception)(20), 감정 상태부(Emotion State)(30)를 포함하고, 행동부(120)는 행동 관리부(Behavior Manager)(40), 행동 구현부(Actuator)(50)를 포함하고, 메모리부(110)는 단기 메모리(Short-term Memory)(70), 에피소드 메모리(Episodic Memory)(60), 워킹 메모리, 일반 저장 메모리를 포함한다.
소프트웨어 로봇 장치에 포함된 상기 신체 상태부(10), 인지부(20), 감정 상태부(30), 행동 관리부(40), 센서부(80), 행동 구현부(50)는 각각 독립된 모듈로 구현될 수 있으며, 각각의 모듈들이 약속된 데이터를 주고받으면서 서로 관련성을 갖게 된다. 때문에 복잡한 관련성을 통일하지 않으면 구현 단계에서 각 관계마다 주고받을 자료형과 방법 등을 모두 정의해야하는 불편이 있다. 상기 블랙보드(90)는 이러한 불편함을 개선하기 위한 것으로 다양한 모듈들이 공유하는 구조이며, 다양한 정보 자원을 통합하는 수단으로 사용된다. 이 구조는 여러 사람이 복잡한 문제를 해결하기 위해서 서로에게 필요한 정보를 칠판에 적어서 공유하는 것과 같은 개념이다. 중앙에 칠판이라고 할 수 있는 공통의 데이터 영역이 존재하여 여러 개의 모듈로부터 제공되는 정보가 통합되는 것이다. 블랙보드(90)는 CBlackboard 클래스로 구현되었다. CBlackboard 클래스는 표 7에 나타난 다양한 자료 구조를 갖고 있으며 각각의 자료 정보는 해당 Put 함수와 Get 함수를 통해 가상 생명체를 구성하는 각각의 모듈에 제공되거나 각각의 모듈로부터 갱신된다.
Structure 설명
환경값(Environment Value)(91) 소프트웨어 로봇에게 전달되는 가상 환경 정보
외적 이벤트(External Event)(92) 가상공간에서 일어나는 사건 정보
내적 이벤트(Internal Event)(93) 소프트웨어 로봇 내부에서 일어나는 사건 정보
센서값(Sensor Value)(94) 소프트웨어 로봇에 감지된 가상공간 정보 또는 현실공간 정보
신체 상태값(Physical Value)(95) 소프트웨어 로봇의 육체적인 상태값
인지값(Percept Value)(96) 소프트웨어 로봇의 인지 상태값
감정 상태값(Emotion Value)(97) 소프트웨어 로봇의 지배 감정값
행동 객체값(Behavior+Object)(98) 발현되기 위해 선택되어진 행동과 관련 객체
센서 리스트(Sensor List)(99) 소프트웨어 로봇과 관련하여 존재하는 센서 종류 리스트
신체 상태 리스트(Physical State List)(400) 소프트웨어 로봇과 관련된 모든 신체 상태 리스트
인지 리스트(Percept List)(101) 소프트웨어 로봇과 관련된 모든 인지 리스트
감정 상태 리스트(Emotion List)(102) 소프트웨어 로봇에 관련된 모든 감정 리스트
행동 리스트(Behavior List)(103) 소프트웨어 로봇에 관련된 모든 행동 리스트
블랙보드(90)에 기록되는 신체 상태값(95), 인지 상태값(96), 감정 상태값(97)은, 현재 소프트웨어 로봇의 대표 신체 상태값, 대표 인지 상태값, 대표 감정 상태값과, 각 신체 상태 종류에 대응되는 신체 상태값, 각 인지 상태 종류에 대응되는 인지 상태값, 각 감정 상태 종류에 대응되는 감정 상태값을 모두 포함한다.
센서부(80)는 환경 정보, 즉, 블랙보드(90)의 환경값(91)과, 블랙보드(90)의 외적 이벤트(92)를 입력 정보로 사용하여, 내부의 센서 데이터를 업데이트하고, 소프트웨어 로봇에 영향을 미치는 센서 데이터를 센서값(94)으로 하여 블랙 보드(90)로 출력한다. 이러한 센서부(80)와 블랙 보드(90) 간의 관계를 도2에 도시하였다.
가상공간 상의 모든 정보는 환경 정보와 외적 이벤트 형태로 소프트웨어 로봇에 적용된다. 하지만 가상공간 상에서 현재 소프트웨어 로봇의 위치나 능력에 따라 감지될 수 없는 정보들이 있을 수 있다. 때문에 센서부(80)는 감지된 정보 중 현재 소프트웨어 로봇이 감지할 수 있는 정보만을 소프트웨어 로봇에 적용될 수 있도록하는 필터 역할을 한다. 예를 들어 소프트웨어 로봇의 시야 밖에 있는 객체의 정보는 센서값(94)에 포함되지 않으며, 외적 이벤트 중 해당 소프트웨어 로봇과 관련이 없는 이벤트 역시 처리되지 않는다.
상기 신체 상태부(10)는 블랙보드(90)의 외적 이벤트(92)와 내적 이벤트(93)를 참조하여, 소프트웨어 로봇의 육체적 상태를 변경하여 신체 상태 데이터를 갱신하고, 최종 값을 신체 상태 값(95)으로 블랙보드(90)로 출력한다. 이러한 신체 상태부(10)와 블랙 보드(90) 간의 관계를 도3에 도시하였다. 이때, 각각의 외적 이벤트(92)와 각각의 내적 이벤트(93)와 각각의 환경 정보와 관련되는 신체 상태와, 관련 신체 상태의 상태값의 변화 정도는 상기 소프트웨어 로봇의 인공 유전자 정보등에 의해 미리 정해진다. 상기 신체 상태의 예로서는 하기 표 8과 같이 섭취량, 에너지, 배설욕구, 활동력, 건강상태, 육체 성장도 등을 포함할 수 있다.
설명 영향
섭취량(Stomach) 소화가 되기 전 섭취된 음식의 양 배고픔에 영향을 준다.
에너지(Energy) 보유하고 있는 에너지 크기 소화 활동 여부에 영향을 준다.
배설욕구(Wastes) 배설해야 하는 배설물의 양 배설에 영향을 준다.
활동력(Activity) 활동력 피곤함에 영향을 준다.
건강상태(Health) 건강 상태 활동력에 영향을 준다.
육체 성장도(Growth) 육체적 성장 정도 가상 생명체 외형에 영향을 준다.
상기 인지부(20)는 소프트웨어 로봇이 가상공간의 환경 정보와 신체 상태를 인지한 결과를 관리하는 모듈로서, 블랙보드(90)의 센서값(94)을 통해 외부 환경을 인지하고, 신체 상태값(95)을 통해 소프트웨어 로봇의 내부 상태를 인지하고, 인지 데이터를 갱신하고, 그 결과로 인지 상태값(96)을 블랙 보드(90)로 출력한다. 이때, 각각의 센서값과 관련된 인지 상태와, 각각의 신체 상태와 관련된 인지 상태는 미리 정해져 있다. 이러한 인지부(20)와 블랙 보드(90) 간의 관계를 도4에 도시하였다. 예를 들어, 센서부(80)가 100 크기의 힘으로 맞았다(Hit)는 정보를 넘겨주면 "아프다", 보유 에너지가 10보다 작아지면 "배고프다"라는 인지가 이루어질 수 있다. 본 발명에서 인지 상태값(96)은 두 가지 값으로 표현된다.
Figure 112008009256497-PAT00004
Figure 112008009256497-PAT00005
는 각각 해당 인지 상태에 대한 긍정적 인지와 부정적 인지를 의미한다. 일반적인 경우 다음 수학식 1과 같은 특성을 갖는다.
Figure 112008009256497-PAT00006
예를 들어, 인지 상태가 "배고픔"인 경우, 배고픔은 긍적적 인지이고, 배부 름은 부정적 인지일 수 있으며,
Figure 112008009256497-PAT00007
는 배고픔을 나타내며
Figure 112008009256497-PAT00008
는 배부름을 나타낸다. 본 발명의 일 실시예에 따라 인지 상태의 종류는 하기 표9와 같이 구성될 수 있다.
설명
밝기(Light) 가상 환경의 밝기
소리(Sound) 가상 환경에서 발생하는 소리의 크기
맛(Taste) 먹는 음식의 맛 정도
배고픔(Hunger) 배고픔 정도
피곤함(Fatigue) 피곤한 정도
탸격(Hit) 가상 환경에서 발생하는 사건에 의해 가상생명체가 맞는 정도
쓰다듬(Pat) 가상 환경에서 발생하는 사건에 의해 가상생명체가 쓰다듬어지는 정도
인지부(20)는 동일한 자극이 연속해서 들어올 경우 감도(sensitivity)를 변화시키는 기능이 구현되어 있다. 감도는 각 자극마다 하나씩 설정이 되어 있으며, 자극을 느끼는 정도를 나타내며, 각 인지 상태를 변경시키는 정도에 영향을 미친다. 상기 감도의 크기는 각 자극마다 다르게 설정할 수 있으며, 동일 감도의 연속적인 발생 횟수에 따라 적응적으로 감도의 크기가 변화하도록 설정할 수도 있다. 자극이 연속해서 들어올 경우 자극의 감도가 점점 줄어들어 크기가 0까지 변화한다. 자극이 일정기간 들어오지 않으면 점차 원래의 감도를 회복한다. 도5는 자극과 감도간의 관계를 나타내고 있다.
도5를 참조하여, 같은 자극이 연속해서 들어올 경우 감도는 DT_DECAY의 기울기로 줄어들며 T_IGNORE 시간동안은 자극이 멈춘 후에도 감도는 복구되지 않는다. T_IGNORE시간 이상 자극이 없을 경우 DT_RECOVER의 기울기로 감도는 복구된다. 그리고 DT_RECOVER의 기울기로 감도가 복구되는 상황에서 이전과 동일한 자극이 연속하여 들어오면, 상기 연속하여 자극이 들어오는 동안 복구 중이던 감도는 다시 줄어든다.
감정 상태부(30)는 소프트웨어 로봇의 감정 상태를 관리하는 모듈로서, 블랙보드(90)의 인지 상태값(96)을 참조하여 감정 상태를 변경하여 감정 상태 데이터를 갱신하고, 그 결과를 감정 상태값(97)으로 블랙 보드(90)로 출력한다. 이때, 인지 상태값의 종류, 즉, 특정 인지 상태에 관련되는 감정 상태는 미리 정해져 있다. 인지 상태값(96)을 이용하여 각 감정 상태를 변경하는 것은 하기 수학식2와 같이 이루어질 수 있다.
Figure 112008009256497-PAT00009
Figure 112008009256497-PAT00010
는 현재 감정 수치를,
Figure 112008009256497-PAT00011
는 변화된 감정 수치를 뜻한다.
Figure 112008009256497-PAT00012
는 아무런 자극이 없을 때 감정이 수렴하는 기본 수치를 나타낸다. 이때 수렴하는 속도를 결정하는 상수가
Figure 112008009256497-PAT00013
이다.
Figure 112008009256497-PAT00014
,
Figure 112008009256497-PAT00015
는 인지 상태값(96)의 TRUE, FALSE에 대한 퍼지(fuzzy)값이며,
Figure 112008009256497-PAT00016
,
Figure 112008009256497-PAT00017
는 인지 상태값(96)을 감정 상태의 변화량으로 변환해주는 매트릭스이다.
Figure 112008009256497-PAT00018
Figure 112008009256497-PAT00019
는 각각 인지 상태값(96)과 감정 상태에 대응하는 가중치이다. 본 발명의 일 실시예에 따라 감정 상태는 행복함(Happy), 슬픔(sad), 화남(angry), 두려움(fear) 등을 포함할 수 있으며, 감정 상태부(30)는 각 감정 상태 중 가장 값이 큰 감정 상태를 지배 감정으로 결정한다.
소프트웨어 로봇 장치에 구비되는 메모리부(110)는 크게 단기 저장 메모리(Short-term Memory)와 장기 저장 메모리(Long-term Memory)와 워킹 메모리로 구분할 수 있는데, 상기 단기 메모리(70)가 단기 저장 메모리에 속하며, 상기 에피소드 메모리(60)가 장기 저장 메모리에 속한다. 워킹 메모리와 일반 저장 메모리는 미도시 하였다. 단기 메모리(70)는 최근에 발생한 정보만을 정해진 짧은 시간 동안만 저장하며, 일부는 삭제하고, 일부는 장기 저장 메모리에 이전한다. 본 발명의 실시예에서 단기 메모리(70)는 소프트웨어 로봇의 주변 환경에 대한 정보를 저장한다.
워킹 메모리는 어떤 작업을 하는 도중에 필요한 정보를 저장하는 메모리이다. 워킹 메모리는 현재 수행하는 작업과 관련된 정보를 단기 저장 메모리와 장기 저장 메모리에서 검출하여 작업이 끝날 때까지 저장하여, 작업이 효과적으로 수행되도록 하는 역할을 한다. 예를 들어 차를 운전하는 도중 50m 앞의 교통표지판에서 우회전하라는 표시를 보았다고 할 때, 운전자는 표지판의 내용을 인식하고 얼마 후에 자동차를 오른쪽으로 움직여야 한다는 결론을 내리게 된다. 이 과정은 단기 저장 메모리에 저장된 표지판 인식 과정에 해당된다. 그리고 실제 현재의 속도를 바탕으로 몇 초 후에 우회전을 하면 되는지 그리고 우회전 하는 과정에서 자동차의 기어와 핸들, 브레이크는 어떻게 조작해야 하는지에 관한 정보는 과거 운전 학습 과정에서 이미 알고 있는 정보이므로 장기 저장 메모리의 정보에 해당된다. 그런데 실제 상황에서 단기 저장 메모리와 장기 저장 메모리 각각에서 필요한 정보를 검출 하여 문제 상황에 즉시 대처하기에는 어려움이 있다. 따라서 현재 수행하는 작업과 관련된 정보를 미리 준비하고 있다가 작업 수행과정에서 필요한 정보를 즉시 사용하여 문제 상황에 대처할 수 있도록 한 것이 워킹 메모리이다.
저장 메모리는 본 발명에 따라 소프트웨어 로봇 장치가 동작하는데 필요한 프로그램 데이터 및 미리 정해지는 다양한 설정값들을 저장한다. 상기 저장 메모리(미도시 함.)는 불안정 상태 범위와, 소프트웨어 로봇에 설정된 다수의 인공 염색체 정보를 저장한다. 그리고 소프트웨어 로봇에 정의된 각종 신체 상태, 인지 상태, 감정 상태, 행동의 종류를 저장하며, 각각의 행동 종류에 대응하여 관련되는 인지 상태 또는 신체 상태 또는 감정 상태의 관계 정보를 저장하며, 임의의 행동 종류와 관련된 각 감정 상태 또는 각 신체 상태의 변화량을 저장한다. 이러한 정보들은 인공 염색체 정보에 포함될 수 있다. 그리고 저장 메모리는 소프트웨어 로봇 장치의 동작에 필요한 프로그램 데이터를 저장하고, 가상 공간을 구현하는데 필요한 다수의 객체에 관한 정보를 저장하고, 이벤트와 관련된 정보와, 이벤트 발생 조건을 저장한다. 또한 저장 메모리는 소프트웨어 로봇 장치가 사용하는 여러 함수 및 변수들을 저장한다.
에피소드 메모리(60)는 소프트웨어 로봇의 행동과 인지, 소프트웨어 로봇의 행동과 감정 상태의 관계 학습을 담당하는 모듈로서, 도7에 도시된 바와 같이, 인지 상태값(96)과 감정 상태값(97)을 참조하여, 에피소드와 행동 객체(98)를 결정한다. 도7는 본 발명의 일 실시예에 따라 에피소드 메모리(60)와 블랙 보드(90) 간의 관계를 나타낸 도면이다.
에피소드 메모리(60)는 도8에 도시된 바와 같이 구성되는 다수개의 에피소드(68)로 이루어진다. 도8은 본 발명의 일 실시예에 따라 에피소드 메모리(60)에 저장되는 에피소드(68)의 구성을 나타낸 도면이다. 에피소드(68)는 소프트웨어 로봇에 정의된 내부 상태 중 각각의 인지 상태 및 감정 상태와, 가상공간에 존재하는 객체와 행동 종류의 조합을 나타낸 정보로서, 각 조합에 대응하는 행동과 인지 상태, 감정 상태, 객체와의 관계를 나타낼 수 있다. 도3을 참조하여, 에피소드(68)는 행동(Behavior)(61)과, 객체(Object)(62)와, 변수값으로 카테고리(category)(63), 상태(state)(64), 변화량(value)(65)과, 발생횟수(frequency)(66)를 포함하며, 각 정보의 의미는 다음 표 10과 같다.
설명
행동(Behavior) 선택되어 발현된 행동의 고유 식별 정보
객체(Object)(62) 발현된 행동과 연관된 객체의 고유 식별 정보
카테고리(category) 해당 에피소드가 인지 상태와 감정 상태 중 무엇과 관련된 기억인지를 나타내는 정보이며, "인지(PERCEPT)" 혹은 "감정(EMOTION)" 값을 갖는다.
상태(state) 카테고리에 따라 인지 상태의 고유 식별 정보 혹은 감정 상태의 고유 식별 정보 값을 저장하며, 초기 값은 0이다.
변화량(value) 해당 상태의 변화량.
발생횟수(frequency) 동일한 행동, 객체, 상태 조합이 몇 번 학습되었는지를 나타내며 초기 값은 0이다.
에피소드 메모리(60)에 저장되는 에피소드(68)의 전체 개수 및 그에 따른 에피소드 메모리(60)의 최대 크기는 소프트웨어 로봇에서 정의된 인지 상태의 개수, 감정 상태의 개수, 가상공간에 존재하는 객체의 개수, 행동 종류의 개수에 따라 고정적으로 정해지며, 전체 개수의 계산은 다음 수학식3에 의해 이루어질 수 있다.
전체 에피소드 개수=(인지 상태 개수+감정 상태 개수)X행동 종류 개수X객체 개수
상기와 같은 에피소드(68)가 에피소드 메모리(60)에 저장되는 과정은 다음과 같다. 소프웨어 로봇은 외적 이벤트, 환경 정보, 내적 상태, 사용자의 유도에 따라 특정 행동을 발현할 수 있다. 이러한 특정 행동의 발현 결과로 상기 특정 행동과 관련된 감정 상태 또는 인지 상태가 변화하게 된다. 이때 상기 특정 행동과 관련된 감정 상태 또는 인지 상태의 종류가 소프트웨어 로봇의 고유의 인공 염색체 등에 따라 미리 결정되어 있으면, 각 감성 상태 또는 인지 상태에 대응하는 발생 변화량 또한 미리 결정되어 있다.
에피소드 메모리(60)는 특정 행동 발현에 따라 특정 행동의 종류를 파악하고, 특정 행동과 관련되는 객체와, 특정 행동과 관련하여 변화되는 소프트웨어 로봇의 내부 상태에 따른 카테고리, 상태 종류, 변화량 등을 파악할 수 있다. 에피소드 메모리(60)는 파악된 행동의 종류, 객체, 카테고리, 상태 종류의 조합과 동일한 조합의 에피소드를 에피소드 메모리(60)에서 검색한다. 동일한 조합의 에피소드가 없는 경우 에피소드 메모리(60)는 상기 파악된 행동의 종류, 객체, 카테고리, 상태 종류, 변화량으로 구성되는 새로운 에피소드를 추가하여 저장한다. 이때, 새로운 에피소드의 발생 횟수는 1회이며, 변화량은 하기 대표 변화량을 계산하는 수학식에 의해 계산되어 저장된다. 그리고 에피소드 메모리(60)는 동일한 조합의 에피소드가 검색되는 경우 상기 검색된 에피소드에 대응하여 저장된 변화량과 상기 발현된 행동에 대응하여 발생한 발생 변화량을 이용하여 대표 변화량을 계산하여, 상기 검색 된 에피소드의 변화량으로 저장하고, 발생횟수를 갱신하여 상기 검색된 에피소드를 갱신한다.
예를 들어, 소프트웨어 로봇이 "객체1을 먹는다"라는 행동을 하고, 객체1과 관련하여 변화하는 상태 종류가 배고픔(-10)과 행복(+5)인 경우, 에피소드 메모리(60)는 "객체1을 먹는다"라는 행동과 관련하여, 먹는다-객체1-인지-배고픔-(x)와, 먹는다-객체1-감정-행복-(x)를 포함하는 에피소드를 검색한다. 여기서 x는 변화량을 나타내는 임의의 수치이다. 에피소드 메모리(60)는 동일한 조합의 에피소드(68)가 검색되지 않으면, 먹는다-객체1-인지-배고픔-(A)-1과 먹는다-객체1-감정-행복-(A)-1로 이루어진 에피소드(68)를 추가한다. 여기서 A는 하기의 수학식 4에 의해 계산된 대표 변화량이다.
한편, 에피소드 메모리(60)는 동일한 조합의 에피소드(68)가 검색되면, 검색된 에피소드(68)에서 변화량(65)을 검출한다. 그리고 검출된 변화량(65)과 상기 특정 행동으로 인해 발생된 발생 변화량을 이용하여 대표 변화량을 계산한다. 이때, 상기 발생 변화량은 미리 정해져 있다.
에피소드 메모리(60)는 행동에 의한 학습 결과를 저장하기 때문에, 특정 행동으로 인해 발생되는 변화량을 그대로 저장하지 않고, 학습 정도를 반영한 대표 변화량을 계산하여 관련 에피소드(68)에 저장한다. 때문에, 상기 검출된 변화량(65)은 기존의 대표 변화량으로 볼 수 있으며, 대표 변화량을 계산하는 수학식은 다음 수학식 4와 같다.
대표 변화량=(1-p) X 기존 대표 변화량 + p X 발생 변화량
상기 수학식4에서 p는 발생 변화량이 대표 변화량에 영향을 미치는 정도를 나타낸 것으로, 미리 정해지며, 0<p<1의 범위를 가진다.
이와 같이 에피소드(68)가 에피소드 메모리(60)에 저장되는 과정을 도9a 내지 도9b를 참조하여 설명하면 다음과 같다.
도9a는 본 발명의 일 실시예에 따라 에피소드 메모리(60)에 저장된 6개의 에피소드를 나타낸다. 각 에피소드는 먹다-객체1-인지-배고픔-(-10)-1, 먹다-객체2-인지-배고픔-(-12)-1, 먹다-객체2-감정-슬픔-(-5)-1, 먹다-객체1-감정-행복-(10)-1, 물다-객체3-감정-두려움-(15)-1, 물다-객체4-감정-행복-(-8)-1의 조합을 가진다.
도9b는 현재 발현된 특정 행동과 관련하여 파악된 행동의 종류, 객체, 카테고리, 상태 종류, 변화량의 조합을 나타낸 것으로, 현재 발현된 행동은 "객체1을 먹는다"이고, "객체1을 먹는다"는 행동과 관련하여 변화되는 상태는 "배고픔"이며, 그 발생 변화량은 (-20)으로 가정한다. 그리고 발현 행동에 따른 발생 변화량이 대표 변화량에 영향을 미치는 정도는 0.1이라 가정한다.
이에 따라, 에피소드 메모리(60)는 도9b에 도시된 바와 같이 현재 발현 행동과 관련하여 먹다-객체1-인지-배고픔-(x)의 조합의 에피소드를 검색한다. 이때, 검출되는 에피소드는 현재 발현 행동에 대응하는 에피소드 조합과 행동의 종류, 객체, 카테고리, 상태 종류만 일치하면 된다.
도9a 중 현재 발현 행동과 관련된 에피소드는 첫 번째 에피소드이며, 이에 따라, 에피소드 메모리(60)는 기존 대표 변화량으로 (-10)을 검출한다. 그리고 에피소드 메모리(60)는 상기한 수학식3을 이용하여 다음과 같이 대표 변화량을 계산한다.
대표 변화량=(1-0.1)X(-10)+0.1X(-20)= (-11)
이에 따라, 에피소드 메모리(60)는 현재 발현 행동과 관련된 에피소드에 도5c와 같이 새로운 대표 변화량 (-11)을 저장하고, 발행 횟수를 1증가 시켜 2로 저장한다. 그에 따른 최종 에피소드는 먹다-객체1-인지-배고픔-(-11)-2로 이루어진 조합을 가진다.
이상의 에피소드 메모리(60)의 학습 방법은 작은 메모리에 다양한 관계를 기억하기 위해서 각 인지 상태와 감정 상태는 서로 영향을 주지 않는다는 가정한다. 즉, 어떤 행동이 발현되었을 때 각 인지 상태와 감정 상태의 변화를 독립적으로 기억하게 되면 적은 메모리에 많은 정보를 기억할 수 있다. 그리고 에피소드 메모리(60)는 주기적으로 수행되도록 구성할 수도 있다. 이는 에피소드 메모리(60)가 인지 상태와 감정 상태의 변화량을 기억하기 때문에, 적절한 시간 간격을 두고 실행되어야만 효과적인 학습이 이루어질 수 있기 때문이다.
단기 메모리(70)는 최근의 미리 정해진 짧은 시간 동안 발생한 정보를 저장하는 메모리로서, 소프트웨어 로봇의 위치를 중심으로 다른 객체가 존재하는 위치를 도10과 같은 구면 좌표계 상에서 r,θ,φ 등 3개의 변수를 이용하여 시간 t와 함께 SES(Sensory Ego-Sphere)(71) 값으로 저장한다. SES(71)는 일정 영역 상에서 발생하는 사건들과 관련된 시간과, 구면상의 객체의 위치 정보을 포함하고, 필요시 마다 제공해주는 역할을 한다.
단기 메모리(70)는 소프트웨어 로봇 주변에 있는 객체의 위치 정보와 정보의 불확실성을 저장하고 있다. 단기 메모리(70)는 블랙 보드(90)의 센서값(94)을 참조하여, 특정 객체, 즉 관심 객체(72)가 인식 되면 해당 객체의 위치 정보를 저장하며 이때 불확실성은 0이 된다. 시간이 지나고 상기 관심 객체(72)가 인식 되지 않으면 상기 위치 정보의 불확실성은 시간에 따라 점차 증가하게 된다. 이후 다시 관심 객체(72)를 인식하게 되면 위치 정보를 갱신하며 불확실성은 다시 0이 된다.
소프트웨어 로봇 장치는 각 소프트웨어 로봇과 관련한 각 객체의 종류에 대응하는 고유의 객체 인식거리를 인공 염색체 정보의 일부로 미리 저장하고 있다. 이에 따라, 소프트웨어 로봇 장치는 객체 인식 거리 유전자 내에 있으면서 소프트웨어 로봇에 가장 가까이 있는 객체를 관심 객체(72)로 인식한다. 행동 관리부(40)는 소프트웨어 로봇의 행동을 최종 결정하는 모듈로서, 도12에 도시된 바와 같이 블랙보드(90)의 인지 상태값(96), 감정 상태값(97)과, 단기 메모리(70)의 SES(71)와, 관심 객체(72)와, 에피소드 메모리(60)의 다수의 에피소드와 행동 객체(98)를 참조하여, 행동을 결정하게 되며, 이에 따라 블랙 보드(90)로 최종적인 행동 객체(98)를 출력한다. 행동 관리부(40)는 기본적으로 에피소드 메모리(60)를 참조하여 행동을 결정하게 되며 불가피한 경우 사용자에 의해 유도되는 가이드 행동(Guide Behavior)을 발현하도록 제어한다.
감정 상태값(97)은 행동 선택 자체에는 관여하지 않으며 행동이 선택된 후 어떻게 발현될 것인지 발현 방법에 영향을 주게 된다. 즉, 감정은 "걷기"라는 행동 이 선택된 이후 "즐겁게 걷기", "시무룩하게 걷기" 등으로 행동의 다양성을 만드는데 사용된다.
그리고 행동 관리부(40)는 인지 상태값(96), 감정 상태값(97)이 불안정한 상태를 나타내는 불안정 상태 범위에 포함되면, 그에 따라 수행해야할 행동을 에피소드 메모리(60)를 참조하여 결정한다. 각각의 인지 상태와 각각의 감정 상태는 불안정 상태가 존재한다. 상기 불안정 상태 범위는 소프트웨어 로봇의 내부 상수로서 미리 정해지며, 유전적인 값이다.
불안정 상태는 모든 종류의 인지 상태와 감정 상태에 존재할 수 있다. 다시 말하면 불안정 상태란 현재 인지 상태값(96)이 해당 인지 상태의 최소 임계값과 최대 임계값을 벗어나거나, 현재 감정 상태값(97)이 해당 감정 상태 최소 임계값과 최대 임계값을 벗어난 상태를 의미한다. 이때 각 경우의 불안정 상태 범위인 최소 임계값, 또는 최대 임계값은 각 소프트웨어 로봇에 대응하는 유전자 값으로 주어진다.
그리고 인지와 감정의 불안정 상태 범위는 각각의 종류와 유전자 값을 가지고 어떤 기준을 만드느냐에 따라 달라질 수 있다. 일반적으로 불안정 상태는 각 상태값이 최소 임계값보다 작거나 최대 임계값보다 크거나 할 경우이지만, 사용자, 소프트웨어 로봇, 상태 종류에 따라 최소 임계값과 최대 임계값 사이를 불안정 상태의 범위로 설정할 수도 있다. 그리고 현재의 인지 상태값(96) 및 감정 상태값(97)과 각 상태에 대응되는 불안정 상태 범위를 이용하여, 각 상태의 불안정한 정도를 나타내는 경고값(warning)을 도출한다. 이때, 경고값을 계산하는 방식은 불 안정 상태 범위에 따라 여러 가지 방식으로 정의될 수 있다. 예를 들어, 불안정 상태 범위가 상태값이 최소 임계값 보다 작거나, 최대 임계값 보다 큰 경우로 설정되어 있을 때, 경고값은 최소 임계값 또는 최대 임계값에서 현재의 상태값을 감산한 값으로 설정할 수 있다.
표11을 참조하여, 실시예로, 밝기(PERCEPT_LIGHT), 소리(PERCEPT_SOUND), 배고픔(PERCEPT_HUNGER), 피곤함(PERCEPT_FATIGUE), 타격(PERCEPT_HIT), 쓰다듬(PERCEPT_PAT) 등을 기본 인지(PERCEPTION) 상태라고 할 때, 배고픔과 밝기의 불안정 상태 범위와 경고값 도출 방식은 다음 표 11과 같이 예를 들 수 있다.
// PERCEPT_HUNGER if (HUNGER 인지 상태값 > HUNGER 인지 최대 임계값){ warning[PERCEPT_HUNGER] = HUNGER 인지 최대 임계값 - HUNGER 인지 상태값; } // PERCEPT_LIGHT if (LIGHT 인지 상태값 < LIGHT 인지 최소 임계값){ warning[PERCEPT_LIGHT] = LIGHT 인지 최소 임계값 - LIGHT 인지 상태값 } if (LIGHT 인지 상태값 > LIGHT 인지 최대 임계값){ warning[PERCEPT_LIGHT] = LIGHT 인지 최대 임계값 - LIGHT 인지 상태값 }
예를 들어, 배고픔 수치가 미리 정해진 기준보다 높은 경우, 주변이 미리 정해진 기준보다 밝은 경우, 슬픔 감정 수치가 높아지는 경우가 불안정 상태라고 할 수 있다.
이를 근거로 불안정 상태에 관련된 인지 상태 및 감정 상태 측면에서 생명체의 안정도를 나타내는 평가값(score)을 도입하며, 이러한 평가값은 행동 결정시 유용하게 사용된다. 즉, 행동 관리부(40)는 하나 이상의 상태가 불안정 상태가 되면 에피소드 메모리(60)에 기억된 다수의 에피소드를 검색하고, 그 중에서 현재 불안정한 상태와 관련된 평가값을 가장 높일 수 있는 에피소드의 행동과 객체의 조합을 선택하여 행동 객체(98)를 결정한다. 이를 상세히 설명하면 다음과 같다.
행동 관리부(40)는 하나 이상의 인지 상태 또는 감정 상태가 불안정 상태가 되면, 모든 인지 상태들의 경고값들을 검색한 후 가장 큰 경고값을 가지는 인지 상태를 검출한다. 이때, 불안정 상태의 인시지 상태 또는 감정 상태가 존재하지 않는 상태는 정상 상태라 한다. 불안정 상태의 판단 시점은 각 상태값이 갱신되는 시점이며, 판단의 주체는 행동 관리부(40)가 될 수도 있고, 신체 상태부(10), 인지부(0), 감정 상태부(30)가 될 수도 있다.
그리고 가장 큰 경고값은 가장 불안한 상태를 나타내는 경고값을 의미한다. 행동 관리부(40)는 가장 큰 경고값을 가지는 인지 상태와 해당 경고값을 에피소드 메모리(60)에 전달한다. 이때, 상기 가장 큰 경고값을 가지는 인지 상태를 주요 인지 상태라고 한다.
에피소드 메모리(60)는 주요 인지 상태와, 주요 인지 상태의 경고값을 수신하면, 인지 카테고리 및 주요 인지 상태를 포함하는 하나 이상의 에피소드들을 검색하는 1차 검색을 실시한다. 그리고 검색된 각 에피소드에 포함되는 객체(62)가 단기 메모리(70) 내에 존재하고 있는지 확인한다. 상기 검색된 에피소드에 포함된 객체(60)가 단기 메모리(70) 내에 존재하고 있지 않다면, 해당 에피소드는 검색 결과에서 제외한다.
본 발명의 다른 실시예에서는 상기 1차 검색의 검색 조건으로 선택적으로 경고값의 크기나 증감 방향을 설정할 수 있다. 예를 들어, 상기 주요 인지 상태의 경고값이 미리 정해진 크기 이상인 경우에 1차 검색을 수행하도록 설정할 수 있으며, 가장 최근 1차 검색시 경고값 보다 현재 경고값이 큰 경우 또는 작은 경우에만 1차 검색을 수행하도록 설정할 수 있다. 이와 같이 1차 검색된 각 에피소드는 도8과 같이 행동(61), 객체(62), 카테고리(63), 상태 종류(64), 변화량(65), 빈도(66)를 포함하고 있으며, 1차 검색된 모든 에피소드의 카테고리(63)와 상태 종류(64) 값은 동일하다.
이하, 설명의 이해를 돕기 위해 카테고리(63) 값이 인지인 에피소드를 인지 에피소드라 하고, 카테고리(63) 값이 감정인 에피소드를 감정 에피소드라 한다.
이어서 에피소드 메모리(60)는 1차 검색된 각 인지 에피소드의 행동(61)과 객체(62)를 조건으로 이들과 동일한 행동(61)과 객체(62)를 포함하는 에피소드들을, 감정 카테고리(63)를 가지는 감정 에피소드 내에서 검색하는, 2차 검색을 실행한다. 2차 검색은 1차 검색에서 검색된 각 인지 에피소드에 대응하여 실행된다.
그리고 검색된 감정 에피소드들의 변화량(65)을 합산하여 평가값(score)을 계산한다. 평가값의 계산 역시 1차 검색에서 검색된 각 인지 에피소드에 대응하여 이루어진다. 즉, 동일한 행동(61)과 객체(62)를 포함하며, 카테고리(63)가 감정인 에피소드들의 변화량(65)를 합산하여 평가값을 계산한다. 2차 검색에 의해 검색된 감정 에피소드의 감정 상태 종류가 기쁨(happy)과 같이 긍정적 감정일 경우에는 해당 감정 에피소드의 변화량(65)을 평가값(score)에 그대로 합산하고, 2차 검색에 의해 검색된 감정 에피소드의 감정 상태 종류가 슬픔(sad), 화남(anger), 공포(fear)와 같이 부정적인 감정일 경우는 해당 감정 에피소드의 변화량(65)을 평가값에서 차감한다.
이때 평가값의 초기값은 0이고, 긍정적 감정의 종류와 부정적 갑정의 종류는 미리 정해진다. 특정 행동(61)과 객체(62)에 대응하여 2차 검색된 모든 감정 에피소드의 변화량(63) 합산을 최종 평가값으로 결정한다. 최종 평가값을 결정하고 나면 2차 검색의 기준이 된 객체(62)의 종류와 블랙보드(90)내의 현재 가장 포커스 되어 있는 객체의 종류를 비교하여 동일할 경우 최종 평가값에 약간의 보상 점수를 더 합산해 준다.
이와 같은 2차 검색 및 평가값 계산 과정은 1차 검색시 검색된 모든 인지 에피소드들 각각에 대응하여 이루어지며, 이후 행동 관리부(40)는 가장 높은 평가값을 가지는 인지 에피소드의 행동(61), 객체(62)를 선택하여, 해당 행동을 구현하도록 한다.
예를 들어 모든 에피소드 메모리(60) 내의 에피소드들의 변화량(65)이 100으로 동일하고, 관심객체로 인식 되어 있는 객체가 없을 경우, 1차 검색 결과, 5번, 7번, 10번을 포함하는 3개의 인지 에피소드가 검색되었다고 가정한다. 그리고 이들 각각의 인지 에피소드를 기준으로 2차 검색하여, 5번 인지 에피소드들에 대응하여 각각 기쁨, 기쁨, 슬픔의 감정 상태를 가지는 3 개의 감정 에피소드들이 검색되고, 7번 인지 에피소드에 대응하여, 각각 슬픔, 슬픔, 기쁨, 기쁨의 감정 상태를 가지는 4 개의 감정 에피소드들이 검색되고, 10번 인지 에피소드에 대응하여 각각 기쁨, 기쁨, 기쁨, 슬픔, 기쁨의 감정 상태를 가지는 5 개의 감정 에피소드들이 검색되었다고 가정한다.
이 경우, 5번 인지 에피소드의 최종 평가값은 각각 100 + 100 ?? 100 = 100 점이 되고, 7번 인지 에피소드의 최종 평가값은 -100 + (-100) + 100 + 100 = 0 점이 되고, 10번 인지 에피소드의 최종 평가값은 100 + 100 + 100 + (-100) + 100 = 300점이 된다. 그리고 이에 따라, 에피소드 메모리(60)에서 최종 결정되는 행동(61)과 객체(62)의 조합은 10번 인지 에피소드가 되고, 10번 인지 에피소드의 행동(61)과 객체(62)가 행동 객체(98)가 된다.
그리고 결정된 행동 객체(98)를 발현함으로써, 불안정한 상태가 호전될 수 있으며, 또한 관련 에피소드에 영향을 미치게 된다. 이러한 행동 선택 방법은 모든 행동은 학습을 통해서만 발현된다는 것을 전제로 한다. 때문에 행동 선택 과정에서 학습되지 않은 경우에는 미리 정해진 디폴트 행동을 선택하게 된다.
이러한 행동 관리부(40)의 행동 결정 과정을 도13에 도시하였다.
도13을 참조하여, 행동 관리부(40)는 201단계에서 불안정한 상태의 인지 상태값 또는 감정 상태 값이 있으면 203단계로 진행한다. 203단계에서 행동 관리부(40)는 해결할 수 있는 에피소드가 있는지 검색하여, 있으면 211단계로 진행하고 없으면 207단계로 진행한다.
211단계에서 행동 관리부(40)는 에피소드 메모리(60)에서 가장 적절한 행동과 객체를 선택하고 221단계로 진행한다. 상기 203단계와 상기 211단계의 상세 과정은 상기한 1차 검색과, 2차 검색과 평가값 산출 과정에 해당한다. 221단계에서 행동 관리부(40)는 현재 소프트웨어 로봇의 대표 감정 상태에 따라 행동의 세부 표현형을 선택한다.
한편, 상기 203단계에서 현재 발생한 불안정 상태를 해결할 수 있는 에피소드가 존재하지 않으면 207단계에서 행동 관리부(40)는 사용자의 유도 행동이 있는지 확인하여 있으면 215단계로 진행하여 사용자의 유도 행동을 선택하고 상기 221단계로 진행한다. 만약, 상기 207단계에서 사용자의 유도 행동이 없으면 행동 관리부(40)는 213단계로 진행하여 디폴트 행동을 선택하고 상기 221단계로 진행한다.
다른 한편, 상기 201단계에서 행동 관리부(40)는 불안정한 상태의 인지 상태값 또는 감정 상태 값이 존재하지 않으면 205단계로 진행하여 사용자의 유도 행동이 있는지 확인한다.
205단계에서 사용자의 유도 행동이 있으면 상기 215단계로 진행하여 사용자의 유도 행동을 선택하고, 상기 221단계로 진행하고, 사용자의 유도 행동이 없으면 209단계에서 관심 객체가 있는지 확인한다.
209단계에서 행동 관리부(40)는 관심 객체가 있으면 217단계로 진행하여, 에피소드 메모리(60)에서 관심 객체와 관련된 에피소드를 검색하여 관심 객체를 사용하는 행동을 선택한다. 이때, 에피소드를 검색하는 과정은 상기 201단계에서 불안정 상태를 감지한 후 행해지는 에피소드 검색 과정과 행동 선택 과정, 즉, 1차 검색, 2차 검색, 평가값 산출 과정과 유사하다.
상세하게 설명하면, 행동 관리부(40)가 관심 객체를 감지하면, 즉, 단기 메모리(70) 내에 관심 객체가 있으면 에피소드 메모리(60)는 관심 객체를 객체(62)를 포함하는 에피소드를 검색한다. 상기 검색 후, 검색된 에피소드들을 동일한 행동(61)을 포함하는 에피소드들로 분류한다. 그리고 각 행동(61)에 대응하여 분류된 에피소드들 중에서 카테고리(63)가 감정인 에피소드들을 검색하여, 상기한 평가값 산출 방식에 따라 평가값을 계산한다. 즉, 각 행동(61)에 대응하는 최종 평가값을 산출한다. 이후 행동 관리부(40)는 가장 높은 평가값을 지닌 행동을 선택한다. 이때 가장 높은 평가값이 임의의 기준에 못 미칠 경우 관심 객체에 대해 아무런 행동을 하지 않는다.
한편, 상기 209단계에서 관심 객체가 감지되지 않으면 행동 관리부(40)는 219단계로 진행하여 에피소드 메모리에서 현재 소프트웨어 로봇의 각 인지 상태 또는 감정 상태와 관련되어 가장 낮은 평가값을 높일 수 있는 행동을 선택하고 상기 221단계로 진행한다.
221단계에서 행동 관리부(40)는 현재 소프트웨어 로봇의 대표 감정 상태에 따라 행동의 세부 표현형을 선택한다. 상기 201단계 내지 221단계는 반복 수행되며, 본 발명의 다른 실시예에서는 상기 209단계에서 관심 객체가 존재하지 않으면, 어떤 동작도 수행하지 않도록 설정될 수 있다.
상기와 같이 행동 관리부(40)에 의해 결정된 행동은 행동 구현부(50)에 의해 발현된다. 행동 구현부(50)는 도14에 도시된 바와 같이 블랙 보드(90)의 행동 객체(98)를 참조하여 해당 행동을 발현하고, 발현되는 행동의 지속 시간을 결정하며, 발현된 행동이 원인이되는 내적 이벤트(93)를 생성하여 블랙 보드(90)로 출력한다.
상기와 같이 본 발명의 소프트웨어 로봇 장치의 각 구성 모듈은 블랙 보드(90)를 이용함으로써, 독립적으로 구현될 수 있으나, 각 구성 모듈이 생성한 값으로 인한 유기적 결합 관계는 도15와 같이 나타낼 수 있다. 도15은 본 발명의 일 실시예에 따른 소프트웨어 로봇의 각 구성 모듈간의 관계를 나타낸 도면이다.
상술한 본 발명의 설명에서는 구체적인 실시 예에 관해 설명하였으나, 여러 가지 변형이 본 발명의 범위에서 벗어나지 않고 실시할 수 있다. 상술한 실시예에서는 에피소드 메모리(60)가 저장된 다수의 에피소드를 검색하여 적정 행동 객체(98)를 검출하는 것을 예로 들었으나, 행동 관리부(40)가 에피소드 메모리(60)를 검색하도록 구성할 수도 있다.
일반적으로 유전자 로봇이라는 것은, 자신의 고유한 유전자 코드(genetic code)를 가지는 인공 생명체(artificial creature)나 소프트웨어 로봇(software robot : Sobot) 또는 일반적인 로봇(robot) 을 말하는 것이다. 그리고 로봇 유전자 코드라는 것은 다수의 인공 염색체(artificial chromosome)들로 구성된 하나의 로봇 지놈(robot genome)을 의미한다. 여기서 소프트웨어 로봇이라는 것은 네트워크를 통해 이동하면서 때론 독립적인 소프트웨어 에이전트로서 사용자와 상호작용을, 때론 센서 네트워크와 하드웨어 로봇을 연동하는 로봇의 지능부로서 동작할 수 있는 소프트웨어적인 인공 생명체를 말한다.
그리고 로봇이라는 것은 물리적 환경에서 통상적인 센서(sensor), 지능(intelligence), 행동(behavior)의 요소를 지닌 일반적으로 통용되는 의미의 로봇을 의미한다. 따라서 소프트웨어 로봇이 이러한 로봇의 지능부를 대체할 경우 본 발명이 일반적인 로봇에도 똑같이 유효함은 물론이다. 로봇 지능부를 대체하는 방법은 시간과 공간을 초월한 유비쿼터스 환경에서 네트워크나 다른 저장 매개체를 통해 임의로 이루어지거나, 로봇 제작시 임베디드화되어 가능할 수 있다.
따라서 본 발명의 범위는 설명된 실시 예에 의하여 정할 것이 아니고 특허청구범위와 특허청구범위의 균등한 것에 의해 정해 져야 한다.
도1은 본 발명의 일 실시예에 따른 소프트웨어 로봇 장치의 구성을 나타낸 도면,
도2는 본 발명의 일 실시예에 따른 센서부와 블랙 보드 간의 관계를 나타낸 도면,
도3은 본 발명의 일 실시예에 따른 신체 상태부와 블랙 보드 간의 관계를 나타낸 도면,
도4는 본 발명의 일 실시예에 따른 인지부와 블랙 보드 간의 관계를 나타낸 도면,
도5는 본 발명의 일 실시예에 따른 자극과 감도간의 관계를 그래프로 나타낸 도면,
도6은 본 발명의 일 실시예에 따른 감정 상태부와 블랙 보드 간의 관계를 나타낸 도면,
도7은 본 발명의 일 실시예에 따른 에피소드 메모리와 블랙 보드 간의 관계를 나타낸 도면,
도8은 본 발명의 일 실시예에 따라 에피소드 메모리부에 저장되는 에피소드의 구성을 나타낸 도면,
도9a 내지 도9c는 본 발명의 일 실시예에 따라 에피소드가 저장되는 과정을 나타낸 도면,
도10은 본 발명의 일 실시예에 따라 가상공간을 구면좌표로 표현한 도면,
도11은 본 발명의 일 실시예에 따른 단기 메모리와 블랙 보드 간의 관계를 나타낸 도면,
도12는 본 발명의 일 실시예에 따른 행동 관리부와 블랙 보드 간의 관계를 나타낸 도면,
도13은 본 발명의 일 실시예에 따른 행동 관리부의 동작 과정을 나타낸 도면,
도14는 본 발명의 일 실시예에 따른 행동 구현부와 블랙 보드 간의 관계를 나타낸 도면,
도15은 본 발명의 일 실시예에 따른 소프트웨어 로봇의 각 구성 모듈간의 관계를 나타낸 도면,
도16은 본 발명의 일 실시예에 따른 가상공간과 사용자 메뉴 화면을 나타낸 도면.

Claims (40)

  1. 하나 이상의 소프트웨어 로봇을 포함할 수 있는 복수의 객체가 존재하고, 복수의 환경적 요인이 존재하는 가상공간을 제공하는 소프트웨어 로봇 장치에 있어서,
    상기 가상 공간의 환경 정보를 감지하고, 상기 복수의 객체 간에 상호 작용에 따라 발생하는 다수의 외적 이벤트를 감지하여, 센서값을 생성하는 센서부와,
    상기 소프트웨어 로봇에 대응하여 미리 정의된, 다수의 신체 상태, 다수의 감정 상태, 다수의 인지 상태 중에서, 상기 소프트웨어 로봇과 관련되어 발생하는 외적 이벤트와 내적 이벤트와 관련된 상태의 상태값을 변경하는 상태부와,
    상기 소프트웨어 로봇이 임의의 행동 발현시 상태값이 변경되는 감정 상태 또는 인지 상태 중 하나의 상태와, 상기 임의의 행동과 관련된 객체를 포함하며, 상기 임의의 행동의 발현 횟수에 따른 학습 정도를 나타내는 다수의 에피소드를 포함하는 에피소드 메모리와,
    현재 인지 상태값과 현재 감정 상태값에 따라 불안정 상태의 인지 상태 또는 감정 상태를 파악하고, 상기 파악된 인지 상태 또는 감정 상태를 정상 상태로 변경할 수 있는 에피소드를 상기 에피소드 메모리가 검출하게 하고, 상기 검출된 에피소드에 저장된 행동과 객체를 최종 행동과 최종 객체로 결정하고, 상기 최종 객체에게 상기 소프트웨어 로봇이 상기 최종 행동을 발현하게 하는 행동부를 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  2. 제1항에 있어서, 상기 환경 정보는 상기 복수의 환경적 요인 각각의 변화와, 상기 복수의 객체들 각각의 위치를 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  3. 제2항에 있어서,
    상기 상태부는 상기 다수의 외적 이벤트 및 상기 소프트웨어 로봇에 관련하여 발생하는 다수의 내적 이벤트 각각에 관련된 각 신체 상태의 신체 상태값을 변경하고, 상기 변경된 신체 상태와 상기 센서값에 관련된 인지 상태의 인지 상태값을 변경하고, 상기 변경된 인지 상태에 관련된 감정 상태의 감정 상태 값을 변경함을 특징으로 하는 소프트웨어 로봇 장치.
  4. 제3항에 있어서, 상기 에피소드 메모리는 각각, 상기 복수의 객체 중 하나의 객체와, 상기 소프트웨어 로봇에 대응하여 정의된 복수의 행동중 하나의 행동과, 상기 다수의 감정 상태 또는 상기 다수의 인지 상태 중 하나의 상태와, 상기 하나의 상태와 관련된 변화량을 포함하는 다수의 에피소드 중, 상기 소프트웨어 로봇이 발현한 행동과 관련된 에피소드를 검색하고, 상기 검색된 에피소드에 저장된 변화량과 상기 발현된 행동에 대응하여 발생한 상태 변화량을 이용하여 대표 변화량을 계산하고, 상기 대표 변화량을 상기 검색된 에피소드의 변화량으로 저장함을 특징으로 하는 소프트웨어 로봇 장치.
  5. 제4항에 있어서, 상기 행동부는 현재 인지 상태값과 현재 감정 상태값 중 미리 정해진 불안정 상태에 해당하는 인지 상태값 또는 감정 상태값을 가지는 인지 상태 또는 감정 상태를 상기 불안정 상태의 인지 상태 또는 감정 상태로 파악하고, 상기 행동 발현으로 인한 내적 이벤트를 생성함을 특징으로 하는 소프트웨어 로봇 장치.
  6. 제5항에 있어서, 상기 다수의 외적 이벤트와 상기 다수의 내적 이벤트 각각은 상기 가상공간 상에서 발생한 사건을 관련 소프트웨어 로봇에게 적용시키기 위한 것으로서, 상기 사건을 행하는 주체 객체 식별 정보(who)와, 상기 사건에 영향을 받는 대상 객체 식별 정보(whom)와, 상기 사건과 관련된 행동의 종류 정보(what)와, 상기 동작으로 인해 발생하며, 상기 주체 객체에게 유효한 효과 정보(parameter)를 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  7. 제6항에 있어서, 상기 외적 이벤트는 서로 다른 객체간의 상호 작용을 나타내는 이벤트이며, 상기 주체 객체 식별 정보와 상기 대상 객체 식별 정보가 상이하고, 상기 내적 이벤트는 상기 소프트웨어 로봇이 다른 객체와 상호작용 없이 행동을 수행한 결과로 인해 상기 소프트웨어 내부적으로 발생하는 변화를 처리하기 위한 이벤트이며, 상기 주체 객체 식별 정보와 상기 대상 객체 식별 정보가 동일함을 특징으로 하는 소프트웨어 로봇 장치.
  8. 제7항에 있어서, 상기 소프트웨어 로봇과 관련된 센서 리스트와 상기 다수의 신체 상태를 나타내는 신체 상태 리스트와, 상기 다수의 인지 상태를 나타내는 인지 리스트와, 상기 다수의 감정 상태를 나타내는 감정 상태 리스트와, 상기 다수의 행동 상태를 나타내는 행동 리스트와, 상기 가상 공간 상에서 발생한 상기 외적 이벤트와, 상기 소프트웨어 로봇과 관련하여 발생한 상기 내적 이벤트와, 상기 환경 정보와, 상기 센서부에서 입력되는 센서값과, 상기 상태부에서 입력되는 상기 감정 상태값과, 상기 신체 상태값과, 상기 인지 상태값과, 상기 행동부에서 입력되는 상기 행동 객체를 저장하는 블랙 보드를 더 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  9. 제8항에 있어서, 상기 상태부는
    상기 블랙보드에 새롭게 저장된 외적 이벤트 및 내적 이벤트 각각에 대응하는 신체 상태를 파악하고, 상기 파악된 신체 상태의 신체 상태값을 변경하여 상기 블랙보드로 출력하는 신체 상태부와,
    상기 블랙보드에 저장된 신체 상태값 또는 센서값이 변경되면, 상기 변경된 신체 상태값 각각에 대응하는 인지 상태를 파악하고, 상기 파악된 인지 상태의 인지 상태값을 변경하여 상기 블랙보드로 출력하는 인지부와,
    상기 블랙보드에 저장된 인지 상태값이 변경되면 상기 변경된 인지 상태값에 대응하는 감정 상태를 파악하고, 상기 파악된 감정 상태의 감정 상태값을 변경하여 상기 블랙보드로 출력하는 감정 상태부를 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  10. 제9항에 있어서, 상기 에피소드 메모리는 상기 소프트웨어 로봇이 발현한 행동의 종류와, 상기 발현한 행동과 관련된 상기 가상공간 상의 객체의 종류와, 상기 발현한 행동과 관련되어 변화하도록 미리 설정된 인지 상태 또는 감정 상태 중 적어도 하나의 상태의 종류를 파악하고, 상기 다수의 에피소드 중 상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 모두 포함하는 에피소드를 검색하고, 상기 검색된 에피소드의 상기 대표 변화량을 계산하고, 상기 대표 변화량을 상기 검색된 에피소드의 변화량으로 저장함을 특징으로 하는 소프트웨어 로봇 장치.
  11. 제10항에 있어서, 상기 에피소드 메모리는 상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 모두 포함하는 에피소드가 없으면, 상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 포함하는 에피소드를 생성하고, 상기 생성한 에피소드에 상기 대표 변화량을 계산하여 저장함을 특징으로 하는 소프트웨어 로봇 장치.
  12. 제11항에 있어서, 상기 블랙 보드의 센서값을 참조하여, 상기 가상 공간 상에서 상기 소프트웨어 로봇의 현재 위치를 기준으로 미리 정해진 거리 내에 위치하는 객체의 종류와 위치 정보를 관심 객체로 저장하는 단기 메모리부를 더 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  13. 제12항에 있어서, 상기 에피소드 메모리에 저장된 상기 다수의 에피소드의 개수는 다음 수학식3과 같음을 특징으로 하는 소프트웨어 로봇 장치.
    [수학식 3]
    다수의 에피소드 개수 = (인지 상태 개수+감정 상태 개수)X행동 종류 개수X객체 개수
    단, 인지 상태 개수 = 상기 다수의 인지 상태의 전체 개수,
    감정 상태 개수 = 상기 다수의 감정 상태의 전체 개수
    행동 종류의 개수 = 상기 다수의 행동 종류의 전체 개수
    객체 개수 = 상기 가상공간상에 존재하는 모든 객체의 개수
  14. 제13항에 있어서, 상기 다수의 에피소드 각각은 포함된 감정 상태 또는 인지 상태에 대응하는 카테고리 정보와, 포함된 행동의 발생 횟수 정보를 더 포함함을 특징으로 하는 소프트웨어 로봇 장치.
  15. 제14항에 있어서, 상기 행동부는 상기 최종 행동 객체를 결정하고, 상기 블랙보드로 출력하는 행동 관리부와, 상기 결정된 행동 객체에 대응하는 상기 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하고, 상기 내적 이벤트를 생성하고, 상기 생성한 내적 이벤트를 상기 블랙보드로 출력하는 행동 구현부를 포함함을 특 징으로 하는 소프트웨어 로봇 장치
  16. 제15항에 있어서, 상기 행동 관리부는 상기 불안정 상태의 인지 상태 및 감정 상태를 정상 상태로 변경할 수 있는 에피소드가 상기 에피소드 메모리에 존재하지 않은 상태에서, 사용자의 유도 행동이 있으면 사용자의 유도 행동에 대응하는 최종 행동 객체를 결정하고, 상기 사용자의 유도 행동이 없으면 미리 정해진 디폴트값을 최종 행동 객체로 결정함을 특징으로 하는 소프트웨어 로봇 장치.
  17. 제16항에 있어서, 상기 행동 결정부는 정상상태에서, 상기 사용자의 유도 행동이 있으면, 우선적으로 상기 사용자의 유도 행동에 대응하는 최종 행동 객체를 결정하고, 상기 단기 메모리에 상기 관심 객체가 있으면 상기 에피소드 메모리가 상기 관심 객체와 관련된 에피소드를 검색하도록 하고, 상기 검색된 에피소드에 저장된 행동과 객체를 최종 행동 객체로 결정함을 특징으로 하는 소프트웨어 로봇 장치.
  18. 제17항에 있어서, 상기 행동 관리부는 상기 정상 상태에서 상기 관심 객체와 관련된 에피소드가 상기 에피소드 메모리에 없으면, 상기 소프트웨어 로봇의 각 감정 상태와 각 인지 상태에 대응하는 평가값을 높일 수 있는 행동과 객체를 최종 행동 객체로 결정함을 특징으로 하는 소프트웨어 로봇 장치.
  19. 제18항에 있어서, 상기 행동 관리부는 상기 블랙보드에 저장된 인지 상태값 또는 감정 상태값이, 각 인지 상태 또는 각 감정 상태에 대응하여 미리 정해진 불안정 상태 범위에 포함되면, 현재 가장 큰 경고값을 가지는 인지 상태를 주요 인지 상태로 검출하고, 상기 주요 인지 상태를 상기 에피소드 메모리로 출력하고, 상기 에피소드 메모리에서 입력되는 행동과 객체를 최종 행동 객체로 결정하고,
    상기 에피소드 메모리는 상기 주요 인지 상태가 입력되면 상기 주요 인지 상태를 포함하는 하나 이상의 인지 후보 에피소드를 검색하고, 상기 인지 후보 에피소드 각각에 포함된 객체가 현재 관심 객체인 인지 후보 에피소드에 포함된 감정 상태 및 객체를 포함하는 하나 이상의 에피소드를 감정 후보 에피소드로 검색하고, 상기 감정 후보 에피소드 각각에 포함된 변화량을 이용하여 평가값을 계산하여 상기 인지 후보 에피소드 각각에 대응하는 평가값을 계산하고, 상기 평가값들 중 가장 높은 평가값에 대응하는 인지 후보 에피소드에 포함된 행동과 객체를 상기 행동 관리부로 출력함을 특징으로 하는 소프트웨어 로봇 장치.
  20. 제19항에 있어서, 상기 행동 관리부는 상기 정상 상태에서 상기 단기 메모리에 상기 관심 객체가 있으면 상기 관심 객체를 상기 에피소드 메모리로 전달하고, 상기 에피소드 메모리로부터 입력되는 행동과 상기 관심 객체를 최종 행동 객체로 결정하고,
    상기 에피소드 메모리는 상기 관심 객체가 입력되면 상기 관심 객체를 포함하는 하나 이상의 후보 에피소드를 검색하고, 상기 후보 에피소드를 동일한 행동을 포함하는 하나 이상의 에피소드 그룹으로 분류하고, 상기 각 에피소드 그룹 마다, 해당 에피소드 그룹에 포함된 에피소드중 감정 상태를 포함하는 하나 이상의 에피소드를 감정 후보 에피소드로 추출하고 상기 감정 후보 에피소드 각각에 저장된 변화량을 이용하여 평가값을 계산하고, 상기 각 에피소드 그룹에 대응하는 평가값 중 가장 높은 평가값의 에피소드 그룹에 대응하는 행동을 상기 행동 관리부로 출력함을 특징으로 하는 소프트웨어 로봇 장치.
  21. 제20항에 있어서, 상기 경고값은 상기 각 감정 상태 또는 상기 각 인지 상태의 불안한 정도를 나타내는 값임을 특징으로 하는 소프트웨어 로봇 장치.
  22. 제21항에 있어서, 상기 불안정 상태 범위는 상기 경고값의 크기를 이용해 설정함을 특징으로 하는 소프트웨어 로봇 장치.
  23. 제22항에 있어서, 상기 에피소드 메모리가 상기 대표 변화량은 다음 수학식4와 같이 계산됨을 특징으로 하는 소프트웨어 로봇 장치.
    [수학식 4]
    대표 변화량 = (1-p) X 기존 대표 변화량 + p X 발생 변화량
    단, p는 발생 변화량이 대표 변화량에 영향을 미치는 정도이며, 0<p<1의 범위 내에서 미리 지정되고, 상기 기존 대표 변화량은 관련 에피소드에 저장된 변화량임.
  24. 하나 이상의 소프트웨어 로봇을 포함할 수 있는 복수의 객체가 존재하고, 복수의 환경적 요인이 존재하는 가상공간을 제공하는 소프트웨어 로봇 장치의 상기 소프트웨어 로봇의 행동 발현 방법에 있어서,
    상기 복수의 환경적 요인 각각의 변화와, 상기 복수의 객체들 각각의 위치를 포함하는 환경 정보를 감지하고, 상기 복수의 객체 간에 상호 작용에 따라 발생하는 다수의 외적 이벤트를 감지하여, 센서값을 생성하는 과정과,
    상기 소프트웨어 로봇에 대응하여 미리 정의된 다수의 신체 상태 중, 상기 다수의 외적 이벤트 및 상기 소프트웨어 로봇에 관련하여 발생하는 다수의 내적 이벤트 각각에 관련된 각 신체 상태의 신체 상태값을 변경하는 과정과,
    상기 소프트웨어 로봇에 대응하여 미리 정의된 다수의 인지 상태 중, 상기 변경된 신체 상태와 상기 센서값에 관련된 인지 상태의 인지 상태값을 변경하는 과정과,
    상기 소프트웨어 로봇에 대응하여 미리 정의된 다수의 감정 상태 중 상기 변경된 인지 상태에 관련된 감정 상태의 감정 상태값을 변경하는 과정과,
    각각, 상기 복수의 객체 중 하나의 객체와, 상기 소프트웨어 로봇에 대응하여 정의된 복수의 행동중 하나의 행동과, 상기 다수의 감정 상태 또는 상기 다수의 인지 상태 중 하나의 상태와, 상기 하나의 상태와 관련된 변화량을 포함하는 다수의 에피소드 중, 상기 소프트웨어 로봇이 발현한 행동과 관련된 에피소드를 검색하고, 상기 검색된 에피소드에 저장된 변화량과 상기 발현된 행동에 대응하는 발생한 상태 변화량을 이용하여 대표 변화량을 계산하여, 상기 대표 변화량을 상기 검색된 에피소드의 변화량으로 저장하는 과정과,
    현재 인지값과 현재 감정 중 미리 정해진 불안정 상태에 해당하는 인지 상태값 또는 감정 상태값을 가지는 불안정 상태의 인지 상태 또는 감정 상태를 파악하고, 상기 파악된 인지 상태 또는 감정 상태를 정상 상태로 변경할 수 있는 에피소드를 상기 에피소드 메모리가 검출하도록 하고, 상기 검출된 에피소드에 저장된 행동과 객체를 최종 행동 객체로 결정하고, 상기 최종 행동 객체의 객체에게 상기 소프트웨어 로봇이 상기 최종 행동 객체의 행동을 발현하게 하 과정을 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  25. 제24항에 있어서, 상기 실제 행동 발현으로 인한 내적 이벤트를 생성하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  26. 제25항에 있어서, 상기 다수의 외적 이벤트와 상기 다수의 내적 이벤트 각각은 상기 가상공간 상에서 발생한 사건을 관련 소프트웨어 로봇에게 적용시키기 위한 것으로서, 상기 사건을 행하는 주체 객체 식별 정보(who)와, 상기 사건에 영향을 받는 대상 객체 식별 정보(whom)와, 상기 사건과 관련된 행동의 종류 정보(what)와, 상기 동작으로 인해 발생하며, 상기 주체 객체에게 유효한 효과 정보(parameter)를 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  27. 제26항에 있어서, 상기 외적 이벤트는 서로 다른 객체간의 상호 작용을 나타내는 이벤트이며, 상기 주체 객체 식별 정보와 상기 대상 객체 식별 정보가 상이하고, 상기 내적 이벤트는 상기 소프트웨어 로봇이 다른 객체와 상호작용 없이 행동을 수행한 결과로 인해 상기 소프트웨어 내부적으로 발생하는 변화를 처리하기 위한 이벤트이며, 상기 주체 객체 식별 정보와 상기 대상 객체 식별 정보가 동일함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  28. 제27항에 있어서, 상기 대표 변화량을 상기 검색된 에피소드의 변화량으로 저장하는 과정은
    상기 소프트웨어 로봇이 발현한 행동의 종류와, 상기 발현한 행동과 관련된 상기 가상공간 상의 객체의 종류와, 상기 발현한 행동과 관련되어 변화하도록 미리 설정된 인지 상태 또는 감정 상태 중 적어도 하나의 상태의 종류를 파악하는 단계와,
    상기 다수의 에피소드 중 상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 모두 포함하는 에피소드를 검색하고, 상기 검색된 에피소드의 상기 대표 변화량을 계산하고, 상기 대표 변화량을 상기 검색된 에피소드의 변화량으로 저장하는 단계와,
    상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 모두 포함하는 에피소드가 없으면, 상기 파악한 행동의 종류와, 상기 파악한 객체의 종류와, 상기 파악한 상태의 종류를 포함하는 에피소드를 생성하고, 상기 생성한 에피소드에 상기 대표 변화량을 계산하여 저장하는 단계를 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  29. 제28항에 있어서, 상기 센서값을 참조하여, 상기 가상 공간 상에서 상기 소프트웨어 로봇의 현재 위치를 기준으로 미리 정해진 거리 내에 위치하는 객체의 종류와 위치 정보를 관심 객체로 저장하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  30. 제29항에 있어서, 상기 에피소드 메모리에 저장된 상기 다수의 에피소드의 개수는 다음 수학식3과 같음을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
    [수학식 3]
    다수의 에피소드 개수 = (인지 상태 개수+감정 상태 개수)X행동 종류 개수X객체 개수
    단, 인지 상태 개수 = 상기 다수의 인지 상태의 전체 개수,
    감정 상태 개수 = 상기 다수의 감정 상태의 전체 개수
    행동 종류의 개수 = 상기 다수의 행동 종류의 전체 개수
    객체 개수 = 상기 가상공간상에 존재하는 모든 객체의 개수
  31. 제30항에 있어서, 상기 다수의 에피소드 각각은 포함하는 감정 상태 및 인지 상태에 대응하는 카테고리 정보와, 포함하는 행동의 발생 횟수 정보를 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  32. 제31항에 있어서, 상기 불안정 상태의 인지 상태 및 감정 상태를 정상 상태로 변경할 수 있는 에피소드가 상기 에피소드 메모리에 존재하지 않은 상태에서, 사용자의 유도 행동이 있으면 사용자의 유도 행동에 대응하는 최종 행동 객체를 결정하여, 상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정과,
    상기 사용자의 유도 행동이 없으면 미리 정해진 디폴트값을 최종 행동 객체로 결정하여 상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  33. 제32항에 있어서, 정상 상태에서 상기 사용자의 유도 행동이 있으면, 우선적으로 상기 사용자의 유도 행동에 대응하는 최종 행동 객체를 결정하고, 상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  34. 제33항에 있어서, 상기 정상 상태에서 상기 관심 객체가 검출되면 상기 에피소드 메모리가 상기 관심 객체와 관련된 에피소드를 검색하도록 하고, 상기 검색된 에피소드에 저장된 행동과 객체를 최종 행동 객체로 결정하고, 상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  35. 제34항에 있어서, 상기 정상 상태에서 상기 관심 객체와 관련된 에피소드가 상기 에피소드 메모리에 없으면, 상기 소프트웨어 로봇의 각 감정 상태와 각 인지 상태에 대응하는 평가값을 높일 수 있는 행동과 객체를 최종 행동 객체로 결정하고, 상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정을 더 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  36. 제35항에 있어서, 상기 인지값과 상기 감정 상태값을 참조하여 현재 인지 상태 또는 현재 감정 상태가 미리 정해진 불안정 상태의 인지 상태 또는 감정 상태로 확인되는 경우, 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정은,
    상기 인지 상태값 또는 감정 상태값이, 각 인지 상태 또는 각 감정 상태에 대응하여 미리 정해진 불안정 상태 범위에 포함되면, 현재 가장 큰 경고값을 가지는 인지 상태를 주요 인지 상태로 검출하는 단계와,
    상기 주요 인지 상태를 포함하는 하나 이상의 인지 후보 에피소드를 검색하는 단계와,
    상기 인지 후보 에피소드 각각에 포함된 객체가 현재 관심 객체인 인지 후보 에피소드에 포함된 감정 상태 및 객체를 포함하는 하나 이상의 에피소드를 감정 후 보 에피소드로 검색하는 단계와,
    상기 감정 후보 에피소드 각각에 포함된 변화량을 이용하여 평가값을 계산하여 상기 인지 후보 에피소드 각각에 대응하는 평가값을 계산하고, 상기 평가값들 중 가장 높은 평가값에 대응하는 인지 후보 에피소드에 포함된 행동과 객체를 최종 행동 객체로 결정하는 단계와,
    상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행동을 발현하는 단계를 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  37. 제36항에 있어서, 상기 정상 상태에서 상기 관심 객체가 검출되는 경우 상기 소프트웨어 로봇의 실제 행동을 발현하는 과정은,
    상기 정상 상태에서 상기 관심 객체가 검출되면, 상기 관심 객체를 포함하는 하나 이상의 후보 에피소드를 검색하는 단계와,
    상기 후보 에피소드를 동일한 행동을 포함하는 하나 이상의 에피소드 그룹으로 분류하고, 상기 각 에피소드 그룹 마다, 해당 에피소드 그룹에 포함된 에피소드중 감정 상태를 포함하는 하나 이상의 에피소드를 감정 후보 에피소드로 추출하고 상기 감정 후보 에피소드 각각에 저장된 변화량을 이용하여 평가값을 계산하는 단계와,
    상기 각 에피소드 그룹에 대응하는 평가값 중 가장 높은 평가값의 에피소드 그룹에 대응하는 행동과 상기 관심 객체를 최종 행동 객체로 결정하는 단계와,
    상기 최종 행동 객체에 해당하는 객체에게 상기 소프트웨어 로봇의 실제 행 동을 발현하는 단계를 포함함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  38. 제37항에 있어서, 상기 경고값은 상기 각 감정 상태 또는 상기 각 인지 상태의 불안한 정도를 나타내는 값임을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  39. 제38항에 있어서, 상기 불안정 상태 범위는 상기 경고값의 크기를 이용해 설정함을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
  40. 제39항에 있어서, 상기 에피소드 메모리가 상기 대표 변화량은 다음 수학식4와 같이 계산됨을 특징으로 하는 소프트웨어 로봇의 행동 발현 방법.
    [수학식 4]
    대표 변화량 = (1-p) X 기존 대표 변화량 + p X 발생 변화량
    단, p는 발생 변화량이 대표 변화량에 영향을 미치는 정도이며, 0<p<1의 범위 내에서 미리 지정되고, 상기 기존 대표 변화량은 관련 에피소드에 저장된 변화량임.
KR1020080011422A 2007-02-08 2008-02-04 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법 KR101028814B1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
EP08151112.3A EP1956528B1 (en) 2007-02-08 2008-02-06 Apparatus and method for expressing behavior of software robot
US12/027,631 US8204839B2 (en) 2007-02-08 2008-02-07 Apparatus and method for expressing behavior of software robot
CN2008100099045A CN101241561B (zh) 2007-02-08 2008-02-13 表现软件机器人的行为的设备和方法

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070013443 2007-02-08
KR20070013443 2007-02-08

Publications (2)

Publication Number Publication Date
KR20080074758A true KR20080074758A (ko) 2008-08-13
KR101028814B1 KR101028814B1 (ko) 2011-04-12

Family

ID=39883994

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020080011422A KR101028814B1 (ko) 2007-02-08 2008-02-04 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법

Country Status (2)

Country Link
KR (1) KR101028814B1 (ko)
CN (1) CN101241561B (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458112B2 (en) 2010-01-22 2013-06-04 Samsung Electronics Co., Ltd. Affective model device and method for deciding the behavior of an affective model device
KR20210042577A (ko) * 2019-10-10 2021-04-20 (주) 심네트 강화학습 기술을 적용한 피해복구 에이전트 시뮬레이션 pbc 모드 우선순위 테이블 설계

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102200787B (zh) * 2011-04-18 2013-04-17 重庆大学 机器人行为多层次集成学习方法及系统
CN104102346A (zh) * 2014-07-01 2014-10-15 华中科技大学 一种家用信息采集和用户情感识别设备及其工作方法
CN104461016B (zh) * 2014-12-23 2018-02-13 杭州云造科技有限公司 产品的机器性格表现方法及装置
CN105389735B (zh) * 2015-11-18 2021-05-18 重庆理工大学 一种基于spfa算法的多动机情感生成方法
CN106926236B (zh) * 2015-12-31 2020-06-30 深圳光启合众科技有限公司 获取机器人的状态的方法和装置
US10664741B2 (en) * 2016-01-14 2020-05-26 Samsung Electronics Co., Ltd. Selecting a behavior of a virtual agent
SG11201809397TA (en) * 2016-04-26 2018-11-29 Taechyon Robotics Corp Multiple interactive personalities robot
WO2017217192A1 (ja) * 2016-06-14 2017-12-21 Groove X株式会社 涼しさを求める自律行動型ロボット
CN107977702A (zh) * 2017-12-14 2018-05-01 深圳狗尾草智能科技有限公司 机器人思想属性构建方法、交互方法及装置
CN108508774A (zh) * 2018-04-28 2018-09-07 东莞市华睿电子科技有限公司 一种人像识别与压力感应相结合的控制方法
CN109189007A (zh) * 2018-07-16 2019-01-11 河海大学常州校区 一种面向工业机器人的能量流建模方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1247624A1 (en) * 2000-03-24 2002-10-09 Sony Corporation Method for determining action of robot and robot
JP4411503B2 (ja) * 2000-10-11 2010-02-10 ソニー株式会社 ロボット装置及びその制御方法
CN100445047C (zh) * 2001-02-21 2008-12-24 索尼公司 机器人装置和控制机器人装置操作的方法
US7813835B2 (en) * 2002-03-15 2010-10-12 Sony Corporation Robot behavior control system, behavior control method, and robot device
KR100542758B1 (ko) * 2003-12-10 2006-01-20 한국전자통신연구원 유비쿼터스 네트워크 기반의 소봇을 이용한 시스템 및소봇의 전이 및 이동 방법

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8458112B2 (en) 2010-01-22 2013-06-04 Samsung Electronics Co., Ltd. Affective model device and method for deciding the behavior of an affective model device
US8805762B2 (en) 2010-01-22 2014-08-12 Samsung Electronics Co., Ltd. Affective model device and method of deciding behavior of the affective model device
KR20210042577A (ko) * 2019-10-10 2021-04-20 (주) 심네트 강화학습 기술을 적용한 피해복구 에이전트 시뮬레이션 pbc 모드 우선순위 테이블 설계

Also Published As

Publication number Publication date
CN101241561B (zh) 2012-07-04
KR101028814B1 (ko) 2011-04-12
CN101241561A (zh) 2008-08-13

Similar Documents

Publication Publication Date Title
KR101028814B1 (ko) 소프트웨어 로봇 장치와 그 장치에서 소프트웨어 로봇의행동 발현 방법
US8204839B2 (en) Apparatus and method for expressing behavior of software robot
KR100864339B1 (ko) 로봇 장치 및 로봇 장치의 행동 제어 방법
KR101137205B1 (ko) 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치
Churamani et al. Continual learning for affective robotics: Why, what and how?
US6446056B1 (en) Interactive artificial intelligence
US6594649B2 (en) Interactive artificial intelligence
US20050197739A1 (en) Behavior controlling system and behavior controlling method for robot
US6604091B2 (en) Interactive artificial intelligence
JP2011115944A (ja) ロボット装置、ロボット装置の行動制御方法及びプログラム
US20060184273A1 (en) Robot device, Behavior control method thereof, and program
Marques et al. Architectures for functional imagination
JP2005199403A (ja) 情動認識装置及び方法、ロボット装置の情動認識方法、ロボット装置の学習方法、並びにロボット装置
JPH11143849A (ja) 行動生成装置、行動生成方法及び行動生成プログラム記録媒体
KR101399199B1 (ko) 소프트웨어 로봇의 유전자 코드 구성 방법
JP2006110707A (ja) ロボット装置
CN106660209A (zh) 智能机器人控制系统、方法及智能机器人
JP3558222B2 (ja) ロボットの行動制御システム及び行動制御方法、並びにロボット装置
JP4296736B2 (ja) ロボット装置
JP2002239952A (ja) ロボット装置、ロボット装置の行動制御方法、プログラム及び記録媒体
KR100909532B1 (ko) 소프트웨어 로봇의 행동 학습 방법 및 장치
JP2007125629A (ja) ロボット装置及びその行動制御方法
JP2002205289A (ja) ロボット装置の動作制御方法、プログラム、記録媒体及びロボット装置
EP1083489A2 (en) Interactive artificial intelligence
JP2001157980A (ja) ロボット装置及びその制御方法

Legal Events

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

Payment date: 20160330

Year of fee payment: 6

FPAY Annual fee payment

Payment date: 20170330

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20180329

Year of fee payment: 8

LAPS Lapse due to unpaid annual fee