JP2002187082A - ロボット制御システム及びロボット制御方法 - Google Patents

ロボット制御システム及びロボット制御方法

Info

Publication number
JP2002187082A
JP2002187082A JP2001313865A JP2001313865A JP2002187082A JP 2002187082 A JP2002187082 A JP 2002187082A JP 2001313865 A JP2001313865 A JP 2001313865A JP 2001313865 A JP2001313865 A JP 2001313865A JP 2002187082 A JP2002187082 A JP 2002187082A
Authority
JP
Japan
Prior art keywords
robot
control
information
control unit
control module
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.)
Pending
Application number
JP2001313865A
Other languages
English (en)
Inventor
Takayuki Sakamoto
隆之 坂本
Makoto Inoue
真 井上
Naoyasu Hosonuma
直泰 細沼
Takeshi Takagi
剛 高木
Masahiro Fujita
雅博 藤田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Sony Corp
Original Assignee
Sony Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Sony Corp filed Critical Sony Corp
Priority to JP2001313865A priority Critical patent/JP2002187082A/ja
Publication of JP2002187082A publication Critical patent/JP2002187082A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Manipulator (AREA)

Abstract

(57)【要約】 【課題】 ハードウェア依存のミドルウェア層と、ハー
ドウェア非依存のアプリケーション層との組み合わせを
動的に変更して多関節型ロボットを制御する。 【解決手段】 ロボットのハードウェア構成に依存する
ミドルウェア層と、ハードウェア構成に依存しないアプ
リケーション層の間に、意味的に動作を行うためのイン
ターフェースとデータベースを用意することによって、
ロボット上に導入するミドルウェアとアプリケーション
の組み合わせを変更しても、常に正常な動作を保証する
ことができる。また、アプリケーションは、ミドルウェ
アを介して適当な入力データを取得したり、適切なコマ
ンドを発行することができる。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は、脚式歩行型など多
関節型のロボットをソフトウェア・プログラムを用いて
制御するロボット制御システム及びロボット制御方法に
係り、特に、脚部や頭部など各動作ユニットの着脱・交
換などに伴ってハードウェア構成が大幅に変更する可能
性がある多関節型ロボットをソフトウェア・プログラム
を用いて制御するロボット制御システム及びロボット制
御方法に関する。
【0002】更に詳しくは、本発明は、ハードウェア構
成に対して依存性の高いソフトウェア層とハードウェア
構成に非依存のソフトウェア層の組み合わせからなるソ
フトウェア・プログラムを用いて多関節型ロボットを制
御するロボット制御システム及びロボット制御方法、並
びに各ソフトウェア層間のプログラム・インターフェー
スに係り、特に、ミドルウェアのようなハードウェア依
存のソフトウェア層と、アプリケーションなどのハード
ウェア非依存のソフトウェア層との組み合わせを動的に
変更して多関節型ロボットを制御するロボット制御シス
テム及びロボット制御方法、並びに各ソフトウェア層間
のプログラム・インターフェースに関する。
【0003】
【従来の技術】電気的若しくは磁気的な作用を用いて人
間の動作に似せた運動を行う機械装置のことを「ロボッ
ト」という。ロボットの語源は、スラブ語のROBOT
A(奴隷機械)に由来すると言われている。わが国では、
ロボットが普及し始めたのは1960年代末からである
が、その多くは、工場における生産作業の自動化・無人
化などを目的としたマニピュレータや搬送ロボットなど
の産業用ロボット(industrial robot)であった。
【0004】最近では、イヌやネコのように4足歩行の
動物の身体メカニズムやその動作を模したペット型ロボ
ット、あるいは、ヒトやサルなどの2足直立歩行を行う
動物の身体メカニズムや動作を模した「人間形」若しく
は「人間型」のロボット(humanoid robot)など、脚式
移動ロボットの構造やその安定歩行制御に関する研究開
発が進展し、実用化への期待も高まってきている。これ
ら脚式移動ロボットは、クローラ式ロボットに比し不安
定で姿勢制御や歩行制御が難しくなるが、階段の昇降や
障害物の乗り越え等、柔軟な歩行・走行動作を実現でき
るという点で優れている。
【0005】アーム式ロボットのように、ある特定の場
所に植設して用いるような据置きタイプのロボットは、
部品の組立・選別作業など固定的・局所的な作業空間で
のみ活動する。これに対し、移動式のロボットは、作業
空間は非限定的であり、所定の経路上または無経路上を
自在に移動して、所定の若しくは任意の人的作業を代行
したり、ヒトやイヌあるいはその他の生命体に置き換わ
る種々のサービスを提供することができる。
【0006】脚式移動ロボットの用途の1つとして、産
業活動・生産活動等における各種の難作業の代行が挙げ
られる。例えば、原子力発電プラントや火力発電プラン
ト、石油化学プラントにおけるメンテナンス作業、製造
工場における部品の搬送・組立作業、高層ビルにおける
清掃、火災現場その他における救助といったような危険
作業・難作業の代行などである。
【0007】また、脚式移動ロボットの他の用途とし
て、上述の作業支援というよりも、生活密着型、すなわ
ち人間との「共生」あるいは「エンターティンメント」
という用途が挙げられる。この種のロボットは、ヒトあ
るいはイヌ(ペット)などの比較的知性の高い脚式歩行
動物の動作メカニズムや四肢を利用した豊かな感情表現
をエミュレートする。また、あらかじめ入力された動作
パターンを単に忠実に実行するだけではなく、ユーザ
(あるいは他のロボット)から受ける言葉や態度(「褒
める」とか「叱る」、「叩く」など)に対して動的に対
応した、生き生きとした応答表現を実現することも要求
される。
【0008】従来の玩具機械は、ユーザ操作と応答動作
との関係が固定的であり、玩具の動作をユーザの好みに
合わせて変更することはできない。この結果、ユーザは
同じ動作しか繰り返さない玩具をやがては飽きてしまう
ことになる。
【0009】これに対し、知能型のロボットは、動作に
起因する行動モデルや学習モデルを備えており、外部か
らの音声や画像、触覚などの入力情報に基づいてモデル
を変化させて動作を決定することにより、自律的な思考
及び動作制御を実現する。ロボットが感情モデルや本能
モデルを用意することにより、ロボット自身の感情や本
能に従った自律的な行動を表出することができる。ま
た、ロボットが画像入力装置や音声入出力装置を装備
し、画像認識処理や音声認識処理を行うことにより、よ
り高度な知的レベルで人間とのリアリスティックなコミ
ュニケーションを実現することも可能となる。
【0010】昨今の脚式移動ロボットは高い情報処理能
力を備えており、インテリジェントなロボットそのもの
を一種の計算機システムとして捉えることができる。
【0011】例えば、ロボットは、感情モデルや行動モ
デル、学習モデルなどのように、動作に関する各種の規
則をモデル化して保持しており、これら各モデルに従っ
てユーザ・アクションなどの外的要因に応答した行動計
画を立案して、各関節アクチュエータの駆動や音声出力
などを介して行動計画を体現し、ユーザ・フィードバッ
クすることができる。このような行動計画の立案やこれ
を機体上で体現するためのロボットの動作制御は、計算
機システム上におけるプログラム・コード(例えぱアプ
リケーションなど)の実行という形態で実装される。
【0012】一般的な計算機システムとロボットとの主
な相違として、前者はシステムを構成するハードウェア
・コンポーネントの種類や組み合わせ(すなわちハード
ウェア構成)が各システム間で差が少ないのに対して、
後者はハードウェア構成がシステム間で大幅に変更する
という点を挙げることができよう。例えば、ひとえに移
動ロボットといっても、胴体に対して取り付けられる可
動部として、頭と脚部と尻尾で構成されるロボットや、
胴体と車輪のみで構成されるロボットなど、千差万別で
ある。
【0013】装備されるハードウェア構成がシステム間
で比較的均一である計算機システムにおいては、システ
ム上で実行するソフトウェアのデザインはハードウェア
の影響を比較的受けずに済む。これに対して、後者のロ
ボットの場合には、特にハードウェア操作を行うミドル
ウェアのような制御ソフトウェア層においてはハードウ
ェア依存性が極めて高くなる。
【0014】例えば、ロボットの移動制御を考えた場
合、移動手段が可動脚の場合と車輪の場合と、2足と4
足の場合とでは、移動時・歩行時における安定度判別規
範がまったく相違するので、アプリケーションを実行す
るための動作環境はシステム間で大幅に異なる。
【0015】ロボットのソフトウェア開発を考えた場
合、このような事情を鑑み、ハードウェアの依存性が比
較的低いソフトウェア層と、ハードウェアの依存性が高
いソフトウェア層とに区別することが効率的と思料され
る。すなわち、ハードウェア非依存ソフトウェアと、ハ
ードウェア依存ソフトウェアとを個別に開発しておき、
両者の組み合わせを変えることにより、多岐にわたる、
さまざまな特性や性能を持つ製品ラインアップを提供す
ることができる。
【0016】ハードウェア非依存のソフトウェアは、例
えば、感情モデルや行動モデル、学習モデルなどのハー
ドウェア操作との関係が少ない処理を行うアプリケーシ
ョン層ソフトウェアである。また、ハードウェア依存の
ソフトウェアは、例えば、ロボット1の基本的な機能を
提供するソフトウェア・モジュールの集まりで構成され
るミドルウェア層ソフトウェアであり、各モジュールの
構成はロボットの機械的・電気的な特性や仕様、形状な
どハードウェア属性の影響を受ける。ミドルウェアは、
機能的には、各部のセンサの入力を処理・認識して上位
のアプリケーションに通知する認識系のミドルウェア
と、アプリケーションが発行するコマンドに従って各関
節アクチュエータの駆動などハードウェアの駆動制御を
行う出力系のミドルウェアに大別することができる。
【0017】例えば、ハードウェア構成に適合したミド
ルウェアをロボットに導入することによって、同じアプ
リケーションを様々なハードウェア構成のロボット上で
実行可能となる。
【0018】ところで、ロボットを始めとして各種の計
算機システムに対してソフトウェアを導入する形態とし
て、新しいソフトウェアをリムーバブル・メディアを介
して供給したり、あるいはネットワーク経由でソフトウ
ェアをダウンロードすることが挙げられる。例えば、ロ
ボットの本体のある部位に、メモリ・カードやメモリ・ス
ティックなどのリムーバブル・メディアを装填するため
のメモリ・スロットを配設しておくことにより、リムー
バブル・メディアをスロットに対して挿脱する作業だけ
で、アプリケーションやミドルウェアなどの新しいソフ
トウェアを簡単にロボットに導入することができる。
【0019】複数のソフトウェア層で構成されるロボッ
トの制御システムに新規ソフトウェアを導入するに際し
ては、新たに導入されるソフトウェアが他のソフトウェ
ア層との相性、すなわち互換性が保たれいてる必要があ
る。
【0020】より具体的に言うならば、アプリケーショ
ンとミドルウェア間の任意の組み合わせを許容するため
には、これらソフトウェア層間でのデータやコマンドを
交換する形式、すなわちプログラム間のインターフェー
スを確立させておく必要がある。
【0021】
【発明が解決しようとする課題】本発明の目的は、脚式
歩行型など多関節型のロボットをソフトウェア・プログ
ラムを用いて制御する、優れたロボット制御システム及
びロボット制御方法を提供することにある。
【0022】本発明の更なる目的は、脚部や頭部など各
動作ユニットの着脱・交換などに伴ってハードウェア構
成が大幅に変更する可能性がある多関節型ロボットをソ
フトウェア・プログラムを用いて制御する、優れたロボ
ット制御システム及びロボット制御方法を提供すること
にある。
【0023】本発明の更なる目的は、ハードウェア構成
に対して依存性の高いソフトウェア層とハードウェア構
成に非依存のソフトウェア層の組み合わせからなるソフ
トウェア・プログラムを用いて多関節型ロボットを制御
する、優れたロボット制御システム及びロボット制御方
法、並びに各ソフトウェア層間のプログラム・インター
フェースを提供することにある。
【0024】本発明の更なる目的は、ミドルウェアのよ
うなハードウェア依存のソフトウェア層と、アプリケー
ションなどのハードウェア非依存のソフトウェア層との
組み合わせを動的に変更して多関節型ロボットを制御す
る、優れたロボット制御システム及びロボット制御方
法、並びに各ソフトウェア層間のプログラム・インター
フェースを提供することにある。
【0025】
【課題を解決するための手段及び作用】本発明は、上記
課題を参酌してなされたものであり、その第1の側面
は、複数のハードウェア構成要素の組み合わせからなる
ロボットの動作を制御するロボット制御システムであっ
て、ロボットのハードウェア構成情報に依存しない処理
を行う第1の制御部とロボットのハードウェア構成情報
に依存する処理を行う第2の制御部と前記第1及び第2
の制御部間の通信を行う通信部と、を具備することを特
徴とするロボット制御システムである。
【0026】但し、ここで言う「システム」とは、複数
の装置(又は特定の機能を実現する機能モジュール)が
論理的に集合した物のことを言い、各装置や機能モジュ
ールが単一の筐体内にあるか否かは特に問わない。
【0027】ここで言う第1の制御部は、ハードウェア
構成に非依存のアプリケーション層ソフトウェアによっ
て実装される。また、第2の制御部は、ハードウェア構
成に対する依存性の高いミドルウェア層ソフトウェアに
よって実装される。また、通信部は、アプリケーション
とミドルウェアの間のデータ交換処理を実現するプログ
ラム・インターフェースという形態で実装することがで
きる。
【0028】本発明の第1の側面に係るロボット制御シ
ステムによれば、通信部が、アプリケーション層とミド
ルウェア層の間のインターフェースとなり、ソフトウェ
ア層間でのデータやコマンドを交換する形式を確立する
ことによって、アプリケーションとミドルウェア間の任
意の組み合わせを許容することができる。
【0029】前記第1の制御部は、例えば、ロボットの
構成や動作を抽象化したモデルによってロボットの行動
シーケンスを決定するアプリケーション・ソフトウェア
を実行することにより実現される。アプリケーション・
ソフトウェアは、例えば、ロボットの感情をモデル化し
た感情モデル、本能をモデル化した本能モデル、外部事
象とロボットがとる行動との因果関係を逐次記憶してい
く学習モデル、行動パターンをモデル化した行動モデル
などを備えている。
【0030】また、前記第2の制御部は、例えば、ロボ
ットの機体上における基本的な機能を提供するミドルウ
ェア・ソフトウェアを実行することにより実現される。
ミドルウェア・ソフトウェアは、例えば、ロボットのハ
ードウェアから検出される入力データをシステム制御層
経由で受け取って距離検出、姿勢検出、接触などの外的
要因の検出をハードウェアの構成を考慮して行う認識系
処理部と、アプリケーションからのコマンドに基づいて
ロボットの機体上の動作制御を処理する出力系処理部と
で構成される。
【0031】前記通信部は、前記認識系処理部による検
出情報を前記第1の制御部に通知するとともに、前記第
1の制御部によるコマンドを前記出力系処理部に転送す
る。
【0032】また、前記通信部は、前記第2の制御部か
らの情報を前記第1の制御部に通知する情報通信インタ
ーフェースや、前記第1の制御部が前記第2の制御部を
制御するためのコマンド・インターフェースなどを備え
ている。
【0033】また、前記通信部は、前記第1の制御部が
前記第2の制御部から取得したい情報を意味ベースで指
定するための情報データベースを備えていてもよい。こ
のような場合、該情報データベース中の該当するレコー
ドを登録することにより、前記第2の制御部から前記第
1の制御部に対して該当する情報を転送することができ
る。
【0034】また、前記通信部は、前記第1の制御部が
前記第2の制御部に対して発行したいコマンドを意味ベ
ースで指定するためのコマンド・データベースを備えて
いてもよい。このような場合、前記第1の制御部は前記
コマンド・データベースを利用してコマンドを意味ベー
スで選択することができる。
【0035】また、前記通信部は、前記第1の制御部に
よる認識結果を前記第2の制御部に通知するとともに、
認識結果と前記第2の制御部で可能な行動との関係を前
記第1の制御部に通知するためのフィードバック・イン
ターフェースを備えていてもよい。
【0036】また、前記第1の制御部と前記第2の制御
部は独立して取り扱い可能に構成されていてもよい。
【0037】また、前記通信部は前記第2の制御部が検
出したシステム・イベントを前記第1の制御部に通知す
るようにしてもよい。
【0038】また、前記通信部は、前記第2の制御部が
検出したシャットダウン要因を前記第1の制御部に通知
する手段と、前記第1の制御部が設定したシャットダウ
ンに対するレジューム条件を前記第2の制御部に通知す
る手段とを備えていてもよい。また、前記第2の制御部
が設定する推奨レジューム条件を前記第1の制御部に通
知する手段をさらに含んでいてもよい。
【0039】本発明の第1の側面に係るロボット制御シ
ステムによれば、ロボットのハードウェア構成に依存す
るミドルウェア層と、ハードウェア構成に依存しないア
プリケーション層の間に、意味的に動作を行うためのイ
ンターフェースとデータベースを用意することによっ
て、ロボット上に導入するミドルウェアとアプリケーシ
ョンの組み合わせを変更しても、常に正常な動作を保証
することができる。また、アプリケーションは、ミドル
ウェアを介して適当な入力データを取得したり、適切な
コマンドを発行することができる。
【0040】また、本発明の第2の側面は、複数のハー
ドウェア構成要素の組み合わせからなるロボットの動作
を、ロボットのハードウェア構成情報に依存しない処理
を行う第1の制御モジュール、並びに、ロボットのハー
ドウェア構成情報に依存する処理を行う第2の制御モジ
ュールを用いて制御するロボット制御方法であって、前
記第1の制御モジュールと前記第2の制御モジュール間
で通信を行う通信ステップを備えることを特徴とするロ
ボット制御方法である。
【0041】ここで言う第1の制御モジュールは、ハー
ドウェア構成に非依存のアプリケーション層ソフトウェ
アによって実装される。また、第2の制御モジュール
は、ハードウェア構成に対する依存性の高いミドルウェ
ア層ソフトウェアによって実装される。また、通信ステ
ップは、アプリケーションとミドルウェアの間のデータ
交換処理を実現するプログラム・インターフェースとい
う形態で実装することができる。
【0042】本発明の第2の側面に係るロボット制御方
法によれば、通信ステップにおいて、アプリケーション
層とミドルウェア層の間のインターフェースを実現し
て、ソフトウェア層間でのデータやコマンドを交換する
形式を確立することによって、アプリケーションとミド
ルウェア間の任意の組み合わせを許容することができ
る。
【0043】前記第1の制御モジュールは、前記第1の
制御モジュールは、ロボットの構成や動作を抽象化した
モデルによってロボットの行動シーケンスを決定するア
プリケーション・ソフトウェアによって実装される。ア
プリケーション・ソフトウェアは、例えば、ロボットの
感情をモデル化した感情モデル、本能をモデル化した本
能モデル、外部事象とロボットがとる行動との因果関係
を逐次記憶していく学習モデル、行動パターンをモデル
化した行動モデルなどで構成される。
【0044】また、前記第2の制御モジュールは、ロボ
ットの機体上における基本的な機能を提供するミドルウ
ェア・ソフトウェアによって実装される。ミドルウェア
は、例えば、ロボットのハードウェアから検出される入
力データをシステム制御層経由で受け取って距離検出、
姿勢検出、接触などの外的要因の検出を行う認識系処理
モジュールと、アプリケーションからのコマンドに基づ
いてロボットの機体上の動作制御を処理する出力系処理
モジュールとで構成される。
【0045】前記通信ステップでは、前記認識系処理モ
ジュールの実行による検出情報を前記第1の制御モジュ
ールに通知するとともに、前記第1の制御モジュールの
実行によるコマンドを前記出力系処理モジュールに転送
するようにしてもよい。
【0046】また、前記通信ステップでは、前記第2の
制御モジュールからの情報を前記第1の制御モジュール
に通知する情報通信インターフェースを利用するように
してもよい。
【0047】また、前記通信ステップでは、前記第1の
制御モジュールが前記第2の制御モジュールを制御する
ためのコマンド・インターフェースを利用するようにし
てもよい。
【0048】また、前記通信ステップでは、前記第1の
制御モジュールが前記第2の制御モジュールから取得し
たい情報を意味ベースで指定するための情報データベー
スを利用するようにしてもよい。このような場合、該情
報データベース中の該当するレコードを登録することに
より、前記第2の制御モジュールから前記第1の制御モ
ジュールに対して該当する情報を転送することができ
る。
【0049】また、前記通信ステップでは、前記第1の
制御モジュールが前記第2の制御モジュールに対して発
行したいコマンドを意味ベースで指定するためのコマン
ド・データベースを利用して、前記第1の制御モジュー
ルはコマンドを意味ベースで選択するようにしてもよ
い。
【0050】また、前記通信ステップは、前記第1の制
御モジュールによる認識結果を前記第2の制御モジュー
ルに通知するとともに、認識結果と前記第2の制御モジ
ュールで可能な行動との関係を前記第1の制御モジュー
ルに通知するフィードバック・ループを実行するように
してもよい。
【0051】また、前記第1の制御モジュールと前記第
2の制御モジュールは独立して取り扱い可能に構成する
ようにしてもよい。
【0052】また、前記通信ステップは、前記第2の制
御モジュールが検出したシステム・イベントを前記第1
の制御モジュールに通知するサブステップを含んでもよ
い。
【0053】また、前記通信ステップは、前記第2の制
御モジュールが検出したシャットダウン要因を前記第1
の制御モジュールに通知するサブステップと、前記第1
の制御モジュールが設定したシャットダウンに対するレ
ジューム条件を前記第2の制御モジュールに通知するサ
ブステップとを備えていてもよい。また、前記通信ステ
ップは、前記第2の制御モジュールが設定する推奨レジ
ューム条件を前記第1の制御モジュールに通知するサブ
ステップをさらに含んでいてもよい。
【0054】本発明の第2の側面に係るロボット制御方
法によれば、ロボットのハードウェア構成に依存するミ
ドルウェア層と、ハードウェア構成に依存しないアプリ
ケーション層の間に、意味的に動作を行うためのインタ
ーフェースとデータベースを用意することによって、ロ
ボット上に導入するミドルウェアとアプリケーションの
組み合わせを変更しても、常に正常な動作を保証するこ
とができる。また、アプリケーションは、ミドルウェア
を介して適当な入力データを取得したり、適切なコマン
ドを発行することができる。
【0055】また、本発明の第3の側面は、オブジェク
ト指向プログラムで構成されるロボット制御システムで
あって、ロボットのハードウェア構成に依存しない処理
を行うアプリケーション・オブジェクトと、ロボットの
ハードウェア構成に依存する処理を行うミドルウェア・
オブジェクトと、前記アプリケーション・オブジェクト
からの意味ベースでのコマンドに対応する前記ミドルウ
ェア・オブジェクトで使用される情報が登録されたイン
フォメーション・データベースと、前記インフォメーシ
ョン・データベースに基づいて、前記アプリケーション
・オブジェクトと前記ミドルウェア・オブジェクト間で
の通信を制御するオブジェクト制御手段と、を具備する
ことを特徴とするロボット制御システムである。
【0056】本発明の第3の側面に係るロボット制御シ
ステムによれば、オブジェクト制御手段は、インフォメ
ーション・データベースを参照することによってアプリ
ケーション層とミドルウェア層の間のインターフェース
を形成して、ソフトウェア層間でのデータやコマンドを
交換する形式を確立することによって、アプリケーショ
ンとミドルウェア間の任意の組み合わせを実現すること
ができる。
【0057】ここで、前記インフォメーション・データ
ベースは、登録される情報の有する意味ベースの側面を
階層的に記述している。
【0058】前記インフォメーション・データベースの
フォーマットは、少なくともインフォメーション識別情
報フィールド、分類フィールド、センサ情報識別フィー
ルドを備えている。
【0059】本発明のさらに他の目的、特徴や利点は、
後述する本発明の実施例や添付する図面に基づくより詳
細な説明によって明らかになるであろう。
【0060】
【発明の実施の形態】以下、図面を参照しながら本発明
の実施例を詳解する。
【0061】図1には、本発明の実施に供されるロボッ
トのハードウェア構成を模式的に図解している。同図に
示すように、ロボットのハードウェアは、制御系サブシ
ステム10と、駆動系サブシステム50とで構成され
る。
【0062】ロボットの制御系サブシステムは、CPU
(Central Processing Unit)11と、メイン・メモリ1
2と、固定型メモリ装置13と、交換可能メモリ装置1
4とで構成され、る。
【0063】メイン・コントローラとしてのCPU11
は、システム制御ソフトウェアの制御下で、アプリケー
ションのようなハードウェア非依存プログラムや、ミド
ルウェアのようなハードウェア依存プログラムを実行し
て、ロボットという装置全体の動作を統括的に制御する
ようになっている。
【0064】CPU11は、メモリやその他の各回路コ
ンポーネントや周辺機器とバス接続されている。バス上
の各装置にはそれぞれに固有のアドレス(メモリ・アド
レス又はI/Oアドレス)が割り当てられており、CP
U11はアドレス指定することでバス上の特定の装置と
通信することができる。バスは、アドレス・バス、デー
タ・バス、コントロール・バスを含んだ共通信号伝送路で
ある。
【0065】メイン・メモリ12は、通常、複数個のD
RAM(Dynamic Random Access Memory)チップで構成
される揮発性記憶装置で構成され、CPU11の実行プ
ログラム・コードをロードしたり、その作業データの一
時的な保存のために利用される。本実施例では、固定型
メモリ装置13や交換可能メモリ装置14から供給され
るアプリケーションやミドルウェアなどのプログラム・
コードは、メイン・メモリ12上に展開すなわちメモリ
空間上にマッピングされる。
【0066】固定型メモリ装置13は、ロボット本体に
対して固定的に取り付けられた、交換不能な不揮発性記
憶装置である。例えば、フラッシュ・メモリのように、
書き込み電圧の印加によりプログラマブルな不揮発性メ
モリ素子を用いて固定型メモリ装置13に構成すること
ができる。
【0067】固定型メモリ装置13は、ロボットの動作
や思考を制御するためのアプリケーションや、ハードウ
ェア操作用のミドルウェアなどのプログラム・コードを
格納するために利用される。但し、固定型メモリ装置1
3は、装置に対して固定的に設置されることから、ミド
ルウェアなどのハードウェア依存型のソフトウェアに関
しては、ロボットの出荷時(デフォルト時)又は標準的
なハードウェア構成に適合するバージョンを固定型メモ
リ装置13内に用意しておくことが好ましい。
【0068】交換可能メモリ装置14は、ロボットに対
して着脱・交換可能に取り付けられる、不揮発性記憶装
置である。例えば、メモリ・カードやメモリ・スティック
のようなカートリッジ式の記憶媒体を用いて交換可能メ
モリ装置14を構成して、所定のメモリ・スロット上に
装填することによって、機体上で交換可能な使用に供さ
れる。
【0069】交換可能メモリ装置14は、固定型メモリ
装置13と同様に、ロボットの動作や思考を制御するた
めのアプリケーションや、ハードウェア操作用のミドル
ウェアなどのプログラム・コードを格納するために利用
される。但し、交換可能メモリ装置14は、ロボット本
体に対して着脱・交換に提供され、またハードウェア構
成の異なる機種間を移動して使用に供されることが想定
されるので、最新のソフトウェアを機体に提供する際な
どに利用することができる。
【0070】ミドルウェアなどのハードウェア依存型の
ソフトウェアに関しては、ロボットの出荷時(デフォル
ト時)又は標準的なハードウェア構成に適合するバージ
ョンか否かを特に意識して交換可能メモリ装置14上に
格納する必要性が低い。むしろ、アプリケーションが想
定するハードウェア構成に対して動作環境を提供するこ
とができるミドルウェアを、アプリケーションと組にし
て、交換可能メモリ装置14に格納することが好まし
い。
【0071】一方、ロボットの駆動系サブシステム50
は、各関節アクチュエータやその駆動制御回路、動作検
出用のエンコーダ、さらにはカメラや接触センサなどの
各種センサ類(いずれも図示しない)などで構成され
る。図示の例では、駆動系サブシステム50は、頭部、
胴体部、脚部など各駆動ユニット単位で扱われるものと
する。
【0072】さらに、駆動ユニットの少なくとも一部
は、機体に対する着脱・交換などにより動的に再構成可
能な物理コンポーネント(CPC:Configurable Physi
cal Component)として構成されているものとする。
【0073】本実施例では、各物理コンポーネントは、
固有の識別情報すなわちコンポーネントIDが付与され
ている。制御系サブシステム10のCPU11(より具
体的にはCPU11上で実行されるシステム制御ソフト
ウェア)は、装備されている各物理コンポーネントに対
してバス経由でアクセスして、各物理コンポーネントに
対して制御コマンドを転送したり、それぞれのコンポー
ネントIDを取得することができるようになっている。
検出されたコンポーネントIDの組み合わせが、ロボッ
トにおける現在のハードウェア構成情報となる。
【0074】図2には、CPCコンポーネントの着脱・
交換により駆動系サブシステム50の構成を変更した例
を示している。同図(a)では、胴体に対して頭と脚と
尻尾などの複数の物理コンポーネントが装着されている
が(すなわち、ハードウェア構成情報は{胴体ID,頭
ID,脚ID,尻尾ID}となる)、同図(b)では、
胴体に対して物理コンポーネントとして車輪しか装備さ
れていない(すなわち、ハードウェア構成情報は{胴体
ID,車輪ID}となる)。
【0075】図2(a)及び図2(b)に示す例のよう
にハードウェア構成が著しく相違するロボットの間で
は、同じハードウェア依存ソフトウェアを使用すること
ができない。例えば、頭や尻尾からのセンサ入力を行う
ミドルウェアは、図2(b)に示すハードウェア構成の
装置上では動作することができない。同様に、移動手段
として脚部を駆動制御するようにデザインされたミドル
ウェアを、図2(b)に示すハードウェア構成の装置上
で使用することはできない。
【0076】次いで、ロボット制御用のソフトウェアの
構成について、図3を参照しながら説明する。
【0077】ロボットの制御用ソフトウェアは、ロボッ
トのハードウェア構成に依存しないアプリケーション層
と、ハードウェア構成に依存するミドルウェア層と、最
下層のデバイス・ドライバで構成される。各層のソフト
ウェアは、所定のオペレーティング・システム(OS)
の制御下で、ロボットのハードウェアすなわち後述する
駆動系サブシステム50の制御を行う。
【0078】本実施例では、各層のソフトウェアのデザ
インには、オブジェクト指向プログラミングを採り入れ
ることができる。オブジェクト指向における各ソフトウ
ェアは、データとそのデータに対する処理手続きとを一
体化させた「オブジェクト」というモジュール単位で扱
われる。
【0079】アプリケーション層とミドルウェア層と
は、所定のプログラミング・インターフェース(以下で
は、「アプリケーション・インターフェース」と呼ぶこ
とにする)を介してデータ通信が行われる。本実施例で
は、交換可能メモリ装置14を介したソフトウェアの導
入などによりアプリケーションとミドルウェアのさまざ
まな組み合わせが許容される。それぞれのアプリケーシ
ョンとミドルウェアとの間の互換性は、このアプリケー
ション・インターフェースによって実現される。但し、
アプリケーション・インターフェースの仕組みについて
は、後に詳解する。
【0080】アプリケーション層とミドルウェア層は、
それぞれ複数のオブジェクト・ファイルで構成される。
本実施例では、アプリケーション層とミドルウェア層
は、オブジェクト管理システムの制御下に置かれてい
る。また、ミドルウェア層と、最下層のデバイス・ドラ
イバとの間のデータ通信は、所定のプログラミング・イ
ンターフェース(以下では、「デバイス・ドライバ・イン
ターフェース」と呼ぶことにする)を介してデータ通信
が行われる。
【0081】ハードウェアの操作、すなわち、駆動用の
各関節アクチュエータへの制御指令の発行や、各センサ
における検出値の入力などは、ミドルウェアが直接行わ
ず、各ハードウェア・コンポーネントに対応するそれぞ
れのデバイス・ドライバを介して行われる。
【0082】アプリケーションは、ロボットの感情をモ
デル化した感情モデルと、本能をモデル化した本能モデ
ルと、外部事象とロボットがとる行動との因果関係を逐
次記憶していく学習モデルと、行動パターンをモデル化
した行動モデルとを備えており、センサ入力情報すなわ
ち外部要因を基に行動モデルによって決定された行動の
出力先を切り替えるようになっている。
【0083】感情モデルと本能モデルは、それぞれ認識
結果と行動履歴を入力に持ち、感情値と本能値を管理し
ている。行動モデルは、これら感情値や本能値を参照す
ることができる。また、学習モデルは、外部(オペレー
タ)からの学習教示に基づいて行動選択確率を更新し
て、更新内容を行動モデルに供給する。
【0084】アプリケーションは、ロボットの構成や動
作を抽象化したモデルによって演算処理を行うので、ハ
ードウェア属性の影響を受けないハードウェア非依存型
のソフトウェアである。
【0085】ミドルウェア層は、ロボットの機体上にお
ける基本的な機能を提供するソフトウェア・モジュール
の集まりであり、各モジュールの構成はロボットの機械
的・電気的な特性や仕様、形状などハードウェア属性の
影響を受けるハードウェア依存型のソフトウェアであ
る。
【0086】ミドルウェア層は、機能的に、認識系のミ
ドルウェアと、出力系のミドルウェアに分けることがで
きる。
【0087】認識系のミドルウェアでは、画像データや
音声データ、その他のセンサから得られる検出データな
ど、ハードウェアからの生データをシステム制御層経由
で受け取ってこれらを処理する。すなわち、各種入力情
報に基づき、音声認識、距離検出、姿勢検出、接触、動
き検出、色認識などの処理を行い、認識結果を得る(例
えば、ボールを検出した、転倒を検出した、撫でられ
た、叩かれた、ドミソの音階が聞こえた、動く物体を検
出した、障害物を検出した、障害物を認識した、な
ど)。認識結果は、上位のアプリケーション層に通知さ
れ、行動計画の立案などに利用される。
【0088】一方、出力系のミドルウェアでは、歩行、
動きの再生、出力音の合成、目に相当するLEDの点灯
制御などの機能を提供する。すなわち、アプリケーショ
ン層において立案された行動計画に関連するコマンドを
受け取って、ロボットの各機能毎にロボットの各ジョイ
ントのサーボ指令値や出力音、出力光(LED)、出力
音声などを生成して、出力すなわち仮想ロボットを介し
てロボット上で実演する。このような仕組みにより、ア
プリケーション側からは抽象的な行動コマンド(例え
ば、前進、後退、喜ぶ、吼える、寝る、体操する、驚
く、トラッキングするなど)を与えることで、ロボット
の各関節アクチュエータや機体上のその他の出力部によ
る動作を制御することができる。
【0089】本実施例に係るミドルウェアは、アプリケ
ーション〜ミドルウェア間の意味ベースでの情報通信を
用意し、知識ベースを共有することができる。データベ
ースには、アプリケーションが意味ベースで入力情報を
特定するために使用する情報データベース(Informatio
nDB)と、アプリケーションが意味ベースで実行コマン
ドを選択するために使用するコマンド・データベース
(CommandDB)が含まれる。データベースの詳細につい
ては後述に譲る。
【0090】これらロボット制御用の各層ソフトウェア
は、固定型メモリ装置13や交換可能メモリ装置14に
よってロボット1の機体内に提供される。各層のソフト
ウェアは、メイン・メモリ12上に展開されて、すなわ
ちメモリ空間上にマッピングして使用される。
【0091】本実施例では、ロボットのハードウェア構
成に依存するミドルウェア層と、行動選択などハードウ
ェア構成に依存しないアプリケーション層間にアプリケ
ーション・インターフェースを介在させて規定する。こ
れにより、以下の機能を満足することができる。
【0092】(1)ミドルウェアとアプリケーションを
独立して取り扱い可能に構成することで、1つのアプリ
ケーションで様々なハードウェア構成のロボットに対応
できるようにする。(ユーザは、自分が所有する(ある
いは育てた)アプリケーションを機体間で移動させた
り、流通・販売することができる。)
【0093】(2)ミドルウェアとアプリケーションを
独立して取り扱い可能に構成することで、ある1つのハ
ードウェア構成を持つ機体上で、さまざまなアプリケー
ションに対応するミドルウェアを作成することができ
る。ミドルウェアの再利用性が高くなるので、アプリケ
ーションの開発効率が向上する。
【0094】(3)ミドルウェアとアプリケーションを
独立して取り扱い可能に構成することで、同一のハード
ウェア構成を持つ機体上で、同一のアプリケーションで
あっても、ミドルウェアを変更することで、実際の表現
力や制御性の向上を実現することができる。
【0095】(4)バイナリ互換を保証することで、ア
プリケーション又はミドルウェアのバイナリ・コードを
メモリ・スティックなどの交換可能メモリ装置14など
から機体にダウンロードすることによって、簡単にソフ
トウェアを入れ替えて、上述した利点を享受することが
できる。しかも、コンパイル作業なしでソフトウェアを
交換することができる。
【0096】(5)アプリケーションとミドルウェアが
独立しているので、ソフトウェア開発ベンダは、得意な
領域の機能開発に集中することができる。例えば、制御
系を専門とするベンダはミドルウェアの開発に注力する
ことにより、色々なアプリケーションを利用することが
できる。
【0097】本実施例に係るアプリケーション・インタ
ーフェースは、以下の機能実現手段を備えている。
【0098】(1)ミドルウェアで検出した情報をアプ
リケーションに通知する情報通信インターフェース(Se
nsorInformation+SensorValueVector/SystemInfo/Boot
/Shootdown)。
【0099】(2)アプリケーションがミドルウェアを
制御するためのコマンド・インターフェース(Command/
Status)。
【0100】(3)アプリケーションで検出した認識結
果をミドルウェアに通知して、認識結果とミドルウェア
で可能な行動との関係をアプリケーションに通知するた
めのフィードバック・インターフェース(TargetInfo/C
ommandInfo)。
【0101】(4)情報通信インターフェースで供給さ
れるデータの中で、アプリケーションで使用する情報を
意味ベースで選択するための手段。この意味ベース選択
手段によれば、アプリケーションは、情報供給源たるセ
ンサの実際の場所を意識することなく、学習のための入
力情報(例えば、ユーザから「なでられた」など)を取
得することができる。また、期待していたセンサやスイ
ッチなどのハードウェアが機体上に実在しない場合であ
っても、代替のセンサを選択して(例えば、「なでられ
た」ことを知覚するために、頭に配設されている何らか
のスイッチを代用するなど)、該当する感情(例えば、
快の感情)に結びつけることなどが可能となる。ミドル
ウェアは、意味ベースでの入力情報の特定のために、情
報データベースInformationDB(後述)を用意する。ア
プリケーションは、InformationDBに使用する情報を登
録することにより意味ベースでの入力情報の取得が実現
される。
【0102】(5)上記のコマンド・インターフェース
でサポートされるコマンドの中で、アプリケーションで
実行したいコマンドを意味ベースで選択する手段。この
意味ベース選択手段によれば、アプリケーションは、ミ
ドルウェアが実際にどのようなモータ/エフェクタを作
動させるのかを意識することなく、必要な行動を実行さ
せることができる。ミドルウェアは、意味ベースでのコ
マンド選択を実現するために、コマンド・データベース
CommandDB(後述)を用意する。
【0103】(6)アプリケーションで認識を行うのに
必要な、実行時に動的に変化するロボットの情報を提供
する手段。例えば、ロボットの姿勢や移動速度に関する
情報を提供するために、SensorInformation中にHeaderI
nfo領域(後述)を規定する。
【0104】(7)アプリケーションで認識を行うのに
必要な、実行時に動的に変化するセンサの物理情報を提
供する手段。例えば、センサがどちらの方向を向いてい
るかを通知するために、SensorInformation中のHeaderI
nfo領域並びにSensorInfo領域を使用する。
【0105】(8)アプリケーションで移動の行動を実
現するのに必要な、ロボットの大きさ・移動速度などの
物理情報を提供する手段。例えば、検出した隙間を現在
のハードウェア構成を持つロボットが通過することがで
きるかなど、CommandのTargetPos・アプリケーション層
への情報提供を行う。
【0106】(9)構成によらない反射ループを構成す
るために、情報通信データから入力された情報に連動す
るあらかじめ準備された行動をコマンド・インターフェ
ースで通知する手段。Interaction系の分類を準備し
て、入力情報のSensorIDをKeyとしてCommandDBを検索す
る。
【0107】(10)ミドルウェアの都合によるコマンド
の実行をアプリケーションに依頼する手段。例えば、転
倒からの復帰動作などのような、ミドルウェアの構造に
依存して変化する処理を、アプリケーション層が詳細を
理解する必要なく処理することを可能にすることで、ミ
ドルウェアとアプリケーションの状態の整合性をとるこ
とができる。転倒に関して付言すれば、どういう姿勢を
経由すると安全に立つことができるかなどの転倒姿勢か
らの復帰方法は、ミドルウェアがサポートする姿勢の種
類によって相違する。勿論、ミドルウェアの性能にも依
存する。
【0108】(11)シャットダウン(Shutdown)とレジ
ューム(Resume)条件を通知する手段。シャットダウン
の要因とレジュームの条件は密接に影響する。例えば、
放電時のバッテリの温度が上昇し過ぎた場合に、温度が
適温まで降下する時間はハードウェアの放熱性能など機
体の特性に依存する。ミドルウェアは、その際のレジュ
ーム条件として、次に起きてもよい時間を推奨レジュー
ム条件としてアプリケーションに通知する。アプリケー
ションは、推奨条件とアプリケーション自身の都合か
ら、最終的なレジューム条件を設定して、シャットダウ
ン時にミドルウェアに通知する。(Shutdown/Resume Co
ndition)
【0109】(12)アプリケーションでの認識結果をミ
ドルウェアの制御で利用する手段。アプリケーション層
で認識結果を出力サービスをTrackingコマンドに追加す
ることで、ミドルウエアのTracking担当ソフトウェア・
モジュールは、認識結果サービスの中から指定された認
識結果をアプリケーション層でコマンド決定しているソ
フトウェアを介さずに獲得することができるので、処理
が高速化する。(TargetInfo/CommandのTargetID)
【0110】(13)ハードウェア構成によって変更する
パラメータをシステムが自動検索してミドルウェアに通
知する手段。例えば、新規のハードウェア構成となって
も、パラメータ・ファイルを入れ替えるだけでソフトウ
ェアの変更が不要となる。物理コンポーネント上に実装
されたROMをシステムが検索して情報を通知する場合
もある。この手段が提供する機能により、汎用性が向上
し、バイナリ互換にも影響する。
【0111】以下では、アプリケーション・インターフ
ェースの代表的な機能実現手段について詳解する。
【0112】インフォメーション・データベース(Info
rmationDB) 本実施例では、アプリケーション・インターフェース経
由で供給されるデータの中で、アプリケーションで使用
する情報を意味ベースで選択することができる。そのた
めに、ミドルウェアは、インフォメーション・データベ
ースを用意する。アプリケーションは、使用する情報を
インフォメーション・データベースに意味ベースで登録
することにより、必要な入力情報の取得を行うことが可
能となる。
【0113】アプリケーションは、情報供給源たるセン
サの実際の場所を意識することなく、学習のための入力
情報(例えば、ユーザから「なでられた」など)を取得
することができる。また、期待していたセンサやスイッ
チなどのハードウェアが機体上に実在しない場合であっ
ても、代替のセンサを選択して(例えば、「なでられ
た」ことを知覚するために、頭に配設されている何らか
のスイッチを代用するなど)、該当する感情(例えば、
快の感情)に結びつけることなどが可能となる。
【0114】図4には、インフォメーション・データベ
ースのフォーマット例を示している。同図に示すよう
に、インフォメーション・データベースの1つのレコー
ドは、インフォメーション識別情報(InformationID)
フィールドと、分類フィールドと、センサ値情報フィー
ルドと、センサ識別情報(SensorID)フィールドで構成
される。
【0115】インフォメーション識別情報(Informatio
nID)は、レコードに一義に割り振られる固有の識別子
であり、ミドルウェアが勝手に決めることができる。
【0116】分類フィールドは、さらに、互換、大、
中、小の各フィールドに細分化される。互換フィールド
は、その後に書かれるIDの意味が標準又は拡張のID
のいずれであるかを示すフラグである。大、中、小の各
フィールドには大分類、中分類、小分類がそれぞれ記入
される。
【0117】分類は、意味ベースで情報を選択すること
を意識して、すなわち情報の持つ意味ベースの側面を階
層的に記述される。データベースを読み出した後で必要
な情報を選択することで相違するデータベースの組み合
わせによる動作を可能にしている。小分類は、実際のハ
ードウェア構造の形になる(単位系などはこの時点で決
まる)。
【0118】センサ値情報フィールドは、該当するセン
サ入力の最大値、最小値、並びに、解像度を記入するフ
ィールドを含んでいる。
【0119】センサ識別情報(SensorID)フィールド
は、センサ部品並びにセンサが搭載された部位を指定す
る各フィールドと、部品並びに部位に関する互換性を示
す各フラグを含んでいる。
【0120】分類並びにセンサ識別情報がデータベース
検索時において該当するレコードを選択する決め手とな
る。
【0121】アプリケーションなどのソフトウェアは、
実行時に組み合わされているミドルウェアのインフォメ
ーション・データベースを検索して、必要としているイ
ンフォメーション識別情報を獲得して、動作時に通知さ
れる情報群からインフォメーション識別情報を検索キー
にして情報を抽出し、必要な処理を適用する。
【0122】図5及び図6には、インフォメーション・
データベースのレコードの記入例を示している。
【0123】各図において、インフォメーションIDが
101と102のレコードは実際には同じセンサを指定
している。同様に、200と201のレコードは実際に
は同じセンサを指定している。101に比し、102に
はより詳細な部位情報が記述されている。また、201
はPSDが測定している場所とカメラが捕捉している場
所との関係を画像連動型として得る点で、200とは相
違する。
【0124】アプリケーションは、このインフォメーシ
ョン・データベースを用いて、使用する入力情報を登録
しておくことにより、ミドルウェアから該当するセンサ
入力情報の通知を受けることかできる。
【0125】図7には、アプリケーション・オブジェク
トが使用する情報を登録する様子、並びに、登録された
情報がミドルウェア・オブジェクト経由でアプリケーシ
ョン・オブジェクトに通知される様子を模式的に示して
いる。以下、同図を参照しながら、アプリケーション・
オブジェクトが使用情報を登録する仕組み、並びに登録
した情報をアプリケーション・オブジェクトが受け取る
仕組みについて説明する。
【0126】アプリケーション・オブジェクトは、例え
ば、「なでる」ことに関するセンサ値情報を使用したい
場合には、「なでる」という意味ベースのデータベース
要求をオブジェクト管理システムに対して発行する(T
1)。
【0127】オブジェクト管理システムは、このデータ
ベース要求に応答して、「なでる」という意味ベースの
分類を検索キーにして、インフォメーション・データベ
ースを検索する。そして、該当するレコードを見つけ出
し、そのインフォメーション識別情報を要求元のアプリ
ケーション・オブジェクトに戻す(T2)。
【0128】アプリケーション・オブジェクトは、この
戻り値に満足した場合には、オブジェクト管理システム
に対して当該情報を使用する旨の宣言(すなわち登録)
を行うとともに(T3)、ミドルウェア・オブジェクト
に対してレディ状態すなわち該当するセンサ値情報の入
力がOKであることを通知する(T4)。また、オブジ
ェクト管理システムは、この宣言に応答して、ミドルウ
ェア・オブジェクトに対して登録確認を行う(T5)。
【0129】ミドルウェア・オブジェクトは、登録確認
に応答して、インフォメーション・データベースの該当
レコードが指定するセンサをハードウェア操作するドラ
イバ・オブジェクトに対して、センサの付勢(すなわち
センサ・オープン)を指示する(T6)。
【0130】センサがオープンされる結果として、ミド
ルウェア・オブジェクトは、センサ値情報を時々刻々入
力することができる(T7)。ミドルウェア・オブジェ
クトは、各センサからの入力情報を、登録内容に従って
アプリケーション・オブジェクト毎にまとめて、通知す
る(T8)。
【0131】センサ値情報(Sensor Information) アプリケーション・オブジェクトがインフォメーション
・データベースを用いて使用情報を登録することによっ
て、所望のセンサ値情報を入力可能な状態になる仕組み
は上述した通りである。次いで、アプリケーション・オ
ブジェクトがセンサ値情報を取得する仕組み、並びにセ
ンサ値情報の詳細について説明する。
【0132】図8には、アプリケーション・オブジェク
トがミドルウェア・オブジェクトに対してセンサ値情報
を要求する仕組みを図解している。
【0133】アプリケーション・オブジェクトは、イン
フォメーション・データベースを基に、必要な情報を得
るためのインフォメーション識別情報(InformationI
D)を取得することができる。
【0134】アプリケーション・オブジェクトは、この
インフォメーション識別情報を用いて、ミドルウェア・
オブジェクトに対してデータ読み取り(Read)要求
を発行する。ミドルウェア・オブジェクトは、このRe
ad要求に応答して、ドライバ・オブジェクト経由で入
力されるセンサ値情報を、アプリケーション・オブジェ
クトに通知する。
【0135】図9には、アプリケーション・オブジェク
トがセンサ値情報を取得するための、各オブジェクト間
のやり取りをチャート上に模式的に示している。
【0136】同図に示すように、アプリケーション・オ
ブジェクトは、センサ値情報が必要となったときに、ミ
ドルウェア・オブジェクトに対してRead要求を発行
する。
【0137】ミドルウェア・オブジェクトは、ドライバ
・オブジェクト経由で、各センサからセンサ値を入力し
ている。アプリケーション・オブジェクトからのRea
d要求に応答して、要求されたインフォメーション識別
情報に該当するセンサ値を、アプリケーション・オブジ
ェクトに戻す。但し、アプリケーション・オブジェクト
がレディ(Ready)状態でないときに入力されたセンサ
値は、アプリケーション・オブジェクトに転送せず、廃
棄する。
【0138】図10には、センサ値情報のデータ構造を
模式的に図解している。同図に示すように、センサ値情
報は、ヘッダ部と本体部で構成される。
【0139】ヘッダ部は、ヘッダ情報(HeaderInfo)と
センサ情報(SensorInfo)で構成される。ヘッダ部に
は、インフォメーション・データベースに記述できな
い、動作中に変化するタイプの情報を付加することがで
きる。
【0140】一度に複数の情報が送られるので、インフ
ォメーション識別情報で該当するヘッダを検索すること
ができる。検索したヘッダにバリュー情報へのオフセッ
トが書き込まれる。バリューはデータ列で構成され、該
当するセンサ値の抽出は、ヘッダ情報並びにセンサ情報
から行うことができる。
【0141】図11には、ヘッダ情報のデータ構造を模
式的に図解している。同図に示すように、ヘッダ情報
は、ヘッダ・サイズ(HeaderSize)と、本体サイズ(Bo
dySize)と、センサ数(NumOfSensor)と、時間(Tim
e)と、ロボット速度(RobotSpeed)と、姿勢識別情報
(PostureID)とで構成される。
【0142】ロボット速度(RobotSpeed)は、同図に示
すように、xyz各軸方向の並進速度成分と回転速度成
分が書き込まれる。
【0143】姿勢識別情報(PostureID)は、共通概念
として定義されたものを使用する。姿勢識別情報は、以
下のようなデータ構造で定義される。
【0144】
【数1】TypeDef PostureID byte
【0145】また、図12には、センサ情報(SensorIn
fo)のデータ構造を模式的に示している。センサ情報
(SensorInfo)には、本体部のフォーマットを記述する
ことができる。
【0146】センサ情報(SensorInfo)は、インフォメ
ーション識別情報(Information ID)と、本体部の中か
ら分類で規定された情報にアクセスするための情報を含
んでいる。本体部にアクセスするための情報は、本体部
のオフセット量(offset)、垂直方向サイズ(vertica
l)、水平方向サイズ(horizontal)、スキップ数(ski
p)、ステップ数(step)などで構成される。
【0147】otimeは、このセンサ値情報を検出した時
刻のことであり、フィルタの遅延時間などの影響を受け
る。Limitは、センサ自身が端点にあるので動かすこと
ができないか否かを示すフラグである。
【0148】Tmatrixは、センサの状態を表す情報であ
り、より具体的には、センサ座標を基準座標に変換する
ための4×4行列である。センサがTmatrixにより基準
座標の位置に変換された様子を、図13に示しておく。
【0149】フィードバック・インターフェース 本実施例に係るアプリケーション・インターフェース
は、アプリケーションで検出した認識結果をミドルウェ
アに通知して、認識結果とミドルウェアで可能な行動と
の関係をアプリケーションに通知するというフィードバ
ック・ループを実現する。フィードバック・ループのた
めのインターフェース、すなわち「フィードバック・イ
ンターフェース」が実装される。
【0150】図14には、フィードバック・インターフ
ェースを用いたフィードバック・ループにより通知され
たコマンド情報に従い、アプリケーション・オブジェク
トがコマンドを発行する様子を図解している。
【0151】ミドルウェア・オブジェクトは、仕様情報
の登録内容に基づき、画像データなどのセンサ値情報を
アプリケーション・オブジェクトに送信する。
【0152】これに対し、アプリケーション・オブジェ
クトは、センサ値情報に基づいて所定のターゲットを認
識処理し、認識結果として目的語形式のターゲット情報
(TargetInfo)をミドルウェア・オブジェクトに戻す。
【0153】さらに、ミドルウェア・オブジェクトは、
ターゲットに対して可能なインタラクションに関するコ
マンド情報(CommandInfo)をアプリケーション・オブ
ジェクトにフィードバックする。
【0154】アプリケーション・オブジェクトは、コマ
ンド情報を基に、選択可能なコマンドを選んで、ミドル
ウェア・オブジェクトにコマンド発行する。ミドルウェ
ア・オブジェクトは、ドライバ・オブジェクトを介して
所定のハードウェア操作を行い、コマンドをロボットの
機体上で体現させることができる。
【0155】図15には、フィードバック・ループで使
用するターゲット情報(TargetInfo)のデータ構造を模
式的に示している。
【0156】同図に示すように、ターゲット情報は、情
報を検出した時刻を示すTimeと、追跡するターゲットを
識別するためのAppIDと、使用したセンサを識別するた
めのSensorIDと、基準座標からセンサ座標への変換マト
リックスであるTmatrixと、ターゲットの状態を表すTar
getStatusと(Unknown, Lost, NotSupportのいずれかの
状態をとる)(図16を参照参照のこと)、センサ座標
系でのターゲットの位置を極座標表示するTargetPos
と、ターゲットのサイズを直方体で表すSize3Dと(図1
7を参照のこと。図17中の変数Enable3Dのデータ構造
は図18を参照のこと)で構成される。
【0157】図19には、フィードバック・ループで使
用するコマンド情報(CommandInfo)のデータ構造を模
式的に示している。
【0158】同図に示すように、コマンド情報は、情報
を検出した時刻を示すTimeと、追跡するターゲットを識
別するためのAppIDと、使用したセンサを識別するため
のSensorIDと、ターゲットとの関係を示すStatusと(図
20を参照のこと)、インタラクションのコマンド(す
なわち選択可能なコマンド)を示すCategoryと、ターゲ
ットと中心の関係を示すPosition3Dとで構成される。
【0159】Kick−Touch系のコマンドは、ロ
ボットの構成によっていろいろ変わる。また、Trac
kingなどは固定のコマンドとして扱う。
【0160】図19に示すコマンド情報は、Categ
oryによる選択の自由度を持たせるタイプである。こ
の変形例として、CommandID列で表されるAc
tionIDを指定する自由度のないタイプを挙げるこ
とができる。
【0161】システム・イベント 本実施例に係るアプリケーション・インターフェース
は、ロボットの機体上で発生した所定の事象すなわちシ
ステム・イベントを検知すると、これをアプリケーショ
ン・オブジェクトに通知する機構を備えている。アプリ
ケーション・オブジェクトは、システム・イベントの通
知に応答して、所定のコマンドを実行するようになって
いる。図21には、アプリケーション・インターフェー
スを介したシステム・イベントの処理を図解している。
【0162】図22には、ミドルウェア・オブジェクト
がアプリケーション・オブジェクトに対してイベント通
知に使用するシステム・イベント(SysEvent)のデータ
構造を模式的に示している。
【0163】同図に示すように、システム・イベント
は、イベント発生時刻を示すTimeと、インタラクション
のコマンド(すなわち選択可能なコマンド)を示すCate
goryと、アクションの個数を示すNactionと、CommandID
列で表されるActionIDとで構成される。
【0164】アクションを構成する配列型変数aid
[i]には、システム・イベントに対応する処理を割り
当てることができる。aidの使用例を図23並びに図
24に示しておく。
【0165】システム・イベントは、センサ値情報とは
相違し、ヘッダ情報(HeaderInfo)やセンサ情報(Sens
orInfo)を含まない。
【0166】また、アプリケーション・オブジェクトが
レディ(Ready)状態でなくても、システム・イベント
を廃棄することなく、蓄積しておく。
【0167】シャットダウン−レジューム 本実施例に係るアプリケーション・インターフェース
は、ミドルウェア・オブジェクトがシャットダウン(Sh
utdown)の要因をアプリケーション・オブジェクトに通
知する機構と、アプリケーション・オブジェクトがミド
ルウェア・オブジェクトに対してレジューム(Resume)
すなわち次にブートするための条件を設定する機構を備
えている。
【0168】シャットダウンの要因とレジュームの条件
は密接に影響する。例えば、放電時のバッテリの温度が
上昇し過ぎた場合に、温度が適温まで降下する時間はハ
ードウェアの放熱性能など機体の特性に依存する。ミド
ルウェア・オブジェクトは、その際のレジューム条件と
して、次に起きてもよい時間を推奨レジューム条件とし
てアプリケーション・オブジェクトに通知する。アプリ
ケーション・オブジェクトは、この推奨レジューム条件
とアプリケーション・オブジェクト自身の都合から、最
終的なレジューム条件を設定して、シャットダウン時に
ミドルウェア・オブジェクトに通知する。
【0169】図25には、アプリケーション・インター
フェースを介したシャットダウン要因の通知とレジュー
ム条件の設定を行う処理の一例を図解している。
【0170】例えば、放電時のバッテリの温度が上昇し
過ぎたようなPowerEventがシャットダウン要因として検
出された場合、ミドルウェア・オブジェクトは、アプリ
ケーション・オブジェクトにPowerEventを通知する。ミ
ドルウェア・オブジェクトがPowerEventを通知する際
に、次に起きてもよい時間をレジューム条件を推奨レジ
ューム条件(RecommendCondition)として、併せて通知
する。
【0171】これに対し、アプリケーション・オブジェ
クトは、推奨レジューム条件と、アプリケーション・オ
ブジェクト自身の都合から、最終的なレジューム条件
(ResumeCondition)を設定して、シャットダウン時に
ミドルウェア・オブジェクトに通知する。
【0172】図26には、ミドルウェア・オブジェクト
がアプリケーション・オブジェクトに対して通知するシ
ャットダウン要因PowerEventのデータ構造を模式的に示
している。
【0173】同図に示すように、PowerEventは、当該シ
ャットダウン要因が発生した時刻を示すTimeと、インタ
ラクションのコマンド(すなわち選択可能なコマンド)
を示すCategoryと、レジューム条件として推奨される条
件を示すRecommendConditionと、アクションの個数を示
すNactionと、CommandID列で表されるActionIDとで構成
される。
【0174】また、図27には、アプリケーション・オ
ブジェクトが次のブート条件を設定するためにミドルウ
ェア・オブジェクトに転送するResumeConditionのデー
タ構造を模式的に示している。
【0175】同図に示すように、ResumeConditionは、
イベント通知時のマスクを示すMaskと、シャットダウン
時のイベントを示すEventと、次のレジューム時刻を設
定するResumeTimeとで構成される。
【0176】コマンド・データベース(CommandDB) 本実施例に係るアプリケーション・インターフェース
は、アプリケーション・オブジェクトがミドルウェア・
オブジェクトを制御するためのコマンド・インターフェ
ースを提供する。このコマンド・インターフェースがサ
ポートするコマンドの中で、アプリケーション・オブジ
ェクトで実行したいコマンドを意味ベースで選択できる
ようにするために、ミドルウェア・オブジェクトは、コ
マンド・データベースを用意する。アプリケーション・
オブジェクトは、ミドルウェア・オブジェクトが実際の
どのようなモータ/エフェクタを作動させるのかを意識
することなく、必要な行動を実行させることができる。
【0177】図28には、コマンド・データベースのフ
ォーマット例を示している。同図に示すように、コマン
ド・データベースの1つのレコードは、コマンド識別情
報(CommandID)フィールドと、分類フィールドと、リ
ソース・フィールドと、姿勢情報フィールドと、センサ
識別情報(SensorID)フィールドと、無限実行フラグ・
フィールドと、世代識別情報(世代ID)フィールド
と、程度識別情報(程度ID)フィールドとで構成され
る。
【0178】コマンド識別情報(CommandID)は、レコ
ードに一義に割り振られる固有の識別子であり、ミドル
ウェアが勝手に決めることができる。
【0179】分類フィールドは、さらに、互換、大、
中、小の各フィールドに細分化される。互換フィールド
は、その後に書かれるIDの意味が標準又は拡張のID
のいずれであるかを示すフラグである。大、中、小の各
フィールドには大分類、中分類、小分類がそれぞれ記入
される。分類は、意味ベースで情報を選択することを意
識して、すなわち情報の持つ意味ベースの側面を階層的
に記述される。
【0180】リソース・フィールドは、動作(頭,尻
尾,足)、音(スピーカは1つ)、特殊(頭LED、尻
尾LED)という各管理単位毎のビット・フィールドに
細分化される。ビット・フィールドの各ビット値の意味
は、ミドルウェアの性能次第で割り当てを変更すること
ができる。
【0181】姿勢情報フィールドは、コマンド実行の際
の開始姿勢と終了姿勢、及び姿勢変動(開始と終了で姿
勢が同一でも姿勢が変化する場合あり)を指定する各フ
ィールドに細分化される。
【0182】無限実行フラグは、実行の終了がないこと
を示すフラグである。
【0183】センサ識別情報(SensorID)フィールド
は、コマンドを実行する際に利用するセンサ部品並びに
センサが搭載された部位を指定する各フィールドと、部
品並びに部位に関する互換性を示す各フラグを含んでい
る。
【0184】世代識別情報(世代ID)フィールドは、
大人、子供、幼児など各世代毎に利用可能なコマンドか
否かを対応ビット位置のビット値で表現するフィールド
である。例えば、011は、子供と幼児に共通で利用で
きることを示す。
【0185】程度識別情報(程度ID)フィールドは、
コマンドの見た目の程度(例えば運動量など)を表す指
標値を記入するフィールドである。
【0186】最大世代数や最大程度などは、図示のレコ
ードとは別に定義することになる。
【0187】コマンド・データベースは、図示しないヘ
ッダ部を含んでおり、それが合致していれば拡張の意味
を知っていて利用することができる。
【0188】アプリケーション・オブジェクトなどのソ
フトウェアは、実行時に組み合わされているミドルウェ
ア・オブジェクトのコマンド・データベースを検索し
て、実行したい行動を、現在の本能や感情、あるいはそ
の他のあらかじめ定義されているシナリオに応じて選択
することができる。選択した行動に割り当てられている
コマンド識別情報をミドルウェア・オブジェクトに渡し
て、該当する今度を実行させることで、意図した行動を
ロボットの機体上で実現することができる。
【0189】アプリケーション・オブジェクトは、リソ
ースが重ならないようにコマンドを選択したりすること
で、ロボットの機体上での表現力を豊かにすることがで
きる。また、ロボットが暇な状態では、無限実行フラグ
が設定されているコマンドを選択して、何らかの動作を
継続させるようにすることができる。
【0190】図29及び図30には、コマンド・データ
ベースのレコードの記入例を示している。
【0191】コマンドIDが100,101,102の
レコードは、すべて「うれしい」を表現するコマンドで
ある。アプリケーション・オブジェクトは、ロボットの
機体上での状況(例えば、疲労度合いや世代など)に応
じて、いずれかのコマンドを選択して、どのレコードの
「うれしい」を使用するかを指定することができる。
【0192】コマンドIDが200と201のレコード
は、ともにある対象物のキックを指示するコマンドであ
る。その行動がどんな動作、音、LEDなのかを知って
いて、確実にその行動を実行したい場合に利用すること
ができる。
【0193】コマンド−ステータス 本実施例に係るアプリケーション・インターフェース
は、アプリケーション・オブジェクトがミドルウェア・
オブジェクトを制御するためのコマンド・インターフェ
ースを提供する。アプリケーション・オブジェクトのコ
マンド発行に対して、ミドルウェア・オブジェクトはド
ライバ・オブジェクトのようなエージェントを介してロ
ボットの機体上でコマンドを実行するとともに、アプリ
ケーション・オブジェクトに対してはステータスを返す
ようになっている。
【0194】図31には、アプリケーション・オブジェ
クトとミドルウェア・オブジェクト間でのコマンド発行
とステータス通知を行う仕組みを図解している。
【0195】アプリケーション・オブジェクトは、コマ
ンド・データベースを基に、現在の本能や感情、あるい
はその他のあらかじめ定義されているシナリオに適応し
た行動を実現するためのコマンドのコマンド識別情報
(CommandID)を取得することができる。
【0196】アプリケーション・オブジェクトは、ミド
ルウェア・オブジェクトがレディー状態のときに、コマ
ンドを発行する。これに対し、ミドルウェア・オブジェ
クトはドライバ・オブジェクトのようなエージェントを
介してロボットの機体上でコマンドを実行するととも
に、アプリケーション・オブジェクトに対してはステー
タスを返す。
【0197】図32には、アプリケーション・オブジェ
クトが発行したコマンドを実行するための、各オブジェ
クト間におけるやり取りをタイム・チャート上に模式的
に示している。
【0198】アプリケーション・オブジェクトがミドル
ウェア・オブジェクトに対してコマンドを発行する。こ
れに対し、ミドルウェア・オブジェクトは、リソースと
姿勢をロック状態にして他のコマンドによる使用を不許
可状態にするともに、ステータスとしてリソース及び姿
勢のロック情報をアプリケーション・オブジェクトに返
す。その後、ミドルウェア・オブジェクトは、レディ状
態である旨をアプリケーション・オブジェクトに通知す
る。
【0199】ミドルウェア・オブジェクトは、ドライバ
・オブジェクトのようなエージェントに対してコマンド
の実行を要求する。また、ドライバ・オブジェクトから
は、入力されたセンサ情報などが返される。
【0200】コマンドの実行が完了すると、ミドルウェ
ア・オブジェクトは、次のコマンド実行のために、ロッ
ク状態を解除し、リソースを解放する。また、アプリケ
ーション・オブジェクトに対しては、リソース解放情報
と機体の姿勢情報を含むステータスを返す。
【0201】アプリケーション・オブジェクトがコマン
ドをN回あるいは無限回連続して発行する場合も、基本
的には、1回のコマンド発行における手順と同様に、ミ
ドルウェア・オブジェクトはステータスを返す。最終コ
マンドをドライバ・オブジェクトが実行する前に、リソ
ース解放情報と姿勢情報をアプリケーション・オブジェ
クトに供給することによって、アプリケーション・オブ
ジェクトはリソースの状況を把握することができ、次に
選択可能なコマンドの範囲を把握することができる。
【0202】図33には、アプリケーション・オブジェ
クトが発行するコマンドのデータ構造を模式的に図解し
ている。
【0203】同図に示すように、コマンドは、コマンド
IDを指定するMW-IDと、サブジェクト識別情報(Subje
ctID)を指定するTargetIDと、センサ座標系でのターゲ
ットの位置を極座標表示するTargetPosとで構成される
(但し、TargetInfoのTargetPosがセンサ中心であるの
に対し、ここで言うTargetPosの場合、与えた座標はセ
ンサ部位が本体に固定した座標である)。
【0204】MW-IDは、使用するコマンドの識別情報(C
ommandID)を指定するためのフィールドである。個々で
指定可能なコマンドは、「通常」と、「緊急停止」と、
「停止」の3種類がある。
【0205】通常のコマンドは上書き実行される。音声
やLEDに関するコマンドは緊急停止の場合と同じであ
る。モーションは停止の場合と同じである。緊急停止
は、安定状態や姿勢の保証がない。停止は、安定した状
態や姿勢で停止し、基本は通常終了を待つのと等価であ
る。
【0206】図34には、TargetIDのデータ構造を模式
的に図解している。SubjectIDに含まれるOIDが0×0で
あれば、TargetPosが有効となる。
【0207】図35には、ミドルウェア・オブジェクト
がアプリケーション・オブジェクトに返すステータスの
データ構造を模式的に図解している。同図に示すよう
に、ステータスは、コマンドIDを指定するMW-IDと、
コマンドの状態を示すCommandStatusと、アクションの
状態を示すActionStatusと、姿勢の識別情報PostureID
と、リソース情報ResourceInfoとで構成される。
【0208】コマンド状態CommandStatusは、"Complet
e"、"Not Support"、"Incomplete"の3状態が定義され
ている。実行すべきコマンドがなかった場合や緊急停止
した場合にはIncompleteとなる。
【0209】アクション状態ActionStatusは、"Succes
s"(実行の成功を検出した場合)、"Fall"(実行の失敗
を検出した場合)、"Unknown"(実行の判定機能がない
場合)の3状態が定義されている。
【0210】リソース情報ResourceInfoは、ミドルウェ
アで使用するリソース情報を記述する。図36には、Re
sourceInfoのデータ構造を模式的に示している。同図に
示すように、ResourceInfoは、モーション、音声(スピ
ーカ)、LEDなどの各リソースがビットマップ形式で
記述される。各ビットとリソースの対応は自由に定義す
ることができる。
【0211】姿勢の識別情報PostureIDは、現在の姿勢
を記述する。
【0212】[追補]以上、特定の実施例を参照しなが
ら、本発明について詳解してきた。しかしながら、本発
明の要旨を逸脱しない範囲で当業者が該実施例の修正や
代用を成し得ることは自明である。
【0213】本発明の要旨は、必ずしも「ロボット」と
称される製品には限定されない。すなわち、電気的若し
くは磁気的な作用を用いて人間の動作に似せた運動を行
う機械装置であるならば、例えば玩具等のような他の産
業分野に属する製品であっても、同様に本発明を適用す
ることができる。
【0214】要するに、例示という形態で本発明を開示
してきたのであり、限定的に解釈されるべきではない。
本発明の要旨を判断するためには、冒頭に記載した特許
請求の範囲の欄を参酌すべきである。
【0215】
【発明の効果】以上詳記したように、本発明によれば、
脚式歩行型など多関節型のロボットをソフトウェア・プ
ログラムを用いて制御する、優れたロボット制御システ
ム及びロボット制御方法を提供することができる。
【0216】また、本発明によれば、脚部や頭部など各
動作ユニットの着脱・交換などに伴ってハードウェア構
成が大幅に変更する可能性がある多関節型ロボットをソ
フトウェア・プログラムを用いて制御することができ
る、優れたロボット制御システム及びロボット制御方法
を提供することができる。
【0217】また、本発明によれば、ハードウェア構成
に対して依存性の高いソフトウェア層とハードウェア構
成に非依存のソフトウェア層の組み合わせからなるソフ
トウェア・プログラムを用いて多関節型ロボットを制御
することができる、優れたロボット制御システム及びロ
ボット制御方法、並びに各ソフトウェア層間のプログラ
ム・インターフェースを提供することができる。
【0218】また、本発明によれば、ミドルウェアのよ
うなハードウェア依存のソフトウェア層と、アプリケー
ションなどのハードウェア非依存のソフトウェア層との
組み合わせを動的に変更して多関節型ロボットを制御す
ることができる、優れたロボット制御システム及びロボ
ット制御方法、並びに各ソフトウェア層間のプログラム
・インターフェースを提供することができる。
【0219】本発明によれば、ロボットのハードウェア
構成に依存するミドルウェア層と、ハードウェア構成に
依存しないアプリケーション層の間でのプログラム・イ
ンターフェースを確立することによって、ロボット上に
導入するミドルウェアとアプリケーションの組み合わせ
を変更しても、常に正常な動作を保証することができ
る。
【0220】また、本発明によれば、アプリケーション
とミドルウェアとの間で、意味的に動作を行うためのイ
ンターフェースとデータベースを用意することによっ
て、各アプリケーションは、ミドルウェアを介して適当
な入力データを取得することができるとともに、ハード
ウェア操作用の適切なコマンドをミドルウェアに発行す
ることができる。
【図面の簡単な説明】
【図1】本発明の実施に供されるロボットのハードウェ
ア構成を模式的に示した図である。
【図2】CPCコンポーネントの着脱・交換により駆動
系サブシステム50の構成を変更した例を示した図であ
る。
【図3】ロボット制御用のソフトウェアの構成を説明す
るための図である。
【図4】インフォメーション・データベースのフォーマ
ット例を示した図である。
【図5】インフォメーション・データベースのレコード
の記入例を示した図である。
【図6】インフォメーション・データベースのレコード
の記入例を示した図である。
【図7】アプリケーションが使用する情報を登録する様
子、並びに、登録された情報がミドルウェア経由で通知
される様子を模式的に示した図である。
【図8】アプリケーション・オブジェクトがミドルウェ
ア・オブジェクトに対してセンサ値情報を要求する仕組
みを示した図である。
【図9】アプリケーション・オブジェクトがセンサ値情
報を取得するための、各オブジェクト間のやり取りを模
式的に示したチャートである。
【図10】センサ値情報のデータ構造を模式的に示した
図である。
【図11】ヘッダ情報のデータ構造を模式的に示した図
である。
【図12】センサ情報(SensorInfo)のデータ構造を模
式的に示した図である。
【図13】センサがTmatrixにより基準座標の位置に変
換された様子を示した図である。
【図14】フィードバック・インターフェースを用いた
フィードバック・ループによって通知されたコマンド情
報に従い、アプリケーション・オブジェクトがコマンド
を発行する様子を示した図である。
【図15】フィードバック・ループで使用するターゲッ
ト情報(TargetInfo)のデータ構造を模式的に示した図
である。
【図16】ターゲットの状態を表すTargetStatusのデー
タ構造を模式的に示した図である
【図17】ターゲットのサイズを直方体で表すSize3Dの
データ構造を模式的に示した図である。
【図18】図17中の変数Enable3Dのデータ構造を模式
的に示した図である。
【図19】フィードバック・ループで使用するコマンド
情報(CommandInfo)のデータ構造を模式的に示した図
である。
【図20】ターゲットとの関係を表すStatusのデータ構
造を模式的に示した図である。
【図21】アプリケーション・インターフェースを介し
たシステム・イベントの処理を模式的に示した図であ
る。
【図22】システム・イベント(SysEvent)のデータ構
造を模式的に示した図である。
【図23】aidの使用例を示した図である。
【図24】aidの使用例を示した図である。
【図25】アプリケーション・インターフェースを介し
たシャットダウン要因の通知とレジューム条件の設定を
行う処理の一例を示した図である。
【図26】ミドルウェア・オブジェクトがアプリケーシ
ョン・オブジェクトに対して通知するシャットダウン要
因PowerEventのデータ構造を模式的に示した図である。
【図27】アプリケーション・オブジェクトが次のブー
ト条件を設定するためにミドルウェア・オブジェクトに
転送するResumeConditionのデータ構造を模式的に示し
た図である。
【図28】コマンド・データベースのフォーマット例を
示した図である。
【図29】コマンド・データベースのレコードの記入例
を示した図である。
【図30】コマンド・データベースのレコードの記入例
を示した図である。
【図31】アプリケーション・オブジェクトとミドルウ
ェア・オブジェクト間でのコマンド発行とステータス通
知を行う仕組みを示した図である。
【図32】アプリケーション・オブジェクトが発行した
コマンドを実行するための、各オブジェクト間のやり取
りをチャート上に模式的に示した図である。
【図33】アプリケーション・オブジェクトが発行する
コマンドのデータ構造を模式的に示した図である。
【図34】TargetIDのデータ構造を模式的に示した図で
ある。
【図35】ミドルウェア・オブジェクトがアプリケーシ
ョン・オブジェクトに返すステータスのデータ構造を模
式的に示した図である。
【図36】リソース情報(ResouceInfo)のデータ構造
を模式的に示した図である。
【符号の説明】
10…制御系サブシステム 11…CPU 12…メイン・メモリ 13…固定型メモリ装置 14…交換可能メモリ装置 50…駆動系サブシステム
───────────────────────────────────────────────────── フロントページの続き (72)発明者 細沼 直泰 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 高木 剛 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 (72)発明者 藤田 雅博 東京都品川区北品川6丁目7番35号 ソニ ー株式会社内 Fターム(参考) 3C007 AS36 CS08 MT00 WA04 WA14 WB11

