KR20020067694A - 로봇 장치 및 로봇 장치의 동작 제어 방법 - Google Patents

로봇 장치 및 로봇 장치의 동작 제어 방법 Download PDF

Info

Publication number
KR20020067694A
KR20020067694A KR1020027007384A KR20027007384A KR20020067694A KR 20020067694 A KR20020067694 A KR 20020067694A KR 1020027007384 A KR1020027007384 A KR 1020027007384A KR 20027007384 A KR20027007384 A KR 20027007384A KR 20020067694 A KR20020067694 A KR 20020067694A
Authority
KR
South Korea
Prior art keywords
command
synchronization
data
control
robot apparatus
Prior art date
Application number
KR1020027007384A
Other languages
English (en)
Inventor
쯔요시 다까기
고따로 사베
다까유끼 사까모또
가즈후미 오야마
Original Assignee
소니 가부시끼 가이샤
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 소니 가부시끼 가이샤 filed Critical 소니 가부시끼 가이샤
Publication of KR20020067694A publication Critical patent/KR20020067694A/ko

Links

Classifications

    • BPERFORMING OPERATIONS; TRANSPORTING
    • B25HAND TOOLS; PORTABLE POWER-DRIVEN TOOLS; MANIPULATORS
    • B25JMANIPULATORS; CHAMBERS PROVIDED WITH MANIPULATION DEVICES
    • B25J13/00Controls for manipulators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/004Artificial life, i.e. computing arrangements simulating life
    • G06N3/008Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63HTOYS, e.g. TOPS, DOLLS, HOOPS OR BUILDING BLOCKS
    • A63H30/00Remote-control arrangements specially adapted for toys, e.g. for toy vehicles
    • A63H30/02Electrical arrangements
    • A63H30/04Electrical arrangements using wireless transmission
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/406Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by monitoring or safety
    • G05B19/4062Monitoring servoloop, e.g. overload of servomotor, loss of feedback or reference
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/34Director, elements to supervisory
    • G05B2219/34396Control different groups of functions, commands simultaneously, synchronized

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Robotics (AREA)
  • Biophysics (AREA)
  • Data Mining & Analysis (AREA)
  • Automation & Control Theory (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Biomedical Technology (AREA)
  • Manufacturing & Machinery (AREA)
  • Computational Linguistics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Mechanical Engineering (AREA)
  • Manipulator (AREA)

Abstract

로봇 장치는, 입력된 커맨드에 대응되는 출력 커맨드를 출력하는 커맨드 제어부(101)와, 커맨드 제어부(101)가 출력한 커맨드에 대응되는 데이터를 출력하는 각 관리부(102, 103, 104)와, 각 관리부(102, 103, 104)가 출력한 각 데이터의 송신 제어를 행하는 명령 송신부(105)와, 명령 송신부(105)가 출력한 데이터에 기초하여, 모터 등의 각 동작부(109, 110, 111)를 제어하는 각 제어부(106, 107, 108)를 포함한다. 명령 송신부(105)는, 각 관리부(102, 103, 104)로부터 출력된 각 동기용의 동작 제어 데이터에 대해서는, 동기하여 각 동작부(109, 110, 111)로 송신한다.

Description

로봇 장치 및 로봇 장치의 동작 제어 방법{ROBOT APPARATUS AND ROBOT APPARATUS MOTION CONTROL METHOD}
최근, 외관 형상을 개 등의 동물을 모방하여 형성된 로봇 장치가 제공되고 있다. 이 로봇 장치는, 예를 들면, 외부로부터의 정보나 내부의 상태(예를 들면, 감정 상태) 등에 따라, 동물과 같이 행동한다.
그런데, 상술한 바와 같은 로봇 장치는, 각 동작부를 독립적으로 동작시키는 것이 가능하게 되어 있다. 이에 따라, 예를 들면, 복수의 동작부를 동기하여 동작시키는 경우에는, 로봇 장치에서 동기된 제어가 요구된다. 예를 들면, 로봇 장치는, 각 관절을 제어하여 자세를 천이시키면서, LED 등으로 구성되어 있는 눈의 동작이나, 스피커 등에 의한 음성 출력을 동기시켜 실행할 수 있는 것이 있지만, 이러한 경우에는 각 동작부를 동기시켜 제어해야 한다.
여기서, 동작부를 동기시켜는 제어에 있어서, 그와 같은 동기된 동작을 개시하는 타이밍으로부터 동기를 취할 필요가 있으며, 또한, 동작 중에도 동기가 취해져 있어야만 한다.
이것은, 예를 들면, 제어의 동기가 어긋나게 되면, 각 동작부에 의한 동작이 조화되지 않아, 어떠한 관련성도 없이 따로따로 동작하게 되기 때문이다.
<발명의 개시>
본 발명은, 상술한 실정을 감안하여 이루어진 것으로, 복수의 동작부의 동기를 양호한 정밀도로 실행함과 함께, 효율 좋게 동기를 취할 수 있도록 하는 로봇 장치 및 로봇 장치의 동작 제어 방법을 제공하는 것을 목적으로 하고 있다.
본 발명에 따른 로봇 장치는, 상술한 과제를 해결하기 위해, 동작을 표출시키는 복수의 동작 수단과, 복수의 동작 수단의 동작을 제어하는 제어 수단을 포함한다. 그리고, 제어 수단은, 선행하는 동작 수단에 의한 동작의 완료 후에 연속하여, 후발 동작으로서 복수의 동작 수단에 의한 동기 동작을 시킬 수 있다.
이러한 구성을 구비한 로봇 장치는, 선행하는 동작의 완료 후에 지체 없이 연속하여 동기 동작을 행한다.
또한, 본 발명에 따른 로봇 장치의 동작 제어 방법은, 상술한 과제를 해결하기 위해, 선행하는 동작 수단에 의한 동작 완료 후에 연속하여, 후발 동작으로서 복수의 동작 수단에 의한 동기 동작을 시킬 수 있다.
이러한 로봇 장치의 동작 제어 방법에 의해, 로봇 장치는, 선행하는 동작의 완료 후에 지체 없이 연속하여 동기 동작을 행한다.
또한, 본 발명에 따른 로봇 장치는, 상술한 과제를 해결하기 위해, 동작을 표출시키는 복수의 동작 표출 수단과, 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치에 있어서, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드를 출력하는 커맨드 제어 수단과, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하여, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 명령 송신 제어 수단을 포함하고, 상기 커맨드 제어 수단은, 상기 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고, 상기 명령 송신 제어 수단은, 상기 ID와 상기 총수에 기초하여, 복수의 상기 동기 커맨드를 동기시켜 상기 동작 제어 수단으로 송신한다.
이러한 구성을 구비한 로봇 장치는, 선행하는 동작의 완료 후에 지체 없이 연속하여 동기 동작을 행한다.
또한, 본 발명에 따른 로봇 장치의 동작 제어 방법은, 상술한 과제를 해결하기 위해, 동작을 표출시키는 복수의 동작 표출 수단과 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치의 동작 제어 방법으로서, 커맨드 제어 수단은, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여 출력하고, 명령 송신 제어 수단은, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하고, 상기 ID와 상기 총수에 기초하여, 복수의 상기 동기 커맨드를 동기시켜 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신한다.
이러한 로봇 장치의 동작 제어 방법에 의해, 로봇 장치는, 선행하는 동작의완료 후에 지체 없이 연속하여 동기 동작을 행한다.
또한, 본 발명에 따른 로봇 장치는, 상술한 과제를 해결하기 위해, 동작을 표출시키는 복수의 동작 표출 수단과, 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치로서, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드를 출력하는 커맨드 제어 수단과, 상기 커맨드를 전송하는 복수의 버스와, 상기 버스의 각각에 설치되며, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하여, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 복수의 명령 송신 제어 수단과, 상기 복수의 명령 송신 제어 수단에 의한 액세스가 가능한 공유 메모리를 포함하고, 상기 커맨드 제어 수단은, 상기 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고, 상기 명령 송신 제어 수단은, 상기 ID와 상기 총수를 상기 공유 메모리에 저장하고, 해당 공유 메모리를 참조함으로써, 상기 버스를 통해, 복수의 상기 동기 커맨드를 동기시켜 상기 동작 제어 수단으로 송신한다.
이러한 구성을 구비한 로봇 장치는, 선행하는 동작의 완료 후에 지체 없이 연속하여 동기 동작을 행한다.
또한, 본 발명에 따른 로봇 장치의 동작 제어 방법은, 상술한 과제를 해결하기 위해, 동작을 표출시키는 복수의 동작 표출 수단과 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치의 동작 제어 방법으로서, 커맨드 제어 수단은, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고, 상기 커맨드를 전송하는 복수의 버스의 각각에 설치되는 명령 송신 제어 수단은, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하고, 상기 ID와 상기 총수를 공유 메모리에 저장하고, 해당 공유 메모리를 참조함으로써, 상기 버스를 통해, 복수의 상기 명령 송신 제어 수단에 의한 액세스가 가능한 복수의 상기 동기 커맨드를 동기시켜, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신한다.
이러한 로봇 장치의 동작 제어 방법에 의해, 로봇 장치는 선행하는 동작의 완료 후에 지체 없이 연속하여 동기 동작을 행한다.
본 발명의 또 다른 목적, 본 발명에 의해 얻어지는 구체적인 이점은, 이하에 설명되는 실시예의 설명으로부터 한층 더 분명해질 것이다.
본 발명은, 로봇 장치 및 그와 같은 로봇 장치의 동작 제어 방법에 관한 것으로, 특히, 복수의 동작 수단을 구비하는 로봇 장치 및 그와 같은 로봇 장치의 동작 제어 방법에 관한 것이다.
도 1은 본 발명의 실시 형태인 로봇 장치의 외관 구성을 도시하는 사시도.
도 2는 상술한 로봇 장치의 회로 구성을 도시하는 블록도.
도 3은 상술한 로봇 장치의 소프트웨어 구성을 도시하는 블록도.
도 4는 상술한 로봇 장치의 소프트웨어 구성에서의 미들웨어층의 구성을 도시하는 블록도.
도 5는 상술한 로봇 장치의 소프트웨어 구성에서의 어플리케이션층의 구성을 도시하는 블록도.
도 6은 상술한 어플리케이션층의 행동 모델 라이브러리의 구성을 도시하는블록도.
도 7은 로봇 장치의 행동 결정을 위한 정보로 되는 유한 확률 오토마톤을 설명하기 위해 사용한 도면.
도 8은 유한 확률 오토마톤의 각 노드에 준비된 상태 천이표를 도시하는 도면.
도 9A 및 도 9B는 초기 동작 및 동기 동작의 설명에 사용한 도면.
도 10은 실시 형태의 로봇 장치에서의 주요부의 구성을 도시하는 블록도.
도 11은 커맨드 제어부와 데이터베이스와의 관계를 도시하는 블록도.
도 12A 및 도 12B는 움직임 동기 커맨드에 대하여 발광 동기 커맨드가 지연된 경우의 설명에 사용한 도면.
도 13A 및 도 13B는 1세트의 데이터로 된 동기용의 데이터에 의해 동기 동작을 시킬 수 있는 경우의 설명에 사용한 도면.
도 14는 데이터 버스가 로크되는 경우의 설명에 사용한 도면.
도 15는 데이터 버스가 로크되는 다른 경우의 설명에 사용한 도면.
도 16은 본 발명이 적용되어 가능해지는 처리의 설명에 사용한 도면.
도 17은 실시 형태의 로봇 장치에서의 주요부의 구체적인 구성을 도시하는 블록도.
도 18은 상술한 로봇 장치에서의 주요부의 구성 부분으로 되는 명령 송신부의 구성을 도시하는 도면.
도 19는 상술한 로봇 장치에서의 주요부의 구성 부분으로 되는 메모리의 구성을 도시하는 도면.
도 20은 상술한 구성에서의 처리 순서를 도시하는 흐름도.
도 21은 본 발명이 적용되어 가능해지는 구체적인 처리의 설명에 사용한 도면.
도 22는 송신 완료 신호에 의해, 커맨드 제어부로부터의 동기 커맨드의 출력을 개시하는 경우의 설명에 사용한 도면.
도 23은 송신 완료 신호에 의해 커맨드 제어부로부터의 동기 커맨드의 출력을 개시한 경우에 있어서, 명령 송신부로부터 데이터 버스로의 데이터 송신을 행할 때의 타이밍의 설명에 사용한 도면.
도 24는 송신 가능 신호의 발행에 의해, 커맨드 제어부로부터의 동기 커맨드의 출력을 개시하는 경우의 설명에 사용한 도면.
도 25는 실시 형태의 로봇 장치에서의 주요부의 구체적인 구성으로, 명령 송신부와 각 제어부가 독립된 데이터 버스에 의해 개개에 접속되어 있는 구성을 도시하는 블록도.
도 26은 상술한 도 25에 도시한 로봇 장치에서의 주요부의 구성 부분으로 되는 명령 송신부의 구성을 도시하는 도면.
도 27은 상술한 도 25에 도시한 로봇 장치에서의 주요부의 구성 부분으로 되는 메모리의 구성을 도시하는 도면.
도 28은 상술한 도 25에 도시한 구성에서의 처리 순서를 도시하는 흐름도.
<발명을 실시하기 위한 최량의 형태>
이하, 본 발명의 실시 형태에 대하여 도면을 이용하여 자세히 설명한다. 이 실시 형태는, 주위의 환경(외적 요인)이나 내부 상태(내적 요인)에 따라 자율적으로 행동하는 자율형 로봇 장치이다.
실시 형태에서는, 우선, 로봇 장치의 구성에 대하여 설명하고, 그 후, 로봇 장치에서의 본 발명의 적용 부분에 대하여 상세히 설명한다.
(1) 본 실시 형태에 따른 로봇 장치의 구성
도 1에 도시한 바와 같이,「개」 등의 동물을 모방한 형상의 소위 페트 로봇으로 되고, 동체부 유닛(2)의 전후 좌우에 각각 다리부 유닛(3A, 3B, 3C, 3D)이 연결됨과 함께, 동체부 유닛(2)의 전단부 및 후단부에 각각 머리부 유닛(4) 및 꼬리부 유닛(5)이 연결되어 구성되어 있다.
동체부 유닛(2)에는, 도 2에 도시한 바와 같이, CPU(Central Processing Unit)(10), DRAM(Dynamic Random Access Memory)(11), 플래시 ROM(Read Only Memory)(12), PC(Personal Computer) 카드 인터페이스 회로(13) 및 신호 처리 회로(14)가 내부 버스(15)를 통해 서로 접속됨으로써 형성된 컨트롤부(16)와, 이 로봇 장치(1)의 동력원으로서의 배터리(17)가 수납되어 있다. 또한, 동체부 유닛(2)에는, 로봇 장치(1)의 방향이나 움직임의 가속도를 검출하기 위한 각속도 센서(18) 및 가속도 센서(19) 등도 수납되어 있다.
또한, 머리부 유닛(4)에는, 외부 상황을 촬상하기 위한 CCD(Charge Coupled Device) 카메라 등의 촬상 장치(20)와, 사용자로부터의 「쓰다듬다」나 「때리다」 등의 물리적인 행위에 의해 받은 압력을 검출하기 위한 터치 센서(21)와, 전방에위치하는 물체까지의 거리를 측정하기 위한 거리 센서(22)와, 외부음을 집음하기 위한 마이크로폰(23)과, 울음소리 등의 음성을 출력하기 위한 스피커(24)와, 로봇 장치(1)의 「눈」에 상당하는 LED(Light Emitting Diode)(도시 생략) 등이 각각 소정 위치에 배치되어 있다.
또한, 각 다리부 유닛(3A∼3D)의 관절 부분이나 각 다리부 유닛(3A∼3D) 및 동체부 유닛(2)의 각 연결 부분, 머리부 유닛(4) 및 동체부 유닛(2)의 연결 부분, 및 꼬리부 유닛(5)의 꼬리(5A)의 연결 부분 등에는 각각 자유도수분의 액튜에이터(251∼25n) 및 전위차계(261∼26n)가 배치되어 있다. 예를 들면, 액튜에이터(251∼25n)는 서보 모터를 구성으로서 갖고 있다. 서보 모터의 구동에 의해, 다리부 유닛(3A∼3D)이 제어되어, 목표의 자세 혹은 동작으로 천이한다.
그리고, 이들 각속도 센서(18), 가속도 센서(19), 터치 센서(21), 거리 센서(22), 마이크로폰(23), 스피커(24) 및 각 전위차계(261∼26n) 등의 각종 센서와 LED 및 각 액튜에이터(251∼25n)는, 각각 대응하는 허브(271∼27n)를 통해 컨트롤부(16)의 신호 처리 회로(14)와 접속되고, 촬상 장치(20) 및 배터리(17)는, 각각 신호 처리 회로(14)와 직접 접속되어 있다.
신호 처리 회로(14)는, 상술한 각 센서로부터 공급되는 센서 데이터나 화상 데이터 및 음성 데이터를 순차적으로 취득하고, 이들을 각각 내부 버스(15)를 통해 DRAM(11) 내의 소정 위치에 순차적으로 저장한다. 또한 신호 처리 회로(14)는, 이와 함께 배터리(17)로부터 공급되는 배터리 잔량을 표시하는 배터리 잔량 데이터를순차적으로 취득하고, 이것을 DRAM(11) 내의 소정 위치에 저장한다.
이와 같이 하여 DRAM(11)에 저장된 각 센서 데이터, 화상 데이터, 음성 데이터 및 배터리 잔량 데이터는, 이 후 CPU(10)가 이 로봇 장치(1)의 동작 제어를 행할 때에 이용된다.
실제로 CPU(10)는 로봇 장치(1)의 전원이 투입된 초기 시, 동체부 유닛(2)의 도시하지 않은 PC 카드 슬롯에 장전된 메모리 카드(28) 또는 플래시 ROM(12)에 저장된 제어 프로그램을 PC 카드 인터페이스 회로(13)를 통해 또는 직접 판독하여, 이것을 DRAM(11)에 저장한다.
또한, CPU(10)는, 이 후 상술한 바와 같이 신호 처리 회로(14)로부터 DRAM(11)에 순차적으로 저장되는 각 센서 데이터, 화상 데이터, 음성 데이터 및 배터리 잔량 데이터에 기초하여 자신 및 주위 상황이나, 사용자로부터의 지시 및 행위 유무 등을 판단한다.
또한, CPU(10)는, 이 판단 결과 및 DRAM(11)에 저장된 제어 프로그램에 기초하여 후속하는 행동을 결정함과 함께, 해당 결정 결과에 기초하여 필요한 액튜에이터(251∼25n)를 구동시킴으로써, 머리부 유닛(4)을 상하 좌우로 흔들거나, 꼬리부 유닛(5)의 꼬리(5A)를 움직이거나, 각 다리부 유닛(3A∼3D)을 구동시켜 보행시키는 등의 행동을 행하게 한다.
또한, 이 때 CPU(10)는, 필요에 따라 음성 데이터를 생성하고, 이것을 신호 처리 회로(14)를 통해 음성 신호로서 스피커(24)에 공급함으로써 해당 음성 신호에기초한 음성을 외부로 출력시키거나, 상술한 LED를 점등, 소등 또는 점멸시킨다.
이와 같이 하여 로봇 장치(1)에서는, 자신 및 주위 상황이나, 사용자로부터의 지시 및 행위에 따라 자율적으로 행동할 수 있도록 이루어져 있다.
(2) 제어 프로그램의 소프트웨어 구성
여기서, 로봇 장치(1)에서의 상술한 제어 프로그램의 소프트웨어 구성은, 도 3에 도시된 바와 같다. 도 3에서, 디바이스 드라이버층(30)은, 이러한 제어 프로그램의 최하위층에 위치하며, 복수의 디바이스 드라이버로 이루어지는 디바이스 드라이버 세트(31)로 구성되어 있다. 이 경우, 각 디바이스 드라이버는, CCD 카메라(20)(도 2)나 타이머 등의 통상의 컴퓨터에서 이용되는 하드웨어에 직접 액세스하는 것이 허용된 오브젝트로서, 대응하는 하드웨어로부터의 인터럽트를 받아 처리를 행한다.
또한, 로보틱 서버 오브젝트(32)는, 디바이스 드라이버층(30)의 최하위층에 위치하며, 예를 들면 상술한 각종 센서나 액튜에이터(251∼25n) 등의 하드웨어에 액세스하기 위한 인터페이스를 제공하는 소프트웨어군으로 이루어지는 버츄얼 로봇(33)과, 전원의 전환 등을 관리하는 소프트웨어군으로 이루어지는 파워 매니저(34)와, 그 밖의 다양한 디바이스 드라이버를 관리하는 소프트웨어군으로 이루어지는 디바이스 드라이버 매니저(35)와, 로봇 장치(1)의 기구를 관리하는 소프트웨어군으로 이루어지는 디자인된 로봇(36)으로 구성되어 있다.
매니저 오브젝트(37)는 오브젝트 매니저(38) 및 서비스 매니저(39)로 구성되어 있다. 오브젝트 매니저(38)는 로보틱 서버 오브젝트(32), 미들웨어층(40) 및 어플리케이션층(41)에 포함되는 각 소프트웨어군의 기동이나 종료를 관리하는 소프트웨어군이고, 서비스 매니저(39)는, 메모리 카드(28)(도 2)에 저장된 커넥션 파일에 기술되어 있는 각 오브젝트 간의 접속 정보에 기초하여 각 오브젝트의 접속을 관리하는 소프트웨어군이다.
미들웨어층(40)은, 로보틱 서버 오브젝트(32)의 상위층에 위치하며, 화상 처리나 음성 처리 등의 로봇 장치(1)의 기본적인 기능을 제공하는 소프트웨어군으로 구성되어 있다. 또한, 어플리케이션층(41)은, 미들웨어층(40)의 상위층에 위치하며, 해당 미들웨어층(40)을 구성하는 각 소프트웨어군에 의해 처리된 처리 결과에 기초하여 로봇 장치(1)의 행동을 결정하기 위한 소프트웨어군으로 구성되어 있다.
또한, 미들웨어층(40) 및 어플리케이션층(41)의 구체적인 소프트웨어 구성을 각각 도 4에 도시한다.
미들웨어층(40)은, 도 4에 도시한 바와 같이, 소음 검출용, 온도 검출용, 밝기 검출용, 음계 인식용, 거리 검출용, 자세 검출용, 터치 센서용, 움직임 검출용 및 색 인식용의 각 신호 처리 모듈(50∼58) 및 입력 세만틱스 컨버터 모듈(59) 등을 갖는 인식계(60)와, 출력 세만틱스 컨버터 모듈(68) 및 자세 관리용, 트랙킹용, 모션 재생용, 보행용, 전도 복귀용, LED 점등용 및 음 재생용의 각 신호 처리 모듈(61∼67) 등을 갖는 출력계(69)로 구성되어 있다.
인식계(60)의 각 신호 처리 모듈(50∼58)은, 로보틱 서버 오브젝트(32)의 버츄얼 로봇(33)에 의해 DRAM(11)(도 2)으로부터 판독되는 각 센서 데이터나 화상 데이터 및 음성 데이터 중 대응하는 데이터를 취득하고, 해당 데이터에 기초하여 소정 처리를 실시하여, 그 처리 결과를 입력 세만틱스 컨버터 모듈(59)에 공급한다. 여기서, 예를 들면, 버츄얼 로봇(33)은, 소정의 통신 규약에 의해 신호의 수수 혹은 변환을 행하는 부분으로서 구성되어 있다.
입력 세만틱스 컨버터 모듈(59)은, 이들 각 신호 처리 모듈(50∼58)로부터 공급되는 처리 결과에 기초하여, 「시끄럽다」, 「덥다」, 「밝다」, 「볼을 검출하였다」, 「전도를 검출하였다」, 「쓰다듬어졌다」, 「맞았다」, 「도미솔의 음계가 들렸다」, 「움직이는 물체를 검출하였다」 또는 「장해물을 검출하였다」 등의 자신 및 주위 상황이나, 사용자로부터의 명령 및 행위를 인식하고, 그 인식 결과를 어플리케이션층(41)(도 2)으로 출력한다.
어플리케이션층(41)은, 도 5에 도시한 바와 같이, 행동 모델 라이브러리(70), 행동 전환 모듈(71), 학습 모듈(72), 감정 모델(73) 및 본능 모델(74)의 5개의 모듈로 구성되어 있다.
행동 모델 라이브러리(70)에는, 도 6에 도시한 바와 같이, 「배터리 잔량이 적어진 경우」, 「전도 복귀하는 경우」, 「장해물을 회피하는 경우」, 「감정을 표현하는 경우」, 「볼을 검출한 경우」 등의 사전에 선택된 몇 개의 조건 항목에 각각 대응시켜, 각각 독립된 행동 모델(701∼70n)이 설정되어 있다.
그리고, 이들 행동 모델(701∼70n)은, 각각 입력 세만틱스 컨버터 모듈(59)로부터 인식 결과가 주어졌을 때나, 최후의 인식 결과가 주어지고 나서 일정 시간이경과했을 때 등에, 필요에 따라 후술하는 바와 같이 감정 모델(73)에 보유되어 있는 대응하는 정서의 파라미터값이나, 본능 모델(74)에 보유되어 있는 대응하는 욕구의 파라미터값을 참조하면서 후속하는 행동을 각각 결정하고, 그 결정 결과를 행동 전환 모듈(71)로 출력한다.
또한, 본 실시 형태의 경우, 각 행동 모델(701∼70n)은, 다음 행동을 결정하는 방법으로서, 도 7에 도시한 바와 같은 하나의 노드(상태) NODE0∼NODEn으로부터 다른 어떤 노드 NODE0∼NODEn으로 천이하는지를 각 노드 NODE0∼NODEn사이를 접속하는 아크 ARC1∼ARCn1에 대하여 각각 설정된 천이 확률 P1∼Pn에 기초하여 확률적으로 결정하는 유한 확률 오토마톤이라고 하는 알고리즘을 이용한다.
구체적으로, 각 행동 모델(701∼70n)은, 각각 자기의 행동 모델(701∼70n)을 형성하는 노드 NODE0∼NODEn에 각각 대응시켜, 이들 노드 NODE0∼NODEn마다 도 8에 도시한 바와 같은 상태 천이표(80)를 갖고 있다.
이러한 상태 천이표(80)에서는, 그 노드 NODE0∼NODEn에서 천이 조건으로 하는 입력 이벤트(인식 결과)가 「입력 이벤트명」의 행에 우선순으로 열기되고, 그 천이 조건에 대한 또 다른 조건이 「데이터명」 및 「데이터 범위」의 열에서의 대응하는 행에 기술되어 있다.
따라서, 도 8의 상태 천이표(80)에서 표시되는 노드 NODE100에서는, 「볼을 검출(BALL)」이라는 인식 결과가 주어진 경우에, 해당 인식 결과와 함께 주어지는그 볼의 「크기(SIZE)」가 「0 내지 100」의 범위인 것이나, 「장해물을 검출(OBSTACLE)」이라는 인식 결과가 주어진 경우에, 해당 인식 결과와 함께 주어지는 그 장해물까지의 「거리(DISTANCE)」가 「0 내지 100」의 범위인 것이 다른 노드로 천이하기 위한 조건으로 되어 있다.
또한, 이 노드 NODE100에서는, 인식 결과의 입력이 없는 경우에도, 행동 모델(701∼70n)이 주기적으로 참조하는 감정 모델(73) 및 본능 모델(74)에 각각 보유된 각 정서 및 각 욕구의 파라미터값 중, 감정 모델(73)에 보유된 「기쁨(JOY)」, 「놀람(SURPRISE)」 혹은 「슬픔(SADNESS)」중 어느 하나의 파라미터값이 「50 내지 100」의 범위일 때는 다른 노드로 천이할 수 있도록 되어 있다.
또한, 상태 천이표(80)에서는, 「다른 노드로의 천이 확률」란에서의 「천이처 노드」의 행에 그 노드 NODE0∼NODEn으로부터 천이할 수 있는 노드명이 열기되어 있음과 함께, 「입력 이벤트명」, 「데이터명」 및 「데이터 범위」의 열에 기술된 모든 조건이 갖추어졌을 때에 천이할 수 있는 다른 각 노드 NODE0∼NODEn으로의 천이 확률이 「다른 노드로의 천이 확률」란 내의 대응하는 개소에 각각 기술되며, 그 노드 NODE0∼NODEn으로 천이할 때 출력하여야 할 행동이 「다른 노드로의 천이 확률」란에서의 「출력 행동」의 행에 기술되어 있다. 또한, 「다른 노드로의 천이 확률」란에서의 각 행의 확률의 합은 100[%]로 되어 있다.
따라서, 도 8의 상태 천이표(80)에 표시되는 노드 NODE100에서는, 예를 들면「볼을 검출(BALL)」하고, 그 볼의 「크기(SIZE)」가 「0 내지 1000」의 범위이다라고 하는 인식 결과가 주어진 경우에는, 「30[%]」의 확률로 「노드 NODE120(node120)」으로 천이할 수 있고, 그 때 「ACTION1」의 행동이 출력되게 된다.
각 행동 모델(701∼70n)은, 각각 이러한 상태 천이표(80)로서 기술된 노드 NODE0∼NODEn이 몇 개 연결되도록 하여 구성되어 있고, 입력 세만틱스 컨버터 모듈(59)로부터 인식 결과가 주어졌을 때 등에, 대응하는 노드 NODE0∼NODEn의 상태 천이표를 이용하여 확률적으로 다음 행동을 결정하고, 그 결정 결과를 행동 전환 모듈(71)로 출력하도록 이루어져 있다.
도 5에 도시한 행동 전환 모듈(71)은, 행동 모델 라이브러리(70)의 각 행동 모델(701∼70n)로부터 각각 출력되는 행동 중, 사전에 정해진 우선 순위가 높은 행동 모델(701∼70n)로부터 출력된 행동을 선택하고, 해당 행동을 실행해야 할 취지의 커맨드(이하, 이것을 행동 커맨드라고 함)를 미들웨어층(40)의 출력 세만틱스 컨버터 모듈(68)로 송출한다. 또한, 본 실시 형태에서는, 도 6에서 하측에 표기된 행동 모델(701∼70n)만큼 우선 순위가 높게 설정되어 있다.
또한, 행동 전환 모듈(71)은, 행동 완료 후에 출력 세만틱스 컨버터 모듈(68)로부터 주어지는 행동 완료 정보에 기초하여, 그 행동이 완료된 것을 학습 모듈(72), 감정 모델(73) 및 본능 모델(74)에 통지한다.
한편, 학습 모듈(72)은, 입력 세만틱스 컨버터 모듈(59)로부터 주어지는 인식 결과 중, 「맞았다」나 「쓰다듬어졌다」등, 사용자로부터의 행위로서 받은 교시의 인식 결과를 입력한다.
그리고, 학습 모듈(72)은, 이러한 인식 결과 및 행동 전환 모듈(71)로부터의 통지에 기초하여, 「맞았다(꾸중들었다)」일 때에는 그 행동의 발현 확률을 저하시키고, 「쓰다듬어졌다(칭찬 받았다)」일 때에는 그 행동의 발현 확률을 상승시키도록, 행동 모델 라이브러리(70)에서의 대응하는 행동 모델(701∼70n)의 대응하는 천이 확률을 변경한다.
한편, 감정 모델(73)은, 「기쁨(joy)」, 「슬픔(sadness)」, 「분노(anger)」, 「놀람(surprise)」, 「혐오(disgust)」 및 「두려움(fear)」의 합계 6개의 정서에 대하여, 각 정서마다 그 정서의 강함을 표시하는 파라미터를 보유하고 있다. 그리고, 감정 모델(73)은, 이들 각 정서의 파라미터값을, 각각 입력 세만틱스 컨버터 모듈(59)로부터 주어지는 「맞았다」 및 「쓰다듬어졌다」 등의 특정한 인식 결과와, 경과 시간 및 행동 전환 모듈(71)로부터의 통지 등에 기초하여 주기적으로 갱신한다.
구체적으로는, 감정 모델(73)은, 입력 세만틱스 컨버터 모듈(59)로부터 주어지는 인식 결과와, 그 때의 로봇 장치(1)의 행동과, 전회 갱신하고 나서의 경과 시간 등에 기초하여 소정의 연산식에 의해 산출되는 그 때의 그 정서의 변동량을 ΔE [t], 현재의 그 정서의 파라미터값을 E[t], 그 정서의 감도를 표시하는 계수를 ke로하여, 수학식 1에 의해 다음 주기에서의 그 정서의 파라미터값 E[t+1]을 산출하고, 이것을 현재의 그 정서의 파라미터값 E[t]로 치환하도록 하여 그 정서의 파라미터값을 갱신한다. 또한, 감정 모델(73)은, 이와 마찬가지로 하여 모든 정서의 파라미터값을 갱신한다.
또한, 각 인식 결과나 출력 세만틱스 컨버터 모듈(68)로부터의 통지가 각 정서의 파라미터값의 변동량 ΔE[t]에 어느 정도의 영향을 줄지는 사전에 결정되어 있고, 예를 들면 「맞았다」라는 인식 결과는 「분노」의 정서의 파라미터값의 변동량 ΔE[t]에 큰 영향을 주고, 「쓰다듬어졌다」라는 인식 결과는 「기쁨」의 정서의 파라미터값의 변동량 ΔE[t]에 큰 영향을 주도록 되어 있다.
여기서, 출력 세만틱스 컨버터 모듈(68)로부터의 통지란, 소위 행동의 피드백 정보(행동 완료 정보)로, 행동의 출현 결과의 정보이고, 감정 모델(73)은, 이러한 정보에 의해서도 감정을 변화시킨다. 이것은, 예를 들면, 「짖는다」라는 행동에 의해 분노의 감정 레벨이 내려가는 것과 같은 것이다. 또한, 출력 세만틱스 컨버터 모듈(68)로부터의 통지는 상술한 학습 모듈(72)에도 입력되고 있고, 학습 모듈(72)은 그 통지에 기초하여 행동 모델(701∼70n)의 대응하는 천이 확률을 변경한다.
또한, 행동 결과의 피드백은, 행동 전환 모듈(71)의 출력(감정이 부가된 행동)에 의해 이루어지는 것이어도 된다.
한편, 본능 모델(74)은, 「운동욕(exercise)」, 「애정욕(affection)」, 「식욕(appetite)」, 「호기심(curiosity)」의 서로 독립된 4개의 욕구에 대하여, 이들 욕구마다 그 욕구의 강함을 나타내는 파라미터를 보유하고 있다. 그리고, 본능 모델(74)은, 이들 욕구의 파라미터값을, 각각 입력 세만틱스 컨버터 모듈(59)로부터 주어지는 인식 결과나, 경과 시간 및 행동 전환 모듈(71)로부터의 통지 등에 기초하여 주기적으로 갱신한다.
구체적으로는, 본능 모델(74)은, 「운동욕」, 「애정욕」 및 「호기심」에 대해서는, 인식 결과, 경과 시간 및 출력 세만틱스 컨버터 모듈(68)로부터의 통지 등에 기초하여 소정의 연산식에 의해 산출되는 그 때의 그 욕구의 변동량을 ΔI[k], 현재의 그 욕구의 파라미터값을 I[k],그 욕구의 감도를 나타내는 계수를 ki로 하여, 소정 주기로 수학식 2를 이용하여 다음 주기에서의 그 욕구의 파라미터값 I[k+1]을 산출하고, 이 연산 결과를 현재의 그 욕구의 파라미터값 [k]로 치환하도록 하여 그 욕구의 파라미터값을 갱신한다. 또한, 본능 모델(74)은, 이것과 마찬가지로 하여 「식욕」을 제외한 각 욕구의 파라미터값을 갱신한다.
또한, 인식 결과 및 출력 세만틱스 컨버젼 모듈(68)로부터의 통지 등이 각 욕구의 파라미터값의 변동량 ΔI[k]에 어느 정도의 영향을 줄지는 사전에 결정되어있으며, 예를 들면 출력 세만틱스 컨버터 모듈(68)로부터의 통지는, 「피로」의 파라미터값의 변동량 ΔI[k]에 큰 영향을 주도록 되어 있다.
또한, 본 실시 형태에서는, 각 정서 및 각 욕구(본능)의 파라미터값이 각각 0 내지 100까지의 범위에서 변동되도록 규제되어 있고, 또한 계수 ke, ki의 값도 각 정서 및 각 욕구마다 개별로 설정되어 있다.
한편, 미들웨어층(40)의 출력 세만틱스 컨버터 모듈(68)은, 도 4에 도시한 바와 같이, 상술한 바와 같이 하여 어플리케이션층(41)의 행동 전환 모듈(71)로부터 주어지는 「전진」, 「기뻐한다」, 「운다」 또는 「트랙킹(볼을 쫓아간다)」이라는 추상적인 행동 커맨드를 출력계(69)의 대응하는 신호 처리 모듈(61∼67)에 공급한다.
그리고 이들 신호 처리 모듈(61∼67)은, 행동 커맨드가 주어지면 해당 행동 커맨드에 기초하여, 그 행동을 행하기 위해 대응하는 액튜에이터(251∼25n)(도 2)에 공급해야 되는 서보 명령값, 스피커(24)(도 2)로부터 출력되는 음의 음성 데이터, 또는 「눈」의 LED에 주어지는 구동 데이터를 생성하고, 이들 데이터를 로보틱 서버 오브젝트(32)의 버츄얼 로봇(33) 및 신호 처리 회로(14)(도 2)를 순차적으로 통해 대응하는 액튜에이터(251∼25n) 또는 스피커(24) 또는 LED로 순차적으로 송출한다.
이와 같이 하여 로봇 장치(1)에서는, 제어 프로그램에 기초하여, 자신(내부) 및 주위(외부)의 상황이나, 사용자로부터의 지시 및 행위에 대응한 자율적인 행동을 행할 수 있도록 이루어져 있다.
(3) 본 발명이 적용된 로봇 장치(1)에서의 구성
로봇 장치(1)는, 상술한 바와 같이 자세나 동작을 천이시키면서, 목표로 하는 자세나 동작으로 천이할 수 있다. 그리고, 로봇 장치(1)는, 임의의 자세나 동작을 행하고 있는 동안에 새로운 커맨드가 발생한 경우에, 해당 커맨드 내용의 동작 등을 실행하기 위해, 일단 자세를 천이시키는 경우가 있다.
즉 예를 들면, 도 9A에 도시한 바와 같이, 로봇 장치(1)는, 커맨드 발생 시의 상태로부터 일단 해당 커맨드 내용을 개시 가능한 상태로 천이하는 경우이다. 여기서, 상태란 자세나 동작 등이다.
그리고, 로봇 장치(1)는, 커맨드 내용을 개시할 수 있는 상태로 되고 나서 실제의 커맨드의 내용을 실행하여, 목표의 상태로 천이한다. 구체적으로는, 도 9B에 도시한 바와 같이, 로봇 장치(1)는, 동작 개시 시의 자세가 선 자세인 커맨드가 발생하면, 현재의 자세인 앉은 자세로부터 선 자세로 천이한다. 그로부터, 로봇 장치(1)는, 해당 커맨드의 내용으로서, 선 자세로부터 천이 동작을 개시하여, 커맨드 내용의 최종 상태가 되는 목표의 자세로 천이한다.
한편, 로봇 장치(1)의 커맨드 내용이, 도 9A에 도시한 바와 같이, 복수의 동작을 동기시키기 위한 것이 있다. 예를 들면, 도 9B에 도시한 바와 같이, 로봇 장치(1)가 자세의 천이 동작에 동기시켜, 음(Sound)을 발생시키거나, LED를 점멸하도록 한 경우가 있다. 예를 들면, 이러한 다양한 동작을 동기시켜 실행할 수 있는 것은, 로봇 장치(1)에서 그와 같은 동작을 실행하는 제어 부분이 독립적으로 제어가능하게 되어 있기 때문이다. 즉 예를 들면, 로봇 장치(1)는, 스피커나 LED 등을 소위 효과기로서 다른 동작에 동기시킬 수 있기 때문이고, 이에 따라, 자세의 천이 동작에 동기시켜, 효과기에 의해 음을 발생시키거나, 발광 점멸시킬 수 있다.
이상과 같은 동작은, 도 10에 도시한 바와 같은 로봇 장치(1)의 개략으로서 도시한 구성에 의해 실현된다.
또한, 도 9A에 도시한 바와 같은 로봇 장치(1)의 상태 천이는 일반적인 형태로서 도시한 것으로, 이하에서는, 구체예가 되는 도 9B에 도시한 바와 같은 로봇 장치(1)의 상태 천이를 예로 들어 설명한다. 즉, 이하에서는, 커맨드 발생 시의 상태가 「앉은 자세」이고, 동기 커맨드 개시 시의 상태가 「선 자세」로, 동기 커맨드의 실행에 의해 「목표 자세」로 되는 경우에 대해 설명한다.
로봇 장치(1)는, 커맨드 제어부(101), 동작 관리부(102), 발광 패턴 관리부(103), 음 파형 관리부(104), 명령 송신부(105), 모터 제어부(106), LED 제어부(107), 스피커 제어부(108), 모터(109), LED(110) 및 스피커(111)를 구비하고 있다. 여기서, 모터(109)는, 도 2에 도시한 다리부 유닛(3A∼3D)의 관절 부분이나 각 부 유닛 간의 연결 부분에 배치되어 있는 액튜에이터(251∼25n)의 구체적인 구성 부분으로 되는 서보 모터이다. 또한, 스피커(111)는, 머리부 유닛(4)에서 음성을 출력하는 부분으로 되는 스피커(24)이고, LED(110)는, 동일하게 머리부 유닛(4)에서 「눈」에 상당하는 기능을 갖는 부분이다.
이러한 구성에서, 커맨드가 입력된 경우, 로봇 장치(1)에서, 커맨드제어부(101)가, 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104) 각각에 대응되는 커맨드를 출력한다.
예를 들면, 커맨드 제어부(101)는, 복수의 동작을 동기시키기 위한 커맨드가 입력된 경우에는, 해당 각 동작에 대응되는 각 커맨드(이하, 동기 커맨드라고 함)를 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)로 각각 출력한다. 또한, 커맨드 제어부(101)는, 동작을 독립적으로 동작시키기 위한 커맨드가 입력된 경우에는, 대응되는 커맨드(이하, 독립 커맨드라고 함)를 대응되는 관리부로 출력한다.
여기서, 커맨드 제어부(101)는, 입력되는 커맨드와 출력하는 동기 커맨드 또는 독립 커맨드가 대응된 데이터베이스를 구비하고 있고, 데이터베이스를 참조하여, 입력된 커맨드에 대응되는 출력 커맨드를 선택한다. 즉, 도 11에 도시한 바와 같이, 커맨드 제어부(101)는, 각종 동작을 동기시키도록 한 커맨드 C가 입력된 경우에는, 데이터베이스(111)를 참조하여, 대응되어 있는 커맨드 열 C(M1, L1, S1)를 판독한다. 그리고, 커맨드 제어부(101)는, 이러한 커맨드 열 C의 내용을 나타내는 동기 커맨드 M1, L1, S1을 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 생성부(104)로 각각 출력한다. 여기서, 예를 들면, M1은 동작 관리부(102)로 송신되는 동기 커맨드(이하, 움직임 동작 커맨드라고 함)이고, M2는 발광 패턴 관리부(103)로 보내어지는 동기 커맨드(이하, 발광 동기 커맨드라고 함)이며, M3은 음 파형 관리부(104)로 송신되는 동기 커맨드(이하, 음 출력 동기 커맨드라고 함)이다.
이하의 설명에서는, 커맨드 제어부(101)에 각종 동작을 동기시키도록 한 커맨드가 입력되는 경우, 즉, 커맨드 제어부(101)로부터 각 관리부(102, 103, 104)로 각 동기 커맨드가 출력되는 경우에 대해 설명한다.
동작 관리부(102)는, 움직임 동기 커맨드 M1의 내용에 따른 데이터 열을 명령 송신부(105)로 송신한다. 마찬가지로, 발광 패턴 관리부(103)는, 발광 동기 커맨드 L1의 내용에 따라, 모터(109)를 제어하기 위한 데이터 열을 데이터 버스(121)를 통해 명령 송신부(105)로 송신하며, 또한, 음 파형 관리부(104)는, 음 출력 동기 커맨드 S1에 따라, LED(110)를 예를 들면 소정의 발광 패턴으로 발광 제어하기 위한 데이터 열을 데이터 버스(121)를 통해 명령 송신부(105)로 송신하고, 또한, 음 파형 관리부(104)는, 음 출력 동기 커맨드 S1에 따라, 스피커(111)를 제어하기 위한 데이터 열(구체적으로는 음 파형 데이터)을 데이터 버스(121)를 통해 명령 송신부(105)로 송신한다.
명령 송신부(105)는, 하위 혹은 상위의 구성 부분이 데이터를 해석 가능하게 하는 부분, 즉 규격화하는 부분이다. 이 부분은, 상술한 도 3에 도시한 버츄얼 로봇(33)에 대응되는 부분이다. 이러한 명령 송신부(105)는, 동작 관리부(102)로부터 송신되어 온 데이터 열에 대해서는 모터 제어부(106)가 해석할 수 있는 데이터 열(데이터(11), 데이터(12), 데이터(13), …)로 변환하여 데이터 버스(121)를 통해 해당 모터 제어부(106)로 송신하고, 또한, 발광 패턴 관리부(103)로부터 송신되어 온 데이터 열을 LED 제어부(107)가 해석할 수 있는 데이터 열(데이터(21), 데이터(22), 데이터(23), …)로 변환하여 데이터 버스(121)를 통해 해당 LED 제어부(107)로 송신하며, 또한, 음 파형 관리부(104)로부터 송신되어 온 데이터 열을 스피커 제어부(108)가 해석할 수 있는 데이터 열(데이터(31), 데이터(32), 데이터(33), …)로 변환하여 데이터 버스(121)를 통해 해당 스피커 제어부(108)로 송신한다.
모터 제어부(106)는, 명령 송신부(105)로부터 데이터 버스(121)를 통해 입력되는 데이터 열에 기초하여 모터(109)를 제어한다. 또한, LED 제어부(107)는, 명령 송신부(105)로부터 데이터 버스(122)를 통해 입력되는 데이터 열에 기초하여 LED(110)를 제어한다. 그리고, 스피커 제어부(108)는, 명령 송신부(105)로부터 데이터 버스(123)를 통해 입력되는 데이터 열에 기초하여 스피커(111)를 제어한다.
개략적으로는 이상과 같은 순서에 의해, 로봇 장치(1)는, 커맨드 제어부(101)로부터 출력된 동기 커맨드에 기초하여 하위의 관리부 등에 의해 소정 처리가 행해짐으로써, 동기한 동작을 표출하게 된다.
여기서, 상술한 바와 같이, 커맨드 제어부(101)에 입력된 커맨드가 동기 동작을 실행하기 위한 커맨드인 경우에는, 일단 자세를 천이시키고 나서, 동기 커맨드에 의한 동기 동작을 실행 개시시키는 경우가 있으며, 이러한 경우의 처리로서, 하기의 (1)∼(3)에 나타내는 처리를 예로 들 수 있다.
(1) 커맨드 제어부(101)가 동기 커맨드의 개시 자세(여기서는, 선 자세)까지 자세를 천이하는 커맨드(이하, 동기 준비 커맨드라고 함)를 발행하여, 그 동기 준비 커맨드 내용의 완료를 트리거로 하여, 동기 커맨드의 내용을 실행한다.
(2) 커맨드 제어부(101)의 후단에 배치되어 있는 관리부 등으로부터 각 제어부(106, 107, 108)로 데이터를 송신하는 단계에서 동기를 취한다.
(3) 상술한 (1)과 (2)를 모두 채용한다.
이러한 (1)∼(2)의 처리를 개별로 행하는 경우에는, 다음과 같은 문제가 발생한다.
상술한 (1)에 대해서는, 구체적으로는, 커맨드 제어부(101)가 동기 준비 커맨드의 완료를 트리거로 하여, 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)에 각각 동기 커맨드 M1, L1, S1을 송신하독 한 것을 들 수 있다. 그러나, 이렇게 하면, 실제의 장면에서 동기에 어긋남이 발생하는 경우가 있다.
구체적으로는, 도 12A에 도시한 바와 같이, 동기 준비 커맨드의 내용으로서 실행된 앉은 자세로부터 선 자세로의 동작(프리모션(Pre_Motion), 이하, 초기 동작이라고 함)이 종료된 후, 움직임 동기 커맨드(혹은 움직임 커맨드에 대응하는 데이터 열)에 의해 동기 동작의 하나인 자세 천이가 이루어지게 되지만, 발광 동기 커맨드(혹은 발광 동기 커맨드에 대응하는 데이터 열)의 송출이 지연됨으로써, LED(110)가 그것에 동기되지 않아 발광되지 않는 경우가 있다. 이것은, 동기 동작을 위한 데이터에 빈 데이터 영역이 생기게 되는 것과 등가이다.
이러한 문제는, 상위 구성부를 구성하는 커맨드 제어부(101)에 의해서만 동기 커맨드를 관리하여 동기를 도모하고자 하기 때문이다. 또한, 이와 같이 천이 자세로 되는 선 자세로 일단 천이하고 나서 동기 커맨드를 실행하는 것은, 도 12B에 도시한 바와 같은 상태 천이로서 파악된다.
또한, 앉은 자세로부터 동기 준비 커맨드 없이 동기 동작을 취하는 것도 가능하다. 즉, 동기 준비 커맨드를 사용하지 않고, 동기 제어하도록 한 경우이다. 이 경우, 각 동작부를 제어하기 위한 데이터를 1세트로서 작성한다. 즉, 앉은 자세로부터 선 자세로 일단 자세를 천이시키는 동안에서도 발광 패턴 제어부(103)로 출력되는 데이터나 음 파형 생성 제어부(104)로 출력되는 데이터를 작성한다. 그 데이터 내용은, 초기 동작이 실행되고 있는 동안에는 LED(106)가 무점등되도록 하는 내용이며, 또한, 스피커(107)가 무음되도록 하는 내용이다.
이러한 1세트의 데이터를 이용함으로써, 로봇 장치(1)는, 예를 들면 도 12A에 도시한 바와 같이, 선 자세로 되었을 즈음의 타이밍에서, 음 출력이나 발광 동작이 동기되어 동작 개시되게 된다.
그러나, 이렇게 하면, 데이터를 1세트로 작성해야 하는 수고 외에, 초기 동작 실행 중에는 실제로는 동작 제어되지 않는 LED 제어부(107)나 스피커 제어부(108)에 데이터가 입력되기 때문에, 그 기간동안 LED(110)나 스피커(111)에 다른 동작을 실행시킬 수 없다. 예를 들면, 우선도가 높은 커맨드(예를 들면, 독립 커맨드)가 발생하도록 한 경우에도, LED(110)나 스피커(111)에 의해 해당 커맨드 내용을 실행할 수 없다. 또한, 선 자세로 천이된 후, 동기하여 동작이 개시된다고는 할 수 없으며, 예를 들면 도 13A에 도시한 바와 같이, LED(110)의 발광이 지연되어 개시되도록 한 경우도 있다.
또한, 이러한 동작에 대하여 1세트의 데이터를 사용한 상태 천이는, 도 13B에 도시한 바와 같이, 선 자세로부터 목표 자세까지의 연속된 동작의 상태 천이로서 파악되는 것이다.
또한, 상술한 (2)에 대해서는, 명령 송신부(105)로부터 후단의 각 제어부(106, 107, 108)로 각각 데이터를 송신하는 단계에서 동기를 취하는 것을 예로 들 수 있다. 이러한 경우, 초기 동작이 실행되고 있는 기간 내에(예를 들면, 초기 동작과 동시에), 동기 커맨드를 먼저 행함으로써, 명령 송신부(105)가 참조 가능한 메모리 상에서 각 관리부(102, 103, 104)로부터의 동기 동작을 위한 데이터를 보유해 두는 것을 들 수 있다. 그러나 이렇게 하면, 다른 목적으로 메모리를 사용할 수 없게 되어, 메모리를 효율적으로 사용한다고 하는 의미에서 최적이라고는 할 수 없다.
또한, 동기 커맨드를 먼저 행하게 되면, 도 14에 도시한 바와 같이, 해당 동기 커맨드가 완료될 때까지, 각 관리부(102, 103, 104)와 명령 송신부(105)를 접속하고 있는 데이터 버스(121)가 로크되게 된다. 이에 따라, 데이터 버스(121)를 개방할 수 없게 되어, 동기 준비 커맨드의 내용으로서의 초기 동작의 실행 중에는, 예를 들면 소리를 낼 수 없다.
즉 예를 들면, LED(110)의 발광을 위한 커맨드나 음 출력을 위한 커맨드에는, 동기 동작을 위한 커맨드가 아닌 독립 커맨드가 존재하지만, 이러한 독립 커맨드에 대해서는, 커맨드 제어부(101)는, 동기 커맨드의 실행 대기 상태이어도, 발광 패턴 관리부(103) 및 음 파형 생성부(104)로 송신한다.
이와 같이 다른 커맨드로 되는 독립 커맨드가 송신되면, 도 15에 도시한 바와 같이, 데이터 버스(121)가 로크된다. 이러한 경우에는, 데이터를 캔슬하는 등의 처리를 실시할 필요가 있으며, 엄밀하게는 이미 발광 패턴 관리부(103) 및 음파형 생성부(104)로부터 명령 송신부(105)로 송신된 데이터를 캔슬하는 것이 요구되어, 비현실적인 처리가 요구되게 된다.
이와 같이, 상술한 (1) 및 (2)의 처리 순서만으로는 문제가 있지만, 상술한 (3)으로 되는 (1) 및 (2)의 조합에 의해서는 (1) 및 (2)만의 처리 순서에서 발생하는 문제를 해결할 수 있다. 본 발명의 원리는, 상술한 (3)에 해당하는 것이지만, 실제로는 처리의 세부에 걸쳐 최적화되어 있다.
본 발명을 적용함으로써, 초기 동작이 실행되고 있는 동안에는, 동작에 대하여 프리 상태로 되는 LED(110)나 스피커(111)에 대해서는, 독립 커맨드를 실행하는 것이 실현된다. 또한, 본 발명의 적용에 의해, 초기 동작이 실행되고 있는 동안에는, 데이터 버스 상에 동기 커맨드의 내용의 데이터 열이 송출되지 않는 것이 실현되며, 이에 따라, 예를 들면 독립 커맨드가 발생한 경우에, 커맨드를 용이하게 소거할 수 있다.
즉, 도 16에 도시한 바와 같이, 본 발명은, 초기 동작이 실행되고 있는 동안에는, LED(110)나 스피커(111)를 독립 커맨드 등에 의해 동작 가능하게 하고, 또한 데이터 버스 상에 커맨드의 내용의 데이터 열이 송출되지 않는 것이 가능하게 되어 있다. 이하, 구체적인 예를 들어 설명한다. 도 17에는 그와 같은 처리를 실현하는 로봇 장치(1)의 구체적인 구성을 도시하고 있다.
로봇 장치(1)는, 커맨드 제어부(101), 동작 관리부(102), 발광 패턴 관리부(103), 음 파형 관리부(104), 명령 송신부(105), 상술한 모터 제어부(106)의 구체예로 되는 조인트각 제어부(106), 상술한 LED 제어부(107)의 구체예로 되는LED 발광 제어부(107), 상술한 스피커 제어부(108)의 구체예로 되는 음 발생 제어부(108), 모터(109), LED(110) 및 스피커(111)를 구비하고 있다.
또한, 동작 관리부(102)는 동작 관리기(1021) 및 조인트각 명령기(1022)에 의해 처리를 실현하고 있다. 또한, 발광 패턴 제어부(103)는 발광 패턴 생성기(1031)에 의해 처리를 실현하고 있다. 또한, 음 파형 관리부(104)는 음 파형 발생기(1041)에 의해 그 처리를 실현하고 있다.
또한, 커맨드 제어부(101)는, 커맨드를 맵핑한 데이터베이스 DB1을 갖고 있다. 예를 들면, 데이터베이스 DB1은, 도 11에 도시한 바와 같이, 입력된 커맨드 C와, 하위의 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)로 출력해야 할 커맨드 M1, L1, S1이 맵핑된 데이터베이스(112)를 갖고 있다.
또한, 동작 관리기(1021)는, 시점 자세 및 종점 자세와 모션(motion)명이 맵핑된 데이터베이스 DB2를 갖고 있다. 또한, 조인트각 명령기(1022)는, 커맨드와 조인트각 데이터가 맵핑된 데이터베이스 DB3을 갖고 있다. 또한, 발광 패턴 생성기(1031)는, 커맨드와 발광 패턴 데이터가 맵핑된 데이터베이스 DB4를 갖고 있다. 또한, 음 파형 발생기(1041)는, 커맨드와 음 파형 데이터가 맵핑된 데이터베이스 DB5를 갖고 있다.
커맨드 제어부(101)나 각 관리부(102, 103, 104)에서는, 이와 같이, 각종 데이터가 맵핑된 데이터베이스에 의해, 입력된 커맨드 등에 대응한 데이터 등을 하위의 구성 부분으로 출력하고 있다. 또한, 조인트각 명령기(1022), 발광 패턴 생성기(1031), 음 파형 발생기(1041)의 각 데이터베이스에서, 각 데이터와 대응되어 있는 커맨드는 동기 커맨드나 독립 커맨드이다.
이러한 구성에서, 모터(109), LED(110) 및 스피커(111)는, 동작을 표출시키는 동작 수단이고, 커맨드 제어부(101), 동작 관리부(102), 발광 패턴 관리부(103), 음 파형 관리부(104), 명령 송신부(105), 조인트각 제어부(106), LED 발광 제어부(107) 및 음 발생 제어부(108)는, 복수의 동작 수단으로 되는 모터(109), LED(110) 및 스피커(111)의 동작을 제어하는 제어 수단이다. 그리고, 이러한 구성으로 되는 제어 수단은, 선행하는 동작 수단(실시 형태에서는 모터(109))에 의한 동작의 완료 후에 연속하여, 후발 동작으로서 복수의 동작 수단(실시 형태에서는, 모터(109), LED(110) 및 스피커(111))에 의한 동기 동작을 시킨다.
구체적으로는, 이러한 제어 수단에 있어서, 커맨드 제어부(101)는, 입력된 커맨드에 대응되는 출력 커맨드를 출력하는 커맨드 제어부로서 기능하고, 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)는, 복수의 동작 수단으로 되는 모터(109), LED(110) 및 스피커(111)에 대응하여 구비되며, 커맨드 제어부(101)가 출력한 출력 커맨드에 대응되는 동작 제어 데이터를 출력하는 동작 제어 데이터 변환부로서 기능하고, 명령 송신부(105)는, 상술한 각 관리부(102,103, 104)가 출력한 각 동작 제어 데이터의 송신 제어를 행하는 데이터 송신 제어부로서 기능하며, 조인트각 제어부(106), LED 발광 제어부(107) 및 음 발생 제어부(108)는, 모터(109), LED(110) 및 스피커(111)에 대응하여 구비되며, 상술한 명령 송신부(105)가 출력한 동작 제어 데이터에 기초하여, 모터(109), LED(110) 및 스피커(111)를 제어하는 복수의 동작 제어부로서 기능한다. 그리고, 명령 송신부(105)는, 각 관리부(102, 103, 104)로부터 출력된 각 동기용의 동작 제어 데이터에 대해서는, 동기하여 각 모터(109), LED(110) 및 스피커(111)로 송신하도록 기능하고 있다. 또한, 커맨드 제어(101), 명령 송신부(105) 및 상술한 동작 제어부 등은, 오브젝트 지향 프로그래밍으로 구축되는 오브젝트 또는 프로세스 등이어도 된다. 이하, 구체적으로 각 구성부를 처리의 흐름에 따라 설명한다.
커맨드 제어부(101)는, 입력된 커맨드에 기초하여, 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)에 대응되는 커맨드를 출력한다. 즉, 커맨드 제어부(101)는, 데이터베이스 DB1을 참조하여, 입력된 커맨드에 대응되는 동기 커맨드나 독립 커맨드를 동작 관리부(102), 발광 패턴 관리부(103) 및 음 파형 관리부(104)로 출력한다.
또한, 커맨드 제어부(101)는, 각 관리부(102, 103, 104)로 출력하는 커맨드가 동기 커맨드인 경우에는, 해당 동기 커맨드에 동기 ID와 포인트 값을 부가하여 각 관리부(102, 103, 104)로 송신한다. 예를 들면, 커맨드 제어부(101)는, 동기 커맨드의 선두 부분에 동기 ID나 포인트 값을 부가하여 출력한다. 여기서, 동기ID나 포인트 값은, 후단의 명령 송신부(105) 등이 사용하는 정보가 된다. 구체적으로는, 동기해야 할 커맨드의 ID와 동기해야 할 커맨드의 총수를 나타내는 라벨 등이 붙어 있으면 된다. 예를 들면, 포인트 값은 수치로, 각 관리부(102, 103, 104)로 출력된 포인트 값의 총계가 소정 수로 되도록 해당 포인트 값이 결정되어 있다. 본 발명의 실시 형태에서는, 소정 수(합계)는 100으로서 설명한다.
그리고, 커맨드 제어부(101)는, 커맨드를 수취하였을 때에 초기 동작이 필요로 되는 상태, 즉 본 예에서는, 앉은 자세로 되어 있는 경우에는, 우선, 동기 준비 커맨드를, 동작 관리부(102)로 출력하고, 그 후, 소정 타이밍에서 동기 커맨드로 되는 움직임 동기 커맨드 M1, 발광 동기 커맨드 L1 및 음 출력 동기 커맨드를 각 관리부(102, 103, 104)로 출력한다. 앉은 자세로 되어 있는 경우에, 커맨드 제어부(101)가 동기 준비 커맨드를 동작 관리부(102)로 출력하는 경우에 대해 우선 설명한다.
동작 관리부(102)에서는, 동작 관리기(1021)가 동기 준비 커맨드에 대응한 모션(motion)명을 선택한다. 동작 관리부(102)는, 시점 자세 및 종점 자세가 움직임 내용을 나타내는 모션명과 대응지어진 데이터베이스 DB2를 갖고 있고, 이 데이터베이스 DB2를 참조하여, 초기 동작 내용을 나타내는 동기 준비 커맨드에 대응되는 모션명을 선택한다. 동작 관리기(1021)는, 이 모션명을 조인트각 명령부(1022)로 출력한다. 조인트각 명령기(1022)는, 데이터베이스 DB3을 참조하여, 입력된 모션명을 실행하기 위한 시계열의 조인트각 명령값으로 되는 데이터 열을 명령 송신부(105)로 출력한다.
명령 송신부(105)에서는, 동작 관리부(102)로부터 송신되어 오는 데이터 열을 세트로 하여, 데이터 버스(122)를 통해 조인트각 제어부(106)로 송신한다.
조인트각 제어부(106)는, 입력된 데이터에 기초하여, 모터(109)를 제어한다. 입력된 데이터가 초기 동작을 실현하는 동기 준비 커맨드이기 때문에, 로봇 장치(1)는, 이러한 모터(109)의 제어에 의해, 앉은 자세로부터 선 자세로 천이하는 동작을 표출한다.
이와 같이 동기 준비 커맨드에 기초하여, 초기 동작이 실행된다. 다음으로, 이러한 초기 동작의 완료 타이밍에서 연속적으로 표출되는 동기 동작에 대한 처리를 설명한다.
명령 송신부(105)에서는, 상술한 바와 같이 조인트각 제어부(106)로 초기 동작을 위한 데이터를 출력하는 한편, 소정 타이밍에서 송신 가능 신호를 동작 관리부(102)로 송신한다. 여기서, 소정 타이밍은, 후술하겠지만, 명령 송신부(105)에서의 데이터 수신 지연 예상 시간분의 남은 데이터로 되었을 때의 타이밍이다. 이에 따라, 후술하는 바와 같이, 초기 동작에 후속하는 동기 동작이 지연되지 않고, 연속적으로 표출되게 된다.
동작 관리부(102)에서는, 이러한 송신 가능 신호를 받아, 커맨드 제어부(101)에 대하여, 동기 커맨드 수신 가능 신호를 송신한다.
커맨드 제어부(101)에서는, 동기 커맨드 수신 가능 신호의 수신 타이밍에서,초기 동작 종료 후에 실행되는 동기 동작을 위한 각 동기 커맨드를 각 관리부(102, 103, 104)로 출력한다.
동작 관리부(102)에서는, 동작 관리기(1021)가, 데이터베이스 DB2를 참조하여, 입력된 움직임 동기 커맨드의 내용을 실행하는 모션명을 후단의 조인트각 명령기(1022)로 출력한다. 조인트각 명령기(1022)는, 데이터베이스 DB3을 참조하여, 입력된 커맨드에 대응되는 시계열 데이터의 데이터 열을 명령 송신부(105)로 출력한다.
또한, 발광 패턴 관리부(103)에서는, 발광 패턴 생성기(1031)는, 데이터베이스 DB4를 참조하여, 입력된 발광 동기 커맨드에 대응되는 시계열 데이터로 되는 발광 패턴의 데이터 열을 명령 송신부(105)로 출력한다. 또한, 음 파형 관리부(104)에서, 음 파형 발생기(1041)는, 데이터베이스 DB5를 참조하여, 입력된 음 출력 동기 커맨드에 대응되는 시계열 데이터로 되는 음 파형의 데이터 열을 명령 송신부(105)로 출력한다.
이와 같이 각 관리부(102, 103, 104)는, 입력된 각 동기 커맨드에 대응한 데이터 열을 명령 송신부(105)로 출력하고 있다. 그리고, 해당 데이터 열은 동기 커맨드에 관련된 데이터이기 때문에, 해당 데이터 열의 선두 부분에는 커맨드 제어부(101)에 의해 부여된 상술한 동기 ID 및 포인트 값이 부가되어 있다.
명령 송신부(105)에서는, 각 관리부(102, 103, 104)로부터 송신되어 오는 데이터 열을, 데이터 버스(122)를 통해 하위의 제어부(106, 107, 108)로 송신하는 제어를 행한다. 명령 송신부(105)에서의 처리는 구체적으로는 이하와 같이 된다.
명령 송신부(105)에는, 도 18에 도시한 바와 같이, 명령 송신기(1051) 및 도 19에 도시한 메모리(1052)를 구비하고 있다.
명령 송신부(105)에서, 명령 송신기(1051)에, 각 관리부(102, 103, 104)로부터 출력된 동기 ID, 포인트 값, 데이터 열이 입력된다. 도 18에서, 동기 ID(1), 포인트 값(1) 및 데이터(11), 데이터(12), …는, 동작 관리부(102)로부터의 동기 ID, 포인트 값, 데이터 열에 각각 대응되는 것이고, 동기 ID(2), 포인트 값(2) 및 데이터(21), 데이터(22), …는, 발광 패턴 관리부(103)로부터의 동기 ID, 포인트 값, 데이터 열에 각각 대응되는 것이며, 동기 ID(3), 포인트 값(3) 및 데이터(31), 데이터(32), …는, 음 파형 관리부(104)로부터의 동기 ID, 포인트 값, 데이터 열에 각각 대응되는 것이다.
이와 같이 입력된 정보 내의 헤더 영역에 동기 ID 및 포인트 값이 기술되어 있는 경우에는, 명령 송신부(105)는, 메모리(1052) 상에 해당 동기 ID 및 포인트 값을 기입한다. 메모리(1052)는, 예를 들면, 동기 ID가 기억되는 영역(이하, 동기 ID 기억 영역이라고 함)(10521)과 포인트 값이 기억되는 영역(이하, 포인트 값 기억 영역이라고 함)(10522)이 확보되어 있고, 이에 따라, 메모리(1052)에는, 도 19에 도시한 바와 같이, 각 관리부(102, 103, 104) 각각에 대하여 동기 ID와 포인트 값이 대응되어 기억된다.
그리고, 명령 송신기(1051)는, 이 포인트 값에 기초하여, 다음에 계속해서 입력되는 데이터 열의 각 제어부(109, 110, 111)로의 출력을 관리하고 있다. 구체적으로는, 다음과 같이 관리하고 있다.
명령 송신기(1051)는, 메모리(1052)의 포인트 값 기억 영역(10522)을 조사하여, 포인트 값이 기억(혹은 저장)되어 있는 경우에는, 해당 포인트 값의 총계가 소정 수로 되는 100으로 되는지의 여부를 판별한다.
동기 커맨드인 경우에는, 각 관리부(102, 103, 104)로부터 출력된 포인트 값은, 그 총계가 100이 되도록 이루어져 있다. 즉 예를 들면, 총계가 100이 되도록, 포인터(1)가 20, 포인트 값(2)이 10, 포인트 값(3)이 70으로 되어 있다.
명령 송신기(1051)는, 포인트 값의 총계가 100으로 된 경우에는, 도 18에 도시한 바와 같이, 데이터(11), 데이터(21), 데이터(31), 데이터(12), 데이터(22), …와 같이, 1개로 되는 데이터 버스(122)에 적합하도록 재배치(혹은 세트)하여, 후단의 각 제어부(109, 110, 111)로 출력한다. 또한, 예를 들면, 데이터 버스(122)를 사용한 데이터 열의 그 출력 타이밍에 대해서는, 각 관리부(102, 103, 104)로부터 출력된 단위로 데이터를 동기하여 행한다. 즉 예를 들면, 도 18에 도시한 바와 같이, 데이터(11), 데이터(21) 및 데이터(31)를 시간 t의 타이밍에서 출력하고, 또한, 데이터(12), 데이터(22) 및 데이터(32)를 시간 t+1의 타이밍에서 출력하며, 또한, 데이터(13), 데이터(23) 및 데이터(33)를 시간 t+2의 타이밍에서 출력한다.
이와 같이, 명령 송신부(105)에 의해, 포인트 값의 총계가 100으로 된 시점에서 동기된 각 데이터가 데이터 버스(122)를 통해, 각각 대응되는 후단의 조인트각 제어부(106), LED 발광 제어부(107) 및 음 발생 제어부(108)에 입력된다.
이상과 같이, 명령 송신부(105)에서의 처리가 실행되고 있다. 도 20에는 명령 송신부(105)에서의 처리의 흐름을 흐름도로서 도시하고 있다.
명령 송신부(105)는, 우선, 단계 S1에서 명령의 수신 대기 또는 인터럽트 대기에 있는 경우에 있어서, 인터럽트 요구가 있었을 때는, 단계 S2에서 인터럽트용의 처리로 들어가고, 단계 S4로 진행한다. 한편, 명령 송신부(105)는, 단계 S1의 상태에서, 명령(관리부로부터 출력된 데이터 열 등)이 송신되어 온 경우에는, 명령의 수신 처리를 행한다. 명령 송신부(105)는, 예를 들면, 송신되어 온 데이터 열을 버퍼링한다. 그리고, 명령 송신부(105)는 단계 S4로 진행한다.
명령 송신부(105)는, 단계 S4에서, 동기 데이터가 송신 대기 상태에 있는지의 여부를 판별하고, 동기 데이터가 송신 대기 상태인 경우에는 단계 S7로 진행하고, 동기 데이터가 송신 대기 상태가 아닌 경우에는 단계 S5로 진행한다.
명령 송신부(105)는, 단계 S5에서, 명령에 동기 데이터를 나타내는 일련 번호가 붙어 있는지의 여부를 판별한다. 여기서, 일련 번호는 상술한 동기 ID이다. 또한, 이 단계 S5에서의 판별 처리는, 상술한 단계 S3에서 명령(데이터 열 등)을 수신한 경우에 이루어지는 처리이다.
명령 송신부(105)는, 이 단계 S5에서, 명령에 동기 데이터를 나타내는 일련 번호가 붙어 있는 경우에는 단계 S6으로 진행하고, 명령에 동기 데이터를 나타내는일련 번호가 붙어 있지 않은 경우에는 단계 S10으로 진행한다.
명령 송신부(105)는, 단계 S6에서, 메모리(1052)의 플래그 영역에 명령에 부가되어 온 일련 번호와 포인트 값을 기술하고, 단계 S7로 진행한다.
단계 S7은, 상술한 단계 S4에서 동기 데이터가 송신 대기 상태인 경우에도 진행하는 단계로, 명령 송신부(105)는, 이 단계 S7에서, 플래그 영역에서의 다른 영역에 동일한 일련 번호가 있는지의 여부를 판별한다. 여기서, 명령 송신부(105)는, 플래그 영역에서의 다른 영역에 동일한 일련 번호가 붙어 있는 경우에는, 단계 S8로 진행하고, 플래그 영역에서의 다른 영역에 동일한 일련 번호가 붙어 있지 않은 경우에는 단계 S1로 되돌아간다.
명령 송신부(105)는, 단계 S8에서, 동일한 일련 번호가 붙어 있는 영역에 대응되는 포인트 값(point(x))의 총계가 100인지의 여부를 판별한다. 명령 송신부(105)는, 그 총계가 100인 경우에는 단계 S9로 진행하고, 총계가 100이 되지 않는 경우에는 단계 S1로 되돌아간다.
명령 송신부(105)는, 단계 S9에서, 그 밖의 버스 컨트롤러에 인터럽트 처리의 허가를 요구하고, 단계 S10에서, 데이터 버스(122)를 통해 각 제어부(106, 107, 108)로의 데이터 열의 송신을 개시한다.
그리고, 명령 송신부(105)는, 이와 같이 데이터 열을 각 제어부로 송신하는 한편, 단계 S11에서, 버퍼링한 명령이 있는지의 여부를 판별한다. 명령 송신부(105)는, 버퍼링한 명령이 있는 경우에는 단계 S4로 진행하고, 버퍼링한 명령이 없는 경우에는 단계 S1로 되돌아간다.
이상과 같이 명령 송신부(105)에서 처리가 실행되고 있다. 그리고, 이러한 처리에 의해 명령 송신부(105)로부터의 데이터가 입력된 각 제어부(106, 107, 108)는, 해당 입력된 데이터에 기초하여, 모터(109), LED(110) 및 스피커(111)를 제어한다. 각 제어부(106, 107, 108)에는, 동기된 타이밍에서 입력된 데이터에 기초하여, 각 모터(109), LED(110) 및 스피커(111)를 제어하고 있기 때문에, 결과적으로 실제의 로봇 장치(1)의 표출 동작으로 되는 모터(109)에 의한 움직임, LED(109)에 의한 발광 동작 및 스피커(111)의 음 출력이 동기된 것으로 된다.
또한, 상술한 바와 같이, 명령 송신부(105)로부터 동작 관리부(102)로의 송신 가능 신호의 출력 타이밍이, 초기 동작 완료에 대하여 지연되지 않고, 연속하여 동기 동작이 개시되게 하는 타이밍으로 되어 있기 때문에, 로봇 장치(1)는, 초기 동작에 연속하여 동기 동작을 표출하게 된다.
또한, 명령 송신기(1051)에서 포인트 값의 총계가 100으로 된 경우에는, 상술한 바와 같이, 각 모터(109), LED(110) 및 스피커(111)가 동기하여 동작되게 되지만, 명령 송신기(1051)에서 포인트 값의 총계가 100으로 되지 않는 경우에는, 데이터 열이 소위 입력 대기 상태로 된다. 이러한 동기 커맨드의 대기 상태에서, 로봇 장치(1)는 독립 커맨드를 실행할 수도 있다. 구체적으로는 다음과 같은 처리 순서에 의해 실현된다.
커맨드 제어부(101)에, LED(110)나 스피커(111)를 움직임 동작에 동기시키지않고 독립적으로 동작시키기 위한 커맨드가 입력된 경우, 커맨드 제어부(101)에 의한 데이터베이스 DB1을 참조 결과로서, 독립 커맨드가 후단의 발광 패턴 관리부(103) 혹은 음 파형 관리부(104)로 출력된다. 또한, 이하, 커맨드 제어부(101)로부터 발광 패턴 관리부(103) 및 음 파형 관리부(104)에 각각 독립 커맨드가 입력되는 경우로서, 또한 그 각 독립 커맨드의 내용이 LED(110)와 스피커(111)에 대해서도 독립 동작으로 되는 정보로 이루어지는 경우를 설명한다. 또한, 독립 커맨드인 경우에는, 커맨드 제어부(101)는, 동기 커맨드의 경우와는 달리, 해당 독립 커맨드에 동기 ID나 포인트 값을 부가하지 않고 출력한다.
발광 패턴 관리부(103)에서는, 발광 패턴 생성기(1031)가 데이터베이스 DB4를 참조하여, 입력된 독립 커맨드에 대응되는 데이터 열을, 명령 송신부(105)로 출력한다. 마찬가지로, 음 파형 관리부(104)에서는, 음 파형 발생기(1041)가 데이터베이스 DB5를 참조하여, 입력된 독립 커맨드에 대응되는 데이터 열을, 명령 송신부(105)로 출력한다.
여기서, 이와 같이 각 관리부(103, 104)로부터 데이터 열이 명령 송신부(105)로 출력되지만, 이들 데이터 열이 동기 커맨드에 의한 것이 아니기 때문에, 데이터 열에는 동기 ID나 포인트 값이 부가되어 있지 않다.
명령 송신부(105)에서는, 입력되는 데이터 열의 헤더 영역을 보고 동기 ID가 없으면, 독립 커맨드인 것을 인식하여, 그대로 해당 데이터 열을 데이터 버스(122)에 세트하여 LED 발광 제어부(107) 및 음 발생 제어부(108)로 출력한다. 이러한처리는, 동기 ID 혹은 포인트 값이 부가되어 있지 않은 데이터 열이 입력된 경우에는, 동기 커맨드에 관련되는 데이터 열의 경우에서 이루어지도록 한 포인트 값을 감시하지 않고, 그대로 해당 독립 커맨드에 관련되는 데이터 열을 대응되는 후단의 제어부로 출력한다고 하는 명령 송신부(105)의 기능에 의해 실현된다.
이에 따라, 예를 들면 동기 커맨드에 기초하는 데이터 열에 대해서는, 포인트 값의 총계가 100으로 될 때까지, 데이터 열이 소위 입력 대기 상태로 되어 있지만, 명령 송신부(105)는, 독립 커맨드에 관련되는 데이터 열을 데이터 버스(122)에 세트하여 LED 발광 제어부(107) 및 음 발생 제어부(108)로 출력하게 된다. 즉, 독립 커맨드에 관련되는 데이터 열이 동기 커맨드에 관련되는 데이터 열에 우선되어, LED 발광 제어부(107) 및 음 발생 제어부(108)로 출력된다.
LED 발광 제어부(107)에서는, 데이터 버스(122)를 통해 입력되는 데이터 열에 기초하여, LED(110)의 발광 동작을 제어한다. 또한, 음 발생 제어부(108)에서는, 데이터 버스(122)를 통해 입력되는 데이터 열에 기초하여, 스피커(111)의 출력을 제어한다.
이러한 처리에 의해, 로봇 장치(1)는, 앉은 자세로부터 선 자세로 천이하는 초기 동작을 실행하고 있는 동안에도, 독립 커맨드로서의 LED(110)의 발광 동작이나 스피커(111)로부터 음 출력을 행할 수 있게 된다.
이상으로부터, 본 발명을 적용한 로봇 장치(1)에서는, 구체적으로는, 도 21에 도시한 바와 같은 처리를 실현한다.
로봇 장치(1)는, 도 21에 도시한 바와 같이, 앉은 자세로부터 선 자세로 천이하는 초기 동작을 종료한 후, 움직임 동작에 동기시켜, LED(110)에 의해 발광 동작을 행하고, 또한 스피커(111)에 의해 음 출력을 행할 수 있다. 또한, 각 구성 부분을 연결하는 데이터 버스가 데이터에 의해 로크되어 있지 않기 때문에, 소위 항상 프리 상태로 되어, 독립 커맨드에 관련되는 예를 들면 LED(110)에 의한 발광 동작이나 스피커(111)에 의한 음 출력을 실행할 수 있다.
또한, 상술한 실시 형태에서는, 독립 커맨드의 내용이 LED(110)와 스피커(111) 각각의 동작을 독립시켜 행하는 경우에 대하여 설명하고 있지만 이에 한정되는 것은 아니다. LED(110)와 스피커(111)와의 동기 동작을, 초기 동작에 독립시켜 실행할 수도 있다. 즉, 상술한 독립 커맨드는, 다른 커맨드로부터 본 경우에 독립되어 있는 커맨드로서, 상대적인 의미에서 독립된 커맨드라고 말할 수 있다.
커맨드 제어부(101)는, 이러한 독립된 커맨드로서, 동기 동작의 내용을 나타내는 커맨드(이하, 독립 동기 커맨드)를, 발광 패턴 관리부(103) 및 음 파형 발생부(104)로 출력한다.
또한, 이 때, 커맨드 제어부(101)는, 이러한 각 독립 동기 커맨드에 대해서는 동기 ID 및 포인트 값을 부가한다. 또한, 동기 커맨드가 이미 출력되어 있는 경우에는, 각 독립 동기 커맨드에 부가하는 동기 ID를, 동기 커맨드에 부가한 동기 ID와 다른 것으로 한다.
발광 패턴 관리부(103) 및 음 파형 관리부(104)는 각각, 입력된 독립 동기 커맨드에 대응되는 데이터 열을 명령 송신부(105)로 출력한다.
명령 송신부(105)에서는, 명령 송신기(1051)에, 발광 패턴 관리부(103) 및 음 파형 관리부(104)로부터 출력된 동기 ID, 포인트 값, 데이터 열이 입력된다.
그리고, 명령 송신부(105)는, 입력된 정보 내의 헤더 영역에 기술되어 있는 동기 ID와 포인트 값을, 메모리(1052) 상의 동기 ID 기억 영역(10521) 및 포인트 값 기억 영역(10522)에서 대응시켜 기억한다. 그리고, 명령 송신부(105)는, 동기 ID 기억 영역(10521)에 기억되어 있는 동일한 동기 ID에 대응되는 포인트 값을 포인트 값 기억 영역(10522)으로부터 판독하여, 그 포인트 값의 총계를 구하고, 그 총계가 소정의 값으로 된 시점에서, 해당 동기 ID에 관련되는 데이터 열을, LED 발광 제어부(107) 및 음 발광 제어부(108)에 동기하여 출력한다.
여기서, 독립 동기 커맨드에 관련되는 데이터의 출력 조건을 규정하는 포인트 값의 총계로 되는 소정의 값으로서는, 「10」 등과 같이, 초기 동작에 이어서 실행되는 동기 커맨드에 대한 소정의 값으로 되는 100과 다른 값으로 할 수도 있다. 이 경우, 커맨드 제어부(101)에서는, 독립 동기 커맨드에 대해서는, 총계가 10으로 되도록 각 독립 동기 커맨드에 포인트 값을 부가한다. 예를 들면, LED(110)의 동작에 관련되는 독립 동기 커맨드에는 4의 포인트 값을 부가하고, 스피커(111)의 동작에 관련되는 독립 동기 커맨드에는 6의 포인트 값을 부가한다. 이에 따라, 명령 송신부(105)는, 동기 ID가 동일한 포인트 값의 총계가 10으로 된 경우에는, 그 동기 ID에 대응되는 독립 동기 커맨드에 관련되는 데이터 열을, LED발광 제어부(107) 및 음 발광 제어부(108)에 동기하여 출력하게 된다.
LED 발광 제어부(107) 및 음 발생 제어부(108)는, 입력된 데이터에 기초하여, LED(110) 및 스피커(111)를 제어한다. LED 발광 제어부(107) 및 음 발생 제어부(108)는, 동기된 타이밍에서 입력된 데이터에 기초하여, LED(110) 및 스피커(111)를 제어하고 있기 때문에, 결과적으로 실제의 로봇 장치(1)의 표출 동작으로 되는 LED(109)에 의한 발광 동작 및 스피커(111)의 음 출력이 동기된 것으로 된다. 그리고, 이러한 동작이 자세로 되는 초기 동작과 함께 표출되게 된다.
다음으로, 초기 동작으로부터 동기 동작을 연속하여 실행하는 것을 가능하게 하는 명령 송신부(105)로부터의 송신 가능 신호의 출력 타이밍을 설명한다.
예를 들면, 모터(109)가 동작되어 초기 동작이 종료된 단계에서, 명령 송신부(105)로부터 그 취지를 나타내는 송신 완료 신호를 동작 관리부(102)에 대하여 발행한 경우에는, 동작 관리부(102)나 커맨드 제어부(101) 등의 각 구성부가 그 발행 타이밍으로부터 동기 동작을 위한 처리를 개시하기 때문에, 도 22에 도시한 바와 같이, 최종적으로 명령 송신부(105)로부터의 데이터 버스(122)로의 데이터(동기 데이터)의 송신이, 송신 완료 신호의 발행으로부터 지연되어 개시되는, 즉 초기 동작의 종료 시간으로부터 지연되어 개시되게 된다.
또한 이러한 경우에 있어서, 각 관리부(102, 103, 104)로부터 명령 송신부(105)로의 데이터 열의 입력이 대략 동시에 이루어지면 되지만, 예를 들면, 상술한 도 22에 도시한 바와 같이, 음 파형 관리부(104)로부터의 데이터의 입력이 지연될 때도 있다. 이러한 경우, 명령 송신부(105)는, 상술한 바와 같이 포인터의총계가 100으로 될 때까지 후단의 각 제어부(106, 107, 108)로의 데이터의 송신을 개시하지 않기 때문에, 도 23에 도시한 바와 같이, 최대로 음 파형 관리부(104)로부터의 데이터의 입력이 있을 때까지의 시간만큼 데이터 버스(122)를 통해 행하는 각 제어부(106, 107, 108)로의 송신을 대기하게 된다. 이에 따라, 로봇 장치(1)의 동작에는, 그 대기 시간만큼 동작되지 않는 공백 시간이 생기게 된다.
이러한 이유로, 명령 송신부(105)로부터 동작 관리부(102)에 대하여, 송신 가능을 알리는 송신 가능 신호를 발행하도록 하여, 그 송신 가능 신호의 발행 타이밍을, 도 24에 도시한 바와 같이, 명령 송신부(105)에서의 데이터 수신 지연 예상 시간분의 남은 데이터로 된 타이밍으로서 결정한다.
즉, 그 타이밍은, 동작 관리부(102)나 커맨드 제어부(101) 등의 각 구성부가 그 발행 타이밍으로부터 동기 동작을 위한 처리를 개시하는 것 등에 의한 해당 명령 송신부(105)로의 동기 동작을 위한 데이터의 수신 지연을 고려한 타이밍이다. 예를 들면, 이러한 송신 가능 신호의 발행 타이밍의 정보는, 초기 동작을 실행시키기 위한 동기 준비 커맨드에 부가되어 있고, 명령 송신부(105)는, 동기 준비 커맨드에 부가되어 온 발행 타이밍의 정보에 기초하여 송신 가능 신호를 송신한다.
이러한 송신 가능 신호를 상술한 바와 같은 소정 타이밍으로서 명령 송신부(105)로부터 상위의 동작 관리부(102)로 출력함으로써, 로봇 장치(1)는, 초기 동작 완료로부터 지연되지 않고, 연속하여 동기 동작을 실행할 수 있게 된다.
또한, 상당한 시간 여유를 갖고, 명령 송신부(105)로부터 송신 가능 신호를 송신하는 것도 생각할 수 있지만, 명령 송신부(105)는, 초기 동작 중인 경우에는그 여유를 갖는 시간분의 각 관리부(102, 103, 104)로부터 송신되어 오는 데이터를 메모리 상에 보유할 필요가 있어, 메모리를 효율적으로 사용할 수 없게 된다. 이러한 이유로, 이상적으로는, 초기 동작에 연속하여 동기 동작이 개시되는 타이밍으로서, 명령 송신부(105)로부터 송신 가능 신호를 발행하는 것이 바람직하고, 이에 따라 메모리의 유효 이용을 도모할 수 있게 된다.
또한, 상술한 실시 형태에서는, 도 17에 도시한 바와 같이, 로봇 장치(1)의 구성에서, 명령 송신부(105)와 각 제어부(106, 107, 108)가 1개의 데이터 버스(122)에 의해 접속되어 있는 경우를 설명하였다. 이에 따라, 명령 송신부(105)에 대해서도 그와 같은 구성에 적합하도록 구성되어 있다. 그러나, 이와 같은 구성으로 되는 것에 한정되는 것이 아니라, 도 25에 도시한 바와 같이, 명령 송신부(130)와 각 제어부(106, 107, 108)를 독립적으로 접속하는 3개의 데이터 버스(124)로 구성할 수도 있다. 그리고, 이 경우, 명령 송신부(130)는 도 25 및 도 26에 도시한 바와 같이 구성된다. 그리고, 명령 송신부(130)는, 도 26 및 도 27에 도시한 바와 같이, 공유 메모리(134)를 구비하고 있다.
이러한 구성으로 된 명령 송신부(130)에서, 제1 명령 송신기(131)에, 동작 관리부(102)로부터 출력된 동기 ID, 포인트 값, 데이터 열이 입력되고, 또한, 제2 명령 송신기(132)에, 발광 패턴 관리부(103)로부터 출력된 동기 ID, 포인트 값, 데이터 열이 입력되며, 그리고, 제3 명령 송신기(133)에, 발광 패턴 관리부(104)로부터 출력된 동기 ID, 포인트 값, 데이터 열이 입력된다.
각 명령 송신기(131, 132, 133)는, 입력된 데이터 열에 부가되어 있는 포인트 값을 공유 메모리(134)에 기억한다. 공유 메모리(134)는, 도 27에 도시한 바와 같이, 동기 ID가 기억되는 동기 ID 기억 영역(1341)과 포인트 값이 기억되는 포인트 값 기억 영역(134)이 확보되어 있으며, 동기 ID와 포인트 값이 대응되어 기억 가능하게 되어 있다. 그리고, 공유 메모리(134)는, 각 명령 송신기(131, 132, 133)의 공유로 되어 있으며, 이에 따라, 각 명령 송신기(131, 132, 133)는, 다른 명령 송신기가 기입한 동기 ID나 포인트 값을 참조하는 것이 가능하게 되어 있다.
제1 내지 제3 각 명령 송신기(131, 132, 133)는, 이러한 공유 메모리(134)를 감시하여, 동일한 동기 ID에 대응하는 포인트 값의 총계가 100으로 된 경우, 즉, 모든 관리부(102, 103, 104)로부터의 동기 커맨드에 관련되는 데이터 열이 명령 송신부(130)에 입력된 경우에는, 그 타이밍에서 각각 대응되는 데이터 버스(1241, 1242, 1243)에 데이터 열을 세트하여, 각 제어부(106, 107, 108)로 송신한다.
또한, 총계가 100으로 되는지의 여부의 판별은, 예를 들면 제1 명령 송신기(131)에 그 판별 기능을 갖게 함으로써도 실현할 수 있고, 이 경우, 포인트 값 기억 영역(1341)에 포인트 값이 저장되어 그 총계가 100으로 되었을 때는, 제1 명령 송신기(131)가 제2 및 제3 명령 송신기(132, 133)에 그 취지를 통지한다. 이에 따라, 제1 내지 제3 명령 송신기(131, 132, 133)는, 그 통지의 타이밍에서 각각 대응되는 데이터 버스(1241, 1242, 1243)에 데이터 열을 세트하여, 각 제어부(106, 107, 108)로 송신한다.
이상과 같이, 명령 송신부(130)에서의 처리가 이루어진다. 도 28에는 명령 송신부(130)에서의 처리의 흐름을 흐름도로서 도시하고 있다. 이 명령 송신부(130)의 처리에서는, 특히 데이터 버스를 복수 이용하여 각 제어부(106, 107, 108)로 데이터를 송신하고 있는 것에 대응하고 있기 때문에, 여기서는 그 부분을 중심으로 설명한다. 또한, 도 20 및 도 28에서 동일 번호를 붙인 단계에 대해서는, 특별히 언급하지 않는 한 동일한 처리를 행하고 있다.
명령 송신부(130)는, 상술한 바와 같이 제1 내지 제3 명령 송신기(131, 132, 133)가 모두 참조 가능으로 되어 있는 공유 메모리(134)를 구비하고 있고, 이러한 이유로, 단계 S61에서, 공유 메모리(134)에 명령에 부가되어 있는 일련 번호와 포인트 값을 기술한다.
그리고, 명령 송신부(130)의 제1 내지 제3 명령 송신기(131, 132, 133)의 각각이, 단계 S71에서, 공유 메모리(134)의 다른 영역에 동일한 일련 번호가 붙어 있는지의 여부를 판별한다. 여기서, 제1 내지 제3 각 명령 송신기(131, 132, 133)는, 다른 영역에 동일한 일련 번호가 붙어 있는 경우에는 단계 S81로 진행하고, 다른 영역에 동일한 일련 번호가 붙어 있지 않은 경우에는 단계 S1로 되돌아간다.
제1 내지 제3 명령 송신기(131, 132, 133)의 각각은, 단계 S81에서, 동일한 일련 번호가 붙어 있는 영역에 대응되는 포인트 값(point(x))의 총계가 100인지의 여부를 판별한다. 제1 내지 제3 명령 송신기(131, 132, 133)의 각각은, 그 총계가 100인 경우에는, 단계 S91로 진행하고, 총계가 100이 되지 않은 경우에는 단계 S1로 되돌아간다.
제1 내지 제3 명령 송신기(131, 132, 133)의 각각은, 단계 S91에서, 버스 컨트롤러에 대응되는 데이터 버스(1241, 1242, 1243)에 인터럽트 처리의 허가를 요구하고, 단계 S101에서, 각 데이터 버스(1241, 1242, 1242)에 의해 대응되는 각 제어부(106, 107, 108)로의 데이터 열의 송신을 개시한다.
그리고, 명령 송신부(130)는, 이와 같이 데이터 열을 각 제어부로 송신하는 한편, 단계 S11에서, 버퍼링한 명령이 있는지의 여부를 판별한다. 명령 송신부(130)는, 버퍼링한 명령이 있는 경우에는 단계 S4로 진행하고, 버퍼링한 명령이 없는 경우에는 단계 S1로 되돌아간다.
이상과 같이 명령 송신부(130)에서 처리가 실행되고 있다. 그리고, 이러한 처리에 의해 명령 송신부(130)로부터의 데이터가 입력된 각 제어부(106, 107, 108)는, 입력된 데이터에 기초하여, 모터(109), LED(110) 및 스피커(111)를 제어한다. 각 제어부(106, 107, 108)에는, 동기된 타이밍에서 입력된 데이터에 기초하여, 각 모터(109), LED(110) 및 스피커(111)를 제어하고 있기 때문에, 결과적으로 실제의 로봇 장치(1)의 표출 동작으로 되는 모터(109)에 의한 움직임, LED(109)에 의한 발광 동작 및 스피커(111)의 음 출력이 동기된 것으로 된다.
이상과 같이, 본 발명을 적용함으로써, 로봇 장치는, 초기 동작이 실행되고 있는 동안에는, 동작에 대하여 프리 상태로 되는 LED나 스피커에 대해서는, 독립 커맨드를 실행할 수 있다. 또한, 로봇 장치에서는, 초기 동작이 실행되고 있는 동안에는, 데이터 버스 상에 동기 커맨드의 내용의 데이터 열이 송출되지 않는 것이 실현되어, 예를 들면, 이에 따라, 독립 커맨드가 발생한 경우에, 커맨드를 용이하게 소거하는 것이 가능해진다.

