KR20010041854A - 연산 처리 장치, 오브젝트간 통신 방법 및 로봇 - Google Patents
연산 처리 장치, 오브젝트간 통신 방법 및 로봇 Download PDFInfo
- Publication number
- KR20010041854A KR20010041854A KR1020007010145A KR20007010145A KR20010041854A KR 20010041854 A KR20010041854 A KR 20010041854A KR 1020007010145 A KR1020007010145 A KR 1020007010145A KR 20007010145 A KR20007010145 A KR 20007010145A KR 20010041854 A KR20010041854 A KR 20010041854A
- Authority
- KR
- South Korea
- Prior art keywords
- information
- software
- robot
- objects
- data
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0426—Programming the control sequence
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23312—Load program from attached device to control that device
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23389—Modular program, each process has corresponding program module
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/23—Pc programming
- G05B2219/23432—Select as function of different connected tools, each tool has its parameters
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32137—Configure, connect, combine different program modules
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/32—Operator till task planning
- G05B2219/32161—Object oriented control, programming
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33105—Identification of type of connected module, motor, panel
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/33—Director till display
- G05B2219/33125—System configuration, reconfiguration, customization, automatic
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/30—Nc systems
- G05B2219/40—Robotics, robotics mapping to robotics vision
- G05B2219/40304—Modular structure
-
- Y—GENERAL 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
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/02—Total factory control, e.g. smart factories, flexible manufacturing systems [FMS] or integrated manufacturing systems [IMS]
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
- Y10S707/99933—Query processing, i.e. searching
- Y10S707/99934—Query formulation, input preparation, or translation
-
- Y—GENERAL 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
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10T—TECHNICAL SUBJECTS COVERED BY FORMER US CLASSIFICATION
- Y10T74/00—Machine element or mechanism
- Y10T74/20—Control lever and linkage systems
- Y10T74/20207—Multiple controlling elements for single controlled element
- Y10T74/20305—Robotic arm
- Y10T74/20317—Robotic 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
종래, 예를 들면 페트형 로봇 등에 있어서는 오브젝트 지향에 따라 소프트웨어가 구성되도록 이루어지고, 오브젝트간 통신에 의해 여러가지 데이터를 처리하여 예를 들면 동물과 유사한 동작 등을 실행할 수 있도록 이루어져 있다.
그런데 이러한 종류의 페트형 로봇에 있어서, 예를 들면 발 등의 구성 부품을 필요에 따라서 교환하여 유저의 원하는 형태로 설정할 수 있으면, 이러한 종류의 페트형 로봇을 더한층 몸에 가까운 것으로 할 수 있다고 고려할 수 있다.
이 경우, 형태에 대응하여 소프트웨어를 간이하게 교환하는 것이 요구된다.
본 발명은 연산 처리 장치, 오브젝트간 통신 방법 및 로봇에 관한 것으로, 예를 들면 페트형 로봇에 적용할 수 있다. 본 발명은 형태마다 유지된 부품 검출 결과에 대응하는 정보와, 현재의 형태에 따른 부품 검출 결과와의 비교 결과에 근거하여, 형태에 따라서 소프트웨어를 변경함으로써, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있도록 한다. 또한 본 발명은 결합 정보에 근거하여, 데이터 교환 가능하게 오브젝트를 결합함으로써, 종래에 비하여 오브젝트의 독립성을 향상할 수 있도록 한다.
도 1은 본 발명의 실시예에 따른 로봇을 도시한 사시도.
도 2는 도 1의 로봇의 구성을 도시한 블록도.
도 3은 본 발명에 있어서의 소프트웨어 구조를 도시한 약선도.
도 4는 타이어형에 있어서의 소프트웨어 구조를 도시한 약선도.
도 5는 4 족형에 있어서의 자세의 변화를 도시한 상태 전이도.
도 6은 입력과 상태의 관계를 도시한 도표.
도 7은 디자인 로봇의 처리 순서를 도시한 흐름도.
도 8은 디자인 파일의 기술을 도시한 도표.
도 9는 결합 정보를 도시한 도표.
도 10은 부트 후에 있어서의 오브젝트 매니저, 가상 로봇, 디자인 로봇의 동작을 도시한 타임챠트.
도 11은 플러그 인, 플러그 아웃 등에 있어서의 오브젝트 매니저, 가상 로봇, 디자인 로봇의 동작을 도시한 타임챠트.
도 12는 옵저버와 서브젝트와의 관계를 도시한 약선도.
도 13은 멀티 옵저버에 있어서의 옵저버와 서브젝트와의 관계를 도시한 약선도.
도 14는 멀티서브젝트에 있어서의 옵저버와 서브젝트와의 관계를 도시한 약선도.
도 15는 오브젝트 매니저와 옵저버, 서브젝트의 관계를 도시한 약선도.
도 16은 결합 정보를 수취한 경우에 있어서의 오브젝트 매니저의 동작을 도시한 타임챠트.
도 17은 두 스타트 이후의 시퀀스를 도시한 타임챠트.
도 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는 복수 데이터를 정리한 데이터 통신의 설명에 제공하는 약선도.
본 발명은 이상의 점을 고려하여 이루어진 것으로, 첫째로, 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있는 로봇을 제안하고자 하는 것이다.
또한 이와 같이 발 등의 구성 부품을 필요에 따라서 교환하여 유저의 소망하는 형태로 설정하는 경우, 전체의 동작을 제어하는 소프트웨어에 있어서는 오브젝트를 재구축하여, 형태의 변화에 대응하도록 소프트웨어를 변경하는 것을 고려할 수 있다.
그러나, 종래의 오브젝트 지향의 소프트웨어에 있어서는 오브젝트간의 명시적인 관계를 전제로 설계되도록 이루어져 있으므로 인해, 오브젝트간의 의존성이 높다. 이로 인해 이와 같이 비교적 자유로운 형태의 변화에 대응하도록 소프트웨어를 변경하도록 하여도, 결국, 각 형태에 대응한 전용의 소프트웨어의 개발이 필요하게 된다.
이러한 오브젝트간의 의존성을 저감하는 하나의 방법으로서, 예를 들면 디자인 패턴(옵저버 패턴)에 의한 방법에 의해 소프트웨어를 개발하는 것을 고려할 수 있다(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)에 있어서도 채용되어 있는 것이다.
그러나, 상기 방법에 있어서도, 옵저버 패턴과 마찬가지로 옵저버가 서브젝트를 지정함으로써, 오브젝트의 독립성을 꾀하는 점에서 실용상 아직 불충분한 문제가 있으며, 또한 재컴파일, 재링킹도 필요하게 되는 문제가 있다.
본 발명은 이상의 점을 고려하여 이루어진 것이며, 제 2 에, 종래에 비하여 오브젝트의 독립성을 향상할 수 있는 연산 처리 장치, 오브젝트간 통신 방법 및 로봇을 제안하고자 하는 것이다.
이러한 과제를 해결하기 위해서, 제 1 항에 따른 발명에 있어서는 로봇에 적용하여, 장착된 부품을 검출하여 부품 검출 결과를 출력하는 부품 검출 수단과, 부품을 교환하여 얻어지는 형태마다, 부품 검출 결과에 대응하는 정보를 유지하는 정보 유지 수단과, 부품 검출 결과와 정보 유지 수단에 유지된 정보와의 비교 결과에 근거하여, 형태에 따라서 소프트웨어를 변경하는 소프트웨어 변경 수단을 구비하도록 한다.
이러한 과제를 해결하기 위해서, 제 5 항에 따른 발명에 있어서는 연산 처리 장치에 적용하여, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 상기 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 한다.
또한, 제 11 항에 따른 발명에 있어서는 오브젝트간 통신 방법에 적용하여, 소정의 정보 제공 수단으로부터 제공되는 결합 정보에 근거하여, 데이터 교환 가능하게 오브젝트를 결합한다.
또한, 제 17 항에 따른 발명에 있어서는 로봇에 적용하여, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 한다.
또한, 제 1 항에 따른 구성에 의하면, 장착된 부품을 검출하여 얻게 되는 부품 검출 결과와, 부품을 교환하여 얻어지는 형태마다, 부품 검출 결과에 대응하는 정보와의 비교 결과에 근거하여, 형태에 따라서 소프트웨어를 변경함으로써, 부품의 변경에 따르는 형태의 변경에 대응하여 소프트웨어를 변경할 수 있으며, 이로 인해 현재의 형태에 대응하는 적절한 소프트웨어를 간이하게 설정할 수 있다.
제 5 항에 따른 구성에 의하면, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 상기 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비함으로써, 오브젝트에 있어서는 구체적인 결합 대상을 전혀 고려하지 않고 설계할 수 있으며, 또한 이와 같이하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로 인해 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
또한, 제 11 항에 따른 구성에 의하면, 소정의 정보 제공 수단으로부터 제공되는 결합 정보에 근거하여, 데이터 교환 가능하게 오브젝트를 결합함으로써, 오브젝트에 있어서는 구체적인 결합 대상을 전혀 고려하지 않고 설계할 수 있으며, 또한 이와 같이하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로 인해 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
또한, 제 17 항에 따른 구성에 의하면, 데이터 교환 가능하게 오브젝트를 결합하는 오브젝트 매니저와, 오브젝트 매니저에 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하도록 함으로써, 구체적인 결합 대상을 전혀 고려하지 않고 각 오브젝트를 설계할 수 있으며, 또한 이와 같이하여 설계된 오브젝트에 관해서, 결합 정보를 다양하게 설정, 변경하여 결합을 다양하게 변경할 수 있으며, 이로 인해 오브젝트의 독립성을 종래에 비하여 현저하게 향상할 수 있다.
이하, 도면을 참조하여 본 발명의 일실시예를 상술한다.
(1) 제 1 실시예의 구성
(1-1) 전체 구성
도 1은 본 발명의 실시예에 따른 로봇을 도시한 사시도이다. 상기 로봇(1)은 소위 페트형 로봇이고, 전체가 개와 닮은 형상이며, 4 개의 발로 보행할 수 있도록 이루어져 있다. 즉 로봇(1)은 본체(2)에 이동 유닛(3)이 장착되고, 본체(2)가 두부(2A)와 동체부(2B)로 구성된다.
두부(2A)는 마이크(4), 터치 센서(5), 입체시 가능한 텔레비젼 카메라(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)의 현재의 형태를 나타내는 정보를 로봇 시스템 소프트웨어에 출력한다.
상기 디바이스 드라이버층의 상위에는 로봇 시스템 소프트웨어가 배치된다. 여기서 로봇 시스템 소프트웨어는 가상 로봇, 디자인 로봇, 파워 매니저, 오브젝트 매니저 등의 소프트웨어 오브젝트로 구성된다.
이 중, 가상 로봇은 로봇 시리얼 버스 디바이스 드라이버 간의 데이터 통신에 있어서, 각 디바이스 고유의 포맷에 의한 데이터를 로봇 일반적인 포맷으로 변환 송수한다. 구체적으로, 예를 들면, 모터 제어용 데이터에 관해서, 디바이스 고유의 포맷에 있어서는 전위차계인 센서 출력을 아날로그 디지털 변환하여 얻어지는 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에 도시한 천이에 따라서, 상기 천이도의 화살표에 대응하는 오브젝트의 메소드(entry)를 기동한다. 즉 수면 중인 상태에서 보행의 커맨드가 입력된 경우, 앉음, 기립, 보행과 자세를 순차 변화시키도록, 모션 리플라이 오브젝트의 대응하는 엔트리를 순차 기동한다. 또한 이 경우, 최후의 보행의 상태로 거슬러 도착하였을 때에는 상기 상태를 나타내는 자기 루프에 대응하는 워킹 패턴 제너레이터의 엔트리를 기동한다.
모션 리플라이는 모션 네트워크에 의한 엔트리의 기동에 의해, 대응하는 자세 변화용 관절 각도 지령치를 출력한다. 구체적으로, 모션 리플라이는 등록된 이산적인 관절 각도 지령치를 키 데이터터로서 유지하고, 상기 키 데이터를 사용한 보간 연산 처리에 의해 일련의 각도 지령치를 출력한다.
워킹 패턴 제너레이터는 형태 독립 소프트웨어에 의해 지정되는 방향으로 이동하도록, 각 관절 각도 지령치를 계산하여 출력한다.
비전은 예를 들면 화상 처리용 오브젝트이고, 텔레비젼 카메라(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)의 형태를 나타내고, 4 Legged는 4 족형의 형태인 것을 나타낸 기술이다. 또한 head, Right Front Leg, Left Front Leg, Right Rear Leg, Left Rear Leg는 두부, 오른쪽 앞발, 왼쪽 앞발, 오른쪽 뒷발, 왼쪽 뒷발을 나타내고, 이것에 의해 제 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와 데이터 형식 Mo Net Out Data, 서브젝트를 나타내는 S의 기술이 기술된다. 또한 동일의 서비스 명으로서 오브젝트 명인 MoNet Rep1ay, 데이터 형식 Mo Net Out Data 등이 기술되고, 마지막에 옵저버를 나타내는 O의 기술이 할당된다. 또한 계속되는 행에 있어서, 동일의 서브젝트 및 옵저버, 데이터 형식 등이 기술된다.
☆
DRX 4Legged(
MoNet.MoNetOutData..S,MoNetReplay.MoNetOutData…O
MoNet.MoNetOutData..S,WalkingPatternGenerator.MoNetOut Data…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), 대응하는 구성 요소 명에 의한 명칭(Right Camera), 서브젝트를 나타내는 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)로 통지된 옵저버에 대하여 대응하는 서브젝트의 서브젝트 DI(오브젝트 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)를 송출하고, 이것에 의해 상기 오브젝트를 파괴한다. 이 때 상기 오브젝트에 있어서는 두 이니셜라이즈(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. Right Camera. S, FooA. Image. Right Camera. O)로 표기되어지게 된다.
서브젝트 매니저는 상기 결합 정보(Connection Data)가 디자인 로봇으로부터 건네지면, 도 20에 도시된 바와 같이, 상기 결합 정보의 옵저버측의 기술(0. FooA. Image. Right Camera)를 키로하여, 서브젝트측의 기술(FooB. Image. Right Camera. S)를 연상 기억(1)에 기억하여 축적한다.
이에 반해, 각 오브젝트에 있어서는 두 이니셜라이즈(DoInit)에 의해 오브젝트 매니저의 등록 엔트리에 대하여 서비스 명, 셀렉터 번호를 통지하고, 오브젝트 매니저는 이들의 통지를 동일하게 연상 기억(2)에 기억하여 각 오브젝트를 등록한다.
즉, 이 경우 옵저버측인 오브젝트(A)에서는 결합 정보(Connection Data)에 있어서의 옵저버측의 기술(FooB. Image. Right Camera. O)와 동일의 기술에 의한 서비스 명을 통지하며, 또한 커넥션 엔트리의 셀렉터 번호를 통지한다. 또한 상기 오브젝트(A)에서는 상기 셀렉터 번호를 5로 한다.
오브젝트 매니저에 있어서는 도 21에 도시된 바와 같이, 결합 정보(Connection Data)에 있어서의 옵저버측의 기술(FooA. Image. Right Camer. O)을 키로 하여, 상기 오브젝트(A)의 오브젝트 ID, 셀렉터 번호(OID, Entry)=(2, 5)를 연상 기억(2)에 기록한다. 또한 여기서 상기 오브젝트(A)의 오브젝트 ID는 오퍼레이션 시스템으로부터 값 1로서 통지된 것이다.
또한, 이 경우, 서브젝트측인 오브젝트(B)에서는 결합 정보(Connection Data)에 있어서의 서브젝트측의 기술(FooB. Image. Right Camera. S)와 동일의 기술에 의한 서비스 명을 통지하며, 또한 커넥션 엔트리의 셀렉터 번호를 통지한다. 또한 상기 오브젝트(B)에서는 상기 셀렉터 번호를 5로 한다.
오브젝트 매니저에 있어서는 도 21에 있어서, 오브젝트(A)에 관해서의 기술과 함께 도시된 바와 같이, 결합 정보(Connection Data)에 있어서의 서브젝트측의 기술(FootB. Image. Right Camera. S)를 키로 하여, 상기 오브젝트(B)의 오브젝트 ID, 셀렉터 번호(OID, Entry)=(1, 5)를 연상 기억(2)에 기록한다. 또한 여기서 상기 오브젝트(B)의 오브젝트 ID는 오퍼레이션 시스템으로부터 값 2로서 통지된 것이다.
오브젝트 매니저에 있어서는 두 커넥트(DoConnect)시, 결합 정보(Connection Data)로부터 서브젝트측의 기술과 오브젝트측의 기술을 분리한다. 이것에 의해 오브젝트 매니저에 있어서는 연상 기억(1)에 기억된 키(FooA. Image, Right Camera. O)와, 상기 키(FooA. Image. Right Camera. O)에 의해 연상 기억(1)에 축적된 여러가지의 기술(FooA. Image. Right Camera. 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. Right Camera. O)을 키로 하여, 결합 정보(Connection Data)의 서브젝트측의 기술(FooB. Image. Right Camera. S)을 연상 기억(3)에 기억하고, 또한 연상 기억의 기록으로부터 옵저버측의 기술(FooA. Image. Right Camera. O)을 키로 한 서브젝트측의 기술(FooB. Image. Right Camera. 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. Right Camera. O를 키로 하여 그때까지 옵저버에 설정되어 있는 오브젝트 ID, 셀렉터 번호(1, 5)를 검출한다. 또한 상기 오브젝트 ID, 셀렉터 번호(1, 5)에 의해 옵저버인 옵저버(A)에 두 디스커넥트(DoDisconnect)를 지시함과 동시에, 연상 기억(2)의 대응하는 기술(옵저버 및 서브젝트인 오브젝트(A 및 B)의 기술)를 삭제하며, 또한 연상 기억(3)에 기록된 대응하는 기술을 삭제하여 연상 기억(1)에 다시 기록한다.
즉 오브젝트 매니저는 연상 기억(2)으로부터 FooA. Image. Right Camera. O, FooA. Image. Right Camera. 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, 셀렉터 번호를 특정하여 간이하게 오브젝트 통신을 구축할 수 있다.
또한 디자인 로봇에 의해, 복수의 결합 정보가 기록되어지는 디자인 파일로부터 결합 정보(C0nnection 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)를 돌려준다.
이와 같이하여 두 스타트의 페이즈가 실행되면, 로봇에 있어서는 계속해서 서비스 매니저에 대하여, 오브젝트 매니저에 의해 디스커넥트(Dis Connect)의 지시가 발행된다. 기동시에 있어서는 아무런 오브젝트가 로드되어 있지 않으므로, 이 경우, 상기 지시에 따라 서비스 매니저는 디자인 로봇으로부터 결합 정보(Connection Data)를 취득하고, 오브젝트 매니저에 처리의 완료를 통지한다. 오브젝트 매니저는 계속해서 동일하게 하여 디자인 로봇으로부터 결합 정보(Connection Data)를 취득한다. 이것에 의해 서비스 매니저에 있어서는 형태 의존 소프트웨어 등을 구성하는 각 오브젝트에 관해서, 오브젝트간 통신의 구축에 필요한 정보를 취득하는 데 반해, 오브젝트 매니저에 있어서는 이들의 오브젝트의 로드, 언로드에 필요한 정보를 취득한다.
이로 인해 오브젝트 매니저는 현재의 형태에 대응하는 필요한 오브젝트와, 불필요한 오브젝트의 리스트를 작성한다. 또한, 도 28에 도시된 바와 같이, 이들의 필요한 오브젝트(A 내지 C)에 관해서, 순차 로드를 지시하고, 이들 오브젝트(A 내지 C)를 구축한다. 이때 오브젝트 매니저는 도 29에 도시된 바와 같이, 상기 로드커맨드의 실행에 의해, 각 오브젝트의 오브젝트 ID(OID-a, OID-b, OID-c)를 취득한다.
계속해서 도 30 및 도 31에 도시된 바와 같이, 오브젝트 매니저는 이와 같이하여 취득한 오브젝트 ID에 의해 각 오브젝트에 순차 두 이니셜라이즈(DoInit)를 콜한다. 각 오브젝트에 있어서는 상기 두 이니셜라이즈(DoInit)에 의해 서비스 매니저에 대하여 각 서비스의 등록을 요구한다. 또한, 여기서 상기 서비스의 등록은 각 서비스 명, 오브젝트 ID, 셀렉터의 등록에 의해 실행된다.
서비스 매니저는 각 요구에 응동하여 각 오브젝트의 서비스를 등록하면, 등록 완료를 각 오브젝트에 통지하고, 각 오브젝트에 있어서는 상기 통지에 의해 오브젝트 매니저에 리플라이(Reply)를 돌려 준다.
이와 같이하여 각 오브젝트의 초기화가 완료하면, 오브젝트 매니저는 각 오브젝트의 Dis Connect를 서비스 매니저에 지시한다. 여기서 도 32에 도시된 바와 같이, 서비스 매니저는 상술한 두 스타트(DoStart) 페이즈에서 디자인 로봇이 취득한 결합 정보를 취득함으로써 리스트를 작성하여 유지한다. 여기서 상기 리스트는 Connect에 따른 리스트, Dis Connect에 따른 리스트 등으로 구성되고, 각 리스트는 각각 제 1 실시예에 대한 상술한 기술에 의한 결합 정보에 의해, 각 오브젝트의 서비스 명, 데이터 폼으로 구성된다. 또한 서비스 매니저는 각 오브젝트의 두 이니셜라이즈(DoInit)에서 취득한 서비스를 서비스 리스트에 의해 유지한다. 여기서 상기 서비스 리스트는 각 오브젝트마다 서비스 정보로서 정리되어 형성되고, 각 서비스에 있어서는 각 서비스에 따른 오브젝트 ID, 셀렉터에 의한 서비스 엔트리와, 각 서비스 명으로 구성된다.
서비스 매니저는 도 33에 도시된 바와 같이, 오브젝트 매니저로부터 각 오브젝트의 결합(Connect)이 지시되면, 이들의 각 오브젝트로부터 취득한 서비스의 정보와, 디자인 로봇으로부터 취득한 결합 정보를 대조한다. 또한 대조 결과에 근거하여, 순차 각 오브젝트에 통신 대상을 등록하고, 이것에 의해 각 오브젝트를 순차 데이터 통신 가능하게 결합한다.
즉, 도 34에 도시된 바와 같이, 서비스 매니저는 각 오브젝트로부터 서비스가 등록되면, 각 서비스의 서비스 명, 서비스 엔트리에 의한 서비스 정보를 각 오브젝트마다 정리하여 서비스 정보(Service Binding)를 작성하고, 상기 서비스 정보(Service Binding)를 등록한다. 이것에 의해 서비스 매니저는 서비스 리스트를 작성한다. 또한 디자인 로봇으로부터 취득한 결합 정보와, 과거에 기록한 결합 정보로부터 새로운 결합 상태와 현재의 결합 상태를 파악하고, 접속 정보, 절단정보를 작성한다. 또한, 이들 접속 정보, 절단 정보로부터 Connect에 따른 리스트, Dis Connect에 따른 리스트를 작성한다.
서비스 매니저는 서비스 리스트와 Connect에 따른 리스트와의 대조에 의해, 결합하는 서비스의 엔트리를 검출하고, 상기 검출 결과에 따라서 대응하는 오브젝트에 서비스의 엔트리를 통지한다. 또한 서비스 리스트와 Dis Connect에 따른 리스트와의 대조에 의해, 결합을 차단하는 서비스의 엔트리를 검출하고, 상기 검출 결과에 따라서 대응하는 오브젝트에 서비스의 엔트리를 통지한다. 또한 도 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)를 송출하여 파워 매니저 등으로부터 응답이 얻어지면, 오브젝트 매니저는 서비스 매니저에 대하여, 디스커넥트(Dis Connect)를 지시한다. 여기서 이와 같이 형태가 변경된 경우에는 현재 로드되어 있는 오브젝트와, 형태의 변경에 대응하는 오브젝트가 다른 것으로 인해, 서비스 매니저는 도 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 항에 있어서,상기 소프트웨어 변경 수단은,상기 비교 결과에 근거하여 상기 소프트웨어를 구성하는 오브젝트를 변경함으로써, 상기 형태에 따라서 소프트웨어를 변경하는 것을 특징으로 하는 로봇.
- 제 1 항에 있어서,상기 소프트웨어는,상기 형태의 변경에 의존하는 형태 의존의 소프트웨어와,상기 형태의 변경에 의존하지 않는 형태 독립의 소프트웨어를 구비하며, 상기 소프트웨어 변경 수단은,상기 형태 의존의 소프트웨어의 변경에 의해, 상기 형태에 따라서 소프트웨어를 변경하는 것을 특징으로 하는 로봇.
- 제 1 항에 있어서,상기 부품 검출 결과에 대응하는 정보가 텍스트 데이터에 의한 기술(記述)인 것을 특징으로 하는 로봇.
- 오브젝트 사이에서 데이터 통신하는 연산 처리 장치에 있어서,데이터 교환 가능하게 상기 오브젝트를 결합하는 오브젝트 매니저와,상기 오브젝트 매니저에, 상기 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하는 것을 특징으로 하는 연산 처리 장치.
- 제 5 항에 있어서,상기 결합 정보가,결합하는 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것을 특징으로 하는 연산 처리 장치.
- 제 5 항에 있어서,상기 결합 정보 제공 수단은,복수의 결합 정보가 기록되어 이루어지는 파일로부터, 상기 결합 정보를 선택하여 상기 오브젝트 매니저에 제공하는 것을 특징으로 하는 연산 처리 장치.
- 제 5 항에 있어서,상기 오브젝트 매니저는,상기 결합 정보에 따라서 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 오브젝트로 구성되는 소프트웨어를 변경하는 것을 특징으로 하는 연산 처리 장치.
- 제 8 항에 있어서,상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는 연산 처리 장치.
- 제 5 항에 있어서,상기 결합 정보가,텍스트 데이터에 의한 기술인 것을 특징으로 하는 연산 처리 장치.
- 오브젝트간에 데이터 통신하는 오브젝트간 통신 방법에 있어서,소정의 정보 제공 수단으로부터 제공되는 결합 정보에 근거하여, 데이터 교환 가능하게 상기 오브젝트를 결합하는 것을 특징으로 하는 오브젝트간 통신 방법.
- 제 11 항에 있어서,상기 결합 정보가,결합하는 오브젝트와, 통신하는 데이터의 형식을 특정하는 정보인 것을 특징으로 하는 오브젝트간 통신 방법.
- 제 11 항에 있어서,상기 결합 정보가,복수의 결합 정보가 기록되어 이루어지는 파일로부터 선택되어 제공되는 것을 특징으로 하는 오브젝트간 통신 방법.
- 제 11 항에 있어서,상기 결합 정보에 따라서, 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 오브젝트에 의해 구성되는 소프트웨어를 변경하는 것을 특징으로 하는 오브젝트간 통신 방법.
- 제 14 항에 있어서,상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는 오브젝트간 통신 방법.
- 제 11 항에 있어서,상기 결합 정보가,텍스트 데이터에 의한 기술인 것을 특징으로 하는 오브젝트간 통신 방법.
- 부품을 교환하여 형태를 변경할 수 있도록 이루어진 로봇으로서,오브젝트간에 데이터 통신함으로써 오브젝트에 의해 구성되는 소프트웨어에 의해 전체의 동작이 제어되고,데이터 교환 가능하게 상기 오브젝트를 결합하는 오브젝트 매니저와,상기 오브젝트 매니저에, 상기 오브젝트의 결합에 필요한 결합 정보를 제공하는 결합 정보 제공 수단을 구비하는 것을 특징으로 하는 로봇.
- 제 17 항에 있어서,상기 결합 정보가,결합하는 오브젝트와, 통신하는 데이터의 형식을 특징으로 하는 정보인 것을 특징으로 하는 로봇.
- 제 17 항에 있어서,상기 결합 정보가,복수의 결합 정보가 기록되어 이루어지는 파일로부터 선택되어 제공되는 것을 특징으로 하는 로봇.
- 제 17 항에 있어서,상기 결합 정보에 따라서 대응하는 오브젝트간의 결합을 분리한 후 상기 오브젝트를 결합함으로써, 상기 소프트웨어를 변경하는 것을 특징으로 하는 로봇.
- 제 20 항에 있어서,상기 소프트웨어의 변경이 전력 소비 모드의 전환인 것을 특징으로 하는 로봇.
- 제 20 항에 있어서,상기 부품을 검출하는 검출 수단을 구비하며,상기 결합 정보 제공 수단에 의해,상기 검출 수단의 검출 결과에 따라서 상기 결합 정보가 제공됨으로써, 상기 소프트웨어의 변경이 상기 형태에 대응하여 이루어지는 것을 특징으로 하는 로봇.
- 제 17 항에 있어서,상기 결합 정보가,텍스트 데이터에 의한 기술인 것을 특징으로 하는 로봇.
Applications Claiming Priority (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP99-006491 | 1999-01-13 | ||
JP99-006757 | 1999-01-13 | ||
JP675799 | 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 true KR20010041854A (ko) | 2001-05-25 |
KR100717982B1 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) | CN100511130C (ko) |
WO (1) | WO2000042504A1 (ko) |
Families Citing this family (30)
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 | ロボット制御システム並びにロボット制御用ソフトウェアの導入方法 |
US6816753B2 (en) | 2000-10-11 | 2004-11-09 | 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 | ロボット制御装置およびロボットと生産設備 |
KR100980793B1 (ko) * | 2001-11-28 | 2010-09-10 | 에볼루션 로보틱스, 인크. | 로봇을 위한 하드웨어 추상화 계층에서의 센서 및액추에이터 추상화 및 집단화 |
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 | 주식회사 메가로보틱스 | 인공지능형 로봇완구 및 그 제어방법 |
US20060064503A1 (en) | 2003-09-25 | 2006-03-23 | Brown David W | Data routing systems and methods |
US8027349B2 (en) | 2003-09-25 | 2011-09-27 | Roy-G-Biv Corporation | Database event driven motion systems |
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 | 国际商业机器公司 | 追踪内存访问的方法和装置 |
CN106573378A (zh) * | 2014-06-12 | 2017-04-19 | 普雷-艾公司 | 通过机器人反馈增强编程教育的***和方法 |
US9672756B2 (en) | 2014-06-12 | 2017-06-06 | Play-i, Inc. | System and method for toy visual programming |
US10279470B2 (en) * | 2014-06-12 | 2019-05-07 | Play-i, Inc. | System and method for facilitating program sharing |
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE69620265T2 (de) * | 1996-11-05 | 2002-11-21 | Cyberlife Technology Ltd | Prozesssteuervorrichtung |
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 | アイシン・エィ・ダブリュ株式会社 | ナビゲーション装置及び記憶媒体 |
-
2000
- 2000-01-11 JP JP2000006032A patent/JP3424631B2/ja not_active Expired - Lifetime
- 2000-01-13 US US09/623,972 patent/US6668211B1/en not_active Expired - Lifetime
- 2000-01-13 EP EP00900363.3A patent/EP1072972B1/en not_active Expired - Lifetime
- 2000-01-13 CN CNB2004100478556A patent/CN100511130C/zh not_active Expired - Lifetime
- 2000-01-13 KR KR1020007010145A patent/KR100717982B1/ko active IP Right Grant
- 2000-01-13 CN CNB008000336A patent/CN1200345C/zh not_active Expired - Lifetime
- 2000-01-13 WO PCT/JP2000/000123 patent/WO2000042504A1/ja active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
WO2000042504A1 (fr) | 2000-07-20 |
CN100511130C (zh) | 2009-07-08 |
EP1072972A1 (en) | 2001-01-31 |
EP1072972B1 (en) | 2017-04-26 |
EP1072972A4 (en) | 2004-05-26 |
CN1200345C (zh) | 2005-05-04 |
JP3424631B2 (ja) | 2003-07-07 |
US6668211B1 (en) | 2003-12-23 |
KR100717982B1 (ko) | 2007-05-16 |
CN1293777A (zh) | 2001-05-02 |
CN1560738A (zh) | 2005-01-05 |
JP2000267852A (ja) | 2000-09-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20010041854A (ko) | 연산 처리 장치, 오브젝트간 통신 방법 및 로봇 | |
US7388879B2 (en) | Communication device and communication method network system and robot apparatus | |
US6728598B2 (en) | Arithmetic processing device, inter-object communication method, and robot | |
JPH0683746A (ja) | 分散情報処理システム | |
EP1327503A1 (en) | Robot control system and robot control method | |
Koubâa et al. | Turtlebot at office: A service-oriented software architecture for personal assistant robots using ros | |
KR100559251B1 (ko) | 개방형 인터넷망 기반의 로봇 개발을 위한 분산소프트웨어 통합서비스방법 | |
Chaimowicz et al. | ROCI: A distributed framework for multi-robot perception and control | |
JPH11282658A (ja) | 対話的ソフトウエア構築・駆動装置 | |
US7228201B2 (en) | Information processing device, information processing method, and robot apparatus | |
US6408333B1 (en) | System for portable establishing network server | |
KR100834977B1 (ko) | 임베디드 에이전트 프레임워크 및 이를 이용한 유비쿼터스서비스 제공 방법 | |
JP2003233502A (ja) | 演算処理装置及びオブジェクト間通信の管理方法 | |
JP2002189608A (ja) | 通信装置及び通信方法、情報処理システム、プログラム作成方法、ネットワークシステム、並びにロボット装置 | |
US7051093B1 (en) | QNX operation system network auto configuration | |
JPH07175547A (ja) | ネットワークシステムの端末環境設定方式 | |
Rico et al. | Programming model based on concurrent objects for the AIBO robot | |
JPH08272644A (ja) | 分散処理装置で実行されるプログラムのデバッグ方法 | |
KR100359640B1 (ko) | 클래스 동적 추가 시스템 및 그 운용 방법 | |
JP2003131884A (ja) | ネットワーク接続型ペットロボットシステム | |
JP2004078550A (ja) | ソフトウェア更新システム | |
Dixon et al. | Self-adaptive software composed of port-based agents | |
Tan | Pattern-based parallel programming in a distributed memory environment | |
JPH0256668A (ja) | 分散型システムにおけるプログラム起動方式 | |
JPH0784924A (ja) | ネットワークシステムにおけるデータのダウンロード方法 |
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 |