Claims (33)

    【特許請求の範囲】
  1. 【請求項1】複数のハードウェア構成要素の組み合わせ
    からなるロボットの動作を制御するロボット制御システ
    ムであって、 ロボットのハードウェア構成情報に依存しない処理を行
    う第1の制御部とロボットのハードウェア構成情報に依
    存する処理を行う第2の制御部と前記第1及び第2の制
    御部間の通信を行う通信部と、を具備することを特徴と
    するロボット制御システム。
  2. 【請求項2】前記第1の制御部は、ロボットの構成や動
    作を抽象化したモデルによってロボットの行動シーケン
    スを決定するアプリケーション・ソフトウェアを実行す
    ることにより実現されることを特徴とする請求項1に記
    載のロボット制御システム。
  3. 【請求項3】前記第1の制御部は、ロボットの感情をモ
    デル化した感情モデルと、本能をモデル化した本能モデ
    ルと、外部事象とロボットがとる行動との因果関係を逐
    次記憶していく学習モデルと、行動パターンをモデル化
    した行動モデルのうち少なくとも1つを備えることを特
    徴とする請求項1に記載のロボット制御システム。
  4. 【請求項4】前記第2の制御部は、ロボットの機体上に
    おける基本的な機能を提供するミドルウェア・ソフトウ
    ェアを実行することにより実現されることを特徴とする
    請求項1に記載のロボット制御システム。
  5. 【請求項5】前記第2の制御部は、ロボットのハードウ
    ェアから検出される入力データをシステム制御層経由で
    受け取って距離検出、姿勢検出、接触などの外的要因の
    検出を行う認識系処理部と、前記第1の制御部からのコ
    マンドに基づいてロボットの機体上の動作制御を処理す
    る出力系処理部とを含むことを特徴とする請求項1に記
    載のロボット制御システム。
  6. 【請求項6】前記通信部は、前記認識系処理部による検
    出情報を前記第1の制御部に通知するとともに、前記第
    1の制御部によるコマンドを前記出力系処理部に転送す
    ることを特徴とする請求項5に記載のロボット制御シス
    テム。
  7. 【請求項7】前記通信部は、前記第2の制御部からの情
    報を前記第1の制御部に通知する情報通信インターフェ
    ースを備えることを特徴とする請求項1に記載のロボッ
    ト制御システム。
  8. 【請求項8】前記通信部は、前記第1の制御部が前記第
    2の制御部を制御するためのコマンド・インターフェー
    スを備えることを特徴とする請求項1に記載のロボット
    制御システム。
  9. 【請求項9】前記通信部は、 前記第1の制御部が前記第2の制御部から取得したい情
    報を意味ベースで指定するための情報データベースを備
    え、 該情報データベース中の該当するレコードを登録するこ
    とにより、前記第2の制御部から前記第1の制御部に対
    して該当する情報を転送する、ことを特徴とする請求項
    1に記載のロボット制御システム。
  10. 【請求項10】前記通信部は、 前記第1の制御部が前記第2の制御部に対して発行した
    いコマンドを意味ベースで指定するためのコマンド・デ
    ータベースを備え、 前記第1の制御部は前記コマンド・データベースを利用
    してコマンドを意味ベースで選択する、ことを特徴とす
    る請求項1に記載のロボット制御システム。
  11. 【請求項11】前記通信部は、前記第1の制御部による
    認識結果を前記第2の制御部に通知するとともに、認識
    結果と前記第2の制御部で可能な行動との関係を前記第
    1の制御部に通知するフィードバック・インターフェー
    スを備えることを特徴とする請求項1に記載のロボット
    制御システム。
  12. 【請求項12】前記第1の制御部と前記第2の制御部は
    独立して取り扱い可能に構成されていることを特徴とす
    る請求項1に記載のロボット制御システム。
  13. 【請求項13】前記通信部は前記第2の制御部が検出し
    たシステム・イベントを前記第1の制御部に通知するこ
    とを特徴とする請求項1に記載のロボット制御システ
    ム。
  14. 【請求項14】前記通信部は、 前記第2の制御部が検出したシャットダウン要因を前記
    第1の制御部に通知する手段と、 前記第1の制御部が設定したシャットダウンに対するレ
    ジューム条件を前記第2の制御部に通知する手段と、 を備えることを特徴とする請求項1に記載のロボット制
    御システム。
  15. 【請求項15】前記通信部は、前記第2の制御部が設定
    する推奨レジューム条件を前記第1の制御部に通知する
    手段をさらに含むことを特徴とする請求項13に記載の
    ロボット制御システム。
  16. 【請求項16】複数のハードウェア構成要素の組み合わ
    せからなるロボットの動作を、ロボットのハードウェア
    構成情報に依存しない処理を行う第1の制御モジュー
    ル、並びに、ロボットのハードウェア構成情報に依存す
    る処理を行う第2の制御モジュールを用いて制御するロ
    ボット制御方法であって、 前記第1の制御モジュールと前記第2の制御モジュール
    間で通信を行う通信ステップを備えることを特徴とする
    ロボット制御方法。
  17. 【請求項17】前記第1の制御モジュールは、ロボット
    の構成や動作を抽象化したモデルによってロボットの行
    動シーケンスを決定するアプリケーション・ソフトウェ
    アによって実装されることを特徴とする請求項16に記
    載のロボット制御方法。
  18. 【請求項18】前記第1の制御モジュールは、ロボット
    の感情をモデル化した感情モデルと、本能をモデル化し
    た本能モデルと、外部事象とロボットがとる行動との因
    果関係を逐次記憶していく学習モデルと、行動パターン
    をモデル化した行動モデルのうち少なくとも1つを備え
    ることを特徴とする請求項16に記載のロボット制御方
    法。
  19. 【請求項19】前記第2の制御モジュールは、ロボット
    の機体上における基本的な機能を提供するミドルウェア
    ・ソフトウェアによって実装されることを特徴とする請
    求項16に記載のロボット制御システム。
  20. 【請求項20】前記第2の制御モジュールは、ロボット
    のハードウェアから検出される入力データをシステム制
    御層経由で受け取って距離検出、姿勢検出、接触などの
    外的要因の検出を行う認識系処理モジュールと、前記第
    1の制御モジュールからのコマンドに基づいてロボット
    の機体上の動作制御を処理する出力系処理モジュールと
    を含むことを特徴とする請求項16に記載のロボット制
    御方法。
  21. 【請求項21】前記通信ステップでは、前記認識系処理
    モジュールの実行による検出情報を前記第1の制御モジ
    ュールに通知するとともに、前記第1の制御モジュール
    の実行によるコマンドを前記出力系処理モジュールに転
    送することを特徴とする請求項20に記載のロボット制
    御方法。
  22. 【請求項22】前記通信ステップでは、前記第2の制御
    モジュールからの情報を前記第1の制御モジュールに通
    知する情報通信インターフェースを利用することを特徴
    とする請求項16に記載のロボット制御方法。
  23. 【請求項23】前記通信ステップでは、前記第1の制御
    モジュールが前記第2の制御モジュールを制御するため
    のコマンド・インターフェースを利用することを特徴と
    する請求項16に記載のロボット制御方法。
  24. 【請求項24】前記通信ステップでは、 前記第1の制御モジュールが前記第2の制御モジュール
    から取得したい情報を意味ベースで指定するための情報
    データベースを利用して、 該情報データベース中の該当するレコードを登録するこ
    とにより、前記第2の制御モジュールから前記第1の制
    御モジュールに対して該当する情報を転送する、ことを
    特徴とする請求項16に記載のロボット制御方法。
  25. 【請求項25】前記通信ステップでは、 前記第1の制御モジュールが前記第2の制御モジュール
    に対して発行したいコマンドを意味ベースで指定するた
    めのコマンド・データベースを利用して、前記第1の制
    御モジュールはコマンドを意味ベースで選択する、こと
    を特徴とする請求項16に記載のロボット制御方法。
  26. 【請求項26】前記通信ステップは、前記第1の制御モ
    ジュールによる認識結果を前記第2の制御モジュールに
    通知するとともに、認識結果と前記第2の制御モジュー
    ルで可能な行動との関係を前記第1の制御モジュールに
    通知するフィードバック・ループを実行することを特徴
    とする請求項16に記載のロボット制御方法。
  27. 【請求項27】前記第1の制御モジュールと前記第2の
    制御モジュールは独立して取り扱い可能に構成されてい
    ることを特徴とする請求項16に記載のロボット制御方
    法。
  28. 【請求項28】前記通信ステップは、前記第2の制御モ
    ジュールが検出したシステム・イベントを前記第1の制
    御モジュールに通知するサブステップを含むことを特徴
    とする請求項16に記載のロボット制御方法。
  29. 【請求項29】前記通信ステップは、 前記第2の制御モジュールが検出したシャットダウン要
    因を前記第1の制御モジュールに通知するサブステップ
    と、 前記第1の制御モジュールが設定したシャットダウンに
    対するレジューム条件を前記第2の制御モジュールに通
    知するサブステップと、を備えることを特徴とする請求
    項16に記載のロボット制御方法。
  30. 【請求項30】前記通信ステップは、前記第2の制御モ
    ジュールが設定する推奨レジューム条件を前記第1の制
    御モジュールに通知するサブステップをさらに含むこと
    を特徴とする請求項29に記載のロボット制御方法。
  31. 【請求項31】オブジェクト指向プログラムで構成され
    るロボット制御システムであって、 ロボットのハードウェア構成に依存しない処理を行うア
    プリケーション・オブジェクトと、 ロボットのハードウェア構成に依存する処理を行うミド
    ルウェア・オブジェクトと、 前記アプリケーション・オブジェクトからの意味ベース
    でのコマンドに対応する前記ミドルウェア・オブジェク
    トで使用される情報が登録されたインフォメーション・
    データベースと、 前記インフォメーション・データベースに基づいて、前
    記アプリケーション・オブジェクトと前記ミドルウェア
    ・オブジェクト間での通信を制御するオブジェクト制御
    手段と、を具備することを特徴とするロボット制御シス
    テム。
  32. 【請求項32】前記インフォメーション・データベース
    は、登録される情報の有する意味ベースの側面を階層的
    に記述する、ことを特徴とする請求項31に記載のロボ
    ット制御システム。
  33. 【請求項33】前記インフォメーション・データベース
    のフォーマットは、少なくともインフォメーション識別
    情報フィールド、分類フィールド、センサ情報識別フィ
    ールドを備える、ことを特徴とする請求項31に記載の
    ロボット制御システム。