Claims (17)

  1. 동작을 표출시키는 복수의 동작 수단과,
    복수의 동작 수단의 동작을 제어하는 제어 수단
    을 포함하고,
    상기 제어 수단은, 선행하는 동작 수단에 의한 동작 완료 후에 연속하여, 후발 동작으로서 복수의 동작 수단에 의한 동기 동작을 시킬 수 있는 것을 특징으로 하는 로봇 장치.
  2. 제1항에 있어서,
    상기 제어 수단은, 동작의 인터럽트 요구가 있었을 때는, 상기 선행하는 동작과 함께, 해당 인터럽트 요구에 관련되는 동작을 시킬 수 있는 것을 특징으로 하는 로봇 장치.
  3. 제1항에 있어서,
    복수의 자세 상태 또는 동작 상태를 천이 가능하게 되어 있고,
    상기 선행하는 동작 수단에 의한 동작이, 상기 후발 동작을 개시하는 자세 상태 또는 동작 상태로의 천이를 위한 동작인 것을 특징으로 하는 로봇 장치.
  4. 제1항에 있어서,
    상기 제어 수단은, 상기 선행하는 동작 수단에 의한 동작 완료 예상 정보에 기초하여, 복수의 동작 수단에 의한 동기 동작을 개시시키는 것을 특징으로 하는 로봇 장치.
  5. 제1항에 있어서,
    상기 제어 수단은, 입력된 커맨드에 대응되는 출력 커맨드를 출력하는 커맨드 제어부와, 복수의 동작 수단에 대응하여 구비되며, 상기 커맨드 제어부가 출력한 출력 커맨드에 대응되는 동작 제어 데이터를 출력하는 동작 제어 데이터 변환부와, 각 동작 제어 데이터 변환부가 출력한 각 동작 제어 데이터의 송신 제어를 행하는 데이터 송신 제어부와, 상기 각 동작 수단에 대응하여 구비되며, 상기 데이터 송신 제어부가 출력한 동작 제어 데이터에 기초하여, 상기 동작 수단을 제어하는 복수의 동작 제어부를 포함하고,
    상기 데이터 송신 제어부는, 각 동작 제어 데이터 관리부로부터 출력된 각 동기용의 동작 제어 데이터에 대해서는, 동기하여 각 동작 제어부로 송신하는 것을 특징으로 하는 로봇 장치.
  6. 제5항에 있어서,
    상기 각 동기용의 동작 제어 데이터에는, 동기 정보가 부가되어 있고,
    상기 데이터 송신 제어부는, 부가되어 있는 상기 동기 정보에 기초하여, 해당 각 동기용의 동작 데이터를 동기하여 각 동작 제어부로 송출하는 것을 특징으로하는 로봇 장치.
  7. 제6항에 있어서,
    상기 동기 정보는, 적어도 동기 ID 및 포인트 값을 포함하고,
    각 포인트 값이, 상기 각 동기용의 동작 제어 데이터의 포인트 값을 총계했을 때에 소정의 값으로 되는 수이고,
    상기 데이터 송신 제어부는, 입력된 각 동작 제어 데이터에 부가되어 있는 상기 동기 ID가 일치하는 상기 포인트 값의 총계가 상기 소정 값으로 되었을 때, 해당 입력된 각 동작 제어 데이터를 동기하여 각 동작 제어부로 송신하는 것을 특징으로 하는 로봇 장치.
  8. 제6항에 있어서,
    상기 커맨드 제어부는, 상기 출력 커맨드가 동기 동작을 위한 동기 커맨드일 때는, 상기 데이터 송신 제어부로부터 출력된 완료 예상 정보에 기초하여, 동기 커맨드의 출력을 개시하고,
    상기 데이터 송신 제어부는, 선행하는 동작의 예상 완료 시각에 기초하여, 상기 완료 예상 정보를 출력하는 것을 특징으로 하는 로봇 장치.
  9. 제1항에 있어서,
    복수의 동작 수단은, 적어도 움직임 동작을 행하기 위한 움직임 동작 수단,발광 동작을 행하기 위한 발광 수단 및 음 출력을 행하기 위한 음 출력 수단인 것을 특징으로 하는 로봇 장치.
  10. 동작을 표출시키는 복수의 동작 수단을 포함하는 로봇 장치의 동작을 제어하는 로봇 장치의 동작 제어 방법에 있어서,
    선행하는 동작 수단에 의한 동작 완료 후에 연속하여, 후발 동작으로서 복수의 동작 수단에 의한 동기 동작을 시킬 수 있는 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
  11. 제10항에 있어서,
    상기 로봇 장치가 복수의 자세 상태 또는 동작 상태를 천이 가능하게 되어 있고,
    상기 선행하는 동작 수단에 의한 동작이, 상기 후발 동작을 개시하는 자세 상태 또는 동작 상태로의 천이를 위한 동작인 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
  12. 제10항에 있어서,
    상기 선행하는 동작 수단에 의한 동작 완료 예상 정보에 기초하여, 복수의 동작 수단에 의한 동기 동작을 개시시키는 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
  13. 제10항에 있어서,
    입력된 커맨드에 대응되는 출력 커맨드를 출력하는 커맨드 제어 공정과,
    상기 커맨드 제어 공정에서 출력된 출력 커맨드에 대응되는 동작 제어 데이터를 출력하는 동작 제어 데이터 변환 공정과,
    상기 동작 제어 데이터 관리 공정에서 출력된 각 동작 제어 데이터의 송신 제어를 행하는 데이터 송신 제어 공정과,
    상기 데이터 송신 제어 공정에서 출력된 동작 제어 데이터에 기초하여, 상기 동작 수단을 제어하는 복수의 동작 제어부를 포함하고,
    상기 데이터 송신 제어 공정에서는, 동작 제어 데이터 변환 공정에서 출력된 각 동기용의 동작 제어 데이터에 대해서는, 동기하여 각 동작 제어 공정으로 송신하는 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
  14. 동작을 표출시키는 복수의 동작 표출 수단과, 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치에 있어서,
    상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드를 출력하는 커맨드 제어 수단과,
    상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하고, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 명령 송신 제어 수단
    을 포함하고,
    상기 커맨드 제어 수단은, 상기 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고,
    상기 명령 송신 제어 수단은, 상기 ID와 상기 총수에 기초하여, 복수의 상기 동기 커맨드를 동기시켜 상기 동작 제어 수단으로 송신하는 것을 특징으로 하는 로봇 장치.
  15. 동작을 표출시키는 복수의 동작 표출 수단과 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치의 동작 제어 방법에 있어서,
    커맨드 제어 수단은, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여 출력하고,
    명령 송신 제어 수단은, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하고, 상기 ID와 상기 총수에 기초하여, 복수의 상기 동기 커맨드를 동기시켜 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
  16. 동작을 표출시키는 복수의 동작 표출 수단과, 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치에 있어서,
    상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기커맨드를 출력하는 커맨드 제어 수단과,
    상기 커맨드를 전송하는 복수의 버스와,
    상기 버스의 각각에 설치되며, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하여, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 복수의 명령 송신 제어 수단과,
    상기 복수의 명령 송신 제어 수단에 의한 액세스가 가능한 공유 메모리
    를 포함하고,
    상기 커맨드 제어 수단은, 상기 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고,
    상기 명령 송신 제어 수단은, 상기 ID와 상기 총수를 상기 공유 메모리에 저장하고, 해당 공유 메모리를 참조함으로써, 상기 버스를 통해, 복수의 상기 동기 커맨드를 동기시켜 상기 동작 제어 수단으로 송신하는 것을 특징으로 하는 로봇 장치.
  17. 동작을 표출시키는 복수의 동작 표출 수단과 상기 동작 표출 수단을 제어하는 복수의 동작 제어 수단을 포함하는 로봇 장치의 동작 제어 방법에 있어서,
    커맨드 제어 수단은, 상기 로봇 장치에 소정의 동작을 표출시키는 커맨드에 관련되는 복수의 동기 커맨드의 각각에 적어도 동기해야 할 커맨드의 ID와 해당 동기해야 할 커맨드의 총수를 나타내는 라벨을 붙여, 상기 동기 커맨드를 출력하고,
    상기 커맨드를 전송하는 복수의 버스의 각각에 설치되는 명령 송신 제어 수단은, 상기 커맨드 제어 수단으로부터 출력된 상기 동기 커맨드를 제어하고, 상기 ID와 상기 총수를 공유 메모리에 저장하고, 해당 공유 메모리를 참조함으로써, 상기 버스를 통해, 복수의 상기 명령 송신 제어 수단에 의한 액세스가 가능한 복수의 상기 동기 커맨드를 동기시켜, 상기 복수의 동작 제어 수단에 상기 동기 커맨드를 송신하는 것을 특징으로 하는 로봇 장치의 동작 제어 방법.
