KR100717982B1 - 연산 처리 장치, 오브젝트간 통신 방법 및 로봇 - Google Patents

연산 처리 장치, 오브젝트간 통신 방법 및 로봇 Download PDF

Info

Publication number
KR100717982B1
KR100717982B1 KR1020007010145A KR20007010145A KR100717982B1 KR 100717982 B1 KR100717982 B1 KR 100717982B1 KR 1020007010145 A KR1020007010145 A KR 1020007010145A KR 20007010145 A KR20007010145 A KR 20007010145A KR 100717982 B1 KR100717982 B1 KR 100717982B1
Authority
KR
South Korea
Prior art keywords
information
software
robot
data
objects
Prior art date
Application number
KR1020007010145A
Other languages
English (en)
Other versions
KR20010041854A (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 소니 가부시끼 가이샤
Publication of KR20010041854A publication Critical patent/KR20010041854A/ko
Application granted granted Critical
Publication of KR100717982B1 publication Critical patent/KR100717982B1/ko

Links

Images

Classifications

    • 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/04Programme control other than numerical control, i.e. in sequence controllers or logic controllers
    • G05B19/042Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
    • G05B19/0426Programming the control sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23312Load program from attached device to control that device
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23389Modular program, each process has corresponding program module
    • 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/20Pc systems
    • G05B2219/23Pc programming
    • G05B2219/23432Select as function of different connected tools, each tool has its parameters
    • 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/32Operator till task planning
    • G05B2219/32137Configure, connect, combine different program modules
    • 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/32Operator till task planning
    • G05B2219/32161Object oriented control, programming
    • 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/33Director till display
    • G05B2219/33105Identification of type of connected module, motor, panel
    • 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/33Director till display
    • G05B2219/33125System configuration, reconfiguration, customization, automatic
    • 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/40Robotics, robotics mapping to robotics vision
    • G05B2219/40304Modular structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02PCLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
    • Y02P90/00Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
    • Y02P90/02Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10TTECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
    • Y10T74/00Machine element or mechanism
    • Y10T74/20Control lever and linkage systems
    • Y10T74/20207Multiple controlling elements for single controlled element
    • Y10T74/20305Robotic arm
    • Y10T74/20317Robotic arm including electric motor

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Automation & Control Theory (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Manipulator (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 연산 처리 장치, 오브젝트간 통신 방법 및 로봇에 관한 것으로, 예를 들면, 페트형 로봇에 적용하여, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있도록 한다. 또한 종래에 비하여 오브젝트의 독립성을 향상할 수 있도록 한다. 본 발명은 형태마다 보유된 부품 검출 결과에 대응하는 정보와, 현재의 형태에 따른 부품 검출 결과의 비교 결과에 기초하여, 형태에 따라서 소프트웨어를 변경한다. 또한 본 발명은 결합 정보에 기초하여, 데이터 교환 가능하게 오브젝트를 결합한다.
오브젝트, 로봇, 서비스 매니저, 결합 정보, 옵저버

Description

연산 처리 장치, 오브젝트간 통신 방법 및 로봇{Processor, method for communication between objects, and robot}
본 발명은 연산 처리 장치, 오브젝트간 통신 방법 및 로봇에 관한 것으로, 예를 들면, 페트형(pet-type) 로봇에 적용할 수 있다. 본 발명은 형태마다 보유된 부품 검출 결과에 대응하는 정보와, 현재의 형태에 따른 부품 검출 결과의 비교 결과에 기초하여, 형태에 따라서 소프트웨어를 변경함으로써, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있도록 한다. 또한 본 발명은 결합 정보에 기초하여, 데이터 교환 가능하게 오브젝트를 결합함으로써, 종래에 비하여 오브젝트의 독립성을 향상할 수 있도록 한다.
종래, 예를 들면, 페트형 로봇 등에 있어서는 오브젝트 지향에 따라 소프트웨어가 구성되도록 이루어지고, 오브젝트간 통신에 의해 여러가지 데이터를 처리하여, 예를 들면, 동물과 유사한 동작 등을 실행할 수 있도록 되어 있다.
그런데, 이러한 종류의 페트형 로봇에 있어서, 예를 들면, 발 등의 구성 부품을 필요에 따라서 교환하여 사용자가 원하는 형태로 설정할 수 있으면, 이러한 종류의 페트형 로봇을 한층 더 신체에 가까운 것으로 할 수 있다고 고려할 수 있다.
이 경우, 형태에 대응하여 소프트웨어를 간이하게 교환하는 것이 요구된다.
본 발명은 이상의 점을 고려하여 이루어진 것으로, 첫째로, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있는 로봇을 제안하고자 하는 것이다.
또한 이와 같이 발 등의 구성 부품을 필요에 따라서 교환하여 사용자가 소망하는 형태로 설정하는 경우, 전체의 동작을 제어하는 소프트웨어에 있어서는 오브젝트를 재구축하여, 형태의 변화에 대응하도록 소프트웨어를 변경하는 것을 고려할 수 있다.
그러나, 종래의 오브젝트 지향의 소프트웨어에 있어서는 오브젝트간의 명시적인 관계를 전제로 하여 설계되도록 되어 있음으로써, 오브젝트간의 의존성이 높다. 이로써 이와 같이 비교적 자유로운 형태의 변화에 대응하도록 소프트웨어를 변경하도록 하여도, 결국, 각 형태에 대응한 전용 소프트웨어의 개발이 필요하게 된다.
이러한 오브젝트간의 의존성을 저감하는 하나의 방법으로서, 예를 들면, 디자인 패턴(옵저버 패턴)에 의한 방법에 의해 소프트웨어를 개발하는 것을 고려할 수 있다(Erich Gamma 외 저, 오브젝트 지향에 있어서의 재이용을 위한 디자인 패턴, pp313-324). 즉 상기 디자인 패턴에 의한 방법에 있어서는 오브젝트(Object)를 서브젝트(Subject)와 옵저버(Observer)로 분류하는 동시에, 서브젝트에 옵저버를 등록함으로써, 이 등록에 기초하여 오브젝트간을 접속하고, 옵저버로부터 서브젝트에 각종 통지, 데이터를 송출하는 것이다.
이 경우, 서브젝트는 등록한 옵저버에 대하여, 순차 지정된 메소드(method 또는 update)를 호출하고, 옵저버에 데이터의 처리를 위임한다. 이것에 의해 이 디자인 패턴에 의한 방법에 있어서, 서브젝트는 설계시, 특정 오브젝트에 대하여 데이터를 송출한다고 하는 코딩을 하지 않고, 독립성이 높은 설계가 가능하게 된다.
그런데 이 방법의 경우에서도, 옵저버에 있어서는 특정 서브젝트에 등록하는 것이 필요하며, 이 오브젝트를 사전에 기술할 필요가 있다. 이로써 이 디자인 패턴에 의한 방법에 있어서는, 각 오브젝트의 독립성을 확보하는 점에서 실용상 아직 불충분한 문제가 있다.
이에 대해 이 수법을 사용하여 시각적인 툴을 작성함으로써 오브젝트의 독립성을 꾀하는 방법도 제안되어 있다(JIP 오브젝트 기술 연구회 저, Visua1 Age C ++ 입문 pp182-185). 그러나, 이 방법에 있어서는, 시각적인 툴에 의해 오브젝트의 접속을 지시한 후, 소스 코드를 자동 생성함으로써, 소프트웨어 구성을 변경하기 위해서 컴파일이 필요하게 되는 문제가 있다.
또한, 예를 들면, 특개평 10-28398호 공보에 제안되어 있는 바와 같이, 소위 프록시를 사용함으로써 오브젝트간 통신하는 방법도 고려할 수 있지만, 이 방법은 오브젝트의 독립성을 높이는 것은 아니다.
또한, 예를 들면, 특개평 10-171465호 공보에 개시되어 있는 클라이언트 서버 시스템의 명명 서비스의 방법을 이용하는 방법도 고려할 수 있다. 즉, 이 클라이언트 서버 시스템에는, 옵저버 패턴과 대비되는 소프트웨어 부품화 방법이 적용되어 있고, 이 방법은 CORBA(Common Object Request Broker Architecture)에서도 채용되어 있는 것이다.
그러나, 이 방법에 있어서도, 옵저버 패턴과 마찬가지로 옵저버가 서브젝트를 지정함으로써, 오브젝트의 독립성을 꾀하는 점에서 실용상 아직 불충분한 문제가 있고, 또한 재컴파일, 재링킹도 필요하게 되는 문제가 있다.
본 발명은 이상의 점을 고려하여 이루어진 것으로, 두번 째로, 종래에 비하여 오브젝트의 독립성을 향상할 수 있는 연산 처리 장치, 오브젝트간 통신 방법 및 로봇을 제안하고자 하는 것이다.
이러한 과제를 해결하기 위해서, 청구범위 제 1 항에 따른 발명에 있어서는, 로봇에 적용하여, 장착된 부품을 검출하여 부품 검출 결과를 출력하는 부품 검출 수단과, 부품을 교환하여 얻어지는 형태마다, 부품 검출 결과에 대응하는 정보를 보유하는 정보 보유 수단과, 부품 검출 결과와 정보 보유 수단에 보유된 정보의 비교 결과에 기초하여, 형태에 따라서 소프트웨어를 변경하는 소프트웨어 변경 수단을 구비하도록 한다.
이러한 과제를 해결하기 위해서, 청구범위 제 5 항에 따른 발명에 있어서는, 연산 처리 장치에 적용하여, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 이 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 한다.
또한, 청구범위 제 11 항에 따른 발명에 있어서는, 오브젝트간 통신 방법에 적용하여, 소정의 정보 제공 수단으로부터 제공되는 결합 정보에 기초하여, 데이터 교환 가능하게 오브젝트를 결합한다.
또한, 청구범위 제 17 항에 따른 발명에 있어서는, 로봇에 적용하여, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 한다.
또한, 청구범위 제 1 항에 따른 구성에 의하면, 장착된 부품을 검출하여 얻게 되는 부품 검출 결과와, 부품을 교환하여 얻어지는 형태마다, 부품 검출 결과에 대응하는 정보의 비교 결과에 기초하여, 형태에 따라서 소프트웨어를 변경함으로써, 부품의 변경에 따르는 형태의 변경에 대응하여 소프트웨어를 변경할 수 있고, 이로써 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있다.
청구범위 제 5 항에 따른 구성에 의하면, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 이 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비함으로써, 오브젝트에 있어서는 구체적인 결합 대상을 전혀 고려하지 않고 설계할 수 있고, 또한 이와 같이 하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로 인해 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
또한, 청구범위 제 11 항에 따른 구성에 의하면, 소정의 정보 제공 수단으로부터 제공되는 결합 정보에 기초하여, 데이터 교환 가능하게 오브젝트를 결합함으로써, 오브젝트에 있어서는 구체적인 결합 대상을 전혀 고려하지 않고 설계할 수 있으며, 또한 이와 같이 하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로써 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
또한, 제 17 항에 따른 구성에 의하면, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 함으로써, 구체적인 결합 대상을 전혀 고려하지 않고 각 오브젝트를 설계할 수 있으며, 또한 이와 같이 하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로써 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
도 1은 본 발명의 실시예에 따른 로봇을 도시한 사시도.
도 2는 도 1의 로봇의 구성을 도시한 블록도.
도 3은 4족형(the-four-legged type)에서의 소프트웨어 구조를 도시한 약선도.
도 4는 타이어형(wheel type)에서의 소프트웨어 구조를 도시한 약선도.
도 5는 4족형에서의 자세의 변화를 도시한 상태 전이도.
도 6은 입력과 상태의 관계를 도시한 도표.
도 7은 디자인 로봇의 처리 순서를 도시한 흐름도.
도 8은 디자인 파일의 기술을 도시한 도표.
도 9는 결합 정보를 도시한 도표.
도 10은 부팅 후에 있어서의 오브젝트 매니저, 가상 로봇, 디자인 로봇의 동작을 도시한 타임챠트.
도 11은 플러그 인, 플러그 아웃 등에 있어서의 오브젝트 매니저, 가상 로봇, 디자인 로봇의 동작을 도시한 타임챠트.
도 12는 옵저버와 서브젝트의 관계를 도시한 약선도.
도 13은 멀티 옵저버에 있어서의 옵저버와 서브젝트의 관계를 도시한 약선도.
도 14는 멀티서브젝트에 있어서의 옵저버와 서브젝트의 관계를 도시한 약선도.
도 15는 오브젝트 매니저와 옵저버, 서브젝트의 관계를 도시한 약선도.
도 16은 결합 정보를 수취한 경우에 있어서의 오브젝트 매니저의 동작을 도시한 타임챠트.
도 17은 두 스타트(DoStart) 이후의 시퀀스를 도시한 타임챠트.
도 18은 플러그 인, 플러그 아웃, 상태 변경에 있어서의 시퀀스를 도시한 타임챠트.
도 19는 결합 정보와 옵저버, 서브젝트의 관계의 설명에 제공하는 약선도.
도 20은 연상 기억 1의 기술을 도시한 도표.
도 21은 연상 기억 2의 기술을 도시한 도표.
도 22는 본 발명의 제 2 실시예에 따른 로봇의 타이어형에 있어서의 소프트웨어 구조를 도시한 약선도.
도 23는 오브젝트의 결합을 도시한 약선도.
도 24는 형태의 변경에 따른 결합 상태의 변화를 도시한 약선도.
도 25는 도 22의 로봇에 있어서의 기동시의 처리 순서를 도시한 타임챠트.
도 26은 도 25의 처리에 있어서의 초기화의 설명에 제공하는 약선도.
도 27은 도 25의 처리에 있어서의 스타트의 설명에 제공하는 약선도.
도 28은 도 25의 연속 타임챠트.
도 29는 도 28의 처리에 있어서의 오브젝트의 로드의 설명에 제공하는 약선도.
도 30은 도 28의 연속 타임챠트.
도 31은 도 30의 처리에 있어서의 커넥트의 설명에 제공하는 약선도.
도 32는 서비스 매니저에 있어서의 데이터를 도시한 도표.
도 33은 도 31의 연속의 설명에 제공하는 약선도.
도 34는 서비스 매니저에 있어서의 처리의 설명에 제공하는 약선도.
도 35는 오브젝트의 결합의 설명에 제공하는 약선도.
도 36은 도 19와의 대비에 의해 결합 정보와 옵저버, 서브젝트의 관계의 설명에 제공하는 약선도.
도 37은 도 28과의 대비에 의해 각 오브젝트의 결합을 도시한 약선도.
도 38은 도 30에 있어서의 스타트의 설명에 제공하는 약선도.
도 39는 도 22의 로봇에 있어서의 형태 변경시의 처리를 도시한 타임챠트.
도 40은 도 39의 처리에 있어서의 형태 변경의 통지를 도시한 약선도.
도 41은 도 39의 처리에 있어서의 정지 처리를 도시한 약선도.
도 42는 도 39의 연속 처리를 도시한 타임챠트.
도 43은 도 42의 처리에 있어서의 오브젝트의 분리를 도시한 약선도.
도 44는 도 43의 연속 처리를 도시한 약선도.
도 45는 도 42의 연속 처리를 도시한 타임챠트.
도 46은 형태의 변경에 따른 오브젝트의 변경을 도시한 약선도.
도 47은 형태 변경 후의 각 오브젝트의 관계를 도시한 약선도.
도 48은 서비스 매니저의 처리를 도시한 약선도.
도 49은 카피에 의한 오브젝트간 통신의 설명에 제공하는 약선도.
도 50은 공유 메모리에 의한 오브젝트간 통신의 설명에 제공하는 약선도.
도 51은 공유 메모리 감시의 설명에 제공하는 약선도.
도 52는 복수 데이터를 정리한 데이터 통신의 설명에 제공하는 약선도.
이하, 도면을 참조하여 본 발명의 일 실시예를 상술한다.
(1) 제 1 실시예의 구성
(1-1) 전체 구성
도 1은 본 발명의 실시예에 따른 로봇을 도시한 사시도이다. 이 로봇(1)은 소위 페트형 로봇이고, 전체가 개와 닮은 형상이며, 4개의 발로 보행할 수 있도록 되어 있다. 즉, 로봇(1)은 본체(2)에 이동 유닛(3)이 장착되고, 이 본체(2)가 머리부(2A)와 동체부(胴體部)(2B)로 구성된다.
머리부(2A)는 마이크(4), 터치 센서(5), 입체시(stereoscopic vision) 가능한 텔레비젼 카메라(6), 원격 제어에 따른 적외선 수신부(7) 등이 배치되고, 이들에 의해 각종 정보를 취득할 수 있도록 되어 있다. 또한, 머리부(2A)는 화상 표시부(9), 스피커(10)가 배치되고, 이들에 의해 여러가지 정보를 출력할 수 있도록 되어 있다.
동체부(2B)는 등 부분에 조작자(11)가 배치되고, 또한 꼬리에 상당하는 개소에 안테나(12)가 배치되도록 이루어지고, 이들을 통해 사용자의 조작을 검출할 수 있도록 되어 있다. 또한, 동체(2B)는 슬롯을 구비하고, 이 슬롯에 IC 카드를 장착하여 소프트웨어의 버젼 업 등을 실행할 수 있도록 되어 있다.
또한, 동체부(2B)는 머리부(2A)를 통해 입출력하는 각종 정보, 조작자(11) 등의 조작 정보를 처리하여 전체 동작을 제어하는 제어기(15), 각부에 전원을 공급하는 전원 유닛(14), 안테나(12)를 통해 각종 정보를 송수신하는 통신 유닛(16) 등이 배치되고, 하부에 배터리(17)가 배치되도록 되어 있다.
이에 대해 이동 유닛(3)은, 각각 관절에 상당하는 개소에 엑추에이터, 각도 검출 센서를 배치하여 이루어지는 4개의 발을 배치하여 형성되고, 본체(2)와 직렬 버스에 의해 접속되며, 본체(2)의 제어에 의해 동작하도록 되어 있다. 이로써 로봇(1)은 4발 보행에 의해 이동할 수 있도록 되어 있다.
또한, 이 이동 유닛(3)은 뒷발이 본체(2)로부터 분리될 수 있도록 되어 있다. 로봇(1)은 이 뒷발을 대신하여, 타이어를 구비한 이동 유닛을 장착할 수 있도록 되어 있다. 이로써, 상기 로봇(1)은 사용자의 기호에 따라서 4발에 의해 이동하는 형태(이하, 4족형이라 함)와, 타이어에 의해 이동하는 형태(이하, 타이어형이라 함)로 형태를 변경할 수 있도록 되어 있다.
도 2는 이 로봇(1)의 구성을 도시한 블록도이다. 로봇(1)에 있어서는, 처리 프로그램을 기록한 프로그램 미디어(20)가 주변 장치(21)를 통해 중앙 처리 유닛(22)에 접속되고, 이 중앙 처리 유닛(22)에 의해 프로그램 미디어(20)에 기록된 처리 순서를 실행하도록 되어 있다. 또한, 중앙 처리 유닛(22)은 주변 장치(21)를 통해 이동 유닛(3)의 각 엑추에이터, 센서, 또한 텔레비젼 카메라(6), 조작자(11) 등인 로봇 컴포넌트(24, 25, 26)와 접속되고, 이것에 의해 전체 동작을 제어할 수 있도록 되어 있다.
또한, 중앙 처리 유닛(22)은 마찬가지로, 주변 장치(21)를 통해 전원 유닛(14)을 구성하는 전원 제어용 1칩 마이크로컴퓨터(27)와 접속되고, 1칩 마이크로컴퓨터(27)의 동작을 제어하여 배터리(17)로부터 전체에 전원을 공급하며, 또한, 저전력 모드에서 배터리(17)를 대신하여 버튼 전지(29)로부터 전체의 전원을 공급하도록 되어 있다.
(1-2) 소프트웨어 구성
도 3은 로봇(1)의 4족형에 있어서의 소프트웨어 구성을 층으로 도시한 약선도이고, 도 4는 도 3과의 대비에 의해 타이어형에 있어서의 소프트웨어 구성을 도시한 약선도이다. 이 소프트웨어 구성에 있어서, 가장 하위층은 디바이스 드라이버층이고, 각종 디바이스 드라이버가 배치된다. 여기서 디바이스 드라이버는 이동 유닛(3)의 센서, 엑추에이터, 또한 머리부(2A) 등에 배치한 각종 로봇 컴포넌트 와의 사이에서 각종 정보를 입출력하고, 이들의 처리를 위한 소프트웨어 오브젝트를 구비하도록 되어 있다.
이 중, 배터리 매니저 디바이스 드라이버(배터리 매니저(DD))는 전원 유닛(14)의 1칩 마이크로컴퓨터(27)와의 사이의 데이터 통신에 의해 배터리(17)의 잔량을 검출하여 정기적으로 상위 로봇 시스템 소프트웨어에 통지한다. 또한, 중앙 처리 유닛(22) 등의 클록을 관리하고, 로봇 시스템 소프트웨어의 지시에 의해 이 클록의 주파수를 저감하는 동시에, 불필요한 디바이스의 동작을 정지하고, 이로써 전체 소비 전력을 저감한다.
또한, 로봇 직렬 버스 디바이스 드라이버(로봇 직렬 버스 DD)는 본체(2)에 배치된 직렬 버스의 마스터 제어용 하드웨어와의 사이의 데이터 통신에 의해, 직렬 버스에 접속된 이동 유닛(3)의 센서 정보 등을 수취하고 상위 로봇 시스템 소프트웨어에 통지하며, 또한 이와는 반대로 로봇 시스템 소프트웨어로부터 출력되는 엑추에이터의 제어 데이터, 오디오 신호 등을 각 디바이스에 송출한다.
또한, 로봇 직렬 버스 디바이스 드라이버는 시스템의 기동시, 직렬 버스에 접속된 디바이스의 변경(추가, 삭제)을 검출한다. 또한, 이 변경에 따른 디바이스 고유의 정보를 받아들임으로써, 로봇(1)의 현재의 형태를 나타내는 정보를 로봇 시스템 소프트웨어에 출력한다.
이 디바이스 드라이버층의 상위에는 로봇 시스템 소프트웨어가 배치된다. 여기서 로봇 시스템 소프트웨어는 가상 로봇, 디자인 로봇, 파워 매니저, 오브젝트 매니저 등의 소프트웨어 오브젝트로 구성된다.
이 중, 가상 로봇은 로봇 직렬 버스 디바이스 드라이버와의 사이의 데이터 통신에 있어서, 각 디바이스 고유의 포맷에 의한 데이터를 로봇 일반적인 포맷으로 변환 송수신한다. 구체적으로, 예를 들면, 모터 제어용 데이터에 관해서, 디바이스 고유의 포맷에 있어서는 전위차계(potentiometer)인 센서 출력을 아날로그 디지털 변환하여 얻어지는 10 비트에 의해 표현하는데 대해, 가상 로봇은 이 표현에 의한 데이터를 최하위 1 비트가 0.001도를 나타내는 데이터로 변환하여 로봇(1)에서의 일반적인 포맷으로서 출력한다. 또한, 가상 로봇은 이러한 포맷 변환에 의한 데이터의 송수신에 부가하여, 예를 들면, 텔레비젼 카메라(6)로부터 취득한 이미지 데이터를 상위 소프트웨어에 출력한다.
또한, 가상 로봇은 로봇 직렬 버스 디바이스 드라이버로부터 로봇(1)의 현재의 형태를 나타내는 정보를 수취하고, 이 정보를 정리한다. 이로써 가상 로봇은 로봇(1) 전체로 어떠한 로봇 컴포넌트가 어떠한 순서로 접속되어 있는지를 나타내는 결합 정보(CPC(Configurable Physica1 Component) Connection Information)를 관리하여, 이 결합 정보(CPC Connection Information)를 디자인 로봇에 통지한다.
또한, 가상 로봇은 직렬 버스에 접속된 디바이스로 변경이 있었던 경우, 디바이스 드라이버의 로봇 직렬 버스 디바이스 드라이버로부터 통지를 받고, 디자인 로봇에 통지한다.
디자인 로봇은 가상 로봇으로부터 결합 정보(CPC Connection Information)를 수취하고, 사전에 기록한 결합 템플릿 정보와 순차 비교함으로써, 현재의 로봇(1)의 형태에 적합한 템플릿을 선택한다. 또한, 디자인 로봇은 이 선택한 템플릿에 따라서, 상위 형태 의존 소프트웨어를 현재의 형태에 적합한 형태 의존 소프트웨어로 갱신하도록, 오브젝트 매니저에 지시한다.
또한, 이 실시예에 있어서, 결합 템플릿 정보는 디자인 파일에 디자인 데이터로서 기술되도록 되어 있다.
오브젝트 매니저는 디자인 로봇의 지시에 따라, 디자인 로봇으로부터 통지되는 오브젝트, 각 오브젝트의 결합에 관한 정보를 사용하여 형태 의존 소프트웨어를 현재의 형태에 적합한 형태 의존 소프트웨어로 갱신한다. 즉, 오브젝트 매니저는 형태 의존 소프트웨어를 구성하는 모든 오브젝트에 관해서, 동작의 정지, 오브젝트간 통신의 결합 해제, 오브젝트의 파괴, 자원의 개방을 지시한다. 또한, 새롭게 필요한 오브젝트의 로드, 초기화하며, 또한, 오브젝트간 통신을 위한 결합 구축, 이들 오브젝트의 기동을 지시한다. 또한, 여기서 오브젝트간의 접합이란, 오브젝트간에 데이터를 송수신하기 위한 결합을 의미한다.
파워 매니저는 배터리 매니저 디바이스 드라이버와의 사이에서 데이터 통신하고, 상위 소프트웨어(형태 독립 소프트웨어 또는 형태 의존 소프트웨어)의 지시에 따라, 배터리 매니저 디바이스 드라이버에 클록의 전환을 지시하고, 또한 오브젝트의 동작의 정지 등을 지시한다.
이 로봇 시스템 소프트웨어의 상위에는 형태 의존 소프트웨어가 배치되고, 또한, 그 상위에 형태 독립 소프트웨어가 배치된다. 여기서 형태 의존 소프트웨어는 이 로봇(1)의 형태에 따라서 변경되는 소프트웨어이고, 형태 독립 소프트웨어는 이것과는 반대로, 로봇의 형태에 관계없이 고정된 이 로봇(1)의 상위 소프트웨어이다. 이 때문에 형태 의존 소프트웨어는 로봇(1)의 형태에 의존한 각종 오브젝트가 존재한다. 이 실시예에 있어서는 형태 의존 소프트웨어의 변경에 의해 4족형과 타이어형으로 각각 형태에 적합한 소프트웨어를 전체로서 간이하게 구성할 수 있도록 되어 있다.
즉, 여기서 4족형에 있어서, 이 형태 의존 소프트웨어는(도 3), 이동 유닛(3)에 관련된 것으로서 명령 변환기, 모션 네트워크, 모션 리플라이, 워킹 패턴 제너레이터, 비전 등의 오브젝트로 구성된다.
이 중, 명령 변환기는 형태에 의존하지 않는 형태 독립 소프트웨어로부터의 명령을 로봇(1)의 형태에 적합한 명령으로 변환한다. 즉, 형태 독립 소프트웨어로부터 이동 유닛(3)에 관한 명령으로서, 각각 수면(Sleeping), 휴식(Rest), 기상(Wake up), 이동(Move)의 자세를 지시하는 명령이 입력되면, 명령 변환기는, 이 4족형에서, 이들 명령을 각각 수면 중(Sleeping), 앉음(Sittin g), 기립(Standing), 보행(Walking)의 각 자세를 지시하는 명령으로 변환한다.
모션 네트워크는 명령 변환기에 의해 출력되는 이들 자세를 나타내는 명령으로부터, 도 5에 도시한 천이에 따라서, 이 천이도의 화살표에 대응하는 오브젝트의 메소드(엔트리)를 기동한다. 즉 수면 중인 상태에서 보행의 명령이 입력된 경우, 앉음, 기립, 보행으로 자세를 순차 변화시키도록, 모션 리플라이 오브젝트의 대응하는 엔트리를 순차 기동한다. 또한 이 경우, 최후의 보행의 상태로 거슬러 도착하였을 때에는, 이 상태를 나타내는 자기 루프에 대응하는 워킹 패턴 제너레이터의 엔트리를 기동한다.
모션 리플라이는 모션 네트워크에 의한 엔트리의 기동에 의해, 대응하는 자세 변화용 관절 각도 지령치를 출력한다. 구체적으로, 모션 리플라이는 등록된 이산적인 관절 각도 지령치를 키 데이터터로서 보유하고, 이 키 데이터를 사용한 보간 연산 처리에 의해 일련의 각도 지령치를 출력한다.
워킹 패턴 제너레이터는 형태 독립 소프트웨어에 의해 지정되는 방향으로 이동하도록, 각 관절 각도 지령치를 계산하여 출력한다.
비전은, 예를 들면, 화상 처리용 오브젝트이고, 텔레비젼 카메라(6)로 취득한이미지 데이터를 가상 로봇 오브젝트로부터 수취하여 처리한다. 비전은 이것에 의해, 예를 들면, 적색의 물체를 식별하고, 이 로봇(1)을 기준으로 한 이 적색 물체의 위치, 외견상 크기를 검출하여 출력한다.
이에 대해 타이어형에 있어서, 형태 의존 소프트웨어는(도 4), 이동 유닛(3)에 관한 오브젝트로서, 4족형과 공통의 비전의 오브젝트, 이 타이어형에 특유한 명령 변환기, 모션 커맨더, 모션 리플라이(2), 휠 패턴 제너레이터의 오브젝트를 갖는다.
이 중, 명령 변환기는 4족형에서의 명령 변환기와 동일하게, 형태에 의존하지 않는 형태 독립 소프트웨어로부터의 명령을 로봇(1)의 형태에 적합한 명령으로 변환한다. 이 경우, 로봇(1)에 있어서는 타이어형인 것에 의해, 명령 변환기는 각각 수면(Sleep), 휴식(Rest), 기상(Wake up), 이동(Move)의 자세를 지시하는 명령을, 수면중(Sleeping), 휴식(Rest), 대기(Ready), 이동(Go)의 명령으로 변환한다.
모션 커맨더는 명령 변환기의 출력을 받아서, 타이어용 제어 명령과 관련하는 관절 각도 지령치를 생성한다. 즉, 모션 커맨더는 수면 중(Sleeping)인 명령이 입력된 경우, 관절 각도 지령치를 중립(neutral)으로 설정한다. 여기서 중립(neutral)에 있어서는, 전혀 모터를 구동, 제동하지 않는 상태이고, 이것에 의해 이동 유닛을 구성하는 양팔에 있어서는 아래로 늘어뜨린 상태로 유지되고, 또한 타이어에 있어서는 정지 상태로 유지된다.
이에 대해 휴식(Rest)의 명령이 입력된 경우, 모션 커맨더는 양팔에 있어서는 팔꿈치 부분에서 90도 구부려 앞으로 내밀도록, 또한 머리부(2A)에 있어서는 얼굴을 정면을 향하도록 관절 각도 지령치를 생성한다. 또한, 타이어는 정지한 채이다.
또한, 대기(Ready)의 명령이 입력된 경우, 모션 커맨더는 양팔에 있어서는 팔 꿈치를 늘려서 앞으로 내보내도록, 또한, 머리부(2A)에 있어서는 얼굴을 정면을 향하도록 관절 각도 지령치를 생성한다. 또한, 이 경우도 타이어는 정지한 채이다. 또한, 이동(Go)의 명령에 있어서는, 대기(Ready)의 상태와 마찬가지로 양팔을 유지한 채로, 타이어가 전진 방향으로 회전하도록 지령치를 출력한다.
모션 리플라이(2)는 모션 커맨더의 지시에 의해 타이어형에 고유의 동작에 관해서, 타이어 이외의 동작(예를 들면, 양팔의 동작)을 제어한다. 휠 패턴 제너레이터는 모션 커맨더의 제어에 의해 타이어의 제어 정보를 생성한다.
형태 독립 소프트웨어는 로봇(1)의 형태에 의존하지 않는 소프트웨어이고, 형태 설정 오브젝트 등을 갖는다. 여기서 형태 설정 오브젝트는 형태 의존 소프트웨어로부터 로봇(1)의 형태에 의존하지 않는 정보를 수취하고, 이 정보에 의해 로봇(1)의 형태에 의존하지 않는 상술한 바와 같은 로봇(1)의 자세를 나타내는 명령(수면 등)을 형태 의존 소프트웨어에 출력한다.
즉, 예를 들면, 비전 오브젝트로부터 통지되는 적색 물체의 유무와 그의 위치 정보에 기초하여, 1분 이상 적색 물체의 존재가 검출되지 않은 경우, 도 6에 도시된 바와 같이, 수면(Sleep)의 상태에 있어서는 그 상태를 유지하도록, 휴식(Rest)의 상태에 있어서는 수면(Sleep)으로, 기상(Wake up)의 상태에 있어서는 휴식(Rest)으로, 이동(Move)에 있어서는 기상(Wake up)의 상태로 천이하도록 명령을 발행한다.
또한 적색 물체가 소정치보다 작은 크기로 검출되고(로봇의 설정에 의한 값 10 이하), 이것이 10초 이상 계속된 경우, 수면(Sleep)의 상태에 있어서는 휴식(Rest)의 상태로, 휴식(Rest)의 상태에 있어서는 기상(Wake up)으로, 기상(Wake up)의 상태에 있어서는 이동(Move)으로 천이하도록 명령을 발행하고, 또한, 이동(Move)에 있어서는 이동(Move)을 계속하도록 명령을 발행한다.
또한, 적색 물체가 소정치 이상의 크기로 검출된 경우, 수면(Sleep)의 상태에 있어서는(Wake up)의 상태로 천이하도록, 휴식(Rest) 및 기상(Wake up)의 상태에 있어서는 이동(Move)으로 천이하도록, 또한 이동(Move)에 있어서는 이동(Move)을 계속하도록 명령을 발행한다.
이들에 의해 로봇(1)에서는 가장 상위 소프트웨어가 형태에 의존하지 않도록 형성되고, 이 형태에 의존하지 않는 소프트웨어와의 사이에서는 형태에 의존하지 않는 형식에 의해 데이터를 송수신하도록 되어 있다. 이로써 이 로봇(1)에서는 형태에 따라서, 이 형태에 의존하는 소프트웨어인 형태 의존 소프트웨어만을 변경하여, 형태에 따라서 소프트웨어를 간이하게 변경할 수 있도록 되어 있다.
(1-3) 형태 의존 소프트웨어의 변경
로봇(1)에 있어서, 이 형태 의존 소프트웨어는 디자인 로봇의 지시에 의한 오브젝트 매니저의 처리에 의해 갱신된다. 이 때 이 실시예에 있어서는, 형태 의존 소프트웨어를 구성하는 오브젝트의 로드, 언로드, 오브젝트간 통신을 위한 결합재구축에 의해 형태 의존 소프트웨어를 갱신한다.
이 때문에, 디자인 로봇은 가상 로봇으로부터 로봇(1)의 형태를 특정하는 결합 정보(CPC Connection Information)의 통지를 받아, 이 결합 정보(CPC Connection Information)에 기초하여 오브젝트 매니저에 형태 의존 소프트웨어의 갱신을 지시하는 동시에 필요한 정보를 제공한다.
또한, 가상 로봇에 있어서는, 하위층인 로봇 직렬 버스 디바이스 드라이버를 통해 직렬 버스에 접속된 각 디바이스의 정보를 취득하고, 이 정보로부터 결합 정보(CPC Connection Information)를 작성하여 디자인 로봇에 통지한다.
이 때문에, 이 로봇(1)에 있어서는 각 로봇 컴포넌트의 메모리에 소정의 정보가 기록되고, 로봇 직렬 버스 디바이스 드라이버를 통해 실행되는 데이터 통신에 의해, 가상 로봇(1)에 있어서 직렬 버스에 접속된 디바이스의 정보를 그 위치 정보와 함께 취득할 수 있도록 되어 있다.
여기서 로봇(1)에 있어서는, 직렬 버스에 접속되는 텔레비젼 카메라, 스피커, 마이크, 각종 엑추에이터, 센서 등이 기본적인 구성 요소(CPC Primitive)이고, 링크 상태로 설정된 이들 기본적인 구성 요소의 복수의 조합에 의해 각 부품(CPC Model)이 구성된다. 즉, 예를 들면, 부품인 1개의 발은 3개의 모터, 1개의 스위치에 의한 복수의 기본적인 구성 요소의 특정인 링크 상태로 구성된다.
로봇(1)에 있어서는, 이들 각 부품에 고유의 식별 데이터가 할당되고, 이 식별 데이터에 의해 직렬 버스에 접속된 각 구성 요소를 특정할 수 있도록 되어 있다. 또한, 이 식별 데이터는 부품을 작성한 제조 공장의 ID와 제품 번호에 대응하는 ID로 구성된다. 또한, 이 식별 데이터에 대응하도록, 각 구성 요소의 정보, 부품에 있어서의 각 구성 요소의 위치 정보가 부품 중에 있어서의 각 구성 요소의 링크 정보, 각 구성 요소의 속성 정보 등에 의해 설정되고, 이들 정보가 각 부품의 식별 데이터와 함께 각 부품의 메모리에 보유되도록 되어 있다. 또한, 이 실시예에서는 부품측에서 메모리 용량이 적은 경우에는 각 부품측에 식별 데이터만 기록되고, 구성 요소의 정보, 부품에 있어서의 구성 요소의 위치 정보는 본체(2)측에 보유하도록 되어 있다.
가상 로봇은 시스템 기동시, 디바이스의 변경시, 로봇 직렬 버스 디바이스 드라이버로부터 통지되는 이들 식별 데이터, 위치 정보 등에 의해, 트리 구조에 의한 직렬 버스를 순차 거슬러서, 각 기본적인 구성 요소(CPC Primitive)와 각 구성 요소의 결합의 순서를 나타내는 데이터 구조에 의해 결합 정보(CPC Connection Information)를 작성하여 디자인 로봇에 통지한다. 이와 같이 하는 것에 대해 가상 로봇으로부터 통지되는 결합 정보(CPC Connection Information)에 있어서는 형태에 대응하는 구성 요소 정보(CPC Primitive Location Information)로 구성된다.
디자인 로봇은 가상 로봇으로부터 통지되는 결합 정보(CPC Connection Information)를 기준로 하여 디자인 파일을 참조함으로써 현재의 로봇(1)의 형태에 대응하는 결합 템플릿(후술하는 라벨)을 선택한다. 또한, 디자인 로봇은 이 선택한 템플릿에 따라서, 현재의 형태에 적합한 형태 의존 소프트웨어에 대한 갱신을 오브젝트 매니저에 지시한다.
여기서 디자인 파일은 텍스트 데이터 형성의 기술이고, 로봇(1)의 형태마다, 각 부품의 구성 요소 정보(CPC Primitive Location Information)군에 대하여 라벨을 부가하여 기술된다. 또한, 구성 요소 정보(CPC Primitive Location info rmation)는 각 부품의 기본적인 구성 요소(CPC Primitive)와 각 구성 요소의 위치 정보(CPC Coodinate Locator)로 구성된다. 이 중, 위치 정보(CPC Coodinate Locator)는 로봇(1)에 설정된 기준 위치로부터의 좌표이고, 일반적인 링크 좌표계에 의해 표기되며, 좌표계 변환을 위한 회전 행렬과 위치 벡터의 종속 접속으로 구성되도록 되어 있다.
또한, 라벨은 대응하는 오브젝트의 특정, 이 오브젝트의 로드, 오브젝트간 통신의 구축에 필요한 데이터를 특정하는 것으로, 디자인 라벨(Design Label), 또는 디자인 라벨에 비하여 범용적인 이해 용이한 기술에 의한 가상 라벨(Virtual Label), 디자인 라벨(Design Label)과 가상 라벨(Virtual Label)의 복합형 라벨(Composite Label)이 적용된다. 또한, 시각적 라벨에 있어서는 디자인 로봇에 의해 디자인 라벨로 치환되어 이용에 제공되도록 되어 있다.
다음 식은 이 중 디자인 라벨의 기술을 나타낸 것이다. 디자인 라벨은 1개 이상의 구성 요소 정보(CPC Primitive Location Information) 또는 디자인 라벨(Design Label)로 구성된다.

Design Lable(
CPC Phmitive Location Information 또는 Design Label;
) …(1)
이에 대해 다음 식은 가상 라벨(Virtual Label)의 기술을 나타낸 것이다. 가상 라벨은 디자인 라벨(Design Label), 구성 요소(CPC Primitive), 구성 요소(CPC Primitive)의 위치 정보(CPC Coodinate Locator)로 구성된다.
Virtual Label(
Design Label:
CPC Primitive:
CPC Coodinate Locator:
) …(2)
이에 대해 다음식은 복합형 라벨(Composite Label)의 기술을 나타낸 것이다.

Composite label(
Composite Label;
or/and Design Labe1:
or/and Virtual Lable;
) …(3)
이렇게 함으로써, 디자인 로봇은 통지된 결합 정보(CPC Connection Information)에 의해 특정되는 구성 요소 정보(CPC Primitive Location Information)에 있어서, 특정되는 위치 정보(CPC Coodinate Locator)로부터 트리 구조의 선단측에 가상 라벨(Virtual Label) 내에서 정의된 위치 정보(CPC Coodinate Locator)가 존재하는 경우, 이 가상 라벨(Virtual Label)을 디자인 라벨(Design Label)로 치환하고, 또한 이와 같이 하여 정의한 디자인 라벨(De sign Label)을 유효한 것으로 설정한다.
이들에 의해 이 실시예에서는 결합 정보(CPC Connection Information)에 의해 이 디자인 파일을 액세스하여 현재의 로봇을 형태(4족형, 타이어형 등의 형태)를 특정할 수 있도록 되고, 또한 형태 의존 소프트웨어의 갱신에 필요한 각종 데이터를 취득할 수 있도록 되어 있다.
도 7은 상기 디자인 로봇의 처리 순서를 구체적으로 도시한 흐름도이다. 디자인 로봇은 가상 로봇으로부터 결합 정보(CPC Connection Information)가 통지되면, 단계 SP1로부터 단계 SP2로 이동하고, 이 결합 정보(CPC Connection Information)에 의해 디자인 파일을 액세스하고, 이것에 의해 현재의 로봇(1)의 형태를 특정한다.
계속해서 디자인 로봇은 단계 SP3으로 이동하고, 가상 로봇으로부터 통지된 결합 정보(CPC Connection Information)에 의한 구성 요소 정보(CPC Primitive Location Information)와 디자인 파일에 보유된 결합 정보(CPC Connection Information)에 의한 구성 요소 정보(CPC Primitive Location Information)를 비교한다.
계속해서 디자인 로봇은 단계 SP4로 이동하고, 이 비교 결과에 기초하여, 디자인 파일을 액세스하고, 현재의 형태에 대응하는 오브젝트, 오브젝트간 통신의 재구축에 필요한 데이터를 특정하는 디자인 라벨을 검출한다.
계속해서 디자인 로봇은 단계 SP5로 이동하고, 검출한 디자인 라벨로부터 결합 파일(Connection file)을 액세스하여, 라벨에 대응하는 결합 정보(Connection Data)를 검출함으로써, 대응하는 오브젝트의 특정, 오브젝트간 통신의 재구축에 필요한 데이터를 취득한다. 이렇게 함에 대해 결합 파일(Connection Fi1e)은 라벨과의 대응에 의해 결합 정보(Connection Data)를 기록한 파일이고, 결합 정보(Connection Data)는 대응하는 오브젝트의 특정, 오브젝트간 통신의 재구축에 필요한 데이터이다.
계속해서 디자인 로봇은 단계 SP6으로 이동하고, 이 결합 정보(Connection Data)를 오브젝트 매니저에 송출하여, 이것에 의해 형태 의존 소프트웨어의 갱신을 지시한 후, 단계 SP7로 이동하여 이 처리 순서를 종료한다.
도 8은 디자인 파일의 일부의 기술을 나타낸 도표이다. 이 디자인 파일에 있어서, DRX는 이 로봇(1)의 형태를 나타내고, 4Legged는 4족형의 형태인 것을 나타내는 기술이다. 또한, Head, RightFrontLeg, LeftFrontLeg, RightRearLeg, LeftRearLeg는 각각 머리부, 오른쪽 앞발, 왼쪽 앞발, 오른쪽 뒷발, 왼쪽 뒷발을 나타내고, 이것에 의해 제 1 문에서 4족형이 머리부, 오른쪽 앞발, 왼쪽 앞발, 오른쪽 뒷발, 왼쪽 뒷발로 구성되는 것이 특정된다.
또한 제 2 문에 있어서의 Wheel은 타이어형을 나타내고, 제 1 문과의 대비에 의해 이 제 2 문에서 타이어형이 머리부, 오른쪽 앞발, 왼쪽 앞발, 오른쪽 후륜, 왼쪽 후륜으로 구성되는 것이 특정된다. 또한 제 3 문에서는 머리부에 카메라 링크의 배치가 기술되고, 제 4 문에는 이 카메라 링크의 가상 라벨(Virtua1 Label)이 기술되도록 되고, 제 5 문 이후에서는 오른쪽 앞발, 왼쪽 앞발 등에 관해서, 위치 정보(CPC Coodinate Locator)가 트리 형식으로 기술되도록 되어 있다.
이에 대해, 도 9는 결합 정보(CPC Connection Information)의 일부의 기술을 나타내는 도표이다. 이 실시예에 있어서는 결합 정보도 디자인 파일과 마찬가지로 텍스트 데이터 형성에 의해 기술된다. 이 기술에 있어서, joint는 인터페이스를 나타내고, 이 부분이 다른 구성 요소와의 결합 개소인 것을 나타낸 것이다. 이 경우 제 2 행째로부터 제 5 행째까지의 기재에 의해, C0, C0, C0, C0, C0에 의한 5개의 허브 등을 통해 텔레비젼 카메라가 접속되어 있는 것이 판명된다.
이에 의해 이 도 9의 예에 의한 결합 정보(CPC Connection Information)에 있어서는 도 8에 관해서 상술한 기술인 4족형과 일치하는 것이 된다.
이에 대해 다음 식은 결합 파일(Connection file)의 일부의 기술을 나타내는 도표이다. 결합 파일은 텍스트 데이터 형성에 의해 기술되고, 이 기술에 있어서, 제 1 문 및 제 2 문은 각각 4족형 및 타이어형에서의 발 및 타이어에 대응하는 오브젝트와, 이 오브젝트에서의 오브젝트간 통신의 구축에 필요한 데이터가 기술된다.
즉, 제 1 문에 있어서는 서비스명으로서 오브젝트명인 MoNet와 데이터 형식 MoNetOutData, 서브젝트를 나타내는 S의 기술이 기술된다. 또한, 동일한 서비스명으로서 오브젝트명인 MoNetRep1ay, 데이터 형식 MoNetOutData 등이 기술되고, 마지막에 옵저버를 나타내는 O의 기술이 할당된다. 또한 계속되는 행에 있어서, 동일의 서브젝트 및 옵저버, 데이터 형식 등이 기술된다.

DRX 4Legged(
MoNet.MoNetOutData..S,MoNetReplay.MoNetOutData...O
MoNet.MoNetOutData..S,WalkingPatternGenerator.MoNetOutData...O
)
DRX Whell(
MotionConverter.MCData..S,MotionReplay2.MCData...O
MotionConverter.MCData..S,Whell.MCData..O
) …(4)
삭제
이것에 의해 이 도 8의 예의 경우, 디자인 로봇은 이 DRX 4Legged에 의한 제 1 문의 기술에 의해 결합 정보(Connection Data)(DRX 4Legged 이후의 괄호 기재의 기술)을 추출하여 오브젝트 매니저에 통지하고, 이것에 의해 이 실시예에서는 형태 의존 소프트웨어를 갱신하도록 되어 있다.
도 10은 오브젝트 매니저, 가상 로봇, 디자인 로봇에서의 부팅시의 처리를 도시한 타임챠트이다. 로봇(1)에 있어서는, 전원이 투입되면, 또는 리셋되면, 부팅의 처리를 개시한다. 여기서 로봇(1)에 있어서는, 각 오브젝트가 파일로부터 로드되어 형태 의존 소프트웨어가 구축되고, 이 때 각 오브젝트 매니저의 내부 변수가 초기화된다.
계속해서 오브젝트 매니저로부터 두 이니셜라이즈(DoInit)가 각 오브젝트에 송출되고, 이 두 이니셜라이즈(DoInit)에 의해 각 오브젝트의 조회용 엔트리(Entry)가 오브젝트 매니저 등에 등록된다. 이것에 의해 로봇 시스템 소프트웨어층에 있어서, 각 오브젝트간 통신이 구축된다.
계속해서 오브젝트 매니저로부터 두 스타트(DoStart)가 가상 로봇, 디자인 로봇에 순차 송출되고, 가상 로봇, 디자인 로봇이 동작을 개시한다. 이것에 의해 가상 로봇에 의해 결합 정보(CPC Connection Information)가 생성되고, 디자인 로봇의 요구에 의해 이 결합 정보(CPC Connection Information)가 디자인 로봇에 건네지고, 결합 정보(Connection Data)가 생성된다.
또한 이 결합 정보(Connection Data)가 오브젝트 매니저에 건네지고, 이 결합 정보(Connection Data)에 의해 형태 의존 소프트웨어가 구축된다.
이에 대해 셧다운에 있어서는, 오브젝트 매니저로부터 두 스톱(DoStop)이 각 오브젝트에 송출되고, 이 두 스톱(DoStop)에 의해 각 오브젝트에 있어서는 모든 요청에 대하여 에러를 통지하여 동작을 정지한다. 계속해서 오브젝트 매니저에 의해 두 디스트로이(DoDestroy)가 각 오브젝트로 송출되고, 이로써 각 오브젝트에 있어서는 사용하고 있던 소스를 개방하고, 또한 오브젝트 매니저에 등록한 엔트리를 말소하여 대기한다.
이로써 로봇(1)에 있어서는, 형태가 변경되어 시동된 경우라도, 이 변경된 형태에 적합한 소프트웨어에 의해 동작할 수 있도록 되어 있다.
이에 대해 소위 플러그 인(Plug-In), 플러그 아웃(Plug-Out)에 있어서는 도 11에 도시된 바와 같이, 오브젝트 매니저로부터 두 스톱(DoStop)이 각 오브젝트에 송출되고, 이 두 스톱(DoStop)에 의해 각 오브젝트에 있어서는 모든 요청에 대하여 에러를 통지하여 동작을 정지한다.
계속해서 오브젝트 매니저로부터 부팅시와 마찬가지로 순차 두 스타트(DoStart)가 가상 로봇, 디자인 로봇에 순차 송출되고, 가상 로봇에 의해 결합 정보(CPC Connection Information)가 생성되고, 이 결합 정보(CPC Connection Information)가 디자인 로봇에 건네져 결합 정보(Connection Data)가 생성되고, 이 결합 정보(Connection Data)에 의해 형태 의존 소프트웨어가 구축된다.
이로써, 로봇(1)에 있어서는 플러그 인(Plug-In), 플러그 아웃(Plug-out)에 의해 동적으로 형태가 변경된 경우라도, 이 변경된 형태에 적합한 소프트웨어에 의해 동작할 수 있도록 되어 있다.
또한, 배터리(17)가 소모된 경우 등에 있어서는 배터리 매니저로부터의 상태 변경 요구에 의해, 플러그 인(Plug-In), 플러그 아웃(Plug-0ut)의 경우와 마찬가지로, 두 스톱(DoStop), 두 스타트(DoStart)의 처리가 반복되고, 이것에 의해 배터리(17)가 소모된 경우에 있어서는 클록 주파수를 저감하는 동시에 불필요한 디바이스의 동작을 정지하여 버튼 전지(29)에 의해 동작하도록 상태가 변경되고, 이것과는 반대로 충전된 배터리(17)가 장착된 경우에 있어서는 클록 주파수를 증대하는 동시에 각 디바이스의 동작이 개시되어 배터리(17)에 의해 동작하도록 되어 있다.
(1-4) 오브젝트 매니저의 처리
오브젝트 매니저는 이와 같이 하여 실행되는 디자인 로봇으로부터의 통지에 의해 형태 의존 소프트웨어를 구성하는 오브젝트를 재구성하고, 이로써 형태 의존 소프트웨어를 갱신한다. 구체적으로, 오브젝트 매니저는 디자인 로봇으로부터의 통지에 의해 오브젝트를 로드, 언로드하는 동시에, 이들 언로드 및 로드에 대응하도록 오브젝트간 통신을 재구축하고, 이것에 의해 형태 의존 소프트웨어를 변경한다.
이 오브젝트간 통신을 구축했을 때에, 대응하는 오브젝트명 등이 오브젝트에 등록되어 있어야 하는 것으로 하면, 각 오브젝트의 독립성이 저해되어, 자유로운 형태에 대응하도록 오브젝트를 복수 종류 준비하는 것이 필요하게 된다. 이 때문에, 이 실시예에 있어서, 오브젝트 매니저는 디자인 로봇으로부터 출력되는 결합 정보(Connection Data)에 기초하여 오브젝트간 통신을 구축하고, 이것에 의해 오브젝트의 독립성을 담보한다.
또한, 이하의 설명에 있어서는, 로봇(1)에서의 구체적인 오브젝트명의 특정을 피하여 설명을 간략화한다. 또한, 오브젝트간 통신은 비동기에 의해 실행하는 것으로 한다.
즉, 도 12는 이 실시예에 따른 2개의 오브젝트간에 있어서의 오브젝트간 통신의 기본 구성을 도시한 약선도이다. 이 실시예에 있어서는 레디(Ready)와 노티파이(Notify)를 사용하여 오브젝트간 통신을 실행하고, 이것에 의해 오브젝트(이 예에서는 Object B)의 처리 능력 이상의 데이터를 송출하지 않도록 되어 있다.
즉, 도 12에 있어서, 오브젝트(A)는 오브젝트(A)의 맴버인 클래스 0의 서브젝트로부터 오브젝트(B)의 맴버인 0 옵저버 클래스에 대하여 데이터를 송출하고, 이것에 의해 오브젝트(B)의 메소드가 인보크(invoke)된다.
이 관계에 있어서, 서브젝트는 옵저버로부터 레디(Ready)의 신호가 송출되어 있는 경우에만 데이터를 송출한다. 또한, 레디(Ready)의 신호는 1회의 데이터에 관하여 1회 보낼 필요가 있다. 이것에 의해 옵저버측인 오브젝트(B)에 있어서는 수취한 데이터 처리의 완료를 기다려 계속해서 데이터를 수신할 수 있도록 되어 있다.
이에 대해, 도 13은 멀티 옵저버에서의 오브젝트간 통신의 기본 구성을 도시한 약선도이다. 이 경우, 서브젝트인 오브젝트(A)는 모든 옵저버에 대하여 데이터를 분배할 수 있으며, 또한 오브젝트 ID에 의해 특정되는 특정 옵저버에 대해서만 데이터를 분배할 수도 있다. 또한 이 실시예에 있어서는 이러한 멀티 옵저버의 상태에 있어서도, 레디(Ready)의 신호에 의해 대응하는 옵저버에 대하여 데이터를 송출한다.
각 오브젝트에 있어서는 오브젝트를 특정하는 오브젝트 ID, 메소드(method)를 특정하는 셀렉터 번호(selector)(메소드 번호)를 지정함으로써, 대응하는 메소드를 기동(entry)하여, 옵저버를 특정하여 원하는 데이터를 송출한다.
도 14는 소위 멀티서브젝트에서의 오브젝트간 통신의 기본 구성을 도시한 약선도이다. 이 경우, 오브젝트(A 및 B)가 서브젝트이고, 오브젝트(C)가 옵저버이다. 옵저버에 있어서는, 이와 같이 복수의 서브젝트로부터 각각 데이터를 수신할 수 있으며, 또한 데이터를 수신할 때마다 데이터를 처리하는 메소드가 인보크(invoke)되도록 되어 있다. 또한 옵저버는 서브젝트 ID에 의해 특정되는 특정 서브젝트에 대해서만 레디(Ready)의 신호를 송출하여 원하는 데이터를 선택적으로 입력할 수 있도록 되어 있다.
이 실시예에 있어서, 적어도 형태 의존 소프트웨어층이 속하는 오브젝트에 있어서는, 이들 도 12 내지 도 14를 참조하여 설명한 바와 같이, 레디(Ready)와 노티파이(Notify)를 사용하여 오브젝트간 통신을 실행하고, 또한 필요에 따라서 멀티옵저버, 멀티서브젝트의 결합 형태에 의해 다른 오브젝트를 결합할 수 있도록 되어 있다. 즉, 복수의 옵저버를 갖는 오브젝트에 있어서는, 이들 복수의 옵저버에 대응하는 수의 커넥트 엔트리를 갖도록 되어 있다.
도 15는 오브젝트 매니저와 각 오브젝트의 관계를 도시한 약선도이다. 각 오브젝트에 있어서는 각각 오브젝트 ID, 셀렉터 번호(Selector)에 의해 메소드를 특정하여 데이터 교환하고, 각각 대응하는 서브젝트, 옵저버와는 전혀 무관하게, 기본적인 메소드에 대해 셀렉터 번호 0 내지 3이 각각 할당되도록 되어 있다.
여기서 셀렉터 번호(0)에는 두 이니셜라이즈(DoInit)가 할당되고, 각 오브젝트는 이 두 이니셜라이즈(DoInit)의 기동에 의해 초기화되도록 되어 있다. 또한, 셀렉터 번호(1)에는 두 스타트(DoStart)가 할당되고, 각 오브젝트는 이 두 스타트(DoStart)의 기동에 의해 동작을 개시하도록 되어 있다. 또한, 셀렉터 번호(2)에는 두 스톱(DoStop)이 할당되고, 각 오브젝트는 이 두 스톱(DoStop)의 기동에 의해 동작을 정지하도록 되어 있다. 또한, 셀렉터 번호(2)에는 두 디스트로이(DoDestroy)가 할당되고, 각 오브젝트는 이 두 디스트로이(DoDestroy)에 의해 자원을 개방하도록 되어 있다.
또한 각 오브젝트에 있어서는, 이들 오브젝트 매니저로부터의 요구, 또는 다른 오브젝트로부터의 요구에 대하여, 적절히, 리턴값에 의해 옵저버에 의한 서비스명, 셀렉터 번호 등을 통지하도록 되어 있다.
이것에 의해 이 실시예에 있어서, 디자인 로봇으로부터 통지되는 결합 정보(Connection Data)에 기초하여, 오브젝트 매니저에 의해 오브젝트를 로드, 언로드한 후, 오브젝트간 통신을 재구축할 수 있도록 되어 있다.
다음 식은 이 디자인 로봇으로부터 통지되는 결합 정보(Connection Data)를 나타낸 것으로, 서브젝트의 서비스명과 옵저버의 서비스명을 콜론으로 구분하여텍스트 데이터 형성에 의해 기술된다. 이 경우, 서브젝트측에서는 오브젝트명인(FooB), 데이터 형식(Image), 대응하는 구성요소명에 의한 명칭(RightCamera), 서브젝트를 나타내는 S의 기술이 서비스명으로서 기술된다. 또한 옵저버측에 있어서는 오브젝트명인(FooA), 데이터 형식(Image), 대응하는 구성요소명에 의한 명칭(Right Camera), 옵저버를 나타내는 O의 기술이 서비스명으로서 기술된다.

FooB.Image.RightCamera.S,FooA.Image.RightCamera.O …(5)
오브젝트 매니저에 있어서는, 오브젝트를 로드할 때에, 이 결합 정보(Connection Data)의 기술로부터 로드하는 오브젝트명을 검출한다. 또한, 오브젝트 매니저는 스택 메모리(Stack), 히프 메모리(heap)를 확보하여 이 검출한 오브젝트명의 오브젝트를 소정의 파일로부터 로드한다. 이 때 오브젝트 매니저는 오퍼레이션 시스템(OS: Operation System)으로부터 오브젝트 ID를 취득하여, 이 오브젝트 ID를 결합 정보(Connection Data)에 기술된 오브젝트명과 함께 기록한다.
이로써, 오브젝트 매니저에 있어서는, 이와 같이 하여 등록한 오브젝트 ID를 사용하여 이하의 두 이니셜라이즈(DoInit), 두 커넥트(DoConnect), 두 스타트(DoStart) 등의 처리를 실행하도록 되어 있다.
즉, 두 이니셜라이즈(DoInit)에 있어서, 취득한 오브젝트 ID와, 상술한 셀렉터 번호에 기초하여, 오브젝트 매니저는 오브젝트의 로드에 의해 취득한 모든 오브젝트에 대하여 두 이니셜라이즈(DoInit)를 콜한다. 각 오브젝트에 있어서는, 이 두 이니셜라이즈(DoInit)에 의해 내부 변수 등을 초기화하고, 이것에 의해 오브젝트 매니저에 있어서는 각 오브젝트를 초기화한다.
이 초기화의 처리에 있어서, 오브젝트 매니저는 각 오브젝트로부터의 통지에 의해, 각각 각 오브젝트의 서브젝트로서의 엔트리(Control), 오브젝트로서의 엔트리(Connect)를 등록한다. 또한, 이 등록은 결합 정보(Connection Data)에 있어서의 서브젝트 및 오브젝트의 기술에 대응하여, 오브젝트의 이름과 서브젝트, 오브젝트의 이름으로 구성된다.
이에 대해, 두 커넥트(DoConnect)에 있어서, 오브젝트 매니저는 두 이니셜라이즈(DoInit)에 있어서의 등록에 기초하여, 옵저버를 갖는 각 오브젝트의 엔트리(Connect)에 대하여, 각각 등록 대상인 서브젝트의 서브젝트 ID(오브젝트 ID), 엔트리(Control)를 통지한다. 이로써, 이 통지를 받은 오브젝트에 있어서, 통지된 서브젝트 ID, 엔트리(Control)를 사용하여 대응하는 서브젝트를 호출하고, 여기에 엔트리(Notify)가 접속 등록된다. 또한, 접속 등록이 요구된 서브젝트로부터 레디(Ready)가 옵저버에 되돌려지고, 이것에 의해 옵저버와 대응하는 서브젝트가 결합된다.
이와 같이 하여 옵저버 및 서브젝트간에 오브젝트간 통신을 구축하는 것에 대하여, 오브젝트 매니저에 있어서는 결합 정보(Connection Data)로 통지된 옵저버에 대하여 대응하는 서브젝트의 서브젝트 ID(오브젝트 ID), 엔트리(Control)를 통지한다. 이것에 의해 이 실시예에 있어서, 각 오브젝트에 있어서는 아무런 결합 대상의 오브젝트를 명시적으로 나타내지 않고 개발할 수 있도록 되고, 또한 필요에 따라서 오브젝트 매니저의 지시에 의해 여러가지의 오브젝트와 결합할 수 있도록 되어, 이로써 종래에 비하여 높은 독립성을 확보할 수 있도록 되어 있다.
또한, 이때 오브젝트 매니저에 의해 결합 정보(Connection Data)에 따라서 오브젝트간 통신을 구축함으로써, 간이하며 또한 자유자재로 형태 의존 소프트웨어를 갱신하여, 형태에 적합하게 소프트웨어를 간이하게 변경할 수 있도록 되어 있다.
이에 대해, 두 스타트(DoStart)에 있어서, 오브젝트 매니저는 상술한 셀렉터 번호 1에 의해 각 오브젝트에 두 스타트(DoStart)를 지시한다. 각 오브젝트에 있어서는, 옵저버를 갖는 경우, 두 커넥트(DoConnect)에 의해 취득한 서브젝트 ID, 엔트리(Ready)를 사용하여 서브젝트에 레디(Ready)를 송출하고, 이것에 의해 대응하는 서브젝트로부터 데이터 수신 가능한 상태가 형성되어, 형태 의존 소프트웨어에 있어서는 동작을 개시하도록 되어 있다.
즉, 멀티옵저버에 의한 서브젝트에 있어서는 등록한 옵저버 중의 레디(Ready)를 송출하고 있는 옵저버에, 예를 들면, 센서 출력인 데이터를 노티파이(Notify)하며, 또한 옵저버에 있어서는 수신한 데이터의 처리를 완료하여 다음의 데이터가 수신 가능해지면 레디(Ready)를 송출한다.
이에 대해, 상술한 셧다운, 플러그 인, 플러그 아웃, 상태 변경의 경우, 디자인 로봇으로부터 통지되는 결합 정보(Connection Data)가, 이전 디자인 로봇으로부터 송출되어 등록한 내용과 다른 것으로 인해, 이 경우 오브젝트 매니저는 상술한 셀렉터 번호 2에 의해 각 오브젝트에 두 스톱(DoStop)을 송출한다. 이 경우 옵저버에 있어서는 엔트리(Ready)를 해제한다.
또한, 두 디스커넥트(DoDisconnect)에 있어서, 오브젝트 매니저는 서브젝트와 옵저버간의 통신 접속을 차단한다. 이 경우, 오브젝트 매니저는 옵저버의 엔트리(Connect)에 대하여 두 디스커넥트(DoDisconnect)의 메세지를 송출함으로써, 옵저버로부터 대응하는 서브젝트에 엔트리(Control)의 절단 요구(Remove 0bserver)를 발행시켜, 이로써 통신 접속을 차단한다.
이에 대해, 두 디스트로이(DoDestroy)에 있어서, 오브젝트 매니저는 상술한 셀렉터 번호 3에 의해 대응하는 오브젝트에 두 디스트로이(DoDestroy)를 송출하고, 이것에 의해 dl 오브젝트를 파괴한다. 이 때 이 오브젝트에 있어서는 두 이니셜라이즈(DoInit)에서 실행한 등록의 해제를 실행한다.
오브젝트 언로드(0bject Un1oad)에 있어서, 오브젝트 매니저는 두 디스트로이(DoDestroy)에 의해 파괴한 오브젝트에 관해서, 스택 메모리, 히프 메모리 영역을 개방하고, 이 오브젝트를 언로드한다. 또한, 로드시에 등록한 서브젝트 ID, 서브젝트명을 말소한다.
오브젝트 매니저는 이들의 제어에 의해, 예를 들면, 결합 정보(Connection Data)를 디자인 로봇으로부터 수취하면, 도 16에 도시한 시퀀스에 의해 두 스타트(DoStart)까지의 제어를 실행한다.
즉, 오브젝트 매니저는 메세지에 의해 결합 정보(Connection Data)가 이송되면 기동하고, 예를 들면, 이 결합 정보에 기술된 오브젝트(A) 및 오브젝트(B)를 로드한다. 또한, 여기서는 오퍼레이션 시스템의 시스템 명령에 의해 오브젝트(A) 및 오브젝트(B)를 로드한다. 이때 오브젝트 매니저는 오브젝트(A 및 B)의 오브젝트 ID를 취득하여 등록한다.
계속해서 오브젝트 매니저는 상술한 바와 같이 이 취득한 옵저버 ID, 셀렉터 번호 0에 의해 오브젝트(A 및 B)의 두 이니셜라이즈(DoInit)를 기동하고, 이것에 의해 오브젝트(A 및 B)로부터, 서브젝트로서의 엔트리(Contro1), 오브젝트로서의 엔트리(Connect)를 취득하여 등록한다.
계속해서 등록한 엔트리(Connect)를 사용하여 옵저버인 오브젝트(A)의 두 커넥트(DoConnect)를 기동하여, 서브젝트인 오브젝트(B)와 이 오브젝트(A)를 결합한다. 이와 같이 하여 결합 정보(Connection Data)에 기초하여 오브젝트간 통신이 구축되고, 오브젝트 매니저는 계속해서 오브젝트(A 및 B)의 두 스타트 (DoStart)를 기동한다.
도 17은 이 두 스타트(DoStart) 이후의 시퀀스를 도시하는 타임챠트이다. 오브젝트 매니저의 두 스타트(DoStart)에 의해 오브젝트(A), 오브젝트(B), 다른 오브젝트 등이 기동하면, 이들 오브젝트에 있어서는 상술한 레디(Ready)와 노티파이(Notify)를 사용하여 오브젝트간 통신을 실행한다.
즉, 이 경우, 기동에 의해 오브젝트(A)가 오브젝트(B)의 레디(Ready) 엔트리에 레디 메세지를 송출하고, 오브젝트(B)에 의한 오브젝트(A)의 노티파이(Notify) 엔트리에 의해 오브젝트(B)로부터 오브젝트(A)로 데이터 등이 송출된다. 또한, 이 데이터의 처리 중에, 오브젝트(A)로부터 오브젝트(B)의 레디(Ready) 엔트리에 아직 메세지가 송출되지 않은 경우에는 오브젝트(B)에 의한 오브젝트(A)의 노티파이(Notify) 엔트리가 등록되고, 오브젝트(A)에 의한 오브젝트(B)의 레디(Ready) 엔트리에 의해 데이터 등이 송출된다. 이것에 의해 이 오브젝트간 통신에 있어서는 오브젝트(A)의 데이터 처리 능력을 초과하는 데이터의 전송이 방지된다.
도 18은 플러그 인, 플러그 아웃, 상태 변경에 있어서의 시퀀스를 도시하는 타임챠트이다. 오브젝트 매니저는 디자인 로봇으로부터 통지되는 결합 정보(Connection Data)가, 이전 디자인 로봇으로부터 송출되어 등록한 내용과 다르면, 모든 오브젝트에 두 스톱(DoStop)을 송출하고, 모든 오브젝트의 동작을 정지한다. 이 경우, 각 오브젝트(A 및 B)에서는 엔트리(Ready)를 해제함으로써, 그 이후, 자체의 노티파이 엔트리가 기동되지 않도록 한다.
모든 오브젝트의 두 스톱(DoStop)이 완료하면, 오브젝트 매니저는 이 경우, 오브젝트(A)에 두 디스커넥트(DoDisconnect)를 통지하여 이 오브젝트(A)를 다른 오브젝트와 분리한 후, 이 오브젝트(A)의 두 디스트로이(DoDestroy)를 기동한다. 이것에 의해 오브젝트(A)의 자원을 개방하며, 또한 두 이니셜라이즈(DoInit)에서 실행한 오브젝트(B)의 등록을 해제한다.
필요한 오브젝트에 대한 두 디스트로이(DoDestroy)가 종료하면 오브젝트 매니저는 언로드를 오퍼레이션 시스템의 시스템 명령에 의해 실행한다. 또한, 여기서 필요한 오브젝트의 destructor가 호출되고, 이 경우는 오브젝트(A)의 destructor가 호출됨으로써, 로드시에 실행한 오브젝트(A)의 등록을 해제한다. 또한, 오브젝트 매니저는 스택 메모리, 히프 메모리를 개방하여, 이것에 의해 오브젝트(A)의 언로드를 완료한다.
계속해서 오브젝트 매니저는 결합 정보(Connection Data)에 따라서 오브젝트(C)의 로드를 지시하고, 도 16에 관해서 상술한 바와 같이, 순차 두 이니셜라이즈(DoInit), 두 커넥트(DoConnect), 두 스타트(DoStart)를 기동한다. 이로써 이 경우, 동작 중에, 컴파일하지 않고 오브젝트(A 및 B)에 의한 구성이 오브젝트(B 및 C)에 의한 구성으로 변경되도록 되어 있다.
(1-5) 연상 기억에 의한 오브젝트의 등록
도 19는 식(5)으로 나타낸 결합 정보(Connection Data)에 따라서 오브젝트(A) 및 오브젝트(B)를 도시하는 약선도이다. 오브젝트 매니저에 있어서는 결합 정보(Connection Data)를 연상 기억에 보유하여 기록함과 동시에, 오브젝트의 두 이니셜라이즈(DoInit)를 기동하여 각 오브젝트를 등록했을 때에, 결합 정보(Connection Data)의 기술을 기준으로 하여 연상 기억에 각 오브젝트를 등록한다.
즉, 이 경우, 옵저버측인 오브젝트(A)의 오브젝트명이 FooA, 서브젝트측인 오브젝트(B)의 오브젝트명이 FooB, 데이터 형식이 Image이고, 서브의 명칭이 RightCamera이다. 이것에 의해 이 서브젝트와 오브젝트의 결합 정보(Connection Data)에 있어서는 서브젝트의 서비스명과 옵저버의 서비스명을 콜론으로 구분하여 (FooB.Image.RightCamera.S, FooA.Image.RightCamera.O)로 표기되도록 된다.
서브젝트 매니저는 이 결합 정보(Connection Data)가 디자인 로봇으로부터 건네지면, 도 20에 도시된 바와 같이, 이 결합 정보의 옵저버측의 기술(0.FooA.Image.RightCamera)를 키로 하여, 서브젝트측의 기술(FooB.Image.RightCamera.S)를 연상 기억(1)에 기억하여 축적한다.
이에 대해, 각 오브젝트에 있어서는 두 이니셜라이즈(DoInit)에 의해 오브젝트 매니저의 등록 엔트리에 대하여 서비스명, 셀렉터 번호를 통지하고, 오브젝트 매니저는 이들의 통지를 동일하게 연상 기억(2)에 기억하여 각 오브젝트를 등록한다.
즉, 이 경우 옵저버측인 오브젝트(A)에서는 결합 정보(Connection Data)에 있어서의 옵저버측의 기술(FooB.Image.RightCamera.O)과 동일의 기술에 의한 서비스명을 통지하며, 또한 커넥션 엔트리의 셀렉터 번호를 통지한다. 또한, 이 오브젝트(A)에서는 이 셀렉터 번호를 5로 한다.
오브젝트 매니저에 있어서는, 도 21에 도시된 바와 같이, 결합 정보(Connection Data)에 있어서의 옵저버측의 기술(FooA.Image.RightCamera.O)을 키로 하여, 이 오브젝트(A)의 오브젝트 ID, 셀렉터 번호(OID, Entry)=(2, 5)를 연상 기억(2)에 기록한다. 또한, 여기서 이 오브젝트(A)의 오브젝트 ID는 오퍼레이션 시스템으로부터 값 1로서 통지된 것이다.
또한, 이 경우, 서브젝트측인 오브젝트(B)에서는 결합 정보(Connection Data)에 있어서의 서브젝트측의 기술(FooB.Image.RightCamera.S)와 동일한 기술에 의한 서비스명을 통지하며, 또한 커넥션 엔트리의 셀렉터 번호를 통지한다. 또한 이 오브젝트(B)에서는 이 셀렉터 번호를 5로 한다.
오브젝트 매니저에 있어서는, 도 21에 있어서, 오브젝트(A)에 관해서의 기술과 함께 도시된 바와 같이, 결합 정보(Connection Data)에 있어서의 서브젝트측의 기술(FootB.Image.RightCamera.S)를 키로 하여, 이 오브젝트(B)의 오브젝트 ID, 셀렉터 번호(OID, Entry)=(1, 5)를 연상 기억(2)에 기록한다. 또한, 여기서 이 오브젝트(B)의 오브젝트 ID는 오퍼레이션 시스템으로부터 값 2로서 통지된 것이다.
오브젝트 매니저에 있어서는 두 커넥트(DoConnect)시, 결합 정보(Connection Data)로부터 서브젝트측의 기술과 오브젝트측의 기술을 분리한다. 이것에 의해 오브젝트 매니저에 있어서는 연상 기억(1)에 기억된 키(FooA.Image,RightCamera.O)와, 이 키(FooA.Image.RightCamera.O)에 의해 연상 기억(1)에 축적된 여러가지의 기술(FooA.Image.RightCamera.O) 중 1개에 각각 대응하도록, 결합 정보(Connection Data)의 기술을 분리한다.
또한, 오브젝트 매니저는 이 분리한 기술에 의해 각각 연상 기억(2)을 검색하고, 대응하는 옵저버의 오브젝트 ID 및 셀렉터 번호(1, 5), 서브젝트의 오브젝트 ID 및 셀렉터 번호(2, 5)를 검출한다.
오브젝트 매니저는 이로써 오브젝트 ID 및 셀렉터 번호(1, 5)에 대하여, 오브젝트 ID 및 셀렉터 번호(2, 5)의 메세지를 송출하고, 옵저버의 커넥트 엔트리를 기동하고, 이 커넥트 엔트리를 오브젝트 ID 및 셀렉터 번호(2, 5)에 의한 서브젝트의 정보를 통지한다. 또한, 이 커넥트 엔트리로부터 오브젝트 ID 및 셀렉터 번호(2, 5)에 의한 서브젝트측 컨트롤 엔트리를 기동하고, 이 컨트롤 엔트리에 옵저버측인 오브젝트 ID 및 셀렉터 번호(1, 6)(이 경우는 노티파이(Notify))를 등록한다. 이때 옵저버측은 복귀 값에 의해 레디의 셀렉터 번호를 얻어, 이것을 등록한다.
이로써, 오브젝트 매니저에 있어서는 연상 기억(1 및 2)을 사용하여 오브젝트간의 결합을 확립하도록 되어 있다.
이와 같이 하여 오브젝트간의 결합이 확립하면, 오브젝트 매니저는 결합 정보(Connection Data)의 옵저버측의 기술(FooA.Image.RightCamera.O)을 키로 하여, 결합 정보(Connection Data)의 서브젝트측의 기술(FooB.Image.RightCamera.S)을 연상 기억(3)에 기억하고, 또한 연상 기억의 기록으로부터 옵저버측의 기술(FooA.Image.RightCamera.O)을 키로 한 서브젝트측의 기술(FooB.Image.RightCamera.S)을 삭제한다.
이로써, 오브젝트 매니저는 결합 정보(Connection Data)에 대응하는 기술에 의해, 오브젝트간의 결합이 확립되어지는 옵저버 및 서브젝트를 연상 기억(3)에 등록하여 보유하도록 되어 있다.
이렇게 함으로써, 오브젝트 매니저는 두 디스커넥트(DoDisconnect)시에 있어서는 상술한 두 커넥트(DoConnect)시와는 반대로, 결합을 차단함과 동시에, 연상 기억(3)에 기록된 대응하는 기술을 삭제하여 연상 기억(1)에 다시 기록하고, 또한 연상 기억(2)의 대응하는 기술을 삭제하도록 되어 있다.
이에 대해, 형태 의존 소프트웨어의 변경에 의해 예를 들면, 다음식으로 나타내는 결합 정보(Connection Data)가 디자인 로봇으로부터 통지된 것으로 한다.

FooB.Image.RightCamera.S,FooCImage.RightCamera.O …(6)
삭제
즉, 이 결합 정보(Connection Data)는 오브젝트(B)를 대신하여, 오브젝트(C)에 옵저버를 변경하는 기술이다. 오브젝트 매니저는 이 경우, 연상 기억(2)으로부터 FooA.Image.RightCamera.O를 키로 하여 그때까지 옵저버에 설정되어 있는 오브젝트 ID, 셀렉터 번호(1, 5)를 검출한다. 또한, 이 오브젝트 ID, 셀렉터 번호(1, 5)에 의해 옵저버인 옵저버(A)에 두 디스커넥트(DoDisconnect)를 지시하는 동시에, 연상 기억(2)의 대응하는 기술(옵저버 및 서브젝트인 오브젝트(A 및 B)의 기술)를 삭제하며, 또한 연상 기억(3)에 기록된 대응하는 기술을 삭제하여 연상 기억(1)에 다시 기록한다.
즉, 오브젝트 매니저는 연상 기억(2)으로부터 FooA.Image.RightCamera.O, FooA.Image.RightCamera.S를 키로 하여 이루어지는 오브젝트 ID, 셀렉터 번호의 기술을 삭제한다. 이것에 의해 오브젝트 매니저는 오브젝트를 동적으로 변경할 수 있도록 되어 있다.
(2) 제 1 실시예의 동작
이상의 구성에 있어서, 로봇(1)에 있어서는(도 1), 본체(2)에 이동 유닛(3)으로서 발을 장착하면 4족형의 형태가 되고, 이 발에 장착한 모터의 구동에 의해 4 발 보행하도록 되어 있다. 또한, 뒷발을 대신하여 타이어를 장착시키면 타이어형의 형태가 되며, 이 타이어에 의해 이동 가능하게 된다.
로봇(1)에 있어서는(도 2), 로봇 컴포넌트(24, 25, 26) 등인 발 등에 의해 배치된 센서의 출력, 또한, 머리부(2A)에 배치된 각종 정보 취득 수단에 의해 취득된 정보 등에 기초하여, 중앙 처리 유닛(22)의 처리에 의해 필요한 제어 지령이 출력되어, 이들 이동 유닛(3) 등이 제어된다.
로봇(1)에 있어서는(도 3 및 도 4), 오브젝트 지향에 따라 구성되는 상위층의 소프트웨어에 의해, 디바이스 드라이버층의 각종 디바이스 드라이버를 구동하여 이들의 제어가 실행된다. 이 제어에 있어서, 디바이스 드라이버층의 상위층인 로봇 시스템 소프트웨어에 있어서는 가상 로봇에 의해 직렬 버스에 접속된 각 부품이 검출되고, 로봇(1) 전체에서 어떠한 로봇 컴포넌트가 어떠한 순서로 접속되어 있는지를 나타내는 결합 정보(CPC Connection Information)가 디자인 로봇에 통지된다. 이것에 의해 로봇(1)에 있어서는 직렬 버스에 접속된 디바이스에 의해 현재의 형태가 특정되며, 또한 이 현재의 형태를 구성하는 제어 대상 등이 구체적으로 특정된다.
로봇(1)에 있어서는 결합 정보(CPC Connection Information)에 따라서 이 로봇 시스템 소프트웨어의 상위층의 소프트웨어가 갱신되고, 이로써 형태에 적합한 적절한 소프트웨어에 의해 전체 동작이 제어된다.
이 소프트웨어의 갱신에 있어서, 로봇(1)은 로봇 시스템 소프트웨어의 디자인 로봇에 의해, 각 형태마다, 각 부품의 구성 요소 정보(CPC Primitive Location Information)군에 대하여 라벨을 부가하여 기술되어 이루어지는 디자인 파일과, 가상 로봇으로부터 통지되는 결합 정보(CPC Connection Information)를 비교하여, 형태에 적합한 적절한 오브젝트를 선택하고, 이 오브젝트에 의한 형태 의존 소프트웨어가 변경된다(도 7, 도 8). 이것에 의해 로봇(1)에 있어서는 형태에 적합한 적절한 소프트웨어에 간이하게 변경하여 전체의 동작을 제어할 수 있다.
또한, 상위층의 소프트웨어가 로봇의 형태에 의존하지 않는 형태 독립 소프트웨어와, 형태에 의존하는 형태 의존 소프트웨어로 분리되며, 또한 형태 독립 소프트웨어에 의해 형태에 의존하지 않는 형식에 의해 취급되는 데이터가 형태 의존 소프트웨어에 의해 형태에 대응한 형식에 의해 변환되어 로봇 시스템 소프트웨어 간에 송수신되도록 구성된 상태에서, 이 형태 의존 소프트웨어만이 갱신된다. 이로써 간이한 처리에 의해 소프트웨어를 갱신하는 것이 가능해진다.
또한, 이때 가상 로봇에 있어서는 텍스트 데이터 형식의 기술에 의해 구성 요소 정보(CPC Primitive Location Information)를 생성하는데 대하여(도 8 및 도 9), 디자인 파일에 있어서는 동일한 텍스트 데이터 형식에 의해 기술되어 있는 것에 의해, 변화하는 형태가 장래 증대하게 되는 경우에도, 간이하게 대응하는 것이 가능해진다.
로봇(1)에 있어서는, 이 소프트웨어의 갱신이 오브젝트 매니저에 의해 형태 의존 소프트웨어의 오브젝트의 재구축에 의해 실행된다. 즉, 오브젝트 매니저에 있어서는, 기동시 등에 있어서, 디자인 로봇으로부터 현재의 형태에 적합한 오브젝트의 결합을 지시하는 결합 정보(Connection Data)가 통지되고, 이 결합 정보(ConnectionData)에 의해 지정되는 오브젝트가 로드된다(도 16).
또한, 로드한 오브젝트가 초기화된 후, 결합 정보(Connection Data)의 지정에 의해 오브젝트 매니저에서 데이터 교환 가능하게 서브젝트 및 옵저버가 결합된다. 이로 인해 로봇(1)에 있어서는 형태에 적합한 오브젝트에 의해 형태 의존 소프트웨어가 구축된다.
따라서, 로봇(1)에 있어서는 구체적인 결합 대상을 전혀 고려하지 않고 각 오브젝트를 설계하여, 소프트웨어를 구축할 수 있으며, 또한 형태에 따라서 결합 정보(Connection Data)를 생성함으로써, 형태에 적합한 소프트웨어를 간이하게 구축할 수 있다. 또한 재컴파일, 재링킹하지 않고 소프트웨어를 변경할 수 있다. 이로 인해 로봇(1)에 있어서는, 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있어, 그 만큼 자유로운 형태의 변경에 대하여 적절한 소프트웨어를 간이하며 또한 신속하게 제공하는 것이 가능해진다. 또한, 이 결합 정보의 설정에 의해 1개의 오브젝트와 복수의 오브젝트 간에 오브젝트간 통신을 구축할 수 있다.
이 결합 정보(Connection Data)가 서브젝트와 통신하는 데이터의 형식을 특정하는 정보인 것에 의해, 오브젝트 매니저에 있어서는 이 결합 정보(Connection Data)에 의해 대응하는 오브젝트 ID, 셀렉터 번호를 특정하여 간이하게 오브젝트 통신을 구축할 수 있다.
또한, 디자인 로봇에 의해, 복수의 결합 정보가 기록되어지는 디자인 파일로부터 결합 정보(Connection Data)를 선택하여 오브젝트 매니저에 제공함으로써, 이 디자인의 설정에 의해 필요에 따라서 각종 형태에 대응하는 소프트웨어를 간이하게 구축하는 것이 가능해진다.
또한, 이 결합 정보(Connection Data)에 있어서도, 텍스트 데이터 형식으로 기술되어 있는 것에 의해, 간이하게 여러가지로 변경할 수 있다.
이에 대해, 형태가 변경되면, 로봇(1)에 있어서는 가상 로봇에 의해 형태의 변경이 검출되고, 이 변경된 형태에 따른 결합 정보(CPC Connection Information)가 디자인 로봇에 통지된다. 또한, 이 디자인 로봇에 있어서 디자인 파일과의 비교에 의해, 변경된 형태에 따른 결합 정보(Connection Data)가 생성된다. 또한 이 결합 정보(Connection Data)에 따라서 오브젝트 매니저에 의해서 형태의 변경으로 인해 불필요하게 된 오브젝트가 언로드되는 동시에, 형태의 변경으로 인해 필요한 오브젝트가 로드되어, 형태 의존 소프트웨어를 구성하는 오브젝트가 재구축된다. 또한, 이들의 오브젝트가 결합 정보(Connection Data)에 의해 오브젝트간 통신 가능하게 결합되고, 이로써, 형태 의존 소프트웨어가 갱신된다.
이로써, 로봇(1)에 있어서는 형태 독립 소프트웨어 등을 동작시킨 상태인 채로, 필요에 따라서 형태 의존 소프트웨어를 갱신하여 형태에 적합한 소프트웨어를 구축할 수 있다. 또한, 이 소프트웨어의 변경을 전력 소비 모드의 전환에 적용하는 것도 가능해진다.
(3) 제 1 실시예의 효과
이상의 구성에 의하면, 부품 검출 결과인 결합 정보와, 각 형태마다 부품 검출 결과에 대응하는 정보의 집합에 의한 디자인 파일을 비교하여, 이 비교 결과에 기초하여 형태에 따라서 소프트웨어를 변경함으로써, 부품의 변경에 따르는 형태의 변경에 대응하여 소프트웨어를 변경할 수 있으며, 이로 인해 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있다.
이 때, 오브젝트의 변경에 의해 소프트웨어를 변경함으로써, 간이한 처리에 의해 소프트웨어를 변경할 수 있다.
또한, 상위의 소프트웨어를 형태 의존 소프트웨어와 형태 독립 소프트웨어에 의해 구성하고, 형태 의존의 소프트웨어의 변경에 의해 형태에 따라서 소프트웨어를 변경함으로써, 형태에 적합한 소프트웨어를 간이하게 제공할 수 있다.
또한, 부품 검출 결과에 대응하는 정보가 텍스트 데이터에 의한 기술인 것에 의해, 변화하는 형태가 장래 증대된 경우에도, 간이하게 대응하는 것이 가능해진다.
또한, 이상의 구성에 의하면, 부품을 교환하여 형태를 변경할 수 있도록 이루어진 로봇에 있어서, 결합 정보에 기초하여, 오브젝트 매니저에 의해 데이터 교환 가능하게 오브젝트를 결합함으로써, 종래에 비하여 오브젝트의 독립성을 향상할 수 있으며, 그 만큼 간이하게 형태에 적합하게 소프트웨어를 변경할 수 있다. 또한 재컴파일, 재링킹하지 않고, 간이하게 소프트웨어를 변경할 수 있다. 또한, 이 결합 정보의 설정에 의해 1개의 오브젝트와 복수의 오브젝트의 사이에서 오브젝트간 통신을 구축할 수 있다.
이때 결합 정보가, 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것에 의해, 간이하게 이들 오브젝트를 결합할 수 있다.
또한, 복수의 결합 정보가 기록되어지는 디자인 파일로부터 결합 정보를 선택하여 오브젝트를 결합함으로써, 이 디자인 파일의 설정에 의해 형태에 적합한 소프트웨어를 간이하게 제공할 수 있다.
또한, 결합 정보에 따라서, 대응하는 오브젝트간의 결합을 일단 떼어낸 후, 오브젝트를 결합하여 오브젝트간 통신을 구축함으로써, 소프트웨어를 동작시킨 상태인 채로, 필요에 따라서 소프트웨어를 갱신하여 형태에 적합한 소프트웨어를 구성할 수 있다.
또한, 즉, 가상 로봇에 의해 부품을 검출하여 결합 정보를 제공함으로써, 형태에 따라서 소프트웨어를 변경할 수 있다.
또한, 결합 정보를 텍스트 데이터에 의해 기술한 것으로서, 형태에 따른 적절한 소프트웨어를 간이하고 또한 신속하게 작성할 수 있다.
또한, 이와 같이 하여 데이터 통신하는 오브젝트간에 있어서, 레디, 노티파이에 의해 데이터 교환함으로써, 처리 능력을 초과하게 되는 데이터의 공급을 방지할 수 있다.
(4) 제 2 실시예
그런데, 상술한 두 이니셜라이즈(DoInit) 등의 명령을 콜 명령에 의해 처리하는 오퍼레이션 시스템에 있어서는 명령의 송출에 의해 송출처에 처리를 건네줌으로써, 오브젝트 매니저에 있어서는 송출처로부터 Reply가 돌려질때까지 각 오브젝트로부터 송출되는 메세지를 블록하게 된다. 따라서, 도 16에 관해서 상술한 바와 같이, 두 이니셜라이즈(DoInit)를 송출한 후, 서브젝트로서의 엔트리(Control), 오브젝트로서의 엔트리(Connect)를 오브젝트 매니저에 등록하는 것이 곤란하게 된다.
이 때문에, 이 실시예에 따른 로봇에 있어서는 도 4와의 대비에 의해 도 22에 도시된 바와 같이, 이들 엔트리(Control, Connect)를 오브젝트 매니저에 등록하여, 서비스 매니저에 의해 오브젝트간 통신을 관리한다. 이에 대해, 오브젝트 매니저에 있어서는 오브젝트의 로드, 언로드 등의 처리만 실행한다. 즉, 이 실시예에 있어서, 오브젝트 매니저는 형태 의존 소프트웨어를 구성하는 모든 오브젝트에 관해서, 동작의 정지, 오브젝트간 통신을 위한 결합 해제, 오브젝트의 파괴, 자원의 개방을 지시하며, 또한, 새롭게 필요한 오브젝트의 로드, 초기화, 오브젝트의 기동을 지시한다. 이에 대해, 서비스 매니저는 오브젝트간 통신에 있어서의 통신 상대의 정보를 관리한다.
또한, 이 실시예에 있어서는, 이 오브젝트 매니저, 서비스 매니저의 구성, 이들의 구성에 관련하는 각부의 구성이 다른 점을 제외하고, 상술한 제 1 실시에 형태와 동일함으로써, 이 실시예에서는 오브젝트 매니저, 서비스 매니저의 구성을 중심으로 설명하고, 중복한 설명은 생략한다.
또한, 도 23에 도시된 바와 같이, 이 실시예에 있어서, 오브젝트간의 결합은 오브젝트 사이에서 데이터를 송수신하기 위한 결합을 의미하며, 통신을 행하는 쌍방의 서비스간의 결합으로서 표현한다. 또한, 결합은 식(5)에 관해서 상술한 바와 같이, 데이터 출력측의 서비스, 데이터 입력측의 서비스, 통신하는 데이터형, 데이터 플로우 방향에서 표현된다. 또한, 도 24에 도시된 바와 같이, 결합 상태란, 로봇 시스템 내에 로드되어 있는 오브젝트의 1군에 있어서 오브젝트끼리 연장되어 있는 결합의 집합을 의미하며, 접속 정보란, 기동시, 형태의 변경시에 새롭게 오브젝트간에 연장되는 결합의 정보를 의미하며, 현재의 결합 상태와 새로운 결합 상태의 차분 정보이다. 또한, 절단 정보란, 형태의 변경시에, 불필요해진 결합 정보를 의미하며, 새로운 결합 상태와 현재의 결합 상태의 차분 정보이다.
도 25는 도 10과의 대비에 의해, 이 실시예에 따른 로봇 시스템 소프트웨어의 기동시의 처리를 도시한 타임챠트이다. 전원이 투입되면, 또는 리셋되면, 처음에 로봇 시스템 소프트웨어를 구성하는 각 오브젝트에 대하여 초기화 등의 처리가 실행된다. 즉, 로봇에 있어서는, 도 26에 도시된 바와 같이, 파워 매니저, 서비스 매니저, 가상 로봇, 디자인 로봇의 순서로, 오브젝트 매니저에 의해 두 이니셜라이즈(DoInit)의 송출, 리플라이(Reply)의 수신이 반복되고, 이로써 로봇 시스템 소프트웨어에 있어서의 두 이니셜라이즈의 페이즈가 실행된다. 또한, 이하에 있어서는 적절히 도면상에서 처리의 순서를 숫자로 나타낸다.
또한, 도 27에 도시된 바와 같이, 파워 매니저, 서비스 매니저, 가상 로봇, 디자인 로봇의 순서로, 오브젝트 매니저로부터 순차로 두 스타트(DoStart)가 송출되고, 이것에 의해 로봇 시스템 소프트웨어에 있어서의 두 스타트의 페이즈가 실행되어 이들 파워 매니저, 서비스 매니저 등이 동작을 개시한다.
이 때 디자인 로봇에 있어서는, 이 두 스타트(DoStart)에 의해, 가상 로봇에 대하여 로봇의 현재의 형태를 나타내는 정보의 송출을 지시하고, 가상 로봇은 이 지시에 의해 로봇 컴포넌트가 어떠한 순서로 접속되어 있는지를 나타낸 결합 정보(CPC Connection Information)를 디자인 로봇에 통지한다. 디자인 로봇은 가상 로봇으로부터 이 결합 정보(CPC Connection Information)를 수취하고, 이 결합 정보(CPC Connection Information)로부터 결합 정보(Connection Data)를 생성한 후, 오브젝트 매니저에 리플라이(Reply)를 돌려준다.
이와 같이 하여 두 스타트의 페이즈가 실행되면, 로봇에 있어서는 계속해서 서비스 매니저에 대하여, 오브젝트 매니저에 의해 디스커넥트(DisConnect)의 지시가 발행된다. 기동시에 있어서는, 아무런 오브젝트가 로드되어 있지 않으므로, 이 경우, 이 지시에 따라 서비스 매니저는 디자인 로봇으로부터 결합 정보(Connection Data)를 취득하고, 오브젝트 매니저에 처리의 완료를 통지한다. 오브젝트 매니저는 계속해서 동일하게 하여 디자인 로봇으로부터 결합 정보(Connection Data)를 취득한다. 이것에 의해 서비스 매니저에 있어서는 형태 의존 소프트웨어 등을 구성하는 각 오브젝트에 관해서, 오브젝트간 통신의 구축에 필요한 정보를 취득하는데 대해, 오브젝트 매니저에 있어서는 이들의 오브젝트의 로드, 언로드에 필요한 정보를 취득한다.
이에 의해 오브젝트 매니저는 현재의 형태에 대응하는 필요한 오브젝트와, 불필요한 오브젝트의 리스트를 작성한다. 또한, 도 28에 도시된 바와 같이, 이들의 필요한 오브젝트(A 내지 C)에 관해서, 순차 로드를 지시하고, 이들 오브젝트(A 내지 C)를 구축한다. 이때 오브젝트 매니저는, 도 29에 도시된 바와 같이, 이 로드 명령의 실행에 의해, 각 오브젝트의 오브젝트 ID(OID-a, OID-b, OID-c)를 취득한다.
계속해서 도 30 및 도 31에 도시된 바와 같이, 오브젝트 매니저는 이와 같이 하여 취득한 오브젝트 ID에 의해 각 오브젝트에 순차 두 이니셜라이즈(DoInit)를 콜한다. 각 오브젝트에 있어서는, 이 두 이니셜라이즈(DoInit)에 의해 서비스 매니저에 대하여 각 서비스의 등록을 요구한다. 또한, 여기서 이 서비스의 등록은 각 서비스명, 오브젝트 ID, 셀렉터의 등록에 의해 실행된다.
서비스 매니저는 각 요구에 응동하여 각 오브젝트의 서비스를 등록하면, 등록 완료를 각 오브젝트에 통지하고, 각 오브젝트에 있어서는 이 통지에 의해 오브젝트 매니저에 리플라이(Reply)를 돌려 준다.
이와 같이 하여 각 오브젝트의 초기화가 완료하면, 오브젝트 매니저는 각 오브젝트의 DisConnect를 서비스 매니저에 지시한다. 여기서 도 32에 도시된 바와 같이, 서비스 매니저는 상술한 두 스타트(DoStart) 페이즈에서 디자인 로봇이 취득한 결합 정보를 취득함으로써 리스트를 작성하여 보유한다. 여기서 이 리스트는 Connect에 따른 리스트, DisConnect에 따른 리스트 등으로 구성되고, 각 리스트는 각각 제 1 실시예에 대한 상술한 기술에 의한 결합 정보에 의해, 각 오브젝트의 서비스명, 데이터 폼으로 구성된다. 또한, 서비스 매니저는 각 오브젝트의 두 이니셜라이즈(DoInit)에서 취득한 서비스를 서비스 리스트에 의해 보유한다. 여기서 이 서비스 리스트는 각 오브젝트마다 서비스 정보로서 정리되어 형성되고, 각 서비스에 있어서는 각 서비스에 따른 오브젝트 ID, 셀렉터에 의한 서비스 엔트리와, 각 서비스명으로 구성된다.
서비스 매니저는 도 33에 도시된 바와 같이, 오브젝트 매니저로부터 각 오브젝트의 결합(Connect)이 지시되면, 이들의 각 오브젝트로부터 취득한 서비스의 정보와, 디자인 로봇으로부터 취득한 결합 정보를 대조한다. 또한, 대조 결과에 기초하여, 순차 각 오브젝트에 통신 대상을 등록하고, 이것에 의해 각 오브젝트를 순차 데이터 통신 가능하게 결합한다.
즉, 도 34에 도시된 바와 같이, 서비스 매니저는 각 오브젝트로부터 서비스가 등록되면, 각 서비스의 서비스명, 서비스 엔트리에 의한 서비스 정보를 각 오브젝트마다 정리하여 서비스 정보(Service Binding)를 작성하고, 이 서비스 정보(Service Binding)를 등록한다. 이것에 의해 서비스 매니저는 서비스 리스트를 작성한다. 또한, 디자인 로봇으로부터 취득한 결합 정보와, 과거에 기록한 결합 정보로부터 새로운 결합 상태와 현재의 결합 상태를 파악하고, 접속 정보, 절단 정보를 작성한다. 또한, 이들 접속 정보, 절단 정보로부터 Connect에 따른 리스트, DisConnect에 따른 리스트를 작성한다.
서비스 매니저는 서비스 리스트와 Connect에 따른 리스트의 대조에 의해, 결합하는 서비스의 엔트리를 검출하고, 이 검출 결과에 따라서 대응하는 오브젝트에 서비스의 엔트리를 통지한다. 또한, 서비스 리스트와 DisConnect에 따른 리스트의 대조에 의해, 결합을 차단하는 서비스의 엔트리를 검출하고, 이 검출 결과에 따라서 대응하는 오브젝트에 서비스의 엔트리를 통지한다. 또한, 도 30에 있어서는, 오브젝트가 아직 결합되지 않은 기동시의 처리인 것으로 인해, 서비스 매니저에 있어서는 절단 정보를 작성하지 않고 일련의 처리를 실행한다. 이로써, 도 35에 도시된 바와 같이, 서비스 매니저는 옵저버와 서브젝트의 사이에서, 데이터 교환 가능하게 대응하는 메소드를 접속한다. 또한, 도 36은 도 19과의 대비에 의해 이와 같이 하여 결합된 오브젝트(A) 및 오브젝트(B)를 도시한 약선도이다.
서비스 매니저는 이와 같이 하여 결합 정보에 의한 접속이 완료하면, 오브젝트 매니저에 접속의 완료를 통지한다(도 30). 오브젝트 매니저에 있어서는 이 통지가 얻어지면, 도 38에 도시된 바와 같이, 각 오브젝트에 두 스타트(DoStart)를 지시한다. 이것에 의해 도 28과의 대비에 의해 도 38에 도시된 바와 같이, 각 오브젝트(A 내지 C)에서는 결합이 완료하여 데이터 통신 가능하게 동작을 개시하고, 로봇에 있어서는 각 오브젝트 사이에서의 데이터 통신에 의해 형태에 따라서 여러가지의 동작을 실행할 수 있도록 되어 있다.
도 39는 도 18과의 대비에 따른 플러그 인, 플러그 아웃에 의한 형태 변경시의 시퀀스를 도시하는 타임챠트이다. 로봇에 있어서는 도 40에 도시된 바와 같이, 가상 로봇에 의해 형태의 변경이 통지되면, 이 일련의 시퀀스를 실행한다. 즉, 오브젝트 매니저에 있어서는, 이 통지에 의해 도 41에 도시된 바와 같이, 로봇 시스템 소프트웨어의 상위에 위치하는 각 오브젝트(도 39에 있어서는 오브젝트(A 내지 C))에 순차 두 스톱(DoStop)을 송출하고, 이들 오브젝트의 동작을 정지한다. 또한 계속해서 기동시와는 반대의 순서로, 디자인 로봇, 가상 로봇, 서비스 매니저, 파워 매니저에 순차 두 스톱(DoStop)을 송출하고, 이들 오브젝트의 동작을 제한한다. 또한, 여기서 이들 로봇 시스템 소프트웨어를 구성하는 각 오브젝트에 있어서는, 두 스톱(DoStop)에 의해 상위의 오브젝트에 관련하는 처리만을 정지하며, 예를 들면, 전원의 관리 등의 로봇 시스템 소프트웨어를 구성하는 각 오브젝트간의 처리에 있어서는 연속 처리를 계속하도록 되어 있다.
이와 같이 하여 모든 오브젝트에 대해서 두 스톱(DoStop)의 처리를 완료하면, 오브젝트 매니저는 로봇 시스템 소프트웨어를 구성하는 파워 매니저, 서비스 매니저, 가상 로봇, 디자인 로봇에 대하여, 기동시와 동일한 순서에 의해 순차 두 스타트(DoStart)를 송출하고, 이것에 의해 파워 매니저, 서비스 매니저 등의 동작을 지시한다.
이 때, 디자인 로봇에 있어서는 도 27에 관해서 상술한 바와 같이, 가상 로봇으로부터 결합 정보(CPC Connection Information)를 취득하고, 이 결합 정보(CPC Connection Information)로부터 결합 정보(Connection Data)를 생성한다. 또한, 오브젝트 매니저에 있어서는 사용자에 의한 형태의 변경이 완전히 완료하는 것을 기다려 결합 정보를 취득 가능하게 하기 위해서, 예를 들면, 두 스톱(DoStop) 후, 소정 시간 경과하여 (DoStart)를 지시하는 것을 고려할 수 있다.
이와 같이 하여, 두 스타트(DoStart)를 송출하여 파워 매니저 등으로부터 응답이 얻어지면, 오브젝트 매니저는 서비스 매니저에 대하여, 디스커넥트(DisConnect)를 지시한다. 여기서 이와 같이 형태가 변경된 경우에는 현재 로드되어 있는 오브젝트와, 형태의 변경에 대응하는 오브젝트가 다른 것으로 인해, 서비스 매니저는 도 43에 있어서 Check Connection에 의해 나타내는 바와 같이, 디자인 로봇으로부터 변경된 형태에 따른 결합 정보(Connection Data)를 취득한다. 또한, 서비스 매니저는 상기 취득한 결합 정보(Connection Data)로부터 도 34에 관해서 상술한 바와 같이 하여 절단 정보를 작성하고, 이 절단 정보에 의해 대응하는 오브젝트의 결합을 해제한다.
이와 같이 하여 절단을 완료하면, 서비스 매니저는 오브젝트 매니저에 처리의 완료를 통지하고, 오브젝트 매니저는 계속해서 도 44에 도시된 바와 같이, 동일하게 디자인 로봇으로부터 결합 정보(Connection Data)를 취득한다. 또한, 오브젝트 매니저는 이와 같이 하여 취득한 결합 정보(Connection Data)에 기초하여, 대응하는 오브젝트에 두 디스트로이(DoDestroy)를 콜하여, 대응하는 오브젝트에 의해 전유된 메모리를 개방한다.
또한, 오브젝트 매니저는 계속해서 이 오브젝트의 언로드를 지시한다. 이들 일련의 처리에 의해 서비스 매니저는 형태의 변경으로 인해 필요로 하지 않게 된 오브젝트에 관해서, 오브젝트간 통신할 수 없도록 오브젝트간의 결합을 차단하는데 대해, 오브젝트 매니저는 상기와 같이 하여 필요로 하지 않게 된 오브젝트를 언로드한다.
이와 같이 하여 필요하지 않게 된 오브젝트를 언로드하면, 오브젝트 매니저는 도 45에 도시된 바와 같이, 새롭게 필요해진 오브젝트(D)의 로드를 지시한 후, 이 로드한 오브젝트에 두 이니셜라이즈(DoInit)를 지시한다. 계속해서 오브젝트 매니저는 서비스 매니저에 오브젝트간의 결합을 지시하고, 이 경우 오브젝트 매니저는 도 34에 관해서 설명한 접속 정보에 기초하여 대응하는 오브젝트간에, 기동시와 동일하게 데이터 통신이 가능하게 되도록 결합 정보를 통지한다. 오브젝트 매니저는 이와 같이 하여 데이터 통신 가능하게 각 오브젝트가 결합되면, 각 오브젝트에 두 스타트(DoStart)를 송출하여 일련의 처리를 완료한다. 이들 일련의 처리에 의해 도 37과의 대비에 의해 오브젝트(A 내지 D)의 관계를 도 46에 도시된 바와 같이, 오브젝트(C)를 대신하여 오브젝트(D)가 등록되고, 도 47에 도시된 바와 같이, 이들 오브젝트(A, B, D)는 동작을 개시하게 된다.
도 48은 이와 같이 하여 기동시, 형태 변경시에 따른 서비스 매니저의 일련의 처리를 도시한 상태 천이도이다. 즉, 서비스 매니저는 초기화된 후, 대기하고, 오브젝트 매니저로부터의 지시에 의해 절단 정보, 접속 정보를 생성하며, 기동시에 있어서는 이 중, 접속 정보에 의해 각 오브젝트를 결합한다. 또한, 형태 변경시에 있어서는 절단 정보에 의해 대응하는 오브젝트의 결합을 차단한 후, 접속 정보에 의해 각 오브젝트를 결합한다.
이와 같이 하여 데이터 통신 가능하게 결합된 각 오브젝트는 서브젝트측의 메모리 공간에 존재하는 로컬 데이터를 옵저버측의 메모리 공간에 카피함으로써, 또는 서브젝트와 옵저버의 공유 메모리를 사용하여 데이터 통신한다.
도 49는 이 중, 카피에 의한 데이터 통신을 도시한 약선도이다. 서브젝트에 있어서는 메모리 공간에 존재하는 로컬 데이터를 옵저버측의 메모리 공간에 카피하고, 옵저버측의 invoke되는 메소드에 카피처의 선두 어드레스를 통지한다. 이것에 의해 로봇에 있어서는 데이터량이 적은 경우, 분배하는 상대편이 적은 경우에, 간이하게 데이터 통신할 수 있도록 되어 있다.
이에 대해, 도 50은 공유 메모리를 사용한 데이터 통신을 도시한 약선도이다. 서브젝트에 있어서는 메모리 공간에 맵핑되어 있는 공유 메모리에 데이터를 기록하고, 이 공유 메모리의 어드레스를 메세지로하여 옵저버에 송출한다. 옵저버에 있어서는 이 통지된 어드레스에 의해 공유 메모리 영역을 자신의 메모리 공간에 맵핑하여 사용한다. 이것에 의해 로봇에 있어서는 화상 데이터, 음성 데이터 등의 대용량의 데이터를 송신하는 경우, 분배처의 수가 많은 경우에 적용하여, 간이하며 또한 확실히 데이터 통신할 수 있도록 되어 있다.
이와 같이 하여 공유 메모리에 의해 데이터 통신했을 때에, 오브젝트에 있어서는 데이터를 분배한 오브젝트의 수를 계측할 수 있도록 되어 있다. 즉, 도 51에 도시된 바와 같이, 데이터를 재기록 가능한 오브젝트에 있어서는 공유 메모리에 데이터를 기록하면 대응하는 카운터의 카운트값을 값 1로 세트한다. 또한, 이 데이터를 재기록 가능한 오브젝트는 데이터를 분배한 서브젝트를 맴버로 갖는 오브젝트이다.
서브젝트는 Notify를 실행한 수만큼 카운터를 증가시키고, 옵저버는 사용이 끝난 영역의 ID를 레디의 때로 반환한다. 서브젝트는 레디를 받으면, 대응하는 공유 메모리의 카운터를 값 1만큼 증가시킨다.
이로써, 이 데이터 재기록 가능한 오브젝트에 있어서는 이 카운값에 의해 다른 오브젝트에 의한 공유 메모리의 액세스가 완료되었는지의 여부를 판단할 수 있도록 이루어지고, 이 판단 결과에 의해 공유 메모리를 재기록하여 확실히 데이터를 보호하도록 되어 있다.
이와 같이 하여 카피 또는 공유 메모리에 의해 데이터 통신했을 때에, 로봇에 있어서는 도 52에 도시된 바와 같이, 소정의 명령에 의해 데이터 통신에 제공하는 데이터을 순차 옵저버의 메모리 공간에 카피한 후, 또는 공유 메모리에 기록한 후, 소정의 명령에 의해 이들 복수의 데이터를 옵저버에서 취득 가능하게, 어드레스를 통지한다. 이로 인해 로봇에서는 복수의 데이터를 정리하여 분배할 수 있도록 이루어지고, 그 분해 사용성을 향상할 수 있도록 되어 있다.
제 2 실시예에 의하면, 두 이니셜라이즈(DoInit) 등의 명령을 콜 명령에 의해 처리하는 오퍼레이션 시스템에 있어서도, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있으며, 또한 종래에 비하여 오브젝트의 독립성을 향상할 수 있다.
(5) 다른 실시예
또한 상술한 실시예에 있어서는 두 이니셜라이즈 등의 셀렉터 번호에 관해서는 미리 설정하여 놓은 경우에 관해서 기술하였지만, 본 발명은 이것에 한정하지 않고, 결합 정보에 의해 각 오브젝트의 두 이니셜라이즈 등을 기동함으로써 셀렉터 번호를 다양하게 설정할 수 있으며, 또한, 오브젝트 매니저에 대한 오브젝트의 등록에 따라 두 스타트 등을 기동함으로써 셀렉터 번호를 다양하게 설정하도록 하여도 된다.
또한, 상술한 실시예에 있어서는 형태 의존 소프트웨어에 관해서만 결합 정보에 의해 오브젝트를 구축하는 경우에 관해서 기술하였지만, 본 발명은 이것에 한정하지 않고 모든 소프트웨어를 결합 정보에 의해 구축하는 경우, 또한, 디바이스 드라이버층 만을 결합 정보에 의해 구축하는 경우 등에 널리 적용할 수 있다.
또한, 상술한 실시예에서는 옵저버와 서브젝트에 의한 옵저버 패턴을 적용한 로봇에 본 발명을 적용한 경우에 관해서 기술하였지만, 본 발명은 이것에 한정하지 않고, 서버 클라이언트 시스템 등에도 널리 적용할 수 있다. 이로써, 이 경우, 예를 들면, 클라이언트가 결합 정보를 데이터 입력으로서 수취하여 서버와 결합함으로써, 서버의 이름을 소스 코드 중에 기술하지 않고 시스템을 구축하는 것이 가능해진다. 이렇게 함에 대해, 이 경우는 클라이언트, 서버가 각각 오브젝트를 구성하게 된다.
또한, 상술한 실시예에 있어서는 레디, 노티파이에 의해 데이터 교환하는 경우에 관해서 기술하였지만, 본 발명은 이것에 한정하지 않고, 여러가지의 수법에 의해 데이터 교환하는 오브젝트간 통신에 널리 적용할 수 있다.
상술과 같이 본 발명에 의하면, 형태마다 보유된 부품 검출 결과에 대응하는 정보와, 현재의 형태에 따른 부품 검출 결과의 비교 결과에 기초하여, 형태에 따라서 소프트웨어를 변경함으로써, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있다. 또한, 결합 정보에 기초하여, 데이터 교환 가능하게 오브젝트를 결합함으로써, 종래에 비하여 오브젝트의 독립성을 향상할 수 있다.
본 발명은 페트형 로봇이나, 서버 클라이언트 시스템에 이용할 수 있다.

Claims (23)

  1. 부품을 교환하여 형태를 변경할 수 있도록 이루어진 로봇으로서,
    장착된 상기 부품을 검출하여 부품 검출 결과를 출력하는 부품 검출 수단과,
    상기 부품을 교환하여 얻어지는 형태마다, 상기 부품 검출 결과에 대응하는 정보를 보유하는 정보 보유 수단과,
    상기 부품 검출 결과와 상기 정보 보유 수단에 보유한 정보의 비교 결과에 기초하여, 상기 로봇의 현재의 형태를 특정하고, 특정되는 상기 형태에 따라서 복수의 오브젝트에 의해 구성되는 소프트웨어를 변경하는 소프트웨어 변경 수단과,
    상기 로봇의 형태마다, 대응하는 오브젝트와 오브젝트간 통신에 필요한 결합 데이터를 보유하는 보유 수단과,
    상기 소프트웨어 변경 수단에 의해 설정된 소프트웨어에 따라, 전체의 동작을 제어하는 제어 수단을 구비하고,
    상기 소프트웨어 변경 수단은, 특정되는 상기 형태와 상기 결합 데이터에 기초하여 상기 소프트웨어의 오브젝트를 재구성하는 것을 특징으로 하는, 로봇.
  2. 삭제
  3. 제 1 항에 있어서,
    상기 소프트웨어는, 상기 형태의 변경에 의존하는 형태 의존의 소프트웨어와, 상기 형태의 변경에 의존하지 않는 형태 독립의 소프트웨어를 갖고,
    상기 소프트웨어 변경 수단은, 상기 형태 의존의 소프트웨어의 변경에 의해, 상기 형태에 따라서 소프트웨어를 변경하는 것을 특징으로 하는, 로봇.
  4. 제 1 항에 있어서,
    상기 부품 검출 결과에 대응하는 정보가 텍스트 데이터에 의한 기술(記述)인 것을 특징으로 하는, 로봇.
  5. 오브젝트간에 데이터 통신하는 연산 처리 장치에 있어서,
    데이터 교환 가능하게 상기 오브젝트를 결합하는 오브젝트 매니저와,
    상기 오브젝트 매니저에, 상기 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하는 것을 특징으로 하는, 연산 처리 장치.
  6. 제 5 항에 있어서,
    상기 결합 정보가, 결합하는 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것을 특징으로 하는, 연산 처리 장치.
  7. 제 5 항에 있어서,
    상기 결합 정보 제공 수단은, 복수의 결합 정보가 기록되어 이루어지는 파일로부터, 상기 결합 정보를 선택하여 상기 오브젝트 매니저에 제공하는 것을 특징으로 하는, 연산 처리 장치.
  8. 제 5 항에 있어서,
    상기 오브젝트 매니저는, 상기 결합 정보에 따라, 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 오브젝트에 의해 구성되는 소프트웨어를 변경하는 것을 특징으로 하는, 연산 처리 장치.
  9. 제 8 항에 있어서,
    상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는, 연산 처리 장치.
  10. 제 5 항에 있어서,
    상기 결합 정보가, 텍스트 데이터에 의한 기술인 것을 특징으로 하는, 연산 처리 장치.
  11. 결합 변경 가능한 복수의 오브젝트간에 데이터 통신하는 오브젝트간 통신 방법에 있어서,
    소정의 정보 제공 수단으로부터 제공되는 결합 정보에 기초하여, 데이터 교환 가능하게 상기 오브젝트를 결합하는 것을 특징으로 하는, 오브젝트간 통신 방법.
  12. 제 11 항에 있어서,
    상기 결합 정보가, 결합하는 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것을 특징으로 하는, 오브젝트간 통신 방법.
  13. 제 11 항에 있어서,
    상기 결합 정보가, 복수의 결합 정보가 기록되어 이루어지는 파일로부터 선택되어 제공되는 것을 특징으로 하는, 오브젝트간 통신 방법.
  14. 제 11 항에 있어서,
    상기 결합 정보에 따라, 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 오브젝트에 의해 구성되는 소프트웨어를 변경하는 것을 특징으로 하는, 오브젝트간 통신 방법.
  15. 제 14 항에 있어서,
    상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는, 오브젝트간 통신 방법.
  16. 제 11 항에 있어서,
    상기 결합 정보가, 텍스트 데이터에 의한 기술인 것을 특징으로 하는, 오브젝트간 통신 방법.
  17. 부품을 교환하여 형태를 변경할 수 있도록 이루어진 로봇으로서,
    오브젝트간에 데이터 통신함으로써 오브젝트에 의해 구성되는 소프트웨어에 의해 전체의 동작이 제어되고,
    데이터 교환 가능하게 상기 오브젝트를 결합하는 오브젝트 매니저와,
    상기 오브젝트 매니저에, 상기 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하는 것을 특징으로 하는, 로봇.
  18. 제 17 항에 있어서,
    상기 결합 정보가, 결합하는 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것을 특징으로 하는, 로봇.
  19. 제 17 항에 있어서,
    상기 결합 정보가, 복수의 결합 정보가 기록되어 이루어지는 파일로부터 선택되어 제공되는 것을 특징으로 하는, 로봇.
  20. 제 17 항에 있어서,
    상기 결합 정보에 따라, 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 소프트웨어를 변경하는 것을 특징으로 하는, 로봇.
  21. 제 20 항에 있어서,
    상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는, 로봇.
  22. 제 20 항에 있어서,
    상기 부품을 검출하는 검출 수단을 갖고,
    상기 결합 정보 제공 수단에 의해, 상기 검출 수단의 검출 결과에 따라서 상기 결합 정보가 제공됨으로써, 상기 소프트웨어의 변경이 상기 형태에 대응하여 이루어지는 것을 특징으로 하는, 로봇.
  23. 제 17 항에 있어서,
    상기 결합 정보가 텍스트 데이터에 의한 기술인 것을 특징으로 하는, 로봇.
KR1020007010145A 1999-01-13 2000-01-13 연산 처리 장치, 오브젝트간 통신 방법 및 로봇 KR100717982B1 (ko)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
JP99-006757 1999-01-13
JP675799 1999-01-13
JP99-006491 1999-01-13
JP649199 1999-01-13
JP2000006032A JP3424631B2 (ja) 1999-01-13 2000-01-11 ロボット装置及びソフトウエアの更新方法
JP2000-006032 2000-01-11

Publications (2)

Publication Number Publication Date
KR20010041854A KR20010041854A (ko) 2001-05-25
KR100717982B1 true KR100717982B1 (ko) 2007-05-16

Family

ID=27277189

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020007010145A KR100717982B1 (ko) 1999-01-13 2000-01-13 연산 처리 장치, 오브젝트간 통신 방법 및 로봇

Country Status (6)

Country Link
US (1) US6668211B1 (ko)
EP (1) EP1072972B1 (ko)
JP (1) JP3424631B2 (ko)
KR (1) KR100717982B1 (ko)
CN (2) CN1200345C (ko)
WO (1) WO2000042504A1 (ko)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010032278A1 (en) 1997-10-07 2001-10-18 Brown Stephen J. Remote generation and distribution of command programs for programmable devices
US8032605B2 (en) 1999-10-27 2011-10-04 Roy-G-Biv Corporation Generation and distribution of motion commands over a distributed network
JP2002113675A (ja) 2000-10-11 2002-04-16 Sony Corp ロボット制御システム並びにロボット制御用ソフトウェアの導入方法
EP1327503B1 (en) * 2000-10-11 2017-12-06 Sony Corporation Robot control system and robot control method
TWI236610B (en) * 2000-12-06 2005-07-21 Sony Corp Robotic creature device
JP4143305B2 (ja) * 2001-01-30 2008-09-03 日本電気株式会社 ロボット装置、照合環境判定方法、及び照合環境判定プログラム
US7904194B2 (en) 2001-02-09 2011-03-08 Roy-G-Biv Corporation Event management systems and methods for motion control systems
JP2003108208A (ja) * 2001-09-28 2003-04-11 Matsushita Electric Ind Co Ltd ロボット制御装置およびロボットと生産設備
AU2002357040A1 (en) * 2001-11-28 2003-06-10 Evolution Robotics, Inc. Sensor and actuator abstraction and aggregation in a hardware abstraction layer for a robot
JP2003308221A (ja) 2002-04-12 2003-10-31 Nec Corp ロボット制御システムと方法並びにプログラム
JP3870257B2 (ja) * 2002-05-02 2007-01-17 独立行政法人 宇宙航空研究開発機構 オフセット回転関節を有するロボット
KR100578342B1 (ko) * 2003-01-03 2006-05-11 주식회사 메가로보틱스 인공지능형 로봇완구 및 그 제어방법
US8027349B2 (en) 2003-09-25 2011-09-27 Roy-G-Biv Corporation Database event driven motion systems
US20060064503A1 (en) 2003-09-25 2006-03-23 Brown David W Data routing systems and methods
JP4613487B2 (ja) * 2003-11-07 2011-01-19 ソニー株式会社 電子機器、情報処理システム、情報処理装置および方法、プログラム、並びに記録媒体
JP4729345B2 (ja) * 2005-05-30 2011-07-20 博明 山口 移動機構、移動機構用部材及び該移動機構の制御方法
EP1795481A1 (de) * 2005-12-07 2007-06-13 Inventio Ag Beförderungsanlage und Verfahren zur Inbetriebnahme einer Beförderungsanlage
KR101255685B1 (ko) * 2008-12-22 2013-04-24 한국전자통신연구원 로봇 응용 프로그램 실행 장치 및 방법
US20120072020A1 (en) * 2010-09-20 2012-03-22 Electronics And Telecommunications Research Institute Method and apparatus for dynamically reconfiguring robot components
CN102722432B (zh) * 2011-03-29 2016-02-24 国际商业机器公司 追踪内存访问的方法和装置
US10279470B2 (en) * 2014-06-12 2019-05-07 Play-i, Inc. System and method for facilitating program sharing
US9498882B2 (en) 2014-06-12 2016-11-22 Play-i, Inc. System and method for reinforcing programming education through robotic feedback
US9672756B2 (en) 2014-06-12 2017-06-06 Play-i, Inc. System and method for toy visual programming
USD777846S1 (en) 2015-05-19 2017-01-31 Play-i, Inc. Connector accessory for toy robot
KR102219801B1 (ko) * 2017-09-22 2021-02-23 엘지전자 주식회사 인공지능을 이용한 이동 로봇 및 이동 로봇의 제어방법
USD916160S1 (en) * 2017-10-31 2021-04-13 Sony Corporation Robot
JP1622873S (ja) 2017-12-29 2019-01-28 ロボット
US11198218B1 (en) * 2018-06-27 2021-12-14 Nick Gorkavyi Mobile robotic system and method
KR102401242B1 (ko) * 2020-03-10 2022-05-25 주식회사 힐스엔지니어링 로봇 케어 시스템
USD985645S1 (en) * 2021-04-16 2023-05-09 Macroact Inc. Companion robot

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU7324396A (en) * 1996-11-05 1998-05-29 Millennium Interactive Limited Process control
US6505097B1 (en) * 1999-01-13 2003-01-07 Sony Corporation Arithmetic processing device, inter-object communication method, and robot
JP3994365B2 (ja) * 1999-09-03 2007-10-17 アイシン・エィ・ダブリュ株式会社 ナビゲーション装置及び記憶媒体

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
"An Open Architeceture for Robot Entertainment", M*
"Constructing Distributed Systems in Conic" IEEE T
"Reconfigurable Physical Agents", Fujita M. et al.
"Sony Legged Robot for RoboCup Challenge", Proceed

Also Published As

Publication number Publication date
KR20010041854A (ko) 2001-05-25
EP1072972A4 (en) 2004-05-26
JP3424631B2 (ja) 2003-07-07
CN100511130C (zh) 2009-07-08
JP2000267852A (ja) 2000-09-29
WO2000042504A1 (fr) 2000-07-20
EP1072972B1 (en) 2017-04-26
CN1560738A (zh) 2005-01-05
US6668211B1 (en) 2003-12-23
CN1200345C (zh) 2005-05-04
EP1072972A1 (en) 2001-01-31
CN1293777A (zh) 2001-05-02

Similar Documents

Publication Publication Date Title
KR100717982B1 (ko) 연산 처리 장치, 오브젝트간 통신 방법 및 로봇
US7388879B2 (en) Communication device and communication method network system and robot apparatus
US6728598B2 (en) Arithmetic processing device, inter-object communication method, and robot
US6816753B2 (en) Robot control system and robot control method
US6470235B2 (en) Authoring system and method, and storage medium used therewith
JPH0683746A (ja) 分散情報処理システム
Chaimowicz et al. ROCI: A distributed framework for multi-robot perception and control
US7228201B2 (en) Information processing device, information processing method, and robot apparatus
JPH11282658A (ja) 対話的ソフトウエア構築・駆動装置
JP2003233502A (ja) 演算処理装置及びオブジェクト間通信の管理方法
JP2002189608A (ja) 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置
CN114416222A (zh) 应用程序调用驱动接口的方法及装置
MacDonald et al. Design for dynamic reconfiguration of robot software
Elkady et al. A plug and play middleware for sensory modules, actuation platforms and task descriptions in robotic manipulation platforms
JP2002163225A (ja) Usb接続制御方法およびusbシステム
JPH08272644A (ja) 分散処理装置で実行されるプログラムのデバッグ方法
Rico et al. Programming model based on concurrent objects for the AIBO robot
Ledru Smart proxies for jini services
KR100359640B1 (ko) 클래스 동적 추가 시스템 및 그 운용 방법
Le Guyadec et al. Using HoRoCoL to control robotics Atoms
Tan Pattern-based parallel programming in a distributed memory environment
JPS60254270A (ja) 統合計算機システム
Dixon et al. Self-adaptive software composed of port-based agents
JP2000215180A (ja) デ―タ通信装置、デ―タ通信システム及びデ―タ通信方法
KR20080057401A (ko) 인간형 로봇의 장치관리자 및 관리 방법

Legal Events

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

Payment date: 20130426

Year of fee payment: 7

FPAY Annual fee payment

Payment date: 20140425

Year of fee payment: 8

FPAY Annual fee payment

Payment date: 20150506

Year of fee payment: 9

FPAY Annual fee payment

Payment date: 20180427

Year of fee payment: 12