JP2001313865A 2000-10-11 2001-10-11 ロボット制御システム及びロボット制御方法 Pending JP2002187082A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001313865A JP2002187082A (ja) 2000-10-11 2001-10-11 ロボット制御システム及びロボット制御方法

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2000310033 2000-10-11
JP2000-310033 2000-10-11
JP2001313865A JP2002187082A (ja) 2000-10-11 2001-10-11 ロボット制御システム及びロボット制御方法

Publications (1)

Publication Number Publication Date
JP2002187082A true JP2002187082A (ja) 2002-07-02

Family

ID=26601839

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001313865A Pending JP2002187082A (ja) 2000-10-11 2001-10-11 ロボット制御システム及びロボット制御方法

Country Status (1)

Country Link
JP (1) JP2002187082A (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088514A1 (ja) * 2003-03-28 2004-10-14 Sony Corporation 情報提供装置及び方法,並びに情報提供システム
JP2007520774A (ja) * 2003-06-27 2007-07-26 ブエンディア,アクセル 決定モデルの設計および使用のためのシステム
JP2008545197A (ja) * 2005-06-28 2008-12-11 ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置
JP2009508182A (ja) * 2005-06-28 2009-02-26 ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド 特殊目的プロセッサを使用する神経モデリング及び脳ベースの装置
KR20170034754A (ko) * 2015-09-21 2017-03-29 주식회사 레인보우 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
WO2022232477A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
WO2022232484A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
WO2022232483A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US11992948B2 (en) 2021-04-30 2024-05-28 Intrinsic Innovation Llc Real-time robotics control framework

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2004088514A1 (ja) * 2003-03-28 2004-10-14 Sony Corporation 情報提供装置及び方法,並びに情報提供システム
JP2007520774A (ja) * 2003-06-27 2007-07-26 ブエンディア,アクセル 決定モデルの設計および使用のためのシステム
JP2008545197A (ja) * 2005-06-28 2008-12-11 ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド 神経モデリングのためのアドレス機構及び特殊目的プロセッサを使用する脳ベースの装置
JP2009508182A (ja) * 2005-06-28 2009-02-26 ニューロサイエンシーズ リサーチ ファンデーション インコーポレイテッド 特殊目的プロセッサを使用する神経モデリング及び脳ベースの装置
KR20170034754A (ko) * 2015-09-21 2017-03-29 주식회사 레인보우 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
KR20170034755A (ko) * 2015-09-21 2017-03-29 주식회사 레인보우 Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
JP2018535468A (ja) * 2015-09-21 2018-11-29 レインボー ロボティックスRainbow Robotics Gpos連動型リアルタイムロボット制御システム及びこれを用いたリアルタイムデバイス制御システム
US10857672B2 (en) 2015-09-21 2020-12-08 Rainbow Robotics Real-time device control system having hierarchical architecture and realtime robot control system using same
KR102235168B1 (ko) 2015-09-21 2021-04-02 주식회사 레인보우로보틱스 계층적 아키텍처를 갖는 실시간 디바이스 제어 시스템 및 이를 이용한 실시간 로봇 제어 시스템
KR102235947B1 (ko) 2015-09-21 2021-04-05 주식회사 레인보우로보틱스 Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템
US11135719B2 (en) 2015-09-21 2021-10-05 Rainbow Robotics Real-time control system, real-time control device and system control method
WO2022232477A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
WO2022232484A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
WO2022232483A1 (en) * 2021-04-30 2022-11-03 Intrinsic Innovation Llc Real-time robotics control framework
US11992948B2 (en) 2021-04-30 2024-05-28 Intrinsic Innovation Llc Real-time robotics control framework

Similar Documents

Publication Publication Date Title
US6816753B2 (en) Robot control system and robot control method
JP2002113675A (ja) ロボット制御システム並びにロボット制御用ソフトウェアの導入方法
US7363108B2 (en) Robot and control method for controlling robot expressions
US6470235B2 (en) Authoring system and method, and storage medium used therewith
EP1610221A1 (en) Information providing device, method, and information providing system
KR101137205B1 (ko) 로봇의 행동 제어 시스템 및 행동 제어 방법, 및 로봇 장치
CN100380324C (zh) 通信设备和通信方法、网络系统、以及机器人设备
JP2001121455A (ja) 移動ロボットのための充電システム及び充電制御方法、充電ステーション、移動ロボット及びその制御方法
JP2005078456A (ja) コンテンツ提供システム
JP2004110802A (ja) 環境同定装置、環境同定方法、プログラム及び記録媒体、並びにロボット装置
JP2002301674A (ja) 脚式移動ロボット及びその運動教示方法、並びに記憶媒体
JP2006110707A (ja) ロボット装置
JP2002187082A (ja) ロボット制御システム及びロボット制御方法
JP3558222B2 (ja) ロボットの行動制御システム及び行動制御方法、並びにロボット装置
JP2004283958A (ja) ロボット装置、その行動制御方法及びプログラム
JP2003111981A (ja) ロボット装置及びその制御方法、ロボットのための情報提供システム及び情報提供方法、並びに記憶媒体
JP2004298975A (ja) ロボット装置、障害物探索方法
JP2004114285A (ja) ロボット装置及びその行動制御方法
JP2002059384A (ja) ロボットのための学習システム及び学習方法
US11833441B2 (en) Robot
JP2005321954A (ja) ロボット装置、情報処理システム及び情報処理方法、並びにコンピュータ・プログラム
JP4552465B2 (ja) 情報処理装置、ロボット装置の行動制御方法、ロボット装置及びコンピュータ・プログラム
JP4147960B2 (ja) ロボット装置、及びロボット装置の動作制御方法
JP2004255529A (ja) ロボット装置およびロボット装置の制御方法、並びにロボット装置移動制御システム
JP2004283957A (ja) ロボット装置、その制御方法、及びプログラム