KR1020027007384A 2000-10-11 2001-10-11 로봇 장치 및 로봇 장치의 동작 제어 방법 KR20020067694A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000311318 2000-10-11
JPJP-P-2000-00311318 2000-10-11
PCT/JP2001/008954 WO2002030630A1 (fr) 2000-10-11 2001-10-11 Appareil robot et procede de commande du mouvement de l"appareil robot

Publications (1)

Publication Number Publication Date
KR20020067694A true KR20020067694A (ko) 2002-08-23

Family

ID=18791105

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020027007384A KR20020067694A (ko) 2000-10-11 2001-10-11 로봇 장치 및 로봇 장치의 동작 제어 방법

Country Status (4)

Country Link
US (1) US6697708B2 (ko)
KR (1) KR20020067694A (ko)
CN (1) CN1396856A (ko)
WO (1) WO2002030630A1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004001162A (ja) * 2002-03-28 2004-01-08 Fuji Photo Film Co Ltd ペットロボット充電システム、受取装置、ロボット、及びロボットシステム
JP4839838B2 (ja) * 2003-12-12 2011-12-21 日本電気株式会社 情報処理システム、情報処理方法および情報処理用プログラム
US8414350B2 (en) * 2008-08-18 2013-04-09 Rehco, Llc Figure with controlled motorized movements
JP5402233B2 (ja) * 2009-05-19 2014-01-29 株式会社安川電機 ロボット及び物品搬送システム
KR100968944B1 (ko) * 2009-12-14 2010-07-14 (주) 아이알로봇 로봇 동기화 장치 및 그 방법
JP2013058059A (ja) * 2011-09-08 2013-03-28 Sony Corp 情報処理装置、情報処理方法、及び、プログラム
US9823628B2 (en) * 2013-01-11 2017-11-21 Tecan Trading Ag Laboratory system
US10350763B2 (en) * 2014-07-01 2019-07-16 Sharp Kabushiki Kaisha Posture control device, robot, and posture control method
CN105680972A (zh) * 2016-01-20 2016-06-15 山东大学 机器人集群协同任务网络同步控制方法
CN109257668B (zh) * 2018-08-21 2020-10-13 广东思派康电子科技有限公司 一种自适应控制音效的音箱及其计算机可读存储介质
CN111267085A (zh) * 2018-12-04 2020-06-12 北京猎户星空科技有限公司 一种动作分子的执行方法及装置、设备和存储介质
CN111354361A (zh) * 2018-12-21 2020-06-30 深圳市优必选科技有限公司 一种情感交流的方法、系统及机器人

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6337552B1 (en) * 1999-01-20 2002-01-08 Sony Corporation Robot apparatus
JPH0782379B2 (ja) 1987-07-09 1995-09-06 横河電機株式会社 ロボット制御装置
JP3413694B2 (ja) 1995-10-17 2003-06-03 ソニー株式会社 ロボット制御方法およびロボット
JP3832517B2 (ja) 1996-07-05 2006-10-11 セイコーエプソン株式会社 ロボット用コントローラ及びその制御方法
JP3178393B2 (ja) * 1997-11-11 2001-06-18 オムロン株式会社 行動生成装置、行動生成方法及び行動生成プログラム記録媒体
JP3214476B2 (ja) 1998-12-22 2001-10-02 日本電気株式会社 ロボット、ロボット制御装置、制御方法、及びコンピュータ読取可能な記録媒体

