JP2002063038A - 情報処理装置及び情報処理方法並びにロボット装置 - Google Patents
情報処理装置及び情報処理方法並びにロボット装置Info
- Publication number
- JP2002063038A JP2002063038A JP2000247021A JP2000247021A JP2002063038A JP 2002063038 A JP2002063038 A JP 2002063038A JP 2000247021 A JP2000247021 A JP 2000247021A JP 2000247021 A JP2000247021 A JP 2000247021A JP 2002063038 A JP2002063038 A JP 2002063038A
- Authority
- JP
- Japan
- Prior art keywords
- information processing
- shared memory
- data
- robot
- access
- Prior art date
- Legal status (The legal status 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 status listed.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/544—Buffers; Shared memory; Pipes
-
- 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/418—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM]
- G05B19/41865—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow
- G05B19/4187—Total factory control, i.e. centrally controlling a plurality of machines, e.g. direct or distributed numerical control [DNC], flexible manufacturing systems [FMS], integrated manufacturing systems [IMS] or computer integrated manufacturing [CIM] characterised by job scheduling, process planning, material flow by tool management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/004—Artificial life, i.e. computing arrangements simulating life
- G06N3/008—Artificial life, i.e. computing arrangements simulating life based on physical entities controlled by simulated intelligence so as to replicate intelligent life forms, e.g. based on robots replicating pets or humans in their appearance or behaviour
-
- 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]
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Robotics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Manufacturing & Machinery (AREA)
- Quality & Reliability (AREA)
- Automation & Control Theory (AREA)
- Manipulator (AREA)
- Numerical Control (AREA)
Abstract
(57)【要約】
【課題】 プロセス間通信を円滑に行うことを容易に実
現できる。 【解決手段】 ロボット装置1は、複数のオブジェクト
を有して、当該オブジェクト間で行うオブジェクト間通
信に基づいて制御処理するものであって、当該複数のオ
ブジェクトにより共有される共有メモリへの当該複数の
オブジェクトによるアクセスを制御してオブジェクト間
通信を行う中央処理プロセス(CPU)を備える。具体
的には、中央処理プロセスは、オブジェクトによる共有
メモリMの所定領域M1,M2へのアクセスに応じてポイ
ンタP11,P12,P13,P21,P22を発生させて、この
ポインタを対応される各参照数計測オブジェクトR
O1,RO2により計測し、その計測数に応じてアクセス
を制御してオブジェクト間通信を行う。
現できる。 【解決手段】 ロボット装置1は、複数のオブジェクト
を有して、当該オブジェクト間で行うオブジェクト間通
信に基づいて制御処理するものであって、当該複数のオ
ブジェクトにより共有される共有メモリへの当該複数の
オブジェクトによるアクセスを制御してオブジェクト間
通信を行う中央処理プロセス(CPU)を備える。具体
的には、中央処理プロセスは、オブジェクトによる共有
メモリMの所定領域M1,M2へのアクセスに応じてポイ
ンタP11,P12,P13,P21,P22を発生させて、この
ポインタを対応される各参照数計測オブジェクトR
O1,RO2により計測し、その計測数に応じてアクセス
を制御してオブジェクト間通信を行う。
Description
【0001】
【発明の属する技術分野】本発明は、複数のプロセスに
より種々の処理を行う情報処理装置及び情報処理方法並
びに、複数のプロセスにより動作等が決定されるロボッ
ト装置に関する。
より種々の処理を行う情報処理装置及び情報処理方法並
びに、複数のプロセスにより動作等が決定されるロボッ
ト装置に関する。
【0002】
【従来の技術】リアルタイムでタスクを実行する複数の
分散プロセス同士の通信(プロセス間通信)を行う場
合、それぞれのプロセスの処理を重さ、優先度、処理周
期等によってタスクの進行状況に差が生じる。例えば、
高速で実行されるプロセスAから低速で実行されるプロ
セスBに対してプロセスAの処理結果(データ)を送信
すると、プロセスBは、プロセスAからの受信キューで
いっぱいになり溢れてしまう。このようなキューの溢れ
の問題は、リアルタイムで動作するシステムの各所で発
生する。これを防止するためにプロセス同士をなんらか
の手法でシェイクハンドする必要があり、例えば、その
手法として以下の3つの手法(OSの基礎と応用、A.
S.タネンバウム、トッパン、pp.464)が提案されてい
る。 ブロッキング送信 コピーを伴う非ブロッキング送信 割り込みを伴う非ブロッキング送信 このような〜の3つの手法があり、のブロッキン
グ送信は、送信が完了し、相手のキューが空になるまで
待つようにした送信手法である。のコピーを伴う非ブ
ロッキング送信は、データを一旦システムの領域にコピ
ーをして送信側のプロセスを先に進ませるようにした送
信手法である。の割り込みを伴う非ブロッキング送信
は、割り込み処理によって送信バッファへの書き込みを
行うようにした送信手法である。
分散プロセス同士の通信(プロセス間通信)を行う場
合、それぞれのプロセスの処理を重さ、優先度、処理周
期等によってタスクの進行状況に差が生じる。例えば、
高速で実行されるプロセスAから低速で実行されるプロ
セスBに対してプロセスAの処理結果(データ)を送信
すると、プロセスBは、プロセスAからの受信キューで
いっぱいになり溢れてしまう。このようなキューの溢れ
の問題は、リアルタイムで動作するシステムの各所で発
生する。これを防止するためにプロセス同士をなんらか
の手法でシェイクハンドする必要があり、例えば、その
手法として以下の3つの手法(OSの基礎と応用、A.
S.タネンバウム、トッパン、pp.464)が提案されてい
る。 ブロッキング送信 コピーを伴う非ブロッキング送信 割り込みを伴う非ブロッキング送信 このような〜の3つの手法があり、のブロッキン
グ送信は、送信が完了し、相手のキューが空になるまで
待つようにした送信手法である。のコピーを伴う非ブ
ロッキング送信は、データを一旦システムの領域にコピ
ーをして送信側のプロセスを先に進ませるようにした送
信手法である。の割り込みを伴う非ブロッキング送信
は、割り込み処理によって送信バッファへの書き込みを
行うようにした送信手法である。
【0003】
【発明が解決しようとする課題】ところで、上述のブ
ロッキング送信は、安全かつ確実な送信手法といえる
が、部品化されたソフトウエア或いはプロセス(例え
ば、オブジェクト指向のソフトウエア、以下、オブジェ
クトという。)の接続を自在に変化させる場合には接続
の仕方によっては容易にデットロックを引き起こしてし
まうので現実的ではない。
ロッキング送信は、安全かつ確実な送信手法といえる
が、部品化されたソフトウエア或いはプロセス(例え
ば、オブジェクト指向のソフトウエア、以下、オブジェ
クトという。)の接続を自在に変化させる場合には接続
の仕方によっては容易にデットロックを引き起こしてし
まうので現実的ではない。
【0004】ここで、オブジェクト指向によりソフトウ
エアが構成される物としては、例えばペット型のロボッ
ト装置等がある。ペット型のロボット装置は、オブジェ
クト間通信(プロセス間通信)により種々の処理により
(例えば、データ通信により)、例えば動物に似た仕草
等を出現するようになされている。
エアが構成される物としては、例えばペット型のロボッ
ト装置等がある。ペット型のロボット装置は、オブジェ
クト間通信(プロセス間通信)により種々の処理により
(例えば、データ通信により)、例えば動物に似た仕草
等を出現するようになされている。
【0005】また、上述のコピーを伴う非ブロッキン
グ送信は、余分なコピーを繰り返すために効率が悪い。
例えば、複数のオブジェクトと複数のオブジェクトとの
通信(接続)が許されるオブジェクト間の通信では、接
続数が増加するとコピー回数も増加しバッファとして使
用するメモリも増加してしまう。
グ送信は、余分なコピーを繰り返すために効率が悪い。
例えば、複数のオブジェクトと複数のオブジェクトとの
通信(接続)が許されるオブジェクト間の通信では、接
続数が増加するとコピー回数も増加しバッファとして使
用するメモリも増加してしまう。
【0006】また、上述の割り込みを伴う非ブロッキ
ング送信は、送信バッファから余分なコピーを起こさな
いで先の処理に進めるため時間の節約が図れるようにし
ている。しかし、この割り込みを伴う非ブロッキング
送信は、送信バッファが再び書き込み可能になったこと
が割り込みによって通知されるのでユーザーにとってプ
ログラミングの扱いが難しくなり利点よりも問題点の方
が多いとされている。
ング送信は、送信バッファから余分なコピーを起こさな
いで先の処理に進めるため時間の節約が図れるようにし
ている。しかし、この割り込みを伴う非ブロッキング
送信は、送信バッファが再び書き込み可能になったこと
が割り込みによって通知されるのでユーザーにとってプ
ログラミングの扱いが難しくなり利点よりも問題点の方
が多いとされている。
【0007】このようなことから、割り込みを伴う非
ブロッキング送信のように送信バッファから余分なコピ
ーをなくすことを実現しながらも、その問題点を解消
し、取り扱い等についてユーザーに煩わしさを感じさせ
ないようにすることが望まれる。
ブロッキング送信のように送信バッファから余分なコピ
ーをなくすことを実現しながらも、その問題点を解消
し、取り扱い等についてユーザーに煩わしさを感じさせ
ないようにすることが望まれる。
【0008】そこで、本発明は、上述の実情に鑑みてな
されたものであり、プロセス間通信を円滑に行うことを
容易に実現できる情報処理装置及び情報処理方法並びに
ロボット装置を提供することを目的としている。
されたものであり、プロセス間通信を円滑に行うことを
容易に実現できる情報処理装置及び情報処理方法並びに
ロボット装置を提供することを目的としている。
【0009】
【課題を解決するための手段】本発明に係る情報処理装
置は、上述の課題を解決するために、複数の情報処理プ
ロセスを有して、当該情報処理プロセス間で行うプロセ
ス間通信に基づいて制御処理するものであって、当該複
数の情報処理プロセスにより共有される共有メモリへの
当該複数の情報処理プロセスによるアクセスを制御して
プロセス間通信を行う制御手段を備える。
置は、上述の課題を解決するために、複数の情報処理プ
ロセスを有して、当該情報処理プロセス間で行うプロセ
ス間通信に基づいて制御処理するものであって、当該複
数の情報処理プロセスにより共有される共有メモリへの
当該複数の情報処理プロセスによるアクセスを制御して
プロセス間通信を行う制御手段を備える。
【0010】このような構成を備えた情報処理装置は、
それぞれが独立して処理を実行する情報処理プロセスが
共有メモリ上のデータを共有して各種処理を実行する。
それぞれが独立して処理を実行する情報処理プロセスが
共有メモリ上のデータを共有して各種処理を実行する。
【0011】また、本発明に係る情報処理方法は、上述
の課題を解決するために、複数の情報処理プロセスを有
して、当該情報処理プロセス間で行うプロセス間通信に
基づいて制御処理するものであって、当該複数の情報処
理プロセスにより共有される共有メモリへの当該複数の
情報処理プロセスによるアクセスを制御してプロセス間
通信を行う。
の課題を解決するために、複数の情報処理プロセスを有
して、当該情報処理プロセス間で行うプロセス間通信に
基づいて制御処理するものであって、当該複数の情報処
理プロセスにより共有される共有メモリへの当該複数の
情報処理プロセスによるアクセスを制御してプロセス間
通信を行う。
【0012】このような情報処理方法は、それぞれが独
立して処理を実行する情報処理プロセスが共有メモリ上
のデータを共有して各種処理を実行する。
立して処理を実行する情報処理プロセスが共有メモリ上
のデータを共有して各種処理を実行する。
【0013】また、本発明に係るロボット装置は、上述
の課題を解決するために、動作を表出させる出力手段
と、複数の情報処理プロセスを有して、当該情報処理プ
ロセス間で行うプロセス間通信に基づいて出力手段の制
御処理をするものであって、当該複数の情報処理プロセ
スにより共有される共有メモリへの当該複数の情報処理
プロセスによるアクセスを制御してプロセス間通信を行
う制御手段とを備える。
の課題を解決するために、動作を表出させる出力手段
と、複数の情報処理プロセスを有して、当該情報処理プ
ロセス間で行うプロセス間通信に基づいて出力手段の制
御処理をするものであって、当該複数の情報処理プロセ
スにより共有される共有メモリへの当該複数の情報処理
プロセスによるアクセスを制御してプロセス間通信を行
う制御手段とを備える。
【0014】このような構成を備えたロボット装置は、
それぞれが独立して処理を実行する情報処理プロセスが
共有メモリ上のデータを共有して出力手段の制御処理を
実行する。
それぞれが独立して処理を実行する情報処理プロセスが
共有メモリ上のデータを共有して出力手段の制御処理を
実行する。
【0015】
【発明の実施の形態】以下、本発明の実施の形態につい
て図面を用いて詳しく説明する。この実施の形態は、本
発明を、オブジェクト指向によりソフトウエアが構築さ
れたペット型のロボット装置に適用したものである。ペ
ット型のロボット装置は、オブジェクト間通信(プロセ
ス間通信)により種々の処理により(例えば、データ通
信により)、例えば動物に似た仕草等を出現するように
なされている。なお、本発明は、ペット型のロボット装
置に適用されることに限定されないことはいうまでもな
く、本発明の意義に応じて適用されることはいうまでも
ない。ロボット装置の構成等を先ず説明して、その後、
本発明の要部に係る部分を詳述する。
て図面を用いて詳しく説明する。この実施の形態は、本
発明を、オブジェクト指向によりソフトウエアが構築さ
れたペット型のロボット装置に適用したものである。ペ
ット型のロボット装置は、オブジェクト間通信(プロセ
ス間通信)により種々の処理により(例えば、データ通
信により)、例えば動物に似た仕草等を出現するように
なされている。なお、本発明は、ペット型のロボット装
置に適用されることに限定されないことはいうまでもな
く、本発明の意義に応じて適用されることはいうまでも
ない。ロボット装置の構成等を先ず説明して、その後、
本発明の要部に係る部分を詳述する。
【0016】(1)実施の形態の構成 (1−1)全体構成 ロボット装置1は、図1に示すように、いわゆるペット
型のロボット装置であり、全体が犬に似た形状であり、
4本足により歩行できるようになされている。すなわち
ロボット装置1は、本体2に移動ユニット3が取り付け
られ、この本体2が頭部2Aと胴体部2Bとにより構成
される。
型のロボット装置であり、全体が犬に似た形状であり、
4本足により歩行できるようになされている。すなわち
ロボット装置1は、本体2に移動ユニット3が取り付け
られ、この本体2が頭部2Aと胴体部2Bとにより構成
される。
【0017】頭部2Aは、マイク4、タッチセンサー
5、立体視可能なテレビジョンカメラ6、遠隔制御に係
る赤外線の受信部7等が配置され、これらにより各種情
報を取得できるようになされている。また、頭部2A
は、画像表示部9、スピーカー10が配置され、これら
により種々の情報を出力できるようになされている。な
お、頭部2Aの構成は、このような構成からなることに
限定されないことはいうまでもなく、すなわち例えば、
画像表示部9を、LED(Light Emiting Diode)によ
り構成して、表情を表現するようにすることもできる。
5、立体視可能なテレビジョンカメラ6、遠隔制御に係
る赤外線の受信部7等が配置され、これらにより各種情
報を取得できるようになされている。また、頭部2A
は、画像表示部9、スピーカー10が配置され、これら
により種々の情報を出力できるようになされている。な
お、頭部2Aの構成は、このような構成からなることに
限定されないことはいうまでもなく、すなわち例えば、
画像表示部9を、LED(Light Emiting Diode)によ
り構成して、表情を表現するようにすることもできる。
【0018】胴体部2Bは、背中の部分に操作子11が
配置され、また尻尾に相当する箇所にアンテナ12が配
置されるようになされ、これらを介してユーザーの操作
を検出できるようになされている。また胴体2Bは、ス
ロットを有し、このスロットにICカードを装着してソ
フトウエアのバージョンアップ等を実行できるようにな
されている。
配置され、また尻尾に相当する箇所にアンテナ12が配
置されるようになされ、これらを介してユーザーの操作
を検出できるようになされている。また胴体2Bは、ス
ロットを有し、このスロットにICカードを装着してソ
フトウエアのバージョンアップ等を実行できるようにな
されている。
【0019】さらに、胴体部2Bは、頭部2Aを介して
入出力する各種情報、操作子11等の操作情報を処理し
て全体の動作を制御するコントローラ15、各部に電源
を供給する電源ユニット14、アンテナ12を介して各
種情報を送受する通信ユニット16等が配置され、下部
にバッテリー17が配置されるようになされている。
入出力する各種情報、操作子11等の操作情報を処理し
て全体の動作を制御するコントローラ15、各部に電源
を供給する電源ユニット14、アンテナ12を介して各
種情報を送受する通信ユニット16等が配置され、下部
にバッテリー17が配置されるようになされている。
【0020】これに対して移動ユニット3は、それぞれ
関節に相当する箇所にアクチュエータ、角度検出センサ
ーを配置してなる4つの足を配置して形成され、本体2
とシリアルバスにより接続され、本体2の制御により動
作するようになされている。これによりロボット装置1
は、4足歩行により移動できるようになされている。
関節に相当する箇所にアクチュエータ、角度検出センサ
ーを配置してなる4つの足を配置して形成され、本体2
とシリアルバスにより接続され、本体2の制御により動
作するようになされている。これによりロボット装置1
は、4足歩行により移動できるようになされている。
【0021】さらに、この移動ユニット3は、後足が本
体2より取り外すことができるようになされている。ロ
ボット装置1は、この後足に代えて、タイヤを備えた移
動ユニットを取り付けることができるようになされてい
る。これによりこのロボット装置1は、ユーザーの好み
に応じて4足により移動する形態(以下、4足型とい
う。)と、タイヤにより移動する形態(以下、タイヤ型
という。)とで形態を変更できるようになされている。
体2より取り外すことができるようになされている。ロ
ボット装置1は、この後足に代えて、タイヤを備えた移
動ユニットを取り付けることができるようになされてい
る。これによりこのロボット装置1は、ユーザーの好み
に応じて4足により移動する形態(以下、4足型とい
う。)と、タイヤにより移動する形態(以下、タイヤ型
という。)とで形態を変更できるようになされている。
【0022】図2は、このロボット装置1の構成を示す
ブロック図である。ロボット装置1においては、処理プ
ログラムを記録したプログラムメデイア20がフェリペ
ラル21を介して中央処理ユニット22に接続され、こ
の中央処理ユニット22によりプログラムメデイア20
に記録された処理手順を実行するようになされている。
また、中央処理ユニット22は、フェリペラル21を介
して移動ユニット3の各アクチュエータ、センサー、さ
らにはテレビジョンカメラ6、操作子11等であるロボ
ット装置コンポーネント24、25、26と接続され、
これにより全体の動作を制御できるようになされてい
る。
ブロック図である。ロボット装置1においては、処理プ
ログラムを記録したプログラムメデイア20がフェリペ
ラル21を介して中央処理ユニット22に接続され、こ
の中央処理ユニット22によりプログラムメデイア20
に記録された処理手順を実行するようになされている。
また、中央処理ユニット22は、フェリペラル21を介
して移動ユニット3の各アクチュエータ、センサー、さ
らにはテレビジョンカメラ6、操作子11等であるロボ
ット装置コンポーネント24、25、26と接続され、
これにより全体の動作を制御できるようになされてい
る。
【0023】また、中央処理ユニット22は、同様に、
フェリペラル21を介して電源ユニット14を構成する
電源制御用の1チップマイコン27と接続され、この1
チップマイコン27の動作を制御してバッテリー17よ
り全体に電源を供給し、さらには省電力モードにおいて
バッテリー17に代えてボタン電池29より全体の電源
を供給するようになされている。
フェリペラル21を介して電源ユニット14を構成する
電源制御用の1チップマイコン27と接続され、この1
チップマイコン27の動作を制御してバッテリー17よ
り全体に電源を供給し、さらには省電力モードにおいて
バッテリー17に代えてボタン電池29より全体の電源
を供給するようになされている。
【0024】そして、中央処理ユニット22は、後で詳
述するが、複数の情報処理プロセス(オブジェクト)を
有して、当該情報処理プロセス間(オブジェクト間)で
行うプロセス間通信(オブジェクト間通信)に基づいて
制御処理するものであって、当該複数の情報処理プロセ
ス(オブジェクト)により共有される共有メモリへの当
該複数の情報処理プロセス(オブジェクト)によるアク
セスを制御してプロセス間通信(オブジェクト間通信)
を行う制御手段としての機能を有している。
述するが、複数の情報処理プロセス(オブジェクト)を
有して、当該情報処理プロセス間(オブジェクト間)で
行うプロセス間通信(オブジェクト間通信)に基づいて
制御処理するものであって、当該複数の情報処理プロセ
ス(オブジェクト)により共有される共有メモリへの当
該複数の情報処理プロセス(オブジェクト)によるアク
セスを制御してプロセス間通信(オブジェクト間通信)
を行う制御手段としての機能を有している。
【0025】(1−2)ソフトウエア構成 図3は、ロボット装置1の4足型におけるソフトウエア
構成をレイヤーにより示す略線図であり、図4は図3と
の対比によりタイヤ型におけるソフトウエア構成を示す
略線図である。このソフトウエア構成において、最も下
位層はデバイスドライバレイヤーであり、各種デバイス
ドライバが配置される。ここでデバイスドライバは、移
動ユニット3のセンサー、アクチュエータ、さらには頭
部2A等に配置した各種ロボット装置コンポーネントと
の間で各種情報を入出力し、これらの処理のためのソフ
トウエアオブジェクトを備えるようになされている。
構成をレイヤーにより示す略線図であり、図4は図3と
の対比によりタイヤ型におけるソフトウエア構成を示す
略線図である。このソフトウエア構成において、最も下
位層はデバイスドライバレイヤーであり、各種デバイス
ドライバが配置される。ここでデバイスドライバは、移
動ユニット3のセンサー、アクチュエータ、さらには頭
部2A等に配置した各種ロボット装置コンポーネントと
の間で各種情報を入出力し、これらの処理のためのソフ
トウエアオブジェクトを備えるようになされている。
【0026】このうちバッテリーマネージャーデバイス
ドライバ(バッテリーマネージャーDD)は、電源ユニ
ット14の1チップマイコン27との間のデータ通信に
よりバッテリー17の残量を検出して定期的に上位のロ
ボットシステムソフトウエアに通知する。また、中央処
理ユニット22等のクロックを管理し、ロボットシステ
ムソフトウエアの指示によりこのクロックの周波数を低
減すると共に、不必要なデバイスの動作を停止し、これ
により全体の消費電力を低減する。
ドライバ(バッテリーマネージャーDD)は、電源ユニ
ット14の1チップマイコン27との間のデータ通信に
よりバッテリー17の残量を検出して定期的に上位のロ
ボットシステムソフトウエアに通知する。また、中央処
理ユニット22等のクロックを管理し、ロボットシステ
ムソフトウエアの指示によりこのクロックの周波数を低
減すると共に、不必要なデバイスの動作を停止し、これ
により全体の消費電力を低減する。
【0027】また、ロボットシリアルバスデバイスドラ
イバ(ロボットシリアルバスDD)は、本体2に配置さ
れたシリアルバスのマスター制御用のハードウェアとの
間のデータ通信により、シリアルバスに接続された移動
ユニット3のセンサー情報等を取り込んで上位のロボッ
トシステムソフトウエアに通知し、またこれとは逆にロ
ボットシステムソフトウエアより出力されるアクチュエ
ータの制御データ、オーディオ信号等を各デバイスに送
出する。
イバ(ロボットシリアルバスDD)は、本体2に配置さ
れたシリアルバスのマスター制御用のハードウェアとの
間のデータ通信により、シリアルバスに接続された移動
ユニット3のセンサー情報等を取り込んで上位のロボッ
トシステムソフトウエアに通知し、またこれとは逆にロ
ボットシステムソフトウエアより出力されるアクチュエ
ータの制御データ、オーディオ信号等を各デバイスに送
出する。
【0028】また、ロボットシリアルバスデバイスドラ
イバは、システムの起動時、シリアルバスに接続された
デバイスの変更(追加、削除である)を検出する。さら
に、この変更に係るデバイス固有の情報を取り込むこと
により、ロボット装置1の現在の形態を示す情報をロボ
ットシステムソフトウエアに出力する。
イバは、システムの起動時、シリアルバスに接続された
デバイスの変更(追加、削除である)を検出する。さら
に、この変更に係るデバイス固有の情報を取り込むこと
により、ロボット装置1の現在の形態を示す情報をロボ
ットシステムソフトウエアに出力する。
【0029】このデバイスドライバレイヤーの上位に
は、ロボットシステムソフトウエアが配置される。ここ
でロボットシステムソフトウエアは、バーチャルロボッ
ト、デザインロボット、パワーマネージャー、オブジェ
クトマネージャー等のソフトウエアオブジェクトより構
成される。
は、ロボットシステムソフトウエアが配置される。ここ
でロボットシステムソフトウエアは、バーチャルロボッ
ト、デザインロボット、パワーマネージャー、オブジェ
クトマネージャー等のソフトウエアオブジェクトより構
成される。
【0030】このうちバーチャルロボットは、ロボット
シリアルバスデバイスドライバとの間のデータ通信にお
いて、各デバイス固有のフォーマットによるデータをロ
ボット装置の一般的なフォーマットに変換して送受す
る。具体的に、例えばモータ制御用のデータについて、
デバイス固有のフォーマットにおいてはポテンションメ
ーターであるセンサー出力をアナログディジタル変換し
て得られる10ビットにより表現するのに対し、バーチ
ャルロボットは、この表現によるデータを最下位の1ビ
ットが0.001度を示すデータに変換してロボット装
置1における一般的なフォーマットとして出力する。ま
た、バーチャルロボットは、このようなフォーマット変
換によるデータの送受に加えて、例えばテレビジョンカ
メラ6より取得したイメージデータを上位のソフトウエ
アに出力する。
シリアルバスデバイスドライバとの間のデータ通信にお
いて、各デバイス固有のフォーマットによるデータをロ
ボット装置の一般的なフォーマットに変換して送受す
る。具体的に、例えばモータ制御用のデータについて、
デバイス固有のフォーマットにおいてはポテンションメ
ーターであるセンサー出力をアナログディジタル変換し
て得られる10ビットにより表現するのに対し、バーチ
ャルロボットは、この表現によるデータを最下位の1ビ
ットが0.001度を示すデータに変換してロボット装
置1における一般的なフォーマットとして出力する。ま
た、バーチャルロボットは、このようなフォーマット変
換によるデータの送受に加えて、例えばテレビジョンカ
メラ6より取得したイメージデータを上位のソフトウエ
アに出力する。
【0031】また、バーチャルロボットは、ロボットシ
リアルバスデバイスドライバよりロボット装置1の現在
の形態を示す情報を受け取り、この情報を取りまとめ
る。これによりバーチャルロボットは、ロボット装置1
全体でどの様なロボットコンポーネントがどの様な順番
で接続されているのかを示す結合情報(CPC(Configura
ble Physical Component)Connection Information)を
管理し、この結合情報(CPC Connection Information)
をデザインロボットに通知する。
リアルバスデバイスドライバよりロボット装置1の現在
の形態を示す情報を受け取り、この情報を取りまとめ
る。これによりバーチャルロボットは、ロボット装置1
全体でどの様なロボットコンポーネントがどの様な順番
で接続されているのかを示す結合情報(CPC(Configura
ble Physical Component)Connection Information)を
管理し、この結合情報(CPC Connection Information)
をデザインロボットに通知する。
【0032】また、バーチャルロボットは、シリアルバ
スに接続されたデバイスに変更があった場合、デバイス
ドライバのロボットシリアルバスデバイスドライバより
通知を受け、デザインロボットに通知する。
スに接続されたデバイスに変更があった場合、デバイス
ドライバのロボットシリアルバスデバイスドライバより
通知を受け、デザインロボットに通知する。
【0033】デザインロボットは、バーチャルロボット
より結合情報(CPC Connection Information)を受け取
り、事前に記録した結合テンプレート情報と順次比較す
ることにより、現在のロボット装置1の形態に適したテ
ンプレートを選択する。さらに、デザインロボットは、
この選択したテンプレートに応じて、上位の形態依存ソ
フトウエアを現在の形態に適した形態依存ソフトウエア
に更新するように、オブジェクトマネージャーに指示す
る。
より結合情報(CPC Connection Information)を受け取
り、事前に記録した結合テンプレート情報と順次比較す
ることにより、現在のロボット装置1の形態に適したテ
ンプレートを選択する。さらに、デザインロボットは、
この選択したテンプレートに応じて、上位の形態依存ソ
フトウエアを現在の形態に適した形態依存ソフトウエア
に更新するように、オブジェクトマネージャーに指示す
る。
【0034】なお、この実施の形態において、結合テン
プレート情報は、デザインファイルにデザインデータと
して記述されるようになされている。
プレート情報は、デザインファイルにデザインデータと
して記述されるようになされている。
【0035】オブジェクトマネージャーは、デザインロ
ボットの指示により、デザインロボットより通知される
オブジェクト、各オブジェクトの結合に関する情報を用
いて形態依存ソフトウエアを現在の形態に適した形態依
存ソフトウエアに更新する。すなわち、オブジェクトマ
ネージャーは、形態依存ソフトウエアを構成する全ての
オブジェクトについて、動作の停止、オブジェクト間通
信の結合解除、オブジェクトの破壊、リソースの開放を
指示する。さらに新たに必要なオブジェクトのロード、
初期化し、さらにはオブジェクト間通信のための結合構
築、これらオブジェクトの起動を指示する。なお、ここ
で、オブジェクト間の接合とは、オブジェクト間でデー
タを送受信するための結合を意味する。そして、本発明
は、このようなオブジェクト間でのデータの送受信に関
するものであり、後で詳述するように、管理用のオブジ
ェクトにより、共有メモリ上のデータをオブジェクト間
で共有状態にしてオブジェクト間通信を実現している。
ボットの指示により、デザインロボットより通知される
オブジェクト、各オブジェクトの結合に関する情報を用
いて形態依存ソフトウエアを現在の形態に適した形態依
存ソフトウエアに更新する。すなわち、オブジェクトマ
ネージャーは、形態依存ソフトウエアを構成する全ての
オブジェクトについて、動作の停止、オブジェクト間通
信の結合解除、オブジェクトの破壊、リソースの開放を
指示する。さらに新たに必要なオブジェクトのロード、
初期化し、さらにはオブジェクト間通信のための結合構
築、これらオブジェクトの起動を指示する。なお、ここ
で、オブジェクト間の接合とは、オブジェクト間でデー
タを送受信するための結合を意味する。そして、本発明
は、このようなオブジェクト間でのデータの送受信に関
するものであり、後で詳述するように、管理用のオブジ
ェクトにより、共有メモリ上のデータをオブジェクト間
で共有状態にしてオブジェクト間通信を実現している。
【0036】パワーマネージャーは、バッテリーマネー
ジャーデバイスドライバとの間でデータ通信し、上位の
ソフトウエア(形態独立ソフトウエア又は形態依存ソフ
トウエア)の指示に従って、バッテリーマネージャーデ
バイスドライバにクロックの切り換えを指示し、またオ
ブジェクトの動作の停止等を指示する。
ジャーデバイスドライバとの間でデータ通信し、上位の
ソフトウエア(形態独立ソフトウエア又は形態依存ソフ
トウエア)の指示に従って、バッテリーマネージャーデ
バイスドライバにクロックの切り換えを指示し、またオ
ブジェクトの動作の停止等を指示する。
【0037】このロボットシステムソフトウエアの上位
には、形態依存ソフトウエアが配置され、さらにその上
位に形態独立ソフトウエアが配置される。ここで、形態
依存ソフトウエアは、このロボット装置1の形態に応じ
て変更されるソフトウエアであり、形態独立ソフトウエ
アは、これとは逆に、ロボット装置の形態に係わらずに
固定されたこのロボット装置1の上位のソフトウエアで
ある。このため形態依存ソフトウエアには、ロボット装
置1の形態に依存した各種オブジェクトが存在する。こ
の実施の形態においては、形態依存ソフトウエアの変更
により4足型とタイヤ型とでそれぞれ形態に適したソフ
トウエアを全体として簡易に構成できるようになされて
いる。
には、形態依存ソフトウエアが配置され、さらにその上
位に形態独立ソフトウエアが配置される。ここで、形態
依存ソフトウエアは、このロボット装置1の形態に応じ
て変更されるソフトウエアであり、形態独立ソフトウエ
アは、これとは逆に、ロボット装置の形態に係わらずに
固定されたこのロボット装置1の上位のソフトウエアで
ある。このため形態依存ソフトウエアには、ロボット装
置1の形態に依存した各種オブジェクトが存在する。こ
の実施の形態においては、形態依存ソフトウエアの変更
により4足型とタイヤ型とでそれぞれ形態に適したソフ
トウエアを全体として簡易に構成できるようになされて
いる。
【0038】すなわち、4足型において、この形態依存
ソフトウエアは(図3)、移動ユニット3に関連するも
のとしてコマンドコンバータ、モーションネットワー
ク、モーションリプレイ、ウォーキングパターンジェネ
レータ、ビジョン等のオブジェクトにより構成される。
ソフトウエアは(図3)、移動ユニット3に関連するも
のとしてコマンドコンバータ、モーションネットワー
ク、モーションリプレイ、ウォーキングパターンジェネ
レータ、ビジョン等のオブジェクトにより構成される。
【0039】コマンドコンバータは、形態に依存しない
形態独立ソフトウエアからのコマンドをロボット装置1
の形態に適したコマンドに変換する。すなわち、形態独
立ソフトウエアから移動ユニット3に関するコマンドと
して、それぞれ睡眠(Sleep)、休憩(Rest)、起床(W
akeup)、移動(Move)の姿勢を指示するコマンドが入
力されると、コマンドコンバータは、この4足型におい
て、これらのコマンドをそれぞれ睡眠中(Sleeping)、
お座り(Sitting)、起立(Standing)、歩行(Walkin
g)の各姿勢を指示するコマンドに変換する。
形態独立ソフトウエアからのコマンドをロボット装置1
の形態に適したコマンドに変換する。すなわち、形態独
立ソフトウエアから移動ユニット3に関するコマンドと
して、それぞれ睡眠(Sleep)、休憩(Rest)、起床(W
akeup)、移動(Move)の姿勢を指示するコマンドが入
力されると、コマンドコンバータは、この4足型におい
て、これらのコマンドをそれぞれ睡眠中(Sleeping)、
お座り(Sitting)、起立(Standing)、歩行(Walkin
g)の各姿勢を指示するコマンドに変換する。
【0040】モーションネットワークは、コマンドコン
バータにより出力されるこれら姿勢を示すコマンドよ
り、図5に示す遷移に従って、この遷移図の矢印に対応
するオブジェクトのメソド(エントリ)を起動する。す
なわち、睡眠中の状態で歩行のコマンドが入力された場
合、お座り、起立、歩行と姿勢を順次変化させるよう
に、モーションリプレイオブジェクトの対応するエント
リを順次起動する。なお、この場合、最後の歩行の状態
に辿り着いたときには、この状態を示す自己ループに対
応するウォーキングパターンジェネレータのエントリを
起動する。
バータにより出力されるこれら姿勢を示すコマンドよ
り、図5に示す遷移に従って、この遷移図の矢印に対応
するオブジェクトのメソド(エントリ)を起動する。す
なわち、睡眠中の状態で歩行のコマンドが入力された場
合、お座り、起立、歩行と姿勢を順次変化させるよう
に、モーションリプレイオブジェクトの対応するエント
リを順次起動する。なお、この場合、最後の歩行の状態
に辿り着いたときには、この状態を示す自己ループに対
応するウォーキングパターンジェネレータのエントリを
起動する。
【0041】モーションリプレイは、モーションネット
ワークによるエントリの起動により、対応する姿勢変化
用の関節角度指令値を出力する。具体的に、モーション
リプレイは、登録された離散的な関節角度指令値をキー
データとして保持し、このキーデータを用いた補間演算
処理により一連の角度指令値を出力する。
ワークによるエントリの起動により、対応する姿勢変化
用の関節角度指令値を出力する。具体的に、モーション
リプレイは、登録された離散的な関節角度指令値をキー
データとして保持し、このキーデータを用いた補間演算
処理により一連の角度指令値を出力する。
【0042】ウォーキングパターンジェネレータは、形
態独立ソフトウエアにより指定される方向に移動するよ
うに、各関節角度指令値を計算して出力する。
態独立ソフトウエアにより指定される方向に移動するよ
うに、各関節角度指令値を計算して出力する。
【0043】ビジョンは、例えば画像処理用のオブジェ
クトであり、テレビジョンカメラ6で取得したイメージ
データをバーチャルロボットオブジェクトより受け取り
処理する。ビジョンは、これにより例えば赤色の物体を
識別し、このロボット装置1を基準にしたこの赤色の物
体の位置、見かけの大きさを検出して出力する。
クトであり、テレビジョンカメラ6で取得したイメージ
データをバーチャルロボットオブジェクトより受け取り
処理する。ビジョンは、これにより例えば赤色の物体を
識別し、このロボット装置1を基準にしたこの赤色の物
体の位置、見かけの大きさを検出して出力する。
【0044】これに対してタイヤ型において、形態依存
ソフトウエアは(図4)、移動ユニット3に関するオブ
ジェクトとして、4足型と共通のビジョンのオブジェク
ト、このタイヤ型に特有のコマンドコンバータ、モーシ
ョンコマンダ、モーションリプレイ2、ホイールパター
ンジェネレータのオブジェクトを有する。
ソフトウエアは(図4)、移動ユニット3に関するオブ
ジェクトとして、4足型と共通のビジョンのオブジェク
ト、このタイヤ型に特有のコマンドコンバータ、モーシ
ョンコマンダ、モーションリプレイ2、ホイールパター
ンジェネレータのオブジェクトを有する。
【0045】このうちコマンドコンバータは、4足型に
おけるコマンドコンバータと同様に、形態に依存しない
形態独立ソフトウエアからのコマンドをロボット装置1
の形態に適したコマンドに変換する。この場合、ロボッ
ト装置1においてはタイヤ型であることにより、コマン
ドコンバータは、それぞれ睡眠(Sleep)、休憩(Res
t)、起床(Wakeup)、移動(Move)の姿勢を指示する
コマンドを、睡眠中(Sleeping)、休憩(Rest)、待機
(Ready)、移動(Go)のコマンドに変換する。
おけるコマンドコンバータと同様に、形態に依存しない
形態独立ソフトウエアからのコマンドをロボット装置1
の形態に適したコマンドに変換する。この場合、ロボッ
ト装置1においてはタイヤ型であることにより、コマン
ドコンバータは、それぞれ睡眠(Sleep)、休憩(Res
t)、起床(Wakeup)、移動(Move)の姿勢を指示する
コマンドを、睡眠中(Sleeping)、休憩(Rest)、待機
(Ready)、移動(Go)のコマンドに変換する。
【0046】モーションコマンダは、コマンドコンバー
タの出力を受け、タイヤ用の制御コマンドと関連する関
節角度指令値を生成する。すなわち、モーションコマン
ダは、睡眠中(Sleeping)のコマンドが入力された場
合、関節角度指令値を中立(neutral)に設定する。こ
こで、中立(neutral)においては、何らモータを駆
動、制動しない状態であり、これにより移動ユニットを
構成する両腕にあっては、垂れ下がった状態に保持さ
れ、またタイヤにあっては停止状態に保持される。
タの出力を受け、タイヤ用の制御コマンドと関連する関
節角度指令値を生成する。すなわち、モーションコマン
ダは、睡眠中(Sleeping)のコマンドが入力された場
合、関節角度指令値を中立(neutral)に設定する。こ
こで、中立(neutral)においては、何らモータを駆
動、制動しない状態であり、これにより移動ユニットを
構成する両腕にあっては、垂れ下がった状態に保持さ
れ、またタイヤにあっては停止状態に保持される。
【0047】これに対して休憩(Rest)のコマンドが入
力された場合、モーションコマンダは、両腕にあっては
肘の部分で90度折り曲げて前に差し出すように、ま
た、頭部2Aにあっては顔を正面に向けるように、関節
角度指令値を生成する。なおタイヤは停止したままであ
る。
力された場合、モーションコマンダは、両腕にあっては
肘の部分で90度折り曲げて前に差し出すように、ま
た、頭部2Aにあっては顔を正面に向けるように、関節
角度指令値を生成する。なおタイヤは停止したままであ
る。
【0048】また、待機(Ready)のコマンドが入力さ
れた場合、モーションコマンダは、両腕にあっては肘を
伸ばして前に差し出すように、また頭部2Aにあっては
顔を正面に向けるように関節角度指令値を生成する。な
お、この場合もタイヤは停止したままである。さらに、
移動(Go)のコマンドにあっては、待機(Ready)の状
態と同様に両腕を保持したまま、タイヤが前進方向に回
転するように、指令値を出力する。
れた場合、モーションコマンダは、両腕にあっては肘を
伸ばして前に差し出すように、また頭部2Aにあっては
顔を正面に向けるように関節角度指令値を生成する。な
お、この場合もタイヤは停止したままである。さらに、
移動(Go)のコマンドにあっては、待機(Ready)の状
態と同様に両腕を保持したまま、タイヤが前進方向に回
転するように、指令値を出力する。
【0049】モーションリプレイ2は、モーションコマ
ンダの指示によりタイヤ型に固有の動作に関して、タイ
ヤ以外の動作(例えば両腕の動作である)を制御する。
ホイールパターンジェネレータは、モーションコマンダ
の制御によりタイヤの制御情報を生成する。
ンダの指示によりタイヤ型に固有の動作に関して、タイ
ヤ以外の動作(例えば両腕の動作である)を制御する。
ホイールパターンジェネレータは、モーションコマンダ
の制御によりタイヤの制御情報を生成する。
【0050】形態独立ソフトウエアは、ロボット装置1
の形態に依存しないソフトウエアであり、形態設定オブ
ジェクト等を有する。ここで形態設定オブジェクトは、
形態依存ソフトウエアよりロボット装置1の形態に依存
しない情報を受け取り、この情報によりロボット装置1
の形態に依存しない上述したようなロボット装置1の姿
勢を示すコマンド(睡眠等である)を形態依存ソフトウ
エアに出力する。
の形態に依存しないソフトウエアであり、形態設定オブ
ジェクト等を有する。ここで形態設定オブジェクトは、
形態依存ソフトウエアよりロボット装置1の形態に依存
しない情報を受け取り、この情報によりロボット装置1
の形態に依存しない上述したようなロボット装置1の姿
勢を示すコマンド(睡眠等である)を形態依存ソフトウ
エアに出力する。
【0051】すなわち例えば、ビジョンオブジェクトよ
り通知される赤色の物体の有無とその位置情報に基づい
て、1分以上赤色の物体の存在が検出されなかった場
合、図6に示すように、睡眠(Sleep)の状態にあって
はその状態を維持するように、休憩(Rest)の状態にあ
っては睡眠(Sleep)に、起床(Wakeup)の状態にあっ
ては休憩(Rest)に、移動(Move)にあっては起床(Wa
keup)の状態に遷移するようにコマンドを発行する。
り通知される赤色の物体の有無とその位置情報に基づい
て、1分以上赤色の物体の存在が検出されなかった場
合、図6に示すように、睡眠(Sleep)の状態にあって
はその状態を維持するように、休憩(Rest)の状態にあ
っては睡眠(Sleep)に、起床(Wakeup)の状態にあっ
ては休憩(Rest)に、移動(Move)にあっては起床(Wa
keup)の状態に遷移するようにコマンドを発行する。
【0052】また、赤色物体が所定値より小さな大きさ
で検出され(ロボット装置の設定による値10以下)、
これが10秒以上続いた場合、睡眠(Sleep)の状態に
あっては休憩(Rest)の状態に、休憩(Rest)の状態に
あっては起床(Wakeup)に、起床(Wakeup)の状態にあ
っては移動(Move)に遷移するようにコマンドを発行
し、また移動(Move)にあっては移動(Move)を継続す
るようにコマンドを発行する。
で検出され(ロボット装置の設定による値10以下)、
これが10秒以上続いた場合、睡眠(Sleep)の状態に
あっては休憩(Rest)の状態に、休憩(Rest)の状態に
あっては起床(Wakeup)に、起床(Wakeup)の状態にあ
っては移動(Move)に遷移するようにコマンドを発行
し、また移動(Move)にあっては移動(Move)を継続す
るようにコマンドを発行する。
【0053】さらに、赤色物体が所定値以上の大きさで
検出された場合、睡眠(Sleep)の状態にあっては(Wak
eup)の状態に遷移するように、休憩(Rest)及び起床
(Wakeup)の状態にあっては移動(Move)に遷移するよ
うに、また移動(Move)にあっては移動(Move)を継続
するようにコマンドを発行する。
検出された場合、睡眠(Sleep)の状態にあっては(Wak
eup)の状態に遷移するように、休憩(Rest)及び起床
(Wakeup)の状態にあっては移動(Move)に遷移するよ
うに、また移動(Move)にあっては移動(Move)を継続
するようにコマンドを発行する。
【0054】これらによりロボット装置1では、最も上
位のソフトウエアが、形態に依存しないように形成さ
れ、この形態に依存しないソフトウエアとの間では形態
に依存しない形式によりデータを送受するようになされ
ている。これによりこのロボット装置1では、形態に応
じて、この形態に依存するソフトウエアである形態依存
ソフトウエアだけを変更して、形態に応じてソフトウエ
アを簡易に変更することができるようになされている。
位のソフトウエアが、形態に依存しないように形成さ
れ、この形態に依存しないソフトウエアとの間では形態
に依存しない形式によりデータを送受するようになされ
ている。これによりこのロボット装置1では、形態に応
じて、この形態に依存するソフトウエアである形態依存
ソフトウエアだけを変更して、形態に応じてソフトウエ
アを簡易に変更することができるようになされている。
【0055】(1−3)形態依存ソフトウエアの変更 ロボット装置1において、この形態依存ソフトウエア
は、デザインロボットの指示によるオブジェクトマネー
ジャーの処理により更新される。このときこの実施の形
態においては、形態依存ソフトウエアを構成するオブジ
ェクトのロード、アンロード、オブジェクト間通信のた
めの結合再構築により形態依存ソフトウエアを更新す
る。
は、デザインロボットの指示によるオブジェクトマネー
ジャーの処理により更新される。このときこの実施の形
態においては、形態依存ソフトウエアを構成するオブジ
ェクトのロード、アンロード、オブジェクト間通信のた
めの結合再構築により形態依存ソフトウエアを更新す
る。
【0056】このためデザインロボットは、バーチャル
ロボットよりロボット装置1の形態を特定する結合情報
(CPC Connection Information)の通知を受け、この結
合情報(CPC Connection Information)に基づいてオブ
ジェクトマネージャーに形態依存ソフトウエアの更新を
指示すると共に必要な情報を提供する。
ロボットよりロボット装置1の形態を特定する結合情報
(CPC Connection Information)の通知を受け、この結
合情報(CPC Connection Information)に基づいてオブ
ジェクトマネージャーに形態依存ソフトウエアの更新を
指示すると共に必要な情報を提供する。
【0057】また、バーチャルロボットにおいては、下
位層であるロボットシリアルバスデバイスドライバを介
してシリアルバスに接続された各デバイスの情報を取得
し、この情報より結合情報(CPC Connection Informati
on)を作成してデザインロボットに通知する。
位層であるロボットシリアルバスデバイスドライバを介
してシリアルバスに接続された各デバイスの情報を取得
し、この情報より結合情報(CPC Connection Informati
on)を作成してデザインロボットに通知する。
【0058】このためこのロボット装置1においては、
各ロボットコンポーネントのメモリに所定の情報が記録
され、ロボットシリアルバスデバイスドライバを介して
実行されるデータ通信により、バーチャルロボット1に
おいてシリアルバスに接続されたデバイスの情報をその
位置情報と共に取得できるようになされている。
各ロボットコンポーネントのメモリに所定の情報が記録
され、ロボットシリアルバスデバイスドライバを介して
実行されるデータ通信により、バーチャルロボット1に
おいてシリアルバスに接続されたデバイスの情報をその
位置情報と共に取得できるようになされている。
【0059】ここでロボット装置1においては、シリア
ルバスに接続されるテレビジョンカメラ、スピーカー、
マイク、各種アクチュエータ、センサー等が基本的な構
成要素(CPC Primitive)であり、リンク状態に設定さ
れたこれら基本的な構成要素の複数の組み合わせにより
各部品(CPC Model)が構成される。すなわち例えば部
品である1つの足は、3個のモータ、1個のスイッチに
よる複数の基本的な構成要素の特定なリンク状態により
構成される。
ルバスに接続されるテレビジョンカメラ、スピーカー、
マイク、各種アクチュエータ、センサー等が基本的な構
成要素(CPC Primitive)であり、リンク状態に設定さ
れたこれら基本的な構成要素の複数の組み合わせにより
各部品(CPC Model)が構成される。すなわち例えば部
品である1つの足は、3個のモータ、1個のスイッチに
よる複数の基本的な構成要素の特定なリンク状態により
構成される。
【0060】ロボット装置1においては、これら各部品
に固有の識別データが割り当てられ、この識別データに
よりシリアルバスに接続された各構成要素を特定できる
ようになされている。なお、この識別データは、部品を
作成した製造工場のIDと製品番号に対応するIDとに
より構成される。また、この識別データに対応するよう
に、各構成要素の情報、部品における各構成要素の位置
情報が部品中における各構成要素のリンク情報、各構成
要素の属性情報等により設定され、これらの情報が各部
品の識別データと共に各部品のメモリに保持されるよう
になされている。なお、この実施の形態では、部品側に
てメモリ容量が少ない場合には、各部品側に識別データ
のみ記録され、構成要素の情報、部品における構成要素
の位置情報は、本体2側に保持するようになされてい
る。
に固有の識別データが割り当てられ、この識別データに
よりシリアルバスに接続された各構成要素を特定できる
ようになされている。なお、この識別データは、部品を
作成した製造工場のIDと製品番号に対応するIDとに
より構成される。また、この識別データに対応するよう
に、各構成要素の情報、部品における各構成要素の位置
情報が部品中における各構成要素のリンク情報、各構成
要素の属性情報等により設定され、これらの情報が各部
品の識別データと共に各部品のメモリに保持されるよう
になされている。なお、この実施の形態では、部品側に
てメモリ容量が少ない場合には、各部品側に識別データ
のみ記録され、構成要素の情報、部品における構成要素
の位置情報は、本体2側に保持するようになされてい
る。
【0061】バーチャルロボットは、システム起動時、
デバイスの変更時、ロボットシリアルバスデバイスドラ
イバより通知されるこれら識別データ、位置情報等によ
り、ツリー構造によるシリアルバスを順次辿って、各基
本的な構成要素(CPC Primitive)と各構成要素の結合
の順番を示すデータ構造とにより結合情報(CPC Connec
tion Information)を作成してデザインロボットに通知
する。かくするにつきバーチャルロボットより通知され
る結合情報(CPC Connection Information)にあって
は、形態に対応する構成要素情報(CPC Primitive Loca
tion Information)により構成される。
デバイスの変更時、ロボットシリアルバスデバイスドラ
イバより通知されるこれら識別データ、位置情報等によ
り、ツリー構造によるシリアルバスを順次辿って、各基
本的な構成要素(CPC Primitive)と各構成要素の結合
の順番を示すデータ構造とにより結合情報(CPC Connec
tion Information)を作成してデザインロボットに通知
する。かくするにつきバーチャルロボットより通知され
る結合情報(CPC Connection Information)にあって
は、形態に対応する構成要素情報(CPC Primitive Loca
tion Information)により構成される。
【0062】デザインロボットは、バーチャルロボット
より通知される結合情報(CPC Connection Informatio
n)を基準にしてデザインファイルを参照することによ
り現在のロボット装置1の形態に対応する結合テンプレ
ート(後述するラベルである)を選択する。さらに、デ
ザインロボットは、この選択したテンプレートに応じ
て、現在の形態に適した形態依存ソフトウエアヘの更新
をオブジェクトマネージャーに指示する。
より通知される結合情報(CPC Connection Informatio
n)を基準にしてデザインファイルを参照することによ
り現在のロボット装置1の形態に対応する結合テンプレ
ート(後述するラベルである)を選択する。さらに、デ
ザインロボットは、この選択したテンプレートに応じ
て、現在の形態に適した形態依存ソフトウエアヘの更新
をオブジェクトマネージャーに指示する。
【0063】ここで、デザインファイルは、テキストデ
ータ形式の記述であり、ロボット装置1の形態毎に、各
部品の構成要素情報(CPC Primitive Location Informa
tion)群に対してラベルを付加して記述される。また、
構成要素情報(CPC Primitive Location Information)
は、各部品の基本的な構成要素(CPC Primitive)と各
構成要素の位置情報(CPC Coordinate Locator)により
構成される。このうち位置情報(CPC Coordinate Locat
or)は、ロボット装置1に設定された基準位置からの座
標であり、一般的なリンク座標系により表記され、座標
系変換のための回転行列と位置ベクトルの縦続接続によ
り構成されるようになされている。
ータ形式の記述であり、ロボット装置1の形態毎に、各
部品の構成要素情報(CPC Primitive Location Informa
tion)群に対してラベルを付加して記述される。また、
構成要素情報(CPC Primitive Location Information)
は、各部品の基本的な構成要素(CPC Primitive)と各
構成要素の位置情報(CPC Coordinate Locator)により
構成される。このうち位置情報(CPC Coordinate Locat
or)は、ロボット装置1に設定された基準位置からの座
標であり、一般的なリンク座標系により表記され、座標
系変換のための回転行列と位置ベクトルの縦続接続によ
り構成されるようになされている。
【0064】また、ラベルは、対応するオブジェクトの
特定、このオブジェクトのロード、オブジェクト間通信
の構築に必要なデータを特定するものであり、デザイン
ラベル(Design Label)、又はデザインラベルに比して
汎用的な理解容易な記述によるバーチャルラベル(Virt
ual Label)、デザインラベル(Design Label)とバー
チャルラベル(Virtual Label)との複合型のラベル(C
omposite Label)が適用される。なお、ビジュアルラベ
ルにあっては、デザインロボットによりデザインラベル
に置き換えられて利用に供されるようになされている。
特定、このオブジェクトのロード、オブジェクト間通信
の構築に必要なデータを特定するものであり、デザイン
ラベル(Design Label)、又はデザインラベルに比して
汎用的な理解容易な記述によるバーチャルラベル(Virt
ual Label)、デザインラベル(Design Label)とバー
チャルラベル(Virtual Label)との複合型のラベル(C
omposite Label)が適用される。なお、ビジュアルラベ
ルにあっては、デザインロボットによりデザインラベル
に置き換えられて利用に供されるようになされている。
【0065】次式は、このうちのデザインラベルの記述
を示すものである。デザインラベルは、1つ以上の構成
要素情報(CPC Primitive Location Information )、
又はデザインラベル(Design Label)により構成され
る。
を示すものである。デザインラベルは、1つ以上の構成
要素情報(CPC Primitive Location Information )、
又はデザインラベル(Design Label)により構成され
る。
【0066】
【数1】
【0067】これに対して次式は、バーチャルラベル
(Virtual Label)の記述を示すものである。バーチャ
ルラベルは、デザインラベル(Design Label)、構成要
素(CPC Primitive)、構成要素(CPC Primitive)の位
置情報(CPC Coordinate Locator)により構成される。
(Virtual Label)の記述を示すものである。バーチャ
ルラベルは、デザインラベル(Design Label)、構成要
素(CPC Primitive)、構成要素(CPC Primitive)の位
置情報(CPC Coordinate Locator)により構成される。
【0068】
【数2】
【0069】これに対して次式は、複合型のラベル(Co
mposite Label)の記述を示すものである。
mposite Label)の記述を示すものである。
【0070】
【数3】
【0071】かくするにつきデザインロボットは、通知
された結合情報(CPC Connection Information)により
特定される構成要素情報(CPC Primitive Location Inf
ormation)において、特定される位置情報(CPC Coordi
nate Locator)よりツリー構造の先端側にバーチャルラ
ベル(Virtual Label)内で定義された位置情報 (CPC
Coordinate Locator)が存在する場合、このバーチャ
ルラベル(Virtual Label)をデザインラベル(Design
Label)に置き換え、また、このようにして定義したデ
ザインラベル(Design Label)を有効なものと設定す
る。
された結合情報(CPC Connection Information)により
特定される構成要素情報(CPC Primitive Location Inf
ormation)において、特定される位置情報(CPC Coordi
nate Locator)よりツリー構造の先端側にバーチャルラ
ベル(Virtual Label)内で定義された位置情報 (CPC
Coordinate Locator)が存在する場合、このバーチャ
ルラベル(Virtual Label)をデザインラベル(Design
Label)に置き換え、また、このようにして定義したデ
ザインラベル(Design Label)を有効なものと設定す
る。
【0072】これらにより、結合情報(CPC Connection
Information)によりこのデザインファイルをアクセス
して現在のロボット装置を形態(4足型、タイヤ型等の
形態)を特定できるようになされ、また、形態依存ソフ
トウエアの更新に必要な各種データを取得できるように
なされている。
Information)によりこのデザインファイルをアクセス
して現在のロボット装置を形態(4足型、タイヤ型等の
形態)を特定できるようになされ、また、形態依存ソフ
トウエアの更新に必要な各種データを取得できるように
なされている。
【0073】図7は、このデザインロボットの処理手順
を具体的に示すフローチャートである。デザインロボッ
トは、バーチャルロボットより結合情報(CPC Connecti
on Information)が通知されると、ステップSP1から
ステップSP2に移り、この結合情報(CPC Connection
Information)によりデザインファイルをアクセスし、
これにより現在のロボット装置1の形態を特定する。
を具体的に示すフローチャートである。デザインロボッ
トは、バーチャルロボットより結合情報(CPC Connecti
on Information)が通知されると、ステップSP1から
ステップSP2に移り、この結合情報(CPC Connection
Information)によりデザインファイルをアクセスし、
これにより現在のロボット装置1の形態を特定する。
【0074】続いてデザインロボットは、ステップSP
3に移り、バーチャルロボットより通知された結合情報
(CPC Connection Information)による構成要素情報
(CPCPrimitive Location Information)とデザインフ
ァイルに保持された結合情報(CPC Connection Informa
tion)による構成要素情報(CPC Primitive Location I
nformation)とを比較する。
3に移り、バーチャルロボットより通知された結合情報
(CPC Connection Information)による構成要素情報
(CPCPrimitive Location Information)とデザインフ
ァイルに保持された結合情報(CPC Connection Informa
tion)による構成要素情報(CPC Primitive Location I
nformation)とを比較する。
【0075】続いてデザインロボットは、ステップSP
4に移り、この比較結果に基づいて、デザインファイル
をアクセスし、現在の形態に対応するオブジェクト、オ
ブジェクト間通信の再構築に必要なデータを特定するデ
ザインラベルを検出する。
4に移り、この比較結果に基づいて、デザインファイル
をアクセスし、現在の形態に対応するオブジェクト、オ
ブジェクト間通信の再構築に必要なデータを特定するデ
ザインラベルを検出する。
【0076】続いてデザインロボットは、ステップSP
5に移り、検出したデザインラベルより結合ファイル
(Connection File)をアクセスし、ラベルに対応する
結合情報(Connection Data)を検出することにより、
対応するオブジェクトの特定、オブジェクト間通信の再
構築に必要なデータを取得する。かくするにつき結合フ
ァイル(Connection File)は、ラベルとの対応により
結合情報(Connection Data)を記録したファイルであ
り、結合情報(Connection Data)は、対応するオブジ
ェクトの特定、オブジェクト間通信の再構築に必要なデ
ータである。
5に移り、検出したデザインラベルより結合ファイル
(Connection File)をアクセスし、ラベルに対応する
結合情報(Connection Data)を検出することにより、
対応するオブジェクトの特定、オブジェクト間通信の再
構築に必要なデータを取得する。かくするにつき結合フ
ァイル(Connection File)は、ラベルとの対応により
結合情報(Connection Data)を記録したファイルであ
り、結合情報(Connection Data)は、対応するオブジ
ェクトの特定、オブジェクト間通信の再構築に必要なデ
ータである。
【0077】続いてデザインロボットは、ステップSP
6に移り、この結合情報(Connection Data)をオブジ
ェクトマネージャーに送出し、これにより形態依存ソフ
トウエアの更新を指示した後、ステップSP7に移って
この処理手順を終了する。
6に移り、この結合情報(Connection Data)をオブジ
ェクトマネージャーに送出し、これにより形態依存ソフ
トウエアの更新を指示した後、ステップSP7に移って
この処理手順を終了する。
【0078】図8は、デザインファイルの一部の記述を
示す図表である。このデザインファイルにおいて、DRX
は、このロボット装置1の形態を示し、4 Leggedは、
4足型の形態であることを示す記述である。またHead、
RightFrontLeg、LeftFrontLeg、RightRearLeg、LeftRea
rLegは、それぞれ頭部、右前足、左前足、右後足、左後
足を示し、これにより第1文において4足型が頭部、右
前足、左前足、右後足、左後足により構成されることが
特定される。
示す図表である。このデザインファイルにおいて、DRX
は、このロボット装置1の形態を示し、4 Leggedは、
4足型の形態であることを示す記述である。またHead、
RightFrontLeg、LeftFrontLeg、RightRearLeg、LeftRea
rLegは、それぞれ頭部、右前足、左前足、右後足、左後
足を示し、これにより第1文において4足型が頭部、右
前足、左前足、右後足、左後足により構成されることが
特定される。
【0079】また、第2文におけるWheelはタイヤ型を
示し、第1文との対比によりこの第2文においてタイヤ
型が頭部、右前足、左前足、右後輪、左後輪により構成
されることが特定される。また、第3文においては、頭
部にカメラリンクの配置が記述され、第4文にはこのカ
メラリンクのバーチャルラベル(Virtual Label)が記
述されるようになされ、第5文以降においては、右前
足、左前足等について、位置情報(CPC Coordinate Loc
ator)がツリー形式により記述されるようになされてい
る。
示し、第1文との対比によりこの第2文においてタイヤ
型が頭部、右前足、左前足、右後輪、左後輪により構成
されることが特定される。また、第3文においては、頭
部にカメラリンクの配置が記述され、第4文にはこのカ
メラリンクのバーチャルラベル(Virtual Label)が記
述されるようになされ、第5文以降においては、右前
足、左前足等について、位置情報(CPC Coordinate Loc
ator)がツリー形式により記述されるようになされてい
る。
【0080】これに対して図9は、結合情報(CPC Conn
ection Information)の一部の記述を示す図表である。
この実施の形態においては結合情報もデザインファイル
と同様にテキストデータ形式により記述される。この記
述において、jointはインターフェースを示し、この部
分が他の構成要素との結合箇所であることを示すもので
ある。この場合、第2行目から第5行目までの記載によ
り、CO、CO、CO、CO、COによる5つのハブ等を介してテ
レビジョンカメラが接続されていることが判る。
ection Information)の一部の記述を示す図表である。
この実施の形態においては結合情報もデザインファイル
と同様にテキストデータ形式により記述される。この記
述において、jointはインターフェースを示し、この部
分が他の構成要素との結合箇所であることを示すもので
ある。この場合、第2行目から第5行目までの記載によ
り、CO、CO、CO、CO、COによる5つのハブ等を介してテ
レビジョンカメラが接続されていることが判る。
【0081】これによりこの図9の例による結合情報
(CPC Connection Information)にあっては、図8につ
いて上述した記述である4足型と一致することになる。
(CPC Connection Information)にあっては、図8につ
いて上述した記述である4足型と一致することになる。
【0082】これに対して次式は、結合ファイル(Conn
ection File)の一部の記述を示す図表である。結合フ
ァイルは、テキストデータ形式により記述され、この記
述において、第1文及び第2文は、それぞれ4足型及び
タイヤ型における足及びタイヤに対応するオブジェクト
と、このオブジェクトにおけるオブジェクト間通信の構
築に必要なデータが記述される。
ection File)の一部の記述を示す図表である。結合フ
ァイルは、テキストデータ形式により記述され、この記
述において、第1文及び第2文は、それぞれ4足型及び
タイヤ型における足及びタイヤに対応するオブジェクト
と、このオブジェクトにおけるオブジェクト間通信の構
築に必要なデータが記述される。
【0083】すなわち、第1文にあっては、サービス名
としてオブジェクト名であるMONetとデータ形式MONetOu
tData、サブジェクトを示すSの記述が記述される。さ
らに、同様のサービス名としてオブジェクト名であるMO
NetReplay、データ形式MONetOutData等が記述され、最
後にオブザーバーを示す○の記述が割り当てられる。ま
た、続く行において、同様のサブジェクト及びオブザー
バー、データ形式等が記述される。
としてオブジェクト名であるMONetとデータ形式MONetOu
tData、サブジェクトを示すSの記述が記述される。さ
らに、同様のサービス名としてオブジェクト名であるMO
NetReplay、データ形式MONetOutData等が記述され、最
後にオブザーバーを示す○の記述が割り当てられる。ま
た、続く行において、同様のサブジェクト及びオブザー
バー、データ形式等が記述される。
【0084】
【数4】
【0085】これによりこの図8の例の場合、デザイン
ロボットは、このDRX 4Legged による第1文の記述より
結合情報(Connection Data)(DRX 4Legged以降の括弧
書の記述)を抽出してオブジェクトマネージャーに通知
し、これにより、形態依存ソフトウエアを更新するよう
になされている。
ロボットは、このDRX 4Legged による第1文の記述より
結合情報(Connection Data)(DRX 4Legged以降の括弧
書の記述)を抽出してオブジェクトマネージャーに通知
し、これにより、形態依存ソフトウエアを更新するよう
になされている。
【0086】図10は、オブジェクトマネージャー、バ
ーチャルロボット、デザインロボットにおけるブート時
の処理を示すタイムチャートである。ロボット装置1に
おいては、電源が投入されると、又はリセットがされる
と、ブートの処理を開始する。ここでロボット装置1に
おいては、各オブジェクトがファイルよりロードされて
形態依存ソフトウエアが構築され、このとき各オブジェ
クトマネージャーの内部変数が初期化される。
ーチャルロボット、デザインロボットにおけるブート時
の処理を示すタイムチャートである。ロボット装置1に
おいては、電源が投入されると、又はリセットがされる
と、ブートの処理を開始する。ここでロボット装置1に
おいては、各オブジェクトがファイルよりロードされて
形態依存ソフトウエアが構築され、このとき各オブジェ
クトマネージャーの内部変数が初期化される。
【0087】続いてオブジェクトマネージャーよりドウ
イニシャライズ(DOInit)が各オブジェクトに送出さ
れ、このドウイニシャライズ(DOInit)により各オブジ
ェクトの問い合わせ用エントリ(Entry)がオブジェク
トマネージャー等に登録される。これによりロボットシ
ステムソフトウエアレイヤーにおいて、各オブジェクト
間通信が構築される。
イニシャライズ(DOInit)が各オブジェクトに送出さ
れ、このドウイニシャライズ(DOInit)により各オブジ
ェクトの問い合わせ用エントリ(Entry)がオブジェク
トマネージャー等に登録される。これによりロボットシ
ステムソフトウエアレイヤーにおいて、各オブジェクト
間通信が構築される。
【0088】続いてオブジェクトマネージャーよりドウ
スタート(DOStart)がバーチャルロボット、デザイン
ロボットに順次送出され、バーチャルロボット、デザイ
ンロボットが動作を開始する。これによりバーチャルロ
ボットにより結合情報(CPCConnection Information)
が生成され、デザインロボットの要求によりこの結合情
報(CPC Connection Information)がデザインロボット
に渡され、結合情報(Connection Data)が生成され
る。さらに、この結合情報(Connection Data)がオブ
ジェクトマネージャーに渡され、この結合情報(Connec
tion Data)により形態依存ソフトウエアが構築され
る。
スタート(DOStart)がバーチャルロボット、デザイン
ロボットに順次送出され、バーチャルロボット、デザイ
ンロボットが動作を開始する。これによりバーチャルロ
ボットにより結合情報(CPCConnection Information)
が生成され、デザインロボットの要求によりこの結合情
報(CPC Connection Information)がデザインロボット
に渡され、結合情報(Connection Data)が生成され
る。さらに、この結合情報(Connection Data)がオブ
ジェクトマネージャーに渡され、この結合情報(Connec
tion Data)により形態依存ソフトウエアが構築され
る。
【0089】これに対してシャットダウンにおいては、
オブジェクトマネージャーよりドウストップ(DOStop)
が各オブジェクトに送出され、このドウストップ(DOSt
op)により各オブジェクトにおいては、全てのリクエス
トに対してエラーを通知して動作を停止する。統いてオ
ブジェクトマネージャーよリドウデストロイ(DODestro
y)が各オブジェクトに送出され、これにより各オブジ
ェクトにおいては、使用していたソースを開放し、また
オブジェクトマネージャーに登録したエントリを抹消し
て待機する。
オブジェクトマネージャーよりドウストップ(DOStop)
が各オブジェクトに送出され、このドウストップ(DOSt
op)により各オブジェクトにおいては、全てのリクエス
トに対してエラーを通知して動作を停止する。統いてオ
ブジェクトマネージャーよリドウデストロイ(DODestro
y)が各オブジェクトに送出され、これにより各オブジ
ェクトにおいては、使用していたソースを開放し、また
オブジェクトマネージャーに登録したエントリを抹消し
て待機する。
【0090】これによりロボット装置1においては、形
態が変更されて立ち上げられた場合でも、この変更され
た形態に適したソフトウエアにより動作できるようにな
されている。
態が変更されて立ち上げられた場合でも、この変更され
た形態に適したソフトウエアにより動作できるようにな
されている。
【0091】これに対していわゆるプラグイン(Plug-I
n)、プラグアウト(Plug-Out)においては、図11に
示すように、オブジェクトマネージャーよりドウストッ
プ(DOStop)が各オブジェクトに送出され、このドウス
トップ(DOStop)により各オブジェクトにおいては、全
てのリクエストに対してエラーを通知して動作を停止す
る。
n)、プラグアウト(Plug-Out)においては、図11に
示すように、オブジェクトマネージャーよりドウストッ
プ(DOStop)が各オブジェクトに送出され、このドウス
トップ(DOStop)により各オブジェクトにおいては、全
てのリクエストに対してエラーを通知して動作を停止す
る。
【0092】続いてオブジェクトマネージャーよりブー
ト時と同様にして順次ドウスタート(DOStart)がバー
チャルロボット、デザインロボットに順次送出され、バ
ーチャルロボットにより結合情報(CPC Connection Inf
ormation)が生成され、この結合情報(CPC Connection
Information)がデザインロボットに渡されて結合情報
(Connection Data)が生成され、この結合情報(Conne
ction Data)により形態依存ソフトウエアが構築され
る。
ト時と同様にして順次ドウスタート(DOStart)がバー
チャルロボット、デザインロボットに順次送出され、バ
ーチャルロボットにより結合情報(CPC Connection Inf
ormation)が生成され、この結合情報(CPC Connection
Information)がデザインロボットに渡されて結合情報
(Connection Data)が生成され、この結合情報(Conne
ction Data)により形態依存ソフトウエアが構築され
る。
【0093】これによりロボット装置1においては、プ
ラグイン(Plug-In)、プラグアウト(Plug-0ut)によ
り動的に形態が変更された場合でも、この変更された形
態に適したソフトウエアにより動作できるようになされ
ている。
ラグイン(Plug-In)、プラグアウト(Plug-0ut)によ
り動的に形態が変更された場合でも、この変更された形
態に適したソフトウエアにより動作できるようになされ
ている。
【0094】また、バッテリー17が消耗した場合等に
あっては、バッテリーマネージャーからの状態変更要求
により、プラグイン(Plug-In)、プラグアウト(Plug-
Out)の場合と同様に、ドウストップ(DOStop)、ドウ
スタート(DOStart)の処理が繰り返され、これにより
バッテリー17が消耗した場合にあっては、クロック周
波数を低減すると共に不必要なデバイスの動作を停止し
てボタン電池29により動作するように状態が変更さ
れ、これとは逆に充電されたバッテリー17が装着され
た場合にあっては、クロック周波数を増大すると共に各
デバイスの動作が開始されてバッテリー17により動作
するようになされている。
あっては、バッテリーマネージャーからの状態変更要求
により、プラグイン(Plug-In)、プラグアウト(Plug-
Out)の場合と同様に、ドウストップ(DOStop)、ドウ
スタート(DOStart)の処理が繰り返され、これにより
バッテリー17が消耗した場合にあっては、クロック周
波数を低減すると共に不必要なデバイスの動作を停止し
てボタン電池29により動作するように状態が変更さ
れ、これとは逆に充電されたバッテリー17が装着され
た場合にあっては、クロック周波数を増大すると共に各
デバイスの動作が開始されてバッテリー17により動作
するようになされている。
【0095】(1−4)オブジェクトマネージャーの処
理 オブジェクトマネージャーは、このようにして実行され
るデザインロボットからの通知により形態依存ソフトウ
エアを構成するオブジェクトを再構成し、これにより形
態依存ソフトウエアを更新する。具体的に、オブジェク
トマネージャーは、デザインロボットからの通知により
オブジェクトをロード、アンロードすると共に、これら
アンロード及びロードに対応するようにオブジェクト間
通信を再構築し、これにより形態依存ソフトウエアを変
更する。
理 オブジェクトマネージャーは、このようにして実行され
るデザインロボットからの通知により形態依存ソフトウ
エアを構成するオブジェクトを再構成し、これにより形
態依存ソフトウエアを更新する。具体的に、オブジェク
トマネージャーは、デザインロボットからの通知により
オブジェクトをロード、アンロードすると共に、これら
アンロード及びロードに対応するようにオブジェクト間
通信を再構築し、これにより形態依存ソフトウエアを変
更する。
【0096】このオブジェクト間通信を構築する際に、
対応するオブジェクト名等がオブジェクトに登録されて
いなければならないとすると、各オブジェクトの独立性
が害され、自由な形態に対応するようにオブジェクトを
複数種類用意することが必要になる。このためこの実施
の形態において、オブジェクトマネージャーは、デザイ
ンロボットより出力される結合情報(Connection Dat
a)に基づいてオブジェクト間通信を構築し、これによ
りオブジェクトの独立性を担保する。なお、以下の説明
においては、ロボット装置1における具体的なオブジェ
クト名の特定を避けて説明を簡略化する。また、オブジ
ェクト間通信は、非同期により実行するものとする。
対応するオブジェクト名等がオブジェクトに登録されて
いなければならないとすると、各オブジェクトの独立性
が害され、自由な形態に対応するようにオブジェクトを
複数種類用意することが必要になる。このためこの実施
の形態において、オブジェクトマネージャーは、デザイ
ンロボットより出力される結合情報(Connection Dat
a)に基づいてオブジェクト間通信を構築し、これによ
りオブジェクトの独立性を担保する。なお、以下の説明
においては、ロボット装置1における具体的なオブジェ
クト名の特定を避けて説明を簡略化する。また、オブジ
ェクト間通信は、非同期により実行するものとする。
【0097】すなわち、図12は、この実施の形態に係
る2つのオブジェクト間におけるオブジェクト間通信の
基本構成を示す略線図である。この実施の形態において
は、レディー(Ready)とノーティファイ(Notify)と
を用いてオブジェクト間通信を実行し、これによりオブ
ジェクト(この例ではObjectB)の処理能力以上のデー
タを送出しないようになされている。
る2つのオブジェクト間におけるオブジェクト間通信の
基本構成を示す略線図である。この実施の形態において
は、レディー(Ready)とノーティファイ(Notify)と
を用いてオブジェクト間通信を実行し、これによりオブ
ジェクト(この例ではObjectB)の処理能力以上のデー
タを送出しないようになされている。
【0098】すなわち、図12において、オブジェクト
Aは、オブジェクトAのメンバーであるクラス0のサブ
ジェクトからオブジェクトBのメンバーである0オブザ
ーバークラスに対してデータを送出し、これによりオブ
ジェクトBのメソドがインボウク(invoke)される。こ
こでいう、サブジェクト及びオブザーバーは、その属す
るオブジェクトにおいていわゆる代理プログラムを構成
している。
Aは、オブジェクトAのメンバーであるクラス0のサブ
ジェクトからオブジェクトBのメンバーである0オブザ
ーバークラスに対してデータを送出し、これによりオブ
ジェクトBのメソドがインボウク(invoke)される。こ
こでいう、サブジェクト及びオブザーバーは、その属す
るオブジェクトにおいていわゆる代理プログラムを構成
している。
【0099】この関係において、サブジェクトは、オブ
ザーバーよりレディー(Ready)の信号が送出されてい
る場合にのみデータを送出する。なお、レディー(Read
y)の信号は、1回のデータにつき1回送る必要があ
る。これによリオブザーバー側であるオブジェクトBに
おいては、受け取ったデータの処理の完了を待って続く
データを受信することができるようになされている。
ザーバーよりレディー(Ready)の信号が送出されてい
る場合にのみデータを送出する。なお、レディー(Read
y)の信号は、1回のデータにつき1回送る必要があ
る。これによリオブザーバー側であるオブジェクトBに
おいては、受け取ったデータの処理の完了を待って続く
データを受信することができるようになされている。
【0100】このように、レディー(Ready)とノーテ
ィファイ(Notify)とを用いることにより、オブジェク
ト間通信が実行される。そして、本発明が適用されたオ
ブジェクト間通信は、送信側及び受信側のオブジェクト
が共有メモリ上のデータを共有することでオブジェクト
間通信を実現している。
ィファイ(Notify)とを用いることにより、オブジェク
ト間通信が実行される。そして、本発明が適用されたオ
ブジェクト間通信は、送信側及び受信側のオブジェクト
が共有メモリ上のデータを共有することでオブジェクト
間通信を実現している。
【0101】また、図13は、マルチオブザーバーにお
けるオブジェクト間通信の基本構成を示す略線図であ
る。この場合、サブジェクトであるオブジェクトAは、
全てのオブザーバーに対してデータを配信することがで
き、また、オブジェクトIDにより特定される特定のオ
ブザーバーに対してのみにデータを配信することもでき
る。なお、この実施の形態においては、このようなマル
チオブザーバーの状態においても、レディー(Ready)
の信号により対応するオブザーバーに対してデータを送
出する。
けるオブジェクト間通信の基本構成を示す略線図であ
る。この場合、サブジェクトであるオブジェクトAは、
全てのオブザーバーに対してデータを配信することがで
き、また、オブジェクトIDにより特定される特定のオ
ブザーバーに対してのみにデータを配信することもでき
る。なお、この実施の形態においては、このようなマル
チオブザーバーの状態においても、レディー(Ready)
の信号により対応するオブザーバーに対してデータを送
出する。
【0102】各オブジェクトにおいては、オブジェクト
を特定するオブジェクトID、メソド(method)を特定
するセレクタ番号(selector)(メソド番号である)を
指定することにより、対応するメソドを起動(エント
リ)し、オブザーバーを特定して所望のデータを送出す
る。
を特定するオブジェクトID、メソド(method)を特定
するセレクタ番号(selector)(メソド番号である)を
指定することにより、対応するメソドを起動(エント
リ)し、オブザーバーを特定して所望のデータを送出す
る。
【0103】図14は、いわゆるマルチサブジェクトに
おけるオブジェクト間通信の基本構成を示す略線図であ
る。この場合、オブジェクトA及びBがサブジェクトで
あり、オブジェクトCがオブザーバーである。オブザー
バーにおいては、このように複数のサブジェクトよりそ
れぞれデータを受信することができ、また、データを受
信する毎にデータを処理するメソドがインボウク(invo
ke)されるようになされている。また、オブザーバー
は、サブジェクトIDにより特定される特定のサブジェ
クトに対してのみにレディー(Ready)の信号を送出し
て所望のデータを選択的に入力できるようになされてい
る。
おけるオブジェクト間通信の基本構成を示す略線図であ
る。この場合、オブジェクトA及びBがサブジェクトで
あり、オブジェクトCがオブザーバーである。オブザー
バーにおいては、このように複数のサブジェクトよりそ
れぞれデータを受信することができ、また、データを受
信する毎にデータを処理するメソドがインボウク(invo
ke)されるようになされている。また、オブザーバー
は、サブジェクトIDにより特定される特定のサブジェ
クトに対してのみにレディー(Ready)の信号を送出し
て所望のデータを選択的に入力できるようになされてい
る。
【0104】この実施の形態において、少なくとも形態
依存ソフトウエアレイヤーの属するオブジェクトにおい
ては、これら図12〜図14を用いて説明したように、
レディー(Ready)とノーティファイ(Notify)とを用
いてオブジェクト間通信を実行し、また、必要に応じて
マルチオブザーバー、マルチサブジェクトの結合形態に
より他のオブジェクトを結合できるようになされてい
る。すなわち、複数のオブザーバーを有するオブジェク
トにあっては、これら複数のオブザーバーに対応する数
のコネクトエントリを有するようになされている。
依存ソフトウエアレイヤーの属するオブジェクトにおい
ては、これら図12〜図14を用いて説明したように、
レディー(Ready)とノーティファイ(Notify)とを用
いてオブジェクト間通信を実行し、また、必要に応じて
マルチオブザーバー、マルチサブジェクトの結合形態に
より他のオブジェクトを結合できるようになされてい
る。すなわち、複数のオブザーバーを有するオブジェク
トにあっては、これら複数のオブザーバーに対応する数
のコネクトエントリを有するようになされている。
【0105】図15は、オブジェクトマネージャーと各
オブジェクトとの関係を示す略線図である。各オブジェ
クトにおいては、それぞれオブジェクトID、セレクタ
番号(Selector)によリメソドを特定してデータ交換
し、それぞれ対応するサブジェクト、オブザーバーとは
何ら無関係に、基本的なメソドについてセレクタ番号0
〜3がそれぞれ割り当てられるようになされている。
オブジェクトとの関係を示す略線図である。各オブジェ
クトにおいては、それぞれオブジェクトID、セレクタ
番号(Selector)によリメソドを特定してデータ交換
し、それぞれ対応するサブジェクト、オブザーバーとは
何ら無関係に、基本的なメソドについてセレクタ番号0
〜3がそれぞれ割り当てられるようになされている。
【0106】ここでセレクタ番号0には、ドウイニシャ
ライズ(DOInit)が割り当てられ、各オブジェクトは、
このドウイニシャライズ(DOInit)の起動により初期化
されるようになされている。また、セレクタ番号1に
は、ドウスタート(DOStart)が割り当てられ、各オブ
ジェクトは、このドウスタート(DOStart)の起動によ
り動作を開始するようになされている。さらに、セレク
タ番号2には、ドウストップ(DOStop)が割り当てら
れ、各オブジェクトは、このドウストップ(DOStop)の
起動により動作を停止するようになされている。また、
セレクタ番号2には、ドウデストロイ(DODestroy)が
割り当てられ、各オブジェクトは、このドウデストロイ
(DODestroy)によりリソースを開放するようになされ
ている。
ライズ(DOInit)が割り当てられ、各オブジェクトは、
このドウイニシャライズ(DOInit)の起動により初期化
されるようになされている。また、セレクタ番号1に
は、ドウスタート(DOStart)が割り当てられ、各オブ
ジェクトは、このドウスタート(DOStart)の起動によ
り動作を開始するようになされている。さらに、セレク
タ番号2には、ドウストップ(DOStop)が割り当てら
れ、各オブジェクトは、このドウストップ(DOStop)の
起動により動作を停止するようになされている。また、
セレクタ番号2には、ドウデストロイ(DODestroy)が
割り当てられ、各オブジェクトは、このドウデストロイ
(DODestroy)によりリソースを開放するようになされ
ている。
【0107】さらに、各オブジェクトにおいては、これ
らオブジェクトマネージャーからの要求、また他のオブ
ジェクトからの要求に対して、適宜、リターン値により
オブザーバーによるサービス名、セレクタ番号等を通知
するようになされている。
らオブジェクトマネージャーからの要求、また他のオブ
ジェクトからの要求に対して、適宜、リターン値により
オブザーバーによるサービス名、セレクタ番号等を通知
するようになされている。
【0108】これにより、デザインロボットより通知さ
れる結合情報(Connection Data)に基づいて、オブジ
ェクトマネージャーによリオブジェクトをロード、アン
ロードした後、オブジェクト間通信を再構築できるよう
になされている。
れる結合情報(Connection Data)に基づいて、オブジ
ェクトマネージャーによリオブジェクトをロード、アン
ロードした後、オブジェクト間通信を再構築できるよう
になされている。
【0109】次式は、このデザインロボットより通知さ
れる結合情報(Connection Data)を示すものであり、
サブジェクトのサービス名とオブザーバーのサービス名
をコロンで区切ってテキストデータ形式により記述され
る。この場合、サブジェクト側においては、オブジェク
ト名であるFooB、データ形式Image、対応する構成要素
名による名称RightCamera、サブジェクトを示すSの記
述がサービス名として記述される。また、オブザーバー
側にあっては、オブジェクト名であるFooA、データ形式
Image、対応する構成要素名による名称RightCamera、オ
ブザーバーを示す○の記述がサービス名として記述され
る。
れる結合情報(Connection Data)を示すものであり、
サブジェクトのサービス名とオブザーバーのサービス名
をコロンで区切ってテキストデータ形式により記述され
る。この場合、サブジェクト側においては、オブジェク
ト名であるFooB、データ形式Image、対応する構成要素
名による名称RightCamera、サブジェクトを示すSの記
述がサービス名として記述される。また、オブザーバー
側にあっては、オブジェクト名であるFooA、データ形式
Image、対応する構成要素名による名称RightCamera、オ
ブザーバーを示す○の記述がサービス名として記述され
る。
【0110】
【数5】
【0111】オブジェクトマネージャーにおいては、オ
ブジェクトをロードする際に、この結合情報(Connecti
on Data)の記述よりロードするオブジェクト名を検出
する。
ブジェクトをロードする際に、この結合情報(Connecti
on Data)の記述よりロードするオブジェクト名を検出
する。
【0112】さらに、オブジェクトマネージャーは、ス
タックメモリ(Stack)、ヒープメモリ(heap)を確保
してこの検出したオブジェクト名のオブジェクトを所定
のファイルよりロードする。このときオブジェクトマネ
ージャーは、オペレーションシステム(OS,Operatio
n System)よりオブジェクトIDを取得し、このオブジ
ェクトIDを結合情報(Connection Data)に記述され
たオブジェクト名と共に記録する。
タックメモリ(Stack)、ヒープメモリ(heap)を確保
してこの検出したオブジェクト名のオブジェクトを所定
のファイルよりロードする。このときオブジェクトマネ
ージャーは、オペレーションシステム(OS,Operatio
n System)よりオブジェクトIDを取得し、このオブジ
ェクトIDを結合情報(Connection Data)に記述され
たオブジェクト名と共に記録する。
【0113】これによりオブジェクトマネージャーにお
いては、このようにして登録したオブジェクトIDを用
いて以下のドウイニシャライズ(DOInit)、ドウコネク
ト(DOConnect)、ドウスタート(DOStart)等の処理を
実行するようになされている。
いては、このようにして登録したオブジェクトIDを用
いて以下のドウイニシャライズ(DOInit)、ドウコネク
ト(DOConnect)、ドウスタート(DOStart)等の処理を
実行するようになされている。
【0114】すなわち、ドウイニシャライズ(DOInit)
において、取得したオブジェクトIDと、上述したセレ
クタ番号に基づいて、オブジェクトマネージャーは、オ
ブジェクトのロードにより取得した全てのオブジェクト
に対してドウイニシャライズ(DOInit)をコールする。
各オブジェクトにおいては、このドウイニシャライズ
(DOInit)により内部変数等を初期化し、これによりオ
ブジェクトマネージャーにおいては、各オブジェクトを
初期化する。
において、取得したオブジェクトIDと、上述したセレ
クタ番号に基づいて、オブジェクトマネージャーは、オ
ブジェクトのロードにより取得した全てのオブジェクト
に対してドウイニシャライズ(DOInit)をコールする。
各オブジェクトにおいては、このドウイニシャライズ
(DOInit)により内部変数等を初期化し、これによりオ
ブジェクトマネージャーにおいては、各オブジェクトを
初期化する。
【0115】この初期化の処理において、オブジェクト
マネージャーは、各オブジェクトからの通知により、そ
れぞれ各オブジェクトのサブジェクトとしてのエントリ
(Control)、オブジェクトとしてのエントリ(Connec
t)を登録する。なお、この登録は、結合情報(Connect
ion Data)におけるサブジェクト及びオブジェクトの記
述に対応して、オブジェクトの名前とサブジェクト、オ
ブジェクトの名前により構成される。
マネージャーは、各オブジェクトからの通知により、そ
れぞれ各オブジェクトのサブジェクトとしてのエントリ
(Control)、オブジェクトとしてのエントリ(Connec
t)を登録する。なお、この登録は、結合情報(Connect
ion Data)におけるサブジェクト及びオブジェクトの記
述に対応して、オブジェクトの名前とサブジェクト、オ
ブジェクトの名前により構成される。
【0116】これに対してドウコネクト(DOConnect)
において、オブジェクトマネージャーは、ドウイニシャ
ライズ(DOInit)における登録に基づいて、オブザーバ
ーを有する各オブジェクトのエントリ(Connect)に対
して、それぞれ登録対象であるサブジェクトのサブジェ
クトID(オブジェクトID)、エントリ(Control)
を通知する。これによりこの通知を受けたオブジェクト
において、通知されたサブジェクトID、エントリ(Co
ntrol)を用いて対応するサブジェクトを呼び出し、こ
こにエントリ(Notify)が接続登録される。また、接続
登録が要求されたサブジェクトよりレディー(Ready)
がオブザーバーに返され、これによりオブザーバーと対
応するサブジェクトとが結合される。
において、オブジェクトマネージャーは、ドウイニシャ
ライズ(DOInit)における登録に基づいて、オブザーバ
ーを有する各オブジェクトのエントリ(Connect)に対
して、それぞれ登録対象であるサブジェクトのサブジェ
クトID(オブジェクトID)、エントリ(Control)
を通知する。これによりこの通知を受けたオブジェクト
において、通知されたサブジェクトID、エントリ(Co
ntrol)を用いて対応するサブジェクトを呼び出し、こ
こにエントリ(Notify)が接続登録される。また、接続
登録が要求されたサブジェクトよりレディー(Ready)
がオブザーバーに返され、これによりオブザーバーと対
応するサブジェクトとが結合される。
【0117】このようにしてオブザーバー及びサブジェ
クト間でオブジェクト間通信を構築するにつきオブジェ
クトマネージャーにおいては、結合情報(Connection D
ata)で通知されたオブザーバーに対して対応するサブ
ジェクトのサブジェクトID(オブジェクトID)、エ
ントリ(Control)を通知する。これにより、各オブジ
ェクトにおいては、何ら結合対象のオブジェクトを明示
的に示すことなく開発できるようになされ、また必要に
応じてオブジェクトマネージャーの指示により種々のオ
ブジェクトと結合できるようになされ、これにより従来
に比して高い独立性を確保できるようになされている。
クト間でオブジェクト間通信を構築するにつきオブジェ
クトマネージャーにおいては、結合情報(Connection D
ata)で通知されたオブザーバーに対して対応するサブ
ジェクトのサブジェクトID(オブジェクトID)、エ
ントリ(Control)を通知する。これにより、各オブジ
ェクトにおいては、何ら結合対象のオブジェクトを明示
的に示すことなく開発できるようになされ、また必要に
応じてオブジェクトマネージャーの指示により種々のオ
ブジェクトと結合できるようになされ、これにより従来
に比して高い独立性を確保できるようになされている。
【0118】また、このときオブジェクトマネージャー
により結合情報(Connection Data)に従ってオブジェ
クト間通信を構築することにより、簡易かつ自在に形態
依存ソフトウエアを更新して、形態に適してソフトウエ
アを簡易に変更できるようになされている。
により結合情報(Connection Data)に従ってオブジェ
クト間通信を構築することにより、簡易かつ自在に形態
依存ソフトウエアを更新して、形態に適してソフトウエ
アを簡易に変更できるようになされている。
【0119】これに対してドウスタート(DOStart)に
おいて、オブジェクトマネージャーは、上述したセレク
タ番号1により各オブジェクトにドウスタート(DOStar
t)を指示する。各オブジェクトにおいては、オブザー
バーを有する場合、ドウコネクト(DOConnect)により
取得したサブジェクトID、エントリ(Ready)を用い
てサブジェクトにレディー(Ready)を送出し、これに
より対応するサブジェクトよりデータ受信可能な状態が
形成され、形態依存ソフトウエアにおいては、動作を開
始するようになされている。
おいて、オブジェクトマネージャーは、上述したセレク
タ番号1により各オブジェクトにドウスタート(DOStar
t)を指示する。各オブジェクトにおいては、オブザー
バーを有する場合、ドウコネクト(DOConnect)により
取得したサブジェクトID、エントリ(Ready)を用い
てサブジェクトにレディー(Ready)を送出し、これに
より対応するサブジェクトよりデータ受信可能な状態が
形成され、形態依存ソフトウエアにおいては、動作を開
始するようになされている。
【0120】すなわち、マルチオブザーバーによるサブ
ジェクトにおいては、登録したオブザーバーのうちのレ
ディー(Ready)を送出しているオブザーバーに例えば
センサー出力であるデータをノーティファイ(Notify)
し、またオブザーバーにおいては、受信したデータの処
理を完了して次のデータを受信可能となるとレディー
(Ready)を送出する。
ジェクトにおいては、登録したオブザーバーのうちのレ
ディー(Ready)を送出しているオブザーバーに例えば
センサー出力であるデータをノーティファイ(Notify)
し、またオブザーバーにおいては、受信したデータの処
理を完了して次のデータを受信可能となるとレディー
(Ready)を送出する。
【0121】これに対して上述したシャットダウン、プ
ラグイン、プラグアウト、状態変更の場合、デザインロ
ボットより通知される結合情報(Connection Data)
が、以前デザインロボットより送出されて登録した内容
と異なることにより、この場合オブジェクトマネージャ
ーは、上述したセレクタ番号2により各オブジェクトに
ドウストップ(DOStop)を送出する。この場合オブザー
バーにあっては、エントリ(Ready)を解除する。
ラグイン、プラグアウト、状態変更の場合、デザインロ
ボットより通知される結合情報(Connection Data)
が、以前デザインロボットより送出されて登録した内容
と異なることにより、この場合オブジェクトマネージャ
ーは、上述したセレクタ番号2により各オブジェクトに
ドウストップ(DOStop)を送出する。この場合オブザー
バーにあっては、エントリ(Ready)を解除する。
【0122】また、ドウディスコネクト(DODisconnec
t)において、オブジェクトマネージャーは、サブジェ
クトとオブザーバーとの間の通信接続を遮断する。この
場合、オブジェクトマネージャーは、オブザーバーのエ
ントリ(Connect)に対してドウデイスコネクト(DODis
connect)のメッセージを送出することにより、オブザ
ーバーより対応するサブジェクトにエントリ(Contro
l)の切断要求(Remove Observer)を発行させ、これに
より通信接続を遮断する。
t)において、オブジェクトマネージャーは、サブジェ
クトとオブザーバーとの間の通信接続を遮断する。この
場合、オブジェクトマネージャーは、オブザーバーのエ
ントリ(Connect)に対してドウデイスコネクト(DODis
connect)のメッセージを送出することにより、オブザ
ーバーより対応するサブジェクトにエントリ(Contro
l)の切断要求(Remove Observer)を発行させ、これに
より通信接続を遮断する。
【0123】これに対してドウデストロイ(DODestro
y)において、オブジェクトマネージャーは、上述した
セレクタ番号3により対応するオブジェクトにドウデス
トロイ(DODestroy)を送出し、これによりこのオブジ
ェクトを破壊する。このときこのオブジェクトにおいて
は、ドウイニシャライズ(DOInit)で実行した登録の解
除を実行する。
y)において、オブジェクトマネージャーは、上述した
セレクタ番号3により対応するオブジェクトにドウデス
トロイ(DODestroy)を送出し、これによりこのオブジ
ェクトを破壊する。このときこのオブジェクトにおいて
は、ドウイニシャライズ(DOInit)で実行した登録の解
除を実行する。
【0124】オブジェクトアンロード(Object Unloa
d)において、オブジェクトマネージャーは、ドウデス
トロイ(DODestroy)により破壊したオブジェクトにつ
いて、スタックメモリ、ヒープメモリの領域を開放し、
このオブジェクトをアンロードする。また、ロード時に
登録したサブジェクトID、サブジェクト名を抹消す
る。
d)において、オブジェクトマネージャーは、ドウデス
トロイ(DODestroy)により破壊したオブジェクトにつ
いて、スタックメモリ、ヒープメモリの領域を開放し、
このオブジェクトをアンロードする。また、ロード時に
登録したサブジェクトID、サブジェクト名を抹消す
る。
【0125】オブジェクトマネージャーは、これらの制
御により、例えば結合情報(Connection Data)をデザ
インロボットより受け取ると、図16に示すシーケンス
によりドウスタート(DOStart)までの制御を実行す
る。
御により、例えば結合情報(Connection Data)をデザ
インロボットより受け取ると、図16に示すシーケンス
によりドウスタート(DOStart)までの制御を実行す
る。
【0126】すなわち、オブジェクトマネージャーは、
メッセージにより結合情報(Connection Data)が送ら
れると起動し、例えばこの結合情報に記述されたオブジ
ェクトA及びオブジェクトBをロードする。なお、ここ
ではオペレーションシステムのシステム命令によりオブ
ジェクトA及びオブジェクトBをロードする。このとき
オブジェクトマネージャーは、オブジェクトA及びBの
オブジェクトIDを取得して登録する。
メッセージにより結合情報(Connection Data)が送ら
れると起動し、例えばこの結合情報に記述されたオブジ
ェクトA及びオブジェクトBをロードする。なお、ここ
ではオペレーションシステムのシステム命令によりオブ
ジェクトA及びオブジェクトBをロードする。このとき
オブジェクトマネージャーは、オブジェクトA及びBの
オブジェクトIDを取得して登録する。
【0127】続いてオブジェクトマネージャーは、上述
したようにしてこの取得したオブザーバーID、セレク
タ番号0によりオブジェクトA及びBのドウイニシャラ
イズ(DOInit)を起動し、これによリオブジェクトA及
びBより、サブジェクトとしてのエントリ(Contro
l)、オブジェクトとしてのエントリ(Connect)を取得
して登録する。
したようにしてこの取得したオブザーバーID、セレク
タ番号0によりオブジェクトA及びBのドウイニシャラ
イズ(DOInit)を起動し、これによリオブジェクトA及
びBより、サブジェクトとしてのエントリ(Contro
l)、オブジェクトとしてのエントリ(Connect)を取得
して登録する。
【0128】続いて登録したエントリ(Connect)を用
いてオブザーバーであるオブジェクトAのドウコネクト
(DOConnect)を起動し、サブジェクトであるオブジェ
クトBとこのオブジェクトAとを結合する。このように
して結合情報(Connection Data)に基づいてオブジェ
クト間通信が構築され、オブジェクトマネージャーは、
続いてオブジェクトA及びBのドウスタート(DOStar
t)を起動する。
いてオブザーバーであるオブジェクトAのドウコネクト
(DOConnect)を起動し、サブジェクトであるオブジェ
クトBとこのオブジェクトAとを結合する。このように
して結合情報(Connection Data)に基づいてオブジェ
クト間通信が構築され、オブジェクトマネージャーは、
続いてオブジェクトA及びBのドウスタート(DOStar
t)を起動する。
【0129】図17は、このドウスタート(DOStart)
以降のシーケンスを示すタイムチャートである。オブジ
ェクトマネージャーのドウスタート(DOStart)により
オブジェクトA、オブジェクトB、他のオブジェクト等
が起動すると、これらのオブジェクトにおいては、上述
したレディー(Ready)とノーティファイ(Notify)と
を用いてオブジェクト間通信を実行する。
以降のシーケンスを示すタイムチャートである。オブジ
ェクトマネージャーのドウスタート(DOStart)により
オブジェクトA、オブジェクトB、他のオブジェクト等
が起動すると、これらのオブジェクトにおいては、上述
したレディー(Ready)とノーティファイ(Notify)と
を用いてオブジェクト間通信を実行する。
【0130】すなわち、この場合、起動によりオブジェ
クトAがオブジェクトBのレディー(Ready)エントリ
にレディー(Ready)メッセージを送出し、オブジェク
トBによるオブジェクトAのノーティファイ(Notify)
エントリによりオブジェクトBからオブジェクトAにデ
ータ等が送出される。また、このデータの処理中に、オ
ブジェクトAよりオブジェクトBのレディー(Ready)
エントリに未だメッセージが送出されていない場合に
は、オブジェクトBによるオブジェクトAのノーティフ
ァイ(Notify)エントリが登録され、オブジェクトAに
よるオブジェクトBのレディー(Ready)エントリによ
りデータ等が送出される。これによりこのオブジェクト
間通信においては、オブジェクトAのデータ処理能力を
越えたデータの伝送が防止される。
クトAがオブジェクトBのレディー(Ready)エントリ
にレディー(Ready)メッセージを送出し、オブジェク
トBによるオブジェクトAのノーティファイ(Notify)
エントリによりオブジェクトBからオブジェクトAにデ
ータ等が送出される。また、このデータの処理中に、オ
ブジェクトAよりオブジェクトBのレディー(Ready)
エントリに未だメッセージが送出されていない場合に
は、オブジェクトBによるオブジェクトAのノーティフ
ァイ(Notify)エントリが登録され、オブジェクトAに
よるオブジェクトBのレディー(Ready)エントリによ
りデータ等が送出される。これによりこのオブジェクト
間通信においては、オブジェクトAのデータ処理能力を
越えたデータの伝送が防止される。
【0131】図18は、プラグイン、プラグアウト、状
態変更におけるシーケンスを示すタイムチャートであ
る。オブジェクトマネージャーは、デザインロボットよ
り通知される結合情報(Connection Data)が、以前デ
ザインロボットより送出されて登録した内容と異なって
いると、全てのオブジェクトにドウストップ(DOStop)
を送出し、全てのオブジェクトの動作を停止する。この
場合、各オブジェクトA及びBにおいては、エントリ
(Ready)を解除することにより、それ以後、自己のノ
ーティファイエントリが起動されないようにする。
態変更におけるシーケンスを示すタイムチャートであ
る。オブジェクトマネージャーは、デザインロボットよ
り通知される結合情報(Connection Data)が、以前デ
ザインロボットより送出されて登録した内容と異なって
いると、全てのオブジェクトにドウストップ(DOStop)
を送出し、全てのオブジェクトの動作を停止する。この
場合、各オブジェクトA及びBにおいては、エントリ
(Ready)を解除することにより、それ以後、自己のノ
ーティファイエントリが起動されないようにする。
【0132】全てのオブジェクトのドウストップ(DOSt
op)が完了すると、オブジェクトマネージャーは、この
場合、オブジェクトAにドウデイスコネクト(DODiscon
nect)を通知してこのオブジェクトAを他のオブジェク
トと切り離した後、このオブジェクトAのドウデストロ
イ(DODestroy)を起動する。これによリオブジェクト
Aのリソースを開放し、またドウイニシャライズ(DOIn
it)で実行したオブジェクトBの登録を解除する。
op)が完了すると、オブジェクトマネージャーは、この
場合、オブジェクトAにドウデイスコネクト(DODiscon
nect)を通知してこのオブジェクトAを他のオブジェク
トと切り離した後、このオブジェクトAのドウデストロ
イ(DODestroy)を起動する。これによリオブジェクト
Aのリソースを開放し、またドウイニシャライズ(DOIn
it)で実行したオブジェクトBの登録を解除する。
【0133】必要なオブジェクトに対するドウデストロ
イ(DODestroy)が終了するとオブジェクトマネージャ
ーは、アンロードをオペレーションシステムのシステム
命令により実行する。なお、ここで必要なオブジェクト
のdestructorが呼び出され、この場合はオブジェクトA
のdestructorが呼び出されることにより、ロード時に実
行したオブジェクトAの登録を解除する。さらに、オブ
ジェクトマネージャーは、スタックメモリ、ヒープメモ
リを開放し、これによりオブジェクトAのアンロードを
完了する。
イ(DODestroy)が終了するとオブジェクトマネージャ
ーは、アンロードをオペレーションシステムのシステム
命令により実行する。なお、ここで必要なオブジェクト
のdestructorが呼び出され、この場合はオブジェクトA
のdestructorが呼び出されることにより、ロード時に実
行したオブジェクトAの登録を解除する。さらに、オブ
ジェクトマネージャーは、スタックメモリ、ヒープメモ
リを開放し、これによりオブジェクトAのアンロードを
完了する。
【0134】統いてオブジェクトマネージャーは、結合
情報(Connection Data)に従ってオブジェクトCのロ
ードを指示し、図16について上述したと同様にして、
順次ドウイニシャライズ(DOInit)、ドウコネクト(DO
Connect)、ドウスタート(DOStart)を起動する。これ
によりこの場合、動作中に、コンパイルすることなくオ
ブジェクトA及びBによる構成がオブジェクトB及びC
による構成に変更されるようになされている。
情報(Connection Data)に従ってオブジェクトCのロ
ードを指示し、図16について上述したと同様にして、
順次ドウイニシャライズ(DOInit)、ドウコネクト(DO
Connect)、ドウスタート(DOStart)を起動する。これ
によりこの場合、動作中に、コンパイルすることなくオ
ブジェクトA及びBによる構成がオブジェクトB及びC
による構成に変更されるようになされている。
【0135】以上、図12乃至図18を用いて、オブジ
ェクト間通信をするためのオブジェクト間の接合等につ
いて説明をした。次に、実施の形態における要部である
本発明に関する部分について説明する。本発明は、各オ
ブジェクト(プロセス)間のオブジェクト(プロセス)
間通信に関するものであり、円滑なオブジェクト間通信
を実現するものである。
ェクト間通信をするためのオブジェクト間の接合等につ
いて説明をした。次に、実施の形態における要部である
本発明に関する部分について説明する。本発明は、各オ
ブジェクト(プロセス)間のオブジェクト(プロセス)
間通信に関するものであり、円滑なオブジェクト間通信
を実現するものである。
【0136】上述したように、オブジェクト間通信、す
なわち各オブジェクトのデータの入力と出力は、サブジ
ェクトとオブザーバーといういわゆる代理プログラムに
よって管理されている。そして、上述したように、サブ
ジェクトとオブザーバーとの間で一定の手続きを踏むこ
とで各オブジェクト間のデータ通信が実現されることか
ら、各オブジェクト間の設計は容易に実現されている。
なわち各オブジェクトのデータの入力と出力は、サブジ
ェクトとオブザーバーといういわゆる代理プログラムに
よって管理されている。そして、上述したように、サブ
ジェクトとオブザーバーとの間で一定の手続きを踏むこ
とで各オブジェクト間のデータ通信が実現されることか
ら、各オブジェクト間の設計は容易に実現されている。
【0137】一般的には、オブジェクト間通信は、各オ
ブジェクトが異なるメモリー空間上で動作していること
が前提とされることから、メモリー空間をまたいで送信
側のオブジェクトから受信側のオブジェクトへデータを
コピーする、若しくは各オブジェクト(メモリ空間)か
らも参照可能な共有メモリ上にデータを配置する、とい
った手法によって実現されると考えられる。
ブジェクトが異なるメモリー空間上で動作していること
が前提とされることから、メモリー空間をまたいで送信
側のオブジェクトから受信側のオブジェクトへデータを
コピーする、若しくは各オブジェクト(メモリ空間)か
らも参照可能な共有メモリ上にデータを配置する、とい
った手法によって実現されると考えられる。
【0138】メモリー空間をまたいでデータをコピーす
る手法を想定した場合、処理が簡単である反面、オブザ
ーバーからサブジェクトへのコピー、サブジェクトから
オブジェクトへのコピーといったように、最低2回のコ
ピーが必要とされる。さらに、この手法では、接続数に
比例してコピーの回数が増加するために、コピーの対象
データが大きい場合には不利である。
る手法を想定した場合、処理が簡単である反面、オブザ
ーバーからサブジェクトへのコピー、サブジェクトから
オブジェクトへのコピーといったように、最低2回のコ
ピーが必要とされる。さらに、この手法では、接続数に
比例してコピーの回数が増加するために、コピーの対象
データが大きい場合には不利である。
【0139】オブジェクト間で共有メモリを使う手法を
想定した場合、データのコピーは共有メモリへの1回の
みで済み、接続数が増えてもその影響もなく、上述の場
合と比較して性能上有利な面がある。
想定した場合、データのコピーは共有メモリへの1回の
みで済み、接続数が増えてもその影響もなく、上述の場
合と比較して性能上有利な面がある。
【0140】しかし、共有メモリを利用することを想定
した場合でも、共有メモリ上のデータの実体は一つであ
るために、複数の使用者(共有メモリを使用しているオ
ブジェクト)がいる場合にはその全使用者のデータの使
用(参照)を保護する必要があり、一の使用者の書き込
みからデータを保護する必要がある。すなわち、複数の
使用者が使用するので、一の使用者によりデータが書き
換えられないようにする必要がある。
した場合でも、共有メモリ上のデータの実体は一つであ
るために、複数の使用者(共有メモリを使用しているオ
ブジェクト)がいる場合にはその全使用者のデータの使
用(参照)を保護する必要があり、一の使用者の書き込
みからデータを保護する必要がある。すなわち、複数の
使用者が使用するので、一の使用者によりデータが書き
換えられないようにする必要がある。
【0141】このような場合、共有メモリ上のデータの
管理(データの参照管理)を各使用者(オブジェクト)
に行わせることも考えられるが、データの参照管理とデ
ータ保護を使用者に行わせることは煩雑であるばかりで
なく、処理を誤った場合にはデータの破壊を招き、危険
である。
管理(データの参照管理)を各使用者(オブジェクト)
に行わせることも考えられるが、データの参照管理とデ
ータ保護を使用者に行わせることは煩雑であるばかりで
なく、処理を誤った場合にはデータの破壊を招き、危険
である。
【0142】このようなことから、本発明は、各使用者
(オブジェクト)に管理させる必要なく共有メモリ上の
データの管理を実現するものである。具体的には、本発
明が適用されたデータの管理は、共有メモリへの参照回
数(参照数或いはアクセス数)を計測して共有メモリの
データを管理するというものである。例えば、“MoreEf
fective(C++)”,Scott Mayer,Addison-Wesley Publishe
r pp.175-205では、参照回数を自動で計測する手法が提
案されており、本発明は、このような手法を異なるメモ
リ空間をまたいで共有メモリ上のデータを管理する手法
として拡張したものである。
(オブジェクト)に管理させる必要なく共有メモリ上の
データの管理を実現するものである。具体的には、本発
明が適用されたデータの管理は、共有メモリへの参照回
数(参照数或いはアクセス数)を計測して共有メモリの
データを管理するというものである。例えば、“MoreEf
fective(C++)”,Scott Mayer,Addison-Wesley Publishe
r pp.175-205では、参照回数を自動で計測する手法が提
案されており、本発明は、このような手法を異なるメモ
リ空間をまたいで共有メモリ上のデータを管理する手法
として拡張したものである。
【0143】先ず、図19を用いて共有メモリの使用者
(参照者)を指し示す値となる参照数(参照回数)の計
測原理について説明する。
(参照者)を指し示す値となる参照数(参照回数)の計
測原理について説明する。
【0144】各使用者(オブジェクト)への共有メモリ
Mへのアクセスは、各使用者が共有メモリポインタ(以
下、単にポインタという。)を入手することで許可され
る。すなわち、図19に示すように、ポインタP11,P
12,P13を入手した各使用者は、共有メモリの第1の領
域M1へのアクセスが許可され、ポインタP21,P22を
入手した各使用者は、共有メモリの第2の領域M2への
アクセスが許可される。これにより、ポインタP11,P
12,P13を入手した各使用者により共有メモリMの第1
の領域M1のデータが共有状態(参照可能状態)とさ
れ、ポインタP21,P22を入手した各使用者により共有
メモリの第2の領域M2のデータが共有状態(参照可能
状態)とされる。
Mへのアクセスは、各使用者が共有メモリポインタ(以
下、単にポインタという。)を入手することで許可され
る。すなわち、図19に示すように、ポインタP11,P
12,P13を入手した各使用者は、共有メモリの第1の領
域M1へのアクセスが許可され、ポインタP21,P22を
入手した各使用者は、共有メモリの第2の領域M2への
アクセスが許可される。これにより、ポインタP11,P
12,P13を入手した各使用者により共有メモリMの第1
の領域M1のデータが共有状態(参照可能状態)とさ
れ、ポインタP21,P22を入手した各使用者により共有
メモリの第2の領域M2のデータが共有状態(参照可能
状態)とされる。
【0145】そして、実際は、図19に示すように、各
ポインタP11,P12,P13,P21,P22による各
領域へのアクセス(参照)の許可は、対応される参照数
計測オブジェクトRO1,RO2による参照数(計測数)
を保持することにより実現されている。ここで、参照数
計測オブジェクトは、共有メモリMへのオブジェクトの
アクセスに応じて発生されたアクセス数とされるポイン
タ数に基づいて、当該共有メモリMへの複数のオブジェ
クトのアクセスを制御するアクセス数計数オブジェクト
である。また、参照数計測オブジェクトは、共有メモリ
Mへの複数のオブジェクトによるアクセスを制御するた
めの通信管理オブジェクトということもできる。具体的
には、この参照数計測オブジェクトにより、共有メモリ
上の唯一の実体を指し示されるとともにこの実体を参照
している使用者が入手した(使用者に割り当てられた)
ポインタの数が管理される。
ポインタP11,P12,P13,P21,P22による各
領域へのアクセス(参照)の許可は、対応される参照数
計測オブジェクトRO1,RO2による参照数(計測数)
を保持することにより実現されている。ここで、参照数
計測オブジェクトは、共有メモリMへのオブジェクトの
アクセスに応じて発生されたアクセス数とされるポイン
タ数に基づいて、当該共有メモリMへの複数のオブジェ
クトのアクセスを制御するアクセス数計数オブジェクト
である。また、参照数計測オブジェクトは、共有メモリ
Mへの複数のオブジェクトによるアクセスを制御するた
めの通信管理オブジェクトということもできる。具体的
には、この参照数計測オブジェクトにより、共有メモリ
上の唯一の実体を指し示されるとともにこの実体を参照
している使用者が入手した(使用者に割り当てられた)
ポインタの数が管理される。
【0146】このように共有メモリ上における所定領域
の使用者の参照数が管理されており、例えば、参照数計
測オブジェクトの参照数が2以上の場合は、当該参照数
計測オブジェクトが指し示す共有メモリM上の所定領域
へアクセスしている使用者の数は複数ある場合となり、
また、参照数計測オブジェクトの参照数が0の場合は、
当該参照数計測オブジェクトが指し示す共有メモリM上
の所定領域へアクセスしている使用者がない場合とな
る。なお、後述するように、参照数が0の場合には、参
照数計測オブジェクトを消滅させることにより、当該消
滅させた参照数計測オブジェクトが指し示してした領域
を未使用領域とする処理がなされる。
の使用者の参照数が管理されており、例えば、参照数計
測オブジェクトの参照数が2以上の場合は、当該参照数
計測オブジェクトが指し示す共有メモリM上の所定領域
へアクセスしている使用者の数は複数ある場合となり、
また、参照数計測オブジェクトの参照数が0の場合は、
当該参照数計測オブジェクトが指し示す共有メモリM上
の所定領域へアクセスしている使用者がない場合とな
る。なお、後述するように、参照数が0の場合には、参
照数計測オブジェクトを消滅させることにより、当該消
滅させた参照数計測オブジェクトが指し示してした領域
を未使用領域とする処理がなされる。
【0147】次に、図20を用いて、ポインタを発生さ
せる場合について説明する。ポインタを発生させる場合
とは、新規に共有メモリを作成する場合(共有メモリ上
に領域を確保する場合)、すなわち共有メモリへの使用
者による新規のアクセスがあった場合の処理となる。
せる場合について説明する。ポインタを発生させる場合
とは、新規に共有メモリを作成する場合(共有メモリ上
に領域を確保する場合)、すなわち共有メモリへの使用
者による新規のアクセスがあった場合の処理となる。
【0148】新規に共有メモリ上に領域を確保する場
合、図20に示すように、使用者が使用するポインタP
31が作成され、さらにそのポインタP31が対応される参
照数計測オブジェクトRO3が新規に作成される。そし
て、新規に作成された参照数計測オブジェクトRO3に
よって指し示される実体がシステムのプールしている共
有メモリM上の未使用領域M3に割り当てられる。これ
により、参照数計測オブジェクトRO3によって参照さ
れるポインタP31を入手した使用者は、当該参照数計測
オブジェクトRO3が指し示す領域M1を使用することが
できるようになる。
合、図20に示すように、使用者が使用するポインタP
31が作成され、さらにそのポインタP31が対応される参
照数計測オブジェクトRO3が新規に作成される。そし
て、新規に作成された参照数計測オブジェクトRO3に
よって指し示される実体がシステムのプールしている共
有メモリM上の未使用領域M3に割り当てられる。これ
により、参照数計測オブジェクトRO3によって参照さ
れるポインタP31を入手した使用者は、当該参照数計測
オブジェクトRO3が指し示す領域M1を使用することが
できるようになる。
【0149】例えば、このような新規の領域の確保は、
オブジェクト間通信の際に、オブジェクト間のデータの
送信用バッファとして使用される場合になされる。この
場合、オブジェクト間通信の際に、データが記録される
共有メモリMの所定領域M3がプロセス通信間にて使用
する送信用バッファとして自動的に割り当てられるので
ある。このような新規の領域M3の確保により、オブジ
ェクト間により当該領域M3のデータが共有可能とさ
れ、例えば、後述するように、メモリ空間の異なるオブ
ジェクト間でのデータの共有によるオブジェクト間通信
が可能となる。
オブジェクト間通信の際に、オブジェクト間のデータの
送信用バッファとして使用される場合になされる。この
場合、オブジェクト間通信の際に、データが記録される
共有メモリMの所定領域M3がプロセス通信間にて使用
する送信用バッファとして自動的に割り当てられるので
ある。このような新規の領域M3の確保により、オブジ
ェクト間により当該領域M3のデータが共有可能とさ
れ、例えば、後述するように、メモリ空間の異なるオブ
ジェクト間でのデータの共有によるオブジェクト間通信
が可能となる。
【0150】一方、ポインタを消滅させる場合について
は次のようになる。ポインタを消滅させる場合とは、例
えば、使用者が共有メモリMへのアクセスを終了したよ
うな場合である。ここで、ポインタを消滅させる場合に
おいて、当該消滅対象とされるポインタにより参照され
る参照数計測オブジェクトが他のポインタにより参照が
なされるいるときと、参照しているポインタがない場合
とで処理が異なる。
は次のようになる。ポインタを消滅させる場合とは、例
えば、使用者が共有メモリMへのアクセスを終了したよ
うな場合である。ここで、ポインタを消滅させる場合に
おいて、当該消滅対象とされるポインタにより参照され
る参照数計測オブジェクトが他のポインタにより参照が
なされるいるときと、参照しているポインタがない場合
とで処理が異なる。
【0151】すなわち、図21に示すように、消滅させ
ようとするポインタP11により参照がなされている参照
数計測オブジェクトRO1を他のポインタP12,P13が
参照している場合、当該消滅させようとするポインタP
11のみを消滅させる。そして、この際、参照数計測オブ
ジェクトRO1による参照数は3から2に変更される。
なお、このような参照数の変化は、参照数計測オブジェ
クトRO1の変更と等価である。
ようとするポインタP11により参照がなされている参照
数計測オブジェクトRO1を他のポインタP12,P13が
参照している場合、当該消滅させようとするポインタP
11のみを消滅させる。そして、この際、参照数計測オブ
ジェクトRO1による参照数は3から2に変更される。
なお、このような参照数の変化は、参照数計測オブジェ
クトRO1の変更と等価である。
【0152】一方、参照数計測オブジェクトRO2を参
照しているポインタが他にない場合、すなわち、参照数
計測オブジェクトRO2の参照数が1の場合、当該消滅
させようとするポインタP21とそのポインタP21が参照
している参照数計測オブジェクトRO2を消滅させる。
これにより、参照数計測オブジェクトRO2が消滅した
領域M2は、システムヘ返却され、その後、未使用領域
として把握されるようになる。一方、上述したようにポ
インタP11のみが消滅された場合には、参照数計測オブ
ジェクトRO1によって指し示される領域M1は、当該領
域についての参照数が1以上であることから、依然とし
て使用領域として把握される。
照しているポインタが他にない場合、すなわち、参照数
計測オブジェクトRO2の参照数が1の場合、当該消滅
させようとするポインタP21とそのポインタP21が参照
している参照数計測オブジェクトRO2を消滅させる。
これにより、参照数計測オブジェクトRO2が消滅した
領域M2は、システムヘ返却され、その後、未使用領域
として把握されるようになる。一方、上述したようにポ
インタP11のみが消滅された場合には、参照数計測オブ
ジェクトRO1によって指し示される領域M1は、当該領
域についての参照数が1以上であることから、依然とし
て使用領域として把握される。
【0153】以上のような処理(ポインタの振る舞い)
により、参照数計測オブジェクトの参照数が2以上の場
合には、当該参照数計測オブジェクトに対応される共有
メモリの所定領域を複数の使用者が使用(参照)してい
る場合であり、上述したように、ポインタを消滅させる
際(参照を終了する際)の参照数が2以上の場合には参
照数計測オブジェクトを存続させることにより、他の使
用者のデータの使用(参照)を保護することができる。
一方、参照数計測オブジェクトの参照数が1の場合に
は、当該参照数計測オブジェクトに対応される共有メモ
リの所定領域を一の使用者が使用(参照)している場合
であり、他の使用者のためにデータの使用(参照)を確
保する必要はなくなるので、上述したように、ポインタ
とともに参照数計測オブジェクトを消滅させることによ
り、未使用領域にすることができる。
により、参照数計測オブジェクトの参照数が2以上の場
合には、当該参照数計測オブジェクトに対応される共有
メモリの所定領域を複数の使用者が使用(参照)してい
る場合であり、上述したように、ポインタを消滅させる
際(参照を終了する際)の参照数が2以上の場合には参
照数計測オブジェクトを存続させることにより、他の使
用者のデータの使用(参照)を保護することができる。
一方、参照数計測オブジェクトの参照数が1の場合に
は、当該参照数計測オブジェクトに対応される共有メモ
リの所定領域を一の使用者が使用(参照)している場合
であり、他の使用者のためにデータの使用(参照)を確
保する必要はなくなるので、上述したように、ポインタ
とともに参照数計測オブジェクトを消滅させることによ
り、未使用領域にすることができる。
【0154】次に、図22を用いて、データを複製する
場合を説明する。データの複製は、単に参照先の参照数
計測オブジェクトの変更をする(参照数の増減)だけで
達成される。すなわち例えば、図22に示すように、第
2の領域M2のデータを複数する場合において、複製す
るデータが新たな使用者に対してなされるものであると
きには、当該第2の領域M2を指し示す第2の参照数計
測オブジェクトRO2を参照する新たなポインタP21を
発生(生成)させ、他の領域(例えば、第1の領域
M1)にアクセスしている使用者に対するデータの複製
であるときには、当該使用者のポインタP13による参照
の対象を第2の領域M2を指し示す第2の参照数計測オ
ブジェクトRO2に変更することによって達成される。
本例では、これにより、第1の領域M1を指し示す第1
の参照数計測オブジェクトRO1の参照数が3から2に
減少され、第2の参照数計測オブジェクトRO2の参照
数が1から3に増加される。
場合を説明する。データの複製は、単に参照先の参照数
計測オブジェクトの変更をする(参照数の増減)だけで
達成される。すなわち例えば、図22に示すように、第
2の領域M2のデータを複数する場合において、複製す
るデータが新たな使用者に対してなされるものであると
きには、当該第2の領域M2を指し示す第2の参照数計
測オブジェクトRO2を参照する新たなポインタP21を
発生(生成)させ、他の領域(例えば、第1の領域
M1)にアクセスしている使用者に対するデータの複製
であるときには、当該使用者のポインタP13による参照
の対象を第2の領域M2を指し示す第2の参照数計測オ
ブジェクトRO2に変更することによって達成される。
本例では、これにより、第1の領域M1を指し示す第1
の参照数計測オブジェクトRO1の参照数が3から2に
減少され、第2の参照数計測オブジェクトRO2の参照
数が1から3に増加される。
【0155】次に、図23を用いて、共有メモリの所定
領域に記録されているデータを書き換える場合を説明す
る。図23に示すように、データを書き換える領域M2
へのアクセスがそのデータを書き換えようとする使用者
(参照者)だけである場合、すなわち参照数計測オブジ
ェクトRO2の参照数が1である場合には、その領域M2
は自由に書き換えることが許されるので当該領域M2の
データをそのまま書き換える。
領域に記録されているデータを書き換える場合を説明す
る。図23に示すように、データを書き換える領域M2
へのアクセスがそのデータを書き換えようとする使用者
(参照者)だけである場合、すなわち参照数計測オブジ
ェクトRO2の参照数が1である場合には、その領域M2
は自由に書き換えることが許されるので当該領域M2の
データをそのまま書き換える。
【0156】一方、データを書き換える領域M1にその
データを書き換える使用者を含め複数の使用者がアクセ
スしている場合(すなわち、参照数計測オブジェクトR
O1の参照数が2以上である場合)、データを書き換え
ることが他の使用者のデータを壊すことになるので未使
用領域M3を割り当てるようにする。具体的には次のよ
うな処理手順により未使用領域M3を割り当ててデータ
の書き換えを実行する。
データを書き換える使用者を含め複数の使用者がアクセ
スしている場合(すなわち、参照数計測オブジェクトR
O1の参照数が2以上である場合)、データを書き換え
ることが他の使用者のデータを壊すことになるので未使
用領域M3を割り当てるようにする。具体的には次のよ
うな処理手順により未使用領域M3を割り当ててデータ
の書き換えを実行する。
【0157】先ず、未使用のメモリ領域M3を指し示す
(割り当てられた)新規の参照数計測オブジェクトRO
3を生成する。そして、データを書き換える使用者のポ
インタP13による参照対象をそのように新たに生成され
た参照数計測オブジェクトRO3に変更させて、当該参
照数計測オブジェクトRO3の指し示す領域M3に対して
新たにデータを書き込む。その際、そのように新たな生
成された参照数計測オブジェクトRO3の計測数は1と
され、元の参照数計測オブジェクトRO1の計測数は減
少される(本例では3から2に減少される)。
(割り当てられた)新規の参照数計測オブジェクトRO
3を生成する。そして、データを書き換える使用者のポ
インタP13による参照対象をそのように新たに生成され
た参照数計測オブジェクトRO3に変更させて、当該参
照数計測オブジェクトRO3の指し示す領域M3に対して
新たにデータを書き込む。その際、そのように新たな生
成された参照数計測オブジェクトRO3の計測数は1と
され、元の参照数計測オブジェクトRO1の計測数は減
少される(本例では3から2に減少される)。
【0158】このような処理手順を踏むことにより、一
の使用者がデータを書き換えようとする領域に他の使用
者がアクセスしている場合に、新たな領域へデータの書
き込みがなされるようになり、他の使用者にもアクセス
されているデータを破壊することなく一の使用者のデー
タの書き換えが実現されるようになる。
の使用者がデータを書き換えようとする領域に他の使用
者がアクセスしている場合に、新たな領域へデータの書
き込みがなされるようになり、他の使用者にもアクセス
されているデータを破壊することなく一の使用者のデー
タの書き換えが実現されるようになる。
【0159】また、上述したような参照数計測オブジェ
クトの生成と他の参照数計測オブジェクトへのポインタ
の変更は参照数計測オブジェクトの参照数を監視するシ
ステム(制御手段)により自動的に実行されるので、デ
ータを書き換えようとする使用者は、参照数計測オブジ
ェクトの生成と他の参照数計測オブジェクトへのポイン
タの変更といったような処理に関係なく(処理を把握す
る必要なく)データの書き換えを実行することができ
る。
クトの生成と他の参照数計測オブジェクトへのポインタ
の変更は参照数計測オブジェクトの参照数を監視するシ
ステム(制御手段)により自動的に実行されるので、デ
ータを書き換えようとする使用者は、参照数計測オブジ
ェクトの生成と他の参照数計測オブジェクトへのポイン
タの変更といったような処理に関係なく(処理を把握す
る必要なく)データの書き換えを実行することができ
る。
【0160】また、データの書き換えの際に他の使用者
がいる場合といない場合とで、上述のような処理が自動
的に行われるので、使用者は、どちらの処理が行われて
いるのかを知る必要はなくデータの書き換えを達成する
ことができる。このように使用者(オブジェクト)がデ
ータの書き換えの際の処理内容を把握する必要なく、デ
ータの書き換えが実現されることにより、オブジェクト
設計において、そのような処理内容を実行するためのプ
ログラムを組み込む必要はなくなる。
がいる場合といない場合とで、上述のような処理が自動
的に行われるので、使用者は、どちらの処理が行われて
いるのかを知る必要はなくデータの書き換えを達成する
ことができる。このように使用者(オブジェクト)がデ
ータの書き換えの際の処理内容を把握する必要なく、デ
ータの書き換えが実現されることにより、オブジェクト
設計において、そのような処理内容を実行するためのプ
ログラムを組み込む必要はなくなる。
【0161】以上、各種処理に対応した参照数計測オブ
ジェクトの発生、消滅、変更(計測数の増減)等のポイ
ンタの振る舞い(参照管理)について説明した。次に、
参照管理がメモリ空間をまたいで行われる場合について
説明する。すなわち、それぞれ異なるメモリ空間にオブ
ジェクトが存在しており、それら各オブジェクト(使用
者)により共有メモリがアクセスされるような場合につ
いて説明する。
ジェクトの発生、消滅、変更(計測数の増減)等のポイ
ンタの振る舞い(参照管理)について説明した。次に、
参照管理がメモリ空間をまたいで行われる場合について
説明する。すなわち、それぞれ異なるメモリ空間にオブ
ジェクトが存在しており、それら各オブジェクト(使用
者)により共有メモリがアクセスされるような場合につ
いて説明する。
【0162】先ず、図24を用いて、オブジェクトA
(メモリ空間A)からオブジェクトB(メモリ空間B)
へデータ転送をする際の処理手順を説明する。
(メモリ空間A)からオブジェクトB(メモリ空間B)
へデータ転送をする際の処理手順を説明する。
【0163】使用者は、ポインタP1を取得して、ポイ
ンタP1を使って当該ポインタP1に対応される領域に送
信したいデータを書き込む。ここで、ポインタP1に対
応される領域は、当該ポインタP1が参照する参照数計
測オブジェクトRO1が指し示す領域M1である。このよ
うにすることで、ポインタの振る舞いから安全にデータ
の書き込みを実現できる。
ンタP1を使って当該ポインタP1に対応される領域に送
信したいデータを書き込む。ここで、ポインタP1に対
応される領域は、当該ポインタP1が参照する参照数計
測オブジェクトRO1が指し示す領域M1である。このよ
うにすることで、ポインタの振る舞いから安全にデータ
の書き込みを実現できる。
【0164】次に、このデータの送信ために取得したポ
インタP1を代理プログラム(送信代理人)であるオブ
ジェクトBのサブジェクトに渡す。ポインタP1を受け
取ったサブジェクトは当該ポインタP1の複製を作成
し、オブジェクトBに通知する(メッセージパッシング
をする)。このとき、例えば、共有メモリのID等の属
性データと共にオブジェクトBに通知する。このような
いわゆるサブジェクトとオブザーバーとの間でのメッセ
ージパッシングは、上述したようなサブジェクトからの
ノーティファイ(Notify)を使用することにより実現さ
れるもので、異なるメモリ空間にて構成される情報処理
プロセス間で共有メモリMにアクセスするためのメッセ
ージを送信する機能(メッセージ通信機能)により実現
される。また、送信側の参照数計測オブジェクトRO1
は、サブジェクトによりポインタP1の複製が作成され
た結果、計測数に1が加算される。本例では、図24に
示すように、当該複製されたポインタP1の生成によ
り、参照数計測オブジェクトRO1の計測数は3から4
に増加される。
インタP1を代理プログラム(送信代理人)であるオブ
ジェクトBのサブジェクトに渡す。ポインタP1を受け
取ったサブジェクトは当該ポインタP1の複製を作成
し、オブジェクトBに通知する(メッセージパッシング
をする)。このとき、例えば、共有メモリのID等の属
性データと共にオブジェクトBに通知する。このような
いわゆるサブジェクトとオブザーバーとの間でのメッセ
ージパッシングは、上述したようなサブジェクトからの
ノーティファイ(Notify)を使用することにより実現さ
れるもので、異なるメモリ空間にて構成される情報処理
プロセス間で共有メモリMにアクセスするためのメッセ
ージを送信する機能(メッセージ通信機能)により実現
される。また、送信側の参照数計測オブジェクトRO1
は、サブジェクトによりポインタP1の複製が作成され
た結果、計測数に1が加算される。本例では、図24に
示すように、当該複製されたポインタP1の生成によ
り、参照数計測オブジェクトRO1の計測数は3から4
に増加される。
【0165】一方、受信側のオブジェクトBの代理プロ
グラム(受信代理人)のオブザーバーは、サブジェクト
からの通知を受信してポインタP11を保管する。また、
オブザーバーは、ポインタP11と共に通知された共有メ
モリのID等から当該ポインタP11の元のポインタP1
が参照する参照数計測オブジェクトRO1が指し示す共
有メモリM上の領域M1に、メモリ空間B側から、新た
に生成した参照数計測オブジェクトRO2によりアタッ
チする。そして、オブザーバーは、使用者(オブジェク
トB)の要求に応じてこのメモリ空間B側にて領域M1
を参照するためのポインタP2を作成して、参照数計測
オブジェクトRO3に渡す。これにより、オブジェクト
BがオブジェクトAによっても参照可能とされている領
域M1のデータを参照可能とされるので、実質的には異
なるメモリ空間上のオブジェクトAとオブジェクトBと
の間でのオブジェクト間通信が実現されたことになる。
グラム(受信代理人)のオブザーバーは、サブジェクト
からの通知を受信してポインタP11を保管する。また、
オブザーバーは、ポインタP11と共に通知された共有メ
モリのID等から当該ポインタP11の元のポインタP1
が参照する参照数計測オブジェクトRO1が指し示す共
有メモリM上の領域M1に、メモリ空間B側から、新た
に生成した参照数計測オブジェクトRO2によりアタッ
チする。そして、オブザーバーは、使用者(オブジェク
トB)の要求に応じてこのメモリ空間B側にて領域M1
を参照するためのポインタP2を作成して、参照数計測
オブジェクトRO3に渡す。これにより、オブジェクト
BがオブジェクトAによっても参照可能とされている領
域M1のデータを参照可能とされるので、実質的には異
なるメモリ空間上のオブジェクトAとオブジェクトBと
の間でのオブジェクト間通信が実現されたことになる。
【0166】そして、オブジェクトA側のメモリ空間で
は、オブジェクトBに渡してポインタが保持されて、参
照数計測オブジェクトRO1にて参照数として計数され
ているので、オブジェクトAによる共有メモリへのアク
セスは、当該共有メモリがオブジェクトBにもアクセス
されているといった前提のもとでなされるようになる。
は、オブジェクトBに渡してポインタが保持されて、参
照数計測オブジェクトRO1にて参照数として計数され
ているので、オブジェクトAによる共有メモリへのアク
セスは、当該共有メモリがオブジェクトBにもアクセス
されているといった前提のもとでなされるようになる。
【0167】次に、図25を用いてデータの開放の手続
きを説明する。ここでいう、データの開放とは、異なる
メモリ空間それぞれにオブジェクトAとオブジェクトB
とが存在している状態(図24を用いて説明)から、共
有メモリの共有状態が開放される状態をいう。
きを説明する。ここでいう、データの開放とは、異なる
メモリ空間それぞれにオブジェクトAとオブジェクトB
とが存在している状態(図24を用いて説明)から、共
有メモリの共有状態が開放される状態をいう。
【0168】オブジェクトBにおいて処理が終了すると
次のデータの要求のためのレディー(Ready)がオブジ
ェクトAに対して通知される。この時に、オブザーバー
内では、オブジェクトAから受け取ったポインタP
11(ポインタP2)を探し、探し出したポインタP11に
対応される参照数計測オブジェクトRO2の参照数が0
であるか否かを調べる。参照数が0であればオプジェク
トBでの使用が終わったと判断してポインタP11をオブ
ジェクトA(サブジェクト)に送り返す(メッセージパ
ッシングをする)。オブジェクトAのサブジェクトでは
それに対応されるポインタP1を通常の振る舞い(通常
の処理手順)に基づいて消滅させる。本例では、このポ
インタP1の消滅に応じて対応される参照数計測オブジ
ェクトRO1の参照が1から0になるので、当該参照数
計測オブジェクトRO1は消滅する。
次のデータの要求のためのレディー(Ready)がオブジ
ェクトAに対して通知される。この時に、オブザーバー
内では、オブジェクトAから受け取ったポインタP
11(ポインタP2)を探し、探し出したポインタP11に
対応される参照数計測オブジェクトRO2の参照数が0
であるか否かを調べる。参照数が0であればオプジェク
トBでの使用が終わったと判断してポインタP11をオブ
ジェクトA(サブジェクト)に送り返す(メッセージパ
ッシングをする)。オブジェクトAのサブジェクトでは
それに対応されるポインタP1を通常の振る舞い(通常
の処理手順)に基づいて消滅させる。本例では、このポ
インタP1の消滅に応じて対応される参照数計測オブジ
ェクトRO1の参照が1から0になるので、当該参照数
計測オブジェクトRO1は消滅する。
【0169】以上、図24及び図25を用いて、異なる
メモリ空間に存在される各オブジェクト(使用者)間で
のデータ転送処理等について説明した。次に、上述した
ような処理手順の応用により実現される第三のオブジェ
クトへのデータのいわゆる又貸しについて説明する。第
三のオブジェクトへのデータの又貸しとは、図24に示
したように、異なるメモリ空間に存在するオブジェクト
AとオブジェクトBとが共有メモリの所定領域M1を共
有している状態において、さらに第三のオブジェクトへ
共有(開放)を可能とするような場合である。このいわ
ゆる第三のオブジェクトへのデータの又貸しのための処
理手順は、基本的には、上述した図24(データの転送
処理)及び図25(データの開放処理)の処理手順の組
み合わせで達成することができるが、図26を用いて具
体的に説明する。
メモリ空間に存在される各オブジェクト(使用者)間で
のデータ転送処理等について説明した。次に、上述した
ような処理手順の応用により実現される第三のオブジェ
クトへのデータのいわゆる又貸しについて説明する。第
三のオブジェクトへのデータの又貸しとは、図24に示
したように、異なるメモリ空間に存在するオブジェクト
AとオブジェクトBとが共有メモリの所定領域M1を共
有している状態において、さらに第三のオブジェクトへ
共有(開放)を可能とするような場合である。このいわ
ゆる第三のオブジェクトへのデータの又貸しのための処
理手順は、基本的には、上述した図24(データの転送
処理)及び図25(データの開放処理)の処理手順の組
み合わせで達成することができるが、図26を用いて具
体的に説明する。
【0170】先ず、使用者(オブジェクトA(メモリ空
間A))は、ポインタP1を取得して、ポインタP1を使
って送信したいデータを共有メモリMの対応される領域
M1に書き込む。次に、このデータの送信ために取得し
たポインタP1をオブジェクトAのサブジェクトに渡
す。ポインタP1を受け取ったサブジェクトは当該ポイ
ンタP1の複製を作成し、オブジェクトBに通知する
(メッセージパッシングをする)。このとき、例えば、
共有メモリのID等の属性データと共にオブジェクトB
に通知する。
間A))は、ポインタP1を取得して、ポインタP1を使
って送信したいデータを共有メモリMの対応される領域
M1に書き込む。次に、このデータの送信ために取得し
たポインタP1をオブジェクトAのサブジェクトに渡
す。ポインタP1を受け取ったサブジェクトは当該ポイ
ンタP1の複製を作成し、オブジェクトBに通知する
(メッセージパッシングをする)。このとき、例えば、
共有メモリのID等の属性データと共にオブジェクトB
に通知する。
【0171】受信側のオブジェクトBのオブザーバー
は、サブジェクトからの通知を受信してポインタP11を
保管する。さらに、オブザーバーは、ポインタP11と共
に通知された共有メモリのID等から当該ポインタP11
の元のポインタP1が参照する参照数計測オブジェクト
RO1が指し示す共有メモリM上の領域M1に、メモリ空
間B側から、新たに生成した参照数計測オブジェクトR
O2によりアタッチする。そして、オブザーバーは、使
用者の要求に応じてこのメモリ空間B側の領域を参照す
るポインタP2を作成して、参照数計測オブジェクトR
O3に渡し、当該参照数計測オブジェクトRO2は計測数
を1にする。これにより、領域M1のデータが使用者
(オブジェクトB)により受信されたと等価な結果にな
る。
は、サブジェクトからの通知を受信してポインタP11を
保管する。さらに、オブザーバーは、ポインタP11と共
に通知された共有メモリのID等から当該ポインタP11
の元のポインタP1が参照する参照数計測オブジェクト
RO1が指し示す共有メモリM上の領域M1に、メモリ空
間B側から、新たに生成した参照数計測オブジェクトR
O2によりアタッチする。そして、オブザーバーは、使
用者の要求に応じてこのメモリ空間B側の領域を参照す
るポインタP2を作成して、参照数計測オブジェクトR
O3に渡し、当該参照数計測オブジェクトRO2は計測数
を1にする。これにより、領域M1のデータが使用者
(オブジェクトB)により受信されたと等価な結果にな
る。
【0172】次に、オブジェクトBでは、ポインタP2
がサブジェクトに渡される。ポインタP2を受け取った
サブジェクトは当該ポインタP2の複製を作成し、又貸
し相手の第三のオブジェクトC(メモリ空間C)に通知
する(メッセージパッシングをする)。このとき、例え
ば、共有メモリのID等の属性データと共にオブジェク
トCに通知する。受信側のオブジェクトCのオブザーバ
ーは、サブジェクトからの通知を受信してポインタP21
を保管する。このような処理により、第三のオブジェク
トCに又貸しした際に参照数計測オブジェクトの参照数
が伝播されるので、第三者のオブジェクトCに又貸しさ
れた場合でも、領域M1のデータは保護されるようにな
る。
がサブジェクトに渡される。ポインタP2を受け取った
サブジェクトは当該ポインタP2の複製を作成し、又貸
し相手の第三のオブジェクトC(メモリ空間C)に通知
する(メッセージパッシングをする)。このとき、例え
ば、共有メモリのID等の属性データと共にオブジェク
トCに通知する。受信側のオブジェクトCのオブザーバ
ーは、サブジェクトからの通知を受信してポインタP21
を保管する。このような処理により、第三のオブジェク
トCに又貸しした際に参照数計測オブジェクトの参照数
が伝播されるので、第三者のオブジェクトCに又貸しさ
れた場合でも、領域M1のデータは保護されるようにな
る。
【0173】また、第三のオブジェクトのデータ(領
域)の使用が終わると、自動的に返却(データの開放)
の処理がなされる。データの開放処理は次のようになさ
れる。
域)の使用が終わると、自動的に返却(データの開放)
の処理がなされる。データの開放処理は次のようになさ
れる。
【0174】オブジェクトCにおいて処理が終了すると
次のデータの要求のためのレディー(Ready)がオブジ
ェクトBに対して通知される。この時に、オブザーバー
内でオブジェクトBから受け取ったポインタP21を探
し、その対応する参照数計測オブジェクトRO3の参照
数(計測数)が0であるか否かを調べる。参照数が0で
あればオプジェクトCでの使用が終わったと判断してポ
インタP21をオブジェクトBに送り返す(メッセージパ
ッシングをする)。オブジェクトBのサブジェクトでは
それに対応されるポインタP2を通常の振る舞い(通常
の処理手順)に基づいて消滅させる。
次のデータの要求のためのレディー(Ready)がオブジ
ェクトBに対して通知される。この時に、オブザーバー
内でオブジェクトBから受け取ったポインタP21を探
し、その対応する参照数計測オブジェクトRO3の参照
数(計測数)が0であるか否かを調べる。参照数が0で
あればオプジェクトCでの使用が終わったと判断してポ
インタP21をオブジェクトBに送り返す(メッセージパ
ッシングをする)。オブジェクトBのサブジェクトでは
それに対応されるポインタP2を通常の振る舞い(通常
の処理手順)に基づいて消滅させる。
【0175】さらに、オブジェクトB(オブザーバー)
からレディー(Ready)がオブジェクトAに対して通知
される。この時に、オブザーバー内でオブジェクトAか
ら受け取ったポインタP11を探し、その対応する参照数
計測オブジェクトRO2の参照数(計測数)が0である
か否かを調べる。参照数が0であればポインタP21をオ
ブジェクトAに送り返す(メッセージパッシングをす
る)。オブジェクトAのサブジェクトではそれに対応さ
れるポインタP1を通常の振る舞い(通常の処理手順)
に基づいて消滅させる。
からレディー(Ready)がオブジェクトAに対して通知
される。この時に、オブザーバー内でオブジェクトAか
ら受け取ったポインタP11を探し、その対応する参照数
計測オブジェクトRO2の参照数(計測数)が0である
か否かを調べる。参照数が0であればポインタP21をオ
ブジェクトAに送り返す(メッセージパッシングをす
る)。オブジェクトAのサブジェクトではそれに対応さ
れるポインタP1を通常の振る舞い(通常の処理手順)
に基づいて消滅させる。
【0176】以上のようにして、第三のオブジェクトへ
のデータのいわゆる又貸し等の処理がなされる。上述し
たような処理により、第三のオブジェクトCに又貸しし
た際に参照数計測オブジェクトの参照数が伝播されるの
で、第三のオブジェクトCに又貸しされた場合でも、領
域M1のデータは保護されるようになる。
のデータのいわゆる又貸し等の処理がなされる。上述し
たような処理により、第三のオブジェクトCに又貸しし
た際に参照数計測オブジェクトの参照数が伝播されるの
で、第三のオブジェクトCに又貸しされた場合でも、領
域M1のデータは保護されるようになる。
【0177】また、本発明により、上述したようなポイ
ンタを利用して、一のオブジェクト(サブジェクト)か
ら複数のオブジェクト(オブザーバー)に対してデータ
を送信することができる。図27に示すように、送信側
とされるオブジェクトAから受信側とされる複数のオブ
ジェクトB及びオブジェクトCに対してデータを送信す
る場合を例に挙げて説明する。
ンタを利用して、一のオブジェクト(サブジェクト)か
ら複数のオブジェクト(オブザーバー)に対してデータ
を送信することができる。図27に示すように、送信側
とされるオブジェクトAから受信側とされる複数のオブ
ジェクトB及びオブジェクトCに対してデータを送信す
る場合を例に挙げて説明する。
【0178】通常のデータ送信の場合においては、使用
者が送信代理プログラムであるサブジェクトにデータを
渡すときに、受信側からの送信可能信号(レディー(Re
ady)信号)を受けていないときには、データを送信す
ることができないので、このよう場合には、当該データ
は破棄するか、保持したままで再度送信要求を出す必要
がある。そして、受信側とされるオブジェクトによって
処理の進み具合が違うので、データを保持して受信可能
になるまで待つ場合は、送信要求を各転送先(オブジェ
クト(オブザーバー))毎に行う必要がある。そして、
従来はこのような処理をデータの実体を持っているユー
ザーが行っていた。
者が送信代理プログラムであるサブジェクトにデータを
渡すときに、受信側からの送信可能信号(レディー(Re
ady)信号)を受けていないときには、データを送信す
ることができないので、このよう場合には、当該データ
は破棄するか、保持したままで再度送信要求を出す必要
がある。そして、受信側とされるオブジェクトによって
処理の進み具合が違うので、データを保持して受信可能
になるまで待つ場合は、送信要求を各転送先(オブジェ
クト(オブザーバー))毎に行う必要がある。そして、
従来はこのような処理をデータの実体を持っているユー
ザーが行っていた。
【0179】しかし、本発明の適用により、共有メモリ
ヘデータを書き込んでサブジェクト内で処理(データ管
理)を行うようにしている。具体的な処理手順は、次の
ようになされている。
ヘデータを書き込んでサブジェクト内で処理(データ管
理)を行うようにしている。具体的な処理手順は、次の
ようになされている。
【0180】図27に示すように、使用者はデータを共
有メモリMの所定領域M1,M2,M 3に書き込み、書き
込まれた領域M1,M2,M3を参照するポインタP11,
P22,P21,P22,P23をサブジェクトに渡す。サブジ
ェクトは、そのポインタP11,P22,P21,P22,P23
を受け取ると先ず各ポインタP11,P22,P21,P22,
P23が対応される各オブジェクトB,Cのオブザーバー
へのデータの送信を試みる。このとき受信側(オブザー
バー)の状態が受信可能であれば、サブジェクトは、直
ちにデータの送信を行う。すなわち、受信側のオブジェ
クトにおいてポインタを発生させて、対応される参照数
計測オブジェクトの参照数に1を加える。
有メモリMの所定領域M1,M2,M 3に書き込み、書き
込まれた領域M1,M2,M3を参照するポインタP11,
P22,P21,P22,P23をサブジェクトに渡す。サブジ
ェクトは、そのポインタP11,P22,P21,P22,P23
を受け取ると先ず各ポインタP11,P22,P21,P22,
P23が対応される各オブジェクトB,Cのオブザーバー
へのデータの送信を試みる。このとき受信側(オブザー
バー)の状態が受信可能であれば、サブジェクトは、直
ちにデータの送信を行う。すなわち、受信側のオブジェ
クトにおいてポインタを発生させて、対応される参照数
計測オブジェクトの参照数に1を加える。
【0181】一方、受信側(オブザーバー)の状態が受
信不能であれば、サブジェクトは、接続先(受信先)毎
にキューを入れる。そして、受信可能とされたオブザー
バーからレディー(Ready)を受け取ったサブジェクト
は、そのレディー(Ready)を送ってきたオブザーバー
からのキューを調べて、溜まっている当該オブジェクト
に送信すべきデータがあれば直ちにデータの送信を行
う。
信不能であれば、サブジェクトは、接続先(受信先)毎
にキューを入れる。そして、受信可能とされたオブザー
バーからレディー(Ready)を受け取ったサブジェクト
は、そのレディー(Ready)を送ってきたオブザーバー
からのキューを調べて、溜まっている当該オブジェクト
に送信すべきデータがあれば直ちにデータの送信を行
う。
【0182】以上のような処理手順により、一のオブジ
ェクト(サブジェクト)から複数のオブジェクト(オブ
ザーバー)へのデータ送信処理を行っている。
ェクト(サブジェクト)から複数のオブジェクト(オブ
ザーバー)へのデータ送信処理を行っている。
【0183】また、本発明の適用により、同じデータで
あっても、受信側(オブジェクト)の用途に応じて受け
取る量や受け取るタイミング(例えば、処理周期)を異
ならせることもできる。例えば、画像データについて、
各オブジェクトの受信タイミングが異なる場合を例に挙
げて説明する。
あっても、受信側(オブジェクト)の用途に応じて受け
取る量や受け取るタイミング(例えば、処理周期)を異
ならせることもできる。例えば、画像データについて、
各オブジェクトの受信タイミングが異なる場合を例に挙
げて説明する。
【0184】例えば、画像配信オブジェクトから、動き
検出画像処理を行うオブジェクト(以下、動き検出オブ
ジェクトという。)と、顔画像を認識するためのオブジ
ェクト(以下、顔認識オブジェクトという。)といった
ような画像処理内容の異なる各画像処理オブジェクトに
画像データをそれぞれ配信する場合について説明する。
ここでの、画像データの配信処理については、上述した
ようなポインタを利用して行われるが、説明は省略す
る。
検出画像処理を行うオブジェクト(以下、動き検出オブ
ジェクトという。)と、顔画像を認識するためのオブジ
ェクト(以下、顔認識オブジェクトという。)といった
ような画像処理内容の異なる各画像処理オブジェクトに
画像データをそれぞれ配信する場合について説明する。
ここでの、画像データの配信処理については、上述した
ようなポインタを利用して行われるが、説明は省略す
る。
【0185】例えば、動き検出オブジェクトは画像デー
タを2フレームに一回1枚ずつ受信する必要があるが、
顔認識オブジェクトは30フレームに一回だけ画像デー
タを1枚受信すれば良い場合等がある。しかし、画像配
信オブジェクトは設計時にどのオブジェクト(動き検出
オブジェクト又は顔認識オブジェクト)に接続するかは
想定していない。このようなことが前提とされる場合に
おいて、画像配信オブジェクトでは、画像データを毎フ
レーム処理のためにサブジェクト(毎フレームサブジェ
クト)に渡す。サブジェクトでは、システム起動時等に
接続されたオブザーバーから、データの送信の量や同期
に関するパラメータを受け取る。そして、サブジェクト
は、以降そのようなパラメータにあわせて送信を行う。
具体的には、サブジェクトは動き検出オブジェクトのオ
ブザーバーに対しては2回につき1回データをキュー入
れることにより、2回に1回送信を行う。例えば、送信
しない間のフレームの画像データは特になにもせずに破
棄等する。同様にサブジェクトは、顔認識オブジェクト
のオブザーバーに対しては使用者から渡されるデータの
うち30回に1回だけキューを入れることにより、30
回に1回送信を行う。
タを2フレームに一回1枚ずつ受信する必要があるが、
顔認識オブジェクトは30フレームに一回だけ画像デー
タを1枚受信すれば良い場合等がある。しかし、画像配
信オブジェクトは設計時にどのオブジェクト(動き検出
オブジェクト又は顔認識オブジェクト)に接続するかは
想定していない。このようなことが前提とされる場合に
おいて、画像配信オブジェクトでは、画像データを毎フ
レーム処理のためにサブジェクト(毎フレームサブジェ
クト)に渡す。サブジェクトでは、システム起動時等に
接続されたオブザーバーから、データの送信の量や同期
に関するパラメータを受け取る。そして、サブジェクト
は、以降そのようなパラメータにあわせて送信を行う。
具体的には、サブジェクトは動き検出オブジェクトのオ
ブザーバーに対しては2回につき1回データをキュー入
れることにより、2回に1回送信を行う。例えば、送信
しない間のフレームの画像データは特になにもせずに破
棄等する。同様にサブジェクトは、顔認識オブジェクト
のオブザーバーに対しては使用者から渡されるデータの
うち30回に1回だけキューを入れることにより、30
回に1回送信を行う。
【0186】以上のように、本発明の適用により、同じ
データであっても、受信側(オブジェクト)の用途に応
じて受け取る量や受け取るタイミング(例えば、処理周
期)を異ならせることができるようになる。そして、こ
のような処理は、代理プログラムであるサブジェクトや
オブジェクトにより実現されるので、オブジェクトをそ
のような処理を前提として設計する必要はなく、オブジ
ェクトの独立性を確保することができる。
データであっても、受信側(オブジェクト)の用途に応
じて受け取る量や受け取るタイミング(例えば、処理周
期)を異ならせることができるようになる。そして、こ
のような処理は、代理プログラムであるサブジェクトや
オブジェクトにより実現されるので、オブジェクトをそ
のような処理を前提として設計する必要はなく、オブジ
ェクトの独立性を確保することができる。
【0187】以上、図19乃至図27を用いて、実施の
形態として適応された本発明に関する部分について説明
した。本発明により、円滑なオブジェクト間通信を実現
している。具体的には、以下のような効果を得ることが
できる。
形態として適応された本発明に関する部分について説明
した。本発明により、円滑なオブジェクト間通信を実現
している。具体的には、以下のような効果を得ることが
できる。
【0188】共有メモリ上のデータの共有によりオブジ
ェクト間のデータ送信がなされるので、オブジェクト間
通信を高速で行うことができる。また、共有メモリ上の
データの共有によりオブジェクト間のデータ送信がなさ
れるので、通信にかかる時間がデータ量に左右されず一
定にすることができる。
ェクト間のデータ送信がなされるので、オブジェクト間
通信を高速で行うことができる。また、共有メモリ上の
データの共有によりオブジェクト間のデータ送信がなさ
れるので、通信にかかる時間がデータ量に左右されず一
定にすることができる。
【0189】また、共有メモリ上のデータを指すポイン
タでデータを管理することによって、データの管理が容
易になされるようになり、送信先毎にデータを管理する
ことができる。また、共有メモリ上のデータを指すポイ
ンタでデータを管理することによって、送信先のオブジ
ェクトの要求をその通信周期(処理周期)でデータを配
信することができるようになる。さらに、送信先毎にピ
ーク時に取り損ねたデータを保存してまとめて送ること
ができるようになった。
タでデータを管理することによって、データの管理が容
易になされるようになり、送信先毎にデータを管理する
ことができる。また、共有メモリ上のデータを指すポイ
ンタでデータを管理することによって、送信先のオブジ
ェクトの要求をその通信周期(処理周期)でデータを配
信することができるようになる。さらに、送信先毎にピ
ーク時に取り損ねたデータを保存してまとめて送ること
ができるようになった。
【0190】また、受信側ではCPUの負荷が変動して
もデータの周期が安定であるために信頼性の高い信号処
理が可能となった。
もデータの周期が安定であるために信頼性の高い信号処
理が可能となった。
【0191】また、共有メモリを指し示すポインタに参
照管理機能を付加したために、すなわち、ポインタの管
理を独立した参照数計測オブジェクトにより管理するよ
うにしたため、使用者に意識させることなく共有メモリ
上のデータ保護(データ管理)をすることができる。
照管理機能を付加したために、すなわち、ポインタの管
理を独立した参照数計測オブジェクトにより管理するよ
うにしたため、使用者に意識させることなく共有メモリ
上のデータ保護(データ管理)をすることができる。
【0192】また、通信に関連する実装をサブジェクト
及びオブザーバー内へ押し込めるために、すなわち、通
信に関連する処理をサブジェクト及びオブザーバーのみ
により実行するので、そのようなサブジェクトやオブザ
ーバーを備えるオブジェクトは、ソフトウエア部品とし
ての独立性を向上されたものとなる。例えば、これによ
り、オブジェクト間通信における通信相手を動的に変更
可能とすることができるようになる。
及びオブザーバー内へ押し込めるために、すなわち、通
信に関連する処理をサブジェクト及びオブザーバーのみ
により実行するので、そのようなサブジェクトやオブザ
ーバーを備えるオブジェクトは、ソフトウエア部品とし
ての独立性を向上されたものとなる。例えば、これによ
り、オブジェクト間通信における通信相手を動的に変更
可能とすることができるようになる。
【0193】なお、上述したような処理を実現するOS
(オペレーションシステム)としてソニー株式会社が提
供するアペリオス(Aperios)が考えられる。しかし、
OSは、これに限定されるものではなく、一般的なマル
チプロセスOSでメッセージ通信、共有メモリの機能を
備えたOSであれば実現可能である。
(オペレーションシステム)としてソニー株式会社が提
供するアペリオス(Aperios)が考えられる。しかし、
OSは、これに限定されるものではなく、一般的なマル
チプロセスOSでメッセージ通信、共有メモリの機能を
備えたOSであれば実現可能である。
【0194】また、上述の実施の形態は、本発明の要部
としてのオブジェクト間通信をロボット装置に適用させ
た場合について説明したがこれに限定されないことはい
うまでもない。すなわち、例えば、オブジェクトによっ
て動作が制御されるような装置に、本発明を適用するこ
とができるということである。
としてのオブジェクト間通信をロボット装置に適用させ
た場合について説明したがこれに限定されないことはい
うまでもない。すなわち、例えば、オブジェクトによっ
て動作が制御されるような装置に、本発明を適用するこ
とができるということである。
【0195】(2)ロボット装置の動作 以上の構成において、ロボット装置1においては(図
1)、本体2に移動ユニット3として足を取り付けると
4足型の形態となり、この足に取り付けたモータの駆動
により4足歩行するようになされている。また後足に代
えてタイヤを取り付けるとタイヤ型の形態となり、この
タイヤにより移動可能とされる。
1)、本体2に移動ユニット3として足を取り付けると
4足型の形態となり、この足に取り付けたモータの駆動
により4足歩行するようになされている。また後足に代
えてタイヤを取り付けるとタイヤ型の形態となり、この
タイヤにより移動可能とされる。
【0196】ロボット装置1においては(図2)、ロボ
ットコンポーネント24、25、26等である足等によ
り配置されたセンサーの出力、さらには頭部2Aに配置
された各種情報取得手段により取得された情報等に基づ
いて、中央処理ユニット22の処理により必要な制御指
令が出力されて、これら移動ユニット3等が制御され
る。
ットコンポーネント24、25、26等である足等によ
り配置されたセンサーの出力、さらには頭部2Aに配置
された各種情報取得手段により取得された情報等に基づ
いて、中央処理ユニット22の処理により必要な制御指
令が出力されて、これら移動ユニット3等が制御され
る。
【0197】ロボット装置1においては(図3及び図
4)、オブジェクト指向により構成される上位レイヤー
のソフトウエアにより、デバイスドライバレイヤーの各
種デバイスドライバを駆動してこれらの制御が実行され
る。この制御において、デバイスドライバレイヤーの上
位層であるロボットシステムソフトウエアにおいては、
バーチャルロボットによリシリアルバスに接続された各
部品が検出され、ロボット装置1全体でどの様なロボッ
トコンポーネントがどの様な順番で接続されているのか
を示す結合情報(CPC Connection Information)がデザ
インロボットに通知される。これによりロボット装置1
においては、シルアルバスに接続されたデバイスにより
現在の形態が特定され、さらにこの現在の形態を構成す
る制御対象等が具体的に特定される。
4)、オブジェクト指向により構成される上位レイヤー
のソフトウエアにより、デバイスドライバレイヤーの各
種デバイスドライバを駆動してこれらの制御が実行され
る。この制御において、デバイスドライバレイヤーの上
位層であるロボットシステムソフトウエアにおいては、
バーチャルロボットによリシリアルバスに接続された各
部品が検出され、ロボット装置1全体でどの様なロボッ
トコンポーネントがどの様な順番で接続されているのか
を示す結合情報(CPC Connection Information)がデザ
インロボットに通知される。これによりロボット装置1
においては、シルアルバスに接続されたデバイスにより
現在の形態が特定され、さらにこの現在の形態を構成す
る制御対象等が具体的に特定される。
【0198】ロボット装置1においては、結合情報(CP
C Connection Information)に応じてこのロボットシス
テムソフトウエアの上位層のソフトウエアが更新され、
これにより形態に適した適切なソフトウエアにより全体
の動作が制御される。
C Connection Information)に応じてこのロボットシス
テムソフトウエアの上位層のソフトウエアが更新され、
これにより形態に適した適切なソフトウエアにより全体
の動作が制御される。
【0199】このソフトウエアの更新において、ロボッ
ト装置1は、ロボットソフトウエアのデザインロボット
により、各形態毎に、各部品の構成要素情報(CPC Prim
itive Location Information)群に対してラベルを付加
して記述されてなるデザインファイルと、バーチャルロ
ボットより通知される結合情報(CPC Connection Infor
mation)とを比較して、形態に適した適切なオブジェク
トを選択し、このオブジェクトによる形態依存ソフトウ
エアが変更される(図7、図8)。これによりロボット
装置1においては、形態に適した適切なソフトウエアに
簡易に変更して全体の動作を制御することができる。
ト装置1は、ロボットソフトウエアのデザインロボット
により、各形態毎に、各部品の構成要素情報(CPC Prim
itive Location Information)群に対してラベルを付加
して記述されてなるデザインファイルと、バーチャルロ
ボットより通知される結合情報(CPC Connection Infor
mation)とを比較して、形態に適した適切なオブジェク
トを選択し、このオブジェクトによる形態依存ソフトウ
エアが変更される(図7、図8)。これによりロボット
装置1においては、形態に適した適切なソフトウエアに
簡易に変更して全体の動作を制御することができる。
【0200】また、上位層のソフトウエアがロボット装
置の形態に依存しない形態独立ソフトウエアと、形態に
依存する形態依存ソフトウエアに分離されて、さらに形
態独立ソフトウエアにより形態に依存しない形式により
取り扱われるデータが形態依存ソフトウエアにより形態
に対応した形式により変換されてロボットシステムソフ
トウエアとの間で送受されるように構成された状態で、
この形態依存ソフトウエアのみが更新される。これによ
り簡易な処理によりソフトウエアを更新することが可能
となる。
置の形態に依存しない形態独立ソフトウエアと、形態に
依存する形態依存ソフトウエアに分離されて、さらに形
態独立ソフトウエアにより形態に依存しない形式により
取り扱われるデータが形態依存ソフトウエアにより形態
に対応した形式により変換されてロボットシステムソフ
トウエアとの間で送受されるように構成された状態で、
この形態依存ソフトウエアのみが更新される。これによ
り簡易な処理によりソフトウエアを更新することが可能
となる。
【0201】さらに、このときバーチャルロボットにお
いては、テキストデータ形式の記述により構成要素情報
(CPC Primitive Location Information)を生成するの
に対し(図8及び図9)、デザインファイルにおいて
は、同様のテキストデータ形式により記述されているこ
とにより、変化する形態が将来増大したような場合に
も、簡易に対応することが可能となる。
いては、テキストデータ形式の記述により構成要素情報
(CPC Primitive Location Information)を生成するの
に対し(図8及び図9)、デザインファイルにおいて
は、同様のテキストデータ形式により記述されているこ
とにより、変化する形態が将来増大したような場合に
も、簡易に対応することが可能となる。
【0202】ロボット装置1においては、このソフトウ
エアの更新がオブジェクトマネージャーにより形態依存
ソフトウエアのオブジェクトの再構築により実行され
る。すなわちオブジェクトマネージャーにおいては、起
動時等において、デザインロボットより現在の形態に適
したオブジェクトの結合を指示する結合情報(Connecti
on Data)が通知され、この結合情報(Connection Dat
a)により指定されるオブジェクトがロードされる(図
16)。
エアの更新がオブジェクトマネージャーにより形態依存
ソフトウエアのオブジェクトの再構築により実行され
る。すなわちオブジェクトマネージャーにおいては、起
動時等において、デザインロボットより現在の形態に適
したオブジェクトの結合を指示する結合情報(Connecti
on Data)が通知され、この結合情報(Connection Dat
a)により指定されるオブジェクトがロードされる(図
16)。
【0203】さらに、ロードしたオブジェクトが初期化
された後、結合情報(Connection Data)の指定により
オブジェクトマネージャーでデータ交換可能にサブジェ
クト及びオブザーバーが結合される。これによりロボッ
ト装置1においては、形態に適したオブジェクトにより
形態依存ソフトウエアが構築される。
された後、結合情報(Connection Data)の指定により
オブジェクトマネージャーでデータ交換可能にサブジェ
クト及びオブザーバーが結合される。これによりロボッ
ト装置1においては、形態に適したオブジェクトにより
形態依存ソフトウエアが構築される。
【0204】従ってロボット装置1においては、具体的
な結合対象を何ら考慮することなく各オブジェクトを設
計して、ソフトウエアを構築することができ、また形態
に応じて結合情報(Connection Data)を生成すること
により、形態に適したソフトウエアを簡易に構築するこ
とができる。さらに、再コンパイル、再リンキングする
ことなくソフトウエアを変更することができる。これに
よりロボット装置1においては、オブジェクトの独立性
を従来に比して格段的に向上することができ、その分自
由な形態の変更に対して適切なソフトウエアを簡易かつ
迅速に提供することが可能となる。またこの結合情報の
設定により1つのオブジェクトと複数のオブジェクトと
の間でオブジェクト間通信を構築することもできる。
な結合対象を何ら考慮することなく各オブジェクトを設
計して、ソフトウエアを構築することができ、また形態
に応じて結合情報(Connection Data)を生成すること
により、形態に適したソフトウエアを簡易に構築するこ
とができる。さらに、再コンパイル、再リンキングする
ことなくソフトウエアを変更することができる。これに
よりロボット装置1においては、オブジェクトの独立性
を従来に比して格段的に向上することができ、その分自
由な形態の変更に対して適切なソフトウエアを簡易かつ
迅速に提供することが可能となる。またこの結合情報の
設定により1つのオブジェクトと複数のオブジェクトと
の間でオブジェクト間通信を構築することもできる。
【0205】この結合情報(Connection Data)がサブ
ジェクトと通信するデータの形式とを特定する情報であ
ることにより、オブジェクトマネージャーにおいては、
結合情報(Connection Data)により対応するオブジェ
クトID、セレクタ番号を特定して簡易にオブジェクト
通信を構築することができる。
ジェクトと通信するデータの形式とを特定する情報であ
ることにより、オブジェクトマネージャーにおいては、
結合情報(Connection Data)により対応するオブジェ
クトID、セレクタ番号を特定して簡易にオブジェクト
通信を構築することができる。
【0206】また、デザインロボットにより、複数の結
合情報が記録されてなるデザインファイルから結合情報
(Connection Data)を選択してオブジェクトマネージ
ャーに提供することにより、このデザインの設定により
必要に応じて各種形態に対応するソフトウエアを簡易に
構築することが可能となる。
合情報が記録されてなるデザインファイルから結合情報
(Connection Data)を選択してオブジェクトマネージ
ャーに提供することにより、このデザインの設定により
必要に応じて各種形態に対応するソフトウエアを簡易に
構築することが可能となる。
【0207】また、この結合情報(Connection Data)
においても、テキストデータ形式により記述されている
ことにより、簡易に種々に変更することができる。
においても、テキストデータ形式により記述されている
ことにより、簡易に種々に変更することができる。
【0208】これに対して形態が変更されると、ロボッ
ト装置1においては、バーチャルロボットにより形態の
変更が検出され、この変更された形態に係る結合情報
(CPCConnection Information)がデザインロボットに
通知される。さらに、このデザインロボットにおいてデ
ザインファイルとの比較により、変更された形態に係る
結合情報(Connection Data)が生成される。また、こ
の結合情報(ConnectionData)に従ってオブジェクトマ
ネージャーによって形態の変更により不要となったオブ
ジェクトがアンロードされると共に、形態の変更により
必要なオブジェクトがロードされ、形態依存ソフトウエ
アを構成するオブジェクトが再構築される。 さらに、
これらのオブジェクトが結合情報(Connection Data)
によりオブジェクト間通信可能に結合され、これにより
形態依存ソフトウエアが更新される。
ト装置1においては、バーチャルロボットにより形態の
変更が検出され、この変更された形態に係る結合情報
(CPCConnection Information)がデザインロボットに
通知される。さらに、このデザインロボットにおいてデ
ザインファイルとの比較により、変更された形態に係る
結合情報(Connection Data)が生成される。また、こ
の結合情報(ConnectionData)に従ってオブジェクトマ
ネージャーによって形態の変更により不要となったオブ
ジェクトがアンロードされると共に、形態の変更により
必要なオブジェクトがロードされ、形態依存ソフトウエ
アを構成するオブジェクトが再構築される。 さらに、
これらのオブジェクトが結合情報(Connection Data)
によりオブジェクト間通信可能に結合され、これにより
形態依存ソフトウエアが更新される。
【0209】これによりロボット装置1においては、形
態独立ソフトウエア等を動作させたままの状態で、必要
に応じて形態依存ソフトウエアを更新して形態に適した
ソフトウエアを構築することができる。また、このソフ
トウエアの変更を電力消費モードの切り換えに適用する
ことも可能となる。また、本発明により、例えばオブジ
ェクト間通信を円滑に行うことができるようになり、高
速の処理が可能となる。
態独立ソフトウエア等を動作させたままの状態で、必要
に応じて形態依存ソフトウエアを更新して形態に適した
ソフトウエアを構築することができる。また、このソフ
トウエアの変更を電力消費モードの切り換えに適用する
ことも可能となる。また、本発明により、例えばオブジ
ェクト間通信を円滑に行うことができるようになり、高
速の処理が可能となる。
【0210】なお、本発明の実施の形態とされるロボッ
ト装置は、上述の図1に示したような外観となされるこ
とに限定されるものではない。例えば、図28に示すよ
うに、ロボット装置1は、より動物に近いような外観形
状を有して構成することもできる。
ト装置は、上述の図1に示したような外観となされるこ
とに限定されるものではない。例えば、図28に示すよ
うに、ロボット装置1は、より動物に近いような外観形
状を有して構成することもできる。
【0211】
【発明の効果】本発明に係る情報処理装置は、複数の情
報処理プロセスを有して、当該情報処理プロセス間で行
うプロセス間通信に基づいて制御処理するものであっ
て、当該複数の情報処理プロセスにより共有される共有
メモリへの当該複数の情報処理プロセスによるアクセス
を制御してプロセス間通信を制御手段により行うことに
より、それぞれが独立して処理を実行する情報処理プロ
セスは、共有メモリ上のデータを共有して各種処理を実
行することができる。
報処理プロセスを有して、当該情報処理プロセス間で行
うプロセス間通信に基づいて制御処理するものであっ
て、当該複数の情報処理プロセスにより共有される共有
メモリへの当該複数の情報処理プロセスによるアクセス
を制御してプロセス間通信を制御手段により行うことに
より、それぞれが独立して処理を実行する情報処理プロ
セスは、共有メモリ上のデータを共有して各種処理を実
行することができる。
【0212】また、本発明に係る情報処理方法は、複数
の情報処理プロセスを有して、当該情報処理プロセス間
で行うプロセス間通信に基づいて制御処理するものであ
って、当該複数の情報処理プロセスにより共有される共
有メモリへの当該複数の情報処理プロセスによるアクセ
スを制御してプロセス間通信を行うことにより、それぞ
れが独立して処理を実行する情報処理プロセスは、共有
メモリ上のデータを共有して各種処理を実行することが
できる。
の情報処理プロセスを有して、当該情報処理プロセス間
で行うプロセス間通信に基づいて制御処理するものであ
って、当該複数の情報処理プロセスにより共有される共
有メモリへの当該複数の情報処理プロセスによるアクセ
スを制御してプロセス間通信を行うことにより、それぞ
れが独立して処理を実行する情報処理プロセスは、共有
メモリ上のデータを共有して各種処理を実行することが
できる。
【0213】また、本発明に係るロボット装置は、複数
の情報処理プロセスを有して、当該情報処理プロセス間
で行うプロセス間通信に基づいて、動作を表出させる出
力手段の制御処理をするものであって、当該複数の情報
処理プロセスにより共有される共有メモリへの当該複数
の情報処理プロセスによるアクセスを制御してプロセス
間通信を制御手段により行うことにより、それぞれが独
立して処理を実行する情報処理プロセスが共有メモリ上
のデータを共有して出力手段の制御処理を実行すること
ができる。
の情報処理プロセスを有して、当該情報処理プロセス間
で行うプロセス間通信に基づいて、動作を表出させる出
力手段の制御処理をするものであって、当該複数の情報
処理プロセスにより共有される共有メモリへの当該複数
の情報処理プロセスによるアクセスを制御してプロセス
間通信を制御手段により行うことにより、それぞれが独
立して処理を実行する情報処理プロセスが共有メモリ上
のデータを共有して出力手段の制御処理を実行すること
ができる。
【図1】本発明の実施の形態に係るロボット装置の構成
を示す斜視図である。
を示す斜視図である。
【図2】ロボット装置の構成を示すブロック図である。
【図3】4足型におけるソフトウエア構造を示す略線図
である。
である。
【図4】タイヤ型におけるソフトウエア構造を示す略線
図である。
図である。
【図5】4足型における姿勢の変化を示す状態遷移図で
ある。
ある。
【図6】入力と状態の関係を示す図表である。
【図7】デザインロボットの処理手順を示すフローチャ
ートである。
ートである。
【図8】デザインファイルの記述を示す図表である。
【図9】結合情報を示す図表である。
【図10】ブート後におけるオブジェクトマネージャ
ー、バーチャルロボット、デザインロボットの動作を示
すタイムチャートである。
ー、バーチャルロボット、デザインロボットの動作を示
すタイムチャートである。
【図11】プラグイン、プラグアウト等におけるオブジ
ェクトマネージャー、バーチャルロボット、デザインロ
ボットの動作を示すタイムチャートである。
ェクトマネージャー、バーチャルロボット、デザインロ
ボットの動作を示すタイムチャートである。
【図12】オブザーバーとサブジェクトとの関係を示す
略線図である。
略線図である。
【図13】マルチオブザーバーにおけるオブザーバーと
サブジェクトとの関係を示す略線図である。
サブジェクトとの関係を示す略線図である。
【図14】マルチサブジェクトにおけるオブザーバーと
サブジェクトとの関係を示す略線図である。
サブジェクトとの関係を示す略線図である。
【図15】オブジェクトマネージャーとオブザーバー、
サブジェクトの関係を示す略線図である。
サブジェクトの関係を示す略線図である。
【図16】結合情報を受け取った場合におけるオブジェ
クトマネージャーの動作を示すタイムチャートである。
クトマネージャーの動作を示すタイムチャートである。
【図17】ドウスタート以降のシーケンスを示すタイム
チャートである。
チャートである。
【図18】プラグイン、プラグアウト、状態変更におけ
るシーケンスを示すタイムチャートである。
るシーケンスを示すタイムチャートである。
【図19】ポインタを使用した参照数計測オブジェクト
による参照数による共有メモリの管理を説明するために
使用した図である。
による参照数による共有メモリの管理を説明するために
使用した図である。
【図20】ポインタの生成を説明するために使用した図
である。
である。
【図21】ポインタの消滅を説明するために使用した図
である。
である。
【図22】データのコピーの際のポインタの振る舞いを
説明するために使用した図である。
説明するために使用した図である。
【図23】データの書き換えの際のポインタの振る舞い
を説明するために使用した図である。
を説明するために使用した図である。
【図24】メモリ空間の異なるオブジェクト間でのオブ
ジェクト間通信の開始の際の処理を説明するために使用
した図である。
ジェクト間通信の開始の際の処理を説明するために使用
した図である。
【図25】メモリ空間の異なるオブジェクト間でのオブ
ジェクト間通信の終了の際の処理を説明するために使用
した図である。
ジェクト間通信の終了の際の処理を説明するために使用
した図である。
【図26】第三のオブジェクトへのデータの又貸しの際
の処理を説明するために使用した図である。
の処理を説明するために使用した図である。
【図27】送信側のオブジェクトが複数ある場合のデー
タの送信処理を説明するために使用した図である。
タの送信処理を説明するために使用した図である。
【図28】ロボット装置のより具体的な例を示す図であ
る。
る。
1 ロボット装置、22 中央処理ユニット
───────────────────────────────────────────────────── フロントページの続き Fターム(参考) 3F059 AA00 BA00 BB06 BB07 DC00 FC00 FC14 GA00 3F060 AA00 CA14 5B098 GA04 GB13 GD03
Claims (25)
- 【請求項1】 複数の情報処理プロセスを有して、当該
情報処理プロセス間で行うプロセス間通信に基づいて制
御処理するものであって、当該複数の情報処理プロセス
により共有される共有メモリへの当該複数の情報処理プ
ロセスによるアクセスを制御して上記プロセス間通信を
行う制御手段を備えることを特徴とする情報処理装置。 - 【請求項2】 上記情報処理プロセスがオブジェクト指
向により作成されたプログラムからなることを特徴とす
る請求項1記載の情報処理装置。 - 【請求項3】 上記制御手段は、上記プロセス間通信の
際に、上記共有メモリの同一領域内のデータへの上記複
数の情報処理プロセスのアクセスが制御されることによ
り、当該複数の情報処理プロセスにて上記データが共有
されることを特徴とする請求項1記載の情報処理装置。 - 【請求項4】 上記制御手段は、上記プロセス通信の際
に、データが記録される上記共有メモリの同一領域をプ
ロセス通信間にて使用する送信用バッファとして自動的
に割り当てることを特徴とする請求項3記載の情報処理
装置。 - 【請求項5】 上記制御手段は、上記共有メモリへの複
数の情報処理プロセスによるアクセスを通信管理プロセ
スにより制御することを特徴とする請求項1記載の情報
処理装置。 - 【請求項6】 上記制御手段は、異なるメモリ空間にて
構成される情報処理プロセス間で上記共有メモリにアク
セスするためのメッセージを送信して、当該メッセージ
に基づいて当該複数の情報処理プロセスによる上記共有
メモリへのアクセスを制御することを特徴とする請求項
1記載の情報処理装置。 - 【請求項7】 上記制御手段は、上記共有メモリへの情
報処理プロセスのアクセス数に基づいて、当該共有メモ
リへの複数の情報処理プロセスによるアクセスを制御す
ることを特徴とする請求項1記載の情報処理装置。 - 【請求項8】 上記制御手段は、上記共有メモリへの情
報処理プロセスのアクセスに応じてポインタを発生させ
て、上記アクセス数とされるポインタ数に基づいて、当
該共有メモリへの複数の情報処理プロセスによるアクセ
スを制御することを特徴とする請求項7記載の情報処理
装置。 - 【請求項9】 上記制御手段は、上記アクセス数を計測
するアクセス数計測プロセスを有して、上記プロセス間
通信における通信相手を動的に変更可能としており、 上記制御手段は、上記アクセス数計測プロセスの計測数
に基づいて、上記共有メモリへの複数の情報処理プロセ
スによるアクセスを制御することを特徴とする請求項8
記載の情報処理装置。 - 【請求項10】 上記複数の情報処理プロセスがそれぞ
れ異なるメモリ空間にて構成されており、 上記複数の情報処理プロセスによる上記共有メモリへの
アクセスが異なるメモリ空間をまたいでなされることを
特徴とする請求項1記載の情報処理装置。 - 【請求項11】 上記制御手段は、受信側の情報処理プ
ロセスの処理周期に基づいて上記共有メモリへのアクセ
スを制御することを特徴とする請求項1記載の情報処理
装置。 - 【請求項12】 上記制御手段は、受信側の情報処理プ
ロセスの負荷に基づいて上記共有メモリへのアクセスに
ついてのキューを発生させて、上記キューに応じて上記
共有メモリへのアクセスを制御することを特徴とする請
求項1記載の情報処理装置。 - 【請求項13】 複数の情報処理プロセスを有して、当
該情報処理プロセス間で行うプロセス間通信に基づいて
制御処理するものであって、当該複数の情報処理プロセ
スにより共有される共有メモリへの当該複数の情報処理
プロセスによるアクセスを制御して上記プロセス間通信
を行うことを特徴とする情報処理方法。 - 【請求項14】 動作を表出させる出力手段と、 複数の情報処理プロセスを有して、当該情報処理プロセ
ス間で行うプロセス間通信に基づいて上記出力手段の制
御処理をするものであって、当該複数の情報処理プロセ
スにより共有される共有メモリへの当該複数の情報処理
プロセスによるアクセスを制御して上記プロセス間通信
を行う制御手段とを備えたことを特徴とするロボット装
置。 - 【請求項15】 上記情報処理プロセスがオブジェクト
指向により作成されたプログラムからなることを特徴と
する請求項14記載のロボット装置。 - 【請求項16】 上記制御手段は、上記プロセス間通信
の際に、上記共有メモリの同一領域内のデータへの上記
複数の情報処理プロセスのアクセスが制御されることに
より、当該複数の情報処理プロセスにて上記データが共
有されることを特徴とする請求項14記載のロボット装
置。 - 【請求項17】 上記制御手段は、上記プロセス通信の
際に、データが記録される上記共有メモリの同一領域を
プロセス通信間にて使用する送信用バッファとして自動
的に割り当てることを特徴とする請求項16記載のロボ
ット装置。 - 【請求項18】 上記制御手段は、上記共有メモリへの
複数の情報処理プロセスによるアクセスを通信管理プロ
セスにより制御することを特徴とする請求項14記載の
ロボット装置。 - 【請求項19】 上記制御手段は、異なるメモリ空間に
て構成される情報処理プロセス間で上記共有メモリにア
クセスするためのメッセージを送信して、当該メッセー
ジに基づいて当該複数の情報処理プロセスによる上記共
有メモリへのアクセスを制御することを特徴とする請求
項14記載のロボット装置。 - 【請求項20】 上記制御手段は、上記共有メモリへの
情報処理プロセスのアクセス数に基づいて、当該共有メ
モリへの複数の情報処理プロセスによるアクセスを制御
することを特徴とする請求項14記載のロボット装置。 - 【請求項21】 上記制御手段は、上記共有メモリへの
情報処理プロセスのアクセスに応じてポインタを発生さ
せて、上記アクセス数とされるポインタ数に基づいて、
当該共有メモリへの複数の情報処理プロセスによるアク
セスを制御することを特徴とする請求項20記載のロボ
ット装置。 - 【請求項22】 上記制御手段は、上記アクセス数を計
測するアクセス数計測プロセスを有して、上記プロセス
間通信における通信相手を動的に変更可能としており、 上記制御手段は、上記アクセス数計測プロセスの計測数
に基づいて、上記共有メモリへの複数の情報処理プロセ
スによるアクセスを制御することを特徴とする請求項2
1記載のロボット装置。 - 【請求項23】 上記複数の情報処理プロセスがそれぞ
れ異なるメモリ空間にて構成されており、 上記複数の情報処理プロセスによる上記共有メモリへの
アクセスが異なるメモリ空間をまたいでなされることを
特徴とする請求項14記載のロボット装置。 - 【請求項24】 上記制御手段は、受信側の情報処理プ
ロセスの処理周期に基づいて上記共有メモリへのアクセ
スを制御することを特徴とする請求項14記載のロボッ
ト装置。 - 【請求項25】 上記制御手段は、受信側の情報処理プ
ロセスの負荷に基づいて上記共有メモリへのアクセスに
ついてのキューを発生させて、上記キューに応じて上記
共有メモリへのアクセスを制御することを特徴とする請
求項14記載のロボット装置。
Priority Applications (5)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000247021A JP2002063038A (ja) | 2000-08-16 | 2000-08-16 | 情報処理装置及び情報処理方法並びにロボット装置 |
| EP01956926A EP1310870A4 (en) | 2000-08-16 | 2001-08-16 | INFORMATION PROCESSING DEVICE, INFORMATION PROCESSING AND ROBOT DEVICE |
| US10/110,497 US7228201B2 (en) | 2000-08-16 | 2001-08-16 | Information processing device, information processing method, and robot apparatus |
| CNB018026958A CN1270238C (zh) | 2000-08-16 | 2001-08-16 | 信息处理设备、信息处理方法、和机器人设备 |
| PCT/JP2001/007067 WO2002015009A1 (en) | 2000-08-16 | 2001-08-16 | Information processing device, information processing method, and robot apparatus |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2000247021A JP2002063038A (ja) | 2000-08-16 | 2000-08-16 | 情報処理装置及び情報処理方法並びにロボット装置 |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| JP2002063038A true JP2002063038A (ja) | 2002-02-28 |
Family
ID=18737199
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2000247021A Withdrawn JP2002063038A (ja) | 2000-08-16 | 2000-08-16 | 情報処理装置及び情報処理方法並びにロボット装置 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US7228201B2 (ja) |
| EP (1) | EP1310870A4 (ja) |
| JP (1) | JP2002063038A (ja) |
| CN (1) | CN1270238C (ja) |
| WO (1) | WO2002015009A1 (ja) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101269024B1 (ko) | 2009-12-18 | 2013-05-29 | 한국전자통신연구원 | 로봇 소프트웨어 컴포넌트 작업 실행 조정 장치 및 방법 |
Families Citing this family (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2002342759A (ja) * | 2001-01-30 | 2002-11-29 | Nec Corp | 情報提供システム、情報提供方法、およびそのプログラム |
| JP4458929B2 (ja) * | 2003-07-16 | 2010-04-28 | キヤノン株式会社 | プログラム間通信装置、プログラム間通信方法、コンピュータ読み取り可能な記録媒体およびプログラム |
| US7403949B2 (en) * | 2005-08-17 | 2008-07-22 | International Business Machines Corporation | Elimination of redundant objects in storage systems |
| US8301421B2 (en) * | 2006-03-31 | 2012-10-30 | Energid Technologies | Automatic control system generation for robot design validation |
| US8392921B2 (en) * | 2009-12-18 | 2013-03-05 | Electronics And Telecommunications Research Institute | Apparatus and method of coordinating operation action of robot software component |
| JP6510761B2 (ja) * | 2014-04-08 | 2019-05-08 | 川崎重工業株式会社 | データ採取システムおよび方法 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5652885A (en) * | 1993-05-25 | 1997-07-29 | Storage Technology Corporation | Interprocess communications system and method utilizing shared memory for message transfer and datagram sockets for message control |
| JPH11120009A (ja) * | 1997-10-14 | 1999-04-30 | Toshiba Tec Corp | プロセス間通信制御装置 |
| JP2000148577A (ja) * | 1998-11-09 | 2000-05-30 | Fujitsu Ltd | アクセス制御方法及びアクセス制御装置 |
| US6640249B1 (en) * | 1999-08-31 | 2003-10-28 | Accenture Llp | Presentation services patterns in a netcentric environment |
| US6615253B1 (en) * | 1999-08-31 | 2003-09-02 | Accenture Llp | Efficient server side data retrieval for execution of client side applications |
| US6606660B1 (en) * | 1999-08-31 | 2003-08-12 | Accenture Llp | Stream-based communication in a communication services patterns environment |
| US6477580B1 (en) * | 1999-08-31 | 2002-11-05 | Accenture Llp | Self-described stream in a communication services patterns environment |
| US6636242B2 (en) * | 1999-08-31 | 2003-10-21 | Accenture Llp | View configurer in a presentation services patterns environment |
| US6289382B1 (en) * | 1999-08-31 | 2001-09-11 | Andersen Consulting, Llp | System, method and article of manufacture for a globally addressable interface in a communication services patterns environment |
| US6976216B1 (en) * | 2000-11-17 | 2005-12-13 | Streamzap, Inc. | Computer system with remote key press events directed to a first application program and local key press events directed to a second application program |
-
2000
- 2000-08-16 JP JP2000247021A patent/JP2002063038A/ja not_active Withdrawn
-
2001
- 2001-08-16 US US10/110,497 patent/US7228201B2/en not_active Expired - Fee Related
- 2001-08-16 CN CNB018026958A patent/CN1270238C/zh not_active Expired - Fee Related
- 2001-08-16 WO PCT/JP2001/007067 patent/WO2002015009A1/ja not_active Ceased
- 2001-08-16 EP EP01956926A patent/EP1310870A4/en not_active Withdrawn
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101269024B1 (ko) | 2009-12-18 | 2013-05-29 | 한국전자통신연구원 | 로봇 소프트웨어 컴포넌트 작업 실행 조정 장치 및 방법 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP1310870A4 (en) | 2008-07-02 |
| CN1388927A (zh) | 2003-01-01 |
| US7228201B2 (en) | 2007-06-05 |
| EP1310870A1 (en) | 2003-05-14 |
| US20030040839A1 (en) | 2003-02-27 |
| WO2002015009A1 (en) | 2002-02-21 |
| CN1270238C (zh) | 2006-08-16 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JP3424631B2 (ja) | ロボット装置及びソフトウエアの更新方法 | |
| US7388879B2 (en) | Communication device and communication method network system and robot apparatus | |
| JP3343949B2 (ja) | 分散情報処理システム | |
| JP3659062B2 (ja) | 計算機システム | |
| US6789122B1 (en) | Mechanism for reliable update of virtual disk device mappings without corrupting data | |
| JP3156083B2 (ja) | フォルトトレラント・コンピュータ装置 | |
| US7089561B2 (en) | Methods and systems for creating and communicating with computer processes | |
| JP3853387B2 (ja) | データ独立型コンピュータシステムにおけるデータアクセス権管理方式 | |
| US6446219B2 (en) | Highly available cluster message passing facility | |
| JPH02228744A (ja) | データ処理システム | |
| KR20010041176A (ko) | 이벤트에 기초한 분산 시스템에서의 행위를 운반하기 위한방법 및 장치 | |
| JP2004234114A (ja) | 計算機システム、計算機装置、オペレーティングシステムの移送方法及びプログラム | |
| JPH06301657A (ja) | 並行管理方法 | |
| JP2002063038A (ja) | 情報処理装置及び情報処理方法並びにロボット装置 | |
| KR20020036502A (ko) | 이중화 구조를 가지는 데이터베이스 관리시스템 및 그의이중화 처리방법 | |
| JP3611610B2 (ja) | データ独立型コンピュータシステムにおける機器接続定義の自動生成方式 | |
| JP2003233502A (ja) | 演算処理装置及びオブジェクト間通信の管理方法 | |
| KR100853426B1 (ko) | 인간형 로봇의 장치관리자 및 관리 방법 | |
| JP2002505050A (ja) | 非同期メッセージ処理システム及び方法 | |
| US7140027B2 (en) | Method and system to reinitialize objects without losing a reference connection | |
| CN120075048A (zh) | 节点操作系统升级方法及装置 | |
| EP1507207B1 (en) | Hierarchical approach to identifying changing device characteristics | |
| Saulsbury et al. | A DVSM server for Meshix | |
| JP2006286025A (ja) | データアクセスシステム | |
| Ward | 0 terminal support |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20071106 |