Also Published As

Publication number Publication date
US6697708B2 (en) 2004-02-24
CN1396856A (zh) 2003-02-12
US20030078695A1 (en) 2003-04-24
WO2002030630A1 (fr) 2002-04-18

Similar Documents

Publication Publication Date Title
US8145492B2 (en) Robot behavior control system and method, and robot apparatus
US7076334B2 (en) Robot apparatus and method and system for controlling the action of the robot apparatus
KR100864339B1 (ko) 로봇 장치 및 로봇 장치의 행동 제어 방법
US7117190B2 (en) Robot apparatus, control method thereof, and method for judging character of robot apparatus
KR20030007533A (ko) 로봇 장치의 동작 제어 방법, 프로그램, 기록 매체 및로봇 장치
KR20030007713A (ko) 로봇 장치를 위한 동작 교시 장치 및 동작 교시 방법, 및기억 매체
US20020050802A1 (en) Robot apparatus
JP2005193331A (ja) ロボット装置及びその情動表出方法
JP2003039363A (ja) ロボット装置、ロボット装置の行動学習方法、ロボット装置の行動学習プログラム、及びプログラム記録媒体
KR20020067694A (ko) 로봇 장치 및 로봇 장치의 동작 제어 방법
JP2004283959A (ja) ロボット装置、その動作制御方法、及びプログラム
JP2001212782A (ja) ロボット装置及びロボット装置の制御方法
JP2006110707A (ja) ロボット装置
JP4296736B2 (ja) ロボット装置
JP2004298975A (ja) ロボット装置、障害物探索方法
WO2002030629A1 (fr) Appareil robot, systeme d&#34;affichage d&#34;information et procede d&#34;affichage d&#34;information
JP2002239952A (ja) ロボット装置、ロボット装置の行動制御方法、プログラム及び記録媒体
JP2004114285A (ja) ロボット装置及びその行動制御方法
JP2002205289A (ja) ロボット装置の動作制御方法、プログラム、記録媒体及びロボット装置
JP2002187083A (ja) ロボット装置及びロボット装置の動作制御方法
JP2001191279A (ja) 行動管理システム、行動管理方法及びロボット装置
JP2001157980A (ja) ロボット装置及びその制御方法
JP2005169567A (ja) コンテンツ再生システム、コンテンツ再生方法、コンテンツ再生装置
JP2001157979A (ja) ロボット装置及びその制御方法
JP2001157982A (ja) ロボット装置及びその制御方法

Legal Events

Date Code Title Description
WITN Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid